@erpsquad/common 1.10.4-test → 1.10.5-test

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 (153) hide show
  1. package/dist/chunks/{CssBaseline-D8lu6YB4.esm.js → CssBaseline-BCsBCxHw.esm.js} +2 -3
  2. package/dist/chunks/{CssBaseline-D8lu6YB4.esm.js.map → CssBaseline-BCsBCxHw.esm.js.map} +1 -1
  3. package/dist/chunks/{CssBaseline-DmJ9zaXo.js → CssBaseline-CaG36t1j.js} +3 -4
  4. package/dist/chunks/{CssBaseline-DmJ9zaXo.js.map → CssBaseline-CaG36t1j.js.map} +1 -1
  5. package/dist/chunks/{Tooltip-CyzCuxiz.js → Tooltip-BfYngwlu.js} +96 -97
  6. package/dist/chunks/{Tooltip-CyzCuxiz.js.map → Tooltip-BfYngwlu.js.map} +1 -1
  7. package/dist/chunks/{Tooltip-Db1YCjVB.esm.js → Tooltip-kVQVUXpu.esm.js} +7 -8
  8. package/dist/chunks/{Tooltip-Db1YCjVB.esm.js.map → Tooltip-kVQVUXpu.esm.js.map} +1 -1
  9. package/dist/chunks/{android-12-switch-BpR43WVN.esm.js → android-12-switch-C7HQfwOM.esm.js} +13 -14
  10. package/dist/chunks/{android-12-switch-BpR43WVN.esm.js.map → android-12-switch-C7HQfwOM.esm.js.map} +1 -1
  11. package/dist/chunks/{android-12-switch-DhfobhTE.js → android-12-switch-DW4fNSqZ.js} +223 -224
  12. package/dist/chunks/{android-12-switch-DhfobhTE.js.map → android-12-switch-DW4fNSqZ.js.map} +1 -1
  13. package/dist/chunks/{apiHelper-DrtX1wsE.js → apiHelper-BOjN9Hi2.js} +6 -6
  14. package/dist/chunks/{apiHelper-DrtX1wsE.js.map → apiHelper-BOjN9Hi2.js.map} +1 -1
  15. package/dist/chunks/{apiHelper-HTo6F1P7.esm.js → apiHelper-Bk1Svpxr.esm.js} +6 -6
  16. package/dist/chunks/{apiHelper-HTo6F1P7.esm.js.map → apiHelper-Bk1Svpxr.esm.js.map} +1 -1
  17. package/dist/chunks/{arrow-up-CzAYqkgy.js → arrow-up-DL3NGhTM.js} +47 -48
  18. package/dist/chunks/arrow-up-DL3NGhTM.js.map +1 -0
  19. package/dist/chunks/{arrow-up-iRf15n-y.esm.js → arrow-up-DazfQcnV.esm.js} +2 -3
  20. package/dist/chunks/arrow-up-DazfQcnV.esm.js.map +1 -0
  21. package/dist/chunks/{dashboard-C9j4Kzk8.js → dashboard-MOyqxPUY.js} +3 -4
  22. package/dist/chunks/dashboard-MOyqxPUY.js.map +1 -0
  23. package/dist/chunks/{dashboard-DY6kktI9.esm.js → dashboard-PY0CpaZg.esm.js} +2 -3
  24. package/dist/chunks/dashboard-PY0CpaZg.esm.js.map +1 -0
  25. package/dist/chunks/{default-data-B-pzy32C.js → default-data-BnKcMmCa.js} +12 -12
  26. package/dist/chunks/{default-data-B-pzy32C.js.map → default-data-BnKcMmCa.js.map} +1 -1
  27. package/dist/chunks/{default-data-CZZRGuJQ.esm.js → default-data-BpsCGp37.esm.js} +12 -12
  28. package/dist/chunks/{default-data-CZZRGuJQ.esm.js.map → default-data-BpsCGp37.esm.js.map} +1 -1
  29. package/dist/chunks/{document-COlmDW14.js → document-BFgGr8K0.js} +3 -4
  30. package/dist/chunks/document-BFgGr8K0.js.map +1 -0
  31. package/dist/chunks/{document-eayAKETK.esm.js → document-uNuadJTM.esm.js} +2 -3
  32. package/dist/chunks/document-uNuadJTM.esm.js.map +1 -0
  33. package/dist/chunks/{form-builder-deconversion-CPARvcpx.esm.js → form-builder-deconversion-CuZ3wtCF.esm.js} +3 -3
  34. package/dist/chunks/{form-builder-deconversion-CPARvcpx.esm.js.map → form-builder-deconversion-CuZ3wtCF.esm.js.map} +1 -1
  35. package/dist/chunks/{form-builder-deconversion-C-jHZZQX.js → form-builder-deconversion-D9-0eKfU.js} +3 -3
  36. package/dist/chunks/{form-builder-deconversion-C-jHZZQX.js.map → form-builder-deconversion-D9-0eKfU.js.map} +1 -1
  37. package/dist/chunks/{fullScreen-BZmLcvBd.esm.js → fullScreen-BYsXcZsz.esm.js} +3 -3
  38. package/dist/chunks/{fullScreen-BZmLcvBd.esm.js.map → fullScreen-BYsXcZsz.esm.js.map} +1 -1
  39. package/dist/chunks/{fullScreen-BlB0skIW.js → fullScreen-Dn9rdXui.js} +3 -3
  40. package/dist/chunks/{fullScreen-BlB0skIW.js.map → fullScreen-Dn9rdXui.js.map} +1 -1
  41. package/dist/chunks/{identifier-D2PZ045Y.js → identifier-BTBl-PeG.js} +166 -69
  42. package/dist/chunks/identifier-BTBl-PeG.js.map +1 -0
  43. package/dist/chunks/{identifier-cOOk7M93.esm.js → identifier-l1qZ_-Do.esm.js} +178 -81
  44. package/dist/chunks/identifier-l1qZ_-Do.esm.js.map +1 -0
  45. package/dist/chunks/{languageContext-B9ZrKauM.esm.js → languageContext-B0oDaLaR.esm.js} +2 -2
  46. package/dist/chunks/{languageContext-B9ZrKauM.esm.js.map → languageContext-B0oDaLaR.esm.js.map} +1 -1
  47. package/dist/chunks/{languageContext-BplN84_k.js → languageContext-BkEaNmXU.js} +2 -2
  48. package/dist/chunks/{languageContext-BplN84_k.js.map → languageContext-BkEaNmXU.js.map} +1 -1
  49. package/dist/chunks/{migration-utils-DkYf1ifk.js → migration-utils-BPJJjfTn.js} +3 -3
  50. package/dist/chunks/{migration-utils-DkYf1ifk.js.map → migration-utils-BPJJjfTn.js.map} +1 -1
  51. package/dist/chunks/{migration-utils-CQc6pY2t.esm.js → migration-utils-BV23YHF_.esm.js} +3 -3
  52. package/dist/chunks/{migration-utils-CQc6pY2t.esm.js.map → migration-utils-BV23YHF_.esm.js.map} +1 -1
  53. package/dist/chunks/{notification-BUQXYqID.esm.js → notification-CiOGHCVK.esm.js} +258 -21
  54. package/dist/chunks/notification-CiOGHCVK.esm.js.map +1 -0
  55. package/dist/chunks/{notification-YiwRvWU7.js → notification-mmnVEZtt.js} +272 -18
  56. package/dist/chunks/notification-mmnVEZtt.js.map +1 -0
  57. package/dist/chunks/{page-context-D1AdUiey.esm.js → page-context-Cp-7KQ6O.esm.js} +3 -3
  58. package/dist/chunks/{page-context-D1AdUiey.esm.js.map → page-context-Cp-7KQ6O.esm.js.map} +1 -1
  59. package/dist/chunks/{page-context-CQsKXyDK.js → page-context-DJJaibPX.js} +3 -3
  60. package/dist/chunks/{page-context-CQsKXyDK.js.map → page-context-DJJaibPX.js.map} +1 -1
  61. package/dist/chunks/{sidebar-CAEC7M85.esm.js → sidebar-BPLSYS-u.esm.js} +8 -9
  62. package/dist/chunks/sidebar-BPLSYS-u.esm.js.map +1 -0
  63. package/dist/chunks/{sidebar-C_FKqclf.js → sidebar-Dg33n-BA.js} +25 -26
  64. package/dist/chunks/sidebar-Dg33n-BA.js.map +1 -0
  65. package/dist/chunks/{sidebarScreen-DmPbjeHe.js → sidebarScreen-DGu1Nm4H.js} +4 -4
  66. package/dist/chunks/{sidebarScreen-DmPbjeHe.js.map → sidebarScreen-DGu1Nm4H.js.map} +1 -1
  67. package/dist/chunks/{sidebarScreen-3pj35MVH.esm.js → sidebarScreen-DOmXPM8l.esm.js} +4 -4
  68. package/dist/chunks/{sidebarScreen-3pj35MVH.esm.js.map → sidebarScreen-DOmXPM8l.esm.js.map} +1 -1
  69. package/dist/chunks/{theme-impl-C_w9Sj-A.js → theme-impl-B-jAlah0.js} +3 -3
  70. package/dist/chunks/{theme-impl-C_w9Sj-A.js.map → theme-impl-B-jAlah0.js.map} +1 -1
  71. package/dist/chunks/{theme-impl-BrCeOQeW.esm.js → theme-impl-BCVk-5ti.esm.js} +3 -3
  72. package/dist/chunks/{theme-impl-BrCeOQeW.esm.js.map → theme-impl-BCVk-5ti.esm.js.map} +1 -1
  73. package/dist/chunks/{themeSelector-BUU_4ha7.esm.js → themeSelector-Ce9JLKP6.esm.js} +2 -2
  74. package/dist/chunks/{themeSelector-BUU_4ha7.esm.js.map → themeSelector-Ce9JLKP6.esm.js.map} +1 -1
  75. package/dist/chunks/{themeSelector-DOSJ_YTD.js → themeSelector-Cpzcr0j7.js} +2 -2
  76. package/dist/chunks/{themeSelector-DOSJ_YTD.js.map → themeSelector-Cpzcr0j7.js.map} +1 -1
  77. package/dist/chunks/{tick-rHBbYNsa.js → tick-D0uXfgm_.js} +8 -9
  78. package/dist/chunks/tick-D0uXfgm_.js.map +1 -0
  79. package/dist/chunks/{tick-BGC9qpEu.esm.js → tick-Yg9tWd8n.esm.js} +2 -3
  80. package/dist/chunks/tick-Yg9tWd8n.esm.js.map +1 -0
  81. package/dist/chunks/{toggle-switch-DDIhdf1a.js → toggle-switch-C2GpPNpX.js} +3 -4
  82. package/dist/chunks/toggle-switch-C2GpPNpX.js.map +1 -0
  83. package/dist/chunks/{toggle-switch-C5pxbI7z.esm.js → toggle-switch-cHBJVQ9J.esm.js} +2 -3
  84. package/dist/chunks/toggle-switch-cHBJVQ9J.esm.js.map +1 -0
  85. package/dist/chunks/{trash-CiV-RKIP.esm.js → trash-BhZBqKsV.esm.js} +2 -3
  86. package/dist/chunks/trash-BhZBqKsV.esm.js.map +1 -0
  87. package/dist/chunks/{trash-VyHXYBtF.js → trash-CJyhARBA.js} +36 -37
  88. package/dist/chunks/trash-CJyhARBA.js.map +1 -0
  89. package/dist/chunks/{uom-field-wrapper-DoWBwgGv.js → uom-field-wrapper-BX1XdyHa.js} +66 -67
  90. package/dist/chunks/{uom-field-wrapper-DoWBwgGv.js.map → uom-field-wrapper-BX1XdyHa.js.map} +1 -1
  91. package/dist/chunks/{uom-field-wrapper-D3POjotB.esm.js → uom-field-wrapper-CkzzOU6N.esm.js} +15 -16
  92. package/dist/chunks/{uom-field-wrapper-D3POjotB.esm.js.map → uom-field-wrapper-CkzzOU6N.esm.js.map} +1 -1
  93. package/dist/chunks/{useAccountSetting-DlrR5hlK.esm.js → useAccountSetting-D3-1qy7H.esm.js} +2 -2
  94. package/dist/chunks/{useAccountSetting-DlrR5hlK.esm.js.map → useAccountSetting-D3-1qy7H.esm.js.map} +1 -1
  95. package/dist/chunks/{useAccountSetting-CsdyJmXj.js → useAccountSetting-IgFis2cJ.js} +2 -2
  96. package/dist/chunks/{useAccountSetting-CsdyJmXj.js.map → useAccountSetting-IgFis2cJ.js.map} +1 -1
  97. package/dist/chunks/{useAuth-CI3BaxzJ.esm.js → useAuth-BJsurhKO.esm.js} +21 -258
  98. package/dist/chunks/useAuth-BJsurhKO.esm.js.map +1 -0
  99. package/dist/chunks/{useAuth-DuPbRYgZ.js → useAuth-CiUSJsQc.js} +8 -245
  100. package/dist/chunks/useAuth-CiUSJsQc.js.map +1 -0
  101. package/dist/chunks/{useLangauge-CoBbCCSR.js → useLangauge-D2ab_l5x.js} +2 -2
  102. package/dist/chunks/{useLangauge-CoBbCCSR.js.map → useLangauge-D2ab_l5x.js.map} +1 -1
  103. package/dist/chunks/{useLangauge-Bp4TQ3yg.esm.js → useLangauge-KK13KYLL.esm.js} +2 -2
  104. package/dist/chunks/{useLangauge-Bp4TQ3yg.esm.js.map → useLangauge-KK13KYLL.esm.js.map} +1 -1
  105. package/dist/chunks/{useReduxIntegration-BBYh6fTc.js → useReduxIntegration-Cj1OTrlN.js} +3 -3
  106. package/dist/chunks/{useReduxIntegration-BBYh6fTc.js.map → useReduxIntegration-Cj1OTrlN.js.map} +1 -1
  107. package/dist/chunks/{useReduxIntegration-CcFXL_r2.esm.js → useReduxIntegration-DOzBW6tg.esm.js} +3 -3
  108. package/dist/chunks/{useReduxIntegration-CcFXL_r2.esm.js.map → useReduxIntegration-DOzBW6tg.esm.js.map} +1 -1
  109. package/dist/components/icons/custom-styled-icon.d.ts +1 -1
  110. package/dist/components/index.esm.js +14 -14
  111. package/dist/components/index.js +14 -14
  112. package/dist/contexts/index.esm.js +3 -3
  113. package/dist/contexts/index.js +3 -3
  114. package/dist/hooks/index.esm.js +5 -5
  115. package/dist/hooks/index.js +5 -5
  116. package/dist/icons/index.esm.js +7 -7
  117. package/dist/icons/index.js +7 -7
  118. package/dist/index.esm.js +23 -23
  119. package/dist/index.js +23 -23
  120. package/dist/layout/index.esm.js +2 -2
  121. package/dist/layout/index.js +2 -2
  122. package/dist/src/components/icons/custom-styled-icon.d.ts +1 -1
  123. package/dist/theme/index.esm.js +2 -2
  124. package/dist/theme/index.js +2 -2
  125. package/dist/utils/index.esm.js +3 -3
  126. package/dist/utils/index.js +3 -3
  127. package/dist/views/index.esm.js +7 -7
  128. package/dist/views/index.js +6 -6
  129. package/package.json +1 -1
  130. package/dist/chunks/DefaultPropsProvider-CtzpYSZM.esm.js +0 -96
  131. package/dist/chunks/DefaultPropsProvider-CtzpYSZM.esm.js.map +0 -1
  132. package/dist/chunks/DefaultPropsProvider-DNkr8p_i.js +0 -112
  133. package/dist/chunks/DefaultPropsProvider-DNkr8p_i.js.map +0 -1
  134. package/dist/chunks/arrow-up-CzAYqkgy.js.map +0 -1
  135. package/dist/chunks/arrow-up-iRf15n-y.esm.js.map +0 -1
  136. package/dist/chunks/dashboard-C9j4Kzk8.js.map +0 -1
  137. package/dist/chunks/dashboard-DY6kktI9.esm.js.map +0 -1
  138. package/dist/chunks/document-COlmDW14.js.map +0 -1
  139. package/dist/chunks/document-eayAKETK.esm.js.map +0 -1
  140. package/dist/chunks/identifier-D2PZ045Y.js.map +0 -1
  141. package/dist/chunks/identifier-cOOk7M93.esm.js.map +0 -1
  142. package/dist/chunks/notification-BUQXYqID.esm.js.map +0 -1
  143. package/dist/chunks/notification-YiwRvWU7.js.map +0 -1
  144. package/dist/chunks/sidebar-CAEC7M85.esm.js.map +0 -1
  145. package/dist/chunks/sidebar-C_FKqclf.js.map +0 -1
  146. package/dist/chunks/tick-BGC9qpEu.esm.js.map +0 -1
  147. package/dist/chunks/tick-rHBbYNsa.js.map +0 -1
  148. package/dist/chunks/toggle-switch-C5pxbI7z.esm.js.map +0 -1
  149. package/dist/chunks/toggle-switch-DDIhdf1a.js.map +0 -1
  150. package/dist/chunks/trash-CiV-RKIP.esm.js.map +0 -1
  151. package/dist/chunks/trash-VyHXYBtF.js.map +0 -1
  152. package/dist/chunks/useAuth-CI3BaxzJ.esm.js.map +0 -1
  153. package/dist/chunks/useAuth-DuPbRYgZ.js.map +0 -1
