@authup/client-web-kit 1.0.0-beta.27 → 1.0.0-beta.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/components/entities/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/client-role/AClientRoleAssignments.d.ts +2 -0
  6. package/dist/components/entities/client-role/AClientRoleAssignments.d.ts.map +1 -1
  7. package/dist/components/entities/identity-provider/AIdentityProviderPicker.vue.d.ts +3 -2
  8. package/dist/components/entities/identity-provider/AIdentityProviderPicker.vue.d.ts.map +1 -1
  9. package/dist/components/entities/permission/APermissionCheck.d.ts +3 -3
  10. package/dist/components/entities/permission/APermissionCheck.d.ts.map +1 -1
  11. package/dist/components/entities/policy/APolicyBasicForm.vue.d.ts +3 -2
  12. package/dist/components/entities/policy/APolicyBasicForm.vue.d.ts.map +1 -1
  13. package/dist/components/entities/policy/APolicyForm.vue.d.ts +15 -14
  14. package/dist/components/entities/policy/APolicyForm.vue.d.ts.map +1 -1
  15. package/dist/components/entities/policy/APolicyTypePicker.vue.d.ts +3 -2
  16. package/dist/components/entities/policy/APolicyTypePicker.vue.d.ts.map +1 -1
  17. package/dist/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue.d.ts +5 -4
  18. package/dist/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue.d.ts.map +1 -1
  19. package/dist/components/entities/policy/composite/ACompositePolicyForm.vue.d.ts +3 -2
  20. package/dist/components/entities/policy/composite/ACompositePolicyForm.vue.d.ts.map +1 -1
  21. package/dist/components/entities/policy/date/ADatePolicyForm.vue.d.ts +3 -2
  22. package/dist/components/entities/policy/date/ADatePolicyForm.vue.d.ts.map +1 -1
  23. package/dist/components/entities/policy/identity/AIdentityPolicyForm.vue.d.ts +5 -4
  24. package/dist/components/entities/policy/identity/AIdentityPolicyForm.vue.d.ts.map +1 -1
  25. package/dist/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue.d.ts +5 -4
  26. package/dist/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue.d.ts.map +1 -1
  27. package/dist/components/entities/policy/time/ATimePolicyForm.vue.d.ts +3 -2
  28. package/dist/components/entities/policy/time/ATimePolicyForm.vue.d.ts.map +1 -1
  29. package/dist/components/entities/user/AUserForm.d.ts.map +1 -1
  30. package/dist/components/utility/entity/record/module.d.ts.map +1 -1
  31. package/dist/components/utility/form-input-list/AFormInputList.vue.d.ts +5 -4
  32. package/dist/components/utility/form-input-list/AFormInputList.vue.d.ts.map +1 -1
  33. package/dist/components/utility/form-input-list/AFormInputListItem.vue.d.ts +3 -2
  34. package/dist/components/utility/form-input-list/AFormInputListItem.vue.d.ts.map +1 -1
  35. package/dist/components/workflows/Login.vue.d.ts +3 -2
  36. package/dist/components/workflows/Login.vue.d.ts.map +1 -1
  37. package/dist/components/workflows/authorize/Authorize.vue.d.ts +30 -29
  38. package/dist/components/workflows/authorize/Authorize.vue.d.ts.map +1 -1
  39. package/dist/components/workflows/authorize/AuthorizeForm.vue.d.ts +3 -2
  40. package/dist/components/workflows/authorize/AuthorizeForm.vue.d.ts.map +1 -1
  41. package/dist/components/workflows/authorize/AuthorizeScope.vue.d.ts +3 -2
  42. package/dist/components/workflows/authorize/AuthorizeScope.vue.d.ts.map +1 -1
  43. package/dist/components/workflows/authorize/AuthorizeScopes.vue.d.ts +3 -2
  44. package/dist/components/workflows/authorize/AuthorizeScopes.vue.d.ts.map +1 -1
  45. package/dist/components/workflows/authorize/AuthorizeText.vue.d.ts +3 -2
  46. package/dist/components/workflows/authorize/AuthorizeText.vue.d.ts.map +1 -1
  47. package/dist/core/permission-check/module.d.ts.map +1 -1
  48. package/dist/core/store/create.d.ts +18 -16
  49. package/dist/core/store/create.d.ts.map +1 -1
  50. package/dist/core/translator/constants.d.ts +3 -1
  51. package/dist/core/translator/constants.d.ts.map +1 -1
  52. package/dist/core/translator/de/client.d.ts.map +1 -1
  53. package/dist/core/translator/en/client.d.ts.map +1 -1
  54. package/dist/index.css +11 -11
  55. package/dist/index.mjs +1693 -1983
  56. package/dist/index.mjs.map +1 -1
  57. package/package.json +28 -27
  58. package/dist/components/entities/client/AClientForm.d.ts +0 -43
  59. package/dist/components/entities/client/AClientForm.d.ts.map +0 -1
  60. package/dist/index.cjs +0 -10498
  61. package/dist/index.cjs.map +0 -1
package/dist/index.mjs CHANGED
@@ -1,123 +1,31 @@
1
1
  import installFormControl, { VCFormGroup, VCFormInput, buildFormSubmit, buildFormInputText, buildFormGroup, buildFormInput, buildFormTextarea, buildFormInputCheckbox, VCFormInputCheckbox } from '@vuecs/form-controls';
2
2
  import { hasOwnProperty, isObject as isObject$1, merge, createMerger } from 'smob';
3
- import { hasInjectionContext, inject as inject$3, provide as provide$2, defineComponent, reactive, resolveComponent, 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, nextTick, normalizeClass, toDisplayString, Suspense } from 'vue';
3
+ import { hasInjectionContext, inject as inject$3, provide as provide$2, defineComponent, reactive, resolveComponent, openBlock, createBlock, withCtx, createVNode, createElementVNode, withModifiers, ref, computed, getCurrentScope, onScopeDispose, shallowRef, toRaw, isRef, isReactive, toRef, watchEffect, unref, onMounted, watch, onUnmounted, h, createElementBlock, renderSlot, createTextVNode, createCommentVNode, Fragment, renderList, mergeProps, getCurrentInstance, resolveDynamicComponent, toDisplayString, nextTick, normalizeClass, Suspense } from 'vue';
4
4
  import installPagination, { buildPagination as buildPagination$1 } from '@vuecs/pagination';
5
- import { REALM_MASTER_NAME, EntityDefaultEventName, buildEntityChannelName, EntityType, IdentityProviderProtocol, IdentityProviderPreset, getIdentityProviderProtocolForPreset } from '@authup/core-kit';
5
+ import { REALM_MASTER_NAME, EntityDefaultEventName, buildEntityChannelName, EntityType, IdentityProviderProtocol, IdentityProviderPreset, getIdentityProviderProtocolForPreset, isUserFakeEmail, buildUserFakeEmail } from '@authup/core-kit';
6
6
  import { IVuelidate, useTranslationsForNestedValidations, useTranslationsForBaseValidation as useTranslationsForBaseValidation$1, getSeverity, install as install$1 } from '@ilingo/vuelidate';
7
7
  import useVuelidate from '@vuelidate/core';
8
- import { maxLength, minLength, required, helpers, numeric, url, maxValue, minValue, email, sameAs } from '@vuelidate/validators';
8
+ import { required, maxLength, minLength, helpers, numeric, url, maxValue, minValue, email, sameAs } from '@vuelidate/validators';
9
9
  import { SlotName, buildList } from '@vuecs/list-controls';
10
10
  import { Client, CookieName, ClientAuthenticationHook, ClientAuthenticationHookEventName } from '@authup/core-http-kit';
11
11
  import { defineStore, storeToRefs as storeToRefs$1 } from 'pinia';
12
- import { PermissionMemoryProvider, PermissionChecker, PolicyEngine, TimePolicyInterval, isIntervalForDayOfWeek, isIntervalForDayOfMonth, isIntervalForDayOfYear, BuiltInPolicyType } from '@authup/access';
12
+ import { PermissionMemoryRepository, PermissionChecker, PolicyEngine, PolicyData, BuiltInPolicyType, TimePolicyInterval, isIntervalForDayOfWeek, isIntervalForDayOfMonth, isIntervalForDayOfYear } from '@authup/access';
13
13
  import { OAuth2Error, isOpenIDProviderMetadata, deserializeOAuth2Scope } from '@authup/specs';
14
- import { hasOwnProperty as hasOwnProperty$1, extendObject, isObject as isObject$2, createNanoID, base64URLEncode } from '@authup/kit';
14
+ import { hasOwnProperty as hasOwnProperty$1, extendObject, isObject as isObject$2, createNanoID, isBCryptHash, base64URLEncode } from '@authup/kit';
15
15
  import { SortDirection } from 'rapiq';
16
16
  import { ClientManager, buildEventFullName, EventNameSuffix } from '@authup/core-realtime-kit';
17
17
  import Cookie from 'universal-cookie';
18
18
 
19
- /*
20
- * Copyright (c) 2024-2024.
21
- * Author Peter Placzek (tada5hi)
22
- * For the full copyright and license information,
23
- * view the LICENSE file that was distributed with this source code.
24
- */ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
25
- /**
26
- * Convert string to property path array.
27
- *
28
- * @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
29
- * @see https://github.com/chaijs/pathval
30
- *
31
- * @param segment
32
- */ function pathToArray(segment) {
33
- const str = segment.replace(/([^\\])\[/g, '$1.[');
34
- const parts = str.match(/(\\\.|[^.]+?)+/g);
35
- if (!parts) {
36
- return [];
37
- }
38
- const result = [];
39
- for(let i = 0; i < parts.length; i++){
40
- if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
41
- continue;
42
- }
43
- const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
44
- if (regex) {
45
- result.push(regex[1]);
46
- } else {
47
- result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
48
- }
49
- }
50
- return result;
51
- }
52
19
  /*
53
20
  * Copyright (c) 2024.
54
21
  * Author Peter Placzek (tada5hi)
55
22
  * For the full copyright and license information,
56
23
  * view the LICENSE file that was distributed with this source code.
57
- */ var Character;
24
+ */ var Character$1;
58
25
  (function(Character) {
59
26
  Character["WILDCARD"] = "*";
60
27
  Character["GLOBSTAR"] = "**";
61
- })(Character || (Character = {}));
62
- /*
63
- * Copyright (c) 2024.
64
- * Author Peter Placzek (tada5hi)
65
- * For the full copyright and license information,
66
- * view the LICENSE file that was distributed with this source code.
67
- */ function isObject(input) {
68
- return !!input && typeof input === 'object' && !Array.isArray(input);
69
- }
70
- function getPathValue(data, path) {
71
- const parts = Array.isArray(path) ? path : pathToArray(path);
72
- let res;
73
- let temp = data;
74
- let index = 0;
75
- while(index < parts.length){
76
- if (temp === null || typeof temp === 'undefined') {
77
- break;
78
- }
79
- if (parts[index] in Object(temp)) {
80
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
81
- // @ts-expect-error
82
- temp = temp[parts[index]];
83
- } else {
84
- break;
85
- }
86
- if (index === parts.length - 1) {
87
- res = temp;
88
- }
89
- index++;
90
- }
91
- return res;
92
- }
93
- const NUMBER_REGEX = /^\d+$/;
94
- function setPathValue(data, path, value) {
95
- const parts = Array.isArray(path) ? path : pathToArray(path);
96
- let temp = data;
97
- let index = 0;
98
- while(index < parts.length){
99
- /* istanbul ignore next */ if (!Array.isArray(temp) && !isObject(temp)) {
100
- break;
101
- }
102
- const key = parts[index];
103
- // [foo, '0']
104
- if (typeof temp[key] === 'undefined') {
105
- const match = NUMBER_REGEX.test(key);
106
- if (match) {
107
- temp[key] = [];
108
- } else {
109
- temp[key] = {};
110
- }
111
- }
112
- if (index === parts.length - 1) {
113
- temp[key] = value;
114
- break;
115
- }
116
- index++;
117
- temp = temp[key];
118
- }
119
- return data;
120
- }
28
+ })(Character$1 || (Character$1 = {}));
121
29
 
122
30
  class Store {
123
31
  /**
@@ -163,6 +71,7 @@ class Store {
163
71
  this.data = {};
164
72
  }
165
73
  }
74
+
166
75
  class StoreManager {
167
76
  keys() {
168
77
  return Object.keys(this.instances);
@@ -178,6 +87,7 @@ class StoreManager {
178
87
  this.instances = {};
179
88
  }
180
89
  }
90
+
181
91
  function inject$2(key, instance) {
182
92
  if (instance && instance._context && instance._context.provides && instance._context.provides[key]) {
183
93
  return instance._context.provides[key];
@@ -187,6 +97,7 @@ function inject$2(key, instance) {
187
97
  }
188
98
  return undefined;
189
99
  }
100
+
190
101
  function provide$1(key, value, app) {
191
102
  if (typeof app === 'undefined') {
192
103
  const val = inject$2(key);
@@ -201,6 +112,7 @@ function provide$1(key, value, app) {
201
112
  }
202
113
  app.provide(key, value);
203
114
  }
115
+
204
116
  function getSymbol(key) {
205
117
  return Symbol.for('VCStoreManager');
206
118
  }
@@ -215,7 +127,7 @@ function installStoreManager(instance, key) {
215
127
  return manager;
216
128
  }
217
129
 
218
- var _sfc_main$h = defineComponent({
130
+ var _sfc_main$i = defineComponent({
219
131
  components: {
220
132
  IVuelidate,
221
133
  VCFormInput,
@@ -268,64 +180,45 @@ var _export_sfc = (sfc, props) => {
268
180
  return target;
269
181
  };
270
182
 
271
- const _hoisted_1$c = [
272
- "disabled"
273
- ];
274
- function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
275
- const _component_VCFormInput = resolveComponent("VCFormInput");
276
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
277
- const _component_IVuelidate = resolveComponent("IVuelidate");
278
- return openBlock(), createBlock(_component_IVuelidate, {
279
- validation: _ctx.vuelidate.name
280
- }, {
281
- default: withCtx((props)=>[
282
- createVNode(_component_VCFormGroup, {
283
- "validation-messages": props.data,
284
- "validation-severity": props.severity
285
- }, {
286
- default: withCtx(()=>[
287
- createVNode(_component_VCFormInput, {
288
- modelValue: _ctx.vuelidate.name.$model,
289
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.name.$model = $event),
290
- onChange: _ctx.handleUpdated
291
- }, {
292
- groupAppend: withCtx(()=>[
293
- createElementVNode("button", {
294
- disabled: _ctx.disabled,
295
- type: "button",
296
- class: "btn btn-xs btn-warning",
297
- onClick: _cache[0] || (_cache[0] = withModifiers((...args)=>_ctx.handleDeleted && _ctx.handleDeleted(...args), [
298
- "prevent"
299
- ]))
300
- }, _cache[2] || (_cache[2] = [
301
- createElementVNode("i", {
302
- class: "fa fa-minus"
303
- }, null, -1)
304
- ]), 8, _hoisted_1$c)
305
- ]),
306
- _: 1
307
- }, 8, [
308
- "modelValue",
309
- "onChange"
310
- ])
311
- ]),
312
- _: 2
313
- }, 1032, [
314
- "validation-messages",
315
- "validation-severity"
316
- ])
183
+ const _hoisted_1$d = ["disabled"];
184
+ function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) {
185
+ const _component_VCFormInput = resolveComponent("VCFormInput");
186
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
187
+ const _component_IVuelidate = resolveComponent("IVuelidate");
188
+ return openBlock(), createBlock(_component_IVuelidate, {
189
+ validation: _ctx.vuelidate.name
190
+ }, {
191
+ default: withCtx((props) => [
192
+ createVNode(_component_VCFormGroup, {
193
+ "validation-messages": props.data,
194
+ "validation-severity": props.severity
195
+ }, {
196
+ default: withCtx(() => [
197
+ createVNode(_component_VCFormInput, {
198
+ modelValue: _ctx.vuelidate.name.$model,
199
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.name.$model = $event),
200
+ onChange: _ctx.handleUpdated
201
+ }, {
202
+ groupAppend: withCtx(() => [
203
+ createElementVNode("button", {
204
+ disabled: _ctx.disabled,
205
+ type: "button",
206
+ class: "btn btn-xs btn-warning",
207
+ onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.handleDeleted && _ctx.handleDeleted(...args), ["prevent"]))
208
+ }, [..._cache[2] || (_cache[2] = [
209
+ createElementVNode("i", { class: "fa fa-minus" }, null, -1)
210
+ ])], 8, _hoisted_1$d)
317
211
  ]),
212
+ _: 1
213
+ }, 8, ["modelValue", "onChange"])
214
+ ]),
318
215
  _: 1
319
- }, 8, [
320
- "validation"
321
- ]);
216
+ }, 8, ["validation-messages", "validation-severity"])
217
+ ]),
218
+ _: 1
219
+ }, 8, ["validation"]);
322
220
  }
323
- var AFormInputListItem = /* @__PURE__ */ _export_sfc(_sfc_main$h, [
324
- [
325
- "render",
326
- _sfc_render$g
327
- ]
328
- ]);
221
+ var AFormInputListItem = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$h]]);
329
222
 
