admins-components 9.0.66 → 9.0.68
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 +39 -39
- package/dist/admins-components100.js +75 -249
- package/dist/admins-components100.js.map +1 -1
- package/dist/admins-components102.js +2 -2
- package/dist/admins-components102.js.map +1 -1
- package/dist/admins-components103.js +256 -3
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components105.js +6 -52
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components106.js +3 -82
- package/dist/admins-components106.js.map +1 -1
- package/dist/admins-components107.js +3 -113
- package/dist/admins-components107.js.map +1 -1
- package/dist/admins-components108.js +49 -44
- package/dist/admins-components108.js.map +1 -1
- package/dist/admins-components109.js +80 -104
- package/dist/admins-components109.js.map +1 -1
- package/dist/admins-components110.js +109 -16
- package/dist/admins-components110.js.map +1 -1
- package/dist/admins-components111.js +46 -6
- package/dist/admins-components111.js.map +1 -1
- package/dist/admins-components112.js +100 -246
- package/dist/admins-components112.js.map +1 -1
- package/dist/admins-components113.js +19 -26
- package/dist/admins-components113.js.map +1 -1
- package/dist/admins-components114.js +6 -27
- package/dist/admins-components114.js.map +1 -1
- package/dist/admins-components115.js +239 -159
- package/dist/admins-components115.js.map +1 -1
- package/dist/admins-components116.js +26 -67
- package/dist/admins-components116.js.map +1 -1
- package/dist/admins-components117.js +25 -64
- package/dist/admins-components117.js.map +1 -1
- package/dist/admins-components118.js +169 -27
- package/dist/admins-components118.js.map +1 -1
- package/dist/admins-components119.js +65 -13
- package/dist/admins-components119.js.map +1 -1
- package/dist/admins-components120.js +64 -24
- package/dist/admins-components120.js.map +1 -1
- package/dist/admins-components121.js +29 -8
- package/dist/admins-components121.js.map +1 -1
- package/dist/admins-components122.js +16 -4
- package/dist/admins-components122.js.map +1 -1
- package/dist/admins-components123.js +27 -3
- package/dist/admins-components123.js.map +1 -1
- package/dist/admins-components124.js +8 -2
- package/dist/admins-components124.js.map +1 -1
- package/dist/admins-components125.js +4 -21
- package/dist/admins-components125.js.map +1 -1
- package/dist/admins-components126.js +3 -14
- package/dist/admins-components126.js.map +1 -1
- package/dist/admins-components127.js +3 -8
- package/dist/admins-components127.js.map +1 -1
- package/dist/admins-components128.js +19 -11
- package/dist/admins-components128.js.map +1 -1
- package/dist/admins-components129.js +14 -26
- package/dist/admins-components129.js.map +1 -1
- package/dist/admins-components130.js +7 -82
- package/dist/admins-components130.js.map +1 -1
- package/dist/admins-components131.js +9 -7
- package/dist/admins-components131.js.map +1 -1
- package/dist/admins-components132.js +25 -4
- package/dist/admins-components132.js.map +1 -1
- package/dist/admins-components133.js +81 -6
- package/dist/admins-components133.js.map +1 -1
- package/dist/admins-components134.js +10 -6
- package/dist/admins-components134.js.map +1 -1
- package/dist/admins-components135.js +2 -3
- package/dist/admins-components135.js.map +1 -1
- package/dist/admins-components136.js +8 -15
- package/dist/admins-components136.js.map +1 -1
- package/dist/admins-components137.js +6 -12
- package/dist/admins-components137.js.map +1 -1
- package/dist/admins-components138.js +6 -30
- package/dist/admins-components138.js.map +1 -1
- package/dist/admins-components139.js +15 -4
- package/dist/admins-components139.js.map +1 -1
- package/dist/admins-components140.js +13 -29
- package/dist/admins-components140.js.map +1 -1
- package/dist/admins-components141.js +30 -5
- package/dist/admins-components141.js.map +1 -1
- package/dist/admins-components142.js +4 -5
- package/dist/admins-components142.js.map +1 -1
- package/dist/admins-components143.js +28 -7
- package/dist/admins-components143.js.map +1 -1
- package/dist/admins-components144.js +4 -73
- package/dist/admins-components144.js.map +1 -1
- package/dist/admins-components145.js +4 -28
- package/dist/admins-components145.js.map +1 -1
- package/dist/admins-components146.js +8 -59
- package/dist/admins-components146.js.map +1 -1
- package/dist/admins-components147.js +72 -22
- package/dist/admins-components147.js.map +1 -1
- package/dist/admins-components148.js +26 -47
- package/dist/admins-components148.js.map +1 -1
- package/dist/admins-components149.js +58 -30
- package/dist/admins-components149.js.map +1 -1
- package/dist/admins-components150.js +24 -3
- package/dist/admins-components150.js.map +1 -1
- package/dist/admins-components151.js +44 -173
- package/dist/admins-components151.js.map +1 -1
- package/dist/admins-components152.js +28 -43
- package/dist/admins-components152.js.map +1 -1
- package/dist/admins-components153.js +3 -37
- package/dist/admins-components153.js.map +1 -1
- package/dist/admins-components154.js +176 -43
- package/dist/admins-components154.js.map +1 -1
- package/dist/admins-components155.js +41 -136
- package/dist/admins-components155.js.map +1 -1
- package/dist/admins-components156.js +36 -57
- package/dist/admins-components156.js.map +1 -1
- package/dist/admins-components157.js +44 -5
- package/dist/admins-components157.js.map +1 -1
- package/dist/admins-components158.js +141 -6
- package/dist/admins-components158.js.map +1 -1
- package/dist/admins-components159.js +57 -75
- package/dist/admins-components159.js.map +1 -1
- package/dist/admins-components160.js +6 -28
- package/dist/admins-components160.js.map +1 -1
- package/dist/admins-components161.js +5 -1930
- package/dist/admins-components161.js.map +1 -1
- package/dist/admins-components162.js +75 -24810
- package/dist/admins-components162.js.map +1 -1
- package/dist/admins-components163.js +28 -8
- package/dist/admins-components163.js.map +1 -1
- package/dist/admins-components164.js +1929 -5
- package/dist/admins-components164.js.map +1 -0
- package/dist/admins-components165.js +24809 -140
- package/dist/admins-components165.js.map +1 -1
- package/dist/admins-components166.js +3 -3
- package/dist/admins-components166.js.map +1 -1
- package/dist/admins-components167.js +7 -9
- package/dist/admins-components168.js +143 -0
- package/dist/admins-components168.js.map +1 -0
- package/dist/admins-components169.js +8 -167
- package/dist/admins-components169.js.map +1 -1
- package/dist/admins-components170.js +8 -52
- package/dist/admins-components170.js.map +1 -1
- package/dist/admins-components172.js +161 -43
- package/dist/admins-components172.js.map +1 -1
- package/dist/admins-components173.js +53 -6
- package/dist/admins-components173.js.map +1 -1
- package/dist/admins-components174.js +8 -79
- package/dist/admins-components174.js.map +1 -1
- package/dist/admins-components175.js +35 -43
- package/dist/admins-components175.js.map +1 -1
- package/dist/admins-components176.js +6 -63
- package/dist/admins-components176.js.map +1 -1
- package/dist/admins-components177.js +79 -8
- package/dist/admins-components177.js.map +1 -1
- package/dist/admins-components178.js +43 -37
- package/dist/admins-components178.js.map +1 -1
- package/dist/admins-components179.js +62 -8
- package/dist/admins-components179.js.map +1 -1
- package/dist/admins-components180.js +10 -0
- package/dist/admins-components180.js.map +1 -0
- package/dist/admins-components181.js +44 -50
- package/dist/admins-components181.js.map +1 -1
- package/dist/admins-components182.js +10 -0
- package/dist/admins-components182.js.map +1 -0
- package/dist/admins-components184.js +59 -0
- package/dist/admins-components184.js.map +1 -0
- package/dist/admins-components29.js.map +1 -1
- package/dist/admins-components30.js.map +1 -1
- package/dist/admins-components5.js.map +1 -1
- package/dist/admins-components6.js.map +1 -1
- package/dist/admins-components60.js +31 -73
- package/dist/admins-components60.js.map +1 -1
- package/dist/admins-components62.js +4 -2
- package/dist/admins-components62.js.map +1 -1
- package/dist/admins-components63.js +95 -88
- package/dist/admins-components63.js.map +1 -1
- package/dist/admins-components64.js +70 -4
- package/dist/admins-components64.js.map +1 -1
- package/dist/admins-components65.js +4 -157
- package/dist/admins-components65.js.map +1 -1
- package/dist/admins-components66.js +90 -0
- package/dist/admins-components66.js.map +1 -0
- package/dist/admins-components67.js +2 -5
- package/dist/admins-components67.js.map +1 -1
- package/dist/admins-components68.js +130 -136
- package/dist/admins-components68.js.map +1 -1
- package/dist/admins-components70.js +2 -2
- package/dist/admins-components70.js.map +1 -1
- package/dist/admins-components71.js +163 -7
- package/dist/admins-components71.js.map +1 -1
- package/dist/admins-components73.js +8 -0
- package/dist/admins-components73.js.map +1 -0
- package/dist/admins-components74.js +7 -6
- package/dist/admins-components74.js.map +1 -1
- package/dist/admins-components75.js +289 -8
- package/dist/admins-components75.js.map +1 -1
- package/dist/admins-components77.js +6 -145
- package/dist/admins-components77.js.map +1 -1
- package/dist/admins-components78.js +10 -0
- package/dist/admins-components78.js.map +1 -0
- package/dist/admins-components79.js +43 -6
- package/dist/admins-components79.js.map +1 -1
- package/dist/admins-components80.js +130 -121
- package/dist/admins-components80.js.map +1 -1
- package/dist/admins-components82.js +2 -2
- package/dist/admins-components82.js.map +1 -1
- package/dist/admins-components83.js +133 -56
- package/dist/admins-components83.js.map +1 -1
- package/dist/admins-components85.js +6 -238
- package/dist/admins-components85.js.map +1 -1
- package/dist/admins-components86.js +60 -0
- package/dist/admins-components86.js.map +1 -0
- package/dist/admins-components87.js +67 -6
- package/dist/admins-components87.js.map +1 -1
- package/dist/admins-components88.js +216 -208
- package/dist/admins-components88.js.map +1 -1
- package/dist/admins-components90.js +2 -2
- package/dist/admins-components90.js.map +1 -1
- package/dist/admins-components91.js +218 -58
- package/dist/admins-components91.js.map +1 -1
- package/dist/admins-components93.js +2 -2
- package/dist/admins-components93.js.map +1 -1
- package/dist/admins-components94.js +65 -194
- 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 +188 -71
- 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/src/components/Button.vue.d.ts +0 -4
- package/dist/src/components/DropdownMenu.vue.d.ts +0 -4
- package/dist/src/components/data-table/DataList.vue.d.ts +0 -5
- package/dist/src/components/data-table/DataSearch.vue.d.ts +0 -4
- package/dist/src/components/data-table/DataSort.vue.d.ts +0 -5
- package/dist/src/components/data-table/FilterTags.vue.d.ts +0 -6
- package/dist/src/components/data-table/TagList.vue.d.ts +18 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/styles/components/data-table/tag-list.scss_vue_type_style_index_0_src_true_lang.css +1 -0
- package/dist/src/utils/dataListConverters.d.ts +16 -1
- package/package.json +1 -1
- package/dist/admins-components104.js +0 -4
- package/dist/admins-components104.js.map +0 -1
- package/dist/admins-components167.js.map +0 -1
- package/dist/admins-components171.js +0 -10
- package/dist/admins-components171.js.map +0 -1
- package/dist/admins-components61.js +0 -71
- package/dist/admins-components61.js.map +0 -1
- package/dist/admins-components72.js +0 -289
- package/dist/admins-components72.js.map +0 -1
- package/dist/admins-components76.js +0 -44
- package/dist/admins-components76.js.map +0 -1
- package/dist/admins-components84.js +0 -68
- package/dist/admins-components84.js.map +0 -1
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import e from "./admins-components25.js";
|
|
2
|
-
import t from "./admins-components45.js";
|
|
3
|
-
import { getColumnValue as n } from "./admins-components59.js";
|
|
4
|
-
import { shortUuid as r } from "./admins-components60.js";
|
|
5
|
-
import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, isVNode as d, openBlock as f, renderSlot as p, resolveDirective as m, resolveDynamicComponent as h, toDisplayString as g, withDirectives as _ } from "vue";
|
|
6
|
-
//#region src/components/data-table/DataCell.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var v = { class: "dc-cell" }, y = {
|
|
8
|
-
key: 0,
|
|
9
|
-
class: "dc-loading"
|
|
10
|
-
}, b = { key: 2 }, x = ["innerHTML"], S = {
|
|
11
|
-
key: 3,
|
|
12
|
-
class: "dc-datetime"
|
|
13
|
-
}, C = { class: "dc-datetime__part" }, w = {
|
|
14
|
-
key: 0,
|
|
15
|
-
class: "dc-datetime__sep"
|
|
16
|
-
}, T = { class: "dc-datetime__part" }, E = { key: 4 }, D = ["innerHTML"], O = /* @__PURE__ */ u({
|
|
17
|
-
__name: "DataCell",
|
|
18
|
-
props: {
|
|
19
|
-
item: {},
|
|
20
|
-
col: {},
|
|
21
|
-
copy: {
|
|
22
|
-
type: Boolean,
|
|
23
|
-
default: !0
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
setup(u) {
|
|
27
|
-
let O = u, k = i(() => n(O.item, O.col)), A = i(() => d(k.value)), j = i(() => r()(k.value)), M = i(() => {
|
|
28
|
-
if (O.col.type !== "datetime") return null;
|
|
29
|
-
let e = k.value;
|
|
30
|
-
if (!e) return {
|
|
31
|
-
date: "",
|
|
32
|
-
time: ""
|
|
33
|
-
};
|
|
34
|
-
let t = e.indexOf(" ");
|
|
35
|
-
return t === -1 ? {
|
|
36
|
-
date: e,
|
|
37
|
-
time: ""
|
|
38
|
-
} : {
|
|
39
|
-
date: e.slice(0, t),
|
|
40
|
-
time: e.slice(t + 1)
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
return (n, r) => {
|
|
44
|
-
let i = m("tooltip");
|
|
45
|
-
return f(), s("span", v, [p(n.$slots, "cell", {
|
|
46
|
-
item: u.item,
|
|
47
|
-
col: u.col,
|
|
48
|
-
value: k.value
|
|
49
|
-
}, () => [u.col.loading?.() ? (f(), s("span", y, [l(e, {
|
|
50
|
-
loading: !0,
|
|
51
|
-
size: "1rem"
|
|
52
|
-
})])) : A.value ? (f(), a(h(k.value), { key: 1 })) : u.col.type === "uuid" ? _((f(), s("span", b, [c("span", { innerHTML: j.value }, null, 8, x), u.copy && k.value ? (f(), a(t, {
|
|
53
|
-
key: 0,
|
|
54
|
-
value: k.value
|
|
55
|
-
}, null, 8, ["value"])) : o("", !0)])), [[i, k.value]]) : u.col.type === "datetime" ? (f(), s("span", S, [
|
|
56
|
-
c("span", C, g(M.value?.date), 1),
|
|
57
|
-
M.value?.time ? (f(), s("span", w)) : o("", !0),
|
|
58
|
-
c("span", T, g(M.value?.time), 1),
|
|
59
|
-
u.copy && k.value ? (f(), a(t, {
|
|
60
|
-
key: 1,
|
|
61
|
-
value: k.value
|
|
62
|
-
}, null, 8, ["value"])) : o("", !0)
|
|
63
|
-
])) : (f(), s("span", E, [c("span", { innerHTML: k.value }, null, 8, D), u.copy && k.value ? (f(), a(t, {
|
|
64
|
-
key: 0,
|
|
65
|
-
value: k.value
|
|
66
|
-
}, null, 8, ["value"])) : o("", !0)]))])]);
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
//#endregion
|
|
71
|
-
export { O as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components61.js","names":[],"sources":["../src/components/data-table/DataCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Column } from '@/types/data-list'\nimport { getColumnValue } from '@/utils/dataList'\nimport CopyToClipboard from '@/components/CopyToClipboard.vue'\nimport Loader from '@/components/Loader.vue'\nimport { computed, isVNode, type VNode } from 'vue'\nimport { shortUuid } from '@/utils/dataListConverters'\n\nconst props = withDefaults(\n defineProps<{\n item: Record<string, unknown>\n col: Column\n copy?: boolean\n }>(),\n {\n copy: true,\n },\n)\n\nconst columnValue = computed<string | VNode>(() => getColumnValue(props.item, props.col))\nconst isVnodeValue = computed(() => isVNode(columnValue.value))\n\nconst uuIdValue = computed(() => {\n return shortUuid()(columnValue.value as string)\n})\n\nconst datetimeParts = computed<{ date: string; time: string } | null>(() => {\n if (props.col.type !== 'datetime') return null\n const value = columnValue.value as string\n if (!value) return { date: '', time: '' }\n const spaceIdx = value.indexOf(' ')\n if (spaceIdx === -1) return { date: value, time: '' }\n return {\n date: value.slice(0, spaceIdx),\n time: value.slice(spaceIdx + 1),\n }\n})\n</script>\n<template>\n <span class=\"dc-cell\">\n <slot name=\"cell\" :item=\"item\" :col=\"col\" :value=\"columnValue\">\n <span v-if=\"col.loading?.()\" class=\"dc-loading\">\n <Loader :loading=\"true\" size=\"1rem\" />\n </span>\n\n <component :is=\"columnValue\" v-else-if=\"isVnodeValue\" />\n\n <span v-else-if=\"col.type === 'uuid'\" v-tooltip=\"columnValue\">\n <span v-html=\"uuIdValue\"></span>\n <CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n <span v-else-if=\"col.type === 'datetime'\" class=\"dc-datetime\">\n <span class=\"dc-datetime__part\">{{ datetimeParts?.date }}</span\n ><span v-if=\"datetimeParts?.time\" class=\"dc-datetime__sep\"> </span\n ><span class=\"dc-datetime__part\">{{ datetimeParts?.time }}</span>\n <CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n\n <span v-else\n ><span v-html=\"columnValue\"></span\n ><CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n </slot>\n </span>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAQA,IAAM,IAAQ,GAWR,IAAc,QAA+B,EAAe,EAAM,MAAM,EAAM,GAAG,CAAC,GAClF,IAAe,QAAe,EAAQ,EAAY,KAAK,CAAC,GAExD,IAAY,QACT,EAAU,EAAE,EAAY,KAAe,CAC/C,GAEK,IAAgB,QAAsD;GAC1E,IAAI,EAAM,IAAI,SAAS,YAAY,OAAO;GAC1C,IAAM,IAAQ,EAAY;GAC1B,IAAI,CAAC,GAAO,OAAO;IAAE,MAAM;IAAI,MAAM;GAAG;GACxC,IAAM,IAAW,EAAM,QAAQ,GAAG;GAElC,OADI,MAAa,KAAW;IAAE,MAAM;IAAO,MAAM;GAAG,IAC7C;IACL,MAAM,EAAM,MAAM,GAAG,CAAQ;IAC7B,MAAM,EAAM,MAAM,IAAW,CAAC;GAChC;EACF,CAAC;;;eAGC,EAwBO,QAxBP,GAwBO,CAvBL,EAsBO,EAAA,QAAA,QAAA;IAtBY,MAAM,EAAA;IAAO,KAAK,EAAA;IAAM,OAAO,EAAA;YAsB3C,CArBO,EAAA,IAAI,UAAO,KAAA,EAAA,GAAvB,EAEO,QAFP,GAEO,CADL,EAAsC,GAAA;IAA7B,SAAS;IAAM,MAAK;WAGS,EAAA,SAAA,EAAA,GAAxC,EAAwD,EAAxC,EAAA,KAAW,GAAA,EAAA,KAAA,EAAA,CAAA,KAEV,EAAA,IAAI,SAAI,SAAA,GAAA,EAAA,GAAzB,EAGO,QAAA,GAAA,CAFL,EAAgC,QAAA,EAA1B,WAAQ,EAAA,MAAS,GAAA,MAAA,GAAA,CAAA,GACA,EAAA,QAAQ,EAAA,SAAA,EAAA,GAA/B,EAAmE,GAAA;;IAAtB,OAAO,EAAA;gDAFL,EAAA,KAAW,CAAA,CAAA,IAI3C,EAAA,IAAI,SAAI,cAAA,EAAA,GAAzB,EAKO,QALP,GAKO;IAJL,EACC,QADD,GACC,EADkC,EAAA,OAAe,IAAI,GAAA,CAAA;IACzC,EAAA,OAAe,QAAA,EAAA,GAA3B,EACA,QADA,CACA,KAAA,EAAA,IAAA,EAAA;IAAA,EAAgE,QAAhE,GAAgE,EAA7B,EAAA,OAAe,IAAI,GAAA,CAAA;IAChC,EAAA,QAAQ,EAAA,SAAA,EAAA,GAA/B,EAAmE,GAAA;;KAAtB,OAAO,EAAA;;eAGtD,EAGO,QAAA,GAAA,CAFJ,EACA,QAAA,EADM,WAAQ,EAAA,MAAW,GAAA,MAAA,GAAA,CAAA,GACF,EAAA,QAAQ,EAAA,SAAA,EAAA,GAA/B,EAAmE,GAAA;;IAAtB,OAAO,EAAA"}
|
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
import e from "./admins-components6.js";
|
|
2
|
-
import t from "./admins-components34.js";
|
|
3
|
-
import { dataCardsSettingsDefaults as n, dataListSettingsDefaults as r, dataTableSettingsDefaults as i } from "./admins-components58.js";
|
|
4
|
-
import { deepMerge as a } from "./admins-components71.js";
|
|
5
|
-
import { Fragment as o, computed as s, createBlock as ee, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, onMounted as te, openBlock as h, ref as g, renderList as _, resolveDirective as ne, toDisplayString as v, watch as re, withCtx as ie, withDirectives as y, withModifiers as b } from "vue";
|
|
6
|
-
//#region src/components/data-table/DataListOptions.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var ae = { class: "table-options" }, oe = { class: "table-options__col" }, se = { class: "table-options__title" }, ce = { class: "table-options__title-value" }, le = { class: "layout-switch" }, ue = { class: "table-options__col" }, x = { class: "table-options__title" }, S = { class: "table-options__list" }, de = { class: "table-options__col" }, fe = { class: "table-options__title" }, pe = { class: "table-options__list" }, me = [
|
|
8
|
-
"draggable",
|
|
9
|
-
"onDragstart",
|
|
10
|
-
"onDragover",
|
|
11
|
-
"onClick"
|
|
12
|
-
], he = {
|
|
13
|
-
key: 0,
|
|
14
|
-
class: "fa-solid fa-grip-vertical table-options__drag-handle"
|
|
15
|
-
}, ge = ["onClick"], _e = {
|
|
16
|
-
key: 0,
|
|
17
|
-
class: "table-options__move-actions"
|
|
18
|
-
}, ve = ["disabled"], ye = ["disabled"], be = { class: "table-options__col" }, xe = { class: "table-options__title flex-center gap-1" }, C = { class: "table-options__list" }, w = [
|
|
19
|
-
"draggable",
|
|
20
|
-
"onDragstart",
|
|
21
|
-
"onDragover",
|
|
22
|
-
"onClick"
|
|
23
|
-
], T = {
|
|
24
|
-
key: 0,
|
|
25
|
-
class: "fa-solid fa-grip-vertical table-options__drag-handle"
|
|
26
|
-
}, E = ["onClick"], D = {
|
|
27
|
-
key: 0,
|
|
28
|
-
class: "table-options__move-actions"
|
|
29
|
-
}, O = ["disabled"], k = ["disabled"], A = { class: "table-options__footer" }, j = /* @__PURE__ */ p({
|
|
30
|
-
__name: "DataListOptions",
|
|
31
|
-
props: {
|
|
32
|
-
open: { type: Boolean },
|
|
33
|
-
columns: {},
|
|
34
|
-
settings: {},
|
|
35
|
-
position: {},
|
|
36
|
-
storageKey: {},
|
|
37
|
-
orderable: {
|
|
38
|
-
type: Boolean,
|
|
39
|
-
default: !1
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
emits: ["close", "change"],
|
|
43
|
-
setup(p, { emit: j }) {
|
|
44
|
-
let M = p, N = j, P = g(z()), F = s(() => `data-list-${M.storageKey}`), I = s(() => JSON.stringify(P.value) !== JSON.stringify(z()));
|
|
45
|
-
function L(e) {
|
|
46
|
-
return e.primary === !0 || e.hideable === !1;
|
|
47
|
-
}
|
|
48
|
-
function R(e) {
|
|
49
|
-
for (let t of M.columns) L(t) && (e.columns[t.property] = !0, e.cardHeaderColumns[t.property] = !0);
|
|
50
|
-
}
|
|
51
|
-
function z() {
|
|
52
|
-
return {
|
|
53
|
-
...n,
|
|
54
|
-
...i,
|
|
55
|
-
...r,
|
|
56
|
-
...M.settings,
|
|
57
|
-
columns: Object.fromEntries(M.columns.map((e) => [e.property, M.settings.columns?.[e.property] ?? e.visible !== !1])),
|
|
58
|
-
cardHeaderColumns: Object.fromEntries(M.columns.map((e) => [e.property, M.settings.cardHeaderColumns?.[e.property] ?? (e.primary === !0 || e.hideable === !1 || e.defaultCardHeader === !0)])),
|
|
59
|
-
columnOrder: M.settings.columnOrder ?? M.columns.map((e) => e.property),
|
|
60
|
-
cardHeaderOrder: M.settings.cardHeaderOrder ?? M.columns.map((e) => e.property)
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
function Se() {
|
|
64
|
-
try {
|
|
65
|
-
let e = localStorage.getItem(F.value), t = z();
|
|
66
|
-
if (e) {
|
|
67
|
-
let n = JSON.parse(e);
|
|
68
|
-
P.value = n.settings ? B(a(t, n.settings), M.columns) : t;
|
|
69
|
-
} else P.value = t;
|
|
70
|
-
} catch {
|
|
71
|
-
P.value = z();
|
|
72
|
-
}
|
|
73
|
-
R(P.value), N("change", P.value);
|
|
74
|
-
}
|
|
75
|
-
function B(e, t) {
|
|
76
|
-
let n = t.map((e) => e.property), r = (e) => {
|
|
77
|
-
let t = (e ?? []).filter((e) => n.includes(e)), r = new Set(t), i = [], a = 0;
|
|
78
|
-
for (let e of n) r.has(e) ? i.push(t[a++]) : i.push(e);
|
|
79
|
-
return i;
|
|
80
|
-
};
|
|
81
|
-
return {
|
|
82
|
-
...e,
|
|
83
|
-
columnOrder: r(e.columnOrder),
|
|
84
|
-
cardHeaderOrder: r(e.cardHeaderOrder)
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
function Ce() {
|
|
88
|
-
try {
|
|
89
|
-
let e = F.value, t = localStorage.getItem(e), n = t ? JSON.parse(t) : {};
|
|
90
|
-
n.settings = P.value, localStorage.setItem(e, JSON.stringify(n));
|
|
91
|
-
} catch {}
|
|
92
|
-
N("change", P.value);
|
|
93
|
-
}
|
|
94
|
-
function V(e, t) {
|
|
95
|
-
P.value = {
|
|
96
|
-
...P.value,
|
|
97
|
-
[e]: t
|
|
98
|
-
}, Ce();
|
|
99
|
-
}
|
|
100
|
-
function H(e) {
|
|
101
|
-
V("columns", {
|
|
102
|
-
...P.value.columns,
|
|
103
|
-
[e]: !P.value.columns[e]
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
function U(e) {
|
|
107
|
-
V("cardHeaderColumns", {
|
|
108
|
-
...P.value.cardHeaderColumns,
|
|
109
|
-
[e]: !P.value.cardHeaderColumns[e]
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
function W(e) {
|
|
113
|
-
V(e, !P.value[e]);
|
|
114
|
-
}
|
|
115
|
-
function G(e, t) {
|
|
116
|
-
return [...e].sort((e, n) => {
|
|
117
|
-
let r = t.indexOf(e.property), i = t.indexOf(n.property);
|
|
118
|
-
return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
let K = s(() => G(M.columns, P.value.columnOrder)), q = s(() => G(M.columns, P.value.cardHeaderOrder)), J = g(null), Y = g(null), X = g(null), Z = g(null);
|
|
122
|
-
function we(e) {
|
|
123
|
-
J.value = e;
|
|
124
|
-
}
|
|
125
|
-
function Te(e, t) {
|
|
126
|
-
if (e.preventDefault(), J.value === null || J.value === t) return;
|
|
127
|
-
let n = [...P.value.columnOrder], r = n.splice(J.value, 1)[0];
|
|
128
|
-
r && (n.splice(t, 0, r), J.value = t, V("columnOrder", n));
|
|
129
|
-
}
|
|
130
|
-
function Ee() {
|
|
131
|
-
J.value = null;
|
|
132
|
-
}
|
|
133
|
-
function De(e) {
|
|
134
|
-
Y.value = Y.value === e ? null : e;
|
|
135
|
-
}
|
|
136
|
-
function Q(e) {
|
|
137
|
-
if (Y.value === null) return;
|
|
138
|
-
let t = Y.value + e;
|
|
139
|
-
if (t < 0 || t >= P.value.columnOrder.length) return;
|
|
140
|
-
let n = [...P.value.columnOrder], r = n[Y.value];
|
|
141
|
-
n[Y.value] = n[t], n[t] = r, V("columnOrder", n), Y.value = t;
|
|
142
|
-
}
|
|
143
|
-
function Oe(e) {
|
|
144
|
-
X.value = e;
|
|
145
|
-
}
|
|
146
|
-
function ke(e, t) {
|
|
147
|
-
if (e.preventDefault(), X.value === null || X.value === t) return;
|
|
148
|
-
let n = [...P.value.cardHeaderOrder], r = n.splice(X.value, 1)[0];
|
|
149
|
-
r && (n.splice(t, 0, r), X.value = t, V("cardHeaderOrder", n));
|
|
150
|
-
}
|
|
151
|
-
function Ae() {
|
|
152
|
-
X.value = null;
|
|
153
|
-
}
|
|
154
|
-
function je(e) {
|
|
155
|
-
Z.value = Z.value === e ? null : e;
|
|
156
|
-
}
|
|
157
|
-
function $(e) {
|
|
158
|
-
if (Z.value === null) return;
|
|
159
|
-
let t = Z.value + e;
|
|
160
|
-
if (t < 0 || t >= P.value.cardHeaderOrder.length) return;
|
|
161
|
-
let n = [...P.value.cardHeaderOrder], r = n[Z.value];
|
|
162
|
-
n[Z.value] = n[t], n[t] = r, V("cardHeaderOrder", n), Z.value = t;
|
|
163
|
-
}
|
|
164
|
-
function Me() {
|
|
165
|
-
localStorage.removeItem(F.value), P.value = z(), N("change", P.value);
|
|
166
|
-
}
|
|
167
|
-
return te(Se), re(() => M.columns, () => {
|
|
168
|
-
P.value = B(P.value, M.columns), R(P.value);
|
|
169
|
-
}), (n, r) => {
|
|
170
|
-
let i = ne("tooltip");
|
|
171
|
-
return h(), ee(t, {
|
|
172
|
-
open: p.open,
|
|
173
|
-
title: "Lista beállítások",
|
|
174
|
-
position: M.position,
|
|
175
|
-
onClose: r[16] ||= (e) => N("close")
|
|
176
|
-
}, {
|
|
177
|
-
default: ie(() => [u("div", ae, [
|
|
178
|
-
u("div", oe, [u("h4", se, [r[17] ||= d(" Elrendezés ", -1), u("span", ce, "— " + v(P.value.layout === "screen" ? "Auto" : P.value.layout === "table" ? "Táblázat" : "Kártyák"), 1)]), u("div", le, [
|
|
179
|
-
u("button", {
|
|
180
|
-
class: m(["layout-switch__btn", { "layout-switch__btn--active": P.value.layout === "screen" }]),
|
|
181
|
-
title: "Kijelző méretéhez igazodó elrendezés",
|
|
182
|
-
onClick: r[0] ||= (e) => V("layout", "screen")
|
|
183
|
-
}, [...r[18] ||= [u("i", { class: "fa-solid fa-display" }, null, -1)]], 2),
|
|
184
|
-
u("button", {
|
|
185
|
-
class: m(["layout-switch__btn", { "layout-switch__btn--active": P.value.layout === "table" }]),
|
|
186
|
-
title: "Táblázat nézet",
|
|
187
|
-
onClick: r[1] ||= (e) => V("layout", "table")
|
|
188
|
-
}, [...r[19] ||= [u("i", { class: "fa-solid fa-table-list" }, null, -1)]], 2),
|
|
189
|
-
u("button", {
|
|
190
|
-
class: m(["layout-switch__btn", { "layout-switch__btn--active": P.value.layout === "cards" }]),
|
|
191
|
-
title: "Kártya nézet",
|
|
192
|
-
onClick: r[2] ||= (e) => V("layout", "cards")
|
|
193
|
-
}, [...r[20] ||= [u("i", { class: "fa-solid fa-list" }, null, -1)]], 2)
|
|
194
|
-
])]),
|
|
195
|
-
u("div", ue, [y((h(), l("h4", x, [...r[21] ||= [d(" Megjelenés ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[
|
|
196
|
-
i,
|
|
197
|
-
"<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb ",
|
|
198
|
-
void 0,
|
|
199
|
-
{ html: !0 }
|
|
200
|
-
]]), u("ul", S, [u("li", {
|
|
201
|
-
class: "table-options__item",
|
|
202
|
-
onClick: r[4] ||= (e) => W("compact"),
|
|
203
|
-
title: "A sorok közötti térköz csökkentése"
|
|
204
|
-
}, [u("span", {
|
|
205
|
-
class: m(["c-checkbox", { "c-checkbox--checked": P.value.compact }]),
|
|
206
|
-
onClick: r[3] ||= b((e) => W("compact"), ["stop"])
|
|
207
|
-
}, null, 2), r[22] ||= u("span", null, "Kompakt", -1)]), u("li", {
|
|
208
|
-
class: "table-options__item",
|
|
209
|
-
onClick: r[6] ||= (e) => W("striped"),
|
|
210
|
-
title: "A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)"
|
|
211
|
-
}, [u("span", {
|
|
212
|
-
class: m(["c-checkbox", { "c-checkbox--checked": P.value.striped }]),
|
|
213
|
-
onClick: r[5] ||= b((e) => W("striped"), ["stop"])
|
|
214
|
-
}, null, 2), r[23] ||= u("span", null, "Sávos (striped)", -1)])])]),
|
|
215
|
-
u("div", de, [
|
|
216
|
-
y((h(), l("h4", fe, [...r[24] ||= [d(" Táblázat oszlopok ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[i, "Táblázat nézetben megjelenő oszlopok"]]),
|
|
217
|
-
u("ul", pe, [(h(!0), l(o, null, _(K.value, (e, t) => (h(), l("li", {
|
|
218
|
-
key: e.property,
|
|
219
|
-
class: m(["table-options__item", {
|
|
220
|
-
"table-options__item--disabled": L(e),
|
|
221
|
-
"table-options__item--selected": p.orderable && Y.value === t,
|
|
222
|
-
"table-options__item--dragging": p.orderable && J.value === t
|
|
223
|
-
}]),
|
|
224
|
-
draggable: p.orderable,
|
|
225
|
-
onDragstart: b((e) => p.orderable && we(t), ["stop"]),
|
|
226
|
-
onDragover: b((e) => p.orderable && Te(e, t), ["prevent"]),
|
|
227
|
-
onDrop: r[7] ||= b(() => {}, ["prevent"]),
|
|
228
|
-
onDragend: r[8] ||= (e) => p.orderable && Ee(),
|
|
229
|
-
onClick: b((n) => p.orderable ? De(t) : !L(e) && H(e.property), ["prevent"])
|
|
230
|
-
}, [p.orderable ? (h(), l("i", he)) : c("", !0), u("span", {
|
|
231
|
-
class: "table-options__toggle",
|
|
232
|
-
onClick: b((t) => !L(e) && H(e.property), ["stop"])
|
|
233
|
-
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": P.value.columns[e.property] }]) }, null, 2), u("span", null, v(e.label), 1)], 8, ge)], 42, me))), 128))]),
|
|
234
|
-
p.orderable && Y.value !== null ? (h(), l("div", _e, [u("button", {
|
|
235
|
-
class: "table-options__move-btn",
|
|
236
|
-
disabled: Y.value === 0,
|
|
237
|
-
onClick: r[9] ||= (e) => Q(-1)
|
|
238
|
-
}, [...r[25] ||= [u("i", { class: "fa-solid fa-arrow-up" }, null, -1)]], 8, ve), u("button", {
|
|
239
|
-
class: "table-options__move-btn",
|
|
240
|
-
disabled: Y.value === K.value.length - 1,
|
|
241
|
-
onClick: r[10] ||= (e) => Q(1)
|
|
242
|
-
}, [...r[26] ||= [u("i", { class: "fa-solid fa-arrow-down" }, null, -1)]], 8, ye)])) : c("", !0)
|
|
243
|
-
]),
|
|
244
|
-
u("div", be, [
|
|
245
|
-
y((h(), l("h4", xe, [...r[27] ||= [d(" Kártya fejléc ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[i, "Kártya nézetben, a sorok fejlécén megjelenő oszlopok"]]),
|
|
246
|
-
u("ul", C, [(h(!0), l(o, null, _(q.value, (e, t) => (h(), l("li", {
|
|
247
|
-
key: "ch-" + e.property,
|
|
248
|
-
class: m(["table-options__item", {
|
|
249
|
-
"table-options__item--disabled": L(e),
|
|
250
|
-
"table-options__item--selected": p.orderable && Z.value === t,
|
|
251
|
-
"table-options__item--dragging": p.orderable && X.value === t
|
|
252
|
-
}]),
|
|
253
|
-
draggable: p.orderable,
|
|
254
|
-
onDragstart: b((e) => p.orderable && Oe(t), ["stop"]),
|
|
255
|
-
onDragover: b((e) => p.orderable && ke(e, t), ["prevent"]),
|
|
256
|
-
onDrop: r[11] ||= b(() => {}, ["prevent"]),
|
|
257
|
-
onDragend: r[12] ||= (e) => p.orderable && Ae(),
|
|
258
|
-
onClick: b((n) => p.orderable ? je(t) : !L(e) && U(e.property), ["prevent"])
|
|
259
|
-
}, [p.orderable ? (h(), l("i", T)) : c("", !0), u("span", {
|
|
260
|
-
class: "table-options__toggle",
|
|
261
|
-
onClick: b((t) => !L(e) && U(e.property), ["stop"])
|
|
262
|
-
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": P.value.cardHeaderColumns[e.property] }]) }, null, 2), u("span", null, v(e.label), 1)], 8, E)], 42, w))), 128))]),
|
|
263
|
-
p.orderable && Z.value !== null ? (h(), l("div", D, [u("button", {
|
|
264
|
-
class: "table-options__move-btn",
|
|
265
|
-
disabled: Z.value === 0,
|
|
266
|
-
onClick: r[13] ||= (e) => $(-1)
|
|
267
|
-
}, [...r[28] ||= [u("i", { class: "fa-solid fa-arrow-up" }, null, -1)]], 8, O), u("button", {
|
|
268
|
-
class: "table-options__move-btn",
|
|
269
|
-
disabled: Z.value === q.value.length - 1,
|
|
270
|
-
onClick: r[14] ||= (e) => $(1)
|
|
271
|
-
}, [...r[29] ||= [u("i", { class: "fa-solid fa-arrow-down" }, null, -1)]], 8, k)])) : c("", !0)
|
|
272
|
-
])
|
|
273
|
-
]), u("div", A, [f(e, {
|
|
274
|
-
icon: "fa-solid fa-triangle-exclamation",
|
|
275
|
-
disabled: !I.value,
|
|
276
|
-
label: "Alapértelmezés visszaállítása",
|
|
277
|
-
size: "small",
|
|
278
|
-
onClick: Me
|
|
279
|
-
}, null, 8, ["disabled"]), f(e, {
|
|
280
|
-
label: "OK",
|
|
281
|
-
onClick: r[15] ||= (e) => N("close")
|
|
282
|
-
})])]),
|
|
283
|
-
_: 1
|
|
284
|
-
}, 8, ["open", "position"]);
|
|
285
|
-
};
|
|
286
|
-
}
|
|
287
|
-
});
|
|
288
|
-
//#endregion
|
|
289
|
-
export { j as default };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components72.js","names":[],"sources":["../src/components/data-table/DataListOptions.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Column, DataListSettings } from '@/types/data-list'\nimport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\nimport { deepMerge } from '@/utils/objects'\nimport Button from '@/components/Button.vue'\n\nexport interface DataListOptionsProps {\n open?: boolean\n columns: Column[]\n settings: Partial<DataListSettings>\n position?: SidebarPosition\n storageKey: string\n orderable?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, watch } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nconst props = withDefaults(defineProps<DataListOptionsProps>(), {\n orderable: false,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [settings: DataListSettings]\n}>()\n\nconst local = ref<DataListSettings>(getDefaults())\n\nconst storageKey = computed(() => `data-list-${props.storageKey}`)\n\nconst hasCustomSettings = computed(\n () => JSON.stringify(local.value) !== JSON.stringify(getDefaults()),\n)\n\nfunction isColumnLocked(col: Column): boolean {\n return col.primary === true || col.hideable === false\n}\n\n// Force locked columns to true in both column maps, regardless of saved state.\nfunction applyLockedOverrides(s: DataListSettings) {\n for (const col of props.columns) {\n if (isColumnLocked(col)) {\n s.columns[col.property] = true\n s.cardHeaderColumns[col.property] = true\n }\n }\n}\n\nfunction getDefaults(): DataListSettings {\n return {\n ...dataCardsSettingsDefaults,\n ...dataTableSettingsDefaults,\n ...dataListSettingsDefaults,\n ...props.settings,\n columns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.columns?.[c.property] ?? c.visible !== false,\n ]),\n ),\n cardHeaderColumns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.cardHeaderColumns?.[c.property] ??\n (c.primary === true || c.hideable === false || c.defaultCardHeader === true),\n ]),\n ),\n columnOrder: props.settings.columnOrder ?? props.columns.map((c) => c.property),\n cardHeaderOrder: props.settings.cardHeaderOrder ?? props.columns.map((c) => c.property),\n } as DataListSettings\n}\n\nfunction load() {\n try {\n const raw = localStorage.getItem(storageKey.value)\n const defaults = getDefaults()\n if (raw) {\n const data = JSON.parse(raw)\n local.value = data.settings\n ? reconcileOrders(deepMerge(defaults, data.settings) as DataListSettings, props.columns)\n : defaults\n } else {\n local.value = defaults\n }\n } catch {\n local.value = getDefaults()\n }\n applyLockedOverrides(local.value)\n emit('change', local.value)\n}\n\nfunction reconcileOrders(settings: DataListSettings, columns: Column[]): DataListSettings {\n const sourceOrder = columns.map((c) => c.property)\n const reconcile = (order: string[] | undefined): string[] => {\n // Saved order, restricted to columns that still exist in the source config.\n const saved = (order ?? []).filter((p) => sourceOrder.includes(p))\n const savedSet = new Set(saved)\n // Walk the source-code order. For each property:\n // - if it was saved, pull it from the saved sequence in saved order\n // - if it's new, insert it at its source-code position\n const merged: string[] = []\n let savedIdx = 0\n for (const property of sourceOrder) {\n if (savedSet.has(property)) {\n merged.push(saved[savedIdx++]!)\n } else {\n merged.push(property)\n }\n }\n return merged\n }\n return {\n ...settings,\n columnOrder: reconcile(settings.columnOrder),\n cardHeaderOrder: reconcile(settings.cardHeaderOrder),\n }\n}\n\nfunction save() {\n try {\n const key = storageKey.value\n const raw = localStorage.getItem(key)\n const data = raw ? JSON.parse(raw) : {}\n data.settings = local.value\n localStorage.setItem(key, JSON.stringify(data))\n } catch {\n /* ignore */\n }\n emit('change', local.value)\n}\n\nfunction update<K extends keyof DataListSettings>(key: K, value: DataListSettings[K]) {\n local.value = { ...local.value, [key]: value }\n save()\n}\n\nfunction toggleColumn(property: string) {\n update('columns', { ...local.value.columns, [property]: !local.value.columns[property] })\n}\n\nfunction toggleCardHeaderColumn(property: string) {\n update('cardHeaderColumns', {\n ...local.value.cardHeaderColumns,\n [property]: !local.value.cardHeaderColumns[property],\n })\n}\n\nfunction toggle(key: 'striped' | 'compact') {\n update(key, !local.value[key])\n}\n\nfunction sortByOrder(cols: Column[], order: string[]) {\n return [...cols].sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n}\n\nconst orderedColumns = computed(() => sortByOrder(props.columns, local.value.columnOrder))\n\nconst orderedCardHeaderColumns = computed(() =>\n sortByOrder(props.columns, local.value.cardHeaderOrder),\n)\n\nconst dragIndex = ref<number | null>(null)\nconst selectedReorderIndex = ref<number | null>(null)\n\nconst cardHeaderDragIndex = ref<number | null>(null)\nconst selectedCardHeaderIndex = ref<number | null>(null)\n\nfunction onDragStart(index: number) {\n dragIndex.value = index\n}\n\nfunction onDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (dragIndex.value === null || dragIndex.value === index) return\n const order = [...local.value.columnOrder]\n const moved = order.splice(dragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n dragIndex.value = index\n update('columnOrder', order)\n}\n\nfunction onDragEnd() {\n dragIndex.value = null\n}\n\nfunction selectForReorder(index: number) {\n selectedReorderIndex.value = selectedReorderIndex.value === index ? null : index\n}\n\nfunction moveSelected(direction: -1 | 1) {\n if (selectedReorderIndex.value === null) return\n const target = selectedReorderIndex.value + direction\n if (target < 0 || target >= local.value.columnOrder.length) return\n const order = [...local.value.columnOrder]\n const tmp = order[selectedReorderIndex.value]!\n order[selectedReorderIndex.value] = order[target]!\n order[target] = tmp\n update('columnOrder', order)\n selectedReorderIndex.value = target\n}\n\nfunction onCardHeaderDragStart(index: number) {\n cardHeaderDragIndex.value = index\n}\n\nfunction onCardHeaderDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (cardHeaderDragIndex.value === null || cardHeaderDragIndex.value === index) return\n const order = [...local.value.cardHeaderOrder]\n const moved = order.splice(cardHeaderDragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n cardHeaderDragIndex.value = index\n update('cardHeaderOrder', order)\n}\n\nfunction onCardHeaderDragEnd() {\n cardHeaderDragIndex.value = null\n}\n\nfunction selectCardHeader(index: number) {\n selectedCardHeaderIndex.value = selectedCardHeaderIndex.value === index ? null : index\n}\n\nfunction moveCardHeader(direction: -1 | 1) {\n if (selectedCardHeaderIndex.value === null) return\n const target = selectedCardHeaderIndex.value + direction\n if (target < 0 || target >= local.value.cardHeaderOrder.length) return\n const order = [...local.value.cardHeaderOrder]\n const tmp = order[selectedCardHeaderIndex.value]!\n order[selectedCardHeaderIndex.value] = order[target]!\n order[target] = tmp\n update('cardHeaderOrder', order)\n selectedCardHeaderIndex.value = target\n}\n\nfunction reset() {\n localStorage.removeItem(storageKey.value)\n local.value = getDefaults()\n emit('change', local.value)\n}\n\nonMounted(load)\n\n// If the columns prop changes at runtime, re-reconcile the orders so new\n// columns appear at their source-code position, and re-apply locked overrides.\nwatch(() => props.columns, () => {\n local.value = reconcileOrders(local.value, props.columns)\n applyLockedOverrides(local.value)\n})\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Lista beállítások\" :position=\"props.position\" @close=\"emit('close')\">\n <div class=\"table-options\">\n <div class=\"table-options__col\">\n <h4 class=\"table-options__title\">\n Elrendezés\n <span class=\"table-options__title-value\"\n >—\n {{\n local.layout === 'screen' ? 'Auto' : local.layout === 'table' ? 'Táblázat' : 'Kártyák'\n }}</span\n >\n </h4>\n <div class=\"layout-switch\">\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'screen' }\"\n title=\"Kijelző méretéhez igazodó elrendezés\"\n @click=\"update('layout', 'screen')\"\n >\n <i class=\"fa-solid fa-display\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'table' }\"\n title=\"Táblázat nézet\"\n @click=\"update('layout', 'table')\"\n >\n <i class=\"fa-solid fa-table-list\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'cards' }\"\n title=\"Kártya nézet\"\n @click=\"update('layout', 'cards')\"\n >\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n </div>\n <div class=\"table-options__col\">\n <h4\n class=\"table-options__title\"\n v-tooltip.html=\"\n '<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb '\"\n >\n Megjelenés <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"table-options__list\">\n <li\n class=\"table-options__item\"\n @click=\"toggle('compact')\"\n title=\"A sorok közötti térköz csökkentése\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.compact }\"\n @click.stop=\"toggle('compact')\"\n ></span>\n <span>Kompakt</span>\n </li>\n <li\n class=\"table-options__item\"\n @click=\"toggle('striped')\"\n title=\"A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.striped }\"\n @click.stop=\"toggle('striped')\"\n ></span>\n <span>Sávos (striped)</span>\n </li>\n </ul>\n </div>\n <div class=\"table-options__col\">\n <h4 class=\"table-options__title\" v-tooltip=\"'Táblázat nézetben megjelenő oszlopok'\">\n Táblázat oszlopok <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"table-options__list\">\n <li\n v-for=\"(col, index) in orderedColumns\"\n :key=\"col.property\"\n class=\"table-options__item\"\n :class=\"{\n 'table-options__item--disabled': isColumnLocked(col),\n 'table-options__item--selected': orderable && selectedReorderIndex === index,\n 'table-options__item--dragging': orderable && dragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onDragStart(index)\"\n @dragover.prevent=\"orderable && onDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onDragEnd()\"\n @click.prevent=\"\n orderable ? selectForReorder(index) : !isColumnLocked(col) && toggleColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical table-options__drag-handle\"></i>\n <span\n class=\"table-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.columns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div v-if=\"orderable && selectedReorderIndex !== null\" class=\"table-options__move-actions\">\n <button\n class=\"table-options__move-btn\"\n :disabled=\"selectedReorderIndex === 0\"\n @click=\"moveSelected(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"table-options__move-btn\"\n :disabled=\"selectedReorderIndex === orderedColumns.length - 1\"\n @click=\"moveSelected(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n <div class=\"table-options__col\">\n <h4\n class=\"table-options__title flex-center gap-1\"\n v-tooltip=\"'Kártya nézetben, a sorok fejlécén megjelenő oszlopok'\"\n >\n Kártya fejléc <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"table-options__list\">\n <li\n v-for=\"(col, index) in orderedCardHeaderColumns\"\n :key=\"'ch-' + col.property\"\n class=\"table-options__item\"\n :class=\"{\n 'table-options__item--disabled': isColumnLocked(col),\n 'table-options__item--selected': orderable && selectedCardHeaderIndex === index,\n 'table-options__item--dragging': orderable && cardHeaderDragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onCardHeaderDragStart(index)\"\n @dragover.prevent=\"orderable && onCardHeaderDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onCardHeaderDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectCardHeader(index)\n : !isColumnLocked(col) && toggleCardHeaderColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical table-options__drag-handle\"></i>\n <span\n class=\"table-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleCardHeaderColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.cardHeaderColumns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div\n v-if=\"orderable && selectedCardHeaderIndex !== null\"\n class=\"table-options__move-actions\"\n >\n <button\n class=\"table-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === 0\"\n @click=\"moveCardHeader(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"table-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === orderedCardHeaderColumns.length - 1\"\n @click=\"moveCardHeader(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n </div>\n <div class=\"table-options__footer\">\n <Button\n icon=\"fa-solid fa-triangle-exclamation\"\n :disabled=\"!hasCustomSettings\"\n label=\"Alapértelmezés visszaállítása\"\n size=\"small\"\n @click=\"reset\"\n />\n <Button label=\"OK\" @click=\"emit('close')\" />\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-options.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
//#region src/utils/url.ts
|
|
2
|
-
function e(e) {
|
|
3
|
-
return new URLSearchParams(window.location.search).get(e);
|
|
4
|
-
}
|
|
5
|
-
function t(e) {
|
|
6
|
-
let t = new URLSearchParams(e.search), n = t.get("page"), r = t.get("pageSize");
|
|
7
|
-
n == null && r == null || (t.delete("page"), t.delete("pageSize"), r != null && t.append("pageSize", r), n != null && t.append("page", n), e.search = t.toString());
|
|
8
|
-
}
|
|
9
|
-
function n(e, n) {
|
|
10
|
-
let r = new URL(window.location.href);
|
|
11
|
-
r.searchParams.set(e, String(n)), t(r), window.history.replaceState({}, "", r.toString());
|
|
12
|
-
}
|
|
13
|
-
function r(e) {
|
|
14
|
-
let n = new URL(window.location.href);
|
|
15
|
-
e ? n.searchParams.delete(e) : n.search = "", t(n), window.history.replaceState({}, "", n.toString());
|
|
16
|
-
}
|
|
17
|
-
function i(t) {
|
|
18
|
-
let n = e(t);
|
|
19
|
-
if (n == null) return null;
|
|
20
|
-
let r = Number(n);
|
|
21
|
-
return Number.isFinite(r) && r > 0 ? r : null;
|
|
22
|
-
}
|
|
23
|
-
function a(e, t, i) {
|
|
24
|
-
let { handleUrl: a, removeWhenDefault: o = !0, default: s } = i;
|
|
25
|
-
if (a) {
|
|
26
|
-
if ((t == null || t === "" || s !== void 0 && t === s) && o) {
|
|
27
|
-
r(e);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
n(e, String(t));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function o(...e) {
|
|
34
|
-
return e.map((e, t) => t === 0 ? e.replace(/\/+$/, "") : e.replace(/^\/+|\/+$/g, "")).filter(Boolean).join("/");
|
|
35
|
-
}
|
|
36
|
-
function s(e, t) {
|
|
37
|
-
if (t === "_blank") {
|
|
38
|
-
window.open(e, "_blank");
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
window.self === window.top ? window.location.href = e : window.top.location.href = e;
|
|
42
|
-
}
|
|
43
|
-
//#endregion
|
|
44
|
-
export { e as getUrlParam, o as joinUrl, s as navigateIframe, i as readUrlNumber, r as removeUrlParam, n as setUrlParam, a as writeUrlOrRemove };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components76.js","names":[],"sources":["../src/utils/url.ts"],"sourcesContent":["export function getUrlParam(key: string): string | null {\n return new URLSearchParams(window.location.search).get(key)\n}\n\nfunction paginationAtEnd(url: URL) {\n const params = new URLSearchParams(url.search)\n const page = params.get('page')\n const pageSize = params.get('pageSize')\n if (page == null && pageSize == null) return\n params.delete('page')\n params.delete('pageSize')\n if (pageSize != null) params.append('pageSize', pageSize)\n if (page != null) params.append('page', page)\n url.search = params.toString()\n}\n\nexport function setUrlParam(key: string, value: string | number): void {\n const url = new URL(window.location.href)\n url.searchParams.set(key, String(value))\n paginationAtEnd(url)\n window.history.replaceState({}, '', url.toString())\n}\n\nexport function removeUrlParam(key?: string): void {\n const url = new URL(window.location.href)\n if (key) {\n url.searchParams.delete(key)\n } else {\n url.search = ''\n }\n paginationAtEnd(url)\n window.history.replaceState({}, '', url.toString())\n}\n\n/** Read a URL param as a positive number. Returns `null` if missing or invalid. */\nexport function readUrlNumber(key: string): number | null {\n const raw = getUrlParam(key)\n if (raw == null) return null\n const n = Number(raw)\n return Number.isFinite(n) && n > 0 ? n : null\n}\n\n/** Read a URL param as a boolean. Accepts `'true' | '1' | 'false' | '0'`. Returns `null` otherwise. */\nexport function readUrlBool(key: string): boolean | null {\n const raw = getUrlParam(key)\n if (raw === 'true' || raw === '1') return true\n if (raw === 'false' || raw === '0') return false\n return null\n}\n\n/** Read a URL param as a non-empty string. Returns `null` if missing or empty. */\nexport function readUrlString(key: string): string | null {\n const raw = getUrlParam(key)\n return raw ? raw : null\n}\n\ninterface WriteUrlOptions {\n handleUrl: boolean\n /**\n * If the new value equals the default (or is `''` / `null`), the URL param\n * is *removed* rather than set. Keeps URLs clean. Defaults to `true`.\n */\n removeWhenDefault?: boolean\n default?: unknown\n}\n\n/**\n * Write a value to the URL — or remove the param if `handleUrl` is `false`,\n * or if the value matches the default / is empty.\n */\nexport function writeUrlOrRemove(\n key: string,\n value: string | number | boolean | null | undefined,\n options: WriteUrlOptions,\n): void {\n const { handleUrl, removeWhenDefault = true, default: defaultValue } = options\n if (!handleUrl) return\n const isEmpty = value == null || value === ''\n const isDefault = defaultValue !== undefined && value === defaultValue\n if ((isEmpty || isDefault) && removeWhenDefault) {\n removeUrlParam(key)\n return\n }\n setUrlParam(key, String(value))\n}\n\nexport function joinUrl(...parts: string[]): string {\n return parts\n .map((part, i) => {\n if (i === 0) return part.replace(/\\/+$/, '')\n return part.replace(/^\\/+|\\/+$/g, '')\n })\n .filter(Boolean)\n .join('/')\n}\n\nexport function navigateIframe(url: string, target?: string): void {\n if (target === '_blank') {\n window.open(url, '_blank')\n return\n }\n\n const isIframe = window.self !== window.top\n\n if (isIframe) {\n window.top!.location.href = url\n } else {\n window.location.href = url\n }\n}\n/* export function navigateIframe(url: string, target?: string): void {\n const isIframe = window.self !== window.top\n if (target === '_blank') {\n window.open(url, '_blank')\n return\n }\n if (!isIframe) {\n window.location.href = url\n return\n }\n top!.window.location.href = url\n} */\n/*\nexport function setupIframeNavigation(element: HTMLAnchorElement): () => void {\n const handleClick = (event: MouseEvent) => {\n if (event.ctrlKey || event.metaKey) {\n event.preventDefault()\n navigateIframe(element.getAttribute('href')!, '_blank')\n return\n }\n\n event.preventDefault()\n navigateIframe(element.getAttribute('href')!)\n }\n\n const handleAuxClick = (event: MouseEvent) => {\n if (event.button !== 1) return\n\n event.preventDefault()\n navigateIframe(element.getAttribute('href')!, '_blank')\n }\n\n element.addEventListener('click', handleClick)\n element.addEventListener('auxclick', handleAuxClick)\n\n return () => {\n element.removeEventListener('click', handleClick)\n element.removeEventListener('auxclick', handleAuxClick)\n }\n} */\n"],"mappings":";AAAA,SAAgB,EAAY,GAA4B;CACtD,OAAO,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,CAAG;AAC5D;AAEA,SAAS,EAAgB,GAAU;CACjC,IAAM,IAAS,IAAI,gBAAgB,EAAI,MAAM,GACvC,IAAO,EAAO,IAAI,MAAM,GACxB,IAAW,EAAO,IAAI,UAAU;CAClC,KAAQ,QAAQ,KAAY,SAChC,EAAO,OAAO,MAAM,GACpB,EAAO,OAAO,UAAU,GACpB,KAAY,QAAM,EAAO,OAAO,YAAY,CAAQ,GACpD,KAAQ,QAAM,EAAO,OAAO,QAAQ,CAAI,GAC5C,EAAI,SAAS,EAAO,SAAS;AAC/B;AAEA,SAAgB,EAAY,GAAa,GAA8B;CACrE,IAAM,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI;CAGxC,AAFA,EAAI,aAAa,IAAI,GAAK,OAAO,CAAK,CAAC,GACvC,EAAgB,CAAG,GACnB,OAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,EAAI,SAAS,CAAC;AACpD;AAEA,SAAgB,EAAe,GAAoB;CACjD,IAAM,IAAM,IAAI,IAAI,OAAO,SAAS,IAAI;CAOxC,AANI,IACF,EAAI,aAAa,OAAO,CAAG,IAE3B,EAAI,SAAS,IAEf,EAAgB,CAAG,GACnB,OAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,EAAI,SAAS,CAAC;AACpD;AAGA,SAAgB,EAAc,GAA4B;CACxD,IAAM,IAAM,EAAY,CAAG;CAC3B,IAAI,KAAO,MAAM,OAAO;CACxB,IAAM,IAAI,OAAO,CAAG;CACpB,OAAO,OAAO,SAAS,CAAC,KAAK,IAAI,IAAI,IAAI;AAC3C;AA8BA,SAAgB,EACd,GACA,GACA,GACM;CACN,IAAM,EAAE,cAAW,uBAAoB,IAAM,SAAS,MAAiB;CAClE,OAGL;OAFgB,KAAS,QAAQ,MAAU,MACzB,MAAiB,KAAA,KAAa,MAAU,MAC5B,GAAmB;GAC/C,EAAe,CAAG;GAClB;EACF;EACA,EAAY,GAAK,OAAO,CAAK,CAAC;CAD9B;AAEF;AAEA,SAAgB,EAAQ,GAAG,GAAyB;CAClD,OAAO,EACJ,KAAK,GAAM,MACN,MAAM,IAAU,EAAK,QAAQ,QAAQ,EAAE,IACpC,EAAK,QAAQ,cAAc,EAAE,CACrC,EACA,OAAO,OAAO,EACd,KAAK,GAAG;AACb;AAEA,SAAgB,EAAe,GAAa,GAAuB;CACjE,IAAI,MAAW,UAAU;EACvB,OAAO,KAAK,GAAK,QAAQ;EACzB;CACF;CAIA,AAFiB,OAAO,SAAS,OAAO,MAKtC,OAAO,SAAS,OAAO,IAFvB,OAAO,IAAK,SAAS,OAAO;AAIhC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { getFullStorageKey as e } from "./admins-components75.js";
|
|
2
|
-
import { getUrlParam as t, removeUrlParam as n, setUrlParam as r } from "./admins-components76.js";
|
|
3
|
-
import { parseDropdownValue as i } from "./admins-components83.js";
|
|
4
|
-
//#region src/utils/dataFilters.ts
|
|
5
|
-
function a(e, t, n = !0) {
|
|
6
|
-
let r = o(e), i = Object.keys(r).length > 0, a = (i ? null : c(t))?.values ?? {}, s = {};
|
|
7
|
-
for (let t of e) {
|
|
8
|
-
if (t.type === "separator") continue;
|
|
9
|
-
let e;
|
|
10
|
-
if (t.key in r) e = r[t.key];
|
|
11
|
-
else if (i) continue;
|
|
12
|
-
else if (t.key in a) e = a[t.key];
|
|
13
|
-
else if (t.value !== void 0) e = t.value;
|
|
14
|
-
else continue;
|
|
15
|
-
if (e != null) if (n && t.transformer) {
|
|
16
|
-
let n = t.transformer(e);
|
|
17
|
-
n && Object.assign(s, n);
|
|
18
|
-
} else s[t.key] = e;
|
|
19
|
-
}
|
|
20
|
-
return s;
|
|
21
|
-
}
|
|
22
|
-
function o(e) {
|
|
23
|
-
let n = {};
|
|
24
|
-
for (let r of e) {
|
|
25
|
-
if (r.type === "separator") continue;
|
|
26
|
-
let e = t(r.key);
|
|
27
|
-
e && (n[r.key] = u(r.type, e, r.value));
|
|
28
|
-
}
|
|
29
|
-
return n;
|
|
30
|
-
}
|
|
31
|
-
function s(t) {
|
|
32
|
-
try {
|
|
33
|
-
let n = e("filters", t), r = JSON.parse(localStorage.getItem(n) ?? "[]");
|
|
34
|
-
return Array.isArray(r) ? r.filter((e) => e && typeof e == "object" && typeof e.id == "string" && e.values && typeof e.savedAt == "string") : [];
|
|
35
|
-
} catch {
|
|
36
|
-
return [];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function c(e) {
|
|
40
|
-
return s(e).find((e) => e.isDefault) ?? null;
|
|
41
|
-
}
|
|
42
|
-
function l(e) {
|
|
43
|
-
return Object.fromEntries(Object.entries(e).filter(([e, t]) => t !== null && t !== "" && t !== void 0));
|
|
44
|
-
}
|
|
45
|
-
function u(e, t, n) {
|
|
46
|
-
if (e === "number") {
|
|
47
|
-
let e = Number(t);
|
|
48
|
-
return isNaN(e) ? n ?? null : e;
|
|
49
|
-
}
|
|
50
|
-
return e === "date" || e === "datetime" ? { utc: t } : e === "daterange" || e === "datetimerange" ? d(t, n) : e === "dropdown" ? i(t) : e === "checkbox" ? t === "true" : t;
|
|
51
|
-
}
|
|
52
|
-
function d(e, t) {
|
|
53
|
-
try {
|
|
54
|
-
let t = JSON.parse(e);
|
|
55
|
-
return t && typeof t == "object" && "local" in t && t.local && (t.local = new Date(t.local)), t;
|
|
56
|
-
} catch {
|
|
57
|
-
return t ?? null;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
function f(e, t) {
|
|
61
|
-
for (let i of e) {
|
|
62
|
-
if (i.type === "separator") continue;
|
|
63
|
-
let e = t[i.key];
|
|
64
|
-
e == null || e === "" ? n(i.key) : i.type === "date" || i.type === "datetime" ? r(i.key, e.utc) : typeof e == "object" ? r(i.key, JSON.stringify(e)) : r(i.key, String(e));
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
//#endregion
|
|
68
|
-
export { l as filterEmptyValues, a as getDefaultFilters, c as getDefaultSavedFilter, o as getFilterUrlParams, s as getSavedFilters, f as writeFilterParams };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components84.js","names":[],"sources":["../src/utils/dataFilters.ts"],"sourcesContent":["import type { FilterItem } from '@/components/data-table/DataFilters.vue'\nimport type { SavedFilter } from '@/components/data-table/FiltersHistory.vue'\nimport { parseDropdownValue } from '@/utils/filterDisplay'\nimport { getFullStorageKey } from '@/utils/storageKey'\nimport { getUrlParam, setUrlParam, removeUrlParam } from '@/utils/url'\n\n export function getDefaultFilters(\n items: FilterItem[],\n storageKey?: string,\n useTransformers = true,\n): Record<string, unknown> {\n const urlFilters = getFilterUrlParams(items)\n const hasUrlParams = Object.keys(urlFilters).length > 0\n const defaultFilter = hasUrlParams ? null : getDefaultSavedFilter(storageKey)\n const defaultSavedValues = defaultFilter?.values ?? {}\n\n const result: Record<string, unknown> = {}\n\n for (const item of items) {\n if (item.type === 'separator') continue\n\n let value: unknown\n\n if (item.key in urlFilters) {\n value = urlFilters[item.key]\n } else if (hasUrlParams) {\n continue\n } else if (item.key in defaultSavedValues) {\n value = defaultSavedValues[item.key]\n } else if (item.value !== undefined) {\n value = item.value\n } else {\n continue\n }\n\n if (value == null) continue\n\n if (useTransformers && item.transformer) {\n const transformed = item.transformer(value)\n if (transformed) {\n Object.assign(result, transformed)\n }\n } else {\n result[item.key] = value\n }\n }\n\n return result\n}\n\nexport function getFilterUrlParams(items: FilterItem[]): Record<string, unknown> {\n const result: Record<string, unknown> = {}\n\n for (const item of items) {\n if (item.type === 'separator') continue\n\n const raw = getUrlParam(item.key)\n if (raw) {\n result[item.key] = parseFilterValue(item.type, raw, item.value)\n }\n }\n return result\n}\n\nexport function getSavedFilters(storageKey?: string): SavedFilter[] {\n try {\n const fullStorageKey = getFullStorageKey('filters', storageKey)\n const parsed = JSON.parse(localStorage.getItem(fullStorageKey) ?? '[]')\n return Array.isArray(parsed)\n ? parsed.filter(\n (e) =>\n e &&\n typeof e === 'object' &&\n typeof e.id === 'string' &&\n e.values &&\n typeof e.savedAt === 'string',\n )\n : []\n } catch {\n return []\n }\n}\n\nexport function getDefaultSavedFilter(storageKey?: string): SavedFilter | null {\n const savedFilters = getSavedFilters(storageKey)\n return savedFilters.find((f) => f.isDefault) ?? null\n}\n\nexport function filterEmptyValues(filters: Record<string, any>): Record<string, any> {\n return Object.fromEntries(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Object.entries(filters).filter(([_, val]) => val !== null && val !== '' && val !== undefined),\n )\n}\n\nfunction parseFilterValue(type: FilterItem['type'], raw: string, fallback: unknown): unknown {\n if (type === 'number') {\n const n = Number(raw)\n return isNaN(n) ? (fallback ?? null) : n\n }\n if (type === 'date' || type === 'datetime') {\n return { utc: raw }\n }\n if (type === 'daterange' || type === 'datetimerange') {\n return parseRangeValue(raw, fallback)\n }\n if (type === 'dropdown') {\n return parseDropdownValue(raw)\n }\n if (type === 'checkbox') {\n return raw === 'true'\n }\n\n return raw\n}\n\nfunction parseRangeValue(raw: string, fallback: unknown): unknown {\n try {\n const parsed = JSON.parse(raw)\n if (parsed && typeof parsed === 'object' && 'local' in parsed && parsed.local) {\n parsed.local = new Date(parsed.local)\n }\n return parsed\n } catch {\n return fallback ?? null\n }\n}\n\nexport function writeFilterParams(items: FilterItem[], vals: Record<string, unknown>) {\n for (const item of items) {\n if (item.type === 'separator') continue\n const v = vals[item.key]\n if (v === null || v === undefined || v === '') {\n removeUrlParam(item.key)\n } else if (item.type === 'date' || item.type === 'datetime') {\n setUrlParam(item.key, (v as { utc: string }).utc)\n } else if (typeof v === 'object') {\n setUrlParam(item.key, JSON.stringify(v))\n } else {\n setUrlParam(item.key, String(v))\n }\n }\n}\n"],"mappings":"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"}
|