@authup/client-web-kit 1.0.0-beta.30 → 1.0.0-beta.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/components/entities/identity-provider/AIdentityProviderIcon.d.ts +1 -3
  2. package/dist/components/entities/identity-provider/AIdentityProviderIcon.d.ts.map +1 -1
  3. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignment.d.ts.map +1 -1
  4. package/dist/components/entities/index.d.ts +1 -0
  5. package/dist/components/entities/index.d.ts.map +1 -1
  6. package/dist/components/entities/permission/APermissionCheck.d.ts +3 -3
  7. package/dist/components/entities/permission/APermissionCheck.d.ts.map +1 -1
  8. package/dist/components/entities/permission/APermissionForm.d.ts.map +1 -1
  9. package/dist/components/entities/permission-policy/APermissionPolicyAssignment.d.ts +29 -0
  10. package/dist/components/entities/permission-policy/APermissionPolicyAssignment.d.ts.map +1 -0
  11. package/dist/components/entities/permission-policy/APermissionPolicyAssignments.d.ts +15 -0
  12. package/dist/components/entities/permission-policy/APermissionPolicyAssignments.d.ts.map +1 -0
  13. package/dist/components/entities/permission-policy/index.d.ts +3 -0
  14. package/dist/components/entities/permission-policy/index.d.ts.map +1 -0
  15. package/dist/components/entities/policy/APolicyBasicForm.vue.d.ts.map +1 -1
  16. package/dist/components/entities/policy/APolicyForm.vue.d.ts.map +1 -1
  17. package/dist/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue.d.ts.map +1 -1
  18. package/dist/components/entities/policy/date/ADatePolicyForm.vue.d.ts.map +1 -1
  19. package/dist/components/entities/policy/identity/AIdentityPolicyForm.vue.d.ts.map +1 -1
  20. package/dist/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue.d.ts +16 -16
  21. package/dist/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue.d.ts.map +1 -1
  22. package/dist/components/entities/policy/time/ATimePolicyForm.vue.d.ts +12 -12
  23. package/dist/components/entities/policy/time/ATimePolicyForm.vue.d.ts.map +1 -1
  24. package/dist/components/entities/user/AUserForm.d.ts +4 -4
  25. package/dist/components/entities/user/AUserForm.d.ts.map +1 -1
  26. package/dist/components/entities/user/AUserPasswordForm.d.ts +8 -5
  27. package/dist/components/entities/user/AUserPasswordForm.d.ts.map +1 -1
  28. package/dist/components/utility/entity/collection/utils/handlers.d.ts.map +1 -1
  29. package/dist/components/utility/entity/picker/types.d.ts.map +1 -1
  30. package/dist/components/utility/entity/record/types.d.ts +1 -1
  31. package/dist/components/utility/entity/record/types.d.ts.map +1 -1
  32. package/dist/components/utility/form-input-list/AFormInputList.vue.d.ts.map +1 -1
  33. package/dist/components/utility/form-input-list/AFormInputListItem.vue.d.ts.map +1 -1
  34. package/dist/components/utility/pagination/APagination.d.ts +0 -2
  35. package/dist/components/utility/pagination/APagination.d.ts.map +1 -1
  36. package/dist/components/utility/pagination/type.d.ts +1 -1
  37. package/dist/components/utility/pagination/type.d.ts.map +1 -1
  38. package/dist/components/utility/search/ASearch.d.ts +2 -2
  39. package/dist/components/utility/search/ASearch.d.ts.map +1 -1
  40. package/dist/components/workflows/Login.vue.d.ts +1 -5
  41. package/dist/components/workflows/Login.vue.d.ts.map +1 -1
  42. package/dist/components/workflows/authorize/Authorize.vue.d.ts +38 -6
  43. package/dist/components/workflows/authorize/Authorize.vue.d.ts.map +1 -1
  44. package/dist/components/workflows/authorize/AuthorizeForm.vue.d.ts +37 -1
  45. package/dist/components/workflows/authorize/AuthorizeForm.vue.d.ts.map +1 -1
  46. package/dist/components/workflows/authorize/AuthorizeScopes.vue.d.ts +37 -1
  47. package/dist/components/workflows/authorize/AuthorizeScopes.vue.d.ts.map +1 -1
  48. package/dist/composables/updated-at.d.ts +1 -1
  49. package/dist/composables/updated-at.d.ts.map +1 -1
  50. package/dist/composables/use-permission-check.d.ts +2 -2
  51. package/dist/composables/use-permission-check.d.ts.map +1 -1
  52. package/dist/core/permission-check/types.d.ts +2 -2
  53. package/dist/core/permission-check/types.d.ts.map +1 -1
  54. package/dist/core/socket-manager/install.d.ts.map +1 -1
  55. package/dist/core/store/create.d.ts +3 -2
  56. package/dist/core/store/create.d.ts.map +1 -1
  57. package/dist/core/store/types.d.ts.map +1 -1
  58. package/dist/index.css +12 -12
  59. package/dist/index.mjs +1234 -1573
  60. package/dist/index.mjs.map +1 -1
  61. package/package.json +27 -27
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import installFormControl, { VCFormGroup, VCFormInput, buildFormSubmit, buildFormInputText, buildFormGroup, buildFormInput, buildFormTextarea, buildFormInputCheckbox, VCFormInputCheckbox } from '@vuecs/form-controls';
2
2
  import { hasOwnProperty, isObject as isObject$1, merge, createMerger } from 'smob';
3
- import { hasInjectionContext, inject as inject$3, provide as provide$2, defineComponent, reactive, resolveComponent, openBlock, createBlock, withCtx, createVNode, createElementVNode, withModifiers, ref, computed, getCurrentScope, onScopeDispose, shallowRef, toRaw, isRef, isReactive, toRef, watchEffect, unref, onMounted, watch, onUnmounted, h, createElementBlock, renderSlot, createTextVNode, createCommentVNode, Fragment, renderList, mergeProps, getCurrentInstance, resolveDynamicComponent, toDisplayString, nextTick, normalizeClass, Suspense } from 'vue';
3
+ import { hasInjectionContext, inject as inject$3, provide as provide$2, defineComponent, reactive, resolveComponent, openBlock, createBlock, withCtx, createVNode, createElementVNode, withModifiers, ref, computed, getCurrentScope, onScopeDispose, shallowRef, toRaw, isRef, isReactive, toRef, watchEffect, unref, onMounted, watch, onUnmounted, h, createElementBlock, renderSlot, createTextVNode, createCommentVNode, Fragment, renderList, mergeProps, getCurrentInstance, resolveDynamicComponent, toDisplayString, normalizeClass, nextTick, Suspense } from 'vue';
4
4
  import installPagination, { buildPagination as buildPagination$1 } from '@vuecs/pagination';
5
5
  import { REALM_MASTER_NAME, EntityDefaultEventName, buildEntityChannelName, EntityType, IdentityProviderProtocol, IdentityProviderPreset, getIdentityProviderProtocolForPreset, isUserFakeEmail, buildUserFakeEmail } from '@authup/core-kit';
6
6
  import { IVuelidate, useTranslationsForNestedValidations, useTranslationsForBaseValidation as useTranslationsForBaseValidation$1, getSeverity, install as install$1 } from '@ilingo/vuelidate';
@@ -9,23 +9,119 @@ import { required, maxLength, minLength, helpers, numeric, url, maxValue, minVal
9
9
  import { SlotName, buildList } from '@vuecs/list-controls';
10
10
  import { Client, CookieName, ClientAuthenticationHook, ClientAuthenticationHookEventName } from '@authup/core-http-kit';
11
11
  import { defineStore, storeToRefs as storeToRefs$1 } from 'pinia';
12
- import { PermissionMemoryRepository, PermissionChecker, PolicyEngine, PolicyData, BuiltInPolicyType, TimePolicyInterval, isIntervalForDayOfWeek, isIntervalForDayOfMonth, isIntervalForDayOfYear } from '@authup/access';
12
+ import { PermissionMemoryProvider, PermissionEvaluator, PolicyEngine, PolicyData, BuiltInPolicyType, TimePolicyInterval, isIntervalForDayOfWeek, isIntervalForDayOfMonth, isIntervalForDayOfYear } from '@authup/access';
13
13
  import { OAuth2Error, isOpenIDProviderMetadata, deserializeOAuth2Scope } from '@authup/specs';
14
14
  import { hasOwnProperty as hasOwnProperty$1, extendObject, isObject as isObject$2, createNanoID, isBCryptHash, base64URLEncode } from '@authup/kit';
15
15
  import { SortDirection } from 'rapiq';
16
16
  import { ClientManager, buildEventFullName, EventNameSuffix } from '@authup/core-realtime-kit';
17
17
  import Cookie from 'universal-cookie';
18
18
 
19
+ /*
20
+ * Copyright (c) 2024-2024.
21
+ * Author Peter Placzek (tada5hi)
22
+ * For the full copyright and license information,
23
+ * view the LICENSE file that was distributed with this source code.
24
+ */ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
25
+ /**
26
+ * Convert string to property path array.
27
+ *
28
+ * @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
29
+ * @see https://github.com/chaijs/pathval
30
+ *
31
+ * @param segment
32
+ */ function pathToArray(segment) {
33
+ const str = segment.replace(/([^\\])\[/g, '$1.[');
34
+ const parts = str.match(/(\\\.|[^.]+?)+/g);
35
+ if (!parts) {
36
+ return [];
37
+ }
38
+ const result = [];
39
+ for(let i = 0; i < parts.length; i++){
40
+ if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
41
+ continue;
42
+ }
43
+ const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
44
+ if (regex) {
45
+ result.push(regex[1]);
46
+ } else {
47
+ result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
48
+ }
49
+ }
50
+ return result;
51
+ }
52
+
19
53
  /*
20
54
  * Copyright (c) 2024.
21
55
  * Author Peter Placzek (tada5hi)
22
56
  * For the full copyright and license information,
23
57
  * view the LICENSE file that was distributed with this source code.
24
- */ var Character$1;
58
+ */ var Character;
25
59
  (function(Character) {
26
60
  Character["WILDCARD"] = "*";
27
61
  Character["GLOBSTAR"] = "**";
28
- })(Character$1 || (Character$1 = {}));
62
+ })(Character || (Character = {}));
63
+
64
+ /*
65
+ * Copyright (c) 2024.
66
+ * Author Peter Placzek (tada5hi)
67
+ * For the full copyright and license information,
68
+ * view the LICENSE file that was distributed with this source code.
69
+ */ function isObject(input) {
70
+ return !!input && typeof input === 'object' && !Array.isArray(input);
71
+ }
72
+
73
+ function getPathValue(data, path) {
74
+ const parts = Array.isArray(path) ? path : pathToArray(path);
75
+ let res;
76
+ let temp = data;
77
+ let index = 0;
78
+ while(index < parts.length){
79
+ if (temp === null || typeof temp === 'undefined') {
80
+ break;
81
+ }
82
+ if (parts[index] in Object(temp)) {
83
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
84
+ // @ts-expect-error
85
+ temp = temp[parts[index]];
86
+ } else {
87
+ break;
88
+ }
89
+ if (index === parts.length - 1) {
90
+ res = temp;
91
+ }
92
+ index++;
93
+ }
94
+ return res;
95
+ }
96
+
97
+ const NUMBER_REGEX = /^\d+$/;
98
+ function setPathValue(data, path, value) {
99
+ const parts = Array.isArray(path) ? path : pathToArray(path);
100
+ let temp = data;
101
+ let index = 0;
102
+ while(index < parts.length){
103
+ /* istanbul ignore next */ if (!Array.isArray(temp) && !isObject(temp)) {
104
+ break;
105
+ }
106
+ const key = parts[index];
107
+ // [foo, '0']
108
+ if (typeof temp[key] === 'undefined') {
109
+ const match = NUMBER_REGEX.test(key);
110
+ if (match) {
111
+ temp[key] = [];
112
+ } else {
113
+ temp[key] = {};
114
+ }
115
+ }
116
+ if (index === parts.length - 1) {
117
+ temp[key] = value;
118
+ break;
119
+ }
120
+ index++;
121
+ temp = temp[key];
122
+ }
123
+ return data;
124
+ }
29
125
 
