@mattilsynet/design 3.3.3 → 3.3.5
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/mtds/atlas/atlas-element.js +1 -1
- package/mtds/deprecations.js +50 -36
- package/mtds/deprecations.js.map +1 -1
- package/mtds/external/@u-elements/u-details/dist/u-details.js +105 -0
- package/mtds/external/@u-elements/u-details/dist/u-details.js.map +1 -0
- package/mtds/field/field.js +14 -13
- package/mtds/field/field.js.map +1 -1
- package/mtds/index.d.ts +1 -0
- package/mtds/index.iife.js +15 -10
- package/mtds/index.js +23 -29
- package/mtds/index.js.map +1 -1
- package/mtds/package.json.js +1 -1
- package/mtds/pagination/pagination.js +30 -17
- package/mtds/pagination/pagination.js.map +1 -1
- package/mtds/styles.css +1 -1
- package/mtds/table/table-observer.js +7 -10
- package/mtds/table/table-observer.js.map +1 -1
- package/mtds/tooltip/tooltip-element.js +17 -5
- package/mtds/tooltip/tooltip-element.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,7 +19,7 @@ class r extends g {
|
|
|
19
19
|
}
|
|
20
20
|
constructor() {
|
|
21
21
|
super(), this.attachShadow({ mode: "open" }).append(m("figure")), C(this, `@layer leaflet{${h}}
|
|
22
|
-
@layer mt.v3-3-
|
|
22
|
+
@layer mt.v3-3-5design{${b}`);
|
|
23
23
|
}
|
|
24
24
|
connectedCallback() {
|
|
25
25
|
const t = this.shadowRoot?.lastElementChild, e = a(this, "data-cluster") ?? "false", o = new i.TileLayer(k, {
|
package/mtds/deprecations.js
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import l from "./styles.module.css.js";
|
|
3
|
-
import { getByCSSModule as n, isBrowser as d, onHotReload as y, on as u, QUICK_EVENT as S, onMutation as E, attr as s, debounce as D } from "./utils.js";
|
|
1
|
+
import "@u-elements/u-progress";
|
|
4
2
|
import { DSFieldElement as g } from "@digdir/designsystemet-web";
|
|
3
|
+
import "./external/@u-elements/u-combobox/dist/u-combobox.js";
|
|
4
|
+
import "./external/@u-elements/u-details/dist/u-details.js";
|
|
5
|
+
import "./analytics/analytics.js";
|
|
6
|
+
import "./app/app-observer.js";
|
|
7
|
+
import { getByCSSModule as l, isBrowser as n, onHotReload as y, on as u, QUICK_EVENT as S, onMutation as E, attr as s, debounce as D } from "./utils.js";
|
|
8
|
+
import c from "./styles.module.css.js";
|
|
9
|
+
import "./toast/toast-helper.js";
|
|
10
|
+
import "./chart/chart-element.js";
|
|
11
|
+
import "./logo/logo-observer.js";
|
|
12
|
+
import "./popover/popover-observer.js";
|
|
13
|
+
import "./table/table-observer.js";
|
|
14
|
+
import "./toast/toast-observer.js";
|
|
15
|
+
import "./tooltip/tooltip-element.js";
|
|
16
|
+
import "./validation/validation-observer.js";
|
|
5
17
|
const f = /* @__PURE__ */ new WeakSet(), a = (t) => !f.has(t) && f.add(t), o = (t, e, r) => window.dsWarnings === !1 || console.warn(
|
|
6
18
|
`\x1B[1m@mattilsynet/design:\x1B[m ${t} is deprecated, please use ${e}:`,
|
|
7
19
|
r
|
|
8
|
-
), A =
|
|
20
|
+
), A = l("togglegroup"), p = c.button.split(" "), L = () => {
|
|
9
21
|
for (const t of A) {
|
|
10
22
|
a(t) && !t.hasAttribute("data-toggle-group") && (s(t, "data-toggle-group", "Valgknapper"), o(
|
|
11
23
|
'Only setting class="styles.togglegroup"',
|
|
@@ -19,22 +31,22 @@ const f = /* @__PURE__ */ new WeakSet(), a = (t) => !f.has(t) && f.add(t), o = (
|
|
|
19
31
|
e
|
|
20
32
|
));
|
|
21
33
|
}
|
|
22
|
-
},
|
|
23
|
-
for (const t of
|
|
24
|
-
a(t) && t.nodeName !== "DS-BREADCRUMBS" && (t.classList.add(...
|
|
34
|
+
}, N = l("breadcrumbs"), O = () => {
|
|
35
|
+
for (const t of N)
|
|
36
|
+
a(t) && t.nodeName !== "DS-BREADCRUMBS" && (t.classList.add(...c.breadcrumbs.split(" ")), o(
|
|
25
37
|
'Only setting class="styles.breadcrumbs"',
|
|
26
38
|
'<ds-breadcrumbs class="styles.breadcrumbs">',
|
|
27
39
|
t
|
|
28
40
|
));
|
|
29
|
-
},
|
|
30
|
-
for (const t of
|
|
41
|
+
}, T = l("errorsummary"), B = () => {
|
|
42
|
+
for (const t of T)
|
|
31
43
|
a(t) && t.nodeName !== "DS-ERROR-SUMMARY" && o(
|
|
32
44
|
'Only setting class="styles.errorsummary"',
|
|
33
45
|
'<ds-error-summary class="styles.errorsummary">',
|
|
34
46
|
t
|
|
35
47
|
);
|
|
36
|
-
},
|
|
37
|
-
for (const t of
|
|
48
|
+
}, C = l("dialog"), b = () => {
|
|
49
|
+
for (const t of C) {
|
|
38
50
|
if (a(t)) {
|
|
39
51
|
const e = s(t, "data-closedby");
|
|
40
52
|
e && (s(t, "closedby", e), o(
|
|
@@ -53,17 +65,17 @@ const f = /* @__PURE__ */ new WeakSet(), a = (t) => !f.has(t) && f.add(t), o = (
|
|
|
53
65
|
t
|
|
54
66
|
), s(t, "open", null), t.showModal()) : t.matches(":modal:not([open])") && (s(t, "open", ""), t.close()));
|
|
55
67
|
}
|
|
56
|
-
},
|
|
68
|
+
}, R = () => {
|
|
57
69
|
for (const t of document.querySelectorAll("[data-count]"))
|
|
58
70
|
if (a(t)) {
|
|
59
71
|
const e = s(t, "data-count");
|
|
60
|
-
t.classList.add(...
|
|
72
|
+
t.classList.add(...c.validation.split(" ")), s(t, "data-limit", e), o(
|
|
61
73
|
`data-count="${e}"`,
|
|
62
74
|
`class="styles.validation" data-field="counter" data-limit="${e}"`,
|
|
63
75
|
t
|
|
64
76
|
);
|
|
65
77
|
}
|
|
66
|
-
},
|
|
78
|
+
}, w = () => {
|
|
67
79
|
for (const t of document.querySelectorAll("[data-command]"))
|
|
68
80
|
if (a(t)) {
|
|
69
81
|
const e = s(t, "data-command");
|
|
@@ -77,59 +89,61 @@ const f = /* @__PURE__ */ new WeakSet(), a = (t) => !f.has(t) && f.add(t), o = (
|
|
|
77
89
|
t
|
|
78
90
|
);
|
|
79
91
|
}
|
|
80
|
-
},
|
|
81
|
-
for (const t of
|
|
82
|
-
},
|
|
83
|
-
for (const t of v)
|
|
84
|
-
|
|
92
|
+
}, I = n() ? document.getElementsByTagName("u-tabs") : [], h = () => {
|
|
93
|
+
for (const t of I) a(t) && o("u-tabs", "ds-tabs", t);
|
|
94
|
+
}, v = n() ? document.getElementsByTagName("u-details") : [], U = () => {
|
|
95
|
+
for (const t of v) a(t) && o("u-details", "details", t);
|
|
96
|
+
}, i = c.suggestion.split(" "), $ = n() ? document.getElementsByTagName("u-combobox") : [], M = n() ? document.getElementsByTagName("ds-suggestion") : [], k = () => {
|
|
85
97
|
for (const t of $)
|
|
98
|
+
a(t) && (t.classList.add(...i), o("<u-combobox>", '<ds-suggestion class="styles.suggestion">', t));
|
|
99
|
+
for (const t of M)
|
|
86
100
|
a(t) && !t.classList.contains(i[0]) && (t.classList.add(...i), o(
|
|
87
101
|
"Only using <ds-suggestion>",
|
|
88
102
|
'<ds-suggestion class="styles.suggestion">',
|
|
89
103
|
t
|
|
90
104
|
));
|
|
91
|
-
},
|
|
105
|
+
}, F = ({ target: t }) => {
|
|
92
106
|
if (!(t instanceof Element)) return;
|
|
93
107
|
const e = t?.closest("tr")?.querySelector('[data-command="row"]');
|
|
94
108
|
e && !t?.closest('a,button,label,input,select,textarea,[role="button"]') && e.click();
|
|
95
109
|
const m = t?.closest("dialog");
|
|
96
110
|
m && t?.closest('[data-command="close"]') && m.close();
|
|
97
|
-
},
|
|
98
|
-
for (const t of
|
|
111
|
+
}, G = l("field"), d = /* @__PURE__ */ new Set(), x = () => {
|
|
112
|
+
for (const t of G)
|
|
99
113
|
t.nodeName !== "DS-FIELD" && (a(t) || o(
|
|
100
114
|
'Only setting class="styles.field"',
|
|
101
115
|
'<ds-field class="styles.field">',
|
|
102
116
|
t
|
|
103
|
-
), !
|
|
104
|
-
},
|
|
105
|
-
for (const t of
|
|
106
|
-
g.prototype.disconnectedCallback.call(t),
|
|
107
|
-
},
|
|
108
|
-
for (const t of document.querySelectorAll(
|
|
117
|
+
), !d.has(t) && d.add(t) && g.prototype.connectedCallback.call(t));
|
|
118
|
+
}, q = () => {
|
|
119
|
+
for (const t of d)
|
|
120
|
+
g.prototype.disconnectedCallback.call(t), d.delete(t);
|
|
121
|
+
}, P = `[data-description], .${c.field.split(" ")[0]} label + p`, _ = () => {
|
|
122
|
+
for (const t of document.querySelectorAll(P))
|
|
109
123
|
a(t) && t.getAttribute("data-field") !== "description" && (s(t, "data-field", "description"), o(
|
|
110
124
|
"Descriptions created by data-description of <p> only",
|
|
111
125
|
'data-field="data-description"',
|
|
112
126
|
t
|
|
113
127
|
));
|
|
114
|
-
},
|
|
115
|
-
for (const t of
|
|
128
|
+
}, V = l("validation"), W = () => {
|
|
129
|
+
for (const t of V)
|
|
116
130
|
a(t) && !t.hasAttribute("data-field") && (s(t, "data-field", "validation"), o(
|
|
117
131
|
'Only setting class="styles.validation"',
|
|
118
132
|
'class="styles.validation" data-field="validation"',
|
|
119
133
|
t
|
|
120
134
|
));
|
|
121
|
-
},
|
|
135
|
+
}, H = () => {
|
|
122
136
|
for (const t of document.querySelectorAll("[popover][data-position]"))
|
|
123
137
|
a(t) && (s(t, "data-placement", s(t, "data-position")), o("data-position", "data-placement", t));
|
|
124
|
-
},
|
|
125
|
-
|
|
138
|
+
}, Y = D(() => {
|
|
139
|
+
n() && (R(), w(), O(), b(), B(), _(), W(), H(), x(), L(), k(), h(), U());
|
|
126
140
|
}, 200);
|
|
127
141
|
y("deprecations", () => [
|
|
128
|
-
|
|
142
|
+
q,
|
|
129
143
|
// Return as cleanup function
|
|
130
|
-
u(document, "click",
|
|
144
|
+
u(document, "click", F, S),
|
|
131
145
|
u(document, "toggle", b, !0),
|
|
132
|
-
E(document,
|
|
146
|
+
E(document, Y, {
|
|
133
147
|
attributeFilter: [
|
|
134
148
|
"class",
|
|
135
149
|
"data-command",
|
package/mtds/deprecations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecations.js","sources":["../designsystem/deprecations.ts"],"sourcesContent":["import { DSFieldElement } from \".\";\nimport styles from \"./styles.module.css\";\nimport {\n\tattr,\n\tdebounce,\n\tgetByCSSModule,\n\tisBrowser,\n\ton,\n\tonHotReload,\n\tonMutation,\n\tQUICK_EVENT,\n} from \"./utils\";\n\nconst DEPRECATIONS = new WeakSet<Element>();\nconst deprecate = (el: Element) =>\n\t!DEPRECATIONS.has(el) && DEPRECATIONS.add(el);\n\nconst warn = (from: string, to: string, el: Element) =>\n\twindow.dsWarnings === false ||\n\tconsole.warn(\n\t\t`\\x1B[1m@mattilsynet/design:\\x1B[m ${from} is deprecated, please use ${to}:`,\n\t\tel,\n\t);\n\n// Deprecate togglegroup without data-toggle-group attribute\nconst TOGGLEGROUPS = getByCSSModule(\"togglegroup\");\nconst CSS_BUTTON = styles.button.split(\" \");\nconst deprecateToggleGroup = () => {\n\tfor (const el of TOGGLEGROUPS) {\n\t\tif (deprecate(el) && !el.hasAttribute(\"data-toggle-group\")) {\n\t\t\tattr(el, \"data-toggle-group\", \"Valgknapper\");\n\t\t\twarn(\n\t\t\t\t'Only setting class=\"styles.togglegroup\"',\n\t\t\t\t'data-toggle-group=\"LABEL-HERE\" attribute also for better accessibility',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n\t\tfor (const label of el.getElementsByTagName(\"label\")) {\n\t\t\tif (deprecate(label) && !label.classList.contains(CSS_BUTTON[0])) {\n\t\t\t\tlabel.classList.add(...CSS_BUTTON);\n\t\t\t\twarn(\n\t\t\t\t\t'Only setting class=\"styles.button\"',\n\t\t\t\t\t`<label class=\"styles.button\">`,\n\t\t\t\t\tlabel,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Deprecate errorsummary without ds-error-summary element\nconst BREADCRUMBS = getByCSSModule(\"breadcrumbs\");\nconst deprecateBreadcrumbs = () => {\n\tfor (const el of BREADCRUMBS)\n\t\tif (deprecate(el) && el.nodeName !== \"DS-BREADCRUMBS\") {\n\t\t\tel.classList.add(...styles.breadcrumbs.split(\" \"));\n\t\t\twarn(\n\t\t\t\t'Only setting class=\"styles.breadcrumbs\"',\n\t\t\t\t'<ds-breadcrumbs class=\"styles.breadcrumbs\">',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\n// Deprecate errorsummary without ds-error-summary element\nconst ERRORSUMMARYS = getByCSSModule(\"errorsummary\");\nconst deprecateErrorSummary = () => {\n\tfor (const el of ERRORSUMMARYS)\n\t\tif (deprecate(el) && el.nodeName !== \"DS-ERROR-SUMMARY\") {\n\t\t\twarn(\n\t\t\t\t'Only setting class=\"styles.errorsummary\"',\n\t\t\t\t'<ds-error-summary class=\"styles.errorsummary\">',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\n// Deprecate data-variant and data-modal and data-closedby on dialogs\nconst DIALOGS = getByCSSModule(\"dialog\") as HTMLCollectionOf<HTMLDialogElement>;\nconst deprecateDialog = () => {\n\tfor (const el of DIALOGS) {\n\t\tif (deprecate(el)) {\n\t\t\tconst closedby = attr(el, \"data-closedby\");\n\t\t\tif (closedby) {\n\t\t\t\tattr(el, \"closedby\", closedby);\n\t\t\t\twarn(\n\t\t\t\t\t`<dialog data-closedby=\"${closedby}\">`,\n\t\t\t\t\t`<dialog closedby=\"${closedby}\">`,\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (el.hasAttribute(\"data-variant\")) {\n\t\t\t\twarn(\n\t\t\t\t\t'<dialog data-variant=\"drawer\">',\n\t\t\t\t\t'<dialog data-placement=\"center|left|right|top|bottom\">',\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (el.isConnected && el.showModal && el.close) {\n\t\t\tif (\n\t\t\t\tel.matches('[open][data-modal]:not([data-modal=\"false\"]):not(:modal)')\n\t\t\t) {\n\t\t\t\twarn(\n\t\t\t\t\t'<dialog data-modal=\"true\">',\n\t\t\t\t\t'.showModal() or <button command=\"show-modal\" commandfor=\"DIALOG-ID\"></button>',\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\t\tattr(el, \"open\", null); // Using attribute instead of .close to avoid `close` event\n\t\t\t\tel.showModal();\n\t\t\t} else if (el.matches(\":modal:not([open])\")) {\n\t\t\t\tattr(el, \"open\", \"\"); // Set as open\n\t\t\t\tel.close(); // So we correctly can call .close, removing <dialog> from #top-layer\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Deprecate data-count in favor of data-limit\nconst deprecateCounter = () => {\n\tfor (const el of document.querySelectorAll(\"[data-count]\"))\n\t\tif (deprecate(el)) {\n\t\t\tconst count = attr(el, \"data-count\");\n\t\t\tel.classList.add(...styles.validation.split(\" \"));\n\t\t\tattr(el, \"data-limit\", count);\n\t\t\twarn(\n\t\t\t\t`data-count=\"${count}\"`,\n\t\t\t\t`class=\"styles.validation\" data-field=\"counter\" data-limit=\"${count}\"`,\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\n// Deprecate data-command on buttons and other elements\nconst deprecateDataCommand = () => {\n\tfor (const el of document.querySelectorAll(\"[data-command]\"))\n\t\tif (deprecate(el)) {\n\t\t\tconst command = attr(el, \"data-command\");\n\n\t\t\tif (command === \"row\")\n\t\t\t\twarn(\n\t\t\t\t\t`<${el.nodeName.toLowerCase()} data-command=\"${command}\">`,\n\t\t\t\t\t`<tr data-clickdelegatefor=\"${el.nodeName}-ID\">`,\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\telse\n\t\t\t\twarn(\n\t\t\t\t\t`<button data-command=\"${command}\">`,\n\t\t\t\t\t`<button command=\"${command?.replace(\"toggle-app-expanded\", \"show-modal\")}\" commandfor=\"TARGET-ID\">`,\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t}\n};\n\n// Deprecate u-tabs\nconst TABS = isBrowser() ? document.getElementsByTagName(\"u-tabs\") : [];\nconst deprecateUTabs = () => {\n\tfor (const el of TABS) if (deprecate(el)) warn(\"u-tabs\", \"ds-tabs\", el);\n};\n\n// Deprecate u-combobox and add class to ds-suggestion\nconst CSS_SUGGESTION = styles.suggestion.split(\" \");\nconst OLD = isBrowser() ? document.getElementsByTagName(\"u-combobox\") : [];\nconst NEW = isBrowser() ? document.getElementsByTagName(\"ds-suggestion\") : [];\nconst deprecateUCombobox = () => {\n\tfor (const el of OLD)\n\t\tif (deprecate(el)) {\n\t\t\tel.classList.add(...CSS_SUGGESTION);\n\t\t\twarn(\"<u-combobox>\", `<ds-suggestion class=\"styles.suggestion\">`, el);\n\t\t}\n\tfor (const el of NEW)\n\t\tif (deprecate(el) && !el.classList.contains(CSS_SUGGESTION[0])) {\n\t\t\tel.classList.add(...CSS_SUGGESTION);\n\t\t\twarn(\n\t\t\t\t\"Only using <ds-suggestion>\",\n\t\t\t\t`<ds-suggestion class=\"styles.suggestion\">`,\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\nconst handleCommandClick = ({ target: el }: Event) => {\n\tif (el instanceof Element === false) return;\n\tconst row = el?.closest(\"tr\")?.querySelector('[data-command=\"row\"]');\n\tconst click =\n\t\trow && !el?.closest('a,button,label,input,select,textarea,[role=\"button\"]');\n\tif (click) (row as HTMLElement).click(); // Forward click to data-command=\"row\" element\n\n\tconst dialog = el?.closest(\"dialog\");\n\tconst close = dialog && el?.closest('[data-command=\"close\"]');\n\tif (close) dialog.close();\n};\n\n// Deprecate fields without ds-field element\nconst FIELDS = getByCSSModule(\"field\");\nconst FIELD_UNBIND = new Set<Element>();\nconst deprecateField = () => {\n\tfor (const el of FIELDS)\n\t\tif (el.nodeName !== \"DS-FIELD\") {\n\t\t\tif (!deprecate(el))\n\t\t\t\twarn(\n\t\t\t\t\t'Only setting class=\"styles.field\"',\n\t\t\t\t\t'<ds-field class=\"styles.field\">',\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\tif (!FIELD_UNBIND.has(el) && FIELD_UNBIND.add(el)) {\n\t\t\t\tDSFieldElement.prototype.connectedCallback.call(el as DSFieldElement);\n\t\t\t}\n\t\t}\n};\nconst unbindFields = () => {\n\tfor (const el of FIELD_UNBIND) {\n\t\tDSFieldElement.prototype.disconnectedCallback.call(el as DSFieldElement);\n\t\tFIELD_UNBIND.delete(el);\n\t}\n};\n\n// Deprecate validation without data-field=\"validation\"\nconst CSS_DESCRIPTIONS = `[data-description], .${styles.field.split(\" \")[0]} label + p`;\nconst deprecateFeildDescription = () => {\n\tfor (const el of document.querySelectorAll(CSS_DESCRIPTIONS))\n\t\tif (deprecate(el) && el.getAttribute(\"data-field\") !== \"description\") {\n\t\t\tattr(el, \"data-field\", \"description\");\n\t\t\twarn(\n\t\t\t\t\"Descriptions created by data-description of <p> only\",\n\t\t\t\t'data-field=\"data-description\"',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\n// Deprecate validation without data-field=\"validation\"\nconst VALIDATIONS = getByCSSModule(\"validation\");\nconst deprecateFieldValidation = () => {\n\tfor (const el of VALIDATIONS)\n\t\tif (deprecate(el) && !el.hasAttribute(\"data-field\")) {\n\t\t\tattr(el, \"data-field\", \"validation\");\n\t\t\twarn(\n\t\t\t\t'Only setting class=\"styles.validation\"',\n\t\t\t\t'class=\"styles.validation\" data-field=\"validation\"',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\nconst deprecatePopoverPosition = () => {\n\tfor (const el of document.querySelectorAll(\"[popover][data-position]\"))\n\t\tif (deprecate(el)) {\n\t\t\tattr(el, \"data-placement\", attr(el, \"data-position\"));\n\t\t\twarn(\"data-position\", \"data-placement\", el);\n\t\t}\n};\n\nconst handleDeprecations = debounce(() => {\n\tif (!isBrowser()) return; // Check if document is still available, since this can run in test environments after document is destroyed\n\tdeprecateCounter();\n\tdeprecateDataCommand();\n\tdeprecateBreadcrumbs();\n\tdeprecateDialog();\n\tdeprecateErrorSummary();\n\tdeprecateFeildDescription();\n\tdeprecateFieldValidation();\n\tdeprecatePopoverPosition();\n\tdeprecateField(); // Should run after other field deprecations to access correct data-attributes\n\tdeprecateToggleGroup();\n\tdeprecateUCombobox();\n\tdeprecateUTabs();\n}, 200);\n\nonHotReload(\"deprecations\", () => [\n\tunbindFields, // Return as cleanup function\n\ton(document, \"click\", handleCommandClick, QUICK_EVENT),\n\ton(document, \"toggle\", deprecateDialog, true),\n\tonMutation(document, handleDeprecations, {\n\t\tattributeFilter: [\n\t\t\t\"class\",\n\t\t\t\"data-command\",\n\t\t\t\"data-count\",\n\t\t\t\"data-description\",\n\t\t\t\"data-variant\",\n\t\t\t\"open\",\n\t\t],\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true,\n\t}),\n]);\n"],"names":["DEPRECATIONS","deprecate","el","warn","from","to","TOGGLEGROUPS","getByCSSModule","CSS_BUTTON","styles","deprecateToggleGroup","attr","label","BREADCRUMBS","deprecateBreadcrumbs","ERRORSUMMARYS","deprecateErrorSummary","DIALOGS","deprecateDialog","closedby","deprecateCounter","count","deprecateDataCommand","command","TABS","isBrowser","deprecateUTabs","CSS_SUGGESTION","OLD","NEW","deprecateUCombobox","handleCommandClick","row","dialog","FIELDS","FIELD_UNBIND","deprecateField","DSFieldElement","unbindFields","CSS_DESCRIPTIONS","deprecateFeildDescription","VALIDATIONS","deprecateFieldValidation","deprecatePopoverPosition","handleDeprecations","debounce","onHotReload","on","QUICK_EVENT","onMutation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deprecations.js","sources":["../designsystem/deprecations.ts"],"sourcesContent":["import { DSFieldElement } from \".\";\nimport styles from \"./styles.module.css\";\nimport {\n\tattr,\n\tdebounce,\n\tgetByCSSModule,\n\tisBrowser,\n\ton,\n\tonHotReload,\n\tonMutation,\n\tQUICK_EVENT,\n} from \"./utils\";\n\nconst DEPRECATIONS = new WeakSet<Element>();\nconst deprecate = (el: Element) =>\n\t!DEPRECATIONS.has(el) && DEPRECATIONS.add(el);\n\nconst warn = (from: string, to: string, el: Element) =>\n\twindow.dsWarnings === false ||\n\tconsole.warn(\n\t\t`\\x1B[1m@mattilsynet/design:\\x1B[m ${from} is deprecated, please use ${to}:`,\n\t\tel,\n\t);\n\n// Deprecate togglegroup without data-toggle-group attribute\nconst TOGGLEGROUPS = getByCSSModule(\"togglegroup\");\nconst CSS_BUTTON = styles.button.split(\" \");\nconst deprecateToggleGroup = () => {\n\tfor (const el of TOGGLEGROUPS) {\n\t\tif (deprecate(el) && !el.hasAttribute(\"data-toggle-group\")) {\n\t\t\tattr(el, \"data-toggle-group\", \"Valgknapper\");\n\t\t\twarn(\n\t\t\t\t'Only setting class=\"styles.togglegroup\"',\n\t\t\t\t'data-toggle-group=\"LABEL-HERE\" attribute also for better accessibility',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n\t\tfor (const label of el.getElementsByTagName(\"label\")) {\n\t\t\tif (deprecate(label) && !label.classList.contains(CSS_BUTTON[0])) {\n\t\t\t\tlabel.classList.add(...CSS_BUTTON);\n\t\t\t\twarn(\n\t\t\t\t\t'Only setting class=\"styles.button\"',\n\t\t\t\t\t`<label class=\"styles.button\">`,\n\t\t\t\t\tlabel,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Deprecate errorsummary without ds-error-summary element\nconst BREADCRUMBS = getByCSSModule(\"breadcrumbs\");\nconst deprecateBreadcrumbs = () => {\n\tfor (const el of BREADCRUMBS)\n\t\tif (deprecate(el) && el.nodeName !== \"DS-BREADCRUMBS\") {\n\t\t\tel.classList.add(...styles.breadcrumbs.split(\" \"));\n\t\t\twarn(\n\t\t\t\t'Only setting class=\"styles.breadcrumbs\"',\n\t\t\t\t'<ds-breadcrumbs class=\"styles.breadcrumbs\">',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\n// Deprecate errorsummary without ds-error-summary element\nconst ERRORSUMMARYS = getByCSSModule(\"errorsummary\");\nconst deprecateErrorSummary = () => {\n\tfor (const el of ERRORSUMMARYS)\n\t\tif (deprecate(el) && el.nodeName !== \"DS-ERROR-SUMMARY\") {\n\t\t\twarn(\n\t\t\t\t'Only setting class=\"styles.errorsummary\"',\n\t\t\t\t'<ds-error-summary class=\"styles.errorsummary\">',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\n// Deprecate data-variant and data-modal and data-closedby on dialogs\nconst DIALOGS = getByCSSModule(\"dialog\") as HTMLCollectionOf<HTMLDialogElement>;\nconst deprecateDialog = () => {\n\tfor (const el of DIALOGS) {\n\t\tif (deprecate(el)) {\n\t\t\tconst closedby = attr(el, \"data-closedby\");\n\t\t\tif (closedby) {\n\t\t\t\tattr(el, \"closedby\", closedby);\n\t\t\t\twarn(\n\t\t\t\t\t`<dialog data-closedby=\"${closedby}\">`,\n\t\t\t\t\t`<dialog closedby=\"${closedby}\">`,\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (el.hasAttribute(\"data-variant\")) {\n\t\t\t\twarn(\n\t\t\t\t\t'<dialog data-variant=\"drawer\">',\n\t\t\t\t\t'<dialog data-placement=\"center|left|right|top|bottom\">',\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (el.isConnected && el.showModal && el.close) {\n\t\t\tif (\n\t\t\t\tel.matches('[open][data-modal]:not([data-modal=\"false\"]):not(:modal)')\n\t\t\t) {\n\t\t\t\twarn(\n\t\t\t\t\t'<dialog data-modal=\"true\">',\n\t\t\t\t\t'.showModal() or <button command=\"show-modal\" commandfor=\"DIALOG-ID\"></button>',\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\t\tattr(el, \"open\", null); // Using attribute instead of .close to avoid `close` event\n\t\t\t\tel.showModal();\n\t\t\t} else if (el.matches(\":modal:not([open])\")) {\n\t\t\t\tattr(el, \"open\", \"\"); // Set as open\n\t\t\t\tel.close(); // So we correctly can call .close, removing <dialog> from #top-layer\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Deprecate data-count in favor of data-limit\nconst deprecateCounter = () => {\n\tfor (const el of document.querySelectorAll(\"[data-count]\"))\n\t\tif (deprecate(el)) {\n\t\t\tconst count = attr(el, \"data-count\");\n\t\t\tel.classList.add(...styles.validation.split(\" \"));\n\t\t\tattr(el, \"data-limit\", count);\n\t\t\twarn(\n\t\t\t\t`data-count=\"${count}\"`,\n\t\t\t\t`class=\"styles.validation\" data-field=\"counter\" data-limit=\"${count}\"`,\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\n// Deprecate data-command on buttons and other elements\nconst deprecateDataCommand = () => {\n\tfor (const el of document.querySelectorAll(\"[data-command]\"))\n\t\tif (deprecate(el)) {\n\t\t\tconst command = attr(el, \"data-command\");\n\n\t\t\tif (command === \"row\")\n\t\t\t\twarn(\n\t\t\t\t\t`<${el.nodeName.toLowerCase()} data-command=\"${command}\">`,\n\t\t\t\t\t`<tr data-clickdelegatefor=\"${el.nodeName}-ID\">`,\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\telse\n\t\t\t\twarn(\n\t\t\t\t\t`<button data-command=\"${command}\">`,\n\t\t\t\t\t`<button command=\"${command?.replace(\"toggle-app-expanded\", \"show-modal\")}\" commandfor=\"TARGET-ID\">`,\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t}\n};\n\n// Deprecate u-tabs\nconst TABS = isBrowser() ? document.getElementsByTagName(\"u-tabs\") : [];\nconst deprecateUTabs = () => {\n\tfor (const el of TABS) if (deprecate(el)) warn(\"u-tabs\", \"ds-tabs\", el);\n};\n\n// Deprecate u-details\nconst DETAILS = isBrowser() ? document.getElementsByTagName(\"u-details\") : [];\nconst deprecateUDetails = () => {\n\tfor (const el of DETAILS) if (deprecate(el)) warn(\"u-details\", \"details\", el);\n};\n\n// Deprecate u-combobox and add class to ds-suggestion\nconst CSS_SUGGESTION = styles.suggestion.split(\" \");\nconst OLD = isBrowser() ? document.getElementsByTagName(\"u-combobox\") : [];\nconst NEW = isBrowser() ? document.getElementsByTagName(\"ds-suggestion\") : [];\nconst deprecateUCombobox = () => {\n\tfor (const el of OLD)\n\t\tif (deprecate(el)) {\n\t\t\tel.classList.add(...CSS_SUGGESTION);\n\t\t\twarn(\"<u-combobox>\", `<ds-suggestion class=\"styles.suggestion\">`, el);\n\t\t}\n\tfor (const el of NEW)\n\t\tif (deprecate(el) && !el.classList.contains(CSS_SUGGESTION[0])) {\n\t\t\tel.classList.add(...CSS_SUGGESTION);\n\t\t\twarn(\n\t\t\t\t\"Only using <ds-suggestion>\",\n\t\t\t\t`<ds-suggestion class=\"styles.suggestion\">`,\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\nconst handleCommandClick = ({ target: el }: Event) => {\n\tif (el instanceof Element === false) return;\n\tconst row = el?.closest(\"tr\")?.querySelector('[data-command=\"row\"]');\n\tconst click =\n\t\trow && !el?.closest('a,button,label,input,select,textarea,[role=\"button\"]');\n\tif (click) (row as HTMLElement).click(); // Forward click to data-command=\"row\" element\n\n\tconst dialog = el?.closest(\"dialog\");\n\tconst close = dialog && el?.closest('[data-command=\"close\"]');\n\tif (close) dialog.close();\n};\n\n// Deprecate fields without ds-field element\nconst FIELDS = getByCSSModule(\"field\");\nconst FIELD_UNBIND = new Set<Element>();\nconst deprecateField = () => {\n\tfor (const el of FIELDS)\n\t\tif (el.nodeName !== \"DS-FIELD\") {\n\t\t\tif (!deprecate(el))\n\t\t\t\twarn(\n\t\t\t\t\t'Only setting class=\"styles.field\"',\n\t\t\t\t\t'<ds-field class=\"styles.field\">',\n\t\t\t\t\tel,\n\t\t\t\t);\n\t\t\tif (!FIELD_UNBIND.has(el) && FIELD_UNBIND.add(el)) {\n\t\t\t\tDSFieldElement.prototype.connectedCallback.call(el as DSFieldElement);\n\t\t\t}\n\t\t}\n};\nconst unbindFields = () => {\n\tfor (const el of FIELD_UNBIND) {\n\t\tDSFieldElement.prototype.disconnectedCallback.call(el as DSFieldElement);\n\t\tFIELD_UNBIND.delete(el);\n\t}\n};\n\n// Deprecate validation without data-field=\"validation\"\nconst CSS_DESCRIPTIONS = `[data-description], .${styles.field.split(\" \")[0]} label + p`;\nconst deprecateFeildDescription = () => {\n\tfor (const el of document.querySelectorAll(CSS_DESCRIPTIONS))\n\t\tif (deprecate(el) && el.getAttribute(\"data-field\") !== \"description\") {\n\t\t\tattr(el, \"data-field\", \"description\");\n\t\t\twarn(\n\t\t\t\t\"Descriptions created by data-description of <p> only\",\n\t\t\t\t'data-field=\"data-description\"',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\n// Deprecate validation without data-field=\"validation\"\nconst VALIDATIONS = getByCSSModule(\"validation\");\nconst deprecateFieldValidation = () => {\n\tfor (const el of VALIDATIONS)\n\t\tif (deprecate(el) && !el.hasAttribute(\"data-field\")) {\n\t\t\tattr(el, \"data-field\", \"validation\");\n\t\t\twarn(\n\t\t\t\t'Only setting class=\"styles.validation\"',\n\t\t\t\t'class=\"styles.validation\" data-field=\"validation\"',\n\t\t\t\tel,\n\t\t\t);\n\t\t}\n};\n\nconst deprecatePopoverPosition = () => {\n\tfor (const el of document.querySelectorAll(\"[popover][data-position]\"))\n\t\tif (deprecate(el)) {\n\t\t\tattr(el, \"data-placement\", attr(el, \"data-position\"));\n\t\t\twarn(\"data-position\", \"data-placement\", el);\n\t\t}\n};\n\nconst handleDeprecations = debounce(() => {\n\tif (!isBrowser()) return; // Check if document is still available, since this can run in test environments after document is destroyed\n\tdeprecateCounter();\n\tdeprecateDataCommand();\n\tdeprecateBreadcrumbs();\n\tdeprecateDialog();\n\tdeprecateErrorSummary();\n\tdeprecateFeildDescription();\n\tdeprecateFieldValidation();\n\tdeprecatePopoverPosition();\n\tdeprecateField(); // Should run after other field deprecations to access correct data-attributes\n\tdeprecateToggleGroup();\n\tdeprecateUCombobox();\n\tdeprecateUTabs();\n\tdeprecateUDetails();\n}, 200);\n\nonHotReload(\"deprecations\", () => [\n\tunbindFields, // Return as cleanup function\n\ton(document, \"click\", handleCommandClick, QUICK_EVENT),\n\ton(document, \"toggle\", deprecateDialog, true),\n\tonMutation(document, handleDeprecations, {\n\t\tattributeFilter: [\n\t\t\t\"class\",\n\t\t\t\"data-command\",\n\t\t\t\"data-count\",\n\t\t\t\"data-description\",\n\t\t\t\"data-variant\",\n\t\t\t\"open\",\n\t\t],\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true,\n\t}),\n]);\n"],"names":["DEPRECATIONS","deprecate","el","warn","from","to","TOGGLEGROUPS","getByCSSModule","CSS_BUTTON","styles","deprecateToggleGroup","attr","label","BREADCRUMBS","deprecateBreadcrumbs","ERRORSUMMARYS","deprecateErrorSummary","DIALOGS","deprecateDialog","closedby","deprecateCounter","count","deprecateDataCommand","command","TABS","isBrowser","deprecateUTabs","DETAILS","deprecateUDetails","CSS_SUGGESTION","OLD","NEW","deprecateUCombobox","handleCommandClick","row","dialog","FIELDS","FIELD_UNBIND","deprecateField","DSFieldElement","unbindFields","CSS_DESCRIPTIONS","deprecateFeildDescription","VALIDATIONS","deprecateFieldValidation","deprecatePopoverPosition","handleDeprecations","debounce","onHotReload","on","QUICK_EVENT","onMutation"],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
var h = () => typeof window < "u" && typeof window.document < "u" && typeof window.navigator < "u", m = h(), c;
|
|
2
|
+
m && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474
|
|
3
|
+
/^Mac/i.test(((c = navigator.userAgentData) == null ? void 0 : c.platform) || navigator.platform);
|
|
4
|
+
var b = m && window.CSSStyleSheet && document.adoptedStyleSheets, v = ":host(:not([hidden])) { display: block }", p = typeof HTMLElement > "u" ? class {
|
|
5
|
+
} : HTMLElement, i = (t, e, o) => o === void 0 ? t.getAttribute(e) : (o === null ? t.removeAttribute(e) : t.getAttribute(e) !== o && t.setAttribute(e, o), null), u = (t, ...e) => {
|
|
6
|
+
const [o, ...n] = e;
|
|
7
|
+
for (const s of o.split(" ")) t.addEventListener(s, ...n);
|
|
8
|
+
return () => l(t, ...e);
|
|
9
|
+
}, l = (t, ...e) => {
|
|
10
|
+
const [o, ...n] = e;
|
|
11
|
+
for (const s of o.split(" ")) t.removeEventListener(s, ...n);
|
|
12
|
+
}, S = (t, e) => {
|
|
13
|
+
const o = t.shadowRoot || t.attachShadow({ mode: "open" });
|
|
14
|
+
if (o.querySelector("slot") || o.append(r("slot")), !o.querySelector("style"))
|
|
15
|
+
if (!b) o.append(r("style", null, e));
|
|
16
|
+
else {
|
|
17
|
+
const n = new CSSStyleSheet();
|
|
18
|
+
n.replaceSync(e), o.adoptedStyleSheets = [n];
|
|
19
|
+
}
|
|
20
|
+
return o;
|
|
21
|
+
}, w = (t) => {
|
|
22
|
+
var e;
|
|
23
|
+
const o = ((e = t.getRootNode) == null ? void 0 : e.call(t)) || t.ownerDocument;
|
|
24
|
+
return o instanceof Document || o instanceof ShadowRoot ? o : document;
|
|
25
|
+
}, r = (t, e, o) => {
|
|
26
|
+
const n = document.createElement(t);
|
|
27
|
+
if (o && (n.textContent = o), e) for (const [s, a] of Object.entries(e)) i(n, s, a);
|
|
28
|
+
return n;
|
|
29
|
+
}, f = {
|
|
30
|
+
define: (t, e) => !h() || window.customElements.get(t) || window.customElements.define(t, e)
|
|
31
|
+
}, g = (t, e = "<slot></slot>") => `<template shadowrootmode="open">${e}<style>${t}</style></template>`, y = `${v}
|
|
32
|
+
::slotted([slot="summary"]) { cursor: pointer; display: block }
|
|
33
|
+
::slotted([slot="summary"])::before { content: ''; display: inline-block; vertical-align: middle; margin-inline: .05em .3125em; border-block: .3125em solid transparent; border-inline-start: .5em solid }
|
|
34
|
+
::slotted([slot="summary"][aria-expanded="true"])::before { rotate: 90deg }
|
|
35
|
+
:host > [part="details-content"]:not([hidden=""]) { display: block }`, _ = g(
|
|
36
|
+
y,
|
|
37
|
+
'<slot name="summary"></slot><slot part="details-content" hidden="until-found"></slot>'
|
|
38
|
+
), k = class extends p {
|
|
39
|
+
// Using underscore instead of private fields for backwards compatibility
|
|
40
|
+
// Using ES2015 syntax for backwards compatibility
|
|
41
|
+
static get observedAttributes() {
|
|
42
|
+
return ["open"];
|
|
43
|
+
}
|
|
44
|
+
constructor() {
|
|
45
|
+
var t;
|
|
46
|
+
super(), S(this, y), (t = this.shadowRoot) == null || t.prepend(
|
|
47
|
+
r("slot", { name: "summary" }),
|
|
48
|
+
r("slot", { part: "details-content" })
|
|
49
|
+
), console.warn(
|
|
50
|
+
`\x1B[1m<u-details> is deprecated as <details> now has sufficient screen reader support 🎉\x1B[0m
|
|
51
|
+
Please use <details> and <summary>, but import '@u-elements/u-details/polyfill' to polyfill support for Talkback screen reader when used with Firefox on Android.`,
|
|
52
|
+
this
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
connectedCallback() {
|
|
56
|
+
var t;
|
|
57
|
+
this._content = (t = this.shadowRoot) == null ? void 0 : t.children[1], i(this, "role", "group"), u(this._content, "beforematch", this), u(this, "click keydown", this), this.attributeChangedCallback();
|
|
58
|
+
}
|
|
59
|
+
disconnectedCallback() {
|
|
60
|
+
this._content && l(this._content, "beforematch", this), l(this, "click keydown", this), this._content = void 0;
|
|
61
|
+
}
|
|
62
|
+
attributeChangedCallback(t, e, o) {
|
|
63
|
+
const n = "onbeforematch" in this ? "until-found" : !0, s = this.open;
|
|
64
|
+
for (const a of this.children)
|
|
65
|
+
a.nodeName === "U-SUMMARY" && i(a, "aria-expanded", `${s}`);
|
|
66
|
+
if (this._content && (i(this._content, "aria-hidden", `${!s}`), i(this._content, "tabindex", s ? null : "-1"), this._content.hidden = s ? !1 : n), s && this.name) {
|
|
67
|
+
const a = w(this).querySelectorAll(
|
|
68
|
+
`${this.nodeName}[name="${this.name}"]`
|
|
69
|
+
);
|
|
70
|
+
for (const d of a)
|
|
71
|
+
d !== this && (d.open = !1);
|
|
72
|
+
}
|
|
73
|
+
t === "open" && e === null != (o === null) && this.dispatchEvent(new Event("toggle"));
|
|
74
|
+
}
|
|
75
|
+
handleEvent(t) {
|
|
76
|
+
var e, o;
|
|
77
|
+
const n = t.key === " " || t.key === "Enter", s = t.target instanceof Element && ((e = t.target.closest('[slot="summary"]')) == null ? void 0 : e.parentElement) === this;
|
|
78
|
+
t.defaultPrevented || (t.type === "beforematch" && (this.open = !0), s && t.type === "click" && (this.open = !this.open), s && t.type === "keydown" && n && ((o = t.preventDefault) == null || o.call(t), t.target.dispatchEvent(new MouseEvent("click", t))));
|
|
79
|
+
}
|
|
80
|
+
get open() {
|
|
81
|
+
return this.hasAttribute("open");
|
|
82
|
+
}
|
|
83
|
+
set open(t) {
|
|
84
|
+
i(this, "open", t ? "" : null);
|
|
85
|
+
}
|
|
86
|
+
get name() {
|
|
87
|
+
return i(this, "name") || "";
|
|
88
|
+
}
|
|
89
|
+
set name(t) {
|
|
90
|
+
i(this, "name", t);
|
|
91
|
+
}
|
|
92
|
+
}, E = class extends p {
|
|
93
|
+
connectedCallback() {
|
|
94
|
+
i(this, "role", "button"), this.slot = "summary", this.tabIndex = 0;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
f.define("u-details", k);
|
|
98
|
+
f.define("u-summary", E);
|
|
99
|
+
export {
|
|
100
|
+
k as UHTMLDetailsElement,
|
|
101
|
+
_ as UHTMLDetailsShadowRoot,
|
|
102
|
+
y as UHTMLDetailsStyle,
|
|
103
|
+
E as UHTMLSummaryElement
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=u-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"u-details.js","sources":["../../../../../node_modules/@u-elements/u-details/dist/u-details.js"],"sourcesContent":["// ../utils.ts\nvar isBrowser = () => typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.navigator !== \"undefined\";\nvar IS_BROWSER = isBrowser();\nvar _a;\nIS_BROWSER && // @ts-expect-error Typescript has not implemented userAgentData yet https://stackoverflow.com/a/71392474\n/^Mac/i.test(((_a = navigator.userAgentData) == null ? void 0 : _a.platform) || navigator.platform);\nvar SUPPORTS_CONSTRUCTED_CSS = IS_BROWSER && window.CSSStyleSheet && document.adoptedStyleSheets;\nvar DISPLAY_BLOCK = \":host(:not([hidden])) { display: block }\";\nvar UHTMLElement = typeof HTMLElement === \"undefined\" ? class {\n} : HTMLElement;\nvar attr = (el, name, value) => {\n if (value === void 0) return el.getAttribute(name);\n if (value === null) el.removeAttribute(name);\n else if (el.getAttribute(name) !== value) el.setAttribute(name, value);\n return null;\n};\nvar on = (el, ...rest) => {\n const [types, ...options] = rest;\n for (const type of types.split(\" \")) el.addEventListener(type, ...options);\n return () => off(el, ...rest);\n};\nvar off = (el, ...rest) => {\n const [types, ...options] = rest;\n for (const type of types.split(\" \")) el.removeEventListener(type, ...options);\n};\nvar attachStyle = (el, css) => {\n const root = el.shadowRoot || el.attachShadow({ mode: \"open\" });\n if (!root.querySelector(\"slot\")) root.append(tag(\"slot\"));\n if (!root.querySelector(\"style\")) {\n if (!SUPPORTS_CONSTRUCTED_CSS) root.append(tag(\"style\", null, css));\n else {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(css);\n root.adoptedStyleSheets = [sheet];\n }\n }\n return root;\n};\nvar getRoot = (node) => {\n var _a2;\n const root = ((_a2 = node.getRootNode) == null ? void 0 : _a2.call(node)) || node.ownerDocument;\n return root instanceof Document || root instanceof ShadowRoot ? root : document;\n};\nvar tag = (tagName, attrs, content) => {\n const el = document.createElement(tagName);\n if (content) el.textContent = content;\n if (attrs) for (const [key, val] of Object.entries(attrs)) attr(el, key, val);\n return el;\n};\nvar customElements = {\n define: (name, instance) => !isBrowser() || window.customElements.get(name) || window.customElements.define(name, instance)\n};\nvar declarativeShadowRoot = (style, slot = \"<slot></slot>\") => `<template shadowrootmode=\"open\">${slot}<style>${style}</style></template>`;\n\n// u-details.ts\nvar UHTMLDetailsStyle = `${DISPLAY_BLOCK}\n::slotted([slot=\"summary\"]) { cursor: pointer; display: block }\n::slotted([slot=\"summary\"])::before { content: ''; display: inline-block; vertical-align: middle; margin-inline: .05em .3125em; border-block: .3125em solid transparent; border-inline-start: .5em solid }\n::slotted([slot=\"summary\"][aria-expanded=\"true\"])::before { rotate: 90deg }\n:host > [part=\"details-content\"]:not([hidden=\"\"]) { display: block }`;\nvar UHTMLDetailsShadowRoot = declarativeShadowRoot(\n UHTMLDetailsStyle,\n '<slot name=\"summary\"></slot><slot part=\"details-content\" hidden=\"until-found\"></slot>'\n);\nvar UHTMLDetailsElement = class extends UHTMLElement {\n // Using underscore instead of private fields for backwards compatibility\n // Using ES2015 syntax for backwards compatibility\n static get observedAttributes() {\n return [\"open\"];\n }\n constructor() {\n var _a2;\n super();\n attachStyle(this, UHTMLDetailsStyle);\n (_a2 = this.shadowRoot) == null ? void 0 : _a2.prepend(\n tag(\"slot\", { name: \"summary\" }),\n tag(\"slot\", { part: \"details-content\" })\n );\n console.warn(\n \"\\x1B[1m<u-details> is deprecated as <details> now has sufficient screen reader support \\u{1F389}\\x1B[0m\\nPlease use <details> and <summary>, but import '@u-elements/u-details/polyfill' to polyfill support for Talkback screen reader when used with Firefox on Android.\",\n this\n );\n }\n connectedCallback() {\n var _a2;\n this._content = (_a2 = this.shadowRoot) == null ? void 0 : _a2.children[1];\n attr(this, \"role\", \"group\");\n on(this._content, \"beforematch\", this);\n on(this, \"click keydown\", this);\n this.attributeChangedCallback();\n }\n disconnectedCallback() {\n if (this._content) off(this._content, \"beforematch\", this);\n off(this, \"click keydown\", this);\n this._content = void 0;\n }\n attributeChangedCallback(prop, prev, next) {\n const hide = \"onbeforematch\" in this ? \"until-found\" : true;\n const open = this.open;\n for (const el of this.children)\n if (el.nodeName === \"U-SUMMARY\") attr(el, \"aria-expanded\", `${open}`);\n if (this._content) {\n attr(this._content, \"aria-hidden\", `${!open}`);\n attr(this._content, \"tabindex\", open ? null : \"-1\");\n this._content.hidden = open ? false : hide;\n }\n if (open && this.name) {\n const uDetailsList = getRoot(this).querySelectorAll(\n `${this.nodeName}[name=\"${this.name}\"]`\n );\n for (const uDetails of uDetailsList)\n if (uDetails !== this) uDetails.open = false;\n }\n if (prop === \"open\" && prev === null !== (next === null))\n this.dispatchEvent(new Event(\"toggle\"));\n }\n handleEvent(event) {\n var _a2, _b;\n const isKeyClick = event.key === \" \" || event.key === \"Enter\";\n const isSummary = event.target instanceof Element && ((_a2 = event.target.closest('[slot=\"summary\"]')) == null ? void 0 : _a2.parentElement) === this;\n if (event.defaultPrevented) return;\n if (event.type === \"beforematch\") this.open = true;\n if (isSummary && event.type === \"click\") this.open = !this.open;\n if (isSummary && event.type === \"keydown\" && isKeyClick) {\n (_b = event.preventDefault) == null ? void 0 : _b.call(event);\n event.target.dispatchEvent(new MouseEvent(\"click\", event));\n }\n }\n get open() {\n return this.hasAttribute(\"open\");\n }\n set open(value) {\n attr(this, \"open\", value ? \"\" : null);\n }\n get name() {\n return attr(this, \"name\") || \"\";\n }\n set name(value) {\n attr(this, \"name\", value);\n }\n};\nvar UHTMLSummaryElement = class extends UHTMLElement {\n connectedCallback() {\n attr(this, \"role\", \"button\");\n this.slot = \"summary\";\n this.tabIndex = 0;\n }\n};\ncustomElements.define(\"u-details\", UHTMLDetailsElement);\ncustomElements.define(\"u-summary\", UHTMLSummaryElement);\n\nexport { UHTMLDetailsElement, UHTMLDetailsShadowRoot, UHTMLDetailsStyle, UHTMLSummaryElement };\n"],"names":["isBrowser","IS_BROWSER","_a","SUPPORTS_CONSTRUCTED_CSS","DISPLAY_BLOCK","UHTMLElement","attr","el","name","value","on","rest","types","options","type","off","attachStyle","css","root","tag","sheet","getRoot","node","_a2","tagName","attrs","content","key","val","customElements","instance","declarativeShadowRoot","style","slot","UHTMLDetailsStyle","UHTMLDetailsShadowRoot","UHTMLDetailsElement","prop","prev","next","hide","open","uDetailsList","uDetails","event","_b","isKeyClick","isSummary","UHTMLSummaryElement"],"mappings":"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","x_google_ignoreList":[0]}
|
package/mtds/field/field.js
CHANGED
|
@@ -21,7 +21,7 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
21
21
|
style: D,
|
|
22
22
|
suffix: h,
|
|
23
23
|
validation: O,
|
|
24
|
-
...
|
|
24
|
+
...o
|
|
25
25
|
}, F) {
|
|
26
26
|
const x = i || "ds-field", j = !!h || !!p, w = O || y, u = {
|
|
27
27
|
"data-size": t,
|
|
@@ -30,10 +30,10 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
30
30
|
suppressHydrationWarning: !0,
|
|
31
31
|
style: D
|
|
32
32
|
};
|
|
33
|
-
return i === "select" && !
|
|
33
|
+
return i === "select" && !o.children && Object.assign(o, {
|
|
34
34
|
options: void 0,
|
|
35
35
|
// Ensure options is not passed to DOM
|
|
36
|
-
children: /* @__PURE__ */ e(k, { children:
|
|
36
|
+
children: /* @__PURE__ */ e(k, { children: o.options?.map(V).map(({ label: L, value: H }) => /* @__PURE__ */ e("option", { value: H, children: L }, H)) })
|
|
37
37
|
}), i ? /* @__PURE__ */ W("ds-field", { ...u, children: [
|
|
38
38
|
!!b && /* @__PURE__ */ e(M, { children: b }),
|
|
39
39
|
!!g && /* @__PURE__ */ e(te, { "aria-label": C, children: g }),
|
|
@@ -46,7 +46,7 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
46
46
|
className: typeof i == "string" ? v.input : void 0,
|
|
47
47
|
suppressHydrationWarning: !0,
|
|
48
48
|
ref: F,
|
|
49
|
-
...
|
|
49
|
+
...o
|
|
50
50
|
}
|
|
51
51
|
),
|
|
52
52
|
!!h && /* @__PURE__ */ e("span", { children: h })
|
|
@@ -56,12 +56,12 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
56
56
|
className: typeof i == "string" ? v.input : void 0,
|
|
57
57
|
suppressHydrationWarning: !0,
|
|
58
58
|
ref: F,
|
|
59
|
-
...
|
|
59
|
+
...o
|
|
60
60
|
}
|
|
61
61
|
),
|
|
62
62
|
!!w && /* @__PURE__ */ e(T, { children: w }),
|
|
63
63
|
!!c && /* @__PURE__ */ e(U, { "data-limit": c })
|
|
64
|
-
] }) : /* @__PURE__ */ e("ds-field", { ref: F, ...u, ...
|
|
64
|
+
] }) : /* @__PURE__ */ e("ds-field", { ref: F, ...u, ...o });
|
|
65
65
|
}), G = s(
|
|
66
66
|
function({ className: t, ...n }, i) {
|
|
67
67
|
return /* @__PURE__ */ e("div", { className: P(v.affixes, t), ref: i, ...n });
|
|
@@ -73,6 +73,7 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
73
73
|
{
|
|
74
74
|
"data-placement": t,
|
|
75
75
|
"data-nofilter": !!n || void 0,
|
|
76
|
+
role: "listbox",
|
|
76
77
|
ref: d,
|
|
77
78
|
...A(i)
|
|
78
79
|
}
|
|
@@ -100,7 +101,7 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
100
101
|
onInput: D,
|
|
101
102
|
onChange: h,
|
|
102
103
|
children: O,
|
|
103
|
-
disabled:
|
|
104
|
+
disabled: o,
|
|
104
105
|
name: F,
|
|
105
106
|
options: x,
|
|
106
107
|
placeholder: j,
|
|
@@ -115,11 +116,11 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
115
116
|
)), g && (b = g, window.dsWarnings === !1 || console.warn(
|
|
116
117
|
"\x1B[1m@mattilsynet/design - deprecation warning:\x1B[m onBeforeChange is deprecated, please use onBeforeSelect instead"
|
|
117
118
|
)), $(X, () => q.current), ee(() => {
|
|
118
|
-
const f = q.current, l = (
|
|
119
|
+
const f = q.current, l = (a) => {
|
|
119
120
|
const E = B.current;
|
|
120
121
|
if (!B) return;
|
|
121
|
-
|
|
122
|
-
const { isConnected: Y, textContent: Z, value: S } =
|
|
122
|
+
a.preventDefault();
|
|
123
|
+
const { isConnected: Y, textContent: Z, value: S } = a.detail, N = Z?.trim() || "", R = u || [];
|
|
123
124
|
E?.(Y ? R.filter((_) => _.value !== S) : c ? [...R, { value: S, label: N }] : [{ value: S, label: N }]);
|
|
124
125
|
};
|
|
125
126
|
return f?.addEventListener("comboboxbeforeselect", l), () => f?.removeEventListener("comboboxbeforeselect", l);
|
|
@@ -138,13 +139,13 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
138
139
|
v.suggestion
|
|
139
140
|
),
|
|
140
141
|
children: [
|
|
141
|
-
u?.map(({ children: f, label: l, value:
|
|
142
|
+
u?.map(({ children: f, label: l, value: a }) => /* @__PURE__ */ e("data", { value: a, suppressHydrationWarning: !0, children: f ?? l }, a)),
|
|
142
143
|
O || /* @__PURE__ */ W(k, { children: [
|
|
143
144
|
/* @__PURE__ */ e(
|
|
144
145
|
ne,
|
|
145
146
|
{
|
|
146
147
|
"aria-required": t,
|
|
147
|
-
disabled:
|
|
148
|
+
disabled: o,
|
|
148
149
|
name: F,
|
|
149
150
|
onInput: D,
|
|
150
151
|
onChange: h,
|
|
@@ -160,7 +161,7 @@ const V = (r) => typeof r == "string" ? { label: r, value: r } : r, ie = s(funct
|
|
|
160
161
|
{
|
|
161
162
|
"data-nofilter": d,
|
|
162
163
|
"data-placement": i || n,
|
|
163
|
-
children: x.map(V).map(({ children: f, label: l, value:
|
|
164
|
+
children: x.map(V).map(({ children: f, label: l, value: a }) => /* @__PURE__ */ e(K, { value: a, label: l, children: f ?? l }, a))
|
|
164
165
|
}
|
|
165
166
|
)
|
|
166
167
|
]
|
package/mtds/field/field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.js","sources":["../../designsystem/field/field.tsx"],"sourcesContent":["\"use client\";\nimport type { Placement } from \"@floating-ui/dom\";\nimport clsx from \"clsx\";\nimport type { JSX } from \"react\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from \"react\";\nimport type { DSSuggestionElement } from \"..\";\nimport { HelpText } from \"../helptext/helptext\";\nimport { Input, type InputProps } from \"../input/input\";\nimport type {\n\tCustomReactElementProps,\n\tPolymorphicComponentPropWithRef,\n\tPolymorphicRef,\n} from \"../react-types\";\nimport styles from \"../styles.module.css\";\nimport { toCustomElementProps } from \"../utils\";\nimport { Validation } from \"../validation/validation\";\n\ntype FieldBaseProps = {\n\t\"data-required\"?: \"hidden\";\n\tcount?: number;\n\tdescription?: React.ReactNode;\n\terror?: React.ReactNode; // Kept for backwards compatibility\n\thelpText?: React.ReactNode;\n\thelpTextLabel?: string;\n\tlabel?: React.ReactNode;\n\toptions?: string[] | FieldSuggestionSelected;\n\tprefix?: string;\n\treadOnly?: boolean; // Allow readoOnly also on <select>\n\tsuffix?: string;\n\tvalidation?: React.ReactNode;\n};\n\nexport type FieldProps<As extends React.ElementType = \"div\"> =\n\tPolymorphicComponentPropWithRef<As, FieldBaseProps>;\n\ntype FieldComponent = <As extends React.ElementType = \"div\">(\n\tprops: FieldProps<As>,\n) => JSX.Element;\n\nconst toOption = (\n\to: FieldSuggestionSelected[number] | string,\n): FieldSuggestionSelected[number] =>\n\ttypeof o === \"string\" ? { label: o, value: o } : o;\n\nexport const FieldComp: FieldComponent = forwardRef<null>(function Field<\n\tAs extends React.ElementType = \"div\",\n>(\n\t{\n\t\t\"data-size\": size,\n\t\t\"data-required\": dataRequired,\n\t\tas,\n\t\tclassName,\n\t\tcount,\n\t\tdescription,\n\t\terror,\n\t\thelpText,\n\t\thelpTextLabel,\n\t\tlabel,\n\t\tprefix,\n\t\tstyle,\n\t\tsuffix,\n\t\tvalidation: validationContent,\n\t\t...rest\n\t}: FieldProps<As>,\n\tref?: PolymorphicRef<As>,\n) {\n\tconst Tag = as || \"ds-field\";\n\tconst affixes = !!suffix || !!prefix;\n\tconst validation = validationContent || error; // error kept for backwards compatibility\n\tconst shared = {\n\t\t\"data-size\": size,\n\t\t\"data-required\": dataRequired,\n\t\tclass: clsx(styles.field, className),\n\t\tsuppressHydrationWarning: true,\n\t\tstyle,\n\t};\n\n\t// Render options if select\n\tif (as === \"select\" && !rest.children)\n\t\tObject.assign(rest, {\n\t\t\toptions: undefined, // Ensure options is not passed to DOM\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t{(rest.options as FieldBaseProps[\"options\"])\n\t\t\t\t\t\t?.map(toOption)\n\t\t\t\t\t\t.map(({ label, value }) => (\n\t\t\t\t\t\t\t<option key={value} value={value}>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t</>\n\t\t\t),\n\t\t});\n\n\t// Using suppressHydrationWarning to avoid Next.js vs field-observer.ts hydration conflict\n\treturn as ? (\n\t\t<ds-field {...shared}>\n\t\t\t{!!label && <FieldLabel>{label}</FieldLabel>}\n\t\t\t{!!helpText && <HelpText aria-label={helpTextLabel}>{helpText}</HelpText>}\n\t\t\t{!!description && <FieldDescription>{description}</FieldDescription>}\n\t\t\t{affixes ? (\n\t\t\t\t<FieldAffixes>\n\t\t\t\t\t{!!prefix && <span>{prefix}</span>}\n\t\t\t\t\t<Tag\n\t\t\t\t\t\tclassName={typeof as === \"string\" ? styles.input : undefined}\n\t\t\t\t\t\tsuppressHydrationWarning\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\t\t\t\t\t{!!suffix && <span>{suffix}</span>}\n\t\t\t\t</FieldAffixes>\n\t\t\t) : (\n\t\t\t\t<Tag\n\t\t\t\t\tclassName={typeof as === \"string\" ? styles.input : undefined}\n\t\t\t\t\tsuppressHydrationWarning\n\t\t\t\t\tref={ref}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{!!validation && <Validation>{validation}</Validation>}\n\t\t\t{!!count && <FieldCount data-limit={count} />}\n\t\t</ds-field>\n\t) : (\n\t\t<ds-field ref={ref} {...shared} {...rest} />\n\t);\n}) as FieldComponent; // Needed to tell Typescript this does not return ReactNode but acutally JSX.Element\n\nexport type FieldAffixProps = React.ComponentPropsWithoutRef<\"div\">;\nconst FieldAffixes = forwardRef<HTMLDivElement, FieldAffixProps>(\n\tfunction FieldAffixes({ className, ...rest }, ref) {\n\t\treturn (\n\t\t\t<div className={clsx(styles.affixes, className)} ref={ref} {...rest} />\n\t\t);\n\t},\n);\n\nexport type FieldDatalistProps = React.ComponentPropsWithoutRef<\"datalist\"> & {\n\t\"data-nofilter\"?: boolean;\n\t/**\n\t * @deprecated Use `data-placement` instead.\n\t */\n\t\"data-position\"?: Placement;\n\t\"data-placement\"?: Placement;\n};\n\nconst FieldDatalist = forwardRef<HTMLDataListElement, FieldDatalistProps>(\n\tfunction FieldDatalist(\n\t\t{ \"data-position\": placement, \"data-nofilter\": filter, ...rest },\n\t\tref,\n\t) {\n\t\treturn (\n\t\t\t<u-datalist\n\t\t\t\tdata-placement={placement} // Backward compatibility\n\t\t\t\tdata-nofilter={!!filter || undefined} // Ensure data-nofilter is set correctly\n\t\t\t\tref={ref}\n\t\t\t\t{...toCustomElementProps(rest)}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nexport type FieldOptionProps = React.ComponentPropsWithoutRef<\"option\">;\nconst FieldOption = forwardRef<HTMLOptionElement, FieldOptionProps>(\n\tfunction FieldOption(props, ref) {\n\t\treturn <u-option ref={ref} {...toCustomElementProps(props)} />;\n\t},\n);\n\nexport type FieldComboboxSelected = FieldSuggestionSelected; // Backwards compatibility\nexport type FieldComboboxProps = FieldSuggestionProps; // Backwards compatibility\n\nexport type FieldSuggestionSelected = {\n\tlabel: string;\n\tvalue: string;\n\tchildren?: React.ReactNode;\n}[];\nexport type FieldSuggestionProps = Omit<\n\tCustomReactElementProps<DSSuggestionElement>,\n\t\"onChange\" | \"onInput\"\n> & {\n\t\"data-creatable\"?: boolean;\n\t\"data-multiple\"?: boolean;\n\t\"data-variant\"?: \"inside\";\n\tonAfterChange?: (e: CustomEvent<HTMLDataElement>) => void; // Backwards compatibility\n\tonAfterSelect?: (e: CustomEvent<HTMLDataElement>) => void; // Custom event to handle before change\n\tonBeforeChange?: (e: CustomEvent<HTMLDataElement>) => void; // Backwards compatibility\n\tonBeforeMatch?: (e: CustomEvent<HTMLOptionElement>) => void; // Custom event to handle before change\n\tonBeforeSelect?: (e: CustomEvent<HTMLDataElement>) => void; // Custom event to handle before change\n\tonSelectedChange?: (selected: FieldSuggestionSelected) => void; // Allow onChange to be a function that returns void\n\toptions?: FieldSuggestionSelected;\n\tselected?: FieldSuggestionSelected; // Allow value to be a string or an array of strings for multiple select\n} & Pick<\n\t\tInputProps,\n\t\t| \"disabled\"\n\t\t| \"name\"\n\t\t| \"onChange\"\n\t\t| \"onInput\"\n\t\t| \"placeholder\"\n\t\t| \"readOnly\"\n\t\t| \"type\"\n\t\t| \"value\"\n\t> & // Allow input props to be passed down\n\tPick<\n\t\tFieldDatalistProps,\n\t\t\"data-position\" | \"data-placement\" | \"data-nofilter\"\n\t>; // Allow datalist props to be passed down\n\nconst FieldSuggestion = forwardRef<DSSuggestionElement, FieldSuggestionProps>(\n\tfunction FieldSuggestion(\n\t\t{\n\t\t\t\"aria-required\": required,\n\t\t\t\"data-position\": position,\n\t\t\t\"data-placement\": placement,\n\t\t\t\"data-nofilter\": nofilter,\n\t\t\t\"data-multiple\": multiple,\n\t\t\tonAfterChange, // Backwards compatibility\n\t\t\tonAfterSelect,\n\t\t\tonBeforeChange, // Backwards compatibility\n\t\t\tonBeforeMatch,\n\t\t\tonBeforeSelect,\n\t\t\tonSelectedChange,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\tname,\n\t\t\toptions,\n\t\t\tplaceholder,\n\t\t\treadOnly,\n\t\t\tselected,\n\t\t\ttype,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst innerRef = useRef<DSSuggestionElement>(null);\n\t\tconst onSelected = useRef(onSelectedChange);\n\t\tonSelected.current = onSelectedChange; // Sync the latest onSelectedChange function\n\n\t\t// Deprecated props\n\t\tif (onAfterChange) {\n\t\t\tonAfterSelect = onAfterChange;\n\t\t\twindow.dsWarnings === false ||\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`\\x1B[1m@mattilsynet/design - deprecation warning:\\x1B[m onAfterChange is deprecated, please use onAfterSelect instead`,\n\t\t\t\t);\n\t\t}\n\n\t\tif (onBeforeChange) {\n\t\t\tonBeforeSelect = onBeforeChange;\n\t\t\twindow.dsWarnings === false ||\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`\\x1B[1m@mattilsynet/design - deprecation warning:\\x1B[m onBeforeChange is deprecated, please use onBeforeSelect instead`,\n\t\t\t\t);\n\t\t}\n\n\t\t// Using useEffect for React 18 and lower compatibility\n\t\tuseImperativeHandle(ref, () => innerRef.current as DSSuggestionElement); // Forward innerRef\n\t\tuseEffect(() => {\n\t\t\tconst self = innerRef.current;\n\t\t\tconst handleChange = (event: CustomEvent<HTMLDataElement>) => {\n\t\t\t\tconst handleSelected = onSelected.current;\n\t\t\t\tif (!onSelected) return; // No onSelectedChange function provided, let ds-suggestion handle it\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst { isConnected: remove, textContent, value } = event.detail;\n\t\t\t\tconst label = textContent?.trim() || \"\";\n\t\t\t\tconst prev = selected || [];\n\n\t\t\t\tif (remove) handleSelected?.(prev.filter((i) => i.value !== value));\n\t\t\t\telse if (multiple) handleSelected?.([...prev, { value, label }]);\n\t\t\t\telse handleSelected?.([{ value, label }]);\n\t\t\t};\n\n\t\t\tself?.addEventListener(\"comboboxbeforeselect\", handleChange);\n\t\t\treturn () =>\n\t\t\t\tself?.removeEventListener(\"comboboxbeforeselect\", handleChange);\n\t\t}, [multiple, selected]);\n\n\t\treturn (\n\t\t\t<ds-suggestion\n\t\t\t\tdata-multiple={multiple || undefined}\n\t\t\t\t{...toCustomElementProps(\n\t\t\t\t\t{\n\t\t\t\t\t\toncomboboxbeforeselect: onBeforeSelect,\n\t\t\t\t\t\toncomboboxbeforematch: onBeforeMatch,\n\t\t\t\t\t\toncomboboxafterselect: onAfterSelect,\n\t\t\t\t\t\tref: innerRef,\n\t\t\t\t\t\t...props,\n\t\t\t\t\t},\n\t\t\t\t\tstyles.suggestion,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{selected?.map(({ children, label, value }) => (\n\t\t\t\t\t<data key={value} value={value} suppressHydrationWarning>\n\t\t\t\t\t\t{children ?? label}\n\t\t\t\t\t</data>\n\t\t\t\t))}\n\t\t\t\t{children || (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\taria-required={required}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tonInput={onInput}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<del aria-label=\"Fjern tekst\" suppressHydrationWarning />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{!!options && (\n\t\t\t\t\t<FieldDatalist\n\t\t\t\t\t\tdata-nofilter={nofilter}\n\t\t\t\t\t\tdata-placement={placement || position}\n\t\t\t\t\t>\n\t\t\t\t\t\t{options.map(toOption).map(({ children, label, value }) => (\n\t\t\t\t\t\t\t<FieldOption key={value} value={value} label={label}>\n\t\t\t\t\t\t\t\t{children ?? label}\n\t\t\t\t\t\t\t</FieldOption>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</FieldDatalist>\n\t\t\t\t)}\n\t\t\t</ds-suggestion>\n\t\t);\n\t},\n);\n\nexport type FieldLabelProps = React.ComponentPropsWithoutRef<\"label\">;\nconst FieldLabel = forwardRef<HTMLLabelElement, FieldLabelProps>(\n\tfunction FieldLabel(rest, ref) {\n\t\treturn <label suppressHydrationWarning ref={ref} {...rest} />;\n\t},\n);\n\nexport type FieldDescriptionProps = React.ComponentPropsWithoutRef<\"p\">;\nconst FieldDescription = forwardRef<\n\tHTMLParagraphElement,\n\tFieldDescriptionProps\n>(function FieldDescription(rest, ref) {\n\treturn (\n\t\t<div\n\t\t\tsuppressHydrationWarning\n\t\t\tdata-field=\"description\"\n\t\t\tref={ref}\n\t\t\t{...rest}\n\t\t/>\n\t);\n});\n\nexport type FieldCountProps = React.ComponentPropsWithoutRef<\"p\"> & {\n\t/**\n\t * @deprecated Use \"data-limit\" instead\n\t */\n\t\"data-count\"?: number;\n\t\"data-limit\": number;\n};\nconst FieldCount = forwardRef<HTMLParagraphElement, FieldCountProps>(\n\tfunction FieldCount(\n\t\t{ \"data-count\": count, \"data-limit\": limit, ...rest },\n\t\tref,\n\t) {\n\t\treturn (\n\t\t\t<Validation\n\t\t\t\tdata-field=\"counter\"\n\t\t\t\tdata-limit={limit || count}\n\t\t\t\tref={ref}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nexport const Field = Object.assign(FieldComp, {\n\tAffixes: FieldAffixes,\n\t/**\n\t * @deprecated Use Field.Suggestion instead\n\t */\n\tCombobox: FieldSuggestion, // Backwards compatibility\n\tSuggestion: FieldSuggestion,\n\tDatalist: FieldDatalist,\n\tOption: FieldOption,\n\tDescription: FieldDescription,\n\tLabel: FieldLabel,\n\tCount: FieldCount,\n});\n"],"names":["toOption","o","FieldComp","forwardRef","size","dataRequired","as","className","count","description","error","helpText","helpTextLabel","label","prefix","style","suffix","validationContent","rest","ref","Tag","affixes","validation","shared","clsx","styles","value","jsx","jsxs","FieldLabel","HelpText","FieldDescription","FieldAffixes","Validation","FieldCount","FieldDatalist","placement","filter","toCustomElementProps","FieldOption","props","FieldSuggestion","required","position","nofilter","multiple","onAfterChange","onAfterSelect","onBeforeChange","onBeforeMatch","onBeforeSelect","onSelectedChange","onInput","onChange","children","disabled","name","options","placeholder","readOnly","selected","type","innerRef","useRef","onSelected","useImperativeHandle","useEffect","self","handleChange","event","handleSelected","remove","textContent","prev","i","Fragment","Input","limit","Field"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field.js","sources":["../../designsystem/field/field.tsx"],"sourcesContent":["\"use client\";\nimport type { Placement } from \"@floating-ui/dom\";\nimport clsx from \"clsx\";\nimport type { JSX } from \"react\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from \"react\";\nimport type { DSSuggestionElement } from \"..\";\nimport { HelpText } from \"../helptext/helptext\";\nimport { Input, type InputProps } from \"../input/input\";\nimport type {\n\tCustomReactElementProps,\n\tPolymorphicComponentPropWithRef,\n\tPolymorphicRef,\n} from \"../react-types\";\nimport styles from \"../styles.module.css\";\nimport { toCustomElementProps } from \"../utils\";\nimport { Validation } from \"../validation/validation\";\n\ntype FieldBaseProps = {\n\t\"data-required\"?: \"hidden\";\n\tcount?: number;\n\tdescription?: React.ReactNode;\n\terror?: React.ReactNode; // Kept for backwards compatibility\n\thelpText?: React.ReactNode;\n\thelpTextLabel?: string;\n\tlabel?: React.ReactNode;\n\toptions?: string[] | FieldSuggestionSelected;\n\tprefix?: string;\n\treadOnly?: boolean; // Allow readoOnly also on <select>\n\tsuffix?: string;\n\tvalidation?: React.ReactNode;\n};\n\nexport type FieldProps<As extends React.ElementType = \"div\"> =\n\tPolymorphicComponentPropWithRef<As, FieldBaseProps>;\n\ntype FieldComponent = <As extends React.ElementType = \"div\">(\n\tprops: FieldProps<As>,\n) => JSX.Element;\n\nconst toOption = (\n\to: FieldSuggestionSelected[number] | string,\n): FieldSuggestionSelected[number] =>\n\ttypeof o === \"string\" ? { label: o, value: o } : o;\n\nexport const FieldComp: FieldComponent = forwardRef<null>(function Field<\n\tAs extends React.ElementType = \"div\",\n>(\n\t{\n\t\t\"data-size\": size,\n\t\t\"data-required\": dataRequired,\n\t\tas,\n\t\tclassName,\n\t\tcount,\n\t\tdescription,\n\t\terror,\n\t\thelpText,\n\t\thelpTextLabel,\n\t\tlabel,\n\t\tprefix,\n\t\tstyle,\n\t\tsuffix,\n\t\tvalidation: validationContent,\n\t\t...rest\n\t}: FieldProps<As>,\n\tref?: PolymorphicRef<As>,\n) {\n\tconst Tag = as || \"ds-field\";\n\tconst affixes = !!suffix || !!prefix;\n\tconst validation = validationContent || error; // error kept for backwards compatibility\n\tconst shared = {\n\t\t\"data-size\": size,\n\t\t\"data-required\": dataRequired,\n\t\tclass: clsx(styles.field, className),\n\t\tsuppressHydrationWarning: true,\n\t\tstyle,\n\t};\n\n\t// Render options if select\n\tif (as === \"select\" && !rest.children)\n\t\tObject.assign(rest, {\n\t\t\toptions: undefined, // Ensure options is not passed to DOM\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t{(rest.options as FieldBaseProps[\"options\"])\n\t\t\t\t\t\t?.map(toOption)\n\t\t\t\t\t\t.map(({ label, value }) => (\n\t\t\t\t\t\t\t<option key={value} value={value}>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t))}\n\t\t\t\t</>\n\t\t\t),\n\t\t});\n\n\t// Using suppressHydrationWarning to avoid Next.js vs field-observer.ts hydration conflict\n\treturn as ? (\n\t\t<ds-field {...shared}>\n\t\t\t{!!label && <FieldLabel>{label}</FieldLabel>}\n\t\t\t{!!helpText && <HelpText aria-label={helpTextLabel}>{helpText}</HelpText>}\n\t\t\t{!!description && <FieldDescription>{description}</FieldDescription>}\n\t\t\t{affixes ? (\n\t\t\t\t<FieldAffixes>\n\t\t\t\t\t{!!prefix && <span>{prefix}</span>}\n\t\t\t\t\t<Tag\n\t\t\t\t\t\tclassName={typeof as === \"string\" ? styles.input : undefined}\n\t\t\t\t\t\tsuppressHydrationWarning\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\t\t\t\t\t{!!suffix && <span>{suffix}</span>}\n\t\t\t\t</FieldAffixes>\n\t\t\t) : (\n\t\t\t\t<Tag\n\t\t\t\t\tclassName={typeof as === \"string\" ? styles.input : undefined}\n\t\t\t\t\tsuppressHydrationWarning\n\t\t\t\t\tref={ref}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{!!validation && <Validation>{validation}</Validation>}\n\t\t\t{!!count && <FieldCount data-limit={count} />}\n\t\t</ds-field>\n\t) : (\n\t\t<ds-field ref={ref} {...shared} {...rest} />\n\t);\n}) as FieldComponent; // Needed to tell Typescript this does not return ReactNode but acutally JSX.Element\n\nexport type FieldAffixProps = React.ComponentPropsWithoutRef<\"div\">;\nconst FieldAffixes = forwardRef<HTMLDivElement, FieldAffixProps>(\n\tfunction FieldAffixes({ className, ...rest }, ref) {\n\t\treturn (\n\t\t\t<div className={clsx(styles.affixes, className)} ref={ref} {...rest} />\n\t\t);\n\t},\n);\n\nexport type FieldDatalistProps = React.ComponentPropsWithoutRef<\"datalist\"> & {\n\t\"data-nofilter\"?: boolean;\n\t/**\n\t * @deprecated Use `data-placement` instead.\n\t */\n\t\"data-position\"?: Placement;\n\t\"data-placement\"?: Placement;\n};\n\nconst FieldDatalist = forwardRef<HTMLDataListElement, FieldDatalistProps>(\n\tfunction FieldDatalist(\n\t\t{ \"data-position\": placement, \"data-nofilter\": filter, ...rest },\n\t\tref,\n\t) {\n\t\treturn (\n\t\t\t<u-datalist\n\t\t\t\tdata-placement={placement} // Backward compatibility\n\t\t\t\tdata-nofilter={!!filter || undefined} // Ensure data-nofilter is set correctly\n\t\t\t\trole=\"listbox\" // Fixes React instant rendering\n\t\t\t\tref={ref}\n\t\t\t\t{...toCustomElementProps(rest)}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nexport type FieldOptionProps = React.ComponentPropsWithoutRef<\"option\">;\nconst FieldOption = forwardRef<HTMLOptionElement, FieldOptionProps>(\n\tfunction FieldOption(props, ref) {\n\t\treturn <u-option ref={ref} {...toCustomElementProps(props)} />;\n\t},\n);\n\nexport type FieldComboboxSelected = FieldSuggestionSelected; // Backwards compatibility\nexport type FieldComboboxProps = FieldSuggestionProps; // Backwards compatibility\n\nexport type FieldSuggestionSelected = {\n\tlabel: string;\n\tvalue: string;\n\tchildren?: React.ReactNode;\n}[];\nexport type FieldSuggestionProps = Omit<\n\tCustomReactElementProps<DSSuggestionElement>,\n\t\"onChange\" | \"onInput\"\n> & {\n\t\"data-creatable\"?: boolean;\n\t\"data-multiple\"?: boolean;\n\t\"data-variant\"?: \"inside\";\n\tonAfterChange?: (e: CustomEvent<HTMLDataElement>) => void; // Backwards compatibility\n\tonAfterSelect?: (e: CustomEvent<HTMLDataElement>) => void; // Custom event to handle before change\n\tonBeforeChange?: (e: CustomEvent<HTMLDataElement>) => void; // Backwards compatibility\n\tonBeforeMatch?: (e: CustomEvent<HTMLOptionElement>) => void; // Custom event to handle before change\n\tonBeforeSelect?: (e: CustomEvent<HTMLDataElement>) => void; // Custom event to handle before change\n\tonSelectedChange?: (selected: FieldSuggestionSelected) => void; // Allow onChange to be a function that returns void\n\toptions?: FieldSuggestionSelected;\n\tselected?: FieldSuggestionSelected; // Allow value to be a string or an array of strings for multiple select\n} & Pick<\n\t\tInputProps,\n\t\t| \"disabled\"\n\t\t| \"name\"\n\t\t| \"onChange\"\n\t\t| \"onInput\"\n\t\t| \"placeholder\"\n\t\t| \"readOnly\"\n\t\t| \"type\"\n\t\t| \"value\"\n\t> & // Allow input props to be passed down\n\tPick<\n\t\tFieldDatalistProps,\n\t\t\"data-position\" | \"data-placement\" | \"data-nofilter\"\n\t>; // Allow datalist props to be passed down\n\nconst FieldSuggestion = forwardRef<DSSuggestionElement, FieldSuggestionProps>(\n\tfunction FieldSuggestion(\n\t\t{\n\t\t\t\"aria-required\": required,\n\t\t\t\"data-position\": position,\n\t\t\t\"data-placement\": placement,\n\t\t\t\"data-nofilter\": nofilter,\n\t\t\t\"data-multiple\": multiple,\n\t\t\tonAfterChange, // Backwards compatibility\n\t\t\tonAfterSelect,\n\t\t\tonBeforeChange, // Backwards compatibility\n\t\t\tonBeforeMatch,\n\t\t\tonBeforeSelect,\n\t\t\tonSelectedChange,\n\t\t\tonInput,\n\t\t\tonChange,\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\tname,\n\t\t\toptions,\n\t\t\tplaceholder,\n\t\t\treadOnly,\n\t\t\tselected,\n\t\t\ttype,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst innerRef = useRef<DSSuggestionElement>(null);\n\t\tconst onSelected = useRef(onSelectedChange);\n\t\tonSelected.current = onSelectedChange; // Sync the latest onSelectedChange function\n\n\t\t// Deprecated props\n\t\tif (onAfterChange) {\n\t\t\tonAfterSelect = onAfterChange;\n\t\t\twindow.dsWarnings === false ||\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`\\x1B[1m@mattilsynet/design - deprecation warning:\\x1B[m onAfterChange is deprecated, please use onAfterSelect instead`,\n\t\t\t\t);\n\t\t}\n\n\t\tif (onBeforeChange) {\n\t\t\tonBeforeSelect = onBeforeChange;\n\t\t\twindow.dsWarnings === false ||\n\t\t\t\tconsole.warn(\n\t\t\t\t\t`\\x1B[1m@mattilsynet/design - deprecation warning:\\x1B[m onBeforeChange is deprecated, please use onBeforeSelect instead`,\n\t\t\t\t);\n\t\t}\n\n\t\t// Using useEffect for React 18 and lower compatibility\n\t\tuseImperativeHandle(ref, () => innerRef.current as DSSuggestionElement); // Forward innerRef\n\t\tuseEffect(() => {\n\t\t\tconst self = innerRef.current;\n\t\t\tconst handleChange = (event: CustomEvent<HTMLDataElement>) => {\n\t\t\t\tconst handleSelected = onSelected.current;\n\t\t\t\tif (!onSelected) return; // No onSelectedChange function provided, let ds-suggestion handle it\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst { isConnected: remove, textContent, value } = event.detail;\n\t\t\t\tconst label = textContent?.trim() || \"\";\n\t\t\t\tconst prev = selected || [];\n\n\t\t\t\tif (remove) handleSelected?.(prev.filter((i) => i.value !== value));\n\t\t\t\telse if (multiple) handleSelected?.([...prev, { value, label }]);\n\t\t\t\telse handleSelected?.([{ value, label }]);\n\t\t\t};\n\n\t\t\tself?.addEventListener(\"comboboxbeforeselect\", handleChange);\n\t\t\treturn () =>\n\t\t\t\tself?.removeEventListener(\"comboboxbeforeselect\", handleChange);\n\t\t}, [multiple, selected]);\n\n\t\treturn (\n\t\t\t<ds-suggestion\n\t\t\t\tdata-multiple={multiple || undefined}\n\t\t\t\t{...toCustomElementProps(\n\t\t\t\t\t{\n\t\t\t\t\t\toncomboboxbeforeselect: onBeforeSelect,\n\t\t\t\t\t\toncomboboxbeforematch: onBeforeMatch,\n\t\t\t\t\t\toncomboboxafterselect: onAfterSelect,\n\t\t\t\t\t\tref: innerRef,\n\t\t\t\t\t\t...props,\n\t\t\t\t\t},\n\t\t\t\t\tstyles.suggestion,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{selected?.map(({ children, label, value }) => (\n\t\t\t\t\t<data key={value} value={value} suppressHydrationWarning>\n\t\t\t\t\t\t{children ?? label}\n\t\t\t\t\t</data>\n\t\t\t\t))}\n\t\t\t\t{children || (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\taria-required={required}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tonInput={onInput}\n\t\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<del aria-label=\"Fjern tekst\" suppressHydrationWarning />\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{!!options && (\n\t\t\t\t\t<FieldDatalist\n\t\t\t\t\t\tdata-nofilter={nofilter}\n\t\t\t\t\t\tdata-placement={placement || position}\n\t\t\t\t\t>\n\t\t\t\t\t\t{options.map(toOption).map(({ children, label, value }) => (\n\t\t\t\t\t\t\t<FieldOption key={value} value={value} label={label}>\n\t\t\t\t\t\t\t\t{children ?? label}\n\t\t\t\t\t\t\t</FieldOption>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</FieldDatalist>\n\t\t\t\t)}\n\t\t\t</ds-suggestion>\n\t\t);\n\t},\n);\n\nexport type FieldLabelProps = React.ComponentPropsWithoutRef<\"label\">;\nconst FieldLabel = forwardRef<HTMLLabelElement, FieldLabelProps>(\n\tfunction FieldLabel(rest, ref) {\n\t\treturn <label suppressHydrationWarning ref={ref} {...rest} />;\n\t},\n);\n\nexport type FieldDescriptionProps = React.ComponentPropsWithoutRef<\"p\">;\nconst FieldDescription = forwardRef<\n\tHTMLParagraphElement,\n\tFieldDescriptionProps\n>(function FieldDescription(rest, ref) {\n\treturn (\n\t\t<div\n\t\t\tsuppressHydrationWarning\n\t\t\tdata-field=\"description\"\n\t\t\tref={ref}\n\t\t\t{...rest}\n\t\t/>\n\t);\n});\n\nexport type FieldCountProps = React.ComponentPropsWithoutRef<\"p\"> & {\n\t/**\n\t * @deprecated Use \"data-limit\" instead\n\t */\n\t\"data-count\"?: number;\n\t\"data-limit\": number;\n};\nconst FieldCount = forwardRef<HTMLParagraphElement, FieldCountProps>(\n\tfunction FieldCount(\n\t\t{ \"data-count\": count, \"data-limit\": limit, ...rest },\n\t\tref,\n\t) {\n\t\treturn (\n\t\t\t<Validation\n\t\t\t\tdata-field=\"counter\"\n\t\t\t\tdata-limit={limit || count}\n\t\t\t\tref={ref}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t);\n\t},\n);\n\nexport const Field = Object.assign(FieldComp, {\n\tAffixes: FieldAffixes,\n\t/**\n\t * @deprecated Use Field.Suggestion instead\n\t */\n\tCombobox: FieldSuggestion, // Backwards compatibility\n\tSuggestion: FieldSuggestion,\n\tDatalist: FieldDatalist,\n\tOption: FieldOption,\n\tDescription: FieldDescription,\n\tLabel: FieldLabel,\n\tCount: FieldCount,\n});\n"],"names":["toOption","o","FieldComp","forwardRef","size","dataRequired","as","className","count","description","error","helpText","helpTextLabel","label","prefix","style","suffix","validationContent","rest","ref","Tag","affixes","validation","shared","clsx","styles","value","jsx","jsxs","FieldLabel","HelpText","FieldDescription","FieldAffixes","Validation","FieldCount","FieldDatalist","placement","filter","toCustomElementProps","FieldOption","props","FieldSuggestion","required","position","nofilter","multiple","onAfterChange","onAfterSelect","onBeforeChange","onBeforeMatch","onBeforeSelect","onSelectedChange","onInput","onChange","children","disabled","name","options","placeholder","readOnly","selected","type","innerRef","useRef","onSelected","useImperativeHandle","useEffect","self","handleChange","event","handleSelected","remove","textContent","prev","i","Fragment","Input","limit","Field"],"mappings":"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"}
|
package/mtds/index.d.ts
CHANGED