@authup/client-web-kit 1.0.0-beta.35 → 1.0.0-beta.37

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 (204) hide show
  1. package/dist/components/entities/client/AClientForm.vue.d.ts +29 -5
  2. package/dist/components/entities/client/AClientForm.vue.d.ts.map +1 -1
  3. package/dist/components/entities/client-permission/AClientPermissionAssignment.vue.d.ts +87 -0
  4. package/dist/components/entities/client-permission/AClientPermissionAssignment.vue.d.ts.map +1 -0
  5. package/dist/components/entities/client-permission/AClientPermissionAssignments.vue.d.ts +178 -0
  6. package/dist/components/entities/client-permission/AClientPermissionAssignments.vue.d.ts.map +1 -0
  7. package/dist/components/entities/client-permission/index.d.ts +2 -2
  8. package/dist/components/entities/client-permission/index.d.ts.map +1 -1
  9. package/dist/components/entities/client-role/AClientRoleAssignment.vue.d.ts +56 -0
  10. package/dist/components/entities/client-role/AClientRoleAssignment.vue.d.ts.map +1 -0
  11. package/dist/components/entities/client-role/AClientRoleAssignments.vue.d.ts +155 -0
  12. package/dist/components/entities/client-role/AClientRoleAssignments.vue.d.ts.map +1 -0
  13. package/dist/components/entities/client-role/index.d.ts +2 -2
  14. package/dist/components/entities/client-role/index.d.ts.map +1 -1
  15. package/dist/components/entities/client-scope/AClientScopeAssignment.vue.d.ts +56 -0
  16. package/dist/components/entities/client-scope/AClientScopeAssignment.vue.d.ts.map +1 -0
  17. package/dist/components/entities/client-scope/AClientScopeAssignments.vue.d.ts +148 -0
  18. package/dist/components/entities/client-scope/AClientScopeAssignments.vue.d.ts.map +1 -0
  19. package/dist/components/entities/client-scope/index.d.ts +2 -2
  20. package/dist/components/entities/client-scope/index.d.ts.map +1 -1
  21. package/dist/components/entities/identity-provider/AIdentityProviderIcon.vue.d.ts +47 -0
  22. package/dist/components/entities/identity-provider/AIdentityProviderIcon.vue.d.ts.map +1 -0
  23. package/dist/components/entities/identity-provider/AIdentityProviderOAuth2EndpointFields.vue.d.ts +200 -0
  24. package/dist/components/entities/identity-provider/AIdentityProviderOAuth2EndpointFields.vue.d.ts.map +1 -0
  25. package/dist/components/entities/identity-provider/AIdentityProviderOAuth2Form.d.ts +1 -1
  26. package/dist/components/entities/identity-provider/index.d.ts +1 -1
  27. package/dist/components/entities/identity-provider/index.d.ts.map +1 -1
  28. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignment.vue.d.ts +260 -0
  29. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignment.vue.d.ts.map +1 -0
  30. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignments.vue.d.ts +350 -0
  31. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignments.vue.d.ts.map +1 -0
  32. package/dist/components/entities/identity-provider-role/index.d.ts +2 -2
  33. package/dist/components/entities/identity-provider-role/index.d.ts.map +1 -1
  34. package/dist/components/entities/permission-client/APermissionClientAssignments.vue.d.ts +178 -0
  35. package/dist/components/entities/permission-client/APermissionClientAssignments.vue.d.ts.map +1 -0
  36. package/dist/components/entities/permission-client/index.d.ts +1 -1
  37. package/dist/components/entities/permission-client/index.d.ts.map +1 -1
  38. package/dist/components/entities/permission-policy/APermissionPolicyAssignment.vue.d.ts +56 -0
  39. package/dist/components/entities/permission-policy/APermissionPolicyAssignment.vue.d.ts.map +1 -0
  40. package/dist/components/entities/permission-policy/APermissionPolicyAssignments.vue.d.ts +357 -0
  41. package/dist/components/entities/permission-policy/APermissionPolicyAssignments.vue.d.ts.map +1 -0
  42. package/dist/components/entities/permission-policy/index.d.ts +2 -2
  43. package/dist/components/entities/permission-policy/index.d.ts.map +1 -1
  44. package/dist/components/entities/permission-policy-binding/APermissionPolicyBindingButton.d.ts.map +1 -1
  45. package/dist/components/entities/permission-robot/APermissionRobotAssignments.vue.d.ts +178 -0
  46. package/dist/components/entities/permission-robot/APermissionRobotAssignments.vue.d.ts.map +1 -0
  47. package/dist/components/entities/permission-robot/index.d.ts +1 -1
  48. package/dist/components/entities/permission-robot/index.d.ts.map +1 -1
  49. package/dist/components/entities/permission-role/APermissionRoleAssignments.vue.d.ts +178 -0
  50. package/dist/components/entities/permission-role/APermissionRoleAssignments.vue.d.ts.map +1 -0
  51. package/dist/components/entities/permission-role/index.d.ts +1 -1
  52. package/dist/components/entities/permission-role/index.d.ts.map +1 -1
  53. package/dist/components/entities/permission-user/APermissionUserAssignments.vue.d.ts +178 -0
  54. package/dist/components/entities/permission-user/APermissionUserAssignments.vue.d.ts.map +1 -0
  55. package/dist/components/entities/permission-user/index.d.ts +1 -1
  56. package/dist/components/entities/permission-user/index.d.ts.map +1 -1
  57. package/dist/components/entities/policy/APolicyDetailNav.vue.d.ts +18 -0
  58. package/dist/components/entities/policy/APolicyDetailNav.vue.d.ts.map +1 -0
  59. package/dist/components/entities/policy/APolicyInlineInfo.vue.d.ts +49 -0
  60. package/dist/components/entities/policy/APolicyInlineInfo.vue.d.ts.map +1 -0
  61. package/dist/components/entities/policy/{APolicyPicker.d.ts → APolicyPicker.vue.d.ts} +4 -2
  62. package/dist/components/entities/policy/APolicyPicker.vue.d.ts.map +1 -0
  63. package/dist/components/entities/policy/APolicySummary.vue.d.ts +30 -0
  64. package/dist/components/entities/policy/APolicySummary.vue.d.ts.map +1 -0
  65. package/dist/components/entities/policy/APolicyTypeBadge.vue.d.ts +16 -0
  66. package/dist/components/entities/policy/APolicyTypeBadge.vue.d.ts.map +1 -0
  67. package/dist/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue.d.ts +28 -4
  68. package/dist/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue.d.ts.map +1 -1
  69. package/dist/components/entities/policy/composite/ACompositePolicyForm.vue.d.ts +12 -12
  70. package/dist/components/entities/policy/identity/AIdentityPolicyForm.vue.d.ts +28 -4
  71. package/dist/components/entities/policy/identity/AIdentityPolicyForm.vue.d.ts.map +1 -1
  72. package/dist/components/entities/policy/index.d.ts +4 -0
  73. package/dist/components/entities/policy/index.d.ts.map +1 -1
  74. package/dist/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue.d.ts +28 -4
  75. package/dist/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue.d.ts.map +1 -1
  76. package/dist/components/entities/robot-permission/ARobotPermissionAssignment.vue.d.ts +87 -0
  77. package/dist/components/entities/robot-permission/ARobotPermissionAssignment.vue.d.ts.map +1 -0
  78. package/dist/components/entities/robot-permission/ARobotPermissionAssignments.vue.d.ts +178 -0
  79. package/dist/components/entities/robot-permission/ARobotPermissionAssignments.vue.d.ts.map +1 -0
  80. package/dist/components/entities/robot-permission/index.d.ts +2 -2
  81. package/dist/components/entities/robot-permission/index.d.ts.map +1 -1
  82. package/dist/components/entities/robot-role/ARobotRoleAssignment.vue.d.ts +56 -0
  83. package/dist/components/entities/robot-role/ARobotRoleAssignment.vue.d.ts.map +1 -0
  84. package/dist/components/entities/robot-role/ARobotRoleAssignments.vue.d.ts +148 -0
  85. package/dist/components/entities/robot-role/ARobotRoleAssignments.vue.d.ts.map +1 -0
  86. package/dist/components/entities/robot-role/index.d.ts +2 -2
  87. package/dist/components/entities/robot-role/index.d.ts.map +1 -1
  88. package/dist/components/entities/role-client/ARoleClientAssignments.vue.d.ts +144 -0
  89. package/dist/components/entities/role-client/ARoleClientAssignments.vue.d.ts.map +1 -0
  90. package/dist/components/entities/role-client/index.d.ts +1 -1
  91. package/dist/components/entities/role-client/index.d.ts.map +1 -1
  92. package/dist/components/entities/role-permission/ARolePermissionAssignment.vue.d.ts +87 -0
  93. package/dist/components/entities/role-permission/ARolePermissionAssignment.vue.d.ts.map +1 -0
  94. package/dist/components/entities/role-permission/ARolePermissionAssignments.vue.d.ts +178 -0
  95. package/dist/components/entities/role-permission/ARolePermissionAssignments.vue.d.ts.map +1 -0
  96. package/dist/components/entities/role-permission/index.d.ts +2 -2
  97. package/dist/components/entities/role-permission/index.d.ts.map +1 -1
  98. package/dist/components/entities/role-robot/ARoleRobotAssignments.vue.d.ts +144 -0
  99. package/dist/components/entities/role-robot/ARoleRobotAssignments.vue.d.ts.map +1 -0
  100. package/dist/components/entities/role-robot/index.d.ts +1 -1
  101. package/dist/components/entities/role-robot/index.d.ts.map +1 -1
  102. package/dist/components/entities/role-user/ARoleUserAssignments.vue.d.ts +148 -0
  103. package/dist/components/entities/role-user/ARoleUserAssignments.vue.d.ts.map +1 -0
  104. package/dist/components/entities/role-user/index.d.ts +1 -1
  105. package/dist/components/entities/role-user/index.d.ts.map +1 -1
  106. package/dist/components/entities/scope-client/AScopeClientAssignments.vue.d.ts +148 -0
  107. package/dist/components/entities/scope-client/AScopeClientAssignments.vue.d.ts.map +1 -0
  108. package/dist/components/entities/scope-client/index.d.ts +1 -1
  109. package/dist/components/entities/scope-client/index.d.ts.map +1 -1
  110. package/dist/components/entities/user-permission/AUserPermissionAssignment.vue.d.ts +87 -0
  111. package/dist/components/entities/user-permission/AUserPermissionAssignment.vue.d.ts.map +1 -0
  112. package/dist/components/entities/user-permission/AUserPermissionAssignments.vue.d.ts +178 -0
  113. package/dist/components/entities/user-permission/AUserPermissionAssignments.vue.d.ts.map +1 -0
  114. package/dist/components/entities/user-permission/index.d.ts +2 -2
  115. package/dist/components/entities/user-permission/index.d.ts.map +1 -1
  116. package/dist/components/entities/user-role/AUserRoleAssignment.vue.d.ts +56 -0
  117. package/dist/components/entities/user-role/AUserRoleAssignment.vue.d.ts.map +1 -0
  118. package/dist/components/entities/user-role/AUserRoleAssignments.vue.d.ts +148 -0
  119. package/dist/components/entities/user-role/AUserRoleAssignments.vue.d.ts.map +1 -0
  120. package/dist/components/entities/user-role/index.d.ts +2 -2
  121. package/dist/components/entities/user-role/index.d.ts.map +1 -1
  122. package/dist/components/utility/entity/record/module.d.ts.map +1 -1
  123. package/dist/components/utility/entity/record/types.d.ts +1 -0
  124. package/dist/components/utility/entity/record/types.d.ts.map +1 -1
  125. package/dist/components/utility/form-input-list/AFormInputList.vue.d.ts +28 -4
  126. package/dist/components/utility/form-input-list/AFormInputList.vue.d.ts.map +1 -1
  127. package/dist/components/utility/toggle-button/AToggleButton.vue.d.ts +26 -0
  128. package/dist/components/utility/toggle-button/AToggleButton.vue.d.ts.map +1 -0
  129. package/dist/components/utility/toggle-button/index.d.ts +1 -0
  130. package/dist/components/utility/toggle-button/index.d.ts.map +1 -1
  131. package/dist/components/utility/translation/ATranslationDefault.vue.d.ts +43 -0
  132. package/dist/components/utility/translation/ATranslationDefault.vue.d.ts.map +1 -0
  133. package/dist/components/utility/translation/index.d.ts +1 -1
  134. package/dist/components/utility/translation/index.d.ts.map +1 -1
  135. package/dist/components/workflows/Login.vue.d.ts +33 -2
  136. package/dist/components/workflows/Login.vue.d.ts.map +1 -1
  137. package/dist/components/workflows/authorize/Authorize.vue.d.ts +33 -2
  138. package/dist/components/workflows/authorize/Authorize.vue.d.ts.map +1 -1
  139. package/dist/index.mjs +2117 -1212
  140. package/dist/index.mjs.map +1 -1
  141. package/package.json +16 -16
  142. package/dist/components/entities/client-permission/AClientPermissionAssignment.d.ts +0 -18
  143. package/dist/components/entities/client-permission/AClientPermissionAssignment.d.ts.map +0 -1
  144. package/dist/components/entities/client-permission/AClientPermissionAssignments.d.ts +0 -15
  145. package/dist/components/entities/client-permission/AClientPermissionAssignments.d.ts.map +0 -1
  146. package/dist/components/entities/client-role/AClientRoleAssignment.d.ts +0 -18
  147. package/dist/components/entities/client-role/AClientRoleAssignment.d.ts.map +0 -1
  148. package/dist/components/entities/client-role/AClientRoleAssignments.d.ts +0 -11
  149. package/dist/components/entities/client-role/AClientRoleAssignments.d.ts.map +0 -1
  150. package/dist/components/entities/client-scope/AClientScopeAssignment.d.ts +0 -17
  151. package/dist/components/entities/client-scope/AClientScopeAssignment.d.ts.map +0 -1
  152. package/dist/components/entities/client-scope/AClientScopeAssignments.d.ts +0 -14
  153. package/dist/components/entities/client-scope/AClientScopeAssignments.d.ts.map +0 -1
  154. package/dist/components/entities/identity-provider/AIdentityProviderIcon.d.ts +0 -14
  155. package/dist/components/entities/identity-provider/AIdentityProviderIcon.d.ts.map +0 -1
  156. package/dist/components/entities/identity-provider/AIdentityProviderOAuth2EndpointFields.d.ts +0 -24
  157. package/dist/components/entities/identity-provider/AIdentityProviderOAuth2EndpointFields.d.ts.map +0 -1
  158. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignment.d.ts +0 -31
  159. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignment.d.ts.map +0 -1
  160. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignments.d.ts +0 -15
  161. package/dist/components/entities/identity-provider-role/AIdentityProviderRoleAssignments.d.ts.map +0 -1
  162. package/dist/components/entities/permission-client/APermissionClientAssignments.d.ts +0 -15
  163. package/dist/components/entities/permission-client/APermissionClientAssignments.d.ts.map +0 -1
  164. package/dist/components/entities/permission-policy/APermissionPolicyAssignment.d.ts +0 -29
  165. package/dist/components/entities/permission-policy/APermissionPolicyAssignment.d.ts.map +0 -1
  166. package/dist/components/entities/permission-policy/APermissionPolicyAssignments.d.ts +0 -15
  167. package/dist/components/entities/permission-policy/APermissionPolicyAssignments.d.ts.map +0 -1
  168. package/dist/components/entities/permission-robot/APermissionRobotAssignments.d.ts +0 -15
  169. package/dist/components/entities/permission-robot/APermissionRobotAssignments.d.ts.map +0 -1
  170. package/dist/components/entities/permission-role/APermissionRoleAssignments.d.ts +0 -15
  171. package/dist/components/entities/permission-role/APermissionRoleAssignments.d.ts.map +0 -1
  172. package/dist/components/entities/permission-user/APermissionUserAssignments.d.ts +0 -15
  173. package/dist/components/entities/permission-user/APermissionUserAssignments.d.ts.map +0 -1
  174. package/dist/components/entities/policy/APolicyPicker.d.ts.map +0 -1
  175. package/dist/components/entities/robot-permission/ARobotPermissionAssignment.d.ts +0 -18
  176. package/dist/components/entities/robot-permission/ARobotPermissionAssignment.d.ts.map +0 -1
  177. package/dist/components/entities/robot-permission/ARobotPermissionAssignments.d.ts +0 -15
  178. package/dist/components/entities/robot-permission/ARobotPermissionAssignments.d.ts.map +0 -1
  179. package/dist/components/entities/robot-role/ARobotRoleAssignment.d.ts +0 -18
  180. package/dist/components/entities/robot-role/ARobotRoleAssignment.d.ts.map +0 -1
  181. package/dist/components/entities/robot-role/ARobotRoleAssignments.d.ts +0 -9
  182. package/dist/components/entities/robot-role/ARobotRoleAssignments.d.ts.map +0 -1
  183. package/dist/components/entities/role-client/ARoleClientAssignments.d.ts +0 -9
  184. package/dist/components/entities/role-client/ARoleClientAssignments.d.ts.map +0 -1
  185. package/dist/components/entities/role-permission/ARolePermissionAssignment.d.ts +0 -17
  186. package/dist/components/entities/role-permission/ARolePermissionAssignment.d.ts.map +0 -1
  187. package/dist/components/entities/role-permission/ARolePermissionAssignments.d.ts +0 -14
  188. package/dist/components/entities/role-permission/ARolePermissionAssignments.d.ts.map +0 -1
  189. package/dist/components/entities/role-robot/ARoleRobotAssignments.d.ts +0 -9
  190. package/dist/components/entities/role-robot/ARoleRobotAssignments.d.ts.map +0 -1
  191. package/dist/components/entities/role-user/ARoleUserAssignments.d.ts +0 -9
  192. package/dist/components/entities/role-user/ARoleUserAssignments.d.ts.map +0 -1
  193. package/dist/components/entities/scope-client/AScopeClientAssignments.d.ts +0 -15
  194. package/dist/components/entities/scope-client/AScopeClientAssignments.d.ts.map +0 -1
  195. package/dist/components/entities/user-permission/AUserPermissionAssignment.d.ts +0 -17
  196. package/dist/components/entities/user-permission/AUserPermissionAssignment.d.ts.map +0 -1
  197. package/dist/components/entities/user-permission/AUserPermissionAssignments.d.ts +0 -14
  198. package/dist/components/entities/user-permission/AUserPermissionAssignments.d.ts.map +0 -1
  199. package/dist/components/entities/user-role/AUserRoleAssignment.d.ts +0 -18
  200. package/dist/components/entities/user-role/AUserRoleAssignment.d.ts.map +0 -1
  201. package/dist/components/entities/user-role/AUserRoleAssignments.d.ts +0 -9
  202. package/dist/components/entities/user-role/AUserRoleAssignments.d.ts.map +0 -1
  203. package/dist/components/utility/translation/ATranslationDefault.d.ts +0 -16
  204. package/dist/components/utility/translation/ATranslationDefault.d.ts.map +0 -1
package/dist/index.mjs CHANGED
@@ -2,7 +2,7 @@ import installFormControl, { VCFormGroup, VCFormInput, VCFormInputCheckbox, VCFo
2
2
  import { installStoreManager } from "@vuecs/form-controls/core";
3
3
  import installPagination, { buildPagination } from "@vuecs/pagination";
4
4
  import { EntityDefaultEventName, EntityType, IdentityProviderPreset, IdentityProviderProtocol, REALM_MASTER_NAME, buildEntityChannelName, buildUserFakeEmail, getIdentityProviderProtocolForPreset, isUserFakeEmail } from "@authup/core-kit";
5
- import { Fragment, Suspense, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, h, hasInjectionContext, inject as inject$1, isReactive, isRef, mergeProps, nextTick, normalizeClass, onMounted, onUnmounted, openBlock, provide as provide$1, reactive, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, toDisplayString, toRaw, toRef, unref, watch, withCtx, withModifiers } from "vue";
5
+ import { Fragment, Suspense, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, getCurrentInstance, guardReactiveProps, h, hasInjectionContext, inject as inject$1, isReactive, isRef, mergeProps, nextTick, normalizeClass, normalizeProps, onMounted, onUnmounted, openBlock, provide as provide$1, reactive, ref, renderList, renderSlot, resolveComponent, resolveDynamicComponent, toDisplayString, toRaw, toRef, unref, watch, withCtx, withModifiers } from "vue";
6
6
  import { IVuelidate, getSeverity, install as install$1, useTranslationsForBaseValidation as useTranslationsForBaseValidation$1, useTranslationsForNestedValidations } from "@ilingo/vuelidate";
7
7
  import useVuelidate from "@vuelidate/core";
8
8
  import { email, helpers, maxLength, maxValue, minLength, minValue, numeric, required, sameAs, url } from "@vuelidate/validators";
@@ -77,8 +77,8 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
77
77
  };
78
78
  //#endregion
79
79
  //#region src/components/utility/form-input-list/AFormInputListItem.vue
80
- const _hoisted_1$14 = ["disabled"];
81
- function _sfc_render$17(_ctx, _cache, $props, $setup, $data, $options) {
80
+ const _hoisted_1$24 = ["disabled"];
81
+ function _sfc_render$53(_ctx, _cache, $props, $setup, $data, $options) {
82
82
  const _component_VCFormInput = resolveComponent("VCFormInput");
83
83
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
84
84
  const _component_IVuelidate = resolveComponent("IVuelidate");
@@ -97,7 +97,7 @@ function _sfc_render$17(_ctx, _cache, $props, $setup, $data, $options) {
97
97
  type: "button",
98
98
  class: "btn btn-xs btn-warning",
99
99
  onClick: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.handleDeleted && _ctx.handleDeleted(...args), ["prevent"]))
100
- }, [..._cache[2] || (_cache[2] = [createElementVNode("i", { class: "fa fa-minus" }, null, -1)])], 8, _hoisted_1$14)]),
100
+ }, [..._cache[2] || (_cache[2] = [createElementVNode("i", { class: "fa fa-minus" }, null, -1)])], 8, _hoisted_1$24)]),
101
101
  _: 1
102
102
  }, 8, ["modelValue", "onChange"])]),
103
103
  _: 1
@@ -105,7 +105,7 @@ function _sfc_render$17(_ctx, _cache, $props, $setup, $data, $options) {
105
105
  _: 1
106
106
  }, 8, ["validation"]);
107
107
  }
108
- var AFormInputListItem_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AFormInputListItem_vue_vue_type_script_lang_default, [["render", _sfc_render$17]]);
108
+ var AFormInputListItem_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AFormInputListItem_vue_vue_type_script_lang_default, [["render", _sfc_render$53]]);
109
109
  //#endregion
110
110
  //#region src/core/inject.ts