30
126
  class Store {
31
127
  /**
@@ -182,41 +278,31 @@ var _export_sfc = (sfc, props) => {
182
278
 
183
279
  const _hoisted_1$d = ["disabled"];
184
280
  function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
185
- const _component_VCFormInput = resolveComponent("VCFormInput");
186
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
187
- const _component_IVuelidate = resolveComponent("IVuelidate");
188
- return openBlock(), createBlock(_component_IVuelidate, {
189
- validation: _ctx.vuelidate.name
190
- }, {
191
- default: withCtx((props) => [
192
- createVNode(_component_VCFormGroup, {
193
- "validation-messages": props.data,
194
- "validation-severity": props.severity
195
- }, {
196
- default: withCtx(() => [
197
- createVNode(_component_VCFormInput, {
198
- modelValue: _ctx.vuelidate.name.$model,
199
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.name.$model = $event),
200
- onChange: _ctx.handleUpdated
201
- }, {
202
- groupAppend: withCtx(() => [
203
- createElementVNode("button", {
204
- disabled: _ctx.disabled,
205
- type: "button",
206
- class: "btn btn-xs btn-warning",
207
- onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.handleDeleted && _ctx.handleDeleted(...args), ["prevent"]))
208
- }, [..._cache[2] || (_cache[2] = [
209
- createElementVNode("i", { class: "fa fa-minus" }, null, -1)
210
- ])], 8, _hoisted_1$d)
211
- ]),
212
- _: 1
213
- }, 8, ["modelValue", "onChange"])
214
- ]),
215
- _: 1
216
- }, 8, ["validation-messages", "validation-severity"])
217
- ]),
218
- _: 1
219
- }, 8, ["validation"]);
281
+ const _component_VCFormInput = resolveComponent("VCFormInput");
282
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
283
+ const _component_IVuelidate = resolveComponent("IVuelidate");
284
+ return openBlock(), createBlock(_component_IVuelidate, { validation: _ctx.vuelidate.name }, {
285
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
286
+ "validation-messages": props.data,
287
+ "validation-severity": props.severity
288
+ }, {
289
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
290
+ modelValue: _ctx.vuelidate.name.$model,
291
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.name.$model = $event),
292
+ onChange: _ctx.handleUpdated
293
+ }, {
294
+ groupAppend: withCtx(() => [createElementVNode("button", {
295
+ disabled: _ctx.disabled,
296
+ type: "button",
297
+ class: "btn btn-xs btn-warning",
298
+ onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.handleDeleted && _ctx.handleDeleted(...args), ["prevent"]))
299
+ }, [..._cache[2] || (_cache[2] = [createElementVNode("i", { class: "fa fa-minus" }, null, -1)])], 8, _hoisted_1$d)]),
300
+ _: 1
301
+ }, 8, ["modelValue", "onChange"])]),
302
+ _: 1
303
+ }, 8, ["validation-messages", "validation-severity"])]),
304
+ _: 1
305
+ }, 8, ["validation"]);
220
306
  }
221
307
  var AFormInputListItem = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$h]]);
222
308
 
@@ -256,7 +342,7 @@ function injectHTTPClientAuthenticationHook(app) {
256
342
  function hasHTTPClientAuthenticationHook(app) {
257
343
  try {
258
344
  return !!injectHTTPClientAuthenticationHook(app);
259
- } catch (e) {
345
+ } catch {
260
346
  return false;
261
347
  }
262
348
  }
@@ -437,8 +523,8 @@ function createStore(context) {
437
523
  context.dispatcher.emit(StoreDispatcherEventName.REALM_MANAGEMENT_UPDATED, input);
438
524
  };
439
525
  // --------------------------------------------------------------------
440
- const permissionRepository = new PermissionMemoryRepository();
441
- const permissionChecker = new PermissionChecker({
526
+ const permissionRepository = new PermissionMemoryProvider();
527
+ const permissionEvaluator = new PermissionEvaluator({
442
528
  repository: permissionRepository,
443
529
  policyEngine: new PolicyEngine()
444
530
  });
@@ -461,7 +547,7 @@ function createStore(context) {
461
547
  token: tempAccessToken
462
548
  });
463
549
  }
464
- } catch (e) {
550
+ } catch {
465
551
  // ...
466
552
  }
467
553
  try {
@@ -470,7 +556,7 @@ function createStore(context) {
470
556
  token: tempRefreshToken
471
557
  });
472
558
  }
473
- } catch (e) {
559
+ } catch {
474
560
  // ...
475
561
  }
476
562
  };
@@ -515,9 +601,11 @@ function createStore(context) {
515
601
  }
516
602
  if (response.permissions) {
517
603
  permissionRepository.setMany(response.permissions.map((permission)=>({
518
- name: permission.name,
519
- realmId: permission.realm_id,
520
- clientId: permission.client_id
604
+ permission: {
605
+ name: permission.name,
606
+ realm_id: permission.realm_id,
607
+ client_id: permission.client_id
608
+ }
521
609
  })));
522
610
  }
523
611
  });
@@ -592,6 +680,15 @@ function createStore(context) {
592
680
  await resolveUser();
593
681
  context.dispatcher.emit(StoreDispatcherEventName.LOGGED_IN);
594
682
  };
683
+ const exchangeAuthorizationCode = async (code)=>{
684
+ const response = await client.token.createWithAuthorizationCode({
685
+ code
686
+ });
687
+ await cleanup();
688
+ applyTokenGrantResponse(response);
689
+ await resolveToken();
690
+ await resolveUser();
691
+ };
595
692
  const logout = async ()=>{
596
693
  context.dispatcher.emit(StoreDispatcherEventName.LOGGING_OUT);
597
694
  await cleanup();
@@ -600,11 +697,12 @@ function createStore(context) {
600
697
  return {
601
698
  cookiesRead,
602
699
  setCookiesRead,
603
- permissionChecker,
700
+ permissionEvaluator,
604
701
  login,
605
702
  logout,
606
703
  loggedIn,
607
704
  resolve,
705
+ exchangeAuthorizationCode,
608
706
  applyTokenGrantResponse,
609
707
  accessToken,
610
708
  setAccessToken,
@@ -766,12 +864,12 @@ function installStore(app, options = {}) {
766
864
  store.setCookiesRead(true);
767
865
  const keys = Object.values(CookieName);
768
866
  let value;
769
- for(let i = 0; i < keys.length; i++){
770
- value = cookieGet(keys[i]);
867
+ for (const key of keys){
868
+ value = cookieGet(key);
771
869
  if (!value) {
772
870
  continue;
773
871
  }
774
- switch(keys[i]){
872
+ switch(key){
775
873
  case CookieName.ACCESS_TOKEN:
776
874
  if (!store.accessToken) {
777
875
  store.setAccessToken(value);
@@ -866,10 +964,10 @@ function storeToRefs(store) {
866
964
  store = toRaw(store);
867
965
  const refs = {};
868
966
  const keys = Object.keys(store);
869
- for(let i = 0; i < keys.length; i++){
870
- const value = store[keys[i]];
967
+ for (const key of keys){
968
+ const value = store[key];
871
969
  if (isRef(value) || isReactive(value)) {
872
- refs[keys[i]] = toRef(store, keys[i]);
970
+ refs[key] = toRef(store, key);
873
971
  }
874
972
  }
875
973
  return refs;
@@ -941,7 +1039,7 @@ function provideHTTPClient(client, app) {
941
1039
  function hasHTTPClient(app) {
942
1040
  try {
943
1041
  return !!injectHTTPClient(app);
944
- } catch (e) {
1042
+ } catch {
945
1043
  return false;
946
1044
  }
947
1045
  }
@@ -978,12 +1076,12 @@ function installHTTPClient(app, options = {}) {
978
1076
  * @param input
979
1077
  */ function assignFormProperties(src, input = {}) {
980
1078
  const keys = Object.keys(input);
981
- for(let i = 0; i < keys.length; i++){
982
- const value = input[keys[i]];
1079
+ for (const key of keys){
1080
+ const value = input[key];
983
1081
  if (value === null) {
984
- src[keys[i]] = '';
1082
+ src[key] = '';
985
1083
  } else {
986
- src[keys[i]] = value;
1084
+ src[key] = value;
987
1085
  }
988
1086
  }
989
1087
  return src;
@@ -1050,113 +1148,6 @@ var TranslatorTranslationDefaultKey = /*#__PURE__*/ function(TranslatorTranslati
1050
1148
  return TranslatorTranslationDefaultKey;
1051
1149
  }({});
1052
1150
 
1053
- /*
1054
- * Copyright (c) 2024-2024.
1055
- * Author Peter Placzek (tada5hi)
1056
- * For the full copyright and license information,
1057
- * view the LICENSE file that was distributed with this source code.
1058
- */ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
1059
- /**
1060
- * Convert string to property path array.
1061
- *
1062
- * @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
1063
- * @see https://github.com/chaijs/pathval
1064
- *
1065
- * @param segment
1066
- */ function pathToArray(segment) {
1067
- const str = segment.replace(/([^\\])\[/g, '$1.[');
1068
- const parts = str.match(/(\\\.|[^.]+?)+/g);
1069
- if (!parts) {
1070
- return [];
1071
- }
1072
- const result = [];
1073
- for(let i = 0; i < parts.length; i++){
1074
- if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
1075
- continue;
1076
- }
1077
- const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
1078
- if (regex) {
1079
- result.push(regex[1]);
1080
- } else {
1081
- result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
1082
- }
1083
- }
1084
- return result;
1085
- }
1086
-
1087
- /*
1088
- * Copyright (c) 2024.
1089
- * Author Peter Placzek (tada5hi)
1090
- * For the full copyright and license information,
1091
- * view the LICENSE file that was distributed with this source code.
1092
- */ var Character;
1093
- (function(Character) {
1094
- Character["WILDCARD"] = "*";
1095
- Character["GLOBSTAR"] = "**";
1096
- })(Character || (Character = {}));
1097
-
1098
- /*
1099
- * Copyright (c) 2024.
1100
- * Author Peter Placzek (tada5hi)
1101
- * For the full copyright and license information,
1102
- * view the LICENSE file that was distributed with this source code.
1103
- */ function isObject(input) {
1104
- return !!input && typeof input === 'object' && !Array.isArray(input);
1105
- }
1106
-
1107
- function getPathValue(data, path) {
1108
- const parts = Array.isArray(path) ? path : pathToArray(path);
1109
- let res;
1110
- let temp = data;
1111
- let index = 0;
1112
- while(index < parts.length){
1113
- if (temp === null || typeof temp === 'undefined') {
1114
- break;
1115
- }
1116
- if (parts[index] in Object(temp)) {
1117
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
1118
- // @ts-expect-error
1119
- temp = temp[parts[index]];
1120
- } else {
1121
- break;
1122
- }
1123
- if (index === parts.length - 1) {
1124
- res = temp;
1125
- }
1126
- index++;
1127
- }
1128
- return res;
1129
- }
1130
-
1131
- const NUMBER_REGEX = /^\d+$/;
1132
- function setPathValue(data, path, value) {
1133
- const parts = Array.isArray(path) ? path : pathToArray(path);
1134
- let temp = data;
1135
- let index = 0;
1136
- while(index < parts.length){
1137
- /* istanbul ignore next */ if (!Array.isArray(temp) && !isObject(temp)) {
1138
- break;
1139
- }
1140
- const key = parts[index];
1141
- // [foo, '0']
1142
- if (typeof temp[key] === 'undefined') {
1143
- const match = NUMBER_REGEX.test(key);
1144
- if (match) {
1145
- temp[key] = [];
1146
- } else {
1147
- temp[key] = {};
1148
- }
1149
- }
1150
- if (index === parts.length - 1) {
1151
- temp[key] = value;
1152
- break;
1153
- }
1154
- index++;
1155
- temp = temp[key];
1156
- }
1157
- return data;
1158
- }
1159
-
1160
1151
  class MemoryStore {
1161
1152
  data;
1162
1153
  constructor(options){
@@ -1328,9 +1319,9 @@ function useTranslationsForNestedValidation(validation) {
1328
1319
 
1329
1320
  function useTranslationsForGroup(group, elements) {
1330
1321
  const output = {};
1331
- for(let i = 0; i < elements.length; i++){
1332
- output[elements[i].key] = useTranslation({
1333
- ...elements[i],
1322
+ for (const element of elements){
1323
+ output[element.key] = useTranslation({
1324
+ ...element,
1334
1325
  group
1335
1326
  });
1336
1327
  }
@@ -1399,9 +1390,9 @@ function extractVuelidateResultsFromChild(vuelidate, child, keys) {
1399
1390
  }
1400
1391
  const childKeys = keys ?? Object.keys(childResults).filter((key)=>!key.startsWith('$'));
1401
1392
  const result = {};
1402
- for(let i = 0; i < childKeys.length; i++){
1403
- if (hasOwnProperty$1(childResults, childKeys[i])) {
1404
- result[childKeys[i]] = childResults[childKeys[i]].$model;
1393
+ for (const childKey of childKeys){
1394
+ if (hasOwnProperty$1(childResults, childKey)) {
1395
+ result[childKey] = childResults[childKey].$model;
1405
1396
  }
1406
1397
  }
1407
1398
  return result;
@@ -1570,12 +1561,12 @@ function createPermissionCheckerReactiveFn(ctx = {}) {
1570
1561
  const input = ctx.input || new PolicyData();
1571
1562
  input.set(BuiltInPolicyType.IDENTITY, identity);
1572
1563
  try {
1573
- computePromise = store.permissionChecker.preCheckOneOf({
1564
+ computePromise = store.permissionEvaluator.preEvaluateOneOf({
1574
1565
  ...ctx,
1575
1566
  input
1576
1567
  }).then(()=>true).catch(()=>false);
1577
1568
  outcome = await computePromise;
1578
- } catch (e) {
1569
+ } catch {
1579
1570
  outcome = false;
1580
1571
  } finally{
1581
1572
  computePromise = undefined;
@@ -1623,12 +1614,13 @@ function installSocketManager(app, options) {
1623
1614
  const { accessToken } = storeToRefs(store);
1624
1615
  const manager = new ClientManager({
1625
1616
  url: options.baseURL,
1626
- token: ()=>accessToken.value
1617
+ token: ()=>accessToken.value ?? undefined
1627
1618
  });
1628
1619
  const oldValue = ref();
1629
1620
  store.$subscribe((mutation, state)=>{
1630
- if (state.accessToken !== oldValue.value) {
1631
- oldValue.value = state.accessToken;
1621
+ const normalizedToken = state.accessToken ?? undefined;
1622
+ if (normalizedToken !== oldValue.value) {
1623
+ oldValue.value = normalizedToken;
1632
1624
  Promise.resolve().then(()=>manager.reconnect());
1633
1625
  }
1634
1626
  });
@@ -1757,7 +1749,7 @@ var _sfc_main$h = defineComponent({
1757
1749
  };
1758
1750
  const handleUpdated = (id, value)=>{
1759
1751
  const index = items.value.findIndex((el)=>el.id === id);
1760
- if (index > -1) {
1752
+ if (index > -1 && items.value[index]) {
1761
1753
  items.value[index].value = value;
1762
1754
  }
1763
1755
  emitUpdated();
@@ -1790,60 +1782,46 @@ const _hoisted_4$7 = { class: "ms-auto" };
1790
1782
  const _hoisted_5$4 = ["disabled"];
1791
1783
  const _hoisted_6$3 = { class: "d-flex flex-column gap-1" };
1792
1784
  function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
1793
- const _component_ATranslationDefault = resolveComponent("ATranslationDefault");
1794
- const _component_AFormInputListItem = resolveComponent("AFormInputListItem");
1795
- return openBlock(), createElementBlock("div", _hoisted_1$c, [
1796
- createElementVNode("div", _hoisted_2$b, [
1797
- createElementVNode("div", _hoisted_3$9, [
1798
- renderSlot(_ctx.$slots, "label", {}, () => [
1799
- _cache[1] || (_cache[1] = createTextVNode(" Names ", -1))
1800
- ])
1801
- ]),
1802
- createElementVNode("div", _hoisted_4$7, [
1803
- createElementVNode("button", {
1804
- class: "btn btn-xs btn-primary",
1805
- type: "button",
1806
- disabled: !_ctx.canAdd,
1807
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.add(), ["prevent"]))
1808
- }, [
1809
- _cache[2] || (_cache[2] = createElementVNode("i", { class: "fa fa-plus" }, null, -1)),
1810
- _cache[3] || (_cache[3] = createTextVNode()),
1811
- createVNode(_component_ATranslationDefault, { name: "add" })
1812
- ], 8, _hoisted_5$4)
1813
- ])
1814
- ]),
1815
- createElementVNode("div", _hoisted_6$3, [
1816
- _ctx.items.length === 0 ? renderSlot(_ctx.$slots, "noItems", { key: 0 }, () => [
1817
- _cache[4] || (_cache[4] = createElementVNode("div", { class: "alert alert-sm alert-info" }, " The form list has no items yet ", -1))
1818
- ]) : createCommentVNode("", true),
1819
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
1820
- return renderSlot(_ctx.$slots, "default", {
1821
- key: item.id,
1822
- item,
1823
- updated: _ctx.handleUpdated,
1824
- deleted: _ctx.handleDeleted
1825
- }, () => [
1826
- (openBlock(), createBlock(_component_AFormInputListItem, {
1827
- key: item.id,
1828
- disabled: !_ctx.canDrop,
1829
- name: item.value,
1830
- onUpdated: (input) => {
1831
- _ctx.handleUpdated(item.id, input);
1832
- },
1833
- onDeleted: () => {
1834
- _ctx.handleDeleted(item.id);
1835
- }
1836
- }, null, 8, ["disabled", "name", "onUpdated", "onDeleted"]))
1837
- ]);
1838
- }), 128))
1839
- ])
1840
- ]);
1785
+ const _component_ATranslationDefault = resolveComponent("ATranslationDefault");
1786
+ const _component_AFormInputListItem = resolveComponent("AFormInputListItem");
1787
+ return openBlock(), createElementBlock("div", _hoisted_1$c, [createElementVNode("div", _hoisted_2$b, [createElementVNode("div", _hoisted_3$9, [renderSlot(_ctx.$slots, "label", {}, () => [_cache[1] || (_cache[1] = createTextVNode(" Names ", -1))])]), createElementVNode("div", _hoisted_4$7, [createElementVNode("button", {
1788
+ class: "btn btn-xs btn-primary",
1789
+ type: "button",
1790
+ disabled: !_ctx.canAdd,
1791
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.add(), ["prevent"]))
1792
+ }, [
1793
+ _cache[2] || (_cache[2] = createElementVNode("i", { class: "fa fa-plus" }, null, -1)),
1794
+ _cache[3] || (_cache[3] = createTextVNode()),
1795
+ createVNode(_component_ATranslationDefault, { name: "add" })
1796
+ ], 8, _hoisted_5$4)])]), createElementVNode("div", _hoisted_6$3, [_ctx.items.length === 0 ? renderSlot(_ctx.$slots, "noItems", { key: 0 }, () => [_cache[4] || (_cache[4] = createElementVNode("div", { class: "alert alert-sm alert-info" }, " The form list has no items yet ", -1))]) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
1797
+ return renderSlot(_ctx.$slots, "default", {
1798
+ key: item.id,
1799
+ item,
1800
+ updated: _ctx.handleUpdated,
1801
+ deleted: _ctx.handleDeleted
1802
+ }, () => [(openBlock(), createBlock(_component_AFormInputListItem, {
1803
+ key: item.id,
1804
+ disabled: !_ctx.canDrop,
1805
+ name: item.value,
1806
+ onUpdated: (input) => {
1807
+ _ctx.handleUpdated(item.id, input);
1808
+ },
1809
+ onDeleted: () => {
1810
+ _ctx.handleDeleted(item.id);
1811
+ }
1812
+ }, null, 8, [
1813
+ "disabled",
1814
+ "name",
1815
+ "onUpdated",
1816
+ "onDeleted"
1817
+ ]))]);
1818
+ }), 128))])]);
1841
1819
  }
1842
1820
  var AFormInputList = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$g]]);
1843
1821
 
1844
1822
  function buildPagination(ctx) {
1845
1823
  return buildPagination$1({
1846
- load: (pagination)=>ctx.load({
1824
+ load: (pagination)=>ctx.load?.({
1847
1825
  ...ctx.meta,
1848
1826
  pagination: {
1849
1827
  limit: pagination.limit,
@@ -1869,8 +1847,7 @@ const APagination = defineComponent({
1869
1847
  type: Boolean
1870
1848
  },
1871
1849
  load: {
1872
- type: Function,
1873
- required: true
1850
+ type: Function
1874
1851
  }
1875
1852
  },
1876
1853
  setup (props) {
@@ -1890,11 +1867,8 @@ const APagination = defineComponent({
1890
1867
  * view the LICENSE file that was distributed with this source code.
1891
1868
  */ function defineEntityCollectionVEmitOptions() {
1892
1869
  return {
1893
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1894
1870
  created: (_item)=>true,
1895
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1896
1871
  deleted: (_item)=>true,
1897
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1898
1872
  updated: (_item)=>true
1899
1873
  };
1900
1874
  }
@@ -2002,9 +1976,12 @@ function buildEntityCollectionUpdatedHandler(items, cb) {
2002
1976
  }
2003
1977
  const index = items.value.findIndex((el)=>el.id === item.id);
2004
1978
  if (index !== -1) {
2005
- const keys = Object.keys(item);
2006
- for(let i = 0; i < keys.length; i++){
2007
- items.value[index][keys[i]] = item[keys[i]];
1979
+ const el = items.value[index];
1980
+ if (el) {
1981
+ const keys = Object.keys(item);
1982
+ for (const key of keys){
1983
+ el[key] = item[key];
1984
+ }
2008
1985
  }
2009
1986
  if (cb) {
2010
1987
  cb(item);
@@ -2019,8 +1996,9 @@ function buildEntityCollectionDeletedHandler(items, cb) {
2019
1996
  }
2020
1997
  const index = items.value.findIndex((el)=>el.id === item.id);
2021
1998
  if (index !== -1) {
2022
- if (cb) {
2023
- cb(items.value[index]);
1999
+ const el = items.value[index];
2000
+ if (cb && el) {
2001
+ cb(el);
2024
2002
  }
2025
2003
  return items.value.splice(index, 1).pop();
2026
2004
  }
@@ -2386,15 +2364,10 @@ function buildEntityVSlotProps(input) {
2386
2364
  }
2387
2365
  function defineEntityVEmitOptions() {
2388
2366
  return {
2389
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2390
2367
  failed: (_item)=>true,
2391
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2392
2368
  created: (_item)=>true,
2393
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2394
2369
  deleted: (_item)=>true,
2395
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2396
2370
  updated: (_item)=>true,
2397
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2398
2371
  resolved: (_item)=>true
2399
2372
  };
2400
2373
  }
@@ -2875,7 +2848,6 @@ const ASearch = defineComponent({
2875
2848
 
2876
2849
  function defineEntityPickerVEmitOptions() {
2877
2850
  return {
2878
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2879
2851
  change: (_values)=>true,
2880
2852
  ...defineEntityCollectionVEmitOptions()
2881
2853
  };
@@ -2984,7 +2956,7 @@ function defineEntityPicker({ props, setup, component }) {
2984
2956
  return content;
2985
2957
  }
2986
2958
  return renderToggleButton({
2987
- value: items.value.indexOf(slotProps.data.id) !== -1,
2959
+ value: items.value.includes(slotProps.data.id),
2988
2960
  isBusy: slotProps.busy,
2989
2961
  changed () {
2990
2962
  toggle(slotProps.data.id);
@@ -3205,10 +3177,10 @@ const LanguageSwitcherDropdown = defineComponent({
3205
3177
  ];
3206
3178
  const elements = computed(()=>{
3207
3179
  const output = [];
3208
- for(let i = 0; i < locales.length; i++){
3180
+ for (const locale_ of locales){
3209
3181
  output.push({
3210
- value: locales[i],
3211
- active: locale.value === locales[i]
3182
+ value: locale_,
3183
+ active: locale.value === locale_
3212
3184
  });
3213
3185
  }
3214
3186
  return output;
@@ -3746,8 +3718,8 @@ var _sfc_main$g = defineComponent({
3746
3718
  const _hoisted_1$b = { class: "row" };
3747
3719
  const _hoisted_2$a = { class: "col" };
3748
3720
  const _hoisted_3$8 = {
3749
- key: 0,
3750
- class: "text-danger font-weight-bold"
3721
+ key: 0,
3722
+ class: "text-danger font-weight-bold"
3751
3723
  };
3752
3724
  const _hoisted_4$6 = { class: "row" };
3753
3725
  const _hoisted_5$3 = { class: "col" };
@@ -3755,269 +3727,187 @@ const _hoisted_6$2 = { class: "col" };
3755
3727
  const _hoisted_7$1 = { class: "col" };
3756
3728
  const _hoisted_8$1 = { class: "col" };
3757
3729
  function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
3758
- const _component_VCFormInput = resolveComponent("VCFormInput");
3759
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
3760
- const _component_IVuelidate = resolveComponent("IVuelidate");
3761
- const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
3762
- const _component_ARealmPicker = resolveComponent("ARealmPicker");
3763
- const _component_AFormInputList = resolveComponent("AFormInputList");
3764
- const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
3765
- const _component_AFormSubmit = resolveComponent("AFormSubmit");
3766
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
3767
- createElementVNode("div", _hoisted_2$a, [
3768
- _ctx.data ? (openBlock(), createBlock(_component_VCFormGroup, { key: 0 }, {
3769
- label: withCtx(() => [..._cache[10] || (_cache[10] = [
3770
- createTextVNode(" ID ", -1)
3771
- ])]),
3772
- default: withCtx(() => [
3773
- createVNode(_component_VCFormInput, {
3774
- "model-value": _ctx.data.id,
3775
- disabled: true
3776
- }, null, 8, ["model-value"])
3777
- ]),
3778
- _: 1
3779
- })) : createCommentVNode("", true),
3780
- createVNode(_component_IVuelidate, {
3781
- validation: _ctx.vuelidate.name
3782
- }, {
3783
- default: withCtx((props) => [
3784
- createVNode(_component_VCFormGroup, {
3785
- "validation-messages": props.data,
3786
- "validation-severity": props.severity
3787
- }, {
3788
- label: withCtx(() => [
3789
- createTextVNode(toDisplayString(_ctx.translationsDefault.name), 1)
3790
- ]),
3791
- default: withCtx(() => [
3792
- createVNode(_component_VCFormInput, {
3793
- modelValue: _ctx.vuelidate.name.$model,
3794
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event),
3795
- disabled: _ctx.isNameFixed
3796
- }, null, 8, ["modelValue", "disabled"])
3797
- ]),
3798
- _: 1
3799
- }, 8, ["validation-messages", "validation-severity"]),
3800
- createElementVNode("small", null, toDisplayString(_ctx.translationsClient.nameHint), 1)
3801
- ]),
3802
- _: 1
3803
- }, 8, ["validation"]),
3804
- _cache[14] || (_cache[14] = createElementVNode("hr", null, null, -1)),
3805
- createVNode(_component_IVuelidate, {
3806
- validation: _ctx.vuelidate.display_name
3807
- }, {
3808
- default: withCtx((props) => [
3809
- createVNode(_component_VCFormGroup, {
3810
- "validation-messages": props.data,
3811
- "validation-severity": props.severity
3812
- }, {
3813
- label: withCtx(() => [
3814
- createTextVNode(toDisplayString(_ctx.translationsDefault.displayName), 1)
3815
- ]),
3816
- default: withCtx(() => [
3817
- createVNode(_component_VCFormInput, {
3818
- modelValue: _ctx.vuelidate.display_name.$model,
3819
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.display_name.$model = $event),
3820
- disabled: _ctx.isNameFixed
3821
- }, null, 8, ["modelValue", "disabled"])
3822
- ]),
3823
- _: 1
3824
- }, 8, ["validation-messages", "validation-severity"])
3825
- ]),
3826
- _: 1
3827
- }, 8, ["validation"]),
3828
- _cache[15] || (_cache[15] = createElementVNode("hr", null, null, -1)),
3829
- createVNode(_component_IVuelidate, {
3830
- validation: _ctx.vuelidate.secret
3831
- }, {
3832
- default: withCtx((props) => [
3833
- createVNode(_component_VCFormGroup, {
3834
- "validation-messages": props.data,
3835
- "validation-severity": props.severity
3836
- }, {
3837
- label: withCtx(() => [
3838
- createTextVNode(toDisplayString(_ctx.translationsDefault.secret) + " ", 1),
3839
- _ctx.isSecretHashed ? (openBlock(), createElementBlock("span", _hoisted_3$8, [..._cache[11] || (_cache[11] = [
3840
- createElementVNode("i", { class: "fa fa-exclamation-triangle" }, null, -1)
3841
- ])])) : createCommentVNode("", true)
3842
- ]),
3843
- default: withCtx(() => [
3844
- createVNode(_component_VCFormInput, {
3845
- modelValue: _ctx.vuelidate.secret.$model,
3846
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.secret.$model = $event),
3847
- disabled: !_ctx.vuelidate.is_confidential.$model
3848
- }, {
3849
- groupAppend: withCtx(() => [
3850
- createElementVNode("button", {
3851
- class: "btn",
3852
- type: "button",
3853
- onClick: _cache[2] || (_cache[2] = withModifiers(() => _ctx.vuelidate.secret.$model = _ctx.generateSecret(), ["prevent"]))
3854
- }, [..._cache[12] || (_cache[12] = [
3855
- createElementVNode("i", { class: "fa fa-refresh" }, null, -1)
3856
- ])])
3857
- ]),
3858
- _: 1
3859
- }, 8, ["modelValue", "disabled"])
3860
- ]),
3861
- _: 1
3862
- }, 8, ["validation-messages", "validation-severity"])
3863
- ]),
3864
- _: 1
3865
- }, 8, ["validation"]),
3866
- createElementVNode("div", _hoisted_4$6, [
3867
- createElementVNode("div", _hoisted_5$3, [
3868
- createVNode(_component_IVuelidate, {
3869
- validation: _ctx.vuelidate.is_confidential
3870
- }, {
3871
- default: withCtx((props) => [
3872
- createVNode(_component_VCFormGroup, {
3873
- "validation-messages": props.data,
3874
- "validation-severity": props.severity
3875
- }, {
3876
- default: withCtx(() => [
3877
- createVNode(_component_VCFormInputCheckbox, {
3878
- modelValue: _ctx.vuelidate.is_confidential.$model,
3879
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.vuelidate.is_confidential.$model = $event),
3880
- "group-class": "form-switch",
3881
- label: true,
3882
- "label-content": _ctx.translationsClient.isConfidential.value
3883
- }, null, 8, ["modelValue", "label-content"])
3884
- ]),
3885
- _: 1
3886
- }, 8, ["validation-messages", "validation-severity"])
3887
- ]),
3888
- _: 1
3889
- }, 8, ["validation"])
3890
- ]),
3891
- createElementVNode("div", _hoisted_6$2, [
3892
- createVNode(_component_IVuelidate, {
3893
- validation: _ctx.vuelidate.secret_hashed
3894
- }, {
3895
- default: withCtx((props) => [
3896
- createVNode(_component_VCFormGroup, {
3897
- "validation-messages": props.data,
3898
- "validation-severity": props.severity
3899
- }, {
3900
- default: withCtx(() => [
3901
- createVNode(_component_VCFormInputCheckbox, {
3902
- modelValue: _ctx.vuelidate.secret_hashed.$model,
3903
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.vuelidate.secret_hashed.$model = $event),
3904
- "group-class": "form-switch",
3905
- label: true,
3906
- "label-content": _ctx.translationsClient.hashSecret.value
3907
- }, null, 8, ["modelValue", "label-content"])
3908
- ]),
3909
- _: 1
3910
- }, 8, ["validation-messages", "validation-severity"])
3911
- ]),
3912
- _: 1
3913
- }, 8, ["validation"])
3914
- ]),
3915
- createElementVNode("div", _hoisted_7$1, [
3916
- createVNode(_component_IVuelidate, {
3917
- validation: _ctx.vuelidate.active
3918
- }, {
3919
- default: withCtx((props) => [
3920
- createVNode(_component_VCFormGroup, {
3921
- "validation-messages": props.data,
3922
- "validation-severity": props.severity
3923
- }, {
3924
- default: withCtx(() => [
3925
- createVNode(_component_VCFormInputCheckbox, {
3926
- modelValue: _ctx.vuelidate.active.$model,
3927
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => _ctx.vuelidate.active.$model = $event),
3928
- "group-class": "form-switch",
3929
- label: true,
3930
- "label-content": _ctx.translationsClient.isActive.value
3931
- }, null, 8, ["modelValue", "label-content"])
3932
- ]),
3933
- _: 1
3934
- }, 8, ["validation-messages", "validation-severity"])
3935
- ]),
3936
- _: 1
3937
- }, 8, ["validation"])
3938
- ])
3939
- ]),
3940
- !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
3941
- _cache[13] || (_cache[13] = createElementVNode("hr", null, null, -1)),
3942
- createVNode(_component_IVuelidate, {
3943
- validation: _ctx.vuelidate.realm_id
3944
- }, {
3945
- default: withCtx((props) => [
3946
- createVNode(_component_VCFormGroup, {
3947
- "validation-messages": props.data,
3948
- "validation-severity": props.severity
3949
- }, {
3950
- label: withCtx(() => [
3951
- createTextVNode(toDisplayString(_ctx.translationsDefault.realm), 1)
3952
- ]),
3953
- default: withCtx(() => [
3954
- createVNode(_component_ARealmPicker, {
3955
- value: _ctx.vuelidate.realm_id.$model,
3956
- onChange: _cache[7] || (_cache[7] = (input) => {
3957
- _ctx.vuelidate.realm_id.$model = input.length > 0 ? input[0] : "";
3958
- })
3959
- }, null, 8, ["value"])
3960
- ]),
3961
- _: 1
3962
- }, 8, ["validation-messages", "validation-severity"])
3963
- ]),
3964
- _: 1
3965
- }, 8, ["validation"])
3966
- ], 64)) : createCommentVNode("", true)
3967
- ]),
3968
- createElementVNode("div", _hoisted_8$1, [
3969
- createVNode(_component_AFormInputList, {
3970
- names: _ctx.redirectUris,
3971
- onChanged: _cache[8] || (_cache[8] = (value) => {
3972
- if (value.length === 0) {
3973
- _ctx.vuelidate.redirect_uri.$model = "";
3974
- return;
3975
- }
3976
- _ctx.vuelidate.redirect_uri.$model = value.join(",");
3977
- })
3978
- }, {
3979
- label: withCtx(() => [
3980
- createTextVNode(toDisplayString(_ctx.translationsDefault.redirectUris), 1)
3981
- ]),
3982
- _: 1
3983
- }, 8, ["names"]),
3984
- createElementVNode("small", null, toDisplayString(_ctx.translationsClient.redirectURIHint), 1),
3985
- _cache[16] || (_cache[16] = createElementVNode("hr", null, null, -1)),
3986
- createVNode(_component_IVuelidate, {
3987
- validation: _ctx.vuelidate.description
3988
- }, {
3989
- default: withCtx((props) => [
3990
- createVNode(_component_VCFormGroup, {
3991
- "validation-messages": props.data,
3992
- "validation-severity": props.severity
3993
- }, {
3994
- label: withCtx(() => [
3995
- createTextVNode(toDisplayString(_ctx.translationsDefault.description), 1)
3996
- ]),
3997
- default: withCtx(() => [
3998
- createVNode(_component_VCFormTextarea, {
3999
- modelValue: _ctx.vuelidate.description.$model,
4000
- "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => _ctx.vuelidate.description.$model = $event),
4001
- rows: "7"
4002
- }, null, 8, ["modelValue"])
4003
- ]),
4004
- _: 1
4005
- }, 8, ["validation-messages", "validation-severity"]),
4006
- createElementVNode("small", null, toDisplayString(_ctx.translationsClient.descriptionHint), 1)
4007
- ]),
4008
- _: 1
4009
- }, 8, ["validation"]),
4010
- _cache[17] || (_cache[17] = createElementVNode("hr", null, null, -1)),
4011
- createElementVNode("div", null, [
4012
- createVNode(_component_AFormSubmit, {
4013
- "is-busy": _ctx.isBusy,
4014
- "is-editing": _ctx.isEditing,
4015
- "is-invalid": _ctx.vuelidate.$invalid,
4016
- onSubmit: _ctx.submit
4017
- }, null, 8, ["is-busy", "is-editing", "is-invalid", "onSubmit"])
4018
- ])
4019
- ])
4020
- ]);
3730
+ const _component_VCFormInput = resolveComponent("VCFormInput");
3731
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
3732
+ const _component_IVuelidate = resolveComponent("IVuelidate");
3733
+ const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
3734
+ const _component_ARealmPicker = resolveComponent("ARealmPicker");
3735
+ const _component_AFormInputList = resolveComponent("AFormInputList");
3736
+ const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
3737
+ const _component_AFormSubmit = resolveComponent("AFormSubmit");
3738
+ return openBlock(), createElementBlock("div", _hoisted_1$b, [createElementVNode("div", _hoisted_2$a, [
3739
+ _ctx.data ? (openBlock(), createBlock(_component_VCFormGroup, { key: 0 }, {
3740
+ label: withCtx(() => [..._cache[10] || (_cache[10] = [createTextVNode(" ID ", -1)])]),
3741
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
3742
+ "model-value": _ctx.data.id,
3743
+ disabled: true
3744
+ }, null, 8, ["model-value"])]),
3745
+ _: 1
3746
+ })) : createCommentVNode("", true),
3747
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.name }, {
3748
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
3749
+ "validation-messages": props.data,
3750
+ "validation-severity": props.severity
3751
+ }, {
3752
+ label: withCtx(() => [createTextVNode(toDisplayString(_ctx.translationsDefault.name), 1)]),
3753
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
3754
+ modelValue: _ctx.vuelidate.name.$model,
3755
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event),
3756
+ disabled: _ctx.isNameFixed
3757
+ }, null, 8, ["modelValue", "disabled"])]),
3758
+ _: 1
3759
+ }, 8, ["validation-messages", "validation-severity"]), createElementVNode("small", null, toDisplayString(_ctx.translationsClient.nameHint), 1)]),
3760
+ _: 1
3761
+ }, 8, ["validation"]),
3762
+ _cache[14] || (_cache[14] = createElementVNode("hr", null, null, -1)),
3763
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.display_name }, {
3764
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
3765
+ "validation-messages": props.data,
3766
+ "validation-severity": props.severity
3767
+ }, {
3768
+ label: withCtx(() => [createTextVNode(toDisplayString(_ctx.translationsDefault.displayName), 1)]),
3769
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
3770
+ modelValue: _ctx.vuelidate.display_name.$model,
3771
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.display_name.$model = $event),
3772
+ disabled: _ctx.isNameFixed
3773
+ }, null, 8, ["modelValue", "disabled"])]),
3774
+ _: 1
3775
+ }, 8, ["validation-messages", "validation-severity"])]),
3776
+ _: 1
3777
+ }, 8, ["validation"]),
3778
+ _cache[15] || (_cache[15] = createElementVNode("hr", null, null, -1)),
3779
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.secret }, {
3780
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
3781
+ "validation-messages": props.data,
3782
+ "validation-severity": props.severity
3783
+ }, {
3784
+ label: withCtx(() => [createTextVNode(toDisplayString(_ctx.translationsDefault.secret) + " ", 1), _ctx.isSecretHashed ? (openBlock(), createElementBlock("span", _hoisted_3$8, [..._cache[11] || (_cache[11] = [createElementVNode("i", { class: "fa fa-exclamation-triangle" }, null, -1)])])) : createCommentVNode("", true)]),
3785
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
3786
+ modelValue: _ctx.vuelidate.secret.$model,
3787
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.secret.$model = $event),
3788
+ disabled: !_ctx.vuelidate.is_confidential.$model
3789
+ }, {
3790
+ groupAppend: withCtx(() => [createElementVNode("button", {
3791
+ class: "btn",
3792
+ type: "button",
3793
+ onClick: _cache[2] || (_cache[2] = withModifiers(() => _ctx.vuelidate.secret.$model = _ctx.generateSecret(), ["prevent"]))
3794
+ }, [..._cache[12] || (_cache[12] = [createElementVNode("i", { class: "fa fa-refresh" }, null, -1)])])]),
3795
+ _: 1
3796
+ }, 8, ["modelValue", "disabled"])]),
3797
+ _: 1
3798
+ }, 8, ["validation-messages", "validation-severity"])]),
3799
+ _: 1
3800
+ }, 8, ["validation"]),
3801
+ createElementVNode("div", _hoisted_4$6, [
3802
+ createElementVNode("div", _hoisted_5$3, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.is_confidential }, {
3803
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
3804
+ "validation-messages": props.data,
3805
+ "validation-severity": props.severity
3806
+ }, {
3807
+ default: withCtx(() => [createVNode(_component_VCFormInputCheckbox, {
3808
+ modelValue: _ctx.vuelidate.is_confidential.$model,
3809
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.vuelidate.is_confidential.$model = $event),
3810
+ "group-class": "form-switch",
3811
+ label: true,
3812
+ "label-content": _ctx.translationsClient.isConfidential.value
3813
+ }, null, 8, ["modelValue", "label-content"])]),
3814
+ _: 1
3815
+ }, 8, ["validation-messages", "validation-severity"])]),
3816
+ _: 1
3817
+ }, 8, ["validation"])]),
3818
+ createElementVNode("div", _hoisted_6$2, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.secret_hashed }, {
3819
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
3820
+ "validation-messages": props.data,
3821
+ "validation-severity": props.severity
3822
+ }, {
3823
+ default: withCtx(() => [createVNode(_component_VCFormInputCheckbox, {
3824
+ modelValue: _ctx.vuelidate.secret_hashed.$model,
3825
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.vuelidate.secret_hashed.$model = $event),
3826
+ "group-class": "form-switch",
3827
+ label: true,
3828
+ "label-content": _ctx.translationsClient.hashSecret.value
3829
+ }, null, 8, ["modelValue", "label-content"])]),
3830
+ _: 1
3831
+ }, 8, ["validation-messages", "validation-severity"])]),
3832
+ _: 1
3833
+ }, 8, ["validation"])]),
3834
+ createElementVNode("div", _hoisted_7$1, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.active }, {
3835
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
3836
+ "validation-messages": props.data,
3837
+ "validation-severity": props.severity
3838
+ }, {
3839
+ default: withCtx(() => [createVNode(_component_VCFormInputCheckbox, {
3840
+ modelValue: _ctx.vuelidate.active.$model,
3841
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => _ctx.vuelidate.active.$model = $event),
3842
+ "group-class": "form-switch",
3843
+ label: true,
3844
+ "label-content": _ctx.translationsClient.isActive.value
3845
+ }, null, 8, ["modelValue", "label-content"])]),
3846
+ _: 1
3847
+ }, 8, ["validation-messages", "validation-severity"])]),
3848
+ _: 1
3849
+ }, 8, ["validation"])])
3850
+ ]),
3851
+ !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [_cache[13] || (_cache[13] = createElementVNode("hr", null, null, -1)), createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.realm_id }, {
3852
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
3853
+ "validation-messages": props.data,
3854
+ "validation-severity": props.severity
3855
+ }, {
3856
+ label: withCtx(() => [createTextVNode(toDisplayString(_ctx.translationsDefault.realm), 1)]),
3857
+ default: withCtx(() => [createVNode(_component_ARealmPicker, {
3858
+ value: _ctx.vuelidate.realm_id.$model,
3859
+ onChange: _cache[7] || (_cache[7] = (input) => {
3860
+ _ctx.vuelidate.realm_id.$model = input.length > 0 ? input[0] ?? "" : "";
3861
+ })
3862
+ }, null, 8, ["value"])]),
3863
+ _: 1
3864
+ }, 8, ["validation-messages", "validation-severity"])]),
3865
+ _: 1
3866
+ }, 8, ["validation"])], 64)) : createCommentVNode("", true)
3867
+ ]), createElementVNode("div", _hoisted_8$1, [
3868
+ createVNode(_component_AFormInputList, {
3869
+ names: _ctx.redirectUris,
3870
+ onChanged: _cache[8] || (_cache[8] = (value) => {
3871
+ if (value.length === 0) {
3872
+ _ctx.vuelidate.redirect_uri.$model = "";
3873
+ return;
3874
+ }
3875
+ _ctx.vuelidate.redirect_uri.$model = value.join(",");
3876
+ })
3877
+ }, {
3878
+ label: withCtx(() => [createTextVNode(toDisplayString(_ctx.translationsDefault.redirectUris), 1)]),
3879
+ _: 1
3880
+ }, 8, ["names"]),
3881
+ createElementVNode("small", null, toDisplayString(_ctx.translationsClient.redirectURIHint), 1),
3882
+ _cache[16] || (_cache[16] = createElementVNode("hr", null, null, -1)),
3883
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.description }, {
3884
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
3885
+ "validation-messages": props.data,
3886
+ "validation-severity": props.severity
3887
+ }, {
3888
+ label: withCtx(() => [createTextVNode(toDisplayString(_ctx.translationsDefault.description), 1)]),
3889
+ default: withCtx(() => [createVNode(_component_VCFormTextarea, {
3890
+ modelValue: _ctx.vuelidate.description.$model,
3891
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => _ctx.vuelidate.description.$model = $event),
3892
+ rows: "7"
3893
+ }, null, 8, ["modelValue"])]),
3894
+ _: 1
3895
+ }, 8, ["validation-messages", "validation-severity"]), createElementVNode("small", null, toDisplayString(_ctx.translationsClient.descriptionHint), 1)]),
3896
+ _: 1
3897
+ }, 8, ["validation"]),
3898
+ _cache[17] || (_cache[17] = createElementVNode("hr", null, null, -1)),
3899
+ createElementVNode("div", null, [createVNode(_component_AFormSubmit, {
3900
+ "is-busy": _ctx.isBusy,
3901
+ "is-editing": _ctx.isEditing,
3902
+ "is-invalid": _ctx.vuelidate.$invalid,
3903
+ onSubmit: _ctx.submit
3904
+ }, null, 8, [
3905
+ "is-busy",
3906
+ "is-editing",
3907
+ "is-invalid",
3908
+ "onSubmit"
3909
+ ])])
3910
+ ])]);
4021
3911
  }
