@archbase/security 4.0.38 → 4.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  import "reflect-metadata";
2
- import * as I from "inversify";
3
- import { decorate as xt, injectable as kt } from "inversify";
4
- import { compressString as St, decompressString as It, IOCContainer as Pt, ARCHBASE_IOC_API_TYPE as G, processErrorMessage as ee, IsNotEmpty as J, IsOptional as re, IsBoolean as q, IsEmail as Tt, getKeyByEnumValue as Ve, useArchbasePasswordRemember as Ct, getI18nextInstance as S, useArchbaseTheme as Ut, isEmailValidate as _t, useArchbaseAppContext as Dt } from "@archbase/core";
5
- import F from "crypto-js";
6
- import { jwtDecode as Rt } from "jwt-decode";
7
- import { jsx as d, jsxs as R, Fragment as te } from "react/jsx-runtime";
8
- import Ge, { useState as f, useEffect as z, createContext as Re, useMemo as Je, useRef as Ke, useCallback as pe, useContext as Ne } from "react";
9
- import { BehaviorSubject as ze } from "rxjs";
10
- import { ArchbaseRemoteApiService as ce, useArchbaseStore as qe } from "@archbase/data";
11
- import { v4 as K } from "uuid";
12
- import { Card as Ye, Text as se, Divider as ye, Group as we, Select as Nt, Tooltip as Bt, Button as ie, TextInput as Ce, Loader as Xe, PasswordInput as Ue, Checkbox as Mt, Anchor as Ot, useMantineColorScheme as Lt, Box as $t, Stack as jt, Skeleton as fe } from "@mantine/core";
13
- import { useFocusTrap as Qe } from "@mantine/hooks";
14
- import { IconCopy as Ft } from "@tabler/icons-react";
15
- import { ArchbaseDialog as We } from "@archbase/components";
16
- import { useContainer as ve } from "inversify-react";
17
- class Ze {
2
+ import * as U from "inversify";
3
+ import { decorate as Mt, injectable as Nt } from "inversify";
4
+ import { compressString as Bt, decompressString as Ot, IOCContainer as Lt, ARCHBASE_IOC_API_TYPE as X, processErrorMessage as oe, IsNotEmpty as Q, IsOptional as de, IsBoolean as re, IsEmail as $t, getKeyByEnumValue as Ye, useArchbasePasswordRemember as zt, getI18nextInstance as x, useArchbaseTheme as jt, isEmailValidate as Ft, useArchbaseAppContext as Vt } from "@archbase/core";
5
+ import G from "crypto-js";
6
+ import { jwtDecode as Wt } from "jwt-decode";
7
+ import { jsx as n, jsxs as P, Fragment as ne } from "react/jsx-runtime";
8
+ import ot, { useState as h, useEffect as K, createContext as je, useMemo as nt, useRef as it, useCallback as Se, useContext as Fe } from "react";
9
+ import { BehaviorSubject as Xe } from "rxjs";
10
+ import { ArchbaseRemoteApiService as me, useArchbaseStore as at } from "@archbase/data";
11
+ import { v4 as Z } from "uuid";
12
+ import { Card as Ve, Text as j, Divider as Te, Stack as be, TextInput as Ae, Button as W, Anchor as Qe, Group as le, Select as Ht, Tooltip as Gt, Loader as ct, PasswordInput as Le, Checkbox as Jt, Alert as Ze, Code as et, CopyButton as tt, SimpleGrid as Kt, useMantineColorScheme as qt, Box as Yt, Skeleton as Ie } from "@mantine/core";
13
+ import { useFocusTrap as lt } from "@mantine/hooks";
14
+ import { IconCopy as Xt } from "@tabler/icons-react";
15
+ import { ArchbaseQRCode as Qt, ArchbaseDialog as rt } from "@archbase/components";
16
+ import { useContainer as Ue } from "inversify-react";
17
+ class dt {
18
18
  id;
19
19
  displayName;
20
20
  email;
@@ -24,10 +24,10 @@ class Ze {
24
24
  this.id = e.id, this.displayName = e.displayName, this.email = e.email, this.photo = e.photo, this.isAdmin = e.isAdmin;
25
25
  }
26
26
  static newInstance() {
27
- return new Ze({});
27
+ return new dt({});
28
28
  }
29
29
  }
30
- class et {
30
+ class ut {
31
31
  username;
32
32
  password;
33
33
  remember;
@@ -35,16 +35,16 @@ class et {
35
35
  this.username = e.username, this.password = e.password, this.remember = e.remember;
36
36
  }
37
37
  static newInstance() {
38
- return new et({});
38
+ return new ut({});
39
39
  }
40
40
  }
41
- const Q = "YngzI1guK3dGaElFcFY9MywqK3xgPzg/Ojg7eD8xRmg=", Se = "c1ab58e7-c113-4225-a190-a9e59d1207fc", Ie = "6faf6932-a0b5-457b-83b1-8d89ddbd91fd", Pe = "602b05c5-ec46-451e-aba6-187e463bc245", Te = "8b4a7c2d-9e5f-4163-b8a7-3f2c9d8e5a1b";
42
- class Vt {
41
+ const ae = "YngzI1guK3dGaElFcFY9MywqK3xgPzg/Ojg7eD8xRmg=", Me = "c1ab58e7-c113-4225-a190-a9e59d1207fc", Ne = "6faf6932-a0b5-457b-83b1-8d89ddbd91fd", Be = "602b05c5-ec46-451e-aba6-187e463bc245", Oe = "8b4a7c2d-9e5f-4163-b8a7-3f2c9d8e5a1b";
42
+ class Zt {
43
43
  getUsernameAndPassword() {
44
44
  try {
45
- const e = localStorage.getItem(Ie);
45
+ const e = localStorage.getItem(Ne);
46
46
  if (e) {
47
- const t = F.AES.decrypt(e, Q).toString(F.enc.Utf8), o = atob(t).split(":");
47
+ const t = G.AES.decrypt(e, ae).toString(G.enc.Utf8), o = atob(t).split(":");
48
48
  return { username: o[0], password: o[1], remember: !0 };
49
49
  } else
50
50
  return null;
@@ -53,14 +53,14 @@ class Vt {
53
53
  }
54
54
  }
55
55
  saveUsernameAndPassword(e, t) {
56
- const s = btoa(`${e}:${t}`), o = F.AES.encrypt(s, Q).toString();
57
- localStorage.setItem(Ie, o);
56
+ const s = btoa(`${e}:${t}`), o = G.AES.encrypt(s, ae).toString();
57
+ localStorage.setItem(Ne, o);
58
58
  }
59
59
  getUsername() {
60
60
  try {
61
- const e = localStorage.getItem(Pe);
61
+ const e = localStorage.getItem(Be);
62
62
  if (e) {
63
- const t = F.AES.decrypt(e, Q).toString(F.enc.Utf8);
63
+ const t = G.AES.decrypt(e, ae).toString(G.enc.Utf8);
64
64
  return atob(t);
65
65
  } else
66
66
  return null;
@@ -69,42 +69,42 @@ class Vt {
69
69
  }
70
70
  }
71
71
  saveUsername(e) {
72
- const t = btoa(e), s = F.AES.encrypt(t, Q).toString();
73
- localStorage.setItem(Pe, s);
72
+ const t = btoa(e), s = G.AES.encrypt(t, ae).toString();
73
+ localStorage.setItem(Be, s);
74
74
  }
75
75
  isTokenExpired(e, t = 300) {
76
76
  let s = e;
77
77
  if (!s && !this.getToken())
78
78
  return !0;
79
79
  try {
80
- const o = Rt(s.access_token);
80
+ const o = Wt(s.access_token);
81
81
  if (!o)
82
82
  return !0;
83
- const c = Math.floor(Date.now() / 1e3), l = o.exp;
84
- return c > l - t;
83
+ const a = Math.floor(Date.now() / 1e3), c = o.exp;
84
+ return a > c - t;
85
85
  } catch {
86
86
  return !0;
87
87
  }
88
88
  }
89
89
  saveToken(e) {
90
90
  if (e) {
91
- const t = JSON.stringify(e), s = F.AES.encrypt(t, Q).toString(), o = St(s);
92
- localStorage.setItem(Se, o);
91
+ const t = JSON.stringify(e), s = G.AES.encrypt(t, ae).toString(), o = Bt(s);
92
+ localStorage.setItem(Me, o);
93
93
  } else
94
94
  this.clearToken();
95
95
  }
96
96
  clearUsernameAndPassword() {
97
- localStorage.removeItem(Ie), localStorage.removeItem(Pe);
97
+ localStorage.removeItem(Ne), localStorage.removeItem(Be);
98
98
  }
99
99
  clearToken() {
100
- localStorage.removeItem(Se);
100
+ localStorage.removeItem(Me);
101
101
  }
102
102
  getToken() {
103
103
  try {
104
- const e = localStorage.getItem(Se);
104
+ const e = localStorage.getItem(Me);
105
105
  if (!e)
106
106
  return null;
107
- const t = It(e), s = F.AES.decrypt(t, Q).toString(F.enc.Utf8);
107
+ const t = Ot(e), s = G.AES.decrypt(t, ae).toString(G.enc.Utf8);
108
108
  return JSON.parse(s);
109
109
  } catch {
110
110
  return null;
@@ -112,37 +112,37 @@ class Vt {
112
112
  }
113
113
  saveContext(e) {
114
114
  try {
115
- const t = F.AES.encrypt(e, Q).toString();
116
- localStorage.setItem(Te, t);
115
+ const t = G.AES.encrypt(e, ae).toString();
116
+ localStorage.setItem(Oe, t);
117
117
  } catch (t) {
118
118
  console.warn("Erro ao salvar contexto:", t);
119
119
  }
120
120
  }
121
121
  getContext() {
122
122
  try {
123
- const e = localStorage.getItem(Te);
124
- return e ? F.AES.decrypt(e, Q).toString(F.enc.Utf8) : null;
123
+ const e = localStorage.getItem(Oe);
124
+ return e ? G.AES.decrypt(e, ae).toString(G.enc.Utf8) : null;
125
125
  } catch {
126
126
  return null;
127
127
  }
128
128
  }
129
129
  clearContext() {
130
- localStorage.removeItem(Te);
130
+ localStorage.removeItem(Oe);
131
131
  }
132
132
  }
133
- xt(kt(), Vt);
134
- function tt(r) {
133
+ Mt(Nt(), Zt);
134
+ function ht(r) {
135
135
  const t = new Uint8Array(1);
136
- return window.crypto.getRandomValues(t), t[0] >= Math.floor(256 / r) * r ? tt(r) : t[0] % r;
136
+ return window.crypto.getRandomValues(t), t[0] >= Math.floor(256 / r) * r ? ht(r) : t[0] % r;
137
137
  }
138
- function zt(r) {
138
+ function er(r) {
139
139
  let e = "";
140
140
  const t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
141
141
  for (let s = 0; s < r; s++)
142
- e += t.charAt(tt(t.length - 1));
142
+ e += t.charAt(ht(t.length - 1));
143
143
  return e;
144
144
  }
145
- async function Wt(r) {
145
+ async function tr(r) {
146
146
  if (!window.crypto.subtle?.digest)
147
147
  throw new Error(
148
148
  "The context/environment is not secure, and does not support the 'crypto.subtle' module. See: https://developer.mozilla.org/en-US/docs/Web/API/Crypto/subtle for details"
@@ -150,36 +150,36 @@ async function Wt(r) {
150
150
  const t = new TextEncoder().encode(r), s = await window.crypto.subtle.digest("SHA-256", t), o = String.fromCharCode(...new Uint8Array(s));
151
151
  return btoa(o).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
152
152
  }
153
- class rt extends Error {
153
+ class pt extends Error {
154
154
  status;
155
155
  statusText;
156
156
  constructor(e, t, s) {
157
157
  super(s), this.name = "FetchError", this.status = e, this.statusText = t;
158
158
  }
159
159
  }
160
- function Ht(r) {
160
+ function rr(r) {
161
161
  let e = "";
162
162
  return Object.entries(r).forEach(([t, s]) => {
163
163
  e += (e ? "&" : "") + t + "=" + encodeURIComponent(s);
164
164
  }), e;
165
165
  }
166
- async function Gt(r, e) {
166
+ async function sr(r, e) {
167
167
  return fetch(r, {
168
168
  method: "POST",
169
- body: Ht(e),
169
+ body: rr(e),
170
170
  headers: { "Content-Type": "application/x-www-form-urlencoded" }
171
171
  }).then(async (t) => {
172
172
  if (!t.ok) {
173
173
  const s = await t.text();
174
- throw new rt(t.status, t.statusText, s);
174
+ throw new pt(t.status, t.statusText, s);
175
175
  }
176
176
  return t;
177
177
  });
178
178
  }
179
- const st = "PKCE_code_verifier", _e = "ROCP_auth_state";
180
- async function Jt(r, e) {
181
- const t = zt(96);
182
- return sessionStorage.setItem(st, t), Wt(t).then((s) => {
179
+ const ft = "PKCE_code_verifier", $e = "ROCP_auth_state";
180
+ async function or(r, e) {
181
+ const t = er(96);
182
+ return sessionStorage.setItem(ft, t), tr(t).then((s) => {
183
183
  const o = new URLSearchParams({
184
184
  response_type: "code",
185
185
  client_id: r.clientId,
@@ -188,23 +188,23 @@ async function Jt(r, e) {
188
188
  code_challenge_method: "S256",
189
189
  ...r.extraAuthParameters
190
190
  });
191
- r.scope !== void 0 && o.append("scope", r.scope), sessionStorage.removeItem(_e);
192
- const c = e ?? r.state;
193
- c && (sessionStorage.setItem(_e, c), o.append("state", c)), r?.preLogin && r.preLogin(), window.location.replace(`${r.authorizationEndpoint}?${o.toString()}`);
191
+ r.scope !== void 0 && o.append("scope", r.scope), sessionStorage.removeItem($e);
192
+ const a = e ?? r.state;
193
+ a && (sessionStorage.setItem($e, a), o.append("state", a)), r?.preLogin && r.preLogin(), window.location.replace(`${r.authorizationEndpoint}?${o.toString()}`);
194
194
  });
195
195
  }
196
- function Kt(r) {
196
+ function nr(r) {
197
197
  return r.access_token !== void 0;
198
198
  }
199
- function ot(r, e) {
200
- return Gt(r, e).then((t) => t.json().then((s) => {
201
- if (Kt(s))
199
+ function mt(r, e) {
200
+ return sr(r, e).then((t) => t.json().then((s) => {
201
+ if (nr(s))
202
202
  return s;
203
203
  throw Error(s);
204
204
  }));
205
205
  }
206
- const qt = (r) => {
207
- const t = new URLSearchParams(window.location.search).get("code"), s = window.sessionStorage.getItem(st);
206
+ const ir = (r) => {
207
+ const t = new URLSearchParams(window.location.search).get("code"), s = window.sessionStorage.getItem(ft);
208
208
  if (!t)
209
209
  throw Error(`Parâmetro 'código' não encontrado na URL.
210
210
  A autenticação ocorreu?`);
@@ -221,8 +221,8 @@ A autenticação ocorreu?`);
221
221
  ...r.extraTokenParameters,
222
222
  ...r.extraAuthParams
223
223
  };
224
- return ot(r.tokenEndpoint, o);
225
- }, Yt = (r) => {
224
+ return mt(r.tokenEndpoint, o);
225
+ }, ar = (r) => {
226
226
  const { config: e, refreshToken: t } = r, s = {
227
227
  grant_type: "refresh_token",
228
228
  refresh_token: t,
@@ -231,101 +231,101 @@ A autenticação ocorreu?`);
231
231
  redirect_uri: e.redirectUri,
232
232
  ...e.extraTokenParameters
233
233
  };
234
- return ot(e.tokenEndpoint, s);
234
+ return mt(e.tokenEndpoint, s);
235
235
  };
236
- function Xt(r, e, t, s, o, c) {
237
- const l = new URLSearchParams({
236
+ function cr(r, e, t, s, o, a) {
237
+ const c = new URLSearchParams({
238
238
  token: t || e,
239
239
  token_type_hint: t ? "refresh_token" : "access_token",
240
240
  client_id: r.clientId,
241
241
  post_logout_redirect_uri: r.logoutRedirect ?? r.redirectUri,
242
- ui_locales: window.navigator.languages.reduce((i, u) => i + " " + u),
242
+ ui_locales: window.navigator.languages.reduce((i, l) => i + " " + l),
243
243
  ...r.extraLogoutParameters
244
244
  });
245
- s && l.append("id_token_hint", s), o && l.append("state", o), c && l.append("logout_hint", c), window.location.replace(`${r.logoutEndpoint}?${l.toString()}`);
245
+ s && c.append("id_token_hint", s), o && c.append("state", o), a && c.append("logout_hint", a), window.location.replace(`${r.logoutEndpoint}?${c.toString()}`);
246
246
  }
247
- function Qt(r) {
248
- const e = r.get("state"), t = sessionStorage.getItem(_e);
247
+ function lr(r) {
248
+ const e = r.get("state"), t = sessionStorage.getItem($e);
249
249
  if (e !== t)
250
250
  throw new Error(
251
251
  '"state" valor recebido do servidor de autenticação não corresponde à solicitação do cliente. Possível falsificação de solicitação entre sites'
252
252
  );
253
253
  }
254
- function Z(r, e, t) {
255
- const s = t === "session" ? sessionStorage : localStorage, [o, c] = f(() => {
254
+ function ce(r, e, t) {
255
+ const s = t === "session" ? sessionStorage : localStorage, [o, a] = h(() => {
256
256
  const i = s.getItem(r);
257
257
  try {
258
258
  return i ? JSON.parse(i) : e;
259
- } catch (u) {
259
+ } catch (l) {
260
260
  return console.warn(
261
261
  `Falha ao analisar o valor armazenado para '${r}'.
262
262
  Continuando com o valor padrão.
263
- Error: ${u.message}`
263
+ Error: ${l.message}`
264
264
  ), e;
265
265
  }
266
- }), l = (i) => {
266
+ }), c = (i) => {
267
267
  if (i === void 0) {
268
- c(i), s.removeItem(r);
268
+ a(i), s.removeItem(r);
269
269
  return;
270
270
  }
271
271
  try {
272
- const u = i instanceof Function ? i(o) : i;
273
- c(u), s.setItem(r, JSON.stringify(u));
272
+ const l = i instanceof Function ? i(o) : i;
273
+ a(l), s.setItem(r, JSON.stringify(l));
274
274
  } catch {
275
275
  console.log(`Falha ao armazenar valor '${i}' para chave '${r}'`);
276
276
  }
277
277
  };
278
- return z(() => {
279
- const i = (u) => {
280
- u.storageArea === s && u.key === r && c(JSON.parse(u.newValue ?? ""));
278
+ return K(() => {
279
+ const i = (l) => {
280
+ l.storageArea === s && l.key === r && a(JSON.parse(l.newValue ?? ""));
281
281
  };
282
282
  return window.addEventListener("storage", i, !1), () => window.removeEventListener("storage", i, !1);
283
- }), [o, l];
283
+ }), [o, c];
284
284
  }
285
- const Tr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
285
+ const $r = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
286
286
  __proto__: null,
287
- default: Z
287
+ default: ce
288
288
  }, Symbol.toStringTag, { value: "Module" }));
289
- function me(r) {
289
+ function Ce(r) {
290
290
  return ["", void 0, null].includes(r);
291
291
  }
292
- function Zt(r) {
292
+ function dr(r) {
293
293
  const {
294
294
  autoLogin: e = !0,
295
295
  clearURL: t = !0,
296
296
  decodeToken: s = !0,
297
297
  scope: o = void 0,
298
- preLogin: c = () => null,
299
- postLogin: l = () => null,
298
+ preLogin: a = () => null,
299
+ postLogin: c = () => null,
300
300
  onRefreshTokenExpire: i = void 0,
301
- storage: u = "local"
302
- } = r, m = {
301
+ storage: l = "local"
302
+ } = r, g = {
303
303
  ...r,
304
304
  autoLogin: e,
305
305
  clearURL: t,
306
306
  decodeToken: s,
307
307
  scope: o,
308
- preLogin: c,
309
- postLogin: l,
308
+ preLogin: a,
309
+ postLogin: c,
310
310
  onRefreshTokenExpire: i,
311
- storage: u
311
+ storage: l
312
312
  };
313
- return er(m), m;
313
+ return ur(g), g;
314
314
  }
315
- function er(r) {
316
- if (me(r?.clientId))
315
+ function ur(r) {
316
+ if (Ce(r?.clientId))
317
317
  throw Error(
318
318
  "'clientId' deve ser definido no objeto 'ArchbaseAuthConfig' passado para ArchbaseAuthProvider"
319
319
  );
320
- if (me(r?.authorizationEndpoint))
320
+ if (Ce(r?.authorizationEndpoint))
321
321
  throw Error(
322
322
  "'authorizationEndpoint' deve ser definido no objeto 'ArchbaseAuthConfig' passado para ArchbaseAuthProvider"
323
323
  );
324
- if (me(r?.tokenEndpoint))
324
+ if (Ce(r?.tokenEndpoint))
325
325
  throw Error(
326
326
  "'tokenEndpoint' deve ser definido no objeto 'ArchbaseAuthConfig' passado para ArchbaseAuthProvider"
327
327
  );
328
- if (me(r?.redirectUri))
328
+ if (Ce(r?.redirectUri))
329
329
  throw Error(
330
330
  "'redirectUri' deve ser definido no objeto 'ArchbaseAuthConfig' passado para ArchbaseAuthProvider"
331
331
  );
@@ -337,23 +337,23 @@ function er(r) {
337
337
  "Usar 'extraAuthParams' e 'extraTokenParameters' não é recomendado. Eles fazem a mesma coisa e você deve usar apenas 'extraTokenParameters'"
338
338
  );
339
339
  }
340
- const ne = 600, oe = (r) => Math.round(Date.now() / 1e3 + r);
341
- function He(r) {
340
+ const pe = 600, he = (r) => Math.round(Date.now() / 1e3 + r);
341
+ function st(r) {
342
342
  return Math.round(Date.now()) / 1e3 + 30 >= r;
343
343
  }
344
- const tr = [
344
+ const hr = [
345
345
  "refresh_expires_in",
346
346
  // KeyCloak
347
347
  "refresh_token_expires_in"
348
348
  // Azure AD
349
349
  ];
350
- function rr(r, e) {
351
- for (const t of tr)
350
+ function pr(r, e) {
351
+ for (const t of hr)
352
352
  if (t in e)
353
353
  return e[t];
354
- return e.refresh_token ? r + ne : r;
354
+ return e.refresh_token ? r + pe : r;
355
355
  }
356
- const ge = (r) => {
356
+ const Pe = (r) => {
357
357
  try {
358
358
  const t = r.split(".")[1].replace(/-/g, "+").replace(/_/g, "/"), s = decodeURIComponent(
359
359
  atob(t).split("").map(function(o) {
@@ -368,88 +368,88 @@ const ge = (r) => {
368
368
  Você pode desativar a decodificação JWT definindo o valor 'decodeToken' como 'falso' na configuração.`
369
369
  );
370
370
  }
371
- }, sr = Re({
371
+ }, fr = je({
372
372
  token: "",
373
373
  login: () => null,
374
374
  logOut: () => null,
375
375
  error: null,
376
376
  loginInProgress: !1
377
- }), Cr = ({ authConfig: r, children: e }) => {
378
- const t = Je(() => Zt(r), [r]), [s, o] = Z(
377
+ }), zr = ({ authConfig: r, children: e }) => {
378
+ const t = nt(() => dr(r), [r]), [s, o] = ce(
379
379
  "ROCP_refreshToken",
380
380
  void 0,
381
381
  t.storage
382
- ), [c, l] = Z(
382
+ ), [a, c] = ce(
383
383
  "ROCP_refreshTokenExpire",
384
- oe(2 * ne),
384
+ he(2 * pe),
385
385
  t.storage
386
- ), [i, u] = Z("ROCP_token", "", t.storage), [m, b] = Z(
386
+ ), [i, l] = ce("ROCP_token", "", t.storage), [g, E] = ce(
387
387
  "ROCP_tokenExpire",
388
- oe(ne),
388
+ he(pe),
389
389
  t.storage
390
- ), [h, C] = Z(
390
+ ), [d, _] = ce(
391
391
  "ROCP_idToken",
392
392
  void 0,
393
393
  t.storage
394
- ), [E, y] = Z(
394
+ ), [v, f] = ce(
395
395
  "ROCP_loginInProgress",
396
396
  !1,
397
397
  t.storage
398
- ), [x, U] = Z(
398
+ ), [S, D] = ce(
399
399
  "ROCP_refreshInProgress",
400
400
  !1,
401
401
  t.storage
402
- ), [_, O] = f(), [D, N] = f(), [k, A] = f(null);
403
- let P;
404
- function W() {
405
- o(void 0), u(""), b(oe(ne)), l(oe(ne)), C(void 0), O(void 0), N(void 0), y(!1);
402
+ ), [B, O] = h(), [F, N] = h(), [w, m] = h(null);
403
+ let R;
404
+ function V() {
405
+ o(void 0), l(""), E(he(pe)), c(he(pe)), _(void 0), O(void 0), N(void 0), f(!1);
406
406
  }
407
- function L(p, n) {
408
- W(), A(null), t?.logoutEndpoint && Xt(t, i, s, h, p, n);
407
+ function C(p, y) {
408
+ V(), m(null), t?.logoutEndpoint && cr(t, i, s, d, p, y);
409
409
  }
410
- function B(p) {
411
- W(), y(!0);
412
- let n = p;
410
+ function L(p) {
411
+ V(), f(!0);
412
+ let y = p;
413
413
  p && typeof p != "string" && (console.warn(
414
414
  `O estado de login aprovado deve ser do tipo 'string'. Recebido'${p}'. Ignorando o valor...`
415
- ), n = void 0), Jt(t, n).catch((w) => {
416
- console.error(w), A(w.message), y(!1);
415
+ ), y = void 0), or(t, y).catch((te) => {
416
+ console.error(te), m(te.message), f(!1);
417
417
  });
418
418
  }
419
- function H(p) {
420
- u(p.access_token), o(p.refresh_token);
421
- const n = t.tokenExpiresIn ?? p.expires_in ?? ne;
422
- b(oe(n));
423
- const w = t.refreshTokenExpiresIn ?? rr(n, p);
424
- l(oe(w)), C(p.id_token);
419
+ function q(p) {
420
+ l(p.access_token), o(p.refresh_token);
421
+ const y = t.tokenExpiresIn ?? p.expires_in ?? pe;
422
+ E(he(y));
423
+ const te = t.refreshTokenExpiresIn ?? pr(y, p);
424
+ c(he(te)), _(p.id_token);
425
425
  try {
426
- p.id_token && N(ge(p.id_token));
427
- } catch (a) {
428
- console.warn(`Falha ao decodificar idToken: ${a.message}`);
426
+ p.id_token && N(Pe(p.id_token));
427
+ } catch (T) {
428
+ console.warn(`Falha ao decodificar idToken: ${T.message}`);
429
429
  }
430
430
  try {
431
- t.decodeToken && O(ge(p.access_token));
432
- } catch (a) {
433
- console.warn(`Falha ao decodificar o token de acesso: ${a.message}`);
431
+ t.decodeToken && O(Pe(p.access_token));
432
+ } catch (T) {
433
+ console.warn(`Falha ao decodificar o token de acesso: ${T.message}`);
434
434
  }
435
435
  }
436
- function Y(p = !1) {
437
- return p || !t.onRefreshTokenExpire ? B() : t.onRefreshTokenExpire({ login: B });
436
+ function ee(p = !1) {
437
+ return p || !t.onRefreshTokenExpire ? L() : t.onRefreshTokenExpire({ login: L });
438
438
  }
439
- function $(p = !1) {
440
- if (i && He(m) && !(x && !p)) {
441
- if (He(c))
442
- return Y(p);
439
+ function Y(p = !1) {
440
+ if (i && st(g) && !(S && !p)) {
441
+ if (st(a))
442
+ return ee(p);
443
443
  if (s) {
444
- U(!0), Yt({ config: t, refreshToken: s }).then((n) => H(n)).catch((n) => {
445
- if (n instanceof rt) {
446
- if (n.status === 400)
447
- return Y(p);
448
- console.error(n), A(n.message), p && B();
444
+ D(!0), ar({ config: t, refreshToken: s }).then((y) => q(y)).catch((y) => {
445
+ if (y instanceof pt) {
446
+ if (y.status === 400)
447
+ return ee(p);
448
+ console.error(y), m(y.message), p && L();
449
449
  } else
450
- n instanceof Error && (console.error(n), A(n.message), p && B());
450
+ y instanceof Error && (console.error(y), m(y.message), p && L());
451
451
  }).finally(() => {
452
- U(!1);
452
+ D(!1);
453
453
  });
454
454
  return;
455
455
  }
@@ -458,55 +458,55 @@ const ge = (r) => {
458
458
  );
459
459
  }
460
460
  }
461
- z(() => (P = setInterval(() => $(), 1e4), () => clearInterval(P)), [i, s, c, m]);
462
- const X = Ke(!1);
463
- return z(() => {
464
- if (E) {
461
+ K(() => (R = setInterval(() => Y(), 1e4), () => clearInterval(R)), [i, s, a, g]);
462
+ const ie = it(!1);
463
+ return K(() => {
464
+ if (v) {
465
465
  const p = new URLSearchParams(window.location.search);
466
466
  if (!p.get("code")) {
467
- const n = p.get("error_description") || "Estado de autorização inválido. Atualizar a página pode resolver o problema.";
468
- console.error(n), A(n), L();
467
+ const y = p.get("error_description") || "Estado de autorização inválido. Atualizar a página pode resolver o problema.";
468
+ console.error(y), m(y), C();
469
469
  return;
470
470
  }
471
- if (!X.current) {
472
- X.current = !0;
471
+ if (!ie.current) {
472
+ ie.current = !0;
473
473
  try {
474
- Qt(p);
475
- } catch (n) {
476
- console.error(n), A(n.message);
474
+ lr(p);
475
+ } catch (y) {
476
+ console.error(y), m(y.message);
477
477
  }
478
- qt(t).then((n) => {
479
- H(n), t?.postLogin && t.postLogin();
480
- }).catch((n) => {
481
- console.error(n), A(n.message);
478
+ ir(t).then((y) => {
479
+ q(y), t?.postLogin && t.postLogin();
480
+ }).catch((y) => {
481
+ console.error(y), m(y.message);
482
482
  }).finally(() => {
483
- t.clearURL && window.history.replaceState(null, "", window.location.pathname), y(!1);
483
+ t.clearURL && window.history.replaceState(null, "", window.location.pathname), f(!1);
484
484
  });
485
485
  }
486
486
  return;
487
487
  }
488
488
  if (!i && t.autoLogin)
489
- return B();
489
+ return L();
490
490
  try {
491
- h && N(ge(h));
491
+ d && N(Pe(d));
492
492
  } catch (p) {
493
493
  console.warn(`Falha ao decodificar idToken: ${p.message}`);
494
494
  }
495
495
  try {
496
- t.decodeToken && O(ge(i));
496
+ t.decodeToken && O(Pe(i));
497
497
  } catch (p) {
498
498
  console.warn(`Falha ao decodificar o token de acesso: ${p.message}`);
499
499
  }
500
- $(!0);
501
- }, []), /* @__PURE__ */ d(
502
- sr.Provider,
500
+ Y(!0);
501
+ }, []), /* @__PURE__ */ n(
502
+ fr.Provider,
503
503
  {
504
- value: { token: i, tokenData: _, idToken: h, idTokenData: D, login: B, logOut: L, error: k, loginInProgress: E },
504
+ value: { token: i, tokenData: B, idToken: d, idTokenData: F, login: L, logOut: C, error: w, loginInProgress: v },
505
505
  children: e
506
506
  }
507
507
  );
508
508
  };
509
- class nt {
509
+ class gt {
510
510
  resourceService;
511
511
  resource;
512
512
  actions;
@@ -515,7 +515,7 @@ class nt {
515
515
  error;
516
516
  isAdmin;
517
517
  constructor(e, t, s) {
518
- this.resourceService = Pt.getContainer().get(G.Resource), this.resource = { resourceName: e, resourceDescription: t }, this.alreadyApplied = !1, this.actions = [], this.permissions = [], this.error = "", this.isAdmin = s;
518
+ this.resourceService = Lt.getContainer().get(X.Resource), this.resource = { resourceName: e, resourceDescription: t }, this.alreadyApplied = !1, this.actions = [], this.permissions = [], this.error = "", this.isAdmin = s;
519
519
  }
520
520
  registerAction(e, t) {
521
521
  !this.alreadyApplied && this.actions.findIndex((s) => s.actionName === e) < 0 && this.actions.push({ actionName: e, actionDescription: t });
@@ -524,7 +524,7 @@ class nt {
524
524
  this.alreadyApplied || (this.alreadyApplied = !0, this.resourceService.registerResource({ resource: this.resource, actions: this.actions }).then((t) => {
525
525
  this.permissions = t.permissions, this.error = "", e && e();
526
526
  }).catch((t) => {
527
- this.alreadyApplied = !1, this.error = ee(t);
527
+ this.alreadyApplied = !1, this.error = oe(t);
528
528
  }));
529
529
  }
530
530
  hasPermission(e) {
@@ -586,10 +586,10 @@ class nt {
586
586
  return [...this.actions];
587
587
  }
588
588
  }
589
- class V {
589
+ class J {
590
590
  static instance;
591
- _currentTenant = new ze(null);
592
- _availableTenants = new ze([]);
591
+ _currentTenant = new Xe(null);
592
+ _availableTenants = new Xe([]);
593
593
  constructor() {
594
594
  const e = localStorage.getItem("tenant_info");
595
595
  if (e)
@@ -600,7 +600,7 @@ class V {
600
600
  }
601
601
  }
602
602
  static getInstance() {
603
- return V.instance || (V.instance = new V()), V.instance;
603
+ return J.instance || (J.instance = new J()), J.instance;
604
604
  }
605
605
  get currentTenant$() {
606
606
  return this._currentTenant.asObservable();
@@ -629,15 +629,15 @@ class V {
629
629
  return t && (e["X-TENANT-ID"] = t.id), e;
630
630
  }
631
631
  }
632
- function Ur() {
633
- return V.getInstance();
632
+ function jr() {
633
+ return J.getInstance();
634
634
  }
635
- var ae = /* @__PURE__ */ ((r) => (r.USER = "user", r.PROFILE = "profile", r.GROUP = "group", r))(ae || {}), or = Object.defineProperty, v = (r, e, t, s) => {
636
- for (var o = void 0, c = r.length - 1, l; c >= 0; c--)
637
- (l = r[c]) && (o = l(e, t, o) || o);
638
- return o && or(e, t, o), o;
639
- }, nr = /* @__PURE__ */ ((r) => (r.VIEW = "VIEW", r.API = "API", r))(nr || {});
640
- const it = class at {
635
+ var fe = /* @__PURE__ */ ((r) => (r.USER = "user", r.PROFILE = "profile", r.GROUP = "group", r))(fe || {}), mr = Object.defineProperty, k = (r, e, t, s) => {
636
+ for (var o = void 0, a = r.length - 1, c; a >= 0; a--)
637
+ (c = r[a]) && (o = c(e, t, o) || o);
638
+ return o && mr(e, t, o), o;
639
+ }, gr = /* @__PURE__ */ ((r) => (r.VIEW = "VIEW", r.API = "API", r))(gr || {});
640
+ const yt = class wt {
641
641
  id;
642
642
  code;
643
643
  version;
@@ -648,20 +648,20 @@ const it = class at {
648
648
  description;
649
649
  intervals;
650
650
  constructor(e) {
651
- this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || "", this.updateEntityDate = e.updateEntityDate || "", this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.description = e.description || "", this.intervals = e.intervals ? e.intervals.map((t) => new ir(t)) : [];
651
+ this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || "", this.updateEntityDate = e.updateEntityDate || "", this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.description = e.description || "", this.intervals = e.intervals ? e.intervals.map((t) => new yr(t)) : [];
652
652
  }
653
- static newInstance = () => new at({
654
- id: K(),
653
+ static newInstance = () => new wt({
654
+ id: Z(),
655
655
  intervals: []
656
656
  });
657
657
  };
658
- v([
659
- J({
658
+ k([
659
+ Q({
660
660
  message: "archbase:Informe a descrição do cronograma de acesso"
661
661
  })
662
- ], it.prototype, "description");
663
- let ct = it;
664
- const Ae = class lt {
662
+ ], yt.prototype, "description");
663
+ let vt = yt;
664
+ const De = class bt {
665
665
  id;
666
666
  code;
667
667
  version;
@@ -674,30 +674,30 @@ const Ae = class lt {
674
674
  startTime;
675
675
  endTime;
676
676
  constructor(e) {
677
- this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.updateEntityDate = e.updateEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.accessSchedule = e.accessSchedule ? new ct(e.accessSchedule) : void 0, this.dayOfWeek = e.dayOfWeek || 0, this.startTime = e.startTime || "", this.endTime = e.endTime || "";
677
+ this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.updateEntityDate = e.updateEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.accessSchedule = e.accessSchedule ? new vt(e.accessSchedule) : void 0, this.dayOfWeek = e.dayOfWeek || 0, this.startTime = e.startTime || "", this.endTime = e.endTime || "";
678
678
  }
679
- static newInstance = () => new lt({
680
- id: K(),
679
+ static newInstance = () => new bt({
680
+ id: Z(),
681
681
  dayOfWeek: (/* @__PURE__ */ new Date()).getDay(),
682
682
  startTime: "08:00",
683
683
  endTime: "17:00"
684
684
  });
685
685
  };
686
- v([
687
- re()
688
- ], Ae.prototype, "accessSchedule");
689
- v([
690
- J({
686
+ k([
687
+ de()
688
+ ], De.prototype, "accessSchedule");
689
+ k([
690
+ Q({
691
691
  message: "archbase:Informe a hora de início"
692
692
  })
693
- ], Ae.prototype, "startTime");
694
- v([
695
- J({
693
+ ], De.prototype, "startTime");
694
+ k([
695
+ Q({
696
696
  message: "archbase:Informe a hora de término"
697
697
  })
698
- ], Ae.prototype, "endTime");
699
- let ir = Ae;
700
- class le {
698
+ ], De.prototype, "endTime");
699
+ let yr = De;
700
+ class ge {
701
701
  id;
702
702
  code;
703
703
  version;
@@ -712,20 +712,20 @@ class le {
712
712
  this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || "", this.updateEntityDate = e.updateEntityDate || "", this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.name = e.name || "", this.description = e.description || "", this.actions = e.actions || [];
713
713
  }
714
714
  }
715
- v([
716
- J({
715
+ k([
716
+ Q({
717
717
  message: "archbase:Informe o nome"
718
718
  })
719
- ], le.prototype, "name");
720
- v([
721
- J({
719
+ ], ge.prototype, "name");
720
+ k([
721
+ Q({
722
722
  message: "archbase:Informe a descrição"
723
723
  })
724
- ], le.prototype, "description");
725
- v([
726
- re()
727
- ], le.prototype, "actions");
728
- const de = class dt {
724
+ ], ge.prototype, "description");
725
+ k([
726
+ de()
727
+ ], ge.prototype, "actions");
728
+ const ye = class At {
729
729
  id;
730
730
  code;
731
731
  version;
@@ -741,48 +741,48 @@ const de = class dt {
741
741
  actionVersion;
742
742
  isNewAction;
743
743
  constructor(e) {
744
- this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.updateEntityDate = e.updateEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.name = e.name || "", this.description = e.description || "", this.resource = e.resource ? new ht(e.resource) : void 0, this.category = e.category || "", this.active = e.active || !1, this.actionVersion = e.actionVersion || "", this.isNewAction = e.isNewAction || !1;
744
+ this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.updateEntityDate = e.updateEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.name = e.name || "", this.description = e.description || "", this.resource = e.resource ? new xt(e.resource) : void 0, this.category = e.category || "", this.active = e.active || !1, this.actionVersion = e.actionVersion || "", this.isNewAction = e.isNewAction || !1;
745
745
  }
746
- static newInstance = () => new dt({
747
- id: K(),
746
+ static newInstance = () => new At({
747
+ id: Z(),
748
748
  active: !0,
749
749
  isNewAction: !0
750
750
  });
751
751
  };
752
- v([
753
- J({
752
+ k([
753
+ Q({
754
754
  message: "archbase:Informe o nome para a ação"
755
755
  })
756
- ], de.prototype, "name");
757
- v([
758
- J({
756
+ ], ye.prototype, "name");
757
+ k([
758
+ Q({
759
759
  message: "archbase:Informe a descrição para a ação"
760
760
  })
761
- ], de.prototype, "description");
762
- v([
763
- re()
764
- ], de.prototype, "resource");
765
- v([
766
- J({
761
+ ], ye.prototype, "description");
762
+ k([
763
+ de()
764
+ ], ye.prototype, "resource");
765
+ k([
766
+ Q({
767
767
  message: "archbase:Informe a categoria para a ação"
768
768
  })
769
- ], de.prototype, "category");
770
- v([
771
- q()
772
- ], de.prototype, "active");
773
- let ar = de;
774
- class ue extends le {
769
+ ], ye.prototype, "category");
770
+ k([
771
+ re()
772
+ ], ye.prototype, "active");
773
+ let wr = ye;
774
+ class Ee extends ge {
775
775
  type;
776
776
  isNewProfile;
777
777
  constructor(e) {
778
- super(e), this.type = ae.PROFILE, this.isNewProfile = e.isNewProfile || !1;
778
+ super(e), this.type = fe.PROFILE, this.isNewProfile = e.isNewProfile || !1;
779
779
  }
780
- static newInstance = () => new ue({
781
- id: K(),
780
+ static newInstance = () => new Ee({
781
+ id: Z(),
782
782
  isNewProfile: !0
783
783
  });
784
784
  }
785
- class Be {
785
+ class We {
786
786
  id;
787
787
  code;
788
788
  version;
@@ -792,25 +792,25 @@ class Be {
792
792
  lastModifiedByUser;
793
793
  group;
794
794
  constructor(e) {
795
- this.id = e.id, this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.updateEntityDate = e.updateEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.group = e.group ? new he(e.group) : void 0;
795
+ this.id = e.id, this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.updateEntityDate = e.updateEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.group = e.group ? new xe(e.group) : void 0;
796
796
  }
797
- static newInstance = (e) => new Be({
798
- id: K(),
797
+ static newInstance = (e) => new We({
798
+ id: Z(),
799
799
  group: e
800
800
  });
801
801
  }
802
- class he extends le {
802
+ class xe extends ge {
803
803
  type;
804
804
  isNewGroup;
805
805
  constructor(e) {
806
- super(e), this.type = ae.GROUP, this.isNewGroup = e.isNewGroup || !1;
806
+ super(e), this.type = fe.GROUP, this.isNewGroup = e.isNewGroup || !1;
807
807
  }
808
- static newInstance = () => new he({
809
- id: K(),
808
+ static newInstance = () => new xe({
809
+ id: Z(),
810
810
  isNewGroup: !0
811
811
  });
812
812
  }
813
- const be = class ut {
813
+ const _e = class Et {
814
814
  id;
815
815
  code;
816
816
  version;
@@ -827,28 +827,28 @@ const be = class ut {
827
827
  constructor(e) {
828
828
  this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || "", this.updateEntityDate = e.updateEntityDate || "", this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.name = e.name || "", this.description = e.description || "", this.actions = e.actions || [], this.active = e.active || !1, this.type = e.type || "VIEW", this.isNewResource = e.isNewResource || !1;
829
829
  }
830
- static newInstance = () => new ut({
831
- id: K(),
830
+ static newInstance = () => new Et({
831
+ id: Z(),
832
832
  actions: [],
833
833
  active: !0,
834
834
  isNewResource: !0
835
835
  });
836
836
  };
837
- v([
838
- J({
837
+ k([
838
+ Q({
839
839
  message: "archbase:Informe o nome para o recurso"
840
840
  })
841
- ], be.prototype, "name");
842
- v([
843
- J({
841
+ ], _e.prototype, "name");
842
+ k([
843
+ Q({
844
844
  message: "archbase:Informe a descrição para o recurso"
845
845
  })
846
- ], be.prototype, "description");
847
- v([
848
- q()
849
- ], be.prototype, "active");
850
- let ht = be;
851
- const M = class pt extends le {
846
+ ], _e.prototype, "description");
847
+ k([
848
+ re()
849
+ ], _e.prototype, "active");
850
+ let xt = _e;
851
+ const H = class kt extends ge {
852
852
  userName;
853
853
  password;
854
854
  changePasswordOnNextLogin;
@@ -868,10 +868,10 @@ const M = class pt extends le {
868
868
  type;
869
869
  isNewUser;
870
870
  constructor(e) {
871
- super(e), this.type = ae.USER, this.userName = e.userName || "", this.password = e.password || "", this.changePasswordOnNextLogin = e.changePasswordOnNextLogin || !1, this.allowPasswordChange = e.allowPasswordChange || !1, this.allowMultipleLogins = e.allowMultipleLogins || !1, this.passwordNeverExpires = e.passwordNeverExpires || !1, this.accountDeactivated = e.accountDeactivated || !1, this.accountLocked = e.accountLocked || !1, this.unlimitedAccessHours = e.unlimitedAccessHours || !1, this.isAdministrator = e.isAdministrator || !1, this.accessSchedule = e.accessSchedule ? new ct(e.accessSchedule) : void 0, this.groups = e.groups ? e.groups.map((t) => new Be(t)) : [], this.profile = e.profile ? new ue(e.profile) : void 0, this.email = e.email || "", this.avatar = e.avatar || void 0, this.isNewUser = e.isNewUser || !1, this.nickname = e.nickname;
871
+ super(e), this.type = fe.USER, this.userName = e.userName || "", this.password = e.password || "", this.changePasswordOnNextLogin = e.changePasswordOnNextLogin || !1, this.allowPasswordChange = e.allowPasswordChange || !1, this.allowMultipleLogins = e.allowMultipleLogins || !1, this.passwordNeverExpires = e.passwordNeverExpires || !1, this.accountDeactivated = e.accountDeactivated || !1, this.accountLocked = e.accountLocked || !1, this.unlimitedAccessHours = e.unlimitedAccessHours || !1, this.isAdministrator = e.isAdministrator || !1, this.accessSchedule = e.accessSchedule ? new vt(e.accessSchedule) : void 0, this.groups = e.groups ? e.groups.map((t) => new We(t)) : [], this.profile = e.profile ? new Ee(e.profile) : void 0, this.email = e.email || "", this.avatar = e.avatar || void 0, this.isNewUser = e.isNewUser || !1, this.nickname = e.nickname;
872
872
  }
873
- static newInstance = () => new pt({
874
- id: K(),
873
+ static newInstance = () => new kt({
874
+ id: Z(),
875
875
  userName: "",
876
876
  password: "",
877
877
  groups: [],
@@ -882,54 +882,54 @@ const M = class pt extends le {
882
882
  isNewUser: !0
883
883
  });
884
884
  };
885
- v([
886
- J({
885
+ k([
886
+ Q({
887
887
  message: "archbase:Informe o nome de usuário"
888
888
  })
889
- ], M.prototype, "userName");
890
- v([
891
- q()
892
- ], M.prototype, "changePasswordOnNextLogin");
893
- v([
894
- q()
895
- ], M.prototype, "allowPasswordChange");
896
- v([
897
- q()
898
- ], M.prototype, "allowMultipleLogins");
899
- v([
900
- q()
901
- ], M.prototype, "passwordNeverExpires");
902
- v([
903
- q()
904
- ], M.prototype, "accountDeactivated");
905
- v([
906
- q()
907
- ], M.prototype, "accountLocked");
908
- v([
909
- q()
910
- ], M.prototype, "unlimitedAccessHours");
911
- v([
912
- q()
913
- ], M.prototype, "isAdministrator");
914
- v([
889
+ ], H.prototype, "userName");
890
+ k([
891
+ re()
892
+ ], H.prototype, "changePasswordOnNextLogin");
893
+ k([
894
+ re()
895
+ ], H.prototype, "allowPasswordChange");
896
+ k([
915
897
  re()
916
- ], M.prototype, "accessSchedule");
917
- v([
898
+ ], H.prototype, "allowMultipleLogins");
899
+ k([
918
900
  re()
919
- ], M.prototype, "groups");
920
- v([
901
+ ], H.prototype, "passwordNeverExpires");
902
+ k([
921
903
  re()
922
- ], M.prototype, "profile");
923
- v([
924
- Tt(
904
+ ], H.prototype, "accountDeactivated");
905
+ k([
906
+ re()
907
+ ], H.prototype, "accountLocked");
908
+ k([
909
+ re()
910
+ ], H.prototype, "unlimitedAccessHours");
911
+ k([
912
+ re()
913
+ ], H.prototype, "isAdministrator");
914
+ k([
915
+ de()
916
+ ], H.prototype, "accessSchedule");
917
+ k([
918
+ de()
919
+ ], H.prototype, "groups");
920
+ k([
921
+ de()
922
+ ], H.prototype, "profile");
923
+ k([
924
+ $t(
925
925
  {},
926
926
  {
927
927
  message: "archbase:Informe um email válido"
928
928
  }
929
929
  )
930
- ], M.prototype, "email");
931
- let Ee = M;
932
- const Me = class De {
930
+ ], H.prototype, "email");
931
+ let Re = H;
932
+ const He = class ze {
933
933
  id;
934
934
  code;
935
935
  version;
@@ -943,35 +943,35 @@ const Me = class De {
943
943
  companyId;
944
944
  projectId;
945
945
  constructor(e) {
946
- this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || "", this.updateEntityDate = e.updateEntityDate || "", this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.security = e.security ? De.createDtoFromJson(e.security) : void 0, this.action = e.action ? new ar(e.action) : void 0, this.tenantId = e.tenantId || "", this.companyId = e.companyId || "", this.projectId = e.projectId || "";
946
+ this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || "", this.updateEntityDate = e.updateEntityDate || "", this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.security = e.security ? ze.createDtoFromJson(e.security) : void 0, this.action = e.action ? new wr(e.action) : void 0, this.tenantId = e.tenantId || "", this.companyId = e.companyId || "", this.projectId = e.projectId || "";
947
947
  }
948
948
  static createDtoFromJson(e) {
949
949
  switch (e.type) {
950
950
  case "profile":
951
- return new ue(e);
951
+ return new Ee(e);
952
952
  case "group":
953
- return new he(e);
953
+ return new xe(e);
954
954
  case "user":
955
- return new Ee(e);
955
+ return new Re(e);
956
956
  default:
957
957
  throw new Error("Unknown DTO type");
958
958
  }
959
959
  }
960
- static newInstance = () => new De({
961
- id: K(),
960
+ static newInstance = () => new ze({
961
+ id: Z(),
962
962
  tenantId: "",
963
963
  companyId: "",
964
964
  projectId: ""
965
965
  });
966
966
  };
967
- v([
968
- re()
969
- ], Me.prototype, "security");
970
- v([
971
- re()
972
- ], Me.prototype, "action");
973
- let _r = Me;
974
- class Oe {
967
+ k([
968
+ de()
969
+ ], He.prototype, "security");
970
+ k([
971
+ de()
972
+ ], He.prototype, "action");
973
+ let Fr = He;
974
+ class Ge {
975
975
  id;
976
976
  code;
977
977
  version;
@@ -989,13 +989,13 @@ class Oe {
989
989
  activated;
990
990
  isNovoToken;
991
991
  constructor(e) {
992
- this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || "", this.updateEntityDate = e.updateEntityDate || "", this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.tenantId = e.tenantId || "", this.user = e.user ? new Ee(e.user) : void 0, this.name = e.name || "", this.description = e.description || "", this.token = e.token || "", this.expirationDate = e.expirationDate, this.revoked = e.revoked, this.activated = e.activated || !1;
992
+ this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || "", this.updateEntityDate = e.updateEntityDate || "", this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.tenantId = e.tenantId || "", this.user = e.user ? new Re(e.user) : void 0, this.name = e.name || "", this.description = e.description || "", this.token = e.token || "", this.expirationDate = e.expirationDate, this.revoked = e.revoked, this.activated = e.activated || !1;
993
993
  }
994
- static newInstance = () => new Oe({
995
- id: K()
994
+ static newInstance = () => new Ge({
995
+ id: Z()
996
996
  });
997
997
  }
998
- class Le {
998
+ class Je {
999
999
  id;
1000
1000
  code;
1001
1001
  version;
@@ -1012,23 +1012,23 @@ class Le {
1012
1012
  user;
1013
1013
  isNewAccessToken;
1014
1014
  constructor(e) {
1015
- this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.updateEntityDate = e.updateEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.token = e.token || "", this.tokenType = e.tokenType || void 0, this.user = e.user ? new Ee(e.user) : void 0, this.revoked = e.revoked || !1, this.expired = e.expired || !1, this.expirationTime = e.expirationTime || 0, this.expirationDate = e.expirationDate || "", this.isNewAccessToken = e.isNewAccessToken || !1;
1015
+ this.id = e.id || "", this.code = e.code || "", this.version = e.version || 0, this.createEntityDate = e.createEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.updateEntityDate = e.updateEntityDate || (/* @__PURE__ */ new Date()).toISOString(), this.createdByUser = e.createdByUser || "", this.lastModifiedByUser = e.lastModifiedByUser || "", this.token = e.token || "", this.tokenType = e.tokenType || void 0, this.user = e.user ? new Re(e.user) : void 0, this.revoked = e.revoked || !1, this.expired = e.expired || !1, this.expirationTime = e.expirationTime || 0, this.expirationDate = e.expirationDate || "", this.isNewAccessToken = e.isNewAccessToken || !1;
1016
1016
  }
1017
- static newInstance = () => new Le({
1018
- id: K(),
1017
+ static newInstance = () => new Je({
1018
+ id: Z(),
1019
1019
  active: !0,
1020
1020
  isNewAccessToken: !0
1021
1021
  });
1022
1022
  }
1023
- class ft extends ce {
1023
+ class St extends me {
1024
1024
  constructor(e) {
1025
1025
  super(e);
1026
1026
  }
1027
1027
  configureHeaders() {
1028
- return V.getInstance().getHeaders();
1028
+ return J.getInstance().getHeaders();
1029
1029
  }
1030
1030
  transform(e) {
1031
- return new Ee(e);
1031
+ return new Re(e);
1032
1032
  }
1033
1033
  getEndpoint() {
1034
1034
  return "/api/v1/user";
@@ -1047,17 +1047,17 @@ class ft extends ce {
1047
1047
  return this.transform(t);
1048
1048
  }
1049
1049
  }
1050
- I.decorate(I.inject(G.ApiClient), ft, 0);
1051
- I.decorate(I.injectable(), ft);
1052
- class mt extends ce {
1050
+ U.decorate(U.inject(X.ApiClient), St, 0);
1051
+ U.decorate(U.injectable(), St);
1052
+ class It extends me {
1053
1053
  constructor(e) {
1054
1054
  super(e);
1055
1055
  }
1056
1056
  configureHeaders() {
1057
- return V.getInstance().getHeaders();
1057
+ return J.getInstance().getHeaders();
1058
1058
  }
1059
1059
  transform(e) {
1060
- return new he(e);
1060
+ return new xe(e);
1061
1061
  }
1062
1062
  getEndpoint() {
1063
1063
  return "/api/v1/group";
@@ -1069,17 +1069,17 @@ class mt extends ce {
1069
1069
  return e.isNewGroup;
1070
1070
  }
1071
1071
  }
1072
- I.decorate(I.inject(G.ApiClient), mt, 0);
1073
- I.decorate(I.injectable(), mt);
1074
- class gt extends ce {
1072
+ U.decorate(U.inject(X.ApiClient), It, 0);
1073
+ U.decorate(U.injectable(), It);
1074
+ class Ct extends me {
1075
1075
  constructor(e) {
1076
1076
  super(e);
1077
1077
  }
1078
1078
  configureHeaders() {
1079
- return V.getInstance().getHeaders();
1079
+ return J.getInstance().getHeaders();
1080
1080
  }
1081
1081
  transform(e) {
1082
- return new ue(e);
1082
+ return new Ee(e);
1083
1083
  }
1084
1084
  getEndpoint() {
1085
1085
  return "/api/v1/userProfile";
@@ -1091,17 +1091,17 @@ class gt extends ce {
1091
1091
  return e.isNewProfile;
1092
1092
  }
1093
1093
  }
1094
- I.decorate(I.inject(G.ApiClient), gt, 0);
1095
- I.decorate(I.injectable(), gt);
1096
- class yt extends ce {
1094
+ U.decorate(U.inject(X.ApiClient), Ct, 0);
1095
+ U.decorate(U.injectable(), Ct);
1096
+ class Pt extends me {
1097
1097
  constructor(e) {
1098
1098
  super(e);
1099
1099
  }
1100
1100
  configureHeaders() {
1101
- return V.getInstance().getHeaders();
1101
+ return J.getInstance().getHeaders();
1102
1102
  }
1103
1103
  transform(e) {
1104
- return new Oe(e);
1104
+ return new Ge(e);
1105
1105
  }
1106
1106
  getEndpoint() {
1107
1107
  return "/api/v1/apiToken";
@@ -1113,12 +1113,12 @@ class yt extends ce {
1113
1113
  return e.isNovoToken;
1114
1114
  }
1115
1115
  async create(e, t, s, o) {
1116
- const c = await this.client.post(
1116
+ const a = await this.client.post(
1117
1117
  `${this.getEndpoint()}/create?email=${e}&expirationDate=${t}&name=${s}&description=${o}`,
1118
1118
  void 0,
1119
1119
  this.configureHeaders()
1120
1120
  );
1121
- return this.transform(c);
1121
+ return this.transform(a);
1122
1122
  }
1123
1123
  async revoke(e) {
1124
1124
  await this.client.post(
@@ -1128,17 +1128,17 @@ class yt extends ce {
1128
1128
  );
1129
1129
  }
1130
1130
  }
1131
- I.decorate(I.inject(G.ApiClient), yt, 0);
1132
- I.decorate(I.injectable(), yt);
1133
- class wt extends ce {
1131
+ U.decorate(U.inject(X.ApiClient), Pt, 0);
1132
+ U.decorate(U.injectable(), Pt);
1133
+ class Tt extends me {
1134
1134
  constructor(e) {
1135
1135
  super(e);
1136
1136
  }
1137
1137
  configureHeaders() {
1138
- return V.getInstance().getHeaders();
1138
+ return J.getInstance().getHeaders();
1139
1139
  }
1140
1140
  transform(e) {
1141
- return new Le(e);
1141
+ return new Je(e);
1142
1142
  }
1143
1143
  getEndpoint() {
1144
1144
  return "/api/v1/accessToken";
@@ -1157,17 +1157,17 @@ class wt extends ce {
1157
1157
  );
1158
1158
  }
1159
1159
  }
1160
- I.decorate(I.inject(G.ApiClient), wt, 0);
1161
- I.decorate(I.injectable(), wt);
1162
- class vt extends ce {
1160
+ U.decorate(U.inject(X.ApiClient), Tt, 0);
1161
+ U.decorate(U.injectable(), Tt);
1162
+ class Ut extends me {
1163
1163
  constructor(e) {
1164
1164
  super(e);
1165
1165
  }
1166
1166
  configureHeaders() {
1167
- return V.getInstance().getHeaders();
1167
+ return J.getInstance().getHeaders();
1168
1168
  }
1169
1169
  transform(e) {
1170
- return new ht(e);
1170
+ return new xt(e);
1171
1171
  }
1172
1172
  getEndpoint() {
1173
1173
  return "/api/v1/resource";
@@ -1191,7 +1191,7 @@ class vt extends ce {
1191
1191
  !1,
1192
1192
  {
1193
1193
  params: {
1194
- type: Ve(ae, t)
1194
+ type: Ye(fe, t)
1195
1195
  }
1196
1196
  }
1197
1197
  );
@@ -1202,7 +1202,7 @@ class vt extends ce {
1202
1202
  {
1203
1203
  securityId: e,
1204
1204
  actionId: t,
1205
- type: Ve(ae, s)
1205
+ type: Ye(fe, s)
1206
1206
  },
1207
1207
  this.configureHeaders()
1208
1208
  );
@@ -1221,537 +1221,715 @@ class vt extends ce {
1221
1221
  );
1222
1222
  }
1223
1223
  }
1224
- I.decorate(I.inject(G.ApiClient), vt, 0);
1225
- I.decorate(I.injectable(), vt);
1226
- function Dr({
1224
+ U.decorate(U.inject(X.ApiClient), Ut, 0);
1225
+ U.decorate(U.injectable(), Ut);
1226
+ function Vr({
1227
1227
  onLogin: r,
1228
1228
  error: e,
1229
1229
  onClickForgotPassword: t,
1230
1230
  loginLabel: s = "Email",
1231
1231
  loginPlaceholder: o,
1232
- afterInputs: c,
1233
- showMockUsersSelector: l = !1,
1232
+ afterInputs: a,
1233
+ showMockUsersSelector: c = !1,
1234
1234
  mockUsers: i = [],
1235
- mockUsersGroupMap: u,
1236
- options: m = {},
1237
- onChangeUsername: b,
1238
- disabledLogin: h = !1,
1239
- isCheckingUsername: C = !1,
1240
- showSignIn: E = !0
1235
+ mockUsersGroupMap: l,
1236
+ options: g = {},
1237
+ onChangeUsername: E,
1238
+ disabledLogin: d = !1,
1239
+ isCheckingUsername: _ = !1,
1240
+ showSignIn: v = !0,
1241
+ mfaRequired: f = !1,
1242
+ onVerifyMfa: S,
1243
+ mfaError: D,
1244
+ onCancelMfa: B,
1245
+ isVerifyingMfa: O = !1
1241
1246
  }) {
1242
- const y = Qe(), {
1243
- username: x,
1244
- password: U,
1245
- rememberMe: _,
1246
- clearRememberMe: O
1247
- } = Ct(), [D, N] = f(x), [k, A] = f(U), [P, W] = f(_), [L, B] = f(!1), [H, Y] = f(null);
1248
- z(() => {
1249
- B(!!e);
1250
- }, [e]), z(() => {
1251
- x !== D && (N(x), b?.(x)), U !== k && A(U), _ !== P && W(_);
1252
- }, [x, U, _]);
1253
- const $ = () => {
1254
- B(!1);
1255
- }, X = () => {
1256
- D && k && r(D, k, P).finally(() => B(!0));
1257
- }, p = () => {
1258
- if (!u)
1259
- return i.map((g) => ({
1260
- value: g.email,
1261
- label: g.email
1247
+ const F = lt(), {
1248
+ username: N,
1249
+ password: w,
1250
+ rememberMe: m,
1251
+ clearRememberMe: R
1252
+ } = zt(), [V, C] = h(N), [L, q] = h(w), [ee, Y] = h(m), [ie, p] = h(!1), [y, te] = h(null), [T, ue] = h("");
1253
+ K(() => {
1254
+ p(!!e);
1255
+ }, [e]), K(() => {
1256
+ N !== V && (C(N), E?.(N)), w !== L && q(w), m !== ee && Y(m);
1257
+ }, [N, w, m]);
1258
+ const se = () => {
1259
+ p(!1);
1260
+ }, we = () => {
1261
+ V && L && r(V, L, ee).finally(() => p(!0));
1262
+ }, u = () => {
1263
+ const A = T.trim();
1264
+ A && S && S(A);
1265
+ }, b = () => {
1266
+ if (!l)
1267
+ return i.map((M) => ({
1268
+ value: M.email,
1269
+ label: M.email
1262
1270
  }));
1263
- const a = i.reduce((g, T) => {
1264
- const j = u[T.type];
1265
- return j && (g[j] || (g[j] = []), g[j].push({
1266
- value: T.email,
1267
- label: T.email
1268
- })), g;
1271
+ const A = i.reduce((M, ve) => {
1272
+ const ke = l[ve.type];
1273
+ return ke && (M[ke] || (M[ke] = []), M[ke].push({
1274
+ value: ve.email,
1275
+ label: ve.email
1276
+ })), M;
1269
1277
  }, {});
1270
- return Object.entries(a).map(([g, T]) => ({
1271
- group: g,
1272
- items: T
1278
+ return Object.entries(A).map(([M, ve]) => ({
1279
+ group: M,
1280
+ items: ve
1273
1281
  }));
1274
- }, n = () => {
1275
- if (H) {
1276
- const a = i.find((g) => g.email === H);
1277
- a && (N(a.email), A(a.password), $());
1282
+ }, I = () => {
1283
+ if (y) {
1284
+ const A = i.find((M) => M.email === y);
1285
+ A && (C(A.email), q(A.password), se());
1278
1286
  }
1279
- }, w = {
1287
+ }, $ = {
1280
1288
  withBorder: !0,
1281
1289
  shadow: "md",
1282
1290
  p: 30,
1283
1291
  mt: 30,
1284
1292
  radius: "md",
1285
1293
  w: 400,
1286
- ...m.cardProps
1294
+ ...g.cardProps
1287
1295
  };
1288
- return /* @__PURE__ */ R(
1289
- Ye,
1296
+ return /* @__PURE__ */ P(
1297
+ Ve,
1290
1298
  {
1291
- ...w,
1299
+ ...$,
1292
1300
  pos: "relative",
1293
- ref: y,
1301
+ ref: F,
1294
1302
  children: [
1295
- E && /* @__PURE__ */ R(te, { children: [
1296
- /* @__PURE__ */ d(
1297
- se,
1303
+ v && /* @__PURE__ */ P(ne, { children: [
1304
+ /* @__PURE__ */ n(
1305
+ j,
1298
1306
  {
1299
1307
  c: "light-dark(var(--mantine-color-black), var(--mantine-color-white))",
1300
1308
  fw: 800,
1301
1309
  fz: { base: "20px", md: "35px" },
1302
1310
  style: { textAlign: "center", letterSpacing: "-1px" },
1303
1311
  mt: "xs",
1304
- children: S().t("archbase:signIn")
1312
+ children: x().t("archbase:signIn")
1305
1313
  }
1306
1314
  ),
1307
- /* @__PURE__ */ d(ye, { m: "md" })
1315
+ /* @__PURE__ */ n(Te, { m: "md" })
1308
1316
  ] }),
1309
- m?.customContentBefore,
1310
- l && /* @__PURE__ */ R(te, { children: [
1311
- /* @__PURE__ */ R(we, { gap: "sm", mb: "md", children: [
1312
- /* @__PURE__ */ d(
1313
- Nt,
1314
- {
1315
- placeholder: "Selecione um usuário mock",
1316
- data: p(),
1317
- value: H,
1318
- onChange: (a) => Y(a ?? ""),
1319
- searchable: !0,
1320
- clearable: !0,
1321
- style: { flexGrow: 1 }
1322
- }
1323
- ),
1324
- /* @__PURE__ */ d(Bt, { label: "Aplicar", children: /* @__PURE__ */ d(
1325
- ie,
1326
- {
1327
- variant: "light",
1328
- size: "sm",
1329
- onClick: n,
1330
- disabled: !H,
1331
- "aria-label": "Aplicar usuário mock selecionado",
1332
- children: /* @__PURE__ */ d(Ft, { size: 16 })
1333
- }
1317
+ g?.customContentBefore,
1318
+ f && /* @__PURE__ */ P(be, { gap: "md", children: [
1319
+ /* @__PURE__ */ P("div", { children: [
1320
+ /* @__PURE__ */ n(j, { fw: 700, fz: "lg", children: x().t("archbase:mfa.title", "Verificação em duas etapas") }),
1321
+ /* @__PURE__ */ n(j, { c: "dimmed", fz: "sm", children: x().t(
1322
+ "archbase:mfa.subtitle",
1323
+ "Digite o código do seu aplicativo autenticador (ou um código de recuperação)."
1334
1324
  ) })
1335
1325
  ] }),
1336
- /* @__PURE__ */ d(ye, { mb: "md" })
1337
- ] }),
1338
- /* @__PURE__ */ d(
1339
- Ce,
1340
- {
1341
- label: s,
1342
- placeholder: o ?? S().t("archbase:usuario@email.com"),
1343
- rightSection: C ? /* @__PURE__ */ d(Xe, { size: "xs" }) : null,
1344
- value: D || "",
1345
- required: !0,
1346
- onChange: (a) => {
1347
- N(a.currentTarget.value), b?.(a.currentTarget.value), $();
1348
- }
1349
- }
1350
- ),
1351
- /* @__PURE__ */ d(
1352
- Ue,
1353
- {
1354
- label: S().t("archbase:Password"),
1355
- placeholder: S().t("archbase:Sua senha"),
1356
- onChange: (a) => {
1357
- A(a.currentTarget.value), $();
1358
- },
1359
- value: k || "",
1360
- required: !0,
1361
- mt: "md"
1362
- }
1363
- ),
1364
- /* @__PURE__ */ R(we, { justify: "space-between", mt: "md", children: [
1365
- /* @__PURE__ */ d(
1366
- Mt,
1326
+ /* @__PURE__ */ n(
1327
+ Ae,
1367
1328
  {
1368
- label: S().t("archbase:Lembre-me"),
1369
- checked: P,
1370
- onChange: (a) => {
1371
- const g = a.currentTarget.checked;
1372
- W(g), g || O();
1329
+ label: x().t("archbase:mfa.code", "Código de verificação"),
1330
+ placeholder: "000000",
1331
+ value: T,
1332
+ autoFocus: !0,
1333
+ onChange: (A) => ue(A.currentTarget.value),
1334
+ onKeyDown: (A) => {
1335
+ A.key === "Enter" && u();
1373
1336
  }
1374
1337
  }
1375
1338
  ),
1376
- t && /* @__PURE__ */ d(
1377
- Ot,
1339
+ D && /* @__PURE__ */ n(j, { c: "red", fz: "sm", children: D }),
1340
+ /* @__PURE__ */ n(
1341
+ W,
1342
+ {
1343
+ fullWidth: !0,
1344
+ disabled: !T.trim() || O,
1345
+ loading: O,
1346
+ onClick: u,
1347
+ children: x().t("archbase:mfa.verify", "Verificar")
1348
+ }
1349
+ ),
1350
+ B && /* @__PURE__ */ n(
1351
+ Qe,
1378
1352
  {
1379
1353
  component: "button",
1380
1354
  c: "var(--mantine-text-color)",
1381
1355
  fz: 14,
1382
- lh: "20px",
1356
+ ta: "center",
1383
1357
  styles: { root: { cursor: "pointer" } },
1384
- onClick: t,
1385
- children: S().t("archbase:Esqueci minha senha")
1358
+ onClick: B,
1359
+ children: x().t("archbase:mfa.back", "Voltar ao login")
1386
1360
  }
1387
1361
  )
1388
1362
  ] }),
1389
- m?.afterInputs || c,
1390
- /* @__PURE__ */ d(
1391
- ie,
1392
- {
1393
- disabled: !k || !D || h,
1394
- fullWidth: !0,
1395
- mt: "xl",
1396
- onClick: X,
1397
- children: S().t("archbase:signIn")
1398
- }
1399
- ),
1400
- m?.customContentAfter,
1401
- L && e && /* @__PURE__ */ d(se, { c: "red", mt: "sm", children: e })
1363
+ !f && /* @__PURE__ */ P(ne, { children: [
1364
+ c && /* @__PURE__ */ P(ne, { children: [
1365
+ /* @__PURE__ */ P(le, { gap: "sm", mb: "md", children: [
1366
+ /* @__PURE__ */ n(
1367
+ Ht,
1368
+ {
1369
+ placeholder: "Selecione um usuário mock",
1370
+ data: b(),
1371
+ value: y,
1372
+ onChange: (A) => te(A ?? ""),
1373
+ searchable: !0,
1374
+ clearable: !0,
1375
+ style: { flexGrow: 1 }
1376
+ }
1377
+ ),
1378
+ /* @__PURE__ */ n(Gt, { label: "Aplicar", children: /* @__PURE__ */ n(
1379
+ W,
1380
+ {
1381
+ variant: "light",
1382
+ size: "sm",
1383
+ onClick: I,
1384
+ disabled: !y,
1385
+ "aria-label": "Aplicar usuário mock selecionado",
1386
+ children: /* @__PURE__ */ n(Xt, { size: 16 })
1387
+ }
1388
+ ) })
1389
+ ] }),
1390
+ /* @__PURE__ */ n(Te, { mb: "md" })
1391
+ ] }),
1392
+ /* @__PURE__ */ n(
1393
+ Ae,
1394
+ {
1395
+ label: s,
1396
+ placeholder: o ?? x().t("archbase:usuario@email.com"),
1397
+ rightSection: _ ? /* @__PURE__ */ n(ct, { size: "xs" }) : null,
1398
+ value: V || "",
1399
+ required: !0,
1400
+ onChange: (A) => {
1401
+ C(A.currentTarget.value), E?.(A.currentTarget.value), se();
1402
+ }
1403
+ }
1404
+ ),
1405
+ /* @__PURE__ */ n(
1406
+ Le,
1407
+ {
1408
+ label: x().t("archbase:Password"),
1409
+ placeholder: x().t("archbase:Sua senha"),
1410
+ onChange: (A) => {
1411
+ q(A.currentTarget.value), se();
1412
+ },
1413
+ value: L || "",
1414
+ required: !0,
1415
+ mt: "md"
1416
+ }
1417
+ ),
1418
+ /* @__PURE__ */ P(le, { justify: "space-between", mt: "md", children: [
1419
+ /* @__PURE__ */ n(
1420
+ Jt,
1421
+ {
1422
+ label: x().t("archbase:Lembre-me"),
1423
+ checked: ee,
1424
+ onChange: (A) => {
1425
+ const M = A.currentTarget.checked;
1426
+ Y(M), M || R();
1427
+ }
1428
+ }
1429
+ ),
1430
+ t && /* @__PURE__ */ n(
1431
+ Qe,
1432
+ {
1433
+ component: "button",
1434
+ c: "var(--mantine-text-color)",
1435
+ fz: 14,
1436
+ lh: "20px",
1437
+ styles: { root: { cursor: "pointer" } },
1438
+ onClick: t,
1439
+ children: x().t("archbase:Esqueci minha senha")
1440
+ }
1441
+ )
1442
+ ] }),
1443
+ g?.afterInputs || a,
1444
+ /* @__PURE__ */ n(
1445
+ W,
1446
+ {
1447
+ disabled: !L || !V || d,
1448
+ fullWidth: !0,
1449
+ mt: "xl",
1450
+ onClick: we,
1451
+ children: x().t("archbase:signIn")
1452
+ }
1453
+ )
1454
+ ] }),
1455
+ g?.customContentAfter,
1456
+ ie && e && /* @__PURE__ */ n(j, { c: "red", mt: "sm", children: e })
1402
1457
  ]
1403
1458
  }
1404
1459
  );
1405
1460
  }
1406
- const cr = {
1461
+ const z = (r, e) => x().t(r, e);
1462
+ function Wr({
1463
+ enabled: r,
1464
+ onSetup: e,
1465
+ onEnable: t,
1466
+ onDisable: s,
1467
+ onStatusChange: o
1468
+ }) {
1469
+ const [a, c] = h("idle"), [i, l] = h(null), [g, E] = h(""), [d, _] = h([]), [v, f] = h(!1), [S, D] = h(null), B = async () => {
1470
+ f(!0), D(null);
1471
+ try {
1472
+ const w = await e();
1473
+ l(w), E(""), c("setup");
1474
+ } catch (w) {
1475
+ D(w?.message || String(w));
1476
+ } finally {
1477
+ f(!1);
1478
+ }
1479
+ }, O = async () => {
1480
+ const w = g.trim();
1481
+ if (w) {
1482
+ f(!0), D(null);
1483
+ try {
1484
+ const m = await t(w);
1485
+ _(m), c("recovery"), o?.(!0);
1486
+ } catch (m) {
1487
+ D(m?.message || String(m));
1488
+ } finally {
1489
+ f(!1);
1490
+ }
1491
+ }
1492
+ }, F = async () => {
1493
+ f(!0), D(null);
1494
+ try {
1495
+ await s(), l(null), _([]), c("idle"), o?.(!1);
1496
+ } catch (w) {
1497
+ D(w?.message || String(w));
1498
+ } finally {
1499
+ f(!1);
1500
+ }
1501
+ }, N = () => {
1502
+ _([]), l(null), E(""), c("idle");
1503
+ };
1504
+ return /* @__PURE__ */ n(Ve, { withBorder: !0, radius: "md", p: "lg", children: /* @__PURE__ */ P(be, { gap: "md", children: [
1505
+ /* @__PURE__ */ P("div", { children: [
1506
+ /* @__PURE__ */ n(j, { fw: 700, fz: "lg", children: z("archbase:mfa.setup.title", "Autenticação em duas etapas (MFA)") }),
1507
+ /* @__PURE__ */ n(j, { c: "dimmed", fz: "sm", children: z(
1508
+ "archbase:mfa.setup.subtitle",
1509
+ "Proteja o acesso exigindo um código do seu aplicativo autenticador no login."
1510
+ ) })
1511
+ ] }),
1512
+ S && /* @__PURE__ */ n(Ze, { color: "red", children: S }),
1513
+ r && a === "idle" && /* @__PURE__ */ P(le, { justify: "space-between", children: [
1514
+ /* @__PURE__ */ n(j, { c: "teal", fw: 600, children: z("archbase:mfa.setup.active", "MFA ativo") }),
1515
+ /* @__PURE__ */ n(W, { color: "red", variant: "light", loading: v, onClick: F, children: z("archbase:mfa.setup.disable", "Desativar") })
1516
+ ] }),
1517
+ !r && a === "idle" && /* @__PURE__ */ n(W, { loading: v, onClick: B, children: z("archbase:mfa.setup.enable", "Ativar MFA") }),
1518
+ a === "setup" && i && /* @__PURE__ */ P(be, { gap: "sm", align: "center", children: [
1519
+ /* @__PURE__ */ n(j, { fz: "sm", ta: "center", children: z(
1520
+ "archbase:mfa.setup.scan",
1521
+ "Escaneie o QR Code no seu app autenticador (Google Authenticator, Authy…):"
1522
+ ) }),
1523
+ /* @__PURE__ */ n(Qt, { value: i.provisioningUri, size: 180, level: "M" }),
1524
+ /* @__PURE__ */ n(j, { fz: "xs", c: "dimmed", ta: "center", children: z("archbase:mfa.setup.manual", "Ou informe o código manualmente:") }),
1525
+ /* @__PURE__ */ P(le, { gap: "xs", children: [
1526
+ /* @__PURE__ */ n(et, { children: i.secret }),
1527
+ /* @__PURE__ */ n(tt, { value: i.secret, children: ({ copied: w, copy: m }) => /* @__PURE__ */ n(W, { size: "xs", variant: "subtle", onClick: m, children: w ? z("archbase:mfa.setup.copied", "Copiado") : z("archbase:mfa.setup.copy", "Copiar") }) })
1528
+ ] }),
1529
+ /* @__PURE__ */ n(
1530
+ Ae,
1531
+ {
1532
+ w: "100%",
1533
+ label: z("archbase:mfa.setup.confirmCode", "Digite o código gerado para confirmar"),
1534
+ placeholder: "000000",
1535
+ value: g,
1536
+ onChange: (w) => E(w.currentTarget.value),
1537
+ onKeyDown: (w) => {
1538
+ w.key === "Enter" && O();
1539
+ }
1540
+ }
1541
+ ),
1542
+ /* @__PURE__ */ P(le, { w: "100%", justify: "flex-end", children: [
1543
+ /* @__PURE__ */ n(W, { variant: "default", onClick: N, disabled: v, children: z("archbase:mfa.setup.cancel", "Cancelar") }),
1544
+ /* @__PURE__ */ n(W, { onClick: O, loading: v, disabled: !g.trim(), children: z("archbase:mfa.setup.confirm", "Confirmar e ativar") })
1545
+ ] })
1546
+ ] }),
1547
+ a === "recovery" && /* @__PURE__ */ P(be, { gap: "sm", children: [
1548
+ /* @__PURE__ */ n(Ze, { color: "yellow", children: z(
1549
+ "archbase:mfa.setup.recoveryWarning",
1550
+ "Guarde estes códigos de recuperação em local seguro. Cada um funciona uma única vez e permite entrar se você perder o acesso ao app autenticador. Eles não serão exibidos novamente."
1551
+ ) }),
1552
+ /* @__PURE__ */ n(Kt, { cols: 2, spacing: "xs", children: d.map((w) => /* @__PURE__ */ n(et, { fz: "sm", children: w }, w)) }),
1553
+ /* @__PURE__ */ P(le, { justify: "space-between", children: [
1554
+ /* @__PURE__ */ n(tt, { value: d.join(`
1555
+ `), children: ({ copied: w, copy: m }) => /* @__PURE__ */ n(W, { variant: "subtle", onClick: m, children: w ? z("archbase:mfa.setup.copied", "Copiado") : z("archbase:mfa.setup.copyAll", "Copiar todos") }) }),
1556
+ /* @__PURE__ */ n(W, { onClick: N, children: z("archbase:mfa.setup.done", "Guardei os códigos") })
1557
+ ] })
1558
+ ] })
1559
+ ] }) });
1560
+ }
1561
+ const vr = {
1407
1562
  position: "relative",
1408
1563
  width: "90%",
1409
1564
  maxWidth: 400,
1410
1565
  padding: 30,
1411
1566
  marginTop: 30
1412
1567
  };
1413
- function Rr({ error: r, onSendResetPasswordEmail: e, onResetPassword: t, onClickBackToLogin: s, validatePassword: o, validateToken: c, initialEmail: l = "", description: i, style: u }) {
1414
- const m = Qe(), b = Ut(), { colorScheme: h } = Lt(), [C, E] = f(r ?? ""), [y, x] = f(l), [U, _] = f(""), [O, D] = f(""), [N, k] = f(""), [A, P] = f(!1), [W, L] = f(""), [B, H] = f(""), [Y, $] = f(""), [X, p] = f("");
1415
- async function n(a) {
1416
- a && (_t(a) ? await e(a).then(() => {
1417
- We.showSuccess(`${S().t("archbase:Um e-mail com instruções para redefinir sua senha foi enviado. Verifique sua caixa de entrada.")}`), P(!0);
1568
+ function Hr({ error: r, onSendResetPasswordEmail: e, onResetPassword: t, onClickBackToLogin: s, validatePassword: o, validateToken: a, initialEmail: c = "", description: i, style: l }) {
1569
+ const g = lt(), E = jt(), { colorScheme: d } = qt(), [_, v] = h(r ?? ""), [f, S] = h(c), [D, B] = h(""), [O, F] = h(""), [N, w] = h(""), [m, R] = h(!1), [V, C] = h(""), [L, q] = h(""), [ee, Y] = h(""), [ie, p] = h("");
1570
+ async function y(T) {
1571
+ T && (Ft(T) ? await e(T).then(() => {
1572
+ rt.showSuccess(`${x().t("archbase:Um e-mail com instruções para redefinir sua senha foi enviado. Verifique sua caixa de entrada.")}`), R(!0);
1418
1573
  }).catch(() => {
1419
- }) : L(`${S().t("archbase:Email inválido")}`));
1574
+ }) : C(`${x().t("archbase:Email inválido")}`));
1420
1575
  }
1421
- async function w(a, g, T, j) {
1422
- if (a && g && T) {
1423
- let xe = "", ke = "", Fe = "";
1424
- c && (xe = c(), $(xe)), o && (ke = o(), $(ke)), T !== j && (Fe = `${S().t("archbase:A nova senha e a confirmação devem ser iguais.")}`, p(Fe)), !ke && !xe && await t(a, g, T).then(() => {
1425
- We.showSuccess(`${S().t("archbase:Senha redefinida com sucesso.")}`), s(), P(!1);
1576
+ async function te(T, ue, se, we) {
1577
+ if (T && ue && se) {
1578
+ let u = "", b = "", I = "";
1579
+ a && (u = a(), Y(u)), o && (b = o(), Y(b)), se !== we && (I = `${x().t("archbase:A nova senha e a confirmação devem ser iguais.")}`, p(I)), !b && !u && await t(T, ue, se).then(() => {
1580
+ rt.showSuccess(`${x().t("archbase:Senha redefinida com sucesso.")}`), s(), R(!1);
1426
1581
  }).catch(() => {
1427
- E(r || `${S().t("archbase:Erro ao redefinir senha.")}`);
1582
+ v(r || `${x().t("archbase:Erro ao redefinir senha.")}`);
1428
1583
  });
1429
1584
  }
1430
1585
  }
1431
- return z(() => {
1432
- r && E(r);
1433
- }, [r]), z(() => {
1434
- E("");
1435
- }, [y, U, O, N]), /* @__PURE__ */ R(
1436
- Ye,
1586
+ return K(() => {
1587
+ r && v(r);
1588
+ }, [r]), K(() => {
1589
+ v("");
1590
+ }, [f, D, O, N]), /* @__PURE__ */ P(
1591
+ Ve,
1437
1592
  {
1438
1593
  withBorder: !0,
1439
1594
  shadow: "md",
1440
1595
  radius: "md",
1441
- ref: m,
1596
+ ref: g,
1442
1597
  style: {
1443
- ...cr,
1444
- ...u
1598
+ ...vr,
1599
+ ...l
1445
1600
  },
1446
1601
  children: [
1447
- A ? /* @__PURE__ */ R(te, { children: [
1448
- /* @__PURE__ */ d(
1449
- se,
1602
+ m ? /* @__PURE__ */ P(ne, { children: [
1603
+ /* @__PURE__ */ n(
1604
+ j,
1450
1605
  {
1451
1606
  c: "light-dark(var(--mantine-color-black), var(--mantine-color-white))",
1452
1607
  fw: 800,
1453
1608
  fz: { base: "20px", md: "35px" },
1454
1609
  style: { textAlign: "center", letterSpacing: "-1px" },
1455
1610
  mt: "xs",
1456
- children: S().t("archbase:Redefinir senha")
1611
+ children: x().t("archbase:Redefinir senha")
1457
1612
  }
1458
1613
  ),
1459
- /* @__PURE__ */ d(ye, { m: "xs" }),
1460
- /* @__PURE__ */ d(
1461
- Ce,
1614
+ /* @__PURE__ */ n(Te, { m: "xs" }),
1615
+ /* @__PURE__ */ n(
1616
+ Ae,
1462
1617
  {
1463
- label: S().t("archbase:Código de segurança"),
1464
- placeholder: `${S().t("archbase:Código enviado no seu e-mail")}`,
1465
- value: U || "",
1618
+ label: x().t("archbase:Código de segurança"),
1619
+ placeholder: `${x().t("archbase:Código enviado no seu e-mail")}`,
1620
+ value: D || "",
1466
1621
  required: !0,
1467
- onChange: (a) => {
1468
- _(a.currentTarget.value), H("");
1622
+ onChange: (T) => {
1623
+ B(T.currentTarget.value), q("");
1469
1624
  },
1470
- error: B
1625
+ error: L
1471
1626
  }
1472
1627
  ),
1473
- /* @__PURE__ */ d(
1474
- Ue,
1628
+ /* @__PURE__ */ n(
1629
+ Le,
1475
1630
  {
1476
- label: S().t("archbase:Nova senha"),
1477
- placeholder: S().t("archbase:Nova senha"),
1478
- onChange: (a) => {
1479
- D(a.currentTarget.value), $(""), p("");
1631
+ label: x().t("archbase:Nova senha"),
1632
+ placeholder: x().t("archbase:Nova senha"),
1633
+ onChange: (T) => {
1634
+ F(T.currentTarget.value), Y(""), p("");
1480
1635
  },
1481
1636
  value: O,
1482
1637
  required: !0,
1483
- error: Y
1638
+ error: ee
1484
1639
  }
1485
1640
  ),
1486
- /* @__PURE__ */ d(
1487
- Ue,
1641
+ /* @__PURE__ */ n(
1642
+ Le,
1488
1643
  {
1489
- label: S().t("archbase:Confirmar senha"),
1490
- placeholder: S().t("archbase:Confirmar senha"),
1491
- onChange: (a) => {
1492
- k(a.currentTarget.value), p("");
1644
+ label: x().t("archbase:Confirmar senha"),
1645
+ placeholder: x().t("archbase:Confirmar senha"),
1646
+ onChange: (T) => {
1647
+ w(T.currentTarget.value), p("");
1493
1648
  },
1494
1649
  value: N || "",
1495
1650
  required: !0,
1496
- error: X
1651
+ error: ie
1497
1652
  }
1498
1653
  ),
1499
- /* @__PURE__ */ d(
1500
- ie,
1654
+ /* @__PURE__ */ n(
1655
+ W,
1501
1656
  {
1502
- disabled: !y || !U || !O || !N,
1657
+ disabled: !f || !D || !O || !N,
1503
1658
  mt: "md",
1504
1659
  fullWidth: !0,
1505
- onClick: () => w(y, U, O, N),
1506
- children: `${S().t("archbase:Redefinir senha")}`
1660
+ onClick: () => te(f, D, O, N),
1661
+ children: `${x().t("archbase:Redefinir senha")}`
1507
1662
  }
1508
1663
  ),
1509
- /* @__PURE__ */ d(
1510
- ie,
1664
+ /* @__PURE__ */ n(
1665
+ W,
1511
1666
  {
1512
1667
  mt: "6px",
1513
1668
  fullWidth: !0,
1514
- color: h === "dark" ? b.colors.dark[4] : b.colors.gray[7],
1669
+ color: d === "dark" ? E.colors.dark[4] : E.colors.gray[7],
1515
1670
  onClick: () => {
1516
- W || P(!1);
1671
+ V || R(!1);
1517
1672
  },
1518
- children: `${S().t("archbase:Voltar")}`
1673
+ children: `${x().t("archbase:Voltar")}`
1519
1674
  }
1520
1675
  )
1521
- ] }) : /* @__PURE__ */ R(te, { children: [
1522
- /* @__PURE__ */ d(
1523
- se,
1676
+ ] }) : /* @__PURE__ */ P(ne, { children: [
1677
+ /* @__PURE__ */ n(
1678
+ j,
1524
1679
  {
1525
1680
  c: "light-dark(var(--mantine-color-black), var(--mantine-color-white))",
1526
1681
  fw: 800,
1527
1682
  fz: { base: "20px", md: "35px" },
1528
1683
  style: { textAlign: "center", letterSpacing: "-1px" },
1529
1684
  mt: "xs",
1530
- children: S().t("archbase:Redefinir senha")
1685
+ children: x().t("archbase:Redefinir senha")
1531
1686
  }
1532
1687
  ),
1533
- /* @__PURE__ */ d(se, { c: "dimmed", fz: 14, style: { textAlign: "justify" }, children: i }),
1534
- /* @__PURE__ */ d(ye, { m: "md" }),
1535
- /* @__PURE__ */ d(
1536
- Ce,
1688
+ /* @__PURE__ */ n(j, { c: "dimmed", fz: 14, style: { textAlign: "justify" }, children: i }),
1689
+ /* @__PURE__ */ n(Te, { m: "md" }),
1690
+ /* @__PURE__ */ n(
1691
+ Ae,
1537
1692
  {
1538
1693
  label: "Email",
1539
- placeholder: `${S().t("archbase:usuario@email.com")}`,
1540
- value: y || "",
1694
+ placeholder: `${x().t("archbase:usuario@email.com")}`,
1695
+ value: f || "",
1541
1696
  required: !0,
1542
- onChange: (a) => {
1543
- x(a.currentTarget.value), L("");
1697
+ onChange: (T) => {
1698
+ S(T.currentTarget.value), C("");
1544
1699
  },
1545
- error: W
1700
+ error: V
1546
1701
  }
1547
1702
  ),
1548
- /* @__PURE__ */ d(
1549
- ie,
1703
+ /* @__PURE__ */ n(
1704
+ W,
1550
1705
  {
1551
- disabled: !y,
1706
+ disabled: !f,
1552
1707
  mt: "md",
1553
1708
  fullWidth: !0,
1554
- onClick: () => n(y),
1555
- children: `${S().t("archbase:Enviar")}`
1709
+ onClick: () => y(f),
1710
+ children: `${x().t("archbase:Enviar")}`
1556
1711
  }
1557
1712
  ),
1558
- /* @__PURE__ */ d(
1559
- ie,
1713
+ /* @__PURE__ */ n(
1714
+ W,
1560
1715
  {
1561
1716
  mt: "6px",
1562
1717
  fullWidth: !0,
1563
- color: h === "dark" ? b.colors.dark[4] : b.colors.gray[7],
1718
+ color: d === "dark" ? E.colors.dark[4] : E.colors.gray[7],
1564
1719
  onClick: () => s && s(),
1565
- children: `${S().t("archbase:Voltar")}`
1720
+ children: `${x().t("archbase:Voltar")}`
1566
1721
  }
1567
1722
  )
1568
1723
  ] }),
1569
- C ? /* @__PURE__ */ d(se, { c: "red", style: { textAlign: "justify" }, children: C }) : null
1724
+ _ ? /* @__PURE__ */ n(j, { c: "red", style: { textAlign: "justify" }, children: _ }) : null
1570
1725
  ]
1571
1726
  }
1572
1727
  );
1573
1728
  }
1574
- const lr = () => Dt().user, At = "archbaseSecurityManagerStore", Nr = ({ resourceName: r, resourceDescription: e, enableSecurity: t = !0 }) => {
1575
- const s = qe(At), o = lr(), c = o?.isAdmin ?? !1, l = o?.id, i = Ke(l), u = Je(() => {
1729
+ const br = () => Vt().user, Dt = "archbaseSecurityManagerStore", Gr = ({ resourceName: r, resourceDescription: e, enableSecurity: t = !0 }) => {
1730
+ const s = at(Dt), o = br(), a = o?.isAdmin ?? !1, c = o?.id, i = it(c), l = nt(() => {
1576
1731
  if (!t)
1577
1732
  return null;
1578
- const m = l ? `${r}_${l}` : r;
1579
- if (s && s.existsValue(m)) {
1580
- const h = s.getValue(m);
1581
- if (h && h.isAdmin === c)
1582
- return h;
1733
+ const g = c ? `${r}_${c}` : r;
1734
+ if (s && s.existsValue(g)) {
1735
+ const d = s.getValue(g);
1736
+ if (d && d.isAdmin === a)
1737
+ return d;
1583
1738
  }
1584
- const b = new nt(r, e, c);
1585
- return s && l && s.setValue(m, b), b;
1586
- }, [t, r, e, c, l]);
1587
- return z(() => {
1588
- i.current = l;
1589
- }, [l]), { securityManager: u };
1590
- }, Br = ({
1739
+ const E = new gt(r, e, a);
1740
+ return s && c && s.setValue(g, E), E;
1741
+ }, [t, r, e, a, c]);
1742
+ return K(() => {
1743
+ i.current = c;
1744
+ }, [c]), { securityManager: l };
1745
+ }, Jr = ({
1591
1746
  checkIntervalTokenHasExpired: r = 3e4,
1592
1747
  // Verificar a 30 segundos
1593
1748
  expirationThresholdOfToken: e = 300
1594
1749
  // Antecipar em 5 minutos
1595
1750
  }) => {
1596
- const t = ve(
1597
- (n) => n.get(G.TokenManager)
1598
- ), s = ve(
1599
- (n) => n.get(G.Authenticator)
1600
- ), [o, c] = f(null), [l, i] = f(!1), [u, m] = f(!0), [b, h] = f(!1), [C, E] = f(!1), [y, x] = f(""), [U, _] = f(""), [O, D] = f(null), N = qe(At), k = {
1751
+ const t = Ue(
1752
+ (u) => u.get(X.TokenManager)
1753
+ ), s = Ue(
1754
+ (u) => u.get(X.Authenticator)
1755
+ ), [o, a] = h(null), [c, i] = h(!1), [l, g] = h(!0), [E, d] = h(!1), [_, v] = h(!1), [f, S] = h(""), [D, B] = h(""), [O, F] = h(null), [N, w] = h(!1), [m, R] = h(null), V = at(Dt), C = {
1601
1756
  hasContextualLogin: typeof s.loginWithContext == "function",
1602
1757
  hasFlexibleLogin: typeof s.loginFlexible == "function",
1603
1758
  hasSocialLogin: typeof s.loginSocial == "function",
1604
1759
  hasRegistration: typeof s.register == "function",
1605
1760
  hasContextSupport: typeof t.saveContext == "function"
1606
1761
  };
1607
- z(() => {
1608
- const n = t.getUsername();
1609
- if (n && n != "" && _(n), k.hasContextSupport && t.getContext) {
1610
- const a = t.getContext();
1611
- if (a)
1762
+ K(() => {
1763
+ const u = t.getUsername();
1764
+ if (u && u != "" && B(u), C.hasContextSupport && t.getContext) {
1765
+ const I = t.getContext();
1766
+ if (I)
1612
1767
  try {
1613
- const g = typeof a == "string" ? JSON.parse(a) : a;
1614
- D(g);
1615
- } catch (g) {
1616
- console.warn("Erro ao carregar contexto salvo:", g);
1768
+ const $ = typeof I == "string" ? JSON.parse(I) : I;
1769
+ F($);
1770
+ } catch ($) {
1771
+ console.warn("Erro ao carregar contexto salvo:", $);
1617
1772
  }
1618
1773
  }
1619
- const w = t.getToken();
1620
- w && (h(!0), x(""), E(!1), c(w)), m(!1);
1774
+ const b = t.getToken();
1775
+ b && (d(!0), S(""), v(!1), a(b)), g(!1);
1621
1776
  }, []);
1622
- const A = () => {
1623
- E(!1), x("");
1624
- }, P = (n) => {
1625
- i(!1), h(!1), t.clearToken(), n && t.clearUsernameAndPassword(), k.hasContextSupport && t.clearContext && t.clearContext(), _(""), D(null), x(""), E(!1), N.clearAllValues();
1626
- }, W = async (n, w, a) => {
1777
+ const L = () => {
1778
+ v(!1), S("");
1779
+ }, q = (u) => {
1780
+ i(!1), d(!1), t.clearToken(), u && t.clearUsernameAndPassword(), C.hasContextSupport && t.clearContext && t.clearContext(), B(""), F(null), S(""), v(!1), V.clearAllValues();
1781
+ }, ee = async (u, b, I) => {
1627
1782
  try {
1628
- i(!0), h(!1);
1629
- const g = await s.login(n, w);
1630
- t.saveToken(g), a && t.saveUsernameAndPassword(n, w), t.saveUsername(n), _(n), c(g), i(!1), h(!0);
1631
- } catch (g) {
1632
- i(!1), h(!1), x(ee(g)), E(!0);
1783
+ i(!0), d(!1);
1784
+ const $ = await s.login(u, b);
1785
+ t.saveToken($), I && t.saveUsernameAndPassword(u, b), t.saveUsername(u), B(u), a($), i(!1), d(!0);
1786
+ } catch ($) {
1787
+ i(!1), d(!1), S(oe($)), v(!0);
1633
1788
  }
1634
- }, L = async (n, w = !1) => {
1635
- if (!k.hasContextualLogin || !s.loginWithContext)
1789
+ }, Y = async (u, b = !1) => {
1790
+ if (!C.hasContextualLogin || !s.loginWithContext)
1636
1791
  throw new Error("Login contextual não suportado por esta implementação do ArchbaseAuthenticator");
1637
1792
  try {
1638
- i(!0), h(!1);
1639
- const { context: a, user: g, ...T } = await s.loginWithContext(n), j = {
1793
+ i(!0), d(!1);
1794
+ const { context: I, user: $, ...A } = await s.loginWithContext(u);
1795
+ if (A.mfa_required) {
1796
+ R(A.challenge_token ?? null), w(!0), B(u.email), i(!1);
1797
+ return;
1798
+ }
1799
+ const M = {
1640
1800
  scope: "",
1641
- ext_expires_in: T.expires_in,
1642
- ...T
1801
+ ext_expires_in: A.expires_in,
1802
+ ...A
1643
1803
  };
1644
- t.saveToken(j), w ? t.saveUsernameAndPassword(n.email, n.password) : t.clearUsernameAndPassword(), t.saveUsername(n.email), k.hasContextSupport && t.saveContext && a && (t.saveContext(JSON.stringify(a)), D(a)), _(n.email), c(j), i(!1), h(!0);
1645
- } catch (a) {
1646
- throw i(!1), h(!1), x(ee(a)), E(!0), a;
1804
+ t.saveToken(M), b ? t.saveUsernameAndPassword(u.email, u.password) : t.clearUsernameAndPassword(), t.saveUsername(u.email), C.hasContextSupport && t.saveContext && I && (t.saveContext(JSON.stringify(I)), F(I)), B(u.email), a(M), i(!1), d(!0);
1805
+ } catch (I) {
1806
+ throw i(!1), d(!1), S(oe(I)), v(!0), I;
1807
+ }
1808
+ }, ie = async (u) => {
1809
+ if (!s.verifyMfa)
1810
+ throw new Error("verifyMfa não suportado por esta implementação do ArchbaseAuthenticator");
1811
+ if (!m)
1812
+ throw new Error("Nenhum desafio de MFA pendente");
1813
+ try {
1814
+ i(!0), S(""), v(!1);
1815
+ const b = await s.verifyMfa(m, u);
1816
+ t.saveToken(b), t.saveUsername(D), a(b), w(!1), R(null), i(!1), d(!0);
1817
+ } catch (b) {
1818
+ throw i(!1), S(oe(b)), v(!0), b;
1647
1819
  }
1648
- }, B = async (n, w = !1) => {
1649
- if (!k.hasFlexibleLogin || !s.loginFlexible)
1820
+ }, p = () => {
1821
+ w(!1), R(null), S(""), v(!1);
1822
+ }, y = async (u, b = !1) => {
1823
+ if (!C.hasFlexibleLogin || !s.loginFlexible)
1650
1824
  throw new Error("Login flexível não suportado por esta implementação do ArchbaseAuthenticator");
1651
1825
  try {
1652
- i(!0), h(!1);
1653
- const { context: a, user: g, ...T } = await s.loginFlexible(n), j = {
1826
+ i(!0), d(!1);
1827
+ const { context: I, user: $, ...A } = await s.loginFlexible(u), M = {
1654
1828
  scope: "",
1655
- ext_expires_in: T.expires_in,
1656
- ...T
1829
+ ext_expires_in: A.expires_in,
1830
+ ...A
1657
1831
  };
1658
- t.saveToken(j), w && t.saveUsernameAndPassword(n.identifier, n.password), t.saveUsername(g.email || n.identifier), k.hasContextSupport && t.saveContext && a && (t.saveContext(JSON.stringify(a)), D(a)), _(g.email || n.identifier), c(j), i(!1), h(!0);
1659
- } catch (a) {
1660
- throw i(!1), h(!1), x(ee(a)), E(!0), a;
1832
+ t.saveToken(M), b && t.saveUsernameAndPassword(u.identifier, u.password), t.saveUsername($.email || u.identifier), C.hasContextSupport && t.saveContext && I && (t.saveContext(JSON.stringify(I)), F(I)), B($.email || u.identifier), a(M), i(!1), d(!0);
1833
+ } catch (I) {
1834
+ throw i(!1), d(!1), S(oe(I)), v(!0), I;
1661
1835
  }
1662
- }, H = async (n) => {
1663
- if (!k.hasSocialLogin || !s.loginSocial)
1836
+ }, te = async (u) => {
1837
+ if (!C.hasSocialLogin || !s.loginSocial)
1664
1838
  throw new Error("Login social não suportado por esta implementação do ArchbaseAuthenticator");
1665
1839
  try {
1666
- i(!0), h(!1);
1667
- const { context: w, user: a, ...g } = await s.loginSocial(n), T = {
1840
+ i(!0), d(!1);
1841
+ const { context: b, user: I, ...$ } = await s.loginSocial(u), A = {
1668
1842
  scope: "",
1669
- ext_expires_in: g.expires_in,
1670
- ...g
1843
+ ext_expires_in: $.expires_in,
1844
+ ...$
1671
1845
  };
1672
- t.saveToken(T), t.saveUsername(a.email), k.hasContextSupport && t.saveContext && w && (t.saveContext(JSON.stringify(w)), D(w)), _(a.email), c(T), i(!1), h(!0);
1673
- } catch (w) {
1674
- throw i(!1), h(!1), x(ee(w)), E(!0), w;
1846
+ t.saveToken(A), t.saveUsername(I.email), C.hasContextSupport && t.saveContext && b && (t.saveContext(JSON.stringify(b)), F(b)), B(I.email), a(A), i(!1), d(!0);
1847
+ } catch (b) {
1848
+ throw i(!1), d(!1), S(oe(b)), v(!0), b;
1675
1849
  }
1676
- }, Y = async (n) => {
1677
- if (!k.hasRegistration || !s.register)
1850
+ }, T = async (u) => {
1851
+ if (!C.hasRegistration || !s.register)
1678
1852
  throw new Error("Registro não suportado por esta implementação do ArchbaseAuthenticator");
1679
1853
  try {
1680
1854
  i(!0);
1681
- const w = await s.register(n);
1682
- return i(!1), w;
1683
- } catch (w) {
1684
- throw i(!1), x(ee(w)), E(!0), w;
1855
+ const b = await s.register(u);
1856
+ return i(!1), b;
1857
+ } catch (b) {
1858
+ throw i(!1), S(oe(b)), v(!0), b;
1685
1859
  }
1686
- }, $ = async () => s.getSupportedContexts ? await s.getSupportedContexts() : { supportedContexts: ["DEFAULT"], defaultContext: "DEFAULT" }, X = async (n) => s.validateContext ? await s.validateContext(n) : { context: n, supported: n === "DEFAULT" };
1687
- z(() => {
1688
- const n = setInterval(() => {
1689
- o && o.access_token && t.isTokenExpired(o, e) && p();
1860
+ }, ue = async () => s.getSupportedContexts ? await s.getSupportedContexts() : { supportedContexts: ["DEFAULT"], defaultContext: "DEFAULT" }, se = async (u) => s.validateContext ? await s.validateContext(u) : { context: u, supported: u === "DEFAULT" };
1861
+ K(() => {
1862
+ const u = setInterval(() => {
1863
+ o && o.access_token && t.isTokenExpired(o, e) && we();
1690
1864
  }, r);
1691
1865
  return () => {
1692
- clearInterval(n);
1866
+ clearInterval(u);
1693
1867
  };
1694
1868
  }, [o]);
1695
- const p = async () => {
1869
+ const we = async () => {
1696
1870
  if (o)
1697
1871
  try {
1698
- const n = await s.refreshToken(o?.refresh_token);
1699
- t.saveToken(n), c(n);
1700
- } catch (n) {
1701
- console.error("Erro ao renovar o token:", n), P();
1872
+ const u = await s.refreshToken(o?.refresh_token);
1873
+ t.saveToken(u), a(u);
1874
+ } catch (u) {
1875
+ console.error("Erro ao renovar o token:", u), q();
1702
1876
  }
1703
1877
  };
1704
1878
  return {
1705
1879
  // Métodos básicos (compatibilidade)
1706
- login: W,
1707
- logout: P,
1708
- username: U,
1709
- isAuthenticated: b,
1710
- isAuthenticating: l,
1711
- isInitializing: u,
1712
- isError: C,
1713
- error: y,
1714
- clearError: A,
1880
+ login: ee,
1881
+ logout: q,
1882
+ username: D,
1883
+ isAuthenticated: E,
1884
+ isAuthenticating: c,
1885
+ isInitializing: l,
1886
+ isError: _,
1887
+ error: f,
1888
+ clearError: L,
1715
1889
  accessToken: o ? o.access_token : null,
1716
1890
  // Métodos opcionais para autenticação avançada
1717
- loginWithContext: k.hasContextualLogin ? L : void 0,
1718
- loginFlexible: k.hasFlexibleLogin ? B : void 0,
1719
- loginSocial: k.hasSocialLogin ? H : void 0,
1720
- register: k.hasRegistration ? Y : void 0,
1721
- getSupportedContexts: $,
1722
- validateContext: X,
1891
+ loginWithContext: C.hasContextualLogin ? Y : void 0,
1892
+ loginFlexible: C.hasFlexibleLogin ? y : void 0,
1893
+ loginSocial: C.hasSocialLogin ? te : void 0,
1894
+ register: C.hasRegistration ? T : void 0,
1895
+ getSupportedContexts: ue,
1896
+ validateContext: se,
1897
+ // MFA / segundo fator (2 passos)
1898
+ mfaRequired: N,
1899
+ verifyMfa: typeof s.verifyMfa == "function" ? ie : void 0,
1900
+ cancelMfa: p,
1723
1901
  // Informações de contexto
1724
1902
  context: O,
1725
1903
  // Detecção de capacidades
1726
- capabilities: k
1904
+ capabilities: C
1727
1905
  };
1728
- }, Mr = () => {
1729
- const r = ve(
1730
- (s) => s.get(G.TokenManager)
1731
- ), [e, t] = f(null);
1732
- return z(() => {
1906
+ }, Kr = () => {
1907
+ const r = Ue(
1908
+ (s) => s.get(X.TokenManager)
1909
+ ), [e, t] = h(null);
1910
+ return K(() => {
1733
1911
  const s = r.getToken();
1734
1912
  s && t(s.access_token);
1735
1913
  }, []), {
1736
1914
  token: e
1737
1915
  };
1738
- }, Or = () => {
1739
- const r = ve(
1740
- (u) => u.get(G.Authenticator)
1741
- ), [e, t] = f(!1), [s, o] = f("");
1916
+ }, qr = () => {
1917
+ const r = Ue(
1918
+ (l) => l.get(X.Authenticator)
1919
+ ), [e, t] = h(!1), [s, o] = h("");
1742
1920
  return {
1743
- sendResetPasswordEmail: async (u) => {
1921
+ sendResetPasswordEmail: async (l) => {
1744
1922
  try {
1745
- return await r.sendResetPasswordEmail(u);
1746
- } catch (m) {
1747
- throw o(ee(m)), t(!0), m;
1923
+ return await r.sendResetPasswordEmail(l);
1924
+ } catch (g) {
1925
+ throw o(oe(g)), t(!0), g;
1748
1926
  }
1749
1927
  },
1750
- resetPassword: async (u, m, b) => {
1928
+ resetPassword: async (l, g, E) => {
1751
1929
  try {
1752
- return await r.resetPassword(u, m, b);
1753
- } catch (h) {
1754
- throw o(ee(h)), t(!0), h;
1930
+ return await r.resetPassword(l, g, E);
1931
+ } catch (d) {
1932
+ throw o(oe(d)), t(!0), d;
1755
1933
  }
1756
1934
  },
1757
1935
  isError: e,
@@ -1760,169 +1938,169 @@ const lr = () => Dt().user, At = "archbaseSecurityManagerStore", Nr = ({ resourc
1760
1938
  t(!1), o("");
1761
1939
  }
1762
1940
  };
1763
- }, dr = () => /* @__PURE__ */ d($t, { p: "xl", style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ R(jt, { gap: "md", children: [
1764
- /* @__PURE__ */ R(we, { gap: "sm", children: [
1765
- /* @__PURE__ */ d(Xe, { size: "sm" }),
1766
- /* @__PURE__ */ d(se, { size: "sm", c: "dimmed", children: "Carregando permissões..." })
1941
+ }, Ar = () => /* @__PURE__ */ n(Yt, { p: "xl", style: { width: "100%", height: "100%" }, children: /* @__PURE__ */ P(be, { gap: "md", children: [
1942
+ /* @__PURE__ */ P(le, { gap: "sm", children: [
1943
+ /* @__PURE__ */ n(ct, { size: "sm" }),
1944
+ /* @__PURE__ */ n(j, { size: "sm", c: "dimmed", children: "Carregando permissões..." })
1767
1945
  ] }),
1768
- /* @__PURE__ */ d(fe, { height: 40, radius: "sm" }),
1769
- /* @__PURE__ */ d(fe, { height: 200, radius: "sm" }),
1770
- /* @__PURE__ */ R(we, { gap: "md", children: [
1771
- /* @__PURE__ */ d(fe, { height: 36, width: 100, radius: "sm" }),
1772
- /* @__PURE__ */ d(fe, { height: 36, width: 100, radius: "sm" })
1946
+ /* @__PURE__ */ n(Ie, { height: 40, radius: "sm" }),
1947
+ /* @__PURE__ */ n(Ie, { height: 200, radius: "sm" }),
1948
+ /* @__PURE__ */ P(le, { gap: "md", children: [
1949
+ /* @__PURE__ */ n(Ie, { height: 36, width: 100, radius: "sm" }),
1950
+ /* @__PURE__ */ n(Ie, { height: 36, width: 100, radius: "sm" })
1773
1951
  ] })
1774
- ] }) }), $e = Re(null), Lr = ({
1952
+ ] }) }), Ke = je(null), Yr = ({
1775
1953
  children: r,
1776
1954
  user: e,
1777
1955
  onError: t
1778
1956
  }) => {
1779
- const [s, o] = f(!1), [c, l] = f(null), [i] = f([]), u = e?.isAdministrator || !1, m = pe((y) => u ? !0 : i.includes(y), [i, u]), b = pe((y) => u ? !0 : y.some((x) => i.includes(x)), [i, u]), h = pe((y) => u ? !0 : y.every((x) => i.includes(x)), [i, u]), C = pe((y) => {
1780
- l(y), y && t && t(y);
1781
- }, [t]), E = {
1957
+ const [s, o] = h(!1), [a, c] = h(null), [i] = h([]), l = e?.isAdministrator || !1, g = Se((f) => l ? !0 : i.includes(f), [i, l]), E = Se((f) => l ? !0 : f.some((S) => i.includes(S)), [i, l]), d = Se((f) => l ? !0 : f.every((S) => i.includes(S)), [i, l]), _ = Se((f) => {
1958
+ c(f), f && t && t(f);
1959
+ }, [t]), v = {
1782
1960
  user: e,
1783
1961
  isLoading: s,
1784
- hasGlobalPermission: m,
1785
- hasAnyGlobalPermission: b,
1786
- hasAllGlobalPermissions: h,
1787
- isAdmin: u,
1788
- error: c,
1789
- setError: C
1962
+ hasGlobalPermission: g,
1963
+ hasAnyGlobalPermission: E,
1964
+ hasAllGlobalPermissions: d,
1965
+ isAdmin: l,
1966
+ error: a,
1967
+ setError: _
1790
1968
  };
1791
- return /* @__PURE__ */ d($e.Provider, { value: E, children: r });
1792
- }, bt = Re(null), ur = ({
1969
+ return /* @__PURE__ */ n(Ke.Provider, { value: v, children: r });
1970
+ }, _t = je(null), Er = ({
1793
1971
  children: r,
1794
1972
  resourceName: e,
1795
1973
  resourceDescription: t,
1796
1974
  requiredPermissions: s = [],
1797
1975
  fallbackComponent: o,
1798
- loadingComponent: c,
1799
- onSecurityReady: l,
1976
+ loadingComponent: a,
1977
+ onSecurityReady: c,
1800
1978
  onError: i
1801
1979
  }) => {
1802
- const u = Ne($e);
1803
- if (!u)
1980
+ const l = Fe(Ke);
1981
+ if (!l)
1804
1982
  throw new Error("ArchbaseViewSecurityProvider deve ser usado dentro de um ArchbaseSecurityProvider");
1805
- const { user: m, isAdmin: b } = u, [h, C] = f(null), [E, y] = f(!0), [x, U] = f(null);
1806
- if (Ge.useEffect(() => {
1807
- if (!m) {
1808
- y(!1);
1983
+ const { user: g, isAdmin: E } = l, [d, _] = h(null), [v, f] = h(!0), [S, D] = h(null);
1984
+ if (ot.useEffect(() => {
1985
+ if (!g) {
1986
+ f(!1);
1809
1987
  return;
1810
1988
  }
1811
- const A = new nt(e, t, b);
1989
+ const m = new gt(e, t, E);
1812
1990
  (async () => {
1813
- y(!0);
1991
+ f(!0);
1814
1992
  try {
1815
- await A.apply(() => {
1816
- C(A), y(!1), l && l(A);
1993
+ await m.apply(() => {
1994
+ _(m), f(!1), c && c(m);
1817
1995
  });
1818
1996
  } catch {
1819
- const L = A.getError() || "Erro ao carregar permissões";
1820
- U(L), y(!1), i && i(L);
1997
+ const C = m.getError() || "Erro ao carregar permissões";
1998
+ D(C), f(!1), i && i(C);
1821
1999
  }
1822
2000
  })();
1823
- }, [e, t, m, b, l, i]), E)
1824
- return c ? /* @__PURE__ */ d(te, { children: c }) : /* @__PURE__ */ d(dr, {});
1825
- if (x)
1826
- return /* @__PURE__ */ d("div", { className: "archbase-security-error", children: /* @__PURE__ */ R("div", { children: [
2001
+ }, [e, t, g, E, c, i]), v)
2002
+ return a ? /* @__PURE__ */ n(ne, { children: a }) : /* @__PURE__ */ n(Ar, {});
2003
+ if (S)
2004
+ return /* @__PURE__ */ n("div", { className: "archbase-security-error", children: /* @__PURE__ */ P("div", { children: [
1827
2005
  "Erro ao carregar permissões: ",
1828
- x
2006
+ S
1829
2007
  ] }) });
1830
- if (!m)
1831
- return o || /* @__PURE__ */ d("div", { className: "archbase-security-no-user", children: /* @__PURE__ */ d("div", { children: "É necessário fazer login para acessar esta área" }) });
1832
- if (s.length > 0 && h && !s.every(
1833
- (P) => h.hasPermission(P)
2008
+ if (!g)
2009
+ return o || /* @__PURE__ */ n("div", { className: "archbase-security-no-user", children: /* @__PURE__ */ n("div", { children: "É necessário fazer login para acessar esta área" }) });
2010
+ if (s.length > 0 && d && !s.every(
2011
+ (R) => d.hasPermission(R)
1834
2012
  ))
1835
- return o || /* @__PURE__ */ R("div", { className: "archbase-security-access-denied", children: [
1836
- /* @__PURE__ */ d("div", { children: "Você não possui permissão para acessar esta área" }),
1837
- /* @__PURE__ */ R("small", { children: [
2013
+ return o || /* @__PURE__ */ P("div", { className: "archbase-security-access-denied", children: [
2014
+ /* @__PURE__ */ n("div", { children: "Você não possui permissão para acessar esta área" }),
2015
+ /* @__PURE__ */ P("small", { children: [
1838
2016
  "Permissões necessárias: ",
1839
2017
  s.join(", ")
1840
2018
  ] })
1841
2019
  ] });
1842
- const k = {
1843
- securityManager: h,
1844
- hasPermission: (A) => h?.hasPermission(A) || !1,
1845
- hasAnyPermission: (A) => A.some((P) => h?.hasPermission(P) || !1),
1846
- hasAllPermissions: (A) => A.every((P) => h?.hasPermission(P) || !1),
1847
- registerAction: (A, P) => {
1848
- h?.registerAction(A, P);
2020
+ const w = {
2021
+ securityManager: d,
2022
+ hasPermission: (m) => d?.hasPermission(m) || !1,
2023
+ hasAnyPermission: (m) => m.some((R) => d?.hasPermission(R) || !1),
2024
+ hasAllPermissions: (m) => m.every((R) => d?.hasPermission(R) || !1),
2025
+ registerAction: (m, R) => {
2026
+ d?.registerAction(m, R);
1849
2027
  },
1850
- isLoading: E,
1851
- error: x
2028
+ isLoading: v,
2029
+ error: S
1852
2030
  };
1853
- return /* @__PURE__ */ d(bt.Provider, { value: k, children: r });
1854
- }, hr = () => {
1855
- const r = Ne($e);
2031
+ return /* @__PURE__ */ n(_t.Provider, { value: w, children: r });
2032
+ }, xr = () => {
2033
+ const r = Fe(Ke);
1856
2034
  if (!r)
1857
2035
  throw new Error("useArchbaseSecurity deve ser usado dentro de um ArchbaseSecurityProvider");
1858
2036
  return r;
1859
- }, je = () => {
1860
- const r = Ne(bt);
2037
+ }, qe = () => {
2038
+ const r = Fe(_t);
1861
2039
  if (!r)
1862
2040
  throw new Error("useArchbaseViewSecurity deve ser usado dentro de um ArchbaseViewSecurityProvider");
1863
2041
  return r;
1864
- }, $r = (r, e) => {
1865
- const t = je(), { hasPermission: s, hasAnyPermission: o, hasAllPermissions: c, registerAction: l, securityManager: i, isLoading: u, error: m } = t;
1866
- return Ge.useEffect(() => {
1867
- r && e && (l("create", `Criar ${e}`), l("edit", `Editar ${e}`), l("delete", `Deletar ${e}`), l("view", `Visualizar ${e}`), l("list", `Listar ${e}`));
1868
- }, [r, e, l]), {
2042
+ }, Xr = (r, e) => {
2043
+ const t = qe(), { hasPermission: s, hasAnyPermission: o, hasAllPermissions: a, registerAction: c, securityManager: i, isLoading: l, error: g } = t;
2044
+ return ot.useEffect(() => {
2045
+ r && e && (c("create", `Criar ${e}`), c("edit", `Editar ${e}`), c("delete", `Deletar ${e}`), c("view", `Visualizar ${e}`), c("list", `Listar ${e}`));
2046
+ }, [r, e, c]), {
1869
2047
  hasPermission: s,
1870
2048
  hasAnyPermission: o,
1871
- hasAllPermissions: c,
1872
- registerAction: l,
2049
+ hasAllPermissions: a,
2050
+ registerAction: c,
1873
2051
  securityManager: i,
1874
2052
  canCreate: s("create"),
1875
2053
  canEdit: s("edit"),
1876
2054
  canDelete: s("delete"),
1877
2055
  canView: s("view"),
1878
2056
  canList: s("list"),
1879
- isLoading: u,
1880
- error: m
2057
+ isLoading: l,
2058
+ error: g
1881
2059
  };
1882
- }, jr = () => {
1883
- const r = je();
2060
+ }, Qr = () => {
2061
+ const r = qe();
1884
2062
  return {
1885
2063
  check: r.hasPermission,
1886
2064
  checkAny: r.hasAnyPermission,
1887
2065
  checkAll: r.hasAllPermissions,
1888
- isAdmin: hr().isAdmin
2066
+ isAdmin: xr().isAdmin
1889
2067
  };
1890
- }, Et = ({
2068
+ }, Rt = ({
1891
2069
  children: r,
1892
2070
  actionName: e,
1893
2071
  requiredPermissions: t = [],
1894
2072
  requireAll: s = !0,
1895
2073
  actionDescription: o,
1896
- fallback: c = null,
1897
- autoRegister: l = !0
2074
+ fallback: a = null,
2075
+ autoRegister: c = !0
1898
2076
  }) => {
1899
- const { hasPermission: i, hasAnyPermission: u, hasAllPermissions: m, registerAction: b } = je();
1900
- z(() => {
1901
- l && e && o && b(e, o);
1902
- }, [e, o, l, b]);
1903
- let h = !1;
1904
- return e ? h = i(e) : t.length > 0 ? h = s ? m(t) : u(t) : h = !0, h ? /* @__PURE__ */ d(te, { children: r }) : /* @__PURE__ */ d(te, { children: c });
1905
- }, Fr = ({
2077
+ const { hasPermission: i, hasAnyPermission: l, hasAllPermissions: g, registerAction: E } = qe();
2078
+ K(() => {
2079
+ c && e && o && E(e, o);
2080
+ }, [e, o, c, E]);
2081
+ let d = !1;
2082
+ return e ? d = i(e) : t.length > 0 ? d = s ? g(t) : l(t) : d = !0, d ? /* @__PURE__ */ n(ne, { children: r }) : /* @__PURE__ */ n(ne, { children: a });
2083
+ }, Zr = ({
1906
2084
  actionName: r,
1907
2085
  actionDescription: e,
1908
2086
  children: t,
1909
2087
  onClick: s,
1910
2088
  disabled: o = !1,
1911
- className: c = "",
1912
- style: l = {},
2089
+ className: a = "",
2090
+ style: c = {},
1913
2091
  variant: i = "primary",
1914
- size: u = "medium",
1915
- type: m = "button"
2092
+ size: l = "medium",
2093
+ type: g = "button"
1916
2094
  }) => {
1917
- const b = () => {
1918
- const C = "archbase-secure-btn", E = `archbase-secure-btn--${i}`, y = `archbase-secure-btn--${u}`;
1919
- return `${C} ${E} ${y} ${c}`.trim();
1920
- }, h = () => {
1921
- const C = {
2095
+ const E = () => {
2096
+ const _ = "archbase-secure-btn", v = `archbase-secure-btn--${i}`, f = `archbase-secure-btn--${l}`;
2097
+ return `${_} ${v} ${f} ${a}`.trim();
2098
+ }, d = () => {
2099
+ const _ = {
1922
2100
  small: { padding: "4px 8px", fontSize: "12px" },
1923
2101
  medium: { padding: "8px 16px", fontSize: "14px" },
1924
2102
  large: { padding: "12px 24px", fontSize: "16px" }
1925
- }, E = {
2103
+ }, v = {
1926
2104
  primary: { backgroundColor: "#007bff", color: "white" },
1927
2105
  secondary: { backgroundColor: "#6c757d", color: "white" },
1928
2106
  danger: { backgroundColor: "#dc3545", color: "white" },
@@ -1935,44 +2113,44 @@ const lr = () => Dt().user, At = "archbaseSecurityManagerStore", Nr = ({ resourc
1935
2113
  cursor: o ? "not-allowed" : "pointer",
1936
2114
  fontWeight: "500",
1937
2115
  opacity: o ? 0.6 : 1,
1938
- ...C[u],
1939
- ...E[i],
1940
- ...l
2116
+ ..._[l],
2117
+ ...v[i],
2118
+ ...c
1941
2119
  };
1942
2120
  };
1943
- return /* @__PURE__ */ d(
1944
- Et,
2121
+ return /* @__PURE__ */ n(
2122
+ Rt,
1945
2123
  {
1946
2124
  actionName: r,
1947
2125
  actionDescription: e,
1948
2126
  fallback: null,
1949
- children: /* @__PURE__ */ d(
2127
+ children: /* @__PURE__ */ n(
1950
2128
  "button",
1951
2129
  {
1952
- type: m,
2130
+ type: g,
1953
2131
  onClick: s,
1954
2132
  disabled: o,
1955
- className: b(),
1956
- style: h(),
2133
+ className: E(),
2134
+ style: d(),
1957
2135
  children: t
1958
2136
  }
1959
2137
  )
1960
2138
  }
1961
2139
  );
1962
- }, Vr = ({
2140
+ }, es = ({
1963
2141
  children: r,
1964
2142
  actionName: e,
1965
2143
  actionDescription: t,
1966
2144
  showLabel: s = !0,
1967
2145
  label: o,
1968
- fallbackText: c = "Campo não disponível",
1969
- fallbackComponent: l
1970
- }) => e ? /* @__PURE__ */ d(
1971
- Et,
2146
+ fallbackText: a = "Campo não disponível",
2147
+ fallbackComponent: c
2148
+ }) => e ? /* @__PURE__ */ n(
2149
+ Rt,
1972
2150
  {
1973
2151
  actionName: e,
1974
2152
  actionDescription: t,
1975
- fallback: l || /* @__PURE__ */ R("div", { className: "archbase-secure-field-fallback", style: {
2153
+ fallback: c || /* @__PURE__ */ P("div", { className: "archbase-secure-field-fallback", style: {
1976
2154
  padding: "8px",
1977
2155
  color: "#666",
1978
2156
  fontStyle: "italic",
@@ -1980,99 +2158,100 @@ const lr = () => Dt().user, At = "archbaseSecurityManagerStore", Nr = ({ resourc
1980
2158
  border: "1px dashed #dee2e6",
1981
2159
  borderRadius: "4px"
1982
2160
  }, children: [
1983
- s && o && /* @__PURE__ */ R("label", { style: { fontWeight: "bold" }, children: [
2161
+ s && o && /* @__PURE__ */ P("label", { style: { fontWeight: "bold" }, children: [
1984
2162
  o,
1985
2163
  ": "
1986
2164
  ] }),
1987
- c
2165
+ a
1988
2166
  ] }),
1989
2167
  children: r
1990
2168
  }
1991
- ) : /* @__PURE__ */ d(te, { children: r });
1992
- function zr(r, e) {
2169
+ ) : /* @__PURE__ */ n(ne, { children: r });
2170
+ function ts(r, e) {
1993
2171
  return function(s) {
1994
- const { resourceName: o, resourceDescription: c, requiredPermissions: l, fallbackComponent: i } = e;
1995
- return /* @__PURE__ */ d(
1996
- ur,
2172
+ const { resourceName: o, resourceDescription: a, requiredPermissions: c, fallbackComponent: i } = e;
2173
+ return /* @__PURE__ */ n(
2174
+ Er,
1997
2175
  {
1998
2176
  resourceName: o,
1999
- resourceDescription: c,
2000
- requiredPermissions: l,
2177
+ resourceDescription: a,
2178
+ requiredPermissions: c,
2001
2179
  fallbackComponent: i,
2002
- children: /* @__PURE__ */ d(r, { ...s })
2180
+ children: /* @__PURE__ */ n(r, { ...s })
2003
2181
  }
2004
2182
  );
2005
2183
  };
2006
2184
  }
2007
2185
  export {
2008
- At as ARCHBASE_SECURITY_MANAGER_STORE,
2009
- ir as AccessIntervalDto,
2010
- ct as AccessScheduleDto,
2011
- Le as AccessTokenDto,
2012
- ar as ActionDto,
2013
- Oe as ApiTokenDto,
2014
- wt as ArchbaseAccessTokenService,
2015
- yt as ArchbaseApiTokenService,
2016
- sr as ArchbaseAuthContext,
2017
- Cr as ArchbaseAuthProvider,
2018
- mt as ArchbaseGroupService,
2019
- Dr as ArchbaseLogin,
2020
- gt as ArchbaseProfileService,
2021
- Et as ArchbaseProtectedComponent,
2022
- Rr as ArchbaseResetPassword,
2023
- vt as ArchbaseResourceService,
2024
- Fr as ArchbaseSecureActionButton,
2025
- Vr as ArchbaseSecureFormField,
2026
- nt as ArchbaseSecurityManager,
2027
- Lr as ArchbaseSecurityProvider,
2028
- V as ArchbaseTenantManager,
2029
- Ze as ArchbaseUser,
2030
- ft as ArchbaseUserService,
2031
- et as ArchbaseUsernameAndPassword,
2032
- et as ArchbaseUsernameAndPasswordImpl,
2033
- ur as ArchbaseViewSecurityProvider,
2034
- Te as CONTEXT_STORAGE_KEY,
2035
- Vt as DefaultArchbaseTokenManager,
2036
- dr as DefaultSecurityLoading,
2037
- Q as ENCRYPTION_KEY,
2038
- rt as FetchError,
2039
- he as GroupDto,
2040
- _r as PermissionDto,
2041
- ue as ProfileDto,
2042
- ht as ResourceDto,
2043
- le as SecurityDto,
2044
- ae as SecurityType,
2045
- Se as TOKEN_COOKIE_NAME,
2046
- nr as TipoRecurso,
2047
- Pe as USER_NAME,
2048
- Ie as USER_NAME_AND_PASSWORD,
2049
- Ee as UserDto,
2050
- Be as UserGroupDto,
2051
- Zt as createInternalConfig,
2052
- ge as decodeJWT,
2053
- oe as epochAtSecondsFromNow,
2054
- He as epochTimeIsPast,
2055
- qt as fetchTokens,
2056
- Yt as fetchWithRefreshToken,
2057
- Wt as generateCodeChallenge,
2058
- zt as generateRandomString,
2059
- tt as getRandomInteger,
2060
- rr as getRefreshExpiresIn,
2061
- Gt as postWithXForm,
2062
- Jt as redirectToLogin,
2063
- Xt as redirectToLogout,
2064
- Br as useArchbaseAuthenticationManager,
2065
- Mr as useArchbaseGetCurrentToken,
2066
- lr as useArchbaseGetLoggedUser,
2067
- jr as useArchbasePermissionCheck,
2068
- Or as useArchbaseResetPassword,
2069
- $r as useArchbaseSecureForm,
2070
- hr as useArchbaseSecurity,
2071
- Nr as useArchbaseSecurityManager,
2072
- Ur as useArchbaseTenantManager,
2073
- je as useArchbaseViewSecurity,
2074
- Tr as useBrowserStorage,
2075
- er as validateConfig,
2076
- Qt as validateState,
2077
- zr as withArchbaseSecurity
2186
+ Dt as ARCHBASE_SECURITY_MANAGER_STORE,
2187
+ yr as AccessIntervalDto,
2188
+ vt as AccessScheduleDto,
2189
+ Je as AccessTokenDto,
2190
+ wr as ActionDto,
2191
+ Ge as ApiTokenDto,
2192
+ Tt as ArchbaseAccessTokenService,
2193
+ Pt as ArchbaseApiTokenService,
2194
+ fr as ArchbaseAuthContext,
2195
+ zr as ArchbaseAuthProvider,
2196
+ It as ArchbaseGroupService,
2197
+ Vr as ArchbaseLogin,
2198
+ Wr as ArchbaseMfaSetup,
2199
+ Ct as ArchbaseProfileService,
2200
+ Rt as ArchbaseProtectedComponent,
2201
+ Hr as ArchbaseResetPassword,
2202
+ Ut as ArchbaseResourceService,
2203
+ Zr as ArchbaseSecureActionButton,
2204
+ es as ArchbaseSecureFormField,
2205
+ gt as ArchbaseSecurityManager,
2206
+ Yr as ArchbaseSecurityProvider,
2207
+ J as ArchbaseTenantManager,
2208
+ dt as ArchbaseUser,
2209
+ St as ArchbaseUserService,
2210
+ ut as ArchbaseUsernameAndPassword,
2211
+ ut as ArchbaseUsernameAndPasswordImpl,
2212
+ Er as ArchbaseViewSecurityProvider,
2213
+ Oe as CONTEXT_STORAGE_KEY,
2214
+ Zt as DefaultArchbaseTokenManager,
2215
+ Ar as DefaultSecurityLoading,
2216
+ ae as ENCRYPTION_KEY,
2217
+ pt as FetchError,
2218
+ xe as GroupDto,
2219
+ Fr as PermissionDto,
2220
+ Ee as ProfileDto,
2221
+ xt as ResourceDto,
2222
+ ge as SecurityDto,
2223
+ fe as SecurityType,
2224
+ Me as TOKEN_COOKIE_NAME,
2225
+ gr as TipoRecurso,
2226
+ Be as USER_NAME,
2227
+ Ne as USER_NAME_AND_PASSWORD,
2228
+ Re as UserDto,
2229
+ We as UserGroupDto,
2230
+ dr as createInternalConfig,
2231
+ Pe as decodeJWT,
2232
+ he as epochAtSecondsFromNow,
2233
+ st as epochTimeIsPast,
2234
+ ir as fetchTokens,
2235
+ ar as fetchWithRefreshToken,
2236
+ tr as generateCodeChallenge,
2237
+ er as generateRandomString,
2238
+ ht as getRandomInteger,
2239
+ pr as getRefreshExpiresIn,
2240
+ sr as postWithXForm,
2241
+ or as redirectToLogin,
2242
+ cr as redirectToLogout,
2243
+ Jr as useArchbaseAuthenticationManager,
2244
+ Kr as useArchbaseGetCurrentToken,
2245
+ br as useArchbaseGetLoggedUser,
2246
+ Qr as useArchbasePermissionCheck,
2247
+ qr as useArchbaseResetPassword,
2248
+ Xr as useArchbaseSecureForm,
2249
+ xr as useArchbaseSecurity,
2250
+ Gr as useArchbaseSecurityManager,
2251
+ jr as useArchbaseTenantManager,
2252
+ qe as useArchbaseViewSecurity,
2253
+ $r as useBrowserStorage,
2254
+ ur as validateConfig,
2255
+ lr as validateState,
2256
+ ts as withArchbaseSecurity
2078
2257
  };