admins-components 9.0.84 → 9.0.86
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-components103.js +121 -117
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components51.js +1 -3
- package/dist/admins-components51.js.map +1 -1
- package/dist/admins-components52.js.map +1 -1
- package/dist/admins-components60.js +1 -0
- package/dist/admins-components60.js.map +1 -1
- package/dist/admins-components68.js +7 -4
- package/dist/admins-components68.js.map +1 -1
- package/dist/admins-components70.js.map +1 -1
- package/dist/admins-components71.js +5 -2
- package/dist/admins-components71.js.map +1 -1
- package/dist/admins-components73.js.map +1 -1
- package/dist/admins-components75.js +103 -77
- package/dist/admins-components75.js.map +1 -1
- package/dist/admins-components77.js.map +1 -1
- package/dist/admins-components80.js +49 -48
- package/dist/admins-components80.js.map +1 -1
- package/dist/admins-components82.js.map +1 -1
- package/dist/src/components/data-table/DataCards.vue.d.ts +4 -4
- package/dist/src/components/data-table/DataPaginator.vue.d.ts +3 -0
- package/dist/src/components/data-table/DataTable.vue.d.ts +4 -4
- package/dist/src/types/data-list.d.ts +2 -1
- package/dist/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-list-options.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/test.html +162 -162
- package/dist/test81.html +160 -160
- package/dist/widget.css +1 -1
- package/package.json +1 -1
|
@@ -3,19 +3,19 @@ import { getFullStorageKey as t } from "./admins-components78.js";
|
|
|
3
3
|
import { readUrlNumber as n, writeUrlOrRemove as r } from "./admins-components79.js";
|
|
4
4
|
import { Fragment as i, computed as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, normalizeClass as u, onMounted as d, openBlock as f, renderList as p, toDisplayString as m } from "vue";
|
|
5
5
|
//#region src/components/data-table/DataPaginator.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
-
var h = { class: "
|
|
6
|
+
var h = { class: "c-paginator" }, g = { class: "c-paginator__info" }, _ = { class: "c-paginator__range" }, v = { class: "c-paginator__total" }, y = {
|
|
7
7
|
class: "c-paginator__nav",
|
|
8
8
|
"aria-label": "Pagination"
|
|
9
|
-
},
|
|
9
|
+
}, b = {
|
|
10
10
|
key: 0,
|
|
11
11
|
class: "c-paginator__ellipsis"
|
|
12
|
-
},
|
|
12
|
+
}, x = ["onClick"], S = { class: "c-paginator__size" }, C = ["value"], w = ["value"], T = [
|
|
13
13
|
10,
|
|
14
14
|
25,
|
|
15
15
|
50,
|
|
16
16
|
100
|
|
17
|
-
],
|
|
18
|
-
function
|
|
17
|
+
], E = 25;
|
|
18
|
+
function D(e) {
|
|
19
19
|
let r = n("pageSize");
|
|
20
20
|
if (r != null) return r;
|
|
21
21
|
try {
|
|
@@ -27,16 +27,16 @@ function O(e) {
|
|
|
27
27
|
} catch {
|
|
28
28
|
console.warn("Failed to read page size from localStorage");
|
|
29
29
|
}
|
|
30
|
-
return
|
|
30
|
+
return E;
|
|
31
31
|
}
|
|
32
|
-
function
|
|
32
|
+
function O(e) {
|
|
33
33
|
return {
|
|
34
34
|
total: 0,
|
|
35
35
|
page: n("page") ?? 1,
|
|
36
|
-
pageSize:
|
|
36
|
+
pageSize: D(e)
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
|
-
var
|
|
39
|
+
var k = /*@__PURE__*/ l({
|
|
40
40
|
__name: "DataPaginator",
|
|
41
41
|
props: {
|
|
42
42
|
settings: {},
|
|
@@ -44,26 +44,27 @@ var A = /*@__PURE__*/ l({
|
|
|
44
44
|
handleUrl: {
|
|
45
45
|
type: Boolean,
|
|
46
46
|
default: !1
|
|
47
|
-
}
|
|
47
|
+
},
|
|
48
|
+
fontSize: { default: "normal" }
|
|
48
49
|
},
|
|
49
50
|
emits: ["update:pagination"],
|
|
50
|
-
setup(l, { emit:
|
|
51
|
-
let
|
|
52
|
-
function
|
|
51
|
+
setup(l, { emit: E }) {
|
|
52
|
+
let D = l, O = E;
|
|
53
|
+
function k(e) {
|
|
53
54
|
try {
|
|
54
|
-
localStorage.setItem(t("pagination",
|
|
55
|
+
localStorage.setItem(t("pagination", D.storageKey), String(e));
|
|
55
56
|
} catch {
|
|
56
57
|
console.warn("Failed to save page size to localStorage");
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
|
-
let
|
|
60
|
-
let e =
|
|
61
|
-
if (e <=
|
|
60
|
+
let A = a(() => Math.max(1, Math.ceil(D.settings.total / D.settings.pageSize))), j = a(() => D.settings.total === 0 ? 0 : (D.settings.page - 1) * D.settings.pageSize + 1), M = a(() => Math.min(D.settings.page * D.settings.pageSize, D.settings.total)), N = a(() => {
|
|
61
|
+
let e = A.value, t = D.settings.page;
|
|
62
|
+
if (e <= P) {
|
|
62
63
|
let t = [];
|
|
63
64
|
for (let n = 1; n <= e; n++) t.push(n);
|
|
64
65
|
return t;
|
|
65
66
|
}
|
|
66
|
-
let n =
|
|
67
|
+
let n = P - 2, r = t - 1, i = t + 1;
|
|
67
68
|
for (r < 2 && (i = Math.min(e - 1, i + (2 - r)), r = 2), i > e - 1 && (r = Math.max(2, r - (i - (e - 1))), i = e - 1); i - r + 1 < n;) {
|
|
68
69
|
let t = r > 2, a = i < e - 1;
|
|
69
70
|
if (!t && !a) break;
|
|
@@ -74,73 +75,73 @@ var A = /*@__PURE__*/ l({
|
|
|
74
75
|
s.push(1), a && s.push("...");
|
|
75
76
|
for (let e = r; e <= i; e++) s.push(e);
|
|
76
77
|
return o && s.push("..."), s.push(e), s;
|
|
77
|
-
}),
|
|
78
|
-
function
|
|
79
|
-
let t =
|
|
78
|
+
}), P = 7;
|
|
79
|
+
function F(e) {
|
|
80
|
+
let t = D.settings.page, n = A.value, r = e === 1 || e === n, i = e === t;
|
|
80
81
|
return t > 3 && t < n - 2 && !r && !i;
|
|
81
82
|
}
|
|
82
|
-
function
|
|
83
|
-
e < 1 || e >
|
|
84
|
-
handleUrl:
|
|
83
|
+
function I(e) {
|
|
84
|
+
e < 1 || e > A.value || e === D.settings.page || (r("page", e, {
|
|
85
|
+
handleUrl: D.handleUrl,
|
|
85
86
|
default: 1
|
|
86
|
-
}), r("pageSize",
|
|
87
|
+
}), r("pageSize", D.settings.pageSize, { handleUrl: D.handleUrl }), O("update:pagination", {
|
|
87
88
|
page: e,
|
|
88
|
-
pageSize:
|
|
89
|
+
pageSize: D.settings.pageSize
|
|
89
90
|
}));
|
|
90
91
|
}
|
|
91
|
-
function
|
|
92
|
+
function L(e) {
|
|
92
93
|
let t = Number(e.target.value);
|
|
93
|
-
|
|
94
|
-
handleUrl:
|
|
94
|
+
k(t), r("pageSize", t, { handleUrl: D.handleUrl }), r("page", 1, {
|
|
95
|
+
handleUrl: D.handleUrl,
|
|
95
96
|
default: 1
|
|
96
|
-
}),
|
|
97
|
+
}), O("update:pagination", {
|
|
97
98
|
page: 1,
|
|
98
99
|
pageSize: t
|
|
99
100
|
});
|
|
100
101
|
}
|
|
101
102
|
return d(() => {
|
|
102
|
-
if (!
|
|
103
|
+
if (!D.handleUrl) return;
|
|
103
104
|
let e = n("pageSize"), t = n("page");
|
|
104
|
-
e != null && t != null && (e !==
|
|
105
|
+
e != null && t != null && (e !== D.settings.pageSize || t !== D.settings.page) && O("update:pagination", {
|
|
105
106
|
page: t,
|
|
106
107
|
pageSize: e
|
|
107
108
|
});
|
|
108
|
-
}), (t, n) => (f(), o("div",
|
|
109
|
-
s("div",
|
|
110
|
-
s("nav",
|
|
109
|
+
}), (t, n) => (f(), o("div", { class: u(["ac-component c-paginator-wrapper", [`is-font-${l.fontSize}`]]) }, [s("div", h, [
|
|
110
|
+
s("div", g, [s("span", _, m(j.value) + "–" + m(M.value), 1), s("span", v, " / " + m(l.settings.total), 1)]),
|
|
111
|
+
s("nav", y, [
|
|
111
112
|
c(e, {
|
|
112
113
|
icon: "fa-solid fa-chevron-left",
|
|
113
114
|
rel: "prev",
|
|
114
115
|
disabled: l.settings.page <= 1,
|
|
115
|
-
callback: () =>
|
|
116
|
+
callback: () => I(l.settings.page - 1)
|
|
116
117
|
}, null, 8, ["disabled", "callback"]),
|
|
117
|
-
(f(!0), o(i, null, p(
|
|
118
|
+
(f(!0), o(i, null, p(N.value, (e, t) => (f(), o(i, { key: t }, [e === "..." ? (f(), o("span", b, "…")) : (f(), o("button", {
|
|
118
119
|
key: 1,
|
|
119
120
|
type: "button",
|
|
120
121
|
class: u(["c-paginator__page", {
|
|
121
122
|
"is-active": e === l.settings.page,
|
|
122
|
-
"is-hidden-sm":
|
|
123
|
+
"is-hidden-sm": F(e)
|
|
123
124
|
}]),
|
|
124
|
-
onClick: (t) =>
|
|
125
|
-
}, m(e), 11,
|
|
125
|
+
onClick: (t) => I(e)
|
|
126
|
+
}, m(e), 11, x))], 64))), 128)),
|
|
126
127
|
c(e, {
|
|
127
128
|
icon: "fa-solid fa-chevron-right",
|
|
128
129
|
rel: "next",
|
|
129
|
-
disabled: l.settings.page >=
|
|
130
|
-
callback: () =>
|
|
130
|
+
disabled: l.settings.page >= A.value,
|
|
131
|
+
callback: () => I(l.settings.page + 1)
|
|
131
132
|
}, null, 8, ["disabled", "callback"])
|
|
132
133
|
]),
|
|
133
|
-
s("div",
|
|
134
|
+
s("div", S, [s("select", {
|
|
134
135
|
class: "c-paginator__select",
|
|
135
136
|
id: "page-size-select",
|
|
136
137
|
value: l.settings.pageSize,
|
|
137
|
-
onChange:
|
|
138
|
-
}, [(f(), o(i, null, p(
|
|
138
|
+
onChange: L
|
|
139
|
+
}, [(f(), o(i, null, p(T, (e) => s("option", {
|
|
139
140
|
key: e,
|
|
140
141
|
value: e
|
|
141
|
-
}, m(e) + " elem / oldal", 9,
|
|
142
|
-
])]));
|
|
142
|
+
}, m(e) + " elem / oldal", 9, w)), 64))], 40, C)])
|
|
143
|
+
])], 2));
|
|
143
144
|
}
|
|
144
145
|
});
|
|
145
146
|
//#endregion
|
|
146
|
-
export {
|
|
147
|
+
export { k as default, O as getDefaultPaginator, D as getPageSize };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components80.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst DEFAULT_PAGE_SIZE = 25\n\nexport function getPageSize(storageKey: string): number {\n // URL > localStorage > default\n const urlSize = readUrlNumber('pageSize')\n if (urlSize != null) return urlSize\n try {\n const fullStorageKey = getFullStorageKey('pagination', storageKey)\n const raw = localStorage.getItem(fullStorageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n console.warn('Failed to read page size from localStorage')\n }\n return DEFAULT_PAGE_SIZE\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: readUrlNumber('page') ?? 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\nimport { getFullStorageKey } from '@/utils/storageKey'\nimport { readUrlNumber, writeUrlOrRemove } from '@/utils/url'\n\nconst props = withDefaults(\n defineProps<{ settings: PaginatorSettings; storageKey: string; handleUrl?: boolean }>(),\n { handleUrl: false },\n)\n\nconst emit = defineEmits<{\n 'update:pagination': [pagination: PageSettings]\n}>()\n\nfunction savePageSize(size: number) {\n try {\n localStorage.setItem(getFullStorageKey('pagination', props.storageKey), String(size))\n } catch {\n console.warn('Failed to save page size to localStorage')\n }\n}\n\nconst totalPages = computed(() =>\n Math.max(1, Math.ceil(props.settings.total / props.settings.pageSize)),\n)\n\nconst rangeStart = computed(() =>\n props.settings.total === 0 ? 0 : (props.settings.page - 1) * props.settings.pageSize + 1,\n)\nconst rangeEnd = computed(() =>\n Math.min(props.settings.page * props.settings.pageSize, props.settings.total),\n)\n\nconst visiblePages = computed<(number | '...')[]>(() => {\n const total = totalPages.value\n const current = props.settings.page\n\n if (total <= SLOT_COUNT) {\n const pages: number[] = []\n for (let i = 1; i <= total; i++) pages.push(i)\n return pages\n }\n\n const inner = SLOT_COUNT - 2\n let winStart = current - 1\n let winEnd = current + 1\n if (winStart < 2) {\n winEnd = Math.min(total - 1, winEnd + (2 - winStart))\n winStart = 2\n }\n if (winEnd > total - 1) {\n winStart = Math.max(2, winStart - (winEnd - (total - 1)))\n winEnd = total - 1\n }\n\n while (winEnd - winStart + 1 < inner) {\n const canExtendLeft = winStart > 2\n const canExtendRight = winEnd < total - 1\n if (!canExtendLeft && !canExtendRight) break\n\n const roomLeft = winStart - 2\n const roomRight = total - 1 - winEnd\n\n const ellipsisIfExtendLeft =\n ((canExtendLeft ? winStart - 1 : 0) > 2 ? 1 : 0) + (winEnd < total - 1 ? 1 : 0)\n const ellipsisIfExtendRight =\n (winStart > 2 ? 1 : 0) + ((canExtendRight ? winEnd + 1 : 0) < total - 1 ? 1 : 0)\n\n const newSize = winEnd - winStart + 2\n\n let extended = false\n if (\n canExtendLeft &&\n (roomLeft >= roomRight || !canExtendRight) &&\n newSize + ellipsisIfExtendLeft <= inner\n ) {\n winStart--\n extended = true\n } else if (canExtendRight && newSize + ellipsisIfExtendRight <= inner) {\n winEnd++\n extended = true\n }\n if (!extended) break\n }\n const showLeftEllipsis = winStart > 2\n const showRightEllipsis = winEnd < total - 1\n\n const pages: (number | '...')[] = []\n pages.push(1)\n if (showLeftEllipsis) pages.push('...')\n for (let p = winStart; p <= winEnd; p++) pages.push(p)\n if (showRightEllipsis) pages.push('...')\n pages.push(total)\n\n return pages\n})\n\nconst SLOT_COUNT = 7\n\nfunction shouldHideOnSmall(page: number) {\n const current = props.settings.page\n const total = totalPages.value\n\n const isEdge = page === 1 || page === total\n const isCurrent = page === current\n\n const isMiddleRange = current > 3 && current < total - 2\n\n return isMiddleRange && !isEdge && !isCurrent\n}\n\nfunction goToPage(page: number) {\n if (page < 1 || page > totalPages.value || page === props.settings.page) return\n writeUrlOrRemove('page', page, { handleUrl: props.handleUrl, default: 1 })\n writeUrlOrRemove('pageSize', props.settings.pageSize, { handleUrl: props.handleUrl })\n emit('update:pagination', { page, pageSize: props.settings.pageSize })\n}\n\nfunction changePageSize(event: Event) {\n const size = Number((event.target as HTMLSelectElement).value)\n savePageSize(size)\n writeUrlOrRemove('pageSize', size, { handleUrl: props.handleUrl })\n writeUrlOrRemove('page', 1, { handleUrl: props.handleUrl, default: 1 })\n emit('update:pagination', { page: 1, pageSize: size })\n}\n\nonMounted(() => {\n if (!props.handleUrl) return\n\n const urlSize = readUrlNumber('pageSize')\n const urlPage = readUrlNumber('page')\n if (urlSize == null || urlPage == null) return\n if (urlSize === props.settings.pageSize && urlPage === props.settings.page) return\n emit('update:pagination', { page: urlPage, pageSize: urlSize })\n})\n</script>\n\n<template>\n <div class=\"ac-component c-paginator-wrapper\">\n <div class=\"c-paginator\">\n <div class=\"c-paginator__info\">\n <span class=\"c-paginator__range\">{{ rangeStart }}–{{ rangeEnd }}</span>\n <span class=\"c-paginator__total\"> / {{ settings.total }}</span>\n </div>\n\n <nav class=\"c-paginator__nav\" aria-label=\"Pagination\">\n <Button\n icon=\"fa-solid fa-chevron-left\"\n rel=\"prev\"\n :disabled=\"settings.page <= 1\"\n :callback=\"() => goToPage(settings.page - 1)\"\n />\n\n <template v-for=\"(p, i) in visiblePages\" :key=\"i\">\n <span v-if=\"p === '...'\" class=\"c-paginator__ellipsis\">…</span>\n <button\n v-else\n type=\"button\"\n class=\"c-paginator__page\"\n :class=\"{\n 'is-active': p === settings.page,\n 'is-hidden-sm': shouldHideOnSmall(p),\n }\"\n @click=\"goToPage(p)\"\n >\n {{ p }}\n </button>\n </template>\n\n <Button\n icon=\"fa-solid fa-chevron-right\"\n rel=\"next\"\n :disabled=\"settings.page >= totalPages\"\n :callback=\"() => goToPage(settings.page + 1)\"\n />\n </nav>\n\n <div class=\"c-paginator__size\">\n <select\n class=\"c-paginator__select\"\n id=\"page-size-select\"\n :value=\"settings.pageSize\"\n @change=\"changePageSize\"\n >\n <option v-for=\"s in SIZE_OPTIONS\" :key=\"s\" :value=\"s\">{{ s }} elem / oldal</option>\n </select>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-paginator.scss\"></style>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admins-components80.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst DEFAULT_PAGE_SIZE = 25\n\nexport function getPageSize(storageKey: string): number {\n // URL > localStorage > default\n const urlSize = readUrlNumber('pageSize')\n if (urlSize != null) return urlSize\n try {\n const fullStorageKey = getFullStorageKey('pagination', storageKey)\n const raw = localStorage.getItem(fullStorageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n console.warn('Failed to read page size from localStorage')\n }\n return DEFAULT_PAGE_SIZE\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: readUrlNumber('page') ?? 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\nimport { getFullStorageKey } from '@/utils/storageKey'\nimport { readUrlNumber, writeUrlOrRemove } from '@/utils/url'\n\nconst props = withDefaults(\n defineProps<{\n settings: PaginatorSettings\n storageKey: string\n handleUrl?: boolean\n fontSize?: 'small' | 'normal' | 'large'\n }>(),\n { handleUrl: false, fontSize: 'normal' },\n)\n\nconst emit = defineEmits<{\n 'update:pagination': [pagination: PageSettings]\n}>()\n\nfunction savePageSize(size: number) {\n try {\n localStorage.setItem(getFullStorageKey('pagination', props.storageKey), String(size))\n } catch {\n console.warn('Failed to save page size to localStorage')\n }\n}\n\nconst totalPages = computed(() =>\n Math.max(1, Math.ceil(props.settings.total / props.settings.pageSize)),\n)\n\nconst rangeStart = computed(() =>\n props.settings.total === 0 ? 0 : (props.settings.page - 1) * props.settings.pageSize + 1,\n)\nconst rangeEnd = computed(() =>\n Math.min(props.settings.page * props.settings.pageSize, props.settings.total),\n)\n\nconst visiblePages = computed<(number | '...')[]>(() => {\n const total = totalPages.value\n const current = props.settings.page\n\n if (total <= SLOT_COUNT) {\n const pages: number[] = []\n for (let i = 1; i <= total; i++) pages.push(i)\n return pages\n }\n\n const inner = SLOT_COUNT - 2\n let winStart = current - 1\n let winEnd = current + 1\n if (winStart < 2) {\n winEnd = Math.min(total - 1, winEnd + (2 - winStart))\n winStart = 2\n }\n if (winEnd > total - 1) {\n winStart = Math.max(2, winStart - (winEnd - (total - 1)))\n winEnd = total - 1\n }\n\n while (winEnd - winStart + 1 < inner) {\n const canExtendLeft = winStart > 2\n const canExtendRight = winEnd < total - 1\n if (!canExtendLeft && !canExtendRight) break\n\n const roomLeft = winStart - 2\n const roomRight = total - 1 - winEnd\n\n const ellipsisIfExtendLeft =\n ((canExtendLeft ? winStart - 1 : 0) > 2 ? 1 : 0) + (winEnd < total - 1 ? 1 : 0)\n const ellipsisIfExtendRight =\n (winStart > 2 ? 1 : 0) + ((canExtendRight ? winEnd + 1 : 0) < total - 1 ? 1 : 0)\n\n const newSize = winEnd - winStart + 2\n\n let extended = false\n if (\n canExtendLeft &&\n (roomLeft >= roomRight || !canExtendRight) &&\n newSize + ellipsisIfExtendLeft <= inner\n ) {\n winStart--\n extended = true\n } else if (canExtendRight && newSize + ellipsisIfExtendRight <= inner) {\n winEnd++\n extended = true\n }\n if (!extended) break\n }\n const showLeftEllipsis = winStart > 2\n const showRightEllipsis = winEnd < total - 1\n\n const pages: (number | '...')[] = []\n pages.push(1)\n if (showLeftEllipsis) pages.push('...')\n for (let p = winStart; p <= winEnd; p++) pages.push(p)\n if (showRightEllipsis) pages.push('...')\n pages.push(total)\n\n return pages\n})\n\nconst SLOT_COUNT = 7\n\nfunction shouldHideOnSmall(page: number) {\n const current = props.settings.page\n const total = totalPages.value\n\n const isEdge = page === 1 || page === total\n const isCurrent = page === current\n\n const isMiddleRange = current > 3 && current < total - 2\n\n return isMiddleRange && !isEdge && !isCurrent\n}\n\nfunction goToPage(page: number) {\n if (page < 1 || page > totalPages.value || page === props.settings.page) return\n writeUrlOrRemove('page', page, { handleUrl: props.handleUrl, default: 1 })\n writeUrlOrRemove('pageSize', props.settings.pageSize, { handleUrl: props.handleUrl })\n emit('update:pagination', { page, pageSize: props.settings.pageSize })\n}\n\nfunction changePageSize(event: Event) {\n const size = Number((event.target as HTMLSelectElement).value)\n savePageSize(size)\n writeUrlOrRemove('pageSize', size, { handleUrl: props.handleUrl })\n writeUrlOrRemove('page', 1, { handleUrl: props.handleUrl, default: 1 })\n emit('update:pagination', { page: 1, pageSize: size })\n}\n\nonMounted(() => {\n if (!props.handleUrl) return\n\n const urlSize = readUrlNumber('pageSize')\n const urlPage = readUrlNumber('page')\n if (urlSize == null || urlPage == null) return\n if (urlSize === props.settings.pageSize && urlPage === props.settings.page) return\n emit('update:pagination', { page: urlPage, pageSize: urlSize })\n})\n</script>\n\n<template>\n <div class=\"ac-component c-paginator-wrapper\" :class=\"[`is-font-${fontSize}`]\">\n <div class=\"c-paginator\">\n <div class=\"c-paginator__info\">\n <span class=\"c-paginator__range\">{{ rangeStart }}–{{ rangeEnd }}</span>\n <span class=\"c-paginator__total\"> / {{ settings.total }}</span>\n </div>\n\n <nav class=\"c-paginator__nav\" aria-label=\"Pagination\">\n <Button\n icon=\"fa-solid fa-chevron-left\"\n rel=\"prev\"\n :disabled=\"settings.page <= 1\"\n :callback=\"() => goToPage(settings.page - 1)\"\n />\n\n <template v-for=\"(p, i) in visiblePages\" :key=\"i\">\n <span v-if=\"p === '...'\" class=\"c-paginator__ellipsis\">…</span>\n <button\n v-else\n type=\"button\"\n class=\"c-paginator__page\"\n :class=\"{\n 'is-active': p === settings.page,\n 'is-hidden-sm': shouldHideOnSmall(p),\n }\"\n @click=\"goToPage(p)\"\n >\n {{ p }}\n </button>\n </template>\n\n <Button\n icon=\"fa-solid fa-chevron-right\"\n rel=\"next\"\n :disabled=\"settings.page >= totalPages\"\n :callback=\"() => goToPage(settings.page + 1)\"\n />\n </nav>\n\n <div class=\"c-paginator__size\">\n <select\n class=\"c-paginator__select\"\n id=\"page-size-select\"\n :value=\"settings.pageSize\"\n @change=\"changePageSize\"\n >\n <option v-for=\"s in SIZE_OPTIONS\" :key=\"s\" :value=\"s\">{{ s }} elem / oldal</option>\n </select>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-paginator.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components82.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst DEFAULT_PAGE_SIZE = 25\n\nexport function getPageSize(storageKey: string): number {\n // URL > localStorage > default\n const urlSize = readUrlNumber('pageSize')\n if (urlSize != null) return urlSize\n try {\n const fullStorageKey = getFullStorageKey('pagination', storageKey)\n const raw = localStorage.getItem(fullStorageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n console.warn('Failed to read page size from localStorage')\n }\n return DEFAULT_PAGE_SIZE\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: readUrlNumber('page') ?? 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\nimport { getFullStorageKey } from '@/utils/storageKey'\nimport { readUrlNumber, writeUrlOrRemove } from '@/utils/url'\n\nconst props = withDefaults(\n defineProps<{
|
|
1
|
+
{"version":3,"file":"admins-components82.js","names":[],"sources":["../src/components/data-table/DataPaginator.vue"],"sourcesContent":["<script lang=\"ts\">\nconst SIZE_OPTIONS = [10, 25, 50, 100]\nconst DEFAULT_PAGE_SIZE = 25\n\nexport function getPageSize(storageKey: string): number {\n // URL > localStorage > default\n const urlSize = readUrlNumber('pageSize')\n if (urlSize != null) return urlSize\n try {\n const fullStorageKey = getFullStorageKey('pagination', storageKey)\n const raw = localStorage.getItem(fullStorageKey)\n if (raw) {\n const size = Number(raw)\n if (size > 0) return size\n }\n } catch {\n console.warn('Failed to read page size from localStorage')\n }\n return DEFAULT_PAGE_SIZE\n}\n\nexport function getDefaultPaginator(storageKey: string) {\n return {\n total: 0,\n page: readUrlNumber('page') ?? 1,\n pageSize: getPageSize(storageKey),\n } as PaginatorSettings\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted } from 'vue'\nimport Button from '@/components/Button.vue'\nimport type { PaginatorSettings, PageSettings } from '@/types/data-list'\nimport { getFullStorageKey } from '@/utils/storageKey'\nimport { readUrlNumber, writeUrlOrRemove } from '@/utils/url'\n\nconst props = withDefaults(\n defineProps<{\n settings: PaginatorSettings\n storageKey: string\n handleUrl?: boolean\n fontSize?: 'small' | 'normal' | 'large'\n }>(),\n { handleUrl: false, fontSize: 'normal' },\n)\n\nconst emit = defineEmits<{\n 'update:pagination': [pagination: PageSettings]\n}>()\n\nfunction savePageSize(size: number) {\n try {\n localStorage.setItem(getFullStorageKey('pagination', props.storageKey), String(size))\n } catch {\n console.warn('Failed to save page size to localStorage')\n }\n}\n\nconst totalPages = computed(() =>\n Math.max(1, Math.ceil(props.settings.total / props.settings.pageSize)),\n)\n\nconst rangeStart = computed(() =>\n props.settings.total === 0 ? 0 : (props.settings.page - 1) * props.settings.pageSize + 1,\n)\nconst rangeEnd = computed(() =>\n Math.min(props.settings.page * props.settings.pageSize, props.settings.total),\n)\n\nconst visiblePages = computed<(number | '...')[]>(() => {\n const total = totalPages.value\n const current = props.settings.page\n\n if (total <= SLOT_COUNT) {\n const pages: number[] = []\n for (let i = 1; i <= total; i++) pages.push(i)\n return pages\n }\n\n const inner = SLOT_COUNT - 2\n let winStart = current - 1\n let winEnd = current + 1\n if (winStart < 2) {\n winEnd = Math.min(total - 1, winEnd + (2 - winStart))\n winStart = 2\n }\n if (winEnd > total - 1) {\n winStart = Math.max(2, winStart - (winEnd - (total - 1)))\n winEnd = total - 1\n }\n\n while (winEnd - winStart + 1 < inner) {\n const canExtendLeft = winStart > 2\n const canExtendRight = winEnd < total - 1\n if (!canExtendLeft && !canExtendRight) break\n\n const roomLeft = winStart - 2\n const roomRight = total - 1 - winEnd\n\n const ellipsisIfExtendLeft =\n ((canExtendLeft ? winStart - 1 : 0) > 2 ? 1 : 0) + (winEnd < total - 1 ? 1 : 0)\n const ellipsisIfExtendRight =\n (winStart > 2 ? 1 : 0) + ((canExtendRight ? winEnd + 1 : 0) < total - 1 ? 1 : 0)\n\n const newSize = winEnd - winStart + 2\n\n let extended = false\n if (\n canExtendLeft &&\n (roomLeft >= roomRight || !canExtendRight) &&\n newSize + ellipsisIfExtendLeft <= inner\n ) {\n winStart--\n extended = true\n } else if (canExtendRight && newSize + ellipsisIfExtendRight <= inner) {\n winEnd++\n extended = true\n }\n if (!extended) break\n }\n const showLeftEllipsis = winStart > 2\n const showRightEllipsis = winEnd < total - 1\n\n const pages: (number | '...')[] = []\n pages.push(1)\n if (showLeftEllipsis) pages.push('...')\n for (let p = winStart; p <= winEnd; p++) pages.push(p)\n if (showRightEllipsis) pages.push('...')\n pages.push(total)\n\n return pages\n})\n\nconst SLOT_COUNT = 7\n\nfunction shouldHideOnSmall(page: number) {\n const current = props.settings.page\n const total = totalPages.value\n\n const isEdge = page === 1 || page === total\n const isCurrent = page === current\n\n const isMiddleRange = current > 3 && current < total - 2\n\n return isMiddleRange && !isEdge && !isCurrent\n}\n\nfunction goToPage(page: number) {\n if (page < 1 || page > totalPages.value || page === props.settings.page) return\n writeUrlOrRemove('page', page, { handleUrl: props.handleUrl, default: 1 })\n writeUrlOrRemove('pageSize', props.settings.pageSize, { handleUrl: props.handleUrl })\n emit('update:pagination', { page, pageSize: props.settings.pageSize })\n}\n\nfunction changePageSize(event: Event) {\n const size = Number((event.target as HTMLSelectElement).value)\n savePageSize(size)\n writeUrlOrRemove('pageSize', size, { handleUrl: props.handleUrl })\n writeUrlOrRemove('page', 1, { handleUrl: props.handleUrl, default: 1 })\n emit('update:pagination', { page: 1, pageSize: size })\n}\n\nonMounted(() => {\n if (!props.handleUrl) return\n\n const urlSize = readUrlNumber('pageSize')\n const urlPage = readUrlNumber('page')\n if (urlSize == null || urlPage == null) return\n if (urlSize === props.settings.pageSize && urlPage === props.settings.page) return\n emit('update:pagination', { page: urlPage, pageSize: urlSize })\n})\n</script>\n\n<template>\n <div class=\"ac-component c-paginator-wrapper\" :class=\"[`is-font-${fontSize}`]\">\n <div class=\"c-paginator\">\n <div class=\"c-paginator__info\">\n <span class=\"c-paginator__range\">{{ rangeStart }}–{{ rangeEnd }}</span>\n <span class=\"c-paginator__total\"> / {{ settings.total }}</span>\n </div>\n\n <nav class=\"c-paginator__nav\" aria-label=\"Pagination\">\n <Button\n icon=\"fa-solid fa-chevron-left\"\n rel=\"prev\"\n :disabled=\"settings.page <= 1\"\n :callback=\"() => goToPage(settings.page - 1)\"\n />\n\n <template v-for=\"(p, i) in visiblePages\" :key=\"i\">\n <span v-if=\"p === '...'\" class=\"c-paginator__ellipsis\">…</span>\n <button\n v-else\n type=\"button\"\n class=\"c-paginator__page\"\n :class=\"{\n 'is-active': p === settings.page,\n 'is-hidden-sm': shouldHideOnSmall(p),\n }\"\n @click=\"goToPage(p)\"\n >\n {{ p }}\n </button>\n </template>\n\n <Button\n icon=\"fa-solid fa-chevron-right\"\n rel=\"next\"\n :disabled=\"settings.page >= totalPages\"\n :callback=\"() => goToPage(settings.page + 1)\"\n />\n </nav>\n\n <div class=\"c-paginator__size\">\n <select\n class=\"c-paginator__select\"\n id=\"page-size-select\"\n :value=\"settings.pageSize\"\n @change=\"changePageSize\"\n >\n <option v-for=\"s in SIZE_OPTIONS\" :key=\"s\" :value=\"s\">{{ s }} elem / oldal</option>\n </select>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-paginator.scss\"></style>\n"],"mappings":""}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { DataListConfig,
|
|
1
|
+
import { DataListConfig, DataListSettings } from '../../types/data-list';
|
|
2
2
|
export { dataCardsSettingsDefaults } from '../../types/data-list';
|
|
3
3
|
declare const _default: typeof __VLS_export;
|
|
4
4
|
export default _default;
|
|
5
5
|
declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
6
6
|
config: DataListConfig;
|
|
7
7
|
items: Record<string, unknown>[];
|
|
8
|
-
settings?:
|
|
8
|
+
settings?: Partial<DataListSettings>;
|
|
9
9
|
loading?: boolean;
|
|
10
10
|
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
11
|
"selection-change": (selected: unknown[]) => any;
|
|
12
12
|
}, string, import('vue').PublicProps, Readonly<{
|
|
13
13
|
config: DataListConfig;
|
|
14
14
|
items: Record<string, unknown>[];
|
|
15
|
-
settings?:
|
|
15
|
+
settings?: Partial<DataListSettings>;
|
|
16
16
|
loading?: boolean;
|
|
17
17
|
}> & Readonly<{
|
|
18
18
|
"onSelection-change"?: ((selected: unknown[]) => any) | undefined;
|
|
19
19
|
}>, {
|
|
20
20
|
loading: boolean;
|
|
21
|
-
settings:
|
|
21
|
+
settings: Partial<DataListSettings>;
|
|
22
22
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>, {
|
|
23
23
|
[x: string]: ((props: {
|
|
24
24
|
item: any;
|
|
@@ -7,14 +7,17 @@ declare const __VLS_export: import('vue').DefineComponent<{
|
|
|
7
7
|
settings: PaginatorSettings;
|
|
8
8
|
storageKey: string;
|
|
9
9
|
handleUrl?: boolean;
|
|
10
|
+
fontSize?: "small" | "normal" | "large";
|
|
10
11
|
}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
12
|
"update:pagination": (pagination: PageSettings) => any;
|
|
12
13
|
}, string, import('vue').PublicProps, Readonly<{
|
|
13
14
|
settings: PaginatorSettings;
|
|
14
15
|
storageKey: string;
|
|
15
16
|
handleUrl?: boolean;
|
|
17
|
+
fontSize?: "small" | "normal" | "large";
|
|
16
18
|
}> & Readonly<{
|
|
17
19
|
"onUpdate:pagination"?: ((pagination: PageSettings) => any) | undefined;
|
|
18
20
|
}>, {
|
|
21
|
+
fontSize: "small" | "normal" | "large";
|
|
19
22
|
handleUrl: boolean;
|
|
20
23
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataListConfig,
|
|
1
|
+
import { DataListConfig, DataListSettings } from '../../types/data-list';
|
|
2
2
|
export type { LayoutMode, DataListConfig, DataListSettings, DataTableSettings, DataCardsSettings, Column, Sort, Action, ActionGroup, FilterConfig, FilterValue, } from '../../types/data-list';
|
|
3
3
|
export { dataTableSettingsDefaults, dataCardsSettingsDefaults, dataListSettingsDefaults, } from '../../types/data-list';
|
|
4
4
|
declare const _default: typeof __VLS_export;
|
|
@@ -6,7 +6,7 @@ export default _default;
|
|
|
6
6
|
declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
7
7
|
config: DataListConfig;
|
|
8
8
|
items: Record<string, unknown>[];
|
|
9
|
-
settings?:
|
|
9
|
+
settings?: Partial<DataListSettings>;
|
|
10
10
|
loading?: boolean;
|
|
11
11
|
initialSort?: {
|
|
12
12
|
key: string;
|
|
@@ -21,7 +21,7 @@ declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
|
21
21
|
}, string, import('vue').PublicProps, Readonly<{
|
|
22
22
|
config: DataListConfig;
|
|
23
23
|
items: Record<string, unknown>[];
|
|
24
|
-
settings?:
|
|
24
|
+
settings?: Partial<DataListSettings>;
|
|
25
25
|
loading?: boolean;
|
|
26
26
|
initialSort?: {
|
|
27
27
|
key: string;
|
|
@@ -35,7 +35,7 @@ declare const __VLS_export: __VLS_WithSlots<import('vue').DefineComponent<{
|
|
|
35
35
|
}) => any) | undefined;
|
|
36
36
|
}>, {
|
|
37
37
|
loading: boolean;
|
|
38
|
-
settings:
|
|
38
|
+
settings: Partial<DataListSettings>;
|
|
39
39
|
initialSort: {
|
|
40
40
|
key: string;
|
|
41
41
|
direction: "desc" | "asc";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DropdownOption } from '../components/DropdownSelect.vue';
|
|
2
|
-
import { PickedDate, PickedUtcRange } from './types';
|
|
2
|
+
import { ControlSize, PickedDate, PickedUtcRange } from './types';
|
|
3
3
|
import { ButtonType } from '../components/Button.vue';
|
|
4
4
|
import { ConfirmModalProps } from '../components/ConfirmModal.vue';
|
|
5
5
|
export type FilterValue = string | PickedDate | PickedUtcRange | string[] | null | undefined;
|
|
@@ -24,6 +24,7 @@ export interface DataListSettings extends DataTableSettings, DataCardsSettings {
|
|
|
24
24
|
columnOrder: string[];
|
|
25
25
|
cardHeaderOrder: string[];
|
|
26
26
|
filtersEager: boolean;
|
|
27
|
+
fontSize: ControlSize;
|
|
27
28
|
}
|
|
28
29
|
export interface PageSettings {
|
|
29
30
|
page: number;
|
package/dist/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.ac-component .c-cards-wrapper,.ac-component.c-cards-wrapper{max-height:var(--data-list-max-height,75dvh);-webkit-overflow-scrolling:touch;position:relative;overflow:auto}.c-data-list--fill-height>.ac-component .c-cards-wrapper,.c-data-list--fill-height>.ac-component.c-cards-wrapper{flex:auto;height:auto;min-height:0;max-height:none}.ac-component .c-cards-wrapper.is-loading,.ac-component.c-cards-wrapper.is-loading{touch-action:none;overflow:hidden}.ac-component .c-cards-wrapper.is-loading .c-cards,.ac-component.c-cards-wrapper.is-loading .c-cards{opacity:.45;transition:opacity .15s ease-out}.ac-component .c-cards-wrapper .c-cards,.ac-component.c-cards-wrapper .c-cards{border-top:2px solid var(--neutral-200);border-bottom:2px solid var(--neutral-200);flex-direction:column;gap:.5rem;padding:.5rem 0;font-size
|
|
1
|
+
.ac-component .c-cards-wrapper,.ac-component.c-cards-wrapper{max-height:var(--data-list-max-height,75dvh);-webkit-overflow-scrolling:touch;position:relative;overflow:auto}.c-data-list--fill-height>.ac-component .c-cards-wrapper,.c-data-list--fill-height>.ac-component.c-cards-wrapper{flex:auto;height:auto;min-height:0;max-height:none}.ac-component .c-cards-wrapper.is-loading,.ac-component.c-cards-wrapper.is-loading{touch-action:none;overflow:hidden}.ac-component .c-cards-wrapper.is-loading .c-cards,.ac-component.c-cards-wrapper.is-loading .c-cards{opacity:.45;transition:opacity .15s ease-out}.ac-component .c-cards-wrapper.is-font-small .c-cards,.ac-component.c-cards-wrapper.is-font-small .c-cards{font-size:.875rem}.ac-component .c-cards-wrapper.is-font-normal .c-cards,.ac-component.c-cards-wrapper.is-font-normal .c-cards{font-size:1rem}.ac-component .c-cards-wrapper.is-font-large .c-cards,.ac-component.c-cards-wrapper.is-font-large .c-cards{font-size:1.125rem}.ac-component .c-cards-wrapper .c-cards,.ac-component.c-cards-wrapper .c-cards{border-top:2px solid var(--neutral-200);border-bottom:2px solid var(--neutral-200);flex-direction:column;gap:.5rem;padding:.5rem 0;font-size:1rem;display:flex}.ac-component .c-cards-wrapper .c-cards button,.ac-component.c-cards-wrapper .c-cards button{font-size:inherit}.ac-component .c-cards-wrapper .c-cards.is-compact,.ac-component.c-cards-wrapper .c-cards.is-compact{gap:.25rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__header,.ac-component.c-cards-wrapper .c-cards.is-compact .c-card__header{--header-padding-y:.375rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__label,.ac-component.c-cards-wrapper .c-cards.is-compact .c-card__label{font-size:.675rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__title,.ac-component.c-cards-wrapper .c-cards.is-compact .c-card__title{font-size:inherit}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__field,.ac-component.c-cards-wrapper .c-cards.is-compact .c-card__field{min-height:unset;padding-top:.5rem;padding-bottom:.375rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__body,.ac-component.c-cards-wrapper .c-cards.is-compact .c-card__body{row-gap:.5rem;padding-bottom:.5rem}.ac-component .c-cards-wrapper .c-cards.is-compact .c-card__actions,.ac-component.c-cards-wrapper .c-cards.is-compact .c-card__actions{padding-top:0}.ac-component .c-cards-wrapper .c-cards__loading-wrap,.ac-component.c-cards-wrapper .c-cards__loading-wrap{border-top:2px solid var(--neutral-200);border-bottom:2px solid var(--neutral-200);justify-content:center;align-items:center;width:100%;padding:2rem;display:flex}.ac-component .c-cards-wrapper .c-cards__backdrop,.ac-component.c-cards-wrapper .c-cards__backdrop{z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#fff9;justify-content:center;align-items:center;animation:.15s ease-out c-cards-backdrop-in;display:flex;position:absolute;inset:0}.ac-component .c-cards-wrapper .c-card,.ac-component.c-cards-wrapper .c-card{border:1px solid var(--neutral-200);background:var(--neutral-0);border-radius:.75rem;transition:border-color .15s,box-shadow .15s}.ac-component .c-cards-wrapper .c-card.is-open,.ac-component.c-cards-wrapper .c-card.is-open{border-color:var(--premium-500)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__header,.ac-component.c-cards-wrapper .c-card.is-open .c-card__header{background:var(--premium-50)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__header:hover,.ac-component.c-cards-wrapper .c-card.is-open .c-card__header:hover{background:var(--premium-100)}.ac-component .c-cards-wrapper .c-card.is-open .c-card__icon,.ac-component.c-cards-wrapper .c-card.is-open .c-card__icon{transform:rotate(180deg)}.ac-component .c-cards-wrapper .c-card.is-selected,.ac-component.c-cards-wrapper .c-card.is-selected{border-color:var(--premium-400);box-shadow:0 0 0 1px var(--premium-200)}.ac-component .c-cards-wrapper .c-card.is-selected .c-card__header,.ac-component.c-cards-wrapper .c-card.is-selected .c-card__header{background:var(--site-100)}.ac-component .c-cards-wrapper .c-card.is-selected .c-card__header:hover,.ac-component.c-cards-wrapper .c-card.is-selected .c-card__header:hover{background:var(--site-200)}.ac-component .c-cards-wrapper .c-card__header,.ac-component.c-cards-wrapper .c-card__header{--header-padding-y:.75rem;--header-padding-x:.75rem;width:100%;padding:var(--header-padding-y) var(--header-padding-x);border-radius:inherit;background:var(--neutral-50);color:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:.5rem;line-height:1.2;transition:background-color .15s;display:flex}.ac-component .c-cards-wrapper .c-card__header:hover,.ac-component.c-cards-wrapper .c-card__header:hover{background:var(--premium-100)}.ac-component .c-cards-wrapper .c-card__check-zone,.ac-component.c-cards-wrapper .c-card__check-zone{padding:0 .5rem 0 var(--header-padding-x);margin:calc(-1 * var(--header-padding-y)) -.5rem calc(-1 * var(--header-padding-y)) calc(-1 * var(--header-padding-x));align-self:stretch;align-items:center;display:flex}.ac-component .c-cards-wrapper .c-card__check-zone .c-checkbox,.ac-component.c-cards-wrapper .c-card__check-zone .c-checkbox{width:1.25rem;height:1.25rem}.ac-component .c-cards-wrapper .c-card__heading,.ac-component.c-cards-wrapper .c-card__heading{flex-direction:row;flex:auto;gap:.5rem;min-width:0;display:flex}.ac-component .c-cards-wrapper .c-card__heading-item,.ac-component.c-cards-wrapper .c-card__heading-item{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.ac-component .c-cards-wrapper .c-card__heading-item.primary,.ac-component.c-cards-wrapper .c-card__heading-item.primary{flex:2 1 0}.ac-component .c-cards-wrapper .c-card__label,.ac-component.c-cards-wrapper .c-card__label{color:var(--neutral-600);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:700}.ac-component .c-cards-wrapper .c-card__title,.ac-component.c-cards-wrapper .c-card__title{color:var(--neutral-800);font-weight:600}.ac-component .c-cards-wrapper .c-card__icon,.ac-component.c-cards-wrapper .c-card__icon{margin:calc(-1 * var(--header-padding-y)) calc(-1 * var(--header-padding-x)) calc(-1 * var(--header-padding-y)) 0;color:var(--neutral-700);cursor:pointer;justify-content:center;align-self:stretch;align-items:center;padding:0 .75rem;transition:transform .2s;display:flex}.ac-component .c-cards-wrapper .c-card__body,.ac-component.c-cards-wrapper .c-card__body{--field-gap-x:.375rem;gap:.75rem var(--field-gap-x);flex-wrap:wrap;padding:.625rem;display:flex;container-type:inline-size}.ac-component .c-cards-wrapper .c-card__field,.ac-component.c-cards-wrapper .c-card__field{flex:1 1 calc(50% - .5 * var(--field-gap-x));border:1px solid var(--neutral-200);border-radius:8px;align-items:center;min-height:2.5rem;padding:.5rem;display:flex;position:relative}.ac-component .c-cards-wrapper .c-card__field:hover .c-copy-btn,.ac-component.c-cards-wrapper .c-card__field:hover .c-copy-btn{opacity:1}.ac-component .c-cards-wrapper .c-card__field-value,.ac-component.c-cards-wrapper .c-card__field-value{overflow-wrap:break-word;word-break:break-word;flex:1}.ac-component .c-cards-wrapper .c-card__field-label,.ac-component.c-cards-wrapper .c-card__field-label{letter-spacing:.02em;background:var(--neutral-0);color:var(--neutral-600);padding:0 .125rem;font-weight:700;position:absolute;top:-.5lh;left:.5rem}.ac-component .c-cards-wrapper .c-card__field .c-copy-btn,.ac-component.c-cards-wrapper .c-card__field .c-copy-btn{opacity:0}.ac-component .c-cards-wrapper .c-card__field-copy,.ac-component.c-cards-wrapper .c-card__field-copy{background:var(--neutral-0);padding:.125rem;position:absolute;top:-.625lh;right:.375rem}.ac-component .c-cards-wrapper .c-card__field-copy:hover,.ac-component.c-cards-wrapper .c-card__field-copy:hover{color:var(--premium-600);background:var(--background-100)}@media (hover:none),(pointer:coarse){.ac-component .c-cards-wrapper .c-card__field:focus-within,.ac-component .c-cards-wrapper .c-card__field:hover,.ac-component.c-cards-wrapper .c-card__field:focus-within,.ac-component.c-cards-wrapper .c-card__field:hover{border-color:var(--neutral-300)}.ac-component .c-cards-wrapper .c-card__field:focus-within .c-card__field-copy,.ac-component .c-cards-wrapper .c-card__field:hover .c-card__field-copy,.ac-component.c-cards-wrapper .c-card__field:focus-within .c-card__field-copy,.ac-component.c-cards-wrapper .c-card__field:hover .c-card__field-copy{opacity:1}}.ac-component .c-cards-wrapper .c-card__actions,.ac-component.c-cards-wrapper .c-card__actions{flex-wrap:wrap;flex:100%;justify-content:space-around;align-items:center;gap:.5rem;padding-top:.25rem;display:flex}@keyframes c-cards-backdrop-in{0%{opacity:0}to{opacity:1}}@container (width<=526px){.ac-component .c-cards-wrapper .c-card__field,.ac-component.c-cards-wrapper .c-card__field{flex-basis:100%}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ac-component .list-options{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.ac-component .list-options__col{min-width:0}.ac-component .list-options__title{text-transform:uppercase;letter-spacing:.03em;color:var(--neutral-600);margin:0 0 .25rem;font-size:.8rem;font-weight:600}.ac-component .list-options__title-value{text-transform:none;letter-spacing:0;color:var(--neutral-500);font-weight:400}.ac-component .list-options__list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.ac-component .list-options__item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px;align-items:center;gap:.4rem;padding:.2rem .25rem;font-size:.85rem;display:flex}.ac-component .list-options__item:hover{background:var(--neutral-100)}.ac-component .list-options__item--disabled{opacity:.5;cursor:not-allowed}.ac-component .list-options__item--disabled .c-checkbox{pointer-events:none}.ac-component .list-options__item--selected{background:var(--premium-100);border-radius:4px}.ac-component .list-options__item--dragging{opacity:.4}.ac-component .list-options__drag-handle{cursor:grab;color:#aaa;font-size:.7rem}.ac-component .list-options__drag-handle:active{cursor:grabbing}.ac-component .list-options__toggle{cursor:pointer;flex:1;align-items:center;gap:.5rem;min-width:0;padding:.25rem 0;display:flex}.ac-component .list-options__move-actions{gap:.5rem;margin-top:.5rem;display:flex}.ac-component .list-options__move-btn{border:1px solid var(--neutral-200);background:var(--neutral-0);width:2.5rem;height:2.5rem;color:var(--neutral-700);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:1rem;transition:background-color .15s,color .15s;display:flex}.ac-component .list-options__move-btn:hover:not(:disabled){background:var(--premium-100);color:var(--premium-600)}.ac-component .list-options__move-btn:disabled{opacity:.3;cursor:not-allowed}.ac-component .list-options .layout-switch{border:1px solid var(--neutral-200);border-radius:6px;margin-top:.25rem;display:inline-flex;position:relative}.ac-component .list-options .layout-switch__btn{background:var(--background-50);color:var(--neutral-600);cursor:pointer;border:none;justify-content:center;align-items:center;padding:.
|
|
1
|
+
.ac-component .list-options{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.ac-component .list-options__col{min-width:0}.ac-component .list-options__col--full{grid-column:1/-1;width:100%}.ac-component .list-options__title{text-transform:uppercase;letter-spacing:.03em;color:var(--neutral-600);margin:0 0 .25rem;font-size:.8rem;font-weight:600}.ac-component .list-options__title-value{text-transform:none;letter-spacing:0;color:var(--neutral-500);font-weight:400}.ac-component .list-options__list{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.ac-component .list-options__item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px;align-items:center;gap:.4rem;padding:.2rem .25rem;font-size:.85rem;display:flex}.ac-component .list-options__item:hover{background:var(--neutral-100)}.ac-component .list-options__item--disabled{opacity:.5;cursor:not-allowed}.ac-component .list-options__item--disabled .c-checkbox{pointer-events:none}.ac-component .list-options__item--selected{background:var(--premium-100);border-radius:4px}.ac-component .list-options__item--dragging{opacity:.4}.ac-component .list-options__drag-handle{cursor:grab;color:#aaa;font-size:.7rem}.ac-component .list-options__drag-handle:active{cursor:grabbing}.ac-component .list-options__toggle{cursor:pointer;flex:1;align-items:center;gap:.5rem;min-width:0;padding:.25rem 0;display:flex}.ac-component .list-options__move-actions{gap:.5rem;margin-top:.5rem;display:flex}.ac-component .list-options__move-btn{border:1px solid var(--neutral-200);background:var(--neutral-0);width:2.5rem;height:2.5rem;color:var(--neutral-700);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:1rem;transition:background-color .15s,color .15s;display:flex}.ac-component .list-options__move-btn:hover:not(:disabled){background:var(--premium-100);color:var(--premium-600)}.ac-component .list-options__move-btn:disabled{opacity:.3;cursor:not-allowed}.ac-component .list-options .layout-switch{border:1px solid var(--neutral-200);border-radius:6px;margin-top:.25rem;display:inline-flex;position:relative}.ac-component .list-options .layout-switch__btn{background:var(--background-50);color:var(--neutral-600);cursor:pointer;border:none;justify-content:center;align-items:center;padding:.45rem .75rem;font-size:.85rem;transition:all .15s;display:flex}.ac-component .list-options .layout-switch__btn:first-child{border-radius:5px 0 0 5px}.ac-component .list-options .layout-switch__btn:last-child{border-radius:0 5px 5px 0}.ac-component .list-options .layout-switch__btn:not(:last-child){border-right:1px solid var(--neutral-200)}.ac-component .list-options .layout-switch__btn:hover:not(.ac-component .list-options .layout-switch__btn--active){background:var(--neutral-100);color:var(--neutral-700)}.ac-component .list-options .layout-switch__btn--active{background:var(--ac-color-primary);color:var(--neutral-0)}.ac-component .list-options-footer{justify-content:space-between;align-items:center;display:flex}
|
package/dist/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.ac-component .c-data-list{width:100%;min-width:0}.ac-component .c-data-list--fill-height{--data-list-max-height:none;flex-direction:column;flex:auto;min-height:0;display:flex}.ac-component .c-data-list--fill-height>.c-table-wrapper{flex:auto;height:auto;min-height:0;max-height:none}.ac-component .c-data-list__toolbar{align-items:center;gap:.5rem;margin-bottom:.5rem;padding-
|
|
1
|
+
.ac-component .c-data-list{width:100%;min-width:0}.ac-component .c-data-list--fill-height{--data-list-max-height:none;flex-direction:column;flex:auto;min-height:0;display:flex}.ac-component .c-data-list--fill-height>.c-table-wrapper{flex:auto;height:auto;min-height:0;max-height:none}.ac-component .c-data-list__toolbar{padding-inline:.5rem;align-items:center;gap:.5rem;margin-bottom:.5rem;padding-top:.5rem;display:flex}@media (width<=1024px){.ac-component .c-data-list__toolbar{flex-wrap:wrap;padding-inline:.25rem}.ac-component .c-data-list__toolbar .flex-center-wrap-on-mobile{flex-basis:100%;order:99}}.ac-component .c-data-list__toolbar .settings-btn .fa-gear{margin-inline:-1px}.ac-component .c-data-list__toolbar__right{white-space:nowrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}@media (width<=1280px){.ac-component .c-data-list__toolbar__right{gap:.25rem}}.ac-component .c-data-list .dc-datetime{white-space:normal;display:inline}.ac-component .c-data-list .dc-datetime__part{white-space:nowrap}.ac-component .c-data-list .dc-datetime__sep{white-space:normal;width:.25em;display:inline-block}.ac-component .c-data-list .dc-loading{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.c-paginator-wrapper{padding-top:.25rem;container:paginator/inline-size}.c-paginator{background:var(--neutral-50);grid-template-columns:1fr auto 1fr;grid-template-areas:"info nav size";align-items:center;gap:.5rem;padding:.375rem;
|
|
1
|
+
.c-paginator-wrapper{padding-top:.25rem;container:paginator/inline-size}.c-paginator-wrapper.is-font-small{font-size:.875rem}.c-paginator-wrapper.is-font-normal{font-size:1rem}.c-paginator-wrapper.is-font-large{font-size:1.125rem}.c-paginator-wrapper .c-paginator,.c-paginator-wrapper .c-paginator__info,.c-paginator-wrapper .c-paginator__range,.c-paginator-wrapper .c-paginator__total,.c-paginator-wrapper .c-paginator__nav,.c-paginator-wrapper .c-paginator__page,.c-paginator-wrapper .c-paginator__ellipsis,.c-paginator-wrapper .c-paginator__size,.c-paginator-wrapper .c-paginator__select{font-size:inherit}.c-paginator-wrapper.is-font-small .c-paginator__page,.c-paginator-wrapper.is-font-small .c-paginator__select{min-width:1.75rem;height:1.75rem;padding:0 .3125rem}.c-paginator-wrapper.is-font-small .c-paginator__select{padding:.3125rem 1.75rem .3125rem .5rem}.c-paginator-wrapper.is-font-large .c-paginator__page,.c-paginator-wrapper.is-font-large .c-paginator__select{min-width:2.25rem;height:2.25rem;padding:0 .4375rem}.c-paginator-wrapper.is-font-large .c-paginator__select{padding:.4375rem 2.25rem .4375rem .75rem}.c-paginator{background:var(--neutral-50);grid-template-columns:1fr auto 1fr;grid-template-areas:"info nav size";align-items:center;gap:.5rem;padding:.375rem;display:grid;box-shadow:0 -2px 5px -1px #32325d40,0 -1px 3px -1px #0000004d}.c-paginator__info{color:var(--neutral-600);white-space:nowrap;grid-area:info;justify-self:start}.c-paginator__range{color:var(--neutral-800);font-weight:600}.c-paginator__nav{grid-area:nav;justify-self:center;align-items:center;gap:.25rem;display:flex}.c-paginator__page{min-width:2rem;height:2rem;color:var(--neutral-700);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.375rem;justify-content:center;align-items:center;padding:0 .375rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.c-paginator__page:hover{background:var(--neutral-150);border-color:var(--neutral-200)}.c-paginator__page.is-active{background:var(--ac-color-info);color:var(--neutral-0);border-color:var(--ac-color-info);cursor:default}.c-paginator__ellipsis{min-width:2rem;height:2rem;color:var(--neutral-400);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:inline-flex}.c-paginator__size{grid-area:size;justify-self:end;align-items:center;display:flex}.c-paginator__select{appearance:none;border:1px solid var(--neutral-200);background:var(--neutral-0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%234a5759'/%3E%3C/svg%3E") no-repeat right .625rem center;color:var(--neutral-800);cursor:pointer;background-size:.625rem;border-radius:.375rem;padding:.375rem 2rem .375rem .625rem;transition:border-color .15s}.c-paginator__select:hover{border-color:var(--neutral-300)}.c-paginator__select:focus{border-color:var(--ac-color-info);outline:none;box-shadow:0 0 0 2px #f265221f}@container paginator (width<=640px){.c-paginator{grid-template-columns:1fr 1fr;grid-template-areas:"nav nav""info size"}.c-paginator__nav{justify-self:center;width:max-content;max-width:100%}.c-paginator__info{text-align:left;white-space:nowrap;justify-self:start}.c-paginator__size{justify-content:flex-end;justify-self:end;display:flex}}@container paginator (width<=420px){.c-paginator .is-hidden-sm{display:none}}
|
package/dist/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.c-table-wrapper{--table-col-max-width:clamp(12rem, 10vw, 22rem);--table-primary-col-min-width:clamp(14rem, 33vw, 20rem);--table-primary-col-max-width:clamp(14rem, 28vw, 28rem);max-height:var(--data-list-max-height,75dvh);-webkit-overflow-scrolling:touch;position:relative;overflow:auto}.c-table-wrapper .c-table{--cell-padding:.375rem;border-collapse:collapse;width:100%;min-width:48rem;font-size
|
|
1
|
+
.c-table-wrapper{--table-col-max-width:clamp(12rem, 10vw, 22rem);--table-primary-col-min-width:clamp(14rem, 33vw, 20rem);--table-primary-col-max-width:clamp(14rem, 28vw, 28rem);max-height:var(--data-list-max-height,75dvh);-webkit-overflow-scrolling:touch;position:relative;overflow:auto}.c-table-wrapper.is-font-small .c-table{font-size:.875rem}.c-table-wrapper.is-font-normal .c-table{font-size:1rem}.c-table-wrapper.is-font-large .c-table{font-size:1.125rem}.c-table-wrapper .c-table{--cell-padding:.375rem;border-collapse:collapse;width:100%;min-width:48rem;font-size:1rem}.c-table-wrapper .c-table thead{z-index:2;background-color:var(--neutral-150);position:sticky;top:0;box-shadow:0 2px 5px -1px #32325d40,0 1px 3px -1px #0000004d}.c-table-wrapper .c-table th,.c-table-wrapper .c-table td{padding:var(--cell-padding);text-align:left;border-bottom:1px solid var(--neutral-200);overflow-wrap:break-word}.c-table-wrapper .c-table .primary-col{min-width:var(--table-primary-col-min-width);max-width:var(--table-primary-col-max-width);overflow-wrap:anywhere;word-break:break-word}.c-table-wrapper .c-table th.c-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.c-table-wrapper .c-table th.c-sortable--sorted{color:var(--premium-500)}.c-table-wrapper .c-table th.c-sortable:hover{color:#1e2627}.c-table-wrapper .c-table th .c-sort-icon{color:var(--neutral-400);margin-left:.25rem;transition:color .15s}.c-table-wrapper .c-table th .c-sort-icon--active{color:var(--premium-500)}.c-table-wrapper .c-table td{max-width:var(--table-col-max-width)}.c-table-wrapper .c-table td.is-nowrap{white-space:nowrap}.c-table-wrapper .c-table.is-compact th,.c-table-wrapper .c-table.is-compact td{padding-block:.25rem}.c-table-wrapper .c-table tbody tr.is-striped{background-color:var(--neutral-50)}.c-table-wrapper .c-table tbody tr.is-selected,.c-table-wrapper .c-table tbody tr.is-striped.is-selected{background-color:var(--premium-200)}.c-table-wrapper .c-table tbody .c-table__loading-row,.c-table-wrapper .c-table tbody .c-table__loading-row:hover{background-color:#0000}.c-table-wrapper .c-table tbody .c-table__loading-cell{text-align:center;border-bottom:1px solid var(--neutral-200);padding:2rem}.c-table-wrapper .c-table tbody .c-table__loading-wrap{justify-content:center;align-items:center;width:100%;display:flex}@media (hover:hover) and (pointer:fine){.c-table-wrapper .c-table th.c-sortable:hover .c-sort-icon{color:var(--neutral-700)}.c-table-wrapper .c-table tbody tr:hover,.c-table-wrapper .c-table tbody tr.is-striped:hover{background-color:var(--premium-100)}.c-table-wrapper .c-table tbody tr:hover td,.c-table-wrapper .c-table tbody tr.is-striped:hover td{border-color:var(--premium-400)}.c-table-wrapper .c-table tbody tr.is-selected:hover,.c-table-wrapper .c-table tbody tr.is-striped.is-selected:hover{background-color:var(--premium-300)}}.c-table-wrapper .c-table .c-actions-header{text-align:center}.c-table-wrapper .c-table .c-actions-cell .c-actions-wrap{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.25rem;width:fit-content;max-width:100%;margin-inline:auto;display:flex}.c-table-wrapper .c-table__cell{position:relative}@media (hover:none),(pointer:coarse){.c-table-wrapper .c-table__cell{transition:background-color .15s}.c-table-wrapper .c-table__cell:focus-within,.c-table-wrapper .c-table__cell:hover{background-color:#dfefef80}}.c-table-wrapper .c-table__cell .c-copy-btn{opacity:0;position:absolute;top:0;right:0}.c-table-wrapper .c-table__cell:hover .c-copy-btn,.c-table-wrapper .c-table__cell:focus-within .c-copy-btn{opacity:1}.c-table-wrapper .c-table__backdrop{z-index:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#fff9;justify-content:center;align-items:center;padding-top:3rem;animation:.15s ease-out c-table-backdrop-in;display:flex;position:absolute;inset:0}.c-table-wrapper.is-loading{touch-action:none;overflow:hidden}.c-table-wrapper.is-loading .c-table tbody{opacity:.45;transition:opacity .15s ease-out}@keyframes c-table-backdrop-in{0%{opacity:0}to{opacity:1}}
|