@@ -8,14 +8,13 @@ import { P as Pathname, aH as PathnameGenerator, f as PathnameRental, aJ as Path
8
8
  import { ar as getToken } from "./common-C_hS6Y4Q.esm.js";
9
9
  import { useSnackbar, SnackbarContent, enqueueSnackbar } from "notistack";
10
10
  import { io } from "socket.io-client";
11
- import { styled as styled$1, Typography as Typography$1, Box, Avatar, IconButton } from "@mui/material";
12
- import { _ as _extends, g as generateUtilityClass, e as _objectWithoutPropertiesLoose, j as capitalize, P as PropTypes, C as ClassNameGenerator, k as interopRequireDefaultExports } from "./identifier-cOOk7M93.esm.js";
11
+ import { styled, Typography as Typography$1, Box, Avatar, IconButton } from "@mui/material";
12
+ import { _ as _extends, C as ClassNameGenerator, j as capitalize, k as interopRequireDefaultExports } from "./identifier-l1qZ_-Do.esm.js";
13
13
  import { a as getAugmentedNamespace } from "./_commonjsHelpers-CcAunmGO.esm.js";
14
- import { s as styled, N as Notification } from "./notification-BUQXYqID.esm.js";
15
- import { u as useDefaultProps } from "./DefaultPropsProvider-CtzpYSZM.esm.js";
14
+ import { c as createSvgIcon$1, N as Notification } from "./notification-CiOGHCVK.esm.js";
16
15
  import { i as images } from "./images-BY6aQF32.esm.js";
17
16
  /* empty css */
18
- var createSvgIcon$1 = {};
17
+ var createSvgIcon = {};
19
18
  function createChainedFunction(...funcs) {
20
19
  return funcs.reduce((acc, func) => {
21
20
  if (func == null) {
@@ -328,238 +327,6 @@ function useIsFocusVisible() {
328
327
  ref
329
328
  };
330
329
  }
331
- function composeClasses(slots, getUtilityClass, classes = void 0) {
332
- const output = {};
333
- Object.keys(slots).forEach(
334
- // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.
335
- // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208
336
- (slot) => {
337
- output[slot] = slots[slot].reduce((acc, key) => {
338
- if (key) {
339
- const utilityClass = getUtilityClass(key);
340
- if (utilityClass !== "") {
341
- acc.push(utilityClass);
342
- }
343
- if (classes && classes[key]) {
344
- acc.push(classes[key]);
345
- }
346
- }
347
- return acc;
348
- }, []).join(" ");
349
- }
350
- );
351
- return output;
352
- }
353
- function generateUtilityClasses(componentName, slots, globalStatePrefix = "Mui") {
354
- const result = {};
355
- slots.forEach((slot) => {
356
- result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);
357
- });
358
- return result;
359
- }
360
- function r(e) {
361
- var t, f, n = "";
362
- if ("string" == typeof e || "number" == typeof e) n += e;
363
- else if ("object" == typeof e) if (Array.isArray(e)) {
364
- var o = e.length;
365
- for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
366
- } else for (f in e) e[f] && (n && (n += " "), n += f);
367
- return n;
368
- }
369
- function clsx() {
370
- for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
371
- return n;
372
- }
373
- function getSvgIconUtilityClass(slot) {
374
- return generateUtilityClass("MuiSvgIcon", slot);
375
- }
376
- generateUtilityClasses("MuiSvgIcon", ["root", "colorPrimary", "colorSecondary", "colorAction", "colorError", "colorDisabled", "fontSizeInherit", "fontSizeSmall", "fontSizeMedium", "fontSizeLarge"]);
377
- const _excluded = ["children", "className", "color", "component", "fontSize", "htmlColor", "inheritViewBox", "titleAccess", "viewBox"];
378
- const useUtilityClasses = (ownerState) => {
379
- const {
380
- color,
381
- fontSize,
382
- classes
383
- } = ownerState;
384
- const slots = {
385
- root: ["root", color !== "inherit" && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]
386
- };
387
- return composeClasses(slots, getSvgIconUtilityClass, classes);
388
- };
389
- const SvgIconRoot = styled("svg", {
390
- name: "MuiSvgIcon",
391
- slot: "Root",
392
- overridesResolver: (props, styles) => {
393
- const {
394
- ownerState
395
- } = props;
396
- return [styles.root, ownerState.color !== "inherit" && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];
397
- }
398
- })(({
399
- theme,
400
- ownerState
401
- }) => {
402
- var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;
403
- return {
404
- userSelect: "none",
405
- width: "1em",
406
- height: "1em",
407
- display: "inline-block",
408
- // the <svg> will define the property that has `currentColor`
409
- // for example heroicons uses fill="none" and stroke="currentColor"
410
- fill: ownerState.hasSvgAsChild ? void 0 : "currentColor",
411
- flexShrink: 0,
412
- transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, "fill", {
413
- duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter
414
- }),
415
- fontSize: {
416
- inherit: "inherit",
417
- small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || "1.25rem",
418
- medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || "1.5rem",
419
- large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || "2.1875rem"
420
- }[ownerState.fontSize],
421
- // TODO v5 deprecate, v6 remove for sx
422
- color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {
423
- action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,
424
- disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,
425
- inherit: void 0
426
- }[ownerState.color]
427
- };
428
- });
429
- const SvgIcon = /* @__PURE__ */ React.forwardRef(function SvgIcon2(inProps, ref) {
430
- const props = useDefaultProps({
431
- props: inProps,
432
- name: "MuiSvgIcon"
433
- });
434
- const {
435
- children,
436
- className,
437
- color = "inherit",
438
- component = "svg",
439
- fontSize = "medium",
440
- htmlColor,
441
- inheritViewBox = false,
442
- titleAccess,
443
- viewBox = "0 0 24 24"
444
- } = props, other = _objectWithoutPropertiesLoose(props, _excluded);
445
- const hasSvgAsChild = /* @__PURE__ */ React.isValidElement(children) && children.type === "svg";
446
- const ownerState = _extends({}, props, {
447
- color,
448
- component,
449
- fontSize,
450
- instanceFontSize: inProps.fontSize,
451
- inheritViewBox,
452
- viewBox,
453
- hasSvgAsChild
454
- });
455
- const more = {};
456
- if (!inheritViewBox) {
457
- more.viewBox = viewBox;
458
- }
459
- const classes = useUtilityClasses(ownerState);
460
- return /* @__PURE__ */ jsxRuntimeExports.jsxs(SvgIconRoot, _extends({
461
- as: component,
462
- className: clsx(classes.root, className),
463
- focusable: "false",
464
- color: htmlColor,
465
- "aria-hidden": titleAccess ? void 0 : true,
466
- role: titleAccess ? "img" : void 0,
467
- ref
468
- }, more, other, hasSvgAsChild && children.props, {
469
- ownerState,
470
- children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /* @__PURE__ */ jsxRuntimeExports.jsx("title", {
471
- children: titleAccess
472
- }) : null]
473
- }));
474
- });
475
- process.env.NODE_ENV !== "production" ? SvgIcon.propTypes = {
476
- // ┌────────────────────────────── Warning ──────────────────────────────┐
477
- // │ These PropTypes are generated from the TypeScript type definitions. │
478
- // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
479
- // └─────────────────────────────────────────────────────────────────────┘
480
- /**
481
- * Node passed into the SVG element.
482
- */
483
- children: PropTypes.node,
484
- /**
485
- * Override or extend the styles applied to the component.
486
- */
487
- classes: PropTypes.object,
488
- /**
489
- * @ignore
490
- */
491
- className: PropTypes.string,
492
- /**
493
- * The color of the component.
494
- * It supports both default and custom theme colors, which can be added as shown in the
495
- * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
496
- * You can use the `htmlColor` prop to apply a color attribute to the SVG element.
497
- * @default 'inherit'
498
- */
499
- color: PropTypes.oneOfType([PropTypes.oneOf(["inherit", "action", "disabled", "primary", "secondary", "error", "info", "success", "warning"]), PropTypes.string]),
500
- /**
501
- * The component used for the root node.
502
- * Either a string to use a HTML element or a component.
503
- */
504
- component: PropTypes.elementType,
505
- /**
506
- * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.
507
- * @default 'medium'
508
- */
509
- fontSize: PropTypes.oneOfType([PropTypes.oneOf(["inherit", "large", "medium", "small"]), PropTypes.string]),
510
- /**
511
- * Applies a color attribute to the SVG element.
512
- */
513
- htmlColor: PropTypes.string,
514
- /**
515
- * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`
516
- * prop will be ignored.
517
- * Useful when you want to reference a custom `component` and have `SvgIcon` pass that
518
- * `component`'s viewBox to the root node.
519
- * @default false
520
- */
521
- inheritViewBox: PropTypes.bool,
522
- /**
523
- * The shape-rendering attribute. The behavior of the different options is described on the
524
- * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).
525
- * If you are having issues with blurry icons you should investigate this prop.
526
- */
527
- shapeRendering: PropTypes.string,
528
- /**
529
- * The system prop that allows defining system overrides as well as additional CSS styles.
530
- */
531
- sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
532
- /**
533
- * Provides a human-readable title for the element that contains it.
534
- * https://www.w3.org/TR/SVG-access/#Equivalent
535
- */
536
- titleAccess: PropTypes.string,
537
- /**
538
- * Allows you to redefine what the coordinates without units mean inside an SVG element.
539
- * For example, if the SVG element is 500 (width) by 200 (height),
540
- * and you pass viewBox="0 0 50 20",
541
- * this means that the coordinates inside the SVG will go from the top left corner (0,0)
542
- * to bottom right (50,20) and each unit will be worth 10px.
543
- * @default '0 0 24 24'
544
- */
545
- viewBox: PropTypes.string
546
- } : void 0;
547
- SvgIcon.muiName = "SvgIcon";
548
- function createSvgIcon(path, displayName) {
549
- function Component(props, ref) {
550
- return /* @__PURE__ */ jsxRuntimeExports.jsx(SvgIcon, _extends({
551
- "data-testid": `${displayName}Icon`,
552
- ref
553
- }, props, {
554
- children: path
555
- }));
556
- }
557
- if (process.env.NODE_ENV !== "production") {
558
- Component.displayName = `${displayName}Icon`;
559
- }
560
- Component.muiName = SvgIcon.muiName;
561
- return /* @__PURE__ */ React.memo(/* @__PURE__ */ React.forwardRef(Component));
562
- }
563
330
  const unstable_ClassNameGenerator = {
564
331
  configure: (generator) => {
565
332
  if (process.env.NODE_ENV !== "production") {
@@ -572,7 +339,7 @@ const utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
572
339
  __proto__: null,
573
340
  capitalize,
574
341
  createChainedFunction,
575
- createSvgIcon,
342
+ createSvgIcon: createSvgIcon$1,
576
343
  debounce,
577
344
  deprecatedPropType,
578
345
  isMuiElement,
@@ -592,7 +359,7 @@ const utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
592
359
  const require$$0 = /* @__PURE__ */ getAugmentedNamespace(utils);
593
360
  var hasRequiredCreateSvgIcon;
594
361
  function requireCreateSvgIcon() {
595
- if (hasRequiredCreateSvgIcon) return createSvgIcon$1;
362
+ if (hasRequiredCreateSvgIcon) return createSvgIcon;
596
363
  hasRequiredCreateSvgIcon = 1;
597
364
  (function(exports) {
598
365
  "use client";
@@ -606,10 +373,10 @@ function requireCreateSvgIcon() {
606
373
  }
607
374
  });
608
375
  var _utils = require$$0;
609
- })(createSvgIcon$1);
610
- return createSvgIcon$1;
376
+ })(createSvgIcon);
377
+ return createSvgIcon;
611
378
  }
