@wssto2/vue-core 0.5.3 → 0.6.0
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/CHANGELOG.md +32 -0
- package/README.md +3 -1
- package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js → ActionRow.vue_vue_type_script_setup_true_lang-D8NCXX4p.js} +1 -1
- package/dist/{Activity-DUjDaPfP.js → Activity-DGodh6BU.js} +4 -4
- package/dist/{Changes-B0tZO6BZ.js → Changes-38u4xY6e.js} +3 -3
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-o_Pj-JcD.js → CollectionPage.vue_vue_type_script_setup_true_lang-DPcCnrjr.js} +3 -3
- package/dist/{DateField.vue_vue_type_script_setup_true_lang-CDg31ZU7.js → DateField.vue_vue_type_script_setup_true_lang-BxUuUypB.js} +1 -1
- package/dist/{DeadLetters-IgVHao84.js → DeadLetters-CeHfhFHP.js} +6 -5
- package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js → FormGroup.vue_vue_type_script_setup_true_lang-CNb2CK01.js} +1 -1
- package/dist/{FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js → FormView.vue_vue_type_script_setup_true_lang-nyz8EkzM.js} +1 -1
- package/dist/{General-C40HxupS.js → General-BNTjPvat.js} +6 -6
- package/dist/{NewRolePage-Bhy8KJO1.js → NewRolePage-Btg7gzzH.js} +7 -6
- package/dist/{NumberField.vue_vue_type_script_setup_true_lang-BdS7BxuS.js → NumberField.vue_vue_type_script_setup_true_lang-C8um4ARi.js} +1 -1
- package/dist/PersonAccess.vue_vue_type_script_setup_true_lang-ClmawvYm.js +600 -0
- package/dist/{ProfilePage-Bf7dFzGd.js → ProfilePage-CoZyG11N.js} +9 -9
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-C6oloGIh.js → RoleEditor.vue_vue_type_script_setup_true_lang-Bs9bo0Zb.js} +30 -29
- package/dist/{RolePage-BjbvciTg.js → RolePage-CPlwZA6X.js} +37 -35
- package/dist/{RolesPage-DzVOgF4z.js → RolesPage-CdYdIHR4.js} +29 -27
- package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-DXe_iOS8.js → SegmentedField.vue_vue_type_script_setup_true_lang-B_hBL5f4.js} +1 -1
- package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js → SelectField.vue_vue_type_script_setup_true_lang-CBZhGNpm.js} +4 -4
- package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DuvSSBbX.js +126 -0
- package/dist/ServiceAccountRecord-BtaUZuWU.js +511 -0
- package/dist/ServiceAccountsList-CcRJvNaf.js +137 -0
- package/dist/{SessionList.vue_vue_type_script_setup_true_lang-PuWIK-Wa.js → SessionList.vue_vue_type_script_setup_true_lang-VvBB2EZz.js} +2 -2
- package/dist/{Sessions-CRUObe5G.js → Sessions-DkGNO1FO.js} +2 -2
- package/dist/{SettingsPage-C0qEC0uI.js → SettingsPage-D4G1HGbG.js} +8 -8
- package/dist/{SignIn-Uy0Jujzz.js → SignIn-DS1YymqD.js} +4 -4
- package/dist/{SignInPage-CpVZfrLZ.js → SignInPage-BrmL0PUw.js} +3 -3
- package/dist/{SignIns-Cp5Gx2dk.js → SignIns-C7l7IPHQ.js} +1 -1
- package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-Dj5Aq8QT.js → SwitchField.vue_vue_type_script_setup_true_lang-DXZK89A3.js} +1 -1
- package/dist/{TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js → TextField.vue_vue_type_script_setup_true_lang-CX3LdZLK.js} +2 -2
- package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-aT1P8Xqr.js → TextareaField.vue_vue_type_script_setup_true_lang-BOtn_1GT.js} +1 -1
- package/dist/{TimeField.vue_vue_type_script_setup_true_lang-jPKPE1hc.js → TimeField.vue_vue_type_script_setup_true_lang-CbflIrq6.js} +1 -1
- package/dist/{UserRecord-DbSMnTbj.js → UserRecord-Du8M_kuk.js} +25 -25
- package/dist/{UsersList-9MicE2pG.js → UsersList-D3ydQice.js} +13 -13
- package/dist/access/api.d.ts +7 -8
- package/dist/access/context.d.ts +2 -7
- package/dist/access/feature.d.ts +0 -8
- package/dist/access/index.js +47 -15
- package/dist/client/client.d.ts +2 -2
- package/dist/client/index.d.ts +1 -1
- package/dist/client/route.d.ts +22 -3
- package/dist/collection/http.d.ts +3 -2
- package/dist/collection/index.js +17 -16
- package/dist/form/index.js +586 -611
- package/dist/http-nz92KjdS.js +42 -0
- package/dist/i18n/index.js +32 -32
- package/dist/identity/index.d.ts +7 -0
- package/dist/identity/index.js +19 -15
- package/dist/identity/serviceaccounts/ApiKeysPanel.vue.d.ts +17 -0
- package/dist/identity/serviceaccounts/CreatedApiKeyDialog.vue.d.ts +53 -0
- package/dist/identity/serviceaccounts/NewApiKeyDialog.vue.d.ts +24 -0
- package/dist/identity/serviceaccounts/ServiceAccountDialog.vue.d.ts +22 -0
- package/dist/identity/serviceaccounts/ServiceAccountRecord.vue.d.ts +2 -0
- package/dist/identity/serviceaccounts/ServiceAccountsList.vue.d.ts +2 -0
- package/dist/identity/serviceaccounts/access.d.ts +4 -0
- package/dist/identity/serviceaccounts/api.d.ts +27 -0
- package/dist/identity/serviceaccounts/context.d.ts +14 -0
- package/dist/identity/serviceaccounts/feature.d.ts +23 -0
- package/dist/identity/serviceaccounts/form.d.ts +4 -0
- package/dist/identity/serviceaccounts/messages.d.ts +11 -0
- package/dist/identity/serviceaccounts/routes.d.ts +22 -0
- package/dist/{index-Ok29ucE3.js → index-Cmj9iZmT.js} +191 -168
- package/dist/{index-C-oM_Mnf.js → index-DH0MoFqg.js} +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/copyText.d.ts +5 -0
- package/dist/modules/access/routes.d.ts +13 -13
- package/dist/modules/events/routes.d.ts +4 -4
- package/dist/modules/identity/routes.d.ts +31 -31
- package/dist/modules/notification/routes.d.ts +16 -16
- package/dist/modules/serviceaccount/entities.d.ts +127 -0
- package/dist/modules/serviceaccount/routes.d.ts +58 -0
- package/dist/modules/serviceaccount/schemas.d.ts +49 -0
- package/dist/{neighbors-Bv6vnWlW.js → neighbors-DNZuGlQH.js} +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/{options-Bu0XbEpN.js → options-e_CAfvDQ.js} +3 -3
- package/dist/phone/index.js +1 -1
- package/dist/refusals-COPr15XZ.js +135 -0
- package/dist/routes-CVckt7Pj.js +19 -0
- package/dist/state-BC1Fc6U2.js +154 -0
- package/dist/{status-C78NpXyB.js → status-C8XtnK6m.js} +7 -6
- package/dist/styles.css +1 -1
- package/dist/{suggestions-ClyLexMO.js → suggestions-cPjs5gQz.js} +1 -1
- package/dist/{useCommand-DyuPTosF.js → useCommand-CfG727e8.js} +1 -1
- package/dist/{useGroupSheet-C2NyqWRp.js → useGroupSheet-BVcNDWbP.js} +2 -2
- package/dist/useRecordDialog-D65FF85F.js +30 -0
- package/package.json +2 -2
- package/dist/http-CdQowFlW.js +0 -194
- package/dist/index-BdGnA1Jh.js +0 -765
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { hasInjectionContext as k, inject as $ } from "vue";
|
|
2
|
+
import { useI18n as v } from "vue-i18n";
|
|
3
|
+
import { i as w } from "./error-Bb_dr_Ay.js";
|
|
4
|
+
import { u as g } from "./describeError-BqGAUZgX.js";
|
|
5
|
+
import { d as h } from "./context-Ch1r4fdN.js";
|
|
6
|
+
const [j, O] = h("vue-core.access"), B = {
|
|
7
|
+
viewRoles: "iam.role:view",
|
|
8
|
+
manageRoles: "iam.role:manage",
|
|
9
|
+
deleteRoles: "iam.role:delete",
|
|
10
|
+
viewAccess: "iam.user:view",
|
|
11
|
+
manageBindings: "iam.user:manage",
|
|
12
|
+
/** The same for the roles of a service account (`kind: "service"`). */
|
|
13
|
+
manageServiceBindings: "iam.serviceaccount:manage"
|
|
14
|
+
}, u = "system", d = ["view", "create", "update", "manage", "delete"], p = (s) => {
|
|
15
|
+
const t = d.indexOf(s);
|
|
16
|
+
return t === -1 ? d.length : t;
|
|
17
|
+
}, b = (s) => s.system ? u : s.module, q = (s) => s.resource === "" ? s.module : `${s.module}_${s.resource.replace(/\./g, "_")}`;
|
|
18
|
+
function P(s) {
|
|
19
|
+
const t = /* @__PURE__ */ new Map();
|
|
20
|
+
for (const [r, o] of Object.entries(s)) {
|
|
21
|
+
const i = t.get(b(o)) ?? /* @__PURE__ */ new Map(), e = q(o);
|
|
22
|
+
i.set(e, [...i.get(e) ?? [], { ...o, id: r }]), t.set(b(o), i);
|
|
23
|
+
}
|
|
24
|
+
return [...t.keys()].sort((r, o) => +(r === u) - +(o === u) || r.localeCompare(o)).map((r) => ({
|
|
25
|
+
key: r,
|
|
26
|
+
screens: [...t.get(r) ?? []].map(([o, i]) => ({ key: o, permissions: i.sort((e, a) => p(e.verb) - p(a.verb) || e.verb.localeCompare(a.verb)) })).sort((o, i) => o.key.localeCompare(i.key))
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
function R(s, t) {
|
|
30
|
+
const n = /* @__PURE__ */ new Set(), r = (o) => {
|
|
31
|
+
for (const i of s[o]?.requires ?? [])
|
|
32
|
+
n.has(i) || (n.add(i), r(i));
|
|
33
|
+
};
|
|
34
|
+
return r(t), [...n];
|
|
35
|
+
}
|
|
36
|
+
function L(s, t) {
|
|
37
|
+
const n = /* @__PURE__ */ new Set(), r = (o) => {
|
|
38
|
+
for (const [i, e] of Object.entries(s))
|
|
39
|
+
n.has(i) || !e.requires.includes(o) || (n.add(i), r(i));
|
|
40
|
+
};
|
|
41
|
+
return r(t), [...n];
|
|
42
|
+
}
|
|
43
|
+
function _(s, t, n) {
|
|
44
|
+
const r = Object.entries(s).filter(([i, e]) => e.ownable === n && i in t), o = r.find(([, i]) => i.verb === "view") ?? r[0];
|
|
45
|
+
return o ? t[o[0]] ?? null : null;
|
|
46
|
+
}
|
|
47
|
+
function C(s, t, n) {
|
|
48
|
+
for (const r of [n, ...R(s, n)]) {
|
|
49
|
+
if (r in t || !(r in s)) continue;
|
|
50
|
+
const o = s[r]?.ownable;
|
|
51
|
+
t[r] = o ? _(s, t, o) ?? "own" : "all";
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function z(s, t, n) {
|
|
55
|
+
for (const r of [n, ...L(s, n)]) delete t[r];
|
|
56
|
+
}
|
|
57
|
+
function I(s, t, n, r) {
|
|
58
|
+
for (const [o, i] of Object.entries(s)) i.ownable === n && o in t && (t[o] = r);
|
|
59
|
+
}
|
|
60
|
+
function Q(s, t) {
|
|
61
|
+
const n = new Set(Object.keys(t));
|
|
62
|
+
for (const r of n) C(s, t, r);
|
|
63
|
+
return Object.keys(t).filter((r) => !n.has(r));
|
|
64
|
+
}
|
|
65
|
+
function K() {
|
|
66
|
+
const { t: s, te: t } = v(), { catalogue: n, constraints: r } = O(), o = (e, a) => {
|
|
67
|
+
const l = e.find((c) => t(c));
|
|
68
|
+
return l ? s(l) : a;
|
|
69
|
+
}, i = (e) => o([`access.levels.${e}`, `core.access.levels.${e}`], e);
|
|
70
|
+
return {
|
|
71
|
+
roleName: (e) => e.key ? o([`access.roles.${e.key}`], e.name) : e.name,
|
|
72
|
+
permissionLabel: (e) => o(n[e]?.labelKey ? [n[e].labelKey] : [], e),
|
|
73
|
+
permissionDescription: (e) => o(n[e]?.descriptionKey ? [n[e].descriptionKey] : [], ""),
|
|
74
|
+
groupLabel: (e) => o([`access.modules.${e}`, ...e === u ? ["core.access.system_group"] : []], e),
|
|
75
|
+
screenLabel: (e) => o([`access.resources.${e}`], e),
|
|
76
|
+
ownableLabel: (e) => o([`access.ownable.${e.replace(/\./g, "_")}`], e),
|
|
77
|
+
qualifierLabel: (e) => s(`core.access.qualifier.${e}`),
|
|
78
|
+
qualifierHint: (e) => s(`core.access.qualifier_hint.${e}`),
|
|
79
|
+
qualifierNoun: (e) => s(`core.access.qualifier_noun.${e}`),
|
|
80
|
+
levelLabel: i,
|
|
81
|
+
/** A place: the level and its name (`Dealer · Auto Zagreb`); the root, which has no name, by its level. */
|
|
82
|
+
scopeLabel: (e) => e.name ? `${i(e.level)} · ${e.name}` : i(e.level),
|
|
83
|
+
/** A role's constraint as the application worded it (`Used only`); an attribute or value it gave no text for stays as `attribute: value`. */
|
|
84
|
+
constraintLabel: (e) => {
|
|
85
|
+
const a = r.find((c) => c.attribute === e.attribute)?.options ?? [], l = e.values.map((c) => a.find((f) => f.value === c)?.labelKey);
|
|
86
|
+
return l.every((c) => c !== void 0 && t(c)) ? l.map((c) => s(c)).join(", ") : `${e.attribute}: ${e.values.join(", ")}`;
|
|
87
|
+
},
|
|
88
|
+
roleKind: (e) => s(`core.access.role_kind.${e.computed ? "computed" : e.predefined ? "predefined" : "custom"}`)
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function S(s) {
|
|
92
|
+
if (!w(s) || s.code !== "authz.invalid") return [];
|
|
93
|
+
const t = s.params?.problems;
|
|
94
|
+
return Array.isArray(t) ? t.flatMap((n) => {
|
|
95
|
+
if (typeof n != "object" || n === null || typeof n.code != "string") return [];
|
|
96
|
+
const { code: r, permission: o, detail: i } = n;
|
|
97
|
+
return [{ code: r, ...typeof o == "string" ? { permission: o } : {}, ...typeof i == "string" ? { detail: i } : {} }];
|
|
98
|
+
}) : [];
|
|
99
|
+
}
|
|
100
|
+
function x() {
|
|
101
|
+
const { t: s, te: t } = v(), n = g(), r = k() ? $(j, null) : null, o = r ? K() : null;
|
|
102
|
+
return (i, e) => {
|
|
103
|
+
const a = S(i);
|
|
104
|
+
if (a.length === 0) return n(i, e);
|
|
105
|
+
const l = a.map((c) => {
|
|
106
|
+
const f = [r?.problems[c.code], `core.access.problems.${c.code}`].find((m) => m && t(m)), y = { code: c.code, permission: c.permission ? o?.permissionLabel(c.permission) ?? c.permission : "", detail: c.detail ?? "" };
|
|
107
|
+
return s(f ?? "core.access.problems.unknown", y);
|
|
108
|
+
});
|
|
109
|
+
return [...new Set(l)].join(" ");
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function T() {
|
|
113
|
+
const s = x();
|
|
114
|
+
return (t, n) => w(n) && n.code?.startsWith("authz.") ? s(n) : void 0;
|
|
115
|
+
}
|
|
116
|
+
export {
|
|
117
|
+
u as S,
|
|
118
|
+
B as a,
|
|
119
|
+
j as b,
|
|
120
|
+
S as c,
|
|
121
|
+
L as d,
|
|
122
|
+
x as e,
|
|
123
|
+
T as f,
|
|
124
|
+
O as g,
|
|
125
|
+
z as h,
|
|
126
|
+
C as i,
|
|
127
|
+
b as j,
|
|
128
|
+
Q as k,
|
|
129
|
+
q as l,
|
|
130
|
+
_ as o,
|
|
131
|
+
P as p,
|
|
132
|
+
R as r,
|
|
133
|
+
I as s,
|
|
134
|
+
K as u
|
|
135
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { route as e } from "./client/index.js";
|
|
2
|
+
const c = {
|
|
3
|
+
index: e("GET", "/v1/iam/service-accounts", { permission: "iam.serviceaccount:view" }),
|
|
4
|
+
show: e("GET", "/v1/iam/service-accounts/:id", { permission: "iam.serviceaccount:view" }),
|
|
5
|
+
create: e("POST", "/v1/iam/service-accounts", { permission: "iam.serviceaccount:manage" }),
|
|
6
|
+
update: e("PUT", "/v1/iam/service-accounts/:id", { permission: "iam.serviceaccount:manage" }),
|
|
7
|
+
deactivate: e("POST", "/v1/iam/service-accounts/:id/deactivate", { permission: "iam.serviceaccount:manage" }),
|
|
8
|
+
keys: e("GET", "/v1/iam/service-accounts/:id/keys", { permission: "iam.serviceaccount:view" }),
|
|
9
|
+
createkey: e("POST", "/v1/iam/service-accounts/:id/keys", { permission: "iam.serviceaccount:manage" }),
|
|
10
|
+
revokekey: e("POST", "/v1/iam/service-accounts/:id/keys/:keyID/revoke", { permission: "iam.serviceaccount:revoke" }),
|
|
11
|
+
bindableroles: e("GET", "/v1/iam/service-accounts/bindable-roles", { permission: "iam.serviceaccount:manage" }),
|
|
12
|
+
access: e("GET", "/v1/iam/service-accounts/:id/access", { permission: "iam.serviceaccount:view" }),
|
|
13
|
+
scopes: e("GET", "/v1/iam/service-accounts/:id/scopes", { permission: "iam.serviceaccount:manage" }),
|
|
14
|
+
bind: e("POST", "/v1/iam/service-accounts/:id/bindings", { permission: "iam.serviceaccount:manage" }),
|
|
15
|
+
unbind: e("DELETE", "/v1/iam/service-accounts/:id/bindings/:binding_id", { permission: "iam.serviceaccount:manage" })
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
c as s
|
|
19
|
+
};
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { hasInjectionContext as $, inject as z, watch as O } from "vue";
|
|
2
|
+
import { g as j } from "./platform-Dx6STiwY.js";
|
|
3
|
+
const A = [5, 8, 10, 15, 25, 50, 100], v = 25;
|
|
4
|
+
function M(e) {
|
|
5
|
+
const t = `defineCollection("${e.id}")`;
|
|
6
|
+
if (typeof e.id != "string" || e.id.trim() === "") throw new Error("defineCollection: `id` must be a non-empty string.");
|
|
7
|
+
if (!Number.isInteger(e.stateVersion) || e.stateVersion < 1) throw new Error(`${t}: \`stateVersion\` must be a positive integer.`);
|
|
8
|
+
if (typeof e.load != "function") throw new Error(`${t}: \`load\` must be a function.`);
|
|
9
|
+
if (typeof e.key != "function") throw new Error(`${t}: \`key\` must be a function.`);
|
|
10
|
+
const s = {
|
|
11
|
+
sorts: e.query?.sorts ? [...e.query.sorts] : null,
|
|
12
|
+
filters: e.query?.filters ? [...e.query.filters] : null,
|
|
13
|
+
views: e.query?.views ? [...e.query.views] : null,
|
|
14
|
+
sensitive: [...e.query?.sensitive ?? []],
|
|
15
|
+
pageSizes: [...e.query?.pageSizes ?? A],
|
|
16
|
+
search: e.query?.search ?? !0
|
|
17
|
+
};
|
|
18
|
+
if (s.pageSizes.length === 0 || s.pageSizes.some((n) => !Number.isInteger(n) || n < 1))
|
|
19
|
+
throw new Error(`${t}: \`query.pageSizes\` must list positive integers.`);
|
|
20
|
+
for (const n of s.sensitive)
|
|
21
|
+
if (s.filters && !s.filters.includes(n)) throw new Error(`${t}: sensitive filter "${n}" is not in \`query.filters\`.`);
|
|
22
|
+
const r = e.defaults ?? {}, o = r.pageSize ?? (s.pageSizes.includes(v) ? v : s.pageSizes[0]);
|
|
23
|
+
if (!s.pageSizes.includes(o)) throw new Error(`${t}: default page size ${o} is not one of ${s.pageSizes.join(", ")}.`);
|
|
24
|
+
const c = r.sort ?? null;
|
|
25
|
+
if (c !== null && s.sorts && !s.sorts.includes(c)) throw new Error(`${t}: default sort "${c}" is not in \`query.sorts\`.`);
|
|
26
|
+
const i = r.view ?? null;
|
|
27
|
+
if (i !== null && s.views && !s.views.includes(i)) throw new Error(`${t}: default view "${i}" is not in \`query.views\`.`);
|
|
28
|
+
const f = Object.fromEntries(Object.entries(r.filters ?? {}).filter(([, n]) => n !== void 0 && n !== ""));
|
|
29
|
+
for (const n of Object.keys(f))
|
|
30
|
+
if (s.filters && !s.filters.includes(n)) throw new Error(`${t}: default filter "${n}" is not in \`query.filters\`.`);
|
|
31
|
+
const l = r.page ?? 1;
|
|
32
|
+
if (!Number.isInteger(l) || l < 1) throw new Error(`${t}: default page must be a positive integer.`);
|
|
33
|
+
const a = r.direction ?? "asc";
|
|
34
|
+
if (a !== "asc" && a !== "desc") throw new Error(`${t}: default direction must be "asc" or "desc".`);
|
|
35
|
+
return Object.freeze({
|
|
36
|
+
id: e.id,
|
|
37
|
+
stateVersion: e.stateVersion,
|
|
38
|
+
load: e.load,
|
|
39
|
+
key: e.key,
|
|
40
|
+
defaults: Object.freeze({
|
|
41
|
+
page: l,
|
|
42
|
+
pageSize: o,
|
|
43
|
+
sort: c,
|
|
44
|
+
direction: a,
|
|
45
|
+
search: r.search ?? "",
|
|
46
|
+
view: i,
|
|
47
|
+
filters: Object.freeze(f)
|
|
48
|
+
}),
|
|
49
|
+
contract: Object.freeze(s),
|
|
50
|
+
migrate: e.migrate
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const U = "from";
|
|
54
|
+
function X(e, t) {
|
|
55
|
+
if (typeof e == "string") {
|
|
56
|
+
const s = new URLSearchParams(t).toString(), r = e.indexOf("#"), o = r === -1 ? e : e.slice(0, r);
|
|
57
|
+
return `${o}${o.includes("?") ? "&" : "?"}${s}${r === -1 ? "" : e.slice(r)}`;
|
|
58
|
+
}
|
|
59
|
+
return { ...e, query: { ...e.query, ...t } };
|
|
60
|
+
}
|
|
61
|
+
function P(e) {
|
|
62
|
+
if (!$()) return;
|
|
63
|
+
const t = z(j, null);
|
|
64
|
+
t && O(
|
|
65
|
+
() => {
|
|
66
|
+
const s = t.session.state.value;
|
|
67
|
+
return s.status === "authenticated" ? s.user.id : null;
|
|
68
|
+
},
|
|
69
|
+
e,
|
|
70
|
+
{ flush: "sync" }
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
const I = 4096, T = 200, _ = 32, k = 1e6, b = /^[A-Za-z0-9_.-]{1,64}$/;
|
|
74
|
+
function C(e) {
|
|
75
|
+
let t = "";
|
|
76
|
+
for (const s of new TextEncoder().encode(e)) t += String.fromCharCode(s);
|
|
77
|
+
return btoa(t).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
78
|
+
}
|
|
79
|
+
function N(e) {
|
|
80
|
+
const t = e.replace(/-/g, "+").replace(/_/g, "/"), s = atob(t.padEnd(Math.ceil(t.length / 4) * 4, "="));
|
|
81
|
+
return new TextDecoder("utf-8", { fatal: !0 }).decode(Uint8Array.from(s, (r) => r.charCodeAt(0)));
|
|
82
|
+
}
|
|
83
|
+
const m = (e) => typeof e == "object" && e !== null && !Array.isArray(e);
|
|
84
|
+
function h(e, t = T) {
|
|
85
|
+
return typeof e == "string" && e.length <= t ? e : null;
|
|
86
|
+
}
|
|
87
|
+
function d(e, t, s) {
|
|
88
|
+
const { contract: r } = e, o = s ?? e.defaults, c = typeof t.p == "number" && Number.isInteger(t.p) && t.p >= 1 && t.p <= k ? t.p : o.page, i = typeof t.l == "number" && r.pageSizes.includes(t.l) ? t.l : o.pageSize;
|
|
89
|
+
let f = o.sort;
|
|
90
|
+
const l = h(t.c, 64);
|
|
91
|
+
l !== null && (r.sorts ? r.sorts.includes(l) : b.test(l)) && (f = l);
|
|
92
|
+
const a = t.d === "asc" || t.d === "desc" ? t.d : o.direction, n = h(t.s) ?? o.search;
|
|
93
|
+
let p = o.view;
|
|
94
|
+
const u = h(t.w, 64);
|
|
95
|
+
t.w === "" ? p = null : u !== null && (r.views ? r.views.includes(u) : b.test(u)) && (p = u);
|
|
96
|
+
const S = m(t.f) ? {} : { ...o.filters };
|
|
97
|
+
if (m(t.f)) {
|
|
98
|
+
let E = 0;
|
|
99
|
+
for (const [g, w] of Object.entries(t.f)) {
|
|
100
|
+
if (++E > _) break;
|
|
101
|
+
if (!(r.filters ? r.filters.includes(g) : b.test(g)) || r.sensitive.includes(g)) continue;
|
|
102
|
+
const y = typeof w == "number" || typeof w == "boolean" ? String(w) : h(w);
|
|
103
|
+
y !== null && y !== "" && (S[g] = y);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return { page: c, pageSize: i, sort: f, direction: a, search: n, view: p, filters: S };
|
|
107
|
+
}
|
|
108
|
+
function R(e, t, s) {
|
|
109
|
+
const r = { v: e.stateVersion, p: t.page, l: t.pageSize };
|
|
110
|
+
t.sort && (r.c = t.sort), r.d = t.direction, (t.search || s && e.defaults.search !== s.search) && (r.s = t.search), (t.view || s && e.defaults.view !== s.view) && (r.w = t.view ?? "");
|
|
111
|
+
const o = Object.fromEntries(
|
|
112
|
+
Object.entries(t.filters).filter(([c, i]) => i !== void 0 && i !== "" && !e.contract.sensitive.includes(c))
|
|
113
|
+
);
|
|
114
|
+
return (Object.keys(o).length > 0 || Object.keys(e.defaults.filters).length > 0 || Object.keys(s?.filters ?? {}).length > 0) && (r.f = o), C(JSON.stringify(r));
|
|
115
|
+
}
|
|
116
|
+
function V(e, t, s) {
|
|
117
|
+
const r = t.v === void 0 ? e.stateVersion : t.v;
|
|
118
|
+
if (typeof r != "number" || !Number.isInteger(r)) return null;
|
|
119
|
+
if (r === e.stateVersion) return d(e, t, s);
|
|
120
|
+
const o = e.migrate?.(t, r);
|
|
121
|
+
return o ? d(e, o, s) : null;
|
|
122
|
+
}
|
|
123
|
+
function q(e, t, s) {
|
|
124
|
+
if (typeof t != "string" || t === "" || t.length > I) return null;
|
|
125
|
+
let r;
|
|
126
|
+
try {
|
|
127
|
+
r = JSON.parse(N(t));
|
|
128
|
+
} catch {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
return m(r) ? V(e, r, s) : null;
|
|
132
|
+
}
|
|
133
|
+
function F(e) {
|
|
134
|
+
return JSON.stringify([
|
|
135
|
+
e.page,
|
|
136
|
+
e.pageSize,
|
|
137
|
+
e.sort,
|
|
138
|
+
e.direction,
|
|
139
|
+
e.search,
|
|
140
|
+
e.view,
|
|
141
|
+
Object.entries(e.filters).sort(([t], [s]) => t.localeCompare(s))
|
|
142
|
+
]);
|
|
143
|
+
}
|
|
144
|
+
export {
|
|
145
|
+
A as D,
|
|
146
|
+
U as L,
|
|
147
|
+
M as a,
|
|
148
|
+
q as d,
|
|
149
|
+
R as e,
|
|
150
|
+
P as o,
|
|
151
|
+
F as q,
|
|
152
|
+
V as r,
|
|
153
|
+
X as w
|
|
154
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { a
|
|
2
|
-
import {
|
|
1
|
+
import { a } from "./state-BC1Fc6U2.js";
|
|
2
|
+
import { r as o } from "./http-nz92KjdS.js";
|
|
3
|
+
import { i as r } from "./index-Cmj9iZmT.js";
|
|
3
4
|
const n = ["active", "locked", "inactive", "all"];
|
|
4
|
-
function
|
|
5
|
+
function v(i) {
|
|
5
6
|
return a({
|
|
6
7
|
id: "identity.users",
|
|
7
8
|
stateVersion: 1,
|
|
@@ -25,9 +26,9 @@ function l(i) {
|
|
|
25
26
|
defaults: { sort: "name", direction: "asc", view: "active" }
|
|
26
27
|
});
|
|
27
28
|
}
|
|
28
|
-
const
|
|
29
|
+
const p = (i) => i === "locked" ? "critical" : i === "inactive" ? "neutral" : "positive";
|
|
29
30
|
export {
|
|
30
31
|
n as U,
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
p as s,
|
|
33
|
+
v as u
|
|
33
34
|
};
|