330
223
  function inject$1(key, instance) {
331
224
  if (instance && instance._context && instance._context.provides && instance._context.provides[key]) {
@@ -401,28 +294,35 @@ function provideHTTPClientAuthenticationHook(refresher, app) {
401
294
 
402
295
  // src/event-emitter.ts
403
296
  var EventEmitter = class {
404
- on(type, handler) {
405
- if (!this.all.has(type)) {
406
- this.all.set(type, []);
407
- }
408
- const handlers = this.all.get(type);
409
- handlers.push(handler);
410
- return ()=>handlers.splice(handlers.indexOf(handler) >>> 0, 1);
411
- }
412
- off(type, handler) {
413
- if (!type) {
414
- return this.all.clear();
415
- }
416
- const handlers = this.all.get(type);
417
- if (handlers) {
418
- if (handler) {
419
- handlers.splice(handlers.indexOf(handler) >>> 0, 1);
420
- } else {
421
- this.all.delete(type);
422
- }
423
- }
297
+ /**
298
+ * A Map of event names to registered handler functions.
299
+ */
300
+ all;
301
+ constructor(all) {
302
+ this.all = all || /* @__PURE__ */ new Map();
303
+ }
304
+ on(type, handler) {
305
+ if (!this.all.has(type)) {
306
+ this.all.set(type, []);
424
307
  }
425
- /**
308
+ const handlers = this.all.get(type);
309
+ handlers.push(handler);
310
+ return () => handlers.splice(handlers.indexOf(handler) >>> 0, 1);
311
+ }
312
+ off(type, handler) {
313
+ if (!type) {
314
+ return this.all.clear();
315
+ }
316
+ const handlers = this.all.get(type);
317
+ if (handlers) {
318
+ if (handler) {
319
+ handlers.splice(handlers.indexOf(handler) >>> 0, 1);
320
+ } else {
321
+ this.all.delete(type);
322
+ }
323
+ }
324
+ }
325
+ /**
426
326
  * Invoke all handlers for the given type.
427
327
  * If present, `'*'` handlers are invoked after type-matched handlers.
428
328
  *
@@ -430,21 +330,19 @@ var EventEmitter = class {
430
330
  *
431
331
  * @param type The event type to invoke
432
332
  * @param payload Any value to each handler
433
- */ emit(type, ...payload) {
434
- let handlers = this.all.get(type);
435
- handlers?.slice().map((handler)=>{
436
- handler(...payload);
437
- });
438
- handlers = this.all.get("*");
439
- if (handlers) {
440
- handlers.slice().map((handler)=>{
441
- handler(type, payload);
442
- });
443
- }
444
- }
445
- constructor(all){
446
- this.all = all || /* @__PURE__ */ new Map();
333
+ */
334
+ emit(type, ...payload) {
335
+ let handlers = this.all.get(type);
336
+ handlers?.slice().map((handler) => {
337
+ handler(...payload);
338
+ });
339
+ handlers = this.all.get("*");
340
+ if (handlers) {
341
+ handlers.slice().map((handler) => {
342
+ handler(type, payload);
343
+ });
447
344
  }
345
+ }
448
346
  };
449
347
 
450
348
  function createStoreDispatcher() {
@@ -539,9 +437,9 @@ function createStore(context) {
539
437
  context.dispatcher.emit(StoreDispatcherEventName.REALM_MANAGEMENT_UPDATED, input);
540
438
  };
541
439
  // --------------------------------------------------------------------
542
- const permissionRepository = new PermissionMemoryProvider();
440
+ const permissionRepository = new PermissionMemoryRepository();
543
441
  const permissionChecker = new PermissionChecker({
544
- provider: permissionRepository,
442
+ repository: permissionRepository,
545
443
  policyEngine: new PolicyEngine()
546
444
  });
547
445
  // --------------------------------------------------------------------
@@ -729,69 +627,77 @@ function createStore(context) {
729
627
  };
730
628
  }
731
629
 
732
- function tryOnScopeDispose(fn) {
733
- if (getCurrentScope()) {
734
- onScopeDispose(fn);
735
- return true;
736
- }
737
- return false;
630
+ //#endregion
631
+ //#region tryOnScopeDispose/index.ts
632
+ /**
633
+ * Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing
634
+ *
635
+ * @param fn
636
+ */
637
+ function tryOnScopeDispose(fn, failSilently) {
638
+ if (getCurrentScope()) {
639
+ onScopeDispose(fn, failSilently);
640
+ return true;
641
+ }
642
+ return false;
738
643
  }
739
644
  typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
740
- const noop = ()=>{};
741
645
 
646
+ /**
647
+ * Reactive methods to work with cookies (use {@link createCookies} method instead if you are using SSR)
648
+ * @param dependencies - array of watching cookie's names. Pass empty array if don't want to watch cookies changes.
649
+ * @param options
650
+ * @param options.doNotParse - don't try parse value as JSON
651
+ * @param options.autoUpdateDependencies - automatically update watching dependencies
652
+ * @param cookies - universal-cookie instance
653
+ *
654
+ * @__NO_SIDE_EFFECTS__
655
+ */
742
656
  function useCookies(dependencies, { doNotParse = false, autoUpdateDependencies = false } = {}, cookies = new Cookie()) {
743
- const watchingDependencies = autoUpdateDependencies ? [
744
- ...[]
745
- ] : dependencies;
746
- let previousCookies = cookies.getAll({
747
- doNotParse: true
748
- });
749
- const touches = shallowRef(0);
750
- const onChange = ()=>{
751
- const newCookies = cookies.getAll({
752
- doNotParse: true
753
- });
754
- if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies)) {
755
- touches.value++;
756
- }
757
- previousCookies = newCookies;
758
- };
759
- cookies.addChangeListener(onChange);
760
- tryOnScopeDispose(()=>{
761
- cookies.removeChangeListener(onChange);
762
- });
763
- return {
764
- /**
765
- * Reactive get cookie by name. If **autoUpdateDependencies = true** then it will update watching dependencies
766
- */ get: (...args)=>{
767
- if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0])) watchingDependencies.push(args[0]);
768
- touches.value;
769
- return cookies.get(args[0], {
770
- doNotParse,
771
- ...args[1]
772
- });
773
- },
774
- /**
775
- * Reactive get all cookies
776
- */ getAll: (...args)=>{
777
- touches.value;
778
- return cookies.getAll({
779
- doNotParse,
780
- ...args[0]
781
- });
782
- },
783
- set: (...args)=>cookies.set(...args),
784
- remove: (...args)=>cookies.remove(...args),
785
- addChangeListener: (...args)=>cookies.addChangeListener(...args),
786
- removeChangeListener: (...args)=>cookies.removeChangeListener(...args)
787
- };
657
+ const watchingDependencies = autoUpdateDependencies ? [...[]] : dependencies;
658
+ let previousCookies = cookies.getAll({ doNotParse: true });
659
+ /**
660
+ * Adds reactivity to get/getAll methods
661
+ */
662
+ const touches = shallowRef(0);
663
+ const onChange = () => {
664
+ const newCookies = cookies.getAll({ doNotParse: true });
665
+ if (shouldUpdate(watchingDependencies || null, newCookies, previousCookies)) touches.value++;
666
+ previousCookies = newCookies;
667
+ };
668
+ cookies.addChangeListener(onChange);
669
+ tryOnScopeDispose(() => {
670
+ cookies.removeChangeListener(onChange);
671
+ });
672
+ return {
673
+ get: (...args) => {
674
+ /**
675
+ * Auto update watching dependencies if needed
676
+ */
677
+ if (autoUpdateDependencies && watchingDependencies && !watchingDependencies.includes(args[0])) watchingDependencies.push(args[0]);
678
+ touches.value;
679
+ return cookies.get(args[0], {
680
+ doNotParse,
681
+ ...args[1]
682
+ });
683
+ },
684
+ getAll: (...args) => {
685
+ touches.value;
686
+ return cookies.getAll({
687
+ doNotParse,
688
+ ...args[0]
689
+ });
690
+ },
691
+ set: (...args) => cookies.set(...args),
692
+ remove: (...args) => cookies.remove(...args),
693
+ addChangeListener: (...args) => cookies.addChangeListener(...args),
694
+ removeChangeListener: (...args) => cookies.removeChangeListener(...args)
695
+ };
788
696
  }
789
697
  function shouldUpdate(dependencies, newCookies, oldCookies) {
790
- if (!dependencies) return true;
791
- for (const dependency of dependencies){
792
- if (newCookies[dependency] !== oldCookies[dependency]) return true;
793
- }
794
- return false;
698
+ if (!dependencies) return true;
699
+ for (const dependency of dependencies) if (newCookies[dependency] !== oldCookies[dependency]) return true;
700
+ return false;
795
701
  }
796
702
 
797
703
  const sym = Symbol.for('AuthupStore');
@@ -1103,6 +1009,8 @@ var TranslatorTranslationClientKey = /*#__PURE__*/ function(TranslatorTranslatio
1103
1009
  TranslatorTranslationClientKey["DESCRIPTION_HINT"] = "descriptionHint";
1104
1010
  TranslatorTranslationClientKey["REDIRECT_URI_HINT"] = "redirectURIHint";
1105
1011
  TranslatorTranslationClientKey["IS_CONFIDENTIAL"] = "isConfidential";
1012
+ TranslatorTranslationClientKey["IS_ACTIVE"] = "isActive";
1013
+ TranslatorTranslationClientKey["HASH_SECRET"] = "hashSecret";
1106
1014
  return TranslatorTranslationClientKey;
1107
1015
  }({});
1108
1016
  var TranslatorTranslationDefaultKey = /*#__PURE__*/ function(TranslatorTranslationDefaultKey) {
@@ -1141,7 +1049,118 @@ var TranslatorTranslationDefaultKey = /*#__PURE__*/ function(TranslatorTranslati
1141
1049
  return TranslatorTranslationDefaultKey;
1142
1050
  }({});
1143
1051
 
1052
+ /*
1053
+ * Copyright (c) 2024-2024.
1054
+ * Author Peter Placzek (tada5hi)
1055
+ * For the full copyright and license information,
1056
+ * view the LICENSE file that was distributed with this source code.
1057
+ */ const BRACKET_NUMBER_REGEX = RegExp("(?<!\\\\)\\[(\\d+)]$");
1058
+ /**
1059
+ * Convert string to property path array.
1060
+ *
1061
+ * @see https://github.com/lodash/lodash/blob/main/src/.internal/stringToPath.ts
1062
+ * @see https://github.com/chaijs/pathval
1063
+ *
1064
+ * @param segment
1065
+ */ function pathToArray(segment) {
1066
+ const str = segment.replace(/([^\\])\[/g, '$1.[');
1067
+ const parts = str.match(/(\\\.|[^.]+?)+/g);
1068
+ if (!parts) {
1069
+ return [];
1070
+ }
1071
+ const result = [];
1072
+ for(let i = 0; i < parts.length; i++){
1073
+ if (parts[i] === 'constructor' || parts[i] === '__proto__' || parts[i] === 'prototype') {
1074
+ continue;
1075
+ }
1076
+ const regex = BRACKET_NUMBER_REGEX.exec(parts[i]);
1077
+ if (regex) {
1078
+ result.push(regex[1]);
1079
+ } else {
1080
+ result.push(parts[i].replace(/\\([.[\]])/g, '$1'));
1081
+ }
1082
+ }
1083
+ return result;
1084
+ }
1085
+
1086
+ /*
1087
+ * Copyright (c) 2024.
1088
+ * Author Peter Placzek (tada5hi)
1089
+ * For the full copyright and license information,
1090
+ * view the LICENSE file that was distributed with this source code.
1091
+ */ var Character;
1092
+ (function(Character) {
1093
+ Character["WILDCARD"] = "*";
1094
+ Character["GLOBSTAR"] = "**";
1095
+ })(Character || (Character = {}));
1096
+
1097
+ /*
1098
+ * Copyright (c) 2024.
1099
+ * Author Peter Placzek (tada5hi)
1100
+ * For the full copyright and license information,
1101
+ * view the LICENSE file that was distributed with this source code.
1102
+ */ function isObject(input) {
1103
+ return !!input && typeof input === 'object' && !Array.isArray(input);
1104
+ }
1105
+
1106
+ function getPathValue(data, path) {
1107
+ const parts = Array.isArray(path) ? path : pathToArray(path);
1108
+ let res;
1109
+ let temp = data;
1110
+ let index = 0;
1111
+ while(index < parts.length){
1112
+ if (temp === null || typeof temp === 'undefined') {
1113
+ break;
1114
+ }
1115
+ if (parts[index] in Object(temp)) {
1116
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
1117
+ // @ts-expect-error
1118
+ temp = temp[parts[index]];
1119
+ } else {
1120
+ break;
1121
+ }
1122
+ if (index === parts.length - 1) {
1123
+ res = temp;
1124
+ }
1125
+ index++;
1126
+ }
1127
+ return res;
1128
+ }
1129
+
1130
+ const NUMBER_REGEX = /^\d+$/;
1131
+ function setPathValue(data, path, value) {
1132
+ const parts = Array.isArray(path) ? path : pathToArray(path);
1133
+ let temp = data;
1134
+ let index = 0;
1135
+ while(index < parts.length){
1136
+ /* istanbul ignore next */ if (!Array.isArray(temp) && !isObject(temp)) {
1137
+ break;
1138
+ }
1139
+ const key = parts[index];
1140
+ // [foo, '0']
1141
+ if (typeof temp[key] === 'undefined') {
1142
+ const match = NUMBER_REGEX.test(key);
1143
+ if (match) {
1144
+ temp[key] = [];
1145
+ } else {
1146
+ temp[key] = {};
1147
+ }
1148
+ }
1149
+ if (index === parts.length - 1) {
1150
+ temp[key] = value;
1151
+ break;
1152
+ }
1153
+ index++;
1154
+ temp = temp[key];
1155
+ }
1156
+ return data;
1157
+ }
1158
+
1144
1159
  class MemoryStore {
1160
+ data;
1161
+ constructor(options){
1162
+ this.data = options.data;
1163
+ }
1145
1164
  async get(context) {
1146
1165
  if (!this.data[context.locale] || !this.data[context.locale][context.group]) {
1147
1166
  return undefined;
@@ -1167,59 +1186,70 @@ class MemoryStore {
1167
1186
  async getLocales() {
1168
1187
  return Object.keys(this.data);
1169
1188
  }
1170
- constructor(options){
1171
- this.data = options.data;
1172
- }
1173
1189
  }
1174
1190
 
1191
+ typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
1192
+ const noop = () => {
1193
+ };
1194
+
1175
1195
  function computedAsync(evaluationCallback, initialState, optionsOrRef) {
1176
- let options;
1177
- if (isRef(optionsOrRef)) {
1178
- options = {
1179
- evaluating: optionsOrRef
1180
- };
1181
- } else {
1182
- options = {};
1183
- }
1184
- const { lazy = false, flush = "pre", evaluating = void 0, shallow = true, onError = noop } = options;
1185
- const started = shallowRef(!lazy);
1186
- const current = shallow ? shallowRef(initialState) : ref(initialState);
1187
- let counter = 0;
1188
- watchEffect(async (onInvalidate)=>{
1189
- if (!started.value) return;
1190
- counter++;
1191
- const counterAtBeginning = counter;
1192
- let hasFinished = false;
1193
- if (evaluating) {
1194
- Promise.resolve().then(()=>{
1195
- evaluating.value = true;
1196
- });
1197
- }
1198
- try {
1199
- const result = await evaluationCallback((cancelCallback)=>{
1200
- onInvalidate(()=>{
1201
- if (evaluating) evaluating.value = false;
1202
- if (!hasFinished) cancelCallback();
1203
- });
1204
- });
1205
- if (counterAtBeginning === counter) current.value = result;
1206
- } catch (e) {
1207
- onError(e);
1208
- } finally{
1209
- if (evaluating && counterAtBeginning === counter) evaluating.value = false;
1210
- hasFinished = true;
1211
- }
1212
- }, {
1213
- flush
1214
- });
1215
- if (lazy) {
1216
- return computed(()=>{
1217
- started.value = true;
1218
- return current.value;
1219
- });
1220
- } else {
1221
- return current;
1196
+ var _a;
1197
+ let options;
1198
+ if (isRef(optionsOrRef)) {
1199
+ options = {
1200
+ evaluating: optionsOrRef
1201
+ };
1202
+ } else {
1203
+ options = {};
1204
+ }
1205
+ const {
1206
+ lazy = false,
1207
+ flush = "pre",
1208
+ evaluating = void 0,
1209
+ shallow = true,
1210
+ onError = (_a = globalThis.reportError) != null ? _a : noop
1211
+ } = options;
1212
+ const started = shallowRef(!lazy);
1213
+ const current = shallow ? shallowRef(initialState) : ref(initialState);
1214
+ let counter = 0;
1215
+ watchEffect(async (onInvalidate) => {
1216
+ if (!started.value)
1217
+ return;
1218
+ counter++;
1219
+ const counterAtBeginning = counter;
1220
+ let hasFinished = false;
1221
+ if (evaluating) {
1222
+ Promise.resolve().then(() => {
1223
+ evaluating.value = true;
1224
+ });
1222
1225
  }
1226
+ try {
1227
+ const result = await evaluationCallback((cancelCallback) => {
1228
+ onInvalidate(() => {
1229
+ if (evaluating)
1230
+ evaluating.value = false;
1231
+ if (!hasFinished)
1232
+ cancelCallback();
1233
+ });
1234
+ });
1235
+ if (counterAtBeginning === counter)
1236
+ current.value = result;
1237
+ } catch (e) {
1238
+ onError(e);
1239
+ } finally {
1240
+ if (evaluating && counterAtBeginning === counter)
1241
+ evaluating.value = false;
1242
+ hasFinished = true;
1243
+ }
1244
+ }, { flush });
1245
+ if (lazy) {
1246
+ return computed(() => {
1247
+ started.value = true;
1248
+ return current.value;
1249
+ });
1250
+ } else {
1251
+ return current;
1252
+ }
1223
1253
  }
1224
1254
 
1225
1255
  function inject(key, instance) {
@@ -1228,6 +1258,7 @@ function inject(key, instance) {
1228
1258
  }
1229
1259
  return undefined;
1230
1260
  }
1261
+
1231
1262
  const IlingoSymbol = Symbol.for('Ilingo');
1232
1263
  function injectIlingo(app) {
1233
1264
  const instance = inject(IlingoSymbol);
@@ -1236,6 +1267,7 @@ function injectIlingo(app) {
1236
1267
  }
1237
1268
  return instance;
1238
1269
  }
1270
+
1239
1271
  const LocaleSymbol = Symbol.for('ILocale');
1240
1272
  function injectLocale(app) {
1241
1273
  const locale = inject(LocaleSymbol);
@@ -1244,6 +1276,7 @@ function injectLocale(app) {
1244
1276
  }
1245
1277
  return locale;
1246
1278
  }
1279
+
1247
1280
  function extractReactiveData(input) {
1248
1281
  const output = {};
1249
1282
  const keys = Object.keys(input);
@@ -1252,6 +1285,7 @@ function extractReactiveData(input) {
1252
1285
  }
1253
1286
  return output;
1254
1287
  }
1288
+
1255
1289
  function useTranslation$1(ctx) {
1256
1290
  const instance = injectIlingo();
1257
1291
  const locale = injectLocale();
@@ -1266,6 +1300,7 @@ function useTranslation$1(ctx) {
1266
1300
  return value || defaultValue;
1267
1301
  }, defaultValue);
1268
1302
  }
1303
+
1269
1304
  defineComponent({
1270
1305
  props: {
1271
1306
  path: {
@@ -1329,7 +1364,9 @@ const TranslatorTranslationClientGerman = {
1329
1364
  [TranslatorTranslationClientKey.NAME_HINT]: 'Etwas, das Benutzer erkennen und vertrauen werden',
1330
1365
  [TranslatorTranslationClientKey.DESCRIPTION_HINT]: 'Dies wird allen Benutzern dieser Anwendung angezeigt',
1331
1366
  [TranslatorTranslationClientKey.REDIRECT_URI_HINT]: 'URI-Muster, zu dem ein Browser nach einem erfolgreichen Login weiterleiten kann',
1332
- [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: 'Ist vertraulich?'
1367
+ [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: 'Ist vertraulich?',
1368
+ [TranslatorTranslationClientKey.IS_ACTIVE]: 'Ist aktiv?',
1369
+ [TranslatorTranslationClientKey.HASH_SECRET]: 'Geheimnis hashen?'
1333
1370
  };
1334
1371
 
1335
1372
  const TranslatorTranslationDefaultGerman = {
@@ -1406,7 +1443,9 @@ const TranslatorTranslationClientEnglish = {
1406
1443
  [TranslatorTranslationClientKey.NAME_HINT]: 'Something users will recognize and trust',
1407
1444
  [TranslatorTranslationClientKey.DESCRIPTION_HINT]: 'Displayed to all users of this application',
1408
1445
  [TranslatorTranslationClientKey.REDIRECT_URI_HINT]: 'URI pattern a browser can redirect to after a successful login',
1409
- [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: 'Is confidential?'
1446
+ [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: 'Is confidential?',
1447
+ [TranslatorTranslationClientKey.IS_ACTIVE]: 'Is active?',
1448
+ [TranslatorTranslationClientKey.HASH_SECRET]: 'Hash secret?'
1410
1449
  };
1411
1450
 
1412
1451
  const TranslatorTranslationDefaultEnglish = {
@@ -1551,13 +1590,12 @@ function createPermissionCheckerReactiveFn(ctx = {}) {
1551
1590
  }
1552
1591
  }
1553
1592
  let outcome;
1593
+ const input = ctx.input || new PolicyData();
1594
+ input.set(BuiltInPolicyType.IDENTITY, identity);
1554
1595
  try {
1555
1596
  computePromise = store.permissionChecker.preCheckOneOf({
1556
1597
  ...ctx,
1557
- input: {
1558
- ...ctx.input || {},
1559
- identity
1560
- }
1598
+ input
1561
1599
  }).then(()=>true).catch(()=>false);
1562
1600
  outcome = await computePromise;
1563
1601
  } catch (e) {
@@ -1689,7 +1727,7 @@ const ATranslationDefault = defineComponent({
1689
1727
  }
1690
1728
  });
1691
1729
 
1692
- var _sfc_main$g = defineComponent({
1730
+ var _sfc_main$h = defineComponent({
1693
1731
  components: {
1694
1732
  ATranslationDefault,
1695
1733
  AFormInputListItem
@@ -1768,95 +1806,63 @@ var _sfc_main$g = defineComponent({
1768
1806
  }
1769
1807
  });
1770
1808
 
1771
- const _hoisted_1$b = {
1772
- class: "d-flex flex-column gap-2"
1773
- };
1774
- const _hoisted_2$a = {
1775
- class: "d-flex flex-row"
1776
- };
1777
- const _hoisted_3$8 = {
1778
- class: "align-self-end"
1779
- };
1780
- const _hoisted_4$6 = {
1781
- class: "ms-auto"
1782
- };
1783
- const _hoisted_5$3 = [
1784
- "disabled"
1785
- ];
1786
- const _hoisted_6$2 = {
1787
- class: "d-flex flex-column gap-1"
1788
- };
1789
- function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
1790
- const _component_ATranslationDefault = resolveComponent("ATranslationDefault");
1791
- const _component_AFormInputListItem = resolveComponent("AFormInputListItem");
1792
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
1793
- createElementVNode("div", _hoisted_2$a, [
1794
- createElementVNode("div", _hoisted_3$8, [
1795
- renderSlot(_ctx.$slots, "label", {}, ()=>[
1796
- _cache[1] || (_cache[1] = createTextVNode(" Names "))
1797
- ])
1798
- ]),
1799
- createElementVNode("div", _hoisted_4$6, [
1800
- createElementVNode("button", {
1801
- class: "btn btn-xs btn-primary",
1802
- type: "button",
1803
- disabled: !_ctx.canAdd,
1804
- onClick: _cache[0] || (_cache[0] = withModifiers(($event)=>_ctx.add(), [
1805
- "prevent"
1806
- ]))
1807
- }, [
1808
- _cache[2] || (_cache[2] = createElementVNode("i", {
1809
- class: "fa fa-plus"
1810
- }, null, -1)),
1811
- _cache[3] || (_cache[3] = createTextVNode()),
1812
- createVNode(_component_ATranslationDefault, {
1813
- name: "add"
1814
- })
1815
- ], 8, _hoisted_5$3)
1816
- ])
1817
- ]),
1818
- createElementVNode("div", _hoisted_6$2, [
1819
- _ctx.items.length === 0 ? renderSlot(_ctx.$slots, "noItems", {
1820
- key: 0
1821
- }, ()=>[
1822
- _cache[4] || (_cache[4] = createElementVNode("div", {
1823
- class: "alert alert-sm alert-info"
1824
- }, " The form list has no items yet ", -1))
1825
- ]) : createCommentVNode("", true),
1826
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item)=>{
1827
- return renderSlot(_ctx.$slots, "default", {
1828
- key: item.id,
1829
- item,
1830
- updated: _ctx.handleUpdated,
1831
- deleted: _ctx.handleDeleted
1832
- }, ()=>[
1833
- (openBlock(), createBlock(_component_AFormInputListItem, {
1834
- key: item.id,
1835
- disabled: !_ctx.canDrop,
1836
- name: item.value,
1837
- onUpdated: (input)=>{
1838
- _ctx.handleUpdated(item.id, input);
1839
- },
1840
- onDeleted: ()=>{
1841
- _ctx.handleDeleted(item.id);
1842
- }
1843
- }, null, 8, [
1844
- "disabled",
1845
- "name",
1846
- "onUpdated",
1847
- "onDeleted"
1848
- ]))
1849
- ]);
1850
- }), 128))
1809
+ const _hoisted_1$c = { class: "d-flex flex-column gap-2" };
1810
+ const _hoisted_2$b = { class: "d-flex flex-row" };
1811
+ const _hoisted_3$9 = { class: "align-self-end" };
1812
+ const _hoisted_4$7 = { class: "ms-auto" };
1813
+ const _hoisted_5$4 = ["disabled"];
1814
+ const _hoisted_6$3 = { class: "d-flex flex-column gap-1" };
1815
+ function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) {
1816
+ const _component_ATranslationDefault = resolveComponent("ATranslationDefault");
1817
+ const _component_AFormInputListItem = resolveComponent("AFormInputListItem");
1818
+ return openBlock(), createElementBlock("div", _hoisted_1$c, [
1819
+ createElementVNode("div", _hoisted_2$b, [
1820
+ createElementVNode("div", _hoisted_3$9, [
1821
+ renderSlot(_ctx.$slots, "label", {}, () => [
1822
+ _cache[1] || (_cache[1] = createTextVNode(" Names ", -1))
1851
1823
  ])
1852
- ]);
1824
+ ]),
1825
+ createElementVNode("div", _hoisted_4$7, [
1826
+ createElementVNode("button", {
1827
+ class: "btn btn-xs btn-primary",
1828
+ type: "button",
1829
+ disabled: !_ctx.canAdd,
1830
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.add(), ["prevent"]))
1831
+ }, [
1832
+ _cache[2] || (_cache[2] = createElementVNode("i", { class: "fa fa-plus" }, null, -1)),
1833
+ _cache[3] || (_cache[3] = createTextVNode()),
1834
+ createVNode(_component_ATranslationDefault, { name: "add" })
1835
+ ], 8, _hoisted_5$4)
1836
+ ])
1837
+ ]),
1838
+ createElementVNode("div", _hoisted_6$3, [
1839
+ _ctx.items.length === 0 ? renderSlot(_ctx.$slots, "noItems", { key: 0 }, () => [
1840
+ _cache[4] || (_cache[4] = createElementVNode("div", { class: "alert alert-sm alert-info" }, " The form list has no items yet ", -1))
1841
+ ]) : createCommentVNode("", true),
1842
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
1843
+ return renderSlot(_ctx.$slots, "default", {
1844
+ key: item.id,
1845
+ item,
1846
+ updated: _ctx.handleUpdated,
1847
+ deleted: _ctx.handleDeleted
1848
+ }, () => [
1849
+ (openBlock(), createBlock(_component_AFormInputListItem, {
1850
+ key: item.id,
1851
+ disabled: !_ctx.canDrop,
1852
+ name: item.value,
1853
+ onUpdated: (input) => {
1854
+ _ctx.handleUpdated(item.id, input);
1855
+ },
1856
+ onDeleted: () => {
1857
+ _ctx.handleDeleted(item.id);
1858
+ }
1859
+ }, null, 8, ["disabled", "name", "onUpdated", "onDeleted"]))
1860
+ ]);
1861
+ }), 128))
1862
+ ])
1863
+ ]);
1853
1864
  }
1854
- var AFormInputList = /* @__PURE__ */ _export_sfc(_sfc_main$g, [
1855
- [
1856
- "render",
1857
- _sfc_render$f
1858
- ]
1859
- ]);
1865
+ var AFormInputList = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["render", _sfc_render$g]]);
1860
1866
 
1861
1867
  function buildPagination(ctx) {
1862
1868
  return buildPagination$1({
@@ -2641,12 +2647,12 @@ function create(ctx) {
2641
2647
  return;
2642
2648
  }
2643
2649
  if (ctx.props.queryFilters) {
2644
- query = {
2645
- filters: ctx.props.queryFilters
2646
- };
2647
- if (query && ctx.props.queryFields) {
2648
- query.fields = ctx.props.queryFields;
2649
- }
2650
+ query = query || {};
2651
+ query.filters = ctx.props.queryFilters;
2652
+ }
2653
+ if (ctx.props.queryFields) {
2654
+ query = query || {};
2655
+ query.fields = ctx.props.queryFields;
2650
2656
  }
2651
2657
  if (ctx.props.entityId) {
2652
2658
  id = ctx.props.entityId;
@@ -3540,8 +3546,8 @@ const ARealmForm = defineComponent({
3540
3546
 
3541
3547
  const ARealms = defineComponent({
3542
3548
  props: defineEntityCollectionVProps(),
3543
- slots: Object,
3544
3549
  emits: defineEntityCollectionVEmitOptions(),
3550
+ slots: Object,
3545
3551
  setup (props, ctx) {
3546
3552
  const { render } = defineEntityCollectionManager({
3547
3553
  type: `${EntityType.REALM}`,
@@ -3581,7 +3587,13 @@ const ARealmPicker = defineComponent({
3581
3587
  }
3582
3588
  });
3583
3589
 
3584
- const AClientForm = defineComponent({
3590
+ var _sfc_main$g = defineComponent({
3591
+ components: {
3592
+ AFormSubmit,
3593
+ ARealmPicker,
3594
+ AFormInputList,
3595
+ IVuelidate
3596
+ },
3585
3597
  props: {
3586
3598
  name: {
3587
3599
  type: String,
@@ -3598,8 +3610,8 @@ const AClientForm = defineComponent({
3598
3610
  },
3599
3611
  emits: defineEntityVEmitOptions(),
3600
3612
  setup (props, ctx) {
3601
- const busy = ref(false);
3602
3613
  const form = reactive({
3614
+ active: true,
3603
3615
  name: '',
3604
3616
  display_name: '',
3605
3617
  description: '',
@@ -3607,10 +3619,14 @@ const AClientForm = defineComponent({
3607
3619
  redirect_uri: '',
3608
3620
  base_url: '',
3609
3621
  root_url: '',
3610
- is_confidential: false,
3611
- secret: ''
3622
+ is_confidential: true,
3623
+ secret: '',
3624
+ secret_hashed: false
3612
3625
  });
3613
- const $v = useVuelidate({
3626
+ const vuelidate = useVuelidate({
3627
+ active: {
3628
+ required
3629
+ },
3614
3630
  name: {
3615
3631
  required,
3616
3632
  [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT],
@@ -3636,7 +3652,8 @@ const AClientForm = defineComponent({
3636
3652
  secret: {
3637
3653
  minLength: minLength(3),
3638
3654
  maxLength: maxLength(256)
3639
- }
3655
+ },
3656
+ secret_hashed: {}
3640
3657
  }, form);
3641
3658
  const store = injectStore();
3642
3659
  const storeRefs = storeToRefs(store);
@@ -3648,275 +3665,389 @@ const AClientForm = defineComponent({
3648
3665
  const isEditing = useIsEditing(manager.data);
3649
3666
  const updatedAt = useUpdatedAt(props.entity);
3650
3667
  const isNameFixed = computed(()=>!!props.name && props.name.length > 0);
3651
- const realmId = computed(()=>{
3652
- if (!storeRefs.realmIsRoot) {
3653
- return storeRefs.realmId.value;
3668
+ const realmId = computed(()=>manager.data.value ? manager.data.value.realm_id : storeRefs.realmId.value);
3669
+ const generateSecret = ()=>createNanoID('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_!.', 32);
3670
+ const isSecretHashed = computed(()=>{
3671
+ if (!manager.data.value || manager.data.value.secret !== form.secret) {
3672
+ return false;
3654
3673
  }
3655
- return manager.data.value ? manager.data.value.realm_id : null;
3674
+ return isBCryptHash(form.secret);
3656
3675
  });
3657
- const generateSecret = ()=>{
3658
- form.secret = createNanoID('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_!.', 64);
3659
- };
3660
3676
  function initForm() {
3661
3677
  if (props.name) {
3662
3678
  form.name = props.name;
3663
3679
  }
3664
- if (!manager.data.value && realmId.value) {
3665
- form.realm_id = realmId.value;
3666
- }
3667
3680
  assignFormProperties(form, manager.data.value);
3681
+ form.realm_id = realmId.value ?? '';
3668
3682
  if (form.secret.length === 0) {
3669
- generateSecret();
3683
+ form.secret = generateSecret();
3670
3684
  }
3671
3685
  }
3672
- watch(updatedAt, (val, oldVal)=>{
3673
- if (val && val !== oldVal) {
3674
- manager.data.value = props.entity;
3675
- initForm();
3686
+ const isConfidential = computed(()=>form.is_confidential);
3687
+ watch(isConfidential, (val, oldValue)=>{
3688
+ if (val === oldValue) return;
3689
+ if (val) {
3690
+ form.secret = manager.data.value?.secret || generateSecret();
3691
+ } else {
3692
+ form.secret = '';
3676
3693
  }
3677
3694
  });
3678
- initForm();
3679
- const submit = async ()=>{
3680
- if ($v.value.$invalid) {
3681
- return;
3682
- }
3683
- await manager.createOrUpdate(form);
3684
- };
3685
- const translationsValidation = useTranslationsForNestedValidation($v.value);
3686
- const translationsSubmit = createFormSubmitTranslations();
3687
- const translationsClient = useTranslationsForGroup(TranslatorTranslationGroup.CLIENT, [
3688
- {
3689
- key: TranslatorTranslationClientKey.NAME_HINT
3690
- },
3691
- {
3692
- key: TranslatorTranslationClientKey.DESCRIPTION_HINT
3693
- },
3694
- {
3695
- key: TranslatorTranslationClientKey.REDIRECT_URI_HINT
3696
- },
3697
- {
3698
- key: TranslatorTranslationClientKey.IS_CONFIDENTIAL
3699
- }
3700
- ]);
3701
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
3702
- {
3703
- key: TranslatorTranslationDefaultKey.GENERATE
3704
- },
3705
- {
3706
- key: TranslatorTranslationDefaultKey.NAME
3707
- },
3708
- {
3709
- key: TranslatorTranslationDefaultKey.DISPLAY_NAME
3710
- },
3711
- {
3712
- key: TranslatorTranslationDefaultKey.DESCRIPTION
3713
- },
3714
- {
3715
- key: TranslatorTranslationDefaultKey.REALM
3716
- },
3717
- {
3718
- key: TranslatorTranslationDefaultKey.REDIRECT_URIS
3719
- },
3720
- {
3721
- key: TranslatorTranslationDefaultKey.SECRET
3722
- }
3723
- ]);
3724
- const render = ()=>{
3725
- const name = [
3726
- buildFormGroup({
3727
- validationMessages: translationsValidation.name.value,
3728
- validationSeverity: getVuelidateSeverity($v.value.name),
3729
- label: true,
3730
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
3731
- content: buildFormInput({
3732
- value: $v.value.name.$model,
3733
- onChange (input) {
3734
- $v.value.name.$model = input;
3735
- },
3736
- props: {
3737
- disabled: isNameFixed.value
3738
- }
3739
- })
3740
- }),
3741
- h('small', translationsClient[TranslatorTranslationClientKey.NAME_HINT].value)
3742
- ];
3743
- const displayName = buildFormGroup({
3744
- validationMessages: translationsValidation.display_name.value,
3745
- validationSeverity: getVuelidateSeverity($v.value.display_name),
3746
- label: true,
3747
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
3748
- content: buildFormInput({
3749
- value: $v.value.display_name.$model,
3750
- onChange (input) {
3751
- $v.value.display_name.$model = input;
3752
- }
3753
- })
3754
- });
3755
- const description = [
3756
- h('div', [
3757
- buildFormGroup({
3758
- validationMessages: translationsValidation.description.value,
3759
- validationSeverity: getVuelidateSeverity($v.value.description),
3760
- label: true,
3761
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DESCRIPTION].value,
3762
- content: buildFormTextarea({
3763
- value: $v.value.description.$model,
3764
- onChange (input) {
3765
- $v.value.description.$model = input;
3766
- },
3767
- props: {
3768
- rows: 7
3769
- }
3770
- })
3771
- }),
3772
- h('small', translationsClient[TranslatorTranslationClientKey.DESCRIPTION_HINT].value)
3773
- ])
3774
- ];
3775
- const redirectUri = [
3776
- h(AFormInputList, {
3777
- names: form.redirect_uri ? form.redirect_uri.split(',') : [],
3778
- onChanged: (value)=>{
3779
- if (value.length === 0) {
3780
- form.redirect_uri = '';
3781
- return;
3782
- }
3783
- form.redirect_uri = value.join(',');
3784
- }
3785
- }, {
3786
- label: ()=>[
3787
- translationsDefault[TranslatorTranslationDefaultKey.REDIRECT_URIS].value
3788
- ]
3789
- }),
3790
- h('small', translationsClient[TranslatorTranslationClientKey.REDIRECT_URI_HINT].value)
3791
- ];
3792
- const isConfidential = buildFormGroup({
3793
- validationMessages: translationsValidation.is_confidential.value,
3794
- validationSeverity: getVuelidateSeverity($v.value.is_confidential),
3795
- content: buildFormInputCheckbox({
3796
- groupClass: 'form-switch mt-3',
3797
- labelContent: translationsClient[TranslatorTranslationClientKey.IS_CONFIDENTIAL].value,
3798
- value: $v.value.is_confidential.$model,
3799
- onChange (input) {
3800
- $v.value.is_confidential.$model = input;
3801
- }
3802
- })
3803
- });
3804
- let id = [];
3805
- if (manager.data.value) {
3806
- id = [
3807
- buildFormGroup({
3808
- label: true,
3809
- labelContent: 'ID',
3810
- content: buildFormInput({
3811
- value: manager.data.value.id,
3812
- props: {
3813
- disabled: true
3814
- }
3815
- })
3816
- }),
3817
- h('hr')
3818
- ];
3695
+ watch(updatedAt, (val, oldVal)=>{
3696
+ if (val && val !== oldVal) {
3697
+ manager.data.value = props.entity;
3698
+ initForm();
3819
3699
  }
3820
- const secret = [
3821
- buildFormGroup({
3822
- validationMessages: translationsValidation.secret.value,
3823
- validationSeverity: getVuelidateSeverity($v.value.secret),
3824
- label: true,
3825
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.SECRET].value,
3826
- content: buildFormInput({
3827
- value: $v.value.secret.$model,
3828
- onChange (input) {
3829
- $v.value.secret.$model = input;
3830
- }
3831
- })
3832
- }),
3833
- h('div', {
3834
- class: 'mb-2'
3835
- }, [
3836
- h('button', {
3837
- class: 'btn btn-dark btn-xs',
3838
- onClick ($event) {
3839
- $event.preventDefault();
3840
- generateSecret.call(null);
3841
- }
3842
- }, [
3843
- h('i', {
3844
- class: 'fa fa-wrench'
3845
- }),
3846
- ' ',
3847
- translationsDefault[TranslatorTranslationDefaultKey.GENERATE].value
3848
- ])
3849
- ])
3850
- ];
3851
- const submitForm = buildFormSubmitWithTranslations({
3852
- busy: busy.value,
3853
- submit,
3854
- isEditing: isEditing.value,
3855
- invalid: $v.value.$invalid
3856
- }, translationsSubmit);
3857
- let realm = [];
3858
- if (!realmId.value && !isEditing.value) {
3859
- realm = [
3860
- h('hr'),
3861
- buildFormGroup({
3862
- validationMessages: translationsValidation.realm_id.value,
3863
- validationSeverity: getVuelidateSeverity($v.value.realm_id),
3864
- label: true,
3865
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.REALM].value,
3866
- content: h(ARealmPicker, {
3867
- value: $v.value.realm_id.$model,
3868
- onChange: (input)=>{
3869
- $v.value.realm_id.$model = input.length > 0 ? input[0] : '';
3870
- }
3871
- })
3872
- })
3873
- ];
3700
+ });
3701
+ initForm();
3702
+ const submit = async ()=>{
3703
+ if (vuelidate.value.$invalid) {
3704
+ return;
3874
3705
  }
3875
- const leftColumn = h('div', {
3876
- class: 'col'
3877
- }, [
3878
- id,
3879
- name,
3880
- h('hr'),
3881
- displayName,
3882
- h('hr'),
3883
- secret,
3884
- realm
3885
- ]);
3886
- const rightColumn = [
3887
- h('div', {
3888
- class: 'col'
3889
- }, [
3890
- isConfidential,
3891
- h('hr'),
3892
- redirectUri,
3893
- h('hr'),
3894
- description,
3895
- submitForm
3896
- ])
3897
- ];
3898
- return h('form', {
3899
- onSubmit ($event) {
3900
- $event.preventDefault();
3901
- return submit.apply(null);
3902
- }
3903
- }, [
3904
- h('div', {
3905
- class: 'row'
3906
- }, [
3907
- leftColumn,
3908
- rightColumn
3909
- ])
3910
- ]);
3706
+ await manager.createOrUpdate(form);
3707
+ assignFormProperties(form, manager.data.value);
3708
+ };
3709
+ const translationsClient = useTranslationsForGroup(TranslatorTranslationGroup.CLIENT, [
3710
+ {
3711
+ key: TranslatorTranslationClientKey.NAME_HINT
3712
+ },
3713
+ {
3714
+ key: TranslatorTranslationClientKey.DESCRIPTION_HINT
3715
+ },
3716
+ {
3717
+ key: TranslatorTranslationClientKey.REDIRECT_URI_HINT
3718
+ },
3719
+ {
3720
+ key: TranslatorTranslationClientKey.IS_CONFIDENTIAL
3721
+ },
3722
+ {
3723
+ key: TranslatorTranslationClientKey.IS_ACTIVE
3724
+ },
3725
+ {
3726
+ key: TranslatorTranslationClientKey.HASH_SECRET
3727
+ }
3728
+ ]);
3729
+ const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
3730
+ {
3731
+ key: TranslatorTranslationDefaultKey.GENERATE
3732
+ },
3733
+ {
3734
+ key: TranslatorTranslationDefaultKey.NAME
3735
+ },
3736
+ {
3737
+ key: TranslatorTranslationDefaultKey.DISPLAY_NAME
3738
+ },
3739
+ {
3740
+ key: TranslatorTranslationDefaultKey.DESCRIPTION
3741
+ },
3742
+ {
3743
+ key: TranslatorTranslationDefaultKey.REALM
3744
+ },
3745
+ {
3746
+ key: TranslatorTranslationDefaultKey.REDIRECT_URIS
3747
+ },
3748
+ {
3749
+ key: TranslatorTranslationDefaultKey.SECRET
3750
+ }
3751
+ ]);
3752
+ const redirectUris = computed(()=>vuelidate.value.redirect_uri.$model ? vuelidate.value.redirect_uri.$model.split(',') : []);
3753
+ return {
3754
+ translationsDefault,
3755
+ translationsClient,
3756
+ vuelidate,
3757
+ data: manager.data,
3758
+ isNameFixed,
3759
+ isBusy: manager.busy.value,
3760
+ isEditing,
3761
+ isSecretHashed,
3762
+ generateSecret,
3763
+ redirectUris,
3764
+ submit
3911
3765
  };
3912
- return ()=>render();
3913
3766
  }
3914
3767
  });
3915
3768
 
3769
+ const _hoisted_1$b = { class: "row" };
3770
+ const _hoisted_2$a = { class: "col" };
3771
+ const _hoisted_3$8 = {
3772
+ key: 0,
3773
+ class: "text-danger font-weight-bold"
3774
+ };
3775
+ const _hoisted_4$6 = { class: "row" };
3776
+ const _hoisted_5$3 = { class: "col" };
3777
+ const _hoisted_6$2 = { class: "col" };
3778
+ const _hoisted_7$1 = { class: "col" };
3779
+ const _hoisted_8$1 = { class: "col" };
3780
+ function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) {
3781
+ const _component_VCFormInput = resolveComponent("VCFormInput");
3782
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
3783
+ const _component_IVuelidate = resolveComponent("IVuelidate");
3784
+ const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
3785
+ const _component_ARealmPicker = resolveComponent("ARealmPicker");
3786
+ const _component_AFormInputList = resolveComponent("AFormInputList");
3787
+ const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
3788
+ const _component_AFormSubmit = resolveComponent("AFormSubmit");
3789
+ return openBlock(), createElementBlock("div", _hoisted_1$b, [
3790
+ createElementVNode("div", _hoisted_2$a, [
3791
+ _ctx.data ? (openBlock(), createBlock(_component_VCFormGroup, { key: 0 }, {
3792
+ label: withCtx(() => [..._cache[10] || (_cache[10] = [
3793
+ createTextVNode(" ID ", -1)
3794
+ ])]),
3795
+ default: withCtx(() => [
3796
+ createVNode(_component_VCFormInput, {
3797
+ "model-value": _ctx.data.id,
3798
+ disabled: true
3799
+ }, null, 8, ["model-value"])
3800
+ ]),
3801
+ _: 1
3802
+ })) : createCommentVNode("", true),
3803
+ createVNode(_component_IVuelidate, {
3804
+ validation: _ctx.vuelidate.name
3805
+ }, {
3806
+ default: withCtx((props) => [
3807
+ createVNode(_component_VCFormGroup, {
3808
+ "validation-messages": props.data,
3809
+ "validation-severity": props.severity
3810
+ }, {
3811
+ label: withCtx(() => [
3812
+ createTextVNode(toDisplayString(_ctx.translationsDefault.name), 1)
3813
+ ]),
3814
+ default: withCtx(() => [
3815
+ createVNode(_component_VCFormInput, {
3816
+ modelValue: _ctx.vuelidate.name.$model,
3817
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event),
3818
+ disabled: _ctx.isNameFixed
3819
+ }, null, 8, ["modelValue", "disabled"])
3820
+ ]),
3821
+ _: 1
3822
+ }, 8, ["validation-messages", "validation-severity"]),
3823
+ createElementVNode("small", null, toDisplayString(_ctx.translationsClient.nameHint), 1)
3824
+ ]),
3825
+ _: 1
3826
+ }, 8, ["validation"]),
3827
+ _cache[14] || (_cache[14] = createElementVNode("hr", null, null, -1)),
3828
+ createVNode(_component_IVuelidate, {
3829
+ validation: _ctx.vuelidate.display_name
3830
+ }, {
3831
+ default: withCtx((props) => [
3832
+ createVNode(_component_VCFormGroup, {
3833
+ "validation-messages": props.data,
3834
+ "validation-severity": props.severity
3835
+ }, {
3836
+ label: withCtx(() => [
3837
+ createTextVNode(toDisplayString(_ctx.translationsDefault.displayName), 1)
3838
+ ]),
3839
+ default: withCtx(() => [
3840
+ createVNode(_component_VCFormInput, {
3841
+ modelValue: _ctx.vuelidate.display_name.$model,
3842
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.display_name.$model = $event),
3843
+ disabled: _ctx.isNameFixed
3844
+ }, null, 8, ["modelValue", "disabled"])
3845
+ ]),
3846
+ _: 1
3847
+ }, 8, ["validation-messages", "validation-severity"])
3848
+ ]),
3849
+ _: 1
3850
+ }, 8, ["validation"]),
3851
+ _cache[15] || (_cache[15] = createElementVNode("hr", null, null, -1)),
3852
+ createVNode(_component_IVuelidate, {
3853
+ validation: _ctx.vuelidate.secret
3854
+ }, {
3855
+ default: withCtx((props) => [
3856
+ createVNode(_component_VCFormGroup, {
3857
+ "validation-messages": props.data,
3858
+ "validation-severity": props.severity
3859
+ }, {
3860
+ label: withCtx(() => [
3861
+ createTextVNode(toDisplayString(_ctx.translationsDefault.secret) + " ", 1),
3862
+ _ctx.isSecretHashed ? (openBlock(), createElementBlock("span", _hoisted_3$8, [..._cache[11] || (_cache[11] = [
3863
+ createElementVNode("i", { class: "fa fa-exclamation-triangle" }, null, -1)
3864
+ ])])) : createCommentVNode("", true)
3865
+ ]),
3866
+ default: withCtx(() => [
3867
+ createVNode(_component_VCFormInput, {
3868
+ modelValue: _ctx.vuelidate.secret.$model,
3869
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.secret.$model = $event),
3870
+ disabled: !_ctx.vuelidate.is_confidential.$model
3871
+ }, {
3872
+ groupAppend: withCtx(() => [
3873
+ createElementVNode("button", {
3874
+ class: "btn",
3875
+ type: "button",
3876
+ onClick: _cache[2] || (_cache[2] = withModifiers(() => _ctx.vuelidate.secret.$model = _ctx.generateSecret(), ["prevent"]))
3877
+ }, [..._cache[12] || (_cache[12] = [
3878
+ createElementVNode("i", { class: "fa fa-refresh" }, null, -1)
3879
+ ])])
3880
+ ]),
3881
+ _: 1
3882
+ }, 8, ["modelValue", "disabled"])
3883
+ ]),
3884
+ _: 1
3885
+ }, 8, ["validation-messages", "validation-severity"])
3886
+ ]),
3887
+ _: 1
3888
+ }, 8, ["validation"]),
3889
+ createElementVNode("div", _hoisted_4$6, [
3890
+ createElementVNode("div", _hoisted_5$3, [
3891
+ createVNode(_component_IVuelidate, {
3892
+ validation: _ctx.vuelidate.is_confidential
3893
+ }, {
3894
+ default: withCtx((props) => [
3895
+ createVNode(_component_VCFormGroup, {
3896
+ "validation-messages": props.data,
3897
+ "validation-severity": props.severity
3898
+ }, {
3899
+ default: withCtx(() => [
3900
+ createVNode(_component_VCFormInputCheckbox, {
3901
+ modelValue: _ctx.vuelidate.is_confidential.$model,
3902
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.vuelidate.is_confidential.$model = $event),
3903
+ "group-class": "form-switch",
3904
+ label: true,
3905
+ "label-content": _ctx.translationsClient.isConfidential.value
3906
+ }, null, 8, ["modelValue", "label-content"])
3907
+ ]),
3908
+ _: 1
3909
+ }, 8, ["validation-messages", "validation-severity"])
3910
+ ]),
3911
+ _: 1
3912
+ }, 8, ["validation"])
3913
+ ]),
3914
+ createElementVNode("div", _hoisted_6$2, [
3915
+ createVNode(_component_IVuelidate, {
3916
+ validation: _ctx.vuelidate.secret_hashed
3917
+ }, {
3918
+ default: withCtx((props) => [
3919
+ createVNode(_component_VCFormGroup, {
3920
+ "validation-messages": props.data,
3921
+ "validation-severity": props.severity
3922
+ }, {
3923
+ default: withCtx(() => [
3924
+ createVNode(_component_VCFormInputCheckbox, {
3925
+ modelValue: _ctx.vuelidate.secret_hashed.$model,
3926
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.vuelidate.secret_hashed.$model = $event),
3927
+ "group-class": "form-switch",
3928
+ label: true,
3929
+ "label-content": _ctx.translationsClient.hashSecret.value
3930
+ }, null, 8, ["modelValue", "label-content"])
3931
+ ]),
3932
+ _: 1
3933
+ }, 8, ["validation-messages", "validation-severity"])
3934
+ ]),
3935
+ _: 1
3936
+ }, 8, ["validation"])
3937
+ ]),
3938
+ createElementVNode("div", _hoisted_7$1, [
3939
+ createVNode(_component_IVuelidate, {
3940
+ validation: _ctx.vuelidate.active
3941
+ }, {
3942
+ default: withCtx((props) => [
3943
+ createVNode(_component_VCFormGroup, {
3944
+ "validation-messages": props.data,
3945
+ "validation-severity": props.severity
3946
+ }, {
3947
+ default: withCtx(() => [
3948
+ createVNode(_component_VCFormInputCheckbox, {
3949
+ modelValue: _ctx.vuelidate.active.$model,
3950
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => _ctx.vuelidate.active.$model = $event),
3951
+ "group-class": "form-switch",
3952
+ label: true,
3953
+ "label-content": _ctx.translationsClient.isActive.value
3954
+ }, null, 8, ["modelValue", "label-content"])
3955
+ ]),
3956
+ _: 1
3957
+ }, 8, ["validation-messages", "validation-severity"])
3958
+ ]),
3959
+ _: 1
3960
+ }, 8, ["validation"])
3961
+ ])
3962
+ ]),
3963
+ !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
3964
+ _cache[13] || (_cache[13] = createElementVNode("hr", null, null, -1)),
3965
+ createVNode(_component_IVuelidate, {
3966
+ validation: _ctx.vuelidate.realm_id
3967
+ }, {
3968
+ default: withCtx((props) => [
3969
+ createVNode(_component_VCFormGroup, {
3970
+ "validation-messages": props.data,
3971
+ "validation-severity": props.severity
3972
+ }, {
3973
+ label: withCtx(() => [
3974
+ createTextVNode(toDisplayString(_ctx.translationsDefault.realm), 1)
3975
+ ]),
3976
+ default: withCtx(() => [
3977
+ createVNode(_component_ARealmPicker, {
3978
+ value: _ctx.vuelidate.realm_id.$model,
3979
+ onChange: _cache[7] || (_cache[7] = (input) => {
3980
+ _ctx.vuelidate.realm_id.$model = input.length > 0 ? input[0] : "";
3981
+ })
3982
+ }, null, 8, ["value"])
3983
+ ]),
3984
+ _: 1
3985
+ }, 8, ["validation-messages", "validation-severity"])
3986
+ ]),
3987
+ _: 1
3988
+ }, 8, ["validation"])
3989
+ ], 64)) : createCommentVNode("", true)
3990
+ ]),
3991
+ createElementVNode("div", _hoisted_8$1, [
3992
+ createVNode(_component_AFormInputList, {
3993
+ names: _ctx.redirectUris,
3994
+ onChanged: _cache[8] || (_cache[8] = (value) => {
3995
+ if (value.length === 0) {
3996
+ _ctx.vuelidate.redirect_uri.$model = "";
3997
+ return;
3998
+ }
3999
+ _ctx.vuelidate.redirect_uri.$model = value.join(",");
4000
+ })
4001
+ }, {
4002
+ label: withCtx(() => [
4003
+ createTextVNode(toDisplayString(_ctx.translationsDefault.redirectUris), 1)
4004
+ ]),
4005
+ _: 1
4006
+ }, 8, ["names"]),
4007
+ createElementVNode("small", null, toDisplayString(_ctx.translationsClient.redirectURIHint), 1),
4008
+ _cache[16] || (_cache[16] = createElementVNode("hr", null, null, -1)),
4009
+ createVNode(_component_IVuelidate, {
4010
+ validation: _ctx.vuelidate.description
4011
+ }, {
4012
+ default: withCtx((props) => [
4013
+ createVNode(_component_VCFormGroup, {
4014
+ "validation-messages": props.data,
4015
+ "validation-severity": props.severity
4016
+ }, {
4017
+ label: withCtx(() => [
4018
+ createTextVNode(toDisplayString(_ctx.translationsDefault.description), 1)
4019
+ ]),
4020
+ default: withCtx(() => [
4021
+ createVNode(_component_VCFormTextarea, {
4022
+ modelValue: _ctx.vuelidate.description.$model,
4023
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => _ctx.vuelidate.description.$model = $event),
4024
+ rows: "7"
4025
+ }, null, 8, ["modelValue"])
4026
+ ]),
4027
+ _: 1
4028
+ }, 8, ["validation-messages", "validation-severity"]),
4029
+ createElementVNode("small", null, toDisplayString(_ctx.translationsClient.descriptionHint), 1)
4030
+ ]),
4031
+ _: 1
4032
+ }, 8, ["validation"]),
4033
+ _cache[17] || (_cache[17] = createElementVNode("hr", null, null, -1)),
4034
+ createElementVNode("div", null, [
4035
+ createVNode(_component_AFormSubmit, {
4036
+ "is-busy": _ctx.isBusy,
4037
+ "is-editing": _ctx.isEditing,
4038
+ "is-invalid": _ctx.vuelidate.$invalid,
4039
+ onSubmit: _ctx.submit
4040
+ }, null, 8, ["is-busy", "is-editing", "is-invalid", "onSubmit"])
4041
+ ])
4042
+ ])
4043
+ ]);
4044
+ }
4045
+ var AClientForm = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$f]]);
4046
+
3916
4047
  const AClients = defineComponent({
3917
4048
  props: defineEntityCollectionVProps(),
3918
- slots: Object,
3919
4049
  emits: defineEntityCollectionVEmitOptions(),
4050
+ slots: Object,
3920
4051
  setup (props, ctx) {
3921
4052
  const { render } = defineEntityCollectionManager({
3922
4053
  type: `${EntityType.CLIENT}`,
@@ -4035,7 +4166,7 @@ const APermissionCheck = defineComponent({
4035
4166
  const fn = createPermissionCheckerReactiveFn();
4036
4167
  const isPermitted = computed(()=>fn({
4037
4168
  name: props.name,
4038
- input: props.input,
4169
+ input: new PolicyData(props.input),
4039
4170
  options: props.options
4040
4171
  }));
4041
4172
  return ()=>{
@@ -4049,8 +4180,8 @@ const APermissionCheck = defineComponent({
4049
4180
 
4050
4181
  const APolicies = defineComponent({
4051
4182
  props: defineEntityCollectionVProps(),
4052
- slots: Object,
4053
4183
  emits: defineEntityCollectionVEmitOptions(),
4184
+ slots: Object,
4054
4185
  setup (props, setup) {
4055
4186
  const { render } = defineEntityCollectionManager({
4056
4187
  type: `${EntityType.POLICY}`,
@@ -4140,8 +4271,8 @@ const APolicyPicker = defineComponent({
4140
4271
  },
4141
4272
  ...defineEntityPickerVProps()
4142
4273
  },
4143
- slots: Object,
4144
4274
  emits: defineEntityPickerVEmitOptions(),
4275
+ slots: Object,
4145
4276
  setup (props, { slots, ...setup }) {
4146
4277
  const { render } = defineEntityPicker({
4147
4278
  component: APolicies,
@@ -4357,8 +4488,8 @@ const APermissionForm = defineComponent({
4357
4488
 
4358
4489
  const APermissions = defineComponent({
4359
4490
  props: defineEntityCollectionVProps(),
4360
- slots: Object,
4361
4491
  emits: defineEntityCollectionVEmitOptions(),
4492
+ slots: Object,
4362
4493
  setup (props, setup) {
4363
4494
  const { render } = defineEntityCollectionManager({
4364
4495
  type: `${EntityType.PERMISSION}`,
@@ -4557,8 +4688,8 @@ const ARoleForm = defineComponent({
4557
4688
 
4558
4689
  const ARoles = defineComponent({
4559
4690
  props: defineEntityCollectionVProps(),
4560
- slots: Object,
4561
4691
  emits: defineEntityCollectionVEmitOptions(),
4692
+ slots: Object,
4562
4693
  setup (props, ctx) {
4563
4694
  const { render } = defineEntityCollectionManager({
4564
4695
  type: `${EntityType.ROLE}`,
@@ -4645,10 +4776,22 @@ const AClientRoleAssignment = defineComponent({
4645
4776
 
4646
4777
  const AClientRoleAssignments = defineComponent({
4647
4778
  props: {
4648
- entityId: String
4779
+ entityId: String,
4780
+ realmId: String
4649
4781
  },
4650
4782
  setup (props, { slots }) {
4651
- return ()=>h(ARoles, {}, {
4783
+ return ()=>h(ARoles, {
4784
+ query: {
4785
+ filters: {
4786
+ realm_id: [
4787
+ ...props.realmId ? [
4788
+ props.realmId
4789
+ ] : [],
4790
+ null
4791
+ ]
4792
+ }
4793
+ }
4794
+ }, {
4652
4795
  [SlotName.ITEM_ACTIONS]: (slotProps)=>h(AClientRoleAssignment, {
4653
4796
  clientId: props.entityId,
4654
4797
  roleId: slotProps.data.id,
@@ -4680,8 +4823,8 @@ const AClientScope = defineComponent({
4680
4823
 
4681
4824
  const AClientScopes = defineComponent({
4682
4825
  props: defineEntityCollectionVProps(),
4683
- slots: Object,
4684
4826
  emits: defineEntityCollectionVEmitOptions(),
4827
+ slots: Object,
4685
4828
  setup (props, ctx) {
4686
4829
  const { render } = defineEntityCollectionManager({
4687
4830
  type: `${EntityType.CLIENT_SCOPE}`,
@@ -4876,8 +5019,8 @@ const AScopeForm = defineComponent({
4876
5019
 
4877
5020
  const AScopes = defineComponent({
4878
5021
  props: defineEntityCollectionVProps(),
4879
- slots: Object,
4880
5022
  emits: defineEntityCollectionVEmitOptions(),
5023
+ slots: Object,
4881
5024
  setup (props, ctx) {
4882
5025
  const { render } = defineEntityCollectionManager({
4883
5026
  type: EntityType.SCOPE,
@@ -5831,113 +5974,70 @@ var _sfc_main$f = defineComponent({
5831
5974
  }
5832
5975
  });
5833
5976
 
5834
- const _hoisted_1$a = {
5835
- class: "d-flex flex-column gap-2"
5836
- };
5837
- const _hoisted_2$9 = {
5838
- class: "d-flex flex-row gap-2 flex-wrap"
5839
- };
5840
- const _hoisted_3$7 = [
5841
- "onClick"
5842
- ];
5843
- const _hoisted_4$5 = {
5844
- class: "d-flex flex-row gap-2 flex-wrap"
5845
- };
5846
- const _hoisted_5$2 = [
5847
- "onClick"
5848
- ];
5977
+ const _hoisted_1$a = { class: "d-flex flex-column gap-2" };
5978
+ const _hoisted_2$9 = { class: "d-flex flex-row gap-2 flex-wrap" };
5979
+ const _hoisted_3$7 = ["onClick"];
5980
+ const _hoisted_4$5 = { class: "d-flex flex-row gap-2 flex-wrap" };
5981
+ const _hoisted_5$2 = ["onClick"];
5849
5982
  function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) {
5850
- const _component_AIdentityProviderProtocol = resolveComponent("AIdentityProviderProtocol");
5851
- const _component_AIdentityProviderPreset = resolveComponent("AIdentityProviderPreset");
5852
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
5853
- createElementVNode("div", null, [
5854
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "Protocols", -1)),
5855
- createElementVNode("div", _hoisted_2$9, [
5856
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.protocols, (item, key)=>{
5857
- return openBlock(), createBlock(_component_AIdentityProviderProtocol, {
5858
- key,
5859
- id: item
5860
- }, {
5861
- default: withCtx((props)=>[
5862
- createElementVNode("div", {
5863
- class: normalizeClass([
5864
- {
5865
- "active": item === _ctx.protocol && !_ctx.preset
5866
- },
5867
- "d-flex flex-column gap-1 text-center identity-provider-picker-item"
5868
- ]),
5869
- onClick: withModifiers(($event)=>_ctx.pickProtocol(item), [
5870
- "prevent"
5871
- ])
5872
- }, [
5873
- createElementVNode("div", null, [
5874
- createElementVNode("i", {
5875
- class: normalizeClass([
5876
- "fa-2x",
5877
- props.icon
5878
- ])
5879
- }, null, 2)
5880
- ]),
5881
- createElementVNode("div", null, toDisplayString(props.name), 1)
5882
- ], 10, _hoisted_3$7)
5883
- ]),
5884
- _: 2
5885
- }, 1032, [
5886
- "id"
5887
- ]);
5888
- }), 128))
5889
- ])
5890
- ]),
5891
- createElementVNode("div", null, [
5892
- _cache[1] || (_cache[1] = createElementVNode("h6", null, "Presets", -1)),
5893
- createElementVNode("div", _hoisted_4$5, [
5894
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.presets, (item, key)=>{
5895
- return openBlock(), createBlock(_component_AIdentityProviderPreset, {
5896
- key,
5897
- id: item
5898
- }, {
5899
- default: withCtx((props)=>[
5900
- createElementVNode("div", {
5901
- class: normalizeClass([
5902
- {
5903
- "active": item === _ctx.preset
5904
- },
5905
- "d-flex flex-column gap-1 text-center identity-provider-picker-item"
5906
- ]),
5907
- onClick: withModifiers(($event)=>_ctx.pickPreset(item), [
5908
- "prevent"
5909
- ])
5910
- }, [
5911
- createElementVNode("div", null, [
5912
- createElementVNode("i", {
5913
- class: normalizeClass([
5914
- "fa-2x",
5915
- props.icon
5916
- ])
5917
- }, null, 2)
5918
- ]),
5919
- createElementVNode("div", null, toDisplayString(props.name), 1)
5920
- ], 10, _hoisted_5$2)
5921
- ]),
5922
- _: 2
5923
- }, 1032, [
5924
- "id"
5925
- ]);
5926
- }), 128))
5927
- ])
5928
- ])
5929
- ]);
5983
+ const _component_AIdentityProviderProtocol = resolveComponent("AIdentityProviderProtocol");
5984
+ const _component_AIdentityProviderPreset = resolveComponent("AIdentityProviderPreset");
5985
+ return openBlock(), createElementBlock("div", _hoisted_1$a, [
5986
+ createElementVNode("div", null, [
5987
+ _cache[0] || (_cache[0] = createElementVNode("h6", null, "Protocols", -1)),
5988
+ createElementVNode("div", _hoisted_2$9, [
5989
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.protocols, (item, key) => {
5990
+ return openBlock(), createBlock(_component_AIdentityProviderProtocol, {
5991
+ key,
5992
+ id: item
5993
+ }, {
5994
+ default: withCtx((props) => [
5995
+ createElementVNode("div", {
5996
+ class: normalizeClass([{ "active": item === _ctx.protocol && !_ctx.preset }, "d-flex flex-column gap-1 text-center identity-provider-picker-item"]),
5997
+ onClick: withModifiers(($event) => _ctx.pickProtocol(item), ["prevent"])
5998
+ }, [
5999
+ createElementVNode("div", null, [
6000
+ createElementVNode("i", {
6001
+ class: normalizeClass(["fa-2x", props.icon])
6002
+ }, null, 2)
6003
+ ]),
6004
+ createElementVNode("div", null, toDisplayString(props.name), 1)
6005
+ ], 10, _hoisted_3$7)
6006
+ ]),
6007
+ _: 2
6008
+ }, 1032, ["id"]);
6009
+ }), 128))
6010
+ ])
6011
+ ]),
6012
+ createElementVNode("div", null, [
6013
+ _cache[1] || (_cache[1] = createElementVNode("h6", null, "Presets", -1)),
6014
+ createElementVNode("div", _hoisted_4$5, [
6015
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.presets, (item, key) => {
6016
+ return openBlock(), createBlock(_component_AIdentityProviderPreset, {
6017
+ key,
6018
+ id: item
6019
+ }, {
6020
+ default: withCtx((props) => [
6021
+ createElementVNode("div", {
6022
+ class: normalizeClass([{ "active": item === _ctx.preset }, "d-flex flex-column gap-1 text-center identity-provider-picker-item"]),
6023
+ onClick: withModifiers(($event) => _ctx.pickPreset(item), ["prevent"])
6024
+ }, [
6025
+ createElementVNode("div", null, [
6026
+ createElementVNode("i", {
6027
+ class: normalizeClass(["fa-2x", props.icon])
6028
+ }, null, 2)
6029
+ ]),
6030
+ createElementVNode("div", null, toDisplayString(props.name), 1)
6031
+ ], 10, _hoisted_5$2)
6032
+ ]),
6033
+ _: 2
6034
+ }, 1032, ["id"]);
6035
+ }), 128))
6036
+ ])
6037
+ ])
6038
+ ]);
5930
6039
  }
5931
- var AIdentityProviderPicker = /* @__PURE__ */ _export_sfc(_sfc_main$f, [
5932
- [
5933
- "render",
5934
- _sfc_render$e
5935
- ],
5936
- [
5937
- "__scopeId",
5938
- "data-v-eb096917"
5939
- ]
5940
- ]);
6040
+ var AIdentityProviderPicker = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$e], ["__scopeId", "data-v-af0f282c"]]);
5941
6041
 
5942
6042
  const AIdentityProviderOAuth2ClientFields = defineComponent({
5943
6043
  props: {
@@ -6549,8 +6649,8 @@ const AIdentityProviderForm = defineComponent({
6549
6649
 
6550
6650
  const AIdentityProviders = defineComponent({
6551
6651
  props: defineEntityCollectionVProps(),
6552
- slots: Object,
6553
6652
  emits: defineEntityCollectionVEmitOptions(),
6653
+ slots: Object,
6554
6654
  setup (props, ctx) {
6555
6655
  const { render } = defineEntityCollectionManager({
6556
6656
  type: `${EntityType.IDENTITY_PROVIDER}`,
@@ -6885,22 +6985,14 @@ var _sfc_main$e = defineComponent({
6885
6985
  });
6886
6986
 
6887
6987
  function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) {
6888
- const _component_AFormInputList = resolveComponent("AFormInputList");
6889
- return openBlock(), createBlock(_component_AFormInputList, {
6890
- names: _ctx.vuelidate.names.$model,
6891
- "min-items": 1,
6892
- onChanged: _ctx.handleUpdated
6893
- }, null, 8, [
6894
- "names",
6895
- "onChanged"
6896
- ]);
6988
+ const _component_AFormInputList = resolveComponent("AFormInputList");
6989
+ return openBlock(), createBlock(_component_AFormInputList, {
6990
+ names: _ctx.vuelidate.names.$model,
6991
+ "min-items": 1,
6992
+ onChanged: _ctx.handleUpdated
6993
+ }, null, 8, ["names", "onChanged"]);
6897
6994
  }
6898
- var AAttributeNamesPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$e, [
6899
- [
6900
- "render",
6901
- _sfc_render$d
6902
- ]
6903
- ]);
6995
+ var AAttributeNamesPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["render", _sfc_render$d]]);
6904
6996
 
6905
6997
  var _sfc_main$d = defineComponent({
6906
6998
  components: {
@@ -6989,52 +7081,37 @@ var _sfc_main$d = defineComponent({
6989
7081
  });
6990
7082
 
6991
7083
  function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) {
6992
- const _component_APolicyChildrenPicker = resolveComponent("APolicyChildrenPicker");
6993
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
6994
- const _component_IVuelidate = resolveComponent("IVuelidate");
6995
- return openBlock(), createElementBlock("div", null, [
6996
- createVNode(_component_IVuelidate, {
6997
- validation: _ctx.vuelidate.items
7084
+ const _component_APolicyChildrenPicker = resolveComponent("APolicyChildrenPicker");
7085
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
7086
+ const _component_IVuelidate = resolveComponent("IVuelidate");
7087
+ return openBlock(), createElementBlock("div", null, [
7088
+ createVNode(_component_IVuelidate, {
7089
+ validation: _ctx.vuelidate.items
7090
+ }, {
7091
+ default: withCtx((props) => [
7092
+ createVNode(_component_VCFormGroup, {
7093
+ "validation-messages": props.data,
7094
+ "validation-severity": props.severity
6998
7095
  }, {
6999
- default: withCtx((props)=>[
7000
- createVNode(_component_VCFormGroup, {
7001
- "validation-messages": props.data,
7002
- "validation-severity": props.severity
7003
- }, {
7004
- label: withCtx(()=>_cache[0] || (_cache[0] = [
7005
- createTextVNode(" Children ")
7006
- ])),
7007
- default: withCtx(()=>[
7008
- createVNode(_component_APolicyChildrenPicker, {
7009
- "parent-id": _ctx.id,
7010
- query: _ctx.query,
7011
- value: _ctx.vuelidate.items.$model,
7012
- onChange: _ctx.handleUpdated
7013
- }, null, 8, [
7014
- "parent-id",
7015
- "query",
7016
- "value",
7017
- "onChange"
7018
- ])
7019
- ]),
7020
- _: 2
7021
- }, 1032, [
7022
- "validation-messages",
7023
- "validation-severity"
7024
- ])
7025
- ]),
7026
- _: 1
7027
- }, 8, [
7028
- "validation"
7029
- ])
7030
- ]);
7096
+ label: withCtx(() => [..._cache[0] || (_cache[0] = [
7097
+ createTextVNode(" Children ", -1)
7098
+ ])]),
7099
+ default: withCtx(() => [
7100
+ createVNode(_component_APolicyChildrenPicker, {
7101
+ "parent-id": _ctx.id,
7102
+ query: _ctx.query,
7103
+ value: _ctx.vuelidate.items.$model,
7104
+ onChange: _ctx.handleUpdated
7105
+ }, null, 8, ["parent-id", "query", "value", "onChange"])
7106
+ ]),
7107
+ _: 1
7108
+ }, 8, ["validation-messages", "validation-severity"])
7109
+ ]),
7110
+ _: 1
7111
+ }, 8, ["validation"])
7112
+ ]);
7031
7113
  }
7032
- var ACompositePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$d, [
7033
- [
7034
- "render",
7035
- _sfc_render$c
7036
- ]
7037
- ]);
7114
+ var ACompositePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$c]]);
7038
7115
 
7039
7116
  var _sfc_main$c = defineComponent({
7040
7117
  components: {
@@ -7084,82 +7161,61 @@ var _sfc_main$c = defineComponent({
7084
7161
  });
7085
7162
 
7086
7163
  function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) {
7087
- const _component_VCFormInput = resolveComponent("VCFormInput");
7088
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7089
- const _component_IVuelidate = resolveComponent("IVuelidate");
7090
- return openBlock(), createElementBlock("div", null, [
7091
- createVNode(_component_IVuelidate, {
7092
- validation: _ctx.vuelidate.start
7164
+ const _component_VCFormInput = resolveComponent("VCFormInput");
7165
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
7166
+ const _component_IVuelidate = resolveComponent("IVuelidate");
7167
+ return openBlock(), createElementBlock("div", null, [
7168
+ createVNode(_component_IVuelidate, {
7169
+ validation: _ctx.vuelidate.start
7170
+ }, {
7171
+ default: withCtx((props) => [
7172
+ createVNode(_component_VCFormGroup, {
7173
+ "validation-messages": props.data,
7174
+ "validation-severity": props.severity
7093
7175
  }, {
7094
- default: withCtx((props)=>[
7095
- createVNode(_component_VCFormGroup, {
7096
- "validation-messages": props.data,
7097
- "validation-severity": props.severity
7098
- }, {
7099
- label: withCtx(()=>_cache[2] || (_cache[2] = [
7100
- createTextVNode(" Start ")
7101
- ])),
7102
- default: withCtx(()=>[
7103
- createVNode(_component_VCFormInput, {
7104
- modelValue: _ctx.vuelidate.start.$model,
7105
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.start.$model = $event),
7106
- placeholder: "YYYY-MM-DD",
7107
- onChange: _ctx.handleUpdated
7108
- }, null, 8, [
7109
- "modelValue",
7110
- "onChange"
7111
- ])
7112
- ]),
7113
- _: 2
7114
- }, 1032, [
7115
- "validation-messages",
7116
- "validation-severity"
7117
- ])
7118
- ]),
7119
- _: 1
7120
- }, 8, [
7121
- "validation"
7122
- ]),
7123
- createVNode(_component_IVuelidate, {
7124
- validation: _ctx.vuelidate.end
7176
+ label: withCtx(() => [..._cache[2] || (_cache[2] = [
7177
+ createTextVNode(" Start ", -1)
7178
+ ])]),
7179
+ default: withCtx(() => [
7180
+ createVNode(_component_VCFormInput, {
7181
+ modelValue: _ctx.vuelidate.start.$model,
7182
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.start.$model = $event),
7183
+ placeholder: "YYYY-MM-DD",
7184
+ onChange: _ctx.handleUpdated
7185
+ }, null, 8, ["modelValue", "onChange"])
7186
+ ]),
7187
+ _: 1
7188
+ }, 8, ["validation-messages", "validation-severity"])
7189
+ ]),
7190
+ _: 1
7191
+ }, 8, ["validation"]),
7192
+ createVNode(_component_IVuelidate, {
7193
+ validation: _ctx.vuelidate.end
7194
+ }, {
7195
+ default: withCtx((props) => [
7196
+ createVNode(_component_VCFormGroup, {
7197
+ "validation-messages": props.data,
7198
+ "validation-severity": props.severity
7125
7199
  }, {
7126
- default: withCtx((props)=>[
7127
- createVNode(_component_VCFormGroup, {
7128
- "validation-messages": props.data,
7129
- "validation-severity": props.severity
7130
- }, {
7131
- label: withCtx(()=>_cache[3] || (_cache[3] = [
7132
- createTextVNode(" End ")
7133
- ])),
7134
- default: withCtx(()=>[
7135
- createVNode(_component_VCFormInput, {
7136
- modelValue: _ctx.vuelidate.end.$model,
7137
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.end.$model = $event),
7138
- placeholder: "YYYY-MM-DD",
7139
- onChange: _ctx.handleUpdated
7140
- }, null, 8, [
7141
- "modelValue",
7142
- "onChange"
7143
- ])
7144
- ]),
7145
- _: 2
7146
- }, 1032, [
7147
- "validation-messages",
7148
- "validation-severity"
7149
- ])
7150
- ]),
7151
- _: 1
7152
- }, 8, [
7153
- "validation"
7154
- ])
7155
- ]);
7200
+ label: withCtx(() => [..._cache[3] || (_cache[3] = [
7201
+ createTextVNode(" End ", -1)
7202
+ ])]),
7203
+ default: withCtx(() => [
7204
+ createVNode(_component_VCFormInput, {
7205
+ modelValue: _ctx.vuelidate.end.$model,
7206
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.end.$model = $event),
7207
+ placeholder: "YYYY-MM-DD",
7208
+ onChange: _ctx.handleUpdated
7209
+ }, null, 8, ["modelValue", "onChange"])
7210
+ ]),
7211
+ _: 1
7212
+ }, 8, ["validation-messages", "validation-severity"])
7213
+ ]),
7214
+ _: 1
7215
+ }, 8, ["validation"])
7216
+ ]);
7156
7217
  }
7157
- var ADatePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$c, [
7158
- [
7159
- "render",
7160
- _sfc_render$b
7161
- ]
7162
- ]);
7218
+ var ADatePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$b]]);
7163
7219
 
7164
7220
  var _sfc_main$b = defineComponent({
7165
7221
  components: {
@@ -7201,29 +7257,21 @@ var _sfc_main$b = defineComponent({
7201
7257
  };
7202
7258
  }
7203
7259
  });
7204
-
7205
- function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
7206
- const _component_AFormInputList = resolveComponent("AFormInputList");
7207
- return openBlock(), createBlock(_component_AFormInputList, {
7208
- names: _ctx.vuelidate.types.$model,
7209
- "min-items": 1,
7210
- onChanged: _ctx.handleUpdated
7211
- }, {
7212
- label: withCtx(()=>_cache[0] || (_cache[0] = [
7213
- createTextVNode(" Types ")
7214
- ])),
7215
- _: 1
7216
- }, 8, [
7217
- "names",
7218
- "onChanged"
7219
- ]);
7260
+
7261
+ function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) {
7262
+ const _component_AFormInputList = resolveComponent("AFormInputList");
7263
+ return openBlock(), createBlock(_component_AFormInputList, {
7264
+ names: _ctx.vuelidate.types.$model,
7265
+ "min-items": 1,
7266
+ onChanged: _ctx.handleUpdated
7267
+ }, {
7268
+ label: withCtx(() => [..._cache[0] || (_cache[0] = [
7269
+ createTextVNode(" Types ", -1)
7270
+ ])]),
7271
+ _: 1
7272
+ }, 8, ["names", "onChanged"]);
7220
7273
  }
7221
- var AIdentityPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$b, [
7222
- [
7223
- "render",
7224
- _sfc_render$a
7225
- ]
7226
- ]);
7274
+ var AIdentityPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["render", _sfc_render$a]]);
7227
7275
 
7228
7276
  var _sfc_main$a = defineComponent({
7229
7277
  components: {
@@ -7287,188 +7335,139 @@ var _sfc_main$a = defineComponent({
7287
7335
  }
7288
7336
  });
7289
7337
 
7290
- const _hoisted_1$9 = {
7291
- class: "row"
7292
- };
7293
- const _hoisted_2$8 = {
7294
- class: "col-7"
7295
- };
7296
- const _hoisted_3$6 = {
7297
- class: "col-5"
7298
- };
7299
- const _hoisted_4$4 = [
7300
- "for"
7301
- ];
7302
- const _hoisted_5$1 = [
7303
- "for"
7304
- ];
7305
- const _hoisted_6$1 = [
7306
- "for"
7307
- ];
7338
+ const _hoisted_1$9 = { class: "row" };
7339
+ const _hoisted_2$8 = { class: "col-7" };
7340
+ const _hoisted_3$6 = { class: "col-5" };
7341
+ const _hoisted_4$4 = ["for"];
7342
+ const _hoisted_5$1 = ["for"];
7343
+ const _hoisted_6$1 = ["for"];
7308
7344
  function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
7309
- const _component_AFormInputList = resolveComponent("AFormInputList");
7310
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7311
- const _component_IVuelidate = resolveComponent("IVuelidate");
7312
- const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7313
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
7314
- createElementVNode("div", _hoisted_2$8, [
7315
- createVNode(_component_IVuelidate, {
7316
- validation: _ctx.vuelidate.attributeName
7317
- }, {
7318
- default: withCtx((props)=>[
7319
- createVNode(_component_VCFormGroup, {
7320
- "validation-messages": props.data,
7321
- "validation-severity": props.severity
7322
- }, {
7323
- default: withCtx(()=>[
7324
- createVNode(_component_AFormInputList, {
7325
- names: _ctx.vuelidate.attributeName.$model,
7326
- onChanged: _ctx.handleAttributeNameChanged
7327
- }, null, 8, [
7328
- "names",
7329
- "onChanged"
7330
- ])
7331
- ]),
7332
- _: 2
7333
- }, 1032, [
7334
- "validation-messages",
7335
- "validation-severity"
7336
- ])
7337
- ]),
7338
- _: 1
7339
- }, 8, [
7340
- "validation"
7341
- ])
7345
+ const _component_AFormInputList = resolveComponent("AFormInputList");
7346
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
7347
+ const _component_IVuelidate = resolveComponent("IVuelidate");
7348
+ const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7349
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [
7350
+ createElementVNode("div", _hoisted_2$8, [
7351
+ createVNode(_component_IVuelidate, {
7352
+ validation: _ctx.vuelidate.attributeName
7353
+ }, {
7354
+ default: withCtx((props) => [
7355
+ createVNode(_component_VCFormGroup, {
7356
+ "validation-messages": props.data,
7357
+ "validation-severity": props.severity
7358
+ }, {
7359
+ default: withCtx(() => [
7360
+ createVNode(_component_AFormInputList, {
7361
+ names: _ctx.vuelidate.attributeName.$model,
7362
+ onChanged: _ctx.handleAttributeNameChanged
7363
+ }, null, 8, ["names", "onChanged"])
7364
+ ]),
7365
+ _: 1
7366
+ }, 8, ["validation-messages", "validation-severity"])
7342
7367
  ]),
7343
- createElementVNode("div", _hoisted_3$6, [
7344
- createVNode(_component_IVuelidate, {
7345
- validation: _ctx.vuelidate.attributeNameStrict
7346
- }, {
7347
- default: withCtx((props)=>[
7348
- createVNode(_component_VCFormGroup, {
7349
- "validation-messages": props.data,
7350
- "validation-severity": props.severity
7351
- }, {
7352
- default: withCtx(()=>[
7353
- createVNode(_component_VCFormInputCheckbox, {
7354
- modelValue: _ctx.vuelidate.attributeNameStrict.$model,
7355
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.attributeNameStrict.$model = $event),
7356
- "group-class": "form-switch",
7357
- label: true,
7358
- onChange: _ctx.handleUpdated
7359
- }, {
7360
- label: withCtx((iProps)=>[
7361
- createElementVNode("label", {
7362
- for: iProps.id
7363
- }, " Only match if the attribute is strict equal to the name? ", 8, _hoisted_4$4)
7364
- ]),
7365
- _: 1
7366
- }, 8, [
7367
- "modelValue",
7368
- "onChange"
7369
- ])
7370
- ]),
7371
- _: 2
7372
- }, 1032, [
7373
- "validation-messages",
7374
- "validation-severity"
7375
- ])
7376
- ]),
7368
+ _: 1
7369
+ }, 8, ["validation"])
7370
+ ]),
7371
+ createElementVNode("div", _hoisted_3$6, [
7372
+ createVNode(_component_IVuelidate, {
7373
+ validation: _ctx.vuelidate.attributeNameStrict
7374
+ }, {
7375
+ default: withCtx((props) => [
7376
+ createVNode(_component_VCFormGroup, {
7377
+ "validation-messages": props.data,
7378
+ "validation-severity": props.severity
7379
+ }, {
7380
+ default: withCtx(() => [
7381
+ createVNode(_component_VCFormInputCheckbox, {
7382
+ modelValue: _ctx.vuelidate.attributeNameStrict.$model,
7383
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.attributeNameStrict.$model = $event),
7384
+ "group-class": "form-switch",
7385
+ label: true,
7386
+ onChange: _ctx.handleUpdated
7387
+ }, {
7388
+ label: withCtx((iProps) => [
7389
+ createElementVNode("label", {
7390
+ for: iProps.id
7391
+ }, " Only match if the attribute is strict equal to the name? ", 8, _hoisted_4$4)
7392
+ ]),
7377
7393
  _: 1
7378
- }, 8, [
7379
- "validation"
7394
+ }, 8, ["modelValue", "onChange"])
7380
7395
  ]),
7381
- createVNode(_component_IVuelidate, {
7382
- validation: _ctx.vuelidate.attributeNullMatchAll
7383
- }, {
7384
- default: withCtx((props)=>[
7385
- createVNode(_component_VCFormGroup, {
7386
- "validation-messages": props.data,
7387
- "validation-severity": props.severity
7388
- }, {
7389
- default: withCtx(()=>[
7390
- createVNode(_component_VCFormInputCheckbox, {
7391
- modelValue: _ctx.vuelidate.attributeNullMatchAll.$model,
7392
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.attributeNullMatchAll.$model = $event),
7393
- "group-class": "form-switch",
7394
- label: true,
7395
- onChange: _ctx.handleUpdated
7396
- }, {
7397
- label: withCtx((iProps)=>[
7398
- createElementVNode("label", {
7399
- for: iProps.id
7400
- }, _cache[3] || (_cache[3] = [
7401
- createTextVNode(" Determines if resources with null realm-id/name value should match all identity realms."),
7402
- createElementVNode("br", null, null, -1),
7403
- createTextVNode(" If true, any identity realm can access resources with null realm-id/name values. ")
7404
- ]), 8, _hoisted_5$1)
7405
- ]),
7406
- _: 1
7407
- }, 8, [
7408
- "modelValue",
7409
- "onChange"
7410
- ])
7411
- ]),
7412
- _: 2
7413
- }, 1032, [
7414
- "validation-messages",
7415
- "validation-severity"
7416
- ])
7417
- ]),
7396
+ _: 1
7397
+ }, 8, ["validation-messages", "validation-severity"])
7398
+ ]),
7399
+ _: 1
7400
+ }, 8, ["validation"]),
7401
+ createVNode(_component_IVuelidate, {
7402
+ validation: _ctx.vuelidate.attributeNullMatchAll
7403
+ }, {
7404
+ default: withCtx((props) => [
7405
+ createVNode(_component_VCFormGroup, {
7406
+ "validation-messages": props.data,
7407
+ "validation-severity": props.severity
7408
+ }, {
7409
+ default: withCtx(() => [
7410
+ createVNode(_component_VCFormInputCheckbox, {
7411
+ modelValue: _ctx.vuelidate.attributeNullMatchAll.$model,
7412
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.attributeNullMatchAll.$model = $event),
7413
+ "group-class": "form-switch",
7414
+ label: true,
7415
+ onChange: _ctx.handleUpdated
7416
+ }, {
7417
+ label: withCtx((iProps) => [
7418
+ createElementVNode("label", {
7419
+ for: iProps.id
7420
+ }, [..._cache[3] || (_cache[3] = [
7421
+ createTextVNode(" Determines if resources with null realm-id/name value should match all identity realms.", -1),
7422
+ createElementVNode("br", null, null, -1),
7423
+ createTextVNode(" If true, any identity realm can access resources with null realm-id/name values. ", -1)
7424
+ ])], 8, _hoisted_5$1)
7425
+ ]),
7418
7426
  _: 1
7419
- }, 8, [
7420
- "validation"
7427
+ }, 8, ["modelValue", "onChange"])
7421
7428
  ]),
7422
- createVNode(_component_IVuelidate, {
7423
- validation: _ctx.vuelidate.identityMasterMatchAll
7424
- }, {
7425
- default: withCtx((props)=>[
7426
- createVNode(_component_VCFormGroup, {
7427
- "validation-messages": props.data,
7428
- "validation-severity": props.severity
7429
- }, {
7430
- default: withCtx(()=>[
7431
- createVNode(_component_VCFormInputCheckbox, {
7432
- modelValue: _ctx.vuelidate.identityMasterMatchAll.$model,
7433
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>_ctx.vuelidate.identityMasterMatchAll.$model = $event),
7434
- "group-class": "form-switch",
7435
- label: true,
7436
- onChange: _ctx.handleUpdated
7437
- }, {
7438
- label: withCtx((iProps)=>[
7439
- createElementVNode("label", {
7440
- for: iProps.id
7441
- }, _cache[4] || (_cache[4] = [
7442
- createTextVNode(" Specifies whether the master realm of an identity should match all realm-id/name attributes, including null."),
7443
- createElementVNode("br", null, null, -1),
7444
- createTextVNode(" If true, the master realm can access any resource regardless of its realm value. ")
7445
- ]), 8, _hoisted_6$1)
7446
- ]),
7447
- _: 1
7448
- }, 8, [
7449
- "modelValue",
7450
- "onChange"
7451
- ])
7452
- ]),
7453
- _: 2
7454
- }, 1032, [
7455
- "validation-messages",
7456
- "validation-severity"
7457
- ])
7458
- ]),
7429
+ _: 1
7430
+ }, 8, ["validation-messages", "validation-severity"])
7431
+ ]),
7432
+ _: 1
7433
+ }, 8, ["validation"]),
7434
+ createVNode(_component_IVuelidate, {
7435
+ validation: _ctx.vuelidate.identityMasterMatchAll
7436
+ }, {
7437
+ default: withCtx((props) => [
7438
+ createVNode(_component_VCFormGroup, {
7439
+ "validation-messages": props.data,
7440
+ "validation-severity": props.severity
7441
+ }, {
7442
+ default: withCtx(() => [
7443
+ createVNode(_component_VCFormInputCheckbox, {
7444
+ modelValue: _ctx.vuelidate.identityMasterMatchAll.$model,
7445
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.identityMasterMatchAll.$model = $event),
7446
+ "group-class": "form-switch",
7447
+ label: true,
7448
+ onChange: _ctx.handleUpdated
7449
+ }, {
7450
+ label: withCtx((iProps) => [
7451
+ createElementVNode("label", {
7452
+ for: iProps.id
7453
+ }, [..._cache[4] || (_cache[4] = [
7454
+ createTextVNode(" Specifies whether the master realm of an identity should match all realm-id/name attributes, including null.", -1),
7455
+ createElementVNode("br", null, null, -1),
7456
+ createTextVNode(" If true, the master realm can access any resource regardless of its realm value. ", -1)
7457
+ ])], 8, _hoisted_6$1)
7458
+ ]),
7459
7459
  _: 1
7460
- }, 8, [
7461
- "validation"
7462
- ])
7463
- ])
7464
- ]);
7460
+ }, 8, ["modelValue", "onChange"])
7461
+ ]),
7462
+ _: 1
7463
+ }, 8, ["validation-messages", "validation-severity"])
7464
+ ]),
7465
+ _: 1
7466
+ }, 8, ["validation"])
7467
+ ])
7468
+ ]);
7465
7469
  }
7466
- var ARealmMatchPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$a, [
7467
- [
7468
- "render",
7469
- _sfc_render$9
7470
- ]
7471
- ]);
7470
+ var ARealmMatchPolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["render", _sfc_render$9]]);
7472
7471
 
7473
7472
  var _sfc_main$9 = defineComponent({
7474
7473
  components: {
@@ -7558,239 +7557,183 @@ var _sfc_main$9 = defineComponent({
7558
7557
  }
7559
7558
  });
7560
7559
 
7561
- const _hoisted_1$8 = {
7562
- class: "row"
7563
- };
7560
+ const _hoisted_1$8 = { class: "row" };
7564
7561
  const _hoisted_2$7 = {
7565
- key: 0,
7566
- class: "col"
7562
+ key: 0,
7563
+ class: "col"
7567
7564
  };
7568
7565
  const _hoisted_3$5 = {
7569
- key: 1,
7570
- class: "col"
7566
+ key: 1,
7567
+ class: "col"
7571
7568
  };
7572
7569
  const _hoisted_4$3 = {
7573
- key: 2,
7574
- class: "col"
7570
+ key: 2,
7571
+ class: "col"
7575
7572
  };
7576
7573
  function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
7577
- const _component_VCFormInput = resolveComponent("VCFormInput");
7578
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
7579
- const _component_IVuelidate = resolveComponent("IVuelidate");
7580
- const _component_VCFormSelect = resolveComponent("VCFormSelect");
7581
- return openBlock(), createElementBlock("div", null, [
7574
+ const _component_VCFormInput = resolveComponent("VCFormInput");
7575
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
7576
+ const _component_IVuelidate = resolveComponent("IVuelidate");
7577
+ const _component_VCFormSelect = resolveComponent("VCFormSelect");
7578
+ return openBlock(), createElementBlock("div", null, [
7579
+ createVNode(_component_IVuelidate, {
7580
+ validation: _ctx.vuelidate.start
7581
+ }, {
7582
+ default: withCtx((props) => [
7583
+ createVNode(_component_VCFormGroup, {
7584
+ "validation-messages": props.data,
7585
+ "validation-severity": props.severity
7586
+ }, {
7587
+ label: withCtx(() => [..._cache[6] || (_cache[6] = [
7588
+ createTextVNode(" Start ", -1)
7589
+ ])]),
7590
+ default: withCtx(() => [
7591
+ createVNode(_component_VCFormInput, {
7592
+ modelValue: _ctx.vuelidate.start.$model,
7593
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.start.$model = $event),
7594
+ placeholder: "00:00:00",
7595
+ onChange: _ctx.handleUpdated
7596
+ }, null, 8, ["modelValue", "onChange"])
7597
+ ]),
7598
+ _: 1
7599
+ }, 8, ["validation-messages", "validation-severity"])
7600
+ ]),
7601
+ _: 1
7602
+ }, 8, ["validation"]),
7603
+ createVNode(_component_IVuelidate, {
7604
+ validation: _ctx.vuelidate.end
7605
+ }, {
7606
+ default: withCtx((props) => [
7607
+ createVNode(_component_VCFormGroup, {
7608
+ "validation-messages": props.data,
7609
+ "validation-severity": props.severity
7610
+ }, {
7611
+ label: withCtx(() => [..._cache[7] || (_cache[7] = [
7612
+ createTextVNode(" End ", -1)
7613
+ ])]),
7614
+ default: withCtx(() => [
7615
+ createVNode(_component_VCFormInput, {
7616
+ modelValue: _ctx.vuelidate.end.$model,
7617
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.end.$model = $event),
7618
+ placeholder: "00:00:00",
7619
+ onChange: _ctx.handleUpdated
7620
+ }, null, 8, ["modelValue", "onChange"])
7621
+ ]),
7622
+ _: 1
7623
+ }, 8, ["validation-messages", "validation-severity"])
7624
+ ]),
7625
+ _: 1
7626
+ }, 8, ["validation"]),
7627
+ createVNode(_component_IVuelidate, {
7628
+ validation: _ctx.vuelidate.interval
7629
+ }, {
7630
+ default: withCtx((props) => [
7631
+ createVNode(_component_VCFormGroup, {
7632
+ "validation-messages": props.data,
7633
+ "validation-severity": props.severity
7634
+ }, {
7635
+ label: withCtx(() => [..._cache[8] || (_cache[8] = [
7636
+ createTextVNode(" Interval ", -1)
7637
+ ])]),
7638
+ default: withCtx(() => [
7639
+ createVNode(_component_VCFormSelect, {
7640
+ modelValue: _ctx.vuelidate.interval.$model,
7641
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.interval.$model = $event),
7642
+ options: _ctx.intervalOptions,
7643
+ onChange: _ctx.handleIntervalUpdated
7644
+ }, null, 8, ["modelValue", "options", "onChange"])
7645
+ ]),
7646
+ _: 1
7647
+ }, 8, ["validation-messages", "validation-severity"])
7648
+ ]),
7649
+ _: 1
7650
+ }, 8, ["validation"]),
7651
+ createElementVNode("div", _hoisted_1$8, [
7652
+ _ctx.displayIntervalForDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
7582
7653
  createVNode(_component_IVuelidate, {
7583
- validation: _ctx.vuelidate.start
7654
+ validation: _ctx.vuelidate.dayOfWeek
7584
7655
  }, {
7585
- default: withCtx((props)=>[
7586
- createVNode(_component_VCFormGroup, {
7587
- "validation-messages": props.data,
7588
- "validation-severity": props.severity
7589
- }, {
7590
- label: withCtx(()=>_cache[6] || (_cache[6] = [
7591
- createTextVNode(" Start ")
7592
- ])),
7593
- default: withCtx(()=>[
7594
- createVNode(_component_VCFormInput, {
7595
- modelValue: _ctx.vuelidate.start.$model,
7596
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.start.$model = $event),
7597
- placeholder: "00:00:00",
7598
- onChange: _ctx.handleUpdated
7599
- }, null, 8, [
7600
- "modelValue",
7601
- "onChange"
7602
- ])
7603
- ]),
7604
- _: 2
7605
- }, 1032, [
7606
- "validation-messages",
7607
- "validation-severity"
7608
- ])
7609
- ]),
7610
- _: 1
7611
- }, 8, [
7612
- "validation"
7613
- ]),
7656
+ default: withCtx((props) => [
7657
+ createVNode(_component_VCFormGroup, {
7658
+ "validation-messages": props.data,
7659
+ "validation-severity": props.severity
7660
+ }, {
7661
+ label: withCtx(() => [..._cache[9] || (_cache[9] = [
7662
+ createTextVNode(" Day of Week ", -1)
7663
+ ])]),
7664
+ default: withCtx(() => [
7665
+ createVNode(_component_VCFormInput, {
7666
+ modelValue: _ctx.vuelidate.dayOfWeek.$model,
7667
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.dayOfWeek.$model = $event),
7668
+ placeholder: "0-7",
7669
+ type: "number",
7670
+ onChange: _ctx.handleUpdated
7671
+ }, null, 8, ["modelValue", "onChange"])
7672
+ ]),
7673
+ _: 1
7674
+ }, 8, ["validation-messages", "validation-severity"])
7675
+ ]),
7676
+ _: 1
7677
+ }, 8, ["validation"])
7678
+ ])) : createCommentVNode("", true),
7679
+ _ctx.displayIntervalForDayOfMonth ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
7614
7680
  createVNode(_component_IVuelidate, {
7615
- validation: _ctx.vuelidate.end
7681
+ validation: _ctx.vuelidate.dayOfMonth
7616
7682
  }, {
7617
- default: withCtx((props)=>[
7618
- createVNode(_component_VCFormGroup, {
7619
- "validation-messages": props.data,
7620
- "validation-severity": props.severity
7621
- }, {
7622
- label: withCtx(()=>_cache[7] || (_cache[7] = [
7623
- createTextVNode(" End ")
7624
- ])),
7625
- default: withCtx(()=>[
7626
- createVNode(_component_VCFormInput, {
7627
- modelValue: _ctx.vuelidate.end.$model,
7628
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.end.$model = $event),
7629
- placeholder: "00:00:00",
7630
- onChange: _ctx.handleUpdated
7631
- }, null, 8, [
7632
- "modelValue",
7633
- "onChange"
7634
- ])
7635
- ]),
7636
- _: 2
7637
- }, 1032, [
7638
- "validation-messages",
7639
- "validation-severity"
7640
- ])
7641
- ]),
7642
- _: 1
7643
- }, 8, [
7644
- "validation"
7645
- ]),
7683
+ default: withCtx((props) => [
7684
+ createVNode(_component_VCFormGroup, {
7685
+ "validation-messages": props.data,
7686
+ "validation-severity": props.severity
7687
+ }, {
7688
+ label: withCtx(() => [..._cache[10] || (_cache[10] = [
7689
+ createTextVNode(" Day of Month ", -1)
7690
+ ])]),
7691
+ default: withCtx(() => [
7692
+ createVNode(_component_VCFormInput, {
7693
+ modelValue: _ctx.vuelidate.dayOfMonth.$model,
7694
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.vuelidate.dayOfMonth.$model = $event),
7695
+ placeholder: "1-31",
7696
+ type: "number",
7697
+ onChange: _ctx.handleUpdated
7698
+ }, null, 8, ["modelValue", "onChange"])
7699
+ ]),
7700
+ _: 1
7701
+ }, 8, ["validation-messages", "validation-severity"])
7702
+ ]),
7703
+ _: 1
7704
+ }, 8, ["validation"])
7705
+ ])) : createCommentVNode("", true),
7706
+ _ctx.displayIntervalForDayOfYear ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
7646
7707
  createVNode(_component_IVuelidate, {
7647
- validation: _ctx.vuelidate.interval
7708
+ validation: _ctx.vuelidate.dayOfYear
7648
7709
  }, {
7649
- default: withCtx((props)=>[
7650
- createVNode(_component_VCFormGroup, {
7651
- "validation-messages": props.data,
7652
- "validation-severity": props.severity
7653
- }, {
7654
- label: withCtx(()=>_cache[8] || (_cache[8] = [
7655
- createTextVNode(" Interval ")
7656
- ])),
7657
- default: withCtx(()=>[
7658
- createVNode(_component_VCFormSelect, {
7659
- modelValue: _ctx.vuelidate.interval.$model,
7660
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>_ctx.vuelidate.interval.$model = $event),
7661
- options: _ctx.intervalOptions,
7662
- onChange: _ctx.handleIntervalUpdated
7663
- }, null, 8, [
7664
- "modelValue",
7665
- "options",
7666
- "onChange"
7667
- ])
7668
- ]),
7669
- _: 2
7670
- }, 1032, [
7671
- "validation-messages",
7672
- "validation-severity"
7673
- ])
7674
- ]),
7675
- _: 1
7676
- }, 8, [
7677
- "validation"
7678
- ]),
7679
- createElementVNode("div", _hoisted_1$8, [
7680
- _ctx.displayIntervalForDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
7681
- createVNode(_component_IVuelidate, {
7682
- validation: _ctx.vuelidate.dayOfWeek
7683
- }, {
7684
- default: withCtx((props)=>[
7685
- createVNode(_component_VCFormGroup, {
7686
- "validation-messages": props.data,
7687
- "validation-severity": props.severity
7688
- }, {
7689
- label: withCtx(()=>_cache[9] || (_cache[9] = [
7690
- createTextVNode(" Day of Week ")
7691
- ])),
7692
- default: withCtx(()=>[
7693
- createVNode(_component_VCFormInput, {
7694
- modelValue: _ctx.vuelidate.dayOfWeek.$model,
7695
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event)=>_ctx.vuelidate.dayOfWeek.$model = $event),
7696
- placeholder: "0-7",
7697
- type: "number",
7698
- onChange: _ctx.handleUpdated
7699
- }, null, 8, [
7700
- "modelValue",
7701
- "onChange"
7702
- ])
7703
- ]),
7704
- _: 2
7705
- }, 1032, [
7706
- "validation-messages",
7707
- "validation-severity"
7708
- ])
7709
- ]),
7710
- _: 1
7711
- }, 8, [
7712
- "validation"
7713
- ])
7714
- ])) : createCommentVNode("", true),
7715
- _ctx.displayIntervalForDayOfMonth ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
7716
- createVNode(_component_IVuelidate, {
7717
- validation: _ctx.vuelidate.dayOfMonth
7718
- }, {
7719
- default: withCtx((props)=>[
7720
- createVNode(_component_VCFormGroup, {
7721
- "validation-messages": props.data,
7722
- "validation-severity": props.severity
7723
- }, {
7724
- label: withCtx(()=>_cache[10] || (_cache[10] = [
7725
- createTextVNode(" Day of Month ")
7726
- ])),
7727
- default: withCtx(()=>[
7728
- createVNode(_component_VCFormInput, {
7729
- modelValue: _ctx.vuelidate.dayOfMonth.$model,
7730
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event)=>_ctx.vuelidate.dayOfMonth.$model = $event),
7731
- placeholder: "1-31",
7732
- type: "number",
7733
- onChange: _ctx.handleUpdated
7734
- }, null, 8, [
7735
- "modelValue",
7736
- "onChange"
7737
- ])
7738
- ]),
7739
- _: 2
7740
- }, 1032, [
7741
- "validation-messages",
7742
- "validation-severity"
7743
- ])
7744
- ]),
7745
- _: 1
7746
- }, 8, [
7747
- "validation"
7748
- ])
7749
- ])) : createCommentVNode("", true),
7750
- _ctx.displayIntervalForDayOfYear ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
7751
- createVNode(_component_IVuelidate, {
7752
- validation: _ctx.vuelidate.dayOfYear
7753
- }, {
7754
- default: withCtx((props)=>[
7755
- createVNode(_component_VCFormGroup, {
7756
- "validation-messages": props.data,
7757
- "validation-severity": props.severity
7758
- }, {
7759
- label: withCtx(()=>_cache[11] || (_cache[11] = [
7760
- createTextVNode(" Day of Year ")
7761
- ])),
7762
- default: withCtx(()=>[
7763
- createVNode(_component_VCFormInput, {
7764
- modelValue: _ctx.vuelidate.dayOfYear.$model,
7765
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event)=>_ctx.vuelidate.dayOfYear.$model = $event),
7766
- type: "number",
7767
- placeholder: "1-365",
7768
- onChange: _ctx.handleUpdated
7769
- }, null, 8, [
7770
- "modelValue",
7771
- "onChange"
7772
- ])
7773
- ]),
7774
- _: 2
7775
- }, 1032, [
7776
- "validation-messages",
7777
- "validation-severity"
7778
- ])
7779
- ]),
7780
- _: 1
7781
- }, 8, [
7782
- "validation"
7783
- ])
7784
- ])) : createCommentVNode("", true)
7785
- ])
7786
- ]);
7710
+ default: withCtx((props) => [
7711
+ createVNode(_component_VCFormGroup, {
7712
+ "validation-messages": props.data,
7713
+ "validation-severity": props.severity
7714
+ }, {
7715
+ label: withCtx(() => [..._cache[11] || (_cache[11] = [
7716
+ createTextVNode(" Day of Year ", -1)
7717
+ ])]),
7718
+ default: withCtx(() => [
7719
+ createVNode(_component_VCFormInput, {
7720
+ modelValue: _ctx.vuelidate.dayOfYear.$model,
7721
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.vuelidate.dayOfYear.$model = $event),
7722
+ type: "number",
7723
+ placeholder: "1-365",
7724
+ onChange: _ctx.handleUpdated
7725
+ }, null, 8, ["modelValue", "onChange"])
7726
+ ]),
7727
+ _: 1
7728
+ }, 8, ["validation-messages", "validation-severity"])
7729
+ ]),
7730
+ _: 1
7731
+ }, 8, ["validation"])
7732
+ ])) : createCommentVNode("", true)
7733
+ ])
7734
+ ]);
7787
7735
  }
7788
- var ATimePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$9, [
7789
- [
7790
- "render",
7791
- _sfc_render$8
7792
- ]
7793
- ]);
7736
+ var ATimePolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render$8]]);
7794
7737
 
7795
7738
  const APolicy = defineComponent({
7796
7739
  props: defineEntityVProps(),
@@ -7857,50 +7800,28 @@ var _sfc_main$8 = defineComponent({
7857
7800
  }
7858
7801
  });
7859
7802
 
7860
- const _hoisted_1$7 = {
7861
- class: "d-flex flex-column gap-2"
7862
- };
7863
- const _hoisted_2$6 = {
7864
- class: "d-flex flex-row gap-2 flex-wrap"
7865
- };
7866
- const _hoisted_3$4 = [
7867
- "onClick"
7868
- ];
7803
+ const _hoisted_1$7 = { class: "d-flex flex-column gap-2" };
7804
+ const _hoisted_2$6 = { class: "d-flex flex-row gap-2 flex-wrap" };
7805
+ const _hoisted_3$4 = ["onClick"];
7869
7806
  function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
7870
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
7871
- createElementVNode("div", null, [
7872
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "Type", -1)),
7873
- createElementVNode("div", _hoisted_2$6, [
7874
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item, key)=>{
7875
- return openBlock(), createElementBlock("div", {
7876
- key,
7877
- class: normalizeClass([
7878
- {
7879
- "active": item.id === _ctx.option
7880
- },
7881
- "d-flex flex-column gap-1 text-center a-picker-item"
7882
- ]),
7883
- onClick: withModifiers(($event)=>_ctx.pick(`${item.id}`), [
7884
- "prevent"
7885
- ])
7886
- }, [
7887
- createElementVNode("div", null, toDisplayString(item.value), 1)
7888
- ], 10, _hoisted_3$4);
7889
- }), 128))
7890
- ])
7891
- ])
7892
- ]);
7807
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
7808
+ createElementVNode("div", null, [
7809
+ _cache[0] || (_cache[0] = createElementVNode("h6", null, "Type", -1)),
7810
+ createElementVNode("div", _hoisted_2$6, [
7811
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item, key) => {
7812
+ return openBlock(), createElementBlock("div", {
7813
+ key,
7814
+ class: normalizeClass([{ "active": item.id === _ctx.option }, "d-flex flex-column gap-1 text-center a-picker-item"]),
7815
+ onClick: withModifiers(($event) => _ctx.pick(`${item.id}`), ["prevent"])
7816
+ }, [
7817
+ createElementVNode("div", null, toDisplayString(item.value), 1)
7818
+ ], 10, _hoisted_3$4);
7819
+ }), 128))
7820
+ ])
7821
+ ])
7822
+ ]);
7893
7823
  }