111
111
  function inject(key, instance) {
@@ -245,24 +245,24 @@ function createStore(context) {
245
245
  const accessToken = ref(null);
246
246
  const setAccessToken = (input) => {
247
247
  accessToken.value = input;
248
- context.dispatcher.emit(StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, input);
248
+ context.dispatcher.emit("accessTokenUpdated", input);
249
249
  };
250
250
  const accessTokenExpireDate = ref(null);
251
251
  const setAccessTokenExpireDate = (input) => {
252
252
  if (typeof input === "number" || typeof input === "string") accessTokenExpireDate.value = new Date(input);
253
253
  else accessTokenExpireDate.value = input;
254
- context.dispatcher.emit(StoreDispatcherEventName.ACCESS_TOKEN_EXPIRE_DATE_UPDATED, accessTokenExpireDate.value);
254
+ context.dispatcher.emit("accessTokenExpireDateUpdated", accessTokenExpireDate.value);
255
255
  };
256
256
  const refreshToken = ref(null);
257
257
  const setRefreshToken = (input) => {
258
258
  refreshToken.value = input;
259
- context.dispatcher.emit(StoreDispatcherEventName.REFRESH_TOKEN_UPDATED, input);
259
+ context.dispatcher.emit("refreshTokenUpdated", input);
260
260
  };
261
261
  const user = ref(null);
262
262
  const userId = computed(() => user.value ? user.value.id : null);
263
263
  const setUser = (input) => {
264
264
  user.value = input;
265
- context.dispatcher.emit(StoreDispatcherEventName.USER_UPDATED, input);
265
+ context.dispatcher.emit("userUpdated", input);
266
266
  };
267
267
  const realm = ref(null);
268
268
  const realmId = computed(() => realm.value ? realm.value.id : void 0);
@@ -273,14 +273,14 @@ function createStore(context) {
273
273
  });
274
274
  const setRealm = (input) => {
275
275
  realm.value = input;
276
- context.dispatcher.emit(StoreDispatcherEventName.REALM_UPDATED, input);
276
+ context.dispatcher.emit("realmUpdated", input);
277
277
  };
278
278
  const realmManagement = ref(null);
279
279
  const realmManagementId = computed(() => realmManagement.value ? realmManagement.value.id : realmId.value);
280
280
  const realmManagementName = computed(() => realmManagement.value ? realmManagement.value.name : realmName.value);
281
281
  const setRealmManagement = (input) => {
282
282
  realmManagement.value = input;
283
- context.dispatcher.emit(StoreDispatcherEventName.REALM_MANAGEMENT_UPDATED, input);
283
+ context.dispatcher.emit("realmManagementUpdated", input);
284
284
  };
285
285
  const permissionProvider = new PermissionMemoryProvider();
286
286
  const permissionEvaluator = new PermissionEvaluator({
@@ -356,7 +356,7 @@ function createStore(context) {
356
356
  }
357
357
  });
358
358
  const resolveInternal = async () => {
359
- context.dispatcher.emit(StoreDispatcherEventName.RESOLVING);
359
+ context.dispatcher.emit("resolving");
360
360
  try {
361
361
  if (!accessToken.value && refreshToken.value) await refreshSession();
362
362
  if (accessToken.value) {
@@ -370,12 +370,12 @@ function createStore(context) {
370
370
  await resolveUser();
371
371
  } else throw e;
372
372
  }
373
- context.dispatcher.emit(StoreDispatcherEventName.RESOLVED);
373
+ context.dispatcher.emit("resolved");
374
374
  };
375
375
  const resolve = createPromiseShareWrapperFn(resolveInternal);
376
376
  const loggedIn = computed(() => !!accessToken.value);
377
377
  const login = async (ctx) => {
378
- context.dispatcher.emit(StoreDispatcherEventName.LOGGING_IN);
378
+ context.dispatcher.emit("loggingIn");
379
379
  applyTokenGrantResponse(await client.token.createWithPassword({
380
380
  username: ctx.name,
381
381
  password: ctx.password,
@@ -383,7 +383,7 @@ function createStore(context) {
383
383
  }));
384
384
  await resolveToken();
385
385
  await resolveUser();
386
- context.dispatcher.emit(StoreDispatcherEventName.LOGGED_IN);
386
+ context.dispatcher.emit("loggedIn");
387
387
  };
388
388
  const exchangeAuthorizationCode = async (code) => {
389
389
  const response = await client.token.createWithAuthorizationCode({ code });
@@ -393,9 +393,9 @@ function createStore(context) {
393
393
  await resolveUser();
394
394
  };
395
395
  const logout = async () => {
396
- context.dispatcher.emit(StoreDispatcherEventName.LOGGING_OUT);
396
+ context.dispatcher.emit("loggingOut");
397
397
  await cleanup();
398
- context.dispatcher.emit(StoreDispatcherEventName.LOGGED_OUT);
398
+ context.dispatcher.emit("loggedOut");
399
399
  };
400
400
  return {
401
401
  cookiesRead,
@@ -503,29 +503,29 @@ function installStore(app, options = {}) {
503
503
  if (!store.accessTokenExpireDate) return;
504
504
  return Math.floor(Math.max(1e3, (/* @__PURE__ */ new Date(`${store.accessTokenExpireDate}`)).getTime() - Date.now()) / 1e3);
505
505
  };
506
- storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_EXPIRE_DATE_UPDATED, (input) => {
506
+ storeDispatcher.on("accessTokenExpireDateUpdated", (input) => {
507
507
  if (input) cookieSet(CookieName.ACCESS_TOKEN_EXPIRE_DATE, input, { maxAge: maxAgeFn() });
508
508
  else cookieUnset(CookieName.ACCESS_TOKEN_EXPIRE_DATE, {});
509
509
  });
510
- storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, (input) => {
510
+ storeDispatcher.on("accessTokenUpdated", (input) => {
511
511
  if (input) {
512
512
  const maxAge = maxAgeFn();
513
513
  cookieSet(CookieName.ACCESS_TOKEN, input, { maxAge });
514
514
  } else cookieUnset(CookieName.ACCESS_TOKEN, {});
515
515
  });
516
- storeDispatcher.on(StoreDispatcherEventName.REFRESH_TOKEN_UPDATED, (input) => {
516
+ storeDispatcher.on("refreshTokenUpdated", (input) => {
517
517
  if (input) cookieSet(CookieName.REFRESH_TOKEN, input, {});
518
518
  else cookieUnset(CookieName.REFRESH_TOKEN, {});
519
519
  });
520
- storeDispatcher.on(StoreDispatcherEventName.USER_UPDATED, (input) => {
520
+ storeDispatcher.on("userUpdated", (input) => {
521
521
  if (input) cookieSet(CookieName.USER, input, {});
522
522
  else cookieUnset(CookieName.USER, {});
523
523
  });
524
- storeDispatcher.on(StoreDispatcherEventName.REALM_UPDATED, (input) => {
524
+ storeDispatcher.on("realmUpdated", (input) => {
525
525
  if (input) cookieSet(CookieName.REALM, input, {});
526
526
  else cookieUnset(CookieName.REALM, {});
527
527
  });
528
- storeDispatcher.on(StoreDispatcherEventName.REALM_MANAGEMENT_UPDATED, (input) => {
528
+ storeDispatcher.on("realmManagementUpdated", (input) => {
529
529
  if (input) cookieSet(CookieName.REALM_MANAGEMENT, input, {});
530
530
  else cookieUnset(CookieName.REALM_MANAGEMENT, {});
531
531
  });
@@ -586,8 +586,8 @@ function installHTTPClientAuthenticationHook(app, options = {}) {
586
586
  hook.setTimer(expiresIn);
587
587
  }
588
588
  };
589
- storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_UPDATED, () => handleAccessTokenEvent());
590
- storeDispatcher.on(StoreDispatcherEventName.ACCESS_TOKEN_EXPIRE_DATE_UPDATED, () => handleAccessTokenExpireDateEvent());
589
+ storeDispatcher.on("accessTokenUpdated", () => handleAccessTokenEvent());
590
+ storeDispatcher.on("accessTokenExpireDateUpdated", () => handleAccessTokenExpireDateEvent());
591
591
  handleAccessTokenEvent();
592
592
  handleAccessTokenExpireDateEvent();
593
593
  provideHTTPClientAuthenticationHook(hook, app);
@@ -721,48 +721,48 @@ function useTranslationsForGroup(group, elements) {
721
721
  //#endregion
722
722
  //#region src/core/translator/de/client.ts
723
723
  const TranslatorTranslationClientGerman = {
724
- [TranslatorTranslationClientKey.NAME_HINT]: "Etwas, das Benutzer erkennen und vertrauen werden",
725
- [TranslatorTranslationClientKey.DESCRIPTION_HINT]: "Dies wird allen Benutzern dieser Anwendung angezeigt",
726
- [TranslatorTranslationClientKey.REDIRECT_URI_HINT]: "URI-Muster, zu dem ein Browser nach einem erfolgreichen Login weiterleiten kann",
727
- [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: "Ist vertraulich?",
728
- [TranslatorTranslationClientKey.IS_ACTIVE]: "Ist aktiv?",
729
- [TranslatorTranslationClientKey.HASH_SECRET]: "Geheimnis hashen?"
724
+ ["nameHint"]: "Etwas, das Benutzer erkennen und vertrauen werden",
725
+ ["descriptionHint"]: "Dies wird allen Benutzern dieser Anwendung angezeigt",
726
+ ["redirectURIHint"]: "URI-Muster, zu dem ein Browser nach einem erfolgreichen Login weiterleiten kann",
727
+ ["isConfidential"]: "Ist vertraulich?",
728
+ ["isActive"]: "Ist aktiv?",
729
+ ["hashSecret"]: "Geheimnis hashen?"
730
730
  };
731
731
  //#endregion
732
732
  //#region src/core/translator/de/default.ts
733
733
  const TranslatorTranslationDefaultGerman = {
734
- [TranslatorTranslationDefaultKey.ADD]: "hinzufügen",
735
- [TranslatorTranslationDefaultKey.CREATE]: "erstellen",
736
- [TranslatorTranslationDefaultKey.DELETE]: "löschen",
737
- [TranslatorTranslationDefaultKey.GENERATE]: "generieren",
738
- [TranslatorTranslationDefaultKey.UPDATE]: "aktualisieren",
739
- [TranslatorTranslationDefaultKey.ACTIVE]: "aktiv",
740
- [TranslatorTranslationDefaultKey.INACTIVE]: "inaktiv",
741
- [TranslatorTranslationDefaultKey.LOCKED]: "gesperrt",
742
- [TranslatorTranslationDefaultKey.NOT_LOCKED]: "nicht gesperrt",
743
- [TranslatorTranslationDefaultKey.VALUE_IS_REGEX]: "Wert ist regex pattern?",
744
- [TranslatorTranslationDefaultKey.CLIENT]: "Client",
745
- [TranslatorTranslationDefaultKey.CLIENTS]: "Clients",
746
- [TranslatorTranslationDefaultKey.CLIENT_SCOPES]: "Client-Bereiche",
747
- [TranslatorTranslationDefaultKey.DISPLAY_NAME]: "Anzeigename",
748
- [TranslatorTranslationDefaultKey.EMAIL]: "E-Mail",
749
- [TranslatorTranslationDefaultKey.EXTERNAL_ID]: "externe ID",
750
- [TranslatorTranslationDefaultKey.HASHED]: "gehasht",
751
- [TranslatorTranslationDefaultKey.OVERVIEW]: "Überblick",
752
- [TranslatorTranslationDefaultKey.IDENTITY_PROVIDERS]: "Identitätsanbieter",
753
- [TranslatorTranslationDefaultKey.NAME]: "Name",
754
- [TranslatorTranslationDefaultKey.DECISION_STRATEGY]: "Entscheidungsstrategie",
755
- [TranslatorTranslationDefaultKey.DESCRIPTION]: "Beschreibung",
756
- [TranslatorTranslationDefaultKey.PERMISSIONS]: "Berechtigungen",
757
- [TranslatorTranslationDefaultKey.POLICY]: "Richtlinie",
758
- [TranslatorTranslationDefaultKey.POLICIES]: "Richtlinien",
759
- [TranslatorTranslationDefaultKey.REALM]: "Organisation",
760
- [TranslatorTranslationDefaultKey.REALMS]: "Organisationen",
761
- [TranslatorTranslationDefaultKey.ROLES]: "Rollen",
762
- [TranslatorTranslationDefaultKey.SCOPES]: "Bereiche",
763
- [TranslatorTranslationDefaultKey.SECRET]: "Geheimnis",
764
- [TranslatorTranslationDefaultKey.REDIRECT_URIS]: "Weiterleitungs-URIs",
765
- [TranslatorTranslationDefaultKey.USERS]: "Benutzer"
734
+ ["add"]: "hinzufügen",
735
+ ["create"]: "erstellen",
736
+ ["delete"]: "löschen",
737
+ ["generate"]: "generieren",
738
+ ["update"]: "aktualisieren",
739
+ ["active"]: "aktiv",
740
+ ["inactive"]: "inaktiv",
741
+ ["locked"]: "gesperrt",
742
+ ["notLocked"]: "nicht gesperrt",
743
+ ["valueIsRegex"]: "Wert ist regex pattern?",
744
+ ["client"]: "Client",
745
+ ["clients"]: "Clients",
746
+ ["clientScopes"]: "Client-Bereiche",
747
+ ["displayName"]: "Anzeigename",
748
+ ["email"]: "E-Mail",
749
+ ["externalId"]: "externe ID",
750
+ ["hashed"]: "gehasht",
751
+ ["overview"]: "Überblick",
752
+ ["identityProviders"]: "Identitätsanbieter",
753
+ ["name"]: "Name",
754
+ ["decisionStrategy"]: "Entscheidungsstrategie",
755
+ ["description"]: "Beschreibung",
756
+ ["permissions"]: "Berechtigungen",
757
+ ["policy"]: "Richtlinie",
758
+ ["policies"]: "Richtlinien",
759
+ ["realm"]: "Organisation",
760
+ ["realms"]: "Organisationen",
761
+ ["roles"]: "Rollen",
762
+ ["scopes"]: "Bereiche",
763
+ ["secret"]: "Geheimnis",
764
+ ["redirectUris"]: "Weiterleitungs-URIs",
765
+ ["users"]: "Benutzer"
766
766
  };
767
767
  //#endregion
768
768
  //#region src/core/vuelidate.ts
@@ -772,8 +772,8 @@ let VuelidateCustomRuleKey = /* @__PURE__ */ function(VuelidateCustomRuleKey) {
772
772
  return VuelidateCustomRuleKey;
773
773
  }({});
774
774
  const VuelidateCustomRule = {
775
- [VuelidateCustomRuleKey.ALPHA_NUM_HYPHEN_UNDERSCORE]: helpers.regex(/^[a-z0-9-_]*$/),
776
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: helpers.regex(/^[a-zA-Z0-9-_.]*$/)
775
+ ["alphaNumHyphenUnderscore"]: helpers.regex(/^[a-z0-9-_]*$/),
776
+ ["alphaUpperNumHyphenUnderscoreDot"]: helpers.regex(/^[a-zA-Z0-9-_.]*$/)
777
777
  };
778
778
  function getVuelidateSeverity(vuelidate) {
779
779
  return getSeverity(vuelidate);
@@ -789,83 +789,83 @@ function extractVuelidateResultsFromChild(vuelidate, child, keys) {
789
789
  //#endregion
790
790
  //#region src/core/translator/de/vuelidate.ts
791
791
  const TranslatorTranslationVuelidateGerman = {
792
- [VuelidateCustomRuleKey.ALPHA_NUM_HYPHEN_UNDERSCORE]: "Der Eingabewert darf nur aus folgenden Zeichen bestehen: [0-9a-z-_]+",
793
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: "Der Eingabewert darf nur aus folgenden Zeichen bestehen: [0-9a-zA-Z-_.]+"
792
+ ["alphaNumHyphenUnderscore"]: "Der Eingabewert darf nur aus folgenden Zeichen bestehen: [0-9a-z-_]+",
793
+ ["alphaUpperNumHyphenUnderscoreDot"]: "Der Eingabewert darf nur aus folgenden Zeichen bestehen: [0-9a-zA-Z-_.]+"
794
794
  };
795
795
  //#endregion
796
796
  //#region src/core/translator/de/vuecs.ts
797
- const TranslatorTranslationVuecsGerman = { [TranslatorTranslationVuecsKey.NO_MORE]: "Keine weiteren {{name}} verfügbar" };
797
+ const TranslatorTranslationVuecsGerman = { ["noMore"]: "Keine weiteren {{name}} verfügbar" };
798
798
  //#endregion
799
799
  //#region src/core/translator/en/client.ts
800
800
  const TranslatorTranslationClientEnglish = {
801
- [TranslatorTranslationClientKey.NAME_HINT]: "Something users will recognize and trust",
802
- [TranslatorTranslationClientKey.DESCRIPTION_HINT]: "Displayed to all users of this application",
803
- [TranslatorTranslationClientKey.REDIRECT_URI_HINT]: "URI pattern a browser can redirect to after a successful login",
804
- [TranslatorTranslationClientKey.IS_CONFIDENTIAL]: "Is confidential?",
805
- [TranslatorTranslationClientKey.IS_ACTIVE]: "Is active?",
806
- [TranslatorTranslationClientKey.HASH_SECRET]: "Hash secret?"
801
+ ["nameHint"]: "Something users will recognize and trust",
802
+ ["descriptionHint"]: "Displayed to all users of this application",
803
+ ["redirectURIHint"]: "URI pattern a browser can redirect to after a successful login",
804
+ ["isConfidential"]: "Is confidential?",
805
+ ["isActive"]: "Is active?",
806
+ ["hashSecret"]: "Hash secret?"
807
807
  };
808
808
  //#endregion
809
809
  //#region src/core/translator/en/default.ts
810
810
  const TranslatorTranslationDefaultEnglish = {
811
- [TranslatorTranslationDefaultKey.ADD]: "add",
812
- [TranslatorTranslationDefaultKey.CREATE]: "create",
813
- [TranslatorTranslationDefaultKey.DELETE]: "delete",
814
- [TranslatorTranslationDefaultKey.GENERATE]: "generate",
815
- [TranslatorTranslationDefaultKey.UPDATE]: "update",
816
- [TranslatorTranslationDefaultKey.ACTIVE]: "active",
817
- [TranslatorTranslationDefaultKey.INACTIVE]: "inactive",
818
- [TranslatorTranslationDefaultKey.LOCKED]: "locked",
819
- [TranslatorTranslationDefaultKey.NOT_LOCKED]: "not locked",
820
- [TranslatorTranslationDefaultKey.VALUE_IS_REGEX]: "Value is regex pattern?",
821
- [TranslatorTranslationDefaultKey.CLIENT]: "update",
822
- [TranslatorTranslationDefaultKey.CLIENTS]: "clients",
823
- [TranslatorTranslationDefaultKey.CLIENT_SCOPES]: "client scopes",
824
- [TranslatorTranslationDefaultKey.DISPLAY_NAME]: "display name",
825
- [TranslatorTranslationDefaultKey.EMAIL]: "email",
826
- [TranslatorTranslationDefaultKey.EXTERNAL_ID]: "external id",
827
- [TranslatorTranslationDefaultKey.HASHED]: "hashed",
828
- [TranslatorTranslationDefaultKey.OVERVIEW]: "overview",
829
- [TranslatorTranslationDefaultKey.IDENTITY_PROVIDERS]: "identity providers",
830
- [TranslatorTranslationDefaultKey.NAME]: "name",
831
- [TranslatorTranslationDefaultKey.DECISION_STRATEGY]: "decision strategy",
832
- [TranslatorTranslationDefaultKey.DESCRIPTION]: "description",
833
- [TranslatorTranslationDefaultKey.POLICY]: "policy",
834
- [TranslatorTranslationDefaultKey.POLICIES]: "policies",
835
- [TranslatorTranslationDefaultKey.PERMISSIONS]: "permissions",
836
- [TranslatorTranslationDefaultKey.REALM]: "realm",
837
- [TranslatorTranslationDefaultKey.REALMS]: "realms",
838
- [TranslatorTranslationDefaultKey.ROLES]: "roles",
839
- [TranslatorTranslationDefaultKey.SCOPES]: "scopes",
840
- [TranslatorTranslationDefaultKey.SECRET]: "secret",
841
- [TranslatorTranslationDefaultKey.REDIRECT_URIS]: "redirect uri(s)",
842
- [TranslatorTranslationDefaultKey.USERS]: "users"
811
+ ["add"]: "add",
812
+ ["create"]: "create",
813
+ ["delete"]: "delete",
814
+ ["generate"]: "generate",
815
+ ["update"]: "update",
816
+ ["active"]: "active",
817
+ ["inactive"]: "inactive",
818
+ ["locked"]: "locked",
819
+ ["notLocked"]: "not locked",
820
+ ["valueIsRegex"]: "Value is regex pattern?",
821
+ ["client"]: "update",
822
+ ["clients"]: "clients",
823
+ ["clientScopes"]: "client scopes",
824
+ ["displayName"]: "display name",
825
+ ["email"]: "email",
826
+ ["externalId"]: "external id",
827
+ ["hashed"]: "hashed",
828
+ ["overview"]: "overview",
829
+ ["identityProviders"]: "identity providers",
830
+ ["name"]: "name",
831
+ ["decisionStrategy"]: "decision strategy",
832
+ ["description"]: "description",
833
+ ["policy"]: "policy",
834
+ ["policies"]: "policies",
835
+ ["permissions"]: "permissions",
836
+ ["realm"]: "realm",
837
+ ["realms"]: "realms",
838
+ ["roles"]: "roles",
839
+ ["scopes"]: "scopes",
840
+ ["secret"]: "secret",
841
+ ["redirectUris"]: "redirect uri(s)",
842
+ ["users"]: "users"
843
843
  };
844
844
  //#endregion
845
845
  //#region src/core/translator/en/vuelidate.ts
846
846
  const TranslatorTranslationVuelidateEnglish = {
847
- [VuelidateCustomRuleKey.ALPHA_NUM_HYPHEN_UNDERSCORE]: "The input value is only allowed to consist of the following characters: [0-9a-z-_]+",
848
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: "The input value is only allowed to consist of the following characters: [0-9a-zA-Z-_.]+"
847
+ ["alphaNumHyphenUnderscore"]: "The input value is only allowed to consist of the following characters: [0-9a-z-_]+",
848
+ ["alphaUpperNumHyphenUnderscoreDot"]: "The input value is only allowed to consist of the following characters: [0-9a-zA-Z-_.]+"
849
849
  };
850
850
  //#endregion
851
851
  //#region src/core/translator/en/vuecs.ts
852
- const TranslatorTranslationVuecsEnglish = { [TranslatorTranslationVuecsKey.NO_MORE]: "No more {{name}} available" };
852
+ const TranslatorTranslationVuecsEnglish = { ["noMore"]: "No more {{name}} available" };
853
853
  //#endregion
854
854
  //#region src/core/translator/install.ts
855
855
  function installTranslator(app, options = {}) {
856
856
  install$1(app, {
857
857
  store: new MemoryStore({ data: {
858
858
  de: {
859
- [TranslatorTranslationGroup.CLIENT]: TranslatorTranslationClientGerman,
860
- [TranslatorTranslationGroup.DEFAULT]: TranslatorTranslationDefaultGerman,
861
- [TranslatorTranslationGroup.VUECS]: TranslatorTranslationVuecsGerman,
862
- [TranslatorTranslationGroup.VUELIDATE]: TranslatorTranslationVuelidateGerman
859
+ ["authupClient"]: TranslatorTranslationClientGerman,
860
+ ["default"]: TranslatorTranslationDefaultGerman,
861
+ ["vuecs"]: TranslatorTranslationVuecsGerman,
862
+ ["vuelidate"]: TranslatorTranslationVuelidateGerman
863
863
  },
864
864
  en: {
865
- [TranslatorTranslationGroup.CLIENT]: TranslatorTranslationClientEnglish,
866
- [TranslatorTranslationGroup.DEFAULT]: TranslatorTranslationDefaultEnglish,
867
- [TranslatorTranslationGroup.VUECS]: TranslatorTranslationVuecsEnglish,
868
- [TranslatorTranslationGroup.VUELIDATE]: TranslatorTranslationVuelidateEnglish
865
+ ["authupClient"]: TranslatorTranslationClientEnglish,
866
+ ["default"]: TranslatorTranslationDefaultEnglish,
867
+ ["vuecs"]: TranslatorTranslationVuecsEnglish,
868
+ ["vuelidate"]: TranslatorTranslationVuelidateEnglish
869
869
  }
870
870
  } }),
871
871
  locale: options.locale
@@ -875,13 +875,13 @@ function installTranslator(app, options = {}) {
875
875
  //#region src/core/form/submit.ts
876
876
  function createFormSubmitTranslations() {
877
877
  const updateText = useTranslation({
878
- group: TranslatorTranslationGroup.DEFAULT,
879
- key: TranslatorTranslationDefaultKey.UPDATE
878
+ group: "default",
879
+ key: "update"
880
880
  });
881
881
  return {
882
882
  createText: useTranslation({
883
- group: TranslatorTranslationGroup.DEFAULT,
884
- key: TranslatorTranslationDefaultKey.CREATE
883
+ group: "default",
884
+ key: "create"
885
885
  }),
886
886
  updateText
887
887
  };
@@ -1023,45 +1023,52 @@ function normalizeSlot(name, scope = {}, $slots = {}) {
1023
1023
  return [];
1024
1024
  }
1025
1025
  //#endregion
1026
- //#region src/components/utility/translation/ATranslation.ts
1027
- const ATranslation = defineComponent({
1028
- props: {
1029
- group: {
1030
- type: String,
1031
- required: true
1026
+ //#region src/components/utility/translation/ATranslationDefault.vue?vue&type=script&lang.ts
1027
+ var ATranslationDefault_vue_vue_type_script_lang_default = defineComponent({
1028
+ components: { ATranslation: defineComponent({
1029
+ props: {
1030
+ group: {
1031
+ type: String,
1032
+ required: true
1033
+ },
1034
+ name: {
1035
+ type: String,
1036
+ required: true
1037
+ }
1032
1038
  },
1033
- name: {
1034
- type: String,
1035
- required: true
1039
+ setup(props, { slots }) {
1040
+ const translation = useTranslation({
1041
+ group: props.group,
1042
+ key: props.name
1043
+ });
1044
+ return () => {
1045
+ if (hasNormalizedSlot(SlotName.DEFAULT, slots)) return normalizeSlot(SlotName.DEFAULT, { data: translation.value }, slots);
1046
+ return [translation.value];
1047
+ };
1036
1048
  }
1037
- },
1038
- setup(props, { slots }) {
1039
- const translation = useTranslation({
1040
- group: props.group,
1041
- key: props.name
1042
- });
1043
- return () => {
1044
- if (hasNormalizedSlot(SlotName.DEFAULT, slots)) return normalizeSlot(SlotName.DEFAULT, { data: translation.value }, slots);
1045
- return [translation.value];
1046
- };
1049
+ }) },
1050
+ props: { name: {
1051
+ type: String,
1052
+ required: true
1053
+ } },
1054
+ setup() {
1055
+ return { TranslatorTranslationGroup };
1047
1056
  }
1048
1057
  });
1049
1058
  //#endregion
1059
+ //#region src/components/utility/translation/ATranslationDefault.vue
1060
+ function _sfc_render$52(_ctx, _cache, $props, $setup, $data, $options) {
1061
+ const _component_ATranslation = resolveComponent("ATranslation");
1062
+ return openBlock(), createBlock(_component_ATranslation, {
1063
+ group: _ctx.TranslatorTranslationGroup.DEFAULT,
1064
+ name: _ctx.name
1065
+ }, null, 8, ["group", "name"]);
1066
+ }
1067
+ //#endregion
1050
1068
  //#region src/components/utility/form-input-list/AFormInputList.vue?vue&type=script&lang.ts
1051
1069
  var AFormInputList_vue_vue_type_script_lang_default = defineComponent({
1052
1070
  components: {
1053
- ATranslationDefault: defineComponent({
1054
- props: { name: {
1055
- type: String,
1056
- required: true
1057
- } },
1058
- setup(props) {
1059
- return () => h(ATranslation, {
1060
- group: TranslatorTranslationGroup.DEFAULT,
1061
- name: props.name
1062
- });
1063
- }
1064
- }),
1071
+ ATranslationDefault: /* @__PURE__ */ _plugin_vue_export_helper_default(ATranslationDefault_vue_vue_type_script_lang_default, [["render", _sfc_render$52]]),
1065
1072
  AFormInputListItem: AFormInputListItem_default
1066
1073
  },
1067
1074
  props: {
@@ -1123,16 +1130,16 @@ var AFormInputList_vue_vue_type_script_lang_default = defineComponent({
1123
1130
  });
1124
1131
  //#endregion
1125
1132
  //#region src/components/utility/form-input-list/AFormInputList.vue
1126
- const _hoisted_1$13 = { class: "d-flex flex-column gap-2" };
1127
- const _hoisted_2$11 = { class: "d-flex flex-row" };
1128
- const _hoisted_3$9 = { class: "align-self-end" };
1129
- const _hoisted_4$7 = { class: "ms-auto" };
1130
- const _hoisted_5$4 = ["disabled"];
1131
- const _hoisted_6$3 = { class: "d-flex flex-column gap-1" };
1132
- function _sfc_render$16(_ctx, _cache, $props, $setup, $data, $options) {
1133
+ const _hoisted_1$23 = { class: "d-flex flex-column gap-2" };
1134
+ const _hoisted_2$14 = { class: "d-flex flex-row" };
1135
+ const _hoisted_3$12 = { class: "align-self-end" };
1136
+ const _hoisted_4$10 = { class: "ms-auto" };
1137
+ const _hoisted_5$7 = ["disabled"];
1138
+ const _hoisted_6$6 = { class: "d-flex flex-column gap-1" };
1139
+ function _sfc_render$51(_ctx, _cache, $props, $setup, $data, $options) {
1133
1140
  const _component_ATranslationDefault = resolveComponent("ATranslationDefault");
1134
1141
  const _component_AFormInputListItem = resolveComponent("AFormInputListItem");
1135
- return openBlock(), createElementBlock("div", _hoisted_1$13, [createElementVNode("div", _hoisted_2$11, [createElementVNode("div", _hoisted_3$9, [renderSlot(_ctx.$slots, "label", {}, () => [_cache[1] || (_cache[1] = createTextVNode(" Names ", -1))])]), createElementVNode("div", _hoisted_4$7, [createElementVNode("button", {
1142
+ return openBlock(), createElementBlock("div", _hoisted_1$23, [createElementVNode("div", _hoisted_2$14, [createElementVNode("div", _hoisted_3$12, [renderSlot(_ctx.$slots, "label", {}, () => [_cache[1] || (_cache[1] = createTextVNode(" Names ", -1))])]), createElementVNode("div", _hoisted_4$10, [createElementVNode("button", {
1136
1143
  class: "btn btn-xs btn-primary",
1137
1144
  type: "button",
1138
1145
  disabled: !_ctx.canAdd,
@@ -1141,7 +1148,7 @@ function _sfc_render$16(_ctx, _cache, $props, $setup, $data, $options) {
1141
1148
  _cache[2] || (_cache[2] = createElementVNode("i", { class: "fa fa-plus" }, null, -1)),
1142
1149
  _cache[3] || (_cache[3] = createTextVNode()),
1143
1150
  createVNode(_component_ATranslationDefault, { name: "add" })
1144
- ], 8, _hoisted_5$4)])]), createElementVNode("div", _hoisted_6$3, [_ctx.items.length === 0 ? renderSlot(_ctx.$slots, "noItems", { key: 0 }, () => [_cache[4] || (_cache[4] = createElementVNode("div", { class: "alert alert-sm alert-info" }, " The form list has no items yet ", -1))]) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
1151
+ ], 8, _hoisted_5$7)])]), createElementVNode("div", _hoisted_6$6, [_ctx.items.length === 0 ? renderSlot(_ctx.$slots, "noItems", { key: 0 }, () => [_cache[4] || (_cache[4] = createElementVNode("div", { class: "alert alert-sm alert-info" }, " The form list has no items yet ", -1))]) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
1145
1152
  return renderSlot(_ctx.$slots, "default", {
1146
1153
  key: item.id,
1147
1154
  item,
@@ -1165,7 +1172,7 @@ function _sfc_render$16(_ctx, _cache, $props, $setup, $data, $options) {
1165
1172
  ]))]);
1166
1173
  }), 128))])]);
1167
1174
  }
1168
- var AFormInputList_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AFormInputList_vue_vue_type_script_lang_default, [["render", _sfc_render$16]]);
1175
+ var AFormInputList_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AFormInputList_vue_vue_type_script_lang_default, [["render", _sfc_render$51]]);
1169
1176
  //#endregion
1170
1177
  //#region src/components/utility/pagination/module.ts
1171
1178
  function buildPagination$1(ctx) {
@@ -1789,6 +1796,18 @@ function create(ctx) {
1789
1796
  throw error.value;
1790
1797
  }
1791
1798
  };
1799
+ if (ctx.query) {
1800
+ const queryFn = ctx.query;
1801
+ let initialized = false;
1802
+ watch(() => JSON.stringify(queryFn()), () => {
1803
+ if (!initialized) {
1804
+ initialized = true;
1805
+ return;
1806
+ }
1807
+ entity.value = void 0;
1808
+ resolve({ query: queryFn() });
1809
+ }, { immediate: true });
1810
+ }
1792
1811
  const manager = {
1793
1812
  resolve,
1794
1813
  resolveOrFail,
@@ -1822,6 +1841,52 @@ function defineEntityManager(ctx) {
1822
1841
  return create(ctx);
1823
1842
  }
1824
1843
  //#endregion
1844
+ //#region src/components/utility/toggle-button/AToggleButton.vue?vue&type=script&lang.ts
1845
+ var AToggleButton_vue_vue_type_script_lang_default = defineComponent({
1846
+ props: {
1847
+ value: {
1848
+ type: Boolean,
1849
+ required: true
1850
+ },
1851
+ isBusy: {
1852
+ type: Boolean,
1853
+ required: true
1854
+ }
1855
+ },
1856
+ emits: ["changed"],
1857
+ setup(props, { emit }) {
1858
+ const handleClick = (e) => {
1859
+ e.preventDefault();
1860
+ emit("changed", !props.value);
1861
+ };
1862
+ return { handleClick };
1863
+ }
1864
+ });
1865
+ //#endregion
1866
+ //#region src/components/utility/toggle-button/AToggleButton.vue
1867
+ const _hoisted_1$22 = ["aria-label", "disabled"];
1868
+ function _sfc_render$50(_ctx, _cache, $props, $setup, $data, $options) {
1869
+ return openBlock(), createElementBlock("button", {
1870
+ type: "button",
1871
+ "aria-label": _ctx.isBusy ? "Processing" : _ctx.value ? "Remove" : "Add",
1872
+ class: normalizeClass(["btn btn-xs", {
1873
+ "btn-dark": _ctx.isBusy,
1874
+ "btn-success": !_ctx.isBusy && !_ctx.value,
1875
+ "btn-danger": !_ctx.isBusy && _ctx.value
1876
+ }]),
1877
+ disabled: _ctx.isBusy,
1878
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleClick && _ctx.handleClick(...args))
1879
+ }, [createElementVNode("i", {
1880
+ "aria-hidden": "true",
1881
+ class: normalizeClass(["fa", {
1882
+ "fa-question": _ctx.isBusy,
1883
+ "fa-plus": !_ctx.isBusy && !_ctx.value,
1884
+ "fa-minus": !_ctx.isBusy && _ctx.value
1885
+ }])
1886
+ }, null, 2)], 10, _hoisted_1$22);
1887
+ }
1888
+ var AToggleButton_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AToggleButton_vue_vue_type_script_lang_default, [["render", _sfc_render$50]]);
1889
+ //#endregion
1825
1890
  //#region src/components/utility/toggle-button/module.ts
1826
1891
  function renderToggleButton(options) {
1827
1892
  return h("button", {
@@ -1842,13 +1907,6 @@ function renderToggleButton(options) {
1842
1907
  }] })]);
1843
1908
  }
1844
1909
  //#endregion
1845
- //#region src/components/utility/search/constants.ts
1846
- let ListSearchSlotName = /* @__PURE__ */ function(ListSearchSlotName) {
1847
- ListSearchSlotName["DEFAULT"] = "default";
1848
- ListSearchSlotName["ICON"] = "icon";
1849
- return ListSearchSlotName;
1850
- }({});
1851
- //#endregion
1852
1910
  //#region src/components/utility/search/module.ts
1853
1911
  function debounce(func, timeout = 200) {
1854
1912
  let timer;
@@ -1863,7 +1921,7 @@ function buildListSearch(ctx) {
1863
1921
  ctx.icon = ctx.icon ?? true;
1864
1922
  ctx.iconClass = ctx.iconClass || "fa fa-search";
1865
1923
  ctx.iconPosition = ctx.iconPosition ?? "start";
1866
- if (hasNormalizedSlot(ListSearchSlotName.DEFAULT, ctx.slots)) return normalizeSlot(ListSearchSlotName.DEFAULT, {
1924
+ if (hasNormalizedSlot("default", ctx.slots)) return normalizeSlot("default", {
1867
1925
  load: ctx.load,
1868
1926
  busy: ctx.busy,
1869
1927
  icon: ctx.icon,
@@ -1871,7 +1929,7 @@ function buildListSearch(ctx) {
1871
1929
  iconPosition: ctx.iconPosition
1872
1930
  }, ctx.slots);
1873
1931
  let iconContent;
1874
- if (hasNormalizedSlot(ListSearchSlotName.ICON)) iconContent = normalizeSlot(ListSearchSlotName.ICON, {}, ctx.slots);
1932
+ if (hasNormalizedSlot("icon")) iconContent = normalizeSlot("icon", {}, ctx.slots);
1875
1933
  const options = {};
1876
1934
  if (ctx.icon) if (ctx.iconPosition === "start") {
1877
1935
  options.groupPrepend = true;
@@ -1995,12 +2053,6 @@ function defineEntityPicker({ props, setup, component }) {
1995
2053
  }
1996
2054
  //#endregion
1997
2055
  //#region src/components/utility/entity/AEntityDelete.ts
1998
- var ElementType = /* @__PURE__ */ function(ElementType) {
1999
- ElementType["BUTTON"] = "button";
2000
- ElementType["LINK"] = "link";
2001
- ElementType["DROP_DOWN_ITEM"] = "dropDownItem";
2002
- return ElementType;
2003
- }(ElementType || {});
2004
2056
  const AEntityDelete = defineComponent({
2005
2057
  props: {
2006
2058
  elementIcon: {
@@ -2013,7 +2065,7 @@ const AEntityDelete = defineComponent({
2013
2065
  },
2014
2066
  elementType: {
2015
2067
  type: String,
2016
- default: ElementType.BUTTON
2068
+ default: "button"
2017
2069
  },
2018
2070
  entityId: {
2019
2071
  type: String,
@@ -2046,17 +2098,17 @@ const AEntityDelete = defineComponent({
2046
2098
  }
2047
2099
  });
2048
2100
  const translation = useTranslation({
2049
- group: TranslatorTranslationGroup.DEFAULT,
2050
- key: TranslatorTranslationDefaultKey.DELETE
2101
+ group: "default",
2102
+ key: "delete"
2051
2103
  });
2052
2104
  const render = () => {
2053
2105
  let tag = "button";
2054
2106
  const data = {};
2055
2107
  switch (props.elementType) {
2056
- case ElementType.LINK:
2108
+ case "link":
2057
2109
  tag = "a";
2058
2110
  break;
2059
- case ElementType.DROP_DOWN_ITEM:
2111
+ case "dropDownItem":
2060
2112
  if (instance && typeof instance.appContext.app.component("BDropdownItem") !== "undefined") tag = resolveDynamicComponent("BDropdownItem");
2061
2113
  break;
2062
2114
  }
@@ -2076,20 +2128,13 @@ const AEntityDelete = defineComponent({
2076
2128
  }
2077
2129
  });
2078
2130
  //#endregion
2079
- //#region src/components/utility/title/constants.ts
2080
- let TitleSlotName = /* @__PURE__ */ function(TitleSlotName) {
2081
- TitleSlotName["DEFAULT"] = "default";
2082
- TitleSlotName["ICON"] = "icon";
2083
- return TitleSlotName;
2084
- }({});
2085
- //#endregion
2086
2131
  //#region src/components/utility/title/module.ts
2087
2132
  function buildTitle(ctx) {
2088
2133
  ctx.tag = ctx.tag || "h6";
2089
2134
  ctx.icon = ctx.icon ?? true;
2090
2135
  ctx.iconClass = ctx.iconClass || "fa-solid fa-list";
2091
2136
  ctx.iconPosition = ctx.iconPosition ?? "start";
2092
- if (hasNormalizedSlot(TitleSlotName.DEFAULT, ctx.slots)) return normalizeSlot(TitleSlotName.DEFAULT, {
2137
+ if (hasNormalizedSlot("default", ctx.slots)) return normalizeSlot("default", {
2093
2138
  tag: ctx.tag,
2094
2139
  icon: ctx.icon,
2095
2140
  iconClass: ctx.iconClass,
@@ -2098,7 +2143,7 @@ function buildTitle(ctx) {
2098
2143
  let icon;
2099
2144
  if (ctx.icon) {
2100
2145
  let iconContent;
2101
- if (hasNormalizedSlot(TitleSlotName.ICON)) iconContent = normalizeSlot(TitleSlotName.ICON, {}, ctx.slots);
2146
+ if (hasNormalizedSlot("icon")) iconContent = normalizeSlot("icon", {}, ctx.slots);
2102
2147
  if (iconContent) icon = iconContent;
2103
2148
  else icon = h("i", { class: [ctx.iconClass, "pe-1"] });
2104
2149
  }
@@ -2123,8 +2168,8 @@ const ATitle = defineComponent({
2123
2168
  slots: Object,
2124
2169
  setup(props, { slots }) {
2125
2170
  const translation = useTranslation({
2126
- group: TranslatorTranslationGroup.DEFAULT,
2127
- key: TranslatorTranslationDefaultKey.OVERVIEW
2171
+ group: "default",
2172
+ key: "overview"
2128
2173
  });
2129
2174
  return () => buildTitle({
2130
2175
  slots,
@@ -2290,7 +2335,7 @@ const ARealmForm = defineComponent({
2290
2335
  required,
2291
2336
  minLength: minLength(3),
2292
2337
  maxLength: maxLength(128),
2293
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]
2338
+ ["alphaUpperNumHyphenUnderscoreDot"]: VuelidateCustomRule["alphaUpperNumHyphenUnderscoreDot"]
2294
2339
  },
2295
2340
  display_name: {
2296
2341
  minLength: minLength(3),
@@ -2329,12 +2374,12 @@ const ARealmForm = defineComponent({
2329
2374
  };
2330
2375
  const translationsValidation = useTranslationsForNestedValidation($v.value);
2331
2376
  const translationsSubmit = createFormSubmitTranslations();
2332
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
2333
- { key: TranslatorTranslationDefaultKey.GENERATE },
2334
- { key: TranslatorTranslationDefaultKey.NAME },
2335
- { key: TranslatorTranslationDefaultKey.DISPLAY_NAME },
2336
- { key: TranslatorTranslationDefaultKey.DESCRIPTION },
2337
- { key: TranslatorTranslationDefaultKey.REALM }
2377
+ const translationsDefault = useTranslationsForGroup("default", [
2378
+ { key: "generate" },
2379
+ { key: "name" },
2380
+ { key: "displayName" },
2381
+ { key: "description" },
2382
+ { key: "realm" }
2338
2383
  ]);
2339
2384
  const render = () => {
2340
2385
  const children = [];
@@ -2342,7 +2387,7 @@ const ARealmForm = defineComponent({
2342
2387
  validationMessages: translationsValidation.name.value,
2343
2388
  validationSeverity: getVuelidateSeverity($v.value.name),
2344
2389
  label: true,
2345
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
2390
+ labelContent: translationsDefault["name"].value,
2346
2391
  content: buildFormInput({
2347
2392
  value: $v.value.name.$model,
2348
2393
  onChange(input) {
@@ -2363,13 +2408,13 @@ const ARealmForm = defineComponent({
2363
2408
  }, [
2364
2409
  h("i", { class: "fa fa-wrench" }),
2365
2410
  " ",
2366
- translationsDefault[TranslatorTranslationDefaultKey.GENERATE].value
2411
+ translationsDefault["generate"].value
2367
2412
  ])])]);
2368
2413
  children.push(buildFormGroup({
2369
2414
  validationMessages: translationsValidation.display_name.value,
2370
2415
  validationSeverity: getVuelidateSeverity($v.value.display_name),
2371
2416
  label: true,
2372
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
2417
+ labelContent: translationsDefault["displayName"].value,
2373
2418
  content: buildFormInput({
2374
2419
  value: $v.value.display_name.$model,
2375
2420
  onChange(input) {
@@ -2381,7 +2426,7 @@ const ARealmForm = defineComponent({
2381
2426
  validationMessages: translationsValidation.description.value,
2382
2427
  validationSeverity: getVuelidateSeverity($v.value.description),
2383
2428
  label: true,
2384
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DESCRIPTION].value,
2429
+ labelContent: translationsDefault["description"].value,
2385
2430
  content: buildFormTextarea({
2386
2431
  value: $v.value.description.$model,
2387
2432
  onChange(input) {
@@ -2416,14 +2461,13 @@ const ARealms = defineComponent({
2416
2461
  props,
2417
2462
  setup: ctx
2418
2463
  });
2419
- const translationsName = useTranslation({
2420
- group: TranslatorTranslationGroup.VUECS,
2421
- key: TranslatorTranslationDefaultKey.REALMS
2422
- });
2423
2464
  const translation = useTranslation({
2424
- group: TranslatorTranslationGroup.VUECS,
2425
- key: TranslatorTranslationVuecsKey.NO_MORE,
2426
- data: { name: translationsName }
2465
+ group: "vuecs",
2466
+ key: "noMore",
2467
+ data: { name: useTranslation({
2468
+ group: "vuecs",
2469
+ key: "realms"
2470
+ }) }
2427
2471
  });
2428
2472
  return () => render({ noMore: { content: translation.value } });
2429
2473
  }
@@ -2485,7 +2529,7 @@ var AClientForm_vue_vue_type_script_lang_default = defineComponent({
2485
2529
  active: { required },
2486
2530
  name: {
2487
2531
  required,
2488
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT],
2532
+ ["alphaUpperNumHyphenUnderscoreDot"]: VuelidateCustomRule["alphaUpperNumHyphenUnderscoreDot"],
2489
2533
  minLength: minLength(3),
2490
2534
  maxLength: maxLength(256)
2491
2535
  },
@@ -2544,22 +2588,22 @@ var AClientForm_vue_vue_type_script_lang_default = defineComponent({
2544
2588
  await manager.createOrUpdate(form);
2545
2589
  assignFormProperties(form, manager.data.value);
2546
2590
  };
2547
- const translationsClient = useTranslationsForGroup(TranslatorTranslationGroup.CLIENT, [
2548
- { key: TranslatorTranslationClientKey.NAME_HINT },
2549
- { key: TranslatorTranslationClientKey.DESCRIPTION_HINT },
2550
- { key: TranslatorTranslationClientKey.REDIRECT_URI_HINT },
2551
- { key: TranslatorTranslationClientKey.IS_CONFIDENTIAL },
2552
- { key: TranslatorTranslationClientKey.IS_ACTIVE },
2553
- { key: TranslatorTranslationClientKey.HASH_SECRET }
2591
+ const translationsClient = useTranslationsForGroup("authupClient", [
2592
+ { key: "nameHint" },
2593
+ { key: "descriptionHint" },
2594
+ { key: "redirectURIHint" },
2595
+ { key: "isConfidential" },
2596
+ { key: "isActive" },
2597
+ { key: "hashSecret" }
2554
2598
  ]);
2555
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
2556
- { key: TranslatorTranslationDefaultKey.GENERATE },
2557
- { key: TranslatorTranslationDefaultKey.NAME },
2558
- { key: TranslatorTranslationDefaultKey.DISPLAY_NAME },
2559
- { key: TranslatorTranslationDefaultKey.DESCRIPTION },
2560
- { key: TranslatorTranslationDefaultKey.REALM },
2561
- { key: TranslatorTranslationDefaultKey.REDIRECT_URIS },
2562
- { key: TranslatorTranslationDefaultKey.SECRET }
2599
+ const translationsDefault = useTranslationsForGroup("default", [
2600
+ { key: "generate" },
2601
+ { key: "name" },
2602
+ { key: "displayName" },
2603
+ { key: "description" },
2604
+ { key: "realm" },
2605
+ { key: "redirectUris" },
2606
+ { key: "secret" }
2563
2607
  ]);
2564
2608
  const redirectUris = computed(() => vuelidate.value.redirect_uri.$model ? vuelidate.value.redirect_uri.$model.split(",") : []);
2565
2609
  return {
@@ -2579,18 +2623,18 @@ var AClientForm_vue_vue_type_script_lang_default = defineComponent({
2579
2623
  });
2580
2624
  //#endregion
2581
2625
  //#region src/components/entities/client/AClientForm.vue
2582
- const _hoisted_1$12 = { class: "row" };
2583
- const _hoisted_2$10 = { class: "col" };
2584
- const _hoisted_3$8 = {
2626
+ const _hoisted_1$21 = { class: "row" };
2627
+ const _hoisted_2$13 = { class: "col" };
2628
+ const _hoisted_3$11 = {
2585
2629
  key: 0,
2586
2630
  class: "text-danger font-weight-bold"
2587
2631
  };
2588
- const _hoisted_4$6 = { class: "row" };
2589
- const _hoisted_5$3 = { class: "col" };
2590
- const _hoisted_6$2 = { class: "col" };
2591
- const _hoisted_7$1 = { class: "col" };
2632
+ const _hoisted_4$9 = { class: "row" };
2633
+ const _hoisted_5$6 = { class: "col" };
2634
+ const _hoisted_6$5 = { class: "col" };
2635
+ const _hoisted_7$2 = { class: "col" };
2592
2636
  const _hoisted_8$1 = { class: "col" };
2593
- function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) {
2637
+ function _sfc_render$49(_ctx, _cache, $props, $setup, $data, $options) {
2594
2638
  const _component_VCFormInput = resolveComponent("VCFormInput");
2595
2639
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
2596
2640
  const _component_IVuelidate = resolveComponent("IVuelidate");
@@ -2599,7 +2643,7 @@ function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) {
2599
2643
  const _component_AFormInputList = resolveComponent("AFormInputList");
2600
2644
  const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
2601
2645
  const _component_AFormSubmit = resolveComponent("AFormSubmit");
2602
- return openBlock(), createElementBlock("div", _hoisted_1$12, [createElementVNode("div", _hoisted_2$10, [
2646
+ return openBlock(), createElementBlock("div", _hoisted_1$21, [createElementVNode("div", _hoisted_2$13, [
2603
2647
  _ctx.data ? (openBlock(), createBlock(_component_VCFormGroup, { key: 0 }, {
2604
2648
  label: withCtx(() => [..._cache[10] || (_cache[10] = [createTextVNode(" ID ", -1)])]),
2605
2649
  default: withCtx(() => [createVNode(_component_VCFormInput, {
@@ -2645,7 +2689,7 @@ function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) {
2645
2689
  "validation-messages": props.data,
2646
2690
  "validation-severity": props.severity
2647
2691
  }, {
2648
- label: withCtx(() => [createTextVNode(toDisplayString(_ctx.translationsDefault.secret) + " ", 1), _ctx.isSecretHashed ? (openBlock(), createElementBlock("span", _hoisted_3$8, [..._cache[11] || (_cache[11] = [createElementVNode("i", { class: "fa fa-exclamation-triangle" }, null, -1)])])) : createCommentVNode("v-if", true)]),
2692
+ label: withCtx(() => [createTextVNode(toDisplayString(_ctx.translationsDefault.secret) + " ", 1), _ctx.isSecretHashed ? (openBlock(), createElementBlock("span", _hoisted_3$11, [..._cache[11] || (_cache[11] = [createElementVNode("i", { class: "fa fa-exclamation-triangle" }, null, -1)])])) : createCommentVNode("v-if", true)]),
2649
2693
  default: withCtx(() => [createVNode(_component_VCFormInput, {
2650
2694
  modelValue: _ctx.vuelidate.secret.$model,
2651
2695
  "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => _ctx.vuelidate.secret.$model = $event),
@@ -2662,8 +2706,8 @@ function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) {
2662
2706
  }, 8, ["validation-messages", "validation-severity"])]),
2663
2707
  _: 1
2664
2708
  }, 8, ["validation"]),
2665
- createElementVNode("div", _hoisted_4$6, [
2666
- createElementVNode("div", _hoisted_5$3, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.is_confidential }, {
2709
+ createElementVNode("div", _hoisted_4$9, [
2710
+ createElementVNode("div", _hoisted_5$6, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.is_confidential }, {
2667
2711
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
2668
2712
  "validation-messages": props.data,
2669
2713
  "validation-severity": props.severity
@@ -2679,7 +2723,7 @@ function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) {
2679
2723
  }, 8, ["validation-messages", "validation-severity"])]),
2680
2724
  _: 1
2681
2725
  }, 8, ["validation"])]),
2682
- createElementVNode("div", _hoisted_6$2, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.secret_hashed }, {
2726
+ createElementVNode("div", _hoisted_6$5, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.secret_hashed }, {
2683
2727
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
2684
2728
  "validation-messages": props.data,
2685
2729
  "validation-severity": props.severity
@@ -2695,7 +2739,7 @@ function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) {
2695
2739
  }, 8, ["validation-messages", "validation-severity"])]),
2696
2740
  _: 1
2697
2741
  }, 8, ["validation"])]),
2698
- createElementVNode("div", _hoisted_7$1, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.active }, {
2742
+ createElementVNode("div", _hoisted_7$2, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.active }, {
2699
2743
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
2700
2744
  "validation-messages": props.data,
2701
2745
  "validation-severity": props.severity
@@ -2773,7 +2817,7 @@ function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) {
2773
2817
  ])])
2774
2818
  ])]);
2775
2819
  }
2776
- var AClientForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AClientForm_vue_vue_type_script_lang_default, [["render", _sfc_render$15]]);
2820
+ var AClientForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AClientForm_vue_vue_type_script_lang_default, [["render", _sfc_render$49]]);
2777
2821
  //#endregion
2778
2822
  //#region src/components/entities/client/AClients.ts
2779
2823
  const AClients = defineComponent({
@@ -2786,14 +2830,13 @@ const AClients = defineComponent({
2786
2830
  props,
2787
2831
  setup: ctx
2788
2832
  });
2789
- const translationName = useTranslation({
2790
- group: TranslatorTranslationGroup.DEFAULT,
2791
- key: TranslatorTranslationDefaultKey.CLIENTS
2792
- });
2793
2833
  const translation = useTranslation({
2794
- group: TranslatorTranslationGroup.VUECS,
2795
- key: TranslatorTranslationVuecsKey.NO_MORE,
2796
- data: { name: translationName }
2834
+ group: "vuecs",
2835
+ key: "noMore",
2836
+ data: { name: useTranslation({
2837
+ group: "default",
2838
+ key: "clients"
2839
+ }) }
2797
2840
  });
2798
2841
  return () => render({ noMore: { content: translation.value } });
2799
2842
  }
@@ -2814,206 +2857,6 @@ const AClientPicker = defineComponent({
2814
2857
  }
2815
2858
  });
2816
2859
  //#endregion
2817
- //#region src/components/entities/policy/APolicies.ts
2818
- const APolicies = defineComponent({
2819
- props: defineEntityCollectionVProps(),
2820
- emits: defineEntityCollectionVEmitOptions(),
2821
- slots: Object,
2822
- setup(props, setup) {
2823
- const { render } = defineEntityCollectionManager({
2824
- type: `${EntityType.POLICY}`,
2825
- props,
2826
- setup
2827
- });
2828
- const translationName = useTranslation({
2829
- group: TranslatorTranslationGroup.DEFAULT,
2830
- key: TranslatorTranslationDefaultKey.POLICIES
2831
- });
2832
- const translation = useTranslation({
2833
- group: TranslatorTranslationGroup.VUECS,
2834
- key: TranslatorTranslationVuecsKey.NO_MORE,
2835
- data: { name: translationName }
2836
- });
2837
- return () => render({ noMore: { content: translation.value } });
2838
- }
2839
- });
2840
- //#endregion
2841
- //#region src/components/entities/permission-policy-binding/APermissionPolicyBindingButton.ts
2842
- const APermissionPolicyBindingButton = defineComponent({
2843
- props: {
2844
- entityType: {
2845
- type: String,
2846
- required: true
2847
- },
2848
- entity: {
2849
- type: Object,
2850
- required: true
2851
- }
2852
- },
2853
- emits: ["updated", "failed"],
2854
- setup(props, { emit }) {
2855
- const client = injectHTTPClient();
2856
- const modalOpen = ref(false);
2857
- const busy = ref(false);
2858
- const currentPolicyId = ref(props.entity.policy_id);
2859
- watch(toRef(props, "entity"), (val) => {
2860
- currentPolicyId.value = val.policy_id;
2861
- }, { deep: true });
2862
- const handleKeydown = (e) => {
2863
- if (e.key === "Escape" && modalOpen.value) modalOpen.value = false;
2864
- };
2865
- onMounted(() => {
2866
- document.addEventListener("keydown", handleKeydown);
2867
- });
2868
- onUnmounted(() => {
2869
- document.removeEventListener("keydown", handleKeydown);
2870
- });
2871
- const handlePolicySelect = async (policyId) => {
2872
- if (busy.value) return;
2873
- const api = hasOwnProperty(client, props.entityType) ? client[props.entityType] : void 0;
2874
- if (!api || !api.update) return;
2875
- busy.value = true;
2876
- try {
2877
- const response = await api.update(props.entity.id, { policy_id: policyId });
2878
- currentPolicyId.value = policyId;
2879
- emit("updated", response);
2880
- } catch (e) {
2881
- if (e instanceof Error) emit("failed", e);
2882
- } finally {
2883
- busy.value = false;
2884
- }
2885
- };
2886
- const modalTitleId = `policy-modal-title-${props.entity.id}`;
2887
- return () => {
2888
- const children = [];
2889
- children.push(h("button", {
2890
- class: ["btn btn-xs", {
2891
- "btn-dark": busy.value,
2892
- "btn-primary": !busy.value && currentPolicyId.value,
2893
- "btn-secondary": !busy.value && !currentPolicyId.value
2894
- }],
2895
- disabled: busy.value,
2896
- onClick(e) {
2897
- e.preventDefault();
2898
- modalOpen.value = true;
2899
- }
2900
- }, [h("i", { class: "fa fa-cog" })]));
2901
- if (modalOpen.value) {
2902
- const backdrop = h("div", {
2903
- class: "modal-backdrop fade show",
2904
- onClick() {
2905
- modalOpen.value = false;
2906
- }
2907
- });
2908
- const modal = h("div", {
2909
- class: "modal fade show d-block",
2910
- tabindex: "-1",
2911
- role: "dialog",
2912
- "aria-modal": "true",
2913
- "aria-labelledby": modalTitleId
2914
- }, [h("div", {
2915
- class: "modal-dialog",
2916
- role: "document",
2917
- onClick(e) {
2918
- e.stopPropagation();
2919
- }
2920
- }, [h("div", { class: "modal-content" }, [
2921
- h("div", { class: "modal-header" }, [h("h5", {
2922
- class: "modal-title",
2923
- id: modalTitleId
2924
- }, "Junction Policy"), h("button", {
2925
- type: "button",
2926
- class: "btn-close",
2927
- "aria-label": "Close",
2928
- onClick() {
2929
- modalOpen.value = false;
2930
- }
2931
- })]),
2932
- h("div", { class: "modal-body" }, [h(APolicies, { query: { filters: { parent_id: null } } }, { [SlotName.ITEM_ACTIONS]: (slotProps) => {
2933
- const isSelected = currentPolicyId.value === slotProps.data.id;
2934
- return h("button", {
2935
- class: ["btn btn-xs", {
2936
- "btn-dark": busy.value,
2937
- "btn-success": !busy.value && isSelected,
2938
- "btn-secondary": !busy.value && !isSelected
2939
- }],
2940
- disabled: busy.value,
2941
- onClick(e) {
2942
- e.preventDefault();
2943
- if (isSelected) handlePolicySelect(null);
2944
- else handlePolicySelect(slotProps.data.id);
2945
- }
2946
- }, [h("i", { class: ["fa", {
2947
- "fa-check": isSelected,
2948
- "fa-plus": !isSelected
2949
- }] })]);
2950
- } })]),
2951
- h("div", { class: "modal-footer" }, [currentPolicyId.value ? h("button", {
2952
- type: "button",
2953
- class: "btn btn-warning btn-xs",
2954
- disabled: busy.value,
2955
- onClick() {
2956
- handlePolicySelect(null);
2957
- }
2958
- }, "Reset") : void 0, h("button", {
2959
- type: "button",
2960
- class: "btn btn-secondary btn-xs",
2961
- onClick() {
2962
- modalOpen.value = false;
2963
- }
2964
- }, "Close")])
2965
- ])])]);
2966
- children.push(h(Teleport, { to: "body" }, [backdrop, modal]));
2967
- }
2968
- return h("span", children);
2969
- };
2970
- }
2971
- });
2972
- //#endregion
2973
- //#region src/components/entities/client-permission/AClientPermissionAssignment.ts
2974
- const AClientPermissionAssignment = defineComponent({
2975
- props: {
2976
- clientId: String,
2977
- permissionId: String
2978
- },
2979
- emits: defineEntityVEmitOptions(),
2980
- async setup(props, setup) {
2981
- const manager = defineEntityManager({
2982
- type: `${EntityType.CLIENT_PERMISSION}`,
2983
- setup,
2984
- socket: { processEvent(event) {
2985
- return event.data.permission_id === props.permissionId && event.data.client_id === props.clientId;
2986
- } }
2987
- });
2988
- await manager.resolve({ query: { filters: {
2989
- client_id: props.clientId,
2990
- permission_id: props.permissionId
2991
- } } });
2992
- return () => {
2993
- const children = [renderToggleButton({
2994
- changed: (value) => {
2995
- if (value) return manager.create({
2996
- client_id: props.clientId,
2997
- permission_id: props.permissionId
2998
- });
2999
- return manager.delete();
3000
- },
3001
- value: !!manager.data.value,
3002
- isBusy: manager.busy.value
3003
- })];
3004
- if (manager.data.value) children.push(h(APermissionPolicyBindingButton, {
3005
- entityType: EntityType.CLIENT_PERMISSION,
3006
- entity: manager.data.value,
3007
- key: manager.data.value.id,
3008
- onUpdated: (entity) => {
3009
- manager.updated(entity);
3010
- }
3011
- }));
3012
- return h("span", { class: "d-flex gap-1" }, children);
3013
- };
3014
- }
3015
- });
3016
- //#endregion
3017
2860
  //#region src/components/entities/permission/APermission.ts
3018
2861
  const APermission = defineComponent({
3019
2862
  props: defineEntityVProps(),
@@ -3088,7 +2931,7 @@ const APermissionForm = defineComponent({
3088
2931
  required,
3089
2932
  minLength: minLength(3),
3090
2933
  maxLength: maxLength(128),
3091
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]
2934
+ ["alphaUpperNumHyphenUnderscoreDot"]: VuelidateCustomRule["alphaUpperNumHyphenUnderscoreDot"]
3092
2935
  },
3093
2936
  display_name: {
3094
2937
  minLength: minLength(3),
@@ -3134,12 +2977,12 @@ const APermissionForm = defineComponent({
3134
2977
  };
3135
2978
  const translationsValidation = useTranslationsForNestedValidation($v.value);
3136
2979
  const translationsSubmit = createFormSubmitTranslations();
3137
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
3138
- { key: TranslatorTranslationDefaultKey.NAME },
3139
- { key: TranslatorTranslationDefaultKey.DISPLAY_NAME },
3140
- { key: TranslatorTranslationDefaultKey.DESCRIPTION },
3141
- { key: TranslatorTranslationDefaultKey.DECISION_STRATEGY },
3142
- { key: TranslatorTranslationDefaultKey.REALM }
2980
+ const translationsDefault = useTranslationsForGroup("default", [
2981
+ { key: "name" },
2982
+ { key: "displayName" },
2983
+ { key: "description" },
2984
+ { key: "decisionStrategy" },
2985
+ { key: "realm" }
3143
2986
  ]);
3144
2987
  const render = () => {
3145
2988
  const children = [];
@@ -3147,7 +2990,7 @@ const APermissionForm = defineComponent({
3147
2990
  validationMessages: translationsValidation.name.value,
3148
2991
  validationSeverity: getVuelidateSeverity($v.value.name),
3149
2992
  label: true,
3150
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
2993
+ labelContent: translationsDefault["name"].value,
3151
2994
  content: buildFormInput({
3152
2995
  value: $v.value.name.$model,
3153
2996
  onChange(input) {
@@ -3160,7 +3003,7 @@ const APermissionForm = defineComponent({
3160
3003
  validationMessages: translationsValidation.display_name.value,
3161
3004
  validationSeverity: getVuelidateSeverity($v.value.display_name),
3162
3005
  label: true,
3163
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
3006
+ labelContent: translationsDefault["displayName"].value,
3164
3007
  content: buildFormInput({
3165
3008
  value: $v.value.display_name.$model,
3166
3009
  onChange(input) {
@@ -3172,7 +3015,7 @@ const APermissionForm = defineComponent({
3172
3015
  validationMessages: translationsValidation.description.value,
3173
3016
  validationSeverity: getVuelidateSeverity($v.value.description),
3174
3017
  label: true,
3175
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DESCRIPTION].value,
3018
+ labelContent: translationsDefault["description"].value,
3176
3019
  content: buildFormTextarea({
3177
3020
  value: $v.value.description.$model,
3178
3021
  onChange(input) {
@@ -3185,7 +3028,7 @@ const APermissionForm = defineComponent({
3185
3028
  validationMessages: translationsValidation.decision_strategy.value,
3186
3029
  validationSeverity: getVuelidateSeverity($v.value.decision_strategy),
3187
3030
  label: true,
3188
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DECISION_STRATEGY].value,
3031
+ labelContent: translationsDefault["decisionStrategy"].value,
3189
3032
  content: [buildFormSelect({
3190
3033
  value: $v.value.decision_strategy.$model,
3191
3034
  onChange(input) {
@@ -3200,7 +3043,7 @@ const APermissionForm = defineComponent({
3200
3043
  validationMessages: translationsValidation.realm_id.value,
3201
3044
  validationSeverity: getVuelidateSeverity($v.value.realm_id),
3202
3045
  label: true,
3203
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.REALM].value,
3046
+ labelContent: translationsDefault["realm"].value,
3204
3047
  content: h(ARealmPicker, {
3205
3048
  value: $v.value.realm_id.$model,
3206
3049
  multiple: false,
@@ -3235,42 +3078,460 @@ const APermissions = defineComponent({
3235
3078
  props,
3236
3079
  setup
3237
3080
  });
3238
- const translationName = useTranslation({
3239
- group: TranslatorTranslationGroup.DEFAULT,
3240
- key: TranslatorTranslationDefaultKey.PERMISSIONS
3081
+ const translation = useTranslation({
3082
+ group: "vuecs",
3083
+ key: "noMore",
3084
+ data: { name: useTranslation({
3085
+ group: "default",
3086
+ key: "permissions"
3087
+ }) }
3088
+ });
3089
+ return () => render({ noMore: { content: translation.value } });
3090
+ }
3091
+ });
3092
+ //#endregion
3093
+ //#region src/components/entities/policy/APolicies.ts
3094
+ const APolicies = defineComponent({
3095
+ props: defineEntityCollectionVProps(),
3096
+ emits: defineEntityCollectionVEmitOptions(),
3097
+ slots: Object,
3098
+ setup(props, setup) {
3099
+ const { render } = defineEntityCollectionManager({
3100
+ type: `${EntityType.POLICY}`,
3101
+ props,
3102
+ setup
3241
3103
  });
3242
3104
  const translation = useTranslation({
3243
- group: TranslatorTranslationGroup.VUECS,
3244
- key: TranslatorTranslationVuecsKey.NO_MORE,
3245
- data: { name: translationName }
3105
+ group: "vuecs",
3106
+ key: "noMore",
3107
+ data: { name: useTranslation({
3108
+ group: "default",
3109
+ key: "policies"
3110
+ }) }
3246
3111
  });
3247
3112
  return () => render({ noMore: { content: translation.value } });
3248
3113
  }
3249
3114
  });
3250
3115
  //#endregion
3251
- //#region src/components/entities/client-permission/AClientPermissionAssignments.ts
3252
- const AClientPermissionAssignments = defineComponent({
3253
- props: { entityId: {
3116
+ //#region src/components/entities/policy/APolicyTypeBadge.vue?vue&type=script&lang.ts
3117
+ const typeLabels = {
3118
+ [BuiltInPolicyType.COMPOSITE]: "Composite",
3119
+ [BuiltInPolicyType.DATE]: "Date",
3120
+ [BuiltInPolicyType.TIME]: "Time",
3121
+ [BuiltInPolicyType.ATTRIBUTE_NAMES]: "Attr Names",
3122
+ [BuiltInPolicyType.ATTRIBUTES]: "Attributes",
3123
+ [BuiltInPolicyType.REALM_MATCH]: "Realm Match",
3124
+ [BuiltInPolicyType.IDENTITY]: "Identity",
3125
+ [BuiltInPolicyType.PERMISSION_BINDING]: "Perm Binding"
3126
+ };
3127
+ var APolicyTypeBadge_vue_vue_type_script_lang_default = defineComponent({
3128
+ props: { type: {
3254
3129
  type: String,
3255
3130
  required: true
3256
3131
  } },
3257
- setup(props, { slots }) {
3258
- return () => h(APermissions, {}, {
3259
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AClientPermissionAssignment, {
3260
- clientInd: props.entityId,
3261
- permissionId: slotProps.data.id,
3262
- key: slotProps.data.id
3263
- }),
3264
- ...slots
3265
- });
3132
+ setup() {
3133
+ return { typeLabels };
3266
3134
  }
3267
3135
  });
3268
3136
  //#endregion
3269
- //#region src/components/entities/role/ARoleForm.ts
3270
- const ARoleForm = defineComponent({
3137
+ //#region src/components/entities/policy/APolicyTypeBadge.vue
3138
+ const _hoisted_1$20 = { class: "badge bg-info" };
3139
+ function _sfc_render$48(_ctx, _cache, $props, $setup, $data, $options) {
3140
+ return openBlock(), createElementBlock("span", _hoisted_1$20, toDisplayString(_ctx.typeLabels[_ctx.type] || _ctx.type), 1);
3141
+ }
3142
+ var APolicyTypeBadge_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyTypeBadge_vue_vue_type_script_lang_default, [["render", _sfc_render$48]]);
3143
+ //#endregion
3144
+ //#region src/components/entities/policy/APolicyDetailNav.vue?vue&type=script&lang.ts
3145
+ var APolicyDetailNav_vue_vue_type_script_lang_default = defineComponent({
3146
+ props: { policyId: {
3147
+ type: String,
3148
+ required: true
3149
+ } },
3150
+ emits: ["click"],
3151
+ setup(props, { emit }) {
3152
+ const handleClick = (e) => {
3153
+ e.preventDefault();
3154
+ emit("click", props.policyId);
3155
+ };
3156
+ return { handleClick };
3157
+ }
3158
+ });
3159
+ //#endregion
3160
+ //#region src/components/entities/policy/APolicyDetailNav.vue
3161
+ function _sfc_render$47(_ctx, _cache, $props, $setup, $data, $options) {
3162
+ return openBlock(), createElementBlock("button", {
3163
+ type: "button",
3164
+ class: "btn btn-xs btn-outline-info",
3165
+ title: "View policy details",
3166
+ "aria-label": "View policy details",
3167
+ onClick: _cache[0] || (_cache[0] = (...args) => _ctx.handleClick && _ctx.handleClick(...args))
3168
+ }, [..._cache[1] || (_cache[1] = [createElementVNode("i", { class: "fa fa-eye" }, null, -1)])]);
3169
+ }
3170
+ var APolicyDetailNav_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyDetailNav_vue_vue_type_script_lang_default, [["render", _sfc_render$47]]);
3171
+ //#endregion
3172
+ //#region src/components/entities/policy/APolicyInlineInfo.vue?vue&type=script&lang.ts
3173
+ var APolicyInlineInfo_vue_vue_type_script_lang_default = defineComponent({
3174
+ components: {
3175
+ APolicyTypeBadge: APolicyTypeBadge_default,
3176
+ APolicyDetailNav: APolicyDetailNav_default
3177
+ },
3271
3178
  props: { entity: {
3272
3179
  type: Object,
3273
- default: void 0
3180
+ required: true
3181
+ } },
3182
+ emits: ["detail"],
3183
+ setup(props, { emit }) {
3184
+ const handleDetail = () => {
3185
+ emit("detail", props.entity);
3186
+ };
3187
+ return { handleDetail };
3188
+ }
3189
+ });
3190
+ //#endregion
3191
+ //#region src/components/entities/policy/APolicyInlineInfo.vue
3192
+ const _hoisted_1$19 = {
3193
+ key: 0,
3194
+ class: "badge bg-warning"
3195
+ };
3196
+ function _sfc_render$46(_ctx, _cache, $props, $setup, $data, $options) {
3197
+ const _component_APolicyTypeBadge = resolveComponent("APolicyTypeBadge");
3198
+ const _component_APolicyDetailNav = resolveComponent("APolicyDetailNav");
3199
+ return openBlock(), createElementBlock(Fragment, null, [
3200
+ createVNode(_component_APolicyTypeBadge, { type: _ctx.entity.type }, null, 8, ["type"]),
3201
+ _ctx.entity.invert ? (openBlock(), createElementBlock("span", _hoisted_1$19, "Inverted")) : createCommentVNode("v-if", true),
3202
+ createVNode(_component_APolicyDetailNav, {
3203
+ "policy-id": _ctx.entity.id,
3204
+ onClick: _ctx.handleDetail
3205
+ }, null, 8, ["policy-id", "onClick"])
3206
+ ], 64);
3207
+ }
3208
+ var APolicyInlineInfo_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyInlineInfo_vue_vue_type_script_lang_default, [["render", _sfc_render$46]]);
3209
+ //#endregion
3210
+ //#region src/components/entities/policy/APolicySummary.vue?vue&type=script&lang.ts
3211
+ var APolicySummary_vue_vue_type_script_lang_default = defineComponent({
3212
+ components: { APolicyTypeBadge: APolicyTypeBadge_default },
3213
+ props: { entity: {
3214
+ type: Object,
3215
+ required: true
3216
+ } }
3217
+ });
3218
+ //#endregion
3219
+ //#region src/components/entities/policy/APolicySummary.vue
3220
+ const _hoisted_1$18 = { class: "d-flex flex-row gap-2 mb-2" };
3221
+ const _hoisted_2$12 = { class: "d-flex flex-row gap-2 mb-2" };
3222
+ const _hoisted_3$10 = {
3223
+ key: 0,
3224
+ class: "d-flex flex-row gap-2 mb-2"
3225
+ };
3226
+ const _hoisted_4$8 = {
3227
+ key: 1,
3228
+ class: "d-flex flex-row gap-2 mb-2"
3229
+ };
3230
+ const _hoisted_5$5 = {
3231
+ key: 2,
3232
+ class: "d-flex flex-row gap-2 mb-2"
3233
+ };
3234
+ const _hoisted_6$4 = {
3235
+ key: 3,
3236
+ class: "d-flex flex-row gap-2 mb-2"
3237
+ };
3238
+ function _sfc_render$45(_ctx, _cache, $props, $setup, $data, $options) {
3239
+ const _component_APolicyTypeBadge = resolveComponent("APolicyTypeBadge");
3240
+ return openBlock(), createElementBlock("div", null, [
3241
+ createElementVNode("div", _hoisted_1$18, [_cache[0] || (_cache[0] = createElementVNode("strong", { style: { "min-width": "120px" } }, "Name", -1)), createElementVNode("div", null, toDisplayString(_ctx.entity.name), 1)]),
3242
+ createElementVNode("div", _hoisted_2$12, [_cache[1] || (_cache[1] = createElementVNode("strong", { style: { "min-width": "120px" } }, "Type", -1)), createElementVNode("div", null, [createVNode(_component_APolicyTypeBadge, { type: _ctx.entity.type }, null, 8, ["type"])])]),
3243
+ _ctx.entity.display_name ? (openBlock(), createElementBlock("div", _hoisted_3$10, [_cache[2] || (_cache[2] = createElementVNode("strong", { style: { "min-width": "120px" } }, "Display Name", -1)), createElementVNode("div", null, toDisplayString(_ctx.entity.display_name), 1)])) : createCommentVNode("v-if", true),
3244
+ _ctx.entity.description ? (openBlock(), createElementBlock("div", _hoisted_4$8, [_cache[3] || (_cache[3] = createElementVNode("strong", { style: { "min-width": "120px" } }, "Description", -1)), createElementVNode("div", null, toDisplayString(_ctx.entity.description), 1)])) : createCommentVNode("v-if", true),
3245
+ _ctx.entity.invert ? (openBlock(), createElementBlock("div", _hoisted_5$5, [..._cache[4] || (_cache[4] = [createElementVNode("strong", { style: { "min-width": "120px" } }, "Invert", -1), createElementVNode("div", null, [createElementVNode("span", { class: "badge bg-warning" }, "Yes")], -1)])])) : createCommentVNode("v-if", true),
3246
+ _ctx.entity.built_in ? (openBlock(), createElementBlock("div", _hoisted_6$4, [..._cache[5] || (_cache[5] = [createElementVNode("strong", { style: { "min-width": "120px" } }, "Built-in", -1), createElementVNode("div", null, [createElementVNode("span", { class: "badge bg-secondary" }, "Yes")], -1)])])) : createCommentVNode("v-if", true)
3247
+ ]);
3248
+ }
3249
+ var APolicySummary_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APolicySummary_vue_vue_type_script_lang_default, [["render", _sfc_render$45]]);
3250
+ //#endregion
3251
+ //#region src/components/entities/permission-policy-binding/APermissionPolicyBindingButton.ts
3252
+ const APermissionPolicyBindingButton = defineComponent({
3253
+ props: {
3254
+ entityType: {
3255
+ type: String,
3256
+ required: true
3257
+ },
3258
+ entity: {
3259
+ type: Object,
3260
+ required: true
3261
+ }
3262
+ },
3263
+ emits: ["updated", "failed"],
3264
+ setup(props, { emit }) {
3265
+ const client = injectHTTPClient();
3266
+ const modalOpen = ref(false);
3267
+ const busy = ref(false);
3268
+ const currentPolicyId = ref(props.entity.policy_id);
3269
+ const detailPolicy = ref(null);
3270
+ watch(toRef(props, "entity"), (val) => {
3271
+ currentPolicyId.value = val.policy_id;
3272
+ }, { deep: true });
3273
+ const handleKeydown = (e) => {
3274
+ if (e.key === "Escape") {
3275
+ if (detailPolicy.value) detailPolicy.value = null;
3276
+ else if (modalOpen.value) modalOpen.value = false;
3277
+ }
3278
+ };
3279
+ onMounted(() => {
3280
+ document.addEventListener("keydown", handleKeydown);
3281
+ });
3282
+ onUnmounted(() => {
3283
+ document.removeEventListener("keydown", handleKeydown);
3284
+ });
3285
+ const handlePolicySelect = async (policyId) => {
3286
+ if (busy.value) return;
3287
+ const api = hasOwnProperty(client, props.entityType) ? client[props.entityType] : void 0;
3288
+ if (!api || !api.update) return;
3289
+ busy.value = true;
3290
+ try {
3291
+ const response = await api.update(props.entity.id, { policy_id: policyId });
3292
+ currentPolicyId.value = policyId;
3293
+ emit("updated", response);
3294
+ } catch (e) {
3295
+ if (e instanceof Error) emit("failed", e);
3296
+ } finally {
3297
+ busy.value = false;
3298
+ }
3299
+ };
3300
+ const modalTitleId = `policy-modal-title-${props.entity.id}`;
3301
+ return () => {
3302
+ const children = [];
3303
+ children.push(h("button", {
3304
+ class: ["btn btn-xs", {
3305
+ "btn-dark": busy.value,
3306
+ "btn-primary": !busy.value && currentPolicyId.value,
3307
+ "btn-secondary": !busy.value && !currentPolicyId.value
3308
+ }],
3309
+ disabled: busy.value,
3310
+ onClick(e) {
3311
+ e.preventDefault();
3312
+ modalOpen.value = true;
3313
+ }
3314
+ }, [h("i", { class: "fa fa-cog" })]));
3315
+ if (modalOpen.value) {
3316
+ const backdrop = h("div", {
3317
+ class: "modal-backdrop fade show",
3318
+ onClick() {
3319
+ if (detailPolicy.value) detailPolicy.value = null;
3320
+ else modalOpen.value = false;
3321
+ }
3322
+ });
3323
+ let modalTitle;
3324
+ let modalBody;
3325
+ let modalFooter;
3326
+ if (detailPolicy.value) {
3327
+ const policy = detailPolicy.value;
3328
+ modalTitle = policy.name;
3329
+ modalBody = h(APolicySummary_default, { entity: policy });
3330
+ modalFooter = [h("button", {
3331
+ type: "button",
3332
+ class: "btn btn-outline-secondary btn-xs",
3333
+ onClick() {
3334
+ detailPolicy.value = null;
3335
+ }
3336
+ }, [h("i", { class: "fa fa-arrow-left me-1" }), "Back"])];
3337
+ } else {
3338
+ modalTitle = "Junction Policy";
3339
+ modalBody = h(APolicies, { query: { filters: { parent_id: null } } }, { [SlotName.ITEM]: (slotProps) => {
3340
+ const isSelected = currentPolicyId.value === slotProps.data.id;
3341
+ return [
3342
+ h("div", [slotProps.data.name]),
3343
+ h(APolicyInlineInfo_default, {
3344
+ entity: slotProps.data,
3345
+ onDetail: (policy) => {
3346
+ detailPolicy.value = policy;
3347
+ }
3348
+ }),
3349
+ h("div", { class: "ms-auto" }, [h("button", {
3350
+ class: ["btn btn-xs", {
3351
+ "btn-dark": busy.value,
3352
+ "btn-success": !busy.value && isSelected,
3353
+ "btn-secondary": !busy.value && !isSelected
3354
+ }],
3355
+ disabled: busy.value,
3356
+ onClick(e) {
3357
+ e.preventDefault();
3358
+ if (isSelected) handlePolicySelect(null);
3359
+ else handlePolicySelect(slotProps.data.id);
3360
+ }
3361
+ }, [h("i", { class: ["fa", {
3362
+ "fa-check": isSelected,
3363
+ "fa-plus": !isSelected
3364
+ }] })])])
3365
+ ];
3366
+ } });
3367
+ modalFooter = [currentPolicyId.value ? h("button", {
3368
+ type: "button",
3369
+ class: "btn btn-warning btn-xs",
3370
+ disabled: busy.value,
3371
+ onClick() {
3372
+ handlePolicySelect(null);
3373
+ }
3374
+ }, "Reset") : void 0, h("button", {
3375
+ type: "button",
3376
+ class: "btn btn-secondary btn-xs",
3377
+ onClick() {
3378
+ modalOpen.value = false;
3379
+ }
3380
+ }, "Close")];
3381
+ }
3382
+ const modal = h("div", {
3383
+ class: "modal fade show d-block",
3384
+ tabindex: "-1",
3385
+ role: "dialog",
3386
+ "aria-modal": "true",
3387
+ "aria-labelledby": modalTitleId
3388
+ }, [h("div", {
3389
+ class: "modal-dialog",
3390
+ role: "document",
3391
+ onClick(e) {
3392
+ e.stopPropagation();
3393
+ }
3394
+ }, [h("div", { class: "modal-content" }, [
3395
+ h("div", { class: "modal-header" }, [h("h5", {
3396
+ class: "modal-title",
3397
+ id: modalTitleId
3398
+ }, modalTitle), h("button", {
3399
+ type: "button",
3400
+ class: "btn-close",
3401
+ "aria-label": "Close",
3402
+ onClick() {
3403
+ if (detailPolicy.value) detailPolicy.value = null;
3404
+ else modalOpen.value = false;
3405
+ }
3406
+ })]),
3407
+ h("div", { class: "modal-body" }, [modalBody]),
3408
+ h("div", { class: "modal-footer" }, modalFooter)
3409
+ ])])]);
3410
+ children.push(h(Teleport, { to: "body" }, [backdrop, modal]));
3411
+ }
3412
+ return h("span", children);
3413
+ };
3414
+ }
3415
+ });
3416
+ //#endregion
3417
+ //#region src/components/entities/client-permission/AClientPermissionAssignment.vue?vue&type=script&lang.ts
3418
+ var AClientPermissionAssignment_vue_vue_type_script_lang_default = defineComponent({
3419
+ components: {
3420
+ AToggleButton: AToggleButton_default,
3421
+ APermissionPolicyBindingButton
3422
+ },
3423
+ props: {
3424
+ clientId: {
3425
+ type: String,
3426
+ required: true
3427
+ },
3428
+ permissionId: {
3429
+ type: String,
3430
+ required: true
3431
+ }
3432
+ },
3433
+ emits: defineEntityVEmitOptions(),
3434
+ async setup(props, setup) {
3435
+ const manager = defineEntityManager({
3436
+ type: `${EntityType.CLIENT_PERMISSION}`,
3437
+ setup,
3438
+ query: () => ({ filters: {
3439
+ client_id: props.clientId,
3440
+ permission_id: props.permissionId
3441
+ } }),
3442
+ socket: { processEvent(event) {
3443
+ return event.data.permission_id === props.permissionId && event.data.client_id === props.clientId;
3444
+ } }
3445
+ });
3446
+ await manager.resolve({ query: { filters: {
3447
+ client_id: props.clientId,
3448
+ permission_id: props.permissionId
3449
+ } } });
3450
+ const handleChanged = (value) => {
3451
+ if (value) return manager.create({
3452
+ client_id: props.clientId,
3453
+ permission_id: props.permissionId
3454
+ });
3455
+ return manager.delete();
3456
+ };
3457
+ const handleUpdated = (entity) => {
3458
+ manager.updated(entity);
3459
+ };
3460
+ return {
3461
+ manager,
3462
+ handleChanged,
3463
+ handleUpdated,
3464
+ EntityType
3465
+ };
3466
+ }
3467
+ });
3468
+ //#endregion
3469
+ //#region src/components/entities/client-permission/AClientPermissionAssignment.vue
3470
+ const _hoisted_1$17 = { class: "d-flex gap-1" };
3471
+ function _sfc_render$44(_ctx, _cache, $props, $setup, $data, $options) {
3472
+ const _component_AToggleButton = resolveComponent("AToggleButton");
3473
+ const _component_APermissionPolicyBindingButton = resolveComponent("APermissionPolicyBindingButton");
3474
+ return openBlock(), createElementBlock("span", _hoisted_1$17, [createVNode(_component_AToggleButton, {
3475
+ value: !!_ctx.manager.data.value,
3476
+ "is-busy": _ctx.manager.busy.value,
3477
+ onChanged: _ctx.handleChanged
3478
+ }, null, 8, [
3479
+ "value",
3480
+ "is-busy",
3481
+ "onChanged"
3482
+ ]), _ctx.manager.data.value ? (openBlock(), createBlock(_component_APermissionPolicyBindingButton, {
3483
+ key: _ctx.manager.data.value.id,
3484
+ "entity-type": _ctx.EntityType.CLIENT_PERMISSION,
3485
+ entity: _ctx.manager.data.value,
3486
+ onUpdated: _ctx.handleUpdated
3487
+ }, null, 8, [
3488
+ "entity-type",
3489
+ "entity",
3490
+ "onUpdated"
3491
+ ])) : createCommentVNode("v-if", true)]);
3492
+ }
3493
+ var AClientPermissionAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AClientPermissionAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$44]]);
3494
+ //#endregion
3495
+ //#region src/components/entities/client-permission/AClientPermissionAssignments.vue?vue&type=script&lang.ts
3496
+ var AClientPermissionAssignments_vue_vue_type_script_lang_default = defineComponent({
3497
+ components: {
3498
+ APermissions,
3499
+ AClientPermissionAssignment: AClientPermissionAssignment_default
3500
+ },
3501
+ props: { entityId: {
3502
+ type: String,
3503
+ required: true
3504
+ } },
3505
+ setup(props, { slots }) {
3506
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
3507
+ }
3508
+ });
3509
+ //#endregion
3510
+ //#region src/components/entities/client-permission/AClientPermissionAssignments.vue
3511
+ function _sfc_render$43(_ctx, _cache, $props, $setup, $data, $options) {
3512
+ const _component_AClientPermissionAssignment = resolveComponent("AClientPermissionAssignment");
3513
+ const _component_APermissions = resolveComponent("APermissions");
3514
+ return openBlock(), createBlock(_component_APermissions, null, createSlots({
3515
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AClientPermissionAssignment, {
3516
+ key: data.id,
3517
+ "client-id": _ctx.entityId,
3518
+ "permission-id": data.id
3519
+ }, null, 8, ["client-id", "permission-id"]))]),
3520
+ _: 2
3521
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
3522
+ return {
3523
+ name,
3524
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
3525
+ };
3526
+ })]), 1024);
3527
+ }
3528
+ var AClientPermissionAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AClientPermissionAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$43]]);
3529
+ //#endregion
3530
+ //#region src/components/entities/role/ARoleForm.ts
3531
+ const ARoleForm = defineComponent({
3532
+ props: { entity: {
3533
+ type: Object,
3534
+ default: void 0
3274
3535
  } },
3275
3536
  emits: defineEntityVEmitOptions(),
3276
3537
  setup(props, ctx) {
@@ -3286,7 +3547,7 @@ const ARoleForm = defineComponent({
3286
3547
  required,
3287
3548
  minLength: minLength(3),
3288
3549
  maxLength: maxLength(30),
3289
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]
3550
+ ["alphaUpperNumHyphenUnderscoreDot"]: VuelidateCustomRule["alphaUpperNumHyphenUnderscoreDot"]
3290
3551
  },
3291
3552
  display_name: {
3292
3553
  minLength: minLength(3),
@@ -3326,11 +3587,11 @@ const ARoleForm = defineComponent({
3326
3587
  };
3327
3588
  const translationsValidation = useTranslationsForNestedValidation($v.value);
3328
3589
  const translationsSubmit = createFormSubmitTranslations();
3329
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
3330
- { key: TranslatorTranslationDefaultKey.NAME },
3331
- { key: TranslatorTranslationDefaultKey.DISPLAY_NAME },
3332
- { key: TranslatorTranslationDefaultKey.DESCRIPTION },
3333
- { key: TranslatorTranslationDefaultKey.REALM }
3590
+ const translationsDefault = useTranslationsForGroup("default", [
3591
+ { key: "name" },
3592
+ { key: "displayName" },
3593
+ { key: "description" },
3594
+ { key: "realm" }
3334
3595
  ]);
3335
3596
  const render = () => {
3336
3597
  const children = [];
@@ -3338,7 +3599,7 @@ const ARoleForm = defineComponent({
3338
3599
  validationMessages: translationsValidation.name.value,
3339
3600
  validationSeverity: getVuelidateSeverity($v.value.name),
3340
3601
  label: true,
3341
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
3602
+ labelContent: translationsDefault["name"].value,
3342
3603
  content: buildFormInput({
3343
3604
  value: $v.value.name.$model,
3344
3605
  onChange(input) {
@@ -3350,7 +3611,7 @@ const ARoleForm = defineComponent({
3350
3611
  validationMessages: translationsValidation.display_name.value,
3351
3612
  validationSeverity: getVuelidateSeverity($v.value.display_name),
3352
3613
  label: true,
3353
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
3614
+ labelContent: translationsDefault["displayName"].value,
3354
3615
  content: buildFormInput({
3355
3616
  value: $v.value.display_name.$model,
3356
3617
  onChange(input) {
@@ -3362,7 +3623,7 @@ const ARoleForm = defineComponent({
3362
3623
  validationMessages: translationsValidation.description.value,
3363
3624
  validationSeverity: getVuelidateSeverity($v.value.description),
3364
3625
  label: true,
3365
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DESCRIPTION].value,
3626
+ labelContent: translationsDefault["description"].value,
3366
3627
  content: buildFormTextarea({
3367
3628
  value: $v.value.description.$model,
3368
3629
  onChange(input) {
@@ -3375,7 +3636,7 @@ const ARoleForm = defineComponent({
3375
3636
  validationMessages: translationsValidation.realm_id.value,
3376
3637
  validationSeverity: getVuelidateSeverity($v.value.realm_id),
3377
3638
  label: true,
3378
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.REALM].value,
3639
+ labelContent: translationsDefault["realm"].value,
3379
3640
  content: h(ARealmPicker, {
3380
3641
  value: $v.value.realm_id.$model,
3381
3642
  onChange: (input) => {
@@ -3409,14 +3670,13 @@ const ARoles = defineComponent({
3409
3670
  props,
3410
3671
  setup: ctx
3411
3672
  });
3412
- const translationName = useTranslation({
3413
- group: TranslatorTranslationGroup.VUECS,
3414
- key: TranslatorTranslationDefaultKey.ROLES
3415
- });
3416
3673
  const translation = useTranslation({
3417
- group: TranslatorTranslationGroup.VUECS,
3418
- key: TranslatorTranslationVuecsKey.NO_MORE,
3419
- data: { name: translationName }
3674
+ group: "vuecs",
3675
+ key: "noMore",
3676
+ data: { name: useTranslation({
3677
+ group: "vuecs",
3678
+ key: "roles"
3679
+ }) }
3420
3680
  });
3421
3681
  return () => render({ noMore: { content: translation.value } });
3422
3682
  }
@@ -3442,17 +3702,28 @@ const ARole = defineComponent({
3442
3702
  }
3443
3703
  });
3444
3704
  //#endregion
3445
- //#region src/components/entities/client-role/AClientRoleAssignment.ts
3446
- const AClientRoleAssignment = defineComponent({
3705
+ //#region src/components/entities/client-role/AClientRoleAssignment.vue?vue&type=script&lang.ts
3706
+ var AClientRoleAssignment_vue_vue_type_script_lang_default = defineComponent({
3707
+ components: { AToggleButton: AToggleButton_default },
3447
3708
  props: {
3448
- roleId: String,
3449
- clientId: String
3709
+ roleId: {
3710
+ type: String,
3711
+ required: true
3712
+ },
3713
+ clientId: {
3714
+ type: String,
3715
+ required: true
3716
+ }
3450
3717
  },
3451
3718
  emits: defineEntityVEmitOptions(),
3452
3719
  async setup(props, setup) {
3453
3720
  const manager = defineEntityManager({
3454
3721
  type: `${EntityType.CLIENT_ROLE}`,
3455
3722
  setup,
3723
+ query: () => ({ filters: {
3724
+ client_id: props.clientId,
3725
+ role_id: props.roleId
3726
+ } }),
3456
3727
  socket: { processEvent(event) {
3457
3728
  return event.data.client_id === props.clientId && event.data.role_id === props.roleId;
3458
3729
  } }
@@ -3461,38 +3732,76 @@ const AClientRoleAssignment = defineComponent({
3461
3732
  client_id: props.clientId,
3462
3733
  role_id: props.roleId
3463
3734
  } } });
3464
- return () => renderToggleButton({
3465
- changed: (value) => {
3466
- if (value) return manager.create({
3467
- client_id: props.clientId,
3468
- role_id: props.roleId
3469
- });
3470
- return manager.delete();
3471
- },
3472
- value: !!manager.data.value,
3473
- isBusy: manager.busy.value
3474
- });
3735
+ const handleChanged = (value) => {
3736
+ if (value) return manager.create({
3737
+ client_id: props.clientId,
3738
+ role_id: props.roleId
3739
+ });
3740
+ return manager.delete();
3741
+ };
3742
+ return {
3743
+ manager,
3744
+ handleChanged
3745
+ };
3475
3746
  }
3476
3747
  });
3477
3748
  //#endregion
3478
- //#region src/components/entities/client-role/AClientRoleAssignments.ts
3479
- const AClientRoleAssignments = defineComponent({
3749
+ //#region src/components/entities/client-role/AClientRoleAssignment.vue
3750
+ function _sfc_render$42(_ctx, _cache, $props, $setup, $data, $options) {
3751
+ const _component_AToggleButton = resolveComponent("AToggleButton");
3752
+ return openBlock(), createBlock(_component_AToggleButton, {
3753
+ value: !!_ctx.manager.data.value,
3754
+ "is-busy": _ctx.manager.busy.value,
3755
+ onChanged: _ctx.handleChanged
3756
+ }, null, 8, [
3757
+ "value",
3758
+ "is-busy",
3759
+ "onChanged"
3760
+ ]);
3761
+ }
3762
+ var AClientRoleAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AClientRoleAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$42]]);
3763
+ //#endregion
3764
+ //#region src/components/entities/client-role/AClientRoleAssignments.vue?vue&type=script&lang.ts
3765
+ var AClientRoleAssignments_vue_vue_type_script_lang_default = defineComponent({
3766
+ components: {
3767
+ ARoles,
3768
+ AClientRoleAssignment: AClientRoleAssignment_default
3769
+ },
3480
3770
  props: {
3481
- entityId: String,
3771
+ entityId: {
3772
+ type: String,
3773
+ required: true
3774
+ },
3482
3775
  realmId: String
3483
3776
  },
3484
3777
  setup(props, { slots }) {
3485
- return () => h(ARoles, { query: { filters: { realm_id: [...props.realmId ? [props.realmId] : [], null] } } }, {
3486
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AClientRoleAssignment, {
3487
- clientId: props.entityId,
3488
- roleId: slotProps.data.id,
3489
- key: slotProps.data.id
3490
- }),
3491
- ...slots
3492
- });
3778
+ return {
3779
+ query: computed(() => ({ filters: { realm_id: [...props.realmId ? [props.realmId] : [], null] } })),
3780
+ forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions")))
3781
+ };
3493
3782
  }
3494
3783
  });
3495
3784
  //#endregion
3785
+ //#region src/components/entities/client-role/AClientRoleAssignments.vue
3786
+ function _sfc_render$41(_ctx, _cache, $props, $setup, $data, $options) {
3787
+ const _component_AClientRoleAssignment = resolveComponent("AClientRoleAssignment");
3788
+ const _component_ARoles = resolveComponent("ARoles");
3789
+ return openBlock(), createBlock(_component_ARoles, { query: _ctx.query }, createSlots({
3790
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AClientRoleAssignment, {
3791
+ key: data.id,
3792
+ "client-id": _ctx.entityId,
3793
+ "role-id": data.id
3794
+ }, null, 8, ["client-id", "role-id"]))]),
3795
+ _: 2
3796
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
3797
+ return {
3798
+ name,
3799
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
3800
+ };
3801
+ })]), 1032, ["query"]);
3802
+ }
3803
+ var AClientRoleAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AClientRoleAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$41]]);
3804
+ //#endregion
3496
3805
  //#region src/components/entities/client-scope/AClientScope.ts
3497
3806
  const AClientScope = defineComponent({
3498
3807
  props: defineEntityVProps(),
@@ -3524,14 +3833,13 @@ const AClientScopes = defineComponent({
3524
3833
  props,
3525
3834
  setup: ctx
3526
3835
  });
3527
- const translationClientScopes = useTranslation({
3528
- group: TranslatorTranslationGroup.DEFAULT,
3529
- key: TranslatorTranslationDefaultKey.CLIENT_SCOPES
3530
- });
3531
3836
  const translation = useTranslation({
3532
- group: TranslatorTranslationGroup.VUECS,
3533
- key: TranslatorTranslationVuecsKey.NO_MORE,
3534
- data: { name: translationClientScopes }
3837
+ group: "vuecs",
3838
+ key: "noMore",
3839
+ data: { name: useTranslation({
3840
+ group: "default",
3841
+ key: "clientScopes"
3842
+ }) }
3535
3843
  });
3536
3844
  return () => render({ noMore: { content: translation.value } });
3537
3845
  }
@@ -3558,7 +3866,7 @@ const AScopeForm = defineComponent({
3558
3866
  const $v = useVuelidate({
3559
3867
  name: {
3560
3868
  required,
3561
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT],
3869
+ ["alphaUpperNumHyphenUnderscoreDot"]: VuelidateCustomRule["alphaUpperNumHyphenUnderscoreDot"],
3562
3870
  minLength: minLength(3),
3563
3871
  maxLength: maxLength(256)
3564
3872
  },
@@ -3605,11 +3913,11 @@ const AScopeForm = defineComponent({
3605
3913
  };
3606
3914
  const translationsValidation = useTranslationsForNestedValidation($v.value);
3607
3915
  const translationsSubmit = createFormSubmitTranslations();
3608
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
3609
- { key: TranslatorTranslationDefaultKey.NAME },
3610
- { key: TranslatorTranslationDefaultKey.DISPLAY_NAME },
3611
- { key: TranslatorTranslationDefaultKey.DESCRIPTION },
3612
- { key: TranslatorTranslationDefaultKey.REALM }
3916
+ const translationsDefault = useTranslationsForGroup("default", [
3917
+ { key: "name" },
3918
+ { key: "displayName" },
3919
+ { key: "description" },
3920
+ { key: "realm" }
3613
3921
  ]);
3614
3922
  return () => {
3615
3923
  const children = [
@@ -3617,7 +3925,7 @@ const AScopeForm = defineComponent({
3617
3925
  validationMessages: translationsValidation.name.value,
3618
3926
  validationSeverity: getVuelidateSeverity($v.value.name),
3619
3927
  label: true,
3620
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
3928
+ labelContent: translationsDefault["name"].value,
3621
3929
  content: buildFormInput({
3622
3930
  value: $v.value.name.$model,
3623
3931
  onChange(input) {
@@ -3630,7 +3938,7 @@ const AScopeForm = defineComponent({
3630
3938
  validationMessages: translationsValidation.display_name.value,
3631
3939
  validationSeverity: getVuelidateSeverity($v.value.display_name),
3632
3940
  label: true,
3633
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
3941
+ labelContent: translationsDefault["displayName"].value,
3634
3942
  content: buildFormInput({
3635
3943
  value: $v.value.display_name.$model,
3636
3944
  onChange(input) {
@@ -3642,7 +3950,7 @@ const AScopeForm = defineComponent({
3642
3950
  validationMessages: translationsValidation.description.value,
3643
3951
  validationSeverity: getVuelidateSeverity($v.value.description),
3644
3952
  label: true,
3645
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DESCRIPTION].value,
3953
+ labelContent: translationsDefault["description"].value,
3646
3954
  content: buildFormTextarea({
3647
3955
  value: $v.value.description.$model,
3648
3956
  onChange(input) {
@@ -3656,7 +3964,7 @@ const AScopeForm = defineComponent({
3656
3964
  validationMessages: translationsValidation.realm_id.value,
3657
3965
  validationSeverity: getVuelidateSeverity($v.value.realm_id),
3658
3966
  label: true,
3659
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.REALM].value,
3967
+ labelContent: translationsDefault["realm"].value,
3660
3968
  content: h(ARealmPicker, {
3661
3969
  value: $v.value.realm_id.$model,
3662
3970
  onChange: (input) => {
@@ -3689,14 +3997,13 @@ const AScopes = defineComponent({
3689
3997
  props,
3690
3998
  setup: ctx
3691
3999
  });
3692
- const translationName = useTranslation({
3693
- group: TranslatorTranslationGroup.DEFAULT,
3694
- key: TranslatorTranslationDefaultKey.SCOPES
3695
- });
3696
4000
  const translation = useTranslation({
3697
- group: TranslatorTranslationGroup.VUECS,
3698
- key: TranslatorTranslationVuecsKey.NO_MORE,
3699
- data: { name: translationName }
4001
+ group: "vuecs",
4002
+ key: "noMore",
4003
+ data: { name: useTranslation({
4004
+ group: "default",
4005
+ key: "scopes"
4006
+ }) }
3700
4007
  });
3701
4008
  return () => render({ noMore: { content: translation.value } });
3702
4009
  }
@@ -3722,17 +4029,28 @@ const AScope = defineComponent({
3722
4029
  }
3723
4030
  });
3724
4031
  //#endregion
3725
- //#region src/components/entities/client-scope/AClientScopeAssignment.ts
3726
- const AClientScopeAssignment = defineComponent({
4032
+ //#region src/components/entities/client-scope/AClientScopeAssignment.vue?vue&type=script&lang.ts
4033
+ var AClientScopeAssignment_vue_vue_type_script_lang_default = defineComponent({
4034
+ components: { AToggleButton: AToggleButton_default },
3727
4035
  props: {
3728
- clientId: String,
3729
- scopeId: String
4036
+ clientId: {
4037
+ type: String,
4038
+ required: true
4039
+ },
4040
+ scopeId: {
4041
+ type: String,
4042
+ required: true
4043
+ }
3730
4044
  },
3731
4045
  emits: defineEntityVEmitOptions(),
3732
4046
  async setup(props, setup) {
3733
4047
  const manager = defineEntityManager({
3734
4048
  type: `${EntityType.CLIENT_SCOPE}`,
3735
4049
  setup,
4050
+ query: () => ({ filters: {
4051
+ client_id: props.clientId,
4052
+ scope_id: props.scopeId
4053
+ } }),
3736
4054
  socket: { processEvent(event) {
3737
4055
  return event.data.client_id === props.clientId && event.data.scope_id === props.scopeId;
3738
4056
  } }
@@ -3741,38 +4059,70 @@ const AClientScopeAssignment = defineComponent({
3741
4059
  client_id: props.clientId,
3742
4060
  scope_id: props.scopeId
3743
4061
  } } });
3744
- return () => renderToggleButton({
3745
- changed: (value) => {
3746
- if (value) return manager.create({
3747
- client_id: props.clientId,
3748
- scope_id: props.scopeId
3749
- });
3750
- return manager.delete();
3751
- },
3752
- value: !!manager.data.value,
3753
- isBusy: manager.busy.value
3754
- });
4062
+ const handleChanged = (value) => {
4063
+ if (value) return manager.create({
4064
+ client_id: props.clientId,
4065
+ scope_id: props.scopeId
4066
+ });
4067
+ return manager.delete();
4068
+ };
4069
+ return {
4070
+ manager,
4071
+ handleChanged
4072
+ };
3755
4073
  }
3756
4074
  });
3757
4075
  //#endregion
3758
- //#region src/components/entities/client-scope/AClientScopeAssignments.ts
3759
- const AClientScopeAssignments = defineComponent({
4076
+ //#region src/components/entities/client-scope/AClientScopeAssignment.vue
4077
+ function _sfc_render$40(_ctx, _cache, $props, $setup, $data, $options) {
4078
+ const _component_AToggleButton = resolveComponent("AToggleButton");
4079
+ return openBlock(), createBlock(_component_AToggleButton, {
4080
+ value: !!_ctx.manager.data.value,
4081
+ "is-busy": _ctx.manager.busy.value,
4082
+ onChanged: _ctx.handleChanged
4083
+ }, null, 8, [
4084
+ "value",
4085
+ "is-busy",
4086
+ "onChanged"
4087
+ ]);
4088
+ }
4089
+ var AClientScopeAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AClientScopeAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$40]]);
4090
+ //#endregion
4091
+ //#region src/components/entities/client-scope/AClientScopeAssignments.vue?vue&type=script&lang.ts
4092
+ var AClientScopeAssignments_vue_vue_type_script_lang_default = defineComponent({
4093
+ components: {
4094
+ AScopes,
4095
+ AClientScopeAssignment: AClientScopeAssignment_default
4096
+ },
3760
4097
  props: { entityId: {
3761
4098
  type: String,
3762
4099
  required: true
3763
4100
  } },
3764
4101
  setup(props, { slots }) {
3765
- return () => h(AScopes, {}, {
3766
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AClientScopeAssignment, {
3767
- clientId: props.entityId,
3768
- scopeId: slotProps.data.id,
3769
- key: slotProps.data.id
3770
- }),
3771
- ...slots
3772
- });
4102
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
3773
4103
  }
3774
4104
  });
3775
4105
  //#endregion
4106
+ //#region src/components/entities/client-scope/AClientScopeAssignments.vue
4107
+ function _sfc_render$39(_ctx, _cache, $props, $setup, $data, $options) {
4108
+ const _component_AClientScopeAssignment = resolveComponent("AClientScopeAssignment");
4109
+ const _component_AScopes = resolveComponent("AScopes");
4110
+ return openBlock(), createBlock(_component_AScopes, null, createSlots({
4111
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AClientScopeAssignment, {
4112
+ key: data.id,
4113
+ "client-id": _ctx.entityId,
4114
+ "scope-id": data.id
4115
+ }, null, 8, ["client-id", "scope-id"]))]),
4116
+ _: 2
4117
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
4118
+ return {
4119
+ name,
4120
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
4121
+ };
4122
+ })]), 1024);
4123
+ }
4124
+ var AClientScopeAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AClientScopeAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$39]]);
4125
+ //#endregion
3776
4126
  //#region src/components/entities/identity-provider/AIdentityProvider.ts
3777
4127
  const AIdentityProvider = defineComponent({
3778
4128
  props: defineEntityVProps(),
@@ -3808,7 +4158,7 @@ const AIdentityProviderBasicFields = defineComponent({
3808
4158
  required,
3809
4159
  minLength: minLength(3),
3810
4160
  maxLength: maxLength(128),
3811
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]
4161
+ ["alphaUpperNumHyphenUnderscoreDot"]: VuelidateCustomRule["alphaUpperNumHyphenUnderscoreDot"]
3812
4162
  },
3813
4163
  display_name: {
3814
4164
  minLength: minLength(3),
@@ -3833,10 +4183,10 @@ const AIdentityProviderBasicFields = defineComponent({
3833
4183
  setup.expose({ assign });
3834
4184
  onChange(useUpdatedAt(props.entity), () => assign(props.entity));
3835
4185
  assign(props.entity);
3836
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
3837
- { key: TranslatorTranslationDefaultKey.DISPLAY_NAME },
3838
- { key: TranslatorTranslationDefaultKey.NAME },
3839
- { key: TranslatorTranslationDefaultKey.DESCRIPTION }
4186
+ const translationsDefault = useTranslationsForGroup("default", [
4187
+ { key: "displayName" },
4188
+ { key: "name" },
4189
+ { key: "description" }
3840
4190
  ]);
3841
4191
  const translationsValidation = useTranslationsForNestedValidation($v.value);
3842
4192
  return () => {
@@ -3845,7 +4195,7 @@ const AIdentityProviderBasicFields = defineComponent({
3845
4195
  validationMessages: translationsValidation.name.value,
3846
4196
  validationSeverity: getVuelidateSeverity($v.value.name),
3847
4197
  label: true,
3848
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
4198
+ labelContent: translationsDefault["name"].value,
3849
4199
  content: buildFormInput({
3850
4200
  value: $v.value.name.$model,
3851
4201
  onChange(input) {
@@ -3869,7 +4219,7 @@ const AIdentityProviderBasicFields = defineComponent({
3869
4219
  validationMessages: translationsValidation.display_name.value,
3870
4220
  validationSeverity: getVuelidateSeverity($v.value.display_name),
3871
4221
  label: true,
3872
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
4222
+ labelContent: translationsDefault["displayName"].value,
3873
4223
  content: buildFormInput({
3874
4224
  value: $v.value.display_name.$model,
3875
4225
  onChange(input) {
@@ -4449,15 +4799,15 @@ var AIdentityProviderPicker_vue_vue_type_script_lang_default = defineComponent({
4449
4799
  });
4450
4800
  //#endregion
4451
4801
  //#region src/components/entities/identity-provider/AIdentityProviderPicker.vue
4452
- const _hoisted_1$11 = { class: "d-flex flex-column gap-2" };
4453
- const _hoisted_2$9 = { class: "d-flex flex-row gap-2 flex-wrap" };
4454
- const _hoisted_3$7 = ["onClick"];
4455
- const _hoisted_4$5 = { class: "d-flex flex-row gap-2 flex-wrap" };
4456
- const _hoisted_5$2 = ["onClick"];
4457
- function _sfc_render$14(_ctx, _cache, $props, $setup, $data, $options) {
4802
+ const _hoisted_1$16 = { class: "d-flex flex-column gap-2" };
4803
+ const _hoisted_2$11 = { class: "d-flex flex-row gap-2 flex-wrap" };
4804
+ const _hoisted_3$9 = ["onClick"];
4805
+ const _hoisted_4$7 = { class: "d-flex flex-row gap-2 flex-wrap" };
4806
+ const _hoisted_5$4 = ["onClick"];
4807
+ function _sfc_render$38(_ctx, _cache, $props, $setup, $data, $options) {
4458
4808
  const _component_AIdentityProviderProtocol = resolveComponent("AIdentityProviderProtocol");
4459
4809
  const _component_AIdentityProviderPreset = resolveComponent("AIdentityProviderPreset");
4460
- return openBlock(), createElementBlock("div", _hoisted_1$11, [createElementVNode("div", null, [_cache[0] || (_cache[0] = createElementVNode("h6", null, "Protocols", -1)), createElementVNode("div", _hoisted_2$9, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.protocols, (item, key) => {
4810
+ return openBlock(), createElementBlock("div", _hoisted_1$16, [createElementVNode("div", null, [_cache[0] || (_cache[0] = createElementVNode("h6", null, "Protocols", -1)), createElementVNode("div", _hoisted_2$11, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.protocols, (item, key) => {
4461
4811
  return openBlock(), createBlock(_component_AIdentityProviderProtocol, {
4462
4812
  key,
4463
4813
  id: item
@@ -4465,10 +4815,10 @@ function _sfc_render$14(_ctx, _cache, $props, $setup, $data, $options) {
4465
4815
  default: withCtx((props) => [createElementVNode("div", {
4466
4816
  class: normalizeClass([{ "active": item === _ctx.protocol && !_ctx.preset }, "d-flex flex-column gap-1 text-center identity-provider-picker-item"]),
4467
4817
  onClick: withModifiers(($event) => _ctx.pickProtocol(item), ["prevent"])
4468
- }, [createElementVNode("div", null, [createElementVNode("i", { class: normalizeClass(["fa-2x", props.icon]) }, null, 2)]), createElementVNode("div", null, toDisplayString(props.name), 1)], 10, _hoisted_3$7)]),
4818
+ }, [createElementVNode("div", null, [createElementVNode("i", { class: normalizeClass(["fa-2x", props.icon]) }, null, 2)]), createElementVNode("div", null, toDisplayString(props.name), 1)], 10, _hoisted_3$9)]),
4469
4819
  _: 2
4470
4820
  }, 1032, ["id"]);
4471
- }), 128))])]), createElementVNode("div", null, [_cache[1] || (_cache[1] = createElementVNode("h6", null, "Presets", -1)), createElementVNode("div", _hoisted_4$5, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.presets, (item, key) => {
4821
+ }), 128))])]), createElementVNode("div", null, [_cache[1] || (_cache[1] = createElementVNode("h6", null, "Presets", -1)), createElementVNode("div", _hoisted_4$7, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.presets, (item, key) => {
4472
4822
  return openBlock(), createBlock(_component_AIdentityProviderPreset, {
4473
4823
  key,
4474
4824
  id: item
@@ -4476,12 +4826,12 @@ function _sfc_render$14(_ctx, _cache, $props, $setup, $data, $options) {
4476
4826
  default: withCtx((props) => [createElementVNode("div", {
4477
4827
  class: normalizeClass([{ "active": item === _ctx.preset }, "d-flex flex-column gap-1 text-center identity-provider-picker-item"]),
4478
4828
  onClick: withModifiers(($event) => _ctx.pickPreset(item), ["prevent"])
4479
- }, [createElementVNode("div", null, [createElementVNode("i", { class: normalizeClass(["fa-2x", props.icon]) }, null, 2)]), createElementVNode("div", null, toDisplayString(props.name), 1)], 10, _hoisted_5$2)]),
4829
+ }, [createElementVNode("div", null, [createElementVNode("i", { class: normalizeClass(["fa-2x", props.icon]) }, null, 2)]), createElementVNode("div", null, toDisplayString(props.name), 1)], 10, _hoisted_5$4)]),
4480
4830
  _: 2
4481
4831
  }, 1032, ["id"]);
4482
4832
  }), 128))])])]);
4483
4833
  }
4484
- var AIdentityProviderPicker_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AIdentityProviderPicker_vue_vue_type_script_lang_default, [["render", _sfc_render$14], ["__scopeId", "data-v-cb0d0718"]]);
4834
+ var AIdentityProviderPicker_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AIdentityProviderPicker_vue_vue_type_script_lang_default, [["render", _sfc_render$38], ["__scopeId", "data-v-cb0d0718"]]);
4485
4835
  //#endregion
4486
4836
  //#region src/components/entities/identity-provider/AIdentityProviderOAuth2ClientFields.ts
4487
4837
  const AIdentityProviderOAuth2ClientFields = defineComponent({
@@ -4535,69 +4885,71 @@ const AIdentityProviderOAuth2ClientFields = defineComponent({
4535
4885
  }
4536
4886
  });
4537
4887
  //#endregion
4538
- //#region src/components/entities/identity-provider/AIdentityProviderOAuth2Discovery.ts
4539
- const AIdentityProviderOAuth2Discovery = defineComponent({
4540
- emits: ["lookup", "failed"],
4541
- setup(_, setup) {
4542
- const busy = ref(false);
4543
- const form = reactive({ url: "" });
4544
- const $v = useVuelidate({ url: { url } }, form);
4545
- const lookupValid = ref(false);
4546
- const message = ref(null);
4547
- const apiClient = new Client();
4548
- const lookup = async () => {
4549
- if (busy.value || $v.value.url.$invalid) return;
4550
- try {
4551
- const response = await apiClient.get(form.url);
4552
- if (isOpenIDProviderMetadata(response.data)) {
4553
- setup.emit("lookup", response.data);
4554
- lookupValid.value = true;
4555
- }
4556
- } catch (e) {
4557
- lookupValid.value = false;
4558
- if (e instanceof Error) {
4559
- message.value = `Lookup failed with: ${e.message}`;
4560
- setup.emit("failed", e);
4561
- }
4562
- } finally {
4563
- busy.value = false;
4564
- }
4565
- };
4566
- const validationMessages = useTranslationsForBaseValidation($v.value.url);
4567
- return () => {
4568
- let messageNode;
4569
- if (message.value) messageNode = h("div", { class: "alert alert-sm alert-warning" }, message.value);
4570
- return [
4571
- buildFormGroup({
4572
- validationMessages: validationMessages.value,
4573
- validationSeverity: getVuelidateSeverity($v.value.url),
4574
- labelContent: "Discovery",
4575
- content: buildFormInput({
4576
- class: { "is-valid": lookupValid.value },
4577
- props: { placeholder: "https://example.com/.well-known/openid-configuration" },
4578
- value: $v.value.url.$model,
4579
- onChange(input) {
4580
- $v.value.url.$model = input;
4888
+ //#region src/components/entities/identity-provider/AIdentityProviderOAuth2EndpointFields.vue?vue&type=script&lang.ts
4889
+ var AIdentityProviderOAuth2EndpointFields_vue_vue_type_script_lang_default = defineComponent({
4890
+ components: {
4891
+ VCFormGroup,
4892
+ VCFormInput,
4893
+ AIdentityProviderOAuth2Discovery: defineComponent({
4894
+ emits: ["lookup", "failed"],
4895
+ setup(_, setup) {
4896
+ const busy = ref(false);
4897
+ const form = reactive({ url: "" });
4898
+ const $v = useVuelidate({ url: { url } }, form);
4899
+ const lookupValid = ref(false);
4900
+ const message = ref(null);
4901
+ const apiClient = new Client();
4902
+ const lookup = async () => {
4903
+ if (busy.value || $v.value.url.$invalid) return;
4904
+ try {
4905
+ const response = await apiClient.get(form.url);
4906
+ if (isOpenIDProviderMetadata(response.data)) {
4907
+ setup.emit("lookup", response.data);
4908
+ lookupValid.value = true;
4581
4909
  }
4582
- })
4583
- }),
4584
- messageNode,
4585
- h("button", {
4586
- type: "button",
4587
- class: "btn btn-xs btn-primary mb-1",
4588
- disabled: !form.url || $v.value.$invalid,
4589
- onClick($event) {
4590
- $event.preventDefault();
4591
- return lookup();
4910
+ } catch (e) {
4911
+ lookupValid.value = false;
4912
+ if (e instanceof Error) {
4913
+ message.value = `Lookup failed with: ${e.message}`;
4914
+ setup.emit("failed", e);
4915
+ }
4916
+ } finally {
4917
+ busy.value = false;
4592
4918
  }
4593
- }, [h("i", { class: "fa fa-search pe-1" }), "Lookup"])
4594
- ];
4595
- };
4596
- }
4597
- });
4598
- //#endregion
4599
- //#region src/components/entities/identity-provider/AIdentityProviderOAuth2EndpointFields.ts
4600
- const AIdentityProviderOAuth2EndpointFields = defineComponent({
4919
+ };
4920
+ const validationMessages = useTranslationsForBaseValidation($v.value.url);
4921
+ return () => {
4922
+ let messageNode;
4923
+ if (message.value) messageNode = h("div", { class: "alert alert-sm alert-warning" }, message.value);
4924
+ return [
4925
+ buildFormGroup({
4926
+ validationMessages: validationMessages.value,
4927
+ validationSeverity: getVuelidateSeverity($v.value.url),
4928
+ labelContent: "Discovery",
4929
+ content: buildFormInput({
4930
+ class: { "is-valid": lookupValid.value },
4931
+ props: { placeholder: "https://example.com/.well-known/openid-configuration" },
4932
+ value: $v.value.url.$model,
4933
+ onChange(input) {
4934
+ $v.value.url.$model = input;
4935
+ }
4936
+ })
4937
+ }),
4938
+ messageNode,
4939
+ h("button", {
4940
+ type: "button",
4941
+ class: "btn btn-xs btn-primary mb-1",
4942
+ disabled: !form.url || $v.value.$invalid,
4943
+ onClick($event) {
4944
+ $event.preventDefault();
4945
+ return lookup();
4946
+ }
4947
+ }, [h("i", { class: "fa fa-search pe-1" }), "Lookup"])
4948
+ ];
4949
+ };
4950
+ }
4951
+ })
4952
+ },
4601
4953
  props: {
4602
4954
  entity: { type: Object },
4603
4955
  discovery: {
@@ -4624,64 +4976,81 @@ const AIdentityProviderOAuth2EndpointFields = defineComponent({
4624
4976
  user_info_url: { url }
4625
4977
  }, form, { $registerAs: "endpoint" });
4626
4978
  function init() {
4979
+ form.token_url = "";
4980
+ form.authorize_url = "";
4981
+ form.user_info_url = "";
4627
4982
  if (!props.entity) return;
4628
4983
  assignFormProperties(form, props.entity);
4629
4984
  }
4630
4985
  onChange(useUpdatedAt(props.entity), () => init());
4631
4986
  init();
4632
4987
  const validationMessages = useTranslationsForNestedValidation($v.value);
4633
- return () => {
4634
- let discoveryNode;
4635
- if (props.discovery) discoveryNode = [h(AIdentityProviderOAuth2Discovery, { onLookup(data) {
4636
- form.authorize_url = data.authorization_endpoint;
4637
- form.token_url = data.token_endpoint;
4638
- } })];
4639
- return [
4640
- discoveryNode,
4641
- buildFormGroup({
4642
- validationMessages: validationMessages.token_url.value,
4643
- validationSeverity: getVuelidateSeverity($v.value.token_url),
4644
- label: true,
4645
- labelContent: "Token",
4646
- content: buildFormInput({
4647
- value: $v.value.token_url.$model,
4648
- onChange(input) {
4649
- $v.value.token_url.$model = input;
4650
- },
4651
- props: { placeholder: "https://..." }
4652
- })
4653
- }),
4654
- buildFormGroup({
4655
- validationMessages: validationMessages.authorize_url.value,
4656
- validationSeverity: getVuelidateSeverity($v.value.authorize_url),
4657
- label: true,
4658
- labelContent: "Authorize",
4659
- content: buildFormInput({
4660
- value: $v.value.authorize_url.$model,
4661
- onChange(input) {
4662
- $v.value.authorize_url.$model = input;
4663
- },
4664
- props: { placeholder: "https://..." }
4665
- })
4666
- }),
4667
- buildFormGroup({
4668
- validationMessages: validationMessages.user_info_url.value,
4669
- validationSeverity: getVuelidateSeverity($v.value.user_info_url),
4670
- label: true,
4671
- labelContent: "UserInfo",
4672
- content: buildFormInput({
4673
- value: $v.value.user_info_url.$model,
4674
- onChange(input) {
4675
- $v.value.user_info_url.$model = input;
4676
- },
4677
- props: { placeholder: "https://..." }
4678
- })
4679
- })
4680
- ];
4988
+ const handleDiscoveryLookup = (data) => {
4989
+ form.authorize_url = data.authorization_endpoint;
4990
+ form.token_url = data.token_endpoint;
4991
+ };
4992
+ return {
4993
+ $v,
4994
+ validationMessages,
4995
+ handleDiscoveryLookup,
4996
+ getVuelidateSeverity
4681
4997
  };
4682
4998
  }
4683
4999
  });
4684
5000
  //#endregion
5001
+ //#region src/components/entities/identity-provider/AIdentityProviderOAuth2EndpointFields.vue
5002
+ function _sfc_render$37(_ctx, _cache, $props, $setup, $data, $options) {
5003
+ const _component_AIdentityProviderOAuth2Discovery = resolveComponent("AIdentityProviderOAuth2Discovery");
5004
+ const _component_VCFormInput = resolveComponent("VCFormInput");
5005
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
5006
+ return openBlock(), createElementBlock(Fragment, null, [
5007
+ _ctx.discovery ? (openBlock(), createBlock(_component_AIdentityProviderOAuth2Discovery, {
5008
+ key: 0,
5009
+ onLookup: _ctx.handleDiscoveryLookup
5010
+ }, null, 8, ["onLookup"])) : createCommentVNode("v-if", true),
5011
+ createVNode(_component_VCFormGroup, {
5012
+ label: true,
5013
+ "validation-messages": _ctx.validationMessages.token_url.value,
5014
+ "validation-severity": _ctx.getVuelidateSeverity(_ctx.$v.token_url)
5015
+ }, {
5016
+ label: withCtx(() => [..._cache[3] || (_cache[3] = [createTextVNode(" Token ", -1)])]),
5017
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
5018
+ modelValue: _ctx.$v.token_url.$model,
5019
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.$v.token_url.$model = $event),
5020
+ placeholder: "https://..."
5021
+ }, null, 8, ["modelValue"])]),
5022
+ _: 1
5023
+ }, 8, ["validation-messages", "validation-severity"]),
5024
+ createVNode(_component_VCFormGroup, {
5025
+ label: true,
5026
+ "validation-messages": _ctx.validationMessages.authorize_url.value,
5027
+ "validation-severity": _ctx.getVuelidateSeverity(_ctx.$v.authorize_url)
5028
+ }, {
5029
+ label: withCtx(() => [..._cache[4] || (_cache[4] = [createTextVNode(" Authorize ", -1)])]),
5030
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
5031
+ modelValue: _ctx.$v.authorize_url.$model,
5032
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => _ctx.$v.authorize_url.$model = $event),
5033
+ placeholder: "https://..."
5034
+ }, null, 8, ["modelValue"])]),
5035
+ _: 1
5036
+ }, 8, ["validation-messages", "validation-severity"]),
5037
+ createVNode(_component_VCFormGroup, {
5038
+ label: true,
5039
+ "validation-messages": _ctx.validationMessages.user_info_url.value,
5040
+ "validation-severity": _ctx.getVuelidateSeverity(_ctx.$v.user_info_url)
5041
+ }, {
5042
+ label: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode(" UserInfo ", -1)])]),
5043
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
5044
+ modelValue: _ctx.$v.user_info_url.$model,
5045
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.$v.user_info_url.$model = $event),
5046
+ placeholder: "https://..."
5047
+ }, null, 8, ["modelValue"])]),
5048
+ _: 1
5049
+ }, 8, ["validation-messages", "validation-severity"])
5050
+ ], 64);
5051
+ }
5052
+ var AIdentityProviderOAuth2EndpointFields_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AIdentityProviderOAuth2EndpointFields_vue_vue_type_script_lang_default, [["render", _sfc_render$37]]);
5053
+ //#endregion
4685
5054
  //#region src/components/entities/identity-provider/AIdentityProviderOAuth2Form.ts
4686
5055
  const AIdentityProviderOAuth2Form = defineComponent({
4687
5056
  components: {
@@ -4808,7 +5177,7 @@ const AIdentityProviderOAuth2Form = defineComponent({
4808
5177
  h("i", { class: "fa-solid fa-vihara" }),
4809
5178
  " ",
4810
5179
  "Endpoints"
4811
- ]), h(AIdentityProviderOAuth2EndpointFields, {
5180
+ ]), h(AIdentityProviderOAuth2EndpointFields_default, {
4812
5181
  entity: manager.data.value,
4813
5182
  discovery: protocol.value === IdentityProviderProtocol.OIDC
4814
5183
  })];
@@ -4929,38 +5298,58 @@ const AIdentityProviders = defineComponent({
4929
5298
  props,
4930
5299
  setup: ctx
4931
5300
  });
4932
- const translationName = useTranslation({
4933
- group: TranslatorTranslationGroup.DEFAULT,
4934
- key: TranslatorTranslationDefaultKey.IDENTITY_PROVIDERS
4935
- });
4936
5301
  const translation = useTranslation({
4937
- group: TranslatorTranslationGroup.VUECS,
4938
- key: TranslatorTranslationVuecsKey.NO_MORE,
4939
- data: { name: translationName }
5302
+ group: "vuecs",
5303
+ key: "noMore",
5304
+ data: { name: useTranslation({
5305
+ group: "default",
5306
+ key: "identityProviders"
5307
+ }) }
4940
5308
  });
4941
5309
  return () => render({ noMore: { content: translation.value } });
4942
5310
  }
4943
5311
  });
4944
5312
  //#endregion
4945
- //#region src/components/entities/identity-provider/AIdentityProviderIcon.ts
4946
- const AIdentityProviderIcon = defineComponent({
5313
+ //#region src/components/entities/identity-provider/AIdentityProviderIcon.vue?vue&type=script&lang.ts
5314
+ var AIdentityProviderIcon_vue_vue_type_script_lang_default = defineComponent({
5315
+ components: {
5316
+ AIdentityProviderPreset,
5317
+ AIdentityProviderProtocol
5318
+ },
5319
+ inheritAttrs: false,
4947
5320
  props: { entity: {
4948
5321
  type: Object,
4949
5322
  required: true
4950
- } },
4951
- setup(props, setup) {
4952
- if (props.entity.preset) {
4953
- const { preset } = props.entity;
4954
- return () => h(AIdentityProviderPreset, { id: preset }, { default: (item) => h("i", { class: [item.icon, setup.attrs.class] }) });
4955
- }
4956
- if (!props.entity.protocol) return () => null;
4957
- const { protocol } = props.entity;
4958
- return () => h(AIdentityProviderProtocol, { id: protocol }, { default: (item) => h("i", { class: [item.icon, setup.attrs.class] }) });
4959
- }
5323
+ } }
4960
5324
  });
4961
5325
  //#endregion
4962
- //#region src/components/entities/identity-provider-role/AIdentityProviderRoleAssignment.ts
4963
- const AIdentityProviderRoleAssignment = defineComponent({
5326
+ //#region src/components/entities/identity-provider/AIdentityProviderIcon.vue
5327
+ function _sfc_render$36(_ctx, _cache, $props, $setup, $data, $options) {
5328
+ const _component_AIdentityProviderPreset = resolveComponent("AIdentityProviderPreset");
5329
+ const _component_AIdentityProviderProtocol = resolveComponent("AIdentityProviderProtocol");
5330
+ return _ctx.entity.preset ? (openBlock(), createBlock(_component_AIdentityProviderPreset, {
5331
+ key: 0,
5332
+ id: _ctx.entity.preset
5333
+ }, {
5334
+ default: withCtx((item) => [createElementVNode("i", { class: normalizeClass([item.icon, _ctx.$attrs.class]) }, null, 2)]),
5335
+ _: 1
5336
+ }, 8, ["id"])) : _ctx.entity.protocol ? (openBlock(), createBlock(_component_AIdentityProviderProtocol, {
5337
+ key: 1,
5338
+ id: _ctx.entity.protocol
5339
+ }, {
5340
+ default: withCtx((item) => [createElementVNode("i", { class: normalizeClass([item.icon, _ctx.$attrs.class]) }, null, 2)]),
5341
+ _: 1
5342
+ }, 8, ["id"])) : createCommentVNode("v-if", true);
5343
+ }
5344
+ var AIdentityProviderIcon_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AIdentityProviderIcon_vue_vue_type_script_lang_default, [["render", _sfc_render$36]]);
5345
+ //#endregion
5346
+ //#region src/components/entities/identity-provider-role/AIdentityProviderRoleAssignment.vue?vue&type=script&lang.ts
5347
+ var AIdentityProviderRoleAssignment_vue_vue_type_script_lang_default = defineComponent({
5348
+ components: {
5349
+ VCFormGroup,
5350
+ VCFormInput,
5351
+ VCFormInputCheckbox
5352
+ },
4964
5353
  props: {
4965
5354
  role: {
4966
5355
  type: Object,
@@ -4994,7 +5383,7 @@ const AIdentityProviderRoleAssignment = defineComponent({
4994
5383
  value_is_regex: {}
4995
5384
  }, form);
4996
5385
  const validationMessages = useTranslationsForNestedValidation($v.value);
4997
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [{ key: TranslatorTranslationDefaultKey.VALUE_IS_REGEX }]);
5386
+ const translationsDefault = useTranslationsForGroup("default", [{ key: "valueIsRegex" }]);
4998
5387
  const manager = defineEntityManager({
4999
5388
  type: `${EntityType.IDENTITY_PROVIDER_ROLE_MAPPING}`,
5000
5389
  setup,
@@ -5007,120 +5396,154 @@ const AIdentityProviderRoleAssignment = defineComponent({
5007
5396
  provider_id: props.entityId
5008
5397
  } } });
5009
5398
  if (manager.data.value) assignFormProperties(form, manager.data.value);
5010
- const render = () => {
5011
- const displayButton = [h("button", {
5012
- class: "btn btn-xs btn-dark",
5013
- onClick($event) {
5014
- $event.preventDefault();
5015
- toggleDisplay.call(null);
5016
- }
5017
- }, [h("i", { class: ["fa", {
5018
- "fa-chevron-down": !display.value,
5019
- "fa-chevron-up": display.value
5020
- }] })])];
5021
- let dropAction = [];
5022
- if (manager.data.value) dropAction = [h("button", {
5023
- class: "btn btn-xs btn-danger ms-1",
5024
- disabled: $v.value.$invalid || manager.busy.value,
5025
- onClick($event) {
5026
- $event.preventDefault();
5027
- return manager.delete();
5028
- }
5029
- }, [h("i", { class: ["fa fa-trash"] })])];
5030
- const itemActions = h("div", { class: "ms-auto" }, [h("button", {
5031
- class: ["btn btn-xs", {
5032
- "btn-primary": !manager.data.value,
5033
- "btn-dark": !!manager.data.value
5034
- }],
5035
- onClick($event) {
5036
- $event.preventDefault();
5037
- if (manager.data.value) return manager.update(form);
5038
- return manager.create({
5039
- ...form,
5040
- provider_id: props.entityId,
5041
- role_id: props.role.id
5042
- });
5043
- }
5044
- }, [h("i", { class: ["fa", {
5045
- "fa-plus": !manager.data.value,
5046
- "fa-save": manager.data.value
5047
- }] })]), dropAction]);
5048
- const listBar = h("div", { class: "d-flex flex-row" }, [
5049
- h("div", { class: "me-2" }, [displayButton]),
5050
- h("div", [h("h6", {
5051
- class: "mb-0",
5052
- onClick($event) {
5053
- $event.preventDefault();
5054
- toggleDisplay.call(null);
5055
- }
5056
- }, [props.role.name])]),
5057
- itemActions
5058
- ]);
5059
- let renderForm = [];
5060
- if (display.value) renderForm = [h("div", { class: "mt-2" }, [
5061
- buildFormGroup({
5062
- label: true,
5063
- labelContent: "Name",
5064
- validationMessages: validationMessages.name.value,
5065
- validationSeverity: getVuelidateSeverity($v.value.name),
5066
- content: buildFormInput({
5067
- value: $v.value.name.$model,
5068
- onChange(input) {
5069
- $v.value.name.$model = input;
5070
- }
5071
- })
5072
- }),
5073
- buildFormGroup({
5074
- label: true,
5075
- labelContent: "Value",
5076
- validationMessages: validationMessages.value.value,
5077
- validationSeverity: getVuelidateSeverity($v.value.value),
5078
- content: buildFormInput({
5079
- value: $v.value.value.$model,
5080
- onChange(input) {
5081
- $v.value.value.$model = input;
5082
- }
5083
- })
5084
- }),
5085
- buildFormGroup({
5086
- validationMessages: validationMessages.value_is_regex.value,
5087
- validationSeverity: getVuelidateSeverity($v.value.value_is_regex),
5088
- label: true,
5089
- labelContent: "Regex",
5090
- content: buildFormInputCheckbox({
5091
- groupClass: "form-switch",
5092
- labelContent: translationsDefault.valueIsRegex.value,
5093
- value: $v.value.value_is_regex.$model,
5094
- onChange(input) {
5095
- $v.value.value_is_regex.$model = input;
5096
- }
5097
- })
5098
- })
5099
- ])];
5100
- return h("div", { class: "list-item flex-column" }, [listBar, renderForm]);
5399
+ const handleSaveOrCreate = (e) => {
5400
+ e.preventDefault();
5401
+ if (manager.data.value) return manager.update(form);
5402
+ return manager.create({
5403
+ ...form,
5404
+ provider_id: props.entityId,
5405
+ role_id: props.role.id
5406
+ });
5407
+ };
5408
+ const handleDelete = (e) => {
5409
+ e.preventDefault();
5410
+ return manager.delete();
5411
+ };
5412
+ return {
5413
+ display,
5414
+ toggleDisplay,
5415
+ $v,
5416
+ validationMessages,
5417
+ translationsDefault,
5418
+ manager,
5419
+ handleSaveOrCreate,
5420
+ handleDelete,
5421
+ getVuelidateSeverity
5101
5422
  };
5102
- return () => render();
5103
5423
  }
5104
5424
  });
5105
5425
  //#endregion
5106
- //#region src/components/entities/identity-provider-role/AIdentityProviderRoleAssignments.ts
5107
- const AIdentityProviderRoleAssignments = defineComponent({
5426
+ //#region src/components/entities/identity-provider-role/AIdentityProviderRoleAssignment.vue
5427
+ const _hoisted_1$15 = { class: "list-item flex-column" };
5428
+ const _hoisted_2$10 = { class: "d-flex flex-row" };
5429
+ const _hoisted_3$8 = { class: "me-2" };
5430
+ const _hoisted_4$6 = { class: "ms-auto" };
5431
+ const _hoisted_5$3 = ["disabled"];
5432
+ const _hoisted_6$3 = {
5433
+ key: 0,
5434
+ class: "mt-2"
5435
+ };
5436
+ function _sfc_render$35(_ctx, _cache, $props, $setup, $data, $options) {
5437
+ const _component_VCFormInput = resolveComponent("VCFormInput");
5438
+ const _component_VCFormGroup = resolveComponent("VCFormGroup");
5439
+ const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
5440
+ return openBlock(), createElementBlock("div", _hoisted_1$15, [createElementVNode("div", _hoisted_2$10, [
5441
+ createElementVNode("div", _hoisted_3$8, [createElementVNode("button", {
5442
+ class: "btn btn-xs btn-dark",
5443
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.toggleDisplay(), ["prevent"]))
5444
+ }, [createElementVNode("i", { class: normalizeClass(["fa", {
5445
+ "fa-chevron-down": !_ctx.display,
5446
+ "fa-chevron-up": _ctx.display
5447
+ }]) }, null, 2)])]),
5448
+ createElementVNode("div", null, [createElementVNode("h6", {
5449
+ class: "mb-0",
5450
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => _ctx.toggleDisplay(), ["prevent"]))
5451
+ }, toDisplayString(_ctx.role.name), 1)]),
5452
+ createElementVNode("div", _hoisted_4$6, [createElementVNode("button", {
5453
+ class: normalizeClass(["btn btn-xs", {
5454
+ "btn-primary": !_ctx.manager.data.value,
5455
+ "btn-dark": !!_ctx.manager.data.value
5456
+ }]),
5457
+ onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleSaveOrCreate && _ctx.handleSaveOrCreate(...args))
5458
+ }, [createElementVNode("i", { class: normalizeClass(["fa", {
5459
+ "fa-plus": !_ctx.manager.data.value,
5460
+ "fa-save": _ctx.manager.data.value
5461
+ }]) }, null, 2)], 2), _ctx.manager.data.value ? (openBlock(), createElementBlock("button", {
5462
+ key: 0,
5463
+ class: "btn btn-xs btn-danger ms-1",
5464
+ disabled: _ctx.manager.busy.value,
5465
+ onClick: _cache[3] || (_cache[3] = (...args) => _ctx.handleDelete && _ctx.handleDelete(...args))
5466
+ }, [..._cache[7] || (_cache[7] = [createElementVNode("i", { class: "fa fa-trash" }, null, -1)])], 8, _hoisted_5$3)) : createCommentVNode("v-if", true)])
5467
+ ]), _ctx.display ? (openBlock(), createElementBlock("div", _hoisted_6$3, [
5468
+ createVNode(_component_VCFormGroup, {
5469
+ label: true,
5470
+ "validation-messages": _ctx.validationMessages.name.value,
5471
+ "validation-severity": _ctx.getVuelidateSeverity(_ctx.$v.name)
5472
+ }, {
5473
+ label: withCtx(() => [..._cache[8] || (_cache[8] = [createTextVNode(" Name ", -1)])]),
5474
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
5475
+ modelValue: _ctx.$v.name.$model,
5476
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => _ctx.$v.name.$model = $event)
5477
+ }, null, 8, ["modelValue"])]),
5478
+ _: 1
5479
+ }, 8, ["validation-messages", "validation-severity"]),
5480
+ createVNode(_component_VCFormGroup, {
5481
+ label: true,
5482
+ "validation-messages": _ctx.validationMessages.value.value,
5483
+ "validation-severity": _ctx.getVuelidateSeverity(_ctx.$v.value)
5484
+ }, {
5485
+ label: withCtx(() => [..._cache[9] || (_cache[9] = [createTextVNode(" Value ", -1)])]),
5486
+ default: withCtx(() => [createVNode(_component_VCFormInput, {
5487
+ modelValue: _ctx.$v.value.$model,
5488
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => _ctx.$v.value.$model = $event)
5489
+ }, null, 8, ["modelValue"])]),
5490
+ _: 1
5491
+ }, 8, ["validation-messages", "validation-severity"]),
5492
+ createVNode(_component_VCFormGroup, {
5493
+ label: true,
5494
+ "validation-messages": _ctx.validationMessages.value_is_regex.value,
5495
+ "validation-severity": _ctx.getVuelidateSeverity(_ctx.$v.value_is_regex)
5496
+ }, {
5497
+ label: withCtx(() => [..._cache[10] || (_cache[10] = [createTextVNode(" Regex ", -1)])]),
5498
+ default: withCtx(() => [createVNode(_component_VCFormInputCheckbox, {
5499
+ modelValue: _ctx.$v.value_is_regex.$model,
5500
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => _ctx.$v.value_is_regex.$model = $event),
5501
+ "group-class": "form-switch",
5502
+ "label-content": _ctx.translationsDefault.valueIsRegex.value
5503
+ }, null, 8, ["modelValue", "label-content"])]),
5504
+ _: 1
5505
+ }, 8, ["validation-messages", "validation-severity"])
5506
+ ])) : createCommentVNode("v-if", true)]);
5507
+ }
5508
+ var AIdentityProviderRoleAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AIdentityProviderRoleAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$35]]);
5509
+ //#endregion
5510
+ //#region src/components/entities/identity-provider-role/AIdentityProviderRoleAssignments.vue?vue&type=script&lang.ts
5511
+ var AIdentityProviderRoleAssignments_vue_vue_type_script_lang_default = defineComponent({
5512
+ components: {
5513
+ ARoles,
5514
+ AIdentityProviderRoleAssignment: AIdentityProviderRoleAssignment_default
5515
+ },
5108
5516
  props: { entityId: {
5109
5517
  type: String,
5110
5518
  required: true
5111
5519
  } },
5112
5520
  setup(props, { slots }) {
5113
- return () => h(ARoles, { headerTitle: false }, {
5114
- [SlotName.BODY]: (slotProps) => slotProps.data.map((item) => h(AIdentityProviderRoleAssignment, {
5115
- key: item.id,
5116
- entityId: props.entityId,
5117
- role: item
5118
- })),
5119
- ...slots
5120
- });
5521
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "body"))) };
5121
5522
  }
5122
5523
  });
5123
5524
  //#endregion
5525
+ //#region src/components/entities/identity-provider-role/AIdentityProviderRoleAssignments.vue
5526
+ function _sfc_render$34(_ctx, _cache, $props, $setup, $data, $options) {
5527
+ const _component_AIdentityProviderRoleAssignment = resolveComponent("AIdentityProviderRoleAssignment");
5528
+ const _component_ARoles = resolveComponent("ARoles");
5529
+ return openBlock(), createBlock(_component_ARoles, { "header-title": false }, createSlots({
5530
+ body: withCtx((slotProps) => [(openBlock(true), createElementBlock(Fragment, null, renderList(slotProps.data, (item) => {
5531
+ return openBlock(), createBlock(_component_AIdentityProviderRoleAssignment, {
5532
+ key: item.id,
5533
+ "entity-id": _ctx.entityId,
5534
+ role: item
5535
+ }, null, 8, ["entity-id", "role"]);
5536
+ }), 128))]),
5537
+ _: 2
5538
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
5539
+ return {
5540
+ name,
5541
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
5542
+ };
5543
+ })]), 1024);
5544
+ }
5545
+ var AIdentityProviderRoleAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AIdentityProviderRoleAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$34]]);
5546
+ //#endregion
5124
5547
  //#region src/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue?vue&type=script&lang.ts
5125
5548
  var AAttributeNamesPolicyForm_vue_vue_type_script_lang_default = defineComponent({
5126
5549
  components: { AFormInputList: AFormInputList_default },
@@ -5147,7 +5570,7 @@ var AAttributeNamesPolicyForm_vue_vue_type_script_lang_default = defineComponent
5147
5570
  });
5148
5571
  //#endregion
5149
5572
  //#region src/components/entities/policy/attribute-names/AAttributeNamesPolicyForm.vue
5150
- function _sfc_render$13(_ctx, _cache, $props, $setup, $data, $options) {
5573
+ function _sfc_render$33(_ctx, _cache, $props, $setup, $data, $options) {
5151
5574
  const _component_AFormInputList = resolveComponent("AFormInputList");
5152
5575
  return openBlock(), createBlock(_component_AFormInputList, {
5153
5576
  names: _ctx.vuelidate.names.$model,
@@ -5155,7 +5578,7 @@ function _sfc_render$13(_ctx, _cache, $props, $setup, $data, $options) {
5155
5578
  onChanged: _ctx.handleUpdated
5156
5579
  }, null, 8, ["names", "onChanged"]);
5157
5580
  }
5158
- var AAttributeNamesPolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AAttributeNamesPolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$13]]);
5581
+ var AAttributeNamesPolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AAttributeNamesPolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$33]]);
5159
5582
  //#endregion
5160
5583
  //#region src/components/entities/policy/APolicyParentAssignment.ts
5161
5584
  const APolicyParentAssignment = defineComponent({
@@ -5310,8 +5733,8 @@ var ACompositePolicyForm_vue_vue_type_script_lang_default = defineComponent({
5310
5733
  });
5311
5734
  //#endregion
5312
5735
  //#region src/components/entities/policy/composite/ACompositePolicyForm.vue
5313
- const _hoisted_1$10 = { class: "alert alert-sm alert-info mt-1 mb-0" };
5314
- function _sfc_render$12(_ctx, _cache, $props, $setup, $data, $options) {
5736
+ const _hoisted_1$14 = { class: "alert alert-sm alert-info mt-1 mb-0" };
5737
+ function _sfc_render$32(_ctx, _cache, $props, $setup, $data, $options) {
5315
5738
  const _component_VCFormSelect = resolveComponent("VCFormSelect");
5316
5739
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
5317
5740
  const _component_IVuelidate = resolveComponent("IVuelidate");
@@ -5333,7 +5756,7 @@ function _sfc_render$12(_ctx, _cache, $props, $setup, $data, $options) {
5333
5756
  "modelValue",
5334
5757
  "options",
5335
5758
  "onChange"
5336
- ]), createElementVNode("div", _hoisted_1$10, toDisplayString(_ctx.decisionStrategyHint), 1)]),
5759
+ ]), createElementVNode("div", _hoisted_1$14, toDisplayString(_ctx.decisionStrategyHint), 1)]),
5337
5760
  _: 1
5338
5761
  }, 8, ["validation-messages", "validation-severity"])]),
5339
5762
  _: 1
@@ -5359,7 +5782,7 @@ function _sfc_render$12(_ctx, _cache, $props, $setup, $data, $options) {
5359
5782
  _: 1
5360
5783
  }, 8, ["validation"])]);
5361
5784
  }
5362
- var ACompositePolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ACompositePolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$12]]);
5785
+ var ACompositePolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ACompositePolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$32]]);
5363
5786
  //#endregion
5364
5787
  //#region src/components/entities/policy/date/ADatePolicyForm.vue?vue&type=script&lang.ts
5365
5788
  var ADatePolicyForm_vue_vue_type_script_lang_default = defineComponent({
@@ -5399,7 +5822,7 @@ var ADatePolicyForm_vue_vue_type_script_lang_default = defineComponent({
5399
5822
  });
5400
5823
  //#endregion
5401
5824
  //#region src/components/entities/policy/date/ADatePolicyForm.vue
5402
- function _sfc_render$11(_ctx, _cache, $props, $setup, $data, $options) {
5825
+ function _sfc_render$31(_ctx, _cache, $props, $setup, $data, $options) {
5403
5826
  const _component_VCFormInput = resolveComponent("VCFormInput");
5404
5827
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
5405
5828
  const _component_IVuelidate = resolveComponent("IVuelidate");
@@ -5435,7 +5858,7 @@ function _sfc_render$11(_ctx, _cache, $props, $setup, $data, $options) {
5435
5858
  _: 1
5436
5859
  }, 8, ["validation"])]);
5437
5860
  }
5438
- var ADatePolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ADatePolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$11]]);
5861
+ var ADatePolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ADatePolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$31]]);
5439
5862
  //#endregion
5440
5863
  //#region src/components/entities/policy/identity/AIdentityPolicyForm.vue?vue&type=script&lang.ts
5441
5864
  var AIdentityPolicyForm_vue_vue_type_script_lang_default = defineComponent({
@@ -5463,7 +5886,7 @@ var AIdentityPolicyForm_vue_vue_type_script_lang_default = defineComponent({
5463
5886
  });
5464
5887
  //#endregion
5465
5888
  //#region src/components/entities/policy/identity/AIdentityPolicyForm.vue
5466
- function _sfc_render$10(_ctx, _cache, $props, $setup, $data, $options) {
5889
+ function _sfc_render$30(_ctx, _cache, $props, $setup, $data, $options) {
5467
5890
  const _component_AFormInputList = resolveComponent("AFormInputList");
5468
5891
  return openBlock(), createBlock(_component_AFormInputList, {
5469
5892
  names: _ctx.vuelidate.types.$model,
@@ -5474,7 +5897,7 @@ function _sfc_render$10(_ctx, _cache, $props, $setup, $data, $options) {
5474
5897
  _: 1
5475
5898
  }, 8, ["names", "onChanged"]);
5476
5899
  }
5477
- var AIdentityPolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AIdentityPolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$10]]);
5900
+ var AIdentityPolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AIdentityPolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$30]]);
5478
5901
  //#endregion
5479
5902
  //#region src/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue?vue&type=script&lang.ts
5480
5903
  var ARealmMatchPolicyForm_vue_vue_type_script_lang_default = defineComponent({
@@ -5526,18 +5949,18 @@ var ARealmMatchPolicyForm_vue_vue_type_script_lang_default = defineComponent({
5526
5949
  });
5527
5950
  //#endregion
5528
5951
  //#region src/components/entities/policy/realm-match/ARealmMatchPolicyForm.vue
5529
- const _hoisted_1$9 = { class: "row" };
5530
- const _hoisted_2$8 = { class: "col-7" };
5531
- const _hoisted_3$6 = { class: "col-5" };
5532
- const _hoisted_4$4 = ["for"];
5533
- const _hoisted_5$1 = ["for"];
5534
- const _hoisted_6$1 = ["for"];
5535
- function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
5952
+ const _hoisted_1$13 = { class: "row" };
5953
+ const _hoisted_2$9 = { class: "col-7" };
5954
+ const _hoisted_3$7 = { class: "col-5" };
5955
+ const _hoisted_4$5 = ["for"];
5956
+ const _hoisted_5$2 = ["for"];
5957
+ const _hoisted_6$2 = ["for"];
5958
+ function _sfc_render$29(_ctx, _cache, $props, $setup, $data, $options) {
5536
5959
  const _component_AFormInputList = resolveComponent("AFormInputList");
5537
5960
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
5538
5961
  const _component_IVuelidate = resolveComponent("IVuelidate");
5539
5962
  const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
5540
- return openBlock(), createElementBlock("div", _hoisted_1$9, [createElementVNode("div", _hoisted_2$8, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.attribute_name }, {
5963
+ return openBlock(), createElementBlock("div", _hoisted_1$13, [createElementVNode("div", _hoisted_2$9, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.attribute_name }, {
5541
5964
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
5542
5965
  "validation-messages": props.data,
5543
5966
  "validation-severity": props.severity
@@ -5549,7 +5972,7 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
5549
5972
  _: 1
5550
5973
  }, 8, ["validation-messages", "validation-severity"])]),
5551
5974
  _: 1
5552
- }, 8, ["validation"])]), createElementVNode("div", _hoisted_3$6, [
5975
+ }, 8, ["validation"])]), createElementVNode("div", _hoisted_3$7, [
5553
5976
  createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.attribute_name_strict }, {
5554
5977
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
5555
5978
  "validation-messages": props.data,
@@ -5562,7 +5985,7 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
5562
5985
  label: true,
5563
5986
  onChange: _ctx.handleUpdated
5564
5987
  }, {
5565
- label: withCtx((iProps) => [createElementVNode("label", { for: iProps.id }, " Only match if the attribute is strict equal to the name? ", 8, _hoisted_4$4)]),
5988
+ label: withCtx((iProps) => [createElementVNode("label", { for: iProps.id }, " Only match if the attribute is strict equal to the name? ", 8, _hoisted_4$5)]),
5566
5989
  _: 1
5567
5990
  }, 8, ["modelValue", "onChange"])]),
5568
5991
  _: 1
@@ -5585,7 +6008,7 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
5585
6008
  createTextVNode(" Determines if resources with null realm-id/name value should match all identity realms.", -1),
5586
6009
  createElementVNode("br", null, null, -1),
5587
6010
  createTextVNode(" If true, any identity realm can access resources with null realm-id/name values. ", -1)
5588
- ])], 8, _hoisted_5$1)]),
6011
+ ])], 8, _hoisted_5$2)]),
5589
6012
  _: 1
5590
6013
  }, 8, ["modelValue", "onChange"])]),
5591
6014
  _: 1
@@ -5608,7 +6031,7 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
5608
6031
  createTextVNode(" Specifies whether the master realm of an identity should match all realm-id/name attributes, including null.", -1),
5609
6032
  createElementVNode("br", null, null, -1),
5610
6033
  createTextVNode(" If true, the master realm can access any resource regardless of its realm value. ", -1)
5611
- ])], 8, _hoisted_6$1)]),
6034
+ ])], 8, _hoisted_6$2)]),
5612
6035
  _: 1
5613
6036
  }, 8, ["modelValue", "onChange"])]),
5614
6037
  _: 1
@@ -5617,7 +6040,7 @@ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
5617
6040
  }, 8, ["validation"])
5618
6041
  ])]);
5619
6042
  }
5620
- var ARealmMatchPolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARealmMatchPolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$9]]);
6043
+ var ARealmMatchPolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARealmMatchPolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$29]]);
5621
6044
  //#endregion
