@authup/client-web-kit 1.0.0-beta.26 → 1.0.0-beta.28

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 (74) hide show
  1. package/dist/components/entities/client/AClientForm.vue.d.ts +570 -0
  2. package/dist/components/entities/client/AClientForm.vue.d.ts.map +1 -0
  3. package/dist/components/entities/client/index.d.ts +1 -1
  4. package/dist/components/entities/client/index.d.ts.map +1 -1
  5. package/dist/components/entities/identity-provider/AIdentityProviderForm.d.ts +1 -11
  6. package/dist/components/entities/identity-provider/AIdentityProviderForm.d.ts.map +1 -1
  7. package/dist/components/entities/identity-provider/AIdentityProviderLdapForm.d.ts +1 -1
  8. package/dist/components/entities/identity-provider/AIdentityProviderOAuth2Form.d.ts +1 -10
  9. package/dist/components/entities/identity-provider/AIdentityProviderOAuth2Form.d.ts.map +1 -1
  10. package/dist/components/entities/identity-provider/AIdentityProviderPicker.vue.d.ts +3 -2
  11. package/dist/components/entities/identity-provider/AIdentityProviderPicker.vue.d.ts.map +1 -1
  12. package/dist/components/entities/permission/APermissionCheck.d.ts +5 -5
  13. package/dist/components/entities/permission/APermissionCheck.d.ts.map +1 -1
  14. package/dist/components/entities/policy/APolicyBasicForm.vue.d.ts +6 -5
  15. package/dist/components/entities/policy/APolicyBasicForm.vue.d.ts.map +1 -1
  16. package/dist/components/entities/policy/APolicyForm.vue.d.ts +19 -18
  17. package/dist/components/entities/policy/APolicyForm.vue.d.ts.map +1 -1
  18. package/dist/components/entities/policy/APolicyTypePicker.vue.d.ts +3 -2
  19. package/dist/components/entities/policy/APolicyTypePicker.vue.d.ts.map +1 -1
  20. package/dist/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue.d.ts +8 -7
  21. package/dist/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue.d.ts.map +1 -1
  22. package/dist/components/entities/policy/composite/ACompositePolicyForm.vue.d.ts +6 -5
  23. package/dist/components/entities/policy/composite/ACompositePolicyForm.vue.d.ts.map +1 -1
  24. package/dist/components/entities/policy/date/ADatePolicyForm.vue.d.ts +6 -5
  25. package/dist/components/entities/policy/date/ADatePolicyForm.vue.d.ts.map +1 -1
  26. package/dist/components/entities/policy/identity/AIdentityPolicyForm.vue.d.ts +8 -7
  27. package/dist/components/entities/policy/identity/AIdentityPolicyForm.vue.d.ts.map +1 -1
  28. package/dist/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue.d.ts +11 -10
  29. package/dist/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue.d.ts.map +1 -1
  30. package/dist/components/entities/policy/time/ATimePolicyForm.vue.d.ts +6 -5
  31. package/dist/components/entities/policy/time/ATimePolicyForm.vue.d.ts.map +1 -1
  32. package/dist/components/entities/robot/ARobotForm.d.ts +1 -1
  33. package/dist/components/entities/user/AUserForm.d.ts +1 -1
  34. package/dist/components/entities/user/AUserForm.d.ts.map +1 -1
  35. package/dist/components/index.d.ts +1 -0
  36. package/dist/components/index.d.ts.map +1 -1
  37. package/dist/components/utility/AFormSubmit.d.ts +1 -1
  38. package/dist/components/utility/form-input-list/AFormInputList.vue.d.ts +8 -7
  39. package/dist/components/utility/form-input-list/AFormInputList.vue.d.ts.map +1 -1
  40. package/dist/components/utility/form-input-list/AFormInputListItem.vue.d.ts +6 -5
  41. package/dist/components/utility/form-input-list/AFormInputListItem.vue.d.ts.map +1 -1
  42. package/dist/components/workflows/Login.vue.d.ts +354 -0
  43. package/dist/components/workflows/Login.vue.d.ts.map +1 -0
  44. package/dist/components/workflows/authorize/Authorize.vue.d.ts +489 -0
  45. package/dist/components/workflows/authorize/Authorize.vue.d.ts.map +1 -0
  46. package/dist/components/workflows/authorize/AuthorizeForm.vue.d.ts +84 -0
  47. package/dist/components/workflows/authorize/AuthorizeForm.vue.d.ts.map +1 -0
  48. package/dist/components/workflows/authorize/AuthorizeScope.vue.d.ts +28 -0
  49. package/dist/components/workflows/authorize/AuthorizeScope.vue.d.ts.map +1 -0
  50. package/dist/components/workflows/authorize/AuthorizeScopes.vue.d.ts +55 -0
  51. package/dist/components/workflows/authorize/AuthorizeScopes.vue.d.ts.map +1 -0
  52. package/dist/components/workflows/authorize/AuthorizeText.vue.d.ts +22 -0
  53. package/dist/components/workflows/authorize/AuthorizeText.vue.d.ts.map +1 -0
  54. package/dist/components/workflows/authorize/helpers.d.ts +10 -0
  55. package/dist/components/workflows/authorize/helpers.d.ts.map +1 -0
  56. package/dist/components/workflows/authorize/index.d.ts +3 -0
  57. package/dist/components/workflows/authorize/index.d.ts.map +1 -0
  58. package/dist/components/workflows/index.d.ts +3 -0
  59. package/dist/components/workflows/index.d.ts.map +1 -0
  60. package/dist/core/store/create.d.ts +18 -16
  61. package/dist/core/store/create.d.ts.map +1 -1
  62. package/dist/core/translator/constants.d.ts +3 -1
  63. package/dist/core/translator/constants.d.ts.map +1 -1
  64. package/dist/core/translator/de/client.d.ts.map +1 -1
  65. package/dist/core/translator/en/client.d.ts.map +1 -1
  66. package/dist/index.css +31 -11
  67. package/dist/index.mjs +2120 -1588
  68. package/dist/index.mjs.map +1 -1
  69. package/dist/module.d.ts.map +1 -1
  70. package/package.json +29 -28
  71. package/dist/components/entities/client/AClientForm.d.ts +0 -43
  72. package/dist/components/entities/client/AClientForm.d.ts.map +0 -1
  73. package/dist/index.cjs +0 -9650
  74. package/dist/index.cjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,22 +1,229 @@
1
- import { REALM_MASTER_NAME, EntityDefaultEventName, buildEntityChannelName, EntityType, IdentityProviderProtocol, IdentityProviderPreset, getIdentityProviderProtocolForPreset } from '@authup/core-kit';
2
- import { defineComponent, reactive, resolveComponent, createBlock, openBlock, withCtx, createVNode, createElementVNode, withModifiers, hasInjectionContext, inject as inject$2, provide as provide$1, ref, computed, getCurrentScope, onScopeDispose, shallowRef, toRaw, isRef, isReactive, toRef, watchEffect, unref, onMounted, watch, onUnmounted, h, createElementBlock, renderSlot, createTextVNode, createCommentVNode, Fragment, renderList, mergeProps, getCurrentInstance, resolveDynamicComponent, nextTick, normalizeClass, toDisplayString } from 'vue';
1
+ import installFormControl, { VCFormGroup, VCFormInput, buildFormSubmit, buildFormInputText, buildFormGroup, buildFormInput, buildFormTextarea, buildFormInputCheckbox, VCFormInputCheckbox } from '@vuecs/form-controls';
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, createBlock, openBlock, 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';
4
+ import installPagination, { buildPagination as buildPagination$1 } from '@vuecs/pagination';
5
+ import { REALM_MASTER_NAME, EntityDefaultEventName, buildEntityChannelName, EntityType, IdentityProviderProtocol, IdentityProviderPreset, getIdentityProviderProtocolForPreset, isUserFakeEmail, buildUserFakeEmail } from '@authup/core-kit';
3
6
  import { IVuelidate, useTranslationsForNestedValidations, useTranslationsForBaseValidation as useTranslationsForBaseValidation$1, getSeverity, install as install$1 } from '@ilingo/vuelidate';
4
- import { VCFormGroup, VCFormInput, buildFormSubmit, buildFormInputText, buildFormGroup, buildFormInput, buildFormTextarea, buildFormInputCheckbox, VCFormInputCheckbox } from '@vuecs/form-controls';
5
7
  import useVuelidate from '@vuelidate/core';
6
- import { maxLength, minLength, required, helpers, url, numeric, maxValue, minValue, email, sameAs } from '@vuelidate/validators';
8
+ import { maxLength, minLength, required, helpers, numeric, url, maxValue, minValue, email, sameAs } from '@vuelidate/validators';
7
9
  import { SlotName, buildList } from '@vuecs/list-controls';
8
10
  import { Client, CookieName, ClientAuthenticationHook, ClientAuthenticationHookEventName } from '@authup/core-http-kit';
9
11
  import { defineStore, storeToRefs as storeToRefs$1 } from 'pinia';
10
12
  import { PermissionMemoryProvider, PermissionChecker, PolicyEngine, TimePolicyInterval, isIntervalForDayOfWeek, isIntervalForDayOfMonth, isIntervalForDayOfYear, BuiltInPolicyType } from '@authup/access';
11
- import { OAuth2Error, isOpenIDProviderMetadata } from '@authup/specs';
12
- import { isObject as isObject$1, merge, createMerger } from 'smob';
13
- import { hasOwnProperty, extendObject, isObject as isObject$2, createNanoID } from '@authup/kit';
13
+ import { OAuth2Error, isOpenIDProviderMetadata, deserializeOAuth2Scope } from '@authup/specs';
14
+ import { hasOwnProperty as hasOwnProperty$1, extendObject, isObject as isObject$2, createNanoID, isBCryptHash, base64URLEncode } from '@authup/kit';
14
15
  import { SortDirection } from 'rapiq';
15
16
  import { ClientManager, buildEventFullName, EventNameSuffix } from '@authup/core-realtime-kit';
16
- import { buildPagination as buildPagination$1 } from '@vuecs/pagination';
17
17
  import Cookie from 'universal-cookie';
18
18
 
19
- var _sfc_main$b = defineComponent({
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
+
53
+ /*
54
+ * Copyright (c) 2024.
55
+ * Author Peter Placzek (tada5hi)
56
+ * For the full copyright and license information,
57
+ * view the LICENSE file that was distributed with this source code.
58
+ */ var Character;
59
+ (function(Character) {
60
+ Character["WILDCARD"] = "*";
61
+ Character["GLOBSTAR"] = "**";
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
+ }
125
+
126
+ class Store {
127
+ /**
128
+ * Set options for all groups.
129
+ *
130
+ * @param items
131
+ */ setAll(items) {
132
+ const keys = Object.keys(items);
133
+ for(let i = 0; i < keys.length; i++){
134
+ this.setOptions(keys[i], items[keys[i]]);
135
+ }
136
+ }
137
+ /**
138
+ * Set options for a specific group.
139
+ *
140
+ * @param group
141
+ * @param options
142
+ */ setOptions(group, options) {
143
+ if (typeof this.data[group] === 'undefined') {
144
+ this.data[group] = {};
145
+ }
146
+ this.data[group] = options;
147
+ }
148
+ hasOptions(group) {
149
+ return hasOwnProperty(this.data, group);
150
+ }
151
+ getOptions(group) {
152
+ if (typeof this.data[group] !== 'undefined') {
153
+ return this.data[group];
154
+ }
155
+ return {};
156
+ }
157
+ hasOption(group, option) {
158
+ return typeof this.data[group] !== 'undefined' && hasOwnProperty(this.data[group], option);
159
+ }
160
+ getOption(group, option) {
161
+ if (typeof this.data[group] === 'undefined') {
162
+ return undefined;
163
+ }
164
+ return this.data[group][option];
165
+ }
166
+ constructor(){
167
+ this.data = {};
168
+ }
169
+ }
170
+
171
+ class StoreManager {
172
+ keys() {
173
+ return Object.keys(this.instances);
174
+ }
175
+ use(key) {
176
+ if (typeof this.instances[key] !== 'undefined') {
177
+ return this.instances[key];
178
+ }
179
+ this.instances[key] = new Store();
180
+ return this.instances[key];
181
+ }
182
+ constructor(){
183
+ this.instances = {};
184
+ }
185
+ }
186
+
187
+ function inject$2(key, instance) {
188
+ if (instance && instance._context && instance._context.provides && instance._context.provides[key]) {
189
+ return instance._context.provides[key];
190
+ }
191
+ if (hasInjectionContext()) {
192
+ return inject$3(key, undefined);
193
+ }
194
+ return undefined;
195
+ }
196
+
197
+ function provide$1(key, value, app) {
198
+ if (typeof app === 'undefined') {
199
+ const val = inject$2(key);
200
+ if (typeof val !== 'undefined') {
201
+ return;
202
+ }
203
+ provide$2(key, value);
204
+ return;
205
+ }
206
+ if (app && app._context && app._context.provides && app._context.provides[key]) {
207
+ return;
208
+ }
209
+ app.provide(key, value);
210
+ }
211
+
212
+ function getSymbol(key) {
213
+ return Symbol.for('VCStoreManager');
214
+ }
215
+ function installStoreManager(instance, key) {
216
+ const symbol = getSymbol();
217
+ let manager = inject$2(symbol, instance);
218
+ if (manager) {
219
+ return manager;
220
+ }
221
+ manager = new StoreManager();
222
+ provide$1(symbol, manager, instance);
223
+ return manager;
224
+ }
225
+
226
+ var _sfc_main$i = defineComponent({
20
227
  components: {
21
228
  IVuelidate,
22
229
  VCFormInput,
@@ -69,71 +276,52 @@ var _export_sfc = (sfc, props) => {
69
276
  return target;
70
277
  };
71
278
 
72
- const _hoisted_1$7 = [
73
- "disabled"
74
- ];
75
- function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
76
- const _component_VCFormInput = resolveComponent("VCFormInput");
77
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
78
- const _component_IVuelidate = resolveComponent("IVuelidate");
79
- return openBlock(), createBlock(_component_IVuelidate, {
80
- validation: _ctx.vuelidate.name
81
- }, {
82
- default: withCtx((props)=>[
83
- createVNode(_component_VCFormGroup, {
84
- "validation-messages": props.data,
85
- "validation-severity": props.severity
86
- }, {
87
- default: withCtx(()=>[
88
- createVNode(_component_VCFormInput, {
89
- modelValue: _ctx.vuelidate.name.$model,
90
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.name.$model = $event),
91
- onChange: _ctx.handleUpdated
92
- }, {
93
- groupAppend: withCtx(()=>[
94
- createElementVNode("button", {
95
- disabled: _ctx.disabled,
96
- type: "button",
97
- class: "btn btn-xs btn-warning",
98
- onClick: _cache[0] || (_cache[0] = withModifiers((...args)=>_ctx.handleDeleted && _ctx.handleDeleted(...args), [
99
- "prevent"
100
- ]))
101
- }, _cache[2] || (_cache[2] = [
102
- createElementVNode("i", {
103
- class: "fa fa-minus"
104
- }, null, -1)
105
- ]), 8, _hoisted_1$7)
106
- ]),
107
- _: 1
108
- }, 8, [
109
- "modelValue",
110
- "onChange"
111
- ])
112
- ]),
113
- _: 2
114
- }, 1032, [
115
- "validation-messages",
116
- "validation-severity"
117
- ])
279
+ const _hoisted_1$d = ["disabled"];
280
+ function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
281
+ const _component_VCFormInput = resolveComponent("VCFormInput");
282
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
283
+ const _component_IVuelidate = resolveComponent("IVuelidate");
284
+ return openBlock(), createBlock(_component_IVuelidate, {
285
+ validation: _ctx.vuelidate.name
286
+ }, {
287
+ default: withCtx((props) => [
288
+ createVNode(_component_VCFormGroup, {
289
+ "validation-messages": props.data,
290
+ "validation-severity": props.severity
291
+ }, {
292
+ default: withCtx(() => [
293
+ createVNode(_component_VCFormInput, {
294
+ modelValue: _ctx.vuelidate.name.$model,
295
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.name.$model = $event),
296
+ onChange: _ctx.handleUpdated
297
+ }, {
298
+ groupAppend: withCtx(() => [
299
+ createElementVNode("button", {
300
+ disabled: _ctx.disabled,
301
+ type: "button",
302
+ class: "btn btn-xs btn-warning",
303
+ onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.handleDeleted && _ctx.handleDeleted(...args), ["prevent"]))
304
+ }, [..._cache[2] || (_cache[2] = [
305
+ createElementVNode("i", { class: "fa fa-minus" }, null, -1)
306
+ ])], 8, _hoisted_1$d)
118
307
  ]),
308
+ _: 1
309
+ }, 8, ["modelValue", "onChange"])
310
+ ]),
119
311
  _: 1
120
- }, 8, [
121
- "validation"
122
- ]);
312
+ }, 8, ["validation-messages", "validation-severity"])
313
+ ]),
314
+ _: 1
315
+ }, 8, ["validation"]);
123
316
  }
124
- var AFormInputListItem = /* @__PURE__ */ _export_sfc(_sfc_main$b, [
125
- [
126
- "render",
127
- _sfc_render$b
128
- ]
129
- ]);
317
+ var AFormInputListItem = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$h]]);
130
318
 
