yuyeon 0.0.47-rc.1 → 0.0.47-rc.4
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.
- package/dist/yuyeon.js +308 -294
- package/dist/yuyeon.umd.cjs +5 -5
- package/lib/components/pagination/YPagination.mjs +13 -1
- package/lib/components/pagination/YPagination.mjs.map +1 -1
- package/lib/components/table/YDataTableBody.mjs +11 -6
- package/lib/components/table/YDataTableBody.mjs.map +1 -1
- package/lib/components/table/types/common.mjs +2 -0
- package/lib/components/table/types/common.mjs.map +1 -0
- package/lib/components/table/types/header.mjs +2 -0
- package/lib/components/table/types/header.mjs.map +1 -0
- package/lib/components/table/types/index.mjs.map +1 -1
- package/lib/components/table/types/item.mjs +2 -0
- package/lib/components/table/types/item.mjs.map +1 -0
- package/lib/components/table/types/row.mjs +2 -0
- package/lib/components/table/types/row.mjs.map +1 -0
- package/package.json +1 -1
- package/types/components/pagination/YPagination.d.ts +7 -0
- package/types/components/table/YDataTable.d.ts +7 -0
- package/types/components/table/YDataTableBody.d.ts +8 -1
- package/types/components/table/YDataTableServer.d.ts +7 -0
- package/types/components/table/composibles/header.d.ts +2 -2
- package/types/components/table/types/common.d.ts +1 -0
- package/types/components/table/types/header.d.ts +22 -0
- package/types/components/table/types/index.d.ts +6 -42
- package/types/components/table/types/item.d.ts +20 -0
- package/types/components/table/types/row.d.ts +3 -0
|
@@ -26,6 +26,7 @@ export const pressYPaginationProps = propsFactory({
|
|
|
26
26
|
validator: val => val % 1 === 0
|
|
27
27
|
},
|
|
28
28
|
totalVisible: [Number, String],
|
|
29
|
+
maxVisible: [Number, String],
|
|
29
30
|
showEndButton: Boolean,
|
|
30
31
|
gap: {
|
|
31
32
|
type: [String, Number],
|
|
@@ -84,10 +85,21 @@ export const YPagination = defineComponent({
|
|
|
84
85
|
const gap = +(props.gap ?? 4);
|
|
85
86
|
const fixedWidth = (itemWidth + gap) * fixedCount - gap;
|
|
86
87
|
const count = Math.max(0, Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)));
|
|
88
|
+
const maxVisible = Number(props.maxVisible);
|
|
89
|
+
if (!isNaN(maxVisible)) {
|
|
90
|
+
return Math.min(maxVisible, count);
|
|
91
|
+
}
|
|
87
92
|
return count;
|
|
88
93
|
}
|
|
89
94
|
const totalVisible = computed(() => {
|
|
90
|
-
|
|
95
|
+
const maxVisible = Number(props.maxVisible);
|
|
96
|
+
if (props.totalVisible) {
|
|
97
|
+
const total = parseInt(props.totalVisible, 10);
|
|
98
|
+
if (!isNaN(maxVisible)) {
|
|
99
|
+
return Math.min(total, maxVisible);
|
|
100
|
+
}
|
|
101
|
+
return total;
|
|
102
|
+
} else if (itemCount.value >= 0) return itemCount.value;
|
|
91
103
|
return calcItemCount(innerWidth, 58);
|
|
92
104
|
});
|
|
93
105
|
const controls = computed(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YPagination.mjs","names":["computed","defineComponent","shallowRef","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","toStyleSizeValue","propsFactory","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","showEndButton","gap","color","activeColor","buttonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","min","last","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles","_createVNode"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { useRefs } from '../../composables/ref';\nimport { useResizeObserver } from '../../composables/resize-observer';\nimport { getRangeArr } from '../../util/common';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n return count;\n }\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible as string, 10);\n else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap = undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <div\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n role={'navigation'}\n style={styles.value}\n ref={resizeObservedRef}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </div>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"YPagination.mjs","names":["computed","defineComponent","shallowRef","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","toStyleSizeValue","propsFactory","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","maxVisible","showEndButton","gap","color","activeColor","buttonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles","_createVNode"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n ComponentPublicInstance,\n PropType,\n computed,\n defineComponent,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '../../composables/communication';\nimport { useRender } from '../../composables/component';\nimport { useRefs } from '../../composables/ref';\nimport { useResizeObserver } from '../../composables/resize-observer';\nimport { getRangeArr } from '../../util/common';\nimport { toStyleSizeValue } from '../../util/ui';\nimport { propsFactory } from '../../util/vue-component';\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n maxVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!isNaN(maxVisible)) {\n return Math.min(total, maxVisible)\n }\n return total;\n }\n else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap = undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <div\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n role={'navigation'}\n style={styles.value}\n ref={resizeObservedRef}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </div>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from "vue";
|
|
2
|
-
import { defineComponent } from 'vue';
|
|
2
|
+
import { defineComponent, mergeProps } from 'vue';
|
|
3
3
|
import { useRender } from "../../composables/component.mjs";
|
|
4
4
|
import { propsFactory } from "../../util/vue-component.mjs";
|
|
5
5
|
import { YDataTableRow } from "./YDataTableRow.mjs";
|
|
@@ -17,6 +17,7 @@ export const pressYDataTableBodyProps = propsFactory({
|
|
|
17
17
|
type: String,
|
|
18
18
|
default: ''
|
|
19
19
|
},
|
|
20
|
+
rowProps: [Function, Object],
|
|
20
21
|
rowHeight: Number,
|
|
21
22
|
'onClick:row': Function,
|
|
22
23
|
'onDblclick:row': Function,
|
|
@@ -57,14 +58,15 @@ export const YDataTableBody = defineComponent({
|
|
|
57
58
|
return _createVNode(_Fragment, null, [slots.body ? slots.body?.(props) : props.items.map((item, index) => {
|
|
58
59
|
const stateProps = {
|
|
59
60
|
index,
|
|
60
|
-
item,
|
|
61
|
+
item: item.raw,
|
|
62
|
+
internalItem: item,
|
|
61
63
|
columns: columns.value,
|
|
62
64
|
isSelected,
|
|
63
65
|
toggleSelect
|
|
64
66
|
};
|
|
65
67
|
const slotProps = {
|
|
66
68
|
...stateProps,
|
|
67
|
-
props: {
|
|
69
|
+
props: mergeProps({
|
|
68
70
|
key: `item__${item.value}`,
|
|
69
71
|
onClick: props['onClick:row'] ? event => {
|
|
70
72
|
props['onClick:row']?.(event, {
|
|
@@ -81,9 +83,12 @@ export const YDataTableBody = defineComponent({
|
|
|
81
83
|
...stateProps
|
|
82
84
|
});
|
|
83
85
|
} : undefined,
|
|
84
|
-
index
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
index
|
|
87
|
+
}, typeof props.rowProps === 'function' ? props.rowProps({
|
|
88
|
+
item: stateProps.item,
|
|
89
|
+
index: stateProps.index,
|
|
90
|
+
internalItem: stateProps.internalItem
|
|
91
|
+
}) : props.rowProps)
|
|
87
92
|
};
|
|
88
93
|
return _createVNode(_Fragment, null, [slots.item ? slots.item(slotProps) : _createVNode(YDataTableRow, slotProps.props, slots)]);
|
|
89
94
|
})]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDataTableBody.mjs","names":["defineComponent","useRender","propsFactory","YDataTableRow","useHeader","useSelection","pressYDataTableBodyProps","items","type","Array","default","loading","Boolean","String","loadingText","hideNoData","noDataText","
|
|
1
|
+
{"version":3,"file":"YDataTableBody.mjs","names":["defineComponent","mergeProps","useRender","propsFactory","YDataTableRow","useHeader","useSelection","pressYDataTableBodyProps","items","type","Array","default","loading","Boolean","String","loadingText","hideNoData","noDataText","rowProps","Function","Object","rowHeight","Number","YDataTableBody","name","props","emits","setup","_ref","slots","emit","columns","isSelected","toggleSelect","_createVNode","value","length","_Fragment","body","map","item","index","stateProps","raw","internalItem","slotProps","key","onClick","event","undefined","onDblclick","onContextmenu"],"sources":["../../../src/components/table/YDataTableBody.tsx"],"sourcesContent":["import { PropType, defineComponent, mergeProps } from 'vue';\n\nimport { useRender } from '../../composables/component';\nimport { propsFactory } from '../../util/vue-component';\nimport { YDataTableRow } from './YDataTableRow';\nimport { useHeader } from './composibles/header';\nimport { useSelection } from './composibles/selection';\nimport { DataTableItem, RowProps } from './types';\n\nexport const pressYDataTableBodyProps = propsFactory(\n {\n items: {\n type: Array as PropType<readonly DataTableItem[]>,\n default: () => [],\n },\n loading: [Boolean, String],\n loadingText: String,\n hideNoData: Boolean,\n noDataText: {\n type: String,\n default: '',\n },\n rowProps: [Function, Object] as PropType<RowProps<any>>,\n rowHeight: Number,\n 'onClick:row': Function as PropType<(e: Event, value: any) => void>,\n 'onDblclick:row': Function as PropType<(e: Event, value: any) => void>,\n 'onContextmenu:row': Function as PropType<(e: Event, value: any) => void>,\n },\n 'YDataTableBody',\n);\n\nexport const YDataTableBody = defineComponent({\n name: 'YDataTableBody',\n props: {\n ...pressYDataTableBodyProps(),\n },\n emits: ['click:row'],\n setup(props, { slots, emit }) {\n const { columns } = useHeader();\n const { isSelected, toggleSelect } = useSelection();\n\n useRender(() => {\n if (props.loading) {\n return (\n <tr>\n <td colspan={columns.value.length} class={'y-data-table__loading'}>\n {slots.loading ? slots.loading() : <div>{props.loadingText}</div>}\n </td>\n </tr>\n );\n }\n if (!props.loading && props.items.length < 1 && !props.hideNoData) {\n return (\n <tr key=\"no-data\">\n <td colspan={columns.value.length}>\n {slots['no-data']?.() ?? props.noDataText}\n </td>\n </tr>\n );\n }\n return (\n <>\n {slots.body\n ? slots.body?.(props)\n : props.items.map((item, index) => {\n const stateProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n };\n const slotProps = {\n ...stateProps,\n props: mergeProps(\n {\n key: `item__${item.value}`,\n onClick: props['onClick:row']\n ? (event: Event) => {\n props['onClick:row']?.(event, { ...stateProps });\n }\n : undefined,\n onDblclick: props['onDblclick:row']\n ? (event: Event) => {\n props['onDblclick:row']?.(event, { ...stateProps });\n }\n : undefined,\n onContextmenu: props['onContextmenu:row']\n ? (event: Event) => {\n props['onContextmenu:row']?.(event, {\n ...stateProps,\n });\n }\n : undefined,\n index,\n },\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: stateProps.item,\n index: stateProps.index,\n internalItem: stateProps.internalItem,\n })\n : props.rowProps,\n ),\n };\n\n return (\n <>\n {slots.item ? (\n slots.item(slotProps)\n ) : (\n <YDataTableRow\n v-slots={slots}\n {...slotProps.props}\n ></YDataTableRow>\n )}\n </>\n );\n })}\n </>\n );\n });\n\n // end\n return {};\n },\n});\n\nexport type YDataTableBody = InstanceType<typeof YDataTableBody>;\n"],"mappings":";AAAA,SAAmBA,eAAe,EAAEC,UAAU,QAAQ,KAAK;AAAC,SAEnDC,SAAS;AAAA,SACTC,YAAY;AAAA,SACZC,aAAa;AAAA,SACbC,SAAS;AAAA,SACTC,YAAY;AAGrB,OAAO,MAAMC,wBAAwB,GAAGJ,YAAY,CAClD;EACEK,KAAK,EAAE;IACLC,IAAI,EAAEC,KAA2C;IACjDC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM,CAAC;EAC1BC,WAAW,EAAED,MAAM;EACnBE,UAAU,EAAEH,OAAO;EACnBI,UAAU,EAAE;IACVR,IAAI,EAAEK,MAAM;IACZH,OAAO,EAAE;EACX,CAAC;EACDO,QAAQ,EAAE,CAACC,QAAQ,EAAEC,MAAM,CAA4B;EACvDC,SAAS,EAAEC,MAAM;EACjB,aAAa,EAAEH,QAAoD;EACnE,gBAAgB,EAAEA,QAAoD;EACtE,mBAAmB,EAAEA;AACvB,CAAC,EACD,gBACF,CAAC;AAED,OAAO,MAAMI,cAAc,GAAGvB,eAAe,CAAC;EAC5CwB,IAAI,EAAE,gBAAgB;EACtBC,KAAK,EAAE;IACL,GAAGlB,wBAAwB,CAAC;EAC9B,CAAC;EACDmB,KAAK,EAAE,CAAC,WAAW,CAAC;EACpBC,KAAKA,CAACF,KAAK,EAAAG,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC1B,MAAM;MAAEG;IAAQ,CAAC,GAAG1B,SAAS,CAAC,CAAC;IAC/B,MAAM;MAAE2B,UAAU;MAAEC;IAAa,CAAC,GAAG3B,YAAY,CAAC,CAAC;IAEnDJ,SAAS,CAAC,MAAM;MACd,IAAIuB,KAAK,CAACb,OAAO,EAAE;QACjB,OAAAsB,YAAA,cAAAA,YAAA;UAAA,WAEiBH,OAAO,CAACI,KAAK,CAACC,MAAM;UAAA,SAAS;QAAuB,IAC9DP,KAAK,CAACjB,OAAO,GAAGiB,KAAK,CAACjB,OAAO,CAAC,CAAC,GAAAsB,YAAA,eAAST,KAAK,CAACV,WAAW,EAAO;MAIzE;MACA,IAAI,CAACU,KAAK,CAACb,OAAO,IAAIa,KAAK,CAACjB,KAAK,CAAC4B,MAAM,GAAG,CAAC,IAAI,CAACX,KAAK,CAACT,UAAU,EAAE;QACjE,OAAAkB,YAAA;UAAA,OACU;QAAS,IAAAA,YAAA;UAAA,WACFH,OAAO,CAACI,KAAK,CAACC;QAAM,IAC9BP,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAIJ,KAAK,CAACR,UAAU;MAIjD;MACA,OAAAiB,YAAA,CAAAG,SAAA,SAEKR,KAAK,CAACS,IAAI,GACPT,KAAK,CAACS,IAAI,GAAGb,KAAK,CAAC,GACnBA,KAAK,CAACjB,KAAK,CAAC+B,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QAC/B,MAAMC,UAAU,GAAG;UACjBD,KAAK;UACLD,IAAI,EAAEA,IAAI,CAACG,GAAG;UACdC,YAAY,EAAEJ,IAAI;UAClBT,OAAO,EAAEA,OAAO,CAACI,KAAK;UACtBH,UAAU;UACVC;QACF,CAAC;QACD,MAAMY,SAAS,GAAG;UAChB,GAAGH,UAAU;UACbjB,KAAK,EAAExB,UAAU,CACf;YACE6C,GAAG,EAAG,SAAQN,IAAI,CAACL,KAAM,EAAC;YAC1BY,OAAO,EAAEtB,KAAK,CAAC,aAAa,CAAC,GACxBuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,aAAa,CAAC,GAAGuB,KAAK,EAAE;gBAAE,GAAGN;cAAW,CAAC,CAAC;YAClD,CAAC,GACDO,SAAS;YACbC,UAAU,EAAEzB,KAAK,CAAC,gBAAgB,CAAC,GAC9BuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,gBAAgB,CAAC,GAAGuB,KAAK,EAAE;gBAAE,GAAGN;cAAW,CAAC,CAAC;YACrD,CAAC,GACDO,SAAS;YACbE,aAAa,EAAE1B,KAAK,CAAC,mBAAmB,CAAC,GACpCuB,KAAY,IAAK;cAChBvB,KAAK,CAAC,mBAAmB,CAAC,GAAGuB,KAAK,EAAE;gBAClC,GAAGN;cACL,CAAC,CAAC;YACJ,CAAC,GACDO,SAAS;YACbR;UACF,CAAC,EACD,OAAOhB,KAAK,CAACP,QAAQ,KAAK,UAAU,GAChCO,KAAK,CAACP,QAAQ,CAAC;YACbsB,IAAI,EAAEE,UAAU,CAACF,IAAI;YACrBC,KAAK,EAAEC,UAAU,CAACD,KAAK;YACvBG,YAAY,EAAEF,UAAU,CAACE;UAC3B,CAAC,CAAC,GACFnB,KAAK,CAACP,QACZ;QACF,CAAC;QAED,OAAAgB,YAAA,CAAAG,SAAA,SAEKR,KAAK,CAACW,IAAI,GACTX,KAAK,CAACW,IAAI,CAACK,SAAS,CAAC,GAAAX,YAAA,CAAA9B,aAAA,EAIfyC,SAAS,CAACpB,KAAK,EADVI,KAAK,CAGjB;MAGP,CAAC,CAAC;IAGZ,CAAC,CAAC;;IAEF;IACA,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.mjs","names":[],"sources":["../../../../src/components/table/types/common.ts"],"sourcesContent":["export type DataTableCompareFn<T = any> = (a: T, b: T) => number;\r\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.mjs","names":[],"sources":["../../../../src/components/table/types/header.ts"],"sourcesContent":["import { DataTableCompareFn } from './common';\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"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/table/types/index.ts"],"sourcesContent":["import { ComputedRef, Ref, UnwrapRef } from 'vue';\
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/table/types/index.ts"],"sourcesContent":["import { ComputedRef, Ref, UnwrapRef } from 'vue';\n\nimport { SelectableItem } from '../composibles/selection';\nimport type { DataTableCompareFn } from './common';\nimport type { DataTableHeader, InternalDataTableHeader } from './header';\nimport type { DataTableItem, ItemKeySlot } from './item';\nimport type { RowProps, CellProps } from './row';\n\nexport type {\n ItemKeySlot,\n RowProps,\n CellProps,\n DataTableHeader,\n InternalDataTableHeader,\n DataTableItem,\n DataTableCompareFn,\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"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.mjs","names":[],"sources":["../../../../src/components/table/types/item.ts"],"sourcesContent":["import { SelectableItem, provideSelection } from '../composibles/selection';\nimport { InternalDataTableHeader } from './header';\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 interface DataTableItem<T = any> extends SelectableItem {\n index: number;\n columns: Record<string, any>;\n raw: T;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row.mjs","names":[],"sources":["../../../../src/components/table/types/row.ts"],"sourcesContent":["import { ItemKeySlot } from './item';\r\n\r\nexport type RowProps<T> =\r\n| Record<string, any>\r\n| ((data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem'>) => Record<string, any>)\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":""}
|
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@ export declare const pressYPaginationProps: <Defaults extends {
|
|
|
5
5
|
disabled?: unknown;
|
|
6
6
|
length?: unknown;
|
|
7
7
|
totalVisible?: unknown;
|
|
8
|
+
maxVisible?: unknown;
|
|
8
9
|
showEndButton?: unknown;
|
|
9
10
|
gap?: unknown;
|
|
10
11
|
color?: unknown;
|
|
@@ -52,6 +53,10 @@ export declare const pressYPaginationProps: <Defaults extends {
|
|
|
52
53
|
type: PropType<unknown extends Defaults["totalVisible"] ? string | number : NonNullable<string | number> | Defaults["totalVisible"]>;
|
|
53
54
|
default: unknown extends Defaults["totalVisible"] ? string | number : NonNullable<string | number> | Defaults["totalVisible"];
|
|
54
55
|
};
|
|
56
|
+
maxVisible: unknown extends Defaults["maxVisible"] ? (StringConstructor | NumberConstructor)[] : {
|
|
57
|
+
type: PropType<unknown extends Defaults["maxVisible"] ? string | number : NonNullable<string | number> | Defaults["maxVisible"]>;
|
|
58
|
+
default: unknown extends Defaults["maxVisible"] ? string | number : NonNullable<string | number> | Defaults["maxVisible"];
|
|
59
|
+
};
|
|
55
60
|
showEndButton: unknown extends Defaults["showEndButton"] ? BooleanConstructor : {
|
|
56
61
|
type: PropType<unknown extends Defaults["showEndButton"] ? boolean : boolean | Defaults["showEndButton"]>;
|
|
57
62
|
default: unknown extends Defaults["showEndButton"] ? boolean : boolean | Defaults["showEndButton"];
|
|
@@ -105,6 +110,7 @@ export declare const YPagination: import("vue").DefineComponent<{
|
|
|
105
110
|
validator: (val: number) => boolean;
|
|
106
111
|
};
|
|
107
112
|
totalVisible: (StringConstructor | NumberConstructor)[];
|
|
113
|
+
maxVisible: (StringConstructor | NumberConstructor)[];
|
|
108
114
|
showEndButton: BooleanConstructor;
|
|
109
115
|
gap: {
|
|
110
116
|
type: (StringConstructor | NumberConstructor)[];
|
|
@@ -142,6 +148,7 @@ export declare const YPagination: import("vue").DefineComponent<{
|
|
|
142
148
|
validator: (val: number) => boolean;
|
|
143
149
|
};
|
|
144
150
|
totalVisible: (StringConstructor | NumberConstructor)[];
|
|
151
|
+
maxVisible: (StringConstructor | NumberConstructor)[];
|
|
145
152
|
showEndButton: BooleanConstructor;
|
|
146
153
|
gap: {
|
|
147
154
|
type: (StringConstructor | NumberConstructor)[];
|
|
@@ -24,6 +24,7 @@ export declare const pressDataTableProps: <Defaults extends {
|
|
|
24
24
|
loadingText?: unknown;
|
|
25
25
|
hideNoData?: unknown;
|
|
26
26
|
noDataText?: unknown;
|
|
27
|
+
rowProps?: unknown;
|
|
27
28
|
rowHeight?: unknown;
|
|
28
29
|
'onClick:row'?: unknown;
|
|
29
30
|
'onDblclick:row'?: unknown;
|
|
@@ -203,6 +204,10 @@ export declare const pressDataTableProps: <Defaults extends {
|
|
|
203
204
|
type: PropType<unknown extends Defaults["noDataText"] ? string : string | Defaults["noDataText"]>;
|
|
204
205
|
default: unknown extends Defaults["noDataText"] ? string : string | Defaults["noDataText"];
|
|
205
206
|
};
|
|
207
|
+
rowProps: unknown extends Defaults["rowProps"] ? PropType<import("./types").RowProps<any>> : {
|
|
208
|
+
type: PropType<unknown extends Defaults["rowProps"] ? import("./types").RowProps<any> : Defaults["rowProps"] | NonNullable<import("./types").RowProps<any>>>;
|
|
209
|
+
default: unknown extends Defaults["rowProps"] ? import("./types").RowProps<any> : Defaults["rowProps"] | NonNullable<import("./types").RowProps<any>>;
|
|
210
|
+
};
|
|
206
211
|
rowHeight: unknown extends Defaults["rowHeight"] ? NumberConstructor : {
|
|
207
212
|
type: PropType<unknown extends Defaults["rowHeight"] ? number : number | Defaults["rowHeight"]>;
|
|
208
213
|
default: unknown extends Defaults["rowHeight"] ? number : number | Defaults["rowHeight"];
|
|
@@ -284,6 +289,7 @@ export declare const YDataTable: import("vue").DefineComponent<{
|
|
|
284
289
|
type: StringConstructor;
|
|
285
290
|
default: string;
|
|
286
291
|
};
|
|
292
|
+
rowProps: PropType<import("./types").RowProps<any>>;
|
|
287
293
|
rowHeight: NumberConstructor;
|
|
288
294
|
'onClick:row': PropType<(e: Event, value: any) => void>;
|
|
289
295
|
'onDblclick:row': PropType<(e: Event, value: any) => void>;
|
|
@@ -371,6 +377,7 @@ export declare const YDataTable: import("vue").DefineComponent<{
|
|
|
371
377
|
type: StringConstructor;
|
|
372
378
|
default: string;
|
|
373
379
|
};
|
|
380
|
+
rowProps: PropType<import("./types").RowProps<any>>;
|
|
374
381
|
rowHeight: NumberConstructor;
|
|
375
382
|
'onClick:row': PropType<(e: Event, value: any) => void>;
|
|
376
383
|
'onDblclick:row': PropType<(e: Event, value: any) => void>;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { PropType } from 'vue';
|
|
2
|
-
import { DataTableItem } from './types';
|
|
2
|
+
import { DataTableItem, RowProps } from './types';
|
|
3
3
|
export declare const pressYDataTableBodyProps: <Defaults extends {
|
|
4
4
|
items?: unknown;
|
|
5
5
|
loading?: unknown;
|
|
6
6
|
loadingText?: unknown;
|
|
7
7
|
hideNoData?: unknown;
|
|
8
8
|
noDataText?: unknown;
|
|
9
|
+
rowProps?: unknown;
|
|
9
10
|
rowHeight?: unknown;
|
|
10
11
|
'onClick:row'?: unknown;
|
|
11
12
|
'onDblclick:row'?: unknown;
|
|
@@ -43,6 +44,10 @@ export declare const pressYDataTableBodyProps: <Defaults extends {
|
|
|
43
44
|
type: PropType<unknown extends Defaults["noDataText"] ? string : string | Defaults["noDataText"]>;
|
|
44
45
|
default: unknown extends Defaults["noDataText"] ? string : string | Defaults["noDataText"];
|
|
45
46
|
};
|
|
47
|
+
rowProps: unknown extends Defaults["rowProps"] ? PropType<RowProps<any>> : {
|
|
48
|
+
type: PropType<unknown extends Defaults["rowProps"] ? RowProps<any> : NonNullable<RowProps<any>> | Defaults["rowProps"]>;
|
|
49
|
+
default: unknown extends Defaults["rowProps"] ? RowProps<any> : NonNullable<RowProps<any>> | Defaults["rowProps"];
|
|
50
|
+
};
|
|
46
51
|
rowHeight: unknown extends Defaults["rowHeight"] ? NumberConstructor : {
|
|
47
52
|
type: PropType<unknown extends Defaults["rowHeight"] ? number : number | Defaults["rowHeight"]>;
|
|
48
53
|
default: unknown extends Defaults["rowHeight"] ? number : number | Defaults["rowHeight"];
|
|
@@ -72,6 +77,7 @@ export declare const YDataTableBody: import("vue").DefineComponent<{
|
|
|
72
77
|
type: StringConstructor;
|
|
73
78
|
default: string;
|
|
74
79
|
};
|
|
80
|
+
rowProps: PropType<RowProps<any>>;
|
|
75
81
|
rowHeight: NumberConstructor;
|
|
76
82
|
'onClick:row': PropType<(e: Event, value: any) => void>;
|
|
77
83
|
'onDblclick:row': PropType<(e: Event, value: any) => void>;
|
|
@@ -88,6 +94,7 @@ export declare const YDataTableBody: import("vue").DefineComponent<{
|
|
|
88
94
|
type: StringConstructor;
|
|
89
95
|
default: string;
|
|
90
96
|
};
|
|
97
|
+
rowProps: PropType<RowProps<any>>;
|
|
91
98
|
rowHeight: NumberConstructor;
|
|
92
99
|
'onClick:row': PropType<(e: Event, value: any) => void>;
|
|
93
100
|
'onDblclick:row': PropType<(e: Event, value: any) => void>;
|
|
@@ -24,6 +24,7 @@ export declare const pressDataTableServerProps: <Defaults extends {
|
|
|
24
24
|
loadingText?: unknown;
|
|
25
25
|
hideNoData?: unknown;
|
|
26
26
|
noDataText?: unknown;
|
|
27
|
+
rowProps?: unknown;
|
|
27
28
|
rowHeight?: unknown;
|
|
28
29
|
'onClick:row'?: unknown;
|
|
29
30
|
'onDblclick:row'?: unknown;
|
|
@@ -206,6 +207,10 @@ export declare const pressDataTableServerProps: <Defaults extends {
|
|
|
206
207
|
type: PropType<unknown extends Defaults["noDataText"] ? string : string | Defaults["noDataText"]>;
|
|
207
208
|
default: unknown extends Defaults["noDataText"] ? string : string | Defaults["noDataText"];
|
|
208
209
|
};
|
|
210
|
+
rowProps: unknown extends Defaults["rowProps"] ? PropType<import("./types").RowProps<any>> : {
|
|
211
|
+
type: PropType<unknown extends Defaults["rowProps"] ? import("./types").RowProps<any> : NonNullable<import("./types").RowProps<any>> | Defaults["rowProps"]>;
|
|
212
|
+
default: unknown extends Defaults["rowProps"] ? import("./types").RowProps<any> : NonNullable<import("./types").RowProps<any>> | Defaults["rowProps"];
|
|
213
|
+
};
|
|
209
214
|
rowHeight: unknown extends Defaults["rowHeight"] ? NumberConstructor : {
|
|
210
215
|
type: PropType<unknown extends Defaults["rowHeight"] ? number : number | Defaults["rowHeight"]>;
|
|
211
216
|
default: unknown extends Defaults["rowHeight"] ? number : number | Defaults["rowHeight"];
|
|
@@ -317,6 +322,7 @@ export declare const YDataTableServer: import("vue").DefineComponent<{
|
|
|
317
322
|
type: StringConstructor;
|
|
318
323
|
default: string;
|
|
319
324
|
};
|
|
325
|
+
rowProps: PropType<import("./types").RowProps<any>>;
|
|
320
326
|
rowHeight: NumberConstructor;
|
|
321
327
|
'onClick:row': PropType<(e: Event, value: any) => void>;
|
|
322
328
|
'onDblclick:row': PropType<(e: Event, value: any) => void>;
|
|
@@ -406,6 +412,7 @@ export declare const YDataTableServer: import("vue").DefineComponent<{
|
|
|
406
412
|
type: StringConstructor;
|
|
407
413
|
default: string;
|
|
408
414
|
};
|
|
415
|
+
rowProps: PropType<import("./types").RowProps<any>>;
|
|
409
416
|
rowHeight: NumberConstructor;
|
|
410
417
|
'onClick:row': PropType<(e: Event, value: any) => void>;
|
|
411
418
|
'onDblclick:row': PropType<(e: Event, value: any) => void>;
|
|
@@ -37,7 +37,7 @@ export declare function createHeader(props: HeaderProps, options?: {
|
|
|
37
37
|
minWidth?: string | undefined;
|
|
38
38
|
maxWidth?: string | undefined;
|
|
39
39
|
sortable: boolean;
|
|
40
|
-
sort?: import("../types").DataTableCompareFn
|
|
40
|
+
sort?: import("../types").DataTableCompareFn | undefined;
|
|
41
41
|
mustSort?: boolean | undefined;
|
|
42
42
|
fixedOffset?: number | undefined;
|
|
43
43
|
lastFixed?: boolean | undefined;
|
|
@@ -55,7 +55,7 @@ export declare function createHeader(props: HeaderProps, options?: {
|
|
|
55
55
|
minWidth?: string | undefined;
|
|
56
56
|
maxWidth?: string | undefined;
|
|
57
57
|
sortable: boolean;
|
|
58
|
-
sort?: import("../types").DataTableCompareFn
|
|
58
|
+
sort?: import("../types").DataTableCompareFn | undefined;
|
|
59
59
|
mustSort?: boolean | undefined;
|
|
60
60
|
fixedOffset?: number | undefined;
|
|
61
61
|
lastFixed?: boolean | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type DataTableCompareFn<T = any> = (a: T, b: T) => number;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DataTableCompareFn } from './common';
|
|
2
|
+
export type DataTableHeader = {
|
|
3
|
+
key: string;
|
|
4
|
+
text: string;
|
|
5
|
+
value?: any;
|
|
6
|
+
colspan?: number;
|
|
7
|
+
rowspan?: number;
|
|
8
|
+
fixed?: boolean;
|
|
9
|
+
classes?: string | string[];
|
|
10
|
+
align?: 'start' | 'end' | 'center';
|
|
11
|
+
width?: number | string;
|
|
12
|
+
minWidth?: string;
|
|
13
|
+
maxWidth?: string;
|
|
14
|
+
sortable?: boolean;
|
|
15
|
+
sort?: DataTableCompareFn;
|
|
16
|
+
mustSort?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export type InternalDataTableHeader = DataTableHeader & {
|
|
19
|
+
sortable: boolean;
|
|
20
|
+
fixedOffset?: number;
|
|
21
|
+
lastFixed?: boolean;
|
|
22
|
+
};
|
|
@@ -1,32 +1,10 @@
|
|
|
1
1
|
import { ComputedRef, Ref, UnwrapRef } from 'vue';
|
|
2
|
-
import { SelectableItem
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
colspan?: number;
|
|
9
|
-
rowspan?: number;
|
|
10
|
-
fixed?: boolean;
|
|
11
|
-
classes?: string | string[];
|
|
12
|
-
align?: 'start' | 'end' | 'center';
|
|
13
|
-
width?: number | string;
|
|
14
|
-
minWidth?: string;
|
|
15
|
-
maxWidth?: string;
|
|
16
|
-
sortable?: boolean;
|
|
17
|
-
sort?: DataTableCompareFn;
|
|
18
|
-
mustSort?: boolean;
|
|
19
|
-
};
|
|
20
|
-
export type InternalDataTableHeader = DataTableHeader & {
|
|
21
|
-
sortable: boolean;
|
|
22
|
-
fixedOffset?: number;
|
|
23
|
-
lastFixed?: boolean;
|
|
24
|
-
};
|
|
25
|
-
export interface DataTableItem<T = any> extends SelectableItem {
|
|
26
|
-
index: number;
|
|
27
|
-
columns: Record<string, any>;
|
|
28
|
-
raw: T;
|
|
29
|
-
}
|
|
2
|
+
import { SelectableItem } from '../composibles/selection';
|
|
3
|
+
import type { DataTableCompareFn } from './common';
|
|
4
|
+
import type { DataTableHeader, InternalDataTableHeader } from './header';
|
|
5
|
+
import type { DataTableItem, ItemKeySlot } from './item';
|
|
6
|
+
import type { RowProps, CellProps } from './row';
|
|
7
|
+
export type { ItemKeySlot, RowProps, CellProps, DataTableHeader, InternalDataTableHeader, DataTableItem, DataTableCompareFn, };
|
|
30
8
|
export type SortOption = {
|
|
31
9
|
key: string;
|
|
32
10
|
order?: boolean | 'asc' | 'desc';
|
|
@@ -76,17 +54,3 @@ export type YDataTableSlotProps = {
|
|
|
76
54
|
columns: InternalDataTableHeader[];
|
|
77
55
|
headers: InternalDataTableHeader[][];
|
|
78
56
|
};
|
|
79
|
-
type ItemSlotBase<T> = {
|
|
80
|
-
index: number;
|
|
81
|
-
item: T;
|
|
82
|
-
internalItem: DataTableItem<T>;
|
|
83
|
-
selected: boolean;
|
|
84
|
-
isSelected: ReturnType<typeof provideSelection>['isSelected'];
|
|
85
|
-
toggleSelect: ReturnType<typeof provideSelection>['toggleSelect'];
|
|
86
|
-
};
|
|
87
|
-
export type ItemKeySlot<T> = ItemSlotBase<T> & {
|
|
88
|
-
value: any;
|
|
89
|
-
column: InternalDataTableHeader;
|
|
90
|
-
};
|
|
91
|
-
export type CellProps<T = any> = Record<string, any> | ((data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem' | 'value' | 'column' | 'selected'>) => Record<string, any>);
|
|
92
|
-
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SelectableItem, provideSelection } from '../composibles/selection';
|
|
2
|
+
import { InternalDataTableHeader } from './header';
|
|
3
|
+
type ItemSlotBase<T> = {
|
|
4
|
+
index: number;
|
|
5
|
+
item: T;
|
|
6
|
+
internalItem: DataTableItem<T>;
|
|
7
|
+
selected: boolean;
|
|
8
|
+
isSelected: ReturnType<typeof provideSelection>['isSelected'];
|
|
9
|
+
toggleSelect: ReturnType<typeof provideSelection>['toggleSelect'];
|
|
10
|
+
};
|
|
11
|
+
export type ItemKeySlot<T> = ItemSlotBase<T> & {
|
|
12
|
+
value: any;
|
|
13
|
+
column: InternalDataTableHeader;
|
|
14
|
+
};
|
|
15
|
+
export interface DataTableItem<T = any> extends SelectableItem {
|
|
16
|
+
index: number;
|
|
17
|
+
columns: Record<string, any>;
|
|
18
|
+
raw: T;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ItemKeySlot } from './item';
|
|
2
|
+
export type RowProps<T> = Record<string, any> | ((data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem'>) => Record<string, any>);
|
|
3
|
+
export type CellProps<T = any> = Record<string, any> | ((data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem' | 'value' | 'column' | 'selected'>) => Record<string, any>);
|