@svar-ui/react-core 2.4.1 → 2.4.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/context.js","../src/components/helpers/getInputId.js","../src/components/TextArea.jsx","../src/components/Button.jsx","../src/components/Checkbox.jsx","../src/components/CheckboxGroup.jsx","../src/components/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/DatePicker.jsx","../src/components/RangeCalendar.jsx","../src/components/DateRangePicker.jsx","../src/components/Fullscreen.jsx","../src/components/Icon.jsx","../src/components/MultiCombo.jsx","../src/components/Popup.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/Portal.jsx","../src/themes/FonttRoboto.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('willow');\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 register = useContext(fieldId);\n\n const [inputId] = useState(() => id || (register && register()) || 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}) {\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 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 { useEffect, useRef } from 'react';\nimport { clickOutside, env } from '@svar-ui/lib-dom';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './Dropdown.css';\n\nfunction Dropdown({\n position = 'bottom',\n align = 'start',\n autoFit = true,\n onCancel,\n width = '100%',\n children,\n}) {\n const nodeRef = useRef(null);\n\n const [positionState, setPosition] = useWritableProp(position);\n const [alignState, setAlign] = useWritableProp(align);\n\n useEffect(() => {\n if (autoFit) {\n const node = nodeRef.current;\n if (node) {\n const nodeCoords = node.getBoundingClientRect();\n const bodyCoords = env.getTopNode(node).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 }, [autoFit]);\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={'wx-32GZ52' + ` wx-dropdown wx-${positionState}-${alignState}`}\n style={{ width: width }}\n >\n {children}\n </div>\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}) {\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)}>\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: propertyValue = '#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(propertyValue);\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 [, ,] = colorTransformator.hexToHvs(color);\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 || 0,\n _sValue,\n _vValue,\n );\n setValue(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 onChange && onChange({ value: newValue, input: true });\n },\n [color, onChange],\n );\n\n const setSlidersPosition = useCallback(() => {\n const [h, s, v] = colorTransformator.hexToHvs(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 setValue(newColor);\n onChange && onChange({ value: newColor, input: true });\n if (newColor) {\n setSlidersPosition();\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 setSlidersPosition();\n }, [setSlidersPosition]);\n\n useEffect(() => {\n if (value !== value) {\n setValue(value);\n setSlidersPosition();\n }\n }, [value, value, setSlidersPosition]);\n\n useEffect(() => {\n if (blockRef.current) {\n sliderMove(blockRef.current, { moveBlockSlider });\n }\n if (colorLineRef.current) {\n sliderMove(colorLineRef.current, { moveLineSlider });\n }\n }, [moveBlockSlider, moveLineSlider]);\n\n useEffect(() => {\n if (value !== value) {\n onChange && onChange({ value: value, input: true });\n }\n }, [value, onChange]);\n\n useEffect(() => {\n if (color && blockRef.current) {\n setSlidersPosition();\n }\n }, [color, setSlidersPosition]);\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={value}\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}) {\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)}>\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 list, options, navCallback, selectCallback;\n const init = (l, o, n, c) => {\n list = l;\n options = o;\n navCallback = n;\n selectCallback = c;\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 (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 // if we have id:\"1\", the locateID will return 1 as number\n // so using non-strict comparison\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 } from 'react';\nimport { useContext } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport { getListHandlers } from './listnav';\nimport Dropdown from '../Dropdown.jsx';\nimport { i18n } from '../../context.js';\nimport './SuggestDropdown.css';\nimport { defaultLocale } from './locale.js';\n\nexport default function SuggestDropdown({\n items = [],\n children,\n onSelect,\n onReady,\n}) {\n const list = useRef();\n const helpers = useRef(getListHandlers());\n\n const [navIndex, setNavIndex] = useState(null);\n const navIndexRef = useRef(navIndex);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const selectItem = (ev) => {\n if (ev) ev.stopPropagation();\n onSelect && onSelect({ id: items[navIndexRef.current]?.id });\n };\n\n useEffect(() => {\n helpers.current.init(\n list.current,\n items,\n (i) => {\n setNavIndex(i);\n navIndexRef.current = i;\n },\n selectItem,\n );\n }, [items, list.current]);\n\n useEffect(() => {\n onReady && onReady(helpers.current);\n }, []);\n\n const onCancel = useCallback(() => {\n helpers.current.navigate(null);\n }, [helpers]);\n\n if (navIndex === null) return null;\n\n return (\n <Dropdown onCancel={onCancel}>\n <div\n className=\"wx-233fr7 wx-list\"\n ref={list}\n onClick={selectItem}\n onMouseMove={helpers.current.move}\n >\n {items.length ? (\n items.map((data, index) => (\n <div\n key={data.id}\n className={`wx-233fr7 wx-item ${index === navIndex ? 'wx-focus' : ''}`}\n data-id={data.id}\n >\n {children ? snippet(children, { option: data }) : data.label}\n </div>\n ))\n ) : (\n <div className=\"wx-233fr7 wx-no-data\">{_('No data')}</div>\n )}\n </div>\n </Dropdown>\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}) {\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 else navigate.current(null);\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}>\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(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 } 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 [value, setValue] = useWritableProp(valueProp || new Date());\n const [current, setCurrent] = useWritableProp(currentProp || new Date());\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","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';\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function DatePicker({\n value: propValue,\n id,\n disabled = false,\n error = false,\n width = 'unset',\n align = 'start',\n placeholder = '',\n format = '',\n buttons = defaultButtons,\n css = '',\n title = '',\n editable = false,\n clear = false,\n onChange,\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 // 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 width={width}\n align={align}\n autoFit={!!align}\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 setCurrent={onLeft}\n markers={markers}\n buttons={buttons}\n part=\"both\"\n onChange={doChangeStart}\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 setCurrent={onLeft}\n markers={markers}\n buttons={false}\n part=\"left\"\n onChange={doChangeStart}\n onCurrentChange={(v) => onLeft(v)}\n />\n </div>\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={rightCurrent}\n setCurrent={onRight}\n markers={markers}\n buttons={buttons}\n part=\"right\"\n onChange={doChangeEnd}\n onCurrentChange={(v) => onRight(v)}\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';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst DateRangePicker = ({\n value: valueProp,\n onChange,\n id,\n disabled = false,\n error = false,\n width = 'unset',\n align = 'start',\n placeholder = '',\n css = '',\n title = '',\n format = '',\n months = 2,\n buttons = defaultButtons,\n editable = false,\n clear = false,\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 width={width}\n align={align}\n autoFit={!!align}\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 Checkbox from './Checkbox.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}) {\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\n if (id) {\n let next;\n if (value) {\n if (value.includes(id)) {\n next = value.filter((i) => i !== id);\n } else {\n next = [...value, id];\n }\n } else {\n next = [id];\n }\n\n setValue(next);\n onChange && onChange({ value: next });\n\n inputElement.current.focus();\n }\n },\n [value, 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 items={filterOptions} onReady={onready} onSelect={onselect}>\n {({ option }) => (\n <>\n {checkboxes && (\n <Checkbox\n style={{ marginRight: '8px', pointerEvents: 'none' }}\n name={option.id}\n value={value && value.includes(option.id)}\n />\n )}\n {children ? snippet(children, { option }) : option[textField]}\n </>\n )}\n </List>\n )}\n </div>\n );\n}\n","import { useState, useEffect, useRef, useCallback } from 'react';\nimport { clickOutside, calculatePosition } 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 onCancel,\n children,\n}) {\n const [x, setX] = useState(0);\n const [y, setY] = useState(0);\n const [width, setWidth] = useState('auto');\n const [visible, setVisible] = useState(false);\n\n const self = useRef(null);\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 setWidth(result.width);\n setVisible(true);\n }\n }, [self, parent, at, left, top]);\n\n useEffect(() => {\n requestAnimationFrame(updatePosition);\n }, []);\n\n useEffect(() => {\n updatePosition(parent);\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\"\n style={{\n position: 'absolute',\n visibility: visible ? 'visible' : 'hidden',\n top: y + 'px',\n left: x + 'px',\n width: width,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport default Popup;\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}) {\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}>\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}) {\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 return (\n <div className={`wx-2EDJ8G wx-slider ${css}`} 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 { useCallback, useRef } 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 css = '',\n error = false,\n type = '',\n required = false,\n children,\n}) {\n const firstInputId = useRef(null);\n const registerInput = useCallback(() => {\n if (firstInputId.current) return firstInputId.current;\n const id = uid();\n firstInputId.current = id;\n return id;\n }, []);\n\n return (\n <fieldId.Provider value={registerInput}>\n <div\n className={`wx-2oVUvC wx-field wx-${position} ${css} ${error ? 'wx-error' : ''} ${required ? 'wx-required' : ''}`.trim()}\n >\n {label && (\n <label className=\"wx-2oVUvC wx-label\" htmlFor={firstInputId.current}>\n {label}\n </label>\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';\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}) {\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} width=\"unset\">\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 onChange={setHours}\n max={maxH}\n />\n </Field>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.minutes}\n value={m}\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 { 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 './FonttRoboto.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport RobotoFont from './FonttRoboto';\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';\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","register","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","handlerChange","target","CheckboxGroup","options","handleChange","obj","option","Dropdown","position","align","autoFit","onCancel","width","nodeRef","positionState","setPosition","alignState","setAlign","nodeCoords","bodyCoords","env","down","clickOutside","defaultColors","ColorSelect","colors","clear","currentValue","setCurrentValue","popup","setPopup","selectColor","color","unselectColor","handlePopup","index","sliderMove","config","slider","moveBlockSlider","moveLineSlider","move","up","y","dx","dy","coords","colorTransformator","number","length","str","rgb","arr","v","n","hex","rgbPairs","r","g","b","h","s","hi","f","p","q","t","min","max","hexValidation","parseColor","defaultLocale","locale","en","BLOCK","LINE","ColorBoard","propertyValue","button","_","blockRef","colorLineRef","blockTop","setBlockTop","blockLeft","setBlockLeft","hueColor","setHueColor","lineLeft","setLineLeft","blockColor","height","_sValue","_vValue","pxX","pxY","newHue","setSlidersPosition","newColor","handleSelect","keydown","isSliderBlock","isSliderLine","left","top","code","cssScope","ColorPicker","getListHandlers","navIndex","isVisible","list","navCallback","selectCallback","init","l","o","c","setNav","scrollTo","next","navigate","dir","locateID","SuggestDropdown","items","onSelect","onReady","setNavIndex","navIndexRef","selectItem","i","data","snippet","Combo","textOptions","textField","kids","filterActive","setFilterActive","textInput","setTextInput","inputElement","hasFocus","filteredOptions","ready","doSelect","effects","selected","selectByEvent","doUnselect","selectByText","chunk","res","handleFocus","handleBlur","List","Fragment","Text","propsValue","focus","select","inputStyle","cssString","hasLeftIcon","timer","oninput","clearValue","inputType","Header","date","part","onShift","calendar","formats","year","dateToString","start","end","getDuodecade","yearFormat","changeType","Month","current","markers","weekStart","weekdays","dv","d","dm","dd","ranges","isWeekEnd","getStart","getEnd","lastTime","selectDate","days","curMonth","day","mark","delegateRef","delegateHandler","delegateClick","Year","currentProp","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","props","words","optional","fixCurrent","force","Calendar","onCurrentChangeLocal","Locale","DatePicker","format","editable","calendarLocale","dateFormat","doChange","skipEvent","formattedValue","onchangeHandler","input","handleScroll","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","checkboxes","setText","setFocus","filterOptions","onready","onselect","remove","onClickHandler","tag","Popup","at","parent","setX","setY","setWidth","visible","setVisible","self","updatePosition","result","calculatePosition","Pager","total","initialPageSize","initialValue","pageSize","setPageSize","pageCount","from","to","setInnerValue","setActivePage","onPageSizeInput","RadioButton","externalValue","name","fallbackId","useId","internalValue","setInternalValue","isControlled","RadioButtonGroup","RichSelect","unselect","Segmented","Select","event","Slider","step","previous","progress","bgStyle","onslider","Switch","Tabs","optionId","Counter","dec","inc","blur","tValue","Notice","notice","onRemove","Notices","Modal","header","footer","onConfirm","modal","onclick","pack","Globals","apiRef","setModal","notices","setNotices","useImperativeHandle","msg","modalObj","rej","GlobalsComponentWithRef","forwardRef","api","Field","required","firstInputId","registerInput","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","Portal","initialTheme","portalRef","componentRef","targetRef","setTargetRef","contextTheme","themeContext","getParentRoot","createPortal","root","render","fonts","RobotoFont","FontOpenSans","popupContainer","setEnv"],"mappings":"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"}