612
- const StyledTypography = styled$1(Typography$1)(
379
+ const StyledTypography = styled(Typography$1)(
613
380
  ({ theme: { palette }, color }) => {
614
381
  var _a;
615
382
  return {
@@ -1054,26 +821,22 @@ export {
1054
821
  convertRoutesToUseIdParams as c,
1055
822
  useEnhancedEffect as d,
1056
823
  useForkRef as e,
1057
- clsx as f,
824
+ useTimeout as f,
1058
825
  generateRouteWithId as g,
1059
- composeClasses as h,
1060
- generateUtilityClasses as i,
1061
- useTimeout as j,
1062
- debounce as k,
1063
- default_1 as l,
1064
- useIsFocusVisible as m,
826
+ debounce as h,
827
+ default_1 as i,
828
+ useIsFocusVisible as j,
829
+ useEventCallback as k,
830
+ ownerDocument as l,
831
+ createChainedFunction as m,
1065
832
  navigateToRouteWithId as n,
1066
833
  ownerWindow as o,
1067
- useEventCallback as p,
1068
- ownerDocument as q,
834
+ isMuiElement as p,
835
+ useControlled as q,
1069
836
  requireCreateSvgIcon as r,
1070
837
  setRef as s,
1071
- createChainedFunction as t,
838
+ useId as t,
1072
839
  useAuth as u,
1073
- isMuiElement as v,
1074
- useControlled as w,
1075
- createSvgIcon as x,
1076
- useId as y,
1077
- unsupportedProp as z
840
+ unsupportedProp as v
1078
841
  };
1079
- //# sourceMappingURL=useAuth-CI3BaxzJ.esm.js.map
842
+ //# sourceMappingURL=useAuth-BJsurhKO.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuth-BJsurhKO.esm.js","sources":["../../node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../../node_modules/@mui/utils/esm/debounce/debounce.js","../../node_modules/@mui/utils/esm/deprecatedPropType/deprecatedPropType.js","../../node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../../node_modules/@mui/utils/esm/requirePropFactory/requirePropFactory.js","../../node_modules/@mui/utils/esm/setRef/setRef.js","../../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../../node_modules/@mui/utils/esm/useId/useId.js","../../node_modules/@mui/utils/esm/unsupportedProp/unsupportedProp.js","../../node_modules/@mui/utils/esm/useControlled/useControlled.js","../../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../../node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../../node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../../node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../../node_modules/@mui/material/utils/index.js","../../node_modules/@mui/icons-material/utils/createSvgIcon.js","../../src/components/typography/typography.tsx","../../node_modules/@mui/icons-material/Close.js","../../src/utils/route-utils.ts","../../src/components/custom-snackbar/custom-snackbar.tsx","../../src/contexts/AuthContext.tsx","../../src/hooks/useAuth.ts"],"sourcesContent":["/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<<anonymous>>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example <div id={useId()} />\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","'use client';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/utils';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","import {\n Typography as MUITypography,\n TypographyProps,\n styled,\n} from \"@mui/material\";\n\nexport interface ITypography extends TypographyProps {\n type?: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"s1\" | \"s2\" | \"s3\" | \"s4\" | \"s5\";\n weight?: \"normal\" | \"medium\" | \"bold\";\n}\n\nconst StyledTypography = styled(MUITypography)<ITypography>(\n ({ theme: { palette }, color }) => ({\n color: color || palette.theme?.primary[800],\n }),\n);\n\nexport function Typography(props: ITypography) {\n const {\n children,\n type = \"h5\",\n weight = \"normal\",\n className,\n ...rest\n } = props;\n\n return (\n <StyledTypography className={`${type} ${weight} ${className}`} {...rest}>\n {children}\n </StyledTypography>\n );\n}\n\nexport default Typography;\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","\nexport const convertRoutesToUseIdParams = (routes: Record<string, string>): Record<string, string> => {\n const updatedRoutes: Record<string, string> = { ...routes };\n \n // Identify patterns for view/edit/detail routes\n Object.keys(updatedRoutes).forEach(key => {\n // Common patterns for detail views\n if (\n key.startsWith('VIEW_') || \n key.startsWith('EDIT_') || \n key.startsWith('DETAIL_') ||\n key.includes('_VIEW_') || \n key.includes('_EDIT_') || \n key.includes('_DETAIL_')\n ) {\n if (!updatedRoutes[key].includes(':')) {\n updatedRoutes[key] = `${updatedRoutes[key]}/:id`;\n }\n }\n });\n \n return updatedRoutes;\n};\n\n\nexport const generateRouteWithId = (basePath: string, id: string | number | Record<string, any>): string => {\n if(id && typeof id === 'object') {\n Object.entries(id).map(([key, value]) => {\n basePath = basePath.replace(`:${key}`, value?.toString());\n })\n } else if (basePath.includes(':id')) {\n return basePath.replace(':id', id?.toString());\n }\n \n // If the path doesn't have an :id parameter, append it\n return `${basePath}`;\n};\n\n\nexport const updatePathnameWithIdParams = <T extends Record<string, string>>(pathnameObject: T): T => {\n return convertRoutesToUseIdParams(pathnameObject) as T;\n}; \n\n// Added utility for navigating to views with id parameter\nexport const navigateToRouteWithId = (\n navigate: any,\n route: string, \n id: string | number,\n state?: any\n) => {\n const path = generateRouteWithId(route, id);\n navigate(path, { state });\n}; ","import React from 'react';\nimport { SnackbarContent, useSnackbar } from 'notistack';\nimport { Avatar, Box, IconButton } from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { useNavigate } from 'react-router-dom';\nimport { Notification } from '../icons';\nimport Typography from '../typography/typography';\nimport images from '../../assets/images';\nimport \"./custom-snackbar.scss\"\n\ninterface CustomSnackbarProps {\n message: string;\n variant?: 'default' | 'error' | 'success' | 'warning' | 'info';\n linkUrl?: string;\n snackbarKey: string | number;\n}\n\nconst mainModuleIcons = {\n rbac: images.user,\n document: images.document,\n 'accounts-and-finance': images.accounting,\n inventory: images.inventory,\n manufacturing: images.manufacturing,\n sales: images.crm,\n rental: images.rental,\n user: images.user,\n purchase: images.procurement,\n hrms: images.hrms\n}\nconst mainModuleBgColors = {\n rbac: '#F3E5F5',\n document: '#FFF8E1',\n 'accounts-and-finance': '#E8F5E8',\n inventory: '#E3F2FD',\n manufacturing: '#FFF3E0',\n sales: '#F3E5F5',\n rental: '#E8F5E8',\n user: '#F3E5F5',\n purchase: '#FCE4EC',\n hrms: '#fcfcfc'\n}\n\nconst CustomSnackbar = React.forwardRef<HTMLDivElement, CustomSnackbarProps>(\n ({ message, variant = 'default', linkUrl, snackbarKey, data }, ref) => {\n const { closeSnackbar } = useSnackbar();\n const navigate = useNavigate();\n\n const backgroundColorMap: Record<string, string> = {\n success: '#f0fdf4',\n error: '#fef2f2',\n warning: '#fff7ed',\n info: '#eff6ff',\n default: '#fff',\n };\n\n const textColorMap: Record<string, string> = {\n success: '#166534',\n error: '#991b1b',\n warning: '#92400e',\n info: '#1e40af',\n default: '#27272a',\n };\n\n const handleClick = () => {\n if (linkUrl) navigate(linkUrl);\n closeSnackbar(snackbarKey);\n };\n\n const handleCloseClick = (e: React.MouseEvent) => {\n e.stopPropagation(); // Prevent triggering link\n closeSnackbar(snackbarKey);\n };\n\n return (\n <SnackbarContent\n ref={ref}\n style={{\n backgroundColor: backgroundColorMap[variant],\n color: textColorMap[variant],\n }}\n className='SnackBar'\n onClick={handleClick}\n >\n <Box display=\"flex\" alignItems=\"center\" p={2} position=\"relative\" gap={2} width='100%'>\n {mainModuleIcons?.[data.module] ?\n <Avatar sx={{ \n width: 45, \n height: 45, \n fontSize: '0.875rem',\n bgcolor: mainModuleBgColors[data.module] || 'primary.main',\n color: 'white',\n borderRadius: '8px',\n '& img': { \n width: '35px', \n height: '35px', \n objectFit: 'contain'\n }\n }} src={mainModuleIcons?.[data.module]} /> :\n <Notification\n style={{\n color: textColorMap[variant],\n marginTop: 2,\n }}\n />\n }\n <Box display=\"flex\" alignItems=\"center\" width='100%'>\n <Box flex=\"1\">\n <Typography type='h5' color={'inherit'} weight='bold'>\n New Notification\n </Typography>\n <Typography type='s3' mt={0.5} color={'inherit'}>\n {message}\n </Typography>\n </Box>\n\n <IconButton\n size=\"small\"\n onClick={handleCloseClick}\n // style={{\n // position: 'absolute',\n // top: 4,\n // right: 4,\n // color: textColorMap[variant],\n // }}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </SnackbarContent>\n );\n }\n);\n\nexport { CustomSnackbar };\nexport default CustomSnackbar;\n","import React, { createContext, useEffect, useRef, useState } from 'react';\nimport {\n\tpostV1AuthChangePassword,\n\tpostV1AuthForgotPassword,\n\tpostV1AuthChangeUserPassword,\n\t// getV1UserId,\n\tpostV1AuthLogin,\n\tpostV1AuthResetPassword,\n\tsetBaseUrl,\n\tpostV1AuthChangeUserPasswordByAdmin\n} from '../api-client/api.rbac/api';\nimport { auth } from '../constants/auth';\nimport { useLocation, matchRoutes, useNavigate } from 'react-router-dom';\nimport { Pathname } from '../constants/pathnames/pathname'; // Removed - should be passed as props or configured by consuming app\nimport { getToken } from '../utils/common';\nimport { enqueueSnackbar } from 'notistack';\nimport { Socket, io } from 'socket.io-client';\nimport { generateRouteWithId } from '../utils/route-utils';\nimport { getApiConfig } from '../utils/api-config';\nimport {\n\tPathnameAccounting,\n\tPathnameGenerator\n} from '../constants/pathnames/pathname.accounting';\n\nimport {\n\tPathnameInventory,\n\tPathnameGenerator as PathnameGeneratorInventory\n} from '../constants/pathnames/pathname.inventory';\n\nimport {\n\tPathnameManufacturing,\n\tPathnameGenerator as PathnameGeneratorManufacuring\n} from '../constants/pathnames/pathname.manufacturing';\n\nimport {\n\tPathnamePurchase,\n\tPathnameGenerator as PathnameGeneratorPurchase\n} from '../constants/pathnames/pathname.procurement';\n\nimport {\n\tPathnameCrm,\n\tPathnameGenerator as PathnameGeneratorCrm\n} from '../constants/pathnames/pathname.crm';\n\nimport {\n\tPathnameRental,\n\tPathnameGenerator as PathnameGeneratorRental\n} from '../constants/pathnames/pathname.rental';\n\nimport { ROUTES as RENTALROUTES } from '../constants/pathnames/pathname.rental';\n\nimport CustomSnackbar from '../components/custom-snackbar/custom-snackbar.tsx';\nimport { RbacApi } from '@/api-client/index.ts';\nexport interface LoginFormValues {\n\temail: string;\n\tpassword: string;\n}\n\nexport interface resetFormValues {\n\temail: string;\n}\n\nexport interface resetPasswordValues {\n\ttoken: string;\n}\n\nexport interface changePasswordValues {\n\tpassword: string;\n}\n\nexport interface changeUserPasswordValues {\n\tpassword: string;\n}\n\ninterface ERPApiUser {\n\tid: string | number;\n\tfirst_name: string;\n\tlast_name: string;\n\tmiddle_name: string;\n\tcountry_code: string;\n\temail: string;\n\tcreated_by: any;\n\tupdated_by: any;\n\tcreated_at: string;\n\tupdated_at: string;\n\trole_id: string;\n\tdepartment_id: number;\n\tis_deleted: number;\n\tdeleted_at: string | null;\n\tdeleted_by: any;\n\ttoken: string;\n\tprofile_image: string;\n\tcompany_id: number | string;\n\tcurrency_data?: {\n\t\tid: number;\n\t\tsymbol: string;\n\t\tcurrency_name: string;\n\t\tnumber_format: string;\n\t\tposition: string | null;\n\t\tfraction_unit: string | null\n\t};\n\taccessCompanies?: any[]\n}\ninterface ERPUser extends Omit<ERPApiUser, 'token'> {\n\tfull_name: string;\n}\n\nexport interface DefaultProviderProps {\n\tuser: ERPUser | null;\n\tloading: boolean;\n\tauthToken: string;\n\tsetUser: React.Dispatch<React.SetStateAction<ERPUser | null>>;\n\tsetLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\tlogin: (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tlogout: () => Promise<void>;\n\tforgotPassword: (\n\t\tparams: resetFormValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tresetPassword: (\n\t\tparams: resetPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangePassword: (\n\t\tparams: changePasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n\tchangeUserPassword: (\n\t\tparams: changeUserPasswordValues,\n\t\tcallback: (err: string) => void\n\t) => Promise<void>;\n}\n\nconst defaultProvider: DefaultProviderProps = {\n\tuser: null,\n\tloading: true,\n\tauthToken: '',\n\tsetUser: () => null,\n\tsetLoading: () => Boolean,\n\tlogin: () => Promise.resolve(),\n\tlogout: () => Promise.resolve(),\n\tforgotPassword: () => Promise.resolve(),\n\tresetPassword: () => Promise.resolve(),\n\tchangePassword: () => Promise.resolve(),\n\tchangeUserPassword: () => Promise.resolve()\n};\n\nconst AuthContext = createContext<DefaultProviderProps>(defaultProvider);\n\ninterface AuthProviderProps {\n\tchildren: React.ReactNode;\n\tpublicRoutes?: string[]; // Optional prop to allow customization of public routes\n}\n\n// Base URL will be set at runtime via ERPUIProvider\n\nconst AuthProvider: React.FC<AuthProviderProps> = ({ children, publicRoutes = [] }) => {\n\t// ** States\n\tconst [user, setUser] = useState(defaultProvider.user);\n\tconst [authToken, setAuthToken] = useState<string>('');\n\tconst [loading, setLoading] = useState(defaultProvider.loading);\n\tconst socketRef = useRef<Socket | null>(null);\n\n\t// ** Hooks\n\tconst navigate = useNavigate();\n\tconst location = useLocation();\n\tconst isJsonParse = (string?: string | null) => {\n\t\tif (!string) return false;\n\n\t\ttry {\n\t\t\treturn JSON.parse(string);\n\t\t} catch (error) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst getNotificationUrl = (data: any) => {\n\t\tconst { moduleName = '', moduleId = '', notificationData = {} } = data;\n\t\tconst key = moduleName.toLowerCase();\n\n\t\tconst routeMap: Record<string, () => string> = {\n\t\t\t'sales invoice': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_SALES_INVOICES), moduleId.toString()),\n\n\t\t\t'asset transfers': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_ASSET_TRANSFER), moduleId.toString()),\n\n\t\t\t'budgets': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_BUDGET), moduleId.toString()),\n\n\t\t\t'cash expense': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CASH_EXPENSE), moduleId.toString()),\n\n\t\t\t'credit notes': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_CREDIT_NOTE), moduleId.toString()),\n\n\t\t\t'debit notes': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_DEBIT_NOTE), moduleId.toString()),\n\n\t\t\t'expense reimbursement': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_EXPENSE_REIMBURSEMENT), moduleId.toString()),\n\n\t\t\t'journal entries': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_JOURNAL_ENTRY), moduleId.toString()),\n\n\t\t\t'payment entries': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PAYMENT_ENTRY), moduleId.toString()),\n\n\t\t\t'purchase invoice': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGenerator(PathnameAccounting.VIEW_PURCHASE_INVOICE), moduleId.toString()),\n\n\t\t\t'stock transfer': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorInventory(PathnameInventory.VIEW_STOCK_TRANSFER), moduleId.toString()),\n\n\t\t\t'bills of materials': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorManufacuring(PathnameManufacturing.VIEW_BILL_OF_MATERIAL), moduleId.toString()),\n\n\t\t\t'purchase agreement': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_AGREEMENT), moduleId.toString()),\n\n\t\t\t'purchase orders': () =>\n\t\t\t\tgenerateRouteWithId(notificationData?.data?.is_rental == 1 ? RENTALROUTES.VIEW : PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER), moduleId.toString()),\n\n\t\t\t'purchase request': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_PURCHASE_ORDER), moduleId.toString()),\n\n\t\t\t'vra': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorPurchase(PathnamePurchase.VIEW_VENDOR_RETURNS), moduleId.toString()),\n\n\t\t\t'sl customer returns': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_CUSTOMER_RETURNS), moduleId.toString()),\n\n\t\t\t'sales order': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorCrm(PathnameCrm.VIEW_SALES_ORDER), moduleId.toString()),\n\n\t\t\t'rental order': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'replacement order': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_RENTAL_ORDER), moduleId.toString()),\n\n\t\t\t'rental agreement': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_AGREEMENT), moduleId.toString()),\n\n\t\t\t'cross hire order': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_ORDER), moduleId.toString()),\n\n\t\t\t'cross hire request': () =>\n\t\t\t\tgenerateRouteWithId(PathnameGeneratorRental(PathnameRental.VIEW_CROSS_HIRE_REQUEST), moduleId.toString()),\n\t\t};\n\n\t\treturn routeMap[key]?.() || '/dashboard';\n\t};\n\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\t// initAuth()\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tconst storedUser =\n\t\t\tisJsonParse(window.localStorage.getItem(auth.storageUserKeyName)) ?? null;\n\t\tconst allPublicRoutes = [Pathname.LOGIN, Pathname.FORGOT_PASSWORD, Pathname.RESET_PASSWORD, Pathname.CHANGE_PASSWORD, ...publicRoutes];\n\t\tconst currentPath = window.location.pathname;\n\t\tif (!storedToken && !storedUser) {\n\t\t\tconsole.log('allPublicRoutes..', allPublicRoutes, 'currentPath..', currentPath)\n\t\t\t// if (!allPublicRoutes.includes(currentPath)) {\n\t\t\tif (Boolean(!matchRoutes(allPublicRoutes.map((route) => ({ path: route })), location))) {\n\t\t\t\tnavigate(Pathname.LOGIN);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tsetUser(storedUser);\n\t\t\tsetAuthToken(storedToken || '');\n\t\t\tsetLoading(false);\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!authToken) {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current?.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t\tconsole.warn(\"No auth token found, not connecting to socket.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst config = getApiConfig();\n\t\tconst socket = io(config.socketBaseUrl, {\n\t\t\ttransports: [\"websocket\"],\n\t\t\tauth: { token: authToken },\n\t\t\tpath: \"/socket.io/\",\n\n\t\t});\n\t\tsocketRef.current = socket;\n\n\t\tsocket.on(\"connect\", () => {\n\t\t\tconsole.log(\"Socket connected:\", socket.id);\n\t\t\tsocket.onAny((event, ...args) => {\n\t\t\t\tconsole.log(`Received event: ${event}`, args);\n\t\t\t});\n\t\t});\n\n\t\t// socket event handler\n\t\tsocket.on('notification', (data) => {\n\t\t\tconst { message, notificationData } = data || {};\n\t\t\tlet notificationContent: React.ReactNode = message;\n\t\t\tconst url = getNotificationUrl(data);\n\n\t\t\tif (notificationData) {\n\t\t\t\tconst { notification_type } = notificationData;\n\n\t\t\t\tswitch (notification_type) {\n\t\t\t\t\tcase 'addApprovers': {\n\n\t\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'change_approval_status': {\n\t\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault: {\n\t\t\t\t\t\tnotificationContent = message;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tenqueueSnackbar(String(message), {\n\t\t\t\tvariant: 'default',\n\t\t\t\tanchorOrigin: { vertical: 'top', horizontal: 'center' },\n\t\t\t\tautoHideDuration: 5000,\n\t\t\t\tcontent: (key) => (\n\t\t\t\t\t<CustomSnackbar snackbarKey={key} message={notificationContent} data={notificationData} variant=\"default\" linkUrl={url} />\n\t\t\t\t),\n\t\t\t});\n\t\t});\n\n\n\t\tsocket.on(\"sales_invoice_viewed\", (data) => {\n\t\t\tconsole.log(\"Invoice viewed:\", data.invoiceId, \"by user:\", data.userId);\n\t\t});\n\n\t\tsocket.on(\"error\", (errMsg) => {\n\t\t\tenqueueSnackbar(`Socket error: ${errMsg}`, { variant: \"error\" });\n\t\t\tconsole.error(\"Socket error:\", errMsg);\n\t\t});\n\n\t\t// Clean up on unmount\n\t\treturn () => {\n\t\t\tif (socketRef.current) {\n\t\t\t\tsocketRef.current.disconnect();\n\t\t\t\tsocketRef.current = null\n\t\t\t}\n\t\t};\n\t}, [authToken]);\n\n\tconst fetchRolesByUserId = async (userId: number | string, token: string) => {\n\t\tconst response = await RbacApi.getV1RoleUserId({ id: userId, ...getToken(token) } as any);\n\t\tconst perm = response?.data?.role || [];\n\t\treturn JSON.stringify(perm);\n\t}\n\n\tconst handleLogin = async (\n\t\tparams: LoginFormValues,\n\t\tcallback: (err: string) => void,\n\t\tshoudRedirect: boolean = true,\n\t\tredirectPath: string = Pathname.DASHBOARD\n\t) => {\n\t\tsetLoading(true);\n\t\tconst storedToken = window.localStorage.getItem(auth.storageTokenKeyName);\n\t\tif (storedToken && user) {\n\t\t\treturn navigate(Pathname.DASHBOARD);\n\t\t}\n\n\t\ttry {\n\t\t\tconst loginUser = await postV1AuthLogin({ ...params, ...getToken() });\n\t\t\tif (loginUser.success) {\n\t\t\t\tconst data: ERPApiUser | null = loginUser?.data?.login || null;\n\t\t\t\tif (data) {\n\t\t\t\t\tconst userData: ERPUser = {\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\tfull_name: `${data.first_name} ${data.last_name}`\n\t\t\t\t\t};\n\t\t\t\t\tconst rolePermission = await fetchRolesByUserId(userData.id, data.token);\n\t\t\t\t\t\n\t\t\t\t\tglobalThis.localStorage.setItem(auth.storageTokenKeyName, data.token);\n\t\t\t\t\twindow.localStorage.setItem(auth.storageUserKeyName, JSON.stringify(userData));\n\t\t\t\t\twindow.localStorage.setItem(auth.storageRolePermissionKeyName, rolePermission);\n\n\t\t\t\t\tsetUser(userData);\n\t\t\t\t\tsetAuthToken(data.token);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tshoudRedirect && navigate(redirectPath);\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tdelete data.token;\n\t\t\t\t\t}, 1000);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t\tcallback(message);\n\t\t}\n\t};\n\n\tconst handleLogout = async () => {\n\t\twindow.localStorage.removeItem(auth.storageTokenKeyName);\n\t\twindow.localStorage.removeItem(auth.storageUserKeyName);\n\t\twindow.localStorage.removeItem(auth.storageRolePermissionKeyName);\n\t\tsetUser(null);\n\t\tsetAuthToken('');\n\t\tnavigate(Pathname.LOGIN);\n\t};\n\n\tconst handleForgotPassword = async (params: resetFormValues,\n\t\tcallback: (type: boolean, err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthForgotPassword({ ...params, ...getToken() });\n\t\t\tcallback(true, \"Reset Link sent to your email\");\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t}\n\n\t\t\tcallback(false, message);\n\t\t}\n\t};\n\n\tconst handleResetPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tconst response = await postV1AuthResetPassword({ ...params, ...getToken() });\n\t\t\tcallback(response);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangePassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangePassword({ ...params, ...getToken() });\n\t\t\tcallback(null);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tconsole.log(\"Error \", error)\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message);\n\t\t\t}\n\t\t}\n\t\tcallback(\"reset\");\n\t}\n\n\tconst handleChangeUserPassword = async (params: resetPasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPassword({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst handleChangeUserPasswordByAdmin = async (params: changePasswordValues,\n\t\tcallback: (err: string, resType: boolean) => void) => {\n\t\ttry {\n\t\t\tawait postV1AuthChangeUserPasswordByAdmin({ ...params, ...getToken() });\n\t\t\tcallback('Password Changed Successfully', true);\n\t\t} catch (error) {\n\t\t\tlet message: string = 'Something went wrong';\n\t\t\tif (error instanceof Error) {\n\t\t\t\tmessage = isJsonParse(error.message).message || error.message;\n\t\t\t\tcallback(message, false);\n\t\t\t}\n\t\t}\n\t}\n\n\n\tconst values = {\n\t\tuser,\n\t\tauthToken,\n\t\tloading,\n\t\tsetUser,\n\t\tsetLoading,\n\t\tlogin: handleLogin,\n\t\tlogout: handleLogout,\n\t\tforgotPassword: handleForgotPassword,\n\t\tresetPassword: handleResetPassword,\n\t\tchangePassword: handleChangePassword,\n\t\tchangeUserPassword: handleChangeUserPassword,\n\t\tchangeUserPasswordByAdmin: handleChangeUserPasswordByAdmin\n\t};\n\n\treturn <AuthContext.Provider value={values}>{children}</AuthContext.Provider>;\n};\n\nexport { AuthContext, AuthProvider };\n","import { useContext } from \"react\";\nimport { AuthContext, DefaultProviderProps } from \"../contexts/AuthContext\";\n\nexport const useAuth = (): DefaultProviderProps => useContext(AuthContext);\n"],"names":["MUITypography","jsx","require$$0","require$$1","require$$2","React","jsxs","CloseIcon","PathnameGenerator","PathnameGeneratorInventory","PathnameGeneratorManufacuring","PathnameGeneratorPurchase","_a","RENTALROUTES","PathnameGeneratorCrm","PathnameGeneratorRental","RbacApi.getV1RoleUserId"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21]}