131
319
  function inject$1(key, instance) {
132
320
  if (instance && instance._context && instance._context.provides && instance._context.provides[key]) {
133
321
  return instance._context.provides[key];
134
322
  }
135
323
  if (hasInjectionContext()) {
136
- return inject$2(key, undefined);
324
+ return inject$3(key, undefined);
137
325
  }
138
326
  return undefined;
139
327
  }
@@ -144,7 +332,7 @@ function provide(key, value, app) {
144
332
  if (typeof val !== 'undefined') {
145
333
  return;
146
334
  }
147
- provide$1(key, value);
335
+ provide$2(key, value);
148
336
  return;
149
337
  }
150
338
  if (app && app._context && app._context.provides && app._context.provides[key]) {
@@ -202,28 +390,35 @@ function provideHTTPClientAuthenticationHook(refresher, app) {
202
390
 
203
391
  // src/event-emitter.ts
204
392
  var EventEmitter = class {
205
- on(type, handler) {
206
- if (!this.all.has(type)) {
207
- this.all.set(type, []);
208
- }
209
- const handlers = this.all.get(type);
210
- handlers.push(handler);
211
- return ()=>handlers.splice(handlers.indexOf(handler) >>> 0, 1);
212
- }
213
- off(type, handler) {
214
- if (!type) {
215
- return this.all.clear();
216
- }
217
- const handlers = this.all.get(type);
218
- if (handlers) {
219
- if (handler) {
220
- handlers.splice(handlers.indexOf(handler) >>> 0, 1);
221
- } else {
222
- this.all.delete(type);
223
- }
224
- }
393
+ /**
394
+ * A Map of event names to registered handler functions.
395
+ */
396
+ all;
397
+ constructor(all) {
398
+ this.all = all || /* @__PURE__ */ new Map();
399
+ }
400
+ on(type, handler) {
401
+ if (!this.all.has(type)) {
402
+ this.all.set(type, []);
225
403
  }
226
- /**
404
+ const handlers = this.all.get(type);
405
+ handlers.push(handler);
406
+ return () => handlers.splice(handlers.indexOf(handler) >>> 0, 1);
407
+ }
408
+ off(type, handler) {
409
+ if (!type) {
410
+ return this.all.clear();
411
+ }
412
+ const handlers = this.all.get(type);
413
+ if (handlers) {
414
+ if (handler) {
415
+ handlers.splice(handlers.indexOf(handler) >>> 0, 1);
416
+ } else {
417
+ this.all.delete(type);
418
+ }
419
+ }
420
+ }
421
+ /**
227
422
  * Invoke all handlers for the given type.
228
423
  * If present, `'*'` handlers are invoked after type-matched handlers.
229
424
  *
@@ -231,21 +426,19 @@ var EventEmitter = class {
231
426
  *
232
427
  * @param type The event type to invoke
233
428
  * @param payload Any value to each handler
234
- */ emit(type, ...payload) {
235
- let handlers = this.all.get(type);
236
- handlers?.slice().map((handler)=>{
237
- handler(...payload);
238
- });
239
- handlers = this.all.get("*");
240
- if (handlers) {
241
- handlers.slice().map((handler)=>{
242
- handler(type, payload);
243
- });
244
- }
245
- }
246
- constructor(all){
247
- this.all = all || /* @__PURE__ */ new Map();
429
+ */
430
+ emit(type, ...payload) {
431
+ let handlers = this.all.get(type);
432
+ handlers?.slice().map((handler) => {
433
+ handler(...payload);
434
+ });
435
+ handlers = this.all.get("*");
436
+ if (handlers) {
437
+ handlers.slice().map((handler) => {
438
+ handler(type, payload);
439
+ });
248
440
  }
441
+ }
249
442
  };
250
443
 
251
444
  function createStoreDispatcher() {
@@ -530,68 +723,77 @@ function createStore(context) {
530
723
  };
531
724
  }
532
725
 
533
- function tryOnScopeDispose(fn) {
534
- if (getCurrentScope()) {
535
- onScopeDispose(fn);
536
- return true;
537
- }
538
- return false;
726
+ //#endregion
727
+ //#region tryOnScopeDispose/index.ts
728
+ /**
729
+ * Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing
730
+ *
731
+ * @param fn
732
+ */
733
+ function tryOnScopeDispose(fn, failSilently) {
734
+ if (getCurrentScope()) {
735
+ onScopeDispose(fn, failSilently);
736
+ return true;
737
+ }
738
+ return false;
539
739
  }
540
740
  typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
541
741
 
742
+ /**
743
+ * Reactive methods to work with cookies (use {@link createCookies} method instead if you are using SSR)
744
+ * @param dependencies - array of watching cookie's names. Pass empty array if don't want to watch cookies changes.
745
+ * @param options
746
+ * @param options.doNotParse - don't try parse value as JSON
747
+ * @param options.autoUpdateDependencies - automatically update watching dependencies
748
+ * @param cookies - universal-cookie instance
749
+ *
750
+ * @__NO_SIDE_EFFECTS__
751
+ */
542
752
  function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie()) {
543
- const watchingDependencies = autoUpdateDependencies ? [
544
- ...[]
545
- ] : dependencies;
546
- let previousCookies = cookies.getAll({
547
- doNotParse: true
548
- });
549
- const touches = shallowRef(0);
550
- const onChange = ()=>{
551
- const newCookies = cookies.getAll({
552
- doNotParse: true
553
- });
554
- if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies)) {
555
- touches.value++;
556
- }
557
- previousCookies = newCookies;
558
- };
559
- cookies.addChangeListener(onChange);
560
- tryOnScopeDispose(()=>{
561
- cookies.removeChangeListener(onChange);
562
- });
563
- return {
564
- /**
565
- * Reactive get cookie by name. If **autoUpdateDependencies = true** then it will update watching dependencies
566
- */ get: (...args)=>{
567
- if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0])) watchingDependencies.push(args[0]);
568
- touches.value;
569
- return cookies.get(args[0], {
570
- doNotParse,
571
- ...args[1]
572
- });
573
- },
574
- /**
575
- * Reactive get all cookies
576
- */ getAll: (...args)=>{
577
- touches.value;
578
- return cookies.getAll({
579
- doNotParse,
580
- ...args[0]
581
- });
582
- },
583
- set: (...args)=>cookies.set(...args),
584
- remove: (...args)=>cookies.remove(...args),
585
- addChangeListener: (...args)=>cookies.addChangeListener(...args),
586
- removeChangeListener: (...args)=>cookies.removeChangeListener(...args)
587
- };
753
+ const watchingDependencies = autoUpdateDependencies ? [...[]] : dependencies;
754
+ let previousCookies = cookies.getAll({ doNotParse: true });
755
+ /**
756
+ * Adds reactivity to get/getAll methods
757
+ */
758
+ const touches = shallowRef(0);
759
+ const onChange = () => {
760
+ const newCookies = cookies.getAll({ doNotParse: true });
761
+ if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies)) touches.value++;
762
+ previousCookies = newCookies;
763
+ };
764
+ cookies.addChangeListener(onChange);
765
+ tryOnScopeDispose(() => {
766
+ cookies.removeChangeListener(onChange);
767
+ });
768
+ return {
769
+ get: (...args) => {
770
+ /**
771
+ * Auto update watching dependencies if needed
772
+ */
773
+ if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0])) watchingDependencies.push(args[0]);
774
+ touches.value;
775
+ return cookies.get(args[0], {
776
+ doNotParse,
777
+ ...args[1]
778
+ });
779
+ },
780
+ getAll: (...args) => {
781
+ touches.value;
782
+ return cookies.getAll({
783
+ doNotParse,
784
+ ...args[0]
785
+ });
786
+ },
787
+ set: (...args) => cookies.set(...args),
788
+ remove: (...args) => cookies.remove(...args),
789
+ addChangeListener: (...args) => cookies.addChangeListener(...args),
790
+ removeChangeListener: (...args) => cookies.removeChangeListener(...args)
791
+ };
588
792
  }
589
793
  function shouldUpdate(dependencies, newCookies, oldCookies) {
590
- if (!dependencies) return true;
591
- for (const dependency of dependencies){
592
- if (newCookies[dependency] !== oldCookies[dependency]) return true;
593
- }
594
- return false;
794
+ if (!dependencies) return true;
795
+ for (const dependency of dependencies) if (newCookies[dependency] !== oldCookies[dependency]) return true;
796
+ return false;
595
797
  }
596
798
 
597
799
  const sym = Symbol.for('AuthupStore');
@@ -903,6 +1105,8 @@ var TranslatorTranslationClientKey = /*#__PURE__*/ function(TranslatorTranslatio
903
1105
  TranslatorTranslationClientKey["DESCRIPTION_HINT"] = "descriptionHint";
904
1106
  TranslatorTranslationClientKey["REDIRECT_URI_HINT"] = "redirectURIHint";
905
1107
  TranslatorTranslationClientKey["IS_CONFIDENTIAL"] = "isConfidential";
1108
+ TranslatorTranslationClientKey["IS_ACTIVE"] = "isActive";
1109
+ TranslatorTranslationClientKey["HASH_SECRET"] = "hashSecret";
906
1110
  return TranslatorTranslationClientKey;
907
1111
  }({});
908
1112
  var TranslatorTranslationDefaultKey = /*#__PURE__*/ function(TranslatorTranslationDefaultKey) {
@@ -936,113 +1140,10 @@ var TranslatorTranslationDefaultKey = /*#__PURE__*/ function(TranslatorTranslati
936
1140
  TranslatorTranslationDefaultKey["ROLES"] = "roles";
937
1141
  TranslatorTranslationDefaultKey["SCOPES"] = "scopes";
938
1142
  TranslatorTranslationDefaultKey["SECRET"] = "secret";
939
- TranslatorTranslationDefaultKey["REDIRECT_URIS"] = "redirectUris";
940
- TranslatorTranslationDefaultKey["USERS"] = "users";
941
- return TranslatorTranslationDefaultKey;
942
- }({});
943
-
944
- /*
945
- * Copyright (c) 2024-2024.
946
- * Author Peter Placzek (tada5hi)
947
- * For the full copyright and license information,
948
- * view the LICENSE file that was distributed with this source code.
949
- */ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
950
- /**
951
- * Convert string to property path array.
952
- *
953
- * @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
954
- * @see https://github.com/chaijs/pathval
955
- *
956
- * @param segment
957
- */ function pathToArray(segment) {
958
- const str = segment.replace(/([^\\])\[/g, '$1.[');
959
- const parts = str.match(/(\\\.|[^.]+?)+/g);
960
- if (!parts) {
961
- return [];
962
- }
963
- const result = [];
964
- for(let i = 0; i < parts.length; i++){
965
- if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
966
- continue;
967
- }
968
- const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
969
- if (regex) {
970
- result.push(regex[1]);
971
- } else {
972
- result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
973
- }
974
- }
975
- return result;
976
- }
977
- /*
978
- * Copyright (c) 2024.
979
- * Author Peter Placzek (tada5hi)
980
- * For the full copyright and license information,
981
- * view the LICENSE file that was distributed with this source code.
982
- */ var Character;
983
- (function(Character) {
984
- Character["WILDCARD"] = "*";
985
- Character["GLOBSTAR"] = "**";
986
- })(Character || (Character = {}));
987
- /*
988
- * Copyright (c) 2024.
989
- * Author Peter Placzek (tada5hi)
990
- * For the full copyright and license information,
991
- * view the LICENSE file that was distributed with this source code.
992
- */ function isObject(input) {
993
- return !!input && typeof input === 'object' && !Array.isArray(input);
994
- }
995
- function getPathValue(data, path) {
996
- const parts = Array.isArray(path) ? path : pathToArray(path);
997
- let res;
998
- let temp = data;
999
- let index = 0;
1000
- while(index < parts.length){
1001
- if (temp === null || typeof temp === 'undefined') {
1002
- break;
1003
- }
1004
- if (parts[index] in Object(temp)) {
1005
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
1006
- // @ts-expect-error
1007
- temp = temp[parts[index]];
1008
- } else {
1009
- break;
1010
- }
1011
- if (index === parts.length - 1) {
1012
- res = temp;
1013
- }
1014
- index++;
1015
- }
1016
- return res;
1017
- }
1018
- const NUMBER_REGEX = /^\d+$/;
1019
- function setPathValue(data, path, value) {
1020
- const parts = Array.isArray(path) ? path : pathToArray(path);
1021
- let temp = data;
1022
- let index = 0;
1023
- while(index < parts.length){
1024
- /* istanbul ignore next */ if (!Array.isArray(temp) && !isObject(temp)) {
1025
- break;
1026
- }
1027
- const key = parts[index];
1028
- // [foo, '0']
1029
- if (typeof temp[key] === 'undefined') {
1030
- const match = NUMBER_REGEX.test(key);
1031
- if (match) {
1032
- temp[key] = [];
1033
- } else {
1034
- temp[key] = {};
1035
- }
1036
- }
1037
- if (index === parts.length - 1) {
1038
- temp[key] = value;
1039
- break;
1040
- }
1041
- index++;
1042
- temp = temp[key];
1043
- }
1044
- return data;
1045
- }
1143
+ TranslatorTranslationDefaultKey["REDIRECT_URIS"] = "redirectUris";
1144
+ TranslatorTranslationDefaultKey["USERS"] = "users";
1145
+ return TranslatorTranslationDefaultKey;
1146
+ }({});
1046
1147
 
