@orbe-agro/client-core-prod 5.5.40 → 5.5.48

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 (96) hide show
  1. package/dist/@ecme/auth/AuthProvider.js +11 -3
  2. package/dist/@ecme/auth/AuthProvider.js.map +1 -1
  3. package/dist/@ecme/components/index.js +112 -110
  4. package/dist/@ecme/components/index.js.map +1 -1
  5. package/dist/@ecme/components/shared/Can.js +16 -0
  6. package/dist/@ecme/components/shared/Can.js.map +1 -0
  7. package/dist/@ecme/components/shared/index.js +48 -46
  8. package/dist/@ecme/components/shared/index.js.map +1 -1
  9. package/dist/@ecme/index.js +226 -224
  10. package/dist/@ecme/index.js.map +1 -1
  11. package/dist/@types/@ecme/auth/AuthProvider.d.ts.map +1 -1
  12. package/dist/@types/@ecme/components/shared/Can.d.ts +10 -0
  13. package/dist/@types/@ecme/components/shared/Can.d.ts.map +1 -0
  14. package/dist/@types/@ecme/components/shared/index.d.ts +1 -0
  15. package/dist/@types/@ecme/components/shared/index.d.ts.map +1 -1
  16. package/dist/@types/base/@types/api/request/originacao/TCreateTipoCategoriaFiscalRequest.d.ts +1 -0
  17. package/dist/@types/base/@types/api/request/originacao/TCreateTipoCategoriaFiscalRequest.d.ts.map +1 -1
  18. package/dist/@types/base/@types/api/request/originacao/TUpdateTipoCategoriaFiscalRequest.d.ts +2 -0
  19. package/dist/@types/base/@types/api/request/originacao/TUpdateTipoCategoriaFiscalRequest.d.ts.map +1 -1
  20. package/dist/@types/base/@types/api/response/originacao/TTipoCategoriaFiscalResponse.d.ts +1 -0
  21. package/dist/@types/base/@types/api/response/originacao/TTipoCategoriaFiscalResponse.d.ts.map +1 -1
  22. package/dist/@types/base/@types/models/adm/funcionalidade.d.ts +9 -0
  23. package/dist/@types/base/@types/models/adm/funcionalidade.d.ts.map +1 -0
  24. package/dist/@types/base/components/forms/GenericFomrsSetValue/GenericNumberFormSectionPrice.d.ts +2 -1
  25. package/dist/@types/base/components/forms/GenericFomrsSetValue/GenericNumberFormSectionPrice.d.ts.map +1 -1
  26. package/dist/@types/base/components/forms/GenericForms/GenericNumberFormSection.d.ts +2 -1
  27. package/dist/@types/base/components/forms/GenericForms/GenericNumberFormSection.d.ts.map +1 -1
  28. package/dist/@types/base/components/forms/NumberFormVariant/GenericNumberFormSectionPrice.d.ts +2 -1
  29. package/dist/@types/base/components/forms/NumberFormVariant/GenericNumberFormSectionPrice.d.ts.map +1 -1
  30. package/dist/@types/base/configs/endpoints.config/adm/config/funcionalidades.d.ts +1 -0
  31. package/dist/@types/base/configs/endpoints.config/adm/config/funcionalidades.d.ts.map +1 -1
  32. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts +9 -4
  33. package/dist/@types/base/configs/endpoints.config/endpoints.navigation.d.ts.map +1 -1
  34. package/dist/@types/base/configs/endpoints.config/racao/config/pedidoVenda.d.ts +4 -4
  35. package/dist/@types/base/configs/endpoints.config/racao/racao.d.ts +4 -4
  36. package/dist/@types/base/configs/endpoints.config/transportadora/ordemCarregamento.d.ts +4 -0
  37. package/dist/@types/base/configs/endpoints.config/transportadora/ordemCarregamento.d.ts.map +1 -1
  38. package/dist/@types/base/services/modules/AdmService.d.ts +2 -0
  39. package/dist/@types/base/services/modules/AdmService.d.ts.map +1 -1
  40. package/dist/@types/base/services/modules/racao/pedidoVenda/PedidoVendaService.d.ts +1 -0
  41. package/dist/@types/base/services/modules/racao/pedidoVenda/PedidoVendaService.d.ts.map +1 -1
  42. package/dist/@types/base/services/modules/transportadora/OrdemCarregamento/OrdemCarregamentoService.d.ts +1 -0
  43. package/dist/@types/base/services/modules/transportadora/OrdemCarregamento/OrdemCarregamentoService.d.ts.map +1 -1
  44. package/dist/@types/base/store/auth/sessionUserData.d.ts +3 -0
  45. package/dist/@types/base/store/auth/sessionUserData.d.ts.map +1 -1
  46. package/dist/base/@types/models/adm/funcionalidade.js +2 -0
  47. package/dist/base/@types/models/adm/funcionalidade.js.map +1 -0
  48. package/dist/base/components/forms/GenericFomrsSetValue/GenericNumberFormSectionPrice.js +3 -2
  49. package/dist/base/components/forms/GenericFomrsSetValue/GenericNumberFormSectionPrice.js.map +1 -1
  50. package/dist/base/components/forms/GenericForms/GenericNumberFormSection.js +3 -2
  51. package/dist/base/components/forms/GenericForms/GenericNumberFormSection.js.map +1 -1
  52. package/dist/base/components/forms/NumberFormVariant/GenericNumberFormSectionPrice.js +3 -2
  53. package/dist/base/components/forms/NumberFormVariant/GenericNumberFormSectionPrice.js.map +1 -1
  54. package/dist/base/configs/endpoints.config/adm/config/funcionalidades.js +2 -1
  55. package/dist/base/configs/endpoints.config/adm/config/funcionalidades.js.map +1 -1
  56. package/dist/base/configs/endpoints.config/originacao/config/termoFunrural.js +1 -1
  57. package/dist/base/configs/endpoints.config/originacao/config/termoFunrural.js.map +1 -1
  58. package/dist/base/configs/endpoints.config/racao/config/pedidoVenda.js +1 -1
  59. package/dist/base/configs/endpoints.config/racao/config/pedidoVenda.js.map +1 -1
  60. package/dist/base/configs/endpoints.config/transportadora/ordemCarregamento.js +2 -1
  61. package/dist/base/configs/endpoints.config/transportadora/ordemCarregamento.js.map +1 -1
  62. package/dist/base/index.js +6 -3
  63. package/dist/base/services/index.js +6 -3
  64. package/dist/base/services/modules/AdmService.js +7 -0
  65. package/dist/base/services/modules/AdmService.js.map +1 -1
  66. package/dist/base/services/modules/index.js +6 -3
  67. package/dist/base/services/modules/originacao/termoFunrural/termoFunruralService.js +1 -1
  68. package/dist/base/services/modules/originacao/termoFunrural/termoFunruralService.js.map +1 -1
  69. package/dist/base/services/modules/racao/index.js +2 -1
  70. package/dist/base/services/modules/racao/pedidoVenda/PedidoVendaService.js +8 -0
  71. package/dist/base/services/modules/racao/pedidoVenda/PedidoVendaService.js.map +1 -1
  72. package/dist/base/services/modules/transportadora/OrdemCarregamento/OrdemCarregamentoService.js +12 -1
  73. package/dist/base/services/modules/transportadora/OrdemCarregamento/OrdemCarregamentoService.js.map +1 -1
  74. package/dist/base/services/modules/transportadora/index.js +2 -1
  75. package/dist/base/store/auth/sessionUserData.js +16 -1
  76. package/dist/base/store/auth/sessionUserData.js.map +1 -1
  77. package/lib/@ecme/auth/AuthProvider.tsx +13 -3
  78. package/lib/@ecme/components/shared/Can.tsx +25 -0
  79. package/lib/@ecme/components/shared/index.tsx +1 -0
  80. package/lib/base/@types/api/request/originacao/TCreateTipoCategoriaFiscalRequest.ts +1 -0
  81. package/lib/base/@types/api/request/originacao/TUpdateTipoCategoriaFiscalRequest.ts +2 -0
  82. package/lib/base/@types/api/response/originacao/TTipoCategoriaFiscalResponse.ts +1 -0
  83. package/lib/base/@types/models/adm/funcionalidade.ts +8 -0
  84. package/lib/base/components/forms/GenericFomrsSetValue/GenericNumberFormSectionPrice.tsx +4 -2
  85. package/lib/base/components/forms/GenericForms/GenericNumberFormSection.tsx +4 -2
  86. package/lib/base/components/forms/NumberFormVariant/GenericNumberFormSectionPrice.tsx +3 -1
  87. package/lib/base/configs/endpoints.config/adm/config/funcionalidades.ts +1 -0
  88. package/lib/base/configs/endpoints.config/originacao/config/termoFunrural.ts +1 -1
  89. package/lib/base/configs/endpoints.config/racao/config/pedidoVenda.ts +1 -1
  90. package/lib/base/configs/endpoints.config/transportadora/ordemCarregamento.ts +1 -0
  91. package/lib/base/services/modules/AdmService.ts +8 -0
  92. package/lib/base/services/modules/originacao/termoFunrural/termoFunruralService.ts +1 -1
  93. package/lib/base/services/modules/racao/pedidoVenda/PedidoVendaService.ts +8 -0
  94. package/lib/base/services/modules/transportadora/OrdemCarregamento/OrdemCarregamentoService.ts +11 -0
  95. package/lib/base/store/auth/sessionUserData.ts +25 -1
  96. package/package.json +1 -1