5622
6045
  //#region src/components/entities/policy/time/ATimePolicyForm.vue?vue&type=script&lang.ts
5623
6046
  var ATimePolicyForm_vue_vue_type_script_lang_default = defineComponent({
@@ -5692,20 +6115,20 @@ var ATimePolicyForm_vue_vue_type_script_lang_default = defineComponent({
5692
6115
  });
5693
6116
  //#endregion
5694
6117
  //#region src/components/entities/policy/time/ATimePolicyForm.vue
5695
- const _hoisted_1$8 = { class: "row" };
5696
- const _hoisted_2$7 = {
6118
+ const _hoisted_1$12 = { class: "row" };
6119
+ const _hoisted_2$8 = {
5697
6120
  key: 0,
5698
6121
  class: "col"
5699
6122
  };
5700
- const _hoisted_3$5 = {
6123
+ const _hoisted_3$6 = {
5701
6124
  key: 1,
5702
6125
  class: "col"
5703
6126
  };
5704
- const _hoisted_4$3 = {
6127
+ const _hoisted_4$4 = {
5705
6128
  key: 2,
5706
6129
  class: "col"
5707
6130
  };
5708
- function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
6131
+ function _sfc_render$28(_ctx, _cache, $props, $setup, $data, $options) {
5709
6132
  const _component_VCFormInput = resolveComponent("VCFormInput");
5710
6133
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
5711
6134
  const _component_IVuelidate = resolveComponent("IVuelidate");
@@ -5763,8 +6186,8 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
5763
6186
  }, 8, ["validation-messages", "validation-severity"])]),
5764
6187
  _: 1
5765
6188
  }, 8, ["validation"]),