7894
- var APolicyTypePicker = /* @__PURE__ */ _export_sfc(_sfc_main$8, [
7895
- [
7896
- "render",
7897
- _sfc_render$7
7898
- ],
7899
- [
7900
- "__scopeId",
7901
- "data-v-3fa3964f"
7902
- ]
7903
- ]);
7824
+ var APolicyTypePicker = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render$7], ["__scopeId", "data-v-3fa3964f"]]);
7904
7825
 
7905
7826
  var _sfc_main$7 = defineComponent({
7906
7827
  components: {
@@ -7986,201 +7907,151 @@ var _sfc_main$7 = defineComponent({
7986
7907
  }
7987
7908
  });
7988
7909
 
7989
- const _hoisted_1$6 = {
7990
- class: "row"
7991
- };
7992
- const _hoisted_2$5 = {
7993
- class: "col"
7994
- };
7995
- const _hoisted_3$3 = [
7996
- "for"
7997
- ];
7910
+ const _hoisted_1$6 = { class: "row" };
7911
+ const _hoisted_2$5 = { class: "col" };
7912
+ const _hoisted_3$3 = ["for"];
7998
7913
  const _hoisted_4$2 = {
7999
- key: 0,
8000
- class: "col"
7914
+ key: 0,
7915
+ class: "col"
8001
7916
  };
8002
7917
  function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
8003
- const _component_VCFormInput = resolveComponent("VCFormInput");
8004
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
8005
- const _component_IVuelidate = resolveComponent("IVuelidate");
8006
- const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
8007
- const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
8008
- const _component_ARealmPicker = resolveComponent("ARealmPicker");
8009
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
8010
- createElementVNode("div", _hoisted_2$5, [
8011
- createVNode(_component_IVuelidate, {
8012
- validation: _ctx.vuelidate.name
8013
- }, {
8014
- default: withCtx((props)=>[
8015
- createVNode(_component_VCFormGroup, {
8016
- "validation-messages": props.data,
8017
- "validation-severity": props.severity
8018
- }, {
8019
- label: withCtx(()=>_cache[5] || (_cache[5] = [
8020
- createTextVNode(" Name ")
8021
- ])),
8022
- default: withCtx(()=>[
8023
- createVNode(_component_VCFormInput, {
8024
- modelValue: _ctx.vuelidate.name.$model,
8025
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.name.$model = $event),
8026
- onChange: _ctx.handleUpdated
8027
- }, null, 8, [
8028
- "modelValue",
8029
- "onChange"
8030
- ])
8031
- ]),
8032
- _: 2
8033
- }, 1032, [
8034
- "validation-messages",
8035
- "validation-severity"
8036
- ])
8037
- ]),
8038
- _: 1
8039
- }, 8, [
8040
- "validation"
7918
+ const _component_VCFormInput = resolveComponent("VCFormInput");
7919
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
7920
+ const _component_IVuelidate = resolveComponent("IVuelidate");
7921
+ const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
7922
+ const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
7923
+ const _component_ARealmPicker = resolveComponent("ARealmPicker");
7924
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
7925
+ createElementVNode("div", _hoisted_2$5, [
7926
+ createVNode(_component_IVuelidate, {
7927
+ validation: _ctx.vuelidate.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[5] || (_cache[5] = [
7935
+ createTextVNode(" Name ", -1)
7936
+ ])]),
7937
+ default: withCtx(() => [
7938
+ createVNode(_component_VCFormInput, {
7939
+ modelValue: _ctx.vuelidate.name.$model,
7940
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event),
7941
+ onChange: _ctx.handleUpdated
7942
+ }, null, 8, ["modelValue", "onChange"])
8041
7943
  ]),
8042
- createVNode(_component_IVuelidate, {
8043
- validation: _ctx.vuelidate.display_name
8044
- }, {
8045
- default: withCtx((props)=>[
8046
- createVNode(_component_VCFormGroup, {
8047
- "validation-messages": props.data,
8048
- "validation-severity": props.severity
8049
- }, {
8050
- label: withCtx(()=>_cache[6] || (_cache[6] = [
8051
- createTextVNode(" Display Name ")
8052
- ])),
8053
- default: withCtx(()=>[
8054
- createVNode(_component_VCFormInput, {
8055
- modelValue: _ctx.vuelidate.display_name.$model,
8056
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.display_name.$model = $event),
8057
- onChange: _ctx.handleUpdated
8058
- }, null, 8, [
8059
- "modelValue",
8060
- "onChange"
8061
- ])
8062
- ]),
8063
- _: 2
8064
- }, 1032, [
8065
- "validation-messages",
8066
- "validation-severity"
8067
- ])
8068
- ]),
8069
- _: 1
8070
- }, 8, [
8071
- "validation"
7944
+ _: 1
7945
+ }, 8, ["validation-messages", "validation-severity"])
7946
+ ]),
7947
+ _: 1
7948
+ }, 8, ["validation"]),
7949
+ createVNode(_component_IVuelidate, {
7950
+ validation: _ctx.vuelidate.display_name
7951
+ }, {
7952
+ default: withCtx((props) => [
7953
+ createVNode(_component_VCFormGroup, {
7954
+ "validation-messages": props.data,
7955
+ "validation-severity": props.severity
7956
+ }, {
7957
+ label: withCtx(() => [..._cache[6] || (_cache[6] = [
7958
+ createTextVNode(" Display Name ", -1)
7959
+ ])]),
7960
+ default: withCtx(() => [
7961
+ createVNode(_component_VCFormInput, {
7962
+ modelValue: _ctx.vuelidate.display_name.$model,
7963
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.display_name.$model = $event),
7964
+ onChange: _ctx.handleUpdated
7965
+ }, null, 8, ["modelValue", "onChange"])
8072
7966
  ]),
8073
- createVNode(_component_IVuelidate, {
8074
- validation: _ctx.vuelidate.description
8075
- }, {
8076
- default: withCtx((props)=>[
8077
- createVNode(_component_VCFormGroup, {
8078
- "validation-messages": props.data,
8079
- "validation-severity": props.severity
8080
- }, {
8081
- label: withCtx(()=>_cache[7] || (_cache[7] = [
8082
- createTextVNode(" Description ")
8083
- ])),
8084
- default: withCtx(()=>[
8085
- createVNode(_component_VCFormTextarea, {
8086
- modelValue: _ctx.vuelidate.description.$model,
8087
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>_ctx.vuelidate.description.$model = $event),
8088
- rows: "4",
8089
- onChange: _ctx.handleUpdated
8090
- }, null, 8, [
8091
- "modelValue",
8092
- "onChange"
8093
- ])
8094
- ]),
8095
- _: 2
8096
- }, 1032, [
8097
- "validation-messages",
8098
- "validation-severity"
8099
- ])
8100
- ]),
8101
- _: 1
8102
- }, 8, [
8103
- "validation"
7967
+ _: 1
7968
+ }, 8, ["validation-messages", "validation-severity"])
7969
+ ]),
7970
+ _: 1
7971
+ }, 8, ["validation"]),
7972
+ createVNode(_component_IVuelidate, {
7973
+ validation: _ctx.vuelidate.description
7974
+ }, {
7975
+ default: withCtx((props) => [
7976
+ createVNode(_component_VCFormGroup, {
7977
+ "validation-messages": props.data,
7978
+ "validation-severity": props.severity
7979
+ }, {
7980
+ label: withCtx(() => [..._cache[7] || (_cache[7] = [
7981
+ createTextVNode(" Description ", -1)
7982
+ ])]),
7983
+ default: withCtx(() => [
7984
+ createVNode(_component_VCFormTextarea, {
7985
+ modelValue: _ctx.vuelidate.description.$model,
7986
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.vuelidate.description.$model = $event),
7987
+ rows: "4",
7988
+ onChange: _ctx.handleUpdated
7989
+ }, null, 8, ["modelValue", "onChange"])
8104
7990
  ]),
8105
- createVNode(_component_IVuelidate, {
8106
- validation: _ctx.vuelidate.invert
8107
- }, {
8108
- default: withCtx((props)=>[
8109
- createVNode(_component_VCFormGroup, {
8110
- "validation-messages": props.data,
8111
- "validation-severity": props.severity
8112
- }, {
8113
- default: withCtx(()=>[
8114
- createVNode(_component_VCFormInputCheckbox, {
8115
- modelValue: _ctx.vuelidate.invert.$model,
8116
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event)=>_ctx.vuelidate.invert.$model = $event),
8117
- "group-class": "form-switch",
8118
- label: true,
8119
- onChange: _ctx.handleUpdated
8120
- }, {
8121
- label: withCtx((iProps)=>[
8122
- createElementVNode("label", {
8123
- for: iProps.id
8124
- }, " Invert? ", 8, _hoisted_3$3)
8125
- ]),
8126
- _: 1
8127
- }, 8, [
8128
- "modelValue",
8129
- "onChange"
8130
- ])
8131
- ]),
8132
- _: 2
8133
- }, 1032, [
8134
- "validation-messages",
8135
- "validation-severity"
8136
- ])
8137
- ]),
8138
- _: 1
8139
- }, 8, [
8140
- "validation"
8141
- ])
7991
+ _: 1
7992
+ }, 8, ["validation-messages", "validation-severity"])
8142
7993
  ]),
