admins-components 9.0.50 → 9.0.52
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/admins-components.js +35 -33
- package/dist/admins-components100.js +245 -3
- package/dist/admins-components100.js.map +1 -1
- package/dist/admins-components102.js +6 -52
- package/dist/admins-components102.js.map +1 -1
- package/dist/admins-components103.js +3 -82
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components104.js +3 -113
- package/dist/admins-components104.js.map +1 -1
- package/dist/admins-components105.js +49 -44
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components106.js +80 -104
- package/dist/admins-components106.js.map +1 -1
- package/dist/admins-components107.js +109 -16
- package/dist/admins-components107.js.map +1 -1
- package/dist/admins-components108.js +46 -6
- package/dist/admins-components108.js.map +1 -1
- package/dist/admins-components109.js +100 -246
- package/dist/admins-components109.js.map +1 -1
- package/dist/admins-components110.js +19 -26
- package/dist/admins-components110.js.map +1 -1
- package/dist/admins-components111.js +6 -27
- package/dist/admins-components111.js.map +1 -1
- package/dist/admins-components112.js +239 -159
- package/dist/admins-components112.js.map +1 -1
- package/dist/admins-components113.js +26 -67
- package/dist/admins-components113.js.map +1 -1
- package/dist/admins-components114.js +25 -64
- package/dist/admins-components114.js.map +1 -1
- package/dist/admins-components115.js +169 -27
- package/dist/admins-components115.js.map +1 -1
- package/dist/admins-components116.js +65 -13
- package/dist/admins-components116.js.map +1 -1
- package/dist/admins-components117.js +64 -24
- package/dist/admins-components117.js.map +1 -1
- package/dist/admins-components118.js +29 -8
- package/dist/admins-components118.js.map +1 -1
- package/dist/admins-components119.js +16 -4
- package/dist/admins-components119.js.map +1 -1
- package/dist/admins-components120.js +27 -3
- package/dist/admins-components120.js.map +1 -1
- package/dist/admins-components121.js +8 -2
- package/dist/admins-components121.js.map +1 -1
- package/dist/admins-components122.js +4 -21
- package/dist/admins-components122.js.map +1 -1
- package/dist/admins-components123.js +3 -14
- package/dist/admins-components123.js.map +1 -1
- package/dist/admins-components124.js +3 -8
- package/dist/admins-components124.js.map +1 -1
- package/dist/admins-components125.js +19 -11
- package/dist/admins-components125.js.map +1 -1
- package/dist/admins-components126.js +14 -26
- package/dist/admins-components126.js.map +1 -1
- package/dist/admins-components127.js +7 -82
- package/dist/admins-components127.js.map +1 -1
- package/dist/admins-components128.js +9 -7
- package/dist/admins-components128.js.map +1 -1
- package/dist/admins-components129.js +25 -4
- package/dist/admins-components129.js.map +1 -1
- package/dist/admins-components130.js +81 -6
- package/dist/admins-components130.js.map +1 -1
- package/dist/admins-components131.js +10 -6
- package/dist/admins-components131.js.map +1 -1
- package/dist/admins-components132.js +2 -3
- package/dist/admins-components132.js.map +1 -1
- package/dist/admins-components133.js +8 -15
- package/dist/admins-components133.js.map +1 -1
- package/dist/admins-components134.js +6 -12
- package/dist/admins-components134.js.map +1 -1
- package/dist/admins-components135.js +6 -30
- package/dist/admins-components135.js.map +1 -1
- package/dist/admins-components136.js +15 -4
- package/dist/admins-components136.js.map +1 -1
- package/dist/admins-components137.js +13 -29
- package/dist/admins-components137.js.map +1 -1
- package/dist/admins-components138.js +30 -5
- package/dist/admins-components138.js.map +1 -1
- package/dist/admins-components139.js +4 -5
- package/dist/admins-components139.js.map +1 -1
- package/dist/admins-components140.js +28 -7
- package/dist/admins-components140.js.map +1 -1
- package/dist/admins-components141.js +4 -73
- package/dist/admins-components141.js.map +1 -1
- package/dist/admins-components142.js +4 -28
- package/dist/admins-components142.js.map +1 -1
- package/dist/admins-components143.js +8 -59
- package/dist/admins-components143.js.map +1 -1
- package/dist/admins-components144.js +72 -22
- package/dist/admins-components144.js.map +1 -1
- package/dist/admins-components145.js +26 -47
- package/dist/admins-components145.js.map +1 -1
- package/dist/admins-components146.js +58 -30
- package/dist/admins-components146.js.map +1 -1
- package/dist/admins-components147.js +24 -3
- package/dist/admins-components147.js.map +1 -1
- package/dist/admins-components148.js +44 -173
- package/dist/admins-components148.js.map +1 -1
- package/dist/admins-components149.js +28 -43
- package/dist/admins-components149.js.map +1 -1
- package/dist/admins-components150.js +3 -37
- package/dist/admins-components150.js.map +1 -1
- package/dist/admins-components151.js +176 -43
- package/dist/admins-components151.js.map +1 -1
- package/dist/admins-components152.js +41 -136
- package/dist/admins-components152.js.map +1 -1
- package/dist/admins-components153.js +36 -57
- package/dist/admins-components153.js.map +1 -1
- package/dist/admins-components154.js +44 -5
- package/dist/admins-components154.js.map +1 -1
- package/dist/admins-components155.js +141 -6
- package/dist/admins-components155.js.map +1 -1
- package/dist/admins-components156.js +57 -75
- package/dist/admins-components156.js.map +1 -1
- package/dist/admins-components157.js +6 -28
- package/dist/admins-components157.js.map +1 -1
- package/dist/admins-components158.js +5 -1930
- package/dist/admins-components158.js.map +1 -1
- package/dist/admins-components159.js +75 -24810
- package/dist/admins-components159.js.map +1 -1
- package/dist/admins-components16.js +4 -3
- package/dist/admins-components16.js.map +1 -1
- package/dist/admins-components160.js +28 -8
- package/dist/admins-components160.js.map +1 -1
- package/dist/admins-components161.js +1929 -5
- package/dist/admins-components161.js.map +1 -0
- package/dist/admins-components162.js +24809 -140
- package/dist/admins-components162.js.map +1 -1
- package/dist/admins-components163.js +3 -3
- package/dist/admins-components163.js.map +1 -1
- package/dist/admins-components164.js +7 -9
- package/dist/admins-components165.js +143 -0
- package/dist/admins-components165.js.map +1 -0
- package/dist/admins-components166.js +8 -167
- package/dist/admins-components166.js.map +1 -1
- package/dist/admins-components167.js +8 -50
- package/dist/admins-components167.js.map +1 -1
- package/dist/admins-components169.js +161 -43
- package/dist/admins-components169.js.map +1 -1
- package/dist/admins-components17.js.map +1 -1
- package/dist/admins-components170.js +51 -6
- package/dist/admins-components170.js.map +1 -1
- package/dist/admins-components171.js +8 -79
- package/dist/admins-components171.js.map +1 -1
- package/dist/admins-components172.js +35 -43
- package/dist/admins-components172.js.map +1 -1
- package/dist/admins-components173.js +6 -59
- package/dist/admins-components173.js.map +1 -1
- package/dist/admins-components174.js +79 -8
- package/dist/admins-components174.js.map +1 -1
- package/dist/admins-components175.js +43 -37
- package/dist/admins-components175.js.map +1 -1
- package/dist/admins-components176.js +58 -8
- package/dist/admins-components176.js.map +1 -1
- package/dist/admins-components177.js +10 -0
- package/dist/admins-components177.js.map +1 -0
- package/dist/admins-components178.js +44 -50
- package/dist/admins-components178.js.map +1 -1
- package/dist/admins-components179.js +10 -0
- package/dist/admins-components179.js.map +1 -0
- package/dist/admins-components181.js +59 -0
- package/dist/admins-components181.js.map +1 -0
- package/dist/admins-components5.js +30 -28
- package/dist/admins-components5.js.map +1 -1
- package/dist/admins-components58.js.map +1 -1
- package/dist/admins-components6.js.map +1 -1
- package/dist/admins-components60.js +1 -1
- package/dist/admins-components60.js.map +1 -1
- package/dist/admins-components65.js +66 -42
- package/dist/admins-components65.js.map +1 -1
- package/dist/admins-components67.js.map +1 -1
- package/dist/admins-components68.js +102 -95
- package/dist/admins-components68.js.map +1 -1
- package/dist/admins-components70.js.map +1 -1
- package/dist/admins-components72.js +135 -126
- package/dist/admins-components72.js.map +1 -1
- package/dist/admins-components74.js.map +1 -1
- package/dist/admins-components76.js +32 -122
- package/dist/admins-components76.js.map +1 -1
- package/dist/admins-components77.js +146 -0
- package/dist/admins-components77.js.map +1 -0
- package/dist/admins-components79.js +6 -59
- package/dist/admins-components79.js.map +1 -1
- package/dist/admins-components80.js +140 -67
- package/dist/admins-components80.js.map +1 -1
- package/dist/admins-components82.js +7 -0
- package/dist/admins-components82.js.map +1 -0
- package/dist/admins-components83.js +59 -6
- package/dist/admins-components83.js.map +1 -1
- package/dist/admins-components84.js +66 -229
- package/dist/admins-components84.js.map +1 -1
- package/dist/{admins-components81.js → admins-components85.js} +2 -2
- package/dist/{admins-components81.js.map → admins-components85.js.map} +1 -1
- package/dist/admins-components87.js +6 -37
- package/dist/admins-components87.js.map +1 -1
- package/dist/admins-components88.js +231 -0
- package/dist/admins-components88.js.map +1 -0
- package/dist/admins-components90.js +6 -199
- package/dist/admins-components90.js.map +1 -1
- package/dist/admins-components91.js +38 -0
- package/dist/{admins-components89.js.map → admins-components91.js.map} +1 -1
- package/dist/admins-components93.js +6 -16
- package/dist/admins-components93.js.map +1 -1
- package/dist/admins-components94.js +188 -64
- package/dist/admins-components94.js.map +1 -1
- package/dist/admins-components96.js +2 -2
- package/dist/admins-components96.js.map +1 -1
- package/dist/admins-components97.js +76 -198
- package/dist/admins-components97.js.map +1 -1
- package/dist/admins-components99.js +2 -2
- package/dist/admins-components99.js.map +1 -1
- package/dist/main.css +1 -1
- package/dist/main.css.map +1 -1
- package/dist/src/components/TextInput.vue.d.ts +2 -0
- package/dist/src/components/data-table/DataList.vue.d.ts +12 -3
- package/dist/src/components/data-table/DataPaginator.vue.d.ts +5 -1
- package/dist/src/components/data-table/DataSearch.vue.d.ts +9 -0
- package/dist/src/components/data-table/DataSort.vue.d.ts +51 -0
- package/dist/src/components/data-table/DataTable.vue.d.ts +12 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-sort.scss_vue_type_style_index_0_src_true_lang.css +1 -0
- package/dist/src/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/types/data-list.d.ts +1 -0
- package/dist/src/utils/url.d.ts +21 -0
- package/package.json +1 -1
- package/dist/admins-components101.js +0 -4
- package/dist/admins-components101.js.map +0 -1
- package/dist/admins-components164.js.map +0 -1
- package/dist/admins-components168.js +0 -10
- package/dist/admins-components168.js.map +0 -1
- package/dist/admins-components78.js +0 -7
- package/dist/admins-components78.js.map +0 -1
- package/dist/admins-components86.js +0 -7
- package/dist/admins-components86.js.map +0 -1
- package/dist/admins-components89.js +0 -7
- package/dist/admins-components92.js +0 -7
- package/dist/admins-components92.js.map +0 -1
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import { sizeToClass as e, typeToClass as t } from "./admins-components4.js";
|
|
2
|
-
import { computed as n, createCommentVNode as r, createElementBlock as i,
|
|
2
|
+
import { computed as n, createCommentVNode as r, createElementBlock as i, defineComponent as a, mergeDefaults as o, normalizeClass as s, openBlock as c, toDisplayString as l } from "vue";
|
|
3
3
|
//#region src/components/Button.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
-
var
|
|
4
|
+
var u = [
|
|
5
5
|
"aria-label",
|
|
6
6
|
"title",
|
|
7
7
|
"disabled"
|
|
8
|
-
],
|
|
9
|
-
key: 0,
|
|
10
|
-
class: "c-btn-indicator"
|
|
11
|
-
}, m = {
|
|
8
|
+
], d = { key: 1 }, f = ["aria-label"], p = {
|
|
12
9
|
size: "normal",
|
|
13
10
|
type: "normal",
|
|
14
11
|
outline: !1,
|
|
15
12
|
icon: void 0,
|
|
16
13
|
iconPosition: "left",
|
|
17
14
|
labelAlignmentFix: !1
|
|
18
|
-
},
|
|
15
|
+
}, m = /* @__PURE__ */ a({
|
|
19
16
|
__name: "Button",
|
|
20
|
-
props: /* @__PURE__ */
|
|
17
|
+
props: /* @__PURE__ */ o({
|
|
21
18
|
size: {},
|
|
22
19
|
type: {},
|
|
23
20
|
outline: { type: Boolean },
|
|
@@ -29,33 +26,38 @@ var d = [
|
|
|
29
26
|
disabled: { type: [Boolean, Function] },
|
|
30
27
|
indicator: {},
|
|
31
28
|
labelAlignmentFix: { type: Boolean }
|
|
32
|
-
}, { ...
|
|
33
|
-
setup(
|
|
34
|
-
let
|
|
29
|
+
}, { ...p }),
|
|
30
|
+
setup(a) {
|
|
31
|
+
let o = a, p = n(() => [
|
|
35
32
|
"c-btn",
|
|
36
|
-
e(
|
|
37
|
-
|
|
38
|
-
t(
|
|
39
|
-
]),
|
|
40
|
-
return (e, t) => (
|
|
33
|
+
e(o.size, "c-btn"),
|
|
34
|
+
o.outline && "c-btn-outline",
|
|
35
|
+
t(o.type, "c-btn")
|
|
36
|
+
]), m = n(() => o.disabled === void 0 || o.disabled === null ? !1 : typeof o.disabled == "function" ? o.disabled() : o.disabled);
|
|
37
|
+
return (e, t) => (c(), i("button", {
|
|
41
38
|
type: "button",
|
|
42
|
-
class:
|
|
43
|
-
"aria-label":
|
|
44
|
-
title:
|
|
45
|
-
onClick: t[0] ||= (e) =>
|
|
46
|
-
disabled:
|
|
39
|
+
class: s(p.value),
|
|
40
|
+
"aria-label": a.ariaLabel ?? a.label,
|
|
41
|
+
title: a.ariaLabel ?? a.label,
|
|
42
|
+
onClick: t[0] ||= (e) => a.callback?.(),
|
|
43
|
+
disabled: m.value
|
|
47
44
|
}, [
|
|
48
|
-
|
|
45
|
+
a.icon && a.iconPosition === "left" ? (c(), i("i", {
|
|
49
46
|
key: 0,
|
|
50
|
-
class:
|
|
47
|
+
class: s(a.icon)
|
|
51
48
|
}, null, 2)) : r("", !0),
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
a.label ? (c(), i("span", d, l(a.label), 1)) : r("", !0),
|
|
50
|
+
a.indicator != null && a.indicator !== "" ? (c(), i("span", {
|
|
54
51
|
key: 2,
|
|
55
|
-
class: c
|
|
52
|
+
class: "c-btn-indicator",
|
|
53
|
+
"aria-label": `${a.indicator}`
|
|
54
|
+
}, l(a.indicator), 9, f)) : r("", !0),
|
|
55
|
+
a.icon && a.iconPosition === "right" ? (c(), i("i", {
|
|
56
|
+
key: 3,
|
|
57
|
+
class: s(a.icon)
|
|
56
58
|
}, null, 2)) : r("", !0)
|
|
57
|
-
], 10,
|
|
59
|
+
], 10, u));
|
|
58
60
|
}
|
|
59
61
|
});
|
|
60
62
|
//#endregion
|
|
61
|
-
export {
|
|
63
|
+
export { p as buttonDefaults, m as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components5.js","names":[],"sources":["../src/components/Button.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type ButtonType = 'normal' | 'dark' | 'success' | 'error' | 'warning' | 'info'\n\nexport type IconPosition = 'left' | 'right'\n\nexport interface ButtonProps {\n size?: ControlSize\n type?: ButtonType\n outline?: boolean\n icon?: string\n iconPosition?: IconPosition\n label?: string\n ariaLabel?: string\n callback?: () => void\n disabled?: boolean | (() => boolean)\n indicator?: string | number\n labelAlignmentFix?: boolean\n}\n\nexport const buttonDefaults = {\n size: 'normal' as ControlSize,\n type: 'normal' as ButtonType,\n outline: false,\n icon: undefined,\n iconPosition: 'left' as IconPosition,\n labelAlignmentFix: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport type { ControlSize } from '@/types/types'\nimport { sizeToClass, typeToClass } from '@/utils/dom'\nimport { computed } from 'vue'\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n ...buttonDefaults,\n})\n\nconst classes = computed(() => [\n 'c-btn',\n sizeToClass(props.size, 'c-btn'),\n props.outline && 'c-btn-outline',\n typeToClass(props.type, 'c-btn'),\n])\n\nconst isDisabled = computed(() => {\n if (props.disabled === undefined || props.disabled === null) return false\n return typeof props.disabled === 'function' ? props.disabled() : props.disabled\n})\n</script>\n\n<template>\n <button\n type=\"button\"\n :class=\"classes\"\n :aria-label=\"ariaLabel ?? label\"\n :title=\"ariaLabel ?? label\"\n @click=\"callback?.()\"\n :disabled=\"isDisabled\"\n >\n <i v-if=\"icon && iconPosition === 'left'\" :class=\"icon\"></i>\n
|
|
1
|
+
{"version":3,"file":"admins-components5.js","names":[],"sources":["../src/components/Button.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type ButtonType = 'normal' | 'dark' | 'success' | 'error' | 'warning' | 'info'\n\nexport type IconPosition = 'left' | 'right'\n\nexport interface ButtonProps {\n size?: ControlSize\n type?: ButtonType\n outline?: boolean\n icon?: string\n iconPosition?: IconPosition\n label?: string\n ariaLabel?: string\n callback?: () => void\n disabled?: boolean | (() => boolean)\n indicator?: string | number\n labelAlignmentFix?: boolean\n}\n\nexport const buttonDefaults = {\n size: 'normal' as ControlSize,\n type: 'normal' as ButtonType,\n outline: false,\n icon: undefined,\n iconPosition: 'left' as IconPosition,\n labelAlignmentFix: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport type { ControlSize } from '@/types/types'\nimport { sizeToClass, typeToClass } from '@/utils/dom'\nimport { computed } from 'vue'\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n ...buttonDefaults,\n})\n\nconst classes = computed(() => [\n 'c-btn',\n sizeToClass(props.size, 'c-btn'),\n props.outline && 'c-btn-outline',\n typeToClass(props.type, 'c-btn'),\n])\n\nconst isDisabled = computed(() => {\n if (props.disabled === undefined || props.disabled === null) return false\n return typeof props.disabled === 'function' ? props.disabled() : props.disabled\n})\n</script>\n\n<template>\n <button\n type=\"button\"\n :class=\"classes\"\n :aria-label=\"ariaLabel ?? label\"\n :title=\"ariaLabel ?? label\"\n @click=\"callback?.()\"\n :disabled=\"isDisabled\"\n >\n <i v-if=\"icon && iconPosition === 'left'\" :class=\"icon\"></i>\n <span v-if=\"label\">{{ label }}</span>\n <span\n v-if=\"indicator != null && indicator !== ''\"\n class=\"c-btn-indicator\"\n :aria-label=\"`${indicator}`\"\n >\n {{ indicator }}\n </span>\n <i v-if=\"icon && iconPosition === 'right'\" :class=\"icon\"></i>\n </button>\n</template>\n"],"mappings":";;;;;;;uCAmBa,IAAiB;CAC5B,MAAM;CACN,MAAM;CACN,SAAS;CACT,MAAM,KAAA;CACN,cAAc;CACd,mBAAmB;AACrB;;;;;;;;;;;;;;;;EAQA,IAAM,IAAQ,GAIR,IAAU,QAAe;GAC7B;GACA,EAAY,EAAM,MAAM,OAAO;GAC/B,EAAM,WAAW;GACjB,EAAY,EAAM,MAAM,OAAO;EACjC,CAAC,GAEK,IAAa,QACb,EAAM,aAAa,KAAA,KAAa,EAAM,aAAa,OAAa,KAC7D,OAAO,EAAM,YAAa,aAAa,EAAM,SAAS,IAAI,EAAM,QACxE;yBAIC,EAkBS,UAAA;GAjBP,MAAK;GACJ,OAAK,EAAE,EAAA,KAAO;GACd,cAAY,EAAA,aAAa,EAAA;GACzB,OAAO,EAAA,aAAa,EAAA;GACpB,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,WAAQ;GACf,UAAU,EAAA;;GAEF,EAAA,QAAQ,EAAA,iBAAY,UAAA,EAAA,GAA7B,EAA4D,KAAA;;IAAjB,OAAK,EAAE,EAAA,IAAI;;GAC1C,EAAA,SAAA,EAAA,GAAZ,EAAqC,QAAA,GAAA,EAAf,EAAA,KAAK,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAEnB,EAAA,aAAS,QAAY,EAAA,cAAS,MAAA,EAAA,GADtC,EAMO,QAAA;;IAJL,OAAM;IACL,cAAU,GAAK,EAAA;QAEb,EAAA,SAAS,GAAA,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAEL,EAAA,QAAQ,EAAA,iBAAY,WAAA,EAAA,GAA7B,EAA6D,KAAA;;IAAjB,OAAK,EAAE,EAAA,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components58.js","names":[],"sources":["../src/types/data-list.ts"],"sourcesContent":["import type { DropdownOption } from '@/components/DropdownSelect.vue'\nimport type { PickedDate, PickedUtcRange } from '@/types/types'\nimport type { ButtonType } from '@/components/Button.vue'\nimport type { ConfirmModalProps } from '@/components/ConfirmModal.vue'\n\nexport type FilterValue = string | PickedDate | PickedUtcRange | string[] | null | undefined\n\nexport interface FilterConfig {\n type: 'text' | 'date' | 'date-range' | 'select' | 'multi-select'\n key: string\n placeholder?: string\n options?: DropdownOption[]\n}\n\nexport type LayoutMode = 'table' | 'cards' | 'screen'\n\nexport interface DataTableSettings {\n striped: boolean\n compact: boolean\n}\n\nexport interface DataCardsSettings {\n compact: boolean\n}\n\nexport interface DataListSettings extends DataTableSettings, DataCardsSettings {\n layout: LayoutMode\n columns: Record<string, boolean>\n cardHeaderColumns: Record<string, boolean>\n columnOrder: string[]\n cardHeaderOrder: string[]\n}\n\nexport interface PageSettings {\n page: number\n pageSize: number\n}\n\nexport interface PaginatorSettings extends PageSettings {\n total: number\n}\n\nexport interface DataListConfig {\n selectableAttr?: string\n columns: Column[]\n\n actions?: Array<Action | ActionGroup>\n actionHeader?: string\n}\n\nexport type ColumnType = 'normal' | 'uuid' | 'date' | 'datetime'\n\nexport interface Column {\n visible?: boolean\n primary?: boolean\n label: string\n property: string\n sort?: Sort\n type?: ColumnType\n class?: string\n headerClass?: string\n hideCopyToClipboard?: boolean\n hideHeader?: boolean\n\n converter?: ((v: any, item: any) => any)\n loading?: (() => boolean)\n}\n\nexport type SortDirection = 'asc' | 'desc' | null\n\nexport interface Sort {\n label: string\n callback: (property: string, direction: SortDirection) => any\n}\n\nexport interface Action {\n icon: string\n label?: string\n ariaLabel?: string\n cardLabel?: string\n type?: ButtonType\n config?: Record<string, any>\n disabled?: (item: any) => boolean\n callback: (item: any) => any\n withConfirm?: boolean\n withConfirmConfig?: (item: any) => ConfirmModalProps\n}\n\nexport interface ActionGroup {\n isGroup: true\n icon?: string\n label?: string\n ariaLabel?: string\n cardLabel?: string\n config?: Record<string, any>\n items: Action[]\n disabled?: (item: any) => boolean\n}\n\nexport const dataTableSettingsDefaults: DataTableSettings = {\n striped: true,\n compact: false,\n}\n\nexport const dataCardsSettingsDefaults: DataCardsSettings = {\n compact: false,\n}\n\nexport const dataListSettingsDefaults: Partial<DataListSettings> = {\n layout: 'screen',\n compact: false,\n}\n"],"mappings":";
|
|
1
|
+
{"version":3,"file":"admins-components58.js","names":[],"sources":["../src/types/data-list.ts"],"sourcesContent":["import type { DropdownOption } from '@/components/DropdownSelect.vue'\nimport type { PickedDate, PickedUtcRange } from '@/types/types'\nimport type { ButtonType } from '@/components/Button.vue'\nimport type { ConfirmModalProps } from '@/components/ConfirmModal.vue'\n\nexport type FilterValue = string | PickedDate | PickedUtcRange | string[] | null | undefined\n\nexport interface FilterConfig {\n type: 'text' | 'date' | 'date-range' | 'select' | 'multi-select'\n key: string\n placeholder?: string\n options?: DropdownOption[]\n}\n\nexport type LayoutMode = 'table' | 'cards' | 'screen'\n\nexport interface DataTableSettings {\n striped: boolean\n compact: boolean\n}\n\nexport interface DataCardsSettings {\n compact: boolean\n}\n\nexport interface DataListSettings extends DataTableSettings, DataCardsSettings {\n layout: LayoutMode\n columns: Record<string, boolean>\n cardHeaderColumns: Record<string, boolean>\n columnOrder: string[]\n cardHeaderOrder: string[]\n}\n\nexport interface PageSettings {\n page: number\n pageSize: number\n}\n\nexport interface PaginatorSettings extends PageSettings {\n total: number\n}\n\nexport interface DataListConfig {\n selectableAttr?: string\n columns: Column[]\n\n actions?: Array<Action | ActionGroup>\n actionHeader?: string\n}\n\nexport type ColumnType = 'normal' | 'uuid' | 'date' | 'datetime'\n\nexport interface Column {\n visible?: boolean\n primary?: boolean\n hideable?: boolean\n label: string\n property: string\n sort?: Sort\n type?: ColumnType\n class?: string\n headerClass?: string\n hideCopyToClipboard?: boolean\n hideHeader?: boolean\n\n converter?: ((v: any, item: any) => any)\n loading?: (() => boolean)\n}\n\nexport type SortDirection = 'asc' | 'desc' | null\n\nexport interface Sort {\n label: string\n callback: (property: string, direction: SortDirection) => any\n}\n\nexport interface Action {\n icon: string\n label?: string\n ariaLabel?: string\n cardLabel?: string\n type?: ButtonType\n config?: Record<string, any>\n disabled?: (item: any) => boolean\n callback: (item: any) => any\n withConfirm?: boolean\n withConfirmConfig?: (item: any) => ConfirmModalProps\n}\n\nexport interface ActionGroup {\n isGroup: true\n icon?: string\n label?: string\n ariaLabel?: string\n cardLabel?: string\n config?: Record<string, any>\n items: Action[]\n disabled?: (item: any) => boolean\n}\n\nexport const dataTableSettingsDefaults: DataTableSettings = {\n striped: true,\n compact: false,\n}\n\nexport const dataCardsSettingsDefaults: DataCardsSettings = {\n compact: false,\n}\n\nexport const dataListSettingsDefaults: Partial<DataListSettings> = {\n layout: 'screen',\n compact: false,\n}\n"],"mappings":";AAoGA,IAAa,IAA+C;CAC1D,SAAS;CACT,SAAS;AACX,GAEa,IAA+C,EAC1D,SAAS,GACX,GAEa,IAAsD;CACjE,QAAQ;CACR,SAAS;AACX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components6.js","names":[],"sources":["../src/components/Button.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type ButtonType = 'normal' | 'dark' | 'success' | 'error' | 'warning' | 'info'\n\nexport type IconPosition = 'left' | 'right'\n\nexport interface ButtonProps {\n size?: ControlSize\n type?: ButtonType\n outline?: boolean\n icon?: string\n iconPosition?: IconPosition\n label?: string\n ariaLabel?: string\n callback?: () => void\n disabled?: boolean | (() => boolean)\n indicator?: string | number\n labelAlignmentFix?: boolean\n}\n\nexport const buttonDefaults = {\n size: 'normal' as ControlSize,\n type: 'normal' as ButtonType,\n outline: false,\n icon: undefined,\n iconPosition: 'left' as IconPosition,\n labelAlignmentFix: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport type { ControlSize } from '@/types/types'\nimport { sizeToClass, typeToClass } from '@/utils/dom'\nimport { computed } from 'vue'\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n ...buttonDefaults,\n})\n\nconst classes = computed(() => [\n 'c-btn',\n sizeToClass(props.size, 'c-btn'),\n props.outline && 'c-btn-outline',\n typeToClass(props.type, 'c-btn'),\n])\n\nconst isDisabled = computed(() => {\n if (props.disabled === undefined || props.disabled === null) return false\n return typeof props.disabled === 'function' ? props.disabled() : props.disabled\n})\n</script>\n\n<template>\n <button\n type=\"button\"\n :class=\"classes\"\n :aria-label=\"ariaLabel ?? label\"\n :title=\"ariaLabel ?? label\"\n @click=\"callback?.()\"\n :disabled=\"isDisabled\"\n >\n <i v-if=\"icon && iconPosition === 'left'\" :class=\"icon\"></i>\n
|
|
1
|
+
{"version":3,"file":"admins-components6.js","names":[],"sources":["../src/components/Button.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type ButtonType = 'normal' | 'dark' | 'success' | 'error' | 'warning' | 'info'\n\nexport type IconPosition = 'left' | 'right'\n\nexport interface ButtonProps {\n size?: ControlSize\n type?: ButtonType\n outline?: boolean\n icon?: string\n iconPosition?: IconPosition\n label?: string\n ariaLabel?: string\n callback?: () => void\n disabled?: boolean | (() => boolean)\n indicator?: string | number\n labelAlignmentFix?: boolean\n}\n\nexport const buttonDefaults = {\n size: 'normal' as ControlSize,\n type: 'normal' as ButtonType,\n outline: false,\n icon: undefined,\n iconPosition: 'left' as IconPosition,\n labelAlignmentFix: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport type { ControlSize } from '@/types/types'\nimport { sizeToClass, typeToClass } from '@/utils/dom'\nimport { computed } from 'vue'\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n ...buttonDefaults,\n})\n\nconst classes = computed(() => [\n 'c-btn',\n sizeToClass(props.size, 'c-btn'),\n props.outline && 'c-btn-outline',\n typeToClass(props.type, 'c-btn'),\n])\n\nconst isDisabled = computed(() => {\n if (props.disabled === undefined || props.disabled === null) return false\n return typeof props.disabled === 'function' ? props.disabled() : props.disabled\n})\n</script>\n\n<template>\n <button\n type=\"button\"\n :class=\"classes\"\n :aria-label=\"ariaLabel ?? label\"\n :title=\"ariaLabel ?? label\"\n @click=\"callback?.()\"\n :disabled=\"isDisabled\"\n >\n <i v-if=\"icon && iconPosition === 'left'\" :class=\"icon\"></i>\n <span v-if=\"label\">{{ label }}</span>\n <span\n v-if=\"indicator != null && indicator !== ''\"\n class=\"c-btn-indicator\"\n :aria-label=\"`${indicator}`\"\n >\n {{ indicator }}\n </span>\n <i v-if=\"icon && iconPosition === 'right'\" :class=\"icon\"></i>\n </button>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components60.js","names":[],"sources":["../src/utils/dataListConverters.ts"],"sourcesContent":["import { castToDate, formatDate } from '@/utils/date'\n\ntype Converter = (value: unknown, item?: unknown) => unknown\n
|
|
1
|
+
{"version":3,"file":"admins-components60.js","names":[],"sources":["../src/utils/dataListConverters.ts"],"sourcesContent":["import { castToDate, formatDate } from '@/utils/date'\n\ntype Converter = (value: unknown, item?: unknown) => unknown\n\nexport function utcToLocalString(time = false, format?: string): Converter {\n return (value) => {\n const d = castToDate(value)\n if (!d) return ''\n if (format) return formatDate(d, format)\n if (time) return formatDate(d, 'YYYY-MM-DD HH:mm')\n return formatDate(d, 'YYYY-MM-DD');\n }\n}\nexport function shortUuid(length = 3): Converter {\n return (value) => {\n if (!value) return ''\n const s = typeof value === 'string' ? value : String(value)\n return `${s.slice(0, length)}...${s.slice(-length)}`\n }\n}\n\nexport function localToLocalString(format = 'YYYY-MM-DD'): Converter {\n return (value) => {\n const d = castToDate(value)\n return d ? formatDate(d, format) : ''\n }\n}\n\nexport function textEllipse(max = 60, suffix = '…'): Converter {\n return (value) => {\n const s = typeof value === 'string' ? value : value == null ? '' : String(value)\n if (s.length <= max) return s\n return s.slice(0, max).trimEnd() + suffix\n }\n}\n\nexport function booleanToString(trueLabel = 'Igen', falseLabel = 'Nem', fallback = ''): Converter {\n return (value) => {\n if (value === true) return trueLabel\n if (value === false) return falseLabel\n return fallback\n }\n}\n\nexport function enumMap<T = unknown>(map: Record<string, T>, fallback?: T): Converter {\n return (value) => {\n if (value == null) return fallback ?? ''\n const key = String(value)\n return key in map ? map[key] : (fallback ?? value)\n }\n}\n\nexport function formatNumber(decimals = 0, locale = 'hu-HU'): Converter {\n return (value) => {\n const n = typeof value === 'number' ? value : Number(value)\n if (!Number.isFinite(n)) return value\n return n.toLocaleString(locale, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n })\n }\n}\n\nexport function formatCurrency(currencyCode = 'HUF', locale = 'hu-HU', decimals = 0): Converter {\n return (value) => {\n const n = typeof value === 'number' ? value : Number(value)\n if (!Number.isFinite(n)) return value\n return n.toLocaleString(locale, {\n style: 'currency',\n currency: currencyCode,\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n })\n }\n}\n\nexport function listToString(separator = ', '): Converter {\n return (value) => {\n if (Array.isArray(value)) return value.map(String).join(separator)\n if (value == null) return ''\n return String(value)\n }\n}\n\nexport const identity: Converter = (value) => value\n\nexport const dataListConverters = {\n utcToLocalString,\n localToLocalString,\n shortUuid,\n textEllipse,\n booleanToString,\n enumMap,\n formatNumber,\n formatCurrency,\n listToString,\n identity,\n} as const\n"],"mappings":";;AAIA,SAAgB,EAAiB,IAAO,IAAO,GAA4B;CACzE,QAAQ,MAAU;EAChB,IAAM,IAAI,EAAW,CAAK;EAI1B,OAHK,IACD,IAAe,EAAW,GAAG,CAAM,IACnC,IAAa,EAAW,GAAG,kBAAkB,IAC1C,EAAW,GAAG,YAAY,IAHlB;CAIjB;AACF;AACA,SAAgB,EAAU,IAAS,GAAc;CAC/C,QAAQ,MAAU;EAChB,IAAI,CAAC,GAAO,OAAO;EACnB,IAAM,IAAI,OAAO,KAAU,WAAW,IAAQ,OAAO,CAAK;EAC1D,OAAO,GAAG,EAAE,MAAM,GAAG,CAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAM;CACnD;AACF;AAEA,SAAgB,EAAmB,IAAS,cAAyB;CACnE,QAAQ,MAAU;EAChB,IAAM,IAAI,EAAW,CAAK;EAC1B,OAAO,IAAI,EAAW,GAAG,CAAM,IAAI;CACrC;AACF;AAEA,SAAgB,EAAY,IAAM,IAAI,IAAS,KAAgB;CAC7D,QAAQ,MAAU;EAChB,IAAM,IAAI,OAAO,KAAU,WAAW,IAAQ,KAAS,OAAO,KAAK,OAAO,CAAK;EAE/E,OADI,EAAE,UAAU,IAAY,IACrB,EAAE,MAAM,GAAG,CAAG,EAAE,QAAQ,IAAI;CACrC;AACF;AAEA,SAAgB,EAAgB,IAAY,QAAQ,IAAa,OAAO,IAAW,IAAe;CAChG,QAAQ,MACF,MAAU,KAAa,IACvB,MAAU,KAAc,IACrB;AAEX;AAEA,SAAgB,EAAqB,GAAwB,GAAyB;CACpF,QAAQ,MAAU;EAChB,IAAI,KAAS,MAAM,OAAO,KAAY;EACtC,IAAM,IAAM,OAAO,CAAK;EACxB,OAAO,KAAO,IAAM,EAAI,KAAQ,KAAY;CAC9C;AACF;AAEA,SAAgB,EAAa,IAAW,GAAG,IAAS,SAAoB;CACtE,QAAQ,MAAU;EAChB,IAAM,IAAI,OAAO,KAAU,WAAW,IAAQ,OAAO,CAAK;EAE1D,OADK,OAAO,SAAS,CAAC,IACf,EAAE,eAAe,GAAQ;GAC9B,uBAAuB;GACvB,uBAAuB;EACzB,CAAC,IAJ+B;CAKlC;AACF;AAEA,SAAgB,EAAe,IAAe,OAAO,IAAS,SAAS,IAAW,GAAc;CAC9F,QAAQ,MAAU;EAChB,IAAM,IAAI,OAAO,KAAU,WAAW,IAAQ,OAAO,CAAK;EAE1D,OADK,OAAO,SAAS,CAAC,IACf,EAAE,eAAe,GAAQ;GAC9B,OAAO;GACP,UAAU;GACV,uBAAuB;GACvB,uBAAuB;EACzB,CAAC,IAN+B;CAOlC;AACF;AAEA,SAAgB,EAAa,IAAY,MAAiB;CACxD,QAAQ,MACF,MAAM,QAAQ,CAAK,IAAU,EAAM,IAAI,MAAM,EAAE,KAAK,CAAS,IAC7D,KAAS,OAAa,KACnB,OAAO,CAAK;AAEvB;AAEA,IAAa,KAAuB,MAAU,GAEjC,IAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -4,19 +4,19 @@ import { useSelection as n } from "./admins-components57.js";
|
|
|
4
4
|
import { dataTableSettingsDefaults as r } from "./admins-components58.js";
|
|
5
5
|
import i from "./admins-components62.js";
|
|
6
6
|
import a from "./admins-components64.js";
|
|
7
|
-
import { Fragment as o, computed as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, normalizeStyle as h,
|
|
7
|
+
import { Fragment as o, computed as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, normalizeStyle as h, onMounted as g, openBlock as _, ref as v, renderList as y, toDisplayString as b, unref as x, watch as S, withModifiers as C } from "vue";
|
|
8
8
|
//#region src/components/data-table/DataTable.vue?vue&type=script&setup=true&lang.ts
|
|
9
|
-
var
|
|
9
|
+
var w = { class: "ac-component" }, T = { class: "c-table-wrapper list-table-view" }, E = { key: 0 }, D = ["title", "onClick"], O = {
|
|
10
10
|
key: 1,
|
|
11
11
|
class: "c-actions-header"
|
|
12
|
-
},
|
|
12
|
+
}, k = { key: 0 }, A = ["onClick"], j = {
|
|
13
13
|
key: 1,
|
|
14
14
|
class: "c-actions-cell"
|
|
15
|
-
},
|
|
15
|
+
}, M = { class: "c-actions-wrap" }, N = { key: 1 }, P = { class: "c-table__loading-row" }, F = ["colspan"], I = { class: "c-table__loading-wrap" }, L = {
|
|
16
16
|
key: 0,
|
|
17
17
|
class: "c-table__backdrop",
|
|
18
18
|
"aria-hidden": "true"
|
|
19
|
-
},
|
|
19
|
+
}, R = /* @__PURE__ */ p({
|
|
20
20
|
__name: "DataTable",
|
|
21
21
|
props: {
|
|
22
22
|
config: {},
|
|
@@ -25,70 +25,94 @@ var S = { class: "ac-component" }, C = { class: "c-table-wrapper" }, w = { key:
|
|
|
25
25
|
loading: {
|
|
26
26
|
type: Boolean,
|
|
27
27
|
default: !1
|
|
28
|
-
}
|
|
28
|
+
},
|
|
29
|
+
initialSort: { default: null }
|
|
29
30
|
},
|
|
30
31
|
emits: ["selection-change", "sort-change"],
|
|
31
32
|
setup(r, { emit: p }) {
|
|
32
|
-
let
|
|
33
|
-
function
|
|
34
|
-
let t = e.property, n =
|
|
35
|
-
|
|
33
|
+
let R = r, z = p, B = v(null), { selectedKeys: V, allSelected: H, toggle: U, toggleAll: W } = n(() => R.items, () => R.config.selectableAttr, (e) => z("selection-change", e)), G = s(() => R.config.columns.filter((e) => e.visible !== !1));
|
|
34
|
+
function K(e) {
|
|
35
|
+
let t = e.property, n = B.value?.key === t && B.value.direction === "asc" ? "desc" : "asc";
|
|
36
|
+
B.value = {
|
|
36
37
|
key: t,
|
|
37
38
|
direction: n
|
|
38
|
-
}, e.sort?.callback?.(t, n),
|
|
39
|
+
}, e.sort?.callback?.(t, n), z("sort-change", {
|
|
39
40
|
key: t,
|
|
40
41
|
direction: n
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
function q(e) {
|
|
45
|
+
if (!e) {
|
|
46
|
+
B.value !== null && (B.value = null);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
let t = R.config.columns.find((t) => t.property === e.key);
|
|
50
|
+
t && (B.value?.key === e.key && B.value.direction === e.direction || (B.value = {
|
|
51
|
+
key: e.key,
|
|
52
|
+
direction: e.direction
|
|
53
|
+
}, t.sort?.callback?.(e.key, e.direction), z("sort-change", {
|
|
54
|
+
key: e.key,
|
|
55
|
+
direction: e.direction
|
|
56
|
+
})));
|
|
57
|
+
}
|
|
58
|
+
return g(() => q(R.initialSort)), S(() => R.initialSort, (e) => {
|
|
59
|
+
if (!e) {
|
|
60
|
+
B.value !== null && (B.value = null);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
R.config.columns.find((t) => t.property === e.key) && (B.value?.key === e.key && B.value.direction === e.direction || (B.value = {
|
|
64
|
+
key: e.key,
|
|
65
|
+
direction: e.direction
|
|
66
|
+
}));
|
|
67
|
+
}), (n, s) => (_(), l("div", w, [u("div", T, [u("table", {
|
|
44
68
|
class: m(["c-table", {
|
|
45
69
|
"is-compact": r.settings.compact,
|
|
46
70
|
"is-loading": r.loading
|
|
47
71
|
}]),
|
|
48
72
|
style: h({ "--action-count": r.config.actions?.length ?? 0 })
|
|
49
73
|
}, [u("thead", null, [u("tr", null, [
|
|
50
|
-
r.config.selectableAttr ? (
|
|
51
|
-
"model-value":
|
|
52
|
-
"onUpdate:modelValue":
|
|
74
|
+
r.config.selectableAttr ? (_(), l("th", E, [f(e, {
|
|
75
|
+
"model-value": x(H),
|
|
76
|
+
"onUpdate:modelValue": x(W)
|
|
53
77
|
}, null, 8, ["model-value", "onUpdate:modelValue"])])) : c("", !0),
|
|
54
|
-
(
|
|
78
|
+
(_(!0), l(o, null, y(G.value, (e) => (_(), l("th", {
|
|
55
79
|
key: e.property,
|
|
56
80
|
class: m([{
|
|
57
81
|
"c-sortable": e.sort,
|
|
58
|
-
"c-sortable--sorted":
|
|
82
|
+
"c-sortable--sorted": B.value?.key === e.property,
|
|
59
83
|
"primary-col": e.primary
|
|
60
84
|
}, e.headerClass]),
|
|
61
85
|
title: e.sort ? `Sorrendezés ${e.label} alapján` : void 0,
|
|
62
|
-
onClick: (t) => e.sort ?
|
|
63
|
-
}, [d(
|
|
86
|
+
onClick: (t) => e.sort ? K(e) : void 0
|
|
87
|
+
}, [d(b(e.hideHeader ? "" : e.label) + " ", 1), e.sort ? (_(), l("span", {
|
|
64
88
|
key: 0,
|
|
65
89
|
class: m(["c-sort-icon fa-solid", {
|
|
66
|
-
"fa-sort":
|
|
67
|
-
"fa-sort-down":
|
|
68
|
-
"fa-sort-up":
|
|
69
|
-
"c-sort-icon--active":
|
|
70
|
-
"is-asc":
|
|
71
|
-
"is-desc":
|
|
90
|
+
"fa-sort": B.value?.key !== e.property,
|
|
91
|
+
"fa-sort-down": B.value?.key === e.property && B.value.direction === "desc",
|
|
92
|
+
"fa-sort-up": B.value?.key === e.property && B.value.direction === "asc",
|
|
93
|
+
"c-sort-icon--active": B.value?.key === e.property,
|
|
94
|
+
"is-asc": B.value?.key === e.property && B.value.direction === "asc",
|
|
95
|
+
"is-desc": B.value?.key === e.property && B.value.direction === "desc"
|
|
72
96
|
}])
|
|
73
|
-
}, null, 2)) : c("", !0)], 10,
|
|
74
|
-
r.config.actions ? (
|
|
75
|
-
])]), !r.loading || r.items.length > 0 ? (
|
|
97
|
+
}, null, 2)) : c("", !0)], 10, D))), 128)),
|
|
98
|
+
r.config.actions ? (_(), l("th", O, b(r.config.actionHeader ?? ""), 1)) : c("", !0)
|
|
99
|
+
])]), !r.loading || r.items.length > 0 ? (_(), l("tbody", k, [(_(!0), l(o, null, y(r.items, (t, n) => (_(), l("tr", {
|
|
76
100
|
key: n,
|
|
77
101
|
class: m({
|
|
78
|
-
"is-selected": r.config.selectableAttr &&
|
|
102
|
+
"is-selected": r.config.selectableAttr && x(V).has(t[r.config.selectableAttr]),
|
|
79
103
|
"is-striped": r.settings.striped && n % 2 == 1
|
|
80
104
|
})
|
|
81
105
|
}, [
|
|
82
|
-
r.config.selectableAttr ? (
|
|
106
|
+
r.config.selectableAttr ? (_(), l("td", {
|
|
83
107
|
key: 0,
|
|
84
108
|
class: "pointer",
|
|
85
|
-
onClick:
|
|
109
|
+
onClick: C((e) => x(U)(t), ["stop"])
|
|
86
110
|
}, [f(e, {
|
|
87
|
-
"model-value": !!
|
|
88
|
-
"onUpdate:modelValue": (e) =>
|
|
89
|
-
onClick: s[0] ||=
|
|
90
|
-
}, null, 8, ["model-value", "onUpdate:modelValue"])], 8,
|
|
91
|
-
(
|
|
111
|
+
"model-value": !!x(V).has(t[r.config.selectableAttr]),
|
|
112
|
+
"onUpdate:modelValue": (e) => x(U)(t),
|
|
113
|
+
onClick: s[0] ||= C(() => {}, ["stop"])
|
|
114
|
+
}, null, 8, ["model-value", "onUpdate:modelValue"])], 8, A)) : c("", !0),
|
|
115
|
+
(_(!0), l(o, null, y(G.value, (e) => (_(), l("td", {
|
|
92
116
|
key: e.property,
|
|
93
117
|
class: m(["c-table__cell", [e.class, { "primary-col": e.primary }]])
|
|
94
118
|
}, [f(i, {
|
|
@@ -100,21 +124,21 @@ var S = { class: "ac-component" }, C = { class: "c-table-wrapper" }, w = { key:
|
|
|
100
124
|
"col",
|
|
101
125
|
"copy"
|
|
102
126
|
])], 2))), 128)),
|
|
103
|
-
r.config.actions ? (
|
|
127
|
+
r.config.actions ? (_(), l("td", j, [u("div", M, [f(a, {
|
|
104
128
|
actions: r.config.actions,
|
|
105
129
|
item: t
|
|
106
130
|
}, null, 8, ["actions", "item"])])])) : c("", !0)
|
|
107
|
-
], 2))), 128))])) : (
|
|
108
|
-
colspan:
|
|
131
|
+
], 2))), 128))])) : (_(), l("tbody", N, [u("tr", P, [u("td", {
|
|
132
|
+
colspan: G.value.length + +!!r.config.selectableAttr + +!!r.config.actions,
|
|
109
133
|
class: "c-table__loading-cell"
|
|
110
|
-
}, [u("div",
|
|
134
|
+
}, [u("div", I, [f(t, {
|
|
111
135
|
loading: !0,
|
|
112
136
|
size: "2.5rem"
|
|
113
|
-
})])], 8,
|
|
137
|
+
})])], 8, F)])]))], 6), r.loading && r.items.length > 0 ? (_(), l("div", L, [f(t, {
|
|
114
138
|
loading: !0,
|
|
115
139
|
size: "2.5rem"
|
|
116
140
|
})])) : c("", !0)])]));
|
|
117
141
|
}
|
|
118
142
|
});
|
|
119
143
|
//#endregion
|
|
120
|
-
export {
|
|
144
|
+
export { R as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components65.js","names":[],"sources":["../src/components/data-table/DataTable.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type {\n LayoutMode,\n DataListConfig,\n DataListSettings,\n DataTableSettings,\n DataCardsSettings,\n Column,\n Sort,\n Action,\n ActionGroup,\n FilterConfig,\n FilterValue,\n} from '@/types/data-list'\n\nexport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataTableSettingsDefaults } from '@/types/data-list'\nimport type { Column, DataListConfig, DataTableSettings } from '@/types/data-list'\nimport Loader from '@/components/Loader.vue'\nimport DataCell from './DataCell.vue'\nimport DataListActions from './DataListActions.vue'\n\ntype SortDirection = 'asc' | 'desc'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataTableSettings\n loading?: boolean\n }>(),\n {\n settings: () => ({ ...dataTableSettingsDefaults }),\n loading: false,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n 'sort-change': [sort: { key: string; direction: SortDirection }]\n}>()\n\n//const CHARACTER_BREAKPOINT = 20\n\nconst activeSort = ref<{\n key: string\n direction: SortDirection\n} | null>(null)\n\nconst {\n selectedKeys,\n allSelected,\n toggle: toggleRow,\n toggleAll,\n} = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nfunction handleSort(col: Column) {\n const key = col.property\n const direction: SortDirection =\n activeSort.value?.key === key && activeSort.value.direction === 'asc' ? 'desc' : 'asc'\n\n activeSort.value = { key, direction }\n col.sort?.callback?.(key, direction)\n\n emit('sort-change', { key, direction })\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-table-wrapper\">\n <table\n class=\"c-table\"\n :class=\"{ 'is-compact': settings.compact, 'is-loading': loading }\"\n :style=\"{ '--action-count': config.actions?.length ?? 0 }\"\n >\n <thead>\n <tr>\n <th v-if=\"config.selectableAttr\">\n <Checkbox :model-value=\"allSelected\" @update:model-value=\"toggleAll\" />\n </th>\n\n <th\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n :class=\"[\n {\n 'c-sortable': col.sort,\n 'c-sortable--sorted': activeSort?.key === col.property,\n 'primary-col': col.primary,\n },\n col.headerClass,\n ]\"\n :title=\"col.sort ? `Sorrendezés ${col.label} alapján` : undefined\"\n @click=\"col.sort ? handleSort(col) : undefined\"\n >\n {{ !col.hideHeader ? col.label : '' }}\n\n <span\n v-if=\"col.sort\"\n class=\"c-sort-icon fa-solid\"\n :class=\"{\n 'fa-sort': activeSort?.key !== col.property,\n 'fa-sort-down':\n activeSort?.key === col.property && activeSort.direction === 'desc',\n 'fa-sort-up': activeSort?.key === col.property && activeSort.direction === 'asc',\n 'c-sort-icon--active': activeSort?.key === col.property,\n 'is-asc': activeSort?.key === col.property && activeSort.direction === 'asc',\n 'is-desc': activeSort?.key === col.property && activeSort.direction === 'desc',\n }\"\n ></span>\n </th>\n\n <th v-if=\"config.actions\" class=\"c-actions-header\">\n {{ config.actionHeader ?? '' }}\n </th>\n </tr>\n </thead>\n\n <tbody v-if=\"!loading || items.length > 0\">\n <tr\n v-for=\"(item, index) in items\"\n :key=\"index\"\n :class=\"{\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n 'is-striped': settings.striped && index % 2 === 1,\n }\"\n >\n <td v-if=\"config.selectableAttr\" class=\"pointer\" @click.stop=\"toggleRow(item)\">\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </td>\n\n <td\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n class=\"c-table__cell\"\n :class=\"[\n col.class,\n { 'primary-col': col.primary },\n /* { 'is-nowrap': String(getColumnValue(item, col) ?? '').length < CHARACTER_BREAKPOINT}, */\n ]\"\n >\n <DataCell :item=\"item\" :col=\"col\" :copy=\"!col.hideCopyToClipboard\" />\n </td>\n\n <td v-if=\"config.actions\" class=\"c-actions-cell\">\n <div class=\"c-actions-wrap\">\n <DataListActions :actions=\"config.actions\" :item=\"item\" />\n </div>\n </td>\n </tr>\n </tbody>\n <tbody v-else>\n <tr class=\"c-table__loading-row\">\n <td\n :colspan=\"\n visibleColumns.length + (config.selectableAttr ? 1 : 0) + (config.actions ? 1 : 0)\n \"\n class=\"c-table__loading-cell\"\n >\n <div class=\"c-table__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div v-if=\"loading && items.length > 0\" class=\"c-table__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-table.scss\"></style>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admins-components65.js","names":[],"sources":["../src/components/data-table/DataTable.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type {\n LayoutMode,\n DataListConfig,\n DataListSettings,\n DataTableSettings,\n DataCardsSettings,\n Column,\n Sort,\n Action,\n ActionGroup,\n FilterConfig,\n FilterValue,\n} from '@/types/data-list'\n\nexport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, onMounted, watch } from 'vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataTableSettingsDefaults } from '@/types/data-list'\nimport type { Column, DataListConfig, DataTableSettings } from '@/types/data-list'\nimport Loader from '@/components/Loader.vue'\nimport DataCell from './DataCell.vue'\nimport DataListActions from './DataListActions.vue'\n\ntype SortDirection = 'asc' | 'desc'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataTableSettings\n loading?: boolean\n initialSort?: { key: string; direction: SortDirection } | null\n }>(),\n {\n settings: () => ({ ...dataTableSettingsDefaults }),\n loading: false,\n initialSort: null,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n 'sort-change': [sort: { key: string; direction: SortDirection }]\n}>()\n\n//const CHARACTER_BREAKPOINT = 20\n\nconst activeSort = ref<{\n key: string\n direction: SortDirection\n} | null>(null)\n\nconst {\n selectedKeys,\n allSelected,\n toggle: toggleRow,\n toggleAll,\n} = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nfunction handleSort(col: Column) {\n const key = col.property\n const direction: SortDirection =\n activeSort.value?.key === key && activeSort.value.direction === 'asc' ? 'desc' : 'asc'\n\n activeSort.value = { key, direction }\n col.sort?.callback?.(key, direction)\n\n emit('sort-change', { key, direction })\n}\n\nfunction applyInitialSort(sort: { key: string; direction: SortDirection } | null | undefined) {\n if (!sort) {\n if (activeSort.value !== null) activeSort.value = null\n return\n }\n const col = props.config.columns.find((c) => c.property === sort.key)\n if (!col) return\n if (activeSort.value?.key === sort.key && activeSort.value.direction === sort.direction) return\n activeSort.value = { key: sort.key, direction: sort.direction }\n col.sort?.callback?.(sort.key, sort.direction)\n emit('sort-change', { key: sort.key, direction: sort.direction })\n}\n\nonMounted(() => applyInitialSort(props.initialSort))\nwatch(\n () => props.initialSort,\n (s) => {\n // When initialSort changes, sync the visual indicator only.\n // Don't re-emit sort-change — that would cause an infinite loop with\n // parents that re-assign the prop from the emitted value.\n if (!s) {\n if (activeSort.value !== null) activeSort.value = null\n return\n }\n const col = props.config.columns.find((c) => c.property === s.key)\n if (!col) return\n if (activeSort.value?.key === s.key && activeSort.value.direction === s.direction) return\n activeSort.value = { key: s.key, direction: s.direction }\n },\n)\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-table-wrapper list-table-view\">\n <table\n class=\"c-table\"\n :class=\"{ 'is-compact': settings.compact, 'is-loading': loading }\"\n :style=\"{ '--action-count': config.actions?.length ?? 0 }\"\n >\n <thead>\n <tr>\n <th v-if=\"config.selectableAttr\">\n <Checkbox :model-value=\"allSelected\" @update:model-value=\"toggleAll\" />\n </th>\n\n <th\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n :class=\"[\n {\n 'c-sortable': col.sort,\n 'c-sortable--sorted': activeSort?.key === col.property,\n 'primary-col': col.primary,\n },\n col.headerClass,\n ]\"\n :title=\"col.sort ? `Sorrendezés ${col.label} alapján` : undefined\"\n @click=\"col.sort ? handleSort(col) : undefined\"\n >\n {{ !col.hideHeader ? col.label : '' }}\n\n <span\n v-if=\"col.sort\"\n class=\"c-sort-icon fa-solid\"\n :class=\"{\n 'fa-sort': activeSort?.key !== col.property,\n 'fa-sort-down':\n activeSort?.key === col.property && activeSort.direction === 'desc',\n 'fa-sort-up': activeSort?.key === col.property && activeSort.direction === 'asc',\n 'c-sort-icon--active': activeSort?.key === col.property,\n 'is-asc': activeSort?.key === col.property && activeSort.direction === 'asc',\n 'is-desc': activeSort?.key === col.property && activeSort.direction === 'desc',\n }\"\n ></span>\n </th>\n\n <th v-if=\"config.actions\" class=\"c-actions-header\">\n {{ config.actionHeader ?? '' }}\n </th>\n </tr>\n </thead>\n\n <tbody v-if=\"!loading || items.length > 0\">\n <tr\n v-for=\"(item, index) in items\"\n :key=\"index\"\n :class=\"{\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n 'is-striped': settings.striped && index % 2 === 1,\n }\"\n >\n <td v-if=\"config.selectableAttr\" class=\"pointer\" @click.stop=\"toggleRow(item)\">\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </td>\n\n <td\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n class=\"c-table__cell\"\n :class=\"[\n col.class,\n { 'primary-col': col.primary },\n /* { 'is-nowrap': String(getColumnValue(item, col) ?? '').length < CHARACTER_BREAKPOINT}, */\n ]\"\n >\n <DataCell :item=\"item\" :col=\"col\" :copy=\"!col.hideCopyToClipboard\" />\n </td>\n\n <td v-if=\"config.actions\" class=\"c-actions-cell\">\n <div class=\"c-actions-wrap\">\n <DataListActions :actions=\"config.actions\" :item=\"item\" />\n </div>\n </td>\n </tr>\n </tbody>\n <tbody v-else>\n <tr class=\"c-table__loading-row\">\n <td\n :colspan=\"\n visibleColumns.length + (config.selectableAttr ? 1 : 0) + (config.actions ? 1 : 0)\n \"\n class=\"c-table__loading-cell\"\n >\n <div class=\"c-table__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div v-if=\"loading && items.length > 0\" class=\"c-table__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-table.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components67.js","names":[],"sources":["../src/components/data-table/DataTable.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type {\n LayoutMode,\n DataListConfig,\n DataListSettings,\n DataTableSettings,\n DataCardsSettings,\n Column,\n Sort,\n Action,\n ActionGroup,\n FilterConfig,\n FilterValue,\n} from '@/types/data-list'\n\nexport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataTableSettingsDefaults } from '@/types/data-list'\nimport type { Column, DataListConfig, DataTableSettings } from '@/types/data-list'\nimport Loader from '@/components/Loader.vue'\nimport DataCell from './DataCell.vue'\nimport DataListActions from './DataListActions.vue'\n\ntype SortDirection = 'asc' | 'desc'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataTableSettings\n loading?: boolean\n }>(),\n {\n settings: () => ({ ...dataTableSettingsDefaults }),\n loading: false,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n 'sort-change': [sort: { key: string; direction: SortDirection }]\n}>()\n\n//const CHARACTER_BREAKPOINT = 20\n\nconst activeSort = ref<{\n key: string\n direction: SortDirection\n} | null>(null)\n\nconst {\n selectedKeys,\n allSelected,\n toggle: toggleRow,\n toggleAll,\n} = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nfunction handleSort(col: Column) {\n const key = col.property\n const direction: SortDirection =\n activeSort.value?.key === key && activeSort.value.direction === 'asc' ? 'desc' : 'asc'\n\n activeSort.value = { key, direction }\n col.sort?.callback?.(key, direction)\n\n emit('sort-change', { key, direction })\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-table-wrapper\">\n <table\n class=\"c-table\"\n :class=\"{ 'is-compact': settings.compact, 'is-loading': loading }\"\n :style=\"{ '--action-count': config.actions?.length ?? 0 }\"\n >\n <thead>\n <tr>\n <th v-if=\"config.selectableAttr\">\n <Checkbox :model-value=\"allSelected\" @update:model-value=\"toggleAll\" />\n </th>\n\n <th\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n :class=\"[\n {\n 'c-sortable': col.sort,\n 'c-sortable--sorted': activeSort?.key === col.property,\n 'primary-col': col.primary,\n },\n col.headerClass,\n ]\"\n :title=\"col.sort ? `Sorrendezés ${col.label} alapján` : undefined\"\n @click=\"col.sort ? handleSort(col) : undefined\"\n >\n {{ !col.hideHeader ? col.label : '' }}\n\n <span\n v-if=\"col.sort\"\n class=\"c-sort-icon fa-solid\"\n :class=\"{\n 'fa-sort': activeSort?.key !== col.property,\n 'fa-sort-down':\n activeSort?.key === col.property && activeSort.direction === 'desc',\n 'fa-sort-up': activeSort?.key === col.property && activeSort.direction === 'asc',\n 'c-sort-icon--active': activeSort?.key === col.property,\n 'is-asc': activeSort?.key === col.property && activeSort.direction === 'asc',\n 'is-desc': activeSort?.key === col.property && activeSort.direction === 'desc',\n }\"\n ></span>\n </th>\n\n <th v-if=\"config.actions\" class=\"c-actions-header\">\n {{ config.actionHeader ?? '' }}\n </th>\n </tr>\n </thead>\n\n <tbody v-if=\"!loading || items.length > 0\">\n <tr\n v-for=\"(item, index) in items\"\n :key=\"index\"\n :class=\"{\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n 'is-striped': settings.striped && index % 2 === 1,\n }\"\n >\n <td v-if=\"config.selectableAttr\" class=\"pointer\" @click.stop=\"toggleRow(item)\">\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </td>\n\n <td\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n class=\"c-table__cell\"\n :class=\"[\n col.class,\n { 'primary-col': col.primary },\n /* { 'is-nowrap': String(getColumnValue(item, col) ?? '').length < CHARACTER_BREAKPOINT}, */\n ]\"\n >\n <DataCell :item=\"item\" :col=\"col\" :copy=\"!col.hideCopyToClipboard\" />\n </td>\n\n <td v-if=\"config.actions\" class=\"c-actions-cell\">\n <div class=\"c-actions-wrap\">\n <DataListActions :actions=\"config.actions\" :item=\"item\" />\n </div>\n </td>\n </tr>\n </tbody>\n <tbody v-else>\n <tr class=\"c-table__loading-row\">\n <td\n :colspan=\"\n visibleColumns.length + (config.selectableAttr ? 1 : 0) + (config.actions ? 1 : 0)\n \"\n class=\"c-table__loading-cell\"\n >\n <div class=\"c-table__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div v-if=\"loading && items.length > 0\" class=\"c-table__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-table.scss\"></style>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"admins-components67.js","names":[],"sources":["../src/components/data-table/DataTable.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type {\n LayoutMode,\n DataListConfig,\n DataListSettings,\n DataTableSettings,\n DataCardsSettings,\n Column,\n Sort,\n Action,\n ActionGroup,\n FilterConfig,\n FilterValue,\n} from '@/types/data-list'\n\nexport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, onMounted, watch } from 'vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataTableSettingsDefaults } from '@/types/data-list'\nimport type { Column, DataListConfig, DataTableSettings } from '@/types/data-list'\nimport Loader from '@/components/Loader.vue'\nimport DataCell from './DataCell.vue'\nimport DataListActions from './DataListActions.vue'\n\ntype SortDirection = 'asc' | 'desc'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataTableSettings\n loading?: boolean\n initialSort?: { key: string; direction: SortDirection } | null\n }>(),\n {\n settings: () => ({ ...dataTableSettingsDefaults }),\n loading: false,\n initialSort: null,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n 'sort-change': [sort: { key: string; direction: SortDirection }]\n}>()\n\n//const CHARACTER_BREAKPOINT = 20\n\nconst activeSort = ref<{\n key: string\n direction: SortDirection\n} | null>(null)\n\nconst {\n selectedKeys,\n allSelected,\n toggle: toggleRow,\n toggleAll,\n} = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nfunction handleSort(col: Column) {\n const key = col.property\n const direction: SortDirection =\n activeSort.value?.key === key && activeSort.value.direction === 'asc' ? 'desc' : 'asc'\n\n activeSort.value = { key, direction }\n col.sort?.callback?.(key, direction)\n\n emit('sort-change', { key, direction })\n}\n\nfunction applyInitialSort(sort: { key: string; direction: SortDirection } | null | undefined) {\n if (!sort) {\n if (activeSort.value !== null) activeSort.value = null\n return\n }\n const col = props.config.columns.find((c) => c.property === sort.key)\n if (!col) return\n if (activeSort.value?.key === sort.key && activeSort.value.direction === sort.direction) return\n activeSort.value = { key: sort.key, direction: sort.direction }\n col.sort?.callback?.(sort.key, sort.direction)\n emit('sort-change', { key: sort.key, direction: sort.direction })\n}\n\nonMounted(() => applyInitialSort(props.initialSort))\nwatch(\n () => props.initialSort,\n (s) => {\n // When initialSort changes, sync the visual indicator only.\n // Don't re-emit sort-change — that would cause an infinite loop with\n // parents that re-assign the prop from the emitted value.\n if (!s) {\n if (activeSort.value !== null) activeSort.value = null\n return\n }\n const col = props.config.columns.find((c) => c.property === s.key)\n if (!col) return\n if (activeSort.value?.key === s.key && activeSort.value.direction === s.direction) return\n activeSort.value = { key: s.key, direction: s.direction }\n },\n)\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"c-table-wrapper list-table-view\">\n <table\n class=\"c-table\"\n :class=\"{ 'is-compact': settings.compact, 'is-loading': loading }\"\n :style=\"{ '--action-count': config.actions?.length ?? 0 }\"\n >\n <thead>\n <tr>\n <th v-if=\"config.selectableAttr\">\n <Checkbox :model-value=\"allSelected\" @update:model-value=\"toggleAll\" />\n </th>\n\n <th\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n :class=\"[\n {\n 'c-sortable': col.sort,\n 'c-sortable--sorted': activeSort?.key === col.property,\n 'primary-col': col.primary,\n },\n col.headerClass,\n ]\"\n :title=\"col.sort ? `Sorrendezés ${col.label} alapján` : undefined\"\n @click=\"col.sort ? handleSort(col) : undefined\"\n >\n {{ !col.hideHeader ? col.label : '' }}\n\n <span\n v-if=\"col.sort\"\n class=\"c-sort-icon fa-solid\"\n :class=\"{\n 'fa-sort': activeSort?.key !== col.property,\n 'fa-sort-down':\n activeSort?.key === col.property && activeSort.direction === 'desc',\n 'fa-sort-up': activeSort?.key === col.property && activeSort.direction === 'asc',\n 'c-sort-icon--active': activeSort?.key === col.property,\n 'is-asc': activeSort?.key === col.property && activeSort.direction === 'asc',\n 'is-desc': activeSort?.key === col.property && activeSort.direction === 'desc',\n }\"\n ></span>\n </th>\n\n <th v-if=\"config.actions\" class=\"c-actions-header\">\n {{ config.actionHeader ?? '' }}\n </th>\n </tr>\n </thead>\n\n <tbody v-if=\"!loading || items.length > 0\">\n <tr\n v-for=\"(item, index) in items\"\n :key=\"index\"\n :class=\"{\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n 'is-striped': settings.striped && index % 2 === 1,\n }\"\n >\n <td v-if=\"config.selectableAttr\" class=\"pointer\" @click.stop=\"toggleRow(item)\">\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </td>\n\n <td\n v-for=\"col in visibleColumns\"\n :key=\"col.property\"\n class=\"c-table__cell\"\n :class=\"[\n col.class,\n { 'primary-col': col.primary },\n /* { 'is-nowrap': String(getColumnValue(item, col) ?? '').length < CHARACTER_BREAKPOINT}, */\n ]\"\n >\n <DataCell :item=\"item\" :col=\"col\" :copy=\"!col.hideCopyToClipboard\" />\n </td>\n\n <td v-if=\"config.actions\" class=\"c-actions-cell\">\n <div class=\"c-actions-wrap\">\n <DataListActions :actions=\"config.actions\" :item=\"item\" />\n </div>\n </td>\n </tr>\n </tbody>\n <tbody v-else>\n <tr class=\"c-table__loading-row\">\n <td\n :colspan=\"\n visibleColumns.length + (config.selectableAttr ? 1 : 0) + (config.actions ? 1 : 0)\n \"\n class=\"c-table__loading-cell\"\n >\n <div class=\"c-table__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n <div v-if=\"loading && items.length > 0\" class=\"c-table__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-table.scss\"></style>\n"],"mappings":""}
|