5766
- createElementVNode("div", _hoisted_1$8, [
5767
- _ctx.displayIntervalForDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2$7, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_week }, {
6189
+ createElementVNode("div", _hoisted_1$12, [
6190
+ _ctx.displayIntervalForDayOfWeek ? (openBlock(), createElementBlock("div", _hoisted_2$8, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_week }, {
5768
6191
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
5769
6192
  "validation-messages": props.data,
5770
6193
  "validation-severity": props.severity
@@ -5781,7 +6204,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
5781
6204
  }, 8, ["validation-messages", "validation-severity"])]),
5782
6205
  _: 1
5783
6206
  }, 8, ["validation"])])) : createCommentVNode("v-if", true),
5784
- _ctx.displayIntervalForDayOfMonth ? (openBlock(), createElementBlock("div", _hoisted_3$5, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_month }, {
6207
+ _ctx.displayIntervalForDayOfMonth ? (openBlock(), createElementBlock("div", _hoisted_3$6, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_month }, {
5785
6208
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
5786
6209
  "validation-messages": props.data,
5787
6210
  "validation-severity": props.severity
@@ -5798,7 +6221,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
5798
6221
  }, 8, ["validation-messages", "validation-severity"])]),
5799
6222
  _: 1
5800
6223
  }, 8, ["validation"])])) : createCommentVNode("v-if", true),
