@e1011/es-kit 1.0.210 → 1.0.212

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.
Files changed (123) hide show
  1. package/dist/hooks/esm/index.css +43 -43
  2. package/dist/hooks/esm/src/core/hooks/useClassNames.js.map +1 -1
  3. package/dist/hooks/esm/src/core/hooks/useOutsideClick.js +1 -1
  4. package/dist/hooks/esm/src/core/hooks/useOutsideClick.js.map +1 -1
  5. package/dist/hooks/esm/src/core/hooks/useResize.js.map +1 -1
  6. package/dist/hooks/esm/src/core/hooks/useThemePreference.js.map +1 -1
  7. package/dist/hooks/esm/src/core/hooks/useTranslations.js.map +1 -1
  8. package/dist/hooks/esm/src/core/ui/utils/clickOutside.js.map +1 -1
  9. package/dist/hooks/esm/src/core/utils/helpers/ui.js.map +1 -1
  10. package/dist/hooks/index.css +43 -43
  11. package/dist/hooks/src/core/hooks/useClassNames.js.map +1 -1
  12. package/dist/hooks/src/core/hooks/useOutsideClick.js +1 -1
  13. package/dist/hooks/src/core/hooks/useOutsideClick.js.map +1 -1
  14. package/dist/hooks/src/core/hooks/useResize.js.map +1 -1
  15. package/dist/hooks/src/core/hooks/useThemePreference.js.map +1 -1
  16. package/dist/hooks/src/core/hooks/useTranslations.js.map +1 -1
  17. package/dist/hooks/src/core/ui/utils/clickOutside.js.map +1 -1
  18. package/dist/hooks/src/core/utils/helpers/ui.js.map +1 -1
  19. package/dist/lib/cjs/src/core/hooks/useClassNames.js.map +1 -1
  20. package/dist/lib/cjs/src/core/hooks/useOutsideClick.js +1 -1
  21. package/dist/lib/cjs/src/core/hooks/useOutsideClick.js.map +1 -1
  22. package/dist/lib/cjs/src/core/hooks/useResize.js.map +1 -1
  23. package/dist/lib/cjs/src/core/hooks/useThemePreference.js.map +1 -1
  24. package/dist/lib/cjs/src/core/hooks/useTranslations.js.map +1 -1
  25. package/dist/lib/cjs/src/core/ui/components/container/Flex.js.map +1 -1
  26. package/dist/lib/cjs/src/core/ui/components/field/Field.js.map +1 -1
  27. package/dist/lib/cjs/src/core/ui/components/icon/IconWC.js.map +1 -1
  28. package/dist/lib/cjs/src/core/ui/components/icon/unifyIconUrl.js.map +1 -1
  29. package/dist/lib/cjs/src/core/ui/utils/clickOutside.js.map +1 -1
  30. package/dist/lib/cjs/src/core/ui/utils/style.js.map +1 -1
  31. package/dist/lib/cjs/src/core/utils/appState/store/store.vanillajs.js.map +1 -1
  32. package/dist/lib/cjs/src/core/utils/appState/store/useStore.react.js.map +1 -1
  33. package/dist/lib/cjs/src/core/utils/helpers/birthnumberCZSKvalidator.js.map +1 -1
  34. package/dist/lib/cjs/src/core/utils/helpers/cancelableDelayedFunction.js.map +1 -1
  35. package/dist/lib/cjs/src/core/utils/helpers/fileValidator.js.map +1 -1
  36. package/dist/lib/cjs/src/core/utils/helpers/objectOperations.js.map +1 -1
  37. package/dist/lib/cjs/src/core/utils/helpers/other.js.map +1 -1
  38. package/dist/lib/cjs/src/core/utils/helpers/ui.js.map +1 -1
  39. package/dist/lib/cjs/src/core/utils/webComponents/webComponent.utils.js.map +1 -1
  40. package/dist/lib/esm/src/core/hooks/useClassNames.js.map +1 -1
  41. package/dist/lib/esm/src/core/hooks/useOutsideClick.js +1 -1
  42. package/dist/lib/esm/src/core/hooks/useOutsideClick.js.map +1 -1
  43. package/dist/lib/esm/src/core/hooks/useResize.js.map +1 -1
  44. package/dist/lib/esm/src/core/hooks/useThemePreference.js.map +1 -1
  45. package/dist/lib/esm/src/core/hooks/useTranslations.js.map +1 -1
  46. package/dist/lib/esm/src/core/ui/components/container/Flex.js.map +1 -1
  47. package/dist/lib/esm/src/core/ui/components/field/Field.js.map +1 -1
  48. package/dist/lib/esm/src/core/ui/components/icon/IconWC.js.map +1 -1
  49. package/dist/lib/esm/src/core/ui/components/icon/unifyIconUrl.js.map +1 -1
  50. package/dist/lib/esm/src/core/ui/utils/clickOutside.js.map +1 -1
  51. package/dist/lib/esm/src/core/ui/utils/style.js.map +1 -1
  52. package/dist/lib/esm/src/core/utils/appState/store/store.vanillajs.js.map +1 -1
  53. package/dist/lib/esm/src/core/utils/appState/store/useStore.react.js.map +1 -1
  54. package/dist/lib/esm/src/core/utils/helpers/birthnumberCZSKvalidator.js.map +1 -1
  55. package/dist/lib/esm/src/core/utils/helpers/cancelableDelayedFunction.js.map +1 -1
  56. package/dist/lib/esm/src/core/utils/helpers/fileValidator.js.map +1 -1
  57. package/dist/lib/esm/src/core/utils/helpers/objectOperations.js.map +1 -1
  58. package/dist/lib/esm/src/core/utils/helpers/other.js.map +1 -1
  59. package/dist/lib/esm/src/core/utils/helpers/ui.js.map +1 -1
  60. package/dist/lib/esm/src/core/utils/webComponents/webComponent.utils.js.map +1 -1
  61. package/dist/lib/tsconfig.tsbuildinfo +1 -1
  62. package/dist/types/src/core/hooks/useClassNames.d.ts +2 -2
  63. package/dist/types/src/core/hooks/useClassNames.d.ts.map +1 -1
  64. package/dist/types/src/core/hooks/useOutsideClick.d.ts.map +1 -1
  65. package/dist/types/src/core/hooks/useThemePreference.d.ts.map +1 -1
  66. package/dist/types/src/core/hooks/useTranslations.d.ts.map +1 -1
  67. package/dist/types/src/core/ui/components/container/Flex.d.ts.map +1 -1
  68. package/dist/types/src/core/ui/components/icon/IconWC.d.ts.map +1 -1
  69. package/dist/types/src/core/ui/components/icon/unifyIconUrl.d.ts.map +1 -1
  70. package/dist/types/src/core/ui/utils/clickOutside.d.ts.map +1 -1
  71. package/dist/types/src/core/ui/utils/style.d.ts.map +1 -1
  72. package/dist/types/src/core/utils/appState/stateMachine/tiny-state-machine.base.d.ts +6 -6
  73. package/dist/types/src/core/utils/appState/stateMachine/tiny-state-machine.base.d.ts.map +1 -1
  74. package/dist/types/src/core/utils/appState/store/simpleComponent/SimpleComponent.d.ts.map +1 -1
  75. package/dist/types/src/core/utils/appState/store/simpleComponent/SimpleComponent2.d.ts.map +1 -1
  76. package/dist/types/src/core/utils/appState/store/useStore.react.d.ts.map +1 -1
  77. package/dist/types/src/core/utils/decorators/convert.d.ts.map +1 -1
  78. package/dist/types/src/core/utils/helpers/cancelableDelayedFunction.d.ts.map +1 -1
  79. package/dist/types/src/core/utils/helpers/objectOperations.d.ts.map +1 -1
  80. package/dist/types/src/core/utils/helpers/other.d.ts +2 -1
  81. package/dist/types/src/core/utils/helpers/other.d.ts.map +1 -1
  82. package/dist/types/src/core/utils/helpers/ui.d.ts +1 -1
  83. package/dist/types/src/core/utils/helpers/ui.d.ts.map +1 -1
  84. package/dist/types/src/core/utils/logger.spec.d.ts.map +1 -1
  85. package/dist/types/src/core/utils/webComponents/exampleCustomElement.d.ts.map +1 -1
  86. package/dist/types/src/core/utils/webComponents/webComponent.utils.d.ts.map +1 -1
  87. package/dist/ui/esm/src/core/hooks/useResize.js.map +1 -1
  88. package/dist/ui/esm/src/core/ui/components/container/Flex.js.map +1 -1
  89. package/dist/ui/esm/src/core/ui/components/field/Field.js.map +1 -1
  90. package/dist/ui/esm/src/core/ui/components/icon/IconWC.js.map +1 -1
  91. package/dist/ui/esm/src/core/ui/components/icon/unifyIconUrl.js.map +1 -1
  92. package/dist/ui/esm/src/core/ui/utils/style.js.map +1 -1
  93. package/dist/ui/esm/src/core/utils/helpers/ui.js.map +1 -1
  94. package/dist/ui/esm/src/core/utils/webComponents/webComponent.utils.js.map +1 -1
  95. package/dist/ui/src/core/hooks/useResize.js.map +1 -1
  96. package/dist/ui/src/core/ui/components/container/Flex.js.map +1 -1
  97. package/dist/ui/src/core/ui/components/field/Field.js.map +1 -1
  98. package/dist/ui/src/core/ui/components/icon/IconWC.js.map +1 -1
  99. package/dist/ui/src/core/ui/components/icon/unifyIconUrl.js.map +1 -1
  100. package/dist/ui/src/core/ui/utils/style.js.map +1 -1
  101. package/dist/ui/src/core/utils/helpers/ui.js.map +1 -1
  102. package/dist/ui/src/core/utils/webComponents/webComponent.utils.js.map +1 -1
  103. package/dist/utils/esm/index.css +43 -43
  104. package/dist/utils/esm/src/core/utils/appState/store/store.vanillajs.js.map +1 -1
  105. package/dist/utils/esm/src/core/utils/appState/store/useStore.react.js.map +1 -1
  106. package/dist/utils/esm/src/core/utils/helpers/birthnumberCZSKvalidator.js.map +1 -1
  107. package/dist/utils/esm/src/core/utils/helpers/cancelableDelayedFunction.js.map +1 -1
  108. package/dist/utils/esm/src/core/utils/helpers/fileValidator.js.map +1 -1
  109. package/dist/utils/esm/src/core/utils/helpers/objectOperations.js.map +1 -1
  110. package/dist/utils/esm/src/core/utils/helpers/other.js.map +1 -1
  111. package/dist/utils/esm/src/core/utils/helpers/ui.js.map +1 -1
  112. package/dist/utils/esm/src/core/utils/webComponents/webComponent.utils.js.map +1 -1
  113. package/dist/utils/index.css +43 -43
  114. package/dist/utils/src/core/utils/appState/store/store.vanillajs.js.map +1 -1
  115. package/dist/utils/src/core/utils/appState/store/useStore.react.js.map +1 -1
  116. package/dist/utils/src/core/utils/helpers/birthnumberCZSKvalidator.js.map +1 -1
  117. package/dist/utils/src/core/utils/helpers/cancelableDelayedFunction.js.map +1 -1
  118. package/dist/utils/src/core/utils/helpers/fileValidator.js.map +1 -1
  119. package/dist/utils/src/core/utils/helpers/objectOperations.js.map +1 -1
  120. package/dist/utils/src/core/utils/helpers/other.js.map +1 -1
  121. package/dist/utils/src/core/utils/helpers/ui.js.map +1 -1
  122. package/dist/utils/src/core/utils/webComponents/webComponent.utils.js.map +1 -1
  123. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sources":["../../../../../../../src/core/ui/components/field/Field.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { FC, ReactNode, memo, useMemo, useCallback, PropsWithChildren } from 'react'\nimport styled from 'styled-components'\n\nimport type { FieldError, IconComponentType } from './types'\n\nlet iconColor: string | (() => string) = () => '#000000'\n\nexport const setIconColor = (color: string | (() => string)): void => {\n iconColor = color\n}\n\nlet IconComponent: IconComponentType = memo(function IconComponent() { return <span /> })\n\nexport const setIconComponent = (component: IconComponentType): void => {\n IconComponent = component\n}\n\nexport type FileWrapperProps = PropsWithChildren<unknown> & {\n className?: string\n error?: boolean\n disabled?: boolean\n userDisabled?: boolean\n css?: string\n}\n\nexport const FieldWrapper: FC<FileWrapperProps> = styled.div<FileWrapperProps>`\n opacity: ${({ disabled, userDisabled }) => (disabled || userDisabled ? 0.5 : 1)};\n pointer-events: ${({ disabled, userDisabled }) => (disabled || userDisabled ? 'none' : 'auto')};\n flex: 1 1 auto;\n width: 100%;\n @media (min-width: 400px) {\n flex: 1;\n }\n .label {\n font-size: 0.8rem !important;\n font-weight: normal;\n }\n\n .help {\n text-align: left;\n }\n\n .mainControl {\n flex: 1;\n border-radius: 6px;\n box-shadow: 0 0 6px 1px rgba(0, 0, 0, 0.06);\n will-change: box-shadow;\n transition: box-shadow 250ms ease-in-out;\n &:hover {\n box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);\n }\n }\n button {\n box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);\n }\n .select {\n width: 100%;\n flex: 1;\n &::after {\n border-color: #000000 !important;\n }\n }\n\n .icon {\n &.is-action {\n cursor: pointer;\n pointer-events: initial !important;\n }\n }\n\n /* Chrome, Safari, Edge, Opera */\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* Firefox */\n input[type=number] {\n -moz-appearance: textfield;\n }\n\n .input[type=date]::-webkit-calendar-picker-indicator {\n opacity:0;\n -webkit-appearance: none;\n position: absolute;\n left: 0;\n top: 0;\n width: 40px;\n height: 100%;\n margin: 0;\n padding: 0;\n cursor: pointer;\n }\n\n textarea {\n resize: none;\n }\n`\n\ntype EventType = { target: any; type?: any } & Partial<Event>\nexport interface FieldProps {\n label?: string\n name?: string\n type?: string\n min?: number | string | Date | any\n max?: number | string | Date | any\n value?: string | number | readonly string[] | undefined\n defaultValue?: string | number | readonly string[] | undefined\n placeholder?: string\n inputRef?: ReactHookFormRef\n error?: boolean\n errors?: FieldError\n disabled?: boolean\n userDisabled?: boolean\n helpTextInfo?: string\n helpText?: string\n iconLeft?: string\n iconRight?: string\n withoutComponent?: boolean\n addon?: ReactNode\n children?: ReactNode\n className?: string\n onChange?: (event?: EventType) => unknown\n // TODO, rename... something like changeHandler or valueDecorator\n onChangeInner?: (value: string | number) => string | number\n onBlur?: (event?: EventType) => void\n onFocus?: (event?: EventType | undefined) => void\n rightIconClick?: (event?: EventType) => void\n leftIconClick?: (event?: EventType) => void\n options?: any[] | null\n creatable?: boolean\n async?: boolean\n css?: string\n [key: string]: any\n}\n\ninterface SelectProps extends FieldProps {\n id?: string\n}\n\ntype OptionObj = { label: string | number | undefined; value: string | number | undefined }\ntype Option = OptionObj | string | number\n\nexport const Select: FC<SelectProps>\n= memo<SelectProps>(\n function Select({ options, value, inputRef, ...props }: SelectProps) {\n return (\n <div className='select'>\n <select {...props} ref={inputRef} defaultValue={value}>\n {options?.map((option: Option) => (\n <option\n key={`${JSON.stringify(option)}`}\n value={typeof option === 'object' ? (option as OptionObj)?.value : option}\n >\n {typeof option === 'object' ? (option as OptionObj)?.label : option}\n </option>\n ))}\n </select>\n </div>\n )\n },\n)\n\nconst InputComponent = styled.input``\nconst TextAreaComponent = styled.textarea``\nconst StyledFieldLabel = styled.label`\n text-align: left;\n`\n\nexport const Field: FC<FieldProps> = memo<FieldProps>(({\n label,\n name,\n type = 'text',\n value,\n defaultValue,\n placeholder,\n inputRef,\n error,\n disabled,\n userDisabled,\n withoutComponent,\n helpTextInfo,\n helpText,\n children,\n iconLeft,\n iconRight,\n addon,\n className,\n onChange,\n onChangeInner,\n onBlur,\n onFocus,\n rightIconClick,\n leftIconClick,\n options,\n css,\n ...props\n}: FieldProps) => {\n let Component: FC<any> = InputComponent\n\n if (!children && type === 'textarea') {\n Component = TextAreaComponent\n }\n const handleFocus = useCallback((event: Event | EventType | undefined) => {\n if (userDisabled) {\n event?.preventDefault?.()\n } else {\n onFocus && onFocus(event)\n }\n }, [userDisabled, onFocus])\n\n const handleChange = useCallback((event: { target: { value: string } }) => {\n if (userDisabled) {\n return\n }\n if (onChangeInner && event?.target) {\n // eslint-disable-next-line no-param-reassign\n event.target.value = onChangeInner((event.target.value as string)) as string\n onChange && onChange(event as EventType)\n } else {\n onChange && onChange(event as EventType)\n }\n }, [onChangeInner, onChange, userDisabled])\n\n const valueProps = useMemo(() => {\n if (value === undefined) {\n return { defaultValue }\n }\n return { value }\n }, [value, defaultValue])\n\n return (\n <FieldWrapper\n className={`field ${className}`}\n error={error}\n disabled={disabled}\n userDisabled={userDisabled}\n css={css}\n >\n <StyledFieldLabel htmlFor={name} className='label'>{label}</StyledFieldLabel>\n <div className={`field ${addon ? 'has-addons' : ''}`}>\n <div\n className={`control mainControl ${iconLeft && !withoutComponent\n ? 'has-icons-left' : ''} ${iconRight ? 'has-icons-right' : ''}`}\n >\n {!withoutComponent && ((!children && (type === 'select' || options))\n ? (\n <Select\n name={name}\n id={name}\n inputRef={inputRef}\n className={`input ${error ? 'is-danger' : ''}`}\n type='select'\n placeholder={placeholder}\n value={value}\n options={options}\n // TODO also handle change but value versus event.target.value issue\n onChange={onChange}\n onBlur={onBlur}\n onFocus={handleFocus}\n onKeyDown={handleFocus}\n autoComplete='off'\n disabled={disabled}\n {...props}\n />\n )\n : (\n !children && (\n <Component\n name={name}\n id={name}\n ref={inputRef}\n className={`input ${error ? 'is-danger' : ''}`}\n type={type}\n placeholder={placeholder}\n {...valueProps}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={handleFocus}\n onKeyDown={handleFocus}\n autoComplete='off'\n disabled={disabled}\n {...props}\n />\n )))}\n\n {iconLeft && !withoutComponent && (\n <span\n className={`iconLeft icon is-small is-left ${leftIconClick ? 'is-action' : ''}`}\n onClick={leftIconClick}\n >\n <IconComponent\n iconName={iconLeft}\n color={iconColor}\n />\n </span>\n )}\n {iconRight && (\n <span\n className={`iconRight icon is-small is-right ${rightIconClick ? 'is-action' : ''}`}\n onClick={rightIconClick}\n >\n <IconComponent\n iconName={iconRight}\n color={iconColor}\n />\n </span>\n )}\n {children && children}\n </div>\n {addon && addon}\n </div>\n {helpTextInfo && <p className='help'>{helpTextInfo}</p>}\n {helpText && <p className={`help ${error ? 'is-danger' : ''}`}>{helpText}</p>}\n </FieldWrapper>\n )\n})\n\nField.displayName = 'Field'\n"],"names":["iconColor","IconComponent","memo","React","createElement","setIconComponent","FieldWrapper","styled","div","withConfig","displayName","componentId","_ref","disabled","userDisabled","_ref2","_StyledFieldWrapper","default","p","$_css","Select","_ref3","options","value","inputRef","props","className","_extends","ref","defaultValue","map","option","key","concat","JSON","stringify","label","InputComponent","input","TextAreaComponent","textarea","StyledFieldLabel","Field","_ref4","name","type","placeholder","error","withoutComponent","helpTextInfo","helpText","children","iconLeft","iconRight","addon","onChange","onChangeInner","onBlur","onFocus","rightIconClick","leftIconClick","css","Component","handleFocus","useCallback","event","_event$preventDefault","preventDefault","call","handleChange","target","valueProps","useMemo","undefined","htmlFor","id","onKeyDown","autoComplete","onClick","iconName","color","component"],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","sources":["../../../../../../../src/core/ui/components/field/Field.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport { FC, ReactNode, memo, useMemo, useCallback, PropsWithChildren } from 'react'\nimport styled from 'styled-components'\n\nimport type { FieldError, IconComponentType } from './types'\n\nlet iconColor: string | (() => string) = () => '#000000'\n\nexport const setIconColor = (color: string | (() => string)): void => {\n iconColor = color\n}\n\nlet IconComponent: IconComponentType = memo(function IconComponent() { return <span /> })\n\nexport const setIconComponent = (component: IconComponentType): void => {\n IconComponent = component\n}\n\nexport type FileWrapperProps = PropsWithChildren<unknown> & {\n className?: string\n error?: boolean\n disabled?: boolean\n userDisabled?: boolean\n css?: string\n}\n\nexport const FieldWrapper: FC<FileWrapperProps> = styled.div<FileWrapperProps>`\n opacity: ${({ disabled, userDisabled }): number => (disabled || userDisabled ? 0.5 : 1)};\n pointer-events: ${({ disabled, userDisabled }): string => (disabled || userDisabled ? 'none' : 'auto')};\n flex: 1 1 auto;\n width: 100%;\n @media (min-width: 400px) {\n flex: 1;\n }\n .label {\n font-size: 0.8rem !important;\n font-weight: normal;\n }\n\n .help {\n text-align: left;\n }\n\n .mainControl {\n flex: 1;\n border-radius: 6px;\n box-shadow: 0 0 6px 1px rgba(0, 0, 0, 0.06);\n will-change: box-shadow;\n transition: box-shadow 250ms ease-in-out;\n &:hover {\n box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);\n }\n }\n button {\n box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);\n }\n .select {\n width: 100%;\n flex: 1;\n &::after {\n border-color: #000000 !important;\n }\n }\n\n .icon {\n &.is-action {\n cursor: pointer;\n pointer-events: initial !important;\n }\n }\n\n /* Chrome, Safari, Edge, Opera */\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n /* Firefox */\n input[type=number] {\n -moz-appearance: textfield;\n }\n\n .input[type=date]::-webkit-calendar-picker-indicator {\n opacity:0;\n -webkit-appearance: none;\n position: absolute;\n left: 0;\n top: 0;\n width: 40px;\n height: 100%;\n margin: 0;\n padding: 0;\n cursor: pointer;\n }\n\n textarea {\n resize: none;\n }\n`\n\ntype EventType = { target: any; type?: any } & Partial<Event>\nexport interface FieldProps {\n label?: string\n name?: string\n type?: string\n min?: number | string | Date | any\n max?: number | string | Date | any\n value?: string | number | readonly string[] | undefined\n defaultValue?: string | number | readonly string[] | undefined\n placeholder?: string\n inputRef?: ReactHookFormRef\n error?: boolean\n errors?: FieldError\n disabled?: boolean\n userDisabled?: boolean\n helpTextInfo?: string\n helpText?: string\n iconLeft?: string\n iconRight?: string\n withoutComponent?: boolean\n addon?: ReactNode\n children?: ReactNode\n className?: string\n onChange?: (event?: EventType) => unknown\n // TODO, rename... something like changeHandler or valueDecorator\n onChangeInner?: (value: string | number) => string | number\n onBlur?: (event?: EventType) => void\n onFocus?: (event?: EventType | undefined) => void\n rightIconClick?: (event?: EventType) => void\n leftIconClick?: (event?: EventType) => void\n options?: any[] | null\n creatable?: boolean\n async?: boolean\n css?: string\n [key: string]: any\n}\n\ninterface SelectProps extends FieldProps {\n id?: string\n}\n\ntype OptionObj = { label: string | number | undefined; value: string | number | undefined }\ntype Option = OptionObj | string | number\n\nexport const Select: FC<SelectProps>\n= memo<SelectProps>(\n function Select({ options, value, inputRef, ...props }: SelectProps) {\n return (\n <div className='select'>\n <select {...props} ref={inputRef} defaultValue={value}>\n {options?.map((option: Option) => (\n <option\n key={`${JSON.stringify(option)}`}\n value={typeof option === 'object' ? (option as OptionObj)?.value : option}\n >\n {typeof option === 'object' ? (option as OptionObj)?.label : option}\n </option>\n ))}\n </select>\n </div>\n )\n },\n)\n\nconst InputComponent = styled.input``\nconst TextAreaComponent = styled.textarea``\nconst StyledFieldLabel = styled.label`\n text-align: left;\n`\n\nexport const Field: FC<FieldProps> = memo<FieldProps>(({\n label,\n name,\n type = 'text',\n value,\n defaultValue,\n placeholder,\n inputRef,\n error,\n disabled,\n userDisabled,\n withoutComponent,\n helpTextInfo,\n helpText,\n children,\n iconLeft,\n iconRight,\n addon,\n className,\n onChange,\n onChangeInner,\n onBlur,\n onFocus,\n rightIconClick,\n leftIconClick,\n options,\n css,\n ...props\n}: FieldProps) => {\n let Component: FC<any> = InputComponent\n\n if (!children && type === 'textarea') {\n Component = TextAreaComponent\n }\n const handleFocus = useCallback((event: Event | EventType | undefined) => {\n if (userDisabled) {\n event?.preventDefault?.()\n } else {\n onFocus && onFocus(event)\n }\n }, [userDisabled, onFocus])\n\n const handleChange = useCallback((event: { target: { value: string } }) => {\n if (userDisabled) {\n return\n }\n if (onChangeInner && event?.target) {\n // eslint-disable-next-line no-param-reassign\n event.target.value = onChangeInner((event.target.value as string)) as string\n onChange && onChange(event as EventType)\n } else {\n onChange && onChange(event as EventType)\n }\n }, [onChangeInner, onChange, userDisabled])\n\n const valueProps = useMemo(() => {\n if (value === undefined) {\n return { defaultValue }\n }\n return { value }\n }, [value, defaultValue])\n\n return (\n <FieldWrapper\n className={`field ${className}`}\n error={error}\n disabled={disabled}\n userDisabled={userDisabled}\n css={css}\n >\n <StyledFieldLabel htmlFor={name} className='label'>{label}</StyledFieldLabel>\n <div className={`field ${addon ? 'has-addons' : ''}`}>\n <div\n className={`control mainControl ${iconLeft && !withoutComponent\n ? 'has-icons-left' : ''} ${iconRight ? 'has-icons-right' : ''}`}\n >\n {!withoutComponent && ((!children && (type === 'select' || options))\n ? (\n <Select\n name={name}\n id={name}\n inputRef={inputRef}\n className={`input ${error ? 'is-danger' : ''}`}\n type='select'\n placeholder={placeholder}\n value={value}\n options={options}\n // TODO also handle change but value versus event.target.value issue\n onChange={onChange}\n onBlur={onBlur}\n onFocus={handleFocus}\n onKeyDown={handleFocus}\n autoComplete='off'\n disabled={disabled}\n {...props}\n />\n )\n : (\n !children && (\n <Component\n name={name}\n id={name}\n ref={inputRef}\n className={`input ${error ? 'is-danger' : ''}`}\n type={type}\n placeholder={placeholder}\n {...valueProps}\n onChange={handleChange}\n onBlur={onBlur}\n onFocus={handleFocus}\n onKeyDown={handleFocus}\n autoComplete='off'\n disabled={disabled}\n {...props}\n />\n )))}\n\n {iconLeft && !withoutComponent && (\n <span\n className={`iconLeft icon is-small is-left ${leftIconClick ? 'is-action' : ''}`}\n onClick={leftIconClick}\n >\n <IconComponent\n iconName={iconLeft}\n color={iconColor}\n />\n </span>\n )}\n {iconRight && (\n <span\n className={`iconRight icon is-small is-right ${rightIconClick ? 'is-action' : ''}`}\n onClick={rightIconClick}\n >\n <IconComponent\n iconName={iconRight}\n color={iconColor}\n />\n </span>\n )}\n {children && children}\n </div>\n {addon && addon}\n </div>\n {helpTextInfo && <p className='help'>{helpTextInfo}</p>}\n {helpText && <p className={`help ${error ? 'is-danger' : ''}`}>{helpText}</p>}\n </FieldWrapper>\n )\n})\n\nField.displayName = 'Field'\n"],"names":["iconColor","IconComponent","memo","React","createElement","setIconComponent","FieldWrapper","styled","div","withConfig","displayName","componentId","_ref","disabled","userDisabled","_ref2","_StyledFieldWrapper","default","p","$_css","Select","_ref3","options","value","inputRef","props","className","_extends","ref","defaultValue","map","option","key","concat","JSON","stringify","label","InputComponent","input","TextAreaComponent","textarea","StyledFieldLabel","Field","_ref4","name","type","placeholder","error","withoutComponent","helpTextInfo","helpText","children","iconLeft","iconRight","addon","onChange","onChangeInner","onBlur","onFocus","rightIconClick","leftIconClick","css","Component","handleFocus","useCallback","event","_event$preventDefault","preventDefault","call","handleChange","target","valueProps","useMemo","undefined","htmlFor","id","onKeyDown","autoComplete","onClick","iconName","color","component"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconWC.js","sources":["../../../../../../../src/core/ui/components/icon/IconWC.ts"],"sourcesContent":["import { ced, resolveAttributes } from '../../../utils/webComponents/webComponent.utils'\n\nimport classes from './icon.module.scss'\n\n\nconst template = document.createElement('template')\n\ntemplate.innerHTML = '<span class=\"icon-base\"></span>'\n\nexport type IconBaseWCType = {\n iconUrl?: string\n minWidth?: string\n minHeight?: string\n width?: string\n height?: string\n size?: string\n fontSize?: string\n color?: string\n className?: string\n}\n\n@ced('icon-base')\nexport class ESIcon extends HTMLElement {\n content: string | null\n\n mainElement: HTMLElement\n\n iconUrl?: string | null\n\n minWidth?: string | null\n\n minHeight?: string | null\n\n width?: string | null\n\n height?: string | null\n\n size?: string | null\n\n fontSize?: string | null\n\n color?: string | null\n\n static get observedAttributes() {\n return ['iconUrl', 'minWidth', 'minHeight', 'width', 'height', 'size', 'fontSize', 'color', 'className']\n }\n\n connectedCallback() {\n if (this.content || this.innerHTML) {\n this.content = this.content || this.innerHTML || this.getAttribute('content')\n }\n\n this.innerHTML = template.innerHTML\n\n resolveAttributes(this, ESIcon.observedAttributes)\n\n this.render()\n }\n\n attributeChangedCallback(attrName: string, oldVal: string | number | null, newVal: string | number | null) {\n if (attrName === 'className' || attrName === 'classname' || attrName === 'class') {\n if (typeof newVal === 'string') {\n this.classList.remove(newVal as string)\n this.classList.add(newVal as string)\n }\n }\n if (!this.color) {\n this.color = 'currentColor'\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[attrName] = (newVal as string) || ''\n this.render()\n }\n\n render = () => {\n this.mainElement = this.mainElement || this.querySelector('.icon-base') as HTMLElement\n if (!this.mainElement) {\n return\n }\n this.classList.add(classes['icon-base-parent'])\n this.mainElement.classList.add(classes['icon-base'])\n\n const styles = {\n '--min-width': this.minWidth || this.size || this.width || 'auto',\n '--min-height': this.minHeight || this.size || this.height || 'auto',\n '--width': this.size || this.width || '1rem',\n '--height': this.size || this.height || '1rem',\n ...(this.fontSize ? { 'font-size': this.fontSize || 'unset' } : {}),\n ...(this.iconUrl ? { '--icon-url': `url(${this.iconUrl})` } : {}),\n ...(this.iconUrl ? { '--icon-color': this.color } : { '--icon-content-color': this.color }),\n }\n\n this.mainElement.innerHTML = this.iconUrl ? '' : (this.content || '')\n\n this.mainElement.setAttribute('style', Object.entries(styles).map(([key, value]) => `${key}: ${value};`).join(' '))\n }\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n 'icon-base': any\n }\n }\n}\n\nexport const ESIconBase = {\n ESIconBase: ESIcon,\n}\n"],"names":["template","document","createElement","innerHTML","ESIcon","ced","_dec","_class","HTMLElement","constructor","super","arguments","this","content","mainElement","iconUrl","minWidth","minHeight","width","height","size","fontSize","color","render","querySelector","classList","add","classes","default","styles","concat","setAttribute","Object","entries","map","_ref","key","value","join","observedAttributes","connectedCallback","getAttribute","resolveAttributes","attributeChangedCallback","attrName","oldVal","newVal","remove","ESIconBase"],"mappings":"6MAKA,MAAMA,EAAWC,SAASC,cAAc,YAExCF,EAASG,UAAY,kCAcrB,IACaC,EADZC,EAAAA,IAAI,YAAYC,CAAAC,EAAjB,MACaH,UAAeI,YAAYC,WAAAA,GAAAC,SAAAC,WAAAC,KACtCC,aAAO,EAAAD,KAEPE,iBAAW,EAAAF,KAEXG,aAAO,EAAAH,KAEPI,cAAQ,EAAAJ,KAERK,eAAS,EAAAL,KAETM,WAAK,EAAAN,KAELO,YAAM,EAAAP,KAENQ,UAAI,EAAAR,KAEJS,cAAQ,EAAAT,KAERU,WAAK,EAAAV,KAkCLW,OAAS,KAEP,GADAX,KAAKE,YAAcF,KAAKE,aAAeF,KAAKY,cAAc,eACrDZ,KAAKE,YACR,OAEFF,KAAKa,UAAUC,IAAIC,EAAAA,QAAQ,qBAC3Bf,KAAKE,YAAYW,UAAUC,IAAIC,EAAOC,QAAC,cAEvC,MAAMC,EAAS,CACb,cAAejB,KAAKI,UAAYJ,KAAKQ,MAAQR,KAAKM,OAAS,OAC3D,eAAgBN,KAAKK,WAAaL,KAAKQ,MAAQR,KAAKO,QAAU,OAC9D,UAAWP,KAAKQ,MAAQR,KAAKM,OAAS,OACtC,WAAYN,KAAKQ,MAAQR,KAAKO,QAAU,UACpCP,KAAKS,SAAW,CAAE,YAAaT,KAAKS,UAAY,SAAY,CAAE,KAC9DT,KAAKG,QAAU,CAAE,aAAYe,OAAAA,OAASlB,KAAKG,QAAO,MAAQ,CAAE,KAC5DH,KAAKG,QAAU,CAAE,eAAgBH,KAAKU,OAAU,CAAE,uBAAwBV,KAAKU,QAGrFV,KAAKE,YAAYX,UAAYS,KAAKG,QAAU,GAAMH,KAAKC,SAAW,GAElED,KAAKE,YAAYiB,aAAa,QAASC,OAAOC,QAAQJ,GAAQK,KAAIC,IAAA,IAAEC,EAAKC,GAAMF,EAAA,MAAA,GAAAL,OAAQM,EAAGN,MAAAA,OAAKO,EAAK,IAAA,IAAKC,KAAK,KAAK,CACpH,CArDD,6BAAWC,GACT,MAAO,CAAC,UAAW,WAAY,YAAa,QAAS,SAAU,OAAQ,WAAY,QAAS,YAC9F,CAEAC,iBAAAA,IACM5B,KAAKC,SAAWD,KAAKT,aACvBS,KAAKC,QAAUD,KAAKC,SAAWD,KAAKT,WAAaS,KAAK6B,aAAa,YAGrE7B,KAAKT,UAAYH,EAASG,UAE1BuC,EAAAA,kBAAkB9B,KAAMR,EAAOmC,oBAE/B3B,KAAKW,QACP,CAEAoB,wBAAAA,CAAyBC,EAAkBC,EAAgCC,GACxD,cAAbF,GAAyC,cAAbA,GAAyC,UAAbA,GACpC,iBAAXE,IACTlC,KAAKa,UAAUsB,OAAOD,GACtBlC,KAAKa,UAAUC,IAAIoB,IAGlBlC,KAAKU,QACRV,KAAKU,MAAQ,gBAIfV,KAAKgC,GAAaE,GAAqB,GACvClC,KAAKW,QACP,KAwBDhB,EAWM,MAAMyC,EAAa,CACxBA,WAAY5C"}
1
+ {"version":3,"file":"IconWC.js","sources":["../../../../../../../src/core/ui/components/icon/IconWC.ts"],"sourcesContent":["import { ced, resolveAttributes } from '../../../utils/webComponents/webComponent.utils'\n\nimport classes from './icon.module.scss'\n\n\nconst template = document.createElement('template')\n\ntemplate.innerHTML = '<span class=\"icon-base\"></span>'\n\nexport type IconBaseWCType = {\n iconUrl?: string\n minWidth?: string\n minHeight?: string\n width?: string\n height?: string\n size?: string\n fontSize?: string\n color?: string\n className?: string\n}\n\n@ced('icon-base')\nexport class ESIcon extends HTMLElement {\n content: string | null\n\n mainElement: HTMLElement\n\n iconUrl?: string | null\n\n minWidth?: string | null\n\n minHeight?: string | null\n\n width?: string | null\n\n height?: string | null\n\n size?: string | null\n\n fontSize?: string | null\n\n color?: string | null\n\n static get observedAttributes(): string[] {\n return ['iconUrl', 'minWidth', 'minHeight', 'width', 'height', 'size', 'fontSize', 'color', 'className']\n }\n\n connectedCallback(): void {\n if (this.content || this.innerHTML) {\n this.content = this.content || this.innerHTML || this.getAttribute('content')\n }\n\n this.innerHTML = template.innerHTML\n\n resolveAttributes(this, ESIcon.observedAttributes)\n\n this.render()\n }\n\n attributeChangedCallback(attrName: string, oldVal: string | number | null, newVal: string | number | null): void {\n if (attrName === 'className' || attrName === 'classname' || attrName === 'class') {\n if (typeof newVal === 'string') {\n this.classList.remove(newVal as string)\n this.classList.add(newVal as string)\n }\n }\n if (!this.color) {\n this.color = 'currentColor'\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this[attrName] = (newVal as string) || ''\n this.render()\n }\n\n render = (): void => {\n this.mainElement = this.mainElement || this.querySelector('.icon-base') as HTMLElement\n if (!this.mainElement) {\n return\n }\n this.classList.add(classes['icon-base-parent'])\n this.mainElement.classList.add(classes['icon-base'])\n\n const styles = {\n '--min-width': this.minWidth || this.size || this.width || 'auto',\n '--min-height': this.minHeight || this.size || this.height || 'auto',\n '--width': this.size || this.width || '1rem',\n '--height': this.size || this.height || '1rem',\n ...(this.fontSize ? { 'font-size': this.fontSize || 'unset' } : {}),\n ...(this.iconUrl ? { '--icon-url': `url(${this.iconUrl})` } : {}),\n ...(this.iconUrl ? { '--icon-color': this.color } : { '--icon-content-color': this.color }),\n }\n\n this.mainElement.innerHTML = this.iconUrl ? '' : (this.content || '')\n\n this.mainElement.setAttribute('style', Object.entries(styles).map(([key, value]) => `${key}: ${value};`).join(' '))\n }\n}\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n 'icon-base': any\n }\n }\n}\n\nexport const ESIconBase = {\n ESIconBase: ESIcon,\n}\n"],"names":["template","document","createElement","innerHTML","ESIcon","ced","_dec","_class","HTMLElement","constructor","super","arguments","this","content","mainElement","iconUrl","minWidth","minHeight","width","height","size","fontSize","color","render","querySelector","classList","add","classes","default","styles","concat","setAttribute","Object","entries","map","_ref","key","value","join","observedAttributes","connectedCallback","getAttribute","resolveAttributes","attributeChangedCallback","attrName","oldVal","newVal","remove","ESIconBase"],"mappings":"6MAKA,MAAMA,EAAWC,SAASC,cAAc,YAExCF,EAASG,UAAY,kCAcrB,IACaC,EADZC,EAAAA,IAAI,YAAYC,CAAAC,EAAjB,MACaH,UAAeI,YAAYC,WAAAA,GAAAC,SAAAC,WAAAC,KACtCC,aAAO,EAAAD,KAEPE,iBAAW,EAAAF,KAEXG,aAAO,EAAAH,KAEPI,cAAQ,EAAAJ,KAERK,eAAS,EAAAL,KAETM,WAAK,EAAAN,KAELO,YAAM,EAAAP,KAENQ,UAAI,EAAAR,KAEJS,cAAQ,EAAAT,KAERU,WAAK,EAAAV,KAkCLW,OAAS,KAEP,GADAX,KAAKE,YAAcF,KAAKE,aAAeF,KAAKY,cAAc,eACrDZ,KAAKE,YACR,OAEFF,KAAKa,UAAUC,IAAIC,EAAAA,QAAQ,qBAC3Bf,KAAKE,YAAYW,UAAUC,IAAIC,EAAOC,QAAC,cAEvC,MAAMC,EAAS,CACb,cAAejB,KAAKI,UAAYJ,KAAKQ,MAAQR,KAAKM,OAAS,OAC3D,eAAgBN,KAAKK,WAAaL,KAAKQ,MAAQR,KAAKO,QAAU,OAC9D,UAAWP,KAAKQ,MAAQR,KAAKM,OAAS,OACtC,WAAYN,KAAKQ,MAAQR,KAAKO,QAAU,UACpCP,KAAKS,SAAW,CAAE,YAAaT,KAAKS,UAAY,SAAY,CAAE,KAC9DT,KAAKG,QAAU,CAAE,aAAYe,OAAAA,OAASlB,KAAKG,QAAO,MAAQ,CAAE,KAC5DH,KAAKG,QAAU,CAAE,eAAgBH,KAAKU,OAAU,CAAE,uBAAwBV,KAAKU,QAGrFV,KAAKE,YAAYX,UAAYS,KAAKG,QAAU,GAAMH,KAAKC,SAAW,GAElED,KAAKE,YAAYiB,aAAa,QAASC,OAAOC,QAAQJ,GAAQK,KAAIC,IAAA,IAAEC,EAAKC,GAAMF,EAAA,MAAA,GAAAL,OAAQM,EAAGN,MAAAA,OAAKO,EAAK,IAAA,IAAKC,KAAK,KAAK,CACpH,CArDD,6BAAWC,GACT,MAAO,CAAC,UAAW,WAAY,YAAa,QAAS,SAAU,OAAQ,WAAY,QAAS,YAC9F,CAEAC,iBAAAA,IACM5B,KAAKC,SAAWD,KAAKT,aACvBS,KAAKC,QAAUD,KAAKC,SAAWD,KAAKT,WAAaS,KAAK6B,aAAa,YAGrE7B,KAAKT,UAAYH,EAASG,UAE1BuC,EAAAA,kBAAkB9B,KAAMR,EAAOmC,oBAE/B3B,KAAKW,QACP,CAEAoB,wBAAAA,CAAyBC,EAAkBC,EAAgCC,GACxD,cAAbF,GAAyC,cAAbA,GAAyC,UAAbA,GACpC,iBAAXE,IACTlC,KAAKa,UAAUsB,OAAOD,GACtBlC,KAAKa,UAAUC,IAAIoB,IAGlBlC,KAAKU,QACRV,KAAKU,MAAQ,gBAIfV,KAAKgC,GAAaE,GAAqB,GACvClC,KAAKW,QACP,KAwBDhB,EAWM,MAAMyC,EAAa,CACxBA,WAAY5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"unifyIconUrl.js","sources":["../../../../../../../src/core/ui/components/icon/unifyIconUrl.ts"],"sourcesContent":["import { is } from 'ramda'\n\n// fix of Vite 5 new way of handling assets\n// https://github.com/vitejs/vite/pull/2909\n// https://github.com/vitejs/vite/blob/77d5165e2f252bfecbb0eebccc6f04dc8be0c5ba/packages/vite/src/node/plugins/asset.ts#L419\nexport const unifyIconUrl = (iconUrl: string) => {\n if (!iconUrl || !is(String, iconUrl) || !iconUrl\n || iconUrl?.includes('.svg') || iconUrl?.includes('data:image/svg+xml;base64')) {\n return iconUrl\n }\n\n const unifiedIconUrl = iconUrl?.replaceAll('/\\\\s+/g', ' ')\n .replaceAll('\\'', '\"')\n .replaceAll('%25', '%')\n .replaceAll('%23', '#')\n .replaceAll('%3c', '<')\n .replaceAll('%3e', '>')\n .replaceAll('%20', ' ')\n .replaceAll('data:image/svg+xml,', '')\n\n return `data:image/svg+xml;base64,${btoa(unifiedIconUrl)}`\n}\n"],"names":["iconUrl","is","String","includes","unifiedIconUrl","replaceAll","concat","btoa"],"mappings":"qNAK6BA,IAC3B,IAAKA,IAAYC,EAAEA,GAACC,OAAQF,KAAaA,GACtCA,SAAAA,EAASG,SAAS,SAAWH,SAAAA,EAASG,SAAS,6BAChD,OAAOH,EAGT,MAAMI,EAAiBJ,aAAO,EAAPA,EAASK,WAAW,UAAW,KACnDA,WAAW,IAAM,KACjBA,WAAW,MAAO,KAClBA,WAAW,MAAO,KAClBA,WAAW,MAAO,KAClBA,WAAW,MAAO,KAClBA,WAAW,MAAO,KAClBA,WAAW,sBAAuB,IAErC,MAAA,6BAAAC,OAAoCC,KAAKH,GAAe"}
1
+ {"version":3,"file":"unifyIconUrl.js","sources":["../../../../../../../src/core/ui/components/icon/unifyIconUrl.ts"],"sourcesContent":["import { is } from 'ramda'\n\n// fix of Vite 5 new way of handling assets\n// https://github.com/vitejs/vite/pull/2909\n// https://github.com/vitejs/vite/blob/77d5165e2f252bfecbb0eebccc6f04dc8be0c5ba/packages/vite/src/node/plugins/asset.ts#L419\nexport const unifyIconUrl = (iconUrl: string): string => {\n if (!iconUrl || !is(String, iconUrl) || !iconUrl\n || iconUrl?.includes('.svg') || iconUrl?.includes('data:image/svg+xml;base64')) {\n return iconUrl\n }\n\n const unifiedIconUrl = iconUrl?.replaceAll('/\\\\s+/g', ' ')\n .replaceAll('\\'', '\"')\n .replaceAll('%25', '%')\n .replaceAll('%23', '#')\n .replaceAll('%3c', '<')\n .replaceAll('%3e', '>')\n .replaceAll('%20', ' ')\n .replaceAll('data:image/svg+xml,', '')\n\n return `data:image/svg+xml;base64,${btoa(unifiedIconUrl)}`\n}\n"],"names":["iconUrl","is","String","includes","unifiedIconUrl","replaceAll","concat","btoa"],"mappings":"qNAK6BA,IAC3B,IAAKA,IAAYC,EAAEA,GAACC,OAAQF,KAAaA,GACtCA,SAAAA,EAASG,SAAS,SAAWH,SAAAA,EAASG,SAAS,6BAChD,OAAOH,EAGT,MAAMI,EAAiBJ,aAAO,EAAPA,EAASK,WAAW,UAAW,KACnDA,WAAW,IAAM,KACjBA,WAAW,MAAO,KAClBA,WAAW,MAAO,KAClBA,WAAW,MAAO,KAClBA,WAAW,MAAO,KAClBA,WAAW,MAAO,KAClBA,WAAW,sBAAuB,IAErC,MAAA,6BAAAC,OAAoCC,KAAKH,GAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"style.js","sources":["../../../../../../src/core/ui/utils/style.ts"],"sourcesContent":["// eslint-disable-next-line import/no-mutable-exports\nexport let defaultFontSize = 16\nexport const setDefaultFontSize = (fontSize: number) => {\n defaultFontSize = fontSize\n}\n\nexport const pxToRem = (px: number): number => px / defaultFontSize\n\nexport const resolveStyleValue = (\n value: string | number,\n units = 'rem',\n): string => {\n if (typeof value === 'string') {\n return value as string\n }\n\n if (units === 'px') {\n return `${pxToRem(value)}rem`\n }\n\n return `${value}${units}`\n}\n\n/* eslint-disable no-param-reassign */\nexport const toHex = (x: number | string): string => {\n x = x.toString(16)\n return x.padStart(2, '0')\n}\n\nexport const convertHex = (hex: string, opacity: number, rgba = false): string => {\n const hexValue = hex.replace('#', '')\n const rValue = hexValue.substring(0, 2)\n const gValue = hexValue.substring(2, 4)\n const bValue = hexValue.substring(4, 6)\n const r = parseInt(rValue, 16)\n const g = parseInt(gValue, 16)\n const b = parseInt(bValue, 16)\n\n const a = opacity <= 1 ? opacity : (opacity / 100)\n\n return (rgba\n ? `rgba(${r},${g},${b},${a})`\n : `#${rValue}${gValue}${bValue}${toHex(Math.round((opacity <= 1 ? opacity : (opacity / 100)) * 255))}`)\n .toLowerCase()\n}\n\nexport const convertRGB = (\n r: number, g: number, b: number, opacity: number,\n): string => `#${toHex(r)}${toHex(g)}${toHex(b)}${toHex(Math.round((opacity <= 1 ? opacity : (opacity / 100)) * 255))}`\n\nexport const calculatePercColor = (startColor: string, endColor: string, ratio = 0.5): string => {\n if (startColor.indexOf('#') === 0) {\n startColor = startColor.substr(1)\n }\n if (endColor.indexOf('#') === 0) {\n endColor = endColor.substr(1)\n }\n\n const r = Math.ceil(parseInt(endColor.substring(0, 2), 16) * ratio\n + parseInt(startColor.substring(0, 2), 16) * (1 - ratio))\n const g = Math.ceil(parseInt(endColor.substring(2, 4), 16) * ratio\n + parseInt(startColor.substring(2, 4), 16) * (1 - ratio))\n const b = Math.ceil(parseInt(endColor.substring(4, 6), 16) * ratio\n + parseInt(startColor.substring(4, 6), 16) * (1 - ratio))\n\n return `#${toHex(r) + toHex(g) + toHex(b)}`\n}\n\nexport const calculateColors = (startColor: string, endColor: string, num = 10): string[] => {\n const ratioIterator = (num / (num + 1)) / num\n const ratios = []\n let ratio = ratioIterator\n\n // eslint-disable-next-line no-plusplus\n while (num--) {\n ratios.push(ratio)\n ratio += ratioIterator\n }\n\n return ratios.map((rat) => calculatePercColor(startColor, endColor, rat))\n}\n"],"names":["defaultFontSize","setDefaultFontSize","pxToRem","px","toHex","x","toString","padStart","calculatePercColor","startColor","endColor","ratio","arguments","length","undefined","indexOf","substr","r","Math","ceil","parseInt","substring","g","b","concat","num","ratioIterator","ratios","push","map","rat","hex","opacity","rgba","hexValue","replace","rValue","gValue","bValue","a","round","toLowerCase","convertRGB","value","units","fontSize"],"mappings":"sFACWA,QAAAA,gBAAkB,GAChBC,MAIAC,EAAWC,GAAuBA,EAAKH,QAAeA,gBAkBtDI,EAASC,IACpBA,EAAIA,EAAEC,SAAS,KACNC,SAAS,EAAG,KAwBVC,EAAqB,SAACC,EAAoBC,GAA0C,IAAxBC,EAAKC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC/C,IAA5BH,EAAWM,QAAQ,OACrBN,EAAaA,EAAWO,OAAO,IAEH,IAA1BN,EAASK,QAAQ,OACnBL,EAAWA,EAASM,OAAO,IAG7B,MAAMC,EAAIC,KAAKC,KAAKC,SAASV,EAASW,UAAU,EAAG,GAAI,IAAMV,EACzDS,SAASX,EAAWY,UAAU,EAAG,GAAI,KAAO,EAAIV,IAC9CW,EAAIJ,KAAKC,KAAKC,SAASV,EAASW,UAAU,EAAG,GAAI,IAAMV,EACzDS,SAASX,EAAWY,UAAU,EAAG,GAAI,KAAO,EAAIV,IAC9CY,EAAIL,KAAKC,KAAKC,SAASV,EAASW,UAAU,EAAG,GAAI,IAAMV,EACzDS,SAASX,EAAWY,UAAU,EAAG,GAAI,KAAO,EAAIV,IAEpD,MAAA,IAAAa,OAAWpB,EAAMa,GAAKb,EAAMkB,GAAKlB,EAAMmB,GACzC,0BAE+B,SAACd,EAAoBC,GAAyC,IAAvBe,EAAGb,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC1E,MAAMc,EAAiBD,GAAOA,EAAM,GAAMA,EACpCE,EAAS,GACf,IAAIhB,EAAQe,EAGZ,KAAOD,KACLE,EAAOC,KAAKjB,GACZA,GAASe,EAGX,OAAOC,EAAOE,KAAKC,GAAQtB,EAAmBC,EAAYC,EAAUoB,IACtE,kDAnD0B,SAACC,EAAaC,GAA0C,IAAzBC,EAAIrB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAC3D,MAAMsB,EAAWH,EAAII,QAAQ,IAAK,IAC5BC,EAASF,EAASb,UAAU,EAAG,GAC/BgB,EAASH,EAASb,UAAU,EAAG,GAC/BiB,EAASJ,EAASb,UAAU,EAAG,GAC/BJ,EAAIG,SAASgB,EAAQ,IACrBd,EAAIF,SAASiB,EAAQ,IACrBd,EAAIH,SAASkB,EAAQ,IAErBC,EAAIP,GAAW,EAAIA,EAAWA,EAAU,IAE9C,OAAQC,EAAI,QAAAT,OACAP,EAAC,KAAAO,OAAIF,EAAC,KAAAE,OAAID,EAACC,KAAAA,OAAIe,EAACf,KAAAA,IAAAA,OACpBY,GAAMZ,OAAGa,GAAMb,OAAGc,GAAMd,OAAGpB,EAAMc,KAAKsB,MAAmD,KAA5CR,GAAW,EAAIA,EAAWA,EAAU,SACtFS,aACL,qBAE0BC,CACxBzB,EAAWK,EAAWC,EAAWS,IAAe,IAAAR,OACjCpB,EAAMa,IAAEO,OAAGpB,EAAMkB,IAAEE,OAAGpB,EAAMmB,IAAEC,OAAGpB,EAAMc,KAAKsB,MAAmD,KAA5CR,GAAW,EAAIA,EAAWA,EAAU,oDAxCvE,SAC/BW,GAEW,IADXC,EAAKhC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,MAER,MAAqB,iBAAV+B,EACFA,EAGK,OAAVC,EACF,GAAApB,OAAUtB,EAAQyC,GAAM,OAG1B,GAAAnB,OAAUmB,GAAKnB,OAAGoB,EACpB,6BAnBmCC,IACjC7C,QAAAA,gBAAkB6C,CAAQ"}
1
+ {"version":3,"file":"style.js","sources":["../../../../../../src/core/ui/utils/style.ts"],"sourcesContent":["// eslint-disable-next-line import/no-mutable-exports\nexport let defaultFontSize = 16\nexport const setDefaultFontSize = (fontSize: number): void => {\n defaultFontSize = fontSize\n}\n\nexport const pxToRem = (px: number): number => px / defaultFontSize\n\nexport const resolveStyleValue = (\n value: string | number,\n units = 'rem',\n): string => {\n if (typeof value === 'string') {\n return value as string\n }\n\n if (units === 'px') {\n return `${pxToRem(value)}rem`\n }\n\n return `${value}${units}`\n}\n\n/* eslint-disable no-param-reassign */\nexport const toHex = (x: number | string): string => {\n x = x.toString(16)\n return x.padStart(2, '0')\n}\n\nexport const convertHex = (hex: string, opacity: number, rgba = false): string => {\n const hexValue = hex.replace('#', '')\n const rValue = hexValue.substring(0, 2)\n const gValue = hexValue.substring(2, 4)\n const bValue = hexValue.substring(4, 6)\n const r = parseInt(rValue, 16)\n const g = parseInt(gValue, 16)\n const b = parseInt(bValue, 16)\n\n const a = opacity <= 1 ? opacity : (opacity / 100)\n\n return (rgba\n ? `rgba(${r},${g},${b},${a})`\n : `#${rValue}${gValue}${bValue}${toHex(Math.round((opacity <= 1 ? opacity : (opacity / 100)) * 255))}`)\n .toLowerCase()\n}\n\nexport const convertRGB = (\n r: number, g: number, b: number, opacity: number,\n): string => `#${toHex(r)}${toHex(g)}${toHex(b)}${toHex(Math.round((opacity <= 1 ? opacity : (opacity / 100)) * 255))}`\n\nexport const calculatePercColor = (startColor: string, endColor: string, ratio = 0.5): string => {\n if (startColor.indexOf('#') === 0) {\n startColor = startColor.substr(1)\n }\n if (endColor.indexOf('#') === 0) {\n endColor = endColor.substr(1)\n }\n\n const r = Math.ceil(parseInt(endColor.substring(0, 2), 16) * ratio\n + parseInt(startColor.substring(0, 2), 16) * (1 - ratio))\n const g = Math.ceil(parseInt(endColor.substring(2, 4), 16) * ratio\n + parseInt(startColor.substring(2, 4), 16) * (1 - ratio))\n const b = Math.ceil(parseInt(endColor.substring(4, 6), 16) * ratio\n + parseInt(startColor.substring(4, 6), 16) * (1 - ratio))\n\n return `#${toHex(r) + toHex(g) + toHex(b)}`\n}\n\nexport const calculateColors = (startColor: string, endColor: string, num = 10): string[] => {\n const ratioIterator = (num / (num + 1)) / num\n const ratios = []\n let ratio = ratioIterator\n\n // eslint-disable-next-line no-plusplus\n while (num--) {\n ratios.push(ratio)\n ratio += ratioIterator\n }\n\n return ratios.map((rat) => calculatePercColor(startColor, endColor, rat))\n}\n"],"names":["defaultFontSize","setDefaultFontSize","pxToRem","px","toHex","x","toString","padStart","calculatePercColor","startColor","endColor","ratio","arguments","length","undefined","indexOf","substr","r","Math","ceil","parseInt","substring","g","b","concat","num","ratioIterator","ratios","push","map","rat","hex","opacity","rgba","hexValue","replace","rValue","gValue","bValue","a","round","toLowerCase","convertRGB","value","units","fontSize"],"mappings":"sFACWA,QAAAA,gBAAkB,GAChBC,MAIAC,EAAWC,GAAuBA,EAAKH,QAAeA,gBAkBtDI,EAASC,IACpBA,EAAIA,EAAEC,SAAS,KACNC,SAAS,EAAG,KAwBVC,EAAqB,SAACC,EAAoBC,GAA0C,IAAxBC,EAAKC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC/C,IAA5BH,EAAWM,QAAQ,OACrBN,EAAaA,EAAWO,OAAO,IAEH,IAA1BN,EAASK,QAAQ,OACnBL,EAAWA,EAASM,OAAO,IAG7B,MAAMC,EAAIC,KAAKC,KAAKC,SAASV,EAASW,UAAU,EAAG,GAAI,IAAMV,EACzDS,SAASX,EAAWY,UAAU,EAAG,GAAI,KAAO,EAAIV,IAC9CW,EAAIJ,KAAKC,KAAKC,SAASV,EAASW,UAAU,EAAG,GAAI,IAAMV,EACzDS,SAASX,EAAWY,UAAU,EAAG,GAAI,KAAO,EAAIV,IAC9CY,EAAIL,KAAKC,KAAKC,SAASV,EAASW,UAAU,EAAG,GAAI,IAAMV,EACzDS,SAASX,EAAWY,UAAU,EAAG,GAAI,KAAO,EAAIV,IAEpD,MAAA,IAAAa,OAAWpB,EAAMa,GAAKb,EAAMkB,GAAKlB,EAAMmB,GACzC,0BAE+B,SAACd,EAAoBC,GAAyC,IAAvBe,EAAGb,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GAC1E,MAAMc,EAAiBD,GAAOA,EAAM,GAAMA,EACpCE,EAAS,GACf,IAAIhB,EAAQe,EAGZ,KAAOD,KACLE,EAAOC,KAAKjB,GACZA,GAASe,EAGX,OAAOC,EAAOE,KAAKC,GAAQtB,EAAmBC,EAAYC,EAAUoB,IACtE,kDAnD0B,SAACC,EAAaC,GAA0C,IAAzBC,EAAIrB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAC3D,MAAMsB,EAAWH,EAAII,QAAQ,IAAK,IAC5BC,EAASF,EAASb,UAAU,EAAG,GAC/BgB,EAASH,EAASb,UAAU,EAAG,GAC/BiB,EAASJ,EAASb,UAAU,EAAG,GAC/BJ,EAAIG,SAASgB,EAAQ,IACrBd,EAAIF,SAASiB,EAAQ,IACrBd,EAAIH,SAASkB,EAAQ,IAErBC,EAAIP,GAAW,EAAIA,EAAWA,EAAU,IAE9C,OAAQC,EAAI,QAAAT,OACAP,EAAC,KAAAO,OAAIF,EAAC,KAAAE,OAAID,EAACC,KAAAA,OAAIe,EAACf,KAAAA,IAAAA,OACpBY,GAAMZ,OAAGa,GAAMb,OAAGc,GAAMd,OAAGpB,EAAMc,KAAKsB,MAAmD,KAA5CR,GAAW,EAAIA,EAAWA,EAAU,SACtFS,aACL,qBAE0BC,CACxBzB,EAAWK,EAAWC,EAAWS,IAAe,IAAAR,OACjCpB,EAAMa,IAAEO,OAAGpB,EAAMkB,IAAEE,OAAGpB,EAAMmB,IAAEC,OAAGpB,EAAMc,KAAKsB,MAAmD,KAA5CR,GAAW,EAAIA,EAAWA,EAAU,oDAxCvE,SAC/BW,GAEW,IADXC,EAAKhC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,MAER,MAAqB,iBAAV+B,EACFA,EAGK,OAAVC,EACF,GAAApB,OAAUtB,EAAQyC,GAAM,OAG1B,GAAAnB,OAAUmB,GAAKnB,OAAGoB,EACpB,6BAnBmCC,IACjC7C,QAAAA,gBAAkB6C,CAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sources":["../../../../../../src/core/utils/helpers/ui.ts"],"sourcesContent":["export const noop = () => undefined\n\n\nexport const mapSerReplacer = (key: string, value: unknown) => {\n if (value instanceof Map) {\n return {\n dataType: 'Map',\n value: Array.from(value.entries()), // or with spread: value: [...value]\n }\n }\n return value\n}\n\nexport type TClassName = string | boolean | null | undefined\nexport const classNames = (...classes: TClassName[]) => classes\n .filter((className: TClassName) => (typeof className === 'string' && className !== undefined && className !== null))\n .filter(Boolean).join(' ')\n\n\nexport type PropsCategoriesType = {\n dataProps: Record<string, unknown>\n restProps: Record<string, unknown>\n};\n\nexport const parseProps = (props: Record<string, unknown>):PropsCategoriesType => {\n const dataProps: Record<string, unknown> = {}\n const restProps: Record<string, unknown> = {}\n\n Object.entries(props).forEach(([key, value]) => {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 4) === 'data') {\n dataProps[key] = value\n } else {\n restProps[key] = value\n }\n })\n return { dataProps, restProps }\n}\n"],"names":["_len","arguments","length","classes","Array","_key","filter","className","Boolean","join","props","dataProps","restProps","Object","entries","forEach","_ref","key","value","substr"],"mappings":"oHAc0B,WAAA,IAAA,IAAAA,EAAAC,UAAAC,OAAIC,EAAOC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAPF,EAAOE,GAAAJ,UAAAI,GAAA,OAAmBF,EACrDG,QAAQC,GAAgD,iBAAdA,GAAP,MAAiCA,IACpED,OAAOE,SAASC,KAAK,IAAI,qBAQDC,IACzB,MAAMC,EAAqC,CAAA,EACrCC,EAAqC,CAAA,EAS3C,OAPAC,OAAOC,QAAQJ,GAAOK,SAAQC,IAAkB,IAAhBC,EAAKC,GAAMF,EAChB,UAArBC,EAAIE,OAAO,EAAG,IAAuC,SAArBF,EAAIE,OAAO,EAAG,GAChDR,EAAUM,GAAOC,EAEjBN,EAAUK,GAAOC,CACnB,IAEK,CAAEP,YAAWC,YAAW"}
1
+ {"version":3,"file":"ui.js","sources":["../../../../../../src/core/utils/helpers/ui.ts"],"sourcesContent":["export const noop = (): void => undefined\n\n\nexport const mapSerReplacer\n= (key: string, value: unknown): unknown | { dataType: string; value: Array<unknown>} => {\n if (value instanceof Map) {\n return {\n dataType: 'Map',\n value: Array.from(value.entries()), // or with spread: value: [...value]\n }\n }\n return value\n}\n\nexport type TClassName = string | boolean | null | undefined\nexport const classNames = (...classes: TClassName[]): string => classes\n .filter((className: TClassName) => (typeof className === 'string' && className !== undefined && className !== null))\n .filter(Boolean).join(' ')\n\n\nexport type PropsCategoriesType = {\n dataProps: Record<string, unknown>\n restProps: Record<string, unknown>\n};\n\nexport const parseProps = (props: Record<string, unknown>):PropsCategoriesType => {\n const dataProps: Record<string, unknown> = {}\n const restProps: Record<string, unknown> = {}\n\n Object.entries(props).forEach(([key, value]) => {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 4) === 'data') {\n dataProps[key] = value\n } else {\n restProps[key] = value\n }\n })\n return { dataProps, restProps }\n}\n"],"names":["_len","arguments","length","classes","Array","_key","filter","className","Boolean","join","props","dataProps","restProps","Object","entries","forEach","_ref","key","value","substr"],"mappings":"oHAe0B,WAAA,IAAA,IAAAA,EAAAC,UAAAC,OAAIC,EAAOC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAPF,EAAOE,GAAAJ,UAAAI,GAAA,OAA2BF,EAC7DG,QAAQC,GAAgD,iBAAdA,GAAP,MAAiCA,IACpED,OAAOE,SAASC,KAAK,IAAI,qBAQDC,IACzB,MAAMC,EAAqC,CAAA,EACrCC,EAAqC,CAAA,EAS3C,OAPAC,OAAOC,QAAQJ,GAAOK,SAAQC,IAAkB,IAAhBC,EAAKC,GAAMF,EAChB,UAArBC,EAAIE,OAAO,EAAG,IAAuC,SAArBF,EAAIE,OAAO,EAAG,GAChDR,EAAUM,GAAOC,EAEjBN,EAAUK,GAAOC,CACnB,IAEK,CAAEP,YAAWC,YAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"webComponent.utils.js","sources":["../../../../../../src/core/utils/webComponents/webComponent.utils.ts"],"sourcesContent":["/* custom elements define */\nexport const ced = (name: string) => (\n componentClass: typeof HTMLElement,\n) => {\n customElements.get(name) || customElements.define(name, componentClass)\n}\n\nexport const customElementDefine = ced\n\n\n\nexport const createResolveAttribute = (\n component: Element & Record<string, any>,\n) => (\n attributeName: string,\n // eslint-disable-next-line default-param-last\n overrideProperty = true,\n valueMap?: (value: unknown) => unknown,\n): boolean => {\n const attrValue = component.getAttribute(attributeName)\n const attrValueDefined = attrValue !== undefined\n\n if (overrideProperty && attrValueDefined && component[attributeName] === undefined) {\n // eslint-disable-next-line no-param-reassign\n component[attributeName] = valueMap ? valueMap(attrValue) : attrValue\n }\n\n return attrValueDefined\n}\n\nexport const resolveAttributes = (\n component: Element & Record<string, any>,\n attributes: ({ name: string; override: boolean; valueMap?: (value: unknown) => unknown } | string)[],\n) => {\n const resolver = createResolveAttribute(component)\n\n attributes.forEach((attribute) => {\n if (typeof attribute === 'string') {\n resolver(attribute)\n } else {\n const { name, override, valueMap } = attribute\n\n resolver(name, override, valueMap)\n }\n })\n}\n"],"names":["createResolveAttribute","component","attributeName","overrideProperty","arguments","length","undefined","valueMap","attrValue","getAttribute","attrValueDefined","name","componentClass","customElements","get","define","resolveAttributes","attributes","resolver","forEach","attribute","override"],"mappings":"mBAWaA,EACXC,GACG,SACHC,GAIY,IAFZC,IAAgBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAChBG,EAAsCH,UAAAC,OAAAD,EAAAA,kBAAAE,EAEtC,MAAME,EAAYP,EAAUQ,aAAaP,GACnCQ,OAAiCJ,IAAdE,EAOzB,OALIL,GAAoBO,QAAiDJ,IAA7BL,EAAUC,KAEpDD,EAAUC,GAAiBK,EAAWA,EAASC,GAAaA,GAGvDE,CACT,cA3BoBC,GAClBC,IAEAC,eAAeC,IAAIH,IAASE,eAAeE,OAAOJ,EAAMC,EAAe,6DA0BxCI,CAC/Bf,EACAgB,KAEA,MAAMC,EAAWlB,EAAuBC,GAExCgB,EAAWE,SAASC,IAClB,GAAyB,iBAAdA,EACTF,EAASE,OACJ,CACL,MAAMT,KAAEA,EAAIU,SAAEA,EAAQd,SAAEA,GAAaa,EAErCF,EAASP,EAAMU,EAAUd,EAC3B,IACA"}
1
+ {"version":3,"file":"webComponent.utils.js","sources":["../../../../../../src/core/utils/webComponents/webComponent.utils.ts"],"sourcesContent":["/* custom elements define */\nexport const ced = (name: string): (componentClass: typeof HTMLElement) => void => (\n componentClass: typeof HTMLElement,\n) => {\n customElements.get(name) || customElements.define(name, componentClass)\n}\n\nexport const customElementDefine = ced\n\n\n\nexport const createResolveAttribute = (\n component: Element & Record<string, any>,\n) => (\n attributeName: string,\n // eslint-disable-next-line default-param-last\n overrideProperty = true,\n valueMap?: (value: unknown) => unknown,\n): boolean => {\n const attrValue = component.getAttribute(attributeName)\n const attrValueDefined = attrValue !== undefined\n\n if (overrideProperty && attrValueDefined && component[attributeName] === undefined) {\n // eslint-disable-next-line no-param-reassign\n component[attributeName] = valueMap ? valueMap(attrValue) : attrValue\n }\n\n return attrValueDefined\n}\n\nexport const resolveAttributes = (\n component: Element & Record<string, any>,\n attributes: ({ name: string; override: boolean; valueMap?: (value: unknown) => unknown } | string)[],\n): void => {\n const resolver = createResolveAttribute(component)\n\n attributes.forEach((attribute) => {\n if (typeof attribute === 'string') {\n resolver(attribute)\n } else {\n const { name, override, valueMap } = attribute\n\n resolver(name, override, valueMap)\n }\n })\n}\n"],"names":["createResolveAttribute","component","attributeName","overrideProperty","arguments","length","undefined","valueMap","attrValue","getAttribute","attrValueDefined","name","componentClass","customElements","get","define","resolveAttributes","attributes","resolver","forEach","attribute","override"],"mappings":"mBAWaA,EACXC,GACG,SACHC,GAIY,IAFZC,IAAgBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAChBG,EAAsCH,UAAAC,OAAAD,EAAAA,kBAAAE,EAEtC,MAAME,EAAYP,EAAUQ,aAAaP,GACnCQ,OAAiCJ,IAAdE,EAOzB,OALIL,GAAoBO,QAAiDJ,IAA7BL,EAAUC,KAEpDD,EAAUC,GAAiBK,EAAWA,EAASC,GAAaA,GAGvDE,CACT,cA3BoBC,GAClBC,IAEAC,eAAeC,IAAIH,IAASE,eAAeE,OAAOJ,EAAMC,EAAe,6DA0BxCI,CAC/Bf,EACAgB,KAEA,MAAMC,EAAWlB,EAAuBC,GAExCgB,EAAWE,SAASC,IAClB,GAAyB,iBAAdA,EACTF,EAASE,OACJ,CACL,MAAMT,KAAEA,EAAIU,SAAEA,EAAQd,SAAEA,GAAaa,EAErCF,EAASP,EAAMU,EAAUd,EAC3B,IACA"}
@@ -1,3 +1,46 @@
1
+ .layoutBox-module_layout-box__faPND {
2
+ display: flex;
3
+ position: relative;
4
+ flex-direction: row;
5
+ flex: 0;
6
+ flex-grow: 0;
7
+ flex-shrink: 0;
8
+ flex-basis: auto;
9
+ flex-wrap: nowrap;
10
+ gap: 0;
11
+ text-align: left;
12
+ justify-content: flex-start;
13
+ align-items: flex-start;
14
+ align-self: auto;
15
+ margin: 0;
16
+ padding: 0;
17
+ width: auto;
18
+ height: auto;
19
+ max-width: none;
20
+ max-height: none;
21
+ min-width: 0;
22
+ min-height: 0;
23
+ border-radius: initial;
24
+ }
25
+ .divider-module_divider-line__6CesR {
26
+ position: relative;
27
+ display: block;
28
+ transition: opacity, width, height 250ms ease-in-out;
29
+ background-color: var(--color);
30
+ opacity: var(--opacity);
31
+ }
32
+ .divider-module_divider-line__6CesR.divider-module_vertical__qSVWD {
33
+ height: var(--length);
34
+ left: var(--left);
35
+ width: var(--width);
36
+ margin: var(--margin);
37
+ }
38
+ .divider-module_divider-line__6CesR.divider-module_horizontal__Gz-Oj {
39
+ width: var(--length);
40
+ left: var(--left);
41
+ height: var(--height);
42
+ margin: var(--margin);
43
+ }
1
44
  .icon-module_icon-base-parent__nOMvW {
2
45
  line-height: 1px !important;
3
46
  }
@@ -28,25 +71,6 @@
28
71
  width: var(--height);
29
72
  height: var(--width);
30
73
  }
31
- .divider-module_divider-line__6CesR {
32
- position: relative;
33
- display: block;
34
- transition: opacity, width, height 250ms ease-in-out;
35
- background-color: var(--color);
36
- opacity: var(--opacity);
37
- }
38
- .divider-module_divider-line__6CesR.divider-module_vertical__qSVWD {
39
- height: var(--length);
40
- left: var(--left);
41
- width: var(--width);
42
- margin: var(--margin);
43
- }
44
- .divider-module_divider-line__6CesR.divider-module_horizontal__Gz-Oj {
45
- width: var(--length);
46
- left: var(--left);
47
- height: var(--height);
48
- margin: var(--margin);
49
- }
50
74
  .CollapsibleContainer-module_collapsible-container__u0Jmm {
51
75
  transform-origin: 0% 0%;
52
76
  opacity: 0;
@@ -80,30 +104,6 @@
80
104
  max-width: var(--prop-value);
81
105
  opacity: 1;
82
106
  }
83
- .layoutBox-module_layout-box__faPND {
84
- display: flex;
85
- position: relative;
86
- flex-direction: row;
87
- flex: 0;
88
- flex-grow: 0;
89
- flex-shrink: 0;
90
- flex-basis: auto;
91
- flex-wrap: nowrap;
92
- gap: 0;
93
- text-align: left;
94
- justify-content: flex-start;
95
- align-items: flex-start;
96
- align-self: auto;
97
- margin: 0;
98
- padding: 0;
99
- width: auto;
100
- height: auto;
101
- max-width: none;
102
- max-height: none;
103
- min-width: 0;
104
- min-height: 0;
105
- border-radius: initial;
106
- }
107
107
  .flowLayout-module_flowLayout__VHpnY {
108
108
  overflow: auto;
109
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.vanillajs.js","sources":["../../../../../../../../src/core/utils/appState/store/store.vanillajs.ts"],"sourcesContent":["\n// TinyStore, inspired by https://github.com/jherr/syncexternalstore/blob/main/csr/src/store.js\n\n/**\n * Represents the callback function for a store listener.\n */\nexport type ListenerCallBack<T> = (state: Partial<T>) => void\n\n/**\n * Represents a selector function that transforms the store state.\n */\n// export type Selector<T> = (state: Partial<T>) => Partial<T>;\nexport type SelectedValueType<T> = Partial<T> | Partial<keyof T>\n| string | number | boolean | undefined | string[] | number[] | boolean[] | undefined[];\nexport type Selector<T> = (state: Partial<T>) => SelectedValueType<T>;\n\n\n/**\n * Represents a listener for the store.\n */\nexport type Listener<T> = {\n selector?: Selector<T>\n previousValue?: SelectedValueType<T>\n} & ListenerCallBack<T>\n\n/**\n * Represents a store.\n */\nexport type Store<T> = {\n /**\n * Get the current state of the store.\n * @returns The current state of the store.\n */\n getState: () => Partial<T>\n /**\n * Set the state of the store.\n * @param state - The new state to set.\n * @returns A promise that resolves to the new state.\n */\n setState: (state: Partial<T>) => Promise<Partial<T>>\n /**\n * Subscribe a listener to the store.\n * @param listener - The listener function to be subscribed.\n * @param selector - Optional selector function to transform the store state.\n * @returns A function to unsubscribe the listener.\n */\n subscribe: (listener: Listener<T>, selector?: Selector<T>) => () => void\n /**\n * Unubscribe a listener from the store.\n * @param listener - The listener function to be unsubscribed.\n */\n unsubscribe: (listener: Listener<T>) => void\n}\n// & { actions?: { [actionName: string]: ActionHandlerCaller } }\n\n/**\n * Represents a store with additional actions.\n */\nexport type StoreWithActions<T> = Store<T> & { actions: { [actionName: string]: ActionHandlerCaller<T> } }\n\n/**\n * Represents an action handler function.\n */\nexport type ActionHandler<T> = (\n getState: Store<T>['getState'], // Function to get the current state of the store\n setState: Store<T>['setState'], // Function to set the state of the store\n ...rest: unknown[]\n) => void | Partial<T> | Promise<void | Partial<T>>\n\n/**\n * Represents an reducer function.\n */\nexport type Reducer<T> = (\n state: Partial<T>,\n action: string,\n ...rest: unknown[]\n) => Partial<T>\n\n\n/**\n * Represents a function that calls an action handler.\n */\nexport type ActionHandlerCaller<T> = (...args: unknown[]) => void | Partial<T> | Promise<void | Partial<T>>\n\n\n/**\n * Creates a new store.\n * @param initialState - The initial state of the store.\n * @param actions - Optional actions for the store.\n * @returns The created store.\n */\nexport const createStore = <T>(\n initialState: Partial<T>,\n actions?: Record<string, ActionHandler<T>>,\n reducer?: Reducer<T>,\n): Store<T> | StoreWithActions<T> => {\n let currentState: Partial<T> = initialState\n const listeners = new Set<Listener<T>>()\n\n /**\n * Gets the current state of the store.\n * @returns The current state of the store.\n */\n const getState = () => currentState\n\n // TODO debounce, batch? what is the meaningful time between setState ofr UI to be rendered and registerd by User?\n /**\n * Sets the state of the store.\n * @param newState - The new state to set.\n * @returns A promise that resolves to the new state.\n */\n const setState = async (newState: Partial<T>) => {\n currentState = newState\n\n // eslint-disable-next-line no-restricted-syntax\n for (const listener of listeners) {\n // has Listener selector?\n const selector: Selector<T> | undefined = listener?.selector\n\n // TODO compare selected value to the previous values of that listener/selector pair\n // if listener.previousValue === selector(currentState) no call\n // else listener.previousValue = selector(currentState) and call\n // l1 cache, weak references?\n const newValue: SelectedValueType<T> = selector ? selector(currentState) : currentState\n\n // TODO plugin equality\n if (listener.previousValue === undefined || listener.previousValue !== newValue) {\n listener.previousValue = newValue\n // eslint-disable-next-line no-await-in-loop\n await listener(newValue as Partial<T>)\n }\n }\n return currentState\n }\n\n /**\n * Represents the basic API of the store.\n */\n const storeBaseicApi: Store<T> = {\n /**\n * Get the current state of the store.\n * @returns The current state of the store.\n */\n getState,\n /**\n * Set the state of the store.\n * @param state - The new state to set.\n * @returns A promise that resolves to the new state.\n */\n setState,\n /**\n * Subscribe a listener to the store.\n * @param listener - The listener function to be subscribed.\n * @returns A function to unsubscribe the listener.\n */\n subscribe: (listener: Listener<T>, selector?: Selector<T>) => {\n if (selector && listener.selector && listener.selector !== selector) {\n throw new Error('Error, mismatchm selector, listener.selector !== selector.')\n }\n if (selector && !listener.selector) {\n // eslint-disable-next-line no-param-reassign\n listener.selector = selector\n }\n listeners.add(listener)\n return () => listeners.delete(listener)\n },\n /**\n * Unsubscribe a listener from the store.\n * @param listener - The listener function to be unsubscribed.\n */\n unsubscribe: (listener: Listener<T>) => {\n listeners.delete(listener)\n },\n }\n\n /**\n * Resolves the actions and creates action handlers.\n */\n const resolvedActions: Record<string, ActionHandlerCaller<T>> | null | undefined\n = actions ? Object.entries(actions)?.reduce(\n (\n aggregator: Record<string, ActionHandlerCaller<T>>,\n [actionName, actionHandler]: [string, ActionHandler<T>],\n ) => ({\n ...aggregator,\n [actionName]: async(...rest: unknown[]) => {\n const resultOfAction = await actionHandler(getState, setState, ...rest)\n\n if (reducer) {\n setState(reducer(getState(), actionName, ...rest))\n }\n return resultOfAction\n },\n }),\n {},\n ) : null\n\n /**\n * Represents the store combined with actions.\n */\n const storeCombinedWithActions = {\n ...storeBaseicApi,\n ...(resolvedActions ? { actions: { ...resolvedActions } } : {}),\n }\n\n return resolvedActions\n ? storeCombinedWithActions as StoreWithActions<T>\n : storeCombinedWithActions as Store<T>\n}\n"],"names":["createStore","initialState","actions","reducer","_Object$entries","currentState","listeners","Set","getState","setState","_ref","_asyncToGenerator","newState","listener","selector","newValue","undefined","previousValue","_x","apply","this","arguments","storeBaseicApi","subscribe","Error","add","delete","unsubscribe","resolvedActions","Object","entries","reduce","aggregator","_ref2","actionName","actionHandler","_len","length","rest","Array","_key","resultOfAction","storeCombinedWithActions"],"mappings":"4KA2FO,MAAMA,EAAcA,CACzBC,EACAC,EACAC,KACmC,IAAAC,EACnC,IAAIC,EAA2BJ,EAC/B,MAAMK,EAAY,IAAIC,IAMhBC,EAAWA,IAAMH,EAQjBI,EAAQ,WAAA,IAAAC,EAAAC,GAAG,UAAOC,GACtBP,EAAeO,EAGf,IAAK,MAAMC,KAAYP,EAAW,CAEhC,MAAMQ,EAAoCD,aAAAA,EAAAA,EAAUC,SAM9CC,EAAiCD,EAAWA,EAAST,GAAgBA,OAG5CW,IAA3BH,EAASI,eAA+BJ,EAASI,gBAAkBF,IACrEF,EAASI,cAAgBF,QAEnBF,EAASE,GAEnB,CACA,OAAOV,KACR,OAtBKI,SAAQS,GAAA,OAAAR,EAAAS,MAAAC,KAAAC,UAAA,EAAA,GA2BRC,EAA2B,CAK/Bd,WAMAC,WAMAc,UAAWA,CAACV,EAAuBC,KACjC,GAAIA,GAAYD,EAASC,UAAYD,EAASC,WAAaA,EACzD,MAAM,IAAIU,MAAM,8DAOlB,OALIV,IAAaD,EAASC,WAExBD,EAASC,SAAWA,GAEtBR,EAAUmB,IAAIZ,GACP,IAAMP,EAAUoB,OAAOb,EAAS,EAMzCc,YAAcd,IACZP,EAAUoB,OAAOb,EAAS,GAOxBe,EACF1B,EAAiCE,QAA1BA,EAAGyB,OAAOC,QAAQ5B,cAAQE,SAAvBA,EAAyB2B,QACnC,CACEC,EAAkDC,KAAA,IACjDC,EAAYC,GAA0CF,EAAA,MACnD,IACDD,EACHE,CAACA,GAAUvB,GAAG,YAA6B,IAAA,IAAAyB,EAAAf,UAAAgB,OAApBC,EAAIC,IAAAA,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAJF,EAAIE,GAAAnB,UAAAmB,GACzB,MAAMC,QAAuBN,EAAc3B,EAAUC,KAAa6B,GAKlE,OAHInC,GACFM,EAASN,EAAQK,IAAY0B,KAAeI,IAEvCG,KAEV,GACD,CAAA,GACE,KAKAC,EAA2B,IAC5BpB,KACCM,EAAkB,CAAE1B,QAAS,IAAK0B,IAAsB,CAAE,GAGhE,OACIc,CACoC"}
1
+ {"version":3,"file":"store.vanillajs.js","sources":["../../../../../../../../src/core/utils/appState/store/store.vanillajs.ts"],"sourcesContent":["\n// TinyStore, inspired by https://github.com/jherr/syncexternalstore/blob/main/csr/src/store.js\n\n/**\n * Represents the callback function for a store listener.\n */\nexport type ListenerCallBack<T> = (state: Partial<T>) => void\n\n/**\n * Represents a selector function that transforms the store state.\n */\n// export type Selector<T> = (state: Partial<T>) => Partial<T>;\nexport type SelectedValueType<T> = Partial<T> | Partial<keyof T>\n| string | number | boolean | undefined | string[] | number[] | boolean[] | undefined[];\nexport type Selector<T> = (state: Partial<T>) => SelectedValueType<T>;\n\n\n/**\n * Represents a listener for the store.\n */\nexport type Listener<T> = {\n selector?: Selector<T>\n previousValue?: SelectedValueType<T>\n} & ListenerCallBack<T>\n\n/**\n * Represents a store.\n */\nexport type Store<T> = {\n /**\n * Get the current state of the store.\n * @returns The current state of the store.\n */\n getState: () => Partial<T>\n /**\n * Set the state of the store.\n * @param state - The new state to set.\n * @returns A promise that resolves to the new state.\n */\n setState: (state: Partial<T>) => Promise<Partial<T>>\n /**\n * Subscribe a listener to the store.\n * @param listener - The listener function to be subscribed.\n * @param selector - Optional selector function to transform the store state.\n * @returns A function to unsubscribe the listener.\n */\n subscribe: (listener: Listener<T>, selector?: Selector<T>) => () => void\n /**\n * Unubscribe a listener from the store.\n * @param listener - The listener function to be unsubscribed.\n */\n unsubscribe: (listener: Listener<T>) => void\n}\n// & { actions?: { [actionName: string]: ActionHandlerCaller } }\n\n/**\n * Represents a store with additional actions.\n */\nexport type StoreWithActions<T> = Store<T> & { actions: { [actionName: string]: ActionHandlerCaller<T> } }\n\n/**\n * Represents an action handler function.\n */\nexport type ActionHandler<T> = (\n getState: Store<T>['getState'], // Function to get the current state of the store\n setState: Store<T>['setState'], // Function to set the state of the store\n ...rest: unknown[]\n) => void | Partial<T> | Promise<void | Partial<T>>\n\n/**\n * Represents an reducer function.\n */\nexport type Reducer<T> = (\n state: Partial<T>,\n action: string,\n ...rest: unknown[]\n) => Partial<T>\n\n\n/**\n * Represents a function that calls an action handler.\n */\nexport type ActionHandlerCaller<T> = (...args: unknown[]) => void | Partial<T> | Promise<void | Partial<T>>\n\n\n/**\n * Creates a new store.\n * @param initialState - The initial state of the store.\n * @param actions - Optional actions for the store.\n * @returns The created store.\n */\nexport const createStore = <T>(\n initialState: Partial<T>,\n actions?: Record<string, ActionHandler<T>>,\n reducer?: Reducer<T>,\n): Store<T> | StoreWithActions<T> => {\n let currentState: Partial<T> = initialState\n const listeners = new Set<Listener<T>>()\n\n /**\n * Gets the current state of the store.\n * @returns The current state of the store.\n */\n const getState = (): Partial<T> => currentState\n\n // TODO debounce, batch? what is the meaningful time between setState ofr UI to be rendered and registerd by User?\n /**\n * Sets the state of the store.\n * @param newState - The new state to set.\n * @returns A promise that resolves to the new state.\n */\n const setState = async (newState: Partial<T>): Promise<Partial<T>> => {\n currentState = newState\n\n // eslint-disable-next-line no-restricted-syntax\n for (const listener of listeners) {\n // has Listener selector?\n const selector: Selector<T> | undefined = listener?.selector\n\n // TODO compare selected value to the previous values of that listener/selector pair\n // if listener.previousValue === selector(currentState) no call\n // else listener.previousValue = selector(currentState) and call\n // l1 cache, weak references?\n const newValue: SelectedValueType<T> = selector ? selector(currentState) : currentState\n\n // TODO plugin equality\n if (listener.previousValue === undefined || listener.previousValue !== newValue) {\n listener.previousValue = newValue\n // eslint-disable-next-line no-await-in-loop\n await listener(newValue as Partial<T>)\n }\n }\n return currentState\n }\n\n /**\n * Represents the basic API of the store.\n */\n const storeBaseicApi: Store<T> = {\n /**\n * Get the current state of the store.\n * @returns The current state of the store.\n */\n getState,\n /**\n * Set the state of the store.\n * @param state - The new state to set.\n * @returns A promise that resolves to the new state.\n */\n setState,\n /**\n * Subscribe a listener to the store.\n * @param listener - The listener function to be subscribed.\n * @returns A function to unsubscribe the listener.\n */\n subscribe: (listener: Listener<T>, selector?: Selector<T>) => {\n if (selector && listener.selector && listener.selector !== selector) {\n throw new Error('Error, mismatchm selector, listener.selector !== selector.')\n }\n if (selector && !listener.selector) {\n // eslint-disable-next-line no-param-reassign\n listener.selector = selector\n }\n listeners.add(listener)\n return () => listeners.delete(listener)\n },\n /**\n * Unsubscribe a listener from the store.\n * @param listener - The listener function to be unsubscribed.\n */\n unsubscribe: (listener: Listener<T>) => {\n listeners.delete(listener)\n },\n }\n\n /**\n * Resolves the actions and creates action handlers.\n */\n const resolvedActions: Record<string, ActionHandlerCaller<T>> | null | undefined\n = actions ? Object.entries(actions)?.reduce(\n (\n aggregator: Record<string, ActionHandlerCaller<T>>,\n [actionName, actionHandler]: [string, ActionHandler<T>],\n ) => ({\n ...aggregator,\n [actionName]: async(...rest: unknown[]): Promise<void | Partial<T>> => {\n const resultOfAction = await actionHandler(getState, setState, ...rest)\n\n if (reducer) {\n setState(reducer(getState(), actionName, ...rest))\n }\n return resultOfAction\n },\n }),\n {},\n ) : null\n\n /**\n * Represents the store combined with actions.\n */\n const storeCombinedWithActions = {\n ...storeBaseicApi,\n ...(resolvedActions ? { actions: { ...resolvedActions } } : {}),\n }\n\n return resolvedActions\n ? storeCombinedWithActions as StoreWithActions<T>\n : storeCombinedWithActions as Store<T>\n}\n"],"names":["createStore","initialState","actions","reducer","_Object$entries","currentState","listeners","Set","getState","setState","_ref","_asyncToGenerator","newState","listener","selector","newValue","undefined","previousValue","_x","apply","this","arguments","storeBaseicApi","subscribe","Error","add","delete","unsubscribe","resolvedActions","Object","entries","reduce","aggregator","_ref2","actionName","actionHandler","_len","length","rest","Array","_key","resultOfAction","storeCombinedWithActions"],"mappings":"4KA2FO,MAAMA,EAAcA,CACzBC,EACAC,EACAC,KACmC,IAAAC,EACnC,IAAIC,EAA2BJ,EAC/B,MAAMK,EAAY,IAAIC,IAMhBC,EAAWA,IAAkBH,EAQ7BI,EAAQ,WAAA,IAAAC,EAAAC,GAAG,UAAOC,GACtBP,EAAeO,EAGf,IAAK,MAAMC,KAAYP,EAAW,CAEhC,MAAMQ,EAAoCD,aAAAA,EAAAA,EAAUC,SAM9CC,EAAiCD,EAAWA,EAAST,GAAgBA,OAG5CW,IAA3BH,EAASI,eAA+BJ,EAASI,gBAAkBF,IACrEF,EAASI,cAAgBF,QAEnBF,EAASE,GAEnB,CACA,OAAOV,KACR,OAtBKI,SAAQS,GAAA,OAAAR,EAAAS,MAAAC,KAAAC,UAAA,EAAA,GA2BRC,EAA2B,CAK/Bd,WAMAC,WAMAc,UAAWA,CAACV,EAAuBC,KACjC,GAAIA,GAAYD,EAASC,UAAYD,EAASC,WAAaA,EACzD,MAAM,IAAIU,MAAM,8DAOlB,OALIV,IAAaD,EAASC,WAExBD,EAASC,SAAWA,GAEtBR,EAAUmB,IAAIZ,GACP,IAAMP,EAAUoB,OAAOb,EAAS,EAMzCc,YAAcd,IACZP,EAAUoB,OAAOb,EAAS,GAOxBe,EACF1B,EAAiCE,QAA1BA,EAAGyB,OAAOC,QAAQ5B,cAAQE,SAAvBA,EAAyB2B,QACnC,CACEC,EAAkDC,KAAA,IACjDC,EAAYC,GAA0CF,EAAA,MACnD,IACDD,EACHE,CAACA,GAAUvB,GAAG,YAAyD,IAAA,IAAAyB,EAAAf,UAAAgB,OAAhDC,EAAIC,IAAAA,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAJF,EAAIE,GAAAnB,UAAAmB,GACzB,MAAMC,QAAuBN,EAAc3B,EAAUC,KAAa6B,GAKlE,OAHInC,GACFM,EAASN,EAAQK,IAAY0B,KAAeI,IAEvCG,KAEV,GACD,CAAA,GACE,KAKAC,EAA2B,IAC5BpB,KACCM,EAAkB,CAAE1B,QAAS,IAAK0B,IAAsB,CAAE,GAGhE,OACIc,CACoC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useStore.react.js","sources":["../../../../../../../../src/core/utils/appState/store/useStore.react.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react'\n\nimport { Store, StoreWithActions, Selector } from './store.vanillajs'\n\n\n/**\n * Represents the type for the partial store state used in the `useStore` hook.\n */\nexport type useStoreType<T> = Partial<T>\n\nexport type useStoreWithSetterType<T> = [Partial<T>, Store<T>['setState']]\n\ntype returnSetterTrueType = true\n\nexport function useStore<T>(\n store: Store<T> | StoreWithActions<T>,\n selector: Selector<T>): useStoreType<T>\n\nexport function useStore<T>(\n store: Store<T> | StoreWithActions<T>,\n selector: Selector<T>,\n returnSetter: returnSetterTrueType): useStoreWithSetterType<T>\n/**\n * Custom hook to subscribe to a store and retrieve the selected state.\n * @param store - The store to subscribe to.\n * @param selector - Optional selector function to transform the store state.\n * @param returnSetter - Optional flag to have setState returned\n * @returns The selected state from the store. or selected state and seState tuple\n */\nexport function useStore<T>(\n store: Store<T> | StoreWithActions<T>,\n selector: Selector<T> = (state: Partial<T>) => state,\n returnSetter = false,\n // TODO pass selector\n // useSyncExternalStore((...args) => {\n // args[0].selector?? store.subscribe(...args) }, () => selector(store.getState()));\n): useStoreType<T> | useStoreWithSetterType<T> {\n const getter = useSyncExternalStore(store.subscribe, () => (selector(store.getState()) as Partial<T>))\n\n if (returnSetter) {\n return [getter, store.setState] as useStoreWithSetterType<T>\n }\n\n return getter as useStoreType<T>\n}\n\n/**\n * Represents the type for the API returned by the `useStoreApi` hook.\n */\nexport type useStoreApiType<T> = [\n useStoreType<T>,\n Store<T>['getState'],\n Store<T>['setState'],\n StoreWithActions<T>['actions'],\n]\n\n/**\n * Custom hook to retrieve the store API including state, getters, setters, and actions (if applicable).\n * @param store - The store to retrieve the API from.\n * @param selector - Optional selector function to transform the store state.\n * @returns The store API including state, getters, setters, and actions (if applicable).\n */\nexport function useStoreApi<T>(\n store: Store<T>,\n selector: Selector<T> = (state: Partial<T>) => state,\n): useStoreApiType<T> {\n return [\n useStore(store, selector),\n store.getState,\n store.setState,\n (store as StoreWithActions<T>).actions,\n ]\n}\n"],"names":["useStore","store","selector","arguments","length","undefined","state","returnSetter","getter","useSyncExternalStore","subscribe","getState","setState","useStoreApi","actions"],"mappings":"6CA6BO,SAASA,EACdC,GAM6C,IAL7CC,EAAqBC,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAIG,GAAAA,GAAsBA,EAC/CC,EAAYJ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAKZ,MAAMK,EAASC,EAAqBR,EAAMS,WAAW,IAAOR,EAASD,EAAMU,cAE3E,OAAIJ,EACK,CAACC,EAAQP,EAAMW,UAGjBJ,CACT,CAkBO,SAASK,EACdZ,GAGA,MAAO,CACLD,EAASC,EAHUE,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAIG,GAAAA,GAAsBA,GAI7CL,EAAMU,SACNV,EAAMW,SACLX,EAA8Ba,QAEnC"}
1
+ {"version":3,"file":"useStore.react.js","sources":["../../../../../../../../src/core/utils/appState/store/useStore.react.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react'\n\nimport { Store, StoreWithActions, Selector } from './store.vanillajs'\n\n\n/**\n * Represents the type for the partial store state used in the `useStore` hook.\n */\nexport type useStoreType<T> = Partial<T>\n\nexport type useStoreWithSetterType<T> = [Partial<T>, Store<T>['setState']]\n\ntype returnSetterTrueType = true\n\nexport function useStore<T>(\n store: Store<T> | StoreWithActions<T>,\n selector: Selector<T>): useStoreType<T>\n\nexport function useStore<T>(\n store: Store<T> | StoreWithActions<T>,\n selector: Selector<T>,\n returnSetter: returnSetterTrueType): useStoreWithSetterType<T>\n/**\n * Custom hook to subscribe to a store and retrieve the selected state.\n * @param store - The store to subscribe to.\n * @param selector - Optional selector function to transform the store state.\n * @param returnSetter - Optional flag to have setState returned\n * @returns The selected state from the store. or selected state and seState tuple\n */\nexport function useStore<T>(\n store: Store<T> | StoreWithActions<T>,\n selector: Selector<T> = (state: Partial<T>): Partial<T> => state,\n returnSetter = false,\n // TODO pass selector\n // useSyncExternalStore((...args) => {\n // args[0].selector?? store.subscribe(...args) }, () => selector(store.getState()));\n): useStoreType<T> | useStoreWithSetterType<T> {\n const getter = useSyncExternalStore(store.subscribe, () => (selector(store.getState()) as Partial<T>))\n\n if (returnSetter) {\n return [getter, store.setState] as useStoreWithSetterType<T>\n }\n\n return getter as useStoreType<T>\n}\n\n/**\n * Represents the type for the API returned by the `useStoreApi` hook.\n */\nexport type useStoreApiType<T> = [\n useStoreType<T>,\n Store<T>['getState'],\n Store<T>['setState'],\n StoreWithActions<T>['actions'],\n]\n\n/**\n * Custom hook to retrieve the store API including state, getters, setters, and actions (if applicable).\n * @param store - The store to retrieve the API from.\n * @param selector - Optional selector function to transform the store state.\n * @returns The store API including state, getters, setters, and actions (if applicable).\n */\nexport function useStoreApi<T>(\n store: Store<T>,\n selector: Selector<T> = (state: Partial<T>): Partial<T> => state,\n): useStoreApiType<T> {\n return [\n useStore(store, selector),\n store.getState,\n store.setState,\n (store as StoreWithActions<T>).actions,\n ]\n}\n"],"names":["useStore","store","selector","arguments","length","undefined","state","returnSetter","getter","useSyncExternalStore","subscribe","getState","setState","useStoreApi","actions"],"mappings":"6CA6BO,SAASA,EACdC,GAM6C,IAL7CC,EAAqBC,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAIG,GAAAA,GAAkCA,EAC3DC,EAAYJ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,IAAAA,UAAA,GAKZ,MAAMK,EAASC,EAAqBR,EAAMS,WAAW,IAAOR,EAASD,EAAMU,cAE3E,OAAIJ,EACK,CAACC,EAAQP,EAAMW,UAGjBJ,CACT,CAkBO,SAASK,EACdZ,GAGA,MAAO,CACLD,EAASC,EAHUE,UAAAC,OAAAD,QAAAE,IAAAF,UAAAE,GAAAF,UAAIG,GAAAA,GAAkCA,GAIzDL,EAAMU,SACNV,EAAMW,SACLX,EAA8Ba,QAEnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"birthnumberCZSKvalidator.js","sources":["../../../../../../../src/core/utils/helpers/birthnumberCZSKvalidator.ts"],"sourcesContent":["export const regex = /^\\s*(\\d\\d)(\\d\\d)(\\d\\d)[/]*(\\d\\d\\d)(\\d?)\\s*$/\n\nexport const getMatch: (value: string | number) => null | RegExpMatchArray\n = (value: string | number) => String(value).match(regex)\n\nexport const isValidFormat = (value: string | number): boolean => {\n const match = getMatch(value)\n\n return match !== null && !!match[0] && parse(value) !== null\n}\n\nexport const isValidModulo11 = (value: string | number): boolean => {\n const validFormat = isValidFormat(value)\n\n if (!validFormat) {\n return false\n }\n\n let stringValue: string\n\n if (typeof value === 'string') {\n stringValue = value.replace('/', '')\n } else {\n stringValue = (value as number).toString()\n }\n\n if (stringValue.length < 10) {\n return true\n }\n\n const controlDigit = stringValue.substr(9, 1)\n let mod = parseInt(stringValue.substr(0, 9), 10) % 11\n\n if (mod === 10) {\n mod = 0\n }\n\n return parseInt(controlDigit, 10) === mod\n}\n\ntype RangeTupleType = [number, number, string, number]\n\nconst monthRange = {\n ranges: [\n // M\n [1, 12, 'M', 0],\n // M\n [21, 32, 'M', 20],\n // F\n [51, 62, 'F', 50],\n // F\n [71, 82, 'F', 70],\n ] as RangeTupleType[],\n getRange(monthHint: number) {\n return this.ranges.find(([min, max]) => monthHint >= min && monthHint <= max)\n },\n getGender(monthHint: number) {\n const range = this.getRange(monthHint)\n\n return range ? range[2] as string : null\n },\n getMonth(monthHint: number) {\n const range = this.getRange(monthHint)\n\n return String(range ? monthHint - (range[3] as number) : null).padStart(2, '0')\n },\n}\n\ntype ParsedBirthNumber = {\n day: string | number | null\n month: string | number | null\n year: string | number | null\n gender: string | null\n}\n\nexport const parse = (value: string | number | undefined): ParsedBirthNumber | null => {\n if (!value) {\n return null\n }\n const match = getMatch(value)\n\n if (!match) {\n return null\n }\n\n const controlDigit = match[5]\n\n let year = parseInt(match[1], 10)\n\n // eslint-disable-next-line no-nested-ternary\n year += controlDigit === '' ? (year < 54 ? 1900 : 1800) : (year < 54 ? 2000 : 1900)\n const monthHint = parseInt(match[2], 10)\n const month = monthRange.getMonth(monthHint)\n const gender = monthRange.getGender(monthHint)\n const day = String(parseInt(match[3], 10)).padStart(2, '0')\n\n // console.log('year-month-day')\n // console.log(`${year}-${month}-${day}`)\n\n const date = new Date(`${year}-${month}-${day}`)\n\n if (date instanceof Date && !Number.isNaN(date) && date.getMonth() + 1 === parseInt(month, 10)) {\n return {\n day,\n month,\n year,\n gender,\n }\n }\n return null\n}\n\n// TODO, control digit and year control\n/*\n if ($c === '') {\n $year += $year < 54 ? 1900 : 1800;\n } else {\n // kontrolní číslice\n $mod = ($year . $month . $day . $ext) % 11;\n if ($mod === 10) $mod = 0;\n if ($mod !== (int) $c) {\n return false;\n }\n\n $year += $year < 54 ? 2000 : 1900;\n }\n*/\n"],"names":["regex","getMatch","value","String","match","isValidFormat","parse","isValidModulo11","stringValue","replace","toString","length","controlDigit","substr","mod","parseInt","monthRange","ranges","getRange","monthHint","this","find","_ref","min","max","getGender","range","getMonth","padStart","year","month","gender","day","date","Date","concat","Number","isNaN"],"mappings":"uJAAO,MAAMA,EAAQ,8CAERC,EACRC,GAA2BC,OAAOD,GAAOE,MAAMJ,GAEvCK,EAAiBH,IAC5B,MAAME,EAAQH,EAASC,GAEvB,OAAiB,OAAVE,KAAoBA,EAAM,IAAuB,OAAjBE,EAAMJ,EAAe,EAGjDK,EAAmBL,IAG9B,IAFoBG,EAAcH,GAGhC,OAAO,EAGT,IAAIM,EAQJ,GALEA,EADmB,iBAAVN,EACKA,EAAMO,QAAQ,IAAK,IAElBP,EAAiBQ,WAG9BF,EAAYG,OAAS,GACvB,OAAO,EAGT,MAAMC,EAAeJ,EAAYK,OAAO,EAAG,GAC3C,IAAIC,EAAMC,SAASP,EAAYK,OAAO,EAAG,GAAI,IAAM,GAMnD,OAJY,KAARC,IACFA,EAAM,GAGDC,SAASH,EAAc,MAAQE,CAAG,EAKrCE,EAAa,CACjBC,OAAQ,CAEN,CAAC,EAAG,GAAI,IAAK,GAEb,CAAC,GAAI,GAAI,IAAK,IAEd,CAAC,GAAI,GAAI,IAAK,IAEd,CAAC,GAAI,GAAI,IAAK,KAEhBC,QAAAA,CAASC,GACP,OAAOC,KAAKH,OAAOI,MAAKC,IAAA,IAAEC,EAAKC,GAAIF,EAAA,OAAKH,GAAaI,GAAOJ,GAAaK,CAAG,GAC7E,EACDC,SAAAA,CAAUN,GACR,MAAMO,EAAQN,KAAKF,SAASC,GAE5B,OAAOO,EAAQA,EAAM,GAAe,IACrC,EACDC,QAAAA,CAASR,GACP,MAAMO,EAAQN,KAAKF,SAASC,GAE5B,OAAOhB,OAAOuB,EAAQP,EAAaO,EAAM,GAAgB,MAAME,SAAS,EAAG,IAC7E,GAUWtB,EAASJ,IACpB,IAAKA,EACH,OAAO,KAET,MAAME,EAAQH,EAASC,GAEvB,IAAKE,EACH,OAAO,KAGT,MAAMQ,EAAeR,EAAM,GAE3B,IAAIyB,EAAOd,SAASX,EAAM,GAAI,IAG9ByB,GAAyB,KAAjBjB,EAAuBiB,EAAO,GAAK,KAAO,KAASA,EAAO,GAAK,IAAO,KAC9E,MAAMV,EAAYJ,SAASX,EAAM,GAAI,IAC/B0B,EAAQd,EAAWW,SAASR,GAC5BY,EAASf,EAAWS,UAAUN,GAC9Ba,EAAM7B,OAAOY,SAASX,EAAM,GAAI,KAAKwB,SAAS,EAAG,KAKjDK,EAAO,IAAIC,KAAI,GAAAC,OAAIN,EAAIM,KAAAA,OAAIL,EAAK,KAAAK,OAAIH,IAE1C,OAAIC,aAAgBC,OAASE,OAAOC,MAAMJ,IAASA,EAAKN,WAAa,IAAMZ,SAASe,EAAO,IAClF,CACLE,MACAF,QACAD,OACAE,UAGG,IAAI"}
1
+ {"version":3,"file":"birthnumberCZSKvalidator.js","sources":["../../../../../../../src/core/utils/helpers/birthnumberCZSKvalidator.ts"],"sourcesContent":["export const regex = /^\\s*(\\d\\d)(\\d\\d)(\\d\\d)[/]*(\\d\\d\\d)(\\d?)\\s*$/\n\nexport const getMatch: (value: string | number) => null | RegExpMatchArray\n = (value: string | number) => String(value).match(regex)\n\nexport const isValidFormat = (value: string | number): boolean => {\n const match = getMatch(value)\n\n return match !== null && !!match[0] && parse(value) !== null\n}\n\nexport const isValidModulo11 = (value: string | number): boolean => {\n const validFormat = isValidFormat(value)\n\n if (!validFormat) {\n return false\n }\n\n let stringValue: string\n\n if (typeof value === 'string') {\n stringValue = value.replace('/', '')\n } else {\n stringValue = (value as number).toString()\n }\n\n if (stringValue.length < 10) {\n return true\n }\n\n const controlDigit = stringValue.substr(9, 1)\n let mod = parseInt(stringValue.substr(0, 9), 10) % 11\n\n if (mod === 10) {\n mod = 0\n }\n\n return parseInt(controlDigit, 10) === mod\n}\n\ntype RangeTupleType = [number, number, string, number]\n\nconst monthRange = {\n ranges: [\n // M\n [1, 12, 'M', 0],\n // M\n [21, 32, 'M', 20],\n // F\n [51, 62, 'F', 50],\n // F\n [71, 82, 'F', 70],\n ] as RangeTupleType[],\n getRange(monthHint: number): RangeTupleType | undefined {\n return this.ranges.find(([min, max]) => monthHint >= min && monthHint <= max)\n },\n getGender(monthHint: number): string | null {\n const range = this.getRange(monthHint)\n\n return range ? range[2] as string : null\n },\n getMonth(monthHint: number): string {\n const range = this.getRange(monthHint)\n\n return String(range ? monthHint - (range[3] as number) : null).padStart(2, '0')\n },\n}\n\ntype ParsedBirthNumber = {\n day: string | number | null\n month: string | number | null\n year: string | number | null\n gender: string | null\n}\n\nexport const parse = (value: string | number | undefined): ParsedBirthNumber | null => {\n if (!value) {\n return null\n }\n const match = getMatch(value)\n\n if (!match) {\n return null\n }\n\n const controlDigit = match[5]\n\n let year = parseInt(match[1], 10)\n\n // eslint-disable-next-line no-nested-ternary\n year += controlDigit === '' ? (year < 54 ? 1900 : 1800) : (year < 54 ? 2000 : 1900)\n const monthHint = parseInt(match[2], 10)\n const month = monthRange.getMonth(monthHint)\n const gender = monthRange.getGender(monthHint)\n const day = String(parseInt(match[3], 10)).padStart(2, '0')\n\n // console.log('year-month-day')\n // console.log(`${year}-${month}-${day}`)\n\n const date = new Date(`${year}-${month}-${day}`)\n\n if (date instanceof Date && !Number.isNaN(date) && date.getMonth() + 1 === parseInt(month, 10)) {\n return {\n day,\n month,\n year,\n gender,\n }\n }\n return null\n}\n\n// TODO, control digit and year control\n/*\n if ($c === '') {\n $year += $year < 54 ? 1900 : 1800;\n } else {\n // kontrolní číslice\n $mod = ($year . $month . $day . $ext) % 11;\n if ($mod === 10) $mod = 0;\n if ($mod !== (int) $c) {\n return false;\n }\n\n $year += $year < 54 ? 2000 : 1900;\n }\n*/\n"],"names":["regex","getMatch","value","String","match","isValidFormat","parse","isValidModulo11","stringValue","replace","toString","length","controlDigit","substr","mod","parseInt","monthRange","ranges","getRange","monthHint","this","find","_ref","min","max","getGender","range","getMonth","padStart","year","month","gender","day","date","Date","concat","Number","isNaN"],"mappings":"uJAAO,MAAMA,EAAQ,8CAERC,EACRC,GAA2BC,OAAOD,GAAOE,MAAMJ,GAEvCK,EAAiBH,IAC5B,MAAME,EAAQH,EAASC,GAEvB,OAAiB,OAAVE,KAAoBA,EAAM,IAAuB,OAAjBE,EAAMJ,EAAe,EAGjDK,EAAmBL,IAG9B,IAFoBG,EAAcH,GAGhC,OAAO,EAGT,IAAIM,EAQJ,GALEA,EADmB,iBAAVN,EACKA,EAAMO,QAAQ,IAAK,IAElBP,EAAiBQ,WAG9BF,EAAYG,OAAS,GACvB,OAAO,EAGT,MAAMC,EAAeJ,EAAYK,OAAO,EAAG,GAC3C,IAAIC,EAAMC,SAASP,EAAYK,OAAO,EAAG,GAAI,IAAM,GAMnD,OAJY,KAARC,IACFA,EAAM,GAGDC,SAASH,EAAc,MAAQE,CAAG,EAKrCE,EAAa,CACjBC,OAAQ,CAEN,CAAC,EAAG,GAAI,IAAK,GAEb,CAAC,GAAI,GAAI,IAAK,IAEd,CAAC,GAAI,GAAI,IAAK,IAEd,CAAC,GAAI,GAAI,IAAK,KAEhBC,QAAAA,CAASC,GACP,OAAOC,KAAKH,OAAOI,MAAKC,IAAA,IAAEC,EAAKC,GAAIF,EAAA,OAAKH,GAAaI,GAAOJ,GAAaK,CAAG,GAC7E,EACDC,SAAAA,CAAUN,GACR,MAAMO,EAAQN,KAAKF,SAASC,GAE5B,OAAOO,EAAQA,EAAM,GAAe,IACrC,EACDC,QAAAA,CAASR,GACP,MAAMO,EAAQN,KAAKF,SAASC,GAE5B,OAAOhB,OAAOuB,EAAQP,EAAaO,EAAM,GAAgB,MAAME,SAAS,EAAG,IAC7E,GAUWtB,EAASJ,IACpB,IAAKA,EACH,OAAO,KAET,MAAME,EAAQH,EAASC,GAEvB,IAAKE,EACH,OAAO,KAGT,MAAMQ,EAAeR,EAAM,GAE3B,IAAIyB,EAAOd,SAASX,EAAM,GAAI,IAG9ByB,GAAyB,KAAjBjB,EAAuBiB,EAAO,GAAK,KAAO,KAASA,EAAO,GAAK,IAAO,KAC9E,MAAMV,EAAYJ,SAASX,EAAM,GAAI,IAC/B0B,EAAQd,EAAWW,SAASR,GAC5BY,EAASf,EAAWS,UAAUN,GAC9Ba,EAAM7B,OAAOY,SAASX,EAAM,GAAI,KAAKwB,SAAS,EAAG,KAKjDK,EAAO,IAAIC,KAAI,GAAAC,OAAIN,EAAIM,KAAAA,OAAIL,EAAK,KAAAK,OAAIH,IAE1C,OAAIC,aAAgBC,OAASE,OAAOC,MAAMJ,IAASA,EAAKN,WAAa,IAAMZ,SAASe,EAAO,IAClF,CACLE,MACAF,QACAD,OACAE,UAGG,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"cancelableDelayedFunction.js","sources":["../../../../../../../src/core/utils/helpers/cancelableDelayedFunction.ts"],"sourcesContent":["export const cancelableSetInterval = (func: () => void, delay = 100) => {\n const timeoutInterval = setInterval(func, delay)\n\n return () => clearInterval(timeoutInterval)\n}\n\nexport const cancelableSetTimeout = (func: () => void, delay = 100) => {\n const timeoutInterval = setTimeout(func, delay)\n\n return () => clearTimeout(timeoutInterval)\n}\n"],"names":["cancelableSetInterval","func","timeoutInterval","setInterval","arguments","length","undefined","clearInterval","cancelableSetTimeout","setTimeout","clearTimeout"],"mappings":"MAAaA,EAAwB,SAACC,GACpC,MAAMC,EAAkBC,YAAYF,EADuBG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAG9D,MAAO,IAAMG,cAAcL,EAC7B,EAEaM,EAAuB,SAACP,GACnC,MAAMC,EAAkBO,WAAWR,EADuBG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAG7D,MAAO,IAAMM,aAAaR,EAC5B"}
1
+ {"version":3,"file":"cancelableDelayedFunction.js","sources":["../../../../../../../src/core/utils/helpers/cancelableDelayedFunction.ts"],"sourcesContent":["export const cancelableSetInterval = (func: () => void, delay = 100): () => void => {\n const timeoutInterval = setInterval(func, delay)\n\n return (): void => clearInterval(timeoutInterval)\n}\n\nexport const cancelableSetTimeout = (func: () => void, delay = 100): () => void => {\n const timeoutInterval = setTimeout(func, delay)\n\n return (): void => clearTimeout(timeoutInterval)\n}\n"],"names":["cancelableSetInterval","func","timeoutInterval","setInterval","arguments","length","undefined","clearInterval","cancelableSetTimeout","setTimeout","clearTimeout"],"mappings":"MAAaA,EAAwB,SAACC,GACpC,MAAMC,EAAkBC,YAAYF,EADuBG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAG9D,MAAO,IAAYG,cAAcL,EACnC,EAEaM,EAAuB,SAACP,GACnC,MAAMC,EAAkBO,WAAWR,EADuBG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KAG7D,MAAO,IAAYM,aAAaR,EAClC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fileValidator.js","sources":["../../../../../../../src/core/utils/helpers/fileValidator.ts"],"sourcesContent":["import { fileNameExt } from './textValueOperations'\n\nexport const parseCSVdata = (data: string, columnDelimiter = ';'): {\n firstLine: string\n lines: string[]\n columns: null | string[]\n numColumns: number\n} => {\n let lines: string[] = data.split('\\r\\n')\n\n if (lines.length <= 1) {\n lines = data.split('\\n')\n }\n\n const firstLine: string = lines.shift() as string\n const columns: null | string[] = firstLine ? firstLine.split(columnDelimiter) : null\n const numColumns: number = columns ? columns.length : 0\n\n return {\n firstLine,\n lines,\n columns,\n numColumns,\n }\n}\n\nexport const validateLineNumColumns\n = (lineColumns: Array<string>, numColumns: number, line: string, index: number): ErrorMessage | null => {\n if (lineColumns.length !== numColumns) {\n // errors.push(`Line number of cells is not equal to the number of columns: \"${line}, index: ${index}\"`)\n return {\n message: 'errors.uploadInput.file.line.invalid',\n params: { line, index: index + 1 } } as ErrorMessage\n }\n return null\n }\n\nexport const validateLineCellTrimmed\n = (cell: string, line: string, lineIndex: number, cellIndex: number): ErrorMessage | null => {\n if (cell !== cell.trim()) {\n return {\n message: 'errors.uploadInput.file.cell.invalid',\n params: {\n line, cell, lineIndex, cellIndex,\n },\n } as ErrorMessage\n }\n return null\n }\n\nexport const validateCSVlines = (lines: string[], numColumns: number, columnDelimiter = ';'): ErrorMessage[] => {\n const errors: ErrorMessage[] = []\n // lines without first line of columns (hence the index + 1 in error message)\n let linesNum = lines.length\n\n // eslint-disable-next-line no-cond-assign\n // eslint-disable-next-line no-plusplus\n while (linesNum--) {\n if (lines[linesNum].trim() === '' || lines[linesNum].split(';').join('').trim() === '') {\n lines.splice(linesNum, 1)\n }\n }\n\n let lineColumns = null\n let errorLineNumColumns = null\n let errorLineCellNotTrimmed = null\n\n lines.forEach((line, index) => {\n lineColumns = line.split(columnDelimiter)\n\n errorLineNumColumns = validateLineNumColumns(lineColumns, numColumns, line, index)\n errorLineNumColumns && errors.push(errorLineNumColumns)\n\n lineColumns.forEach((cell, cellIndex) => {\n errorLineCellNotTrimmed = validateLineCellTrimmed(cell, line, index, cellIndex)\n errorLineCellNotTrimmed && errors.push(errorLineCellNotTrimmed)\n })\n })\n\n return errors\n}\n\n/*\n// maybe add aditional mime types\nhttp://fileformats.archiveteam.org/wiki/CSV\n['text/csv','application/csv', 'text/x-csv',\n'application/x-csv', 'text/x-comma-separated-values', 'text/comma-separated-values']\n*/\n\nexport type ErrorMessage = {\n message: string\n params: Record<string, string | number>\n}\n\nexport const validateCSVFile\n= (file: File, callBack: (errors?: (ErrorMessage | string)[] | null) => void, columnDelimiter = ';'): void => {\n if (!file) {\n callBack(['errors.uploadInput.file.empty'])\n return\n }\n if (fileNameExt(file.name) !== 'csv' || !['text/csv', 'text/plain', 'application/vnd.ms-excel'].includes(file.type)) {\n callBack(['errors.uploadInput.file.invalid'])\n return\n }\n const reader = new FileReader()\n\n reader.readAsText(file)\n reader.onloadend = () => {\n const data = reader.result ? reader.result.toString() : ''\n\n const { numColumns, lines } = parseCSVdata(data, columnDelimiter)\n\n if (numColumns < 2) {\n callBack(['errors.uploadInput.file.numColumns'])\n return\n }\n\n if (lines?.length < 1) {\n callBack(['errors.uploadInput.file.numLines'])\n return\n }\n\n const errors: (ErrorMessage | string)[] = validateCSVlines(lines, numColumns, columnDelimiter)\n\n const flatErrors: string[] = errors.map((errorMsg: ErrorMessage | string) => (\n (errorMsg as ErrorMessage)?.message ? JSON.stringify(errorMsg) : String(errorMsg)))\n\n const errorsArray: string[] = [...new Set(flatErrors)].map((serialized: string) => JSON.parse(serialized))\n\n // callBack && callBack(errorsArray.length ? errorsArray?.splice?.(0, 6) : null)\n callBack && callBack(errorsArray.length ? errorsArray : null)\n }\n\n reader.onerror = (error) => {\n console.error(error)\n }\n}\n\nexport const validateSDFFile\n= (file: File, callBack: (errors?: (ErrorMessage | string)[] | null) => void, columnDelimiter = ';'): void => {\n if (!file) {\n callBack(['errors.uploadInput.file.empty'])\n return\n }\n if (fileNameExt(file.name) !== 'sdf') {\n callBack(['errors.uploadInput.file.invalid'])\n return\n }\n const reader = new FileReader()\n\n reader.readAsText(file)\n reader.onloadend = () => {\n const data = reader.result ? reader.result.toString() : ''\n\n const { lines } = parseCSVdata(data, columnDelimiter)\n\n if (lines?.length < 1) {\n callBack(['errors.uploadInput.file.numLines'])\n return\n }\n\n callBack && callBack(null)\n }\n\n reader.onerror = (error) => {\n console.error(error)\n }\n}\n\nexport const validateJSONFile\n= (file: File, callBack: (errors?: (ErrorMessage | string)[] | null) => void, columnDelimiter = ';'): void => {\n if (!file) {\n callBack(['errors.uploadInput.file.empty'])\n return\n }\n if (fileNameExt(file.name) !== 'json') {\n callBack(['errors.uploadInput.file.invalid'])\n return\n }\n const reader = new FileReader()\n\n reader.readAsText(file)\n reader.onloadend = () => {\n const data = reader.result ? reader.result.toString() : ''\n\n try {\n const parsed = JSON.parse(data)\n\n JSON.stringify(parsed)\n } catch (error) {\n console.error(error)\n callBack(['errors.uploadInput.file.invalid'])\n return\n }\n\n const { lines } = parseCSVdata(data, columnDelimiter)\n\n if (lines?.length < 1) {\n callBack(['errors.uploadInput.file.numLines'])\n return\n }\n\n callBack && callBack(null)\n }\n\n reader.onerror = (error) => {\n console.error(error)\n }\n}\n"],"names":["parseCSVdata","data","columnDelimiter","arguments","length","undefined","lines","split","firstLine","shift","columns","numColumns","validateLineNumColumns","lineColumns","line","index","message","params","validateLineCellTrimmed","cell","lineIndex","cellIndex","trim","validateCSVlines","errors","linesNum","join","splice","errorLineNumColumns","errorLineCellNotTrimmed","forEach","push","validateCSVFile","file","callBack","fileNameExt","name","includes","type","reader","FileReader","readAsText","onloadend","result","toString","flatErrors","map","errorMsg","JSON","stringify","String","errorsArray","Set","serialized","parse","onerror","error","validateSDFFile","validateJSONFile","parsed"],"mappings":"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"}
1
+ {"version":3,"file":"fileValidator.js","sources":["../../../../../../../src/core/utils/helpers/fileValidator.ts"],"sourcesContent":["import { fileNameExt } from './textValueOperations'\n\nexport const parseCSVdata = (data: string, columnDelimiter = ';'): {\n firstLine: string\n lines: string[]\n columns: null | string[]\n numColumns: number\n} => {\n let lines: string[] = data.split('\\r\\n')\n\n if (lines.length <= 1) {\n lines = data.split('\\n')\n }\n\n const firstLine: string = lines.shift() as string\n const columns: null | string[] = firstLine ? firstLine.split(columnDelimiter) : null\n const numColumns: number = columns ? columns.length : 0\n\n return {\n firstLine,\n lines,\n columns,\n numColumns,\n }\n}\n\nexport const validateLineNumColumns\n = (lineColumns: Array<string>, numColumns: number, line: string, index: number): ErrorMessage | null => {\n if (lineColumns.length !== numColumns) {\n // errors.push(`Line number of cells is not equal to the number of columns: \"${line}, index: ${index}\"`)\n return {\n message: 'errors.uploadInput.file.line.invalid',\n params: { line, index: index + 1 } } as ErrorMessage\n }\n return null\n }\n\nexport const validateLineCellTrimmed\n = (cell: string, line: string, lineIndex: number, cellIndex: number): ErrorMessage | null => {\n if (cell !== cell.trim()) {\n return {\n message: 'errors.uploadInput.file.cell.invalid',\n params: {\n line, cell, lineIndex, cellIndex,\n },\n } as ErrorMessage\n }\n return null\n }\n\nexport const validateCSVlines = (lines: string[], numColumns: number, columnDelimiter = ';'): ErrorMessage[] => {\n const errors: ErrorMessage[] = []\n // lines without first line of columns (hence the index + 1 in error message)\n let linesNum = lines.length\n\n // eslint-disable-next-line no-cond-assign\n // eslint-disable-next-line no-plusplus\n while (linesNum--) {\n if (lines[linesNum].trim() === '' || lines[linesNum].split(';').join('').trim() === '') {\n lines.splice(linesNum, 1)\n }\n }\n\n let lineColumns = null\n let errorLineNumColumns = null\n let errorLineCellNotTrimmed = null\n\n lines.forEach((line, index) => {\n lineColumns = line.split(columnDelimiter)\n\n errorLineNumColumns = validateLineNumColumns(lineColumns, numColumns, line, index)\n errorLineNumColumns && errors.push(errorLineNumColumns)\n\n lineColumns.forEach((cell, cellIndex) => {\n errorLineCellNotTrimmed = validateLineCellTrimmed(cell, line, index, cellIndex)\n errorLineCellNotTrimmed && errors.push(errorLineCellNotTrimmed)\n })\n })\n\n return errors\n}\n\n/*\n// maybe add aditional mime types\nhttp://fileformats.archiveteam.org/wiki/CSV\n['text/csv','application/csv', 'text/x-csv',\n'application/x-csv', 'text/x-comma-separated-values', 'text/comma-separated-values']\n*/\n\nexport type ErrorMessage = {\n message: string\n params: Record<string, string | number>\n}\n\nexport const validateCSVFile\n= (file: File, callBack: (errors?: (ErrorMessage | string)[] | null) => void, columnDelimiter = ';'): void => {\n if (!file) {\n callBack(['errors.uploadInput.file.empty'])\n return\n }\n if (fileNameExt(file.name) !== 'csv' || !['text/csv', 'text/plain', 'application/vnd.ms-excel'].includes(file.type)) {\n callBack(['errors.uploadInput.file.invalid'])\n return\n }\n const reader = new FileReader()\n\n reader.readAsText(file)\n reader.onloadend = (): void => {\n const data = reader.result ? reader.result.toString() : ''\n\n const { numColumns, lines } = parseCSVdata(data, columnDelimiter)\n\n if (numColumns < 2) {\n callBack(['errors.uploadInput.file.numColumns'])\n return\n }\n\n if (lines?.length < 1) {\n callBack(['errors.uploadInput.file.numLines'])\n return\n }\n\n const errors: (ErrorMessage | string)[] = validateCSVlines(lines, numColumns, columnDelimiter)\n\n const flatErrors: string[] = errors.map((errorMsg: ErrorMessage | string) => (\n (errorMsg as ErrorMessage)?.message ? JSON.stringify(errorMsg) : String(errorMsg)))\n\n const errorsArray: string[] = [...new Set(flatErrors)].map((serialized: string) => JSON.parse(serialized))\n\n // callBack && callBack(errorsArray.length ? errorsArray?.splice?.(0, 6) : null)\n callBack && callBack(errorsArray.length ? errorsArray : null)\n }\n\n reader.onerror = (error): void => {\n console.error(error)\n }\n}\n\nexport const validateSDFFile\n= (file: File, callBack: (errors?: (ErrorMessage | string)[] | null) => void, columnDelimiter = ';'): void => {\n if (!file) {\n callBack(['errors.uploadInput.file.empty'])\n return\n }\n if (fileNameExt(file.name) !== 'sdf') {\n callBack(['errors.uploadInput.file.invalid'])\n return\n }\n const reader = new FileReader()\n\n reader.readAsText(file)\n reader.onloadend = (): void => {\n const data = reader.result ? reader.result.toString() : ''\n\n const { lines } = parseCSVdata(data, columnDelimiter)\n\n if (lines?.length < 1) {\n callBack(['errors.uploadInput.file.numLines'])\n return\n }\n\n callBack && callBack(null)\n }\n\n reader.onerror = (error): void => {\n console.error(error)\n }\n}\n\nexport const validateJSONFile\n= (file: File, callBack: (errors?: (ErrorMessage | string)[] | null) => void, columnDelimiter = ';'): void => {\n if (!file) {\n callBack(['errors.uploadInput.file.empty'])\n return\n }\n if (fileNameExt(file.name) !== 'json') {\n callBack(['errors.uploadInput.file.invalid'])\n return\n }\n const reader = new FileReader()\n\n reader.readAsText(file)\n reader.onloadend = (): void => {\n const data = reader.result ? reader.result.toString() : ''\n\n try {\n const parsed = JSON.parse(data)\n\n JSON.stringify(parsed)\n } catch (error) {\n console.error(error)\n callBack(['errors.uploadInput.file.invalid'])\n return\n }\n\n const { lines } = parseCSVdata(data, columnDelimiter)\n\n if (lines?.length < 1) {\n callBack(['errors.uploadInput.file.numLines'])\n return\n }\n\n callBack && callBack(null)\n }\n\n reader.onerror = (error): void => {\n console.error(error)\n }\n}\n"],"names":["parseCSVdata","data","columnDelimiter","arguments","length","undefined","lines","split","firstLine","shift","columns","numColumns","validateLineNumColumns","lineColumns","line","index","message","params","validateLineCellTrimmed","cell","lineIndex","cellIndex","trim","validateCSVlines","errors","linesNum","join","splice","errorLineNumColumns","errorLineCellNotTrimmed","forEach","push","validateCSVFile","file","callBack","fileNameExt","name","includes","type","reader","FileReader","readAsText","onloadend","result","toString","flatErrors","map","errorMsg","JSON","stringify","String","errorsArray","Set","serialized","parse","onerror","error","validateSDFFile","validateJSONFile","parsed"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"objectOperations.js","sources":["../../../../../../../src/core/utils/helpers/objectOperations.ts"],"sourcesContent":["export const duplicatesInArray = (arr: unknown[]): null | Record<string, number> => {\n const setFromArr = new Set(arr)\n\n if (Array.from(setFromArr).length !== arr.length) {\n const foundDuplicates: Record<string, number> = {}\n const itemsMap: Record<string, number> = {}\n\n arr.forEach((item: unknown) => {\n if (itemsMap[String(item)] !== undefined) {\n foundDuplicates[String(item)] = itemsMap[String(item)] + 1\n itemsMap[String(item)] += 1\n } else {\n itemsMap[String(item)] = 1\n }\n })\n return foundDuplicates\n }\n return null\n}\n\ntype Replacer = ((this: any, key: string, value: any) => any) | undefined\ntype Options = {\n graphQL?: boolean\n [key: string]: any\n}\n\nexport const formatJsonString = (\n value: any,\n replacer?: Replacer | undefined,\n space?: string | number | undefined,\n { graphQL, ...options }: Options = {},\n): string => {\n if (!graphQL) {\n return JSON.stringify(value, replacer, space)\n }\n const strValues: string[] = []\n\n Object.entries(value).forEach(([key, value]) => {\n let str = `${key}: `\n\n if (typeof value === 'object' && !Array.isArray(value)) {\n str += `${formatJsonString(value, replacer, space, { graphQL, ...options })}`\n } else {\n str += JSON.stringify(value)\n }\n strValues.push(str)\n })\n return `{${strValues.join(', ')}}`\n}\n\nconst simpleIdentiy = (value: string | number) => `${value}`\n\nexport const formatObj = (\n obj: Record<string, string | number>,\n delimiter = ', ',\n mapValue: ((value: string | number) => string) = simpleIdentiy,\n mapKey: ((value: string | number) => string) = simpleIdentiy,\n): string => (typeof obj === 'object'\n ? Object.entries(obj).map(([key, value]) => `${mapKey(key)}: ${mapValue(value)}`).join(delimiter)\n : '')\n\n\nexport const formatObj2 = (\n obj: Record<string, string | number>,\n delimiter = ', ',\n mapValue: ((value: string | number) => string) = simpleIdentiy,\n mapKey: ((value: string | number) => string) = simpleIdentiy,\n): string => {\n if (typeof obj === 'object' && Array.isArray(obj)) {\n return obj\n .map((objValue) => formatObj2(objValue, delimiter, mapValue, mapKey))\n .join(delimiter)\n }\n\n if (typeof obj === 'object') {\n return Object.entries(obj)\n .map(([key, value]) => {\n const mappedKey = mapKey(key)\n const mappedValue = mapValue(typeof value === 'object' ? formatObj2(value) : value)\n\n return `${mappedKey ? `${mappedKey}: ` : ''}${mappedValue}`\n })\n .join(delimiter)\n }\n return ''\n}\n\n\n\n\n\nexport const chunkArray = (dataArray: any[], chunkSize = 100): (any[])[] => {\n const result = []\n\n const len = dataArray.length\n\n for (let i = 0; i < len; i += chunkSize) {\n const chunk = dataArray.slice(i, i + chunkSize)\n\n result.push(chunk)\n }\n return result\n}\n\nexport type TreeNodeStr = (string | TreeNodeStr)[]\n\ntype TreeNode = {\n name: string\n children?: Record<string, TreeNode>\n}\n\n// ['app', ['user', 'dashboard', ['ui', ['header', 'footer', 'menu'], 'realTime']]]\n\nexport const arrayToObjectTree = (itemsInTree: TreeNodeStr[]) => {\n let previousParent: TreeNode\n\n const innerMake = (items: TreeNodeStr[]): Record<string, TreeNode> => {\n const treeObject: Record<string, TreeNode> = items.reduce((tree: Record<string, TreeNode>, item, index, array) => {\n let resolvedTree: Record<string, TreeNode> = { ...tree }\n\n if (typeof item === 'string') {\n resolvedTree[item] = { name: item }\n if (!previousParent) {\n previousParent = resolvedTree[item]\n }\n\n if (index === 0 && Array.isArray(array[1])) {\n previousParent = resolvedTree[item]\n }\n }\n if (Array.isArray(item)) {\n let parent = previousParent\n\n if (index > 1) {\n resolvedTree[item[0] as string] = resolvedTree[item[0] as string] || { name: item[0] }\n parent = resolvedTree[item[0] as string]\n\n resolvedTree = { ...resolvedTree, ...innerMake(item as TreeNodeStr[]) }\n } else {\n parent.children = innerMake(item as TreeNodeStr[])\n }\n }\n return resolvedTree\n }, {})\n\n return treeObject\n }\n\n return innerMake(itemsInTree)\n}\n"],"names":["duplicatesInArray","arr","setFromArr","Set","Array","from","length","foundDuplicates","itemsMap","forEach","item","undefined","String","formatJsonString","value","replacer","space","graphQL","options","arguments","JSON","stringify","strValues","Object","entries","_ref","key","str","concat","isArray","push","join","simpleIdentiy","formatObj","obj","delimiter","mapValue","mapKey","map","_ref2","formatObj2","objValue","_ref3","mappedKey","mappedValue","chunkArray","dataArray","chunkSize","result","len","i","chunk","slice","arrayToObjectTree","itemsInTree","previousParent","innerMake","items","reduce","tree","index","array","resolvedTree","name","parent","children"],"mappings":"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"}
1
+ {"version":3,"file":"objectOperations.js","sources":["../../../../../../../src/core/utils/helpers/objectOperations.ts"],"sourcesContent":["export const duplicatesInArray = (arr: unknown[]): null | Record<string, number> => {\n const setFromArr = new Set(arr)\n\n if (Array.from(setFromArr).length !== arr.length) {\n const foundDuplicates: Record<string, number> = {}\n const itemsMap: Record<string, number> = {}\n\n arr.forEach((item: unknown) => {\n if (itemsMap[String(item)] !== undefined) {\n foundDuplicates[String(item)] = itemsMap[String(item)] + 1\n itemsMap[String(item)] += 1\n } else {\n itemsMap[String(item)] = 1\n }\n })\n return foundDuplicates\n }\n return null\n}\n\ntype Replacer = ((this: any, key: string, value: any) => any) | undefined\ntype Options = {\n graphQL?: boolean\n [key: string]: any\n}\n\nexport const formatJsonString = (\n value: any,\n replacer?: Replacer | undefined,\n space?: string | number | undefined,\n { graphQL, ...options }: Options = {},\n): string => {\n if (!graphQL) {\n return JSON.stringify(value, replacer, space)\n }\n const strValues: string[] = []\n\n Object.entries(value).forEach(([key, value]) => {\n let str = `${key}: `\n\n if (typeof value === 'object' && !Array.isArray(value)) {\n str += `${formatJsonString(value, replacer, space, { graphQL, ...options })}`\n } else {\n str += JSON.stringify(value)\n }\n strValues.push(str)\n })\n return `{${strValues.join(', ')}}`\n}\n\nconst simpleIdentiy = (value: string | number): string => `${value}`\n\nexport const formatObj = (\n obj: Record<string, string | number>,\n delimiter = ', ',\n mapValue: ((value: string | number) => string) = simpleIdentiy,\n mapKey: ((value: string | number) => string) = simpleIdentiy,\n): string => (typeof obj === 'object'\n ? Object.entries(obj).map(([key, value]) => `${mapKey(key)}: ${mapValue(value)}`).join(delimiter)\n : '')\n\n\nexport const formatObj2 = (\n obj: Record<string, string | number>,\n delimiter = ', ',\n mapValue: ((value: string | number) => string) = simpleIdentiy,\n mapKey: ((value: string | number) => string) = simpleIdentiy,\n): string => {\n if (typeof obj === 'object' && Array.isArray(obj)) {\n return obj\n .map((objValue) => formatObj2(objValue, delimiter, mapValue, mapKey))\n .join(delimiter)\n }\n\n if (typeof obj === 'object') {\n return Object.entries(obj)\n .map(([key, value]) => {\n const mappedKey = mapKey(key)\n const mappedValue = mapValue(typeof value === 'object' ? formatObj2(value) : value)\n\n return `${mappedKey ? `${mappedKey}: ` : ''}${mappedValue}`\n })\n .join(delimiter)\n }\n return ''\n}\n\n\n\n\n\nexport const chunkArray = (dataArray: any[], chunkSize = 100): (any[])[] => {\n const result = []\n\n const len = dataArray.length\n\n for (let i = 0; i < len; i += chunkSize) {\n const chunk = dataArray.slice(i, i + chunkSize)\n\n result.push(chunk)\n }\n return result\n}\n\nexport type TreeNodeStr = (string | TreeNodeStr)[]\n\ntype TreeNode = {\n name: string\n children?: Record<string, TreeNode>\n}\n\n// ['app', ['user', 'dashboard', ['ui', ['header', 'footer', 'menu'], 'realTime']]]\n\nexport const arrayToObjectTree = (itemsInTree: TreeNodeStr[]): Record<string, TreeNode> => {\n let previousParent: TreeNode\n\n const innerMake = (items: TreeNodeStr[]): Record<string, TreeNode> => {\n const treeObject: Record<string, TreeNode> = items.reduce((tree: Record<string, TreeNode>, item, index, array) => {\n let resolvedTree: Record<string, TreeNode> = { ...tree }\n\n if (typeof item === 'string') {\n resolvedTree[item] = { name: item }\n if (!previousParent) {\n previousParent = resolvedTree[item]\n }\n\n if (index === 0 && Array.isArray(array[1])) {\n previousParent = resolvedTree[item]\n }\n }\n if (Array.isArray(item)) {\n let parent = previousParent\n\n if (index > 1) {\n resolvedTree[item[0] as string] = resolvedTree[item[0] as string] || { name: item[0] }\n parent = resolvedTree[item[0] as string]\n\n resolvedTree = { ...resolvedTree, ...innerMake(item as TreeNodeStr[]) }\n } else {\n parent.children = innerMake(item as TreeNodeStr[])\n }\n }\n return resolvedTree\n }, {})\n\n return treeObject\n }\n\n return innerMake(itemsInTree)\n}\n"],"names":["duplicatesInArray","arr","setFromArr","Set","Array","from","length","foundDuplicates","itemsMap","forEach","item","undefined","String","formatJsonString","value","replacer","space","graphQL","options","arguments","JSON","stringify","strValues","Object","entries","_ref","key","str","concat","isArray","push","join","simpleIdentiy","formatObj","obj","delimiter","mapValue","mapKey","map","_ref2","formatObj2","objValue","_ref3","mappedKey","mappedValue","chunkArray","dataArray","chunkSize","result","len","i","chunk","slice","arrayToObjectTree","itemsInTree","previousParent","innerMake","items","reduce","tree","index","array","resolvedTree","name","parent","children"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"other.js","sources":["../../../../../../../src/core/utils/helpers/other.ts"],"sourcesContent":["import { memoizeWith, identity } from 'ramda'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const nestedTernary = (condition: boolean, branchA: any, branchB: any): any => (condition ? branchA : branchB)\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const memoize = memoizeWith(identity)\n\n// Beware fellow developer, this is to be used with caution and precison\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const memoizeComplex = memoizeWith((...args) => JSON.stringify(args))\n\nexport const memoizer\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n= (memoizeFunc = (...args) => JSON.stringify(args)) => memoizeWith(memoizeFunc)\n\nexport const debounce = (func: () => void, wait = 100, immediate = false): () => void => {\n let timeout: any\n\n return function debounced(...args) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context: unknown = this\n const later = () => {\n clearTimeout(timeout)\n timeout = null\n if (!immediate) {\n func.apply(context, args)\n }\n }\n const callNow = immediate && !timeout\n\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n if (callNow) {\n func.apply(context, args)\n }\n }\n}\n\nexport const delay = (delay: number): Promise<string> => new Promise((resolve) => {\n setTimeout(() => resolve(`delayed: ${delay}`), delay)\n})\n"],"names":["nestedTernary","condition","branchA","branchB","memoize","memoizeWith","identity","memoizeComplex","_len","arguments","length","args","Array","_key","JSON","stringify","memoizer","memoizeFunc","undefined","_len2","_key2","debounce","func","timeout","wait","immediate","_len3","_key3","context","this","callNow","clearTimeout","setTimeout","later","apply","delay","Promise","resolve","concat"],"mappings":"kDAGaA,MAAAA,EAAgBA,CAACC,EAAoBC,EAAcC,IAAuBF,EAAYC,EAAUC,EAIhGC,EAAUC,EAAYC,GAKtBC,EAAiBF,GAAY,WAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAIC,EAAIC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GAAA,OAAKC,KAAKC,UAAUJ,EAAK,IAE9DK,EAGX,WAAA,IAACC,EAAWR,UAAAC,OAAAD,QAAAS,IAAAT,UAAAS,GAAAT,UAAG,GAAA,WAAA,IAAA,IAAAU,EAAAV,UAAAC,OAAIC,EAAIC,IAAAA,MAAAO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJT,EAAIS,GAAAX,UAAAW,GAAA,OAAKN,KAAKC,UAAUJ,EAAK,EAAA,OAAKN,EAAYY,EAAY,EAElEI,EAAW,SAACC,GAAgE,IACnFC,EADqCC,EAAIf,UAAAC,OAAA,QAAAQ,IAAAT,UAAA,GAAAA,UAAA,GAAG,IAAKgB,EAAShB,UAAAC,OAAA,QAAAQ,IAAAT,UAAA,IAAAA,UAAA,GAG9D,OAAO,WAA4B,IAAA,IAAAiB,EAAAjB,UAAAC,OAANC,EAAIC,IAAAA,MAAAc,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJhB,EAAIgB,GAAAlB,UAAAkB,GAI/B,MAAMC,EAAmBC,KAQnBC,EAAUL,IAAcF,EAE9BQ,aAAaR,GACbA,EAAUS,YAVIC,KACZF,aAAaR,GACbA,EAAU,KACLE,GACHH,EAAKY,MAAMN,EAASjB,EACtB,GAK0Ba,GACxBM,GACFR,EAAKY,MAAMN,EAASjB,GAG1B,EAEawB,EAASA,GAAmC,IAAIC,SAASC,IACpEL,YAAW,IAAMK,EAAOC,YAAAA,OAAaH,KAAUA,EAAM"}
1
+ {"version":3,"file":"other.js","sources":["../../../../../../../src/core/utils/helpers/other.ts"],"sourcesContent":["import { memoizeWith, identity } from 'ramda'\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const nestedTernary = (condition: boolean, branchA: any, branchB: any): any => (condition ? branchA : branchB)\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const memoize = memoizeWith(identity)\n\n// Beware fellow developer, this is to be used with caution and precison\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nexport const memoizeComplex = memoizeWith((...args) => JSON.stringify(args))\n\nexport const memoizer\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n= (memoizeFunc = (...args): string => JSON.stringify(args)): ReturnType<typeof memoizeWith> => memoizeWith(memoizeFunc)\n\nexport const debounce = (func: () => void, wait = 100, immediate = false): () => void => {\n let timeout: any\n\n return function debounced(...args) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context: unknown = this\n const later = (): void => {\n clearTimeout(timeout)\n timeout = null\n if (!immediate) {\n func.apply(context, args)\n }\n }\n const callNow = immediate && !timeout\n\n clearTimeout(timeout)\n timeout = setTimeout(later, wait)\n if (callNow) {\n func.apply(context, args)\n }\n }\n}\n\nexport const delay = (delay: number): Promise<string> => new Promise((resolve) => {\n setTimeout(() => resolve(`delayed: ${delay}`), delay)\n})\n"],"names":["nestedTernary","condition","branchA","branchB","memoize","memoizeWith","identity","memoizeComplex","_len","arguments","length","args","Array","_key","JSON","stringify","memoizer","memoizeFunc","undefined","_len2","_key2","debounce","func","timeout","wait","immediate","_len3","_key3","context","this","callNow","clearTimeout","setTimeout","later","apply","delay","Promise","resolve","concat"],"mappings":"kDAGaA,MAAAA,EAAgBA,CAACC,EAAoBC,EAAcC,IAAuBF,EAAYC,EAAUC,EAIhGC,EAAUC,EAAYC,GAKtBC,EAAiBF,GAAY,WAAA,IAAA,IAAAG,EAAAC,UAAAC,OAAIC,EAAIC,IAAAA,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GAAA,OAAKC,KAAKC,UAAUJ,EAAK,IAE9DK,EAGX,WAAA,IAACC,EAAWR,UAAAC,OAAAD,QAAAS,IAAAT,UAAAS,GAAAT,UAAG,GAAA,WAAA,IAAA,IAAAU,EAAAV,UAAAC,OAAIC,EAAIC,IAAAA,MAAAO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJT,EAAIS,GAAAX,UAAAW,GAAA,OAAaN,KAAKC,UAAUJ,EAAK,EAAA,OAAqCN,EAAYY,EAAY,EAE1GI,EAAW,SAACC,GAAgE,IACnFC,EADqCC,EAAIf,UAAAC,OAAA,QAAAQ,IAAAT,UAAA,GAAAA,UAAA,GAAG,IAAKgB,EAAShB,UAAAC,OAAA,QAAAQ,IAAAT,UAAA,IAAAA,UAAA,GAG9D,OAAO,WAA4B,IAAA,IAAAiB,EAAAjB,UAAAC,OAANC,EAAIC,IAAAA,MAAAc,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJhB,EAAIgB,GAAAlB,UAAAkB,GAI/B,MAAMC,EAAmBC,KAQnBC,EAAUL,IAAcF,EAE9BQ,aAAaR,GACbA,EAAUS,YAVIC,KACZF,aAAaR,GACbA,EAAU,KACLE,GACHH,EAAKY,MAAMN,EAASjB,EACtB,GAK0Ba,GACxBM,GACFR,EAAKY,MAAMN,EAASjB,GAG1B,EAEawB,EAASA,GAAmC,IAAIC,SAASC,IACpEL,YAAW,IAAMK,EAAOC,YAAAA,OAAaH,KAAUA,EAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sources":["../../../../../../../src/core/utils/helpers/ui.ts"],"sourcesContent":["export const noop = () => undefined\n\n\nexport const mapSerReplacer = (key: string, value: unknown) => {\n if (value instanceof Map) {\n return {\n dataType: 'Map',\n value: Array.from(value.entries()), // or with spread: value: [...value]\n }\n }\n return value\n}\n\nexport type TClassName = string | boolean | null | undefined\nexport const classNames = (...classes: TClassName[]) => classes\n .filter((className: TClassName) => (typeof className === 'string' && className !== undefined && className !== null))\n .filter(Boolean).join(' ')\n\n\nexport type PropsCategoriesType = {\n dataProps: Record<string, unknown>\n restProps: Record<string, unknown>\n};\n\nexport const parseProps = (props: Record<string, unknown>):PropsCategoriesType => {\n const dataProps: Record<string, unknown> = {}\n const restProps: Record<string, unknown> = {}\n\n Object.entries(props).forEach(([key, value]) => {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 4) === 'data') {\n dataProps[key] = value\n } else {\n restProps[key] = value\n }\n })\n return { dataProps, restProps }\n}\n"],"names":["noop","mapSerReplacer","key","value","Map","dataType","Array","from","entries","classNames","_len","arguments","length","classes","_key","filter","className","Boolean","join","parseProps","props","dataProps","restProps","Object","forEach","_ref","substr"],"mappings":"iFAAaA,MAAAA,EAAOA,KAAe,EAGtBC,EAAiBA,CAACC,EAAaC,IACtCA,aAAiBC,IACZ,CACLC,SAAU,MACVF,MAAOG,MAAMC,KAAKJ,EAAMK,YAGrBL,EAIIM,EAAa,WAAA,IAAA,IAAAC,EAAAC,UAAAC,OAAIC,EAAOP,IAAAA,MAAAI,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAPD,EAAOC,GAAAH,UAAAG,GAAA,OAAmBD,EACrDE,QAAQC,GAAgD,iBAAdA,GAAP,MAAiCA,IACpED,OAAOE,SAASC,KAAK,IAAI,EAQfC,EAAcC,IACzB,MAAMC,EAAqC,CAAA,EACrCC,EAAqC,CAAA,EAS3C,OAPAC,OAAOf,QAAQY,GAAOI,SAAQC,IAAkB,IAAhBvB,EAAKC,GAAMsB,EAChB,UAArBvB,EAAIwB,OAAO,EAAG,IAAuC,SAArBxB,EAAIwB,OAAO,EAAG,GAChDL,EAAUnB,GAAOC,EAEjBmB,EAAUpB,GAAOC,CACnB,IAEK,CAAEkB,YAAWC,YAAW"}
1
+ {"version":3,"file":"ui.js","sources":["../../../../../../../src/core/utils/helpers/ui.ts"],"sourcesContent":["export const noop = (): void => undefined\n\n\nexport const mapSerReplacer\n= (key: string, value: unknown): unknown | { dataType: string; value: Array<unknown>} => {\n if (value instanceof Map) {\n return {\n dataType: 'Map',\n value: Array.from(value.entries()), // or with spread: value: [...value]\n }\n }\n return value\n}\n\nexport type TClassName = string | boolean | null | undefined\nexport const classNames = (...classes: TClassName[]): string => classes\n .filter((className: TClassName) => (typeof className === 'string' && className !== undefined && className !== null))\n .filter(Boolean).join(' ')\n\n\nexport type PropsCategoriesType = {\n dataProps: Record<string, unknown>\n restProps: Record<string, unknown>\n};\n\nexport const parseProps = (props: Record<string, unknown>):PropsCategoriesType => {\n const dataProps: Record<string, unknown> = {}\n const restProps: Record<string, unknown> = {}\n\n Object.entries(props).forEach(([key, value]) => {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 4) === 'data') {\n dataProps[key] = value\n } else {\n restProps[key] = value\n }\n })\n return { dataProps, restProps }\n}\n"],"names":["noop","mapSerReplacer","key","value","Map","dataType","Array","from","entries","classNames","_len","arguments","length","classes","_key","filter","className","Boolean","join","parseProps","props","dataProps","restProps","Object","forEach","_ref","substr"],"mappings":"iFAAaA,MAAAA,EAAOA,KAAqB,EAG5BC,EACXA,CAACC,EAAaC,IACVA,aAAiBC,IACZ,CACLC,SAAU,MACVF,MAAOG,MAAMC,KAAKJ,EAAMK,YAGrBL,EAIIM,EAAa,WAAA,IAAA,IAAAC,EAAAC,UAAAC,OAAIC,EAAOP,IAAAA,MAAAI,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAAPD,EAAOC,GAAAH,UAAAG,GAAA,OAA2BD,EAC7DE,QAAQC,GAAgD,iBAAdA,GAAP,MAAiCA,IACpED,OAAOE,SAASC,KAAK,IAAI,EAQfC,EAAcC,IACzB,MAAMC,EAAqC,CAAA,EACrCC,EAAqC,CAAA,EAS3C,OAPAC,OAAOf,QAAQY,GAAOI,SAAQC,IAAkB,IAAhBvB,EAAKC,GAAMsB,EAChB,UAArBvB,EAAIwB,OAAO,EAAG,IAAuC,SAArBxB,EAAIwB,OAAO,EAAG,GAChDL,EAAUnB,GAAOC,EAEjBmB,EAAUpB,GAAOC,CACnB,IAEK,CAAEkB,YAAWC,YAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"webComponent.utils.js","sources":["../../../../../../../src/core/utils/webComponents/webComponent.utils.ts"],"sourcesContent":["/* custom elements define */\nexport const ced = (name: string) => (\n componentClass: typeof HTMLElement,\n) => {\n customElements.get(name) || customElements.define(name, componentClass)\n}\n\nexport const customElementDefine = ced\n\n\n\nexport const createResolveAttribute = (\n component: Element & Record<string, any>,\n) => (\n attributeName: string,\n // eslint-disable-next-line default-param-last\n overrideProperty = true,\n valueMap?: (value: unknown) => unknown,\n): boolean => {\n const attrValue = component.getAttribute(attributeName)\n const attrValueDefined = attrValue !== undefined\n\n if (overrideProperty && attrValueDefined && component[attributeName] === undefined) {\n // eslint-disable-next-line no-param-reassign\n component[attributeName] = valueMap ? valueMap(attrValue) : attrValue\n }\n\n return attrValueDefined\n}\n\nexport const resolveAttributes = (\n component: Element & Record<string, any>,\n attributes: ({ name: string; override: boolean; valueMap?: (value: unknown) => unknown } | string)[],\n) => {\n const resolver = createResolveAttribute(component)\n\n attributes.forEach((attribute) => {\n if (typeof attribute === 'string') {\n resolver(attribute)\n } else {\n const { name, override, valueMap } = attribute\n\n resolver(name, override, valueMap)\n }\n })\n}\n"],"names":["ced","name","componentClass","customElements","get","define","customElementDefine","createResolveAttribute","component","attributeName","overrideProperty","arguments","length","undefined","valueMap","attrValue","getAttribute","attrValueDefined","resolveAttributes","attributes","resolver","forEach","attribute","override"],"mappings":"MACaA,EAAOC,GAClBC,IAEAC,eAAeC,IAAIH,IAASE,eAAeE,OAAOJ,EAAMC,EAAe,EAG5DI,EAAsBN,EAItBO,EACXC,GACG,SACHC,GAIY,IAFZC,IAAgBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAChBG,EAAsCH,UAAAC,OAAAD,EAAAA,kBAAAE,EAEtC,MAAME,EAAYP,EAAUQ,aAAaP,GACnCQ,OAAiCJ,IAAdE,EAOzB,OALIL,GAAoBO,QAAiDJ,IAA7BL,EAAUC,KAEpDD,EAAUC,GAAiBK,EAAWA,EAASC,GAAaA,GAGvDE,CACT,EAEaC,EAAoBA,CAC/BV,EACAW,KAEA,MAAMC,EAAWb,EAAuBC,GAExCW,EAAWE,SAASC,IAClB,GAAyB,iBAAdA,EACTF,EAASE,OACJ,CACL,MAAMrB,KAAEA,EAAIsB,SAAEA,EAAQT,SAAEA,GAAaQ,EAErCF,EAASnB,EAAMsB,EAAUT,EAC3B,IACA"}
1
+ {"version":3,"file":"webComponent.utils.js","sources":["../../../../../../../src/core/utils/webComponents/webComponent.utils.ts"],"sourcesContent":["/* custom elements define */\nexport const ced = (name: string): (componentClass: typeof HTMLElement) => void => (\n componentClass: typeof HTMLElement,\n) => {\n customElements.get(name) || customElements.define(name, componentClass)\n}\n\nexport const customElementDefine = ced\n\n\n\nexport const createResolveAttribute = (\n component: Element & Record<string, any>,\n) => (\n attributeName: string,\n // eslint-disable-next-line default-param-last\n overrideProperty = true,\n valueMap?: (value: unknown) => unknown,\n): boolean => {\n const attrValue = component.getAttribute(attributeName)\n const attrValueDefined = attrValue !== undefined\n\n if (overrideProperty && attrValueDefined && component[attributeName] === undefined) {\n // eslint-disable-next-line no-param-reassign\n component[attributeName] = valueMap ? valueMap(attrValue) : attrValue\n }\n\n return attrValueDefined\n}\n\nexport const resolveAttributes = (\n component: Element & Record<string, any>,\n attributes: ({ name: string; override: boolean; valueMap?: (value: unknown) => unknown } | string)[],\n): void => {\n const resolver = createResolveAttribute(component)\n\n attributes.forEach((attribute) => {\n if (typeof attribute === 'string') {\n resolver(attribute)\n } else {\n const { name, override, valueMap } = attribute\n\n resolver(name, override, valueMap)\n }\n })\n}\n"],"names":["ced","name","componentClass","customElements","get","define","customElementDefine","createResolveAttribute","component","attributeName","overrideProperty","arguments","length","undefined","valueMap","attrValue","getAttribute","attrValueDefined","resolveAttributes","attributes","resolver","forEach","attribute","override"],"mappings":"MACaA,EAAOC,GAClBC,IAEAC,eAAeC,IAAIH,IAASE,eAAeE,OAAOJ,EAAMC,EAAe,EAG5DI,EAAsBN,EAItBO,EACXC,GACG,SACHC,GAIY,IAFZC,IAAgBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAChBG,EAAsCH,UAAAC,OAAAD,EAAAA,kBAAAE,EAEtC,MAAME,EAAYP,EAAUQ,aAAaP,GACnCQ,OAAiCJ,IAAdE,EAOzB,OALIL,GAAoBO,QAAiDJ,IAA7BL,EAAUC,KAEpDD,EAAUC,GAAiBK,EAAWA,EAASC,GAAaA,GAGvDE,CACT,EAEaC,EAAoBA,CAC/BV,EACAW,KAEA,MAAMC,EAAWb,EAAuBC,GAExCW,EAAWE,SAASC,IAClB,GAAyB,iBAAdA,EACTF,EAASE,OACJ,CACL,MAAMrB,KAAEA,EAAIsB,SAAEA,EAAQT,SAAEA,GAAaQ,EAErCF,EAASnB,EAAMsB,EAAUT,EAC3B,IACA"}