{"version":3,"file":"index.mjs","sources":["../../src/colorpicker/BaseColorPicker.vue","../../src/colorpicker/ColorPicker.vue","../../src/colorpicker/ColorPicker.vue?vue&type=template&id=4cd90315&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')\" readonly :tabindex=\"tabindex\" :disabled=\"disabled\" @click=\"onInputClick\" @keydown=\"onInputKeydown\" @blur=\"onInputBlur\" v-bind=\"ptm('preview')\" />\n        <Portal :appendTo=\"appendTo\" :disabled=\"inline\">\n            <transition name=\"p-anchored-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    localHue: 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                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.localHue,\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            this.localHue = Math.floor((360 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top)))) / 150);\n\n            this.hsbValue = this.validateHSB({\n                h: this.localHue,\n                s: this.hsbValue.s,\n                b: this.hsbValue.b\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            if (hsb.s === 0 || hsb.b === 0) {\n                hsb.h = this.localHue;\n            } else {\n                this.localHue = hsb.h;\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            // Issue: #7508\n            this.$attrSelector && el.setAttribute(this.$attrSelector, '');\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            event.preventDefault();\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, true);\n            }\n        },\n        unbindOutsideClickListener() {\n            if (this.outsideClickListener) {\n                document.removeEventListener('click', this.outsideClickListener, true);\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')\" readonly :tabindex=\"tabindex\" :disabled=\"disabled\" @click=\"onInputClick\" @keydown=\"onInputKeydown\" @blur=\"onInputBlur\" v-bind=\"ptm('preview')\" />\n        <Portal :appendTo=\"appendTo\" :disabled=\"inline\">\n            <transition name=\"p-anchored-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    localHue: 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                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.localHue,\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            this.localHue = Math.floor((360 * (150 - Math.max(0, Math.min(150, (event.pageY || event.changedTouches[0].pageY) - top)))) / 150);\n\n            this.hsbValue = this.validateHSB({\n                h: this.localHue,\n                s: this.hsbValue.s,\n                b: this.hsbValue.b\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            if (hsb.s === 0 || hsb.b === 0) {\n                hsb.h = this.localHue;\n            } else {\n                this.localHue = hsb.h;\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            // Issue: #7508\n            this.$attrSelector && el.setAttribute(this.$attrSelector, '');\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            event.preventDefault();\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, true);\n            }\n        },\n        unbindOutsideClickListener() {\n            if (this.outsideClickListener) {\n                document.removeEventListener('click', this.outsideClickListener, true);\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","localHue","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","$attrSelector","setAttribute","onOverlayLeave","unbindScrollListener","onOverlayAfterLeave","relativePosition","absolutePosition","onInputClick","disabled","onInputKeydown","code","preventDefault","onInputBlur","_this$formField$onBlu","_this$formField","formField","onBlur","call","onColorMousedown","bindDragListeners","onColorDragStart","$el","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","readonly","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":";;;;;;;;;AAIA,eAAe;AACXA,EAAAA,IAAI,EAAE,iBAAiB;AACvB,EAAA,SAAA,EAASC,kBAAkB;AAC3BC,EAAAA,KAAK,EAAE;AACHC,IAAAA,YAAY,EAAE;AACVC,MAAAA,IAAI,EAAE,IAAI;MACV,SAAA,EAAS;KACZ;AACDC,IAAAA,MAAM,EAAE;AACJD,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAA,EAAS;KACZ;AACDC,IAAAA,MAAM,EAAE;AACJH,MAAAA,IAAI,EAAEI,MAAM;MACZ,SAAA,EAAS;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNL,MAAAA,IAAI,EAAEI,MAAM;MACZ,SAAA,EAAS;KACZ;AACDE,IAAAA,UAAU,EAAE;AACRN,MAAAA,IAAI,EAAEE,OAAO;MACb,SAAA,EAAS;KACZ;AACDK,IAAAA,UAAU,EAAE;AACRP,MAAAA,IAAI,EAAEQ,MAAM;MACZ,SAAA,EAAS;KACZ;AACDC,IAAAA,QAAQ,EAAE;AACNT,MAAAA,IAAI,EAAE,CAACI,MAAM,EAAEM,MAAM,CAAC;MACtB,SAAA,EAAS;KACZ;AACDC,IAAAA,OAAO,EAAE;AACLX,MAAAA,IAAI,EAAEI,MAAM;MACZ,SAAA,EAAS;KACZ;AACDQ,IAAAA,UAAU,EAAE,IAAI;AAChBC,IAAAA,YAAY,EAAE;GACjB;AACDC,EAAAA,KAAK,EAAEC,gBAAgB;EACvBC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,OAAO;AACHC,MAAAA,cAAc,EAAE,IAAI;AACpBC,MAAAA,eAAe,EAAE;KACpB;AACL,EAAA;AACJ,CAAC;;ACpBD,aAAe;AACXtB,EAAAA,IAAI,EAAE,aAAa;AACnB,EAAA,SAAA,EAASuB,QAAe;AACxBC,EAAAA,YAAY,EAAE,KAAK;AACnBC,EAAAA,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;EACjCC,IAAI,EAAA,SAAJA,IAAIA,GAAG;IACH,OAAO;AACHC,MAAAA,cAAc,EAAE;KACnB;EACL,CAAC;AACDC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,yBAAyB,EAAE,IAAI;AAC/BC,EAAAA,uBAAuB,EAAE,IAAI;AAC7BC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,cAAc,EAAE,IAAI;AACpBC,EAAAA,WAAW,EAAE,IAAI;AACjBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,UAAU,EAAE,IAAI;AAChBC,EAAAA,MAAM,EAAE,IAAI;AACZC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,WAAW,EAAE,IAAI;AACjBC,EAAAA,OAAO,EAAE,IAAI;AACbC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,KAAK,EAAE;AACHC,IAAAA,UAAU,EAAE;AACRC,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAA,SAAPA,OAAOA,CAACC,QAAQ,EAAE;QACd,IAAI,CAACnB,QAAO,GAAI,IAAI,CAACoB,KAAK,CAACD,QAAQ,CAAC;AACpC,QAAA,IAAI,IAAI,CAACV,UAAU,EAAE,IAAI,CAACA,UAAS,GAAI,KAAK,CAAA,KACvC,IAAI,CAACY,QAAQ,EAAE;AACxB,MAAA;AACJ;GACH;EACDC,aAAa,EAAA,SAAbA,aAAaA,GAAG;IACZ,IAAI,CAACC,0BAA0B,EAAE;IACjC,IAAI,CAACC,mBAAmB,EAAE;IAC1B,IAAI,CAACC,oBAAoB,EAAE;IAE3B,IAAI,IAAI,CAACpB,aAAa,EAAE;AACpB,MAAA,IAAI,CAACA,aAAa,CAACqB,OAAO,EAAE;MAC5B,IAAI,CAACrB,gBAAgB,IAAI;AAC7B,IAAA;AAEA,IAAA,IAAI,IAAI,CAACK,UAAU,IAAI,CAAC5B,UAAU,EAAE;AAChC6C,MAAAA,MAAM,CAACC,KAAK,CAAC,IAAI,CAAClB,MAAM,CAAC;AAC7B,IAAA;IAEA,IAAI,CAACmB,SAAS,EAAE;EACpB,CAAC;EACDC,OAAO,EAAA,SAAPA,OAAOA,GAAG;IACN,IAAI,CAACT,QAAQ,EAAE;EACnB,CAAC;AACDU,EAAAA,OAAO,EAAE;AACLC,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACC,KAAK,EAAE;MACb,IAAIC,IAAG,GAAI,IAAI,CAACvB,aAAa,CAACwB,qBAAqB,EAAE;MACrD,IAAIC,MAAMF,IAAI,CAACE,OAAOC,MAAM,CAACC,WAAU,IAAKC,QAAQ,CAACC,eAAe,CAACC,SAAQ,IAAKF,QAAQ,CAACG,IAAI,CAACD,SAAQ,IAAK,CAAC,CAAC;MAC/G,IAAIE,IAAG,GAAIT,IAAI,CAACS,IAAG,GAAIJ,QAAQ,CAACG,IAAI,CAACE,UAAU;AAC/C,MAAA,IAAIC,UAAS,GAAIC,IAAI,CAACC,KAAK,CAAE,GAAE,GAAID,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEF,IAAI,CAACG,GAAG,CAAC,GAAG,EAAE,CAAChB,KAAK,CAACiB,KAAI,IAAKjB,KAAK,CAACkB,cAAc,CAAC,CAAC,CAAC,CAACD,KAAK,IAAIP,IAAI,CAAC,CAAC,GAAI,GAAG,CAAC;AAC5H,MAAA,IAAIS,UAAS,GAAIN,IAAI,CAACC,KAAK,CAAE,OAAO,GAAE,GAAID,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEF,IAAI,CAACG,GAAG,CAAC,GAAG,EAAE,CAAChB,KAAK,CAACoB,KAAI,IAAKpB,KAAK,CAACkB,cAAc,CAAC,CAAC,CAAC,CAACE,KAAK,IAAIjB,GAAG,CAAC,CAAC,CAAC,GAAI,GAAG,CAAC;AAEnI,MAAA,IAAI,CAACpC,QAAO,GAAI,IAAI,CAACsD,WAAW,CAAC;QAC7BC,CAAC,EAAE,IAAI,CAACtD,QAAQ;AAChBuD,QAAAA,CAAC,EAAEX,UAAU;AACbY,QAAAA,CAAC,EAAEL;AACP,OAAC,CAAC;MAEF,IAAI,CAAC3C,UAAS,GAAI,IAAI;MACtB,IAAI,CAACiD,iBAAiB,EAAE;MACxB,IAAI,CAACC,WAAW,EAAE;AAClB,MAAA,IAAI,CAACC,WAAW,CAAC3B,KAAK,CAAC;IAC3B,CAAC;AACD4B,IAAAA,OAAO,EAAA,SAAPA,OAAOA,CAAC5B,KAAK,EAAE;AACX,MAAA,IAAIG,GAAE,GAAI,IAAI,CAACvB,OAAO,CAACsB,qBAAqB,EAAE,CAACC,OAAOC,MAAM,CAACC,WAAU,IAAKC,QAAQ,CAACC,eAAe,CAACC,SAAQ,IAAKF,QAAQ,CAACG,IAAI,CAACD,SAAQ,IAAK,CAAC,CAAC;AAC/I,MAAA,IAAI,CAACxC,QAAO,GAAI6C,IAAI,CAACC,KAAK,CAAE,OAAO,GAAE,GAAID,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEF,IAAI,CAACG,GAAG,CAAC,GAAG,EAAE,CAAChB,KAAK,CAACoB,KAAI,IAAKpB,KAAK,CAACkB,cAAc,CAAC,CAAC,CAAC,CAACE,KAAK,IAAIjB,GAAG,CAAC,CAAC,CAAC,GAAI,GAAG,CAAC;AAElI,MAAA,IAAI,CAACpC,QAAO,GAAI,IAAI,CAACsD,WAAW,CAAC;QAC7BC,CAAC,EAAE,IAAI,CAACtD,QAAQ;AAChBuD,QAAAA,CAAC,EAAE,IAAI,CAACxD,QAAQ,CAACwD,CAAC;AAClBC,QAAAA,CAAC,EAAE,IAAI,CAACzD,QAAQ,CAACyD;AACrB,OAAC,CAAC;MAEF,IAAI,CAAChD,UAAS,GAAI,IAAI;MACtB,IAAI,CAACqD,mBAAmB,EAAE;MAC1B,IAAI,CAACC,SAAS,EAAE;AAChB,MAAA,IAAI,CAACH,WAAW,CAAC3B,KAAK,CAAC;MACvB,IAAI,CAAC0B,WAAW,EAAE;IACtB,CAAC;AACDC,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAAC3B,KAAK,EAAE;AACf,MAAA,IAAI+B,QAAQ,IAAI,CAACC,OAAO;MAExB,QAAQ,IAAI,CAACtF,MAAM;AACf,QAAA,KAAK,KAAK;UACNqF,KAAI,GAAI,IAAI,CAACE,QAAQ,CAAC,IAAI,CAAClE,QAAQ,CAAC;AACpC,UAAA;AAEJ,QAAA,KAAK,KAAK;UACNgE,KAAI,GAAI,IAAI,CAACG,QAAQ,CAAC,IAAI,CAACnE,QAAQ,CAAC;AACpC,UAAA;AAEJ,QAAA,KAAK,KAAK;UACNgE,KAAI,GAAI,IAAI,CAAChE,QAAQ;AACrB,UAAA;AAKR;AAEA,MAAA,IAAI,CAACoE,UAAU,CAACJ,KAAK,EAAE/B,KAAK,CAAC;AAC7B,MAAA,IAAI,CAACoC,KAAK,CAAC,QAAQ,EAAE;AAAEpC,QAAAA,KAAK,EAALA,KAAK;AAAE+B,QAAAA,KAAI,EAAJA;AAAM,OAAC,CAAC;IAC1C,CAAC;IACDF,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,IAAI,CAACnD,aAAa,EAAE;AACpB,QAAA,IAAIX,QAAO,GAAI,IAAI,CAACsD,WAAW,CAAC;AAC5BC,UAAAA,CAAC,EAAE,IAAI,CAACvD,QAAQ,CAACuD,CAAC;AAClBC,UAAAA,CAAC,EAAE,GAAG;AACNC,UAAAA,CAAC,EAAE;AACP,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC9C,aAAa,CAACrB,KAAK,CAACgF,eAAc,GAAI,GAAE,GAAI,IAAI,CAACJ,QAAQ,CAAClE,QAAQ,CAAC;AAC5E,MAAA;IACJ,CAAC;IACD0D,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;MAChB,IAAI,IAAI,CAAC9C,WAAW,EAAE;QAClB,IAAI,CAACA,WAAW,CAACtB,KAAK,CAACqD,IAAG,GAAIG,IAAI,CAACC,KAAK,CAAE,GAAE,GAAI,IAAI,CAAC/C,QAAQ,CAACwD,CAAC,GAAI,GAAG,CAAA,GAAI,IAAI;QAC9E,IAAI,CAAC5C,WAAW,CAACtB,KAAK,CAAC8C,GAAE,GAAIU,IAAI,CAACC,KAAK,CAAE,GAAE,IAAK,GAAE,GAAI,IAAI,CAAC/C,QAAQ,CAACyD,CAAC,CAAC,GAAI,GAAG,CAAA,GAAI,IAAI;AACzF,MAAA;IACJ,CAAC;IACDM,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAI,IAAI,CAACjD,SAAS,EAAE;QAChB,IAAI,CAACA,SAAS,CAACxB,KAAK,CAAC8C,MAAMU,IAAI,CAACC,KAAK,CAAC,GAAE,GAAK,GAAE,GAAI,IAAI,CAAC/C,QAAQ,CAACuD,CAAC,GAAI,GAAG,CAAA,GAAI,IAAI;AACrF,MAAA;IACJ,CAAC;IACDI,WAAW,EAAA,SAAXA,WAAWA,GAAG;AACV,MAAA,IAAI,IAAI,CAACY,KAAK,CAACC,KAAK,EAAE;AAClB,QAAA,IAAI,CAACD,KAAK,CAACC,KAAK,CAAClF,KAAK,CAACgF,eAAc,GAAI,MAAM,IAAI,CAACJ,QAAQ,CAAC,IAAI,CAAClE,QAAQ,CAAC;AAC/E,MAAA;IACJ,CAAC;IACDqB,QAAQ,EAAA,SAARA,QAAQA,GAAG;MACP,IAAI,CAAC0C,SAAS,EAAE;MAChB,IAAI,CAACL,iBAAiB,EAAE;MACxB,IAAI,CAACC,WAAW,EAAE;MAClB,IAAI,CAACG,mBAAmB,EAAE;IAC9B,CAAC;AACDR,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACmB,GAAG,EAAE;MACb,OAAO;AACHlB,QAAAA,CAAC,EAAET,IAAI,CAACG,GAAG,CAAC,GAAG,EAAEH,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEyB,GAAG,CAAClB,CAAC,CAAC,CAAC;AACpCC,QAAAA,CAAC,EAAEV,IAAI,CAACG,GAAG,CAAC,GAAG,EAAEH,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEyB,GAAG,CAACjB,CAAC,CAAC,CAAC;AACpCC,QAAAA,CAAC,EAAEX,IAAI,CAACG,GAAG,CAAC,GAAG,EAAEH,IAAI,CAACE,GAAG,CAAC,CAAC,EAAEyB,GAAG,CAAChB,CAAC,CAAC;OACtC;IACL,CAAC;AACDiB,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;MACb,OAAO;AACHC,QAAAA,CAAC,EAAE9B,IAAI,CAACG,GAAG,CAAC,GAAG,EAAEH,IAAI,CAACE,GAAG,CAAC,CAAC,EAAE2B,GAAG,CAACC,CAAC,CAAC,CAAC;AACpCC,QAAAA,CAAC,EAAE/B,IAAI,CAACG,GAAG,CAAC,GAAG,EAAEH,IAAI,CAACE,GAAG,CAAC,CAAC,EAAE2B,GAAG,CAACE,CAAC,CAAC,CAAC;AACpCpB,QAAAA,CAAC,EAAEX,IAAI,CAACG,GAAG,CAAC,GAAG,EAAEH,IAAI,CAACE,GAAG,CAAC,CAAC,EAAE2B,GAAG,CAAClB,CAAC,CAAC;OACtC;IACL,CAAC;AACDqB,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAACC,GAAG,EAAE;AACb,MAAA,IAAIC,GAAE,GAAI,CAAA,GAAID,GAAG,CAACE,MAAM;MAExB,IAAID,GAAE,GAAI,CAAC,EAAE;QACT,IAAIE,CAAA,GAAI,EAAE;QAEV,KAAK,IAAIC,IAAI,CAAC,EAAEA,CAAA,GAAIH,GAAG,EAAEG,CAAC,EAAE,EAAE;AAC1BD,UAAAA,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC;AACf,QAAA;AAEAF,QAAAA,CAAC,CAACE,IAAI,CAACL,GAAG,CAAC;AACXA,QAAAA,GAAE,GAAIG,CAAC,CAACG,IAAI,CAAC,EAAE,CAAC;AACpB,MAAA;AAEA,MAAA,OAAON,GAAG;IACd,CAAC;AACDO,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACP,GAAG,EAAE;MACV,IAAIQ,QAAO,GAAIC,QAAQ,CAACT,GAAG,CAACU,OAAO,CAAC,GAAG,CAAA,GAAI,EAAC,GAAIV,GAAG,CAACW,SAAS,CAAC,CAAC,CAAA,GAAIX,GAAG,EAAE,EAAE,CAAC;MAE3E,OAAO;QAAEH,CAAC,EAAEW,QAAO,IAAK,EAAE;AAAEV,QAAAA,CAAC,EAAE,CAACU,QAAO,GAAI,QAAQ,KAAK,CAAC;QAAE9B,CAAC,EAAE8B,WAAW;OAAU;IACvF,CAAC;AACDI,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACZ,GAAG,EAAE;MACV,OAAO,IAAI,CAACa,QAAQ,CAAC,IAAI,CAACN,QAAQ,CAACP,GAAG,CAAC,CAAC;IAC5C,CAAC;AACDa,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACjB,GAAG,EAAE;AACV,MAAA,IAAIF,MAAM;AACNlB,QAAAA,CAAC,EAAE,CAAC;AACJC,QAAAA,CAAC,EAAE,CAAC;AACJC,QAAAA,CAAC,EAAE;OACN;AACD,MAAA,IAAIR,MAAMH,IAAI,CAACG,GAAG,CAAC0B,GAAG,CAACC,CAAC,EAAED,GAAG,CAACE,CAAC,EAAEF,GAAG,CAAClB,CAAC,CAAC;AACvC,MAAA,IAAIT,MAAMF,IAAI,CAACE,GAAG,CAAC2B,GAAG,CAACC,CAAC,EAAED,GAAG,CAACE,CAAC,EAAEF,GAAG,CAAClB,CAAC,CAAC;AACvC,MAAA,IAAIoC,KAAI,GAAI7C,GAAE,GAAIC,GAAG;MAErBwB,GAAG,CAAChB,IAAIT,GAAG;AACXyB,MAAAA,GAAG,CAACjB,CAAA,GAAIR,GAAE,KAAM,CAAA,GAAK,GAAE,GAAI6C,KAAK,GAAI7C,GAAE,GAAI,CAAC;AAE3C,MAAA,IAAIyB,GAAG,CAACjB,CAAA,KAAM,CAAC,EAAE;AACb,QAAA,IAAImB,GAAG,CAACC,CAAA,KAAM5B,GAAG,EAAE;AACfyB,UAAAA,GAAG,CAAClB,CAAA,GAAI,CAACoB,GAAG,CAACE,CAAA,GAAIF,GAAG,CAAClB,CAAC,IAAIoC,KAAK;AACnC,QAAA,CAAA,MAAO,IAAIlB,GAAG,CAACE,MAAM7B,GAAG,EAAE;AACtByB,UAAAA,GAAG,CAAClB,CAAA,GAAI,IAAI,CAACoB,GAAG,CAAClB,IAAIkB,GAAG,CAACC,CAAC,IAAIiB,KAAK;AACvC,QAAA,CAAA,MAAO;AACHpB,UAAAA,GAAG,CAAClB,CAAA,GAAI,IAAI,CAACoB,GAAG,CAACC,IAAID,GAAG,CAACE,CAAC,IAAIgB,KAAK;AACvC,QAAA;AACJ,MAAA,CAAA,MAAO;AACHpB,QAAAA,GAAG,CAAClB,CAAA,GAAI,EAAE;AACd,MAAA;MAEAkB,GAAG,CAAClB,KAAK,EAAE;AAEX,MAAA,IAAIkB,GAAG,CAAClB,CAAA,GAAI,CAAC,EAAE;QACXkB,GAAG,CAAClB,CAAA,IAAK,GAAG;AAChB,MAAA;AAEAkB,MAAAA,GAAG,CAACjB,CAAA,IAAK,GAAE,GAAI,GAAG;AAClBiB,MAAAA,GAAG,CAAChB,CAAA,IAAK,GAAE,GAAI,GAAG;AAElB,MAAA,OAAOgB,GAAG;IACd,CAAC;AACDN,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACM,GAAG,EAAE;AACV,MAAA,IAAIE,MAAM;AACNC,QAAAA,CAAC,EAAE,IAAI;AACPC,QAAAA,CAAC,EAAE,IAAI;AACPpB,QAAAA,CAAC,EAAE;OACN;MACD,IAAIF,CAAA,GAAIT,IAAI,CAACgD,KAAK,CAACrB,GAAG,CAAClB,CAAC,CAAC;AACzB,MAAA,IAAIC,CAAA,GAAIV,IAAI,CAACgD,KAAK,CAAErB,GAAG,CAACjB,CAAA,GAAI,GAAG,GAAI,GAAG,CAAC;AACvC,MAAA,IAAIuC,CAAA,GAAIjD,IAAI,CAACgD,KAAK,CAAErB,GAAG,CAAChB,CAAA,GAAI,GAAG,GAAI,GAAG,CAAC;MAEvC,IAAID,CAAA,KAAM,CAAC,EAAE;AACTmB,QAAAA,MAAM;AACFC,UAAAA,CAAC,EAAEmB,CAAC;AACJlB,UAAAA,CAAC,EAAEkB,CAAC;AACJtC,UAAAA,CAAC,EAAEsC;SACN;AACL,MAAA,CAAA,MAAO;QACH,IAAIC,EAAC,GAAID,CAAC;QACV,IAAIE,KAAM,CAAC,MAAMzC,CAAC,IAAIuC,CAAC,GAAI,GAAG;AAC9B,QAAA,IAAIG,EAAC,GAAK,CAACF,EAAC,GAAIC,EAAE,KAAK1C,CAAA,GAAI,EAAE,CAAC,GAAI,EAAE;AAEpC,QAAA,IAAIA,CAAA,KAAM,GAAG,EAAEA,CAAA,GAAI,CAAC;QAEpB,IAAIA,CAAA,GAAI,EAAE,EAAE;UACRoB,GAAG,CAACC,CAAA,GAAIoB,EAAE;UACVrB,GAAG,CAAClB,CAAA,GAAIwC,EAAE;AACVtB,UAAAA,GAAG,CAACE,CAAA,GAAIoB,EAAC,GAAIC,EAAE;AACnB,QAAA,CAAA,MAAO,IAAI3C,CAAA,GAAI,GAAG,EAAE;UAChBoB,GAAG,CAACE,CAAA,GAAImB,EAAE;UACVrB,GAAG,CAAClB,CAAA,GAAIwC,EAAE;AACVtB,UAAAA,GAAG,CAACC,CAAA,GAAIoB,EAAC,GAAIE,EAAE;AACnB,QAAA,CAAA,MAAO,IAAI3C,CAAA,GAAI,GAAG,EAAE;UAChBoB,GAAG,CAACE,CAAA,GAAImB,EAAE;UACVrB,GAAG,CAACC,CAAA,GAAIqB,EAAE;AACVtB,UAAAA,GAAG,CAAClB,CAAA,GAAIwC,EAAC,GAAIC,EAAE;AACnB,QAAA,CAAA,MAAO,IAAI3C,CAAA,GAAI,GAAG,EAAE;UAChBoB,GAAG,CAAClB,CAAA,GAAIuC,EAAE;UACVrB,GAAG,CAACC,CAAA,GAAIqB,EAAE;AACVtB,UAAAA,GAAG,CAACE,CAAA,GAAImB,EAAC,GAAIE,EAAE;AACnB,QAAA,CAAA,MAAO,IAAI3C,CAAA,GAAI,GAAG,EAAE;UAChBoB,GAAG,CAAClB,CAAA,GAAIuC,EAAE;UACVrB,GAAG,CAACE,CAAA,GAAIoB,EAAE;AACVtB,UAAAA,GAAG,CAACC,CAAA,GAAIqB,EAAC,GAAIC,EAAE;AACnB,QAAA,CAAA,MAAO,IAAI3C,CAAA,GAAI,GAAG,EAAE;UAChBoB,GAAG,CAACC,CAAA,GAAIoB,EAAE;UACVrB,GAAG,CAACE,CAAA,GAAIoB,EAAE;AACVtB,UAAAA,GAAG,CAAClB,CAAA,GAAIuC,EAAC,GAAIE,EAAE;AACnB,QAAA,CAAA,MAAO;UACHvB,GAAG,CAACC,CAAA,GAAI,CAAC;UACTD,GAAG,CAACE,CAAA,GAAI,CAAC;UACTF,GAAG,CAAClB,CAAA,GAAI,CAAC;AACb,QAAA;AACJ,MAAA;MAEA,OAAO;QAAEmB,CAAC,EAAE9B,IAAI,CAACgD,KAAK,CAACnB,GAAG,CAACC,CAAC,CAAC;QAAEC,CAAC,EAAE/B,IAAI,CAACgD,KAAK,CAACnB,GAAG,CAACE,CAAC,CAAC;AAAEpB,QAAAA,CAAC,EAAEX,IAAI,CAACgD,KAAK,CAACnB,GAAG,CAAClB,CAAC;OAAG;IAC/E,CAAC;AACD0C,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACxB,GAAG,EAAE;AACV,MAAA,IAAII,GAAE,GAAI,CAACJ,GAAG,CAACC,CAAC,CAACwB,QAAQ,CAAC,EAAE,CAAC,EAAEzB,GAAG,CAACE,CAAC,CAACuB,QAAQ,CAAC,EAAE,CAAC,EAAEzB,GAAG,CAAClB,CAAC,CAAC2C,QAAQ,CAAC,EAAE,CAAC,CAAC;AAEtE,MAAA,KAAK,IAAIC,GAAE,IAAKtB,GAAG,EAAE;QACjB,IAAIA,GAAG,CAACsB,GAAG,CAAC,CAACpB,WAAW,CAAC,EAAE;UACvBF,GAAG,CAACsB,GAAG,IAAI,GAAE,GAAItB,GAAG,CAACsB,GAAG,CAAC;AAC7B,QAAA;AACJ,MAAA;AAEA,MAAA,OAAOtB,GAAG,CAACM,IAAI,CAAC,EAAE,CAAC;IACvB,CAAC;AACDnB,IAAAA,QAAQ,EAAA,SAARA,QAAQA,CAACO,GAAG,EAAE;MACV,OAAO,IAAI,CAAC0B,QAAQ,CAAC,IAAI,CAAChC,QAAQ,CAACM,GAAG,CAAC,CAAC;IAC5C,CAAC;AACDrD,IAAAA,KAAK,EAAA,SAALA,KAAKA,CAAC4C,KAAK,EAAE;AACT,MAAA,IAAIS,GAAG;AAEP,MAAA,IAAIT,KAAK,EAAE;QACP,QAAQ,IAAI,CAACrF,MAAM;AACf,UAAA,KAAK,KAAK;AACN8F,YAAAA,MAAM,IAAI,CAACkB,QAAQ,CAAC3B,KAAK,CAAC;AAC1B,YAAA;AAEJ,UAAA,KAAK,KAAK;AACNS,YAAAA,MAAM,IAAI,CAACmB,QAAQ,CAAC5B,KAAK,CAAC;AAC1B,YAAA;AAEJ,UAAA,KAAK,KAAK;AACNS,YAAAA,GAAE,GAAIT,KAAK;AACX,YAAA;AAIR;AACJ,MAAA,CAAA,MAAO;QACHS,GAAE,GAAI,IAAI,CAACkB,QAAQ,CAAC,IAAI,CAACpH,YAAY,CAAC;AAC1C,MAAA;MAEA,IAAIkG,GAAG,CAACjB,CAAA,KAAM,CAAA,IAAKiB,GAAG,CAAChB,MAAM,CAAC,EAAE;AAC5BgB,QAAAA,GAAG,CAAClB,CAAA,GAAI,IAAI,CAACtD,QAAQ;AACzB,MAAA,CAAA,MAAO;AACH,QAAA,IAAI,CAACA,QAAO,GAAIwE,GAAG,CAAClB,CAAC;AACzB,MAAA;AAEA,MAAA,OAAOkB,GAAG;IACd,CAAC;AACD6B,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACC,EAAE,EAAE;MACf,IAAI,CAAClF,QAAQ,EAAE;MACf,IAAI,CAACmF,YAAY,EAAE;MACnB,IAAI,CAACC,wBAAwB,EAAE;MAC/B,IAAI,CAACC,kBAAkB,EAAE;MACzB,IAAI,CAACC,kBAAkB,EAAE;MAEzB,IAAI,IAAI,CAAC7H,UAAU,EAAE;QACjB6C,MAAM,CAACiF,GAAG,CAAC,SAAS,EAAEL,EAAE,EAAE,IAAI,CAACxH,UAAS,IAAK,IAAI,CAAC8H,SAAS,CAACC,MAAM,CAACC,MAAM,CAACC,OAAO,CAAC;AACtF,MAAA;;AAEA;AACA,MAAA,IAAI,CAACC,aAAY,IAAKV,EAAE,CAACW,YAAY,CAAC,IAAI,CAACD,aAAa,EAAE,EAAE,CAAC;AAE7D,MAAA,IAAI,CAAC5C,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD8C,cAAc,EAAA,SAAdA,cAAcA,GAAG;MACb,IAAI,CAAC5F,0BAA0B,EAAE;MACjC,IAAI,CAAC6F,oBAAoB,EAAE;MAC3B,IAAI,CAAC3F,oBAAoB,EAAE;MAC3B,IAAI,CAACI,SAAS,EAAE;AAChB,MAAA,IAAI,CAACwC,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;AACDgD,IAAAA,mBAAmB,EAAA,SAAnBA,mBAAmBA,CAACd,EAAE,EAAE;MACpB,IAAI,IAAI,CAACzH,UAAU,EAAE;AACjB6C,QAAAA,MAAM,CAACC,KAAK,CAAC2E,EAAE,CAAC;AACpB,MAAA;IACJ,CAAC;IACDC,YAAY,EAAA,SAAZA,YAAYA,GAAG;AACX,MAAA,IAAI,IAAI,CAACvH,QAAO,KAAM,MAAM,EAAEqI,gBAAgB,CAAC,IAAI,CAAC5G,MAAM,EAAE,IAAI,CAAC6D,KAAK,CAACC,KAAK,CAAC,CAAA,KACxE+C,gBAAgB,CAAC,IAAI,CAAC7G,MAAM,EAAE,IAAI,CAAC6D,KAAK,CAACC,KAAK,CAAC;IACxD,CAAC;IACDgD,YAAY,EAAA,SAAZA,YAAYA,GAAG;MACX,IAAI,IAAI,CAACC,QAAQ,EAAE;AACf,QAAA;AACJ,MAAA;AAEA,MAAA,IAAI,CAAC1H,cAAa,GAAI,CAAC,IAAI,CAACA,cAAc;IAC9C,CAAC;AACD2H,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACzF,KAAK,EAAE;MAClB,QAAQA,KAAK,CAAC0F,IAAI;AACd,QAAA,KAAK,OAAO;AACR,UAAA,IAAI,CAAC5H,cAAa,GAAI,CAAC,IAAI,CAACA,cAAc;UAC1CkC,KAAK,CAAC2F,cAAc,EAAE;AACtB,UAAA;AAEJ,QAAA,KAAK,QAAQ;AACb,QAAA,KAAK,KAAK;UACN,IAAI,CAAC7H,cAAa,GAAI,KAAK;AAC3B,UAAA;AAKR;IACJ,CAAC;AACD8H,IAAAA,WAAW,EAAA,SAAXA,WAAWA,CAAC5F,KAAK,EAAE;MAAA,IAAA6F,qBAAA,EAAAC,eAAA;AACf,MAAA,CAAAD,qBAAA,GAAA,CAAAC,eAAA,GAAA,IAAI,CAACC,SAAS,EAACC,MAAM,MAAA,IAAA,IAAAH,qBAAA,eAArBA,qBAAA,CAAAI,IAAA,CAAAH,eAAwB,CAAC;IAC7B,CAAC;AACDI,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAAClG,KAAK,EAAE;MACpB,IAAI,IAAI,CAACwF,QAAQ,EAAE;AACf,QAAA;AACJ,MAAA;MAEA,IAAI,CAACW,iBAAiB,EAAE;AACxB,MAAA,IAAI,CAACC,gBAAgB,CAACpG,KAAK,CAAC;IAChC,CAAC;AACDoG,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACpG,KAAK,EAAE;MACpB,IAAI,IAAI,CAACwF,QAAQ,EAAE;AACf,QAAA;AACJ,MAAA;MAEA,IAAI,CAACjH,gBAAgB,IAAI;AACzB,MAAA,IAAI,CAACwB,SAAS,CAACC,KAAK,CAAC;MACrB,IAAI,CAACqG,GAAG,CAACpB,YAAY,CAAC,wBAAwB,EAAE,MAAM,CAAC;MACvD,CAAC,IAAI,CAACqB,UAAS,IAAKC,QAAQ,CAAC,IAAI,CAACF,GAAG,EAAE,wBAAwB,CAAC;MAChErG,KAAK,CAAC2F,cAAc,EAAE;IAC1B,CAAC;AACDa,IAAAA,MAAM,EAAA,SAANA,MAAMA,CAACxG,KAAK,EAAE;MACV,IAAI,IAAI,CAACzB,aAAa,EAAE;AACpB,QAAA,IAAI,CAACwB,SAAS,CAACC,KAAK,CAAC;QACrBA,KAAK,CAAC2F,cAAc,EAAE;AAC1B,MAAA;MAEA,IAAI,IAAI,CAACrH,WAAW,EAAE;AAClB,QAAA,IAAI,CAACsD,OAAO,CAAC5B,KAAK,CAAC;QACnBA,KAAK,CAAC2F,cAAc,EAAE;AAC1B,MAAA;IACJ,CAAC;IACDc,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAI,CAAClI,aAAY,GAAI,KAAK;MAC1B,IAAI,CAACD,WAAU,GAAI,KAAK;MACxB,IAAI,CAAC+H,GAAG,CAACpB,YAAY,CAAC,wBAAwB,EAAE,OAAO,CAAC;MACxD,CAAC,IAAI,CAACqB,UAAS,IAAKI,WAAW,CAAC,IAAI,CAACL,GAAG,EAAE,wBAAwB,CAAC;MACnE,IAAI,CAAC9G,mBAAmB,EAAE;IAC9B,CAAC;AACDoH,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC3G,KAAK,EAAE;MAClB,IAAI,IAAI,CAACwF,QAAQ,EAAE;AACf,QAAA;AACJ,MAAA;MAEA,IAAI,CAACW,iBAAiB,EAAE;AACxB,MAAA,IAAI,CAACS,cAAc,CAAC5G,KAAK,CAAC;IAC9B,CAAC;AACD4G,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC5G,KAAK,EAAE;MAClB,IAAI,IAAI,CAACwF,QAAQ,EAAE;AACf,QAAA;AACJ,MAAA;MAEA,IAAI,CAAClH,WAAU,GAAI,IAAI;AACvB,MAAA,IAAI,CAACsD,OAAO,CAAC5B,KAAK,CAAC;MACnB,CAAC,IAAI,CAACsG,UAAS,IAAKC,QAAQ,CAAC,IAAI,CAACF,GAAG,EAAE,wBAAwB,CAAC;MAChErG,KAAK,CAAC2F,cAAc,EAAE;IAC1B,CAAC;AACDkB,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC7G,KAAK,EAAE;AAClB,MAAA,OAAO,IAAI,CAACsC,KAAK,CAACC,KAAI,IAAK,IAAI,CAACD,KAAK,CAACC,KAAK,CAACuE,UAAU,CAAC9G,KAAK,CAAC+G,MAAM,CAAC;IACxE,CAAC;IACDZ,iBAAiB,EAAA,SAAjBA,iBAAiBA,GAAG;MAChB,IAAI,CAACa,6BAA6B,EAAE;MACpC,IAAI,CAACC,2BAA2B,EAAE;IACtC,CAAC;IACD1H,mBAAmB,EAAA,SAAnBA,mBAAmBA,GAAG;MAClB,IAAI,CAAC2H,+BAA+B,EAAE;MACtC,IAAI,CAACC,6BAA6B,EAAE;IACxC,CAAC;IACD3C,wBAAwB,EAAA,SAAxBA,wBAAwBA,GAAG;AAAA,MAAA,IAAA4C,KAAA,GAAA,IAAA;AACvB,MAAA,IAAI,CAAC,IAAI,CAACnJ,oBAAoB,EAAE;AAC5B,QAAA,IAAI,CAACA,oBAAmB,GAAI,UAAC+B,KAAK,EAAK;UACnC,IAAIoH,KAAI,CAACtJ,cAAa,IAAKsJ,KAAI,CAAC3I,MAAK,IAAK,CAAC2I,KAAI,CAAC3I,MAAM,CAAC4I,QAAQ,CAACrH,KAAK,CAAC+G,MAAM,CAAA,IAAK,CAACK,KAAI,CAACP,cAAc,CAAC7G,KAAK,CAAC,EAAE;YAC1GoH,KAAI,CAACtJ,cAAa,GAAI,KAAK;AAC/B,UAAA;QACJ,CAAC;QAEDwC,QAAQ,CAACgH,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAACrJ,oBAAoB,EAAE,IAAI,CAAC;AACvE,MAAA;IACJ,CAAC;IACDqB,0BAA0B,EAAA,SAA1BA,0BAA0BA,GAAG;MACzB,IAAI,IAAI,CAACrB,oBAAoB,EAAE;QAC3BqC,QAAQ,CAACiH,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAACtJ,oBAAoB,EAAE,IAAI,CAAC;QACtE,IAAI,CAACA,oBAAmB,GAAI,IAAI;AACpC,MAAA;IACJ,CAAC;IACDwG,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAA+C,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACpJ,aAAa,EAAE;AACrB,QAAA,IAAI,CAACA,aAAY,GAAI,IAAIqJ,6BAA6B,CAAC,IAAI,CAACnF,KAAK,CAACoF,SAAS,EAAE,YAAM;UAC/E,IAAIF,MAAI,CAAC1J,cAAc,EAAE;YACrB0J,MAAI,CAAC1J,cAAa,GAAI,KAAK;AAC/B,UAAA;AACJ,QAAA,CAAC,CAAC;AACN,MAAA;AAEA,MAAA,IAAI,CAACM,aAAa,CAACqG,kBAAkB,EAAE;IAC3C,CAAC;IACDU,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAAC/G,aAAa,EAAE;AACpB,QAAA,IAAI,CAACA,aAAa,CAAC+G,oBAAoB,EAAE;AAC7C,MAAA;IACJ,CAAC;IACDT,kBAAkB,EAAA,SAAlBA,kBAAkBA,GAAG;AAAA,MAAA,IAAAiD,MAAA,GAAA,IAAA;AACjB,MAAA,IAAI,CAAC,IAAI,CAACtJ,cAAc,EAAE;QACtB,IAAI,CAACA,iBAAiB,YAAM;UACxB,IAAIsJ,MAAI,CAAC7J,cAAa,IAAK,CAAC8J,aAAa,EAAE,EAAE;YACzCD,MAAI,CAAC7J,cAAa,GAAI,KAAK;AAC/B,UAAA;QACJ,CAAC;QAEDsC,MAAM,CAACkH,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACjJ,cAAc,CAAC;AAC1D,MAAA;IACJ,CAAC;IACDmB,oBAAoB,EAAA,SAApBA,oBAAoBA,GAAG;MACnB,IAAI,IAAI,CAACnB,cAAc,EAAE;QACrB+B,MAAM,CAACmH,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAClJ,cAAc,CAAC;QACzD,IAAI,CAACA,iBAAiB,IAAI;AAC9B,MAAA;IACJ,CAAC;IACD2I,6BAA6B,EAAA,SAA7BA,6BAA6BA,GAAG;AAC5B,MAAA,IAAI,CAAC,IAAI,CAAC9I,yBAAyB,EAAE;QACjC,IAAI,CAACA,yBAAwB,GAAI,IAAI,CAACsI,MAAM,CAACqB,IAAI,CAAC,IAAI,CAAC;QACvDvH,QAAQ,CAACgH,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACpJ,yBAAyB,CAAC;AAC1E,MAAA;IACJ,CAAC;IACDgJ,+BAA+B,EAAA,SAA/BA,+BAA+BA,GAAG;MAC9B,IAAI,IAAI,CAAChJ,yBAAyB,EAAE;QAChCoC,QAAQ,CAACiH,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACrJ,yBAAyB,CAAC;QACzE,IAAI,CAACA,yBAAwB,GAAI,IAAI;AACzC,MAAA;IACJ,CAAC;IACD+I,2BAA2B,EAAA,SAA3BA,2BAA2BA,GAAG;AAC1B,MAAA,IAAI,CAAC,IAAI,CAAC9I,uBAAuB,EAAE;QAC/B,IAAI,CAACA,0BAA0B,IAAI,CAACsI,SAAS,CAACoB,IAAI,CAAC,IAAI,CAAC;QACxDvH,QAAQ,CAACgH,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAACnJ,uBAAuB,CAAC;AACtE,MAAA;IACJ,CAAC;IACDgJ,6BAA6B,EAAA,SAA7BA,6BAA6BA,GAAG;MAC5B,IAAI,IAAI,CAAChJ,uBAAuB,EAAE;QAC9BmC,QAAQ,CAACiH,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAACpJ,uBAAuB,CAAC;QACrE,IAAI,CAACA,uBAAsB,GAAI,IAAI;AACvC,MAAA;IACJ,CAAC;AACD2J,IAAAA,SAAS,EAAA,SAATA,SAASA,CAACxD,EAAE,EAAE;MACV,IAAI,CAAC7F,MAAK,GAAI6F,EAAE;IACpB,CAAC;AACDyD,IAAAA,gBAAgB,EAAA,SAAhBA,gBAAgBA,CAACzD,EAAE,EAAE;MACjB,IAAI,CAAC5F,aAAY,GAAI4F,EAAE;IAC3B,CAAC;AACD0D,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAAC1D,EAAE,EAAE;MACf,IAAI,CAAC3F,WAAU,GAAI2F,EAAE;IACzB,CAAC;AACD2D,IAAAA,UAAU,EAAA,SAAVA,UAAUA,CAAC3D,EAAE,EAAE;MACX,IAAI,CAAC1F,OAAM,GAAI0F,EAAE;IACrB,CAAC;AACD4D,IAAAA,YAAY,EAAA,SAAZA,YAAYA,CAAC5D,EAAE,EAAE;MACb,IAAI,CAACzF,SAAQ,GAAIyF,EAAE;IACvB,CAAC;IACD1E,SAAS,EAAA,SAATA,SAASA,GAAG;MACR,IAAI,CAACnB,MAAK,GAAI,IAAI;MAClB,IAAI,CAACC,gBAAgB,IAAI;MACzB,IAAI,CAACC,WAAU,GAAI,IAAI;MACvB,IAAI,CAACC,OAAM,GAAI,IAAI;MACnB,IAAI,CAACC,SAAQ,GAAI,IAAI;IACzB,CAAC;AACDsJ,IAAAA,cAAc,EAAA,SAAdA,cAAcA,CAACnI,KAAK,EAAE;AAClBoI,MAAAA,eAAe,CAACC,IAAI,CAAC,eAAe,EAAE;AAClCC,QAAAA,aAAa,EAAEtI,KAAK;QACpB+G,MAAM,EAAE,IAAI,CAACV;AACjB,OAAC,CAAC;AACN,IAAA;GACH;AACDkC,EAAAA,UAAU,EAAE;AACRC,IAAAA,MAAM,EAAEA;AACZ;AACJ,CAAC;;;;;;;;;;;ECtkBG,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAkBK,OAlBLC,UAAA,CAkBK;AAlBAC,IAAAA,GAAG,EAAC,WAAU;AAAG,IAAA,OAAA,EAAOC,IAAA,CAAAC,EAAE,CAAA,MAAA;KAAkBD,IAAA,CAAAE,IAAI,CAAA,MAAA,CAAA,CAAA,EAAA,EACnCF,IAAA,CAAArM,MAAM,IAApBiM,SAAA,EAAA,EAAAC,kBAAA,CAAmO,SAAnOC,UAAA,CAAmO;;AAA7MC,IAAAA,GAAG,EAAC,OAAM;IAAGI,EAAE,EAAEH,IAAA,CAAA3L,OAAO;AAAEX,IAAAA,IAAI,EAAC,MAAK;AAAG,IAAA,OAAA,EAAOsM,IAAA,CAAAC,EAAE,CAAA,SAAA,CAAA;AAAaG,IAAAA,QAAO,EAAP,EAAO;IAAGrM,QAAQ,EAAEiM,IAAA,CAAAjM,QAAQ;IAAG4I,QAAQ,EAAEqD,IAAA,CAAArD,QAAQ;IAAG0D,OAAK;aAAEC,QAAA,CAAA5D,YAAA,IAAA4D,QAAA,CAAA5D,YAAA,CAAA6D,KAAA,CAAAD,QAAA,EAAAE,SAAA,CAAY;AAAA,IAAA,CAAA,CAAA;IAAGC,SAAO;aAAEH,QAAA,CAAA1D,cAAA,IAAA0D,QAAA,CAAA1D,cAAA,CAAA2D,KAAA,CAAAD,QAAA,EAAAE,SAAA,CAAc;AAAA,IAAA,CAAA,CAAA;IAAGrD,MAAI;aAAEmD,QAAA,CAAAvD,WAAA,IAAAuD,QAAA,CAAAvD,WAAA,CAAAwD,KAAA,CAAAD,QAAA,EAAAE,SAAA,CAAW;IAAA,CAAA;KAAUR,IAAA,CAAAU,GAAG,CAAA,SAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAAC,UAAA,CAAA,kCACrNC,WAAA,CAeQC,iBAAA,EAAA;IAfC1M,QAAQ,EAAE6L,IAAA,CAAA7L,QAAQ;IAAGwI,QAAQ,EAAEqD,IAAA,CAAArM;;uBACpC,YAAA;AAAA,MAAA,OAaY,CAbZiN,WAAA,CAaYE,YAbZhB,UAAA,CAaY;AAbAxM,QAAAA,IAAI,EAAC,oBAAmB;QAAGyN,OAAK,EAAET,QAAA,CAAA9E,cAAc;QAAGwF,OAAK,EAAEV,QAAA,CAAAjE,cAAc;QAAG4E,YAAW,EAAEX,QAAA,CAAA/D;SAA6ByD,IAAA,CAAAU,GAAG,CAAA,YAAA,CAAA,CAAA,EAAA;2BAChI,YAAA;UAAA,OAWK,CAXM,CAAAV,IAAA,CAAArM,MAAK,UAAWuN,KAAA,CAAAjM,cAAc,KAAzC2K,SAAA,EAAA,EAAAC,kBAAA,CAWK,OAXLC,UAAA,CAWK;;YAXuCC,GAAG,EAAEO,QAAA,CAAArB,SAAS;AAAG,YAAA,OAAA,EAAK,CAAGe,IAAA,CAAAC,EAAE,CAAA,OAAA,CAAA,EAAWD,IAAA,CAAA1L,UAAU,EAAE0L,IAAA,CAAAzL,YAAY,CAAA;YAAI8L,OAAK;qBAAEC,QAAA,CAAAhB,cAAA,IAAAgB,QAAA,CAAAhB,cAAA,CAAAiB,KAAA,CAAAD,QAAA,EAAAE,SAAA,CAAc;YAAA,CAAA;WAAe,EAAAW,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAAnB,IAAA,CAAAU,GAAG,YAAcV,IAAA,CAAAU,GAAG,CAAA,SAAA,CAAA,CAAA,CAAA,EAAA,CAClKU,kBAAA,CASK,OATLtB,UAAA,CASK;AATC,YAAA,OAAA,EAAOE,IAAA,CAAAC,EAAE,CAAA,SAAA;aAAqBD,IAAA,CAAAU,GAAG,CAAA,SAAA,CAAA,CAAA,EAAA,CACnCU,kBAAA,CAIK,OAJLtB,UAAA,CAIK;YAJCC,GAAG,EAAEO,QAAA,CAAApB,gBAAgB;AAAG,YAAA,OAAA,EAAOc,IAAA,CAAAC,EAAE,CAAA,eAAA,CAAA;AAAoBoB,YAAAA,WAAS,EAAAC,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAEjB,QAAA,CAAAjD,gBAAgB,CAACkE,MAAM,CAAA;AAAA,YAAA,CAAA,CAAA;AAAIC,YAAAA,YAAU,EAAAF,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAEjB,QAAA,CAAA/C,gBAAgB,CAACgE,MAAM,CAAA;AAAA,YAAA,CAAA,CAAA;AAAIE,YAAAA,WAAS,EAAAH,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAEjB,QAAA,CAAA3C,MAAM,CAAC4D,MAAM,CAAA;AAAA,YAAA,CAAA,CAAA;AAAIG,YAAAA,UAAQ;qBAAEpB,QAAA,CAAA1C,SAAS,EAAA;YAAA,CAAA;aAAYoC,IAAA,CAAAU,GAAG,CAAA,eAAA,CAAA,CAAA,EAAA,CAClMU,kBAAA,CAEK,OAFLtB,UAAA,CAEK;AAFC,YAAA,OAAA,EAAOE,IAAA,CAAAC,EAAE,CAAA,iBAAA;aAA6BD,IAAA,CAAAU,GAAG,CAAA,iBAAA,CAAA,CAAA,EAAA,CAC3CU,kBAAA,CAAuF,OAAvFtB,UAAA,CAAuF;YAAjFC,GAAG,EAAEO,QAAA,CAAAnB,cAAc;AAAG,YAAA,OAAA,EAAOa,IAAA,CAAAC,EAAE,CAAA,aAAA;aAAyBD,IAAA,CAAAU,GAAG,CAAA,aAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAGzEU,kBAAA,CAEK,OAFLtB,UAAA,CAEK;YAFCC,GAAG,EAAEO,QAAA,CAAAlB,UAAU;AAAG,YAAA,OAAA,EAAOY,IAAA,CAAAC,EAAE,CAAA,KAAA,CAAA;AAAUoB,YAAAA,WAAS,EAAAC,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAEjB,QAAA,CAAAxC,cAAc,CAACyD,MAAM,CAAA;AAAA,YAAA,CAAA,CAAA;AAAIC,YAAAA,YAAU,EAAAF,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAEjB,QAAA,CAAAvC,cAAc,CAACwD,MAAM,CAAA;AAAA,YAAA,CAAA,CAAA;AAAIE,YAAAA,WAAS,EAAAH,MAAA,CAAA,CAAA,CAAA,KAAAA,MAAA,CAAA,CAAA,CAAA,GAAA,UAAAC,MAAA,EAAA;AAAA,cAAA,OAAEjB,QAAA,CAAA3C,MAAM,CAAC4D,MAAM,CAAA;AAAA,YAAA,CAAA,CAAA;AAAIG,YAAAA,UAAQ;qBAAEpB,QAAA,CAAA1C,SAAS,EAAA;YAAA,CAAA;aAAYoC,IAAA,CAAAU,GAAG,CAAA,KAAA,CAAA,CAAA,EAAA,CAC9KU,kBAAA,CAAiF,OAAjFtB,UAAA,CAAiF;YAA3EC,GAAG,EAAEO,QAAA,CAAAjB,YAAY;AAAG,YAAA,OAAA,EAAOW,IAAA,CAAAC,EAAE,CAAA,WAAA;aAAuBD,IAAA,CAAAU,GAAG,CAAA,WAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA;;;;;;;;;;;;;"}