@wssto2/vue-core 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +33 -0
  2. package/dist/AccessGate.vue_vue_type_script_setup_true_lang-DKX3PH2n.js +22 -0
  3. package/dist/AccountMenuItem.vue_vue_type_script_setup_true_lang-DIGqTLwd.js +76 -0
  4. package/dist/ActionRow.vue_vue_type_script_setup_true_lang-B7Lpfkf6.js +45 -0
  5. package/dist/Activity-DviO0VQ8.js +156 -0
  6. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-CeKK8_g5.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-CvAnzdc1.js} +48 -47
  7. package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-e4hzkzg3.js → AlertDialog.vue_vue_type_script_setup_true_lang-CJsMUIUg.js} +1 -1
  8. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-CWLB3xsR.js → AsyncSection.vue_vue_type_script_setup_true_lang-CCtthMRd.js} +4 -4
  9. package/dist/{Banner.vue_vue_type_script_setup_true_lang-n_wGPIIu.js → Banner.vue_vue_type_script_setup_true_lang-Cib_YYpr.js} +1 -1
  10. package/dist/{BottomDock.vue_vue_type_script_setup_true_lang-DhlMnPC2.js → BottomDock.vue_vue_type_script_setup_true_lang-CjN7xYEr.js} +1 -1
  11. package/dist/{Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js → Button.vue_vue_type_script_setup_true_lang-CYil8h9z.js} +1 -1
  12. package/dist/Changes-DlT5mN9G.js +129 -0
  13. package/dist/CollectionPage.vue_vue_type_script_setup_true_lang-CXILftEc.js +1481 -0
  14. package/dist/DataTable.vue_vue_type_script_setup_true_lang-DSYgS9lC.js +52 -0
  15. package/dist/DateField.vue_vue_type_script_setup_true_lang-DMVjNsaM.js +1099 -0
  16. package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-DyhYHRyz.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-Cb3xJI1x.js} +1 -1
  17. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-BeGpHMUP.js → EmptyState.vue_vue_type_script_setup_true_lang-C2ZYIT9F.js} +1 -1
  18. package/dist/FormErrors.vue_vue_type_script_setup_true_lang-DVgNBQ8p.js +276 -0
  19. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-0mfG8TkU.js +136 -0
  20. package/dist/FormView.vue_vue_type_script_setup_true_lang-Bz2m3AtF.js +38 -0
  21. package/dist/General-BD-Hcz0a.js +145 -0
  22. package/dist/{Icon.vue_vue_type_script_lang-DtC4_mkz.js → Icon.vue_vue_type_script_lang-VvcV2Bzo.js} +46 -33
  23. package/dist/{IconTile.vue_vue_type_script_setup_true_lang-Csfv6Sel.js → IconTile.vue_vue_type_script_setup_true_lang-D7QgnUyN.js} +1 -1
  24. package/dist/KeyValue.vue_vue_type_script_setup_true_lang-wcZcvnow.js +35 -0
  25. package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CvwoT1JF.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-C2udmeEA.js} +2 -2
  26. package/dist/{Menu.vue_vue_type_script_setup_true_lang-CrMj6KPD.js → Menu.vue_vue_type_script_setup_true_lang-BNAjx9tj.js} +61 -57
  27. package/dist/{Modal.vue_vue_type_script_setup_true_lang-BQZM49gC.js → Modal.vue_vue_type_script_setup_true_lang-D7SwVPpL.js} +4 -4
  28. package/dist/NewRolePage-Dla4YnMs.js +42 -0
  29. package/dist/NoAccess.vue_vue_type_script_setup_true_lang-8m9cNptR.js +31 -0
  30. package/dist/NumberField.vue_vue_type_script_setup_true_lang-CYRg7Kfg.js +113 -0
  31. package/dist/OtpInput.vue_vue_type_script_setup_true_lang-gp4FfWAH.js +95 -0
  32. package/dist/PageBar.vue_vue_type_script_setup_true_lang-Cfr5xsJx.js +47 -0
  33. package/dist/{Panel.vue_vue_type_script_setup_true_lang-BQmv3cLb.js → Panel.vue_vue_type_script_setup_true_lang-BCRxRK4D.js} +1 -1
  34. package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-ElDizaW2.js → PhotoViewer.vue_vue_type_script_setup_true_lang-B3Q4dhqJ.js} +1 -1
  35. package/dist/Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js +125 -0
  36. package/dist/ProfilePage-OJMQ8cr8.js +691 -0
  37. package/dist/{ProgressTrack.vue_vue_type_script_setup_true_lang-1DDaNs2W.js → ProgressTrack.vue_vue_type_script_setup_true_lang-B6Prw9hi.js} +2 -2
  38. package/dist/RecordHeader.vue_vue_type_script_setup_true_lang-DKsaKlAq.js +64 -0
  39. package/dist/ResourcePage.vue_vue_type_script_setup_true_lang-CJcKa9SW.js +173 -0
  40. package/dist/RoleEditor.vue_vue_type_script_setup_true_lang-DuEPOmjI.js +299 -0
  41. package/dist/RolePage-bZzv_E4l.js +315 -0
  42. package/dist/RolesPage-BniZv0nB.js +115 -0
  43. package/dist/SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js +23 -0
  44. package/dist/SectionList.vue_vue_type_script_setup_true_lang-BKP_bge8.js +148 -0
  45. package/dist/SectionNavigator.vue_vue_type_script_setup_true_lang-BgGEGxSI.js +314 -0
  46. package/dist/SegmentedField.vue_vue_type_script_setup_true_lang-BZ9UdgA1.js +58 -0
  47. package/dist/SelectField.vue_vue_type_script_setup_true_lang-BiGaEKBQ.js +422 -0
  48. package/dist/SessionList.vue_vue_type_script_setup_true_lang-DUQpr7gb.js +111 -0
  49. package/dist/Sessions-Co5-xdeb.js +96 -0
  50. package/dist/Sheet.vue_vue_type_script_setup_true_lang-bHYzx7-J.js +142 -0
  51. package/dist/SignIn-BWwFbxki.js +140 -0
  52. package/dist/SignInPage-FnLtoi2q.js +60 -0
  53. package/dist/SignInTable.vue_vue_type_script_setup_true_lang-Dnx3T_42.js +79 -0
  54. package/dist/SignIns-3UcI64_h.js +66 -0
  55. package/dist/SwipeActions.vue_vue_type_script_setup_true_lang-4I8m27ol.js +93 -0
  56. package/dist/Tabs.vue_vue_type_script_setup_true_lang-BeGaydRr.js +155 -0
  57. package/dist/TextField.vue_vue_type_script_setup_true_lang-C_FMf3Vc.js +269 -0
  58. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-CU3KTKIJ.js +127 -0
  59. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-CSY_mMm1.js → Timestamp.vue_vue_type_script_setup_true_lang-1RJGKxbD.js} +1 -1
  60. package/dist/UserRecord-Ci8HfwbX.js +267 -0
  61. package/dist/UsersList-vEJ-cgkT.js +155 -0
  62. package/dist/ViewTabs.vue_vue_type_script_setup_true_lang-ByqTU2JT.js +28 -0
  63. package/dist/access/AddRoleDialog.vue.d.ts +19 -0
  64. package/dist/access/BindingRow.vue.d.ts +19 -0
  65. package/dist/access/EffectiveAccess.vue.d.ts +12 -0
  66. package/dist/access/NewRolePage.vue.d.ts +2 -0
  67. package/dist/access/PermissionTree.vue.d.ts +13 -0
  68. package/dist/access/PersonAccess.vue.d.ts +21 -0
  69. package/dist/access/ReplaceRoleDialog.vue.d.ts +17 -0
  70. package/dist/access/RoleCompareDialog.vue.d.ts +14 -0
  71. package/dist/access/RoleEditor.vue.d.ts +28 -0
  72. package/dist/access/RolePage.vue.d.ts +2 -0
  73. package/dist/access/RolesPage.vue.d.ts +2 -0
  74. package/dist/access/api.d.ts +26 -0
  75. package/dist/access/catalogue.d.ts +64 -0
  76. package/dist/access/context.d.ts +20 -0
  77. package/dist/access/effective.d.ts +42 -0
  78. package/dist/access/feature.d.ts +27 -0
  79. package/dist/access/index.d.ts +13 -0
  80. package/dist/access/index.js +15 -0
  81. package/dist/access/labels.d.ts +35 -0
  82. package/dist/access/refusals.d.ts +6 -0
  83. package/dist/access/routes.d.ts +45 -0
  84. package/dist/access/scopes.d.ts +20 -0
  85. package/dist/app/contributions.d.ts +1 -1
  86. package/dist/app/feature.d.ts +8 -0
  87. package/dist/app/index.js +259 -296
  88. package/dist/bottomDock-BZEiOPYZ.js +12 -0
  89. package/dist/button/Button.vue.d.ts +3 -3
  90. package/dist/button/index.js +1 -1
  91. package/dist/chrome-BS3xJcad.js +93 -0
  92. package/dist/client/client.d.ts +13 -0
  93. package/dist/client/index.d.ts +3 -1
  94. package/dist/client/index.js +19 -138
  95. package/dist/client/route.d.ts +59 -0
  96. package/dist/client-Bw0aM5Gu.js +147 -0
  97. package/dist/closeOverlays-CjVsIrpL.js +8 -0
  98. package/dist/collection/http.d.ts +4 -2
  99. package/dist/collection/index.js +74 -2428
  100. package/dist/content/index.js +37 -66
  101. package/dist/contributions-CDDg3fKp.js +26 -0
  102. package/dist/controls/DateButton.vue.d.ts +1 -1
  103. package/dist/controls/PopupButton.vue.d.ts +1 -1
  104. package/dist/controls/index.js +11 -10
  105. package/dist/defineRoutes-BGAdiIrt.js +19 -0
  106. package/dist/{describeError-l5T9b8Uv.js → describeError-Ctga6GcS.js} +1 -1
  107. package/dist/environment-Dva-SG8D.js +6 -0
  108. package/dist/{error-Bb_dr_Ay.js → error-CD7x0Jrz.js} +2 -2
  109. package/dist/feature-DdUAfyi4.js +25 -0
  110. package/dist/fieldMessages-C3Rpbktw.js +25 -0
  111. package/dist/form/CheckboxField.vue.d.ts +1 -1
  112. package/dist/form/CommandDialog.vue.d.ts +1 -1
  113. package/dist/form/DateField.vue.d.ts +1 -1
  114. package/dist/form/DateTimeField.vue.d.ts +1 -1
  115. package/dist/form/EditorPage.vue.d.ts +1 -1
  116. package/dist/form/Field.vue.d.ts +1 -1
  117. package/dist/form/FileField.vue.d.ts +1 -1
  118. package/dist/form/FormGroup.vue.d.ts +1 -1
  119. package/dist/form/FormGroupButton.vue.d.ts +1 -1
  120. package/dist/form/FormRow.vue.d.ts +1 -1
  121. package/dist/form/I18nField.vue.d.ts +3 -3
  122. package/dist/form/MoneyField.vue.d.ts +1 -1
  123. package/dist/form/MonthYearField.vue.d.ts +1 -1
  124. package/dist/form/NumberCell.vue.d.ts +1 -1
  125. package/dist/form/NumberField.vue.d.ts +2 -2
  126. package/dist/form/OtpInput.vue.d.ts +2 -2
  127. package/dist/form/PhotoField.vue.d.ts +1 -1
  128. package/dist/form/SwitchField.vue.d.ts +1 -1
  129. package/dist/form/TextField.vue.d.ts +3 -3
  130. package/dist/form/TextareaField.vue.d.ts +3 -3
  131. package/dist/form/TimeField.vue.d.ts +1 -1
  132. package/dist/form/date/DatePickerSheet.vue.d.ts +1 -1
  133. package/dist/form/date/MonthYearPanel.vue.d.ts +1 -1
  134. package/dist/form/index.js +1262 -3430
  135. package/dist/guards-Cd1V28oG.js +51 -0
  136. package/dist/http-DGGSKWvU.js +193 -0
  137. package/dist/i18n/index.d.ts +281 -0
  138. package/dist/i18n/index.js +50 -50
  139. package/dist/icon/core.d.ts +13 -0
  140. package/dist/icon/index.js +1 -1
  141. package/dist/identity/ImpersonationBanner.vue.d.ts +2 -0
  142. package/dist/identity/LocaleSync.vue.d.ts +2 -0
  143. package/dist/identity/SessionExpiry.vue.d.ts +2 -0
  144. package/dist/identity/SignInAsButton.vue.d.ts +15 -0
  145. package/dist/identity/SignInPage.vue.d.ts +2 -0
  146. package/dist/identity/context.d.ts +7 -0
  147. package/dist/identity/feature.d.ts +16 -0
  148. package/dist/identity/fieldMessages.d.ts +15 -0
  149. package/dist/identity/index.d.ts +16 -0
  150. package/dist/identity/index.js +18 -0
  151. package/dist/identity/profile/DetailsPanel.vue.d.ts +11 -0
  152. package/dist/identity/profile/EmailChangeDialog.vue.d.ts +14 -0
  153. package/dist/identity/profile/EmailPanel.vue.d.ts +11 -0
  154. package/dist/identity/profile/PanelActions.vue.d.ts +17 -0
  155. package/dist/identity/profile/PasswordPanel.vue.d.ts +2 -0
  156. package/dist/identity/profile/ProfileMenuItem.vue.d.ts +2 -0
  157. package/dist/identity/profile/ProfilePage.vue.d.ts +2 -0
  158. package/dist/identity/profile/SessionsPanel.vue.d.ts +2 -0
  159. package/dist/identity/profile/SignInsPanel.vue.d.ts +2 -0
  160. package/dist/identity/profile/VerifyCode.vue.d.ts +49 -0
  161. package/dist/identity/profile/routes.d.ts +13 -0
  162. package/dist/identity/session.d.ts +30 -0
  163. package/dist/identity/shared/ActionRow.vue.d.ts +20 -0
  164. package/dist/identity/shared/ChangeFeed.vue.d.ts +11 -0
  165. package/dist/identity/shared/PageBar.vue.d.ts +12 -0
  166. package/dist/identity/shared/SectionIntro.vue.d.ts +16 -0
  167. package/dist/identity/shared/SessionList.vue.d.ts +19 -0
  168. package/dist/identity/shared/SignInTable.vue.d.ts +11 -0
  169. package/dist/identity/shared/ViewTabs.vue.d.ts +23 -0
  170. package/dist/identity/shared/signInEvents.d.ts +9 -0
  171. package/dist/identity/signIn.d.ts +27 -0
  172. package/dist/identity/useSignInForm.d.ts +20 -0
  173. package/dist/identity/user.d.ts +6 -0
  174. package/dist/identity/users/DeactivateDialog.vue.d.ts +18 -0
  175. package/dist/identity/users/NewUserDialog.vue.d.ts +9 -0
  176. package/dist/identity/users/SetPasswordDialog.vue.d.ts +16 -0
  177. package/dist/identity/users/UserRecord.vue.d.ts +2 -0
  178. package/dist/identity/users/UsersList.vue.d.ts +2 -0
  179. package/dist/identity/users/access.d.ts +4 -0
  180. package/dist/identity/users/context.d.ts +9 -0
  181. package/dist/identity/users/feature.d.ts +34 -0
  182. package/dist/identity/users/languages.d.ts +4 -0
  183. package/dist/identity/users/list.d.ts +8 -0
  184. package/dist/identity/users/person.d.ts +26 -0
  185. package/dist/identity/users/personSections.d.ts +22 -0
  186. package/dist/identity/users/routes.d.ts +22 -0
  187. package/dist/identity/users/sections/Activity.vue.d.ts +2 -0
  188. package/dist/identity/users/sections/Changes.vue.d.ts +2 -0
  189. package/dist/identity/users/sections/General.vue.d.ts +2 -0
  190. package/dist/identity/users/sections/Sessions.vue.d.ts +2 -0
  191. package/dist/identity/users/sections/SignIn.vue.d.ts +2 -0
  192. package/dist/identity/users/sections/SignIns.vue.d.ts +2 -0
  193. package/dist/identity/users/status.d.ts +4 -0
  194. package/dist/index-B2dbYZR9.js +706 -0
  195. package/dist/index-BAcl44SC.js +459 -0
  196. package/dist/index.d.ts +1 -1
  197. package/dist/index.js +1 -1
  198. package/dist/internal/languageName.d.ts +2 -0
  199. package/dist/keepAlive-WYQGRhuz.js +48 -0
  200. package/dist/languageName-CItV_SOv.js +11 -0
  201. package/dist/languages-BShG9LpE.js +10 -0
  202. package/dist/leaveGuard-Cc8yeLxM.js +72 -0
  203. package/dist/modal/Modal.vue.d.ts +1 -1
  204. package/dist/modal/index.js +5 -5
  205. package/dist/modules/access/entities.d.ts +112 -0
  206. package/dist/modules/access/routes.d.ts +67 -0
  207. package/dist/modules/access/schemas.d.ts +73 -0
  208. package/dist/modules/identity/entities.d.ts +150 -0
  209. package/dist/modules/identity/routes.d.ts +118 -0
  210. package/dist/modules/identity/schemas.d.ts +145 -0
  211. package/dist/{navigation-B33ikiCS.js → navigation-BPWa63ge.js} +21 -20
  212. package/dist/neighbors-D0WRBxXI.js +86 -0
  213. package/dist/{options-DAkBtYkI.js → options-BXkMR63B.js} +51 -52
  214. package/dist/overlay/AlertDialog.vue.d.ts +3 -3
  215. package/dist/overlay/Popover.vue.d.ts +1 -1
  216. package/dist/overlay/closeOverlays.d.ts +7 -0
  217. package/dist/overlay/index.js +21 -20
  218. package/dist/page/AdaptivePageShell.vue.d.ts +2 -2
  219. package/dist/page/ResourceHeader.vue.d.ts +2 -2
  220. package/dist/page/index.js +99 -457
  221. package/dist/phone/PhoneField.vue.d.ts +2 -2
  222. package/dist/phone/index.js +2 -2
  223. package/dist/platform/index.d.ts +2 -2
  224. package/dist/platform/index.js +73 -90
  225. package/dist/platform/platform.d.ts +2 -2
  226. package/dist/platform/session.d.ts +22 -1
  227. package/dist/platform-hunMqFdB.js +255 -0
  228. package/dist/resource/index.js +8 -248
  229. package/dist/routeResource-DstM0hvf.js +82 -0
  230. package/dist/router/guards.d.ts +7 -1
  231. package/dist/router/index.js +23 -37
  232. package/dist/router/navigation.d.ts +1 -1
  233. package/dist/rowLayout-BI7a3Kom.js +603 -0
  234. package/dist/sectionIndex-BS0ic5W7.js +86 -0
  235. package/dist/{sections-LtxV5Mtk.js → sections-BEqW1dOc.js} +1 -1
  236. package/dist/shell/AccountMenuItem.vue.d.ts +1 -1
  237. package/dist/shell/BackofficeShell.vue.d.ts +2 -2
  238. package/dist/shell/NavigationList.vue.d.ts +1 -1
  239. package/dist/shell/ShellBrand.vue.d.ts +1 -1
  240. package/dist/shell/backofficeShell.d.ts +1 -1
  241. package/dist/shell/identity.d.ts +1 -1
  242. package/dist/shell/index.js +507 -575
  243. package/dist/state/ProgressTrack.vue.d.ts +1 -1
  244. package/dist/state/index.js +59 -92
  245. package/dist/status-C9aXR-Jb.js +33 -0
  246. package/dist/styles.css +1 -1
  247. package/dist/suggestions-BJAqOj4c.js +138 -0
  248. package/dist/testing/index.js +1 -1
  249. package/dist/toast-D9Z5To38.js +13 -0
  250. package/dist/useCommand-BgRwnYlV.js +135 -0
  251. package/dist/useLoad-CYRVx6HW.js +39 -0
  252. package/dist/useResourceForm-Bgc9jMcu.js +52 -0
  253. package/dist/useSaveChrome-chi6D3HY.js +25 -0
  254. package/dist/useSheetDrag-OsD6Eb6I.js +72 -0
  255. package/package.json +22 -5
  256. package/dist/NoAccess.vue_vue_type_script_setup_true_lang-OKW8pKYU.js +0 -78
  257. package/dist/SectionList.vue_vue_type_script_setup_true_lang-L9ita_Kx.js +0 -230
  258. package/dist/SelectField.vue_vue_type_script_setup_true_lang-DZTrU8NJ.js +0 -661
  259. package/dist/Sheet.vue_vue_type_script_setup_true_lang-CtkJ-4e3.js +0 -210
  260. package/dist/SwipeActions.vue_vue_type_script_setup_true_lang-CGTuEnTv.js +0 -243
  261. package/dist/chrome-D9pwD6iS.js +0 -101
  262. package/dist/environment-D3nozt9a.js +0 -75
  263. package/dist/feature-DyDtyMLU.js +0 -47
  264. package/dist/platform-jqlKVJ2e.js +0 -244
  265. package/dist/toast-DvrHQ6Ag.js +0 -131