1047
1148
  class MemoryStore {
1048
1149
  async get(context) {
@@ -1076,62 +1177,76 @@ class MemoryStore {
1076
1177
  }
1077
1178
 
1078
1179
  typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
1079
- const noop = ()=>{};
1180
+ const noop = () => {
1181
+ };
1080
1182
 
1081
1183
  function computedAsync(evaluationCallback, initialState, optionsOrRef) {
1082
- let options;
1083
- if (isRef(optionsOrRef)) {
1084
- options = {
1085
- evaluating: optionsOrRef
1086
- };
1087
- } else {
1088
- options = {};
1089
- }
1090
- const { lazy = false, evaluating = void 0, shallow = true, onError = noop } = options;
1091
- const started = ref(!lazy);
1092
- const current = shallow ? shallowRef(initialState) : ref(initialState);
1093
- let counter = 0;
1094
- watchEffect(async (onInvalidate)=>{
1095
- if (!started.value) return;
1096
- counter++;
1097
- const counterAtBeginning = counter;
1098
- let hasFinished = false;
1099
- if (evaluating) {
1100
- Promise.resolve().then(()=>{
1101
- evaluating.value = true;
1102
- });
1103
- }
1104
- try {
1105
- const result = await evaluationCallback((cancelCallback)=>{
1106
- onInvalidate(()=>{
1107
- if (evaluating) evaluating.value = false;
1108
- if (!hasFinished) cancelCallback();
1109
- });
1110
- });
1111
- if (counterAtBeginning === counter) current.value = result;
1112
- } catch (e) {
1113
- onError(e);
1114
- } finally{
1115
- if (evaluating && counterAtBeginning === counter) evaluating.value = false;
1116
- hasFinished = true;
1117
- }
1118
- });
1119
- if (lazy) {
1120
- return computed(()=>{
1121
- started.value = true;
1122
- return current.value;
1123
- });
1124
- } else {
1125
- return current;
1184
+ var _a;
1185
+ let options;
1186
+ if (isRef(optionsOrRef)) {
1187
+ options = {
1188
+ evaluating: optionsOrRef
1189
+ };
1190
+ } else {
1191
+ options = {};
1192
+ }
1193
+ const {
1194
+ lazy = false,
1195
+ flush = "pre",
1196
+ evaluating = void 0,
1197
+ shallow = true,
1198
+ onError = (_a = globalThis.reportError) != null ? _a : noop
1199
+ } = options;
1200
+ const started = shallowRef(!lazy);
1201
+ const current = shallow ? shallowRef(initialState) : ref(initialState);
1202
+ let counter = 0;
1203
+ watchEffect(async (onInvalidate) => {
1204
+ if (!started.value)
1205
+ return;
1206
+ counter++;
1207
+ const counterAtBeginning = counter;
1208
+ let hasFinished = false;
1209
+ if (evaluating) {
1210
+ Promise.resolve().then(() => {
1211
+ evaluating.value = true;
1212
+ });
1126
1213
  }
1214
+ try {
1215
+ const result = await evaluationCallback((cancelCallback) => {
1216
+ onInvalidate(() => {
1217
+ if (evaluating)
1218
+ evaluating.value = false;
1219
+ if (!hasFinished)
1220
+ cancelCallback();
1221
+ });
1222
+ });
1223
+ if (counterAtBeginning === counter)
1224
+ current.value = result;
1225
+ } catch (e) {
1226
+ onError(e);
1227
+ } finally {
1228
+ if (evaluating && counterAtBeginning === counter)
1229
+ evaluating.value = false;
1230
+ hasFinished = true;
1231
+ }
1232
+ }, { flush });
1233
+ if (lazy) {
1234
+ return computed(() => {
1235
+ started.value = true;
1236
+ return current.value;
1237
+ });
1238
+ } else {
1239
+ return current;
1240
+ }
1127
1241
  }
1128
1242
 
1129
1243
  function inject(key, instance) {
1130
1244
  if (hasInjectionContext()) {
1131
- return inject$2(key, undefined);
1245
+ return inject$3(key, undefined);
1132
1246
  }
1133
1247
  return undefined;
1134
1248
  }
1249
+
1135
1250
  const IlingoSymbol = Symbol.for('Ilingo');
1136
1251
  function injectIlingo(app) {
1137
1252
  const instance = inject(IlingoSymbol);
@@ -1140,6 +1255,7 @@ function injectIlingo(app) {
1140
1255
  }
1141
1256
  return instance;
1142
1257
  }
1258
+
1143
1259
  const LocaleSymbol = Symbol.for('ILocale');
1144
1260
  function injectLocale(app) {
1145
1261
  const locale = inject(LocaleSymbol);
@@ -1148,6 +1264,7 @@ function injectLocale(app) {
1148
1264
  }
1149
1265
  return locale;
1150
1266
  }
1267
+
1151
1268
  function extractReactiveData(input) {
1152
1269
  const output = {};
1153
1270
  const keys = Object.keys(input);
@@ -1156,6 +1273,7 @@ function extractReactiveData(input) {
1156
1273
  }
1157
1274
  return output;
1158
1275
  }
1276
+
1159
1277
  function useTranslation$1(ctx) {
1160
1278
  const instance = injectIlingo();
1161
1279
  const locale = injectLocale();
@@ -1170,6 +1288,7 @@ function useTranslation$1(ctx) {
1170
1288
  return value || defaultValue;
1171
1289
  }, defaultValue);
1172
1290
  }
1291
+
1173
1292
  defineComponent({
1174
1293
  props: {
1175
1294
  path: {
@@ -1233,7 +1352,9 @@ const TranslatorTranslationClientGerman = {
1233
1352
  [TranslatorTranslationClientKey.NAME_HINT]: 'Etwas, das Benutzer erkennen und vertrauen werden',
1234
1353
  [TranslatorTranslationClientKey.DESCRIPTION_HINT]: 'Dies wird allen Benutzern dieser Anwendung angezeigt',
1235
1354
  [TranslatorTranslationClientKey.REDIRECT_URI_HINT]: 'URI-Muster, zu dem ein Browser nach einem erfolgreichen Login weiterleiten kann',
1236
- [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: 'Ist vertraulich?'
1355
+ [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: 'Ist vertraulich?',
1356
+ [TranslatorTranslationClientKey.IS_ACTIVE]: 'Ist aktiv?',
1357
+ [TranslatorTranslationClientKey.HASH_SECRET]: 'Geheimnis hashen?'
1237
1358
  };
1238
1359
 
1239
1360
  const TranslatorTranslationDefaultGerman = {
@@ -1290,7 +1411,7 @@ function extractVuelidateResultsFromChild(vuelidate, child, keys) {
1290
1411
  const childKeys = keys ?? Object.keys(childResults).filter((key)=>!key.startsWith('$'));
1291
1412
  const result = {};
1292
1413
  for(let i = 0; i < childKeys.length; i++){
1293
- if (hasOwnProperty(childResults, childKeys[i])) {
1414
+ if (hasOwnProperty$1(childResults, childKeys[i])) {
1294
1415
  result[childKeys[i]] = childResults[childKeys[i]].$model;
1295
1416
  }
1296
1417
  }
@@ -1310,7 +1431,9 @@ const TranslatorTranslationClientEnglish = {
1310
1431
  [TranslatorTranslationClientKey.NAME_HINT]: 'Something users will recognize and trust',
1311
1432
  [TranslatorTranslationClientKey.DESCRIPTION_HINT]: 'Displayed to all users of this application',
1312
1433
  [TranslatorTranslationClientKey.REDIRECT_URI_HINT]: 'URI pattern a browser can redirect to after a successful login',
1313
- [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: 'Is confidential?'
1434
+ [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: 'Is confidential?',
1435
+ [TranslatorTranslationClientKey.IS_ACTIVE]: 'Is active?',
1436
+ [TranslatorTranslationClientKey.HASH_SECRET]: 'Hash secret?'
1314
1437
  };
1315
1438
 
1316
1439
  const TranslatorTranslationDefaultEnglish = {
@@ -1458,8 +1581,8 @@ function createPermissionCheckerReactiveFn(ctx = {}) {
1458
1581
  try {
1459
1582
  computePromise = store.permissionChecker.preCheckOneOf({
1460
1583
  ...ctx,
1461
- data: {
1462
- ...ctx.data || {},
1584
+ input: {
1585
+ ...ctx.input || {},
1463
1586
  identity
1464
1587
  }
1465
1588
  }).then(()=>true).catch(()=>false);
@@ -1532,7 +1655,7 @@ function installSocketManager(app, options) {
1532
1655
  * @param name
1533
1656
  * @param $slots
1534
1657
  */ function hasNormalizedSlot(name, $slots = {}) {
1535
- return hasOwnProperty($slots, name);
1658
+ return hasOwnProperty$1($slots, name);
1536
1659
  }
1537
1660
  /**
1538
1661
  * Returns VNodes for named slot either scoped or unscoped
@@ -1543,7 +1666,7 @@ function installSocketManager(app, options) {
1543
1666
  *
1544
1667
  * @returns {Array} VNodes
1545
1668
  */ function normalizeSlot(name, scope = {}, $slots = {}) {
1546
- if (hasOwnProperty($slots, name)) {
1669
+ if (hasOwnProperty$1($slots, name)) {
1547
1670
  return $slots[name](scope);
1548
1671
  }
1549
1672
  return [];
@@ -1593,7 +1716,7 @@ const ATranslationDefault = defineComponent({
1593
1716
  }
1594
1717
  });
1595
1718
 
1596
- var _sfc_main$a = defineComponent({
1719
+ var _sfc_main$h = defineComponent({
1597
1720
  components: {
1598
1721
  ATranslationDefault,
1599
1722
  AFormInputListItem
@@ -1672,95 +1795,63 @@ var _sfc_main$a = defineComponent({
1672
1795
  }
1673
1796
  });
1674
1797
 
1675
- const _hoisted_1$6 = {
1676
- class: "d-flex flex-column gap-2"
1677
- };
1678
- const _hoisted_2$5 = {
1679
- class: "d-flex flex-row"
1680
- };
1681
- const _hoisted_3$5 = {
1682
- class: "align-self-end"
1683
- };
1684
- const _hoisted_4$4 = {
1685
- class: "ms-auto"
1686
- };
1687
- const _hoisted_5$2 = [
1688
- "disabled"
1689
- ];
1690
- const _hoisted_6$1 = {
1691
- class: "d-flex flex-column gap-1"
1692
- };
1693
- function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
1694
- const _component_ATranslationDefault = resolveComponent("ATranslationDefault");
1695
- const _component_AFormInputListItem = resolveComponent("AFormInputListItem");
1696
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
1697
- createElementVNode("div", _hoisted_2$5, [
1698
- createElementVNode("div", _hoisted_3$5, [
1699
- renderSlot(_ctx.$slots, "label", {}, ()=>[
1700
- _cache[1] || (_cache[1] = createTextVNode(" Names "))
1701
- ])
1702
- ]),
1703
- createElementVNode("div", _hoisted_4$4, [
1704
- createElementVNode("button", {
1705
- class: "btn btn-xs btn-primary",
1706
- type: "button",
1707
- disabled: !_ctx.canAdd,
1708
- onClick: _cache[0] || (_cache[0] = withModifiers(($event)=>_ctx.add(), [
1709
- "prevent"
1710
- ]))
1711
- }, [
1712
- _cache[2] || (_cache[2] = createElementVNode("i", {
1713
- class: "fa fa-plus"
1714
- }, null, -1)),
1715
- _cache[3] || (_cache[3] = createTextVNode()),
1716
- createVNode(_component_ATranslationDefault, {
1717
- name: "add"
1718
- })
1719
- ], 8, _hoisted_5$2)
1720
- ])
1721
- ]),
1722
- createElementVNode("div", _hoisted_6$1, [
1723
- _ctx.items.length === 0 ? renderSlot(_ctx.$slots, "noItems", {
1724
- key: 0
1725
- }, ()=>[
1726
- _cache[4] || (_cache[4] = createElementVNode("div", {
1727
- class: "alert alert-sm alert-info"
1728
- }, " The form list has no items yet ", -1))
1729
- ]) : createCommentVNode("", true),
1730
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item)=>{
1731
- return renderSlot(_ctx.$slots, "default", {
1732
- key: item.id,
1733
- item,
1734
- updated: _ctx.handleUpdated,
1735
- deleted: _ctx.handleDeleted
1736
- }, ()=>[
1737
- (openBlock(), createBlock(_component_AFormInputListItem, {
1738
- key: item.id,
1739
- disabled: !_ctx.canDrop,
1740
- name: item.value,
1741
- onUpdated: (input)=>{
1742
- _ctx.handleUpdated(item.id, input);
1743
- },
1744
- onDeleted: ()=>{
1745
- _ctx.handleDeleted(item.id);
1746
- }
1747
- }, null, 8, [
1748
- "disabled",
1749
- "name",
1750
- "onUpdated",
1751
- "onDeleted"
1752
- ]))
1753
- ]);
1754
- }), 128))
1798
+ const _hoisted_1$c = { class: "d-flex flex-column gap-2" };
1799
+ const _hoisted_2$b = { class: "d-flex flex-row" };
1800
+ const _hoisted_3$9 = { class: "align-self-end" };
1801
+ const _hoisted_4$7 = { class: "ms-auto" };
1802
+ const _hoisted_5$4 = ["disabled"];
1803
+ const _hoisted_6$3 = { class: "d-flex flex-column gap-1" };
1804
+ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
1805
+ const _component_ATranslationDefault = resolveComponent("ATranslationDefault");
1806
+ const _component_AFormInputListItem = resolveComponent("AFormInputListItem");
1807
+ return openBlock(), createElementBlock("div", _hoisted_1$c, [
1808
+ createElementVNode("div", _hoisted_2$b, [
1809
+ createElementVNode("div", _hoisted_3$9, [
1810
+ renderSlot(_ctx.$slots, "label", {}, () => [
1811
+ _cache[1] || (_cache[1] = createTextVNode(" Names ", -1))
1755
1812
  ])
1756
- ]);
1813
+ ]),
1814
+ createElementVNode("div", _hoisted_4$7, [
1815
+ createElementVNode("button", {
1816
+ class: "btn btn-xs btn-primary",
1817
+ type: "button",
1818
+ disabled: !_ctx.canAdd,
1819
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.add(), ["prevent"]))
1820
+ }, [
1821
+ _cache[2] || (_cache[2] = createElementVNode("i", { class: "fa fa-plus" }, null, -1)),
1822
+ _cache[3] || (_cache[3] = createTextVNode()),
1823
+ createVNode(_component_ATranslationDefault, { name: "add" })
1824
+ ], 8, _hoisted_5$4)
1825
+ ])
1826
+ ]),
1827
+ createElementVNode("div", _hoisted_6$3, [
1828
+ _ctx.items.length === 0 ? renderSlot(_ctx.$slots, "noItems", { key: 0 }, () => [
1829
+ _cache[4] || (_cache[4] = createElementVNode("div", { class: "alert alert-sm alert-info" }, " The form list has no items yet ", -1))
1830
+ ]) : createCommentVNode("", true),
1831
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
1832
+ return renderSlot(_ctx.$slots, "default", {
1833
+ key: item.id,
1834
+ item,
1835
+ updated: _ctx.handleUpdated,
1836
+ deleted: _ctx.handleDeleted
1837
+ }, () => [
1838
+ (openBlock(), createBlock(_component_AFormInputListItem, {
1839
+ key: item.id,
1840
+ disabled: !_ctx.canDrop,
1841
+ name: item.value,
1842
+ onUpdated: (input) => {
1843
+ _ctx.handleUpdated(item.id, input);
1844
+ },
1845
+ onDeleted: () => {
1846
+ _ctx.handleDeleted(item.id);
1847
+ }
1848
+ }, null, 8, ["disabled", "name", "onUpdated", "onDeleted"]))
1849
+ ]);
1850
+ }), 128))
1851
+ ])
1852
+ ]);
1757
1853
  }
1758
- var AFormInputList = /* @__PURE__ */ _export_sfc(_sfc_main$a, [
1759
- [
1760
- "render",
1761
- _sfc_render$a
1762
- ]
1763
- ]);
1854
+ var AFormInputList = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$g]]);
1764
1855
 
1765
1856
  function buildPagination(ctx) {
1766
1857
  return buildPagination$1({
@@ -2110,7 +2201,7 @@ function create$1(context) {
2110
2201
  });
2111
2202
  const client = injectHTTPClient();
2112
2203
  let domainAPI;
2113
- if (hasOwnProperty(client, context.type)) {
2204
+ if (hasOwnProperty$1(client, context.type)) {
2114
2205
  domainAPI = client[context.type];
2115
2206
  }
2116
2207
  let query;
@@ -2120,7 +2211,7 @@ function create$1(context) {
2120
2211
  meta.value.busy = true;
2121
2212
  try {
2122
2213
  let filters;
2123
- if (context.queryFilters && input.filters && hasOwnProperty(input.filters, 'name') && typeof input.filters.name === 'string') {
2214
+ if (context.queryFilters && input.filters && hasOwnProperty$1(input.filters, 'name') && typeof input.filters.name === 'string') {
2124
2215
  // todo: queryFilters should customize full filters object!
2125
2216
  filters = context.queryFilters(input.filters.name);
2126
2217
  }
@@ -2342,7 +2433,7 @@ function defineEntityVProps() {
2342
2433
  function create(ctx) {
2343
2434
  const client = injectHTTPClient();
2344
2435
  let domainAPI;
2345
- if (hasOwnProperty(client, ctx.type)) {
2436
+ if (hasOwnProperty$1(client, ctx.type)) {
2346
2437
  domainAPI = client[ctx.type];
2347
2438
  }
2348
2439
  const entity = ref(undefined);
@@ -2356,7 +2447,7 @@ function create(ctx) {
2356
2447
  realmId = isRef(ctx.realmId) ? ctx.realmId.value : ctx.realmId;
2357
2448
  }
2358
2449
  if (!realmId && entity.value) {
2359
- if (hasOwnProperty(entity.value, 'realm_id') && typeof entity.value.realm_id === 'string') {
2450
+ if (hasOwnProperty$1(entity.value, 'realm_id') && typeof entity.value.realm_id === 'string') {
2360
2451
  return entity.value.realm_id;
2361
2452
  }
2362
2453
  }
@@ -3444,8 +3535,8 @@ const ARealmForm = defineComponent({
3444
3535
 
3445
3536
  const ARealms = defineComponent({
3446
3537
  props: defineEntityCollectionVProps(),
3447
- slots: Object,
3448
3538
  emits: defineEntityCollectionVEmitOptions(),
3539
+ slots: Object,
3449
3540
  setup (props, ctx) {
3450
3541
  const { render } = defineEntityCollectionManager({
3451
3542
  type: `${EntityType.REALM}`,
@@ -3485,7 +3576,13 @@ const ARealmPicker = defineComponent({
3485
3576
  }
3486
3577
  });
3487
3578
 
3488
- const AClientForm = defineComponent({
3579
+ var _sfc_main$g = defineComponent({
3580
+ components: {
3581
+ AFormSubmit,
3582
+ ARealmPicker,
3583
+ AFormInputList,
3584
+ IVuelidate
3585
+ },
3489
3586
  props: {
3490
3587
  name: {
3491
3588
  type: String,
@@ -3502,8 +3599,8 @@ const AClientForm = defineComponent({
3502
3599
  },
3503
3600
  emits: defineEntityVEmitOptions(),
3504
3601
  setup (props, ctx) {
3505
- const busy = ref(false);
3506
3602
  const form = reactive({
3603
+ active: true,
3507
3604
  name: '',
3508
3605
  display_name: '',
3509
3606
  description: '',
@@ -3511,10 +3608,14 @@ const AClientForm = defineComponent({
3511
3608
  redirect_uri: '',
3512
3609
  base_url: '',
3513
3610
  root_url: '',
3514
- is_confidential: false,
3515
- secret: ''
3611
+ is_confidential: true,
3612
+ secret: '',
3613
+ secret_hashed: false
3516
3614
  });
3517
- const $v = useVuelidate({
3615
+ const vuelidate = useVuelidate({
3616
+ active: {
3617
+ required
3618
+ },
3518
3619
  name: {
3519
3620
  required,
3520
3621
  [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT],
@@ -3533,14 +3634,15 @@ const AClientForm = defineComponent({
3533
3634
  required
3534
3635
  },
3535
3636
  redirect_uri: {
3536
- url,
3637
+ // todo: url is required!
3537
3638
  maxLength: maxLength(2000)
3538
3639
  },
3539
3640
  is_confidential: {},
3540
3641
  secret: {
3541
3642
  minLength: minLength(3),
3542
3643
  maxLength: maxLength(256)
3543
- }
3644
+ },
3645
+ secret_hashed: {}
3544
3646
  }, form);
3545
3647
  const store = injectStore();
3546
3648
  const storeRefs = storeToRefs(store);
@@ -3552,27 +3654,33 @@ const AClientForm = defineComponent({
3552
3654
  const isEditing = useIsEditing(manager.data);
3553
3655
  const updatedAt = useUpdatedAt(props.entity);
3554
3656
  const isNameFixed = computed(()=>!!props.name && props.name.length > 0);
3555
- const realmId = computed(()=>{
3556
- if (!storeRefs.realmIsRoot) {
3557
- return storeRefs.realmId.value;
3657
+ const realmId = computed(()=>manager.data.value ? manager.data.value.realm_id : storeRefs.realmId.value);
3658
+ const generateSecret = ()=>createNanoID('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_!.', 32);
3659
+ const isSecretHashed = computed(()=>{
3660
+ if (!manager.data.value || manager.data.value.secret !== form.secret) {
3661
+ return false;
3558
3662
  }
3559
- return manager.data.value ? manager.data.value.realm_id : null;
3663
+ return isBCryptHash(form.secret);
3560
3664
  });
3561
- const generateSecret = ()=>{
3562
- form.secret = createNanoID('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_!.', 64);
3563
- };
3564
3665
  function initForm() {
3565
3666
  if (props.name) {
3566
3667
  form.name = props.name;
3567
3668
  }
3568
- if (!manager.data.value && realmId.value) {
3569
- form.realm_id = realmId.value;
3570
- }
3571
3669
  assignFormProperties(form, manager.data.value);
3670
+ form.realm_id = realmId.value ?? '';
3572
3671
  if (form.secret.length === 0) {
3573
- generateSecret();
3672
+ form.secret = generateSecret();
3574
3673
  }
3575
3674
  }
3675
+ const isConfidential = computed(()=>form.is_confidential);
3676
+ watch(isConfidential, (val, oldValue)=>{
3677
+ if (val === oldValue) return;
3678
+ if (val) {
3679
+ form.secret = manager.data.value?.secret || generateSecret();
3680
+ } else {
3681
+ form.secret = '';
3682
+ }
3683
+ });
3576
3684
  watch(updatedAt, (val, oldVal)=>{
3577
3685
  if (val && val !== oldVal) {
3578
3686
  manager.data.value = props.entity;
@@ -3581,13 +3689,12 @@ const AClientForm = defineComponent({
3581
3689
  });
3582
3690
  initForm();
3583
3691
  const submit = async ()=>{
3584
- if ($v.value.$invalid) {
3692
+ if (vuelidate.value.$invalid) {
3585
3693
  return;
3586
3694
  }
3587
3695
  await manager.createOrUpdate(form);
3696
+ assignFormProperties(form, manager.data.value);
3588
3697
  };
3589
- const translationsValidation = useTranslationsForNestedValidation($v.value);
3590
- const translationsSubmit = createFormSubmitTranslations();
3591
3698
  const translationsClient = useTranslationsForGroup(TranslatorTranslationGroup.CLIENT, [
3592
3699
  {
3593
3700
  key: TranslatorTranslationClientKey.NAME_HINT
@@ -3600,6 +3707,12 @@ const AClientForm = defineComponent({
3600
3707
  },
3601
3708
  {
3602
3709
  key: TranslatorTranslationClientKey.IS_CONFIDENTIAL
3710
+ },
3711
+ {
3712
+ key: TranslatorTranslationClientKey.IS_ACTIVE
3713
+ },
3714
+ {
3715
+ key: TranslatorTranslationClientKey.HASH_SECRET
3603
3716
  }
3604
3717
  ]);
3605
3718
  const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
@@ -3625,202 +3738,305 @@ const AClientForm = defineComponent({
3625
3738
  key: TranslatorTranslationDefaultKey.SECRET
3626
3739
  }
3627
3740
  ]);
3628
- const render = ()=>{
3629
- const name = [
3630
- buildFormGroup({
3631
- validationMessages: translationsValidation.name.value,
3632
- validationSeverity: getVuelidateSeverity($v.value.name),
3633
- label: true,
3634
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
3635
- content: buildFormInput({
3636
- value: $v.value.name.$model,
3637
- onChange (input) {
3638
- $v.value.name.$model = input;
3639
- },
3640
- props: {
3641
- disabled: isNameFixed.value
3642
- }
3643
- })
3644
- }),
3645
- h('small', translationsClient[TranslatorTranslationClientKey.NAME_HINT].value)
3646
- ];
3647
- const displayName = buildFormGroup({
3648
- validationMessages: translationsValidation.display_name.value,
3649
- validationSeverity: getVuelidateSeverity($v.value.display_name),
3650
- label: true,
3651
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
3652
- content: buildFormInput({
3653
- value: $v.value.display_name.$model,
3654
- onChange (input) {
3655
- $v.value.display_name.$model = input;
3656
- }
3657
- })
3658
- });
3659
- const description = [
3660
- h('div', [
3661
- buildFormGroup({
3662
- validationMessages: translationsValidation.description.value,
3663
- validationSeverity: getVuelidateSeverity($v.value.description),
3664
- label: true,
3665
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DESCRIPTION].value,
3666
- content: buildFormTextarea({
3667
- value: $v.value.description.$model,
3668
- onChange (input) {
3669
- $v.value.description.$model = input;
3670
- },
3671
- props: {
3672
- rows: 7
3673
- }
3674
- })
3675
- }),
3676
- h('small', translationsClient[TranslatorTranslationClientKey.DESCRIPTION_HINT].value)
3677
- ])
3678
- ];
3679
- const redirectUri = [
3680
- h(AFormInputList, {
3681
- names: form.redirect_uri ? form.redirect_uri.split(',') : [],
3682
- onChanged: (value)=>{
3683
- if (value.length === 0) {
3684
- form.redirect_uri = '';
3685
- return;
3686
- }
3687
- form.redirect_uri = value.join(',');
3688
- }
3689
- }, {
3690
- label: ()=>[
3691
- translationsDefault[TranslatorTranslationDefaultKey.REDIRECT_URIS].value
3692
- ]
3693
- }),
3694
- h('small', translationsClient[TranslatorTranslationClientKey.REDIRECT_URI_HINT].value)
3695
- ];
3696
- const isConfidential = buildFormGroup({
3697
- validationMessages: translationsValidation.is_confidential.value,
3698
- validationSeverity: getVuelidateSeverity($v.value.is_confidential),
3699
- content: buildFormInputCheckbox({
3700
- groupClass: 'form-switch mt-3',
3701
- labelContent: translationsClient[TranslatorTranslationClientKey.IS_CONFIDENTIAL].value,
3702
- value: $v.value.is_confidential.$model,
3703
- onChange (input) {
3704
- $v.value.is_confidential.$model = input;
3705
- }
3706
- })
3707
- });
3708
- let id = [];
3709
- if (manager.data.value) {
3710
- id = [
3711
- buildFormGroup({
3712
- label: true,
3713
- labelContent: 'ID',
3714
- content: buildFormInput({
3715
- value: manager.data.value.id,
3716
- props: {
3717
- disabled: true
3718
- }
3719
- })
3720
- }),
3721
- h('hr')
3722
- ];
3723
- }
3724
- const secret = [
3725
- buildFormGroup({
3726
- validationMessages: translationsValidation.secret.value,
3727
- validationSeverity: getVuelidateSeverity($v.value.secret),
3728
- label: true,
3729
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.SECRET].value,
3730
- content: buildFormInput({
3731
- value: $v.value.secret.$model,
3732
- onChange (input) {
3733
- $v.value.secret.$model = input;
3734
- }
3735
- })
3736
- }),
3737
- h('div', {
3738
- class: 'mb-2'
3739
- }, [
3740
- h('button', {
3741
- class: 'btn btn-dark btn-xs',
3742
- onClick ($event) {
3743
- $event.preventDefault();
3744
- generateSecret.call(null);
3745
- }
3746
- }, [
3747
- h('i', {
3748
- class: 'fa fa-wrench'
3749
- }),
3750
- ' ',
3751
- translationsDefault[TranslatorTranslationDefaultKey.GENERATE].value
3752
- ])
3753
- ])
3754
- ];
3755
- const submitForm = buildFormSubmitWithTranslations({
3756
- busy: busy.value,
3757
- submit,
3758
- isEditing: isEditing.value,
3759
- invalid: $v.value.$invalid
3760
- }, translationsSubmit);
3761
- let realm = [];
3762
- if (!realmId.value && !isEditing.value) {
3763
- realm = [
3764
- h('hr'),
3765
- buildFormGroup({
3766
- validationMessages: translationsValidation.realm_id.value,
3767
- validationSeverity: getVuelidateSeverity($v.value.realm_id),
3768
- label: true,
3769
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.REALM].value,
3770
- content: h(ARealmPicker, {
3771
- value: $v.value.realm_id.$model,
3772
- onChange: (input)=>{
3773
- $v.value.realm_id.$model = input.length > 0 ? input[0] : '';
3774
- }
3775
- })
3776
- })
3777
- ];
3778
- }
3779
- const leftColumn = h('div', {
3780
- class: 'col'
3781
- }, [
3782
- id,
3783
- name,
3784
- h('hr'),
3785
- displayName,
3786
- h('hr'),
3787
- secret,
3788
- realm
3789
- ]);
3790
- const rightColumn = [
3791
- h('div', {
3792
- class: 'col'
3793
- }, [
3794
- isConfidential,
3795
- h('hr'),
3796
- redirectUri,
3797
- h('hr'),
3798
- description,
3799
- submitForm
3800
- ])
3801
- ];
3802
- return h('form', {
3803
- onSubmit ($event) {
3804
- $event.preventDefault();
3805
- return submit.apply(null);
3806
- }
3807
- }, [
3808
- h('div', {
3809
- class: 'row'
3810
- }, [
3811
- leftColumn,
3812
- rightColumn
3813
- ])
3814
- ]);
3741
+ const redirectUris = computed(()=>vuelidate.value.redirect_uri.$model ? vuelidate.value.redirect_uri.$model.split(',') : []);
3742
+ return {
3743
+ translationsDefault,
3744
+ translationsClient,
3745
+ vuelidate,
3746
+ data: manager.data,
3747
+ isNameFixed,
3748
+ isBusy: manager.busy.value,
3749
+ isEditing,
3750
+ isSecretHashed,
3751
+ generateSecret,
3752
+ redirectUris,
3753
+ submit
3815
3754
  };
3816
- return ()=>render();
3817
3755
  }
3818
3756
  });
3819
3757
 
3758
+ const _hoisted_1$b = { class: "row" };
3759
+ const _hoisted_2$a = { class: "col" };
3760
+ const _hoisted_3$8 = {
3761
+ key: 0,
3762
+ class: "text-danger font-weight-bold"
3763
+ };
3764
+ const _hoisted_4$6 = { class: "row" };
3765
+ const _hoisted_5$3 = { class: "col" };
3766
+ const _hoisted_6$2 = { class: "col" };
3767
+ const _hoisted_7$1 = { class: "col" };
3768
+ const _hoisted_8$1 = { class: "col" };
3769
+ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
3770
+ const _component_VCFormInput = resolveComponent("VCFormInput");
3771
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
3772
+ const _component_IVuelidate = resolveComponent("IVuelidate");
3773
+ const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
3774
+ const _component_ARealmPicker = resolveComponent("ARealmPicker");
3775
+ const _component_AFormInputList = resolveComponent("AFormInputList");
3776
+ const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
3777
+ const _component_AFormSubmit = resolveComponent("AFormSubmit");
3778
+ return openBlock(), createElementBlock("div", _hoisted_1$b, [
3779
+ createElementVNode("div", _hoisted_2$a, [
3780
+ _ctx.data ? (openBlock(), createBlock(_component_VCFormGroup, { key: 0 }, {
3781
+ label: withCtx(() => [..._cache[10] || (_cache[10] = [
3782
+ createTextVNode(" ID ", -1)
3783
+ ])]),
3784
+ default: withCtx(() => [
3785
+ createVNode(_component_VCFormInput, {
3786
+ "model-value": _ctx.data.id,
3787
+ disabled: true
3788
+ }, null, 8, ["model-value"])
3789
+ ]),
3790
+ _: 1
3791
+ })) : createCommentVNode("", true),
3792
+ createVNode(_component_IVuelidate, {
3793
+ validation: _ctx.vuelidate.name
3794
+ }, {
3795
+ default: withCtx((props) => [
3796
+ createVNode(_component_VCFormGroup, {
3797
+ "validation-messages": props.data,
3798
+ "validation-severity": props.severity
3799
+ }, {
3800
+ label: withCtx(() => [
3801
+ createTextVNode(toDisplayString(_ctx.translationsDefault.name), 1)
3802
+ ]),
3803
+ default: withCtx(() => [
3804
+ createVNode(_component_VCFormInput, {
3805
+ modelValue: _ctx.vuelidate.name.$model,
3806
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event),
3807
+ disabled: _ctx.isNameFixed
3808
+ }, null, 8, ["modelValue", "disabled"])
3809
+ ]),
3810
+ _: 1
3811
+ }, 8, ["validation-messages", "validation-severity"]),
3812
+ createElementVNode("small", null, toDisplayString(_ctx.translationsClient.nameHint), 1)
3813
+ ]),
3814
+ _: 1
3815
+ }, 8, ["validation"]),
3816
+ _cache[14] || (_cache[14] = createElementVNode("hr", null, null, -1)),
3817
+ createVNode(_component_IVuelidate, {
3818
+ validation: _ctx.vuelidate.display_name
3819
+ }, {
3820
+ default: withCtx((props) => [
3821
+ createVNode(_component_VCFormGroup, {
3822
+ "validation-messages": props.data,
3823
+ "validation-severity": props.severity
3824
+ }, {
3825
+ label: withCtx(() => [
3826
+ createTextVNode(toDisplayString(_ctx.translationsDefault.displayName), 1)
3827
+ ]),
3828
+ default: withCtx(() => [
3829
+ createVNode(_component_VCFormInput, {
3830
+ modelValue: _ctx.vuelidate.display_name.$model,
3831
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.display_name.$model = $event),
3832
+ disabled: _ctx.isNameFixed
3833
+ }, null, 8, ["modelValue", "disabled"])
3834
+ ]),
3835
+ _: 1
3836
+ }, 8, ["validation-messages", "validation-severity"])
3837
+ ]),
3838
+ _: 1
3839
+ }, 8, ["validation"]),
3840
+ _cache[15] || (_cache[15] = createElementVNode("hr", null, null, -1)),
3841
+ createVNode(_component_IVuelidate, {
3842
+ validation: _ctx.vuelidate.secret
3843
+ }, {
3844
+ default: withCtx((props) => [
3845
+ createVNode(_component_VCFormGroup, {
3846
+ "validation-messages": props.data,
3847
+ "validation-severity": props.severity
3848
+ }, {
3849
+ label: withCtx(() => [
3850
+ createTextVNode(toDisplayString(_ctx.translationsDefault.secret) + " ", 1),
3851
+ _ctx.isSecretHashed ? (openBlock(), createElementBlock("span", _hoisted_3$8, [..._cache[11] || (_cache[11] = [
3852
+ createElementVNode("i", { class: "fa fa-exclamation-triangle" }, null, -1)
3853
+ ])])) : createCommentVNode("", true)
3854
+ ]),
3855
+ default: withCtx(() => [
3856
+ createVNode(_component_VCFormInput, {
3857
+ modelValue: _ctx.vuelidate.secret.$model,
3858
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.secret.$model = $event),
3859
+ disabled: !_ctx.vuelidate.is_confidential.$model
3860
+ }, {
3861
+ groupAppend: withCtx(() => [
3862
+ createElementVNode("button", {
3863
+ class: "btn",
3864
+ type: "button",
3865
+ onClick: _cache[2] || (_cache[2] = withModifiers(() => _ctx.vuelidate.secret.$model = _ctx.generateSecret(), ["prevent"]))
3866
+ }, [..._cache[12] || (_cache[12] = [
3867
+ createElementVNode("i", { class: "fa fa-refresh" }, null, -1)
3868
+ ])])
3869
+ ]),
3870
+ _: 1
3871
+ }, 8, ["modelValue", "disabled"])
3872
+ ]),
3873
+ _: 1
3874
+ }, 8, ["validation-messages", "validation-severity"])
3875
+ ]),
3876
+ _: 1
3877
+ }, 8, ["validation"]),
3878
+ createElementVNode("div", _hoisted_4$6, [
3879
+ createElementVNode("div", _hoisted_5$3, [
3880
+ createVNode(_component_IVuelidate, {
3881
+ validation: _ctx.vuelidate.is_confidential
3882
+ }, {
3883
+ default: withCtx((props) => [
3884
+ createVNode(_component_VCFormGroup, {
3885
+ "validation-messages": props.data,
3886
+ "validation-severity": props.severity
3887
+ }, {
3888
+ default: withCtx(() => [
3889
+ createVNode(_component_VCFormInputCheckbox, {
3890
+ modelValue: _ctx.vuelidate.is_confidential.$model,
3891
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.vuelidate.is_confidential.$model = $event),
3892
+ "group-class": "form-switch",
3893
+ label: true,
3894
+ "label-content": _ctx.translationsClient.isConfidential.value
3895
+ }, null, 8, ["modelValue", "label-content"])
3896
+ ]),
3897
+ _: 1
3898
+ }, 8, ["validation-messages", "validation-severity"])
3899
+ ]),
3900
+ _: 1
3901
+ }, 8, ["validation"])
3902
+ ]),
3903
+ createElementVNode("div", _hoisted_6$2, [
3904
+ createVNode(_component_IVuelidate, {
3905
+ validation: _ctx.vuelidate.secret_hashed
3906
+ }, {
3907
+ default: withCtx((props) => [
3908
+ createVNode(_component_VCFormGroup, {
3909
+ "validation-messages": props.data,
3910
+ "validation-severity": props.severity
3911
+ }, {
3912
+ default: withCtx(() => [
3913
+ createVNode(_component_VCFormInputCheckbox, {
3914
+ modelValue: _ctx.vuelidate.secret_hashed.$model,
3915
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.vuelidate.secret_hashed.$model = $event),
3916
+ "group-class": "form-switch",
3917
+ label: true,
3918
+ "label-content": _ctx.translationsClient.hashSecret.value
3919
+ }, null, 8, ["modelValue", "label-content"])
3920
+ ]),
3921
+ _: 1
3922
+ }, 8, ["validation-messages", "validation-severity"])
3923
+ ]),
3924
+ _: 1
3925
+ }, 8, ["validation"])
3926
+ ]),
3927
+ createElementVNode("div", _hoisted_7$1, [
3928
+ createVNode(_component_IVuelidate, {
3929
+ validation: _ctx.vuelidate.active
3930
+ }, {
3931
+ default: withCtx((props) => [
3932
+ createVNode(_component_VCFormGroup, {
3933
+ "validation-messages": props.data,
3934
+ "validation-severity": props.severity
3935
+ }, {
3936
+ default: withCtx(() => [
3937
+ createVNode(_component_VCFormInputCheckbox, {
3938
+ modelValue: _ctx.vuelidate.active.$model,
3939
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => _ctx.vuelidate.active.$model = $event),
3940
+ "group-class": "form-switch",
3941
+ label: true,
3942
+ "label-content": _ctx.translationsClient.isActive.value
3943
+ }, null, 8, ["modelValue", "label-content"])
3944
+ ]),
3945
+ _: 1
3946
+ }, 8, ["validation-messages", "validation-severity"])
3947
+ ]),
3948
+ _: 1
3949
+ }, 8, ["validation"])
3950
+ ])
3951
+ ]),
3952
+ !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
3953
+ _cache[13] || (_cache[13] = createElementVNode("hr", null, null, -1)),
3954
+ createVNode(_component_IVuelidate, {
3955
+ validation: _ctx.vuelidate.realm_id
3956
+ }, {
3957
+ default: withCtx((props) => [
3958
+ createVNode(_component_VCFormGroup, {
3959
+ "validation-messages": props.data,
3960
+ "validation-severity": props.severity
3961
+ }, {
3962
+ label: withCtx(() => [
3963
+ createTextVNode(toDisplayString(_ctx.translationsDefault.realm), 1)
3964
+ ]),
3965
+ default: withCtx(() => [
3966
+ createVNode(_component_ARealmPicker, {
3967
+ value: _ctx.vuelidate.realm_id.$model,
3968
+ onChange: _cache[7] || (_cache[7] = (input) => {
3969
+ _ctx.vuelidate.realm_id.$model = input.length > 0 ? input[0] : "";
3970
+ })
3971
+ }, null, 8, ["value"])
3972
+ ]),
3973
+ _: 1
3974
+ }, 8, ["validation-messages", "validation-severity"])
3975
+ ]),
3976
+ _: 1
3977
+ }, 8, ["validation"])
3978
+ ], 64)) : createCommentVNode("", true)
3979
+ ]),
3980
+ createElementVNode("div", _hoisted_8$1, [
3981
+ createVNode(_component_AFormInputList, {
3982
+ names: _ctx.redirectUris,
3983
+ onChanged: _cache[8] || (_cache[8] = (value) => {
3984
+ if (value.length === 0) {
3985
+ _ctx.vuelidate.redirect_uri.$model = "";
3986
+ return;
3987
+ }
3988
+ _ctx.vuelidate.redirect_uri.$model = value.join(",");
3989
+ })
3990
+ }, {
3991
+ label: withCtx(() => [
3992
+ createTextVNode(toDisplayString(_ctx.translationsDefault.redirectUris), 1)
3993
+ ]),
3994
+ _: 1
3995
+ }, 8, ["names"]),
3996
+ createElementVNode("small", null, toDisplayString(_ctx.translationsClient.redirectURIHint), 1),
3997
+ _cache[16] || (_cache[16] = createElementVNode("hr", null, null, -1)),
3998
+ createVNode(_component_IVuelidate, {
3999
+ validation: _ctx.vuelidate.description
4000
+ }, {
4001
+ default: withCtx((props) => [
4002
+ createVNode(_component_VCFormGroup, {
4003
+ "validation-messages": props.data,
4004
+ "validation-severity": props.severity
4005
+ }, {
4006
+ label: withCtx(() => [
4007
+ createTextVNode(toDisplayString(_ctx.translationsDefault.description), 1)
4008
+ ]),
4009
+ default: withCtx(() => [
4010
+ createVNode(_component_VCFormTextarea, {
4011
+ modelValue: _ctx.vuelidate.description.$model,
4012
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => _ctx.vuelidate.description.$model = $event),
4013
+ rows: "7"
4014
+ }, null, 8, ["modelValue"])
4015
+ ]),
4016
+ _: 1
4017
+ }, 8, ["validation-messages", "validation-severity"]),
4018
+ createElementVNode("small", null, toDisplayString(_ctx.translationsClient.descriptionHint), 1)
4019
+ ]),
4020
+ _: 1
4021
+ }, 8, ["validation"]),
4022
+ _cache[17] || (_cache[17] = createElementVNode("hr", null, null, -1)),
4023
+ createElementVNode("div", null, [
4024
+ createVNode(_component_AFormSubmit, {
4025
+ "is-busy": _ctx.isBusy,
4026
+ "is-editing": _ctx.isEditing,
4027
+ "is-invalid": _ctx.vuelidate.$invalid,
4028
+ onSubmit: _ctx.submit
4029
+ }, null, 8, ["is-busy", "is-editing", "is-invalid", "onSubmit"])
4030
+ ])
4031
+ ])
4032
+ ]);
4033
+ }
4034
+ var AClientForm = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$f]]);
4035
+
3820
4036
  const AClients = defineComponent({
3821
4037
  props: defineEntityCollectionVProps(),
3822
- slots: Object,
3823
4038
  emits: defineEntityCollectionVEmitOptions(),
4039
+ slots: Object,
3824
4040
  setup (props, ctx) {
3825
4041
  const { render } = defineEntityCollectionManager({
3826
4042
  type: `${EntityType.CLIENT}`,
@@ -3928,7 +4144,7 @@ const APermissionCheck = defineComponent({
3928
4144
  ],
3929
4145
  required: true
3930
4146
  },
3931
- data: {
4147
+ input: {
3932
4148
  type: Object
3933
4149
  },
3934
4150
  options: {
@@ -3939,7 +4155,7 @@ const APermissionCheck = defineComponent({
3939
4155
  const fn = createPermissionCheckerReactiveFn();
3940
4156
  const isPermitted = computed(()=>fn({
3941
4157
  name: props.name,
3942
- data: props.data,
4158
+ input: props.input,
3943
4159
  options: props.options
3944
4160
  }));
3945
4161
  return ()=>{
@@ -3953,8 +4169,8 @@ const APermissionCheck = defineComponent({
3953
4169
 
3954
4170
  const APolicies = defineComponent({
3955
4171
  props: defineEntityCollectionVProps(),
3956
- slots: Object,
3957
4172
  emits: defineEntityCollectionVEmitOptions(),
4173
+ slots: Object,
3958
4174
  setup (props, setup) {
3959
4175
  const { render } = defineEntityCollectionManager({
3960
4176
  type: `${EntityType.POLICY}`,
@@ -4044,8 +4260,8 @@ const APolicyPicker = defineComponent({
4044
4260
  },
4045
4261
  ...defineEntityPickerVProps()
4046
4262
  },
4047
- slots: Object,
4048
4263
  emits: defineEntityPickerVEmitOptions(),
4264
+ slots: Object,
4049
4265
  setup (props, { slots, ...setup }) {
4050
4266
  const { render } = defineEntityPicker({
4051
4267
  component: APolicies,
@@ -4261,8 +4477,8 @@ const APermissionForm = defineComponent({
4261
4477
 
4262
4478
  const APermissions = defineComponent({
4263
4479
  props: defineEntityCollectionVProps(),
4264
- slots: Object,
4265
4480
  emits: defineEntityCollectionVEmitOptions(),
4481
+ slots: Object,
4266
4482
  setup (props, setup) {
4267
4483
  const { render } = defineEntityCollectionManager({
4268
4484
  type: `${EntityType.PERMISSION}`,
@@ -4461,8 +4677,8 @@ const ARoleForm = defineComponent({
4461
4677
 
4462
4678
  const ARoles = defineComponent({
4463
4679
  props: defineEntityCollectionVProps(),
4464
- slots: Object,
4465
4680
  emits: defineEntityCollectionVEmitOptions(),
4681
+ slots: Object,
4466
4682
  setup (props, ctx) {
4467
4683
  const { render } = defineEntityCollectionManager({
4468
4684
  type: `${EntityType.ROLE}`,
@@ -4584,8 +4800,8 @@ const AClientScope = defineComponent({
4584
4800
 
4585
4801
  const AClientScopes = defineComponent({
4586
4802
  props: defineEntityCollectionVProps(),
4587
- slots: Object,
4588
4803
  emits: defineEntityCollectionVEmitOptions(),
4804
+ slots: Object,
4589
4805
  setup (props, ctx) {
4590
4806
  const { render } = defineEntityCollectionManager({
4591
4807
  type: `${EntityType.CLIENT_SCOPE}`,
@@ -4780,8 +4996,8 @@ const AScopeForm = defineComponent({
4780
4996
 
4781
4997
  const AScopes = defineComponent({
4782
4998
  props: defineEntityCollectionVProps(),
4783
- slots: Object,
4784
4999
  emits: defineEntityCollectionVEmitOptions(),
5000
+ slots: Object,
4785
5001
  setup (props, ctx) {
4786
5002
  const { render } = defineEntityCollectionManager({
4787
5003
  type: EntityType.SCOPE,
@@ -5701,7 +5917,7 @@ const AIdentityProviderPreset = defineComponent({
5701
5917
  }
5702
5918
  });
5703
5919
 
5704
- var _sfc_main$9 = defineComponent({
5920
+ var _sfc_main$f = defineComponent({
5705
5921
  components: {
5706
5922
  AIdentityProviderPreset,
5707
5923
  AIdentityProviderProtocol
@@ -5735,113 +5951,70 @@ var _sfc_main$9 = defineComponent({
5735
5951
  }
5736
5952
  });
5737
5953
 
5738
- const _hoisted_1$5 = {
5739
- class: "d-flex flex-column gap-2"
5740
- };
5741
- const _hoisted_2$4 = {
5742
- class: "d-flex flex-row gap-2 flex-wrap"
5743
- };
5744
- const _hoisted_3$4 = [
5745
- "onClick"
5746
- ];
5747
- const _hoisted_4$3 = {
5748
- class: "d-flex flex-row gap-2 flex-wrap"
5749
- };
5750
- const _hoisted_5$1 = [
5751
- "onClick"
5752
- ];
5753
- function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
5754
- const _component_AIdentityProviderProtocol = resolveComponent("AIdentityProviderProtocol");
5755
- const _component_AIdentityProviderPreset = resolveComponent("AIdentityProviderPreset");
5756
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
5757
- createElementVNode("div", null, [
5758
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "Protocols", -1)),
5759
- createElementVNode("div", _hoisted_2$4, [
5760
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.protocols, (item, key)=>{
5761
- return openBlock(), createBlock(_component_AIdentityProviderProtocol, {
5762
- key,
5763
- id: item
5764
- }, {
5765
- default: withCtx((props)=>[
5766
- createElementVNode("div", {
5767
- class: normalizeClass([
5768
- {
5769
- "active": item === _ctx.protocol && !_ctx.preset
5770
- },
5771
- "d-flex flex-column gap-1 text-center identity-provider-picker-item"
5772
- ]),
5773
- onClick: withModifiers(($event)=>_ctx.pickProtocol(item), [
5774
- "prevent"
5775
- ])
5776
- }, [
5777
- createElementVNode("div", null, [
5778
- createElementVNode("i", {
5779
- class: normalizeClass([
5780
- "fa-2x",
5781
- props.icon
5782
- ])
5783
- }, null, 2)
5784
- ]),
5785
- createElementVNode("div", null, toDisplayString(props.name), 1)
5786
- ], 10, _hoisted_3$4)
5787
- ]),
5788
- _: 2
5789
- }, 1032, [
5790
- "id"
5791
- ]);
5792
- }), 128))
5793
- ])
5794
- ]),
5795
- createElementVNode("div", null, [
5796
- _cache[1] || (_cache[1] = createElementVNode("h6", null, "Presets", -1)),
5797
- createElementVNode("div", _hoisted_4$3, [
5798
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.presets, (item, key)=>{
5799
- return openBlock(), createBlock(_component_AIdentityProviderPreset, {
5800
- key,
5801
- id: item
5802
- }, {
5803
- default: withCtx((props)=>[
5804
- createElementVNode("div", {
5805
- class: normalizeClass([
5806
- {
5807
- "active": item === _ctx.preset
5808
- },
5809
- "d-flex flex-column gap-1 text-center identity-provider-picker-item"
5810
- ]),
5811
- onClick: withModifiers(($event)=>_ctx.pickPreset(item), [
5812
- "prevent"
5813
- ])
5814
- }, [
5815
- createElementVNode("div", null, [
5816
- createElementVNode("i", {
5817
- class: normalizeClass([
5818
- "fa-2x",
5819
- props.icon
5820
- ])
5821
- }, null, 2)
5822
- ]),
5823
- createElementVNode("div", null, toDisplayString(props.name), 1)
5824
- ], 10, _hoisted_5$1)
5825
- ]),
5826
- _: 2
5827
- }, 1032, [
5828
- "id"
5829
- ]);
5830
- }), 128))
5831
- ])
5832
- ])
5833
- ]);
5954
+ const _hoisted_1$a = { class: "d-flex flex-column gap-2" };
5955
+ const _hoisted_2$9 = { class: "d-flex flex-row gap-2 flex-wrap" };
5956
+ const _hoisted_3$7 = ["onClick"];
5957
+ const _hoisted_4$5 = { class: "d-flex flex-row gap-2 flex-wrap" };
5958
+ const _hoisted_5$2 = ["onClick"];
5959
+ 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
+ ]);
5834
6016
  }
5835
- var AIdentityProviderPicker = /* @__PURE__ */ _export_sfc(_sfc_main$9, [
5836
- [
5837
- "render",
5838
- _sfc_render$9
5839
- ],
5840
- [
5841
- "__scopeId",
5842
- "data-v-eb096917"
5843
- ]
5844
- ]);
6017
+ var AIdentityProviderPicker = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__scopeId", "data-v-af0f282c"]]);
5845
6018
 
5846
6019
  const AIdentityProviderOAuth2ClientFields = defineComponent({
5847
6020
  props: {
@@ -6111,10 +6284,6 @@ const AIdentityProviderOAuth2Form = defineComponent({
6111
6284
  type: String,
6112
6285
  default: undefined
6113
6286
  },
6114
- apiUrl: {
6115
- type: String,
6116
- default: 'http://localhost:3001'
6117
- },
6118
6287
  protocol: {
6119
6288
  type: String,
6120
6289
  default: IdentityProviderProtocol.OAUTH2
@@ -6152,7 +6321,7 @@ const AIdentityProviderOAuth2Form = defineComponent({
6152
6321
  if (!manager.data.value) {
6153
6322
  return '';
6154
6323
  }
6155
- return apiClient.identityProvider.getAuthorizeUri(props.apiUrl, manager.data.value.id);
6324
+ return apiClient.identityProvider.getAuthorizeUri(manager.data.value.id);
6156
6325
  });
6157
6326
  const basicFieldsNode = ref(null);
6158
6327
  onChange(preset, ()=>{
@@ -6350,10 +6519,6 @@ const AIdentityProviderForm = defineComponent({
6350
6519
  },
6351
6520
  realmId: {
6352
6521
  type: String
6353
- },
6354
- apiUrl: {
6355
- type: String,
6356
- default: 'http://localhost:3001'
6357
6522
  }
6358
6523
  },
6359
6524
  emits: [
@@ -6416,7 +6581,6 @@ const AIdentityProviderForm = defineComponent({
6416
6581
  realmId: props.realmId,
6417
6582
  protocol: protocol.value,
6418
6583
  preset: preset.value,
6419
- apiUrl: props.apiUrl,
6420
6584
  onCreated: (el)=>{
6421
6585
  entity.value = el;
6422
6586
  setup.emit('created', el);
@@ -6462,8 +6626,8 @@ const AIdentityProviderForm = defineComponent({
6462
6626
 
6463
6627
  const AIdentityProviders = defineComponent({
6464
6628
  props: defineEntityCollectionVProps(),
6465
- slots: Object,
6466
6629
  emits: defineEntityCollectionVEmitOptions(),
6630
+ slots: Object,
6467
6631
  setup (props, ctx) {
6468
6632
  const { render } = defineEntityCollectionManager({
6469
6633
  type: `${EntityType.IDENTITY_PROVIDER}`,
@@ -6756,7 +6920,7 @@ const AIdentityProviderRoleAssignments = defineComponent({
6756
6920
  }
6757
6921
  });
6758
6922
 
6759
- var _sfc_main$8 = defineComponent({
6923
+ var _sfc_main$e = defineComponent({
6760
6924
  components: {
6761
6925
  AFormInputList
6762
6926
  },
@@ -6797,25 +6961,17 @@ var _sfc_main$8 = defineComponent({
6797
6961
  }
6798
6962
  });
6799
6963
 
6800
- function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
6801
- const _component_AFormInputList = resolveComponent("AFormInputList");
6802
- return openBlock(), createBlock(_component_AFormInputList, {
6803
- names: _ctx.vuelidate.names.$model,
6804
- "min-items": 1,
6805
- onChanged: _ctx.handleUpdated
6806
- }, null, 8, [
6807
- "names",
6808
- "onChanged"
6809
- ]);
6964
+ 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"]);
6810
6971
  }
6811
- var AAttributeNamesPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$8, [
6812
- [
6813
- "render",
6814
- _sfc_render$8
6815
- ]
6816
- ]);
6972
+ var AAttributeNamesPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d]]);
6817
6973
 
6818
- var _sfc_main$7 = defineComponent({
6974
+ var _sfc_main$d = defineComponent({
6819
6975
  components: {
6820
6976
  APolicyChildrenPicker: APolicyPicker,
6821
6977
  VCFormGroup,
@@ -6901,55 +7057,40 @@ var _sfc_main$7 = defineComponent({
6901
7057
  }
6902
7058
  });
6903
7059
 
6904
- function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
6905
- const _component_APolicyChildrenPicker = resolveComponent("APolicyChildrenPicker");
6906
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
6907
- const _component_IVuelidate = resolveComponent("IVuelidate");
6908
- return openBlock(), createElementBlock("div", null, [
6909
- createVNode(_component_IVuelidate, {
6910
- validation: _ctx.vuelidate.items
7060
+ 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
6911
7072
  }, {
6912
- default: withCtx((props)=>[
6913
- createVNode(_component_VCFormGroup, {
6914
- "validation-messages": props.data,
6915
- "validation-severity": props.severity
6916
- }, {
6917
- label: withCtx(()=>_cache[0] || (_cache[0] = [
6918
- createTextVNode(" Children ")
6919
- ])),
6920
- default: withCtx(()=>[
6921
- createVNode(_component_APolicyChildrenPicker, {
6922
- "parent-id": _ctx.id,
6923
- query: _ctx.query,
6924
- value: _ctx.vuelidate.items.$model,
6925
- onChange: _ctx.handleUpdated
6926
- }, null, 8, [
6927
- "parent-id",
6928
- "query",
6929
- "value",
6930
- "onChange"
6931
- ])
6932
- ]),
6933
- _: 2
6934
- }, 1032, [
6935
- "validation-messages",
6936
- "validation-severity"
6937
- ])
6938
- ]),
6939
- _: 1
6940
- }, 8, [
6941
- "validation"
6942
- ])
6943
- ]);
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
+ ]);
6944
7090
  }
6945
- var ACompositePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$7, [
6946
- [
6947
- "render",
6948
- _sfc_render$7
6949
- ]
6950
- ]);
7091
+ var ACompositePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c]]);
6951
7092
 
6952
- var _sfc_main$6 = defineComponent({
7093
+ var _sfc_main$c = defineComponent({
6953
7094
  components: {
6954
7095
  VCFormInput,
6955
7096
  VCFormGroup,
@@ -6996,85 +7137,64 @@ var _sfc_main$6 = defineComponent({
6996
7137
  }
6997
7138
  });
6998
7139
 
6999
- function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
7000
- const _component_VCFormInput = resolveComponent("VCFormInput");
7001
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7002
- const _component_IVuelidate = resolveComponent("IVuelidate");
7003
- return openBlock(), createElementBlock("div", null, [
7004
- createVNode(_component_IVuelidate, {
7005
- validation: _ctx.vuelidate.start
7140
+ 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
7006
7152
  }, {
7007
- default: withCtx((props)=>[
7008
- createVNode(_component_VCFormGroup, {
7009
- "validation-messages": props.data,
7010
- "validation-severity": props.severity
7011
- }, {
7012
- label: withCtx(()=>_cache[2] || (_cache[2] = [
7013
- createTextVNode(" Start ")
7014
- ])),
7015
- default: withCtx(()=>[
7016
- createVNode(_component_VCFormInput, {
7017
- modelValue: _ctx.vuelidate.start.$model,
7018
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.start.$model = $event),
7019
- placeholder: "YYYY-MM-DD",
7020
- onChange: _ctx.handleUpdated
7021
- }, null, 8, [
7022
- "modelValue",
7023
- "onChange"
7024
- ])
7025
- ]),
7026
- _: 2
7027
- }, 1032, [
7028
- "validation-messages",
7029
- "validation-severity"
7030
- ])
7031
- ]),
7032
- _: 1
7033
- }, 8, [
7034
- "validation"
7035
- ]),
7036
- createVNode(_component_IVuelidate, {
7037
- validation: _ctx.vuelidate.end
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
7038
7176
  }, {
7039
- default: withCtx((props)=>[
7040
- createVNode(_component_VCFormGroup, {
7041
- "validation-messages": props.data,
7042
- "validation-severity": props.severity
7043
- }, {
7044
- label: withCtx(()=>_cache[3] || (_cache[3] = [
7045
- createTextVNode(" End ")
7046
- ])),
7047
- default: withCtx(()=>[
7048
- createVNode(_component_VCFormInput, {
7049
- modelValue: _ctx.vuelidate.end.$model,
7050
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.end.$model = $event),
7051
- placeholder: "YYYY-MM-DD",
7052
- onChange: _ctx.handleUpdated
7053
- }, null, 8, [
7054
- "modelValue",
7055
- "onChange"
7056
- ])
7057
- ]),
7058
- _: 2
7059
- }, 1032, [
7060
- "validation-messages",
7061
- "validation-severity"
7062
- ])
7063
- ]),
7064
- _: 1
7065
- }, 8, [
7066
- "validation"
7067
- ])
7068
- ]);
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
+ ]);
7069
7194
  }
7070
- var ADatePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$6, [
7071
- [
7072
- "render",
7073
- _sfc_render$6
7074
- ]
7075
- ]);
7195
+ var ADatePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b]]);
7076
7196
 
7077
- var _sfc_main$5 = defineComponent({
7197
+ var _sfc_main$b = defineComponent({
7078
7198
  components: {
7079
7199
  AFormInputList
7080
7200
  },
@@ -7115,30 +7235,22 @@ var _sfc_main$5 = defineComponent({
7115
7235
  }
7116
7236
  });
7117
7237
 
7118
- function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
7119
- const _component_AFormInputList = resolveComponent("AFormInputList");
7120
- return openBlock(), createBlock(_component_AFormInputList, {
7121
- names: _ctx.vuelidate.types.$model,
7122
- "min-items": 1,
7123
- onChanged: _ctx.handleUpdated
7124
- }, {
7125
- label: withCtx(()=>_cache[0] || (_cache[0] = [
7126
- createTextVNode(" Types ")
7127
- ])),
7128
- _: 1
7129
- }, 8, [
7130
- "names",
7131
- "onChanged"
7132
- ]);
7238
+ 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"]);
7133
7250
  }
7134
- var AIdentityPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$5, [
7135
- [
7136
- "render",
7137
- _sfc_render$5
7138
- ]
7139
- ]);
7251
+ var AIdentityPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a]]);
7140
7252
 
7141
- var _sfc_main$4 = defineComponent({
7253
+ var _sfc_main$a = defineComponent({
7142
7254
  components: {
7143
7255
  AFormInputList,
7144
7256
  VCFormGroup,
@@ -7200,190 +7312,141 @@ var _sfc_main$4 = defineComponent({
7200
7312
  }
7201
7313
  });
7202
7314
 
7203
- const _hoisted_1$4 = {
7204
- class: "row"
7205
- };
7206
- const _hoisted_2$3 = {
7207
- class: "col-7"
7208
- };
7209
- const _hoisted_3$3 = {
7210
- class: "col-5"
7211
- };
7212
- const _hoisted_4$2 = [
7213
- "for"
7214
- ];
7215
- const _hoisted_5 = [
7216
- "for"
7217
- ];
7218
- const _hoisted_6 = [
7219
- "for"
7220
- ];
7221
- function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
7222
- const _component_AFormInputList = resolveComponent("AFormInputList");
7223
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7224
- const _component_IVuelidate = resolveComponent("IVuelidate");
7225
- const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7226
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
7227
- createElementVNode("div", _hoisted_2$3, [
7228
- createVNode(_component_IVuelidate, {
7229
- validation: _ctx.vuelidate.attributeName
7230
- }, {
7231
- default: withCtx((props)=>[
7232
- createVNode(_component_VCFormGroup, {
7233
- "validation-messages": props.data,
7234
- "validation-severity": props.severity
7235
- }, {
7236
- default: withCtx(()=>[
7237
- createVNode(_component_AFormInputList, {
7238
- names: _ctx.vuelidate.attributeName.$model,
7239
- onChanged: _ctx.handleAttributeNameChanged
7240
- }, null, 8, [
7241
- "names",
7242
- "onChanged"
7243
- ])
7244
- ]),
7245
- _: 2
7246
- }, 1032, [
7247
- "validation-messages",
7248
- "validation-severity"
7249
- ])
7250
- ]),
7251
- _: 1
7252
- }, 8, [
7253
- "validation"
7254
- ])
7315
+ const _hoisted_1$9 = { class: "row" };
7316
+ const _hoisted_2$8 = { class: "col-7" };
7317
+ const _hoisted_3$6 = { class: "col-5" };
7318
+ const _hoisted_4$4 = ["for"];
7319
+ const _hoisted_5$1 = ["for"];
7320
+ const _hoisted_6$1 = ["for"];
7321
+ 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"])
7255
7344
  ]),
7256
- createElementVNode("div", _hoisted_3$3, [
7257
- createVNode(_component_IVuelidate, {
7258
- validation: _ctx.vuelidate.attributeNameStrict
7259
- }, {
7260
- default: withCtx((props)=>[
7261
- createVNode(_component_VCFormGroup, {
7262
- "validation-messages": props.data,
7263
- "validation-severity": props.severity
7264
- }, {
7265
- default: withCtx(()=>[
7266
- createVNode(_component_VCFormInputCheckbox, {
7267
- modelValue: _ctx.vuelidate.attributeNameStrict.$model,
7268
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.attributeNameStrict.$model = $event),
7269
- "group-class": "form-switch",
7270
- label: true,
7271
- onChange: _ctx.handleUpdated
7272
- }, {
7273
- label: withCtx((iProps)=>[
7274
- createElementVNode("label", {
7275
- for: iProps.id
7276
- }, " Only match if the attribute is strict equal to the name? ", 8, _hoisted_4$2)
7277
- ]),
7278
- _: 1
7279
- }, 8, [
7280
- "modelValue",
7281
- "onChange"
7282
- ])
7283
- ]),
7284
- _: 2
7285
- }, 1032, [
7286
- "validation-messages",
7287
- "validation-severity"
7288
- ])
7289
- ]),
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
+ ]),
7290
7370
  _: 1
7291
- }, 8, [
7292
- "validation"
7371
+ }, 8, ["modelValue", "onChange"])
7293
7372
  ]),
7294
- createVNode(_component_IVuelidate, {
7295
- validation: _ctx.vuelidate.attributeNullMatchAll
7296
- }, {
7297
- default: withCtx((props)=>[
7298
- createVNode(_component_VCFormGroup, {
7299
- "validation-messages": props.data,
7300
- "validation-severity": props.severity
7301
- }, {
7302
- default: withCtx(()=>[
7303
- createVNode(_component_VCFormInputCheckbox, {
7304
- modelValue: _ctx.vuelidate.attributeNullMatchAll.$model,
7305
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.attributeNullMatchAll.$model = $event),
7306
- "group-class": "form-switch",
7307
- label: true,
7308
- onChange: _ctx.handleUpdated
7309
- }, {
7310
- label: withCtx((iProps)=>[
7311
- createElementVNode("label", {
7312
- for: iProps.id
7313
- }, _cache[3] || (_cache[3] = [
7314
- createTextVNode(" Determines if resources with null realm-id/name value should match all identity realms."),
7315
- createElementVNode("br", null, null, -1),
7316
- createTextVNode(" If true, any identity realm can access resources with null realm-id/name values. ")
7317
- ]), 8, _hoisted_5)
7318
- ]),
7319
- _: 1
7320
- }, 8, [
7321
- "modelValue",
7322
- "onChange"
7323
- ])
7324
- ]),
7325
- _: 2
7326
- }, 1032, [
7327
- "validation-messages",
7328
- "validation-severity"
7329
- ])
7330
- ]),
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
+ ]),
7331
7403
  _: 1
7332
- }, 8, [
7333
- "validation"
7404
+ }, 8, ["modelValue", "onChange"])
7334
7405
  ]),
7335
- createVNode(_component_IVuelidate, {
7336
- validation: _ctx.vuelidate.identityMasterMatchAll
7337
- }, {
7338
- default: withCtx((props)=>[
7339
- createVNode(_component_VCFormGroup, {
7340
- "validation-messages": props.data,
7341
- "validation-severity": props.severity
7342
- }, {
7343
- default: withCtx(()=>[
7344
- createVNode(_component_VCFormInputCheckbox, {
7345
- modelValue: _ctx.vuelidate.identityMasterMatchAll.$model,
7346
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>_ctx.vuelidate.identityMasterMatchAll.$model = $event),
7347
- "group-class": "form-switch",
7348
- label: true,
7349
- onChange: _ctx.handleUpdated
7350
- }, {
7351
- label: withCtx((iProps)=>[
7352
- createElementVNode("label", {
7353
- for: iProps.id
7354
- }, _cache[4] || (_cache[4] = [
7355
- createTextVNode(" Specifies whether the master realm of an identity should match all realm-id/name attributes, including null."),
7356
- createElementVNode("br", null, null, -1),
7357
- createTextVNode(" If true, the master realm can access any resource regardless of its realm value. ")
7358
- ]), 8, _hoisted_6)
7359
- ]),
7360
- _: 1
7361
- }, 8, [
7362
- "modelValue",
7363
- "onChange"
7364
- ])
7365
- ]),
7366
- _: 2
7367
- }, 1032, [
7368
- "validation-messages",
7369
- "validation-severity"
7370
- ])
7371
- ]),
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
+ ]),
7372
7436
  _: 1
7373
- }, 8, [
7374
- "validation"
7375
- ])
7376
- ])
7377
- ]);
7437
+ }, 8, ["modelValue", "onChange"])
7438
+ ]),
7439
+ _: 1
7440
+ }, 8, ["validation-messages", "validation-severity"])
7441
+ ]),
7442
+ _: 1
7443
+ }, 8, ["validation"])
7444
+ ])
7445
+ ]);
7378
7446
  }
7379
- var ARealmMatchPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$4, [
7380
- [
7381
- "render",
7382
- _sfc_render$4
7383
- ]
7384
- ]);
7447
+ var ARealmMatchPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9]]);
7385
7448
 
7386
- var _sfc_main$3 = defineComponent({
7449
+ var _sfc_main$9 = defineComponent({
7387
7450
  components: {
7388
7451
  VCFormInput,
7389
7452
  VCFormGroup,
@@ -7471,239 +7534,183 @@ var _sfc_main$3 = defineComponent({
7471
7534
  }
7472
7535
  });
7473
7536
 
7474
- const _hoisted_1$3 = {
7475
- class: "row"
7476
- };
7477
- const _hoisted_2$2 = {
7478
- key: 0,
7479
- class: "col"
7537
+ const _hoisted_1$8 = { class: "row" };
7538
+ const _hoisted_2$7 = {
7539
+ key: 0,
7540
+ class: "col"
7480
7541
  };
7481
- const _hoisted_3$2 = {
7482
- key: 1,
7483
- class: "col"
7542
+ const _hoisted_3$5 = {
7543
+ key: 1,
7544
+ class: "col"
7484
7545
  };
7485
- const _hoisted_4$1 = {
7486
- key: 2,
7487
- class: "col"
7546
+ const _hoisted_4$3 = {
7547
+ key: 2,
7548
+ class: "col"
7488
7549
  };
7489
- function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
7490
- const _component_VCFormInput = resolveComponent("VCFormInput");
7491
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7492
- const _component_IVuelidate = resolveComponent("IVuelidate");
7493
- const _component_VCFormSelect = resolveComponent("VCFormSelect");
7494
- return openBlock(), createElementBlock("div", null, [
7550
+ 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, [
7495
7630
  createVNode(_component_IVuelidate, {
7496
- validation: _ctx.vuelidate.start
7631
+ validation: _ctx.vuelidate.dayOfWeek
7497
7632
  }, {
7498
- default: withCtx((props)=>[
7499
- createVNode(_component_VCFormGroup, {
7500
- "validation-messages": props.data,
7501
- "validation-severity": props.severity
7502
- }, {
7503
- label: withCtx(()=>_cache[6] || (_cache[6] = [
7504
- createTextVNode(" Start ")
7505
- ])),
7506
- default: withCtx(()=>[
7507
- createVNode(_component_VCFormInput, {
7508
- modelValue: _ctx.vuelidate.start.$model,
7509
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.start.$model = $event),
7510
- placeholder: "00:00:00",
7511
- onChange: _ctx.handleUpdated
7512
- }, null, 8, [
7513
- "modelValue",
7514
- "onChange"
7515
- ])
7516
- ]),
7517
- _: 2
7518
- }, 1032, [
7519
- "validation-messages",
7520
- "validation-severity"
7521
- ])
7522
- ]),
7523
- _: 1
7524
- }, 8, [
7525
- "validation"
7526
- ]),
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, [
7527
7657
  createVNode(_component_IVuelidate, {
7528
- validation: _ctx.vuelidate.end
7658
+ validation: _ctx.vuelidate.dayOfMonth
7529
7659
  }, {
7530
- default: withCtx((props)=>[
7531
- createVNode(_component_VCFormGroup, {
7532
- "validation-messages": props.data,
7533
- "validation-severity": props.severity
7534
- }, {
7535
- label: withCtx(()=>_cache[7] || (_cache[7] = [
7536
- createTextVNode(" End ")
7537
- ])),
7538
- default: withCtx(()=>[
7539
- createVNode(_component_VCFormInput, {
7540
- modelValue: _ctx.vuelidate.end.$model,
7541
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.end.$model = $event),
7542
- placeholder: "00:00:00",
7543
- onChange: _ctx.handleUpdated
7544
- }, null, 8, [
7545
- "modelValue",
7546
- "onChange"
7547
- ])
7548
- ]),
7549
- _: 2
7550
- }, 1032, [
7551
- "validation-messages",
7552
- "validation-severity"
7553
- ])
7554
- ]),
7555
- _: 1
7556
- }, 8, [
7557
- "validation"
7558
- ]),
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, [
7559
7684
  createVNode(_component_IVuelidate, {
7560
- validation: _ctx.vuelidate.interval
7685
+ validation: _ctx.vuelidate.dayOfYear
7561
7686
  }, {
7562
- default: withCtx((props)=>[
7563
- createVNode(_component_VCFormGroup, {
7564
- "validation-messages": props.data,
7565
- "validation-severity": props.severity
7566
- }, {
7567
- label: withCtx(()=>_cache[8] || (_cache[8] = [
7568
- createTextVNode(" Interval ")
7569
- ])),
7570
- default: withCtx(()=>[
7571
- createVNode(_component_VCFormSelect, {
7572
- modelValue: _ctx.vuelidate.interval.$model,
7573
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>_ctx.vuelidate.interval.$model = $event),
7574
- options: _ctx.intervalOptions,
7575
- onChange: _ctx.handleIntervalUpdated
7576
- }, null, 8, [
7577
- "modelValue",
7578
- "options",
7579
- "onChange"
7580
- ])
7581
- ]),
7582
- _: 2
7583
- }, 1032, [
7584
- "validation-messages",
7585
- "validation-severity"
7586
- ])
7587
- ]),
7588
- _: 1
7589
- }, 8, [
7590
- "validation"
7591
- ]),
7592
- createElementVNode("div", _hoisted_1$3, [
7593
- _ctx.displayIntervalForDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2$2, [
7594
- createVNode(_component_IVuelidate, {
7595
- validation: _ctx.vuelidate.dayOfWeek
7596
- }, {
7597
- default: withCtx((props)=>[
7598
- createVNode(_component_VCFormGroup, {
7599
- "validation-messages": props.data,
7600
- "validation-severity": props.severity
7601
- }, {
7602
- label: withCtx(()=>_cache[9] || (_cache[9] = [
7603
- createTextVNode(" Day of Week ")
7604
- ])),
7605
- default: withCtx(()=>[
7606
- createVNode(_component_VCFormInput, {
7607
- modelValue: _ctx.vuelidate.dayOfWeek.$model,
7608
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event)=>_ctx.vuelidate.dayOfWeek.$model = $event),
7609
- placeholder: "0-7",
7610
- type: "number",
7611
- onChange: _ctx.handleUpdated
7612
- }, null, 8, [
7613
- "modelValue",
7614
- "onChange"
7615
- ])
7616
- ]),
7617
- _: 2
7618
- }, 1032, [
7619
- "validation-messages",
7620
- "validation-severity"
7621
- ])
7622
- ]),
7623
- _: 1
7624
- }, 8, [
7625
- "validation"
7626
- ])
7627
- ])) : createCommentVNode("", true),
7628
- _ctx.displayIntervalForDayOfMonth ? (openBlock(), createElementBlock("div", _hoisted_3$2, [
7629
- createVNode(_component_IVuelidate, {
7630
- validation: _ctx.vuelidate.dayOfMonth
7631
- }, {
7632
- default: withCtx((props)=>[
7633
- createVNode(_component_VCFormGroup, {
7634
- "validation-messages": props.data,
7635
- "validation-severity": props.severity
7636
- }, {
7637
- label: withCtx(()=>_cache[10] || (_cache[10] = [
7638
- createTextVNode(" Day of Month ")
7639
- ])),
7640
- default: withCtx(()=>[
7641
- createVNode(_component_VCFormInput, {
7642
- modelValue: _ctx.vuelidate.dayOfMonth.$model,
7643
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event)=>_ctx.vuelidate.dayOfMonth.$model = $event),
7644
- placeholder: "1-31",
7645
- type: "number",
7646
- onChange: _ctx.handleUpdated
7647
- }, null, 8, [
7648
- "modelValue",
7649
- "onChange"
7650
- ])
7651
- ]),
7652
- _: 2
7653
- }, 1032, [
7654
- "validation-messages",
7655
- "validation-severity"
7656
- ])
7657
- ]),
7658
- _: 1
7659
- }, 8, [
7660
- "validation"
7661
- ])
7662
- ])) : createCommentVNode("", true),
7663
- _ctx.displayIntervalForDayOfYear ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
7664
- createVNode(_component_IVuelidate, {
7665
- validation: _ctx.vuelidate.dayOfYear
7666
- }, {
7667
- default: withCtx((props)=>[
7668
- createVNode(_component_VCFormGroup, {
7669
- "validation-messages": props.data,
7670
- "validation-severity": props.severity
7671
- }, {
7672
- label: withCtx(()=>_cache[11] || (_cache[11] = [
7673
- createTextVNode(" Day of Year ")
7674
- ])),
7675
- default: withCtx(()=>[
7676
- createVNode(_component_VCFormInput, {
7677
- modelValue: _ctx.vuelidate.dayOfYear.$model,
7678
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event)=>_ctx.vuelidate.dayOfYear.$model = $event),
7679
- type: "number",
7680
- placeholder: "1-365",
7681
- onChange: _ctx.handleUpdated
7682
- }, null, 8, [
7683
- "modelValue",
7684
- "onChange"
7685
- ])
7686
- ]),
7687
- _: 2
7688
- }, 1032, [
7689
- "validation-messages",
7690
- "validation-severity"
7691
- ])
7692
- ]),
7693
- _: 1
7694
- }, 8, [
7695
- "validation"
7696
- ])
7697
- ])) : createCommentVNode("", true)
7698
- ])
7699
- ]);
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
+ ]);
7700
7712
  }
7701
- var ATimePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$3, [
7702
- [
7703
- "render",
7704
- _sfc_render$3
7705
- ]
7706
- ]);
7713
+ var ATimePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8]]);
7707
7714
 
7708
7715
  const APolicy = defineComponent({
7709
7716
  props: defineEntityVProps(),
@@ -7724,7 +7731,7 @@ const APolicy = defineComponent({
7724
7731
  }
7725
7732
  });
7726
7733
 
7727
- var _sfc_main$2 = defineComponent({
7734
+ var _sfc_main$8 = defineComponent({
7728
7735
  props: {
7729
7736
  type: {
7730
7737
  type: String
@@ -7770,52 +7777,30 @@ var _sfc_main$2 = defineComponent({
7770
7777
  }
7771
7778
  });
7772
7779
 
7773
- const _hoisted_1$2 = {
7774
- class: "d-flex flex-column gap-2"
7775
- };
7776
- const _hoisted_2$1 = {
7777
- class: "d-flex flex-row gap-2 flex-wrap"
7778
- };
7779
- const _hoisted_3$1 = [
7780
- "onClick"
7781
- ];
7782
- function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
7783
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
7784
- createElementVNode("div", null, [
7785
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "Type", -1)),
7786
- createElementVNode("div", _hoisted_2$1, [
7787
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item, key)=>{
7788
- return openBlock(), createElementBlock("div", {
7789
- key,
7790
- class: normalizeClass([
7791
- {
7792
- "active": item.id === _ctx.option
7793
- },
7794
- "d-flex flex-column gap-1 text-center a-picker-item"
7795
- ]),
7796
- onClick: withModifiers(($event)=>_ctx.pick(`${item.id}`), [
7797
- "prevent"
7798
- ])
7799
- }, [
7800
- createElementVNode("div", null, toDisplayString(item.value), 1)
7801
- ], 10, _hoisted_3$1);
7802
- }), 128))
7803
- ])
7804
- ])
7805
- ]);
7780
+ const _hoisted_1$7 = { class: "d-flex flex-column gap-2" };
7781
+ const _hoisted_2$6 = { class: "d-flex flex-row gap-2 flex-wrap" };
7782
+ const _hoisted_3$4 = ["onClick"];
7783
+ 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
+ ]);
7806
7800
  }
7807
- var APolicyTypePicker = /* @__PURE__ */ _export_sfc(_sfc_main$2, [
7808
- [
7809
- "render",
7810
- _sfc_render$2
7811
- ],
7812
- [
7813
- "__scopeId",
7814
- "data-v-3fa3964f"
7815
- ]
7816
- ]);
7801
+ var APolicyTypePicker = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-3fa3964f"]]);
7817
7802
 
7818
- var _sfc_main$1 = defineComponent({
7803
+ var _sfc_main$7 = defineComponent({
7819
7804
  components: {
7820
7805
  ARealmPicker,
7821
7806
  VCFormInput,
@@ -7899,203 +7884,153 @@ var _sfc_main$1 = defineComponent({
7899
7884
  }
7900
7885
  });
7901
7886
 
7902
- const _hoisted_1$1 = {
7903
- class: "row"
7887
+ const _hoisted_1$6 = { class: "row" };
7888
+ const _hoisted_2$5 = { class: "col" };
7889
+ const _hoisted_3$3 = ["for"];
7890
+ const _hoisted_4$2 = {
7891
+ key: 0,
7892
+ class: "col"
7904
7893
  };
7905
- const _hoisted_2 = {
7906
- class: "col"
7907
- };
7908
- const _hoisted_3 = [
7909
- "for"
7910
- ];
7911
- const _hoisted_4 = {
7912
- key: 0,
7913
- class: "col"
7914
- };
7915
- function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
7916
- const _component_VCFormInput = resolveComponent("VCFormInput");
7917
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7918
- const _component_IVuelidate = resolveComponent("IVuelidate");
7919
- const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
7920
- const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7921
- const _component_ARealmPicker = resolveComponent("ARealmPicker");
7922
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
7923
- createElementVNode("div", _hoisted_2, [
7924
- createVNode(_component_IVuelidate, {
7925
- validation: _ctx.vuelidate.name
7926
- }, {
7927
- default: withCtx((props)=>[
7928
- createVNode(_component_VCFormGroup, {
7929
- "validation-messages": props.data,
7930
- "validation-severity": props.severity
7931
- }, {
7932
- label: withCtx(()=>_cache[5] || (_cache[5] = [
7933
- createTextVNode(" Name ")
7934
- ])),
7935
- default: withCtx(()=>[
7936
- createVNode(_component_VCFormInput, {
7937
- modelValue: _ctx.vuelidate.name.$model,
7938
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.name.$model = $event),
7939
- onChange: _ctx.handleUpdated
7940
- }, null, 8, [
7941
- "modelValue",
7942
- "onChange"
7943
- ])
7944
- ]),
7945
- _: 2
7946
- }, 1032, [
7947
- "validation-messages",
7948
- "validation-severity"
7949
- ])
7950
- ]),
7951
- _: 1
7952
- }, 8, [
7953
- "validation"
7894
+ 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"])
7954
7920
  ]),
7955
- createVNode(_component_IVuelidate, {
7956
- validation: _ctx.vuelidate.display_name
7957
- }, {
7958
- default: withCtx((props)=>[
7959
- createVNode(_component_VCFormGroup, {
7960
- "validation-messages": props.data,
7961
- "validation-severity": props.severity
7962
- }, {
7963
- label: withCtx(()=>_cache[6] || (_cache[6] = [
7964
- createTextVNode(" Display Name ")
7965
- ])),
7966
- default: withCtx(()=>[
7967
- createVNode(_component_VCFormInput, {
7968
- modelValue: _ctx.vuelidate.display_name.$model,
7969
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.display_name.$model = $event),
7970
- onChange: _ctx.handleUpdated
7971
- }, null, 8, [
7972
- "modelValue",
7973
- "onChange"
7974
- ])
7975
- ]),
7976
- _: 2
7977
- }, 1032, [
7978
- "validation-messages",
7979
- "validation-severity"
7980
- ])
7981
- ]),
7982
- _: 1
7983
- }, 8, [
7984
- "validation"
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"])
7985
7943
  ]),
7986
- createVNode(_component_IVuelidate, {
7987
- validation: _ctx.vuelidate.description
7988
- }, {
7989
- default: withCtx((props)=>[
7990
- createVNode(_component_VCFormGroup, {
7991
- "validation-messages": props.data,
7992
- "validation-severity": props.severity
7993
- }, {
7994
- label: withCtx(()=>_cache[7] || (_cache[7] = [
7995
- createTextVNode(" Description ")
7996
- ])),
7997
- default: withCtx(()=>[
7998
- createVNode(_component_VCFormTextarea, {
7999
- modelValue: _ctx.vuelidate.description.$model,
8000
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>_ctx.vuelidate.description.$model = $event),
8001
- rows: "4",
8002
- onChange: _ctx.handleUpdated
8003
- }, null, 8, [
8004
- "modelValue",
8005
- "onChange"
8006
- ])
8007
- ]),
8008
- _: 2
8009
- }, 1032, [
8010
- "validation-messages",
8011
- "validation-severity"
8012
- ])
8013
- ]),
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
+ ]),
8014
7994
  _: 1
8015
- }, 8, [
8016
- "validation"
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"])
8017
8022
  ]),
8018
- createVNode(_component_IVuelidate, {
8019
- validation: _ctx.vuelidate.invert
8020
- }, {
8021
- default: withCtx((props)=>[
8022
- createVNode(_component_VCFormGroup, {
8023
- "validation-messages": props.data,
8024
- "validation-severity": props.severity
8025
- }, {
8026
- default: withCtx(()=>[
8027
- createVNode(_component_VCFormInputCheckbox, {
8028
- modelValue: _ctx.vuelidate.invert.$model,
8029
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event)=>_ctx.vuelidate.invert.$model = $event),
8030
- "group-class": "form-switch",
8031
- label: true,
8032
- onChange: _ctx.handleUpdated
8033
- }, {
8034
- label: withCtx((iProps)=>[
8035
- createElementVNode("label", {
8036
- for: iProps.id
8037
- }, " Invert? ", 8, _hoisted_3)
8038
- ]),
8039
- _: 1
8040
- }, 8, [
8041
- "modelValue",
8042
- "onChange"
8043
- ])
8044
- ]),
8045
- _: 2
8046
- }, 1032, [
8047
- "validation-messages",
8048
- "validation-severity"
8049
- ])
8050
- ]),
8051
- _: 1
8052
- }, 8, [
8053
- "validation"
8054
- ])
8023
+ _: 1
8024
+ }, 8, ["validation-messages", "validation-severity"])
8055
8025
  ]),
8056
- !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock("div", _hoisted_4, [
8057
- createVNode(_component_IVuelidate, {
8058
- validation: _ctx.vuelidate.invert
8059
- }, {
8060
- default: withCtx((props)=>[
8061
- createVNode(_component_VCFormGroup, {
8062
- "validation-messages": props.data,
8063
- "validation-severity": props.severity
8064
- }, {
8065
- label: withCtx(()=>_cache[8] || (_cache[8] = [
8066
- createTextVNode(" Realm ")
8067
- ])),
8068
- default: withCtx(()=>[
8069
- createVNode(_component_ARealmPicker, {
8070
- value: _ctx.vuelidate.realm_id.$model,
8071
- onChange: _cache[4] || (_cache[4] = (value)=>{
8072
- _ctx.vuelidate.realm_id.$model = value.length > 0 ? value[0] : "";
8073
- })
8074
- }, null, 8, [
8075
- "value"
8076
- ])
8077
- ]),
8078
- _: 2
8079
- }, 1032, [
8080
- "validation-messages",
8081
- "validation-severity"
8082
- ])
8083
- ]),
8084
- _: 1
8085
- }, 8, [
8086
- "validation"
8087
- ])
8088
- ])) : createCommentVNode("", true)
8089
- ]);
8026
+ _: 1
8027
+ }, 8, ["validation"])
8028
+ ])) : createCommentVNode("", true)
8029
+ ]);
8090
8030
  }
8091
- var APolicyBasicForm = /* @__PURE__ */ _export_sfc(_sfc_main$1, [
8092
- [
8093
- "render",
8094
- _sfc_render$1
8095
- ]
8096
- ]);
8031
+ var APolicyBasicForm = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6]]);
8097
8032
 
8098
- var _sfc_main = defineComponent({
8033
+ var _sfc_main$6 = defineComponent({
8099
8034
  components: {
8100
8035
  AFormSubmit,
8101
8036
  APolicyTypePicker,
@@ -8171,51 +8106,33 @@ var _sfc_main = defineComponent({
8171
8106
  }
8172
8107
  });
8173
8108
 
8174
- const _hoisted_1 = {
8175
- class: "d-flex flex-column"
8176
- };
8177
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
8178
- const _component_APolicyBasicForm = resolveComponent("APolicyBasicForm");
8179
- const _component_AFormSubmit = resolveComponent("AFormSubmit");
8180
- return openBlock(), createElementBlock("div", _hoisted_1, [
8181
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "General", -1)),
8182
- createVNode(_component_APolicyBasicForm, {
8183
- entity: _ctx.data
8184
- }, null, 8, [
8185
- "entity"
8186
- ]),
8187
- _ctx.typeComputed ? renderSlot(_ctx.$slots, "default", {
8188
- key: 0,
8189
- entity: _ctx.entity
8190
- }, ()=>[
8191
- _ctx.typeComputed in _ctx.typeComponents ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.typeComponents[_ctx.typeComputed]), {
8192
- key: 0,
8193
- entity: _ctx.entity
8194
- }, null, 8, [
8195
- "entity"
8196
- ])) : createCommentVNode("", true)
8197
- ]) : createCommentVNode("", true),
8198
- createElementVNode("div", null, [
8199
- createVNode(_component_AFormSubmit, {
8200
- "is-invalid": _ctx.vuelidate.$invalid || !_ctx.typeComputed,
8201
- "is-busy": _ctx.busy,
8202
- "is-editing": _ctx.isEditing,
8203
- onSubmit: _ctx.submit
8204
- }, null, 8, [
8205
- "is-invalid",
8206
- "is-busy",
8207
- "is-editing",
8208
- "onSubmit"
8209
- ])
8210
- ])
8211
- ]);
8109
+ const _hoisted_1$5 = { class: "d-flex flex-column" };
8110
+ 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
+ ]);
8212
8134
  }
8213
- var APolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main, [
8214
- [
8215
- "render",
8216
- _sfc_render
8217
- ]
8218
- ]);
8135
+ var APolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5]]);
8219
8136
 
