admins-components 9.0.68 → 9.0.70
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 +44 -43
- package/dist/admins-components103.js +102 -94
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components12.js +41 -31
- package/dist/admins-components12.js.map +1 -1
- package/dist/admins-components29.js +19 -19
- package/dist/admins-components29.js.map +1 -1
- package/dist/admins-components30.js.map +1 -1
- package/dist/admins-components5.js +4 -1
- package/dist/admins-components5.js.map +1 -1
- package/dist/admins-components57.js +86 -24
- package/dist/admins-components57.js.map +1 -1
- package/dist/admins-components58.js +4 -9
- package/dist/admins-components58.js.map +1 -1
- package/dist/admins-components59.js +24 -6
- package/dist/admins-components59.js.map +1 -1
- package/dist/admins-components6.js.map +1 -1
- package/dist/admins-components60.js +9 -31
- package/dist/admins-components60.js.map +1 -1
- package/dist/admins-components61.js +8 -0
- package/dist/admins-components61.js.map +1 -0
- package/dist/admins-components62.js +31 -6
- package/dist/admins-components62.js.map +1 -1
- package/dist/admins-components64.js +6 -70
- package/dist/admins-components64.js.map +1 -1
- package/dist/admins-components65.js +96 -4
- package/dist/admins-components65.js.map +1 -1
- package/dist/admins-components66.js +65 -84
- package/dist/admins-components66.js.map +1 -1
- package/dist/admins-components67.js +1 -1
- package/dist/admins-components67.js.map +1 -1
- package/dist/admins-components68.js +34 -26
- package/dist/admins-components68.js.map +1 -1
- package/dist/admins-components70.js +1 -1
- package/dist/admins-components70.js.map +1 -1
- package/dist/admins-components71.js +33 -29
- package/dist/admins-components71.js.map +1 -1
- package/dist/admins-components73.js +1 -1
- package/dist/admins-components73.js.map +1 -1
- package/dist/admins-components75.js +1 -1
- package/dist/main.css +1 -1
- package/dist/main.css.map +1 -1
- package/dist/src/components/data-table/DataCards.vue.d.ts +6 -0
- package/dist/src/components/data-table/DataList.vue.d.ts +4 -0
- package/dist/src/components/data-table/DataTable.vue.d.ts +6 -0
- package/dist/src/composables/useDropdownAnchor.d.ts +12 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/package.json +1 -1
- package/dist/admins-components63.js +0 -97
- package/dist/admins-components63.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components60.js","names":[],"sources":["../src/
|
|
1
|
+
{"version":3,"file":"admins-components60.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 defaultCardHeader?: boolean\n label: string\n property: string\n sort?: Sort | boolean\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 class?: string\n config?: Record<string, any>\n disabled?: (item: any) => boolean\n hidden?: (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 class?: string\n config?: Record<string, any>\n items: Action[]\n disabled?: (item: any) => boolean\n hidden?: (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":";AAyGA,IAAa,IAA+C;CAC1D,SAAS;CACT,SAAS;AACX,GAEa,IAA+C,EAC1D,SAAS,GACX,GAEa,IAAsD;CACjE,QAAQ;CACR,SAAS;AACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components61.js","names":[],"sources":["../src/utils/dataList.ts"],"sourcesContent":["import type { Column } from '@/types/data-list'\nimport type { Action, ActionGroup } from '@/types/data-list'\nimport type { DropdownMenuItem } from '@/components/DropdownMenu.vue'\n\nexport function getColumnValue(item: Record<string, unknown>, col: Column | undefined) {\n if (!col) return ''\n const value = (item as any)[col.property]\n return col.converter ? col.converter(value, item) : value\n}\n\nexport function isUuid(str: string): boolean {\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(str)\n}\n\nexport function isActionGroup(entry: Action | ActionGroup): entry is ActionGroup {\n return (entry as ActionGroup).isGroup === true && Array.isArray((entry as ActionGroup).items)\n}\n\nexport function buildActionGroupMenuItems(\n group: ActionGroup,\n item: Record<string, unknown>,\n): DropdownMenuItem[] {\n return group.items.map((action: Action) => ({\n icon: action.icon,\n label: action.label ?? '',\n type: action.type,\n size: action.label ? 'small' : 'normal',\n callback: () => action.callback(item),\n }))\n}\n"],"mappings":";AAIA,SAAgB,EAAe,GAA+B,GAAyB;CACrF,IAAI,CAAC,GAAK,OAAO;CACjB,IAAM,IAAS,EAAa,EAAI;CAChC,OAAO,EAAI,YAAY,EAAI,UAAU,GAAO,CAAI,IAAI;AACtD"}
|
|
@@ -1,7 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
/*
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, defineComponent as i, normalizeClass as a, openBlock as o, ref as s, renderList as c, toDisplayString as l } from "vue";
|
|
2
|
+
//#region src/components/data-table/TagList.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
+
var u = ["aria-expanded", "title"], d = /* @__PURE__ */ i({
|
|
4
|
+
__name: "TagList",
|
|
5
|
+
props: {
|
|
6
|
+
items: { default: () => [] },
|
|
7
|
+
visibleCount: { default: 3 },
|
|
8
|
+
class: { default: void 0 }
|
|
9
|
+
},
|
|
10
|
+
setup(i) {
|
|
11
|
+
let d = i, f = s(!1), p = t(() => d.items.length), m = t(() => Math.max(0, p.value - d.visibleCount)), h = t(() => f.value || p.value <= d.visibleCount ? d.items : d.items.slice(0, d.visibleCount)), g = t(() => f.value ? 0 : m.value);
|
|
12
|
+
function _(e) {
|
|
13
|
+
return e == null ? "" : typeof e == "string" ? e : e.label ?? (e.id == null ? "" : String(e.id));
|
|
14
|
+
}
|
|
15
|
+
function v() {
|
|
16
|
+
f.value = !f.value;
|
|
17
|
+
}
|
|
18
|
+
return (t, i) => (o(), r("span", { class: a(["tag-list", d.class]) }, [(o(!0), r(e, null, c(h.value, (e, t) => (o(), r("span", {
|
|
19
|
+
key: t,
|
|
20
|
+
class: "tag-list__item"
|
|
21
|
+
}, l(_(e)) + l(t < h.value.length - 1 ? "," : ""), 1))), 128)), g.value > 0 ? (o(), r("button", {
|
|
22
|
+
key: 0,
|
|
23
|
+
type: "button",
|
|
24
|
+
class: "tag-list__toggle",
|
|
25
|
+
"aria-expanded": f.value,
|
|
26
|
+
title: f.value ? "Összecsukás" : `További ${g.value} megjelenítése`,
|
|
27
|
+
onClick: v
|
|
28
|
+
}, " +" + l(g.value), 9, u)) : n("", !0)], 2));
|
|
29
|
+
}
|
|
30
|
+
});
|
|
6
31
|
//#endregion
|
|
7
|
-
export {
|
|
32
|
+
export { d as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components62.js","names":[],"sources":["../src/components/data-table/TagList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\n\ninterface TagListProps {\n items: Array<string | { label?: string; id?: string | number }>\n visibleCount?: number\n class?: string\n}\n\nconst props = withDefaults(defineProps<TagListProps>(), {\n visibleCount: 3,\n items: () => [],\n class: undefined,\n})\n\nconst expanded = ref(false)\n\nconst total = computed(() => props.items.length)\nconst overflow = computed(() => Math.max(0, total.value - props.visibleCount))\n\nconst visibleItems = computed(() => {\n if (expanded.value || total.value <= props.visibleCount) {\n return props.items\n }\n return props.items.slice(0, props.visibleCount)\n})\n\nconst hiddenCount = computed(() => {\n return expanded.value ? 0 : overflow.value\n})\n\nfunction labelOf(item: TagListProps['items'][number]): string {\n if (item == null) return ''\n if (typeof item === 'string') return item\n return item.label ?? (item.id != null ? String(item.id) : '')\n}\n\nfunction toggle() {\n expanded.value = !expanded.value\n}\n</script>\n\n<template>\n <span class=\"tag-list\" :class=\"props.class\">\n <span v-for=\"(item, i) in visibleItems\" :key=\"i\" class=\"tag-list__item\"\n >{{ labelOf(item) }}{{ i < visibleItems.length - 1 ? ',' : '' }}</span\n >\n<!-- <template v-for=\"(item, i) in visibleItems\" :key=\"i\"\n >{{ labelOf(item) }}{{ i < visibleItems.length - 1 ? ', ' : '' }}</template\n > -->\n <button\n v-if=\"hiddenCount > 0\"\n type=\"button\"\n class=\"tag-list__toggle\"\n :aria-expanded=\"expanded\"\n :title=\"expanded ? 'Összecsukás' : `További ${hiddenCount} megjelenítése`\"\n @click=\"toggle\"\n >\n +{{ hiddenCount }}\n </button>\n <!-- <button\n v-else-if=\"expanded && total > visibleCount\"\n type=\"button\"\n class=\"tag-list__toggle tag-list__toggle--collapse\"\n :aria-expanded=\"expanded\"\n title=\"Összecsukás\"\n @click=\"toggle\"\n >\n <i class=\"fa-solid fa-fw fa-chevron-up\" aria-hidden=\"true\"></i>\n </button> -->\n </span>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/tag-list.scss\"></style>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"admins-components62.js","names":[],"sources":["../src/components/data-table/TagList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\n\ninterface TagListProps {\n items: Array<string | { label?: string; id?: string | number }>\n visibleCount?: number\n class?: string\n}\n\nconst props = withDefaults(defineProps<TagListProps>(), {\n visibleCount: 3,\n items: () => [],\n class: undefined,\n})\n\nconst expanded = ref(false)\n\nconst total = computed(() => props.items.length)\nconst overflow = computed(() => Math.max(0, total.value - props.visibleCount))\n\nconst visibleItems = computed(() => {\n if (expanded.value || total.value <= props.visibleCount) {\n return props.items\n }\n return props.items.slice(0, props.visibleCount)\n})\n\nconst hiddenCount = computed(() => {\n return expanded.value ? 0 : overflow.value\n})\n\nfunction labelOf(item: TagListProps['items'][number]): string {\n if (item == null) return ''\n if (typeof item === 'string') return item\n return item.label ?? (item.id != null ? String(item.id) : '')\n}\n\nfunction toggle() {\n expanded.value = !expanded.value\n}\n</script>\n\n<template>\n <span class=\"tag-list\" :class=\"props.class\">\n <span v-for=\"(item, i) in visibleItems\" :key=\"i\" class=\"tag-list__item\"\n >{{ labelOf(item) }}{{ i < visibleItems.length - 1 ? ',' : '' }}</span\n >\n<!-- <template v-for=\"(item, i) in visibleItems\" :key=\"i\"\n >{{ labelOf(item) }}{{ i < visibleItems.length - 1 ? ', ' : '' }}</template\n > -->\n <button\n v-if=\"hiddenCount > 0\"\n type=\"button\"\n class=\"tag-list__toggle\"\n :aria-expanded=\"expanded\"\n :title=\"expanded ? 'Összecsukás' : `További ${hiddenCount} megjelenítése`\"\n @click=\"toggle\"\n >\n +{{ hiddenCount }}\n </button>\n <!-- <button\n v-else-if=\"expanded && total > visibleCount\"\n type=\"button\"\n class=\"tag-list__toggle tag-list__toggle--collapse\"\n :aria-expanded=\"expanded\"\n title=\"Összecsukás\"\n @click=\"toggle\"\n >\n <i class=\"fa-solid fa-fw fa-chevron-up\" aria-hidden=\"true\"></i>\n </button> -->\n </span>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/tag-list.scss\"></style>\n"],"mappings":";;;;;;;;;;EASA,IAAM,IAAQ,GAMR,IAAW,EAAI,EAAK,GAEpB,IAAQ,QAAe,EAAM,MAAM,MAAM,GACzC,IAAW,QAAe,KAAK,IAAI,GAAG,EAAM,QAAQ,EAAM,YAAY,CAAC,GAEvE,IAAe,QACf,EAAS,SAAS,EAAM,SAAS,EAAM,eAClC,EAAM,QAER,EAAM,MAAM,MAAM,GAAG,EAAM,YAAY,CAC/C,GAEK,IAAc,QACX,EAAS,QAAQ,IAAI,EAAS,KACtC;EAED,SAAS,EAAQ,GAA6C;GAG5D,OAFI,KAAQ,OAAa,KACrB,OAAO,KAAS,WAAiB,IAC9B,EAAK,UAAU,EAAK,MAAM,OAAyB,KAAlB,OAAO,EAAK,EAAE;EACxD;EAEA,SAAS,IAAS;GAChB,EAAS,QAAQ,CAAC,EAAS;EAC7B;yBAIE,EA2BO,QAAA,EA3BD,OAAK,EAAA,CAAC,YAAmB,EAAM,KAAK,CAAA,EAAA,GAAA,EAAA,EAAA,EAAA,GACxC,EAEC,GAAA,MAAA,EAFyB,EAAA,QAAZ,GAAM,YAApB,EAEC,QAAA;GAFwC,KAAK;GAAG,OAAM;OACjD,EAAQ,CAAI,CAAA,IAAA,EAAO,IAAI,EAAA,MAAa,SAAM,IAAA,MAAA,EAAA,GAAA,CAAA,YAMxC,EAAA,QAAW,KAAA,EAAA,GADnB,EASS,UAAA;;GAPP,MAAK;GACL,OAAM;GACL,iBAAe,EAAA;GACf,OAAO,EAAA,QAAQ,gBAAA,WAA8B,EAAA,MAAW;GACxD,SAAO;KACT,OACE,EAAG,EAAA,KAAW,GAAA,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,GAAA,CAAA"}
|
|
@@ -1,71 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
});
|
|
1
|
+
import './src/styles/components/data-table/tag-list.scss_vue_type_style_index_0_src_true_lang.css';
|
|
2
|
+
import e from "./admins-components62.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
//#region src/components/data-table/TagList.vue
|
|
5
|
+
var t = e;
|
|
70
6
|
//#endregion
|
|
71
|
-
export {
|
|
7
|
+
export { t as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components64.js","names":[],"sources":["../src/components/data-table/
|
|
1
|
+
{"version":3,"file":"admins-components64.js","names":[],"sources":["../src/components/data-table/TagList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\n\ninterface TagListProps {\n items: Array<string | { label?: string; id?: string | number }>\n visibleCount?: number\n class?: string\n}\n\nconst props = withDefaults(defineProps<TagListProps>(), {\n visibleCount: 3,\n items: () => [],\n class: undefined,\n})\n\nconst expanded = ref(false)\n\nconst total = computed(() => props.items.length)\nconst overflow = computed(() => Math.max(0, total.value - props.visibleCount))\n\nconst visibleItems = computed(() => {\n if (expanded.value || total.value <= props.visibleCount) {\n return props.items\n }\n return props.items.slice(0, props.visibleCount)\n})\n\nconst hiddenCount = computed(() => {\n return expanded.value ? 0 : overflow.value\n})\n\nfunction labelOf(item: TagListProps['items'][number]): string {\n if (item == null) return ''\n if (typeof item === 'string') return item\n return item.label ?? (item.id != null ? String(item.id) : '')\n}\n\nfunction toggle() {\n expanded.value = !expanded.value\n}\n</script>\n\n<template>\n <span class=\"tag-list\" :class=\"props.class\">\n <span v-for=\"(item, i) in visibleItems\" :key=\"i\" class=\"tag-list__item\"\n >{{ labelOf(item) }}{{ i < visibleItems.length - 1 ? ',' : '' }}</span\n >\n<!-- <template v-for=\"(item, i) in visibleItems\" :key=\"i\"\n >{{ labelOf(item) }}{{ i < visibleItems.length - 1 ? ', ' : '' }}</template\n > -->\n <button\n v-if=\"hiddenCount > 0\"\n type=\"button\"\n class=\"tag-list__toggle\"\n :aria-expanded=\"expanded\"\n :title=\"expanded ? 'Összecsukás' : `További ${hiddenCount} megjelenítése`\"\n @click=\"toggle\"\n >\n +{{ hiddenCount }}\n </button>\n <!-- <button\n v-else-if=\"expanded && total > visibleCount\"\n type=\"button\"\n class=\"tag-list__toggle tag-list__toggle--collapse\"\n :aria-expanded=\"expanded\"\n title=\"Összecsukás\"\n @click=\"toggle\"\n >\n <i class=\"fa-solid fa-fw fa-chevron-up\" aria-hidden=\"true\"></i>\n </button> -->\n </span>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/tag-list.scss\"></style>\n"],"mappings":""}
|
|
@@ -1,5 +1,97 @@
|
|
|
1
|
-
import e from "./admins-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { castToDate as e, formatDate as t } from "./admins-components3.js";
|
|
2
|
+
import n from "./admins-components64.js";
|
|
3
|
+
import { h as r } from "vue";
|
|
4
|
+
//#region src/utils/dataListConverters.ts
|
|
5
|
+
function i(n = !1, r) {
|
|
6
|
+
return (i) => {
|
|
7
|
+
let a = e(i);
|
|
8
|
+
return a ? r ? t(a, r) : n ? t(a, "YYYY-MM-DD HH:mm") : t(a, "YYYY-MM-DD") : "";
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
function a(e = 3) {
|
|
12
|
+
return (t) => {
|
|
13
|
+
if (!t) return "";
|
|
14
|
+
let n = typeof t == "string" ? t : String(t);
|
|
15
|
+
return `${n.slice(0, e)}...${n.slice(-e)}`;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function o(n = "YYYY-MM-DD") {
|
|
19
|
+
return (r) => {
|
|
20
|
+
let i = e(r);
|
|
21
|
+
return i ? t(i, n) : "";
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function s(e = 60, t = "…") {
|
|
25
|
+
return (n) => {
|
|
26
|
+
let r = typeof n == "string" ? n : n == null ? "" : String(n);
|
|
27
|
+
return r.length <= e ? r : r.slice(0, e).trimEnd() + t;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function c(e = "Igen", t = "Nem", n = "") {
|
|
31
|
+
return (r) => r === !0 ? e : r === !1 ? t : n;
|
|
32
|
+
}
|
|
33
|
+
function l(e, t) {
|
|
34
|
+
return (n) => {
|
|
35
|
+
if (n == null) return t ?? "";
|
|
36
|
+
let r = String(n);
|
|
37
|
+
return r in e ? e[r] : t ?? n;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function u(e = 0, t = "hu-HU") {
|
|
41
|
+
return (n) => {
|
|
42
|
+
let r = typeof n == "number" ? n : Number(n);
|
|
43
|
+
return Number.isFinite(r) ? r.toLocaleString(t, {
|
|
44
|
+
minimumFractionDigits: e,
|
|
45
|
+
maximumFractionDigits: e
|
|
46
|
+
}) : n;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function d(e = "HUF", t = "hu-HU", n = 0) {
|
|
50
|
+
return (r) => {
|
|
51
|
+
let i = typeof r == "number" ? r : Number(r);
|
|
52
|
+
return Number.isFinite(i) ? i.toLocaleString(t, {
|
|
53
|
+
style: "currency",
|
|
54
|
+
currency: e,
|
|
55
|
+
minimumFractionDigits: n,
|
|
56
|
+
maximumFractionDigits: n
|
|
57
|
+
}) : r;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function f(e = ", ", t = !1) {
|
|
61
|
+
return (n) => {
|
|
62
|
+
if (Array.isArray(n)) {
|
|
63
|
+
let r = n.map(String);
|
|
64
|
+
if (!t || r.length === 0) return r.join(e);
|
|
65
|
+
let [i, ...a] = r;
|
|
66
|
+
return `<strong>${i}</strong>${a.length ? e + a.join(e) : ""}`;
|
|
67
|
+
}
|
|
68
|
+
return n == null ? "" : String(n);
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function p(e = {}) {
|
|
72
|
+
let { visibleCount: t = 3, class: i } = e;
|
|
73
|
+
return (e) => Array.isArray(e) ? r(n, {
|
|
74
|
+
items: e,
|
|
75
|
+
visibleCount: t,
|
|
76
|
+
class: i
|
|
77
|
+
}) : r(n, {
|
|
78
|
+
items: [],
|
|
79
|
+
visibleCount: t,
|
|
80
|
+
class: i
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
var m = (e) => e, h = {
|
|
84
|
+
utcToLocalString: i,
|
|
85
|
+
localToLocalString: o,
|
|
86
|
+
shortUuid: a,
|
|
87
|
+
textEllipse: s,
|
|
88
|
+
booleanToString: c,
|
|
89
|
+
enumMap: l,
|
|
90
|
+
formatNumber: u,
|
|
91
|
+
formatCurrency: d,
|
|
92
|
+
listToString: f,
|
|
93
|
+
tagList: p,
|
|
94
|
+
identity: m
|
|
95
|
+
};
|
|
4
96
|
//#endregion
|
|
5
|
-
export {
|
|
97
|
+
export { c as booleanToString, h as dataListConverters, l as enumMap, d as formatCurrency, u as formatNumber, m as identity, f as listToString, o as localToLocalString, a as shortUuid, p as tagList, s as textEllipse, i as utcToLocalString };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components65.js","names":[],"sources":["../src/
|
|
1
|
+
{"version":3,"file":"admins-components65.js","names":[],"sources":["../src/utils/dataListConverters.ts"],"sourcesContent":["import { h } from 'vue'\nimport { castToDate, formatDate } from '@/utils/date'\nimport TagList from '@/components/data-table/TagList.vue'\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(\n separator = ', ',\n boldFirstItem = false,\n): Converter {\n return (value) => {\n if (Array.isArray(value)) {\n const parts = value.map(String)\n if (!boldFirstItem || parts.length === 0) {\n return parts.join(separator)\n }\n const [head, ...rest] = parts\n return `<strong>${head}</strong>${rest.length ? separator + rest.join(separator) : ''}`\n }\n if (value == null) return ''\n return String(value)\n }\n}\n/**\n * Converter that renders an array of values as a collapsed tag list.\n *\n * - `visibleCount` controls how many items show before the `+N` toggle.\n * The component lets the user expand to show every item, and re-collapse\n * via a small chevron. Expansion state is per-cell (one per row).\n * - `class` is forwarded to the wrapping element.\n *\n * Returns a Vue `VNode` so the toggle state can persist within the cell.\n */\nexport function tagList(\n options: { visibleCount?: number; class?: string } = {},\n): Converter {\n const { visibleCount = 3, class: cls } = options\n return (value) => {\n if (!Array.isArray(value)) return h(TagList, { items: [], visibleCount, class: cls })\n const items = value as Array<string | { label?: string; id?: string | number }>\n return h(TagList, { items, visibleCount, class: cls })\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 tagList,\n identity,\n} as const\n"],"mappings":";;;;AAMA,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,EACd,IAAY,MACZ,IAAgB,IACL;CACX,QAAQ,MAAU;EAChB,IAAI,MAAM,QAAQ,CAAK,GAAG;GACxB,IAAM,IAAQ,EAAM,IAAI,MAAM;GAC9B,IAAI,CAAC,KAAiB,EAAM,WAAW,GACrC,OAAO,EAAM,KAAK,CAAS;GAE7B,IAAM,CAAC,GAAM,GAAG,KAAQ;GACxB,OAAO,WAAW,EAAK,WAAW,EAAK,SAAS,IAAY,EAAK,KAAK,CAAS,IAAI;EACrF;EAEA,OADI,KAAS,OAAa,KACnB,OAAO,CAAK;CACrB;AACF;AAWA,SAAgB,EACd,IAAqD,CAAC,GAC3C;CACX,IAAM,EAAE,kBAAe,GAAG,OAAO,MAAQ;CACzC,QAAQ,MACD,MAAM,QAAQ,CAAK,IAEjB,EAAE,GAAS;EAAE,OAAA;EAAO;EAAc,OAAO;CAAI,CAAC,IAFnB,EAAE,GAAS;EAAE,OAAO,CAAC;EAAG;EAAc,OAAO;CAAI,CAAC;AAIxF;AACA,IAAa,KAAuB,MAAU,GAEjC,IAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -1,90 +1,71 @@
|
|
|
1
|
-
import e from "./admins-
|
|
2
|
-
import t from "./admins-
|
|
3
|
-
import n from "./admins-
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import e from "./admins-components25.js";
|
|
2
|
+
import t from "./admins-components45.js";
|
|
3
|
+
import { getColumnValue as n } from "./admins-components61.js";
|
|
4
|
+
import { shortUuid as r } from "./admins-components65.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",
|
|
8
18
|
props: {
|
|
9
|
-
|
|
10
|
-
|
|
19
|
+
item: {},
|
|
20
|
+
col: {},
|
|
21
|
+
copy: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
default: !0
|
|
24
|
+
}
|
|
11
25
|
},
|
|
12
|
-
setup(
|
|
13
|
-
let
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}, r = typeof e.withConfirmConfig == "function" ? e.withConfirmConfig(t) : e.withConfirmConfig;
|
|
20
|
-
return {
|
|
21
|
-
...n,
|
|
22
|
-
...r
|
|
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: ""
|
|
23
33
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}, { ref_for: !0 }, n.config), null, 16, [
|
|
59
|
-
"icon",
|
|
60
|
-
"label",
|
|
61
|
-
"items",
|
|
62
|
-
"class"
|
|
63
|
-
])) : (l(), i(e, c({
|
|
64
|
-
key: 1,
|
|
65
|
-
icon: n.icon,
|
|
66
|
-
label: n.label,
|
|
67
|
-
type: n.type,
|
|
68
|
-
size: n.label ? "small" : "normal",
|
|
69
|
-
ariaLabel: n.ariaLabel,
|
|
70
|
-
class: n.class,
|
|
71
|
-
outline: "",
|
|
72
|
-
callback: () => m(n, s.item),
|
|
73
|
-
disabled: n.disabled ? n.disabled(s.item) : !1
|
|
74
|
-
}, { ref_for: !0 }, n.config), null, 16, [
|
|
75
|
-
"icon",
|
|
76
|
-
"label",
|
|
77
|
-
"type",
|
|
78
|
-
"size",
|
|
79
|
-
"ariaLabel",
|
|
80
|
-
"class",
|
|
81
|
-
"callback",
|
|
82
|
-
"disabled"
|
|
83
|
-
]))], 64))], 64))), 128)), f.value ? (l(), i(n, c({ key: 0 }, p(f.value.action, f.value.item), {
|
|
84
|
-
onConfirm: h,
|
|
85
|
-
onCancel: v[0] ||= (e) => f.value = null
|
|
86
|
-
}), null, 16)) : a("", !0)], 64));
|
|
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
|
+
};
|
|
87
68
|
}
|
|
88
69
|
});
|
|
89
70
|
//#endregion
|
|
90
|
-
export {
|
|
71
|
+
export { O as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components66.js","names":[],"sources":["../src/components/data-table/
|
|
1
|
+
{"version":3,"file":"admins-components66.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components67.js","names":[],"sources":["../src/components/data-table/
|
|
1
|
+
{"version":3,"file":"admins-components67.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":""}
|