4022
3912
  var AClientForm = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$f]]);
4023
3913
 
@@ -4130,145 +4020,28 @@ const APermissionCheck = defineComponent({
4130
4020
  String,
4131
4021
  Array
4132
4022
  ],
4133
- required: true
4134
- },
4135
- input: {
4136
- type: Object
4137
- },
4138
- options: {
4139
- type: Object
4140
- }
4141
- },
4142
- setup (props, { slots }) {
4143
- const fn = createPermissionCheckerReactiveFn();
4144
- const isPermitted = computed(()=>fn({
4145
- name: props.name,
4146
- input: new PolicyData(props.input),
4147
- options: props.options
4148
- }));
4149
- return ()=>{
4150
- if (isPermitted.value && hasNormalizedSlot(SlotName.DEFAULT, slots)) {
4151
- return normalizeSlot(SlotName.DEFAULT, {}, slots);
4152
- }
4153
- return [];
4154
- };
4155
- }
4156
- });
4157
-
4158
- const APolicies = defineComponent({
4159
- props: defineEntityCollectionVProps(),
4160
- emits: defineEntityCollectionVEmitOptions(),
4161
- slots: Object,
4162
- setup (props, setup) {
4163
- const { render } = defineEntityCollectionManager({
4164
- type: `${EntityType.POLICY}`,
4165
- props,
4166
- setup
4167
- });
4168
- const translationName = useTranslation({
4169
- group: TranslatorTranslationGroup.DEFAULT,
4170
- key: TranslatorTranslationDefaultKey.POLICIES
4171
- });
4172
- const translation = useTranslation({
4173
- group: TranslatorTranslationGroup.VUECS,
4174
- key: TranslatorTranslationVuecsKey.NO_MORE,
4175
- data: {
4176
- name: translationName
4177
- }
4178
- });
4179
- return ()=>render({
4180
- noMore: {
4181
- content: translation.value
4182
- }
4183
- });
4184
- }
4185
- });
4186
-
4187
- const APolicyParentAssignment = defineComponent({
4188
- props: {
4189
- entityId: {
4190
- type: String,
4191
- required: true
4192
- },
4193
- entity: {
4194
- type: Object
4195
- },
4196
- parentId: {
4197
- type: String,
4198
- required: true
4199
- }
4200
- },
4201
- emits: defineEntityVEmitOptions(),
4202
- async setup (props, setup) {
4203
- const manager = defineEntityManager({
4204
- type: `${EntityType.POLICY}`,
4205
- setup,
4206
- socket: {
4207
- processEvent (event) {
4208
- return event.data.id === props.entityId;
4209
- }
4210
- },
4211
- props: {
4212
- entity: props.entity,
4213
- entityId: props.entityId
4214
- }
4215
- });
4216
- await manager.resolve({
4217
- query: {
4218
- filters: {
4219
- id: props.entityId
4220
- }
4221
- }
4222
- });
4223
- return ()=>renderToggleButton({
4224
- changed: (value)=>{
4225
- if (!manager.data.value) {
4226
- return;
4227
- }
4228
- if (value) {
4229
- manager.data.value.parent_id = props.parentId;
4230
- } else {
4231
- manager.data.value.parent_id = null;
4232
- if (manager.data.value.parent) {
4233
- manager.data.value.parent = null;
4234
- }
4235
- }
4236
- manager.update(manager.data.value);
4237
- },
4238
- value: !!manager.data.value && manager.data.value.parent_id === props.parentId,
4239
- isBusy: manager.busy.value
4240
- });
4241
- }
4242
- });
4243
-
4244
- const APolicyPicker = defineComponent({
4245
- props: {
4246
- parentId: {
4247
- type: String
4248
- },
4249
- ...defineEntityPickerVProps()
4250
- },
4251
- emits: defineEntityPickerVEmitOptions(),
4252
- slots: Object,
4253
- setup (props, { slots, ...setup }) {
4254
- const { render } = defineEntityPicker({
4255
- component: APolicies,
4256
- props,
4257
- setup: {
4258
- ...setup,
4259
- slots: {
4260
- ...props.parentId ? {
4261
- [SlotName.ITEM_ACTIONS]: (slotProps)=>h(APolicyParentAssignment, {
4262
- entity: slotProps.data,
4263
- entityId: slotProps.data.id,
4264
- parentId: props.parentId
4265
- })
4266
- } : {},
4267
- ...slots
4268
- }
4023
+ required: true
4024
+ },
4025
+ input: {
4026
+ type: Object
4027
+ },
4028
+ options: {
4029
+ type: Object
4030
+ }
4031
+ },
4032
+ setup (props, { slots }) {
4033
+ const fn = createPermissionCheckerReactiveFn();
4034
+ const isPermitted = computed(()=>fn({
4035
+ name: props.name,
4036
+ input: new PolicyData(props.input),
4037
+ options: props.options
4038
+ }));
4039
+ return ()=>{
4040
+ if (isPermitted.value && hasNormalizedSlot(SlotName.DEFAULT, slots)) {
4041
+ return normalizeSlot(SlotName.DEFAULT, {}, slots);
4269
4042
  }
4270
- });
4271
- return ()=>render();
4043
+ return [];
4044
+ };
4272
4045
  }
4273
4046
  });