5801
- _ctx.displayIntervalForDayOfYear ? (openBlock(), createElementBlock("div", _hoisted_4$3, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_year }, {
6224
+ _ctx.displayIntervalForDayOfYear ? (openBlock(), createElementBlock("div", _hoisted_4$4, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.day_of_year }, {
5802
6225
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
5803
6226
  "validation-messages": props.data,
5804
6227
  "validation-severity": props.severity
@@ -5818,7 +6241,7 @@ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
5818
6241
  ])
5819
6242
  ]);
5820
6243
  }
5821
- var ATimePolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ATimePolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$8]]);
6244
+ var ATimePolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ATimePolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$28]]);
5822
6245
  //#endregion
5823
6246
  //#region src/components/entities/policy/APolicy.ts
5824
6247
  const APolicy = defineComponent({
@@ -5876,19 +6299,19 @@ var APolicyTypePicker_vue_vue_type_script_lang_default = defineComponent({
5876
6299
  });
5877
6300
  //#endregion
5878
6301
  //#region src/components/entities/policy/APolicyTypePicker.vue
5879
- const _hoisted_1$7 = { class: "d-flex flex-column gap-2" };
5880
- const _hoisted_2$6 = { class: "d-flex flex-row gap-2 flex-wrap" };
5881
- const _hoisted_3$4 = ["onClick"];
5882
- function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
5883
- return openBlock(), createElementBlock("div", _hoisted_1$7, [createElementVNode("div", null, [_cache[0] || (_cache[0] = createElementVNode("h6", null, "Type", -1)), createElementVNode("div", _hoisted_2$6, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item, key) => {
6302
+ const _hoisted_1$11 = { class: "d-flex flex-column gap-2" };
6303
+ const _hoisted_2$7 = { class: "d-flex flex-row gap-2 flex-wrap" };
6304
+ const _hoisted_3$5 = ["onClick"];
6305
+ function _sfc_render$27(_ctx, _cache, $props, $setup, $data, $options) {
6306
+ return openBlock(), createElementBlock("div", _hoisted_1$11, [createElementVNode("div", null, [_cache[0] || (_cache[0] = createElementVNode("h6", null, "Type", -1)), createElementVNode("div", _hoisted_2$7, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (item, key) => {
5884
6307
  return openBlock(), createElementBlock("div", {
5885
6308
  key,
5886
6309
  class: normalizeClass([{ "active": item.id === _ctx.option }, "d-flex flex-column gap-1 text-center a-picker-item"]),
5887
6310
  onClick: withModifiers(($event) => _ctx.pick(`${item.id}`), ["prevent"])
5888
- }, [createElementVNode("div", null, toDisplayString(item.value), 1)], 10, _hoisted_3$4);
6311
+ }, [createElementVNode("div", null, toDisplayString(item.value), 1)], 10, _hoisted_3$5);
5889
6312
  }), 128))])])]);
5890
6313
  }
5891
- var APolicyTypePicker_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyTypePicker_vue_vue_type_script_lang_default, [["render", _sfc_render$7], ["__scopeId", "data-v-51b5a9d2"]]);
6314
+ var APolicyTypePicker_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyTypePicker_vue_vue_type_script_lang_default, [["render", _sfc_render$27], ["__scopeId", "data-v-51b5a9d2"]]);
5892
6315
  //#endregion