8143
- !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
8144
- createVNode(_component_IVuelidate, {
8145
- validation: _ctx.vuelidate.invert
8146
- }, {
8147
- default: withCtx((props)=>[
8148
- createVNode(_component_VCFormGroup, {
8149
- "validation-messages": props.data,
8150
- "validation-severity": props.severity
8151
- }, {
8152
- label: withCtx(()=>_cache[8] || (_cache[8] = [
8153
- createTextVNode(" Realm ")
8154
- ])),
8155
- default: withCtx(()=>[
8156
- createVNode(_component_ARealmPicker, {
8157
- value: _ctx.vuelidate.realm_id.$model,
8158
- onChange: _cache[4] || (_cache[4] = (value)=>{
8159
- _ctx.vuelidate.realm_id.$model = value.length > 0 ? value[0] : "";
8160
- })
8161
- }, null, 8, [
8162
- "value"
8163
- ])
8164
- ]),
8165
- _: 2
8166
- }, 1032, [
8167
- "validation-messages",
8168
- "validation-severity"
8169
- ])
8170
- ]),
7994
+ _: 1
7995
+ }, 8, ["validation"]),
7996
+ createVNode(_component_IVuelidate, {
7997
+ validation: _ctx.vuelidate.invert
7998
+ }, {
7999
+ default: withCtx((props) => [
8000
+ createVNode(_component_VCFormGroup, {
8001
+ "validation-messages": props.data,
8002
+ "validation-severity": props.severity
8003
+ }, {
8004
+ default: withCtx(() => [
8005
+ createVNode(_component_VCFormInputCheckbox, {
8006
+ modelValue: _ctx.vuelidate.invert.$model,
8007
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.invert.$model = $event),
8008
+ "group-class": "form-switch",
8009
+ label: true,
8010
+ onChange: _ctx.handleUpdated
8011
+ }, {
8012
+ label: withCtx((iProps) => [
8013
+ createElementVNode("label", {
8014
+ for: iProps.id
8015
+ }, " Invert? ", 8, _hoisted_3$3)
8016
+ ]),
8171
8017
  _: 1
8172
- }, 8, [
8173
- "validation"
8174
- ])
8175
- ])) : createCommentVNode("", true)
8176
- ]);
8018
+ }, 8, ["modelValue", "onChange"])
8019
+ ]),
8020
+ _: 1
8021
+ }, 8, ["validation-messages", "validation-severity"])
8022
+ ]),
8023
+ _: 1
8024
+ }, 8, ["validation"])
8025
+ ]),
8026
+ !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
8027
+ createVNode(_component_IVuelidate, {
8028
+ validation: _ctx.vuelidate.invert
8029
+ }, {
8030
+ default: withCtx((props) => [
8031
+ createVNode(_component_VCFormGroup, {
8032
+ "validation-messages": props.data,
8033
+ "validation-severity": props.severity
8034
+ }, {
8035
+ label: withCtx(() => [..._cache[8] || (_cache[8] = [
8036
+ createTextVNode(" Realm ", -1)
8037
+ ])]),
8038
+ default: withCtx(() => [
8039
+ createVNode(_component_ARealmPicker, {
8040
+ value: _ctx.vuelidate.realm_id.$model,
8041
+ onChange: _cache[4] || (_cache[4] = (value) => {
8042
+ _ctx.vuelidate.realm_id.$model = value.length > 0 ? value[0] : "";
8043
+ })
8044
+ }, null, 8, ["value"])
8045
+ ]),
8046
+ _: 1
8047
+ }, 8, ["validation-messages", "validation-severity"])
8048
+ ]),
8049
+ _: 1
8050
+ }, 8, ["validation"])
8051
+ ])) : createCommentVNode("", true)
8052
+ ]);
8177
8053
  }
