yuyeon 0.3.6-beta.0 → 0.3.6-beta.10

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 (73) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +3945 -4297
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/components/date-picker/index.js +2 -1
  5. package/lib/components/date-picker/index.js.map +1 -1
  6. package/lib/components/dialog/YDialog.js +11 -2
  7. package/lib/components/dialog/YDialog.js.map +1 -1
  8. package/lib/components/layer/YLayer.js +7 -2
  9. package/lib/components/layer/YLayer.js.map +1 -1
  10. package/lib/components/pagination/YPagination.js +10 -10
  11. package/lib/components/pagination/YPagination.js.map +1 -1
  12. package/lib/components/snackbar/YSnackbar.js +25 -17
  13. package/lib/components/snackbar/YSnackbar.js.map +1 -1
  14. package/lib/components/table/YDataTableHead.js +4 -4
  15. package/lib/components/table/YDataTableHead.js.map +1 -1
  16. package/lib/components/table/YDataTableRow.js +0 -1
  17. package/lib/components/table/YDataTableRow.js.map +1 -1
  18. package/lib/components/table/composables/items.js.map +1 -1
  19. package/lib/components/table/composables/selection.js.map +1 -1
  20. package/lib/components/time-select/TimeSelect.vue +344 -0
  21. package/lib/components/tree-view/YTreeView.js +8 -8
  22. package/lib/components/tree-view/YTreeView.js.map +1 -1
  23. package/lib/components/tree-view/YTreeView.scss +5 -0
  24. package/lib/components/tree-view/YTreeViewNode.js +34 -4
  25. package/lib/components/tree-view/YTreeViewNode.js.map +1 -1
  26. package/lib/components/tree-view/tree-view.js +2 -2
  27. package/lib/components/tree-view/tree-view.js.map +1 -1
  28. package/lib/util/animation/index.js +19 -0
  29. package/lib/util/animation/index.js.map +1 -0
  30. package/lib/util/date/adapters/yuyeon-date-adapter.js +5 -2
  31. package/lib/util/date/adapters/yuyeon-date-adapter.js.map +1 -1
  32. package/lib/util/date/built-in.js +58 -4
  33. package/lib/util/date/built-in.js.map +1 -1
  34. package/lib/util/date/index.js +3 -0
  35. package/lib/util/date/index.js.map +1 -1
  36. package/lib/util/date/types.js.map +1 -1
  37. package/package.json +2 -5
  38. package/types/components/badge/YBadge.d.ts +2 -2
  39. package/types/components/checkbox/YCheckbox.d.ts +1 -1
  40. package/types/components/checkbox/YInputCheckbox.d.ts +1 -1
  41. package/types/components/date-picker/YDateCalendar.d.ts +4 -4
  42. package/types/components/date-picker/YDatePicker.d.ts +12 -12
  43. package/types/components/date-picker/YDatePickerControl.d.ts +2 -2
  44. package/types/components/date-picker/YMonthPicker.d.ts +2 -2
  45. package/types/components/date-picker/YYearPicker.d.ts +2 -2
  46. package/types/components/date-picker/index.d.ts +2 -1
  47. package/types/components/dialog/YDialog.d.ts +63 -61
  48. package/types/components/dropdown/YDropdown.d.ts +41 -41
  49. package/types/components/field-input/YFieldInput.d.ts +3 -3
  50. package/types/components/icon/YIcon.d.ts +3 -3
  51. package/types/components/input/YInput.d.ts +3 -3
  52. package/types/components/ip-field/YIpv4Field.d.ts +1 -1
  53. package/types/components/layer/YLayer.d.ts +4 -3
  54. package/types/components/menu/YMenu.d.ts +6 -4
  55. package/types/components/pagination/YPagination.d.ts +19 -13
  56. package/types/components/select/YSelect.d.ts +87 -87
  57. package/types/components/snackbar/YSnackbar.d.ts +3 -3
  58. package/types/components/switch/YSwitch.d.ts +1 -1
  59. package/types/components/table/YDataTable.d.ts +4 -4
  60. package/types/components/table/YDataTableBody.d.ts +2 -2
  61. package/types/components/table/YDataTableServer.d.ts +4 -4
  62. package/types/components/table/composables/selection.d.ts +2 -2
  63. package/types/components/textarea/YTextarea.d.ts +24 -24
  64. package/types/components/tooltip/YTooltip.d.ts +3 -3
  65. package/types/components/tree-view/YTreeView.d.ts +16 -4
  66. package/types/components/tree-view/YTreeViewNode.d.ts +18 -0
  67. package/types/composables/coordinate/index.d.ts +2 -2
  68. package/types/shims.d.ts +2 -1
  69. package/types/util/animation/index.d.ts +1 -0
  70. package/types/util/date/adapters/yuyeon-date-adapter.d.ts +5 -1
  71. package/types/util/date/built-in.d.ts +19 -1
  72. package/types/util/date/index.d.ts +1 -0
  73. package/types/util/date/types.d.ts +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeViewNode.js","names":["computed","mergeProps","onBeforeMount","ref","resolveComponent","watch","createVNode","_createVNode","_mergeProps","pressItemsPropsOptions","useTreeView","useRender","getObjectValueByPath","defineComponent","propsFactory","YButton","YIconCheckbox","YIconExpand","YPlate","YTextHighlighter","YExpandVTransition","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeStrategy","type","default","activeClass","Array","activeSingleModifier","requiredActive","activeColor","enableSelect","selectStrategy","onMouseenterContainer","Function","onMouseleaveContainer","onMousemoveContainer","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","slots","setup","_ref","expose","YTreeNode","treeView","container$","expanded","active","selected","indeterminate","myKey","children","itemChildren","slice","imLeaf","value","length","searchLoading","leaves","filter","leaf","isExcluded","childrenSelection","selectedState","map","child","childrenAllChecked","all","childrenSomeChecked","some","isChecked","classes","styles","contentText","itemText","slotProps","toggleActive","e","to","updateActive","emitActive","onClick","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","indentSpacer","i","push","leading","text","trailing","_len","arguments","args","_key","_len2","_key2","_len3","_key3","_len4","_key4","nodeState","register"],"sources":["../../../src/components/tree-view/YTreeViewNode.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/noStaticElementInteractions: <explanation> */\r\n/** biome-ignore-all lint/a11y/useFocusableInteractive: <explanation> */\r\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\r\nimport {\r\n computed,\r\n mergeProps,\r\n onBeforeMount,\r\n type PropType,\r\n ref,\r\n resolveComponent,\r\n type SlotsType,\r\n type VNodeArrayChildren,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { pressItemsPropsOptions } from '@/abstract/items';\r\nimport { useTreeView } from '@/components/tree-view/tree-view';\r\nimport { useRender } from '@/composables/component';\r\nimport { getObjectValueByPath } from '@/util/common';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YButton } from '../button';\r\nimport { YIconCheckbox, YIconExpand } from '../icons';\r\nimport { YPlate } from '../plate';\r\nimport { YTextHighlighter } from '../text-highlighter/YTextHighlighter';\r\nimport { YExpandVTransition } from '../transitions';\r\n\r\nexport const pressYTreeViewNodeProps = propsFactory(\r\n {\r\n search: String,\r\n disableTransition: Boolean,\r\n enableActive: Boolean,\r\n activeStrategy: {\r\n /**\r\n * cascade: only action descendent leaves\r\n * relative: cascade after check parent (ancestor)\r\n */\r\n type: String as PropType<'independent' | 'cascade' | 'relative'>,\r\n default: 'independent',\r\n },\r\n activeClass: [String, Array],\r\n activeSingleModifier: String,\r\n requiredActive: Boolean,\r\n activeColor: {\r\n type: String,\r\n default: 'primary',\r\n },\r\n enableSelect: Boolean,\r\n selectStrategy: {\r\n /**\r\n * cascade: only action descendent leaves\r\n * relative: cascade after check parent (ancestor)\r\n * leaves: relative after return values only leaf\r\n */\r\n type: String as PropType<'independent' | 'cascade' | 'relative' | 'leaf'>,\r\n default: 'relative',\r\n },\r\n onMouseenterContainer: Function,\r\n onMouseleaveContainer: Function,\r\n onMousemoveContainer: Function,\r\n ...pressItemsPropsOptions({\r\n itemKey: 'id',\r\n }),\r\n },\r\n 'YTreeViewNode',\r\n);\r\n\r\n/**\r\n * TODO: correct selected values what selectStrategy leaf or others\r\n */\r\nexport const YTreeViewNode = defineComponent({\r\n name: 'YTreeNode',\r\n components: {\r\n YButton,\r\n YIconExpand,\r\n YPlate,\r\n YIconCheckbox,\r\n },\r\n props: {\r\n item: {\r\n type: Object as PropType<any>,\r\n },\r\n level: {\r\n type: Number as PropType<number>,\r\n default: 0,\r\n },\r\n ...pressYTreeViewNodeProps(),\r\n },\r\n slots: Object as SlotsType<{\r\n default: any;\r\n 'expand-icon': any;\r\n leading: any;\r\n trailing: any;\r\n }>,\r\n setup(props, { slots, expose }) {\r\n const YTreeNode = resolveComponent('YTreeViewNode', true) as any;\r\n const treeView = useTreeView();\r\n const container$ = ref<HTMLElement>();\r\n\r\n const expanded = ref(false);\r\n const active = ref(false);\r\n const selected = ref(false);\r\n const indeterminate = ref(false);\r\n\r\n const myKey = computed(() =>\r\n getObjectValueByPath(props.item, props.itemKey),\r\n );\r\n\r\n const children = computed(() => {\r\n return (\r\n getObjectValueByPath(props.item, props.itemChildren as string) ?? []\r\n ).slice();\r\n });\r\n\r\n const imLeaf = computed(() => children.value.length < 1);\r\n\r\n const searchLoading = computed(() => {\r\n return treeView.searchLoading.value;\r\n });\r\n\r\n const leaves = computed(() => {\r\n return children.value.filter((leaf: any) => {\r\n return !treeView.isExcluded(getObjectValueByPath(leaf, props.itemKey));\r\n });\r\n });\r\n\r\n const childrenSelection = computed(() =>\r\n treeView.selectedState.value(\r\n myKey.value,\r\n children.value.map((child: any) =>\r\n getObjectValueByPath(child, props.itemKey),\r\n ),\r\n ),\r\n );\r\n\r\n const childrenAllChecked = computed(() => {\r\n return !!children.value?.length && childrenSelection.value.all;\r\n });\r\n\r\n const childrenSomeChecked = computed(() => {\r\n return (\r\n (props.selectStrategy === 'relative' ||\r\n props.selectStrategy === 'leaf') &&\r\n (children.value?.length ?? 0) > 0 &&\r\n !childrenAllChecked.value &&\r\n childrenSelection.value.some\r\n );\r\n });\r\n\r\n const isChecked = computed(() => {\r\n return (\r\n selected.value ||\r\n (props.selectStrategy === 'leaf' && childrenAllChecked.value)\r\n );\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view-node': true,\r\n 'y-tree-view-node--leaf': imLeaf.value,\r\n 'y-tree-view-node--expanded': expanded.value,\r\n 'y-tree-view-node--active': active.value,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n return {\r\n '--tree-view-node--level': props.level,\r\n };\r\n });\r\n\r\n const contentText = computed(() => {\r\n return getObjectValueByPath(props.item, props.itemText) ?? '';\r\n });\r\n\r\n const slotProps = computed(() => {\r\n return {\r\n level: props.level,\r\n imLeaf: imLeaf.value,\r\n toggleActive,\r\n };\r\n });\r\n\r\n watch(childrenSomeChecked, (value) => {\r\n indeterminate.value = value;\r\n });\r\n\r\n function toggleActive(e?: MouseEvent) {\r\n const to = !active.value;\r\n active.value = to;\r\n treeView.updateActive(myKey.value, to, e);\r\n treeView.emitActive();\r\n }\r\n\r\n function onClick(e: MouseEvent) {\r\n toggleActive(e);\r\n }\r\n\r\n function onClickExpand(e: MouseEvent) {\r\n e.stopPropagation();\r\n const to = !expanded.value;\r\n expanded.value = to;\r\n treeView.updateExpanded(myKey.value, to);\r\n treeView.emitExpanded();\r\n }\r\n\r\n function onClickSelect(e: MouseEvent) {\r\n e.stopPropagation();\r\n const to = !isChecked.value;\r\n selected.value = to;\r\n treeView.updateSelected(myKey.value, to);\r\n treeView.emitSelected();\r\n }\r\n\r\n function onMouseenterContainer(e: MouseEvent) {\r\n props.onMouseenterContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n });\r\n }\r\n\r\n function onMouseleaveContainer(e: MouseEvent) {\r\n props.onMouseleaveContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n });\r\n }\r\n\r\n function onMousemoveContainer(e: MouseEvent) {\r\n props.onMousemoveContainer?.(e, { ...slotProps.value, item: props.item });\r\n }\r\n\r\n useRender(() => {\r\n const indentSpacer: VNodeArrayChildren = [];\r\n for (let i = 0; i < props.level; i += 1) {\r\n indentSpacer.push(\r\n <div class={'y-tree-view-node__indent-spacer'}></div>,\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n class={classes.value}\r\n style={styles.value}\r\n role=\"treeitem\"\r\n data-level={props.level}\r\n >\r\n <div\r\n ref={container$}\r\n class={'y-tree-view-node__container'}\r\n onClick={(e: MouseEvent) =>\r\n props.enableActive ? onClick(e) : void 0\r\n }\r\n onMouseenter={props.onMouseenterContainer && onMouseenterContainer}\r\n onMouseleave={props.onMouseleaveContainer && onMouseleaveContainer}\r\n onMousemove={props.onMousemoveContainer && onMousemoveContainer}\r\n >\r\n <YPlate />\r\n <div class={'y-tree-view-node__indents'}>{indentSpacer}</div>\r\n {/* EXPAND */}\r\n {!imLeaf.value && leaves.value.length > 0 ? (\r\n <YButton\r\n class={'y-tree-view-node__expand-icon'}\r\n variation={'icon'}\r\n onClick={onClickExpand}\r\n >\r\n {slots['expand-icon'] ? (\r\n slots['expand-icon']()\r\n ) : (\r\n <YIconExpand></YIconExpand>\r\n )}\r\n </YButton>\r\n ) : (\r\n <i class={'y-tree-view-node__no-expand-icon'}></i>\r\n )}\r\n {/* SELECT */}\r\n {props.enableSelect && (\r\n // biome-ignore lint/a11y/useSemanticElements: passive\r\n <div\r\n class={'y-tree-view-node__select'}\r\n role=\"checkbox\"\r\n aria-checked={isChecked.value}\r\n onClick={onClickSelect}\r\n >\r\n <YIconCheckbox\r\n checked={isChecked.value}\r\n indeterminate={!selected.value && childrenSomeChecked.value}\r\n ></YIconCheckbox>\r\n </div>\r\n )}\r\n {/* CONTENT */}\r\n <div class={'y-tree-view-node__content'}>\r\n {slots.leading && (\r\n <div class={'y-tree-view-node__leading'}>\r\n {slots.leading(slotProps.value)}\r\n </div>\r\n )}\r\n <div class={'y-tree-view-node__text'}>\r\n {slots.default ? (\r\n slots.default?.({\r\n text: contentText.value,\r\n item: props.item,\r\n ...slotProps.value,\r\n })\r\n ) : props.search && !searchLoading.value ? (\r\n <YTextHighlighter\r\n text={contentText.value}\r\n keyword={props.search}\r\n ></YTextHighlighter>\r\n ) : (\r\n contentText.value\r\n )}\r\n </div>\r\n {slots.trailing && (\r\n <div class={'y-tree-view-node__trailing'}>\r\n {slots.trailing(slotProps.value)}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {/* CHILDREN */}\r\n {children.value.length > 0 && (\r\n <YExpandVTransition disabled={props.disableTransition}>\r\n {expanded.value && (\r\n <div class={['y-tree-view-node__leaves']} role=\"tree\">\r\n {leaves.value.map((item: any) => {\r\n return (\r\n <YTreeNode\r\n {...mergeProps(props)}\r\n key={getObjectValueByPath(item, props.itemKey)}\r\n level={(props.level ?? 0) + 1}\r\n item={item}\r\n >\r\n {{\r\n default:\r\n slots.default &&\r\n ((...args: any[]) => slots.default?.(...args)),\r\n 'expand-icon':\r\n slots['expand-icon'] &&\r\n ((...args: any[]) =>\r\n slots['expand-icon']?.(...args)),\r\n leading:\r\n slots.leading &&\r\n ((...args: any[]) => slots.leading?.(...args)),\r\n trailing:\r\n slots.trailing &&\r\n ((...args: any[]) => slots.trailing?.(...args)),\r\n }}\r\n </YTreeNode>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </YExpandVTransition>\r\n )}\r\n </div>\r\n );\r\n });\r\n\r\n const nodeState = {\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n indeterminate,\r\n };\r\n\r\n expose(nodeState);\r\n\r\n onBeforeMount(() => {\r\n treeView?.register?.(myKey.value, nodeState);\r\n });\r\n\r\n return {\r\n treeView,\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n indeterminate,\r\n childrenSelection,\r\n };\r\n },\r\n});\r\n\r\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"YTreeViewNode.js","names":["computed","mergeProps","onBeforeMount","ref","resolveComponent","watch","createVNode","_createVNode","_mergeProps","pressItemsPropsOptions","useTreeView","useRender","getObjectValueByPath","getPropertyFromItem","defineComponent","propsFactory","YButton","YIconCheckbox","YIconExpand","YPlate","YTextHighlighter","YExpandVTransition","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeStrategy","type","default","activeClass","Array","activeSingleModifier","requiredActive","activeColor","enableSelect","selectStrategy","onMouseenterContainer","Function","onMouseleaveContainer","onMousemoveContainer","onDblclickContainer","itemSelectable","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","slots","setup","_ref","expose","YTreeNode","treeView","container$","expanded","active","selected","indeterminate","myKey","children","itemChildren","slice","imLeaf","value","length","searchLoading","leaves","filter","leaf","isExcluded","childrenSelection","selectedState","map","child","childrenAllChecked","all","childrenSomeChecked","some","isChecked","classes","styles","contentText","itemText","disabledSelect","selectable","isArray","includes","slotProps","toggleActive","e","to","updateActive","emitActive","onClick","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","toggleExpand","indentSpacer","i","push","leading","text","trailing","_len","arguments","args","_key","_len2","_key2","_len3","_key3","_len4","_key4","nodeState","register"],"sources":["../../../src/components/tree-view/YTreeViewNode.tsx"],"sourcesContent":["/** biome-ignore-all lint/a11y/noStaticElementInteractions: <explanation> */\r\n/** biome-ignore-all lint/a11y/useFocusableInteractive: <explanation> */\r\n/** biome-ignore-all lint/a11y/useKeyWithClickEvents: <explanation> */\r\nimport {\r\n computed,\r\n mergeProps,\r\n onBeforeMount,\r\n type PropType,\r\n ref,\r\n resolveComponent,\r\n type SlotsType,\r\n type VNodeArrayChildren,\r\n watch,\r\n} from 'vue';\r\n\r\nimport { pressItemsPropsOptions } from '@/abstract/items';\r\nimport { useTreeView } from '@/components/tree-view/tree-view';\r\nimport { useRender } from '@/composables/component';\r\nimport { getObjectValueByPath, getPropertyFromItem } from '@/util/common';\r\nimport { defineComponent, propsFactory } from '@/util/component';\r\n\r\nimport { YButton } from '../button';\r\nimport { YIconCheckbox, YIconExpand } from '../icons';\r\nimport { YPlate } from '../plate';\r\nimport { YTextHighlighter } from '../text-highlighter/YTextHighlighter';\r\nimport { YExpandVTransition } from '../transitions';\r\n\r\nexport const pressYTreeViewNodeProps = propsFactory(\r\n {\r\n search: String,\r\n disableTransition: Boolean,\r\n enableActive: Boolean,\r\n activeStrategy: {\r\n /**\r\n * cascade: only action descendent leaves\r\n * relative: cascade after check parent (ancestor)\r\n */\r\n type: String as PropType<'independent' | 'cascade' | 'relative'>,\r\n default: 'independent',\r\n },\r\n activeClass: [String, Array],\r\n activeSingleModifier: String,\r\n requiredActive: Boolean,\r\n activeColor: {\r\n type: String,\r\n default: 'primary',\r\n },\r\n enableSelect: Boolean,\r\n selectStrategy: {\r\n /**\r\n * cascade: only action descendent leaves\r\n * relative: cascade after check parent (ancestor)\r\n * leaves: relative after return values only leaf\r\n */\r\n type: String as PropType<'independent' | 'cascade' | 'relative' | 'leaf'>,\r\n default: 'relative',\r\n },\r\n onMouseenterContainer: Function,\r\n onMouseleaveContainer: Function,\r\n onMousemoveContainer: Function,\r\n onDblclickContainer: Function,\r\n itemSelectable: {\r\n type: [String, Array, Function] as PropType<any>,\r\n },\r\n ...pressItemsPropsOptions({\r\n itemKey: 'id',\r\n }),\r\n },\r\n 'YTreeViewNode',\r\n);\r\n\r\n/**\r\n * TODO: correct selected values what selectStrategy leaf or others\r\n */\r\nexport const YTreeViewNode = defineComponent({\r\n name: 'YTreeNode',\r\n components: {\r\n YButton,\r\n YIconExpand,\r\n YPlate,\r\n YIconCheckbox,\r\n },\r\n props: {\r\n item: {\r\n type: Object as PropType<any>,\r\n },\r\n level: {\r\n type: Number as PropType<number>,\r\n default: 0,\r\n },\r\n ...pressYTreeViewNodeProps(),\r\n },\r\n slots: Object as SlotsType<{\r\n default: any;\r\n 'expand-icon': any;\r\n leading: any;\r\n trailing: any;\r\n }>,\r\n setup(props, { slots, expose }) {\r\n const YTreeNode = resolveComponent('YTreeViewNode', true) as any;\r\n const treeView = useTreeView();\r\n const container$ = ref<HTMLElement>();\r\n\r\n const expanded = ref(false);\r\n const active = ref(false);\r\n const selected = ref(false);\r\n const indeterminate = ref(false);\r\n\r\n const myKey = computed(() =>\r\n getObjectValueByPath(props.item, props.itemKey),\r\n );\r\n\r\n const children = computed(() => {\r\n return (\r\n getObjectValueByPath(props.item, props.itemChildren as string) ?? []\r\n ).slice();\r\n });\r\n\r\n const imLeaf = computed(() => children.value.length < 1);\r\n\r\n const searchLoading = computed(() => {\r\n return treeView.searchLoading.value;\r\n });\r\n\r\n const leaves = computed(() => {\r\n return children.value.filter((leaf: any) => {\r\n return !treeView.isExcluded(getObjectValueByPath(leaf, props.itemKey));\r\n });\r\n });\r\n\r\n const childrenSelection = computed(() =>\r\n treeView.selectedState.value(\r\n myKey.value,\r\n children.value.map((child: any) =>\r\n getObjectValueByPath(child, props.itemKey),\r\n ),\r\n ),\r\n );\r\n\r\n const childrenAllChecked = computed(() => {\r\n return !!children.value?.length && childrenSelection.value.all;\r\n });\r\n\r\n const childrenSomeChecked = computed(() => {\r\n return (\r\n (props.selectStrategy === 'relative' ||\r\n props.selectStrategy === 'leaf') &&\r\n (children.value?.length ?? 0) > 0 &&\r\n !childrenAllChecked.value &&\r\n childrenSelection.value.some\r\n );\r\n });\r\n\r\n const isChecked = computed(() => {\r\n return (\r\n selected.value ||\r\n (props.selectStrategy === 'leaf' && childrenAllChecked.value)\r\n );\r\n });\r\n\r\n const classes = computed(() => {\r\n return {\r\n 'y-tree-view-node': true,\r\n 'y-tree-view-node--leaf': imLeaf.value,\r\n 'y-tree-view-node--expanded': expanded.value,\r\n 'y-tree-view-node--active': active.value,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n return {\r\n '--tree-view-node--level': props.level,\r\n };\r\n });\r\n\r\n const contentText = computed(() => {\r\n return getObjectValueByPath(props.item, props.itemText) ?? '';\r\n });\r\n\r\n const disabledSelect = computed(() => {\r\n if (props.itemSelectable != null) {\r\n let selectable = true;\r\n if (typeof props.itemSelectable === 'function') {\r\n selectable = !!props.itemSelectable(props.item);\r\n } else if (Array.isArray(props.itemSelectable)) {\r\n selectable = props.itemSelectable.includes(myKey.value);\r\n } else {\r\n selectable = getPropertyFromItem(\r\n props.item,\r\n props.itemSelectable,\r\n true,\r\n );\r\n }\r\n\r\n return !selectable;\r\n }\r\n return false;\r\n });\r\n\r\n const slotProps = computed(() => {\r\n return {\r\n level: props.level,\r\n imLeaf: imLeaf.value,\r\n toggleActive,\r\n };\r\n });\r\n\r\n watch(childrenSomeChecked, (value) => {\r\n indeterminate.value = value;\r\n });\r\n\r\n function toggleActive(e?: MouseEvent) {\r\n const to = !active.value;\r\n active.value = to;\r\n treeView.updateActive(myKey.value, to, e);\r\n treeView.emitActive();\r\n }\r\n\r\n function onClick(e: MouseEvent) {\r\n toggleActive(e);\r\n }\r\n\r\n function onClickExpand(e: MouseEvent) {\r\n e.stopPropagation();\r\n const to = !expanded.value;\r\n expanded.value = to;\r\n treeView.updateExpanded(myKey.value, to);\r\n treeView.emitExpanded();\r\n }\r\n\r\n function onClickSelect(e: MouseEvent) {\r\n e.stopPropagation();\r\n if (disabledSelect.value) return;\r\n const to = !isChecked.value;\r\n selected.value = to;\r\n treeView.updateSelected(myKey.value, to);\r\n treeView.emitSelected();\r\n }\r\n\r\n function onMouseenterContainer(e: MouseEvent) {\r\n props.onMouseenterContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n });\r\n }\r\n\r\n function onMouseleaveContainer(e: MouseEvent) {\r\n props.onMouseleaveContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n });\r\n }\r\n\r\n function onMousemoveContainer(e: MouseEvent) {\r\n props.onMousemoveContainer?.(e, { ...slotProps.value, item: props.item });\r\n }\r\n\r\n function onDblclickContainer(e: MouseEvent) {\r\n props.onDblclickContainer?.(e, {\r\n ...slotProps.value,\r\n item: props.item,\r\n toggleExpand: () => onClickExpand(e),\r\n });\r\n }\r\n\r\n useRender(() => {\r\n const indentSpacer: VNodeArrayChildren = [];\r\n for (let i = 0; i < props.level; i += 1) {\r\n indentSpacer.push(\r\n <div class={'y-tree-view-node__indent-spacer'}></div>,\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n class={classes.value}\r\n style={styles.value}\r\n role=\"treeitem\"\r\n data-level={props.level}\r\n >\r\n <div\r\n ref={container$}\r\n class={'y-tree-view-node__container'}\r\n onClick={(e: MouseEvent) =>\r\n props.enableActive ? onClick(e) : void 0\r\n }\r\n onMouseenter={props.onMouseenterContainer && onMouseenterContainer}\r\n onMouseleave={props.onMouseleaveContainer && onMouseleaveContainer}\r\n onMousemove={props.onMousemoveContainer && onMousemoveContainer}\r\n onDblclick={onDblclickContainer}\r\n >\r\n <YPlate />\r\n <div class={'y-tree-view-node__indents'}>{indentSpacer}</div>\r\n {/* EXPAND */}\r\n {!imLeaf.value && leaves.value.length > 0 ? (\r\n <YButton\r\n class={'y-tree-view-node__expand-icon'}\r\n variation={'icon'}\r\n onClick={onClickExpand}\r\n >\r\n {slots['expand-icon'] ? (\r\n slots['expand-icon']()\r\n ) : (\r\n <YIconExpand></YIconExpand>\r\n )}\r\n </YButton>\r\n ) : (\r\n <i class={'y-tree-view-node__no-expand-icon'}></i>\r\n )}\r\n {/* SELECT */}\r\n {props.enableSelect && (\r\n // biome-ignore lint/a11y/useSemanticElements: passive\r\n <div\r\n class={[\r\n 'y-tree-view-node__select',\r\n {\r\n 'y-tree-view-node__select--disabled': disabledSelect.value,\r\n },\r\n ]}\r\n role=\"checkbox\"\r\n aria-checked={isChecked.value}\r\n onClick={onClickSelect}\r\n >\r\n <YIconCheckbox\r\n checked={isChecked.value}\r\n indeterminate={!selected.value && childrenSomeChecked.value}\r\n disabled={disabledSelect.value}\r\n ></YIconCheckbox>\r\n </div>\r\n )}\r\n {/* CONTENT */}\r\n <div class={'y-tree-view-node__content'}>\r\n {slots.leading && (\r\n <div class={'y-tree-view-node__leading'}>\r\n {slots.leading(slotProps.value)}\r\n </div>\r\n )}\r\n <div class={'y-tree-view-node__text'}>\r\n {slots.default ? (\r\n slots.default?.({\r\n text: contentText.value,\r\n item: props.item,\r\n ...slotProps.value,\r\n })\r\n ) : props.search && !searchLoading.value ? (\r\n <YTextHighlighter\r\n text={contentText.value}\r\n keyword={props.search}\r\n ></YTextHighlighter>\r\n ) : (\r\n contentText.value\r\n )}\r\n </div>\r\n {slots.trailing && (\r\n <div class={'y-tree-view-node__trailing'}>\r\n {slots.trailing(slotProps.value)}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {/* CHILDREN */}\r\n {children.value.length > 0 && (\r\n <YExpandVTransition disabled={props.disableTransition}>\r\n {expanded.value && (\r\n <div class={['y-tree-view-node__leaves']} role=\"tree\">\r\n {leaves.value.map((item: any) => {\r\n return (\r\n <YTreeNode\r\n {...mergeProps(props)}\r\n key={getObjectValueByPath(item, props.itemKey)}\r\n level={(props.level ?? 0) + 1}\r\n item={item}\r\n >\r\n {{\r\n default:\r\n slots.default &&\r\n ((...args: any[]) => slots.default?.(...args)),\r\n 'expand-icon':\r\n slots['expand-icon'] &&\r\n ((...args: any[]) =>\r\n slots['expand-icon']?.(...args)),\r\n leading:\r\n slots.leading &&\r\n ((...args: any[]) => slots.leading?.(...args)),\r\n trailing:\r\n slots.trailing &&\r\n ((...args: any[]) => slots.trailing?.(...args)),\r\n }}\r\n </YTreeNode>\r\n );\r\n })}\r\n </div>\r\n )}\r\n </YExpandVTransition>\r\n )}\r\n </div>\r\n );\r\n });\r\n\r\n const nodeState = {\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n indeterminate,\r\n };\r\n\r\n expose(nodeState);\r\n\r\n onBeforeMount(() => {\r\n treeView?.register?.(myKey.value, nodeState);\r\n });\r\n\r\n return {\r\n treeView,\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n indeterminate,\r\n childrenSelection,\r\n };\r\n },\r\n});\r\n\r\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\r\n"],"mappings":"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","ignoreList":[]}
@@ -142,13 +142,13 @@ export function provideTreeView(props) {
142
142
  if (props.selectStrategy === 'cascade' || props.selectStrategy === 'relative' || props.selectStrategy === 'leaf') {
143
143
  for (const descendant of getDescendants(key)) {
144
144
  if (descendant in nodes.value) {
145
- if (props.selectStrategy === 'leaf' && !!nodes.value[descendant]?.childKeys?.length) {
145
+ if (props.selectStrategy === 'leaf' && !!nodes.value[descendant]?.childKeys?.length && to) {
146
146
  continue;
147
147
  }
148
148
  setSelected(descendant, to);
149
149
  }
150
150
  }
151
- if (props.selectStrategy === 'relative') {
151
+ if (props.selectStrategy === 'relative' || props.selectStrategy === 'leaf' && !to) {
152
152
  let grand = node.parentKey;
153
153
  do {
154
154
  const parentKey = grand;
@@ -1 +1 @@
1
- {"version":3,"file":"tree-view.js","names":["computed","inject","provide","ref","shallowRef","useModelDuplex","getObjectValueByPath","Y_TREE_VIEW","Symbol","for","provideTreeView","props","nodes","expanded","active","selected","expandedSet","Set","selectedSet","activeSet","searchLoading","excludedSet","selectedState","all","some","key","children","every","child","value","has","getDescendants","descendants","childKeys","push","remains","slice","length","childKey","splice","item","isExcluded","search","issueVnodeState","node","vnode","indeterminate","updateExpanded","to","itemChildren","Array","isArray","add","delete","updateActive","event","inactiveKey","multipleActive","requiredActive","size","activeSingleModifier","getModifierState","onlyEventActiveStrategy","activeStrategy","descendant","setActive","grand","parentKey","parent","isChildrenAll","updateSelected","selectStrategy","setSelected","stateKey","isChildrenSome","emitExpanded","arr","returnItem","map","emitActive","emitSelected","register","useTreeView","instance","Error"],"sources":["../../../src/components/tree-view/tree-view.ts"],"sourcesContent":["import {\n type ComputedRef,\n computed,\n type InjectionKey,\n inject,\n provide,\n type Ref,\n ref,\n shallowRef,\n} from 'vue';\n\nimport type { NodeState } from '@/components/tree-view/types';\nimport { useModelDuplex } from '@/composables';\nimport type { CandidateKey } from '@/types';\nimport { getObjectValueByPath } from '@/util';\n\nexport const Y_TREE_VIEW: InjectionKey<{\n register: (key: CandidateKey, vnode: any) => void;\n updateExpanded: (key: CandidateKey, to: boolean) => void;\n updateActive: (key: CandidateKey, to: boolean, event?: MouseEvent) => void;\n updateSelected: (key: CandidateKey, to: boolean) => void;\n searchLoading: Ref<boolean>;\n isExcluded: (key: CandidateKey) => boolean;\n emitExpanded: () => void;\n emitActive: () => void;\n emitSelected: () => void;\n isChildrenAll: (key: CandidateKey, stateKey: string, to: boolean) => boolean;\n isChildrenSome: (key: CandidateKey, stateKey: string) => boolean;\n selectedState: ComputedRef<\n (key: CandidateKey, children: CandidateKey[]) => { all: boolean; some: boolean }\n >;\n}> = Symbol.for('YTreeView');\n\n// TODO: props type\nexport function provideTreeView(props: any) {\n const nodes = ref<Record<CandidateKey, NodeState>>({});\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const searchLoading = shallowRef(false);\n const excludedSet = ref(new Set<CandidateKey>());\n\n const selectedState = computed(() => {\n let all = false;\n let some = false;\n\n return (key: CandidateKey, children: CandidateKey[]) => {\n all = children.every((child) => selectedSet.value.has(child));\n some = getDescendants(key).some((child) => selectedSet.value.has(child));\n return {\n all: all,\n some: some,\n };\n };\n });\n\n // Utils\n function getDescendants(key: CandidateKey) {\n const descendants: CandidateKey[] = [];\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n const remains: CandidateKey[] = childKeys.slice();\n\n while (remains.length > 0) {\n const childKey: CandidateKey = remains.splice(0, 1)[0];\n const item = nodes.value[childKey];\n if (item) {\n descendants.push(...item.childKeys);\n remains.push(...item.childKeys);\n }\n }\n\n return descendants;\n }\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n //\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node?.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n // Update\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(\n node.item,\n props.itemChildren as string,\n );\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive && to && !activeSet.value.has(key)) {\n [inactiveKey] = [...activeSet.value];\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n issueVnodeState(key);\n } else {\n if (\n props.requiredActive &&\n activeSet.value.size === 1 &&\n key === inactiveKey\n ) {\n issueVnodeState(key);\n return;\n }\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (\n props.multipleActive &&\n (!props.onlyEventActiveStrategy ||\n (props.onlyEventActiveStrategy && event)) &&\n (props.activeStrategy === 'cascade' ||\n props.activeStrategy === 'relative')\n ) {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n setActive(descendant, to);\n }\n }\n if (props.activeStrategy === 'relative') {\n let grand: CandidateKey | null = node.parentKey;\n do {\n const parentKey = grand;\n grand = null;\n if (!parentKey) continue;\n const parent = nodes.value[parentKey];\n if (!parent) continue;\n const all = isChildrenAll(parentKey, 'active', to);\n if (all || !to) {\n setActive(parentKey, to);\n if (parent.parentKey) {\n grand = parent.parentKey;\n }\n }\n } while (grand != null);\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n if (props.selectStrategy !== 'leaf') {\n selectedSet.value.add(key);\n } else if (!node.childKeys.length) {\n selectedSet.value.add(key);\n }\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (\n props.selectStrategy === 'cascade' ||\n props.selectStrategy === 'relative' ||\n props.selectStrategy === 'leaf'\n ) {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n if (props.selectStrategy === 'leaf' && !!nodes.value[descendant]?.childKeys?.length) {\n continue;\n }\n setSelected(descendant, to);\n }\n }\n if (props.selectStrategy === 'relative') {\n let grand: CandidateKey | null = node.parentKey;\n do {\n const parentKey = grand;\n grand = null;\n if (!parentKey) continue;\n const parent = nodes.value[parentKey];\n if (!parent) continue;\n const all = isChildrenAll(parentKey, 'selected', to);\n if (all || !to) {\n setSelected(parentKey, to);\n if (parent.parentKey) {\n grand = parent.parentKey;\n }\n }\n } while (grand != null);\n }\n }\n }\n\n function isChildrenAll(key: CandidateKey, stateKey: string, to: boolean) {\n const node = nodes.value[key];\n if (!node) return false;\n const { childKeys } = node;\n return childKeys.every((childKey) => {\n return (nodes.value[childKey] as any)?.[stateKey] === to;\n });\n }\n\n function isChildrenSome(key: CandidateKey, stateKey: string) {\n const node = nodes.value[key];\n if (!node) return false;\n const { childKeys } = node;\n return childKeys.some((childKey) => {\n return (nodes.value[childKey] as any)?.[stateKey] === true;\n });\n }\n\n function setActive(key: CandidateKey, to: boolean) {\n to ? activeSet.value.add(key) : activeSet.value.delete(key);\n nodes.value[key].active = to;\n issueVnodeState(key);\n }\n\n function setSelected(key: CandidateKey, to: boolean) {\n to ? selectedSet.value.add(key) : selectedSet.value.delete(key);\n nodes.value[key].selected = to;\n issueVnodeState(key);\n }\n\n // Emit\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n // Inject\n function register(key: CandidateKey, vnode: any) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n provide(Y_TREE_VIEW, {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n searchLoading,\n isExcluded,\n emitExpanded,\n emitActive,\n emitSelected,\n isChildrenAll,\n isChildrenSome,\n selectedState,\n });\n\n return {\n nodes,\n expanded,\n active,\n selected,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n isExcluded,\n selectedState,\n };\n}\n\nexport function useTreeView() {\n const instance = inject(Y_TREE_VIEW);\n if (!instance) throw new Error('Not found provided YTreeView');\n return instance;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"tree-view.js","names":["computed","inject","provide","ref","shallowRef","useModelDuplex","getObjectValueByPath","Y_TREE_VIEW","Symbol","for","provideTreeView","props","nodes","expanded","active","selected","expandedSet","Set","selectedSet","activeSet","searchLoading","excludedSet","selectedState","all","some","key","children","every","child","value","has","getDescendants","descendants","childKeys","push","remains","slice","length","childKey","splice","item","isExcluded","search","issueVnodeState","node","vnode","indeterminate","updateExpanded","to","itemChildren","Array","isArray","add","delete","updateActive","event","inactiveKey","multipleActive","requiredActive","size","activeSingleModifier","getModifierState","onlyEventActiveStrategy","activeStrategy","descendant","setActive","grand","parentKey","parent","isChildrenAll","updateSelected","selectStrategy","setSelected","stateKey","isChildrenSome","emitExpanded","arr","returnItem","map","emitActive","emitSelected","register","useTreeView","instance","Error"],"sources":["../../../src/components/tree-view/tree-view.ts"],"sourcesContent":["import {\n type ComputedRef,\n computed,\n type InjectionKey,\n inject,\n provide,\n type Ref,\n ref,\n shallowRef,\n} from 'vue';\n\nimport type { NodeState } from '@/components/tree-view/types';\nimport { useModelDuplex } from '@/composables';\nimport type { CandidateKey } from '@/types';\nimport { getObjectValueByPath } from '@/util';\n\nexport const Y_TREE_VIEW: InjectionKey<{\n register: (key: CandidateKey, vnode: any) => void;\n updateExpanded: (key: CandidateKey, to: boolean) => void;\n updateActive: (key: CandidateKey, to: boolean, event?: MouseEvent) => void;\n updateSelected: (key: CandidateKey, to: boolean) => void;\n searchLoading: Ref<boolean>;\n isExcluded: (key: CandidateKey) => boolean;\n emitExpanded: () => void;\n emitActive: () => void;\n emitSelected: () => void;\n isChildrenAll: (key: CandidateKey, stateKey: string, to: boolean) => boolean;\n isChildrenSome: (key: CandidateKey, stateKey: string) => boolean;\n selectedState: ComputedRef<\n (\n key: CandidateKey,\n children: CandidateKey[],\n ) => { all: boolean; some: boolean }\n >;\n}> = Symbol.for('YTreeView');\n\n// TODO: props type\nexport function provideTreeView(props: any) {\n const nodes = ref<Record<CandidateKey, NodeState>>({});\n const expanded = useModelDuplex(props, 'expanded');\n const active = useModelDuplex(props, 'active');\n const selected = useModelDuplex(props, 'selected');\n\n const expandedSet = ref(new Set<CandidateKey>());\n const selectedSet = ref(new Set<CandidateKey>());\n const activeSet = ref(new Set<CandidateKey>());\n const searchLoading = shallowRef(false);\n const excludedSet = ref(new Set<CandidateKey>());\n\n const selectedState = computed(() => {\n let all = false;\n let some = false;\n\n return (key: CandidateKey, children: CandidateKey[]) => {\n all = children.every((child) => selectedSet.value.has(child));\n some = getDescendants(key).some((child) => selectedSet.value.has(child));\n return {\n all: all,\n some: some,\n };\n };\n });\n\n // Utils\n function getDescendants(key: CandidateKey) {\n const descendants: CandidateKey[] = [];\n const { childKeys } = nodes.value[key];\n descendants.push(...childKeys);\n const remains: CandidateKey[] = childKeys.slice();\n\n while (remains.length > 0) {\n const childKey: CandidateKey = remains.splice(0, 1)[0];\n const item = nodes.value[childKey];\n if (item) {\n descendants.push(...item.childKeys);\n remains.push(...item.childKeys);\n }\n }\n\n return descendants;\n }\n\n // Search\n function isExcluded(key: CandidateKey) {\n return !!props.search && excludedSet.value.has(key);\n }\n\n //\n function issueVnodeState(key: CandidateKey) {\n const node = nodes.value[key];\n if (node?.vnode) {\n node.vnode.active = node.active;\n node.vnode.selected = node.selected;\n node.vnode.indeterminate = node.indeterminate;\n node.vnode.expanded = node.expanded;\n }\n }\n\n // Update\n function updateExpanded(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n const children = getObjectValueByPath(\n node.item,\n props.itemChildren as string,\n );\n if (Array.isArray(children) && children.length > 0) {\n to ? expandedSet.value.add(key) : expandedSet.value.delete(key);\n node.expanded = to;\n issueVnodeState(key);\n }\n }\n\n function updateActive(key: CandidateKey, to: boolean, event?: MouseEvent) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n let inactiveKey = !to ? key : '';\n if (!props.multipleActive && to && !activeSet.value.has(key)) {\n [inactiveKey] = [...activeSet.value];\n }\n if (to) {\n activeSet.value.add(key);\n node.active = true;\n issueVnodeState(key);\n } else {\n if (\n props.requiredActive &&\n activeSet.value.size === 1 &&\n key === inactiveKey\n ) {\n issueVnodeState(key);\n return;\n }\n }\n if (inactiveKey && inactiveKey in nodes.value) {\n activeSet.value.delete(inactiveKey);\n nodes.value[inactiveKey].active = false;\n issueVnodeState(inactiveKey);\n }\n\n if (\n props.activeSingleModifier &&\n event?.getModifierState(props.activeSingleModifier)\n ) {\n return;\n }\n\n if (\n props.multipleActive &&\n (!props.onlyEventActiveStrategy ||\n (props.onlyEventActiveStrategy && event)) &&\n (props.activeStrategy === 'cascade' ||\n props.activeStrategy === 'relative')\n ) {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n setActive(descendant, to);\n }\n }\n if (props.activeStrategy === 'relative') {\n let grand: CandidateKey | null = node.parentKey;\n do {\n const parentKey = grand;\n grand = null;\n if (!parentKey) continue;\n const parent = nodes.value[parentKey];\n if (!parent) continue;\n const all = isChildrenAll(parentKey, 'active', to);\n if (all || !to) {\n setActive(parentKey, to);\n if (parent.parentKey) {\n grand = parent.parentKey;\n }\n }\n } while (grand != null);\n }\n }\n }\n\n function updateSelected(key: CandidateKey, to: boolean) {\n if (!(key in nodes.value)) return;\n const node = nodes.value[key];\n\n if (to) {\n if (props.selectStrategy !== 'leaf') {\n selectedSet.value.add(key);\n } else if (!node.childKeys.length) {\n selectedSet.value.add(key);\n }\n node.selected = true;\n }\n\n if (!to && key in nodes.value) {\n selectedSet.value.delete(key);\n nodes.value[key].selected = false;\n issueVnodeState(key);\n }\n\n if (\n props.selectStrategy === 'cascade' ||\n props.selectStrategy === 'relative' ||\n props.selectStrategy === 'leaf'\n ) {\n for (const descendant of getDescendants(key)) {\n if (descendant in nodes.value) {\n if (\n props.selectStrategy === 'leaf' &&\n !!nodes.value[descendant]?.childKeys?.length &&\n to\n ) {\n continue;\n }\n setSelected(descendant, to);\n }\n }\n if (\n props.selectStrategy === 'relative' ||\n (props.selectStrategy === 'leaf' && !to)\n ) {\n let grand: CandidateKey | null = node.parentKey;\n do {\n const parentKey = grand;\n grand = null;\n if (!parentKey) continue;\n const parent = nodes.value[parentKey];\n if (!parent) continue;\n const all = isChildrenAll(parentKey, 'selected', to);\n if (all || !to) {\n setSelected(parentKey, to);\n if (parent.parentKey) {\n grand = parent.parentKey;\n }\n }\n } while (grand != null);\n }\n }\n }\n\n function isChildrenAll(key: CandidateKey, stateKey: string, to: boolean) {\n const node = nodes.value[key];\n if (!node) return false;\n const { childKeys } = node;\n return childKeys.every((childKey) => {\n return (nodes.value[childKey] as any)?.[stateKey] === to;\n });\n }\n\n function isChildrenSome(key: CandidateKey, stateKey: string) {\n const node = nodes.value[key];\n if (!node) return false;\n const { childKeys } = node;\n return childKeys.some((childKey) => {\n return (nodes.value[childKey] as any)?.[stateKey] === true;\n });\n }\n\n function setActive(key: CandidateKey, to: boolean) {\n to ? activeSet.value.add(key) : activeSet.value.delete(key);\n nodes.value[key].active = to;\n issueVnodeState(key);\n }\n\n function setSelected(key: CandidateKey, to: boolean) {\n to ? selectedSet.value.add(key) : selectedSet.value.delete(key);\n nodes.value[key].selected = to;\n issueVnodeState(key);\n }\n\n // Emit\n function emitExpanded() {\n const arr = [...expandedSet.value];\n expanded.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitActive() {\n const arr = [...activeSet.value];\n active.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n function emitSelected() {\n const arr = [...selectedSet.value];\n selected.value = props.returnItem\n ? arr.map((key) => nodes.value[key].item)\n : arr;\n }\n\n // Inject\n function register(key: CandidateKey, vnode: any) {\n if (nodes.value[key]) {\n nodes.value[key].vnode = vnode;\n }\n\n issueVnodeState(key);\n }\n\n provide(Y_TREE_VIEW, {\n register,\n updateExpanded,\n updateActive,\n updateSelected,\n searchLoading,\n isExcluded,\n emitExpanded,\n emitActive,\n emitSelected,\n isChildrenAll,\n isChildrenSome,\n selectedState,\n });\n\n return {\n nodes,\n expanded,\n active,\n selected,\n issueVnodeState,\n updateExpanded,\n updateActive,\n updateSelected,\n emitExpanded,\n emitActive,\n emitSelected,\n expandedSet,\n selectedSet,\n activeSet,\n searchLoading,\n excludedSet,\n isExcluded,\n selectedState,\n };\n}\n\nexport function useTreeView() {\n const instance = inject(Y_TREE_VIEW);\n if (!instance) throw new Error('Not found provided YTreeView');\n return instance;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ export function animate(el, keyframes, options) {
2
+ if (typeof el.animate === 'undefined') return Promise.resolve();
3
+ let animation;
4
+ try {
5
+ animation = el.animate(keyframes, options);
6
+ } catch (e) {
7
+ return Promise.resolve();
8
+ }
9
+ const promise = new Promise(resolve => {
10
+ animation.onfinish = () => {
11
+ resolve(animation);
12
+ };
13
+ });
14
+ Object.assign(promise, {
15
+ animation
16
+ });
17
+ return promise;
18
+ }
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["animate","el","keyframes","options","Promise","resolve","animation","e","promise","onfinish","Object","assign"],"sources":["../../../src/util/animation/index.ts"],"sourcesContent":["export function animate(el: Element, keyframes: any, options?: any) {\r\n if (typeof el.animate === 'undefined') return Promise.resolve();\r\n\r\n let animation: Animation;\r\n try {\r\n animation = el.animate(keyframes, options);\r\n } catch (e) {\r\n return Promise.resolve();\r\n }\r\n\r\n const promise = new Promise<any>((resolve) => {\r\n animation.onfinish = () => {\r\n resolve(animation)\r\n };\r\n }) as any;\r\n Object.assign(promise, { animation });\r\n\r\n return promise;\r\n}\r\n"],"mappings":"AAAA,OAAO,SAASA,OAAOA,CAACC,EAAW,EAAEC,SAAc,EAAEC,OAAa,EAAE;EAClE,IAAI,OAAOF,EAAE,CAACD,OAAO,KAAK,WAAW,EAAE,OAAOI,OAAO,CAACC,OAAO,CAAC,CAAC;EAE/D,IAAIC,SAAoB;EACxB,IAAI;IACFA,SAAS,GAAGL,EAAE,CAACD,OAAO,CAACE,SAAS,EAAEC,OAAO,CAAC;EAC5C,CAAC,CAAC,OAAOI,CAAC,EAAE;IACV,OAAOH,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEA,MAAMG,OAAO,GAAG,IAAIJ,OAAO,CAAOC,OAAO,IAAK;IAC5CC,SAAS,CAACG,QAAQ,GAAG,MAAM;MACzBJ,OAAO,CAACC,SAAS,CAAC;IACpB,CAAC;EACH,CAAC,CAAQ;EACTI,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAAEF;EAAU,CAAC,CAAC;EAErC,OAAOE,OAAO;AAChB","ignoreList":[]}
@@ -50,8 +50,8 @@ export class YuyeonDateAdapter {
50
50
  getNextMonth(date) {
51
51
  return DateUtil.getNextMonth(date);
52
52
  }
53
- getWeekdays() {
54
- return DateUtil.getWeekdays(this.locale);
53
+ getWeekdays(firstDayIndex) {
54
+ return DateUtil.getWeekdays(this.locale, firstDayIndex);
55
55
  }
56
56
  isAfter(date, comparing) {
57
57
  return DateUtil.isAfter(date, comparing);
@@ -107,5 +107,8 @@ export class YuyeonDateAdapter {
107
107
  setMinute(date, minute) {
108
108
  return DateUtil.setMinute(date, minute);
109
109
  }
110
+ parseTime(time) {
111
+ return DateUtil.parseTime(this.locale, time);
112
+ }
110
113
  }
111
114
  //# sourceMappingURL=yuyeon-date-adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yuyeon-date-adapter.js","names":["DateUtil","YuyeonDateAdapter","constructor","options","_defineProperty","locale","formats","getWeekArray","date","startOfMonth","endOfMonth","addDays","amount","addMonths","value","endOfDay","endOfYear","format","formatString","getDiff","comparing","unit","getYear","getMonth","getDay","getNextMonth","getWeekdays","isAfter","isBefore","isEqual","isSameDay","isSameMonth","isValid","isWithinRange","range","parseISO","setMonth","month","setYear","year","startOfDay","startOfYear","toISO","toJsDate","getHour","getMinute","setHour","hour","setMinute","minute"],"sources":["../../../../src/util/date/adapters/yuyeon-date-adapter.ts"],"sourcesContent":["import { DateUtil } from '../built-in';\nimport { DateAdapter, DateFormatOptions } from '../types';\n\nexport class YuyeonDateAdapter implements DateAdapter<Date> {\n public locale = 'ko-kr';\n\n public formats?: Record<string, DateFormatOptions>;\n\n constructor(options: {\n locale: string;\n formats?: Record<string, DateFormatOptions>;\n }) {\n this.locale = options.locale;\n this.formats = options.formats;\n }\n\n public getWeekArray(date: Date) {\n return DateUtil.getWeekArray(date, this.locale);\n }\n\n public startOfMonth(date: Date) {\n return DateUtil.startOfMonth(date);\n }\n\n public endOfMonth(date: Date) {\n return DateUtil.endOfMonth(date);\n }\n\n public addDays(date: Date, amount: number): Date {\n return DateUtil.addDays(date, amount);\n }\n\n public addMonths(date: Date, amount: number): Date {\n return DateUtil.addMonths(date, amount);\n }\n\n public date(value?: any): Date | null {\n return DateUtil.date(value);\n }\n\n public endOfDay(date: Date): Date {\n return DateUtil.endOfDay(date);\n }\n\n public endOfYear(date: Date): Date {\n return DateUtil.endOfYear(date);\n }\n\n public format(date: Date, formatString: string): string {\n return DateUtil.format(date, formatString, this.locale, this.formats);\n }\n\n public getDiff(date: Date, comparing: string | Date, unit?: string): number {\n return DateUtil.getDiff(date, comparing, unit);\n }\n\n public getYear(date: Date): number {\n return DateUtil.getYear(date);\n }\n\n public getMonth(date: Date): number {\n return DateUtil.getMonth(date);\n }\n\n public getDay(date: Date): number {\n return DateUtil.getDay(date);\n }\n\n public getNextMonth(date: Date): Date {\n return DateUtil.getNextMonth(date);\n }\n\n public getWeekdays(): string[] {\n return DateUtil.getWeekdays(this.locale);\n }\n\n public isAfter(date: Date, comparing: Date): boolean {\n return DateUtil.isAfter(date, comparing);\n }\n\n public isBefore(date: Date, comparing: Date): boolean {\n return DateUtil.isBefore(date, comparing);\n }\n\n public isEqual(date: Date, comparing: Date): boolean {\n return DateUtil.isEqual(date, comparing);\n }\n\n public isSameDay(date: Date, comparing: Date): boolean {\n return DateUtil.isSameDay(date, comparing);\n }\n\n public isSameMonth(date: Date, comparing: Date): boolean {\n return DateUtil.isSameMonth(date, comparing);\n }\n\n public isValid(date: any): boolean {\n return DateUtil.isValid(date);\n }\n\n public isWithinRange(date: Date, range: [Date, Date]): boolean {\n return DateUtil.isWithinRange(date, range);\n }\n\n public parseISO(date: string): Date {\n return DateUtil.parseISO(date);\n }\n\n public setMonth(date: Date, month: number): Date {\n return DateUtil.setMonth(date, month);\n }\n\n public setYear(date: Date, year: number): Date {\n return DateUtil.setYear(date, year);\n }\n\n public startOfDay(date: Date): Date {\n return DateUtil.startOfDay(date);\n }\n\n public startOfYear(date: Date): Date {\n return DateUtil.startOfYear(date);\n }\n\n public toISO(date: Date): string {\n return DateUtil.toISO(this, date);\n }\n\n public toJsDate(date: Date): Date {\n return date;\n }\n\n getHour(date: Date): number {\n return DateUtil.getHour(date);\n }\n\n getMinute(date: Date): number {\n return DateUtil.getMinute(date);\n }\n\n setHour(date: Date, hour: number): Date {\n return DateUtil.setHour(date, hour);\n }\n\n setMinute(date: Date, minute: number): Date {\n return DateUtil.setMinute(date, minute);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"yuyeon-date-adapter.js","names":["DateUtil","YuyeonDateAdapter","constructor","options","_defineProperty","locale","formats","getWeekArray","date","startOfMonth","endOfMonth","addDays","amount","addMonths","value","endOfDay","endOfYear","format","formatString","getDiff","comparing","unit","getYear","getMonth","getDay","getNextMonth","getWeekdays","firstDayIndex","isAfter","isBefore","isEqual","isSameDay","isSameMonth","isValid","isWithinRange","range","parseISO","setMonth","month","setYear","year","startOfDay","startOfYear","toISO","toJsDate","getHour","getMinute","setHour","hour","setMinute","minute","parseTime","time"],"sources":["../../../../src/util/date/adapters/yuyeon-date-adapter.ts"],"sourcesContent":["import { DateUtil } from '../built-in';\nimport { DateAdapter, DateFormatOptions } from '../types';\n\nexport class YuyeonDateAdapter implements DateAdapter<Date> {\n public locale = 'ko-kr';\n\n public formats?: Record<string, DateFormatOptions>;\n\n constructor(options: {\n locale: string;\n formats?: Record<string, DateFormatOptions>;\n }) {\n this.locale = options.locale;\n this.formats = options.formats;\n }\n\n public getWeekArray(date: Date) {\n return DateUtil.getWeekArray(date, this.locale);\n }\n\n public startOfMonth(date: Date) {\n return DateUtil.startOfMonth(date);\n }\n\n public endOfMonth(date: Date) {\n return DateUtil.endOfMonth(date);\n }\n\n public addDays(date: Date, amount: number): Date {\n return DateUtil.addDays(date, amount);\n }\n\n public addMonths(date: Date, amount: number): Date {\n return DateUtil.addMonths(date, amount);\n }\n\n public date(value?: any): Date | null {\n return DateUtil.date(value);\n }\n\n public endOfDay(date: Date): Date {\n return DateUtil.endOfDay(date);\n }\n\n public endOfYear(date: Date): Date {\n return DateUtil.endOfYear(date);\n }\n\n public format(date: Date, formatString: string): string {\n return DateUtil.format(date, formatString, this.locale, this.formats);\n }\n\n public getDiff(date: Date, comparing: string | Date, unit?: string): number {\n return DateUtil.getDiff(date, comparing, unit);\n }\n\n public getYear(date: Date): number {\n return DateUtil.getYear(date);\n }\n\n public getMonth(date: Date): number {\n return DateUtil.getMonth(date);\n }\n\n public getDay(date: Date): number {\n return DateUtil.getDay(date);\n }\n\n public getNextMonth(date: Date): Date {\n return DateUtil.getNextMonth(date);\n }\n\n public getWeekdays(firstDayIndex?: number): string[] {\n return DateUtil.getWeekdays(this.locale, firstDayIndex);\n }\n\n public isAfter(date: Date, comparing: Date): boolean {\n return DateUtil.isAfter(date, comparing);\n }\n\n public isBefore(date: Date, comparing: Date): boolean {\n return DateUtil.isBefore(date, comparing);\n }\n\n public isEqual(date: Date, comparing: Date): boolean {\n return DateUtil.isEqual(date, comparing);\n }\n\n public isSameDay(date: Date, comparing: Date): boolean {\n return DateUtil.isSameDay(date, comparing);\n }\n\n public isSameMonth(date: Date, comparing: Date): boolean {\n return DateUtil.isSameMonth(date, comparing);\n }\n\n public isValid(date: any): boolean {\n return DateUtil.isValid(date);\n }\n\n public isWithinRange(date: Date, range: [Date, Date]): boolean {\n return DateUtil.isWithinRange(date, range);\n }\n\n public parseISO(date: string): Date {\n return DateUtil.parseISO(date);\n }\n\n public setMonth(date: Date, month: number): Date {\n return DateUtil.setMonth(date, month);\n }\n\n public setYear(date: Date, year: number): Date {\n return DateUtil.setYear(date, year);\n }\n\n public startOfDay(date: Date): Date {\n return DateUtil.startOfDay(date);\n }\n\n public startOfYear(date: Date): Date {\n return DateUtil.startOfYear(date);\n }\n\n public toISO(date: Date): string {\n return DateUtil.toISO(this, date);\n }\n\n public toJsDate(date: Date): Date {\n return date;\n }\n\n getHour(date: Date): number {\n return DateUtil.getHour(date);\n }\n\n getMinute(date: Date): number {\n return DateUtil.getMinute(date);\n }\n\n setHour(date: Date, hour: number): Date {\n return DateUtil.setHour(date, hour);\n }\n\n setMinute(date: Date, minute: number): Date {\n return DateUtil.setMinute(date, minute);\n }\n\n public parseTime(time:string): {hours: number, minutes: number} | null {\n return DateUtil.parseTime(this.locale, time);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -153,7 +153,7 @@ export const ONE_DAY = 1000 * 60 * 60 * 24;
153
153
  export const YYYY_MM_DD_REGEX = /^([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))$/;
154
154
  export const FIRST_SUNDAY = new Date(1970, 0, 4);
155
155
 
156
- // biome-ignore lint/complexity/noStaticOnlyClass: <explanation>
156
+ // biome-ignore lint/complexity/noStaticOnlyClass: For adapter
157
157
  export class DateUtil {
158
158
  static date(value) {
159
159
  if (value == null) return new Date();
@@ -328,11 +328,14 @@ export class DateUtil {
328
328
  static getNextMonth(date) {
329
329
  return new Date(date.getFullYear(), date.getMonth() + 1, 1);
330
330
  }
331
- static getWeekdays(locale) {
332
- const sundayIndex = FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] ?? 0;
331
+ static getWeekdays(locale, firstDayIndex) {
332
+ let indexOffset = FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] ?? 0;
333
+ if (typeof firstDayIndex !== 'undefined' && firstDayIndex >= 0 && firstDayIndex < 7) {
334
+ indexOffset = firstDayIndex;
335
+ }
333
336
  return [...Array(7).keys()].map(i => {
334
337
  const weekday = new Date(FIRST_SUNDAY);
335
- weekday.setDate(FIRST_SUNDAY.getDate() + sundayIndex + i);
338
+ weekday.setDate(FIRST_SUNDAY.getDate() + indexOffset + i);
336
339
  return new Intl.DateTimeFormat(locale, {
337
340
  weekday: 'narrow'
338
341
  }).format(weekday);
@@ -414,5 +417,56 @@ export class DateUtil {
414
417
  d.setMinutes(minute);
415
418
  return d;
416
419
  }
420
+
421
+ /**
422
+ * Parse time string to { hours (24 hours), minutes }.
423
+ *
424
+ * @param locale
425
+ * @param input
426
+ */
427
+ static parseTime(locale, input) {
428
+ const timeStr = String(input).replace(/\D/g, '');
429
+ if (!timeStr) {
430
+ return null;
431
+ }
432
+ const length = timeStr.length;
433
+ const pm = DateUtil.includesPm(locale, input);
434
+ let hours;
435
+ let minutes;
436
+ if (length === 1 || length === 2) {
437
+ hours = parseInt(timeStr, 10);
438
+ minutes = 0;
439
+ } else if (length === 3) {
440
+ hours = parseInt(timeStr[0], 10);
441
+ minutes = parseInt(timeStr.slice(1), 10);
442
+ } else {
443
+ const first4 = timeStr.slice(0, 4);
444
+ hours = parseInt(first4.slice(0, 2), 10);
445
+ minutes = parseInt(first4.slice(2), 10);
446
+ }
447
+ if (hours < 12 && pm) {
448
+ hours += 12;
449
+ }
450
+ if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {
451
+ return null;
452
+ }
453
+ return {
454
+ hours,
455
+ minutes
456
+ };
457
+ }
458
+
459
+ /**
460
+ * Check if the input is an afternoon time.
461
+ * Before, check if the locale supports Meridian.
462
+ *
463
+ * @param locale
464
+ * @param input
465
+ */
466
+ static includesPm(locale, input) {
467
+ if (input.trim().toLowerCase().includes('pm')) return true;
468
+ const meridians = DateUtil.getMeridians(locale);
469
+ return !!meridians[1] && input.trim().includes(meridians[1]);
470
+ }
417
471
  }
418
472
  //# sourceMappingURL=built-in.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"built-in.js","names":["FIRST_DAY_INDEX","AD","AE","AF","AG","AI","AL","AM","AN","AR","AS","AT","AU","AX","AZ","BA","BD","BE","BG","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CH","CL","CM","CN","CO","CR","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ES","ET","FI","FJ","FO","FR","GB","GE","GF","GP","GR","GT","GU","HK","HN","HR","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LI","LK","LT","LU","LV","LY","MC","MD","ME","MH","MK","MM","MN","MO","MQ","MT","MV","MX","MY","MZ","NI","NL","NO","NP","NZ","OM","PA","PE","PH","PK","PL","PR","PT","PY","QA","RE","RO","RS","RU","SA","SD","SE","SG","SI","SK","SM","SV","SY","TH","TJ","TM","TR","TT","TW","UA","UM","US","UY","UZ","VA","VE","VI","VN","WS","XK","YE","ZA","ZW","ONE_DAY","YYYY_MM_DD_REGEX","FIRST_SUNDAY","Date","DateUtil","date","value","parsed","test","parseLocalDate","parse","isNaN","format","formatString","locale","formats","neo","formatFunction","options","weekday","day","month","year","timeZone","timeZoneName","Intl","DateTimeFormat","parts","split","map","Number","parseISO","toISO","adapter","toJsDate","getFullYear","getMonth","getDate","getWeekArray","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","firstDayWeekIndex","getDay","slice","toUpperCase","lastDayWeekIndex","i","adjacentDay","setDate","push","length","startOfDay","startOfYear","endOfDay","endOfYear","getYear","getNextMonth","getWeekdays","sundayIndex","Array","keys","getMeridians","amDate","setHours","pmDate","formatter","minute","hour","hour12","replace","trim","isAfter","comparing","getTime","isBefore","isEqual","isSameDay","isSameMonth","isValid","d","isWithinRange","range","addDays","amount","addMonths","setMonth","getDiff","unit","b","c","Math","floor","setYear","setFullYear","getHour","getHours","setHour","getMinute","getMinutes","setMinute","setMinutes"],"sources":["../../../src/util/date/built-in.ts"],"sourcesContent":["import type { DateAdapter, DateFormatOptions } from './types';\r\n\r\nconst FIRST_DAY_INDEX: Record<string, number> = {\r\n AD: 1,\r\n AE: 6,\r\n AF: 6,\r\n AG: 0,\r\n AI: 1,\r\n AL: 1,\r\n AM: 1,\r\n AN: 1,\r\n AR: 1,\r\n AS: 0,\r\n AT: 1,\r\n AU: 1,\r\n AX: 1,\r\n AZ: 1,\r\n BA: 1,\r\n BD: 0,\r\n BE: 1,\r\n BG: 1,\r\n BH: 6,\r\n BM: 1,\r\n BN: 1,\r\n BR: 0,\r\n BS: 0,\r\n BT: 0,\r\n BW: 0,\r\n BY: 1,\r\n BZ: 0,\r\n CA: 0,\r\n CH: 1,\r\n CL: 1,\r\n CM: 1,\r\n CN: 1,\r\n CO: 0,\r\n CR: 1,\r\n CY: 1,\r\n CZ: 1,\r\n DE: 1,\r\n DJ: 6,\r\n DK: 1,\r\n DM: 0,\r\n DO: 0,\r\n DZ: 6,\r\n EC: 1,\r\n EE: 1,\r\n EG: 6,\r\n ES: 1,\r\n ET: 0,\r\n FI: 1,\r\n FJ: 1,\r\n FO: 1,\r\n FR: 1,\r\n GB: 1,\r\n GE: 1,\r\n GF: 1,\r\n GP: 1,\r\n GR: 1,\r\n GT: 0,\r\n GU: 0,\r\n HK: 0,\r\n HN: 0,\r\n HR: 1,\r\n HU: 1,\r\n ID: 0,\r\n IE: 1,\r\n IL: 0,\r\n IN: 0,\r\n IQ: 6,\r\n IR: 6,\r\n IS: 1,\r\n IT: 1,\r\n JM: 0,\r\n JO: 6,\r\n JP: 0,\r\n KE: 0,\r\n KG: 1,\r\n KH: 0,\r\n KR: 0,\r\n KW: 6,\r\n KZ: 1,\r\n LA: 0,\r\n LB: 1,\r\n LI: 1,\r\n LK: 1,\r\n LT: 1,\r\n LU: 1,\r\n LV: 1,\r\n LY: 6,\r\n MC: 1,\r\n MD: 1,\r\n ME: 1,\r\n MH: 0,\r\n MK: 1,\r\n MM: 0,\r\n MN: 1,\r\n MO: 0,\r\n MQ: 1,\r\n MT: 0,\r\n MV: 5,\r\n MX: 0,\r\n MY: 1,\r\n MZ: 0,\r\n NI: 0,\r\n NL: 1,\r\n NO: 1,\r\n NP: 0,\r\n NZ: 1,\r\n OM: 6,\r\n PA: 0,\r\n PE: 0,\r\n PH: 0,\r\n PK: 0,\r\n PL: 1,\r\n PR: 0,\r\n PT: 0,\r\n PY: 0,\r\n QA: 6,\r\n RE: 1,\r\n RO: 1,\r\n RS: 1,\r\n RU: 1,\r\n SA: 0,\r\n SD: 6,\r\n SE: 1,\r\n SG: 0,\r\n SI: 1,\r\n SK: 1,\r\n SM: 1,\r\n SV: 0,\r\n SY: 6,\r\n TH: 0,\r\n TJ: 1,\r\n TM: 1,\r\n TR: 1,\r\n TT: 0,\r\n TW: 0,\r\n UA: 1,\r\n UM: 0,\r\n US: 0,\r\n UY: 1,\r\n UZ: 1,\r\n VA: 1,\r\n VE: 0,\r\n VI: 0,\r\n VN: 1,\r\n WS: 0,\r\n XK: 1,\r\n YE: 0,\r\n ZA: 0,\r\n ZW: 0,\r\n};\r\n\r\nexport const ONE_DAY = 1000 * 60 * 60 * 24;\r\nexport const YYYY_MM_DD_REGEX =\r\n /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/;\r\nexport const FIRST_SUNDAY = new Date(1970, 0, 4);\r\n\r\n// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>\r\nexport class DateUtil {\r\n static date(value?: any): Date | null {\r\n if (value == null) return new Date();\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n let parsed: number;\r\n if (typeof value === 'string') {\r\n if (YYYY_MM_DD_REGEX.test(value)) {\r\n return DateUtil.parseLocalDate(value);\r\n } else {\r\n parsed = Date.parse(value);\r\n }\r\n\r\n if (!isNaN(parsed)) {\r\n return new Date(parsed);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static format(\r\n value: Date,\r\n formatString: string,\r\n locale: string,\r\n formats?: Record<string, DateFormatOptions>,\r\n ): string {\r\n const neo = DateUtil.date(value) ?? new Date();\r\n const formatFunction = formats?.[formatString];\r\n\r\n if (typeof formatFunction === 'function') {\r\n return formatFunction(neo, formatString, locale);\r\n }\r\n\r\n let options: Intl.DateTimeFormatOptions = {};\r\n switch (formatString) {\r\n case 'fullDateWithWeekday':\r\n options = {\r\n weekday: 'long',\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n };\r\n break;\r\n case 'normalDateWithWeekday':\r\n options = { weekday: 'short', day: 'numeric', month: 'short' };\r\n break;\r\n case 'keyboardDate':\r\n options = { day: '2-digit', month: '2-digit', year: 'numeric' };\r\n break;\r\n case 'monthAndDate':\r\n options = { month: 'long', day: 'numeric' };\r\n break;\r\n case 'monthAndYear':\r\n options = { month: 'long', year: 'numeric' };\r\n break;\r\n case 'year':\r\n options = { year: 'numeric' };\r\n break;\r\n case 'month':\r\n options = { month: 'long' };\r\n break;\r\n case 'monthShort':\r\n options = { month: 'short' };\r\n break;\r\n case 'dayOfMonth':\r\n options = { day: 'numeric' };\r\n break;\r\n case 'shortDate':\r\n options = { year: '2-digit', month: 'numeric', day: 'numeric' };\r\n break;\r\n default:\r\n options = formatFunction ?? { timeZone: 'UTC', timeZoneName: 'short' };\r\n }\r\n\r\n return new Intl.DateTimeFormat(locale, options).format(neo);\r\n }\r\n\r\n static parseLocalDate(value: string) {\r\n const parts = value.split('-').map(Number);\r\n return new Date(parts[0], parts[1] - 1, parts[2]);\r\n }\r\n\r\n static parseISO(value: string): Date {\r\n const [year, month, day] = value.split('-').map(Number);\r\n return new Date(year, month - 1, day);\r\n }\r\n\r\n static toISO(adapter: DateAdapter<any>, value: Date): string {\r\n const date = adapter.toJsDate(value);\r\n const year = date.getFullYear();\r\n const month =\r\n date.getMonth() + 1 < 10\r\n ? `0${date.getMonth() + 1}`\r\n : `${date.getMonth() + 1}`;\r\n const day =\r\n date.getDate() < 10 ? `0${date.getDate()}` : `${date.getDate()}`;\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n static getWeekArray(date: Date, locale: string) {\r\n const weeks = [];\r\n let currentWeek = [];\r\n const firstDayOfMonth = DateUtil.startOfMonth(date);\r\n const lastDayOfMonth = DateUtil.endOfMonth(date);\r\n const firstDayWeekIndex =\r\n (firstDayOfMonth.getDay() -\r\n FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] +\r\n 7) %\r\n 7;\r\n const lastDayWeekIndex =\r\n (lastDayOfMonth.getDay() -\r\n FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] +\r\n 7) %\r\n 7;\r\n // prev month\r\n for (let i = 0; i < firstDayWeekIndex; i++) {\r\n const adjacentDay = new Date(firstDayOfMonth);\r\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));\r\n currentWeek.push(adjacentDay);\r\n }\r\n // this month\r\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\r\n currentWeek.push(new Date(date.getFullYear(), date.getMonth(), i));\r\n // flush full week\r\n if (currentWeek.length === 7) {\r\n weeks.push(currentWeek);\r\n currentWeek = [];\r\n }\r\n }\r\n // next month\r\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\r\n const adjacentDay = new Date(lastDayOfMonth);\r\n adjacentDay.setDate(adjacentDay.getDate() + i);\r\n currentWeek.push(adjacentDay);\r\n }\r\n\r\n if (currentWeek.length > 0) {\r\n weeks.push(currentWeek);\r\n }\r\n\r\n return weeks;\r\n }\r\n\r\n static startOfMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n static endOfMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n }\r\n\r\n static startOfDay(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n\r\n static startOfYear(date: Date) {\r\n return new Date(date.getFullYear(), 0, 1);\r\n }\r\n\r\n static endOfDay(date: Date) {\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n 23,\r\n 59,\r\n 59,\r\n 999,\r\n );\r\n }\r\n\r\n static endOfYear(date: Date) {\r\n return new Date(date.getFullYear(), 11, 31);\r\n }\r\n\r\n static getYear(date: Date) {\r\n return date.getFullYear();\r\n }\r\n\r\n static getMonth(date: Date): number {\r\n return date.getMonth();\r\n }\r\n\r\n static getDay(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n static getNextMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 1);\r\n }\r\n\r\n static getWeekdays(locale: string) {\r\n const sundayIndex = FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] ?? 0;\r\n return [...Array(7).keys()].map((i) => {\r\n const weekday = new Date(FIRST_SUNDAY);\r\n weekday.setDate(FIRST_SUNDAY.getDate() + sundayIndex + i);\r\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(\r\n weekday,\r\n );\r\n });\r\n }\r\n\r\n static getMeridians(locale: string) {\r\n const amDate = new Date(FIRST_SUNDAY).setHours(11);\r\n const pmDate = new Date(FIRST_SUNDAY).setHours(13);\r\n const formatter = Intl.DateTimeFormat(locale, {\r\n minute: 'numeric',\r\n hour: 'numeric',\r\n hour12: true,\r\n });\r\n return [\r\n formatter\r\n .format(amDate)\r\n .replace(/\\d+:\\d+/, '')\r\n .trim(),\r\n formatter\r\n .format(pmDate)\r\n .replace(/\\d+:\\d+/, '')\r\n .trim(),\r\n ];\r\n }\r\n\r\n static isAfter(date: Date, comparing: Date): boolean {\r\n return date.getTime() > comparing.getTime();\r\n }\r\n\r\n static isBefore(date: Date, comparing: Date): boolean {\r\n return date.getTime() < comparing.getTime();\r\n }\r\n\r\n static isEqual(date: Date, comparing: Date): boolean {\r\n return date.getTime() === comparing.getTime();\r\n }\r\n\r\n static isSameDay(date: Date, comparing: Date): boolean {\r\n return (\r\n date.getDate() === comparing.getDate() &&\r\n date.getMonth() === comparing.getMonth() &&\r\n date.getFullYear() === comparing.getFullYear()\r\n );\r\n }\r\n\r\n static isSameMonth(date: Date, comparing: Date): boolean {\r\n return !!(\r\n date.getMonth() === comparing.getMonth() &&\r\n date.getFullYear() &&\r\n comparing.getFullYear()\r\n );\r\n }\r\n\r\n static isValid(date: any): boolean {\r\n const d = new Date(date);\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n\r\n static isWithinRange(date: Date, range: [Date, Date]): boolean {\r\n return (\r\n DateUtil.isAfter(date, range[0]) && DateUtil.isBefore(date, range[1])\r\n );\r\n }\r\n\r\n static addDays(date: Date, amount: number) {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + amount);\r\n return d;\r\n }\r\n\r\n static addMonths(date: Date, amount: number) {\r\n const d = new Date(date);\r\n d.setMonth(d.getMonth() + amount);\r\n return d;\r\n }\r\n\r\n static getDiff(\r\n date: Date,\r\n comparing: string | Date,\r\n unit?: 'month' | string,\r\n ): number {\r\n const b = new Date(date);\r\n const c = new Date(comparing);\r\n\r\n if (unit === 'month') {\r\n return (\r\n b.getMonth() - c.getMonth() + (b.getFullYear() - c.getFullYear()) * 12\r\n );\r\n }\r\n\r\n return Math.floor(b.getTime() - c.getTime()) / ONE_DAY;\r\n }\r\n\r\n static setMonth(date: Date, month: number) {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n }\r\n\r\n static setYear(date: Date, year: number) {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n }\r\n\r\n static getHour(date: Date): number {\r\n return date.getHours();\r\n }\r\n\r\n static setHour(date: Date, hour: number) {\r\n const d = new Date(date);\r\n d.setHours(hour);\r\n return d;\r\n }\r\n\r\n static getMinute(date: Date): number {\r\n return date.getMinutes();\r\n }\r\n\r\n static setMinute(date: Date, minute: number) {\r\n const d = new Date(date);\r\n d.setMinutes(minute);\r\n return d;\r\n }\r\n}\r\n"],"mappings":"AAEA,MAAMA,eAAuC,GAAG;EAC9CC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACL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","ignoreList":[]}
1
+ {"version":3,"file":"built-in.js","names":["FIRST_DAY_INDEX","AD","AE","AF","AG","AI","AL","AM","AN","AR","AS","AT","AU","AX","AZ","BA","BD","BE","BG","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CH","CL","CM","CN","CO","CR","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ES","ET","FI","FJ","FO","FR","GB","GE","GF","GP","GR","GT","GU","HK","HN","HR","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LI","LK","LT","LU","LV","LY","MC","MD","ME","MH","MK","MM","MN","MO","MQ","MT","MV","MX","MY","MZ","NI","NL","NO","NP","NZ","OM","PA","PE","PH","PK","PL","PR","PT","PY","QA","RE","RO","RS","RU","SA","SD","SE","SG","SI","SK","SM","SV","SY","TH","TJ","TM","TR","TT","TW","UA","UM","US","UY","UZ","VA","VE","VI","VN","WS","XK","YE","ZA","ZW","ONE_DAY","YYYY_MM_DD_REGEX","FIRST_SUNDAY","Date","DateUtil","date","value","parsed","test","parseLocalDate","parse","isNaN","format","formatString","locale","formats","neo","formatFunction","options","weekday","day","month","year","timeZone","timeZoneName","Intl","DateTimeFormat","parts","split","map","Number","parseISO","toISO","adapter","toJsDate","getFullYear","getMonth","getDate","getWeekArray","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","firstDayWeekIndex","getDay","slice","toUpperCase","lastDayWeekIndex","i","adjacentDay","setDate","push","length","startOfDay","startOfYear","endOfDay","endOfYear","getYear","getNextMonth","getWeekdays","firstDayIndex","indexOffset","Array","keys","getMeridians","amDate","setHours","pmDate","formatter","minute","hour","hour12","replace","trim","isAfter","comparing","getTime","isBefore","isEqual","isSameDay","isSameMonth","isValid","d","isWithinRange","range","addDays","amount","addMonths","setMonth","getDiff","unit","b","c","Math","floor","setYear","setFullYear","getHour","getHours","setHour","getMinute","getMinutes","setMinute","setMinutes","parseTime","input","timeStr","String","pm","includesPm","hours","minutes","parseInt","first4","toLowerCase","includes","meridians"],"sources":["../../../src/util/date/built-in.ts"],"sourcesContent":["import type { DateAdapter, DateFormatOptions } from './types';\r\n\r\nconst FIRST_DAY_INDEX: Record<string, number> = {\r\n AD: 1,\r\n AE: 6,\r\n AF: 6,\r\n AG: 0,\r\n AI: 1,\r\n AL: 1,\r\n AM: 1,\r\n AN: 1,\r\n AR: 1,\r\n AS: 0,\r\n AT: 1,\r\n AU: 1,\r\n AX: 1,\r\n AZ: 1,\r\n BA: 1,\r\n BD: 0,\r\n BE: 1,\r\n BG: 1,\r\n BH: 6,\r\n BM: 1,\r\n BN: 1,\r\n BR: 0,\r\n BS: 0,\r\n BT: 0,\r\n BW: 0,\r\n BY: 1,\r\n BZ: 0,\r\n CA: 0,\r\n CH: 1,\r\n CL: 1,\r\n CM: 1,\r\n CN: 1,\r\n CO: 0,\r\n CR: 1,\r\n CY: 1,\r\n CZ: 1,\r\n DE: 1,\r\n DJ: 6,\r\n DK: 1,\r\n DM: 0,\r\n DO: 0,\r\n DZ: 6,\r\n EC: 1,\r\n EE: 1,\r\n EG: 6,\r\n ES: 1,\r\n ET: 0,\r\n FI: 1,\r\n FJ: 1,\r\n FO: 1,\r\n FR: 1,\r\n GB: 1,\r\n GE: 1,\r\n GF: 1,\r\n GP: 1,\r\n GR: 1,\r\n GT: 0,\r\n GU: 0,\r\n HK: 0,\r\n HN: 0,\r\n HR: 1,\r\n HU: 1,\r\n ID: 0,\r\n IE: 1,\r\n IL: 0,\r\n IN: 0,\r\n IQ: 6,\r\n IR: 6,\r\n IS: 1,\r\n IT: 1,\r\n JM: 0,\r\n JO: 6,\r\n JP: 0,\r\n KE: 0,\r\n KG: 1,\r\n KH: 0,\r\n KR: 0,\r\n KW: 6,\r\n KZ: 1,\r\n LA: 0,\r\n LB: 1,\r\n LI: 1,\r\n LK: 1,\r\n LT: 1,\r\n LU: 1,\r\n LV: 1,\r\n LY: 6,\r\n MC: 1,\r\n MD: 1,\r\n ME: 1,\r\n MH: 0,\r\n MK: 1,\r\n MM: 0,\r\n MN: 1,\r\n MO: 0,\r\n MQ: 1,\r\n MT: 0,\r\n MV: 5,\r\n MX: 0,\r\n MY: 1,\r\n MZ: 0,\r\n NI: 0,\r\n NL: 1,\r\n NO: 1,\r\n NP: 0,\r\n NZ: 1,\r\n OM: 6,\r\n PA: 0,\r\n PE: 0,\r\n PH: 0,\r\n PK: 0,\r\n PL: 1,\r\n PR: 0,\r\n PT: 0,\r\n PY: 0,\r\n QA: 6,\r\n RE: 1,\r\n RO: 1,\r\n RS: 1,\r\n RU: 1,\r\n SA: 0,\r\n SD: 6,\r\n SE: 1,\r\n SG: 0,\r\n SI: 1,\r\n SK: 1,\r\n SM: 1,\r\n SV: 0,\r\n SY: 6,\r\n TH: 0,\r\n TJ: 1,\r\n TM: 1,\r\n TR: 1,\r\n TT: 0,\r\n TW: 0,\r\n UA: 1,\r\n UM: 0,\r\n US: 0,\r\n UY: 1,\r\n UZ: 1,\r\n VA: 1,\r\n VE: 0,\r\n VI: 0,\r\n VN: 1,\r\n WS: 0,\r\n XK: 1,\r\n YE: 0,\r\n ZA: 0,\r\n ZW: 0,\r\n};\r\n\r\nexport const ONE_DAY = 1000 * 60 * 60 * 24;\r\nexport const YYYY_MM_DD_REGEX =\r\n /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/;\r\nexport const FIRST_SUNDAY = new Date(1970, 0, 4);\r\n\r\n// biome-ignore lint/complexity/noStaticOnlyClass: For adapter\r\nexport class DateUtil {\r\n static date(value?: any): Date | null {\r\n if (value == null) return new Date();\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n let parsed: number;\r\n if (typeof value === 'string') {\r\n if (YYYY_MM_DD_REGEX.test(value)) {\r\n return DateUtil.parseLocalDate(value);\r\n } else {\r\n parsed = Date.parse(value);\r\n }\r\n\r\n if (!isNaN(parsed)) {\r\n return new Date(parsed);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static format(\r\n value: Date,\r\n formatString: string,\r\n locale: string,\r\n formats?: Record<string, DateFormatOptions>,\r\n ): string {\r\n const neo = DateUtil.date(value) ?? new Date();\r\n const formatFunction = formats?.[formatString];\r\n\r\n if (typeof formatFunction === 'function') {\r\n return formatFunction(neo, formatString, locale);\r\n }\r\n\r\n let options: Intl.DateTimeFormatOptions = {};\r\n switch (formatString) {\r\n case 'fullDateWithWeekday':\r\n options = {\r\n weekday: 'long',\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n };\r\n break;\r\n case 'normalDateWithWeekday':\r\n options = { weekday: 'short', day: 'numeric', month: 'short' };\r\n break;\r\n case 'keyboardDate':\r\n options = { day: '2-digit', month: '2-digit', year: 'numeric' };\r\n break;\r\n case 'monthAndDate':\r\n options = { month: 'long', day: 'numeric' };\r\n break;\r\n case 'monthAndYear':\r\n options = { month: 'long', year: 'numeric' };\r\n break;\r\n case 'year':\r\n options = { year: 'numeric' };\r\n break;\r\n case 'month':\r\n options = { month: 'long' };\r\n break;\r\n case 'monthShort':\r\n options = { month: 'short' };\r\n break;\r\n case 'dayOfMonth':\r\n options = { day: 'numeric' };\r\n break;\r\n case 'shortDate':\r\n options = { year: '2-digit', month: 'numeric', day: 'numeric' };\r\n break;\r\n default:\r\n options = formatFunction ?? { timeZone: 'UTC', timeZoneName: 'short' };\r\n }\r\n\r\n return new Intl.DateTimeFormat(locale, options).format(neo);\r\n }\r\n\r\n static parseLocalDate(value: string) {\r\n const parts = value.split('-').map(Number);\r\n return new Date(parts[0], parts[1] - 1, parts[2]);\r\n }\r\n\r\n static parseISO(value: string): Date {\r\n const [year, month, day] = value.split('-').map(Number);\r\n return new Date(year, month - 1, day);\r\n }\r\n\r\n static toISO(adapter: DateAdapter<any>, value: Date): string {\r\n const date = adapter.toJsDate(value);\r\n const year = date.getFullYear();\r\n const month =\r\n date.getMonth() + 1 < 10\r\n ? `0${date.getMonth() + 1}`\r\n : `${date.getMonth() + 1}`;\r\n const day =\r\n date.getDate() < 10 ? `0${date.getDate()}` : `${date.getDate()}`;\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n static getWeekArray(date: Date, locale: string) {\r\n const weeks = [];\r\n let currentWeek = [];\r\n const firstDayOfMonth = DateUtil.startOfMonth(date);\r\n const lastDayOfMonth = DateUtil.endOfMonth(date);\r\n const firstDayWeekIndex =\r\n (firstDayOfMonth.getDay() -\r\n FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] +\r\n 7) %\r\n 7;\r\n const lastDayWeekIndex =\r\n (lastDayOfMonth.getDay() -\r\n FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] +\r\n 7) %\r\n 7;\r\n // prev month\r\n for (let i = 0; i < firstDayWeekIndex; i++) {\r\n const adjacentDay = new Date(firstDayOfMonth);\r\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));\r\n currentWeek.push(adjacentDay);\r\n }\r\n // this month\r\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\r\n currentWeek.push(new Date(date.getFullYear(), date.getMonth(), i));\r\n // flush full week\r\n if (currentWeek.length === 7) {\r\n weeks.push(currentWeek);\r\n currentWeek = [];\r\n }\r\n }\r\n // next month\r\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\r\n const adjacentDay = new Date(lastDayOfMonth);\r\n adjacentDay.setDate(adjacentDay.getDate() + i);\r\n currentWeek.push(adjacentDay);\r\n }\r\n\r\n if (currentWeek.length > 0) {\r\n weeks.push(currentWeek);\r\n }\r\n\r\n return weeks;\r\n }\r\n\r\n static startOfMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n static endOfMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n }\r\n\r\n static startOfDay(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n\r\n static startOfYear(date: Date) {\r\n return new Date(date.getFullYear(), 0, 1);\r\n }\r\n\r\n static endOfDay(date: Date) {\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n 23,\r\n 59,\r\n 59,\r\n 999,\r\n );\r\n }\r\n\r\n static endOfYear(date: Date) {\r\n return new Date(date.getFullYear(), 11, 31);\r\n }\r\n\r\n static getYear(date: Date) {\r\n return date.getFullYear();\r\n }\r\n\r\n static getMonth(date: Date): number {\r\n return date.getMonth();\r\n }\r\n\r\n static getDay(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n static getNextMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 1);\r\n }\r\n\r\n static getWeekdays(locale: string, firstDayIndex?: number) {\r\n let indexOffset = FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] ?? 0;\r\n if (typeof firstDayIndex !== 'undefined' && firstDayIndex >= 0 && firstDayIndex < 7) {\r\n indexOffset = firstDayIndex;\r\n }\r\n return [...Array(7).keys()].map((i) => {\r\n const weekday = new Date(FIRST_SUNDAY);\r\n weekday.setDate(FIRST_SUNDAY.getDate() + indexOffset + i);\r\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(\r\n weekday,\r\n );\r\n });\r\n }\r\n\r\n static getMeridians(locale: string) {\r\n const amDate = new Date(FIRST_SUNDAY).setHours(11);\r\n const pmDate = new Date(FIRST_SUNDAY).setHours(13);\r\n const formatter = Intl.DateTimeFormat(locale, {\r\n minute: 'numeric',\r\n hour: 'numeric',\r\n hour12: true,\r\n });\r\n return [\r\n formatter\r\n .format(amDate)\r\n .replace(/\\d+:\\d+/, '')\r\n .trim(),\r\n formatter\r\n .format(pmDate)\r\n .replace(/\\d+:\\d+/, '')\r\n .trim(),\r\n ];\r\n }\r\n\r\n static isAfter(date: Date, comparing: Date): boolean {\r\n return date.getTime() > comparing.getTime();\r\n }\r\n\r\n static isBefore(date: Date, comparing: Date): boolean {\r\n return date.getTime() < comparing.getTime();\r\n }\r\n\r\n static isEqual(date: Date, comparing: Date): boolean {\r\n return date.getTime() === comparing.getTime();\r\n }\r\n\r\n static isSameDay(date: Date, comparing: Date): boolean {\r\n return (\r\n date.getDate() === comparing.getDate() &&\r\n date.getMonth() === comparing.getMonth() &&\r\n date.getFullYear() === comparing.getFullYear()\r\n );\r\n }\r\n\r\n static isSameMonth(date: Date, comparing: Date): boolean {\r\n return !!(\r\n date.getMonth() === comparing.getMonth() &&\r\n date.getFullYear() &&\r\n comparing.getFullYear()\r\n );\r\n }\r\n\r\n static isValid(date: any): boolean {\r\n const d = new Date(date);\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n\r\n static isWithinRange(date: Date, range: [Date, Date]): boolean {\r\n return (\r\n DateUtil.isAfter(date, range[0]) && DateUtil.isBefore(date, range[1])\r\n );\r\n }\r\n\r\n static addDays(date: Date, amount: number) {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + amount);\r\n return d;\r\n }\r\n\r\n static addMonths(date: Date, amount: number) {\r\n const d = new Date(date);\r\n d.setMonth(d.getMonth() + amount);\r\n return d;\r\n }\r\n\r\n static getDiff(\r\n date: Date,\r\n comparing: string | Date,\r\n unit?: 'month' | string,\r\n ): number {\r\n const b = new Date(date);\r\n const c = new Date(comparing);\r\n\r\n if (unit === 'month') {\r\n return (\r\n b.getMonth() - c.getMonth() + (b.getFullYear() - c.getFullYear()) * 12\r\n );\r\n }\r\n\r\n return Math.floor(b.getTime() - c.getTime()) / ONE_DAY;\r\n }\r\n\r\n static setMonth(date: Date, month: number) {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n }\r\n\r\n static setYear(date: Date, year: number) {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n }\r\n\r\n static getHour(date: Date): number {\r\n return date.getHours();\r\n }\r\n\r\n static setHour(date: Date, hour: number) {\r\n const d = new Date(date);\r\n d.setHours(hour);\r\n return d;\r\n }\r\n\r\n static getMinute(date: Date): number {\r\n return date.getMinutes();\r\n }\r\n\r\n static setMinute(date: Date, minute: number) {\r\n const d = new Date(date);\r\n d.setMinutes(minute);\r\n return d;\r\n }\r\n\r\n /**\r\n * Parse time string to { hours (24 hours), minutes }.\r\n *\r\n * @param locale\r\n * @param input\r\n */\r\n static parseTime(locale: string, input: string) {\r\n const timeStr = String(input).replace(/\\D/g, '');\r\n if (!timeStr) {\r\n return null;\r\n }\r\n\r\n const length = timeStr.length;\r\n const pm = DateUtil.includesPm(locale, input);\r\n let hours: number;\r\n let minutes: number;\r\n\r\n if (length === 1 || length === 2) {\r\n hours = parseInt(timeStr, 10);\r\n minutes = 0;\r\n } else if (length === 3) {\r\n hours = parseInt(timeStr[0], 10);\r\n minutes = parseInt(timeStr.slice(1), 10);\r\n } else {\r\n const first4 = timeStr.slice(0, 4);\r\n hours = parseInt(first4.slice(0, 2), 10);\r\n minutes = parseInt(first4.slice(2), 10);\r\n }\r\n\r\n if (hours < 12 && pm) {\r\n hours += 12;\r\n }\r\n\r\n if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) {\r\n return null;\r\n }\r\n\r\n return { hours, minutes };\r\n }\r\n\r\n /**\r\n * Check if the input is an afternoon time.\r\n * Before, check if the locale supports Meridian.\r\n *\r\n * @param locale\r\n * @param input\r\n */\r\n static includesPm(locale: string, input: string) {\r\n if (input.trim().toLowerCase().includes('pm')) return true;\r\n const meridians = DateUtil.getMeridians(locale);\r\n return !!meridians[1] && input.trim().includes(meridians[1]);\r\n }\r\n}\r\n"],"mappings":"AAEA,MAAMA,eAAuC,GAAG;EAC9CC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACL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","ignoreList":[]}
@@ -1,4 +1,7 @@
1
1
  export { YuyeonDateAdapter } from "./adapters/yuyeon-date-adapter.js";
2
2
  export * from "./built-in.js";
3
3
  export function createDateAdapter() {}
4
+ export function validateDate(date) {
5
+ return date instanceof Date && !Number.isNaN(date?.getTime());
6
+ }
4
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["YuyeonDateAdapter","createDateAdapter"],"sources":["../../../src/util/date/index.ts"],"sourcesContent":["export { YuyeonDateAdapter } from './adapters/yuyeon-date-adapter';\r\nexport * from './built-in';\r\n\r\nexport function createDateAdapter() {}\r\n"],"mappings":"SAASA,iBAAiB;AAAA;AAG1B,OAAO,SAASC,iBAAiBA,CAAA,EAAG,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["YuyeonDateAdapter","createDateAdapter","validateDate","date","Date","Number","isNaN","getTime"],"sources":["../../../src/util/date/index.ts"],"sourcesContent":["export { YuyeonDateAdapter } from './adapters/yuyeon-date-adapter';\r\nexport * from './built-in';\r\n\r\nexport function createDateAdapter() {}\r\n\r\nexport function validateDate(date: Date) {\r\n return date instanceof Date && !Number.isNaN(date?.getTime());\r\n}\r\n"],"mappings":"SAASA,iBAAiB;AAAA;AAG1B,OAAO,SAASC,iBAAiBA,CAAA,EAAG,CAAC;AAErC,OAAO,SAASC,YAAYA,CAACC,IAAU,EAAE;EACvC,OAAOA,IAAI,YAAYC,IAAI,IAAI,CAACC,MAAM,CAACC,KAAK,CAACH,IAAI,EAAEI,OAAO,CAAC,CAAC,CAAC;AAC/D","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/util/date/types.ts"],"sourcesContent":["export interface DateAdapter<T = unknown> {\r\n /**\r\n *\r\n * @param value\r\n */\r\n date(value?: any): T | null;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param formatString\r\n */\r\n format(date: T, formatString: string): string;\r\n\r\n /**\r\n *\r\n * @param value\r\n */\r\n toJsDate(value: T): Date;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n parseISO(date: string): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n toISO(date: T): string;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfDay(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfDay(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfMonth(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfMonth(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfYear(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfYear(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isBefore(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isAfter(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isEqual(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isSameDay(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isSameMonth(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n isValid(date: any): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param range\r\n */\r\n isWithinRange(date: T, range: [T, T]): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param amount\r\n */\r\n addDays(date: T, amount: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param amount\r\n */\r\n addMonths(date: T, amount: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n getYear(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param year\r\n */\r\n setYear(date: T, year: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n * @param unit\r\n */\r\n getDiff(date: T, comparing: T | string, unit?: string): number;\r\n\r\n /**\r\n *\r\n *\r\n * @param date\r\n */\r\n getWeekArray(date: T): T[][];\r\n\r\n /**\r\n *\r\n */\r\n getWeekdays(): string[];\r\n\r\n /**\r\n * 0 ~ 11\r\n * @param date\r\n */\r\n getMonth(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param month\r\n */\r\n setMonth(date: T, month: number): T;\r\n\r\n /**\r\n *\r\n * get day (1-31) number\r\n *\r\n * @param date\r\n */\r\n getDay(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n getNextMonth(date: T): T;\r\n\r\n getHour(date: T): number;\r\n\r\n setHour(date: T, hour: number): T;\r\n\r\n getMinute(date: T): number;\r\n\r\n setMinute(date: T, minute: number): T;\r\n}\r\n\r\nexport type DateFormatOptions =\r\n | Intl.DateTimeFormatOptions\r\n | ((date: Date, formatString: string, locale: string) => string);\r\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/util/date/types.ts"],"sourcesContent":["export interface DateAdapter<T = unknown> {\r\n /**\r\n *\r\n * @param value\r\n */\r\n date(value?: any): T | null;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param formatString\r\n */\r\n format(date: T, formatString: string): string;\r\n\r\n /**\r\n *\r\n * @param value\r\n */\r\n toJsDate(value: T): Date;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n parseISO(date: string): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n toISO(date: T): string;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfDay(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfDay(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfMonth(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfMonth(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfYear(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfYear(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isBefore(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isAfter(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isEqual(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isSameDay(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isSameMonth(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n isValid(date: any): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param range\r\n */\r\n isWithinRange(date: T, range: [T, T]): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param amount\r\n */\r\n addDays(date: T, amount: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param amount\r\n */\r\n addMonths(date: T, amount: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n getYear(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param year\r\n */\r\n setYear(date: T, year: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n * @param unit\r\n */\r\n getDiff(date: T, comparing: T | string, unit?: string): number;\r\n\r\n /**\r\n *\r\n *\r\n * @param date\r\n */\r\n getWeekArray(date: T): T[][];\r\n\r\n /**\r\n *\r\n */\r\n getWeekdays(firstDayIndex?: number): string[];\r\n\r\n /**\r\n * 0 ~ 11\r\n * @param date\r\n */\r\n getMonth(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param month\r\n */\r\n setMonth(date: T, month: number): T;\r\n\r\n /**\r\n *\r\n * get day (1-31) number\r\n *\r\n * @param date\r\n */\r\n getDay(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n getNextMonth(date: T): T;\r\n\r\n getHour(date: T): number;\r\n\r\n setHour(date: T, hour: number): T;\r\n\r\n getMinute(date: T): number;\r\n\r\n setMinute(date: T, minute: number): T;\r\n\r\n parseTime(time: string): {hours: number, minutes: number} | null;\r\n}\r\n\r\nexport type DateFormatOptions =\r\n | Intl.DateTimeFormatOptions\r\n | ((date: Date, formatString: string, locale: string) => string);\r\n"],"mappings":"","ignoreList":[]}