5893
6316
  //#region src/components/entities/policy/APolicyBasicForm.vue?vue&type=script&lang.ts
5894
6317
  var APolicyBasicForm_vue_vue_type_script_lang_default = defineComponent({
@@ -5960,21 +6383,21 @@ var APolicyBasicForm_vue_vue_type_script_lang_default = defineComponent({
5960
6383
  });
5961
6384
  //#endregion
5962
6385
  //#region src/components/entities/policy/APolicyBasicForm.vue
5963
- const _hoisted_1$6 = { class: "row" };
5964
- const _hoisted_2$5 = { class: "col" };
5965
- const _hoisted_3$3 = ["for"];
5966
- const _hoisted_4$2 = {
6386
+ const _hoisted_1$10 = { class: "row" };
6387
+ const _hoisted_2$6 = { class: "col" };
6388
+ const _hoisted_3$4 = ["for"];
6389
+ const _hoisted_4$3 = {
5967
6390
  key: 0,
5968
6391
  class: "col"
5969
6392
  };
5970
- function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
6393
+ function _sfc_render$26(_ctx, _cache, $props, $setup, $data, $options) {
5971
6394
  const _component_VCFormInput = resolveComponent("VCFormInput");
5972
6395
  const _component_VCFormGroup = resolveComponent("VCFormGroup");
5973
6396
  const _component_IVuelidate = resolveComponent("IVuelidate");
5974
6397
  const _component_VCFormTextarea = resolveComponent("VCFormTextarea");
5975
6398
  const _component_VCFormInputCheckbox = resolveComponent("VCFormInputCheckbox");
5976
6399
  const _component_ARealmPicker = resolveComponent("ARealmPicker");
5977
- return openBlock(), createElementBlock("div", _hoisted_1$6, [createElementVNode("div", _hoisted_2$5, [
6400
+ return openBlock(), createElementBlock("div", _hoisted_1$10, [createElementVNode("div", _hoisted_2$6, [
5978
6401
  createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.name }, {
5979
6402
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
5980
6403
  "validation-messages": props.data,
@@ -6033,14 +6456,14 @@ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
6033
6456
  label: true,
6034
6457
  onChange: _ctx.handleUpdated
6035
6458
  }, {
6036
- label: withCtx((iProps) => [createElementVNode("label", { for: iProps.id }, " Invert? ", 8, _hoisted_3$3)]),
6459
+ label: withCtx((iProps) => [createElementVNode("label", { for: iProps.id }, " Invert? ", 8, _hoisted_3$4)]),
6037
6460
  _: 1
6038
6461
  }, 8, ["modelValue", "onChange"])]),
6039
6462
  _: 1
6040
6463
  }, 8, ["validation-messages", "validation-severity"])]),
6041
6464
  _: 1
6042
6465
  }, 8, ["validation"])
6043
- ]), !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock("div", _hoisted_4$2, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.invert }, {
6466
+ ]), !_ctx.realmId && !_ctx.isEditing ? (openBlock(), createElementBlock("div", _hoisted_4$3, [createVNode(_component_IVuelidate, { validation: _ctx.vuelidate.invert }, {
6044
6467
  default: withCtx((props) => [createVNode(_component_VCFormGroup, {
6045
6468
  "validation-messages": props.data,
6046
6469
  "validation-severity": props.severity
@@ -6063,7 +6486,7 @@ var APolicyForm_vue_vue_type_script_lang_default = defineComponent({
6063
6486
  components: {
6064
6487
  AFormSubmit,
6065
6488
  APolicyTypePicker: APolicyTypePicker_default,
6066
- APolicyBasicForm: /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyBasicForm_vue_vue_type_script_lang_default, [["render", _sfc_render$6]])
6489
+ APolicyBasicForm: /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyBasicForm_vue_vue_type_script_lang_default, [["render", _sfc_render$26]])
6067
6490
  },
6068
6491
  props: {
6069
6492
  entity: { type: Object },
@@ -6116,11 +6539,11 @@ var APolicyForm_vue_vue_type_script_lang_default = defineComponent({
6116
6539
  });
6117
6540
  //#endregion
6118
6541
  //#region src/components/entities/policy/APolicyForm.vue
6119
- const _hoisted_1$5 = { class: "d-flex flex-column" };
6120
- function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6542
+ const _hoisted_1$9 = { class: "d-flex flex-column" };
6543
+ function _sfc_render$25(_ctx, _cache, $props, $setup, $data, $options) {
6121
6544
  const _component_APolicyBasicForm = resolveComponent("APolicyBasicForm");
6122
6545
  const _component_AFormSubmit = resolveComponent("AFormSubmit");
6123
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
6546
+ return openBlock(), createElementBlock("div", _hoisted_1$9, [
6124
6547
  _cache[0] || (_cache[0] = createElementVNode("h6", null, "General", -1)),
6125
6548
  createVNode(_component_APolicyBasicForm, { entity: _ctx.data }, null, 8, ["entity"]),
6126
6549
  _ctx.typeComputed ? renderSlot(_ctx.$slots, "default", {
@@ -6143,28 +6566,46 @@ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
6143
6566
  ])])
6144
6567
  ]);
6145
6568
  }
6146
- var APolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$5]]);
6569
+ var APolicyForm_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APolicyForm_vue_vue_type_script_lang_default, [["render", _sfc_render$25]]);
6147
6570
  //#endregion
6148
- //#region src/components/entities/permission-client/APermissionClientAssignments.ts
6149
- const APermissionClientAssignments = defineComponent({
6571
+ //#region src/components/entities/permission-client/APermissionClientAssignments.vue?vue&type=script&lang.ts
6572
+ var APermissionClientAssignments_vue_vue_type_script_lang_default = defineComponent({
6573
+ components: {
6574
+ AClients,
6575
+ AClientPermissionAssignment: AClientPermissionAssignment_default
6576
+ },
6150
6577
  props: { entityId: {
6151
6578
  type: String,
6152
6579
  required: true
6153
6580
  } },
6154
6581
  setup(props, { slots }) {
6155
- return () => h(AClients, {}, {
6156
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AClientPermissionAssignment, {
6157
- permissionId: props.entityId,
6158
- clientId: slotProps.data.id,
6159
- key: slotProps.data.id
6160
- }),
6161
- ...slots
6162
- });
6582
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
6163
6583
  }
6164
6584
  });
6165
6585
  //#endregion
6166
- //#region src/components/entities/permission-policy/APermissionPolicyAssignment.ts
6167
- const APermissionPolicyAssignment = defineComponent({
6586
+ //#region src/components/entities/permission-client/APermissionClientAssignments.vue
6587
+ function _sfc_render$24(_ctx, _cache, $props, $setup, $data, $options) {
6588
+ const _component_AClientPermissionAssignment = resolveComponent("AClientPermissionAssignment");
6589
+ const _component_AClients = resolveComponent("AClients");
6590
+ return openBlock(), createBlock(_component_AClients, null, createSlots({
6591
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AClientPermissionAssignment, {
6592
+ key: data.id,
6593
+ "permission-id": _ctx.entityId,
6594
+ "client-id": data.id
6595
+ }, null, 8, ["permission-id", "client-id"]))]),
6596
+ _: 2
6597
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
6598
+ return {
6599
+ name,
6600
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
6601
+ };
6602
+ })]), 1024);
6603
+ }
6604
+ var APermissionClientAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APermissionClientAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$24]]);
6605
+ //#endregion
6606
+ //#region src/components/entities/permission-policy/APermissionPolicyAssignment.vue?vue&type=script&lang.ts
6607
+ var APermissionPolicyAssignment_vue_vue_type_script_lang_default = defineComponent({
6608
+ components: { AToggleButton: AToggleButton_default },
6168
6609
  props: {
6169
6610
  permissionId: {
6170
6611
  type: String,
@@ -6180,6 +6621,10 @@ const APermissionPolicyAssignment = defineComponent({
6180
6621
  const manager = defineEntityManager({
6181
6622
  type: `${EntityType.PERMISSION_POLICY}`,
6182
6623
  setup,
6624
+ query: () => ({ filters: {
6625
+ permission_id: props.permissionId,
6626
+ policy_id: props.policyId
6627
+ } }),
6183
6628
  socket: { processEvent(event) {
6184
6629
  return event.data.permission_id === props.permissionId && event.data.policy_id === props.policyId;
6185
6630
  } }
@@ -6188,49 +6633,158 @@ const APermissionPolicyAssignment = defineComponent({
6188
6633
  permission_id: props.permissionId,
6189
6634
  policy_id: props.policyId
6190
6635
  } } });
6191
- return () => renderToggleButton({
6192
- changed: (value) => {
6193
- if (value) return manager.create({
6194
- permission_id: props.permissionId,
6195
- policy_id: props.policyId
6196
- });
6197
- return manager.delete();
6198
- },
6199
- value: !!manager.data.value,
6200
- isBusy: manager.busy.value
6201
- });
6636
+ const handleChanged = (value) => {
6637
+ if (value) return manager.create({
6638
+ permission_id: props.permissionId,
6639
+ policy_id: props.policyId
6640
+ });
6641
+ return manager.delete();
6642
+ };
6643
+ return {
6644
+ manager,
6645
+ handleChanged
6646
+ };
6202
6647
  }
6203
6648
  });
6204
6649
  //#endregion
6205
- //#region src/components/entities/permission-policy/APermissionPolicyAssignments.ts
6206
- const APermissionPolicyAssignments = defineComponent({
6650
+ //#region src/components/entities/permission-policy/APermissionPolicyAssignment.vue
6651
+ function _sfc_render$23(_ctx, _cache, $props, $setup, $data, $options) {
6652
+ const _component_AToggleButton = resolveComponent("AToggleButton");
6653
+ return openBlock(), createBlock(_component_AToggleButton, {
6654
+ value: !!_ctx.manager.data.value,
6655
+ "is-busy": _ctx.manager.busy.value,
6656
+ onChanged: _ctx.handleChanged
6657
+ }, null, 8, [
6658
+ "value",
6659
+ "is-busy",
6660
+ "onChanged"
6661
+ ]);
6662
+ }
6663
+ var APermissionPolicyAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APermissionPolicyAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$23]]);
6664
+ //#endregion
6665
+ //#region src/components/entities/permission-policy/APermissionPolicyAssignments.vue?vue&type=script&lang.ts
6666
+ var APermissionPolicyAssignments_vue_vue_type_script_lang_default = defineComponent({
6667
+ components: {
6668
+ APolicies,
6669
+ APermissionPolicyAssignment: APermissionPolicyAssignment_default,
6670
+ APolicyInlineInfo: APolicyInlineInfo_default,
6671
+ APolicySummary: APolicySummary_default
6672
+ },
6207
6673
  props: { entityId: {
6208
6674
  type: String,
6209
6675
  required: true
6210
6676
  } },
6211
6677
  setup(props, { slots }) {
6212
- return () => h(APolicies, { query: { filters: { parent_id: null } } }, {
6213
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(APermissionPolicyAssignment, {
6214
- permissionId: props.entityId,
6215
- policyId: slotProps.data.id,
6216
- key: slotProps.data.id
6217
- }),
6218
- ...slots
6678
+ const detailPolicy = ref(null);
6679
+ const handleKeydown = (e) => {
6680
+ if (e.key === "Escape" && detailPolicy.value) detailPolicy.value = null;
6681
+ };
6682
+ onMounted(() => {
6683
+ document.addEventListener("keydown", handleKeydown);
6684
+ });
6685
+ onUnmounted(() => {
6686
+ document.removeEventListener("keydown", handleKeydown);
6219
6687
  });
6688
+ return {
6689
+ detailPolicy,
6690
+ forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "item")))
6691
+ };
6220
6692
  }
6221
6693
  });
6222
6694
  //#endregion
6223
- //#region src/components/entities/robot-permission/ARobotPermissionAssignment.ts
6224
- const ARobotPermissionAssignment = defineComponent({
6695
+ //#region src/components/entities/permission-policy/APermissionPolicyAssignments.vue
6696
+ const _hoisted_1$8 = { class: "ms-auto" };
6697
+ const _hoisted_2$5 = ["aria-labelledby"];
6698
+ const _hoisted_3$3 = { class: "modal-content" };
6699
+ const _hoisted_4$2 = { class: "modal-header" };
6700
+ const _hoisted_5$1 = ["id"];
6701
+ const _hoisted_6$1 = { class: "modal-body" };
6702
+ const _hoisted_7$1 = { class: "modal-footer" };
6703
+ function _sfc_render$22(_ctx, _cache, $props, $setup, $data, $options) {
6704
+ const _component_APolicyInlineInfo = resolveComponent("APolicyInlineInfo");
6705
+ const _component_APermissionPolicyAssignment = resolveComponent("APermissionPolicyAssignment");
6706
+ const _component_APolicies = resolveComponent("APolicies");
6707
+ const _component_APolicySummary = resolveComponent("APolicySummary");
6708
+ return openBlock(), createElementBlock("div", null, [createVNode(_component_APolicies, { query: { filters: { parent_id: null } } }, createSlots({
6709
+ item: withCtx(({ data }) => [
6710
+ createElementVNode("div", null, toDisplayString(data.name), 1),
6711
+ createVNode(_component_APolicyInlineInfo, {
6712
+ entity: data,
6713
+ onDetail: _cache[0] || (_cache[0] = ($event) => _ctx.detailPolicy = $event)
6714
+ }, null, 8, ["entity"]),
6715
+ createElementVNode("div", _hoisted_1$8, [(openBlock(), createBlock(_component_APermissionPolicyAssignment, {
6716
+ key: data.id,
6717
+ "permission-id": _ctx.entityId,
6718
+ "policy-id": data.id
6719
+ }, null, 8, ["permission-id", "policy-id"]))])
6720
+ ]),
6721
+ _: 2
6722
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
6723
+ return {
6724
+ name,
6725
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
6726
+ };
6727
+ })]), 1024), _ctx.detailPolicy ? (openBlock(), createBlock(Teleport, {
6728
+ key: 0,
6729
+ to: "body"
6730
+ }, [createElementVNode("div", {
6731
+ class: "modal-backdrop fade show",
6732
+ onClick: _cache[1] || (_cache[1] = ($event) => _ctx.detailPolicy = null)
6733
+ }), createElementVNode("div", {
6734
+ class: "modal fade show d-block",
6735
+ tabindex: "-1",
6736
+ role: "dialog",
6737
+ "aria-modal": "true",
6738
+ "aria-labelledby": `policy-detail-modal-${_ctx.detailPolicy.id}`
6739
+ }, [createElementVNode("div", {
6740
+ class: "modal-dialog",
6741
+ role: "document",
6742
+ onClick: _cache[4] || (_cache[4] = withModifiers(() => {}, ["stop"]))
6743
+ }, [createElementVNode("div", _hoisted_3$3, [
6744
+ createElementVNode("div", _hoisted_4$2, [createElementVNode("h5", {
6745
+ id: `policy-detail-modal-${_ctx.detailPolicy.id}`,
6746
+ class: "modal-title"
6747
+ }, toDisplayString(_ctx.detailPolicy.name), 9, _hoisted_5$1), createElementVNode("button", {
6748
+ type: "button",
6749
+ class: "btn-close",
6750
+ "aria-label": "Close",
6751
+ onClick: _cache[2] || (_cache[2] = ($event) => _ctx.detailPolicy = null)
6752
+ })]),
6753
+ createElementVNode("div", _hoisted_6$1, [createVNode(_component_APolicySummary, { entity: _ctx.detailPolicy }, null, 8, ["entity"])]),
6754
+ createElementVNode("div", _hoisted_7$1, [createElementVNode("button", {
6755
+ type: "button",
6756
+ class: "btn btn-secondary btn-xs",
6757
+ onClick: _cache[3] || (_cache[3] = ($event) => _ctx.detailPolicy = null)
6758
+ }, " Close ")])
6759
+ ])])], 8, _hoisted_2$5)])) : createCommentVNode("v-if", true)]);
6760
+ }
6761
+ var APermissionPolicyAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APermissionPolicyAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$22]]);
6762
+ //#endregion
6763
+ //#region src/components/entities/robot-permission/ARobotPermissionAssignment.vue?vue&type=script&lang.ts
6764
+ var ARobotPermissionAssignment_vue_vue_type_script_lang_default = defineComponent({
6765
+ components: {
6766
+ AToggleButton: AToggleButton_default,
6767
+ APermissionPolicyBindingButton
6768
+ },
6225
6769
  props: {
6226
- robotId: String,
6227
- permissionId: String
6770
+ robotId: {
6771
+ type: String,
6772
+ required: true
6773
+ },
6774
+ permissionId: {
6775
+ type: String,
6776
+ required: true
6777
+ }
6228
6778
  },
6229
6779
  emits: defineEntityVEmitOptions(),
6230
6780
  async setup(props, setup) {
6231
6781
  const manager = defineEntityManager({
6232
6782
  type: `${EntityType.ROBOT_PERMISSION}`,
6233
6783
  setup,
6784
+ query: () => ({ filters: {
6785
+ robot_id: props.robotId,
6786
+ permission_id: props.permissionId
6787
+ } }),
6234
6788
  socket: { processEvent(event) {
6235
6789
  return event.data.permission_id === props.permissionId && event.data.robot_id === props.robotId;
6236
6790
  } }
@@ -6239,31 +6793,51 @@ const ARobotPermissionAssignment = defineComponent({
6239
6793
  robot_id: props.robotId,
6240
6794
  permission_id: props.permissionId
6241
6795
  } } });
6242
- return () => {
6243
- const children = [renderToggleButton({
6244
- changed: (value) => {
6245
- if (value) return manager.create({
6246
- robot_id: props.robotId,
6247
- permission_id: props.permissionId
6248
- });
6249
- return manager.delete();
6250
- },
6251
- value: !!manager.data.value,
6252
- isBusy: manager.busy.value
6253
- })];
6254
- if (manager.data.value) children.push(h(APermissionPolicyBindingButton, {
6255
- entityType: EntityType.ROBOT_PERMISSION,
6256
- entity: manager.data.value,
6257
- key: manager.data.value.id,
6258
- onUpdated: (entity) => {
6259
- manager.updated(entity);
6260
- }
6261
- }));
6262
- return h("span", { class: "d-flex gap-1" }, children);
6796
+ const handleChanged = (value) => {
6797
+ if (value) return manager.create({
6798
+ robot_id: props.robotId,
6799
+ permission_id: props.permissionId
6800
+ });
6801
+ return manager.delete();
6802
+ };
6803
+ const handleUpdated = (entity) => {
6804
+ manager.updated(entity);
6805
+ };
6806
+ return {
6807
+ manager,
6808
+ handleChanged,
6809
+ handleUpdated,
6810
+ EntityType
6263
6811
  };
6264
6812
  }
6265
6813
  });
6266
6814
  //#endregion
6815
+ //#region src/components/entities/robot-permission/ARobotPermissionAssignment.vue
6816
+ const _hoisted_1$7 = { class: "d-flex gap-1" };
6817
+ function _sfc_render$21(_ctx, _cache, $props, $setup, $data, $options) {
6818
+ const _component_AToggleButton = resolveComponent("AToggleButton");
6819
+ const _component_APermissionPolicyBindingButton = resolveComponent("APermissionPolicyBindingButton");
6820
+ return openBlock(), createElementBlock("span", _hoisted_1$7, [createVNode(_component_AToggleButton, {
6821
+ value: !!_ctx.manager.data.value,
6822
+ "is-busy": _ctx.manager.busy.value,
6823
+ onChanged: _ctx.handleChanged
6824
+ }, null, 8, [
6825
+ "value",
6826
+ "is-busy",
6827
+ "onChanged"
6828
+ ]), _ctx.manager.data.value ? (openBlock(), createBlock(_component_APermissionPolicyBindingButton, {
6829
+ key: _ctx.manager.data.value.id,
6830
+ "entity-type": _ctx.EntityType.ROBOT_PERMISSION,
6831
+ entity: _ctx.manager.data.value,
6832
+ onUpdated: _ctx.handleUpdated
6833
+ }, null, 8, [
6834
+ "entity-type",
6835
+ "entity",
6836
+ "onUpdated"
6837
+ ])) : createCommentVNode("v-if", true)]);
6838
+ }
6839
+ var ARobotPermissionAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARobotPermissionAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$21]]);
6840
+ //#endregion
6267
6841
  //#region src/components/entities/robot/ARobot.ts