4274
4047
 
@@ -4280,14 +4053,12 @@ const APermissionForm = defineComponent({
4280
4053
  },
4281
4054
  emits: defineEntityVEmitOptions(),
4282
4055
  setup (props, ctx) {
4283
- const policyPickerVNode = ref(null);
4284
4056
  const busy = ref(false);
4285
4057
  const form = reactive({
4286
4058
  name: '',
4287
4059
  display_name: '',
4288
4060
  description: '',
4289
- realm_id: '',
4290
- policy_id: ''
4061
+ realm_id: ''
4291
4062
  });
4292
4063
  const $v = useVuelidate({
4293
4064
  name: {
@@ -4304,8 +4075,7 @@ const APermissionForm = defineComponent({
4304
4075
  minLength: minLength(5),
4305
4076
  maxLength: maxLength(4096)
4306
4077
  },
4307
- realm_id: {},
4308
- policy_id: {}
4078
+ realm_id: {}
4309
4079
  }, form);
4310
4080
  const store = injectStore();
4311
4081
  const storeRefs = storeToRefs(store);
@@ -4353,9 +4123,6 @@ const APermissionForm = defineComponent({
4353
4123
  {
4354
4124
  key: TranslatorTranslationDefaultKey.DESCRIPTION
4355
4125
  },
4356
- {
4357
- key: TranslatorTranslationDefaultKey.POLICY
4358
- },
4359
4126
  {
4360
4127
  key: TranslatorTranslationDefaultKey.REALM
4361
4128
  }
@@ -4414,38 +4181,11 @@ const APermissionForm = defineComponent({
4414
4181
  value: $v.value.realm_id.$model,
4415
4182
  multiple: false,
4416
4183
  onChange (input) {
4417
- $v.value.realm_id.$model = input.length > 0 ? input[0] : '';
4418
- $v.value.policy_id.$model = '';
4419
- nextTick(()=>{
4420
- if (policyPickerVNode.value) {
4421
- policyPickerVNode.value.load();
4422
- }
4423
- });
4184
+ $v.value.realm_id.$model = input.length > 0 ? input[0] ?? '' : '';
4424
4185
  }
4425
4186
  })
4426
4187
  }));
4427
4188
  }
4428
- children.push(buildFormGroup({
4429
- validationMessages: translationsValidation.policy_id.value,
4430
- validationSeverity: getVuelidateSeverity($v.value.policy_id),
4431
- label: true,
4432
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.POLICY].value,
4433
- content: h(APolicyPicker, {
4434
- ref: policyPickerVNode,
4435
- value: $v.value.policy_id.$model,
4436
- onChange: (input)=>{
4437
- $v.value.policy_id.$model = input.length > 0 ? input[0] : '';
4438
- },
4439
- query: {
4440
- filters: {
4441
- parent_id: null,
4442
- ...form.realm_id ? {
4443
- realm_id: form.realm_id
4444
- } : {}
4445
- }
4446
- }
4447
- })
4448
- }));
4449
4189
  children.push(buildFormSubmitWithTranslations({
4450
4190
  submit,
4451
4191
  busy,
@@ -4641,7 +4381,7 @@ const ARoleForm = defineComponent({
4641
4381
  content: h(ARealmPicker, {
4642
4382
  value: $v.value.realm_id.$model,
4643
4383
  onChange: (input)=>{
4644
- $v.value.realm_id.$model = input.length > 0 ? input[0] : '';
4384
+ $v.value.realm_id.$model = input.length > 0 ? input[0] ?? '' : '';
4645
4385
  }
4646
4386
  })
4647
4387
  }));
@@ -4973,7 +4713,7 @@ const AScopeForm = defineComponent({
4973
4713
  content: h(ARealmPicker, {
4974
4714
  value: $v.value.realm_id.$model,
4975
4715
  onChange: (input)=>{
4976
- $v.value.realm_id.$model = input.length > 0 ? input[0] : '';
4716
+ $v.value.realm_id.$model = input.length > 0 ? input[0] ?? '' : '';
4977
4717
  }
4978
4718
  })
4979
4719
  }));
@@ -5957,64 +5697,33 @@ const _hoisted_3$7 = ["onClick"];
5957
5697
  const _hoisted_4$5 = { class: "d-flex flex-row gap-2 flex-wrap" };
5958
5698
  const _hoisted_5$2 = ["onClick"];
5959
5699
  function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
5960
- const _component_AIdentityProviderProtocol = resolveComponent("AIdentityProviderProtocol");
5961
- const _component_AIdentityProviderPreset = resolveComponent("AIdentityProviderPreset");
5962
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
5963
- createElementVNode("div", null, [
5964
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "Protocols", -1)),
5965
- createElementVNode("div", _hoisted_2$9, [
5966
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.protocols, (item, key) => {
5967
- return openBlock(), createBlock(_component_AIdentityProviderProtocol, {
5968
- key,
5969
- id: item
5970
- }, {
5971
- default: withCtx((props) => [
5972
- createElementVNode("div", {
5973
- class: normalizeClass([{ "active": item === _ctx.protocol && !_ctx.preset }, "d-flex flex-column gap-1 text-center identity-provider-picker-item"]),
5974
- onClick: withModifiers(($event) => _ctx.pickProtocol(item), ["prevent"])
5975
- }, [
5976
- createElementVNode("div", null, [
5977
- createElementVNode("i", {
5978
- class: normalizeClass(["fa-2x", props.icon])
5979
- }, null, 2)
5980
- ]),
5981
- createElementVNode("div", null, toDisplayString(props.name), 1)
5982
- ], 10, _hoisted_3$7)
5983
- ]),
5984
- _: 2
5985
- }, 1032, ["id"]);
5986
- }), 128))
5987
- ])
5988
- ]),
5989
- createElementVNode("div", null, [
5990
- _cache[1] || (_cache[1] = createElementVNode("h6", null, "Presets", -1)),
5991
- createElementVNode("div", _hoisted_4$5, [
5992
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.presets, (item, key) => {
5993
- return openBlock(), createBlock(_component_AIdentityProviderPreset, {
5994
- key,
5995
- id: item
5996
- }, {
5997
- default: withCtx((props) => [
5998
- createElementVNode("div", {
5999
- class: normalizeClass([{ "active": item === _ctx.preset }, "d-flex flex-column gap-1 text-center identity-provider-picker-item"]),
6000
- onClick: withModifiers(($event) => _ctx.pickPreset(item), ["prevent"])
6001
- }, [
6002
- createElementVNode("div", null, [
6003
- createElementVNode("i", {
6004
- class: normalizeClass(["fa-2x", props.icon])
6005
- }, null, 2)
6006
- ]),
6007
- createElementVNode("div", null, toDisplayString(props.name), 1)
6008
- ], 10, _hoisted_5$2)
6009
- ]),
6010
- _: 2
6011
- }, 1032, ["id"]);
6012
- }), 128))
6013
- ])
6014
- ])
6015
- ]);
5700
+ const _component_AIdentityProviderProtocol = resolveComponent("AIdentityProviderProtocol");
5701
+ const _component_AIdentityProviderPreset = resolveComponent("AIdentityProviderPreset");
5702
+ return openBlock(), createElementBlock("div", _hoisted_1$a, [createElementVNode("div", null, [_cache[0] || (_cache[0] = createElementVNode("h6", null, "Protocols", -1)), createElementVNode("div", _hoisted_2$9, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.protocols, (item, key) => {
5703
+ return openBlock(), createBlock(_component_AIdentityProviderProtocol, {
5704
+ key,
5705
+ id: item
5706
+ }, {
5707
+ default: withCtx((props) => [createElementVNode("div", {
5708
+ class: normalizeClass([{ "active": item === _ctx.protocol && !_ctx.preset }, "d-flex flex-column gap-1 text-center identity-provider-picker-item"]),
5709
+ onClick: withModifiers(($event) => _ctx.pickProtocol(item), ["prevent"])
5710
+ }, [createElementVNode("div", null, [createElementVNode("i", { class: normalizeClass(["fa-2x", props.icon]) }, null, 2)]), createElementVNode("div", null, toDisplayString(props.name), 1)], 10, _hoisted_3$7)]),
5711
+ _: 2
5712
+ }, 1032, ["id"]);
5713
+ }), 128))])]), createElementVNode("div", null, [_cache[1] || (_cache[1] = createElementVNode("h6", null, "Presets", -1)), createElementVNode("div", _hoisted_4$5, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.presets, (item, key) => {
5714
+ return openBlock(), createBlock(_component_AIdentityProviderPreset, {
5715
+ key,
5716
+ id: item
5717
+ }, {
5718
+ default: withCtx((props) => [createElementVNode("div", {
5719
+ class: normalizeClass([{ "active": item === _ctx.preset }, "d-flex flex-column gap-1 text-center identity-provider-picker-item"]),
5720
+ onClick: withModifiers(($event) => _ctx.pickPreset(item), ["prevent"])
5721
+ }, [createElementVNode("div", null, [createElementVNode("i", { class: normalizeClass(["fa-2x", props.icon]) }, null, 2)]), createElementVNode("div", null, toDisplayString(props.name), 1)], 10, _hoisted_5$2)]),
5722
+ _: 2
5723
+ }, 1032, ["id"]);
5724
+ }), 128))])])]);
6016
5725
  }
6017
- var AIdentityProviderPicker = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__scopeId", "data-v-af0f282c"]]);
5726
+ var AIdentityProviderPicker = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__scopeId", "data-v-eb096917"]]);
6018
5727
 
6019
5728
  const AIdentityProviderOAuth2ClientFields = defineComponent({
6020
5729
  props: {
@@ -6545,8 +6254,8 @@ const AIdentityProviderForm = defineComponent({
6545
6254
  set();
6546
6255
  onChange(updatedAt, ()=>set());
6547
6256
  const renderPicker = ()=>h(AIdentityProviderPicker, {
6548
- protocol: protocol.value,
6549
- preset: preset.value,
6257
+ protocol: protocol.value ?? undefined,
6258
+ preset: preset.value ?? undefined,
6550
6259
  onPick (type, value) {
6551
6260
  if (type === 'preset') {
6552
6261
  preset.value = value;
@@ -6662,8 +6371,9 @@ const AIdentityProviderIcon = defineComponent({
6662
6371
  },
6663
6372
  setup (props, setup) {
6664
6373
  if (props.entity.preset) {
6374
+ const { preset } = props.entity;
6665
6375
  return ()=>h(AIdentityProviderPreset, {
6666
- id: props.entity.preset
6376
+ id: preset
6667
6377
  }, {
6668
6378
  default: (item)=>h('i', {
6669
6379
  class: [
@@ -6673,8 +6383,12 @@ const AIdentityProviderIcon = defineComponent({
6673
6383
  })
6674
6384
  });
6675
6385
  }
6386
+ if (!props.entity.protocol) {
6387
+ return ()=>null;
6388
+ }
6389
+ const { protocol } = props.entity;
6676
6390
  return ()=>h(AIdentityProviderProtocol, {
6677
- id: props.entity.protocol
6391
+ id: protocol
6678
6392
  }, {
6679
6393
  default: (item)=>h('i', {
6680
6394
  class: [
@@ -6746,8 +6460,7 @@ const AIdentityProviderRoleAssignment = defineComponent({
6746
6460
  assignFormProperties(form, manager.data.value);
6747
6461
  }
6748
6462
  const render = ()=>{
6749
- let displayButton = [];
6750
- displayButton = [
6463
+ const displayButton = [
6751
6464
  h('button', {
6752
6465
  class: 'btn btn-xs btn-dark',
6753
6466
  onClick ($event) {
@@ -6942,7 +6655,7 @@ var _sfc_main$e = defineComponent({
6942
6655
  $registerAs: 'type'
6943
6656
  });
6944
6657
  function assign(data = {}) {
6945
- form.names = data.names;
6658
+ form.names = data.names || [];
6946
6659
  }
6947
6660
  setup.expose({
6948
6661
  assign
@@ -6962,15 +6675,132 @@ var _sfc_main$e = defineComponent({
6962
6675
  });
6963
6676
 
6964
6677
  function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
6965
- const _component_AFormInputList = resolveComponent("AFormInputList");
6966
- return openBlock(), createBlock(_component_AFormInputList, {
6967
- names: _ctx.vuelidate.names.$model,
6968
- "min-items": 1,
6969
- onChanged: _ctx.handleUpdated
6970
- }, null, 8, ["names", "onChanged"]);
6678
+ const _component_AFormInputList = resolveComponent("AFormInputList");
6679
+ return openBlock(), createBlock(_component_AFormInputList, {
6680
+ names: _ctx.vuelidate.names.$model,
6681
+ "min-items": 1,
6682
+ onChanged: _ctx.handleUpdated
6683
+ }, null, 8, ["names", "onChanged"]);
6971
6684
  }
6972
6685
  var AAttributeNamesPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d]]);
6973
6686
 
6687
+ const APolicies = defineComponent({
6688
+ props: defineEntityCollectionVProps(),
6689
+ emits: defineEntityCollectionVEmitOptions(),
6690
+ slots: Object,
6691
+ setup (props, setup) {
6692
+ const { render } = defineEntityCollectionManager({
6693
+ type: `${EntityType.POLICY}`,
6694
+ props,
6695
+ setup
6696
+ });
6697
+ const translationName = useTranslation({
6698
+ group: TranslatorTranslationGroup.DEFAULT,
6699
+ key: TranslatorTranslationDefaultKey.POLICIES
6700
+ });
6701
+ const translation = useTranslation({
6702
+ group: TranslatorTranslationGroup.VUECS,
6703
+ key: TranslatorTranslationVuecsKey.NO_MORE,
6704
+ data: {
6705
+ name: translationName
6706
+ }
6707
+ });
6708
+ return ()=>render({
6709
+ noMore: {
6710
+ content: translation.value
6711
+ }
6712
+ });
6713
+ }
6714
+ });
6715
+
6716
+ const APolicyParentAssignment = defineComponent({
6717
+ props: {
6718
+ entityId: {
6719
+ type: String,
6720
+ required: true
6721
+ },
6722
+ entity: {
6723
+ type: Object
6724
+ },
6725
+ parentId: {
6726
+ type: String,
6727
+ required: true
6728
+ }
6729
+ },
6730
+ emits: defineEntityVEmitOptions(),
6731
+ async setup (props, setup) {
6732
+ const manager = defineEntityManager({
6733
+ type: `${EntityType.POLICY}`,
6734
+ setup,
6735
+ socket: {
6736
+ processEvent (event) {
6737
+ return event.data.id === props.entityId;
6738
+ }
6739
+ },
6740
+ props: {
6741
+ entity: props.entity,
6742
+ entityId: props.entityId
6743
+ }
6744
+ });
6745
+ await manager.resolve({
6746
+ query: {
6747
+ filters: {
6748
+ id: props.entityId
6749
+ }
6750
+ }
6751
+ });
6752
+ return ()=>renderToggleButton({
6753
+ changed: (value)=>{
6754
+ if (!manager.data.value) {
6755
+ return;
6756
+ }
6757
+ if (value) {
6758
+ manager.data.value.parent_id = props.parentId;
6759
+ } else {
6760
+ manager.data.value.parent_id = null;
6761
+ if (manager.data.value.parent) {
6762
+ manager.data.value.parent = null;
6763
+ }
6764
+ }
6765
+ manager.update(manager.data.value);
6766
+ },
6767
+ value: !!manager.data.value && manager.data.value.parent_id === props.parentId,
6768
+ isBusy: manager.busy.value
6769
+ });
6770
+ }
6771
+ });
6772
+
6773
+ const APolicyPicker = defineComponent({
6774
+ props: {
6775
+ parentId: {
6776
+ type: String
6777
+ },
6778
+ ...defineEntityPickerVProps()
6779
+ },
6780
+ emits: defineEntityPickerVEmitOptions(),
6781
+ slots: Object,
6782
+ setup (props, { slots, ...setup }) {
6783
+ const { render } = defineEntityPicker({
6784
+ component: APolicies,
6785
+ props,
6786
+ setup: {
6787
+ ...setup,
6788
+ slots: {
6789
+ ...props.parentId ? {
6790
+ [SlotName.ITEM_ACTIONS]: (slotProps)=>h(APolicyParentAssignment, {
6791
+ entity: slotProps.data,
6792
+ entityId: slotProps.data.id,
6793
+ parentId: props.parentId
6794
+ })
6795
+ } : {},
6796
+ ...slots
6797
+ }
6798
+ }
6799
+ });
6800
+ return ()=>render();
6801
+ }
6802
+ });
6803
+
6974
6804
  var _sfc_main$d = defineComponent({
6975
6805
  components: {
6976
6806
  APolicyChildrenPicker: APolicyPicker,
@@ -7058,35 +6888,30 @@ var _sfc_main$d = defineComponent({
7058
6888
  });
7059
6889
 
7060
6890
  function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
7061
- const _component_APolicyChildrenPicker = resolveComponent("APolicyChildrenPicker");
7062
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7063
- const _component_IVuelidate = resolveComponent("IVuelidate");
7064
- return openBlock(), createElementBlock("div", null, [
7065
- createVNode(_component_IVuelidate, {
7066
- validation: _ctx.vuelidate.items
7067
- }, {
7068
- default: withCtx((props) => [
7069
- createVNode(_component_VCFormGroup, {
7070
- "validation-messages": props.data,
7071
- "validation-severity": props.severity
7072
- }, {
7073
- label: withCtx(() => [..._cache[0] || (_cache[0] = [
7074
- createTextVNode(" Children ", -1)
7075
- ])]),
7076
- default: withCtx(() => [
7077
- createVNode(_component_APolicyChildrenPicker, {
7078
- "parent-id": _ctx.id,
7079
- query: _ctx.query,
7080
- value: _ctx.vuelidate.items.$model,
7081
- onChange: _ctx.handleUpdated
7082
- }, null, 8, ["parent-id", "query", "value", "onChange"])
7083
- ]),
7084
- _: 1
7085
- }, 8, ["validation-messages", "validation-severity"])
7086
- ]),
7087
- _: 1
7088
- }, 8, ["validation"])
7089
- ]);
6891
+ const _component_APolicyChildrenPicker = resolveComponent("APolicyChildrenPicker");
6892
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
6893
+ const _component_IVuelidate = resolveComponent("IVuelidate");
6894
+ return openBlock(), createElementBlock("div", null, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.items }, {
6895
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
6896
+ "validation-messages": props.data,
6897
+ "validation-severity": props.severity
6898
+ }, {
6899
+ label: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" Children ", -1)])]),
6900
+ default: withCtx(() => [createVNode(_component_APolicyChildrenPicker, {
6901
+ "parent-id": _ctx.id,
6902
+ query: _ctx.query,
6903
+ value: _ctx.vuelidate.items.$model,
6904
+ onChange: _ctx.handleUpdated
6905
+ }, null, 8, [
6906
+ "parent-id",
6907
+ "query",
6908
+ "value",
6909
+ "onChange"
6910
+ ])]),
6911
+ _: 1
6912
+ }, 8, ["validation-messages", "validation-severity"])]),
6913
+ _: 1
6914
+ }, 8, ["validation"])]);
7090
6915
  }
7091
6916
  var ACompositePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c]]);
7092
6917
 
@@ -7116,6 +6941,7 @@ var _sfc_main$c = defineComponent({
7116
6941
  $registerAs: 'type'
7117
6942
  });
7118
6943
  function assign(data = {}) {
6944
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7119
6945
  assignFormProperties(form, data);
7120
6946
  }
7121
6947
  setup.expose({
@@ -7138,59 +6964,40 @@ var _sfc_main$c = defineComponent({
7138
6964
  });
7139
6965
 
7140
6966
  function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
7141
- const _component_VCFormInput = resolveComponent("VCFormInput");
7142
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7143
- const _component_IVuelidate = resolveComponent("IVuelidate");
7144
- return openBlock(), createElementBlock("div", null, [
7145
- createVNode(_component_IVuelidate, {
7146
- validation: _ctx.vuelidate.start
7147
- }, {
7148
- default: withCtx((props) => [
7149
- createVNode(_component_VCFormGroup, {
7150
- "validation-messages": props.data,
7151
- "validation-severity": props.severity
7152
- }, {
7153
- label: withCtx(() => [..._cache[2] || (_cache[2] = [
7154
- createTextVNode(" Start ", -1)
7155
- ])]),
7156
- default: withCtx(() => [
7157
- createVNode(_component_VCFormInput, {
7158
- modelValue: _ctx.vuelidate.start.$model,
7159
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.start.$model = $event),
7160
- placeholder: "YYYY-MM-DD",
7161
- onChange: _ctx.handleUpdated
7162
- }, null, 8, ["modelValue", "onChange"])
7163
- ]),
7164
- _: 1
7165
- }, 8, ["validation-messages", "validation-severity"])
7166
- ]),
7167
- _: 1
7168
- }, 8, ["validation"]),
7169
- createVNode(_component_IVuelidate, {
7170
- validation: _ctx.vuelidate.end
7171
- }, {
7172
- default: withCtx((props) => [
7173
- createVNode(_component_VCFormGroup, {
7174
- "validation-messages": props.data,
7175
- "validation-severity": props.severity
7176
- }, {
7177
- label: withCtx(() => [..._cache[3] || (_cache[3] = [
7178
- createTextVNode(" End ", -1)
7179
- ])]),
7180
- default: withCtx(() => [
7181
- createVNode(_component_VCFormInput, {
7182
- modelValue: _ctx.vuelidate.end.$model,
7183
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.end.$model = $event),
7184
- placeholder: "YYYY-MM-DD",
7185
- onChange: _ctx.handleUpdated
7186
- }, null, 8, ["modelValue", "onChange"])
7187
- ]),
7188
- _: 1
7189
- }, 8, ["validation-messages", "validation-severity"])
7190
- ]),
7191
- _: 1
7192
- }, 8, ["validation"])
7193
- ]);
6967
+ const _component_VCFormInput = resolveComponent("VCFormInput");
6968
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
6969
+ const _component_IVuelidate = resolveComponent("IVuelidate");
6970
+ return openBlock(), createElementBlock("div", null, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.start }, {
6971
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
6972
+ "validation-messages": props.data,
6973
+ "validation-severity": props.severity
6974
+ }, {
6975
+ label: withCtx(() => [..._cache[2] || (_cache[2] = [createTextVNode(" Start ", -1)])]),
6976
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
6977
+ modelValue: _ctx.vuelidate.start.$model,
6978
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.start.$model = $event),
6979
+ placeholder: "YYYY-MM-DD",
6980
+ onChange: _ctx.handleUpdated
6981
+ }, null, 8, ["modelValue", "onChange"])]),
6982
+ _: 1
6983
+ }, 8, ["validation-messages", "validation-severity"])]),
6984
+ _: 1
6985
+ }, 8, ["validation"]), createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.end }, {
6986
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
6987
+ "validation-messages": props.data,
6988
+ "validation-severity": props.severity
6989
+ }, {
6990
+ label: withCtx(() => [..._cache[3] || (_cache[3] = [createTextVNode(" End ", -1)])]),
6991
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
6992
+ modelValue: _ctx.vuelidate.end.$model,
6993
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.end.$model = $event),
6994
+ placeholder: "YYYY-MM-DD",
6995
+ onChange: _ctx.handleUpdated
6996
+ }, null, 8, ["modelValue", "onChange"])]),
6997
+ _: 1
6998
+ }, 8, ["validation-messages", "validation-severity"])]),
6999
+ _: 1
7000
+ }, 8, ["validation"])]);
7194
7001
  }
