yuyeon 0.0.43 → 0.0.45

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 (95) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +2850 -2771
  3. package/dist/yuyeon.umd.cjs +6 -6
  4. package/lib/components/badge/YBadge.mjs +66 -4
  5. package/lib/components/badge/YBadge.mjs.map +1 -1
  6. package/lib/components/badge/YBadge.scss +76 -0
  7. package/lib/components/button/YButton.mjs +2 -2
  8. package/lib/components/button/YButton.mjs.map +1 -1
  9. package/lib/components/card/YCard.mjs +5 -3
  10. package/lib/components/card/YCard.mjs.map +1 -1
  11. package/lib/components/card/YCard.scss +7 -0
  12. package/lib/components/card/YCardBody.mjs +2 -2
  13. package/lib/components/card/YCardBody.mjs.map +1 -1
  14. package/lib/components/card/YCardFooter.mjs +2 -2
  15. package/lib/components/card/YCardFooter.mjs.map +1 -1
  16. package/lib/components/card/YCardHeader.mjs +2 -2
  17. package/lib/components/card/YCardHeader.mjs.map +1 -1
  18. package/lib/components/card/index.mjs +4 -5
  19. package/lib/components/card/index.mjs.map +1 -1
  20. package/lib/components/checkbox/YCheckbox.mjs +1 -1
  21. package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
  22. package/lib/components/checkbox/index.mjs +1 -2
  23. package/lib/components/checkbox/index.mjs.map +1 -1
  24. package/lib/components/chip/YChip.mjs +2 -2
  25. package/lib/components/chip/YChip.mjs.map +1 -1
  26. package/lib/components/chip/index.mjs +1 -2
  27. package/lib/components/chip/index.mjs.map +1 -1
  28. package/lib/components/dropdown/YDropdown.mjs.map +1 -1
  29. package/lib/components/form/YForm.mjs +2 -2
  30. package/lib/components/form/YForm.mjs.map +1 -1
  31. package/lib/components/form/index.mjs +1 -3
  32. package/lib/components/form/index.mjs.map +1 -1
  33. package/lib/components/index.mjs +1 -0
  34. package/lib/components/index.mjs.map +1 -1
  35. package/lib/components/loading/YSpinnerRing.mjs.map +1 -1
  36. package/lib/components/menu/YMenu.mjs +4 -4
  37. package/lib/components/menu/YMenu.mjs.map +1 -1
  38. package/lib/components/pagination/YPagination.mjs.map +1 -1
  39. package/lib/components/panel/YDividePanel.mjs.map +1 -1
  40. package/lib/components/progress-bar/YProgressBar.mjs +3 -2
  41. package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
  42. package/lib/components/progress-bar/YProgressBar.scss +6 -2
  43. package/lib/components/select/YSelect.mjs +10 -6
  44. package/lib/components/select/YSelect.mjs.map +1 -1
  45. package/lib/components/snackbar/YSnackbar.mjs.map +1 -1
  46. package/lib/components/switch/YSwitch.mjs.map +1 -1
  47. package/lib/components/tab/YTab.mjs.map +1 -1
  48. package/lib/components/table/YDataTableCell.mjs.map +1 -1
  49. package/lib/components/table/YDataTableHead.mjs.map +1 -1
  50. package/lib/components/table/YDataTableRow.mjs.map +1 -1
  51. package/lib/components/table/YTable.mjs.map +1 -1
  52. package/lib/components/table/types/index.mjs.map +1 -1
  53. package/lib/components/text-highlighter/YTextHighlighter.mjs +1 -1
  54. package/lib/components/text-highlighter/YTextHighlighter.mjs.map +1 -1
  55. package/lib/components/text-highlighter/index.mjs +1 -2
  56. package/lib/components/text-highlighter/index.mjs.map +1 -1
  57. package/lib/components/tooltip/YTooltip.mjs.map +1 -1
  58. package/lib/components/tree-view/YTreeView.mjs +6 -1
  59. package/lib/components/tree-view/YTreeView.mjs.map +1 -1
  60. package/lib/components/tree-view/YTreeViewNode.mjs +6 -5
  61. package/lib/components/tree-view/YTreeViewNode.mjs.map +1 -1
  62. package/lib/composables/i18n/index.mjs.map +1 -1
  63. package/lib/locales/en.mjs +2 -1
  64. package/lib/locales/en.mjs.map +1 -1
  65. package/lib/locales/ko.mjs +2 -1
  66. package/lib/locales/ko.mjs.map +1 -1
  67. package/package.json +1 -1
  68. package/types/components/badge/YBadge.d.ts +141 -0
  69. package/types/components/badge/index.d.ts +1 -0
  70. package/types/components/card/YCard.d.ts +2 -2
  71. package/types/components/card/YCardBody.d.ts +2 -2
  72. package/types/components/card/YCardFooter.d.ts +2 -2
  73. package/types/components/card/YCardHeader.d.ts +2 -2
  74. package/types/components/card/index.d.ts +4 -5
  75. package/types/components/checkbox/YCheckbox.d.ts +2 -2
  76. package/types/components/checkbox/index.d.ts +1 -2
  77. package/types/components/chip/YChip.d.ts +2 -2
  78. package/types/components/chip/index.d.ts +1 -2
  79. package/types/components/form/YForm.d.ts +2 -2
  80. package/types/components/form/index.d.ts +1 -3
  81. package/types/components/index.d.ts +1 -0
  82. package/types/components/loading/YSpinnerRing.d.ts +1 -0
  83. package/types/components/menu/YMenu.d.ts +15 -0
  84. package/types/components/pagination/YPagination.d.ts +1 -0
  85. package/types/components/panel/YDividePanel.d.ts +1 -0
  86. package/types/components/progress-bar/YProgressBar.d.ts +1 -0
  87. package/types/components/select/YSelect.d.ts +1 -0
  88. package/types/components/snackbar/YSnackbar.d.ts +1 -0
  89. package/types/components/switch/YSwitch.d.ts +1 -0
  90. package/types/components/tab/YTab.d.ts +1 -0
  91. package/types/components/table/YTable.d.ts +1 -0
  92. package/types/components/text-highlighter/YTextHighlighter.d.ts +2 -2
  93. package/types/components/tooltip/YTooltip.d.ts +1 -0
  94. package/types/locales/en.d.ts +1 -0
  95. package/types/shims.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"YSwitch.mjs","names":["defineComponent","withModifiers","uidCounter","YSwitch","name","model","prop","event","props","input","type","Boolean","Array","default","value","String","Number","Object","max","loading","disabled","stickOut","stateLabel","color","labelOn","labelOff","data","innerValue","counterId","focused","created","iid","toString","isArray","inputByValue","computed","isMultipleInput","multipleInputIndex","findIndex","inp","inputId","id","trackStyles","backgroundColor","classes","methods","found","find","undefined","changeMultipleInput","checked","multipleInput","slice","length","$emit","nextChange","push","splice","$nextTick","onClick","$event","changeInput","onFocus","onBlur","onKeydown","onChange","$checkbox","target","watch","render","$slots","_createVNode","label"],"sources":["../../../src/components/switch/YSwitch.tsx"],"sourcesContent":["import { PropType, defineComponent, withModifiers } from 'vue';\r\n\r\nimport './YSwitch.scss';\r\n\r\nlet uidCounter = 0;\r\n\r\nexport const YSwitch = defineComponent({\r\n name: 'YSwitch',\r\n model: {\r\n prop: 'input',\r\n event: 'change',\r\n },\r\n props: {\r\n input: {\r\n type: [Boolean, Array] as PropType<boolean | any[]>,\r\n default: false,\r\n },\r\n value: {\r\n type: [String, Number, Object] as PropType<any>,\r\n },\r\n max: {\r\n type: Number,\r\n },\r\n loading: {\r\n type: Boolean,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n },\r\n stickOut: {\r\n type: Boolean,\r\n },\r\n stateLabel: {\r\n type: Boolean,\r\n },\r\n color: {\r\n type: String,\r\n },\r\n labelOn: {\r\n type: String,\r\n default: 'ON',\r\n },\r\n labelOff: {\r\n type: String,\r\n default: 'OFF',\r\n },\r\n },\r\n data() {\r\n return {\r\n innerValue: false,\r\n counterId: '',\r\n focused: false,\r\n };\r\n },\r\n created() {\r\n const iid = uidCounter.toString();\r\n uidCounter += 1;\r\n this.counterId = iid;\r\n if (Array.isArray(this.input)) {\r\n this.inputByValue();\r\n } else {\r\n this.innerValue = this.input;\r\n }\r\n },\r\n computed: {\r\n isMultipleInput() {\r\n return Array.isArray(this.input);\r\n },\r\n multipleInputIndex() {\r\n if (!Array.isArray(this.input)) {\r\n return -1;\r\n }\r\n return this.input.findIndex((inp) => {\r\n return inp === this.value;\r\n });\r\n },\r\n inputId() {\r\n const id = this.counterId;\r\n return `y-switch--${id}`;\r\n },\r\n trackStyles() {\r\n return {\r\n backgroundColor: this.color,\r\n };\r\n },\r\n classes() {\r\n return {\r\n 'y-switch--disabled': this.disabled,\r\n 'y-switch--loading': this.loading,\r\n 'y-switch--active': this.innerValue,\r\n 'y-switch--stick-out': this.stickOut,\r\n 'y-switch--focused': this.focused,\r\n };\r\n },\r\n },\r\n methods: {\r\n inputByValue() {\r\n if (Array.isArray(this.input)) {\r\n const found = this.input.find((inp: any) => {\r\n return inp === this.value;\r\n });\r\n\r\n if (found !== undefined) {\r\n this.innerValue = true;\r\n } else {\r\n this.innerValue = false;\r\n }\r\n } else if (typeof this.input === 'boolean') {\r\n this.innerValue = this.input;\r\n }\r\n },\r\n changeMultipleInput(checked: boolean) {\r\n if (Array.isArray(this.input)) {\r\n const multipleInput = this.input.slice();\r\n if (\r\n checked &&\r\n this.max !== undefined &&\r\n multipleInput.length >= this.max\r\n ) {\r\n this.$emit('overmax');\r\n this.nextChange(false, multipleInput);\r\n return;\r\n }\r\n if (checked && this.multipleInputIndex < 0) {\r\n multipleInput.push(this.value);\r\n } else if (this.multipleInputIndex > -1) {\r\n multipleInput.splice(this.multipleInputIndex, 1);\r\n }\r\n this.$emit('change', multipleInput);\r\n }\r\n },\r\n nextChange(checked: boolean, value: any) {\r\n this.$nextTick(() => {\r\n this.innerValue = checked;\r\n });\r\n },\r\n onClick($event: Event) {\r\n if (this.disabled || this.loading) return;\r\n this.changeInput(!this.innerValue, $event);\r\n },\r\n onFocus() {\r\n this.focused = true;\r\n },\r\n onBlur() {\r\n this.focused = false;\r\n },\r\n onKeydown($event: KeyboardEvent) {\r\n // nothing\r\n },\r\n onChange($event: Event) {\r\n const $checkbox = $event.target as HTMLInputElement;\r\n const { checked } = $checkbox;\r\n this.changeInput(checked, $event);\r\n },\r\n changeInput(checked: boolean, event?: Event) {\r\n this.innerValue = checked;\r\n if (this.isMultipleInput) {\r\n this.changeMultipleInput(checked);\r\n } else {\r\n this.$emit('change', checked);\r\n }\r\n },\r\n },\r\n watch: {\r\n input() {\r\n this.inputByValue();\r\n },\r\n },\r\n render() {\r\n const {\r\n $slots,\r\n classes,\r\n onClick,\r\n onKeydown,\r\n onFocus,\r\n onBlur,\r\n onChange,\r\n inputId,\r\n innerValue,\r\n disabled,\r\n trackStyles,\r\n stateLabel,\r\n labelOn,\r\n labelOff,\r\n loading,\r\n } = this;\r\n return (\r\n <div class={{ 'y-switch': true, ...classes }}>\r\n <div class=\"y-switch__slot\">\r\n <div\r\n class=\"y-switch__input\"\r\n onClick={withModifiers(onClick, ['capture'])}\r\n onKeydown={onKeydown}\r\n >\r\n <input\r\n id={inputId}\r\n aria-checked={innerValue}\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n onChange={onChange}\r\n disabled={disabled}\r\n checked={innerValue}\r\n ref=\"checkbox\"\r\n />\r\n <div class=\"y-switch__track\" style={trackStyles}>\r\n {stateLabel && (\r\n <div class=\"y-switch__state\">\r\n <span class=\"y-switch__state-label y-switch__state-label--on\">\r\n {{ labelOn }}\r\n </span>\r\n <span class=\"y-switch__state-label y-switch__state-label--off\">\r\n {{ labelOff }}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n <div class=\"y-switch__thumb\">\r\n {loading && <div class=\"y-switch__spinner\"></div>}\r\n </div>\r\n </div>\r\n <label for={inputId} class=\"y-switch__label\">\r\n {$slots.label?.()}\r\n <input hidden />\r\n </label>\r\n </div>\r\n </div>\r\n );\r\n },\r\n});\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YSwitch.mjs","names":["defineComponent","withModifiers","uidCounter","YSwitch","name","model","prop","event","props","input","type","Boolean","Array","default","value","String","Number","Object","max","loading","disabled","stickOut","stateLabel","color","labelOn","labelOff","data","innerValue","counterId","focused","created","iid","toString","isArray","inputByValue","computed","isMultipleInput","multipleInputIndex","findIndex","inp","inputId","id","trackStyles","backgroundColor","classes","methods","found","find","undefined","changeMultipleInput","checked","multipleInput","slice","length","$emit","nextChange","push","splice","$nextTick","onClick","$event","changeInput","onFocus","onBlur","onKeydown","onChange","$checkbox","target","watch","render","$slots","_createVNode","label"],"sources":["../../../src/components/switch/YSwitch.tsx"],"sourcesContent":["import { PropType, defineComponent, withModifiers } from 'vue';\r\n\r\nimport './YSwitch.scss';\r\n\r\nlet uidCounter = 0;\r\n\r\nexport const YSwitch = defineComponent({\r\n name: 'YSwitch',\r\n model: {\r\n prop: 'input',\r\n event: 'change',\r\n },\r\n props: {\r\n input: {\r\n type: [Boolean, Array] as PropType<boolean | any[]>,\r\n default: false,\r\n },\r\n value: {\r\n type: [String, Number, Object] as PropType<any>,\r\n },\r\n max: {\r\n type: Number,\r\n },\r\n loading: {\r\n type: Boolean,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n },\r\n stickOut: {\r\n type: Boolean,\r\n },\r\n stateLabel: {\r\n type: Boolean,\r\n },\r\n color: {\r\n type: String,\r\n },\r\n labelOn: {\r\n type: String,\r\n default: 'ON',\r\n },\r\n labelOff: {\r\n type: String,\r\n default: 'OFF',\r\n },\r\n },\r\n data() {\r\n return {\r\n innerValue: false,\r\n counterId: '',\r\n focused: false,\r\n };\r\n },\r\n created() {\r\n const iid = uidCounter.toString();\r\n uidCounter += 1;\r\n this.counterId = iid;\r\n if (Array.isArray(this.input)) {\r\n this.inputByValue();\r\n } else {\r\n this.innerValue = this.input;\r\n }\r\n },\r\n computed: {\r\n isMultipleInput() {\r\n return Array.isArray(this.input);\r\n },\r\n multipleInputIndex() {\r\n if (!Array.isArray(this.input)) {\r\n return -1;\r\n }\r\n return this.input.findIndex((inp) => {\r\n return inp === this.value;\r\n });\r\n },\r\n inputId() {\r\n const id = this.counterId;\r\n return `y-switch--${id}`;\r\n },\r\n trackStyles() {\r\n return {\r\n backgroundColor: this.color,\r\n };\r\n },\r\n classes() {\r\n return {\r\n 'y-switch--disabled': this.disabled,\r\n 'y-switch--loading': this.loading,\r\n 'y-switch--active': this.innerValue,\r\n 'y-switch--stick-out': this.stickOut,\r\n 'y-switch--focused': this.focused,\r\n };\r\n },\r\n },\r\n methods: {\r\n inputByValue() {\r\n if (Array.isArray(this.input)) {\r\n const found = this.input.find((inp: any) => {\r\n return inp === this.value;\r\n });\r\n\r\n if (found !== undefined) {\r\n this.innerValue = true;\r\n } else {\r\n this.innerValue = false;\r\n }\r\n } else if (typeof this.input === 'boolean') {\r\n this.innerValue = this.input;\r\n }\r\n },\r\n changeMultipleInput(checked: boolean) {\r\n if (Array.isArray(this.input)) {\r\n const multipleInput = this.input.slice();\r\n if (\r\n checked &&\r\n this.max !== undefined &&\r\n multipleInput.length >= this.max\r\n ) {\r\n this.$emit('overmax');\r\n this.nextChange(false, multipleInput);\r\n return;\r\n }\r\n if (checked && this.multipleInputIndex < 0) {\r\n multipleInput.push(this.value);\r\n } else if (this.multipleInputIndex > -1) {\r\n multipleInput.splice(this.multipleInputIndex, 1);\r\n }\r\n this.$emit('change', multipleInput);\r\n }\r\n },\r\n nextChange(checked: boolean, value: any) {\r\n this.$nextTick(() => {\r\n this.innerValue = checked;\r\n });\r\n },\r\n onClick($event: Event) {\r\n if (this.disabled || this.loading) return;\r\n this.changeInput(!this.innerValue, $event);\r\n },\r\n onFocus() {\r\n this.focused = true;\r\n },\r\n onBlur() {\r\n this.focused = false;\r\n },\r\n onKeydown($event: KeyboardEvent) {\r\n // nothing\r\n },\r\n onChange($event: Event) {\r\n const $checkbox = $event.target as HTMLInputElement;\r\n const { checked } = $checkbox;\r\n this.changeInput(checked, $event);\r\n },\r\n changeInput(checked: boolean, event?: Event) {\r\n this.innerValue = checked;\r\n if (this.isMultipleInput) {\r\n this.changeMultipleInput(checked);\r\n } else {\r\n this.$emit('change', checked);\r\n }\r\n },\r\n },\r\n watch: {\r\n input() {\r\n this.inputByValue();\r\n },\r\n },\r\n render() {\r\n const {\r\n $slots,\r\n classes,\r\n onClick,\r\n onKeydown,\r\n onFocus,\r\n onBlur,\r\n onChange,\r\n inputId,\r\n innerValue,\r\n disabled,\r\n trackStyles,\r\n stateLabel,\r\n labelOn,\r\n labelOff,\r\n loading,\r\n } = this;\r\n return (\r\n <div class={{ 'y-switch': true, ...classes }}>\r\n <div class=\"y-switch__slot\">\r\n <div\r\n class=\"y-switch__input\"\r\n onClick={withModifiers(onClick, ['capture'])}\r\n onKeydown={onKeydown}\r\n >\r\n <input\r\n id={inputId}\r\n aria-checked={innerValue}\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n onFocus={onFocus}\r\n onBlur={onBlur}\r\n onChange={onChange}\r\n disabled={disabled}\r\n checked={innerValue}\r\n ref=\"checkbox\"\r\n />\r\n <div class=\"y-switch__track\" style={trackStyles}>\r\n {stateLabel && (\r\n <div class=\"y-switch__state\">\r\n <span class=\"y-switch__state-label y-switch__state-label--on\">\r\n {{ labelOn }}\r\n </span>\r\n <span class=\"y-switch__state-label y-switch__state-label--off\">\r\n {{ labelOff }}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n <div class=\"y-switch__thumb\">\r\n {loading && <div class=\"y-switch__spinner\"></div>}\r\n </div>\r\n </div>\r\n <label for={inputId} class=\"y-switch__label\">\r\n {$slots.label?.()}\r\n <input hidden />\r\n </label>\r\n </div>\r\n </div>\r\n );\r\n },\r\n});\r\n\r\nexport type YSwitch = InstanceType<typeof YSwitch>;\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"YTab.mjs","names":["shallowRef","computed","defineComponent","ref","useRender","chooseProps","propsFactory","YButton","pressYButtonProps","Y_TABS_KEY","pressYTabPropsOptions","text","String","hideIndicator","Boolean","indicatorColor","selectedClass","noWave","YTab","name","props","slots","Object","setup","_ref","attrs","selected","indicator$","indicatorStyles","attrsProps","role","value","tabindex","onChoice","_ref2","yButtonProps","_createVNode","_Fragment","_mergeProps","default","append"],"sources":["../../../src/components/tab/YTab.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\r\nimport { PropType, SlotsType, computed, defineComponent, ref } from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { chooseProps, propsFactory } from '../../util';\r\nimport { YButton, pressYButtonProps } from '../button';\r\nimport { Y_TABS_KEY } from './shared';\r\n\r\nimport './YTab.scss';\r\n\r\nexport const pressYTabPropsOptions = propsFactory(\r\n {\r\n text: String as PropType<string>,\r\n hideIndicator: Boolean as PropType<boolean>,\r\n indicatorColor: String as PropType<string>,\r\n ...pressYButtonProps({\r\n selectedClass: 'y-tab--selected',\r\n noWave: true,\r\n }),\r\n },\r\n 'YTab',\r\n);\r\n\r\nexport const YTab = defineComponent({\r\n name: 'YTab',\r\n props: pressYTabPropsOptions(),\r\n slots: Object as SlotsType<{\r\n default?: any;\r\n }>,\r\n setup(props, { slots, attrs }) {\r\n const selected = shallowRef(false);\r\n\r\n const indicator$ = ref();\r\n const indicatorStyles = computed(() => {\r\n return {};\r\n });\r\n const attrsProps = computed(() => {\r\n return {\r\n role: 'tab',\r\n 'aria-selected': `${String(selected.value)}`,\r\n tabindex: selected.value ? 0 : -1,\r\n };\r\n });\r\n\r\n function onChoice({ value }: { value: boolean }) {\r\n selected.value = value;\r\n }\r\n\r\n useRender(() => {\r\n const yButtonProps = chooseProps(props, YButton.props);\r\n return (\r\n <>\r\n <YButton\r\n class={['y-tab']}\r\n active={false}\r\n {...attrsProps.value}\r\n {...attrs}\r\n {...yButtonProps}\r\n injectSymbol={Y_TABS_KEY}\r\n onChoice:selected={onChoice}\r\n >\r\n {{\r\n default: () => slots.default?.() ?? props.text,\r\n append: () =>\r\n !props.hideIndicator && (\r\n <div\r\n ref={indicator$}\r\n class={['y-tab__indicator']}\r\n style={indicatorStyles.value}\r\n ></div>\r\n ),\r\n }}\r\n </YButton>\r\n </>\r\n );\r\n });\r\n\r\n return {};\r\n },\r\n});\r\n"],"mappings":";AAAA,SAASA,UAAU,QAAQ,mBAAmB;AAC9C,SAA8BC,QAAQ,EAAEC,eAAe,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAEjEC,SAAS;AAAA,SACTC,WAAW,EAAEC,YAAY;AAAA,SACzBC,OAAO,EAAEC,iBAAiB;AAAA,SAC1BC,UAAU;AAEnB;AAEA,OAAO,MAAMC,qBAAqB,GAAGJ,YAAY,CAC/C;EACEK,IAAI,EAAEC,MAA0B;EAChCC,aAAa,EAAEC,OAA4B;EAC3CC,cAAc,EAAEH,MAA0B;EAC1C,GAAGJ,iBAAiB,CAAC;IACnBQ,aAAa,EAAE,iBAAiB;IAChCC,MAAM,EAAE;EACV,CAAC;AACH,CAAC,EACD,MACF,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGhB,eAAe,CAAC;EAClCiB,IAAI,EAAE,MAAM;EACZC,KAAK,EAAEV,qBAAqB,CAAC,CAAC;EAC9BW,KAAK,EAAEC,MAEL;EACFC,KAAKA,CAACH,KAAK,EAAAI,IAAA,EAAoB;IAAA,IAAlB;MAAEH,KAAK;MAAEI;IAAM,CAAC,GAAAD,IAAA;IAC3B,MAAME,QAAQ,GAAG1B,UAAU,CAAC,KAAK,CAAC;IAElC,MAAM2B,UAAU,GAAGxB,GAAG,CAAC,CAAC;IACxB,MAAMyB,eAAe,GAAG3B,QAAQ,CAAC,MAAM;MACrC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM4B,UAAU,GAAG5B,QAAQ,CAAC,MAAM;MAChC,OAAO;QACL6B,IAAI,EAAE,KAAK;QACX,eAAe,EAAG,GAAElB,MAAM,CAACc,QAAQ,CAACK,KAAK,CAAE,EAAC;QAC5CC,QAAQ,EAAEN,QAAQ,CAACK,KAAK,GAAG,CAAC,GAAG,CAAC;MAClC,CAAC;IACH,CAAC,CAAC;IAEF,SAASE,QAAQA,CAAAC,KAAA,EAAgC;MAAA,IAA/B;QAAEH;MAA0B,CAAC,GAAAG,KAAA;MAC7CR,QAAQ,CAACK,KAAK,GAAGA,KAAK;IACxB;IAEA3B,SAAS,CAAC,MAAM;MACd,MAAM+B,YAAY,GAAG9B,WAAW,CAACe,KAAK,EAAEb,OAAO,CAACa,KAAK,CAAC;MACtD,OAAAgB,YAAA,CAAAC,SAAA,SAAAD,YAAA,CAAA7B,OAAA,EAAA+B,WAAA;QAAA,SAGa,CAAC,OAAO,CAAC;QAAA,UACR;MAAK,GACTT,UAAU,CAACE,KAAK,EAChBN,KAAK,EACLU,YAAY;QAAA,gBACF1B,UAAU;QAAA,qBACLwB;MAAQ;QAGzBM,OAAO,EAAEA,CAAA,KAAMlB,KAAK,CAACkB,OAAO,GAAG,CAAC,IAAInB,KAAK,CAACT,IAAI;QAC9C6B,MAAM,EAAEA,CAAA,KACN,CAACpB,KAAK,CAACP,aAAa,IAAAuB,YAAA;UAAA,OAEXT,UAAU;UAAA,SACR,CAAC,kBAAkB,CAAC;UAAA,SACpBC,eAAe,CAACG;QAAK;MAE/B;IAKb,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YTab.mjs","names":["shallowRef","computed","defineComponent","ref","useRender","chooseProps","propsFactory","YButton","pressYButtonProps","Y_TABS_KEY","pressYTabPropsOptions","text","String","hideIndicator","Boolean","indicatorColor","selectedClass","noWave","YTab","name","props","slots","Object","setup","_ref","attrs","selected","indicator$","indicatorStyles","attrsProps","role","value","tabindex","onChoice","_ref2","yButtonProps","_createVNode","_Fragment","_mergeProps","default","append"],"sources":["../../../src/components/tab/YTab.tsx"],"sourcesContent":["import { shallowRef } from '@vue/runtime-core';\r\nimport { PropType, SlotsType, computed, defineComponent, ref } from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { chooseProps, propsFactory } from '../../util';\r\nimport { YButton, pressYButtonProps } from '../button';\r\nimport { Y_TABS_KEY } from './shared';\r\n\r\nimport './YTab.scss';\r\n\r\nexport const pressYTabPropsOptions = propsFactory(\r\n {\r\n text: String as PropType<string>,\r\n hideIndicator: Boolean as PropType<boolean>,\r\n indicatorColor: String as PropType<string>,\r\n ...pressYButtonProps({\r\n selectedClass: 'y-tab--selected',\r\n noWave: true,\r\n }),\r\n },\r\n 'YTab',\r\n);\r\n\r\nexport const YTab = defineComponent({\r\n name: 'YTab',\r\n props: pressYTabPropsOptions(),\r\n slots: Object as SlotsType<{\r\n default?: any;\r\n }>,\r\n setup(props, { slots, attrs }) {\r\n const selected = shallowRef(false);\r\n\r\n const indicator$ = ref();\r\n const indicatorStyles = computed(() => {\r\n return {};\r\n });\r\n const attrsProps = computed(() => {\r\n return {\r\n role: 'tab',\r\n 'aria-selected': `${String(selected.value)}`,\r\n tabindex: selected.value ? 0 : -1,\r\n };\r\n });\r\n\r\n function onChoice({ value }: { value: boolean }) {\r\n selected.value = value;\r\n }\r\n\r\n useRender(() => {\r\n const yButtonProps = chooseProps(props, YButton.props);\r\n return (\r\n <>\r\n <YButton\r\n class={['y-tab']}\r\n active={false}\r\n {...attrsProps.value}\r\n {...attrs}\r\n {...yButtonProps}\r\n injectSymbol={Y_TABS_KEY}\r\n onChoice:selected={onChoice}\r\n >\r\n {{\r\n default: () => slots.default?.() ?? props.text,\r\n append: () =>\r\n !props.hideIndicator && (\r\n <div\r\n ref={indicator$}\r\n class={['y-tab__indicator']}\r\n style={indicatorStyles.value}\r\n ></div>\r\n ),\r\n }}\r\n </YButton>\r\n </>\r\n );\r\n });\r\n\r\n return {};\r\n },\r\n});\r\n\r\nexport type YTab = InstanceType<typeof YTab>;\r\n"],"mappings":";AAAA,SAASA,UAAU,QAAQ,mBAAmB;AAC9C,SAA8BC,QAAQ,EAAEC,eAAe,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAEjEC,SAAS;AAAA,SACTC,WAAW,EAAEC,YAAY;AAAA,SACzBC,OAAO,EAAEC,iBAAiB;AAAA,SAC1BC,UAAU;AAEnB;AAEA,OAAO,MAAMC,qBAAqB,GAAGJ,YAAY,CAC/C;EACEK,IAAI,EAAEC,MAA0B;EAChCC,aAAa,EAAEC,OAA4B;EAC3CC,cAAc,EAAEH,MAA0B;EAC1C,GAAGJ,iBAAiB,CAAC;IACnBQ,aAAa,EAAE,iBAAiB;IAChCC,MAAM,EAAE;EACV,CAAC;AACH,CAAC,EACD,MACF,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGhB,eAAe,CAAC;EAClCiB,IAAI,EAAE,MAAM;EACZC,KAAK,EAAEV,qBAAqB,CAAC,CAAC;EAC9BW,KAAK,EAAEC,MAEL;EACFC,KAAKA,CAACH,KAAK,EAAAI,IAAA,EAAoB;IAAA,IAAlB;MAAEH,KAAK;MAAEI;IAAM,CAAC,GAAAD,IAAA;IAC3B,MAAME,QAAQ,GAAG1B,UAAU,CAAC,KAAK,CAAC;IAElC,MAAM2B,UAAU,GAAGxB,GAAG,CAAC,CAAC;IACxB,MAAMyB,eAAe,GAAG3B,QAAQ,CAAC,MAAM;MACrC,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM4B,UAAU,GAAG5B,QAAQ,CAAC,MAAM;MAChC,OAAO;QACL6B,IAAI,EAAE,KAAK;QACX,eAAe,EAAG,GAAElB,MAAM,CAACc,QAAQ,CAACK,KAAK,CAAE,EAAC;QAC5CC,QAAQ,EAAEN,QAAQ,CAACK,KAAK,GAAG,CAAC,GAAG,CAAC;MAClC,CAAC;IACH,CAAC,CAAC;IAEF,SAASE,QAAQA,CAAAC,KAAA,EAAgC;MAAA,IAA/B;QAAEH;MAA0B,CAAC,GAAAG,KAAA;MAC7CR,QAAQ,CAACK,KAAK,GAAGA,KAAK;IACxB;IAEA3B,SAAS,CAAC,MAAM;MACd,MAAM+B,YAAY,GAAG9B,WAAW,CAACe,KAAK,EAAEb,OAAO,CAACa,KAAK,CAAC;MACtD,OAAAgB,YAAA,CAAAC,SAAA,SAAAD,YAAA,CAAA7B,OAAA,EAAA+B,WAAA;QAAA,SAGa,CAAC,OAAO,CAAC;QAAA,UACR;MAAK,GACTT,UAAU,CAACE,KAAK,EAChBN,KAAK,EACLU,YAAY;QAAA,gBACF1B,UAAU;QAAA,qBACLwB;MAAQ;QAGzBM,OAAO,EAAEA,CAAA,KAAMlB,KAAK,CAACkB,OAAO,GAAG,CAAC,IAAInB,KAAK,CAACT,IAAI;QAC9C6B,MAAM,EAAEA,CAAA,KACN,CAACpB,KAAK,CAACP,aAAa,IAAAuB,YAAA;UAAA,OAEXT,UAAU;UAAA,SACR,CAAC,kBAAkB,CAAC;UAAA,SACpBC,eAAe,CAACG;QAAK;MAE/B;IAKb,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTableCell.mjs","names":["computed","defineComponent","useRender","toStyleSizeValue","YDataTableCell","name","functional","props","type","String","default","fixed","fixedOffset","Number","width","maxWidth","height","align","emits","setup","_ref","slots","emit","attrs","offsetStyle","ret","undefined","ElTag","_createVNode","_mergeProps","value","e"],"sources":["../../../src/components/table/YDataTableCell.tsx"],"sourcesContent":["import { CSSProperties, PropType, computed, defineComponent } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { toStyleSizeValue } from '../../util/ui';\n\nexport const YDataTableCell = defineComponent({\n name: 'YDataTableCell',\n functional: true,\n props: {\n type: {\n type: String as PropType<'head' | 'data'>,\n default: 'data',\n },\n fixed: {\n type: String as PropType<'lead' | 'trail'>,\n },\n fixedOffset: {\n type: Number as PropType<number>,\n },\n width: {\n type: [Number, String] as PropType<string | number>,\n },\n maxWidth: {\n type: [Number, String] as PropType<string | number>,\n },\n height: {\n type: [Number, String] as PropType<string | number>,\n },\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'start',\n },\n },\n emits: ['click'],\n setup(props, { slots, emit, attrs }) {\n const offsetStyle = computed(() => {\n const ret: CSSProperties = {};\n if (props.fixed && props.fixedOffset !== undefined) {\n if (props.fixed === 'lead') {\n ret['left'] = toStyleSizeValue(props.fixedOffset);\n } else if (props.fixed === 'trail') {\n ret['right'] = toStyleSizeValue(props.fixedOffset);\n }\n }\n return ret;\n });\n\n useRender(() => {\n const ElTag = props.type === 'head' ? 'th' : 'td';\n return (\n <ElTag\n class={[\n `y-data-table__${ElTag}`,\n 'y-data-table-cell',\n {\n 'y-data-table-cell--fixed': props.fixed,\n [`y-data-table-cell--fixed-${props.fixed}`]: props.fixed,\n [`y-data-table-cell--align-${props.align}`]: props.align,\n },\n ]}\n style={{\n width: toStyleSizeValue(props.width),\n height: toStyleSizeValue(props.height),\n maxWidth: toStyleSizeValue(props.maxWidth),\n ...offsetStyle.value,\n }}\n {...attrs}\n onClick={(e) => emit('click', e)}\n >\n {slots.default?.()}\n </ElTag>\n );\n });\n },\n});\n\nexport type YDataTableCell = InstanceType<typeof YDataTableCell>;\n"],"mappings":";AAAA,SAAkCA,QAAQ,EAAEC,eAAe,QAAQ,KAAK;AAAC,SAEhEC,SAAS;AAAA,SACTC,gBAAgB;AAEzB,OAAO,MAAMC,cAAc,GAAGH,eAAe,CAAC;EAC5CI,IAAI,EAAE,gBAAgB;EACtBC,UAAU,EAAE,IAAI;EAChBC,KAAK,EAAE;IACLC,IAAI,EAAE;MACJA,IAAI,EAAEC,MAAmC;MACzCC,OAAO,EAAE;IACX,CAAC;IACDC,KAAK,EAAE;MACLH,IAAI,EAAEC;IACR,CAAC;IACDG,WAAW,EAAE;MACXJ,IAAI,EAAEK;IACR,CAAC;IACDC,KAAK,EAAE;MACLN,IAAI,EAAE,CAACK,MAAM,EAAEJ,MAAM;IACvB,CAAC;IACDM,QAAQ,EAAE;MACRP,IAAI,EAAE,CAACK,MAAM,EAAEJ,MAAM;IACvB,CAAC;IACDO,MAAM,EAAE;MACNR,IAAI,EAAE,CAACK,MAAM,EAAEJ,MAAM;IACvB,CAAC;IACDQ,KAAK,EAAE;MACLT,IAAI,EAAEC,MAA8C;MACpDC,OAAO,EAAE;IACX;EACF,CAAC;EACDQ,KAAK,EAAE,CAAC,OAAO,CAAC;EAChBC,KAAKA,CAACZ,KAAK,EAAAa,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IACjC,MAAMI,WAAW,GAAGxB,QAAQ,CAAC,MAAM;MACjC,MAAMyB,GAAkB,GAAG,CAAC,CAAC;MAC7B,IAAIlB,KAAK,CAACI,KAAK,IAAIJ,KAAK,CAACK,WAAW,KAAKc,SAAS,EAAE;QAClD,IAAInB,KAAK,CAACI,KAAK,KAAK,MAAM,EAAE;UAC1Bc,GAAG,CAAC,MAAM,CAAC,GAAGtB,gBAAgB,CAACI,KAAK,CAACK,WAAW,CAAC;QACnD,CAAC,MAAM,IAAIL,KAAK,CAACI,KAAK,KAAK,OAAO,EAAE;UAClCc,GAAG,CAAC,OAAO,CAAC,GAAGtB,gBAAgB,CAACI,KAAK,CAACK,WAAW,CAAC;QACpD;MACF;MACA,OAAOa,GAAG;IACZ,CAAC,CAAC;IAEFvB,SAAS,CAAC,MAAM;MACd,MAAMyB,KAAK,GAAGpB,KAAK,CAACC,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI;MACjD,OAAAoB,YAAA,CAAAD,KAAA,EAAAE,WAAA;QAAA,SAEW,CACJ,iBAAgBF,KAAM,EAAC,EACxB,mBAAmB,EACnB;UACE,0BAA0B,EAAEpB,KAAK,CAACI,KAAK;UACvC,CAAE,4BAA2BJ,KAAK,CAACI,KAAM,EAAC,GAAGJ,KAAK,CAACI,KAAK;UACxD,CAAE,4BAA2BJ,KAAK,CAACU,KAAM,EAAC,GAAGV,KAAK,CAACU;QACrD,CAAC,CACF;QAAA,SACM;UACLH,KAAK,EAAEX,gBAAgB,CAACI,KAAK,CAACO,KAAK,CAAC;UACpCE,MAAM,EAAEb,gBAAgB,CAACI,KAAK,CAACS,MAAM,CAAC;UACtCD,QAAQ,EAAEZ,gBAAgB,CAACI,KAAK,CAACQ,QAAQ,CAAC;UAC1C,GAAGS,WAAW,CAACM;QACjB;MAAC,GACGP,KAAK;QAAA,WACCQ,CAAC,IAAKT,IAAI,CAAC,OAAO,EAAES,CAAC;MAAC;QAAArB,OAAA,EAAAA,CAAA,MAE/BW,KAAK,CAACX,OAAO,GAAG,CAAC;MAAA;IAGxB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YDataTableCell.mjs","names":["computed","defineComponent","useRender","toStyleSizeValue","YDataTableCell","name","functional","props","type","String","default","fixed","fixedOffset","Number","width","maxWidth","height","align","emits","setup","_ref","slots","emit","attrs","offsetStyle","ret","undefined","ElTag","_createVNode","_mergeProps","value","e"],"sources":["../../../src/components/table/YDataTableCell.tsx"],"sourcesContent":["import { CSSProperties, PropType, computed, defineComponent } from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { toStyleSizeValue } from '../../util/ui';\r\n\r\nexport const YDataTableCell = defineComponent({\r\n name: 'YDataTableCell',\r\n functional: true,\r\n props: {\r\n type: {\r\n type: String as PropType<'head' | 'data'>,\r\n default: 'data',\r\n },\r\n fixed: {\r\n type: String as PropType<'lead' | 'trail'>,\r\n },\r\n fixedOffset: {\r\n type: Number as PropType<number>,\r\n },\r\n width: {\r\n type: [Number, String] as PropType<string | number>,\r\n },\r\n maxWidth: {\r\n type: [Number, String] as PropType<string | number>,\r\n },\r\n height: {\r\n type: [Number, String] as PropType<string | number>,\r\n },\r\n align: {\r\n type: String as PropType<'start' | 'center' | 'end'>,\r\n default: 'start',\r\n },\r\n },\r\n emits: ['click'],\r\n setup(props, { slots, emit, attrs }) {\r\n const offsetStyle = computed(() => {\r\n const ret: CSSProperties = {};\r\n if (props.fixed && props.fixedOffset !== undefined) {\r\n if (props.fixed === 'lead') {\r\n ret['left'] = toStyleSizeValue(props.fixedOffset);\r\n } else if (props.fixed === 'trail') {\r\n ret['right'] = toStyleSizeValue(props.fixedOffset);\r\n }\r\n }\r\n return ret;\r\n });\r\n\r\n useRender(() => {\r\n const ElTag = props.type === 'head' ? 'th' : 'td';\r\n return (\r\n <ElTag\r\n class={[\r\n `y-data-table__${ElTag}`,\r\n 'y-data-table-cell',\r\n {\r\n 'y-data-table-cell--fixed': props.fixed,\r\n [`y-data-table-cell--fixed-${props.fixed}`]: props.fixed,\r\n [`y-data-table-cell--align-${props.align}`]: props.align,\r\n },\r\n ]}\r\n style={{\r\n width: toStyleSizeValue(props.width),\r\n height: toStyleSizeValue(props.height),\r\n maxWidth: toStyleSizeValue(props.maxWidth),\r\n ...offsetStyle.value,\r\n }}\r\n {...attrs}\r\n onClick={(e) => emit('click', e)}\r\n >\r\n {slots.default?.()}\r\n </ElTag>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YDataTableCell = InstanceType<typeof YDataTableCell>;\r\n"],"mappings":";AAAA,SAAkCA,QAAQ,EAAEC,eAAe,QAAQ,KAAK;AAAC,SAEhEC,SAAS;AAAA,SACTC,gBAAgB;AAEzB,OAAO,MAAMC,cAAc,GAAGH,eAAe,CAAC;EAC5CI,IAAI,EAAE,gBAAgB;EACtBC,UAAU,EAAE,IAAI;EAChBC,KAAK,EAAE;IACLC,IAAI,EAAE;MACJA,IAAI,EAAEC,MAAmC;MACzCC,OAAO,EAAE;IACX,CAAC;IACDC,KAAK,EAAE;MACLH,IAAI,EAAEC;IACR,CAAC;IACDG,WAAW,EAAE;MACXJ,IAAI,EAAEK;IACR,CAAC;IACDC,KAAK,EAAE;MACLN,IAAI,EAAE,CAACK,MAAM,EAAEJ,MAAM;IACvB,CAAC;IACDM,QAAQ,EAAE;MACRP,IAAI,EAAE,CAACK,MAAM,EAAEJ,MAAM;IACvB,CAAC;IACDO,MAAM,EAAE;MACNR,IAAI,EAAE,CAACK,MAAM,EAAEJ,MAAM;IACvB,CAAC;IACDQ,KAAK,EAAE;MACLT,IAAI,EAAEC,MAA8C;MACpDC,OAAO,EAAE;IACX;EACF,CAAC;EACDQ,KAAK,EAAE,CAAC,OAAO,CAAC;EAChBC,KAAKA,CAACZ,KAAK,EAAAa,IAAA,EAA0B;IAAA,IAAxB;MAAEC,KAAK;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAH,IAAA;IACjC,MAAMI,WAAW,GAAGxB,QAAQ,CAAC,MAAM;MACjC,MAAMyB,GAAkB,GAAG,CAAC,CAAC;MAC7B,IAAIlB,KAAK,CAACI,KAAK,IAAIJ,KAAK,CAACK,WAAW,KAAKc,SAAS,EAAE;QAClD,IAAInB,KAAK,CAACI,KAAK,KAAK,MAAM,EAAE;UAC1Bc,GAAG,CAAC,MAAM,CAAC,GAAGtB,gBAAgB,CAACI,KAAK,CAACK,WAAW,CAAC;QACnD,CAAC,MAAM,IAAIL,KAAK,CAACI,KAAK,KAAK,OAAO,EAAE;UAClCc,GAAG,CAAC,OAAO,CAAC,GAAGtB,gBAAgB,CAACI,KAAK,CAACK,WAAW,CAAC;QACpD;MACF;MACA,OAAOa,GAAG;IACZ,CAAC,CAAC;IAEFvB,SAAS,CAAC,MAAM;MACd,MAAMyB,KAAK,GAAGpB,KAAK,CAACC,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI;MACjD,OAAAoB,YAAA,CAAAD,KAAA,EAAAE,WAAA;QAAA,SAEW,CACJ,iBAAgBF,KAAM,EAAC,EACxB,mBAAmB,EACnB;UACE,0BAA0B,EAAEpB,KAAK,CAACI,KAAK;UACvC,CAAE,4BAA2BJ,KAAK,CAACI,KAAM,EAAC,GAAGJ,KAAK,CAACI,KAAK;UACxD,CAAE,4BAA2BJ,KAAK,CAACU,KAAM,EAAC,GAAGV,KAAK,CAACU;QACrD,CAAC,CACF;QAAA,SACM;UACLH,KAAK,EAAEX,gBAAgB,CAACI,KAAK,CAACO,KAAK,CAAC;UACpCE,MAAM,EAAEb,gBAAgB,CAACI,KAAK,CAACS,MAAM,CAAC;UACtCD,QAAQ,EAAEZ,gBAAgB,CAACI,KAAK,CAACQ,QAAQ,CAAC;UAC1C,GAAGS,WAAW,CAACM;QACjB;MAAC,GACGP,KAAK;QAAA,WACCQ,CAAC,IAAKT,IAAI,CAAC,OAAO,EAAES,CAAC;MAAC;QAAArB,OAAA,EAAAA,CAAA,MAE/BW,KAAK,CAACX,OAAO,GAAG,CAAC;MAAA;IAGxB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTableHead.mjs","names":["defineComponent","useRender","toStyleSizeValue","propsFactory","YIconSort","YDataTableCell","useHeader","useSelection","useSorting","YIconCheckbox","pressYDataTableHeadProps","multiSort","Boolean","sortAscIcon","type","String","default","sortDescIcon","dualSortIcon","sticky","YDataTableHead","name","components","props","setup","_ref","slots","toggleSort","sortBy","isSorted","someSelected","allSelected","selectAll","showSelectAll","selectables","columns","headers","getFixedStyles","column","y","fixed","undefined","position","zIndex","left","fixedOffset","top","onClick","e","getSortDirection","found","value","find","by","key","order","YDataTableTh","_ref2","x","_createVNode","_mergeProps","align","lastFixed","sortable","width","minWidth","maxWidth","rowspan","colspan","headerSlotName","headerSlotProps","length","stopPropagation","text","_Fragment","head","map","row"],"sources":["../../../src/components/table/YDataTableHead.tsx"],"sourcesContent":["import { CSSProperties, defineComponent } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { propsFactory } from '../../util/vue-component';\nimport { YIconSort } from '../icons/YIconSort';\nimport { YDataTableCell } from './YDataTableCell';\nimport { useHeader } from './composibles/header';\nimport { useSelection } from './composibles/selection';\nimport { useSorting } from './composibles/sorting';\n\nimport { YIconCheckbox } from '../icons';\nimport { InternalDataTableHeader } from './types';\n\nexport const pressYDataTableHeadProps = propsFactory(\n {\n multiSort: Boolean,\n sortAscIcon: {\n type: String,\n default: '@sortAsc',\n },\n sortDescIcon: {\n type: String,\n default: '@sortDesc',\n },\n dualSortIcon: Boolean,\n sticky: Boolean,\n },\n 'YDataTableHead',\n);\n\nexport const YDataTableHead = defineComponent({\n name: 'YDataTableHead',\n components: {\n YDataTableCell,\n },\n props: {\n ...pressYDataTableHeadProps(),\n },\n setup(props, { slots }) {\n const { toggleSort, sortBy, isSorted } = useSorting();\n const { someSelected, allSelected, selectAll, showSelectAll, selectables } =\n useSelection();\n const { columns, headers } = useHeader();\n\n const getFixedStyles = (\n column: InternalDataTableHeader,\n y: number,\n ): CSSProperties | undefined => {\n if (!props.sticky && !column.fixed) return undefined;\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined,\n left: column.fixed ? toStyleSizeValue(column.fixedOffset) : undefined,\n top: props.sticky\n ? `calc(var(--v-table-header-height) * ${y})`\n : undefined,\n };\n };\n\n function onClick(e: Event) {\n //\n }\n\n function getSortDirection(column: InternalDataTableHeader) {\n const found = sortBy.value.find((by) => by.key === column.key);\n if (!found) {\n return undefined;\n }\n if (found.order === 'asc') {\n return 'asc';\n }\n if (found.order === 'desc') {\n return 'desc';\n }\n }\n\n const YDataTableTh = ({\n column,\n x,\n y,\n }: {\n column: InternalDataTableHeader;\n x: number;\n y: number;\n }) => {\n return (\n <YDataTableCell\n type=\"head\"\n align={column.align}\n fixed={\n column.fixed ? (column.lastFixed ? 'trail' : 'lead') : undefined\n }\n class={[\n 'y-data-table-header',\n {\n 'y-data-table-header--sortable': column.sortable,\n 'y-data-table-header--sorted': isSorted(column),\n 'y-data-table-header--select': column.key === 'data-table-select',\n },\n ]}\n style={{\n width: toStyleSizeValue(column.width),\n minWidth: toStyleSizeValue(column.width),\n maxWidth: toStyleSizeValue(column.maxWidth),\n ...getFixedStyles(column, y),\n }}\n {...{ rowspan: column.rowspan, colspan: column.colspan }}\n onClick={onClick}\n >\n {{\n default: () => {\n const headerSlotName = `header.${column.key}` as const;\n const headerSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectables: selectables.value,\n getSortDirection,\n };\n\n if (slots[headerSlotName]) {\n return slots[headerSlotName]?.(headerSlotProps);\n }\n\n if (column.key === 'data-table-select') {\n return (\n slots['header.data-table-select']?.(headerSlotProps) ??\n (showSelectAll && (\n <YIconCheckbox\n checked={allSelected.value}\n indeterminate={!allSelected.value && someSelected.value}\n disabled={selectables.value.length < 1}\n {...{\n onClick: (e: MouseEvent) => {\n e.stopPropagation();\n selectAll(!allSelected.value);\n },\n }}\n ></YIconCheckbox>\n ))\n );\n }\n\n return (\n <div class=\"y-data-table-header__content\">\n <span class=\"y-data-table-header__text\">{column.text}</span>\n <span\n class={[\n 'y-data-table-header__sorting-icon',\n {\n 'y-data-table-header__sorting-icon--disabled':\n !column.sortable,\n },\n ]}\n onClick={\n column.sortable\n ? (e) => {\n e.stopPropagation();\n toggleSort(column);\n }\n : undefined\n }\n >\n <YIconSort\n disabled={!column.sortable}\n direction={getSortDirection(column)}\n ></YIconSort>\n </span>\n </div>\n );\n },\n }}\n </YDataTableCell>\n );\n };\n\n useRender(() => {\n return (\n <>\n {slots.head\n ? slots.head?.(props)\n : headers.value.map((row, y) => (\n <tr>\n {row.map((column, x) => (\n <YDataTableTh column={column} x={x} y={y} />\n ))}\n </tr>\n ))}\n </>\n );\n });\n },\n});\n\nexport type YDataTableHead = InstanceType<typeof YDataTableHead>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDataTableHead.mjs","names":["defineComponent","useRender","toStyleSizeValue","propsFactory","YIconSort","YDataTableCell","useHeader","useSelection","useSorting","YIconCheckbox","pressYDataTableHeadProps","multiSort","Boolean","sortAscIcon","type","String","default","sortDescIcon","dualSortIcon","sticky","YDataTableHead","name","components","props","setup","_ref","slots","toggleSort","sortBy","isSorted","someSelected","allSelected","selectAll","showSelectAll","selectables","columns","headers","getFixedStyles","column","y","fixed","undefined","position","zIndex","left","fixedOffset","top","onClick","e","getSortDirection","found","value","find","by","key","order","YDataTableTh","_ref2","x","_createVNode","_mergeProps","align","lastFixed","sortable","width","minWidth","maxWidth","rowspan","colspan","headerSlotName","headerSlotProps","length","stopPropagation","text","_Fragment","head","map","row"],"sources":["../../../src/components/table/YDataTableHead.tsx"],"sourcesContent":["import { CSSProperties, defineComponent } from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { toStyleSizeValue } from '../../util/ui';\r\nimport { propsFactory } from '../../util/vue-component';\r\nimport { YIconSort } from '../icons/YIconSort';\r\nimport { YDataTableCell } from './YDataTableCell';\r\nimport { useHeader } from './composibles/header';\r\nimport { useSelection } from './composibles/selection';\r\nimport { useSorting } from './composibles/sorting';\r\n\r\nimport { YIconCheckbox } from '../icons';\r\nimport { InternalDataTableHeader } from './types';\r\n\r\nexport const pressYDataTableHeadProps = propsFactory(\r\n {\r\n multiSort: Boolean,\r\n sortAscIcon: {\r\n type: String,\r\n default: '@sortAsc',\r\n },\r\n sortDescIcon: {\r\n type: String,\r\n default: '@sortDesc',\r\n },\r\n dualSortIcon: Boolean,\r\n sticky: Boolean,\r\n },\r\n 'YDataTableHead',\r\n);\r\n\r\nexport const YDataTableHead = defineComponent({\r\n name: 'YDataTableHead',\r\n components: {\r\n YDataTableCell,\r\n },\r\n props: {\r\n ...pressYDataTableHeadProps(),\r\n },\r\n setup(props, { slots }) {\r\n const { toggleSort, sortBy, isSorted } = useSorting();\r\n const { someSelected, allSelected, selectAll, showSelectAll, selectables } =\r\n useSelection();\r\n const { columns, headers } = useHeader();\r\n\r\n const getFixedStyles = (\r\n column: InternalDataTableHeader,\r\n y: number,\r\n ): CSSProperties | undefined => {\r\n if (!props.sticky && !column.fixed) return undefined;\r\n\r\n return {\r\n position: 'sticky',\r\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined,\r\n left: column.fixed ? toStyleSizeValue(column.fixedOffset) : undefined,\r\n top: props.sticky\r\n ? `calc(var(--v-table-header-height) * ${y})`\r\n : undefined,\r\n };\r\n };\r\n\r\n function onClick(e: Event) {\r\n //\r\n }\r\n\r\n function getSortDirection(column: InternalDataTableHeader) {\r\n const found = sortBy.value.find((by) => by.key === column.key);\r\n if (!found) {\r\n return undefined;\r\n }\r\n if (found.order === 'asc') {\r\n return 'asc';\r\n }\r\n if (found.order === 'desc') {\r\n return 'desc';\r\n }\r\n }\r\n\r\n const YDataTableTh = ({\r\n column,\r\n x,\r\n y,\r\n }: {\r\n column: InternalDataTableHeader;\r\n x: number;\r\n y: number;\r\n }) => {\r\n return (\r\n <YDataTableCell\r\n type=\"head\"\r\n align={column.align}\r\n fixed={\r\n column.fixed ? (column.lastFixed ? 'trail' : 'lead') : undefined\r\n }\r\n class={[\r\n 'y-data-table-header',\r\n {\r\n 'y-data-table-header--sortable': column.sortable,\r\n 'y-data-table-header--sorted': isSorted(column),\r\n 'y-data-table-header--select': column.key === 'data-table-select',\r\n },\r\n ]}\r\n style={{\r\n width: toStyleSizeValue(column.width),\r\n minWidth: toStyleSizeValue(column.width),\r\n maxWidth: toStyleSizeValue(column.maxWidth),\r\n ...getFixedStyles(column, y),\r\n }}\r\n {...{ rowspan: column.rowspan, colspan: column.colspan }}\r\n onClick={onClick}\r\n >\r\n {{\r\n default: () => {\r\n const headerSlotName = `header.${column.key}` as const;\r\n const headerSlotProps = {\r\n column,\r\n selectAll,\r\n isSorted,\r\n toggleSort,\r\n sortBy: sortBy.value,\r\n someSelected: someSelected.value,\r\n allSelected: allSelected.value,\r\n selectables: selectables.value,\r\n getSortDirection,\r\n };\r\n\r\n if (slots[headerSlotName]) {\r\n return slots[headerSlotName]?.(headerSlotProps);\r\n }\r\n\r\n if (column.key === 'data-table-select') {\r\n return (\r\n slots['header.data-table-select']?.(headerSlotProps) ??\r\n (showSelectAll && (\r\n <YIconCheckbox\r\n checked={allSelected.value}\r\n indeterminate={!allSelected.value && someSelected.value}\r\n disabled={selectables.value.length < 1}\r\n {...{\r\n onClick: (e: MouseEvent) => {\r\n e.stopPropagation();\r\n selectAll(!allSelected.value);\r\n },\r\n }}\r\n ></YIconCheckbox>\r\n ))\r\n );\r\n }\r\n\r\n return (\r\n <div class=\"y-data-table-header__content\">\r\n <span class=\"y-data-table-header__text\">{column.text}</span>\r\n <span\r\n class={[\r\n 'y-data-table-header__sorting-icon',\r\n {\r\n 'y-data-table-header__sorting-icon--disabled':\r\n !column.sortable,\r\n },\r\n ]}\r\n onClick={\r\n column.sortable\r\n ? (e) => {\r\n e.stopPropagation();\r\n toggleSort(column);\r\n }\r\n : undefined\r\n }\r\n >\r\n <YIconSort\r\n disabled={!column.sortable}\r\n direction={getSortDirection(column)}\r\n ></YIconSort>\r\n </span>\r\n </div>\r\n );\r\n },\r\n }}\r\n </YDataTableCell>\r\n );\r\n };\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n {slots.head\r\n ? slots.head?.(props)\r\n : headers.value.map((row, y) => (\r\n <tr>\r\n {row.map((column, x) => (\r\n <YDataTableTh column={column} x={x} y={y} />\r\n ))}\r\n </tr>\r\n ))}\r\n </>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YDataTableHead = InstanceType<typeof YDataTableHead>;\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTableRow.mjs","names":["defineComponent","computed","useRender","getPropertyFromItem","propsFactory","YIconCheckbox","YDataTableCell","useHeader","useSelection","pressYDataTableRowProps","index","Number","onClick","Function","YDataTableRow","name","props","item","Object","cellProps","setup","_ref","emit","slots","isSelected","toggleSelect","columns","_createVNode","e","value","map","column","colIndex","slotProps","raw","internalItem","key","selected","_mergeProps","align","fixed","lastFixed","undefined","fixedOffset","width","maxWidth","default","slotName","selectable","stopPropagation"],"sources":["../../../src/components/table/YDataTableRow.tsx"],"sourcesContent":["import {PropType, defineComponent, computed} from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { getPropertyFromItem } from '../../util/common';\nimport { propsFactory } from '../../util/vue-component';\nimport { YIconCheckbox } from '../icons';\nimport { YDataTableCell } from './YDataTableCell';\nimport { useHeader } from './composibles/header';\nimport { useSelection } from './composibles/selection';\nimport { CellProps, DataTableItem } from './types';\n\nexport const pressYDataTableRowProps = propsFactory(\n {\n index: Number as PropType<number>,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n },\n 'YDataTableRow',\n);\n\nexport const YDataTableRow = defineComponent({\n name: 'YDataTableRow',\n props: {\n item: Object as PropType<DataTableItem>,\n cellProps: [Object, Function] as PropType<CellProps>,\n ...pressYDataTableRowProps(),\n },\n setup(props, { emit, slots }) {\n const { isSelected, toggleSelect } = useSelection();\n const { columns } = useHeader();\n\n useRender(() => {\n return (\n <tr class={['y-data-table__row']} onClick={(e) => emit('click:row', e)}>\n {props.item &&\n columns.value.map((column, colIndex) => {\n const item = props.item!;\n const slotProps = {\n index: props.index!,\n item: props.item!.raw,\n internalItem: props.item!,\n columns: columns.value,\n value: getPropertyFromItem(item.columns, column.key),\n selected: computed(() => isSelected(item)).value,\n toggleSelect,\n };\n\n const cellProps =\n typeof props.cellProps === 'function'\n ? props.cellProps({\n index: slotProps.index,\n column,\n internalItem: slotProps.internalItem,\n item: slotProps.item,\n value: slotProps.value,\n selected: slotProps.selected,\n })\n : props.cellProps;\n\n return (\n <YDataTableCell\n align={column.align}\n fixed={\n column.fixed\n ? column.lastFixed\n ? 'trail'\n : 'lead'\n : undefined\n }\n fixedOffset={column.fixedOffset}\n width={column.width}\n maxWidth={column.maxWidth}\n class={[\n 'y-data-table-data',\n {\n 'y-data-table-data--select':\n column.key === 'data-table-select',\n },\n ]}\n {...cellProps}\n >\n {{\n default: () => {\n const slotName = `item.${column.key}`;\n\n if (slots[slotName]) {\n return slots[slotName]?.(slotProps);\n }\n\n if (column.key === 'data-table-select') {\n return (\n slots['item.data-table-select']?.(slotProps) ?? (\n <YIconCheckbox\n checked={isSelected(item)}\n disabled={!item.selectable}\n {...{\n onClick: (e: MouseEvent) => {\n e.stopPropagation();\n toggleSelect(item);\n },\n }}\n ></YIconCheckbox>\n )\n );\n }\n\n return slotProps.value;\n },\n }}\n </YDataTableCell>\n );\n })}\n </tr>\n );\n });\n },\n});\n\nexport type YDataTableRow = InstanceType<typeof YDataTableRow>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDataTableRow.mjs","names":["defineComponent","computed","useRender","getPropertyFromItem","propsFactory","YIconCheckbox","YDataTableCell","useHeader","useSelection","pressYDataTableRowProps","index","Number","onClick","Function","YDataTableRow","name","props","item","Object","cellProps","setup","_ref","emit","slots","isSelected","toggleSelect","columns","_createVNode","e","value","map","column","colIndex","slotProps","raw","internalItem","key","selected","_mergeProps","align","fixed","lastFixed","undefined","fixedOffset","width","maxWidth","default","slotName","selectable","stopPropagation"],"sources":["../../../src/components/table/YDataTableRow.tsx"],"sourcesContent":["import {PropType, defineComponent, computed} from 'vue';\r\n\r\nimport { useRender } from '../../composables/component';\r\nimport { getPropertyFromItem } from '../../util/common';\r\nimport { propsFactory } from '../../util/vue-component';\r\nimport { YIconCheckbox } from '../icons';\r\nimport { YDataTableCell } from './YDataTableCell';\r\nimport { useHeader } from './composibles/header';\r\nimport { useSelection } from './composibles/selection';\r\nimport { CellProps, DataTableItem } from './types';\r\n\r\nexport const pressYDataTableRowProps = propsFactory(\r\n {\r\n index: Number as PropType<number>,\r\n onClick: Function as PropType<(e: MouseEvent) => void>,\r\n },\r\n 'YDataTableRow',\r\n);\r\n\r\nexport const YDataTableRow = defineComponent({\r\n name: 'YDataTableRow',\r\n props: {\r\n item: Object as PropType<DataTableItem>,\r\n cellProps: [Object, Function] as PropType<CellProps>,\r\n ...pressYDataTableRowProps(),\r\n },\r\n setup(props, { emit, slots }) {\r\n const { isSelected, toggleSelect } = useSelection();\r\n const { columns } = useHeader();\r\n\r\n useRender(() => {\r\n return (\r\n <tr class={['y-data-table__row']} onClick={(e) => emit('click:row', e)}>\r\n {props.item &&\r\n columns.value.map((column, colIndex) => {\r\n const item = props.item!;\r\n const slotProps = {\r\n index: props.index!,\r\n item: props.item!.raw,\r\n internalItem: props.item!,\r\n columns: columns.value,\r\n value: getPropertyFromItem(item.columns, column.key),\r\n selected: computed(() => isSelected(item)).value,\r\n toggleSelect,\r\n };\r\n\r\n const cellProps =\r\n typeof props.cellProps === 'function'\r\n ? props.cellProps({\r\n index: slotProps.index,\r\n column,\r\n internalItem: slotProps.internalItem,\r\n item: slotProps.item,\r\n value: slotProps.value,\r\n selected: slotProps.selected,\r\n })\r\n : props.cellProps;\r\n\r\n return (\r\n <YDataTableCell\r\n align={column.align}\r\n fixed={\r\n column.fixed\r\n ? column.lastFixed\r\n ? 'trail'\r\n : 'lead'\r\n : undefined\r\n }\r\n fixedOffset={column.fixedOffset}\r\n width={column.width}\r\n maxWidth={column.maxWidth}\r\n class={[\r\n 'y-data-table-data',\r\n {\r\n 'y-data-table-data--select':\r\n column.key === 'data-table-select',\r\n },\r\n ]}\r\n {...cellProps}\r\n >\r\n {{\r\n default: () => {\r\n const slotName = `item.${column.key}`;\r\n\r\n if (slots[slotName]) {\r\n return slots[slotName]?.(slotProps);\r\n }\r\n\r\n if (column.key === 'data-table-select') {\r\n return (\r\n slots['item.data-table-select']?.(slotProps) ?? (\r\n <YIconCheckbox\r\n checked={isSelected(item)}\r\n disabled={!item.selectable}\r\n {...{\r\n onClick: (e: MouseEvent) => {\r\n e.stopPropagation();\r\n toggleSelect(item);\r\n },\r\n }}\r\n ></YIconCheckbox>\r\n )\r\n );\r\n }\r\n\r\n return slotProps.value;\r\n },\r\n }}\r\n </YDataTableCell>\r\n );\r\n })}\r\n </tr>\r\n );\r\n });\r\n },\r\n});\r\n\r\nexport type YDataTableRow = InstanceType<typeof YDataTableRow>;\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"YTable.mjs","names":["defineComponent","provide","useRender","useResizeObserver","toStyleSizeValue","propsFactory","pressYTableProps","tag","type","String","default","fixedHead","Boolean","height","Number","flexHeight","YTable","name","props","setup","_ref","slots","resizeObservedRef","contentRect","wrapperRef","wrapperRect","tableRef","tableRect","containerRect","ElTag","containerHeight","value","_createVNode","width","top","leading","trailing","container","bottom"],"sources":["../../../src/components/table/YTable.tsx"],"sourcesContent":["import { PropType, defineComponent, provide } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { useResizeObserver } from '../../composables/resize-observer';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { propsFactory } from '../../util/vue-component';\n\nimport './YTable.scss';\n\nexport const pressYTableProps = propsFactory(\n {\n tag: {\n type: String as PropType<string>,\n default: 'div',\n },\n fixedHead: {\n type: Boolean as PropType<boolean>,\n },\n height: {\n type: [Number, String] as PropType<number | string>,\n },\n flexHeight: {\n type: Boolean as PropType<boolean>,\n },\n },\n 'YTable',\n);\n\nexport const YTable = defineComponent({\n name: 'YTable',\n props: {\n ...pressYTableProps(),\n },\n setup(props, { slots }) {\n const { resizeObservedRef, contentRect } = useResizeObserver();\n const { resizeObservedRef: wrapperRef, contentRect: wrapperRect } =\n useResizeObserver();\n const { resizeObservedRef: tableRef, contentRect: tableRect } =\n useResizeObserver();\n provide('YTable', { containerRect: contentRect });\n useRender(() => {\n const ElTag = (props.tag as keyof HTMLElementTagNameMap) ?? 'div';\n const containerHeight = props.flexHeight\n ? contentRect.value?.height ?? props.height\n : props.height;\n return (\n <ElTag\n class={[\n 'y-table',\n {\n 'y-table--fixed-head': props.fixedHead,\n 'y-table--fixed-height': props.flexHeight || props.height,\n 'y-table--flex-height': props.flexHeight,\n },\n ]}\n style={{\n '--y-table-container-width': toStyleSizeValue(\n contentRect.value?.width,\n ),\n '--y-table-wrapper-width': toStyleSizeValue(\n wrapperRect.value?.width,\n ),\n }}\n >\n {slots.top?.()}\n {slots.default ? (\n <div ref={resizeObservedRef} class={['y-table__container']}>\n {slots.leading?.()}\n <div\n ref={wrapperRef}\n class={['y-table__wrapper']}\n style={{\n height: toStyleSizeValue(containerHeight),\n }}\n >\n <table ref={tableRef}>{slots.default()}</table>\n </div>\n {slots.trailing?.()}\n </div>\n ) : (\n slots.container?.(resizeObservedRef, contentRect)\n )}\n {slots.bottom?.()}\n </ElTag>\n );\n });\n },\n});\n"],"mappings":";AAAA,SAAmBA,eAAe,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAEhDC,SAAS;AAAA,SACTC,iBAAiB;AAAA,SACjBC,gBAAgB;AAAA,SAChBC,YAAY;AAErB;AAEA,OAAO,MAAMC,gBAAgB,GAAGD,YAAY,CAC1C;EACEE,GAAG,EAAE;IACHC,IAAI,EAAEC,MAA0B;IAChCC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAEI;EACR,CAAC;EACDC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACM,MAAM,EAAEL,MAAM;EACvB,CAAC;EACDM,UAAU,EAAE;IACVP,IAAI,EAAEI;EACR;AACF,CAAC,EACD,QACF,CAAC;AAED,OAAO,MAAMI,MAAM,GAAGhB,eAAe,CAAC;EACpCiB,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;IACL,GAAGZ,gBAAgB,CAAC;EACtB,CAAC;EACDa,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACpB,MAAM;MAAEE,iBAAiB;MAAEC;IAAY,CAAC,GAAGpB,iBAAiB,CAAC,CAAC;IAC9D,MAAM;MAAEmB,iBAAiB,EAAEE,UAAU;MAAED,WAAW,EAAEE;IAAY,CAAC,GAC/DtB,iBAAiB,CAAC,CAAC;IACrB,MAAM;MAAEmB,iBAAiB,EAAEI,QAAQ;MAAEH,WAAW,EAAEI;IAAU,CAAC,GAC3DxB,iBAAiB,CAAC,CAAC;IACrBF,OAAO,CAAC,QAAQ,EAAE;MAAE2B,aAAa,EAAEL;IAAY,CAAC,CAAC;IACjDrB,SAAS,CAAC,MAAM;MACd,MAAM2B,KAAK,GAAIX,KAAK,CAACX,GAAG,IAAoC,KAAK;MACjE,MAAMuB,eAAe,GAAGZ,KAAK,CAACH,UAAU,GACpCQ,WAAW,CAACQ,KAAK,EAAElB,MAAM,IAAIK,KAAK,CAACL,MAAM,GACzCK,KAAK,CAACL,MAAM;MAChB,OAAAmB,YAAA,CAAAH,KAAA;QAAA,SAEW,CACL,SAAS,EACT;UACE,qBAAqB,EAAEX,KAAK,CAACP,SAAS;UACtC,uBAAuB,EAAEO,KAAK,CAACH,UAAU,IAAIG,KAAK,CAACL,MAAM;UACzD,sBAAsB,EAAEK,KAAK,CAACH;QAChC,CAAC,CACF;QAAA,SACM;UACL,2BAA2B,EAAEX,gBAAgB,CAC3CmB,WAAW,CAACQ,KAAK,EAAEE,KACrB,CAAC;UACD,yBAAyB,EAAE7B,gBAAgB,CACzCqB,WAAW,CAACM,KAAK,EAAEE,KACrB;QACF;MAAC;QAAAvB,OAAA,EAAAA,CAAA,MAEAW,KAAK,CAACa,GAAG,GAAG,CAAC,EACbb,KAAK,CAACX,OAAO,GAAAsB,YAAA;UAAA,OACFV,iBAAiB;UAAA,SAAS,CAAC,oBAAoB;QAAC,IACvDD,KAAK,CAACc,OAAO,GAAG,CAAC,EAAAH,YAAA;UAAA,OAEXR,UAAU;UAAA,SACR,CAAC,kBAAkB,CAAC;UAAA,SACpB;YACLX,MAAM,EAAET,gBAAgB,CAAC0B,eAAe;UAC1C;QAAC,IAAAE,YAAA;UAAA,OAEWN;QAAQ,IAAGL,KAAK,CAACX,OAAO,CAAC,CAAC,MAEvCW,KAAK,CAACe,QAAQ,GAAG,CAAC,KAGrBf,KAAK,CAACgB,SAAS,GAAGf,iBAAiB,EAAEC,WAAW,CACjD,EACAF,KAAK,CAACiB,MAAM,GAAG,CAAC;MAAA;IAGvB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YTable.mjs","names":["defineComponent","provide","useRender","useResizeObserver","toStyleSizeValue","propsFactory","pressYTableProps","tag","type","String","default","fixedHead","Boolean","height","Number","flexHeight","YTable","name","props","setup","_ref","slots","resizeObservedRef","contentRect","wrapperRef","wrapperRect","tableRef","tableRect","containerRect","ElTag","containerHeight","value","_createVNode","width","top","leading","trailing","container","bottom"],"sources":["../../../src/components/table/YTable.tsx"],"sourcesContent":["import { PropType, defineComponent, provide } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { useResizeObserver } from '../../composables/resize-observer';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { propsFactory } from '../../util/vue-component';\n\nimport './YTable.scss';\n\nexport const pressYTableProps = propsFactory(\n {\n tag: {\n type: String as PropType<string>,\n default: 'div',\n },\n fixedHead: {\n type: Boolean as PropType<boolean>,\n },\n height: {\n type: [Number, String] as PropType<number | string>,\n },\n flexHeight: {\n type: Boolean as PropType<boolean>,\n },\n },\n 'YTable',\n);\n\nexport const YTable = defineComponent({\n name: 'YTable',\n props: {\n ...pressYTableProps(),\n },\n setup(props, { slots }) {\n const { resizeObservedRef, contentRect } = useResizeObserver();\n const { resizeObservedRef: wrapperRef, contentRect: wrapperRect } =\n useResizeObserver();\n const { resizeObservedRef: tableRef, contentRect: tableRect } =\n useResizeObserver();\n provide('YTable', { containerRect: contentRect });\n useRender(() => {\n const ElTag = (props.tag as keyof HTMLElementTagNameMap) ?? 'div';\n const containerHeight = props.flexHeight\n ? contentRect.value?.height ?? props.height\n : props.height;\n return (\n <ElTag\n class={[\n 'y-table',\n {\n 'y-table--fixed-head': props.fixedHead,\n 'y-table--fixed-height': props.flexHeight || props.height,\n 'y-table--flex-height': props.flexHeight,\n },\n ]}\n style={{\n '--y-table-container-width': toStyleSizeValue(\n contentRect.value?.width,\n ),\n '--y-table-wrapper-width': toStyleSizeValue(\n wrapperRect.value?.width,\n ),\n }}\n >\n {slots.top?.()}\n {slots.default ? (\n <div ref={resizeObservedRef} class={['y-table__container']}>\n {slots.leading?.()}\n <div\n ref={wrapperRef}\n class={['y-table__wrapper']}\n style={{\n height: toStyleSizeValue(containerHeight),\n }}\n >\n <table ref={tableRef}>{slots.default()}</table>\n </div>\n {slots.trailing?.()}\n </div>\n ) : (\n slots.container?.(resizeObservedRef, contentRect)\n )}\n {slots.bottom?.()}\n </ElTag>\n );\n });\n },\n});\n\nexport type YTable = InstanceType<typeof YTable>;\n"],"mappings":";AAAA,SAAmBA,eAAe,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAEhDC,SAAS;AAAA,SACTC,iBAAiB;AAAA,SACjBC,gBAAgB;AAAA,SAChBC,YAAY;AAErB;AAEA,OAAO,MAAMC,gBAAgB,GAAGD,YAAY,CAC1C;EACEE,GAAG,EAAE;IACHC,IAAI,EAAEC,MAA0B;IAChCC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTH,IAAI,EAAEI;EACR,CAAC;EACDC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACM,MAAM,EAAEL,MAAM;EACvB,CAAC;EACDM,UAAU,EAAE;IACVP,IAAI,EAAEI;EACR;AACF,CAAC,EACD,QACF,CAAC;AAED,OAAO,MAAMI,MAAM,GAAGhB,eAAe,CAAC;EACpCiB,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;IACL,GAAGZ,gBAAgB,CAAC;EACtB,CAAC;EACDa,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACpB,MAAM;MAAEE,iBAAiB;MAAEC;IAAY,CAAC,GAAGpB,iBAAiB,CAAC,CAAC;IAC9D,MAAM;MAAEmB,iBAAiB,EAAEE,UAAU;MAAED,WAAW,EAAEE;IAAY,CAAC,GAC/DtB,iBAAiB,CAAC,CAAC;IACrB,MAAM;MAAEmB,iBAAiB,EAAEI,QAAQ;MAAEH,WAAW,EAAEI;IAAU,CAAC,GAC3DxB,iBAAiB,CAAC,CAAC;IACrBF,OAAO,CAAC,QAAQ,EAAE;MAAE2B,aAAa,EAAEL;IAAY,CAAC,CAAC;IACjDrB,SAAS,CAAC,MAAM;MACd,MAAM2B,KAAK,GAAIX,KAAK,CAACX,GAAG,IAAoC,KAAK;MACjE,MAAMuB,eAAe,GAAGZ,KAAK,CAACH,UAAU,GACpCQ,WAAW,CAACQ,KAAK,EAAElB,MAAM,IAAIK,KAAK,CAACL,MAAM,GACzCK,KAAK,CAACL,MAAM;MAChB,OAAAmB,YAAA,CAAAH,KAAA;QAAA,SAEW,CACL,SAAS,EACT;UACE,qBAAqB,EAAEX,KAAK,CAACP,SAAS;UACtC,uBAAuB,EAAEO,KAAK,CAACH,UAAU,IAAIG,KAAK,CAACL,MAAM;UACzD,sBAAsB,EAAEK,KAAK,CAACH;QAChC,CAAC,CACF;QAAA,SACM;UACL,2BAA2B,EAAEX,gBAAgB,CAC3CmB,WAAW,CAACQ,KAAK,EAAEE,KACrB,CAAC;UACD,yBAAyB,EAAE7B,gBAAgB,CACzCqB,WAAW,CAACM,KAAK,EAAEE,KACrB;QACF;MAAC;QAAAvB,OAAA,EAAAA,CAAA,MAEAW,KAAK,CAACa,GAAG,GAAG,CAAC,EACbb,KAAK,CAACX,OAAO,GAAAsB,YAAA;UAAA,OACFV,iBAAiB;UAAA,SAAS,CAAC,oBAAoB;QAAC,IACvDD,KAAK,CAACc,OAAO,GAAG,CAAC,EAAAH,YAAA;UAAA,OAEXR,UAAU;UAAA,SACR,CAAC,kBAAkB,CAAC;UAAA,SACpB;YACLX,MAAM,EAAET,gBAAgB,CAAC0B,eAAe;UAC1C;QAAC,IAAAE,YAAA;UAAA,OAEWN;QAAQ,IAAGL,KAAK,CAACX,OAAO,CAAC,CAAC,MAEvCW,KAAK,CAACe,QAAQ,GAAG,CAAC,KAGrBf,KAAK,CAACgB,SAAS,GAAGf,iBAAiB,EAAEC,WAAW,CACjD,EACAF,KAAK,CAACiB,MAAM,GAAG,CAAC;MAAA;IAGvB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/table/types/index.ts"],"sourcesContent":["import { ComputedRef, Ref, UnwrapRef } from 'vue';\n\nimport { SelectableItem, provideSelection } from '../composibles/selection';\n\nexport type DataTableCompareFn<T = any> = (a: T, b: T) => number;\n\nexport type DataTableHeader = {\n key: string;\n text: string;\n value?: any;\n\n colspan?: number;\n rowspan?: number;\n fixed?: boolean;\n\n classes?: string | string[];\n align?: 'start' | 'end' | 'center';\n width?: number | string;\n minWidth?: string;\n maxWidth?: string;\n sortable?: boolean;\n sort?: DataTableCompareFn;\n mustSort?: boolean;\n};\n\nexport type InternalDataTableHeader = DataTableHeader & {\n sortable: boolean;\n fixedOffset?: number;\n lastFixed?: boolean;\n};\n\nexport interface DataTableItem<T = any> extends SelectableItem {\n index: number;\n columns: Record<string, any>;\n raw: T;\n}\n\nexport type SortOption = { key: string; order?: boolean | 'asc' | 'desc' };\n\nexport type DataTableProvideSortingData = {\n sortBy: Ref<readonly SortOption[]>;\n toggleSort: (column: InternalDataTableHeader) => void;\n isSorted: (column: InternalDataTableHeader) => boolean;\n};\n\nexport interface DataTableProvidePaginationData {\n page: Ref<number>;\n pageSize: Ref<number>;\n startIndex: ComputedRef<number>;\n endIndex: ComputedRef<number>;\n pageLength: ComputedRef<number>;\n total: Ref<number>;\n nextPage: () => void;\n prevPage: () => void;\n setPage: (value: number) => void;\n setPageSize: (value: number) => void;\n}\n\nexport interface DataTableProvideSelectionData {\n toggleSelect: (item: SelectableItem) => void;\n select: (items: SelectableItem[], value: boolean) => void;\n selectAll: (value: boolean) => void;\n isSelected: (items: SelectableItem | SelectableItem[]) => any;\n isSomeSelected: (items: SelectableItem | SelectableItem[]) => any;\n someSelected: ComputedRef<boolean>;\n allSelected: ComputedRef<any>;\n showSelectAll: boolean;\n selectables: ComputedRef<SelectableItem[]>;\n}\n\nexport type YDataTableSlotProps = {\n // pagination\n page: number;\n pageSize: number;\n pageLength: number;\n setPageSize: DataTableProvidePaginationData['setPageSize'];\n // sorting\n sortBy: UnwrapRef<DataTableProvideSortingData['sortBy']>;\n toggleSort: DataTableProvideSortingData['toggleSort'];\n // selection\n someSelected: boolean;\n allSelected: boolean;\n isSelected: DataTableProvideSelectionData['isSelected'];\n select: DataTableProvideSelectionData['select'];\n selectAll: DataTableProvideSelectionData['selectAll'];\n toggleSelect: DataTableProvideSelectionData['toggleSelect'];\n //\n items: readonly DataTableItem[];\n columns: InternalDataTableHeader[];\n headers: InternalDataTableHeader[][];\n};\n\ntype ItemSlotBase<T> = {\n index: number;\n item: T;\n internalItem: DataTableItem<T>;\n selected: boolean;\n isSelected: ReturnType<typeof provideSelection>['isSelected'];\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect'];\n};\n\nexport type ItemKeySlot<T> = ItemSlotBase<T> & {\n value: any;\n column: InternalDataTableHeader;\n};\n\nexport type CellProps<T = any> =\n | Record<string, any>\n | ((\n data: Pick<\n ItemKeySlot<T>,\n 'index' | 'item' | 'internalItem' | 'value' | 'column' | 'selected'\n >,\n ) => Record<string, any>);\n"],"mappings":""}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/table/types/index.ts"],"sourcesContent":["import { ComputedRef, Ref, UnwrapRef } from 'vue';\r\n\r\nimport { SelectableItem, provideSelection } from '../composibles/selection';\r\n\r\nexport type DataTableCompareFn<T = any> = (a: T, b: T) => number;\r\n\r\nexport type DataTableHeader = {\r\n key: string;\r\n text: string;\r\n value?: any;\r\n\r\n colspan?: number;\r\n rowspan?: number;\r\n fixed?: boolean;\r\n\r\n classes?: string | string[];\r\n align?: 'start' | 'end' | 'center';\r\n width?: number | string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n sortable?: boolean;\r\n sort?: DataTableCompareFn;\r\n mustSort?: boolean;\r\n};\r\n\r\nexport type InternalDataTableHeader = DataTableHeader & {\r\n sortable: boolean;\r\n fixedOffset?: number;\r\n lastFixed?: boolean;\r\n};\r\n\r\nexport interface DataTableItem<T = any> extends SelectableItem {\r\n index: number;\r\n columns: Record<string, any>;\r\n raw: T;\r\n}\r\n\r\nexport type SortOption = { key: string; order?: boolean | 'asc' | 'desc' };\r\n\r\nexport type DataTableProvideSortingData = {\r\n sortBy: Ref<readonly SortOption[]>;\r\n toggleSort: (column: InternalDataTableHeader) => void;\r\n isSorted: (column: InternalDataTableHeader) => boolean;\r\n};\r\n\r\nexport interface DataTableProvidePaginationData {\r\n page: Ref<number>;\r\n pageSize: Ref<number>;\r\n startIndex: ComputedRef<number>;\r\n endIndex: ComputedRef<number>;\r\n pageLength: ComputedRef<number>;\r\n total: Ref<number>;\r\n nextPage: () => void;\r\n prevPage: () => void;\r\n setPage: (value: number) => void;\r\n setPageSize: (value: number) => void;\r\n}\r\n\r\nexport interface DataTableProvideSelectionData {\r\n toggleSelect: (item: SelectableItem) => void;\r\n select: (items: SelectableItem[], value: boolean) => void;\r\n selectAll: (value: boolean) => void;\r\n isSelected: (items: SelectableItem | SelectableItem[]) => any;\r\n isSomeSelected: (items: SelectableItem | SelectableItem[]) => any;\r\n someSelected: ComputedRef<boolean>;\r\n allSelected: ComputedRef<any>;\r\n showSelectAll: boolean;\r\n selectables: ComputedRef<SelectableItem[]>;\r\n}\r\n\r\nexport type YDataTableSlotProps = {\r\n // pagination\r\n page: number;\r\n pageSize: number;\r\n pageLength: number;\r\n setPageSize: DataTableProvidePaginationData['setPageSize'];\r\n // sorting\r\n sortBy: UnwrapRef<DataTableProvideSortingData['sortBy']>;\r\n toggleSort: DataTableProvideSortingData['toggleSort'];\r\n // selection\r\n someSelected: boolean;\r\n allSelected: boolean;\r\n isSelected: DataTableProvideSelectionData['isSelected'];\r\n select: DataTableProvideSelectionData['select'];\r\n selectAll: DataTableProvideSelectionData['selectAll'];\r\n toggleSelect: DataTableProvideSelectionData['toggleSelect'];\r\n //\r\n items: readonly DataTableItem[];\r\n columns: InternalDataTableHeader[];\r\n headers: InternalDataTableHeader[][];\r\n};\r\n\r\ntype ItemSlotBase<T> = {\r\n index: number;\r\n item: T;\r\n internalItem: DataTableItem<T>;\r\n selected: boolean;\r\n isSelected: ReturnType<typeof provideSelection>['isSelected'];\r\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect'];\r\n};\r\n\r\nexport type ItemKeySlot<T> = ItemSlotBase<T> & {\r\n value: any;\r\n column: InternalDataTableHeader;\r\n};\r\n\r\nexport type CellProps<T = any> =\r\n | Record<string, any>\r\n | ((\r\n data: Pick<\r\n ItemKeySlot<T>,\r\n 'index' | 'item' | 'internalItem' | 'value' | 'column' | 'selected'\r\n >,\r\n ) => Record<string, any>);\r\n"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, h } from 'vue';
2
2
  import "./YTextHighlighter.scss";
3
- export default defineComponent({
3
+ export const YTextHighlighter = defineComponent({
4
4
  name: 'YTextHighlighter',
5
5
  props: {
6
6
  text: {
@@ -1 +1 @@
1
- {"version":3,"file":"YTextHighlighter.mjs","names":["defineComponent","h","name","props","text","type","String","keyword","color","sensitive","Boolean","computed","splitText","split","stack","keyExp","RegExp","length","index","search","push","isKeyword","substring","methods","createItem","staticClass","createHighlightKeywordItem","class","style","backgroundColor","createSplitTexts","map","splitItem","render","children"],"sources":["../../../src/components/text-highlighter/YTextHighlighter.ts"],"sourcesContent":["import { VNode, defineComponent, h } from 'vue';\n\nimport './YTextHighlighter.scss';\n\nexport default defineComponent({\n name: 'YTextHighlighter',\n props: {\n text: {\n type: String,\n },\n keyword: {\n type: String,\n },\n color: {\n type: String,\n },\n sensitive: {\n type: Boolean,\n },\n },\n computed: {\n splitText(): { text: string; isKeyword: boolean }[] {\n const { keyword, text } = this;\n if (keyword && text) {\n const split: { text: string; isKeyword: boolean }[] = [];\n let stack = text;\n const keyExp = new RegExp(keyword, this.sensitive ? '' : 'i');\n while (stack.length > 0) {\n const index = stack.search(keyExp);\n if (index < 0) {\n split.push({ text: stack, isKeyword: false });\n stack = '';\n } else if (index < 1) {\n split.push({\n text: stack.substring(0, keyword.length),\n isKeyword: true,\n });\n stack = stack.substring(keyword.length, stack.length);\n } else {\n split.push({ text: stack.substring(0, index), isKeyword: false });\n split.push({\n text: stack.substring(index, index + keyword.length),\n isKeyword: true,\n });\n stack = stack.substring(index + keyword.length, stack.length);\n }\n }\n return split;\n }\n return [{ text: this.text || '', isKeyword: false }];\n },\n },\n methods: {\n createItem(text: string): VNode {\n return h(\n 'span',\n {\n staticClass: 'y-text-highlighter__item',\n },\n [text],\n );\n },\n createHighlightKeywordItem(text: string): VNode {\n return h(\n 'span',\n {\n staticClass: 'y-text-highlighter__item',\n class: 'y-text-highlighter__item--highlight',\n style: {\n backgroundColor: this.color,\n },\n },\n [text],\n );\n },\n createSplitTexts(): VNode[] {\n return this.splitText.map((splitItem) => {\n if (splitItem.isKeyword) {\n return this.createHighlightKeywordItem(splitItem.text);\n }\n return this.createItem(splitItem.text);\n });\n },\n },\n render(): VNode {\n const children = this.createSplitTexts();\n return h('span', { staticClass: 'y-text-highlighter' }, children);\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTextHighlighter.mjs","names":["defineComponent","h","YTextHighlighter","name","props","text","type","String","keyword","color","sensitive","Boolean","computed","splitText","split","stack","keyExp","RegExp","length","index","search","push","isKeyword","substring","methods","createItem","staticClass","createHighlightKeywordItem","class","style","backgroundColor","createSplitTexts","map","splitItem","render","children"],"sources":["../../../src/components/text-highlighter/YTextHighlighter.ts"],"sourcesContent":["import { VNode, defineComponent, h } from 'vue';\n\nimport './YTextHighlighter.scss';\n\nexport const YTextHighlighter = defineComponent({\n name: 'YTextHighlighter',\n props: {\n text: {\n type: String,\n },\n keyword: {\n type: String,\n },\n color: {\n type: String,\n },\n sensitive: {\n type: Boolean,\n },\n },\n computed: {\n splitText(): { text: string; isKeyword: boolean }[] {\n const { keyword, text } = this;\n if (keyword && text) {\n const split: { text: string; isKeyword: boolean }[] = [];\n let stack = text;\n const keyExp = new RegExp(keyword, this.sensitive ? '' : 'i');\n while (stack.length > 0) {\n const index = stack.search(keyExp);\n if (index < 0) {\n split.push({ text: stack, isKeyword: false });\n stack = '';\n } else if (index < 1) {\n split.push({\n text: stack.substring(0, keyword.length),\n isKeyword: true,\n });\n stack = stack.substring(keyword.length, stack.length);\n } else {\n split.push({ text: stack.substring(0, index), isKeyword: false });\n split.push({\n text: stack.substring(index, index + keyword.length),\n isKeyword: true,\n });\n stack = stack.substring(index + keyword.length, stack.length);\n }\n }\n return split;\n }\n return [{ text: this.text || '', isKeyword: false }];\n },\n },\n methods: {\n createItem(text: string): VNode {\n return h(\n 'span',\n {\n staticClass: 'y-text-highlighter__item',\n },\n [text],\n );\n },\n createHighlightKeywordItem(text: string): VNode {\n return h(\n 'span',\n {\n staticClass: 'y-text-highlighter__item',\n class: 'y-text-highlighter__item--highlight',\n style: {\n backgroundColor: this.color,\n },\n },\n [text],\n );\n },\n createSplitTexts(): VNode[] {\n return this.splitText.map((splitItem) => {\n if (splitItem.isKeyword) {\n return this.createHighlightKeywordItem(splitItem.text);\n }\n return this.createItem(splitItem.text);\n });\n },\n },\n render(): VNode {\n const children = this.createSplitTexts();\n return h('span', { staticClass: 'y-text-highlighter' }, children);\n },\n});\n\nexport type YTextHighlighter = InstanceType<typeof YTextHighlighter>;\n"],"mappings":"AAAA,SAAgBA,eAAe,EAAEC,CAAC,QAAQ,KAAK;AAE/C;AAEA,OAAO,MAAMC,gBAAgB,GAAGF,eAAe,CAAC;EAC9CG,IAAI,EAAE,kBAAkB;EACxBC,KAAK,EAAE;IACLC,IAAI,EAAE;MACJC,IAAI,EAAEC;IACR,CAAC;IACDC,OAAO,EAAE;MACPF,IAAI,EAAEC;IACR,CAAC;IACDE,KAAK,EAAE;MACLH,IAAI,EAAEC;IACR,CAAC;IACDG,SAAS,EAAE;MACTJ,IAAI,EAAEK;IACR;EACF,CAAC;EACDC,QAAQ,EAAE;IACRC,SAASA,CAAA,EAA2C;MAClD,MAAM;QAAEL,OAAO;QAAEH;MAAK,CAAC,GAAG,IAAI;MAC9B,IAAIG,OAAO,IAAIH,IAAI,EAAE;QACnB,MAAMS,KAA6C,GAAG,EAAE;QACxD,IAAIC,KAAK,GAAGV,IAAI;QAChB,MAAMW,MAAM,GAAG,IAAIC,MAAM,CAACT,OAAO,EAAE,IAAI,CAACE,SAAS,GAAG,EAAE,GAAG,GAAG,CAAC;QAC7D,OAAOK,KAAK,CAACG,MAAM,GAAG,CAAC,EAAE;UACvB,MAAMC,KAAK,GAAGJ,KAAK,CAACK,MAAM,CAACJ,MAAM,CAAC;UAClC,IAAIG,KAAK,GAAG,CAAC,EAAE;YACbL,KAAK,CAACO,IAAI,CAAC;cAAEhB,IAAI,EAAEU,KAAK;cAAEO,SAAS,EAAE;YAAM,CAAC,CAAC;YAC7CP,KAAK,GAAG,EAAE;UACZ,CAAC,MAAM,IAAII,KAAK,GAAG,CAAC,EAAE;YACpBL,KAAK,CAACO,IAAI,CAAC;cACThB,IAAI,EAAEU,KAAK,CAACQ,SAAS,CAAC,CAAC,EAAEf,OAAO,CAACU,MAAM,CAAC;cACxCI,SAAS,EAAE;YACb,CAAC,CAAC;YACFP,KAAK,GAAGA,KAAK,CAACQ,SAAS,CAACf,OAAO,CAACU,MAAM,EAAEH,KAAK,CAACG,MAAM,CAAC;UACvD,CAAC,MAAM;YACLJ,KAAK,CAACO,IAAI,CAAC;cAAEhB,IAAI,EAAEU,KAAK,CAACQ,SAAS,CAAC,CAAC,EAAEJ,KAAK,CAAC;cAAEG,SAAS,EAAE;YAAM,CAAC,CAAC;YACjER,KAAK,CAACO,IAAI,CAAC;cACThB,IAAI,EAAEU,KAAK,CAACQ,SAAS,CAACJ,KAAK,EAAEA,KAAK,GAAGX,OAAO,CAACU,MAAM,CAAC;cACpDI,SAAS,EAAE;YACb,CAAC,CAAC;YACFP,KAAK,GAAGA,KAAK,CAACQ,SAAS,CAACJ,KAAK,GAAGX,OAAO,CAACU,MAAM,EAAEH,KAAK,CAACG,MAAM,CAAC;UAC/D;QACF;QACA,OAAOJ,KAAK;MACd;MACA,OAAO,CAAC;QAAET,IAAI,EAAE,IAAI,CAACA,IAAI,IAAI,EAAE;QAAEiB,SAAS,EAAE;MAAM,CAAC,CAAC;IACtD;EACF,CAAC;EACDE,OAAO,EAAE;IACPC,UAAUA,CAACpB,IAAY,EAAS;MAC9B,OAAOJ,CAAC,CACN,MAAM,EACN;QACEyB,WAAW,EAAE;MACf,CAAC,EACD,CAACrB,IAAI,CACP,CAAC;IACH,CAAC;IACDsB,0BAA0BA,CAACtB,IAAY,EAAS;MAC9C,OAAOJ,CAAC,CACN,MAAM,EACN;QACEyB,WAAW,EAAE,0BAA0B;QACvCE,KAAK,EAAE,qCAAqC;QAC5CC,KAAK,EAAE;UACLC,eAAe,EAAE,IAAI,CAACrB;QACxB;MACF,CAAC,EACD,CAACJ,IAAI,CACP,CAAC;IACH,CAAC;IACD0B,gBAAgBA,CAAA,EAAY;MAC1B,OAAO,IAAI,CAAClB,SAAS,CAACmB,GAAG,CAAEC,SAAS,IAAK;QACvC,IAAIA,SAAS,CAACX,SAAS,EAAE;UACvB,OAAO,IAAI,CAACK,0BAA0B,CAACM,SAAS,CAAC5B,IAAI,CAAC;QACxD;QACA,OAAO,IAAI,CAACoB,UAAU,CAACQ,SAAS,CAAC5B,IAAI,CAAC;MACxC,CAAC,CAAC;IACJ;EACF,CAAC;EACD6B,MAAMA,CAAA,EAAU;IACd,MAAMC,QAAQ,GAAG,IAAI,CAACJ,gBAAgB,CAAC,CAAC;IACxC,OAAO9B,CAAC,CAAC,MAAM,EAAE;MAAEyB,WAAW,EAAE;IAAqB,CAAC,EAAES,QAAQ,CAAC;EACnE;AACF,CAAC,CAAC"}
@@ -1,3 +1,2 @@
1
- import YTextHighlighter from "./YTextHighlighter.mjs";
2
- export { YTextHighlighter };
1
+ export * from "./YTextHighlighter.mjs";
3
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["YTextHighlighter"],"sources":["../../../src/components/text-highlighter/index.ts"],"sourcesContent":["import YTextHighlighter from './YTextHighlighter';\n\nexport { YTextHighlighter };\n"],"mappings":"OAAOA,gBAAgB;AAEvB,SAASA,gBAAgB"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/text-highlighter/index.ts"],"sourcesContent":["export * from './YTextHighlighter';\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"YTooltip.mjs","names":["computed","defineComponent","nextTick","ref","watch","watchEffect","useModelDuplex","useRender","polyTransitionPropOptions","omit","bindClasses","chooseProps","YLayer","pressYLayerProps","useDelay","YPlate","NAME","YTooltipPropOptions","tooltipClasses","type","Array","String","Object","preventClip","Boolean","default","YTooltip","name","props","coordinateStrategy","openOnHover","align","offset","transition","emits","setup","_ref","slots","emit","expose","layer$","base$","baseSlot","baseEl","contentEl","classes","boundClasses","model","active","get","value","set","v","disabled","hovered","baseFromSlotEl","el","nodeType","base","$el","neo","$content","content$","startOpenDelay","startCloseDelay","changeActive","onMouseenter","e","onMouseleave","bindHover","addEventListener","unbindHover","removeEventListener","old","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","length","args","_key","_len2","_key2","el$"],"sources":["../../../src/components/tooltip/YTooltip.tsx"],"sourcesContent":["import type { PropType } from 'vue';\r\nimport {\r\n computed,\r\n defineComponent,\r\n nextTick,\r\n ref,\r\n watch,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '../../composables/communication';\r\nimport { useRender } from '../../composables/component';\r\nimport { polyTransitionPropOptions } from '../../composables/transition';\r\nimport { omit } from '../../util';\r\nimport { bindClasses, chooseProps } from '../../util/vue-component';\r\nimport { YLayer, pressYLayerProps } from '../layer';\r\nimport { useDelay } from '../layer/active-delay';\r\nimport { YPlate } from '../plate';\r\n\r\nimport './YTooltip.scss';\r\n\r\nconst NAME = 'YTooltip';\r\n\r\nconst YTooltipPropOptions = {\r\n tooltipClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n preventClip: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n};\r\n\r\n/**\r\n * # Component\r\n */\r\nexport const YTooltip = defineComponent({\r\n name: NAME,\r\n props: {\r\n ...YTooltipPropOptions,\r\n ...pressYLayerProps({\r\n coordinateStrategy: 'levitation',\r\n openOnHover: true,\r\n align: 'center',\r\n offset: 8,\r\n }),\r\n transition: {\r\n ...polyTransitionPropOptions.transition,\r\n default: 'fade',\r\n },\r\n },\r\n emits: ['update:modelValue'],\r\n setup(props, { slots, emit, expose }) {\r\n const layer$ = ref<typeof YLayer>();\r\n const base$ = ref();\r\n const baseSlot = ref();\r\n const baseEl = ref<HTMLElement>();\r\n const contentEl = ref<HTMLElement>();\r\n\r\n const classes = computed(() => {\r\n const boundClasses = bindClasses(props.tooltipClasses);\r\n return {\r\n ...boundClasses,\r\n 'y-tooltip': true,\r\n };\r\n });\r\n\r\n const model = useModelDuplex(props);\r\n\r\n const active = computed({\r\n get: (): boolean => {\r\n return !!model.value;\r\n },\r\n set: (v: boolean) => {\r\n if (!(v && props.disabled)) model.value = v;\r\n },\r\n });\r\n\r\n const hovered = computed(() => !!layer$.value?.hovered);\r\n\r\n const baseFromSlotEl = computed(() => {\r\n return baseSlot.value?.[0]?.el;\r\n });\r\n\r\n watchEffect(() => {\r\n if (!base$.value) {\r\n if (baseFromSlotEl.value?.nodeType !== 3) {\r\n baseEl.value = baseFromSlotEl.value;\r\n }\r\n return;\r\n }\r\n const base = base$.value;\r\n baseEl.value = base$.value?.$el ? base$.value?.$el : base;\r\n });\r\n\r\n watch(active, (neo) => {\r\n if (neo) {\r\n nextTick(() => {\r\n const $content = layer$.value?.content$;\r\n contentEl.value = $content;\r\n });\r\n }\r\n });\r\n\r\n const { startOpenDelay, startCloseDelay } = useDelay(\r\n props,\r\n (changeActive) => {\r\n if (!changeActive && props.openOnHover && !hovered.value) {\r\n active.value = false;\r\n } else if (changeActive) {\r\n active.value = true;\r\n }\r\n },\r\n );\r\n\r\n function onMouseenter(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n startOpenDelay();\r\n }\r\n }\r\n\r\n function onMouseleave(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n startCloseDelay();\r\n }\r\n }\r\n\r\n watch(hovered, (value) => {\r\n if (!value) {\r\n startCloseDelay();\r\n }\r\n });\r\n\r\n function bindHover(el: HTMLElement) {\r\n el.addEventListener('mouseenter', onMouseenter);\r\n el.addEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n function unbindHover(el: HTMLElement) {\r\n el.removeEventListener('mouseenter', onMouseenter);\r\n el.removeEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n watch(\r\n () => layer$.value?.baseEl,\r\n (neo, old) => {\r\n if (neo) {\r\n bindHover(neo);\r\n } else if (old) {\r\n unbindHover(old);\r\n }\r\n },\r\n );\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <YLayer\r\n ref={layer$}\r\n {...omit(chooseProps(props, YLayer.props), ['scrim'])}\r\n classes={classes.value}\r\n scrim={false}\r\n transition={props.transition}\r\n v-model={active.value}\r\n >\r\n {{\r\n default: (...args: any) => {\r\n return (\r\n <>\r\n <YPlate></YPlate>\r\n <div class=\"y-tooltip__content\">\r\n {slots.default?.(...args) ?? ''}\r\n </div>\r\n </>\r\n );\r\n },\r\n base: (...args: any[]) => slots.base?.(...args),\r\n }}\r\n </YLayer>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n base$,\r\n el$: layer$,\r\n baseEl,\r\n baseSlot,\r\n active,\r\n };\r\n },\r\n});\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTooltip.mjs","names":["computed","defineComponent","nextTick","ref","watch","watchEffect","useModelDuplex","useRender","polyTransitionPropOptions","omit","bindClasses","chooseProps","YLayer","pressYLayerProps","useDelay","YPlate","NAME","YTooltipPropOptions","tooltipClasses","type","Array","String","Object","preventClip","Boolean","default","YTooltip","name","props","coordinateStrategy","openOnHover","align","offset","transition","emits","setup","_ref","slots","emit","expose","layer$","base$","baseSlot","baseEl","contentEl","classes","boundClasses","model","active","get","value","set","v","disabled","hovered","baseFromSlotEl","el","nodeType","base","$el","neo","$content","content$","startOpenDelay","startCloseDelay","changeActive","onMouseenter","e","onMouseleave","bindHover","addEventListener","unbindHover","removeEventListener","old","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","length","args","_key","_len2","_key2","el$"],"sources":["../../../src/components/tooltip/YTooltip.tsx"],"sourcesContent":["import type { PropType } from 'vue';\r\nimport {\r\n computed,\r\n defineComponent,\r\n nextTick,\r\n ref,\r\n watch,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { useModelDuplex } from '../../composables/communication';\r\nimport { useRender } from '../../composables/component';\r\nimport { polyTransitionPropOptions } from '../../composables/transition';\r\nimport { omit } from '../../util';\r\nimport { bindClasses, chooseProps } from '../../util/vue-component';\r\nimport { YLayer, pressYLayerProps } from '../layer';\r\nimport { useDelay } from '../layer/active-delay';\r\nimport { YPlate } from '../plate';\r\n\r\nimport './YTooltip.scss';\r\n\r\nconst NAME = 'YTooltip';\r\n\r\nconst YTooltipPropOptions = {\r\n tooltipClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n preventClip: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n};\r\n\r\n/**\r\n * # Component\r\n */\r\nexport const YTooltip = defineComponent({\r\n name: NAME,\r\n props: {\r\n ...YTooltipPropOptions,\r\n ...pressYLayerProps({\r\n coordinateStrategy: 'levitation',\r\n openOnHover: true,\r\n align: 'center',\r\n offset: 8,\r\n }),\r\n transition: {\r\n ...polyTransitionPropOptions.transition,\r\n default: 'fade',\r\n },\r\n },\r\n emits: ['update:modelValue'],\r\n setup(props, { slots, emit, expose }) {\r\n const layer$ = ref<typeof YLayer>();\r\n const base$ = ref();\r\n const baseSlot = ref();\r\n const baseEl = ref<HTMLElement>();\r\n const contentEl = ref<HTMLElement>();\r\n\r\n const classes = computed(() => {\r\n const boundClasses = bindClasses(props.tooltipClasses);\r\n return {\r\n ...boundClasses,\r\n 'y-tooltip': true,\r\n };\r\n });\r\n\r\n const model = useModelDuplex(props);\r\n\r\n const active = computed({\r\n get: (): boolean => {\r\n return !!model.value;\r\n },\r\n set: (v: boolean) => {\r\n if (!(v && props.disabled)) model.value = v;\r\n },\r\n });\r\n\r\n const hovered = computed(() => !!layer$.value?.hovered);\r\n\r\n const baseFromSlotEl = computed(() => {\r\n return baseSlot.value?.[0]?.el;\r\n });\r\n\r\n watchEffect(() => {\r\n if (!base$.value) {\r\n if (baseFromSlotEl.value?.nodeType !== 3) {\r\n baseEl.value = baseFromSlotEl.value;\r\n }\r\n return;\r\n }\r\n const base = base$.value;\r\n baseEl.value = base$.value?.$el ? base$.value?.$el : base;\r\n });\r\n\r\n watch(active, (neo) => {\r\n if (neo) {\r\n nextTick(() => {\r\n const $content = layer$.value?.content$;\r\n contentEl.value = $content;\r\n });\r\n }\r\n });\r\n\r\n const { startOpenDelay, startCloseDelay } = useDelay(\r\n props,\r\n (changeActive) => {\r\n if (!changeActive && props.openOnHover && !hovered.value) {\r\n active.value = false;\r\n } else if (changeActive) {\r\n active.value = true;\r\n }\r\n },\r\n );\r\n\r\n function onMouseenter(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n startOpenDelay();\r\n }\r\n }\r\n\r\n function onMouseleave(e: MouseEvent) {\r\n if (props.openOnHover) {\r\n startCloseDelay();\r\n }\r\n }\r\n\r\n watch(hovered, (value) => {\r\n if (!value) {\r\n startCloseDelay();\r\n }\r\n });\r\n\r\n function bindHover(el: HTMLElement) {\r\n el.addEventListener('mouseenter', onMouseenter);\r\n el.addEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n function unbindHover(el: HTMLElement) {\r\n el.removeEventListener('mouseenter', onMouseenter);\r\n el.removeEventListener('mouseleave', onMouseleave);\r\n }\r\n\r\n watch(\r\n () => layer$.value?.baseEl,\r\n (neo, old) => {\r\n if (neo) {\r\n bindHover(neo);\r\n } else if (old) {\r\n unbindHover(old);\r\n }\r\n },\r\n );\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <YLayer\r\n ref={layer$}\r\n {...omit(chooseProps(props, YLayer.props), ['scrim'])}\r\n classes={classes.value}\r\n scrim={false}\r\n transition={props.transition}\r\n v-model={active.value}\r\n >\r\n {{\r\n default: (...args: any) => {\r\n return (\r\n <>\r\n <YPlate></YPlate>\r\n <div class=\"y-tooltip__content\">\r\n {slots.default?.(...args) ?? ''}\r\n </div>\r\n </>\r\n );\r\n },\r\n base: (...args: any[]) => slots.base?.(...args),\r\n }}\r\n </YLayer>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n base$,\r\n el$: layer$,\r\n baseEl,\r\n baseSlot,\r\n active,\r\n };\r\n },\r\n});\r\n\r\nexport type YTooltip = InstanceType<typeof YTooltip>;\r\n"],"mappings":"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"}
@@ -187,6 +187,7 @@ export const YTreeView = defineComponent({
187
187
  if (to) {
188
188
  activeSet.value.add(key);
189
189
  node.active = true;
190
+ issueVnodeState(key);
190
191
  } else {
191
192
  if (props.requiredActive && activeSet.value.size === 1 && key === inactiveKey) {
192
193
  issueVnodeState(key);
@@ -275,6 +276,7 @@ export const YTreeView = defineComponent({
275
276
 
276
277
  // init
277
278
  const oldSelected = [...selectedSet.value];
279
+ const oldActive = [...activeSet.value];
278
280
  selectedSet.value.clear();
279
281
  expandedSet.value.clear();
280
282
  activeSet.value.clear();
@@ -282,6 +284,9 @@ export const YTreeView = defineComponent({
282
284
  if (!deepEqual(oldSelected, [...selectedSet.value])) {
283
285
  emitSelected();
284
286
  }
287
+ if (!deepEqual(oldActive, [...activeSet.value])) {
288
+ emitActive();
289
+ }
285
290
  }, {
286
291
  deep: true
287
292
  });
@@ -345,7 +350,7 @@ export const YTreeView = defineComponent({
345
350
  };
346
351
  });
347
352
  onMounted(() => {
348
- if (props.defaultExpand !== undefined) {
353
+ if (props.defaultExpand != null && props.defaultExpand !== false) {
349
354
  expandedCache.value = [...expand(props.defaultExpand)];
350
355
  } else {
351
356
  expanded.value.forEach(v => updateExpanded(getNodeKey(v), true));