@wssto2/vue-core 0.20.0 → 0.21.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.
- package/CHANGELOG.md +15 -0
- package/README.md +2 -1
- package/dist/{AccountMenuItem.vue_vue_type_script_setup_true_lang-rmH1XbU9.js → AccountMenuItem.vue_vue_type_script_setup_true_lang-C2TmmH38.js} +1 -1
- package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-_TDoIg53.js → ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js} +2 -2
- package/dist/{Activity-BDVYmNgy.js → Activity-CZzAt3SH.js} +8 -8
- package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-DryXyklZ.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-BkZzuICH.js} +3 -3
- package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-QYvbly_-.js → AlertDialog.vue_vue_type_script_setup_true_lang-B0UvzCoE.js} +1 -1
- 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
- package/dist/{Banner.vue_vue_type_script_setup_true_lang-ukLpznql.js → Banner.vue_vue_type_script_setup_true_lang-BXZVOhfH.js} +1 -1
- package/dist/{Button.vue_vue_type_script_setup_true_lang-DkRuLqQK.js → Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js} +1 -1
- package/dist/{Changes-DRij0rEQ.js → Changes-B0bhSNU3.js} +4 -4
- package/dist/CharacteristicsPage-fGnahf62.js +4 -0
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-Aoof1prZ.js → CollectionPage.vue_vue_type_script_setup_true_lang-Bf5WXVFZ.js} +11 -11
- package/dist/CollectionTree.vue_vue_type_script_setup_true_lang-DV0OhquO.js +345 -0
- 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
- package/dist/{DateField.vue_vue_type_script_setup_true_lang-J04KjxmR.js → DateField.vue_vue_type_script_setup_true_lang-Cn8CNAwM.js} +4 -4
- package/dist/{DeadLetters-Dpm4UY__.js → DeadLetters--js7aeC6.js} +3 -3
- package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-CxNVKoYI.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-lnFUie1d.js} +1 -1
- 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
- package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-7bIssY9f.js → FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js} +3 -3
- 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
- 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
- package/dist/{General-BmVEbYqv.js → General-BGT9H69S.js} +7 -7
- 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
- package/dist/{Icon.vue_vue_type_script_lang-0pW1XBaE.js → Icon.vue_vue_type_script_lang-BIzh8LF1.js} +41 -37
- package/dist/{IconTile.vue_vue_type_script_setup_true_lang-BWHQiA7d.js → IconTile.vue_vue_type_script_setup_true_lang-DRirnJvd.js} +1 -1
- package/dist/{IncidentRecord-DWY6Bws1.js → IncidentRecord-BETFfXbI.js} +15 -15
- package/dist/{IncidentsList-C21UNIhT.js → IncidentsList-BIr3a2To.js} +5 -5
- 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
- package/dist/{Menu.vue_vue_type_script_setup_true_lang-DobycRxf.js → Menu.vue_vue_type_script_setup_true_lang-D2FsOVYA.js} +1 -1
- package/dist/{MenuButton.vue_vue_type_script_setup_true_lang-qDKt6gX9.js → MenuButton.vue_vue_type_script_setup_true_lang-BNzrYIzR.js} +1 -1
- package/dist/{Modal.vue_vue_type_script_setup_true_lang-C0tQAYQ4.js → Modal.vue_vue_type_script_setup_true_lang-BRRMKXOV.js} +2 -2
- package/dist/{NewRolePage-K5zts3e_.js → NewRolePage-B0Y5MrTu.js} +4 -4
- 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
- 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
- package/dist/{Panel.vue_vue_type_script_setup_true_lang-DTCmFSwg.js → Panel.vue_vue_type_script_setup_true_lang-CwcJadT7.js} +1 -1
- package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-Kp9g93wE.js → PersonAccess.vue_vue_type_script_setup_true_lang-CJMV9BDQ.js} +10 -10
- 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
- package/dist/{ProfilePage-C3mLBer6.js → ProfilePage-CMy2Dkr2.js} +15 -15
- package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-Dz5Qw8II.js → RecordHeader.vue_vue_type_script_setup_true_lang-D4PcZnbo.js} +2 -2
- package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-R3eJKPq5.js → ResourcePage.vue_vue_type_script_setup_true_lang-CpGwm2tv.js} +4 -4
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CGMpBpnK.js → RoleEditor.vue_vue_type_script_setup_true_lang-CMo8PrO7.js} +11 -11
- package/dist/{RolePage-C62_sGxx.js → RolePage-DGFISfM1.js} +12 -12
- package/dist/{RolesPage-CS8ryIQq.js → RolesPage-Bq9EVB_3.js} +8 -8
- package/dist/{SectionList.vue_vue_type_script_setup_true_lang-C6eOVjpa.js → SectionList.vue_vue_type_script_setup_true_lang-BdJ11lZo.js} +2 -2
- package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-DqDcFvS0.js → SectionNavigator.vue_vue_type_script_setup_true_lang-CnzECivO.js} +4 -4
- package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-Du4YUcw9.js → SegmentedField.vue_vue_type_script_setup_true_lang-D3IZil4q.js} +2 -2
- package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BA5YMCXA.js → SelectField.vue_vue_type_script_setup_true_lang-DxCEwED6.js} +6 -6
- package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-BoeV2_MN.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DtVXUOdP.js} +7 -7
- package/dist/{ServiceAccountRecord-BDkaaOte.js → ServiceAccountRecord-Dc7Gn52W.js} +17 -17
- package/dist/{ServiceAccountsList-KaZwNlK5.js → ServiceAccountsList-DBUFeka-.js} +9 -9
- package/dist/{Sessions-DhOpUlRc.js → Sessions-BMmqYZrJ.js} +5 -5
- package/dist/{SettingsPage-DPzg7zwX.js → SettingsPage-4Dolsr0t.js} +17 -17
- package/dist/{Sheet.vue_vue_type_script_setup_true_lang-C1jpmLYN.js → Sheet.vue_vue_type_script_setup_true_lang-BVU5yzXe.js} +1 -1
- package/dist/{SignIn-4aUxE2LU.js → SignIn-uFn1ZWG8.js} +6 -6
- package/dist/{SignInPage-B80pQ8tG.js → SignInPage-DouCg9aD.js} +5 -5
- package/dist/{SignIns-CLX8Puf1.js → SignIns-CqN5UNmh.js} +4 -4
- package/dist/SortableList.vue_vue_type_script_setup_true_lang-D2-5Z_jO.js +112 -0
- package/dist/{StatusLine.vue_vue_type_script_setup_true_lang-BN8nG1CW.js → StatusLine.vue_vue_type_script_setup_true_lang-DBkQueB0.js} +1 -1
- package/dist/{SwipeActions.vue_vue_type_script_setup_true_lang-BBqcW3MR.js → SwipeActions.vue_vue_type_script_setup_true_lang-DUjUWq3G.js} +1 -1
- package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-Dw7BbBU4.js → SwitchField.vue_vue_type_script_setup_true_lang-CTMjlNid.js} +2 -2
- 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
- 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
- package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-BqpZt1Hv.js → TextareaField.vue_vue_type_script_setup_true_lang-Cj0LKDdo.js} +2 -2
- package/dist/{TimeField.vue_vue_type_script_setup_true_lang-BeS1cfqL.js → TimeField.vue_vue_type_script_setup_true_lang-TSnnjMn1.js} +4 -4
- package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-XbbupD9A.js → Timestamp.vue_vue_type_script_setup_true_lang-0WL7PP0j.js} +1 -1
- package/dist/{UserRecord-BFqw2Pi8.js → UserRecord-CH5oNRLg.js} +7 -7
- package/dist/{UsersList-C52C1lN1.js → UsersList-BmxWpt9h.js} +2 -2
- package/dist/{ViewTabs.vue_vue_type_script_setup_true_lang-CBYrLPL4.js → ViewTabs.vue_vue_type_script_setup_true_lang-BKI5DGuS.js} +1 -1
- package/dist/access/index.js +7 -7
- package/dist/app/index.js +1 -1
- package/dist/{application-cTqMhmFf.js → application-C5fZyCB9.js} +4 -4
- package/dist/button/index.js +1 -1
- package/dist/characteristics/CharacteristicsPage.vue.d.ts +2 -0
- package/dist/characteristics/DeleteDialog.vue.d.ts +22 -0
- package/dist/characteristics/ItemSheet.vue.d.ts +25 -0
- package/dist/characteristics/access.d.ts +3 -0
- package/dist/characteristics/api.d.ts +23 -0
- package/dist/characteristics/context.d.ts +12 -0
- package/dist/characteristics/feature.d.ts +27 -0
- package/dist/characteristics/index.d.ts +10 -0
- package/dist/characteristics/index.js +617 -0
- package/dist/characteristics/model.d.ts +34 -0
- package/dist/characteristics/routes.d.ts +13 -0
- package/dist/collection/CollectionTree.vue.d.ts +51 -0
- package/dist/collection/CollectionTreeBranch.vue.d.ts +12 -0
- package/dist/collection/FileExplorer.vue.d.ts +53 -0
- package/dist/collection/RowMore.vue.d.ts +11 -0
- package/dist/collection/explorer.d.ts +11 -0
- package/dist/collection/index.d.ts +5 -0
- package/dist/collection/index.js +431 -158
- package/dist/collection/tree.d.ts +64 -0
- package/dist/content/index.js +4 -4
- package/dist/controls/SortableList.vue.d.ts +1 -0
- package/dist/controls/index.js +35 -132
- package/dist/form/CharacteristicField.vue.d.ts +36 -0
- package/dist/form/index.d.ts +1 -0
- package/dist/form/index.js +1764 -1922
- package/dist/i18n/index.js +39 -39
- package/dist/icon/core.d.ts +4 -0
- package/dist/icon/index.js +1 -1
- package/dist/identity/index.js +2 -2
- package/dist/incidents/index.js +1 -1
- package/dist/{index-DLkQwWt9.js → index-4wyfEeIw.js} +8 -8
- package/dist/{index-CMx77x5P.js → index-C_ZVaTkR.js} +24 -24
- package/dist/{index-CxUfs3Xz.js → index-OVbtHAtG.js} +9 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/modal/index.js +5 -5
- package/dist/modules/characteristics/entities.d.ts +67 -0
- package/dist/modules/characteristics/routes.d.ts +55 -0
- package/dist/modules/characteristics/schemas.d.ts +50 -0
- package/dist/modules/identity/entities.d.ts +1 -0
- package/dist/notifications/index.js +1 -1
- package/dist/onboarding/index.js +1 -1
- package/dist/{options-DIp_lVAj.js → options-DDCG86OV.js} +2 -2
- package/dist/overlay/index.js +4 -4
- package/dist/page/index.js +7 -7
- package/dist/phone/index.js +3 -3
- package/dist/pwa/index.js +3 -3
- package/dist/resource/index.js +1 -1
- package/dist/{resources-BAxfEEv1.js → resources-DkI60fHL.js} +1 -1
- package/dist/router/index.js +1 -1
- package/dist/routes-DC8BWFz8.js +251 -0
- package/dist/{rowLayout-3W9TvFNt.js → rowLayout-zd3Yw6fO.js} +34 -33
- package/dist/shell/index.js +7 -7
- package/dist/state/index.js +8 -8
- package/dist/styles.css +1 -1
- package/dist/{suggestions-D0-qmRFy.js → suggestions-DZ3B5RVH.js} +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/{useCommand-D6K6o6dx.js → useCommand-DerEnzIW.js} +4 -4
- package/dist/{useGroupSheet-Daxi2mzi.js → useGroupSheet-B9TCHIKH.js} +5 -5
- package/dist/{useRecordDialog-CfBp0kuP.js → useRecordDialog-DX97ivZD.js} +1 -1
- package/dist/{useResourceForm-Ddxk7mc0.js → useResourceForm-D8T1snBQ.js} +1 -1
- package/dist/{useTypedEntry-r4AqWlV7.js → useTypedEntry-CTkgM29Y.js} +2 -2
- package/package.json +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.21.0 — 2026-11-07
|
|
4
|
+
|
|
5
|
+
The list pieces for site-builder's pages list, template resources and Karakteristike (approved mock-ups in site-builder `next/design/`), and the screen of go-core's characteristics module. Needs go-core v1.34.0-rc.1.
|
|
6
|
+
|
|
7
|
+
### Known limits
|
|
8
|
+
- The characteristics item sheet has no discard-changes guard; the tree's drag handle sits left of its chevron. go-core gaps: the description has no per-level add text; the usage answer is counts, not a list of places; `options` omits inactive items and `show` needs `characteristics:view`, so a chosen inactive item's label comes from the caller (`selected`).
|
|
9
|
+
|
|
10
|
+
### New
|
|
11
|
+
- **collection:** `FileExplorer`, rows of folders, pages, links and files with a host switch, a breadcrumb, ticking (`v-model:selected`), a selection bar of labelled `PageAction`s that exists only while rows are ticked, per-row actions, `@open(row)`, and the open folder in the URL (`v-model:folder`, query parameter `folder`); the columns are the app's. `CollectionTree`, a tree of rows with indentation, chevrons (`aria-expanded`, `v-model:expanded`), reorder among siblings by drag or Alt+Arrow (`@reorder { id, parentId, index }`), an add button per level (`add-label`, `@add`), columns that belong to some branches only (`TreeColumn.visible`), an active switch column, search and filter that keep the ancestors of matches, row actions and `readonly`.
|
|
12
|
+
- **form:** `CharacteristicField`, a select (or, with `multiple`, a multi-select) over a branch of the characteristics tree: `level`, `parent`, `value` (`"id"` or a described column), `lang`, searchable, loading and failed states from the select it wraps, an already-chosen inactive item shown marked "(inactive)" through `selected`. Typed so `form.bind()` fits either mode.
|
|
13
|
+
- **characteristics:** `characteristicsFeature({ destination })`, `CharacteristicsPage`, `characteristicsPages`, `useCharacteristicsApi`, and go-core's types and routes. The tree, the item sheet (names per language, the described extra fields by type, read-only and branch-scoped fields), activate and deactivate, reorder, add at each level, and delete that shows where the item is used, offers to deactivate instead and sends `force` only after a second confirmation. Shown with `characteristics:view`, write actions with `characteristics:edit`. Add buttons are whole phrases ("Dodaj skupinu", "Dodaj stavku"), overridable per level with `characteristicsFeature({ addLabel })`; in the delete dialog Deactivate is the primary action and Delete the danger one.
|
|
14
|
+
- **modules:** `src/modules/characteristics` (go-core v1.34.0-rc.1; `goCore` in package.json moves from v1.19.0, the other modules' generated schemas now trim text).
|
|
15
|
+
- **controls:** `SortableList` `plain` (rows without a card, the handle at the top, for rows that hold a list of their own).
|
|
16
|
+
- **icon:** `folderLine`, `fileLine`, `tagLine`, `uploadLine`; texts in en, hr, bs, sl and sr-Latn with Croatian and Slovenian plurals. Recipes `file-explorer.md`, `collection-tree.md`, `characteristics.md`.
|
|
17
|
+
|
|
3
18
|
## 0.20.0 — 2026-11-07
|
|
4
19
|
|
|
5
20
|
The editor pieces for site-builder's template editor, page editor and page settings (approved mock-ups in site-builder `next/design/`).
|
package/README.md
CHANGED
|
@@ -14,11 +14,12 @@ Its plan and rules are in [PLAN.md](PLAN.md).
|
|
|
14
14
|
| `@wssto2/vue-core/app` | `createApplication`, `defineFeature`, `currentApplication`, `currentHttp` and `application.report` (outside setup, handled errors), shell outlets, effects |
|
|
15
15
|
| `@wssto2/vue-core/shell` | `backofficeShell`, the shell's parts for a custom one |
|
|
16
16
|
| `@wssto2/vue-core/router` | `defineRoutes` (typed targets), guards, navigation |
|
|
17
|
-
| `@wssto2/vue-core/collection` | `defineCollection`, `useCollection`, `CollectionPage`, `DataTable` (a table over an array), record neighbors |
|
|
17
|
+
| `@wssto2/vue-core/collection` | `defineCollection`, `useCollection`, `CollectionPage`, `DataTable` (a table over an array), record neighbors, `FileExplorer` (folders, pages, links and files with a selection bar: [file explorer](docs/recipes/file-explorer.md)), `CollectionTree` (groups that open, reorder among siblings: [tree list](docs/recipes/collection-tree.md)) |
|
|
18
18
|
| `@wssto2/vue-core/resource`, `/page` | `useRouteResource`, `ResourcePage`, `SectionNavigator`, `AdaptivePageShell` |
|
|
19
19
|
| `@wssto2/vue-core/button`, `/controls`, `/content`, `/state`, `/overlay`, `/modal`, `/icon` | the primitives (`/content` includes `Panel`, `KeyValueList`, `StatSummary`, the grouped card of numbers) |
|
|
20
20
|
| `@wssto2/vue-core/i18n`, `/format`, `/client` | messages, `useDescribeError`, formatting, `HttpClient` and `ApiError` |
|
|
21
21
|
| `@wssto2/vue-core/identity`, `/access` | go-core's module contracts (types, route tables) and, in `/identity`, `identityFeature` (sign-in page, language), `identityPlatform()` and `usersFeature` (users, "my profile") and `serviceAccountsFeature` (service accounts and their API keys): [sign-in](docs/recipes/sign-in.md), [users](docs/recipes/users.md), [service accounts](docs/recipes/service-accounts.md) |
|
|
22
|
+
| `@wssto2/vue-core/characteristics` | go-core's characteristics module (lookup lists as one tree): `characteristicsFeature({ destination })`, the whole screen from the server's description, and `CharacteristicField` (in `/form`), the select over a branch: [characteristics](docs/recipes/characteristics.md) |
|
|
22
23
|
| `@wssto2/vue-core/access` (screens) | `accessFeature({ catalogue })`: roles list and editor, compare, replace, a person's roles (`PersonAccess`) and what they can do: [roles and access](docs/recipes/access.md) |
|
|
23
24
|
| `@wssto2/vue-core/notifications` | go-core's notification and events modules: `notificationsFeature({ categories, deadLetters })`: the bell with the unread count, the inbox (popover, bottom sheet on phones), the live stream, the failed-events page: [notifications](docs/recipes/notifications.md) |
|
|
24
25
|
| `@wssto2/vue-core/onboarding` | `Tip`: a card beside something new, shown until the person closes it, remembered in their stored preferences (`usePreferences`, in `/identity`): [preferences and tips](docs/recipes/preferences.md) |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as p, computed as r, openBlock as o, createElementBlock as d, normalizeClass as a, createBlock as c, resolveDynamicComponent as C, unref as i, mergeProps as E, withCtx as S, createCommentVNode as f, createElementVNode as m, toDisplayString as O } from "vue";
|
|
2
2
|
import { RouterLink as R } from "vue-router";
|
|
3
|
-
import { _ as s } from "./Icon.vue_vue_type_script_lang-
|
|
3
|
+
import { _ as s } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
4
4
|
import { _ as z } from "./CountryFlag.vue_vue_type_script_setup_true_lang-Kry_vPPZ.js";
|
|
5
5
|
import { d as v } from "./context-Ch1r4fdN.js";
|
|
6
6
|
const [D, B] = v("vue-core.accountMenu"), [F] = v("vue-core.headerSurface"), h = "focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus", I = "relative not-first:before:absolute not-first:before:top-0 not-first:before:right-0 not-first:before:left-[calc(var(--app-row-inset)+2.25rem)] not-first:before:border-t not-first:before:border-border-separator", H = /* @__PURE__ */ p({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as r, openBlock as o, createElementBlock as l, createElementVNode as s, toDisplayString as n, createCommentVNode as d, renderSlot as f, createBlock as u, unref as c, withCtx as p, normalizeClass as _, createVNode as x } from "vue";
|
|
2
|
-
import { _ as b } from "./FormRow.vue_vue_type_script_setup_true_lang-
|
|
3
|
-
import { _ as h } from "./Icon.vue_vue_type_script_lang-
|
|
2
|
+
import { _ as b } from "./FormRow.vue_vue_type_script_setup_true_lang-B-uth5RB.js";
|
|
3
|
+
import { _ as h } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
4
4
|
const k = { class: "flex flex-wrap items-end gap-3 px-row-inset" }, w = { class: "flex min-w-0 grow basis-56 flex-col gap-1" }, g = { class: "text-title font-semibold tracking-tight text-content-strong" }, y = {
|
|
5
5
|
key: 0,
|
|
6
6
|
class: "max-w-readable text-subheadline text-content-muted"
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { defineComponent as q, ref as b, watch as R, computed as V, openBlock as l, createElementBlock as f, createVNode as v, unref as s, createElementVNode as r, withCtx as u, toDisplayString as c, Fragment as C, renderList as N, createBlock as g, createTextVNode as U, createCommentVNode as A } from "vue";
|
|
2
2
|
import { useI18n as D } from "vue-i18n";
|
|
3
3
|
import { RouterLink as I } from "vue-router";
|
|
4
|
-
import { _ as T } from "./IconTile.vue_vue_type_script_setup_true_lang-
|
|
5
|
-
import { _ as z } from "./Tabs.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { _ as T } from "./IconTile.vue_vue_type_script_setup_true_lang-DRirnJvd.js";
|
|
5
|
+
import { _ as z } from "./Tabs.vue_vue_type_script_setup_true_lang-7CJto6Mp.js";
|
|
6
6
|
import { u as G } from "./format-C_HXlOYQ.js";
|
|
7
|
-
import { _ as B } from "./DateField.vue_vue_type_script_setup_true_lang-
|
|
8
|
-
import { a as H } from "./FormGroup.vue_vue_type_script_setup_true_lang-
|
|
9
|
-
import { _ as J } from "./FormRow.vue_vue_type_script_setup_true_lang-
|
|
7
|
+
import { _ as B } from "./DateField.vue_vue_type_script_setup_true_lang-Cn8CNAwM.js";
|
|
8
|
+
import { a as H } from "./FormGroup.vue_vue_type_script_setup_true_lang-BUhKKybf.js";
|
|
9
|
+
import { _ as J } from "./FormRow.vue_vue_type_script_setup_true_lang-B-uth5RB.js";
|
|
10
10
|
import { i as M } from "./preferences-hYhrw8Uy.js";
|
|
11
11
|
import { u as Q } from "./platform-YWfOO7b2.js";
|
|
12
12
|
import { b as W } from "./routeResource-DlTsGTg_.js";
|
|
13
|
-
import { _ as X } from "./AsyncSection.vue_vue_type_script_setup_true_lang-
|
|
13
|
+
import { _ as X } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
|
|
14
14
|
import { _ as Y } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
15
15
|
import { u as Z } from "./useLoad-M7V-AVwR.js";
|
|
16
|
-
import { P as tt, f as et, j as at } from "./index-
|
|
17
|
-
import { _ as st } from "./ActionRow.vue_vue_type_script_setup_true_lang-
|
|
16
|
+
import { P as tt, f as et, j as at } from "./index-C_ZVaTkR.js";
|
|
17
|
+
import { _ as st } from "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
|
|
18
18
|
const ot = {
|
|
19
19
|
class: "flex min-w-0 flex-col gap-group-gap",
|
|
20
20
|
"data-person-activity": ""
|
|
@@ -2,9 +2,9 @@ import { defineComponent as L, computed as x, openBlock as l, createElementBlock
|
|
|
2
2
|
import { a as O } from "./mediaQuery-CygcXmFW.js";
|
|
3
3
|
import { _ as q } from "./BottomDockPortal.vue_vue_type_script_setup_true_lang-DmwR-2SP.js";
|
|
4
4
|
import { useI18n as j } from "vue-i18n";
|
|
5
|
-
import { _ as Q } from "./Button.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import { _ as $ } from "./Icon.vue_vue_type_script_lang-
|
|
7
|
-
import { _ as U } from "./Menu.vue_vue_type_script_setup_true_lang-
|
|
5
|
+
import { _ as Q } from "./Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
|
|
6
|
+
import { _ as $ } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
7
|
+
import { _ as U } from "./Menu.vue_vue_type_script_setup_true_lang-D2FsOVYA.js";
|
|
8
8
|
import { RouterLink as E, useRoute as W } from "vue-router";
|
|
9
9
|
import { u as Y } from "./format-C_HXlOYQ.js";
|
|
10
10
|
import { u as F, c as G, p as J } from "./chrome-kMBKIB1N.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as H, ref as L, useId as S, computed as u, watch as J, openBlock as a, createBlock as p, Teleport as K, createElementBlock as r, unref as t, createVNode as T, Transition as z, withCtx as I, createCommentVNode as s, createElementVNode as o, toDisplayString as l, renderSlot as V, normalizeClass as d, createTextVNode as $ } from "vue";
|
|
2
2
|
import { useI18n as Q } from "vue-i18n";
|
|
3
|
-
import { _ as j } from "./Icon.vue_vue_type_script_lang-
|
|
3
|
+
import { _ as j } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
4
4
|
import { u as R } from "./mediaQuery-CygcXmFW.js";
|
|
5
5
|
import { u as U } from "./useDialog-B4_MpX2v.js";
|
|
6
6
|
const X = ["aria-labelledby", "aria-describedby", "data-presentation"], Y = { class: "overflow-hidden rounded-menu bg-surface-overlay/95 backdrop-blur-xl" }, Z = { class: "flex flex-col gap-1 px-4 py-3.5 text-center" }, ee = ["id"], te = ["id"], ae = ["disabled"], ne = ["disabled"], oe = ["id"], ie = ["id"], se = ["disabled"], le = ["disabled"], pe = /* @__PURE__ */ H({
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { defineComponent as k, openBlock as n, createElementBlock as o, computed as $, Fragment as _, unref as i, renderSlot as y, renderList as b, createBlock as v, createVNode as c, withCtx as d, createElementVNode as m, toDisplayString as l, createCommentVNode as f, createTextVNode as g, normalizeClass as w, createSlots as x } from "vue";
|
|
2
2
|
import { useI18n as C } from "vue-i18n";
|
|
3
|
-
import { _ as h } from "./Button.vue_vue_type_script_setup_true_lang-
|
|
4
|
-
import { _ as S } from "./Icon.vue_vue_type_script_lang-
|
|
5
|
-
import { _ as E } from "./Banner.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import { _ as V } from "./EmptyState.vue_vue_type_script_setup_true_lang-
|
|
3
|
+
import { _ as h } from "./Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
|
|
4
|
+
import { _ as S } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
5
|
+
import { _ as E } from "./Banner.vue_vue_type_script_setup_true_lang-BXZVOhfH.js";
|
|
6
|
+
import { _ as V } from "./EmptyState.vue_vue_type_script_setup_true_lang-DHmu-UG-.js";
|
|
7
7
|
function K(s) {
|
|
8
8
|
return s.status === "loading" || s.status === "failed" ? void 0 : s.value;
|
|
9
9
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as c, computed as i, openBlock as u, createElementBlock as l, normalizeClass as n, createElementVNode as o, createVNode as d, unref as m, renderSlot as f } from "vue";
|
|
2
|
-
import { _ as b } from "./Icon.vue_vue_type_script_lang-
|
|
2
|
+
import { _ as b } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
3
3
|
const g = ["role"], x = { class: "flex items-center gap-3" }, p = { class: "min-w-0 flex-1 break-words" }, h = /* @__PURE__ */ c({
|
|
4
4
|
__name: "Banner",
|
|
5
5
|
props: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as S, useSlots as w, useTemplateRef as E, computed as u, openBlock as f, createBlock as I, unref as N, withCtx as R, createElementVNode as L, mergeProps as b, createVNode as p, createElementBlock as x, h as v } from "vue";
|
|
2
2
|
import { RouterLink as P } from "vue-router";
|
|
3
|
-
import { _ as m } from "./Icon.vue_vue_type_script_lang-
|
|
3
|
+
import { _ as m } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
4
4
|
import { b as V, u as j } from "./shortcut-oixX55SZ.js";
|
|
5
5
|
const D = ["href", "tabindex", "onClick"], K = ["href", "tabindex"], M = ["type", "disabled"], $ = /* @__PURE__ */ S({
|
|
6
6
|
__name: "Button",
|
|
@@ -3,11 +3,11 @@ import { useI18n as C } from "vue-i18n";
|
|
|
3
3
|
import { i as $ } from "./preferences-hYhrw8Uy.js";
|
|
4
4
|
import { u as b } from "./platform-YWfOO7b2.js";
|
|
5
5
|
import { b as V } from "./routeResource-DlTsGTg_.js";
|
|
6
|
-
import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-
|
|
6
|
+
import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DuPS_zMX.js";
|
|
7
7
|
import { u as E } from "./useLoad-M7V-AVwR.js";
|
|
8
|
-
import { P as N, f as B, k as P, j as S } from "./index-
|
|
9
|
-
import { _ as U } from "./ActionRow.vue_vue_type_script_setup_true_lang-
|
|
10
|
-
import { _ as I } from "./ViewTabs.vue_vue_type_script_setup_true_lang-
|
|
8
|
+
import { P as N, f as B, k as P, j as S } from "./index-C_ZVaTkR.js";
|
|
9
|
+
import { _ as U } from "./ActionRow.vue_vue_type_script_setup_true_lang-BEV0drwF.js";
|
|
10
|
+
import { _ as I } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BKI5DGuS.js";
|
|
11
11
|
const W = {
|
|
12
12
|
class: "flex min-w-0 flex-col gap-group-gap",
|
|
13
13
|
"data-person-changes": ""
|
|
@@ -3,23 +3,23 @@ import { routerKey as ct } from "vue-router";
|
|
|
3
3
|
import { i as qe, a as ut } from "./error-CD7x0Jrz.js";
|
|
4
4
|
import { d as dt } from "./http-D6qOS6xs.js";
|
|
5
5
|
import { d as Re, o as ft, L as Te, e as je, w as pt, r as vt } from "./state-DqCZdet7.js";
|
|
6
|
-
import { _ as mt } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-
|
|
6
|
+
import { _ as mt } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-BkZzuICH.js";
|
|
7
7
|
import { useI18n as he } from "vue-i18n";
|
|
8
|
-
import { _ as ce } from "./Button.vue_vue_type_script_setup_true_lang-
|
|
9
|
-
import { _ as Ge } from "./Tabs.vue_vue_type_script_setup_true_lang-
|
|
8
|
+
import { _ as ce } from "./Button.vue_vue_type_script_setup_true_lang-CZkTqGtE.js";
|
|
9
|
+
import { _ as Ge } from "./Tabs.vue_vue_type_script_setup_true_lang-7CJto6Mp.js";
|
|
10
10
|
import { u as Pe } from "./format-C_HXlOYQ.js";
|
|
11
|
-
import { _ as I } from "./Icon.vue_vue_type_script_lang-
|
|
12
|
-
import { _ as Ne } from "./Banner.vue_vue_type_script_setup_true_lang-
|
|
13
|
-
import { _ as Ae } from "./EmptyState.vue_vue_type_script_setup_true_lang-
|
|
14
|
-
import { u as bt, _ as gt } from "./rowLayout-
|
|
11
|
+
import { _ as I } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
12
|
+
import { _ as Ne } from "./Banner.vue_vue_type_script_setup_true_lang-BXZVOhfH.js";
|
|
13
|
+
import { _ as Ae } from "./EmptyState.vue_vue_type_script_setup_true_lang-DHmu-UG-.js";
|
|
14
|
+
import { u as bt, _ as gt } from "./rowLayout-zd3Yw6fO.js";
|
|
15
15
|
import { u as Ee } from "./shortcut-oixX55SZ.js";
|
|
16
|
-
import { _ as Ye } from "./Menu.vue_vue_type_script_setup_true_lang-
|
|
16
|
+
import { _ as Ye } from "./Menu.vue_vue_type_script_setup_true_lang-D2FsOVYA.js";
|
|
17
17
|
import { _ as Ze } from "./Popover.vue_vue_type_script_setup_true_lang-BK8HL_V0.js";
|
|
18
18
|
import { _ as we } from "./ToneDot.vue_vue_type_script_setup_true_lang-99rNn-L5.js";
|
|
19
|
-
import { _ as ht } from "./NumberField.vue_vue_type_script_setup_true_lang-
|
|
20
|
-
import { _ as yt } from "./SelectField.vue_vue_type_script_setup_true_lang-
|
|
19
|
+
import { _ as ht } from "./NumberField.vue_vue_type_script_setup_true_lang-BDZ_0TH7.js";
|
|
20
|
+
import { _ as yt } from "./SelectField.vue_vue_type_script_setup_true_lang-DxCEwED6.js";
|
|
21
21
|
import { a as _t } from "./mediaQuery-CygcXmFW.js";
|
|
22
|
-
import { _ as xt } from "./Sheet.vue_vue_type_script_setup_true_lang-
|
|
22
|
+
import { _ as xt } from "./Sheet.vue_vue_type_script_setup_true_lang-BVU5yzXe.js";
|
|
23
23
|
import { t as ke } from "./toast-CqSDTWRX.js";
|
|
24
24
|
const re = (s) => s == null || s === "";
|
|
25
25
|
function et(s) {
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import { defineComponent as $, computed as x, openBlock as s, createBlock as w, withCtx as N, createElementVNode as u, mergeProps as M, withModifiers as V, createVNode as _, unref as o, createCommentVNode as m, inject as D, resolveComponent as E, createElementBlock as r, normalizeClass as h, toDisplayString as g, Fragment as T, renderList as I, createTextVNode as A, useModel as H, useSlots as R, provide as W, normalizeStyle as q, renderSlot as U, mergeModels as j } from "vue";
|
|
2
|
+
import { useI18n as O } from "vue-i18n";
|
|
3
|
+
import { _ as L } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
4
|
+
import { _ as G } from "./EmptyState.vue_vue_type_script_setup_true_lang-DHmu-UG-.js";
|
|
5
|
+
import { _ as K } from "./SortableList.vue_vue_type_script_setup_true_lang-D2-5Z_jO.js";
|
|
6
|
+
import { _ as P } from "./IconTile.vue_vue_type_script_setup_true_lang-DRirnJvd.js";
|
|
7
|
+
import { _ as J } from "./Highlight.vue_vue_type_script_setup_true_lang-DZGBmwcX.js";
|
|
8
|
+
import { _ as Q } from "./Menu.vue_vue_type_script_setup_true_lang-D2FsOVYA.js";
|
|
9
|
+
import { f as B } from "./options-DDCG86OV.js";
|
|
10
|
+
const X = ["aria-label", "onClick"], Y = /* @__PURE__ */ $({
|
|
11
|
+
__name: "RowMore",
|
|
12
|
+
props: {
|
|
13
|
+
actions: {},
|
|
14
|
+
label: {}
|
|
15
|
+
},
|
|
16
|
+
setup(b) {
|
|
17
|
+
const n = b, { t } = O(), f = x(() => n.actions.map((a) => ({
|
|
18
|
+
id: a.key,
|
|
19
|
+
label: a.label,
|
|
20
|
+
icon: a.icon,
|
|
21
|
+
section: a.section,
|
|
22
|
+
tone: a.tone === "critical" ? "critical" : void 0,
|
|
23
|
+
onSelect: () => {
|
|
24
|
+
a.onSelect ? a.onSelect() : a.href && window.open(a.href, a.external ? "_blank" : "_self", a.external ? "noopener" : void 0);
|
|
25
|
+
}
|
|
26
|
+
}))), d = x(() => `${t("core.page.more_actions")}: ${n.label}`);
|
|
27
|
+
return (a, k) => n.actions.length > 0 ? (s(), w(Q, {
|
|
28
|
+
key: 0,
|
|
29
|
+
items: f.value,
|
|
30
|
+
label: d.value
|
|
31
|
+
}, {
|
|
32
|
+
trigger: N(({ toggle: i, attrs: p }) => [
|
|
33
|
+
u("button", M({ type: "button" }, p, {
|
|
34
|
+
"aria-label": d.value,
|
|
35
|
+
"data-test": "row-more",
|
|
36
|
+
onClick: V(i, ["stop"]),
|
|
37
|
+
class: "hit-target flex size-8 cursor-pointer items-center justify-center rounded-full text-content-muted transition-colors duration-motion-fast hover:bg-fill hover:text-content-strong focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus"
|
|
38
|
+
}), [
|
|
39
|
+
_(o(L), {
|
|
40
|
+
name: "moreLine",
|
|
41
|
+
size: 18
|
|
42
|
+
})
|
|
43
|
+
], 16, X)
|
|
44
|
+
]),
|
|
45
|
+
_: 1
|
|
46
|
+
}, 8, ["items", "label"])) : m("", !0);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
function Z(b, n) {
|
|
50
|
+
const t = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Set(), d = (a) => {
|
|
51
|
+
let k = !1;
|
|
52
|
+
for (const i of a) {
|
|
53
|
+
const p = d(i.children ?? []);
|
|
54
|
+
p && f.add(i.id), (p || n(i)) && (t.add(i.id), k = !0);
|
|
55
|
+
}
|
|
56
|
+
return k;
|
|
57
|
+
};
|
|
58
|
+
return d(b), { shown: t, forced: f };
|
|
59
|
+
}
|
|
60
|
+
const ee = (b, n) => B(b).includes(B(n.trim())), F = Symbol("vue-core.collection-tree"), te = ["data-depth"], oe = { class: "tree-row grid h-[50px] grid-cols-(--tree-columns) items-center border-b border-border-separator pr-2 hover:bg-fill/40" }, le = { class: "flex min-w-0 items-center gap-2" }, ne = ["aria-expanded", "aria-label", "onClick"], se = {
|
|
61
|
+
key: 1,
|
|
62
|
+
class: "size-6 shrink-0",
|
|
63
|
+
"aria-hidden": "true"
|
|
64
|
+
}, ae = ["onClick"], re = {
|
|
65
|
+
key: 4,
|
|
66
|
+
class: "text-footnote text-content-muted",
|
|
67
|
+
"data-test": "tree-count"
|
|
68
|
+
}, ie = ["aria-label"], de = {
|
|
69
|
+
key: 1,
|
|
70
|
+
class: "truncate"
|
|
71
|
+
}, ce = ["aria-label"], ue = ["aria-checked", "aria-label", "disabled", "onClick"], pe = { class: "flex items-center justify-end gap-1" }, fe = ["onClick"], be = {
|
|
72
|
+
key: 1,
|
|
73
|
+
class: "border-b border-border-separator"
|
|
74
|
+
}, me = ["onClick"], C = "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus", he = /* @__PURE__ */ $({
|
|
75
|
+
__name: "CollectionTreeBranch",
|
|
76
|
+
props: {
|
|
77
|
+
nodes: {},
|
|
78
|
+
parent: {},
|
|
79
|
+
depth: {}
|
|
80
|
+
},
|
|
81
|
+
setup(b) {
|
|
82
|
+
const n = b, t = D(F);
|
|
83
|
+
if (!t) throw new Error("CollectionTreeBranch is only used inside CollectionTree.");
|
|
84
|
+
const { t: f } = O(), d = $({
|
|
85
|
+
props: { fn: { type: Function, default: void 0 }, node: { type: Object, required: !0 }, depth: { type: Number, required: !0 } },
|
|
86
|
+
setup: (c) => () => c.fn?.({ node: c.node, depth: c.depth })
|
|
87
|
+
}), a = x(() => n.nodes.filter((c) => t.isShown(c))), k = x(() => t.reorderable && !t.readonly && t.search === "" && a.value.length === n.nodes.length), i = (c) => (c.children?.length ?? 0) > 0, p = (c, v) => c.visible?.(v, n.depth) ?? !0, S = { start: "justify-start text-left", center: "justify-center text-center", end: "justify-end text-right" };
|
|
88
|
+
return (c, v) => {
|
|
89
|
+
const z = E("CollectionTreeBranch", !0);
|
|
90
|
+
return s(), w(K, {
|
|
91
|
+
"model-value": a.value,
|
|
92
|
+
"item-key": "id",
|
|
93
|
+
plain: "",
|
|
94
|
+
disabled: !k.value,
|
|
95
|
+
label: n.parent?.label,
|
|
96
|
+
"item-label": (e) => e.label,
|
|
97
|
+
"onUpdate:modelValue": v[0] || (v[0] = () => {
|
|
98
|
+
}),
|
|
99
|
+
onMove: v[1] || (v[1] = (e, l, y) => o(t).reorder({ id: e.id, parentId: n.parent?.id ?? null, index: y }))
|
|
100
|
+
}, {
|
|
101
|
+
item: N(({ item: e }) => [
|
|
102
|
+
u("div", {
|
|
103
|
+
class: "flex flex-col",
|
|
104
|
+
"data-test": "tree-node",
|
|
105
|
+
"data-depth": n.depth
|
|
106
|
+
}, [
|
|
107
|
+
u("div", oe, [
|
|
108
|
+
u("div", le, [
|
|
109
|
+
i(e) ? (s(), r("button", {
|
|
110
|
+
key: 0,
|
|
111
|
+
type: "button",
|
|
112
|
+
"aria-expanded": o(t).isOpen(e),
|
|
113
|
+
"aria-label": o(f)(o(t).isOpen(e) ? "core.tree.collapse" : "core.tree.expand", { name: e.label }),
|
|
114
|
+
class: h(["flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-full text-content-muted hover:bg-fill", C]),
|
|
115
|
+
onClick: (l) => o(t).toggle(e)
|
|
116
|
+
}, [
|
|
117
|
+
_(o(L), {
|
|
118
|
+
name: "arrowRightSLine",
|
|
119
|
+
size: 16,
|
|
120
|
+
class: h(["transition-transform duration-motion-fast", o(t).isOpen(e) ? "rotate-90" : ""])
|
|
121
|
+
}, null, 8, ["class"])
|
|
122
|
+
], 8, ne)) : (s(), r("span", se)),
|
|
123
|
+
o(t).slot("icon") ? (s(), w(o(d), {
|
|
124
|
+
key: 2,
|
|
125
|
+
fn: o(t).slot("icon"),
|
|
126
|
+
node: e,
|
|
127
|
+
depth: n.depth
|
|
128
|
+
}, null, 8, ["fn", "node", "depth"])) : (s(), w(P, {
|
|
129
|
+
key: 3,
|
|
130
|
+
size: "sm",
|
|
131
|
+
tone: n.depth === 0 ? "brand" : "anchor",
|
|
132
|
+
icon: e.children ? "folderLine" : "tagLine"
|
|
133
|
+
}, null, 8, ["tone", "icon"])),
|
|
134
|
+
u("button", {
|
|
135
|
+
type: "button",
|
|
136
|
+
class: h(["min-w-0 truncate text-left text-body text-content-strong hover:underline", [C, e.active === !1 ? "text-content-muted" : ""]]),
|
|
137
|
+
onClick: (l) => o(t).open(e)
|
|
138
|
+
}, [
|
|
139
|
+
_(J, {
|
|
140
|
+
text: e.label,
|
|
141
|
+
search: o(t).search
|
|
142
|
+
}, null, 8, ["text", "search"])
|
|
143
|
+
], 10, ae),
|
|
144
|
+
i(e) && !o(t).isOpen(e) ? (s(), r("span", re, g(e.children?.length), 1)) : m("", !0)
|
|
145
|
+
]),
|
|
146
|
+
(s(!0), r(T, null, I(o(t).columns, (l) => (s(), r("div", {
|
|
147
|
+
key: l.key,
|
|
148
|
+
role: "group",
|
|
149
|
+
"aria-label": l.label,
|
|
150
|
+
class: h(["flex min-w-0 items-center px-2 text-body", S[l.align ?? "start"]])
|
|
151
|
+
}, [
|
|
152
|
+
p(l, e) ? (s(), r(T, { key: 0 }, [
|
|
153
|
+
o(t).slot(`cell-${l.key}`) ? (s(), w(o(d), {
|
|
154
|
+
key: 0,
|
|
155
|
+
fn: o(t).slot(`cell-${l.key}`),
|
|
156
|
+
node: e,
|
|
157
|
+
depth: n.depth
|
|
158
|
+
}, null, 8, ["fn", "node", "depth"])) : (s(), r("span", de, g(e[l.key] ?? ""), 1))
|
|
159
|
+
], 64)) : m("", !0)
|
|
160
|
+
], 10, ie))), 128)),
|
|
161
|
+
o(t).activeLabel !== void 0 ? (s(), r("div", {
|
|
162
|
+
key: 0,
|
|
163
|
+
role: "group",
|
|
164
|
+
"aria-label": o(t).activeLabel,
|
|
165
|
+
class: "flex items-center px-2"
|
|
166
|
+
}, [
|
|
167
|
+
typeof e.active == "boolean" ? (s(), r("button", {
|
|
168
|
+
key: 0,
|
|
169
|
+
type: "button",
|
|
170
|
+
role: "switch",
|
|
171
|
+
"aria-checked": e.active,
|
|
172
|
+
"aria-label": `${o(t).activeLabel}: ${e.label}`,
|
|
173
|
+
disabled: o(t).readonly,
|
|
174
|
+
"data-test": "tree-active",
|
|
175
|
+
class: h(["hit-target relative inline-flex h-5 w-9 shrink-0 cursor-pointer rounded-full transition-colors duration-motion-fast disabled:cursor-not-allowed disabled:opacity-45", [e.active ? "bg-control-on" : "bg-fill-strong", C]]),
|
|
176
|
+
onClick: (l) => o(t).setActive(e, !e.active)
|
|
177
|
+
}, [
|
|
178
|
+
u("span", {
|
|
179
|
+
class: h(["pointer-events-none absolute top-0.5 left-0.5 size-4 rounded-full bg-white shadow-knob transition-transform duration-motion-normal", e.active ? "translate-x-4" : ""])
|
|
180
|
+
}, null, 2)
|
|
181
|
+
], 10, ue)) : m("", !0)
|
|
182
|
+
], 8, ce)) : m("", !0),
|
|
183
|
+
u("div", pe, [
|
|
184
|
+
!o(t).readonly && o(t).addLabel(e, n.depth + 2) !== null && (!o(t).isOpen(e) || !i(e)) ? (s(), r("button", {
|
|
185
|
+
key: 0,
|
|
186
|
+
type: "button",
|
|
187
|
+
"data-test": "tree-add-row",
|
|
188
|
+
class: h(["inline-flex cursor-pointer items-center gap-1 rounded-full bg-fill px-2.5 py-1 text-footnote text-content-strong hover:bg-fill-strong", C]),
|
|
189
|
+
onClick: (l) => o(t).add(e)
|
|
190
|
+
}, [
|
|
191
|
+
_(o(L), {
|
|
192
|
+
name: "addLine",
|
|
193
|
+
size: 14
|
|
194
|
+
}),
|
|
195
|
+
u("span", null, g(o(t).addLabel(e, n.depth + 2)), 1)
|
|
196
|
+
], 8, fe)) : m("", !0),
|
|
197
|
+
_(Y, {
|
|
198
|
+
actions: o(t).actions(e, n.depth),
|
|
199
|
+
label: e.label
|
|
200
|
+
}, null, 8, ["actions", "label"])
|
|
201
|
+
])
|
|
202
|
+
]),
|
|
203
|
+
i(e) && o(t).isOpen(e) ? (s(), w(z, {
|
|
204
|
+
key: 0,
|
|
205
|
+
nodes: e.children ?? [],
|
|
206
|
+
parent: e,
|
|
207
|
+
depth: n.depth + 1
|
|
208
|
+
}, null, 8, ["nodes", "parent", "depth"])) : m("", !0),
|
|
209
|
+
i(e) && o(t).isOpen(e) && o(t).addLabel(e, n.depth + 2) !== null && !o(t).readonly ? (s(), r("div", be, [
|
|
210
|
+
u("button", {
|
|
211
|
+
type: "button",
|
|
212
|
+
"data-test": "tree-add-footer",
|
|
213
|
+
class: h(["flex h-10 w-full cursor-pointer items-center gap-1 pl-16 text-footnote text-content-link hover:bg-fill/40", C]),
|
|
214
|
+
onClick: (l) => o(t).add(e)
|
|
215
|
+
}, [
|
|
216
|
+
_(o(L), {
|
|
217
|
+
name: "addLine",
|
|
218
|
+
size: 14
|
|
219
|
+
}),
|
|
220
|
+
A(g(o(t).addLabel(e, n.depth + 2)), 1)
|
|
221
|
+
], 8, me)
|
|
222
|
+
])) : m("", !0)
|
|
223
|
+
], 8, te)
|
|
224
|
+
]),
|
|
225
|
+
_: 1
|
|
226
|
+
}, 8, ["model-value", "disabled", "label", "item-label"]);
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}), ve = { class: "overflow-x-auto" }, _e = ["aria-label"], xe = {
|
|
230
|
+
class: "tree-header grid grid-cols-(--tree-columns) items-center border-b border-border-separator bg-fill/40 py-2 pr-2 pl-4 text-footnote text-content-muted",
|
|
231
|
+
"aria-hidden": "true"
|
|
232
|
+
}, ge = {
|
|
233
|
+
key: 0,
|
|
234
|
+
class: "px-2"
|
|
235
|
+
}, ke = {
|
|
236
|
+
key: 1,
|
|
237
|
+
class: "py-6 text-center",
|
|
238
|
+
"data-test": "tree-empty"
|
|
239
|
+
}, we = "10.5rem", ye = "5rem", Ne = /* @__PURE__ */ $({
|
|
240
|
+
__name: "CollectionTree",
|
|
241
|
+
props: /* @__PURE__ */ j({
|
|
242
|
+
nodes: {},
|
|
243
|
+
columns: { default: () => [] },
|
|
244
|
+
label: {},
|
|
245
|
+
reorderable: { type: Boolean, default: !1 },
|
|
246
|
+
readonly: { type: Boolean, default: !1 },
|
|
247
|
+
search: { default: "" },
|
|
248
|
+
filter: { type: Function, default: void 0 },
|
|
249
|
+
activeLabel: { default: void 0 },
|
|
250
|
+
addLabel: { type: Function, default: void 0 },
|
|
251
|
+
rowActions: { type: Function, default: void 0 },
|
|
252
|
+
nameLabel: { default: void 0 }
|
|
253
|
+
}, {
|
|
254
|
+
expanded: { default: () => [] },
|
|
255
|
+
expandedModifiers: {}
|
|
256
|
+
}),
|
|
257
|
+
emits: /* @__PURE__ */ j(["reorder", "add", "toggle", "open"], ["update:expanded"]),
|
|
258
|
+
setup(b, { emit: n }) {
|
|
259
|
+
const t = b, f = H(b, "expanded"), d = n, { t: a } = O(), k = R(), i = x(() => t.search.trim() !== "" || t.filter !== void 0), p = x(() => i.value ? Z(t.nodes, (e) => (t.search.trim() === "" || ee(e.label, t.search)) && (t.filter?.(e) ?? !0)) : null), S = x(() => p.value ? p.value.shown.size : t.nodes.length), c = {
|
|
260
|
+
get columns() {
|
|
261
|
+
return t.columns;
|
|
262
|
+
},
|
|
263
|
+
get readonly() {
|
|
264
|
+
return t.readonly;
|
|
265
|
+
},
|
|
266
|
+
get reorderable() {
|
|
267
|
+
return t.reorderable;
|
|
268
|
+
},
|
|
269
|
+
get search() {
|
|
270
|
+
return t.search.trim();
|
|
271
|
+
},
|
|
272
|
+
get activeLabel() {
|
|
273
|
+
return t.activeLabel;
|
|
274
|
+
},
|
|
275
|
+
isOpen: (e) => p.value ? p.value.forced.has(e.id) : f.value.includes(e.id),
|
|
276
|
+
isShown: (e) => p.value?.shown.has(e.id) ?? !0,
|
|
277
|
+
toggle: (e) => {
|
|
278
|
+
p.value || (f.value = f.value.includes(e.id) ? f.value.filter((l) => l !== e.id) : [...f.value, e.id]);
|
|
279
|
+
},
|
|
280
|
+
addLabel: (e, l) => t.addLabel?.(e, l) ?? null,
|
|
281
|
+
add: (e) => d("add", e),
|
|
282
|
+
open: (e) => d("open", e),
|
|
283
|
+
setActive: (e, l) => d("toggle", e, l),
|
|
284
|
+
reorder: (e) => d("reorder", e),
|
|
285
|
+
actions: (e, l) => t.rowActions?.(e, l) ?? [],
|
|
286
|
+
slot: (e) => k[e]
|
|
287
|
+
};
|
|
288
|
+
W(F, c);
|
|
289
|
+
const v = x(() => ["minmax(0,1fr)", ...t.columns.map((e) => `${e.width ?? 160}px`), ...t.activeLabel !== void 0 ? [ye] : [], we].join(" ")), z = { start: "text-left", center: "text-center", end: "text-right" };
|
|
290
|
+
return (e, l) => (s(), r("section", {
|
|
291
|
+
class: "overflow-hidden rounded-group bg-surface-cell shadow-group",
|
|
292
|
+
"data-test": "collection-tree",
|
|
293
|
+
style: q({ "--tree-columns": v.value, "--sortable-row-height": "50px" })
|
|
294
|
+
}, [
|
|
295
|
+
u("div", ve, [
|
|
296
|
+
u("div", {
|
|
297
|
+
class: "min-w-[44rem]",
|
|
298
|
+
role: "group",
|
|
299
|
+
"aria-label": t.label
|
|
300
|
+
}, [
|
|
301
|
+
u("div", xe, [
|
|
302
|
+
u("span", null, g(t.nameLabel ?? o(a)("core.tree.name")), 1),
|
|
303
|
+
(s(!0), r(T, null, I(t.columns, (y) => (s(), r("span", {
|
|
304
|
+
key: y.key,
|
|
305
|
+
class: h(["px-2", z[y.align ?? "start"]])
|
|
306
|
+
}, g(y.label), 3))), 128)),
|
|
307
|
+
t.activeLabel !== void 0 ? (s(), r("span", ge, g(t.activeLabel), 1)) : m("", !0),
|
|
308
|
+
l[1] || (l[1] = u("span", null, null, -1))
|
|
309
|
+
]),
|
|
310
|
+
S.value > 0 ? (s(), w(he, {
|
|
311
|
+
key: 0,
|
|
312
|
+
nodes: t.nodes,
|
|
313
|
+
parent: null,
|
|
314
|
+
depth: 0
|
|
315
|
+
}, null, 8, ["nodes"])) : (s(), r("div", ke, [
|
|
316
|
+
U(e.$slots, "empty", {}, () => [
|
|
317
|
+
_(G, {
|
|
318
|
+
title: i.value ? o(a)("core.tree.no_match") : o(a)("core.tree.empty")
|
|
319
|
+
}, null, 8, ["title"])
|
|
320
|
+
])
|
|
321
|
+
])),
|
|
322
|
+
!t.readonly && c.addLabel(null, 1) !== null && !i.value ? (s(), r("button", {
|
|
323
|
+
key: 2,
|
|
324
|
+
type: "button",
|
|
325
|
+
"data-test": "tree-add-root",
|
|
326
|
+
class: "flex h-10 w-full cursor-pointer items-center gap-1 px-4 text-footnote text-content-link hover:bg-fill/40 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus",
|
|
327
|
+
onClick: l[0] || (l[0] = (y) => d("add", null))
|
|
328
|
+
}, [
|
|
329
|
+
_(o(L), {
|
|
330
|
+
name: "addLine",
|
|
331
|
+
size: 14
|
|
332
|
+
}),
|
|
333
|
+
A(g(c.addLabel(null, 1)), 1)
|
|
334
|
+
])) : m("", !0)
|
|
335
|
+
], 8, _e)
|
|
336
|
+
])
|
|
337
|
+
], 4));
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
export {
|
|
341
|
+
Y as _,
|
|
342
|
+
Ne as a,
|
|
343
|
+
ee as m,
|
|
344
|
+
Z as v
|
|
345
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as d, computed as u, useSlots as p, openBlock as w, createElementBlock as y, createVNode as f, unref as k, createSlots as b, renderList as m, withCtx as h, renderSlot as v, normalizeProps as _, guardReactiveProps as g } from "vue";
|
|
2
|
-
import { u as R, _ as L } from "./rowLayout-
|
|
2
|
+
import { u as R, _ as L } from "./rowLayout-zd3Yw6fO.js";
|
|
3
3
|
const F = ["aria-busy"], V = /* @__PURE__ */ d({
|
|
4
4
|
__name: "DataTable",
|
|
5
5
|
props: {
|
|
@@ -2,12 +2,12 @@ import { computed as p, defineComponent as re, useModel as oe, useTemplateRef as
|
|
|
2
2
|
import { useI18n as L } from "vue-i18n";
|
|
3
3
|
import { _ as ie } from "./DateButton.vue_vue_type_script_setup_true_lang-CovKG5lN.js";
|
|
4
4
|
import { u as W } from "./format-C_HXlOYQ.js";
|
|
5
|
-
import { _ as de } from "./Icon.vue_vue_type_script_lang-
|
|
5
|
+
import { _ as de } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
6
6
|
import { u as ue } from "./mediaQuery-CygcXmFW.js";
|
|
7
7
|
import { _ as ce } from "./Popover.vue_vue_type_script_setup_true_lang-BK8HL_V0.js";
|
|
8
|
-
import { u as me, _ as fe } from "./options-
|
|
9
|
-
import { e as q, f as j, m as X, g as Z, h as pe, j as be, u as ve, k as ye, _ as ke, l as ge, c as he } from "./useTypedEntry-
|
|
10
|
-
import { f as xe, b as we } from "./FormRow.vue_vue_type_script_setup_true_lang-
|
|
8
|
+
import { u as me, _ as fe } from "./options-DDCG86OV.js";
|
|
9
|
+
import { e as q, f as j, m as X, g as Z, h as pe, j as be, u as ve, k as ye, _ as ke, l as ge, c as he } from "./useTypedEntry-CTkgM29Y.js";
|
|
10
|
+
import { f as xe, b as we } from "./FormRow.vue_vue_type_script_setup_true_lang-B-uth5RB.js";
|
|
11
11
|
const _e = ["d", "m", "y"];
|
|
12
12
|
function $e(o) {
|
|
13
13
|
const r = o("2033-11-22"), t = { y: r.indexOf("2033") >= 0 ? r.indexOf("2033") : r.indexOf("33"), m: r.indexOf("11"), d: r.indexOf("22") };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { defineComponent as B, useTemplateRef as C, computed as y, ref as v, openBlock as D, createBlock as z, unref as r, withCtx as m, createVNode as F, createElementVNode as b, normalizeClass as $, toDisplayString as h } from "vue";
|
|
2
2
|
import { useI18n as q } from "vue-i18n";
|
|
3
3
|
import { a as k } from "./error-CD7x0Jrz.js";
|
|
4
|
-
import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang-Bf5WXVFZ.js";
|
|
5
5
|
import { u as P } from "./describeError-B-NMa--w.js";
|
|
6
6
|
import { u as I } from "./format-C_HXlOYQ.js";
|
|
7
|
-
import { e as a, R as O } from "./index-
|
|
8
|
-
import { _ as W } from "./AlertDialog.vue_vue_type_script_setup_true_lang-
|
|
7
|
+
import { e as a, R as O } from "./index-4wyfEeIw.js";
|
|
8
|
+
import { _ as W } from "./AlertDialog.vue_vue_type_script_setup_true_lang-B0UvzCoE.js";
|
|
9
9
|
import { t as i } from "./toast-CqSDTWRX.js";
|
|
10
10
|
import { u as Y } from "./useLoad-M7V-AVwR.js";
|
|
11
11
|
import { u as j } from "./platform-YWfOO7b2.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as c, useTemplateRef as l, openBlock as m, createBlock as d, unref as s } from "vue";
|
|
2
2
|
import { useI18n as f } from "vue-i18n";
|
|
3
|
-
import { _ as p } from "./AlertDialog.vue_vue_type_script_setup_true_lang-
|
|
3
|
+
import { _ as p } from "./AlertDialog.vue_vue_type_script_setup_true_lang-B0UvzCoE.js";
|
|
4
4
|
const C = /* @__PURE__ */ c({
|
|
5
5
|
__name: "DiscardChangesModal",
|
|
6
6
|
emits: ["confirm", "cancel", "dismissed"],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as r, openBlock as t, createElementBlock as n, toDisplayString as s, createVNode as a, unref as l, createElementVNode as m, createCommentVNode as c, renderSlot as p } from "vue";
|
|
2
|
-
import { _ as d } from "./Icon.vue_vue_type_script_lang-
|
|
2
|
+
import { _ as d } from "./Icon.vue_vue_type_script_lang-BIzh8LF1.js";
|
|
3
3
|
const _ = {
|
|
4
4
|
key: 0,
|
|
5
5
|
class: "text-sm text-content-muted"
|