@@ -0,0 +1,267 @@
1
+ import { defineComponent as R, openBlock as q, createBlock as P, unref as e, withCtx as u, createVNode as t, mergeProps as L, provide as N, computed as g, useTemplateRef as $, createElementVNode as x, toDisplayString as C, createTextVNode as j } from "vue";
2
+ import { useI18n as A } from "vue-i18n";
3
+ import { u as F } from "./neighbors-D0WRBxXI.js";
4
+ import { _ as H } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
5
+ import { u as J } from "./describeError-Ctga6GcS.js";
6
+ import { i as w, P as Q, p as W, f as X, M as Y, g as Z, d as ee } from "./index-BAcl44SC.js";
7
+ import { _ as se } from "./AlertDialog.vue_vue_type_script_setup_true_lang-CJsMUIUg.js";
8
+ import { t as k } from "./toast-D9Z5To38.js";
9
+ import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-BgGEGxSI.js";
10
+ import { u as E } from "./platform-hunMqFdB.js";
11
+ import { a as te } from "./routeResource-DstM0hvf.js";
12
+ import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-CJcKa9SW.js";
13
+ import { A as re } from "./access-DdRFrVV1.js";
14
+ import { _ as ne } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
+ import { u as ie } from "./useLoad-CYRVx6HW.js";
16
+ import { _ as V } from "./IconTile.vue_vue_type_script_setup_true_lang-D7QgnUyN.js";
17
+ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-0mfG8TkU.js";
18
+ import { e as B } from "./options-BXkMR63B.js";
19
+ import { u as z, _ as K } from "./useCommand-BgRwnYlV.js";
20
+ import { u as U } from "./fieldMessages-C3Rpbktw.js";
21
+ import { u as ce, s as le } from "./status-C9aXR-Jb.js";
22
+ import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-C_FMf3Vc.js";
23
+ const ue = /* @__PURE__ */ R({
24
+ __name: "DeactivateDialog",
25
+ props: {
26
+ id: {},
27
+ name: {},
28
+ sessionCount: {}
29
+ },
30
+ emits: ["done"],
31
+ setup(h, { expose: a, emit: d }) {
32
+ const c = h, v = d, { t: s } = A(), { http: n } = E(), l = z({
33
+ ...U(),
34
+ defaults: () => ({}),
35
+ run: () => n.request(w.usersDeactivate, { id: c.id }),
36
+ done: () => {
37
+ k.success(s("core.users.deactivate.done", { name: c.name })), v("done");
38
+ }
39
+ });
40
+ return a({ open: () => l.present() }), (f, o) => (q(), P(e(K), {
41
+ command: e(l),
42
+ title: e(s)("core.users.deactivate.title"),
43
+ subtitle: c.name,
44
+ "confirm-label": e(s)("core.users.actions.deactivate_short"),
45
+ "busy-label": e(s)("core.users.deactivate.busy"),
46
+ "done-label": e(s)("core.users.deactivate.done_label"),
47
+ size: "md"
48
+ }, {
49
+ default: u(() => [
50
+ t(e(T), { "data-deactivate-dialog": "" }, {
51
+ default: u(() => [
52
+ t(e(B), {
53
+ layout: "setting",
54
+ label: e(s)("core.users.deactivate.signs_out", { n: c.sessionCount ?? 0 }),
55
+ sub: e(s)("core.users.deactivate.signs_out_sub")
56
+ }, {
57
+ leading: u(() => [
58
+ t(e(V), {
59
+ tone: "anchor",
60
+ icon: "logoutBoxRLine"
61
+ })
62
+ ]),
63
+ _: 1
64
+ }, 8, ["label", "sub"]),
65
+ t(e(B), {
66
+ layout: "setting",
67
+ label: e(s)("core.users.deactivate.cannot_sign_in"),
68
+ sub: e(s)("core.users.deactivate.cannot_sign_in_sub")
69
+ }, {
70
+ leading: u(() => [
71
+ t(e(V), {
72
+ tone: "anchor",
73
+ icon: "lockLine"
74
+ })
75
+ ]),
76
+ _: 1
77
+ }, 8, ["label", "sub"])
78
+ ]),
79
+ _: 1
80
+ })
81
+ ]),
82
+ _: 1
83
+ }, 8, ["command", "title", "subtitle", "confirm-label", "busy-label", "done-label"]));
84
+ }
85
+ }), de = /* @__PURE__ */ R({
86
+ __name: "SetPasswordDialog",
87
+ props: {
88
+ id: {},
89
+ name: {}
90
+ },
91
+ emits: ["saved"],
92
+ setup(h, { expose: a, emit: d }) {
93
+ const c = h, v = d, { t: s } = A(), { http: n } = E(), l = {
94
+ safeParse(o) {
95
+ const { password: m, repeat: _ } = o, b = [
96
+ ...m === "" ? [{ path: ["password"], message: s("core.account.validation.required") }] : [],
97
+ ...m !== "" && _ !== m ? [{ path: ["repeat"], message: s(_ === "" ? "core.account.validation.required" : "core.account.validation.mismatch") }] : []
98
+ ];
99
+ return b.length > 0 ? { success: !1, error: { issues: b } } : { success: !0, data: { password: m } };
100
+ }
101
+ }, f = z({
102
+ ...U(),
103
+ defaults: () => ({ password: "", repeat: "" }),
104
+ validator: l,
105
+ run: (o) => n.request(w.usersSetPassword, { id: c.id, password: o.password }),
106
+ done: () => {
107
+ k.success(s("core.users.password.done", { name: c.name })), v("saved");
108
+ }
109
+ });
110
+ return a({ open: () => f.present() }), (o, m) => (q(), P(e(K), {
111
+ command: e(f),
112
+ title: e(s)("core.users.password.title"),
113
+ subtitle: c.name,
114
+ "confirm-label": e(s)("core.users.password.action")
115
+ }, {
116
+ default: u(() => [
117
+ t(e(T), {
118
+ footer: e(s)("core.users.password.footer"),
119
+ "data-set-password-dialog": ""
120
+ }, {
121
+ default: u(() => [
122
+ t(e(M), L(e(f).form.bind("password"), {
123
+ label: e(s)("core.users.fields.password"),
124
+ type: "password",
125
+ required: "",
126
+ autocomplete: "new-password"
127
+ }), null, 16, ["label"]),
128
+ t(e(M), L(e(f).form.bind("repeat"), {
129
+ label: e(s)("core.users.fields.password_repeat"),
130
+ type: "password",
131
+ required: "",
132
+ autocomplete: "new-password"
133
+ }), null, 16, ["label"])
134
+ ]),
135
+ _: 1
136
+ }, 8, ["footer"])
137
+ ]),
138
+ _: 1
139
+ }, 8, ["command", "title", "subtitle", "confirm-label"]));
140
+ }
141
+ }), me = {
142
+ class: "flex items-center gap-3 px-1.5",
143
+ "data-person-identity": ""
144
+ }, pe = { class: "flex min-w-0 flex-col items-start gap-0.5" }, fe = { class: "max-w-full truncate text-headline font-semibold text-content-strong" }, ve = { class: "max-w-full truncate text-footnote text-content-muted" }, Te = /* @__PURE__ */ R({
145
+ __name: "UserRecord",
146
+ setup(h) {
147
+ const { t: a } = A(), { http: d, access: c, session: v } = E(), s = J(), n = te({
148
+ key: Q,
149
+ param: "id",
150
+ load: async (r, { signal: p }) => (await d.request(w.usersShow, { id: r }, { signal: p })).data
151
+ }), l = ie(
152
+ async ({ signal: r }) => {
153
+ const p = n.data.value?.id;
154
+ return p === void 0 ? { sessions: [] } : (await d.request(w.usersSessions, { id: p }, { signal: r })).data;
155
+ },
156
+ { watch: () => n.data.value?.id }
157
+ );
158
+ N(W, l);
159
+ const f = F(ce(d), { current: () => n.id.value, list: X.index, param: "id", backLabel: () => a("core.users.title") }), o = g(() => n.data.value), m = g(() => o.value !== null && v.state.value.status === "authenticated" && v.state.value.user.id === o.value.id), _ = $("deactivateDialog"), b = $("passwordDialog"), D = $("activateDialog");
160
+ async function y() {
161
+ await Promise.all([n.reload(), l.reload()]);
162
+ }
163
+ async function G() {
164
+ const r = n.id.value;
165
+ if (r !== null) {
166
+ try {
167
+ await d.request(w.usersActivate, { id: r }), k.success(a("core.users.activate.done", { name: o.value?.name ?? "" }));
168
+ } catch (p) {
169
+ ee(p) || k.error(s(p, { fallback: a("core.users.activate.failed") }));
170
+ }
171
+ await y();
172
+ }
173
+ }
174
+ const S = g(() => {
175
+ const r = c.can(Y);
176
+ return { manage: r, deactivate: r && !!o.value?.active && !m.value, activate: r && o.value !== null && !o.value.active, endSessions: r && !m.value };
177
+ });
178
+ N(Z, {
179
+ get can() {
180
+ return S.value;
181
+ },
182
+ deactivate: () => _.value?.open(),
183
+ activate: () => D.value?.present(),
184
+ setPassword: () => b.value?.open(),
185
+ refresh: y
186
+ });
187
+ const I = g(() => [
188
+ ...S.value.deactivate ? [{ id: "deactivate", label: a("core.users.actions.deactivate"), icon: "lockLine", placement: "overflow", tone: "critical", onClick: () => _.value?.open() }] : [],
189
+ ...S.value.activate ? [{ id: "activate", label: a("core.users.actions.activate"), icon: "checkCircle", placement: "overflow", onClick: () => D.value?.present() }] : []
190
+ ]), O = g(() => ({
191
+ ...l.data.value ? { "users.record.sessions": l.data.value.sessions.length } : {},
192
+ ...o.value?.status === "locked" ? { "users.record.signin": a("core.users.status.locked") } : {}
193
+ }));
194
+ return (r, p) => (q(), P(e(oe), {
195
+ resource: e(n),
196
+ title: o.value?.name ?? e(a)("core.users.record"),
197
+ list: e(f).context,
198
+ actions: I.value
199
+ }, {
200
+ default: u(({ record: i }) => [
201
+ t(e(ae), {
202
+ label: e(a)("core.users.sections_label"),
203
+ desktop: "sidebar",
204
+ compact: "rows",
205
+ "back-label": i.name,
206
+ counts: O.value
207
+ }, {
208
+ summary: u(() => [
209
+ x("div", me, [
210
+ t(e(H), {
211
+ name: i.name,
212
+ size: "lg",
213
+ tone: "anchor"
214
+ }, null, 8, ["name"]),
215
+ x("div", pe, [
216
+ x("span", fe, C(i.name), 1),
217
+ x("span", ve, C(i.email), 1),
218
+ t(e(ne), {
219
+ tone: e(le)(i.status),
220
+ dot: "",
221
+ "data-person-status": ""
222
+ }, {
223
+ default: u(() => [
224
+ j(C(e(a)(`core.users.status.${i.status}`)), 1)
225
+ ]),
226
+ _: 2
227
+ }, 1032, ["tone"])
228
+ ])
229
+ ])
230
+ ]),
231
+ default: u(() => [
232
+ t(e(re))
233
+ ]),
234
+ _: 2
235
+ }, 1032, ["label", "back-label", "counts"]),
236
+ t(ue, {
237
+ ref_key: "deactivateDialog",
238
+ ref: _,
239
+ id: i.id,
240
+ name: i.name,
241
+ "session-count": e(l).data.value?.sessions.length ?? null,
242
+ onDone: y
243
+ }, null, 8, ["id", "name", "session-count"]),
244
+ t(de, {
245
+ ref_key: "passwordDialog",
246
+ ref: b,
247
+ id: i.id,
248
+ name: i.name,
249
+ onSaved: y
250
+ }, null, 8, ["id", "name"]),
251
+ t(e(se), {
252
+ ref_key: "activateDialog",
253
+ ref: D,
254
+ icon: "checkCircle",
255
+ title: e(a)("core.users.activate.title"),
256
+ message: e(a)("core.users.activate.body", { name: i.name }),
257
+ "confirm-label": e(a)("core.users.actions.activate"),
258
+ action: G
259
+ }, null, 8, ["title", "message", "confirm-label"])
260
+ ]),
261
+ _: 1
262
+ }, 8, ["resource", "title", "list", "actions"]));
263
+ }
264
+ });
265
+ export {
266
+ Te as default
267
+ };
@@ -0,0 +1,155 @@
1
+ import { defineComponent as U, openBlock as p, createBlock as C, unref as e, withCtx as c, createVNode as r, mergeProps as i, useTemplateRef as V, computed as q, createTextVNode as z, toDisplayString as $, createCommentVNode as A, createElementBlock as S, normalizeClass as N } from "vue";
2
+ import { useI18n as B } from "vue-i18n";
3
+ import { useRouter as M } from "vue-router";
4
+ import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-CXILftEc.js";
5
+ import { _ as I } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
6
+ import { u as F } from "./format-B8mJm946.js";
7
+ import { u as L } from "./platform-hunMqFdB.js";
8
+ import { _ as G } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
+ import { i as K, f as E, M as W } from "./index-BAcl44SC.js";
10
+ import { U as j, u as H, s as J } from "./status-C9aXR-Jb.js";
11
+ import { u as O } from "./environment-Dva-SG8D.js";
12
+ import { u as Q } from "./languages-BShG9LpE.js";
13
+ import { _ as X } from "./FormGroup.vue_vue_type_script_setup_true_lang-0mfG8TkU.js";
14
+ import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-BiGaEKBQ.js";
15
+ import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-C_FMf3Vc.js";
16
+ import { u as Z, _ as ee } from "./useCommand-BgRwnYlV.js";
17
+ import { t as se } from "./toast-D9Z5To38.js";
18
+ import { u as te } from "./fieldMessages-C3Rpbktw.js";
19
+ const oe = /* @__PURE__ */ U({
20
+ __name: "NewUserDialog",
21
+ emits: ["created"],
22
+ setup(T, { expose: o, emit: b }) {
23
+ const { t } = B(), { http: g } = L(), h = O(), f = te(), w = Q(), y = () => ({ login: "", name: "", email: "", phone: "", locale: h.locale.value, password: "", repeat: "" }), m = (s) => s.trim() === "", k = {
24
+ safeParse(s) {
25
+ const { repeat: n, locale: R, ...u } = s, v = t("core.account.validation.required"), _ = ["login", "name", "email", "password"].filter((x) => m(u[x])).map((x) => ({ path: [x], message: v }));
26
+ return R === null && _.push({ path: ["locale"], message: v }), !m(u.password) && n !== u.password && _.push({ path: ["repeat"], message: m(n) ? v : t("core.account.validation.mismatch") }), _.length > 0 ? { success: !1, error: { issues: _ } } : { success: !0, data: { ...u, locale: R ?? "", phone: m(u.phone) ? void 0 : u.phone } };
27
+ }
28
+ }, l = b, a = Z({
29
+ ...f,
30
+ defaults: y,
31
+ validator: k,
32
+ run: async (s) => (await g.request(K.usersCreate, s)).data,
33
+ done: (s) => {
34
+ se.success(t("core.users.create.done", { name: s.name })), l("created", s);
35
+ }
36
+ });
37
+ return o({ create: () => a.present() }), (s, n) => (p(), C(e(ee), {
38
+ command: e(a),
39
+ title: e(t)("core.users.create.title"),
40
+ subtitle: e(t)("core.users.create.subtitle"),
41
+ "confirm-label": e(t)("core.users.create.action"),
42
+ size: "md"
43
+ }, {
44
+ default: c(() => [
45
+ r(e(X), { "label-width": "11rem" }, {
46
+ default: c(() => [
47
+ r(e(d), i(e(a).form.bind("name"), {
48
+ label: e(t)("core.users.fields.name"),
49
+ required: "",
50
+ autocomplete: "off"
51
+ }), null, 16, ["label"]),
52
+ r(e(d), i(e(a).form.bind("login"), {
53
+ label: e(t)("core.users.fields.login"),
54
+ required: "",
55
+ mono: "",
56
+ autocomplete: "off"
57
+ }), null, 16, ["label"]),
58
+ r(e(d), i(e(a).form.bind("password"), {
59
+ label: e(t)("core.users.fields.password"),
60
+ type: "password",
61
+ required: "",
62
+ autocomplete: "new-password"
63
+ }), null, 16, ["label"]),
64
+ r(e(d), i(e(a).form.bind("repeat"), {
65
+ label: e(t)("core.users.fields.password_repeat"),
66
+ type: "password",
67
+ required: "",
68
+ autocomplete: "new-password"
69
+ }), null, 16, ["label"]),
70
+ r(e(d), i(e(a).form.bind("email"), {
71
+ label: e(t)("core.users.fields.email"),
72
+ type: "email",
73
+ required: "",
74
+ autocomplete: "off"
75
+ }), null, 16, ["label"]),
76
+ r(e(d), i(e(a).form.bind("phone"), {
77
+ label: e(t)("core.users.fields.phone"),
78
+ type: "tel",
79
+ autocomplete: "off"
80
+ }), null, 16, ["label"]),
81
+ r(e(Y), i(e(a).form.bind("locale"), {
82
+ label: e(t)("core.users.fields.locale"),
83
+ options: e(w),
84
+ required: ""
85
+ }), null, 16, ["label", "options"])
86
+ ]),
87
+ _: 1
88
+ })
89
+ ]),
90
+ _: 1
91
+ }, 8, ["command", "title", "subtitle", "confirm-label"]));
92
+ }
93
+ }), ae = ["datetime"], xe = /* @__PURE__ */ U({
94
+ __name: "UsersList",
95
+ setup(T) {
96
+ const { t: o } = B(), { http: b, access: t } = L(), g = F(), h = M(), f = V("dialog"), w = q(() => [
97
+ { key: "name", label: o("core.users.columns.person"), kind: "identity", subtitle: (l) => l.email, sort: "name", mobile: "primary" },
98
+ { key: "login", label: o("core.users.columns.login"), sort: "login", hideBelow: "md", width: 180, mobile: "hidden" },
99
+ { key: "last_sign_in", label: o("core.users.columns.last_sign_in"), width: 170, mobile: "meta" },
100
+ { key: "status", label: o("core.users.columns.status"), width: 130, mobile: "accessory" }
101
+ ]), y = q(() => j.map((l) => ({ key: l, label: o(`core.users.views.${l}`) }))), m = P(H(b), { columns: w, views: y, state: { kind: "url", key: "query" }, recordRoute: (l) => E.record({ id: l.id }) }), k = q(
102
+ () => t.can(W) ? [{ id: "create", label: o("core.users.create.title"), icon: "addLine", placement: "primary", compact: "icon", keyboardShortcut: { key: "N", ctrlKey: !0 }, onClick: () => f.value?.create() }] : []
103
+ );
104
+ return (l, a) => (p(), C(e(D), {
105
+ collection: e(m),
106
+ title: e(o)("core.users.title"),
107
+ description: e(o)("core.users.description"),
108
+ actions: k.value,
109
+ "row-height": 64,
110
+ "row-label": (s) => s.name,
111
+ "views-presentation": "scope"
112
+ }, {
113
+ leading: c(({ item: s }) => [
114
+ r(e(I), {
115
+ name: s.name,
116
+ size: "md",
117
+ tone: "anchor"
118
+ }, null, 8, ["name"])
119
+ ]),
120
+ "cell-last_sign_in": c(({ item: s, compact: n }) => [
121
+ s.last_sign_in ? (p(), S("time", {
122
+ key: 0,
123
+ datetime: s.last_sign_in,
124
+ class: N(["text-content", n ? "text-footnote text-content-muted" : "text-body"])
125
+ }, $(e(g).dateTime(s.last_sign_in)), 11, ae)) : (p(), S("span", {
126
+ key: 1,
127
+ class: N(n ? "text-footnote text-content-disabled" : "text-body text-content-disabled")
128
+ }, $(e(o)("core.users.never")), 3))
129
+ ]),
130
+ "cell-status": c(({ item: s, compact: n }) => [
131
+ !n || s.status !== "active" ? (p(), C(e(G), {
132
+ key: 0,
133
+ tone: e(J)(s.status),
134
+ dot: ""
135
+ }, {
136
+ default: c(() => [
137
+ z($(e(o)(`core.users.status.${s.status}`)), 1)
138
+ ]),
139
+ _: 2
140
+ }, 1032, ["tone"])) : A("", !0)
141
+ ]),
142
+ default: c(() => [
143
+ r(oe, {
144
+ ref_key: "dialog",
145
+ ref: f,
146
+ onCreated: a[0] || (a[0] = (s) => e(h).push(e(E).record({ id: s.id })))
147
+ }, null, 512)
148
+ ]),
149
+ _: 1
150
+ }, 8, ["collection", "title", "description", "actions", "row-label"]));
151
+ }
152
+ });
153
+ export {
154
+ xe as default
155
+ };
@@ -0,0 +1,28 @@
1
+ import { defineComponent as u, useModel as m, computed as d, openBlock as r, createBlock as p, unref as c, mergeModels as i } from "vue";
2
+ import { _ as b } from "./Tabs.vue_vue_type_script_setup_true_lang-BeGaydRr.js";
3
+ const _ = /* @__PURE__ */ u({
4
+ __name: "ViewTabs",
5
+ props: /* @__PURE__ */ i({
6
+ views: {},
7
+ counts: {},
8
+ labelOf: { type: Function },
9
+ label: {}
10
+ }, {
11
+ modelValue: { required: !0 },
12
+ modelModifiers: {}
13
+ }),
14
+ emits: ["update:modelValue"],
15
+ setup(a) {
16
+ const e = a, t = m(a, "modelValue"), n = d(() => e.views.map((l) => ({ value: l, label: e.labelOf(l), badge: e.counts?.find((o) => o.key === l)?.count })));
17
+ return (l, o) => (r(), p(c(b), {
18
+ modelValue: t.value,
19
+ "onUpdate:modelValue": o[0] || (o[0] = (s) => t.value = s),
20
+ tabs: n.value,
21
+ presentation: "scope",
22
+ label: e.label
23
+ }, null, 8, ["modelValue", "tabs", "label"]));
24
+ }
25
+ });
26
+ export {
27
+ _
28
+ };
@@ -0,0 +1,19 @@
1
+ import type { Binding, SubjectRef } from "../modules/access/entities";
2
+ /**
3
+ * *Add role*: where first (a level of the hierarchy and the place, from what the server says this person may be given and the actor may give;
4
+ * an application with one level asks nothing here), then the role, from the ones the actor may give there (delegation already applied). What the
5
+ * chosen role reaches is the role's own and is only shown: it changes in Roles, not here.
6
+ */
7
+ type __VLS_Props = {
8
+ subject: SubjectRef;
9
+ subjectLabel: string;
10
+ };
11
+ declare function present(): Promise<void>;
12
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
13
+ present: typeof present;
14
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ added: (binding: Binding) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
+ onAdded?: ((binding: Binding) => any) | undefined;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import type { Binding } from "../modules/access/entities";
2
+ /**
3
+ * One role a person holds and where it applies, read-only: the role's name, its kind under it, the place on the right. The
4
+ * access panel puts *Remove* in the trailing slot; a profile page shows it as it is.
5
+ */
6
+ type __VLS_Props = {
7
+ binding: Pick<Binding, "role" | "scope">;
8
+ };
9
+ type __VLS_Slots = {
10
+ trailing?: () => unknown;
11
+ };
12
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
@@ -0,0 +1,12 @@
1
+ import type { EffectivePermission } from "../modules/access/entities";
2
+ /**
3
+ * *What {name} can do*: the effective permissions by module and screen, worked out from the roles; nothing here edits. Each screen says
4
+ * which actions are held, which roles give them and how wide (whose records, which places); *Why* opens the reason for every action.
5
+ * A permission switched off for the tenant is marked. On a phone the modules beyond the first three sit behind *All n modules*.
6
+ */
7
+ type __VLS_Props = {
8
+ effective: readonly EffectivePermission[];
9
+ name: string;
10
+ };
11
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import { type Grants } from "./catalogue";
2
+ /**
3
+ * The permissions of a role as the editor shows them: the catalogue's modules (a list on the left, a tab bar on phones)
4
+ * with what the role holds of each, then each screen as a group of switches. Switching a permission on switches on what it
5
+ * needs, off what needs it; where a screen's records have an owner the group opens with *whose* (own, location's, all), held
6
+ * once per record type. `grants` is edited in place; `readonly` shows the role without letting it change.
7
+ */
8
+ type __VLS_Props = {
9
+ grants: Grants;
10
+ readonly: boolean;
11
+ };
12
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ export default _default;
@@ -0,0 +1,21 @@
1
+ import type { SubjectRef } from "../modules/access/entities";
2
+ /**
3
+ * A person's access: their roles, each with where it applies, *Add role* and removal (both offered only when the server says the actor may
4
+ * manage them), then *What {name} can do*, the effective permissions with their reasons. Put it on the person's record, as a section
5
+ * (`<PersonAccess :subject="{ kind: 'user', id }" :name="person.name" />`); `subjectLabel` says who a role is added for under the dialog's title.
6
+ */
7
+ type __VLS_Props = {
8
+ subject: SubjectRef;
9
+ /** The person's name, for "What Ana can do". */
10
+ name: string;
11
+ /** Under the add dialog's title; by default the name. */
12
+ subjectLabel?: string;
13
+ };
14
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
15
+ reload: () => Promise<void>;
16
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
+ loaded: (bindings: number) => any;
18
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
+ onLoaded?: ((bindings: number) => any) | undefined;
20
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import type { Role, RoleSummary } from "../modules/access/entities";
2
+ /**
3
+ * *Replace*: every holder of a custom role gets a predefined role at the same place instead. It goes through the same rules as
4
+ * giving a role, so it can be refused (you cannot give more than you hold); either every holder moves or none does.
5
+ */
6
+ type __VLS_Props = {
7
+ role: Role;
8
+ others: readonly RoleSummary[];
9
+ };
10
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
11
+ present: () => void;
12
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ replaced: (rebound: number) => any;
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onReplaced?: ((rebound: number) => any) | undefined;
16
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { Role, RoleSummary } from "../modules/access/entities";
2
+ /**
3
+ * *Compare with a predefined role*: what a custom role holds that the other does not, what it lacks, and where the whose
4
+ * differs. The way to see how far a copy has drifted before replacing it.
5
+ */
6
+ type __VLS_Props = {
7
+ role: Role;
8
+ others: readonly RoleSummary[];
9
+ };
10
+ declare function present(): void;
11
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
12
+ present: typeof present;
13
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ export default _default;
@@ -0,0 +1,28 @@
1
+ import type { Role } from "../modules/access/entities";
2
+ import { type Grants } from "./catalogue";
3
+ /**
4
+ * A role, read or edited: its name and description, then the permission tree. A custom role edits with Save and Cancel in the
5
+ * page chrome; a predefined or computed role only reads (*Copy* is its way to a custom one). `source` prefills a new role from
6
+ * another (Copy): it is still created as a new role.
7
+ */
8
+ type __VLS_Props = {
9
+ /** The saved role; null while creating a new one. */
10
+ role: Role | null;
11
+ /** The role a new one is copied from. */
12
+ source?: Role | null;
13
+ };
14
+ interface Draft {
15
+ name: string;
16
+ description: string;
17
+ grants: Grants;
18
+ }
19
+ declare function save(): Promise<void>;
20
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
21
+ form: import("../form").Form<Draft, Draft>;
22
+ save: typeof save;
23
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
+ saved: (role: Role) => any;
25
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
26
+ onSaved?: ((role: Role) => any) | undefined;
27
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import type { HttpClient } from "../client";
2
+ import type { BindInput, CreateRoleInput, UpdateRoleInput } from "../modules/access/schemas";
3
+ import type { SubjectRef } from "../modules/access/entities";
4
+ type Options = {
5
+ readonly signal?: AbortSignal;
6
+ };
7
+ /** go-core's access routes as calls; `data` of each answer already read. */
8
+ export declare function createAccessApi(http: HttpClient): {
9
+ roles: (options?: Options) => Promise<import(".").RoleSummary[]>;
10
+ role: (ref: string, options?: Options) => Promise<import(".").Role>;
11
+ holders: (ref: string, options?: Options) => Promise<import(".").RoleHolder[]>;
12
+ compare: (ref: string, other: string, options?: Options) => Promise<import(".").RoleComparison>;
13
+ create: (input: CreateRoleInput) => Promise<import(".").Role>;
14
+ update: (input: UpdateRoleInput) => Promise<import(".").Role>;
15
+ remove: (ref: string) => Promise<undefined>;
16
+ replace: (ref: string, other: string) => Promise<number>;
17
+ access: (subject: SubjectRef, options?: Options) => Promise<import(".").SubjectAccess>;
18
+ scopes: (subject: SubjectRef, options?: Options) => Promise<import(".").ScopeOptions>;
19
+ bindable: (level: string, scopeId: number | null, options?: Options) => Promise<import(".").Role[]>;
20
+ bind: (subject: SubjectRef, input: Omit<BindInput, "id">) => Promise<import(".").Binding>;
21
+ unbind: (subject: SubjectRef, bindingId: number) => Promise<undefined>;
22
+ };
23
+ export type AccessApi = ReturnType<typeof createAccessApi>;
24
+ /** The calls, over the platform's client; call it in `setup`. */
25
+ export declare const useAccessApi: () => AccessApi;
26
+ export {};