@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.
Files changed (255) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +7 -0
  3. package/dist/index.d.ts +45 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +113 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/init/SeijUIProvider.d.ts +15 -0
  8. package/dist/init/SeijUIProvider.d.ts.map +1 -0
  9. package/dist/init/SeijUIProvider.js +20 -0
  10. package/dist/init/SeijUIProvider.js.map +1 -0
  11. package/dist/lib/applicationshell/ApplicationShell.d.ts +13 -0
  12. package/dist/lib/applicationshell/ApplicationShell.d.ts.map +1 -0
  13. package/dist/lib/applicationshell/ApplicationShell.js +110 -0
  14. package/dist/lib/applicationshell/ApplicationShell.js.map +1 -0
  15. package/dist/lib/applicationshell/ApplicationShell.types.d.ts +9 -0
  16. package/dist/lib/applicationshell/ApplicationShell.types.d.ts.map +1 -0
  17. package/dist/lib/applicationshell/TitleBar.d.ts +9 -0
  18. package/dist/lib/applicationshell/TitleBar.d.ts.map +1 -0
  19. package/dist/lib/applicationshell/TitleBar.js +100 -0
  20. package/dist/lib/applicationshell/TitleBar.js.map +1 -0
  21. package/dist/lib/badge/Badge.d.ts +5 -0
  22. package/dist/lib/badge/Badge.d.ts.map +1 -0
  23. package/dist/lib/badge/Badge.js +9 -0
  24. package/dist/lib/badge/Badge.js.map +1 -0
  25. package/dist/lib/button/Button.d.ts +16 -0
  26. package/dist/lib/button/Button.d.ts.map +1 -0
  27. package/dist/lib/button/Button.js +15 -0
  28. package/dist/lib/button/Button.js.map +1 -0
  29. package/dist/lib/button_bar/ButtonBar.d.ts +5 -0
  30. package/dist/lib/button_bar/ButtonBar.d.ts.map +1 -0
  31. package/dist/lib/button_bar/ButtonBar.js +26 -0
  32. package/dist/lib/button_bar/ButtonBar.js.map +1 -0
  33. package/dist/lib/common-ui.d.ts +5 -0
  34. package/dist/lib/common-ui.d.ts.map +1 -0
  35. package/dist/lib/common-ui.js +9 -0
  36. package/dist/lib/common-ui.js.map +1 -0
  37. package/dist/lib/commons/currencysymbol.d.ts +2 -0
  38. package/dist/lib/commons/currencysymbol.d.ts.map +1 -0
  39. package/dist/lib/commons/currencysymbol.js +15 -0
  40. package/dist/lib/commons/currencysymbol.js.map +1 -0
  41. package/dist/lib/commons/obfuscatelabel.d.ts +17 -0
  42. package/dist/lib/commons/obfuscatelabel.d.ts.map +1 -0
  43. package/dist/lib/commons/obfuscatelabel.js +23 -0
  44. package/dist/lib/commons/obfuscatelabel.js.map +1 -0
  45. package/dist/lib/data_table/DataTable.d.ts +32 -0
  46. package/dist/lib/data_table/DataTable.d.ts.map +1 -0
  47. package/dist/lib/data_table/DataTable.js +40 -0
  48. package/dist/lib/data_table/DataTable.js.map +1 -0
  49. package/dist/lib/datatabledynamic/DataTableDynamic.d.ts +14 -0
  50. package/dist/lib/datatabledynamic/DataTableDynamic.d.ts.map +1 -0
  51. package/dist/lib/datatabledynamic/DataTableDynamic.js +18 -0
  52. package/dist/lib/datatabledynamic/DataTableDynamic.js.map +1 -0
  53. package/dist/lib/devise/DeviseContext.d.ts +2 -0
  54. package/dist/lib/devise/DeviseContext.d.ts.map +1 -0
  55. package/dist/lib/devise/DeviseContext.js +6 -0
  56. package/dist/lib/devise/DeviseContext.js.map +1 -0
  57. package/dist/lib/error_notifier/ErrorNotifier.d.ts +6 -0
  58. package/dist/lib/error_notifier/ErrorNotifier.d.ts.map +1 -0
  59. package/dist/lib/error_notifier/ErrorNotifier.js +29 -0
  60. package/dist/lib/error_notifier/ErrorNotifier.js.map +1 -0
  61. package/dist/lib/errorbox/ErrorBox.d.ts +6 -0
  62. package/dist/lib/errorbox/ErrorBox.d.ts.map +1 -0
  63. package/dist/lib/errorbox/ErrorBox.js +26 -0
  64. package/dist/lib/errorbox/ErrorBox.js.map +1 -0
  65. package/dist/lib/form_layout/FormLayout.d.ts +23 -0
  66. package/dist/lib/form_layout/FormLayout.d.ts.map +1 -0
  67. package/dist/lib/form_layout/FormLayout.js +102 -0
  68. package/dist/lib/form_layout/FormLayout.js.map +1 -0
  69. package/dist/lib/i18n/i18n.detect.d.ts +10 -0
  70. package/dist/lib/i18n/i18n.detect.d.ts.map +1 -0
  71. package/dist/lib/i18n/i18n.detect.js +30 -0
  72. package/dist/lib/i18n/i18n.detect.js.map +1 -0
  73. package/dist/lib/i18n/i18n.factory.d.ts +3 -0
  74. package/dist/lib/i18n/i18n.factory.d.ts.map +1 -0
  75. package/dist/lib/i18n/i18n.factory.js +70 -0
  76. package/dist/lib/i18n/i18n.factory.js.map +1 -0
  77. package/dist/lib/i18n/i18n.react.d.ts +19 -0
  78. package/dist/lib/i18n/i18n.react.d.ts.map +1 -0
  79. package/dist/lib/i18n/i18n.react.js +29 -0
  80. package/dist/lib/i18n/i18n.react.js.map +1 -0
  81. package/dist/lib/i18n/i18n.types.d.ts +28 -0
  82. package/dist/lib/i18n/i18n.types.d.ts.map +1 -0
  83. package/dist/lib/i18n/index.d.ts +3 -0
  84. package/dist/lib/i18n/index.d.ts.map +1 -0
  85. package/dist/lib/info_box/InfoBox.d.ts +7 -0
  86. package/dist/lib/info_box/InfoBox.d.ts.map +1 -0
  87. package/dist/lib/info_box/InfoBox.js +13 -0
  88. package/dist/lib/info_box/InfoBox.js.map +1 -0
  89. package/dist/lib/inlineedit/InlineEdit.d.ts +9 -0
  90. package/dist/lib/inlineedit/InlineEdit.d.ts.map +1 -0
  91. package/dist/lib/inlineedit/InlineEdit.js +47 -0
  92. package/dist/lib/inlineedit/InlineEdit.js.map +1 -0
  93. package/dist/lib/listview/ListView.d.ts +16 -0
  94. package/dist/lib/listview/ListView.d.ts.map +1 -0
  95. package/dist/lib/listview/ListView.js +100 -0
  96. package/dist/lib/listview/ListView.js.map +1 -0
  97. package/dist/lib/loader/Loader.d.ts +4 -0
  98. package/dist/lib/loader/Loader.d.ts.map +1 -0
  99. package/dist/lib/loader/Loader.js +9 -0
  100. package/dist/lib/loader/Loader.js.map +1 -0
  101. package/dist/lib/localdate/InputLocalDate.d.ts +17 -0
  102. package/dist/lib/localdate/InputLocalDate.d.ts.map +1 -0
  103. package/dist/lib/localdate/InputLocalDate.js +61 -0
  104. package/dist/lib/localdate/InputLocalDate.js.map +1 -0
  105. package/dist/lib/localdate/LabelLocalDate.d.ts +6 -0
  106. package/dist/lib/localdate/LabelLocalDate.d.ts.map +1 -0
  107. package/dist/lib/localdate/LabelLocalDate.js +9 -0
  108. package/dist/lib/localdate/LabelLocalDate.js.map +1 -0
  109. package/dist/lib/money/InputMoneyDec.d.ts +20 -0
  110. package/dist/lib/money/InputMoneyDec.d.ts.map +1 -0
  111. package/dist/lib/money/InputMoneyDec.js +24 -0
  112. package/dist/lib/money/InputMoneyDec.js.map +1 -0
  113. package/dist/lib/money/InputMoneyInt.d.ts +24 -0
  114. package/dist/lib/money/InputMoneyInt.d.ts.map +1 -0
  115. package/dist/lib/money/InputMoneyInt.js +24 -0
  116. package/dist/lib/money/InputMoneyInt.js.map +1 -0
  117. package/dist/lib/money/LabelMoneyDec.d.ts +33 -0
  118. package/dist/lib/money/LabelMoneyDec.d.ts.map +1 -0
  119. package/dist/lib/money/LabelMoneyDec.js +22 -0
  120. package/dist/lib/money/LabelMoneyDec.js.map +1 -0
  121. package/dist/lib/money/LabelMoneyInt.d.ts +33 -0
  122. package/dist/lib/money/LabelMoneyInt.d.ts.map +1 -0
  123. package/dist/lib/money/LabelMoneyInt.js +22 -0
  124. package/dist/lib/money/LabelMoneyInt.js.map +1 -0
  125. package/dist/lib/month/InputDurationMonths.d.ts +9 -0
  126. package/dist/lib/month/InputDurationMonths.d.ts.map +1 -0
  127. package/dist/lib/month/InputDurationMonths.js +22 -0
  128. package/dist/lib/month/InputDurationMonths.js.map +1 -0
  129. package/dist/lib/month/InputMonth.d.ts +13 -0
  130. package/dist/lib/month/InputMonth.d.ts.map +1 -0
  131. package/dist/lib/month/InputMonth.js +15 -0
  132. package/dist/lib/month/InputMonth.js.map +1 -0
  133. package/dist/lib/navigation/Navigation.d.ts +9 -0
  134. package/dist/lib/navigation/Navigation.d.ts.map +1 -0
  135. package/dist/lib/navigation/Navigation.js +38 -0
  136. package/dist/lib/navigation/Navigation.js.map +1 -0
  137. package/dist/lib/navigation/Navigation.types.d.ts +48 -0
  138. package/dist/lib/navigation/Navigation.types.d.ts.map +1 -0
  139. package/dist/lib/navigation/NavigationService.d.ts +8 -0
  140. package/dist/lib/navigation/NavigationService.d.ts.map +1 -0
  141. package/dist/lib/navigation/NavigationService.js +13 -0
  142. package/dist/lib/navigation/NavigationService.js.map +1 -0
  143. package/dist/lib/number/InputNumber.d.ts +22 -0
  144. package/dist/lib/number/InputNumber.d.ts.map +1 -0
  145. package/dist/lib/number/InputNumber.js +82 -0
  146. package/dist/lib/number/InputNumber.js.map +1 -0
  147. package/dist/lib/number/InputNumberDec.d.ts +16 -0
  148. package/dist/lib/number/InputNumberDec.d.ts.map +1 -0
  149. package/dist/lib/number/InputNumberDec.js +21 -0
  150. package/dist/lib/number/InputNumberDec.js.map +1 -0
  151. package/dist/lib/number/InputNumberInt.d.ts +19 -0
  152. package/dist/lib/number/InputNumberInt.d.ts.map +1 -0
  153. package/dist/lib/number/InputNumberInt.js +21 -0
  154. package/dist/lib/number/InputNumberInt.js.map +1 -0
  155. package/dist/lib/number/index.d.ts +4 -0
  156. package/dist/lib/number/index.d.ts.map +1 -0
  157. package/dist/lib/percent/InputPercent.d.ts +9 -0
  158. package/dist/lib/percent/InputPercent.d.ts.map +1 -0
  159. package/dist/lib/percent/InputPercent.js +29 -0
  160. package/dist/lib/percent/InputPercent.js.map +1 -0
  161. package/dist/lib/percent/LabelPercent.d.ts +8 -0
  162. package/dist/lib/percent/LabelPercent.d.ts.map +1 -0
  163. package/dist/lib/percent/LabelPercent.js +9 -0
  164. package/dist/lib/percent/LabelPercent.js.map +1 -0
  165. package/dist/lib/percent/LabelPercentInt.d.ts +4 -0
  166. package/dist/lib/percent/LabelPercentInt.d.ts.map +1 -0
  167. package/dist/lib/percent/LabelPercentInt.js +10 -0
  168. package/dist/lib/percent/LabelPercentInt.js.map +1 -0
  169. package/dist/lib/select/InputCombobox.d.ts +49 -0
  170. package/dist/lib/select/InputCombobox.d.ts.map +1 -0
  171. package/dist/lib/select/InputCombobox.js +42 -0
  172. package/dist/lib/select/InputCombobox.js.map +1 -0
  173. package/dist/lib/select/InputSelect.d.ts +22 -0
  174. package/dist/lib/select/InputSelect.d.ts.map +1 -0
  175. package/dist/lib/select/InputSelect.js +31 -0
  176. package/dist/lib/select/InputSelect.js.map +1 -0
  177. package/dist/lib/switchbutton/SwitchButton.d.ts +9 -0
  178. package/dist/lib/switchbutton/SwitchButton.d.ts.map +1 -0
  179. package/dist/lib/switchbutton/SwitchButton.js +18 -0
  180. package/dist/lib/switchbutton/SwitchButton.js.map +1 -0
  181. package/dist/lib/tabs/Tabs.d.ts +18 -0
  182. package/dist/lib/tabs/Tabs.d.ts.map +1 -0
  183. package/dist/lib/tabs/Tabs.js +30 -0
  184. package/dist/lib/tabs/Tabs.js.map +1 -0
  185. package/dist/lib/tabs/index.d.ts +2 -0
  186. package/dist/lib/tabs/index.d.ts.map +1 -0
  187. package/dist/lib/text/InputText.d.ts +12 -0
  188. package/dist/lib/text/InputText.d.ts.map +1 -0
  189. package/dist/lib/text/InputText.js +32 -0
  190. package/dist/lib/text/InputText.js.map +1 -0
  191. package/dist/lib/typography/description/Description.d.ts +4 -0
  192. package/dist/lib/typography/description/Description.d.ts.map +1 -0
  193. package/dist/lib/typography/description/Description.js +9 -0
  194. package/dist/lib/typography/description/Description.js.map +1 -0
  195. package/dist/lib/typography/description/index.d.ts +2 -0
  196. package/dist/lib/typography/description/index.d.ts.map +1 -0
  197. package/dist/lib/typography/index.d.ts +5 -0
  198. package/dist/lib/typography/index.d.ts.map +1 -0
  199. package/dist/lib/typography/label_and_description/LabelAndDescription.d.ts +5 -0
  200. package/dist/lib/typography/label_and_description/LabelAndDescription.d.ts.map +1 -0
  201. package/dist/lib/typography/label_and_description/LabelAndDescription.js +16 -0
  202. package/dist/lib/typography/label_and_description/LabelAndDescription.js.map +1 -0
  203. package/dist/lib/typography/label_and_description/index.d.ts +2 -0
  204. package/dist/lib/typography/label_and_description/index.d.ts.map +1 -0
  205. package/dist/lib/typography/sectiontitle/SectionTitle.d.ts +5 -0
  206. package/dist/lib/typography/sectiontitle/SectionTitle.d.ts.map +1 -0
  207. package/dist/lib/typography/sectiontitle/SectionTitle.js +8 -0
  208. package/dist/lib/typography/sectiontitle/SectionTitle.js.map +1 -0
  209. package/dist/lib/typography/todo/Todo.d.ts +5 -0
  210. package/dist/lib/typography/todo/Todo.d.ts.map +1 -0
  211. package/dist/lib/typography/todo/Todo.js +7 -0
  212. package/dist/lib/typography/todo/Todo.js.map +1 -0
  213. package/dist/lib/view_layout/ViewBody.d.ts +8 -0
  214. package/dist/lib/view_layout/ViewBody.d.ts.map +1 -0
  215. package/dist/lib/view_layout/ViewBody.js +8 -0
  216. package/dist/lib/view_layout/ViewBody.js.map +1 -0
  217. package/dist/lib/view_layout/ViewFooter.d.ts +10 -0
  218. package/dist/lib/view_layout/ViewFooter.d.ts.map +1 -0
  219. package/dist/lib/view_layout/ViewFooter.js +8 -0
  220. package/dist/lib/view_layout/ViewFooter.js.map +1 -0
  221. package/dist/lib/view_layout/ViewHeader.d.ts +5 -0
  222. package/dist/lib/view_layout/ViewHeader.d.ts.map +1 -0
  223. package/dist/lib/view_layout/ViewHeader.js +8 -0
  224. package/dist/lib/view_layout/ViewHeader.js.map +1 -0
  225. package/dist/lib/view_layout/ViewLayout.d.ts +16 -0
  226. package/dist/lib/view_layout/ViewLayout.d.ts.map +1 -0
  227. package/dist/lib/view_layout/ViewLayout.js +127 -0
  228. package/dist/lib/view_layout/ViewLayout.js.map +1 -0
  229. package/dist/lib/view_layout/ViewTitle.d.ts +21 -0
  230. package/dist/lib/view_layout/ViewTitle.d.ts.map +1 -0
  231. package/dist/lib/view_layout/ViewTitle.js +71 -0
  232. package/dist/lib/view_layout/ViewTitle.js.map +1 -0
  233. package/dist/lib/year/InputDurationYears.d.ts +9 -0
  234. package/dist/lib/year/InputDurationYears.d.ts.map +1 -0
  235. package/dist/lib/year/InputDurationYears.js +22 -0
  236. package/dist/lib/year/InputDurationYears.js.map +1 -0
  237. package/dist/lib/year/InputYear.d.ts +9 -0
  238. package/dist/lib/year/InputYear.d.ts.map +1 -0
  239. package/dist/lib/year/InputYear.js +21 -0
  240. package/dist/lib/year/InputYear.js.map +1 -0
  241. package/dist/locales/en.d.ts +8 -0
  242. package/dist/locales/en.d.ts.map +1 -0
  243. package/dist/locales/en.js +41 -0
  244. package/dist/locales/en.js.map +1 -0
  245. package/dist/locales/fr.d.ts +8 -0
  246. package/dist/locales/fr.d.ts.map +1 -0
  247. package/dist/locales/fr.js +41 -0
  248. package/dist/locales/fr.js.map +1 -0
  249. package/dist/locales/interfaces.d.ts +11 -0
  250. package/dist/locales/interfaces.d.ts.map +1 -0
  251. package/dist/stories/utils/SeijUIProviderDecorator.d.ts +2 -0
  252. package/dist/stories/utils/SeijUIProviderDecorator.d.ts.map +1 -0
  253. package/dist/stories/utils/StoryComponentFrame.d.ts +11 -0
  254. package/dist/stories/utils/StoryComponentFrame.d.ts.map +1 -0
  255. package/package.json +48 -0
