@uva-glass/component-library 3.47.8 → 3.48.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-SmmXEc4R.js +36 -0
- package/dist/RteEditor.module-SmmXEc4R.js.map +1 -0
- package/dist/{TablePlugin-CfTWvWk1.js → TablePlugin-Cvw0NmoH.js} +2 -2
- package/dist/{TablePlugin-CfTWvWk1.js.map → TablePlugin-Cvw0NmoH.js.map} +1 -1
- package/dist/WeekSelector.module-D9MD4nVJ.js +17 -0
- package/dist/WeekSelector.module-D9MD4nVJ.js.map +1 -0
- package/dist/assets/RteEditor.css +1 -1
- package/dist/assets/WeekSelector.css +1 -1
- package/dist/components/CheckboxTree/CheckboxTree.js +1 -1
- package/dist/components/FormInput/FormInput.js +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 +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.js +2 -2
- package/dist/components/RteEditor/UvaTheme/UvaTheme.js +1 -1
- package/dist/components/WeekSelector/WeekSelector.d.ts +6 -1
- package/dist/components/WeekSelector/WeekSelector.js +83 -69
- package/dist/components/WeekSelector/WeekSelector.js.map +1 -1
- package/dist/components/WeekSelector/WeekSelector.stories.d.ts +1 -0
- package/dist/components/WeekSelector/WeekSelector.stories.js +106 -36
- package/dist/components/WeekSelector/WeekSelector.stories.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorButton.js +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOption.js +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOption.js.map +1 -1
- package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.d.ts +3 -3
- package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.js +11 -22
- package/dist/components/WeekSelector/components/WeekSelectorOptionContainer.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +6 -5
- package/dist/RteEditor.module-CovRFt0S.js +0 -34
- package/dist/RteEditor.module-CovRFt0S.js.map +0 -1
- package/dist/WeekSelector.module-P6WOVdLX.js +0 -17
- package/dist/WeekSelector.module-P6WOVdLX.js.map +0 -1
|
@@ -1,81 +1,95 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useState as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { jsx as t, jsxs as j } from "react/jsx-runtime";
|
|
2
|
+
import { useState as d, useRef as O, useMemo as x, useEffect as h } from "react";
|
|
3
|
+
import { createPortal as A } from "react-dom";
|
|
4
|
+
import { useOverlay as C, usePreventScroll as D, OverlayContainer as L } from "@react-aria/overlays";
|
|
5
|
+
import { FocusScope as $ } from "@react-aria/focus";
|
|
6
|
+
import { WeekSelectorButton as q } from "./components/WeekSelectorButton.js";
|
|
7
|
+
import { WeekSelectorOptionContainer as E } from "./components/WeekSelectorOptionContainer.js";
|
|
8
|
+
import { WeekSelectorOption as K } from "./components/WeekSelectorOption.js";
|
|
9
|
+
import { s as M } from "../../WeekSelector.module-D9MD4nVJ.js";
|
|
10
|
+
import { Backdrop as P } from "../Backdrop/Backdrop.js";
|
|
11
|
+
import { useOnClickOutside as R } from "../hooks/useOnClickOutside.js";
|
|
12
|
+
const Z = ({
|
|
13
|
+
weeks: r,
|
|
14
|
+
currentPeriod: i = 0,
|
|
15
|
+
defaultSelection: n,
|
|
16
|
+
weekPrefix: k,
|
|
17
|
+
optionsHeader: y,
|
|
18
|
+
periodLabels: N,
|
|
19
|
+
onSelectWeek: v,
|
|
20
|
+
portalContainerRef: m,
|
|
21
|
+
optionContainerOffset: u = []
|
|
16
22
|
}) => {
|
|
17
|
-
const [
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
const [p, a] = d(null), [o, l] = d(!1), f = O(null), s = O(null), W = x(() => Object.keys(r ?? {}), [r]);
|
|
24
|
+
h(() => {
|
|
25
|
+
if (n) {
|
|
26
|
+
for (const e in r)
|
|
27
|
+
if (r[e].some((c) => c.calendarWeekNumber === n && !c.isBlocked) && Number(e) > i) {
|
|
28
|
+
a(n);
|
|
22
29
|
return;
|
|
23
30
|
}
|
|
24
31
|
}
|
|
25
|
-
for (const e in
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
28
|
-
c
|
|
32
|
+
for (const e in r) {
|
|
33
|
+
const c = r[e].find((g) => !g.isBlocked);
|
|
34
|
+
if (c && Number(e) > i) {
|
|
35
|
+
a(c.calendarWeekNumber);
|
|
29
36
|
return;
|
|
30
37
|
}
|
|
31
38
|
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
39
|
+
}, [r, i, n]), h(() => {
|
|
40
|
+
o && s.current && requestAnimationFrame(() => {
|
|
41
|
+
s.current?.focus();
|
|
42
|
+
});
|
|
43
|
+
}, [o]);
|
|
44
|
+
const B = () => `${k} ${p ?? n ?? "?"}`;
|
|
45
|
+
R(f, (e) => {
|
|
46
|
+
s.current && s.current.contains(e.target) || l(!1);
|
|
47
|
+
});
|
|
48
|
+
const { overlayProps: F, underlayProps: S } = C(
|
|
49
|
+
{
|
|
50
|
+
isOpen: o,
|
|
51
|
+
isDismissable: !0,
|
|
52
|
+
onClose: () => l(!1)
|
|
53
|
+
},
|
|
54
|
+
s
|
|
55
|
+
);
|
|
56
|
+
D({ isDisabled: !o || !m?.current });
|
|
57
|
+
const b = /* @__PURE__ */ t(
|
|
58
|
+
E,
|
|
59
|
+
{
|
|
60
|
+
header: y,
|
|
61
|
+
periodLabels: N,
|
|
62
|
+
ref: s,
|
|
63
|
+
...u.length === 2 ? {
|
|
64
|
+
style: {
|
|
65
|
+
top: u[0],
|
|
66
|
+
left: u[1]
|
|
67
|
+
}
|
|
68
|
+
} : {},
|
|
69
|
+
children: W.map((e) => /* @__PURE__ */ t(
|
|
70
|
+
K,
|
|
71
|
+
{
|
|
72
|
+
periodIndex: e,
|
|
73
|
+
weeks: r,
|
|
74
|
+
disabled: Number(e) <= i,
|
|
75
|
+
selectedOption: p,
|
|
76
|
+
setSelectedOption: a,
|
|
77
|
+
onSelectWeek: v,
|
|
78
|
+
setIsOpen: l
|
|
79
|
+
},
|
|
80
|
+
e
|
|
81
|
+
))
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
return /* @__PURE__ */ j("div", { className: M["week-selector"], tabIndex: -1, ref: f, children: [
|
|
85
|
+
/* @__PURE__ */ t(q, { label: B(), onClick: () => l(!o) }),
|
|
86
|
+
o && (m?.current ? A(
|
|
87
|
+
/* @__PURE__ */ t(L, { children: /* @__PURE__ */ t(P, { ...S, children: /* @__PURE__ */ t($, { contain: !0, restoreFocus: !0, autoFocus: !0, children: /* @__PURE__ */ t("div", { ...F, children: b }) }) }) }),
|
|
88
|
+
m.current
|
|
89
|
+
) : b)
|
|
76
90
|
] });
|
|
77
91
|
};
|
|
78
92
|
export {
|
|
79
|
-
|
|
93
|
+
Z as WeekSelector
|
|
80
94
|
};
|
|
81
95
|
//# sourceMappingURL=WeekSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekSelector.js","sources":["../../../src/components/WeekSelector/WeekSelector.tsx"],"sourcesContent":["import { useEffect,
|
|
1
|
+
{"version":3,"file":"WeekSelector.js","sources":["../../../src/components/WeekSelector/WeekSelector.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport { OverlayContainer, useOverlay, usePreventScroll } from '@react-aria/overlays';\r\nimport { FocusScope } from '@react-aria/focus';\r\n\r\nimport type { CSSProperties, RefObject } from 'react';\r\n\r\nimport { WeekSelectorButton } from './components/WeekSelectorButton';\r\nimport { WeekSelectorOptionContainer } from './components/WeekSelectorOptionContainer';\r\nimport { WeekSelectorOption } from './components/WeekSelectorOption';\r\nimport styles from './WeekSelector.module.css';\r\n\r\nimport { Backdrop } from 'components/Backdrop';\r\nimport { useOnClickOutside } from 'components/hooks/useOnClickOutside';\r\n\r\nexport type PeriodWeek = {\r\n academicWeekNumber: number;\r\n calendarWeekNumber: number;\r\n isBlocked: boolean;\r\n period: number;\r\n startDate: string;\r\n endDate: string;\r\n weekNumber: number;\r\n};\r\n\r\nexport interface WeekSelectorProps {\r\n /** Object with periodnumbers with array of weeks in period */\r\n weeks: Record<string, PeriodWeek[]>;\r\n /** Current period to disable previous periods */\r\n currentPeriod?: number;\r\n /** Default selected week */\r\n defaultSelection?: number;\r\n /** Prefix for the week button label */\r\n weekPrefix: string;\r\n /** Labels for each period */\r\n periodLabels: string[];\r\n /** Header text for the options container */\r\n optionsHeader: string;\r\n /** Callback function when a week is selected */\r\n onSelectWeek: (weeknumber: number) => void;\r\n /** Ref for the dropdown portal target */\r\n portalContainerRef?: RefObject<HTMLElement | null>;\r\n /** Optional WeekSelectorOptionContainer offset values [top, bottom] */\r\n optionContainerOffset?: number[];\r\n}\r\n\r\nexport const WeekSelector = ({\r\n weeks,\r\n currentPeriod = 0,\r\n defaultSelection,\r\n weekPrefix,\r\n optionsHeader,\r\n periodLabels,\r\n onSelectWeek,\r\n portalContainerRef,\r\n optionContainerOffset = [],\r\n}: WeekSelectorProps) => {\r\n const [selectedOption, setSelectedOption] = useState<number | null>(null);\r\n const [isOpen, setIsOpen] = useState<boolean>(false);\r\n const wrapperRef = useRef<HTMLDivElement>(null);\r\n const optionContainerRef = useRef<HTMLDivElement>(null);\r\n const periodKeys = useMemo(() => Object.keys(weeks ?? {}), [weeks]);\r\n\r\n useEffect(() => {\r\n if (defaultSelection) {\r\n for (const period in weeks) {\r\n if (\r\n weeks[period].some((week) => week.calendarWeekNumber === defaultSelection && !week.isBlocked) &&\r\n Number(period) > currentPeriod\r\n ) {\r\n setSelectedOption(defaultSelection);\r\n return;\r\n }\r\n }\r\n }\r\n for (const period in weeks) {\r\n const firstAvailableWeek = weeks[period].find((week) => !week.isBlocked);\r\n if (firstAvailableWeek && Number(period) > currentPeriod) {\r\n setSelectedOption(firstAvailableWeek.calendarWeekNumber);\r\n return;\r\n }\r\n }\r\n }, [weeks, currentPeriod, defaultSelection]);\r\n\r\n useEffect(() => {\r\n if (isOpen && optionContainerRef.current) {\r\n requestAnimationFrame(() => {\r\n optionContainerRef.current?.focus();\r\n });\r\n }\r\n }, [isOpen]);\r\n\r\n const getButtonLabel = () => {\r\n const weekNumber = selectedOption ?? defaultSelection ?? '?';\r\n return `${weekPrefix} ${weekNumber}`;\r\n };\r\n\r\n useOnClickOutside(wrapperRef as RefObject<HTMLElement>, (event) => {\r\n if (optionContainerRef.current && optionContainerRef.current.contains(event.target as Node)) {\r\n return;\r\n }\r\n setIsOpen(false);\r\n });\r\n\r\n const { overlayProps, underlayProps } = useOverlay(\r\n {\r\n isOpen,\r\n isDismissable: true,\r\n onClose: () => setIsOpen(false),\r\n },\r\n optionContainerRef\r\n );\r\n\r\n usePreventScroll({ isDisabled: !isOpen || !portalContainerRef?.current });\r\n\r\n const OptionList = (\r\n <WeekSelectorOptionContainer\r\n header={optionsHeader}\r\n periodLabels={periodLabels}\r\n ref={optionContainerRef}\r\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\r\n {...(optionContainerOffset.length === 2\r\n ? {\r\n style: {\r\n top: optionContainerOffset[0],\r\n left: optionContainerOffset[1],\r\n } as CSSProperties,\r\n }\r\n : {})}\r\n >\r\n {periodKeys.map((periodIndex) => (\r\n <WeekSelectorOption\r\n key={periodIndex}\r\n periodIndex={periodIndex}\r\n weeks={weeks}\r\n disabled={Number(periodIndex) <= currentPeriod}\r\n selectedOption={selectedOption}\r\n setSelectedOption={setSelectedOption}\r\n onSelectWeek={onSelectWeek}\r\n setIsOpen={setIsOpen}\r\n />\r\n ))}\r\n </WeekSelectorOptionContainer>\r\n );\r\n\r\n return (\r\n <div className={styles['week-selector']} tabIndex={-1} ref={wrapperRef}>\r\n <WeekSelectorButton label={getButtonLabel()} onClick={() => setIsOpen(!isOpen)} />\r\n\r\n {isOpen &&\r\n (portalContainerRef?.current\r\n ? createPortal(\r\n <OverlayContainer>\r\n <Backdrop {...underlayProps}>\r\n <FocusScope contain restoreFocus autoFocus>\r\n <div {...overlayProps}>{OptionList}</div>\r\n </FocusScope>\r\n </Backdrop>\r\n </OverlayContainer>,\r\n portalContainerRef.current\r\n )\r\n : OptionList)}\r\n </div>\r\n );\r\n};\r\n"],"names":["WeekSelector","weeks","currentPeriod","defaultSelection","weekPrefix","optionsHeader","periodLabels","onSelectWeek","portalContainerRef","optionContainerOffset","selectedOption","setSelectedOption","useState","isOpen","setIsOpen","wrapperRef","useRef","optionContainerRef","periodKeys","useMemo","useEffect","period","week","firstAvailableWeek","getButtonLabel","useOnClickOutside","event","overlayProps","underlayProps","useOverlay","usePreventScroll","OptionList","jsx","WeekSelectorOptionContainer","periodIndex","WeekSelectorOption","jsxs","styles","WeekSelectorButton","createPortal","OverlayContainer","Backdrop","FocusScope"],"mappings":";;;;;;;;;;;AA8CO,MAAMA,IAAe,CAAC;AAAA,EAC3B,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,kBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,uBAAAC,IAAwB,CAAA;AAC1B,MAAyB;AACvB,QAAM,CAACC,GAAgBC,CAAiB,IAAIC,EAAwB,IAAI,GAClE,CAACC,GAAQC,CAAS,IAAIF,EAAkB,EAAK,GAC7CG,IAAaC,EAAuB,IAAI,GACxCC,IAAqBD,EAAuB,IAAI,GAChDE,IAAaC,EAAQ,MAAM,OAAO,KAAKlB,KAAS,CAAA,CAAE,GAAG,CAACA,CAAK,CAAC;AAElE,EAAAmB,EAAU,MAAM;AACd,QAAIjB;AACF,iBAAWkB,KAAUpB;AACnB,YACEA,EAAMoB,CAAM,EAAE,KAAK,CAACC,MAASA,EAAK,uBAAuBnB,KAAoB,CAACmB,EAAK,SAAS,KAC5F,OAAOD,CAAM,IAAInB,GACjB;AACA,UAAAS,EAAkBR,CAAgB;AAClC;AAAA,QACF;AAAA;AAGJ,eAAWkB,KAAUpB,GAAO;AAC1B,YAAMsB,IAAqBtB,EAAMoB,CAAM,EAAE,KAAK,CAACC,MAAS,CAACA,EAAK,SAAS;AACvE,UAAIC,KAAsB,OAAOF,CAAM,IAAInB,GAAe;AACxD,QAAAS,EAAkBY,EAAmB,kBAAkB;AACvD;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAACtB,GAAOC,GAAeC,CAAgB,CAAC,GAE3CiB,EAAU,MAAM;AACd,IAAIP,KAAUI,EAAmB,WAC/B,sBAAsB,MAAM;AAC1B,MAAAA,EAAmB,SAAS,MAAA;AAAA,IAC9B,CAAC;AAAA,EAEL,GAAG,CAACJ,CAAM,CAAC;AAEX,QAAMW,IAAiB,MAEd,GAAGpB,CAAU,IADDM,KAAkBP,KAAoB,GACvB;AAGpC,EAAAsB,EAAkBV,GAAsC,CAACW,MAAU;AACjE,IAAIT,EAAmB,WAAWA,EAAmB,QAAQ,SAASS,EAAM,MAAc,KAG1FZ,EAAU,EAAK;AAAA,EACjB,CAAC;AAED,QAAM,EAAE,cAAAa,GAAc,eAAAC,EAAA,IAAkBC;AAAA,IACtC;AAAA,MACE,QAAAhB;AAAA,MACA,eAAe;AAAA,MACf,SAAS,MAAMC,EAAU,EAAK;AAAA,IAAA;AAAA,IAEhCG;AAAA,EAAA;AAGF,EAAAa,EAAiB,EAAE,YAAY,CAACjB,KAAU,CAACL,GAAoB,SAAS;AAExE,QAAMuB,IACJ,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,QAAQ5B;AAAA,MACR,cAAAC;AAAA,MACA,KAAKW;AAAA,MAEJ,GAAIR,EAAsB,WAAW,IAClC;AAAA,QACE,OAAO;AAAA,UACL,KAAKA,EAAsB,CAAC;AAAA,UAC5B,MAAMA,EAAsB,CAAC;AAAA,QAAA;AAAA,MAC/B,IAEF,CAAA;AAAA,MAEH,UAAAS,EAAW,IAAI,CAACgB,MACf,gBAAAF;AAAA,QAACG;AAAA,QAAA;AAAA,UAEC,aAAAD;AAAA,UACA,OAAAjC;AAAA,UACA,UAAU,OAAOiC,CAAW,KAAKhC;AAAA,UACjC,gBAAAQ;AAAA,UACA,mBAAAC;AAAA,UACA,cAAAJ;AAAA,UACA,WAAAO;AAAA,QAAA;AAAA,QAPKoB;AAAA,MAAA,CASR;AAAA,IAAA;AAAA,EAAA;AAIL,SACE,gBAAAE,EAAC,SAAI,WAAWC,EAAO,eAAe,GAAG,UAAU,IAAI,KAAKtB,GAC1D,UAAA;AAAA,IAAA,gBAAAiB,EAACM,GAAA,EAAmB,OAAOd,EAAA,GAAkB,SAAS,MAAMV,EAAU,CAACD,CAAM,GAAG;AAAA,IAE/EA,MACEL,GAAoB,UACjB+B;AAAA,MACE,gBAAAP,EAACQ,KACC,UAAA,gBAAAR,EAACS,GAAA,EAAU,GAAGb,GACZ,UAAA,gBAAAI,EAACU,KAAW,SAAO,IAAC,cAAY,IAAC,WAAS,IACxC,UAAA,gBAAAV,EAAC,OAAA,EAAK,GAAGL,GAAe,UAAAI,EAAA,CAAW,EAAA,CACrC,EAAA,CACF,EAAA,CACF;AAAA,MACAvB,EAAmB;AAAA,IAAA,IAErBuB;AAAA,EAAA,GACR;AAEJ;"}
|
|
@@ -3,3 +3,4 @@ import { WeekSelectorProps } from 'components/WeekSelector';
|
|
|
3
3
|
declare const _default: Meta<WeekSelectorProps>;
|
|
4
4
|
export default _default;
|
|
5
5
|
export declare const WeekSelectorExample: import('storybook/internal/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, WeekSelectorProps>;
|
|
6
|
+
export declare const InAPortal: import('storybook/internal/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, WeekSelectorProps>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsxs as r, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { useRef as c } from "react";
|
|
3
|
+
import { mockWeeks as d } from "./mockdata.js";
|
|
4
|
+
import { WeekSelector as n } from "./WeekSelector.js";
|
|
5
|
+
const s = `<WeekSelector
|
|
5
6
|
weeks={Object-with-periodnumbers-with-array-of-weeks-in-period};
|
|
6
7
|
currentPeriod?={number};
|
|
7
8
|
defaultSelection?={number};
|
|
@@ -9,9 +10,9 @@ const c = `<WeekSelector
|
|
|
9
10
|
periodLabels={string[]};
|
|
10
11
|
optionsHeader={string};
|
|
11
12
|
onSelectWeek={(weeknumber: {number}) => void};
|
|
12
|
-
/>`,
|
|
13
|
+
/>`, g = {
|
|
13
14
|
title: "Molecules/WeekSelector",
|
|
14
|
-
component:
|
|
15
|
+
component: n,
|
|
15
16
|
argTypes: {
|
|
16
17
|
onSelectWeek: {
|
|
17
18
|
action: "selected week",
|
|
@@ -19,16 +20,26 @@ const c = `<WeekSelector
|
|
|
19
20
|
disable: !0
|
|
20
21
|
}
|
|
21
22
|
},
|
|
23
|
+
portalContainerRef: {
|
|
24
|
+
table: {
|
|
25
|
+
disable: !0
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
optionContainerOffset: {
|
|
29
|
+
table: {
|
|
30
|
+
disable: !0
|
|
31
|
+
}
|
|
32
|
+
},
|
|
22
33
|
currentPeriod: { table: { disable: !0 } },
|
|
23
34
|
defaultSelection: { table: { disable: !0 } }
|
|
24
35
|
},
|
|
25
36
|
parameters: {
|
|
26
|
-
inspectComponent:
|
|
27
|
-
codeString:
|
|
37
|
+
inspectComponent: n,
|
|
38
|
+
codeString: s
|
|
28
39
|
}
|
|
29
|
-
},
|
|
30
|
-
const
|
|
31
|
-
|
|
40
|
+
}, p = (e) => {
|
|
41
|
+
const o = (l) => {
|
|
42
|
+
e.onSelectWeek(l);
|
|
32
43
|
};
|
|
33
44
|
return /* @__PURE__ */ r(
|
|
34
45
|
"div",
|
|
@@ -42,80 +53,139 @@ const c = `<WeekSelector
|
|
|
42
53
|
flexDirection: "column"
|
|
43
54
|
},
|
|
44
55
|
children: [
|
|
45
|
-
/* @__PURE__ */ t(
|
|
56
|
+
/* @__PURE__ */ t(n, { ...e, currentPeriod: 1, onSelectWeek: o }),
|
|
46
57
|
/* @__PURE__ */ t(
|
|
47
|
-
|
|
58
|
+
n,
|
|
48
59
|
{
|
|
49
|
-
...
|
|
60
|
+
...e,
|
|
50
61
|
defaultSelection: 45,
|
|
51
62
|
currentPeriod: 2,
|
|
52
|
-
onSelectWeek:
|
|
63
|
+
onSelectWeek: o,
|
|
53
64
|
optionsHeader: "Kies een planning - Blok 2"
|
|
54
65
|
}
|
|
55
66
|
),
|
|
56
67
|
/* @__PURE__ */ t(
|
|
57
|
-
|
|
68
|
+
n,
|
|
58
69
|
{
|
|
59
|
-
...
|
|
70
|
+
...e,
|
|
60
71
|
defaultSelection: 6,
|
|
61
72
|
currentPeriod: 3,
|
|
62
|
-
onSelectWeek:
|
|
73
|
+
onSelectWeek: o,
|
|
63
74
|
optionsHeader: "Kies een planning - Blok 3"
|
|
64
75
|
}
|
|
65
76
|
),
|
|
66
77
|
/* @__PURE__ */ t(
|
|
67
|
-
|
|
78
|
+
n,
|
|
68
79
|
{
|
|
69
|
-
...
|
|
80
|
+
...e,
|
|
70
81
|
defaultSelection: 13,
|
|
71
82
|
currentPeriod: 4,
|
|
72
|
-
onSelectWeek:
|
|
83
|
+
onSelectWeek: o,
|
|
73
84
|
optionsHeader: "Kies een planning - Blok 4"
|
|
74
85
|
}
|
|
75
86
|
),
|
|
76
87
|
/* @__PURE__ */ t(
|
|
77
|
-
|
|
88
|
+
n,
|
|
78
89
|
{
|
|
79
|
-
...
|
|
90
|
+
...e,
|
|
80
91
|
defaultSelection: 23,
|
|
81
92
|
currentPeriod: 5,
|
|
82
|
-
onSelectWeek:
|
|
93
|
+
onSelectWeek: o,
|
|
83
94
|
optionsHeader: "Kies een planning - Blok 5"
|
|
84
95
|
}
|
|
85
96
|
),
|
|
86
97
|
/* @__PURE__ */ t(
|
|
87
|
-
|
|
98
|
+
n,
|
|
88
99
|
{
|
|
89
|
-
...
|
|
100
|
+
...e,
|
|
90
101
|
defaultSelection: 28,
|
|
91
102
|
currentPeriod: 6,
|
|
92
|
-
onSelectWeek:
|
|
103
|
+
onSelectWeek: o,
|
|
93
104
|
optionsHeader: "Kies een planning - Blok 6"
|
|
94
105
|
}
|
|
95
106
|
),
|
|
96
107
|
/* @__PURE__ */ t(
|
|
97
|
-
|
|
108
|
+
n,
|
|
98
109
|
{
|
|
99
|
-
...
|
|
110
|
+
...e,
|
|
100
111
|
defaultSelection: 36,
|
|
101
|
-
onSelectWeek:
|
|
112
|
+
onSelectWeek: o,
|
|
102
113
|
optionsHeader: "Kies een planning - Zomer"
|
|
103
114
|
}
|
|
104
115
|
)
|
|
105
116
|
]
|
|
106
117
|
}
|
|
107
118
|
);
|
|
108
|
-
},
|
|
109
|
-
weeks:
|
|
119
|
+
}, i = {
|
|
120
|
+
weeks: d,
|
|
110
121
|
weekPrefix: "week",
|
|
111
122
|
periodLabels: ["Blok 1", "Blok 2", "Blok 3", "Blok 4", "Blok 5", "Blok 6", "Zomer"],
|
|
112
123
|
optionsHeader: "Kies een planning - Blok 1"
|
|
113
|
-
},
|
|
114
|
-
|
|
115
|
-
...
|
|
124
|
+
}, k = p.bind({});
|
|
125
|
+
k.args = {
|
|
126
|
+
...i
|
|
127
|
+
};
|
|
128
|
+
const u = (e) => {
|
|
129
|
+
const o = (a) => {
|
|
130
|
+
e.onSelectWeek(a);
|
|
131
|
+
}, l = c(null);
|
|
132
|
+
return /* @__PURE__ */ r(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
ref: l,
|
|
136
|
+
style: {
|
|
137
|
+
padding: "1rem",
|
|
138
|
+
backgroundColor: "#EEE",
|
|
139
|
+
display: "flex",
|
|
140
|
+
gap: "1rem",
|
|
141
|
+
alignItems: "flex-start",
|
|
142
|
+
flexDirection: "column"
|
|
143
|
+
},
|
|
144
|
+
children: [
|
|
145
|
+
/* @__PURE__ */ t(
|
|
146
|
+
n,
|
|
147
|
+
{
|
|
148
|
+
...e,
|
|
149
|
+
currentPeriod: 1,
|
|
150
|
+
onSelectWeek: o,
|
|
151
|
+
portalContainerRef: l,
|
|
152
|
+
optionContainerOffset: [-200, -250]
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ t(
|
|
156
|
+
n,
|
|
157
|
+
{
|
|
158
|
+
...e,
|
|
159
|
+
defaultSelection: 45,
|
|
160
|
+
currentPeriod: 2,
|
|
161
|
+
onSelectWeek: o,
|
|
162
|
+
optionsHeader: "Kies een planning - Blok 2",
|
|
163
|
+
portalContainerRef: l,
|
|
164
|
+
optionContainerOffset: [-200, -250]
|
|
165
|
+
}
|
|
166
|
+
),
|
|
167
|
+
/* @__PURE__ */ t(
|
|
168
|
+
n,
|
|
169
|
+
{
|
|
170
|
+
...e,
|
|
171
|
+
defaultSelection: 6,
|
|
172
|
+
currentPeriod: 3,
|
|
173
|
+
onSelectWeek: o,
|
|
174
|
+
optionsHeader: "Kies een planning - Blok 3",
|
|
175
|
+
portalContainerRef: l,
|
|
176
|
+
optionContainerOffset: [-200, -250]
|
|
177
|
+
}
|
|
178
|
+
)
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
}, f = u.bind({});
|
|
183
|
+
f.args = {
|
|
184
|
+
...i
|
|
116
185
|
};
|
|
117
186
|
export {
|
|
118
|
-
|
|
119
|
-
|
|
187
|
+
f as InAPortal,
|
|
188
|
+
k as WeekSelectorExample,
|
|
189
|
+
g as default
|
|
120
190
|
};
|
|
121
191
|
//# sourceMappingURL=WeekSelector.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekSelector.stories.js","sources":["../../../src/components/WeekSelector/WeekSelector.stories.tsx"],"sourcesContent":["import type { Meta, StoryFn } from '@storybook/react';\r\nimport type { WeekSelectorProps } from 'components/WeekSelector';\r\n\r\nimport { mockWeeks } from './mockdata';\r\n\r\nimport { WeekSelector } from 'components/WeekSelector';\r\n\r\nconst codeString = `<WeekSelector \r\n weeks={Object-with-periodnumbers-with-array-of-weeks-in-period};\r\n currentPeriod?={number};\r\n defaultSelection?={number};\r\n weekPrefix={string};\r\n periodLabels={string[]};\r\n optionsHeader={string};\r\n onSelectWeek={(weeknumber: {number}) => void};\r\n />`;\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n title: 'Molecules/WeekSelector',\r\n component: WeekSelector,\r\n argTypes: {\r\n onSelectWeek: {\r\n action: 'selected week',\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n currentPeriod: { table: { disable: true } },\r\n defaultSelection: { table: { disable: true } },\r\n },\r\n parameters: {\r\n inspectComponent: WeekSelector,\r\n codeString: codeString,\r\n },\r\n} as Meta<WeekSelectorProps>;\r\n\r\nconst Template: StoryFn<WeekSelectorProps> = (args) => {\r\n const handleSelectWeek = (weekNumber: number) => {\r\n args.onSelectWeek(weekNumber);\r\n };\r\n\r\n return (\r\n <div\r\n style={{\r\n padding: '1rem',\r\n backgroundColor: '#EEE',\r\n display: 'flex',\r\n gap: '1rem',\r\n alignItems: 'flex-start',\r\n flexDirection: 'column',\r\n }}\r\n >\r\n <WeekSelector {...args} currentPeriod={1} onSelectWeek={handleSelectWeek} />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={45}\r\n currentPeriod={2}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 2\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={6}\r\n currentPeriod={3}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 3\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={13}\r\n currentPeriod={4}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 4\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={23}\r\n currentPeriod={5}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 5\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={28}\r\n currentPeriod={6}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 6\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={36}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Zomer\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nconst defaultArgs: Partial<WeekSelectorProps> = {\r\n weeks: mockWeeks,\r\n weekPrefix: 'week',\r\n periodLabels: ['Blok 1', 'Blok 2', 'Blok 3', 'Blok 4', 'Blok 5', 'Blok 6', 'Zomer'],\r\n optionsHeader: 'Kies een planning - Blok 1',\r\n};\r\n\r\nexport const WeekSelectorExample = Template.bind({});\r\n\r\nWeekSelectorExample.args = {\r\n ...defaultArgs,\r\n};\r\n"],"names":["codeString","WeekSelector_stories","WeekSelector","Template","args","handleSelectWeek","weekNumber","jsxs","jsx","defaultArgs","mockWeeks","WeekSelectorExample"],"mappings":"
|
|
1
|
+
{"version":3,"file":"WeekSelector.stories.js","sources":["../../../src/components/WeekSelector/WeekSelector.stories.tsx"],"sourcesContent":["import { useRef } from 'react';\r\n\r\nimport type { Meta, StoryFn } from '@storybook/react';\r\nimport type { WeekSelectorProps } from 'components/WeekSelector';\r\n\r\nimport { mockWeeks } from './mockdata';\r\n\r\nimport { WeekSelector } from 'components/WeekSelector';\r\n\r\nconst codeString = `<WeekSelector \r\n weeks={Object-with-periodnumbers-with-array-of-weeks-in-period};\r\n currentPeriod?={number};\r\n defaultSelection?={number};\r\n weekPrefix={string};\r\n periodLabels={string[]};\r\n optionsHeader={string};\r\n onSelectWeek={(weeknumber: {number}) => void};\r\n />`;\r\n\r\n// eslint-disable-next-line import/no-default-export\r\nexport default {\r\n title: 'Molecules/WeekSelector',\r\n component: WeekSelector,\r\n argTypes: {\r\n onSelectWeek: {\r\n action: 'selected week',\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n portalContainerRef: {\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n optionContainerOffset: {\r\n table: {\r\n disable: true,\r\n },\r\n },\r\n currentPeriod: { table: { disable: true } },\r\n defaultSelection: { table: { disable: true } },\r\n },\r\n parameters: {\r\n inspectComponent: WeekSelector,\r\n codeString: codeString,\r\n },\r\n} as Meta<WeekSelectorProps>;\r\n\r\nconst Template: StoryFn<WeekSelectorProps> = (args) => {\r\n const handleSelectWeek = (weekNumber: number) => {\r\n args.onSelectWeek(weekNumber);\r\n };\r\n\r\n return (\r\n <div\r\n style={{\r\n padding: '1rem',\r\n backgroundColor: '#EEE',\r\n display: 'flex',\r\n gap: '1rem',\r\n alignItems: 'flex-start',\r\n flexDirection: 'column',\r\n }}\r\n >\r\n <WeekSelector {...args} currentPeriod={1} onSelectWeek={handleSelectWeek} />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={45}\r\n currentPeriod={2}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 2\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={6}\r\n currentPeriod={3}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 3\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={13}\r\n currentPeriod={4}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 4\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={23}\r\n currentPeriod={5}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 5\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={28}\r\n currentPeriod={6}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 6\"\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={36}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Zomer\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nconst defaultArgs: Partial<WeekSelectorProps> = {\r\n weeks: mockWeeks,\r\n weekPrefix: 'week',\r\n periodLabels: ['Blok 1', 'Blok 2', 'Blok 3', 'Blok 4', 'Blok 5', 'Blok 6', 'Zomer'],\r\n optionsHeader: 'Kies een planning - Blok 1',\r\n};\r\n\r\nexport const WeekSelectorExample = Template.bind({});\r\n\r\nWeekSelectorExample.args = {\r\n ...defaultArgs,\r\n};\r\n\r\nconst TemplateWithRef: StoryFn<WeekSelectorProps> = (args) => {\r\n const handleSelectWeek = (weekNumber: number) => {\r\n args.onSelectWeek(weekNumber);\r\n };\r\n\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n style={{\r\n padding: '1rem',\r\n backgroundColor: '#EEE',\r\n display: 'flex',\r\n gap: '1rem',\r\n alignItems: 'flex-start',\r\n flexDirection: 'column',\r\n }}\r\n >\r\n <WeekSelector\r\n {...args}\r\n currentPeriod={1}\r\n onSelectWeek={handleSelectWeek}\r\n portalContainerRef={containerRef}\r\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\r\n optionContainerOffset={[-200, -250]}\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={45}\r\n currentPeriod={2}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 2\"\r\n portalContainerRef={containerRef}\r\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\r\n optionContainerOffset={[-200, -250]}\r\n />\r\n <WeekSelector\r\n {...args}\r\n defaultSelection={6}\r\n currentPeriod={3}\r\n onSelectWeek={handleSelectWeek}\r\n optionsHeader=\"Kies een planning - Blok 3\"\r\n portalContainerRef={containerRef}\r\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\r\n optionContainerOffset={[-200, -250]}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport const InAPortal = TemplateWithRef.bind({});\r\n\r\nInAPortal.args = {\r\n ...defaultArgs,\r\n};\r\n"],"names":["codeString","WeekSelector_stories","WeekSelector","Template","args","handleSelectWeek","weekNumber","jsxs","jsx","defaultArgs","mockWeeks","WeekSelectorExample","TemplateWithRef","containerRef","useRef","InAPortal"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as o, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { Icon as s } from "../../Icon/Icon.js";
|
|
3
|
-
import { s as n } from "../../../WeekSelector.module-
|
|
3
|
+
import { s as n } from "../../../WeekSelector.module-D9MD4nVJ.js";
|
|
4
4
|
const m = ({ label: e, onClick: t }) => /* @__PURE__ */ o(
|
|
5
5
|
"button",
|
|
6
6
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as s } from "react/jsx-runtime";
|
|
2
2
|
import { c as f } from "../../../clsx-OuTLNxxd.js";
|
|
3
|
-
import { s as a } from "../../../WeekSelector.module-
|
|
3
|
+
import { s as a } from "../../../WeekSelector.module-D9MD4nVJ.js";
|
|
4
4
|
const h = ({
|
|
5
5
|
periodIndex: i,
|
|
6
6
|
weeks: d,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekSelectorOption.js","sources":["../../../../src/components/WeekSelector/components/WeekSelectorOption.tsx"],"sourcesContent":["import { clsx } from 'clsx';\r\n\r\nimport type { PeriodWeek } from 'components/WeekSelector/WeekSelector';\r\n\r\nimport styles from 'components/WeekSelector/WeekSelector.module.css';\r\nexport interface WeekSelectorOptionProps {\r\n periodIndex: string;\r\n weeks: Record<string, PeriodWeek[]>;\r\n selectedOption: number | null;\r\n disabled?: boolean;\r\n setSelectedOption: (weekNumber: number) => void;\r\n onSelectWeek: (weeknumber: number) => void;\r\n setIsOpen: (isOpen: boolean) => void;\r\n}\r\n\r\nexport const WeekSelectorOption = ({\r\n periodIndex,\r\n weeks,\r\n selectedOption,\r\n disabled,\r\n setSelectedOption,\r\n onSelectWeek,\r\n setIsOpen,\r\n}: WeekSelectorOptionProps) => {\r\n const handleKeyDown = (event:
|
|
1
|
+
{"version":3,"file":"WeekSelectorOption.js","sources":["../../../../src/components/WeekSelector/components/WeekSelectorOption.tsx"],"sourcesContent":["import { clsx } from 'clsx';\r\n\r\nimport type { KeyboardEvent } from 'react';\r\nimport type { PeriodWeek } from 'components/WeekSelector/WeekSelector';\r\n\r\nimport styles from 'components/WeekSelector/WeekSelector.module.css';\r\nexport interface WeekSelectorOptionProps {\r\n periodIndex: string;\r\n weeks: Record<string, PeriodWeek[]>;\r\n selectedOption: number | null;\r\n disabled?: boolean;\r\n setSelectedOption: (weekNumber: number) => void;\r\n onSelectWeek: (weeknumber: number) => void;\r\n setIsOpen: (isOpen: boolean) => void;\r\n}\r\n\r\nexport const WeekSelectorOption = ({\r\n periodIndex,\r\n weeks,\r\n selectedOption,\r\n disabled,\r\n setSelectedOption,\r\n onSelectWeek,\r\n setIsOpen,\r\n}: WeekSelectorOptionProps) => {\r\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\r\n const current = event.currentTarget;\r\n\r\n switch (event.key) {\r\n case 'ArrowRight': {\r\n event.preventDefault();\r\n let nextElement = current.nextElementSibling as HTMLButtonElement | null;\r\n while (nextElement && nextElement.disabled) {\r\n nextElement = nextElement.nextElementSibling as HTMLButtonElement | null;\r\n }\r\n nextElement?.focus();\r\n break;\r\n }\r\n case 'ArrowLeft': {\r\n event.preventDefault();\r\n let prevElement = current.previousElementSibling as HTMLButtonElement | null;\r\n while (prevElement && prevElement.disabled) {\r\n prevElement = prevElement.previousElementSibling as HTMLButtonElement | null;\r\n }\r\n prevElement?.focus();\r\n break;\r\n }\r\n case 'ArrowDown': {\r\n event.preventDefault();\r\n const currentIndex = Array.from(current.parentElement?.children ?? []).indexOf(current);\r\n let nextRow = current.parentElement?.nextElementSibling as HTMLElement | null;\r\n while (nextRow) {\r\n const candidate = nextRow.children[currentIndex] as HTMLButtonElement | undefined;\r\n if (candidate && !candidate.disabled) {\r\n candidate.focus();\r\n break;\r\n }\r\n nextRow = nextRow.nextElementSibling as HTMLElement | null;\r\n }\r\n break;\r\n }\r\n case 'ArrowUp': {\r\n event.preventDefault();\r\n const currentIndex = Array.from(current.parentElement?.children ?? []).indexOf(current);\r\n let prevRow = current.parentElement?.previousElementSibling as HTMLElement | null;\r\n while (prevRow) {\r\n const candidate = prevRow.children[currentIndex] as HTMLButtonElement | undefined;\r\n if (candidate && !candidate.disabled) {\r\n candidate.focus();\r\n break;\r\n }\r\n prevRow = prevRow.previousElementSibling as HTMLElement | null;\r\n }\r\n break;\r\n }\r\n case 'Tab':\r\n setIsOpen(false);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n return (\r\n <div key={periodIndex} className={styles['week-selector-option-week-row']}>\r\n {weeks[periodIndex].map((week) => (\r\n <button\r\n key={week.weekNumber}\r\n type=\"button\"\r\n className={clsx(styles['week-selector-option-week'], [\r\n selectedOption === week.calendarWeekNumber && styles['week-selector-option-week--selected'],\r\n ])}\r\n disabled={week.isBlocked || disabled}\r\n onKeyDown={handleKeyDown}\r\n onClick={() => {\r\n if (!week.isBlocked) {\r\n setSelectedOption(week.calendarWeekNumber);\r\n onSelectWeek(week.calendarWeekNumber);\r\n setIsOpen(false);\r\n }\r\n }}\r\n autoFocus={selectedOption === week.calendarWeekNumber}\r\n >\r\n {week.calendarWeekNumber}\r\n </button>\r\n ))}\r\n </div>\r\n );\r\n};\r\n"],"names":["WeekSelectorOption","periodIndex","weeks","selectedOption","disabled","setSelectedOption","onSelectWeek","setIsOpen","handleKeyDown","event","current","nextElement","prevElement","currentIndex","nextRow","candidate","prevRow","jsx","styles","week","clsx"],"mappings":";;;AAgBO,MAAMA,IAAqB,CAAC;AAAA,EACjC,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AACF,MAA+B;AAC7B,QAAMC,IAAgB,CAACC,MAA4C;AACjE,UAAMC,IAAUD,EAAM;AAEtB,YAAQA,EAAM,KAAA;AAAA,MACZ,KAAK,cAAc;AACjB,QAAAA,EAAM,eAAA;AACN,YAAIE,IAAcD,EAAQ;AAC1B,eAAOC,KAAeA,EAAY;AAChC,UAAAA,IAAcA,EAAY;AAE5B,QAAAA,GAAa,MAAA;AACb;AAAA,MACF;AAAA,MACA,KAAK,aAAa;AAChB,QAAAF,EAAM,eAAA;AACN,YAAIG,IAAcF,EAAQ;AAC1B,eAAOE,KAAeA,EAAY;AAChC,UAAAA,IAAcA,EAAY;AAE5B,QAAAA,GAAa,MAAA;AACb;AAAA,MACF;AAAA,MACA,KAAK,aAAa;AAChB,QAAAH,EAAM,eAAA;AACN,cAAMI,IAAe,MAAM,KAAKH,EAAQ,eAAe,YAAY,CAAA,CAAE,EAAE,QAAQA,CAAO;AACtF,YAAII,IAAUJ,EAAQ,eAAe;AACrC,eAAOI,KAAS;AACd,gBAAMC,IAAYD,EAAQ,SAASD,CAAY;AAC/C,cAAIE,KAAa,CAACA,EAAU,UAAU;AACpC,YAAAA,EAAU,MAAA;AACV;AAAA,UACF;AACA,UAAAD,IAAUA,EAAQ;AAAA,QACpB;AACA;AAAA,MACF;AAAA,MACA,KAAK,WAAW;AACd,QAAAL,EAAM,eAAA;AACN,cAAMI,IAAe,MAAM,KAAKH,EAAQ,eAAe,YAAY,CAAA,CAAE,EAAE,QAAQA,CAAO;AACtF,YAAIM,IAAUN,EAAQ,eAAe;AACrC,eAAOM,KAAS;AACd,gBAAMD,IAAYC,EAAQ,SAASH,CAAY;AAC/C,cAAIE,KAAa,CAACA,EAAU,UAAU;AACpC,YAAAA,EAAU,MAAA;AACV;AAAA,UACF;AACA,UAAAC,IAAUA,EAAQ;AAAA,QACpB;AACA;AAAA,MACF;AAAA,MACA,KAAK;AACH,QAAAT,EAAU,EAAK;AACf;AAAA,IAEA;AAAA,EAEN;AACA,SACE,gBAAAU,EAAC,OAAA,EAAsB,WAAWC,EAAO,+BAA+B,GACrE,UAAAhB,EAAMD,CAAW,EAAE,IAAI,CAACkB,MACvB,gBAAAF;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,MAAK;AAAA,MACL,WAAWG,EAAKF,EAAO,2BAA2B,GAAG;AAAA,QACnDf,MAAmBgB,EAAK,sBAAsBD,EAAO,qCAAqC;AAAA,MAAA,CAC3F;AAAA,MACD,UAAUC,EAAK,aAAaf;AAAA,MAC5B,WAAWI;AAAA,MACX,SAAS,MAAM;AACb,QAAKW,EAAK,cACRd,EAAkBc,EAAK,kBAAkB,GACzCb,EAAaa,EAAK,kBAAkB,GACpCZ,EAAU,EAAK;AAAA,MAEnB;AAAA,MACA,WAAWJ,MAAmBgB,EAAK;AAAA,MAElC,UAAAA,EAAK;AAAA,IAAA;AAAA,IAhBDA,EAAK;AAAA,EAAA,CAkBb,KArBOlB,CAsBV;AAEJ;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
1
2
|
export interface WeekSelectorOptionContainerProps {
|
|
2
3
|
header: string;
|
|
3
4
|
periodLabels?: string[];
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
children: React.ReactNode;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
style?: CSSProperties;
|
|
7
7
|
}
|
|
8
8
|
export declare const WeekSelectorOptionContainer: import('react').ForwardRefExoticComponent<WeekSelectorOptionContainerProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -1,28 +1,17 @@
|
|
|
1
1
|
import { jsxs as t, jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { c as m } from "../../../clsx-OuTLNxxd.js";
|
|
3
2
|
import { forwardRef as d } from "react";
|
|
4
|
-
import { s as e } from "../../../WeekSelector.module-
|
|
5
|
-
const
|
|
6
|
-
({ header:
|
|
7
|
-
"
|
|
8
|
-
{
|
|
9
|
-
|
|
10
|
-
className:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
style: { top: a },
|
|
14
|
-
children: [
|
|
15
|
-
/* @__PURE__ */ o("h2", { className: e["week-selector-option-header"], children: r }),
|
|
16
|
-
/* @__PURE__ */ t("div", { className: e["week-selector-option-table"], children: [
|
|
17
|
-
/* @__PURE__ */ o("div", { className: e["week-selector-option-table-labels"], children: i?.map((s, p) => /* @__PURE__ */ o("div", { className: e["week-selector-option-table-label"], children: s }, `${s}-${p}`)) }),
|
|
18
|
-
/* @__PURE__ */ o("div", { className: e["week-selector-option-week-grid"], children: c })
|
|
19
|
-
] })
|
|
20
|
-
]
|
|
21
|
-
}
|
|
22
|
-
)
|
|
3
|
+
import { s as e } from "../../../WeekSelector.module-D9MD4nVJ.js";
|
|
4
|
+
const m = d(
|
|
5
|
+
({ header: s, periodLabels: i, children: l, style: a }, c) => /* @__PURE__ */ t("div", { ref: c, className: e["week-selector-option-container"], style: a, children: [
|
|
6
|
+
/* @__PURE__ */ o("h2", { className: e["week-selector-option-header"], children: s }),
|
|
7
|
+
/* @__PURE__ */ t("div", { className: e["week-selector-option-table"], children: [
|
|
8
|
+
/* @__PURE__ */ o("div", { className: e["week-selector-option-table-labels"], children: i?.map((r, n) => /* @__PURE__ */ o("div", { className: e["week-selector-option-table-label"], children: r }, `${r}-${n}`)) }),
|
|
9
|
+
/* @__PURE__ */ o("div", { className: e["week-selector-option-week-grid"], children: l })
|
|
10
|
+
] })
|
|
11
|
+
] })
|
|
23
12
|
);
|
|
24
|
-
|
|
13
|
+
m.displayName = "WeekSelectorOptionContainer";
|
|
25
14
|
export {
|
|
26
|
-
|
|
15
|
+
m as WeekSelectorOptionContainer
|
|
27
16
|
};
|
|
28
17
|
//# sourceMappingURL=WeekSelectorOptionContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekSelectorOptionContainer.js","sources":["../../../../src/components/WeekSelector/components/WeekSelectorOptionContainer.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"WeekSelectorOptionContainer.js","sources":["../../../../src/components/WeekSelector/components/WeekSelectorOptionContainer.tsx"],"sourcesContent":["import { forwardRef } from 'react';\r\n\r\nimport type { CSSProperties, ReactNode } from 'react';\r\n\r\nimport styles from 'components/WeekSelector/WeekSelector.module.css';\r\n\r\nexport interface WeekSelectorOptionContainerProps {\r\n header: string;\r\n periodLabels?: string[];\r\n children: ReactNode;\r\n style?: CSSProperties;\r\n}\r\n\r\nexport const WeekSelectorOptionContainer = forwardRef<HTMLDivElement, WeekSelectorOptionContainerProps>(\r\n ({ header, periodLabels, children, style }, ref) => {\r\n return (\r\n <div ref={ref} className={styles['week-selector-option-container']} style={style}>\r\n <h2 className={styles['week-selector-option-header']}>{header}</h2>\r\n <div className={styles['week-selector-option-table']}>\r\n <div className={styles['week-selector-option-table-labels']}>\r\n {periodLabels?.map((label, index) => (\r\n <div key={`${label}-${index}`} className={styles['week-selector-option-table-label']}>\r\n {label}\r\n </div>\r\n ))}\r\n </div>\r\n <div className={styles['week-selector-option-week-grid']}>{children}</div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nWeekSelectorOptionContainer.displayName = 'WeekSelectorOptionContainer';\r\n"],"names":["WeekSelectorOptionContainer","forwardRef","header","periodLabels","children","style","ref","styles","jsx","jsxs","label","index"],"mappings":";;;AAaO,MAAMA,IAA8BC;AAAA,EACzC,CAAC,EAAE,QAAAC,GAAQ,cAAAC,GAAc,UAAAC,GAAU,OAAAC,EAAA,GAASC,wBAEvC,OAAA,EAAI,KAAAA,GAAU,WAAWC,EAAO,gCAAgC,GAAG,OAAAF,GAClE,UAAA;AAAA,IAAA,gBAAAG,EAAC,MAAA,EAAG,WAAWD,EAAO,6BAA6B,GAAI,UAAAL,GAAO;AAAA,IAC9D,gBAAAO,EAAC,OAAA,EAAI,WAAWF,EAAO,4BAA4B,GACjD,UAAA;AAAA,MAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,mCAAmC,GACvD,UAAAJ,GAAc,IAAI,CAACO,GAAOC,MACzB,gBAAAH,EAAC,SAA8B,WAAWD,EAAO,kCAAkC,GAChF,UAAAG,EAAA,GADO,GAAGA,CAAK,IAAIC,CAAK,EAE3B,CACD,EAAA,CACH;AAAA,wBACC,OAAA,EAAI,WAAWJ,EAAO,gCAAgC,GAAI,UAAAH,EAAA,CAAS;AAAA,IAAA,EAAA,CACtE;AAAA,EAAA,GACF;AAGN;AAEAJ,EAA4B,cAAc;"}
|
package/dist/components/index.js
CHANGED
|
@@ -36,7 +36,7 @@ import { Label as so } from "./Label/Label.js";
|
|
|
36
36
|
import { MenuLink as Co } from "./MenuLink/MenuLink.js";
|
|
37
37
|
import { MetaDataList as Fo } from "./MetaDataList/MetaDataList.js";
|
|
38
38
|
import { ModalDialog as Mo } from "./ModalDialog/ModalDialog.js";
|
|
39
|
-
import { M as Lo } from "../TablePlugin-
|
|
39
|
+
import { M as Lo } from "../TablePlugin-Cvw0NmoH.js";
|
|
40
40
|
import { MultiSelectBox as Ro } from "./MultiSelectBox/MultiSelectBox.js";
|
|
41
41
|
import { Notification as yo } from "./Notification/Notification.js";
|
|
42
42
|
import { OverlayCloseButton as To } from "./OverlayCloseButton/OverlayCloseButton.js";
|