yuyeon 0.3.4-rc.1 → 0.3.4-rc.3

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 (35) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +1293 -1281
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/components/draggable/YDraggable.js.map +1 -1
  5. package/lib/components/draggable/index.js +2 -0
  6. package/lib/components/draggable/index.js.map +1 -0
  7. package/lib/components/radio/YRadio.js +58 -0
  8. package/lib/components/radio/YRadio.js.map +1 -0
  9. package/lib/components/radio/YRadio.scss +38 -0
  10. package/lib/components/radio/YRadioIcon.js +33 -0
  11. package/lib/components/radio/YRadioIcon.js.map +1 -0
  12. package/lib/components/radio/YRadioIcon.scss +44 -0
  13. package/lib/components/radio/index.js +3 -0
  14. package/lib/components/radio/index.js.map +1 -0
  15. package/lib/components/table/YDataTable.js +7 -4
  16. package/lib/components/table/YDataTable.js.map +1 -1
  17. package/lib/components/table/YDataTableControl.js +8 -6
  18. package/lib/components/table/YDataTableControl.js.map +1 -1
  19. package/lib/components/table/YDataTableControl.scss +10 -0
  20. package/lib/components/table/YDataTableServer.js +8 -5
  21. package/lib/components/table/YDataTableServer.js.map +1 -1
  22. package/lib/components/text-highlighter/YTextHighlighter.js +2 -1
  23. package/lib/components/text-highlighter/YTextHighlighter.js.map +1 -1
  24. package/lib/util/string.js +3 -0
  25. package/lib/util/string.js.map +1 -1
  26. package/package.json +1 -1
  27. package/types/components/draggable/index.d.ts +1 -0
  28. package/types/components/radio/YRadio.d.ts +25 -0
  29. package/types/components/radio/YRadioIcon.d.ts +6 -0
  30. package/types/components/radio/index.d.ts +2 -0
  31. package/types/components/table/YDataTable.d.ts +3 -0
  32. package/types/components/table/YDataTableControl.d.ts +12 -0
  33. package/types/components/table/YDataTableServer.d.ts +20 -8
  34. package/types/shims.d.ts +2 -1
  35. package/types/util/string.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"YDraggable.js","names":["computed","defineComponent","h","ref","unref","useRender","getHtmlElement","YDraggable","name","props","as","Object","String","handle","disabled","Boolean","capture","exact","container","onDragStart","Function","emits","setup","_ref","slots","emit","targetRef","dragging","originPosition","position","targetEl","value","handleEl","el","hEl","querySelector","nodeType","containerEl","document","undefined","slotProps","start","e","console","log","target","containerRect","getBoundingClientRect","targetRect","pos","x","clientX","left","scrollLeft","y","clientY","top","scrollTop","move","end","default","window","config"],"sources":["../../../src/components/draggable/YDraggable.ts"],"sourcesContent":["import {\n MaybeRef,\n PropType,\n computed,\n defineComponent,\n h,\n ref,\n unref,\n} from 'vue';\n\nimport { useRender } from '@/composables/component';\nimport { getHtmlElement } from '@/util/index';\n\ntype Coord = { x: number; y: number };\n\nexport const YDraggable = defineComponent({\n name: 'YDraggable',\n props: {\n as: [Object, String] as PropType<object | string>,\n handle: [Object, String] as PropType<MaybeRef<HTMLElement | string>>,\n disabled: Boolean,\n capture: Boolean,\n exact: Boolean,\n container: [Object, String] as PropType<\n MaybeRef<HTMLElement | SVGElement | null> | string\n >,\n onDragStart: Function as PropType<\n (pos: Coord, e: PointerEvent) => boolean | undefined\n >,\n },\n emits: ['start'],\n setup(props, { slots, emit }) {\n const targetRef = ref();\n const dragging = ref(false);\n const originPosition = ref();\n const position = ref();\n\n const targetEl = computed(() => {\n return getHtmlElement(targetRef.value);\n });\n\n const handleEl = computed(() => {\n let el = targetEl.value;\n if (typeof props.handle === 'string') {\n const hEl = targetEl.value?.querySelector(props.handle);\n if (hEl?.nodeType === 1) el = hEl;\n }\n return el;\n });\n\n const containerEl = computed(() => {\n const container = unref(props.container);\n if (typeof container === 'string') {\n return document.querySelector(container);\n } else if (container) {\n return getHtmlElement(container);\n }\n return undefined;\n });\n\n const slotProps = computed(() => {\n return {\n handle: handleEl.value,\n };\n });\n\n const start = (e: PointerEvent) => {\n console.log('start', e);\n if (props.disabled) return;\n if (props.exact && e.target !== targetEl.value) return;\n\n const container = containerEl.value;\n const containerRect = container?.getBoundingClientRect?.();\n const targetRect = targetEl.value?.getBoundingClientRect();\n const pos = {\n x:\n e.clientX -\n (container\n ? targetRect.left - containerRect!.left + container.scrollLeft\n : targetRect.left),\n y:\n e.clientY -\n (container\n ? targetRect.top - containerRect!.top + container.scrollTop\n : targetRect.top),\n };\n if (props.onDragStart?.(pos, e) === false) return;\n originPosition.value = pos;\n };\n\n const move = (e: PointerEvent) => {\n console.log('move', e);\n };\n\n const end = (e: PointerEvent) => {\n console.log('end', e);\n };\n\n useRender(() => {\n if (slots.default) {\n return h(\n props.as || 'div',\n { ref: targetRef },\n slots.default(slotProps.value),\n );\n }\n return h('div');\n });\n\n if (window) {\n const config = { capture: props.capture ?? true };\n // useEventListener(handleEl, 'pointerdown', start, config);\n // useEventListener(window, 'pointermove', move, config);\n // useEventListener(window, 'pointerup', end, config);\n }\n\n return {\n targetEl,\n handleEl,\n dragging,\n position,\n };\n },\n});\n\nexport type YDraggable = InstanceType<typeof YDraggable>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDraggable.js","names":["computed","defineComponent","h","ref","unref","useRender","getHtmlElement","YDraggable","name","props","as","Object","String","handle","disabled","Boolean","capture","exact","container","onDragStart","Function","emits","setup","_ref","slots","emit","targetRef","dragging","originPosition","position","targetEl","value","handleEl","el","hEl","querySelector","nodeType","containerEl","document","undefined","slotProps","start","e","console","log","target","containerRect","getBoundingClientRect","targetRect","pos","x","clientX","left","scrollLeft","y","clientY","top","scrollTop","move","end","default","window","config"],"sources":["../../../src/components/draggable/YDraggable.tsx"],"sourcesContent":["import {\n MaybeRef,\n PropType,\n computed,\n defineComponent,\n h,\n ref,\n unref,\n} from 'vue';\n\nimport { useRender } from '@/composables/component';\nimport { getHtmlElement } from '@/util/index';\n\ntype Coord = { x: number; y: number };\n\nexport const YDraggable = defineComponent({\n name: 'YDraggable',\n props: {\n as: [Object, String] as PropType<object | string>,\n handle: [Object, String] as PropType<MaybeRef<HTMLElement | string>>,\n disabled: Boolean,\n capture: Boolean,\n exact: Boolean,\n container: [Object, String] as PropType<\n MaybeRef<HTMLElement | SVGElement | null> | string\n >,\n onDragStart: Function as PropType<\n (pos: Coord, e: PointerEvent) => boolean | undefined\n >,\n },\n emits: ['start'],\n setup(props, { slots, emit }) {\n const targetRef = ref();\n const dragging = ref(false);\n const originPosition = ref();\n const position = ref();\n\n const targetEl = computed(() => {\n return getHtmlElement(targetRef.value);\n });\n\n const handleEl = computed(() => {\n let el = targetEl.value;\n if (typeof props.handle === 'string') {\n const hEl = targetEl.value?.querySelector(props.handle);\n if (hEl?.nodeType === 1) el = hEl;\n }\n return el;\n });\n\n const containerEl = computed(() => {\n const container = unref(props.container);\n if (typeof container === 'string') {\n return document.querySelector(container);\n } else if (container) {\n return getHtmlElement(container);\n }\n return undefined;\n });\n\n const slotProps = computed(() => {\n return {\n handle: handleEl.value,\n };\n });\n\n const start = (e: PointerEvent) => {\n console.log('start', e);\n if (props.disabled) return;\n if (props.exact && e.target !== targetEl.value) return;\n\n const container = containerEl.value;\n const containerRect = container?.getBoundingClientRect?.();\n const targetRect = targetEl.value?.getBoundingClientRect();\n const pos = {\n x:\n e.clientX -\n (container\n ? targetRect.left - containerRect!.left + container.scrollLeft\n : targetRect.left),\n y:\n e.clientY -\n (container\n ? targetRect.top - containerRect!.top + container.scrollTop\n : targetRect.top),\n };\n if (props.onDragStart?.(pos, e) === false) return;\n originPosition.value = pos;\n };\n\n const move = (e: PointerEvent) => {\n console.log('move', e);\n };\n\n const end = (e: PointerEvent) => {\n console.log('end', e);\n };\n\n useRender(() => {\n if (slots.default) {\n return h(\n props.as || 'div',\n { ref: targetRef },\n slots.default(slotProps.value),\n );\n }\n return h('div');\n });\n\n if (window) {\n const config = { capture: props.capture ?? true };\n // useEventListener(handleEl, 'pointerdown', start, config);\n // useEventListener(window, 'pointermove', move, config);\n // useEventListener(window, 'pointerup', end, config);\n }\n\n return {\n targetEl,\n handleEl,\n dragging,\n position,\n };\n },\n});\n\nexport type YDraggable = InstanceType<typeof YDraggable>;\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./YDraggable.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/draggable/index.ts"],"sourcesContent":["export * from './YDraggable';\n"],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { createVNode as _createVNode } from "vue";
2
+ import { useRender } from "../../composables/component.js";
3
+ import { defineComponent, getUid, propsFactory } from "../../util/component/index.js";
4
+ import { YRadioIcon } from "./YRadioIcon.js";
5
+ import "./YRadio.scss";
6
+ export const pressYRadioPropsOptions = propsFactory({
7
+ modelValue: Boolean,
8
+ disabled: Boolean,
9
+ value: String,
10
+ label: String
11
+ }, 'YRadio');
12
+ const YRadio = defineComponent({
13
+ name: 'YRadio',
14
+ props: {
15
+ ...pressYRadioPropsOptions()
16
+ },
17
+ slots: Object,
18
+ emits: ['update:modelValue', 'input'],
19
+ setup(props, _ref) {
20
+ let {
21
+ slots,
22
+ attrs,
23
+ emit
24
+ } = _ref;
25
+ const uid = getUid();
26
+ function onInput(e) {
27
+ emit('input', e);
28
+ }
29
+ useRender(() => {
30
+ const inputId = `input-${uid}`;
31
+ return _createVNode("div", {
32
+ "class": ['y-radio', {
33
+ 'z-radio--disabled': props.disabled
34
+ }]
35
+ }, [slots.leading && slots.leading(), _createVNode("div", {
36
+ "class": "y-radio__input"
37
+ }, [slots.icon ? slots.icon() : _createVNode(YRadioIcon, {
38
+ "active": props.modelValue,
39
+ "disabled": props.disabled
40
+ }, null), _createVNode("input", {
41
+ "id": inputId,
42
+ "name": attrs.name,
43
+ "type": "radio",
44
+ "value": props.value,
45
+ "checked": props.modelValue,
46
+ "disabled": props.disabled,
47
+ "class": "y-radio__input-native",
48
+ "onInput": onInput
49
+ }, null)]), slots.label ? slots.label({
50
+ inputId
51
+ }) : _createVNode("label", {
52
+ "for": inputId,
53
+ "class": "y-radio__label"
54
+ }, [props.label])]);
55
+ });
56
+ }
57
+ });
58
+ //# sourceMappingURL=YRadio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YRadio.js","names":["useRender","defineComponent","getUid","propsFactory","YRadioIcon","pressYRadioPropsOptions","modelValue","Boolean","disabled","value","String","label","YRadio","name","props","slots","Object","emits","setup","_ref","attrs","emit","uid","onInput","e","inputId","_createVNode","leading","icon"],"sources":["../../../src/components/radio/YRadio.tsx"],"sourcesContent":["import type { PropType, SlotsType } from 'vue';\n\nimport { useRender } from '@/composables/component';\nimport { defineComponent, getUid, propsFactory } from '@/util/component';\n\nimport { YRadioIcon } from './YRadioIcon';\n\nimport './YRadio.scss';\n\nexport const pressYRadioPropsOptions = propsFactory(\n {\n modelValue: Boolean as PropType<boolean>,\n disabled: Boolean as PropType<boolean>,\n value: String as PropType<string>,\n label: String as PropType<string>,\n },\n 'YRadio',\n);\n\nconst YRadio = defineComponent({\n name: 'YRadio',\n props: {\n ...pressYRadioPropsOptions(),\n },\n slots: Object as SlotsType<{\n leading: any;\n icon: any;\n label: any;\n trailing: any;\n }>,\n emits: ['update:modelValue', 'input'],\n setup(props, { slots, attrs, emit }) {\n const uid = getUid();\n\n function onInput(e: Event) {\n emit('input', e);\n }\n\n useRender(() => {\n const inputId = `input-${uid}`;\n return (\n <div class={['y-radio', { 'z-radio--disabled': props.disabled }]}>\n {slots.leading && slots.leading()}\n <div class=\"y-radio__input\">\n {slots.icon ? (\n slots.icon()\n ) : (\n <YRadioIcon active={props.modelValue} disabled={props.disabled} />\n )}\n <input\n id={inputId}\n name={attrs.name as string}\n type=\"radio\"\n value={props.value}\n checked={props.modelValue}\n disabled={props.disabled}\n class=\"y-radio__input-native\"\n onInput={onInput}\n />\n </div>\n {slots.label ? (\n slots.label({ inputId })\n ) : (\n <label for={inputId} class=\"y-radio__label\">\n {props.label}\n </label>\n )}\n </div>\n );\n });\n },\n});\n"],"mappings":";SAESA,SAAS;AAAA,SACTC,eAAe,EAAEC,MAAM,EAAEC,YAAY;AAAA,SAErCC,UAAU;AAEnB;AAEA,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CACjD;EACEG,UAAU,EAAEC,OAA4B;EACxCC,QAAQ,EAAED,OAA4B;EACtCE,KAAK,EAAEC,MAA0B;EACjCC,KAAK,EAAED;AACT,CAAC,EACD,QACF,CAAC;AAED,MAAME,MAAM,GAAGX,eAAe,CAAC;EAC7BY,IAAI,EAAE,QAAQ;EACdC,KAAK,EAAE;IACL,GAAGT,uBAAuB,CAAC;EAC7B,CAAC;EACDU,KAAK,EAAEC,MAKL;EACFC,KAAK,EAAE,CAAC,mBAAmB,EAAE,OAAO,CAAC;EACrCC,KAAKA,CAACJ,KAAK,EAAAK,IAAA,EAA0B;IAAA,IAAxB;MAAEJ,KAAK;MAAEK,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IACjC,MAAMG,GAAG,GAAGpB,MAAM,CAAC,CAAC;IAEpB,SAASqB,OAAOA,CAACC,CAAQ,EAAE;MACzBH,IAAI,CAAC,OAAO,EAAEG,CAAC,CAAC;IAClB;IAEAxB,SAAS,CAAC,MAAM;MACd,MAAMyB,OAAO,GAAI,SAAQH,GAAI,EAAC;MAC9B,OAAAI,YAAA;QAAA,SACc,CAAC,SAAS,EAAE;UAAE,mBAAmB,EAAEZ,KAAK,CAACN;QAAS,CAAC;MAAC,IAC7DO,KAAK,CAACY,OAAO,IAAIZ,KAAK,CAACY,OAAO,CAAC,CAAC,EAAAD,YAAA;QAAA;MAAA,IAE9BX,KAAK,CAACa,IAAI,GACTb,KAAK,CAACa,IAAI,CAAC,CAAC,GAAAF,YAAA,CAAAtB,UAAA;QAAA,UAEQU,KAAK,CAACR,UAAU;QAAA,YAAYQ,KAAK,CAACN;MAAQ,QAC/D,EAAAkB,YAAA;QAAA,MAEKD,OAAO;QAAA,QACLL,KAAK,CAACP,IAAI;QAAA;QAAA,SAETC,KAAK,CAACL,KAAK;QAAA,WACTK,KAAK,CAACR,UAAU;QAAA,YACfQ,KAAK,CAACN,QAAQ;QAAA;QAAA,WAEfe;MAAO,YAGnBR,KAAK,CAACJ,KAAK,GACVI,KAAK,CAACJ,KAAK,CAAC;QAAEc;MAAQ,CAAC,CAAC,GAAAC,YAAA;QAAA,OAEZD,OAAO;QAAA;MAAA,IAChBX,KAAK,CAACH,KAAK,EAEf;IAGP,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ .y-radio {
2
+ position: relative;
3
+ display: flex;
4
+ align-items: center;
5
+ gap: 8px;
6
+
7
+ &__input {
8
+ position: relative;
9
+ display: flex;
10
+ align-items: center;
11
+
12
+ .y-radio-icon {
13
+ width: 24px;
14
+ height: 24px;
15
+ }
16
+
17
+ input {
18
+ cursor: pointer;
19
+ position: absolute;
20
+ left: 0;
21
+ top: 0;
22
+ width: 100%;
23
+ height: 100%;
24
+ opacity: 0;
25
+ }
26
+ }
27
+
28
+ &__label {
29
+ cursor: pointer;
30
+ }
31
+
32
+ &--disabled & {
33
+ &__input input,
34
+ &__label {
35
+ cursor: default;
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,33 @@
1
+ import { createVNode as _createVNode } from "vue";
2
+ import { useRender } from "../../composables/component.js";
3
+ import { defineComponent } from "../../util/component/component.js";
4
+ import "./YRadioIcon.scss";
5
+ export const YRadioIcon = defineComponent({
6
+ name: 'YRadioIcon',
7
+ props: {
8
+ active: Boolean,
9
+ disabled: Boolean
10
+ },
11
+ setup(props) {
12
+ useRender(() => _createVNode("svg", {
13
+ "class": ['y-radio-icon', {
14
+ 'y-radio-icon--active': props.active,
15
+ 'y-radio-icon--disabled': props.disabled
16
+ }],
17
+ "viewBox": "0 0 24 24"
18
+ }, [_createVNode("circle", {
19
+ "class": "y-radio-icon__plate",
20
+ "r": "11",
21
+ "cx": "12",
22
+ "cy": "12",
23
+ "stroke-width": "2",
24
+ "stroke": "currentColor"
25
+ }, null), _createVNode("circle", {
26
+ "class": "y-radio-icon__bead",
27
+ "r": "6",
28
+ "cx": "12",
29
+ "cy": "12"
30
+ }, null)]));
31
+ }
32
+ });
33
+ //# sourceMappingURL=YRadioIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YRadioIcon.js","names":["useRender","defineComponent","YRadioIcon","name","props","active","Boolean","disabled","setup","_createVNode"],"sources":["../../../src/components/radio/YRadioIcon.tsx"],"sourcesContent":["import { useRender } from '@/composables/component';\nimport { defineComponent } from '@/util/component/component';\n\nimport './YRadioIcon.scss';\n\nexport const YRadioIcon = defineComponent({\n name: 'YRadioIcon',\n props: {\n active: Boolean,\n disabled: Boolean,\n },\n setup(props) {\n useRender(() => (\n <svg\n class={[\n 'y-radio-icon',\n {\n 'y-radio-icon--active': props.active,\n 'y-radio-icon--disabled': props.disabled,\n },\n ]}\n viewBox=\"0 0 24 24\"\n >\n <circle\n class=\"y-radio-icon__plate\"\n r=\"11\"\n cx=\"12\"\n cy=\"12\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n />\n <circle class=\"y-radio-icon__bead\" r=\"6\" cx=\"12\" cy=\"12\" />\n </svg>\n ));\n },\n});\n\nexport type YRadioIcon = InstanceType<typeof YRadioIcon>;\n"],"mappings":";SAASA,SAAS;AAAA,SACTC,eAAe;AAExB;AAEA,OAAO,MAAMC,UAAU,GAAGD,eAAe,CAAC;EACxCE,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE;IACLC,MAAM,EAAEC,OAAO;IACfC,QAAQ,EAAED;EACZ,CAAC;EACDE,KAAKA,CAACJ,KAAK,EAAE;IACXJ,SAAS,CAAC,MAAAS,YAAA;MAAA,SAEC,CACL,cAAc,EACd;QACE,sBAAsB,EAAEL,KAAK,CAACC,MAAM;QACpC,wBAAwB,EAAED,KAAK,CAACG;MAClC,CAAC,CACF;MAAA;IAAA,IAAAE,YAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;IAAA,UAAAA,YAAA;MAAA;MAAA;MAAA;MAAA;IAAA,UAaJ,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ .y-radio-icon {
2
+ --y-radio-icon-outline: var(--y-theme-outline, #c8c8c8);
3
+ width: 24px;
4
+ height: 24px;
5
+
6
+ &__plate {
7
+ fill: none;
8
+ stroke: var(--y-radio-icon-outline);
9
+ stroke-width: 1;
10
+ color: inherit;
11
+ }
12
+
13
+ &__bead {
14
+ fill: none;
15
+ transform: scale(1.2);
16
+ transform-origin: center;
17
+ color: inherit;
18
+ }
19
+
20
+ &--active:not(&--disabled) {
21
+ color: var(--y-theme-primary);
22
+ }
23
+
24
+ &--disabled {
25
+ color: var(--y-theme-disabled);
26
+ cursor: default;
27
+ }
28
+
29
+ &--active &,
30
+ &--disabled & {
31
+ &__plate {
32
+ stroke: currentColor;
33
+ }
34
+ }
35
+
36
+ &--active &__bead {
37
+ fill: currentColor;
38
+ stroke: currentColor;
39
+ transform: scale(1);
40
+ transition:
41
+ fill 200ms ease-in,
42
+ transform 120ms ease;
43
+ }
44
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./YRadioIcon.js";
2
+ export * from "./YRadio.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/radio/index.ts"],"sourcesContent":["export * from './YRadioIcon';\r\nexport * from './YRadio';\r\n\r\n"],"mappings":""}
@@ -4,17 +4,18 @@ import { pressDataTableExpandProps, provideExpand } from "./composables/expand.j
4
4
  import { createHeader, pressDataTableHeader } from "./composables/header.js";
5
5
  import { pressDataTableItemsProps, useItems } from "./composables/items.js";
6
6
  import { useOptions } from "./composables/options.js";
7
- import { createPagination, pressDataTablePaginationProps, providePagination, usePaginatedItems } from "./composables/pagination.js";
7
+ import { createPagination, providePagination, usePaginatedItems } from "./composables/pagination.js";
8
8
  import { YDataTableInjectionKey } from "./composables/provides.js";
9
9
  import { pressDataTableSelectionProps, provideSelection } from "./composables/selection.js";
10
10
  import { useSortedItems } from "./composables/sorted-items.js";
11
11
  import { createSorting, pressDataTableSortProps, provideSorting } from "./composables/sorting.js";
12
12
  import { useRender } from "../../composables/component.js";
13
13
  import { useResizeObserver } from "../../composables/resize-observer.js";
14
+ import { omit } from "../../util/index.js";
14
15
  import { chooseProps, defineComponent, propsFactory } from "../../util/component/index.js";
15
16
  import { toStyleSizeValue } from "../../util/ui.js";
16
17
  import { YDataTableBody, pressYDataTableBodyProps } from "./YDataTableBody.js";
17
- import { YDataTableControl } from "./YDataTableControl.js";
18
+ import { YDataTableControl, pressYDataTableControlPropsOptions } from "./YDataTableControl.js";
18
19
  import { YDataTableHead, pressYDataTableHeadProps } from "./YDataTableHead.js";
19
20
  import { YDataTableLayer } from "./YDataTableLayer.js";
20
21
  import { YTable, pressYTableProps } from "./YTable.js";
@@ -34,7 +35,7 @@ export const pressDataTableProps = propsFactory({
34
35
  export const YDataTable = defineComponent({
35
36
  name: 'YDataTable',
36
37
  props: {
37
- ...pressDataTablePaginationProps(),
38
+ ...omit(pressYDataTableControlPropsOptions(), ['setPage', 'setPageSize', 'pageLength']),
38
39
  ...pressDataTableProps()
39
40
  },
40
41
  emits: {
@@ -184,7 +185,9 @@ export const YDataTable = defineComponent({
184
185
  "items": slotProps.value.items
185
186
  }), slots)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
186
187
  trailing: () => slots.trailing?.(slotProps.value),
187
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : _createVNode(YDataTableControl, null, {
188
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : _createVNode(YDataTableControl, _mergeProps(chooseProps(slotProps.value, YDataTableControl.props), {
189
+ "paginationProps": props.paginationProps
190
+ }), {
188
191
  prepend: slots['control.prepend'],
189
192
  append: slots['control.append']
190
193
  })
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTable.js","names":["Fragment","computed","provide","ref","toRef","pressDataTableExpandProps","provideExpand","createHeader","pressDataTableHeader","pressDataTableItemsProps","useItems","useOptions","createPagination","pressDataTablePaginationProps","providePagination","usePaginatedItems","YDataTableInjectionKey","pressDataTableSelectionProps","provideSelection","useSortedItems","createSorting","pressDataTableSortProps","provideSorting","useRender","useResizeObserver","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YDataTableBody","pressYDataTableBodyProps","YDataTableControl","YDataTableHead","pressYDataTableHeadProps","YDataTableLayer","YTable","pressYTableProps","pressDataTableProps","width","String","Number","search","hideDefaultTbody","Boolean","YDataTable","name","props","emits","value","page","pageSize","sortBy","options","expanded","click:row","e","scroll","setup","_ref","slots","emit","TableBodyRef","multiSort","columns","headers","enableSelect","items","toggleSort","total","length","startIndex","endIndex","pageLength","setPageSize","setPage","sortedItems","paginatedItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","pageItems","isExpanded","toggleExpand","resizeObservedRef","headObserveRef","contentRect","headRect","slotProps","yDataTableHeadProps","yDataTableBodyProps","yTableProps","_createVNode","_mergeProps","loading","hideNoData","height","top","leading","_Fragment","default","thead","tbody","tfoot","trailing","bottom","prepend","append"],"sources":["../../../src/components/table/YDataTable.tsx"],"sourcesContent":["import { Fragment, type PropType, computed, provide, ref, toRef } from 'vue';\n\nimport {\n pressDataTableExpandProps,\n provideExpand,\n} from '@/components/table/composables/expand';\nimport {\n createHeader,\n pressDataTableHeader,\n} from '@/components/table/composables/header';\nimport {\n pressDataTableItemsProps,\n useItems,\n} from '@/components/table/composables/items';\nimport { useOptions } from '@/components/table/composables/options';\nimport {\n createPagination,\n pressDataTablePaginationProps,\n providePagination,\n usePaginatedItems,\n} from '@/components/table/composables/pagination';\nimport { YDataTableInjectionKey } from '@/components/table/composables/provides';\nimport {\n pressDataTableSelectionProps,\n provideSelection,\n} from '@/components/table/composables/selection';\nimport { useSortedItems } from '@/components/table/composables/sorted-items';\nimport {\n createSorting,\n pressDataTableSortProps,\n provideSorting,\n} from '@/components/table/composables/sorting';\nimport { useRender } from '@/composables/component';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YDataTableBody, pressYDataTableBodyProps } from './YDataTableBody';\nimport { YDataTableControl } from './YDataTableControl';\nimport { YDataTableHead, pressYDataTableHeadProps } from './YDataTableHead';\nimport { YDataTableLayer } from './YDataTableLayer';\nimport { YTable, pressYTableProps } from './YTable';\nimport { YDataTableSlotProps } from './types';\n\nexport const pressDataTableProps = propsFactory(\n {\n ...pressYDataTableBodyProps(),\n width: [String, Number] as PropType<string | number>,\n search: String as PropType<string>,\n hideDefaultTbody: Boolean,\n ...pressDataTableHeader(),\n ...pressDataTableItemsProps(),\n ...pressDataTableSortProps(),\n ...pressDataTableSelectionProps(),\n ...pressDataTableExpandProps(),\n ...pressYDataTableHeadProps(),\n ...pressYTableProps(),\n },\n 'DataTable',\n);\n\nexport const YDataTable = defineComponent({\n name: 'YDataTable',\n props: {\n ...pressDataTablePaginationProps(),\n ...pressDataTableProps(),\n },\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:pageSize': (pageSize: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (expanded: any[]) => true,\n 'click:row': (e: Event, value: { row: any }) => true,\n scroll: (e: Event) => true,\n },\n setup(props, { slots, emit }) {\n const TableBodyRef = ref();\n const { page, pageSize } = createPagination(props);\n const { sortBy, multiSort } = createSorting(props);\n const { columns, headers } = createHeader(props, {\n enableSelect: toRef(props, 'enableSelect'),\n });\n const { items } = useItems(props, columns);\n const { toggleSort } = provideSorting({ sortBy, multiSort, page });\n const total = computed(() => items.value.length);\n const { startIndex, endIndex, pageLength, setPageSize, setPage } =\n providePagination({\n page,\n pageSize,\n total,\n });\n const { sortedItems } = useSortedItems(props, items, sortBy);\n const { paginatedItems } = usePaginatedItems({\n items: sortedItems,\n startIndex,\n endIndex,\n pageSize,\n });\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, pageItems: items });\n const { isExpanded, toggleExpand } = provideExpand(props);\n\n const { resizeObservedRef: headObserveRef, contentRect: headRect } =\n useResizeObserver();\n\n useOptions(\n {\n page,\n pageSize,\n search: toRef(props, 'search'),\n sortBy,\n },\n emit,\n );\n\n const slotProps = computed<YDataTableSlotProps>(() => {\n return {\n // pagination\n page: page.value,\n pageSize: pageSize.value,\n pageLength: pageLength.value,\n setPageSize,\n setPage,\n // sorting\n sortBy: sortBy.value,\n toggleSort,\n // expand\n isExpanded,\n toggleExpand,\n // selection\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n // matrix\n items: paginatedItems.value,\n columns: columns.value,\n headers: headers.value,\n //\n TableBodyRef,\n };\n });\n\n provide(YDataTableInjectionKey, {\n toggleSort,\n sortBy,\n headRect,\n });\n\n useRender(() => {\n const yDataTableHeadProps = chooseProps(props, YDataTableHead.props);\n const yDataTableBodyProps = chooseProps(props, YDataTableBody.props);\n const yTableProps = chooseProps(props, YTable.props);\n return (\n <YTable\n class={[\n 'y-data-table',\n {\n 'y-data-table--no-data':\n !props.loading && props.items.length < 1 && !props.hideNoData,\n },\n ]}\n {...yTableProps}\n style={{\n '--y-table-head-height': toStyleSizeValue(headRect.value?.height),\n }}\n >\n {{\n top: () => slots.top?.(slotProps.value),\n leading: () =>\n slots.leading ? (\n slots.leading(slotProps.value)\n ) : (\n <>\n <YDataTableLayer\n v-slots={slots}\n slot-props={slotProps.value}\n ></YDataTableLayer>\n </>\n ),\n default: () =>\n slots.default ? (\n slots.default(slotProps.value)\n ) : (\n <Fragment>\n <thead ref={headObserveRef}>\n <YDataTableHead\n v-slots={slots}\n {...yDataTableHeadProps}\n ></YDataTableHead>\n </thead>\n {slots.thead?.(slotProps.value)}\n {!props.hideDefaultTbody && (\n <tbody>\n <YDataTableBody\n ref={TableBodyRef}\n v-slots={slots}\n {...yDataTableBodyProps}\n items={slotProps.value.items}\n ></YDataTableBody>\n </tbody>\n )}\n {slots.tbody?.(slotProps.value)}\n {slots.tfoot?.(slotProps.value)}\n </Fragment>\n ),\n trailing: () => slots.trailing?.(slotProps.value),\n bottom: () =>\n slots.bottom ? (\n slots.bottom(slotProps.value)\n ) : (\n <YDataTableControl\n v-slots={{\n prepend: slots['control.prepend'],\n append: slots['control.append'],\n }}\n ></YDataTableControl>\n ),\n }}\n </YTable>\n );\n });\n\n return { paginatedItems };\n },\n});\n\nexport type YDataTable = InstanceType<typeof YDataTable>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDataTable.js","names":["Fragment","computed","provide","ref","toRef","pressDataTableExpandProps","provideExpand","createHeader","pressDataTableHeader","pressDataTableItemsProps","useItems","useOptions","createPagination","providePagination","usePaginatedItems","YDataTableInjectionKey","pressDataTableSelectionProps","provideSelection","useSortedItems","createSorting","pressDataTableSortProps","provideSorting","useRender","useResizeObserver","omit","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YDataTableBody","pressYDataTableBodyProps","YDataTableControl","pressYDataTableControlPropsOptions","YDataTableHead","pressYDataTableHeadProps","YDataTableLayer","YTable","pressYTableProps","pressDataTableProps","width","String","Number","search","hideDefaultTbody","Boolean","YDataTable","name","props","emits","value","page","pageSize","sortBy","options","expanded","click:row","e","scroll","setup","_ref","slots","emit","TableBodyRef","multiSort","columns","headers","enableSelect","items","toggleSort","total","length","startIndex","endIndex","pageLength","setPageSize","setPage","sortedItems","paginatedItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","pageItems","isExpanded","toggleExpand","resizeObservedRef","headObserveRef","contentRect","headRect","slotProps","yDataTableHeadProps","yDataTableBodyProps","yTableProps","_createVNode","_mergeProps","loading","hideNoData","height","top","leading","_Fragment","default","thead","tbody","tfoot","trailing","bottom","paginationProps","prepend","append"],"sources":["../../../src/components/table/YDataTable.tsx"],"sourcesContent":["import { Fragment, type PropType, computed, provide, ref, toRef } from 'vue';\n\nimport {\n pressDataTableExpandProps,\n provideExpand,\n} from '@/components/table/composables/expand';\nimport {\n createHeader,\n pressDataTableHeader,\n} from '@/components/table/composables/header';\nimport {\n pressDataTableItemsProps,\n useItems,\n} from '@/components/table/composables/items';\nimport { useOptions } from '@/components/table/composables/options';\nimport {\n createPagination,\n pressDataTablePaginationProps,\n providePagination,\n usePaginatedItems,\n} from '@/components/table/composables/pagination';\nimport { YDataTableInjectionKey } from '@/components/table/composables/provides';\nimport {\n pressDataTableSelectionProps,\n provideSelection,\n} from '@/components/table/composables/selection';\nimport { useSortedItems } from '@/components/table/composables/sorted-items';\nimport {\n createSorting,\n pressDataTableSortProps,\n provideSorting,\n} from '@/components/table/composables/sorting';\nimport { useRender } from '@/composables/component';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { omit } from '@/util';\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YDataTableBody, pressYDataTableBodyProps } from './YDataTableBody';\nimport {\n YDataTableControl,\n pressYDataTableControlPropsOptions,\n} from './YDataTableControl';\nimport { YDataTableHead, pressYDataTableHeadProps } from './YDataTableHead';\nimport { YDataTableLayer } from './YDataTableLayer';\nimport { YTable, pressYTableProps } from './YTable';\nimport { YDataTableSlotProps } from './types';\n\nexport const pressDataTableProps = propsFactory(\n {\n ...pressYDataTableBodyProps(),\n width: [String, Number] as PropType<string | number>,\n search: String as PropType<string>,\n hideDefaultTbody: Boolean,\n ...pressDataTableHeader(),\n ...pressDataTableItemsProps(),\n ...pressDataTableSortProps(),\n ...pressDataTableSelectionProps(),\n ...pressDataTableExpandProps(),\n ...pressYDataTableHeadProps(),\n ...pressYTableProps(),\n },\n 'DataTable',\n);\n\nexport const YDataTable = defineComponent({\n name: 'YDataTable',\n props: {\n ...omit(pressYDataTableControlPropsOptions(), [\n 'setPage',\n 'setPageSize',\n 'pageLength',\n ]),\n ...pressDataTableProps(),\n },\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:pageSize': (pageSize: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (expanded: any[]) => true,\n 'click:row': (e: Event, value: { row: any }) => true,\n scroll: (e: Event) => true,\n },\n setup(props, { slots, emit }) {\n const TableBodyRef = ref();\n const { page, pageSize } = createPagination(props);\n const { sortBy, multiSort } = createSorting(props);\n const { columns, headers } = createHeader(props, {\n enableSelect: toRef(props, 'enableSelect'),\n });\n const { items } = useItems(props, columns);\n const { toggleSort } = provideSorting({ sortBy, multiSort, page });\n const total = computed(() => items.value.length);\n const { startIndex, endIndex, pageLength, setPageSize, setPage } =\n providePagination({\n page,\n pageSize,\n total,\n });\n const { sortedItems } = useSortedItems(props, items, sortBy);\n const { paginatedItems } = usePaginatedItems({\n items: sortedItems,\n startIndex,\n endIndex,\n pageSize,\n });\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, pageItems: items });\n const { isExpanded, toggleExpand } = provideExpand(props);\n\n const { resizeObservedRef: headObserveRef, contentRect: headRect } =\n useResizeObserver();\n\n useOptions(\n {\n page,\n pageSize,\n search: toRef(props, 'search'),\n sortBy,\n },\n emit,\n );\n\n const slotProps = computed<YDataTableSlotProps>(() => {\n return {\n // pagination\n page: page.value,\n pageSize: pageSize.value,\n pageLength: pageLength.value,\n setPageSize,\n setPage,\n // sorting\n sortBy: sortBy.value,\n toggleSort,\n // expand\n isExpanded,\n toggleExpand,\n // selection\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n // matrix\n items: paginatedItems.value,\n columns: columns.value,\n headers: headers.value,\n //\n TableBodyRef,\n };\n });\n\n provide(YDataTableInjectionKey, {\n toggleSort,\n sortBy,\n headRect,\n });\n\n useRender(() => {\n const yDataTableHeadProps = chooseProps(props, YDataTableHead.props);\n const yDataTableBodyProps = chooseProps(props, YDataTableBody.props);\n const yTableProps = chooseProps(props, YTable.props);\n return (\n <YTable\n class={[\n 'y-data-table',\n {\n 'y-data-table--no-data':\n !props.loading && props.items.length < 1 && !props.hideNoData,\n },\n ]}\n {...yTableProps}\n style={{\n '--y-table-head-height': toStyleSizeValue(headRect.value?.height),\n }}\n >\n {{\n top: () => slots.top?.(slotProps.value),\n leading: () =>\n slots.leading ? (\n slots.leading(slotProps.value)\n ) : (\n <>\n <YDataTableLayer\n v-slots={slots}\n slot-props={slotProps.value}\n ></YDataTableLayer>\n </>\n ),\n default: () =>\n slots.default ? (\n slots.default(slotProps.value)\n ) : (\n <Fragment>\n <thead ref={headObserveRef}>\n <YDataTableHead\n v-slots={slots}\n {...yDataTableHeadProps}\n ></YDataTableHead>\n </thead>\n {slots.thead?.(slotProps.value)}\n {!props.hideDefaultTbody && (\n <tbody>\n <YDataTableBody\n ref={TableBodyRef}\n v-slots={slots}\n {...yDataTableBodyProps}\n items={slotProps.value.items}\n ></YDataTableBody>\n </tbody>\n )}\n {slots.tbody?.(slotProps.value)}\n {slots.tfoot?.(slotProps.value)}\n </Fragment>\n ),\n trailing: () => slots.trailing?.(slotProps.value),\n bottom: () =>\n slots.bottom ? (\n slots.bottom(slotProps.value)\n ) : (\n <YDataTableControl\n {...chooseProps(slotProps.value, YDataTableControl.props)}\n paginationProps={props.paginationProps}\n v-slots={{\n prepend: slots['control.prepend'],\n append: slots['control.append'],\n }}\n ></YDataTableControl>\n ),\n }}\n </YTable>\n );\n });\n\n return { paginatedItems };\n },\n});\n\nexport type YDataTable = InstanceType<typeof YDataTable>;\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
1
+ import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
+ import { pressDataTablePaginationProps } from "./composables/pagination.js";
2
3
  import { useRender } from "../../composables/component.js";
3
4
  import { propsFactory } from "../../util/index.js";
4
5
  import { defineComponent } from "../../util/component/index.js";
@@ -6,12 +7,14 @@ import { YButton } from "../button/index.js";
6
7
  import { YFieldInput } from "../field-input/index.js";
7
8
  import { YIconExpand, YIconPageControl } from "../icons/index.js";
8
9
  import { YPagination } from "../pagination/index.js";
9
- import { pressDataTablePaginationProps } from "./composables/pagination.js";
10
10
  import "./YDataTableControl.scss";
11
11
  export const pressYDataTableControlPropsOptions = propsFactory({
12
12
  pageLength: Number,
13
13
  setPageSize: Function,
14
14
  setPage: Function,
15
+ paginationProps: {
16
+ type: Object
17
+ },
15
18
  ...pressDataTablePaginationProps()
16
19
  }, 'YDataTableControl');
17
20
  export const YDataTableControl = defineComponent({
@@ -34,12 +37,11 @@ export const YDataTableControl = defineComponent({
34
37
  "class": "y-data-table-control__start"
35
38
  }, null), _createVNode("div", {
36
39
  "class": "y-data-table-control__end"
37
- }, [_createVNode(YPagination, {
40
+ }, [_createVNode(YPagination, _mergeProps(props.paginationProps, {
38
41
  "model-value": props.page,
39
42
  "onUpdate:modelValue": props.setPage,
40
- "length": props.pageLength,
41
- "totalVisible": 0
42
- }, null)])]), slots.append?.(props)]);
43
+ "length": props.pageLength
44
+ }), null)])]), slots.append?.(props)]);
43
45
  });
44
46
  }