8220
8137
  const APermissionClientAssignments = defineComponent({
8221
8138
  props: {
@@ -8541,8 +8458,8 @@ const ARobotForm = defineComponent({
8541
8458
 
8542
8459
  const ARobots = defineComponent({
8543
8460
  props: defineEntityCollectionVProps(),
8544
- slots: Object,
8545
8461
  emits: defineEntityCollectionVEmitOptions(),
8462
+ slots: Object,
8546
8463
  setup (props, ctx) {
8547
8464
  const { render } = defineEntityCollectionManager({
8548
8465
  type: `${EntityType.ROBOT}`,
@@ -8785,7 +8702,8 @@ const AUserForm = defineComponent({
8785
8702
  email: {
8786
8703
  minLength: minLength(5),
8787
8704
  maxLength: maxLength(255),
8788
- email
8705
+ email,
8706
+ required
8789
8707
  },
8790
8708
  realm_id: {
8791
8709
  required
@@ -8859,6 +8777,9 @@ const AUserForm = defineComponent({
8859
8777
  value: $v.value.name.$model,
8860
8778
  onChange (input) {
8861
8779
  $v.value.name.$model = input;
8780
+ if (!$v.value.email.$model || isUserFakeEmail($v.value.email.$model)) {
8781
+ $v.value.email.$model = buildUserFakeEmail(input);
8782
+ }
8862
8783
  },
8863
8784
  props: {
8864
8785
  disabled: form.name_locked
@@ -9005,8 +8926,8 @@ const AUserForm = defineComponent({
9005
8926
 
9006
8927
  const AUsers = defineComponent({
9007
8928
  props: defineEntityCollectionVProps(),
9008
- slots: Object,
9009
8929
  emits: defineEntityCollectionVEmitOptions(),
8930
+ slots: Object,
9010
8931
  setup (props, ctx) {
9011
8932
  const { render } = defineEntityCollectionManager({
9012
8933
  type: `${EntityType.USER}`,
@@ -9484,11 +9405,622 @@ function install(app, options) {
9484
9405
  locale: options.translatorLocale
9485
9406
  });
9486
9407
  installComponents(app, options.components);
9408
+ installStoreManager(app);
9409
+ app.use(installFormControl);
9410
+ app.use(installPagination);
9411
+ }
9412
+
9413
+ var _sfc_main$5 = defineComponent({
9414
+ components: {
9415
+ ARealmPicker,
9416
+ APagination,
9417
+ ATitle,
9418
+ IVuelidate,
9419
+ AIdentityProviders,
9420
+ AIdentityProviderIcon
9421
+ },
9422
+ props: {
9423
+ codeRequest: {
9424
+ type: Object
9425
+ }
9426
+ },
9427
+ emits: [
9428
+ 'done',
9429
+ 'failed'
9430
+ ],
9431
+ setup (props, { emit }) {
9432
+ const apiClient = injectHTTPClient();
9433
+ const store = injectStore();
9434
+ const form = reactive({
9435
+ name: '',
9436
+ password: '',
9437
+ realm_id: ''
9438
+ });
9439
+ const vuelidate = useVuelidate({
9440
+ name: {
9441
+ required,
9442
+ minLength: minLength(3),
9443
+ maxLength: maxLength(255)
9444
+ },
9445
+ password: {
9446
+ required,
9447
+ minLength: minLength(3),
9448
+ maxLength: maxLength(255)
9449
+ },
9450
+ realm_id: {}
9451
+ }, form);
9452
+ const busy = ref(false);
9453
+ const realmId = computed(()=>{
9454
+ if (props.codeRequest && props.codeRequest.realm_id) {
9455
+ return props.codeRequest.realm_id;
9456
+ }
9457
+ return form.realm_id;
9458
+ });
9459
+ const identityProviderQuery = ref({});
9460
+ const resetIdentityProviderQuery = ()=>{
9461
+ identityProviderQuery.value = {
9462
+ filters: {
9463
+ realm_id: realmId.value || '',
9464
+ protocol: `!${IdentityProviderProtocol.LDAP}`,
9465
+ enabled: true
9466
+ }
9467
+ };
9468
+ };
9469
+ resetIdentityProviderQuery();
9470
+ const identityProviderRef = ref(null);
9471
+ const updateIdentityProviderList = ()=>{
9472
+ if (identityProviderRef.value) {
9473
+ identityProviderRef.value.load();
9474
+ }
9475
+ };
9476
+ const updateRealmId = (realmId)=>{
9477
+ form.realm_id = Array.isArray(realmId) ? realmId[0] : realmId;
9478
+ resetIdentityProviderQuery();
9479
+ nextTick(()=>{
9480
+ updateIdentityProviderList();
9481
+ });
9482
+ };
9483
+ const submit = async ()=>{
9484
+ try {
9485
+ await store.login({
9486
+ name: form.name,
9487
+ password: form.password,
9488
+ realmId: form.realm_id
9489
+ });
9490
+ emit('done');
9491
+ } catch (e) {
9492
+ emit('failed', e instanceof Error ? e.message : 'The login operation failed');
9493
+ }
9494
+ };
9495
+ const buildIdentityProviderURL = (id)=>{
9496
+ let authorizeURL = apiClient.identityProvider.getAuthorizeUri(id);
9497
+ if (props.codeRequest) {
9498
+ const serialized = base64URLEncode(JSON.stringify(props.codeRequest));
9499
+ authorizeURL += `?codeRequest=${serialized}`;
9500
+ }
9501
+ return authorizeURL;
9502
+ };
9503
+ return {
9504
+ updateRealmId,
9505
+ vuelidate,
9506
+ form,
9507
+ submit,
9508
+ busy,
9509
+ identityProviderQuery,
9510
+ identityProviderRef,
9511
+ buildIdentityProviderURL
9512
+ };
9513
+ }
9514
+ });
9515
+
9516
+ const _hoisted_1$4 = { class: "d-flex flex-row" };
9517
+ const _hoisted_2$4 = ["href"];
9518
+ const _hoisted_3$2 = { class: "d-flex flex-column" };
9519
+ const _hoisted_4$1 = { class: "text-center mb-1" };
9520
+ 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
+ ]);
9639
+ }
9640
+ var Login = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-957a0486"]]);
9641
+
9642
+ var _sfc_main$4 = defineComponent({
9643
+ props: {
9644
+ entity: {
9645
+ type: Object,
9646
+ required: true
9647
+ },
9648
+ requested: {
9649
+ type: Array,
9650
+ default: ()=>[]
9651
+ }
9652
+ },
9653
+ setup (props) {
9654
+ const isEnabled = computed(()=>props.requested.indexOf(props.entity.name) !== -1);
9655
+ return {
9656
+ isEnabled
9657
+ };
9658
+ }
9659
+ });
9660
+
9661
+ const _hoisted_1$3 = { class: "text-center" };
9662
+ const _hoisted_2$3 = { key: 0 };
9663
+ 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
+ ]);
9678
+ }
9679
+ var AuthorizeScope = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3]]);
9680
+
9681
+ var _sfc_main$3 = defineComponent({
9682
+ components: {
9683
+ AuthorizeScope
9684
+ },
9685
+ props: {
9686
+ client: {
9687
+ type: Object,
9688
+ required: true
9689
+ },
9690
+ scopesAvailable: {
9691
+ type: Array
9692
+ },
9693
+ scopesRequested: {
9694
+ type: [
9695
+ String,
9696
+ Array
9697
+ ]
9698
+ }
9699
+ },
9700
+ setup (props) {
9701
+ const httpClient = injectHTTPClient();
9702
+ const scopesRequestedNormalized = computed(()=>{
9703
+ if (!props.scopesRequested) {
9704
+ return [];
9705
+ }
9706
+ return Array.isArray(props.scopesRequested) ? props.scopesRequested : deserializeOAuth2Scope(props.scopesRequested);
9707
+ });
9708
+ const scopesAvailableNormalized = ref([]);
9709
+ const resolveScopesAvailable = async ()=>{
9710
+ if (props.scopesAvailable) {
9711
+ scopesAvailableNormalized.value = props.scopesAvailable;
9712
+ return;
9713
+ }
9714
+ if (props.client.id) {
9715
+ const { data: clientScopes } = await httpClient.clientScope.getMany({
9716
+ filters: {
9717
+ client_id: props.client.id
9718
+ },
9719
+ include: [
9720
+ 'scope'
9721
+ ]
9722
+ });
9723
+ scopesAvailableNormalized.value = clientScopes.map((clientScope)=>clientScope.scope);
9724
+ }
9725
+ };
9726
+ Promise.resolve().then(()=>resolveScopesAvailable());
9727
+ return {
9728
+ scopesRequestedNormalized,
9729
+ scopesAvailableNormalized
9730
+ };
9731
+ }
9732
+ });
9733
+
9734
+ const _hoisted_1$2 = { key: 0 };
9735
+ const _hoisted_2$2 = { class: "flex-column" };
9736
+ 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);
9755
+ }
9756
+ var AuthorizeScopes = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2]]);
9757
+
9758
+ var _sfc_main$2 = defineComponent({
9759
+ components: {
9760
+ AuthorizeScopes
9761
+ },
9762
+ props: {
9763
+ client: {
9764
+ type: Object,
9765
+ required: true
9766
+ },
9767
+ scopes: {
9768
+ type: Array
9769
+ },
9770
+ codeRequest: {
9771
+ type: Object,
9772
+ required: true
9773
+ }
9774
+ },
9775
+ setup (props) {
9776
+ const httpClient = injectHTTPClient();
9777
+ const abort = ()=>{
9778
+ const url = new URL(`${props.codeRequest.redirect_uri}`);
9779
+ url.searchParams.set('error', 'access_denied');
9780
+ url.searchParams.set('error_description', 'The resource owner or authorization server denied the request');
9781
+ if (props.codeRequest.state) {
9782
+ url.searchParams.set('state', props.codeRequest.state);
9783
+ }
9784
+ if (typeof window !== 'undefined') {
9785
+ window.location.href = url.href;
9786
+ }
9787
+ };
9788
+ const authorize = async ()=>{
9789
+ try {
9790
+ const response = await httpClient.authorize.confirm({
9791
+ response_type: props.codeRequest.response_type,
9792
+ client_id: props.client.id,
9793
+ redirect_uri: props.codeRequest.redirect_uri,
9794
+ ...props.codeRequest.state ? {
9795
+ state: props.codeRequest.state
9796
+ } : {},
9797
+ ...props.codeRequest.scope ? {
9798
+ scope: props.codeRequest.scope
9799
+ } : {}
9800
+ });
9801
+ const { url } = response;
9802
+ if (typeof window !== 'undefined') {
9803
+ window.location.href = url;
9804
+ }
9805
+ } catch (e) {
9806
+ // todo: show toast :)
9807
+ }
9808
+ };
9809
+ return {
9810
+ authorize,
9811
+ abort
9812
+ };
9813
+ }
9814
+ });
9815
+
9816
+ const _hoisted_1$1 = { class: "flex-column d-flex gap-2" };
9817
+ const _hoisted_2$1 = { class: "text-center" };
9818
+ const _hoisted_3$1 = { class: "fw-bold" };
9819
+ const _hoisted_4 = { class: "mt-auto" };
9820
+ const _hoisted_5 = { class: "d-flex flex-row" };
9821
+ const _hoisted_6 = { class: "ms-1" };
9822
+ const _hoisted_7 = { class: "d-flex flex-row" };
9823
+ const _hoisted_8 = { class: "ms-1" };
9824
+ const _hoisted_9 = { class: "d-flex flex-row" };
9825
+ const _hoisted_10 = { class: "ms-1" };
9826
+ const _hoisted_11 = { class: "row" };
9827
+ const _hoisted_12 = { class: "col-6" };
9828
+ const _hoisted_13 = { class: "col-6" };
9829
+ 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
+ ]);
9891
+ }
9892
+ var AuthorizeForm = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1]]);
9893
+
9894
+ var _sfc_main$1 = defineComponent({
9895
+ props: {
9896
+ isError: {
9897
+ type: Boolean
9898
+ },
9899
+ message: {
9900
+ type: String,
9901
+ required: true
9902
+ }
9903
+ }
9904
+ });
9905
+
9906
+ const _hoisted_1 = { class: "flex-column" };
9907
+ const _hoisted_2 = { class: "text-center" };
9908
+ const _hoisted_3 = { class: "text-center fs-6 p-3" };
9909
+ 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
+ ]);
9487
9921
  }
