@aotearoan/neon 28.5.0 → 28.7.0
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/components/layout/basic-layout/NeonBasicLayout.cjs.js +2 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.cjs.js.map +1 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.es.js +40 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.es.js.map +1 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.vue.cjs.js +2 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.vue.cjs.js.map +1 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.vue.es.js +41 -0
- package/dist/components/layout/basic-layout/NeonBasicLayout.vue.es.js.map +1 -0
- package/dist/components/layout/card-list/NeonCardList.cjs.js +1 -1
- package/dist/components/layout/card-list/NeonCardList.cjs.js.map +1 -1
- package/dist/components/layout/card-list/NeonCardList.es.js +76 -52
- package/dist/components/layout/card-list/NeonCardList.es.js.map +1 -1
- package/dist/components/layout/card-list/NeonCardList.vue.cjs.js +1 -1
- package/dist/components/layout/card-list/NeonCardList.vue.cjs.js.map +1 -1
- package/dist/components/layout/card-list/NeonCardList.vue.es.js +98 -83
- package/dist/components/layout/card-list/NeonCardList.vue.es.js.map +1 -1
- package/dist/components/layout/card-list/draggable-card/NeonDraggableCard.vue.cjs.js +2 -0
- package/dist/components/layout/card-list/draggable-card/NeonDraggableCard.vue.cjs.js.map +1 -0
- package/dist/components/layout/card-list/draggable-card/NeonDraggableCard.vue.cjs2.js +2 -0
- package/dist/components/layout/card-list/draggable-card/NeonDraggableCard.vue.cjs2.js.map +1 -0
- package/dist/components/layout/card-list/draggable-card/NeonDraggableCard.vue.es.js +78 -0
- package/dist/components/layout/card-list/draggable-card/NeonDraggableCard.vue.es.js.map +1 -0
- package/dist/components/layout/card-list/draggable-card/NeonDraggableCard.vue.es2.js +5 -0
- package/dist/components/layout/card-list/draggable-card/NeonDraggableCard.vue.es2.js.map +1 -0
- package/dist/components/layout/list-layout/NeonListLayout.cjs.js +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.cjs.js.map +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.es.js +16 -11
- package/dist/components/layout/list-layout/NeonListLayout.es.js.map +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.vue.cjs.js +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.vue.cjs.js.map +1 -1
- package/dist/components/layout/list-layout/NeonListLayout.vue.es.js +10 -9
- package/dist/components/layout/list-layout/NeonListLayout.vue.es.js.map +1 -1
- package/dist/components/presentation/avatar/NeonAvatar.cjs.js +2 -0
- package/dist/components/presentation/avatar/NeonAvatar.cjs.js.map +1 -0
- package/dist/components/presentation/avatar/NeonAvatar.es.js +66 -0
- package/dist/components/presentation/avatar/NeonAvatar.es.js.map +1 -0
- package/dist/components/presentation/avatar/NeonAvatar.vue.cjs.js +2 -0
- package/dist/components/presentation/avatar/NeonAvatar.vue.cjs.js.map +1 -0
- package/dist/components/presentation/avatar/NeonAvatar.vue.es.js +25 -0
- package/dist/components/presentation/avatar/NeonAvatar.vue.es.js.map +1 -0
- package/dist/components/presentation/header/NeonHeader.vue.cjs.js +1 -1
- package/dist/components/presentation/header/NeonHeader.vue.cjs.js.map +1 -1
- package/dist/components/presentation/header/NeonHeader.vue.es.js +31 -29
- package/dist/components/presentation/header/NeonHeader.vue.es.js.map +1 -1
- package/dist/icons/drag-handle.svg.cjs.js +7 -0
- package/dist/icons/drag-handle.svg.cjs.js.map +1 -0
- package/dist/icons/drag-handle.svg.es.js +10 -0
- package/dist/icons/drag-handle.svg.es.js.map +1 -0
- package/dist/model/layout/card-list/NeonCardListStyle.cjs.js +2 -0
- package/dist/model/layout/card-list/NeonCardListStyle.cjs.js.map +1 -0
- package/dist/model/layout/card-list/NeonCardListStyle.es.js +5 -0
- package/dist/model/layout/card-list/NeonCardListStyle.es.js.map +1 -0
- package/dist/model/presentation/badge/NeonBadgeSize.cjs.js +1 -1
- package/dist/model/presentation/badge/NeonBadgeSize.cjs.js.map +1 -1
- package/dist/model/presentation/badge/NeonBadgeSize.es.js +1 -1
- package/dist/model/presentation/badge/NeonBadgeSize.es.js.map +1 -1
- package/dist/neon.cjs.js +1 -1
- package/dist/neon.es.js +269 -261
- package/dist/neon.es.js.map +1 -1
- package/dist/src/components/layout/basic-layout/NeonBasicLayout.d.ts +427 -0
- package/dist/src/components/layout/basic-layout/NeonBasicLayout.vue.d.ts +2 -0
- package/dist/src/components/layout/card-list/NeonCardList.d.ts +169 -63
- package/dist/src/components/layout/card-list/draggable-card/NeonDraggableCard.vue.d.ts +59 -0
- package/dist/src/components/layout/list-layout/NeonListLayout.d.ts +399 -253
- package/dist/src/components/presentation/avatar/NeonAvatar.d.ts +1806 -0
- package/dist/src/components/presentation/avatar/NeonAvatar.vue.d.ts +2 -0
- package/dist/src/model/layout/card-list/NeonCardListStyle.d.ts +13 -0
- package/dist/src/model/layout/card-list/NeonLoadOnDemandModel.d.ts +4 -8
- package/dist/src/model/presentation/badge/NeonBadgeSize.d.ts +3 -1
- package/dist/src/neon.d.ts +5 -1
- package/dist/src/utils/common/array/NeonArrayUtils.d.ts +7 -0
- package/dist/src/utils/common/http/NeonHttpUtils.d.ts +23 -0
- package/dist/utils/common/array/NeonArrayUtils.cjs.js +2 -0
- package/dist/utils/common/array/NeonArrayUtils.cjs.js.map +1 -0
- package/dist/utils/common/array/NeonArrayUtils.es.js +8 -0
- package/dist/utils/common/array/NeonArrayUtils.es.js.map +1 -0
- package/dist/utils/common/http/NeonHttpUtils.cjs.js +2 -0
- package/dist/utils/common/http/NeonHttpUtils.cjs.js.map +1 -0
- package/dist/utils/common/http/NeonHttpUtils.es.js +31 -0
- package/dist/utils/common/http/NeonHttpUtils.es.js.map +1 -0
- package/dist/utils/common/icons/RegisterIcons.cjs.js +1 -1
- package/dist/utils/common/icons/RegisterIcons.cjs.js.map +1 -1
- package/dist/utils/common/icons/RegisterIcons.es.js +30 -29
- package/dist/utils/common/icons/RegisterIcons.es.js.map +1 -1
- package/package.json +1 -1
- package/src/sass/components/_badge.scss +2 -2
- package/src/sass/components/{_page-container.scss → _basic-layout.scss} +12 -33
- package/src/sass/components/_card-list.scss +32 -11
- package/src/sass/components/_date-picker.scss +2 -0
- package/src/sass/components/_draggable-card.scss +75 -0
- package/src/sass/components/_drawer.scss +1 -0
- package/src/sass/components/_field-group.scss +5 -1
- package/src/sass/components/_header.scss +2 -1
- package/src/sass/components/_input.scss +6 -0
- package/src/sass/components/_link.scss +1 -0
- package/src/sass/components/_modal.scss +1 -0
- package/src/sass/components/_page.scss +1 -0
- package/src/sass/components/_range-slider.scss +4 -0
- package/src/sass/components/_sticky-buttons.scss +1 -1
- package/src/sass/components/components.scss +2 -1
- package/src/sass/includes/_dependencies.scss +3 -2
- package/src/sass/theme.scss +8 -4
- package/src/sass/variables-dark.scss +15 -0
- package/src/sass/variables-global.scss +21 -7
- package/src/sass/variables-light.scss +15 -0
- package/dist/components/layout/page-container/NeonPageContainer.cjs.js +0 -2
- package/dist/components/layout/page-container/NeonPageContainer.cjs.js.map +0 -1
- package/dist/components/layout/page-container/NeonPageContainer.es.js +0 -26
- package/dist/components/layout/page-container/NeonPageContainer.es.js.map +0 -1
- package/dist/components/layout/page-container/NeonPageContainer.vue.cjs.js +0 -2
- package/dist/components/layout/page-container/NeonPageContainer.vue.cjs.js.map +0 -1
- package/dist/components/layout/page-container/NeonPageContainer.vue.es.js +0 -31
- package/dist/components/layout/page-container/NeonPageContainer.vue.es.js.map +0 -1
- package/dist/src/components/layout/page-container/NeonPageContainer.d.ts +0 -98
- package/dist/src/components/layout/page-container/NeonPageContainer.vue.d.ts +0 -2
|
@@ -1,111 +1,126 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { resolveComponent as
|
|
3
|
-
import
|
|
4
|
-
const
|
|
1
|
+
import D from "./NeonCardList.es.js";
|
|
2
|
+
import { resolveComponent as r, openBlock as o, createElementBlock as t, normalizeClass as g, renderSlot as a, createBlock as l, withCtx as d, createCommentVNode as p, createVNode as i, TransitionGroup as L, Fragment as u, renderList as v, createElementVNode as z, Transition as m, mergeProps as f, toDisplayString as N } from "vue";
|
|
3
|
+
import V from "../../../_virtual/_plugin-vue_export-helper.es.js";
|
|
4
|
+
const w = { class: "neon-card-list__card" }, P = {
|
|
5
5
|
key: 0,
|
|
6
|
-
class: "neon-card-
|
|
7
|
-
}, B = {
|
|
8
|
-
ref: "cards",
|
|
9
|
-
class: "neon-card-list__cards"
|
|
10
|
-
}, D = { class: "neon-card-list__card" }, O = {
|
|
11
|
-
key: 0,
|
|
12
|
-
class: "neon-card-list__results-end"
|
|
6
|
+
class: "neon-card-list__result-count-label"
|
|
13
7
|
};
|
|
14
|
-
function
|
|
15
|
-
const
|
|
16
|
-
return o(),
|
|
8
|
+
function B(e, b, O, T, E, F) {
|
|
9
|
+
const _ = r("neon-inline"), c = r("neon-loading-state-card"), k = r("neon-draggable-card"), y = r("neon-link"), h = r("neon-selectable-card"), $ = r("neon-button"), C = r("neon-pagination");
|
|
10
|
+
return o(), t("div", {
|
|
11
|
+
class: g([`neon-card-list--${e.listStyle}`, "neon-card-list"])
|
|
12
|
+
}, [
|
|
17
13
|
a(e.$slots, "filters"),
|
|
18
|
-
e.slots.header
|
|
14
|
+
e.slots.header ? (o(), l(_, {
|
|
19
15
|
key: 0,
|
|
20
16
|
class: "neon-card-list__header"
|
|
21
17
|
}, {
|
|
22
|
-
default:
|
|
23
|
-
a(e.$slots, "header")
|
|
24
|
-
e.loadOnDemand ? (o(), s("span", w, i(e.n(e.items.length)) + " " + i(e.ofLabel) + " " + i(e.n(e.total)), 1)) : p("", !0)
|
|
18
|
+
default: d(() => [
|
|
19
|
+
a(e.$slots, "header")
|
|
25
20
|
]),
|
|
26
21
|
_: 3
|
|
27
22
|
})) : p("", !0),
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
23
|
+
i(L, {
|
|
24
|
+
ref: "cards",
|
|
25
|
+
class: "neon-card-list__cards",
|
|
26
|
+
tag: "div"
|
|
27
|
+
}, {
|
|
28
|
+
default: d(() => [
|
|
29
|
+
(o(!0), t(u, null, v(e.items, (n, s) => (o(), t(u, null, [
|
|
30
|
+
!n.disabled && (e.sortable || n.href) ? (o(), l(y, {
|
|
31
|
+
key: `${n.model.id ?? s}-link`,
|
|
32
|
+
class: g([e.color && `neon-card-list__link--${e.color}`, "neon-card-list__link"]),
|
|
33
|
+
href: n.href,
|
|
34
|
+
"no-style": "",
|
|
35
|
+
"outline-style": "background"
|
|
36
|
+
}, {
|
|
37
|
+
default: d(() => [
|
|
38
|
+
i(k, {
|
|
39
|
+
color: e.color,
|
|
40
|
+
"drag-index": e.dragIndex,
|
|
41
|
+
draggable: e.sortable && e.items.length > 1,
|
|
42
|
+
index: s,
|
|
43
|
+
item: n,
|
|
44
|
+
onDrop: e.onDrop,
|
|
45
|
+
onOnDrag: e.onDrag
|
|
46
|
+
}, {
|
|
47
|
+
default: d(() => [
|
|
48
|
+
z("div", w, [
|
|
49
|
+
e.pagination && e.loading ? a(e.$slots, "loadingStateCard", { key: 0 }, () => [
|
|
50
|
+
i(c)
|
|
51
|
+
]) : (o(), l(m, {
|
|
52
|
+
key: 1,
|
|
53
|
+
mode: "out-in",
|
|
54
|
+
name: "neon-fade-transition"
|
|
55
|
+
}, {
|
|
56
|
+
default: d(() => [
|
|
57
|
+
a(e.$slots, "card", f({ ref_for: !0 }, { model: n.model, index: s }))
|
|
58
|
+
]),
|
|
59
|
+
_: 2
|
|
60
|
+
}, 1024))
|
|
61
|
+
])
|
|
62
|
+
]),
|
|
63
|
+
_: 2
|
|
64
|
+
}, 1032, ["color", "drag-index", "draggable", "index", "item", "onDrop", "onOnDrag"])
|
|
65
|
+
]),
|
|
66
|
+
_: 2
|
|
67
|
+
}, 1032, ["class", "href"])) : e.selectable ? (o(), l(h, {
|
|
68
|
+
key: `${n.model.id ?? s}-selectable`,
|
|
69
|
+
class: g([{
|
|
70
|
+
"neon-card-list__card--disabled": n.disabled,
|
|
71
|
+
"neon-card-list__card--selected": n.selected
|
|
72
|
+
}, "neon-card-list__card neon-card-list__card--selectable"]),
|
|
73
|
+
disabled: n.disabled,
|
|
74
|
+
"model-value": !!n.selected,
|
|
75
|
+
"onUpdate:modelValue": (S) => e.emit("toggle-selected", n.model.id, S)
|
|
76
|
+
}, {
|
|
77
|
+
default: d(() => [
|
|
39
78
|
e.pagination && e.loading ? a(e.$slots, "loadingStateCard", { key: 0 }, () => [
|
|
40
|
-
|
|
41
|
-
]) : (o(), l(
|
|
79
|
+
i(c)
|
|
80
|
+
]) : (o(), l(m, {
|
|
42
81
|
key: 1,
|
|
43
82
|
mode: "out-in",
|
|
44
83
|
name: "neon-fade-transition"
|
|
45
84
|
}, {
|
|
46
|
-
default:
|
|
47
|
-
a(e.$slots, "card",
|
|
85
|
+
default: d(() => [
|
|
86
|
+
a(e.$slots, "card", f({ ref_for: !0 }, { model: n.model, index: s }))
|
|
48
87
|
]),
|
|
49
88
|
_: 2
|
|
50
89
|
}, 1024))
|
|
51
|
-
])
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"neon-card-list__card--disabled": n.disabled,
|
|
58
|
-
"neon-card-list__card--selected": n.selected
|
|
59
|
-
}, "neon-card-list__card neon-card-list__card--selectable"]),
|
|
60
|
-
disabled: n.disabled,
|
|
61
|
-
"model-value": !!n.selected,
|
|
62
|
-
"onUpdate:modelValue": (N) => e.emit("toggle-selected", n.model.id, N)
|
|
63
|
-
}, {
|
|
64
|
-
default: r(() => [
|
|
90
|
+
]),
|
|
91
|
+
_: 2
|
|
92
|
+
}, 1032, ["class", "disabled", "model-value", "onUpdate:modelValue"])) : (o(), t("div", {
|
|
93
|
+
key: `${n.model.id ?? s}-card`,
|
|
94
|
+
class: g([{ "neon-card-list__card--disabled": n.disabled }, "neon-card-list__card"])
|
|
95
|
+
}, [
|
|
65
96
|
e.pagination && e.loading ? a(e.$slots, "loadingStateCard", { key: 0 }, () => [
|
|
66
|
-
|
|
67
|
-
]) : (o(), l(
|
|
97
|
+
i(c)
|
|
98
|
+
]) : (o(), l(m, {
|
|
68
99
|
key: 1,
|
|
69
100
|
mode: "out-in",
|
|
70
101
|
name: "neon-fade-transition"
|
|
71
102
|
}, {
|
|
72
|
-
default:
|
|
73
|
-
a(e.$slots, "card",
|
|
103
|
+
default: d(() => [
|
|
104
|
+
a(e.$slots, "card", f({ ref_for: !0 }, { model: n.model, index: s }))
|
|
74
105
|
]),
|
|
75
106
|
_: 2
|
|
76
107
|
}, 1024))
|
|
77
|
-
])
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
]) : (o(), l(f, {
|
|
86
|
-
key: 1,
|
|
87
|
-
mode: "out-in",
|
|
88
|
-
name: "neon-fade-transition"
|
|
89
|
-
}, {
|
|
90
|
-
default: r(() => [
|
|
91
|
-
a(e.$slots, "card", _({ ref_for: !0 }, { model: n.model, index: d }))
|
|
92
|
-
]),
|
|
93
|
-
_: 2
|
|
94
|
-
}, 1024))
|
|
95
|
-
], 2))
|
|
96
|
-
], 64))), 256))
|
|
97
|
-
], 512),
|
|
98
|
-
e.loadOnDemand ? (o(), s(u, { key: 1 }, [
|
|
99
|
-
e.items.length === e.total ? (o(), s("span", O, i(e.endOfResultsLabel), 1)) : (o(), l(C, {
|
|
108
|
+
], 2))
|
|
109
|
+
], 64))), 256))
|
|
110
|
+
]),
|
|
111
|
+
_: 3
|
|
112
|
+
}, 512),
|
|
113
|
+
e.loadOnDemand ? (o(), t(u, { key: 1 }, [
|
|
114
|
+
e.resultCountLabel ? (o(), t("span", P, N(e.resultCountLabel), 1)) : p("", !0),
|
|
115
|
+
e.items.length < e.total ? (o(), l($, {
|
|
100
116
|
key: 1,
|
|
101
|
-
"button-style": e.NeonButtonStyle.Text,
|
|
102
|
-
color: e.NeonFunctionalColor.Neutral,
|
|
103
117
|
label: e.showMoreLabel,
|
|
104
|
-
size: e.NeonSize.
|
|
118
|
+
size: e.NeonSize.Large,
|
|
119
|
+
state: e.loading ? e.NeonState.Loading : e.NeonState.Ready,
|
|
105
120
|
class: "neon-card-list__show-more",
|
|
106
|
-
onClick:
|
|
107
|
-
}, null, 8, ["
|
|
108
|
-
], 64)) : e.pagination ? (o(), l(
|
|
121
|
+
onClick: b[0] || (b[0] = (n) => e.emit("show-more", n))
|
|
122
|
+
}, null, 8, ["label", "size", "state"])) : p("", !0)
|
|
123
|
+
], 64)) : e.pagination ? (o(), l(C, {
|
|
109
124
|
key: 2,
|
|
110
125
|
color: e.color,
|
|
111
126
|
"display-first-and-last": e.pagination.displayFirstAndLast,
|
|
@@ -115,10 +130,10 @@ function P(e, k, F, T, E, U) {
|
|
|
115
130
|
"url-template": e.pagination.urlTemplate,
|
|
116
131
|
onPageChange: e.onPageChange
|
|
117
132
|
}, null, 8, ["color", "display-first-and-last", "page", "page-size", "total", "url-template", "onPageChange"])) : p("", !0)
|
|
118
|
-
]);
|
|
133
|
+
], 2);
|
|
119
134
|
}
|
|
120
|
-
const
|
|
135
|
+
const I = /* @__PURE__ */ V(D, [["render", B]]);
|
|
121
136
|
export {
|
|
122
|
-
|
|
137
|
+
I as default
|
|
123
138
|
};
|
|
124
139
|
//# sourceMappingURL=NeonCardList.vue.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonCardList.vue.es.js","sources":["../../../../src/components/layout/card-list/NeonCardList.vue"],"sourcesContent":["<template>\n <div class=\"neon-card-list\">\n <!-- @slot slot for providing a filter bar component -->\n <slot name=\"filters\"></slot>\n <neon-inline v-if=\"slots.header
|
|
1
|
+
{"version":3,"file":"NeonCardList.vue.es.js","sources":["../../../../src/components/layout/card-list/NeonCardList.vue"],"sourcesContent":["<template>\n <div :class=\"`neon-card-list--${listStyle}`\" class=\"neon-card-list\">\n <!-- @slot slot for providing a filter bar component -->\n <slot name=\"filters\"></slot>\n <neon-inline v-if=\"slots.header\" class=\"neon-card-list__header\">\n <!-- @slot slot for providing titles for the card list -->\n <slot name=\"header\"></slot>\n </neon-inline>\n <transition-group ref=\"cards\" class=\"neon-card-list__cards\" tag=\"div\">\n <template v-for=\"(item, index) in items\">\n <neon-link\n v-if=\"!item.disabled && (sortable || item.href)\"\n :key=\"`${item.model.id ?? index}-link`\"\n :class=\"color && `neon-card-list__link--${color}`\"\n :href=\"item.href\"\n class=\"neon-card-list__link\"\n no-style\n outline-style=\"background\"\n >\n <neon-draggable-card\n :color=\"color\"\n :drag-index=\"dragIndex\"\n :draggable=\"sortable && items.length > 1\"\n :index=\"index\"\n :item=\"item\"\n @drop=\"onDrop\"\n @on-drag=\"onDrag\"\n >\n <div class=\"neon-card-list__card\">\n <!-- @slot override the default loading state card -->\n <slot v-if=\"pagination && loading\" name=\"loadingStateCard\">\n <neon-loading-state-card />\n </slot>\n <template v-else>\n <transition mode=\"out-in\" name=\"neon-fade-transition\">\n <!-- @slot slot for rendering card contents, two parameters are available:\n @binding {T} model - the model item to be rendered\n @binding {number} index - the index of the item in the list -->\n <slot name=\"card\" v-bind=\"{ model: item.model, index: index }\"></slot>\n </transition>\n </template>\n </div>\n </neon-draggable-card>\n </neon-link>\n <neon-selectable-card\n v-else-if=\"selectable\"\n :key=\"`${item.model.id ?? index}-selectable`\"\n :class=\"{\n 'neon-card-list__card--disabled': item.disabled,\n 'neon-card-list__card--selected': item.selected,\n }\"\n :disabled=\"item.disabled\"\n :model-value=\"!!item.selected\"\n class=\"neon-card-list__card neon-card-list__card--selectable\"\n @update:model-value=\"emit('toggle-selected', item.model.id, $event)\"\n >\n <!-- @slot override the default loading state card -->\n <slot v-if=\"pagination && loading\" name=\"loadingStateCard\">\n <neon-loading-state-card />\n </slot>\n <template v-else>\n <transition mode=\"out-in\" name=\"neon-fade-transition\">\n <!-- @slot slot for rendering card contents, two parameters are available:\n @binding {T} model - the model item to be rendered\n @binding {number} index - the index of the item in the list -->\n <slot name=\"card\" v-bind=\"{ model: item.model, index: index }\"></slot>\n </transition>\n </template>\n </neon-selectable-card>\n <div\n v-else\n :key=\"`${item.model.id ?? index}-card`\"\n :class=\"{ 'neon-card-list__card--disabled': item.disabled }\"\n class=\"neon-card-list__card\"\n >\n <!-- @slot override the default loading state card -->\n <slot v-if=\"pagination && loading\" name=\"loadingStateCard\">\n <neon-loading-state-card />\n </slot>\n <template v-else>\n <transition mode=\"out-in\" name=\"neon-fade-transition\">\n <!-- @slot slot for rendering card contents, two parameters are available:\n @binding {T} model - the model item to be rendered\n @binding {number} index - the index of the item in the list -->\n <slot name=\"card\" v-bind=\"{ model: item.model, index: index }\"></slot>\n </transition>\n </template>\n </div>\n </template>\n </transition-group>\n <template v-if=\"loadOnDemand\">\n <span v-if=\"resultCountLabel\" class=\"neon-card-list__result-count-label\">{{ resultCountLabel }}</span>\n <neon-button\n v-if=\"items.length < total\"\n :label=\"showMoreLabel\"\n :size=\"NeonSize.Large\"\n :state=\"loading ? NeonState.Loading : NeonState.Ready\"\n class=\"neon-card-list__show-more\"\n @click=\"emit('show-more', $event)\"\n />\n </template>\n <neon-pagination\n v-else-if=\"pagination\"\n :color=\"color\"\n :display-first-and-last=\"pagination.displayFirstAndLast\"\n :page=\"pagination.page\"\n :page-size=\"pagination.pageSize\"\n :total=\"pagination.total\"\n :url-template=\"pagination.urlTemplate\"\n @page-change=\"onPageChange\"\n />\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonCardList.ts\"></script>\n"],"names":["_hoisted_1","_createElementBlock","_normalizeClass","_ctx","_renderSlot","_createBlock","_component_neon_inline","_createVNode","_TransitionGroup","_openBlock","_Fragment","_renderList","item","index","_component_neon_link","_component_neon_draggable_card","_createElementVNode","_component_neon_loading_state_card","_Transition","_mergeProps","_component_neon_selectable_card","$event","_hoisted_2","_toDisplayString","_component_neon_button","_cache","_component_neon_pagination"],"mappings":";;;AA4BiB,MAAAA,IAAA,EAAA,OAAM,uBAAsB;;EA+DT,OAAM;;;;cA1FxCC,EA8GM,OAAA;AAAA,IA9GA,OAAKC,EAAA,CAAA,mBAAqBC,EAAA,SAAS,IAAU,gBAAgB,CAAA;AAAA;IAEjEC,EAA4BD,EAAA,QAAA,SAAA;AAAA,IACTA,EAAA,MAAM,eAAzBE,EAGcC,GAAA;AAAA;MAHmB,OAAM;AAAA;iBAErC,MAA2B;AAAA,QAA3BF,EAA2BD,EAAA,QAAA,QAAA;AAAA;;;IAE7BI,EAiFmBC,GAAA;AAAA,MAjFD,KAAI;AAAA,MAAQ,OAAM;AAAA,MAAwB,KAAI;AAAA;iBACpD,MAA8B;AAAA,SAAxCC,EAAA,EAAA,GAAAR,EA+EWS,GAAA,MAAAC,EA/EuBR,EAAA,OAAK,CAArBS,GAAMC;UAEb,CAAAD,EAAK,aAAaT,cAAYS,EAAK,cAD5CP,EAiCYS,GAAA;AAAA,YA/BT,QAAQF,EAAK,MAAM,MAAMC,CAAK;AAAA,YAC9B,OAAKX,EAAA,CAAEC,EAAA,SAAK,yBAA6BA,EAAA,KAAK,IAEzC,sBAAsB,CAAA;AAAA,YAD3B,MAAMS,EAAK;AAAA,YAEZ,YAAA;AAAA,YACA,iBAAc;AAAA;uBAEd,MAuBsB;AAAA,cAvBtBL,EAuBsBQ,GAAA;AAAA,gBAtBnB,OAAOZ,EAAA;AAAA,gBACP,cAAYA,EAAA;AAAA,gBACZ,WAAWA,EAAA,YAAYA,EAAA,MAAM,SAAM;AAAA,gBACnC,OAAOU;AAAA,gBACP,MAAMD;AAAA,gBACN,QAAMT,EAAA;AAAA,gBACN,UAASA,EAAA;AAAA;2BAEV,MAaM;AAAA,kBAbNa,EAaM,OAbNhB,GAaM;AAAA,oBAXQG,EAAA,cAAcA,EAAA,UAA1BC,EAEOD,0CAFP,MAEO;AAAA,sBADLI,EAA2BU,CAAA;AAAA,+BAG3BZ,EAKaa,GAAA;AAAA;sBALD,MAAK;AAAA,sBAAS,MAAK;AAAA;iCAI7B,MAAsE;AAAA,wBAAtEd,EAAsED,kBAAtEgB,EAAsE,EAAA,SAAA,GAAA,GAAA,EAAA,OAAnCP,EAAK,cAAcC,EAAK,CAAA,CAAA;AAAA;;;;;;;;;yCAOxDV,EAAA,mBADbE,EAwBuBe,GAAA;AAAA,YAtBpB,QAAQR,EAAK,MAAM,MAAMC,CAAK;AAAA,YAC9B,OAAKX,EAAA,CAAA;AAAA,cAAkD,kCAAAU,EAAK;AAAA,cAAwD,kCAAAA,EAAK;AAAA,eAMpH,uDAAuD,CAAA;AAAA,YAF5D,UAAUA,EAAK;AAAA,YACf,eAAW,CAAA,CAAIA,EAAK;AAAA,YAEpB,uBAAkB,CAAAS,MAAElB,OAAI,mBAAoBS,EAAK,MAAM,IAAIS,CAAM;AAAA;uBAGlE,MAEO;AAAA,cAFKlB,EAAA,cAAcA,EAAA,UAA1BC,EAEOD,0CAFP,MAEO;AAAA,gBADLI,EAA2BU,CAAA;AAAA,yBAG3BZ,EAKaa,GAAA;AAAA;gBALD,MAAK;AAAA,gBAAS,MAAK;AAAA;2BAI7B,MAAsE;AAAA,kBAAtEd,EAAsED,kBAAtEgB,EAAsE,EAAA,SAAA,GAAA,GAAA,EAAA,OAAnCP,EAAK,cAAcC,EAAK,CAAA,CAAA;AAAA;;;;;yFAIjEZ,EAkBM,OAAA;AAAA,YAhBH,QAAQW,EAAK,MAAM,MAAMC,CAAK;AAAA,YAC9B,OAAKX,EAAA,CAAA,EAAA,kCAAsCU,EAAK,SAAQ,GACnD,sBAAsB,CAAA;AAAA;YAGhBT,EAAA,cAAcA,EAAA,UAA1BC,EAEOD,0CAFP,MAEO;AAAA,cADLI,EAA2BU,CAAA;AAAA,uBAG3BZ,EAKaa,GAAA;AAAA;cALD,MAAK;AAAA,cAAS,MAAK;AAAA;yBAI7B,MAAsE;AAAA,gBAAtEd,EAAsED,kBAAtEgB,EAAsE,EAAA,SAAA,GAAA,GAAA,EAAA,OAAnCP,EAAK,cAAcC,EAAK,CAAA,CAAA;AAAA;;;;;;;;IAMrDV,EAAA,qBAAhBF,EAUWS,GAAA,EAAA,KAAA,EAAA,GAAA;AAAA,MATGP,EAAA,yBAAZF,EAAsG,QAAtGqB,GAAsGC,EAA1BpB,EAAA,gBAAgB,GAAA,CAAA;MAEpFA,EAAA,MAAM,SAASA,EAAA,cADvBE,EAOEmB,GAAA;AAAA;QALC,OAAOrB,EAAA;AAAA,QACP,MAAMA,EAAA,SAAS;AAAA,QACf,OAAOA,YAAUA,EAAA,UAAU,UAAUA,EAAA,UAAU;AAAA,QAChD,OAAM;AAAA,QACL,SAAKsB,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAJ,MAAElB,EAAA,KAAI,aAAckB,CAAM;AAAA;cAIvBlB,EAAA,mBADbE,EASEqB,GAAA;AAAA;MAPC,OAAOvB,EAAA;AAAA,MACP,0BAAwBA,EAAA,WAAW;AAAA,MACnC,MAAMA,EAAA,WAAW;AAAA,MACjB,aAAWA,EAAA,WAAW;AAAA,MACtB,OAAOA,EAAA,WAAW;AAAA,MAClB,gBAAcA,EAAA,WAAW;AAAA,MACzB,cAAaA,EAAA;AAAA;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),m=require("../../../presentation/icon/NeonIcon.vue.cjs.js"),p=require("../../inline/NeonInline.vue.cjs.js"),b=require("../../../../model/common/color/NeonFunctionalColor.cjs.js"),D=e.defineComponent({__name:"NeonDraggableCard",props:{draggable:{type:Boolean},color:{},dragIndex:{},index:{}},emits:["drop","on-drag"],setup(o,{emit:l}){const n=o,t=l,d=e.ref(null),r=e.ref(!1),c=a=>{a.dataTransfer&&(a.dataTransfer.effectAllowed="move"),t("on-drag",n.index)},g=()=>{r.value=!1,t("on-drag",void 0)},s=a=>{a.preventDefault(),r.value=!1,t("drop",n.dragIndex,n.index)},u=a=>{a.preventDefault(),r.value=!0},i=a=>{a.preventDefault(),r.value=!1},f=e.computed(()=>r.value&&n.dragIndex!==void 0),v=e.computed(()=>n.dragIndex!==void 0);return(a,x)=>(e.openBlock(),e.createBlock(p,{ref_key:"draggableItem",ref:d,class:e.normalizeClass([[{"neon-draggable-card--active":f.value,"neon-draggable-card--drag-in-progress":v.value},`neon-draggable-card--${o.color}`],"neon-draggable-card"]),draggable:o.draggable,onDragend:g,onDragleave:i,onDragover:u,onDragstart:c,onDrop:s},{default:e.withCtx(()=>[e.createVNode(e.Transition,{mode:"out-in",name:"neon-drag-handle-transition"},{default:e.withCtx(()=>[o.draggable?(e.openBlock(),e.createBlock(m,{key:0,color:e.unref(b.NeonFunctionalColor).LowContrast,class:"neon-draggable-card__handle-icon",name:"drag-handle"},null,8,["color"])):e.createCommentVNode("",!0)]),_:1}),e.renderSlot(a.$slots,"default")]),_:3},8,["class","draggable"]))}});module.exports=D;
|
|
2
|
+
//# sourceMappingURL=NeonDraggableCard.vue.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeonDraggableCard.vue.cjs.js","sources":["../../../../../src/components/layout/card-list/draggable-card/NeonDraggableCard.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonInline from '@/components/layout/inline/NeonInline.vue';\nimport { NeonFunctionalColor } from '@/model/common/color/NeonFunctionalColor';\n\n/**\n * Draggable card component for use with NeonCardList.\n */\nconst props = defineProps<{\n /**\n * Whether the card is draggable.\n */\n draggable: boolean;\n /**\n * The color used for the card hover states.\n */\n color?: NeonFunctionalColor;\n /**\n * The index of the card currently being dragged.\n */\n dragIndex?: number;\n /**\n * The index of this card.\n */\n index: number;\n}>();\n\nconst emit = defineEmits([\n /**\n * Emitted when a card is dropped on this card.\n * @type {number, number} The index of the card being dragged (startIndex) and the index of this card (endIndex).\n */\n 'drop',\n /**\n * Emitted when the card is dragged or dragging stops.\n * @type {number | undefined} The index of the card being dragged or undefined if dragging this card stops.\n */\n 'on-drag',\n]);\n\nconst draggableItem = ref<HTMLDivElement | null>(null);\nconst isActive = ref(false);\n\nconst onDragStart = (e: DragEvent) => {\n if (e.dataTransfer) {\n e.dataTransfer.effectAllowed = 'move';\n }\n emit('on-drag', props.index);\n};\n\nconst onDragEnd = () => {\n isActive.value = false;\n emit('on-drag', undefined);\n};\n\nconst onDrop = (e: DragEvent) => {\n e.preventDefault();\n isActive.value = false;\n emit('drop', props.dragIndex, props.index);\n};\n\nconst onDragOver = (e: DragEvent) => {\n e.preventDefault();\n isActive.value = true;\n};\n\nconst onDragLeave = (e: DragEvent) => {\n e.preventDefault();\n isActive.value = false;\n};\n\nconst computedActive = computed<boolean>(() => {\n return isActive.value && props.dragIndex !== undefined;\n});\n\nconst dragInProgress = computed<boolean>(() => {\n return props.dragIndex !== undefined;\n});\n</script>\n\n<template>\n <neon-inline\n ref=\"draggableItem\"\n :class=\"[\n {\n 'neon-draggable-card--active': computedActive,\n 'neon-draggable-card--drag-in-progress': dragInProgress,\n },\n `neon-draggable-card--${color}`,\n ]\"\n :draggable=\"draggable\"\n class=\"neon-draggable-card\"\n @dragend=\"onDragEnd\"\n @dragleave=\"onDragLeave\"\n @dragover=\"onDragOver\"\n @dragstart=\"onDragStart\"\n @drop=\"onDrop\"\n >\n <transition mode=\"out-in\" name=\"neon-drag-handle-transition\">\n <neon-icon\n v-if=\"draggable\"\n :color=\"NeonFunctionalColor.LowContrast\"\n class=\"neon-draggable-card__handle-icon\"\n name=\"drag-handle\"\n />\n </transition>\n <!-- @slot Default slot for displaying the card contents -->\n <slot name=\"default\" />\n </neon-inline>\n</template>\n"],"names":["props","__props","emit","__emit","draggableItem","ref","isActive","onDragStart","e","onDragEnd","onDrop","onDragOver","onDragLeave","computedActive","computed","dragInProgress","_createBlock","NeonInline","_normalizeClass","_createVNode","_Transition","NeonIcon","_unref","NeonFunctionalColor","_renderSlot","_ctx"],"mappings":"kXASA,MAAMA,EAAQC,EAmBRC,EAAOC,EAaPC,EAAgBC,EAAAA,IAA2B,IAAI,EAC/CC,EAAWD,EAAAA,IAAI,EAAK,EAEpBE,EAAeC,GAAiB,CAChCA,EAAE,eACJA,EAAE,aAAa,cAAgB,QAEjCN,EAAK,UAAWF,EAAM,KAAK,CAC7B,EAEMS,EAAY,IAAM,CACtBH,EAAS,MAAQ,GACjBJ,EAAK,UAAW,MAAS,CAC3B,EAEMQ,EAAUF,GAAiB,CAC/BA,EAAE,eAAA,EACFF,EAAS,MAAQ,GACjBJ,EAAK,OAAQF,EAAM,UAAWA,EAAM,KAAK,CAC3C,EAEMW,EAAcH,GAAiB,CACnCA,EAAE,eAAA,EACFF,EAAS,MAAQ,EACnB,EAEMM,EAAeJ,GAAiB,CACpCA,EAAE,eAAA,EACFF,EAAS,MAAQ,EACnB,EAEMO,EAAiBC,EAAAA,SAAkB,IAChCR,EAAS,OAASN,EAAM,YAAc,MAC9C,EAEKe,EAAiBD,EAAAA,SAAkB,IAChCd,EAAM,YAAc,MAC5B,8BAICgB,EAAAA,YA2BcC,EAAA,SA1BR,gBAAJ,IAAIb,EACH,MAAKc,EAAAA,eAAA,CAAA,gCAAmDL,EAAA,8CAAiEE,EAAA,KAAA,0BAAuDd,EAAA,KAAK,EAAA,EAQhL,qBAAqB,CAAA,EAD1B,UAAWA,EAAA,UAEX,UAASQ,EACT,YAAWG,EACX,WAAUD,EACV,YAAWJ,EACX,OAAAG,CAAA,qBAED,IAOa,CAPbS,EAAAA,YAOaC,EAAAA,WAAA,CAPD,KAAK,SAAS,KAAK,6BAAA,qBAC7B,IAKE,CAJMnB,EAAA,yBADRe,EAAAA,YAKEK,EAAA,OAHC,MAAOC,EAAAA,MAAAC,EAAAA,mBAAA,EAAoB,YAC5B,MAAM,mCACN,KAAK,aAAA,yDAITC,aAAuBC,EAAA,OAAA,SAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeonDraggableCard.vue.cjs2.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { defineComponent as x, ref as t, computed as d, openBlock as l, createBlock as g, normalizeClass as I, withCtx as c, createVNode as C, Transition as N, unref as h, createCommentVNode as k, renderSlot as _ } from "vue";
|
|
2
|
+
import w from "../../../presentation/icon/NeonIcon.vue.es.js";
|
|
3
|
+
import y from "../../inline/NeonInline.vue.es.js";
|
|
4
|
+
import { NeonFunctionalColor as A } from "../../../../model/common/color/NeonFunctionalColor.es.js";
|
|
5
|
+
const $ = /* @__PURE__ */ x({
|
|
6
|
+
__name: "NeonDraggableCard",
|
|
7
|
+
props: {
|
|
8
|
+
draggable: { type: Boolean },
|
|
9
|
+
color: {},
|
|
10
|
+
dragIndex: {},
|
|
11
|
+
index: {}
|
|
12
|
+
},
|
|
13
|
+
emits: [
|
|
14
|
+
/**
|
|
15
|
+
* Emitted when a card is dropped on this card.
|
|
16
|
+
* @type {number, number} The index of the card being dragged (startIndex) and the index of this card (endIndex).
|
|
17
|
+
*/
|
|
18
|
+
"drop",
|
|
19
|
+
/**
|
|
20
|
+
* Emitted when the card is dragged or dragging stops.
|
|
21
|
+
* @type {number | undefined} The index of the card being dragged or undefined if dragging this card stops.
|
|
22
|
+
*/
|
|
23
|
+
"on-drag"
|
|
24
|
+
],
|
|
25
|
+
setup(n, { emit: s }) {
|
|
26
|
+
const a = n, o = s, i = t(null), r = t(!1), u = (e) => {
|
|
27
|
+
e.dataTransfer && (e.dataTransfer.effectAllowed = "move"), o("on-drag", a.index);
|
|
28
|
+
}, f = () => {
|
|
29
|
+
r.value = !1, o("on-drag", void 0);
|
|
30
|
+
}, m = (e) => {
|
|
31
|
+
e.preventDefault(), r.value = !1, o("drop", a.dragIndex, a.index);
|
|
32
|
+
}, v = (e) => {
|
|
33
|
+
e.preventDefault(), r.value = !0;
|
|
34
|
+
}, p = (e) => {
|
|
35
|
+
e.preventDefault(), r.value = !1;
|
|
36
|
+
}, b = d(() => r.value && a.dragIndex !== void 0), D = d(() => a.dragIndex !== void 0);
|
|
37
|
+
return (e, B) => (l(), g(y, {
|
|
38
|
+
ref_key: "draggableItem",
|
|
39
|
+
ref: i,
|
|
40
|
+
class: I([[
|
|
41
|
+
{
|
|
42
|
+
"neon-draggable-card--active": b.value,
|
|
43
|
+
"neon-draggable-card--drag-in-progress": D.value
|
|
44
|
+
},
|
|
45
|
+
`neon-draggable-card--${n.color}`
|
|
46
|
+
], "neon-draggable-card"]),
|
|
47
|
+
draggable: n.draggable,
|
|
48
|
+
onDragend: f,
|
|
49
|
+
onDragleave: p,
|
|
50
|
+
onDragover: v,
|
|
51
|
+
onDragstart: u,
|
|
52
|
+
onDrop: m
|
|
53
|
+
}, {
|
|
54
|
+
default: c(() => [
|
|
55
|
+
C(N, {
|
|
56
|
+
mode: "out-in",
|
|
57
|
+
name: "neon-drag-handle-transition"
|
|
58
|
+
}, {
|
|
59
|
+
default: c(() => [
|
|
60
|
+
n.draggable ? (l(), g(w, {
|
|
61
|
+
key: 0,
|
|
62
|
+
color: h(A).LowContrast,
|
|
63
|
+
class: "neon-draggable-card__handle-icon",
|
|
64
|
+
name: "drag-handle"
|
|
65
|
+
}, null, 8, ["color"])) : k("", !0)
|
|
66
|
+
]),
|
|
67
|
+
_: 1
|
|
68
|
+
}),
|
|
69
|
+
_(e.$slots, "default")
|
|
70
|
+
]),
|
|
71
|
+
_: 3
|
|
72
|
+
}, 8, ["class", "draggable"]));
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
export {
|
|
76
|
+
$ as default
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=NeonDraggableCard.vue.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeonDraggableCard.vue.es.js","sources":["../../../../../src/components/layout/card-list/draggable-card/NeonDraggableCard.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue';\nimport NeonIcon from '@/components/presentation/icon/NeonIcon.vue';\nimport NeonInline from '@/components/layout/inline/NeonInline.vue';\nimport { NeonFunctionalColor } from '@/model/common/color/NeonFunctionalColor';\n\n/**\n * Draggable card component for use with NeonCardList.\n */\nconst props = defineProps<{\n /**\n * Whether the card is draggable.\n */\n draggable: boolean;\n /**\n * The color used for the card hover states.\n */\n color?: NeonFunctionalColor;\n /**\n * The index of the card currently being dragged.\n */\n dragIndex?: number;\n /**\n * The index of this card.\n */\n index: number;\n}>();\n\nconst emit = defineEmits([\n /**\n * Emitted when a card is dropped on this card.\n * @type {number, number} The index of the card being dragged (startIndex) and the index of this card (endIndex).\n */\n 'drop',\n /**\n * Emitted when the card is dragged or dragging stops.\n * @type {number | undefined} The index of the card being dragged or undefined if dragging this card stops.\n */\n 'on-drag',\n]);\n\nconst draggableItem = ref<HTMLDivElement | null>(null);\nconst isActive = ref(false);\n\nconst onDragStart = (e: DragEvent) => {\n if (e.dataTransfer) {\n e.dataTransfer.effectAllowed = 'move';\n }\n emit('on-drag', props.index);\n};\n\nconst onDragEnd = () => {\n isActive.value = false;\n emit('on-drag', undefined);\n};\n\nconst onDrop = (e: DragEvent) => {\n e.preventDefault();\n isActive.value = false;\n emit('drop', props.dragIndex, props.index);\n};\n\nconst onDragOver = (e: DragEvent) => {\n e.preventDefault();\n isActive.value = true;\n};\n\nconst onDragLeave = (e: DragEvent) => {\n e.preventDefault();\n isActive.value = false;\n};\n\nconst computedActive = computed<boolean>(() => {\n return isActive.value && props.dragIndex !== undefined;\n});\n\nconst dragInProgress = computed<boolean>(() => {\n return props.dragIndex !== undefined;\n});\n</script>\n\n<template>\n <neon-inline\n ref=\"draggableItem\"\n :class=\"[\n {\n 'neon-draggable-card--active': computedActive,\n 'neon-draggable-card--drag-in-progress': dragInProgress,\n },\n `neon-draggable-card--${color}`,\n ]\"\n :draggable=\"draggable\"\n class=\"neon-draggable-card\"\n @dragend=\"onDragEnd\"\n @dragleave=\"onDragLeave\"\n @dragover=\"onDragOver\"\n @dragstart=\"onDragStart\"\n @drop=\"onDrop\"\n >\n <transition mode=\"out-in\" name=\"neon-drag-handle-transition\">\n <neon-icon\n v-if=\"draggable\"\n :color=\"NeonFunctionalColor.LowContrast\"\n class=\"neon-draggable-card__handle-icon\"\n name=\"drag-handle\"\n />\n </transition>\n <!-- @slot Default slot for displaying the card contents -->\n <slot name=\"default\" />\n </neon-inline>\n</template>\n"],"names":["props","__props","emit","__emit","draggableItem","ref","isActive","onDragStart","onDragEnd","onDrop","onDragOver","onDragLeave","computedActive","computed","dragInProgress","_createBlock","NeonInline","_normalizeClass","_createVNode","_Transition","NeonIcon","_unref","NeonFunctionalColor","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAmBRC,IAAOC,GAaPC,IAAgBC,EAA2B,IAAI,GAC/CC,IAAWD,EAAI,EAAK,GAEpBE,IAAc,CAAC,MAAiB;AACpC,MAAI,EAAE,iBACJ,EAAE,aAAa,gBAAgB,SAEjCL,EAAK,WAAWF,EAAM,KAAK;AAAA,IAC7B,GAEMQ,IAAY,MAAM;AACtB,MAAAF,EAAS,QAAQ,IACjBJ,EAAK,WAAW,MAAS;AAAA,IAC3B,GAEMO,IAAS,CAAC,MAAiB;AAC/B,QAAE,eAAA,GACFH,EAAS,QAAQ,IACjBJ,EAAK,QAAQF,EAAM,WAAWA,EAAM,KAAK;AAAA,IAC3C,GAEMU,IAAa,CAAC,MAAiB;AACnC,QAAE,eAAA,GACFJ,EAAS,QAAQ;AAAA,IACnB,GAEMK,IAAc,CAAC,MAAiB;AACpC,QAAE,eAAA,GACFL,EAAS,QAAQ;AAAA,IACnB,GAEMM,IAAiBC,EAAkB,MAChCP,EAAS,SAASN,EAAM,cAAc,MAC9C,GAEKc,IAAiBD,EAAkB,MAChCb,EAAM,cAAc,MAC5B;2BAICe,EA2BcC,GAAA;AAAA,eA1BR;AAAA,MAAJ,KAAIZ;AAAA,MACH,OAAKa,EAAA,CAAA;AAAA;yCAAmDL,EAAA;AAAA,mDAAiEE,EAAA;AAAA,QAAA;AAAA,gCAAuDb,EAAA,KAAK;AAAA,MAAA,GAQhL,qBAAqB,CAAA;AAAA,MAD1B,WAAWA,EAAA;AAAA,MAEX,WAASO;AAAA,MACT,aAAWG;AAAA,MACX,YAAUD;AAAA,MACV,aAAWH;AAAA,MACX,QAAAE;AAAA,IAAA;iBAED,MAOa;AAAA,QAPbS,EAOaC,GAAA;AAAA,UAPD,MAAK;AAAA,UAAS,MAAK;AAAA,QAAA;qBAC7B,MAKE;AAAA,YAJMlB,EAAA,kBADRc,EAKEK,GAAA;AAAA;cAHC,OAAOC,EAAAC,CAAA,EAAoB;AAAA,cAC5B,OAAM;AAAA,cACN,MAAK;AAAA,YAAA;;;;QAITC,EAAuBC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NeonDraggableCard.vue.es2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const n=require("vue"),s=require("../card-list/NeonCardList.vue.cjs.js"),c=require("../../presentation/header/NeonHeader.vue.cjs.js"),u=require("../../../model/common/color/NeonFunctionalColor.cjs.js"),
|
|
1
|
+
"use strict";const n=require("vue"),s=require("../card-list/NeonCardList.vue.cjs.js"),c=require("../../presentation/header/NeonHeader.vue.cjs.js"),u=require("../../../model/common/color/NeonFunctionalColor.cjs.js"),d=require("../../presentation/empty-state/NeonEmptyState.vue.cjs.js"),g=require("../../feedback/splash-loader/NeonSplashLoader.vue.cjs.js"),p=require("../../../model/layout/card-list/NeonCardListStyle.cjs.js"),y=n.defineComponent({name:"NeonListLayout",components:{NeonSplashLoader:g,NeonEmptyState:d,NeonCardList:s,NeonHeader:c},props:{title:{type:String,required:!0},subtitle:{type:String},breadcrumbs:{type:Array,default:()=>[]},backButton:{type:Boolean,default:!0},backLabel:{type:String,default:"Back"},items:{type:Array,required:!0},initializing:{type:Boolean},loading:{type:Boolean},color:{type:String,default:()=>u.NeonFunctionalColor.Brand},selectable:{type:Boolean,default:!1},listStyle:{type:String,default:()=>p.NeonCardListStyle.List},loadOnDemand:{type:Object},pagination:{type:Object}},emits:["page-change","show-more","toggle-selected"],setup(o,{emit:t,slots:a}){const r=()=>{t("show-more")},i=(e,l)=>{t("toggle-selected",e,l)};return n.watch(()=>o.initializing,async e=>{!e&&o.items.length>0&&window.scrollTo({top:0,left:0,behavior:"instant"})},{immediate:!0}),{emit:t,slots:a,showMore:r,toggleSelected:i,onPageChange:e=>{window.scrollTo({top:0,left:0,behavior:"instant"}),t("page-change",e)}}}});module.exports=y;
|
|
2
2
|
//# sourceMappingURL=NeonListLayout.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonListLayout.cjs.js","sources":["../../../../src/components/layout/list-layout/NeonListLayout.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, watch } from 'vue';\nimport type { NeonBreadcrumbLink } from '@/model/navigation/breadcrumbs/NeonBreadcrumbLink';\nimport NeonCardList from '@/components/layout/card-list/NeonCardList.vue';\nimport NeonHeader from '@/components/presentation/header/NeonHeader.vue';\nimport { NeonFunctionalColor } from '@/model/common/color/NeonFunctionalColor';\nimport type { NeonLoadOnDemandModel } from '@/model/layout/card-list/NeonLoadOnDemandModel';\nimport type { NeonPaginationModel } from '@/model/navigation/pagination/NeonPaginationModel';\nimport type { NeonCardListModel } from '@/model/layout/card-list/NeonCardListModel';\nimport type { NeonIdentifiable } from '@/model/common/entity/NeonIdentifiable';\nimport type { NeonSelectable } from '@/model/common/entity/NeonSelectable';\nimport NeonEmptyState from '@/components/presentation/empty-state/NeonEmptyState.vue';\nimport NeonSplashLoader from '@/components/feedback/splash-loader/NeonSplashLoader.vue';\n\n/**\n * A page level layout component for displaying a list with a page header, filter bar, card list, pagination & an empty\n * state. Use this component directly inside the NeonPage <em>contents</em> slot.\n */\nexport default defineComponent({\n name: 'NeonListLayout',\n components: {\n NeonSplashLoader,\n NeonEmptyState,\n NeonCardList,\n NeonHeader,\n },\n props: {\n /**\n * The title of the header.\n */\n title: { type: String, required: true },\n /**\n * The subtitle of the header.\n */\n subtitle: { type: String },\n /**\n * Breadcrumbs to display above the header.\n */\n breadcrumbs: { type: Array as () => NeonBreadcrumbLink[], default: () => [] },\n /**\n * Whether to display a back button\n */\n backButton: { type: Boolean, default: true },\n /**\n * Override the label for the back button\n */\n backLabel: { type: String, default: 'Back' },\n /**\n * Items to display as cards. Each item should be a NeonCardListModel.\n */\n items: {\n type: Array as () => Array<NeonCardListModel<NeonIdentifiable | (NeonIdentifiable & NeonSelectable)>>,\n required: true,\n },\n /**\n * Loading state for the initial load.\n */\n initializing: { type: Boolean },\n /**\n * Loading state for pagination, set when loading a new page.\n */\n loading: { type: Boolean },\n /**\n * Specify a selection/loading/hover color for the cards.\n */\n color: { type: String as () => NeonFunctionalColor, default: () => NeonFunctionalColor.Brand },\n /**\n * Make cards selectable.\n */\n selectable: { type: Boolean, default: false },\n /**\n * Model for configuring the on demand loading layout.\n */\n loadOnDemand: { type: Object as () => NeonLoadOnDemandModel },\n /**\n * Model for configuring pagination, either pagination or loadOnDemand should be provided.\n */\n pagination: { type: Object as () => NeonPaginationModel },\n },\n emits: [\n /**\n * Emitted when the user clicks on a pagination link (useful for paginated lists which are not the main focus of the page,\n * i.e. should not be deep linked).\n *\n * @type {number} The new page number.\n */\n 'page-change',\n /**\n * Emitted when the '
|
|
1
|
+
{"version":3,"file":"NeonListLayout.cjs.js","sources":["../../../../src/components/layout/list-layout/NeonListLayout.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, watch } from 'vue';\nimport type { NeonBreadcrumbLink } from '@/model/navigation/breadcrumbs/NeonBreadcrumbLink';\nimport NeonCardList from '@/components/layout/card-list/NeonCardList.vue';\nimport NeonHeader from '@/components/presentation/header/NeonHeader.vue';\nimport { NeonFunctionalColor } from '@/model/common/color/NeonFunctionalColor';\nimport type { NeonLoadOnDemandModel } from '@/model/layout/card-list/NeonLoadOnDemandModel';\nimport type { NeonPaginationModel } from '@/model/navigation/pagination/NeonPaginationModel';\nimport type { NeonCardListModel } from '@/model/layout/card-list/NeonCardListModel';\nimport type { NeonIdentifiable } from '@/model/common/entity/NeonIdentifiable';\nimport type { NeonSelectable } from '@/model/common/entity/NeonSelectable';\nimport NeonEmptyState from '@/components/presentation/empty-state/NeonEmptyState.vue';\nimport NeonSplashLoader from '@/components/feedback/splash-loader/NeonSplashLoader.vue';\nimport { NeonCardListStyle } from '@/model/layout/card-list/NeonCardListStyle';\n\n/**\n * A page level layout component for displaying a list with a page header, filter bar, card list, pagination & an empty\n * state. Use this component directly inside the NeonPage <em>contents</em> slot.\n */\nexport default defineComponent({\n name: 'NeonListLayout',\n components: {\n NeonSplashLoader,\n NeonEmptyState,\n NeonCardList,\n NeonHeader,\n },\n props: {\n /**\n * The title of the header.\n */\n title: { type: String, required: true },\n /**\n * The subtitle of the header.\n */\n subtitle: { type: String },\n /**\n * Breadcrumbs to display above the header.\n */\n breadcrumbs: { type: Array as () => NeonBreadcrumbLink[], default: () => [] },\n /**\n * Whether to display a back button\n */\n backButton: { type: Boolean, default: true },\n /**\n * Override the label for the back button\n */\n backLabel: { type: String, default: 'Back' },\n /**\n * Items to display as cards. Each item should be a NeonCardListModel.\n */\n items: {\n type: Array as () => Array<NeonCardListModel<NeonIdentifiable | (NeonIdentifiable & NeonSelectable)>>,\n required: true,\n },\n /**\n * Loading state for the initial load.\n */\n initializing: { type: Boolean },\n /**\n * Loading state for pagination, set when loading a new page.\n */\n loading: { type: Boolean },\n /**\n * Specify a selection/loading/hover color for the cards.\n */\n color: { type: String as () => NeonFunctionalColor, default: () => NeonFunctionalColor.Brand },\n /**\n * Make cards selectable.\n */\n selectable: { type: Boolean, default: false },\n /**\n * Specify the card list layout, either a 'List' of cards with 100% width or a responsive 'Grid' of cards.\n */\n listStyle: { type: String as () => NeonCardListStyle, default: () => NeonCardListStyle.List },\n /**\n * Model for configuring the on demand loading layout.\n */\n loadOnDemand: { type: Object as () => NeonLoadOnDemandModel },\n /**\n * Model for configuring pagination, either pagination or loadOnDemand should be provided.\n */\n pagination: { type: Object as () => NeonPaginationModel },\n },\n emits: [\n /**\n * Emitted when the user clicks on a pagination link (useful for paginated lists which are not the main focus of the page,\n * i.e. should not be deep linked).\n *\n * @type {number} The new page number.\n */\n 'page-change',\n /**\n * Emitted when the 'Load more' button is clicked in \"on demand\" mode.\n * @type {void}\n */\n 'show-more',\n /**\n * Emitted when in selectable mode and the selected state of a card is toggled.\n * @type {string, boolean} - the id of the card which is toggled & the new selected state.\n */\n 'toggle-selected',\n ],\n setup(props, { emit, slots }) {\n const showMore = () => {\n emit('show-more');\n };\n\n const toggleSelected = (id: string, selected: boolean) => {\n emit('toggle-selected', id, selected);\n };\n\n watch(\n () => props.initializing,\n async (newValue) => {\n if (!newValue && props.items.length > 0) {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' as ScrollBehavior });\n }\n },\n { immediate: true },\n );\n\n const onPageChange = (newPage: number) => {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' as ScrollBehavior });\n emit('page-change', newPage);\n };\n\n return {\n emit,\n slots,\n showMore,\n toggleSelected,\n onPageChange,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonSplashLoader","NeonEmptyState","NeonCardList","NeonHeader","NeonFunctionalColor","NeonCardListStyle","props","emit","slots","showMore","toggleSelected","id","selected","watch","newValue","newPage"],"mappings":"yaAkBAA,EAAeC,kBAAgB,CAC7B,KAAM,iBACN,WAAY,CACV,iBAAAC,EACA,eAAAC,EACA,aAAAC,EACA,WAAAC,CAAA,EAEF,MAAO,CAIL,MAAO,CAAE,KAAM,OAAQ,SAAU,EAAA,EAIjC,SAAU,CAAE,KAAM,MAAA,EAIlB,YAAa,CAAE,KAAM,MAAqC,QAAS,IAAM,CAAA,CAAC,EAI1E,WAAY,CAAE,KAAM,QAAS,QAAS,EAAA,EAItC,UAAW,CAAE,KAAM,OAAQ,QAAS,MAAA,EAIpC,MAAO,CACL,KAAM,MACN,SAAU,EAAA,EAKZ,aAAc,CAAE,KAAM,OAAA,EAItB,QAAS,CAAE,KAAM,OAAA,EAIjB,MAAO,CAAE,KAAM,OAAqC,QAAS,IAAMC,EAAAA,oBAAoB,KAAA,EAIvF,WAAY,CAAE,KAAM,QAAS,QAAS,EAAA,EAItC,UAAW,CAAE,KAAM,OAAmC,QAAS,IAAMC,EAAAA,kBAAkB,IAAA,EAIvF,aAAc,CAAE,KAAM,MAAA,EAItB,WAAY,CAAE,KAAM,MAAA,CAAoC,EAE1D,MAAO,CAOL,cAKA,YAKA,iBAAA,EAEF,MAAMC,EAAO,CAAE,KAAAC,EAAM,MAAAC,GAAS,CAC5B,MAAMC,EAAW,IAAM,CACrBF,EAAK,WAAW,CAClB,EAEMG,EAAiB,CAACC,EAAYC,IAAsB,CACxDL,EAAK,kBAAmBI,EAAIC,CAAQ,CACtC,EAEAC,OAAAA,EAAAA,MACE,IAAMP,EAAM,aACZ,MAAOQ,GAAa,CACd,CAACA,GAAYR,EAAM,MAAM,OAAS,GACpC,OAAO,SAAS,CAAE,IAAK,EAAG,KAAM,EAAG,SAAU,UAA6B,CAE9E,EACA,CAAE,UAAW,EAAA,CAAK,EAQb,CACL,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,eAAAC,EACA,aAVoBK,GAAoB,CACxC,OAAO,SAAS,CAAE,IAAK,EAAG,KAAM,EAAG,SAAU,UAA6B,EAC1ER,EAAK,cAAeQ,CAAO,CAC7B,CAOE,CAEJ,CACF,CAAC"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { defineComponent as l, watch as p } from "vue";
|
|
2
2
|
import s from "../card-list/NeonCardList.vue.es.js";
|
|
3
|
-
import
|
|
4
|
-
import { NeonFunctionalColor as
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
3
|
+
import d from "../../presentation/header/NeonHeader.vue.es.js";
|
|
4
|
+
import { NeonFunctionalColor as m } from "../../../model/common/color/NeonFunctionalColor.es.js";
|
|
5
|
+
import c from "../../presentation/empty-state/NeonEmptyState.vue.es.js";
|
|
6
|
+
import g from "../../feedback/splash-loader/NeonSplashLoader.vue.es.js";
|
|
7
|
+
import { NeonCardListStyle as f } from "../../../model/layout/card-list/NeonCardListStyle.es.js";
|
|
8
|
+
const N = l({
|
|
8
9
|
name: "NeonListLayout",
|
|
9
10
|
components: {
|
|
10
|
-
NeonSplashLoader:
|
|
11
|
-
NeonEmptyState:
|
|
11
|
+
NeonSplashLoader: g,
|
|
12
|
+
NeonEmptyState: c,
|
|
12
13
|
NeonCardList: s,
|
|
13
|
-
NeonHeader:
|
|
14
|
+
NeonHeader: d
|
|
14
15
|
},
|
|
15
16
|
props: {
|
|
16
17
|
/**
|
|
@@ -51,11 +52,15 @@ const S = l({
|
|
|
51
52
|
/**
|
|
52
53
|
* Specify a selection/loading/hover color for the cards.
|
|
53
54
|
*/
|
|
54
|
-
color: { type: String, default: () =>
|
|
55
|
+
color: { type: String, default: () => m.Brand },
|
|
55
56
|
/**
|
|
56
57
|
* Make cards selectable.
|
|
57
58
|
*/
|
|
58
59
|
selectable: { type: Boolean, default: !1 },
|
|
60
|
+
/**
|
|
61
|
+
* Specify the card list layout, either a 'List' of cards with 100% width or a responsive 'Grid' of cards.
|
|
62
|
+
*/
|
|
63
|
+
listStyle: { type: String, default: () => f.List },
|
|
59
64
|
/**
|
|
60
65
|
* Model for configuring the on demand loading layout.
|
|
61
66
|
*/
|
|
@@ -74,7 +79,7 @@ const S = l({
|
|
|
74
79
|
*/
|
|
75
80
|
"page-change",
|
|
76
81
|
/**
|
|
77
|
-
* Emitted when the '
|
|
82
|
+
* Emitted when the 'Load more' button is clicked in "on demand" mode.
|
|
78
83
|
* @type {void}
|
|
79
84
|
*/
|
|
80
85
|
"show-more",
|
|
@@ -108,6 +113,6 @@ const S = l({
|
|
|
108
113
|
}
|
|
109
114
|
});
|
|
110
115
|
export {
|
|
111
|
-
|
|
116
|
+
N as default
|
|
112
117
|
};
|
|
113
118
|
//# sourceMappingURL=NeonListLayout.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonListLayout.es.js","sources":["../../../../src/components/layout/list-layout/NeonListLayout.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, watch } from 'vue';\nimport type { NeonBreadcrumbLink } from '@/model/navigation/breadcrumbs/NeonBreadcrumbLink';\nimport NeonCardList from '@/components/layout/card-list/NeonCardList.vue';\nimport NeonHeader from '@/components/presentation/header/NeonHeader.vue';\nimport { NeonFunctionalColor } from '@/model/common/color/NeonFunctionalColor';\nimport type { NeonLoadOnDemandModel } from '@/model/layout/card-list/NeonLoadOnDemandModel';\nimport type { NeonPaginationModel } from '@/model/navigation/pagination/NeonPaginationModel';\nimport type { NeonCardListModel } from '@/model/layout/card-list/NeonCardListModel';\nimport type { NeonIdentifiable } from '@/model/common/entity/NeonIdentifiable';\nimport type { NeonSelectable } from '@/model/common/entity/NeonSelectable';\nimport NeonEmptyState from '@/components/presentation/empty-state/NeonEmptyState.vue';\nimport NeonSplashLoader from '@/components/feedback/splash-loader/NeonSplashLoader.vue';\n\n/**\n * A page level layout component for displaying a list with a page header, filter bar, card list, pagination & an empty\n * state. Use this component directly inside the NeonPage <em>contents</em> slot.\n */\nexport default defineComponent({\n name: 'NeonListLayout',\n components: {\n NeonSplashLoader,\n NeonEmptyState,\n NeonCardList,\n NeonHeader,\n },\n props: {\n /**\n * The title of the header.\n */\n title: { type: String, required: true },\n /**\n * The subtitle of the header.\n */\n subtitle: { type: String },\n /**\n * Breadcrumbs to display above the header.\n */\n breadcrumbs: { type: Array as () => NeonBreadcrumbLink[], default: () => [] },\n /**\n * Whether to display a back button\n */\n backButton: { type: Boolean, default: true },\n /**\n * Override the label for the back button\n */\n backLabel: { type: String, default: 'Back' },\n /**\n * Items to display as cards. Each item should be a NeonCardListModel.\n */\n items: {\n type: Array as () => Array<NeonCardListModel<NeonIdentifiable | (NeonIdentifiable & NeonSelectable)>>,\n required: true,\n },\n /**\n * Loading state for the initial load.\n */\n initializing: { type: Boolean },\n /**\n * Loading state for pagination, set when loading a new page.\n */\n loading: { type: Boolean },\n /**\n * Specify a selection/loading/hover color for the cards.\n */\n color: { type: String as () => NeonFunctionalColor, default: () => NeonFunctionalColor.Brand },\n /**\n * Make cards selectable.\n */\n selectable: { type: Boolean, default: false },\n /**\n * Model for configuring the on demand loading layout.\n */\n loadOnDemand: { type: Object as () => NeonLoadOnDemandModel },\n /**\n * Model for configuring pagination, either pagination or loadOnDemand should be provided.\n */\n pagination: { type: Object as () => NeonPaginationModel },\n },\n emits: [\n /**\n * Emitted when the user clicks on a pagination link (useful for paginated lists which are not the main focus of the page,\n * i.e. should not be deep linked).\n *\n * @type {number} The new page number.\n */\n 'page-change',\n /**\n * Emitted when the '
|
|
1
|
+
{"version":3,"file":"NeonListLayout.es.js","sources":["../../../../src/components/layout/list-layout/NeonListLayout.ts?vue&type=script&src=true&lang.ts"],"sourcesContent":["import { defineComponent, watch } from 'vue';\nimport type { NeonBreadcrumbLink } from '@/model/navigation/breadcrumbs/NeonBreadcrumbLink';\nimport NeonCardList from '@/components/layout/card-list/NeonCardList.vue';\nimport NeonHeader from '@/components/presentation/header/NeonHeader.vue';\nimport { NeonFunctionalColor } from '@/model/common/color/NeonFunctionalColor';\nimport type { NeonLoadOnDemandModel } from '@/model/layout/card-list/NeonLoadOnDemandModel';\nimport type { NeonPaginationModel } from '@/model/navigation/pagination/NeonPaginationModel';\nimport type { NeonCardListModel } from '@/model/layout/card-list/NeonCardListModel';\nimport type { NeonIdentifiable } from '@/model/common/entity/NeonIdentifiable';\nimport type { NeonSelectable } from '@/model/common/entity/NeonSelectable';\nimport NeonEmptyState from '@/components/presentation/empty-state/NeonEmptyState.vue';\nimport NeonSplashLoader from '@/components/feedback/splash-loader/NeonSplashLoader.vue';\nimport { NeonCardListStyle } from '@/model/layout/card-list/NeonCardListStyle';\n\n/**\n * A page level layout component for displaying a list with a page header, filter bar, card list, pagination & an empty\n * state. Use this component directly inside the NeonPage <em>contents</em> slot.\n */\nexport default defineComponent({\n name: 'NeonListLayout',\n components: {\n NeonSplashLoader,\n NeonEmptyState,\n NeonCardList,\n NeonHeader,\n },\n props: {\n /**\n * The title of the header.\n */\n title: { type: String, required: true },\n /**\n * The subtitle of the header.\n */\n subtitle: { type: String },\n /**\n * Breadcrumbs to display above the header.\n */\n breadcrumbs: { type: Array as () => NeonBreadcrumbLink[], default: () => [] },\n /**\n * Whether to display a back button\n */\n backButton: { type: Boolean, default: true },\n /**\n * Override the label for the back button\n */\n backLabel: { type: String, default: 'Back' },\n /**\n * Items to display as cards. Each item should be a NeonCardListModel.\n */\n items: {\n type: Array as () => Array<NeonCardListModel<NeonIdentifiable | (NeonIdentifiable & NeonSelectable)>>,\n required: true,\n },\n /**\n * Loading state for the initial load.\n */\n initializing: { type: Boolean },\n /**\n * Loading state for pagination, set when loading a new page.\n */\n loading: { type: Boolean },\n /**\n * Specify a selection/loading/hover color for the cards.\n */\n color: { type: String as () => NeonFunctionalColor, default: () => NeonFunctionalColor.Brand },\n /**\n * Make cards selectable.\n */\n selectable: { type: Boolean, default: false },\n /**\n * Specify the card list layout, either a 'List' of cards with 100% width or a responsive 'Grid' of cards.\n */\n listStyle: { type: String as () => NeonCardListStyle, default: () => NeonCardListStyle.List },\n /**\n * Model for configuring the on demand loading layout.\n */\n loadOnDemand: { type: Object as () => NeonLoadOnDemandModel },\n /**\n * Model for configuring pagination, either pagination or loadOnDemand should be provided.\n */\n pagination: { type: Object as () => NeonPaginationModel },\n },\n emits: [\n /**\n * Emitted when the user clicks on a pagination link (useful for paginated lists which are not the main focus of the page,\n * i.e. should not be deep linked).\n *\n * @type {number} The new page number.\n */\n 'page-change',\n /**\n * Emitted when the 'Load more' button is clicked in \"on demand\" mode.\n * @type {void}\n */\n 'show-more',\n /**\n * Emitted when in selectable mode and the selected state of a card is toggled.\n * @type {string, boolean} - the id of the card which is toggled & the new selected state.\n */\n 'toggle-selected',\n ],\n setup(props, { emit, slots }) {\n const showMore = () => {\n emit('show-more');\n };\n\n const toggleSelected = (id: string, selected: boolean) => {\n emit('toggle-selected', id, selected);\n };\n\n watch(\n () => props.initializing,\n async (newValue) => {\n if (!newValue && props.items.length > 0) {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' as ScrollBehavior });\n }\n },\n { immediate: true },\n );\n\n const onPageChange = (newPage: number) => {\n window.scrollTo({ top: 0, left: 0, behavior: 'instant' as ScrollBehavior });\n emit('page-change', newPage);\n };\n\n return {\n emit,\n slots,\n showMore,\n toggleSelected,\n onPageChange,\n };\n },\n});\n"],"names":["_sfc_main","defineComponent","NeonSplashLoader","NeonEmptyState","NeonCardList","NeonHeader","NeonFunctionalColor","NeonCardListStyle","props","emit","slots","showMore","toggleSelected","id","selected","watch","newValue","newPage"],"mappings":";;;;;;;AAkBA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,kBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,EAAA;AAAA,EAEF,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO,EAAE,MAAM,QAAQ,UAAU,GAAA;AAAA;AAAA;AAAA;AAAA,IAIjC,UAAU,EAAE,MAAM,OAAA;AAAA;AAAA;AAAA;AAAA,IAIlB,aAAa,EAAE,MAAM,OAAqC,SAAS,MAAM,CAAA,EAAC;AAAA;AAAA;AAAA;AAAA,IAI1E,YAAY,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA;AAAA;AAAA;AAAA,IAItC,WAAW,EAAE,MAAM,QAAQ,SAAS,OAAA;AAAA;AAAA;AAAA;AAAA,IAIpC,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA;AAAA;AAAA;AAAA,IAKZ,cAAc,EAAE,MAAM,QAAA;AAAA;AAAA;AAAA;AAAA,IAItB,SAAS,EAAE,MAAM,QAAA;AAAA;AAAA;AAAA;AAAA,IAIjB,OAAO,EAAE,MAAM,QAAqC,SAAS,MAAMC,EAAoB,MAAA;AAAA;AAAA;AAAA;AAAA,IAIvF,YAAY,EAAE,MAAM,SAAS,SAAS,GAAA;AAAA;AAAA;AAAA;AAAA,IAItC,WAAW,EAAE,MAAM,QAAmC,SAAS,MAAMC,EAAkB,KAAA;AAAA;AAAA;AAAA;AAAA,IAIvF,cAAc,EAAE,MAAM,OAAA;AAAA;AAAA;AAAA;AAAA,IAItB,YAAY,EAAE,MAAM,OAAA;AAAA,EAAoC;AAAA,EAE1D,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,EAAA;AAAA,EAEF,MAAMC,GAAO,EAAE,MAAAC,GAAM,OAAAC,KAAS;AAC5B,UAAMC,IAAW,MAAM;AACrB,MAAAF,EAAK,WAAW;AAAA,IAClB,GAEMG,IAAiB,CAACC,GAAYC,MAAsB;AACxD,MAAAL,EAAK,mBAAmBI,GAAIC,CAAQ;AAAA,IACtC;AAEA,WAAAC;AAAA,MACE,MAAMP,EAAM;AAAA,MACZ,OAAOQ,MAAa;AAClB,QAAI,CAACA,KAAYR,EAAM,MAAM,SAAS,KACpC,OAAO,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,WAA6B;AAAA,MAE9E;AAAA,MACA,EAAE,WAAW,GAAA;AAAA,IAAK,GAQb;AAAA,MACL,MAAAC;AAAA,MACA,OAAAC;AAAA,MACA,UAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,cAVmB,CAACK,MAAoB;AACxC,eAAO,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,WAA6B,GAC1ER,EAAK,eAAeQ,CAAO;AAAA,MAC7B;AAAA,IAOE;AAAA,EAEJ;AACF,CAAC;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const i=require("./NeonListLayout.cjs.js"),o=require("vue"),d=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),p={class:"neon-list-layout"},c={key:1};function m(e,
|
|
1
|
+
"use strict";const i=require("./NeonListLayout.cjs.js"),o=require("vue"),d=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),p={class:"neon-list-layout"},c={key:1};function m(e,n,b,g,h,k){const l=o.resolveComponent("neon-splash-loader"),s=o.resolveComponent("neon-header"),r=o.resolveComponent("neon-card-list");return o.openBlock(),o.createElementBlock("div",p,[e.initializing?(o.openBlock(),o.createBlock(l,{key:0,color:"brand"})):!e.initializing&&e.items.length>0?(o.openBlock(),o.createElementBlock("div",c,[o.createVNode(s,{"back-button":e.backButton,"back-label":e.backLabel,breadcrumbs:e.breadcrumbs,subtitle:e.subtitle,title:e.title},o.createSlots({labels:o.withCtx(()=>[o.renderSlot(e.$slots,"labels")]),_:2},[e.items.length>0?{name:"actions",fn:o.withCtx(()=>[o.renderSlot(e.$slots,"actions")]),key:"0"}:void 0]),1032,["back-button","back-label","breadcrumbs","subtitle","title"]),o.renderSlot(e.$slots,"note"),o.createVNode(r,{color:e.color,items:e.items,"list-style":e.listStyle,"load-on-demand":e.loadOnDemand,loading:e.loading,pagination:e.pagination,selectable:e.selectable,onPageChange:n[0]||(n[0]=t=>e.emit("page-change",t)),onShowMore:e.showMore,onToggleSelected:e.toggleSelected},{filters:o.withCtx(()=>[o.renderSlot(e.$slots,"filters")]),header:o.withCtx(()=>[o.renderSlot(e.$slots,"header")]),card:o.withCtx(({model:t,index:a})=>[o.renderSlot(e.$slots,"card",o.normalizeProps(o.guardReactiveProps({model:t,index:a})))]),_:3},8,["color","items","list-style","load-on-demand","loading","pagination","selectable","onShowMore","onToggleSelected"])])):!e.initializing&&!e.loading&&e.slots.emptyState&&e.items.length===0?o.renderSlot(e.$slots,"emptyState",{key:2}):o.createCommentVNode("",!0)])}const u=d(i,[["render",m]]);module.exports=u;
|
|
2
2
|
//# sourceMappingURL=NeonListLayout.vue.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NeonListLayout.vue.cjs.js","sources":["../../../../src/components/layout/list-layout/NeonListLayout.vue"],"sourcesContent":["<template>\n <div class=\"neon-list-layout\">\n <neon-splash-loader v-if=\"initializing\" color=\"brand\" />\n <div v-else-if=\"!initializing && items.length > 0\">\n <neon-header\n :back-button=\"backButton\"\n :back-label=\"backLabel\"\n :breadcrumbs=\"breadcrumbs\"\n :subtitle=\"subtitle\"\n :title=\"title\"\n >\n <template #labels>\n <!-- @slot a slot for adding labels/info popovers next to the title -->\n <slot name=\"labels\"></slot>\n </template>\n <template v-if=\"items.length > 0\" #actions>\n <!-- @slot a slot for adding contextual action buttons to the header. The wrapper is provided, just add the\n buttons here in order to apply the correct spacings -->\n <slot name=\"actions\"></slot>\n </template>\n </neon-header>\n <!-- @slot the insert a note into the page -->\n <slot name=\"note\"></slot>\n <neon-card-list\n :color=\"color\"\n :items=\"items\"\n :load-on-demand=\"loadOnDemand\"\n :loading=\"loading\"\n :pagination=\"pagination\"\n :selectable=\"selectable\"\n @page-change=\"(page: number) => emit('page-change', page)\"\n @show-more=\"showMore\"\n @toggle-selected=\"toggleSelected\"\n >\n <template #filters>\n <!-- @slot the insert a filter bar above the list -->\n <slot name=\"filters\"></slot>\n </template>\n <template #header>\n <!-- @slot the list header -->\n <slot name=\"header\"></slot>\n </template>\n <template #card=\"{ model, index }\">\n <!-- @slot slot for rendering card contents, two parameters are available:\n @binding {T} model - the model item to be rendered\n @binding {number} index - the index of the item in the list -->\n <slot name=\"card\" v-bind=\"{ model, index }\"></slot>\n </template>\n </neon-card-list>\n </div>\n <template v-else-if=\"!initializing && !loading && slots.emptyState && items.length === 0\">\n <!-- @slot page empty state rendered when there are no list items -->\n <slot name=\"emptyState\"></slot>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonListLayout.ts\" />\n"],"names":["_hoisted_1","_openBlock","_createElementBlock","_ctx","_createBlock","_component_neon_splash_loader","_hoisted_2","_createVNode","_component_neon_header","_renderSlot","_component_neon_card_list","_cache","page","_withCtx","model","index","_normalizeProps","_guardReactiveProps"],"mappings":"yIACOA,EAAA,CAAA,MAAM,kBAAkB,gKAA7B,OAAAC,YAAA,EAAAC,
|
|
1
|
+
{"version":3,"file":"NeonListLayout.vue.cjs.js","sources":["../../../../src/components/layout/list-layout/NeonListLayout.vue"],"sourcesContent":["<template>\n <div class=\"neon-list-layout\">\n <neon-splash-loader v-if=\"initializing\" color=\"brand\" />\n <div v-else-if=\"!initializing && items.length > 0\">\n <neon-header\n :back-button=\"backButton\"\n :back-label=\"backLabel\"\n :breadcrumbs=\"breadcrumbs\"\n :subtitle=\"subtitle\"\n :title=\"title\"\n >\n <template #labels>\n <!-- @slot a slot for adding labels/info popovers next to the title -->\n <slot name=\"labels\"></slot>\n </template>\n <template v-if=\"items.length > 0\" #actions>\n <!-- @slot a slot for adding contextual action buttons to the header. The wrapper is provided, just add the\n buttons here in order to apply the correct spacings -->\n <slot name=\"actions\"></slot>\n </template>\n </neon-header>\n <!-- @slot the insert a note into the page -->\n <slot name=\"note\"></slot>\n <neon-card-list\n :color=\"color\"\n :items=\"items\"\n :list-style=\"listStyle\"\n :load-on-demand=\"loadOnDemand\"\n :loading=\"loading\"\n :pagination=\"pagination\"\n :selectable=\"selectable\"\n @page-change=\"(page: number) => emit('page-change', page)\"\n @show-more=\"showMore\"\n @toggle-selected=\"toggleSelected\"\n >\n <template #filters>\n <!-- @slot the insert a filter bar above the list -->\n <slot name=\"filters\"></slot>\n </template>\n <template #header>\n <!-- @slot the list header -->\n <slot name=\"header\"></slot>\n </template>\n <template #card=\"{ model, index }\">\n <!-- @slot slot for rendering card contents, two parameters are available:\n @binding {T} model - the model item to be rendered\n @binding {number} index - the index of the item in the list -->\n <slot name=\"card\" v-bind=\"{ model, index }\"></slot>\n </template>\n </neon-card-list>\n </div>\n <template v-else-if=\"!initializing && !loading && slots.emptyState && items.length === 0\">\n <!-- @slot page empty state rendered when there are no list items -->\n <slot name=\"emptyState\"></slot>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./NeonListLayout.ts\" />\n"],"names":["_hoisted_1","_openBlock","_createElementBlock","_ctx","_createBlock","_component_neon_splash_loader","_hoisted_2","_createVNode","_component_neon_header","_renderSlot","_component_neon_card_list","_cache","page","_withCtx","model","index","_normalizeProps","_guardReactiveProps"],"mappings":"yIACOA,EAAA,CAAA,MAAM,kBAAkB,gKAA7B,OAAAC,YAAA,EAAAC,qBAsDM,MAtDNF,EAsDM,CArDsBG,EAAA,4BAA1BC,EAAAA,YAAwDC,EAAA,OAAhB,MAAM,YAC7BF,EAAA,cAAgBA,EAAA,MAAM,OAAM,iBAA7CD,EAAAA,mBA+CM,MAAAI,EAAA,CA9CJC,EAAAA,YAgBcC,EAAA,CAfX,cAAaL,EAAA,WACb,aAAYA,EAAA,UACZ,YAAaA,EAAA,YACb,SAAUA,EAAA,SACV,MAAOA,EAAA,sBAEG,iBAET,IAA2B,CAA3BM,aAA2BN,EAAA,OAAA,QAAA,UAEbA,EAAA,MAAM,OAAM,QAAO,uBAGjC,IAA4B,CAA5BM,aAA4BN,EAAA,OAAA,SAAA,0FAIhCM,aAAyBN,EAAA,OAAA,MAAA,EACzBI,EAAAA,YA0BiBG,EAAA,CAzBd,MAAOP,EAAA,MACP,MAAOA,EAAA,MACP,aAAYA,EAAA,UACZ,iBAAgBA,EAAA,aAChB,QAASA,EAAA,QACT,WAAYA,EAAA,WACZ,WAAYA,EAAA,WACZ,aAAWQ,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAGC,GAAiBT,EAAA,mBAAoBS,CAAI,GACvD,WAAWT,EAAA,SACX,iBAAiBA,EAAA,iBAEP,kBAET,IAA4B,CAA5BM,aAA4BN,EAAA,OAAA,SAAA,IAEnB,iBAET,IAA2B,CAA3BM,aAA2BN,EAAA,OAAA,QAAA,IAElB,KAAIU,EAAAA,QAIb,CAAmD,CAJlC,MAAAC,EAAO,MAAAC,CAAK,IAAA,CAI7BN,aAAmDN,EAAA,OAAA,OAAAa,EAAAA,eAAAC,EAAAA,mBAAA,CAAvB,MAAAH,EAAO,MAAAC,CAAK,CAAA,CAAA,CAAA,oIAIxBZ,EAAA,cAAY,CAAKA,WAAWA,EAAA,MAAM,YAAcA,EAAA,MAAM,SAAM,EAEhFM,EAAAA,WAA+BN,EAAA,OAAA,aAAA,CAAA,IAAA,CAAA,CAAA"}
|