yuyeon 0.0.26 → 0.0.28

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 (96) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +5850 -5478
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/components/alert/YAlert.mjs +41 -6
  5. package/lib/components/alert/YAlert.mjs.map +1 -1
  6. package/lib/components/alert/YAlert.scss +25 -23
  7. package/lib/components/button/YButton.mjs +105 -75
  8. package/lib/components/button/YButton.mjs.map +1 -1
  9. package/lib/components/button/YButton.scss +1 -0
  10. package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
  11. package/lib/components/checkbox/YCheckbox.scss +48 -48
  12. package/lib/components/index.mjs +1 -0
  13. package/lib/components/index.mjs.map +1 -1
  14. package/lib/components/tab/YTab.mjs +55 -7
  15. package/lib/components/tab/YTab.mjs.map +1 -1
  16. package/lib/components/tab/YTab.scss +62 -0
  17. package/lib/components/tab/YTabs.mjs +50 -8
  18. package/lib/components/tab/YTabs.mjs.map +1 -1
  19. package/lib/components/tab/YTabs.scss +10 -0
  20. package/lib/components/tab/index.mjs +1 -0
  21. package/lib/components/tab/index.mjs.map +1 -1
  22. package/lib/components/tab/shared.mjs +2 -0
  23. package/lib/components/tab/shared.mjs.map +1 -0
  24. package/lib/components/tab/types.mjs +2 -0
  25. package/lib/components/tab/types.mjs.map +1 -0
  26. package/lib/components/table/YTable.scss +2 -1
  27. package/lib/components/toggle-button/YToggleButton.mjs +2 -0
  28. package/lib/components/toggle-button/YToggleButton.mjs.map +1 -0
  29. package/lib/components/toggle-button/index.mjs +2 -0
  30. package/lib/components/toggle-button/index.mjs.map +1 -0
  31. package/lib/components/tooltip/YTooltip.mjs +3 -3
  32. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  33. package/lib/components/tree-view/YTreeView.mjs +1 -1
  34. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  35. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  36. package/lib/composables/choice-link.mjs +13 -0
  37. package/lib/composables/choice-link.mjs.map +1 -0
  38. package/lib/composables/choice.mjs +1 -1
  39. package/lib/composables/choice.mjs.map +1 -1
  40. package/lib/composables/communication.mjs +1 -1
  41. package/lib/composables/communication.mjs.map +1 -1
  42. package/lib/composables/index.mjs +2 -0
  43. package/lib/composables/index.mjs.map +1 -0
  44. package/lib/composables/theme/setting.mjs.map +1 -1
  45. package/lib/composables/vue-router.mjs +32 -0
  46. package/lib/composables/vue-router.mjs.map +1 -0
  47. package/lib/styles/_variables.scss +2 -0
  48. package/lib/styles/theme/dark.scss +11 -11
  49. package/lib/styles/theme/light.scss +11 -11
  50. package/lib/util/index.mjs +16 -0
  51. package/lib/util/index.mjs.map +1 -0
  52. package/lib/util/reactivity.mjs +5 -0
  53. package/lib/util/reactivity.mjs.map +1 -1
  54. package/lib/util/vue-component.mjs +24 -0
  55. package/lib/util/vue-component.mjs.map +1 -1
  56. package/package.json +11 -1
  57. package/types/components/button/YButton.d.ts +97 -41
  58. package/types/components/checkbox/YInputCheckbox.d.ts +1 -1
  59. package/types/components/dropdown/YDropdown.d.ts +3 -3
  60. package/types/components/field-input/YFieldInput.d.ts +26 -44
  61. package/types/components/index.d.ts +1 -0
  62. package/types/components/input/YInput.d.ts +16 -16
  63. package/types/components/layer/YLayer.d.ts +8 -8
  64. package/types/components/list/YList.d.ts +2 -2
  65. package/types/components/list/YListItem.d.ts +3 -3
  66. package/types/components/pagination/YPagination.d.ts +6 -6
  67. package/types/components/select/YSelect.d.ts +35 -53
  68. package/types/components/tab/YTab.d.ts +282 -7
  69. package/types/components/tab/YTabs.d.ts +111 -3
  70. package/types/components/tab/index.d.ts +1 -0
  71. package/types/components/tab/shared.d.ts +3 -0
  72. package/types/components/tab/types.d.ts +4 -0
  73. package/types/components/table/YDataTable.d.ts +7 -7
  74. package/types/components/table/YDataTableHead.d.ts +3 -3
  75. package/types/components/table/YDataTableRow.d.ts +3 -3
  76. package/types/components/table/YDataTableServer.d.ts +7 -7
  77. package/types/components/table/composibles/items.d.ts +1 -1
  78. package/types/components/table/composibles/selection.d.ts +1 -1
  79. package/types/components/table/composibles/sorting.d.ts +1 -1
  80. package/types/components/toggle-button/YToggleButton.d.ts +3 -0
  81. package/types/components/toggle-button/index.d.ts +1 -0
  82. package/types/components/tree-view/YTreeViewNode.d.ts +6 -6
  83. package/types/composables/choice-link.d.ts +2 -0
  84. package/types/composables/choice.d.ts +107 -0
  85. package/types/composables/dimension.d.ts +6 -6
  86. package/types/composables/focus.d.ts +2 -2
  87. package/types/composables/list-items.d.ts +1 -1
  88. package/types/composables/theme/index.d.ts +1 -1
  89. package/types/composables/vue-router.d.ts +43 -0
  90. package/types/shims.d.ts +6 -2
  91. package/types/util/collection.d.ts +1 -0
  92. package/types/util/frame-scheduler.d.ts +7 -0
  93. package/types/util/index.d.ts +15 -0
  94. package/types/util/reactivity.d.ts +4 -0
  95. package/types/util/validation.d.ts +3 -0
  96. package/types/util/vue-component.d.ts +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"YTreeViewNode.mjs","names":["computed","defineComponent","h","inject","ref","useRender","getObjectValueByPath","propsFactory","YButton","YPlate","YTextHighlighter","YIconCheckbox","YIconExpand","YExpandVTransition","pressItemsPropsOptions","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","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 { useRender } from '../../composables/component';\nimport { getObjectValueByPath } from '../../util/common';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YPlate } from '../plate';\nimport YTextHighlighter from '../text-highlighter/YTextHighlighter';\n\nimport { YIconCheckbox, YIconExpand } from '../icons';\nimport { YExpandVTransition } from '../transitions';\nimport { pressItemsPropsOptions } from \"../../abstract/items\";\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 { ...props, level: (props.level ?? 0) + 1, item },\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","useRender","getObjectValueByPath","propsFactory","YButton","YPlate","YTextHighlighter","YIconCheckbox","YIconExpand","YExpandVTransition","pressItemsPropsOptions","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","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 {\r\n PropType,\r\n VNodeArrayChildren,\r\n computed,\r\n defineComponent,\r\n h,\r\n inject,\r\n ref,\r\n} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { getObjectValueByPath } from '../../util/common';\r\nimport { propsFactory } from '../../util/vue-component';\r\nimport { YButton } from '../button';\r\nimport { YPlate } from '../plate';\r\nimport YTextHighlighter from '../text-highlighter/YTextHighlighter';\r\n\r\nimport { YIconCheckbox, YIconExpand } from '../icons';\r\nimport { YExpandVTransition } from '../transitions';\r\nimport { pressItemsPropsOptions } from \"../../abstract/items\";\r\n\r\nexport const pressYTreeViewNodeProps = propsFactory(\r\n {\r\n search: String,\r\n disableTransition: Boolean,\r\n enableActive: Boolean,\r\n activeClass: [String, Array],\r\n activeSingleModifier: String,\r\n activeColor: {\r\n type: String,\r\n default: 'primary',\r\n },\r\n enableSelect: Boolean,\r\n ...pressItemsPropsOptions({\r\n itemKey: 'id',\r\n }),\r\n },\r\n 'YTreeViewNode',\r\n);\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 setup(props, { slots, expose }) {\r\n const treeView = inject<any>('tree-view');\r\n\r\n const expanded = ref(false);\r\n const active = ref(false);\r\n const selected = ref(false);\r\n const immediate = ref(false);\r\n\r\n function onClick(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 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 = !selected.value;\r\n selected.value = to;\r\n treeView.updateSelected(myKey.value, to);\r\n treeView.emitSelected();\r\n }\r\n\r\n const children = computed(() => {\r\n return props.item?.[props.itemChildren as string] ?? [];\r\n });\r\n\r\n const imLeaf = computed(() => children.value.length < 1);\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 };\r\n });\r\n\r\n const searchLoading = computed(() => {\r\n return treeView.searchLoading.value;\r\n });\r\n\r\n useRender(() => {\r\n const leaves = children.value\r\n .filter((leaf: any) => {\r\n return !treeView.isExcluded(\r\n getObjectValueByPath(leaf, props.itemKey),\r\n );\r\n })\r\n .map((item: any) => {\r\n return h(\r\n YTreeViewNode,\r\n { ...props, level: (props.level ?? 0) + 1, item },\r\n slots,\r\n );\r\n });\r\n const indentSpacer: VNodeArrayChildren = [];\r\n for (let i = 0; i < props.level; i += 1) {\r\n indentSpacer.push(\r\n h('div', { class: 'y-tree-view-node__indent-spacer' }),\r\n );\r\n }\r\n return h(\r\n 'div',\r\n {\r\n class: classes.value,\r\n style: styles.value,\r\n '.role': 'treeitem',\r\n 'data-level': props.level,\r\n },\r\n [\r\n h(\r\n 'div',\r\n {\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 [\r\n h(YPlate),\r\n h('div', { class: 'y-tree-view-node__indents' }, indentSpacer),\r\n /* EXPAND */\r\n !imLeaf.value && leaves.length > 0\r\n ? h(\r\n YButton,\r\n {\r\n class: 'y-tree-view-node__expand-icon',\r\n variation: 'icon',\r\n onClick: (e: MouseEvent) => onClickExpand(e),\r\n },\r\n () => [\r\n slots['expand-icon']\r\n ? slots['expand-icon']()\r\n : h(YIconExpand),\r\n ],\r\n )\r\n : h('i', { class: 'y-tree-view-node__no-expand-icon' }),\r\n props.enableSelect &&\r\n h(\r\n 'div',\r\n {\r\n class: ['y-tree-view-node__select'],\r\n onClick: (e: MouseEvent) => onClickSelect(e),\r\n },\r\n [h(YIconCheckbox, { checked: selected.value })],\r\n ),\r\n /* CONTENT */\r\n h('div', { class: 'y-tree-view-node__content' }, [\r\n slots.leading &&\r\n h(\r\n 'div',\r\n { class: 'y-tree-view-node__leading' },\r\n slots.leading(slotProps.value),\r\n ),\r\n h(\r\n 'div',\r\n { 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 ? h(YTextHighlighter, {\r\n text: contentText.value,\r\n keyword: props.search,\r\n })\r\n : contentText.value,\r\n ),\r\n slots.trailing &&\r\n h(\r\n 'div',\r\n { class: 'y-tree-view-node__trailing' },\r\n slots.trailing(),\r\n ),\r\n ]),\r\n ],\r\n ),\r\n /* CHILDREN */\r\n children.value.length > 0\r\n ? h(\r\n YExpandVTransition,\r\n { disabled: props.disableTransition },\r\n expanded.value\r\n ? () =>\r\n h(\r\n 'div',\r\n {\r\n class: { 'y-tree-view-node__leaves': true },\r\n role: 'tree',\r\n },\r\n leaves,\r\n )\r\n : undefined,\r\n )\r\n : undefined,\r\n ],\r\n );\r\n });\r\n\r\n const myKey = computed(() => {\r\n return getObjectValueByPath(props.item, props.itemKey);\r\n });\r\n\r\n expose({\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n immediate,\r\n });\r\n\r\n return {\r\n treeView,\r\n myKey,\r\n expanded,\r\n active,\r\n selected,\r\n immediate,\r\n };\r\n },\r\n created() {\r\n this.treeView?.register?.(this.myKey, this);\r\n },\r\n});\r\n\r\nexport type YTreeNode = InstanceType<typeof YTreeViewNode>;\r\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { nextTick, watch } from 'vue';
2
+ export function useChoiceByLink(link, select) {
3
+ watch(() => link.isActive?.value, neo => {
4
+ if (link.isLink.value && neo && select) {
5
+ nextTick(() => {
6
+ select(true);
7
+ });
8
+ }
9
+ }, {
10
+ immediate: true
11
+ });
12
+ }
13
+ //# sourceMappingURL=choice-link.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choice-link.mjs","names":["nextTick","watch","useChoiceByLink","link","select","isActive","value","neo","isLink","immediate"],"sources":["../../src/composables/choice-link.ts"],"sourcesContent":["import { nextTick, watch } from 'vue';\n\nimport type { UseLink } from './vue-router';\n\nexport function useChoiceByLink(\n link: UseLink,\n select?: (value: boolean, event?: Event) => void,\n) {\n watch(\n () => link.isActive?.value,\n (neo) => {\n if (link.isLink.value && neo && select) {\n nextTick(() => {\n select(true);\n });\n }\n },\n { immediate: true },\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,eAAeA,CAC7BC,IAAa,EACbC,MAAgD,EAChD;EACAH,KAAK,CACH,MAAME,IAAI,CAACE,QAAQ,EAAEC,KAAK,EACzBC,GAAG,IAAK;IACP,IAAIJ,IAAI,CAACK,MAAM,CAACF,KAAK,IAAIC,GAAG,IAAIH,MAAM,EAAE;MACtCJ,QAAQ,CAAC,MAAM;QACbI,MAAM,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;IACJ;EACF,CAAC,EACD;IAAEK,SAAS,EAAE;EAAK,CACpB,CAAC;AACH"}
@@ -47,7 +47,7 @@ export function useChoiceItem(props, injectKey) {
47
47
  });