6268
6842
  const ARobot = defineComponent({
6269
6843
  props: defineEntityVProps(),
@@ -6311,7 +6885,7 @@ const ARobotForm = defineComponent({
6311
6885
  });
6312
6886
  const $v = useVuelidate({
6313
6887
  name: {
6314
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT],
6888
+ ["alphaUpperNumHyphenUnderscoreDot"]: VuelidateCustomRule["alphaUpperNumHyphenUnderscoreDot"],
6315
6889
  minLength: minLength(3),
6316
6890
  maxLength: maxLength(128)
6317
6891
  },
@@ -6360,20 +6934,20 @@ const ARobotForm = defineComponent({
6360
6934
  };
6361
6935
  const translationsValidation = useTranslationsForNestedValidation($v.value);
6362
6936
  const translationsSubmit = createFormSubmitTranslations();
6363
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
6364
- { key: TranslatorTranslationDefaultKey.GENERATE },
6365
- { key: TranslatorTranslationDefaultKey.HASHED },
6366
- { key: TranslatorTranslationDefaultKey.NAME },
6367
- { key: TranslatorTranslationDefaultKey.DISPLAY_NAME },
6368
- { key: TranslatorTranslationDefaultKey.DESCRIPTION },
6369
- { key: TranslatorTranslationDefaultKey.SECRET }
6937
+ const translationsDefault = useTranslationsForGroup("default", [
6938
+ { key: "generate" },
6939
+ { key: "hashed" },
6940
+ { key: "name" },
6941
+ { key: "displayName" },
6942
+ { key: "description" },
6943
+ { key: "secret" }
6370
6944
  ]);
6371
6945
  const render = () => {
6372
6946
  const name = buildFormGroup({
6373
6947
  validationMessages: translationsValidation.name.value,
6374
6948
  validationSeverity: getVuelidateSeverity($v.value.name),
6375
6949
  label: true,
6376
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
6950
+ labelContent: translationsDefault["name"].value,
6377
6951
  content: buildFormInput({
6378
6952
  value: $v.value.name.$model,
6379
6953
  onChange(input) {
@@ -6386,7 +6960,7 @@ const ARobotForm = defineComponent({
6386
6960
  validationMessages: translationsValidation.display_name.value,
6387
6961
  validationSeverity: getVuelidateSeverity($v.value.display_name),
6388
6962
  label: true,
6389
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
6963
+ labelContent: translationsDefault["displayName"].value,
6390
6964
  content: buildFormInput({
6391
6965
  value: $v.value.display_name.$model,
6392
6966
  onChange(input) {
@@ -6407,8 +6981,8 @@ const ARobotForm = defineComponent({
6407
6981
  validationMessages: translationsValidation.secret.value,
6408
6982
  validationSeverity: getVuelidateSeverity($v.value.secret),
6409
6983
  label: true,
6410
- labelContent: [translationsDefault[TranslatorTranslationDefaultKey.SECRET].value, isSecretHashed.value ? h("span", { class: "text-danger font-weight-bold ps-1" }, [
6411
- translationsDefault[TranslatorTranslationDefaultKey.HASHED].value,
6984
+ labelContent: [translationsDefault["secret"].value, isSecretHashed.value ? h("span", { class: "text-danger font-weight-bold ps-1" }, [
6985
+ translationsDefault["hashed"].value,
6412
6986
  " ",
6413
6987
  h("i", { class: "fa fa-exclamation-triangle ps-1" })
6414
6988
  ]) : ""],
@@ -6428,7 +7002,7 @@ const ARobotForm = defineComponent({
6428
7002
  }, [
6429
7003
  h("i", { class: "fa fa-wrench" }),
6430
7004
  " ",
6431
- translationsDefault[TranslatorTranslationDefaultKey.GENERATE].value
7005
+ translationsDefault["generate"].value
6432
7006
  ])]);
6433
7007
  const submitForm = buildFormSubmitWithTranslations({
6434
7008
  busy: busy.value,
@@ -6474,48 +7048,78 @@ const ARobots = defineComponent({
6474
7048
  props,
6475
7049
  setup: ctx
6476
7050
  });
6477
- const translationName = useTranslation({
6478
- group: TranslatorTranslationGroup.VUECS,
6479
- key: TranslatorTranslationDefaultKey.ROBOTS
6480
- });
6481
7051
  const translation = useTranslation({
6482
- group: TranslatorTranslationGroup.VUECS,
6483
- key: TranslatorTranslationVuecsKey.NO_MORE,
6484
- data: { name: translationName }
7052
+ group: "vuecs",
7053
+ key: "noMore",
7054
+ data: { name: useTranslation({
7055
+ group: "vuecs",
7056
+ key: "robots"
7057
+ }) }
6485
7058
  });
6486
7059
  return () => render({ noMore: { content: translation.value } });
6487
7060
  }
6488
7061
  });
6489
7062
  //#endregion
6490
- //#region src/components/entities/permission-robot/APermissionRobotAssignments.ts
6491
- const APermissionRobotAssignments = defineComponent({
7063
+ //#region src/components/entities/permission-robot/APermissionRobotAssignments.vue?vue&type=script&lang.ts
7064
+ var APermissionRobotAssignments_vue_vue_type_script_lang_default = defineComponent({
7065
+ components: {
7066
+ ARobots,
7067
+ ARobotPermissionAssignment: ARobotPermissionAssignment_default
7068
+ },
6492
7069
  props: { entityId: {
6493
7070
  type: String,
6494
7071
  required: true
6495
7072
  } },
6496
7073
  setup(props, { slots }) {
6497
- return () => h(ARobots, {}, {
6498
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(ARobotPermissionAssignment, {
6499
- permissionId: props.entityId,
6500
- robotId: slotProps.data.id,
6501
- key: slotProps.data.id
6502
- }),
6503
- ...slots
6504
- });
7074
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
6505
7075
  }
6506
7076
  });
6507
7077
  //#endregion
6508
- //#region src/components/entities/role-permission/ARolePermissionAssignment.ts
6509
- const ARolePermissionAssignment = defineComponent({
7078
+ //#region src/components/entities/permission-robot/APermissionRobotAssignments.vue
7079
+ function _sfc_render$20(_ctx, _cache, $props, $setup, $data, $options) {
7080
+ const _component_ARobotPermissionAssignment = resolveComponent("ARobotPermissionAssignment");
7081
+ const _component_ARobots = resolveComponent("ARobots");
7082
+ return openBlock(), createBlock(_component_ARobots, null, createSlots({
7083
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_ARobotPermissionAssignment, {
7084
+ key: data.id,
7085
+ "permission-id": _ctx.entityId,
7086
+ "robot-id": data.id
7087
+ }, null, 8, ["permission-id", "robot-id"]))]),
7088
+ _: 2
7089
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
7090
+ return {
7091
+ name,
7092
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
7093
+ };
7094
+ })]), 1024);
7095
+ }
7096
+ var APermissionRobotAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APermissionRobotAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$20]]);
7097
+ //#endregion
7098
+ //#region src/components/entities/role-permission/ARolePermissionAssignment.vue?vue&type=script&lang.ts
7099
+ var ARolePermissionAssignment_vue_vue_type_script_lang_default = defineComponent({
7100
+ components: {
7101
+ AToggleButton: AToggleButton_default,
7102
+ APermissionPolicyBindingButton
7103
+ },
6510
7104
  props: {
6511
- roleId: String,
6512
- permissionId: String
7105
+ roleId: {
7106
+ type: String,
7107
+ required: true
7108
+ },
7109
+ permissionId: {
7110
+ type: String,
7111
+ required: true
7112
+ }
6513
7113
  },
6514
7114
  emits: defineEntityVEmitOptions(),
6515
7115
  async setup(props, setup) {
6516
7116
  const manager = defineEntityManager({
6517
7117
  type: `${EntityType.ROLE_PERMISSION}`,
6518
7118
  setup,
7119
+ query: () => ({ filters: {
7120
+ role_id: props.roleId,
7121
+ permission_id: props.permissionId
7122
+ } }),
6519
7123
  socket: { processEvent(event) {
6520
7124
  return event.data.role_id === props.roleId && event.data.permission_id === props.permissionId;
6521
7125
  } }
@@ -6524,78 +7128,146 @@ const ARolePermissionAssignment = defineComponent({
6524
7128
  role_id: props.roleId,
6525
7129
  permission_id: props.permissionId
6526
7130
  } } });
6527
- return () => {
6528
- const children = [renderToggleButton({
6529
- changed: (value) => {
6530
- if (value) return manager.create({
6531
- role_id: props.roleId,
6532
- permission_id: props.permissionId
6533
- });
6534
- return manager.delete();
6535
- },
6536
- value: !!manager.data.value,
6537
- isBusy: manager.busy.value
6538
- })];
6539
- if (manager.data.value) children.push(h(APermissionPolicyBindingButton, {
6540
- entityType: EntityType.ROLE_PERMISSION,
6541
- entity: manager.data.value,
6542
- key: manager.data.value.id,
6543
- onUpdated: (entity) => {
6544
- manager.updated(entity);
6545
- }
6546
- }));
6547
- return h("span", { class: "d-flex gap-1" }, children);
7131
+ const handleChanged = (value) => {
7132
+ if (value) return manager.create({
7133
+ role_id: props.roleId,
7134
+ permission_id: props.permissionId
7135
+ });
7136
+ return manager.delete();
7137
+ };
7138
+ const handleUpdated = (entity) => {
7139
+ manager.updated(entity);
7140
+ };
7141
+ return {
7142
+ manager,
7143
+ handleChanged,
7144
+ handleUpdated,
7145
+ EntityType
6548
7146
  };
6549
7147
  }
6550
7148
  });
6551
7149
  //#endregion
6552
- //#region src/components/entities/role-permission/ARolePermissionAssignments.ts
6553
- const ARolePermissionAssignments = defineComponent({
7150
+ //#region src/components/entities/role-permission/ARolePermissionAssignment.vue
7151
+ const _hoisted_1$6 = { class: "d-flex gap-1" };
7152
+ function _sfc_render$19(_ctx, _cache, $props, $setup, $data, $options) {
7153
+ const _component_AToggleButton = resolveComponent("AToggleButton");
7154
+ const _component_APermissionPolicyBindingButton = resolveComponent("APermissionPolicyBindingButton");
7155
+ return openBlock(), createElementBlock("span", _hoisted_1$6, [createVNode(_component_AToggleButton, {
7156
+ value: !!_ctx.manager.data.value,
7157
+ "is-busy": _ctx.manager.busy.value,
7158
+ onChanged: _ctx.handleChanged
7159
+ }, null, 8, [
7160
+ "value",
7161
+ "is-busy",
7162
+ "onChanged"
7163
+ ]), _ctx.manager.data.value ? (openBlock(), createBlock(_component_APermissionPolicyBindingButton, {
7164
+ key: _ctx.manager.data.value.id,
7165
+ "entity-type": _ctx.EntityType.ROLE_PERMISSION,
7166
+ entity: _ctx.manager.data.value,
7167
+ onUpdated: _ctx.handleUpdated
7168
+ }, null, 8, [
7169
+ "entity-type",
7170
+ "entity",
7171
+ "onUpdated"
7172
+ ])) : createCommentVNode("v-if", true)]);
7173
+ }
7174
+ var ARolePermissionAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARolePermissionAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$19]]);
7175
+ //#endregion
7176
+ //#region src/components/entities/role-permission/ARolePermissionAssignments.vue?vue&type=script&lang.ts
7177
+ var ARolePermissionAssignments_vue_vue_type_script_lang_default = defineComponent({
7178
+ components: {
7179
+ APermissions,
7180
+ ARolePermissionAssignment: ARolePermissionAssignment_default
7181
+ },
6554
7182
  props: { entityId: {
6555
7183
  type: String,
6556
7184
  required: true
6557
7185
  } },
6558
7186
  setup(props, { slots }) {
6559
- return () => h(APermissions, {}, {
6560
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(ARolePermissionAssignment, {
6561
- roleId: props.entityId,
6562
- permissionId: slotProps.data.id,
6563
- key: slotProps.data.id
6564
- }),
6565
- ...slots
6566
- });
7187
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
6567
7188
  }
6568
7189
  });
6569
7190
  //#endregion
6570
- //#region src/components/entities/permission-role/APermissionRoleAssignments.ts
6571
- const APermissionRoleAssignments = defineComponent({
7191
+ //#region src/components/entities/role-permission/ARolePermissionAssignments.vue
7192
+ function _sfc_render$18(_ctx, _cache, $props, $setup, $data, $options) {
7193
+ const _component_ARolePermissionAssignment = resolveComponent("ARolePermissionAssignment");
7194
+ const _component_APermissions = resolveComponent("APermissions");
7195
+ return openBlock(), createBlock(_component_APermissions, null, createSlots({
7196
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_ARolePermissionAssignment, {
7197
+ key: data.id,
7198
+ "role-id": _ctx.entityId,
7199
+ "permission-id": data.id
7200
+ }, null, 8, ["role-id", "permission-id"]))]),
7201
+ _: 2
7202
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
7203
+ return {
7204
+ name,
7205
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
7206
+ };
7207
+ })]), 1024);
7208
+ }
7209
+ var ARolePermissionAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARolePermissionAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$18]]);
7210
+ //#endregion
7211
+ //#region src/components/entities/permission-role/APermissionRoleAssignments.vue?vue&type=script&lang.ts
7212
+ var APermissionRoleAssignments_vue_vue_type_script_lang_default = defineComponent({
7213
+ components: {
7214
+ ARoles,
7215
+ ARolePermissionAssignment: ARolePermissionAssignment_default
7216
+ },
6572
7217
  props: { entityId: {
6573
7218
  type: String,
6574
7219
  required: true
6575
7220
  } },
6576
7221
  setup(props, { slots }) {
6577
- return () => h(ARoles, {}, {
6578
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(ARolePermissionAssignment, {
6579
- permissionId: props.entityId,
6580
- roleId: slotProps.data.id,
6581
- key: slotProps.data.id
6582
- }),
6583
- ...slots
6584
- });
7222
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
6585
7223
  }
6586
7224
  });
6587
7225
  //#endregion
6588
- //#region src/components/entities/user-permission/AUserPermissionAssignment.ts
6589
- const AUserPermissionAssignment = defineComponent({
7226
+ //#region src/components/entities/permission-role/APermissionRoleAssignments.vue
7227
+ function _sfc_render$17(_ctx, _cache, $props, $setup, $data, $options) {
7228
+ const _component_ARolePermissionAssignment = resolveComponent("ARolePermissionAssignment");
7229
+ const _component_ARoles = resolveComponent("ARoles");
7230
+ return openBlock(), createBlock(_component_ARoles, null, createSlots({
7231
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_ARolePermissionAssignment, {
7232
+ key: data.id,
7233
+ "permission-id": _ctx.entityId,
7234
+ "role-id": data.id
7235
+ }, null, 8, ["permission-id", "role-id"]))]),
7236
+ _: 2
7237
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
7238
+ return {
7239
+ name,
7240
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
7241
+ };
7242
+ })]), 1024);
7243
+ }
7244
+ var APermissionRoleAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APermissionRoleAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$17]]);
7245
+ //#endregion
7246
+ //#region src/components/entities/user-permission/AUserPermissionAssignment.vue?vue&type=script&lang.ts
7247
+ var AUserPermissionAssignment_vue_vue_type_script_lang_default = defineComponent({
7248
+ components: {
7249
+ AToggleButton: AToggleButton_default,
7250
+ APermissionPolicyBindingButton
7251
+ },
6590
7252
  props: {
6591
- userId: String,
6592
- permissionId: String
7253
+ userId: {
7254
+ type: String,
7255
+ required: true
7256
+ },
7257
+ permissionId: {
7258
+ type: String,
7259
+ required: true
7260
+ }
6593
7261
  },
6594
7262
  emits: defineEntityVEmitOptions(),
6595
7263
  async setup(props, setup) {
6596
7264
  const manager = defineEntityManager({
6597
7265
  type: `${EntityType.USER_PERMISSION}`,
6598
7266
  setup,
7267
+ query: () => ({ filters: {
7268
+ user_id: props.userId,
7269
+ permission_id: props.permissionId
7270
+ } }),
6599
7271
  socket: { processEvent(event) {
6600
7272
  return event.data.permission_id === props.permissionId && event.data.user_id === props.userId;
6601
7273
  } }
@@ -6604,49 +7276,86 @@ const AUserPermissionAssignment = defineComponent({
6604
7276
  user_id: props.userId,
6605
7277
  permission_id: props.permissionId
6606
7278
  } } });
6607
- return () => {
6608
- const children = [renderToggleButton({
6609
- changed: (value) => {
6610
- if (value) return manager.create({
6611
- user_id: props.userId,
6612
- permission_id: props.permissionId
6613
- });
6614
- return manager.delete();
6615
- },
6616
- value: !!manager.data.value,
6617
- isBusy: manager.busy.value
6618
- })];
6619
- if (manager.data.value) children.push(h(APermissionPolicyBindingButton, {
6620
- entityType: EntityType.USER_PERMISSION,
6621
- entity: manager.data.value,
6622
- key: manager.data.value.id,
6623
- onUpdated: (entity) => {
6624
- manager.updated(entity);
6625
- }
6626
- }));
6627
- return h("span", { class: "d-flex gap-1" }, children);
7279
+ const handleChanged = (value) => {
7280
+ if (value) return manager.create({
7281
+ user_id: props.userId,
7282
+ permission_id: props.permissionId
7283
+ });
7284
+ return manager.delete();
7285
+ };
7286
+ const handleUpdated = (entity) => {
7287
+ manager.updated(entity);
7288
+ };
7289
+ return {
7290
+ manager,
7291
+ handleChanged,
7292
+ handleUpdated,
7293
+ EntityType
6628
7294
  };
6629
7295
  }
6630
7296
  });
6631
7297
  //#endregion
6632
- //#region src/components/entities/user-permission/AUserPermissionAssignments.ts
6633
- const AUserPermissionAssignments = defineComponent({
7298
+ //#region src/components/entities/user-permission/AUserPermissionAssignment.vue
7299
+ const _hoisted_1$5 = { class: "d-flex gap-1" };
7300
+ function _sfc_render$16(_ctx, _cache, $props, $setup, $data, $options) {
7301
+ const _component_AToggleButton = resolveComponent("AToggleButton");
7302
+ const _component_APermissionPolicyBindingButton = resolveComponent("APermissionPolicyBindingButton");
7303
+ return openBlock(), createElementBlock("span", _hoisted_1$5, [createVNode(_component_AToggleButton, {
7304
+ value: !!_ctx.manager.data.value,
7305
+ "is-busy": _ctx.manager.busy.value,
7306
+ onChanged: _ctx.handleChanged
7307
+ }, null, 8, [
7308
+ "value",
7309
+ "is-busy",
7310
+ "onChanged"
7311
+ ]), _ctx.manager.data.value ? (openBlock(), createBlock(_component_APermissionPolicyBindingButton, {
7312
+ key: _ctx.manager.data.value.id,
7313
+ "entity-type": _ctx.EntityType.USER_PERMISSION,
7314
+ entity: _ctx.manager.data.value,
7315
+ onUpdated: _ctx.handleUpdated
7316
+ }, null, 8, [
7317
+ "entity-type",
7318
+ "entity",
7319
+ "onUpdated"
7320
+ ])) : createCommentVNode("v-if", true)]);
7321
+ }
7322
+ var AUserPermissionAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AUserPermissionAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$16]]);
7323
+ //#endregion
7324
+ //#region src/components/entities/user-permission/AUserPermissionAssignments.vue?vue&type=script&lang.ts
7325
+ var AUserPermissionAssignments_vue_vue_type_script_lang_default = defineComponent({
7326
+ components: {
7327
+ APermissions,
7328
+ AUserPermissionAssignment: AUserPermissionAssignment_default
7329
+ },
6634
7330
  props: { entityId: {
6635
7331
  type: String,
6636
7332
  required: true
6637
7333
  } },
6638
7334
  setup(props, { slots }) {
6639
- return () => h(APermissions, {}, {
6640
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AUserPermissionAssignment, {
6641
- userId: props.entityId,
6642
- permissionId: slotProps.data.id,
6643
- key: slotProps.data.id
6644
- }),
6645
- ...slots
6646
- });
7335
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
6647
7336
  }
6648
7337
  });
6649
7338
  //#endregion
7339
+ //#region src/components/entities/user-permission/AUserPermissionAssignments.vue
7340
+ function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) {
7341
+ const _component_AUserPermissionAssignment = resolveComponent("AUserPermissionAssignment");
7342
+ const _component_APermissions = resolveComponent("APermissions");
7343
+ return openBlock(), createBlock(_component_APermissions, null, createSlots({
7344
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AUserPermissionAssignment, {
7345
+ key: data.id,
7346
+ "user-id": _ctx.entityId,
7347
+ "permission-id": data.id
7348
+ }, null, 8, ["user-id", "permission-id"]))]),
7349
+ _: 2
7350
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
7351
+ return {
7352
+ name,
7353
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
7354
+ };
7355
+ })]), 1024);
7356
+ }
7357
+ var AUserPermissionAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AUserPermissionAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$15]]);
7358
+ //#endregion
6650
7359
  //#region src/components/entities/user/AUser.ts
6651
7360
  const AUser = defineComponent({
6652
7361
  props: defineEntityVProps(),
@@ -6697,7 +7406,7 @@ const AUserForm = defineComponent({
6697
7406
  const $v = useVuelidate({
6698
7407
  active: {},
6699
7408
  name: {
6700
- [VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT]: VuelidateCustomRule[VuelidateCustomRuleKey.ALPHA_UPPER_NUM_HYPHEN_UNDERSCORE_DOT],
7409
+ ["alphaUpperNumHyphenUnderscoreDot"]: VuelidateCustomRule["alphaUpperNumHyphenUnderscoreDot"],
6701
7410
  required,
6702
7411
  minLength: minLength(3),
6703
7412
  maxLength: maxLength(128)
@@ -6741,22 +7450,22 @@ const AUserForm = defineComponent({
6741
7450
  };
6742
7451
  const translationsValidation = useTranslationsForNestedValidation($v.value);
6743
7452
  const translationsSubmit = createFormSubmitTranslations();
6744
- const translationsDefault = useTranslationsForGroup(TranslatorTranslationGroup.DEFAULT, [
6745
- { key: TranslatorTranslationDefaultKey.ACTIVE },
6746
- { key: TranslatorTranslationDefaultKey.INACTIVE },
6747
- { key: TranslatorTranslationDefaultKey.DISPLAY_NAME },
6748
- { key: TranslatorTranslationDefaultKey.EMAIL },
6749
- { key: TranslatorTranslationDefaultKey.LOCKED },
6750
- { key: TranslatorTranslationDefaultKey.NOT_LOCKED },
6751
- { key: TranslatorTranslationDefaultKey.NAME },
6752
- { key: TranslatorTranslationDefaultKey.DESCRIPTION }
7453
+ const translationsDefault = useTranslationsForGroup("default", [
7454
+ { key: "active" },
7455
+ { key: "inactive" },
7456
+ { key: "displayName" },
7457
+ { key: "email" },
7458
+ { key: "locked" },
7459
+ { key: "notLocked" },
7460
+ { key: "name" },
7461
+ { key: "description" }
6753
7462
  ]);
6754
7463
  const render = () => {
6755
7464
  const name = buildFormGroup({
6756
7465
  validationMessages: translationsValidation.name.value,
6757
7466
  validationSeverity: getVuelidateSeverity($v.value.name),
6758
7467
  label: true,
6759
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.NAME].value,
7468
+ labelContent: translationsDefault["name"].value,
6760
7469
  content: buildFormInput({
6761
7470
  value: $v.value.name.$model,
6762
7471
  onChange(input) {
@@ -6770,7 +7479,7 @@ const AUserForm = defineComponent({
6770
7479
  validationMessages: translationsValidation.display_name.value,
6771
7480
  validationSeverity: getVuelidateSeverity($v.value.display_name),
6772
7481
  label: true,
6773
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.DISPLAY_NAME].value,
7482
+ labelContent: translationsDefault["displayName"].value,
6774
7483
  content: buildFormInput({
6775
7484
  value: $v.value.display_name.$model,
6776
7485
  onChange(input) {
@@ -6782,7 +7491,7 @@ const AUserForm = defineComponent({
6782
7491
  validationMessages: translationsValidation.email.value,
6783
7492
  validationSeverity: getVuelidateSeverity($v.value.email),
6784
7493
  label: true,
6785
- labelContent: translationsDefault[TranslatorTranslationDefaultKey.EMAIL].value,
7494
+ labelContent: translationsDefault["email"].value,
6786
7495
  content: buildFormInput({
6787
7496
  value: $v.value.email.$model,
6788
7497
  props: {
@@ -6802,7 +7511,7 @@ const AUserForm = defineComponent({
6802
7511
  labelContent: h("span", { class: {
6803
7512
  "text-warning": !form.name_locked,
6804
7513
  "text-success": form.name_locked
6805
- } }, [form.name_locked ? translationsDefault[TranslatorTranslationDefaultKey.LOCKED].value : translationsDefault[TranslatorTranslationDefaultKey.NOT_LOCKED].value]),
7514
+ } }, [form.name_locked ? translationsDefault["locked"].value : translationsDefault["notLocked"].value]),
6806
7515
  value: form.name_locked,
6807
7516
  onChange(input) {
6808
7517
  form.name_locked = input;
@@ -6813,7 +7522,7 @@ const AUserForm = defineComponent({
6813
7522
  labelContent: h("span", { class: {
6814
7523
  "text-danger": !form.active,
6815
7524
  "text-success": form.active
6816
- } }, [form.active ? translationsDefault[TranslatorTranslationDefaultKey.ACTIVE].value : translationsDefault[TranslatorTranslationDefaultKey.INACTIVE].value]),
7525
+ } }, [form.active ? translationsDefault["active"].value : translationsDefault["inactive"].value]),
6817
7526
  value: form.active,
6818
7527
  onChange(input) {
6819
7528
  form.active = input;
@@ -6863,14 +7572,13 @@ const AUsers = defineComponent({
6863
7572
  props,
6864
7573
  setup: ctx
6865
7574
  });
6866
- const translationName = useTranslation({
6867
- group: TranslatorTranslationGroup.DEFAULT,
6868
- key: TranslatorTranslationDefaultKey.USERS
6869
- });
6870
7575
  const translation = useTranslation({
6871
- group: TranslatorTranslationGroup.VUECS,
6872
- key: TranslatorTranslationVuecsKey.NO_MORE,
6873
- data: { name: translationName }
7576
+ group: "vuecs",
7577
+ key: "noMore",
7578
+ data: { name: useTranslation({
7579
+ group: "default",
7580
+ key: "users"
7581
+ }) }
6874
7582
  });
6875
7583
  return () => render({ noMore: { content: translation.value } });
6876
7584
  }
@@ -6979,53 +7687,98 @@ const AUserPasswordForm = defineComponent({
6979
7687
  }
6980
7688
  });
6981
7689
  //#endregion
6982
- //#region src/components/entities/permission-user/APermissionUserAssignments.ts
6983
- const APermissionUserAssignments = defineComponent({
7690
+ //#region src/components/entities/permission-user/APermissionUserAssignments.vue?vue&type=script&lang.ts
7691
+ var APermissionUserAssignments_vue_vue_type_script_lang_default = defineComponent({
7692
+ components: {
7693
+ AUsers,
7694
+ AUserPermissionAssignment: AUserPermissionAssignment_default
7695
+ },
6984
7696
  props: { entityId: {
6985
7697
  type: String,
6986
7698
  required: true
6987
7699
  } },
6988
7700
  setup(props, { slots }) {
6989
- return () => h(AUsers, {}, {
6990
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AUserPermissionAssignment, {
6991
- permissionId: props.entityId,
6992
- userId: slotProps.data.id,
6993
- key: slotProps.data.id
6994
- }),
6995
- ...slots
6996
- });
7701
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
6997
7702
  }
6998
7703
  });
6999
7704
  //#endregion
7000
- //#region src/components/entities/robot-permission/ARobotPermissionAssignments.ts
7001
- const ARobotPermissionAssignments = defineComponent({
7705
+ //#region src/components/entities/permission-user/APermissionUserAssignments.vue
7706
+ function _sfc_render$14(_ctx, _cache, $props, $setup, $data, $options) {
7707
+ const _component_AUserPermissionAssignment = resolveComponent("AUserPermissionAssignment");
7708
+ const _component_AUsers = resolveComponent("AUsers");
7709
+ return openBlock(), createBlock(_component_AUsers, null, createSlots({
7710
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AUserPermissionAssignment, {
7711
+ key: data.id,
7712
+ "permission-id": _ctx.entityId,
7713
+ "user-id": data.id
7714
+ }, null, 8, ["permission-id", "user-id"]))]),
7715
+ _: 2
7716
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
7717
+ return {
7718
+ name,
7719
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
7720
+ };
7721
+ })]), 1024);
7722
+ }
7723
+ var APermissionUserAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(APermissionUserAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$14]]);
7724
+ //#endregion
7725
+ //#region src/components/entities/robot-permission/ARobotPermissionAssignments.vue?vue&type=script&lang.ts
7726
+ var ARobotPermissionAssignments_vue_vue_type_script_lang_default = defineComponent({
7727
+ components: {
7728
+ APermissions,
7729
+ ARobotPermissionAssignment: ARobotPermissionAssignment_default
7730
+ },
7002
7731
  props: { entityId: {
7003
7732
  type: String,
7004
7733
  required: true
7005
7734
  } },
7006
7735
  setup(props, { slots }) {
7007
- return () => h(APermissions, {}, {
7008
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(ARobotPermissionAssignment, {
7009
- robotId: props.entityId,
7010
- permissionId: slotProps.data.id,
7011
- key: slotProps.data.id
7012
- }),
7013
- ...slots
7014
- });
7736
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
7015
7737
  }
7016
7738
  });
7017
7739
  //#endregion
7018
- //#region src/components/entities/robot-role/ARobotRoleAssignment.ts
7019
- const ARobotRoleAssignment = defineComponent({
7740
+ //#region src/components/entities/robot-permission/ARobotPermissionAssignments.vue
7741
+ function _sfc_render$13(_ctx, _cache, $props, $setup, $data, $options) {
7742
+ const _component_ARobotPermissionAssignment = resolveComponent("ARobotPermissionAssignment");
7743
+ const _component_APermissions = resolveComponent("APermissions");
7744
+ return openBlock(), createBlock(_component_APermissions, null, createSlots({
7745
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_ARobotPermissionAssignment, {
7746
+ key: data.id,
7747
+ "robot-id": _ctx.entityId,
7748
+ "permission-id": data.id
7749
+ }, null, 8, ["robot-id", "permission-id"]))]),
7750
+ _: 2
7751
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
7752
+ return {
7753
+ name,
7754
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
7755
+ };
7756
+ })]), 1024);
7757
+ }
7758
+ var ARobotPermissionAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARobotPermissionAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$13]]);
7759
+ //#endregion
7760
+ //#region src/components/entities/robot-role/ARobotRoleAssignment.vue?vue&type=script&lang.ts
7761
+ var ARobotRoleAssignment_vue_vue_type_script_lang_default = defineComponent({
7762
+ components: { AToggleButton: AToggleButton_default },
7020
7763
  props: {
7021
- roleId: String,
7022
- robotId: String
7764
+ roleId: {
7765
+ type: String,
7766
+ required: true
7767
+ },
7768
+ robotId: {
7769
+ type: String,
7770
+ required: true
7771
+ }
7023
7772
  },
7024
7773
  emits: defineEntityVEmitOptions(),
7025
7774
  async setup(props, setup) {
7026
7775
  const manager = defineEntityManager({
7027
7776
  type: `${EntityType.ROBOT_ROLE}`,
7028
7777
  setup,
7778
+ query: () => ({ filters: {
7779
+ robot_id: props.robotId,
7780
+ role_id: props.roleId
7781
+ } }),
7029
7782
  socket: { processEvent(event) {
7030
7783
  return event.data.robot_id === props.robotId && event.data.role_id === props.roleId;
7031
7784
  } }
@@ -7034,70 +7787,146 @@ const ARobotRoleAssignment = defineComponent({
7034
7787
  robot_id: props.robotId,
7035
7788
  role_id: props.roleId
7036
7789
  } } });
7037
- return () => renderToggleButton({
7038
- changed: (value) => {
7039
- if (value) return manager.create({
7040
- robot_id: props.robotId,
7041
- role_id: props.roleId
7042
- });
7043
- return manager.delete();
7044
- },
7045
- value: !!manager.data.value,
7046
- isBusy: manager.busy.value
7047
- });
7790
+ const handleChanged = (value) => {
7791
+ if (value) return manager.create({
7792
+ robot_id: props.robotId,
7793
+ role_id: props.roleId
7794
+ });
7795
+ return manager.delete();
7796
+ };
7797
+ return {
7798
+ manager,
7799
+ handleChanged
7800
+ };
7048
7801
  }
7049
7802
  });
7050
7803
  //#endregion
7051
- //#region src/components/entities/robot-role/ARobotRoleAssignments.ts
7052
- const ARobotRoleAssignments = defineComponent({
7053
- props: { entityId: String },
7804
+ //#region src/components/entities/robot-role/ARobotRoleAssignment.vue
7805
+ function _sfc_render$12(_ctx, _cache, $props, $setup, $data, $options) {
7806
+ const _component_AToggleButton = resolveComponent("AToggleButton");
7807
+ return openBlock(), createBlock(_component_AToggleButton, {
7808
+ value: !!_ctx.manager.data.value,
7809
+ "is-busy": _ctx.manager.busy.value,
7810
+ onChanged: _ctx.handleChanged
7811
+ }, null, 8, [
7812
+ "value",
7813
+ "is-busy",
7814
+ "onChanged"
7815
+ ]);
7816
+ }
7817
+ var ARobotRoleAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARobotRoleAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$12]]);
7818
+ //#endregion
7819
+ //#region src/components/entities/robot-role/ARobotRoleAssignments.vue?vue&type=script&lang.ts
7820
+ var ARobotRoleAssignments_vue_vue_type_script_lang_default = defineComponent({
7821
+ components: {
7822
+ ARoles,
7823
+ ARobotRoleAssignment: ARobotRoleAssignment_default
7824
+ },
7825
+ props: { entityId: {
7826
+ type: String,
7827
+ required: true
7828
+ } },
7054
7829
  setup(props, { slots }) {
7055
- return () => h(ARoles, {}, {
7056
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(ARobotRoleAssignment, {
7057
- robotId: props.entityId,
7058
- roleId: slotProps.data.id,
7059
- key: slotProps.data.id
7060
- }),
7061
- ...slots
7062
- });
7830
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
7063
7831
  }
7064
7832
  });
7065
7833
  //#endregion
7066
- //#region src/components/entities/role-client/ARoleClientAssignments.ts
7067
- const ARoleClientAssignments = defineComponent({
7068
- props: { entityId: String },
7069
- setup(props) {
7070
- return () => h(AClients, {}, { [SlotName.ITEM_ACTIONS]: (slotProps) => h(AClientRoleAssignment, {
7071
- roleId: props.entityId,
7072
- clientId: slotProps.data.id,
7073
- key: slotProps.data.id
7074
- }) });
7075
- }
7834
+ //#region src/components/entities/robot-role/ARobotRoleAssignments.vue
7835
+ function _sfc_render$11(_ctx, _cache, $props, $setup, $data, $options) {
7836
+ const _component_ARobotRoleAssignment = resolveComponent("ARobotRoleAssignment");
7837
+ const _component_ARoles = resolveComponent("ARoles");
7838
+ return openBlock(), createBlock(_component_ARoles, null, createSlots({
7839
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_ARobotRoleAssignment, {
7840
+ key: data.id,
7841
+ "robot-id": _ctx.entityId,
7842
+ "role-id": data.id
7843
+ }, null, 8, ["robot-id", "role-id"]))]),
7844
+ _: 2
7845
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
7846
+ return {
7847
+ name,
7848
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
7849
+ };
7850
+ })]), 1024);
7851
+ }
7852
+ var ARobotRoleAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARobotRoleAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$11]]);
7853
+ //#endregion
7854
+ //#region src/components/entities/role-client/ARoleClientAssignments.vue?vue&type=script&lang.ts
7855
+ var ARoleClientAssignments_vue_vue_type_script_lang_default = defineComponent({
7856
+ components: {
7857
+ AClients,
7858
+ AClientRoleAssignment: AClientRoleAssignment_default
7859
+ },
7860
+ props: { entityId: {
7861
+ type: String,
7862
+ required: true
7863
+ } }
7076
7864
  });
7077
7865
  //#endregion
7078
- //#region src/components/entities/role-robot/ARoleRobotAssignments.ts
7079
- const ARoleRobotAssignments = defineComponent({
7080
- props: { entityId: String },
7081
- setup(props) {
7082
- return () => h(ARobots, {}, { [SlotName.ITEM_ACTIONS]: (slotProps) => h(ARobotRoleAssignment, {
7083
- roleId: props.entityId,
7084
- robotId: slotProps.data.id,
7085
- key: slotProps.data.id
7086
- }) });
7087
- }
7866
+ //#region src/components/entities/role-client/ARoleClientAssignments.vue
7867
+ function _sfc_render$10(_ctx, _cache, $props, $setup, $data, $options) {
7868
+ const _component_AClientRoleAssignment = resolveComponent("AClientRoleAssignment");
7869
+ const _component_AClients = resolveComponent("AClients");
7870
+ return openBlock(), createBlock(_component_AClients, null, {
7871
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AClientRoleAssignment, {
7872
+ key: data.id,
7873
+ "role-id": _ctx.entityId,
7874
+ "client-id": data.id
7875
+ }, null, 8, ["role-id", "client-id"]))]),
7876
+ _: 1
7877
+ });
7878
+ }
7879
+ var ARoleClientAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARoleClientAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$10]]);
7880
+ //#endregion
7881
+ //#region src/components/entities/role-robot/ARoleRobotAssignments.vue?vue&type=script&lang.ts
7882
+ var ARoleRobotAssignments_vue_vue_type_script_lang_default = defineComponent({
7883
+ components: {
7884
+ ARobots,
7885
+ ARobotRoleAssignment: ARobotRoleAssignment_default
7886
+ },
7887
+ props: { entityId: {
7888
+ type: String,
7889
+ required: true
7890
+ } }
7088
7891
  });
