yuyeon 0.0.40 → 0.0.42-rc1

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 (108) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +4969 -3111
  3. package/dist/yuyeon.umd.cjs +8 -4
  4. package/lib/components/button/YButton.scss +2 -1
  5. package/lib/components/date-picker/YDateCalendar.mjs +242 -0
  6. package/lib/components/date-picker/YDateCalendar.mjs.map +1 -0
  7. package/lib/components/date-picker/YDateCalendar.scss +82 -0
  8. package/lib/components/date-picker/YDatePicker.mjs +12 -0
  9. package/lib/components/date-picker/YDatePicker.mjs.map +1 -0
  10. package/lib/components/date-picker/YDatePickerControl.mjs +29 -0
  11. package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -0
  12. package/lib/components/date-picker/YDatePickerControl.scss +3 -0
  13. package/lib/components/date-picker/index.mjs +2 -0
  14. package/lib/components/date-picker/index.mjs.map +1 -0
  15. package/lib/components/default-provider/YDefaultProvider.mjs +2 -0
  16. package/lib/components/default-provider/YDefaultProvider.mjs.map +1 -0
  17. package/lib/components/default-provider/index.mjs +2 -0
  18. package/lib/components/default-provider/index.mjs.map +1 -0
  19. package/lib/components/index.mjs +2 -0
  20. package/lib/components/index.mjs.map +1 -1
  21. package/lib/components/layer/YLayer.mjs +1 -1
  22. package/lib/components/layer/YLayer.mjs.map +1 -1
  23. package/lib/components/list/YList.mjs +6 -5
  24. package/lib/components/list/YList.mjs.map +1 -1
  25. package/lib/components/menu/YMenu.mjs +6 -4
  26. package/lib/components/menu/YMenu.mjs.map +1 -1
  27. package/lib/components/select/YSelect.mjs +25 -4
  28. package/lib/components/select/YSelect.mjs.map +1 -1
  29. package/lib/components/table/composibles/pagination.mjs.map +1 -1
  30. package/lib/components/tooltip/YTooltip.mjs +2 -2
  31. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  32. package/lib/components/tree-view/YTreeView.mjs +5 -0
  33. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  34. package/lib/components/tree-view/YTreeViewNode.mjs +1 -0
  35. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  36. package/lib/composables/communication.mjs +9 -0
  37. package/lib/composables/communication.mjs.map +1 -1
  38. package/lib/composables/date/factory.mjs +12 -0
  39. package/lib/composables/date/factory.mjs.map +1 -0
  40. package/lib/composables/date/index.mjs +19 -1
  41. package/lib/composables/date/index.mjs.map +1 -1
  42. package/lib/composables/date/setting.mjs +11 -0
  43. package/lib/composables/date/setting.mjs.map +1 -0
  44. package/lib/composables/date/types.mjs +1 -1
  45. package/lib/composables/date/types.mjs.map +1 -1
  46. package/lib/composables/i18n/index.mjs +30 -0
  47. package/lib/composables/i18n/index.mjs.map +1 -0
  48. package/lib/composables/i18n/locale.mjs +5 -0
  49. package/lib/composables/i18n/locale.mjs.map +1 -0
  50. package/lib/composables/i18n/rtl.mjs +34 -0
  51. package/lib/composables/i18n/rtl.mjs.map +1 -0
  52. package/lib/composables/i18n/share.mjs +2 -0
  53. package/lib/composables/i18n/share.mjs.map +1 -0
  54. package/lib/composables/index.mjs +1 -0
  55. package/lib/composables/index.mjs.map +1 -1
  56. package/lib/composables/transition.mjs.map +1 -1
  57. package/lib/i18n/built-in.mjs +77 -0
  58. package/lib/i18n/built-in.mjs.map +1 -0
  59. package/lib/i18n/config.mjs +82 -0
  60. package/lib/i18n/config.mjs.map +1 -0
  61. package/lib/i18n/types.mjs +2 -0
  62. package/lib/i18n/types.mjs.map +1 -0
  63. package/lib/index.mjs +21 -5
  64. package/lib/index.mjs.map +1 -1
  65. package/lib/locales/en.mjs +4 -0
  66. package/lib/locales/en.mjs.map +1 -0
  67. package/lib/locales/index.mjs +3 -0
  68. package/lib/locales/index.mjs.map +1 -0
  69. package/lib/locales/ko.mjs +4 -0
  70. package/lib/locales/ko.mjs.map +1 -0
  71. package/lib/styles/util/_mixin.scss +34 -0
  72. package/lib/util/date/adapters/yuyeon-date-adapter.mjs +99 -0
  73. package/lib/util/date/adapters/yuyeon-date-adapter.mjs.map +1 -0
  74. package/lib/util/date/built-in.mjs +175 -82
  75. package/lib/util/date/built-in.mjs.map +1 -1
  76. package/lib/util/date/index.mjs +1 -0
  77. package/lib/util/date/index.mjs.map +1 -1
  78. package/lib/util/date/types.mjs.map +1 -1
  79. package/lib/util/index.mjs +1 -0
  80. package/lib/util/index.mjs.map +1 -1
  81. package/package.json +6 -4
  82. package/types/components/date-picker/YDateCalendar.d.ts +136 -0
  83. package/types/components/date-picker/index.d.ts +1 -0
  84. package/types/components/index.d.ts +2 -0
  85. package/types/components/menu/YMenu.d.ts +1 -1
  86. package/types/components/select/YSelect.d.ts +3918 -0
  87. package/types/components/tree-view/YTreeView.d.ts +3 -0
  88. package/types/components/tree-view/YTreeViewNode.d.ts +8 -0
  89. package/types/composables/communication.d.ts +2 -0
  90. package/types/composables/date/factory.d.ts +2 -0
  91. package/types/composables/date/index.d.ts +11 -0
  92. package/types/composables/date/setting.d.ts +4 -0
  93. package/types/composables/date/types.d.ts +12 -0
  94. package/types/composables/i18n/index.d.ts +8 -0
  95. package/types/composables/i18n/locale.d.ts +2 -0
  96. package/types/composables/i18n/rtl.d.ts +20 -0
  97. package/types/composables/i18n/share.d.ts +1 -0
  98. package/types/composables/index.d.ts +2 -0
  99. package/types/i18n/built-in.d.ts +2 -0
  100. package/types/i18n/config.d.ts +81 -0
  101. package/types/i18n/types.d.ts +19 -0
  102. package/types/locales/en.d.ts +4 -0
  103. package/types/shims.d.ts +2 -0
  104. package/types/util/date/adapters/yuyeon-date-adapter.d.ts +38 -0
  105. package/types/util/date/built-in.d.ts +35 -0
  106. package/types/util/date/index.d.ts +3 -0
  107. package/types/util/date/types.d.ts +163 -0
  108. package/types/util/index.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeViewNode.mjs","names":["computed","defineComponent","h","inject","ref","pressItemsPropsOptions","useRender","getObjectValueByPath","propsFactory","YButton","YIconCheckbox","YIconExpand","YPlate","YTextHighlighter","YExpandVTransition","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeClass","Array","activeSingleModifier","activeColor","type","default","enableSelect","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","setup","_ref","slots","expose","treeView","expanded","active","selected","immediate","onClick","e","to","value","updateActive","myKey","emitActive","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","children","itemChildren","imLeaf","length","classes","styles","contentText","itemText","slotProps","searchLoading","leaves","filter","leaf","isExcluded","map","key","indentSpacer","i","push","class","style","variation","checked","leading","text","keyword","trailing","disabled","role","undefined","created","register"],"sources":["../../../src/components/tree-view/YTreeViewNode.ts"],"sourcesContent":["import {\n PropType,\n VNodeArrayChildren,\n computed,\n defineComponent,\n h,\n inject,\n ref,\n} from 'vue';\n\nimport { pressItemsPropsOptions } from '../../abstract/items';\nimport { useRender } from '../../composables/component';\nimport { getObjectValueByPath } from '../../util/common';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YIconCheckbox, YIconExpand } from '../icons';\nimport { YPlate } from '../plate';\nimport YTextHighlighter from '../text-highlighter/YTextHighlighter';\nimport { YExpandVTransition } from '../transitions';\n\nexport const pressYTreeViewNodeProps = propsFactory(\n {\n search: String,\n disableTransition: Boolean,\n enableActive: Boolean,\n activeClass: [String, Array],\n activeSingleModifier: String,\n activeColor: {\n type: String,\n default: 'primary',\n },\n enableSelect: Boolean,\n ...pressItemsPropsOptions({\n itemKey: 'id',\n }),\n },\n 'YTreeViewNode',\n);\n\nexport const YTreeViewNode = defineComponent({\n name: 'YTreeNode',\n components: {\n YButton,\n YIconExpand,\n YPlate,\n YIconCheckbox,\n },\n props: {\n item: {\n type: Object as PropType<any>,\n },\n level: {\n type: Number as PropType<number>,\n default: 0,\n },\n ...pressYTreeViewNodeProps(),\n },\n setup(props, { slots, expose }) {\n const treeView = inject<any>('tree-view');\n\n const expanded = ref(false);\n const active = ref(false);\n const selected = ref(false);\n const immediate = ref(false);\n\n function onClick(e: MouseEvent) {\n const to = !active.value;\n active.value = to;\n treeView.updateActive(myKey.value, to, e);\n treeView.emitActive();\n }\n\n function onClickExpand(e: MouseEvent) {\n e.stopPropagation();\n const to = !expanded.value;\n expanded.value = to;\n treeView.updateExpanded(myKey.value, to);\n treeView.emitExpanded();\n }\n\n function onClickSelect(e: MouseEvent) {\n e.stopPropagation();\n const to = !selected.value;\n selected.value = to;\n treeView.updateSelected(myKey.value, to);\n treeView.emitSelected();\n }\n\n const children = computed(() => {\n return props.item?.[props.itemChildren as string] ?? [];\n });\n\n const imLeaf = computed(() => children.value.length < 1);\n\n const classes = computed(() => {\n return {\n 'y-tree-view-node': true,\n 'y-tree-view-node--leaf': imLeaf.value,\n 'y-tree-view-node--expanded': expanded.value,\n 'y-tree-view-node--active': active.value,\n };\n });\n\n const styles = computed(() => {\n return {\n '--tree-view-node--level': props.level,\n };\n });\n\n const contentText = computed(() => {\n return getObjectValueByPath(props.item, props.itemText) ?? '';\n });\n\n const slotProps = computed(() => {\n return {\n level: props.level,\n imLeaf: imLeaf.value,\n };\n });\n\n const searchLoading = computed(() => {\n return treeView.searchLoading.value;\n });\n\n useRender(() => {\n const leaves = children.value\n .filter((leaf: any) => {\n return !treeView.isExcluded(\n getObjectValueByPath(leaf, props.itemKey),\n );\n })\n .map((item: any) => {\n return h(\n YTreeViewNode,\n {\n ...props,\n level: (props.level ?? 0) + 1,\n item,\n key: getObjectValueByPath(item, props.itemKey),\n },\n slots,\n );\n });\n const indentSpacer: VNodeArrayChildren = [];\n for (let i = 0; i < props.level; i += 1) {\n indentSpacer.push(\n h('div', { class: 'y-tree-view-node__indent-spacer' }),\n );\n }\n return h(\n 'div',\n {\n class: classes.value,\n style: styles.value,\n '.role': 'treeitem',\n 'data-level': props.level,\n },\n [\n h(\n 'div',\n {\n class: 'y-tree-view-node__container',\n onClick: (e: MouseEvent) =>\n props.enableActive ? onClick(e) : void 0,\n },\n [\n h(YPlate),\n h('div', { class: 'y-tree-view-node__indents' }, indentSpacer),\n /* EXPAND */\n !imLeaf.value && leaves.length > 0\n ? h(\n YButton,\n {\n class: 'y-tree-view-node__expand-icon',\n variation: 'icon',\n onClick: (e: MouseEvent) => onClickExpand(e),\n },\n () => [\n slots['expand-icon']\n ? slots['expand-icon']()\n : h(YIconExpand),\n ],\n )\n : h('i', { class: 'y-tree-view-node__no-expand-icon' }),\n props.enableSelect &&\n h(\n 'div',\n {\n class: ['y-tree-view-node__select'],\n onClick: (e: MouseEvent) => onClickSelect(e),\n },\n [h(YIconCheckbox, { checked: selected.value })],\n ),\n /* CONTENT */\n h('div', { class: 'y-tree-view-node__content' }, [\n slots.leading &&\n h(\n 'div',\n { class: 'y-tree-view-node__leading' },\n slots.leading(slotProps.value),\n ),\n h(\n 'div',\n { class: 'y-tree-view-node__text' },\n slots.default\n ? slots.default?.({\n text: contentText.value,\n item: props.item,\n ...slotProps.value,\n })\n : props.search && !searchLoading.value\n ? h(YTextHighlighter, {\n text: contentText.value,\n keyword: props.search,\n })\n : contentText.value,\n ),\n slots.trailing &&\n h(\n 'div',\n { class: 'y-tree-view-node__trailing' },\n slots.trailing(),\n ),\n ]),\n ],\n ),\n /* CHILDREN */\n children.value.length > 0\n ? h(\n YExpandVTransition,\n { disabled: props.disableTransition },\n expanded.value\n ? () =>\n h(\n 'div',\n {\n class: { 'y-tree-view-node__leaves': true },\n role: 'tree',\n },\n leaves,\n )\n : undefined,\n )\n : undefined,\n ],\n );\n });\n\n const myKey = computed(() => {\n return getObjectValueByPath(props.item, props.itemKey);\n });\n\n expose({\n myKey,\n expanded,\n active,\n selected,\n immediate,\n });\n\n return {\n treeView,\n myKey,\n expanded,\n active,\n selected,\n immediate,\n };\n },\n created() {\n this.treeView?.register?.(this.myKey, this);\n },\n});\n\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTreeViewNode.mjs","names":["computed","defineComponent","h","inject","ref","pressItemsPropsOptions","useRender","getObjectValueByPath","propsFactory","YButton","YIconCheckbox","YIconExpand","YPlate","YTextHighlighter","YExpandVTransition","pressYTreeViewNodeProps","search","String","disableTransition","Boolean","enableActive","activeClass","Array","activeSingleModifier","requiredActive","activeColor","type","default","enableSelect","itemKey","YTreeViewNode","name","components","props","item","Object","level","Number","setup","_ref","slots","expose","treeView","expanded","active","selected","immediate","onClick","e","to","value","updateActive","myKey","emitActive","onClickExpand","stopPropagation","updateExpanded","emitExpanded","onClickSelect","updateSelected","emitSelected","children","itemChildren","imLeaf","length","classes","styles","contentText","itemText","slotProps","searchLoading","leaves","filter","leaf","isExcluded","map","key","indentSpacer","i","push","class","style","variation","checked","leading","text","keyword","trailing","disabled","role","undefined","created","register"],"sources":["../../../src/components/tree-view/YTreeViewNode.ts"],"sourcesContent":["import {\n PropType,\n VNodeArrayChildren,\n computed,\n defineComponent,\n h,\n inject,\n ref,\n} from 'vue';\n\nimport { pressItemsPropsOptions } from '../../abstract/items';\nimport { useRender } from '../../composables/component';\nimport { getObjectValueByPath } from '../../util/common';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YIconCheckbox, YIconExpand } from '../icons';\nimport { YPlate } from '../plate';\nimport YTextHighlighter from '../text-highlighter/YTextHighlighter';\nimport { YExpandVTransition } from '../transitions';\n\nexport const pressYTreeViewNodeProps = propsFactory(\n {\n search: String,\n disableTransition: Boolean,\n enableActive: Boolean,\n activeClass: [String, Array],\n activeSingleModifier: String,\n requiredActive: Boolean,\n activeColor: {\n type: String,\n default: 'primary',\n },\n enableSelect: Boolean,\n ...pressItemsPropsOptions({\n itemKey: 'id',\n }),\n },\n 'YTreeViewNode',\n);\n\nexport const YTreeViewNode = defineComponent({\n name: 'YTreeNode',\n components: {\n YButton,\n YIconExpand,\n YPlate,\n YIconCheckbox,\n },\n props: {\n item: {\n type: Object as PropType<any>,\n },\n level: {\n type: Number as PropType<number>,\n default: 0,\n },\n ...pressYTreeViewNodeProps(),\n },\n setup(props, { slots, expose }) {\n const treeView = inject<any>('tree-view');\n\n const expanded = ref(false);\n const active = ref(false);\n const selected = ref(false);\n const immediate = ref(false);\n\n function onClick(e: MouseEvent) {\n const to = !active.value;\n active.value = to;\n treeView.updateActive(myKey.value, to, e);\n treeView.emitActive();\n }\n\n function onClickExpand(e: MouseEvent) {\n e.stopPropagation();\n const to = !expanded.value;\n expanded.value = to;\n treeView.updateExpanded(myKey.value, to);\n treeView.emitExpanded();\n }\n\n function onClickSelect(e: MouseEvent) {\n e.stopPropagation();\n const to = !selected.value;\n selected.value = to;\n treeView.updateSelected(myKey.value, to);\n treeView.emitSelected();\n }\n\n const children = computed(() => {\n return props.item?.[props.itemChildren as string] ?? [];\n });\n\n const imLeaf = computed(() => children.value.length < 1);\n\n const classes = computed(() => {\n return {\n 'y-tree-view-node': true,\n 'y-tree-view-node--leaf': imLeaf.value,\n 'y-tree-view-node--expanded': expanded.value,\n 'y-tree-view-node--active': active.value,\n };\n });\n\n const styles = computed(() => {\n return {\n '--tree-view-node--level': props.level,\n };\n });\n\n const contentText = computed(() => {\n return getObjectValueByPath(props.item, props.itemText) ?? '';\n });\n\n const slotProps = computed(() => {\n return {\n level: props.level,\n imLeaf: imLeaf.value,\n };\n });\n\n const searchLoading = computed(() => {\n return treeView.searchLoading.value;\n });\n\n useRender(() => {\n const leaves = children.value\n .filter((leaf: any) => {\n return !treeView.isExcluded(\n getObjectValueByPath(leaf, props.itemKey),\n );\n })\n .map((item: any) => {\n return h(\n YTreeViewNode,\n {\n ...props,\n level: (props.level ?? 0) + 1,\n item,\n key: getObjectValueByPath(item, props.itemKey),\n },\n slots,\n );\n });\n const indentSpacer: VNodeArrayChildren = [];\n for (let i = 0; i < props.level; i += 1) {\n indentSpacer.push(\n h('div', { class: 'y-tree-view-node__indent-spacer' }),\n );\n }\n return h(\n 'div',\n {\n class: classes.value,\n style: styles.value,\n '.role': 'treeitem',\n 'data-level': props.level,\n },\n [\n h(\n 'div',\n {\n class: 'y-tree-view-node__container',\n onClick: (e: MouseEvent) =>\n props.enableActive ? onClick(e) : void 0,\n },\n [\n h(YPlate),\n h('div', { class: 'y-tree-view-node__indents' }, indentSpacer),\n /* EXPAND */\n !imLeaf.value && leaves.length > 0\n ? h(\n YButton,\n {\n class: 'y-tree-view-node__expand-icon',\n variation: 'icon',\n onClick: (e: MouseEvent) => onClickExpand(e),\n },\n () => [\n slots['expand-icon']\n ? slots['expand-icon']()\n : h(YIconExpand),\n ],\n )\n : h('i', { class: 'y-tree-view-node__no-expand-icon' }),\n props.enableSelect &&\n h(\n 'div',\n {\n class: ['y-tree-view-node__select'],\n onClick: (e: MouseEvent) => onClickSelect(e),\n },\n [h(YIconCheckbox, { checked: selected.value })],\n ),\n /* CONTENT */\n h('div', { class: 'y-tree-view-node__content' }, [\n slots.leading &&\n h(\n 'div',\n { class: 'y-tree-view-node__leading' },\n slots.leading(slotProps.value),\n ),\n h(\n 'div',\n { class: 'y-tree-view-node__text' },\n slots.default\n ? slots.default?.({\n text: contentText.value,\n item: props.item,\n ...slotProps.value,\n })\n : props.search && !searchLoading.value\n ? h(YTextHighlighter, {\n text: contentText.value,\n keyword: props.search,\n })\n : contentText.value,\n ),\n slots.trailing &&\n h(\n 'div',\n { class: 'y-tree-view-node__trailing' },\n slots.trailing(),\n ),\n ]),\n ],\n ),\n /* CHILDREN */\n children.value.length > 0\n ? h(\n YExpandVTransition,\n { disabled: props.disableTransition },\n expanded.value\n ? () =>\n h(\n 'div',\n {\n class: { 'y-tree-view-node__leaves': true },\n role: 'tree',\n },\n leaves,\n )\n : undefined,\n )\n : undefined,\n ],\n );\n });\n\n const myKey = computed(() => {\n return getObjectValueByPath(props.item, props.itemKey);\n });\n\n expose({\n myKey,\n expanded,\n active,\n selected,\n immediate,\n });\n\n return {\n treeView,\n myKey,\n expanded,\n active,\n selected,\n immediate,\n };\n },\n created() {\n this.treeView?.register?.(this.myKey, this);\n },\n});\n\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\n"],"mappings":"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"}