8178
- var APolicyBasicForm = /* @__PURE__ */ _export_sfc(_sfc_main$7, [
8179
- [
8180
- "render",
8181
- _sfc_render$6
8182
- ]
8183
- ]);
8054
+ var APolicyBasicForm = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render$6]]);
8184
8055
 
8185
8056
  var _sfc_main$6 = defineComponent({
8186
8057
  components: {
@@ -8258,51 +8129,33 @@ var _sfc_main$6 = defineComponent({
8258
8129
  }
8259
8130
  });
8260
8131
 
8261
- const _hoisted_1$5 = {
8262
- class: "d-flex flex-column"
8263
- };
8132
+ const _hoisted_1$5 = { class: "d-flex flex-column" };
8264
8133
  function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
8265
- const _component_APolicyBasicForm = resolveComponent("APolicyBasicForm");
8266
- const _component_AFormSubmit = resolveComponent("AFormSubmit");
8267
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
8268
- _cache[0] || (_cache[0] = createElementVNode("h6", null, "General", -1)),
8269
- createVNode(_component_APolicyBasicForm, {
8270
- entity: _ctx.data
8271
- }, null, 8, [
8272
- "entity"
8273
- ]),
8274
- _ctx.typeComputed ? renderSlot(_ctx.$slots, "default", {
8275
- key: 0,
8276
- entity: _ctx.entity
8277
- }, ()=>[
8278
- _ctx.typeComputed in _ctx.typeComponents ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.typeComponents[_ctx.typeComputed]), {
8279
- key: 0,
8280
- entity: _ctx.entity
8281
- }, null, 8, [
8282
- "entity"
8283
- ])) : createCommentVNode("", true)
8284
- ]) : createCommentVNode("", true),
8285
- createElementVNode("div", null, [
8286
- createVNode(_component_AFormSubmit, {
8287
- "is-invalid": _ctx.vuelidate.$invalid || !_ctx.typeComputed,
8288
- "is-busy": _ctx.busy,
8289
- "is-editing": _ctx.isEditing,
8290
- onSubmit: _ctx.submit
8291
- }, null, 8, [
8292
- "is-invalid",
8293
- "is-busy",
8294
- "is-editing",
8295
- "onSubmit"
8296
- ])
8297
- ])
8298
- ]);
8134
+ const _component_APolicyBasicForm = resolveComponent("APolicyBasicForm");
8135
+ const _component_AFormSubmit = resolveComponent("AFormSubmit");
8136
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
8137
+ _cache[0] || (_cache[0] = createElementVNode("h6", null, "General", -1)),
8138
+ createVNode(_component_APolicyBasicForm, { entity: _ctx.data }, null, 8, ["entity"]),
8139
+ _ctx.typeComputed ? renderSlot(_ctx.$slots, "default", {
8140
+ key: 0,
8141
+ entity: _ctx.entity
8142
+ }, () => [
8143
+ _ctx.typeComputed in _ctx.typeComponents ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.typeComponents[_ctx.typeComputed]), {
8144
+ key: 0,
8145
+ entity: _ctx.entity
8146
+ }, null, 8, ["entity"])) : createCommentVNode("", true)
8147
+ ]) : createCommentVNode("", true),
8148
+ createElementVNode("div", null, [
8149
+ createVNode(_component_AFormSubmit, {
8150
+ "is-invalid": _ctx.vuelidate.$invalid || !_ctx.typeComputed,
8151
+ "is-busy": _ctx.busy,
8152
+ "is-editing": _ctx.isEditing,
8153
+ onSubmit: _ctx.submit
8154
+ }, null, 8, ["is-invalid", "is-busy", "is-editing", "onSubmit"])
8155
+ ])
8156
+ ]);
8299
8157
  }