9922
+ var AuthorizeText = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render]]);
9923
+
9924
+ const wrapChild = (child)=>h('div', {
9925
+ class: 'd-flex align-items-center justify-content-center h-100'
9926
+ }, [
9927
+ h('div', {
9928
+ class: 'authorize'
9929
+ }, [
9930
+ child
9931
+ ])
9932
+ ]);
9933
+ var _sfc_main = defineComponent({
9934
+ components: {
9935
+ AuthorizeText,
9936
+ AuthorizeForm,
9937
+ Login
9938
+ },
9939
+ props: {
9940
+ codeRequest: {
9941
+ type: Object
9942
+ },
9943
+ client: {
9944
+ type: Object
9945
+ },
9946
+ clientId: {
9947
+ type: String
9948
+ },
9949
+ scopes: {
9950
+ type: Array
9951
+ },
9952
+ error: {
9953
+ type: Object
9954
+ }
9955
+ },
9956
+ emits: [
9957
+ 'redirect'
9958
+ ],
9959
+ setup (props) {
9960
+ const httpClient = injectHTTPClient();
9961
+ const store = injectStore();
9962
+ const { loggedIn } = storeToRefs$1(store);
9963
+ const error = ref(null);
9964
+ const client = ref(null);
9965
+ const resolve = async ()=>{
9966
+ if (props.error) {
9967
+ error.value = props.error;
9968
+ return;
9969
+ }
9970
+ if (props.client) {
9971
+ client.value = props.client;
9972
+ }
9973
+ if (props.clientId) {
9974
+ try {
9975
+ client.value = await httpClient.client.getOne(props.clientId);
9976
+ } catch (e) {
9977
+ if (e instanceof Error) {
9978
+ error.value = e;
9979
+ }
9980
+ }
9981
+ }
9982
+ };
9983
+ Promise.resolve().then(()=>resolve());
9984
+ return ()=>{
9985
+ if (error.value) {
9986
+ return wrapChild(h(AuthorizeText, {
9987
+ message: error.value.message,
9988
+ isError: true
9989
+ }));
9990
+ }
9991
+ if (!props.codeRequest) {
9992
+ return [];
9993
+ }
9994
+ if (!loggedIn.value) {
9995
+ return wrapChild(h(Suspense, {}, {
9996
+ default: ()=>h(Login, {
9997
+ codeRequest: props.codeRequest
9998
+ }),
9999
+ fallback: ()=>h(AuthorizeText, {
10000
+ message: 'Loading...'
10001
+ })
10002
+ }));
10003
+ }
10004
+ if (!client.value) {
10005
+ return [];
10006
+ }
10007
+ return wrapChild(h(Suspense, {}, {
10008
+ default: ()=>h(AuthorizeForm, {
10009
+ codeRequest: props.codeRequest,
10010
+ client: client.value,
10011
+ scopes: props.scopes
10012
+ }),
10013
+ fallback: ()=>h(AuthorizeText, {
10014
+ message: 'Loading...'
10015
+ })
10016
+ }));
10017
+ };
10018
+ }
10019
+ });
9488
10020
 
9489
10021
  var index = {
9490
10022
  install
9491
10023
  };
9492
10024
 
9493
- export { AAttributeNamesPolicyForm, 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, 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 };
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 };
9494
10026
  //# sourceMappingURL=index.mjs.map