7195
7002
  var ADatePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b]]);
7196
7003
 
@@ -7236,17 +7043,15 @@ var _sfc_main$b = defineComponent({
7236
7043
  });
7237
7044
 
7238
7045
  function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
7239
- const _component_AFormInputList = resolveComponent("AFormInputList");
7240
- return openBlock(), createBlock(_component_AFormInputList, {
7241
- names: _ctx.vuelidate.types.$model,
7242
- "min-items": 1,
7243
- onChanged: _ctx.handleUpdated
7244
- }, {
7245
- label: withCtx(() => [..._cache[0] || (_cache[0] = [
7246
- createTextVNode(" Types ", -1)
7247
- ])]),
7248
- _: 1
7249
- }, 8, ["names", "onChanged"]);
7046
+ const _component_AFormInputList = resolveComponent("AFormInputList");
7047
+ return openBlock(), createBlock(_component_AFormInputList, {
7048
+ names: _ctx.vuelidate.types.$model,
7049
+ "min-items": 1,
7050
+ onChanged: _ctx.handleUpdated
7051
+ }, {
7052
+ label: withCtx(() => [..._cache[0] || (_cache[0] = [createTextVNode(" Types ", -1)])]),
7053
+ _: 1
7054
+ }, 8, ["names", "onChanged"]);
7250
7055
  }
7251
7056
  var AIdentityPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a]]);
7252
7057
 
@@ -7266,26 +7071,29 @@ var _sfc_main$a = defineComponent({
7266
7071
  ],
7267
7072
  setup (props, setup) {
7268
7073
  const form = reactive({
7269
- attributeNameStrict: false,
7270
- attributeNullMatchAll: false,
7271
- identityMasterMatchAll: false,
7272
- attributeName: []
7074
+ attribute_name_strict: false,
7075
+ attribute_null_match_all: false,
7076
+ identity_master_match_all: false,
7077
+ attribute_name: []
7273
7078
  });
7274
7079
  const vuelidate = useVuelidate({
7275
- attributeNameStrict: {},
7276
- attributeNullMatchAll: {},
7277
- identityMasterMatchAll: {},
7278
- attributeName: {}
7080
+ attribute_name_strict: {},
7081
+ attribute_null_match_all: {},
7082
+ identity_master_match_all: {},
7083
+ attribute_name: {}
7279
7084
  }, form, {
7280
7085
  $registerAs: 'type'
7281
7086
  });
7282
7087
  function assign(input = {}) {
7283
- const { attributeName, ...data } = input;
7088
+ const { attribute_name, ...data } = input;
7089
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7284
7090
  assignFormProperties(form, data);
7285
- if (attributeName) {
7286
- form.attributeName = typeof attributeName === 'string' ? [
7287
- attributeName
7288
- ] : attributeName;
7091
+ if (attribute_name) {
7092
+ form.attribute_name = typeof attribute_name === 'string' ? [
7093
+ attribute_name
7094
+ ] : attribute_name;
7095
+ } else {
7096
+ form.attribute_name = [];
7289
7097
  }
7290
7098
  }
7291
7099
  setup.expose({
@@ -7301,7 +7109,7 @@ var _sfc_main$a = defineComponent({
7301
7109
  });
7302
7110
  };
7303
7111
  const handleAttributeNameChanged = (data)=>{
7304
- form.attributeName = data;
7112
+ form.attribute_name = data;
7305
7113
  handleUpdated();
7306
7114
  };
7307
7115
  return {
@@ -7319,130 +7127,89 @@ const _hoisted_4$4 = ["for"];
7319
7127
  const _hoisted_5$1 = ["for"];
7320
7128
  const _hoisted_6$1 = ["for"];
7321
7129
  function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
7322
- const _component_AFormInputList = resolveComponent("AFormInputList");
7323
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7324
- const _component_IVuelidate = resolveComponent("IVuelidate");
7325
- const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7326
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
7327
- createElementVNode("div", _hoisted_2$8, [
7328
- createVNode(_component_IVuelidate, {
7329
- validation: _ctx.vuelidate.attributeName
7330
- }, {
7331
- default: withCtx((props) => [
7332
- createVNode(_component_VCFormGroup, {
7333
- "validation-messages": props.data,
7334
- "validation-severity": props.severity
7335
- }, {
7336
- default: withCtx(() => [
7337
- createVNode(_component_AFormInputList, {
7338
- names: _ctx.vuelidate.attributeName.$model,
7339
- onChanged: _ctx.handleAttributeNameChanged
7340
- }, null, 8, ["names", "onChanged"])
7341
- ]),
7342
- _: 1
7343
- }, 8, ["validation-messages", "validation-severity"])
7344
- ]),
7345
- _: 1
7346
- }, 8, ["validation"])
7347
- ]),
7348
- createElementVNode("div", _hoisted_3$6, [
7349
- createVNode(_component_IVuelidate, {
7350
- validation: _ctx.vuelidate.attributeNameStrict
7351
- }, {
7352
- default: withCtx((props) => [
7353
- createVNode(_component_VCFormGroup, {
7354
- "validation-messages": props.data,
7355
- "validation-severity": props.severity
7356
- }, {
7357
- default: withCtx(() => [
7358
- createVNode(_component_VCFormInputCheckbox, {
7359
- modelValue: _ctx.vuelidate.attributeNameStrict.$model,
7360
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.attributeNameStrict.$model = $event),
7361
- "group-class": "form-switch",
7362
- label: true,
7363
- onChange: _ctx.handleUpdated
7364
- }, {
7365
- label: withCtx((iProps) => [
7366
- createElementVNode("label", {
7367
- for: iProps.id
7368
- }, " Only match if the attribute is strict equal to the name? ", 8, _hoisted_4$4)
7369
- ]),
7370
- _: 1
7371
- }, 8, ["modelValue", "onChange"])
7372
- ]),
7373
- _: 1
7374
- }, 8, ["validation-messages", "validation-severity"])
7375
- ]),
7376
- _: 1
7377
- }, 8, ["validation"]),
7378
- createVNode(_component_IVuelidate, {
7379
- validation: _ctx.vuelidate.attributeNullMatchAll
7380
- }, {
7381
- default: withCtx((props) => [
7382
- createVNode(_component_VCFormGroup, {
7383
- "validation-messages": props.data,
7384
- "validation-severity": props.severity
7385
- }, {
7386
- default: withCtx(() => [
7387
- createVNode(_component_VCFormInputCheckbox, {
7388
- modelValue: _ctx.vuelidate.attributeNullMatchAll.$model,
7389
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.attributeNullMatchAll.$model = $event),
7390
- "group-class": "form-switch",
7391
- label: true,
7392
- onChange: _ctx.handleUpdated
7393
- }, {
7394
- label: withCtx((iProps) => [
7395
- createElementVNode("label", {
7396
- for: iProps.id
7397
- }, [..._cache[3] || (_cache[3] = [
7398
- createTextVNode(" Determines if resources with null realm-id/name value should match all identity realms.", -1),
7399
- createElementVNode("br", null, null, -1),
7400
- createTextVNode(" If true, any identity realm can access resources with null realm-id/name values. ", -1)
7401
- ])], 8, _hoisted_5$1)
7402
- ]),
7403
- _: 1
7404
- }, 8, ["modelValue", "onChange"])
7405
- ]),
7406
- _: 1
7407
- }, 8, ["validation-messages", "validation-severity"])
7408
- ]),
7409
- _: 1
7410
- }, 8, ["validation"]),
7411
- createVNode(_component_IVuelidate, {
7412
- validation: _ctx.vuelidate.identityMasterMatchAll
7413
- }, {
7414
- default: withCtx((props) => [
7415
- createVNode(_component_VCFormGroup, {
7416
- "validation-messages": props.data,
7417
- "validation-severity": props.severity
7418
- }, {
7419
- default: withCtx(() => [
7420
- createVNode(_component_VCFormInputCheckbox, {
7421
- modelValue: _ctx.vuelidate.identityMasterMatchAll.$model,
7422
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.identityMasterMatchAll.$model = $event),
7423
- "group-class": "form-switch",
7424
- label: true,
7425
- onChange: _ctx.handleUpdated
7426
- }, {
7427
- label: withCtx((iProps) => [
7428
- createElementVNode("label", {
7429
- for: iProps.id
7430
- }, [..._cache[4] || (_cache[4] = [
7431
- createTextVNode(" Specifies whether the master realm of an identity should match all realm-id/name attributes, including null.", -1),
7432
- createElementVNode("br", null, null, -1),
7433
- createTextVNode(" If true, the master realm can access any resource regardless of its realm value. ", -1)
7434
- ])], 8, _hoisted_6$1)
7435
- ]),
7436
- _: 1
7437
- }, 8, ["modelValue", "onChange"])
7438
- ]),
7439
- _: 1
7440
- }, 8, ["validation-messages", "validation-severity"])
7441
- ]),
7442
- _: 1
7443
- }, 8, ["validation"])
7444
- ])
7445
- ]);
7130
+ const _component_AFormInputList = resolveComponent("AFormInputList");
7131
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
7132
+ const _component_IVuelidate = resolveComponent("IVuelidate");
7133
+ const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7134
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [createElementVNode("div", _hoisted_2$8, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.attribute_name }, {
7135
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7136
+ "validation-messages": props.data,
7137
+ "validation-severity": props.severity
7138
+ }, {
7139
+ default: withCtx(() => [createVNode(_component_AFormInputList, {
7140
+ names: _ctx.vuelidate.attribute_name.$model,
7141
+ onChanged: _ctx.handleAttributeNameChanged
7142
+ }, null, 8, ["names", "onChanged"])]),
7143
+ _: 1
7144
+ }, 8, ["validation-messages", "validation-severity"])]),
7145
+ _: 1
7146
+ }, 8, ["validation"])]), createElementVNode("div", _hoisted_3$6, [
7147
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.attribute_name_strict }, {
7148
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7149
+ "validation-messages": props.data,
7150
+ "validation-severity": props.severity
7151
+ }, {
7152
+ default: withCtx(() => [createVNode(_component_VCFormInputCheckbox, {
7153
+ modelValue: _ctx.vuelidate.attribute_name_strict.$model,
7154
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.attribute_name_strict.$model = $event),
7155
+ "group-class": "form-switch",
7156
+ label: true,
7157
+ onChange: _ctx.handleUpdated
7158
+ }, {
7159
+ label: withCtx((iProps) => [createElementVNode("label", { for: iProps.id }, " Only match if the attribute is strict equal to the name? ", 8, _hoisted_4$4)]),
7160
+ _: 1
7161
+ }, 8, ["modelValue", "onChange"])]),
7162
+ _: 1
7163
+ }, 8, ["validation-messages", "validation-severity"])]),
7164
+ _: 1
7165
+ }, 8, ["validation"]),
7166
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.attribute_null_match_all }, {
7167
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7168
+ "validation-messages": props.data,
7169
+ "validation-severity": props.severity
7170
+ }, {
7171
+ default: withCtx(() => [createVNode(_component_VCFormInputCheckbox, {
7172
+ modelValue: _ctx.vuelidate.attribute_null_match_all.$model,
7173
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.attribute_null_match_all.$model = $event),
7174
+ "group-class": "form-switch",
7175
+ label: true,
7176
+ onChange: _ctx.handleUpdated
7177
+ }, {
7178
+ label: withCtx((iProps) => [createElementVNode("label", { for: iProps.id }, [..._cache[3] || (_cache[3] = [
7179
+ createTextVNode(" Determines if resources with null realm-id/name value should match all identity realms.", -1),
7180
+ createElementVNode("br", null, null, -1),
7181
+ createTextVNode(" If true, any identity realm can access resources with null realm-id/name values. ", -1)
7182
+ ])], 8, _hoisted_5$1)]),
7183
+ _: 1
7184
+ }, 8, ["modelValue", "onChange"])]),
7185
+ _: 1
7186
+ }, 8, ["validation-messages", "validation-severity"])]),
7187
+ _: 1
7188
+ }, 8, ["validation"]),
7189
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.identity_master_match_all }, {
7190
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7191
+ "validation-messages": props.data,
7192
+ "validation-severity": props.severity
7193
+ }, {
7194
+ default: withCtx(() => [createVNode(_component_VCFormInputCheckbox, {
7195
+ modelValue: _ctx.vuelidate.identity_master_match_all.$model,
7196
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.identity_master_match_all.$model = $event),
7197
+ "group-class": "form-switch",
7198
+ label: true,
7199
+ onChange: _ctx.handleUpdated
7200
+ }, {
7201
+ label: withCtx((iProps) => [createElementVNode("label", { for: iProps.id }, [..._cache[4] || (_cache[4] = [
7202
+ createTextVNode(" Specifies whether the master realm of an identity should match all realm-id/name attributes, including null.", -1),
7203
+ createElementVNode("br", null, null, -1),
7204
+ createTextVNode(" If true, the master realm can access any resource regardless of its realm value. ", -1)
7205
+ ])], 8, _hoisted_6$1)]),
7206
+ _: 1
7207
+ }, 8, ["modelValue", "onChange"])]),
7208
+ _: 1
7209
+ }, 8, ["validation-messages", "validation-severity"])]),
7210
+ _: 1
7211
+ }, 8, ["validation"])
7212
+ ])]);
7446
7213
  }
7447
7214
  var ARealmMatchPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9]]);
7448
7215
 
@@ -7465,9 +7232,9 @@ var _sfc_main$9 = defineComponent({
7465
7232
  start: '',
7466
7233
  end: '',
7467
7234
  interval: '',
7468
- dayOfWeek: '',
7469
- dayOfMonth: '',
7470
- dayOfYear: ''
7235
+ day_of_week: '',
7236
+ day_of_month: '',
7237
+ day_of_year: ''
7471
7238
  });