48
48
  const selectedClass = computed(() => isSelected.value && [choiceProvider.selectedClass.value, props.selectedClass]);
49
49
  watch(isSelected, value => {
50
- vm.emit('group:selected', {
50
+ vm.emit('choice:selected', {
51
51
  value
52
52
  });
53
53
  });
@@ -1 +1 @@
1
- {"version":3,"file":"choice.mjs","names":["computed","getCurrentInstance","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","wrapInArray","deepEqual","findChildrenWithProvide","getUid","propsFactory","useModelDuplex","pressChoicePropsOptions","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","pressChoiceItemPropsOptions","value","useChoiceItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","choiceProvider","register","unregister","isSelected","emit","toggle","select","provider","useChoice","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/choice.ts"],"sourcesContent":["import type {\n ComponentInternalInstance,\n ComputedRef,\n ExtractPropTypes,\n InjectionKey,\n PropType,\n Ref,\n UnwrapRef,\n} from 'vue';\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n toRef,\n watch,\n} from 'vue';\n\nimport { wrapInArray } from '../util/array';\nimport { deepEqual } from '../util/common';\nimport {\n findChildrenWithProvide,\n getUid,\n propsFactory,\n} from '../util/vue-component';\nimport { useModelDuplex } from './communication';\n\nexport interface ChoiceItem {\n id: number;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n}\n\nexport interface ChoiceProps {\n disabled: boolean;\n modelValue: unknown;\n multiple?: boolean;\n mandatory?: boolean | 'force' | undefined;\n max?: number | undefined;\n selectedClass: string | undefined;\n 'onUpdate:modelValue': ((value: unknown) => void) | undefined;\n}\n\nexport interface ChoiceProvide {\n register: (item: ChoiceItem, instance: ComponentInternalInstance) => void;\n unregister: (id: number) => void;\n select: (id: number, value: boolean) => void;\n selected: Ref<Readonly<number[]>>;\n selectedClass: Ref<string | undefined>;\n isSelected: (id: number) => boolean;\n disabled: Ref<boolean | undefined>;\n getItemIndex: (value: unknown) => number;\n prev: () => void;\n next: () => void;\n items: ComputedRef<\n { id: number; value: unknown; disabled: boolean | undefined }[]\n >;\n}\n\nexport interface ChoiceItemProvide {\n id: number;\n isSelected: Ref<boolean>;\n toggle: () => void;\n select: (value: boolean) => void;\n selectedClass: Ref<(string | undefined)[] | false>;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n provider: ChoiceProvide;\n}\n\nexport const pressChoicePropsOptions = propsFactory(\n {\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n },\n 'choice',\n);\n\nexport const pressChoiceItemPropsOptions = propsFactory(\n {\n value: null,\n disabled: Boolean,\n selectedClass: String,\n },\n 'choice-item',\n);\n\nexport interface ChoiceItemProps\n extends ExtractPropTypes<ReturnType<typeof pressChoiceItemPropsOptions>> {\n 'onChoice:selected': ((val: { value: boolean }) => void) | undefined;\n}\n\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required?: true,\n): ChoiceItemProvide;\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required: false,\n): ChoiceItemProvide | null;\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required = true,\n): ChoiceItemProvide | null {\n const vm = getCurrentInstance();\n\n if (!vm) {\n throw new Error(\n '\"useChoiceItem\" must be used inside a component setup function',\n );\n }\n\n const id = getUid() as number;\n\n provide(Symbol.for(`${injectKey.description}:id`), id);\n\n const choiceProvider = inject(injectKey, null);\n\n if (!choiceProvider) {\n if (!required) return choiceProvider as null;\n\n throw new Error(`Not found provider`);\n }\n\n const value = toRef(props, 'value');\n const disabled = computed(\n () => !!(choiceProvider.disabled.value || props.disabled),\n );\n\n choiceProvider.register(\n {\n id,\n value,\n disabled,\n },\n vm,\n );\n\n onBeforeUnmount(() => {\n choiceProvider.unregister(id);\n });\n\n const isSelected = computed(() => {\n return choiceProvider.isSelected(id);\n });\n\n const selectedClass = computed(\n () =>\n isSelected.value && [\n choiceProvider.selectedClass.value,\n props.selectedClass,\n ],\n );\n\n watch(isSelected, (value) => {\n vm.emit('group:selected', { value });\n });\n\n return {\n id,\n isSelected,\n toggle: () => choiceProvider.select(id, !isSelected.value),\n select: (value: boolean) => choiceProvider.select(id, value),\n selectedClass,\n value,\n disabled,\n provider: choiceProvider,\n };\n}\n\nexport function useChoice(\n props: ChoiceProps,\n injectKey: InjectionKey<ChoiceProvide>,\n) {\n let isUnmounted = false;\n const items = reactive<ChoiceItem[]>([]);\n const selected = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => {\n if (v == null) return [];\n\n return getIds(items, wrapInArray(v));\n },\n (v) => {\n const arr = getValues(items, v);\n\n return props.multiple ? arr : arr[0];\n },\n );\n\n const groupVm = getCurrentInstance();\n\n function register(item: ChoiceItem, vm: ComponentInternalInstance) {\n const unwrapped = item as unknown as UnwrapRef<ChoiceItem>;\n\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n\n function unregister(id: number) {\n if (isUnmounted) return;\n forceMandatoryValue();\n const index = items.findIndex((item) => item.id === id);\n items.splice(index, 1);\n }\n\n function forceMandatoryValue() {\n const item = items.find((item) => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n\n onMounted(() => {\n forceMandatoryValue();\n });\n\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n\n function select(id: number, value?: boolean) {\n const item = items.find((item) => item.id === id);\n if (value && item?.disabled) return;\n\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex((v: any) => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n )\n return;\n\n if (index < 0 && value) internalValue.push(id);\n else if (index >= 0 && !value) internalValue.splice(index, 1);\n\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n\n selected.value = value ?? !isSelected ? [id] : [];\n }\n }\n\n function step(offset: number) {\n if (props.multiple) {\n }\n\n if (!selected.value.length) {\n const item = items.find((item) => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex((i) => i.id === currentId);\n\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n\n if (newItem.disabled) return;\n\n selected.value = [items[newIndex].id];\n }\n }\n\n const state: ChoiceProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n };\n\n provide(injectKey, state);\n\n return state;\n}\n\nfunction getItemIndex(items: UnwrapRef<ChoiceItem[]>, value: unknown) {\n const ids = getIds(items, [value]);\n\n if (!ids.length) return -1;\n\n return items.findIndex((item) => item.id === ids[0]);\n}\n\nfunction getIds(items: UnwrapRef<ChoiceItem[]>, modelValue: any[]) {\n const ids: number[] = [];\n\n modelValue.forEach((value) => {\n const item = items.find((item) => deepEqual(value, item.value));\n const itemByIndex = items[value];\n\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n\n return ids;\n}\n\nfunction getValues(items: UnwrapRef<ChoiceItem[]>, ids: any[]) {\n const values: unknown[] = [];\n\n ids.forEach((id) => {\n const itemIndex = items.findIndex((item) => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n\n return values;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"choice.mjs","names":["computed","getCurrentInstance","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","wrapInArray","deepEqual","findChildrenWithProvide","getUid","propsFactory","useModelDuplex","pressChoicePropsOptions","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","pressChoiceItemPropsOptions","value","useChoiceItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","choiceProvider","register","unregister","isSelected","emit","toggle","select","provider","useChoice","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/choice.ts"],"sourcesContent":["import type {\n ComponentInternalInstance,\n ComputedRef,\n ExtractPropTypes,\n InjectionKey,\n PropType,\n Ref,\n UnwrapRef,\n} from 'vue';\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n toRef,\n watch,\n} from 'vue';\n\nimport { wrapInArray } from '../util/array';\nimport { deepEqual } from '../util/common';\nimport {\n findChildrenWithProvide,\n getUid,\n propsFactory,\n} from '../util/vue-component';\nimport { useModelDuplex } from './communication';\n\nexport interface ChoiceItem {\n id: number;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n}\n\nexport interface ChoiceProps {\n disabled: boolean;\n modelValue: unknown;\n multiple?: boolean;\n mandatory?: boolean | 'force' | undefined;\n max?: number | undefined;\n selectedClass?: string | undefined;\n 'onUpdate:modelValue': ((value: unknown) => void) | undefined;\n}\n\nexport interface ChoiceProvide {\n register: (item: ChoiceItem, instance: ComponentInternalInstance) => void;\n unregister: (id: number) => void;\n select: (id: number, value: boolean) => void;\n selected: Ref<Readonly<number[]>>;\n selectedClass: Ref<string | undefined>;\n isSelected: (id: number) => boolean;\n disabled: Ref<boolean | undefined>;\n getItemIndex: (value: unknown) => number;\n prev: () => void;\n next: () => void;\n items: ComputedRef<\n { id: number; value: unknown; disabled: boolean | undefined }[]\n >;\n}\n\nexport interface ChoiceItemProvide {\n id: number;\n isSelected: Ref<boolean>;\n toggle: () => void;\n select: (value: boolean) => void;\n selectedClass: Ref<(string | undefined)[] | false>;\n value: Ref<unknown>;\n disabled: Ref<boolean | undefined>;\n provider: ChoiceProvide;\n}\n\nexport const pressChoicePropsOptions = propsFactory(\n {\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String as PropType<string>,\n disabled: Boolean,\n },\n 'choice',\n);\n\nexport const pressChoiceItemPropsOptions = propsFactory(\n {\n value: null,\n disabled: Boolean,\n selectedClass: String,\n },\n 'choice-item',\n);\n\nexport interface ChoiceItemProps\n extends ExtractPropTypes<ReturnType<typeof pressChoiceItemPropsOptions>> {\n 'onChoice:selected': ((val: { value: boolean }) => void) | undefined;\n}\n\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required?: true,\n): ChoiceItemProvide;\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required: false,\n): ChoiceItemProvide | null;\nexport function useChoiceItem(\n props: ChoiceItemProps,\n injectKey: InjectionKey<ChoiceProvide>,\n required = true,\n): ChoiceItemProvide | null {\n const vm = getCurrentInstance();\n\n if (!vm) {\n throw new Error(\n '\"useChoiceItem\" must be used inside a component setup function',\n );\n }\n\n const id = getUid() as number;\n\n provide(Symbol.for(`${injectKey.description}:id`), id);\n\n const choiceProvider = inject(injectKey, null);\n\n if (!choiceProvider) {\n if (!required) return choiceProvider as null;\n\n throw new Error(`Not found provider`);\n }\n\n const value = toRef(props, 'value');\n const disabled = computed(\n () => !!(choiceProvider.disabled.value || props.disabled),\n );\n\n choiceProvider.register(\n {\n id,\n value,\n disabled,\n },\n vm,\n );\n\n onBeforeUnmount(() => {\n choiceProvider.unregister(id);\n });\n\n const isSelected = computed(() => {\n return choiceProvider.isSelected(id);\n });\n\n const selectedClass = computed(\n () =>\n isSelected.value && [\n choiceProvider.selectedClass.value,\n props.selectedClass,\n ],\n );\n\n watch(isSelected, (value) => {\n vm.emit('choice:selected', { value });\n });\n\n return {\n id,\n isSelected,\n toggle: () => choiceProvider.select(id, !isSelected.value),\n select: (value: boolean) => choiceProvider.select(id, value),\n selectedClass,\n value,\n disabled,\n provider: choiceProvider,\n };\n}\n\nexport function useChoice(\n props: ChoiceProps,\n injectKey: InjectionKey<ChoiceProvide>,\n) {\n let isUnmounted = false;\n const items = reactive<ChoiceItem[]>([]);\n const selected = useModelDuplex(\n props,\n 'modelValue',\n [],\n (v) => {\n if (v == null) return [];\n\n return getIds(items, wrapInArray(v));\n },\n (v) => {\n const arr = getValues(items, v);\n\n return props.multiple ? arr : arr[0];\n },\n );\n\n const groupVm = getCurrentInstance();\n\n function register(item: ChoiceItem, vm: ComponentInternalInstance) {\n const unwrapped = item as unknown as UnwrapRef<ChoiceItem>;\n\n const key = Symbol.for(`${injectKey.description}:id`);\n const children = findChildrenWithProvide(key, groupVm?.vnode);\n const index = children.indexOf(vm);\n\n if (index > -1) {\n items.splice(index, 0, unwrapped);\n } else {\n items.push(unwrapped);\n }\n }\n\n function unregister(id: number) {\n if (isUnmounted) return;\n forceMandatoryValue();\n const index = items.findIndex((item) => item.id === id);\n items.splice(index, 1);\n }\n\n function forceMandatoryValue() {\n const item = items.find((item) => !item.disabled);\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id];\n }\n }\n\n onMounted(() => {\n forceMandatoryValue();\n });\n\n onBeforeUnmount(() => {\n isUnmounted = true;\n });\n\n function select(id: number, value?: boolean) {\n const item = items.find((item) => item.id === id);\n if (value && item?.disabled) return;\n\n if (props.multiple) {\n const internalValue = selected.value.slice();\n const index = internalValue.findIndex((v: any) => v === id);\n const isSelected = ~index;\n value = value ?? !isSelected;\n if (isSelected && props.mandatory && internalValue.length <= 1) return;\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n )\n return;\n\n if (index < 0 && value) internalValue.push(id);\n else if (index >= 0 && !value) internalValue.splice(index, 1);\n\n selected.value = internalValue;\n } else {\n const isSelected = selected.value.includes(id);\n if (props.mandatory && isSelected) return;\n selected.value = value ?? !isSelected ? [id] : [];\n }\n }\n\n function step(offset: number) {\n if (props.multiple) {\n }\n\n if (!selected.value.length) {\n const item = items.find((item) => !item.disabled);\n item && (selected.value = [item.id]);\n } else {\n const currentId = selected.value[0];\n const currentIndex = items.findIndex((i) => i.id === currentId);\n\n let newIndex = (currentIndex + offset) % items.length;\n let newItem = items[newIndex];\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length;\n newItem = items[newIndex];\n }\n\n if (newItem.disabled) return;\n\n selected.value = [items[newIndex].id];\n }\n }\n\n const state: ChoiceProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n };\n\n provide(injectKey, state);\n\n return state;\n}\n\nfunction getItemIndex(items: UnwrapRef<ChoiceItem[]>, value: unknown) {\n const ids = getIds(items, [value]);\n\n if (!ids.length) return -1;\n\n return items.findIndex((item) => item.id === ids[0]);\n}\n\nfunction getIds(items: UnwrapRef<ChoiceItem[]>, modelValue: any[]) {\n const ids: number[] = [];\n\n modelValue.forEach((value) => {\n const item = items.find((item) => deepEqual(value, item.value));\n const itemByIndex = items[value];\n\n if (item?.value != null) {\n ids.push(item.id);\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id);\n }\n });\n\n return ids;\n}\n\nfunction getValues(items: UnwrapRef<ChoiceItem[]>, ids: any[]) {\n const values: unknown[] = [];\n ids.forEach((id) => {\n const itemIndex = items.findIndex((item) => item.id === id);\n if (~itemIndex) {\n const item = items[itemIndex];\n values.push(item.value != null ? item.value : itemIndex);\n }\n });\n\n return values;\n}\n"],"mappings":"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"}
@@ -31,7 +31,7 @@ export function useModelDuplex(props) {
31
31
  set(value) {
32
32
  const neo = setOut(value);
33
33
  const current = toRaw(isDefinedProp.value ? getProp() : txValue.value);
34
- if (current === neo || setOut(current) === value) {
34
+ if (current === neo || getIn(current) === value) {
35
35
  return;
36
36
  }
37
37
  txValue.value = neo;
@@ -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 || setOut(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"],"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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"}
@@ -0,0 +1,2 @@
1
+ export * from "./communication.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\r\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"setting.mjs","names":["mergeDeep","ThemeScheme","light","dark","defaultTonalLuminance","defaultPalette","scaleMethod","colors","primary","secondary","tertiary","neutral","positive","negative","warning","info","defaultThemesValues","isDark","background","surface","outline","error","success","shadow","variables","configureOptions","options","scheme","theme","themes","palette"],"sources":["../../../src/composables/theme/setting.ts"],"sourcesContent":["import { mergeDeep } from '../../util/common';\nimport { PaletteOption, ThemeOptions } from './types';\n\nexport const ThemeScheme = {\n light: 'light',\n dark: 'dark',\n} as const;\n\nexport const defaultTonalLuminance = [\n 0, 10, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 95, 98, 99, 100,\n];\n\nexport const defaultPalette: PaletteOption = {\n scaleMethod: 'tonal',\n colors: {\n primary: '#0062a1',\n secondary: '#6251a6',\n tertiary: '#3c691b',\n neutral: '#5d5e61',\n positive: '#009d61',\n negative: '#ba1a1a',\n warning: '#f69400',\n info: '#0d62e6',\n },\n};\n\nexport const defaultThemesValues: any = {\n light: {\n isDark: false,\n colors: {\n primary: '#0062a1',\n secondary: '#6251a6',\n tertiary: '#3c691b',\n background: '#fdfbff',\n 'on-background': '#1a1c1e',\n surface: '#fdfbff',\n 'on-surface': '#1a1c1e',\n 'surface-variant': '#dfe3eb',\n 'on-surface-variant': '#42474e',\n outline: '#73777f',\n 'outline-variant': '#c2c7cf',\n error: '#ba1a1a',\n 'on-error': '#ffffff',\n warning: '#8a5100',\n 'on-warning': '#ffffff',\n info: '#0056d0',\n 'on-info': '#ffffff',\n success: '#006d42',\n 'on-success': '#ffffff',\n shadow: '#000000',\n },\n variables: {\n 'outline-opacity': 0.14,\n 'base-shadow-opacity': 0.14,\n 'base-font': '#141414',\n },\n },\n dark: {\n isDark: true,\n colors: {\n primary: '#9ccaff',\n 'on-primary': '#003257',\n secondary: '#cbbeff',\n 'on-secondary': '#332074',\n tertiary: '#a1d57a',\n 'on-tertiary': '#173800',\n background: '#1a1c1e',\n 'on-background': '#e2e2e6',\n surface: '#1a1c1e',\n 'on-surface': '#e2e2e6',\n 'surface-variant': '#42474e',\n 'on-surface-variant': '#c2c7cf',\n outline: '#8c9199',\n 'outline-variant': '#42474e',\n error: '#ffb4ab',\n 'on-error': '#690005',\n warning: '#ffb86e',\n 'on-warning': '#492900',\n info: '#b1c5ff',\n 'on-info': '#002c72',\n success: '#61dd9a',\n 'on-success': '#003920',\n shadow: '#000000',\n },\n variables: {\n 'outline-opacity': 0.14,\n 'base-shadow-opacity': 0.14,\n 'base-font': '#f5f5f5',\n },\n },\n};\n\nexport function configureOptions(options?: ThemeOptions): any {\n if (!options) {\n return {\n scheme: ThemeScheme.light,\n theme: ['light', 'dark'],\n themes: { ...mergeDeep(defaultThemesValues) },\n palette: { ...mergeDeep(defaultPalette) },\n };\n }\n return {\n scheme: ThemeScheme.light,\n theme: ['light', 'dark'],\n themes: { ...mergeDeep(defaultThemesValues, options.themes) },\n palette: { ...mergeDeep(defaultPalette, options.palette) },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"setting.mjs","names":["mergeDeep","ThemeScheme","light","dark","defaultTonalLuminance","defaultPalette","scaleMethod","colors","primary","secondary","tertiary","neutral","positive","negative","warning","info","defaultThemesValues","isDark","background","surface","outline","error","success","shadow","variables","configureOptions","options","scheme","theme","themes","palette"],"sources":["../../../src/composables/theme/setting.ts"],"sourcesContent":["import { mergeDeep } from '../../util/common';\r\nimport { PaletteOption, ThemeOptions } from './types';\r\n\r\nexport const ThemeScheme = {\r\n light: 'light',\r\n dark: 'dark',\r\n} as const;\r\n\r\nexport const defaultTonalLuminance = [\r\n 0, 10, 20, 25, 30, 35, 40, 50, 60, 70, 80, 90, 95, 98, 99, 100,\r\n];\r\n\r\nexport const defaultPalette: PaletteOption = {\r\n scaleMethod: 'tonal',\r\n colors: {\r\n primary: '#0062a1',\r\n secondary: '#6251a6',\r\n tertiary: '#3c691b',\r\n neutral: '#5d5e61',\r\n positive: '#009d61',\r\n negative: '#ba1a1a',\r\n warning: '#f69400',\r\n info: '#0d62e6',\r\n },\r\n};\r\n\r\nexport const defaultThemesValues: any = {\r\n light: {\r\n isDark: false,\r\n colors: {\r\n primary: '#0062a1',\r\n secondary: '#6251a6',\r\n tertiary: '#3c691b',\r\n background: '#fdfbff',\r\n 'on-background': '#1a1c1e',\r\n surface: '#fdfbff',\r\n 'on-surface': '#1a1c1e',\r\n 'surface-variant': '#dfe3eb',\r\n 'on-surface-variant': '#42474e',\r\n outline: '#73777f',\r\n 'outline-variant': '#c2c7cf',\r\n error: '#ba1a1a',\r\n 'on-error': '#ffffff',\r\n warning: '#8a5100',\r\n 'on-warning': '#ffffff',\r\n info: '#0056d0',\r\n 'on-info': '#ffffff',\r\n success: '#006d42',\r\n 'on-success': '#ffffff',\r\n shadow: '#000000',\r\n },\r\n variables: {\r\n 'outline-opacity': 0.14,\r\n 'base-shadow-opacity': 0.14,\r\n 'base-font': '#141414',\r\n },\r\n },\r\n dark: {\r\n isDark: true,\r\n colors: {\r\n primary: '#9ccaff',\r\n 'on-primary': '#003257',\r\n secondary: '#cbbeff',\r\n 'on-secondary': '#332074',\r\n tertiary: '#a1d57a',\r\n 'on-tertiary': '#173800',\r\n background: '#1a1c1e',\r\n 'on-background': '#e2e2e6',\r\n surface: '#1a1c1e',\r\n 'on-surface': '#e2e2e6',\r\n 'surface-variant': '#42474e',\r\n 'on-surface-variant': '#c2c7cf',\r\n outline: '#8c9199',\r\n 'outline-variant': '#42474e',\r\n error: '#ffb4ab',\r\n 'on-error': '#690005',\r\n warning: '#ffb86e',\r\n 'on-warning': '#492900',\r\n info: '#b1c5ff',\r\n 'on-info': '#002c72',\r\n success: '#61dd9a',\r\n 'on-success': '#003920',\r\n shadow: '#000000',\r\n },\r\n variables: {\r\n 'outline-opacity': 0.14,\r\n 'base-shadow-opacity': 0.14,\r\n 'base-font': '#f5f5f5',\r\n },\r\n },\r\n};\r\n\r\nexport function configureOptions(options?: ThemeOptions): any {\r\n if (!options) {\r\n return {\r\n scheme: ThemeScheme.light,\r\n theme: ['light', 'dark'],\r\n themes: { ...mergeDeep(defaultThemesValues) },\r\n palette: { ...mergeDeep(defaultPalette) },\r\n };\r\n }\r\n return {\r\n scheme: ThemeScheme.light,\r\n theme: ['light', 'dark'],\r\n themes: { ...mergeDeep(defaultThemesValues, options.themes) },\r\n palette: { ...mergeDeep(defaultPalette, options.palette) },\r\n };\r\n}\r\n"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { computed, resolveDynamicComponent, toRef } from 'vue';
2
+ import { hasEventProp, propsFactory } from "../util/index.mjs";
3
+ export const pressVueRouterPropsOptions = propsFactory({
4
+ href: String,
5
+ replace: Boolean,
6
+ to: [String, Object],
7
+ exact: Boolean
8
+ }, 'VueRouter');
9
+ export function useLink(props, attrs) {
10
+ const RouterLink = resolveDynamicComponent('RouterLink');
11
+ const isLink = computed(() => !!(props.href || props.to));
12
+ const isClickable = computed(() => {
13
+ return isLink?.value || hasEventProp(attrs, 'click') || hasEventProp(props, 'click');
14
+ });
15
+ if (typeof RouterLink === 'string') {
16
+ return {
17
+ isLink,
18
+ isClickable,
19
+ href: toRef(props, 'href')
20
+ };
21
+ }
22
+ const link = props.to ? RouterLink.useLink(props) : undefined;
23
+ return {
24
+ isLink,
25
+ isClickable,
26
+ route: link?.route,
27
+ navigate: link?.navigate,
28
+ isActive: link && computed(() => props.exact ? link.isExactActive?.value : link.isActive?.value),
29
+ href: computed(() => props.to ? link?.route.value.href : props.href)
30
+ };
31
+ }
32
+ //# sourceMappingURL=vue-router.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue-router.mjs","names":["computed","resolveDynamicComponent","toRef","hasEventProp","propsFactory","pressVueRouterPropsOptions","href","String","replace","Boolean","to","Object","exact","useLink","props","attrs","RouterLink","isLink","isClickable","value","link","undefined","route","navigate","isActive","isExactActive"],"sources":["../../src/composables/vue-router.ts"],"sourcesContent":["import type { ComputedRef, PropType, Ref, SetupContext } from 'vue';\nimport { computed, resolveDynamicComponent, toRef } from 'vue';\nimport type {\n RouteLocationRaw,\n UseLinkOptions,\n RouterLink as VueRouterLink,\n} from 'vue-router';\nimport { useLink as _useLink } from 'vue-router';\n\nimport { EventProp, hasEventProp, propsFactory } from '../util';\n\nexport interface LinkProps {\n href: string | undefined;\n replace: boolean | undefined;\n to: RouteLocationRaw | undefined;\n exact: boolean | undefined;\n}\n\nexport interface LinkListeners {\n onClick?: EventProp | undefined;\n onClickOnce?: EventProp | undefined;\n}\n\nexport const pressVueRouterPropsOptions = propsFactory(\n {\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType<RouteLocationRaw>,\n exact: Boolean,\n },\n 'VueRouter',\n);\n\nexport interface UseLink\n extends Omit<Partial<ReturnType<typeof _useLink>>, 'href'> {\n isLink: ComputedRef<boolean>;\n isClickable: ComputedRef<boolean>;\n href: Ref<string | undefined>;\n}\n\nexport function useLink(\n props: LinkProps & LinkListeners,\n attrs: SetupContext['attrs'],\n): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as\n | typeof VueRouterLink\n | string;\n\n const isLink = computed(() => !!(props.href || props.to));\n const isClickable = computed(() => {\n return (\n isLink?.value ||\n hasEventProp(attrs, 'click') ||\n hasEventProp(props, 'click')\n );\n });\n if (typeof RouterLink === 'string') {\n return {\n isLink,\n isClickable,\n href: toRef(props, 'href'),\n };\n }\n const link = props.to\n ? RouterLink.useLink(props as UseLinkOptions)\n : undefined;\n return {\n isLink,\n isClickable,\n route: link?.route,\n navigate: link?.navigate,\n isActive:\n link &&\n computed(() =>\n props.exact ? link.isExactActive?.value : link.isActive?.value,\n ),\n href: computed(() => (props.to ? link?.route.value.href : props.href)),\n };\n}\n"],"mappings":"AACA,SAASA,QAAQ,EAAEC,uBAAuB,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAQ3CC,YAAY,EAAEC,YAAY;AAc9C,OAAO,MAAMC,0BAA0B,GAAGD,YAAY,CACpD;EACEE,IAAI,EAAEC,MAAM;EACZC,OAAO,EAAEC,OAAO;EAChBC,EAAE,EAAE,CAACH,MAAM,EAAEI,MAAM,CAA+B;EAClDC,KAAK,EAAEH;AACT,CAAC,EACD,WACF,CAAC;AASD,OAAO,SAASI,OAAOA,CACrBC,KAAgC,EAChCC,KAA4B,EACnB;EACT,MAAMC,UAAU,GAAGf,uBAAuB,CAAC,YAAY,CAE7C;EAEV,MAAMgB,MAAM,GAAGjB,QAAQ,CAAC,MAAM,CAAC,EAAEc,KAAK,CAACR,IAAI,IAAIQ,KAAK,CAACJ,EAAE,CAAC,CAAC;EACzD,MAAMQ,WAAW,GAAGlB,QAAQ,CAAC,MAAM;IACjC,OACEiB,MAAM,EAAEE,KAAK,IACbhB,YAAY,CAACY,KAAK,EAAE,OAAO,CAAC,IAC5BZ,YAAY,CAACW,KAAK,EAAE,OAAO,CAAC;EAEhC,CAAC,CAAC;EACF,IAAI,OAAOE,UAAU,KAAK,QAAQ,EAAE;IAClC,OAAO;MACLC,MAAM;MACNC,WAAW;MACXZ,IAAI,EAAEJ,KAAK,CAACY,KAAK,EAAE,MAAM;IAC3B,CAAC;EACH;EACA,MAAMM,IAAI,GAAGN,KAAK,CAACJ,EAAE,GACjBM,UAAU,CAACH,OAAO,CAACC,KAAuB,CAAC,GAC3CO,SAAS;EACb,OAAO;IACLJ,MAAM;IACNC,WAAW;IACXI,KAAK,EAAEF,IAAI,EAAEE,KAAK;IAClBC,QAAQ,EAAEH,IAAI,EAAEG,QAAQ;IACxBC,QAAQ,EACNJ,IAAI,IACJpB,QAAQ,CAAC,MACPc,KAAK,CAACF,KAAK,GAAGQ,IAAI,CAACK,aAAa,EAAEN,KAAK,GAAGC,IAAI,CAACI,QAAQ,EAAEL,KAC3D,CAAC;IACHb,IAAI,EAAEN,QAAQ,CAAC,MAAOc,KAAK,CAACJ,EAAE,GAAGU,IAAI,EAAEE,KAAK,CAACH,KAAK,CAACb,IAAI,GAAGQ,KAAK,CAACR,IAAK;EACvE,CAAC;AACH"}
@@ -1 +1,3 @@
1
+ @forward './settings/variables';
2
+
1
3
  $border-radius-root: 10px !default;
@@ -1,11 +1,11 @@
1
- @use 'sass:map';
2
-
3
- @use '../util/helper';
4
-
5
- // yui/app theme
6
- $theme--dark: () !default;
7
- $theme--dark: map.deep-merge(
8
- (
9
- ),
10
- $theme--dark
11
- );
1
+ @use 'sass:map';
2
+
3
+ @use '../util/helper';
4
+
5
+ // yui/app theme
6
+ $theme--dark: () !default;
7
+ $theme--dark: map.deep-merge(
8
+ (
9
+ ),
10
+ $theme--dark
11
+ );
@@ -1,11 +1,11 @@
1
- @use 'sass:map';
2
-
3
- @use '../util/helper';
4
-
5
- // yui theme
6
- $theme--light: () !default;
7
- $theme--light: map.deep-merge(
8
- (
9
- ),
10
- $theme--light
11
- );
1
+ @use 'sass:map';
2
+
3
+ @use '../util/helper';
4
+
5
+ // yui theme
6
+ $theme--light: () !default;
7
+ $theme--light: map.deep-merge(
8
+ (
9
+ ),
10
+ $theme--light
11
+ );
@@ -0,0 +1,16 @@
1
+ export * from "./common.mjs";
2
+ export * from "./collection.mjs";
3
+ export * from "./array.mjs";
4
+ export * from "./string.mjs";
5
+ export * from "./validation.mjs";
6
+ export * from "./debounce.mjs";
7
+ export * from "./dom.mjs";
8
+ export * from "./ui.mjs";
9
+ export * from "./rect.mjs";
10
+ export * from "./anchor.mjs";
11
+ export * from "./scroll.mjs";
12
+ export * from "./frame-scheduler.mjs";
13
+ export * from "./vue-component.mjs";
14
+ export * from "./reactivity.mjs";
15
+ export * from "./color/index.mjs";
16
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/util/index.ts"],"sourcesContent":["export * from './common';\r\nexport * from './collection';\r\nexport * from './array';\r\nexport * from './string';\r\nexport * from './validation';\r\nexport * from './debounce';\r\nexport * from './dom';\r\nexport * from './ui';\r\nexport * from './rect';\r\nexport * from './anchor';\r\nexport * from './scroll';\r\nexport * from './frame-scheduler';\r\nexport * from './vue-component';\r\nexport * from './reactivity';\r\nexport * from './color';\r\n"],"mappings":""}
@@ -1,4 +1,9 @@
1
1
  import { computed, reactive, toRefs, watchEffect } from 'vue';
2
+
3
+ /**
4
+ * For Destructuring assignment
5
+ * @param getter
6
+ */
2
7
  export function $computed(getter) {
3
8
  const refs = reactive({});
4
9
  const base = computed(getter);
@@ -1 +1 @@
1
- {"version":3,"file":"reactivity.mjs","names":["computed","reactive","toRefs","watchEffect","$computed","getter","refs","base","key","value","flush"],"sources":["../../src/util/reactivity.ts"],"sourcesContent":["import type { ComputedGetter } from 'vue';\nimport { computed, reactive, toRefs, watchEffect } from 'vue';\n\nexport function $computed<T extends object>(getter: ComputedGetter<T>) {\n const refs = reactive({}) as T;\n const base = computed(getter);\n watchEffect(\n () => {\n for (const key in base.value) {\n refs[key] = base.value[key];\n }\n },\n { flush: 'sync' },\n );\n return toRefs(refs);\n}\n"],"mappings":"AACA,SAASA,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,KAAK;AAE7D,OAAO,SAASC,SAASA,CAAmBC,MAAyB,EAAE;EACrE,MAAMC,IAAI,GAAGL,QAAQ,CAAC,CAAC,CAAC,CAAM;EAC9B,MAAMM,IAAI,GAAGP,QAAQ,CAACK,MAAM,CAAC;EAC7BF,WAAW,CACT,MAAM;IACJ,KAAK,MAAMK,GAAG,IAAID,IAAI,CAACE,KAAK,EAAE;MAC5BH,IAAI,CAACE,GAAG,CAAC,GAAGD,IAAI,CAACE,KAAK,CAACD,GAAG,CAAC;IAC7B;EACF,CAAC,EACD;IAAEE,KAAK,EAAE;EAAO,CAClB,CAAC;EACD,OAAOR,MAAM,CAACI,IAAI,CAAC;AACrB"}
1
+ {"version":3,"file":"reactivity.mjs","names":["computed","reactive","toRefs","watchEffect","$computed","getter","refs","base","key","value","flush"],"sources":["../../src/util/reactivity.ts"],"sourcesContent":["import type { ComputedGetter } from 'vue';\r\nimport { computed, reactive, toRefs, watchEffect } from 'vue';\r\n\r\n/**\r\n * For Destructuring assignment\r\n * @param getter\r\n */\r\nexport function $computed<T extends object>(getter: ComputedGetter<T>) {\r\n const refs = reactive({}) as T;\r\n const base = computed(getter);\r\n watchEffect(\r\n () => {\r\n for (const key in base.value) {\r\n refs[key] = base.value[key];\r\n }\r\n },\r\n { flush: 'sync' },\r\n );\r\n return toRefs(refs);\r\n}\r\n"],"mappings":"AACA,SAASA,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,KAAK;;AAE7D;AACA;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAAmBC,MAAyB,EAAE;EACrE,MAAMC,IAAI,GAAGL,QAAQ,CAAC,CAAC,CAAC,CAAM;EAC9B,MAAMM,IAAI,GAAGP,QAAQ,CAACK,MAAM,CAAC;EAC7BF,WAAW,CACT,MAAM;IACJ,KAAK,MAAMK,GAAG,IAAID,IAAI,CAACE,KAAK,EAAE;MAC5BH,IAAI,CAACE,GAAG,CAAC,GAAGD,IAAI,CAACE,KAAK,CAACD,GAAG,CAAC;IAC7B;EACF,CAAC,EACD;IAAEE,KAAK,EAAE;EAAO,CAClB,CAAC;EACD,OAAOR,MAAM,CAACI,IAAI,CAAC;AACrB"}
@@ -1,3 +1,4 @@
1
+ import { capitalize } from '@vue/runtime-core';
1
2
  import { getCurrentInstance } from 'vue';
2
3
  import { hasOwnProperty } from "./common.mjs";
3
4
  export function getSlot(vm) {
@@ -44,6 +45,23 @@ export function bindClasses(classes) {
44
45
  export function getHtmlElement(node) {
45
46
  return node && hasOwnProperty(node, '$el') ? node.$el : node;
46
47
  }
48
+ export function findChildrenWithProvide(key, vnode) {
49
+ if (!vnode || typeof vnode !== 'object') {
50
+ return [];
51
+ }
52
+ if (Array.isArray(vnode)) {
53
+ return vnode.map(child => findChildrenWithProvide(key, child)).flat(1);
54
+ } else if (Array.isArray(vnode.children)) {
55
+ return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1);
56
+ } else if (vnode.component) {
57
+ if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key)) {
58
+ return [vnode.component];
59
+ } else if (vnode.component.subTree) {
60
+ return findChildrenWithProvide(key, vnode.component.subTree).flat(1);
61
+ }
62
+ }
63
+ return [];
64
+ }
47
65
  export function propsFactory(props, source) {
48
66
  return defaults => {
49
67
  return Object.keys(props).reduce((options, prop) => {
@@ -67,6 +85,12 @@ export function propsFactory(props, source) {
67
85
  }, {});
68
86
  };
69
87
  }
88
+ export function hasEventProp(props, type) {
89
+ const onType = `on${capitalize(type)}`;
90
+ return !!(props[onType] || props[`${onType}Once`] || props[`${onType}Capture`] || props[`${onType}OnceCapture`] || props[`${onType}CaptureOnce`]);
91
+ }
70
92
 
71
93
  // Copied from Vue
94
+
95
+ export const EventPropOption = () => [Function, Array];
72
96
  //# sourceMappingURL=vue-component.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"vue-component.mjs","names":["getCurrentInstance","hasOwnProperty","getSlot","vm","name","arguments","length","undefined","data","optional","$slots","slot","Function","filter","node","el","nodeType","getUid","uid","chooseProps","props","target","Object","keys","reduce","acc","prop","bindClasses","classes","boundClasses","Array","isArray","clas","getHtmlElement","$el","propsFactory","source","defaults","options","option","isObjectOption","objectOption","type","default"],"sources":["../../src/util/vue-component.ts"],"sourcesContent":["import type { IfAny } from '@vue/shared';\r\nimport type {\r\n ComponentObjectPropsOptions,\r\n ComponentPublicInstance,\r\n ExtractPropTypes,\r\n Prop,\r\n PropType,\r\n VNode,\r\n} from 'vue';\r\nimport { getCurrentInstance } from 'vue';\r\n\r\nimport { hasOwnProperty } from './common';\r\n\r\nexport function getSlot(\r\n vm: ComponentPublicInstance | any,\r\n // eslint-disable-next-line default-param-last\r\n name = 'default',\r\n data?: any | (() => any),\r\n optional = false,\r\n): VNode[] | undefined {\r\n if (vm.$slots?.[name]) {\r\n const slot = vm.$slots[name]!(data instanceof Function ? data() : data);\r\n return slot.filter((node: VNode) => {\r\n return node.el?.nodeType !== 8;\r\n });\r\n }\r\n return undefined;\r\n}\r\n\r\nexport function getUid() {\r\n const vm = getCurrentInstance();\r\n return vm?.uid;\r\n}\r\n\r\nexport function chooseProps<PropsOptions extends ComponentObjectPropsOptions>(\r\n props: any,\r\n target: PropsOptions,\r\n): ExtractPropTypes<PropsOptions> {\r\n return Object.keys(target).reduce((acc, prop) => {\r\n if (props && prop in props) {\r\n acc[prop as keyof ExtractPropTypes<PropsOptions>] = props[prop];\r\n }\r\n return acc;\r\n }, {} as ExtractPropTypes<PropsOptions>);\r\n}\r\n\r\nexport function bindClasses(\r\n classes: string | string[] | Record<string, any> | undefined,\r\n) {\r\n const boundClasses = {} as Record<string, boolean>;\r\n if (typeof classes === 'string') {\r\n boundClasses[classes] = true;\r\n } else if (Array.isArray(classes)) {\r\n (classes as string[]).reduce((acc, clas) => {\r\n acc[clas] = true;\r\n return acc;\r\n }, boundClasses);\r\n } else if (typeof classes === 'object') {\r\n Object.keys(classes).reduce((acc, clas) => {\r\n acc[clas] = !!classes[clas];\r\n return acc;\r\n }, boundClasses);\r\n }\r\n return boundClasses;\r\n}\r\n\r\nexport function getHtmlElement<N extends object | undefined>(\r\n node: N,\r\n): Exclude<N, ComponentPublicInstance> | HTMLElement {\r\n return node && hasOwnProperty(node, '$el')\r\n ? ((node as ComponentPublicInstance).$el as HTMLElement)\r\n : (node as HTMLElement);\r\n}\r\n\r\nexport function propsFactory<PropsOptions extends ComponentObjectPropsOptions>(\r\n props: PropsOptions,\r\n source: string,\r\n) {\r\n return <Defaults extends PartialKeys<PropsOptions> = {}>(\r\n defaults?: Defaults,\r\n ): OverwrittenPropOptions<PropsOptions, Defaults> => {\r\n return Object.keys(props).reduce<any>((options, prop) => {\r\n const option = props[prop];\r\n const isObjectOption =\r\n typeof option === 'object' && option != null && !Array.isArray(option);\r\n const objectOption = isObjectOption ? option : { type: option };\r\n if (defaults && prop in defaults) {\r\n options[prop] = {\r\n ...objectOption,\r\n default: defaults[prop],\r\n };\r\n } else {\r\n options[prop] = objectOption;\r\n }\r\n\r\n if (source && !options[prop].source) {\r\n options[prop].source = source;\r\n }\r\n return options;\r\n }, {} as PropsOptions);\r\n };\r\n}\r\n\r\ntype OverwrittenPropOptions<\r\n T extends ComponentObjectPropsOptions,\r\n D extends PartialKeys<T>,\r\n> = {\r\n [P in keyof T]-?: unknown extends D[P]\r\n ? T[P]\r\n : T[P] extends Record<string, unknown>\r\n ? Omit<T[P], 'type' | 'default'> & {\r\n type: FollowPropType<Pick<T[P], 'type'>, T[P], D[P]>;\r\n default: MergeDefault<T[P], D[P]>;\r\n }\r\n : {\r\n type: PropType<MergeDefault<P, D>>;\r\n default: MergeDefault<T[P], D[P]>;\r\n };\r\n};\r\n\r\ntype MergeDefault<T, D> = unknown extends D\r\n ? InferPropType<T>\r\n : NonNullable<InferPropType<T>> | D;\r\n\r\ntype FollowPropType<T, P, D> = [T] extends [PropType<unknown>]\r\n ? T\r\n : PropType<MergeDefault<P, D>>;\r\n\r\ntype PartialKeys<T> = { [P in keyof T]?: unknown };\r\n\r\n// Copied from Vue\r\ntype InferPropType<T> = [T] extends [null]\r\n ? any // null & true would fail to infer\r\n : [T] extends [{ type: null | true }]\r\n ? // As TS issue https://github.com/Microsoft/TypeScript/issues/14829\r\n // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`\r\n // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\r\n any\r\n : [T] extends [ObjectConstructor | { type: ObjectConstructor }]\r\n ? Record<string, any>\r\n : [T] extends [BooleanConstructor | { type: BooleanConstructor }]\r\n ? boolean\r\n : [T] extends [DateConstructor | { type: DateConstructor }]\r\n ? Date\r\n : [T] extends [(infer U)[] | { type: (infer U)[] }]\r\n ? U extends DateConstructor\r\n ? Date | InferPropType<U>\r\n : InferPropType<U>\r\n : [T] extends [Prop<infer V, infer D>]\r\n ? unknown extends V\r\n ? IfAny<V, V, D>\r\n : V\r\n : T;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"vue-component.mjs","names":["capitalize","getCurrentInstance","hasOwnProperty","getSlot","vm","name","arguments","length","undefined","data","optional","$slots","slot","Function","filter","node","el","nodeType","getUid","uid","chooseProps","props","target","Object","keys","reduce","acc","prop","bindClasses","classes","boundClasses","Array","isArray","clas","getHtmlElement","$el","findChildrenWithProvide","key","vnode","map","child","flat","children","component","getOwnPropertySymbols","provides","includes","subTree","propsFactory","source","defaults","options","option","isObjectOption","objectOption","type","default","hasEventProp","onType","EventPropOption"],"sources":["../../src/util/vue-component.ts"],"sourcesContent":["import { ComponentInternalInstance, capitalize } from '@vue/runtime-core';\nimport type { IfAny } from '@vue/shared';\nimport type {\n ComponentObjectPropsOptions,\n ComponentPublicInstance,\n ExtractPropTypes,\n InjectionKey,\n Prop,\n PropType,\n VNode,\n VNodeChild,\n} from 'vue';\nimport { getCurrentInstance } from 'vue';\n\nimport { hasOwnProperty } from './common';\n\nexport function getSlot(\n vm: ComponentPublicInstance | any,\n // eslint-disable-next-line default-param-last\n name = 'default',\n data?: any | (() => any),\n optional = false,\n): VNode[] | undefined {\n if (vm.$slots?.[name]) {\n const slot = vm.$slots[name]!(data instanceof Function ? data() : data);\n return slot.filter((node: VNode) => {\n return node.el?.nodeType !== 8;\n });\n }\n return undefined;\n}\n\nexport function getUid() {\n const vm = getCurrentInstance();\n return vm?.uid;\n}\n\nexport function chooseProps<PropsOptions extends ComponentObjectPropsOptions>(\n props: any,\n target: PropsOptions,\n): ExtractPropTypes<PropsOptions> {\n return Object.keys(target).reduce((acc, prop) => {\n if (props && prop in props) {\n acc[prop as keyof ExtractPropTypes<PropsOptions>] = props[prop];\n }\n return acc;\n }, {} as ExtractPropTypes<PropsOptions>);\n}\n\nexport function bindClasses(\n classes: string | string[] | Record<string, any> | undefined,\n) {\n const boundClasses = {} as Record<string, boolean>;\n if (typeof classes === 'string') {\n boundClasses[classes] = true;\n } else if (Array.isArray(classes)) {\n (classes as string[]).reduce((acc, clas) => {\n acc[clas] = true;\n return acc;\n }, boundClasses);\n } else if (typeof classes === 'object') {\n Object.keys(classes).reduce((acc, clas) => {\n acc[clas] = !!classes[clas];\n return acc;\n }, boundClasses);\n }\n return boundClasses;\n}\n\nexport function getHtmlElement<N extends object | undefined>(\n node: N,\n): Exclude<N, ComponentPublicInstance> | HTMLElement {\n return node && hasOwnProperty(node, '$el')\n ? ((node as ComponentPublicInstance).$el as HTMLElement)\n : (node as HTMLElement);\n}\n\nexport function findChildrenWithProvide(\n key: InjectionKey<any> | symbol,\n vnode?: VNodeChild,\n): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') {\n return [];\n }\n\n if (Array.isArray(vnode)) {\n return vnode.map((child) => findChildrenWithProvide(key, child)).flat(1);\n } else if (Array.isArray(vnode.children)) {\n return vnode.children\n .map((child) => findChildrenWithProvide(key, child))\n .flat(1);\n } else if (vnode.component) {\n if (\n Object.getOwnPropertySymbols((vnode.component as any).provides).includes(\n key as symbol,\n )\n ) {\n return [vnode.component];\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1);\n }\n }\n\n return [];\n}\n\nexport function propsFactory<PropsOptions extends ComponentObjectPropsOptions>(\n props: PropsOptions,\n source: string,\n) {\n return <Defaults extends PartialKeys<PropsOptions> = {}>(\n defaults?: Defaults,\n ): OverwrittenPropOptions<PropsOptions, Defaults> => {\n return Object.keys(props).reduce<any>((options, prop) => {\n const option = props[prop];\n const isObjectOption =\n typeof option === 'object' && option != null && !Array.isArray(option);\n const objectOption = isObjectOption ? option : { type: option };\n if (defaults && prop in defaults) {\n options[prop] = {\n ...objectOption,\n default: defaults[prop],\n };\n } else {\n options[prop] = objectOption;\n }\n\n if (source && !options[prop].source) {\n options[prop].source = source;\n }\n return options;\n }, {} as PropsOptions);\n };\n}\n\nexport function hasEventProp(props: Record<string, any>, type: string) {\n const onType = `on${capitalize(type)}`;\n return !!(\n props[onType] ||\n props[`${onType}Once`] ||\n props[`${onType}Capture`] ||\n props[`${onType}OnceCapture`] ||\n props[`${onType}CaptureOnce`]\n );\n}\n\ntype OverwrittenPropOptions<\n T extends ComponentObjectPropsOptions,\n D extends PartialKeys<T>,\n> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record<string, unknown>\n ? Omit<T[P], 'type' | 'default'> & {\n type: PropType<MergeDefault<T[P], D[P]>>;\n default: MergeDefault<T[P], D[P]>;\n }\n : {\n type: PropType<MergeDefault<T[P], D[P]>>;\n default: MergeDefault<T[P], D[P]>;\n };\n};\n\ntype MergeDefault<T, D> = unknown extends D\n ? InferPropType<T>\n : NonNullable<InferPropType<T>> | D;\n\ntype FollowPropType<T, P, D> = [T] extends [PropType<unknown>]\n ? T\n : PropType<MergeDefault<P, D>>;\n\ntype PartialKeys<T> = { [P in keyof T]?: unknown };\n\n// Copied from Vue\ntype InferPropType<T> = [T] extends [null]\n ? any // null & true would fail to infer\n : [T] extends [{ type: null | true }]\n ? // As TS issue https://github.com/Microsoft/TypeScript/issues/14829\n // somehow `ObjectConstructor` when inferred from { (): T } becomes `any`\n // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n any\n : [T] extends [ObjectConstructor | { type: ObjectConstructor }]\n ? Record<string, any>\n : [T] extends [BooleanConstructor | { type: BooleanConstructor }]\n ? boolean\n : [T] extends [DateConstructor | { type: DateConstructor }]\n ? Date\n : [T] extends [(infer U)[] | { type: (infer U)[] }]\n ? U extends DateConstructor\n ? Date | InferPropType<U>\n : InferPropType<U>\n : [T] extends [Prop<infer V, infer D>]\n ? unknown extends V\n ? IfAny<V, V, D>\n : V\n : T;\n\nexport type EventProp<T extends any[] = any[], F = (...args: T) => any> =\n | F\n | F[];\n\nexport const EventPropOption = <T extends any[] = any[]>() =>\n [Function, Array] as PropType<EventProp<T>>;\n"],"mappings":"AAAA,SAAoCA,UAAU,QAAQ,mBAAmB;AAYzE,SAASC,kBAAkB,QAAQ,KAAK;AAAC,SAEhCC,cAAc;AAEvB,OAAO,SAASC,OAAOA,CACrBC,EAAiC,EAKZ;EAAA,IAHrBC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EAAA,IAChBG,IAAwB,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAAA,IACxBE,QAAQ,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAEhB,IAAIF,EAAE,CAACO,MAAM,GAAGN,IAAI,CAAC,EAAE;IACrB,MAAMO,IAAI,GAAGR,EAAE,CAACO,MAAM,CAACN,IAAI,CAAC,CAAEI,IAAI,YAAYI,QAAQ,GAAGJ,IAAI,CAAC,CAAC,GAAGA,IAAI,CAAC;IACvE,OAAOG,IAAI,CAACE,MAAM,CAAEC,IAAW,IAAK;MAClC,OAAOA,IAAI,CAACC,EAAE,EAAEC,QAAQ,KAAK,CAAC;IAChC,CAAC,CAAC;EACJ;EACA,OAAOT,SAAS;AAClB;AAEA,OAAO,SAASU,MAAMA,CAAA,EAAG;EACvB,MAAMd,EAAE,GAAGH,kBAAkB,CAAC,CAAC;EAC/B,OAAOG,EAAE,EAAEe,GAAG;AAChB;AAEA,OAAO,SAASC,WAAWA,CACzBC,KAAU,EACVC,MAAoB,EACY;EAChC,OAAOC,MAAM,CAACC,IAAI,CAACF,MAAM,CAAC,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;IAC/C,IAAIN,KAAK,IAAIM,IAAI,IAAIN,KAAK,EAAE;MAC1BK,GAAG,CAACC,IAAI,CAAyC,GAAGN,KAAK,CAACM,IAAI,CAAC;IACjE;IACA,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAmC,CAAC;AAC1C;AAEA,OAAO,SAASE,WAAWA,CACzBC,OAA4D,EAC5D;EACA,MAAMC,YAAY,GAAG,CAAC,CAA4B;EAClD,IAAI,OAAOD,OAAO,KAAK,QAAQ,EAAE;IAC/BC,YAAY,CAACD,OAAO,CAAC,GAAG,IAAI;EAC9B,CAAC,MAAM,IAAIE,KAAK,CAACC,OAAO,CAACH,OAAO,CAAC,EAAE;IAChCA,OAAO,CAAcJ,MAAM,CAAC,CAACC,GAAG,EAAEO,IAAI,KAAK;MAC1CP,GAAG,CAACO,IAAI,CAAC,GAAG,IAAI;MAChB,OAAOP,GAAG;IACZ,CAAC,EAAEI,YAAY,CAAC;EAClB,CAAC,MAAM,IAAI,OAAOD,OAAO,KAAK,QAAQ,EAAE;IACtCN,MAAM,CAACC,IAAI,CAACK,OAAO,CAAC,CAACJ,MAAM,CAAC,CAACC,GAAG,EAAEO,IAAI,KAAK;MACzCP,GAAG,CAACO,IAAI,CAAC,GAAG,CAAC,CAACJ,OAAO,CAACI,IAAI,CAAC;MAC3B,OAAOP,GAAG;IACZ,CAAC,EAAEI,YAAY,CAAC;EAClB;EACA,OAAOA,YAAY;AACrB;AAEA,OAAO,SAASI,cAAcA,CAC5BnB,IAAO,EAC4C;EACnD,OAAOA,IAAI,IAAIb,cAAc,CAACa,IAAI,EAAE,KAAK,CAAC,GACpCA,IAAI,CAA6BoB,GAAG,GACrCpB,IAAoB;AAC3B;AAEA,OAAO,SAASqB,uBAAuBA,CACrCC,GAA+B,EAC/BC,KAAkB,EACW;EAC7B,IAAI,CAACA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACvC,OAAO,EAAE;EACX;EAEA,IAAIP,KAAK,CAACC,OAAO,CAACM,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK,CAACC,GAAG,CAAEC,KAAK,IAAKJ,uBAAuB,CAACC,GAAG,EAAEG,KAAK,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;EAC1E,CAAC,MAAM,IAAIV,KAAK,CAACC,OAAO,CAACM,KAAK,CAACI,QAAQ,CAAC,EAAE;IACxC,OAAOJ,KAAK,CAACI,QAAQ,CAClBH,GAAG,CAAEC,KAAK,IAAKJ,uBAAuB,CAACC,GAAG,EAAEG,KAAK,CAAC,CAAC,CACnDC,IAAI,CAAC,CAAC,CAAC;EACZ,CAAC,MAAM,IAAIH,KAAK,CAACK,SAAS,EAAE;IAC1B,IACEpB,MAAM,CAACqB,qBAAqB,CAAEN,KAAK,CAACK,SAAS,CAASE,QAAQ,CAAC,CAACC,QAAQ,CACtET,GACF,CAAC,EACD;MACA,OAAO,CAACC,KAAK,CAACK,SAAS,CAAC;IAC1B,CAAC,MAAM,IAAIL,KAAK,CAACK,SAAS,CAACI,OAAO,EAAE;MAClC,OAAOX,uBAAuB,CAACC,GAAG,EAAEC,KAAK,CAACK,SAAS,CAACI,OAAO,CAAC,CAACN,IAAI,CAAC,CAAC,CAAC;IACtE;EACF;EAEA,OAAO,EAAE;AACX;AAEA,OAAO,SAASO,YAAYA,CAC1B3B,KAAmB,EACnB4B,MAAc,EACd;EACA,OACEC,QAAmB,IACgC;IACnD,OAAO3B,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC,CAACI,MAAM,CAAM,CAAC0B,OAAO,EAAExB,IAAI,KAAK;MACvD,MAAMyB,MAAM,GAAG/B,KAAK,CAACM,IAAI,CAAC;MAC1B,MAAM0B,cAAc,GAClB,OAAOD,MAAM,KAAK,QAAQ,IAAIA,MAAM,IAAI,IAAI,IAAI,CAACrB,KAAK,CAACC,OAAO,CAACoB,MAAM,CAAC;MACxE,MAAME,YAAY,GAAGD,cAAc,GAAGD,MAAM,GAAG;QAAEG,IAAI,EAAEH;MAAO,CAAC;MAC/D,IAAIF,QAAQ,IAAIvB,IAAI,IAAIuB,QAAQ,EAAE;QAChCC,OAAO,CAACxB,IAAI,CAAC,GAAG;UACd,GAAG2B,YAAY;UACfE,OAAO,EAAEN,QAAQ,CAACvB,IAAI;QACxB,CAAC;MACH,CAAC,MAAM;QACLwB,OAAO,CAACxB,IAAI,CAAC,GAAG2B,YAAY;MAC9B;MAEA,IAAIL,MAAM,IAAI,CAACE,OAAO,CAACxB,IAAI,CAAC,CAACsB,MAAM,EAAE;QACnCE,OAAO,CAACxB,IAAI,CAAC,CAACsB,MAAM,GAAGA,MAAM;MAC/B;MACA,OAAOE,OAAO;IAChB,CAAC,EAAE,CAAC,CAAiB,CAAC;EACxB,CAAC;AACH;AAEA,OAAO,SAASM,YAAYA,CAACpC,KAA0B,EAAEkC,IAAY,EAAE;EACrE,MAAMG,MAAM,GAAI,KAAI1D,UAAU,CAACuD,IAAI,CAAE,EAAC;EACtC,OAAO,CAAC,EACNlC,KAAK,CAACqC,MAAM,CAAC,IACbrC,KAAK,CAAE,GAAEqC,MAAO,MAAK,CAAC,IACtBrC,KAAK,CAAE,GAAEqC,MAAO,SAAQ,CAAC,IACzBrC,KAAK,CAAE,GAAEqC,MAAO,aAAY,CAAC,IAC7BrC,KAAK,CAAE,GAAEqC,MAAO,aAAY,CAAC,CAC9B;AACH;;AA6BA;;AA4BA,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAC7B,CAAC9C,QAAQ,EAAEkB,KAAK,CAA2B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuyeon",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "keywords": [
5
5
  "UI Library",
6
6
  "Vue"
@@ -31,6 +31,14 @@
31
31
  "types": "./types/components/index.d.ts",
32
32
  "module": "./lib/components/index.mjs"
33
33
  },
34
+ "./composibles": {
35
+ "types": "./types/composibles/index.d.ts",
36
+ "module": "./lib/composibles/index.mjs"
37
+ },
38
+ "./util": {
39
+ "types": "./types/util/index.d.ts",
40
+ "module": "./lib/util/index.mjs"
41
+ },
34
42
  "./components/*": "./lib/components/*/index.mjs",
35
43
  "./types/*": "./types/*",
36
44
  "./*": "./*"
@@ -94,9 +102,11 @@
94
102
  "vite": "^4.3.8",
95
103
  "vite-plugin-dts": "^2.2.0",
96
104
  "vue": "^3.3.4",
105
+ "vue-router": "^4.2.5",
97
106
  "vue-tsc": "^1.2.0"
98
107
  },
99
108
  "peerDependencies": {
109
+ "motion": "^10.15.5",
100
110
  "vue": "^3.3.0",
101
111
  "vue-i18n": "^9.0.0"
102
112
  },