@@ -10,7 +10,7 @@ import { useImperativeHandle, useRef } from "react";
10
10
  import { useNavigate } from "react-router-dom";
11
11
  import AuthContext from "./AuthContext.js";
12
12
  import { apiFindUserById } from "../../base/services/modules/dm/user/UserService.js";
13
- import { apiFetchUserFuncionalidades, apiFetchUserVinculosUsuario } from "../../base/services/modules/AdmService.js";
13
+ import { apiFetchUserFuncionalidadesDetail, apiFetchUserVinculosUsuario } from "../../base/services/modules/AdmService.js";
14
14
  const IsolatedNavigator = ({ ref }) => {
15
15
  const navigate = useNavigate();
16
16
  useImperativeHandle(ref, () => {
@@ -31,6 +31,9 @@ function AuthProvider({ children }) {
31
31
  const setFuncionalidadesSet = useSessionUserDataStore(
32
32
  (state) => state.setFuncionalidadesSet
33
33
  );
34
+ const setFuncionalidadesNameSet = useSessionUserDataStore(
35
+ (state) => state.setFuncionalidadesNameSet
36
+ );
34
37
  const setFuncionalidadesMap = useSessionUserDataStore(
35
38
  (state) => state.setFuncionalidesMap
36
39
  );
@@ -77,17 +80,22 @@ function AuthProvider({ children }) {
77
80
  const resp = await apiSignIn(values);
78
81
  if (resp) {
79
82
  handleSignIn({ accessToken: resp.jwtToken });
80
- const funcionalidades = await apiFetchUserFuncionalidades(
83
+ const funcionalidades = await apiFetchUserFuncionalidadesDetail(
81
84
  resp.id
82
85
  );
83
86
  const vinculosUsuario = await apiFetchUserVinculosUsuario(
84
87
  resp.id
85
88
  );
89
+ const funcionalidadesUrls = funcionalidades.map((f) => f.url);
90
+ const funcionalidadesNames = new Set(
91
+ funcionalidades.map((f) => f.nome)
92
+ );
93
+ setFuncionalidadesNameSet(funcionalidadesNames);
86
94
  const newUser = {
87
95
  userId: resp.id.toString(),
88
96
  userName: resp.nome,
89
97
  primeiroAcesso: resp.primeiroAcesso,
90
- authority: funcionalidades,
98
+ authority: funcionalidadesUrls,
91
99
  vinculosUsuario
92
100
  };
93
101
  handlePostAuth(resp);
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.js","sources":["../../../lib/@ecme/auth/AuthProvider.tsx"],"sourcesContent":["import type {\n AuthResult,\n OauthSignInCallbackPayload,\n SignInCredential,\n SignInResponse,\n SignUpCredential,\n Token,\n} from '@/@types/auth'\nimport appConfig from '@/configs/app.config'\nimport { REDIRECT_URL_KEY } from '@/constants/app.constant'\nimport { apiSignIn, apiSignOut, apiSignUp } from '@/services/AuthService'\nimport { useSessionUser, useToken } from '@/store/authStore'\nimport {\n apiFetchUserFuncionalidades,\n apiFetchUserVinculosUsuario,\n apiFindUserById,\n} from '@base/services'\nimport {\n TFuncionalidadeMap,\n useSessionUserDataStore,\n} from '@base/store/auth/sessionUserData'\nimport { mapFuncionalidadesByPath } from '@base/utils/modules/dm/funcionalidades'\nimport { ReactNode, Ref, useImperativeHandle, useRef } from 'react'\nimport { NavigateFunction, useNavigate } from 'react-router-dom'\nimport AuthContext from './AuthContext'\n\ntype AuthProviderProps = { children: ReactNode }\n\nexport type IsolatedNavigatorRef = {\n navigate: NavigateFunction\n}\n\nconst IsolatedNavigator = ({ ref }: { ref: Ref<IsolatedNavigatorRef> }) => {\n const navigate = useNavigate()\n\n useImperativeHandle(ref, () => {\n return {\n navigate,\n }\n }, [navigate])\n\n return <></>\n}\n\nfunction AuthProvider({ children }: AuthProviderProps) {\n const signedIn = useSessionUser((state) => state.session.signedIn)\n const user = useSessionUser((state) => state.user)\n const setUser = useSessionUser((state) => state.setUser)\n const setSessionSignedIn = useSessionUser(\n (state) => state.setSessionSignedIn,\n )\n\n const setRolesSet = useSessionUserDataStore((state) => state.setRolesSet)\n const setFuncionalidadesSet = useSessionUserDataStore(\n (state) => state.setFuncionalidadesSet,\n )\n const setFuncionalidadesMap = useSessionUserDataStore(\n (state) => state.setFuncionalidesMap,\n )\n\n const { token, setToken } = useToken()\n\n const authenticated = Boolean(token && signedIn)\n\n const navigatorRef = useRef<IsolatedNavigatorRef>(null)\n\n const redirect = (userData: { primeiroAcesso?: boolean }) => {\n if (userData.primeiroAcesso) {\n navigatorRef.current?.navigate(appConfig.firstAccessPath)\n return\n }\n const search = window.location.search\n const params = new URLSearchParams(search)\n const redirectUrl = params.get(REDIRECT_URL_KEY)\n\n navigatorRef.current?.navigate(\n redirectUrl ? redirectUrl : appConfig.authenticatedEntryPath,\n )\n }\n\n const handleSignIn = (tokens: Token) => {\n setToken(tokens.accessToken)\n setSessionSignedIn(true)\n }\n\n const handleSignOut = () => {\n setToken('')\n setUser({})\n setSessionSignedIn(false)\n }\n\n async function handlePostAuth(resp: SignInResponse) {\n const findUserByIdResp = await apiFindUserById(resp.id)\n\n const { roles } = findUserByIdResp\n const funcionalidades = roles.flatMap((role) =>\n role.funcionalidades.map((func) => func.url),\n )\n\n const funcionalidadesSet = new Set<string>(funcionalidades || [])\n setFuncionalidadesSet(funcionalidadesSet)\n\n const funcionalidadesMap = funcionalidades.reduce(\n mapFuncionalidadesByPath,\n {} as TFuncionalidadeMap,\n )\n\n setFuncionalidadesMap(funcionalidadesMap)\n }\n\n const signIn = async (values: SignInCredential): AuthResult => {\n try {\n const resp = await apiSignIn(values)\n\n if (resp) {\n handleSignIn({ accessToken: resp.jwtToken })\n const funcionalidades = await apiFetchUserFuncionalidades(\n resp.id,\n )\n const vinculosUsuario = await apiFetchUserVinculosUsuario(\n resp.id,\n )\n\n const newUser = {\n userId: resp.id.toString(),\n userName: resp.nome,\n primeiroAcesso: resp.primeiroAcesso,\n authority: funcionalidades,\n vinculosUsuario: vinculosUsuario,\n }\n handlePostAuth(resp)\n setUser(newUser)\n redirect(newUser)\n return {\n status: 'success',\n message: '',\n }\n }\n return {\n status: 'failed',\n message: 'Unable to sign in',\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (errors: any) {\n console.error('ERRO NA CHAMADA DA API:', errors)\n return {\n status: 'failed',\n message: errors?.response?.data?.message || errors.toString(),\n }\n }\n }\n\n const signUp = async (values: SignUpCredential): AuthResult => {\n try {\n const resp = await apiSignUp(values)\n if (resp) {\n handleSignIn({ accessToken: resp.jwtToken })\n // Armazenar ID e nome do usuário no estado\n const newUser = {\n userId: resp.id.toString(),\n userName: resp.nome,\n primeiroAcesso: false,\n }\n setUser(newUser)\n redirect(newUser)\n return {\n status: 'success',\n message: '',\n }\n }\n return {\n status: 'failed',\n message: 'Unable to sign up',\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (errors: any) {\n return {\n status: 'failed',\n message: errors?.response?.data?.message || errors.toString(),\n }\n }\n }\n\n const signOut = async () => {\n try {\n await apiSignOut()\n } finally {\n handleSignOut()\n navigatorRef.current?.navigate(appConfig.unAuthenticatedEntryPath)\n }\n }\n const oAuthSignIn = (\n callback: (payload: OauthSignInCallbackPayload) => void,\n ) => {\n callback({\n onSignIn: handleSignIn,\n redirect: () => redirect(user),\n })\n }\n\n const updateUserSession = (newUserData: Partial<typeof user>) => {\n setUser({ ...user, ...newUserData })\n }\n return (\n <AuthContext.Provider\n value={{\n authenticated,\n user,\n signIn,\n signUp,\n signOut,\n oAuthSignIn,\n updateUserSession,\n }}\n >\n {children}\n <IsolatedNavigator ref={navigatorRef} />\n </AuthContext.Provider>\n )\n}\n\nexport default AuthProvider\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AuthProvider.js","sources":["../../../lib/@ecme/auth/AuthProvider.tsx"],"sourcesContent":["import type {\n AuthResult,\n OauthSignInCallbackPayload,\n SignInCredential,\n SignInResponse,\n SignUpCredential,\n Token,\n} from '@/@types/auth'\nimport appConfig from '@/configs/app.config'\nimport { REDIRECT_URL_KEY } from '@/constants/app.constant'\nimport { apiSignIn, apiSignOut, apiSignUp } from '@/services/AuthService'\nimport { useSessionUser, useToken } from '@/store/authStore'\nimport {\n apiFetchUserFuncionalidadesDetail,\n apiFetchUserVinculosUsuario,\n apiFindUserById,\n} from '@base/services'\nimport {\n TFuncionalidadeMap,\n useSessionUserDataStore,\n} from '@base/store/auth/sessionUserData'\nimport { mapFuncionalidadesByPath } from '@base/utils/modules/dm/funcionalidades'\nimport { ReactNode, Ref, useImperativeHandle, useRef } from 'react'\nimport { NavigateFunction, useNavigate } from 'react-router-dom'\nimport AuthContext from './AuthContext'\n\ntype AuthProviderProps = { children: ReactNode }\n\nexport type IsolatedNavigatorRef = {\n navigate: NavigateFunction\n}\n\nconst IsolatedNavigator = ({ ref }: { ref: Ref<IsolatedNavigatorRef> }) => {\n const navigate = useNavigate()\n\n useImperativeHandle(ref, () => {\n return {\n navigate,\n }\n }, [navigate])\n\n return <></>\n}\n\nfunction AuthProvider({ children }: AuthProviderProps) {\n const signedIn = useSessionUser((state) => state.session.signedIn)\n const user = useSessionUser((state) => state.user)\n const setUser = useSessionUser((state) => state.setUser)\n const setSessionSignedIn = useSessionUser(\n (state) => state.setSessionSignedIn,\n )\n\n const setRolesSet = useSessionUserDataStore((state) => state.setRolesSet)\n const setFuncionalidadesSet = useSessionUserDataStore(\n (state) => state.setFuncionalidadesSet,\n )\n const setFuncionalidadesNameSet = useSessionUserDataStore(\n (state) => state.setFuncionalidadesNameSet,\n )\n const setFuncionalidadesMap = useSessionUserDataStore(\n (state) => state.setFuncionalidesMap,\n )\n\n const { token, setToken } = useToken()\n\n const authenticated = Boolean(token && signedIn)\n\n const navigatorRef = useRef<IsolatedNavigatorRef>(null)\n\n const redirect = (userData: { primeiroAcesso?: boolean }) => {\n if (userData.primeiroAcesso) {\n navigatorRef.current?.navigate(appConfig.firstAccessPath)\n return\n }\n const search = window.location.search\n const params = new URLSearchParams(search)\n const redirectUrl = params.get(REDIRECT_URL_KEY)\n\n navigatorRef.current?.navigate(\n redirectUrl ? redirectUrl : appConfig.authenticatedEntryPath,\n )\n }\n\n const handleSignIn = (tokens: Token) => {\n setToken(tokens.accessToken)\n setSessionSignedIn(true)\n }\n\n const handleSignOut = () => {\n setToken('')\n setUser({})\n setSessionSignedIn(false)\n }\n\n async function handlePostAuth(resp: SignInResponse) {\n const findUserByIdResp = await apiFindUserById(resp.id)\n\n const { roles } = findUserByIdResp\n const funcionalidades = roles.flatMap((role) =>\n role.funcionalidades.map((func) => func.url),\n )\n\n const funcionalidadesSet = new Set<string>(funcionalidades || [])\n setFuncionalidadesSet(funcionalidadesSet)\n\n const funcionalidadesMap = funcionalidades.reduce(\n mapFuncionalidadesByPath,\n {} as TFuncionalidadeMap,\n )\n\n setFuncionalidadesMap(funcionalidadesMap)\n }\n\n const signIn = async (values: SignInCredential): AuthResult => {\n try {\n const resp = await apiSignIn(values)\n\n if (resp) {\n handleSignIn({ accessToken: resp.jwtToken })\n const funcionalidades = await apiFetchUserFuncionalidadesDetail(\n resp.id,\n )\n const vinculosUsuario = await apiFetchUserVinculosUsuario(\n resp.id,\n )\n\n const funcionalidadesUrls = funcionalidades.map((f) => f.url)\n const funcionalidadesNames = new Set<string>(\n funcionalidades.map((f) => f.nome),\n )\n\n setFuncionalidadesNameSet(funcionalidadesNames)\n\n const newUser = {\n userId: resp.id.toString(),\n userName: resp.nome,\n primeiroAcesso: resp.primeiroAcesso,\n authority: funcionalidadesUrls,\n vinculosUsuario: vinculosUsuario,\n }\n handlePostAuth(resp)\n setUser(newUser)\n redirect(newUser)\n return {\n status: 'success',\n message: '',\n }\n }\n return {\n status: 'failed',\n message: 'Unable to sign in',\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (errors: any) {\n console.error('ERRO NA CHAMADA DA API:', errors)\n return {\n status: 'failed',\n message: errors?.response?.data?.message || errors.toString(),\n }\n }\n }\n\n const signUp = async (values: SignUpCredential): AuthResult => {\n try {\n const resp = await apiSignUp(values)\n if (resp) {\n handleSignIn({ accessToken: resp.jwtToken })\n // Armazenar ID e nome do usuário no estado\n const newUser = {\n userId: resp.id.toString(),\n userName: resp.nome,\n primeiroAcesso: false,\n }\n setUser(newUser)\n redirect(newUser)\n return {\n status: 'success',\n message: '',\n }\n }\n return {\n status: 'failed',\n message: 'Unable to sign up',\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (errors: any) {\n return {\n status: 'failed',\n message: errors?.response?.data?.message || errors.toString(),\n }\n }\n }\n\n const signOut = async () => {\n try {\n await apiSignOut()\n } finally {\n handleSignOut()\n navigatorRef.current?.navigate(appConfig.unAuthenticatedEntryPath)\n }\n }\n const oAuthSignIn = (\n callback: (payload: OauthSignInCallbackPayload) => void,\n ) => {\n callback({\n onSignIn: handleSignIn,\n redirect: () => redirect(user),\n })\n }\n\n const updateUserSession = (newUserData: Partial<typeof user>) => {\n setUser({ ...user, ...newUserData })\n }\n return (\n <AuthContext.Provider\n value={{\n authenticated,\n user,\n signIn,\n signUp,\n signOut,\n oAuthSignIn,\n updateUserSession,\n }}\n >\n {children}\n <IsolatedNavigator ref={navigatorRef} />\n </AuthContext.Provider>\n )\n}\n\nexport default AuthProvider\n"],"names":[],"mappings":"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"}
@@ -24,77 +24,78 @@ import { default as default18 } from "./view/BaseView.js";
24
24
  import { default as default19 } from "./ui/Button/Button.js";
25
25
  import { default as default20 } from "./ui/DatePicker/Calendar.js";
26
26
  import { default as default21 } from "./shared/CalendarView.js";
27
- import { default as default22 } from "./ui/Card/Card.js";
28
- import { default as default23 } from "./shared/Chart.js";
27
+ import { default as default22 } from "./shared/Can.js";
28
+ import { default as default23 } from "./ui/Card/Card.js";
29
+ import { default as default24 } from "./shared/Chart.js";
29
30
  import { Checkbox } from "./ui/Checkbox/index.js";
30
- import { default as default24 } from "./ui/ConfigProvider/ConfigProvider.js";
31
- import { default as default25 } from "./shared/ConfirmDialog.js";
32
- import { default as default26 } from "./shared/Container.js";
33
- import { default as default27 } from "./view/CreditCardDialog/CreditCardDialog.js";
34
- import { default as default28 } from "./shared/CustomFormatInput.js";
31
+ import { default as default25 } from "./ui/ConfigProvider/ConfigProvider.js";
32
+ import { default as default26 } from "./shared/ConfirmDialog.js";
33
+ import { default as default27 } from "./shared/Container.js";
34
+ import { default as default28 } from "./view/CreditCardDialog/CreditCardDialog.js";
35
+ import { default as default29 } from "./shared/CustomFormatInput.js";
35
36
  import { DataTable } from "./shared/DataTable.js";
36
37
  import { DatePicker } from "./ui/DatePicker/index.js";
37
- import { default as default29 } from "./shared/DebounceInput.js";
38
- import { default as default30 } from "./docs/DemoBoxContent.js";
39
- import { default as default31 } from "./docs/DemoComponentApi.js";
40
- import { default as default32 } from "./docs/DemoLayout.js";
41
- import { default as default33 } from "./docs/DemoTitleSection.js";
42
- import { default as default34 } from "./ui/Dialog/Dialog.js";
43
- import { default as default35 } from "./docs/DocumentationNav.js";
44
- import { default as default36 } from "./shared/DoubleSidedImage.js";
45
- import { default as default37 } from "./ui/Drawer/Drawer.js";
38
+ import { default as default30 } from "./shared/DebounceInput.js";
39
+ import { default as default31 } from "./docs/DemoBoxContent.js";
40
+ import { default as default32 } from "./docs/DemoComponentApi.js";
41
+ import { default as default33 } from "./docs/DemoLayout.js";
42
+ import { default as default34 } from "./docs/DemoTitleSection.js";
43
+ import { default as default35 } from "./ui/Dialog/Dialog.js";
44
+ import { default as default36 } from "./docs/DocumentationNav.js";
45
+ import { default as default37 } from "./shared/DoubleSidedImage.js";
46
+ import { default as default38 } from "./ui/Drawer/Drawer.js";
46
47
  import { Dropdown } from "./ui/Dropdown/index.js";
47
- import { default as default38 } from "./view/FileIcon/FileIcon.js";
48
+ import { default as default39 } from "./view/FileIcon/FileIcon.js";
48
49
  import { Form } from "./ui/Form/Form.js";
49
- import { default as default39 } from "./ui/Form/FormContainer.js";
50
- import { default as default40 } from "./ui/Form/FormItem.js";
51
- import { default as default41 } from "./shared/GanttChart/GanttChart.js";
52
- import { default as default42 } from "./shared/GrowShrinkValue.js";
53
- import { default as default43 } from "./shared/IconText.js";
54
- import { default as default44 } from "./shared/ImageGallery.js";
55
- import { default as default45 } from "./ui/Input/Input.js";
50
+ import { default as default40 } from "./ui/Form/FormContainer.js";
51
+ import { default as default41 } from "./ui/Form/FormItem.js";
52
+ import { default as default42 } from "./shared/GanttChart/GanttChart.js";
53
+ import { default as default43 } from "./shared/GrowShrinkValue.js";
54
+ import { default as default44 } from "./shared/IconText.js";
55
+ import { default as default45 } from "./shared/ImageGallery.js";
56
+ import { default as default46 } from "./ui/Input/Input.js";
56
57
  import { InputGroup } from "./ui/InputGroup/index.js";
57
58
  import { Masonry } from "./shared/Masonry/Masonry.js";
58
59
  import { Menu } from "./ui/Menu/index.js";
59
- import { default as default46 } from "./ui/MenuItem/index.js";
60
- import { default as default47 } from "./shared/NavToggle.js";
61
- import { default as default48 } from "./ui/Notification/Notification.js";
62
- import { default as default49 } from "./shared/NumericInput.js";
63
- import { default as default50 } from "./shared/OtpInput.js";
64
- import { default as default51 } from "./ui/Pagination/Pagination.js";
65
- import { default as default52 } from "./shared/PasswordInput.js";
60
+ import { default as default47 } from "./ui/MenuItem/index.js";
61
+ import { default as default48 } from "./shared/NavToggle.js";
62
+ import { default as default49 } from "./ui/Notification/Notification.js";
63
+ import { default as default50 } from "./shared/NumericInput.js";
64
+ import { default as default51 } from "./shared/OtpInput.js";
65
+ import { default as default52 } from "./ui/Pagination/Pagination.js";
66
+ import { default as default53 } from "./shared/PasswordInput.js";
66
67
  import { PatternInput } from "./shared/PatternInput.js";
67
- import { default as default53 } from "./shared/PresetSegmentItemOption.js";
68
- import { default as default54 } from "./ui/Progress/Progress.js";
69
- import { default as default55 } from "./route/ProtectedRoute.js";
70
- import { default as default56 } from "./route/PublicRoute.js";
68
+ import { default as default54 } from "./shared/PresetSegmentItemOption.js";
69
+ import { default as default55 } from "./ui/Progress/Progress.js";
70
+ import { default as default56 } from "./route/ProtectedRoute.js";
71
+ import { default as default57 } from "./route/PublicRoute.js";
71
72
  import { Radio } from "./ui/Radio/index.js";
72
- import { default as default57 } from "./ui/DatePicker/RangeCalendar.js";
73
- import { default as default58 } from "./shared/RichTextEditor/RichTextEditor.js";
74
- import { default as default59 } from "./ui/ScrollBar/ScrollBar.js";
73
+ import { default as default58 } from "./ui/DatePicker/RangeCalendar.js";
74
+ import { default as default59 } from "./shared/RichTextEditor/RichTextEditor.js";
75
+ import { default as default60 } from "./ui/ScrollBar/ScrollBar.js";
75
76
  import { Segment } from "./ui/Segment/index.js";
76
- import { default as default60 } from "./ui/Select/Select.js";
77
- import { default as default61 } from "./ui/Skeleton/Skeleton.js";
78
- import { default as default62 } from "./ui/Spinner/Spinner.js";
77
+ import { default as default61 } from "./ui/Select/Select.js";
78
+ import { default as default62 } from "./ui/Skeleton/Skeleton.js";
79
+ import { default as default63 } from "./ui/Spinner/Spinner.js";
79
80
  import { Steps } from "./ui/Steps/index.js";
80
- import { default as default63 } from "./shared/StickyFooter.js";
81
- import { default as default64 } from "./shared/StrictModeDroppable.js";
82
- import { default as default65 } from "./ui/Switcher/Switcher.js";
83
- import { default as default66 } from "./shared/SyntaxHighlighter.js";
81
+ import { default as default64 } from "./shared/StickyFooter.js";
82
+ import { default as default65 } from "./shared/StrictModeDroppable.js";
83
+ import { default as default66 } from "./ui/Switcher/Switcher.js";
84
+ import { default as default67 } from "./shared/SyntaxHighlighter.js";
84
85
  import { Table } from "./ui/Table/index.js";
85
- import { default as default67 } from "./shared/loaders/TableRowSkeleton.js";
86
+ import { default as default68 } from "./shared/loaders/TableRowSkeleton.js";
86
87
  import { Tabs } from "./ui/Tabs/index.js";
87
- import { default as default68 } from "./ui/Tag/Tag.js";
88
- import { default as default69 } from "./view/TaskItem/TaskItem.js";
89
- import { default as default70 } from "./shared/loaders/TextBlockSkeleton.js";
88
+ import { default as default69 } from "./ui/Tag/Tag.js";
89
+ import { default as default70 } from "./view/TaskItem/TaskItem.js";
90
+ import { default as default71 } from "./shared/loaders/TextBlockSkeleton.js";
90
91
  import { TimeInput } from "./ui/TimeInput/index.js";
91
92
  import { Timeline } from "./ui/Timeline/index.js";
92
- import { default as default71 } from "./shared/ToggleDrawer.js";
93
- import { default as default72 } from "./ui/Tooltip/Tooltip.js";
94
- import { default as default73 } from "./ui/Upload/Upload.js";
95
- import { default as default74 } from "./shared/UsersAvatarGroup.js";
96
- import { default as default75 } from "./ui/hooks/index.js";
97
- import { default as default76 } from "./ui/toast/toast.js";
93
+ import { default as default72 } from "./shared/ToggleDrawer.js";
94
+ import { default as default73 } from "./ui/Tooltip/Tooltip.js";
95
+ import { default as default74 } from "./ui/Upload/Upload.js";
96
+ import { default as default75 } from "./shared/UsersAvatarGroup.js";
97
+ import { default as default76 } from "./ui/hooks/index.js";
98
+ import { default as default77 } from "./ui/toast/toast.js";
98
99
  export {
99
100
  default5 as AbbreviateNumber,
100
101
  default6 as ActionLink,
@@ -114,79 +115,80 @@ export {
114
115
  default19 as Button,
115
116
  default20 as Calendar,
116
117
  default21 as CalendarView,
117
- default22 as Card,
118
- default23 as Chart,
118
+ default22 as Can,
119
+ default23 as Card,
120
+ default24 as Chart,
119
121
  Checkbox,
120
- default24 as ConfigProvider,
121
- default25 as ConfirmDialog,
122
- default26 as Container,
123
- default27 as CreditCardDialog,
124
- default28 as CustomFormatInput,
122
+ default25 as ConfigProvider,
123
+ default26 as ConfirmDialog,
124
+ default27 as Container,
125
+ default28 as CreditCardDialog,
126
+ default29 as CustomFormatInput,
125
127
  DataTable,
126
128
  DatePicker,
127
- default29 as DebounceInput,
128
- default30 as DemoBoxContent,
129
- default31 as DemoComponentApi,
130
- default32 as DemoLayout,
131
- default33 as DemoTitleSection,
132
- default34 as Dialog,
133
- default35 as DocumentationNav,
134
- default36 as DoubleSidedImage,
135
- default37 as Drawer,
129
+ default30 as DebounceInput,
130
+ default31 as DemoBoxContent,
131
+ default32 as DemoComponentApi,
132
+ default33 as DemoLayout,
133
+ default34 as DemoTitleSection,
134
+ default35 as Dialog,
135
+ default36 as DocumentationNav,
136
+ default37 as DoubleSidedImage,
137
+ default38 as Drawer,
136
138
  Dropdown,
137
- default38 as FileIcon,
139
+ default39 as FileIcon,
138
140
  Form,
139
- default39 as FormContainer,
140
- default40 as FormItem,
141
- default41 as GanttChart,
142
- default42 as GrowShrinkValue,
143
- default43 as IconText,
144
- default44 as ImageGallery,
145
- default45 as Input,
141
+ default40 as FormContainer,
142
+ default41 as FormItem,
143
+ default42 as GanttChart,
144
+ default43 as GrowShrinkValue,
145
+ default44 as IconText,
146
+ default45 as ImageGallery,
147
+ default46 as Input,
146
148
  InputGroup,
147
149
  default4 as Layouts,
148
150
  Masonry,
149
151
  Menu,
150
- default46 as MenuItem,
152
+ default47 as MenuItem,
151
153
  default3 as MobileNav,
152
- default47 as NavToggle,
153
- default48 as Notification,
154
- default49 as NumericInput,
155
- default50 as OtpInput,
156
- default51 as Pagination,
157
- default52 as PasswordInput,
154
+ default48 as NavToggle,
155
+ default49 as Notification,
156
+ default50 as NumericInput,
157
+ default51 as OtpInput,
158
+ default52 as Pagination,
159
+ default53 as PasswordInput,
158
160
  PatternInput,
159
- default53 as PresetSegmentItemOption,
160
- default54 as Progress,
161
- default55 as ProtectedRoute,
162
- default56 as PublicRoute,
161
+ default54 as PresetSegmentItemOption,
162
+ default55 as Progress,
163
+ default56 as ProtectedRoute,
164
+ default57 as PublicRoute,
163
165
  Radio,
164
- default57 as RangeCalendar,
165
- default58 as RichTextEditor,
166
- default59 as ScrollBar,
166
+ default58 as RangeCalendar,
167
+ default59 as RichTextEditor,
168
+ default60 as ScrollBar,
167
169
  Segment,
168
- default60 as Select,
170
+ default61 as Select,
169
171
  default2 as SideNav,
170
- default61 as Skeleton,
171
- default62 as Spinner,
172
+ default62 as Skeleton,
173
+ default63 as Spinner,
172
174
  Steps,
173
- default63 as StickyFooter,
174
- default64 as StrictModeDroppable,
175
- default65 as Switcher,
176
- default66 as SyntaxHighlighter,
175
+ default64 as StickyFooter,
176
+ default65 as StrictModeDroppable,
177
+ default66 as Switcher,
178
+ default67 as SyntaxHighlighter,
177
179
  Table,
178
- default67 as TableRowSkeleton,
180
+ default68 as TableRowSkeleton,
179
181
  Tabs,
180
- default68 as Tag,
181
- default69 as TaskItem,
182
- default70 as TextBlockSkeleton,
182
+ default69 as Tag,
183
+ default70 as TaskItem,
184
+ default71 as TextBlockSkeleton,
183
185
  TimeInput,
184
186
  Timeline,
185
- default71 as ToggleDrawer,
186
- default72 as Tooltip,
187
- default73 as Upload,
188
- default74 as UsersAvatarGroup,
189
- default75 as hooks,
190
- default76 as toast
187
+ default72 as ToggleDrawer,
188
+ default73 as Tooltip,
189
+ default74 as Upload,
190
+ default75 as UsersAvatarGroup,
191
+ default76 as hooks,
192
+ default77 as toast
191
193
  };
192
194
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,16 @@
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import { useSessionUserDataStore } from "../../../base/store/auth/sessionUserData.js";
3
+ const Can = ({ I, children, else: fallback = null }) => {
4
+ const checkUserFunctionalityNameAccess = useSessionUserDataStore(
5
+ (state) => state.checkUserFunctionalityNameAccess
6
+ );
7
+ const requiredFunctionalities = Array.isArray(I) ? I : [I];
8
+ const hasAccess = requiredFunctionalities.some(
9
+ (func) => checkUserFunctionalityNameAccess(func)
10
+ );
11
+ return /* @__PURE__ */ jsx(Fragment, { children: hasAccess ? children : fallback });
12
+ };
13
+ export {
14
+ Can as default
15
+ };
16
+ //# sourceMappingURL=Can.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Can.js","sources":["../../../../lib/@ecme/components/shared/Can.tsx"],"sourcesContent":["import { useSessionUserDataStore } from '@base/store/auth/sessionUserData'\nimport { ReactNode } from 'react'\n\ninterface CanProps {\n I: string | string[]\n a?: string | string[]\n children: ReactNode\n else?: ReactNode\n}\n\nconst Can = ({ I, children, else: fallback = null }: CanProps) => {\n const checkUserFunctionalityNameAccess = useSessionUserDataStore(\n (state) => state.checkUserFunctionalityNameAccess,\n )\n\n const requiredFunctionalities = Array.isArray(I) ? I : [I]\n\n const hasAccess = requiredFunctionalities.some((func) =>\n checkUserFunctionalityNameAccess(func),\n )\n\n return <>{hasAccess ? children : fallback}</>\n}\n\nexport default Can\n"],"names":[],"mappings":";;AAUA,MAAM,MAAM,CAAC,EAAE,GAAG,UAAU,MAAM,WAAW,WAAqB;AAC9D,QAAM,mCAAmC;AAAA,IACrC,CAAC,UAAU,MAAM;AAAA,EAAA;AAGrB,QAAM,0BAA0B,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;AAEzD,QAAM,YAAY,wBAAwB;AAAA,IAAK,CAAC,SAC5C,iCAAiC,IAAI;AAAA,EAAA;AAGzC,SAAO,oBAAA,UAAA,EAAG,UAAA,YAAY,WAAW,UAAS;AAC9C;"}
@@ -5,35 +5,36 @@ import { default as default5 } from "./Affix.js";
5
5
  import { default as default6 } from "./AuthorityCheck.js";
6
6
  import { default as default7 } from "./AutoComplete.js";
7
7
  import { default as default8 } from "./CalendarView.js";
8
- import { default as default9 } from "./Chart.js";
9
- import { default as default10 } from "./ConfirmDialog.js";
10
- import { default as default11 } from "./Container.js";
11
- import { default as default12 } from "./CustomFormatInput.js";
8
+ import { default as default9 } from "./Can.js";
9
+ import { default as default10 } from "./Chart.js";
10
+ import { default as default11 } from "./ConfirmDialog.js";
11
+ import { default as default12 } from "./Container.js";
12
+ import { default as default13 } from "./CustomFormatInput.js";
12
13
  import { DataTable } from "./DataTable.js";
13
- import { default as default13 } from "./DebounceInput.js";
14
- import { default as default14 } from "./DoubleSidedImage.js";
14
+ import { default as default14 } from "./DebounceInput.js";
15
+ import { default as default15 } from "./DoubleSidedImage.js";
15
16
  import "./GanttChart/index.js";
16
- import { default as default15 } from "./GrowShrinkValue.js";
17
- import { default as default16 } from "./IconText.js";
18
- import { default as default17 } from "./ImageGallery.js";
17
+ import { default as default16 } from "./GrowShrinkValue.js";
18
+ import { default as default17 } from "./IconText.js";
19
+ import { default as default18 } from "./ImageGallery.js";
19
20
  import "./Masonry/index.js";
20
- import { default as default18 } from "./NavToggle.js";
21
- import { default as default19 } from "./NumericInput.js";
22
- import { default as default20 } from "./OtpInput.js";
23
- import { default as default21 } from "./PasswordInput.js";
21
+ import { default as default19 } from "./NavToggle.js";
22
+ import { default as default20 } from "./NumericInput.js";
23
+ import { default as default21 } from "./OtpInput.js";
24
+ import { default as default22 } from "./PasswordInput.js";
24
25
  import { PatternInput } from "./PatternInput.js";
25
- import { default as default22 } from "./PresetSegmentItemOption.js";
26
+ import { default as default23 } from "./PresetSegmentItemOption.js";
26
27
  import "./RichTextEditor/index.js";
27
- import { default as default23 } from "./StickyFooter.js";
28
- import { default as default24 } from "./StrictModeDroppable.js";
29
- import { default as default25 } from "./SyntaxHighlighter.js";
30
- import { default as default26 } from "./ToggleDrawer.js";
31
- import { default as default27 } from "./UsersAvatarGroup.js";
32
- import { default as default28 } from "./loaders/TableRowSkeleton.js";
33
- import { default as default29 } from "./loaders/TextBlockSkeleton.js";
34
- import { default as default30 } from "./GanttChart/GanttChart.js";
28
+ import { default as default24 } from "./StickyFooter.js";
29
+ import { default as default25 } from "./StrictModeDroppable.js";
30
+ import { default as default26 } from "./SyntaxHighlighter.js";
31
+ import { default as default27 } from "./ToggleDrawer.js";
32
+ import { default as default28 } from "./UsersAvatarGroup.js";
33
+ import { default as default29 } from "./loaders/TableRowSkeleton.js";
34
+ import { default as default30 } from "./loaders/TextBlockSkeleton.js";
35
+ import { default as default31 } from "./GanttChart/GanttChart.js";
35
36
  import { Masonry } from "./Masonry/Masonry.js";
36
- import { default as default31 } from "./RichTextEditor/RichTextEditor.js";
37
+ import { default as default32 } from "./RichTextEditor/RichTextEditor.js";
37
38
  export {
38
39
  default2 as AbbreviateNumber,
39
40
  default3 as ActionLink,
@@ -42,31 +43,32 @@ export {
42
43
  default6 as AuthorityCheck,
43
44
  default7 as AutoComplete,
44
45
  default8 as CalendarView,
45
- default9 as Chart,
46
- default10 as ConfirmDialog,
47
- default11 as Container,
48
- default12 as CustomFormatInput,
46
+ default9 as Can,
47
+ default10 as Chart,
48
+ default11 as ConfirmDialog,
49
+ default12 as Container,
50
+ default13 as CustomFormatInput,
49
51
  DataTable,
50
- default13 as DebounceInput,
51
- default14 as DoubleSidedImage,
52
- default30 as GanttChart,
53
- default15 as GrowShrinkValue,
54
- default16 as IconText,
55
- default17 as ImageGallery,
52
+ default14 as DebounceInput,
53
+ default15 as DoubleSidedImage,
54
+ default31 as GanttChart,
55
+ default16 as GrowShrinkValue,
56
+ default17 as IconText,
57
+ default18 as ImageGallery,
56
58
  Masonry,
57
- default18 as NavToggle,
58
- default19 as NumericInput,
59
- default20 as OtpInput,
60
- default21 as PasswordInput,
59
+ default19 as NavToggle,
60
+ default20 as NumericInput,
61
+ default21 as OtpInput,
62
+ default22 as PasswordInput,
61
63
  PatternInput,
62
- default22 as PresetSegmentItemOption,
63
- default31 as RichTextEditor,
64
- default23 as StickyFooter,
65
- default24 as StrictModeDroppable,
66
- default25 as SyntaxHighlighter,
67
- default28 as TableRowSkeleton,
68
- default29 as TextBlockSkeleton,
69
- default26 as ToggleDrawer,
70
- default27 as UsersAvatarGroup
64
+ default23 as PresetSegmentItemOption,
65
+ default32 as RichTextEditor,
66
+ default24 as StickyFooter,
67
+ default25 as StrictModeDroppable,
68
+ default26 as SyntaxHighlighter,
69
+ default29 as TableRowSkeleton,
70
+ default30 as TextBlockSkeleton,
71
+ default27 as ToggleDrawer,
72
+ default28 as UsersAvatarGroup
71
73
  };
72
74
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}