7472
7239
  const intervalOptions = Object.values(TimePolicyInterval).map((el)=>({
7473
7240
  id: el,
@@ -7477,15 +7244,15 @@ var _sfc_main$9 = defineComponent({
7477
7244
  start: {},
7478
7245
  end: {},
7479
7246
  interval: {},
7480
- dayOfWeek: {
7247
+ day_of_week: {
7481
7248
  minValue: minValue(0),
7482
7249
  maxValue: maxValue(6)
7483
7250
  },
7484
- dayOfMonth: {
7251
+ day_of_month: {
7485
7252
  minValue: minValue(1),
7486
7253
  maxValue: maxValue(31)
7487
7254
  },
7488
- dayOfYear: {
7255
+ day_of_year: {
7489
7256
  minValue: minValue(1),
7490
7257
  maxValue: maxValue(365)
7491
7258
  }
@@ -7493,6 +7260,7 @@ var _sfc_main$9 = defineComponent({
7493
7260
  $registerAs: 'type'
7494
7261
  });
7495
7262
  function assign(data = {}) {
7263
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7496
7264
  assignFormProperties(form, data);
7497
7265
  }
7498
7266
  setup.expose({
@@ -7512,13 +7280,13 @@ var _sfc_main$9 = defineComponent({
7512
7280
  };
7513
7281
  const handleIntervalUpdated = (value)=>{
7514
7282
  if (!isIntervalForDayOfWeek(value)) {
7515
- vuelidate.value.dayOfWeek.$model = '';
7283
+ vuelidate.value.day_of_week.$model = '';
7516
7284
  }
7517
7285
  if (!isIntervalForDayOfMonth(value)) {
7518
- vuelidate.value.dayOfMonth.$model = '';
7286
+ vuelidate.value.day_of_month.$model = '';
7519
7287
  }
7520
7288
  if (!isIntervalForDayOfYear(value)) {
7521
- vuelidate.value.dayOfYear.$model = '';
7289
+ vuelidate.value.day_of_year.$model = '';
7522
7290
  }
7523
7291
  handleUpdated();
7524
7292
  };
@@ -7536,179 +7304,129 @@ var _sfc_main$9 = defineComponent({
7536
7304
 
7537
7305
  const _hoisted_1$8 = { class: "row" };
7538
7306
  const _hoisted_2$7 = {
7539
- key: 0,
7540
- class: "col"
7307
+ key: 0,
7308
+ class: "col"
7541
7309
  };
7542
7310
  const _hoisted_3$5 = {
7543
- key: 1,
7544
- class: "col"
7311
+ key: 1,
7312
+ class: "col"
7545
7313
  };
7546
7314
  const _hoisted_4$3 = {
7547
- key: 2,
7548
- class: "col"
7315
+ key: 2,
7316
+ class: "col"
7549
7317
  };
7550
7318
  function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
7551
- const _component_VCFormInput = resolveComponent("VCFormInput");
7552
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7553
- const _component_IVuelidate = resolveComponent("IVuelidate");
7554
- const _component_VCFormSelect = resolveComponent("VCFormSelect");
7555
- return openBlock(), createElementBlock("div", null, [
7556
- createVNode(_component_IVuelidate, {
7557
- validation: _ctx.vuelidate.start
7558
- }, {
7559
- default: withCtx((props) => [
7560
- createVNode(_component_VCFormGroup, {
7561
- "validation-messages": props.data,
7562
- "validation-severity": props.severity
7563
- }, {
7564
- label: withCtx(() => [..._cache[6] || (_cache[6] = [
7565
- createTextVNode(" Start ", -1)
7566
- ])]),
7567
- default: withCtx(() => [
7568
- createVNode(_component_VCFormInput, {
7569
- modelValue: _ctx.vuelidate.start.$model,
7570
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.start.$model = $event),
7571
- placeholder: "00:00:00",
7572
- onChange: _ctx.handleUpdated
7573
- }, null, 8, ["modelValue", "onChange"])
7574
- ]),
7575
- _: 1
7576
- }, 8, ["validation-messages", "validation-severity"])
7577
- ]),
7578
- _: 1
7579
- }, 8, ["validation"]),
7580
- createVNode(_component_IVuelidate, {
7581
- validation: _ctx.vuelidate.end
7582
- }, {
7583
- default: withCtx((props) => [
7584
- createVNode(_component_VCFormGroup, {
7585
- "validation-messages": props.data,
7586
- "validation-severity": props.severity
7587
- }, {
7588
- label: withCtx(() => [..._cache[7] || (_cache[7] = [
7589
- createTextVNode(" End ", -1)
7590
- ])]),
7591
- default: withCtx(() => [
7592
- createVNode(_component_VCFormInput, {
7593
- modelValue: _ctx.vuelidate.end.$model,
7594
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.end.$model = $event),
7595
- placeholder: "00:00:00",
7596
- onChange: _ctx.handleUpdated
7597
- }, null, 8, ["modelValue", "onChange"])
7598
- ]),
7599
- _: 1
7600
- }, 8, ["validation-messages", "validation-severity"])
7601
- ]),
7602
- _: 1
7603
- }, 8, ["validation"]),
7604
- createVNode(_component_IVuelidate, {
7605
- validation: _ctx.vuelidate.interval
7606
- }, {
7607
- default: withCtx((props) => [
7608
- createVNode(_component_VCFormGroup, {
7609
- "validation-messages": props.data,
7610
- "validation-severity": props.severity
7611
- }, {
7612
- label: withCtx(() => [..._cache[8] || (_cache[8] = [
7613
- createTextVNode(" Interval ", -1)
7614
- ])]),
7615
- default: withCtx(() => [
7616
- createVNode(_component_VCFormSelect, {
7617
- modelValue: _ctx.vuelidate.interval.$model,
7618
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.interval.$model = $event),
7619
- options: _ctx.intervalOptions,
7620
- onChange: _ctx.handleIntervalUpdated
7621
- }, null, 8, ["modelValue", "options", "onChange"])
7622
- ]),
7623
- _: 1
7624
- }, 8, ["validation-messages", "validation-severity"])
7625
- ]),
7626
- _: 1
7627
- }, 8, ["validation"]),
7628
- createElementVNode("div", _hoisted_1$8, [
7629
- _ctx.displayIntervalForDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
7630
- createVNode(_component_IVuelidate, {
7631
- validation: _ctx.vuelidate.dayOfWeek
7632
- }, {
7633
- default: withCtx((props) => [
7634
- createVNode(_component_VCFormGroup, {
7635
- "validation-messages": props.data,
7636
- "validation-severity": props.severity
7637
- }, {
7638
- label: withCtx(() => [..._cache[9] || (_cache[9] = [
7639
- createTextVNode(" Day of Week ", -1)
7640
- ])]),
7641
- default: withCtx(() => [
7642
- createVNode(_component_VCFormInput, {
7643
- modelValue: _ctx.vuelidate.dayOfWeek.$model,
7644
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.dayOfWeek.$model = $event),
7645
- placeholder: "0-7",
7646
- type: "number",
7647
- onChange: _ctx.handleUpdated
7648
- }, null, 8, ["modelValue", "onChange"])
7649
- ]),
7650
- _: 1
7651
- }, 8, ["validation-messages", "validation-severity"])
7652
- ]),
7653
- _: 1
7654
- }, 8, ["validation"])
7655
- ])) : createCommentVNode("", true),
7656
- _ctx.displayIntervalForDayOfMonth ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
7657
- createVNode(_component_IVuelidate, {
7658
- validation: _ctx.vuelidate.dayOfMonth
7659
- }, {
7660
- default: withCtx((props) => [
7661
- createVNode(_component_VCFormGroup, {
7662
- "validation-messages": props.data,
7663
- "validation-severity": props.severity
7664
- }, {
7665
- label: withCtx(() => [..._cache[10] || (_cache[10] = [
7666
- createTextVNode(" Day of Month ", -1)
7667
- ])]),
7668
- default: withCtx(() => [
7669
- createVNode(_component_VCFormInput, {
7670
- modelValue: _ctx.vuelidate.dayOfMonth.$model,
7671
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.vuelidate.dayOfMonth.$model = $event),
7672
- placeholder: "1-31",
7673
- type: "number",
7674
- onChange: _ctx.handleUpdated
7675
- }, null, 8, ["modelValue", "onChange"])
7676
- ]),
7677
- _: 1
7678
- }, 8, ["validation-messages", "validation-severity"])
7679
- ]),
7680
- _: 1
7681
- }, 8, ["validation"])
7682
- ])) : createCommentVNode("", true),
7683
- _ctx.displayIntervalForDayOfYear ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
7684
- createVNode(_component_IVuelidate, {
7685
- validation: _ctx.vuelidate.dayOfYear
7686
- }, {
7687
- default: withCtx((props) => [
7688
- createVNode(_component_VCFormGroup, {
7689
- "validation-messages": props.data,
7690
- "validation-severity": props.severity
7691
- }, {
7692
- label: withCtx(() => [..._cache[11] || (_cache[11] = [
7693
- createTextVNode(" Day of Year ", -1)
7694
- ])]),
7695
- default: withCtx(() => [
7696
- createVNode(_component_VCFormInput, {
7697
- modelValue: _ctx.vuelidate.dayOfYear.$model,
7698
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.vuelidate.dayOfYear.$model = $event),
7699
- type: "number",
7700
- placeholder: "1-365",
7701
- onChange: _ctx.handleUpdated
7702
- }, null, 8, ["modelValue", "onChange"])
7703
- ]),
7704
- _: 1
7705
- }, 8, ["validation-messages", "validation-severity"])
7706
- ]),
7707
- _: 1
7708
- }, 8, ["validation"])
7709
- ])) : createCommentVNode("", true)
7710
- ])
7711
- ]);
7319
+ const _component_VCFormInput = resolveComponent("VCFormInput");
7320
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
7321
+ const _component_IVuelidate = resolveComponent("IVuelidate");
7322
+ const _component_VCFormSelect = resolveComponent("VCFormSelect");
7323
+ return openBlock(), createElementBlock("div", null, [
7324
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.start }, {
7325
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7326
+ "validation-messages": props.data,
7327
+ "validation-severity": props.severity
7328
+ }, {
7329
+ label: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode(" Start ", -1)])]),
7330
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
7331
+ modelValue: _ctx.vuelidate.start.$model,
7332
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.start.$model = $event),
7333
+ placeholder: "00:00:00",
7334
+ onChange: _ctx.handleUpdated
7335
+ }, null, 8, ["modelValue", "onChange"])]),
7336
+ _: 1
7337
+ }, 8, ["validation-messages", "validation-severity"])]),
7338
+ _: 1
7339
+ }, 8, ["validation"]),
7340
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.end }, {
7341
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7342
+ "validation-messages": props.data,
7343
+ "validation-severity": props.severity
7344
+ }, {
7345
+ label: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode(" End ", -1)])]),
7346
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
7347
+ modelValue: _ctx.vuelidate.end.$model,
7348
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.end.$model = $event),
7349
+ placeholder: "00:00:00",
7350
+ onChange: _ctx.handleUpdated
7351
+ }, null, 8, ["modelValue", "onChange"])]),
7352
+ _: 1
7353
+ }, 8, ["validation-messages", "validation-severity"])]),
7354
+ _: 1
7355
+ }, 8, ["validation"]),
7356
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.interval }, {
7357
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7358
+ "validation-messages": props.data,
7359
+ "validation-severity": props.severity
7360
+ }, {
7361
+ label: withCtx(() => [..._cache[8] || (_cache[8] = [createTextVNode(" Interval ", -1)])]),
7362
+ default: withCtx(() => [createVNode(_component_VCFormSelect, {
7363
+ modelValue: _ctx.vuelidate.interval.$model,
7364
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.interval.$model = $event),
7365
+ options: _ctx.intervalOptions,
7366
+ onChange: _ctx.handleIntervalUpdated
7367
+ }, null, 8, [
7368
+ "modelValue",
7369
+ "options",
7370
+ "onChange"
7371
+ ])]),
7372
+ _: 1
7373
+ }, 8, ["validation-messages", "validation-severity"])]),
7374
+ _: 1
7375
+ }, 8, ["validation"]),
7376
+ createElementVNode("div", _hoisted_1$8, [
7377
+ _ctx.displayIntervalForDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2$7, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_week }, {
7378
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7379
+ "validation-messages": props.data,
7380
+ "validation-severity": props.severity
7381
+ }, {
7382
+ label: withCtx(() => [..._cache[9] || (_cache[9] = [createTextVNode(" Day of Week ", -1)])]),
7383
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
7384
+ modelValue: _ctx.vuelidate.day_of_week.$model,
7385
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.day_of_week.$model = $event),
7386
+ placeholder: "0-6",
7387
+ type: "number",
7388
+ onChange: _ctx.handleUpdated
7389
+ }, null, 8, ["modelValue", "onChange"])]),
7390
+ _: 1
7391
+ }, 8, ["validation-messages", "validation-severity"])]),
7392
+ _: 1
7393
+ }, 8, ["validation"])])) : createCommentVNode("", true),
7394
+ _ctx.displayIntervalForDayOfMonth ? (openBlock(), createElementBlock("div", _hoisted_3$5, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_month }, {
7395
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7396
+ "validation-messages": props.data,
7397
+ "validation-severity": props.severity
7398
+ }, {
7399
+ label: withCtx(() => [..._cache[10] || (_cache[10] = [createTextVNode(" Day of Month ", -1)])]),
7400
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
7401
+ modelValue: _ctx.vuelidate.day_of_month.$model,
7402
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.vuelidate.day_of_month.$model = $event),
7403
+ placeholder: "1-31",
7404
+ type: "number",
7405
+ onChange: _ctx.handleUpdated
7406
+ }, null, 8, ["modelValue", "onChange"])]),
7407
+ _: 1
7408
+ }, 8, ["validation-messages", "validation-severity"])]),
7409
+ _: 1
7410
+ }, 8, ["validation"])])) : createCommentVNode("", true),
7411
+ _ctx.displayIntervalForDayOfYear ? (openBlock(), createElementBlock("div", _hoisted_4$3, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_year }, {
7412
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7413
+ "validation-messages": props.data,
7414
+ "validation-severity": props.severity
7415
+ }, {
7416
+ label: withCtx(() => [..._cache[11] || (_cache[11] = [createTextVNode(" Day of Year ", -1)])]),
7417
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
7418
+ modelValue: _ctx.vuelidate.day_of_year.$model,
7419
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.vuelidate.day_of_year.$model = $event),
7420
+ type: "number",
7421
+ placeholder: "1-365",
7422
+ onChange: _ctx.handleUpdated
7423
+ }, null, 8, ["modelValue", "onChange"])]),
7424
+ _: 1
7425
+ }, 8, ["validation-messages", "validation-severity"])]),
7426
+ _: 1
7427
+ }, 8, ["validation"])])) : createCommentVNode("", true)
7428
+ ])
7429
+ ]);
7712
7430
  }
7713
7431
  var ATimePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8]]);
7714
7432
 
@@ -7781,22 +7499,13 @@ const _hoisted_1$7 = { class: "d-flex flex-column gap-2" };
7781
7499
  const _hoisted_2$6 = { class: "d-flex flex-row gap-2 flex-wrap" };
7782
7500
  const _hoisted_3$4 = ["onClick"];
7783
7501
  function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
7784
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
7785
- createElementVNode("div", null, [
7786
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "Type", -1)),
7787
- createElementVNode("div", _hoisted_2$6, [
7788
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item, key) => {
7789
- return openBlock(), createElementBlock("div", {
7790
- key,
7791
- class: normalizeClass([{ "active": item.id === _ctx.option }, "d-flex flex-column gap-1 text-center a-picker-item"]),
7792
- onClick: withModifiers(($event) => _ctx.pick(`${item.id}`), ["prevent"])
7793
- }, [
7794
- createElementVNode("div", null, toDisplayString(item.value), 1)
7795
- ], 10, _hoisted_3$4);
7796
- }), 128))
7797
- ])
7798
- ])
7799
- ]);
7502
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [createElementVNode("div", null, [_cache[0] || (_cache[0] = createElementVNode("h6", null, "Type", -1)), createElementVNode("div", _hoisted_2$6, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item, key) => {
7503
+ return openBlock(), createElementBlock("div", {
7504
+ key,
7505
+ class: normalizeClass([{ "active": item.id === _ctx.option }, "d-flex flex-column gap-1 text-center a-picker-item"]),
7506
+ onClick: withModifiers(($event) => _ctx.pick(`${item.id}`), ["prevent"])
7507
+ }, [createElementVNode("div", null, toDisplayString(item.value), 1)], 10, _hoisted_3$4);
7508
+ }), 128))])])]);
7800
7509
  }
7801
7510
  var APolicyTypePicker = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-3fa3964f"]]);
7802
7511
 
@@ -7888,145 +7597,98 @@ const _hoisted_1$6 = { class: "row" };
7888
7597
  const _hoisted_2$5 = { class: "col" };
7889
7598
  const _hoisted_3$3 = ["for"];
7890
7599
  const _hoisted_4$2 = {
7891
- key: 0,
7892
- class: "col"
7600
+ key: 0,
7601
+ class: "col"
7893
7602
  };
7894
7603
  function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
7895
- const _component_VCFormInput = resolveComponent("VCFormInput");
7896
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7897
- const _component_IVuelidate = resolveComponent("IVuelidate");
7898
- const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
7899
- const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7900
- const _component_ARealmPicker = resolveComponent("ARealmPicker");
7901
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
7902
- createElementVNode("div", _hoisted_2$5, [
7903
- createVNode(_component_IVuelidate, {
7904
- validation: _ctx.vuelidate.name
7905
- }, {
7906
- default: withCtx((props) => [
7907
- createVNode(_component_VCFormGroup, {
7908
- "validation-messages": props.data,
7909
- "validation-severity": props.severity
7910
- }, {
7911
- label: withCtx(() => [..._cache[5] || (_cache[5] = [
7912
- createTextVNode(" Name ", -1)
7913
- ])]),
7914
- default: withCtx(() => [
7915
- createVNode(_component_VCFormInput, {
7916
- modelValue: _ctx.vuelidate.name.$model,
7917
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event),
7918
- onChange: _ctx.handleUpdated
7919
- }, null, 8, ["modelValue", "onChange"])
7920
- ]),
7921
- _: 1
7922
- }, 8, ["validation-messages", "validation-severity"])
7923
- ]),
7924
- _: 1
7925
- }, 8, ["validation"]),
7926
- createVNode(_component_IVuelidate, {
7927
- validation: _ctx.vuelidate.display_name
7928
- }, {
7929
- default: withCtx((props) => [
7930
- createVNode(_component_VCFormGroup, {
7931
- "validation-messages": props.data,
7932
- "validation-severity": props.severity
7933
- }, {
7934
- label: withCtx(() => [..._cache[6] || (_cache[6] = [
7935
- createTextVNode(" Display Name ", -1)
7936
- ])]),
7937
- default: withCtx(() => [
7938
- createVNode(_component_VCFormInput, {
7939
- modelValue: _ctx.vuelidate.display_name.$model,
7940
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.display_name.$model = $event),
7941
- onChange: _ctx.handleUpdated
7942
- }, null, 8, ["modelValue", "onChange"])
7943
- ]),
7944
- _: 1
7945
- }, 8, ["validation-messages", "validation-severity"])
7946
- ]),
7947
- _: 1
7948
- }, 8, ["validation"]),
7949
- createVNode(_component_IVuelidate, {
7950
- validation: _ctx.vuelidate.description
7951
- }, {
7952
- default: withCtx((props) => [
7953
- createVNode(_component_VCFormGroup, {
7954
- "validation-messages": props.data,
7955
- "validation-severity": props.severity
7956
- }, {
7957
- label: withCtx(() => [..._cache[7] || (_cache[7] = [
7958
- createTextVNode(" Description ", -1)
7959
- ])]),
7960
- default: withCtx(() => [
7961
- createVNode(_component_VCFormTextarea, {
7962
- modelValue: _ctx.vuelidate.description.$model,
7963
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.description.$model = $event),
7964
- rows: "4",
7965
- onChange: _ctx.handleUpdated
7966
- }, null, 8, ["modelValue", "onChange"])
7967
- ]),
7968
- _: 1
7969
- }, 8, ["validation-messages", "validation-severity"])
7970
- ]),
7971
- _: 1
7972
- }, 8, ["validation"]),
7973
- createVNode(_component_IVuelidate, {
7974
- validation: _ctx.vuelidate.invert
7975
- }, {
7976
- default: withCtx((props) => [
7977
- createVNode(_component_VCFormGroup, {
7978
- "validation-messages": props.data,
7979
- "validation-severity": props.severity
7980
- }, {
7981
- default: withCtx(() => [
7982
- createVNode(_component_VCFormInputCheckbox, {
7983
- modelValue: _ctx.vuelidate.invert.$model,
7984
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.invert.$model = $event),
7985
- "group-class": "form-switch",
7986
- label: true,
7987
- onChange: _ctx.handleUpdated
7988
- }, {
7989
- label: withCtx((iProps) => [
7990
- createElementVNode("label", {
7991
- for: iProps.id
7992
- }, " Invert? ", 8, _hoisted_3$3)
7993
- ]),
7994
- _: 1
7995
- }, 8, ["modelValue", "onChange"])
7996
- ]),
7997
- _: 1
7998
- }, 8, ["validation-messages", "validation-severity"])
7999
- ]),
8000
- _: 1
8001
- }, 8, ["validation"])
8002
- ]),
8003
- !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
8004
- createVNode(_component_IVuelidate, {
8005
- validation: _ctx.vuelidate.invert
8006
- }, {
8007
- default: withCtx((props) => [
8008
- createVNode(_component_VCFormGroup, {
8009
- "validation-messages": props.data,
8010
- "validation-severity": props.severity
8011
- }, {
8012
- label: withCtx(() => [..._cache[8] || (_cache[8] = [
8013
- createTextVNode(" Realm ", -1)
8014
- ])]),
8015
- default: withCtx(() => [
8016
- createVNode(_component_ARealmPicker, {
8017
- value: _ctx.vuelidate.realm_id.$model,
8018
- onChange: _cache[4] || (_cache[4] = (value) => {
8019
- _ctx.vuelidate.realm_id.$model = value.length > 0 ? value[0] : "";
8020
- })
8021
- }, null, 8, ["value"])
8022
- ]),
8023
- _: 1
8024
- }, 8, ["validation-messages", "validation-severity"])
8025
- ]),
8026
- _: 1
8027
- }, 8, ["validation"])
8028
- ])) : createCommentVNode("", true)
8029
- ]);
7604
+ const _component_VCFormInput = resolveComponent("VCFormInput");
7605
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
7606
+ const _component_IVuelidate = resolveComponent("IVuelidate");
7607
+ const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
7608
+ const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7609
+ const _component_ARealmPicker = resolveComponent("ARealmPicker");
7610
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [createElementVNode("div", _hoisted_2$5, [
7611
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.name }, {
7612
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7613
+ "validation-messages": props.data,
7614
+ "validation-severity": props.severity
7615
+ }, {
7616
+ label: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode(" Name ", -1)])]),
7617
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
7618
+ modelValue: _ctx.vuelidate.name.$model,
7619
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event),
7620
+ onChange: _ctx.handleUpdated
7621
+ }, null, 8, ["modelValue", "onChange"])]),
7622
+ _: 1
7623
+ }, 8, ["validation-messages", "validation-severity"])]),
7624
+ _: 1
7625
+ }, 8, ["validation"]),
7626
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.display_name }, {
7627
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7628
+ "validation-messages": props.data,
7629
+ "validation-severity": props.severity
7630
+ }, {
7631
+ label: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode(" Display Name ", -1)])]),
7632
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
7633
+ modelValue: _ctx.vuelidate.display_name.$model,
7634
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.display_name.$model = $event),
7635
+ onChange: _ctx.handleUpdated
7636
+ }, null, 8, ["modelValue", "onChange"])]),
7637
+ _: 1
7638
+ }, 8, ["validation-messages", "validation-severity"])]),
7639
+ _: 1
7640
+ }, 8, ["validation"]),
7641
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.description }, {
7642
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7643
+ "validation-messages": props.data,
7644
+ "validation-severity": props.severity
7645
+ }, {
7646
+ label: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode(" Description ", -1)])]),
7647
+ default: withCtx(() => [createVNode(_component_VCFormTextarea, {
7648
+ modelValue: _ctx.vuelidate.description.$model,
7649
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.description.$model = $event),
7650
+ rows: "4",
7651
+ onChange: _ctx.handleUpdated
7652
+ }, null, 8, ["modelValue", "onChange"])]),
7653
+ _: 1
7654
+ }, 8, ["validation-messages", "validation-severity"])]),
7655
+ _: 1
7656
+ }, 8, ["validation"]),
7657
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.invert }, {
7658
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7659
+ "validation-messages": props.data,
7660
+ "validation-severity": props.severity
7661
+ }, {
7662
+ default: withCtx(() => [createVNode(_component_VCFormInputCheckbox, {
7663
+ modelValue: _ctx.vuelidate.invert.$model,
7664
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.invert.$model = $event),
7665
+ "group-class": "form-switch",
7666
+ label: true,
7667
+ onChange: _ctx.handleUpdated
7668
+ }, {
7669
+ label: withCtx((iProps) => [createElementVNode("label", { for: iProps.id }, " Invert? ", 8, _hoisted_3$3)]),
7670
+ _: 1
7671
+ }, 8, ["modelValue", "onChange"])]),
7672
+ _: 1
7673
+ }, 8, ["validation-messages", "validation-severity"])]),
7674
+ _: 1
7675
+ }, 8, ["validation"])
7676
+ ]), !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock("div", _hoisted_4$2, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.invert }, {
7677
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
7678
+ "validation-messages": props.data,
7679
+ "validation-severity": props.severity
7680
+ }, {
7681
+ label: withCtx(() => [..._cache[8] || (_cache[8] = [createTextVNode(" Realm ", -1)])]),
7682
+ default: withCtx(() => [createVNode(_component_ARealmPicker, {
7683
+ value: _ctx.vuelidate.realm_id.$model,
7684
+ onChange: _cache[4] || (_cache[4] = (value) => {
7685
+ _ctx.vuelidate.realm_id.$model = value.length > 0 ? value[0] ?? "" : "";
7686
+ })
7687
+ }, null, 8, ["value"])]),
7688
+ _: 1
7689
+ }, 8, ["validation-messages", "validation-severity"])]),
7690
+ _: 1
7691
+ }, 8, ["validation"])])) : createCommentVNode("", true)]);
8030
7692
  }
