@svar-ui/react-core 2.5.0 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.es.js +576 -571
- package/dist/index.es.js.map +1 -1
- package/dist-full/index.css +1 -1
- package/package.json +3 -3
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/context.js","../src/components/helpers/getInputId.js","../src/components/TextArea.jsx","../src/components/Button.jsx","../src/components/Checkbox.jsx","../src/components/CheckboxGroup.jsx","../src/components/Portal.jsx","../src/components/Popup.jsx","../src/components/helpers/InlineDropdown.jsx","../src/components/Dropdown.jsx","../src/components/ColorSelect.jsx","../src/components/helpers/sliderMove.js","../src/components/helpers/colorTransformator.js","../src/components/helpers/colorValidation.js","../src/components/helpers/locale.js","../src/components/ColorBoard.jsx","../src/components/ColorPicker.jsx","../src/components/helpers/listnav.js","../src/components/helpers/SuggestDropdown.jsx","../src/components/Combo.jsx","../src/components/Text.jsx","../src/components/calendar/Header.jsx","../src/components/calendar/Button.jsx","../src/components/calendar/Month.jsx","../src/components/calendar/Year.jsx","../src/components/calendar/Duodecade.jsx","../src/components/calendar/helpers.js","../src/components/calendar/Panel.jsx","../src/Locale.jsx","../src/components/Calendar.jsx","../src/components/helpers/dropdown.js","../src/components/DatePicker.jsx","../src/components/RangeCalendar.jsx","../src/components/DateRangePicker.jsx","../src/components/Fullscreen.jsx","../src/components/Icon.jsx","../src/components/MultiCombo.jsx","../src/components/Pager.jsx","../src/components/RadioButton.jsx","../src/components/RadioButtonGroup.jsx","../src/components/RichSelect.jsx","../src/components/Segmented.jsx","../src/components/Select.jsx","../src/components/Slider.jsx","../src/components/Switch.jsx","../src/components/Tabs.jsx","../src/components/Counter.jsx","../src/components/Notice.jsx","../src/components/Notices.jsx","../src/components/Modal.jsx","../src/components/Globals.jsx","../src/Globals.jsx","../src/components/Field.jsx","../src/components/TwoState.jsx","../src/components/TimePicker.jsx","../src/components/ModalArea.jsx","../src/components/SideArea.jsx","../src/components/Avatar.jsx","../src/themes/FontRoboto.jsx","../src/themes/Material.jsx","../src/themes/FontOpenSans.jsx","../src/themes/Willow.jsx","../src/themes/WillowDark.jsx","../src/components/helpers/popup.js","../src/index.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport const theme = createContext('');\nexport const helpers = createContext({});\nexport const i18n = createContext(null);\nexport const fieldId = createContext(null);\n","import { useContext, useState } from 'react';\nimport { fieldId } from '../../context';\nimport { uid } from '@svar-ui/lib-dom';\n\nexport function useInputId(id) {\n const contextId = useContext(fieldId);\n\n const [inputId] = useState(() => id || contextId || uid());\n\n return inputId;\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\n\nimport './TextArea.css';\n\nexport default function TextArea({\n value: propValue = '',\n id,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n readonly = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(propValue);\n\n const handleInput = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n if (onChange) {\n onChange({ value: newValue, input: true });\n }\n },\n [onChange],\n );\n\n const ontextchange = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n if (onChange) {\n onChange({ value: newValue });\n }\n },\n [onChange],\n );\n\n const inputRef = useRef(null);\n useEffect(() => {\n const handler = ontextchange;\n const node = inputRef.current;\n node.addEventListener('change', handler);\n return () => {\n if (node) {\n node.removeEventListener('change', handler);\n }\n };\n }, [ontextchange]);\n\n return (\n <textarea\n className={'wx-3yFVAC' + ` wx-textarea ${error ? 'wx-error' : ''}`}\n id={inputId}\n disabled={disabled}\n placeholder={placeholder}\n readOnly={readonly}\n title={title}\n value={value}\n onInput={handleInput}\n ref={inputRef}\n />\n );\n}\n","import { useMemo } from 'react';\nimport './Button.css';\n\nexport default function Button({\n type = '',\n css = '',\n icon = '',\n disabled = false,\n title = '',\n text = '',\n children,\n onClick,\n}) {\n const buttonCss = useMemo(() => {\n let cssType = type\n ? type\n .split(' ')\n .filter((a) => a !== '')\n .map((x) => 'wx-' + x)\n .join(' ')\n : '';\n return css + (css ? ' ' : '') + cssType;\n }, [type, css]);\n\n const handleClick = (ev) => {\n onClick && onClick(ev);\n };\n\n return (\n <button\n title={title}\n className={`wx-2ZWgb4 wx-button ${buttonCss} ${icon && !children ? 'wx-icon' : ''}`}\n disabled={disabled}\n onClick={handleClick}\n >\n {icon && <i className={'wx-2ZWgb4 ' + icon}></i>}\n {children ? children : text || ' '}\n </button>\n );\n}\n","import { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Checkbox.css';\n\nexport default function Checkbox({\n id,\n label = '',\n inputValue = '',\n value: valueProp = false,\n onChange,\n disabled = false,\n style\n}) {\n\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(valueProp);\n\n const handlerChange = ({ target }) => {\n const newValue = target.checked;\n setValue(newValue);\n onChange && onChange({ value: newValue, inputValue });\n };\n\n return (\n <div style={style} className=\"wx-2IvefP wx-checkbox\">\n <input\n type=\"checkbox\"\n id={inputId}\n disabled={disabled}\n className=\"wx-2IvefP wx-check\"\n checked={value}\n value={inputValue}\n onChange={handlerChange}\n />\n <label htmlFor={inputId} className=\"wx-2IvefP wx-label\">\n <span className=\"wx-2IvefP wx-before\"></span>\n {label && <span className=\"wx-2IvefP wx-after\">{label}</span>}\n </label>\n </div>\n );\n}\n","import { useCallback } from 'react';\nimport Checkbox from './Checkbox.jsx';\nimport './CheckboxGroup.css';\nimport { fieldId } from \"../context\";\n\nexport default function CheckboxGroup({\n options = [],\n value = [],\n type = '',\n onChange,\n}) {\n // Handle both onchange and onChange props for compatibility\n const handleChange = useCallback(\n (obj) => {\n let newValue;\n if (obj.value) newValue = [...value, obj.inputValue];\n else newValue = value.filter((a) => a !== obj.inputValue);\n\n if (onChange) onChange({ value: newValue });\n },\n [value, onChange],\n );\n\n return (\n <fieldId.Provider value={null}>\n <div className={`wx-q8xwRD wx-checkboxgroup ${type && `wx-${type}`}`}>\n {options.map((option) => (\n <div key={option.id} className=\"wx-q8xwRD wx-item\">\n <Checkbox\n label={option.label}\n inputValue={option.id}\n value={value.includes(option.id)}\n onChange={handleChange}\n />\n </div>\n ))}\n </div>\n </fieldId.Provider>\n );\n}\n","import { useContext, useRef, useEffect, useState } from 'react';\nimport { theme as themeContext } from '../context.js';\nimport { env } from '@svar-ui/lib-dom';\nimport { createPortal } from 'react-dom';\n\nfunction Portal({ theme: initialTheme = '', target, children }) {\n const portalRef = useRef(null);\n const componentRef = useRef(null);\n const [targetRef, setTargetRef] = useState(null);\n\n if (!portalRef.current) {\n portalRef.current = document.createElement('div');\n }\n\n const contextTheme = useContext(themeContext);\n\n useEffect(() => {\n setTargetRef(\n target ||\n getParentRoot(componentRef.current) ||\n env.getTopNode(componentRef.current),\n );\n }, [componentRef.current]);\n\n return (\n <>\n <span ref={componentRef} style={{ display: 'none' }} />\n {componentRef.current && targetRef\n ? createPortal(\n <div\n className={`wx-3ZWsT0 wx-${initialTheme || contextTheme}-theme`}\n >\n {children}\n </div>,\n targetRef,\n )\n : null}\n </>\n );\n}\n\nexport default Portal;\n\nfunction getParentRoot(p) {\n const root = env.getTopNode(p);\n while (p && p !== root && !p.getAttribute('data-wx-portal-root')) {\n p = p.parentNode;\n }\n return p;\n}\n","import { useState, useEffect, useRef, useCallback, useLayoutEffect } from 'react';\nimport { clickOutside, calculatePosition, getAbsParent } from '@svar-ui/lib-dom';\nimport './Popup.css';\n\nexport function Popup({\n left = 0,\n top = 0,\n at = 'bottom',\n parent = null,\n width = 'auto',\n css = '',\n onCancel,\n children,\n trackScroll = false,\n}) {\n const [x, setX] = useState(0);\n const [y, setY] = useState(0);\n const [w, setW] = useState('auto');\n const [visible, setVisible] = useState(false);\n\n const self = useRef(null);\n const portalRef = useRef(null);\n\n function getWidth(calcWidth) {\n if (parent && (width + '').indexOf('%') > -1) {\n return width.replace(/(\\d+)%/, (match, value) => {\n value = (value * parent.offsetWidth) / 100 + 'px';\n return width.replace(match, value);\n });\n }\n return width && width !== 'auto' ? width : calcWidth;\n }\n\n const updatePosition = useCallback(() => {\n if (!self.current) return;\n\n const result = calculatePosition(self.current, parent, at, left, top);\n if (result) {\n setX(result.x);\n setY(result.y);\n setW(getWidth(result.width));\n }\n }, [self, parent, at, left, top, width]);\n\n useLayoutEffect(() => {\n const onScroll = (e) => {\n if (onCancel && e.target !== portalRef.current && self.current && !self.current.contains(e.target))\n onCancel(e);\n };\n\n requestAnimationFrame(() => {\n updatePosition();\n setVisible(true);\n if (trackScroll && self.current) {\n portalRef.current = getAbsParent(self.current);\n if (portalRef.current)\n portalRef.current.addEventListener('scroll', onScroll, true);\n }\n });\n\n return () => {\n if (trackScroll && portalRef.current)\n portalRef.current.removeEventListener('scroll', onScroll, true);\n };\n }, []);\n\n useLayoutEffect(() => {\n updatePosition();\n }, [parent, at, left, top]);\n\n useEffect(() => {\n const down = (e) => {\n onCancel && onCancel(e);\n };\n if (self.current) {\n return clickOutside(self.current, down).destroy;\n }\n }, [onCancel]);\n\n return (\n <div\n ref={self}\n className={['wx-37M6Fj', 'wx-popup', css].filter(Boolean).join(' ')}\n style={{\n position: 'absolute',\n visibility: visible ? 'visible' : 'hidden',\n top: y + 'px',\n left: x + 'px',\n width: w,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport default Popup;\n","import { useState, useEffect, useRef } from 'react';\nimport { clickOutside } from '@svar-ui/lib-dom';\nimport './InlineDropdown.css';\n\nfunction InlineDropdown({\n position: positionProp = 'bottom',\n align: alignProp = 'start',\n autoFit = true,\n onCancel = null,\n width = '100%',\n css = '',\n children,\n}) {\n const nodeRef = useRef(null);\n const [position, setPosition] = useState(positionProp);\n const [align, setAlign] = useState(alignProp);\n\n useEffect(() => {\n if (autoFit) {\n const node = nodeRef.current;\n if (node) {\n const nodeCoords = node.getBoundingClientRect();\n const bodyCoords = document.body.getBoundingClientRect();\n\n if (nodeCoords.right >= bodyCoords.right) {\n setAlign('end');\n }\n\n if (nodeCoords.bottom >= bodyCoords.bottom) {\n setPosition('top');\n }\n }\n }\n }, []);\n\n useEffect(() => {\n if (nodeRef.current) {\n const down = (e) => {\n onCancel && onCancel(e);\n };\n return clickOutside(nodeRef.current, down).destroy;\n }\n }, [onCancel]);\n\n return (\n <div\n ref={nodeRef}\n className={[\n 'wx-dropdown',\n `wx-${position}-${align}`,\n css || '',\n 'wx-aaaVytZW',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{ width: width }}\n >\n {children}\n </div>\n );\n}\n\nexport default InlineDropdown;\n","import { useState, useEffect, useRef, useMemo, useLayoutEffect } from 'react';\nimport Portal from './Portal.jsx';\nimport Popup from './Popup.jsx';\nimport InlineDropdown from './helpers/InlineDropdown.jsx';\nimport './Dropdown.css';\n\nfunction Dropdown({\n position = 'bottom',\n align = 'start',\n autoFit = true,\n inline = false,\n onCancel,\n width = '100%',\n children,\n ...props\n}) {\n const [target, setTarget] = useState(undefined);\n const nodeRef = useRef(null);\n\n const at = useMemo(() => `${position}-${align}`, [position, align]);\n\n useLayoutEffect(() => {\n if (nodeRef.current) {\n setTarget(nodeRef.current.parentNode);\n }\n }, []);\n\n return (\n <>\n {target && (inline ? (\n <InlineDropdown\n onCancel={onCancel}\n position={position}\n align={align}\n autoFit={autoFit}\n width={width}\n {...props}\n >\n {children}\n </InlineDropdown>\n ) : (\n <Portal>\n <Popup parent={target} at={at} onCancel={onCancel} width={width} {...props}>\n {children}\n </Popup>\n </Portal>\n ))}\n <span ref={nodeRef} className=\"wx-portal-node wx-32GZ52\" />\n </>\n );\n}\n\nexport default Dropdown;\n","import { useState, useCallback } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport Dropdown from './Dropdown.jsx';\nimport './ColorSelect.css';\n\nconst defaultColors = [\n '#00a037',\n '#37a9ef',\n '#f5a623',\n '#ff4c3b',\n '#a0a0a0',\n '#000000',\n '#ffffff',\n];\n\nexport default function ColorSelect({\n colors = defaultColors,\n value = '',\n onChange,\n id,\n clear = false,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const [currentValue, setCurrentValue] = useState(value);\n const [popup, setPopup] = useState(false);\n\n const selectColor = useCallback(\n (ev, color) => {\n ev.stopPropagation();\n setCurrentValue(color);\n setPopup(false);\n onChange && onChange({ value: color });\n },\n [onChange],\n );\n\n const unselectColor = useCallback(\n (ev) => {\n ev.stopPropagation();\n setCurrentValue('');\n onChange && onChange({ value: '' });\n },\n [onChange],\n );\n\n const handlePopup = useCallback(() => {\n if (disabled) return false;\n setPopup(true);\n }, [disabled]);\n\n return (\n <div className=\"wx-121TgJ wx-colorselect\" onClick={handlePopup}>\n <input\n className={\n 'wx-121TgJ wx-input' +\n (error ? ' wx-error' : '') +\n (popup ? ' wx-focus' : '')\n }\n title={title}\n value={currentValue}\n readOnly\n id={inputId}\n placeholder={placeholder}\n disabled={disabled}\n />\n\n {clear && currentValue && !disabled && (\n <i className=\"wx-121TgJ wx-clear wxi-close\" onClick={unselectColor}></i>\n )}\n\n {currentValue ? (\n <div\n className=\"wx-121TgJ wx-color wx-selected\"\n style={{ backgroundColor: currentValue || '#00a037' }}\n ></div>\n ) : (\n <div className=\"wx-121TgJ wx-empty wx-selected\"></div>\n )}\n\n {popup && (\n <Dropdown onCancel={() => setPopup(false)} {...dropdown}>\n <div className=\"wx-121TgJ wx-colors\">\n <div\n className=\"wx-121TgJ wx-empty\"\n onClick={(ev) => selectColor(ev, '')}\n ></div>\n {colors.map((color, index) => (\n <div\n key={index}\n className=\"wx-121TgJ wx-color\"\n style={{ backgroundColor: color }}\n onClick={(ev) => selectColor(ev, color)}\n ></div>\n ))}\n </div>\n </Dropdown>\n )}\n </div>\n );\n}\n","export function sliderMove(node, config) {\n const slider = node.firstChild;\n const { moveBlockSlider, moveLineSlider } = config || {};\n\n function down(ev) {\n move(ev);\n\n slider.focus();\n\n window.addEventListener('mousemove', move);\n window.addEventListener('mouseup', up);\n }\n\n function move(ev) {\n let x, y, dx, dy;\n\n const coords = node.getBoundingClientRect();\n x = coords.left;\n y = coords.top;\n\n dx = ev.clientX - x;\n dy = ev.clientY - y;\n\n if (moveBlockSlider) config.moveBlockSlider(dx, dy);\n if (moveLineSlider) config.moveLineSlider(dx);\n }\n\n function up() {\n slider.blur();\n\n window.removeEventListener('mousemove', move);\n window.removeEventListener('mouseup', up);\n }\n\n node.addEventListener('mousedown', down);\n\n return {\n destroy() {\n node.removeEventListener('mousedown', down);\n },\n };\n}\n","const colorTransformator = {\n _toHex: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n ],\n toHex(number, length) {\n number = parseInt(number, 10);\n let str = '';\n while (number > 0) {\n str = this._toHex[number % 16] + str;\n number = Math.floor(number / 16);\n }\n while (str.length < length) str = `0${str}`;\n return str;\n },\n rgbToHex(rgb) {\n let arr = [];\n if (typeof rgb === 'string')\n rgb.replace(/[\\d+.]+/g, (v) => arr.push(parseFloat(v)));\n else if (Array.isArray(rgb)) arr = rgb;\n\n //transparent\n if (arr[3] === 0) return '';\n\n return arr\n .slice(0, 3)\n .map((n) => {\n return this.toHex(Math.floor(n), 2);\n })\n .join('');\n },\n hexToDec(hex) {\n return parseInt(hex, 16);\n },\n // only handles the six-digit hex color format\n hexToRgb(hex) {\n hex = hex.charAt(0) === '#' ? hex.slice(1) : hex;\n const rgbPairs = hex.match(/.{1,2}/g);\n\n let [r, g, b] = rgbPairs;\n\n r = this.hexToDec(r);\n g = this.hexToDec(g);\n b = this.hexToDec(b);\n\n return [r, g, b];\n },\n hsvToRgb(h, s, v) {\n let hi, f, p, q, t, r, g, b;\n hi = Math.floor(h / 60) % 6;\n f = h / 60 - hi;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n r = 0;\n g = 0;\n b = 0;\n switch (hi) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n default:\n break;\n }\n r = Math.floor(r * 255);\n g = Math.floor(g * 255);\n b = Math.floor(b * 255);\n\n return [r, g, b];\n },\n rgbToHsv(r, g, b) {\n let s, h, v;\n r /= 255;\n g /= 255;\n b /= 255;\n let min = Math.min(r, g, b);\n let max = Math.max(r, g, b);\n h = 0;\n s = max === 0 ? 0 : 1 - min / max;\n v = max;\n if (max === min) {\n h = 0;\n } else if (max === r && g >= b) {\n h = (60 * (g - b)) / (max - min) + 0;\n } else if (max === r && g < b) {\n h = (60 * (g - b)) / (max - min) + 360;\n } else if (max === g) {\n h = (60 * (b - r)) / (max - min) + 120;\n } else if (max === b) {\n h = (60 * (r - g)) / (max - min) + 240;\n }\n\n return [h, s, v];\n },\n hexToHvs(hex) {\n const rgb = this.hexToRgb(hex);\n return this.rgbToHsv(...rgb);\n },\n hvsToHex(h, v, s) {\n const rgb = this.hsvToRgb(h, v, s);\n return '#' + this.rgbToHex(rgb).toUpperCase();\n },\n};\n\nexport default colorTransformator;\n","const hexValidation = (str) => /^([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(str);\n\nexport function parseColor(value) {\n if (!value) return null;\n\n value = value.toString(16);\n\n if (value.charAt(0) === '#') value = value.slice(1);\n\n if (hexValidation(value)) {\n if (value.length === 3) {\n value = value\n .slice(0, 3)\n .split('')\n .reduce((a, b) => a + b + b, '');\n }\n return `#${value.toUpperCase()}`;\n }\n\n return null;\n}\n","import { locale } from '@svar-ui/lib-dom';\nimport { en } from '@svar-ui/core-locales';\n\nexport function defaultLocale() {\n return locale(en);\n}\n","import {\n useState,\n useEffect,\n useRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport Button from './Button.jsx';\nimport { sliderMove } from './helpers/sliderMove.js';\nimport colorTransformator from './helpers/colorTransformator.js';\nimport { parseColor } from './helpers/colorValidation.js';\nimport { i18n } from '../context.js';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './ColorBoard.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nconst BLOCK = 'Block';\nconst LINE = 'Line';\n\nfunction ColorBoard({\n value: valueProp = '#65D3B3',\n button = false,\n onChange,\n}) {\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const blockRef = useRef(null);\n const colorLineRef = useRef(null);\n\n const [blockTop, setBlockTop] = useState();\n const [blockLeft, setBlockLeft] = useState();\n const [hueColor, setHueColor] = useState();\n const [lineLeft, setLineLeft] = useState();\n\n const [value, setValue] = useWritableProp(valueProp);\n const [inputValue, setInputValue] = useState(valueProp); \n\n const moveBlockSliderRef = useRef(null);\n const moveLineSliderRef = useRef(null);\n\n const color = useMemo(() => parseColor(value) || '#65D3B3', [value]);\n const blockColor = useMemo(\n () => colorTransformator.hvsToHex(hueColor || 0, 1, 1),\n [hueColor],\n );\n\n const moveBlockSlider = useCallback(\n (dx, dy) => {\n const { width, height } = blockRef.current.getBoundingClientRect();\n\n if (dy < 0) dy = 0;\n else if (dy > height) dy = height;\n\n if (dx < 0) dx = 0;\n else if (dx > width) dx = width;\n\n setBlockTop(dy);\n setBlockLeft(dx);\n\n // Call setCurrentColor\n let _sValue, _vValue;\n\n const pxX = width / 100;\n const pxY = height / 100;\n\n _sValue = Math.ceil(dx / pxX) / 100;\n _vValue = Math.ceil(Math.abs(dy / pxY - 100)) / 100;\n\n const newValue = colorTransformator.hvsToHex(\n hueColor,\n _sValue,\n _vValue,\n );\n setValue(newValue);\n setInputValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [color, hueColor, onChange],\n );\n\n const moveLineSlider = useCallback(\n (dx) => {\n const width = colorLineRef.current.getBoundingClientRect().width;\n\n if (dx < 0) dx = 0;\n else if (dx > width) dx = width;\n\n const h = Math.round((dx * 359) / width);\n const newHue = Math.max(Math.min(h, 359), 0);\n setHueColor(newHue);\n setLineLeft(dx);\n\n // Call setCurrentColor with lineSliderMove=true\n let _sValue, _vValue;\n [, _sValue, _vValue] = colorTransformator.hexToHvs(color);\n const newValue = colorTransformator.hvsToHex(newHue, _sValue, _vValue);\n setValue(newValue);\n setInputValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [color, onChange],\n );\n\n moveBlockSliderRef.current = moveBlockSlider;\n moveLineSliderRef.current = moveLineSlider;\n\n const setSlidersPosition = useCallback((newColor) => {\n const [h, s, v] = colorTransformator.hexToHvs(newColor || color);\n setHueColor(h);\n\n if (blockRef.current) {\n const { width, height } = blockRef.current.getBoundingClientRect();\n\n if (colorLineRef.current) {\n setLineLeft(\n (h * colorLineRef.current.getBoundingClientRect().width) / 359,\n );\n }\n setBlockLeft(s * width);\n setBlockTop(Math.abs(height * (v - 1)));\n }\n }, [color]);\n\n const handleChange = useCallback(\n ({ target }) => {\n const newColor = parseColor(target.value);\n setInputValue(target.value);\n if (newColor) {\n setValue(newColor);\n onChange && onChange({ value: newColor, input: true });\n setSlidersPosition(newColor);\n }\n },\n [onChange, setSlidersPosition],\n );\n\n const handleSelect = useCallback(\n (ev) => {\n ev.stopPropagation();\n onChange && onChange({ value: color });\n },\n [color, onChange],\n );\n\n const keydown = useCallback(\n (ev) => {\n const slider = ev.target;\n const isSliderBlock = slider.getAttribute('data-slider') === BLOCK;\n const isSliderLine = slider.getAttribute('data-slider') === LINE;\n\n let css = window.getComputedStyle(slider);\n let left = parseFloat(css.left);\n let top = parseFloat(css.top);\n const code = ev.code;\n\n if (isSliderBlock) {\n switch (code) {\n case 'ArrowLeft': {\n left--;\n break;\n }\n case 'ArrowRight': {\n left++;\n break;\n }\n case 'ArrowDown': {\n top++;\n break;\n }\n case 'ArrowUp': {\n top--;\n break;\n }\n default:\n return;\n }\n\n moveBlockSlider(left, top);\n }\n\n if (isSliderLine) {\n if (code === 'ArrowLeft' || code === 'ArrowDown') left--;\n else if (code === 'ArrowRight' || code === 'ArrowUp') left++;\n else return;\n moveLineSlider(left);\n }\n\n ev.preventDefault();\n },\n [moveBlockSlider, moveLineSlider],\n );\n \n useEffect(() => {\n const destroy = [];\n if (blockRef.current) {\n destroy.push(\n sliderMove(blockRef.current, {\n moveBlockSlider: (dx, dy) => {\n moveBlockSliderRef.current?.(dx, dy);\n },\n }).destroy,\n );\n }\n if (colorLineRef.current) {\n destroy.push(\n sliderMove(colorLineRef.current, {\n moveLineSlider: (dx) => {\n moveLineSliderRef.current?.(dx);\n },\n }).destroy,\n );\n }\n requestAnimationFrame(()=> setSlidersPosition());\n return () => {\n destroy.forEach((d) => d());\n };\n }, []);\n const cssScope = 'wx-1yoKzq';\n\n return (\n <div className={cssScope + ' wx-colorboard'}>\n <div\n className={cssScope + ' wx-color-block'}\n style={{ background: blockColor }}\n ref={blockRef}\n >\n <div\n className={cssScope + ' wx-color-block-slider wx-slider'}\n style={{\n background: color,\n top: blockTop + 'px',\n left: blockLeft + 'px',\n }}\n tabIndex={0}\n data-slider={BLOCK}\n onKeyDown={keydown}\n ></div>\n </div>\n <div className={cssScope + ' wx-color-line'} ref={colorLineRef}>\n <div\n className={cssScope + ' wx-color-line-slider wx-slider'}\n style={{ background: blockColor, left: lineLeft + 'px' }}\n tabIndex={0}\n data-slider={LINE}\n onKeyDown={keydown}\n ></div>\n </div>\n <div className={cssScope + ' wx-color-controls'}>\n <div\n className={cssScope + ' wx-color'}\n style={{ background: color }}\n ></div>\n <input\n type=\"text\"\n className={cssScope + ' wx-text'}\n value={inputValue}\n onChange={handleChange}\n />\n </div>\n {button && (\n <Button onClick={handleSelect} type=\"secondary\">\n {_('select')}\n </Button>\n )}\n </div>\n );\n}\n\nexport default ColorBoard;\n","import { useState } from 'react';\nimport Dropdown from './Dropdown.jsx';\nimport ColorBoard from './ColorBoard.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\n\nimport './ColorPicker.css';\n\nexport default function ColorPicker({\n value: propertyValue = '',\n id,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n clear = false,\n onChange,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n let [value, setValue] = useWritableProp(propertyValue);\n const [popup, setPopup] = useState(false);\n\n function handlePopup() {\n if (disabled) return false;\n setPopup(true);\n }\n\n function selectColor(ev) {\n if (ev.input) return;\n\n setPopup(false);\n const newValue = ev.value;\n setValue(newValue);\n if (onChange) onChange({ value: newValue });\n }\n\n function unselectColor(ev) {\n ev.stopPropagation();\n setValue('');\n if (onChange) onChange({ value: '' });\n }\n\n return (\n <div className=\"wx-mmT8WH wx-colorpicker\" onClick={handlePopup}>\n <input\n className={\n 'wx-mmT8WH wx-input' +\n (error ? ' wx-error' : '') +\n (popup ? ' wx-focus' : '')\n }\n title={title}\n value={value}\n readOnly\n id={inputId}\n placeholder={placeholder}\n disabled={disabled}\n />\n <div className=\"wx-mmT8WH wx-color\" style={{ background: value }}></div>\n\n {clear && !disabled && value && (\n <i className=\"wx-mmT8WH wxi-close\" onClick={unselectColor}></i>\n )}\n\n {popup && (\n <Dropdown onCancel={() => setPopup(false)} {...dropdown}>\n <ColorBoard value={value} button=\"true\" onChange={selectColor} />\n </Dropdown>\n )}\n </div>\n );\n}\n","import { locateID } from '@svar-ui/lib-dom';\n\nexport function getListHandlers() {\n let navIndex = null;\n let isVisible = false;\n\n let virtualized = false;\n\n let list, options, navCallback, selectCallback;\n const init = (l, o, n, c, v) => {\n list = l;\n options = o;\n navCallback = n;\n selectCallback = c;\n virtualized = v;\n };\n\n const setNav = (index) => {\n navIndex = index;\n isVisible = navIndex !== null;\n navCallback(navIndex);\n };\n\n const scrollTo = (navIndex, ev) => {\n if (!virtualized && navIndex !== null && list) {\n const next = list.querySelectorAll(`.wx-list > .wx-item`)[navIndex];\n if (next) {\n next.scrollIntoView({ block: 'nearest' });\n if (ev) ev.preventDefault();\n }\n }\n };\n\n const navigate = (dir, ev) => {\n const index =\n dir === null\n ? null\n : Math.max(0, Math.min(navIndex + dir, options.length - 1));\n if (index === navIndex) return;\n setNav(index);\n\n if (list) scrollTo(index, ev);\n else requestAnimationFrame(() => scrollTo(index, ev));\n };\n\n const move = (ev) => {\n const id = locateID(ev);\n const index = options.findIndex((a) => a.id === id);\n\n if (index !== navIndex) {\n setNav(index);\n }\n };\n\n const keydown = (ev, position) => {\n switch (ev.code) {\n case 'Enter':\n if (isVisible) selectCallback();\n else setNav(0);\n break;\n\n case 'Space':\n if (!isVisible) setNav(0);\n break;\n\n case 'Escape':\n navCallback((navIndex = null));\n break;\n\n case 'Tab':\n navCallback((navIndex = null));\n break;\n\n case 'ArrowDown':\n navigate(isVisible ? 1 : position || 0, ev);\n break;\n\n case 'ArrowUp':\n navigate(isVisible ? -1 : position || 0, ev);\n break;\n\n default:\n break;\n }\n };\n\n return { move, keydown, init, navigate };\n}\n","import { useEffect, useState, useRef, useCallback, useMemo, useLayoutEffect, memo } from 'react';\nimport { useContext } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport { getListHandlers } from './listnav';\nimport Dropdown from '../Dropdown.jsx';\nimport Checkbox from '../Checkbox.jsx';\nimport { i18n } from '../../context.js';\nimport './SuggestDropdown.css';\nimport { defaultLocale } from './locale.js';\n\nconst overscan = 10;\n\nconst ItemContent = memo(function ItemContent({ data, checkboxes, children, value }) {\n return (\n <>\n {checkboxes && (\n <Checkbox\n id={data.id}\n style = {{marginRight: \"8px\",pointerEvents: \"none\"}}\n value={value && value.includes(data.id)}\n />\n )}\n {children ? snippet(children, { option: data }) : data.label}\n </>\n );\n});\n\nfunction ListContent({\n visibleItems,\n visibleRange,\n navIndex,\n checkboxes,\n children,\n value,\n measureRefCallback,\n}) {\n return visibleItems.map((data, visibleIndex) => {\n const index = visibleRange.start + visibleIndex;\n return <div\n key={data.id}\n ref={visibleIndex === 0 ? measureRefCallback : undefined}\n className={`wx-233fr7 wx-item ${(index) === navIndex ? 'wx-focus' : ''}`}\n data-id={data.id}\n >\n <ItemContent\n data={data}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n </div>\n\n });\n}\n\nexport default function SuggestDropdown({\n items = [],\n children,\n onSelect,\n onReady,\n virtualized = false,\n checkboxes,\n multiselect,\n value,\n ...rest\n}) {\n const list = useRef();\n const initialScrolled = useRef(false);\n const helpers = useRef(getListHandlers());\n\n const [navIndex, setNavIndex] = useState(null);\n const navIndexRef = useRef(navIndex);\n\n const [scrollTop, setScrollTop] = useState(0);\n const [itemHeight, setItemHeight] = useState(24);\n const isItemHeightInitialized = useRef(false);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n // Keep refs current for use inside callbacks\n const itemsRef = useRef(items);\n useEffect(() => {\n itemsRef.current = items;\n }, [items]);\n\n const valueRef = useRef(value);\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const itemHeightRef = useRef(0);\n useEffect(() => {\n itemHeightRef.current = itemHeight;\n }, [itemHeight]);\n\n const selectItem = useCallback((ev) => {\n if (ev) ev.stopPropagation();\n const currentItems = itemsRef.current;\n const currentValue = valueRef.current;\n const currentNavIndex = navIndexRef.current;\n let nextValue;\n const nextId = currentItems[currentNavIndex]?.id;\n if (multiselect) {\n if (currentValue && currentValue.includes(nextId)) {\n nextValue = currentValue.filter(i => i !== nextId);\n } else {\n nextValue = [...(currentValue || []), nextId];\n }\n } else {\n nextValue = nextId;\n }\n onSelect && onSelect({ id: nextValue });\n }, [multiselect, onSelect]);\n\n const selectItemRef = useRef(selectItem);\n useEffect(() => {\n selectItemRef.current = selectItem;\n }, [selectItem]);\n\n const scrollToVirtualized = useCallback((idx) => {\n if (list.current) {\n let newScrollTop = idx * itemHeightRef.current - list.current.clientHeight + itemHeightRef.current;\n setScrollTop(newScrollTop);\n list.current.scrollTop = newScrollTop;\n }\n }, [itemHeightRef.current]);\n\n const listRefCallback = useCallback(\n (el) => {\n list.current = el;\n if (virtualized) {\n if (el && !initialScrolled.current && navIndexRef.current !== null) {\n requestAnimationFrame(() => {\n if (list.current) {\n scrollToVirtualized(navIndexRef.current);\n initialScrolled.current = true;\n }\n });\n }\n if (!el) {\n initialScrolled.current = false;\n }\n }\n },\n [scrollToVirtualized]\n );\n\n const measureRefCallback = useCallback((node) => {\n if (!node) return;\n if (isItemHeightInitialized.current) return;\n \n const height = node.getBoundingClientRect().height;\n \n if (height) {\n setItemHeight(height);\n itemHeightRef.current = height;\n isItemHeightInitialized.current = true;\n }\n }, []);\n \n useEffect(() => {\n helpers.current.init(\n list.current,\n items,\n (i) => {\n setNavIndex(i);\n navIndexRef.current = i;\n },\n (ev) => selectItemRef.current(ev),\n virtualized,\n );\n }, [items, list.current, virtualized]);\n\n useEffect(() => {\n const navigateVirtualized = (dir, ev) => {\n helpers.current.navigate(dir, ev);\n scrollToVirtualized(navIndexRef.current);\n };\n\n const keydownVirtualized = (ev, dir) => {\n const currentNavIndex = navIndexRef.current;\n const currentItems = itemsRef.current;\n if (\n currentNavIndex !== 0 &&\n currentNavIndex !== currentItems.length - 1 &&\n (ev.key === 'ArrowDown' || ev.key === 'ArrowUp')\n )\n ev.preventDefault();\n helpers.current.keydown(ev, dir);\n\n if (list.current) {\n const isTargetVisibleTop = list.current.scrollTop <= navIndexRef.current * itemHeightRef.current;\n const isTargetVisibleBottom =\n list.current.scrollTop + list.current.clientHeight >=\n navIndexRef.current * itemHeightRef.current + itemHeightRef.current;\n\n if (!isTargetVisibleTop) {\n list.current.scrollTop = navIndexRef.current * itemHeightRef.current;\n setScrollTop(list.current.scrollTop);\n } else if (!isTargetVisibleBottom) {\n scrollToVirtualized(navIndexRef.current);\n }\n }\n };\n\n onReady &&\n onReady({\n navigate: virtualized ? navigateVirtualized : helpers.current.navigate,\n keydown: virtualized ? keydownVirtualized : helpers.current.keydown,\n move: helpers.current.move,\n });\n }, []);\n\n const dropdownKey = useRef(0);\n const prevItemsRef = useRef(items);\n if (prevItemsRef.current !== items) {\n prevItemsRef.current = items;\n dropdownKey.current += 1;\n }\n\n const onCancel = useCallback(() => {\n helpers.current.navigate(null);\n }, [helpers]);\n\n const handleScroll = useCallback((ev) => {\n if (virtualized) {\n setScrollTop(ev.target.scrollTop);\n }\n }, [virtualized]);\n\n const displayedItemsCount = useMemo(\n () => Math.ceil((list.current?.clientHeight || 0) / itemHeight),\n [itemHeight, scrollTop],\n );\n\n const visibleRange = useMemo(() => {\n if (!virtualized) return { start: 0, end: items.length };\n if (!items.length) return { start: 0, end: 0 };\n\n const start = Math.floor(scrollTop / itemHeight);\n const end = start + displayedItemsCount;\n\n return {\n start: Math.max(0, start - overscan),\n end: Math.min(items.length, end + overscan),\n };\n }, [virtualized, items, scrollTop, itemHeight, displayedItemsCount]);\n\n const visibleItems = useMemo(() => {\n if (!virtualized) return items;\n const { start, end } = visibleRange;\n return items.slice(start, end).map((item) => ({\n ...item,\n }));\n }, [virtualized, items, visibleRange]);\n\n const offsetTop = visibleRange.start * itemHeight;\n const totalHeight = items.length * itemHeight;\n\n useEffect(() => {\n if (navIndex === null) {\n initialScrolled.current = false;\n }\n }, [navIndex]);\n\n if (navIndex === null) return null;\n\n return (\n <Dropdown key={dropdownKey.current} onCancel={onCancel} {...rest}>\n <div\n className=\"wx-233fr7 wx-list\"\n ref={listRefCallback}\n onClick={selectItem}\n onMouseMove={helpers.current.move}\n onScroll={handleScroll}\n >\n {items.length ? (\n virtualized ? (\n <div\n className=\"wx-233fr7 wx-list-wrapper\"\n style={{ height: `${totalHeight}px` }}\n >\n <div\n className=\"wx-233fr7 wx-list-content\"\n style={{ transform: `translateY(${offsetTop}px)` }}\n >\n <ListContent\n visibleRange={visibleRange}\n visibleItems={visibleItems}\n navIndex={navIndex}\n measureRefCallback={measureRefCallback}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n </div>\n </div>\n ) : (\n <ListContent\n visibleRange={visibleRange}\n visibleItems={visibleItems}\n navIndex={navIndex}\n measureRefCallback={measureRefCallback}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n )\n ) : (\n <div className=\"wx-233fr7 wx-no-data\">{_('No data')}</div>\n )}\n </div>\n </Dropdown>\n );\n}\n\n","import { useState, useRef, useMemo, useCallback } from 'react';\nimport List from './helpers/SuggestDropdown.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Combo.css';\n\nexport default function Combo({\n value: valueProp = '',\n id,\n options = [],\n textOptions = null,\n textField = 'label',\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n clear = false,\n children: kids,\n onChange,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const navigate = useRef(null);\n const keydown = useRef(null);\n\n const [value, setValue] = useWritableProp(valueProp);\n const [filterActive, setFilterActive] = useState(false);\n const [textInput, setTextInput] = useState('');\n\n const inputElement = useRef(null);\n const hasFocus = useRef(false);\n\n // calculate the derived values\n const text = useMemo(() => {\n if (filterActive) return textInput;\n if (value || value === 0) {\n const option = (textOptions || options).find((a) => a.id === value);\n if (option) return option[textField];\n }\n return '';\n }, [filterActive, textInput, value, textOptions, options, textField]);\n\n const filteredOptions = useMemo(() => {\n if (!text || !filterActive) return options;\n\n return options.filter((i) =>\n i[textField].toLowerCase().includes(text.toLowerCase()),\n );\n }, [text, filterActive, options, textField]);\n\n const index = useCallback(\n () => filteredOptions.findIndex((a) => a.id === value),\n [filteredOptions, value],\n );\n\n const ready = useCallback((ev) => {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }, []);\n\n const doSelect = useCallback(\n (id, effects) => {\n if (id || id === 0) {\n let selected = options.find((a) => a.id === id);\n setFilterActive(false);\n\n if (effects) navigate.current(null);\n\n if (selected && value !== selected.id) {\n const newValue = selected.id;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }\n }\n\n if (!hasFocus.current && effects) inputElement.current.focus();\n },\n [options, value, onChange],\n );\n\n const selectByEvent = useCallback(\n ({ id }) => {\n doSelect(id, true);\n },\n [doSelect],\n );\n\n const doUnselect = useCallback(\n (ev) => {\n if (ev) ev.stopPropagation();\n\n setValue('');\n setFilterActive(false);\n onChange && onChange({ value: '' });\n },\n [onChange],\n );\n\n const selectByText = useCallback(\n (chunk) => {\n if (!options.length) return;\n if (chunk === '' && clear) {\n doUnselect();\n return;\n }\n\n let res = options.find((i) => i[textField] === chunk);\n if (!res) {\n res = options.find((i) =>\n i[textField].toLowerCase().includes(chunk.toLowerCase()),\n );\n }\n\n const id = res ? res.id : value || options[0].id;\n doSelect(id, false);\n },\n [options, textField, clear, value, doSelect, doUnselect],\n );\n\n const handleInput = useCallback(() => {\n setTextInput(inputElement.current.value);\n setFilterActive(true);\n\n if (filteredOptions.length) navigate.current(0);\n }, [filteredOptions.length, navigate]);\n\n const handleFocus = useCallback(() => {\n hasFocus.current = true;\n }, []);\n\n const handleBlur = useCallback(() => {\n hasFocus.current = false;\n setTimeout(() => {\n if (!hasFocus.current) selectByText(text);\n }, 200);\n }, [selectByText, text]);\n\n return (\n <div\n className=\"wx-1j11Jk wx-combo\"\n onClick={() => navigate.current(index())}\n onKeyDown={(ev) => keydown.current(ev, index())}\n title={title}\n >\n <input\n className={'wx-1j11Jk wx-input ' + (error ? 'wx-error' : '')}\n id={inputId}\n ref={inputElement}\n value={text}\n disabled={disabled}\n placeholder={placeholder}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n />\n\n {clear && !disabled && value ? (\n <i className=\"wx-1j11Jk wx-icon wxi-close\" onClick={doUnselect}></i>\n ) : (\n <i className=\"wx-1j11Jk wx-icon wxi-angle-down\"></i>\n )}\n\n {!disabled && (\n <List items={filteredOptions} onReady={ready} onSelect={selectByEvent} {...dropdown}>\n {({ option }) => <>{kids ? kids({ option }) : option[textField]}</>}\n </List>\n )}\n </div>\n );\n}\n","import { useCallback, useEffect, useRef, useMemo } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Text.css';\n\nexport default function Text({\n value: propsValue = '',\n id,\n readonly = false,\n focus = false,\n select = false,\n type = 'text',\n placeholder = '',\n disabled = false,\n error = false,\n inputStyle = {},\n title = '',\n css = '',\n icon = '',\n clear = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(propsValue);\n const inputRef = useRef(null);\n\n const cssString = useMemo(\n () =>\n icon && css.indexOf('wx-icon-left') === -1 ? 'wx-icon-right ' + css : css,\n [icon, css],\n );\n\n const hasLeftIcon = useMemo(\n () => icon && css.indexOf('wx-icon-left') !== -1,\n [icon, css],\n );\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n if (select && inputRef.current) inputRef.current.select();\n }, 1);\n\n return () => clearTimeout(timer);\n }, [focus, select]);\n\n const oninput = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [onChange],\n );\n\n const ontextchange = useCallback(\n (ev) => onChange && onChange({ value: ev.target.value }),\n [onChange],\n );\n\n function clearValue(ev) {\n ev.stopPropagation();\n setValue('');\n onChange && onChange({ value: '' });\n }\n\n let inputType = type;\n if (type !== 'password' && type !== 'number') {\n inputType = 'text';\n }\n\n // MK :: EXTRACT\n useEffect(() => {\n const handler = ontextchange;\n const node = inputRef.current;\n node.addEventListener('change', handler);\n return () => {\n if (node) {\n node.removeEventListener('change', handler);\n }\n };\n }, [ontextchange]);\n\n return (\n <div\n className={`wx-hQ64J4 wx-text ${cssString} ${error ? 'wx-error' : ''} ${\n disabled ? 'wx-disabled' : ''\n } ${clear ? 'wx-clear' : ''}`}\n >\n <input\n className=\"wx-hQ64J4 wx-input\"\n ref={inputRef}\n id={inputId}\n readOnly={readonly}\n disabled={disabled}\n placeholder={placeholder}\n type={inputType}\n style={inputStyle}\n title={title}\n value={value}\n onInput={oninput}\n />\n\n {clear && !disabled && value ? (\n <>\n <i className=\"wx-hQ64J4 wx-icon wxi-close\" onClick={clearValue}></i>\n {hasLeftIcon && <i className={`wx-hQ64J4 wx-icon ${icon}`}></i>}\n </>\n ) : icon ? (\n <i className={`wx-hQ64J4 wx-icon ${icon}`}></i>\n ) : null}\n </div>\n );\n}\n","import { useContext, useMemo } from 'react';\nimport { dateToString, getDuodecade } from '@svar-ui/lib-dom';\nimport { i18n } from '../../context.js';\n\nfunction Header({ date, type, part, onShift }) {\n const { calendar, formats } = useContext(i18n).getRaw();\n\n const year = date.getFullYear();\n\n const label = useMemo(() => {\n switch (type) {\n case 'month':\n return dateToString(formats.monthYearFormat, calendar)(date);\n case 'year':\n return dateToString(formats.yearFormat, calendar)(date);\n case 'duodecade': {\n const { start, end } = getDuodecade(year);\n const yearFormat = dateToString(formats.yearFormat, calendar);\n return `${yearFormat(new Date(start, 0, 1))} - ${yearFormat(new Date(end, 11, 31))}`;\n }\n default:\n return '';\n }\n }, [date, type, year, calendar, formats]);\n\n function changeType() {\n onShift && onShift({ diff: 0, type });\n }\n\n return (\n <div className=\"wx-8HQVQV wx-header\">\n {part !== 'right' ? (\n <i\n className=\"wx-8HQVQV wx-pager wxi-angle-left\"\n onClick={() => onShift && onShift({ diff: -1, type })}\n />\n ) : (\n <span className=\"wx-8HQVQV wx-spacer\" />\n )}\n\n <span className=\"wx-8HQVQV wx-label\" onClick={changeType}>\n {label}\n </span>\n\n {part !== 'left' ? (\n <i\n className=\"wx-8HQVQV wx-pager wxi-angle-right\"\n onClick={() => onShift && onShift({ diff: 1, type })}\n />\n ) : (\n <span className=\"wx-8HQVQV wx-spacer\" />\n )}\n </div>\n );\n}\n\nimport './Header.css';\n\nexport default Header;\n","import './Button.css';\n\nexport default function Button({ onClick, children }) {\n return (\n <button className=\"wx-3s8W4d wx-button\" onClick={onClick}>\n {children}\n </button>\n );\n}\n","import { useContext, useMemo, useEffect, useRef } from 'react';\nimport { delegateClick } from '@svar-ui/lib-dom';\nimport { i18n } from '../../context.js';\nimport './Month.css';\nimport { defaultLocale } from '../helpers/locale.js';\n\nexport default function Month({\n value,\n current,\n part = '',\n markers = null,\n onCancel,\n onChange,\n}) {\n const locale = (useContext(i18n) || defaultLocale()).getRaw().calendar;\n const weekStart = (locale.weekStart || 7) % 7;\n const weekdays = locale.dayShort\n .slice(weekStart)\n .concat(locale.dayShort.slice(0, weekStart));\n\n const dv = (d, dm, dd) =>\n new Date(\n d.getFullYear(),\n d.getMonth() + (dm || 0),\n d.getDate() + (dd || 0),\n );\n let ranges = part !== 'normal';\n\n function isWeekEnd(date) {\n const d = date.getDay();\n return d === 0 || d === 6;\n }\n\n function getStart() {\n const start = dv(current, 0, 1 - current.getDate());\n start.setDate(start.getDate() - ((start.getDay() - (weekStart - 7)) % 7));\n return start;\n }\n function getEnd() {\n const end = dv(current, 1, -current.getDate());\n end.setDate(end.getDate() + ((6 - end.getDay() + weekStart) % 7));\n return end;\n }\n\n //MK : HACK\n const lastTime = useRef(0);\n function selectDate(date, e) {\n if (e.timeStamp === lastTime.current) return;\n lastTime.current = e.timeStamp;\n\n e.stopPropagation();\n if (onChange) onChange(new Date(date));\n if (onCancel) onCancel();\n }\n\n const date = useMemo(() => {\n if (part == 'normal') return [value ? dv(value).valueOf() : 0];\n return value\n ? [\n value.start ? dv(value.start).valueOf() : 0,\n value.end ? dv(value.end).valueOf() : 0,\n ]\n : [0, 0];\n }, [part, value]);\n\n const days = useMemo(() => {\n const start = getStart();\n const end = getEnd();\n const curMonth = current.getMonth();\n\n let days = [];\n for (let d = start; d <= end; d.setDate(d.getDate() + 1)) {\n const day = {\n day: d.getDate(),\n in: d.getMonth() === curMonth,\n date: d.valueOf(),\n };\n\n let css = '';\n css += !day.in ? ' wx-inactive' : '';\n css += date.indexOf(day.date) > -1 ? ' wx-selected' : '';\n\n if (ranges) {\n const s = day.date == date[0];\n const e = day.date == date[1];\n if (s && !e) css += ' wx-left';\n else if (e && !s) css += ' wx-right';\n\n if (day.date > date[0] && day.date < date[1]) css += ' wx-inrange';\n }\n\n css += isWeekEnd(d) ? ' wx-weekend' : '';\n if (markers) {\n const mark = markers(d);\n if (mark) css += ' ' + mark;\n }\n\n days.push({ ...day, css });\n }\n return days;\n }, [current, date, ranges, markers]);\n\n const delegateRef = useRef(null);\n let delegateHandler = useRef({});\n delegateHandler.current.click = selectDate;\n\n useEffect(() => {\n delegateClick(delegateRef.current, delegateHandler.current);\n }, []);\n\n return (\n <div>\n <div className=\"wx-398RBS wx-weekdays\">\n {weekdays.map((day) => (\n <div key={day} className=\"wx-398RBS wx-weekday\">\n {day}\n </div>\n ))}\n </div>\n <div className=\"wx-398RBS wx-days\" ref={delegateRef}>\n {days.map((day) => (\n <div\n key={day.date}\n className={`wx-398RBS wx-day ${day.css} ${!day.in ? 'wx-out' : ''}`}\n data-id={day.date}\n >\n {day.day}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import { useContext, useMemo, useCallback, useRef } from 'react';\nimport Button from './Button.jsx';\nimport { getPartValue } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Year.css';\nimport { useWritableProp } from '@svar-ui/lib-react';\n\nexport default function Year({\n value: valueProp,\n current: currentProp,\n part,\n onCancel,\n onChange,\n onShift,\n}) {\n const defaultDate = useRef(new Date());\n const [value, setValue] = useWritableProp(valueProp || defaultDate.current);\n const [current, setCurrent] = useWritableProp(currentProp || defaultDate.current);\n\n const locale = useContext(i18n).getRaw().calendar;\n const months = locale.monthShort || [];\n\n const monthNum = useMemo(() => {\n return current.getMonth();\n }, [current]);\n\n const selectMonth = useCallback(\n (month, e) => {\n if (month !== null && month !== undefined) {\n e.stopPropagation();\n const newCurrent = new Date(current);\n newCurrent.setMonth(month);\n setCurrent(newCurrent);\n\n onShift && onShift({ current: newCurrent });\n }\n\n if (part === 'normal') setValue(new Date(current));\n\n onCancel && onCancel();\n },\n [current, part, onShift, onCancel],\n );\n\n const done = useCallback(() => {\n const date = new Date(getPartValue(value, part) || current);\n\n date.setMonth(current.getMonth());\n date.setFullYear(current.getFullYear());\n\n onChange && onChange(date);\n }, [value, current, part, onChange]);\n\n const handleMonthClick = useCallback(\n (e) => {\n const target = e.target.closest('[data-id]');\n if (target) {\n const month = parseInt(target.getAttribute('data-id'), 10);\n selectMonth(month, e);\n }\n },\n [selectMonth],\n );\n\n return (\n <>\n <div className={'wx-34U8T8 wx-months'} onClick={handleMonthClick}>\n {months.map((month, i) => (\n <div\n key={i}\n className={\n 'wx-34U8T8 wx-month' + (monthNum === i ? ' wx-current' : '')\n }\n data-id={i}\n >\n {month}\n </div>\n ))}\n </div>\n <div className={'wx-34U8T8 wx-buttons'}>\n <Button onClick={done}>{locale.done}</Button>\n </div>\n </>\n );\n}\n","import { useContext, useMemo, useRef, useEffect } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { delegateClick, getDuodecade } from '@svar-ui/lib-dom';\nimport Button from './Button.jsx';\nimport { getPartValue } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Duodecade.css';\n\nconst cssScope = 'wx-1XEF33';\n\nconst Duodecade = ({ value, current, onCancel, onChange, onShift, part }) => {\n const _ = useContext(i18n).getRaw().calendar;\n\n const [currentState, setCurrent] = useWritableProp(current);\n const [valueState, setValue] = useWritableProp(value);\n\n const year = useMemo(() => currentState.getFullYear(), [currentState]);\n\n const years = useMemo(() => {\n const { start, end } = getDuodecade(year);\n const years = [];\n for (let y = start; y <= end; ++y) {\n years.push(y);\n }\n return years;\n }, [year]);\n\n const selectYears = {\n click: selectYear,\n };\n\n function selectYear(yearVal, e) {\n if (yearVal) {\n e.stopPropagation();\n const newCurrent = new Date(currentState);\n newCurrent.setFullYear(yearVal);\n setCurrent(newCurrent);\n\n onShift && onShift({ current: newCurrent });\n }\n\n if (part === 'normal') {\n setValue(new Date(currentState));\n }\n\n onCancel && onCancel();\n }\n\n function done() {\n const date = new Date(getPartValue(valueState, part) || currentState);\n\n date.setFullYear(currentState.getFullYear());\n\n onChange && onChange(date);\n }\n\n const containerRef = useRef(null);\n\n useEffect(() => {\n if (containerRef.current) {\n delegateClick(containerRef.current, selectYears);\n }\n }, []);\n\n return (\n <>\n <div className={cssScope + ' wx-years'} ref={containerRef}>\n {years.map((y, i) => (\n <div\n key={i}\n className={\n cssScope +\n ` wx-year ${year == y ? 'wx-current' : ''} ${i === 0 ? 'wx-prev-decade' : ''} ${i === 11 ? 'wx-next-decade' : ''}`\n }\n data-id={y}\n >\n {y}\n </div>\n ))}\n </div>\n <div className={cssScope + ' wx-buttons'}>\n <Button onClick={done}>{_.done}</Button>\n </div>\n </>\n );\n};\n\nexport default Duodecade;\n","import Month from './Month.jsx';\nimport Year from './Year.jsx';\nimport Duodecade from './Duodecade.jsx';\n\nexport const configs = {\n month: {\n component: Month,\n next: nextMonth,\n prev: prevMonth,\n },\n year: {\n component: Year,\n next: nextYear,\n prev: prevYear,\n },\n duodecade: {\n component: Duodecade,\n next: nextDuodecade,\n prev: prevDuodecade,\n },\n};\n\nfunction prevMonth(current) {\n current = new Date(current);\n current.setMonth(current.getMonth() - 1);\n return current;\n}\nfunction nextMonth(current) {\n current = new Date(current);\n current.setMonth(current.getMonth() + 1);\n return current;\n}\nfunction prevYear(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() - 1);\n return current;\n}\nfunction nextYear(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() + 1);\n return current;\n}\nfunction prevDuodecade(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() - 10);\n return current;\n}\nfunction nextDuodecade(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() + 10);\n return current;\n}\n\nexport function getPartValue(value, part) {\n let date;\n if (part === 'normal') date = value;\n else {\n const { start, end } = value;\n if (part === 'left') date = start;\n else if (part == 'right') date = end;\n else date = start ? end : start;\n }\n\n return date;\n}\n","import { useContext, useState, useMemo } from 'react';\nimport Header from './Header.jsx';\nimport Button from './Button.jsx';\nimport { configs } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Panel.css';\n\nconst defaultButtons = ['clear', 'today'];\n\nfunction getButtonValue(btn) {\n if (btn === 'done') return -1;\n if (btn === 'clear') return null;\n if (btn === 'today') return new Date();\n}\n\nfunction Panel({\n value,\n current,\n onCurrentChange,\n part = 'normal',\n markers = null,\n buttons,\n onShift,\n onChange,\n}) {\n const _ = useContext(i18n).getGroup('calendar');\n\n const [type, setType] = useState('month');\n\n const buttonsList = Array.isArray(buttons)\n ? buttons\n : buttons\n ? defaultButtons\n : [];\n\n const selectDate = (ev, date) => {\n ev.preventDefault();\n onChange && onChange({ value: date });\n };\n\n const oncancel = () => {\n if (type === 'duodecade') setType('year');\n else if (type === 'year') setType('month');\n };\n\n const onShiftLocal = (ev) => {\n const { diff, current: newCurrent } = ev;\n\n if (diff === 0) {\n if (type === 'month') setType('year');\n else if (type === 'year') setType('duodecade');\n return;\n }\n if (diff) {\n const obj = configs[type];\n onCurrentChange(diff > 0 ? obj.next(current) : obj.prev(current));\n } else if (newCurrent) {\n onCurrentChange(newCurrent);\n }\n\n onShift && onShift();\n };\n\n const onChangeLocal = (value) => {\n setType('month');\n onChange && onChange({ select: true, value });\n };\n\n const CalendarView = useMemo(() => configs[type].component, [type]);\n\n return (\n <div\n className={`wx-2Gr4AS wx-calendar ${part !== 'normal' && part !== 'both' ? 'wx-part' : ''}`}\n >\n <div className=\"wx-2Gr4AS wx-wrap\">\n <Header date={current} part={part} type={type} onShift={onShiftLocal} />\n <div>\n <CalendarView\n value={value}\n current={current}\n onCurrentChange={onCurrentChange}\n part={part}\n markers={markers}\n onCancel={oncancel}\n onChange={onChangeLocal}\n onShift={onShiftLocal}\n />\n {type === 'month' && buttonsList.length > 0 && (\n <div className=\"wx-2Gr4AS wx-buttons\">\n {buttonsList.map((button) => (\n <div key={button} className=\"wx-2Gr4AS wx-button-item\">\n <Button\n onClick={(e) => selectDate(e, getButtonValue(button))}\n >\n {_(button)}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nexport default Panel;\n","import { useContext, useMemo } from 'react';\nimport { i18n } from './context';\nimport { locale } from '@svar-ui/lib-dom';\nimport { en } from '@svar-ui/core-locales';\n\nexport default function Component(props) {\n let { words = null, optional = false, children } = props;\n\n let l = useContext(i18n);\n const v = useMemo(() => {\n let t = l;\n if (!t || !t.extend) t = locale(en);\n if (words !== null) t = t.extend(words, optional);\n return t;\n }, [words, optional, l]);\n\n return <i18n.Provider value={v}>{children}</i18n.Provider>;\n}\n","import { useEffect, useCallback } from 'react';\nimport Panel from './calendar/Panel.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport Locale from '../Locale.jsx';\n\nfunction fixCurrent(current, value, setCurrent, force) {\n if (!current || force) {\n const newCurrent = value ? new Date(value) : new Date();\n newCurrent.setDate(1);\n setCurrent(newCurrent);\n } else {\n if (current.getDate() !== 1) {\n const newCurrent = new Date(current);\n newCurrent.setDate(1);\n setCurrent(newCurrent);\n }\n }\n}\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function Calendar({\n value: valueProp,\n current: currentProp,\n markers = null,\n buttons = defaultButtons,\n onChange,\n}) {\n const [value, setValue] = useWritableProp(valueProp);\n const [current, setCurrent] = useWritableProp(currentProp);\n\n useEffect(() => {\n fixCurrent(current, value, setCurrent, false);\n }, [value, current]);\n\n const onChangeLocal = useCallback(\n (v) => {\n const x = v.value;\n if (x) {\n setValue(new Date(x));\n fixCurrent(current, new Date(x), setCurrent, true);\n } else {\n setValue(null);\n }\n\n onChange && onChange({ value: x ? new Date(x) : null });\n },\n [onChange, current],\n );\n\n const onCurrentChangeLocal = useCallback(\n (v) => {\n setCurrent(v);\n },\n [setCurrent],\n );\n\n if (!current) return null;\n\n return (\n <Locale>\n <Panel\n value={value}\n current={current}\n markers={markers}\n buttons={buttons}\n onChange={onChangeLocal}\n onCurrentChange={onCurrentChangeLocal}\n />\n </Locale>\n );\n}\n","export function toDateDropdown(dropdown) {\n if (!dropdown) dropdown = {};\n if (!dropdown.width) dropdown.width = 'unset';\n return dropdown;\n}\n","import { useState, useEffect, useMemo, useContext } from 'react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport { i18n } from '../context.js';\n\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport Calendar from './Calendar.jsx';\nimport './DatePicker.css';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function DatePicker({\n value: propValue,\n id,\n disabled = false,\n error = false,\n placeholder = '',\n format = '',\n buttons = defaultButtons,\n css = '',\n title = '',\n editable = false,\n clear = false,\n onChange,\n dropdown = {},\n}) {\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n const f = format || formats?.dateFormat;\n let dateFormat =\n typeof f === 'function' ? f : dateToString(f, calendarLocale);\n\n const [value, setValue] = useState(propValue);\n const [popup, setPopup] = useState(false);\n\n // Update local value when prop value changes\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n function oncancel() {\n setPopup(false);\n }\n\n function doChange(v) {\n // skip \"select\" event if the same value\n // or different objects with the same value\n const skipEvent =\n v === value ||\n (v && value && v.valueOf() === value.valueOf()) ||\n (!v && !value);\n\n setValue(v);\n if (!skipEvent) {\n onChange && onChange({ value: v });\n }\n\n // fire after on-click finished\n setTimeout(oncancel, 1);\n }\n\n const formattedValue = useMemo(\n () => (value ? dateFormat(value) : ''),\n [value, dateFormat],\n );\n\n function onchangeHandler({ value: v, input }) {\n if (!editable && !clear) return;\n if (input) return;\n\n // convert to date, but ignore empty string input\n let date =\n typeof editable === 'function' ? editable(v) : v ? new Date(v) : null;\n\n // if date is invalid ( incorrect text input ) then use old value\n // else use the entered date\n // in any case fallback to null, to prevent undefined as value\n date = isNaN(date) ? value || null : date || null;\n doChange(date);\n }\n\n // Handle scroll event on window\n useEffect(() => {\n const handleScroll = oncancel;\n window.addEventListener('scroll', handleScroll);\n return () => window.removeEventListener('scroll', handleScroll);\n }, []);\n\n return (\n <div className=\"wx-1lKOFG wx-datepicker\" onClick={() => setPopup(true)}>\n <Text\n css={css}\n title={title}\n value={formattedValue}\n id={id}\n readonly={!editable}\n disabled={disabled}\n error={error}\n placeholder={placeholder}\n onInput={oncancel}\n onChange={onchangeHandler}\n icon=\"wxi-calendar\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n clear={clear}\n />\n\n {popup && !disabled && (\n <Dropdown\n onCancel={oncancel}\n {...toDateDropdown(dropdown)}\n >\n <Calendar\n buttons={buttons}\n value={value}\n onChange={(e) => doChange(e.value)}\n />\n </Dropdown>\n )}\n </div>\n );\n}\n","import { useState, useEffect, useCallback } from 'react';\nimport Panel from './calendar/Panel';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './RangeCalendar.css';\nimport Locale from '../Locale.jsx';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst RangeCalendar = ({\n start: startProp,\n end: endProp,\n current,\n months = 2,\n markers = null,\n buttons = defaultButtons,\n onChange,\n}) => {\n const [start, setStart] = useWritableProp(startProp);\n const [end, setEnd] = useWritableProp(endProp);\n const [leftCurrent, setLeftCurrent] = useState();\n const [rightCurrent, setRightCurrent] = useState();\n\n const addMonth = useCallback((l, diff, rPrev) => {\n const r = new Date(l);\n r.setMonth(r.getMonth() + diff);\n if (rPrev && r.valueOf() === rPrev.valueOf()) return rPrev;\n return r;\n }, []);\n\n const onLeft = useCallback(\n (v) => {\n setLeftCurrent(() => {\n const newLeft = new Date(v);\n newLeft.setDate(1);\n setRightCurrent(addMonth(newLeft, 1));\n return newLeft;\n });\n },\n [addMonth],\n );\n\n const onRight = useCallback(\n (v) => {\n setRightCurrent(() => {\n const newRight = new Date(v);\n newRight.setDate(1);\n setLeftCurrent(addMonth(newRight, -1));\n return newRight;\n });\n },\n [addMonth],\n );\n\n // Effect for initializing leftCurrent based on start/current\n useEffect(() => {\n const startVal = start;\n const currentVal = current;\n\n if (!leftCurrent) {\n onLeft(startVal ? new Date(startVal) : currentVal || new Date());\n }\n }, [start, current, leftCurrent, onLeft]);\n\n const selectChange = useCallback(\n (ev) => {\n const v = ev.value;\n let s = start,\n e = end;\n const final = v === -1;\n if (!final) {\n if (ev.select) {\n if (!start || end) {\n setStart((s = v));\n setEnd((e = null));\n } else {\n if (start > v) {\n setEnd((e = start));\n setStart((s = v));\n } else {\n setEnd((e = v));\n }\n }\n } else {\n if (!v) {\n setStart((s = null));\n setEnd((e = null));\n } else {\n setStart((s = new Date(v)));\n setEnd((e = new Date(v)));\n }\n }\n }\n\n if (final || !buttons.includes('done'))\n onChange && onChange({ start: s, end: e });\n return [s, e];\n },\n [start, end, buttons, onChange],\n );\n\n const doChangeStart = useCallback(\n (v) => {\n const [s] = selectChange(v);\n if (s) onLeft(new Date(s));\n },\n [onLeft, start, end],\n );\n\n const doChangeEnd = useCallback(\n (v) => {\n const [, e] = selectChange(v);\n if (e) onRight(new Date(e));\n },\n [onRight, start, end],\n );\n\n if (!leftCurrent || !rightCurrent) return null;\n\n if (months === 1) {\n return (\n <Locale>\n <Panel\n value={{ start, end }}\n current={leftCurrent}\n markers={markers}\n buttons={buttons}\n part=\"both\"\n onChange={doChangeStart}\n onCurrentChange={onLeft}\n />\n </Locale>\n );\n } else {\n return (\n <Locale>\n <div className=\"wx-p2jCaW wx-rangecalendar\">\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={leftCurrent}\n markers={markers}\n buttons={false}\n part=\"left\"\n onChange={doChangeStart}\n onCurrentChange={onLeft}\n />\n </div>\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={rightCurrent}\n markers={markers}\n buttons={buttons}\n part=\"right\"\n onChange={doChangeEnd}\n onCurrentChange={onRight}\n />\n </div>\n </div>\n </Locale>\n );\n }\n};\n\nexport default RangeCalendar;\n","import { useState, useEffect, useMemo, useContext, useCallback } from 'react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { i18n } from '../context.js';\n\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport RangeCalendar from './RangeCalendar.jsx';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst DateRangePicker = ({\n value: valueProp,\n onChange,\n id,\n disabled = false,\n error = false,\n placeholder = '',\n css = '',\n title = '',\n format = '',\n months = 2,\n buttons = defaultButtons,\n editable = false,\n clear = false,\n dropdown,\n}) => {\n const [value, setValue] = useWritableProp(valueProp);\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n\n const f = format || formats?.dateFormat;\n const dateFormat =\n typeof f === 'function' ? f : dateToString(f, calendarLocale);\n\n const [popup, setPopup] = useState(false);\n\n const onCancel = useCallback(() => {\n setPopup(false);\n }, []);\n\n const formattedValue = useMemo(() => {\n return value\n ? value.start\n ? dateFormat(value.start) +\n (value.end ? ` - ${dateFormat(value.end)}` : '')\n : dateFormat(value)\n : '';\n }, [value, dateFormat]);\n\n const start = useMemo(() => {\n return value ? value.start || null : null;\n }, [value]);\n\n const end = useMemo(() => {\n return value ? value.end || null : null;\n }, [value]);\n\n const doChange = useCallback(\n (d) => {\n const newValue = d.start || d.end ? { start: d.start, end: d.end } : null;\n\n // Handle both cases: either external setValue or onChange prop\n if (setValue) {\n setValue(newValue);\n } else {\n // Parent must handle value prop update via onChange\n }\n\n // fire after on-click finished\n if ((d.start && d.end) || (!d.start && !d.end)) {\n // FIXME - select event will trigger even if the same value\n if (onChange) {\n onChange({ value: newValue });\n }\n setTimeout(onCancel, 1);\n }\n },\n [onChange, onCancel, setValue],\n );\n\n const doInputChange = useCallback(\n (ev) => {\n if (!editable && !clear) return;\n\n const { value: v, input } = ev;\n if (input) return;\n\n const [s, e] = v.split(' -').map((a, i) => {\n const av = a.trim();\n let date =\n typeof editable === 'function'\n ? editable(av)\n : av\n ? new Date(av)\n : null;\n\n // if date is invalid ( incorrect text input ) then use old value\n // else use the entered date\n // in any case fallback to null, to prevent undefined as value\n let val = i === 0 ? start : end;\n return isNaN(date) ? (val ? val : null) : date || null;\n });\n\n doChange({ start: s, end: e });\n },\n [editable, clear, start, end, doChange],\n );\n\n useEffect(() => {\n const handleScroll = () => {\n onCancel();\n };\n\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, [onCancel]);\n\n return (\n <div\n className={`wx-1b0WDQ wx-daterangepicker ${disabled ? 'wx-disabled' : ''} ${error ? 'wx-error' : ''}`}\n onClick={() => setPopup(true)}\n >\n <Text\n css={css}\n title={title}\n value={formattedValue}\n id={id}\n readonly={!editable}\n disabled={disabled}\n placeholder={placeholder}\n error={error}\n onChange={doInputChange}\n icon=\"wxi-calendar\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n clear={clear}\n />\n\n {popup && !disabled && (\n <Dropdown\n onCancel={onCancel}\n {...toDateDropdown(dropdown)}\n >\n <RangeCalendar\n onCancel={onCancel}\n buttons={buttons}\n start={start}\n end={end}\n months={months}\n onChange={doChange}\n />\n </Dropdown>\n )}\n </div>\n );\n};\n\nexport default DateRangePicker;\n\nimport './DateRangePicker.css';\n","import { useEffect, useRef, useState, useMemo } from 'react';\nimport { useHotkeys } from '@svar-ui/lib-react';\nimport Button from './Button.jsx';\nimport './Fullscreen.css';\n\nexport default function Fullscreen({\n hotkey = null,\n toggleButton,\n children,\n}) {\n const nodeRef = useRef(null);\n const [inFullscreen, setInFullscreen] = useState(false);\n\n const icon = useMemo(\n () => `wxi-${inFullscreen ? 'collapse' : 'expand'}`,\n [inFullscreen],\n );\n\n const toggleFullscreen = useRef(null);\n toggleFullscreen.current = () => {\n const node = nodeRef.current;\n if (!inFullscreen && node) {\n node.requestFullscreen();\n } else if (inFullscreen) {\n document.exitFullscreen();\n }\n setInFullscreen((prev) => !prev);\n };\n\n useHotkeys({ [hotkey]: () => toggleFullscreen.current() }, nodeRef);\n\n useEffect(() => {\n const setFullscreenState = () => {\n setInFullscreen(document.fullscreenElement === nodeRef.current);\n };\n\n document.addEventListener('fullscreenchange', setFullscreenState);\n return () => {\n document.removeEventListener('fullscreenchange', setFullscreenState);\n };\n }, []);\n\n return (\n <div className=\"wx-13aa5W wx-fullscreen\" ref={nodeRef} tabIndex={-1}>\n {children}\n {toggleButton ? (\n toggleButton(toggleFullscreen.current, inFullscreen)\n ) : (\n <Button css=\"wx-13aa5W wx-fullscreen-button\" onClick={toggleFullscreen.current}>\n <i className={`wx-13aa5W ${icon} wx-fullscreen-icon`}> </i>\n </Button>\n )}\n </div>\n );\n}\n","import './Icon.css';\n\nexport default function Icon({ css = '', title = '', children, onClick }) {\n if (children) {\n return (\n <i\n title={title}\n role=\"img\"\n className={`wx-mdnST1 wx-icon ${css}`}\n onClick={onClick}\n >\n {children}\n </i>\n );\n } else {\n return (\n <i\n title={title}\n className={`wx-mdnST1 wx-icon ${css}`}\n onClick={onClick}\n />\n );\n }\n}\n","import { useState, useMemo, useRef, useCallback } from 'react';\nimport { useWritableProp, snippet } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport List from './helpers/SuggestDropdown.jsx';\nimport './MultiCombo.css';\n\nconst defaultValue = [];\n\nexport default function MultiCombo({\n id,\n value: valueProp = defaultValue,\n options = [],\n textOptions = null,\n textField = 'label',\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n checkboxes = false,\n onChange,\n children,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const navigate = useRef(null);\n const keydown = useRef(null);\n\n const [value, setValue] = useWritableProp(valueProp);\n\n const [text, setText] = useState('');\n const [focus, setFocus] = useState(false);\n const inputElement = useRef(null);\n\n const selected = useMemo(() => {\n return value\n ? (textOptions || options).filter((i) => value.includes(i.id))\n : [];\n }, [value, textOptions, options]);\n\n const filterOptions = useMemo(() => {\n const o = options;\n return text\n ? o.filter((i) => i[textField].toLowerCase().includes(text.toLowerCase()))\n : o;\n }, [text, options, textField]);\n\n const onready = useCallback((ev) => {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }, []);\n\n const input = useCallback(() => {\n if (filterOptions.length) navigate.current(0);\n else navigate.current(null);\n }, [filterOptions]);\n\n const onselect = useCallback(\n (ev) => {\n const { id } = ev;\n if (id) {\n setValue(id);\n onChange && onChange({ value: id });\n inputElement.current.focus();\n }\n },\n [onChange],\n );\n\n const remove = useCallback(\n (id, ev) => {\n if (ev) ev.stopPropagation();\n\n const next = value.filter((i) => i !== id);\n setValue(next);\n onChange && onChange({ value: next });\n },\n [value, onChange],\n );\n\n const index = useCallback(\n () =>\n value && value.length\n ? filterOptions.findIndex((i) => i.id === value[0])\n : 0,\n [value, filterOptions],\n );\n\n const onClickHandler = useCallback(() => {\n if (!disabled) {\n inputElement.current.focus();\n navigate.current(index());\n }\n }, [disabled, index]);\n\n return (\n <div\n title={title}\n className={\n 'wx-12Wj21 wx-multicombo ' +\n `${error ? 'wx-error' : ''} ${disabled ? 'wx-disabled' : ''} ${selected.length ? 'wx-not-empty' : ''} ${focus && !disabled ? 'wx-focus' : ''}`\n }\n onClick={onClickHandler}\n onKeyDown={(ev) => keydown.current(ev, index())}\n >\n <div className=\"wx-12Wj21 wx-wrapper\">\n <div className=\"wx-12Wj21 wx-tags\">\n {selected.map((tag) => (\n <div key={tag.id} className=\"wx-12Wj21 wx-tag\">\n {children ? snippet(children, { option: tag }) : tag[textField]}\n {!disabled && (\n <i\n className=\"wx-12Wj21 wx-icon wxi-close\"\n onClick={(ev) => remove(tag.id, ev)}\n ></i>\n )}\n </div>\n ))}\n </div>\n <div className=\"wx-12Wj21 wx-select\">\n <input\n className=\"wx-12Wj21 wx-input\"\n id={inputId}\n type=\"text\"\n value={text}\n onChange={(ev) => setText(ev.target.value)}\n onInput={input}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n ref={inputElement}\n />\n <i className=\"wx-12Wj21 wx-icon wxi-angle-down\"></i>\n </div>\n </div>\n\n {!disabled && (\n <List\n items={filterOptions}\n multiselect={true}\n onReady={onready}\n onSelect={onselect}\n checkboxes={checkboxes}\n value={value}\n {...dropdown}\n >\n {({ option }) => (\n <>\n {children ? snippet(children, { option }) : option[textField]}\n </>\n )}\n </List>\n )}\n </div>\n );\n}\n","import { useContext } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { i18n } from '../context.js';\nimport './Pager.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nconst Pager = ({\n total = 0,\n pageSize: initialPageSize = 20,\n value: initialValue = 1,\n onChange,\n}) => {\n const [pageSize, setPageSize] = useWritableProp(initialPageSize);\n const [value, setValue] = useWritableProp(initialValue);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const pageCount = Math.ceil(total / pageSize);\n const from = (value - 1) * pageSize;\n const to = Math.min(value * pageSize, total);\n\n const setInnerValue = (v, final) => {\n if (Number.isNaN(v)) return;\n\n if (!final) setValue(v);\n v = Math.max(1, Math.min(v, pageCount));\n if (final) setValue(v);\n\n if (v === value) return;\n setTimeout(() => {\n onChange &&\n onChange({\n value: v,\n from: (v - 1) * pageSize,\n to: Math.min(v * pageSize, total),\n pageSize: pageSize,\n });\n });\n };\n\n function setActivePage(id) {\n switch (id) {\n case 'first':\n setInnerValue(1);\n break;\n\n case 'prev':\n setInnerValue(value - 1);\n break;\n\n case 'next':\n setInnerValue(value + 1);\n break;\n\n case 'last':\n setInnerValue(pageCount);\n break;\n\n default:\n break;\n }\n }\n\n const onPageSizeInput = (e) => {\n const newValue = e.target.value * 1;\n if (Number.isNaN(newValue)) {\n return;\n }\n\n setPageSize(newValue);\n onChange && onChange({ value, from, to, pageSize: newValue });\n };\n\n return (\n <div className=\"wx-35Np0p wx-pager\">\n <div className=\"wx-35Np0p wx-left\">\n <span>{_('Rows per page')}: </span>\n <input\n type=\"number\"\n min={1}\n className=\"wx-35Np0p wx-input\"\n value={pageSize}\n onChange={onPageSizeInput}\n />\n </div>\n\n <div className=\"wx-35Np0p wx-center\">\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-dbl-left' +\n (value === 1 ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('first')}\n ></i>\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-left' +\n (value === 1 ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('prev')}\n ></i>\n <input\n type=\"text\"\n value={value}\n className=\"wx-35Np0p wx-input\"\n onChange={(e) => setInnerValue(e.target.value * 1)}\n onBlur={(e) => setInnerValue(e.target.value * 1, true)}\n />\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-right' +\n (value === pageCount ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('next')}\n ></i>\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-dbl-right' +\n (value === pageCount ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('last')}\n ></i>\n </div>\n\n <div className=\"wx-35Np0p wx-right\">\n {_('Total pages')}: {pageCount}\n </div>\n </div>\n );\n};\n\nexport default Pager;\n","import { useState } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport { useId } from 'react';\nimport './RadioButton.css';\n\nexport default function RadioButton({\n id,\n label = '',\n value: externalValue,\n name = '',\n inputValue = '',\n disabled = false,\n onChange,\n}) {\n const fallbackId = useId();\n const inputId = useInputId(id) || fallbackId;\n // Internal state for uncontrolled behavior\n const [internalValue, setInternalValue] = useState(false);\n\n // Determine which value to use (controlled vs uncontrolled)\n // For React, we need to handle both cases\n const isControlled = externalValue !== undefined;\n const currentValue = isControlled ? externalValue : internalValue;\n\n function handlerChange(ev) {\n const newValue = ev.target.checked;\n\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n if (newValue && onChange) {\n onChange({ value: true, inputValue });\n }\n }\n\n return (\n <div className=\"wx-3lDF1s wx-radio\">\n <input\n type=\"radio\"\n className=\"wx-3lDF1s wx-input\"\n id={inputId}\n disabled={disabled}\n name={name}\n value={inputValue}\n checked={currentValue}\n onChange={handlerChange}\n />\n <label htmlFor={inputId} className=\"wx-3lDF1s wx-label\">\n <span className=\"wx-3lDF1s wx-circle\"></span>\n {label && <span className=\"wx-3lDF1s wx-radio-text\">{label}</span>}\n </label>\n </div>\n );\n}\n","import { uid } from '@svar-ui/lib-dom';\nimport { useState, useEffect } from 'react';\nimport RadioButton from './RadioButton.jsx';\nimport { fieldId } from \"../context\";\nimport './RadioButtonGroup.css';\n\n\nexport default function RadioButtonGroup({\n options = [{}],\n value = '',\n onChange,\n type = '',\n}) {\n const name = uid();\n\n const [currentValue, setCurrentValue] = useState(value);\n\n useEffect(() => {\n setCurrentValue(value);\n }, [value]);\n\n function handleChange(ev) {\n const newValue = ev.inputValue;\n setCurrentValue(newValue);\n if (onChange) {\n onChange({ value: newValue });\n }\n }\n\n return (\n <fieldId.Provider value={null}>\n <div className={`wx-38w70j wx-radiogroup ${type && `wx-${type}`}`}>\n {options.map((option) => (\n <div key={option.id} className=\"wx-38w70j wx-item\">\n <RadioButton\n label={option.label}\n inputValue={option.id}\n value={currentValue === option.id}\n name={name}\n onChange={handleChange}\n />\n </div>\n ))}\n </div>\n </fieldId.Provider>\n );\n}\n","import { useRef, useCallback, useMemo } from 'react';\nimport List from './helpers/SuggestDropdown.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './RichSelect.css';\n\nexport default function RichSelect({\n value: propertyValue = '',\n options = [],\n textOptions = null,\n placeholder = '',\n disabled = false,\n error = false,\n title = '',\n textField = 'label',\n clear = false,\n children: kids,\n onChange,\n dropdown = {},\n}) {\n const navigate = useRef(null);\n const keydown = useRef(null);\n let [value, setValue] = useWritableProp(propertyValue);\n\n function ready(ev) {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }\n\n const selected = useMemo(() => {\n return value || value === 0\n ? (textOptions || options).find((a) => a.id === value)\n : null;\n }, [value, textOptions, options]);\n\n const select = useCallback(\n ({ id }) => {\n if (id || id === 0) {\n setValue(id);\n navigate.current(null);\n onChange && onChange({ value: id });\n }\n },\n [setValue, onChange],\n );\n\n const unselect = useCallback(\n (ev) => {\n ev.stopPropagation();\n setValue('');\n onChange && onChange({ value: '' });\n },\n [setValue, onChange],\n );\n\n const index = useCallback(() => {\n return options.findIndex((a) => a.id === value);\n }, [options, value]);\n\n return (\n <div\n className={`wx-2YgblL wx-richselect ${error ? 'wx-2YgblL wx-error' : ''} ${disabled ? 'wx-2YgblL wx-disabled' : ''} ${!kids ? 'wx-2YgblL wx-nowrap' : ''}`}\n title={title}\n onClick={() => navigate.current(index())}\n onKeyDown={(ev) => keydown.current(ev, index())}\n tabIndex={0}\n >\n <div className=\"wx-2YgblL wx-label\">\n {selected ? (\n kids ? (\n kids(selected)\n ) : (\n selected[textField]\n )\n ) : placeholder ? (\n <span className=\"wx-2YgblL wx-placeholder\">{placeholder}</span>\n ) : (\n '\\u00A0'\n )}\n </div>\n\n {clear && !disabled && value ? (\n <i className=\"wx-2YgblL wx-icon wxi-close\" onClick={unselect} />\n ) : (\n <i className=\"wx-2YgblL wx-icon wxi-angle-down\" />\n )}\n\n {!disabled && (\n <List items={options} onReady={ready} onSelect={select} {...dropdown}>\n {({ option }) => (kids ? kids(option) : option[textField])}\n </List>\n )}\n </div>\n );\n}\n","import { useState, useEffect } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport './Segmented.css';\n\nconst Segmented = ({\n options = [],\n value = '',\n css = '',\n children,\n onChange,\n}) => {\n // Note: Using additional state for controlled/uncontrolled handling since React doesn't allow direct prop mutation\n const [internalValue, setInternalValue] = useState(value);\n\n const handleClick = (id) => {\n setInternalValue(id);\n if (onChange) {\n onChange({ value: id });\n }\n };\n\n // Ensure internal value stays in sync with external value changes\n useEffect(() => {\n setInternalValue(value);\n }, [value]);\n\n return (\n <div className={'wx-0hMO7P' + ` wx-segmented ${css}`}>\n {options.map((option) => (\n <button\n key={option.id}\n className={\n 'wx-0hMO7P' +\n ` wx-segment ${option.css} ${option.id === internalValue ? 'wx-selected' : ''}`\n }\n title={option.title}\n onClick={() => handleClick(option.id)}\n >\n {children ? (\n snippet(children, { option })\n ) : (\n <>\n {option.icon && (\n <i\n className={\n 'wx-0hMO7P' +\n ` wx-icon ${option.icon} ${!option.label ? 'wx-only' : ''}`\n }\n ></i>\n )}\n {option.label && (\n <span className=\"wx-0hMO7P wx-label\">{option.label}</span>\n )}\n </>\n )}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Segmented;\n","import { useState, useCallback } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Select.css';\n\nexport default function Select({\n value: valueProp,\n options = [],\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n textField = 'label',\n clear = false,\n id,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useState(valueProp || '');\n\n const handleChange = useCallback(\n (event) => {\n const newValue = event.target.value;\n setValue(newValue);\n if (onChange) onChange({ value: newValue });\n },\n [onChange],\n );\n\n const unselect = useCallback(() => {\n setValue('');\n if (onChange) onChange({ value: '' });\n }, [onChange]);\n\n return (\n <div className=\"wx-2yx1Fo wx-select-box\">\n <select\n id={inputId}\n value={value}\n disabled={disabled}\n className={`wx-2yx1Fo wx-select ${error ? 'wx-2yx1Fo wx-error' : ''}`}\n title={title}\n onChange={handleChange}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((option) => (\n <option key={option.id} value={option.id}>\n {option[textField]}\n </option>\n ))}\n </select>\n\n {clear && !disabled && value ? (\n <i className=\"wx-2yx1Fo wx-icon wxi-close\" onClick={unselect}></i>\n ) : (\n <i className=\"wx-2yx1Fo wx-icon wxi-angle-down\"></i>\n )}\n </div>\n );\n}\n","import { useEffect, useMemo, useRef } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Slider.css';\n\nexport default function Slider({\n id,\n label = '',\n css = '',\n min = 0,\n max = 100,\n value: initialValue = 0,\n step = 1,\n title = '',\n disabled = false,\n onChange,\n width = \"\",\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n const previous = useRef({ value: value, input: value });\n\n const progress = useMemo(\n () => ((value - min) / (max - min)) * 100 + '%',\n [value, min, max],\n );\n\n const bgStyle = useMemo(() => {\n return disabled\n ? ''\n : `linear-gradient(90deg, var(--wx-slider-primary) 0% ${progress}, var(--wx-slider-background) ${progress} 100%)`;\n }, [disabled, progress]);\n\n function oninput({ target }) {\n const newValue = target.value * 1;\n setValue(newValue);\n onChange &&\n onChange({\n value: newValue,\n previous: previous.current.input,\n input: true,\n });\n previous.current.input = newValue;\n }\n\n function onslider({ target }) {\n const newValue = target.value * 1;\n setValue(newValue);\n onChange && onChange({ value: newValue, previous: previous.current.value });\n previous.current.value = newValue;\n }\n\n // Sync if props.value changes externally\n useEffect(() => {\n setValue(initialValue);\n }, [initialValue]);\n\n const inputRef = useRef(null);\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.addEventListener('change', onslider);\n return () => {\n if (inputRef.current) {\n inputRef.current.removeEventListener('change', onslider);\n }\n };\n }\n }, [inputRef, onslider]);\n\n const style = {...(width && { width })};\n\n return (\n <div className={`wx-2EDJ8G wx-slider ${css}`} style={style} title={title}>\n {label && (\n <label className=\"wx-2EDJ8G wx-label\" htmlFor={inputId}>\n {label}\n </label>\n )}\n <div className=\"wx-2EDJ8G wx-inner\">\n <input\n id={inputId}\n className=\"wx-2EDJ8G wx-input\"\n type=\"range\"\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n value={value}\n onInput={oninput}\n style={{ background: bgStyle }}\n ref={inputRef}\n />\n </div>\n </div>\n );\n}\n","import { useCallback } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Switch.css';\n\nexport default function Switch({\n id,\n value: initialValue = false,\n disabled = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n\n const handleChange = useCallback(\n (event) => {\n const newValue = event.target.checked;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n },\n [onChange],\n );\n\n return (\n <label className=\"wx-2dAR5c wx-switch\">\n <input\n className=\"wx-2dAR5c wx-input\"\n type=\"checkbox\"\n checked={value}\n onChange={handleChange}\n disabled={disabled}\n id={inputId}\n />\n <span className=\"wx-2dAR5c wx-box\" />\n </label>\n );\n}\n","import { useWritableProp } from '@svar-ui/lib-react';\nimport './Tabs.css';\n\nconst Tabs = ({\n options = [],\n value: propValue = '',\n type = 'top',\n css = '',\n onChange,\n}) => {\n const [value, setValue] = useWritableProp(propValue);\n\n const handleClick = (optionId) => {\n setValue(optionId);\n if (onChange) {\n onChange({ value: optionId });\n }\n };\n\n return (\n <div className={'wx-138fWJ ' + `wx-tabs wx-${type} ${css}`}>\n {options.map((option) => (\n <button\n key={option.id}\n className={\n 'wx-138fWJ ' +\n `wx-tab ${option.css} ${option.id === value ? 'wx-active' : ''}`\n }\n title={option.title}\n onClick={() => handleClick(option.id)}\n >\n {option.icon && (\n <i\n className={\n 'wx-138fWJ ' +\n `wx-icon ${option.icon} ${!option.label ? 'wx-only' : ''}`\n }\n ></i>\n )}\n {option.label && (\n <span className=\"wx-138fWJ wx-label\">{option.label}</span>\n )}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Tabs;\n","import { useCallback } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Counter.css';\n\nconst Counter = ({\n id,\n value: initialValue = 0,\n step = 1,\n min = 0,\n max = Infinity,\n error = false,\n disabled = false,\n readonly = false,\n onChange,\n}) => {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n\n const dec = useCallback(() => {\n if (readonly || value <= min) return;\n const newValue = value - step;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }, [value, readonly, min, step, onChange]);\n\n const inc = useCallback(() => {\n if (readonly || value >= max) return;\n const newValue = value + step;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }, [value, readonly, max, step, onChange]);\n\n const blur = useCallback(() => {\n if (!readonly) {\n const tValue =\n Math.round(Math.min(max, Math.max(value, min)) / step) * step;\n const newValue = isNaN(tValue) ? Math.max(min, 0) : tValue;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }\n }, [readonly, value, max, min, step, onChange]);\n\n const input = useCallback(\n (e) => {\n const newValue = e.target.value * 1;\n setValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [onChange],\n );\n\n return (\n <div\n className={\n 'wx-22t21n ' +\n `wx-counter ${disabled ? 'wx-disabled' : ''} ${readonly ? 'wx-readonly' : ''} ${error ? 'wx-error' : ''}`\n }\n >\n <button\n aria-label=\"-\"\n className={'wx-22t21n ' + 'wx-btn wx-btn-dec'}\n disabled={disabled}\n onClick={dec}\n >\n <svg\n className={'wx-22t21n ' + 'wx-dec'}\n width=\"12\"\n height=\"2\"\n viewBox=\"0 0 12 2\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M11.2501 1.74994H0.750092V0.249939H11.2501V1.74994Z\" />\n </svg>\n </button>\n <input\n id={inputId}\n type=\"text\"\n className={'wx-22t21n ' + 'wx-input'}\n disabled={disabled}\n readOnly={readonly}\n required\n value={value}\n onBlur={blur}\n onInput={input}\n />\n <button\n aria-label=\"-\"\n className={'wx-22t21n ' + 'wx-btn wx-btn-inc'}\n disabled={disabled}\n onClick={inc}\n >\n <svg\n className={'wx-22t21n ' + 'wx-inc'}\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.2501\n\t\t\t\t\t\t\t\t6.74994H6.75009V11.2499H5.25009V6.74994H0.750092V5.24994H5.25009V0.749939H6.75009V5.24994H11.2501V6.74994Z\"\n />\n </svg>\n </button>\n </div>\n );\n};\n\nexport default Counter;\n","import './Notice.css';\n\nexport default function Notice({ notice = {} }) {\n function onRemove() {\n if (notice.remove) notice.remove();\n }\n\n return (\n <div\n className={`wx-11sNg5 wx-notice wx-${notice.type ? notice.type : ''}`}\n role=\"status\"\n aria-live=\"polite\"\n >\n <div className=\"wx-11sNg5 wx-text\">{notice.text}</div>\n <div className=\"wx-11sNg5 wx-button\">\n <i className=\"wx-11sNg5 wxi-close\" onClick={onRemove} />\n </div>\n </div>\n );\n}\n","import Notice from './Notice.jsx';\nimport './Notices.css';\n\nexport default function Notices({ data = [] }) {\n return (\n <div className=\"wx-3nwoO9 wx-notices\">\n {data.map((notice) => (\n <Notice key={notice.id} notice={notice} />\n ))}\n </div>\n );\n}\n","import { useRef, useEffect, useContext } from 'react';\nimport Button from './Button.jsx';\nimport { i18n } from '../context.js';\nimport './Modal.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nexport default function Modal({\n title = '',\n buttons = ['cancel', 'ok'],\n header,\n children,\n footer,\n onConfirm,\n onCancel,\n}) {\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n const modal = useRef(null);\n\n useEffect(() => {\n modal.current?.focus();\n }, []);\n\n function keydown(ev) {\n switch (ev.code) {\n case 'Enter': {\n const from = ev.target.tagName;\n if (from === 'TEXTAREA' || from === 'BUTTON') return;\n onConfirm && onConfirm({ event: ev });\n break;\n }\n case 'Escape':\n onCancel && onCancel({ event: ev });\n break;\n }\n }\n\n function onclick(ev, button) {\n const pack = { event: ev, button };\n if (button === 'cancel') {\n onCancel && onCancel(pack);\n } else {\n onConfirm && onConfirm(pack);\n }\n }\n\n return (\n <div\n className=\"wx-1FxkZa wx-modal\"\n ref={modal}\n tabIndex={0}\n onKeyDown={keydown}\n >\n <div className=\"wx-1FxkZa wx-window\">\n {header ? (\n header\n ) : title ? (\n <div className=\"wx-1FxkZa wx-header\">{title}</div>\n ) : null}\n\n <div>{children}</div>\n\n {footer\n ? footer\n : buttons && (\n <div className=\"wx-1FxkZa wx-buttons\">\n {buttons.map((button) => (\n <div key={button} className=\"wx-1FxkZa wx-button\">\n <Button\n type={`block ${button === 'ok' ? 'primary' : 'secondary'}`}\n onClick={(ev) => onclick(ev, button)}\n >\n {_(button)}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { useState, useImperativeHandle, forwardRef } from 'react';\nimport Notices from './Notices.jsx';\nimport Modal from './Modal.jsx';\n\nimport { uid } from '@svar-ui/lib-dom';\n\nfunction Globals({ children }, apiRef) {\n const [modal, setModal] = useState(null);\n const [notices, setNotices] = useState([]);\n\n useImperativeHandle(\n apiRef,\n () => ({\n showModal: (msg) => {\n const modalObj = { ...msg };\n setModal(modalObj);\n return new Promise((res, rej) => {\n modalObj.resolve = (v) => {\n setModal(null);\n res(v);\n };\n modalObj.reject = (v) => {\n setModal(null);\n rej(v);\n };\n });\n },\n showNotice: (msg) => {\n msg = { ...msg };\n msg.id = msg.id || uid();\n msg.remove = () =>\n setNotices((prev) => prev.filter((a) => a.id !== msg.id));\n\n if (msg.expire != -1) {\n setTimeout(msg.remove, msg.expire || 5100);\n }\n setNotices((prev) => [...prev, msg]);\n },\n }),\n [],\n );\n\n return (\n <>\n {children}\n {modal && (\n <Modal\n title={modal.title}\n buttons={modal.buttons}\n onConfirm={modal.resolve}\n onCancel={modal.reject}\n >\n {modal.message}\n </Modal>\n )}\n <Notices data={notices} />\n </>\n );\n}\n\nconst GlobalsComponentWithRef = forwardRef(Globals);\nexport default GlobalsComponentWithRef;\n","import { useMemo, useRef } from 'react';\nimport { helpers } from './context';\nimport Globals from './components/Globals.jsx';\n\nexport default function Component(props) {\n let { children } = props;\n let api = useRef();\n\n const l = useMemo(() => {\n return {\n showNotice: (msg) => api.current.showNotice(msg),\n showModal: (msg) => api.current.showModal(msg),\n };\n }, []);\n\n return (\n <helpers.Provider value={l}>\n <Globals ref={api}>{children}</Globals>\n </helpers.Provider>\n );\n}\n","import { useMemo } from 'react';\nimport { uid } from '@svar-ui/lib-dom';\nimport { fieldId } from \"../context\";\nimport './Field.css';\n\nexport default function Field({\n label = '',\n position = '',\n error = false,\n type = '',\n required = false,\n id,\n children,\n width = \"\",\n}) {\n const inputId = useMemo(() => (id === undefined ? uid() : id), [id]);\n const style = {...(width && { width })};\n\n return (\n <fieldId.Provider value={inputId}>\n <div\n style={style}\n className={`wx-2oVUvC wx-field wx-${position} ${error ? 'wx-error' : ''} ${required ? 'wx-required' : ''}`.trim()}\n >\n {label && (\n inputId\n ? <label className=\"wx-2oVUvC wx-label\" htmlFor={inputId}>{label}</label>\n : <div className=\"wx-2oVUvC wx-label\">{label}</div>\n )}\n <div className={`wx-2oVUvC wx-field-control wx-${type}`}>\n {children}\n </div>\n </div>\n </fieldId.Provider>\n );\n}\n","import { useCallback, useMemo } from 'react';\nimport { snippet, useWritableProp } from '@svar-ui/lib-react';\nimport Button from './Button.jsx';\n\nconst TwoState = ({\n value: initialValue = false,\n type = '',\n icon = '',\n disabled = false,\n iconActive = '',\n onClick,\n title = '',\n css = '',\n text = '',\n textActive = '',\n children,\n active,\n onChange,\n}) => {\n const [value, setValue] = useWritableProp(initialValue);\n\n const typeStr = useMemo(() => {\n return (value ? 'pressed' : '') + (type ? ' ' + type : '');\n }, [value, type]);\n\n const handleClick = useCallback(\n (ev) => {\n let next = !value;\n if (onClick) onClick(ev);\n if (!ev.defaultPrevented) {\n setValue(next);\n onChange && onChange({ value: next });\n }\n },\n [value, onClick, onChange],\n );\n\n if (value && active) {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n >\n {snippet(active, { value })}\n </Button>\n );\n } else if (children) {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n >\n {children}\n </Button>\n );\n } else {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n />\n );\n }\n};\n\nexport default TwoState;\n","import { useState, useMemo, useContext, useCallback } from 'react';\nimport Field from './Field.jsx';\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport Slider from './Slider.jsx';\nimport TwoState from './TwoState.jsx';\nimport { i18n } from '../context.js';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport './TimePicker.css';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defValue = new Date(0, 0, 0, 0, 0);\n\nexport default function TimePicker({\n value: propertyValue = defValue,\n id,\n title = '',\n css = '',\n disabled = false,\n error = false,\n format = '',\n onChange,\n dropdown,\n}) {\n let [value, setValue] = useWritableProp(propertyValue);\n\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n const h12 = calendarLocale.clockFormat == 12;\n\n const maxH = 23;\n const maxM = 59;\n\n const timeFormat = useMemo(() => {\n const f = format || formats?.timeFormat;\n return typeof f === 'function' ? f : dateToString(f, calendarLocale);\n }, [format, formats, calendarLocale]);\n\n const zeroBased = useMemo(() => {\n return timeFormat(new Date(0, 0, 0, 1)).indexOf('01') != -1;\n }, [timeFormat]);\n\n const formatTime = (v, zeroBased) => {\n return (v < 10 && zeroBased ? `0${v}` : `${v}`).slice(-2);\n };\n\n const formatM = (v) => {\n return formatTime(v, true);\n };\n\n const getNumber = (v) => {\n return `${v}`.replace(/[^\\d]/g, '') || 0;\n };\n const formatH = (v) => {\n if (h12) {\n v = v % 12;\n if (v === 0) return '12';\n }\n return formatTime(v, zeroBased);\n };\n\n const update = useCallback((v, max) => {\n v = getNumber(v);\n return Math.min(v, max);\n }, []);\n\n const [popup, setPopup] = useState(null);\n\n const safeValue = value || defValue;\n\n const h = update(safeValue.getHours(), maxH);\n const m = update(safeValue.getMinutes(), maxM);\n\n const pm = h > 12;\n\n const hText = formatH(h);\n const mText = formatM(m);\n const textValue = useMemo(\n () => timeFormat(new Date(0, 0, 0, h, m)),\n [h, m, timeFormat],\n );\n\n const click = useCallback(() => {\n setPopup(true);\n }, []);\n\n const togglePM = useCallback(() => {\n const next = new Date(safeValue);\n next.setHours(next.getHours() + (pm ? -12 : 12));\n setValue(next);\n if (onChange) onChange({ value: next });\n }, [safeValue, pm, onChange]);\n\n const setHours = useCallback(\n ({ value: v }) => {\n if (safeValue.getHours() === v) return;\n\n const next = new Date(safeValue);\n next.setHours(v);\n setValue(next);\n if (onChange) onChange({ value: next });\n },\n [safeValue, onChange],\n );\n\n const setMinutes = useCallback(\n ({ value: v }) => {\n if (safeValue.getMinutes() === v) return;\n\n const next = new Date(safeValue);\n next.setMinutes(v);\n setValue(next);\n if (onChange) onChange({ value: next });\n },\n [safeValue, onChange],\n );\n\n const updateH = useCallback(\n (v) => {\n v = update(v, maxH);\n if (h12) {\n v = v * 1;\n if (v === 12) v = 0;\n if (pm) v += 12;\n }\n return v;\n },\n [update, h12, pm],\n );\n\n const oncancel = useCallback(() => {\n setPopup(null);\n }, []);\n\n return (\n <div\n className={`wx-7f497i wx-timepicker ${error ? 'wx-7f497i wx-error' : ''} ${disabled ? 'wx-7f497i wx-disabled' : ''}`}\n onClick={disabled ? undefined : click}\n style={{ cursor: disabled ? 'default' : 'pointer' }}\n >\n <Text\n id={id}\n css={css}\n title={title}\n value={textValue}\n readonly={true}\n disabled={disabled}\n error={error}\n icon=\"wxi-clock\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n />\n\n {popup && !disabled && (\n <Dropdown onCancel={oncancel} {...toDateDropdown(dropdown)}>\n <div className=\"wx-7f497i wx-wrapper\">\n <div className=\"wx-7f497i wx-timer\">\n <input\n className=\"wx-7f497i wx-digit\"\n value={hText}\n onChange={(ev) => {\n const val = updateH(ev.target.value);\n setHours({ value: val });\n }}\n />\n <div className=\"wx-7f497i wx-separator\">:</div>\n <input\n className=\"wx-7f497i wx-digit\"\n value={mText}\n onChange={(ev) => {\n const val = update(ev.target.value, maxM);\n setMinutes({ value: val });\n }}\n />\n {h12 && (\n <TwoState\n value={pm}\n onClick={togglePM}\n active={() => <span>pm</span>}\n >\n <span>am</span>\n </TwoState>\n )}\n </div>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.hours}\n value={h}\n width=\"unset\"\n onChange={setHours}\n max={maxH}\n />\n </Field>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.minutes}\n value={m}\n width=\"unset\"\n onChange={setMinutes}\n max={maxM}\n />\n </Field>\n </div>\n </Dropdown>\n )}\n </div>\n );\n}\n","import './ModalArea.css';\n\nexport default function ModalArea({ children }) {\n return (\n <div className=\"wx-KgpO9N wx-modal\">\n <div className=\"wx-KgpO9N wx-window\">{children}</div>\n </div>\n );\n}\n","import { useRef, useEffect } from 'react';\nimport { clickOutside } from '@svar-ui/lib-dom';\nimport './SideArea.css';\n\nexport default function SideArea({ position = 'right', children, onCancel }) {\n const divRef = useRef(null);\n\n useEffect(() => {\n return clickOutside(divRef.current, onCancel).destroy;\n }, []);\n\n return (\n <div ref={divRef} className={`wx-2L733M wx-sidearea wx-pos-${position}`}>\n {children}\n </div>\n );\n}\n","import { useState, useEffect, useMemo, useRef } from 'react';\nimport './Avatar.css';\n\nconst DEFAULT_BG = '#dfe2e6';\nconst DEFAULT_FONT = '#2c2f3c';\n\n/** Overlap factor: each avatar after the first adds 75% of size (25% overlap). */\nconst OVERLAP_FACTOR = 0.75;\n\nfunction getInitials(name) {\n\tname = name?.trim() || '';\n\tif (!name) return '';\n\tconst words = name.split(/\\s+/);\n\treturn (words[0][0] + (words[1]?.[0] || '')).toUpperCase().slice(0, 2);\n}\n\nfunction getContrastColor(hex) {\n\tif (!hex) return DEFAULT_FONT;\n\tlet h = hex.replace('#', '');\n\tif (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];\n\tif (h.length !== 6) return DEFAULT_FONT;\n\tconst r = parseInt(h.slice(0, 2), 16) / 255;\n\tconst g = parseInt(h.slice(2, 4), 16) / 255;\n\tconst b = parseInt(h.slice(4, 6), 16) / 255;\n\tconst luminance = 0.299 * r + 0.587 * g + 0.114 * b;\n\treturn luminance > 0.5 ? DEFAULT_FONT : '#ffffff';\n}\n\nfunction Avatar(props) {\n\tconst { value, size = 32, limit } = props;\n\n\tconst containerRef = useRef(null);\n\tconst [containerWidth, setContainerWidth] = useState(null);\n\n\tconst users = useMemo(() => {\n\t\tif (!value) return [];\n\t\treturn Array.isArray(value) ? value : [value];\n\t}, [value]);\n\n\t/** Max avatars that fit in container. Formula: width = size + (n-1) * size * 0.75. */\n\tconst maxFitting = useMemo(() => {\n\t\tif (containerWidth == null || containerWidth <= 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst n = 1 + (containerWidth / size - 1) / OVERLAP_FACTOR;\n\t\treturn Math.max(1, Math.floor(n));\n\t}, [containerWidth, size]);\n\n\tconst displayCount = useMemo(() => {\n\t\tconst cap = limit != null ? Math.min(users.length, limit) : users.length;\n\t\tif (maxFitting != null) {\n\t\t\treturn Math.min(cap, maxFitting);\n\t\t}\n\t\treturn cap;\n\t}, [users, limit, maxFitting]);\n\n\tconst displayUsers = useMemo(() => users.slice(0, displayCount), [users, displayCount]);\n\tconst overflowCount = useMemo(() => Math.max(0, users.length - displayCount), [users, displayCount]);\n\n\tuseEffect(() => {\n\t\tconst el = containerRef.current;\n\t\tif (!el) return;\n\t\tconst ro = new ResizeObserver(entries => {\n\t\t\tconst entry = entries[0];\n\t\t\tif (entry) setContainerWidth(entry.contentRect.width);\n\t\t});\n\t\tro.observe(el);\n\t\treturn () => ro.disconnect();\n\t}, []);\n\n\tconst fontSize = Math.round(size * 0.4);\n\tconst avatarBaseStyle = {\n\t\twidth: size + 'px',\n\t\theight: size + 'px',\n\t\tminWidth: size + 'px',\n\t\tminHeight: size + 'px',\n\t\tfontSize: fontSize + 'px',\n\t};\n\n\tfunction getAvatarItemStyle(user, index) {\n\t\tconst margin = index === 0 ? '0' : `${size * -0.25}px`;\n\t\tconst bg = user.avatar ? 'transparent' : user.color || DEFAULT_BG;\n\t\tconst color = user.avatar\n\t\t\t? 'transparent'\n\t\t\t: getContrastColor(user.color || DEFAULT_BG);\n\t\treturn { marginLeft: margin, backgroundColor: bg, color };\n\t}\n\n\treturn (\n\t\t<div className=\"wx-avatar-root wx-aadkRiRf\" ref={containerRef}>\n\t\t\t{displayUsers.length > 0 && (\n\t\t\t\t<div className=\"wx-avatar-stack wx-aadkRiRf\">\n\t\t\t\t\t{displayUsers.map((user, index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={user.id}\n\t\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\t'wx-avatar',\n\t\t\t\t\t\t\t\t'wx-avatar-item',\n\t\t\t\t\t\t\t\tindex === displayUsers.length - 1 && overflowCount > 0\n\t\t\t\t\t\t\t\t\t? 'wx-avatar-overflow'\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t'wx-aadkRiRf',\n\t\t\t\t\t\t\t].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\tstyle={{ ...avatarBaseStyle, ...getAvatarItemStyle(user, index) }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{user.avatar ? (\n\t\t\t\t\t\t\t\t<img src={user.avatar} alt=\"\" loading=\"lazy\" />\n\t\t\t\t\t\t\t) : getInitials(user.name) ? (\n\t\t\t\t\t\t\t\t<span className=\"wx-aadkRiRf\">{getInitials(user.name)}</span>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t{index === displayUsers.length - 1 && overflowCount > 0 && (\n\t\t\t\t\t\t\t\t<span className=\"wx-avatar-overflow-badge wx-aadkRiRf\">\n\t\t\t\t\t\t\t\t\t+{overflowCount}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default Avatar;\n","import './FontRoboto.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport RobotoFont from './FontRoboto';\nimport './Material.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"material\">\n <>\n {children && <div className=\"wx-theme wx-material-theme\">{children}</div>}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <RobotoFont />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import './FontOpenSans.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport FontOpenSans from './FontOpenSans';\nimport './Willow.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"willow\">\n <>\n {children && children && (\n <div className=\"wx-theme wx-willow-theme\">{children}</div>\n )}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <FontOpenSans />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import { theme } from '../context';\nimport FontOpenSans from './FontOpenSans';\nimport './WillowDark.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"willow-dark\">\n <>\n {children && children && (\n <div className=\"wx-theme wx-willow-dark-theme\">{children}</div>\n )}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <FontOpenSans />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import { uid } from '@svar-ui/lib-dom';\n\nexport function popupContainer(node) {\n const id = uid();\n node.setAttribute('data-wx-portal-root', id);\n}\n","export { default as TextArea } from './components/TextArea.jsx';\nexport { default as Button } from './components/Button.jsx';\nexport { default as Checkbox } from './components/Checkbox.jsx';\nexport { default as CheckboxGroup } from './components/CheckboxGroup.jsx';\nexport { default as ColorSelect } from './components/ColorSelect.jsx';\nexport { default as ColorBoard } from './components/ColorBoard.jsx';\nexport { default as ColorPicker } from './components/ColorPicker.jsx';\nexport { default as Combo } from './components/Combo.jsx';\nexport { default as DatePicker } from './components/DatePicker.jsx';\nexport { default as DateRangePicker } from './components/DateRangePicker.jsx';\nexport { default as Fullscreen } from './components/Fullscreen.jsx';\nexport { default as Icon } from './components/Icon.jsx';\nexport { default as MultiCombo } from './components/MultiCombo.jsx';\nexport { default as Popup } from './components/Popup.jsx';\nexport { default as Dropdown } from './components/Dropdown.jsx';\nexport { default as Pager } from './components/Pager.jsx';\nexport { default as RadioButton } from './components/RadioButton.jsx';\nexport { default as RadioButtonGroup } from './components/RadioButtonGroup.jsx';\nexport { default as RichSelect } from './components/RichSelect.jsx';\nexport { default as Segmented } from './components/Segmented.jsx';\nexport { default as Select } from './components/Select.jsx';\nexport { default as Slider } from './components/Slider.jsx';\nexport { default as Switch } from './components/Switch.jsx';\nexport { default as Tabs } from './components/Tabs.jsx';\nexport { default as Text } from './components/Text.jsx';\nexport { default as Counter } from './components/Counter.jsx';\nexport { default as Globals } from './Globals.jsx';\nexport { default as Field } from './components/Field.jsx';\nexport { default as Calendar } from './components/Calendar.jsx';\nexport { default as Month } from './components/calendar/Month.jsx';\nexport { default as RangeCalendar } from './components/RangeCalendar.jsx';\nexport { default as TimePicker } from './components/TimePicker.jsx';\nexport { default as TwoState } from './components/TwoState.jsx';\nexport { default as Modal } from './components/Modal.jsx';\nexport { default as ModalArea } from './components/ModalArea.jsx';\nexport { default as SideArea } from './components/SideArea.jsx';\nexport { default as Portal } from './components/Portal.jsx';\nexport { default as Avatar } from './components/Avatar.jsx';\n\nexport { default as Material } from './themes/Material.jsx';\nexport { default as Willow } from './themes/Willow.jsx';\nexport { default as WillowDark } from './themes/WillowDark.jsx';\n\nexport { default as Locale } from './Locale.jsx';\nexport { locale } from '@svar-ui/lib-dom';\n\nexport { popupContainer } from './components/helpers/popup';\nexport { default as SuggestDropdown } from './components/helpers/SuggestDropdown.jsx';\n\nexport { en } from '@svar-ui/core-locales';\nexport * as context from './context.js';\n\nimport { env, setEnv } from '@svar-ui/lib-dom';\nsetEnv(env);\n"],"names":["theme","createContext","helpers","i18n","fieldId","useInputId","id","contextId","useContext","inputId","useState","uid","TextArea","propValue","placeholder","title","disabled","error","readonly","onChange","value","setValue","useWritableProp","handleInput","useCallback","e","newValue","ontextchange","inputRef","useRef","useEffect","handler","node","jsx","Button","type","css","icon","text","children","onClick","buttonCss","useMemo","cssType","a","x","handleClick","ev","jsxs","Checkbox","label","inputValue","valueProp","style","handlerChange","target","CheckboxGroup","options","handleChange","obj","option","Portal","initialTheme","portalRef","componentRef","targetRef","setTargetRef","contextTheme","themeContext","getParentRoot","env","Fragment","createPortal","p","root","Popup","left","top","at","parent","width","onCancel","trackScroll","setX","y","setY","w","setW","visible","setVisible","self","getWidth","calcWidth","match","updatePosition","result","calculatePosition","useLayoutEffect","onScroll","getAbsParent","down","clickOutside","InlineDropdown","positionProp","alignProp","autoFit","nodeRef","position","setPosition","align","setAlign","nodeCoords","bodyCoords","Dropdown","inline","props","setTarget","defaultColors","ColorSelect","colors","clear","dropdown","currentValue","setCurrentValue","popup","setPopup","selectColor","color","unselectColor","handlePopup","index","sliderMove","config","slider","moveBlockSlider","moveLineSlider","move","up","dx","dy","coords","colorTransformator","number","length","str","rgb","arr","v","n","hex","rgbPairs","r","g","b","h","s","hi","f","q","t","min","max","hexValidation","parseColor","defaultLocale","locale","en","BLOCK","LINE","ColorBoard","button","_","blockRef","colorLineRef","blockTop","setBlockTop","blockLeft","setBlockLeft","hueColor","setHueColor","lineLeft","setLineLeft","setInputValue","moveBlockSliderRef","moveLineSliderRef","blockColor","height","_sValue","_vValue","pxX","pxY","newHue","setSlidersPosition","newColor","handleSelect","keydown","isSliderBlock","isSliderLine","code","destroy","d","cssScope","ColorPicker","propertyValue","getListHandlers","navIndex","isVisible","virtualized","list","navCallback","selectCallback","init","l","o","c","setNav","scrollTo","next","navigate","dir","locateID","overscan","ItemContent","memo","data","checkboxes","snippet","ListContent","visibleItems","visibleRange","measureRefCallback","visibleIndex","SuggestDropdown","items","onSelect","onReady","multiselect","rest","initialScrolled","setNavIndex","navIndexRef","scrollTop","setScrollTop","itemHeight","setItemHeight","isItemHeightInitialized","itemsRef","valueRef","itemHeightRef","selectItem","currentItems","currentNavIndex","nextValue","nextId","i","selectItemRef","scrollToVirtualized","idx","newScrollTop","listRefCallback","el","navigateVirtualized","keydownVirtualized","isTargetVisibleTop","isTargetVisibleBottom","dropdownKey","prevItemsRef","handleScroll","displayedItemsCount","start","end","item","offsetTop","totalHeight","Combo","textOptions","textField","kids","filterActive","setFilterActive","textInput","setTextInput","inputElement","hasFocus","filteredOptions","ready","doSelect","effects","selected","selectByEvent","doUnselect","selectByText","chunk","res","handleFocus","handleBlur","List","Text","propsValue","focus","select","inputStyle","cssString","hasLeftIcon","timer","oninput","clearValue","inputType","Header","date","part","onShift","calendar","formats","year","dateToString","getDuodecade","yearFormat","changeType","Month","current","markers","weekStart","weekdays","dv","dm","dd","ranges","isWeekEnd","getStart","getEnd","lastTime","selectDate","days","curMonth","day","mark","delegateRef","delegateHandler","delegateClick","Year","currentProp","defaultDate","setCurrent","months","monthNum","selectMonth","month","newCurrent","done","getPartValue","handleMonthClick","Duodecade","currentState","valueState","years","selectYears","selectYear","yearVal","containerRef","configs","nextMonth","prevMonth","nextYear","prevYear","nextDuodecade","prevDuodecade","defaultButtons","getButtonValue","btn","Panel","onCurrentChange","buttons","setType","buttonsList","oncancel","onShiftLocal","diff","onChangeLocal","CalendarView","Component","words","optional","fixCurrent","force","Calendar","onCurrentChangeLocal","Locale","toDateDropdown","DatePicker","format","editable","calendarLocale","dateFormat","doChange","skipEvent","formattedValue","onchangeHandler","input","RangeCalendar","startProp","endProp","setStart","setEnd","leftCurrent","setLeftCurrent","rightCurrent","setRightCurrent","addMonth","rPrev","onLeft","newLeft","onRight","newRight","startVal","selectChange","final","doChangeStart","doChangeEnd","DateRangePicker","doInputChange","av","val","Fullscreen","hotkey","toggleButton","inFullscreen","setInFullscreen","toggleFullscreen","prev","useHotkeys","setFullscreenState","Icon","defaultValue","MultiCombo","setText","setFocus","filterOptions","onready","onselect","remove","onClickHandler","tag","Pager","total","initialPageSize","initialValue","pageSize","setPageSize","pageCount","from","to","setInnerValue","setActivePage","onPageSizeInput","RadioButton","externalValue","name","fallbackId","useId","internalValue","setInternalValue","isControlled","RadioButtonGroup","RichSelect","unselect","Segmented","Select","event","Slider","step","previous","progress","bgStyle","onslider","Switch","Tabs","optionId","Counter","dec","inc","blur","tValue","Notice","notice","onRemove","Notices","Modal","header","footer","onConfirm","modal","onclick","pack","Globals","apiRef","setModal","notices","setNotices","useImperativeHandle","msg","modalObj","rej","GlobalsComponentWithRef","forwardRef","api","Field","required","TwoState","iconActive","textActive","active","typeStr","defValue","TimePicker","h12","maxH","maxM","timeFormat","zeroBased","formatTime","formatM","getNumber","formatH","update","safeValue","m","pm","hText","mText","textValue","click","togglePM","setHours","setMinutes","updateH","ModalArea","SideArea","divRef","DEFAULT_BG","DEFAULT_FONT","OVERLAP_FACTOR","getInitials","getContrastColor","Avatar","size","limit","containerWidth","setContainerWidth","users","maxFitting","displayCount","cap","displayUsers","overflowCount","ro","entries","entry","fontSize","avatarBaseStyle","getAvatarItemStyle","user","margin","bg","render","fonts","RobotoFont","FontOpenSans","popupContainer","setEnv"],"mappings":"kQAEaA,GAAQC,EAAAA,cAAc,EAAE,EACxBC,GAAUD,EAAAA,cAAc,EAAE,EAC1BE,EAAOF,EAAAA,cAAc,IAAI,EACzBG,GAAUH,EAAAA,cAAc,IAAI,sICDlC,SAASI,EAAWC,EAAI,CAC7B,MAAMC,EAAYC,EAAAA,WAAWJ,EAAO,EAE9B,CAACK,CAAO,EAAIC,EAAAA,SAAS,IAAMJ,GAAMC,GAAaI,EAAAA,KAAK,EAEzD,OAAOF,CACT,CCJA,SAAwBG,GAAS,CAC/B,MAAOC,EAAY,GACnB,GAAAP,EACA,YAAAQ,EAAc,GACd,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,SAAAC,CACF,EAAG,CACD,MAAMV,EAAUJ,EAAWC,CAAE,EACvB,CAACc,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBT,CAAS,EAE7CU,EAAcC,EAAAA,YACjBC,GAAM,CACL,MAAMC,EAAWD,EAAE,OAAO,MAC1BJ,EAASK,CAAQ,EACbP,GACFA,EAAS,CAAE,MAAOO,EAAU,MAAO,GAAM,CAE7C,EACA,CAACP,CAAQ,CAAA,EAGLQ,EAAeH,EAAAA,YAClBC,GAAM,CACL,MAAMC,EAAWD,EAAE,OAAO,MAC1BJ,EAASK,CAAQ,EACbP,GACFA,EAAS,CAAE,MAAOO,EAAU,CAEhC,EACA,CAACP,CAAQ,CAAA,EAGLS,EAAWC,EAAAA,OAAO,IAAI,EAC5BC,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAUJ,EACVK,EAAOJ,EAAS,QACtB,OAAAI,EAAK,iBAAiB,SAAUD,CAAO,EAChC,IAAM,CACPC,GACFA,EAAK,oBAAoB,SAAUD,CAAO,CAE9C,CACF,EAAG,CAACJ,CAAY,CAAC,EAGfM,EAAAA,IAAC,WAAA,CACC,UAAW,yBAA8BhB,EAAQ,WAAa,EAAE,GAChE,GAAIR,EACJ,SAAAO,EACA,YAAAF,EACA,SAAUI,EACV,MAAAH,EACA,MAAAK,EACA,QAASG,EACT,IAAKK,CAAA,CAAA,CAGX,CC/DA,SAAwBM,EAAO,CAC7B,KAAAC,EAAO,GACP,IAAAC,EAAM,GACN,KAAAC,EAAO,GACP,SAAArB,EAAW,GACX,MAAAD,EAAQ,GACR,KAAAuB,EAAO,GACP,SAAAC,EACA,QAAAC,CACF,EAAG,CACD,MAAMC,EAAYC,EAAAA,QAAQ,IAAM,CAC9B,IAAIC,EAAUR,EACVA,EACG,MAAM,GAAG,EACT,OAAQS,GAAMA,IAAM,EAAE,EACtB,IAAKC,GAAM,MAAQA,CAAC,EACpB,KAAK,GAAG,EACX,GACJ,OAAOT,GAAOA,EAAM,IAAM,IAAMO,CAClC,EAAG,CAACR,EAAMC,CAAG,CAAC,EAERU,EAAeC,GAAO,CAC1BP,GAAWA,EAAQO,CAAE,CACvB,EAEA,OACEC,EAAAA,KAAC,SAAA,CACC,MAAAjC,EACA,UAAW,uBAAuB0B,CAAS,IAAIJ,GAAQ,CAACE,EAAW,UAAY,EAAE,GACjF,SAAAvB,EACA,QAAS8B,EAER,SAAA,CAAAT,GAAQJ,EAAAA,IAAC,IAAA,CAAE,UAAW,aAAeI,EAAM,EAC3CE,GAAsBD,GAAQ,GAAA,CAAA,CAAA,CAGrC,CCnCA,SAAwBW,GAAS,CAC/B,GAAA3C,EACA,MAAA4C,EAAQ,GACR,WAAAC,EAAa,GACb,MAAOC,EAAY,GACnB,SAAAjC,EACA,SAAAH,EAAW,GACX,MAAAqC,CACF,EAAG,CAED,MAAM5C,EAAUJ,EAAWC,CAAE,EACvB,CAACc,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgB8B,CAAS,EAE7CE,EAAgB,CAAC,CAAE,OAAAC,KAAa,CACpC,MAAM7B,EAAW6B,EAAO,QACxBlC,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,EAAU,WAAAyB,EAAY,CACtD,EAEA,OACEH,EAAAA,KAAC,MAAA,CAAI,MAAAK,EAAc,UAAU,wBAC3B,SAAA,CAAApB,EAAAA,IAAC,QAAA,CACC,KAAK,WACL,GAAIxB,EACJ,SAAAO,EACA,UAAU,qBACV,QAASI,EACT,MAAO+B,EACP,SAAUG,CAAA,CAAA,EAEZN,EAAAA,KAAC,QAAA,CAAM,QAASvC,EAAS,UAAU,qBACjC,SAAA,CAAAwB,EAAAA,IAAC,OAAA,CAAK,UAAU,qBAAA,CAAsB,EACrCiB,GAASjB,EAAAA,IAAC,OAAA,CAAK,UAAU,qBAAsB,SAAAiB,CAAA,CAAM,CAAA,CAAA,CACxD,CAAA,EACF,CAEJ,CCnCA,SAAwBM,GAAc,CACpC,QAAAC,EAAU,CAAA,EACV,MAAArC,EAAQ,CAAA,EACR,KAAAe,EAAO,GACP,SAAAhB,CACF,EAAG,CAED,MAAMuC,EAAelC,EAAAA,YAClBmC,GAAQ,CACP,IAAIjC,EACAiC,EAAI,MAAOjC,EAAW,CAAC,GAAGN,EAAOuC,EAAI,UAAU,IACnCvC,EAAM,OAAQ,GAAM,IAAMuC,EAAI,UAAU,EAEpDxC,GAAUA,EAAS,CAAE,MAAOO,EAAU,CAC5C,EACA,CAACN,EAAOD,CAAQ,CAAA,EAGlB,OACEc,EAAAA,IAAC7B,GAAQ,SAAR,CAAiB,MAAO,KACvB,SAAA6B,EAAAA,IAAC,MAAA,CAAI,UAAW,8BAA8BE,GAAQ,MAAMA,CAAI,EAAE,GAC/D,SAAAsB,EAAQ,IAAKG,GACZ3B,EAAAA,IAAC,MAAA,CAAoB,UAAU,oBAC7B,SAAAA,EAAAA,IAACgB,GAAA,CACC,MAAOW,EAAO,MACd,WAAYA,EAAO,GACnB,MAAOxC,EAAM,SAASwC,EAAO,EAAE,EAC/B,SAAUF,CAAA,CAAA,CACZ,EANQE,EAAO,EAOjB,CACD,EACH,CAAA,CACF,CAEJ,CClCA,SAASC,GAAO,CAAE,MAAOC,EAAe,GAAI,OAAAP,EAAQ,SAAAhB,GAAY,CAC9D,MAAMwB,EAAYlC,EAAAA,OAAO,IAAI,EACvBmC,EAAenC,EAAAA,OAAO,IAAI,EAC1B,CAACoC,EAAWC,CAAY,EAAIxD,EAAAA,SAAS,IAAI,EAE1CqD,EAAU,UACbA,EAAU,QAAU,SAAS,cAAc,KAAK,GAGlD,MAAMI,EAAe3D,EAAAA,WAAW4D,EAAY,EAE5CtC,OAAAA,EAAAA,UAAU,IAAM,CACdoC,EACEX,GACEc,GAAcL,EAAa,OAAO,GAClCM,MAAI,WAAWN,EAAa,OAAO,CAAA,CAEzC,EAAG,CAACA,EAAa,OAAO,CAAC,EAGvBhB,EAAAA,KAAAuB,WAAA,CACE,SAAA,CAAAtC,MAAC,QAAK,IAAK+B,EAAc,MAAO,CAAE,QAAS,QAAU,EACpDA,EAAa,SAAWC,EACrBO,GAAAA,aACEvC,EAAAA,IAAC,MAAA,CACC,UAAW,gBAAgB6B,GAAgBK,CAAY,SAEtD,SAAA5B,CAAA,CAAA,EAEH0B,CAAA,EAEF,IAAA,EACN,CAEJ,CAIA,SAASI,GAAcI,EAAG,CACxB,MAAMC,EAAOJ,EAAAA,IAAI,WAAWG,CAAC,EAC7B,KAAOA,GAAKA,IAAMC,GAAQ,CAACD,EAAE,aAAa,qBAAqB,GAC7DA,EAAIA,EAAE,WAER,OAAOA,CACT,CC7CO,SAASE,GAAM,CACpB,KAAAC,EAAO,EACP,IAAAC,EAAM,EACN,GAAAC,EAAK,SACL,OAAAC,EAAS,KACT,MAAAC,EAAQ,OACR,IAAA5C,EAAM,GACN,SAAA6C,EACA,SAAA1C,EACA,YAAA2C,EAAc,EAChB,EAAG,CACD,KAAM,CAACrC,EAAGsC,CAAI,EAAIzE,EAAAA,SAAS,CAAC,EACtB,CAAC0E,EAAGC,CAAI,EAAI3E,EAAAA,SAAS,CAAC,EACtB,CAAC4E,EAAGC,CAAI,EAAI7E,EAAAA,SAAS,MAAM,EAC3B,CAAC8E,EAASC,CAAU,EAAI/E,EAAAA,SAAS,EAAK,EAEtCgF,EAAO7D,EAAAA,OAAO,IAAI,EAClBkC,EAAYlC,EAAAA,OAAO,IAAI,EAE7B,SAAS8D,EAASC,EAAW,CAC3B,OAAIb,IAAWC,EAAQ,IAAI,QAAQ,GAAG,EAAI,GACjCA,EAAM,QAAQ,SAAU,CAACa,EAAOzE,KACrCA,EAASA,EAAQ2D,EAAO,YAAe,IAAM,KACtCC,EAAM,QAAQa,EAAOzE,CAAK,EAClC,EAEI4D,GAASA,IAAU,OAASA,EAAQY,CAC7C,CAEA,MAAME,EAAiBtE,EAAAA,YAAY,IAAM,CACvC,GAAI,CAACkE,EAAK,QAAS,OAEnB,MAAMK,EAASC,EAAAA,kBAAkBN,EAAK,QAASX,EAAQD,EAAIF,EAAMC,CAAG,EAChEkB,IACFZ,EAAKY,EAAO,CAAC,EACbV,EAAKU,EAAO,CAAC,EACbR,EAAKI,EAASI,EAAO,KAAK,CAAC,EAE/B,EAAG,CAACL,EAAMX,EAAQD,EAAIF,EAAMC,EAAKG,CAAK,CAAC,EAEvCiB,OAAAA,EAAAA,gBAAgB,IAAM,CACpB,MAAMC,EAAYzE,GAAM,CAClBwD,GAAYxD,EAAE,SAAWsC,EAAU,SAAW2B,EAAK,SAAW,CAACA,EAAK,QAAQ,SAASjE,EAAE,MAAM,GAC/FwD,EAASxD,CAAC,CACd,EAEA,6BAAsB,IAAM,CAC1BqE,EAAA,EACAL,EAAW,EAAI,EACXP,GAAeQ,EAAK,UACtB3B,EAAU,QAAUoC,eAAaT,EAAK,OAAO,EACzC3B,EAAU,SACZA,EAAU,QAAQ,iBAAiB,SAAUmC,EAAU,EAAI,EAEjE,CAAC,EAEM,IAAM,CACPhB,GAAenB,EAAU,SAC3BA,EAAU,QAAQ,oBAAoB,SAAUmC,EAAU,EAAI,CAClE,CACF,EAAG,CAAA,CAAE,EAELD,EAAAA,gBAAgB,IAAM,CACpBH,EAAA,CACF,EAAG,CAACf,EAAQD,EAAIF,EAAMC,CAAG,CAAC,EAE1B/C,EAAAA,UAAU,IAAM,CACd,MAAMsE,EAAQ3E,GAAM,CAClBwD,GAAYA,EAASxD,CAAC,CACxB,EACA,GAAIiE,EAAK,QACP,OAAOW,EAAAA,aAAaX,EAAK,QAASU,CAAI,EAAE,OAE5C,EAAG,CAACnB,CAAQ,CAAC,EAGXhD,EAAAA,IAAC,MAAA,CACC,IAAKyD,EACL,UAAW,CAAC,YAAa,WAAYtD,CAAG,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAClE,MAAO,CACL,SAAU,WACV,WAAYoD,EAAU,UAAY,SAClC,IAAKJ,EAAI,KACT,KAAMvC,EAAI,KACV,MAAOyC,CAAA,EAGR,SAAA/C,CAAA,CAAA,CAGP,CC1FA,SAAS+D,GAAe,CACtB,SAAUC,EAAe,SACzB,MAAOC,EAAY,QACnB,QAAAC,EAAU,GACV,SAAAxB,EAAW,KACX,MAAAD,EAAQ,OACR,IAAA5C,EAAM,GACN,SAAAG,CACF,EAAG,CACD,MAAMmE,EAAU7E,EAAAA,OAAO,IAAI,EACrB,CAAC8E,EAAUC,CAAW,EAAIlG,EAAAA,SAAS6F,CAAY,EAC/C,CAACM,EAAOC,CAAQ,EAAIpG,EAAAA,SAAS8F,CAAS,EAE5C1E,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI2E,EAAS,CACX,MAAMzE,EAAO0E,EAAQ,QACrB,GAAI1E,EAAM,CACR,MAAM+E,EAAa/E,EAAK,sBAAA,EAClBgF,EAAa,SAAS,KAAK,sBAAA,EAE7BD,EAAW,OAASC,EAAW,OACjCF,EAAS,KAAK,EAGZC,EAAW,QAAUC,EAAW,QAClCJ,EAAY,KAAK,CAErB,CACF,CACF,EAAG,CAAA,CAAE,EAEL9E,EAAAA,UAAU,IAAM,CACd,GAAI4E,EAAQ,QAAS,CACnB,MAAMN,EAAQ3E,GAAM,CAClBwD,GAAYA,EAASxD,CAAC,CACxB,EACA,OAAO4E,EAAAA,aAAaK,EAAQ,QAASN,CAAI,EAAE,OAC7C,CACF,EAAG,CAACnB,CAAQ,CAAC,EAGXhD,EAAAA,IAAC,MAAA,CACC,IAAKyE,EACL,UAAW,CACT,cACA,MAAMC,CAAQ,IAAIE,CAAK,GACvBzE,GAAO,GACP,aAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EACX,MAAO,CAAE,MAAA4C,CAAA,EAER,SAAAzC,CAAA,CAAA,CAGP,CCtDA,SAAS0E,EAAS,CAChB,SAAAN,EAAW,SACX,MAAAE,EAAQ,QACR,QAAAJ,EAAU,GACV,OAAAS,EAAS,GACT,SAAAjC,EACA,MAAAD,EAAQ,OACR,SAAAzC,EACA,GAAG4E,CACL,EAAG,CACD,KAAM,CAAC5D,EAAQ6D,CAAS,EAAI1G,EAAAA,SAAS,MAAS,EACxCgG,EAAU7E,EAAAA,OAAO,IAAI,EAErBiD,EAAKpC,EAAAA,QAAQ,IAAM,GAAGiE,CAAQ,IAAIE,CAAK,GAAI,CAACF,EAAUE,CAAK,CAAC,EAElEZ,OAAAA,EAAAA,gBAAgB,IAAM,CAChBS,EAAQ,SACVU,EAAUV,EAAQ,QAAQ,UAAU,CAExC,EAAG,CAAA,CAAE,EAGH1D,EAAAA,KAAAuB,WAAA,CACG,SAAA,CAAAhB,IAAW2D,EACVjF,EAAAA,IAACqE,GAAA,CACC,SAAArB,EACA,SAAA0B,EACA,MAAAE,EACA,QAAAJ,EACA,MAAAzB,EACC,GAAGmC,EAEH,SAAA5E,CAAA,CAAA,EAGHN,EAAAA,IAAC4B,GAAA,CACC,SAAA5B,EAAAA,IAAC0C,GAAA,CAAM,OAAQpB,EAAQ,GAAAuB,EAAQ,SAAAG,EAAoB,MAAAD,EAAe,GAAGmC,EAClE,SAAA5E,EACH,CAAA,CACF,GAEFN,EAAAA,IAAC,OAAA,CAAK,IAAKyE,EAAS,UAAU,0BAAA,CAA2B,CAAA,EAC3D,CAEJ,CC7CA,MAAMW,GAAgB,CACpB,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EAEA,SAAwBC,GAAY,CAClC,OAAAC,EAASF,GACT,MAAAjG,EAAQ,GACR,SAAAD,EACA,GAAAb,EACA,MAAAkH,EAAQ,GACR,YAAA1G,EAAc,GACd,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,MAAAC,EAAQ,GACR,SAAAwG,EAAW,CAAA,CACb,EAAG,CACD,MAAMhH,EAAUJ,EAAWC,CAAE,EACvB,CAACoH,EAAcC,CAAe,EAAIjH,EAAAA,SAASU,CAAK,EAChD,CAACwG,EAAOC,CAAQ,EAAInH,EAAAA,SAAS,EAAK,EAElCoH,EAActG,EAAAA,YAClB,CAACuB,EAAIgF,IAAU,CACbhF,EAAG,gBAAA,EACH4E,EAAgBI,CAAK,EACrBF,EAAS,EAAK,EACd1G,GAAYA,EAAS,CAAE,MAAO4G,CAAA,CAAO,CACvC,EACA,CAAC5G,CAAQ,CAAA,EAGL6G,EAAgBxG,EAAAA,YACnBuB,GAAO,CACNA,EAAG,gBAAA,EACH4E,EAAgB,EAAE,EAClBxG,GAAYA,EAAS,CAAE,MAAO,EAAA,CAAI,CACpC,EACA,CAACA,CAAQ,CAAA,EAGL8G,EAAczG,EAAAA,YAAY,IAAM,CACpC,GAAIR,EAAU,MAAO,GACrB6G,EAAS,EAAI,CACf,EAAG,CAAC7G,CAAQ,CAAC,EAEb,OACEgC,EAAAA,KAAC,MAAA,CAAI,UAAU,2BAA2B,QAASiF,EACjD,SAAA,CAAAhG,EAAAA,IAAC,QAAA,CACC,UACE,sBACChB,EAAQ,YAAc,KACtB2G,EAAQ,YAAc,IAEzB,MAAA7G,EACA,MAAO2G,EACP,SAAQ,GACR,GAAIjH,EACJ,YAAAK,EACA,SAAAE,CAAA,CAAA,EAGDwG,GAASE,GAAgB,CAAC1G,SACxB,IAAA,CAAE,UAAU,+BAA+B,QAASgH,EAAe,EAGrEN,EACCzF,EAAAA,IAAC,MAAA,CACC,UAAU,iCACV,MAAO,CAAE,gBAAiByF,GAAgB,SAAA,CAAU,CAAA,EAGtDzF,EAAAA,IAAC,MAAA,CAAI,UAAU,gCAAA,CAAiC,EAGjD2F,GACC3F,EAAAA,IAACgF,EAAA,CAAS,SAAU,IAAMY,EAAS,EAAK,EAAI,GAAGJ,EAC7C,SAAAzE,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACb,SAAA,CAAAf,EAAAA,IAAC,MAAA,CACC,UAAU,qBACV,QAAUc,GAAO+E,EAAY/E,EAAI,EAAE,CAAA,CAAA,EAEpCwE,EAAO,IAAI,CAACQ,EAAOG,IAClBjG,EAAAA,IAAC,MAAA,CAEC,UAAU,qBACV,MAAO,CAAE,gBAAiB8F,CAAA,EAC1B,QAAUhF,GAAO+E,EAAY/E,EAAIgF,CAAK,CAAA,EAHjCG,CAAA,CAKR,CAAA,CAAA,CACH,CAAA,CACF,CAAA,EAEJ,CAEJ,CCxGO,SAASC,GAAWnG,EAAMoG,EAAQ,CACvC,MAAMC,EAASrG,EAAK,WACd,CAAE,gBAAAsG,EAAiB,eAAAC,CAAc,EAAKH,GAAU,CAAA,EAEtD,SAAShC,EAAKrD,EAAI,CAChByF,EAAKzF,CAAE,EAEPsF,EAAO,MAAK,EAEZ,OAAO,iBAAiB,YAAaG,CAAI,EACzC,OAAO,iBAAiB,UAAWC,CAAE,CACvC,CAEA,SAASD,EAAKzF,EAAI,CAChB,IAAIF,EAAGuC,EAAGsD,EAAIC,EAEd,MAAMC,EAAS5G,EAAK,sBAAqB,EACzCa,EAAI+F,EAAO,KACXxD,EAAIwD,EAAO,IAEXF,EAAK3F,EAAG,QAAUF,EAClB8F,EAAK5F,EAAG,QAAUqC,EAEdkD,GAAiBF,EAAO,gBAAgBM,EAAIC,CAAE,EAC9CJ,GAAgBH,EAAO,eAAeM,CAAE,CAC9C,CAEA,SAASD,GAAK,CACZJ,EAAO,KAAI,EAEX,OAAO,oBAAoB,YAAaG,CAAI,EAC5C,OAAO,oBAAoB,UAAWC,CAAE,CAC1C,CAEA,OAAAzG,EAAK,iBAAiB,YAAaoE,CAAI,EAEhC,CACL,SAAU,CACRpE,EAAK,oBAAoB,YAAaoE,CAAI,CAC5C,CACJ,CACA,CCzCA,MAAMyC,EAAqB,CACzB,OAAQ,CACN,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,EACE,MAAMC,EAAQC,EAAQ,CACpBD,EAAS,SAASA,EAAQ,EAAE,EAC5B,IAAIE,EAAM,GACV,KAAOF,EAAS,GACdE,EAAM,KAAK,OAAOF,EAAS,EAAE,EAAIE,EACjCF,EAAS,KAAK,MAAMA,EAAS,EAAE,EAEjC,KAAOE,EAAI,OAASD,GAAQC,EAAM,IAAIA,CAAG,GACzC,OAAOA,CACT,EACA,SAASC,EAAK,CACZ,IAAIC,EAAM,CAAA,EAMV,OALI,OAAOD,GAAQ,SACjBA,EAAI,QAAQ,WAAaE,GAAMD,EAAI,KAAK,WAAWC,CAAC,CAAC,CAAC,EAC/C,MAAM,QAAQF,CAAG,IAAGC,EAAMD,GAG/BC,EAAI,CAAC,IAAM,EAAU,GAElBA,EACJ,MAAM,EAAG,CAAC,EACV,IAAKE,GACG,KAAK,MAAM,KAAK,MAAMA,CAAC,EAAG,CAAC,CACnC,EACA,KAAK,EAAE,CACZ,EACA,SAASC,EAAK,CACZ,OAAO,SAASA,EAAK,EAAE,CACzB,EAEA,SAASA,EAAK,CACZA,EAAMA,EAAI,OAAO,CAAC,IAAM,IAAMA,EAAI,MAAM,CAAC,EAAIA,EAC7C,MAAMC,EAAWD,EAAI,MAAM,SAAS,EAEpC,GAAI,CAACE,EAAGC,EAAGC,CAAC,EAAIH,EAEhB,OAAAC,EAAI,KAAK,SAASA,CAAC,EACnBC,EAAI,KAAK,SAASA,CAAC,EACnBC,EAAI,KAAK,SAASA,CAAC,EAEZ,CAACF,EAAGC,EAAGC,CAAC,CACjB,EACA,SAASC,EAAGC,EAAGR,EAAG,CAChB,IAAIS,EAAIC,EAAGpF,EAAGqF,EAAGC,EAAGR,EAAGC,EAAGC,EAS1B,OARAG,EAAK,KAAK,MAAMF,EAAI,EAAE,EAAI,EAC1BG,EAAIH,EAAI,GAAKE,EACbnF,EAAI0E,GAAK,EAAIQ,GACbG,EAAIX,GAAK,EAAIU,EAAIF,GACjBI,EAAIZ,GAAK,GAAK,EAAIU,GAAKF,GACvBJ,EAAI,EACJC,EAAI,EACJC,EAAI,EACIG,EAAE,CACR,IAAK,GACHL,EAAIJ,EACJK,EAAIO,EACJN,EAAIhF,EACJ,MACF,IAAK,GACH8E,EAAIO,EACJN,EAAIL,EACJM,EAAIhF,EACJ,MACF,IAAK,GACH8E,EAAI9E,EACJ+E,EAAIL,EACJM,EAAIM,EACJ,MACF,IAAK,GACHR,EAAI9E,EACJ+E,EAAIM,EACJL,EAAIN,EACJ,MACF,IAAK,GACHI,EAAIQ,EACJP,EAAI/E,EACJgF,EAAIN,EACJ,MACF,IAAK,GACHI,EAAIJ,EACJK,EAAI/E,EACJgF,EAAIK,EACJ,KAGR,CACI,OAAAP,EAAI,KAAK,MAAMA,EAAI,GAAG,EACtBC,EAAI,KAAK,MAAMA,EAAI,GAAG,EACtBC,EAAI,KAAK,MAAMA,EAAI,GAAG,EAEf,CAACF,EAAGC,EAAGC,CAAC,CACjB,EACA,SAASF,EAAGC,EAAGC,EAAG,CAChB,IAAIE,EAAGD,EAAGP,EACVI,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IAAIO,EAAM,KAAK,IAAIT,EAAGC,EAAGC,CAAC,EACtBQ,EAAM,KAAK,IAAIV,EAAGC,EAAGC,CAAC,EAC1B,OAAAC,EAAI,EACJC,EAAIM,IAAQ,EAAI,EAAI,EAAID,EAAMC,EAC9Bd,EAAIc,EACAA,IAAQD,EACVN,EAAI,EACKO,IAAQV,GAAKC,GAAKC,EAC3BC,EAAK,IAAMF,EAAIC,IAAOQ,EAAMD,GAAO,EAC1BC,IAAQV,GAAKC,EAAIC,EAC1BC,EAAK,IAAMF,EAAIC,IAAOQ,EAAMD,GAAO,IAC1BC,IAAQT,EACjBE,EAAK,IAAMD,EAAIF,IAAOU,EAAMD,GAAO,IAC1BC,IAAQR,IACjBC,EAAK,IAAMH,EAAIC,IAAOS,EAAMD,GAAO,KAG9B,CAACN,EAAGC,EAAGR,CAAC,CACjB,EACA,SAASE,EAAK,CACZ,MAAMJ,EAAM,KAAK,SAASI,CAAG,EAC7B,OAAO,KAAK,SAAS,GAAGJ,CAAG,CAC7B,EACA,SAASS,EAAGP,EAAG,EAAG,CAChB,MAAMF,EAAM,KAAK,SAASS,EAAGP,EAAG,CAAC,EACjC,MAAO,IAAM,KAAK,SAASF,CAAG,EAAE,YAAW,CAC7C,CACF,EC/IMiB,GAAiBlB,GAAQ,oCAAoC,KAAKA,CAAG,EAEpE,SAASmB,GAAW/I,EAAO,CAChC,OAAKA,GAELA,EAAQA,EAAM,SAAS,EAAE,EAErBA,EAAM,OAAO,CAAC,IAAM,MAAKA,EAAQA,EAAM,MAAM,CAAC,GAE9C8I,GAAc9I,CAAK,GACjBA,EAAM,SAAW,IACnBA,EAAQA,EACL,MAAM,EAAG,CAAC,EACV,MAAM,EAAE,EACR,OAAO,CAACwB,EAAG6G,IAAM7G,EAAI6G,EAAIA,EAAG,EAAE,GAE5B,IAAIrI,EAAM,YAAW,CAAE,IAGzB,MAhBY,IAiBrB,CCjBO,SAASgJ,GAAgB,CAC9B,OAAOC,EAAAA,OAAOC,GAAAA,EAAE,CAClB,CCYA,MAAMC,GAAQ,QACRC,GAAO,OAEb,SAASC,GAAW,CAClB,MAAOrH,EAAY,UACnB,OAAAsH,EAAS,GACT,SAAAvJ,CACF,EAAG,CACD,MAAMwJ,GAAKnK,aAAWL,CAAI,GAAKiK,EAAA,GAAiB,SAAS,MAAM,EAEzDQ,EAAW/I,EAAAA,OAAO,IAAI,EACtBgJ,EAAehJ,EAAAA,OAAO,IAAI,EAE1B,CAACiJ,EAAUC,CAAW,EAAIrK,WAAA,EAC1B,CAACsK,EAAWC,CAAY,EAAIvK,WAAA,EAC5B,CAACwK,EAAUC,CAAW,EAAIzK,WAAA,EAC1B,CAAC0K,EAAUC,CAAW,EAAI3K,WAAA,EAE1B,CAACU,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgB8B,CAAS,EAC7C,CAACD,EAAYmI,CAAa,EAAI5K,EAAAA,SAAS0C,CAAS,EAEhDmI,EAAqB1J,EAAAA,OAAO,IAAI,EAChC2J,EAAoB3J,EAAAA,OAAO,IAAI,EAE/BkG,EAAQrF,EAAAA,QAAQ,IAAMyH,GAAW/I,CAAK,GAAK,UAAW,CAACA,CAAK,CAAC,EAC7DqK,EAAa/I,EAAAA,QACjB,IAAMmG,EAAmB,SAASqC,GAAY,EAAG,EAAG,CAAC,EACrD,CAACA,CAAQ,CAAA,EAGL5C,EAAkB9G,EAAAA,YACtB,CAACkH,EAAIC,IAAO,CACV,KAAM,CAAE,MAAA3D,EAAO,OAAA0G,CAAA,EAAWd,EAAS,QAAQ,sBAAA,EAEvCjC,EAAK,EAAGA,EAAK,EACRA,EAAK+C,IAAQ/C,EAAK+C,GAEvBhD,EAAK,EAAGA,EAAK,EACRA,EAAK1D,IAAO0D,EAAK1D,GAE1B+F,EAAYpC,CAAE,EACdsC,EAAavC,CAAE,EAGf,IAAIiD,EAASC,EAEb,MAAMC,EAAM7G,EAAQ,IACd8G,EAAMJ,EAAS,IAErBC,EAAU,KAAK,KAAKjD,EAAKmD,CAAG,EAAI,IAChCD,EAAU,KAAK,KAAK,KAAK,IAAIjD,EAAKmD,EAAM,GAAG,CAAC,EAAI,IAEhD,MAAMpK,EAAWmH,EAAmB,SAClCqC,EACAS,EACAC,CAAA,EAEFvK,EAASK,CAAQ,EACjB4J,EAAc5J,CAAQ,EACtBP,GAAYA,EAAS,CAAE,MAAOO,EAAU,MAAO,GAAM,CACvD,EACA,CAACqG,EAAOmD,EAAU/J,CAAQ,CAAA,EAGtBoH,EAAiB/G,EAAAA,YACpBkH,GAAO,CACN,MAAM1D,EAAQ6F,EAAa,QAAQ,sBAAA,EAAwB,MAEvDnC,EAAK,EAAGA,EAAK,EACRA,EAAK1D,IAAO0D,EAAK1D,GAE1B,MAAM0E,EAAI,KAAK,MAAOhB,EAAK,IAAO1D,CAAK,EACjC+G,EAAS,KAAK,IAAI,KAAK,IAAIrC,EAAG,GAAG,EAAG,CAAC,EAC3CyB,EAAYY,CAAM,EAClBV,EAAY3C,CAAE,EAGd,IAAIiD,EAASC,EACb,CAAA,CAAGD,EAASC,CAAO,EAAI/C,EAAmB,SAASd,CAAK,EACxD,MAAMrG,EAAWmH,EAAmB,SAASkD,EAAQJ,EAASC,CAAO,EACrEvK,EAASK,CAAQ,EACjB4J,EAAc5J,CAAQ,EACtBP,GAAYA,EAAS,CAAE,MAAOO,EAAU,MAAO,GAAM,CACvD,EACA,CAACqG,EAAO5G,CAAQ,CAAA,EAGlBoK,EAAmB,QAAUjD,EAC7BkD,EAAkB,QAAUjD,EAE5B,MAAMyD,EAAqBxK,cAAayK,GAAa,CACnD,KAAM,CAACvC,EAAGC,EAAGR,CAAC,EAAIN,EAAmB,SAASoD,GAAYlE,CAAK,EAG/D,GAFAoD,EAAYzB,CAAC,EAETkB,EAAS,QAAS,CACpB,KAAM,CAAE,MAAA5F,EAAO,OAAA0G,CAAA,EAAWd,EAAS,QAAQ,sBAAA,EAEvCC,EAAa,SACfQ,EACG3B,EAAImB,EAAa,QAAQ,sBAAA,EAAwB,MAAS,GAAA,EAG/DI,EAAatB,EAAI3E,CAAK,EACtB+F,EAAY,KAAK,IAAIW,GAAUvC,EAAI,EAAE,CAAC,CACxC,CACF,EAAG,CAACpB,CAAK,CAAC,EAEJrE,EAAelC,EAAAA,YACnB,CAAC,CAAE,OAAA+B,CAAA,IAAa,CACd,MAAM0I,EAAW9B,GAAW5G,EAAO,KAAK,EACxC+H,EAAc/H,EAAO,KAAK,EACtB0I,IACF5K,EAAS4K,CAAQ,EACjB9K,GAAYA,EAAS,CAAE,MAAO8K,EAAU,MAAO,GAAM,EACrDD,EAAmBC,CAAQ,EAE/B,EACA,CAAC9K,EAAU6K,CAAkB,CAAA,EAGzBE,EAAe1K,EAAAA,YAClBuB,GAAO,CACNA,EAAG,gBAAA,EACH5B,GAAYA,EAAS,CAAE,MAAO4G,CAAA,CAAO,CACvC,EACA,CAACA,EAAO5G,CAAQ,CAAA,EAGZgL,EAAU3K,EAAAA,YACbuB,GAAO,CACN,MAAMsF,EAAStF,EAAG,OACZqJ,EAAgB/D,EAAO,aAAa,aAAa,IAAMkC,GACvD8B,EAAehE,EAAO,aAAa,aAAa,IAAMmC,GAE5D,IAAIpI,EAAM,OAAO,iBAAiBiG,CAAM,EACpCzD,EAAO,WAAWxC,EAAI,IAAI,EAC1ByC,EAAM,WAAWzC,EAAI,GAAG,EAC5B,MAAMkK,EAAOvJ,EAAG,KAEhB,GAAIqJ,EAAe,CACjB,OAAQE,EAAA,CACN,IAAK,YAAa,CAChB1H,IACA,KACF,CACA,IAAK,aAAc,CACjBA,IACA,KACF,CACA,IAAK,YAAa,CAChBC,IACA,KACF,CACA,IAAK,UAAW,CACdA,IACA,KACF,CACA,QACE,MAAA,CAGJyD,EAAgB1D,EAAMC,CAAG,CAC3B,CAEA,GAAIwH,EAAc,CAChB,GAAIC,IAAS,aAAeA,IAAS,YAAa1H,YACzC0H,IAAS,cAAgBA,IAAS,UAAW1H,QACjD,QACL2D,EAAe3D,CAAI,CACrB,CAEA7B,EAAG,eAAA,CACL,EACA,CAACuF,EAAiBC,CAAc,CAAA,EAGlCzG,EAAAA,UAAU,IAAM,CACd,MAAMyK,EAAU,CAAA,EAChB,OAAI3B,EAAS,SACX2B,EAAQ,KACNpE,GAAWyC,EAAS,QAAS,CAC3B,gBAAiB,CAAClC,EAAIC,IAAO,CAC3B4C,EAAmB,UAAU7C,EAAIC,CAAE,CACrC,CAAA,CACD,EAAE,OAAA,EAGHkC,EAAa,SACf0B,EAAQ,KACNpE,GAAW0C,EAAa,QAAS,CAC/B,eAAiBnC,GAAO,CACtB8C,EAAkB,UAAU9C,CAAE,CAChC,CAAA,CACD,EAAE,OAAA,EAGP,sBAAsB,IAAKsD,GAAoB,EACxC,IAAM,CACXO,EAAQ,QAASC,GAAMA,EAAA,CAAG,CAC5B,CACF,EAAG,CAAA,CAAE,EACL,MAAMC,EAAW,YAEjB,OACEzJ,EAAAA,KAAC,MAAA,CAAI,UAAWyJ,EAAW,iBACzB,SAAA,CAAAxK,EAAAA,IAAC,MAAA,CACC,UAAWwK,EAAW,kBACtB,MAAO,CAAE,WAAYhB,CAAA,EACrB,IAAKb,EAEL,SAAA3I,EAAAA,IAAC,MAAA,CACC,UAAWwK,EAAW,mCACtB,MAAO,CACL,WAAY1E,EACZ,IAAK+C,EAAW,KAChB,KAAME,EAAY,IAAA,EAEpB,SAAU,EACV,cAAaT,GACb,UAAW4B,CAAA,CAAA,CACZ,CAAA,QAEF,MAAA,CAAI,UAAWM,EAAW,iBAAkB,IAAK5B,EAChD,SAAA5I,EAAAA,IAAC,MAAA,CACC,UAAWwK,EAAW,kCACtB,MAAO,CAAE,WAAYhB,EAAY,KAAML,EAAW,IAAA,EAClD,SAAU,EACV,cAAaZ,GACb,UAAW2B,CAAA,CAAA,EAEf,EACAnJ,EAAAA,KAAC,MAAA,CAAI,UAAWyJ,EAAW,qBACzB,SAAA,CAAAxK,EAAAA,IAAC,MAAA,CACC,UAAWwK,EAAW,YACtB,MAAO,CAAE,WAAY1E,CAAA,CAAM,CAAA,EAE7B9F,EAAAA,IAAC,QAAA,CACC,KAAK,OACL,UAAWwK,EAAW,WACtB,MAAOtJ,EACP,SAAUO,CAAA,CAAA,CACZ,EACF,EACCgH,SACExI,EAAA,CAAO,QAASgK,EAAc,KAAK,YACjC,SAAAvB,EAAE,QAAQ,CAAA,CACb,CAAA,EAEJ,CAEJ,CCnQA,SAAwB+B,GAAY,CAClC,MAAOC,EAAgB,GACvB,GAAArM,EACA,YAAAQ,EAAc,GACd,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,MAAAC,EAAQ,GACR,MAAAuG,EAAQ,GACR,SAAArG,EACA,SAAAsG,EAAW,CAAA,CACb,EAAG,CACD,MAAMhH,EAAUJ,EAAWC,CAAE,EAC7B,GAAI,CAACc,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBqL,CAAa,EACrD,KAAM,CAAC/E,EAAOC,CAAQ,EAAInH,EAAAA,SAAS,EAAK,EAExC,SAASuH,GAAc,CACrB,GAAIjH,EAAU,MAAO,GACrB6G,EAAS,EAAI,CACf,CAEA,SAASC,EAAY/E,EAAI,CACvB,GAAIA,EAAG,MAAO,OAEd8E,EAAS,EAAK,EACd,MAAMnG,EAAWqB,EAAG,MACpB1B,EAASK,CAAQ,EACbP,GAAUA,EAAS,CAAE,MAAOO,EAAU,CAC5C,CAEA,SAASsG,EAAcjF,EAAI,CACzBA,EAAG,gBAAA,EACH1B,EAAS,EAAE,EACPF,GAAUA,EAAS,CAAE,MAAO,GAAI,CACtC,CAEA,OACE6B,EAAAA,KAAC,MAAA,CAAI,UAAU,2BAA2B,QAASiF,EACjD,SAAA,CAAAhG,EAAAA,IAAC,QAAA,CACC,UACE,sBACChB,EAAQ,YAAc,KACtB2G,EAAQ,YAAc,IAEzB,MAAA7G,EACA,MAAAK,EACA,SAAQ,GACR,GAAIX,EACJ,YAAAK,EACA,SAAAE,CAAA,CAAA,EAEFiB,MAAC,OAAI,UAAU,qBAAqB,MAAO,CAAE,WAAYb,GAAS,EAEjEoG,GAAS,CAACxG,GAAYI,SACpB,IAAA,CAAE,UAAU,sBAAsB,QAAS4G,EAAe,EAG5DJ,GACC3F,EAAAA,IAACgF,EAAA,CAAS,SAAU,IAAMY,EAAS,EAAK,EAAI,GAAGJ,EAC7C,eAACgD,GAAA,CAAW,MAAArJ,EAAc,OAAO,OAAO,SAAU0G,EAAa,CAAA,CACjE,CAAA,EAEJ,CAEJ,CCrEO,SAAS8E,IAAkB,CAChC,IAAIC,EAAW,KACXC,EAAY,GAEZC,EAAc,GAEdC,EAAMvJ,EAASwJ,EAAaC,EAChC,MAAMC,EAAO,CAACC,EAAGC,EAAGjE,EAAGkE,EAAGnE,IAAM,CAC9B6D,EAAOI,EACP3J,EAAU4J,EACVJ,EAAc7D,EACd8D,EAAiBI,EACjBP,EAAc5D,CAChB,EAEMoE,EAAUrF,GAAU,CACxB2E,EAAW3E,EACX4E,EAAYD,IAAa,KACzBI,EAAYJ,CAAQ,CACtB,EAEMW,EAAW,CAACX,EAAU9J,IAAO,CACjC,GAAI,CAACgK,GAAeF,IAAa,MAAQG,EAAM,CAC7C,MAAMS,EAAOT,EAAK,iBAAiB,qBAAqB,EAAEH,CAAQ,EAC9DY,IACFA,EAAK,eAAe,CAAE,MAAO,SAAS,CAAE,EACpC1K,GAAIA,EAAG,eAAc,EAE7B,CACF,EAEM2K,EAAW,CAACC,EAAK5K,IAAO,CAC5B,MAAMmF,EACJyF,IAAQ,KACJ,KACA,KAAK,IAAI,EAAG,KAAK,IAAId,EAAWc,EAAKlK,EAAQ,OAAS,CAAC,CAAC,EAC1DyE,IAAU2E,IACdU,EAAOrF,CAAK,EAER8E,EAAMQ,EAAStF,EAAOnF,CAAE,EACvB,sBAAsB,IAAMyK,EAAStF,EAAOnF,CAAE,CAAC,EACtD,EA2CA,MAAO,CAAE,KAzCKA,GAAO,CACnB,MAAMzC,EAAKsN,EAAAA,SAAS7K,CAAE,EAChBmF,EAAQzE,EAAQ,UAAWb,GAAMA,EAAE,KAAOtC,CAAE,EAE9C4H,IAAU2E,GACZU,EAAOrF,CAAK,CAEhB,EAkCe,QAhCC,CAACnF,EAAI4D,IAAa,CAChC,OAAQ5D,EAAG,KAAI,CACb,IAAK,QACC+J,EAAWI,EAAc,EACxBK,EAAO,CAAC,EACb,MAEF,IAAK,QACET,GAAWS,EAAO,CAAC,EACxB,MAEF,IAAK,SACHN,EAAaJ,EAAW,IAAI,EAC5B,MAEF,IAAK,MACHI,EAAaJ,EAAW,IAAI,EAC5B,MAEF,IAAK,YACHa,EAASZ,EAAY,EAAInG,GAAY,EAAG5D,CAAE,EAC1C,MAEF,IAAK,UACH2K,EAASZ,EAAY,GAAKnG,GAAY,EAAG5D,CAAE,EAC3C,KAIR,CACE,EAEwB,KAAAoK,EAAM,SAAAO,CAAQ,CACxC,CC7EA,MAAMG,GAAW,GAEXC,GAAcC,EAAAA,KAAK,SAAqB,CAAE,KAAAC,EAAM,WAAAC,EAAY,SAAA1L,EAAU,MAAAnB,GAAS,CACnF,OACE4B,EAAAA,KAAAuB,WAAA,CACG,SAAA,CAAA0J,GACChM,EAAAA,IAACgB,GAAA,CACC,GAAI+K,EAAK,GACT,MAAS,CAAC,YAAa,MAAM,cAAe,MAAA,EAC5C,MAAO5M,GAASA,EAAM,SAAS4M,EAAK,EAAE,CAAA,CAAA,EAGzCzL,EAAW2L,EAAAA,QAAQ3L,EAAU,CAAE,OAAQyL,CAAA,CAAM,EAAIA,EAAK,KAAA,EACzD,CAEJ,CAAC,EAED,SAASG,GAAY,CACnB,aAAAC,EACA,aAAAC,EACA,SAAAxB,EACA,WAAAoB,EACA,SAAA1L,EACA,MAAAnB,EACA,mBAAAkN,CACF,EAAG,CACD,OAAOF,EAAa,IAAI,CAACJ,EAAMO,IAAiB,CAC9C,MAAMrG,EAAQmG,EAAa,MAAQE,EACnC,OAAOtM,EAAAA,IAAC,MAAA,CAEN,IAAKsM,IAAiB,EAAID,EAAqB,OAC/C,UAAW,qBAAsBpG,IAAW2E,EAAW,WAAa,EAAE,GACtE,UAASmB,EAAK,GAEd,SAAA/L,EAAAA,IAAC6L,GAAA,CACC,KAAAE,EACA,WAAAC,EACA,SAAA1L,EACA,MAAAnB,CAAA,CAAA,CACF,EAVK4M,EAAK,EAAA,CAad,CAAC,CACH,CAEA,SAAwBQ,GAAgB,CACtC,MAAAC,EAAQ,CAAA,EACR,SAAAlM,EACA,SAAAmM,EACA,QAAAC,EACA,YAAA5B,EAAc,GACd,WAAAkB,EACA,YAAAW,EACA,MAAAxN,EACA,GAAGyN,CACL,EAAG,CACD,MAAM7B,EAAOnL,EAAAA,OAAA,EACPiN,EAAkBjN,EAAAA,OAAO,EAAK,EAC9B3B,EAAU2B,SAAO+K,IAAiB,EAElC,CAACC,EAAUkC,CAAW,EAAIrO,EAAAA,SAAS,IAAI,EACvCsO,EAAcnN,EAAAA,OAAOgL,CAAQ,EAE7B,CAACoC,EAAWC,CAAY,EAAIxO,EAAAA,SAAS,CAAC,EACtC,CAACyO,EAAYC,CAAa,EAAI1O,EAAAA,SAAS,EAAE,EACzC2O,EAA0BxN,EAAAA,OAAO,EAAK,EAEtC8I,GAAKnK,aAAWL,CAAI,GAAKiK,EAAA,GAAiB,SAAS,MAAM,EAGzDkF,EAAWzN,EAAAA,OAAO4M,CAAK,EAC7B3M,EAAAA,UAAU,IAAM,CACdwN,EAAS,QAAUb,CACrB,EAAG,CAACA,CAAK,CAAC,EAEV,MAAMc,EAAW1N,EAAAA,OAAOT,CAAK,EAC7BU,EAAAA,UAAU,IAAM,CACdyN,EAAS,QAAUnO,CACrB,EAAG,CAACA,CAAK,CAAC,EAEV,MAAMoO,EAAgB3N,EAAAA,OAAO,CAAC,EAC9BC,EAAAA,UAAU,IAAM,CACd0N,EAAc,QAAUL,CAC1B,EAAG,CAACA,CAAU,CAAC,EAEf,MAAMM,EAAajO,cAAauB,GAAO,CACjCA,KAAO,gBAAA,EACX,MAAM2M,EAAeJ,EAAS,QACxB5H,EAAe6H,EAAS,QACxBI,EAAkBX,EAAY,QACpC,IAAIY,EACJ,MAAMC,EAASH,EAAaC,CAAe,GAAG,GAC1Cf,EACElH,GAAgBA,EAAa,SAASmI,CAAM,EAC9CD,EAAYlI,EAAa,OAAOoI,IAAKA,KAAMD,CAAM,EAEjDD,EAAY,CAAC,GAAIlI,GAAgB,CAAA,EAAKmI,CAAM,EAG9CD,EAAYC,EAEdnB,GAAYA,EAAS,CAAE,GAAIkB,CAAA,CAAW,CACxC,EAAG,CAAChB,EAAaF,CAAQ,CAAC,EAEpBqB,EAAgBlO,EAAAA,OAAO4N,CAAU,EACvC3N,EAAAA,UAAU,IAAM,CACdiO,EAAc,QAAUN,CAC1B,EAAG,CAACA,CAAU,CAAC,EAEf,MAAMO,EAAsBxO,cAAayO,GAAQ,CAC/C,GAAIjD,EAAK,QAAS,CAChB,IAAIkD,EAAeD,EAAMT,EAAc,QAAUxC,EAAK,QAAQ,aAAewC,EAAc,QAC3FN,EAAagB,CAAY,EACzBlD,EAAK,QAAQ,UAAYkD,CAC3B,CACF,EAAG,CAACV,EAAc,OAAO,CAAC,EAEpBW,EAAkB3O,EAAAA,YACrB4O,GAAO,CACNpD,EAAK,QAAUoD,EACXrD,IACEqD,GAAM,CAACtB,EAAgB,SAAWE,EAAY,UAAY,MAC5D,sBAAsB,IAAM,CACtBhC,EAAK,UACPgD,EAAoBhB,EAAY,OAAO,EACvCF,EAAgB,QAAU,GAE9B,CAAC,EAEEsB,IACHtB,EAAgB,QAAU,IAGhC,EACA,CAACkB,CAAmB,CAAA,EAGhB1B,EAAqB9M,cAAaQ,GAAS,CAE/C,GADI,CAACA,GACDqN,EAAwB,QAAS,OAErC,MAAM3D,EAAS1J,EAAK,sBAAA,EAAwB,OAExC0J,IACF0D,EAAc1D,CAAM,EACpB8D,EAAc,QAAU9D,EACxB2D,EAAwB,QAAU,GAEtC,EAAG,CAAA,CAAE,EAELvN,EAAAA,UAAU,IAAM,CACd5B,EAAQ,QAAQ,KACd8M,EAAK,QACLyB,EACCqB,GAAM,CACLf,EAAYe,CAAC,EACbd,EAAY,QAAUc,CACxB,EACC/M,GAAOgN,EAAc,QAAQhN,CAAE,EAChCgK,CAAA,CAEJ,EAAG,CAAC0B,EAAOzB,EAAK,QAASD,CAAW,CAAC,EAErCjL,EAAAA,UAAU,IAAM,CACd,MAAMuO,EAAsB,CAAC1C,EAAK5K,IAAO,CACvC7C,EAAQ,QAAQ,SAASyN,EAAK5K,CAAE,EAChCiN,EAAoBhB,EAAY,OAAO,CACzC,EAEMsB,EAAqB,CAACvN,EAAI4K,IAAQ,CACtC,MAAMgC,EAAkBX,EAAY,QAC9BU,EAAeJ,EAAS,QAS9B,GAPEK,IAAoB,GACpBA,IAAoBD,EAAa,OAAS,IACzC3M,EAAG,MAAQ,aAAeA,EAAG,MAAQ,YAEtCA,EAAG,eAAA,EACL7C,EAAQ,QAAQ,QAAQ6C,EAAI4K,CAAG,EAE3BX,EAAK,QAAS,CAChB,MAAMuD,GAAqBvD,EAAK,QAAQ,WAAagC,EAAY,QAAUQ,EAAc,QACnFgB,GACJxD,EAAK,QAAQ,UAAYA,EAAK,QAAQ,cACtCgC,EAAY,QAAUQ,EAAc,QAAUA,EAAc,QAEzDe,GAGOC,IACVR,EAAoBhB,EAAY,OAAO,GAHvChC,EAAK,QAAQ,UAAYgC,EAAY,QAAUQ,EAAc,QAC7DN,EAAalC,EAAK,QAAQ,SAAS,EAIvC,CACF,EAEA2B,GACEA,EAAQ,CACN,SAAU5B,EAAcsD,EAAsBnQ,EAAQ,QAAQ,SAC9D,QAAS6M,EAAcuD,EAAqBpQ,EAAQ,QAAQ,QAC5D,KAAMA,EAAQ,QAAQ,IAAA,CACvB,CACL,EAAG,CAAA,CAAE,EAEL,MAAMuQ,EAAc5O,EAAAA,OAAO,CAAC,EACtB6O,EAAe7O,EAAAA,OAAO4M,CAAK,EAC7BiC,EAAa,UAAYjC,IAC3BiC,EAAa,QAAUjC,EACvBgC,EAAY,SAAW,GAGzB,MAAMxL,EAAWzD,EAAAA,YAAY,IAAM,CACjCtB,EAAQ,QAAQ,SAAS,IAAI,CAC/B,EAAG,CAACA,CAAO,CAAC,EAENyQ,EAAenP,cAAauB,GAAO,CACnCgK,GACFmC,EAAanM,EAAG,OAAO,SAAS,CAEpC,EAAG,CAACgK,CAAW,CAAC,EAEV6D,EAAsBlO,EAAAA,QAC1B,IAAM,KAAK,MAAMsK,EAAK,SAAS,cAAgB,GAAKmC,CAAU,EAC9D,CAACA,EAAYF,CAAS,CAAA,EAGlBZ,EAAe3L,EAAAA,QAAQ,IAAM,CACjC,GAAI,CAACqK,EAAa,MAAO,CAAE,MAAO,EAAG,IAAK0B,EAAM,MAAA,EAChD,GAAI,CAACA,EAAM,OAAQ,MAAO,CAAE,MAAO,EAAG,IAAK,CAAA,EAE3C,MAAMoC,EAAQ,KAAK,MAAM5B,EAAYE,CAAU,EACzC2B,EAAMD,EAAQD,EAEpB,MAAO,CACL,MAAO,KAAK,IAAI,EAAGC,EAAQhD,EAAQ,EACnC,IAAK,KAAK,IAAIY,EAAM,OAAQqC,EAAMjD,EAAQ,CAAA,CAE9C,EAAG,CAACd,EAAa0B,EAAOQ,EAAWE,EAAYyB,CAAmB,CAAC,EAE7DxC,EAAe1L,EAAAA,QAAQ,IAAM,CACjC,GAAI,CAACqK,EAAa,OAAO0B,EACzB,KAAM,CAAE,MAAAoC,EAAO,IAAAC,CAAA,EAAQzC,EACvB,OAAOI,EAAM,MAAMoC,EAAOC,CAAG,EAAE,IAAKC,IAAU,CAC5C,GAAGA,CAAA,EACH,CACJ,EAAG,CAAChE,EAAa0B,EAAOJ,CAAY,CAAC,EAE/B2C,EAAY3C,EAAa,MAAQc,EACjC8B,EAAcxC,EAAM,OAASU,EAQnC,OANArN,EAAAA,UAAU,IAAM,CACV+K,IAAa,OACfiC,EAAgB,QAAU,GAE9B,EAAG,CAACjC,CAAQ,CAAC,EAETA,IAAa,KAAa,KAG5B5K,EAAAA,IAACgF,EAAA,CAAmC,SAAAhC,EAAqB,GAAG4J,EAC1D,SAAA5M,EAAAA,IAAC,MAAA,CACC,UAAU,oBACV,IAAKkO,EACL,QAASV,EACT,YAAavP,EAAQ,QAAQ,KAC7B,SAAUyQ,EAET,SAAAlC,EAAM,OACL1B,EACE9K,EAAAA,IAAC,MAAA,CACC,UAAU,4BACV,MAAO,CAAE,OAAQ,GAAGgP,CAAW,IAAA,EAE/B,SAAAhP,EAAAA,IAAC,MAAA,CACC,UAAU,4BACV,MAAO,CAAE,UAAW,cAAc+O,CAAS,KAAA,EAE3C,SAAA/O,EAAAA,IAACkM,GAAA,CACC,aAAAE,EACA,aAAAD,EACA,SAAAvB,EACA,mBAAAyB,EACA,WAAAL,EACA,SAAA1L,EACA,MAAAnB,CAAA,CAAA,CACF,CAAA,CACF,CAAA,EAGFa,EAAAA,IAACkM,GAAA,CACC,aAAAE,EACA,aAAAD,EACA,SAAAvB,EACA,mBAAAyB,EACA,WAAAL,EACA,SAAA1L,EACA,MAAAnB,CAAA,CAAA,EAIJa,EAAAA,IAAC,MAAA,CAAI,UAAU,uBAAwB,SAAA0I,EAAE,SAAS,CAAA,CAAE,CAAA,CAAA,CAExD,EA3Ca8F,EAAY,OA4C3B,CAEJ,CCpTA,SAAwBS,GAAM,CAC5B,MAAO9N,EAAY,GACnB,GAAA9C,EACA,QAAAmD,EAAU,CAAA,EACV,YAAA0N,EAAc,KACd,UAAAC,EAAY,QACZ,YAAAtQ,EAAc,GACd,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,MAAAC,EAAQ,GACR,MAAAuG,EAAQ,GACR,SAAU6J,EACV,SAAAlQ,EACA,SAAAsG,EAAW,CAAA,CACb,EAAG,CACD,MAAMhH,EAAUJ,EAAWC,CAAE,EACvBoN,EAAW7L,EAAAA,OAAO,IAAI,EACtBsK,EAAUtK,EAAAA,OAAO,IAAI,EAErB,CAACT,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgB8B,CAAS,EAC7C,CAACkO,EAAcC,CAAe,EAAI7Q,EAAAA,SAAS,EAAK,EAChD,CAAC8Q,EAAWC,CAAY,EAAI/Q,EAAAA,SAAS,EAAE,EAEvCgR,EAAe7P,EAAAA,OAAO,IAAI,EAC1B8P,EAAW9P,EAAAA,OAAO,EAAK,EAGvBS,EAAOI,EAAAA,QAAQ,IAAM,CACzB,GAAI4O,EAAc,OAAOE,EACzB,GAAIpQ,GAASA,IAAU,EAAG,CACxB,MAAMwC,GAAUuN,GAAe1N,GAAS,KAAMb,GAAMA,EAAE,KAAOxB,CAAK,EAClE,GAAIwC,EAAQ,OAAOA,EAAOwN,CAAS,CACrC,CACA,MAAO,EACT,EAAG,CAACE,EAAcE,EAAWpQ,EAAO+P,EAAa1N,EAAS2N,CAAS,CAAC,EAE9DQ,EAAkBlP,EAAAA,QAAQ,IAC1B,CAACJ,GAAQ,CAACgP,EAAqB7N,EAE5BA,EAAQ,OAAQqM,GACrBA,EAAEsB,CAAS,EAAE,cAAc,SAAS9O,EAAK,YAAA,CAAa,CAAA,EAEvD,CAACA,EAAMgP,EAAc7N,EAAS2N,CAAS,CAAC,EAErClJ,EAAQ1G,EAAAA,YACZ,IAAMoQ,EAAgB,UAAWhP,GAAMA,EAAE,KAAOxB,CAAK,EACrD,CAACwQ,EAAiBxQ,CAAK,CAAA,EAGnByQ,EAAQrQ,cAAauB,GAAO,CAChC2K,EAAS,QAAU3K,EAAG,SACtBoJ,EAAQ,QAAUpJ,EAAG,OACvB,EAAG,CAAA,CAAE,EAEC+O,EAAWtQ,EAAAA,YACf,CAAClB,EAAIyR,IAAY,CACf,GAAIzR,GAAMA,IAAO,EAAG,CAClB,IAAI0R,EAAWvO,EAAQ,KAAMb,GAAMA,EAAE,KAAOtC,CAAE,EAK9C,GAJAiR,EAAgB,EAAK,EAEjBQ,GAASrE,EAAS,QAAQ,IAAI,EAE9BsE,GAAY5Q,IAAU4Q,EAAS,GAAI,CACrC,MAAMtQ,EAAWsQ,EAAS,GAC1B3Q,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,CAAA,CAAU,CAC1C,CACF,CAEI,CAACiQ,EAAS,SAAWI,GAASL,EAAa,QAAQ,MAAA,CACzD,EACA,CAACjO,EAASrC,EAAOD,CAAQ,CAAA,EAGrB8Q,EAAgBzQ,EAAAA,YACpB,CAAC,CAAE,GAAAlB,KAAS,CACVwR,EAASxR,EAAI,EAAI,CACnB,EACA,CAACwR,CAAQ,CAAA,EAGLI,EAAa1Q,EAAAA,YAChBuB,GAAO,CACFA,KAAO,gBAAA,EAEX1B,EAAS,EAAE,EACXkQ,EAAgB,EAAK,EACrBpQ,GAAYA,EAAS,CAAE,MAAO,EAAA,CAAI,CACpC,EACA,CAACA,CAAQ,CAAA,EAGLgR,EAAe3Q,EAAAA,YAClB4Q,GAAU,CACT,GAAI,CAAC3O,EAAQ,OAAQ,OACrB,GAAI2O,IAAU,IAAM5K,EAAO,CACzB0K,EAAA,EACA,MACF,CAEA,IAAIG,EAAM5O,EAAQ,KAAMqM,GAAMA,EAAEsB,CAAS,IAAMgB,CAAK,EAC/CC,IACHA,EAAM5O,EAAQ,KAAMqM,GAClBA,EAAEsB,CAAS,EAAE,cAAc,SAASgB,EAAM,YAAA,CAAa,CAAA,GAI3D,MAAM9R,EAAK+R,EAAMA,EAAI,GAAKjR,GAASqC,EAAQ,CAAC,EAAE,GAC9CqO,EAASxR,EAAI,EAAK,CACpB,EACA,CAACmD,EAAS2N,EAAW5J,EAAOpG,EAAO0Q,EAAUI,CAAU,CAAA,EAGnD3Q,EAAcC,EAAAA,YAAY,IAAM,CACpCiQ,EAAaC,EAAa,QAAQ,KAAK,EACvCH,EAAgB,EAAI,EAEhBK,EAAgB,QAAQlE,EAAS,QAAQ,CAAC,CAChD,EAAG,CAACkE,EAAgB,OAAQlE,CAAQ,CAAC,EAE/B4E,EAAc9Q,EAAAA,YAAY,IAAM,CACpCmQ,EAAS,QAAU,EACrB,EAAG,CAAA,CAAE,EAECY,EAAa/Q,EAAAA,YAAY,IAAM,CACnCmQ,EAAS,QAAU,GACnB,WAAW,IAAM,CACVA,EAAS,SAASQ,EAAa7P,CAAI,CAC1C,EAAG,GAAG,CACR,EAAG,CAAC6P,EAAc7P,CAAI,CAAC,EAEvB,OACEU,EAAAA,KAAC,MAAA,CACC,UAAU,qBACV,QAAS,IAAM0K,EAAS,QAAQxF,GAAO,EACvC,UAAYnF,GAAOoJ,EAAQ,QAAQpJ,EAAImF,GAAO,EAC9C,MAAAnH,EAEA,SAAA,CAAAkB,EAAAA,IAAC,QAAA,CACC,UAAW,uBAAyBhB,EAAQ,WAAa,IACzD,GAAIR,EACJ,IAAKiR,EACL,MAAOpP,EACP,SAAAtB,EACA,YAAAF,EACA,QAASwR,EACT,OAAQC,EACR,QAAShR,CAAA,CAAA,EAGViG,GAAS,CAACxG,GAAYI,QACpB,IAAA,CAAE,UAAU,8BAA8B,QAAS8Q,CAAA,CAAY,EAEhEjQ,EAAAA,IAAC,IAAA,CAAE,UAAU,mCAAmC,EAGjD,CAACjB,GACAiB,EAAAA,IAACuQ,GAAA,CAAK,MAAOZ,EAAiB,QAASC,EAAO,SAAUI,EAAgB,GAAGxK,EACxE,SAAA,CAAC,CAAE,OAAA7D,CAAA,IAAa3B,EAAAA,IAAAsC,EAAAA,SAAA,CAAG,SAAA8M,EAAOA,EAAK,CAAE,OAAAzN,CAAA,CAAQ,EAAIA,EAAOwN,CAAS,CAAA,CAAE,CAAA,CAClE,CAAA,CAAA,CAAA,CAIR,CCpKA,SAAwBqB,GAAK,CAC3B,MAAOC,EAAa,GACpB,GAAApS,EACA,SAAAY,EAAW,GACX,MAAAyR,EAAQ,GACR,OAAAC,EAAS,GACT,KAAAzQ,EAAO,OACP,YAAArB,EAAc,GACd,SAAAE,EAAW,GACX,MAAAC,EAAQ,GACR,WAAA4R,EAAa,CAAA,EACb,MAAA9R,EAAQ,GACR,IAAAqB,EAAM,GACN,KAAAC,EAAO,GACP,MAAAmF,EAAQ,GACR,SAAArG,CACF,EAAG,CACD,MAAMV,EAAUJ,EAAWC,CAAE,EACvB,CAACc,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBoR,CAAU,EAC9C9Q,EAAWC,EAAAA,OAAO,IAAI,EAEtBiR,EAAYpQ,EAAAA,QAChB,IACEL,GAAQD,EAAI,QAAQ,cAAc,IAAM,GAAK,iBAAmBA,EAAMA,EACxE,CAACC,EAAMD,CAAG,CAAA,EAGN2Q,EAAcrQ,EAAAA,QAClB,IAAML,GAAQD,EAAI,QAAQ,cAAc,IAAM,GAC9C,CAACC,EAAMD,CAAG,CAAA,EAGZN,EAAAA,UAAU,IAAM,CACd,MAAMkR,EAAQ,WAAW,IAAM,CACzBL,GAAS/Q,EAAS,SAASA,EAAS,QAAQ,MAAA,EAC5CgR,GAAUhR,EAAS,SAASA,EAAS,QAAQ,OAAA,CACnD,EAAG,CAAC,EAEJ,MAAO,IAAM,aAAaoR,CAAK,CACjC,EAAG,CAACL,EAAOC,CAAM,CAAC,EAElB,MAAMK,EAAUzR,EAAAA,YACbC,GAAM,CACL,MAAMC,EAAWD,EAAE,OAAO,MAC1BJ,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,EAAU,MAAO,GAAM,CACvD,EACA,CAACP,CAAQ,CAAA,EAGLQ,EAAeH,EAAAA,YAClBuB,GAAO5B,GAAYA,EAAS,CAAE,MAAO4B,EAAG,OAAO,MAAO,EACvD,CAAC5B,CAAQ,CAAA,EAGX,SAAS+R,EAAWnQ,EAAI,CACtBA,EAAG,gBAAA,EACH1B,EAAS,EAAE,EACXF,GAAYA,EAAS,CAAE,MAAO,EAAA,CAAI,CACpC,CAEA,IAAIgS,EAAYhR,EAChB,OAAIA,IAAS,YAAcA,IAAS,WAClCgR,EAAY,QAIdrR,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAUJ,EACVK,EAAOJ,EAAS,QACtB,OAAAI,EAAK,iBAAiB,SAAUD,CAAO,EAChC,IAAM,CACPC,GACFA,EAAK,oBAAoB,SAAUD,CAAO,CAE9C,CACF,EAAG,CAACJ,CAAY,CAAC,EAGfqB,EAAAA,KAAC,MAAA,CACC,UAAW,qBAAqB8P,CAAS,IAAI7R,EAAQ,WAAa,EAAE,IAClED,EAAW,cAAgB,EAC7B,IAAIwG,EAAQ,WAAa,EAAE,GAE3B,SAAA,CAAAvF,EAAAA,IAAC,QAAA,CACC,UAAU,qBACV,IAAKL,EACL,GAAInB,EACJ,SAAUS,EACV,SAAAF,EACA,YAAAF,EACA,KAAMqS,EACN,MAAON,EACP,MAAA9R,EACA,MAAAK,EACA,QAAS6R,CAAA,CAAA,EAGVzL,GAAS,CAACxG,GAAYI,EACrB4B,EAAAA,KAAAuB,EAAAA,SAAA,CACE,SAAA,CAAAtC,EAAAA,IAAC,IAAA,CAAE,UAAU,8BAA8B,QAASiR,EAAY,EAC/DH,GAAe9Q,EAAAA,IAAC,IAAA,CAAE,UAAW,qBAAqBI,CAAI,EAAA,CAAI,CAAA,CAAA,CAC7D,EACEA,EACFJ,EAAAA,IAAC,IAAA,CAAE,UAAW,qBAAqBI,CAAI,GAAI,EACzC,IAAA,CAAA,CAAA,CAGV,CC7GA,SAAS+Q,GAAO,CAAE,KAAAC,EAAM,KAAAlR,EAAM,KAAAmR,EAAM,QAAAC,GAAW,CAC7C,KAAM,CAAE,SAAAC,EAAU,QAAAC,CAAA,EAAYjT,EAAAA,WAAWL,CAAI,EAAE,OAAA,EAEzCuT,EAAOL,EAAK,YAAA,EAEZnQ,EAAQR,EAAAA,QAAQ,IAAM,CAC1B,OAAQP,EAAA,CACN,IAAK,QACH,OAAOwR,EAAAA,aAAaF,EAAQ,gBAAiBD,CAAQ,EAAEH,CAAI,EAC7D,IAAK,OACH,OAAOM,EAAAA,aAAaF,EAAQ,WAAYD,CAAQ,EAAEH,CAAI,EACxD,IAAK,YAAa,CAChB,KAAM,CAAE,MAAAxC,EAAO,IAAAC,GAAQ8C,EAAAA,aAAaF,CAAI,EAClCG,EAAaF,EAAAA,aAAaF,EAAQ,WAAYD,CAAQ,EAC5D,MAAO,GAAGK,EAAW,IAAI,KAAKhD,EAAO,EAAG,CAAC,CAAC,CAAC,MAAMgD,EAAW,IAAI,KAAK/C,EAAK,GAAI,EAAE,CAAC,CAAC,EACpF,CACA,QACE,MAAO,EAAA,CAEb,EAAG,CAACuC,EAAMlR,EAAMuR,EAAMF,EAAUC,CAAO,CAAC,EAExC,SAASK,GAAa,CACpBP,GAAWA,EAAQ,CAAE,KAAM,EAAG,KAAApR,EAAM,CACtC,CAEA,OACEa,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,CAAAsQ,IAAS,QACRrR,EAAAA,IAAC,IAAA,CACC,UAAU,oCACV,QAAS,IAAMsR,GAAWA,EAAQ,CAAE,KAAM,GAAI,KAAApR,EAAM,CAAA,CAAA,EAGtDF,EAAAA,IAAC,OAAA,CAAK,UAAU,qBAAA,CAAsB,QAGvC,OAAA,CAAK,UAAU,qBAAqB,QAAS6R,EAC3C,SAAA5Q,EACH,EAECoQ,IAAS,OACRrR,EAAAA,IAAC,IAAA,CACC,UAAU,qCACV,QAAS,IAAMsR,GAAWA,EAAQ,CAAE,KAAM,EAAG,KAAApR,EAAM,CAAA,CAAA,EAGrDF,MAAC,OAAA,CAAK,UAAU,qBAAA,CAAsB,CAAA,EAE1C,CAEJ,CCpDA,SAAwBC,GAAO,CAAE,QAAAM,EAAS,SAAAD,GAAY,CACpD,OACEN,EAAAA,IAAC,SAAA,CAAO,UAAU,sBAAsB,QAAAO,EACrC,SAAAD,EACH,CAEJ,CCFA,SAAwBwR,GAAM,CAC5B,MAAA3S,EACA,QAAA4S,EACA,KAAAV,EAAO,GACP,QAAAW,EAAU,KACV,SAAAhP,EACA,SAAA9D,CACF,EAAG,CACD,MAAMkJ,GAAU7J,aAAWL,CAAI,GAAKiK,EAAA,GAAiB,SAAS,SACxD8J,GAAa7J,EAAO,WAAa,GAAK,EACtC8J,EAAW9J,EAAO,SACrB,MAAM6J,CAAS,EACf,OAAO7J,EAAO,SAAS,MAAM,EAAG6J,CAAS,CAAC,EAEvCE,EAAK,CAAC5H,EAAG6H,EAAIC,IACjB,IAAI,KACF9H,EAAE,YAAA,EACFA,EAAE,SAAA,GAAc6H,GAAM,GACtB7H,EAAE,WAAa8H,GAAM,EAAA,EAEzB,IAAIC,EAASjB,IAAS,SAEtB,SAASkB,EAAUnB,EAAM,CACvB,MAAM7G,EAAI6G,EAAK,OAAA,EACf,OAAO7G,IAAM,GAAKA,IAAM,CAC1B,CAEA,SAASiI,GAAW,CAClB,MAAM5D,EAAQuD,EAAGJ,EAAS,EAAG,EAAIA,EAAQ,SAAS,EAClD,OAAAnD,EAAM,QAAQA,EAAM,WAAcA,EAAM,UAAYqD,EAAY,IAAM,CAAE,EACjErD,CACT,CACA,SAAS6D,GAAS,CAChB,MAAM5D,EAAMsD,EAAGJ,EAAS,EAAG,CAACA,EAAQ,SAAS,EAC7C,OAAAlD,EAAI,QAAQA,EAAI,WAAc,EAAIA,EAAI,OAAA,EAAWoD,GAAa,CAAE,EACzDpD,CACT,CAGA,MAAM6D,EAAW9S,EAAAA,OAAO,CAAC,EACzB,SAAS+S,EAAWvB,EAAM5R,EAAG,CACvBA,EAAE,YAAckT,EAAS,UAC7BA,EAAS,QAAUlT,EAAE,UAErBA,EAAE,gBAAA,EACEN,GAAUA,EAAS,IAAI,KAAKkS,CAAI,CAAC,EACjCpO,GAAUA,EAAA,EAChB,CAEA,MAAMoO,EAAO3Q,EAAAA,QAAQ,IACf4Q,GAAQ,SAAiB,CAAClS,EAAQgT,EAAGhT,CAAK,EAAE,QAAA,EAAY,CAAC,EACtDA,EACH,CACEA,EAAM,MAAQgT,EAAGhT,EAAM,KAAK,EAAE,UAAY,EAC1CA,EAAM,IAAMgT,EAAGhT,EAAM,GAAG,EAAE,UAAY,CAAA,EAExC,CAAC,EAAG,CAAC,EACR,CAACkS,EAAMlS,CAAK,CAAC,EAEVyT,EAAOnS,EAAAA,QAAQ,IAAM,CACzB,MAAMmO,EAAQ4D,EAAA,EACR3D,EAAM4D,EAAA,EACNI,EAAWd,EAAQ,SAAA,EAEzB,IAAIa,EAAO,CAAA,EACX,QAASrI,EAAIqE,EAAOrE,GAAKsE,EAAKtE,EAAE,QAAQA,EAAE,QAAA,EAAY,CAAC,EAAG,CACxD,MAAMuI,EAAM,CACV,IAAKvI,EAAE,QAAA,EACP,GAAIA,EAAE,SAAA,IAAesI,EACrB,KAAMtI,EAAE,QAAA,CAAQ,EAGlB,IAAIpK,EAAM,GAIV,GAHAA,GAAQ2S,EAAI,GAAsB,GAAjB,eACjB3S,GAAOiR,EAAK,QAAQ0B,EAAI,IAAI,EAAI,GAAK,eAAiB,GAElDR,EAAQ,CACV,MAAM5K,EAAIoL,EAAI,MAAQ1B,EAAK,CAAC,EACtB5R,EAAIsT,EAAI,MAAQ1B,EAAK,CAAC,EACxB1J,GAAK,CAAClI,EAAGW,GAAO,WACXX,GAAK,CAACkI,IAAGvH,GAAO,aAErB2S,EAAI,KAAO1B,EAAK,CAAC,GAAK0B,EAAI,KAAO1B,EAAK,CAAC,IAAGjR,GAAO,cACvD,CAGA,GADAA,GAAOoS,EAAUhI,CAAC,EAAI,cAAgB,GAClCyH,EAAS,CACX,MAAMe,EAAOf,EAAQzH,CAAC,EAClBwI,OAAa,IAAMA,EACzB,CAEAH,EAAK,KAAK,CAAE,GAAGE,EAAK,IAAA3S,EAAK,CAC3B,CACA,OAAOyS,CACT,EAAG,CAACb,EAASX,EAAMkB,EAAQN,CAAO,CAAC,EAE7BgB,EAAcpT,EAAAA,OAAO,IAAI,EAC/B,IAAIqT,EAAkBrT,EAAAA,OAAO,EAAE,EAC/B,OAAAqT,EAAgB,QAAQ,MAAQN,EAEhC9S,EAAAA,UAAU,IAAM,CACdqT,EAAAA,cAAcF,EAAY,QAASC,EAAgB,OAAO,CAC5D,EAAG,CAAA,CAAE,SAGF,MAAA,CACC,SAAA,CAAAjT,MAAC,MAAA,CAAI,UAAU,wBACZ,SAAAkS,EAAS,IAAKY,GACb9S,EAAAA,IAAC,MAAA,CAAc,UAAU,uBACtB,SAAA8S,GADOA,CAEV,CACD,EACH,EACA9S,EAAAA,IAAC,OAAI,UAAU,oBAAoB,IAAKgT,EACrC,SAAAJ,EAAK,IAAKE,GACT9S,EAAAA,IAAC,MAAA,CAEC,UAAW,oBAAoB8S,EAAI,GAAG,IAAKA,EAAI,GAAgB,GAAX,QAAa,GACjE,UAASA,EAAI,KAEZ,SAAAA,EAAI,GAAA,EAJAA,EAAI,IAAA,CAMZ,CAAA,CACH,CAAA,EACF,CAEJ,CC7HA,SAAwBK,GAAK,CAC3B,MAAOhS,EACP,QAASiS,EACT,KAAA/B,EACA,SAAArO,EACA,SAAA9D,EACA,QAAAoS,CACF,EAAG,CACD,MAAM+B,EAAczT,EAAAA,OAAO,IAAI,IAAM,EAC/B,CAACT,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgB8B,GAAakS,EAAY,OAAO,EACpE,CAACtB,EAASuB,CAAU,EAAIjU,EAAAA,gBAAgB+T,GAAeC,EAAY,OAAO,EAE1EjL,EAAS7J,EAAAA,WAAWL,CAAI,EAAE,SAAS,SACnCqV,EAASnL,EAAO,YAAc,CAAA,EAE9BoL,EAAW/S,EAAAA,QAAQ,IAChBsR,EAAQ,SAAA,EACd,CAACA,CAAO,CAAC,EAEN0B,EAAclU,EAAAA,YAClB,CAACmU,EAAOlU,IAAM,CACZ,GAAIkU,GAAU,KAA6B,CACzClU,EAAE,gBAAA,EACF,MAAMmU,EAAa,IAAI,KAAK5B,CAAO,EACnC4B,EAAW,SAASD,CAAK,EACzBJ,EAAWK,CAAU,EAErBrC,GAAWA,EAAQ,CAAE,QAASqC,CAAA,CAAY,CAC5C,CAEItC,IAAS,UAAUjS,EAAS,IAAI,KAAK2S,CAAO,CAAC,EAEjD/O,GAAYA,EAAA,CACd,EACA,CAAC+O,EAASV,EAAMC,EAAStO,CAAQ,CAAA,EAG7B4Q,EAAOrU,EAAAA,YAAY,IAAM,CAC7B,MAAM6R,EAAO,IAAI,KAAKyC,GAAa1U,EAAOkS,CAAI,GAAKU,CAAO,EAE1DX,EAAK,SAASW,EAAQ,UAAU,EAChCX,EAAK,YAAYW,EAAQ,aAAa,EAEtC7S,GAAYA,EAASkS,CAAI,CAC3B,EAAG,CAACjS,EAAO4S,EAASV,EAAMnS,CAAQ,CAAC,EAE7B4U,EAAmBvU,EAAAA,YACtBC,GAAM,CACL,MAAM8B,EAAS9B,EAAE,OAAO,QAAQ,WAAW,EAC3C,GAAI8B,EAAQ,CACV,MAAMoS,EAAQ,SAASpS,EAAO,aAAa,SAAS,EAAG,EAAE,EACzDmS,EAAYC,EAAOlU,CAAC,CACtB,CACF,EACA,CAACiU,CAAW,CAAA,EAGd,OACE1S,EAAAA,KAAAuB,WAAA,CACE,SAAA,CAAAtC,EAAAA,IAAC,MAAA,CAAI,UAAW,sBAAuB,QAAS8T,EAC7C,SAAAP,EAAO,IAAI,CAACG,EAAO7F,IAClB7N,EAAAA,IAAC,MAAA,CAEC,UACE,sBAAwBwT,IAAa3F,EAAI,cAAgB,IAE3D,UAASA,EAER,SAAA6F,CAAA,EANI7F,CAAA,CAQR,EACH,EACA7N,EAAAA,IAAC,MAAA,CAAI,UAAW,uBACd,SAAAA,EAAAA,IAACC,IAAO,QAAS2T,EAAO,SAAAxL,EAAO,IAAA,CAAK,CAAA,CACtC,CAAA,EACF,CAEJ,CC5EA,MAAMoC,GAAW,YAEXuJ,GAAY,CAAC,CAAE,MAAA5U,EAAO,QAAA4S,EAAS,SAAA/O,EAAU,SAAA9D,EAAU,QAAAoS,EAAS,KAAAD,KAAW,CAC3E,MAAM3I,EAAInK,EAAAA,WAAWL,CAAI,EAAE,SAAS,SAE9B,CAAC8V,EAAcV,CAAU,EAAIjU,EAAAA,gBAAgB0S,CAAO,EACpD,CAACkC,EAAY7U,CAAQ,EAAIC,EAAAA,gBAAgBF,CAAK,EAE9CsS,EAAOhR,EAAAA,QAAQ,IAAMuT,EAAa,cAAe,CAACA,CAAY,CAAC,EAE/DE,EAAQzT,EAAAA,QAAQ,IAAM,CAC1B,KAAM,CAAE,MAAAmO,EAAO,IAAAC,GAAQ8C,EAAAA,aAAaF,CAAI,EAClCyC,EAAQ,CAAA,EACd,QAAS/Q,EAAIyL,EAAOzL,GAAK0L,EAAK,EAAE1L,EAC9B+Q,EAAM,KAAK/Q,CAAC,EAEd,OAAO+Q,CACT,EAAG,CAACzC,CAAI,CAAC,EAEH0C,EAAc,CAClB,MAAOC,CAAA,EAGT,SAASA,EAAWC,EAAS7U,EAAG,CAC9B,GAAI6U,EAAS,CACX7U,EAAE,gBAAA,EACF,MAAMmU,EAAa,IAAI,KAAKK,CAAY,EACxCL,EAAW,YAAYU,CAAO,EAC9Bf,EAAWK,CAAU,EAErBrC,GAAWA,EAAQ,CAAE,QAASqC,CAAA,CAAY,CAC5C,CAEItC,IAAS,UACXjS,EAAS,IAAI,KAAK4U,CAAY,CAAC,EAGjChR,GAAYA,EAAA,CACd,CAEA,SAAS4Q,GAAO,CACd,MAAMxC,EAAO,IAAI,KAAKyC,GAAaI,EAAY5C,CAAI,GAAK2C,CAAY,EAEpE5C,EAAK,YAAY4C,EAAa,aAAa,EAE3C9U,GAAYA,EAASkS,CAAI,CAC3B,CAEA,MAAMkD,EAAe1U,EAAAA,OAAO,IAAI,EAEhCC,OAAAA,EAAAA,UAAU,IAAM,CACVyU,EAAa,SACfpB,gBAAcoB,EAAa,QAASH,CAAW,CAEnD,EAAG,CAAA,CAAE,EAGHpT,EAAAA,KAAAuB,WAAA,CACE,SAAA,CAAAtC,EAAAA,IAAC,MAAA,CAAI,UAAWwK,GAAW,YAAa,IAAK8J,EAC1C,SAAAJ,EAAM,IAAI,CAAC/Q,EAAG0K,IACb7N,EAAAA,IAAC,MAAA,CAEC,UACEwK,GACA,YAAYiH,GAAQtO,EAAI,aAAe,EAAE,IAAI0K,IAAM,EAAI,iBAAmB,EAAE,IAAIA,IAAM,GAAK,iBAAmB,EAAE,GAElH,UAAS1K,EAER,SAAAA,CAAA,EAPI0K,CAAA,CASR,EACH,EACA7N,EAAAA,IAAC,MAAA,CAAI,UAAWwK,GAAW,cACzB,SAAAxK,EAAAA,IAACC,GAAA,CAAO,QAAS2T,EAAO,SAAAlL,EAAE,IAAA,CAAK,CAAA,CACjC,CAAA,EACF,CAEJ,ECjFa6L,GAAU,CACrB,MAAO,CACL,UAAWzC,GACX,KAAM0C,GACN,KAAMC,EACV,EACE,KAAM,CACJ,UAAWtB,GACX,KAAMuB,GACN,KAAMC,EACV,EACE,UAAW,CACT,UAAWZ,GACX,KAAMa,GACN,KAAMC,EACV,CACA,EAEA,SAASJ,GAAU1C,EAAS,CAC1B,OAAAA,EAAU,IAAI,KAAKA,CAAO,EAC1BA,EAAQ,SAASA,EAAQ,SAAQ,EAAK,CAAC,EAChCA,CACT,CACA,SAASyC,GAAUzC,EAAS,CAC1B,OAAAA,EAAU,IAAI,KAAKA,CAAO,EAC1BA,EAAQ,SAASA,EAAQ,SAAQ,EAAK,CAAC,EAChCA,CACT,CACA,SAAS4C,GAAS5C,EAAS,CACzB,OAAAA,EAAU,IAAI,KAAKA,CAAO,EAC1BA,EAAQ,YAAYA,EAAQ,YAAW,EAAK,CAAC,EACtCA,CACT,CACA,SAAS2C,GAAS3C,EAAS,CACzB,OAAAA,EAAU,IAAI,KAAKA,CAAO,EAC1BA,EAAQ,YAAYA,EAAQ,YAAW,EAAK,CAAC,EACtCA,CACT,CACA,SAAS8C,GAAc9C,EAAS,CAC9B,OAAAA,EAAU,IAAI,KAAKA,CAAO,EAC1BA,EAAQ,YAAYA,EAAQ,YAAW,EAAK,EAAE,EACvCA,CACT,CACA,SAAS6C,GAAc7C,EAAS,CAC9B,OAAAA,EAAU,IAAI,KAAKA,CAAO,EAC1BA,EAAQ,YAAYA,EAAQ,YAAW,EAAK,EAAE,EACvCA,CACT,CAEO,SAAS8B,GAAa1U,EAAOkS,EAAM,CACxC,IAAID,EACJ,GAAIC,IAAS,SAAUD,EAAOjS,MACzB,CACH,KAAM,CAAE,MAAAyP,EAAO,IAAAC,CAAG,EAAK1P,EACnBkS,IAAS,OAAQD,EAAOxC,EACnByC,GAAQ,QAASD,EAAOvC,EAC5BuC,EAAOxC,GAAQC,CACtB,CAEA,OAAOuC,CACT,CCzDA,MAAM0D,GAAiB,CAAC,QAAS,OAAO,EAExC,SAASC,GAAeC,EAAK,CAC3B,GAAIA,IAAQ,OAAQ,MAAO,GAC3B,GAAIA,IAAQ,QAAS,OAAO,KAC5B,GAAIA,IAAQ,QAAS,OAAO,IAAI,IAClC,CAEA,SAASC,GAAM,CACb,MAAA9V,EACA,QAAA4S,EACA,gBAAAmD,EACA,KAAA7D,EAAO,SACP,QAAAW,EAAU,KACV,QAAAmD,EACA,QAAA7D,EACA,SAAApS,CACF,EAAG,CACD,MAAMwJ,EAAInK,EAAAA,WAAWL,CAAI,EAAE,SAAS,UAAU,EAExC,CAACgC,EAAMkV,CAAO,EAAI3W,EAAAA,SAAS,OAAO,EAElC4W,EAAc,MAAM,QAAQF,CAAO,EACrCA,EACAA,EACEL,GACA,CAAA,EAEAnC,EAAa,CAAC7R,EAAIsQ,IAAS,CAC/BtQ,EAAG,eAAA,EACH5B,GAAYA,EAAS,CAAE,MAAOkS,CAAA,CAAM,CACtC,EAEMkE,EAAW,IAAM,CACjBpV,IAAS,YAAakV,EAAQ,MAAM,EAC/BlV,IAAS,QAAQkV,EAAQ,OAAO,CAC3C,EAEMG,EAAgBzU,GAAO,CAC3B,KAAM,CAAE,KAAA0U,EAAM,QAAS7B,CAAA,EAAe7S,EAEtC,GAAI0U,IAAS,EAAG,CACVtV,IAAS,QAASkV,EAAQ,MAAM,EAC3BlV,IAAS,QAAQkV,EAAQ,WAAW,EAC7C,MACF,CACA,GAAII,EAAM,CACR,MAAM9T,EAAM6S,GAAQrU,CAAI,EACxBgV,EAAgBM,EAAO,EAAI9T,EAAI,KAAKqQ,CAAO,EAAIrQ,EAAI,KAAKqQ,CAAO,CAAC,CAClE,MAAW4B,GACTuB,EAAgBvB,CAAU,EAG5BrC,GAAWA,EAAA,CACb,EAEMmE,EAAiBtW,GAAU,CAC/BiW,EAAQ,OAAO,EACflW,GAAYA,EAAS,CAAE,OAAQ,GAAM,MAAAC,EAAO,CAC9C,EAEMuW,EAAejV,EAAAA,QAAQ,IAAM8T,GAAQrU,CAAI,EAAE,UAAW,CAACA,CAAI,CAAC,EAElE,OACEF,EAAAA,IAAC,MAAA,CACC,UAAW,yBAAyBqR,IAAS,UAAYA,IAAS,OAAS,UAAY,EAAE,GAEzF,SAAAtQ,EAAAA,KAAC,MAAA,CAAI,UAAU,oBACb,SAAA,CAAAf,MAACmR,IAAO,KAAMY,EAAS,KAAAV,EAAY,KAAAnR,EAAY,QAASqV,EAAc,SACrE,MAAA,CACC,SAAA,CAAAvV,EAAAA,IAAC0V,EAAA,CACC,MAAAvW,EACA,QAAA4S,EACA,gBAAAmD,EACA,KAAA7D,EACA,QAAAW,EACA,SAAUsD,EACV,SAAUG,EACV,QAASF,CAAA,CAAA,EAEVrV,IAAS,SAAWmV,EAAY,OAAS,SACvC,MAAA,CAAI,UAAU,uBACZ,SAAAA,EAAY,IAAK5M,GAChBzI,EAAAA,IAAC,MAAA,CAAiB,UAAU,2BAC1B,SAAAA,EAAAA,IAACC,GAAA,CACC,QAAUT,GAAMmT,EAAWnT,EAAGuV,GAAetM,CAAM,CAAC,EAEnD,WAAEA,CAAM,CAAA,CAAA,CACX,EALQA,CAMV,CACD,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CAAA,CAGN,CCnGA,SAAwBkN,GAAUzQ,EAAO,CACvC,GAAI,CAAE,MAAA0Q,EAAQ,KAAM,SAAAC,EAAW,GAAO,SAAAvV,GAAa4E,EAE/C,EAAI3G,EAAAA,WAAWL,CAAI,EACvB,MAAMgJ,EAAIzG,EAAAA,QAAQ,IAAM,CACtB,IAAIqH,EAAI,EACR,OAAI,CAACA,GAAK,CAACA,EAAE,UAAQA,EAAIM,EAAAA,OAAOC,KAAE,GAC9BuN,IAAU,OAAM9N,EAAIA,EAAE,OAAO8N,EAAOC,CAAQ,GACzC/N,CACT,EAAG,CAAC8N,EAAOC,EAAU,CAAC,CAAC,EAEvB,aAAQ3X,EAAK,SAAL,CAAc,MAAOgJ,EAAI,SAAA5G,EAAS,CAC5C,CCZA,SAASwV,GAAW/D,EAAS5S,EAAOmU,EAAYyC,EAAO,CACrD,GAAI,CAAChE,GAAWgE,EAAO,CACrB,MAAMpC,EAAaxU,EAAQ,IAAI,KAAKA,CAAK,MAAQ,KACjDwU,EAAW,QAAQ,CAAC,EACpBL,EAAWK,CAAU,CACvB,SACM5B,EAAQ,QAAA,IAAc,EAAG,CAC3B,MAAM4B,EAAa,IAAI,KAAK5B,CAAO,EACnC4B,EAAW,QAAQ,CAAC,EACpBL,EAAWK,CAAU,CACvB,CAEJ,CAEA,MAAMmB,GAAiB,CAAC,QAAS,OAAO,EAExC,SAAwBkB,GAAS,CAC/B,MAAO7U,EACP,QAASiS,EACT,QAAApB,EAAU,KACV,QAAAmD,EAAUL,GACV,SAAA5V,CACF,EAAG,CACD,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgB8B,CAAS,EAC7C,CAAC4Q,EAASuB,CAAU,EAAIjU,EAAAA,gBAAgB+T,CAAW,EAEzDvT,EAAAA,UAAU,IAAM,CACdiW,GAAW/D,EAAS5S,EAAOmU,EAAY,EAAK,CAC9C,EAAG,CAACnU,EAAO4S,CAAO,CAAC,EAEnB,MAAM0D,EAAgBlW,EAAAA,YACnB2H,GAAM,CACL,MAAMtG,EAAIsG,EAAE,MACRtG,GACFxB,EAAS,IAAI,KAAKwB,CAAC,CAAC,EACpBkV,GAAW/D,EAAS,IAAI,KAAKnR,CAAC,EAAG0S,EAAY,EAAI,GAEjDlU,EAAS,IAAI,EAGfF,GAAYA,EAAS,CAAE,MAAO0B,EAAI,IAAI,KAAKA,CAAC,EAAI,KAAM,CACxD,EACA,CAAC1B,EAAU6S,CAAO,CAAA,EAGdkE,EAAuB1W,EAAAA,YAC1B2H,GAAM,CACLoM,EAAWpM,CAAC,CACd,EACA,CAACoM,CAAU,CAAA,EAGb,OAAKvB,QAGFmE,GAAA,CACC,SAAAlW,EAAAA,IAACiV,GAAA,CACC,MAAA9V,EACA,QAAA4S,EACA,QAAAC,EACA,QAAAmD,EACA,SAAUM,EACV,gBAAiBQ,CAAA,CAAA,EAErB,EAZmB,IAcvB,CCvEO,SAASE,GAAe3Q,EAAU,CACvC,OAAKA,IAAUA,EAAW,CAAA,GACrBA,EAAS,QAAOA,EAAS,MAAQ,SAC/BA,CACT,CCOA,MAAMsP,GAAiB,CAAC,QAAS,OAAO,EAExC,SAAwBsB,GAAW,CACjC,MAAOxX,EACP,GAAAP,EACA,SAAAU,EAAW,GACX,MAAAC,EAAQ,GACR,YAAAH,EAAc,GACd,OAAAwX,EAAS,GACT,QAAAlB,EAAUL,GACV,IAAA3U,EAAM,GACN,MAAArB,EAAQ,GACR,SAAAwX,EAAW,GACX,MAAA/Q,EAAQ,GACR,SAAArG,EACA,SAAAsG,EAAW,CAAA,CACb,EAAG,CACD,KAAM,CAAE,SAAU+Q,EAAgB,QAAA/E,CAAA,GAChCjT,EAAAA,WAAWL,CAAI,GAAKiK,EAAA,GACpB,OAAA,EACIP,EAAIyO,GAAU7E,GAAS,WAC7B,IAAIgF,EACF,OAAO5O,GAAM,WAAaA,EAAI8J,EAAAA,aAAa9J,EAAG2O,CAAc,EAE9D,KAAM,CAACpX,EAAOC,CAAQ,EAAIX,EAAAA,SAASG,CAAS,EACtC,CAAC+G,EAAOC,CAAQ,EAAInH,EAAAA,SAAS,EAAK,EAGxCoB,EAAAA,UAAU,IAAM,CACdT,EAASR,CAAS,CACpB,EAAG,CAACA,CAAS,CAAC,EAEd,SAAS0W,GAAW,CAClB1P,EAAS,EAAK,CAChB,CAEA,SAAS6Q,EAASvP,EAAG,CAGnB,MAAMwP,EACJxP,IAAM/H,GACL+H,GAAK/H,GAAS+H,EAAE,QAAA,IAAc/H,EAAM,QAAA,GACpC,CAAC+H,GAAK,CAAC/H,EAEVC,EAAS8H,CAAC,EACLwP,GACHxX,GAAYA,EAAS,CAAE,MAAOgI,CAAA,CAAG,EAInC,WAAWoO,EAAU,CAAC,CACxB,CAEA,MAAMqB,EAAiBlW,EAAAA,QACrB,IAAOtB,EAAQqX,EAAWrX,CAAK,EAAI,GACnC,CAACA,EAAOqX,CAAU,CAAA,EAGpB,SAASI,EAAgB,CAAE,MAAO1P,EAAG,MAAA2P,GAAS,CAE5C,GADI,CAACP,GAAY,CAAC/Q,GACdsR,EAAO,OAGX,IAAIzF,EACF,OAAOkF,GAAa,WAAaA,EAASpP,CAAC,EAAIA,EAAI,IAAI,KAAKA,CAAC,EAAI,KAKnEkK,EAAO,MAAMA,CAAI,EAAIjS,GAAS,KAAOiS,GAAQ,KAC7CqF,EAASrF,CAAI,CACf,CAGAvR,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAM6O,EAAe4G,EACrB,cAAO,iBAAiB,SAAU5G,CAAY,EACvC,IAAM,OAAO,oBAAoB,SAAUA,CAAY,CAChE,EAAG,CAAA,CAAE,EAGH3N,EAAAA,KAAC,OAAI,UAAU,0BAA0B,QAAS,IAAM6E,EAAS,EAAI,EACnE,SAAA,CAAA5F,EAAAA,IAACwQ,GAAA,CACC,IAAArQ,EACA,MAAArB,EACA,MAAO6X,EACP,GAAAtY,EACA,SAAU,CAACiY,EACX,SAAAvX,EACA,MAAAC,EACA,YAAAH,EACA,QAASyW,EACT,SAAUsB,EACV,KAAK,eACL,WAAY,CACV,OAAQ,UACR,MAAO,OACP,aACE,mEAAA,EAEJ,MAAArR,CAAA,CAAA,EAGDI,GAAS,CAAC5G,GACTiB,EAAAA,IAACgF,EAAA,CACC,SAAUsQ,EACT,GAAGa,GAAe3Q,CAAQ,EAE3B,SAAAxF,EAAAA,IAACgW,GAAA,CACC,QAAAb,EACA,MAAAhW,EACA,SAAWK,GAAMiX,EAASjX,EAAE,KAAK,CAAA,CAAA,CACnC,CAAA,CACF,EAEJ,CAEJ,CC1HA,MAAMsV,GAAiB,CAAC,QAAS,OAAO,EAElCgC,GAAgB,CAAC,CACrB,MAAOC,EACP,IAAKC,EACL,QAAAjF,EACA,OAAAwB,EAAS,EACT,QAAAvB,EAAU,KACV,QAAAmD,EAAUL,GACV,SAAA5V,CACF,IAAM,CACJ,KAAM,CAAC0P,EAAOqI,CAAQ,EAAI5X,EAAAA,gBAAgB0X,CAAS,EAC7C,CAAClI,EAAKqI,CAAM,EAAI7X,EAAAA,gBAAgB2X,CAAO,EACvC,CAACG,EAAaC,CAAc,EAAI3Y,WAAA,EAChC,CAAC4Y,EAAcC,CAAe,EAAI7Y,WAAA,EAElC8Y,EAAWhY,EAAAA,YAAY,CAAC4L,EAAGqK,EAAMgC,IAAU,CAC/C,MAAMlQ,EAAI,IAAI,KAAK6D,CAAC,EAEpB,OADA7D,EAAE,SAASA,EAAE,SAAA,EAAakO,CAAI,EAC1BgC,GAASlQ,EAAE,QAAA,IAAckQ,EAAM,QAAA,EAAkBA,EAC9ClQ,CACT,EAAG,CAAA,CAAE,EAECmQ,EAASlY,EAAAA,YACZ2H,GAAM,CACLkQ,EAAe,IAAM,CACnB,MAAMM,EAAU,IAAI,KAAKxQ,CAAC,EAC1B,OAAAwQ,EAAQ,QAAQ,CAAC,EACjBJ,EAAgBC,EAASG,EAAS,CAAC,CAAC,EAC7BA,CACT,CAAC,CACH,EACA,CAACH,CAAQ,CAAA,EAGLI,EAAUpY,EAAAA,YACb2H,GAAM,CACLoQ,EAAgB,IAAM,CACpB,MAAMM,EAAW,IAAI,KAAK1Q,CAAC,EAC3B,OAAA0Q,EAAS,QAAQ,CAAC,EAClBR,EAAeG,EAASK,EAAU,EAAE,CAAC,EAC9BA,CACT,CAAC,CACH,EACA,CAACL,CAAQ,CAAA,EAIX1X,EAAAA,UAAU,IAAM,CACd,MAAMgY,EAAWjJ,EAGZuI,GACHM,EAAOI,EAAW,IAAI,KAAKA,CAAQ,EAHlB9F,GAGoC,IAAI,IAAM,CAEnE,EAAG,CAACnD,EAAOmD,EAASoF,EAAaM,CAAM,CAAC,EAExC,MAAMK,EAAevY,EAAAA,YAClBuB,GAAO,CACN,MAAMoG,EAAIpG,EAAG,MACb,IAAI4G,EAAIkH,EACNpP,EAAIqP,EACN,MAAMkJ,EAAQ7Q,IAAM,GACpB,OAAK6Q,IACCjX,EAAG,OACD,CAAC8N,GAASC,GACZoI,EAAUvP,EAAIR,CAAE,EAChBgQ,EAAQ1X,EAAI,IAAK,GAEboP,EAAQ1H,GACVgQ,EAAQ1X,EAAIoP,CAAM,EAClBqI,EAAUvP,EAAIR,CAAE,GAEhBgQ,EAAQ1X,EAAI0H,CAAE,EAIbA,GAIH+P,EAAUvP,EAAI,IAAI,KAAKR,CAAC,CAAE,EAC1BgQ,EAAQ1X,EAAI,IAAI,KAAK0H,CAAC,CAAE,IAJxB+P,EAAUvP,EAAI,IAAK,EACnBwP,EAAQ1X,EAAI,IAAK,KAQnBuY,GAAS,CAAC5C,EAAQ,SAAS,MAAM,IACnCjW,GAAYA,EAAS,CAAE,MAAOwI,EAAG,IAAKlI,EAAG,EACpC,CAACkI,EAAGlI,CAAC,CACd,EACA,CAACoP,EAAOC,EAAKsG,EAASjW,CAAQ,CAAA,EAG1B8Y,EAAgBzY,EAAAA,YACnB2H,GAAM,CACL,KAAM,CAACQ,CAAC,EAAIoQ,EAAa5Q,CAAC,EACtBQ,GAAG+P,EAAO,IAAI,KAAK/P,CAAC,CAAC,CAC3B,EACA,CAAC+P,EAAQ7I,EAAOC,CAAG,CAAA,EAGfoJ,EAAc1Y,EAAAA,YACjB2H,GAAM,CACL,KAAM,EAAG1H,CAAC,EAAIsY,EAAa5Q,CAAC,EACxB1H,GAAGmY,EAAQ,IAAI,KAAKnY,CAAC,CAAC,CAC5B,EACA,CAACmY,EAAS/I,EAAOC,CAAG,CAAA,EAGtB,MAAI,CAACsI,GAAe,CAACE,EAAqB,KAEtC9D,IAAW,QAEV2C,GAAA,CACC,SAAAlW,EAAAA,IAACiV,GAAA,CACC,MAAO,CAAE,MAAArG,EAAO,IAAAC,CAAA,EAChB,QAASsI,EACT,QAAAnF,EACA,QAAAmD,EACA,KAAK,OACL,SAAU6C,EACV,gBAAiBP,CAAA,CAAA,EAErB,EAIAzX,EAAAA,IAACkW,GAAA,CACC,SAAAnV,EAAAA,KAAC,MAAA,CAAI,UAAU,6BACb,SAAA,CAAAf,EAAAA,IAAC,MAAA,CAAI,UAAU,oBACb,SAAAA,EAAAA,IAACiV,GAAA,CACC,MAAO,CAAE,MAAArG,EAAO,IAAAC,CAAA,EAChB,QAASsI,EACT,QAAAnF,EACA,QAAS,GACT,KAAK,OACL,SAAUgG,EACV,gBAAiBP,CAAA,CAAA,EAErB,EACAzX,EAAAA,IAAC,MAAA,CAAI,UAAU,oBACb,SAAAA,EAAAA,IAACiV,GAAA,CACC,MAAO,CAAE,MAAArG,EAAO,IAAAC,CAAA,EAChB,QAASwI,EACT,QAAArF,EACA,QAAAmD,EACA,KAAK,QACL,SAAU8C,EACV,gBAAiBN,CAAA,CAAA,CACnB,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAGN,ECvJM7C,GAAiB,CAAC,QAAS,OAAO,EAElCoD,GAAkB,CAAC,CACvB,MAAO/W,EACP,SAAAjC,EACA,GAAAb,EACA,SAAAU,EAAW,GACX,MAAAC,EAAQ,GACR,YAAAH,EAAc,GACd,IAAAsB,EAAM,GACN,MAAArB,EAAQ,GACR,OAAAuX,EAAS,GACT,OAAA9C,EAAS,EACT,QAAA4B,EAAUL,GACV,SAAAwB,EAAW,GACX,MAAA/Q,EAAQ,GACR,SAAAC,CACF,IAAM,CACJ,KAAM,CAACrG,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgB8B,CAAS,EAC7C,CAAE,SAAUoV,EAAgB,QAAA/E,CAAA,GAChCjT,EAAAA,WAAWL,CAAI,GAAKiK,EAAA,GACpB,OAAA,EAEIP,EAAIyO,GAAU7E,GAAS,WACvBgF,EACJ,OAAO5O,GAAM,WAAaA,EAAI8J,EAAAA,aAAa9J,EAAG2O,CAAc,EAExD,CAAC5Q,EAAOC,CAAQ,EAAInH,EAAAA,SAAS,EAAK,EAElCuE,EAAWzD,EAAAA,YAAY,IAAM,CACjCqG,EAAS,EAAK,CAChB,EAAG,CAAA,CAAE,EAEC+Q,EAAiBlW,EAAAA,QAAQ,IACtBtB,EACHA,EAAM,MACJqX,EAAWrX,EAAM,KAAK,GACrBA,EAAM,IAAM,MAAMqX,EAAWrX,EAAM,GAAG,CAAC,GAAK,IAC7CqX,EAAWrX,CAAK,EAClB,GACH,CAACA,EAAOqX,CAAU,CAAC,EAEhB5H,EAAQnO,EAAAA,QAAQ,IACbtB,GAAQA,EAAM,OAAS,KAC7B,CAACA,CAAK,CAAC,EAEJ0P,EAAMpO,EAAAA,QAAQ,IACXtB,GAAQA,EAAM,KAAO,KAC3B,CAACA,CAAK,CAAC,EAEJsX,EAAWlX,EAAAA,YACdgL,GAAM,CACL,MAAM9K,EAAW8K,EAAE,OAASA,EAAE,IAAM,CAAE,MAAOA,EAAE,MAAO,IAAKA,EAAE,GAAA,EAAQ,KAGjEnL,GACFA,EAASK,CAAQ,GAMd8K,EAAE,OAASA,EAAE,KAAS,CAACA,EAAE,OAAS,CAACA,EAAE,OAEpCrL,GACFA,EAAS,CAAE,MAAOO,EAAU,EAE9B,WAAWuD,EAAU,CAAC,EAE1B,EACA,CAAC9D,EAAU8D,EAAU5D,CAAQ,CAAA,EAGzB+Y,EAAgB5Y,EAAAA,YACnBuB,GAAO,CACN,GAAI,CAACwV,GAAY,CAAC/Q,EAAO,OAEzB,KAAM,CAAE,MAAO2B,EAAG,MAAA2P,CAAA,EAAU/V,EAC5B,GAAI+V,EAAO,OAEX,KAAM,CAACnP,EAAGlI,CAAC,EAAI0H,EAAE,MAAM,IAAI,EAAE,IAAI,CAACvG,EAAGkN,IAAM,CACzC,MAAMuK,EAAKzX,EAAE,KAAA,EACb,IAAIyQ,EACF,OAAOkF,GAAa,WAChBA,EAAS8B,CAAE,EACXA,EACE,IAAI,KAAKA,CAAE,EACX,KAKJC,EAAMxK,IAAM,EAAIe,EAAQC,EAC5B,OAAO,MAAMuC,CAAI,EAAKiH,GAAY,KAAQjH,GAAQ,IACpD,CAAC,EAEDqF,EAAS,CAAE,MAAO/O,EAAG,IAAKlI,EAAG,CAC/B,EACA,CAAC8W,EAAU/Q,EAAOqJ,EAAOC,EAAK4H,CAAQ,CAAA,EAGxC5W,OAAAA,EAAAA,UAAU,IAAM,CACd,MAAM6O,EAAe,IAAM,CACzB1L,EAAA,CACF,EAEA,cAAO,iBAAiB,SAAU0L,CAAY,EACvC,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAY,CACnD,CACF,EAAG,CAAC1L,CAAQ,CAAC,EAGXjC,EAAAA,KAAC,MAAA,CACC,UAAW,gCAAgChC,EAAW,cAAgB,EAAE,IAAIC,EAAQ,WAAa,EAAE,GACnG,QAAS,IAAM4G,EAAS,EAAI,EAE5B,SAAA,CAAA5F,EAAAA,IAACwQ,GAAA,CACC,IAAArQ,EACA,MAAArB,EACA,MAAO6X,EACP,GAAAtY,EACA,SAAU,CAACiY,EACX,SAAAvX,EACA,YAAAF,EACA,MAAAG,EACA,SAAUmZ,EACV,KAAK,eACL,WAAY,CACV,OAAQ,UACR,MAAO,OACP,aACE,mEAAA,EAEJ,MAAA5S,CAAA,CAAA,EAGDI,GAAS,CAAC5G,GACTiB,EAAAA,IAACgF,EAAA,CACC,SAAAhC,EACC,GAAGmT,GAAe3Q,CAAQ,EAE3B,SAAAxF,EAAAA,IAAC8W,GAAA,CACC,SAAA9T,EACA,QAAAmS,EACA,MAAAvG,EACA,IAAAC,EACA,OAAA0E,EACA,SAAUkD,CAAA,CAAA,CACZ,CAAA,CACF,CAAA,CAAA,CAIR,EChKA,SAAwB6B,GAAW,CACjC,OAAAC,EAAS,KACT,aAAAC,EACA,SAAAlY,CACF,EAAG,CACD,MAAMmE,EAAU7E,EAAAA,OAAO,IAAI,EACrB,CAAC6Y,EAAcC,CAAe,EAAIja,EAAAA,SAAS,EAAK,EAEhD2B,EAAOK,EAAAA,QACX,IAAM,OAAOgY,EAAe,WAAa,QAAQ,GACjD,CAACA,CAAY,CAAA,EAGTE,EAAmB/Y,EAAAA,OAAO,IAAI,EACpC,OAAA+Y,EAAiB,QAAU,IAAM,CAC/B,MAAM5Y,EAAO0E,EAAQ,QACjB,CAACgU,GAAgB1Y,EACnBA,EAAK,kBAAA,EACI0Y,GACT,SAAS,eAAA,EAEXC,EAAiBE,GAAS,CAACA,CAAI,CACjC,EAEAC,EAAAA,WAAW,CAAE,CAACN,CAAM,EAAG,IAAMI,EAAiB,QAAA,CAAQ,EAAKlU,CAAO,EAElE5E,EAAAA,UAAU,IAAM,CACd,MAAMiZ,EAAqB,IAAM,CAC/BJ,EAAgB,SAAS,oBAAsBjU,EAAQ,OAAO,CAChE,EAEA,gBAAS,iBAAiB,mBAAoBqU,CAAkB,EACzD,IAAM,CACX,SAAS,oBAAoB,mBAAoBA,CAAkB,CACrE,CACF,EAAG,CAAA,CAAE,SAGF,MAAA,CAAI,UAAU,0BAA0B,IAAKrU,EAAS,SAAU,GAC9D,SAAA,CAAAnE,EACAkY,EACCA,EAAaG,EAAiB,QAASF,CAAY,EAEnDzY,MAACC,GAAO,IAAI,iCAAiC,QAAS0Y,EAAiB,QACrE,eAAC,IAAA,CAAE,UAAW,aAAavY,CAAI,sBAAuB,aAAC,CAAA,CACzD,CAAA,EAEJ,CAEJ,CCpDA,SAAwB2Y,GAAK,CAAE,IAAA5Y,EAAM,GAAI,MAAArB,EAAQ,GAAI,SAAAwB,EAAU,QAAAC,GAAW,CACxE,OAAID,EAEAN,EAAAA,IAAC,IAAA,CACC,MAAAlB,EACA,KAAK,MACL,UAAW,qBAAqBqB,CAAG,GACnC,QAAAI,EAEC,SAAAD,CAAA,CAAA,EAKHN,EAAAA,IAAC,IAAA,CACC,MAAAlB,EACA,UAAW,qBAAqBqB,CAAG,GACnC,QAAAI,CAAA,CAAA,CAIR,CCjBA,MAAMyY,GAAe,CAAA,EAErB,SAAwBC,GAAW,CACjC,GAAA5a,EACA,MAAO8C,EAAY6X,GACnB,QAAAxX,EAAU,CAAA,EACV,YAAA0N,EAAc,KACd,UAAAC,EAAY,QACZ,YAAAtQ,EAAc,GACd,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,MAAAC,EAAQ,GACR,WAAAgN,EAAa,GACb,SAAA9M,EACA,SAAAoB,EACA,SAAAkF,EAAW,CAAA,CACb,EAAG,CACD,MAAMhH,EAAUJ,EAAWC,CAAE,EACvBoN,EAAW7L,EAAAA,OAAO,IAAI,EACtBsK,EAAUtK,EAAAA,OAAO,IAAI,EAErB,CAACT,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgB8B,CAAS,EAE7C,CAACd,EAAM6Y,CAAO,EAAIza,EAAAA,SAAS,EAAE,EAC7B,CAACiS,EAAOyI,CAAQ,EAAI1a,EAAAA,SAAS,EAAK,EAClCgR,EAAe7P,EAAAA,OAAO,IAAI,EAE1BmQ,EAAWtP,EAAAA,QAAQ,IAChBtB,GACF+P,GAAe1N,GAAS,OAAQqM,GAAM1O,EAAM,SAAS0O,EAAE,EAAE,CAAC,EAC3D,CAAA,EACH,CAAC1O,EAAO+P,EAAa1N,CAAO,CAAC,EAE1B4X,EAAgB3Y,EAAAA,QAAQ,IAAM,CAClC,MAAM2K,EAAI5J,EACV,OAAOnB,EACH+K,EAAE,OAAQyC,GAAMA,EAAEsB,CAAS,EAAE,YAAA,EAAc,SAAS9O,EAAK,YAAA,CAAa,CAAC,EACvE+K,CACN,EAAG,CAAC/K,EAAMmB,EAAS2N,CAAS,CAAC,EAEvBkK,EAAU9Z,cAAauB,GAAO,CAClC2K,EAAS,QAAU3K,EAAG,SACtBoJ,EAAQ,QAAUpJ,EAAG,OACvB,EAAG,CAAA,CAAE,EAEC+V,EAAQtX,EAAAA,YAAY,IAAM,CAC1B6Z,EAAc,OAAQ3N,EAAS,QAAQ,CAAC,EACvCA,EAAS,QAAQ,IAAI,CAC5B,EAAG,CAAC2N,CAAa,CAAC,EAEZE,EAAW/Z,EAAAA,YACduB,GAAO,CACN,KAAM,CAAE,GAAAzC,CAAAA,EAAOyC,EACXzC,IACFe,EAASf,CAAE,EACXa,GAAYA,EAAS,CAAE,MAAOb,CAAAA,CAAI,EAClCoR,EAAa,QAAQ,MAAA,EAEzB,EACA,CAACvQ,CAAQ,CAAA,EAGLqa,EAASha,EAAAA,YACb,CAAClB,EAAIyC,IAAO,CACNA,KAAO,gBAAA,EAEX,MAAM0K,EAAOrM,EAAM,OAAQ0O,GAAMA,IAAMxP,CAAE,EACzCe,EAASoM,CAAI,EACbtM,GAAYA,EAAS,CAAE,MAAOsM,CAAA,CAAM,CACtC,EACA,CAACrM,EAAOD,CAAQ,CAAA,EAGZ+G,EAAQ1G,EAAAA,YACZ,IACEJ,GAASA,EAAM,OACXia,EAAc,UAAWvL,GAAMA,EAAE,KAAO1O,EAAM,CAAC,CAAC,EAChD,EACN,CAACA,EAAOia,CAAa,CAAA,EAGjBI,EAAiBja,EAAAA,YAAY,IAAM,CAClCR,IACH0Q,EAAa,QAAQ,MAAA,EACrBhE,EAAS,QAAQxF,GAAO,EAE5B,EAAG,CAAClH,EAAUkH,CAAK,CAAC,EAEpB,OACElF,EAAAA,KAAC,MAAA,CACC,MAAAjC,EACA,UACE,2BACGE,EAAQ,WAAa,EAAE,IAAID,EAAW,cAAgB,EAAE,IAAIgR,EAAS,OAAS,eAAiB,EAAE,IAAIW,GAAS,CAAC3R,EAAW,WAAa,EAAE,GAE9I,QAASya,EACT,UAAY1Y,GAAOoJ,EAAQ,QAAQpJ,EAAImF,GAAO,EAE9C,SAAA,CAAAlF,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAf,EAAAA,IAAC,MAAA,CAAI,UAAU,oBACZ,SAAA+P,EAAS,IAAK0J,GACb1Y,EAAAA,KAAC,MAAA,CAAiB,UAAU,mBACzB,SAAA,CAAAT,EAAW2L,EAAAA,QAAQ3L,EAAU,CAAE,OAAQmZ,EAAK,EAAIA,EAAItK,CAAS,EAC7D,CAACpQ,GACAiB,EAAAA,IAAC,IAAA,CACC,UAAU,8BACV,QAAUc,GAAOyY,EAAOE,EAAI,GAAI3Y,CAAE,CAAA,CAAA,CACnC,CAAA,EANK2Y,EAAI,EAQd,CACD,EACH,EACA1Y,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACb,SAAA,CAAAf,EAAAA,IAAC,QAAA,CACC,UAAU,qBACV,GAAIxB,EACJ,KAAK,OACL,MAAO6B,EACP,SAAWS,GAAOoY,EAAQpY,EAAG,OAAO,KAAK,EACzC,QAAS+V,EACT,YAAAhY,EACA,SAAAE,EACA,QAAS,IAAMoa,EAAS,EAAI,EAC5B,OAAQ,IAAMA,EAAS,EAAK,EAC5B,IAAK1J,CAAA,CAAA,EAEPzP,EAAAA,IAAC,IAAA,CAAE,UAAU,kCAAA,CAAmC,CAAA,CAAA,CAClD,CAAA,EACF,EAEC,CAACjB,GACAiB,EAAAA,IAACuQ,GAAA,CACC,MAAO6I,EACP,YAAa,GACb,QAASC,EACT,SAAUC,EACV,WAAAtN,EACA,MAAA7M,EACC,GAAGqG,EAEH,SAAA,CAAC,CAAE,OAAA7D,CAAA,sBAEC,SAAArB,EAAW2L,EAAAA,QAAQ3L,EAAU,CAAE,OAAAqB,CAAA,CAAQ,EAAIA,EAAOwN,CAAS,CAAA,CAC9D,CAAA,CAAA,CAEJ,CAAA,CAAA,CAIR,CCrJA,MAAMuK,GAAQ,CAAC,CACb,MAAAC,EAAQ,EACR,SAAUC,EAAkB,GAC5B,MAAOC,EAAe,EACtB,SAAA3a,CACF,IAAM,CACJ,KAAM,CAAC4a,EAAUC,CAAW,EAAI1a,EAAAA,gBAAgBua,CAAe,EACzD,CAACza,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBwa,CAAY,EAEhDnR,GAAKnK,aAAWL,CAAI,GAAKiK,EAAA,GAAiB,SAAS,MAAM,EAEzD6R,EAAY,KAAK,KAAKL,EAAQG,CAAQ,EACtCG,GAAQ9a,EAAQ,GAAK2a,EACrBI,EAAK,KAAK,IAAI/a,EAAQ2a,EAAUH,CAAK,EAErCQ,EAAgB,CAACjT,EAAG6Q,IAAU,CAC9B,OAAO,MAAM7Q,CAAC,IAEb6Q,GAAO3Y,EAAS8H,CAAC,EACtBA,EAAI,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAG8S,CAAS,CAAC,EAClCjC,KAAgB7Q,CAAC,EAEjBA,IAAM/H,GACV,WAAW,IAAM,CACfD,GACEA,EAAS,CACP,MAAOgI,EACP,MAAOA,EAAI,GAAK4S,EAChB,GAAI,KAAK,IAAI5S,EAAI4S,EAAUH,CAAK,EAChC,SAAAG,CAAA,CACD,CACL,CAAC,EACH,EAEA,SAASM,EAAc/b,EAAI,CACzB,OAAQA,EAAA,CACN,IAAK,QACH8b,EAAc,CAAC,EACf,MAEF,IAAK,OACHA,EAAchb,EAAQ,CAAC,EACvB,MAEF,IAAK,OACHgb,EAAchb,EAAQ,CAAC,EACvB,MAEF,IAAK,OACHgb,EAAcH,CAAS,EACvB,KAGA,CAEN,CAEA,MAAMK,EAAmB7a,GAAM,CAC7B,MAAMC,EAAWD,EAAE,OAAO,MAAQ,EAC9B,OAAO,MAAMC,CAAQ,IAIzBsa,EAAYta,CAAQ,EACpBP,GAAYA,EAAS,CAAE,MAAAC,EAAO,KAAA8a,EAAM,GAAAC,EAAI,SAAUza,EAAU,EAC9D,EAEA,OACEsB,EAAAA,KAAC,MAAA,CAAI,UAAU,qBACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,oBACb,SAAA,CAAAA,OAAC,OAAA,CAAM,SAAA,CAAA2H,EAAE,eAAe,EAAE,IAAA,EAAE,EAC5B1I,EAAAA,IAAC,QAAA,CACC,KAAK,SACL,IAAK,EACL,UAAU,qBACV,MAAO8Z,EACP,SAAUO,CAAA,CAAA,CACZ,EACF,EAEAtZ,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACb,SAAA,CAAAf,EAAAA,IAAC,IAAA,CACC,UACE,wCACCb,IAAU,EAAI,eAAiB,IAElC,QAAS,IAAMib,EAAc,OAAO,CAAA,CAAA,EAEtCpa,EAAAA,IAAC,IAAA,CACC,UACE,oCACCb,IAAU,EAAI,eAAiB,IAElC,QAAS,IAAMib,EAAc,MAAM,CAAA,CAAA,EAErCpa,EAAAA,IAAC,QAAA,CACC,KAAK,OACL,MAAAb,EACA,UAAU,qBACV,SAAWK,GAAM2a,EAAc3a,EAAE,OAAO,MAAQ,CAAC,EACjD,OAASA,GAAM2a,EAAc3a,EAAE,OAAO,MAAQ,EAAG,EAAI,CAAA,CAAA,EAEvDQ,EAAAA,IAAC,IAAA,CACC,UACE,qCACCb,IAAU6a,EAAY,eAAiB,IAE1C,QAAS,IAAMI,EAAc,MAAM,CAAA,CAAA,EAErCpa,EAAAA,IAAC,IAAA,CACC,UACE,yCACCb,IAAU6a,EAAY,eAAiB,IAE1C,QAAS,IAAMI,EAAc,MAAM,CAAA,CAAA,CACpC,EACH,EAEArZ,EAAAA,KAAC,MAAA,CAAI,UAAU,qBACZ,SAAA,CAAA2H,EAAE,aAAa,EAAE,KAAGsR,CAAA,CAAA,CACvB,CAAA,EACF,CAEJ,EC5HA,SAAwBM,GAAY,CAClC,GAAAjc,EACA,MAAA4C,EAAQ,GACR,MAAOsZ,EACP,KAAAC,EAAO,GACP,WAAAtZ,EAAa,GACb,SAAAnC,EAAW,GACX,SAAAG,CACF,EAAG,CACD,MAAMub,EAAaC,EAAAA,MAAA,EACblc,EAAUJ,EAAWC,CAAE,GAAKoc,EAE5B,CAACE,EAAeC,CAAgB,EAAInc,EAAAA,SAAS,EAAK,EAIlDoc,EAAeN,IAAkB,OACjC9U,EAAeoV,EAAeN,EAAgBI,EAEpD,SAAStZ,EAAcP,EAAI,CACzB,MAAMrB,EAAWqB,EAAG,OAAO,QAEtB+Z,GACHD,EAAiBnb,CAAQ,EAGvBA,GAAYP,GACdA,EAAS,CAAE,MAAO,GAAM,WAAAgC,CAAA,CAAY,CAExC,CAEA,OACEH,EAAAA,KAAC,MAAA,CAAI,UAAU,qBACb,SAAA,CAAAf,EAAAA,IAAC,QAAA,CACC,KAAK,QACL,UAAU,qBACV,GAAIxB,EACJ,SAAAO,EACA,KAAAyb,EACA,MAAOtZ,EACP,QAASuE,EACT,SAAUpE,CAAA,CAAA,EAEZN,EAAAA,KAAC,QAAA,CAAM,QAASvC,EAAS,UAAU,qBACjC,SAAA,CAAAwB,EAAAA,IAAC,OAAA,CAAK,UAAU,qBAAA,CAAsB,EACrCiB,GAASjB,EAAAA,IAAC,OAAA,CAAK,UAAU,0BAA2B,SAAAiB,CAAA,CAAM,CAAA,CAAA,CAC7D,CAAA,EACF,CAEJ,CC/CA,SAAwB6Z,GAAiB,CACvC,QAAAtZ,EAAU,CAAC,CAAA,CAAE,EACb,MAAArC,EAAQ,GACR,SAAAD,EACA,KAAAgB,EAAO,EACT,EAAG,CACD,MAAMsa,EAAO9b,EAAAA,IAAA,EAEP,CAAC+G,EAAcC,CAAe,EAAIjH,EAAAA,SAASU,CAAK,EAEtDU,EAAAA,UAAU,IAAM,CACd6F,EAAgBvG,CAAK,CACvB,EAAG,CAACA,CAAK,CAAC,EAEV,SAASsC,EAAaX,EAAI,CACxB,MAAMrB,EAAWqB,EAAG,WACpB4E,EAAgBjG,CAAQ,EACpBP,GACFA,EAAS,CAAE,MAAOO,EAAU,CAEhC,CAEA,OACEO,EAAAA,IAAC7B,GAAQ,SAAR,CAAiB,MAAO,KACvB,SAAA6B,EAAAA,IAAC,MAAA,CAAI,UAAW,2BAA2BE,GAAQ,MAAMA,CAAI,EAAE,GAC5D,SAAAsB,EAAQ,IAAKG,GACZ3B,EAAAA,IAAC,MAAA,CAAoB,UAAU,oBAC7B,SAAAA,EAAAA,IAACsa,GAAA,CACC,MAAO3Y,EAAO,MACd,WAAYA,EAAO,GACnB,MAAO8D,IAAiB9D,EAAO,GAC/B,KAAA6Y,EACA,SAAU/Y,CAAA,CAAA,CACZ,EAPQE,EAAO,EAQjB,CACD,EACH,CAAA,CACF,CAEJ,CCzCA,SAAwBoZ,GAAW,CACjC,MAAOrQ,EAAgB,GACvB,QAAAlJ,EAAU,CAAA,EACV,YAAA0N,EAAc,KACd,YAAArQ,EAAc,GACd,SAAAE,EAAW,GACX,MAAAC,EAAQ,GACR,MAAAF,EAAQ,GACR,UAAAqQ,EAAY,QACZ,MAAA5J,EAAQ,GACR,SAAU6J,EACV,SAAAlQ,EACA,SAAAsG,EAAW,CAAA,CACb,EAAG,CACD,MAAMiG,EAAW7L,EAAAA,OAAO,IAAI,EACtBsK,EAAUtK,EAAAA,OAAO,IAAI,EAC3B,GAAI,CAACT,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBqL,CAAa,EAErD,SAASkF,EAAM9O,EAAI,CACjB2K,EAAS,QAAU3K,EAAG,SACtBoJ,EAAQ,QAAUpJ,EAAG,OACvB,CAEA,MAAMiP,EAAWtP,EAAAA,QAAQ,IAChBtB,GAASA,IAAU,GACrB+P,GAAe1N,GAAS,KAAMb,GAAMA,EAAE,KAAOxB,CAAK,EACnD,KACH,CAACA,EAAO+P,EAAa1N,CAAO,CAAC,EAE1BmP,EAASpR,EAAAA,YACb,CAAC,CAAE,GAAAlB,CAAA,IAAS,EACNA,GAAMA,IAAO,KACfe,EAASf,CAAE,EACXoN,EAAS,QAAQ,IAAI,EACrBvM,GAAYA,EAAS,CAAE,MAAOb,CAAA,CAAI,EAEtC,EACA,CAACe,EAAUF,CAAQ,CAAA,EAGf8b,EAAWzb,EAAAA,YACduB,GAAO,CACNA,EAAG,gBAAA,EACH1B,EAAS,EAAE,EACXF,GAAYA,EAAS,CAAE,MAAO,EAAA,CAAI,CACpC,EACA,CAACE,EAAUF,CAAQ,CAAA,EAGf+G,EAAQ1G,EAAAA,YAAY,IACjBiC,EAAQ,UAAWb,GAAMA,EAAE,KAAOxB,CAAK,EAC7C,CAACqC,EAASrC,CAAK,CAAC,EAEnB,OACE4B,EAAAA,KAAC,MAAA,CACC,UAAW,2BAA2B/B,EAAQ,qBAAuB,EAAE,IAAID,EAAW,wBAA0B,EAAE,IAAKqQ,EAA+B,GAAxB,qBAA0B,GACxJ,MAAAtQ,EACA,QAAS,IAAM2M,EAAS,QAAQxF,GAAO,EACvC,UAAYnF,GAAOoJ,EAAQ,QAAQpJ,EAAImF,GAAO,EAC9C,SAAU,EAEV,SAAA,CAAAjG,EAAAA,IAAC,OAAI,UAAU,qBACZ,WACCoP,EACEA,EAAKW,CAAQ,EAEbA,EAASZ,CAAS,EAElBtQ,EACFmB,EAAAA,IAAC,OAAA,CAAK,UAAU,2BAA4B,SAAAnB,CAAA,CAAY,EAExD,IAEJ,EAEC0G,GAAS,CAACxG,GAAYI,QACpB,IAAA,CAAE,UAAU,8BAA8B,QAAS6b,CAAA,CAAU,EAE9Dhb,EAAAA,IAAC,IAAA,CAAE,UAAU,mCAAmC,EAGjD,CAACjB,GACAiB,MAACuQ,GAAA,CAAK,MAAO/O,EAAS,QAASoO,EAAO,SAAUe,EAAS,GAAGnL,EACzD,SAAA,CAAC,CAAE,OAAA7D,KAAcyN,EAAOA,EAAKzN,CAAM,EAAIA,EAAOwN,CAAS,CAAA,CAC1D,CAAA,CAAA,CAAA,CAIR,CCzFA,MAAM8L,GAAY,CAAC,CACjB,QAAAzZ,EAAU,CAAA,EACV,MAAArC,EAAQ,GACR,IAAAgB,EAAM,GACN,SAAAG,EACA,SAAApB,CACF,IAAM,CAEJ,KAAM,CAACyb,EAAeC,CAAgB,EAAInc,EAAAA,SAASU,CAAK,EAElD0B,EAAexC,GAAO,CAC1Buc,EAAiBvc,CAAE,EACfa,GACFA,EAAS,CAAE,MAAOb,EAAI,CAE1B,EAGAwB,OAAAA,EAAAA,UAAU,IAAM,CACd+a,EAAiBzb,CAAK,CACxB,EAAG,CAACA,CAAK,CAAC,EAGRa,EAAAA,IAAC,OAAI,UAAW,0BAA+BG,CAAG,GAC/C,SAAAqB,EAAQ,IAAKG,GACZ3B,EAAAA,IAAC,SAAA,CAEC,UACE,wBACe2B,EAAO,GAAG,IAAIA,EAAO,KAAOgZ,EAAgB,cAAgB,EAAE,GAE/E,MAAOhZ,EAAO,MACd,QAAS,IAAMd,EAAYc,EAAO,EAAE,EAEnC,WACCsK,EAAAA,QAAQ3L,EAAU,CAAE,OAAAqB,CAAA,CAAQ,EAE5BZ,EAAAA,KAAAuB,WAAA,CACG,SAAA,CAAAX,EAAO,MACN3B,EAAAA,IAAC,IAAA,CACC,UACE,qBACY2B,EAAO,IAAI,IAAKA,EAAO,MAAoB,GAAZ,SAAc,EAAA,CAAA,EAI9DA,EAAO,OACN3B,EAAAA,IAAC,QAAK,UAAU,qBAAsB,WAAO,KAAA,CAAM,CAAA,CAAA,CAEvD,CAAA,EAvBG2B,EAAO,EAAA,CA0Bf,EACH,CAEJ,ECvDA,SAAwBuZ,GAAO,CAC7B,MAAO/Z,EACP,QAAAK,EAAU,CAAA,EACV,YAAA3C,EAAc,GACd,MAAAC,EAAQ,GACR,SAAAC,EAAW,GACX,MAAAC,EAAQ,GACR,UAAAmQ,EAAY,QACZ,MAAA5J,EAAQ,GACR,GAAAlH,EACA,SAAAa,CACF,EAAG,CACD,MAAMV,EAAUJ,EAAWC,CAAE,EACvB,CAACc,EAAOC,CAAQ,EAAIX,EAAAA,SAAS0C,GAAa,EAAE,EAE5CM,EAAelC,EAAAA,YAClB4b,GAAU,CACT,MAAM1b,EAAW0b,EAAM,OAAO,MAC9B/b,EAASK,CAAQ,EACbP,GAAUA,EAAS,CAAE,MAAOO,EAAU,CAC5C,EACA,CAACP,CAAQ,CAAA,EAGL8b,EAAWzb,EAAAA,YAAY,IAAM,CACjCH,EAAS,EAAE,EACPF,GAAUA,EAAS,CAAE,MAAO,GAAI,CACtC,EAAG,CAACA,CAAQ,CAAC,EAEb,OACE6B,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAA,EAAAA,KAAC,SAAA,CACC,GAAIvC,EACJ,MAAAW,EACA,SAAAJ,EACA,UAAW,uBAAuBC,EAAQ,qBAAuB,EAAE,GACnE,MAAAF,EACA,SAAU2C,EAEV,SAAA,CAAAzB,EAAAA,IAAC,SAAA,CAAO,MAAM,GAAI,SAAAnB,EAAY,EAC7B2C,EAAQ,IAAKG,SACX,SAAA,CAAuB,MAAOA,EAAO,GACnC,SAAAA,EAAOwN,CAAS,CAAA,EADNxN,EAAO,EAEpB,CACD,CAAA,CAAA,CAAA,EAGF4D,GAAS,CAACxG,GAAYI,QACpB,IAAA,CAAE,UAAU,8BAA8B,QAAS6b,CAAA,CAAU,EAE9Dhb,EAAAA,IAAC,IAAA,CAAE,UAAU,kCAAA,CAAmC,CAAA,EAEpD,CAEJ,CCrDA,SAAwBob,GAAO,CAC7B,GAAA/c,EACA,MAAA4C,EAAQ,GACR,IAAAd,EAAM,GACN,IAAA4H,EAAM,EACN,IAAAC,EAAM,IACN,MAAO6R,EAAe,EACtB,KAAAwB,EAAO,EACP,MAAAvc,EAAQ,GACR,SAAAC,EAAW,GACX,SAAAG,EACA,MAAA6D,EAAQ,EACV,EAAG,CACD,MAAMvE,EAAUJ,EAAWC,CAAE,EACvB,CAACc,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBwa,CAAY,EAChDyB,EAAW1b,EAAAA,OAAO,CAAE,MAAAT,EAAc,MAAOA,EAAO,EAEhDoc,EAAW9a,EAAAA,QACf,KAAQtB,EAAQ4I,IAAQC,EAAMD,GAAQ,IAAM,IAC5C,CAAC5I,EAAO4I,EAAKC,CAAG,CAAA,EAGZwT,EAAU/a,EAAAA,QAAQ,IACf1B,EACH,GACA,sDAAsDwc,CAAQ,iCAAiCA,CAAQ,SAC1G,CAACxc,EAAUwc,CAAQ,CAAC,EAEvB,SAASvK,EAAQ,CAAE,OAAA1P,GAAU,CAC3B,MAAM7B,EAAW6B,EAAO,MAAQ,EAChClC,EAASK,CAAQ,EACjBP,GACEA,EAAS,CACP,MAAOO,EACP,SAAU6b,EAAS,QAAQ,MAC3B,MAAO,EAAA,CACR,EACHA,EAAS,QAAQ,MAAQ7b,CAC3B,CAEA,SAASgc,EAAS,CAAE,OAAAna,GAAU,CAC5B,MAAM7B,EAAW6B,EAAO,MAAQ,EAChClC,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,EAAU,SAAU6b,EAAS,QAAQ,MAAO,EAC1EA,EAAS,QAAQ,MAAQ7b,CAC3B,CAGAI,EAAAA,UAAU,IAAM,CACdT,EAASya,CAAY,CACvB,EAAG,CAACA,CAAY,CAAC,EAEjB,MAAMla,EAAWC,EAAAA,OAAO,IAAI,EAC5BC,EAAAA,UAAU,IAAM,CACd,GAAIF,EAAS,QACX,OAAAA,EAAS,QAAQ,iBAAiB,SAAU8b,CAAQ,EAC7C,IAAM,CACP9b,EAAS,SACXA,EAAS,QAAQ,oBAAoB,SAAU8b,CAAQ,CAE3D,CAEJ,EAAG,CAAC9b,EAAU8b,CAAQ,CAAC,EAEvB,MAAMra,EAAQ,CAAC,GAAI2B,GAAS,CAAE,MAAAA,EAAM,EAEpC,cACG,MAAA,CAAI,UAAW,uBAAuB5C,CAAG,GAAI,MAAAiB,EAAc,MAAAtC,EACzD,SAAA,CAAAmC,SACE,QAAA,CAAM,UAAU,qBAAqB,QAASzC,EAC5C,SAAAyC,EACH,EAEFjB,EAAAA,IAAC,MAAA,CAAI,UAAU,qBACb,SAAAA,EAAAA,IAAC,QAAA,CACC,GAAIxB,EACJ,UAAU,qBACV,KAAK,QACL,IAAAuJ,EACA,IAAAC,EACA,KAAAqT,EACA,SAAAtc,EACA,MAAAI,EACA,QAAS6R,EACT,MAAO,CAAE,WAAYwK,CAAA,EACrB,IAAK7b,CAAA,CAAA,CACP,CACF,CAAA,EACF,CAEJ,CC1FA,SAAwB+b,GAAO,CAC7B,GAAArd,EACA,MAAOwb,EAAe,GACtB,SAAA9a,EAAW,GACX,SAAAG,CACF,EAAG,CACD,MAAMV,EAAUJ,EAAWC,CAAE,EACvB,CAACc,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBwa,CAAY,EAEhDpY,EAAelC,EAAAA,YAClB4b,GAAU,CACT,MAAM1b,EAAW0b,EAAM,OAAO,QAC9B/b,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,CAAA,CAAU,CAC1C,EACA,CAACP,CAAQ,CAAA,EAGX,OACE6B,EAAAA,KAAC,QAAA,CAAM,UAAU,sBACf,SAAA,CAAAf,EAAAA,IAAC,QAAA,CACC,UAAU,qBACV,KAAK,WACL,QAASb,EACT,SAAUsC,EACV,SAAA1C,EACA,GAAIP,CAAA,CAAA,EAENwB,EAAAA,IAAC,OAAA,CAAK,UAAU,kBAAA,CAAmB,CAAA,EACrC,CAEJ,CCjCA,MAAM2b,GAAO,CAAC,CACZ,QAAAna,EAAU,CAAA,EACV,MAAO5C,EAAY,GACnB,KAAAsB,EAAO,MACP,IAAAC,EAAM,GACN,SAAAjB,CACF,IAAM,CACJ,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBT,CAAS,EAE7CiC,EAAe+a,GAAa,CAChCxc,EAASwc,CAAQ,EACb1c,GACFA,EAAS,CAAE,MAAO0c,EAAU,CAEhC,EAEA,OACE5b,EAAAA,IAAC,MAAA,CAAI,UAAW,wBAA6BE,CAAI,IAAIC,CAAG,GACrD,SAAAqB,EAAQ,IAAKG,GACZZ,EAAAA,KAAC,SAAA,CAEC,UACE,oBACUY,EAAO,GAAG,IAAIA,EAAO,KAAOxC,EAAQ,YAAc,EAAE,GAEhE,MAAOwC,EAAO,MACd,QAAS,IAAMd,EAAYc,EAAO,EAAE,EAEnC,SAAA,CAAAA,EAAO,MACN3B,EAAAA,IAAC,IAAA,CACC,UACE,qBACW2B,EAAO,IAAI,IAAKA,EAAO,MAAoB,GAAZ,SAAc,EAAA,CAAA,EAI7DA,EAAO,OACN3B,EAAAA,IAAC,QAAK,UAAU,qBAAsB,WAAO,KAAA,CAAM,CAAA,CAAA,EAjBhD2B,EAAO,EAAA,CAoBf,EACH,CAEJ,ECzCMka,GAAU,CAAC,CACf,GAAAxd,EACA,MAAOwb,EAAe,EACtB,KAAAwB,EAAO,EACP,IAAAtT,EAAM,EACN,IAAAC,EAAM,IACN,MAAAhJ,EAAQ,GACR,SAAAD,EAAW,GACX,SAAAE,EAAW,GACX,SAAAC,CACF,IAAM,CACJ,MAAMV,EAAUJ,EAAWC,CAAE,EACvB,CAACc,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBwa,CAAY,EAEhDiC,EAAMvc,EAAAA,YAAY,IAAM,CAC5B,GAAIN,GAAYE,GAAS4I,EAAK,OAC9B,MAAMtI,EAAWN,EAAQkc,EACzBjc,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,CAAA,CAAU,CAC1C,EAAG,CAACN,EAAOF,EAAU8I,EAAKsT,EAAMnc,CAAQ,CAAC,EAEnC6c,EAAMxc,EAAAA,YAAY,IAAM,CAC5B,GAAIN,GAAYE,GAAS6I,EAAK,OAC9B,MAAMvI,EAAWN,EAAQkc,EACzBjc,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,CAAA,CAAU,CAC1C,EAAG,CAACN,EAAOF,EAAU+I,EAAKqT,EAAMnc,CAAQ,CAAC,EAEnC8c,EAAOzc,EAAAA,YAAY,IAAM,CAC7B,GAAI,CAACN,EAAU,CACb,MAAMgd,EACJ,KAAK,MAAM,KAAK,IAAIjU,EAAK,KAAK,IAAI7I,EAAO4I,CAAG,CAAC,EAAIsT,CAAI,EAAIA,EACrD5b,EAAW,MAAMwc,CAAM,EAAI,KAAK,IAAIlU,EAAK,CAAC,EAAIkU,EACpD7c,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,CAAA,CAAU,CAC1C,CACF,EAAG,CAACR,EAAUE,EAAO6I,EAAKD,EAAKsT,EAAMnc,CAAQ,CAAC,EAExC2X,EAAQtX,EAAAA,YACXC,GAAM,CACL,MAAMC,EAAWD,EAAE,OAAO,MAAQ,EAClCJ,EAASK,CAAQ,EACjBP,GAAYA,EAAS,CAAE,MAAOO,EAAU,MAAO,GAAM,CACvD,EACA,CAACP,CAAQ,CAAA,EAGX,OACE6B,EAAAA,KAAC,MAAA,CACC,UACE,wBACchC,EAAW,cAAgB,EAAE,IAAIE,EAAW,cAAgB,EAAE,IAAID,EAAQ,WAAa,EAAE,GAGzG,SAAA,CAAAgB,EAAAA,IAAC,SAAA,CACC,aAAW,IACX,UAAW,8BACX,SAAAjB,EACA,QAAS+c,EAET,SAAA9b,EAAAA,IAAC,MAAA,CACC,UAAW,mBACX,MAAM,KACN,OAAO,IACP,QAAQ,WACR,KAAK,OACL,MAAM,6BAEN,SAAAA,EAAAA,IAAC,OAAA,CAAK,EAAE,qDAAA,CAAsD,CAAA,CAAA,CAChE,CAAA,EAEFA,EAAAA,IAAC,QAAA,CACC,GAAIxB,EACJ,KAAK,OACL,UAAW,qBACX,SAAAO,EACA,SAAUE,EACV,SAAQ,GACR,MAAAE,EACA,OAAQ6c,EACR,QAASnF,CAAA,CAAA,EAEX7W,EAAAA,IAAC,SAAA,CACC,aAAW,IACX,UAAW,8BACX,SAAAjB,EACA,QAASgd,EAET,SAAA/b,EAAAA,IAAC,MAAA,CACC,UAAW,mBACX,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OACL,MAAM,6BAEN,SAAAA,EAAAA,IAAC,OAAA,CACC,EAAE;AAAA,mHAAA,CAAA,CAEJ,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAGN,EC3GA,SAAwBkc,GAAO,CAAE,OAAAC,EAAS,CAAA,GAAM,CAC9C,SAASC,GAAW,CACdD,EAAO,QAAQA,EAAO,OAAA,CAC5B,CAEA,OACEpb,EAAAA,KAAC,MAAA,CACC,UAAW,0BAA0Bob,EAAO,KAAOA,EAAO,KAAO,EAAE,GACnE,KAAK,SACL,YAAU,SAEV,SAAA,CAAAnc,EAAAA,IAAC,MAAA,CAAI,UAAU,oBAAqB,SAAAmc,EAAO,KAAK,EAChDnc,EAAAA,IAAC,MAAA,CAAI,UAAU,sBACb,SAAAA,EAAAA,IAAC,KAAE,UAAU,sBAAsB,QAASoc,CAAA,CAAU,CAAA,CACxD,CAAA,CAAA,CAAA,CAGN,CChBA,SAAwBC,GAAQ,CAAE,KAAAtQ,EAAO,CAAA,GAAM,CAC7C,OACE/L,EAAAA,IAAC,MAAA,CAAI,UAAU,uBACZ,WAAK,IAAKmc,GACTnc,EAAAA,IAACkc,GAAA,CAAuB,OAAAC,CAAA,EAAXA,EAAO,EAAoB,CACzC,EACH,CAEJ,CCLA,SAAwBG,GAAM,CAC5B,MAAAxd,EAAQ,GACR,QAAAqW,EAAU,CAAC,SAAU,IAAI,EACzB,OAAAoH,EACA,SAAAjc,EACA,OAAAkc,EACA,UAAAC,EACA,SAAAzZ,CACF,EAAG,CACD,MAAM0F,GAAKnK,aAAWL,CAAI,GAAKiK,EAAA,GAAiB,SAAS,MAAM,EACzDuU,EAAQ9c,EAAAA,OAAO,IAAI,EAEzBC,EAAAA,UAAU,IAAM,CACd6c,EAAM,SAAS,MAAA,CACjB,EAAG,CAAA,CAAE,EAEL,SAASxS,EAAQpJ,EAAI,CACnB,OAAQA,EAAG,KAAA,CACT,IAAK,QAAS,CACZ,MAAMmZ,EAAOnZ,EAAG,OAAO,QACvB,GAAImZ,IAAS,YAAcA,IAAS,SAAU,OAC9CwC,GAAaA,EAAU,CAAE,MAAO3b,CAAA,CAAI,EACpC,KACF,CACA,IAAK,SACHkC,GAAYA,EAAS,CAAE,MAAOlC,CAAA,CAAI,EAClC,KAAA,CAEN,CAEA,SAAS6b,EAAQ7b,EAAI2H,EAAQ,CAC3B,MAAMmU,EAAO,CAAE,MAAO9b,EAAI,OAAA2H,CAAA,EACtBA,IAAW,SACbzF,GAAYA,EAAS4Z,CAAI,EAEzBH,GAAaA,EAAUG,CAAI,CAE/B,CAEA,OACE5c,EAAAA,IAAC,MAAA,CACC,UAAU,qBACV,IAAK0c,EACL,SAAU,EACV,UAAWxS,EAEX,SAAAnJ,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,CAAAwb,IAEGzd,EACFkB,EAAAA,IAAC,OAAI,UAAU,sBAAuB,WAAM,EAC1C,MAEJA,MAAC,OAAK,SAAAM,EAAS,EAEdkc,GAEGrH,GACEnV,EAAAA,IAAC,OAAI,UAAU,uBACZ,SAAAmV,EAAQ,IAAK1M,GACZzI,MAAC,MAAA,CAAiB,UAAU,sBAC1B,SAAAA,EAAAA,IAACC,EAAA,CACC,KAAM,SAASwI,IAAW,KAAO,UAAY,WAAW,GACxD,QAAU3H,GAAO6b,EAAQ7b,EAAI2H,CAAM,EAElC,WAAEA,CAAM,CAAA,CAAA,CACX,EANQA,CAOV,CACD,CAAA,CACH,CAAA,CAAA,CAER,CAAA,CAAA,CAGN,CC1EA,SAASoU,GAAQ,CAAE,SAAAvc,CAAA,EAAYwc,EAAQ,CACrC,KAAM,CAACJ,EAAOK,CAAQ,EAAIte,EAAAA,SAAS,IAAI,EACjC,CAACue,EAASC,CAAU,EAAIxe,EAAAA,SAAS,CAAA,CAAE,EAEzCye,OAAAA,EAAAA,oBACEJ,EACA,KAAO,CACL,UAAYK,GAAQ,CAClB,MAAMC,EAAW,CAAE,GAAGD,CAAA,EACtB,OAAAJ,EAASK,CAAQ,EACV,IAAI,QAAQ,CAAChN,EAAKiN,IAAQ,CAC/BD,EAAS,QAAWlW,GAAM,CACxB6V,EAAS,IAAI,EACb3M,EAAIlJ,CAAC,CACP,EACAkW,EAAS,OAAUlW,GAAM,CACvB6V,EAAS,IAAI,EACbM,EAAInW,CAAC,CACP,CACF,CAAC,CACH,EACA,WAAaiW,GAAQ,CACnBA,EAAM,CAAE,GAAGA,CAAA,EACXA,EAAI,GAAKA,EAAI,IAAMze,EAAAA,IAAA,EACnBye,EAAI,OAAS,IACXF,EAAYrE,GAASA,EAAK,OAAQjY,GAAMA,EAAE,KAAOwc,EAAI,EAAE,CAAC,EAEtDA,EAAI,QAAU,IAChB,WAAWA,EAAI,OAAQA,EAAI,QAAU,IAAI,EAE3CF,EAAYrE,GAAS,CAAC,GAAGA,EAAMuE,CAAG,CAAC,CACrC,CAAA,GAEF,CAAA,CAAC,EAIDpc,EAAAA,KAAAuB,WAAA,CACG,SAAA,CAAAhC,EACAoc,GACC1c,EAAAA,IAACsc,GAAA,CACC,MAAOI,EAAM,MACb,QAASA,EAAM,QACf,UAAWA,EAAM,QACjB,SAAUA,EAAM,OAEf,SAAAA,EAAM,OAAA,CAAA,EAGX1c,EAAAA,IAACqc,GAAA,CAAQ,KAAMW,CAAA,CAAS,CAAA,EAC1B,CAEJ,CAEA,MAAMM,GAA0BC,EAAAA,WAAWV,EAAO,ECxDlD,SAAwBlH,GAAUzQ,EAAO,CACvC,GAAI,CAAE,SAAA5E,GAAa4E,EACfsY,EAAM5d,EAAAA,OAAA,EAEV,MAAMuL,EAAI1K,EAAAA,QAAQ,KACT,CACL,WAAa0c,GAAQK,EAAI,QAAQ,WAAWL,CAAG,EAC/C,UAAYA,GAAQK,EAAI,QAAQ,UAAUL,CAAG,CAAA,GAE9C,CAAA,CAAE,EAEL,OACEnd,EAAAA,IAAC/B,GAAQ,SAAR,CAAiB,MAAOkN,EACvB,SAAAnL,EAAAA,IAAC6c,GAAA,CAAQ,IAAKW,EAAM,SAAAld,CAAA,CAAS,CAAA,CAC/B,CAEJ,CCfA,SAAwBmd,GAAM,CAC5B,MAAAxc,EAAQ,GACR,SAAAyD,EAAW,GACX,MAAA1F,EAAQ,GACR,KAAAkB,EAAO,GACP,SAAAwd,EAAW,GACX,GAAArf,EACA,SAAAiC,EACA,MAAAyC,EAAQ,EACV,EAAG,CACD,MAAMvE,EAAUiC,UAAQ,IAAOpC,IAAO,OAAYK,EAAAA,MAAQL,EAAK,CAACA,CAAE,CAAC,EAC7D+C,EAAQ,CAAC,GAAI2B,GAAS,CAAE,MAAAA,EAAM,EAEpC,OACE/C,EAAAA,IAAC7B,GAAQ,SAAR,CAAiB,MAAOK,EACvB,SAAAuC,EAAAA,KAAC,MAAA,CACC,MAAAK,EACA,UAAW,yBAAyBsD,CAAQ,IAAI1F,EAAQ,WAAa,EAAE,IAAI0e,EAAW,cAAgB,EAAE,GAAG,KAAA,EAE1G,SAAA,CAAAzc,IACCzC,EACIwB,EAAAA,IAAC,QAAA,CAAM,UAAU,qBAAqB,QAASxB,EAAU,SAAAyC,EAAM,EAC/DjB,EAAAA,IAAC,MAAA,CAAI,UAAU,qBAAsB,SAAAiB,CAAA,CAAM,SAEhD,MAAA,CAAI,UAAW,iCAAiCf,CAAI,GAClD,SAAAI,CAAA,CACH,CAAA,CAAA,CAAA,EAEJ,CAEJ,CC/BA,MAAMqd,GAAW,CAAC,CAChB,MAAO9D,EAAe,GACtB,KAAA3Z,EAAO,GACP,KAAAE,EAAO,GACP,SAAArB,EAAW,GACX,WAAA6e,EAAa,GACb,QAAArd,EACA,MAAAzB,EAAQ,GACR,IAAAqB,EAAM,GACN,KAAAE,EAAO,GACP,WAAAwd,EAAa,GACb,SAAAvd,EACA,OAAAwd,EACA,SAAA5e,CACF,IAAM,CACJ,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBwa,CAAY,EAEhDkE,EAAUtd,EAAAA,QAAQ,KACdtB,EAAQ,UAAY,KAAOe,EAAO,IAAMA,EAAO,IACtD,CAACf,EAAOe,CAAI,CAAC,EAEVW,EAActB,EAAAA,YACjBuB,GAAO,CACN,IAAI0K,EAAO,CAACrM,EACRoB,KAAiBO,CAAE,EAClBA,EAAG,mBACN1B,EAASoM,CAAI,EACbtM,GAAYA,EAAS,CAAE,MAAOsM,CAAA,CAAM,EAExC,EACA,CAACrM,EAAOoB,EAASrB,CAAQ,CAAA,EAG3B,OAAIC,GAAS2e,EAET9d,EAAAA,IAACC,EAAA,CACC,MAAAnB,EACA,KAAOK,GAAS0e,GAAexd,EAC/B,IAAAF,EACA,KAAM4d,EACN,KAAO5e,GAASye,GAAexd,EAC/B,QAASS,EACT,SAAA9B,EAEC,SAAAkN,EAAAA,QAAQ6R,EAAQ,CAAE,MAAA3e,CAAA,CAAO,CAAA,CAAA,EAGrBmB,EAEPN,EAAAA,IAACC,EAAA,CACC,MAAAnB,EACA,KAAOK,GAAS0e,GAAexd,EAC/B,IAAAF,EACA,KAAM4d,EACN,KAAO5e,GAASye,GAAexd,EAC/B,QAASS,EACT,SAAA9B,EAEC,SAAAuB,CAAA,CAAA,EAKHN,EAAAA,IAACC,EAAA,CACC,MAAAnB,EACA,KAAOK,GAAS0e,GAAexd,EAC/B,IAAAF,EACA,KAAM4d,EACN,KAAO5e,GAASye,GAAexd,EAC/B,QAASS,EACT,SAAA9B,CAAA,CAAA,CAIR,ECjEMif,GAAW,IAAI,KAAK,EAAG,EAAG,EAAG,EAAG,CAAC,EAEvC,SAAwBC,GAAW,CACjC,MAAOvT,EAAgBsT,GACvB,GAAA3f,EACA,MAAAS,EAAQ,GACR,IAAAqB,EAAM,GACN,SAAApB,EAAW,GACX,MAAAC,EAAQ,GACR,OAAAqX,EAAS,GACT,SAAAnX,EACA,SAAAsG,CACF,EAAG,CACD,GAAI,CAACrG,EAAOC,CAAQ,EAAIC,EAAAA,gBAAgBqL,CAAa,EAErD,KAAM,CAAE,SAAU6L,EAAgB,QAAA/E,CAAA,GAChCjT,EAAAA,WAAWL,CAAI,GAAKiK,EAAA,GACpB,OAAA,EACI+V,EAAM3H,EAAe,aAAe,GAEpC4H,EAAO,GACPC,EAAO,GAEPC,EAAa5d,EAAAA,QAAQ,IAAM,CAC/B,MAAMmH,EAAIyO,GAAU7E,GAAS,WAC7B,OAAO,OAAO5J,GAAM,WAAaA,EAAI8J,EAAAA,aAAa9J,EAAG2O,CAAc,CACrE,EAAG,CAACF,EAAQ7E,EAAS+E,CAAc,CAAC,EAE9B+H,EAAY7d,EAAAA,QAAQ,IACjB4d,EAAW,IAAI,KAAK,EAAG,EAAG,EAAG,CAAC,CAAC,EAAE,QAAQ,IAAI,GAAK,GACxD,CAACA,CAAU,CAAC,EAETE,EAAa,CAACrX,EAAGoX,KACbpX,EAAI,IAAMoX,EAAY,IAAIpX,CAAC,GAAK,GAAGA,CAAC,IAAI,MAAM,EAAE,EAGpDsX,EAAWtX,GACRqX,EAAWrX,EAAG,EAAI,EAGrBuX,EAAavX,GACV,GAAGA,CAAC,GAAG,QAAQ,SAAU,EAAE,GAAK,EAEnCwX,EAAWxX,GACXgX,IACFhX,EAAIA,EAAI,GACJA,IAAM,GAAU,KAEfqX,EAAWrX,EAAGoX,CAAS,EAG1BK,EAASpf,EAAAA,YAAY,CAAC2H,EAAGc,KAC7Bd,EAAIuX,EAAUvX,CAAC,EACR,KAAK,IAAIA,EAAGc,CAAG,GACrB,CAAA,CAAE,EAEC,CAACrC,EAAOC,CAAQ,EAAInH,EAAAA,SAAS,IAAI,EAEjCmgB,EAAYzf,GAAS6e,GAErBvW,EAAIkX,EAAOC,EAAU,SAAA,EAAYT,CAAI,EACrCU,EAAIF,EAAOC,EAAU,WAAA,EAAcR,CAAI,EAEvCU,EAAKrX,EAAI,GAETsX,EAAQL,EAAQjX,CAAC,EACjBuX,EAAQR,EAAQK,CAAC,EACjBI,EAAYxe,EAAAA,QAChB,IAAM4d,EAAW,IAAI,KAAK,EAAG,EAAG,EAAG5W,EAAGoX,CAAC,CAAC,EACxC,CAACpX,EAAGoX,EAAGR,CAAU,CAAA,EAGba,EAAQ3f,EAAAA,YAAY,IAAM,CAC9BqG,EAAS,EAAI,CACf,EAAG,CAAA,CAAE,EAECuZ,EAAW5f,EAAAA,YAAY,IAAM,CACjC,MAAMiM,EAAO,IAAI,KAAKoT,CAAS,EAC/BpT,EAAK,SAASA,EAAK,SAAA,GAAcsT,EAAK,IAAM,GAAG,EAC/C1f,EAASoM,CAAI,EACTtM,GAAUA,EAAS,CAAE,MAAOsM,EAAM,CACxC,EAAG,CAACoT,EAAWE,EAAI5f,CAAQ,CAAC,EAEtBkgB,EAAW7f,EAAAA,YACf,CAAC,CAAE,MAAO2H,KAAQ,CAChB,GAAI0X,EAAU,SAAA,IAAe1X,EAAG,OAEhC,MAAMsE,EAAO,IAAI,KAAKoT,CAAS,EAC/BpT,EAAK,SAAStE,CAAC,EACf9H,EAASoM,CAAI,EACTtM,GAAUA,EAAS,CAAE,MAAOsM,EAAM,CACxC,EACA,CAACoT,EAAW1f,CAAQ,CAAA,EAGhBmgB,EAAa9f,EAAAA,YACjB,CAAC,CAAE,MAAO2H,KAAQ,CAChB,GAAI0X,EAAU,WAAA,IAAiB1X,EAAG,OAElC,MAAMsE,EAAO,IAAI,KAAKoT,CAAS,EAC/BpT,EAAK,WAAWtE,CAAC,EACjB9H,EAASoM,CAAI,EACTtM,GAAUA,EAAS,CAAE,MAAOsM,EAAM,CACxC,EACA,CAACoT,EAAW1f,CAAQ,CAAA,EAGhBogB,EAAU/f,EAAAA,YACb2H,IACCA,EAAIyX,EAAOzX,EAAGiX,CAAI,EACdD,IACFhX,EAAIA,EAAI,EACJA,IAAM,KAAIA,EAAI,GACd4X,IAAI5X,GAAK,KAERA,GAET,CAACyX,EAAQT,EAAKY,CAAE,CAAA,EAGZxJ,EAAW/V,EAAAA,YAAY,IAAM,CACjCqG,EAAS,IAAI,CACf,EAAG,CAAA,CAAE,EAEL,OACE7E,EAAAA,KAAC,MAAA,CACC,UAAW,2BAA2B/B,EAAQ,qBAAuB,EAAE,IAAID,EAAW,wBAA0B,EAAE,GAClH,QAASA,EAAW,OAAYmgB,EAChC,MAAO,CAAE,OAAQngB,EAAW,UAAY,SAAA,EAExC,SAAA,CAAAiB,EAAAA,IAACwQ,GAAA,CACC,GAAAnS,EACA,IAAA8B,EACA,MAAArB,EACA,MAAOmgB,EACP,SAAU,GACV,SAAAlgB,EACA,MAAAC,EACA,KAAK,YACL,WAAY,CACV,OAAQ,UACR,MAAO,OACP,aACE,mEAAA,CACJ,CAAA,EAGD2G,GAAS,CAAC5G,GACTiB,EAAAA,IAACgF,GAAS,SAAUsQ,EAAW,GAAGa,GAAe3Q,CAAQ,EACvD,SAAAzE,OAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,qBACb,SAAA,CAAAf,EAAAA,IAAC,QAAA,CACC,UAAU,qBACV,MAAO+e,EACP,SAAWje,GAAO,CAChB,MAAMuX,EAAMiH,EAAQxe,EAAG,OAAO,KAAK,EACnCse,EAAS,CAAE,MAAO/G,EAAK,CACzB,CAAA,CAAA,EAEFrY,EAAAA,IAAC,MAAA,CAAI,UAAU,yBAAyB,SAAA,IAAC,EACzCA,EAAAA,IAAC,QAAA,CACC,UAAU,qBACV,MAAOgf,EACP,SAAWle,GAAO,CAChB,MAAMuX,EAAMsG,EAAO7d,EAAG,OAAO,MAAOsd,CAAI,EACxCiB,EAAW,CAAE,MAAOhH,EAAK,CAC3B,CAAA,CAAA,EAED6F,GACCle,EAAAA,IAAC2d,GAAA,CACC,MAAOmB,EACP,QAASK,EACT,OAAQ,IAAMnf,EAAAA,IAAC,OAAA,CAAK,SAAA,IAAA,CAAE,EAEtB,SAAAA,EAAAA,IAAC,QAAK,SAAA,IAAA,CAAE,CAAA,CAAA,CACV,EAEJ,EACAA,EAAAA,IAACyd,GAAA,CAAM,MAAM,QACX,SAAAzd,EAAAA,IAACob,GAAA,CACC,MAAO7E,EAAe,MACtB,MAAO9O,EACP,MAAM,QACN,SAAU2X,EACV,IAAKjB,CAAA,CAAA,EAET,EACAne,EAAAA,IAACyd,GAAA,CAAM,MAAM,QACX,SAAAzd,EAAAA,IAACob,GAAA,CACC,MAAO7E,EAAe,QACtB,MAAOsI,EACP,MAAM,QACN,SAAUQ,EACV,IAAKjB,CAAA,CAAA,CACP,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAAA,CAIR,CCpNA,SAAwBmB,GAAU,CAAE,SAAAjf,GAAY,CAC9C,OACEN,EAAAA,IAAC,OAAI,UAAU,qBACb,eAAC,MAAA,CAAI,UAAU,sBAAuB,SAAAM,CAAA,CAAS,CAAA,CACjD,CAEJ,CCJA,SAAwBkf,GAAS,CAAE,SAAA9a,EAAW,QAAS,SAAApE,EAAU,SAAA0C,GAAY,CAC3E,MAAMyc,EAAS7f,EAAAA,OAAO,IAAI,EAE1BC,OAAAA,EAAAA,UAAU,IACDuE,EAAAA,aAAaqb,EAAO,QAASzc,CAAQ,EAAE,QAC7C,CAAA,CAAE,EAGHhD,MAAC,OAAI,IAAKyf,EAAQ,UAAW,gCAAgC/a,CAAQ,GAClE,SAAApE,CAAA,CACH,CAEJ,CCbA,MAAMof,GAAa,UACbC,GAAe,UAGfC,GAAiB,IAEvB,SAASC,GAAYrF,EAAM,CAE1B,GADAA,EAAOA,GAAM,QAAU,GACnB,CAACA,EAAM,MAAO,GAClB,MAAM5E,EAAQ4E,EAAK,MAAM,KAAK,EAC9B,OAAQ5E,EAAM,CAAC,EAAE,CAAC,GAAKA,EAAM,CAAC,IAAI,CAAC,GAAK,KAAK,YAAA,EAAc,MAAM,EAAG,CAAC,CACtE,CAEA,SAASkK,GAAiB1Y,EAAK,CAE9B,IAAIK,EAAIL,EAAI,QAAQ,IAAK,EAAE,EAE3B,GADIK,EAAE,SAAW,IAAGA,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAAE,CAAC,GAC1DA,EAAE,SAAW,EAAG,OAAOkY,GAC3B,MAAMrY,EAAI,SAASG,EAAE,MAAM,EAAG,CAAC,EAAG,EAAE,EAAI,IAClCF,EAAI,SAASE,EAAE,MAAM,EAAG,CAAC,EAAG,EAAE,EAAI,IAClCD,EAAI,SAASC,EAAE,MAAM,EAAG,CAAC,EAAG,EAAE,EAAI,IAExC,MADkB,MAAQH,EAAI,KAAQC,EAAI,KAAQC,EAC/B,GAAMmY,GAAe,SACzC,CAEA,SAASI,GAAO7a,EAAO,CACtB,KAAM,CAAE,MAAA/F,EAAO,KAAA6gB,EAAO,GAAI,MAAAC,GAAU/a,EAE9BoP,EAAe1U,EAAAA,OAAO,IAAI,EAC1B,CAACsgB,EAAgBC,CAAiB,EAAI1hB,EAAAA,SAAS,IAAI,EAEnD2hB,EAAQ3f,EAAAA,QAAQ,IAChBtB,EACE,MAAM,QAAQA,CAAK,EAAIA,EAAQ,CAACA,CAAK,EADzB,CAAA,EAEjB,CAACA,CAAK,CAAC,EAGJkhB,EAAa5f,EAAAA,QAAQ,IAAM,CAChC,GAAIyf,GAAkB,MAAQA,GAAkB,EAC/C,OAAO,KAER,MAAM/Y,EAAI,GAAK+Y,EAAiBF,EAAO,GAAKJ,GAC5C,OAAO,KAAK,IAAI,EAAG,KAAK,MAAMzY,CAAC,CAAC,CACjC,EAAG,CAAC+Y,EAAgBF,CAAI,CAAC,EAEnBM,EAAe7f,EAAAA,QAAQ,IAAM,CAClC,MAAM8f,EAAMN,GAAS,KAAO,KAAK,IAAIG,EAAM,OAAQH,CAAK,EAAIG,EAAM,OAClE,OAAIC,GAAc,KACV,KAAK,IAAIE,EAAKF,CAAU,EAEzBE,CACR,EAAG,CAACH,EAAOH,EAAOI,CAAU,CAAC,EAEvBG,EAAe/f,EAAAA,QAAQ,IAAM2f,EAAM,MAAM,EAAGE,CAAY,EAAG,CAACF,EAAOE,CAAY,CAAC,EAChFG,EAAgBhgB,EAAAA,QAAQ,IAAM,KAAK,IAAI,EAAG2f,EAAM,OAASE,CAAY,EAAG,CAACF,EAAOE,CAAY,CAAC,EAEnGzgB,EAAAA,UAAU,IAAM,CACf,MAAMsO,EAAKmG,EAAa,QACxB,GAAI,CAACnG,EAAI,OACT,MAAMuS,EAAK,IAAI,eAAeC,GAAW,CACxC,MAAMC,EAAQD,EAAQ,CAAC,EACnBC,GAAOT,EAAkBS,EAAM,YAAY,KAAK,CACrD,CAAC,EACD,OAAAF,EAAG,QAAQvS,CAAE,EACN,IAAMuS,EAAG,WAAA,CACjB,EAAG,CAAA,CAAE,EAEL,MAAMG,EAAW,KAAK,MAAMb,EAAO,EAAG,EAChCc,EAAkB,CACvB,MAAOd,EAAO,KACd,OAAQA,EAAO,KACf,SAAUA,EAAO,KACjB,UAAWA,EAAO,KAClB,SAAUa,EAAW,IAAA,EAGtB,SAASE,EAAmBC,EAAM/a,EAAO,CACxC,MAAMgb,EAAShb,IAAU,EAAI,IAAM,GAAG+Z,EAAO,IAAK,KAC5CkB,EAAKF,EAAK,OAAS,cAAgBA,EAAK,OAAStB,GACjD5Z,EAAQkb,EAAK,OAChB,cACAlB,GAAiBkB,EAAK,OAAStB,EAAU,EAC5C,MAAO,CAAE,WAAYuB,EAAQ,gBAAiBC,EAAI,MAAApb,CAAA,CACnD,CAEA,aACE,MAAA,CAAI,UAAU,6BAA6B,IAAKwO,EAC/C,SAAAkM,EAAa,OAAS,GACtBxgB,EAAAA,IAAC,OAAI,UAAU,8BACb,WAAa,IAAI,CAACghB,EAAM/a,IACxBlF,EAAAA,KAAC,MAAA,CAEA,UAAW,CACV,YACA,iBACAkF,IAAUua,EAAa,OAAS,GAAKC,EAAgB,EAClD,qBACA,GACH,aAAA,EACC,OAAO,OAAO,EAAE,KAAK,GAAG,EAC1B,MAAO,CAAE,GAAGK,EAAiB,GAAGC,EAAmBC,EAAM/a,CAAK,CAAA,EAE7D,SAAA,CAAA+a,EAAK,aACJ,MAAA,CAAI,IAAKA,EAAK,OAAQ,IAAI,GAAG,QAAQ,MAAA,CAAO,EAC1CnB,GAAYmB,EAAK,IAAI,EACxBhhB,EAAAA,IAAC,OAAA,CAAK,UAAU,cAAe,SAAA6f,GAAYmB,EAAK,IAAI,CAAA,CAAE,EACnD,KACH/a,IAAUua,EAAa,OAAS,GAAKC,EAAgB,GACrD1f,EAAAA,KAAC,OAAA,CAAK,UAAU,uCAAuC,SAAA,CAAA,IACpD0f,CAAA,CAAA,CACH,CAAA,CAAA,EAnBIO,EAAK,EAAA,CAsBX,EACF,CAAA,CAEF,CAEF,CCxHA,SAAwBG,IAAS,CAC/B,OAAOnhB,EAAAA,IAAAsC,EAAAA,SAAA,EAAE,CACX,CCAA,SAAwB6e,GAAOjc,EAAO,CACpC,KAAM,CAAE,MAAAkc,EAAQ,GAAM,SAAA9gB,CAAA,EAAa4E,EAEnC,aACGnH,GAAM,SAAN,CAAe,MAAM,WACpB,SAAAgD,EAAAA,KAAAuB,WAAA,CACG,SAAA,CAAAhC,GAAYN,EAAAA,IAAC,MAAA,CAAI,UAAU,6BAA8B,SAAAM,EAAS,EAElE8gB,GACCrgB,EAAAA,KAAAuB,WAAA,CACE,SAAA,CAAAtC,EAAAA,IAAC,OAAA,CACC,IAAI,aACJ,KAAK,uBACL,YAAY,MAAA,CAAA,QAEbqhB,GAAA,EAAW,EACZrhB,EAAAA,IAAC,OAAA,CACC,IAAI,aACJ,KAAK,6CAAA,CAAA,CACP,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CACF,CAEJ,CC3BA,SAAwBmhB,IAAS,CAC/B,OAAOnhB,EAAAA,IAAAsC,EAAAA,SAAA,EAAE,CACX,CCAA,SAAwB6e,GAAOjc,EAAO,CACpC,KAAM,CAAE,MAAAkc,EAAQ,GAAM,SAAA9gB,CAAA,EAAa4E,EAEnC,aACGnH,GAAM,SAAN,CAAe,MAAM,SACpB,SAAAgD,EAAAA,KAAAuB,WAAA,CACG,SAAA,CAAAhC,GAAYA,GACXN,MAAC,MAAA,CAAI,UAAU,2BAA4B,SAAAM,EAAS,EAGrD8gB,GACCrgB,EAAAA,KAAAuB,WAAA,CACE,SAAA,CAAAtC,EAAAA,IAAC,OAAA,CACC,IAAI,aACJ,KAAK,uBACL,YAAY,MAAA,CAAA,QAEbshB,GAAA,EAAa,EACdthB,EAAAA,IAAC,OAAA,CACC,IAAI,aACJ,KAAK,6CAAA,CAAA,CACP,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CACF,CAEJ,CC3BA,SAAwBmhB,GAAOjc,EAAO,CACpC,KAAM,CAAE,MAAAkc,EAAQ,GAAM,SAAA9gB,CAAA,EAAa4E,EAEnC,aACGnH,GAAM,SAAN,CAAe,MAAM,cACpB,SAAAgD,EAAAA,KAAAuB,WAAA,CACG,SAAA,CAAAhC,GAAYA,GACXN,MAAC,MAAA,CAAI,UAAU,gCAAiC,SAAAM,EAAS,EAG1D8gB,GACCrgB,EAAAA,KAAAuB,WAAA,CACE,SAAA,CAAAtC,EAAAA,IAAC,OAAA,CACC,IAAI,aACJ,KAAK,uBACL,YAAY,MAAA,CAAA,QAEbshB,GAAA,EAAa,EACdthB,EAAAA,IAAC,OAAA,CACC,IAAI,aACJ,KAAK,6CAAA,CAAA,CACP,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CACF,CAEJ,CC5BO,SAASuhB,GAAexhB,EAAM,CACnC,MAAM1B,EAAKK,EAAAA,IAAG,EACdqB,EAAK,aAAa,sBAAuB1B,CAAE,CAC7C,CCgDAmjB,EAAAA,OAAOnf,KAAG"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/context.js","../src/components/helpers/getInputId.js","../src/components/TextArea.jsx","../src/components/Button.jsx","../src/components/Checkbox.jsx","../src/components/CheckboxGroup.jsx","../src/components/Portal.jsx","../src/components/Popup.jsx","../src/components/helpers/InlineDropdown.jsx","../src/components/Dropdown.jsx","../src/components/ColorSelect.jsx","../src/components/helpers/sliderMove.js","../src/components/helpers/colorTransformator.js","../src/components/helpers/colorValidation.js","../src/components/helpers/locale.js","../src/components/ColorBoard.jsx","../src/components/ColorPicker.jsx","../src/components/helpers/listnav.js","../src/components/helpers/SuggestDropdown.jsx","../src/components/Combo.jsx","../src/components/Text.jsx","../src/components/calendar/Header.jsx","../src/components/calendar/Button.jsx","../src/components/calendar/Month.jsx","../src/components/calendar/Year.jsx","../src/components/calendar/Duodecade.jsx","../src/components/calendar/helpers.js","../src/components/calendar/Panel.jsx","../src/Locale.jsx","../src/components/Calendar.jsx","../src/components/helpers/dropdown.js","../src/components/DatePicker.jsx","../src/components/RangeCalendar.jsx","../src/components/DateRangePicker.jsx","../src/components/Fullscreen.jsx","../src/components/Icon.jsx","../src/components/MultiCombo.jsx","../src/components/Pager.jsx","../src/components/RadioButton.jsx","../src/components/RadioButtonGroup.jsx","../src/components/RichSelect.jsx","../src/components/Segmented.jsx","../src/components/Select.jsx","../src/components/Slider.jsx","../src/components/Switch.jsx","../src/components/Tabs.jsx","../src/components/Counter.jsx","../src/components/Notice.jsx","../src/components/Notices.jsx","../src/components/Modal.jsx","../src/components/Globals.jsx","../src/Globals.jsx","../src/components/Field.jsx","../src/components/TwoState.jsx","../src/components/TimePicker.jsx","../src/components/ModalArea.jsx","../src/components/SideArea.jsx","../src/components/Avatar.jsx","../src/themes/FontRoboto.jsx","../src/themes/Material.jsx","../src/themes/FontOpenSans.jsx","../src/themes/Willow.jsx","../src/themes/WillowDark.jsx","../src/components/helpers/popup.js","../src/index.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport const theme = createContext('');\nexport const helpers = createContext({});\nexport const i18n = createContext(null);\nexport const fieldId = createContext(null);\n","import { useContext, useState } from 'react';\nimport { fieldId } from '../../context';\nimport { uid } from '@svar-ui/lib-dom';\n\nexport function useInputId(id) {\n const contextId = useContext(fieldId);\n\n const [inputId] = useState(() => id || contextId || uid());\n\n return inputId;\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\n\nimport './TextArea.css';\n\nexport default function TextArea({\n value: propValue = '',\n id,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n readonly = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(propValue);\n\n const handleInput = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n if (onChange) {\n onChange({ value: newValue, input: true });\n }\n },\n [onChange],\n );\n\n const ontextchange = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n if (onChange) {\n onChange({ value: newValue });\n }\n },\n [onChange],\n );\n\n const inputRef = useRef(null);\n useEffect(() => {\n const handler = ontextchange;\n const node = inputRef.current;\n node.addEventListener('change', handler);\n return () => {\n if (node) {\n node.removeEventListener('change', handler);\n }\n };\n }, [ontextchange]);\n\n return (\n <textarea\n className={'wx-3yFVAC' + ` wx-textarea ${error ? 'wx-error' : ''}`}\n id={inputId}\n disabled={disabled}\n placeholder={placeholder}\n readOnly={readonly}\n title={title}\n value={value}\n onInput={handleInput}\n ref={inputRef}\n />\n );\n}\n","import { useMemo } from 'react';\nimport './Button.css';\n\nexport default function Button({\n type = '',\n css = '',\n icon = '',\n disabled = false,\n title = '',\n text = '',\n children,\n onClick,\n}) {\n const buttonCss = useMemo(() => {\n let cssType = type\n ? type\n .split(' ')\n .filter((a) => a !== '')\n .map((x) => 'wx-' + x)\n .join(' ')\n : '';\n return css + (css ? ' ' : '') + cssType;\n }, [type, css]);\n\n const handleClick = (ev) => {\n onClick && onClick(ev);\n };\n\n return (\n <button\n title={title}\n className={`wx-2ZWgb4 wx-button ${buttonCss} ${icon && !children ? 'wx-icon' : ''}`}\n disabled={disabled}\n onClick={handleClick}\n >\n {icon && <i className={'wx-2ZWgb4 ' + icon}></i>}\n {children ? children : text || ' '}\n </button>\n );\n}\n","import { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Checkbox.css';\n\nexport default function Checkbox({\n id,\n label = '',\n inputValue = '',\n value: valueProp = false,\n onChange,\n disabled = false,\n style\n}) {\n\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(valueProp);\n\n const handlerChange = ({ target }) => {\n const newValue = target.checked;\n setValue(newValue);\n onChange && onChange({ value: newValue, inputValue });\n };\n\n return (\n <div style={style} className=\"wx-2IvefP wx-checkbox\">\n <input\n type=\"checkbox\"\n id={inputId}\n disabled={disabled}\n className=\"wx-2IvefP wx-check\"\n checked={value}\n value={inputValue}\n onChange={handlerChange}\n />\n <label htmlFor={inputId} className=\"wx-2IvefP wx-label\">\n <span className=\"wx-2IvefP wx-before\"></span>\n {label && <span className=\"wx-2IvefP wx-after\">{label}</span>}\n </label>\n </div>\n );\n}\n","import { useCallback } from 'react';\nimport Checkbox from './Checkbox.jsx';\nimport './CheckboxGroup.css';\nimport { fieldId } from \"../context\";\n\nexport default function CheckboxGroup({\n options = [],\n value = [],\n type = '',\n onChange,\n}) {\n // Handle both onchange and onChange props for compatibility\n const handleChange = useCallback(\n (obj) => {\n let newValue;\n if (obj.value) newValue = [...value, obj.inputValue];\n else newValue = value.filter((a) => a !== obj.inputValue);\n\n if (onChange) onChange({ value: newValue });\n },\n [value, onChange],\n );\n\n return (\n <fieldId.Provider value={null}>\n <div className={`wx-q8xwRD wx-checkboxgroup ${type && `wx-${type}`}`}>\n {options.map((option) => (\n <div key={option.id} className=\"wx-q8xwRD wx-item\">\n <Checkbox\n label={option.label}\n inputValue={option.id}\n value={value.includes(option.id)}\n onChange={handleChange}\n />\n </div>\n ))}\n </div>\n </fieldId.Provider>\n );\n}\n","import { useContext, useRef, useEffect, useState } from 'react';\nimport { theme as themeContext } from '../context.js';\nimport { env } from '@svar-ui/lib-dom';\nimport { createPortal } from 'react-dom';\n\nfunction Portal({ theme: initialTheme = '', target, children }) {\n const portalRef = useRef(null);\n const componentRef = useRef(null);\n const [targetRef, setTargetRef] = useState(null);\n\n if (!portalRef.current) {\n portalRef.current = document.createElement('div');\n }\n\n const contextTheme = useContext(themeContext);\n\n useEffect(() => {\n setTargetRef(\n target ||\n getParentRoot(componentRef.current) ||\n env.getTopNode(componentRef.current),\n );\n }, [componentRef.current]);\n\n return (\n <>\n <span ref={componentRef} style={{ display: 'none' }} />\n {componentRef.current && targetRef\n ? createPortal(\n <div\n className={`wx-3ZWsT0 wx-${initialTheme || contextTheme}-theme`}\n >\n {children}\n </div>,\n targetRef,\n )\n : null}\n </>\n );\n}\n\nexport default Portal;\n\nfunction getParentRoot(p) {\n const root = env.getTopNode(p);\n while (p && p !== root && !p.getAttribute('data-wx-portal-root')) {\n p = p.parentNode;\n }\n return p;\n}\n","import { useState, useEffect, useRef, useCallback, useLayoutEffect } from 'react';\nimport { clickOutside, calculatePosition, getAbsParent } from '@svar-ui/lib-dom';\nimport './Popup.css';\n\nexport function Popup({\n left = 0,\n top = 0,\n at = 'bottom',\n parent = null,\n width = 'auto',\n css = '',\n onCancel,\n children,\n trackScroll = false,\n}) {\n const [x, setX] = useState(0);\n const [y, setY] = useState(0);\n const [w, setW] = useState('auto');\n const [visible, setVisible] = useState(false);\n\n const self = useRef(null);\n const portalRef = useRef(null);\n const onCancelRef = useRef(onCancel);\n\n useEffect(() => {\n onCancelRef.current = onCancel;\n }, [onCancel]);\n\n function getWidth(calcWidth) {\n if (parent && (width + '').indexOf('%') > -1) {\n return width.replace(/(\\d+)%/, (match, value) => {\n value = (value * parent.offsetWidth) / 100 + 'px';\n return width.replace(match, value);\n });\n }\n return width && width !== 'auto' ? width : calcWidth;\n }\n\n const updatePosition = useCallback(() => {\n if (!self.current) return;\n\n const result = calculatePosition(self.current, parent, at, left, top);\n if (result) {\n setX(result.x);\n setY(result.y);\n setW(getWidth(result.width));\n }\n }, [self, parent, at, left, top, width]);\n\n useLayoutEffect(() => {\n const onScroll = (e) => {\n if (onCancelRef.current && e.target !== portalRef.current && self.current && !self.current.contains(e.target))\n onCancelRef.current(e);\n };\n\n requestAnimationFrame(() => {\n updatePosition();\n setVisible(true);\n if (trackScroll && self.current) {\n portalRef.current = getAbsParent(self.current);\n if (portalRef.current)\n portalRef.current.addEventListener('scroll', onScroll, true);\n }\n });\n\n return () => {\n if (trackScroll && portalRef.current)\n portalRef.current.removeEventListener('scroll', onScroll, true);\n };\n }, []);\n\n useLayoutEffect(() => {\n updatePosition();\n }, [parent, at, left, top]);\n\n useEffect(() => {\n const down = (e) => {\n if (onCancelRef.current) {\n onCancelRef.current(e);\n }\n };\n if (self.current) {\n return clickOutside(self.current, down).destroy;\n }\n }, []);\n\n return (\n <div\n ref={self}\n className={['wx-37M6Fj', 'wx-popup', css].filter(Boolean).join(' ')}\n style={{\n position: 'absolute',\n visibility: visible ? 'visible' : 'hidden',\n top: y + 'px',\n left: x + 'px',\n width: w,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport default Popup;\n","import { useState, useEffect, useRef } from 'react';\nimport { clickOutside } from '@svar-ui/lib-dom';\nimport './InlineDropdown.css';\n\nfunction InlineDropdown({\n position: positionProp = 'bottom',\n align: alignProp = 'start',\n autoFit = true,\n onCancel = null,\n width = '100%',\n css = '',\n children,\n}) {\n const nodeRef = useRef(null);\n const [position, setPosition] = useState(positionProp);\n const [align, setAlign] = useState(alignProp);\n const onCancelRef = useRef(onCancel);\n\n useEffect(() => {\n onCancelRef.current = onCancel;\n }, [onCancel]);\n\n useEffect(() => {\n if (autoFit) {\n const node = nodeRef.current;\n if (node) {\n const nodeCoords = node.getBoundingClientRect();\n const bodyCoords = document.body.getBoundingClientRect();\n\n if (nodeCoords.right >= bodyCoords.right) {\n setAlign('end');\n }\n\n if (nodeCoords.bottom >= bodyCoords.bottom) {\n setPosition('top');\n }\n }\n }\n }, []);\n\n useEffect(() => {\n if (nodeRef.current) {\n const down = (e) => {\n onCancelRef.current && onCancelRef.current(e);\n };\n return clickOutside(nodeRef.current, down).destroy;\n }\n }, []);\n\n return (\n <div\n ref={nodeRef}\n className={[\n 'wx-dropdown',\n `wx-${position}-${align}`,\n css || '',\n 'wx-aaaVytZW',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{ width: width }}\n >\n {children}\n </div>\n );\n}\n\nexport default InlineDropdown;\n","import { useState, useEffect, useRef, useMemo, useLayoutEffect } from 'react';\nimport Portal from './Portal.jsx';\nimport Popup from './Popup.jsx';\nimport InlineDropdown from './helpers/InlineDropdown.jsx';\nimport './Dropdown.css';\n\nfunction Dropdown({\n position = 'bottom',\n align = 'start',\n autoFit = true,\n inline = false,\n onCancel,\n width = '100%',\n children,\n ...props\n}) {\n const [target, setTarget] = useState(undefined);\n const nodeRef = useRef(null);\n\n const at = useMemo(() => `${position}-${align}`, [position, align]);\n\n useLayoutEffect(() => {\n if (nodeRef.current) {\n setTarget(nodeRef.current.parentNode);\n }\n }, []);\n\n return (\n <>\n {target && (inline ? (\n <InlineDropdown\n onCancel={onCancel}\n position={position}\n align={align}\n autoFit={autoFit}\n width={width}\n {...props}\n >\n {children}\n </InlineDropdown>\n ) : (\n <Portal>\n <Popup parent={target} at={at} onCancel={onCancel} width={width} {...props}>\n {children}\n </Popup>\n </Portal>\n ))}\n <span ref={nodeRef} className=\"wx-portal-node wx-32GZ52\" />\n </>\n );\n}\n\nexport default Dropdown;\n","import { useState, useCallback } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport Dropdown from './Dropdown.jsx';\nimport './ColorSelect.css';\n\nconst defaultColors = [\n '#00a037',\n '#37a9ef',\n '#f5a623',\n '#ff4c3b',\n '#a0a0a0',\n '#000000',\n '#ffffff',\n];\n\nexport default function ColorSelect({\n colors = defaultColors,\n value = '',\n onChange,\n id,\n clear = false,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const [currentValue, setCurrentValue] = useState(value);\n const [popup, setPopup] = useState(false);\n\n const selectColor = useCallback(\n (ev, color) => {\n ev.stopPropagation();\n setCurrentValue(color);\n setPopup(false);\n onChange && onChange({ value: color });\n },\n [onChange],\n );\n\n const unselectColor = useCallback(\n (ev) => {\n ev.stopPropagation();\n setCurrentValue('');\n onChange && onChange({ value: '' });\n },\n [onChange],\n );\n\n const handlePopup = useCallback(() => {\n if (disabled) return false;\n setPopup(true);\n }, [disabled]);\n\n return (\n <div className=\"wx-121TgJ wx-colorselect\" onClick={handlePopup}>\n <input\n className={\n 'wx-121TgJ wx-input' +\n (error ? ' wx-error' : '') +\n (popup ? ' wx-focus' : '')\n }\n title={title}\n value={currentValue}\n readOnly\n id={inputId}\n placeholder={placeholder}\n disabled={disabled}\n />\n\n {clear && currentValue && !disabled && (\n <i className=\"wx-121TgJ wx-clear wxi-close\" onClick={unselectColor}></i>\n )}\n\n {currentValue ? (\n <div\n className=\"wx-121TgJ wx-color wx-selected\"\n style={{ backgroundColor: currentValue || '#00a037' }}\n ></div>\n ) : (\n <div className=\"wx-121TgJ wx-empty wx-selected\"></div>\n )}\n\n {popup && (\n <Dropdown onCancel={() => setPopup(false)} {...dropdown}>\n <div className=\"wx-121TgJ wx-colors\">\n <div\n className=\"wx-121TgJ wx-empty\"\n onClick={(ev) => selectColor(ev, '')}\n ></div>\n {colors.map((color, index) => (\n <div\n key={index}\n className=\"wx-121TgJ wx-color\"\n style={{ backgroundColor: color }}\n onClick={(ev) => selectColor(ev, color)}\n ></div>\n ))}\n </div>\n </Dropdown>\n )}\n </div>\n );\n}\n","export function sliderMove(node, config) {\n const slider = node.firstChild;\n const { moveBlockSlider, moveLineSlider } = config || {};\n\n function down(ev) {\n move(ev);\n\n slider.focus();\n\n window.addEventListener('mousemove', move);\n window.addEventListener('mouseup', up);\n }\n\n function move(ev) {\n let x, y, dx, dy;\n\n const coords = node.getBoundingClientRect();\n x = coords.left;\n y = coords.top;\n\n dx = ev.clientX - x;\n dy = ev.clientY - y;\n\n if (moveBlockSlider) config.moveBlockSlider(dx, dy);\n if (moveLineSlider) config.moveLineSlider(dx);\n }\n\n function up() {\n slider.blur();\n\n window.removeEventListener('mousemove', move);\n window.removeEventListener('mouseup', up);\n }\n\n node.addEventListener('mousedown', down);\n\n return {\n destroy() {\n node.removeEventListener('mousedown', down);\n },\n };\n}\n","const colorTransformator = {\n _toHex: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n ],\n toHex(number, length) {\n number = parseInt(number, 10);\n let str = '';\n while (number > 0) {\n str = this._toHex[number % 16] + str;\n number = Math.floor(number / 16);\n }\n while (str.length < length) str = `0${str}`;\n return str;\n },\n rgbToHex(rgb) {\n let arr = [];\n if (typeof rgb === 'string')\n rgb.replace(/[\\d+.]+/g, (v) => arr.push(parseFloat(v)));\n else if (Array.isArray(rgb)) arr = rgb;\n\n //transparent\n if (arr[3] === 0) return '';\n\n return arr\n .slice(0, 3)\n .map((n) => {\n return this.toHex(Math.floor(n), 2);\n })\n .join('');\n },\n hexToDec(hex) {\n return parseInt(hex, 16);\n },\n // only handles the six-digit hex color format\n hexToRgb(hex) {\n hex = hex.charAt(0) === '#' ? hex.slice(1) : hex;\n const rgbPairs = hex.match(/.{1,2}/g);\n\n let [r, g, b] = rgbPairs;\n\n r = this.hexToDec(r);\n g = this.hexToDec(g);\n b = this.hexToDec(b);\n\n return [r, g, b];\n },\n hsvToRgb(h, s, v) {\n let hi, f, p, q, t, r, g, b;\n hi = Math.floor(h / 60) % 6;\n f = h / 60 - hi;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n r = 0;\n g = 0;\n b = 0;\n switch (hi) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n default:\n break;\n }\n r = Math.floor(r * 255);\n g = Math.floor(g * 255);\n b = Math.floor(b * 255);\n\n return [r, g, b];\n },\n rgbToHsv(r, g, b) {\n let s, h, v;\n r /= 255;\n g /= 255;\n b /= 255;\n let min = Math.min(r, g, b);\n let max = Math.max(r, g, b);\n h = 0;\n s = max === 0 ? 0 : 1 - min / max;\n v = max;\n if (max === min) {\n h = 0;\n } else if (max === r && g >= b) {\n h = (60 * (g - b)) / (max - min) + 0;\n } else if (max === r && g < b) {\n h = (60 * (g - b)) / (max - min) + 360;\n } else if (max === g) {\n h = (60 * (b - r)) / (max - min) + 120;\n } else if (max === b) {\n h = (60 * (r - g)) / (max - min) + 240;\n }\n\n return [h, s, v];\n },\n hexToHvs(hex) {\n const rgb = this.hexToRgb(hex);\n return this.rgbToHsv(...rgb);\n },\n hvsToHex(h, v, s) {\n const rgb = this.hsvToRgb(h, v, s);\n return '#' + this.rgbToHex(rgb).toUpperCase();\n },\n};\n\nexport default colorTransformator;\n","const hexValidation = (str) => /^([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(str);\n\nexport function parseColor(value) {\n if (!value) return null;\n\n value = value.toString(16);\n\n if (value.charAt(0) === '#') value = value.slice(1);\n\n if (hexValidation(value)) {\n if (value.length === 3) {\n value = value\n .slice(0, 3)\n .split('')\n .reduce((a, b) => a + b + b, '');\n }\n return `#${value.toUpperCase()}`;\n }\n\n return null;\n}\n","import { locale } from '@svar-ui/lib-dom';\nimport { en } from '@svar-ui/core-locales';\n\nexport function defaultLocale() {\n return locale(en);\n}\n","import {\n useState,\n useEffect,\n useRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport Button from './Button.jsx';\nimport { sliderMove } from './helpers/sliderMove.js';\nimport colorTransformator from './helpers/colorTransformator.js';\nimport { parseColor } from './helpers/colorValidation.js';\nimport { i18n } from '../context.js';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './ColorBoard.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nconst BLOCK = 'Block';\nconst LINE = 'Line';\n\nfunction ColorBoard({\n value: valueProp = '#65D3B3',\n button = false,\n onChange,\n}) {\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const blockRef = useRef(null);\n const colorLineRef = useRef(null);\n\n const [blockTop, setBlockTop] = useState();\n const [blockLeft, setBlockLeft] = useState();\n const [hueColor, setHueColor] = useState();\n const [lineLeft, setLineLeft] = useState();\n\n const [value, setValue] = useWritableProp(valueProp);\n const [inputValue, setInputValue] = useState(valueProp); \n\n const moveBlockSliderRef = useRef(null);\n const moveLineSliderRef = useRef(null);\n\n const color = useMemo(() => parseColor(value) || '#65D3B3', [value]);\n const blockColor = useMemo(\n () => colorTransformator.hvsToHex(hueColor || 0, 1, 1),\n [hueColor],\n );\n\n const moveBlockSlider = useCallback(\n (dx, dy) => {\n const { width, height } = blockRef.current.getBoundingClientRect();\n\n if (dy < 0) dy = 0;\n else if (dy > height) dy = height;\n\n if (dx < 0) dx = 0;\n else if (dx > width) dx = width;\n\n setBlockTop(dy);\n setBlockLeft(dx);\n\n // Call setCurrentColor\n let _sValue, _vValue;\n\n const pxX = width / 100;\n const pxY = height / 100;\n\n _sValue = Math.ceil(dx / pxX) / 100;\n _vValue = Math.ceil(Math.abs(dy / pxY - 100)) / 100;\n\n const newValue = colorTransformator.hvsToHex(\n hueColor,\n _sValue,\n _vValue,\n );\n setValue(newValue);\n setInputValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [color, hueColor, onChange],\n );\n\n const moveLineSlider = useCallback(\n (dx) => {\n const width = colorLineRef.current.getBoundingClientRect().width;\n\n if (dx < 0) dx = 0;\n else if (dx > width) dx = width;\n\n const h = Math.round((dx * 359) / width);\n const newHue = Math.max(Math.min(h, 359), 0);\n setHueColor(newHue);\n setLineLeft(dx);\n\n // Call setCurrentColor with lineSliderMove=true\n let _sValue, _vValue;\n [, _sValue, _vValue] = colorTransformator.hexToHvs(color);\n const newValue = colorTransformator.hvsToHex(newHue, _sValue, _vValue);\n setValue(newValue);\n setInputValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [color, onChange],\n );\n\n moveBlockSliderRef.current = moveBlockSlider;\n moveLineSliderRef.current = moveLineSlider;\n\n const setSlidersPosition = useCallback((newColor) => {\n const [h, s, v] = colorTransformator.hexToHvs(newColor || color);\n setHueColor(h);\n\n if (blockRef.current) {\n const { width, height } = blockRef.current.getBoundingClientRect();\n\n if (colorLineRef.current) {\n setLineLeft(\n (h * colorLineRef.current.getBoundingClientRect().width) / 359,\n );\n }\n setBlockLeft(s * width);\n setBlockTop(Math.abs(height * (v - 1)));\n }\n }, [color]);\n\n const handleChange = useCallback(\n ({ target }) => {\n const newColor = parseColor(target.value);\n setInputValue(target.value);\n if (newColor) {\n setValue(newColor);\n onChange && onChange({ value: newColor, input: true });\n setSlidersPosition(newColor);\n }\n },\n [onChange, setSlidersPosition],\n );\n\n const handleSelect = useCallback(\n (ev) => {\n ev.stopPropagation();\n onChange && onChange({ value: color });\n },\n [color, onChange],\n );\n\n const keydown = useCallback(\n (ev) => {\n const slider = ev.target;\n const isSliderBlock = slider.getAttribute('data-slider') === BLOCK;\n const isSliderLine = slider.getAttribute('data-slider') === LINE;\n\n let css = window.getComputedStyle(slider);\n let left = parseFloat(css.left);\n let top = parseFloat(css.top);\n const code = ev.code;\n\n if (isSliderBlock) {\n switch (code) {\n case 'ArrowLeft': {\n left--;\n break;\n }\n case 'ArrowRight': {\n left++;\n break;\n }\n case 'ArrowDown': {\n top++;\n break;\n }\n case 'ArrowUp': {\n top--;\n break;\n }\n default:\n return;\n }\n\n moveBlockSlider(left, top);\n }\n\n if (isSliderLine) {\n if (code === 'ArrowLeft' || code === 'ArrowDown') left--;\n else if (code === 'ArrowRight' || code === 'ArrowUp') left++;\n else return;\n moveLineSlider(left);\n }\n\n ev.preventDefault();\n },\n [moveBlockSlider, moveLineSlider],\n );\n \n useEffect(() => {\n const destroy = [];\n if (blockRef.current) {\n destroy.push(\n sliderMove(blockRef.current, {\n moveBlockSlider: (dx, dy) => {\n moveBlockSliderRef.current?.(dx, dy);\n },\n }).destroy,\n );\n }\n if (colorLineRef.current) {\n destroy.push(\n sliderMove(colorLineRef.current, {\n moveLineSlider: (dx) => {\n moveLineSliderRef.current?.(dx);\n },\n }).destroy,\n );\n }\n requestAnimationFrame(()=> setSlidersPosition());\n return () => {\n destroy.forEach((d) => d());\n };\n }, []);\n const cssScope = 'wx-1yoKzq';\n\n return (\n <div className={cssScope + ' wx-colorboard'}>\n <div\n className={cssScope + ' wx-color-block'}\n style={{ background: blockColor }}\n ref={blockRef}\n >\n <div\n className={cssScope + ' wx-color-block-slider wx-slider'}\n style={{\n background: color,\n top: blockTop + 'px',\n left: blockLeft + 'px',\n }}\n tabIndex={0}\n data-slider={BLOCK}\n onKeyDown={keydown}\n ></div>\n </div>\n <div className={cssScope + ' wx-color-line'} ref={colorLineRef}>\n <div\n className={cssScope + ' wx-color-line-slider wx-slider'}\n style={{ background: blockColor, left: lineLeft + 'px' }}\n tabIndex={0}\n data-slider={LINE}\n onKeyDown={keydown}\n ></div>\n </div>\n <div className={cssScope + ' wx-color-controls'}>\n <div\n className={cssScope + ' wx-color'}\n style={{ background: color }}\n ></div>\n <input\n type=\"text\"\n className={cssScope + ' wx-text'}\n value={inputValue}\n onChange={handleChange}\n />\n </div>\n {button && (\n <Button onClick={handleSelect} type=\"secondary\">\n {_('select')}\n </Button>\n )}\n </div>\n );\n}\n\nexport default ColorBoard;\n","import { useState } from 'react';\nimport Dropdown from './Dropdown.jsx';\nimport ColorBoard from './ColorBoard.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\n\nimport './ColorPicker.css';\n\nexport default function ColorPicker({\n value: propertyValue = '',\n id,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n clear = false,\n onChange,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n let [value, setValue] = useWritableProp(propertyValue);\n const [popup, setPopup] = useState(false);\n\n function handlePopup() {\n if (disabled) return false;\n setPopup(true);\n }\n\n function selectColor(ev) {\n if (ev.input) return;\n\n setPopup(false);\n const newValue = ev.value;\n setValue(newValue);\n if (onChange) onChange({ value: newValue });\n }\n\n function unselectColor(ev) {\n ev.stopPropagation();\n setValue('');\n if (onChange) onChange({ value: '' });\n }\n\n return (\n <div className=\"wx-mmT8WH wx-colorpicker\" onClick={handlePopup}>\n <input\n className={\n 'wx-mmT8WH wx-input' +\n (error ? ' wx-error' : '') +\n (popup ? ' wx-focus' : '')\n }\n title={title}\n value={value}\n readOnly\n id={inputId}\n placeholder={placeholder}\n disabled={disabled}\n />\n <div className=\"wx-mmT8WH wx-color\" style={{ background: value }}></div>\n\n {clear && !disabled && value && (\n <i className=\"wx-mmT8WH wxi-close\" onClick={unselectColor}></i>\n )}\n\n {popup && (\n <Dropdown onCancel={() => setPopup(false)} {...dropdown}>\n <ColorBoard value={value} button=\"true\" onChange={selectColor} />\n </Dropdown>\n )}\n </div>\n );\n}\n","import { locateID } from '@svar-ui/lib-dom';\n\nexport function getListHandlers() {\n let navIndex = null;\n let isVisible = false;\n\n let virtualized = false;\n\n let list, options, navCallback, selectCallback;\n const init = (l, o, n, c, v) => {\n list = l;\n options = o;\n navCallback = n;\n selectCallback = c;\n virtualized = v;\n };\n\n const setNav = (index) => {\n navIndex = index;\n isVisible = navIndex !== null;\n navCallback(navIndex);\n };\n\n const scrollTo = (navIndex, ev) => {\n if (!virtualized && navIndex !== null && list) {\n const next = list.querySelectorAll(`.wx-list > .wx-item`)[navIndex];\n if (next) {\n next.scrollIntoView({ block: 'nearest' });\n if (ev) ev.preventDefault();\n }\n }\n };\n\n const navigate = (dir, ev) => {\n const index =\n dir === null\n ? null\n : Math.max(0, Math.min(navIndex + dir, options.length - 1));\n if (index === navIndex) return;\n setNav(index);\n\n if (list) scrollTo(index, ev);\n else requestAnimationFrame(() => scrollTo(index, ev));\n };\n\n const move = (ev) => {\n const id = locateID(ev);\n const index = options.findIndex((a) => a.id === id);\n\n if (index !== navIndex) {\n setNav(index);\n }\n };\n\n const keydown = (ev, position) => {\n switch (ev.code) {\n case 'Enter':\n if (isVisible) selectCallback();\n else setNav(0);\n break;\n\n case 'Space':\n if (!isVisible) setNav(0);\n break;\n\n case 'Escape':\n navCallback((navIndex = null));\n break;\n\n case 'Tab':\n navCallback((navIndex = null));\n break;\n\n case 'ArrowDown':\n navigate(isVisible ? 1 : position || 0, ev);\n break;\n\n case 'ArrowUp':\n navigate(isVisible ? -1 : position || 0, ev);\n break;\n\n default:\n break;\n }\n };\n\n return { move, keydown, init, navigate };\n}\n","import { useEffect, useState, useRef, useCallback, useMemo, useLayoutEffect, memo } from 'react';\nimport { useContext } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport { getListHandlers } from './listnav';\nimport Dropdown from '../Dropdown.jsx';\nimport Checkbox from '../Checkbox.jsx';\nimport { i18n } from '../../context.js';\nimport './SuggestDropdown.css';\nimport { defaultLocale } from './locale.js';\n\nconst overscan = 10;\n\nconst ItemContent = memo(function ItemContent({ data, checkboxes, children, value }) {\n return (\n <>\n {checkboxes && (\n <Checkbox\n id={data.id}\n style = {{marginRight: \"8px\",pointerEvents: \"none\"}}\n value={value && value.includes(data.id)}\n />\n )}\n {children ? snippet(children, { option: data }) : data.label}\n </>\n );\n});\n\nfunction ListContent({\n visibleItems,\n visibleRange,\n navIndex,\n checkboxes,\n children,\n value,\n measureRefCallback,\n}) {\n return visibleItems.map((data, visibleIndex) => {\n const index = visibleRange.start + visibleIndex;\n return <div\n key={data.id}\n ref={visibleIndex === 0 ? measureRefCallback : undefined}\n className={`wx-233fr7 wx-item ${(index) === navIndex ? 'wx-focus' : ''}`}\n data-id={data.id}\n >\n <ItemContent\n data={data}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n </div>\n\n });\n}\n\nexport default function SuggestDropdown({\n items = [],\n children,\n onSelect,\n onReady,\n virtualized = false,\n checkboxes,\n multiselect,\n value,\n ...rest\n}) {\n const list = useRef();\n const initialScrolled = useRef(false);\n const helpers = useRef(getListHandlers());\n\n const [navIndex, setNavIndex] = useState(null);\n const navIndexRef = useRef(navIndex);\n\n const [scrollTop, setScrollTop] = useState(0);\n const [itemHeight, setItemHeight] = useState(24);\n const isItemHeightInitialized = useRef(false);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n // Keep refs current for use inside callbacks\n const itemsRef = useRef(items);\n useEffect(() => {\n itemsRef.current = items;\n }, [items]);\n\n const valueRef = useRef(value);\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const itemHeightRef = useRef(0);\n useEffect(() => {\n itemHeightRef.current = itemHeight;\n }, [itemHeight]);\n\n const selectItem = useCallback((ev) => {\n if (ev) ev.stopPropagation();\n const currentItems = itemsRef.current;\n const currentValue = valueRef.current;\n const currentNavIndex = navIndexRef.current;\n let nextValue;\n const nextId = currentItems[currentNavIndex]?.id;\n if (multiselect) {\n if (currentValue && currentValue.includes(nextId)) {\n nextValue = currentValue.filter(i => i !== nextId);\n } else {\n nextValue = [...(currentValue || []), nextId];\n }\n } else {\n nextValue = nextId;\n }\n onSelect && onSelect({ id: nextValue });\n }, [multiselect, onSelect]);\n\n const selectItemRef = useRef(selectItem);\n useEffect(() => {\n selectItemRef.current = selectItem;\n }, [selectItem]);\n\n const scrollToVirtualized = useCallback((idx) => {\n if (list.current) {\n let newScrollTop = idx * itemHeightRef.current - list.current.clientHeight + itemHeightRef.current;\n setScrollTop(newScrollTop);\n list.current.scrollTop = newScrollTop;\n }\n }, [itemHeightRef.current]);\n\n const listRefCallback = useCallback(\n (el) => {\n list.current = el;\n if (virtualized) {\n if (el && !initialScrolled.current && navIndexRef.current !== null) {\n requestAnimationFrame(() => {\n if (list.current) {\n scrollToVirtualized(navIndexRef.current);\n initialScrolled.current = true;\n }\n });\n }\n if (!el) {\n initialScrolled.current = false;\n }\n }\n },\n [scrollToVirtualized]\n );\n\n const measureRefCallback = useCallback((node) => {\n if (!node) return;\n if (isItemHeightInitialized.current) return;\n \n const height = node.getBoundingClientRect().height;\n \n if (height) {\n setItemHeight(height);\n itemHeightRef.current = height;\n isItemHeightInitialized.current = true;\n }\n }, []);\n \n useEffect(() => {\n helpers.current.init(\n list.current,\n items,\n (i) => {\n setNavIndex(i);\n navIndexRef.current = i;\n },\n (ev) => selectItemRef.current(ev),\n virtualized,\n );\n }, [items, list.current, virtualized]);\n\n useEffect(() => {\n const navigateVirtualized = (dir, ev) => {\n helpers.current.navigate(dir, ev);\n scrollToVirtualized(navIndexRef.current);\n };\n\n const keydownVirtualized = (ev, dir) => {\n const currentNavIndex = navIndexRef.current;\n const currentItems = itemsRef.current;\n if (\n currentNavIndex !== 0 &&\n currentNavIndex !== currentItems.length - 1 &&\n (ev.key === 'ArrowDown' || ev.key === 'ArrowUp')\n )\n ev.preventDefault();\n helpers.current.keydown(ev, dir);\n\n if (list.current) {\n const isTargetVisibleTop = list.current.scrollTop <= navIndexRef.current * itemHeightRef.current;\n const isTargetVisibleBottom =\n list.current.scrollTop + list.current.clientHeight >=\n navIndexRef.current * itemHeightRef.current + itemHeightRef.current;\n\n if (!isTargetVisibleTop) {\n list.current.scrollTop = navIndexRef.current * itemHeightRef.current;\n setScrollTop(list.current.scrollTop);\n } else if (!isTargetVisibleBottom) {\n scrollToVirtualized(navIndexRef.current);\n }\n }\n };\n\n onReady &&\n onReady({\n navigate: virtualized ? navigateVirtualized : helpers.current.navigate,\n keydown: virtualized ? keydownVirtualized : helpers.current.keydown,\n move: helpers.current.move,\n });\n }, []);\n\n const dropdownKey = useRef(0);\n const prevItemsRef = useRef(items);\n if (prevItemsRef.current !== items) {\n prevItemsRef.current = items;\n dropdownKey.current += 1;\n }\n\n const onCancel = useCallback(() => {\n helpers.current.navigate(null);\n }, [helpers]);\n\n const handleScroll = useCallback((ev) => {\n if (virtualized) {\n setScrollTop(ev.target.scrollTop);\n }\n }, [virtualized]);\n\n const displayedItemsCount = useMemo(\n () => Math.ceil((list.current?.clientHeight || 0) / itemHeight),\n [itemHeight, scrollTop],\n );\n\n const visibleRange = useMemo(() => {\n if (!virtualized) return { start: 0, end: items.length };\n if (!items.length) return { start: 0, end: 0 };\n\n const start = Math.floor(scrollTop / itemHeight);\n const end = start + displayedItemsCount;\n\n return {\n start: Math.max(0, start - overscan),\n end: Math.min(items.length, end + overscan),\n };\n }, [virtualized, items, scrollTop, itemHeight, displayedItemsCount]);\n\n const visibleItems = useMemo(() => {\n if (!virtualized) return items;\n const { start, end } = visibleRange;\n return items.slice(start, end).map((item) => ({\n ...item,\n }));\n }, [virtualized, items, visibleRange]);\n\n const offsetTop = visibleRange.start * itemHeight;\n const totalHeight = items.length * itemHeight;\n\n useEffect(() => {\n if (navIndex === null) {\n initialScrolled.current = false;\n }\n }, [navIndex]);\n\n if (navIndex === null) return null;\n\n return (\n <Dropdown key={dropdownKey.current} onCancel={onCancel} {...rest}>\n <div\n className=\"wx-233fr7 wx-list\"\n ref={listRefCallback}\n onClick={selectItem}\n onMouseMove={helpers.current.move}\n onScroll={handleScroll}\n >\n {items.length ? (\n virtualized ? (\n <div\n className=\"wx-233fr7 wx-list-wrapper\"\n style={{ height: `${totalHeight}px` }}\n >\n <div\n className=\"wx-233fr7 wx-list-content\"\n style={{ transform: `translateY(${offsetTop}px)` }}\n >\n <ListContent\n visibleRange={visibleRange}\n visibleItems={visibleItems}\n navIndex={navIndex}\n measureRefCallback={measureRefCallback}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n </div>\n </div>\n ) : (\n <ListContent\n visibleRange={visibleRange}\n visibleItems={visibleItems}\n navIndex={navIndex}\n measureRefCallback={measureRefCallback}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n )\n ) : (\n <div className=\"wx-233fr7 wx-no-data\">{_('No data')}</div>\n )}\n </div>\n </Dropdown>\n );\n}\n\n","import { useState, useRef, useMemo, useCallback } from 'react';\nimport List from './helpers/SuggestDropdown.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Combo.css';\n\nexport default function Combo({\n value: valueProp = '',\n id,\n options = [],\n textOptions = null,\n textField = 'label',\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n clear = false,\n children: kids,\n onChange,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const navigate = useRef(null);\n const keydown = useRef(null);\n\n const [value, setValue] = useWritableProp(valueProp);\n const [filterActive, setFilterActive] = useState(false);\n const [textInput, setTextInput] = useState('');\n\n const inputElement = useRef(null);\n const hasFocus = useRef(false);\n\n // calculate the derived values\n const text = useMemo(() => {\n if (filterActive) return textInput;\n if (value || value === 0) {\n const option = (textOptions || options).find((a) => a.id === value);\n if (option) return option[textField];\n }\n return '';\n }, [filterActive, textInput, value, textOptions, options, textField]);\n\n const filteredOptions = useMemo(() => {\n if (!text || !filterActive) return options;\n\n return options.filter((i) =>\n i[textField].toLowerCase().includes(text.toLowerCase()),\n );\n }, [text, filterActive, options, textField]);\n\n const index = useCallback(\n () => filteredOptions.findIndex((a) => a.id === value),\n [filteredOptions, value],\n );\n\n const ready = useCallback((ev) => {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }, []);\n\n const doSelect = useCallback(\n (id, effects) => {\n if (id || id === 0) {\n let selected = options.find((a) => a.id === id);\n setFilterActive(false);\n\n if (effects) navigate.current(null);\n\n if (selected && value !== selected.id) {\n const newValue = selected.id;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }\n }\n\n if (!hasFocus.current && effects) inputElement.current.focus();\n },\n [options, value, onChange],\n );\n\n const selectByEvent = useCallback(\n ({ id }) => {\n doSelect(id, true);\n },\n [doSelect],\n );\n\n const doUnselect = useCallback(\n (ev) => {\n if (ev) ev.stopPropagation();\n\n setValue('');\n setFilterActive(false);\n onChange && onChange({ value: '' });\n },\n [onChange],\n );\n\n const selectByText = useCallback(\n (chunk) => {\n if (!options.length) return;\n if (chunk === '' && clear) {\n doUnselect();\n return;\n }\n\n let res = options.find((i) => i[textField] === chunk);\n if (!res) {\n res = options.find((i) =>\n i[textField].toLowerCase().includes(chunk.toLowerCase()),\n );\n }\n\n const id = res ? res.id : value || options[0].id;\n doSelect(id, false);\n },\n [options, textField, clear, value, doSelect, doUnselect],\n );\n\n const handleInput = useCallback(() => {\n setTextInput(inputElement.current.value);\n setFilterActive(true);\n\n if (filteredOptions.length) navigate.current(0);\n }, [filteredOptions.length, navigate]);\n\n const handleFocus = useCallback(() => {\n hasFocus.current = true;\n }, []);\n\n const handleBlur = useCallback(() => {\n hasFocus.current = false;\n setTimeout(() => {\n if (!hasFocus.current) selectByText(text);\n }, 200);\n }, [selectByText, text]);\n\n return (\n <div\n className=\"wx-1j11Jk wx-combo\"\n onClick={() => navigate.current(index())}\n onKeyDown={(ev) => keydown.current(ev, index())}\n title={title}\n >\n <input\n className={'wx-1j11Jk wx-input ' + (error ? 'wx-error' : '')}\n id={inputId}\n ref={inputElement}\n value={text}\n disabled={disabled}\n placeholder={placeholder}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n />\n\n {clear && !disabled && value ? (\n <i className=\"wx-1j11Jk wx-icon wxi-close\" onClick={doUnselect}></i>\n ) : (\n <i className=\"wx-1j11Jk wx-icon wxi-angle-down\"></i>\n )}\n\n {!disabled && (\n <List items={filteredOptions} onReady={ready} onSelect={selectByEvent} {...dropdown}>\n {({ option }) => <>{kids ? kids({ option }) : option[textField]}</>}\n </List>\n )}\n </div>\n );\n}\n","import { useCallback, useEffect, useRef, useMemo } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Text.css';\n\nexport default function Text({\n value: propsValue = '',\n id,\n readonly = false,\n focus = false,\n select = false,\n type = 'text',\n placeholder = '',\n disabled = false,\n error = false,\n inputStyle = {},\n title = '',\n css = '',\n icon = '',\n clear = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(propsValue);\n const inputRef = useRef(null);\n\n const cssString = useMemo(\n () =>\n icon && css.indexOf('wx-icon-left') === -1 ? 'wx-icon-right ' + css : css,\n [icon, css],\n );\n\n const hasLeftIcon = useMemo(\n () => icon && css.indexOf('wx-icon-left') !== -1,\n [icon, css],\n );\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n if (select && inputRef.current) inputRef.current.select();\n }, 1);\n\n return () => clearTimeout(timer);\n }, [focus, select]);\n\n const oninput = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [onChange],\n );\n\n const ontextchange = useCallback(\n (ev) => onChange && onChange({ value: ev.target.value }),\n [onChange],\n );\n\n function clearValue(ev) {\n ev.stopPropagation();\n setValue('');\n onChange && onChange({ value: '' });\n }\n\n let inputType = type;\n if (type !== 'password' && type !== 'number') {\n inputType = 'text';\n }\n\n // MK :: EXTRACT\n useEffect(() => {\n const handler = ontextchange;\n const node = inputRef.current;\n node.addEventListener('change', handler);\n return () => {\n if (node) {\n node.removeEventListener('change', handler);\n }\n };\n }, [ontextchange]);\n\n return (\n <div\n className={`wx-hQ64J4 wx-text ${cssString} ${error ? 'wx-error' : ''} ${\n disabled ? 'wx-disabled' : ''\n } ${clear ? 'wx-clear' : ''}`}\n >\n <input\n className=\"wx-hQ64J4 wx-input\"\n ref={inputRef}\n id={inputId}\n readOnly={readonly}\n disabled={disabled}\n placeholder={placeholder}\n type={inputType}\n style={inputStyle}\n title={title}\n value={value}\n onInput={oninput}\n />\n\n {clear && !disabled && value ? (\n <>\n <i className=\"wx-hQ64J4 wx-icon wxi-close\" onClick={clearValue}></i>\n {hasLeftIcon && <i className={`wx-hQ64J4 wx-icon ${icon}`}></i>}\n </>\n ) : icon ? (\n <i className={`wx-hQ64J4 wx-icon ${icon}`}></i>\n ) : null}\n </div>\n );\n}\n","import { useContext, useMemo } from 'react';\nimport { dateToString, getDuodecade } from '@svar-ui/lib-dom';\nimport { i18n } from '../../context.js';\n\nfunction Header({ date, type, part, onShift }) {\n const { calendar, formats } = useContext(i18n).getRaw();\n\n const year = date.getFullYear();\n\n const label = useMemo(() => {\n switch (type) {\n case 'month':\n return dateToString(formats.monthYearFormat, calendar)(date);\n case 'year':\n return dateToString(formats.yearFormat, calendar)(date);\n case 'duodecade': {\n const { start, end } = getDuodecade(year);\n const yearFormat = dateToString(formats.yearFormat, calendar);\n return `${yearFormat(new Date(start, 0, 1))} - ${yearFormat(new Date(end, 11, 31))}`;\n }\n default:\n return '';\n }\n }, [date, type, year, calendar, formats]);\n\n function changeType() {\n onShift && onShift({ diff: 0, type });\n }\n\n return (\n <div className=\"wx-8HQVQV wx-header\">\n {part !== 'right' ? (\n <i\n className=\"wx-8HQVQV wx-pager wxi-angle-left\"\n onClick={() => onShift && onShift({ diff: -1, type })}\n />\n ) : (\n <span className=\"wx-8HQVQV wx-spacer\" />\n )}\n\n <span className=\"wx-8HQVQV wx-label\" onClick={changeType}>\n {label}\n </span>\n\n {part !== 'left' ? (\n <i\n className=\"wx-8HQVQV wx-pager wxi-angle-right\"\n onClick={() => onShift && onShift({ diff: 1, type })}\n />\n ) : (\n <span className=\"wx-8HQVQV wx-spacer\" />\n )}\n </div>\n );\n}\n\nimport './Header.css';\n\nexport default Header;\n","import './Button.css';\n\nexport default function Button({ onClick, children }) {\n return (\n <button className=\"wx-3s8W4d wx-button\" onClick={onClick}>\n {children}\n </button>\n );\n}\n","import { useContext, useMemo, useEffect, useRef } from 'react';\nimport { delegateClick } from '@svar-ui/lib-dom';\nimport { i18n } from '../../context.js';\nimport './Month.css';\nimport { defaultLocale } from '../helpers/locale.js';\n\nexport default function Month({\n value,\n current,\n part = '',\n markers = null,\n onCancel,\n onChange,\n}) {\n const locale = (useContext(i18n) || defaultLocale()).getRaw().calendar;\n const weekStart = (locale.weekStart || 7) % 7;\n const weekdays = locale.dayShort\n .slice(weekStart)\n .concat(locale.dayShort.slice(0, weekStart));\n\n const dv = (d, dm, dd) =>\n new Date(\n d.getFullYear(),\n d.getMonth() + (dm || 0),\n d.getDate() + (dd || 0),\n );\n let ranges = part !== 'normal';\n\n function isWeekEnd(date) {\n const d = date.getDay();\n return d === 0 || d === 6;\n }\n\n function getStart() {\n const start = dv(current, 0, 1 - current.getDate());\n start.setDate(start.getDate() - ((start.getDay() - (weekStart - 7)) % 7));\n return start;\n }\n function getEnd() {\n const end = dv(current, 1, -current.getDate());\n end.setDate(end.getDate() + ((6 - end.getDay() + weekStart) % 7));\n return end;\n }\n\n //MK : HACK\n const lastTime = useRef(0);\n function selectDate(date, e) {\n if (e.timeStamp === lastTime.current) return;\n lastTime.current = e.timeStamp;\n\n e.stopPropagation();\n if (onChange) onChange(new Date(date));\n if (onCancel) onCancel();\n }\n\n const date = useMemo(() => {\n if (part == 'normal') return [value ? dv(value).valueOf() : 0];\n return value\n ? [\n value.start ? dv(value.start).valueOf() : 0,\n value.end ? dv(value.end).valueOf() : 0,\n ]\n : [0, 0];\n }, [part, value]);\n\n const days = useMemo(() => {\n const start = getStart();\n const end = getEnd();\n const curMonth = current.getMonth();\n\n let days = [];\n for (let d = start; d <= end; d.setDate(d.getDate() + 1)) {\n const day = {\n day: d.getDate(),\n in: d.getMonth() === curMonth,\n date: d.valueOf(),\n };\n\n let css = '';\n css += !day.in ? ' wx-inactive' : '';\n css += date.indexOf(day.date) > -1 ? ' wx-selected' : '';\n\n if (ranges) {\n const s = day.date == date[0];\n const e = day.date == date[1];\n if (s && !e) css += ' wx-left';\n else if (e && !s) css += ' wx-right';\n\n if (day.date > date[0] && day.date < date[1]) css += ' wx-inrange';\n }\n\n css += isWeekEnd(d) ? ' wx-weekend' : '';\n if (markers) {\n const mark = markers(d);\n if (mark) css += ' ' + mark;\n }\n\n days.push({ ...day, css });\n }\n return days;\n }, [current, date, ranges, markers]);\n\n const delegateRef = useRef(null);\n let delegateHandler = useRef({});\n delegateHandler.current.click = selectDate;\n\n useEffect(() => {\n delegateClick(delegateRef.current, delegateHandler.current);\n }, []);\n\n return (\n <div>\n <div className=\"wx-398RBS wx-weekdays\">\n {weekdays.map((day) => (\n <div key={day} className=\"wx-398RBS wx-weekday\">\n {day}\n </div>\n ))}\n </div>\n <div className=\"wx-398RBS wx-days\" ref={delegateRef}>\n {days.map((day) => (\n <div\n key={day.date}\n className={`wx-398RBS wx-day ${day.css} ${!day.in ? 'wx-out' : ''}`}\n data-id={day.date}\n >\n {day.day}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import { useContext, useMemo, useCallback, useRef } from 'react';\nimport Button from './Button.jsx';\nimport { getPartValue } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Year.css';\nimport { useWritableProp } from '@svar-ui/lib-react';\n\nexport default function Year({\n value: valueProp,\n current: currentProp,\n part,\n onCancel,\n onChange,\n onShift,\n}) {\n const defaultDate = useRef(new Date());\n const [value, setValue] = useWritableProp(valueProp || defaultDate.current);\n const [current, setCurrent] = useWritableProp(currentProp || defaultDate.current);\n\n const locale = useContext(i18n).getRaw().calendar;\n const months = locale.monthShort || [];\n\n const monthNum = useMemo(() => {\n return current.getMonth();\n }, [current]);\n\n const selectMonth = useCallback(\n (month, e) => {\n if (month !== null && month !== undefined) {\n e.stopPropagation();\n const newCurrent = new Date(current);\n newCurrent.setMonth(month);\n setCurrent(newCurrent);\n\n onShift && onShift({ current: newCurrent });\n }\n\n if (part === 'normal') setValue(new Date(current));\n\n onCancel && onCancel();\n },\n [current, part, onShift, onCancel],\n );\n\n const done = useCallback(() => {\n const date = new Date(getPartValue(value, part) || current);\n\n date.setMonth(current.getMonth());\n date.setFullYear(current.getFullYear());\n\n onChange && onChange(date);\n }, [value, current, part, onChange]);\n\n const handleMonthClick = useCallback(\n (e) => {\n const target = e.target.closest('[data-id]');\n if (target) {\n const month = parseInt(target.getAttribute('data-id'), 10);\n selectMonth(month, e);\n }\n },\n [selectMonth],\n );\n\n return (\n <>\n <div className={'wx-34U8T8 wx-months'} onClick={handleMonthClick}>\n {months.map((month, i) => (\n <div\n key={i}\n className={\n 'wx-34U8T8 wx-month' + (monthNum === i ? ' wx-current' : '')\n }\n data-id={i}\n >\n {month}\n </div>\n ))}\n </div>\n <div className={'wx-34U8T8 wx-buttons'}>\n <Button onClick={done}>{locale.done}</Button>\n </div>\n </>\n );\n}\n","import { useContext, useMemo, useRef, useEffect } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { delegateClick, getDuodecade } from '@svar-ui/lib-dom';\nimport Button from './Button.jsx';\nimport { getPartValue } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Duodecade.css';\n\nconst cssScope = 'wx-1XEF33';\n\nconst Duodecade = ({ value, current, onCancel, onChange, onShift, part }) => {\n const _ = useContext(i18n).getRaw().calendar;\n\n const [currentState, setCurrent] = useWritableProp(current);\n const [valueState, setValue] = useWritableProp(value);\n\n const year = useMemo(() => currentState.getFullYear(), [currentState]);\n\n const years = useMemo(() => {\n const { start, end } = getDuodecade(year);\n const years = [];\n for (let y = start; y <= end; ++y) {\n years.push(y);\n }\n return years;\n }, [year]);\n\n const selectYears = {\n click: selectYear,\n };\n\n function selectYear(yearVal, e) {\n if (yearVal) {\n e.stopPropagation();\n const newCurrent = new Date(currentState);\n newCurrent.setFullYear(yearVal);\n setCurrent(newCurrent);\n\n onShift && onShift({ current: newCurrent });\n }\n\n if (part === 'normal') {\n setValue(new Date(currentState));\n }\n\n onCancel && onCancel();\n }\n\n function done() {\n const date = new Date(getPartValue(valueState, part) || currentState);\n\n date.setFullYear(currentState.getFullYear());\n\n onChange && onChange(date);\n }\n\n const containerRef = useRef(null);\n\n useEffect(() => {\n if (containerRef.current) {\n delegateClick(containerRef.current, selectYears);\n }\n }, []);\n\n return (\n <>\n <div className={cssScope + ' wx-years'} ref={containerRef}>\n {years.map((y, i) => (\n <div\n key={i}\n className={\n cssScope +\n ` wx-year ${year == y ? 'wx-current' : ''} ${i === 0 ? 'wx-prev-decade' : ''} ${i === 11 ? 'wx-next-decade' : ''}`\n }\n data-id={y}\n >\n {y}\n </div>\n ))}\n </div>\n <div className={cssScope + ' wx-buttons'}>\n <Button onClick={done}>{_.done}</Button>\n </div>\n </>\n );\n};\n\nexport default Duodecade;\n","import Month from './Month.jsx';\nimport Year from './Year.jsx';\nimport Duodecade from './Duodecade.jsx';\n\nexport const configs = {\n month: {\n component: Month,\n next: nextMonth,\n prev: prevMonth,\n },\n year: {\n component: Year,\n next: nextYear,\n prev: prevYear,\n },\n duodecade: {\n component: Duodecade,\n next: nextDuodecade,\n prev: prevDuodecade,\n },\n};\n\nfunction prevMonth(current) {\n current = new Date(current);\n current.setMonth(current.getMonth() - 1);\n return current;\n}\nfunction nextMonth(current) {\n current = new Date(current);\n current.setMonth(current.getMonth() + 1);\n return current;\n}\nfunction prevYear(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() - 1);\n return current;\n}\nfunction nextYear(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() + 1);\n return current;\n}\nfunction prevDuodecade(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() - 10);\n return current;\n}\nfunction nextDuodecade(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() + 10);\n return current;\n}\n\nexport function getPartValue(value, part) {\n let date;\n if (part === 'normal') date = value;\n else {\n const { start, end } = value;\n if (part === 'left') date = start;\n else if (part == 'right') date = end;\n else date = start ? end : start;\n }\n\n return date;\n}\n","import { useContext, useState, useMemo } from 'react';\nimport Header from './Header.jsx';\nimport Button from './Button.jsx';\nimport { configs } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Panel.css';\n\nconst defaultButtons = ['clear', 'today'];\n\nfunction getButtonValue(btn) {\n if (btn === 'done') return -1;\n if (btn === 'clear') return null;\n if (btn === 'today') return new Date();\n}\n\nfunction Panel({\n value,\n current,\n onCurrentChange,\n part = 'normal',\n markers = null,\n buttons,\n onShift,\n onChange,\n}) {\n const _ = useContext(i18n).getGroup('calendar');\n\n const [type, setType] = useState('month');\n\n const buttonsList = Array.isArray(buttons)\n ? buttons\n : buttons\n ? defaultButtons\n : [];\n\n const selectDate = (ev, date) => {\n ev.preventDefault();\n onChange && onChange({ value: date });\n };\n\n const oncancel = () => {\n if (type === 'duodecade') setType('year');\n else if (type === 'year') setType('month');\n };\n\n const onShiftLocal = (ev) => {\n const { diff, current: newCurrent } = ev;\n\n if (diff === 0) {\n if (type === 'month') setType('year');\n else if (type === 'year') setType('duodecade');\n return;\n }\n if (diff) {\n const obj = configs[type];\n onCurrentChange(diff > 0 ? obj.next(current) : obj.prev(current));\n } else if (newCurrent) {\n onCurrentChange(newCurrent);\n }\n\n onShift && onShift();\n };\n\n const onChangeLocal = (value) => {\n setType('month');\n onChange && onChange({ select: true, value });\n };\n\n const CalendarView = useMemo(() => configs[type].component, [type]);\n\n return (\n <div\n className={`wx-2Gr4AS wx-calendar ${part !== 'normal' && part !== 'both' ? 'wx-part' : ''}`}\n >\n <div className=\"wx-2Gr4AS wx-wrap\">\n <Header date={current} part={part} type={type} onShift={onShiftLocal} />\n <div>\n <CalendarView\n value={value}\n current={current}\n onCurrentChange={onCurrentChange}\n part={part}\n markers={markers}\n onCancel={oncancel}\n onChange={onChangeLocal}\n onShift={onShiftLocal}\n />\n {type === 'month' && buttonsList.length > 0 && (\n <div className=\"wx-2Gr4AS wx-buttons\">\n {buttonsList.map((button) => (\n <div key={button} className=\"wx-2Gr4AS wx-button-item\">\n <Button\n onClick={(e) => selectDate(e, getButtonValue(button))}\n >\n {_(button)}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nexport default Panel;\n","import { useContext, useMemo } from 'react';\nimport { i18n } from './context';\nimport { locale } from '@svar-ui/lib-dom';\nimport { en } from '@svar-ui/core-locales';\n\nexport default function Component(props) {\n let { words = null, optional = false, children } = props;\n\n let l = useContext(i18n);\n const v = useMemo(() => {\n let t = l;\n if (!t || !t.extend) t = locale(en);\n if (words !== null) t = t.extend(words, optional);\n return t;\n }, [words, optional, l]);\n\n return <i18n.Provider value={v}>{children}</i18n.Provider>;\n}\n","import { useEffect, useCallback } from 'react';\nimport Panel from './calendar/Panel.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport Locale from '../Locale.jsx';\n\nfunction fixCurrent(current, value, setCurrent, force) {\n if (!current || force) {\n const newCurrent = value ? new Date(value) : new Date();\n newCurrent.setDate(1);\n setCurrent(newCurrent);\n } else {\n if (current.getDate() !== 1) {\n const newCurrent = new Date(current);\n newCurrent.setDate(1);\n setCurrent(newCurrent);\n }\n }\n}\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function Calendar({\n value: valueProp,\n current: currentProp,\n markers = null,\n buttons = defaultButtons,\n onChange,\n}) {\n const [value, setValue] = useWritableProp(valueProp);\n const [current, setCurrent] = useWritableProp(currentProp);\n\n useEffect(() => {\n fixCurrent(current, value, setCurrent, false);\n }, [value, current]);\n\n const onChangeLocal = useCallback(\n (v) => {\n const x = v.value;\n if (x) {\n setValue(new Date(x));\n fixCurrent(current, new Date(x), setCurrent, true);\n } else {\n setValue(null);\n }\n\n onChange && onChange({ value: x ? new Date(x) : null });\n },\n [onChange, current],\n );\n\n const onCurrentChangeLocal = useCallback(\n (v) => {\n setCurrent(v);\n },\n [setCurrent],\n );\n\n if (!current) return null;\n\n return (\n <Locale>\n <Panel\n value={value}\n current={current}\n markers={markers}\n buttons={buttons}\n onChange={onChangeLocal}\n onCurrentChange={onCurrentChangeLocal}\n />\n </Locale>\n );\n}\n","export function toDateDropdown(dropdown) {\n if (!dropdown) dropdown = {};\n if (!dropdown.width) dropdown.width = 'unset';\n return dropdown;\n}\n","import { useState, useEffect, useMemo, useContext } from 'react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport { i18n } from '../context.js';\n\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport Calendar from './Calendar.jsx';\nimport './DatePicker.css';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function DatePicker({\n value: propValue,\n id,\n disabled = false,\n error = false,\n placeholder = '',\n format = '',\n buttons = defaultButtons,\n css = '',\n title = '',\n editable = false,\n clear = false,\n onChange,\n dropdown = {},\n}) {\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n const f = format || formats?.dateFormat;\n let dateFormat =\n typeof f === 'function' ? f : dateToString(f, calendarLocale);\n\n const [value, setValue] = useState(propValue);\n const [popup, setPopup] = useState(false);\n\n // Update local value when prop value changes\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n function oncancel() {\n setPopup(false);\n }\n\n function doChange(v) {\n // skip \"select\" event if the same value\n // or different objects with the same value\n const skipEvent =\n v === value ||\n (v && value && v.valueOf() === value.valueOf()) ||\n (!v && !value);\n\n setValue(v);\n if (!skipEvent) {\n onChange && onChange({ value: v });\n }\n\n // fire after on-click finished\n setTimeout(oncancel, 1);\n }\n\n const formattedValue = useMemo(\n () => (value ? dateFormat(value) : ''),\n [value, dateFormat],\n );\n\n function onchangeHandler({ value: v, input }) {\n if (!editable && !clear) return;\n if (input) return;\n\n // convert to date, but ignore empty string input\n let date =\n typeof editable === 'function' ? editable(v) : v ? new Date(v) : null;\n\n // if date is invalid ( incorrect text input ) then use old value\n // else use the entered date\n // in any case fallback to null, to prevent undefined as value\n date = isNaN(date) ? value || null : date || null;\n doChange(date);\n }\n\n // Handle scroll event on window\n useEffect(() => {\n const handleScroll = oncancel;\n window.addEventListener('scroll', handleScroll);\n return () => window.removeEventListener('scroll', handleScroll);\n }, []);\n\n return (\n <div className=\"wx-1lKOFG wx-datepicker\" onClick={() => setPopup(true)}>\n <Text\n css={css}\n title={title}\n value={formattedValue}\n id={id}\n readonly={!editable}\n disabled={disabled}\n error={error}\n placeholder={placeholder}\n onInput={oncancel}\n onChange={onchangeHandler}\n icon=\"wxi-calendar\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n clear={clear}\n />\n\n {popup && !disabled && (\n <Dropdown\n onCancel={oncancel}\n {...toDateDropdown(dropdown)}\n >\n <Calendar\n buttons={buttons}\n value={value}\n onChange={(e) => doChange(e.value)}\n />\n </Dropdown>\n )}\n </div>\n );\n}\n","import { useState, useEffect, useCallback } from 'react';\nimport Panel from './calendar/Panel';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './RangeCalendar.css';\nimport Locale from '../Locale.jsx';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst RangeCalendar = ({\n start: startProp,\n end: endProp,\n current,\n months = 2,\n markers = null,\n buttons = defaultButtons,\n onChange,\n}) => {\n const [start, setStart] = useWritableProp(startProp);\n const [end, setEnd] = useWritableProp(endProp);\n const [leftCurrent, setLeftCurrent] = useState();\n const [rightCurrent, setRightCurrent] = useState();\n\n const addMonth = useCallback((l, diff, rPrev) => {\n const r = new Date(l);\n r.setMonth(r.getMonth() + diff);\n if (rPrev && r.valueOf() === rPrev.valueOf()) return rPrev;\n return r;\n }, []);\n\n const onLeft = useCallback(\n (v) => {\n setLeftCurrent(() => {\n const newLeft = new Date(v);\n newLeft.setDate(1);\n setRightCurrent(addMonth(newLeft, 1));\n return newLeft;\n });\n },\n [addMonth],\n );\n\n const onRight = useCallback(\n (v) => {\n setRightCurrent(() => {\n const newRight = new Date(v);\n newRight.setDate(1);\n setLeftCurrent(addMonth(newRight, -1));\n return newRight;\n });\n },\n [addMonth],\n );\n\n // Effect for initializing leftCurrent based on start/current\n useEffect(() => {\n const startVal = start;\n const currentVal = current;\n\n if (!leftCurrent) {\n onLeft(startVal ? new Date(startVal) : currentVal || new Date());\n }\n }, [start, current, leftCurrent, onLeft]);\n\n const selectChange = useCallback(\n (ev) => {\n const v = ev.value;\n let s = start,\n e = end;\n const final = v === -1;\n if (!final) {\n if (ev.select) {\n if (!start || end) {\n setStart((s = v));\n setEnd((e = null));\n } else {\n if (start > v) {\n setEnd((e = start));\n setStart((s = v));\n } else {\n setEnd((e = v));\n }\n }\n } else {\n if (!v) {\n setStart((s = null));\n setEnd((e = null));\n } else {\n setStart((s = new Date(v)));\n setEnd((e = new Date(v)));\n }\n }\n }\n\n if (final || !buttons.includes('done'))\n onChange && onChange({ start: s, end: e });\n return [s, e];\n },\n [start, end, buttons, onChange],\n );\n\n const doChangeStart = useCallback(\n (v) => {\n const [s] = selectChange(v);\n if (s) onLeft(new Date(s));\n },\n [onLeft, start, end],\n );\n\n const doChangeEnd = useCallback(\n (v) => {\n const [, e] = selectChange(v);\n if (e) onRight(new Date(e));\n },\n [onRight, start, end],\n );\n\n if (!leftCurrent || !rightCurrent) return null;\n\n if (months === 1) {\n return (\n <Locale>\n <Panel\n value={{ start, end }}\n current={leftCurrent}\n markers={markers}\n buttons={buttons}\n part=\"both\"\n onChange={doChangeStart}\n onCurrentChange={onLeft}\n />\n </Locale>\n );\n } else {\n return (\n <Locale>\n <div className=\"wx-p2jCaW wx-rangecalendar\">\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={leftCurrent}\n markers={markers}\n buttons={false}\n part=\"left\"\n onChange={doChangeStart}\n onCurrentChange={onLeft}\n />\n </div>\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={rightCurrent}\n markers={markers}\n buttons={buttons}\n part=\"right\"\n onChange={doChangeEnd}\n onCurrentChange={onRight}\n />\n </div>\n </div>\n </Locale>\n );\n }\n};\n\nexport default RangeCalendar;\n","import { useState, useEffect, useMemo, useContext, useCallback } from 'react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { i18n } from '../context.js';\n\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport RangeCalendar from './RangeCalendar.jsx';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst DateRangePicker = ({\n value: valueProp,\n onChange,\n id,\n disabled = false,\n error = false,\n placeholder = '',\n css = '',\n title = '',\n format = '',\n months = 2,\n buttons = defaultButtons,\n editable = false,\n clear = false,\n dropdown,\n}) => {\n const [value, setValue] = useWritableProp(valueProp);\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n\n const f = format || formats?.dateFormat;\n const dateFormat =\n typeof f === 'function' ? f : dateToString(f, calendarLocale);\n\n const [popup, setPopup] = useState(false);\n\n const onCancel = useCallback(() => {\n setPopup(false);\n }, []);\n\n const formattedValue = useMemo(() => {\n return value\n ? value.start\n ? dateFormat(value.start) +\n (value.end ? ` - ${dateFormat(value.end)}` : '')\n : dateFormat(value)\n : '';\n }, [value, dateFormat]);\n\n const start = useMemo(() => {\n return value ? value.start || null : null;\n }, [value]);\n\n const end = useMemo(() => {\n return value ? value.end || null : null;\n }, [value]);\n\n const doChange = useCallback(\n (d) => {\n const newValue = d.start || d.end ? { start: d.start, end: d.end } : null;\n\n // Handle both cases: either external setValue or onChange prop\n if (setValue) {\n setValue(newValue);\n } else {\n // Parent must handle value prop update via onChange\n }\n\n // fire after on-click finished\n if ((d.start && d.end) || (!d.start && !d.end)) {\n // FIXME - select event will trigger even if the same value\n if (onChange) {\n onChange({ value: newValue });\n }\n setTimeout(onCancel, 1);\n }\n },\n [onChange, onCancel, setValue],\n );\n\n const doInputChange = useCallback(\n (ev) => {\n if (!editable && !clear) return;\n\n const { value: v, input } = ev;\n if (input) return;\n\n const [s, e] = v.split(' -').map((a, i) => {\n const av = a.trim();\n let date =\n typeof editable === 'function'\n ? editable(av)\n : av\n ? new Date(av)\n : null;\n\n // if date is invalid ( incorrect text input ) then use old value\n // else use the entered date\n // in any case fallback to null, to prevent undefined as value\n let val = i === 0 ? start : end;\n return isNaN(date) ? (val ? val : null) : date || null;\n });\n\n doChange({ start: s, end: e });\n },\n [editable, clear, start, end, doChange],\n );\n\n useEffect(() => {\n const handleScroll = () => {\n onCancel();\n };\n\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, [onCancel]);\n\n return (\n <div\n className={`wx-1b0WDQ wx-daterangepicker ${disabled ? 'wx-disabled' : ''} ${error ? 'wx-error' : ''}`}\n onClick={() => setPopup(true)}\n >\n <Text\n css={css}\n title={title}\n value={formattedValue}\n id={id}\n readonly={!editable}\n disabled={disabled}\n placeholder={placeholder}\n error={error}\n onChange={doInputChange}\n icon=\"wxi-calendar\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n clear={clear}\n />\n\n {popup && !disabled && (\n <Dropdown\n onCancel={onCancel}\n {...toDateDropdown(dropdown)}\n >\n <RangeCalendar\n onCancel={onCancel}\n buttons={buttons}\n start={start}\n end={end}\n months={months}\n onChange={doChange}\n />\n </Dropdown>\n )}\n </div>\n );\n};\n\nexport default DateRangePicker;\n\nimport './DateRangePicker.css';\n","import { useEffect, useRef, useState, useMemo } from 'react';\nimport { useHotkeys } from '@svar-ui/lib-react';\nimport Button from './Button.jsx';\nimport './Fullscreen.css';\n\nexport default function Fullscreen({\n hotkey = null,\n toggleButton,\n children,\n}) {\n const nodeRef = useRef(null);\n const [inFullscreen, setInFullscreen] = useState(false);\n\n const icon = useMemo(\n () => `wxi-${inFullscreen ? 'collapse' : 'expand'}`,\n [inFullscreen],\n );\n\n const toggleFullscreen = useRef(null);\n toggleFullscreen.current = () => {\n const node = nodeRef.current;\n if (!inFullscreen && node) {\n node.requestFullscreen();\n } else if (inFullscreen) {\n document.exitFullscreen();\n }\n setInFullscreen((prev) => !prev);\n };\n\n useHotkeys({ [hotkey]: () => toggleFullscreen.current() }, nodeRef);\n\n useEffect(() => {\n const setFullscreenState = () => {\n setInFullscreen(document.fullscreenElement === nodeRef.current);\n };\n\n document.addEventListener('fullscreenchange', setFullscreenState);\n return () => {\n document.removeEventListener('fullscreenchange', setFullscreenState);\n };\n }, []);\n\n return (\n <div className=\"wx-13aa5W wx-fullscreen\" ref={nodeRef} tabIndex={-1}>\n {children}\n {toggleButton ? (\n toggleButton(toggleFullscreen.current, inFullscreen)\n ) : (\n <Button css=\"wx-13aa5W wx-fullscreen-button\" onClick={toggleFullscreen.current}>\n <i className={`wx-13aa5W ${icon} wx-fullscreen-icon`}> </i>\n </Button>\n )}\n </div>\n );\n}\n","import './Icon.css';\n\nexport default function Icon({ css = '', title = '', children, onClick }) {\n if (children) {\n return (\n <i\n title={title}\n role=\"img\"\n className={`wx-mdnST1 wx-icon ${css}`}\n onClick={onClick}\n >\n {children}\n </i>\n );\n } else {\n return (\n <i\n title={title}\n className={`wx-mdnST1 wx-icon ${css}`}\n onClick={onClick}\n />\n );\n }\n}\n","import { useState, useMemo, useRef, useCallback } from 'react';\nimport { useWritableProp, snippet } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport List from './helpers/SuggestDropdown.jsx';\nimport './MultiCombo.css';\n\nconst defaultValue = [];\n\nexport default function MultiCombo({\n id,\n value: valueProp = defaultValue,\n options = [],\n textOptions = null,\n textField = 'label',\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n checkboxes = false,\n onChange,\n children,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const navigate = useRef(null);\n const keydown = useRef(null);\n\n const [value, setValue] = useWritableProp(valueProp);\n\n const [text, setText] = useState('');\n const [focus, setFocus] = useState(false);\n const inputElement = useRef(null);\n\n const selected = useMemo(() => {\n return value\n ? (textOptions || options).filter((i) => value.includes(i.id))\n : [];\n }, [value, textOptions, options]);\n\n const filterOptions = useMemo(() => {\n const o = options;\n return text\n ? o.filter((i) => i[textField].toLowerCase().includes(text.toLowerCase()))\n : o;\n }, [text, options, textField]);\n\n const onready = useCallback((ev) => {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }, []);\n\n const input = useCallback(() => {\n if (filterOptions.length) navigate.current(0);\n else navigate.current(null);\n }, [filterOptions]);\n\n const onselect = useCallback(\n (ev) => {\n const { id } = ev;\n if (id) {\n setValue(id);\n onChange && onChange({ value: id });\n inputElement.current.focus();\n }\n },\n [onChange],\n );\n\n const remove = useCallback(\n (id, ev) => {\n if (ev) ev.stopPropagation();\n\n const next = value.filter((i) => i !== id);\n setValue(next);\n onChange && onChange({ value: next });\n },\n [value, onChange],\n );\n\n const index = useCallback(\n () =>\n value && value.length\n ? filterOptions.findIndex((i) => i.id === value[0])\n : 0,\n [value, filterOptions],\n );\n\n const onClickHandler = useCallback(() => {\n if (!disabled) {\n inputElement.current.focus();\n navigate.current(index());\n }\n }, [disabled, index]);\n\n return (\n <div\n title={title}\n className={\n 'wx-12Wj21 wx-multicombo ' +\n `${error ? 'wx-error' : ''} ${disabled ? 'wx-disabled' : ''} ${selected.length ? 'wx-not-empty' : ''} ${focus && !disabled ? 'wx-focus' : ''}`\n }\n onClick={onClickHandler}\n onKeyDown={(ev) => keydown.current(ev, index())}\n >\n <div className=\"wx-12Wj21 wx-wrapper\">\n <div className=\"wx-12Wj21 wx-tags\">\n {selected.map((tag) => (\n <div key={tag.id} className=\"wx-12Wj21 wx-tag\">\n {children ? snippet(children, { option: tag }) : tag[textField]}\n {!disabled && (\n <i\n className=\"wx-12Wj21 wx-icon wxi-close\"\n onClick={(ev) => remove(tag.id, ev)}\n ></i>\n )}\n </div>\n ))}\n </div>\n <div className=\"wx-12Wj21 wx-select\">\n <input\n className=\"wx-12Wj21 wx-input\"\n id={inputId}\n type=\"text\"\n value={text}\n onChange={(ev) => setText(ev.target.value)}\n onInput={input}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n ref={inputElement}\n />\n <i className=\"wx-12Wj21 wx-icon wxi-angle-down\"></i>\n </div>\n </div>\n\n {!disabled && (\n <List\n items={filterOptions}\n multiselect={true}\n onReady={onready}\n onSelect={onselect}\n checkboxes={checkboxes}\n value={value}\n {...dropdown}\n >\n {({ option }) => (\n <>\n {children ? snippet(children, { option }) : option[textField]}\n </>\n )}\n </List>\n )}\n </div>\n );\n}\n","import { useContext } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { i18n } from '../context.js';\nimport './Pager.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nconst Pager = ({\n total = 0,\n pageSize: initialPageSize = 20,\n value: initialValue = 1,\n onChange,\n}) => {\n const [pageSize, setPageSize] = useWritableProp(initialPageSize);\n const [value, setValue] = useWritableProp(initialValue);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const pageCount = Math.ceil(total / pageSize);\n const from = (value - 1) * pageSize;\n const to = Math.min(value * pageSize, total);\n\n const setInnerValue = (v, final) => {\n if (Number.isNaN(v)) return;\n\n if (!final) setValue(v);\n v = Math.max(1, Math.min(v, pageCount));\n if (final) setValue(v);\n\n if (v === value) return;\n setTimeout(() => {\n onChange &&\n onChange({\n value: v,\n from: (v - 1) * pageSize,\n to: Math.min(v * pageSize, total),\n pageSize: pageSize,\n });\n });\n };\n\n function setActivePage(id) {\n switch (id) {\n case 'first':\n setInnerValue(1);\n break;\n\n case 'prev':\n setInnerValue(value - 1);\n break;\n\n case 'next':\n setInnerValue(value + 1);\n break;\n\n case 'last':\n setInnerValue(pageCount);\n break;\n\n default:\n break;\n }\n }\n\n const onPageSizeInput = (e) => {\n const newValue = e.target.value * 1;\n if (Number.isNaN(newValue)) {\n return;\n }\n\n setPageSize(newValue);\n onChange && onChange({ value, from, to, pageSize: newValue });\n };\n\n return (\n <div className=\"wx-35Np0p wx-pager\">\n <div className=\"wx-35Np0p wx-left\">\n <span>{_('Rows per page')}: </span>\n <input\n type=\"number\"\n min={1}\n className=\"wx-35Np0p wx-input\"\n value={pageSize}\n onChange={onPageSizeInput}\n />\n </div>\n\n <div className=\"wx-35Np0p wx-center\">\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-dbl-left' +\n (value === 1 ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('first')}\n ></i>\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-left' +\n (value === 1 ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('prev')}\n ></i>\n <input\n type=\"text\"\n value={value}\n className=\"wx-35Np0p wx-input\"\n onChange={(e) => setInnerValue(e.target.value * 1)}\n onBlur={(e) => setInnerValue(e.target.value * 1, true)}\n />\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-right' +\n (value === pageCount ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('next')}\n ></i>\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-dbl-right' +\n (value === pageCount ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('last')}\n ></i>\n </div>\n\n <div className=\"wx-35Np0p wx-right\">\n {_('Total pages')}: {pageCount}\n </div>\n </div>\n );\n};\n\nexport default Pager;\n","import { useState } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport { useId } from 'react';\nimport './RadioButton.css';\n\nexport default function RadioButton({\n id,\n label = '',\n value: externalValue,\n name = '',\n inputValue = '',\n disabled = false,\n onChange,\n}) {\n const fallbackId = useId();\n const inputId = useInputId(id) || fallbackId;\n // Internal state for uncontrolled behavior\n const [internalValue, setInternalValue] = useState(false);\n\n // Determine which value to use (controlled vs uncontrolled)\n // For React, we need to handle both cases\n const isControlled = externalValue !== undefined;\n const currentValue = isControlled ? externalValue : internalValue;\n\n function handlerChange(ev) {\n const newValue = ev.target.checked;\n\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n if (newValue && onChange) {\n onChange({ value: true, inputValue });\n }\n }\n\n return (\n <div className=\"wx-3lDF1s wx-radio\">\n <input\n type=\"radio\"\n className=\"wx-3lDF1s wx-input\"\n id={inputId}\n disabled={disabled}\n name={name}\n value={inputValue}\n checked={currentValue}\n onChange={handlerChange}\n />\n <label htmlFor={inputId} className=\"wx-3lDF1s wx-label\">\n <span className=\"wx-3lDF1s wx-circle\"></span>\n {label && <span className=\"wx-3lDF1s wx-radio-text\">{label}</span>}\n </label>\n </div>\n );\n}\n","import { uid } from '@svar-ui/lib-dom';\nimport { useState, useEffect } from 'react';\nimport RadioButton from './RadioButton.jsx';\nimport { fieldId } from \"../context\";\nimport './RadioButtonGroup.css';\n\n\nexport default function RadioButtonGroup({\n options = [{}],\n value = '',\n onChange,\n type = '',\n}) {\n const name = uid();\n\n const [currentValue, setCurrentValue] = useState(value);\n\n useEffect(() => {\n setCurrentValue(value);\n }, [value]);\n\n function handleChange(ev) {\n const newValue = ev.inputValue;\n setCurrentValue(newValue);\n if (onChange) {\n onChange({ value: newValue });\n }\n }\n\n return (\n <fieldId.Provider value={null}>\n <div className={`wx-38w70j wx-radiogroup ${type && `wx-${type}`}`}>\n {options.map((option) => (\n <div key={option.id} className=\"wx-38w70j wx-item\">\n <RadioButton\n label={option.label}\n inputValue={option.id}\n value={currentValue === option.id}\n name={name}\n onChange={handleChange}\n />\n </div>\n ))}\n </div>\n </fieldId.Provider>\n );\n}\n","import { useRef, useCallback, useMemo } from 'react';\nimport List from './helpers/SuggestDropdown.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './RichSelect.css';\n\nexport default function RichSelect({\n value: propertyValue = '',\n options = [],\n textOptions = null,\n placeholder = '',\n disabled = false,\n error = false,\n title = '',\n textField = 'label',\n clear = false,\n children: kids,\n onChange,\n dropdown = {},\n}) {\n const navigate = useRef(null);\n const keydown = useRef(null);\n let [value, setValue] = useWritableProp(propertyValue);\n\n function ready(ev) {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }\n\n const selected = useMemo(() => {\n return value || value === 0\n ? (textOptions || options).find((a) => a.id === value)\n : null;\n }, [value, textOptions, options]);\n\n const select = useCallback(\n ({ id }) => {\n if (id || id === 0) {\n setValue(id);\n navigate.current(null);\n onChange && onChange({ value: id });\n }\n },\n [setValue, onChange],\n );\n\n const unselect = useCallback(\n (ev) => {\n ev.stopPropagation();\n setValue('');\n onChange && onChange({ value: '' });\n },\n [setValue, onChange],\n );\n\n const index = useCallback(() => {\n return options.findIndex((a) => a.id === value);\n }, [options, value]);\n\n return (\n <div\n className={`wx-2YgblL wx-richselect ${error ? 'wx-2YgblL wx-error' : ''} ${disabled ? 'wx-2YgblL wx-disabled' : ''} ${!kids ? 'wx-2YgblL wx-nowrap' : ''}`}\n title={title}\n onClick={() => navigate.current(index())}\n onKeyDown={(ev) => keydown.current(ev, index())}\n tabIndex={0}\n >\n <div className=\"wx-2YgblL wx-label\">\n {selected ? (\n kids ? (\n kids(selected)\n ) : (\n selected[textField]\n )\n ) : placeholder ? (\n <span className=\"wx-2YgblL wx-placeholder\">{placeholder}</span>\n ) : (\n '\\u00A0'\n )}\n </div>\n\n {clear && !disabled && value ? (\n <i className=\"wx-2YgblL wx-icon wxi-close\" onClick={unselect} />\n ) : (\n <i className=\"wx-2YgblL wx-icon wxi-angle-down\" />\n )}\n\n {!disabled && (\n <List items={options} onReady={ready} onSelect={select} {...dropdown}>\n {({ option }) => (kids ? kids(option) : option[textField])}\n </List>\n )}\n </div>\n );\n}\n","import { useState, useEffect } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport './Segmented.css';\n\nconst Segmented = ({\n options = [],\n value = '',\n css = '',\n children,\n onChange,\n}) => {\n // Note: Using additional state for controlled/uncontrolled handling since React doesn't allow direct prop mutation\n const [internalValue, setInternalValue] = useState(value);\n\n const handleClick = (id) => {\n setInternalValue(id);\n if (onChange) {\n onChange({ value: id });\n }\n };\n\n // Ensure internal value stays in sync with external value changes\n useEffect(() => {\n setInternalValue(value);\n }, [value]);\n\n return (\n <div className={'wx-0hMO7P' + ` wx-segmented ${css}`}>\n {options.map((option) => (\n <button\n key={option.id}\n className={\n 'wx-0hMO7P' +\n ` wx-segment ${option.css} ${option.id === internalValue ? 'wx-selected' : ''}`\n }\n title={option.title}\n onClick={() => handleClick(option.id)}\n >\n {children ? (\n snippet(children, { option })\n ) : (\n <>\n {option.icon && (\n <i\n className={\n 'wx-0hMO7P' +\n ` wx-icon ${option.icon} ${!option.label ? 'wx-only' : ''}`\n }\n ></i>\n )}\n {option.label && (\n <span className=\"wx-0hMO7P wx-label\">{option.label}</span>\n )}\n </>\n )}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Segmented;\n","import { useState, useCallback } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Select.css';\n\nexport default function Select({\n value: valueProp,\n options = [],\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n textField = 'label',\n clear = false,\n id,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useState(valueProp || '');\n\n const handleChange = useCallback(\n (event) => {\n const newValue = event.target.value;\n setValue(newValue);\n if (onChange) onChange({ value: newValue });\n },\n [onChange],\n );\n\n const unselect = useCallback(() => {\n setValue('');\n if (onChange) onChange({ value: '' });\n }, [onChange]);\n\n return (\n <div className=\"wx-2yx1Fo wx-select-box\">\n <select\n id={inputId}\n value={value}\n disabled={disabled}\n className={`wx-2yx1Fo wx-select ${error ? 'wx-2yx1Fo wx-error' : ''}`}\n title={title}\n onChange={handleChange}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((option) => (\n <option key={option.id} value={option.id}>\n {option[textField]}\n </option>\n ))}\n </select>\n\n {clear && !disabled && value ? (\n <i className=\"wx-2yx1Fo wx-icon wxi-close\" onClick={unselect}></i>\n ) : (\n <i className=\"wx-2yx1Fo wx-icon wxi-angle-down\"></i>\n )}\n </div>\n );\n}\n","import { useEffect, useMemo, useRef } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Slider.css';\n\nexport default function Slider({\n id,\n label = '',\n css = '',\n min = 0,\n max = 100,\n value: initialValue = 0,\n step = 1,\n title = '',\n disabled = false,\n onChange,\n width = \"\",\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n const previous = useRef({ value: value, input: value });\n\n const progress = useMemo(\n () => ((value - min) / (max - min)) * 100 + '%',\n [value, min, max],\n );\n\n const bgStyle = useMemo(() => {\n return disabled\n ? ''\n : `linear-gradient(90deg, var(--wx-slider-primary) 0% ${progress}, var(--wx-slider-background) ${progress} 100%)`;\n }, [disabled, progress]);\n\n function oninput({ target }) {\n const newValue = target.value * 1;\n setValue(newValue);\n onChange &&\n onChange({\n value: newValue,\n previous: previous.current.input,\n input: true,\n });\n previous.current.input = newValue;\n }\n\n function onslider({ target }) {\n const newValue = target.value * 1;\n setValue(newValue);\n onChange && onChange({ value: newValue, previous: previous.current.value });\n previous.current.value = newValue;\n }\n\n // Sync if props.value changes externally\n useEffect(() => {\n setValue(initialValue);\n }, [initialValue]);\n\n const inputRef = useRef(null);\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.addEventListener('change', onslider);\n return () => {\n if (inputRef.current) {\n inputRef.current.removeEventListener('change', onslider);\n }\n };\n }\n }, [inputRef, onslider]);\n\n const style = {...(width && { width })};\n\n return (\n <div className={`wx-2EDJ8G wx-slider ${css}`} style={style} title={title}>\n {label && (\n <label className=\"wx-2EDJ8G wx-label\" htmlFor={inputId}>\n {label}\n </label>\n )}\n <div className=\"wx-2EDJ8G wx-inner\">\n <input\n id={inputId}\n className=\"wx-2EDJ8G wx-input\"\n type=\"range\"\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n value={value}\n onInput={oninput}\n style={{ background: bgStyle }}\n ref={inputRef}\n />\n </div>\n </div>\n );\n}\n","import { useCallback } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Switch.css';\n\nexport default function Switch({\n id,\n value: initialValue = false,\n disabled = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n\n const handleChange = useCallback(\n (event) => {\n const newValue = event.target.checked;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n },\n [onChange],\n );\n\n return (\n <label className=\"wx-2dAR5c wx-switch\">\n <input\n className=\"wx-2dAR5c wx-input\"\n type=\"checkbox\"\n checked={value}\n onChange={handleChange}\n disabled={disabled}\n id={inputId}\n />\n <span className=\"wx-2dAR5c wx-box\" />\n </label>\n );\n}\n","import { useWritableProp } from '@svar-ui/lib-react';\nimport './Tabs.css';\n\nconst Tabs = ({\n options = [],\n value: propValue = '',\n type = 'top',\n css = '',\n onChange,\n}) => {\n const [value, setValue] = useWritableProp(propValue);\n\n const handleClick = (optionId) => {\n setValue(optionId);\n if (onChange) {\n onChange({ value: optionId });\n }\n };\n\n return (\n <div className={'wx-138fWJ ' + `wx-tabs wx-${type} ${css}`}>\n {options.map((option) => (\n <button\n key={option.id}\n className={\n 'wx-138fWJ ' +\n `wx-tab ${option.css} ${option.id === value ? 'wx-active' : ''}`\n }\n title={option.title}\n onClick={() => handleClick(option.id)}\n >\n {option.icon && (\n <i\n className={\n 'wx-138fWJ ' +\n `wx-icon ${option.icon} ${!option.label ? 'wx-only' : ''}`\n }\n ></i>\n )}\n {option.label && (\n <span className=\"wx-138fWJ wx-label\">{option.label}</span>\n )}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Tabs;\n","import { useCallback } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Counter.css';\n\nconst Counter = ({\n id,\n value: initialValue = 0,\n step = 1,\n min = 0,\n max = Infinity,\n error = false,\n disabled = false,\n readonly = false,\n onChange,\n}) => {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n\n const dec = useCallback(() => {\n if (readonly || value <= min) return;\n const newValue = value - step;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }, [value, readonly, min, step, onChange]);\n\n const inc = useCallback(() => {\n if (readonly || value >= max) return;\n const newValue = value + step;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }, [value, readonly, max, step, onChange]);\n\n const blur = useCallback(() => {\n if (!readonly) {\n const tValue =\n Math.round(Math.min(max, Math.max(value, min)) / step) * step;\n const newValue = isNaN(tValue) ? Math.max(min, 0) : tValue;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }\n }, [readonly, value, max, min, step, onChange]);\n\n const input = useCallback(\n (e) => {\n const newValue = e.target.value * 1;\n setValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [onChange],\n );\n\n return (\n <div\n className={\n 'wx-22t21n ' +\n `wx-counter ${disabled ? 'wx-disabled' : ''} ${readonly ? 'wx-readonly' : ''} ${error ? 'wx-error' : ''}`\n }\n >\n <button\n aria-label=\"-\"\n className={'wx-22t21n ' + 'wx-btn wx-btn-dec'}\n disabled={disabled}\n onClick={dec}\n >\n <svg\n className={'wx-22t21n ' + 'wx-dec'}\n width=\"12\"\n height=\"2\"\n viewBox=\"0 0 12 2\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M11.2501 1.74994H0.750092V0.249939H11.2501V1.74994Z\" />\n </svg>\n </button>\n <input\n id={inputId}\n type=\"text\"\n className={'wx-22t21n ' + 'wx-input'}\n disabled={disabled}\n readOnly={readonly}\n required\n value={value}\n onBlur={blur}\n onInput={input}\n />\n <button\n aria-label=\"-\"\n className={'wx-22t21n ' + 'wx-btn wx-btn-inc'}\n disabled={disabled}\n onClick={inc}\n >\n <svg\n className={'wx-22t21n ' + 'wx-inc'}\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.2501\n\t\t\t\t\t\t\t\t6.74994H6.75009V11.2499H5.25009V6.74994H0.750092V5.24994H5.25009V0.749939H6.75009V5.24994H11.2501V6.74994Z\"\n />\n </svg>\n </button>\n </div>\n );\n};\n\nexport default Counter;\n","import './Notice.css';\n\nexport default function Notice({ notice = {} }) {\n function onRemove() {\n if (notice.remove) notice.remove();\n }\n\n return (\n <div\n className={`wx-11sNg5 wx-notice wx-${notice.type ? notice.type : ''}`}\n role=\"status\"\n aria-live=\"polite\"\n >\n <div className=\"wx-11sNg5 wx-text\">{notice.text}</div>\n <div className=\"wx-11sNg5 wx-button\">\n <i className=\"wx-11sNg5 wxi-close\" onClick={onRemove} />\n </div>\n </div>\n );\n}\n","import Notice from './Notice.jsx';\nimport './Notices.css';\n\nexport default function Notices({ data = [] }) {\n return (\n <div className=\"wx-3nwoO9 wx-notices\">\n {data.map((notice) => (\n <Notice key={notice.id} notice={notice} />\n ))}\n </div>\n );\n}\n","import { useRef, useEffect, useContext } from 'react';\nimport Button from './Button.jsx';\nimport { i18n } from '../context.js';\nimport './Modal.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nexport default function Modal({\n title = '',\n buttons = ['cancel', 'ok'],\n header,\n children,\n footer,\n onConfirm,\n onCancel,\n}) {\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n const modal = useRef(null);\n\n useEffect(() => {\n modal.current?.focus();\n }, []);\n\n function keydown(ev) {\n switch (ev.code) {\n case 'Enter': {\n const from = ev.target.tagName;\n if (from === 'TEXTAREA' || from === 'BUTTON') return;\n onConfirm && onConfirm({ event: ev });\n break;\n }\n case 'Escape':\n onCancel && onCancel({ event: ev });\n break;\n }\n }\n\n function onclick(ev, button) {\n const pack = { event: ev, button };\n if (button === 'cancel') {\n onCancel && onCancel(pack);\n } else {\n onConfirm && onConfirm(pack);\n }\n }\n\n return (\n <div\n className=\"wx-1FxkZa wx-modal\"\n ref={modal}\n tabIndex={0}\n onKeyDown={keydown}\n >\n <div className=\"wx-1FxkZa wx-window\">\n {header ? (\n header\n ) : title ? (\n <div className=\"wx-1FxkZa wx-header\">{title}</div>\n ) : null}\n\n <div>{children}</div>\n\n {footer\n ? footer\n : buttons && (\n <div className=\"wx-1FxkZa wx-buttons\">\n {buttons.map((button) => (\n <div key={button} className=\"wx-1FxkZa wx-button\">\n <Button\n type={`block ${button === 'ok' ? 'primary' : 'secondary'}`}\n onClick={(ev) => onclick(ev, button)}\n >\n {_(button)}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { useState, useImperativeHandle, forwardRef } from 'react';\nimport Notices from './Notices.jsx';\nimport Modal from './Modal.jsx';\n\nimport { uid } from '@svar-ui/lib-dom';\n\nfunction Globals({ children }, apiRef) {\n const [modal, setModal] = useState(null);\n const [notices, setNotices] = useState([]);\n\n useImperativeHandle(\n apiRef,\n () => ({\n showModal: (msg) => {\n const modalObj = { ...msg };\n setModal(modalObj);\n return new Promise((res, rej) => {\n modalObj.resolve = (v) => {\n setModal(null);\n res(v);\n };\n modalObj.reject = (v) => {\n setModal(null);\n rej(v);\n };\n });\n },\n showNotice: (msg) => {\n msg = { ...msg };\n msg.id = msg.id || uid();\n msg.remove = () =>\n setNotices((prev) => prev.filter((a) => a.id !== msg.id));\n\n if (msg.expire != -1) {\n setTimeout(msg.remove, msg.expire || 5100);\n }\n setNotices((prev) => [...prev, msg]);\n },\n }),\n [],\n );\n\n return (\n <>\n {children}\n {modal && (\n <Modal\n title={modal.title}\n buttons={modal.buttons}\n onConfirm={modal.resolve}\n onCancel={modal.reject}\n >\n {modal.message}\n </Modal>\n )}\n <Notices data={notices} />\n </>\n );\n}\n\nconst GlobalsComponentWithRef = forwardRef(Globals);\nexport default GlobalsComponentWithRef;\n","import { useMemo, useRef } from 'react';\nimport { helpers } from './context';\nimport Globals from './components/Globals.jsx';\n\nexport default function Component(props) {\n let { children } = props;\n let api = useRef();\n\n const l = useMemo(() => {\n return {\n showNotice: (msg) => api.current.showNotice(msg),\n showModal: (msg) => api.current.showModal(msg),\n };\n }, []);\n\n return (\n <helpers.Provider value={l}>\n <Globals ref={api}>{children}</Globals>\n </helpers.Provider>\n );\n}\n","import { useMemo } from 'react';\nimport { uid } from '@svar-ui/lib-dom';\nimport { fieldId } from \"../context\";\nimport './Field.css';\n\nexport default function Field({\n label = '',\n position = '',\n error = false,\n type = '',\n required = false,\n id,\n children,\n width = \"\",\n}) {\n const inputId = useMemo(() => (id === undefined ? uid() : id), [id]);\n const style = {...(width && { width })};\n\n return (\n <fieldId.Provider value={inputId}>\n <div\n style={style}\n className={`wx-2oVUvC wx-field wx-${position} ${error ? 'wx-error' : ''} ${required ? 'wx-required' : ''}`.trim()}\n >\n {label && (\n inputId\n ? <label className=\"wx-2oVUvC wx-label\" htmlFor={inputId}>{label}</label>\n : <div className=\"wx-2oVUvC wx-label\">{label}</div>\n )}\n <div className={`wx-2oVUvC wx-field-control wx-${type}`}>\n {children}\n </div>\n </div>\n </fieldId.Provider>\n );\n}\n","import { useCallback, useMemo } from 'react';\nimport { snippet, useWritableProp } from '@svar-ui/lib-react';\nimport Button from './Button.jsx';\n\nconst TwoState = ({\n value: initialValue = false,\n type = '',\n icon = '',\n disabled = false,\n iconActive = '',\n onClick,\n title = '',\n css = '',\n text = '',\n textActive = '',\n children,\n active,\n onChange,\n}) => {\n const [value, setValue] = useWritableProp(initialValue);\n\n const typeStr = useMemo(() => {\n return (value ? 'pressed' : '') + (type ? ' ' + type : '');\n }, [value, type]);\n\n const handleClick = useCallback(\n (ev) => {\n let next = !value;\n if (onClick) onClick(ev);\n if (!ev.defaultPrevented) {\n setValue(next);\n onChange && onChange({ value: next });\n }\n },\n [value, onClick, onChange],\n );\n\n if (value && active) {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n >\n {snippet(active, { value })}\n </Button>\n );\n } else if (children) {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n >\n {children}\n </Button>\n );\n } else {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n />\n );\n }\n};\n\nexport default TwoState;\n","import { useState, useMemo, useContext, useCallback } from 'react';\nimport Field from './Field.jsx';\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport Slider from './Slider.jsx';\nimport TwoState from './TwoState.jsx';\nimport { i18n } from '../context.js';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport './TimePicker.css';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defValue = new Date(0, 0, 0, 0, 0);\n\nexport default function TimePicker({\n value: propertyValue = defValue,\n id,\n title = '',\n css = '',\n disabled = false,\n error = false,\n format = '',\n onChange,\n dropdown,\n}) {\n let [value, setValue] = useWritableProp(propertyValue);\n\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n const h12 = calendarLocale.clockFormat == 12;\n\n const maxH = 23;\n const maxM = 59;\n\n const timeFormat = useMemo(() => {\n const f = format || formats?.timeFormat;\n return typeof f === 'function' ? f : dateToString(f, calendarLocale);\n }, [format, formats, calendarLocale]);\n\n const zeroBased = useMemo(() => {\n return timeFormat(new Date(0, 0, 0, 1)).indexOf('01') != -1;\n }, [timeFormat]);\n\n const formatTime = (v, zeroBased) => {\n return (v < 10 && zeroBased ? `0${v}` : `${v}`).slice(-2);\n };\n\n const formatM = (v) => {\n return formatTime(v, true);\n };\n\n const getNumber = (v) => {\n return `${v}`.replace(/[^\\d]/g, '') || 0;\n };\n const formatH = (v) => {\n if (h12) {\n v = v % 12;\n if (v === 0) return '12';\n }\n return formatTime(v, zeroBased);\n };\n\n const update = useCallback((v, max) => {\n v = getNumber(v);\n return Math.min(v, max);\n }, []);\n\n const [popup, setPopup] = useState(null);\n\n const safeValue = value || defValue;\n\n const h = update(safeValue.getHours(), maxH);\n const m = update(safeValue.getMinutes(), maxM);\n\n const pm = h > 12;\n\n const hText = formatH(h);\n const mText = formatM(m);\n const textValue = useMemo(\n () => timeFormat(new Date(0, 0, 0, h, m)),\n [h, m, timeFormat],\n );\n\n const click = useCallback(() => {\n setPopup(true);\n }, []);\n\n const togglePM = useCallback(() => {\n const next = new Date(safeValue);\n next.setHours(next.getHours() + (pm ? -12 : 12));\n setValue(next);\n if (onChange) onChange({ value: next });\n }, [safeValue, pm, onChange]);\n\n const setHours = useCallback(\n ({ value: v }) => {\n if (safeValue.getHours() === v) return;\n\n const next = new Date(safeValue);\n next.setHours(v);\n setValue(next);\n if (onChange) onChange({ value: next });\n },\n [safeValue, onChange],\n );\n\n const setMinutes = useCallback(\n ({ value: v }) => {\n if (safeValue.getMinutes() === v) return;\n\n const next = new Date(safeValue);\n next.setMinutes(v);\n setValue(next);\n if (onChange) onChange({ value: next });\n },\n [safeValue, onChange],\n );\n\n const updateH = useCallback(\n (v) => {\n v = update(v, maxH);\n if (h12) {\n v = v * 1;\n if (v === 12) v = 0;\n if (pm) v += 12;\n }\n return v;\n },\n [update, h12, pm],\n );\n\n const oncancel = useCallback(() => {\n setPopup(null);\n }, []);\n\n return (\n <div\n className={`wx-7f497i wx-timepicker ${error ? 'wx-7f497i wx-error' : ''} ${disabled ? 'wx-7f497i wx-disabled' : ''}`}\n onClick={disabled ? undefined : click}\n style={{ cursor: disabled ? 'default' : 'pointer' }}\n >\n <Text\n id={id}\n css={css}\n title={title}\n value={textValue}\n readonly={true}\n disabled={disabled}\n error={error}\n icon=\"wxi-clock\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n />\n\n {popup && !disabled && (\n <Dropdown onCancel={oncancel} {...toDateDropdown(dropdown)}>\n <div className=\"wx-7f497i wx-wrapper\">\n <div className=\"wx-7f497i wx-timer\">\n <input\n className=\"wx-7f497i wx-digit\"\n value={hText}\n onChange={(ev) => {\n const val = updateH(ev.target.value);\n setHours({ value: val });\n }}\n />\n <div className=\"wx-7f497i wx-separator\">:</div>\n <input\n className=\"wx-7f497i wx-digit\"\n value={mText}\n onChange={(ev) => {\n const val = update(ev.target.value, maxM);\n setMinutes({ value: val });\n }}\n />\n {h12 && (\n <TwoState\n value={pm}\n onClick={togglePM}\n active={() => <span>pm</span>}\n >\n <span>am</span>\n </TwoState>\n )}\n </div>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.hours}\n value={h}\n width=\"unset\"\n onChange={setHours}\n max={maxH}\n />\n </Field>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.minutes}\n value={m}\n width=\"unset\"\n onChange={setMinutes}\n max={maxM}\n />\n </Field>\n </div>\n </Dropdown>\n )}\n </div>\n );\n}\n","import './ModalArea.css';\n\nexport default function ModalArea({ children }) {\n return (\n <div className=\"wx-KgpO9N wx-modal\">\n <div className=\"wx-KgpO9N wx-window\">{children}</div>\n </div>\n );\n}\n","import { useRef, useEffect } from 'react';\nimport { clickOutside } from '@svar-ui/lib-dom';\nimport './SideArea.css';\n\nexport default function SideArea({ position = 'right', children, onCancel }) {\n const divRef = useRef(null);\n\n useEffect(() => {\n return clickOutside(divRef.current, onCancel).destroy;\n }, []);\n\n return (\n <div ref={divRef} className={`wx-2L733M wx-sidearea wx-pos-${position}`}>\n {children}\n </div>\n );\n}\n","import { useState, useEffect, useMemo, useRef } from 'react';\nimport './Avatar.css';\n\nconst DEFAULT_BG = '#dfe2e6';\nconst DEFAULT_FONT = '#2c2f3c';\n\n/** Overlap factor: each avatar after the first adds 75% of size (25% overlap). */\nconst OVERLAP_FACTOR = 0.75;\n\nfunction getInitials(name) {\n\tname = name?.trim() || '';\n\tif (!name) return '';\n\tconst words = name.split(/\\s+/);\n\treturn (words[0][0] + (words[1]?.[0] || '')).toUpperCase().slice(0, 2);\n}\n\nfunction getContrastColor(hex) {\n\tif (!hex) return DEFAULT_FONT;\n\tlet h = hex.replace('#', '');\n\tif (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];\n\tif (h.length !== 6) return DEFAULT_FONT;\n\tconst r = parseInt(h.slice(0, 2), 16) / 255;\n\tconst g = parseInt(h.slice(2, 4), 16) / 255;\n\tconst b = parseInt(h.slice(4, 6), 16) / 255;\n\tconst luminance = 0.299 * r + 0.587 * g + 0.114 * b;\n\treturn luminance > 0.5 ? DEFAULT_FONT : '#ffffff';\n}\n\nfunction Avatar(props) {\n\tconst { value, size = 32, limit } = props;\n\n\tconst containerRef = useRef(null);\n\tconst [containerWidth, setContainerWidth] = useState(null);\n\n\tconst users = useMemo(() => {\n\t\tif (!value) return [];\n\t\treturn Array.isArray(value) ? value : [value];\n\t}, [value]);\n\n\t/** Max avatars that fit in container. Formula: width = size + (n-1) * size * 0.75. */\n\tconst maxFitting = useMemo(() => {\n\t\tif (containerWidth == null || containerWidth <= 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst n = 1 + (containerWidth / size - 1) / OVERLAP_FACTOR;\n\t\treturn Math.max(1, Math.floor(n));\n\t}, [containerWidth, size]);\n\n\tconst displayCount = useMemo(() => {\n\t\tconst cap = limit != null ? Math.min(users.length, limit) : users.length;\n\t\tif (maxFitting != null) {\n\t\t\treturn Math.min(cap, maxFitting);\n\t\t}\n\t\treturn cap;\n\t}, [users, limit, maxFitting]);\n\n\tconst displayUsers = useMemo(() => users.slice(0, displayCount), [users, displayCount]);\n\tconst overflowCount = useMemo(() => Math.max(0, users.length - displayCount), [users, displayCount]);\n\n\tuseEffect(() => {\n\t\tconst el = containerRef.current;\n\t\tif (!el) return;\n\t\tconst ro = new ResizeObserver(entries => {\n\t\t\tconst entry = entries[0];\n\t\t\tif (entry) setContainerWidth(entry.contentRect.width);\n\t\t});\n\t\tro.observe(el);\n\t\treturn () => ro.disconnect();\n\t}, []);\n\n\tconst fontSize = Math.round(size * 0.4);\n\tconst avatarBaseStyle = {\n\t\twidth: size + 'px',\n\t\theight: size + 'px',\n\t\tminWidth: size + 'px',\n\t\tminHeight: size + 'px',\n\t\tfontSize: fontSize + 'px',\n\t};\n\n\tfunction getAvatarItemStyle(user, index) {\n\t\tconst margin = index === 0 ? '0' : `${size * -0.25}px`;\n\t\tconst bg = user.avatar ? 'transparent' : user.color || DEFAULT_BG;\n\t\tconst color = user.avatar\n\t\t\t? 'transparent'\n\t\t\t: getContrastColor(user.color || DEFAULT_BG);\n\t\treturn { marginLeft: margin, backgroundColor: bg, color };\n\t}\n\n\treturn (\n\t\t<div className=\"wx-avatar-root wx-aadkRiRf\" ref={containerRef}>\n\t\t\t{displayUsers.length > 0 && (\n\t\t\t\t<div className=\"wx-avatar-stack wx-aadkRiRf\">\n\t\t\t\t\t{displayUsers.map((user, index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={user.id}\n\t\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\t'wx-avatar',\n\t\t\t\t\t\t\t\t'wx-avatar-item',\n\t\t\t\t\t\t\t\tindex === displayUsers.length - 1 && overflowCount > 0\n\t\t\t\t\t\t\t\t\t? 'wx-avatar-overflow'\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t'wx-aadkRiRf',\n\t\t\t\t\t\t\t].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\tstyle={{ ...avatarBaseStyle, ...getAvatarItemStyle(user, index) }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{user.avatar ? (\n\t\t\t\t\t\t\t\t<img src={user.avatar} alt=\"\" loading=\"lazy\" />\n\t\t\t\t\t\t\t) : getInitials(user.name) ? (\n\t\t\t\t\t\t\t\t<span className=\"wx-aadkRiRf\">{getInitials(user.name)}</span>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t{index === displayUsers.length - 1 && overflowCount > 0 && (\n\t\t\t\t\t\t\t\t<span className=\"wx-avatar-overflow-badge wx-aadkRiRf\">\n\t\t\t\t\t\t\t\t\t+{overflowCount}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default Avatar;\n","import './FontRoboto.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport RobotoFont from './FontRoboto';\nimport './Material.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"material\">\n <>\n {children && <div className=\"wx-theme wx-material-theme\">{children}</div>}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <RobotoFont />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import './FontOpenSans.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport FontOpenSans from './FontOpenSans';\nimport './Willow.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"willow\">\n <>\n {children && children && (\n <div className=\"wx-theme wx-willow-theme\">{children}</div>\n )}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <FontOpenSans />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import { theme } from '../context';\nimport FontOpenSans from './FontOpenSans';\nimport './WillowDark.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"willow-dark\">\n <>\n {children && children && (\n <div className=\"wx-theme wx-willow-dark-theme\">{children}</div>\n )}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <FontOpenSans />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import { uid } from '@svar-ui/lib-dom';\n\nexport function popupContainer(node) {\n const id = uid();\n node.setAttribute('data-wx-portal-root', id);\n}\n","export { default as TextArea } from './components/TextArea.jsx';\nexport { default as Button } from './components/Button.jsx';\nexport { default as Checkbox } from './components/Checkbox.jsx';\nexport { default as CheckboxGroup } from './components/CheckboxGroup.jsx';\nexport { default as ColorSelect } from './components/ColorSelect.jsx';\nexport { default as ColorBoard } from './components/ColorBoard.jsx';\nexport { default as ColorPicker } from './components/ColorPicker.jsx';\nexport { default as Combo } from './components/Combo.jsx';\nexport { default as DatePicker } from './components/DatePicker.jsx';\nexport { default as DateRangePicker } from './components/DateRangePicker.jsx';\nexport { default as Fullscreen } from './components/Fullscreen.jsx';\nexport { default as Icon } from './components/Icon.jsx';\nexport { default as MultiCombo } from './components/MultiCombo.jsx';\nexport { default as Popup } from './components/Popup.jsx';\nexport { default as Dropdown } from './components/Dropdown.jsx';\nexport { default as Pager } from './components/Pager.jsx';\nexport { default as RadioButton } from './components/RadioButton.jsx';\nexport { default as RadioButtonGroup } from './components/RadioButtonGroup.jsx';\nexport { default as RichSelect } from './components/RichSelect.jsx';\nexport { default as Segmented } from './components/Segmented.jsx';\nexport { default as Select } from './components/Select.jsx';\nexport { default as Slider } from './components/Slider.jsx';\nexport { default as Switch } from './components/Switch.jsx';\nexport { default as Tabs } from './components/Tabs.jsx';\nexport { default as Text } from './components/Text.jsx';\nexport { default as Counter } from './components/Counter.jsx';\nexport { default as Globals } from './Globals.jsx';\nexport { default as Field } from './components/Field.jsx';\nexport { default as Calendar } from './components/Calendar.jsx';\nexport { default as Month } from './components/calendar/Month.jsx';\nexport { default as RangeCalendar } from './components/RangeCalendar.jsx';\nexport { default as TimePicker } from './components/TimePicker.jsx';\nexport { default as TwoState } from './components/TwoState.jsx';\nexport { default as Modal } from './components/Modal.jsx';\nexport { default as ModalArea } from './components/ModalArea.jsx';\nexport { default as SideArea } from './components/SideArea.jsx';\nexport { default as Portal } from './components/Portal.jsx';\nexport { default as Avatar } from './components/Avatar.jsx';\n\nexport { default as Material } from './themes/Material.jsx';\nexport { default as Willow } from './themes/Willow.jsx';\nexport { default as WillowDark } from './themes/WillowDark.jsx';\n\nexport { default as Locale } from './Locale.jsx';\nexport { locale } from '@svar-ui/lib-dom';\n\nexport { popupContainer } from './components/helpers/popup';\nexport { default as SuggestDropdown } from './components/helpers/SuggestDropdown.jsx';\n\nexport { en } from '@svar-ui/core-locales';\nexport * as context from './context.js';\n\nimport { env, setEnv } from '@svar-ui/lib-dom';\nsetEnv(env);\n"],"names":["theme","createContext","helpers","i18n","fieldId","useInputId","id","contextId","useContext","inputId","useState","uid","TextArea","propValue","placeholder","title","disabled","error","readonly","onChange","value","setValue","useWritableProp","handleInput","useCallback","e","newValue","ontextchange","inputRef","useRef","useEffect","handler","node","jsx","Button","type","css","icon","text","children","onClick","buttonCss","useMemo","cssType","a","x","handleClick","ev","jsxs","Checkbox","label","inputValue","valueProp","style","handlerChange","target","CheckboxGroup","options","handleChange","obj","option","Portal","initialTheme","portalRef","componentRef","targetRef","setTargetRef","contextTheme","themeContext","getParentRoot","env","Fragment","createPortal","p","root","Popup","left","top","at","parent","width","onCancel","trackScroll","setX","y","setY","w","setW","visible","setVisible","self","onCancelRef","getWidth","calcWidth","match","updatePosition","result","calculatePosition","useLayoutEffect","onScroll","getAbsParent","down","clickOutside","InlineDropdown","positionProp","alignProp","autoFit","nodeRef","position","setPosition","align","setAlign","nodeCoords","bodyCoords","Dropdown","inline","props","setTarget","defaultColors","ColorSelect","colors","clear","dropdown","currentValue","setCurrentValue","popup","setPopup","selectColor","color","unselectColor","handlePopup","index","sliderMove","config","slider","moveBlockSlider","moveLineSlider","move","up","dx","dy","coords","colorTransformator","number","length","str","rgb","arr","v","n","hex","rgbPairs","r","g","b","h","s","hi","f","q","t","min","max","hexValidation","parseColor","defaultLocale","locale","en","BLOCK","LINE","ColorBoard","button","_","blockRef","colorLineRef","blockTop","setBlockTop","blockLeft","setBlockLeft","hueColor","setHueColor","lineLeft","setLineLeft","setInputValue","moveBlockSliderRef","moveLineSliderRef","blockColor","height","_sValue","_vValue","pxX","pxY","newHue","setSlidersPosition","newColor","handleSelect","keydown","isSliderBlock","isSliderLine","code","destroy","d","cssScope","ColorPicker","propertyValue","getListHandlers","navIndex","isVisible","virtualized","list","navCallback","selectCallback","init","l","o","c","setNav","scrollTo","next","navigate","dir","locateID","overscan","ItemContent","memo","data","checkboxes","snippet","ListContent","visibleItems","visibleRange","measureRefCallback","visibleIndex","SuggestDropdown","items","onSelect","onReady","multiselect","rest","initialScrolled","setNavIndex","navIndexRef","scrollTop","setScrollTop","itemHeight","setItemHeight","isItemHeightInitialized","itemsRef","valueRef","itemHeightRef","selectItem","currentItems","currentNavIndex","nextValue","nextId","i","selectItemRef","scrollToVirtualized","idx","newScrollTop","listRefCallback","el","navigateVirtualized","keydownVirtualized","isTargetVisibleTop","isTargetVisibleBottom","dropdownKey","prevItemsRef","handleScroll","displayedItemsCount","start","end","item","offsetTop","totalHeight","Combo","textOptions","textField","kids","filterActive","setFilterActive","textInput","setTextInput","inputElement","hasFocus","filteredOptions","ready","doSelect","effects","selected","selectByEvent","doUnselect","selectByText","chunk","res","handleFocus","handleBlur","List","Text","propsValue","focus","select","inputStyle","cssString","hasLeftIcon","timer","oninput","clearValue","inputType","Header","date","part","onShift","calendar","formats","year","dateToString","getDuodecade","yearFormat","changeType","Month","current","markers","weekStart","weekdays","dv","dm","dd","ranges","isWeekEnd","getStart","getEnd","lastTime","selectDate","days","curMonth","day","mark","delegateRef","delegateHandler","delegateClick","Year","currentProp","defaultDate","setCurrent","months","monthNum","selectMonth","month","newCurrent","done","getPartValue","handleMonthClick","Duodecade","currentState","valueState","years","selectYears","selectYear","yearVal","containerRef","configs","nextMonth","prevMonth","nextYear","prevYear","nextDuodecade","prevDuodecade","defaultButtons","getButtonValue","btn","Panel","onCurrentChange","buttons","setType","buttonsList","oncancel","onShiftLocal","diff","onChangeLocal","CalendarView","Component","words","optional","fixCurrent","force","Calendar","onCurrentChangeLocal","Locale","toDateDropdown","DatePicker","format","editable","calendarLocale","dateFormat","doChange","skipEvent","formattedValue","onchangeHandler","input","RangeCalendar","startProp","endProp","setStart","setEnd","leftCurrent","setLeftCurrent","rightCurrent","setRightCurrent","addMonth","rPrev","onLeft","newLeft","onRight","newRight","startVal","selectChange","final","doChangeStart","doChangeEnd","DateRangePicker","doInputChange","av","val","Fullscreen","hotkey","toggleButton","inFullscreen","setInFullscreen","toggleFullscreen","prev","useHotkeys","setFullscreenState","Icon","defaultValue","MultiCombo","setText","setFocus","filterOptions","onready","onselect","remove","onClickHandler","tag","Pager","total","initialPageSize","initialValue","pageSize","setPageSize","pageCount","from","to","setInnerValue","setActivePage","onPageSizeInput","RadioButton","externalValue","name","fallbackId","useId","internalValue","setInternalValue","isControlled","RadioButtonGroup","RichSelect","unselect","Segmented","Select","event","Slider","step","previous","progress","bgStyle","onslider","Switch","Tabs","optionId","Counter","dec","inc","blur","tValue","Notice","notice","onRemove","Notices","Modal","header","footer","onConfirm","modal","onclick","pack","Globals","apiRef","setModal","notices","setNotices","useImperativeHandle","msg","modalObj","rej","GlobalsComponentWithRef","forwardRef","api","Field","required","TwoState","iconActive","textActive","active","typeStr","defValue","TimePicker","h12","maxH","maxM","timeFormat","zeroBased","formatTime","formatM","getNumber","formatH","update","safeValue","m","pm","hText","mText","textValue","click","togglePM","setHours","setMinutes","updateH","ModalArea","SideArea","divRef","DEFAULT_BG","DEFAULT_FONT","OVERLAP_FACTOR","getInitials","getContrastColor","Avatar","size","limit","containerWidth","setContainerWidth","users","maxFitting","displayCount","cap","displayUsers","overflowCount","ro","entries","entry","fontSize","avatarBaseStyle","getAvatarItemStyle","user","margin","bg","render","fonts","RobotoFont","FontOpenSans","popupContainer","setEnv"],"mappings":"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"}
|