@seij/common-ui 0.0.1
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/LICENSE +201 -0
- package/README.md +7 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +113 -0
- package/dist/index.js.map +1 -0
- package/dist/init/SeijUIProvider.d.ts +15 -0
- package/dist/init/SeijUIProvider.d.ts.map +1 -0
- package/dist/init/SeijUIProvider.js +20 -0
- package/dist/init/SeijUIProvider.js.map +1 -0
- package/dist/lib/applicationshell/ApplicationShell.d.ts +13 -0
- package/dist/lib/applicationshell/ApplicationShell.d.ts.map +1 -0
- package/dist/lib/applicationshell/ApplicationShell.js +110 -0
- package/dist/lib/applicationshell/ApplicationShell.js.map +1 -0
- package/dist/lib/applicationshell/ApplicationShell.types.d.ts +9 -0
- package/dist/lib/applicationshell/ApplicationShell.types.d.ts.map +1 -0
- package/dist/lib/applicationshell/TitleBar.d.ts +9 -0
- package/dist/lib/applicationshell/TitleBar.d.ts.map +1 -0
- package/dist/lib/applicationshell/TitleBar.js +100 -0
- package/dist/lib/applicationshell/TitleBar.js.map +1 -0
- package/dist/lib/badge/Badge.d.ts +5 -0
- package/dist/lib/badge/Badge.d.ts.map +1 -0
- package/dist/lib/badge/Badge.js +9 -0
- package/dist/lib/badge/Badge.js.map +1 -0
- package/dist/lib/button/Button.d.ts +16 -0
- package/dist/lib/button/Button.d.ts.map +1 -0
- package/dist/lib/button/Button.js +15 -0
- package/dist/lib/button/Button.js.map +1 -0
- package/dist/lib/button_bar/ButtonBar.d.ts +5 -0
- package/dist/lib/button_bar/ButtonBar.d.ts.map +1 -0
- package/dist/lib/button_bar/ButtonBar.js +26 -0
- package/dist/lib/button_bar/ButtonBar.js.map +1 -0
- package/dist/lib/common-ui.d.ts +5 -0
- package/dist/lib/common-ui.d.ts.map +1 -0
- package/dist/lib/common-ui.js +9 -0
- package/dist/lib/common-ui.js.map +1 -0
- package/dist/lib/commons/currencysymbol.d.ts +2 -0
- package/dist/lib/commons/currencysymbol.d.ts.map +1 -0
- package/dist/lib/commons/currencysymbol.js +15 -0
- package/dist/lib/commons/currencysymbol.js.map +1 -0
- package/dist/lib/commons/obfuscatelabel.d.ts +17 -0
- package/dist/lib/commons/obfuscatelabel.d.ts.map +1 -0
- package/dist/lib/commons/obfuscatelabel.js +23 -0
- package/dist/lib/commons/obfuscatelabel.js.map +1 -0
- package/dist/lib/data_table/DataTable.d.ts +32 -0
- package/dist/lib/data_table/DataTable.d.ts.map +1 -0
- package/dist/lib/data_table/DataTable.js +40 -0
- package/dist/lib/data_table/DataTable.js.map +1 -0
- package/dist/lib/datatabledynamic/DataTableDynamic.d.ts +14 -0
- package/dist/lib/datatabledynamic/DataTableDynamic.d.ts.map +1 -0
- package/dist/lib/datatabledynamic/DataTableDynamic.js +18 -0
- package/dist/lib/datatabledynamic/DataTableDynamic.js.map +1 -0
- package/dist/lib/devise/DeviseContext.d.ts +2 -0
- package/dist/lib/devise/DeviseContext.d.ts.map +1 -0
- package/dist/lib/devise/DeviseContext.js +6 -0
- package/dist/lib/devise/DeviseContext.js.map +1 -0
- package/dist/lib/error_notifier/ErrorNotifier.d.ts +6 -0
- package/dist/lib/error_notifier/ErrorNotifier.d.ts.map +1 -0
- package/dist/lib/error_notifier/ErrorNotifier.js +29 -0
- package/dist/lib/error_notifier/ErrorNotifier.js.map +1 -0
- package/dist/lib/errorbox/ErrorBox.d.ts +6 -0
- package/dist/lib/errorbox/ErrorBox.d.ts.map +1 -0
- package/dist/lib/errorbox/ErrorBox.js +26 -0
- package/dist/lib/errorbox/ErrorBox.js.map +1 -0
- package/dist/lib/form_layout/FormLayout.d.ts +23 -0
- package/dist/lib/form_layout/FormLayout.d.ts.map +1 -0
- package/dist/lib/form_layout/FormLayout.js +102 -0
- package/dist/lib/form_layout/FormLayout.js.map +1 -0
- package/dist/lib/i18n/i18n.detect.d.ts +10 -0
- package/dist/lib/i18n/i18n.detect.d.ts.map +1 -0
- package/dist/lib/i18n/i18n.detect.js +30 -0
- package/dist/lib/i18n/i18n.detect.js.map +1 -0
- package/dist/lib/i18n/i18n.factory.d.ts +3 -0
- package/dist/lib/i18n/i18n.factory.d.ts.map +1 -0
- package/dist/lib/i18n/i18n.factory.js +70 -0
- package/dist/lib/i18n/i18n.factory.js.map +1 -0
- package/dist/lib/i18n/i18n.react.d.ts +19 -0
- package/dist/lib/i18n/i18n.react.d.ts.map +1 -0
- package/dist/lib/i18n/i18n.react.js +29 -0
- package/dist/lib/i18n/i18n.react.js.map +1 -0
- package/dist/lib/i18n/i18n.types.d.ts +28 -0
- package/dist/lib/i18n/i18n.types.d.ts.map +1 -0
- package/dist/lib/i18n/index.d.ts +3 -0
- package/dist/lib/i18n/index.d.ts.map +1 -0
- package/dist/lib/info_box/InfoBox.d.ts +7 -0
- package/dist/lib/info_box/InfoBox.d.ts.map +1 -0
- package/dist/lib/info_box/InfoBox.js +13 -0
- package/dist/lib/info_box/InfoBox.js.map +1 -0
- package/dist/lib/inlineedit/InlineEdit.d.ts +9 -0
- package/dist/lib/inlineedit/InlineEdit.d.ts.map +1 -0
- package/dist/lib/inlineedit/InlineEdit.js +47 -0
- package/dist/lib/inlineedit/InlineEdit.js.map +1 -0
- package/dist/lib/listview/ListView.d.ts +16 -0
- package/dist/lib/listview/ListView.d.ts.map +1 -0
- package/dist/lib/listview/ListView.js +100 -0
- package/dist/lib/listview/ListView.js.map +1 -0
- package/dist/lib/loader/Loader.d.ts +4 -0
- package/dist/lib/loader/Loader.d.ts.map +1 -0
- package/dist/lib/loader/Loader.js +9 -0
- package/dist/lib/loader/Loader.js.map +1 -0
- package/dist/lib/localdate/InputLocalDate.d.ts +17 -0
- package/dist/lib/localdate/InputLocalDate.d.ts.map +1 -0
- package/dist/lib/localdate/InputLocalDate.js +61 -0
- package/dist/lib/localdate/InputLocalDate.js.map +1 -0
- package/dist/lib/localdate/LabelLocalDate.d.ts +6 -0
- package/dist/lib/localdate/LabelLocalDate.d.ts.map +1 -0
- package/dist/lib/localdate/LabelLocalDate.js +9 -0
- package/dist/lib/localdate/LabelLocalDate.js.map +1 -0
- package/dist/lib/money/InputMoneyDec.d.ts +20 -0
- package/dist/lib/money/InputMoneyDec.d.ts.map +1 -0
- package/dist/lib/money/InputMoneyDec.js +24 -0
- package/dist/lib/money/InputMoneyDec.js.map +1 -0
- package/dist/lib/money/InputMoneyInt.d.ts +24 -0
- package/dist/lib/money/InputMoneyInt.d.ts.map +1 -0
- package/dist/lib/money/InputMoneyInt.js +24 -0
- package/dist/lib/money/InputMoneyInt.js.map +1 -0
- package/dist/lib/money/LabelMoneyDec.d.ts +33 -0
- package/dist/lib/money/LabelMoneyDec.d.ts.map +1 -0
- package/dist/lib/money/LabelMoneyDec.js +22 -0
- package/dist/lib/money/LabelMoneyDec.js.map +1 -0
- package/dist/lib/money/LabelMoneyInt.d.ts +33 -0
- package/dist/lib/money/LabelMoneyInt.d.ts.map +1 -0
- package/dist/lib/money/LabelMoneyInt.js +22 -0
- package/dist/lib/money/LabelMoneyInt.js.map +1 -0
- package/dist/lib/month/InputDurationMonths.d.ts +9 -0
- package/dist/lib/month/InputDurationMonths.d.ts.map +1 -0
- package/dist/lib/month/InputDurationMonths.js +22 -0
- package/dist/lib/month/InputDurationMonths.js.map +1 -0
- package/dist/lib/month/InputMonth.d.ts +13 -0
- package/dist/lib/month/InputMonth.d.ts.map +1 -0
- package/dist/lib/month/InputMonth.js +15 -0
- package/dist/lib/month/InputMonth.js.map +1 -0
- package/dist/lib/navigation/Navigation.d.ts +9 -0
- package/dist/lib/navigation/Navigation.d.ts.map +1 -0
- package/dist/lib/navigation/Navigation.js +38 -0
- package/dist/lib/navigation/Navigation.js.map +1 -0
- package/dist/lib/navigation/Navigation.types.d.ts +48 -0
- package/dist/lib/navigation/Navigation.types.d.ts.map +1 -0
- package/dist/lib/navigation/NavigationService.d.ts +8 -0
- package/dist/lib/navigation/NavigationService.d.ts.map +1 -0
- package/dist/lib/navigation/NavigationService.js +13 -0
- package/dist/lib/navigation/NavigationService.js.map +1 -0
- package/dist/lib/number/InputNumber.d.ts +22 -0
- package/dist/lib/number/InputNumber.d.ts.map +1 -0
- package/dist/lib/number/InputNumber.js +82 -0
- package/dist/lib/number/InputNumber.js.map +1 -0
- package/dist/lib/number/InputNumberDec.d.ts +16 -0
- package/dist/lib/number/InputNumberDec.d.ts.map +1 -0
- package/dist/lib/number/InputNumberDec.js +21 -0
- package/dist/lib/number/InputNumberDec.js.map +1 -0
- package/dist/lib/number/InputNumberInt.d.ts +19 -0
- package/dist/lib/number/InputNumberInt.d.ts.map +1 -0
- package/dist/lib/number/InputNumberInt.js +21 -0
- package/dist/lib/number/InputNumberInt.js.map +1 -0
- package/dist/lib/number/index.d.ts +4 -0
- package/dist/lib/number/index.d.ts.map +1 -0
- package/dist/lib/percent/InputPercent.d.ts +9 -0
- package/dist/lib/percent/InputPercent.d.ts.map +1 -0
- package/dist/lib/percent/InputPercent.js +29 -0
- package/dist/lib/percent/InputPercent.js.map +1 -0
- package/dist/lib/percent/LabelPercent.d.ts +8 -0
- package/dist/lib/percent/LabelPercent.d.ts.map +1 -0
- package/dist/lib/percent/LabelPercent.js +9 -0
- package/dist/lib/percent/LabelPercent.js.map +1 -0
- package/dist/lib/percent/LabelPercentInt.d.ts +4 -0
- package/dist/lib/percent/LabelPercentInt.d.ts.map +1 -0
- package/dist/lib/percent/LabelPercentInt.js +10 -0
- package/dist/lib/percent/LabelPercentInt.js.map +1 -0
- package/dist/lib/select/InputCombobox.d.ts +49 -0
- package/dist/lib/select/InputCombobox.d.ts.map +1 -0
- package/dist/lib/select/InputCombobox.js +42 -0
- package/dist/lib/select/InputCombobox.js.map +1 -0
- package/dist/lib/select/InputSelect.d.ts +22 -0
- package/dist/lib/select/InputSelect.d.ts.map +1 -0
- package/dist/lib/select/InputSelect.js +31 -0
- package/dist/lib/select/InputSelect.js.map +1 -0
- package/dist/lib/switchbutton/SwitchButton.d.ts +9 -0
- package/dist/lib/switchbutton/SwitchButton.d.ts.map +1 -0
- package/dist/lib/switchbutton/SwitchButton.js +18 -0
- package/dist/lib/switchbutton/SwitchButton.js.map +1 -0
- package/dist/lib/tabs/Tabs.d.ts +18 -0
- package/dist/lib/tabs/Tabs.d.ts.map +1 -0
- package/dist/lib/tabs/Tabs.js +30 -0
- package/dist/lib/tabs/Tabs.js.map +1 -0
- package/dist/lib/tabs/index.d.ts +2 -0
- package/dist/lib/tabs/index.d.ts.map +1 -0
- package/dist/lib/text/InputText.d.ts +12 -0
- package/dist/lib/text/InputText.d.ts.map +1 -0
- package/dist/lib/text/InputText.js +32 -0
- package/dist/lib/text/InputText.js.map +1 -0
- package/dist/lib/typography/description/Description.d.ts +4 -0
- package/dist/lib/typography/description/Description.d.ts.map +1 -0
- package/dist/lib/typography/description/Description.js +9 -0
- package/dist/lib/typography/description/Description.js.map +1 -0
- package/dist/lib/typography/description/index.d.ts +2 -0
- package/dist/lib/typography/description/index.d.ts.map +1 -0
- package/dist/lib/typography/index.d.ts +5 -0
- package/dist/lib/typography/index.d.ts.map +1 -0
- package/dist/lib/typography/label_and_description/LabelAndDescription.d.ts +5 -0
- package/dist/lib/typography/label_and_description/LabelAndDescription.d.ts.map +1 -0
- package/dist/lib/typography/label_and_description/LabelAndDescription.js +16 -0
- package/dist/lib/typography/label_and_description/LabelAndDescription.js.map +1 -0
- package/dist/lib/typography/label_and_description/index.d.ts +2 -0
- package/dist/lib/typography/label_and_description/index.d.ts.map +1 -0
- package/dist/lib/typography/sectiontitle/SectionTitle.d.ts +5 -0
- package/dist/lib/typography/sectiontitle/SectionTitle.d.ts.map +1 -0
- package/dist/lib/typography/sectiontitle/SectionTitle.js +8 -0
- package/dist/lib/typography/sectiontitle/SectionTitle.js.map +1 -0
- package/dist/lib/typography/todo/Todo.d.ts +5 -0
- package/dist/lib/typography/todo/Todo.d.ts.map +1 -0
- package/dist/lib/typography/todo/Todo.js +7 -0
- package/dist/lib/typography/todo/Todo.js.map +1 -0
- package/dist/lib/view_layout/ViewBody.d.ts +8 -0
- package/dist/lib/view_layout/ViewBody.d.ts.map +1 -0
- package/dist/lib/view_layout/ViewBody.js +8 -0
- package/dist/lib/view_layout/ViewBody.js.map +1 -0
- package/dist/lib/view_layout/ViewFooter.d.ts +10 -0
- package/dist/lib/view_layout/ViewFooter.d.ts.map +1 -0
- package/dist/lib/view_layout/ViewFooter.js +8 -0
- package/dist/lib/view_layout/ViewFooter.js.map +1 -0
- package/dist/lib/view_layout/ViewHeader.d.ts +5 -0
- package/dist/lib/view_layout/ViewHeader.d.ts.map +1 -0
- package/dist/lib/view_layout/ViewHeader.js +8 -0
- package/dist/lib/view_layout/ViewHeader.js.map +1 -0
- package/dist/lib/view_layout/ViewLayout.d.ts +16 -0
- package/dist/lib/view_layout/ViewLayout.d.ts.map +1 -0
- package/dist/lib/view_layout/ViewLayout.js +127 -0
- package/dist/lib/view_layout/ViewLayout.js.map +1 -0
- package/dist/lib/view_layout/ViewTitle.d.ts +21 -0
- package/dist/lib/view_layout/ViewTitle.d.ts.map +1 -0
- package/dist/lib/view_layout/ViewTitle.js +71 -0
- package/dist/lib/view_layout/ViewTitle.js.map +1 -0
- package/dist/lib/year/InputDurationYears.d.ts +9 -0
- package/dist/lib/year/InputDurationYears.d.ts.map +1 -0
- package/dist/lib/year/InputDurationYears.js +22 -0
- package/dist/lib/year/InputDurationYears.js.map +1 -0
- package/dist/lib/year/InputYear.d.ts +9 -0
- package/dist/lib/year/InputYear.d.ts.map +1 -0
- package/dist/lib/year/InputYear.js +21 -0
- package/dist/lib/year/InputYear.js.map +1 -0
- package/dist/locales/en.d.ts +8 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/en.js +41 -0
- package/dist/locales/en.js.map +1 -0
- package/dist/locales/fr.d.ts +8 -0
- package/dist/locales/fr.d.ts.map +1 -0
- package/dist/locales/fr.js +41 -0
- package/dist/locales/fr.js.map +1 -0
- package/dist/locales/interfaces.d.ts +11 -0
- package/dist/locales/interfaces.d.ts.map +1 -0
- package/dist/stories/utils/SeijUIProviderDecorator.d.ts +2 -0
- package/dist/stories/utils/SeijUIProviderDecorator.d.ts.map +1 -0
- package/dist/stories/utils/StoryComponentFrame.d.ts +11 -0
- package/dist/stories/utils/StoryComponentFrame.d.ts.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs as a, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { Select as h, Caption1 as s } from "@fluentui/react-components";
|
|
3
|
+
function u({
|
|
4
|
+
id: o,
|
|
5
|
+
value: n,
|
|
6
|
+
disabled: t = !1,
|
|
7
|
+
options: c,
|
|
8
|
+
onValueChange: l
|
|
9
|
+
}) {
|
|
10
|
+
var d;
|
|
11
|
+
const r = (d = c.find((e) => e.code === n)) == null ? void 0 : d.description;
|
|
12
|
+
return /* @__PURE__ */ a("div", { children: [
|
|
13
|
+
/* @__PURE__ */ i(
|
|
14
|
+
h,
|
|
15
|
+
{
|
|
16
|
+
id: o,
|
|
17
|
+
value: n,
|
|
18
|
+
onChange: (e, p) => {
|
|
19
|
+
l(p.value ?? "");
|
|
20
|
+
},
|
|
21
|
+
disabled: t,
|
|
22
|
+
children: c.map((e) => /* @__PURE__ */ i("option", { value: e.code, children: e.label }, e.code))
|
|
23
|
+
}
|
|
24
|
+
),
|
|
25
|
+
r && /* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(s, { children: r }) })
|
|
26
|
+
] });
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
u as InputSelect
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=InputSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputSelect.js","sources":["../../../src/lib/select/InputSelect.tsx"],"sourcesContent":["import { Caption1, Select } from \"@fluentui/react-components\";\n\nexport interface InputSelectOption {\n code: string;\n label: string;\n description?: string | null | undefined;\n}\nexport interface InputSelectProps<T extends InputSelectOption> {\n id?: string;\n /** Le code de la valeur sélectionnée. */\n value: string;\n /** Indique si le champ est désactivé */\n disabled?: boolean;\n /** La liste des options à afficher dans la liste déroulante. */\n options: T[];\n /** La fonction à appeler lorsque la valeur sélectionnée change. */\n onValueChange: (value: string) => void;\n}\n/**\n * Une combobox de sélection d'entrée avec une liste déroulante d'options.\n * @returns Un composant de combobox de sélection (sans saisie de texte possible).\n */\nexport function InputSelect<T extends InputSelectOption>({\n id,\n value,\n disabled = false,\n options,\n onValueChange,\n}: InputSelectProps<T>) {\n const description = options.find((it) => it.code === value)?.description;\n return (\n <div>\n <Select\n id={id}\n value={value}\n onChange={(ev, data) => {\n onValueChange(data.value ?? \"\");\n }}\n disabled={disabled}\n >\n {options.map((o) => (\n <option key={o.code} value={o.code}>\n {o.label}\n </option>\n ))}\n </Select>\n {description && (\n <div>\n <Caption1>{description}</Caption1>\n </div>\n )}\n </div>\n );\n}\n"],"names":["InputSelect","id","value","disabled","options","onValueChange","description","_a","it","jsx","Select","ev","data","o","Caption1"],"mappings":";;AAsBO,SAASA,EAAyC;AAAA,EACvD,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,eAAAC;AACF,GAAwB;;AACtB,QAAMC,KAAcC,IAAAH,EAAQ,KAAK,CAACI,MAAOA,EAAG,SAASN,CAAK,MAAtC,gBAAAK,EAAyC;AAC7D,2BACG,OAAA,EACC,UAAA;AAAA,IAAA,gBAAAE;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,IAAAT;AAAA,QACA,OAAAC;AAAA,QACA,UAAU,CAACS,GAAIC,MAAS;AACtB,UAAAP,EAAcO,EAAK,SAAS,EAAE;AAAA,QAChC;AAAA,QACA,UAAAT;AAAA,QAEC,UAAAC,EAAQ,IAAI,CAACS,MACZ,gBAAAJ,EAAC,UAAA,EAAoB,OAAOI,EAAE,MAC3B,UAAAA,EAAE,MAAA,GADQA,EAAE,IAEf,CACD;AAAA,MAAA;AAAA,IAAA;AAAA,IAEFP,KACC,gBAAAG,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACK,GAAA,EAAU,aAAY,EAAA,CACzB;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function SwitchButton({ value, label, labelTrue, labelFalse, onValueChange, disabled, }: {
|
|
2
|
+
value: boolean;
|
|
3
|
+
label?: string;
|
|
4
|
+
labelTrue?: string;
|
|
5
|
+
labelFalse?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
onValueChange: (next: boolean) => void;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=SwitchButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwitchButton.d.ts","sourceRoot":"","sources":["../../../src/lib/switchbutton/SwitchButton.tsx"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,aAAa,EACb,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,2CAMA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import { Switch as i } from "@fluentui/react-components";
|
|
3
|
+
function b({
|
|
4
|
+
value: n,
|
|
5
|
+
label: t,
|
|
6
|
+
labelTrue: e,
|
|
7
|
+
labelFalse: o,
|
|
8
|
+
onValueChange: a,
|
|
9
|
+
disabled: h
|
|
10
|
+
}) {
|
|
11
|
+
return /* @__PURE__ */ c(i, { checked: n, onChange: () => {
|
|
12
|
+
a(!n);
|
|
13
|
+
}, label: (n ? e : o) ?? t ?? "", disabled: h });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
b as SwitchButton
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=SwitchButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwitchButton.js","sources":["../../../src/lib/switchbutton/SwitchButton.tsx"],"sourcesContent":["import { Switch } from \"@fluentui/react-components\";\n\nexport function SwitchButton({\n value,\n label,\n labelTrue,\n labelFalse,\n onValueChange,\n disabled,\n}: {\n value: boolean;\n label?: string;\n labelTrue?: string;\n labelFalse?: string;\n disabled?: boolean;\n onValueChange: (next: boolean) => void;\n}) {\n const handleChange = () => {\n onValueChange(!value);\n };\n const finalLabel = (value ? labelTrue : labelFalse) ?? label ?? \"\";\n return <Switch checked={value} onChange={handleChange} label={finalLabel} disabled={disabled} />;\n}\n"],"names":["SwitchButton","value","label","labelTrue","labelFalse","onValueChange","disabled","jsx","Switch"],"mappings":";;AAEO,SAASA,EAAa;AAAA,EAC3B,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AACF,GAOG;AAKD,SAAO,gBAAAC,EAACC,KAAO,SAASP,GAAO,UAJV,MAAM;AACzB,IAAAI,EAAc,CAACJ,CAAK;AAAA,EACtB,GAEuD,QADnCA,IAAQE,IAAYC,MAAeF,KAAS,IACU,UAAAI,GAAoB;AAChG;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export declare const Tabs: ({ value, children, onChange, }: {
|
|
3
|
+
value: string | null;
|
|
4
|
+
children: ReactNode | ReactNode[];
|
|
5
|
+
onChange: (value: string | null) => void;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const TabsList: ({ children }: {
|
|
8
|
+
children: ReactNode | ReactNode[];
|
|
9
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare const TabsTab: ({ value, children }: {
|
|
11
|
+
value: string;
|
|
12
|
+
children: ReactNode | ReactNode[];
|
|
13
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const TabsPanel: ({ value, children }: {
|
|
15
|
+
value: string;
|
|
16
|
+
children: ReactNode | ReactNode[];
|
|
17
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
18
|
+
//# sourceMappingURL=Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/lib/tabs/Tabs.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AASrD,eAAO,MAAM,IAAI,GAAI,gCAIlB;IACD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1C,4CAMA,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,4CAW3E,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,qBAAqB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,4CAEhG,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,qBAAqB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,mDAIlG,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { TabList as s, Tab as u } from "@fluentui/react-components";
|
|
3
|
+
import b, { useContext as o } from "react";
|
|
4
|
+
const a = b.createContext({
|
|
5
|
+
currentTab: null,
|
|
6
|
+
onChange: () => {
|
|
7
|
+
}
|
|
8
|
+
}), m = ({
|
|
9
|
+
value: r,
|
|
10
|
+
children: e,
|
|
11
|
+
onChange: n
|
|
12
|
+
}) => /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t(a.Provider, { value: { currentTab: r, onChange: n }, children: e }) }), v = ({ children: r }) => {
|
|
13
|
+
const e = o(a);
|
|
14
|
+
return /* @__PURE__ */ t(
|
|
15
|
+
s,
|
|
16
|
+
{
|
|
17
|
+
selectedValue: e.currentTab,
|
|
18
|
+
onTabSelect: (n, c) => e.onChange(c.value),
|
|
19
|
+
vertical: !1,
|
|
20
|
+
children: r
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}, d = ({ value: r, children: e }) => /* @__PURE__ */ t(u, { value: r, children: e }), f = ({ value: r, children: e }) => o(a).currentTab !== r ? null : /* @__PURE__ */ t("div", { children: e });
|
|
24
|
+
export {
|
|
25
|
+
m as Tabs,
|
|
26
|
+
v as TabsList,
|
|
27
|
+
f as TabsPanel,
|
|
28
|
+
d as TabsTab
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../../src/lib/tabs/Tabs.tsx"],"sourcesContent":["import { Tab, TabList as TabListFluent } from \"@fluentui/react-components\";\nimport React, { ReactNode, useContext } from \"react\";\n\nconst TabsContext = React.createContext<{ currentTab: string | null; onChange: (value: string | null) => void }>({\n currentTab: null,\n onChange: () => {\n // Volontairement vide\n },\n});\n\nexport const Tabs = ({\n value,\n children,\n onChange,\n}: {\n value: string | null;\n children: ReactNode | ReactNode[];\n onChange: (value: string | null) => void;\n}) => {\n return (\n <div>\n <TabsContext.Provider value={{ currentTab: value, onChange: onChange }}>{children}</TabsContext.Provider>\n </div>\n );\n};\n\nexport const TabsList = ({ children }: { children: ReactNode | ReactNode[] }) => {\n const currentTab = useContext(TabsContext);\n return (\n <TabListFluent\n selectedValue={currentTab.currentTab}\n onTabSelect={(e, data) => currentTab.onChange(data.value as string | null)}\n vertical={false}\n >\n {children}\n </TabListFluent>\n );\n};\n\nexport const TabsTab = ({ value, children }: { value: string; children: ReactNode | ReactNode[] }) => {\n return <Tab value={value}>{children}</Tab>;\n};\n\nexport const TabsPanel = ({ value, children }: { value: string; children: ReactNode | ReactNode[] }) => {\n const currentTab = useContext(TabsContext);\n if (currentTab.currentTab !== value) return null;\n return <div>{children}</div>;\n};\n"],"names":["TabsContext","React","Tabs","value","children","onChange","jsx","TabsList","currentTab","useContext","TabListFluent","e","data","TabsTab","Tab","TabsPanel"],"mappings":";;;AAGA,MAAMA,IAAcC,EAAM,cAAuF;AAAA,EAC/G,YAAY;AAAA,EACZ,UAAU,MAAM;AAAA,EAEhB;AACF,CAAC,GAEYC,IAAO,CAAC;AAAA,EACnB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AACF,MAMI,gBAAAC,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACN,EAAY,UAAZ,EAAqB,OAAO,EAAE,YAAYG,GAAO,UAAAE,EAAA,GAAuB,UAAAD,GAAS,GACpF,GAISG,IAAW,CAAC,EAAE,UAAAH,QAAsD;AAC/E,QAAMI,IAAaC,EAAWT,CAAW;AACzC,SACE,gBAAAM;AAAA,IAACI;AAAAA,IAAA;AAAA,MACC,eAAeF,EAAW;AAAA,MAC1B,aAAa,CAACG,GAAGC,MAASJ,EAAW,SAASI,EAAK,KAAsB;AAAA,MACzE,UAAU;AAAA,MAET,UAAAR;AAAA,IAAA;AAAA,EAAA;AAGP,GAEaS,IAAU,CAAC,EAAE,OAAAV,GAAO,UAAAC,QACxB,gBAAAE,EAACQ,GAAA,EAAI,OAAAX,GAAe,UAAAC,EAAA,CAAS,GAGzBW,IAAY,CAAC,EAAE,OAAAZ,GAAO,UAAAC,QACdK,EAAWT,CAAW,EAC1B,eAAeG,IAAc,OACrC,gBAAAG,EAAC,SAAK,UAAAF,GAAS;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/tabs/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ChangeEventHandler } from 'react';
|
|
2
|
+
export interface InputTextProps {
|
|
3
|
+
value: string;
|
|
4
|
+
maxLength?: number;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
placeholder?: string;
|
|
7
|
+
onValueChange: (value: string) => void;
|
|
8
|
+
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
9
|
+
autoComplete?: string | undefined | null;
|
|
10
|
+
}
|
|
11
|
+
export declare function InputText({ value, maxLength, disabled, placeholder, onValueChange, onChange, autoComplete, }: InputTextProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=InputText.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputText.d.ts","sourceRoot":"","sources":["../../../src/lib/text/InputText.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAC3C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAC1C;AACD,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,aAAa,EACb,QAAQ,EACR,YAAqB,GACtB,EAAE,cAAc,2CAiBhB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
2
|
+
import { Input as a } from "@fluentui/react-components";
|
|
3
|
+
import { isNil as x } from "lodash-es";
|
|
4
|
+
function I({
|
|
5
|
+
value: o,
|
|
6
|
+
maxLength: e,
|
|
7
|
+
disabled: i,
|
|
8
|
+
placeholder: m,
|
|
9
|
+
onValueChange: f,
|
|
10
|
+
onChange: r,
|
|
11
|
+
autoComplete: t = "nope"
|
|
12
|
+
}) {
|
|
13
|
+
const c = (p) => {
|
|
14
|
+
const n = p.currentTarget.value;
|
|
15
|
+
n !== o && f(n), n !== o && r && r(p);
|
|
16
|
+
}, s = x(t) || t === "" ? "nope" : t;
|
|
17
|
+
return /* @__PURE__ */ u(
|
|
18
|
+
a,
|
|
19
|
+
{
|
|
20
|
+
autoComplete: s,
|
|
21
|
+
value: o,
|
|
22
|
+
disabled: i,
|
|
23
|
+
placeholder: m,
|
|
24
|
+
onChange: c,
|
|
25
|
+
maxLength: e
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
I as InputText
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=InputText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputText.js","sources":["../../../src/lib/text/InputText.tsx"],"sourcesContent":["import { Input } from \"@fluentui/react-components\";\nimport { isNil } from \"lodash-es\";\nimport { ChangeEventHandler } from \"react\";\nexport interface InputTextProps {\n value: string;\n maxLength?: number;\n disabled?: boolean;\n placeholder?: string;\n onValueChange: (value: string) => void;\n onChange?: ChangeEventHandler<HTMLInputElement>;\n autoComplete?: string | undefined | null;\n}\nexport function InputText({\n value,\n maxLength,\n disabled,\n placeholder,\n onValueChange,\n onChange,\n autoComplete = \"nope\",\n}: InputTextProps) {\n const handleChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n const v = e.currentTarget.value;\n if (v !== value) onValueChange(v);\n if (v !== value && onChange) onChange(e);\n };\n const autoCompleteCompat = isNil(autoComplete) ? \"nope\" : autoComplete === \"\" ? \"nope\" : autoComplete;\n return (\n <Input\n autoComplete={autoCompleteCompat}\n value={value}\n disabled={disabled}\n placeholder={placeholder}\n onChange={handleChange}\n maxLength={maxLength}\n />\n );\n}\n"],"names":["InputText","value","maxLength","disabled","placeholder","onValueChange","onChange","autoComplete","handleChange","e","v","autoCompleteCompat","isNil","jsx","Input"],"mappings":";;;AAYO,SAASA,EAAU;AAAA,EACxB,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC,IAAe;AACjB,GAAmB;AACjB,QAAMC,IAAqD,CAACC,MAAM;AAChE,UAAMC,IAAID,EAAE,cAAc;AAC1B,IAAIC,MAAMT,KAAOI,EAAcK,CAAC,GAC5BA,MAAMT,KAASK,KAAUA,EAASG,CAAC;AAAA,EACzC,GACME,IAAqBC,EAAML,CAAY,KAAaA,MAAiB,KAA1B,SAAwCA;AACzF,SACE,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAcH;AAAA,MACd,OAAAV;AAAA,MACA,UAAAE;AAAA,MACA,aAAAC;AAAA,MACA,UAAUI;AAAA,MACV,WAAAN;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Description.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/description/Description.tsx"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CAAE,kDAG1E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { Caption1 as n } from "@fluentui/react-components";
|
|
3
|
+
function p({ value: r }) {
|
|
4
|
+
return r ? /* @__PURE__ */ i(n, { children: r }) : null;
|
|
5
|
+
}
|
|
6
|
+
export {
|
|
7
|
+
p as Description
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=Description.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Description.js","sources":["../../../../src/lib/typography/description/Description.tsx"],"sourcesContent":["import { Caption1 } from \"@fluentui/react-components\";\n\nexport function Description({ value }: { value: string | null | undefined }) {\n if (!value) return null;\n return <Caption1>{value}</Caption1>;\n}\n"],"names":["Description","value","jsx","Caption1"],"mappings":";;AAEO,SAASA,EAAY,EAAE,OAAAC,KAA+C;AAC3E,SAAKA,IACE,gBAAAC,EAACC,KAAU,UAAAF,EAAA,CAAM,IADL;AAErB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/description/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/typography/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LabelAndDescription.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/label_and_description/LabelAndDescription.tsx"],"names":[],"mappings":"AAGA,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACxC,2CAWA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsxs as e, jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { Body1 as n } from "@fluentui/react-components";
|
|
3
|
+
import { Description as d } from "../description/Description.js";
|
|
4
|
+
function m({
|
|
5
|
+
label: r,
|
|
6
|
+
description: o
|
|
7
|
+
}) {
|
|
8
|
+
return /* @__PURE__ */ e("div", { children: [
|
|
9
|
+
/* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(n, { children: r }) }),
|
|
10
|
+
/* @__PURE__ */ i("div", { children: /* @__PURE__ */ i(d, { value: o }) })
|
|
11
|
+
] });
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
m as LabelAndDescription
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=LabelAndDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LabelAndDescription.js","sources":["../../../../src/lib/typography/label_and_description/LabelAndDescription.tsx"],"sourcesContent":["import { Body1 } from \"@fluentui/react-components\";\nimport { Description } from \"../description/Description\";\n\nexport function LabelAndDescription({\n label,\n description,\n}: {\n label: string | null | undefined;\n description: string | null | undefined;\n}) {\n return (\n <div>\n <div>\n <Body1>{label}</Body1>\n </div>\n <div>\n <Description value={description} />\n </div>\n </div>\n );\n}\n"],"names":["LabelAndDescription","label","description","jsx","Body1","Description"],"mappings":";;;AAGO,SAASA,EAAoB;AAAA,EAClC,OAAAC;AAAA,EACA,aAAAC;AACF,GAGG;AACD,2BACG,OAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACC,GAAA,EAAO,UAAAH,EAAA,CAAM,GAChB;AAAA,sBACC,OAAA,EACC,UAAA,gBAAAE,EAACE,GAAA,EAAY,OAAOH,GAAa,EAAA,CACnC;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/label_and_description/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionTitle.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/sectiontitle/SectionTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,2CAExE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionTitle.js","sources":["../../../../src/lib/typography/sectiontitle/SectionTitle.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport function SectionTitle(props: { children: ReactNode | ReactNode[] }) {\n return <h4>{props.children}</h4>;\n}\n"],"names":["SectionTitle","props","jsx"],"mappings":";AAEO,SAASA,EAAaC,GAA8C;AACzE,SAAO,gBAAAC,EAAC,MAAA,EAAI,UAAAD,EAAM,SAAA,CAAS;AAC7B;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Todo.d.ts","sourceRoot":"","sources":["../../../../src/lib/typography/todo/Todo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,eAAO,MAAM,IAAI,GAAI,cAAc;IAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,4CAEtE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Todo.js","sources":["../../../../src/lib/typography/todo/Todo.tsx"],"sourcesContent":["import { MessageBar } from \"@fluentui/react-components\";\nimport { ReactNode } from \"react\";\n\nexport const Todo = ({ children }: { children?: ReactNode | undefined }) => {\n return <MessageBar intent=\"warning\">{children}</MessageBar>;\n};\n"],"names":["Todo","children","jsx","MessageBar"],"mappings":";;AAGO,MAAMA,IAAO,CAAC,EAAE,UAAAC,QACd,gBAAAC,EAACC,GAAA,EAAW,QAAO,WAAW,UAAAF,EAAA,CAAS;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Corps principal d'une vue, à mettre uniquement dans ViewLayout
|
|
4
|
+
*/
|
|
5
|
+
export declare function ViewBody({ children }: {
|
|
6
|
+
children: ReactNode | ReactNode[];
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ViewBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewBody.d.ts","sourceRoot":"","sources":["../../../src/lib/view_layout/ViewBody.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAAE,2CAE3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewBody.js","sources":["../../../src/lib/view_layout/ViewBody.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\n/**\n * Corps principal d'une vue, à mettre uniquement dans ViewLayout\n */\nexport function ViewBody({ children }: { children: ReactNode | ReactNode[] }) {\n return <div>{children}</div>;\n}\n"],"names":["ViewBody","children","jsx"],"mappings":";AAKO,SAASA,EAAS,EAAE,UAAAC,KAAmD;AAC5E,SAAO,gBAAAC,EAAC,SAAK,UAAAD,GAAS;AACxB;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Footer d'une vue, à utiliser uniquement dans ViewLayout
|
|
4
|
+
* @param param0
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare function ViewFooter({ children }: {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=ViewFooter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewFooter.d.ts","sourceRoot":"","sources":["../../../src/lib/view_layout/ViewFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAE/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewFooter.js","sources":["../../../src/lib/view_layout/ViewFooter.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\n/**\n * Footer d'une vue, à utiliser uniquement dans ViewLayout\n * @param param0\n * @returns\n */\nexport function ViewFooter({ children }: { children: ReactNode }) {\n return <div>{children}</div>;\n}\n"],"names":["ViewFooter","children","jsx"],"mappings":";AAOO,SAASA,EAAW,EAAE,UAAAC,KAAqC;AAChE,SAAO,gBAAAC,EAAC,SAAK,UAAAD,GAAS;AACxB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewHeader.d.ts","sourceRoot":"","sources":["../../../src/lib/view_layout/ViewHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAE/D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewHeader.js","sources":["../../../src/lib/view_layout/ViewHeader.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\n\nexport function ViewHeader({ children }: { children: ReactNode }) {\n return <div>{children}</div>;\n}\n"],"names":["ViewHeader","children","jsx"],"mappings":";AAEO,SAASA,EAAW,EAAE,UAAAC,KAAqC;AAChE,SAAO,gBAAAC,EAAC,SAAK,UAAAD,GAAS;AACxB;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactElement } from 'react';
|
|
2
|
+
import { ViewTitle } from './ViewTitle';
|
|
3
|
+
import { ViewBody } from './ViewBody';
|
|
4
|
+
import { ViewFooter } from './ViewFooter';
|
|
5
|
+
import { ViewHeader } from './ViewHeader';
|
|
6
|
+
export type LayoutContentSize = "xsmall" | "small" | "standard" | "large";
|
|
7
|
+
export type ViewAllowedChild = ReactElement<typeof ViewHeader> | ReactElement<typeof ViewTitle> | ReactElement<typeof ViewBody> | ReactElement<typeof ViewFooter>;
|
|
8
|
+
export declare function ViewLayout({ children, contentSize, ...otherProps }: {
|
|
9
|
+
/**
|
|
10
|
+
* Indique si on a un contenu de type large ou normal ou small, permet d'adapter la largeur de lecture.
|
|
11
|
+
* Par défaut "standard" qui correspond à une lecture à 60rem
|
|
12
|
+
**/
|
|
13
|
+
contentSize?: LayoutContentSize;
|
|
14
|
+
children: ViewAllowedChild | ViewAllowedChild[];
|
|
15
|
+
} & HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=ViewLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewLayout.d.ts","sourceRoot":"","sources":["../../../src/lib/view_layout/ViewLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,YAAY,EAA+B,MAAM,OAAO,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AA+F1E,MAAM,MAAM,gBAAgB,GACxB,YAAY,CAAC,OAAO,UAAU,CAAC,GAC/B,YAAY,CAAC,OAAO,SAAS,CAAC,GAC9B,YAAY,CAAC,OAAO,QAAQ,CAAC,GAC7B,YAAY,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpC,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,WAAwB,EACxB,GAAG,UAAU,EACd,EAAE;IACD;;;QAGI;IACJ,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;CACjD,GAAG,cAAc,CAAC,cAAc,CAAC,2CAmDjC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { jsx as t, jsxs as L } from "react/jsx-runtime";
|
|
2
|
+
import { makeStyles as v, tokens as o, mergeClasses as a } from "@fluentui/react-components";
|
|
3
|
+
import { isArray as W } from "lodash-es";
|
|
4
|
+
import { useState as H, useRef as z, useEffect as N } from "react";
|
|
5
|
+
import { ViewTitle as R } from "./ViewTitle.js";
|
|
6
|
+
import { ViewBody as k } from "./ViewBody.js";
|
|
7
|
+
import { ViewFooter as B } from "./ViewFooter.js";
|
|
8
|
+
import { ViewHeader as G } from "./ViewHeader.js";
|
|
9
|
+
const l = {
|
|
10
|
+
debugBorder: "none"
|
|
11
|
+
}, V = v({
|
|
12
|
+
root: {
|
|
13
|
+
display: "flex",
|
|
14
|
+
flexDirection: "column",
|
|
15
|
+
alignItems: "center",
|
|
16
|
+
justifyContent: "center",
|
|
17
|
+
height: "100%",
|
|
18
|
+
width: "100%",
|
|
19
|
+
minWidth: "100%"
|
|
20
|
+
},
|
|
21
|
+
content: {
|
|
22
|
+
display: "flex",
|
|
23
|
+
flexDirection: "column",
|
|
24
|
+
flexGrow: 1,
|
|
25
|
+
overflow: "hidden",
|
|
26
|
+
marginLeft: o.spacingHorizontalL,
|
|
27
|
+
marginRight: o.spacingHorizontalL,
|
|
28
|
+
width: "100%"
|
|
29
|
+
},
|
|
30
|
+
contentLarge: {
|
|
31
|
+
maxWidth: "100%"
|
|
32
|
+
},
|
|
33
|
+
contentStandard: {
|
|
34
|
+
maxWidth: "60rem"
|
|
35
|
+
},
|
|
36
|
+
contentSmall: {
|
|
37
|
+
maxWidth: "40rem"
|
|
38
|
+
},
|
|
39
|
+
contentXSmall: {
|
|
40
|
+
maxWidth: "30rem"
|
|
41
|
+
},
|
|
42
|
+
headerWrapper: {
|
|
43
|
+
// Le header prend un minimum de place en hauteur
|
|
44
|
+
flexShrink: 0,
|
|
45
|
+
// Le header ne doit pas scroller mais on réserve quand même une place
|
|
46
|
+
// cachée pour une scrollbar de telle sorte que lorsque le body va scroller
|
|
47
|
+
// si une barre de scroll appraît, le header, body et footer soient toujours
|
|
48
|
+
// alignés
|
|
49
|
+
overflowY: "hidden",
|
|
50
|
+
scrollbarGutter: "stable",
|
|
51
|
+
// Le padding est sur le wrapper pour que lorsque l'écran devient tout petit
|
|
52
|
+
// on aille pas coller les bords de l'écran
|
|
53
|
+
paddingLeft: o.spacingHorizontalL,
|
|
54
|
+
paddingRight: o.spacingHorizontalL,
|
|
55
|
+
// Mode debug uniquement
|
|
56
|
+
border: l.debugBorder
|
|
57
|
+
},
|
|
58
|
+
header: { margin: "auto" },
|
|
59
|
+
headerWithShadow: {
|
|
60
|
+
//border: "1px solid #ccc",
|
|
61
|
+
boxShadow: o.shadow16,
|
|
62
|
+
transition: "box-shadow 0.2s ease-in-out",
|
|
63
|
+
zIndex: 1
|
|
64
|
+
},
|
|
65
|
+
bodyWrapper: {
|
|
66
|
+
// Le body prend un maximum de place en hauteur
|
|
67
|
+
flexGrow: 1,
|
|
68
|
+
// Le body va scroller mais il faut réserver une place cachée pour la scroll
|
|
69
|
+
// sinon si la scrollbar apparaît elle va désaligner body/header/footer.
|
|
70
|
+
overflowY: "auto",
|
|
71
|
+
scrollbarGutter: "stable",
|
|
72
|
+
// Le padding est sur le wrapper pour que lorsque l'écran devient tout petit
|
|
73
|
+
// on aille pas coller les bords de l'écran
|
|
74
|
+
paddingLeft: o.spacingHorizontalL,
|
|
75
|
+
paddingRight: o.spacingHorizontalL,
|
|
76
|
+
// Mode debug uniquement
|
|
77
|
+
border: l.debugBorder
|
|
78
|
+
},
|
|
79
|
+
body: {
|
|
80
|
+
margin: "auto"
|
|
81
|
+
},
|
|
82
|
+
footerWrapper: {
|
|
83
|
+
// Le footer prend un minimum de place en hauteur
|
|
84
|
+
flexShrink: 0,
|
|
85
|
+
margin: "auto",
|
|
86
|
+
// Le footer ne doit pas scroller mais on réserve quand même une place
|
|
87
|
+
// cachée pour une scrollbar de telle sorte que lorsque le body va scroller
|
|
88
|
+
// si une barre de scroll appraît, le header, body et footer soient toujours
|
|
89
|
+
// alignés
|
|
90
|
+
overflowY: "hidden",
|
|
91
|
+
scrollbarGutter: "stable",
|
|
92
|
+
// Le padding est sur le wrapper pour que lorsque l'écran devient tout petit
|
|
93
|
+
// on aille pas coller les bords de l'écran
|
|
94
|
+
paddingLeft: o.spacingHorizontalL,
|
|
95
|
+
paddingRight: o.spacingHorizontalL,
|
|
96
|
+
// Mode debug uniquement
|
|
97
|
+
border: l.debugBorder
|
|
98
|
+
},
|
|
99
|
+
footer: {
|
|
100
|
+
margin: "auto"
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
function A({
|
|
104
|
+
children: n,
|
|
105
|
+
contentSize: i = "standard",
|
|
106
|
+
...p
|
|
107
|
+
}) {
|
|
108
|
+
const [h, f] = H(!1), c = z(null);
|
|
109
|
+
N(() => {
|
|
110
|
+
const r = c.current;
|
|
111
|
+
if (!r) return;
|
|
112
|
+
const m = () => {
|
|
113
|
+
f(r.scrollTop > 0);
|
|
114
|
+
};
|
|
115
|
+
return r.addEventListener("scroll", m), () => r.removeEventListener("scroll", m);
|
|
116
|
+
}, []);
|
|
117
|
+
const d = W(n) ? n : [n], g = d.find((r) => r.type === G || r.type === R), u = d.find((r) => r.type === k), y = d.find((r) => r.type === B), e = V(), s = i === "large" ? e.contentLarge : i === "small" ? e.contentSmall : i === "xsmall" ? e.contentXSmall : e.contentStandard, b = a(e.body, s), S = a(e.headerWrapper, h ? e.headerWithShadow : void 0), x = a(e.header, s), w = a(e.footer, s);
|
|
118
|
+
return /* @__PURE__ */ t("div", { ...p, className: e.root, children: /* @__PURE__ */ L("div", { className: e.content, children: [
|
|
119
|
+
/* @__PURE__ */ t("div", { className: S, children: /* @__PURE__ */ t("div", { className: x, children: g }) }),
|
|
120
|
+
/* @__PURE__ */ t("div", { className: e.bodyWrapper, ref: c, children: /* @__PURE__ */ t("div", { className: b, children: u }) }),
|
|
121
|
+
/* @__PURE__ */ t("div", { className: e.footerWrapper, children: /* @__PURE__ */ t("div", { className: w, children: y }) })
|
|
122
|
+
] }) });
|
|
123
|
+
}
|
|
124
|
+
export {
|
|
125
|
+
A as ViewLayout
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=ViewLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewLayout.js","sources":["../../../src/lib/view_layout/ViewLayout.tsx"],"sourcesContent":["import { makeStyles, mergeClasses, tokens } from \"@fluentui/react-components\";\nimport { isArray } from \"lodash-es\";\nimport { HTMLAttributes, ReactElement, useEffect, useRef, useState } from \"react\";\nimport { ViewTitle } from \"./ViewTitle\";\nimport { ViewBody } from \"./ViewBody\";\nimport { ViewFooter } from \"./ViewFooter\";\nimport { ViewHeader } from \"./ViewHeader\";\n\nconst DEBUG = false;\n\nconst debugTokens = {\n debugBorder: DEBUG ? \"1px dotted red\" : \"none\",\n};\n\nexport type LayoutContentSize = \"xsmall\" | \"small\" | \"standard\" | \"large\";\n\nconst useStyles = makeStyles({\n root: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n width: \"100%\",\n minWidth: \"100%\",\n },\n content: {\n display: \"flex\",\n flexDirection: \"column\",\n flexGrow: 1,\n overflow: \"hidden\",\n marginLeft: tokens.spacingHorizontalL,\n marginRight: tokens.spacingHorizontalL,\n width: \"100%\",\n },\n contentLarge: {\n maxWidth: \"100%\",\n },\n contentStandard: {\n maxWidth: \"60rem\",\n },\n contentSmall: {\n maxWidth: \"40rem\",\n },\n contentXSmall: {\n maxWidth: \"30rem\",\n },\n headerWrapper: {\n // Le header prend un minimum de place en hauteur\n flexShrink: 0,\n // Le header ne doit pas scroller mais on réserve quand même une place\n // cachée pour une scrollbar de telle sorte que lorsque le body va scroller\n // si une barre de scroll appraît, le header, body et footer soient toujours\n // alignés\n overflowY: \"hidden\",\n scrollbarGutter: \"stable\",\n // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit\n // on aille pas coller les bords de l'écran\n paddingLeft: tokens.spacingHorizontalL,\n paddingRight: tokens.spacingHorizontalL,\n // Mode debug uniquement\n border: debugTokens.debugBorder,\n },\n header: { margin: \"auto\" },\n headerWithShadow: {\n //border: \"1px solid #ccc\",\n boxShadow: tokens.shadow16,\n transition: \"box-shadow 0.2s ease-in-out\",\n zIndex: 1,\n },\n bodyWrapper: {\n // Le body prend un maximum de place en hauteur\n flexGrow: 1,\n // Le body va scroller mais il faut réserver une place cachée pour la scroll\n // sinon si la scrollbar apparaît elle va désaligner body/header/footer.\n overflowY: \"auto\",\n scrollbarGutter: \"stable\",\n // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit\n // on aille pas coller les bords de l'écran\n paddingLeft: tokens.spacingHorizontalL,\n paddingRight: tokens.spacingHorizontalL,\n // Mode debug uniquement\n border: debugTokens.debugBorder,\n },\n body: {\n margin: \"auto\",\n },\n footerWrapper: {\n // Le footer prend un minimum de place en hauteur\n flexShrink: 0,\n margin: \"auto\",\n // Le footer ne doit pas scroller mais on réserve quand même une place\n // cachée pour une scrollbar de telle sorte que lorsque le body va scroller\n // si une barre de scroll appraît, le header, body et footer soient toujours\n // alignés\n overflowY: \"hidden\",\n scrollbarGutter: \"stable\",\n // Le padding est sur le wrapper pour que lorsque l'écran devient tout petit\n // on aille pas coller les bords de l'écran\n paddingLeft: tokens.spacingHorizontalL,\n paddingRight: tokens.spacingHorizontalL,\n // Mode debug uniquement\n border: debugTokens.debugBorder,\n },\n footer: {\n margin: \"auto\",\n },\n});\n\nexport type ViewAllowedChild =\n | ReactElement<typeof ViewHeader>\n | ReactElement<typeof ViewTitle>\n | ReactElement<typeof ViewBody>\n | ReactElement<typeof ViewFooter>;\n\nexport function ViewLayout({\n children,\n contentSize = \"standard\",\n ...otherProps\n}: {\n /**\n * Indique si on a un contenu de type large ou normal ou small, permet d'adapter la largeur de lecture.\n * Par défaut \"standard\" qui correspond à une lecture à 60rem\n **/\n contentSize?: LayoutContentSize;\n children: ViewAllowedChild | ViewAllowedChild[];\n} & HTMLAttributes<HTMLDivElement>) {\n const [hasScrolled, setHasScrolled] = useState(false);\n const bodyRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const el = bodyRef.current;\n if (!el) return;\n\n const handleScroll = () => {\n setHasScrolled(el.scrollTop > 0);\n };\n\n el.addEventListener(\"scroll\", handleScroll);\n return () => el.removeEventListener(\"scroll\", handleScroll);\n }, []);\n\n const childrenList = isArray(children) ? children : [children];\n const header = childrenList.find((it) => it.type === ViewHeader || it.type === ViewTitle);\n const body = childrenList.find((it) => it.type === ViewBody);\n const footer = childrenList.find((it) => it.type === ViewFooter);\n const styles = useStyles();\n\n const sizingStyles =\n contentSize === \"large\"\n ? styles.contentLarge\n : contentSize === \"small\"\n ? styles.contentSmall\n : contentSize === \"xsmall\"\n ? styles.contentXSmall\n : styles.contentStandard;\n\n const bodyStyles = mergeClasses(styles.body, sizingStyles);\n const headerWrapperStyles = mergeClasses(styles.headerWrapper, hasScrolled ? styles.headerWithShadow : undefined);\n const headerStyles = mergeClasses(styles.header, sizingStyles);\n const footerStyles = mergeClasses(styles.footer, sizingStyles);\n\n return (\n <div {...otherProps} className={styles.root}>\n <div className={styles.content}>\n <div className={headerWrapperStyles}>\n <div className={headerStyles}>{header}</div>\n </div>\n <div className={styles.bodyWrapper} ref={bodyRef}>\n <div className={bodyStyles}>{body}</div>\n </div>\n <div className={styles.footerWrapper}>\n <div className={footerStyles}>{footer}</div>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["debugTokens","useStyles","makeStyles","tokens","ViewLayout","children","contentSize","otherProps","hasScrolled","setHasScrolled","useState","bodyRef","useRef","useEffect","el","handleScroll","childrenList","isArray","header","it","ViewHeader","ViewTitle","body","ViewBody","footer","ViewFooter","styles","sizingStyles","bodyStyles","mergeClasses","headerWrapperStyles","headerStyles","footerStyles","jsx","jsxs"],"mappings":"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"}
|