8031
7693
  var APolicyBasicForm = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6]]);
8032
7694
 
@@ -8045,6 +7707,7 @@ var _sfc_main$6 = defineComponent({
8045
7707
  }
8046
7708
  },
8047
7709
  setup (props, ctx) {
7710
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8048
7711
  const typeComponents = {
8049
7712
  [BuiltInPolicyType.IDENTITY]: AIdentityPolicyForm,
8050
7713
  [BuiltInPolicyType.REALM_MATCH]: ARealmMatchPolicyForm,
@@ -8086,8 +7749,8 @@ var _sfc_main$6 = defineComponent({
8086
7749
  await manager.createOrUpdate(data);
8087
7750
  if (manager.data.value) {
8088
7751
  if (items.length > 0) {
8089
- for(let i = 0; i < items.length; i++){
8090
- await httpClient.policy.update(items[i], {
7752
+ for (const item of items){
7753
+ await httpClient.policy.update(item, {
8091
7754
  parent_id: manager.data.value.id
8092
7755
  });
8093
7756
  }
@@ -8108,29 +7771,30 @@ var _sfc_main$6 = defineComponent({
8108
7771
 
8109
7772
  const _hoisted_1$5 = { class: "d-flex flex-column" };
8110
7773
  function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
8111
- const _component_APolicyBasicForm = resolveComponent("APolicyBasicForm");
8112
- const _component_AFormSubmit = resolveComponent("AFormSubmit");
8113
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
8114
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "General", -1)),
8115
- createVNode(_component_APolicyBasicForm, { entity: _ctx.data }, null, 8, ["entity"]),
8116
- _ctx.typeComputed ? renderSlot(_ctx.$slots, "default", {
8117
- key: 0,
8118
- entity: _ctx.entity
8119
- }, () => [
8120
- _ctx.typeComputed in _ctx.typeComponents ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.typeComponents[_ctx.typeComputed]), {
8121
- key: 0,
8122
- entity: _ctx.entity
8123
- }, null, 8, ["entity"])) : createCommentVNode("", true)
8124
- ]) : createCommentVNode("", true),
8125
- createElementVNode("div", null, [
8126
- createVNode(_component_AFormSubmit, {
8127
- "is-invalid": _ctx.vuelidate.$invalid || !_ctx.typeComputed,
8128
- "is-busy": _ctx.busy,
8129
- "is-editing": _ctx.isEditing,
8130
- onSubmit: _ctx.submit
8131
- }, null, 8, ["is-invalid", "is-busy", "is-editing", "onSubmit"])
8132
- ])
8133
- ]);
7774
+ const _component_APolicyBasicForm = resolveComponent("APolicyBasicForm");
7775
+ const _component_AFormSubmit = resolveComponent("AFormSubmit");
7776
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
7777
+ _cache[0] || (_cache[0] = createElementVNode("h6", null, "General", -1)),
7778
+ createVNode(_component_APolicyBasicForm, { entity: _ctx.data }, null, 8, ["entity"]),
7779
+ _ctx.typeComputed ? renderSlot(_ctx.$slots, "default", {
7780
+ key: 0,
7781
+ entity: _ctx.entity
7782
+ }, () => [_ctx.typeComputed in _ctx.typeComponents ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.typeComponents[_ctx.typeComputed]), {
7783
+ key: 0,
7784
+ entity: _ctx.entity
7785
+ }, null, 8, ["entity"])) : createCommentVNode("", true)]) : createCommentVNode("", true),
7786
+ createElementVNode("div", null, [createVNode(_component_AFormSubmit, {
7787
+ "is-invalid": _ctx.vuelidate.$invalid || !_ctx.typeComputed,
7788
+ "is-busy": _ctx.busy,
7789
+ "is-editing": _ctx.isEditing,
7790
+ onSubmit: _ctx.submit
7791
+ }, null, 8, [
7792
+ "is-invalid",
7793
+ "is-busy",
7794
+ "is-editing",
7795
+ "onSubmit"
7796
+ ])])
7797
+ ]);
8134
7798
  }
8135
7799
  var APolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5]]);
8136
7800
 
@@ -8153,6 +7817,77 @@ const APermissionClientAssignments = defineComponent({
8153
7817
  }
8154
7818
  });
8155
7819
 
7820
+ const APermissionPolicyAssignment = defineComponent({
7821
+ props: {
7822
+ permissionId: {
7823
+ type: String,
7824
+ required: true
7825
+ },
7826
+ policyId: {
7827
+ type: String,
7828
+ required: true
7829
+ }
7830
+ },
7831
+ emits: defineEntityVEmitOptions(),
7832
+ async setup (props, setup) {
7833
+ const manager = defineEntityManager({
7834
+ type: `${EntityType.PERMISSION_POLICY}`,
7835
+ setup,
7836
+ socket: {
7837
+ processEvent (event) {
7838
+ return event.data.permission_id === props.permissionId && event.data.policy_id === props.policyId;
7839
+ }
7840
+ }
7841
+ });
7842
+ await manager.resolve({
7843
+ query: {
7844
+ filters: {
7845
+ permission_id: props.permissionId,
7846
+ policy_id: props.policyId
7847
+ }
7848
+ }
7849
+ });
7850
+ return ()=>renderToggleButton({
7851
+ changed: (value)=>{
7852
+ if (value) {
7853
+ return manager.create({
7854
+ permission_id: props.permissionId,
7855
+ policy_id: props.policyId
7856
+ });
7857
+ }
7858
+ return manager.delete();
7859
+ },
7860
+ value: !!manager.data.value,
7861
+ isBusy: manager.busy.value
7862
+ });
7863
+ }
7864
+ });
7865
+
7866
+ const APermissionPolicyAssignments = defineComponent({
7867
+ props: {
7868
+ entityId: {
7869
+ type: String,
7870
+ required: true
7871
+ }
7872
+ },
7873
+ setup (props, { slots }) {
7874
+ return ()=>h(APolicies, {
7875
+ query: {
7876
+ filters: {
7877
+ parent_id: null
7878
+ }
7879
+ }
7880
+ }, {
7881
+ [SlotName.ITEM_ACTIONS]: (slotProps)=>h(APermissionPolicyAssignment, {
7882
+ permissionId: props.entityId,
7883
+ policyId: slotProps.data.id,
7884
+ key: slotProps.data.id
7885
+ }),
7886
+ ...slots
7887
+ });
7888
+ }
7889
+ });
7890
+
8156
7891
  const ARobotPermissionAssignment = defineComponent({
8157
7892
  props: {
8158
7893
  robotId: String,
@@ -8728,7 +8463,7 @@ const AUserForm = defineComponent({
8728
8463
  }
8729
8464
  watch(updatedAt, (val, oldVal)=>{
8730
8465
  if (val && val !== oldVal) {
8731
- manager.data.value = props.entity;
8466
+ manager.data.value = props.entity ?? undefined;
8732
8467
  initForm();
8733
8468
  }
8734
8469
  });
@@ -8957,7 +8692,7 @@ const AUserPasswordForm = defineComponent({
8957
8692
  props: {
8958
8693
  id: {
8959
8694
  type: String,
8960
- required: true
8695
+ default: undefined
8961
8696
  }
8962
8697
  },
8963
8698
  emits: [
@@ -8988,6 +8723,9 @@ const AUserPasswordForm = defineComponent({
8988
8723
  }
8989
8724
  }, form);
8990
8725
  const submit = wrapFnWithBusyState(busy, async ()=>{
8726
+ if (!props.id) {
8727
+ return;
8728
+ }
8991
8729
  try {
8992
8730
  const user = await apiClient.user.update(props.id, {
8993
8731
  password: form.password,
@@ -9314,6 +9052,8 @@ var components = /*#__PURE__*/Object.freeze({
9314
9052
  APermissionCheck: APermissionCheck,
9315
9053
  APermissionClientAssignments: APermissionClientAssignments,
9316
9054
  APermissionForm: APermissionForm,
9055
+ APermissionPolicyAssignment: APermissionPolicyAssignment,
9056
+ APermissionPolicyAssignments: APermissionPolicyAssignments,
9317
9057
  APermissionRobotAssignments: APermissionRobotAssignments,
9318
9058
  APermissionRoleAssignments: APermissionRoleAssignments,
9319
9059
  APermissionUserAssignments: APermissionUserAssignments,
@@ -9370,7 +9110,7 @@ function installComponents(app, input) {
9370
9110
  return;
9371
9111
  }
9372
9112
  Object.entries(components).forEach(([componentName, component])=>{
9373
- if (input.indexOf(componentName) !== -1) {
9113
+ if (input.includes(componentName)) {
9374
9114
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
9375
9115
  // @ts-ignore
9376
9116
  app.component(componentName, component);
@@ -9467,6 +9207,7 @@ var _sfc_main$5 = defineComponent({
9467
9207
  };
9468
9208
  };
9469
9209
  resetIdentityProviderQuery();
9210
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9470
9211
  const identityProviderRef = ref(null);
9471
9212
  const updateIdentityProviderList = ()=>{
9472
9213
  if (identityProviderRef.value) {
@@ -9474,7 +9215,7 @@ var _sfc_main$5 = defineComponent({
9474
9215
  }
9475
9216
  };
9476
9217
  const updateRealmId = (realmId)=>{
9477
- form.realm_id = Array.isArray(realmId) ? realmId[0] : realmId;
9218
+ form.realm_id = Array.isArray(realmId) ? realmId[0] ?? '' : realmId;
9478
9219
  resetIdentityProviderQuery();
9479
9220
  nextTick(()=>{
9480
9221
  updateIdentityProviderList();
@@ -9518,126 +9259,98 @@ const _hoisted_2$4 = ["href"];
9518
9259
  const _hoisted_3$2 = { class: "d-flex flex-column" };
9519
9260
  const _hoisted_4$1 = { class: "text-center mb-1" };
9520
9261
  function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
9521
- const _component_VCFormInput = resolveComponent("VCFormInput");
9522
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
9523
- const _component_IVuelidate = resolveComponent("IVuelidate");
9524
- const _component_VCFormSubmit = resolveComponent("VCFormSubmit");
9525
- const _component_ARealmPicker = resolveComponent("ARealmPicker");
9526
- const _component_ATitle = resolveComponent("ATitle");
9527
- const _component_APagination = resolveComponent("APagination");
9528
- const _component_AIdentityProviderIcon = resolveComponent("AIdentityProviderIcon");
9529
- const _component_AIdentityProviders = resolveComponent("AIdentityProviders");
9530
- return openBlock(), createElementBlock("div", null, [
9531
- _cache[7] || (_cache[7] = createElementVNode("div", { class: "text-center" }, [
9532
- createElementVNode("h1", { class: "fw-bold" }, " Login ")
9533
- ], -1)),
9534
- createElementVNode("form", {
9535
- onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.submit && _ctx.submit(...args), ["prevent"]))
9536
- }, [
9537
- createVNode(_component_IVuelidate, {
9538
- validation: _ctx.vuelidate.name
9539
- }, {
9540
- default: withCtx((props) => [
9541
- createVNode(_component_VCFormGroup, {
9542
- "validation-messages": props.data,
9543
- "validation-severity": props.severity
9544
- }, {
9545
- label: withCtx(() => [..._cache[4] || (_cache[4] = [
9546
- createTextVNode(" Name ", -1)
9547
- ])]),
9548
- default: withCtx(() => [
9549
- createVNode(_component_VCFormInput, {
9550
- modelValue: _ctx.vuelidate.name.$model,
9551
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event)
9552
- }, null, 8, ["modelValue"])
9553
- ]),
9554
- _: 1
9555
- }, 8, ["validation-messages", "validation-severity"])
9556
- ]),
9557
- _: 1
9558
- }, 8, ["validation"]),
9559
- createVNode(_component_IVuelidate, {
9560
- validation: _ctx.vuelidate.password
9561
- }, {
9562
- default: withCtx((props) => [
9563
- createVNode(_component_VCFormGroup, {
9564
- "validation-messages": props.data,
9565
- "validation-severity": props.severity
9566
- }, {
9567
- label: withCtx(() => [..._cache[5] || (_cache[5] = [
9568
- createTextVNode(" Password ", -1)
9569
- ])]),
9570
- default: withCtx(() => [
9571
- createVNode(_component_VCFormInput, {
9572
- modelValue: _ctx.vuelidate.password.$model,
9573
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.password.$model = $event),
9574
- type: "password"
9575
- }, null, 8, ["modelValue"])
9576
- ]),
9577
- _: 1
9578
- }, 8, ["validation-messages", "validation-severity"])
9579
- ]),
9580
- _: 1
9581
- }, 8, ["validation"]),
9582
- createVNode(_component_VCFormSubmit, {
9583
- modelValue: _ctx.busy,
9584
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.busy = $event),
9585
- invalid: _ctx.vuelidate.$invalid,
9586
- "create-text": "Submit",
9587
- "create-button-class": { value: "btn btn-sm btn-dark btn-block", presets: { bootstrap: false } },
9588
- "create-icon-class": "fa-solid fa-right-to-bracket",
9589
- submit: _ctx.submit
9590
- }, null, 8, ["modelValue", "invalid", "submit"]),
9591
- _cache[6] || (_cache[6] = createElementVNode("hr", null, null, -1)),
9592
- !_ctx.codeRequest || !_ctx.codeRequest.realm_id ? (openBlock(), createBlock(_component_ARealmPicker, {
9593
- key: 0,
9594
- value: _ctx.form.realm_id,
9595
- onChange: _ctx.updateRealmId
9596
- }, null, 8, ["value", "onChange"])) : createCommentVNode("", true),
9597
- createVNode(_component_AIdentityProviders, {
9598
- ref: "identityProviderRef",
9599
- query: _ctx.identityProviderQuery,
9600
- footer: false
9601
- }, {
9602
- header: withCtx(() => [
9603
- createVNode(_component_ATitle, { text: "Identity Providers" })
9604
- ]),
9605
- footer: withCtx((props) => [
9606
- createVNode(_component_APagination, {
9607
- busy: props.busy,
9608
- meta: props.meta,
9609
- load: props.load,
9610
- total: props.total
9611
- }, null, 8, ["busy", "meta", "load", "total"])
9612
- ]),
9613
- body: withCtx((props) => [
9614
- createElementVNode("div", _hoisted_1$4, [
9615
- (openBlock(true), createElementBlock(Fragment, null, renderList(props.data, (item, key) => {
9616
- return openBlock(), createElementBlock("div", { key }, [
9617
- createElementVNode("a", {
9618
- href: _ctx.buildIdentityProviderURL(item.id),
9619
- class: "btn btn-dark btn-xs p-2 me-1 identity-provider-box bg-dark"
9620
- }, [
9621
- createElementVNode("div", _hoisted_3$2, [
9622
- createElementVNode("div", _hoisted_4$1, [
9623
- createVNode(_component_AIdentityProviderIcon, {
9624
- class: "fa-2x",
9625
- entity: item
9626
- }, null, 8, ["entity"])
9627
- ]),
9628
- createElementVNode("div", null, toDisplayString(item.name), 1)
9629
- ])
9630
- ], 8, _hoisted_2$4)
9631
- ]);
9632
- }), 128))
9633
- ])
9634
- ]),
9635
- _: 1
9636
- }, 8, ["query"])
9637
- ], 32)
9638
- ]);
9262
+ const _component_VCFormInput = resolveComponent("VCFormInput");
9263
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
9264
+ const _component_IVuelidate = resolveComponent("IVuelidate");
9265
+ const _component_VCFormSubmit = resolveComponent("VCFormSubmit");
9266
+ const _component_ARealmPicker = resolveComponent("ARealmPicker");
9267
+ const _component_ATitle = resolveComponent("ATitle");
9268
+ const _component_APagination = resolveComponent("APagination");
9269
+ const _component_AIdentityProviderIcon = resolveComponent("AIdentityProviderIcon");
9270
+ const _component_AIdentityProviders = resolveComponent("AIdentityProviders");
9271
+ return openBlock(), createElementBlock("div", null, [_cache[7] || (_cache[7] = createElementVNode("div", { class: "text-center" }, [createElementVNode("h1", { class: "fw-bold" }, " Login ")], -1)), createElementVNode("form", { onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.submit && _ctx.submit(...args), ["prevent"])) }, [
9272
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.name }, {
9273
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
9274
+ "validation-messages": props.data,
9275
+ "validation-severity": props.severity
9276
+ }, {
9277
+ label: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode(" Name ", -1)])]),
9278
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
9279
+ modelValue: _ctx.vuelidate.name.$model,
9280
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event)
9281
+ }, null, 8, ["modelValue"])]),
9282
+ _: 1
9283
+ }, 8, ["validation-messages", "validation-severity"])]),
9284
+ _: 1
9285
+ }, 8, ["validation"]),
9286
+ createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.password }, {
9287
+ default: withCtx((props) => [createVNode(_component_VCFormGroup, {
9288
+ "validation-messages": props.data,
9289
+ "validation-severity": props.severity
9290
+ }, {
9291
+ label: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode(" Password ", -1)])]),
9292
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
9293
+ modelValue: _ctx.vuelidate.password.$model,
9294
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.password.$model = $event),
9295
+ type: "password"
9296
+ }, null, 8, ["modelValue"])]),
9297
+ _: 1
9298
+ }, 8, ["validation-messages", "validation-severity"])]),
9299
+ _: 1
9300
+ }, 8, ["validation"]),
9301
+ createVNode(_component_VCFormSubmit, {
9302
+ modelValue: _ctx.busy,
9303
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.busy = $event),
9304
+ invalid: _ctx.vuelidate.$invalid,
9305
+ "create-text": "Submit",
9306
+ "create-button-class": {
9307
+ value: "btn btn-sm btn-dark btn-block",
9308
+ presets: { bootstrap: false }
9309
+ },
9310
+ "create-icon-class": "fa-solid fa-right-to-bracket",
9311
+ submit: _ctx.submit
9312
+ }, null, 8, [
9313
+ "modelValue",
9314
+ "invalid",
9315
+ "submit"
9316
+ ]),
9317
+ _cache[6] || (_cache[6] = createElementVNode("hr", null, null, -1)),
9318
+ !_ctx.codeRequest || !_ctx.codeRequest.realm_id ? (openBlock(), createBlock(_component_ARealmPicker, {
9319
+ key: 0,
9320
+ value: _ctx.form.realm_id,
9321
+ onChange: _ctx.updateRealmId
9322
+ }, null, 8, ["value", "onChange"])) : createCommentVNode("", true),
9323
+ createVNode(_component_AIdentityProviders, {
9324
+ ref: "identityProviderRef",
9325
+ query: _ctx.identityProviderQuery,
9326
+ footer: false
9327
+ }, {
9328
+ header: withCtx(() => [createVNode(_component_ATitle, { text: "Identity Providers" })]),
9329
+ footer: withCtx((props) => [createVNode(_component_APagination, {
9330
+ busy: props.busy,
9331
+ meta: props.meta,
9332
+ load: (data) => props.load?.(data),
9333
+ total: props.total
9334
+ }, null, 8, [
9335
+ "busy",
9336
+ "meta",
9337
+ "load",
9338
+ "total"
9339
+ ])]),
9340
+ body: withCtx((props) => [createElementVNode("div", _hoisted_1$4, [(openBlock(true), createElementBlock(Fragment, null, renderList(props.data, (item, key) => {
9341
+ return openBlock(), createElementBlock("div", { key }, [createElementVNode("a", {
9342
+ href: _ctx.buildIdentityProviderURL(item.id),
9343
+ class: "btn btn-dark btn-xs p-2 me-1 identity-provider-box bg-dark"
9344
+ }, [createElementVNode("div", _hoisted_3$2, [createElementVNode("div", _hoisted_4$1, [createVNode(_component_AIdentityProviderIcon, {
9345
+ class: "fa-2x",
9346
+ entity: item
9347
+ }, null, 8, ["entity"])]), createElementVNode("div", null, toDisplayString(item.name), 1)])], 8, _hoisted_2$4)]);
9348
+ }), 128))])]),
9349
+ _: 1
9350
+ }, 8, ["query"])
9351
+ ], 32)]);
9639
9352
  }