@@ -43,4 +43,13 @@ export function useModelDuplex(props) {
43
43
  });
44
44
  return model;
45
45
  }
46
+ export function useProvided(props, prop, provided) {
47
+ const internal = useModelDuplex(props, prop, props[prop] ?? provided.value);
48
+ watch(provided, value => {
49
+ if (props[prop] == null) {
50
+ internal.value = value;
51
+ }
52
+ });
53
+ return internal;
54
+ }
46
55
  //# sourceMappingURL=communication.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"communication.mjs","names":["computed","getCurrentInstance","ref","toRaw","watch","hasOwnProperty","kebabToCamel","toKebabCase","useToggleScope","useModelDuplex","props","prop","arguments","length","undefined","defaultValue","getIn","v","setOut","vm","kebabProp","property","txValue","getProp","isDefinedProp","registeredProps","vnode","value","model","get","set","neo","current","emit","Object","defineProperty"],"sources":["../../src/composables/communication.ts"],"sourcesContent":["import { computed, getCurrentInstance, ref, toRaw, watch } from 'vue';\n\nimport { hasOwnProperty } from '../util/common';\nimport { kebabToCamel, toKebabCase } from '../util/string';\nimport { useToggleScope } from './scope';\n\nexport function useModelDuplex(\n props: any,\n prop: string = 'modelValue',\n defaultValue?: any,\n getIn: (value?: any) => any = (v: any) => v,\n setOut: (value: any) => any = (v: any) => v,\n) {\n const vm = getCurrentInstance()!;\n const kebabProp = toKebabCase(prop);\n const property = kebabProp === prop ? kebabToCamel(prop) : prop;\n const txValue = ref(\n props[property] !== undefined ? props[property] : defaultValue,\n );\n\n function getProp() {\n return props[property];\n }\n\n const isDefinedProp = computed(() => {\n getProp();\n const registeredProps = vm.vnode.props;\n return (\n (hasOwnProperty(registeredProps, kebabProp) ||\n hasOwnProperty(registeredProps, property)) &&\n (hasOwnProperty(registeredProps, `onUpdate:${kebabProp}`) ||\n hasOwnProperty(registeredProps, `onUpdate:${property}`))\n );\n });\n\n useToggleScope(\n () => !isDefinedProp.value,\n () => {\n watch(\n () => getProp(),\n (value) => {\n txValue.value = value;\n },\n );\n },\n );\n\n const model = computed({\n get(): any {\n return getIn(isDefinedProp.value ? getProp() : txValue.value);\n },\n set(value) {\n const neo = setOut(value);\n const current = toRaw(isDefinedProp.value ? getProp() : txValue.value);\n if (current === neo || getIn(current) === value) {\n return;\n }\n txValue.value = neo;\n vm?.emit(`update:${property}`, neo);\n },\n });\n\n Object.defineProperty(model, 'rxValue', {\n get: () => (isDefinedProp.value ? getProp() : txValue.value),\n });\n\n return model;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"communication.mjs","names":["computed","getCurrentInstance","ref","toRaw","watch","hasOwnProperty","kebabToCamel","toKebabCase","useToggleScope","useModelDuplex","props","prop","arguments","length","undefined","defaultValue","getIn","v","setOut","vm","kebabProp","property","txValue","getProp","isDefinedProp","registeredProps","vnode","value","model","get","set","neo","current","emit","Object","defineProperty","useProvided","provided","internal"],"sources":["../../src/composables/communication.ts"],"sourcesContent":["import { computed, getCurrentInstance, ref, toRaw, watch } from 'vue';\r\nimport type { Ref } from 'vue';\r\n\r\nimport { hasOwnProperty } from '../util/common';\r\nimport { kebabToCamel, toKebabCase } from '../util/string';\r\nimport { useToggleScope } from './scope';\r\n\r\nexport function useModelDuplex(\r\n props: any,\r\n prop: string = 'modelValue',\r\n defaultValue?: any,\r\n getIn: (value?: any) => any = (v: any) => v,\r\n setOut: (value: any) => any = (v: any) => v,\r\n) {\r\n const vm = getCurrentInstance()!;\r\n const kebabProp = toKebabCase(prop);\r\n const property = kebabProp === prop ? kebabToCamel(prop) : prop;\r\n const txValue = ref(\r\n props[property] !== undefined ? props[property] : defaultValue,\r\n );\r\n\r\n function getProp() {\r\n return props[property];\r\n }\r\n\r\n const isDefinedProp = computed(() => {\r\n getProp();\r\n const registeredProps = vm.vnode.props;\r\n return (\r\n (hasOwnProperty(registeredProps, kebabProp) ||\r\n hasOwnProperty(registeredProps, property)) &&\r\n (hasOwnProperty(registeredProps, `onUpdate:${kebabProp}`) ||\r\n hasOwnProperty(registeredProps, `onUpdate:${property}`))\r\n );\r\n });\r\n\r\n useToggleScope(\r\n () => !isDefinedProp.value,\r\n () => {\r\n watch(\r\n () => getProp(),\r\n (value) => {\r\n txValue.value = value;\r\n },\r\n );\r\n },\r\n );\r\n\r\n const model = computed({\r\n get(): any {\r\n return getIn(isDefinedProp.value ? getProp() : txValue.value);\r\n },\r\n set(value) {\r\n const neo = setOut(value);\r\n const current = toRaw(isDefinedProp.value ? getProp() : txValue.value);\r\n if (current === neo || getIn(current) === value) {\r\n return;\r\n }\r\n txValue.value = neo;\r\n vm?.emit(`update:${property}`, neo);\r\n },\r\n });\r\n\r\n Object.defineProperty(model, 'rxValue', {\r\n get: () => (isDefinedProp.value ? getProp() : txValue.value),\r\n });\r\n\r\n return model;\r\n}\r\n\r\nexport function useProvided<T>(props: any, prop: string, provided: Ref<T>) {\r\n const internal = useModelDuplex(props, prop, props[prop] ?? provided.value);\r\n\r\n watch(provided, (value) => {\r\n if (props[prop] == null) {\r\n internal.value = value;\r\n }\r\n });\r\n return internal;\r\n}\r\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { reactive, watch } from 'vue';