7089
7892
  //#endregion
7090
- //#region src/components/entities/user-role/AUserRoleAssignment.ts
7091
- const AUserRoleAssignment = defineComponent({
7893
+ //#region src/components/entities/role-robot/ARoleRobotAssignments.vue
7894
+ function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) {
7895
+ const _component_ARobotRoleAssignment = resolveComponent("ARobotRoleAssignment");
7896
+ const _component_ARobots = resolveComponent("ARobots");
7897
+ return openBlock(), createBlock(_component_ARobots, null, {
7898
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_ARobotRoleAssignment, {
7899
+ key: data.id,
7900
+ "role-id": _ctx.entityId,
7901
+ "robot-id": data.id
7902
+ }, null, 8, ["role-id", "robot-id"]))]),
7903
+ _: 1
7904
+ });
7905
+ }
7906
+ var ARoleRobotAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARoleRobotAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$9]]);
7907
+ //#endregion
7908
+ //#region src/components/entities/user-role/AUserRoleAssignment.vue?vue&type=script&lang.ts
7909
+ var AUserRoleAssignment_vue_vue_type_script_lang_default = defineComponent({
7910
+ components: { AToggleButton: AToggleButton_default },
7092
7911
  props: {
7093
- roleId: String,
7094
- userId: String
7912
+ roleId: {
7913
+ type: String,
7914
+ required: true
7915
+ },
7916
+ userId: {
7917
+ type: String,
7918
+ required: true
7919
+ }
7095
7920
  },
7096
7921
  emits: defineEntityVEmitOptions(),
7097
7922
  async setup(props, setup) {
7098
7923
  const manager = defineEntityManager({
7099
7924
  type: `${EntityType.USER_ROLE}`,
7100
7925
  setup,
7926
+ query: () => ({ filters: {
7927
+ user_id: props.userId,
7928
+ role_id: props.roleId
7929
+ } }),
7101
7930
  socket: { processEvent(event) {
7102
7931
  return event.data.role_id === props.roleId && event.data.user_id === props.userId;
7103
7932
  } }
@@ -7106,81 +7935,153 @@ const AUserRoleAssignment = defineComponent({
7106
7935
  user_id: props.userId,
7107
7936
  role_id: props.roleId
7108
7937
  } } });
7109
- return () => renderToggleButton({
7110
- changed: (value) => {
7111
- if (value) return manager.create({
7112
- user_id: props.userId,
7113
- role_id: props.roleId
7114
- });
7115
- return manager.delete();
7116
- },
7117
- value: !!manager.data.value,
7118
- isBusy: manager.busy.value
7119
- });
7938
+ const handleChanged = (value) => {
7939
+ if (value) return manager.create({
7940
+ user_id: props.userId,
7941
+ role_id: props.roleId
7942
+ });
7943
+ return manager.delete();
7944
+ };
7945
+ return {
7946
+ manager,
7947
+ handleChanged
7948
+ };
7120
7949
  }
7121
7950
  });
7122
7951
  //#endregion
7123
- //#region src/components/entities/user-role/AUserRoleAssignments.ts
7124
- const AUserRoleAssignments = defineComponent({
7125
- props: { entityId: String },
7952
+ //#region src/components/entities/user-role/AUserRoleAssignment.vue
7953
+ function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) {
7954
+ const _component_AToggleButton = resolveComponent("AToggleButton");
7955
+ return openBlock(), createBlock(_component_AToggleButton, {
7956
+ value: !!_ctx.manager.data.value,
7957
+ "is-busy": _ctx.manager.busy.value,
7958
+ onChanged: _ctx.handleChanged
7959
+ }, null, 8, [
7960
+ "value",
7961
+ "is-busy",
7962
+ "onChanged"
7963
+ ]);
7964
+ }
7965
+ var AUserRoleAssignment_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AUserRoleAssignment_vue_vue_type_script_lang_default, [["render", _sfc_render$8]]);
7966
+ //#endregion
7967
+ //#region src/components/entities/user-role/AUserRoleAssignments.vue?vue&type=script&lang.ts
7968
+ var AUserRoleAssignments_vue_vue_type_script_lang_default = defineComponent({
7969
+ components: {
7970
+ ARoles,
7971
+ AUserRoleAssignment: AUserRoleAssignment_default
7972
+ },
7973
+ props: { entityId: {
7974
+ type: String,
7975
+ required: true
7976
+ } },
7126
7977
  setup(props, { slots }) {
7127
- return () => h(ARoles, {}, {
7128
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AUserRoleAssignment, {
7129
- userId: props.entityId,
7130
- roleId: slotProps.data.id,
7131
- key: slotProps.data.id
7132
- }),
7133
- ...slots
7134
- });
7978
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
7135
7979
  }
7136
7980
  });
7137
7981
  //#endregion
7138
- //#region src/components/entities/role-user/ARoleUserAssignments.ts
7139
- const ARoleUserAssignments = defineComponent({
7140
- props: { entityId: String },
7982
+ //#region src/components/entities/user-role/AUserRoleAssignments.vue
7983
+ function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {
7984
+ const _component_AUserRoleAssignment = resolveComponent("AUserRoleAssignment");
7985
+ const _component_ARoles = resolveComponent("ARoles");
7986
+ return openBlock(), createBlock(_component_ARoles, null, createSlots({
7987
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AUserRoleAssignment, {
7988
+ key: data.id,
7989
+ "user-id": _ctx.entityId,
7990
+ "role-id": data.id
7991
+ }, null, 8, ["user-id", "role-id"]))]),
7992
+ _: 2
7993
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
7994
+ return {
7995
+ name,
7996
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
7997
+ };
7998
+ })]), 1024);
7999
+ }
8000
+ var AUserRoleAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AUserRoleAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$7]]);
8001
+ //#endregion
8002
+ //#region src/components/entities/role-user/ARoleUserAssignments.vue?vue&type=script&lang.ts
8003
+ var ARoleUserAssignments_vue_vue_type_script_lang_default = defineComponent({
8004
+ components: {
8005
+ AUsers,
8006
+ AUserRoleAssignment: AUserRoleAssignment_default
8007
+ },
8008
+ props: { entityId: {
8009
+ type: String,
8010
+ required: true
8011
+ } },
7141
8012
  setup(props, { slots }) {
7142
- return () => h(AUsers, {}, {
7143
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AUserRoleAssignment, {
7144
- roleId: props.entityId,
7145
- userId: slotProps.data.id,
7146
- key: slotProps.data.id
7147
- }),
7148
- ...slots
7149
- });
8013
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
7150
8014
  }
7151
8015
  });
7152
8016
  //#endregion
7153
- //#region src/components/entities/scope-client/AScopeClientAssignments.ts
7154
- const AScopeClientAssignments = defineComponent({
8017
+ //#region src/components/entities/role-user/ARoleUserAssignments.vue
8018
+ function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {
8019
+ const _component_AUserRoleAssignment = resolveComponent("AUserRoleAssignment");
8020
+ const _component_AUsers = resolveComponent("AUsers");
8021
+ return openBlock(), createBlock(_component_AUsers, null, createSlots({
8022
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AUserRoleAssignment, {
8023
+ key: data.id,
8024
+ "role-id": _ctx.entityId,
8025
+ "user-id": data.id
8026
+ }, null, 8, ["role-id", "user-id"]))]),
8027
+ _: 2
8028
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
8029
+ return {
8030
+ name,
8031
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
8032
+ };
8033
+ })]), 1024);
8034
+ }
8035
+ var ARoleUserAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ARoleUserAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$6]]);
8036
+ //#endregion
8037
+ //#region src/components/entities/scope-client/AScopeClientAssignments.vue?vue&type=script&lang.ts
8038
+ var AScopeClientAssignments_vue_vue_type_script_lang_default = defineComponent({
8039
+ components: {
8040
+ AClients,
8041
+ AClientScopeAssignment: AClientScopeAssignment_default
8042
+ },
7155
8043
  props: { entityId: {
7156
8044
  type: String,
7157
8045
  required: true
7158
8046
  } },
7159
8047
  setup(props, { slots }) {
7160
- return () => h(AClients, {}, {
7161
- [SlotName.ITEM_ACTIONS]: (slotProps) => h(AClientScopeAssignment, {
7162
- scopeId: props.entityId,
7163
- clientId: slotProps.data.id,
7164
- key: slotProps.data.id
7165
- }),
7166
- ...slots
7167
- });
8048
+ return { forwardedSlots: computed(() => Object.fromEntries(Object.entries(slots).filter(([name]) => name !== "itemActions"))) };
7168
8049
  }
7169
8050
  });
7170
8051
  //#endregion
8052
+ //#region src/components/entities/scope-client/AScopeClientAssignments.vue
8053
+ function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
8054
+ const _component_AClientScopeAssignment = resolveComponent("AClientScopeAssignment");
8055
+ const _component_AClients = resolveComponent("AClients");
8056
+ return openBlock(), createBlock(_component_AClients, null, createSlots({
8057
+ itemActions: withCtx(({ data }) => [(openBlock(), createBlock(_component_AClientScopeAssignment, {
8058
+ key: data.id,
8059
+ "scope-id": _ctx.entityId,
8060
+ "client-id": data.id
8061
+ }, null, 8, ["scope-id", "client-id"]))]),
8062
+ _: 2
8063
+ }, [renderList(_ctx.forwardedSlots, (_, name) => {
8064
+ return {
8065
+ name,
8066
+ fn: withCtx((slotData) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotData ?? {})))])
8067
+ };
8068
+ })]), 1024);
8069
+ }
8070
+ var AScopeClientAssignments_default = /* @__PURE__ */ _plugin_vue_export_helper_default(AScopeClientAssignments_vue_vue_type_script_lang_default, [["render", _sfc_render$5]]);
8071
+ //#endregion
7171
8072
  //#region src/components/entities/index.ts
7172
8073
  var entities_exports = /* @__PURE__ */ __exportAll({
7173
8074
  AAttributeNamesPolicyForm: () => AAttributeNamesPolicyForm_default,
7174
8075
  AClient: () => AClient,
7175
8076
  AClientForm: () => AClientForm_default,
7176
- AClientPermissionAssignment: () => AClientPermissionAssignment,
7177
- AClientPermissionAssignments: () => AClientPermissionAssignments,
8077
+ AClientPermissionAssignment: () => AClientPermissionAssignment_default,
8078
+ AClientPermissionAssignments: () => AClientPermissionAssignments_default,
7178
8079
  AClientPicker: () => AClientPicker,
7179
- AClientRoleAssignment: () => AClientRoleAssignment,
7180
- AClientRoleAssignments: () => AClientRoleAssignments,
8080
+ AClientRoleAssignment: () => AClientRoleAssignment_default,
8081
+ AClientRoleAssignments: () => AClientRoleAssignments_default,
7181
8082
  AClientScope: () => AClientScope,
7182
- AClientScopeAssignment: () => AClientScopeAssignment,
7183
- AClientScopeAssignments: () => AClientScopeAssignments,
8083
+ AClientScopeAssignment: () => AClientScopeAssignment_default,
8084
+ AClientScopeAssignments: () => AClientScopeAssignments_default,
7184
8085
  AClientScopes: () => AClientScopes,
7185
8086
  AClients: () => AClients,
7186
8087
  ACompositePolicyForm: () => ACompositePolicyForm_default,
@@ -7188,28 +8089,32 @@ var entities_exports = /* @__PURE__ */ __exportAll({
7188
8089
  AIdentityPolicyForm: () => AIdentityPolicyForm_default,
7189
8090
  AIdentityProvider: () => AIdentityProvider,
7190
8091
  AIdentityProviderForm: () => AIdentityProviderForm,
7191
- AIdentityProviderIcon: () => AIdentityProviderIcon,
8092
+ AIdentityProviderIcon: () => AIdentityProviderIcon_default,
7192
8093
  AIdentityProviderLdapForm: () => AIdentityProviderLdapForm,
7193
8094
  AIdentityProviderOAuth2Form: () => AIdentityProviderOAuth2Form,
7194
8095
  AIdentityProviderPreset: () => AIdentityProviderPreset,
7195
8096
  AIdentityProviderProtocol: () => AIdentityProviderProtocol,
7196
- AIdentityProviderRoleAssignment: () => AIdentityProviderRoleAssignment,
7197
- AIdentityProviderRoleAssignments: () => AIdentityProviderRoleAssignments,
8097
+ AIdentityProviderRoleAssignment: () => AIdentityProviderRoleAssignment_default,
8098
+ AIdentityProviderRoleAssignments: () => AIdentityProviderRoleAssignments_default,
7198
8099
  AIdentityProviders: () => AIdentityProviders,
7199
8100
  APermission: () => APermission,
7200
8101
  APermissionCheck: () => APermissionCheck,
7201
- APermissionClientAssignments: () => APermissionClientAssignments,
8102
+ APermissionClientAssignments: () => APermissionClientAssignments_default,
7202
8103
  APermissionForm: () => APermissionForm,
7203
- APermissionPolicyAssignment: () => APermissionPolicyAssignment,
7204
- APermissionPolicyAssignments: () => APermissionPolicyAssignments,
8104
+ APermissionPolicyAssignment: () => APermissionPolicyAssignment_default,
8105
+ APermissionPolicyAssignments: () => APermissionPolicyAssignments_default,
7205
8106
  APermissionPolicyBindingButton: () => APermissionPolicyBindingButton,
7206
- APermissionRobotAssignments: () => APermissionRobotAssignments,
7207
- APermissionRoleAssignments: () => APermissionRoleAssignments,
7208
- APermissionUserAssignments: () => APermissionUserAssignments,
8107
+ APermissionRobotAssignments: () => APermissionRobotAssignments_default,
8108
+ APermissionRoleAssignments: () => APermissionRoleAssignments_default,
8109
+ APermissionUserAssignments: () => APermissionUserAssignments_default,
7209
8110
  APermissions: () => APermissions,
7210
8111
  APolicies: () => APolicies,
7211
8112
  APolicy: () => APolicy,
8113
+ APolicyDetailNav: () => APolicyDetailNav_default,
7212
8114
  APolicyForm: () => APolicyForm_default,
8115
+ APolicyInlineInfo: () => APolicyInlineInfo_default,
8116
+ APolicySummary: () => APolicySummary_default,
8117
+ APolicyTypeBadge: () => APolicyTypeBadge_default,
7213
8118
  APolicyTypePicker: () => APolicyTypePicker_default,
7214
8119
  ARealm: () => ARealm,
7215
8120
  ARealmForm: () => ARealmForm,
@@ -7218,31 +8123,31 @@ var entities_exports = /* @__PURE__ */ __exportAll({
7218
8123
  ARealms: () => ARealms,
7219
8124
  ARobot: () => ARobot,
7220
8125
  ARobotForm: () => ARobotForm,
7221
- ARobotPermissionAssignment: () => ARobotPermissionAssignment,
7222
- ARobotPermissionAssignments: () => ARobotPermissionAssignments,
7223
- ARobotRoleAssignment: () => ARobotRoleAssignment,
7224
- ARobotRoleAssignments: () => ARobotRoleAssignments,
8126
+ ARobotPermissionAssignment: () => ARobotPermissionAssignment_default,
8127
+ ARobotPermissionAssignments: () => ARobotPermissionAssignments_default,
8128
+ ARobotRoleAssignment: () => ARobotRoleAssignment_default,
8129
+ ARobotRoleAssignments: () => ARobotRoleAssignments_default,
7225
8130
  ARobots: () => ARobots,
7226
8131
  ARole: () => ARole,
7227
- ARoleClientAssignments: () => ARoleClientAssignments,
8132
+ ARoleClientAssignments: () => ARoleClientAssignments_default,
7228
8133
  ARoleForm: () => ARoleForm,
7229
- ARolePermissionAssignment: () => ARolePermissionAssignment,
7230
- ARolePermissionAssignments: () => ARolePermissionAssignments,
7231
- ARoleRobotAssignments: () => ARoleRobotAssignments,
7232
- ARoleUserAssignments: () => ARoleUserAssignments,
8134
+ ARolePermissionAssignment: () => ARolePermissionAssignment_default,
8135
+ ARolePermissionAssignments: () => ARolePermissionAssignments_default,
8136
+ ARoleRobotAssignments: () => ARoleRobotAssignments_default,
8137
+ ARoleUserAssignments: () => ARoleUserAssignments_default,
7233
8138
  ARoles: () => ARoles,
7234
8139
  AScope: () => AScope,
7235
- AScopeClientAssignments: () => AScopeClientAssignments,
8140
+ AScopeClientAssignments: () => AScopeClientAssignments_default,
7236
8141
  AScopeForm: () => AScopeForm,
7237
8142
  AScopes: () => AScopes,
7238
8143
  ATimePolicyForm: () => ATimePolicyForm_default,
7239
8144
  AUser: () => AUser,
7240
8145
  AUserForm: () => AUserForm,
7241
8146
  AUserPasswordForm: () => AUserPasswordForm,
7242
- AUserPermissionAssignment: () => AUserPermissionAssignment,
7243
- AUserPermissionAssignments: () => AUserPermissionAssignments,
7244
- AUserRoleAssignment: () => AUserRoleAssignment,
7245
- AUserRoleAssignments: () => AUserRoleAssignments,
8147
+ AUserPermissionAssignment: () => AUserPermissionAssignment_default,
8148
+ AUserPermissionAssignments: () => AUserPermissionAssignments_default,
8149
+ AUserRoleAssignment: () => AUserRoleAssignment_default,
8150
+ AUserRoleAssignments: () => AUserRoleAssignments_default,
7246
8151
  AUsers: () => AUsers
7247
8152
  });
7248
8153
  //#endregion
@@ -7296,7 +8201,7 @@ var Login_vue_vue_type_script_lang_default = defineComponent({
7296
8201
  ATitle,
7297
8202
  IVuelidate,
7298
8203
  AIdentityProviders,
7299
- AIdentityProviderIcon
8204
+ AIdentityProviderIcon: AIdentityProviderIcon_default
7300
8205
  },
7301
8206
  props: { codeRequest: { type: Object } },
7302
8207
  emits: ["done", "failed"],
@@ -7737,6 +8642,6 @@ var Authorize_default = defineComponent({
7737
8642
  //#region src/index.ts
7738
8643
  var src_default = { install };
7739
8644
  //#endregion
7740
- export { AAttributeNamesPolicyForm_default as AAttributeNamesPolicyForm, Authorize_default as AAuthorize, AuthorizeText_default as AAuthorizeText, AClient, AClientForm_default as AClientForm, AClientPermissionAssignment, AClientPermissionAssignments, AClientPicker, AClientRoleAssignment, AClientRoleAssignments, AClientScope, AClientScopeAssignment, AClientScopeAssignments, AClientScopes, AClients, ACompositePolicyForm_default as ACompositePolicyForm, ADatePolicyForm_default as ADatePolicyForm, AEntityDelete, AFormInputList_default as AFormInputList, AFormInputListItem_default as AFormInputListItem, AFormSubmit, AIdentityPolicyForm_default as AIdentityPolicyForm, AIdentityProvider, AIdentityProviderForm, AIdentityProviderIcon, AIdentityProviderLdapForm, AIdentityProviderOAuth2Form, AIdentityProviderPreset, AIdentityProviderProtocol, AIdentityProviderRoleAssignment, AIdentityProviderRoleAssignments, AIdentityProviders, Login_default as ALogin, APagination, APermission, APermissionCheck, APermissionClientAssignments, APermissionForm, APermissionPolicyAssignment, APermissionPolicyAssignments, APermissionPolicyBindingButton, APermissionRobotAssignments, APermissionRoleAssignments, APermissionUserAssignments, APermissions, APolicies, APolicy, APolicyForm_default as APolicyForm, APolicyTypePicker_default as APolicyTypePicker, ARealm, ARealmForm, ARealmMatchPolicyForm_default as ARealmMatchPolicyForm, ARealmPicker, ARealms, ARobot, ARobotForm, ARobotPermissionAssignment, ARobotPermissionAssignments, ARobotRoleAssignment, ARobotRoleAssignments, ARobots, ARole, ARoleClientAssignments, ARoleForm, ARolePermissionAssignment, ARolePermissionAssignments, ARoleRobotAssignments, ARoleUserAssignments, ARoles, AScope, AScopeClientAssignments, AScopeForm, AScopes, ASearch, ATimePolicyForm_default as ATimePolicyForm, ATitle, AUser, AUserForm, AUserPasswordForm, AUserPermissionAssignment, AUserPermissionAssignments, AUserRoleAssignment, AUserRoleAssignments, AUsers, EntityRecordError, HTTPClientSymbol, LanguageSwitcherDropdown, ListHandlers, STORE_ID, SocketClientSymbol, StoreDispatcherEventName, TranslatorTranslationClientKey, TranslatorTranslationDefaultKey, TranslatorTranslationGroup, TranslatorTranslationVuecsKey, VuelidateCustomRule, VuelidateCustomRuleKey, assignFormProperties, buildEntityVSlotProps, buildFormSubmitWithTranslations, createFormSubmitTranslations, createPermissionCheckerReactiveFn, createStore, createStoreDispatcher, src_default as default, defineEntityCollectionManager, defineEntityCollectionVEmitOptions, defineEntityCollectionVProps, defineEntityManager, defineEntityPicker, defineEntityPickerVEmitOptions, defineEntityPickerVProps, defineEntitySocketManager, defineEntityVEmitOptions, defineEntityVProps, extractVuelidateResultsFromChild, getVuelidateSeverity, hasHTTPClient, hasHTTPClientAuthenticationHook, hasNormalizedSlot, hasStoreFactory, inject, injectHTTPClient, injectHTTPClientAuthenticationHook, injectSocketManager, injectStore, injectStoreDispatcher, injectStoreFactory, injectTranslatorLocale, install, installHTTPClient, installHTTPClientAuthenticationHook, installSocketManager, installStore, installTranslator, isQuerySortedDescByDate, isSocketManagerUsable, mergeEntityCollectionRenderOptions, normalizeSlot, onChange, provide, provideHTTPClient, provideHTTPClientAuthenticationHook, provideSocketManager, provideStoreDispatcher, provideStoreFactory, renderToggleButton, storeToRefs, useIsEditing, usePermissionCheck, useTranslation, useTranslationsForBaseValidation, useTranslationsForGroup, useTranslationsForNestedValidation, useUpdatedAt, wrapFnWithBusyState };
8645
+ export { AAttributeNamesPolicyForm_default as AAttributeNamesPolicyForm, Authorize_default as AAuthorize, AuthorizeText_default as AAuthorizeText, AClient, AClientForm_default as AClientForm, AClientPermissionAssignment_default as AClientPermissionAssignment, AClientPermissionAssignments_default as AClientPermissionAssignments, AClientPicker, AClientRoleAssignment_default as AClientRoleAssignment, AClientRoleAssignments_default as AClientRoleAssignments, AClientScope, AClientScopeAssignment_default as AClientScopeAssignment, AClientScopeAssignments_default as AClientScopeAssignments, AClientScopes, AClients, ACompositePolicyForm_default as ACompositePolicyForm, ADatePolicyForm_default as ADatePolicyForm, AEntityDelete, AFormInputList_default as AFormInputList, AFormInputListItem_default as AFormInputListItem, AFormSubmit, AIdentityPolicyForm_default as AIdentityPolicyForm, AIdentityProvider, AIdentityProviderForm, AIdentityProviderIcon_default as AIdentityProviderIcon, AIdentityProviderLdapForm, AIdentityProviderOAuth2Form, AIdentityProviderPreset, AIdentityProviderProtocol, AIdentityProviderRoleAssignment_default as AIdentityProviderRoleAssignment, AIdentityProviderRoleAssignments_default as AIdentityProviderRoleAssignments, AIdentityProviders, Login_default as ALogin, APagination, APermission, APermissionCheck, APermissionClientAssignments_default as APermissionClientAssignments, APermissionForm, APermissionPolicyAssignment_default as APermissionPolicyAssignment, APermissionPolicyAssignments_default as APermissionPolicyAssignments, APermissionPolicyBindingButton, APermissionRobotAssignments_default as APermissionRobotAssignments, APermissionRoleAssignments_default as APermissionRoleAssignments, APermissionUserAssignments_default as APermissionUserAssignments, APermissions, APolicies, APolicy, APolicyDetailNav_default as APolicyDetailNav, APolicyForm_default as APolicyForm, APolicyInlineInfo_default as APolicyInlineInfo, APolicySummary_default as APolicySummary, APolicyTypeBadge_default as APolicyTypeBadge, APolicyTypePicker_default as APolicyTypePicker, ARealm, ARealmForm, ARealmMatchPolicyForm_default as ARealmMatchPolicyForm, ARealmPicker, ARealms, ARobot, ARobotForm, ARobotPermissionAssignment_default as ARobotPermissionAssignment, ARobotPermissionAssignments_default as ARobotPermissionAssignments, ARobotRoleAssignment_default as ARobotRoleAssignment, ARobotRoleAssignments_default as ARobotRoleAssignments, ARobots, ARole, ARoleClientAssignments_default as ARoleClientAssignments, ARoleForm, ARolePermissionAssignment_default as ARolePermissionAssignment, ARolePermissionAssignments_default as ARolePermissionAssignments, ARoleRobotAssignments_default as ARoleRobotAssignments, ARoleUserAssignments_default as ARoleUserAssignments, ARoles, AScope, AScopeClientAssignments_default as AScopeClientAssignments, AScopeForm, AScopes, ASearch, ATimePolicyForm_default as ATimePolicyForm, ATitle, AToggleButton_default as AToggleButton, AUser, AUserForm, AUserPasswordForm, AUserPermissionAssignment_default as AUserPermissionAssignment, AUserPermissionAssignments_default as AUserPermissionAssignments, AUserRoleAssignment_default as AUserRoleAssignment, AUserRoleAssignments_default as AUserRoleAssignments, AUsers, EntityRecordError, HTTPClientSymbol, LanguageSwitcherDropdown, ListHandlers, STORE_ID, SocketClientSymbol, StoreDispatcherEventName, TranslatorTranslationClientKey, TranslatorTranslationDefaultKey, TranslatorTranslationGroup, TranslatorTranslationVuecsKey, VuelidateCustomRule, VuelidateCustomRuleKey, assignFormProperties, buildEntityVSlotProps, buildFormSubmitWithTranslations, createFormSubmitTranslations, createPermissionCheckerReactiveFn, createStore, createStoreDispatcher, src_default as default, defineEntityCollectionManager, defineEntityCollectionVEmitOptions, defineEntityCollectionVProps, defineEntityManager, defineEntityPicker, defineEntityPickerVEmitOptions, defineEntityPickerVProps, defineEntitySocketManager, defineEntityVEmitOptions, defineEntityVProps, extractVuelidateResultsFromChild, getVuelidateSeverity, hasHTTPClient, hasHTTPClientAuthenticationHook, hasNormalizedSlot, hasStoreFactory, inject, injectHTTPClient, injectHTTPClientAuthenticationHook, injectSocketManager, injectStore, injectStoreDispatcher, injectStoreFactory, injectTranslatorLocale, install, installHTTPClient, installHTTPClientAuthenticationHook, installSocketManager, installStore, installTranslator, isQuerySortedDescByDate, isSocketManagerUsable, mergeEntityCollectionRenderOptions, normalizeSlot, onChange, provide, provideHTTPClient, provideHTTPClientAuthenticationHook, provideSocketManager, provideStoreDispatcher, provideStoreFactory, renderToggleButton, storeToRefs, useIsEditing, usePermissionCheck, useTranslation, useTranslationsForBaseValidation, useTranslationsForGroup, useTranslationsForNestedValidation, useUpdatedAt, wrapFnWithBusyState };
7741
8646
 
7742
8647
  //# sourceMappingURL=index.mjs.map