@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.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","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","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","handlerChange","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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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","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","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","handlerChange","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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"}
|