2
+ export function constructAdapter(options, locale) {
3
+ const instance = reactive(typeof options.adapter === 'function' ? new options.adapter({
4
+ locale: options.locale[locale.locale.value] ?? locale.locale.value,
5
+ formats: options.formats
6
+ }) : options.adapter);
7
+ watch(locale.locale, value => {
8
+ instance.locale = options.locale[value] ?? value ?? instance.locale;
9
+ });
10
+ return instance;
11
+ }
12
+ //# sourceMappingURL=factory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.mjs","names":["reactive","watch","constructAdapter","options","locale","instance","adapter","value","formats"],"sources":["../../../src/composables/date/factory.ts"],"sourcesContent":["import { reactive, watch } from 'vue';\r\n\r\nimport { LocaleModule } from '../../i18n/types';\r\n\r\nexport function constructAdapter(options: any, locale: LocaleModule) {\r\n const instance = reactive(\r\n typeof options.adapter === 'function'\r\n ? new options.adapter({\r\n locale: options.locale[locale.locale.value] ?? locale.locale.value,\r\n formats: options.formats,\r\n })\r\n : options.adapter,\r\n );\r\n\r\n watch(locale.locale, (value) => {\r\n instance.locale = options.locale[value] ?? value ?? instance.locale;\r\n });\r\n\r\n return instance;\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,gBAAgBA,CAACC,OAAY,EAAEC,MAAoB,EAAE;EACnE,MAAMC,QAAQ,GAAGL,QAAQ,CACvB,OAAOG,OAAO,CAACG,OAAO,KAAK,UAAU,GACjC,IAAIH,OAAO,CAACG,OAAO,CAAC;IAClBF,MAAM,EAAED,OAAO,CAACC,MAAM,CAACA,MAAM,CAACA,MAAM,CAACG,KAAK,CAAC,IAAIH,MAAM,CAACA,MAAM,CAACG,KAAK;IAClEC,OAAO,EAAEL,OAAO,CAACK;EACnB,CAAC,CAAC,GACFL,OAAO,CAACG,OACd,CAAC;EAEDL,KAAK,CAACG,MAAM,CAACA,MAAM,EAAGG,KAAK,IAAK;IAC9BF,QAAQ,CAACD,MAAM,GAAGD,OAAO,CAACC,MAAM,CAACG,KAAK,CAAC,IAAIA,KAAK,IAAIF,QAAQ,CAACD,MAAM;EACrE,CAAC,CAAC;EAEF,OAAOC,QAAQ;AACjB"}
@@ -1,2 +1,20 @@
1
- export function createDateModule(options) {}
1
+ import { inject } from '@vue/runtime-core';
2
+ import { useI18n } from "../i18n/index.mjs";
3
+ import { constructAdapter } from "./factory.mjs";
4
+ import { configureOptions } from "./setting.mjs";
5
+ export const YUYEON_DATE_KEY = Symbol.for('yuyeon.date');
6
+ export const YUYEON_DATE_OPTIONS_KEY = Symbol.for('yuyeon.date-options');
7
+ export function createDateModule(options, locale) {
8
+ const _options = configureOptions(options);
9
+ return {
10
+ options: _options,
11
+ instance: constructAdapter(_options, locale)
12
+ };
13
+ }
14
+ export function useDate() {
15
+ const options = inject(YUYEON_DATE_OPTIONS_KEY);
16
+ if (!options) throw new Error('Not found provided "DateModule" for options');
17
+ const i18n = useI18n();
18
+ return constructAdapter(options, i18n);
19
+ }
2
20
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["createDateModule","options"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["\r\n\r\nexport function createDateModule(options: DateOptions) {\r\n\r\n}\r\n"],"mappings":"AAEA,OAAO,SAASA,gBAAgBA,CAACC,OAAoB,EAAE,CAEvD"}
1
+ {"version":3,"file":"index.mjs","names":["inject","useI18n","constructAdapter","configureOptions","YUYEON_DATE_KEY","Symbol","for","YUYEON_DATE_OPTIONS_KEY","createDateModule","options","locale","_options","instance","useDate","Error","i18n"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["import { inject } from '@vue/runtime-core';\r\n\r\nimport { LocaleModule } from '../../i18n/types';\r\nimport { useI18n } from '../i18n';\r\nimport { constructAdapter } from './factory';\r\nimport { configureOptions } from './setting';\r\nimport {DateInstance, DateOptions} from './types';\r\n\r\nexport const YUYEON_DATE_KEY = Symbol.for('yuyeon.date');\r\nexport const YUYEON_DATE_OPTIONS_KEY = Symbol.for('yuyeon.date-options');\r\n\r\nexport function createDateModule(options: DateOptions, locale: LocaleModule) {\r\n const _options = configureOptions(options);\r\n return {\r\n options: _options,\r\n instance: constructAdapter(_options, locale),\r\n };\r\n}\r\n\r\nexport function useDate(): DateInstance {\r\n const options = inject<any>(YUYEON_DATE_OPTIONS_KEY);\r\n if (!options) throw new Error('Not found provided \"DateModule\" for options');\r\n\r\n const i18n = useI18n();\r\n\r\n return constructAdapter(options, i18n);\r\n}\r\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAAC,SAGlCC,OAAO;AAAA,SACPC,gBAAgB;AAAA,SAChBC,gBAAgB;AAGzB,OAAO,MAAMC,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC;AACxD,OAAO,MAAMC,uBAAuB,GAAGF,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAExE,OAAO,SAASE,gBAAgBA,CAACC,OAAoB,EAAEC,MAAoB,EAAE;EAC3E,MAAMC,QAAQ,GAAGR,gBAAgB,CAACM,OAAO,CAAC;EAC1C,OAAO;IACLA,OAAO,EAAEE,QAAQ;IACjBC,QAAQ,EAAEV,gBAAgB,CAACS,QAAQ,EAAED,MAAM;EAC7C,CAAC;AACH;AAEA,OAAO,SAASG,OAAOA,CAAA,EAAiB;EACtC,MAAMJ,OAAO,GAAGT,MAAM,CAAMO,uBAAuB,CAAC;EACpD,IAAI,CAACE,OAAO,EAAE,MAAM,IAAIK,KAAK,CAAC,6CAA6C,CAAC;EAE5E,MAAMC,IAAI,GAAGd,OAAO,CAAC,CAAC;EAEtB,OAAOC,gBAAgB,CAACO,OAAO,EAAEM,IAAI,CAAC;AACxC"}
@@ -0,0 +1,11 @@
1
+ import { localeCodesMap } from "../../i18n/config.mjs";
2
+ import { mergeDeep } from "../../util/common.mjs";
3
+ import { YuyeonDateAdapter } from "../../util/date/index.mjs";
4
+ export function configureOptions(options) {
5
+ const _options = mergeDeep({
6
+ adapter: YuyeonDateAdapter,
7
+ locale: localeCodesMap
8
+ }, options);
9
+ return _options;
10
+ }
11
+ //# sourceMappingURL=setting.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setting.mjs","names":["localeCodesMap","mergeDeep","YuyeonDateAdapter","configureOptions","options","_options","adapter","locale"],"sources":["../../../src/composables/date/setting.ts"],"sourcesContent":["import { localeCodesMap } from '../../i18n/config';\r\nimport { mergeDeep } from '../../util/common';\r\nimport { YuyeonDateAdapter } from '../../util/date';\r\nimport type { DateOptions } from './types';\r\n\r\nexport function configureOptions(options?: DateOptions) {\r\n const _options = mergeDeep(\r\n {\r\n adapter: YuyeonDateAdapter,\r\n locale: localeCodesMap,\r\n },\r\n options,\r\n );\r\n\r\n return _options;\r\n}\r\n"],"mappings":"SAASA,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,iBAAiB;AAG1B,OAAO,SAASC,gBAAgBA,CAACC,OAAqB,EAAE;EACtD,MAAMC,QAAQ,GAAGJ,SAAS,CACxB;IACEK,OAAO,EAAEJ,iBAAiB;IAC1BK,MAAM,EAAEP;EACV,CAAC,EACDI,OACF,CAAC;EAED,OAAOC,QAAQ;AACjB"}
@@ -1,2 +1,2 @@
1
-
1
+ export {};
2
2
  //# sourceMappingURL=types.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["interface DateOptions {\r\n adapter: any;\r\n locale: Record<string, any>;\r\n formats?: Record<string, any>;\r\n}\r\n"],"mappings":""}
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["import type { DateAdapter } from '../../util/date/types';\r\n\r\nexport interface DateOptions {\r\n adapter: any;\r\n locale: Record<string, any>;\r\n formats?: Record<string, any>;\r\n}\r\n\r\nexport interface DateInstanceType {\r\n instanceType: unknown;\r\n}\r\n\r\nexport interface DateInstance<T = DateInstanceType['instanceType']>\r\n extends DateAdapter<T> {\r\n locale?: any;\r\n}\r\n"],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { inject, provide } from 'vue';
2
+ import { createLocaleModule } from "./locale.mjs";
3
+ import { createRtlModule, createRtlProvideValue } from "./rtl.mjs";
4
+ import { YUYEON_I18N_KEY } from "./share.mjs";
5
+ export function createI18nModule(options) {
6
+ const localeModule = createLocaleModule(options);
7
+ const rtlModule = createRtlModule(localeModule, options);
8
+ return {
9
+ localeModule,
10
+ rtlModule
11
+ };
12
+ }
13
+ export function useI18n() {
14
+ const i18n = inject(YUYEON_I18N_KEY);
15
+ if (!i18n) throw new Error('Not found provided "I18nModule"');
16
+ return i18n;
17
+ }
18
+ export function provideI18n(props) {
19
+ const i18n = inject(YUYEON_I18N_KEY);
20
+ if (!i18n) throw new Error('Not found provided "I18nModule"');
21
+ const locale = i18n.getContext(props);
22
+ const rtl = createRtlProvideValue(locale, i18n.rtl, props);
23
+ const state = {
24
+ ...locale,
25
+ ...rtl
26
+ };
27
+ provide(YUYEON_I18N_KEY, state);
28
+ return state;
29
+ }
30
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["inject","provide","createLocaleModule","createRtlModule","createRtlProvideValue","YUYEON_I18N_KEY","createI18nModule","options","localeModule","rtlModule","useI18n","i18n","Error","provideI18n","props","locale","getContext","rtl","state"],"sources":["../../../src/composables/i18n/index.ts"],"sourcesContent":["import {inject, provide} from 'vue';\r\n\r\nimport { LocaleModule, LocaleOptions } from '../../i18n/types';\r\nimport { createLocaleModule } from './locale';\r\nimport {\r\n RtlModule,\r\n RtlOptions,\r\n RtlProps,\r\n createRtlModule,\r\n createRtlProvideValue,\r\n} from './rtl';\r\nimport { YUYEON_I18N_KEY } from './share';\r\n\r\nexport function createI18nModule(options?: LocaleOptions & RtlOptions) {\r\n const localeModule = createLocaleModule(options);\r\n const rtlModule = createRtlModule(localeModule, options);\r\n\r\n return {\r\n localeModule,\r\n rtlModule,\r\n };\r\n}\r\n\r\nexport function useI18n(): LocaleModule & RtlModule {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('Not found provided \"I18nModule\"');\r\n\r\n return i18n;\r\n}\r\n\r\nexport function provideI18n(props: LocaleOptions & RtlProps) {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('Not found provided \"I18nModule\"');\r\n\r\n const locale = i18n.getContext(props);\r\n const rtl = createRtlProvideValue(locale, i18n.rtl, props);\r\n\r\n const state = {\r\n ...locale,\r\n ...rtl,\r\n };\r\n provide(YUYEON_I18N_KEY, state);\r\n\r\n return state;\r\n}\r\n"],"mappings":"AAAA,SAAQA,MAAM,EAAEC,OAAO,QAAO,KAAK;AAAC,SAG3BC,kBAAkB;AAAA,SAKzBC,eAAe,EACfC,qBAAqB;AAAA,SAEdC,eAAe;AAExB,OAAO,SAASC,gBAAgBA,CAACC,OAAoC,EAAE;EACrE,MAAMC,YAAY,GAAGN,kBAAkB,CAACK,OAAO,CAAC;EAChD,MAAME,SAAS,GAAGN,eAAe,CAACK,YAAY,EAAED,OAAO,CAAC;EAExD,OAAO;IACLC,YAAY;IACZC;EACF,CAAC;AACH;AAEA,OAAO,SAASC,OAAOA,CAAA,EAA6B;EAClD,MAAMC,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EAE7D,OAAOD,IAAI;AACb;AAEA,OAAO,SAASE,WAAWA,CAACC,KAA+B,EAAE;EAC3D,MAAMH,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,iCAAiC,CAAC;EAE7D,MAAMG,MAAM,GAAGJ,IAAI,CAACK,UAAU,CAACF,KAAK,CAAC;EACrC,MAAMG,GAAG,GAAGb,qBAAqB,CAACW,MAAM,EAAEJ,IAAI,CAACM,GAAG,EAAEH,KAAK,CAAC;EAE1D,MAAMI,KAAK,GAAG;IACZ,GAAGH,MAAM;IACT,GAAGE;EACL,CAAC;EACDhB,OAAO,CAACI,eAAe,EAAEa,KAAK,CAAC;EAE/B,OAAOA,KAAK;AACd"}
@@ -0,0 +1,5 @@
1
+ import { constructYuyeonI18nAdapter } from "../../i18n/built-in.mjs";
2
+ export function createLocaleModule(options) {
3
+ return options?.adapter && options.adapter?.name ? options.adapter : constructYuyeonI18nAdapter(options);
4
+ }
5
+ //# sourceMappingURL=locale.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.mjs","names":["constructYuyeonI18nAdapter","createLocaleModule","options","adapter","name"],"sources":["../../../src/composables/i18n/locale.ts"],"sourcesContent":["import { constructYuyeonI18nAdapter } from '../../i18n/built-in';\r\nimport { LocaleOptions } from '../../i18n/types';\r\n\r\nexport function createLocaleModule(options?: LocaleOptions) {\r\n return options?.adapter && options.adapter?.name\r\n ? options.adapter\r\n : constructYuyeonI18nAdapter(options);\r\n}\r\n"],"mappings":"SAASA,0BAA0B;AAGnC,OAAO,SAASC,kBAAkBA,CAACC,OAAuB,EAAE;EAC1D,OAAOA,OAAO,EAAEC,OAAO,IAAID,OAAO,CAACC,OAAO,EAAEC,IAAI,GAC5CF,OAAO,CAACC,OAAO,GACfH,0BAA0B,CAACE,OAAO,CAAC;AACzC"}
@@ -0,0 +1,34 @@
1
+ import { computed, inject, ref } from 'vue';
2
+ import { defaultRtl } from "../../i18n/config.mjs";
3
+ import { YUYEON_I18N_KEY } from "./share.mjs";
4
+ export const YUYEON_RTL_KEY = Symbol.for('yuyeon.rtl');
5
+ export function createRtlModule(localeModule, options) {
6
+ const rtlOptions = ref(options?.rtlOptions ?? defaultRtl);
7
+ const rtl = computed(() => {
8
+ return rtlOptions.value[localeModule.locale.value] ?? false;
9
+ });
10
+ const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);
11
+ return {
12
+ rtlOptions,
13
+ rtl,
14
+ rtlClasses
15
+ };
16
+ }
17
+ export function createRtlProvideValue(localeModule, rtlOptions, props) {
18
+ const rtl = computed(() => props.rtl ?? rtlOptions.value[localeModule.locale.value] ?? false);
19
+ const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);
20
+ return {
21
+ rtl,
22
+ rtlOptions,
23
+ rtlClasses
24
+ };
25
+ }
26
+ export function useRtl() {
27
+ const i18n = inject(YUYEON_I18N_KEY);
28
+ if (!i18n) throw new Error('Not found provided "I18nModule" for rtl');
29
+ return {
30
+ rtl: i18n.rtl,
31
+ rtlClasses: i18n.rtlClasses
32
+ };
33
+ }
34
+ //# sourceMappingURL=rtl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rtl.mjs","names":["computed","inject","ref","defaultRtl","YUYEON_I18N_KEY","YUYEON_RTL_KEY","Symbol","for","createRtlModule","localeModule","options","rtlOptions","rtl","value","locale","rtlClasses","createRtlProvideValue","props","useRtl","i18n","Error"],"sources":["../../../src/composables/i18n/rtl.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue';\r\nimport type { Ref } from 'vue';\r\n\r\nimport { defaultRtl } from '../../i18n/config';\r\nimport { LocaleModule } from '../../i18n/types';\r\nimport { YUYEON_I18N_KEY } from './share';\r\n\r\nexport const YUYEON_RTL_KEY = Symbol.for('yuyeon.rtl');\r\n\r\nexport interface RtlOptions {\r\n rtlOptions: Record<string, boolean>;\r\n}\r\n\r\nexport interface RtlProps {\r\n rtl?: boolean;\r\n}\r\n\r\nexport interface RtlModule {\r\n rtl: Ref<boolean>;\r\n rtlOptions: Ref<Record<string, boolean>>;\r\n rtlClasses: Ref<string>;\r\n}\r\n\r\nexport function createRtlModule(\r\n localeModule: LocaleModule,\r\n options?: RtlOptions,\r\n): RtlModule {\r\n const rtlOptions = ref<Record<string, boolean>>(\r\n options?.rtlOptions ?? defaultRtl,\r\n );\r\n const rtl = computed(() => {\r\n return rtlOptions.value[localeModule.locale.value] ?? false;\r\n });\r\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\r\n\r\n return {\r\n rtlOptions,\r\n rtl,\r\n rtlClasses,\r\n };\r\n}\r\n\r\nexport function createRtlProvideValue(\r\n localeModule: LocaleModule,\r\n rtlOptions: RtlModule['rtlOptions'],\r\n props: RtlProps,\r\n): RtlModule {\r\n const rtl = computed(\r\n () => props.rtl ?? rtlOptions.value[localeModule.locale.value] ?? false,\r\n );\r\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\r\n\r\n return {\r\n rtl,\r\n rtlOptions,\r\n rtlClasses,\r\n };\r\n}\r\n\r\nexport function useRtl() {\r\n const i18n = inject<any>(YUYEON_I18N_KEY);\r\n if (!i18n) throw new Error('Not found provided \"I18nModule\" for rtl');\r\n return {\r\n rtl: i18n.rtl,\r\n rtlClasses: i18n.rtlClasses,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAGnCC,UAAU;AAAA,SAEVC,eAAe;AAExB,OAAO,MAAMC,cAAc,GAAGC,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;AAgBtD,OAAO,SAASC,eAAeA,CAC7BC,YAA0B,EAC1BC,OAAoB,EACT;EACX,MAAMC,UAAU,GAAGT,GAAG,CACpBQ,OAAO,EAAEC,UAAU,IAAIR,UACzB,CAAC;EACD,MAAMS,GAAG,GAAGZ,QAAQ,CAAC,MAAM;IACzB,OAAOW,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KAAK;EAC7D,CAAC,CAAC;EACF,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLF,UAAU;IACVC,GAAG;IACHG;EACF,CAAC;AACH;AAEA,OAAO,SAASC,qBAAqBA,CACnCP,YAA0B,EAC1BE,UAAmC,EACnCM,KAAe,EACJ;EACX,MAAML,GAAG,GAAGZ,QAAQ,CAClB,MAAMiB,KAAK,CAACL,GAAG,IAAID,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KACpE,CAAC;EACD,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLD,GAAG;IACHD,UAAU;IACVI;EACF,CAAC;AACH;AAEA,OAAO,SAASG,MAAMA,CAAA,EAAG;EACvB,MAAMC,IAAI,GAAGlB,MAAM,CAAMG,eAAe,CAAC;EACzC,IAAI,CAACe,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC;EACrE,OAAO;IACLR,GAAG,EAAEO,IAAI,CAACP,GAAG;IACbG,UAAU,EAAEI,IAAI,CAACJ;EACnB,CAAC;AACH"}
@@ -0,0 +1,2 @@
1
+ export const YUYEON_I18N_KEY = Symbol.for('yuyeon.i18n');
2
+ //# sourceMappingURL=share.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.mjs","names":["YUYEON_I18N_KEY","Symbol","for"],"sources":["../../../src/composables/i18n/share.ts"],"sourcesContent":["export const YUYEON_I18N_KEY = Symbol.for('yuyeon.i18n');\r\n"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./communication.mjs";
2
+ export * from "./date/index.mjs";
2
3
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\r\n"],"mappings":""}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\r\nexport * from './date';\r\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"transition.mjs","names":["Transition","computed","h","polyTransitionPropOptions","transition","type","String","Object","default","usePolyTransition","props","polyTransitionBindProps","is","transitionProps","name","PolyTransition","_ref","slots","forcedProps","component","rest"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["import {\n Component,\n FunctionalComponent,\n PropType,\n Transition,\n TransitionProps,\n computed,\n h,\n} from 'vue';\n\nexport const polyTransitionPropOptions = {\n transition: {\n type: [String, Object] as PropType<\n string | (TransitionProps & { is?: Component })\n >,\n default: 'slide-fade',\n },\n};\n\nexport function usePolyTransition(props: { transition: any }) {\n const polyTransitionBindProps = computed(() => {\n const { is, ...transitionProps } =\n typeof props.transition === 'object'\n ? props.transition\n : { is: props.transition, name: props.transition };\n return {\n is,\n transitionProps,\n };\n });\n\n return {\n polyTransitionBindProps,\n };\n}\n\nexport const PolyTransition: FunctionalComponent<\n TransitionProps & { is: string | Component; transitionProps: TransitionProps }\n> = (props, { slots }) => {\n const { is, transitionProps, ...forcedProps } = props;\n const { component = Transition, ...rest } =\n typeof is === 'object'\n ? { component: is, ...transitionProps }\n : { name: is };\n return h(component, { ...rest, ...transitionProps, ...forcedProps }, slots);\n};\n"],"mappings":"AAAA,SAIEA,UAAU,EAEVC,QAAQ,EACRC,CAAC,QACI,KAAK;AAEZ,OAAO,MAAMC,yBAAyB,GAAG;EACvCC,UAAU,EAAE;IACVC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAEpB;IACDC,OAAO,EAAE;EACX;AACF,CAAC;AAED,OAAO,SAASC,iBAAiBA,CAACC,KAA0B,EAAE;EAC5D,MAAMC,uBAAuB,GAAGV,QAAQ,CAAC,MAAM;IAC7C,MAAM;MAAEW,EAAE;MAAE,GAAGC;IAAgB,CAAC,GAC9B,OAAOH,KAAK,CAACN,UAAU,KAAK,QAAQ,GAChCM,KAAK,CAACN,UAAU,GAChB;MAAEQ,EAAE,EAAEF,KAAK,CAACN,UAAU;MAAEU,IAAI,EAAEJ,KAAK,CAACN;IAAW,CAAC;IACtD,OAAO;MACLQ,EAAE;MACFC;IACF,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLF;EACF,CAAC;AACH;AAEA,OAAO,MAAMI,cAEZ,GAAGA,CAACL,KAAK,EAAAM,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACnB,MAAM;IAAEJ,EAAE;IAAEC,eAAe;IAAE,GAAGK;EAAY,CAAC,GAAGR,KAAK;EACrD,MAAM;IAAES,SAAS,GAAGnB,UAAU;IAAE,GAAGoB;EAAK,CAAC,GACvC,OAAOR,EAAE,KAAK,QAAQ,GAClB;IAAEO,SAAS,EAAEP,EAAE;IAAE,GAAGC;EAAgB,CAAC,GACrC;IAAEC,IAAI,EAAEF;EAAG,CAAC;EAClB,OAAOV,CAAC,CAACiB,SAAS,EAAE;IAAE,GAAGC,IAAI;IAAE,GAAGP,eAAe;IAAE,GAAGK;EAAY,CAAC,EAAED,KAAK,CAAC;AAC7E,CAAC"}
1
+ {"version":3,"file":"transition.mjs","names":["Transition","computed","h","polyTransitionPropOptions","transition","type","String","Object","default","usePolyTransition","props","polyTransitionBindProps","is","transitionProps","name","PolyTransition","_ref","slots","forcedProps","component","rest"],"sources":["../../src/composables/transition.ts"],"sourcesContent":["import {\r\n Component,\r\n FunctionalComponent,\r\n PropType,\r\n Transition,\r\n TransitionProps,\r\n computed,\r\n h,\r\n} from 'vue';\r\n\r\nexport const polyTransitionPropOptions = {\r\n transition: {\r\n type: [String, Object] as PropType<\r\n string | (TransitionProps & { is?: Component })\r\n >,\r\n default: 'slide-fade',\r\n },\r\n};\r\n\r\nexport function usePolyTransition(props: { transition: any }) {\r\n const polyTransitionBindProps = computed(() => {\r\n const { is, ...transitionProps } =\r\n typeof props.transition === 'object'\r\n ? props.transition\r\n : { is: props.transition, name: props.transition };\r\n return {\r\n is,\r\n transitionProps,\r\n };\r\n });\r\n\r\n return {\r\n polyTransitionBindProps,\r\n };\r\n}\r\n\r\nexport const PolyTransition: FunctionalComponent<\r\n TransitionProps & { is: string | Component; transitionProps: TransitionProps }\r\n> = (props, { slots }) => {\r\n const { is, transitionProps, ...forcedProps } = props;\r\n const { component = Transition, ...rest } =\r\n typeof is === 'object'\r\n ? { component: is, ...transitionProps }\r\n : { name: is };\r\n return h(component, { ...rest, ...transitionProps, ...forcedProps }, slots);\r\n};\r\n"],"mappings":"AAAA,SAIEA,UAAU,EAEVC,QAAQ,EACRC,CAAC,QACI,KAAK;AAEZ,OAAO,MAAMC,yBAAyB,GAAG;EACvCC,UAAU,EAAE;IACVC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAEpB;IACDC,OAAO,EAAE;EACX;AACF,CAAC;AAED,OAAO,SAASC,iBAAiBA,CAACC,KAA0B,EAAE;EAC5D,MAAMC,uBAAuB,GAAGV,QAAQ,CAAC,MAAM;IAC7C,MAAM;MAAEW,EAAE;MAAE,GAAGC;IAAgB,CAAC,GAC9B,OAAOH,KAAK,CAACN,UAAU,KAAK,QAAQ,GAChCM,KAAK,CAACN,UAAU,GAChB;MAAEQ,EAAE,EAAEF,KAAK,CAACN,UAAU;MAAEU,IAAI,EAAEJ,KAAK,CAACN;IAAW,CAAC;IACtD,OAAO;MACLQ,EAAE;MACFC;IACF,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLF;EACF,CAAC;AACH;AAEA,OAAO,MAAMI,cAEZ,GAAGA,CAACL,KAAK,EAAAM,IAAA,KAAgB;EAAA,IAAd;IAAEC;EAAM,CAAC,GAAAD,IAAA;EACnB,MAAM;IAAEJ,EAAE;IAAEC,eAAe;IAAE,GAAGK;EAAY,CAAC,GAAGR,KAAK;EACrD,MAAM;IAAES,SAAS,GAAGnB,UAAU;IAAE,GAAGoB;EAAK,CAAC,GACvC,OAAOR,EAAE,KAAK,QAAQ,GAClB;IAAEO,SAAS,EAAEP,EAAE;IAAE,GAAGC;EAAgB,CAAC,GACrC;IAAEC,IAAI,EAAEF;EAAG,CAAC;EAClB,OAAOV,CAAC,CAACiB,SAAS,EAAE;IAAE,GAAGC,IAAI;IAAE,GAAGP,eAAe;IAAE,GAAGK;EAAY,CAAC,EAAED,KAAK,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { ref, shallowRef } from 'vue';
2
+ import { useProvided } from "../composables/index.mjs";
3
+ import en from "../locales/en.mjs";
4
+ import { getObjectValueByPath } from "../util/index.mjs";
5
+ const LOCALE_PREFIX = '$yuyeon';
6
+ function replaceParams(str, params) {
7
+ return str.replace(/\{(\d+)\}/g, (item, index) => {
8
+ return String(params[+index]);
9
+ });
10
+ }
11
+ function generateContext(locale, fallbackLocale, messages) {
12
+ function translate(key) {
13
+ for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
14
+ params[_key - 1] = arguments[_key];
15
+ }
16
+ if (!key.startsWith(LOCALE_PREFIX)) {
17
+ return replaceParams(key, params);
18
+ }
19
+ const path = key.replace(LOCALE_PREFIX, '');
20
+ const localeMessages = locale.value && messages.value[locale.value];
21
+ const fallbackMessages = fallbackLocale.value && messages.value[fallbackLocale.value];
22
+ let msg = getObjectValueByPath(localeMessages, path, null);
23
+ if (!msg) {
24
+ msg = getObjectValueByPath(fallbackMessages, path, null);
25
+ }
26
+ if (!msg) {
27
+ msg = key;
28
+ }
29
+ if (typeof msg !== 'string') {
30
+ msg = key;
31
+ }
32
+ return replaceParams(msg, params);
33
+ }
34
+ function number(value, options) {
35
+ const numberFormat = new Intl.NumberFormat([locale.value, fallbackLocale.value], options);
36
+ return numberFormat.format(value);
37
+ }
38
+ function getContext(props) {
39
+ const localLocale = useProvided(props, 'locale', locale);
40
+ const localFallbackLocale = useProvided(props, 'fallbackLocale', fallbackLocale);
41
+ const localMessages = useProvided(props, 'messages', messages);
42
+ const ctx = generateContext(localLocale, localFallbackLocale, localMessages);
43
+ return {
44
+ name: 'yuyeon',
45
+ locale,
46
+ fallbackLocale,
47
+ messages,
48
+ t: ctx.translate,
49
+ n: ctx.number,
50
+ getContext: ctx.getContext
51
+ };
52
+ }
53
+ return {
54
+ translate,
55
+ number,
56
+ getContext
57
+ };
58
+ }
59
+ export function constructYuyeonI18nAdapter(options) {
60
+ const locale = shallowRef(options?.locale ?? 'en');
61
+ const fallbackLocale = shallowRef(options?.fallbackLocale ?? 'en');
62
+ const messages = ref({
63
+ en,
64
+ ...options?.messages
65
+ });
66
+ const ctx = generateContext(locale, fallbackLocale, messages);
67
+ return {
68
+ name: 'yuyeon',
69
+ locale,
70
+ fallbackLocale,
71
+ messages,
72
+ t: ctx.translate,
73
+ n: ctx.number,
74
+ getContext: ctx.getContext
75
+ };
76
+ }
77
+ //# sourceMappingURL=built-in.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"built-in.mjs","names":["ref","shallowRef","useProvided","en","getObjectValueByPath","LOCALE_PREFIX","replaceParams","str","params","replace","item","index","String","generateContext","locale","fallbackLocale","messages","translate","key","_len","arguments","length","Array","_key","startsWith","path","localeMessages","value","fallbackMessages","msg","number","options","numberFormat","Intl","NumberFormat","format","getContext","props","localLocale","localFallbackLocale","localMessages","ctx","name","t","n","constructYuyeonI18nAdapter"],"sources":["../../src/i18n/built-in.ts"],"sourcesContent":["import { ref, shallowRef } from 'vue';\r\nimport type { Ref } from 'vue';\r\n\r\nimport { useProvided } from '../composables';\r\nimport en from '../locales/en';\r\nimport { getObjectValueByPath } from '../util';\r\nimport type { LocaleMessages, LocaleModule, LocaleOptions } from './types';\r\n\r\nconst LOCALE_PREFIX = '$yuyeon';\r\n\r\nfunction replaceParams(str: string, params: unknown[]) {\r\n return str.replace(/\\{(\\d+)\\}/g, (item, index) => {\r\n return String(params[+index]);\r\n });\r\n}\r\n\r\nfunction generateContext(\r\n locale: Ref<string>,\r\n fallbackLocale: Ref<string>,\r\n messages: Ref<LocaleMessages>,\r\n) {\r\n function translate(key: string, ...params: unknown[]) {\r\n if (!key.startsWith(LOCALE_PREFIX)) {\r\n return replaceParams(key, params);\r\n }\r\n const path = key.replace(LOCALE_PREFIX, '');\r\n const localeMessages = locale.value && messages.value[locale.value];\r\n const fallbackMessages =\r\n fallbackLocale.value && messages.value[fallbackLocale.value];\r\n\r\n let msg: string = getObjectValueByPath(localeMessages, path, null);\r\n if (!msg) {\r\n msg = getObjectValueByPath(fallbackMessages, path, null);\r\n }\r\n if (!msg) {\r\n msg = key;\r\n }\r\n if (typeof msg !== 'string') {\r\n msg = key;\r\n }\r\n return replaceParams(msg, params);\r\n }\r\n\r\n function number(value: number, options?: Intl.NumberFormatOptions) {\r\n const numberFormat = new Intl.NumberFormat(\r\n [locale.value, fallbackLocale.value],\r\n options,\r\n );\r\n return numberFormat.format(value);\r\n }\r\n\r\n function getContext(props: LocaleOptions) {\r\n const localLocale = useProvided(props, 'locale', locale);\r\n const localFallbackLocale = useProvided(\r\n props,\r\n 'fallbackLocale',\r\n fallbackLocale,\r\n );\r\n const localMessages = useProvided(props, 'messages', messages);\r\n const ctx = generateContext(\r\n localLocale,\r\n localFallbackLocale,\r\n localMessages,\r\n );\r\n return {\r\n name: 'yuyeon',\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n t: ctx.translate,\r\n n: ctx.number,\r\n getContext: ctx.getContext,\r\n };\r\n }\r\n\r\n return {\r\n translate,\r\n number,\r\n getContext,\r\n };\r\n}\r\n\r\nexport function constructYuyeonI18nAdapter(\r\n options?: LocaleOptions,\r\n): LocaleModule {\r\n const locale = shallowRef(options?.locale ?? 'en');\r\n const fallbackLocale = shallowRef(options?.fallbackLocale ?? 'en');\r\n const messages = ref({\r\n en,\r\n ...options?.messages,\r\n });\r\n\r\n const ctx = generateContext(locale, fallbackLocale, messages);\r\n\r\n return {\r\n name: 'yuyeon',\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n t: ctx.translate,\r\n n: ctx.number,\r\n getContext: ctx.getContext,\r\n };\r\n}\r\n"],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ export const localeCodesMap = {
2
+ af: 'af-ZA',
3
+ bg: 'bg-BG',
4
+ ca: 'ca-ES',
5
+ cs: 'cs-CZ',
6
+ de: 'de-DE',
7
+ el: 'el-GR',
8
+ en: 'en-US',
9
+ et: 'et-EE',
10
+ fa: 'fa-IR',
11
+ fi: 'fi-FI',
12
+ hr: 'hr-HR',
13
+ hu: 'hu-HU',
14
+ he: 'he-IL',
15
+ id: 'id-ID',
16
+ it: 'it-IT',
17
+ ja: 'ja-JP',
18
+ ko: 'ko-KR',
19
+ lv: 'lv-LV',
20
+ lt: 'lt-LT',
21
+ nl: 'nl-NL',
22
+ no: 'no-NO',
23
+ pl: 'pl-PL',
24
+ pt: 'pt-PT',
25
+ ro: 'ro-RO',
26
+ ru: 'ru-RU',
27
+ sk: 'sk-SK',
28
+ sl: 'sl-SI',
29
+ srCyrl: 'sr-SP',
30
+ srLatn: 'sr-SP',
31
+ sv: 'sv-SE',
32
+ th: 'th-TH',
33
+ tr: 'tr-TR',
34
+ az: 'az-AZ',
35
+ uk: 'uk-UA',
36
+ vi: 'vi-VN',
37
+ zhHans: 'zh-CN',
38
+ zhHant: 'zh-TW'
39
+ };
40
+ export const defaultRtl = {
41
+ af: false,
42
+ ar: true,
43
+ bg: false,
44
+ ca: false,
45
+ cs: false,
46
+ de: false,
47
+ el: false,
48
+ en: false,
49
+ es: false,
50
+ et: false,
51
+ fa: true,
52
+ fi: false,
53
+ fr: false,
54
+ hr: false,
55
+ hu: false,
56
+ he: true,
57
+ id: false,
58
+ it: false,
59
+ ja: false,
60
+ ko: false,
61
+ lv: false,
62
+ lt: false,
63
+ nl: false,
64
+ no: false,
65
+ pl: false,
66
+ pt: false,
67
+ ro: false,
68
+ ru: false,
69
+ sk: false,
70
+ sl: false,
71
+ srCyrl: false,
72
+ srLatn: false,
73
+ sv: false,
74
+ th: false,
75
+ tr: false,
76
+ az: false,
77
+ uk: false,
78
+ vi: false,
79
+ zhHans: false,
80
+ zhHant: false
81
+ };
82
+ //# sourceMappingURL=config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.mjs","names":["localeCodesMap","af","bg","ca","cs","de","el","en","et","fa","fi","hr","hu","he","id","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","defaultRtl","ar","es","fr"],"sources":["../../src/i18n/config.ts"],"sourcesContent":["export const localeCodesMap = {\r\n af: 'af-ZA',\r\n bg: 'bg-BG',\r\n ca: 'ca-ES',\r\n cs: 'cs-CZ',\r\n de: 'de-DE',\r\n el: 'el-GR',\r\n en: 'en-US',\r\n et: 'et-EE',\r\n fa: 'fa-IR',\r\n fi: 'fi-FI',\r\n hr: 'hr-HR',\r\n hu: 'hu-HU',\r\n he: 'he-IL',\r\n id: 'id-ID',\r\n it: 'it-IT',\r\n ja: 'ja-JP',\r\n ko: 'ko-KR',\r\n lv: 'lv-LV',\r\n lt: 'lt-LT',\r\n nl: 'nl-NL',\r\n no: 'no-NO',\r\n pl: 'pl-PL',\r\n pt: 'pt-PT',\r\n ro: 'ro-RO',\r\n ru: 'ru-RU',\r\n sk: 'sk-SK',\r\n sl: 'sl-SI',\r\n srCyrl: 'sr-SP',\r\n srLatn: 'sr-SP',\r\n sv: 'sv-SE',\r\n th: 'th-TH',\r\n tr: 'tr-TR',\r\n az: 'az-AZ',\r\n uk: 'uk-UA',\r\n vi: 'vi-VN',\r\n zhHans: 'zh-CN',\r\n zhHant: 'zh-TW',\r\n};\r\n\r\nexport const defaultRtl = {\r\n af: false,\r\n ar: true,\r\n bg: false,\r\n ca: false,\r\n cs: false,\r\n de: false,\r\n el: false,\r\n en: false,\r\n es: false,\r\n et: false,\r\n fa: true,\r\n fi: false,\r\n fr: false,\r\n hr: false,\r\n hu: false,\r\n he: true,\r\n id: false,\r\n it: false,\r\n ja: false,\r\n ko: false,\r\n lv: false,\r\n lt: false,\r\n nl: false,\r\n no: false,\r\n pl: false,\r\n pt: false,\r\n ro: false,\r\n ru: false,\r\n sk: false,\r\n sl: false,\r\n srCyrl: false,\r\n srLatn: false,\r\n sv: false,\r\n th: false,\r\n tr: false,\r\n az: false,\r\n uk: false,\r\n vi: false,\r\n zhHans: false,\r\n zhHant: false,\r\n}\r\n"],"mappings":"AAAA,OAAO,MAAMA,cAAc,GAAG;EAC1BC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,OAAO;EACfC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE;AACZ,CAAC;AAED,OAAO,MAAMC,UAAU,GAAG;EACtBrC,EAAE,EAAE,KAAK;EACTsC,EAAE,EAAE,IAAI;EACRrC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTiC,EAAE,EAAE,KAAK;EACThC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,KAAK;EACT+B,EAAE,EAAE,KAAK;EACT9B,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE,KAAK;EACbC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,MAAM,EAAE;AACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../src/i18n/types.ts"],"sourcesContent":["import type { Ref } from 'vue';\r\n\r\nexport type LocaleMessages = {\r\n [key: string]: LocaleMessages | string;\r\n};\r\n\r\nexport interface LocaleOptions {\r\n messages?: LocaleMessages;\r\n locale?: string;\r\n fallbackLocale?: string;\r\n adapter?: LocaleModule;\r\n}\r\n\r\nexport interface LocaleModule {\r\n name: string;\r\n locale: Ref<string>;\r\n fallbackLocale: Ref<string>;\r\n messages: Ref<LocaleMessages>;\r\n t: (key: string, ...args: unknown[]) => string;\r\n n: (value: number) => string;\r\n getContext: (props: LocaleOptions) => LocaleModule\r\n}\r\n"],"mappings":""}
package/lib/index.mjs CHANGED
@@ -1,8 +1,11 @@
1
- import * as components from "./components/index.mjs";
2
- import { YUYEON_LOGO } from "./etc/index.mjs";
3
1
  import { nextTick, reactive } from 'vue';