45
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTableControl.js","names":["useRender","propsFactory","defineComponent","YButton","YFieldInput","YIconExpand","YIconPageControl","YPagination","pressDataTablePaginationProps","pressYDataTableControlPropsOptions","pageLength","Number","setPageSize","Function","setPage","YDataTableControl","name","components","props","setup","_ref","slots","_createVNode","prepend","default","_Fragment","page","append"],"sources":["../../../src/components/table/YDataTableControl.tsx"],"sourcesContent":["import { type PropType } from 'vue';\n\nimport { useRender } from '@/composables/component';\nimport { propsFactory } from '@/util';\nimport { defineComponent } from '@/util/component';\n\nimport { YButton } from '../button';\nimport { YFieldInput } from '../field-input';\nimport { YIconExpand, YIconPageControl } from '../icons';\nimport { YPagination } from '../pagination';\nimport { pressDataTablePaginationProps } from '@/components/table/composables/pagination';\n\nimport './YDataTableControl.scss';\n\nexport const pressYDataTableControlPropsOptions = propsFactory(\n {\n pageLength: Number as PropType<number>,\n setPageSize: Function as PropType<(pageSize: number) => void>,\n setPage: Function as PropType<(page: number) => void>,\n ...pressDataTablePaginationProps(),\n },\n 'YDataTableControl',\n);\n\nexport const YDataTableControl = defineComponent({\n name: 'YDataTableControl',\n components: {\n YButton,\n YIconExpand,\n YFieldInput,\n YIconPageControl,\n },\n props: pressYDataTableControlPropsOptions(),\n setup(props, { slots }) {\n useRender(() => {\n return (\n <footer class={['y-data-table-control']}>\n {slots.prepend?.(props)}\n {slots.default ? (\n slots.default()\n ) : (\n <>\n <div class=\"y-data-table-control__start\"></div>\n <div class=\"y-data-table-control__end\">\n <YPagination\n model-value={props.page}\n onUpdate:modelValue={props.setPage}\n length={props.pageLength}\n totalVisible={0}\n ></YPagination>\n </div>\n </>\n )}\n {slots.append?.(props)}\n </footer>\n );\n });\n },\n});\n\nexport type YDataTableControl = InstanceType<typeof YDataTableControl>;\n"],"mappings":";SAESA,SAAS;AAAA,SACTC,YAAY;AAAA,SACZC,eAAe;AAAA,SAEfC,OAAO;AAAA,SACPC,WAAW;AAAA,SACXC,WAAW,EAAEC,gBAAgB;AAAA,SAC7BC,WAAW;AAAA,SACXC,6BAA6B;AAEtC;AAEA,OAAO,MAAMC,kCAAkC,GAAGR,YAAY,CAC5D;EACES,UAAU,EAAEC,MAA0B;EACtCC,WAAW,EAAEC,QAAgD;EAC7DC,OAAO,EAAED,QAA4C;EACrD,GAAGL,6BAA6B,CAAC;AACnC,CAAC,EACD,mBACF,CAAC;AAED,OAAO,MAAMO,iBAAiB,GAAGb,eAAe,CAAC;EAC/Cc,IAAI,EAAE,mBAAmB;EACzBC,UAAU,EAAE;IACVd,OAAO;IACPE,WAAW;IACXD,WAAW;IACXE;EACF,CAAC;EACDY,KAAK,EAAET,kCAAkC,CAAC,CAAC;EAC3CU,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACpBpB,SAAS,CAAC,MAAM;MACd,OAAAsB,YAAA;QAAA,SACiB,CAAC,sBAAsB;MAAC,IACpCD,KAAK,CAACE,OAAO,GAAGL,KAAK,CAAC,EACtBG,KAAK,CAACG,OAAO,GACZH,KAAK,CAACG,OAAO,CAAC,CAAC,GAAAF,YAAA,CAAAG,SAAA,SAAAH,YAAA;QAAA;MAAA,UAAAA,YAAA;QAAA;MAAA,IAAAA,YAAA,CAAAf,WAAA;QAAA,eAMIW,KAAK,CAACQ,IAAI;QAAA,uBACFR,KAAK,CAACJ,OAAO;QAAA,UAC1BI,KAAK,CAACR,UAAU;QAAA,gBACV;MAAC,YAItB,EACAW,KAAK,CAACM,MAAM,GAAGT,KAAK,CAAC;IAG5B,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"YDataTableControl.js","names":["pressDataTablePaginationProps","useRender","propsFactory","defineComponent","YButton","YFieldInput","YIconExpand","YIconPageControl","YPagination","pressYDataTableControlPropsOptions","pageLength","Number","setPageSize","Function","setPage","paginationProps","type","Object","YDataTableControl","name","components","props","setup","_ref","slots","_createVNode","prepend","default","_Fragment","_mergeProps","page","append"],"sources":["../../../src/components/table/YDataTableControl.tsx"],"sourcesContent":["import { type PropType } from 'vue';\n\nimport { pressDataTablePaginationProps } from '@/components/table/composables/pagination';\nimport { useRender } from '@/composables/component';\nimport { propsFactory } from '@/util';\nimport { defineComponent } from '@/util/component';\n\nimport { YButton } from '../button';\nimport { YFieldInput } from '../field-input';\nimport { YIconExpand, YIconPageControl } from '../icons';\nimport { YPagination } from '../pagination';\n\nimport './YDataTableControl.scss';\n\nexport const pressYDataTableControlPropsOptions = propsFactory(\n {\n pageLength: Number as PropType<number>,\n setPageSize: Function as PropType<(pageSize: number) => void>,\n setPage: Function as PropType<(page: number) => void>,\n paginationProps: {\n type: Object,\n },\n ...pressDataTablePaginationProps(),\n },\n 'YDataTableControl',\n);\n\nexport const YDataTableControl = defineComponent({\n name: 'YDataTableControl',\n components: {\n YButton,\n YIconExpand,\n YFieldInput,\n YIconPageControl,\n },\n props: pressYDataTableControlPropsOptions(),\n setup(props, { slots }) {\n useRender(() => {\n return (\n <footer class={['y-data-table-control']}>\n {slots.prepend?.(props)}\n {slots.default ? (\n slots.default()\n ) : (\n <>\n <div class=\"y-data-table-control__start\"></div>\n <div class=\"y-data-table-control__end\">\n <YPagination\n {...props.paginationProps}\n model-value={props.page}\n onUpdate:modelValue={props.setPage}\n length={props.pageLength}\n ></YPagination>\n </div>\n </>\n )}\n {slots.append?.(props)}\n </footer>\n );\n });\n },\n});\n\nexport type YDataTableControl = InstanceType<typeof YDataTableControl>;\n"],"mappings":";SAESA,6BAA6B;AAAA,SAC7BC,SAAS;AAAA,SACTC,YAAY;AAAA,SACZC,eAAe;AAAA,SAEfC,OAAO;AAAA,SACPC,WAAW;AAAA,SACXC,WAAW,EAAEC,gBAAgB;AAAA,SAC7BC,WAAW;AAEpB;AAEA,OAAO,MAAMC,kCAAkC,GAAGP,YAAY,CAC5D;EACEQ,UAAU,EAAEC,MAA0B;EACtCC,WAAW,EAAEC,QAAgD;EAC7DC,OAAO,EAAED,QAA4C;EACrDE,eAAe,EAAE;IACfC,IAAI,EAAEC;EACR,CAAC;EACD,GAAGjB,6BAA6B,CAAC;AACnC,CAAC,EACD,mBACF,CAAC;AAED,OAAO,MAAMkB,iBAAiB,GAAGf,eAAe,CAAC;EAC/CgB,IAAI,EAAE,mBAAmB;EACzBC,UAAU,EAAE;IACVhB,OAAO;IACPE,WAAW;IACXD,WAAW;IACXE;EACF,CAAC;EACDc,KAAK,EAAEZ,kCAAkC,CAAC,CAAC;EAC3Ca,KAAKA,CAACD,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACpBtB,SAAS,CAAC,MAAM;MACd,OAAAwB,YAAA;QAAA,SACiB,CAAC,sBAAsB;MAAC,IACpCD,KAAK,CAACE,OAAO,GAAGL,KAAK,CAAC,EACtBG,KAAK,CAACG,OAAO,GACZH,KAAK,CAACG,OAAO,CAAC,CAAC,GAAAF,YAAA,CAAAG,SAAA,SAAAH,YAAA;QAAA;MAAA,UAAAA,YAAA;QAAA;MAAA,IAAAA,YAAA,CAAAjB,WAAA,EAAAqB,WAAA,CAMLR,KAAK,CAACN,eAAe;QAAA,eACZM,KAAK,CAACS,IAAI;QAAA,uBACFT,KAAK,CAACP,OAAO;QAAA,UAC1BO,KAAK,CAACX;MAAU,aAI/B,EACAc,KAAK,CAACO,MAAM,GAAGV,KAAK,CAAC;IAG5B,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -4,4 +4,14 @@
4
4
  justify-content: space-between;
5
5
  padding: 8px 16px;
6
6
  gap: 8px;
7
+
8
+ &__start, &__end {
9
+ flex: 1 1;
10
+ }
11
+
12
+ &__end {
13
+ flex: 1 1;
14
+ display: flex;
15
+ justify-content: flex-end;
16
+ }
7
17
  }
@@ -1,22 +1,23 @@
1
1
  import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
2
- import { computed, provide, ref, toRef, Fragment } from 'vue';
2
+ import { Fragment, computed, provide, ref, toRef } from 'vue';
3
3
  import { provideExpand } from "./composables/expand.js";
4
4
  import { YDataTableInjectionKey } from "./composables/provides.js";
5
5
  import { useRender } from "../../composables/component.js";
6
6
  import { useResizeObserver } from "../../composables/resize-observer.js";
7
+ import { omit } from "../../util/common.js";
7
8
  import { chooseProps, defineComponent, propsFactory } from "../../util/component/index.js";
8
9
  import { debounce } from "../../util/debounce.js";
9
10
  import { toStyleSizeValue } from "../../util/ui.js";
10
11
  import { pressDataTableProps } from "./YDataTable.js";
11
12
  import { YDataTableBody } from "./YDataTableBody.js";
12
- import { YDataTableControl } from "./YDataTableControl.js";
13
+ import { YDataTableControl, pressYDataTableControlPropsOptions } from "./YDataTableControl.js";
13
14
  import { YDataTableHead } from "./YDataTableHead.js";
14
15
  import { YDataTableLayer } from "./YDataTableLayer.js";
15
16
  import { YTable } from "./YTable.js";
16
17
  import { createHeader } from "./composables/header.js";
17
18
  import { useItems } from "./composables/items.js";
18
19
  import { useOptions } from "./composables/options.js";
19
- import { createPagination, pressDataTablePaginationProps, providePagination } from "./composables/pagination.js";
20
+ import { createPagination, providePagination } from "./composables/pagination.js";
20
21
  import { provideSelection } from "./composables/selection.js";
21
22
  import { createSorting, provideSorting } from "./composables/sorting.js";
22
23
  export const pressDataTableServerProps = propsFactory({
@@ -24,7 +25,7 @@ export const pressDataTableServerProps = propsFactory({
24
25
  type: [Number, String],
25
26
  required: true
26
27
  },
27
- ...pressDataTablePaginationProps(),
28
+ ...omit(pressYDataTableControlPropsOptions(), ['setPage', 'setPageSize', 'pageLength']),
28
29
  ...pressDataTableProps()
29
30
  }, 'YDataTableServer');
30
31
  export const YDataTableServer = defineComponent({
@@ -178,7 +179,9 @@ export const YDataTableServer = defineComponent({
178
179
  "items": items.value
179
180
  }), slots)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
180
181
  trailing: () => slots.trailing?.(slotProps.value),
181
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : _createVNode(YDataTableControl, null, {
182
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : _createVNode(YDataTableControl, _mergeProps(chooseProps(slotProps.value, YDataTableControl.props), {
183
+ "paginationProps": props.paginationProps
184
+ }), {
182
185
  prepend: slots['control.prepend']
183
186
  })
184
187
  });
@@ -1 +1 @@
1
- {"version":3,"file":"YDataTableServer.js","names":["computed","provide","ref","toRef","Fragment","provideExpand","YDataTableInjectionKey","useRender","useResizeObserver","chooseProps","defineComponent","propsFactory","debounce","toStyleSizeValue","pressDataTableProps","YDataTableBody","YDataTableControl","YDataTableHead","YDataTableLayer","YTable","createHeader","useItems","useOptions","createPagination","pressDataTablePaginationProps","providePagination","provideSelection","createSorting","provideSorting","pressDataTableServerProps","total","type","Number","String","required","YDataTableServer","name","components","props","emits","value","page","pageSize","sortBy","options","expanded","click:row","e","setup","_ref","slots","emit","TableBodyRef","multiSort","parseInt","columns","headers","enableSelect","items","toggleSort","pageLength","setPageSize","setPage","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","pageItems","isExpanded","toggleExpand","headRect","debounceMeasureHead","measureHead","resizeObservedRef","headObserveRef","entries","search","slotProps","contentRect","yDataTableHeadProps","yDataTableBodyProps","yTableProps","_createVNode","_mergeProps","loading","length","hideNoData","height","top","leading","_Fragment","default","thead","tbody","tfoot","trailing","bottom","prepend"],"sources":["../../../src/components/table/YDataTableServer.tsx"],"sourcesContent":["import { type PropType, computed, provide, ref, toRef, Fragment } from 'vue';\n\nimport { provideExpand } from '@/components/table/composables/expand';\nimport { YDataTableInjectionKey } from '@/components/table/composables/provides';\nimport { useRender } from '@/composables/component';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\nimport { debounce } from '@/util/debounce';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { pressDataTableProps } from './YDataTable';\nimport { YDataTableBody } from './YDataTableBody';\nimport { YDataTableControl } from './YDataTableControl';\nimport { YDataTableHead } from './YDataTableHead';\nimport { YDataTableLayer } from './YDataTableLayer';\nimport { YTable } from './YTable';\nimport { createHeader } from './composables/header';\nimport { useItems } from './composables/items';\nimport { useOptions } from './composables/options';\nimport {\n createPagination,\n pressDataTablePaginationProps,\n providePagination,\n} from './composables/pagination';\nimport { provideSelection } from './composables/selection';\nimport { createSorting, provideSorting } from './composables/sorting';\nimport { YDataTableSlotProps } from './types';\n\nexport const pressDataTableServerProps = propsFactory(\n {\n total: {\n type: [Number, String] as PropType<number | string>,\n required: true,\n },\n ...pressDataTablePaginationProps(),\n ...pressDataTableProps(),\n },\n 'YDataTableServer',\n);\n\nexport const YDataTableServer = defineComponent({\n name: 'YDataTableServer',\n components: {\n YTable,\n YDataTableLayer,\n YDataTableHead,\n YDataTableBody,\n YDataTableControl,\n },\n props: {\n ...pressDataTableServerProps(),\n },\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:pageSize': (pageSize: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (expanded: any[]) => true,\n 'click:row': (e: Event, value: { row: any }) => true,\n },\n setup(props, { slots, emit }) {\n const TableBodyRef = ref();\n const { page, pageSize } = createPagination(props);\n const { sortBy, multiSort } = createSorting(props);\n const total = computed(() => parseInt(props.total as string));\n const { columns, headers } = createHeader(props, {\n enableSelect: toRef(props, 'enableSelect'),\n });\n const { items } = useItems(props, columns);\n\n const { toggleSort } = provideSorting({ sortBy, multiSort, page });\n const { pageLength, setPageSize, setPage } = providePagination({\n page,\n pageSize,\n total,\n });\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, pageItems: items });\n const { isExpanded, toggleExpand } = provideExpand(props);\n\n const headRect = ref<DOMRectReadOnly>();\n const debounceMeasureHead = debounce(measureHead, 100);\n const { resizeObservedRef: headObserveRef } = useResizeObserver(\n (entries) => {\n debounceMeasureHead(entries);\n },\n );\n\n useOptions(\n {\n page,\n pageSize,\n search: toRef(props, 'search'),\n sortBy,\n },\n emit,\n );\n\n const slotProps = computed<YDataTableSlotProps>(() => {\n return {\n // pagination\n page: page.value,\n pageSize: pageSize.value,\n pageLength: pageLength.value,\n setPageSize,\n setPage,\n // sorting\n sortBy: sortBy.value,\n toggleSort,\n // expand\n isExpanded,\n toggleExpand,\n // selection\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n // matrix\n items: items.value,\n columns: columns.value,\n headers: headers.value,\n //\n TableBodyRef,\n };\n });\n\n function measureHead(entries: ResizeObserverEntry[]) {\n headRect.value = entries?.[0].contentRect;\n }\n\n provide(YDataTableInjectionKey, {\n toggleSort,\n sortBy,\n headRect,\n });\n\n useRender(() => {\n const yDataTableHeadProps = chooseProps(props, YDataTableHead.props);\n const yDataTableBodyProps = chooseProps(props, YDataTableBody.props);\n const yTableProps = chooseProps(props, YTable.props);\n return (\n <YTable\n class={[\n 'y-data-table',\n {\n 'y-data-table--no-data':\n !props.loading && props.items.length < 1 && !props.hideNoData,\n },\n ]}\n {...yTableProps}\n style={{\n '--y-table-head-height': toStyleSizeValue(headRect.value?.height),\n }}\n >\n {{\n top: () => slots.top?.(slotProps.value),\n leading: () =>\n slots.leading ? (\n slots.leading(slotProps.value)\n ) : (\n <Fragment>\n <YDataTableLayer\n v-slots={slots}\n slotProps={slotProps.value}\n ></YDataTableLayer>\n </Fragment>\n ),\n default: () =>\n slots.default ? (\n slots.default(slotProps.value)\n ) : (\n <Fragment>\n <thead ref={headObserveRef}>\n <YDataTableHead\n v-slots={slots}\n {...yDataTableHeadProps}\n ></YDataTableHead>\n </thead>\n {slots.thead?.(slotProps.value)}\n <tbody>\n <YDataTableBody\n ref={TableBodyRef}\n v-slots={slots}\n {...yDataTableBodyProps}\n items={items.value}\n ></YDataTableBody>\n </tbody>\n {slots.tbody?.(slotProps.value)}\n {slots.tfoot?.(slotProps.value)}\n </Fragment>\n ),\n trailing: () => slots.trailing?.(slotProps.value),\n bottom: () =>\n slots.bottom ? (\n slots.bottom(slotProps.value)\n ) : (\n <YDataTableControl\n v-slots={{\n prepend: slots['control.prepend'],\n }}\n ></YDataTableControl>\n ),\n }}\n </YTable>\n );\n });\n },\n});\n\nexport type YDataTableServer = InstanceType<typeof YDataTableServer>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"YDataTableServer.js","names":["Fragment","computed","provide","ref","toRef","provideExpand","YDataTableInjectionKey","useRender","useResizeObserver","omit","chooseProps","defineComponent","propsFactory","debounce","toStyleSizeValue","pressDataTableProps","YDataTableBody","YDataTableControl","pressYDataTableControlPropsOptions","YDataTableHead","YDataTableLayer","YTable","createHeader","useItems","useOptions","createPagination","providePagination","provideSelection","createSorting","provideSorting","pressDataTableServerProps","total","type","Number","String","required","YDataTableServer","name","components","props","emits","value","page","pageSize","sortBy","options","expanded","click:row","e","setup","_ref","slots","emit","TableBodyRef","multiSort","parseInt","columns","headers","enableSelect","items","toggleSort","pageLength","setPageSize","setPage","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","pageItems","isExpanded","toggleExpand","headRect","debounceMeasureHead","measureHead","resizeObservedRef","headObserveRef","entries","search","slotProps","contentRect","yDataTableHeadProps","yDataTableBodyProps","yTableProps","_createVNode","_mergeProps","loading","length","hideNoData","height","top","leading","_Fragment","default","thead","tbody","tfoot","trailing","bottom","paginationProps","prepend"],"sources":["../../../src/components/table/YDataTableServer.tsx"],"sourcesContent":["import { Fragment, type PropType, computed, provide, ref, toRef } from 'vue';\n\nimport { provideExpand } from '@/components/table/composables/expand';\nimport { YDataTableInjectionKey } from '@/components/table/composables/provides';\nimport { useRender } from '@/composables/component';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { omit } from '@/util/common';\nimport { chooseProps, defineComponent, propsFactory } from '@/util/component';\nimport { debounce } from '@/util/debounce';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { pressDataTableProps } from './YDataTable';\nimport { YDataTableBody } from './YDataTableBody';\nimport {\n YDataTableControl,\n pressYDataTableControlPropsOptions,\n} from './YDataTableControl';\nimport { YDataTableHead } from './YDataTableHead';\nimport { YDataTableLayer } from './YDataTableLayer';\nimport { YTable } from './YTable';\nimport { createHeader } from './composables/header';\nimport { useItems } from './composables/items';\nimport { useOptions } from './composables/options';\nimport { createPagination, providePagination } from './composables/pagination';\nimport { provideSelection } from './composables/selection';\nimport { createSorting, provideSorting } from './composables/sorting';\nimport { YDataTableSlotProps } from './types';\n\nexport const pressDataTableServerProps = propsFactory(\n {\n total: {\n type: [Number, String] as PropType<number | string>,\n required: true,\n },\n ...omit(pressYDataTableControlPropsOptions(), [\n 'setPage',\n 'setPageSize',\n 'pageLength',\n ]),\n ...pressDataTableProps(),\n },\n 'YDataTableServer',\n);\n\nexport const YDataTableServer = defineComponent({\n name: 'YDataTableServer',\n components: {\n YTable,\n YDataTableLayer,\n YDataTableHead,\n YDataTableBody,\n YDataTableControl,\n },\n props: {\n ...pressDataTableServerProps(),\n },\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:pageSize': (pageSize: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (expanded: any[]) => true,\n 'click:row': (e: Event, value: { row: any }) => true,\n },\n setup(props, { slots, emit }) {\n const TableBodyRef = ref();\n const { page, pageSize } = createPagination(props);\n const { sortBy, multiSort } = createSorting(props);\n const total = computed(() => parseInt(props.total as string));\n const { columns, headers } = createHeader(props, {\n enableSelect: toRef(props, 'enableSelect'),\n });\n const { items } = useItems(props, columns);\n\n const { toggleSort } = provideSorting({ sortBy, multiSort, page });\n const { pageLength, setPageSize, setPage } = providePagination({\n page,\n pageSize,\n total,\n });\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, pageItems: items });\n const { isExpanded, toggleExpand } = provideExpand(props);\n\n const headRect = ref<DOMRectReadOnly>();\n const debounceMeasureHead = debounce(measureHead, 100);\n const { resizeObservedRef: headObserveRef } = useResizeObserver(\n (entries) => {\n debounceMeasureHead(entries);\n },\n );\n\n useOptions(\n {\n page,\n pageSize,\n search: toRef(props, 'search'),\n sortBy,\n },\n emit,\n );\n\n const slotProps = computed<YDataTableSlotProps>(() => {\n return {\n // pagination\n page: page.value,\n pageSize: pageSize.value,\n pageLength: pageLength.value,\n setPageSize,\n setPage,\n // sorting\n sortBy: sortBy.value,\n toggleSort,\n // expand\n isExpanded,\n toggleExpand,\n // selection\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n // matrix\n items: items.value,\n columns: columns.value,\n headers: headers.value,\n //\n TableBodyRef,\n };\n });\n\n function measureHead(entries: ResizeObserverEntry[]) {\n headRect.value = entries?.[0].contentRect;\n }\n\n provide(YDataTableInjectionKey, {\n toggleSort,\n sortBy,\n headRect,\n });\n\n useRender(() => {\n const yDataTableHeadProps = chooseProps(props, YDataTableHead.props);\n const yDataTableBodyProps = chooseProps(props, YDataTableBody.props);\n const yTableProps = chooseProps(props, YTable.props);\n return (\n <YTable\n class={[\n 'y-data-table',\n {\n 'y-data-table--no-data':\n !props.loading && props.items.length < 1 && !props.hideNoData,\n },\n ]}\n {...yTableProps}\n style={{\n '--y-table-head-height': toStyleSizeValue(headRect.value?.height),\n }}\n >\n {{\n top: () => slots.top?.(slotProps.value),\n leading: () =>\n slots.leading ? (\n slots.leading(slotProps.value)\n ) : (\n <Fragment>\n <YDataTableLayer\n v-slots={slots}\n slotProps={slotProps.value}\n ></YDataTableLayer>\n </Fragment>\n ),\n default: () =>\n slots.default ? (\n slots.default(slotProps.value)\n ) : (\n <Fragment>\n <thead ref={headObserveRef}>\n <YDataTableHead\n v-slots={slots}\n {...yDataTableHeadProps}\n ></YDataTableHead>\n </thead>\n {slots.thead?.(slotProps.value)}\n <tbody>\n <YDataTableBody\n ref={TableBodyRef}\n v-slots={slots}\n {...yDataTableBodyProps}\n items={items.value}\n ></YDataTableBody>\n </tbody>\n {slots.tbody?.(slotProps.value)}\n {slots.tfoot?.(slotProps.value)}\n </Fragment>\n ),\n trailing: () => slots.trailing?.(slotProps.value),\n bottom: () =>\n slots.bottom ? (\n slots.bottom(slotProps.value)\n ) : (\n <YDataTableControl\n {...chooseProps(slotProps.value, YDataTableControl.props)}\n paginationProps={props.paginationProps}\n v-slots={{\n prepend: slots['control.prepend'],\n }}\n ></YDataTableControl>\n ),\n }}\n </YTable>\n );\n });\n },\n});\n\nexport type YDataTableServer = InstanceType<typeof YDataTableServer>;\n"],"mappings":";AAAA,SAASA,QAAQ,EAAiBC,QAAQ,EAAEC,OAAO,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAEpEC,aAAa;AAAA,SACbC,sBAAsB;AAAA,SACtBC,SAAS;AAAA,SACTC,iBAAiB;AAAA,SACjBC,IAAI;AAAA,SACJC,WAAW,EAAEC,eAAe,EAAEC,YAAY;AAAA,SAC1CC,QAAQ;AAAA,SACRC,gBAAgB;AAAA,SAEhBC,mBAAmB;AAAA,SACnBC,cAAc;AAAA,SAErBC,iBAAiB,EACjBC,kCAAkC;AAAA,SAE3BC,cAAc;AAAA,SACdC,eAAe;AAAA,SACfC,MAAM;AAAA,SACNC,YAAY;AAAA,SACZC,QAAQ;AAAA,SACRC,UAAU;AAAA,SACVC,gBAAgB,EAAEC,iBAAiB;AAAA,SACnCC,gBAAgB;AAAA,SAChBC,aAAa,EAAEC,cAAc;AAGtC,OAAO,MAAMC,yBAAyB,GAAGlB,YAAY,CACnD;EACEmB,KAAK,EAAE;IACLC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAA8B;IACnDC,QAAQ,EAAE;EACZ,CAAC;EACD,GAAG1B,IAAI,CAACS,kCAAkC,CAAC,CAAC,EAAE,CAC5C,SAAS,EACT,aAAa,EACb,YAAY,CACb,CAAC;EACF,GAAGH,mBAAmB,CAAC;AACzB,CAAC,EACD,kBACF,CAAC;AAED,OAAO,MAAMqB,gBAAgB,GAAGzB,eAAe,CAAC;EAC9C0B,IAAI,EAAE,kBAAkB;EACxBC,UAAU,EAAE;IACVjB,MAAM;IACND,eAAe;IACfD,cAAc;IACdH,cAAc;IACdC;EACF,CAAC;EACDsB,KAAK,EAAE;IACL,GAAGT,yBAAyB,CAAC;EAC/B,CAAC;EACDU,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAY,IAAK,IAAI;IAC3C,aAAa,EAAGC,IAAY,IAAK,IAAI;IACrC,iBAAiB,EAAGC,QAAgB,IAAK,IAAI;IAC7C,eAAe,EAAGC,MAAW,IAAK,IAAI;IACtC,gBAAgB,EAAGC,OAAY,IAAK,IAAI;IACxC,iBAAiB,EAAGC,QAAe,IAAK,IAAI;IAC5C,WAAW,EAAEC,CAACC,CAAQ,EAAEP,KAAmB,KAAK;EAClD,CAAC;EACDQ,KAAKA,CAACV,KAAK,EAAAW,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC1B,MAAMG,YAAY,GAAGlD,GAAG,CAAC,CAAC;IAC1B,MAAM;MAAEuC,IAAI;MAAEC;IAAS,CAAC,GAAGlB,gBAAgB,CAACc,KAAK,CAAC;IAClD,MAAM;MAAEK,MAAM;MAAEU;IAAU,CAAC,GAAG1B,aAAa,CAACW,KAAK,CAAC;IAClD,MAAMR,KAAK,GAAG9B,QAAQ,CAAC,MAAMsD,QAAQ,CAAChB,KAAK,CAACR,KAAe,CAAC,CAAC;IAC7D,MAAM;MAAEyB,OAAO;MAAEC;IAAQ,CAAC,GAAGnC,YAAY,CAACiB,KAAK,EAAE;MAC/CmB,YAAY,EAAEtD,KAAK,CAACmC,KAAK,EAAE,cAAc;IAC3C,CAAC,CAAC;IACF,MAAM;MAAEoB;IAAM,CAAC,GAAGpC,QAAQ,CAACgB,KAAK,EAAEiB,OAAO,CAAC;IAE1C,MAAM;MAAEI;IAAW,CAAC,GAAG/B,cAAc,CAAC;MAAEe,MAAM;MAAEU,SAAS;MAAEZ;IAAK,CAAC,CAAC;IAClE,MAAM;MAAEmB,UAAU;MAAEC,WAAW;MAAEC;IAAQ,CAAC,GAAGrC,iBAAiB,CAAC;MAC7DgB,IAAI;MACJC,QAAQ;MACRZ;IACF,CAAC,CAAC;IACF,MAAM;MACJiC,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,YAAY;MACZC,YAAY;MACZC;IACF,CAAC,GAAG1C,gBAAgB,CAACY,KAAK,EAAE;MAAE+B,QAAQ,EAAEX,KAAK;MAAEY,SAAS,EAAEZ;IAAM,CAAC,CAAC;IAClE,MAAM;MAAEa,UAAU;MAAEC;IAAa,CAAC,GAAGpE,aAAa,CAACkC,KAAK,CAAC;IAEzD,MAAMmC,QAAQ,GAAGvE,GAAG,CAAkB,CAAC;IACvC,MAAMwE,mBAAmB,GAAG9D,QAAQ,CAAC+D,WAAW,EAAE,GAAG,CAAC;IACtD,MAAM;MAAEC,iBAAiB,EAAEC;IAAe,CAAC,GAAGtE,iBAAiB,CAC5DuE,OAAO,IAAK;MACXJ,mBAAmB,CAACI,OAAO,CAAC;IAC9B,CACF,CAAC;IAEDvD,UAAU,CACR;MACEkB,IAAI;MACJC,QAAQ;MACRqC,MAAM,EAAE5E,KAAK,CAACmC,KAAK,EAAE,QAAQ,CAAC;MAC9BK;IACF,CAAC,EACDQ,IACF,CAAC;IAED,MAAM6B,SAAS,GAAGhF,QAAQ,CAAsB,MAAM;MACpD,OAAO;QACL;QACAyC,IAAI,EAAEA,IAAI,CAACD,KAAK;QAChBE,QAAQ,EAAEA,QAAQ,CAACF,KAAK;QACxBoB,UAAU,EAAEA,UAAU,CAACpB,KAAK;QAC5BqB,WAAW;QACXC,OAAO;QACP;QACAnB,MAAM,EAAEA,MAAM,CAACH,KAAK;QACpBmB,UAAU;QACV;QACAY,UAAU;QACVC,YAAY;QACZ;QACAL,YAAY,EAAEA,YAAY,CAAC3B,KAAK;QAChC4B,WAAW,EAAEA,WAAW,CAAC5B,KAAK;QAC9BuB,UAAU;QACVC,MAAM;QACNC,SAAS;QACTC,YAAY;QACZ;QACAR,KAAK,EAAEA,KAAK,CAAClB,KAAK;QAClBe,OAAO,EAAEA,OAAO,CAACf,KAAK;QACtBgB,OAAO,EAAEA,OAAO,CAAChB,KAAK;QACtB;QACAY;MACF,CAAC;IACH,CAAC,CAAC;IAEF,SAASuB,WAAWA,CAACG,OAA8B,EAAE;MACnDL,QAAQ,CAACjC,KAAK,GAAGsC,OAAO,GAAG,CAAC,CAAC,CAACG,WAAW;IAC3C;IAEAhF,OAAO,CAACI,sBAAsB,EAAE;MAC9BsD,UAAU;MACVhB,MAAM;MACN8B;IACF,CAAC,CAAC;IAEFnE,SAAS,CAAC,MAAM;MACd,MAAM4E,mBAAmB,GAAGzE,WAAW,CAAC6B,KAAK,EAAEpB,cAAc,CAACoB,KAAK,CAAC;MACpE,MAAM6C,mBAAmB,GAAG1E,WAAW,CAAC6B,KAAK,EAAEvB,cAAc,CAACuB,KAAK,CAAC;MACpE,MAAM8C,WAAW,GAAG3E,WAAW,CAAC6B,KAAK,EAAElB,MAAM,CAACkB,KAAK,CAAC;MACpD,OAAA+C,YAAA,CAAAjE,MAAA,EAAAkE,WAAA;QAAA,SAEW,CACL,cAAc,EACd;UACE,uBAAuB,EACrB,CAAChD,KAAK,CAACiD,OAAO,IAAIjD,KAAK,CAACoB,KAAK,CAAC8B,MAAM,GAAG,CAAC,IAAI,CAAClD,KAAK,CAACmD;QACvD,CAAC;MACF,GACGL,WAAW;QAAA,SACR;UACL,uBAAuB,EAAEvE,gBAAgB,CAAC4D,QAAQ,CAACjC,KAAK,EAAEkD,MAAM;QAClE;MAAC;QAGCC,GAAG,EAAEA,CAAA,KAAMzC,KAAK,CAACyC,GAAG,GAAGX,SAAS,CAACxC,KAAK,CAAC;QACvCoD,OAAO,EAAEA,CAAA,KACP1C,KAAK,CAAC0C,OAAO,GACX1C,KAAK,CAAC0C,OAAO,CAACZ,SAAS,CAACxC,KAAK,CAAC,GAAA6C,YAAA,CAAAQ,SAAA,SAAAR,YAAA,CAAAlE,eAAA;UAAA,aAKf6D,SAAS,CAACxC;QAAK,GADjBU,KAAK,GAInB;QACH4C,OAAO,EAAEA,CAAA,KACP5C,KAAK,CAAC4C,OAAO,GACX5C,KAAK,CAAC4C,OAAO,CAACd,SAAS,CAACxC,KAAK,CAAC,GAAA6C,YAAA,CAAAQ,SAAA,SAAAR,YAAA;UAAA,OAGhBR;QAAc,IAAAQ,YAAA,CAAAnE,cAAA,EAGlBgE,mBAAmB,EADdhC,KAAK,KAIjBA,KAAK,CAAC6C,KAAK,GAAGf,SAAS,CAACxC,KAAK,CAAC,EAAA6C,YAAA,iBAAAA,YAAA,CAAAtE,cAAA,EAAAuE,WAAA;UAAA,OAGtBlC;QAAY,GAEb+B,mBAAmB;UAAA,SAChBzB,KAAK,CAAClB;QAAK,IAFTU,KAAK,KAKjBA,KAAK,CAAC8C,KAAK,GAAGhB,SAAS,CAACxC,KAAK,CAAC,EAC9BU,KAAK,CAAC+C,KAAK,GAAGjB,SAAS,CAACxC,KAAK,CAAC,EAElC;QACH0D,QAAQ,EAAEA,CAAA,KAAMhD,KAAK,CAACgD,QAAQ,GAAGlB,SAAS,CAACxC,KAAK,CAAC;QACjD2D,MAAM,EAAEA,CAAA,KACNjD,KAAK,CAACiD,MAAM,GACVjD,KAAK,CAACiD,MAAM,CAACnB,SAAS,CAACxC,KAAK,CAAC,GAAA6C,YAAA,CAAArE,iBAAA,EAAAsE,WAAA,CAGvB7E,WAAW,CAACuE,SAAS,CAACxC,KAAK,EAAExB,iBAAiB,CAACsB,KAAK,CAAC;UAAA,mBACxCA,KAAK,CAAC8D;QAAe,IAC7B;UACPC,OAAO,EAAEnD,KAAK,CAAC,iBAAiB;QAClC,CAAC;MAEJ;IAIX,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { h } from 'vue';
2
2
  import { defineComponent } from "../../util/component/index.js";
3
+ import { escapeRegExp } from "../../util/string.js";
3
4
  import "./YTextHighlighter.scss";
4
5
  export const YTextHighlighter = defineComponent({
5
6
  name: 'YTextHighlighter',
@@ -26,7 +27,7 @@ export const YTextHighlighter = defineComponent({
26
27
  if (keyword && text) {
27
28
  const split = [];
28
29
  let stack = text;
29
- const keyExp = new RegExp(keyword, this.sensitive ? '' : 'i');
30
+ const keyExp = new RegExp(escapeRegExp(keyword), this.sensitive ? '' : 'i');
30
31
  while (stack.length > 0) {
31
32
  const index = stack.search(keyExp);
32
33
  if (index < 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"YTextHighlighter.js","names":["h","defineComponent","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 { type VNode, h } from 'vue';\r\n\r\nimport { defineComponent } from '@/util/component';\r\n\r\nimport './YTextHighlighter.scss';\r\n\r\nexport const YTextHighlighter = defineComponent({\r\n name: 'YTextHighlighter',\r\n props: {\r\n text: {\r\n type: String,\r\n },\r\n keyword: {\r\n type: String,\r\n },\r\n color: {\r\n type: String,\r\n },\r\n sensitive: {\r\n type: Boolean,\r\n },\r\n },\r\n computed: {\r\n splitText(): { text: string; isKeyword: boolean }[] {\r\n const { keyword, text } = this;\r\n if (keyword && text) {\r\n const split: { text: string; isKeyword: boolean }[] = [];\r\n let stack = text;\r\n const keyExp = new RegExp(keyword, this.sensitive ? '' : 'i');\r\n while (stack.length > 0) {\r\n const index = stack.search(keyExp);\r\n if (index < 0) {\r\n split.push({ text: stack, isKeyword: false });\r\n stack = '';\r\n } else if (index < 1) {\r\n split.push({\r\n text: stack.substring(0, keyword.length),\r\n isKeyword: true,\r\n });\r\n stack = stack.substring(keyword.length, stack.length);\r\n } else {\r\n split.push({ text: stack.substring(0, index), isKeyword: false });\r\n split.push({\r\n text: stack.substring(index, index + keyword.length),\r\n isKeyword: true,\r\n });\r\n stack = stack.substring(index + keyword.length, stack.length);\r\n }\r\n }\r\n return split;\r\n }\r\n return [{ text: this.text || '', isKeyword: false }];\r\n },\r\n },\r\n methods: {\r\n createItem(text: string): VNode {\r\n return h(\r\n 'span',\r\n {\r\n staticClass: 'y-text-highlighter__item',\r\n },\r\n [text],\r\n );\r\n },\r\n createHighlightKeywordItem(text: string): VNode {\r\n return h(\r\n 'span',\r\n {\r\n staticClass: 'y-text-highlighter__item',\r\n class: 'y-text-highlighter__item--highlight',\r\n style: {\r\n backgroundColor: this.color,\r\n },\r\n },\r\n [text],\r\n );\r\n },\r\n createSplitTexts(): VNode[] {\r\n return this.splitText.map((splitItem) => {\r\n if (splitItem.isKeyword) {\r\n return this.createHighlightKeywordItem(splitItem.text);\r\n }\r\n return this.createItem(splitItem.text);\r\n });\r\n },\r\n },\r\n render(): VNode {\r\n const children = this.createSplitTexts();\r\n return h('span', { staticClass: 'y-text-highlighter' }, children);\r\n },\r\n});\r\n\r\nexport type YTextHighlighter = InstanceType<typeof YTextHighlighter>;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"YTextHighlighter.js","names":["h","defineComponent","escapeRegExp","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 { type VNode, h } from 'vue';\n\nimport { defineComponent } from '@/util/component';\nimport { escapeRegExp } from '@/util/string';\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(\n escapeRegExp(keyword),\n this.sensitive ? '' : 'i',\n );\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,SAAqBA,CAAC,QAAQ,KAAK;AAAC,SAE3BC,eAAe;AAAA,SACfC,YAAY;AAErB;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,CACvBhB,YAAY,CAACO,OAAO,CAAC,EACrB,IAAI,CAACE,SAAS,GAAG,EAAE,GAAG,GACxB,CAAC;QACD,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,OAAON,CAAC,CACN,MAAM,EACN;QACE2B,WAAW,EAAE;MACf,CAAC,EACD,CAACrB,IAAI,CACP,CAAC;IACH,CAAC;IACDsB,0BAA0BA,CAACtB,IAAY,EAAS;MAC9C,OAAON,CAAC,CACN,MAAM,EACN;QACE2B,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,OAAOhC,CAAC,CAAC,MAAM,EAAE;MAAE2B,WAAW,EAAE;IAAqB,CAAC,EAAES,QAAQ,CAAC;EACnE;AACF,CAAC,CAAC"}