@featherk/ui 0.17.1 → 0.18.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/README.md +73 -12
- package/dist/address.cjs +2 -0
- package/dist/address.cjs.map +1 -0
- package/dist/address.mjs +237 -0
- package/dist/address.mjs.map +1 -0
- package/dist/chunks/picker.css +1 -0
- package/dist/chunks/shared-BHFhmbuH.cjs +2 -0
- package/dist/chunks/shared-BHFhmbuH.cjs.map +1 -0
- package/dist/chunks/shared-CHgC5LLL.mjs +10 -0
- package/dist/chunks/shared-CHgC5LLL.mjs.map +1 -0
- package/dist/{docs-manifest.d.ts → docs-manifest.d.mts} +3 -0
- package/dist/docs-manifest.mjs +25 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +12 -0
- package/dist/index.mjs.map +1 -0
- package/dist/picker/DateField.vue.d.ts +28 -0
- package/dist/picker/DateRangeField.vue.d.ts +34 -0
- package/dist/picker/TimeField.vue.d.ts +28 -0
- package/dist/picker/errorKey.d.ts +1 -0
- package/dist/picker/index.d.ts +4 -0
- package/dist/picker/types.d.ts +18 -0
- package/dist/picker.cjs +2 -0
- package/dist/picker.cjs.map +1 -0
- package/dist/picker.mjs +384 -0
- package/dist/picker.mjs.map +1 -0
- package/dist/table/types.d.ts +1 -1
- package/dist/table/useActionCellMenu.d.ts +2 -1
- package/dist/table.cjs +2 -0
- package/dist/table.cjs.map +1 -0
- package/dist/table.mjs +157 -0
- package/dist/table.mjs.map +1 -0
- package/docs/README.md +4 -4
- package/docs/address/USAddress.md +1 -2
- package/docs/picker/DateField.md +89 -0
- package/docs/picker/DateRangeField.md +99 -0
- package/docs/picker/TimeField.md +88 -0
- package/package.json +36 -22
- package/dist/docs-manifest.js +0 -19
- package/dist/featherk-ui.es.js +0 -392
- package/dist/featherk-ui.es.js.map +0 -1
- package/dist/featherk-ui.umd.js +0 -2
- package/dist/featherk-ui.umd.js.map +0 -1
- /package/dist/{ui.css → chunks/address.css} +0 -0
package/package.json
CHANGED
|
@@ -1,37 +1,46 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@featherk/ui",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"main": "dist/
|
|
5
|
-
"module": "dist/
|
|
3
|
+
"version": "0.18.0",
|
|
4
|
+
"main": "dist/index.cjs",
|
|
5
|
+
"module": "dist/index.mjs",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
10
|
-
"import": "./dist/
|
|
11
|
-
"require": "./dist/
|
|
10
|
+
"import": "./dist/index.mjs",
|
|
11
|
+
"require": "./dist/index.cjs"
|
|
12
|
+
},
|
|
13
|
+
"./address": {
|
|
14
|
+
"types": "./dist/address/index.d.ts",
|
|
15
|
+
"import": "./dist/address.mjs",
|
|
16
|
+
"require": "./dist/address.cjs"
|
|
12
17
|
},
|
|
13
18
|
"./table": {
|
|
14
19
|
"types": "./dist/table/index.d.ts",
|
|
15
|
-
"import": "./dist/
|
|
16
|
-
"require": "./dist/
|
|
20
|
+
"import": "./dist/table.mjs",
|
|
21
|
+
"require": "./dist/table.cjs"
|
|
17
22
|
},
|
|
18
|
-
"./
|
|
19
|
-
"types": "./dist/
|
|
20
|
-
"import": "./dist/
|
|
21
|
-
"require": "./dist/
|
|
23
|
+
"./picker": {
|
|
24
|
+
"types": "./dist/picker/index.d.ts",
|
|
25
|
+
"import": "./dist/picker.mjs",
|
|
26
|
+
"require": "./dist/picker.cjs"
|
|
22
27
|
},
|
|
23
28
|
"./docs-manifest": {
|
|
24
|
-
"types": "./dist/docs-manifest.d.
|
|
25
|
-
"import": "./dist/docs-manifest.
|
|
26
|
-
"default": "./dist/docs-manifest.
|
|
27
|
-
}
|
|
29
|
+
"types": "./dist/docs-manifest.d.mts",
|
|
30
|
+
"import": "./dist/docs-manifest.mjs",
|
|
31
|
+
"default": "./dist/docs-manifest.mjs"
|
|
32
|
+
},
|
|
33
|
+
"./package.json": "./package.json"
|
|
28
34
|
},
|
|
35
|
+
"sideEffects": [
|
|
36
|
+
"**/*.css"
|
|
37
|
+
],
|
|
29
38
|
"files": [
|
|
30
39
|
"dist",
|
|
31
40
|
"docs"
|
|
32
41
|
],
|
|
33
42
|
"scripts": {
|
|
34
|
-
"build": "vite build &&
|
|
43
|
+
"build": "vite build && npm run build:types && npm run build:docs-manifest && node ../../scripts/check-entries.mjs && node ../../scripts/check-peers.mjs",
|
|
35
44
|
"build:types": "vue-tsc -p tsconfig.build.json --emitDeclarationOnly --declaration --declarationDir dist",
|
|
36
45
|
"build:docs-manifest": "node ../../scripts/generate-docs-manifest.mjs",
|
|
37
46
|
"test": "vitest --config vitest.config.ts",
|
|
@@ -42,15 +51,19 @@
|
|
|
42
51
|
},
|
|
43
52
|
"peerDependencies": {
|
|
44
53
|
"vue": "^3.5.0",
|
|
45
|
-
"@featherk/composables": ">=0.
|
|
54
|
+
"@featherk/composables": ">=0.18.0",
|
|
55
|
+
"@featherk/icons": ">=0.18.0",
|
|
46
56
|
"@progress/kendo-svg-icons": "^4.5.0",
|
|
47
57
|
"@progress/kendo-vue-buttons": "^6.4.1",
|
|
58
|
+
"@progress/kendo-vue-common": "^6.4.1",
|
|
59
|
+
"@progress/kendo-vue-dateinputs": "^6.4.1",
|
|
48
60
|
"@progress/kendo-vue-dropdowns": "^6.4.1",
|
|
49
61
|
"@progress/kendo-vue-grid": "^6.4.1",
|
|
50
62
|
"@progress/kendo-vue-inputs": "^6.4.1",
|
|
51
63
|
"@progress/kendo-vue-labels": "^6.4.1",
|
|
52
64
|
"@progress/kendo-vue-layout": "^6.4.1",
|
|
53
|
-
"@progress/kendo-vue-popup": "^6.4.1"
|
|
65
|
+
"@progress/kendo-vue-popup": "^6.4.1",
|
|
66
|
+
"@progress/kendo-vue-tooltip": "^6.4.1"
|
|
54
67
|
},
|
|
55
68
|
"peerDependenciesMeta": {
|
|
56
69
|
"@progress/kendo-svg-icons": {
|
|
@@ -58,13 +71,11 @@
|
|
|
58
71
|
},
|
|
59
72
|
"@progress/kendo-vue-layout": {
|
|
60
73
|
"optional": true
|
|
61
|
-
},
|
|
62
|
-
"@progress/kendo-vue-popup": {
|
|
63
|
-
"optional": true
|
|
64
74
|
}
|
|
65
75
|
},
|
|
66
76
|
"devDependencies": {
|
|
67
77
|
"@featherk/composables": "file:../composables",
|
|
78
|
+
"@featherk/icons": "file:../icons",
|
|
68
79
|
"@types/node": "^24.5.2",
|
|
69
80
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
70
81
|
"@vue/test-utils": "^2.4.6",
|
|
@@ -80,7 +91,10 @@
|
|
|
80
91
|
"kendo",
|
|
81
92
|
"components",
|
|
82
93
|
"ui",
|
|
83
|
-
"address"
|
|
94
|
+
"address",
|
|
95
|
+
"datepicker",
|
|
96
|
+
"timepicker",
|
|
97
|
+
"daterangepicker"
|
|
84
98
|
],
|
|
85
99
|
"license": "MIT"
|
|
86
100
|
}
|
package/dist/docs-manifest.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// Generated by scripts/generate-docs-manifest.mjs. Do not edit.
|
|
2
|
-
export const packageName = "@featherk/ui";
|
|
3
|
-
|
|
4
|
-
export const version = "0.17.1";
|
|
5
|
-
|
|
6
|
-
export const paths = {
|
|
7
|
-
ActionCell: "table/ActionCell.md",
|
|
8
|
-
USAddress: "address/USAddress.md",
|
|
9
|
-
useActionCellMenu: "table/useActionCellMenu.md",
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export const docs = {
|
|
13
|
-
ActionCell: "https://cdn.jsdelivr.net/npm/@featherk/ui@0.17.1/docs/table/ActionCell.md",
|
|
14
|
-
USAddress: "https://cdn.jsdelivr.net/npm/@featherk/ui@0.17.1/docs/address/USAddress.md",
|
|
15
|
-
useActionCellMenu: "https://cdn.jsdelivr.net/npm/@featherk/ui@0.17.1/docs/table/useActionCellMenu.md",
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export const docUrl = (name, host = "https://cdn.jsdelivr.net/npm") =>
|
|
19
|
-
`${host}/${packageName}@${version}/docs/${paths[name]}`;
|
package/dist/featherk-ui.es.js
DELETED
|
@@ -1,392 +0,0 @@
|
|
|
1
|
-
import "./ui.css";
|
|
2
|
-
import { defineComponent as F, computed as i, openBlock as v, createElementBlock as E, normalizeClass as O, createElementVNode as V, createVNode as T, unref as c, Fragment as $, createBlock as h, withCtx as I, createTextVNode as S, toDisplayString as C, createCommentVNode as D, normalizeStyle as U, renderList as H, toValue as W, nextTick as J } from "vue";
|
|
3
|
-
import { Error as w, Hint as x } from "@progress/kendo-vue-labels";
|
|
4
|
-
import { TextBox as b } from "@progress/kendo-vue-inputs";
|
|
5
|
-
import { DropDownList as Q } from "@progress/kendo-vue-dropdowns";
|
|
6
|
-
import { Button as X } from "@progress/kendo-vue-buttons";
|
|
7
|
-
import { useCompositeId as Y, useActiveIdRegistry as ee, usePopupMenu as ae } from "@featherk/composables";
|
|
8
|
-
const te = { class: "address1" }, le = {
|
|
9
|
-
key: 0,
|
|
10
|
-
class: "address2"
|
|
11
|
-
}, re = { class: "city" }, ie = { class: "state" }, de = { class: "zip" }, se = {
|
|
12
|
-
key: 1,
|
|
13
|
-
class: "messages"
|
|
14
|
-
}, q = "Enter a 5 or 9 digit zip code.", ne = "Incomplete address.", oe = /* @__PURE__ */ F({
|
|
15
|
-
__name: "USAddress",
|
|
16
|
-
props: {
|
|
17
|
-
id: {},
|
|
18
|
-
address: {},
|
|
19
|
-
required: { type: Boolean, default: !0 },
|
|
20
|
-
messageScope: { default: "fieldset" },
|
|
21
|
-
messages: {},
|
|
22
|
-
showAddress2: { type: Boolean, default: !0 }
|
|
23
|
-
},
|
|
24
|
-
setup(t) {
|
|
25
|
-
const a = t, s = {
|
|
26
|
-
placeholder: {
|
|
27
|
-
address1: "Address Line 1",
|
|
28
|
-
address2: "Address Line 2",
|
|
29
|
-
city: "City",
|
|
30
|
-
zip: "00000-0000"
|
|
31
|
-
},
|
|
32
|
-
fieldset: {
|
|
33
|
-
error: {
|
|
34
|
-
required: "Required fields are missing.",
|
|
35
|
-
zip: q
|
|
36
|
-
},
|
|
37
|
-
hint: {
|
|
38
|
-
address: "Enter address information."
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
field: {
|
|
42
|
-
error: {
|
|
43
|
-
address1: "Required",
|
|
44
|
-
address2: "",
|
|
45
|
-
city: "Required",
|
|
46
|
-
state: "Required",
|
|
47
|
-
zip: q
|
|
48
|
-
},
|
|
49
|
-
hint: {
|
|
50
|
-
address1: "Enter address line 1.",
|
|
51
|
-
address2: "Optional",
|
|
52
|
-
city: "",
|
|
53
|
-
state: "",
|
|
54
|
-
zip: q
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}, y = (r) => ({
|
|
58
|
-
placeholder: {
|
|
59
|
-
address1: r?.placeholder?.address1 ?? s.placeholder.address1,
|
|
60
|
-
address2: r?.placeholder?.address2 ?? s.placeholder.address2,
|
|
61
|
-
city: r?.placeholder?.city ?? s.placeholder.city,
|
|
62
|
-
zip: r?.placeholder?.zip ?? s.placeholder.zip
|
|
63
|
-
},
|
|
64
|
-
fieldset: {
|
|
65
|
-
error: {
|
|
66
|
-
required: r?.fieldset?.error?.required ?? s.fieldset.error.required,
|
|
67
|
-
zip: r?.fieldset?.error?.zip ?? s.fieldset.error.zip
|
|
68
|
-
},
|
|
69
|
-
hint: {
|
|
70
|
-
address: r?.fieldset?.hint?.address ?? s.fieldset.hint.address
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
field: {
|
|
74
|
-
error: {
|
|
75
|
-
address1: r?.field?.error?.address1 ?? s.field.error.address1,
|
|
76
|
-
address2: r?.field?.error?.address2 ?? s.field.error.address2,
|
|
77
|
-
city: r?.field?.error?.city ?? s.field.error.city,
|
|
78
|
-
state: r?.field?.error?.state ?? s.field.error.state,
|
|
79
|
-
zip: r?.field?.error?.zip ?? s.field.error.zip
|
|
80
|
-
},
|
|
81
|
-
hint: {
|
|
82
|
-
address1: r?.field?.hint?.address1 ?? s.field.hint.address1,
|
|
83
|
-
address2: r?.field?.hint?.address2 ?? s.field.hint.address2,
|
|
84
|
-
city: r?.field?.hint?.city ?? s.field.hint.city,
|
|
85
|
-
state: r?.field?.hint?.state ?? s.field.hint.state,
|
|
86
|
-
zip: r?.field?.hint?.zip ?? s.field.hint.zip
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}), n = i(() => y(a.messages)), f = i(() => a.messageScope === "field"), z = i(() => a.messageScope === "fieldset"), u = i(() => a.required), m = i(() => u.value), o = i(() => ({
|
|
90
|
-
address1: `${a.id}-address1`,
|
|
91
|
-
address2: `${a.id}-address2`,
|
|
92
|
-
city: `${a.id}-city`,
|
|
93
|
-
state: `${a.id}-state`,
|
|
94
|
-
zip: `${a.id}-zip`
|
|
95
|
-
})), e = i(() => a.address), p = i(() => e.value.address1Valid.value && e.value.cityValid.value && e.value.stateValid.value), k = i(() => e.value.formData.address1.trim() !== "" || e.value.formData.address2.trim() !== "" || e.value.formData.city.trim() !== "" || (e.value.formData.state ?? "").trim() !== "" || e.value.formData.zip.replace(/\D/g, "") !== ""), _ = i(() => {
|
|
96
|
-
if (e.value.optionalZipInvalid)
|
|
97
|
-
return e.value.optionalZipInvalid.value;
|
|
98
|
-
const r = e.value.formData.zip.replace(/\D/g, "");
|
|
99
|
-
return !u.value && k.value && r.length !== 5 && r.length !== 9;
|
|
100
|
-
}), l = i(() => e.value.optionalPartialInvalid ? e.value.optionalPartialInvalid.value : !u.value && k.value && !e.value.addressValid.value), d = i(() => u.value || !l.value ? !1 : e.value.optionalFeedbackActive ? e.value.optionalFeedbackActive.value : !1), g = i(() => m.value && !e.value.address1Valid.value || d.value && e.value.formData.address1.trim() === ""), R = i(() => m.value && !e.value.cityValid.value || d.value && e.value.formData.city.trim() === ""), P = i(() => m.value && !e.value.stateValid.value || d.value && (e.value.formData.state ?? "").trim() === ""), M = i(() => m.value && !e.value.zipValid.value || d.value && _.value), A = i(() => u.value ? e.value.addressValidate.value : d.value), K = i(() => u.value ? e.value.address1Valid.value : !g.value), L = i(() => u.value ? e.value.cityValid.value : !R.value), B = i(() => u.value ? e.value.stateValid.value : !P.value), N = i(() => u.value ? e.value.zipValid.value : !M.value), Z = i(() => {
|
|
101
|
-
const r = n.value.placeholder.address2;
|
|
102
|
-
return z.value && u.value ? `${r} (Optional)` : r;
|
|
103
|
-
}), j = i(() => {
|
|
104
|
-
const r = [];
|
|
105
|
-
return p.value || r.push(n.value.fieldset.error.required), e.value.zipValid.value || r.push(n.value.fieldset.error.zip), r.join(" ");
|
|
106
|
-
}), G = i(() => {
|
|
107
|
-
const r = [ne];
|
|
108
|
-
return _.value && r.push(n.value.fieldset.error.zip), r.join(" ");
|
|
109
|
-
});
|
|
110
|
-
return (r, ve) => (v(), E("div", {
|
|
111
|
-
class: O(["fkui-us-address", { "fkui-us-address--fieldset-scope": z.value }])
|
|
112
|
-
}, [
|
|
113
|
-
V("div", te, [
|
|
114
|
-
T(c(b), {
|
|
115
|
-
id: o.value.address1,
|
|
116
|
-
placeholder: n.value.placeholder.address1,
|
|
117
|
-
value: e.value.formData.address1,
|
|
118
|
-
valid: K.value,
|
|
119
|
-
validate: A.value,
|
|
120
|
-
validityStyles: A.value,
|
|
121
|
-
onInput: e.value.onAddress1Input
|
|
122
|
-
}, null, 8, ["id", "placeholder", "value", "valid", "validate", "validityStyles", "onInput"]),
|
|
123
|
-
f.value ? (v(), E($, { key: 0 }, [
|
|
124
|
-
g.value ? (v(), h(c(w), { key: 0 }, {
|
|
125
|
-
default: I(() => [
|
|
126
|
-
S(C(n.value.field.error.address1), 1)
|
|
127
|
-
]),
|
|
128
|
-
_: 1
|
|
129
|
-
})) : (v(), h(c(x), { key: 1 }, {
|
|
130
|
-
default: I(() => [
|
|
131
|
-
S(C(n.value.field.hint.address1), 1)
|
|
132
|
-
]),
|
|
133
|
-
_: 1
|
|
134
|
-
}))
|
|
135
|
-
], 64)) : D("", !0)
|
|
136
|
-
]),
|
|
137
|
-
t.showAddress2 ? (v(), E("div", le, [
|
|
138
|
-
T(c(b), {
|
|
139
|
-
id: o.value.address2,
|
|
140
|
-
placeholder: Z.value,
|
|
141
|
-
value: e.value.formData.address2,
|
|
142
|
-
onInput: e.value.onAddress2Input
|
|
143
|
-
}, null, 8, ["id", "placeholder", "value", "onInput"]),
|
|
144
|
-
f.value ? (v(), h(c(x), { key: 0 }, {
|
|
145
|
-
default: I(() => [
|
|
146
|
-
S(C(n.value.field.hint.address2), 1)
|
|
147
|
-
]),
|
|
148
|
-
_: 1
|
|
149
|
-
})) : D("", !0)
|
|
150
|
-
])) : D("", !0),
|
|
151
|
-
V("div", re, [
|
|
152
|
-
T(c(b), {
|
|
153
|
-
id: o.value.city,
|
|
154
|
-
placeholder: n.value.placeholder.city,
|
|
155
|
-
value: e.value.formData.city,
|
|
156
|
-
valid: L.value,
|
|
157
|
-
validate: A.value,
|
|
158
|
-
validityStyles: A.value,
|
|
159
|
-
onInput: e.value.onCityInput
|
|
160
|
-
}, null, 8, ["id", "placeholder", "value", "valid", "validate", "validityStyles", "onInput"]),
|
|
161
|
-
f.value && R.value ? (v(), h(c(w), { key: 0 }, {
|
|
162
|
-
default: I(() => [
|
|
163
|
-
S(C(n.value.field.error.city), 1)
|
|
164
|
-
]),
|
|
165
|
-
_: 1
|
|
166
|
-
})) : D("", !0)
|
|
167
|
-
]),
|
|
168
|
-
V("div", ie, [
|
|
169
|
-
T(c(Q), {
|
|
170
|
-
id: o.value.state,
|
|
171
|
-
value: e.value.formData.state,
|
|
172
|
-
onChange: e.value.onStateChange,
|
|
173
|
-
defaultItem: e.value.stateDefaultItem,
|
|
174
|
-
dataItems: e.value.stateOptions,
|
|
175
|
-
textField: "label",
|
|
176
|
-
valueField: "value",
|
|
177
|
-
dataItemKey: "value",
|
|
178
|
-
valuePrimitive: !0,
|
|
179
|
-
valid: B.value,
|
|
180
|
-
validate: A.value,
|
|
181
|
-
validityStyles: A.value
|
|
182
|
-
}, null, 8, ["id", "value", "onChange", "defaultItem", "dataItems", "valid", "validate", "validityStyles"]),
|
|
183
|
-
f.value && P.value ? (v(), h(c(w), { key: 0 }, {
|
|
184
|
-
default: I(() => [
|
|
185
|
-
S(C(n.value.field.error.state), 1)
|
|
186
|
-
]),
|
|
187
|
-
_: 1
|
|
188
|
-
})) : D("", !0)
|
|
189
|
-
]),
|
|
190
|
-
V("div", de, [
|
|
191
|
-
T(c(b), {
|
|
192
|
-
id: o.value.zip,
|
|
193
|
-
placeholder: n.value.placeholder.zip,
|
|
194
|
-
wrapperClass: e.value.zipWrapperClass,
|
|
195
|
-
value: e.value.zipDisplay.value,
|
|
196
|
-
onInput: e.value.onZipInput,
|
|
197
|
-
valid: N.value,
|
|
198
|
-
validate: A.value,
|
|
199
|
-
validityStyles: A.value,
|
|
200
|
-
style: { width: "100%" }
|
|
201
|
-
}, null, 8, ["id", "placeholder", "wrapperClass", "value", "onInput", "valid", "validate", "validityStyles"]),
|
|
202
|
-
f.value && M.value ? (v(), h(c(w), { key: 0 }, {
|
|
203
|
-
default: I(() => [
|
|
204
|
-
S(C(n.value.field.error.zip), 1)
|
|
205
|
-
]),
|
|
206
|
-
_: 1
|
|
207
|
-
})) : D("", !0),
|
|
208
|
-
f.value && !M.value ? (v(), h(c(x), { key: 1 }, {
|
|
209
|
-
default: I(() => [
|
|
210
|
-
S(C(n.value.field.hint.zip), 1)
|
|
211
|
-
]),
|
|
212
|
-
_: 1
|
|
213
|
-
})) : D("", !0)
|
|
214
|
-
]),
|
|
215
|
-
z.value ? (v(), E("div", se, [
|
|
216
|
-
m.value && !e.value.addressValid.value ? (v(), h(c(w), { key: 0 }, {
|
|
217
|
-
default: I(() => [
|
|
218
|
-
S(C(j.value), 1)
|
|
219
|
-
]),
|
|
220
|
-
_: 1
|
|
221
|
-
})) : d.value ? (v(), h(c(w), { key: 1 }, {
|
|
222
|
-
default: I(() => [
|
|
223
|
-
S(C(G.value), 1)
|
|
224
|
-
]),
|
|
225
|
-
_: 1
|
|
226
|
-
})) : (v(), h(c(x), { key: 2 }, {
|
|
227
|
-
default: I(() => [
|
|
228
|
-
S(C(n.value.fieldset.hint.address), 1)
|
|
229
|
-
]),
|
|
230
|
-
_: 1
|
|
231
|
-
}))
|
|
232
|
-
])) : D("", !0)
|
|
233
|
-
], 2));
|
|
234
|
-
}
|
|
235
|
-
}), ue = (t, a) => {
|
|
236
|
-
const s = t.__vccOpts || t;
|
|
237
|
-
for (const [y, n] of a)
|
|
238
|
-
s[y] = n;
|
|
239
|
-
return s;
|
|
240
|
-
}, Ie = /* @__PURE__ */ ue(oe, [["__scopeId", "data-v-8aeb035b"]]), ce = ["id", "colspan", "aria-colindex", "aria-selected", "data-grid-col-index"], Se = /* @__PURE__ */ F({
|
|
241
|
-
inheritAttrs: !1,
|
|
242
|
-
__name: "ActionCell",
|
|
243
|
-
props: {
|
|
244
|
-
id: {},
|
|
245
|
-
className: {},
|
|
246
|
-
style: {},
|
|
247
|
-
colSpan: {},
|
|
248
|
-
ariaColumnIndex: {},
|
|
249
|
-
isSelected: { type: Boolean },
|
|
250
|
-
columnIndex: {},
|
|
251
|
-
dataItem: {},
|
|
252
|
-
config: {},
|
|
253
|
-
menuController: {},
|
|
254
|
-
tabIndex: { default: -1 }
|
|
255
|
-
},
|
|
256
|
-
setup(t) {
|
|
257
|
-
const a = t, s = Y("action-cell"), y = (o) => a.menuController.getTriggerId(o, a.dataItem), n = (o) => a.menuController.registry.isIdActive(y(o)), f = (o) => typeof o.items == "function", z = (o, e) => {
|
|
258
|
-
a.menuController.registry.register(
|
|
259
|
-
y(o),
|
|
260
|
-
e
|
|
261
|
-
);
|
|
262
|
-
}, u = (o) => {
|
|
263
|
-
if (!f(o)) {
|
|
264
|
-
a.menuController.handleDirectAction?.(o, a.dataItem);
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
a.menuController.handleTriggerClick(y(o));
|
|
268
|
-
}, m = (o, ...e) => {
|
|
269
|
-
f(o) && a.menuController.handleTriggerKeydown(y(o), ...e);
|
|
270
|
-
};
|
|
271
|
-
return (o, e) => (v(), E("td", {
|
|
272
|
-
id: t.id ?? c(s).instanceId,
|
|
273
|
-
class: O(["fkui-action-cell", "k-table-td", t.className]),
|
|
274
|
-
style: U(t.style),
|
|
275
|
-
colspan: t.colSpan,
|
|
276
|
-
role: "gridcell",
|
|
277
|
-
"aria-colindex": t.ariaColumnIndex,
|
|
278
|
-
"aria-selected": t.isSelected,
|
|
279
|
-
"data-grid-col-index": t.columnIndex
|
|
280
|
-
}, [
|
|
281
|
-
(v(!0), E($, null, H(t.config.triggers, (p) => (v(), h(c(X), {
|
|
282
|
-
key: p.key,
|
|
283
|
-
ref_for: !0,
|
|
284
|
-
ref: f(p) ? (k) => z(p, k) : void 0,
|
|
285
|
-
id: c(s).compose(p.key, "trigger"),
|
|
286
|
-
"svg-icon": p.icon,
|
|
287
|
-
type: "button",
|
|
288
|
-
"fill-mode": "flat",
|
|
289
|
-
"theme-color": "primary",
|
|
290
|
-
rounded: "full",
|
|
291
|
-
"aria-label": p.ariaLabel,
|
|
292
|
-
"aria-haspopup": f(p) ? "menu" : void 0,
|
|
293
|
-
"aria-expanded": f(p) ? n(p) : void 0,
|
|
294
|
-
disabled: p.disabled?.(t.dataItem),
|
|
295
|
-
tabindex: t.tabIndex,
|
|
296
|
-
onClick: (k) => u(p),
|
|
297
|
-
onKeydown: (k) => m(p, k)
|
|
298
|
-
}, null, 8, ["id", "svg-icon", "aria-label", "aria-haspopup", "aria-expanded", "disabled", "tabindex", "onClick", "onKeydown"]))), 128))
|
|
299
|
-
], 14, ce));
|
|
300
|
-
}
|
|
301
|
-
}), Ce = (t) => {
|
|
302
|
-
const a = ee();
|
|
303
|
-
t.group?.register(a);
|
|
304
|
-
const s = t.getTriggerId ?? ((l, d) => `${l.key}:${t.getRowId(d)}`), y = i(() => {
|
|
305
|
-
const l = a.activeId.value?.split(":")[0];
|
|
306
|
-
return t.config.triggers.find((d) => d.key === l) ?? null;
|
|
307
|
-
}), n = i(() => {
|
|
308
|
-
const l = a.activeId.value?.split(":").slice(1).join(":");
|
|
309
|
-
return l === void 0 ? null : W(t.rows).find(
|
|
310
|
-
(d) => String(t.getRowId(d)) === l
|
|
311
|
-
) ?? null;
|
|
312
|
-
}), f = i(() => {
|
|
313
|
-
const l = n.value, d = y.value;
|
|
314
|
-
return l && d ? d.items?.(l) ?? [] : [];
|
|
315
|
-
}), z = i(() => {
|
|
316
|
-
const l = n.value, d = y.value;
|
|
317
|
-
return l && d && typeof d.items == "function" && d.title ? d.title(l) : null;
|
|
318
|
-
}), u = ae({
|
|
319
|
-
isOpen: a.isActive,
|
|
320
|
-
triggerRef: a.activeElement,
|
|
321
|
-
menuRef: t.menuRef,
|
|
322
|
-
popupContentRef: t.popupContentRef,
|
|
323
|
-
triggerMode: t.triggerMode ?? "button",
|
|
324
|
-
anchor: t.anchor ?? !0,
|
|
325
|
-
resolveFocusTarget: t.resolveFocusTarget,
|
|
326
|
-
focusTargetContainerSelector: t.focusTargetContainerSelector,
|
|
327
|
-
requestShow: (l) => {
|
|
328
|
-
typeof l == "string" && a.activate(l);
|
|
329
|
-
},
|
|
330
|
-
requestHide: () => a.deactivate(),
|
|
331
|
-
menuLabel: z
|
|
332
|
-
});
|
|
333
|
-
let m = 0;
|
|
334
|
-
const o = (l) => {
|
|
335
|
-
const d = ++m;
|
|
336
|
-
if (t.group?.deactivateOthers(a), a.isActive.value && !a.isIdActive(l)) {
|
|
337
|
-
a.deactivate(), J(() => {
|
|
338
|
-
d === m && u.handleTriggerClick(l);
|
|
339
|
-
});
|
|
340
|
-
return;
|
|
341
|
-
}
|
|
342
|
-
u.handleTriggerClick(l);
|
|
343
|
-
}, e = (l, d) => {
|
|
344
|
-
m++, t.group?.deactivateOthers(a), a.deactivate(), t.onActionSelected(void 0, d, l);
|
|
345
|
-
}, p = (l, ...d) => {
|
|
346
|
-
const g = d[0];
|
|
347
|
-
if (g.key === "Enter" || g.code === "Space") {
|
|
348
|
-
g.preventDefault(), o(l);
|
|
349
|
-
return;
|
|
350
|
-
}
|
|
351
|
-
u.handleTriggerKeydown(g, l);
|
|
352
|
-
}, k = (l) => {
|
|
353
|
-
l.key === "Escape" && u.handleMenuEscape(l);
|
|
354
|
-
}, _ = (l) => {
|
|
355
|
-
const d = n.value, g = y.value;
|
|
356
|
-
u.handleMenuSelect(l, () => {
|
|
357
|
-
d && g && t.onActionSelected(l.item, d, g);
|
|
358
|
-
});
|
|
359
|
-
};
|
|
360
|
-
return {
|
|
361
|
-
actionCellProps: {
|
|
362
|
-
config: t.config,
|
|
363
|
-
menuController: {
|
|
364
|
-
registry: a,
|
|
365
|
-
getTriggerId: s,
|
|
366
|
-
handleTriggerClick: o,
|
|
367
|
-
handleDirectAction: e,
|
|
368
|
-
handleTriggerKeydown: p
|
|
369
|
-
}
|
|
370
|
-
},
|
|
371
|
-
popupProps: i(() => ({
|
|
372
|
-
show: a.isActive.value,
|
|
373
|
-
offset: u.offset.value,
|
|
374
|
-
onClose: u.handlePopupClose
|
|
375
|
-
})),
|
|
376
|
-
menuProps: i(() => ({
|
|
377
|
-
items: f.value,
|
|
378
|
-
vertical: !0,
|
|
379
|
-
onKeydown: k,
|
|
380
|
-
onSelect: _
|
|
381
|
-
})),
|
|
382
|
-
activeRow: n,
|
|
383
|
-
activeTrigger: y,
|
|
384
|
-
activeTitle: z
|
|
385
|
-
};
|
|
386
|
-
};
|
|
387
|
-
export {
|
|
388
|
-
Se as ActionCell,
|
|
389
|
-
Ie as USAddress,
|
|
390
|
-
Ce as useActionCellMenu
|
|
391
|
-
};
|
|
392
|
-
//# sourceMappingURL=featherk-ui.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"featherk-ui.es.js","sources":["../src/address/USAddress.vue","../src/table/ActionCell.vue","../src/table/useActionCellMenu.ts"],"sourcesContent":["<template>\n <div\n class=\"fkui-us-address\"\n :class=\"{ 'fkui-us-address--fieldset-scope': fieldsetScope }\"\n >\n <div class=\"address1\">\n <TextBox\n :id=\"fieldIds.address1\"\n :placeholder=\"resolvedMessages.placeholder.address1\"\n :value=\"address.formData.address1\"\n :valid=\"address1DisplayValid\"\n :validate=\"validationStylesActive\"\n :validityStyles=\"validationStylesActive\"\n @input=\"address.onAddress1Input\"\n />\n <template v-if=\"fieldScope\">\n <Error v-if=\"showAddress1Error\">\n {{ resolvedMessages.field.error.address1 }}\n </Error>\n <Hint v-else>{{ resolvedMessages.field.hint.address1 }}</Hint>\n </template>\n </div>\n\n <div v-if=\"showAddress2\" class=\"address2\">\n <TextBox\n :id=\"fieldIds.address2\"\n :placeholder=\"address2PlaceholderDisplay\"\n :value=\"address.formData.address2\"\n @input=\"address.onAddress2Input\"\n />\n <Hint v-if=\"fieldScope\">{{ resolvedMessages.field.hint.address2 }}</Hint>\n </div>\n\n <div class=\"city\">\n <TextBox\n :id=\"fieldIds.city\"\n :placeholder=\"resolvedMessages.placeholder.city\"\n :value=\"address.formData.city\"\n :valid=\"cityDisplayValid\"\n :validate=\"validationStylesActive\"\n :validityStyles=\"validationStylesActive\"\n @input=\"address.onCityInput\"\n />\n <Error v-if=\"fieldScope && showCityError\">\n {{ resolvedMessages.field.error.city }}\n </Error>\n </div>\n\n <div class=\"state\">\n <DropDownList\n :id=\"fieldIds.state\"\n :value=\"address.formData.state\"\n @change=\"address.onStateChange\"\n :defaultItem=\"address.stateDefaultItem\"\n :dataItems=\"address.stateOptions\"\n textField=\"label\"\n valueField=\"value\"\n dataItemKey=\"value\"\n :valuePrimitive=\"true\"\n :valid=\"stateDisplayValid\"\n :validate=\"validationStylesActive\"\n :validityStyles=\"validationStylesActive\"\n />\n <Error v-if=\"fieldScope && showStateError\">\n {{ resolvedMessages.field.error.state }}\n </Error>\n </div>\n\n <div class=\"zip\">\n <TextBox\n :id=\"fieldIds.zip\"\n :placeholder=\"resolvedMessages.placeholder.zip\"\n :wrapperClass=\"address.zipWrapperClass\"\n :value=\"address.zipDisplay.value\"\n @input=\"address.onZipInput\"\n :valid=\"zipDisplayValid\"\n :validate=\"validationStylesActive\"\n :validityStyles=\"validationStylesActive\"\n :style=\"{ width: '100%' }\"\n />\n <Error v-if=\"fieldScope && showZipError\">\n {{ resolvedMessages.field.error.zip }}\n </Error>\n <Hint v-if=\"fieldScope && !showZipError\">\n {{ resolvedMessages.field.hint.zip }}\n </Hint>\n </div>\n\n <div v-if=\"fieldsetScope\" class=\"messages\">\n <Error v-if=\"showErrors && !address.addressValid.value\">\n {{ fieldsetErrorMessage }}\n </Error>\n <Error v-else-if=\"showOptionalFeedback\">\n {{ optionalFieldsetErrorMessage }}\n </Error>\n <Hint v-else>{{ resolvedMessages.fieldset.hint.address }}</Hint>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { Error, Hint } from \"@progress/kendo-vue-labels\";\nimport { TextBox } from \"@progress/kendo-vue-inputs\";\nimport { DropDownList } from \"@progress/kendo-vue-dropdowns\";\nimport type {\n USAddressMessageScope,\n USAddressMessages,\n USAddressViewModel,\n} from \"./types\";\n\nconst props = withDefaults(\n defineProps<{\n id: string;\n address: USAddressViewModel;\n required?: boolean;\n messageScope?: USAddressMessageScope;\n messages?: USAddressMessages;\n showAddress2?: boolean;\n }>(),\n {\n required: true,\n messageScope: \"fieldset\",\n showAddress2: true,\n },\n);\n\nconst ZIP_CODE_MESSAGE = \"Enter a 5 or 9 digit zip code.\";\nconst OPTIONAL_FIELDS_MESSAGE = \"Incomplete address.\";\n\ntype USAddressResolvedMessages = {\n placeholder: {\n address1: string;\n address2: string;\n city: string;\n zip: string;\n };\n fieldset: {\n error: {\n required: string;\n zip: string;\n };\n hint: {\n address: string;\n };\n };\n field: {\n error: {\n address1: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n };\n hint: {\n address1: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n };\n };\n};\n\nconst DEFAULT_MESSAGES: USAddressResolvedMessages = {\n placeholder: {\n address1: \"Address Line 1\",\n address2: \"Address Line 2\",\n city: \"City\",\n zip: \"00000-0000\",\n },\n fieldset: {\n error: {\n required: \"Required fields are missing.\",\n zip: ZIP_CODE_MESSAGE,\n },\n hint: {\n address: \"Enter address information.\",\n },\n },\n field: {\n error: {\n address1: \"Required\",\n address2: \"\",\n city: \"Required\",\n state: \"Required\",\n zip: ZIP_CODE_MESSAGE,\n },\n hint: {\n address1: \"Enter address line 1.\",\n address2: \"Optional\",\n city: \"\",\n state: \"\",\n zip: ZIP_CODE_MESSAGE,\n },\n },\n};\n\nconst resolveMessages = (\n source?: USAddressMessages,\n): USAddressResolvedMessages => {\n return {\n placeholder: {\n address1:\n source?.placeholder?.address1 ?? DEFAULT_MESSAGES.placeholder.address1,\n address2:\n source?.placeholder?.address2 ?? DEFAULT_MESSAGES.placeholder.address2,\n city: source?.placeholder?.city ?? DEFAULT_MESSAGES.placeholder.city,\n zip: source?.placeholder?.zip ?? DEFAULT_MESSAGES.placeholder.zip,\n },\n fieldset: {\n error: {\n required:\n source?.fieldset?.error?.required ??\n DEFAULT_MESSAGES.fieldset.error.required,\n zip:\n source?.fieldset?.error?.zip ?? DEFAULT_MESSAGES.fieldset.error.zip,\n },\n hint: {\n address:\n source?.fieldset?.hint?.address ??\n DEFAULT_MESSAGES.fieldset.hint.address,\n },\n },\n field: {\n error: {\n address1:\n source?.field?.error?.address1 ??\n DEFAULT_MESSAGES.field.error.address1,\n address2:\n source?.field?.error?.address2 ??\n DEFAULT_MESSAGES.field.error.address2,\n city: source?.field?.error?.city ?? DEFAULT_MESSAGES.field.error.city,\n state:\n source?.field?.error?.state ?? DEFAULT_MESSAGES.field.error.state,\n zip: source?.field?.error?.zip ?? DEFAULT_MESSAGES.field.error.zip,\n },\n hint: {\n address1:\n source?.field?.hint?.address1 ?? DEFAULT_MESSAGES.field.hint.address1,\n address2:\n source?.field?.hint?.address2 ?? DEFAULT_MESSAGES.field.hint.address2,\n city: source?.field?.hint?.city ?? DEFAULT_MESSAGES.field.hint.city,\n state: source?.field?.hint?.state ?? DEFAULT_MESSAGES.field.hint.state,\n zip: source?.field?.hint?.zip ?? DEFAULT_MESSAGES.field.hint.zip,\n },\n },\n };\n};\n\nconst resolvedMessages = computed(() => resolveMessages(props.messages));\n\nconst fieldScope = computed(() => {\n return props.messageScope === \"field\";\n});\n\nconst fieldsetScope = computed(() => {\n return props.messageScope === \"fieldset\";\n});\n\nconst isRequired = computed(() => props.required);\n\nconst showErrors = computed(() => isRequired.value);\n\nconst fieldIds = computed(() => ({\n address1: `${props.id}-address1`,\n address2: `${props.id}-address2`,\n city: `${props.id}-city`,\n state: `${props.id}-state`,\n zip: `${props.id}-zip`,\n}));\n\nconst address = computed(() => props.address);\n\nconst nonZipRequiredFieldsValid = computed(() => {\n return (\n address.value.address1Valid.value &&\n address.value.cityValid.value &&\n address.value.stateValid.value\n );\n});\n\nconst hasAnyOptionalInput = computed(() => {\n return (\n address.value.formData.address1.trim() !== \"\" ||\n address.value.formData.address2.trim() !== \"\" ||\n address.value.formData.city.trim() !== \"\" ||\n (address.value.formData.state ?? \"\").trim() !== \"\" ||\n address.value.formData.zip.replace(/\\D/g, \"\") !== \"\"\n );\n});\n\nconst optionalZipInvalid = computed(() => {\n if (address.value.optionalZipInvalid) {\n return address.value.optionalZipInvalid.value;\n }\n\n const zipDigits = address.value.formData.zip.replace(/\\D/g, \"\");\n return (\n !isRequired.value &&\n hasAnyOptionalInput.value &&\n zipDigits.length !== 5 &&\n zipDigits.length !== 9\n );\n});\n\nconst optionalPartialInvalid = computed(() => {\n if (address.value.optionalPartialInvalid) {\n return address.value.optionalPartialInvalid.value;\n }\n\n return (\n !isRequired.value &&\n hasAnyOptionalInput.value &&\n !address.value.addressValid.value\n );\n});\n\nconst showOptionalFeedback = computed(() => {\n if (isRequired.value || !optionalPartialInvalid.value) {\n return false;\n }\n\n if (address.value.optionalFeedbackActive) {\n return address.value.optionalFeedbackActive.value;\n }\n\n return false;\n});\n\nconst showAddress1Error = computed(() => {\n return (\n (showErrors.value && !address.value.address1Valid.value) ||\n (showOptionalFeedback.value &&\n address.value.formData.address1.trim() === \"\")\n );\n});\n\nconst showCityError = computed(() => {\n return (\n (showErrors.value && !address.value.cityValid.value) ||\n (showOptionalFeedback.value && address.value.formData.city.trim() === \"\")\n );\n});\n\nconst showStateError = computed(() => {\n return (\n (showErrors.value && !address.value.stateValid.value) ||\n (showOptionalFeedback.value &&\n (address.value.formData.state ?? \"\").trim() === \"\")\n );\n});\n\nconst showZipError = computed(() => {\n return (\n (showErrors.value && !address.value.zipValid.value) ||\n (showOptionalFeedback.value && optionalZipInvalid.value)\n );\n});\n\nconst validationStylesActive = computed(() => {\n return isRequired.value\n ? address.value.addressValidate.value\n : showOptionalFeedback.value;\n});\n\nconst address1DisplayValid = computed(() => {\n return isRequired.value\n ? address.value.address1Valid.value\n : !showAddress1Error.value;\n});\n\nconst cityDisplayValid = computed(() => {\n return isRequired.value\n ? address.value.cityValid.value\n : !showCityError.value;\n});\n\nconst stateDisplayValid = computed(() => {\n return isRequired.value\n ? address.value.stateValid.value\n : !showStateError.value;\n});\n\nconst zipDisplayValid = computed(() => {\n return isRequired.value ? address.value.zipValid.value : !showZipError.value;\n});\n\nconst address2PlaceholderDisplay = computed(() => {\n const basePlaceholder = resolvedMessages.value.placeholder.address2;\n\n if (fieldsetScope.value && isRequired.value) {\n return `${basePlaceholder} (Optional)`;\n }\n return basePlaceholder;\n});\n\nconst fieldsetErrorMessage = computed(() => {\n const messages: string[] = [];\n\n if (!nonZipRequiredFieldsValid.value) {\n messages.push(resolvedMessages.value.fieldset.error.required);\n }\n\n if (!address.value.zipValid.value) {\n messages.push(resolvedMessages.value.fieldset.error.zip);\n }\n\n return messages.join(\" \");\n});\n\nconst optionalFieldsetErrorMessage = computed(() => {\n const messages: string[] = [OPTIONAL_FIELDS_MESSAGE];\n\n if (optionalZipInvalid.value) {\n messages.push(resolvedMessages.value.fieldset.error.zip);\n }\n\n return messages.join(\" \");\n});\n</script>\n\n<style scoped>\n.fkui-us-address {\n display: grid;\n grid-template-columns: 2fr 1fr 1fr;\n grid-template-areas:\n \"address1 address1 address1\"\n \"address2 address2 address2\"\n \"city state zip\"\n \"messages messages messages\";\n gap: 0.75rem;\n margin-bottom: 1rem;\n\n .address1 {\n grid-area: address1;\n }\n\n .address2 {\n grid-area: address2;\n }\n\n .city {\n grid-area: city;\n }\n\n .state {\n grid-area: state;\n }\n\n .zip {\n grid-area: zip;\n }\n\n .messages {\n grid-area: messages;\n }\n\n :deep(.fk-zip-textbox) {\n min-width: 100%;\n }\n}\n\n.fkui-us-address--fieldset-scope {\n row-gap: 0.5rem;\n\n .messages {\n margin-top: -0.375rem;\n }\n}\n</style>\n","<template>\n <td\n :id=\"id ?? ids.instanceId\"\n :class=\"['fkui-action-cell', 'k-table-td', className]\"\n :style=\"style\"\n :colspan=\"colSpan\"\n role=\"gridcell\"\n :aria-colindex=\"ariaColumnIndex\"\n :aria-selected=\"isSelected\"\n :data-grid-col-index=\"columnIndex\"\n >\n <Button\n v-for=\"trigger in config.triggers\"\n :key=\"trigger.key\"\n :ref=\"\n hasMenu(trigger)\n ? (element) => registerTrigger(trigger, element)\n : undefined\n \"\n :id=\"ids.compose(trigger.key, 'trigger')\"\n :svg-icon=\"trigger.icon\"\n type=\"button\"\n fill-mode=\"flat\"\n theme-color=\"primary\"\n rounded=\"full\"\n :aria-label=\"trigger.ariaLabel\"\n :aria-haspopup=\"hasMenu(trigger) ? 'menu' : undefined\"\n :aria-expanded=\"hasMenu(trigger) ? isTriggerActive(trigger) : undefined\"\n :disabled=\"trigger.disabled?.(dataItem)\"\n :tabindex=\"tabIndex\"\n @click=\"onTriggerClick(trigger)\"\n @keydown=\"onTriggerKeydown(trigger, $event)\"\n />\n </td>\n</template>\n\n<script setup lang=\"ts\">\nimport type { ComponentPublicInstance } from \"vue\";\nimport { Button } from \"@progress/kendo-vue-buttons\";\nimport type { GridCellProps } from \"@progress/kendo-vue-grid\";\nimport {\n useCompositeId,\n type RegisterableElement,\n} from \"@featherk/composables\";\nimport type {\n ActionCellConfig,\n ActionCellMenuController,\n ActionCellTrigger,\n} from \"./types\";\n\ndefineOptions({ inheritAttrs: false });\n\ntype ActionCellProps = Partial<\n Pick<\n GridCellProps,\n | \"id\"\n | \"className\"\n | \"style\"\n | \"colSpan\"\n | \"ariaColumnIndex\"\n | \"isSelected\"\n | \"columnIndex\"\n >\n> & {\n dataItem: any;\n config: ActionCellConfig<any>;\n menuController: ActionCellMenuController<any>;\n tabIndex?: number;\n};\n\nconst props = withDefaults(defineProps<ActionCellProps>(), {\n tabIndex: -1,\n});\n\nconst ids = useCompositeId(\"action-cell\");\n\nconst getTriggerId = (trigger: ActionCellTrigger<any>) =>\n props.menuController.getTriggerId(trigger, props.dataItem);\n\nconst isTriggerActive = (trigger: ActionCellTrigger<any>) =>\n props.menuController.registry.isIdActive(getTriggerId(trigger));\n\nconst hasMenu = (trigger: ActionCellTrigger<any>) =>\n typeof trigger.items === \"function\";\n\nconst registerTrigger = (\n trigger: ActionCellTrigger<any>,\n element: Element | ComponentPublicInstance | null,\n) => {\n props.menuController.registry.register(\n getTriggerId(trigger),\n element as RegisterableElement,\n );\n};\n\nconst onTriggerClick = (trigger: ActionCellTrigger<any>) => {\n if (!hasMenu(trigger)) {\n props.menuController.handleDirectAction?.(trigger, props.dataItem);\n return;\n }\n props.menuController.handleTriggerClick(getTriggerId(trigger));\n};\n\nconst onTriggerKeydown = (\n trigger: ActionCellTrigger<any>,\n ...args: unknown[]\n) => {\n if (!hasMenu(trigger)) return;\n props.menuController.handleTriggerKeydown(getTriggerId(trigger), ...args);\n};\n</script>\n","import {\n computed,\n nextTick,\n toValue,\n type ComputedRef,\n type MaybeRefOrGetter,\n} from \"vue\";\nimport {\n useActiveIdRegistry,\n usePopupMenu,\n type KendoMenuSelectEvent,\n type PopupMenuAnchorOptions,\n type PopupMenuElementRef,\n type PopupMenuOffset,\n type PopupMenuTriggerMode,\n type UseExclusiveGroupReturn,\n} from \"@featherk/composables\";\nimport type {\n ActionCellConfig,\n ActionCellDataItem,\n ActionCellMenuController,\n ActionCellMenuItem,\n} from \"./types\";\n\nexport type UseActionCellMenuOptions<\n TData extends ActionCellDataItem = ActionCellDataItem,\n TConfig extends ActionCellConfig<TData> = ActionCellConfig<TData>,\n> = {\n /** Repeatable trigger configuration, rendered by every `ActionCell` instance. */\n config: TConfig;\n /** All rows currently rendered; used to resolve the active row from its registry id. */\n rows: MaybeRefOrGetter<TData[]>;\n /** Derives a stable row id used to build the default registry id for each trigger. */\n getRowId: (row: TData) => string | number;\n /**\n * Overrides the registry ID formatting while preserving `<trigger.key>:<rowId>` semantics.\n * Active row and trigger resolution parse the first colon-separated segment as the trigger\n * key and the remaining segments as the row ID.\n */\n getTriggerId?: (trigger: TConfig[\"triggers\"][number], row: TData) => string;\n /** Ref to the single shared Kendo Menu instance. */\n menuRef: PopupMenuElementRef;\n /**\n * Optional custom popup measurement source forwarded to `usePopupMenu`.\n * Normal Kendo Popup markup is measured from the nearest `.k-popup` border\n * box automatically, including `activeTitle` and other sibling content.\n */\n popupContentRef?: PopupMenuElementRef;\n /** Forwarded to `usePopupMenu`. Defaults to `\"button\"`. */\n triggerMode?: PopupMenuTriggerMode;\n /** Forwarded to `usePopupMenu`. Defaults to `true` for shared-popup positioning. */\n anchor?: PopupMenuAnchorOptions | true;\n /** Forwarded to `usePopupMenu`. */\n resolveFocusTarget?: () => HTMLElement | null;\n /** Forwarded to `usePopupMenu`. */\n focusTargetContainerSelector?: string;\n /** Coordinates mutual exclusivity with other active-id registries in this group. */\n group?: UseExclusiveGroupReturn;\n /**\n * Runs after a menu item is selected, with its original item and resolved row/trigger.\n * Direct-action triggers have no menu item and pass `undefined`.\n */\n onActionSelected: (\n item: ActionCellMenuItem | undefined,\n row: TData,\n trigger: TConfig[\"triggers\"][number],\n ) => void;\n};\n\nexport type UseActionCellMenuReturn<\n TData extends ActionCellDataItem = ActionCellDataItem,\n TConfig extends ActionCellConfig<TData> = ActionCellConfig<TData>,\n> = {\n /** Spread onto every `<ActionCell>` instance. */\n actionCellProps: {\n config: TConfig;\n menuController: ActionCellMenuController<TData>;\n };\n /** Spread onto the single shared `<Popup>`. */\n popupProps: ComputedRef<{\n show: boolean;\n offset: PopupMenuOffset;\n onClose: () => void;\n }>;\n /** Spread onto the single shared Kendo `<Menu>`. */\n menuProps: ComputedRef<{\n items: ActionCellMenuItem[];\n vertical: true;\n onKeydown: (event: KeyboardEvent) => void;\n onSelect: (event: KendoMenuSelectEvent<ActionCellMenuItem>) => void;\n }>;\n /** Row resolved from the currently active trigger id, if any. */\n activeRow: ComputedRef<TData | null>;\n /** Trigger config resolved from the currently active trigger id, if any. */\n activeTrigger: ComputedRef<TConfig[\"triggers\"][number] | null>;\n /** Resolved `trigger.title(activeRow)`, or `null` when unset/no trigger is active. Render this yourself (e.g. `<strong>`) above the `<Menu>` — it is not part of `menuProps.items`. */\n activeTitle: ComputedRef<string | null>;\n};\n\n/**\n * Bundles the shared-popup wiring a parent needs to drive `ActionCell`: one\n * `useActiveIdRegistry`, one `usePopupMenu`, and the derived active\n * row/trigger/menu items. The parent still owns the `<Popup>`/`<Menu>`\n * template elements and any business logic for the selected action.\n */\nexport const useActionCellMenu = <\n TData extends ActionCellDataItem = ActionCellDataItem,\n TConfig extends ActionCellConfig<TData> = ActionCellConfig<TData>,\n>(\n options: UseActionCellMenuOptions<TData, TConfig>,\n): UseActionCellMenuReturn<TData, TConfig> => {\n const registry = useActiveIdRegistry<string>();\n options.group?.register(registry);\n\n const getTriggerId =\n options.getTriggerId ??\n ((trigger: TConfig[\"triggers\"][number], row: TData) =>\n `${trigger.key}:${options.getRowId(row)}`);\n\n const activeTrigger = computed(() => {\n const key = registry.activeId.value?.split(\":\")[0];\n return (\n (options.config.triggers.find((trigger) => trigger.key === key) as\n | TConfig[\"triggers\"][number]\n | undefined) ?? null\n );\n });\n\n const activeRow = computed(() => {\n const rowId = registry.activeId.value?.split(\":\").slice(1).join(\":\");\n if (rowId === undefined) return null;\n return (\n toValue(options.rows).find(\n (row) => String(options.getRowId(row)) === rowId,\n ) ?? null\n );\n });\n\n const activeMenuItems = computed<ActionCellMenuItem[]>(() => {\n const row = activeRow.value;\n const trigger = activeTrigger.value;\n return row && trigger ? (trigger.items?.(row) ?? []) : [];\n });\n\n const activeTitle = computed<string | null>(() => {\n const row = activeRow.value;\n const trigger = activeTrigger.value;\n return row &&\n trigger &&\n typeof trigger.items === \"function\" &&\n trigger.title\n ? trigger.title(row)\n : null;\n });\n\n const popupMenu = usePopupMenu({\n isOpen: registry.isActive,\n triggerRef: registry.activeElement,\n menuRef: options.menuRef,\n popupContentRef: options.popupContentRef,\n triggerMode: options.triggerMode ?? \"button\",\n anchor: options.anchor ?? true,\n resolveFocusTarget: options.resolveFocusTarget,\n focusTargetContainerSelector: options.focusTargetContainerSelector,\n requestShow: (id) => {\n if (typeof id === \"string\") registry.activate(id);\n },\n requestHide: () => registry.deactivate(),\n menuLabel: activeTitle,\n });\n\n let triggerInteractionSequence = 0;\n\n const handleTriggerClick = (id: string) => {\n const interactionSequence = ++triggerInteractionSequence;\n options.group?.deactivateOthers(registry);\n\n if (registry.isActive.value && !registry.isIdActive(id)) {\n registry.deactivate();\n void nextTick(() => {\n if (interactionSequence === triggerInteractionSequence) {\n popupMenu.handleTriggerClick(id);\n }\n });\n return;\n }\n\n popupMenu.handleTriggerClick(id);\n };\n\n const handleDirectAction = (\n trigger: TConfig[\"triggers\"][number],\n row: TData,\n ) => {\n triggerInteractionSequence++;\n options.group?.deactivateOthers(registry);\n registry.deactivate();\n options.onActionSelected(undefined, row, trigger);\n };\n\n const handleTriggerKeydown = (id: string, ...args: unknown[]) => {\n const event = args[0] as KeyboardEvent;\n if (event.key === \"Enter\" || event.code === \"Space\") {\n event.preventDefault();\n handleTriggerClick(id);\n return;\n }\n popupMenu.handleTriggerKeydown(event, id);\n };\n\n const onMenuKeydown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") popupMenu.handleMenuEscape(event);\n };\n\n const onMenuSelect = (event: KendoMenuSelectEvent<ActionCellMenuItem>) => {\n const row = activeRow.value;\n const trigger = activeTrigger.value;\n popupMenu.handleMenuSelect(event, () => {\n if (row && trigger) {\n options.onActionSelected(event.item, row, trigger);\n }\n });\n };\n\n return {\n actionCellProps: {\n config: options.config,\n menuController: {\n registry,\n getTriggerId,\n handleTriggerClick,\n handleDirectAction,\n handleTriggerKeydown,\n },\n },\n popupProps: computed(() => ({\n show: registry.isActive.value,\n offset: popupMenu.offset.value,\n onClose: popupMenu.handlePopupClose,\n })),\n menuProps: computed(() => ({\n items: activeMenuItems.value,\n vertical: true as const,\n onKeydown: onMenuKeydown,\n onSelect: onMenuSelect,\n })),\n activeRow,\n activeTrigger,\n activeTitle,\n };\n};\n"],"names":["ZIP_CODE_MESSAGE","OPTIONAL_FIELDS_MESSAGE","props","__props","DEFAULT_MESSAGES","resolveMessages","source","resolvedMessages","computed","fieldScope","fieldsetScope","isRequired","showErrors","fieldIds","address","nonZipRequiredFieldsValid","hasAnyOptionalInput","optionalZipInvalid","zipDigits","optionalPartialInvalid","showOptionalFeedback","showAddress1Error","showCityError","showStateError","showZipError","validationStylesActive","address1DisplayValid","cityDisplayValid","stateDisplayValid","zipDisplayValid","address2PlaceholderDisplay","basePlaceholder","fieldsetErrorMessage","messages","optionalFieldsetErrorMessage","_createElementBlock","_normalizeClass","_createElementVNode","_hoisted_1","_createVNode","_unref","TextBox","_Fragment","_createBlock","Error","_createTextVNode","_toDisplayString","Hint","_openBlock","_hoisted_2","_hoisted_3","_hoisted_4","DropDownList","_hoisted_5","_hoisted_6","ids","useCompositeId","getTriggerId","trigger","isTriggerActive","hasMenu","registerTrigger","element","onTriggerClick","onTriggerKeydown","args","_renderList","Button","$event","useActionCellMenu","options","registry","useActiveIdRegistry","row","activeTrigger","key","activeRow","rowId","toValue","activeMenuItems","activeTitle","popupMenu","usePopupMenu","id","triggerInteractionSequence","handleTriggerClick","interactionSequence","nextTick","handleDirectAction","handleTriggerKeydown","event","onMenuKeydown","onMenuSelect"],"mappings":"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"}
|
package/dist/featherk-ui.umd.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(function(p,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@progress/kendo-vue-labels"),require("@progress/kendo-vue-inputs"),require("@progress/kendo-vue-dropdowns"),require("@progress/kendo-vue-buttons"),require("@featherk/composables")):typeof define=="function"&&define.amd?define(["exports","vue","@progress/kendo-vue-labels","@progress/kendo-vue-inputs","@progress/kendo-vue-dropdowns","@progress/kendo-vue-buttons","@featherk/composables"],e):(p=typeof globalThis<"u"?globalThis:p||self,e(p.FeatherKUi={},p.Vue,p.KendoVueLabels,p.KendoVueInputs,p.KendoVueDropdowns,p.KendoVueButtons,p.FeatherKComposables))})(this,(function(p,e,y,S,V,E,x){"use strict";const z={class:"address1"},A={key:0,class:"address2"},N={class:"city"},_={class:"state"},q={class:"zip"},M={key:1,class:"messages"},w="Enter a 5 or 9 digit zip code.",b="Incomplete address.",F=((l,a)=>{const o=l.__vccOpts||l;for(const[m,s]of a)o[m]=s;return o})(e.defineComponent({__name:"USAddress",props:{id:{},address:{},required:{type:Boolean,default:!0},messageScope:{default:"fieldset"},messages:{},showAddress2:{type:Boolean,default:!0}},setup(l){const a=l,o={placeholder:{address1:"Address Line 1",address2:"Address Line 2",city:"City",zip:"00000-0000"},fieldset:{error:{required:"Required fields are missing.",zip:w},hint:{address:"Enter address information."}},field:{error:{address1:"Required",address2:"",city:"Required",state:"Required",zip:w},hint:{address1:"Enter address line 1.",address2:"Optional",city:"",state:"",zip:w}}},m=d=>({placeholder:{address1:d?.placeholder?.address1??o.placeholder.address1,address2:d?.placeholder?.address2??o.placeholder.address2,city:d?.placeholder?.city??o.placeholder.city,zip:d?.placeholder?.zip??o.placeholder.zip},fieldset:{error:{required:d?.fieldset?.error?.required??o.fieldset.error.required,zip:d?.fieldset?.error?.zip??o.fieldset.error.zip},hint:{address:d?.fieldset?.hint?.address??o.fieldset.hint.address}},field:{error:{address1:d?.field?.error?.address1??o.field.error.address1,address2:d?.field?.error?.address2??o.field.error.address2,city:d?.field?.error?.city??o.field.error.city,state:d?.field?.error?.state??o.field.error.state,zip:d?.field?.error?.zip??o.field.error.zip},hint:{address1:d?.field?.hint?.address1??o.field.hint.address1,address2:d?.field?.hint?.address2??o.field.hint.address2,city:d?.field?.hint?.city??o.field.hint.city,state:d?.field?.hint?.state??o.field.hint.state,zip:d?.field?.hint?.zip??o.field.hint.zip}}}),s=e.computed(()=>m(a.messages)),f=e.computed(()=>a.messageScope==="field"),k=e.computed(()=>a.messageScope==="fieldset"),c=e.computed(()=>a.required),v=e.computed(()=>c.value),n=e.computed(()=>({address1:`${a.id}-address1`,address2:`${a.id}-address2`,city:`${a.id}-city`,state:`${a.id}-state`,zip:`${a.id}-zip`})),t=e.computed(()=>a.address),u=e.computed(()=>t.value.address1Valid.value&&t.value.cityValid.value&&t.value.stateValid.value),g=e.computed(()=>t.value.formData.address1.trim()!==""||t.value.formData.address2.trim()!==""||t.value.formData.city.trim()!==""||(t.value.formData.state??"").trim()!==""||t.value.formData.zip.replace(/\D/g,"")!==""),I=e.computed(()=>{if(t.value.optionalZipInvalid)return t.value.optionalZipInvalid.value;const d=t.value.formData.zip.replace(/\D/g,"");return!c.value&&g.value&&d.length!==5&&d.length!==9}),r=e.computed(()=>t.value.optionalPartialInvalid?t.value.optionalPartialInvalid.value:!c.value&&g.value&&!t.value.addressValid.value),i=e.computed(()=>c.value||!r.value?!1:t.value.optionalFeedbackActive?t.value.optionalFeedbackActive.value:!1),h=e.computed(()=>v.value&&!t.value.address1Valid.value||i.value&&t.value.formData.address1.trim()===""),D=e.computed(()=>v.value&&!t.value.cityValid.value||i.value&&t.value.formData.city.trim()===""),T=e.computed(()=>v.value&&!t.value.stateValid.value||i.value&&(t.value.formData.state??"").trim()===""),B=e.computed(()=>v.value&&!t.value.zipValid.value||i.value&&I.value),C=e.computed(()=>c.value?t.value.addressValidate.value:i.value),O=e.computed(()=>c.value?t.value.address1Valid.value:!h.value),$=e.computed(()=>c.value?t.value.cityValid.value:!D.value),Z=e.computed(()=>c.value?t.value.stateValid.value:!T.value),j=e.computed(()=>c.value?t.value.zipValid.value:!B.value),H=e.computed(()=>{const d=s.value.placeholder.address2;return k.value&&c.value?`${d} (Optional)`:d}),U=e.computed(()=>{const d=[];return u.value||d.push(s.value.fieldset.error.required),t.value.zipValid.value||d.push(s.value.fieldset.error.zip),d.join(" ")}),G=e.computed(()=>{const d=[b];return I.value&&d.push(s.value.fieldset.error.zip),d.join(" ")});return(d,J)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["fkui-us-address",{"fkui-us-address--fieldset-scope":k.value}])},[e.createElementVNode("div",z,[e.createVNode(e.unref(S.TextBox),{id:n.value.address1,placeholder:s.value.placeholder.address1,value:t.value.formData.address1,valid:O.value,validate:C.value,validityStyles:C.value,onInput:t.value.onAddress1Input},null,8,["id","placeholder","value","valid","validate","validityStyles","onInput"]),f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[h.value?(e.openBlock(),e.createBlock(e.unref(y.Error),{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.field.error.address1),1)]),_:1})):(e.openBlock(),e.createBlock(e.unref(y.Hint),{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.field.hint.address1),1)]),_:1}))],64)):e.createCommentVNode("",!0)]),l.showAddress2?(e.openBlock(),e.createElementBlock("div",A,[e.createVNode(e.unref(S.TextBox),{id:n.value.address2,placeholder:H.value,value:t.value.formData.address2,onInput:t.value.onAddress2Input},null,8,["id","placeholder","value","onInput"]),f.value?(e.openBlock(),e.createBlock(e.unref(y.Hint),{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.field.hint.address2),1)]),_:1})):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",N,[e.createVNode(e.unref(S.TextBox),{id:n.value.city,placeholder:s.value.placeholder.city,value:t.value.formData.city,valid:$.value,validate:C.value,validityStyles:C.value,onInput:t.value.onCityInput},null,8,["id","placeholder","value","valid","validate","validityStyles","onInput"]),f.value&&D.value?(e.openBlock(),e.createBlock(e.unref(y.Error),{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.field.error.city),1)]),_:1})):e.createCommentVNode("",!0)]),e.createElementVNode("div",_,[e.createVNode(e.unref(V.DropDownList),{id:n.value.state,value:t.value.formData.state,onChange:t.value.onStateChange,defaultItem:t.value.stateDefaultItem,dataItems:t.value.stateOptions,textField:"label",valueField:"value",dataItemKey:"value",valuePrimitive:!0,valid:Z.value,validate:C.value,validityStyles:C.value},null,8,["id","value","onChange","defaultItem","dataItems","valid","validate","validityStyles"]),f.value&&T.value?(e.openBlock(),e.createBlock(e.unref(y.Error),{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.field.error.state),1)]),_:1})):e.createCommentVNode("",!0)]),e.createElementVNode("div",q,[e.createVNode(e.unref(S.TextBox),{id:n.value.zip,placeholder:s.value.placeholder.zip,wrapperClass:t.value.zipWrapperClass,value:t.value.zipDisplay.value,onInput:t.value.onZipInput,valid:j.value,validate:C.value,validityStyles:C.value,style:{width:"100%"}},null,8,["id","placeholder","wrapperClass","value","onInput","valid","validate","validityStyles"]),f.value&&B.value?(e.openBlock(),e.createBlock(e.unref(y.Error),{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.field.error.zip),1)]),_:1})):e.createCommentVNode("",!0),f.value&&!B.value?(e.openBlock(),e.createBlock(e.unref(y.Hint),{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.field.hint.zip),1)]),_:1})):e.createCommentVNode("",!0)]),k.value?(e.openBlock(),e.createElementBlock("div",M,[v.value&&!t.value.addressValid.value?(e.openBlock(),e.createBlock(e.unref(y.Error),{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(U.value),1)]),_:1})):i.value?(e.openBlock(),e.createBlock(e.unref(y.Error),{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(G.value),1)]),_:1})):(e.openBlock(),e.createBlock(e.unref(y.Hint),{key:2},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.fieldset.hint.address),1)]),_:1}))])):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-8aeb035b"]]),K=["id","colspan","aria-colindex","aria-selected","data-grid-col-index"],R=e.defineComponent({inheritAttrs:!1,__name:"ActionCell",props:{id:{},className:{},style:{},colSpan:{},ariaColumnIndex:{},isSelected:{type:Boolean},columnIndex:{},dataItem:{},config:{},menuController:{},tabIndex:{default:-1}},setup(l){const a=l,o=x.useCompositeId("action-cell"),m=n=>a.menuController.getTriggerId(n,a.dataItem),s=n=>a.menuController.registry.isIdActive(m(n)),f=n=>typeof n.items=="function",k=(n,t)=>{a.menuController.registry.register(m(n),t)},c=n=>{if(!f(n)){a.menuController.handleDirectAction?.(n,a.dataItem);return}a.menuController.handleTriggerClick(m(n))},v=(n,...t)=>{f(n)&&a.menuController.handleTriggerKeydown(m(n),...t)};return(n,t)=>(e.openBlock(),e.createElementBlock("td",{id:l.id??e.unref(o).instanceId,class:e.normalizeClass(["fkui-action-cell","k-table-td",l.className]),style:e.normalizeStyle(l.style),colspan:l.colSpan,role:"gridcell","aria-colindex":l.ariaColumnIndex,"aria-selected":l.isSelected,"data-grid-col-index":l.columnIndex},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.config.triggers,u=>(e.openBlock(),e.createBlock(e.unref(E.Button),{key:u.key,ref_for:!0,ref:f(u)?g=>k(u,g):void 0,id:e.unref(o).compose(u.key,"trigger"),"svg-icon":u.icon,type:"button","fill-mode":"flat","theme-color":"primary",rounded:"full","aria-label":u.ariaLabel,"aria-haspopup":f(u)?"menu":void 0,"aria-expanded":f(u)?s(u):void 0,disabled:u.disabled?.(l.dataItem),tabindex:l.tabIndex,onClick:g=>c(u),onKeydown:g=>v(u,g)},null,8,["id","svg-icon","aria-label","aria-haspopup","aria-expanded","disabled","tabindex","onClick","onKeydown"]))),128))],14,K))}}),P=l=>{const a=x.useActiveIdRegistry();l.group?.register(a);const o=l.getTriggerId??((r,i)=>`${r.key}:${l.getRowId(i)}`),m=e.computed(()=>{const r=a.activeId.value?.split(":")[0];return l.config.triggers.find(i=>i.key===r)??null}),s=e.computed(()=>{const r=a.activeId.value?.split(":").slice(1).join(":");return r===void 0?null:e.toValue(l.rows).find(i=>String(l.getRowId(i))===r)??null}),f=e.computed(()=>{const r=s.value,i=m.value;return r&&i?i.items?.(r)??[]:[]}),k=e.computed(()=>{const r=s.value,i=m.value;return r&&i&&typeof i.items=="function"&&i.title?i.title(r):null}),c=x.usePopupMenu({isOpen:a.isActive,triggerRef:a.activeElement,menuRef:l.menuRef,popupContentRef:l.popupContentRef,triggerMode:l.triggerMode??"button",anchor:l.anchor??!0,resolveFocusTarget:l.resolveFocusTarget,focusTargetContainerSelector:l.focusTargetContainerSelector,requestShow:r=>{typeof r=="string"&&a.activate(r)},requestHide:()=>a.deactivate(),menuLabel:k});let v=0;const n=r=>{const i=++v;if(l.group?.deactivateOthers(a),a.isActive.value&&!a.isIdActive(r)){a.deactivate(),e.nextTick(()=>{i===v&&c.handleTriggerClick(r)});return}c.handleTriggerClick(r)},t=(r,i)=>{v++,l.group?.deactivateOthers(a),a.deactivate(),l.onActionSelected(void 0,i,r)},u=(r,...i)=>{const h=i[0];if(h.key==="Enter"||h.code==="Space"){h.preventDefault(),n(r);return}c.handleTriggerKeydown(h,r)},g=r=>{r.key==="Escape"&&c.handleMenuEscape(r)},I=r=>{const i=s.value,h=m.value;c.handleMenuSelect(r,()=>{i&&h&&l.onActionSelected(r.item,i,h)})};return{actionCellProps:{config:l.config,menuController:{registry:a,getTriggerId:o,handleTriggerClick:n,handleDirectAction:t,handleTriggerKeydown:u}},popupProps:e.computed(()=>({show:a.isActive.value,offset:c.offset.value,onClose:c.handlePopupClose})),menuProps:e.computed(()=>({items:f.value,vertical:!0,onKeydown:g,onSelect:I})),activeRow:s,activeTrigger:m,activeTitle:k}};p.ActionCell=R,p.USAddress=F,p.useActionCellMenu=P,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
|
|
2
|
-
//# sourceMappingURL=featherk-ui.umd.js.map
|