2
+ import * as components from "./components/index.mjs";
3
+ import { YUYEON_DATE_KEY, YUYEON_DATE_OPTIONS_KEY, createDateModule } from "./composables/date/index.mjs";
4
+ import { createI18nModule } from "./composables/i18n/index.mjs";
5
+ import { YUYEON_I18N_KEY } from "./composables/i18n/share.mjs";
4
6
  import { YUYEON_THEME_KEY, createThemeModule, useTheme } from "./composables/theme/index.mjs";
5
- import PlateWave from "./directives/plate-wave/index.mjs"; //
7
+ import PlateWave from "./directives/plate-wave/index.mjs";
8
+ import { YUYEON_LOGO } from "./etc/index.mjs"; //
6
9
  import "./styles/base.scss";
7
10
  const defaultOptions = {
8
11
  credit: true
@@ -10,19 +13,32 @@ const defaultOptions = {
10
13
  export function init() {
11
14
  let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultOptions;
12
15
  const themeModule = createThemeModule(options?.theme);
16
+ const i18nModule = createI18nModule(options?.i18n);
17
+ const dateModule = createDateModule(options?.date, i18nModule.localeModule);
13
18
  const install = app => {
14
19
  themeModule.install(app);
15
20
  const yuyeon = reactive({
16
21
  app: null,
17
22
  root: null,
18
- theme: themeModule.instance
23
+ theme: themeModule.instance,
24
+ i18n: {
25
+ ...i18nModule.localeModule,
26
+ ...i18nModule.rtlModule
27
+ },
28
+ date: dateModule
19
29
  });
20
30
  Object.keys(components).forEach(componentName => {
21
31
  const comp = components[componentName];
22
32
  app.component(componentName, comp);
23
33
  });
24
34
  app.directive('plate-wave', PlateWave);
25
- app.provide(YUYEON_THEME_KEY, yuyeon.theme);
35
+ app.provide(YUYEON_THEME_KEY, themeModule.instance);
36
+ app.provide(YUYEON_I18N_KEY, {
37
+ ...i18nModule.localeModule,
38
+ ...i18nModule.rtlModule
39
+ });
40
+ app.provide(YUYEON_DATE_OPTIONS_KEY, dateModule.options);
41
+ app.provide(YUYEON_DATE_KEY, dateModule.instance);
26
42
  app.config.globalProperties.$yuyeon = yuyeon;
27
43
  nextTick(() => {
28
44
  yuyeon.app = app._instance;
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["components","YUYEON_LOGO","nextTick","reactive","YUYEON_THEME_KEY","createThemeModule","useTheme","PlateWave","defaultOptions","credit","init","options","arguments","length","undefined","themeModule","theme","install","app","yuyeon","root","instance","Object","keys","forEach","componentName","comp","component","directive","provide","config","globalProperties","$yuyeon","_instance","_container","Error","$el","classList","add","setAttribute","console","log","unmount","scope","stop"],"sources":["../src/index.ts"],"sourcesContent":["import * as components from './components';\r\nimport { YUYEON_LOGO } from './etc';\r\nimport { Component, ComponentInternalInstance } from '@vue/runtime-core';\r\nimport type { App } from 'vue';\r\nimport { nextTick, reactive } from 'vue';\r\n\r\nimport {\r\n YUYEON_THEME_KEY,\r\n createThemeModule,\r\n useTheme,\r\n} from './composables/theme';\r\nimport PlateWave from './directives/plate-wave';\r\n\r\n//\r\nimport './styles/base.scss';\r\n\r\nconst defaultOptions = {\r\n credit: true,\r\n};\r\n\r\ndeclare module 'vue' {\r\n interface ComponentCustomProperties {\r\n $yuyeon: any;\r\n }\r\n}\r\n\r\nexport function init(options: any = defaultOptions) {\r\n const themeModule = createThemeModule(options?.theme);\r\n\r\n const install = (app: App): any => {\r\n themeModule.install(app);\r\n\r\n const yuyeon = reactive({\r\n app: null as ComponentInternalInstance | null,\r\n root: null as HTMLElement | null,\r\n theme: themeModule.instance,\r\n });\r\n\r\n Object.keys(components).forEach((componentName) => {\r\n const comp = components[componentName as keyof typeof components];\r\n app.component(componentName, comp as Component);\r\n });\r\n\r\n app.directive('plate-wave', PlateWave);\r\n\r\n app.provide(YUYEON_THEME_KEY, yuyeon.theme);\r\n\r\n app.config.globalProperties.$yuyeon = yuyeon;\r\n\r\n nextTick(() => {\r\n yuyeon.app = app._instance as any;\r\n yuyeon.root = app._container;\r\n if (!yuyeon.root) {\r\n throw new Error(`yuyeon: Can't found instance`);\r\n }\r\n const $el = yuyeon.root;\r\n $el.classList.add('y-root');\r\n $el.setAttribute('data-y-root', '');\r\n themeModule.init(yuyeon);\r\n });\r\n if (options?.credit) {\r\n console.log(YUYEON_LOGO);\r\n }\r\n const { unmount } = app;\r\n app.unmount = () => {\r\n unmount();\r\n themeModule.scope.stop();\r\n app.unmount = unmount;\r\n };\r\n };\r\n\r\n return {\r\n install,\r\n };\r\n}\r\n\r\nexport { useTheme };\r\n"],"mappings":"OAAO,KAAKA,UAAU;AAAA,SACbC,WAAW;AAGpB,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,KAAK;AAAC,SAGvCC,gBAAgB,EAChBC,iBAAiB,EACjBC,QAAQ;AAAA,OAEHC,SAAS,2CAEhB;AACA;AAEA,MAAMC,cAAc,GAAG;EACrBC,MAAM,EAAE;AACV,CAAC;AAQD,OAAO,SAASC,IAAIA,CAAA,EAAgC;EAAA,IAA/BC,OAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGJ,cAAc;EAChD,MAAMO,WAAW,GAAGV,iBAAiB,CAACM,OAAO,EAAEK,KAAK,CAAC;EAErD,MAAMC,OAAO,GAAIC,GAAQ,IAAU;IACjCH,WAAW,CAACE,OAAO,CAACC,GAAG,CAAC;IAExB,MAAMC,MAAM,GAAGhB,QAAQ,CAAC;MACtBe,GAAG,EAAE,IAAwC;MAC7CE,IAAI,EAAE,IAA0B;MAChCJ,KAAK,EAAED,WAAW,CAACM;IACrB,CAAC,CAAC;IAEFC,MAAM,CAACC,IAAI,CAACvB,UAAU,CAAC,CAACwB,OAAO,CAAEC,aAAa,IAAK;MACjD,MAAMC,IAAI,GAAG1B,UAAU,CAACyB,aAAa,CAA4B;MACjEP,GAAG,CAACS,SAAS,CAACF,aAAa,EAAEC,IAAiB,CAAC;IACjD,CAAC,CAAC;IAEFR,GAAG,CAACU,SAAS,CAAC,YAAY,EAAErB,SAAS,CAAC;IAEtCW,GAAG,CAACW,OAAO,CAACzB,gBAAgB,EAAEe,MAAM,CAACH,KAAK,CAAC;IAE3CE,GAAG,CAACY,MAAM,CAACC,gBAAgB,CAACC,OAAO,GAAGb,MAAM;IAE5CjB,QAAQ,CAAC,MAAM;MACbiB,MAAM,CAACD,GAAG,GAAGA,GAAG,CAACe,SAAgB;MACjCd,MAAM,CAACC,IAAI,GAAGF,GAAG,CAACgB,UAAU;MAC5B,IAAI,CAACf,MAAM,CAACC,IAAI,EAAE;QAChB,MAAM,IAAIe,KAAK,CAAE,8BAA6B,CAAC;MACjD;MACA,MAAMC,GAAG,GAAGjB,MAAM,CAACC,IAAI;MACvBgB,GAAG,CAACC,SAAS,CAACC,GAAG,CAAC,QAAQ,CAAC;MAC3BF,GAAG,CAACG,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;MACnCxB,WAAW,CAACL,IAAI,CAACS,MAAM,CAAC;IAC1B,CAAC,CAAC;IACF,IAAIR,OAAO,EAAEF,MAAM,EAAE;MACnB+B,OAAO,CAACC,GAAG,CAACxC,WAAW,CAAC;IAC1B;IACA,MAAM;MAAEyC;IAAQ,CAAC,GAAGxB,GAAG;IACvBA,GAAG,CAACwB,OAAO,GAAG,MAAM;MAClBA,OAAO,CAAC,CAAC;MACT3B,WAAW,CAAC4B,KAAK,CAACC,IAAI,CAAC,CAAC;MACxB1B,GAAG,CAACwB,OAAO,GAAGA,OAAO;IACvB,CAAC;EACH,CAAC;EAED,OAAO;IACLzB;EACF,CAAC;AACH;AAEA,SAASX,QAAQ"}
1
+ {"version":3,"file":"index.mjs","names":["nextTick","reactive","components","YUYEON_DATE_KEY","YUYEON_DATE_OPTIONS_KEY","createDateModule","createI18nModule","YUYEON_I18N_KEY","YUYEON_THEME_KEY","createThemeModule","useTheme","PlateWave","YUYEON_LOGO","defaultOptions","credit","init","options","arguments","length","undefined","themeModule","theme","i18nModule","i18n","dateModule","date","localeModule","install","app","yuyeon","root","instance","rtlModule","Object","keys","forEach","componentName","comp","component","directive","provide","config","globalProperties","$yuyeon","_instance","_container","Error","$el","classList","add","setAttribute","console","log","unmount","scope","stop"],"sources":["../src/index.ts"],"sourcesContent":["import { Component, ComponentInternalInstance } from '@vue/runtime-core';\r\nimport type { App } from 'vue';\r\nimport { nextTick, reactive } from 'vue';\r\n\r\nimport * as components from './components';\r\nimport {\r\n YUYEON_DATE_KEY,\r\n YUYEON_DATE_OPTIONS_KEY,\r\n createDateModule,\r\n} from './composables/date';\r\nimport { createI18nModule } from './composables/i18n';\r\nimport { YUYEON_I18N_KEY } from './composables/i18n/share';\r\nimport {\r\n YUYEON_THEME_KEY,\r\n createThemeModule,\r\n useTheme,\r\n} from './composables/theme';\r\nimport PlateWave from './directives/plate-wave';\r\nimport { YUYEON_LOGO } from './etc';\r\n\r\n//\r\nimport './styles/base.scss';\r\n\r\nconst defaultOptions = {\r\n credit: true,\r\n};\r\n\r\ndeclare module 'vue' {\r\n interface ComponentCustomProperties {\r\n $yuyeon: any;\r\n }\r\n}\r\n\r\nexport function init(options: any = defaultOptions) {\r\n const themeModule = createThemeModule(options?.theme);\r\n const i18nModule = createI18nModule(options?.i18n);\r\n const dateModule = createDateModule(options?.date, i18nModule.localeModule);\r\n\r\n const install = (app: App): any => {\r\n themeModule.install(app);\r\n\r\n const yuyeon = reactive({\r\n app: null as ComponentInternalInstance | null,\r\n root: null as HTMLElement | null,\r\n theme: themeModule.instance,\r\n i18n: {\r\n ...i18nModule.localeModule,\r\n ...i18nModule.rtlModule,\r\n },\r\n date: dateModule,\r\n });\r\n\r\n Object.keys(components).forEach((componentName) => {\r\n const comp = components[componentName as keyof typeof components];\r\n app.component(componentName, comp as Component);\r\n });\r\n\r\n app.directive('plate-wave', PlateWave);\r\n\r\n app.provide(YUYEON_THEME_KEY, themeModule.instance);\r\n app.provide(YUYEON_I18N_KEY, {\r\n ...i18nModule.localeModule,\r\n ...i18nModule.rtlModule,\r\n });\r\n app.provide(YUYEON_DATE_OPTIONS_KEY, dateModule.options);\r\n app.provide(YUYEON_DATE_KEY, dateModule.instance);\r\n\r\n app.config.globalProperties.$yuyeon = yuyeon;\r\n\r\n nextTick(() => {\r\n yuyeon.app = app._instance as any;\r\n yuyeon.root = app._container;\r\n if (!yuyeon.root) {\r\n throw new Error(`yuyeon: Can't found instance`);\r\n }\r\n const $el = yuyeon.root;\r\n $el.classList.add('y-root');\r\n $el.setAttribute('data-y-root', '');\r\n themeModule.init(yuyeon);\r\n });\r\n if (options?.credit) {\r\n console.log(YUYEON_LOGO);\r\n }\r\n const { unmount } = app;\r\n app.unmount = () => {\r\n unmount();\r\n themeModule.scope.stop();\r\n app.unmount = unmount;\r\n };\r\n };\r\n\r\n return {\r\n install,\r\n };\r\n}\r\n\r\nexport { useTheme };\r\n"],"mappings":"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"}