8300
- var APolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$6, [
8301
- [
8302
- "render",
8303
- _sfc_render$5
8304
- ]
8305
- ]);
8158
+ var APolicyForm = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5]]);
8306
8159
 
8307
8160
  const APermissionClientAssignments = defineComponent({
8308
8161
  props: {
@@ -8628,8 +8481,8 @@ const ARobotForm = defineComponent({
8628
8481
 
8629
8482
  const ARobots = defineComponent({
8630
8483
  props: defineEntityCollectionVProps(),
8631
- slots: Object,
8632
8484
  emits: defineEntityCollectionVEmitOptions(),
8485
+ slots: Object,
8633
8486
  setup (props, ctx) {
8634
8487
  const { render } = defineEntityCollectionManager({
8635
8488
  type: `${EntityType.ROBOT}`,
@@ -8872,7 +8725,8 @@ const AUserForm = defineComponent({
8872
8725
  email: {
8873
8726
  minLength: minLength(5),
8874
8727
  maxLength: maxLength(255),
8875
- email
8728
+ email,
8729
+ required
8876
8730
  },
8877
8731
  realm_id: {
8878
8732
  required
@@ -8946,6 +8800,9 @@ const AUserForm = defineComponent({
8946
8800
  value: $v.value.name.$model,
8947
8801
  onChange (input) {
8948
8802
  $v.value.name.$model = input;
8803
+ if (!$v.value.email.$model || isUserFakeEmail($v.value.email.$model)) {
8804
+ $v.value.email.$model = buildUserFakeEmail(input);
8805
+ }
8949
8806
  },
8950
8807
  props: {
8951
8808
  disabled: form.name_locked
@@ -9092,8 +8949,8 @@ const AUserForm = defineComponent({
9092
8949
 
9093
8950
  const AUsers = defineComponent({
9094
8951
  props: defineEntityCollectionVProps(),
9095
- slots: Object,
9096
8952
  emits: defineEntityCollectionVEmitOptions(),
8953
+ slots: Object,
9097
8954
  setup (props, ctx) {
9098
8955
  const { render } = defineEntityCollectionManager({
9099
8956
  type: `${EntityType.USER}`,
@@ -9679,193 +9536,131 @@ var _sfc_main$5 = defineComponent({
9679
9536
  }
9680
9537
  });
9681
9538
 
9682
- const _hoisted_1$4 = {
9683
- class: "d-flex flex-row"
9684
- };
9685
- const _hoisted_2$4 = [
9686
- "href"
9687
- ];
9688
- const _hoisted_3$2 = {
9689
- class: "d-flex flex-column"
9690
- };
9691
- const _hoisted_4$1 = {
9692
- class: "text-center mb-1"
9693
- };
9539
+ const _hoisted_1$4 = { class: "d-flex flex-row" };
9540
+ const _hoisted_2$4 = ["href"];
9541
+ const _hoisted_3$2 = { class: "d-flex flex-column" };
9542
+ const _hoisted_4$1 = { class: "text-center mb-1" };
9694
9543
  function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
9695
- const _component_VCFormInput = resolveComponent("VCFormInput");
9696
- const _component_VCFormGroup = resolveComponent("VCFormGroup");
9697
- const _component_IVuelidate = resolveComponent("IVuelidate");
9698
- const _component_VCFormSubmit = resolveComponent("VCFormSubmit");
9699
- const _component_ARealmPicker = resolveComponent("ARealmPicker");
9700
- const _component_ATitle = resolveComponent("ATitle");
9701
- const _component_APagination = resolveComponent("APagination");
9702
- const _component_AIdentityProviderIcon = resolveComponent("AIdentityProviderIcon");
9703
- const _component_AIdentityProviders = resolveComponent("AIdentityProviders");
9704
- return openBlock(), createElementBlock("div", null, [
9705
- _cache[7] || (_cache[7] = createElementVNode("div", {
9706
- class: "text-center"
9707
- }, [
9708
- createElementVNode("h1", {
9709
- class: "fw-bold"
9710
- }, " Login ")
9711
- ], -1)),
9712
- createElementVNode("form", {
9713
- onSubmit: _cache[3] || (_cache[3] = withModifiers((...args)=>_ctx.submit && _ctx.submit(...args), [
9714
- "prevent"
9715
- ]))
9716
- }, [
9717
- createVNode(_component_IVuelidate, {
9718
- validation: _ctx.vuelidate.name
9719
- }, {
9720
- default: withCtx((props)=>[
9721
- createVNode(_component_VCFormGroup, {
9722
- "validation-messages": props.data,
9723
- "validation-severity": props.severity
9724
- }, {
9725
- label: withCtx(()=>_cache[4] || (_cache[4] = [
9726
- createTextVNode(" Name ")
9727
- ])),
9728
- default: withCtx(()=>[
9729
- createVNode(_component_VCFormInput, {
9730
- modelValue: _ctx.vuelidate.name.$model,
9731
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event)=>_ctx.vuelidate.name.$model = $event)
9732
- }, null, 8, [
9733
- "modelValue"
9734
- ])
9735
- ]),
9736
- _: 2
9737
- }, 1032, [
9738
- "validation-messages",
9739
- "validation-severity"
9740
- ])
9741
- ]),
9742
- _: 1
9743
- }, 8, [
9744
- "validation"
9745
- ]),
9746
- createVNode(_component_IVuelidate, {
9747
- validation: _ctx.vuelidate.password
9748
- }, {
9749
- default: withCtx((props)=>[
9750
- createVNode(_component_VCFormGroup, {
9751
- "validation-messages": props.data,
9752
- "validation-severity": props.severity
9753
- }, {
9754
- label: withCtx(()=>_cache[5] || (_cache[5] = [
9755
- createTextVNode(" Password ")
9756
- ])),
9757
- default: withCtx(()=>[
9758
- createVNode(_component_VCFormInput, {
9759
- modelValue: _ctx.vuelidate.password.$model,
9760
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event)=>_ctx.vuelidate.password.$model = $event),
9761
- type: "password"
9762
- }, null, 8, [
9763
- "modelValue"
9764
- ])
9765
- ]),
9766
- _: 2
9767
- }, 1032, [
9768
- "validation-messages",
9769
- "validation-severity"
9770
- ])
9771
- ]),
9772
- _: 1
9773
- }, 8, [
9774
- "validation"
9544
+ const _component_VCFormInput = resolveComponent("VCFormInput");
9545
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
9546
+ const _component_IVuelidate = resolveComponent("IVuelidate");
9547
+ const _component_VCFormSubmit = resolveComponent("VCFormSubmit");
9548
+ const _component_ARealmPicker = resolveComponent("ARealmPicker");
9549
+ const _component_ATitle = resolveComponent("ATitle");
9550
+ const _component_APagination = resolveComponent("APagination");
9551
+ const _component_AIdentityProviderIcon = resolveComponent("AIdentityProviderIcon");
9552
+ const _component_AIdentityProviders = resolveComponent("AIdentityProviders");
9553
+ return openBlock(), createElementBlock("div", null, [
9554
+ _cache[7] || (_cache[7] = createElementVNode("div", { class: "text-center" }, [
9555
+ createElementVNode("h1", { class: "fw-bold" }, " Login ")
9556
+ ], -1)),
9557
+ createElementVNode("form", {
9558
+ onSubmit: _cache[3] || (_cache[3] = withModifiers((...args) => _ctx.submit && _ctx.submit(...args), ["prevent"]))
9559
+ }, [
9560
+ createVNode(_component_IVuelidate, {
9561
+ validation: _ctx.vuelidate.name
9562
+ }, {
9563
+ default: withCtx((props) => [
9564
+ createVNode(_component_VCFormGroup, {
9565
+ "validation-messages": props.data,
9566
+ "validation-severity": props.severity
9567
+ }, {
9568
+ label: withCtx(() => [..._cache[4] || (_cache[4] = [
9569
+ createTextVNode(" Name ", -1)
9570
+ ])]),
9571
+ default: withCtx(() => [
9572
+ createVNode(_component_VCFormInput, {
9573
+ modelValue: _ctx.vuelidate.name.$model,
9574
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.vuelidate.name.$model = $event)
9575
+ }, null, 8, ["modelValue"])
9775
9576
  ]),
9776
- createVNode(_component_VCFormSubmit, {
9777
- modelValue: _ctx.busy,
9778
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event)=>_ctx.busy = $event),
9779
- invalid: _ctx.vuelidate.$invalid,
9780
- "create-text": "Submit",
9781
- "create-button-class": {
9782
- value: "btn btn-sm btn-dark btn-block",
9783
- presets: {
9784
- bootstrap: false
9785
- }
9786
- },
9787
- "create-icon-class": "fa-solid fa-right-to-bracket",
9788
- submit: _ctx.submit
9789
- }, null, 8, [
9790
- "modelValue",
9791
- "invalid",
9792
- "submit"
9577
+ _: 1
9578
+ }, 8, ["validation-messages", "validation-severity"])
9579
+ ]),
9580
+ _: 1
9581
+ }, 8, ["validation"]),
9582
+ createVNode(_component_IVuelidate, {
9583
+ validation: _ctx.vuelidate.password
9584
+ }, {
9585
+ default: withCtx((props) => [
9586
+ createVNode(_component_VCFormGroup, {
9587
+ "validation-messages": props.data,
9588
+ "validation-severity": props.severity
9589
+ }, {
9590
+ label: withCtx(() => [..._cache[5] || (_cache[5] = [
9591
+ createTextVNode(" Password ", -1)
9592
+ ])]),
9593
+ default: withCtx(() => [
9594
+ createVNode(_component_VCFormInput, {
9595
+ modelValue: _ctx.vuelidate.password.$model,
9596
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.vuelidate.password.$model = $event),
9597
+ type: "password"
9598
+ }, null, 8, ["modelValue"])
9793
9599
  ]),
9794
- _cache[6] || (_cache[6] = createElementVNode("hr", null, null, -1)),
9795
- !_ctx.codeRequest || !_ctx.codeRequest.realm_id ? (openBlock(), createBlock(_component_ARealmPicker, {
9796
- key: 0,
9797
- value: _ctx.form.realm_id,
9798
- onChange: _ctx.updateRealmId
9799
- }, null, 8, [
9800
- "value",
9801
- "onChange"
9802
- ])) : createCommentVNode("", true),
9803
- createVNode(_component_AIdentityProviders, {
9804
- ref: "identityProviderRef",
9805
- query: _ctx.identityProviderQuery,
9806
- footer: false
9807
- }, {
9808
- header: withCtx(()=>[
9809
- createVNode(_component_ATitle, {
9810
- text: "Identity Providers"
9811
- })
9812
- ]),
9813
- footer: withCtx((props)=>[
9814
- createVNode(_component_APagination, {
9815
- busy: props.busy,
9816
- meta: props.meta,
9817
- load: props.load,
9818
- total: props.total
9819
- }, null, 8, [
9820
- "busy",
9821
- "meta",
9822
- "load",
9823
- "total"
9824
- ])
9825
- ]),
9826
- body: withCtx((props)=>[
9827
- createElementVNode("div", _hoisted_1$4, [
9828
- (openBlock(true), createElementBlock(Fragment, null, renderList(props.data, (item, key)=>{
9829
- return openBlock(), createElementBlock("div", {
9830
- key
9831
- }, [
9832
- createElementVNode("a", {
9833
- href: _ctx.buildIdentityProviderURL(item.id),
9834
- class: "btn btn-dark btn-xs p-2 me-1 identity-provider-box bg-dark"
9835
- }, [
9836
- createElementVNode("div", _hoisted_3$2, [
9837
- createElementVNode("div", _hoisted_4$1, [
9838
- createVNode(_component_AIdentityProviderIcon, {
9839
- class: "fa-2x",
9840
- entity: item
9841
- }, null, 8, [
9842
- "entity"
9843
- ])
9844
- ]),
9845
- createElementVNode("div", null, toDisplayString(item.name), 1)
9846
- ])
9847
- ], 8, _hoisted_2$4)
9848
- ]);
9849
- }), 128))
9850
- ])
9600
+ _: 1
9601
+ }, 8, ["validation-messages", "validation-severity"])
9602
+ ]),
9603
+ _: 1
9604
+ }, 8, ["validation"]),
9605
+ createVNode(_component_VCFormSubmit, {
9606
+ modelValue: _ctx.busy,
9607
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.busy = $event),
9608
+ invalid: _ctx.vuelidate.$invalid,
9609
+ "create-text": "Submit",
9610
+ "create-button-class": { value: "btn btn-sm btn-dark btn-block", presets: { bootstrap: false } },
9611
+ "create-icon-class": "fa-solid fa-right-to-bracket",
9612
+ submit: _ctx.submit
9613
+ }, null, 8, ["modelValue", "invalid", "submit"]),
9614
+ _cache[6] || (_cache[6] = createElementVNode("hr", null, null, -1)),
9615
+ !_ctx.codeRequest || !_ctx.codeRequest.realm_id ? (openBlock(), createBlock(_component_ARealmPicker, {
9616
+ key: 0,
9617
+ value: _ctx.form.realm_id,
9618
+ onChange: _ctx.updateRealmId
9619
+ }, null, 8, ["value", "onChange"])) : createCommentVNode("", true),
9620
+ createVNode(_component_AIdentityProviders, {
9621
+ ref: "identityProviderRef",
9622
+ query: _ctx.identityProviderQuery,
9623
+ footer: false
9624
+ }, {
9625
+ header: withCtx(() => [
9626
+ createVNode(_component_ATitle, { text: "Identity Providers" })
9627
+ ]),
9628
+ footer: withCtx((props) => [
9629
+ createVNode(_component_APagination, {
9630
+ busy: props.busy,
9631
+ meta: props.meta,
9632
+ load: props.load,
9633
+ total: props.total
9634
+ }, null, 8, ["busy", "meta", "load", "total"])
9635
+ ]),
9636
+ body: withCtx((props) => [
9637
+ createElementVNode("div", _hoisted_1$4, [
9638
+ (openBlock(true), createElementBlock(Fragment, null, renderList(props.data, (item, key) => {
9639
+ return openBlock(), createElementBlock("div", { key }, [
9640
+ createElementVNode("a", {
9641
+ href: _ctx.buildIdentityProviderURL(item.id),
9642
+ class: "btn btn-dark btn-xs p-2 me-1 identity-provider-box bg-dark"
9643
+ }, [
9644
+ createElementVNode("div", _hoisted_3$2, [
9645
+ createElementVNode("div", _hoisted_4$1, [
9646
+ createVNode(_component_AIdentityProviderIcon, {
9647
+ class: "fa-2x",
9648
+ entity: item
9649
+ }, null, 8, ["entity"])
9851
9650
  ]),
9852
- _: 1
9853
- }, 8, [
9854
- "query"
9855
- ])
9856
- ], 32)
9857
- ]);
9651
+ createElementVNode("div", null, toDisplayString(item.name), 1)
9652
+ ])
9653
+ ], 8, _hoisted_2$4)
9654
+ ]);
9655
+ }), 128))
9656
+ ])
9657
+ ]),
9658
+ _: 1
9659
+ }, 8, ["query"])
9660
+ ], 32)
9661
+ ]);
9858
9662
  }
9859
- var Login = /* @__PURE__ */ _export_sfc(_sfc_main$5, [
9860
- [
9861
- "render",
9862
- _sfc_render$4
9863
- ],
9864
- [
9865
- "__scopeId",
9866
- "data-v-957a0486"
9867
- ]
9868
- ]);
9663
+ var Login = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__scopeId", "data-v-957a0486"]]);
9869
9664
 
9870
9665
  var _sfc_main$4 = defineComponent({
9871
9666
  props: {
@@ -9886,37 +9681,25 @@ var _sfc_main$4 = defineComponent({
9886
9681
  }
9887
9682
  });
9888
9683
 
9889
- const _hoisted_1$3 = {
9890
- class: "text-center"
9891
- };
9892
- const _hoisted_2$3 = {
9893
- key: 0
9894
- };
9684
+ const _hoisted_1$3 = { class: "text-center" };
9685
+ const _hoisted_2$3 = { key: 0 };
9895
9686
  function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
9896
- return openBlock(), createElementBlock("div", null, [
9897
- createElementVNode("div", _hoisted_1$3, [
9898
- createElementVNode("i", {
9899
- class: normalizeClass([
9900
- "fa-solid",
9901
- {
9902
- "fa-check text-success": _ctx.isEnabled,
9903
- "fa-times text-danger": !_ctx.isEnabled
9904
- }
9905
- ])
9906
- }, null, 2)
9907
- ]),
9908
- createElementVNode("div", null, [
9909
- createElementVNode("strong", null, toDisplayString(_ctx.entity.name), 1),
9910
- _ctx.entity.description ? (openBlock(), createElementBlock("p", _hoisted_2$3, toDisplayString(_ctx.entity.description), 1)) : createCommentVNode("", true)
9911
- ])
9912
- ]);
9687
+ return openBlock(), createElementBlock("div", null, [
9688
+ createElementVNode("div", _hoisted_1$3, [
9689
+ createElementVNode("i", {
9690
+ class: normalizeClass(["fa-solid", {
9691
+ "fa-check text-success": _ctx.isEnabled,
9692
+ "fa-times text-danger": !_ctx.isEnabled
9693
+ }])
9694
+ }, null, 2)
9695
+ ]),
9696
+ createElementVNode("div", null, [
9697
+ createElementVNode("strong", null, toDisplayString(_ctx.entity.name), 1),
9698
+ _ctx.entity.description ? (openBlock(), createElementBlock("p", _hoisted_2$3, toDisplayString(_ctx.entity.description), 1)) : createCommentVNode("", true)
9699
+ ])
9700
+ ]);
9913
9701
  }
9914
- var AuthorizeScope = /* @__PURE__ */ _export_sfc(_sfc_main$4, [
9915
- [
9916
- "render",
9917
- _sfc_render$3
9918
- ]
9919
- ]);
9702
+ var AuthorizeScope = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3]]);
9920
9703
 
9921
9704
  var _sfc_main$3 = defineComponent({
9922
9705
  components: {
@@ -9971,41 +9754,29 @@ var _sfc_main$3 = defineComponent({
9971
9754
  }
9972
9755
  });
9973
9756
 
9974
- const _hoisted_1$2 = {
9975
- key: 0
9976
- };
9977
- const _hoisted_2$2 = {
9978
- class: "flex-column"
9979
- };
9757
+ const _hoisted_1$2 = { key: 0 };
9758
+ const _hoisted_2$2 = { class: "flex-column" };
9980
9759
  function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
9981
- const _component_AuthorizeScope = resolveComponent("AuthorizeScope");
9982
- return _ctx.scopesAvailableNormalized.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
9983
- createElementVNode("div", null, [
9984
- _cache[0] || (_cache[0] = createTextVNode(" This will allow the ")),
9985
- createElementVNode("strong", null, toDisplayString(_ctx.client.name), 1),
9986
- _cache[1] || (_cache[1] = createTextVNode(" application to "))
9987
- ]),
9988
- createElementVNode("div", _hoisted_2$2, [
9989
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.scopesAvailableNormalized, (item)=>{
9990
- return openBlock(), createBlock(_component_AuthorizeScope, {
9991
- key: item.id,
9992
- entity: item,
9993
- class: "d-flex flex-row gap-1",
9994
- requested: _ctx.scopesRequestedNormalized
9995
- }, null, 8, [
9996
- "entity",
9997
- "requested"
9998
- ]);
9999
- }), 128))
10000
- ])
10001
- ])) : createCommentVNode("", true);
9760
+ const _component_AuthorizeScope = resolveComponent("AuthorizeScope");
9761
+ return _ctx.scopesAvailableNormalized.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
9762
+ createElementVNode("div", null, [
9763
+ _cache[0] || (_cache[0] = createTextVNode(" This will allow the ", -1)),
9764
+ createElementVNode("strong", null, toDisplayString(_ctx.client.name), 1),
9765
+ _cache[1] || (_cache[1] = createTextVNode(" application to ", -1))
9766
+ ]),
9767
+ createElementVNode("div", _hoisted_2$2, [
9768
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.scopesAvailableNormalized, (item) => {
9769
+ return openBlock(), createBlock(_component_AuthorizeScope, {
9770
+ key: item.id,
9771
+ entity: item,
9772
+ class: "d-flex flex-row gap-1",
9773
+ requested: _ctx.scopesRequestedNormalized
9774
+ }, null, 8, ["entity", "requested"]);
9775
+ }), 128))
9776
+ ])
9777
+ ])) : createCommentVNode("", true);
10002
9778
  }
10003
- var AuthorizeScopes = /* @__PURE__ */ _export_sfc(_sfc_main$3, [
10004
- [
10005
- "render",
10006
- _sfc_render$2
10007
- ]
10008
- ]);
9779
+ var AuthorizeScopes = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2]]);
10009
9780
 
10010
9781
  var _sfc_main$2 = defineComponent({
10011
9782
  components: {
@@ -10065,130 +9836,83 @@ var _sfc_main$2 = defineComponent({
10065
9836
  }
10066
9837
  });
10067
9838
 
10068
- const _hoisted_1$1 = {
10069
- class: "flex-column d-flex gap-2"
10070
- };
10071
- const _hoisted_2$1 = {
10072
- class: "text-center"
10073
- };
10074
- const _hoisted_3$1 = {
10075
- class: "fw-bold"
10076
- };
10077
- const _hoisted_4 = {
10078
- class: "mt-auto"
10079
- };
10080
- const _hoisted_5 = {
10081
- class: "d-flex flex-row"
10082
- };
10083
- const _hoisted_6 = {
10084
- class: "ms-1"
10085
- };
10086
- const _hoisted_7 = {
10087
- class: "d-flex flex-row"
10088
- };
10089
- const _hoisted_8 = {
10090
- class: "ms-1"
10091
- };
10092
- const _hoisted_9 = {
10093
- class: "d-flex flex-row"
10094
- };
10095
- const _hoisted_10 = {
10096
- class: "ms-1"
10097
- };
10098
- const _hoisted_11 = {
10099
- class: "row"
10100
- };
10101
- const _hoisted_12 = {
10102
- class: "col-6"
10103
- };
10104
- const _hoisted_13 = {
10105
- class: "col-6"
10106
- };
9839
+ const _hoisted_1$1 = { class: "flex-column d-flex gap-2" };
9840
+ const _hoisted_2$1 = { class: "text-center" };
9841
+ const _hoisted_3$1 = { class: "fw-bold" };
9842
+ const _hoisted_4 = { class: "mt-auto" };
9843
+ const _hoisted_5 = { class: "d-flex flex-row" };
9844
+ const _hoisted_6 = { class: "ms-1" };
9845
+ const _hoisted_7 = { class: "d-flex flex-row" };
9846
+ const _hoisted_8 = { class: "ms-1" };
9847
+ const _hoisted_9 = { class: "d-flex flex-row" };
9848
+ const _hoisted_10 = { class: "ms-1" };
9849
+ const _hoisted_11 = { class: "row" };
9850
+ const _hoisted_12 = { class: "col-6" };
9851
+ const _hoisted_13 = { class: "col-6" };
10107
9852
  function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
10108
- const _component_AuthorizeScopes = resolveComponent("AuthorizeScopes");
10109
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
10110
- createElementVNode("div", _hoisted_2$1, [
10111
- _cache[2] || (_cache[2] = createElementVNode("h5", {
10112
- class: "text-secondary mb-1"
10113
- }, " Application ", -1)),
10114
- createElementVNode("h1", _hoisted_3$1, toDisplayString(_ctx.client.name), 1)
10115
- ]),
10116
- createVNode(_component_AuthorizeScopes, {
10117
- client: _ctx.client,
10118
- "scopes-requested": _ctx.codeRequest.scope,
10119
- "scopes-available": _ctx.scopes
10120
- }, null, 8, [
10121
- "client",
10122
- "scopes-requested",
10123
- "scopes-available"
10124
- ]),
10125
- createElementVNode("div", _hoisted_4, [
10126
- createElementVNode("div", _hoisted_5, [
10127
- _cache[4] || (_cache[4] = createElementVNode("div", null, [
10128
- createElementVNode("i", {
10129
- class: "fa-solid fa-link"
10130
- })
10131
- ], -1)),
10132
- createElementVNode("div", _hoisted_6, [
10133
- createElementVNode("small", null, [
10134
- _cache[3] || (_cache[3] = createTextVNode(" Once authorized, you will be redirected to: ")),
10135
- createElementVNode("strong", null, toDisplayString(_ctx.codeRequest.redirect_uri), 1)
10136
- ])
10137
- ])
10138
- ]),
10139
- createElementVNode("div", _hoisted_7, [
10140
- _cache[7] || (_cache[7] = createElementVNode("div", null, [
10141
- createElementVNode("i", {
10142
- class: "fa fa-solid fa-lock"
10143
- })
10144
- ], -1)),
10145
- createElementVNode("div", _hoisted_8, [
10146
- createElementVNode("small", null, [
10147
- _cache[5] || (_cache[5] = createTextVNode(" This application is governed by the ")),
10148
- createElementVNode("strong", null, toDisplayString(_ctx.client.name), 1),
10149
- _cache[6] || (_cache[6] = createTextVNode(" application's Privacy Policy and Terms of Service. "))
10150
- ])
10151
- ])
10152
- ]),
10153
- createElementVNode("div", _hoisted_9, [
10154
- _cache[8] || (_cache[8] = createElementVNode("div", null, [
10155
- createElementVNode("i", {
10156
- class: "fa fa-solid fa-clock"
10157
- })
10158
- ], -1)),
10159
- createElementVNode("div", _hoisted_10, [
10160
- createElementVNode("small", null, " Active since " + toDisplayString(_ctx.client.created_at), 1)
10161
- ])
10162
- ])
10163
- ]),
10164
- createElementVNode("div", _hoisted_11, [
10165
- createElementVNode("div", _hoisted_12, [
10166
- createElementVNode("button", {
10167
- type: "button",
10168
- class: "btn btn-block btn-secondary",
10169
- onClick: _cache[0] || (_cache[0] = withModifiers((...args)=>_ctx.abort && _ctx.abort(...args), [
10170
- "prevent"
10171
- ]))
10172
- }, " Abort ")
10173
- ]),
10174
- createElementVNode("div", _hoisted_13, [
10175
- createElementVNode("button", {
10176
- type: "button",
10177
- class: "btn btn-block btn-primary",
10178
- onClick: _cache[1] || (_cache[1] = withModifiers((...args)=>_ctx.authorize && _ctx.authorize(...args), [
10179
- "prevent"
10180
- ]))
10181
- }, " Authorize ")
10182
- ])
9853
+ const _component_AuthorizeScopes = resolveComponent("AuthorizeScopes");
9854
+ return openBlock(), createElementBlock("div", _hoisted_1$1, [
9855
+ createElementVNode("div", _hoisted_2$1, [
9856
+ _cache[2] || (_cache[2] = createElementVNode("h5", { class: "text-secondary mb-1" }, " Application ", -1)),
9857
+ createElementVNode("h1", _hoisted_3$1, toDisplayString(_ctx.client.name), 1)
9858
+ ]),
9859
+ createVNode(_component_AuthorizeScopes, {
9860
+ client: _ctx.client,
9861
+ "scopes-requested": _ctx.codeRequest.scope,
9862
+ "scopes-available": _ctx.scopes
9863
+ }, null, 8, ["client", "scopes-requested", "scopes-available"]),
9864
+ createElementVNode("div", _hoisted_4, [
9865
+ createElementVNode("div", _hoisted_5, [
9866
+ _cache[4] || (_cache[4] = createElementVNode("div", null, [
9867
+ createElementVNode("i", { class: "fa-solid fa-link" })
9868
+ ], -1)),
9869
+ createElementVNode("div", _hoisted_6, [
9870
+ createElementVNode("small", null, [
9871
+ _cache[3] || (_cache[3] = createTextVNode(" Once authorized, you will be redirected to: ", -1)),
9872
+ createElementVNode("strong", null, toDisplayString(_ctx.codeRequest.redirect_uri), 1)
9873
+ ])
10183
9874
  ])
10184
- ]);
9875
+ ]),
9876
+ createElementVNode("div", _hoisted_7, [
9877
+ _cache[7] || (_cache[7] = createElementVNode("div", null, [
9878
+ createElementVNode("i", { class: "fa fa-solid fa-lock" })
9879
+ ], -1)),
9880
+ createElementVNode("div", _hoisted_8, [
9881
+ createElementVNode("small", null, [
9882
+ _cache[5] || (_cache[5] = createTextVNode(" This application is governed by the ", -1)),
9883
+ createElementVNode("strong", null, toDisplayString(_ctx.client.name), 1),
9884
+ _cache[6] || (_cache[6] = createTextVNode(" application's Privacy Policy and Terms of Service. ", -1))
9885
+ ])
9886
+ ])
9887
+ ]),
9888
+ createElementVNode("div", _hoisted_9, [
9889
+ _cache[8] || (_cache[8] = createElementVNode("div", null, [
9890
+ createElementVNode("i", { class: "fa fa-solid fa-clock" })
9891
+ ], -1)),
9892
+ createElementVNode("div", _hoisted_10, [
9893
+ createElementVNode("small", null, " Active since " + toDisplayString(_ctx.client.created_at), 1)
9894
+ ])
9895
+ ])
9896
+ ]),
9897
+ createElementVNode("div", _hoisted_11, [
9898
+ createElementVNode("div", _hoisted_12, [
9899
+ createElementVNode("button", {
9900
+ type: "button",
9901
+ class: "btn btn-block btn-secondary",
9902
+ onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.abort && _ctx.abort(...args), ["prevent"]))
9903
+ }, " Abort ")
9904
+ ]),
9905
+ createElementVNode("div", _hoisted_13, [
9906
+ createElementVNode("button", {
9907
+ type: "button",
9908
+ class: "btn btn-block btn-primary",
9909
+ onClick: _cache[1] || (_cache[1] = withModifiers((...args) => _ctx.authorize && _ctx.authorize(...args), ["prevent"]))
9910
+ }, " Authorize ")
9911
+ ])
9912
+ ])
9913
+ ]);
10185
9914
  }
10186
- var AuthorizeForm = /* @__PURE__ */ _export_sfc(_sfc_main$2, [
10187
- [
10188
- "render",
10189
- _sfc_render$1
10190
- ]
10191
- ]);
9915
+ var AuthorizeForm = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1]]);
10192
9916
 
