@wssto2/vue-core 0.20.0 → 0.22.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 (138) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +2 -1
  3. package/dist/{AccountMenuItem.vue_vue_type_script_setup_true_lang-rmH1XbU9.js → AccountMenuItem.vue_vue_type_script_setup_true_lang-C2TmmH38.js} +1 -1
  4. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-_TDoIg53.js → ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js} +2 -2
  5. package/dist/{Activity-BDVYmNgy.js → Activity-COtW_n6d.js} +8 -8
  6. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-DryXyklZ.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-BkZzuICH.js} +3 -3
  7. package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-QYvbly_-.js → AlertDialog.vue_vue_type_script_setup_true_lang-B0UvzCoE.js} +1 -1
  8. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-DRP4BnMb.js → AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js} +4 -4
  9. package/dist/{Banner.vue_vue_type_script_setup_true_lang-ukLpznql.js → Banner.vue_vue_type_script_setup_true_lang-BXZVOhfH.js} +1 -1
  10. package/dist/{Button.vue_vue_type_script_setup_true_lang-DkRuLqQK.js → Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js} +1 -1
  11. package/dist/{Changes-DRij0rEQ.js → Changes-DGjV18aQ.js} +4 -4
  12. package/dist/CharacteristicsPage-fGnahf62.js +4 -0
  13. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-Aoof1prZ.js → CollectionPage.vue_vue_type_script_setup_true_lang-Bf5WXVFZ.js} +11 -11
  14. package/dist/CollectionTree.vue_vue_type_script_setup_true_lang-DV0OhquO.js +345 -0
  15. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-DGcNcRkO.js → DataTable.vue_vue_type_script_setup_true_lang-Cw_E8w48.js} +1 -1
  16. package/dist/{DateField.vue_vue_type_script_setup_true_lang-J04KjxmR.js → DateField.vue_vue_type_script_setup_true_lang-Cn8CNAwM.js} +4 -4
  17. package/dist/{DeadLetters-Dpm4UY__.js → DeadLetters--js7aeC6.js} +3 -3
  18. package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-CxNVKoYI.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-lnFUie1d.js} +1 -1
  19. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-ByKvrNSg.js → EmptyState.vue_vue_type_script_setup_true_lang-DHmu-UG-.js} +1 -1
  20. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-7bIssY9f.js → FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js} +3 -3
  21. package/dist/{FormRow.vue_vue_type_script_setup_true_lang-okuxbKyI.js → FormRow.vue_vue_type_script_setup_true_lang-B-uth5RB.js} +1 -1
  22. package/dist/{FormView.vue_vue_type_script_setup_true_lang-CiYprNRr.js → FormView.vue_vue_type_script_setup_true_lang-CoQZG-hB.js} +2 -2
  23. package/dist/{General-BmVEbYqv.js → General-xayJ3Y-j.js} +7 -7
  24. package/dist/{HeaderAction.vue_vue_type_script_setup_true_lang-DVfkuOy-.js → HeaderAction.vue_vue_type_script_setup_true_lang-Uw0vwV-o.js} +2 -2
  25. package/dist/{Icon.vue_vue_type_script_lang-0pW1XBaE.js → Icon.vue_vue_type_script_lang-BIzh8LF1.js} +41 -37
  26. package/dist/{IconTile.vue_vue_type_script_setup_true_lang-BWHQiA7d.js → IconTile.vue_vue_type_script_setup_true_lang-DRirnJvd.js} +1 -1
  27. package/dist/{IncidentRecord-DWY6Bws1.js → IncidentRecord-BETFfXbI.js} +15 -15
  28. package/dist/{IncidentsList-C21UNIhT.js → IncidentsList-BIr3a2To.js} +5 -5
  29. package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CpEd_Psg.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-DjXYh-p0.js} +1 -1
  30. package/dist/{Menu.vue_vue_type_script_setup_true_lang-DobycRxf.js → Menu.vue_vue_type_script_setup_true_lang-D2FsOVYA.js} +1 -1
  31. package/dist/{MenuButton.vue_vue_type_script_setup_true_lang-qDKt6gX9.js → MenuButton.vue_vue_type_script_setup_true_lang-BNzrYIzR.js} +1 -1
  32. package/dist/{Modal.vue_vue_type_script_setup_true_lang-C0tQAYQ4.js → Modal.vue_vue_type_script_setup_true_lang-BRRMKXOV.js} +2 -2
  33. package/dist/{NewRolePage-K5zts3e_.js → NewRolePage-B2qo3_Ht.js} +4 -4
  34. package/dist/{NoAccess.vue_vue_type_script_setup_true_lang-BYnTQCtW.js → NoAccess.vue_vue_type_script_setup_true_lang-CnfE_AEl.js} +1 -1
  35. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-CxgVJrdv.js → NumberField.vue_vue_type_script_setup_true_lang-BDZ_0TH7.js} +2 -2
  36. package/dist/{Panel.vue_vue_type_script_setup_true_lang-DTCmFSwg.js → Panel.vue_vue_type_script_setup_true_lang-CwcJadT7.js} +1 -1
  37. package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-Kp9g93wE.js → PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js} +11 -11
  38. package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-D2-uQbSV.js → PhotoViewer.vue_vue_type_script_setup_true_lang-BL485L63.js} +1 -1
  39. package/dist/{ProfilePage-C3mLBer6.js → ProfilePage-KK6lV4Yd.js} +15 -15
  40. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-Dz5Qw8II.js → RecordHeader.vue_vue_type_script_setup_true_lang-D4PcZnbo.js} +2 -2
  41. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-R3eJKPq5.js → ResourcePage.vue_vue_type_script_setup_true_lang-CpGwm2tv.js} +4 -4
  42. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CGMpBpnK.js → RoleEditor.vue_vue_type_script_setup_true_lang-DbyVIoj9.js} +12 -12
  43. package/dist/{RolePage-C62_sGxx.js → RolePage-QLKrhjd_.js} +12 -12
  44. package/dist/{RolesPage-CS8ryIQq.js → RolesPage-UHWfuxiU.js} +8 -8
  45. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-C6eOVjpa.js → SectionList.vue_vue_type_script_setup_true_lang-BdJ11lZo.js} +2 -2
  46. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-DqDcFvS0.js → SectionNavigator.vue_vue_type_script_setup_true_lang-CnzECivO.js} +4 -4
  47. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-Du4YUcw9.js → SegmentedField.vue_vue_type_script_setup_true_lang-D3IZil4q.js} +2 -2
  48. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BA5YMCXA.js → SelectField.vue_vue_type_script_setup_true_lang-DxCEwED6.js} +6 -6
  49. package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-BoeV2_MN.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-qKkn3XrU.js} +7 -7
  50. package/dist/{ServiceAccountRecord-BDkaaOte.js → ServiceAccountRecord-04tOH3XA.js} +17 -17
  51. package/dist/{ServiceAccountsList-KaZwNlK5.js → ServiceAccountsList-CDtwLH3o.js} +9 -9
  52. package/dist/{Sessions-DhOpUlRc.js → Sessions-BClXu0cg.js} +5 -5
  53. package/dist/{SettingsPage-DPzg7zwX.js → SettingsPage-4Dolsr0t.js} +17 -17
  54. package/dist/{Sheet.vue_vue_type_script_setup_true_lang-C1jpmLYN.js → Sheet.vue_vue_type_script_setup_true_lang-BVU5yzXe.js} +1 -1
  55. package/dist/{SignIn-4aUxE2LU.js → SignIn-BVQtcHZv.js} +6 -6
  56. package/dist/{SignInPage-B80pQ8tG.js → SignInPage-2ocu1_7y.js} +5 -5
  57. package/dist/{SignIns-CLX8Puf1.js → SignIns-CdUgFZ1e.js} +4 -4
  58. package/dist/SortableList.vue_vue_type_script_setup_true_lang-D2-5Z_jO.js +112 -0
  59. package/dist/{StatusLine.vue_vue_type_script_setup_true_lang-BN8nG1CW.js → StatusLine.vue_vue_type_script_setup_true_lang-DBkQueB0.js} +1 -1
  60. package/dist/{SwipeActions.vue_vue_type_script_setup_true_lang-BBqcW3MR.js → SwipeActions.vue_vue_type_script_setup_true_lang-DUjUWq3G.js} +1 -1
  61. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-Dw7BbBU4.js → SwitchField.vue_vue_type_script_setup_true_lang-CTMjlNid.js} +2 -2
  62. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-Cma_ma6V.js → Tabs.vue_vue_type_script_setup_true_lang-7CJto6Mp.js} +1 -1
  63. package/dist/{TextField.vue_vue_type_script_setup_true_lang-DS6RPR-h.js → TextField.vue_vue_type_script_setup_true_lang-B6Q65aQA.js} +4 -4
  64. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-BqpZt1Hv.js → TextareaField.vue_vue_type_script_setup_true_lang-Cj0LKDdo.js} +2 -2
  65. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-BeS1cfqL.js → TimeField.vue_vue_type_script_setup_true_lang-TSnnjMn1.js} +4 -4
  66. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-XbbupD9A.js → Timestamp.vue_vue_type_script_setup_true_lang-0WL7PP0j.js} +1 -1
  67. package/dist/{UserRecord-BFqw2Pi8.js → UserRecord-Ces8OW7J.js} +7 -7
  68. package/dist/{UsersList-C52C1lN1.js → UsersList-Ad4zHRYa.js} +2 -2
  69. package/dist/{ViewTabs.vue_vue_type_script_setup_true_lang-CBYrLPL4.js → ViewTabs.vue_vue_type_script_setup_true_lang-BKI5DGuS.js} +1 -1
  70. package/dist/access/index.js +7 -7
  71. package/dist/app/index.js +1 -1
  72. package/dist/{application-cTqMhmFf.js → application-C5fZyCB9.js} +4 -4
  73. package/dist/button/index.js +1 -1
  74. package/dist/characteristics/CharacteristicsPage.vue.d.ts +2 -0
  75. package/dist/characteristics/DeleteDialog.vue.d.ts +22 -0
  76. package/dist/characteristics/ItemSheet.vue.d.ts +25 -0
  77. package/dist/characteristics/access.d.ts +3 -0
  78. package/dist/characteristics/api.d.ts +23 -0
  79. package/dist/characteristics/context.d.ts +12 -0
  80. package/dist/characteristics/feature.d.ts +27 -0
  81. package/dist/characteristics/index.d.ts +10 -0
  82. package/dist/characteristics/index.js +617 -0
  83. package/dist/characteristics/model.d.ts +34 -0
  84. package/dist/characteristics/routes.d.ts +13 -0
  85. package/dist/collection/CollectionTree.vue.d.ts +51 -0
  86. package/dist/collection/CollectionTreeBranch.vue.d.ts +12 -0
  87. package/dist/collection/FileExplorer.vue.d.ts +53 -0
  88. package/dist/collection/RowMore.vue.d.ts +11 -0
  89. package/dist/collection/explorer.d.ts +11 -0
  90. package/dist/collection/index.d.ts +5 -0
  91. package/dist/collection/index.js +431 -158
  92. package/dist/collection/tree.d.ts +64 -0
  93. package/dist/content/index.js +4 -4
  94. package/dist/controls/SortableList.vue.d.ts +1 -0
  95. package/dist/controls/index.js +35 -132
  96. package/dist/form/CharacteristicField.vue.d.ts +36 -0
  97. package/dist/form/dynamic/schema.d.ts +4 -0
  98. package/dist/form/index.d.ts +1 -0
  99. package/dist/form/index.js +1774 -1930
  100. package/dist/i18n/index.js +39 -39
  101. package/dist/icon/core.d.ts +4 -0
  102. package/dist/icon/index.js +1 -1
  103. package/dist/identity/index.js +2 -2
  104. package/dist/incidents/index.js +1 -1
  105. package/dist/{index-DLkQwWt9.js → index-4wyfEeIw.js} +8 -8
  106. package/dist/{index-CMx77x5P.js → index-DlD5ZlZq.js} +24 -24
  107. package/dist/{index-CxUfs3Xz.js → index-OVbtHAtG.js} +9 -9
  108. package/dist/index.d.ts +1 -1
  109. package/dist/index.js +1 -1
  110. package/dist/modal/index.js +5 -5
  111. package/dist/modules/characteristics/entities.d.ts +67 -0
  112. package/dist/modules/characteristics/routes.d.ts +55 -0
  113. package/dist/modules/characteristics/schemas.d.ts +50 -0
  114. package/dist/modules/identity/entities.d.ts +1 -0
  115. package/dist/notifications/index.js +1 -1
  116. package/dist/onboarding/index.js +1 -1
  117. package/dist/{options-DIp_lVAj.js → options-DDCG86OV.js} +2 -2
  118. package/dist/overlay/index.js +4 -4
  119. package/dist/page/index.js +7 -7
  120. package/dist/phone/index.js +3 -3
  121. package/dist/pwa/index.js +3 -3
  122. package/dist/resource/index.js +1 -1
  123. package/dist/{resources-BAxfEEv1.js → resources-DkI60fHL.js} +1 -1
  124. package/dist/router/index.js +1 -1
  125. package/dist/routes-DC8BWFz8.js +251 -0
  126. package/dist/{rowLayout-3W9TvFNt.js → rowLayout-zd3Yw6fO.js} +34 -33
  127. package/dist/shell/index.js +8 -8
  128. package/dist/state/index.js +8 -8
  129. package/dist/styles.css +1 -1
  130. package/dist/{suggestions-D0-qmRFy.js → suggestions-DZ3B5RVH.js} +1 -1
  131. package/dist/testing/index.js +1 -1
  132. package/dist/{useCommand-D6K6o6dx.js → useCommand-DerEnzIW.js} +4 -4
  133. package/dist/{useGroupSheet-Daxi2mzi.js → useGroupSheet-B9TCHIKH.js} +5 -5
  134. package/dist/{useRecordDialog-CfBp0kuP.js → useRecordDialog-DX97ivZD.js} +1 -1
  135. package/dist/{useResourceForm-Ddxk7mc0.js → useResourceForm-D8T1snBQ.js} +1 -1
  136. package/dist/{useTypedEntry-r4AqWlV7.js → useTypedEntry-CTkgM29Y.js} +2 -2
  137. package/package.json +8 -3
  138. package/src/styles/base.css +6 -0