9640
- var Login = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-957a0486"]]);
9353
+ var Login = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-aa7b46ad"]]);
9641
9354
 
9642
9355
  var _sfc_main$4 = defineComponent({
9643
9356
  props: {
@@ -9651,7 +9364,7 @@ var _sfc_main$4 = defineComponent({
9651
9364
  }
9652
9365
  },
9653
9366
  setup (props) {
9654
- const isEnabled = computed(()=>props.requested.indexOf(props.entity.name) !== -1);
9367
+ const isEnabled = computed(()=>props.requested.includes(props.entity.name));
9655
9368
  return {
9656
9369
  isEnabled
9657
9370
  };
@@ -9661,20 +9374,10 @@ var _sfc_main$4 = defineComponent({
9661
9374
  const _hoisted_1$3 = { class: "text-center" };
9662
9375
  const _hoisted_2$3 = { key: 0 };
9663
9376
  function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
9664
- return openBlock(), createElementBlock("div", null, [
9665
- createElementVNode("div", _hoisted_1$3, [
9666
- createElementVNode("i", {
9667
- class: normalizeClass(["fa-solid", {
9668
- "fa-check text-success": _ctx.isEnabled,
9669
- "fa-times text-danger": !_ctx.isEnabled
9670
- }])
9671
- }, null, 2)
9672
- ]),
9673
- createElementVNode("div", null, [
9674
- createElementVNode("strong", null, toDisplayString(_ctx.entity.name), 1),
9675
- _ctx.entity.description ? (openBlock(), createElementBlock("p", _hoisted_2$3, toDisplayString(_ctx.entity.description), 1)) : createCommentVNode("", true)
9676
- ])
9677
- ]);
9377
+ return openBlock(), createElementBlock("div", null, [createElementVNode("div", _hoisted_1$3, [createElementVNode("i", { class: normalizeClass(["fa-solid", {
9378
+ "fa-check text-success": _ctx.isEnabled,
9379
+ "fa-times text-danger": !_ctx.isEnabled
9380
+ }]) }, null, 2)]), createElementVNode("div", null, [createElementVNode("strong", null, toDisplayString(_ctx.entity.name), 1), _ctx.entity.description ? (openBlock(), createElementBlock("p", _hoisted_2$3, toDisplayString(_ctx.entity.description), 1)) : createCommentVNode("", true)])]);
9678
9381
  }
9679
9382
  var AuthorizeScope = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3]]);
9680
9383
 
@@ -9734,24 +9437,19 @@ var _sfc_main$3 = defineComponent({
9734
9437
  const _hoisted_1$2 = { key: 0 };
9735
9438
  const _hoisted_2$2 = { class: "flex-column" };
9736
9439
  function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
9737
- const _component_AuthorizeScope = resolveComponent("AuthorizeScope");
9738
- return _ctx.scopesAvailableNormalized.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
9739
- createElementVNode("div", null, [
9740
- _cache[0] || (_cache[0] = createTextVNode(" This will allow the ", -1)),
9741
- createElementVNode("strong", null, toDisplayString(_ctx.client.name), 1),
9742
- _cache[1] || (_cache[1] = createTextVNode(" application to ", -1))
9743
- ]),
9744
- createElementVNode("div", _hoisted_2$2, [
9745
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.scopesAvailableNormalized, (item) => {
9746
- return openBlock(), createBlock(_component_AuthorizeScope, {
9747
- key: item.id,
9748
- entity: item,
9749
- class: "d-flex flex-row gap-1",
9750
- requested: _ctx.scopesRequestedNormalized
9751
- }, null, 8, ["entity", "requested"]);
9752
- }), 128))
9753
- ])
9754
- ])) : createCommentVNode("", true);
9440
+ const _component_AuthorizeScope = resolveComponent("AuthorizeScope");
9441
+ return _ctx.scopesAvailableNormalized.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$2, [createElementVNode("div", null, [
9442
+ _cache[0] || (_cache[0] = createTextVNode(" This will allow the ", -1)),
9443
+ createElementVNode("strong", null, toDisplayString(_ctx.client.name), 1),
9444
+ _cache[1] || (_cache[1] = createTextVNode(" application to ", -1))
9445
+ ]), createElementVNode("div", _hoisted_2$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.scopesAvailableNormalized, (item) => {
9446
+ return openBlock(), createBlock(_component_AuthorizeScope, {
9447
+ key: item.id,
9448
+ entity: item,
9449
+ class: "d-flex flex-row gap-1",
9450
+ requested: _ctx.scopesRequestedNormalized
9451
+ }, null, 8, ["entity", "requested"]);
9452
+ }), 128))])])) : createCommentVNode("", true);
9755
9453
  }
9756
9454
  var AuthorizeScopes = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2]]);
9757
9455
 
@@ -9802,7 +9500,7 @@ var _sfc_main$2 = defineComponent({
9802
9500
  if (typeof window !== 'undefined') {
9803
9501
  window.location.href = url;
9804
9502
  }
9805
- } catch (e) {
9503
+ } catch {
9806
9504
  // todo: show toast :)
9807
9505
  }
9808
9506
  };
@@ -9827,67 +9525,37 @@ const _hoisted_11 = { class: "row" };
9827
9525
  const _hoisted_12 = { class: "col-6" };
9828
9526
  const _hoisted_13 = { class: "col-6" };
9829
9527
  function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
9830
- const _component_AuthorizeScopes = resolveComponent("AuthorizeScopes");
9831
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
9832
- createElementVNode("div", _hoisted_2$1, [
9833
- _cache[2] || (_cache[2] = createElementVNode("h5", { class: "text-secondary mb-1" }, " Application ", -1)),
9834
- createElementVNode("h1", _hoisted_3$1, toDisplayString(_ctx.client.name), 1)
9835
- ]),
9836
- createVNode(_component_AuthorizeScopes, {
9837
- client: _ctx.client,
9838
- "scopes-requested": _ctx.codeRequest.scope,
9839
- "scopes-available": _ctx.scopes
9840
- }, null, 8, ["client", "scopes-requested", "scopes-available"]),
9841
- createElementVNode("div", _hoisted_4, [
9842
- createElementVNode("div", _hoisted_5, [
9843
- _cache[4] || (_cache[4] = createElementVNode("div", null, [
9844
- createElementVNode("i", { class: "fa-solid fa-link" })
9845
- ], -1)),
9846
- createElementVNode("div", _hoisted_6, [
9847
- createElementVNode("small", null, [
9848
- _cache[3] || (_cache[3] = createTextVNode(" Once authorized, you will be redirected to: ", -1)),
9849
- createElementVNode("strong", null, toDisplayString(_ctx.codeRequest.redirect_uri), 1)
9850
- ])
9851
- ])
9852
- ]),
9853
- createElementVNode("div", _hoisted_7, [
9854
- _cache[7] || (_cache[7] = createElementVNode("div", null, [
9855
- createElementVNode("i", { class: "fa fa-solid fa-lock" })
9856
- ], -1)),
9857
- createElementVNode("div", _hoisted_8, [
9858
- createElementVNode("small", null, [
9859
- _cache[5] || (_cache[5] = createTextVNode(" This application is governed by the ", -1)),
9860
- createElementVNode("strong", null, toDisplayString(_ctx.client.name), 1),
9861
- _cache[6] || (_cache[6] = createTextVNode(" application's Privacy Policy and Terms of Service. ", -1))
9862
- ])
9863
- ])
9864
- ]),
9865
- createElementVNode("div", _hoisted_9, [
9866
- _cache[8] || (_cache[8] = createElementVNode("div", null, [
9867
- createElementVNode("i", { class: "fa fa-solid fa-clock" })
9868
- ], -1)),
9869
- createElementVNode("div", _hoisted_10, [
9870
- createElementVNode("small", null, " Active since " + toDisplayString(_ctx.client.created_at), 1)
9871
- ])
9872
- ])
9873
- ]),
9874
- createElementVNode("div", _hoisted_11, [
9875
- createElementVNode("div", _hoisted_12, [
9876
- createElementVNode("button", {
9877
- type: "button",
9878
- class: "btn btn-block btn-secondary",
9879
- onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.abort && _ctx.abort(...args), ["prevent"]))
9880
- }, " Abort ")
9881
- ]),
9882
- createElementVNode("div", _hoisted_13, [
9883
- createElementVNode("button", {
9884
- type: "button",
9885
- class: "btn btn-block btn-primary",
9886
- onClick: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.authorize && _ctx.authorize(...args), ["prevent"]))
9887
- }, " Authorize ")
9888
- ])
9889
- ])
9890
- ]);
9528
+ const _component_AuthorizeScopes = resolveComponent("AuthorizeScopes");
9529
+ return openBlock(), createElementBlock("div", _hoisted_1$1, [
9530
+ createElementVNode("div", _hoisted_2$1, [_cache[2] || (_cache[2] = createElementVNode("h5", { class: "text-secondary mb-1" }, " Application ", -1)), createElementVNode("h1", _hoisted_3$1, toDisplayString(_ctx.client.name), 1)]),
9531
+ createVNode(_component_AuthorizeScopes, {
9532
+ client: _ctx.client,
9533
+ "scopes-requested": _ctx.codeRequest.scope,
9534
+ "scopes-available": _ctx.scopes
9535
+ }, null, 8, [
9536
+ "client",
9537
+ "scopes-requested",
9538
+ "scopes-available"
9539
+ ]),
9540
+ createElementVNode("div", _hoisted_4, [
9541
+ createElementVNode("div", _hoisted_5, [_cache[4] || (_cache[4] = createElementVNode("div", null, [createElementVNode("i", { class: "fa-solid fa-link" })], -1)), createElementVNode("div", _hoisted_6, [createElementVNode("small", null, [_cache[3] || (_cache[3] = createTextVNode(" Once authorized, you will be redirected to: ", -1)), createElementVNode("strong", null, toDisplayString(_ctx.codeRequest.redirect_uri), 1)])])]),
9542
+ createElementVNode("div", _hoisted_7, [_cache[7] || (_cache[7] = createElementVNode("div", null, [createElementVNode("i", { class: "fa fa-solid fa-lock" })], -1)), createElementVNode("div", _hoisted_8, [createElementVNode("small", null, [
9543
+ _cache[5] || (_cache[5] = createTextVNode(" This application is governed by the ", -1)),
9544
+ createElementVNode("strong", null, toDisplayString(_ctx.client.name), 1),
9545
+ _cache[6] || (_cache[6] = createTextVNode(" application's Privacy Policy and Terms of Service. ", -1))
9546
+ ])])]),
9547
+ createElementVNode("div", _hoisted_9, [_cache[8] || (_cache[8] = createElementVNode("div", null, [createElementVNode("i", { class: "fa fa-solid fa-clock" })], -1)), createElementVNode("div", _hoisted_10, [createElementVNode("small", null, " Active since " + toDisplayString(_ctx.client.created_at), 1)])])
9548
+ ]),
9549
+ createElementVNode("div", _hoisted_11, [createElementVNode("div", _hoisted_12, [createElementVNode("button", {
9550
+ type: "button",
9551
+ class: "btn btn-block btn-secondary",
9552
+ onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.abort && _ctx.abort(...args), ["prevent"]))
9553
+ }, " Abort ")]), createElementVNode("div", _hoisted_13, [createElementVNode("button", {
9554
+ type: "button",
9555
+ class: "btn btn-block btn-primary",
9556
+ onClick: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.authorize && _ctx.authorize(...args), ["prevent"]))
9557
+ }, " Authorize ")])])
9558
+ ]);
9891
9559
  }
9892
9560
  var AuthorizeForm = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1]]);
9893
9561
 
@@ -9907,17 +9575,10 @@ const _hoisted_1 = { class: "flex-column" };
9907
9575
  const _hoisted_2 = { class: "text-center" };
9908
9576
  const _hoisted_3 = { class: "text-center fs-6 p-3" };
9909
9577
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
9910
- return openBlock(), createElementBlock("div", _hoisted_1, [
9911
- createElementVNode("div", _hoisted_2, [
9912
- createElementVNode("i", {
9913
- class: normalizeClass(["fa-solid fa-10x", {
9914
- "fa-exclamation text-danger": _ctx.isError,
9915
- "fa-info text-info": !_ctx.isError
9916
- }])
9917
- }, null, 2)
9918
- ]),
9919
- createElementVNode("div", _hoisted_3, toDisplayString(_ctx.message), 1)
9920
- ]);
9578
+ return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [createElementVNode("i", { class: normalizeClass(["fa-solid fa-10x", {
9579
+ "fa-exclamation text-danger": _ctx.isError,
9580
+ "fa-info text-info": !_ctx.isError
9581
+ }]) }, null, 2)]), createElementVNode("div", _hoisted_3, toDisplayString(_ctx.message), 1)]);
9921
9582
  }
9922
9583
  var AuthorizeText = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render]]);
9923
9584
 
@@ -10022,5 +9683,5 @@ var index = {
10022
9683
  install
10023
9684
  };
10024
9685
 
10025
- export { AAttributeNamesPolicyForm, _sfc_main as AAuthorize, AuthorizeText as AAuthorizeText, AClient, AClientForm, AClientPermissionAssignment, AClientPermissionAssignments, AClientPicker, AClientRoleAssignment, AClientRoleAssignments, AClientScope, AClientScopeAssignment, AClientScopeAssignments, AClientScopes, AClients, ACompositePolicyForm, ADatePolicyForm, AEntityDelete, AFormInputList, AFormInputListItem, AFormSubmit, AIdentityPolicyForm, AIdentityProvider, AIdentityProviderForm, AIdentityProviderIcon, AIdentityProviderLdapForm, AIdentityProviderOAuth2Form, AIdentityProviderPreset, AIdentityProviderProtocol, AIdentityProviderRoleAssignment, AIdentityProviderRoleAssignments, AIdentityProviders, Login as ALogin, APagination, APermission, APermissionCheck, APermissionClientAssignments, APermissionForm, APermissionRobotAssignments, APermissionRoleAssignments, APermissionUserAssignments, APermissions, APolicies, APolicy, APolicyForm, APolicyTypePicker, ARealm, ARealmForm, ARealmMatchPolicyForm, ARealmPicker, ARealms, ARobot, ARobotForm, ARobotPermissionAssignment, ARobotPermissionAssignments, ARobotRoleAssignment, ARobotRoleAssignments, ARobots, ARole, ARoleClientAssignments, ARoleForm, ARolePermissionAssignment, ARolePermissionAssignments, ARoleRobotAssignments, ARoleUserAssignments, ARoles, AScope, AScopeClientAssignments, AScopeForm, AScopes, ASearch, ATimePolicyForm, ATitle, AUser, AUserForm, AUserPasswordForm, AUserPermissionAssignment, AUserPermissionAssignments, AUserRoleAssignment, AUserRoleAssignments, AUsers, EntityRecordError, HTTPClientSymbol, LanguageSwitcherDropdown, STORE_ID, SocketClientSymbol, StoreDispatcherEventName, TranslatorTranslationClientKey, TranslatorTranslationDefaultKey, TranslatorTranslationGroup, TranslatorTranslationVuecsKey, VuelidateCustomRule, VuelidateCustomRuleKey, assignFormProperties, buildEntityCollectionCreatedHandler, buildEntityCollectionDeletedHandler, buildEntityCollectionUpdatedHandler, buildEntityVSlotProps, buildFormSubmitWithTranslations, createFormSubmitTranslations, createPermissionCheckerReactiveFn, createStore, createStoreDispatcher, index as default, defineEntityCollectionManager, defineEntityCollectionVEmitOptions, defineEntityCollectionVProps, defineEntityManager, defineEntityPicker, defineEntityPickerVEmitOptions, defineEntityPickerVProps, defineEntitySocketManager, defineEntityVEmitOptions, defineEntityVProps, extractVuelidateResultsFromChild, getVuelidateSeverity, hasHTTPClient, hasHTTPClientAuthenticationHook, hasNormalizedSlot, hasStoreFactory, inject$1 as inject, injectHTTPClient, injectHTTPClientAuthenticationHook, injectSocketManager, injectStore, injectStoreDispatcher, injectStoreFactory, injectTranslatorLocale, install, installHTTPClient, installHTTPClientAuthenticationHook, installSocketManager, installStore, installTranslator, isQuerySortedDescByDate, isSocketManagerUsable, mergeEntityCollectionRenderOptions, normalizeSlot, onChange, provide, provideHTTPClient, provideHTTPClientAuthenticationHook, provideSocketManager, provideStoreDispatcher, provideStoreFactory, renderToggleButton, storeToRefs, useIsEditing, usePermissionCheck, useTranslation, useTranslationsForBaseValidation, useTranslationsForGroup, useTranslationsForNestedValidation, useUpdatedAt, wrapFnWithBusyState };
9686
+ export { AAttributeNamesPolicyForm, _sfc_main as AAuthorize, AuthorizeText as AAuthorizeText, AClient, AClientForm, AClientPermissionAssignment, AClientPermissionAssignments, AClientPicker, AClientRoleAssignment, AClientRoleAssignments, AClientScope, AClientScopeAssignment, AClientScopeAssignments, AClientScopes, AClients, ACompositePolicyForm, ADatePolicyForm, AEntityDelete, AFormInputList, AFormInputListItem, AFormSubmit, AIdentityPolicyForm, AIdentityProvider, AIdentityProviderForm, AIdentityProviderIcon, AIdentityProviderLdapForm, AIdentityProviderOAuth2Form, AIdentityProviderPreset, AIdentityProviderProtocol, AIdentityProviderRoleAssignment, AIdentityProviderRoleAssignments, AIdentityProviders, Login as ALogin, APagination, APermission, APermissionCheck, APermissionClientAssignments, APermissionForm, APermissionPolicyAssignment, APermissionPolicyAssignments, APermissionRobotAssignments, APermissionRoleAssignments, APermissionUserAssignments, APermissions, APolicies, APolicy, APolicyForm, APolicyTypePicker, ARealm, ARealmForm, ARealmMatchPolicyForm, ARealmPicker, ARealms, ARobot, ARobotForm, ARobotPermissionAssignment, ARobotPermissionAssignments, ARobotRoleAssignment, ARobotRoleAssignments, ARobots, ARole, ARoleClientAssignments, ARoleForm, ARolePermissionAssignment, ARolePermissionAssignments, ARoleRobotAssignments, ARoleUserAssignments, ARoles, AScope, AScopeClientAssignments, AScopeForm, AScopes, ASearch, ATimePolicyForm, ATitle, AUser, AUserForm, AUserPasswordForm, AUserPermissionAssignment, AUserPermissionAssignments, AUserRoleAssignment, AUserRoleAssignments, AUsers, EntityRecordError, HTTPClientSymbol, LanguageSwitcherDropdown, STORE_ID, SocketClientSymbol, StoreDispatcherEventName, TranslatorTranslationClientKey, TranslatorTranslationDefaultKey, TranslatorTranslationGroup, TranslatorTranslationVuecsKey, VuelidateCustomRule, VuelidateCustomRuleKey, assignFormProperties, buildEntityCollectionCreatedHandler, buildEntityCollectionDeletedHandler, buildEntityCollectionUpdatedHandler, buildEntityVSlotProps, buildFormSubmitWithTranslations, createFormSubmitTranslations, createPermissionCheckerReactiveFn, createStore, createStoreDispatcher, index as default, defineEntityCollectionManager, defineEntityCollectionVEmitOptions, defineEntityCollectionVProps, defineEntityManager, defineEntityPicker, defineEntityPickerVEmitOptions, defineEntityPickerVProps, defineEntitySocketManager, defineEntityVEmitOptions, defineEntityVProps, extractVuelidateResultsFromChild, getVuelidateSeverity, hasHTTPClient, hasHTTPClientAuthenticationHook, hasNormalizedSlot, hasStoreFactory, inject$1 as inject, injectHTTPClient, injectHTTPClientAuthenticationHook, injectSocketManager, injectStore, injectStoreDispatcher, injectStoreFactory, injectTranslatorLocale, install, installHTTPClient, installHTTPClientAuthenticationHook, installSocketManager, installStore, installTranslator, isQuerySortedDescByDate, isSocketManagerUsable, mergeEntityCollectionRenderOptions, normalizeSlot, onChange, provide, provideHTTPClient, provideHTTPClientAuthenticationHook, provideSocketManager, provideStoreDispatcher, provideStoreFactory, renderToggleButton, storeToRefs, useIsEditing, usePermissionCheck, useTranslation, useTranslationsForBaseValidation, useTranslationsForGroup, useTranslationsForNestedValidation, useUpdatedAt, wrapFnWithBusyState };
10026
9687
  //# sourceMappingURL=index.mjs.map