10193
9917
  var _sfc_main$1 = defineComponent({
10194
9918
  props: {
@@ -10202,37 +9926,23 @@ var _sfc_main$1 = defineComponent({
10202
9926
  }
10203
9927
  });
10204
9928
 
10205
- const _hoisted_1 = {
10206
- class: "flex-column"
10207
- };
10208
- const _hoisted_2 = {
10209
- class: "text-center"
10210
- };
10211
- const _hoisted_3 = {
10212
- class: "text-center fs-6 p-3"
10213
- };
9929
+ const _hoisted_1 = { class: "flex-column" };
9930
+ const _hoisted_2 = { class: "text-center" };
9931
+ const _hoisted_3 = { class: "text-center fs-6 p-3" };
10214
9932
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
10215
- return openBlock(), createElementBlock("div", _hoisted_1, [
10216
- createElementVNode("div", _hoisted_2, [
10217
- createElementVNode("i", {
10218
- class: normalizeClass([
10219
- "fa-solid fa-10x",
10220
- {
10221
- "fa-exclamation text-danger": _ctx.isError,
10222
- "fa-info text-info": !_ctx.isError
10223
- }
10224
- ])
10225
- }, null, 2)
10226
- ]),
10227
- createElementVNode("div", _hoisted_3, toDisplayString(_ctx.message), 1)
10228
- ]);
9933
+ return openBlock(), createElementBlock("div", _hoisted_1, [
9934
+ createElementVNode("div", _hoisted_2, [
9935
+ createElementVNode("i", {
9936
+ class: normalizeClass(["fa-solid fa-10x", {
9937
+ "fa-exclamation text-danger": _ctx.isError,
9938
+ "fa-info text-info": !_ctx.isError
9939
+ }])
9940
+ }, null, 2)
9941
+ ]),
9942
+ createElementVNode("div", _hoisted_3, toDisplayString(_ctx.message), 1)
9943
+ ]);
10229
9944
  }
10230
- var AuthorizeText = /* @__PURE__ */ _export_sfc(_sfc_main$1, [
10231
- [
10232
- "render",
10233
- _sfc_render
10234
- ]
10235
- ]);
9945
+ var AuthorizeText = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render]]);
10236
9946
 
10237
9947
  const wrapChild = (child)=>h('div', {
10238
9948
  class: 'd-flex align-items-center justify-content-center h-100'