{"version":3,"file":"index.mjs","sources":["../../src/colorpicker/BaseColorPicker.vue","../../src/colorpicker/ColorPicker.vue","../../src/colorpicker/ColorPicker.vue?vue&type=template&id=38ca4548&lang.js"],"sourcesContent":["<script>\nimport BaseEditableHolder from '@primevue/core/baseeditableholder';\nimport ColorPickerStyle from 'primevue/colorpicker/style';\n\nexport default {\n    name: 'BaseColorPicker',\n    extends: BaseEditableHolder,\n    props: {\n        defaultColor: {\n            type: null,\n            default: 'ff0000'\n        },\n        inline: {\n            type: Boolean,\n            default: false\n        },\n        format: {\n            type: String,\n            default: 'hex'\n        },\n        tabindex: {\n            type: String,\n            default: null\n        },\n        autoZIndex: {\n            type: Boolean,\n            default: true\n        },\n        baseZIndex: {\n            type: Number,\n            default: 0\n        },\n        appendTo: {\n            type: [String, Object],\n            default: 'body'\n        },\n        inputId: {\n            type: String,\n            default: null\n        },\n        panelClass: null,\n        overlayClass: null\n    },\n    style: ColorPickerStyle,\n    provide() {\n        return {\n            $pcColorPicker: this,\n            $parentInstance: this\n        };\n    }\n};\n</script>\n","<template>\n    <div ref=\"container\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n        <input v-if=\"!inline\" ref=\"input\" :id=\"inputId\" type=\"text\" :class=\"cx('preview')\" :tabindex=\"tabindex\" :disabled=\"disabled\" @click=\"onInputClick\" @keydown=\"onInputKeydown\" @blur=\"onInputBlur\" v-bind=\"ptm('preview')\" />\n        <Portal :appendTo=\"appendTo\" :disabled=\"inline\">\n            <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n                <div v-if=\"inline ? true : overlayVisible\" :ref=\"pickerRef\" :class=\"[cx('panel'), panelClass, overlayClass]\" @click=\"onOverlayClick\" v-bind=\"{ ...ptm('panel'), ...ptm('overlay') }\">\n                    <div :class=\"cx('content')\" v-bind=\"ptm('content')\">\n                        <div :ref=\"colorSelectorRef\" :class=\"cx('colorSelector')\" @mousedown=\"onColorMousedown($event)\" @touchstart=\"onColorDragStart($event)\" @touchmove=\"onDrag($event)\" @touchend=\"onDragEnd()\" v-bind=\"ptm('colorSelector')\">\n                            <div :class=\"cx('colorBackground')\" v-bind=\"ptm('colorBackground')\">\n                                <div :ref=\"colorHandleRef\" :class=\"cx('colorHandle')\" v-bind=\"ptm('colorHandle')\"></div>\n                            </div>\n                        </div>\n                        <div :ref=\"hueViewRef\" :class=\"cx('hue')\" @mousedown=\"onHueMousedown($event)\" @touchstart=\"onHueDragStart($event)\" @touchmove=\"onDrag($event)\" @touchend=\"onDragEnd()\" v-bind=\"ptm('hue')\">\n                            <div :ref=\"hueHandleRef\" :class=\"cx('hueHandle')\" v-bind=\"ptm('hueHandle')\"></div>\n                        </div>\n                    </div>\n                </div>\n            </transition>\n        </Portal>\n    </div>\n</template>\n\n<script>\nimport { absolutePosition, addClass, isTouchDevice, relativePosition, removeClass } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseColorPicker from './BaseColorPicker.vue';\n\nexport default {\n    name: 'ColorPicker',\n    extends: BaseColorPicker,\n    inheritAttrs: false,\n    emits: ['change', 'show', 'hide'],\n    data() {\n        return {\n            overlayVisible: false\n        };\n    },\n    hsbValue: null,\n    outsideClickListener: null,\n    documentMouseMoveListener: null,\n    documentMouseUpListener: null,\n    scrollHandler: null,\n    resizeListener: null,\n    hueDragging: null,\n    colorDragging: null,\n    selfUpdate: null,\n    picker: null,\n    colorSelector: null,\n    colorHandle: null,\n    hueView: null,\n    hueHandle: null,\n    watch: {\n        modelValue: {\n            immediate: true,\n            handler(newValue) {\n                this.hsbValue = this.toHSB(newValue);\n\n                if (this.selfUpdate) this.selfUpdate = false;\n                else this.updateUI();\n            }\n        }\n    },\n    beforeUnmount() {\n        this.unbindOutsideClickListener();\n        this.unbindDragListeners();\n        this.unbindResizeListener();\n\n        if (this.scrollHandler) {\n            this.scrollHandler.destroy();\n            this.scrollHandler = null;\n        }\n\n        if (this.picker && this.autoZIndex) {\n            ZIndex.clear(this.picker);\n        }\n\n        this.clearRefs();\n    },\n    mounted() {\n        this.updateUI();\n    },\n    methods: {\n        pickColor(event) {\n            let rect = this.colorSelector.getBoundingClientRect();\n            let top = rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n            let left = rect.left + document.body.scrollLeft;\n            let saturation = Math.floor((100 * Math.max(0, Math.min(150, (event.pageX || event.changedTouches[0].pageX) - left))) / 150);\n            let brightness = Math.floor((100 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top)))) / 150);\n\n            this.hsbValue = this.validateHSB({\n                h: this.hsbValue.h,\n                s: saturation,\n                b: brightness\n            });\n\n            this.selfUpdate = true;\n            this.updateColorHandle();\n            this.updateInput();\n            this.updateModel(event);\n        },\n        pickHue(event) {\n            let top = this.hueView.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n\n            this.hsbValue = this.validateHSB({\n                h: Math.floor((360 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top)))) / 150),\n                s: 100,\n                b: 100\n            });\n\n            this.selfUpdate = true;\n            this.updateColorSelector();\n            this.updateHue();\n            this.updateModel(event);\n            this.updateInput();\n        },\n        updateModel(event) {\n            let value = this.d_value;\n\n            switch (this.format) {\n                case 'hex':\n                    value = this.HSBtoHEX(this.hsbValue);\n                    break;\n\n                case 'rgb':\n                    value = this.HSBtoRGB(this.hsbValue);\n                    break;\n\n                case 'hsb':\n                    value = this.hsbValue;\n                    break;\n\n                default:\n                    //NoOp\n                    break;\n            }\n\n            this.writeValue(value, event);\n            this.$emit('change', { event, value });\n        },\n        updateColorSelector() {\n            if (this.colorSelector) {\n                let hsbValue = this.validateHSB({\n                    h: this.hsbValue.h,\n                    s: 100,\n                    b: 100\n                });\n\n                this.colorSelector.style.backgroundColor = '#' + this.HSBtoHEX(hsbValue);\n            }\n        },\n        updateColorHandle() {\n            if (this.colorHandle) {\n                this.colorHandle.style.left = Math.floor((150 * this.hsbValue.s) / 100) + 'px';\n                this.colorHandle.style.top = Math.floor((150 * (100 - this.hsbValue.b)) / 100) + 'px';\n            }\n        },\n        updateHue() {\n            if (this.hueHandle) {\n                this.hueHandle.style.top = Math.floor(150 - (150 * this.hsbValue.h) / 360) + 'px';\n            }\n        },\n        updateInput() {\n            if (this.$refs.input) {\n                this.$refs.input.style.backgroundColor = '#' + this.HSBtoHEX(this.hsbValue);\n            }\n        },\n        updateUI() {\n            this.updateHue();\n            this.updateColorHandle();\n            this.updateInput();\n            this.updateColorSelector();\n        },\n        validateHSB(hsb) {\n            return {\n                h: Math.min(360, Math.max(0, hsb.h)),\n                s: Math.min(100, Math.max(0, hsb.s)),\n                b: Math.min(100, Math.max(0, hsb.b))\n            };\n        },\n        validateRGB(rgb) {\n            return {\n                r: Math.min(255, Math.max(0, rgb.r)),\n                g: Math.min(255, Math.max(0, rgb.g)),\n                b: Math.min(255, Math.max(0, rgb.b))\n            };\n        },\n        validateHEX(hex) {\n            var len = 6 - hex.length;\n\n            if (len > 0) {\n                var o = [];\n\n                for (var i = 0; i < len; i++) {\n                    o.push('0');\n                }\n\n                o.push(hex);\n                hex = o.join('');\n            }\n\n            return hex;\n        },\n        HEXtoRGB(hex) {\n            let hexValue = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n\n            return { r: hexValue >> 16, g: (hexValue & 0x00ff00) >> 8, b: hexValue & 0x0000ff };\n        },\n        HEXtoHSB(hex) {\n            return this.RGBtoHSB(this.HEXtoRGB(hex));\n        },\n        RGBtoHSB(rgb) {\n            var hsb = {\n                h: 0,\n                s: 0,\n                b: 0\n            };\n            var min = Math.min(rgb.r, rgb.g, rgb.b);\n            var max = Math.max(rgb.r, rgb.g, rgb.b);\n            var delta = max - min;\n\n            hsb.b = max;\n            hsb.s = max !== 0 ? (255 * delta) / max : 0;\n\n            if (hsb.s !== 0) {\n                if (rgb.r === max) {\n                    hsb.h = (rgb.g - rgb.b) / delta;\n                } else if (rgb.g === max) {\n                    hsb.h = 2 + (rgb.b - rgb.r) / delta;\n                } else {\n                    hsb.h = 4 + (rgb.r - rgb.g) / delta;\n                }\n            } else {\n                hsb.h = -1;\n            }\n\n            hsb.h *= 60;\n\n            if (hsb.h < 0) {\n                hsb.h += 360;\n            }\n\n            hsb.s *= 100 / 255;\n            hsb.b *= 100 / 255;\n\n            return hsb;\n        },\n        HSBtoRGB(hsb) {\n            var rgb = {\n                r: null,\n                g: null,\n                b: null\n            };\n            var h = Math.round(hsb.h);\n            var s = Math.round((hsb.s * 255) / 100);\n            var v = Math.round((hsb.b * 255) / 100);\n\n            if (s === 0) {\n                rgb = {\n                    r: v,\n                    g: v,\n                    b: v\n                };\n            } else {\n                var t1 = v;\n                var t2 = ((255 - s) * v) / 255;\n                var t3 = ((t1 - t2) * (h % 60)) / 60;\n\n                if (h === 360) h = 0;\n\n                if (h < 60) {\n                    rgb.r = t1;\n                    rgb.b = t2;\n                    rgb.g = t2 + t3;\n                } else if (h < 120) {\n                    rgb.g = t1;\n                    rgb.b = t2;\n                    rgb.r = t1 - t3;\n                } else if (h < 180) {\n                    rgb.g = t1;\n                    rgb.r = t2;\n                    rgb.b = t2 + t3;\n                } else if (h < 240) {\n                    rgb.b = t1;\n                    rgb.r = t2;\n                    rgb.g = t1 - t3;\n                } else if (h < 300) {\n                    rgb.b = t1;\n                    rgb.g = t2;\n                    rgb.r = t2 + t3;\n                } else if (h < 360) {\n                    rgb.r = t1;\n                    rgb.g = t2;\n                    rgb.b = t1 - t3;\n                } else {\n                    rgb.r = 0;\n                    rgb.g = 0;\n                    rgb.b = 0;\n                }\n            }\n\n            return { r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b) };\n        },\n        RGBtoHEX(rgb) {\n            var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n\n            for (var key in hex) {\n                if (hex[key].length === 1) {\n                    hex[key] = '0' + hex[key];\n                }\n            }\n\n            return hex.join('');\n        },\n        HSBtoHEX(hsb) {\n            return this.RGBtoHEX(this.HSBtoRGB(hsb));\n        },\n        toHSB(value) {\n            let hsb;\n\n            if (value) {\n                switch (this.format) {\n                    case 'hex':\n                        hsb = this.HEXtoHSB(value);\n                        break;\n\n                    case 'rgb':\n                        hsb = this.RGBtoHSB(value);\n                        break;\n\n                    case 'hsb':\n                        hsb = value;\n                        break;\n\n                    default:\n                        break;\n                }\n            } else {\n                hsb = this.HEXtoHSB(this.defaultColor);\n            }\n\n            return hsb;\n        },\n        onOverlayEnter(el) {\n            this.updateUI();\n            this.alignOverlay();\n            this.bindOutsideClickListener();\n            this.bindScrollListener();\n            this.bindResizeListener();\n\n            if (this.autoZIndex) {\n                ZIndex.set('overlay', el, this.baseZIndex, this.$primevue.config.zIndex.overlay);\n            }\n\n            this.$emit('show');\n        },\n        onOverlayLeave() {\n            this.unbindOutsideClickListener();\n            this.unbindScrollListener();\n            this.unbindResizeListener();\n            this.clearRefs();\n            this.$emit('hide');\n        },\n        onOverlayAfterLeave(el) {\n            if (this.autoZIndex) {\n                ZIndex.clear(el);\n            }\n        },\n        alignOverlay() {\n            if (this.appendTo === 'self') relativePosition(this.picker, this.$refs.input);\n            else absolutePosition(this.picker, this.$refs.input);\n        },\n        onInputClick() {\n            if (this.disabled) {\n                return;\n            }\n\n            this.overlayVisible = !this.overlayVisible;\n        },\n        onInputKeydown(event) {\n            switch (event.code) {\n                case 'Space':\n                    this.overlayVisible = !this.overlayVisible;\n                    event.preventDefault();\n                    break;\n\n                case 'Escape':\n                case 'Tab':\n                    this.overlayVisible = false;\n                    break;\n\n                default:\n                    //NoOp\n                    break;\n            }\n        },\n        onInputBlur(event) {\n            this.formField.onBlur?.();\n        },\n        onColorMousedown(event) {\n            if (this.disabled) {\n                return;\n            }\n\n            this.bindDragListeners();\n            this.onColorDragStart(event);\n        },\n        onColorDragStart(event) {\n            if (this.disabled) {\n                return;\n            }\n\n            this.colorDragging = true;\n            this.pickColor(event);\n            this.$el.setAttribute('p-colorpicker-dragging', 'true');\n            !this.isUnstyled && addClass(this.$el, 'p-colorpicker-dragging');\n            event.preventDefault();\n        },\n        onDrag(event) {\n            if (this.colorDragging) {\n                this.pickColor(event);\n                event.preventDefault();\n            }\n\n            if (this.hueDragging) {\n                this.pickHue(event);\n                event.preventDefault();\n            }\n        },\n        onDragEnd() {\n            this.colorDragging = false;\n            this.hueDragging = false;\n            this.$el.setAttribute('p-colorpicker-dragging', 'false');\n            !this.isUnstyled && removeClass(this.$el, 'p-colorpicker-dragging');\n            this.unbindDragListeners();\n        },\n        onHueMousedown(event) {\n            if (this.disabled) {\n                return;\n            }\n\n            this.bindDragListeners();\n            this.onHueDragStart(event);\n        },\n        onHueDragStart(event) {\n            if (this.disabled) {\n                return;\n            }\n\n            this.hueDragging = true;\n            this.pickHue(event);\n            !this.isUnstyled && addClass(this.$el, 'p-colorpicker-dragging');\n        },\n        isInputClicked(event) {\n            return this.$refs.input && this.$refs.input.isSameNode(event.target);\n        },\n        bindDragListeners() {\n            this.bindDocumentMouseMoveListener();\n            this.bindDocumentMouseUpListener();\n        },\n        unbindDragListeners() {\n            this.unbindDocumentMouseMoveListener();\n            this.unbindDocumentMouseUpListener();\n        },\n        bindOutsideClickListener() {\n            if (!this.outsideClickListener) {\n                this.outsideClickListener = (event) => {\n                    if (this.overlayVisible && this.picker && !this.picker.contains(event.target) && !this.isInputClicked(event)) {\n                        this.overlayVisible = false;\n                    }\n                };\n\n                document.addEventListener('click', this.outsideClickListener);\n            }\n        },\n        unbindOutsideClickListener() {\n            if (this.outsideClickListener) {\n                document.removeEventListener('click', this.outsideClickListener);\n                this.outsideClickListener = null;\n            }\n        },\n        bindScrollListener() {\n            if (!this.scrollHandler) {\n                this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n                    if (this.overlayVisible) {\n                        this.overlayVisible = false;\n                    }\n                });\n            }\n\n            this.scrollHandler.bindScrollListener();\n        },\n        unbindScrollListener() {\n            if (this.scrollHandler) {\n                this.scrollHandler.unbindScrollListener();\n            }\n        },\n        bindResizeListener() {\n            if (!this.resizeListener) {\n                this.resizeListener = () => {\n                    if (this.overlayVisible && !isTouchDevice()) {\n                        this.overlayVisible = false;\n                    }\n                };\n\n                window.addEventListener('resize', this.resizeListener);\n            }\n        },\n        unbindResizeListener() {\n            if (this.resizeListener) {\n                window.removeEventListener('resize', this.resizeListener);\n                this.resizeListener = null;\n            }\n        },\n        bindDocumentMouseMoveListener() {\n            if (!this.documentMouseMoveListener) {\n                this.documentMouseMoveListener = this.onDrag.bind(this);\n                document.addEventListener('mousemove', this.documentMouseMoveListener);\n            }\n        },\n        unbindDocumentMouseMoveListener() {\n            if (this.documentMouseMoveListener) {\n                document.removeEventListener('mousemove', this.documentMouseMoveListener);\n                this.documentMouseMoveListener = null;\n            }\n        },\n        bindDocumentMouseUpListener() {\n            if (!this.documentMouseUpListener) {\n                this.documentMouseUpListener = this.onDragEnd.bind(this);\n                document.addEventListener('mouseup', this.documentMouseUpListener);\n            }\n        },\n        unbindDocumentMouseUpListener() {\n            if (this.documentMouseUpListener) {\n                document.removeEventListener('mouseup', this.documentMouseUpListener);\n                this.documentMouseUpListener = null;\n            }\n        },\n        pickerRef(el) {\n            this.picker = el;\n        },\n        colorSelectorRef(el) {\n            this.colorSelector = el;\n        },\n        colorHandleRef(el) {\n            this.colorHandle = el;\n        },\n        hueViewRef(el) {\n            this.hueView = el;\n        },\n        hueHandleRef(el) {\n            this.hueHandle = el;\n        },\n        clearRefs() {\n            this.picker = null;\n            this.colorSelector = null;\n            this.colorHandle = null;\n            this.hueView = null;\n            this.hueHandle = null;\n        },\n        onOverlayClick(event) {\n            OverlayEventBus.emit('overlay-click', {\n                originalEvent: event,\n                target: this.$el\n            });\n        }\n    },\n    components: {\n        Portal: Portal\n    }\n};\n</script>\n","<template>\n    <div ref=\"container\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n        <input v-if=\"!inline\" ref=\"input\" :id=\"inputId\" type=\"text\" :class=\"cx('preview')\" :tabindex=\"tabindex\" :disabled=\"disabled\" @click=\"onInputClick\" @keydown=\"onInputKeydown\" @blur=\"onInputBlur\" v-bind=\"ptm('preview')\" />\n        <Portal :appendTo=\"appendTo\" :disabled=\"inline\">\n            <transition name=\"p-connected-overlay\" @enter=\"onOverlayEnter\" @leave=\"onOverlayLeave\" @after-leave=\"onOverlayAfterLeave\" v-bind=\"ptm('transition')\">\n                <div v-if=\"inline ? true : overlayVisible\" :ref=\"pickerRef\" :class=\"[cx('panel'), panelClass, overlayClass]\" @click=\"onOverlayClick\" v-bind=\"{ ...ptm('panel'), ...ptm('overlay') }\">\n                    <div :class=\"cx('content')\" v-bind=\"ptm('content')\">\n                        <div :ref=\"colorSelectorRef\" :class=\"cx('colorSelector')\" @mousedown=\"onColorMousedown($event)\" @touchstart=\"onColorDragStart($event)\" @touchmove=\"onDrag($event)\" @touchend=\"onDragEnd()\" v-bind=\"ptm('colorSelector')\">\n                            <div :class=\"cx('colorBackground')\" v-bind=\"ptm('colorBackground')\">\n                                <div :ref=\"colorHandleRef\" :class=\"cx('colorHandle')\" v-bind=\"ptm('colorHandle')\"></div>\n                            </div>\n                        </div>\n                        <div :ref=\"hueViewRef\" :class=\"cx('hue')\" @mousedown=\"onHueMousedown($event)\" @touchstart=\"onHueDragStart($event)\" @touchmove=\"onDrag($event)\" @touchend=\"onDragEnd()\" v-bind=\"ptm('hue')\">\n                            <div :ref=\"hueHandleRef\" :class=\"cx('hueHandle')\" v-bind=\"ptm('hueHandle')\"></div>\n                        </div>\n                    </div>\n                </div>\n            </transition>\n        </Portal>\n    </div>\n</template>\n\n<script>\nimport { absolutePosition, addClass, isTouchDevice, relativePosition, removeClass } from '@primeuix/utils/dom';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseColorPicker from './BaseColorPicker.vue';\n\nexport default {\n    name: 'ColorPicker',\n    extends: BaseColorPicker,\n    inheritAttrs: false,\n    emits: ['change', 'show', 'hide'],\n    data() {\n        return {\n            overlayVisible: false\n        };\n    },\n    hsbValue: null,\n    outsideClickListener: null,\n    documentMouseMoveListener: null,\n    documentMouseUpListener: null,\n    scrollHandler: null,\n    resizeListener: null,\n    hueDragging: null,\n    colorDragging: null,\n    selfUpdate: null,\n    picker: null,\n    colorSelector: null,\n    colorHandle: null,\n    hueView: null,\n    hueHandle: null,\n    watch: {\n        modelValue: {\n            immediate: true,\n            handler(newValue) {\n                this.hsbValue = this.toHSB(newValue);\n\n                if (this.selfUpdate) this.selfUpdate = false;\n                else this.updateUI();\n            }\n        }\n    },\n    beforeUnmount() {\n        this.unbindOutsideClickListener();\n        this.unbindDragListeners();\n        this.unbindResizeListener();\n\n        if (this.scrollHandler) {\n            this.scrollHandler.destroy();\n            this.scrollHandler = null;\n        }\n\n        if (this.picker && this.autoZIndex) {\n            ZIndex.clear(this.picker);\n        }\n\n        this.clearRefs();\n    },\n    mounted() {\n        this.updateUI();\n    },\n    methods: {\n        pickColor(event) {\n            let rect = this.colorSelector.getBoundingClientRect();\n            let top = rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n            let left = rect.left + document.body.scrollLeft;\n            let saturation = Math.floor((100 * Math.max(0, Math.min(150, (event.pageX || event.changedTouches[0].pageX) - left))) / 150);\n            let brightness = Math.floor((100 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top)))) / 150);\n\n            this.hsbValue = this.validateHSB({\n                h: this.hsbValue.h,\n                s: saturation,\n                b: brightness\n            });\n\n            this.selfUpdate = true;\n            this.updateColorHandle();\n            this.updateInput();\n            this.updateModel(event);\n        },\n        pickHue(event) {\n            let top = this.hueView.getBoundingClientRect().top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);\n\n            this.hsbValue = this.validateHSB({\n                h: Math.floor((360 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top)))) / 150),\n                s: 100,\n                b: 100\n            });\n\n            this.selfUpdate = true;\n            this.updateColorSelector();\n            this.updateHue();\n            this.updateModel(event);\n            this.updateInput();\n        },\n        updateModel(event) {\n            let value = this.d_value;\n\n            switch (this.format) {\n                case 'hex':\n                    value = this.HSBtoHEX(this.hsbValue);\n                    break;\n\n                case 'rgb':\n                    value = this.HSBtoRGB(this.hsbValue);\n                    break;\n\n                case 'hsb':\n                    value = this.hsbValue;\n                    break;\n\n                default:\n                    //NoOp\n                    break;\n            }\n\n            this.writeValue(value, event);\n            this.$emit('change', { event, value });\n        },\n        updateColorSelector() {\n            if (this.colorSelector) {\n                let hsbValue = this.validateHSB({\n                    h: this.hsbValue.h,\n                    s: 100,\n                    b: 100\n                });\n\n                this.colorSelector.style.backgroundColor = '#' + this.HSBtoHEX(hsbValue);\n            }\n        },\n        updateColorHandle() {\n            if (this.colorHandle) {\n                this.colorHandle.style.left = Math.floor((150 * this.hsbValue.s) / 100) + 'px';\n                this.colorHandle.style.top = Math.floor((150 * (100 - this.hsbValue.b)) / 100) + 'px';\n            }\n        },\n        updateHue() {\n            if (this.hueHandle) {\n                this.hueHandle.style.top = Math.floor(150 - (150 * this.hsbValue.h) / 360) + 'px';\n            }\n        },\n        updateInput() {\n            if (this.$refs.input) {\n                this.$refs.input.style.backgroundColor = '#' + this.HSBtoHEX(this.hsbValue);\n            }\n        },\n        updateUI() {\n            this.updateHue();\n            this.updateColorHandle();\n            this.updateInput();\n            this.updateColorSelector();\n        },\n        validateHSB(hsb) {\n            return {\n                h: Math.min(360, Math.max(0, hsb.h)),\n                s: Math.min(100, Math.max(0, hsb.s)),\n                b: Math.min(100, Math.max(0, hsb.b))\n            };\n        },\n        validateRGB(rgb) {\n            return {\n                r: Math.min(255, Math.max(0, rgb.r)),\n                g: Math.min(255, Math.max(0, rgb.g)),\n                b: Math.min(255, Math.max(0, rgb.b))\n            };\n        },\n        validateHEX(hex) {\n            var len = 6 - hex.length;\n\n            if (len > 0) {\n                var o = [];\n\n                for (var i = 0; i < len; i++) {\n                    o.push('0');\n                }\n\n                o.push(hex);\n                hex = o.join('');\n            }\n\n            return hex;\n        },\n        HEXtoRGB(hex) {\n            let hexValue = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n\n            return { r: hexValue >> 16, g: (hexValue & 0x00ff00) >> 8, b: hexValue & 0x0000ff };\n        },\n        HEXtoHSB(hex) {\n            return this.RGBtoHSB(this.HEXtoRGB(hex));\n        },\n        RGBtoHSB(rgb) {\n            var hsb = {\n                h: 0,\n                s: 0,\n                b: 0\n            };\n            var min = Math.min(rgb.r, rgb.g, rgb.b);\n            var max = Math.max(rgb.r, rgb.g, rgb.b);\n            var delta = max - min;\n\n            hsb.b = max;\n            hsb.s = max !== 0 ? (255 * delta) / max : 0;\n\n            if (hsb.s !== 0) {\n                if (rgb.r === max) {\n                    hsb.h = (rgb.g - rgb.b) / delta;\n                } else if (rgb.g === max) {\n                    hsb.h = 2 + (rgb.b - rgb.r) / delta;\n                } else {\n                    hsb.h = 4 + (rgb.r - rgb.g) / delta;\n                }\n            } else {\n                hsb.h = -1;\n            }\n\n            hsb.h *= 60;\n\n            if (hsb.h < 0) {\n                hsb.h += 360;\n            }\n\n            hsb.s *= 100 / 255;\n            hsb.b *= 100 / 255;\n\n            return hsb;\n        },\n        HSBtoRGB(hsb) {\n            var rgb = {\n                r: null,\n                g: null,\n                b: null\n            };\n            var h = Math.round(hsb.h);\n            var s = Math.round((hsb.s * 255) / 100);\n            var v = Math.round((hsb.b * 255) / 100);\n\n            if (s === 0) {\n                rgb = {\n                    r: v,\n                    g: v,\n                    b: v\n                };\n            } else {\n                var t1 = v;\n                var t2 = ((255 - s) * v) / 255;\n                var t3 = ((t1 - t2) * (h % 60)) / 60;\n\n                if (h === 360) h = 0;\n\n                if (h < 60) {\n                    rgb.r = t1;\n                    rgb.b = t2;\n                    rgb.g = t2 + t3;\n                } else if (h < 120) {\n                    rgb.g = t1;\n                    rgb.b = t2;\n                    rgb.r = t1 - t3;\n                } else if (h < 180) {\n                    rgb.g = t1;\n                    rgb.r = t2;\n                    rgb.b = t2 + t3;\n                } else if (h < 240) {\n                    rgb.b = t1;\n                    rgb.r = t2;\n                    rgb.g = t1 - t3;\n                } else if (h < 300) {\n                    rgb.b = t1;\n                    rgb.g = t2;\n                    rgb.r = t2 + t3;\n                } else if (h < 360) {\n                    rgb.r = t1;\n                    rgb.g = t2;\n                    rgb.b = t1 - t3;\n                } else {\n                    rgb.r = 0;\n                    rgb.g = 0;\n                    rgb.b = 0;\n                }\n            }\n\n            return { r: Math.round(rgb.r), g: Math.round(rgb.g), b: Math.round(rgb.b) };\n        },\n        RGBtoHEX(rgb) {\n            var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n\n            for (var key in hex) {\n                if (hex[key].length === 1) {\n                    hex[key] = '0' + hex[key];\n                }\n            }\n\n            return hex.join('');\n        },\n        HSBtoHEX(hsb) {\n            return this.RGBtoHEX(this.HSBtoRGB(hsb));\n        },\n        toHSB(value) {\n            let hsb;\n\n            if (value) {\n                switch (this.format) {\n                    case 'hex':\n                        hsb = this.HEXtoHSB(value);\n                        break;\n\n                    case 'rgb':\n                        hsb = this.RGBtoHSB(value);\n                        break;\n\n                    case 'hsb':\n                        hsb = value;\n                        break;\n\n                    default:\n                        break;\n                }\n            } else {\n                hsb = this.HEXtoHSB(this.defaultColor);\n            }\n\n            return hsb;\n        },\n        onOverlayEnter(el) {\n            this.updateUI();\n            this.alignOverlay();\n            this.bindOutsideClickListener();\n            this.bindScrollListener();\n            this.bindResizeListener();\n\n            if (this.autoZIndex) {\n                ZIndex.set('overlay', el, this.baseZIndex, this.$primevue.config.zIndex.overlay);\n            }\n\n            this.$emit('show');\n        },\n        onOverlayLeave() {\n            this.unbindOutsideClickListener();\n            this.unbindScrollListener();\n            this.unbindResizeListener();\n            this.clearRefs();\n            this.$emit('hide');\n        },\n        onOverlayAfterLeave(el) {\n            if (this.autoZIndex) {\n                ZIndex.clear(el);\n            }\n        },\n        alignOverlay() {\n            if (this.appendTo === 'self') relativePosition(this.picker, this.$refs.input);\n            else absolutePosition(this.picker, this.$refs.input);\n        },\n        onInputClick() {\n            if (this.disabled) {\n                return;\n            }\n\n            this.overlayVisible = !this.overlayVisible;\n        },\n        onInputKeydown(event) {\n            switch (event.code) {\n                case 'Space':\n                    this.overlayVisible = !this.overlayVisible;\n                    event.preventDefault();\n                    break;\n\n                case 'Escape':\n                case 'Tab':\n                    this.overlayVisible = false;\n                    break;\n\n                default:\n                    //NoOp\n                    break;\n            }\n        },\n        onInputBlur(event) {\n            this.formField.onBlur?.();\n        },\n        onColorMousedown(event) {\n            if (this.disabled) {\n                return;\n            }\n\n            this.bindDragListeners();\n            this.onColorDragStart(event);\n        },\n        onColorDragStart(event) {\n            if (this.disabled) {\n                return;\n            }\n\n            this.colorDragging = true;\n            this.pickColor(event);\n            this.$el.setAttribute('p-colorpicker-dragging', 'true');\n            !this.isUnstyled && addClass(this.$el, 'p-colorpicker-dragging');\n            event.preventDefault();\n        },\n        onDrag(event) {\n            if (this.colorDragging) {\n                this.pickColor(event);\n                event.preventDefault();\n            }\n\n            if (this.hueDragging) {\n                this.pickHue(event);\n                event.preventDefault();\n            }\n        },\n        onDragEnd() {\n            this.colorDragging = false;\n            this.hueDragging = false;\n            this.$el.setAttribute('p-colorpicker-dragging', 'false');\n            !this.isUnstyled && removeClass(this.$el, 'p-colorpicker-dragging');\n            this.unbindDragListeners();\n        },\n        onHueMousedown(event) {\n            if (this.disabled) {\n                return;\n            }\n\n            this.bindDragListeners();\n            this.onHueDragStart(event);\n        },\n        onHueDragStart(event) {\n            if (this.disabled) {\n                return;\n            }\n\n            this.hueDragging = true;\n            this.pickHue(event);\n            !this.isUnstyled && addClass(this.$el, 'p-colorpicker-dragging');\n        },\n        isInputClicked(event) {\n            return this.$refs.input && this.$refs.input.isSameNode(event.target);\n        },\n        bindDragListeners() {\n            this.bindDocumentMouseMoveListener();\n            this.bindDocumentMouseUpListener();\n        },\n        unbindDragListeners() {\n            this.unbindDocumentMouseMoveListener();\n            this.unbindDocumentMouseUpListener();\n        },\n        bindOutsideClickListener() {\n            if (!this.outsideClickListener) {\n                this.outsideClickListener = (event) => {\n                    if (this.overlayVisible && this.picker && !this.picker.contains(event.target) && !this.isInputClicked(event)) {\n                        this.overlayVisible = false;\n                    }\n                };\n\n                document.addEventListener('click', this.outsideClickListener);\n            }\n        },\n        unbindOutsideClickListener() {\n            if (this.outsideClickListener) {\n                document.removeEventListener('click', this.outsideClickListener);\n                this.outsideClickListener = null;\n            }\n        },\n        bindScrollListener() {\n            if (!this.scrollHandler) {\n                this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, () => {\n                    if (this.overlayVisible) {\n                        this.overlayVisible = false;\n                    }\n                });\n            }\n\n            this.scrollHandler.bindScrollListener();\n        },\n        unbindScrollListener() {\n            if (this.scrollHandler) {\n                this.scrollHandler.unbindScrollListener();\n            }\n        },\n        bindResizeListener() {\n            if (!this.resizeListener) {\n                this.resizeListener = () => {\n                    if (this.overlayVisible && !isTouchDevice()) {\n                        this.overlayVisible = false;\n                    }\n                };\n\n                window.addEventListener('resize', this.resizeListener);\n            }\n        },\n        unbindResizeListener() {\n            if (this.resizeListener) {\n                window.removeEventListener('resize', this.resizeListener);\n                this.resizeListener = null;\n            }\n        },\n        bindDocumentMouseMoveListener() {\n            if (!this.documentMouseMoveListener) {\n                this.documentMouseMoveListener = this.onDrag.bind(this);\n                document.addEventListener('mousemove', this.documentMouseMoveListener);\n            }\n        },\n        unbindDocumentMouseMoveListener() {\n            if (this.documentMouseMoveListener) {\n                document.removeEventListener('mousemove', this.documentMouseMoveListener);\n                this.documentMouseMoveListener = null;\n            }\n        },\n        bindDocumentMouseUpListener() {\n            if (!this.documentMouseUpListener) {\n                this.documentMouseUpListener = this.onDragEnd.bind(this);\n                document.addEventListener('mouseup', this.documentMouseUpListener);\n            }\n        },\n        unbindDocumentMouseUpListener() {\n            if (this.documentMouseUpListener) {\n                document.removeEventListener('mouseup', this.documentMouseUpListener);\n                this.documentMouseUpListener = null;\n            }\n        },\n        pickerRef(el) {\n            this.picker = el;\n        },\n        colorSelectorRef(el) {\n            this.colorSelector = el;\n        },\n        colorHandleRef(el) {\n            this.colorHandle = el;\n        },\n        hueViewRef(el) {\n            this.hueView = el;\n        },\n        hueHandleRef(el) {\n            this.hueHandle = el;\n        },\n        clearRefs() {\n            this.picker = null;\n            this.colorSelector = null;\n            this.colorHandle = null;\n            this.hueView = null;\n            this.hueHandle = null;\n        },\n        onOverlayClick(event) {\n            OverlayEventBus.emit('overlay-click', {\n                originalEvent: event,\n                target: this.$el\n            });\n        }\n    },\n    components: {\n        Portal: Portal\n    }\n};\n</script>\n"],"names":["name","BaseEditableHolder","props","defaultColor","type","inline","Boolean","format","String","tabindex","autoZIndex","baseZIndex","Number","appendTo","Object","inputId","panelClass","overlayClass","style","ColorPickerStyle","provide","$pcColorPicker","$parentInstance","BaseColorPicker","inheritAttrs","emits","data","overlayVisible","hsbValue","outsideClickListener","documentMouseMoveListener","documentMouseUpListener","scrollHandler","resizeListener","hueDragging","colorDragging","selfUpdate","picker","colorSelector","colorHandle","hueView","hueHandle","watch","modelValue","immediate","handler","newValue","toHSB","updateUI","beforeUnmount","unbindOutsideClickListener","unbindDragListeners","unbindResizeListener","destroy","ZIndex","clear","clearRefs","mounted","methods","pickColor","event","rect","getBoundingClientRect","top","window","pageYOffset","document","documentElement","scrollTop","body","left","scrollLeft","saturation","Math","floor","max","min","pageX","changedTouches","brightness","pageY","validateHSB","h","s","b","updateColorHandle","updateInput","updateModel","pickHue","updateColorSelector","updateHue","value","d_value","HSBtoHEX","HSBtoRGB","writeValue","$emit","backgroundColor","$refs","input","hsb","validateRGB","rgb","r","g","validateHEX","hex","len","length","o","i","push","join","HEXtoRGB","hexValue","parseInt","indexOf","substring","HEXtoHSB","RGBtoHSB","delta","round","v","t1","t2","t3","RGBtoHEX","toString","key","onOverlayEnter","el","alignOverlay","bindOutsideClickListener","bindScrollListener","bindResizeListener","set","$primevue","config","zIndex","overlay","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","absolutePosition","onInputClick","disabled","onInputKeydown","code","preventDefault","onInputBlur","_this$formField$onBlu","_this$formField","formField","onBlur","call","onColorMousedown","bindDragListeners","onColorDragStart","$el","setAttribute","isUnstyled","addClass","onDrag","onDragEnd","removeClass","onHueMousedown","onHueDragStart","isInputClicked","isSameNode","target","bindDocumentMouseMoveListener","bindDocumentMouseUpListener","unbindDocumentMouseMoveListener","unbindDocumentMouseUpListener","_this","contains","addEventListener","removeEventListener","_this2","ConnectedOverlayScrollHandler","container","_this3","isTouchDevice","bind","pickerRef","colorSelectorRef","colorHandleRef","hueViewRef","hueHandleRef","onOverlayClick","OverlayEventBus","emit","originalEvent","components","Portal","_openBlock","_createElementBlock","_mergeProps","ref","_ctx","cx","ptmi","id","onClick","$options","apply","arguments","onKeydown","ptm","_hoisted_1","_createVNode","_component_Portal","_Transition","onEnter","onLeave","onAfterLeave","$data","_objectSpread","_createElementVNode","onMousedown","_cache","$event","onTouchstart","onTouchmove","onTouchend"],"mappings":"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"}