@@ -1,5 +1,5 @@
1
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-Cma_ma6V.js";
2
+ import { _ as b } from "./Tabs.vue_vue_type_script_setup_true_lang-7CJto6Mp.js";
3
3
  const _ = /* @__PURE__ */ u({
4
4
  __name: "ViewTabs",
5
5
  props: /* @__PURE__ */ i({
@@ -1,4 +1,4 @@
1
- import { _ as Q, a as U, b as W } from "../PersonAccess.vue_vue_type_script_setup_true_lang-Kp9g93wE.js";
1
+ import { _ as Q, a as U, b as W } from "../PersonAccess.vue_vue_type_script_setup_true_lang-DrD0Y-Zm.js";
2
2
  import { d as _, p as x } from "../feature-DdUAfyi4.js";
3
3
  import { a as n, b } from "../refusals-DfPzVNNY.js";
4
4
  import { d as Y, p as Z, r as ee, c as se, u as te, e as oe, f as ce } from "../refusals-DfPzVNNY.js";
@@ -6,16 +6,16 @@ import { d as h } from "../defineRoutes-BGAdiIrt.js";
6
6
  import { defineComponent as w, openBlock as m, createBlock as R, unref as s, withCtx as u, createElementVNode as a, createVNode as d, toDisplayString as o, normalizeClass as g, createElementBlock as k, createTextVNode as r, createCommentVNode as y } from "vue";
7
7
  import { useI18n as C } from "vue-i18n";
8
8
  import { useRouter as v } from "vue-router";
9
- import { _ as P } from "../Button.vue_vue_type_script_setup_true_lang-DkRuLqQK.js";
10
- import { _ as B } from "../Panel.vue_vue_type_script_setup_true_lang-DTCmFSwg.js";
11
- import { _ as K } from "../Icon.vue_vue_type_script_lang-0pW1XBaE.js";
9
+ import { _ as P } from "../Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
10
+ import { _ as B } from "../Panel.vue_vue_type_script_setup_true_lang-CwcJadT7.js";
11
+ import { _ as K } from "../Icon.vue_vue_type_script_lang-BIzh8LF1.js";
12
12
  const p = h({
13
- roles: { name: "access.roles", path: "/iam/roles", component: () => import("../RolesPage-CS8ryIQq.js"), meta: { access: n.viewRoles, titleKey: "core.access.title" } },
14
- newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("../NewRolePage-K5zts3e_.js"), meta: { access: n.manageRoles, titleKey: "core.access.new_title" } },
13
+ roles: { name: "access.roles", path: "/iam/roles", component: () => import("../RolesPage-UHWfuxiU.js"), meta: { access: n.viewRoles, titleKey: "core.access.title" } },
14
+ newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("../NewRolePage-B2qo3_Ht.js"), meta: { access: n.manageRoles, titleKey: "core.access.new_title" } },
15
15
  role: {
16
16
  name: "access.role",
17
17
  path: "/iam/roles/:ref",
18
- component: () => import("../RolePage-C62_sGxx.js"),
18
+ component: () => import("../RolePage-QLKrhjd_.js"),
19
19
  // A role's ref (its key, or the id of a custom one) swaps in place when a link leads to another role.
20
20
  meta: { access: n.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
21
21
  }
package/dist/app/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as r, c as o } from "../application-cTqMhmFf.js";
1
+ import { A as r, c as o } from "../application-C5fZyCB9.js";
2
2
  import { c as p, a as s } from "../current-CslcEPXp.js";
3
3
  import { S as n } from "../contributions-BSmIRPg1.js";
4
4
  import { a as l, u } from "../environment-Dva-SG8D.js";
@@ -7,20 +7,20 @@ import { createRouter as Ve, isNavigationFailure as Ge } from "vue-router";
7
7
  import { i as Je } from "./leaveGuard-Cc8yeLxM.js";
8
8
  import { c as ze, i as Qe, f as Ue } from "./format-C_HXlOYQ.js";
9
9
  import { messageLoaders as Xe, coreMessages as le, createMessageRuntime as Ye } from "./i18n/index.js";
10
- import { i as Ze, a as et } from "./Icon.vue_vue_type_script_lang-0pW1XBaE.js";
10
+ import { i as Ze, a as et } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
11
11
  import { i as tt, b as st } from "./bottomDock-BZEiOPYZ.js";
12
12
  import { i as ot, p as rt } from "./chrome-kMBKIB1N.js";
13
13
  import { i as at, g as nt } from "./platform-YWfOO7b2.js";
14
14
  import { c as it, A as ct, r as ue } from "./access-DmAceEo5.js";
15
- import { c as lt, _ as ut } from "./NoAccess.vue_vue_type_script_setup_true_lang-BYnTQCtW.js";
15
+ import { c as lt, _ as ut } from "./NoAccess.vue_vue_type_script_setup_true_lang-CnfE_AEl.js";
16
16
  import { i as ft } from "./guards-BP9x7CLF.js";
17
17
  import { b as dt, c as pt, n as fe } from "./navigation-C05vGEN8.js";
18
18
  import { c as mt, s as de } from "./contributions-BSmIRPg1.js";
19
19
  import { a as pe } from "./environment-Dva-SG8D.js";
20
20
  import { b as me, c as he } from "./describeError-B-NMa--w.js";
21
21
  import { b as ht } from "./current-CslcEPXp.js";
22
- import { _ as gt } from "./Button.vue_vue_type_script_setup_true_lang-DkRuLqQK.js";
23
- import { _ as wt } from "./EmptyState.vue_vue_type_script_setup_true_lang-ByKvrNSg.js";
22
+ import { _ as gt } from "./Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
23
+ import { _ as wt } from "./EmptyState.vue_vue_type_script_setup_true_lang-DHmu-UG-.js";
24
24
  import { i as vt } from "./feature-DdUAfyi4.js";
25
25
  function yt(e) {
26
26
  const { platform: n } = e, o = V();
@@ -1,4 +1,4 @@
1
- import { _ as o } from "../Button.vue_vue_type_script_setup_true_lang-DkRuLqQK.js";
1
+ import { _ as o } from "../Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
2
2
  import { m as a, s as e, u, a as c } from "../shortcut-oixX55SZ.js";
3
3
  export {
4
4
  o as Button,
@@ -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,22 @@
1
+ import type { CharacteristicNode } from "./model";
2
+ /**
3
+ * Deleting an item, after the server says where it is used (`GET .../usage`): "Used by 2 pages and 1 host", "has 3 items below it", or that where
4
+ * it is used is not known. Each of those means a delete would take something with it, so the dialog offers to deactivate instead (the item
5
+ * stays, and leaves the forms' choices), and deleting needs a second confirmation that sends `force`. An item nothing uses and nothing hangs
6
+ * under is deleted by one click, without `force`. Opened with `show(node)`.
7
+ */
8
+ type __VLS_Props = {
9
+ /** Whether the item has a switch: only then can it be deactivated instead. */
10
+ canDeactivate: (node: CharacteristicNode) => boolean;
11
+ };
12
+ declare function show(next: CharacteristicNode): Promise<void>;
13
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
14
+ show: typeof show;
15
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ deactivate: (node: CharacteristicNode) => any;
17
+ deleted: (node: CharacteristicNode) => any;
18
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
+ onDeactivate?: ((node: CharacteristicNode) => any) | undefined;
20
+ onDeleted?: ((node: CharacteristicNode) => any) | undefined;
21
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ export default _default;
@@ -0,0 +1,25 @@
1
+ import type { DescriptionResponse, ItemResponse } from "../modules/characteristics/entities";
2
+ import { type CharacteristicNode } from "./model";
3
+ /**
4
+ * One item in a sheet, built from the project's description: the name (per language when the level has translations), the switch, and the
5
+ * level's extra fields for the branch the item is in, each by its type (text, number, yes/no, choice). A read-only field shows locked; the
6
+ * ones the item's branch does not have are not there. Nothing here is specific to a project. `editable` false is the same sheet read.
7
+ * Saving creates (`parent` null for a root) or updates; a changed switch is its own call after it. Opened with `show`.
8
+ */
9
+ type __VLS_Props = {
10
+ description: DescriptionResponse;
11
+ editable: boolean; /** The title of a new item's sheet: the page's add phrase for its level. */
12
+ createTitle: (parent: CharacteristicNode | null, level: number) => string;
13
+ };
14
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {
15
+ /** A new item below `parent` (null: a root of level 1). */
16
+ create: (parent: CharacteristicNode | null) => void;
17
+ edit: (node: CharacteristicNode) => void;
18
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
+ remove: (node: CharacteristicNode) => any;
20
+ saved: (item: ItemResponse, created: boolean) => any;
21
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
22
+ onRemove?: ((node: CharacteristicNode) => any) | undefined;
23
+ onSaved?: ((item: ItemResponse, created: boolean) => any) | undefined;
24
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import type { Permission } from "../platform";
2
+ export declare const VIEW_CHARACTERISTICS: Permission;
3
+ export declare const EDIT_CHARACTERISTICS: Permission;
@@ -0,0 +1,23 @@
1
+ import type { HttpClient } from "../client";
2
+ import type { DeleteResponse, DescriptionResponse, ItemResponse, UsageResponse } from "../modules/characteristics/entities";
3
+ import type { CreateInput, UpdateInput } from "../modules/characteristics/schemas";
4
+ type Options = {
5
+ readonly signal?: AbortSignal;
6
+ };
7
+ /** go-core's characteristics routes as calls; `data` of each answer already read. */
8
+ export declare function createCharacteristicsApi(http: HttpClient): {
9
+ tree: (options?: Options) => Promise<readonly ItemResponse[]>;
10
+ description: (options?: Options) => Promise<DescriptionResponse>;
11
+ usage: (level: number, id: number, options?: Options) => Promise<UsageResponse>;
12
+ create: (input: CreateInput, idempotencyKey: string) => Promise<ItemResponse>;
13
+ update: (input: UpdateInput, idempotencyKey: string) => Promise<ItemResponse>;
14
+ setActive: (level: number, id: number, active: boolean) => Promise<ItemResponse>;
15
+ /** `position` counts from 1 among the siblings. */
16
+ move: (level: number, id: number, position: number) => Promise<void>;
17
+ /** Refused with `characteristics.in_use` or `characteristics.has_children` unless `force`. */
18
+ remove: (level: number, id: number, force?: boolean) => Promise<DeleteResponse>;
19
+ };
20
+ export type CharacteristicsApi = ReturnType<typeof createCharacteristicsApi>;
21
+ /** The calls, over the platform's client; call it in `setup`. */
22
+ export declare const useCharacteristicsApi: () => CharacteristicsApi;
23
+ export {};
@@ -0,0 +1,12 @@
1
+ /** What an application tells the characteristics screen. */
2
+ export interface CharacteristicsContext {
3
+ /**
4
+ * The add phrase of a level, whole ("Dodaj marku"): `parent` is the item the new one goes under (`null`: a root), `level` the new item's level
5
+ * (from 1). Return `undefined` for the library's neutral phrase ("Dodaj skupinu" at the top, "Dodaj stavku" below).
6
+ */
7
+ readonly addLabel: ((parent: {
8
+ level: number;
9
+ name: string;
10
+ } | null, level: number) => string | null | undefined) | null;
11
+ }
12
+ export declare const characteristicsContextKey: import("vue").InjectionKey<CharacteristicsContext>, useCharacteristicsContext: () => CharacteristicsContext;
@@ -0,0 +1,27 @@
1
+ import { type Feature } from "../app";
2
+ import { type CharacteristicsContext } from "./context";
3
+ import type { Destination } from "../router";
4
+ export interface CharacteristicsFeatureOptions {
5
+ /** The destination of the backend's menu that opens the screen. Without it the application links to `characteristicsPages.index` itself. */
6
+ destination?: Destination;
7
+ /**
8
+ * The add phrase of a level, whole, in the application's words: `addLabel: (parent, level) => (parent?.name === "Marke" ? t("add_brand") : undefined)`.
9
+ * The server's description has no text for it (only the level's name, which a sentence cannot be built from in Croatian), so without this
10
+ * the screen says "Dodaj skupinu" at the top level and "Dodaj stavku" below.
11
+ */
12
+ addLabel?: NonNullable<CharacteristicsContext["addLabel"]>;
13
+ }
14
+ /**
15
+ * The screen of go-core's characteristics module, one feature to install: `/characteristics` (route `characteristics.index`) with the tree of
16
+ * lookup lists, the sheet that edits an item, activating, reordering and deleting after the usage is shown. It is behind `characteristics:view`
17
+ * (route access), its write actions behind `characteristics:edit`; go-core grants neither to anybody, so the application gives
18
+ * `characteristics.Grants()` to its webmaster role. The server must have the module installed (`characteristics.Install`).
19
+ *
20
+ * The screen has no project-specific code: the levels, languages and extra fields come from the server's description of the tables.
21
+ *
22
+ * createApplication({ platform, shell: backofficeShell(), features: [identityFeature(), characteristicsFeature({ destination: "characteristics" })] })
23
+ *
24
+ * Why a feature, not a page to mount: the screen needs its route, its access rule and its title together, as the access and service account
25
+ * screens do; `CharacteristicsPage` is exported for an application that wants its own route.
26
+ */
27
+ export declare function characteristicsFeature(options?: CharacteristicsFeatureOptions): Feature;
@@ -0,0 +1,10 @@
1
+ export type * from "../modules/characteristics/entities";
2
+ export type * as Inputs from "../modules/characteristics/schemas";
3
+ export { characteristicsRoutes } from "../modules/characteristics/routes";
4
+ export { characteristicsFeature } from "./feature";
5
+ export type { CharacteristicsFeatureOptions } from "./feature";
6
+ export { characteristicsPages } from "./routes";
7
+ export type { CharacteristicsPages } from "./routes";
8
+ export { createCharacteristicsApi, useCharacteristicsApi } from "./api";
9
+ export type { CharacteristicsApi } from "./api";
10
+ export { default as CharacteristicsPage } from "./CharacteristicsPage.vue";