@@ -0,0 +1,100 @@
1
+ import { jsx as n, jsxs as d } from "react/jsx-runtime";
2
+ import { makeStyles as h, tokens as o, Text as u, useKeyboardNavAttribute as p, Spinner as m, Avatar as s } from "@fluentui/react-components";
3
+ import { ChessRegular as x } from "@fluentui/react-icons";
4
+ const c = h({
5
+ root: {
6
+ height: "48px",
7
+ lineHeight: "48px",
8
+ width: "100%"
9
+ },
10
+ appBar: {
11
+ display: "flex",
12
+ color: o.colorNeutralForegroundOnBrand,
13
+ backgroundColor: o.colorBrandBackground,
14
+ width: "100%",
15
+ maxWidth: "100%"
16
+ },
17
+ launcher: {
18
+ width: "48px",
19
+ minWidth: "48px",
20
+ height: "48px",
21
+ lineHeight: "48px",
22
+ flex: 0,
23
+ textAlign: "center",
24
+ ":hover": {
25
+ background: o.colorBrandBackgroundHover,
26
+ cursor: "pointer"
27
+ }
28
+ },
29
+ launcher_icon: {
30
+ fontSize: "24px",
31
+ verticalAlign: "middle"
32
+ },
33
+ title: {
34
+ height: "48px",
35
+ flex: 1,
36
+ whiteSpace: "nowrap"
37
+ },
38
+ actions: {
39
+ height: "48px",
40
+ minWidth: "48px",
41
+ flex: 0,
42
+ display: "flex",
43
+ justifyContent: "space-around"
44
+ },
45
+ home: {
46
+ width: "100%",
47
+ height: "100%",
48
+ display: "inline-block"
49
+ },
50
+ userActionButton: {
51
+ width: "100%",
52
+ height: "100%",
53
+ display: "inline-block",
54
+ textAlign: "center"
55
+ }
56
+ });
57
+ function v({
58
+ hamburger: e,
59
+ onClickHome: i,
60
+ userStatus: r,
61
+ applicationName: l
62
+ }) {
63
+ const t = c();
64
+ return /* @__PURE__ */ n("div", { className: t.root, children: /* @__PURE__ */ d("div", { className: t.appBar, children: [
65
+ e ? /* @__PURE__ */ n("div", { className: t.launcher, children: e }) : null,
66
+ /* @__PURE__ */ n("div", { className: t.launcher, children: /* @__PURE__ */ n(g, { onClick: i }) }),
67
+ /* @__PURE__ */ n("div", { className: t.title, children: /* @__PURE__ */ n(u, { weight: "semibold", children: l }) }),
68
+ /* @__PURE__ */ n("div", { className: t.actions, children: /* @__PURE__ */ n(f, { status: r }) })
69
+ ] }) });
70
+ }
71
+ function g({ onClick: e }) {
72
+ const i = c(), r = p(), l = a(e);
73
+ return /* @__PURE__ */ n("a", { tabIndex: 0, ...l, className: i.home, "aria-label": "Accueil", ref: r, children: /* @__PURE__ */ n(x, { className: i.launcher_icon }) });
74
+ }
75
+ function f({ status: e }) {
76
+ const i = c();
77
+ if (e.isLoading)
78
+ return /* @__PURE__ */ n(m, {});
79
+ if (e.errorMessage)
80
+ return /* @__PURE__ */ d("div", { children: [
81
+ "Oops... ",
82
+ e.errorMessage
83
+ ] });
84
+ if (e.isAuthenticated) {
85
+ const l = e.userName ?? "", t = a(e.onClickSignIn);
86
+ return /* @__PURE__ */ n("a", { tabIndex: 0, className: i.userActionButton, ...t, children: /* @__PURE__ */ n(s, { "aria-label": l, name: l }) });
87
+ }
88
+ const r = a(e.onClickSignOut);
89
+ return /* @__PURE__ */ n("a", { tabIndex: 0, className: i.userActionButton, ...r, children: /* @__PURE__ */ n(s, { "aria-label": "Non connecté" }) });
90
+ }
91
+ const a = (e) => ({
92
+ onClick: e,
93
+ onKeyUp: (r) => {
94
+ (r.key === "Enter" || r.key === " ") && (e(), r.preventDefault());
95
+ }
96
+ });
97
+ export {
98
+ v as TitleBar
99
+ };
100
+ //# sourceMappingURL=TitleBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TitleBar.js","sources":["../../../src/lib/applicationshell/TitleBar.tsx"],"sourcesContent":["import { Avatar, makeStyles, Spinner, Text, tokens, useKeyboardNavAttribute } from \"@fluentui/react-components\";\nimport { ChessRegular } from \"@fluentui/react-icons\";\nimport { KeyboardEventHandler, ReactNode } from \"react\";\nimport { UserStatus } from \"./ApplicationShell.types\";\n\nconst useTitleBarStyles = makeStyles({\n root: {\n height: \"48px\",\n lineHeight: \"48px\",\n width: \"100%\",\n },\n appBar: {\n display: \"flex\",\n color: tokens.colorNeutralForegroundOnBrand,\n backgroundColor: tokens.colorBrandBackground,\n width: \"100%\",\n maxWidth: \"100%\",\n },\n launcher: {\n width: \"48px\",\n minWidth: \"48px\",\n height: \"48px\",\n lineHeight: \"48px\",\n flex: 0,\n textAlign: \"center\",\n \":hover\": {\n background: tokens.colorBrandBackgroundHover,\n cursor: \"pointer\",\n },\n },\n launcher_icon: {\n fontSize: \"24px\",\n verticalAlign: \"middle\",\n },\n title: {\n height: \"48px\",\n flex: 1,\n whiteSpace: \"nowrap\",\n },\n actions: {\n height: \"48px\",\n minWidth: \"48px\",\n flex: 0,\n display: \"flex\",\n justifyContent: \"space-around\",\n },\n home: {\n width: \"100%\",\n height: \"100%\",\n display: \"inline-block\",\n },\n userActionButton: {\n width: \"100%\",\n height: \"100%\",\n display: \"inline-block\",\n textAlign: \"center\",\n },\n});\n\nexport function TitleBar({\n hamburger,\n onClickHome,\n userStatus,\n applicationName: applicationName,\n}: {\n userStatus: UserStatus;\n applicationName: string;\n hamburger: ReactNode | null;\n onClickHome: () => void;\n}) {\n const styles = useTitleBarStyles();\n return (\n <div className={styles.root}>\n <div className={styles.appBar}>\n {hamburger ? <div className={styles.launcher}>{hamburger}</div> : null}\n <div className={styles.launcher}>\n <Home onClick={onClickHome} />\n </div>\n <div className={styles.title}>\n <Text weight=\"semibold\">{applicationName}</Text>\n </div>\n <div className={styles.actions}>\n <User status={userStatus} />\n </div>\n </div>\n </div>\n );\n}\n\nfunction Home({ onClick }: { onClick: () => void }) {\n const styles = useTitleBarStyles();\n const ref = useKeyboardNavAttribute<HTMLAnchorElement>();\n const onClickHandlers = createClickHandlers(onClick);\n return (\n <a tabIndex={0} {...onClickHandlers} className={styles.home} aria-label=\"Accueil\" ref={ref}>\n <ChessRegular className={styles.launcher_icon} />\n </a>\n );\n}\n\nfunction User({ status }: { status: UserStatus }) {\n const styles = useTitleBarStyles();\n\n if (status.isLoading) {\n return <Spinner />;\n }\n\n if (status.errorMessage) {\n return <div>Oops... {status.errorMessage}</div>;\n }\n\n if (status.isAuthenticated) {\n const name = status.userName ?? \"\";\n const onClickHandlers = createClickHandlers(status.onClickSignIn);\n return (\n <a tabIndex={0} className={styles.userActionButton} {...onClickHandlers}>\n <Avatar aria-label={name} name={name} />\n </a>\n );\n }\n\n const onClickHandlers = createClickHandlers(status.onClickSignOut);\n\n return (\n <a tabIndex={0} className={styles.userActionButton} {...onClickHandlers}>\n <Avatar aria-label=\"Non connecté\" />\n </a>\n );\n}\n\nconst createClickHandlers = (onClick: () => void) => {\n const handleKeyUp: KeyboardEventHandler<HTMLAnchorElement> = (e) => {\n const correct = e.key === \"Enter\" || e.key === \" \";\n if (correct) {\n onClick();\n e.preventDefault();\n }\n };\n return {\n onClick: onClick,\n onKeyUp: handleKeyUp,\n };\n};\n"],"names":["useTitleBarStyles","makeStyles","tokens","TitleBar","hamburger","onClickHome","userStatus","applicationName","styles","jsx","jsxs","Home","Text","User","onClick","ref","useKeyboardNavAttribute","onClickHandlers","createClickHandlers","ChessRegular","status","Spinner","name","Avatar","e"],"mappings":";;;AAKA,MAAMA,IAAoBC,EAAW;AAAA,EACnC,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,OAAOC,EAAO;AAAA,IACd,iBAAiBA,EAAO;AAAA,IACxB,OAAO;AAAA,IACP,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,MACR,YAAYA,EAAO;AAAA,MACnB,QAAQ;AAAA,IAAA;AAAA,EACV;AAAA,EAEF,eAAe;AAAA,IACb,UAAU;AAAA,IACV,eAAe;AAAA,EAAA;AAAA,EAEjB,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,YAAY;AAAA,EAAA;AAAA,EAEd,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,EAAA;AAAA,EAElB,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,EAAA;AAAA,EAEX,kBAAkB;AAAA,IAChB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,EAAA;AAEf,CAAC;AAEM,SAASC,EAAS;AAAA,EACvB,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,iBAAAC;AACF,GAKG;AACD,QAAMC,IAASR,EAAA;AACf,SACE,gBAAAS,EAAC,SAAI,WAAWD,EAAO,MACrB,UAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWF,EAAO,QACpB,UAAA;AAAA,IAAAJ,sBAAa,OAAA,EAAI,WAAWI,EAAO,UAAW,aAAU,IAAS;AAAA,IAClE,gBAAAC,EAAC,SAAI,WAAWD,EAAO,UACrB,UAAA,gBAAAC,EAACE,GAAA,EAAK,SAASN,EAAA,CAAa,EAAA,CAC9B;AAAA,IACA,gBAAAI,EAAC,OAAA,EAAI,WAAWD,EAAO,OACrB,4BAACI,GAAA,EAAK,QAAO,YAAY,UAAAL,EAAA,CAAgB,EAAA,CAC3C;AAAA,IACA,gBAAAE,EAAC,SAAI,WAAWD,EAAO,SACrB,UAAA,gBAAAC,EAACI,GAAA,EAAK,QAAQP,EAAA,CAAY,EAAA,CAC5B;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;AAEA,SAASK,EAAK,EAAE,SAAAG,KAAoC;AAClD,QAAMN,IAASR,EAAA,GACTe,IAAMC,EAAA,GACNC,IAAkBC,EAAoBJ,CAAO;AACnD,2BACG,KAAA,EAAE,UAAU,GAAI,GAAGG,GAAiB,WAAWT,EAAO,MAAM,cAAW,WAAU,KAAAO,GAChF,UAAA,gBAAAN,EAACU,KAAa,WAAWX,EAAO,eAAe,GACjD;AAEJ;AAEA,SAASK,EAAK,EAAE,QAAAO,KAAkC;AAChD,QAAMZ,IAASR,EAAA;AAEf,MAAIoB,EAAO;AACT,6BAAQC,GAAA,EAAQ;AAGlB,MAAID,EAAO;AACT,6BAAQ,OAAA,EAAI,UAAA;AAAA,MAAA;AAAA,MAASA,EAAO;AAAA,IAAA,GAAa;AAG3C,MAAIA,EAAO,iBAAiB;AAC1B,UAAME,IAAOF,EAAO,YAAY,IAC1BH,IAAkBC,EAAoBE,EAAO,aAAa;AAChE,WACE,gBAAAX,EAAC,KAAA,EAAE,UAAU,GAAG,WAAWD,EAAO,kBAAmB,GAAGS,GACtD,UAAA,gBAAAR,EAACc,GAAA,EAAO,cAAYD,GAAM,MAAAA,GAAY,GACxC;AAAA,EAEJ;AAEA,QAAML,IAAkBC,EAAoBE,EAAO,cAAc;AAEjE,SACE,gBAAAX,EAAC,KAAA,EAAE,UAAU,GAAG,WAAWD,EAAO,kBAAmB,GAAGS,GACtD,UAAA,gBAAAR,EAACc,GAAA,EAAO,cAAW,gBAAe,GACpC;AAEJ;AAEA,MAAML,IAAsB,CAACJ,OAQpB;AAAA,EACL,SAAAA;AAAA,EACA,SAT2D,CAACU,MAAM;AAElE,KADgBA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,SAE7CV,EAAA,GACAU,EAAE,eAAA;AAAA,EAEN;AAGW;"}
@@ -0,0 +1,5 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export declare function Badge({ color, children }: {
3
+ color: "yellow" | "gray";
4
+ } & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/lib/badge/Badge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,wBAAgB,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAA;CAAE,GAAG,iBAAiB,2CAG1F"}
@@ -0,0 +1,9 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { Badge as n } from "@fluentui/react-components";
3
+ function f({ color: o, children: r }) {
4
+ return /* @__PURE__ */ a(n, { color: o === "yellow" ? "warning" : o === "gray" ? "informative" : "brand", children: r });
5
+ }
6
+ export {
7
+ f as Badge
8
+ };
9
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sources":["../../../src/lib/badge/Badge.tsx"],"sourcesContent":["import { Badge as FluentBadge, BadgeProps } from \"@fluentui/react-components\";\nimport { PropsWithChildren } from \"react\";\n\nexport function Badge({ color, children }: { color: \"yellow\" | \"gray\" } & PropsWithChildren) {\n const finalColor: BadgeProps[\"color\"] = color === \"yellow\" ? \"warning\" : color === \"gray\" ? \"informative\" : \"brand\";\n return <FluentBadge color={finalColor}>{children}</FluentBadge>;\n}\n"],"names":["Badge","color","children","jsx","FluentBadge"],"mappings":";;AAGO,SAASA,EAAM,EAAE,OAAAC,GAAO,UAAAC,KAA8D;AAE3F,SAAO,gBAAAC,EAACC,GAAA,EAAY,OADoBH,MAAU,WAAW,YAAYA,MAAU,SAAS,gBAAgB,SACpE,UAAAC,EAAA,CAAS;AACnD;"}
@@ -0,0 +1,16 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export declare function Button({ children, variant, disabled, onClick, }: {
3
+ /**
4
+ * Primary for main action buttons (OK, Next, etc.), "secondary" for Cancel, Back and secondary actions
5
+ */
6
+ variant?: "primary" | "secondary";
7
+ /**
8
+ * When it should be disabled, set it to true. If not specified or false, will not be disabled
9
+ */
10
+ disabled?: boolean;
11
+ /**
12
+ * When button is clicked
13
+ */
14
+ onClick: () => void;
15
+ } & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/lib/button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,OAAO,GACR,EAAE;IACD;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,GAAE,iBAAiB,2CAUnB"}
@@ -0,0 +1,15 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { Button as i } from "@fluentui/react-components";
3
+ function s({
4
+ children: t,
5
+ variant: e,
6
+ disabled: o = !1,
7
+ onClick: a
8
+ }) {
9
+ let r;
10
+ return e === "secondary" ? r = "secondary" : r = "primary", /* @__PURE__ */ n(i, { appearance: r, disabled: o, onClick: a, children: t });
11
+ }
12
+ export {
13
+ s as Button
14
+ };
15
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../../../src/lib/button/Button.tsx"],"sourcesContent":["import { Button as FluentButton, ButtonProps } from \"@fluentui/react-components\";\nimport { PropsWithChildren } from \"react\";\n\nexport function Button({\n children,\n variant,\n disabled = false,\n onClick,\n}: {\n /**\n * Primary for main action buttons (OK, Next, etc.), \"secondary\" for Cancel, Back and secondary actions\n */\n variant?: \"primary\" | \"secondary\";\n /**\n * When it should be disabled, set it to true. If not specified or false, will not be disabled\n */\n disabled?: boolean;\n /**\n * When button is clicked\n */\n onClick: () => void;\n}& PropsWithChildren) {\n let mantineVariant: ButtonProps[\"appearance\"] | undefined = undefined;\n if (variant === \"secondary\") mantineVariant = \"secondary\";\n else if (variant === \"primary\") mantineVariant = \"primary\";\n else mantineVariant = \"primary\";\n return (\n <FluentButton appearance={mantineVariant} disabled={disabled} onClick={onClick}>\n {children}\n </FluentButton>\n );\n}\n"],"names":["Button","children","variant","disabled","onClick","mantineVariant","FluentButton"],"mappings":";;AAGO,SAASA,EAAO;AAAA,EACrB,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AACF,GAasB;AACpB,MAAIC;AACJ,SAAIH,MAAY,cAAaG,IAAiB,cACdA,IAAiB,6BAG9CC,GAAA,EAAa,YAAYD,GAAgB,UAAAF,GAAoB,SAAAC,GAC3D,UAAAH,GACH;AAEJ;"}
@@ -0,0 +1,5 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export declare function ButtonBar({ children, variant, }: {
3
+ variant?: "default" | "table_bottom_actions";
4
+ } & PropsWithChildren): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=ButtonBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonBar.d.ts","sourceRoot":"","sources":["../../../src/lib/button_bar/ButtonBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAarD,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,OAAmB,GACpB,EAAE;IACD,OAAO,CAAC,EAAE,SAAS,GAAG,sBAAsB,CAAC;CAC9C,GAAG,iBAAiB,2CAOpB"}
@@ -0,0 +1,26 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { makeStyles as i, tokens as o, mergeClasses as l } from "@fluentui/react-components";
3
+ const r = i({
4
+ root: {
5
+ display: "flex",
6
+ columnGap: o.spacingHorizontalM
7
+ },
8
+ variant_table_bottom_actions: {
9
+ marginTop: o.spacingVerticalL,
10
+ justifyContent: "flex-end"
11
+ }
12
+ });
13
+ function p({
14
+ children: a,
15
+ variant: s = "default"
16
+ }) {
17
+ const t = r(), e = l(
18
+ t.root,
19
+ s === "table_bottom_actions" ? t.variant_table_bottom_actions : void 0
20
+ );
21
+ return /* @__PURE__ */ n("div", { className: e, children: a });
22
+ }
23
+ export {
24
+ p as ButtonBar
25
+ };
26
+ //# sourceMappingURL=ButtonBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonBar.js","sources":["../../../src/lib/button_bar/ButtonBar.tsx"],"sourcesContent":["import { makeStyles, mergeClasses, tokens } from \"@fluentui/react-components\";\nimport { PropsWithChildren, ReactNode } from \"react\";\n\nconst useStyles = makeStyles({\n root: {\n display: \"flex\",\n columnGap: tokens.spacingHorizontalM,\n },\n variant_table_bottom_actions: {\n marginTop: tokens.spacingVerticalL,\n justifyContent: \"flex-end\",\n },\n});\n\nexport function ButtonBar({\n children,\n variant = \"default\",\n}: {\n variant?: \"default\" | \"table_bottom_actions\";\n} & PropsWithChildren) {\n const styles = useStyles();\n const classNames = mergeClasses(\n styles.root,\n variant === \"table_bottom_actions\" ? styles.variant_table_bottom_actions : undefined,\n );\n return <div className={classNames}>{children}</div>;\n}\n"],"names":["useStyles","makeStyles","tokens","ButtonBar","children","variant","styles","classNames","mergeClasses","jsx"],"mappings":";;AAGA,MAAMA,IAAYC,EAAW;AAAA,EAC3B,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,WAAWC,EAAO;AAAA,EAAA;AAAA,EAEpB,8BAA8B;AAAA,IAC5B,WAAWA,EAAO;AAAA,IAClB,gBAAgB;AAAA,EAAA;AAEpB,CAAC;AAEM,SAASC,EAAU;AAAA,EACxB,UAAAC;AAAA,EACA,SAAAC,IAAU;AACZ,GAEuB;AACrB,QAAMC,IAASN,EAAA,GACTO,IAAaC;AAAA,IACjBF,EAAO;AAAA,IACPD,MAAY,yBAAyBC,EAAO,+BAA+B;AAAA,EAAA;AAE7E,SAAO,gBAAAG,EAAC,OAAA,EAAI,WAAWF,GAAa,UAAAH,EAAA,CAAS;AAC/C;"}
@@ -0,0 +1,5 @@
1
+ export interface CommonUiProps {
2
+ }
3
+ export declare function CommonUi(props: CommonUiProps): import("react/jsx-runtime").JSX.Element;
4
+ export default CommonUi;
5
+ //# sourceMappingURL=common-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-ui.d.ts","sourceRoot":"","sources":["../../src/lib/common-ui.tsx"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;CAAG;AAEjC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAM5C;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ function i(r) {
3
+ return /* @__PURE__ */ o("div", { children: /* @__PURE__ */ o("h1", { children: "Welcome to CommonUi!" }) });
4
+ }
5
+ export {
6
+ i as CommonUi,
7
+ i as default
8
+ };
9
+ //# sourceMappingURL=common-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-ui.js","sources":["../../src/lib/common-ui.tsx"],"sourcesContent":["/* eslint-disable-next-line */\nexport interface CommonUiProps {}\n\nexport function CommonUi(props: CommonUiProps) {\n return (\n <div>\n <h1>Welcome to CommonUi!</h1>\n </div>\n );\n}\n\nexport default CommonUi;\n"],"names":["CommonUi","props","jsx"],"mappings":";AAGO,SAASA,EAASC,GAAsB;AAC7C,SACE,gBAAAC,EAAC,OAAA,EACC,UAAA,gBAAAA,EAAC,MAAA,EAAG,kCAAoB,GAC1B;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ export declare function toCurrencySymbolSafe(code: string | null | undefined): string | undefined;
2
+ //# sourceMappingURL=currencysymbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currencysymbol.d.ts","sourceRoot":"","sources":["../../../src/lib/commons/currencysymbol.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAUxF"}
@@ -0,0 +1,15 @@
1
+ import { toCurrencySymbol as t } from "@seij/common-types";
2
+ function i(r) {
3
+ if (r !== null) {
4
+ if (r === void 0 || r.length == 0 || r.length != 3) return r;
5
+ try {
6
+ return t(r);
7
+ } catch {
8
+ return r;
9
+ }
10
+ }
11
+ }
12
+ export {
13
+ i as toCurrencySymbolSafe
14
+ };
15
+ //# sourceMappingURL=currencysymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currencysymbol.js","sources":["../../../src/lib/commons/currencysymbol.ts"],"sourcesContent":["import { toCurrencySymbol } from \"@seij/common-types\";\n\nexport function toCurrencySymbolSafe(code: string | null | undefined): string | undefined {\n if (code === null) return undefined;\n if (code === undefined) return code;\n if (code.length == 0) return code;\n if (code.length != 3) return code;\n try {\n return toCurrencySymbol(code);\n } catch (err) {\n return code;\n }\n}\n"],"names":["toCurrencySymbolSafe","code","toCurrencySymbol"],"mappings":";AAEO,SAASA,EAAqBC,GAAqD;AACxF,MAAIA,MAAS,MAGb;AAAA,QAFIA,MAAS,UACTA,EAAK,UAAU,KACfA,EAAK,UAAU,EAAG,QAAOA;AAC7B,QAAI;AACF,aAAOC,EAAiBD,CAAI;AAAA,IAC9B,QAAc;AACZ,aAAOA;AAAA,IACT;AAAA;AACF;"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The problem in Chrome is that when it detects special names in labels
3
+ * or titles or names or placeholders near a form field (rules changes)
4
+ * it proposes to autofill or autocomplete the form field, which is
5
+ * an heresy for ERP systems.
6
+ *
7
+ * This methods tends to obfuscate a label as a string so the browser doesn't
8
+ * recognise it.
9
+ *
10
+ * We try to do that preserving accessibility by introducing special invisible
11
+ * characters in the text at random places.
12
+ *
13
+ * @param str string to obfuscate
14
+ * @returns obfuscated string
15
+ */
16
+ export declare function obfuscateLabel(str: string): string;
17
+ //# sourceMappingURL=obfuscatelabel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obfuscatelabel.d.ts","sourceRoot":"","sources":["../../../src/lib/commons/obfuscatelabel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,UAqBzC"}
@@ -0,0 +1,23 @@
1
+ function r(a) {
2
+ const e = [
3
+ "​",
4
+ // zero-width space
5
+ "‌",
6
+ // zero-width non-joiner
7
+ "‍",
8
+ // zero-width joiner
9
+ "⁠"
10
+ // word joiner
11
+ ];
12
+ let t = "";
13
+ for (let o = 0; o < a.length; o++)
14
+ if (t += a[o], Math.random() < 0.5) {
15
+ const n = e[Math.floor(Math.random() * e.length)];
16
+ t += n;
17
+ }
18
+ return t;
19
+ }
20
+ export {
21
+ r as obfuscateLabel
22
+ };
23
+ //# sourceMappingURL=obfuscatelabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obfuscatelabel.js","sources":["../../../src/lib/commons/obfuscatelabel.ts"],"sourcesContent":["/**\n * The problem in Chrome is that when it detects special names in labels\n * or titles or names or placeholders near a form field (rules changes)\n * it proposes to autofill or autocomplete the form field, which is\n * an heresy for ERP systems.\n *\n * This methods tends to obfuscate a label as a string so the browser doesn't\n * recognise it.\n *\n * We try to do that preserving accessibility by introducing special invisible\n * characters in the text at random places.\n *\n * @param str string to obfuscate\n * @returns obfuscated string\n */\nexport function obfuscateLabel(str: string) {\n const obfuscators = [\n \"\\u200B\", // zero-width space\n \"\\u200C\", // zero-width non-joiner\n \"\\u200D\", // zero-width joiner\n \"\\u2060\", // word joiner\n ];\n\n let result = \"\";\n\n for (let i = 0; i < str.length; i++) {\n result += str[i];\n\n // 50 % de chance d'ajouter un obfuscateur après chaque caractère\n if (Math.random() < 0.5) {\n const char = obfuscators[Math.floor(Math.random() * obfuscators.length)];\n result += char;\n }\n }\n\n return result;\n}\n"],"names":["obfuscateLabel","str","obfuscators","result","i","char"],"mappings":"AAeO,SAASA,EAAeC,GAAa;AAC1C,QAAMC,IAAc;AAAA,IAClB;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,EAAA;AAGF,MAAIC,IAAS;AAEb,WAASC,IAAI,GAAGA,IAAIH,EAAI,QAAQG;AAI9B,QAHAD,KAAUF,EAAIG,CAAC,GAGX,KAAK,OAAA,IAAW,KAAK;AACvB,YAAMC,IAAOH,EAAY,KAAK,MAAM,KAAK,OAAA,IAAWA,EAAY,MAAM,CAAC;AACvE,MAAAC,KAAUE;AAAA,IACZ;AAGF,SAAOF;AACT;"}
@@ -0,0 +1,32 @@
1
+ import { HTMLProps, ReactNode } from 'react';
2
+ export interface DataTableProps extends Pick<HTMLProps<HTMLTableElement>, "style" | "className"> {
3
+ children: ReactNode;
4
+ }
5
+ /**
6
+ * Data table with one of the application's styles.
7
+ * Handles cell formats for numbers, alignments, and compatibility with legacy CSS.
8
+ */
9
+ export declare const DataTable: (props: DataTableProps) => import("react/jsx-runtime").JSX.Element;
10
+ export declare const DataTableHead: ({ children }: {
11
+ children: ReactNode;
12
+ }) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const DataTableRow: ({ children }: {
14
+ children: ReactNode;
15
+ }) => import("react/jsx-runtime").JSX.Element;
16
+ export type DataTableCellProps = Pick<HTMLProps<HTMLTableCellElement>, "children" | "className" | "colSpan"> & {
17
+ /**
18
+ * Cell variant.
19
+ * - "number": displays numbers (right-aligned)
20
+ * - "text": everything is left-aligned (including headers)
21
+ * - "auto": header is centered, cells are left-aligned
22
+ * - "title": header is centered, bold, with padding
23
+ * - "date": centered
24
+ * Otherwise, text is left-aligned
25
+ */
26
+ variant?: "auto" | "text" | "number" | "date";
27
+ };
28
+ export declare const DataTableHeaderCell: ({ children, variant, ...otherProps }: DataTableCellProps) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const DataTableCell: ({ children, variant, ...otherProps }: DataTableCellProps) => import("react/jsx-runtime").JSX.Element;
30
+ export declare const DataTableBody: ({ children, ...otherProps }: Pick<HTMLProps<HTMLTableSectionElement>, "children" | "className">) => import("react/jsx-runtime").JSX.Element;
31
+ export declare const DataTableCaption: ({ children, ...otherProps }: Pick<HTMLProps<HTMLTableCaptionElement>, "children" | "className">) => import("react/jsx-runtime").JSX.Element | null;
32
+ //# sourceMappingURL=DataTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../src/lib/data_table/DataTable.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7C,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC9F,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,4CAO9C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAElE,CAAC;AACF,eAAO,MAAM,YAAY,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAEjE,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,GAAG;IAC7G;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC/C,CAAC;AASF,eAAO,MAAM,mBAAmB,GAAI,sCAAsC,kBAAkB,4CAQ3F,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,sCAAsC,kBAAkB,4CAQrF,CAAC;AACF,eAAO,MAAM,aAAa,GAAI,6BAG3B,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,4CAEpE,CAAC;AAOF,eAAO,MAAM,gBAAgB,GAAI,6BAG9B,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,mDAQpE,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { makeStyles as c, tokens as i, makeResetStyles as b, Table as d, TableHeader as m, TableRow as u, mergeClasses as o, TableHeaderCell as T, TableCell as y, TableBody as C, Caption1 as p } from "@fluentui/react-components";
3
+ const g = (e) => {
4
+ const { children: t, ...a } = e;
5
+ return /* @__PURE__ */ l(d, { size: "small", ...a, children: t });
6
+ }, h = ({ children: e }) => /* @__PURE__ */ l(m, { children: e }), S = ({ children: e }) => /* @__PURE__ */ l(u, { children: e }), r = c({
7
+ headerCell: { fontWeight: i.fontWeightBold },
8
+ auto: {},
9
+ text: {},
10
+ number: { textAlign: "right", whiteSpace: "nowrap", "> div": { justifyContent: "flex-end" } },
11
+ date: { textAlign: "right", whiteSpace: "nowrap", "> div": { justifyContent: "flex-end" } }
12
+ }), w = ({ children: e, variant: t, ...a }) => {
13
+ const s = r(), n = o(s[t || "text"], s.headerCell, a.className);
14
+ return /* @__PURE__ */ l(T, { ...a, className: n, children: e });
15
+ }, N = ({ children: e, variant: t, ...a }) => {
16
+ const s = r(), n = o(s[t || "text"], a.className);
17
+ return /* @__PURE__ */ l(y, { ...a, className: n, children: e });
18
+ }, H = ({
19
+ children: e,
20
+ ...t
21
+ }) => /* @__PURE__ */ l(C, { ...t, children: e }), f = b({
22
+ captionSide: "bottom",
23
+ textAlign: "left"
24
+ }), j = ({
25
+ children: e,
26
+ ...t
27
+ }) => {
28
+ const a = o(f(), t.className);
29
+ return e ? /* @__PURE__ */ l("caption", { className: a, children: /* @__PURE__ */ l(p, { children: e }) }) : null;
30
+ };
31
+ export {
32
+ g as DataTable,
33
+ H as DataTableBody,
34
+ j as DataTableCaption,
35
+ N as DataTableCell,
36
+ h as DataTableHead,
37
+ w as DataTableHeaderCell,
38
+ S as DataTableRow
39
+ };
40
+ //# sourceMappingURL=DataTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.js","sources":["../../../src/lib/data_table/DataTable.tsx"],"sourcesContent":["import {\n Caption1,\n makeResetStyles,\n makeStyles,\n mergeClasses,\n Table,\n TableBody,\n TableCell,\n TableHeader,\n TableHeaderCell,\n TableRow,\n tokens,\n} from \"@fluentui/react-components\";\nimport { HTMLProps, ReactNode } from \"react\";\n\nexport interface DataTableProps extends Pick<HTMLProps<HTMLTableElement>, \"style\" | \"className\"> {\n children: ReactNode;\n}\n\n/**\n * Data table with one of the application's styles.\n * Handles cell formats for numbers, alignments, and compatibility with legacy CSS.\n */\nexport const DataTable = (props: DataTableProps) => {\n const { children, ...otherProps } = props;\n return (\n <Table size=\"small\" {...otherProps}>\n {children}\n </Table>\n );\n};\n\nexport const DataTableHead = ({ children }: { children: ReactNode }) => {\n return <TableHeader>{children}</TableHeader>;\n};\nexport const DataTableRow = ({ children }: { children: ReactNode }) => {\n return <TableRow>{children}</TableRow>;\n};\nexport type DataTableCellProps = Pick<HTMLProps<HTMLTableCellElement>, \"children\" | \"className\" | \"colSpan\"> & {\n /**\n * Cell variant.\n * - \"number\": displays numbers (right-aligned)\n * - \"text\": everything is left-aligned (including headers)\n * - \"auto\": header is centered, cells are left-aligned\n * - \"title\": header is centered, bold, with padding\n * - \"date\": centered\n * Otherwise, text is left-aligned\n */\n variant?: \"auto\" | \"text\" | \"number\" | \"date\";\n};\nconst useDataTableCellStyles = makeStyles({\n headerCell: { fontWeight: tokens.fontWeightBold },\n auto: {},\n text: {},\n number: { textAlign: \"right\", whiteSpace: \"nowrap\", \"> div\": { justifyContent: \"flex-end\" } },\n date: { textAlign: \"right\", whiteSpace: \"nowrap\", \"> div\": { justifyContent: \"flex-end\" } },\n});\n\nexport const DataTableHeaderCell = ({ children, variant, ...otherProps }: DataTableCellProps) => {\n const styles = useDataTableCellStyles();\n const styleVariant = mergeClasses(styles[variant || \"text\"], styles.headerCell, otherProps.className);\n return (\n <TableHeaderCell {...otherProps} className={styleVariant}>\n {children}\n </TableHeaderCell>\n );\n};\n\nexport const DataTableCell = ({ children, variant, ...otherProps }: DataTableCellProps) => {\n const styles = useDataTableCellStyles();\n const styleVariant = mergeClasses(styles[variant || \"text\"], otherProps.className);\n return (\n <TableCell {...otherProps} className={styleVariant}>\n {children}\n </TableCell>\n );\n};\nexport const DataTableBody = ({\n children,\n ...otherProps\n}: Pick<HTMLProps<HTMLTableSectionElement>, \"children\" | \"className\">) => {\n return <TableBody {...otherProps}>{children}</TableBody>;\n};\n\nconst useDataTableCaptionStyles = makeResetStyles({\n captionSide: \"bottom\",\n textAlign: \"left\",\n});\n\nexport const DataTableCaption = ({\n children,\n ...otherProps\n}: Pick<HTMLProps<HTMLTableCaptionElement>, \"children\" | \"className\">) => {\n const styles = mergeClasses(useDataTableCaptionStyles(), otherProps.className);\n if (!children) return null;\n return (\n <caption className={styles}>\n <Caption1>{children}</Caption1>\n </caption>\n );\n};\n"],"names":["DataTable","props","children","otherProps","Table","DataTableHead","jsx","TableHeader","DataTableRow","TableRow","useDataTableCellStyles","makeStyles","tokens","DataTableHeaderCell","variant","styles","styleVariant","mergeClasses","TableHeaderCell","DataTableCell","TableCell","DataTableBody","TableBody","useDataTableCaptionStyles","makeResetStyles","DataTableCaption","Caption1"],"mappings":";;AAuBO,MAAMA,IAAY,CAACC,MAA0B;AAClD,QAAM,EAAE,UAAAC,GAAU,GAAGC,EAAA,IAAeF;AACpC,2BACGG,GAAA,EAAM,MAAK,SAAS,GAAGD,GACrB,UAAAD,GACH;AAEJ,GAEaG,IAAgB,CAAC,EAAE,UAAAH,QACvB,gBAAAI,EAACC,KAAa,UAAAL,GAAS,GAEnBM,IAAe,CAAC,EAAE,UAAAN,QACtB,gBAAAI,EAACG,KAAU,UAAAP,GAAS,GAcvBQ,IAAyBC,EAAW;AAAA,EACxC,YAAY,EAAE,YAAYC,EAAO,eAAA;AAAA,EACjC,MAAM,CAAA;AAAA,EACN,MAAM,CAAA;AAAA,EACN,QAAQ,EAAE,WAAW,SAAS,YAAY,UAAU,SAAS,EAAE,gBAAgB,aAAW;AAAA,EAC1F,MAAM,EAAE,WAAW,SAAS,YAAY,UAAU,SAAS,EAAE,gBAAgB,WAAA,EAAW;AAC1F,CAAC,GAEYC,IAAsB,CAAC,EAAE,UAAAX,GAAU,SAAAY,GAAS,GAAGX,QAAqC;AAC/F,QAAMY,IAASL,EAAA,GACTM,IAAeC,EAAaF,EAAOD,KAAW,MAAM,GAAGC,EAAO,YAAYZ,EAAW,SAAS;AACpG,2BACGe,GAAA,EAAiB,GAAGf,GAAY,WAAWa,GACzC,UAAAd,GACH;AAEJ,GAEaiB,IAAgB,CAAC,EAAE,UAAAjB,GAAU,SAAAY,GAAS,GAAGX,QAAqC;AACzF,QAAMY,IAASL,EAAA,GACTM,IAAeC,EAAaF,EAAOD,KAAW,MAAM,GAAGX,EAAW,SAAS;AACjF,2BACGiB,GAAA,EAAW,GAAGjB,GAAY,WAAWa,GACnC,UAAAd,GACH;AAEJ,GACamB,IAAgB,CAAC;AAAA,EAC5B,UAAAnB;AAAA,EACA,GAAGC;AACL,MACS,gBAAAG,EAACgB,GAAA,EAAW,GAAGnB,GAAa,UAAAD,EAAA,CAAS,GAGxCqB,IAA4BC,EAAgB;AAAA,EAChD,aAAa;AAAA,EACb,WAAW;AACb,CAAC,GAEYC,IAAmB,CAAC;AAAA,EAC/B,UAAAvB;AAAA,EACA,GAAGC;AACL,MAA0E;AACxE,QAAMY,IAASE,EAAaM,EAAA,GAA6BpB,EAAW,SAAS;AAC7E,SAAKD,sBAEF,WAAA,EAAQ,WAAWa,GAClB,UAAA,gBAAAT,EAACoB,GAAA,EAAU,UAAAxB,GAAS,EAAA,CACtB,IAJoB;AAMxB;"}
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ export type DataTableDynamicColumn<T> = {
3
+ code: string;
4
+ label: string;
5
+ render: (row: T) => ReactNode;
6
+ style?: React.CSSProperties | undefined;
7
+ };
8
+ export declare function DataTableDynamic<T>({ columns, data, idExtractor, onClickRow, }: {
9
+ columns: DataTableDynamicColumn<T>[];
10
+ data: T[];
11
+ idExtractor?: (row: T) => string;
12
+ onClickRow?: (row: T) => void;
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=DataTableDynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableDynamic.d.ts","sourceRoot":"","sources":["../../../src/lib/datatabledynamic/DataTableDynamic.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAClC,OAAO,EACP,IAAI,EACJ,WAA+D,EAC/D,UAEC,GACF,EAAE;IACD,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;CAC/B,2CAyBA"}
@@ -0,0 +1,18 @@
1
+ import { jsxs as s, jsx as l } from "react/jsx-runtime";
2
+ import { Table as h, TableHeader as m, TableRow as i, TableHeaderCell as b, TableBody as T, TableCell as c } from "@fluentui/react-components";
3
+ function y({
4
+ columns: r,
5
+ data: n,
6
+ idExtractor: t = (e) => e.id ?? "",
7
+ onClickRow: d = (e) => {
8
+ }
9
+ }) {
10
+ return /* @__PURE__ */ s(h, { size: "small", "min-width": 700, children: [
11
+ /* @__PURE__ */ l(m, { children: /* @__PURE__ */ l(i, { children: r.map((e) => /* @__PURE__ */ l(b, { as: "th", style: e.style, children: e.label }, e.code)) }) }),
12
+ /* @__PURE__ */ l(T, { children: n.map((e) => /* @__PURE__ */ l(i, { onClick: d ? () => d(e) : void 0, children: r.map((a) => /* @__PURE__ */ l(c, { as: "td", style: a.style, children: a.render(e) }, a.code)) }, t(e))) })
13
+ ] });
14
+ }
15
+ export {
16
+ y as DataTableDynamic
17
+ };
18
+ //# sourceMappingURL=DataTableDynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableDynamic.js","sources":["../../../src/lib/datatabledynamic/DataTableDynamic.tsx"],"sourcesContent":["import { Table, TableBody, TableCell, TableHeader, TableHeaderCell, TableRow } from \"@fluentui/react-components\";\nimport { ReactNode } from \"react\";\n\nexport type DataTableDynamicColumn<T> = {\n code: string;\n label: string;\n render: (row: T) => ReactNode;\n style?: React.CSSProperties | undefined;\n};\n\nexport function DataTableDynamic<T>({\n columns,\n data,\n idExtractor = (row) => (row as Record<string, any>)[\"id\"] ?? \"\",\n onClickRow = (row: T) => {\n /* no-op by default */\n },\n}: {\n columns: DataTableDynamicColumn<T>[];\n data: T[];\n idExtractor?: (row: T) => string;\n onClickRow?: (row: T) => void;\n}) {\n return (\n <Table size=\"small\" min-width={700}>\n <TableHeader>\n <TableRow>\n {columns.map((col) => (\n <TableHeaderCell key={col.code} as=\"th\" style={col.style}>\n {col.label}\n </TableHeaderCell>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {data.map((it) => (\n <TableRow key={idExtractor(it)} onClick={onClickRow ? () => onClickRow(it) : undefined}>\n {columns.map((col) => (\n <TableCell as=\"td\" key={col.code} style={col.style}>\n {col.render(it)}\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n}\n"],"names":["DataTableDynamic","columns","data","idExtractor","row","onClickRow","jsxs","Table","jsx","TableHeader","TableRow","col","TableHeaderCell","TableBody","it","TableCell"],"mappings":";;AAUO,SAASA,EAAoB;AAAA,EAClC,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC,IAAc,CAACC,MAASA,EAA4B,MAAS;AAAA,EAC7D,YAAAC,IAAa,CAACD,MAAW;AAAA,EAEzB;AACF,GAKG;AACD,SACE,gBAAAE,EAACC,GAAA,EAAM,MAAK,SAAQ,aAAW,KAC7B,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EACC,4BAACC,GAAA,EACE,UAAAT,EAAQ,IAAI,CAACU,wBACXC,GAAA,EAA+B,IAAG,MAAK,OAAOD,EAAI,OAChD,UAAAA,EAAI,MAAA,GADeA,EAAI,IAE1B,CACD,GACH,EAAA,CACF;AAAA,sBACCE,GAAA,EACE,UAAAX,EAAK,IAAI,CAACY,MACT,gBAAAN,EAACE,GAAA,EAA+B,SAASL,IAAa,MAAMA,EAAWS,CAAE,IAAI,QAC1E,UAAAb,EAAQ,IAAI,CAACU,MACZ,gBAAAH,EAACO,GAAA,EAAU,IAAG,MAAoB,OAAOJ,EAAI,OAC1C,YAAI,OAAOG,CAAE,EAAA,GADQH,EAAI,IAE5B,CACD,EAAA,GALYR,EAAYW,CAAE,CAM7B,CACD,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ export declare const DeviseContext: import('react').Context<string>;
2
+ //# sourceMappingURL=DeviseContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviseContext.d.ts","sourceRoot":"","sources":["../../../src/lib/devise/DeviseContext.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,iCAA6B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { createContext as t } from "react";
2
+ const o = t("€");
3
+ export {
4
+ o as DeviseContext
5
+ };
6
+ //# sourceMappingURL=DeviseContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviseContext.js","sources":["../../../src/lib/devise/DeviseContext.ts"],"sourcesContent":["import { createContext } from \"react\";\n\nexport const DeviseContext = createContext<string>(\"€\");\n"],"names":["DeviseContext","createContext"],"mappings":";AAEO,MAAMA,IAAgBC,EAAsB,GAAG;"}
@@ -0,0 +1,6 @@
1
+ import { Problem } from '../../../../common-types/src/index.ts';
2
+ export declare function ErrorManager(): import("react/jsx-runtime").JSX.Element;
3
+ export declare const useErrorNotifier: () => {
4
+ errorNotifier: (error: Problem | null | undefined) => void;
5
+ };
6
+ //# sourceMappingURL=ErrorNotifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorNotifier.d.ts","sourceRoot":"","sources":["../../../src/lib/error_notifier/ErrorNotifier.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAa7C,wBAAgB,YAAY,4CAE3B;AAED,eAAO,MAAM,gBAAgB;2BAEO,OAAO,GAAG,IAAI,GAAG,SAAS;CAmB7D,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
2
+ import { Toaster as n, useToastController as a, Toast as s, ToastTitle as c, ToastTrigger as p, Link as u, ToastBody as d } from "@fluentui/react-components";
3
+ const o = "toaster-error-manager";
4
+ function h() {
5
+ return /* @__PURE__ */ r(n, { toasterId: o, position: "top", pauseOnWindowBlur: !0, pauseOnHover: !0 });
6
+ }
7
+ const m = () => {
8
+ const { dispatchToast: e } = a(o);
9
+ return { errorNotifier: (t) => {
10
+ t && e(
11
+ /* @__PURE__ */ i(s, { appearance: "inverted", children: [
12
+ /* @__PURE__ */ r(
13
+ c,
14
+ {
15
+ action: /* @__PURE__ */ r(p, { children: /* @__PURE__ */ r(u, { children: "OK" }) }),
16
+ children: t.title
17
+ }
18
+ ),
19
+ /* @__PURE__ */ r(d, { children: t.detail })
20
+ ] }),
21
+ { intent: "error", timeout: 6e4, position: "top" }
22
+ );
23
+ } };
24
+ };
25
+ export {
26
+ h as ErrorManager,
27
+ m as useErrorNotifier
28
+ };
29
+ //# sourceMappingURL=ErrorNotifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorNotifier.js","sources":["../../../src/lib/error_notifier/ErrorNotifier.tsx"],"sourcesContent":["import { Problem } from \"@seij/common-types\";\nimport {\n Link,\n Toast,\n ToastBody,\n Toaster,\n ToastTitle,\n ToastTrigger,\n useToastController,\n} from \"@fluentui/react-components\";\n\nconst toasterId = \"toaster-error-manager\";\n\nexport function ErrorManager() {\n return <Toaster toasterId={toasterId} position=\"top\" pauseOnWindowBlur={true} pauseOnHover={true} />;\n}\n\nexport const useErrorNotifier = () => {\n const { dispatchToast } = useToastController(toasterId);\n const errorNotification = (error: Problem | null | undefined) => {\n if (!error) return;\n dispatchToast(\n <Toast appearance=\"inverted\">\n <ToastTitle\n action={\n <ToastTrigger>\n <Link>OK</Link>\n </ToastTrigger>\n }\n >\n {error.title}\n </ToastTitle>\n <ToastBody>{error.detail}</ToastBody>\n </Toast>,\n { intent: \"error\", timeout: 60_000, position: \"top\" },\n );\n };\n return { errorNotifier: errorNotification };\n};\n"],"names":["toasterId","ErrorManager","jsx","Toaster","useErrorNotifier","dispatchToast","useToastController","error","jsxs","Toast","ToastTitle","ToastTrigger","Link","ToastBody"],"mappings":";;AAWA,MAAMA,IAAY;AAEX,SAASC,IAAe;AAC7B,SAAO,gBAAAC,EAACC,KAAQ,WAAAH,GAAsB,UAAS,OAAM,mBAAmB,IAAM,cAAc,IAAM;AACpG;AAEO,MAAMI,IAAmB,MAAM;AACpC,QAAM,EAAE,eAAAC,EAAA,IAAkBC,EAAmBN,CAAS;AAmBtD,SAAO,EAAE,eAlBiB,CAACO,MAAsC;AAC/D,IAAKA,KACLF;AAAA,MACE,gBAAAG,EAACC,GAAA,EAAM,YAAW,YAChB,UAAA;AAAA,QAAA,gBAAAP;AAAA,UAACQ;AAAA,UAAA;AAAA,YACC,QACE,gBAAAR,EAACS,GAAA,EACC,UAAA,gBAAAT,EAACU,GAAA,EAAK,gBAAE,GACV;AAAA,YAGD,UAAAL,EAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QAET,gBAAAL,EAACW,GAAA,EAAW,UAAAN,EAAM,OAAA,CAAO;AAAA,MAAA,GAC3B;AAAA,MACA,EAAE,QAAQ,SAAS,SAAS,KAAQ,UAAU,MAAA;AAAA,IAAM;AAAA,EAExD,EACwB;AAC1B;"}
@@ -0,0 +1,6 @@
1
+ import { Problem } from '../../../../common-types/src/index.ts';
2
+ export declare const ErrorBox: ({ error, onClose }: {
3
+ error: Problem | null | undefined;
4
+ onClose?: () => void;
5
+ }) => import("react/jsx-runtime").JSX.Element | null;
6
+ //# sourceMappingURL=ErrorBox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBox.d.ts","sourceRoot":"","sources":["../../../src/lib/errorbox/ErrorBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAM7C,eAAO,MAAM,QAAQ,GAAI,oBAAoB;IAAE,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,mDAqBvG,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { jsxs as e, jsx as t } from "react/jsx-runtime";
2
+ import { MessageBar as s, MessageBarBody as a, MessageBarActions as l, Button as u } from "@fluentui/react-components";
3
+ import { DismissRegular as c } from "@fluentui/react-icons";
4
+ import { isNil as m } from "lodash-es";
5
+ import { useI18n as p } from "../i18n/i18n.react.js";
6
+ const _ = ({ error: r, onClose: n }) => {
7
+ const { t: o } = p();
8
+ if (!r) return null;
9
+ const i = r.title ?? o("errorbox_unknown_error", { error: r.status ? "" + r.status : o("errorbox_unknown_error_status") });
10
+ return /* @__PURE__ */ e(s, { intent: "error", layout: "multiline", children: [
11
+ /* @__PURE__ */ e(a, { children: [
12
+ /* @__PURE__ */ t("div", { children: i }),
13
+ /* @__PURE__ */ t("div", { children: r.detail })
14
+ ] }),
15
+ !m(n) && /* @__PURE__ */ t(
16
+ l,
17
+ {
18
+ containerAction: /* @__PURE__ */ t(u, { appearance: "transparent", icon: /* @__PURE__ */ t(c, {}), onClick: n })
19
+ }
20
+ )
21
+ ] });
22
+ };
23
+ export {
24
+ _ as ErrorBox
25
+ };
26
+ //# sourceMappingURL=ErrorBox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBox.js","sources":["../../../src/lib/errorbox/ErrorBox.tsx"],"sourcesContent":["import { Problem } from \"@seij/common-types\";\nimport { Button, MessageBar, MessageBarActions, MessageBarBody } from \"@fluentui/react-components\";\nimport { DismissRegular } from \"@fluentui/react-icons\";\nimport { isNil } from \"lodash-es\";\nimport { useI18n } from \"../i18n/i18n.react\";\n\nexport const ErrorBox = ({ error, onClose }: { error: Problem | null | undefined; onClose?: () => void }) => {\n const { t } = useI18n();\n\n if (!error) return null;\n const regularMessage =\n error.title ??\n t(\"errorbox_unknown_error\", { error: error.status ? \"\" + error.status : t(\"errorbox_unknown_error_status\") });\n\n return (\n <MessageBar intent=\"error\" layout=\"multiline\">\n <MessageBarBody>\n <div>{regularMessage}</div>\n <div>{error.detail}</div>\n </MessageBarBody>\n {!isNil(onClose) && (\n <MessageBarActions\n containerAction={<Button appearance=\"transparent\" icon={<DismissRegular />} onClick={onClose} />}\n ></MessageBarActions>\n )}\n </MessageBar>\n );\n};\n"],"names":["ErrorBox","error","onClose","t","useI18n","regularMessage","jsxs","MessageBar","MessageBarBody","jsx","isNil","MessageBarActions","Button","DismissRegular"],"mappings":";;;;;AAMO,MAAMA,IAAW,CAAC,EAAE,OAAAC,GAAO,SAAAC,QAA2E;AAC3G,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,MAAI,CAACH,EAAO,QAAO;AACnB,QAAMI,IACJJ,EAAM,SACNE,EAAE,0BAA0B,EAAE,OAAOF,EAAM,SAAS,KAAKA,EAAM,SAASE,EAAE,+BAA+B,GAAG;AAE9G,SACE,gBAAAG,EAACC,GAAA,EAAW,QAAO,SAAQ,QAAO,aAChC,UAAA;AAAA,IAAA,gBAAAD,EAACE,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAC,EAAC,SAAK,UAAAJ,EAAA,CAAe;AAAA,MACrB,gBAAAI,EAAC,OAAA,EAAK,UAAAR,EAAM,OAAA,CAAO;AAAA,IAAA,GACrB;AAAA,IACC,CAACS,EAAMR,CAAO,KACb,gBAAAO;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,iBAAiB,gBAAAF,EAACG,GAAA,EAAO,YAAW,eAAc,MAAM,gBAAAH,EAACI,GAAA,CAAA,CAAe,GAAI,SAASX,EAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAC/F,GAEL;AAEJ;"}