@uva-glass/component-library 3.51.0 → 3.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/RteEditor.module-CUi7Vqe8.js +37 -0
- package/dist/RteEditor.module-CUi7Vqe8.js.map +1 -0
- package/dist/{SelectListbox.module-CgZyIxwT.js → SelectListbox.module-CXqMuXRB.js} +24 -23
- package/dist/SelectListbox.module-CXqMuXRB.js.map +1 -0
- package/dist/{TablePlugin-CeZO4BR1.js → TablePlugin-BLbsvcuu.js} +2 -2
- package/dist/{TablePlugin-CeZO4BR1.js.map → TablePlugin-BLbsvcuu.js.map} +1 -1
- package/dist/assets/CheckboxButtonBar.css +1 -1
- package/dist/assets/FormInput.css +1 -1
- package/dist/assets/InputField.css +1 -1
- package/dist/assets/RteEditor.css +1 -1
- package/dist/assets/SelectListbox.css +1 -1
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.d.ts +3 -3
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js +45 -45
- package/dist/components/CheckboxButtonBar/CheckboxButtonBar.js.map +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
- package/dist/components/FormInput/FormInput.d.ts +3 -1
- package/dist/components/FormInput/FormInput.js +35 -31
- package/dist/components/FormInput/FormInput.js.map +1 -1
- package/dist/components/InputField/InputField.d.ts +2 -0
- package/dist/components/InputField/InputField.js +29 -26
- package/dist/components/InputField/InputField.js.map +1 -1
- package/dist/components/InputField/InputField.stories.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.js +1 -1
- package/dist/components/MultiSelect/MultiSelect.stories.js +1 -1
- package/dist/components/MultiSelect/components/MultiSelectHeader.js +1 -1
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/PeriodSelector/PeriodSelector.js +13 -13
- package/dist/components/PeriodSelector/PeriodSelector.js.map +1 -1
- package/dist/components/ProgrammeCard/ProgrammeCard.stories.js +1 -1
- package/dist/components/RadioTabSelector/RadioTabSelector.js +1 -1
- package/dist/components/RteEditor/EditorHeader/EditorHeader.js +1 -1
- package/dist/components/RteEditor/Plugins/BlockFormatPlugin/BlockFormatPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/HistoryPlugin/HistoryPlugin.js +2 -2
- package/dist/components/RteEditor/Plugins/LinkPlugin/AddLinkForm/AddLinkFrom.js +1 -1
- package/dist/components/RteEditor/Plugins/LinkPlugin/LinkPlugin.js +2 -2
- package/dist/components/RteEditor/Plugins/ListPlugin/ListPlugin.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/AddTableFrom.js +1 -1
- package/dist/components/RteEditor/Plugins/TablePlugin/TablePlugin.js +2 -2
- package/dist/components/RteEditor/Plugins/TablePlugin/index.js +1 -1
- package/dist/components/RteEditor/Plugins/ToolbarPlugin/ToolbarPlugin.js +2 -2
- package/dist/components/RteEditor/Plugins/index.js +1 -1
- package/dist/components/RteEditor/RteEditor.d.ts +8 -6
- package/dist/components/RteEditor/RteEditor.js +367 -356
- package/dist/components/RteEditor/RteEditor.js.map +1 -1
- package/dist/components/RteEditor/UvaTheme/UvaTheme.js +1 -1
- package/dist/components/SelectListbox/SelectListbox.d.ts +4 -2
- package/dist/components/SelectListbox/SelectListbox.js +20 -18
- package/dist/components/SelectListbox/SelectListbox.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectButton.d.ts +1 -0
- package/dist/components/SelectListbox/components/SelectButton.js +34 -25
- package/dist/components/SelectListbox/components/SelectButton.js.map +1 -1
- package/dist/components/SelectListbox/components/SelectContainer.js +1 -1
- package/dist/components/SelectListbox/components/SelectOption.js +1 -1
- package/dist/components/SelectListbox/components/SelectOptionBox.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +5 -5
- package/dist/RteEditor.module-CmYZ4MmA.js +0 -36
- package/dist/RteEditor.module-CmYZ4MmA.js.map +0 -1
- package/dist/SelectListbox.module-CgZyIxwT.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { c as
|
|
1
|
+
import { jsxs as c, Fragment as v, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { c as l } from "../../clsx-OuTLNxxd.js";
|
|
3
3
|
import "../Accordion/Accordion.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import "../Buttons/Button.js";
|
|
@@ -7,7 +7,7 @@ import "../Buttons/LinkButton.js";
|
|
|
7
7
|
import "@react-aria/button";
|
|
8
8
|
import "../Checkbox/Checkbox.js";
|
|
9
9
|
import { Label as k } from "../Label/Label.js";
|
|
10
|
-
import { FeedbackBox as
|
|
10
|
+
import { FeedbackBox as g } from "../FeedbackBox/FeedbackBox.js";
|
|
11
11
|
import "@react-aria/dialog";
|
|
12
12
|
import "@react-aria/focus";
|
|
13
13
|
import "@react-aria/overlays";
|
|
@@ -17,7 +17,7 @@ import "../IconButton/IconButton.js";
|
|
|
17
17
|
import "../Input/Input.js";
|
|
18
18
|
import "../InputField/InputField.js";
|
|
19
19
|
import "react-router";
|
|
20
|
-
import "../../TablePlugin-
|
|
20
|
+
import "../../TablePlugin-BLbsvcuu.js";
|
|
21
21
|
import "../RteEditor/Providers/LanguageProvider.js";
|
|
22
22
|
import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
23
23
|
import "../RteEditor/hooks/components/Flyout.js";
|
|
@@ -29,45 +29,49 @@ import "../SelectListbox/SelectProvider.js";
|
|
|
29
29
|
import "../Sortable/components/SortableItem.js";
|
|
30
30
|
import "../../SortableProvider-BbwlEPIr.js";
|
|
31
31
|
import "../WeekSelector/components/WeekSelectorOptionContainer.js";
|
|
32
|
-
import '../../assets/FormInput.css';const
|
|
33
|
-
"form-input__container": "_form-
|
|
34
|
-
"form-input__container--label-left": "_form-input__container--label-
|
|
35
|
-
"form-input__container--label-top": "_form-input__container--label-
|
|
36
|
-
"form-input__input-feedback-container": "_form-input__input-feedback-
|
|
37
|
-
"form-input__input-container": "_form-input__input-
|
|
38
|
-
"form-input__input": "_form-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
import '../../assets/FormInput.css';const t = {
|
|
33
|
+
"form-input__container": "_form-input__container_rt0pn_1",
|
|
34
|
+
"form-input__container--label-left": "_form-input__container--label-left_rt0pn_7",
|
|
35
|
+
"form-input__container--label-top": "_form-input__container--label-top_rt0pn_18",
|
|
36
|
+
"form-input__input-feedback-container": "_form-input__input-feedback-container_rt0pn_25",
|
|
37
|
+
"form-input__input-container": "_form-input__input-container_rt0pn_35",
|
|
38
|
+
"form-input__input": "_form-input__input_rt0pn_25",
|
|
39
|
+
"not-valid": "_not-valid_rt0pn_60"
|
|
40
|
+
}, T = ({
|
|
41
|
+
id: o,
|
|
42
|
+
label: i,
|
|
43
|
+
labelPosition: f = "top",
|
|
43
44
|
type: p = "text",
|
|
44
|
-
required:
|
|
45
|
+
required: u = !1,
|
|
46
|
+
notValid: s = !1,
|
|
45
47
|
notValidatedText: e = "",
|
|
46
48
|
onChange: m,
|
|
47
|
-
noContainer:
|
|
48
|
-
customInput:
|
|
49
|
+
noContainer: d = !1,
|
|
50
|
+
customInput: _
|
|
49
51
|
}) => {
|
|
50
|
-
const
|
|
51
|
-
typeof m == "function" && m(
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
/* @__PURE__ */
|
|
55
|
-
|
|
52
|
+
const b = (n) => ["e", "E", "+", "-"].includes(n.key) && n.preventDefault(), h = (n) => {
|
|
53
|
+
typeof m == "function" && m(n.target.value);
|
|
54
|
+
}, a = /* @__PURE__ */ c(v, { children: [
|
|
55
|
+
i && /* @__PURE__ */ r(k, { htmlFor: o, required: u, alignRight: !0, children: i }),
|
|
56
|
+
/* @__PURE__ */ c("div", { className: t["form-input__input-feedback-container"], children: [
|
|
57
|
+
_ || /* @__PURE__ */ r("div", { className: t["form-input__input-container"], children: /* @__PURE__ */ r(
|
|
56
58
|
"input",
|
|
57
59
|
{
|
|
58
|
-
id:
|
|
60
|
+
id: o,
|
|
59
61
|
type: p,
|
|
60
|
-
...p === "number" && { onKeyDown:
|
|
61
|
-
onChange:
|
|
62
|
-
className:
|
|
62
|
+
...p === "number" && { onKeyDown: b },
|
|
63
|
+
onChange: h,
|
|
64
|
+
className: l(t["form-input__input"], {
|
|
65
|
+
[t["not-valid"]]: s
|
|
66
|
+
})
|
|
63
67
|
}
|
|
64
68
|
) }),
|
|
65
|
-
e !== "" && /* @__PURE__ */
|
|
69
|
+
e !== "" && /* @__PURE__ */ r(g, { level: "error", feedback: e })
|
|
66
70
|
] })
|
|
67
71
|
] });
|
|
68
|
-
return
|
|
72
|
+
return d ? a : /* @__PURE__ */ r("div", { className: l(t["form-input__container"], t[`form-input__container--label-${f}`]), children: a });
|
|
69
73
|
};
|
|
70
74
|
export {
|
|
71
|
-
|
|
75
|
+
T as FormInput
|
|
72
76
|
};
|
|
73
77
|
//# sourceMappingURL=FormInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormInput.js","sources":["../../../src/components/FormInput/FormInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './FormInput.module.css';\n\nimport { FeedbackBox, Label } from 'components';\n\nexport interface FormInputProps {\n /** The id of the input element. */\n id: string;\n /** label text if empthy the label is not renderd */\n label: string;\n /** label position `top` or `left`. The default is `top`. */\n labelPosition?: 'top' | 'left';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email' | 'number';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange?: (value: string) => void;\n /** Determines if the container wrapper is rendered. */\n noContainer?: boolean;\n /** Optional custom input that will replace the default input */\n customInput?: ReactNode;\n}\n\nexport const FormInput = ({\n id,\n label,\n labelPosition = 'top',\n type = 'text',\n required = false,\n notValidatedText = '',\n onChange,\n noContainer = false,\n customInput,\n}: FormInputProps) => {\n const blockInvalidChar = (event: React.KeyboardEvent<HTMLInputElement>) =>\n ['e', 'E', '+', '-'].includes(event.key) && event.preventDefault();\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (typeof onChange === 'function') {\n onChange(event.target.value);\n }\n };\n\n const componentContent = (\n <>\n {label && (\n <Label htmlFor={id} required={required} alignRight>\n {label}\n </Label>\n )}\n\n <div className={styles['form-input__input-feedback-container']}>\n {customInput ? (\n customInput\n ) : (\n <div className={styles['form-input__input-container']}>\n <input\n id={id}\n type={type}\n {...(type === 'number' && { onKeyDown: blockInvalidChar })}\n onChange={handleChange}\n className={styles['form-input__input']}\n />\n </div>\n )}\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </>\n );\n\n return noContainer ? (\n componentContent\n ) : (\n <div className={clsx(styles['form-input__container'], styles[`form-input__container--label-${labelPosition}`])}>\n {componentContent}\n </div>\n );\n};\n"],"names":["FormInput","id","label","labelPosition","type","required","notValidatedText","onChange","noContainer","customInput","blockInvalidChar","event","handleChange","componentContent","jsxs","Fragment","Label","styles","jsx","
|
|
1
|
+
{"version":3,"file":"FormInput.js","sources":["../../../src/components/FormInput/FormInput.tsx"],"sourcesContent":["import { clsx } from 'clsx';\n\nimport type { ReactNode } from 'react';\n\nimport styles from './FormInput.module.css';\n\nimport { FeedbackBox, Label } from 'components';\n\nexport interface FormInputProps {\n /** The id of the input element. */\n id: string;\n /** label text if empthy the label is not renderd */\n label: string;\n /** label position `top` or `left`. The default is `top`. */\n labelPosition?: 'top' | 'left';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email' | 'number';\n /** Shows red * */\n required?: boolean;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange?: (value: string) => void;\n /** Determines if the container wrapper is rendered. */\n noContainer?: boolean;\n /** Optional custom input that will replace the default input */\n customInput?: ReactNode;\n}\n\nexport const FormInput = ({\n id,\n label,\n labelPosition = 'top',\n type = 'text',\n required = false,\n notValid = false,\n notValidatedText = '',\n onChange,\n noContainer = false,\n customInput,\n}: FormInputProps) => {\n const blockInvalidChar = (event: React.KeyboardEvent<HTMLInputElement>) =>\n ['e', 'E', '+', '-'].includes(event.key) && event.preventDefault();\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (typeof onChange === 'function') {\n onChange(event.target.value);\n }\n };\n\n const componentContent = (\n <>\n {label && (\n <Label htmlFor={id} required={required} alignRight>\n {label}\n </Label>\n )}\n\n <div className={styles['form-input__input-feedback-container']}>\n {customInput ? (\n customInput\n ) : (\n <div className={styles['form-input__input-container']}>\n <input\n id={id}\n type={type}\n {...(type === 'number' && { onKeyDown: blockInvalidChar })}\n onChange={handleChange}\n className={clsx(styles['form-input__input'], {\n [styles['not-valid']]: notValid,\n })}\n />\n </div>\n )}\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </>\n );\n\n return noContainer ? (\n componentContent\n ) : (\n <div className={clsx(styles['form-input__container'], styles[`form-input__container--label-${labelPosition}`])}>\n {componentContent}\n </div>\n );\n};\n"],"names":["FormInput","id","label","labelPosition","type","required","notValid","notValidatedText","onChange","noContainer","customInput","blockInvalidChar","event","handleChange","componentContent","jsxs","Fragment","Label","styles","jsx","clsx","FeedbackBox"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BaA,IAAY,CAAC;AAAA,EACxB,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,kBAAAC,IAAmB;AAAA,EACnB,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,aAAAC;AACF,MAAsB;AACpB,QAAMC,IAAmB,CAACC,MACxB,CAAC,KAAK,KAAK,KAAK,GAAG,EAAE,SAASA,EAAM,GAAG,KAAKA,EAAM,eAAA,GAE9CC,IAAe,CAACD,MAA+C;AACnE,IAAI,OAAOJ,KAAa,cACtBA,EAASI,EAAM,OAAO,KAAK;AAAA,EAE/B,GAEME,IACJ,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAd,uBACEe,GAAA,EAAM,SAAShB,GAAI,UAAAI,GAAoB,YAAU,IAC/C,UAAAH,EAAA,CACH;AAAA,IAGF,gBAAAa,EAAC,OAAA,EAAI,WAAWG,EAAO,sCAAsC,GAC1D,UAAA;AAAA,MAAAR,KAGC,gBAAAS,EAAC,OAAA,EAAI,WAAWD,EAAO,6BAA6B,GAClD,UAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAAlB;AAAA,UACA,MAAAG;AAAA,UACC,GAAIA,MAAS,YAAY,EAAE,WAAWO,EAAA;AAAA,UACvC,UAAUE;AAAA,UACV,WAAWO,EAAKF,EAAO,mBAAmB,GAAG;AAAA,YAC3C,CAACA,EAAO,WAAW,CAAC,GAAGZ;AAAA,UAAA,CACxB;AAAA,QAAA;AAAA,MAAA,GAEL;AAAA,MAEDC,MAAqB,MAAM,gBAAAY,EAACE,KAAY,OAAM,SAAQ,UAAUd,EAAA,CAAkB;AAAA,IAAA,EAAA,CACrF;AAAA,EAAA,GACF;AAGF,SAAOE,IACLK,IAEA,gBAAAK,EAAC,OAAA,EAAI,WAAWC,EAAKF,EAAO,uBAAuB,GAAGA,EAAO,gCAAgCf,CAAa,EAAE,CAAC,GAC1G,UAAAW,GACH;AAEJ;"}
|
|
@@ -12,6 +12,8 @@ export interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputEleme
|
|
|
12
12
|
id: string;
|
|
13
13
|
/** An element that represents a clear button. */
|
|
14
14
|
clearTrigger?: ReactNode;
|
|
15
|
+
/** `true` to color border red to show not valid; otherwise, `false`. */
|
|
16
|
+
notValid?: boolean;
|
|
15
17
|
/** The callback that is invoked when the clear button is triggered. */
|
|
16
18
|
onClear?: () => void;
|
|
17
19
|
}
|
|
@@ -1,60 +1,63 @@
|
|
|
1
|
-
import { jsxs as b, jsx as
|
|
1
|
+
import { jsxs as b, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as g, useState as x, useRef as B, useEffect as y } from "react";
|
|
3
3
|
import { c as C } from "../../clsx-OuTLNxxd.js";
|
|
4
4
|
import '../../assets/InputField.css';const t = {
|
|
5
|
-
"input-field-wrapper": "_input-field-
|
|
6
|
-
"input-field": "_input-
|
|
7
|
-
"input-field--large": "_input-field--
|
|
8
|
-
"input-field--small": "_input-field--
|
|
9
|
-
"input-field--compact": "_input-field--
|
|
10
|
-
"input-field--white": "_input-field--
|
|
11
|
-
"input-
|
|
5
|
+
"input-field-wrapper": "_input-field-wrapper_13cvp_1",
|
|
6
|
+
"input-field": "_input-field_13cvp_1",
|
|
7
|
+
"input-field--large": "_input-field--large_13cvp_22",
|
|
8
|
+
"input-field--small": "_input-field--small_13cvp_26",
|
|
9
|
+
"input-field--compact": "_input-field--compact_13cvp_30",
|
|
10
|
+
"input-field--white": "_input-field--white_13cvp_34",
|
|
11
|
+
"input-field--not-valid": "_input-field--not-valid_13cvp_38",
|
|
12
|
+
"input-field__clear-button": "_input-field__clear-button_13cvp_46"
|
|
12
13
|
}, j = g(
|
|
13
14
|
({
|
|
14
|
-
autoComplete:
|
|
15
|
-
id:
|
|
15
|
+
autoComplete: _ = "off",
|
|
16
|
+
id: p,
|
|
16
17
|
value: e,
|
|
17
|
-
variant:
|
|
18
|
+
variant: o,
|
|
18
19
|
width: u,
|
|
19
|
-
type:
|
|
20
|
-
background:
|
|
20
|
+
type: s = "text",
|
|
21
|
+
background: c,
|
|
21
22
|
clearTrigger: l,
|
|
23
|
+
notValid: a = !1,
|
|
22
24
|
onClear: f,
|
|
23
|
-
...
|
|
25
|
+
...d
|
|
24
26
|
}, i) => {
|
|
25
|
-
const [
|
|
27
|
+
const [m, v] = x(0), n = B(null);
|
|
26
28
|
y(() => {
|
|
27
|
-
n.current &&
|
|
29
|
+
n.current && v(n.current.offsetWidth);
|
|
28
30
|
}, [e]);
|
|
29
31
|
const h = () => {
|
|
30
32
|
f && i && "current" in i && i.current && (f(), i.current.focus());
|
|
31
33
|
};
|
|
32
34
|
return /* @__PURE__ */ b("div", { className: t["input-field-wrapper"], children: [
|
|
33
|
-
/* @__PURE__ */
|
|
35
|
+
/* @__PURE__ */ r(
|
|
34
36
|
"input",
|
|
35
37
|
{
|
|
36
|
-
...
|
|
37
|
-
autoComplete:
|
|
38
|
+
...d,
|
|
39
|
+
autoComplete: _,
|
|
38
40
|
ref: i,
|
|
39
|
-
id:
|
|
41
|
+
id: p,
|
|
40
42
|
className: C(t["input-field"], {
|
|
41
|
-
[t["input-field--large"]]:
|
|
43
|
+
[t["input-field--large"]]: o === "large",
|
|
42
44
|
[t[`input-field--${u}`]]: u,
|
|
43
|
-
[t[`input-field--${
|
|
45
|
+
[t[`input-field--${c}`]]: c,
|
|
46
|
+
[t["input-field--not-valid"]]: a
|
|
44
47
|
}),
|
|
45
|
-
type:
|
|
48
|
+
type: s,
|
|
46
49
|
value: e,
|
|
47
|
-
style: { paddingRight: e && l ?
|
|
50
|
+
style: { paddingRight: e && l ? m : void 0 }
|
|
48
51
|
}
|
|
49
52
|
),
|
|
50
|
-
!!e && l && /* @__PURE__ */
|
|
53
|
+
!!e && l && /* @__PURE__ */ r(
|
|
51
54
|
"button",
|
|
52
55
|
{
|
|
53
56
|
type: "button",
|
|
54
57
|
className: t["input-field__clear-button"],
|
|
55
58
|
onClick: h,
|
|
56
59
|
ref: n,
|
|
57
|
-
"aria-label": `clear trigger for ${
|
|
60
|
+
"aria-label": `clear trigger for ${p}`,
|
|
58
61
|
children: l
|
|
59
62
|
}
|
|
60
63
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputField.js","sources":["../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { InputHTMLAttributes, ReactNode } from 'react';\n\nimport styles from './InputField.module.css';\n\nexport interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style'> {\n /** The variant to render. */\n variant?: 'large';\n /** The width to render. */\n width?: 'small' | 'compact';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email';\n /** The background color of the input. InputField is by default transparent. */\n background?: 'white';\n /** The id of the input element. */\n id: string;\n /** An element that represents a clear button. */\n clearTrigger?: ReactNode;\n /** The callback that is invoked when the clear button is triggered. */\n onClear?: () => void;\n}\n\n/** Represents a component that renders an input field which can have a clear button. */\nexport const InputField = forwardRef<HTMLInputElement, InputFieldProps>(\n (\n {\n autoComplete = 'off',\n id,\n value,\n variant,\n width,\n type = 'text',\n background,\n clearTrigger,\n onClear,\n ...restProps\n }: InputFieldProps,\n forwardedRef\n ) => {\n const [clearButtonWidth, setClearButtonWidth] = useState<number>(0);\n const clearButtonRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (clearButtonRef.current) {\n setClearButtonWidth(clearButtonRef.current.offsetWidth);\n }\n }, [value]);\n\n const handleClearTriggerClick = () => {\n if (onClear && forwardedRef && 'current' in forwardedRef && forwardedRef.current) {\n onClear();\n forwardedRef.current.focus();\n }\n };\n\n return (\n <div className={styles['input-field-wrapper']}>\n <input\n {...restProps}\n autoComplete={autoComplete}\n ref={forwardedRef}\n id={id}\n className={clsx(styles['input-field'], {\n [styles['input-field--large']]: variant === 'large',\n [styles[`input-field--${width}`]]: width,\n [styles[`input-field--${background}`]]: background,\n })}\n type={type}\n value={value}\n style={{ paddingRight: value && clearTrigger ? clearButtonWidth : undefined }}\n />\n {Boolean(value) && clearTrigger && (\n <button\n type=\"button\"\n className={styles['input-field__clear-button']}\n onClick={handleClearTriggerClick}\n ref={clearButtonRef}\n aria-label={`clear trigger for ${id}`}\n >\n {clearTrigger}\n </button>\n )}\n </div>\n );\n }\n);\n"],"names":["InputField","forwardRef","autoComplete","id","value","variant","width","type","background","clearTrigger","onClear","restProps","forwardedRef","clearButtonWidth","setClearButtonWidth","useState","clearButtonRef","useRef","useEffect","handleClearTriggerClick","jsxs","styles","jsx","clsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"InputField.js","sources":["../../../src/components/InputField/InputField.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport type { InputHTMLAttributes, ReactNode } from 'react';\n\nimport styles from './InputField.module.css';\n\nexport interface InputFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'style'> {\n /** The variant to render. */\n variant?: 'large';\n /** The width to render. */\n width?: 'small' | 'compact';\n /** The type of the input element. */\n type?: 'text' | 'password' | 'email';\n /** The background color of the input. InputField is by default transparent. */\n background?: 'white';\n /** The id of the input element. */\n id: string;\n /** An element that represents a clear button. */\n clearTrigger?: ReactNode;\n /** `true` to color border red to show not valid; otherwise, `false`. */\n notValid?: boolean;\n /** The callback that is invoked when the clear button is triggered. */\n onClear?: () => void;\n}\n\n/** Represents a component that renders an input field which can have a clear button. */\nexport const InputField = forwardRef<HTMLInputElement, InputFieldProps>(\n (\n {\n autoComplete = 'off',\n id,\n value,\n variant,\n width,\n type = 'text',\n background,\n clearTrigger,\n notValid = false,\n onClear,\n ...restProps\n }: InputFieldProps,\n forwardedRef\n ) => {\n const [clearButtonWidth, setClearButtonWidth] = useState<number>(0);\n const clearButtonRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (clearButtonRef.current) {\n setClearButtonWidth(clearButtonRef.current.offsetWidth);\n }\n }, [value]);\n\n const handleClearTriggerClick = () => {\n if (onClear && forwardedRef && 'current' in forwardedRef && forwardedRef.current) {\n onClear();\n forwardedRef.current.focus();\n }\n };\n\n return (\n <div className={styles['input-field-wrapper']}>\n <input\n {...restProps}\n autoComplete={autoComplete}\n ref={forwardedRef}\n id={id}\n className={clsx(styles['input-field'], {\n [styles['input-field--large']]: variant === 'large',\n [styles[`input-field--${width}`]]: width,\n [styles[`input-field--${background}`]]: background,\n [styles[`input-field--not-valid`]]: notValid,\n })}\n type={type}\n value={value}\n style={{ paddingRight: value && clearTrigger ? clearButtonWidth : undefined }}\n />\n {Boolean(value) && clearTrigger && (\n <button\n type=\"button\"\n className={styles['input-field__clear-button']}\n onClick={handleClearTriggerClick}\n ref={clearButtonRef}\n aria-label={`clear trigger for ${id}`}\n >\n {clearTrigger}\n </button>\n )}\n </div>\n );\n }\n);\n"],"names":["InputField","forwardRef","autoComplete","id","value","variant","width","type","background","clearTrigger","notValid","onClear","restProps","forwardedRef","clearButtonWidth","setClearButtonWidth","useState","clearButtonRef","useRef","useEffect","handleClearTriggerClick","jsxs","styles","jsx","clsx"],"mappings":";;;;;;;;;;;;GA2BaA,IAAaC;AAAA,EACxB,CACE;AAAA,IACE,cAAAC,IAAe;AAAA,IACf,IAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,YAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,SAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAiB,CAAC,GAC5DC,IAAiBC,EAA0B,IAAI;AAErD,IAAAC,EAAU,MAAM;AACd,MAAIF,EAAe,WACjBF,EAAoBE,EAAe,QAAQ,WAAW;AAAA,IAE1D,GAAG,CAACb,CAAK,CAAC;AAEV,UAAMgB,IAA0B,MAAM;AACpC,MAAIT,KAAWE,KAAgB,aAAaA,KAAgBA,EAAa,YACvEF,EAAA,GACAE,EAAa,QAAQ,MAAA;AAAA,IAEzB;AAEA,WACE,gBAAAQ,EAAC,OAAA,EAAI,WAAWC,EAAO,qBAAqB,GAC1C,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACE,GAAGX;AAAA,UACJ,cAAAV;AAAA,UACA,KAAKW;AAAA,UACL,IAAAV;AAAA,UACA,WAAWqB,EAAKF,EAAO,aAAa,GAAG;AAAA,YACrC,CAACA,EAAO,oBAAoB,CAAC,GAAGjB,MAAY;AAAA,YAC5C,CAACiB,EAAO,gBAAgBhB,CAAK,EAAE,CAAC,GAAGA;AAAA,YACnC,CAACgB,EAAO,gBAAgBd,CAAU,EAAE,CAAC,GAAGA;AAAA,YACxC,CAACc,EAAO,wBAAwB,CAAC,GAAGZ;AAAA,UAAA,CACrC;AAAA,UACD,MAAAH;AAAA,UACA,OAAAH;AAAA,UACA,OAAO,EAAE,cAAcA,KAASK,IAAeK,IAAmB,OAAA;AAAA,QAAU;AAAA,MAAA;AAAA,MAE7E,EAAQV,KAAUK,KACjB,gBAAAc;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAWD,EAAO,2BAA2B;AAAA,UAC7C,SAASF;AAAA,UACT,KAAKH;AAAA,UACL,cAAY,qBAAqBd,CAAE;AAAA,UAElC,UAAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,EAEJ;AACF;"}
|
|
@@ -17,7 +17,7 @@ import "../GridRow/GridRow.js";
|
|
|
17
17
|
import "../IconButton/IconButton.js";
|
|
18
18
|
import "../Input/Input.js";
|
|
19
19
|
import "react-router";
|
|
20
|
-
import "../../TablePlugin-
|
|
20
|
+
import "../../TablePlugin-BLbsvcuu.js";
|
|
21
21
|
import "../RteEditor/Providers/LanguageProvider.js";
|
|
22
22
|
import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
23
23
|
import "../RteEditor/hooks/components/Flyout.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as S, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { l as d } from "../../index-DvUwfXNb.js";
|
|
3
3
|
import { useState as p } from "react";
|
|
4
|
-
import { M as e } from "../../TablePlugin-
|
|
4
|
+
import { M as e } from "../../TablePlugin-BLbsvcuu.js";
|
|
5
5
|
import { Container as M } from "../../storyComponents/Container/Container.js";
|
|
6
6
|
const C = `
|
|
7
7
|
// MultiSelectHeader can be added optionally
|
|
@@ -16,7 +16,7 @@ import "../../IconButton/IconButton.js";
|
|
|
16
16
|
import "../../Input/Input.js";
|
|
17
17
|
import "../../InputField/InputField.js";
|
|
18
18
|
import "react-router";
|
|
19
|
-
import { a as C } from "../../../TablePlugin-
|
|
19
|
+
import { a as C } from "../../../TablePlugin-BLbsvcuu.js";
|
|
20
20
|
import "../../RteEditor/Providers/LanguageProvider.js";
|
|
21
21
|
import "../../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
22
22
|
import "../../RteEditor/hooks/components/Flyout.js";
|
|
@@ -18,7 +18,7 @@ import "../Input/Input.js";
|
|
|
18
18
|
import "../InputField/InputField.js";
|
|
19
19
|
import { Label as I } from "../Label/Label.js";
|
|
20
20
|
import "react-router";
|
|
21
|
-
import "../../TablePlugin-
|
|
21
|
+
import "../../TablePlugin-BLbsvcuu.js";
|
|
22
22
|
import "../RteEditor/Providers/LanguageProvider.js";
|
|
23
23
|
import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
24
24
|
import "../RteEditor/hooks/components/Flyout.js";
|
|
@@ -38,27 +38,27 @@ import '../../assets/PeriodSelector.css';const l = {
|
|
|
38
38
|
"period-selector__selector-row": "_period-selector__selector-row_1txwd_24"
|
|
39
39
|
}, f = 0, h = 1, S = 2, E = 3, j = 7, A = (c) => {
|
|
40
40
|
const n = [];
|
|
41
|
-
for (let
|
|
42
|
-
n.push(c.slice(
|
|
41
|
+
for (let t = 0; t < c.length; t += E)
|
|
42
|
+
n.push(c.slice(t, t + E));
|
|
43
43
|
return n;
|
|
44
44
|
}, ar = ({
|
|
45
45
|
maxPeriods: c = j,
|
|
46
46
|
defaultValues: n,
|
|
47
|
-
label:
|
|
47
|
+
label: t,
|
|
48
48
|
labelPosition: b = "top",
|
|
49
49
|
required: _ = !1,
|
|
50
50
|
notValidatedText: p = "",
|
|
51
51
|
onChange: x
|
|
52
52
|
}) => {
|
|
53
|
-
const g = Array.from({ length: c }, (r, e) => e + 1), m = A(g), w = m.map((r, e) => r.map((
|
|
54
|
-
label:
|
|
55
|
-
value:
|
|
53
|
+
const g = Array.from({ length: c }, (r, e) => e + 1), m = A(g), w = m.map((r, e) => r.map((o) => ({
|
|
54
|
+
label: o.toString(),
|
|
55
|
+
value: o.toString()
|
|
56
56
|
}))), i = v(
|
|
57
57
|
m.map(
|
|
58
|
-
(r) => r.reduce((e,
|
|
58
|
+
(r) => r.reduce((e, o) => (n?.includes(o) && e.push(o), e), [])
|
|
59
59
|
)
|
|
60
60
|
), [R, a] = M([]), d = (r) => r[f].length !== 0 || r[h].length !== 0 ? [S] : r[S].length !== 0 ? [f, h] : [], P = (r, e) => {
|
|
61
|
-
i.current[e] = r.map((
|
|
61
|
+
i.current[e] = r.map((o) => Number(o)), a(d(i.current)), x([...i.current.flat()].sort());
|
|
62
62
|
};
|
|
63
63
|
return N(() => {
|
|
64
64
|
a(d(i.current));
|
|
@@ -70,17 +70,17 @@ import '../../assets/PeriodSelector.css';const l = {
|
|
|
70
70
|
l[`period-selector__container--label-${b}`]
|
|
71
71
|
),
|
|
72
72
|
children: [
|
|
73
|
-
|
|
73
|
+
t && /* @__PURE__ */ s(I, { htmlFor: "", required: _, children: t }),
|
|
74
74
|
/* @__PURE__ */ u("div", { className: l["period-selector__selector-container"], children: [
|
|
75
75
|
/* @__PURE__ */ s("div", { className: l["period-selector__selector-row"], children: w.map((r, e) => /* @__PURE__ */ s(
|
|
76
76
|
B,
|
|
77
77
|
{
|
|
78
78
|
checkboxes: r,
|
|
79
|
-
defaultValues: i.current[e].map((
|
|
79
|
+
defaultValues: i.current[e].map((o) => o.toString()),
|
|
80
80
|
disableGroup: R.includes(e),
|
|
81
81
|
required: _,
|
|
82
|
-
onSetValues: (
|
|
83
|
-
|
|
82
|
+
onSetValues: (o) => P(o, e),
|
|
83
|
+
notValid: p !== ""
|
|
84
84
|
},
|
|
85
85
|
`group_${e}`
|
|
86
86
|
)) }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeriodSelector.js","sources":["../../../src/components/PeriodSelector/PeriodSelector.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport styles from './PeriodSelector.module.css';\n\nimport { Label, CheckboxButtonBar, FeedbackBox } from 'components';\n\nexport interface PeriodSelectorProps {\n /** Indicates how many periods are shown. */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n maxPeriods: 6 | 7;\n /** array of period values [3, 5 ...] */\n defaultValues?: number[];\n label?: string;\n labelPosition?: 'top' | 'left';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange: (values: number[]) => void;\n}\n\nconst SEMESTER_1 = 0;\nconst SEMESTER_2 = 1;\nconst SEMESTER_3 = 2;\n\nconst PERIODS_PER_SEMESTER = 3;\nconst MAX_PERIODS = 7;\n\nconst chunkPeriods = (array: number[]): number[][] => {\n const result: number[][] = [];\n for (let count = 0; count < array.length; count += PERIODS_PER_SEMESTER) {\n result.push(array.slice(count, count + PERIODS_PER_SEMESTER));\n }\n return result;\n};\n\n/** Checkbox group for selecting periods */\nexport const PeriodSelector = ({\n maxPeriods = MAX_PERIODS,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidatedText = '',\n onChange,\n}: PeriodSelectorProps) => {\n const maxPeriodsList = Array.from({ length: maxPeriods }, (_, index) => index + 1);\n const chunkedPeriods = chunkPeriods(maxPeriodsList);\n\n const checkboxItems = chunkedPeriods.map((periods, _) => {\n return periods.map((period) => ({\n label: period.toString(),\n value: period.toString(),\n }));\n });\n\n const returnValues = useRef<number[][]>(\n chunkedPeriods.map((semester) =>\n semester.reduce((periods, period) => {\n if (defaultValues?.includes(period)) periods.push(period);\n return periods;\n }, [] as number[])\n )\n );\n const [disableSemesters, setDisableSemesters] = useState<number[]>([]);\n\n const disableGroups = (selects: number[][]) => {\n if (selects[SEMESTER_1].length !== 0 || selects[SEMESTER_2].length !== 0) return [SEMESTER_3];\n if (selects[SEMESTER_3].length !== 0) return [SEMESTER_1, SEMESTER_2];\n return [];\n };\n\n const handleChange = (values: string[], index: number) => {\n returnValues.current[index] = values.map((num) => Number(num));\n setDisableSemesters(disableGroups(returnValues.current));\n onChange([...returnValues.current.flat()].sort());\n };\n\n useEffect(() => {\n setDisableSemesters(disableGroups(returnValues.current));\n }, []);\n\n return (\n <div\n className={clsx(\n styles['period-selector__container'],\n styles[`period-selector__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['period-selector__selector-container']}>\n <div className={styles['period-selector__selector-row']}>\n {checkboxItems.map((checkboxes, semester) => (\n <CheckboxButtonBar\n key={`group_${semester}`}\n checkboxes={checkboxes}\n defaultValues={returnValues.current[semester].map((num) => num.toString())}\n disableGroup={disableSemesters.includes(semester)}\n required={required}\n onSetValues={(event) => handleChange(event, semester)}\n
|
|
1
|
+
{"version":3,"file":"PeriodSelector.js","sources":["../../../src/components/PeriodSelector/PeriodSelector.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { useEffect, useRef, useState } from 'react';\n\nimport styles from './PeriodSelector.module.css';\n\nimport { Label, CheckboxButtonBar, FeedbackBox } from 'components';\n\nexport interface PeriodSelectorProps {\n /** Indicates how many periods are shown. */\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n maxPeriods: 6 | 7;\n /** array of period values [3, 5 ...] */\n defaultValues?: number[];\n label?: string;\n labelPosition?: 'top' | 'left';\n /** Shows red * */\n required?: boolean;\n /** error text to display if set */\n notValidatedText?: string;\n /** Returns array of selected values as number */\n onChange: (values: number[]) => void;\n}\n\nconst SEMESTER_1 = 0;\nconst SEMESTER_2 = 1;\nconst SEMESTER_3 = 2;\n\nconst PERIODS_PER_SEMESTER = 3;\nconst MAX_PERIODS = 7;\n\nconst chunkPeriods = (array: number[]): number[][] => {\n const result: number[][] = [];\n for (let count = 0; count < array.length; count += PERIODS_PER_SEMESTER) {\n result.push(array.slice(count, count + PERIODS_PER_SEMESTER));\n }\n return result;\n};\n\n/** Checkbox group for selecting periods */\nexport const PeriodSelector = ({\n maxPeriods = MAX_PERIODS,\n defaultValues,\n label,\n labelPosition = 'top',\n required = false,\n notValidatedText = '',\n onChange,\n}: PeriodSelectorProps) => {\n const maxPeriodsList = Array.from({ length: maxPeriods }, (_, index) => index + 1);\n const chunkedPeriods = chunkPeriods(maxPeriodsList);\n\n const checkboxItems = chunkedPeriods.map((periods, _) => {\n return periods.map((period) => ({\n label: period.toString(),\n value: period.toString(),\n }));\n });\n\n const returnValues = useRef<number[][]>(\n chunkedPeriods.map((semester) =>\n semester.reduce((periods, period) => {\n if (defaultValues?.includes(period)) periods.push(period);\n return periods;\n }, [] as number[])\n )\n );\n const [disableSemesters, setDisableSemesters] = useState<number[]>([]);\n\n const disableGroups = (selects: number[][]) => {\n if (selects[SEMESTER_1].length !== 0 || selects[SEMESTER_2].length !== 0) return [SEMESTER_3];\n if (selects[SEMESTER_3].length !== 0) return [SEMESTER_1, SEMESTER_2];\n return [];\n };\n\n const handleChange = (values: string[], index: number) => {\n returnValues.current[index] = values.map((num) => Number(num));\n setDisableSemesters(disableGroups(returnValues.current));\n onChange([...returnValues.current.flat()].sort());\n };\n\n useEffect(() => {\n setDisableSemesters(disableGroups(returnValues.current));\n }, []);\n\n return (\n <div\n className={clsx(\n styles['period-selector__container'],\n styles[`period-selector__container--label-${labelPosition}`]\n )}\n >\n {label && (\n <Label htmlFor=\"\" required={required}>\n {label}\n </Label>\n )}\n <div className={styles['period-selector__selector-container']}>\n <div className={styles['period-selector__selector-row']}>\n {checkboxItems.map((checkboxes, semester) => (\n <CheckboxButtonBar\n key={`group_${semester}`}\n checkboxes={checkboxes}\n defaultValues={returnValues.current[semester].map((num) => num.toString())}\n disableGroup={disableSemesters.includes(semester)}\n required={required}\n onSetValues={(event) => handleChange(event, semester)}\n notValid={notValidatedText !== ''}\n />\n ))}\n </div>\n {notValidatedText !== '' && <FeedbackBox level=\"error\" feedback={notValidatedText} />}\n </div>\n </div>\n );\n};\n"],"names":["SEMESTER_1","SEMESTER_2","SEMESTER_3","PERIODS_PER_SEMESTER","MAX_PERIODS","chunkPeriods","array","result","count","PeriodSelector","maxPeriods","defaultValues","label","labelPosition","required","notValidatedText","onChange","maxPeriodsList","_","index","chunkedPeriods","checkboxItems","periods","period","returnValues","useRef","semester","disableSemesters","setDisableSemesters","useState","disableGroups","selects","handleChange","values","num","useEffect","jsxs","clsx","styles","jsx","Label","checkboxes","CheckboxButtonBar","event","FeedbackBox"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuBMA,IAAa,GACbC,IAAa,GACbC,IAAa,GAEbC,IAAuB,GACvBC,IAAc,GAEdC,IAAe,CAACC,MAAgC;AACpD,QAAMC,IAAqB,CAAA;AAC3B,WAASC,IAAQ,GAAGA,IAAQF,EAAM,QAAQE,KAASL;AACjD,IAAAI,EAAO,KAAKD,EAAM,MAAME,GAAOA,IAAQL,CAAoB,CAAC;AAE9D,SAAOI;AACT,GAGaE,KAAiB,CAAC;AAAA,EAC7B,YAAAC,IAAaN;AAAA,EACb,eAAAO;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,UAAAC,IAAW;AAAA,EACX,kBAAAC,IAAmB;AAAA,EACnB,UAAAC;AACF,MAA2B;AACzB,QAAMC,IAAiB,MAAM,KAAK,EAAE,QAAQP,EAAA,GAAc,CAACQ,GAAGC,MAAUA,IAAQ,CAAC,GAC3EC,IAAiBf,EAAaY,CAAc,GAE5CI,IAAgBD,EAAe,IAAI,CAACE,GAASJ,MAC1CI,EAAQ,IAAI,CAACC,OAAY;AAAA,IAC9B,OAAOA,EAAO,SAAA;AAAA,IACd,OAAOA,EAAO,SAAA;AAAA,EAAS,EACvB,CACH,GAEKC,IAAeC;AAAA,IACnBL,EAAe;AAAA,MAAI,CAACM,MAClBA,EAAS,OAAO,CAACJ,GAASC,OACpBZ,GAAe,SAASY,CAAM,KAAGD,EAAQ,KAAKC,CAAM,GACjDD,IACN,CAAA,CAAc;AAAA,IAAA;AAAA,EACnB,GAEI,CAACK,GAAkBC,CAAmB,IAAIC,EAAmB,CAAA,CAAE,GAE/DC,IAAgB,CAACC,MACjBA,EAAQ/B,CAAU,EAAE,WAAW,KAAK+B,EAAQ9B,CAAU,EAAE,WAAW,IAAU,CAACC,CAAU,IACxF6B,EAAQ7B,CAAU,EAAE,WAAW,IAAU,CAACF,GAAYC,CAAU,IAC7D,CAAA,GAGH+B,IAAe,CAACC,GAAkBd,MAAkB;AACxD,IAAAK,EAAa,QAAQL,CAAK,IAAIc,EAAO,IAAI,CAACC,MAAQ,OAAOA,CAAG,CAAC,GAC7DN,EAAoBE,EAAcN,EAAa,OAAO,CAAC,GACvDR,EAAS,CAAC,GAAGQ,EAAa,QAAQ,MAAM,EAAE,MAAM;AAAA,EAClD;AAEA,SAAAW,EAAU,MAAM;AACd,IAAAP,EAAoBE,EAAcN,EAAa,OAAO,CAAC;AAAA,EACzD,GAAG,CAAA,CAAE,GAGH,gBAAAY;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO,4BAA4B;AAAA,QACnCA,EAAO,qCAAqCzB,CAAa,EAAE;AAAA,MAAA;AAAA,MAG5D,UAAA;AAAA,QAAAD,KACC,gBAAA2B,EAACC,GAAA,EAAM,SAAQ,IAAG,UAAA1B,GACf,UAAAF,GACH;AAAA,QAEF,gBAAAwB,EAAC,OAAA,EAAI,WAAWE,EAAO,qCAAqC,GAC1D,UAAA;AAAA,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,+BAA+B,GACnD,UAAAjB,EAAc,IAAI,CAACoB,GAAYf,MAC9B,gBAAAa;AAAA,YAACG;AAAA,YAAA;AAAA,cAEC,YAAAD;AAAA,cACA,eAAejB,EAAa,QAAQE,CAAQ,EAAE,IAAI,CAACQ,MAAQA,EAAI,UAAU;AAAA,cACzE,cAAcP,EAAiB,SAASD,CAAQ;AAAA,cAChD,UAAAZ;AAAA,cACA,aAAa,CAAC6B,MAAUX,EAAaW,GAAOjB,CAAQ;AAAA,cACpD,UAAUX,MAAqB;AAAA,YAAA;AAAA,YAN1B,SAASW,CAAQ;AAAA,UAAA,CAQzB,GACH;AAAA,UACCX,MAAqB,MAAM,gBAAAwB,EAACK,KAAY,OAAM,SAAQ,UAAU7B,EAAA,CAAkB;AAAA,QAAA,EAAA,CACrF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -18,7 +18,7 @@ import "../GridRow/GridRow.js";
|
|
|
18
18
|
import "../IconButton/IconButton.js";
|
|
19
19
|
import "../Input/Input.js";
|
|
20
20
|
import "../InputField/InputField.js";
|
|
21
|
-
import "../../TablePlugin-
|
|
21
|
+
import "../../TablePlugin-BLbsvcuu.js";
|
|
22
22
|
import "../RteEditor/Providers/LanguageProvider.js";
|
|
23
23
|
import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
24
24
|
import "../RteEditor/hooks/components/Flyout.js";
|
|
@@ -18,7 +18,7 @@ import "../IconButton/IconButton.js";
|
|
|
18
18
|
import "../Input/Input.js";
|
|
19
19
|
import "../InputField/InputField.js";
|
|
20
20
|
import "react-router";
|
|
21
|
-
import "../../TablePlugin-
|
|
21
|
+
import "../../TablePlugin-BLbsvcuu.js";
|
|
22
22
|
import "../RteEditor/Providers/LanguageProvider.js";
|
|
23
23
|
import "../RteEditor/Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
24
24
|
import "../RteEditor/hooks/components/Flyout.js";
|
|
@@ -15,7 +15,7 @@ import "../../IconButton/IconButton.js";
|
|
|
15
15
|
import "../../Input/Input.js";
|
|
16
16
|
import "../../InputField/InputField.js";
|
|
17
17
|
import "react-router";
|
|
18
|
-
import "../../../TablePlugin-
|
|
18
|
+
import "../../../TablePlugin-BLbsvcuu.js";
|
|
19
19
|
import "../Providers/LanguageProvider.js";
|
|
20
20
|
import "../Plugins/LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
21
21
|
import "../hooks/components/Flyout.js";
|
|
@@ -4,7 +4,7 @@ import { c as f } from "../../../../clsx-OuTLNxxd.js";
|
|
|
4
4
|
import { a as _, h, U as p } from "../../../../Lexical.prod-BAE-wnll.js";
|
|
5
5
|
import { useState as l, useEffect as k } from "react";
|
|
6
6
|
import { Icon as I } from "../../../Icon/Icon.js";
|
|
7
|
-
import { s as a } from "../../../../RteEditor.module-
|
|
7
|
+
import { s as a } from "../../../../RteEditor.module-CUi7Vqe8.js";
|
|
8
8
|
import { useTranslation as B } from "../../hooks/useTranslation.js";
|
|
9
9
|
const C = {
|
|
10
10
|
bold: "Bold",
|
|
@@ -18,8 +18,8 @@ import "../../../IconButton/IconButton.js";
|
|
|
18
18
|
import "../../../Input/Input.js";
|
|
19
19
|
import "../../../InputField/InputField.js";
|
|
20
20
|
import "react-router";
|
|
21
|
-
import "../../../../TablePlugin-
|
|
22
|
-
import { s as r } from "../../../../RteEditor.module-
|
|
21
|
+
import "../../../../TablePlugin-BLbsvcuu.js";
|
|
22
|
+
import { s as r } from "../../../../RteEditor.module-CUi7Vqe8.js";
|
|
23
23
|
import { useTranslation as g } from "../../hooks/useTranslation.js";
|
|
24
24
|
import "../LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
25
25
|
import "../../hooks/components/Flyout.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "react/jsx-runtime";
|
|
2
2
|
import "react";
|
|
3
|
-
import { A as I } from "../../../../../TablePlugin-
|
|
3
|
+
import { A as I } from "../../../../../TablePlugin-BLbsvcuu.js";
|
|
4
4
|
import "../helpers.js";
|
|
5
5
|
import "../../../../Accordion/Accordion.js";
|
|
6
6
|
import "../../../../Icon/Icon.js";
|
|
@@ -4,7 +4,7 @@ import { c as W } from "../../../../clsx-OuTLNxxd.js";
|
|
|
4
4
|
import { w as I, P as Y, J as G } from "../../../../LexicalLink.prod-C6Or2Yo6.js";
|
|
5
5
|
import { useRef as a, useState as Q, useEffect as m } from "react";
|
|
6
6
|
import { a0 as X, a as p, q as Z, as as $, h as w, D as tt, a1 as et, n as ot } from "../../../../Lexical.prod-BAE-wnll.js";
|
|
7
|
-
import { A as rt } from "../../../../TablePlugin-
|
|
7
|
+
import { A as rt } from "../../../../TablePlugin-BLbsvcuu.js";
|
|
8
8
|
import { ensureHttps as nt } from "./helpers.js";
|
|
9
9
|
import { LinkContextMenu as it } from "./LinkContextMenu/LinkContextMenu.js";
|
|
10
10
|
import { useFlyout as st } from "../../hooks/useFlyout.js";
|
|
@@ -24,7 +24,7 @@ import "../../../Input/Input.js";
|
|
|
24
24
|
import "../../../InputField/InputField.js";
|
|
25
25
|
import "react-router";
|
|
26
26
|
import { setScrollableContainers as B, removeScrollableContainers as lt } from "../../helpers.js";
|
|
27
|
-
import { s as k } from "../../../../RteEditor.module-
|
|
27
|
+
import { s as k } from "../../../../RteEditor.module-CUi7Vqe8.js";
|
|
28
28
|
import { useTranslation as at } from "../../hooks/useTranslation.js";
|
|
29
29
|
import "react-dom";
|
|
30
30
|
import "../../../../index-yEhaxKq-.js";
|
|
@@ -5,7 +5,7 @@ import { useState as p, useEffect as k } from "react";
|
|
|
5
5
|
import { c as K } from "../../../../clsx-OuTLNxxd.js";
|
|
6
6
|
import { as as y, D as O, X as U, a as v, h as D, F as w } from "../../../../Lexical.prod-BAE-wnll.js";
|
|
7
7
|
import { Icon as B } from "../../../Icon/Icon.js";
|
|
8
|
-
import { s as l } from "../../../../RteEditor.module-
|
|
8
|
+
import { s as l } from "../../../../RteEditor.module-CUi7Vqe8.js";
|
|
9
9
|
import { useTranslation as E } from "../../hooks/useTranslation.js";
|
|
10
10
|
const F = {
|
|
11
11
|
bullet: "BulletList",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "react/jsx-runtime";
|
|
2
2
|
import "react";
|
|
3
|
-
import { b as G } from "../../../../TablePlugin-
|
|
3
|
+
import { b as G } from "../../../../TablePlugin-BLbsvcuu.js";
|
|
4
4
|
import "../../../Accordion/Accordion.js";
|
|
5
5
|
import "../../../Buttons/Button.js";
|
|
6
6
|
import "../../../Buttons/LinkButton.js";
|
|
@@ -5,7 +5,7 @@ import "../../../../LexicalTable.prod-BBI7yaOy.js";
|
|
|
5
5
|
import "../../../../Lexical.prod-BAE-wnll.js";
|
|
6
6
|
import "../../../../LexicalUtils.prod-D8DAKg7O.js";
|
|
7
7
|
import "react";
|
|
8
|
-
import { T as L } from "../../../../TablePlugin-
|
|
8
|
+
import { T as L } from "../../../../TablePlugin-BLbsvcuu.js";
|
|
9
9
|
import "./helpers.js";
|
|
10
10
|
import "../../nodes/TableWrapperNode/TableWrapperNode.js";
|
|
11
11
|
import "../../hooks/useFlyout.js";
|
|
@@ -24,7 +24,7 @@ import "../../../IconButton/IconButton.js";
|
|
|
24
24
|
import "../../../Input/Input.js";
|
|
25
25
|
import "../../../InputField/InputField.js";
|
|
26
26
|
import "react-router";
|
|
27
|
-
import "../../../../RteEditor.module-
|
|
27
|
+
import "../../../../RteEditor.module-CUi7Vqe8.js";
|
|
28
28
|
import "../../hooks/useTranslation.js";
|
|
29
29
|
import "../LinkPlugin/LinkContextMenu/LinkContextMenu.js";
|
|
30
30
|
import "react-dom";
|
|
@@ -7,11 +7,11 @@ import { BlockFormatPlugin as N } from "../BlockFormatPlugin/BlockFormatPlugin.j
|
|
|
7
7
|
import { ListPlugin as S } from "../ListPlugin/ListPlugin.js";
|
|
8
8
|
import { LinkPlugin as k } from "../LinkPlugin/LinkPlugin.js";
|
|
9
9
|
import { HistoryPlugin as x } from "../HistoryPlugin/HistoryPlugin.js";
|
|
10
|
-
import { T as B } from "../../../../TablePlugin-
|
|
10
|
+
import { T as B } from "../../../../TablePlugin-BLbsvcuu.js";
|
|
11
11
|
import { TableCellContextMenu as A } from "../TablePlugin/TableCellContextMenu/TableCellContextMenu.js";
|
|
12
12
|
import "react-dom";
|
|
13
13
|
import "../../../../index-yEhaxKq-.js";
|
|
14
|
-
import { s as z } from "../../../../RteEditor.module-
|
|
14
|
+
import { s as z } from "../../../../RteEditor.module-CUi7Vqe8.js";
|
|
15
15
|
import { setScrollableContainers as b, removeScrollableContainers as K } from "../../helpers.js";
|
|
16
16
|
const W = ({ editorScrollPosition: m }) => {
|
|
17
17
|
const [t] = y(), [r, i] = L(null), d = E(null), u = T(() => {
|
|
@@ -3,7 +3,7 @@ import { BlockFormatPlugin as t } from "./BlockFormatPlugin/BlockFormatPlugin.js
|
|
|
3
3
|
import { ListPlugin as n } from "./ListPlugin/ListPlugin.js";
|
|
4
4
|
import { LinkPlugin as g, getLinkNodeTag as m } from "./LinkPlugin/LinkPlugin.js";
|
|
5
5
|
import { HistoryPlugin as f } from "./HistoryPlugin/HistoryPlugin.js";
|
|
6
|
-
import { T as u } from "../../../TablePlugin-
|
|
6
|
+
import { T as u } from "../../../TablePlugin-BLbsvcuu.js";
|
|
7
7
|
import { TableCellContextMenu as T } from "./TablePlugin/TableCellContextMenu/TableCellContextMenu.js";
|
|
8
8
|
import { T as b } from "../../../TableCellResizerPlugin-HPo4ZkHo.js";
|
|
9
9
|
import { PasteHandlerPlugin as C } from "./PasteHandlerPlugin/PasteHandlerPlugin.js";
|
|
@@ -13,16 +13,18 @@ export interface RteEditorProps {
|
|
|
13
13
|
info?: string;
|
|
14
14
|
/** 'true' the rte field mandatory */
|
|
15
15
|
required?: boolean;
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
/** max height in rem default = 20rem*/
|
|
19
|
-
maxHeightInRem?: `${number}rem`;
|
|
16
|
+
/** `true` to color border red to show not valid; otherwise, `false`. */
|
|
17
|
+
notValid?: boolean;
|
|
20
18
|
/** error text to display if required and field is empty */
|
|
21
19
|
notValidatedText?: string;
|
|
20
|
+
/** max height in rem default = 20rem*/
|
|
21
|
+
maxHeightInRem?: `${number}rem`;
|
|
22
|
+
/** max number of words 'allowed' but not enforced */
|
|
23
|
+
maxWords?: number;
|
|
22
24
|
/** Ref to the Lexical editor instance */
|
|
23
25
|
rteRef?: RefObject<LexicalEditor> | null;
|
|
24
26
|
/** updated output */
|
|
25
27
|
onChange: (content: string) => void;
|
|
26
28
|
}
|
|
27
|
-
export declare const Rte: ({ currentLanguage, initialValue, placeholder, label, info, required, notValidatedText, maxHeightInRem, maxWords, rteRef, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
28
|
-
export declare const RteEditor: ({ currentLanguage, initialValue, placeholder, label, info, required, notValidatedText, maxWords, rteRef, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare const Rte: ({ currentLanguage, initialValue, placeholder, label, info, required, notValid, notValidatedText, maxHeightInRem, maxWords, rteRef, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export declare const RteEditor: ({ currentLanguage, initialValue, placeholder, label, info, required, notValid, notValidatedText, maxWords, rteRef, onChange, }: RteEditorProps) => import("react/jsx-runtime").JSX.Element;
|