@wssto2/vue-core 0.4.0 → 0.4.2
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/dist/{Activity-2gGxQn7v.js → Activity-Dn4TGnZE.js} +1 -1
- package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-BoinCY93.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js} +2 -2
- package/dist/{Changes-Bm8xvagD.js → Changes-vnJKoY8t.js} +1 -1
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-DCBVw2Qd.js → CollectionPage.vue_vue_type_script_setup_true_lang-21lc-EE4.js} +3 -3
- package/dist/{DataTable.vue_vue_type_script_setup_true_lang-UH6f9puS.js → DataTable.vue_vue_type_script_setup_true_lang-DBtMgcW6.js} +1 -1
- package/dist/{DeadLetters-CMRtXn_N.js → DeadLetters-hVaoctMw.js} +2 -2
- package/dist/{General-CTqd0SLK.js → General-BS8GFldj.js} +2 -2
- package/dist/{Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js → Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js} +64 -57
- package/dist/{NewRolePage-DTOWIxxC.js → NewRolePage-Bz4AfDbT.js} +3 -3
- package/dist/{ProfilePage-BlpiWH_W.js → ProfilePage-DD0yQ8bd.js} +3 -3
- package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-C_ymvhHU.js → RecordHeader.vue_vue_type_script_setup_true_lang-BCTNrzBb.js} +1 -1
- package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-CwI_sROp.js → ResourcePage.vue_vue_type_script_setup_true_lang-C_tQTUyN.js} +1 -1
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CmwvSytD.js → RoleEditor.vue_vue_type_script_setup_true_lang-P6MOBLbC.js} +2 -2
- package/dist/{RolePage-DZk7BZOc.js → RolePage-B9NAwbl1.js} +4 -4
- package/dist/{RolesPage-DzGGCMnm.js → RolesPage-BRSmWTD0.js} +2 -2
- package/dist/{SectionList.vue_vue_type_script_setup_true_lang-BFYls8fR.js → SectionList.vue_vue_type_script_setup_true_lang-BtQjHjd4.js} +2 -2
- package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-DSMXEaCs.js → SectionNavigator.vue_vue_type_script_setup_true_lang-BGc8A9AQ.js} +4 -4
- package/dist/{Sessions-CWqjjTr1.js → Sessions-DVhVtiEg.js} +1 -1
- package/dist/{SettingsPage-C4s0IdkW.js → SettingsPage-CDE4ucf0.js} +2 -2
- package/dist/{SignIn-zzKY__df.js → SignIn-tQ67Acwu.js} +1 -1
- package/dist/{SignInPage-Rqnus_s-.js → SignInPage-saEqF2jO.js} +1 -1
- package/dist/{SignInTable.vue_vue_type_script_setup_true_lang-CEbAvZ_C.js → SignInTable.vue_vue_type_script_setup_true_lang-CifEaH7c.js} +1 -1
- package/dist/{SignIns-Cnf9BVR0.js → SignIns-DlAyzaD2.js} +2 -2
- package/dist/{UserRecord-DqigxVxH.js → UserRecord-DcTnTZDJ.js} +5 -5
- package/dist/{UsersList-DNlZsI9J.js → UsersList-BPPMKPqX.js} +3 -3
- package/dist/access/index.js +1 -1
- package/dist/access-DmAceEo5.js +42 -0
- package/dist/app/feature.d.ts +2 -0
- package/dist/app/index.js +2 -2
- package/dist/{chrome-BS3xJcad.js → chrome-nUcmVu8G.js} +2 -2
- package/dist/collection/index.js +3 -3
- package/dist/form/index.js +3 -3
- package/dist/identity/index.js +1 -1
- package/dist/{index-BsJ92eub.js → index-CeZgHDOM.js} +2 -2
- package/dist/{index-GcLnFF-z.js → index-DCsIT4ib.js} +3 -3
- package/dist/{index-CGv-u1Ws.js → index-DhePSl1J.js} +10 -10
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/overlay/Menu.vue.d.ts +2 -1
- package/dist/overlay/index.js +1 -1
- package/dist/page/chrome.d.ts +4 -1
- package/dist/page/index.d.ts +1 -1
- package/dist/page/index.js +23 -22
- package/dist/resource/index.js +1 -1
- package/dist/router/access.d.ts +1 -1
- package/dist/router/index.js +2 -2
- package/dist/router/pageRefresh.d.ts +6 -0
- package/dist/{rowLayout-BqTEhEuy.js → rowLayout-CZ7uZFnE.js} +1 -1
- package/dist/{sections-CntvUTxn.js → sections-D-kD98vu.js} +1 -1
- package/dist/shell/BackofficeShell.vue.d.ts +4 -1
- package/dist/shell/NavigationDrawer.vue.d.ts +1 -1
- package/dist/shell/PullToRefresh.vue.d.ts +2 -0
- package/dist/shell/ShellSidebar.vue.d.ts +2 -1
- package/dist/shell/backofficeShell.d.ts +3 -1
- package/dist/shell/index.js +644 -554
- package/dist/shell/pullToRefresh.d.ts +16 -0
- package/dist/shell/search.d.ts +3 -0
- package/dist/{status-BuP3ULjH.js → status-DmjQ1O3o.js} +1 -1
- package/dist/styles.css +1 -1
- package/dist/{useSaveChrome-chi6D3HY.js → useSaveChrome-DuWm0Czf.js} +1 -1
- package/package.json +3 -3
- package/dist/access-DdRFrVV1.js +0 -40
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { defineComponent as d, inject as a, provide as l, h as o, computed as p } from "vue";
|
|
2
|
+
import { RouterView as m } from "vue-router";
|
|
3
|
+
import { d as v } from "./context-Ch1r4fdN.js";
|
|
4
|
+
function y(e, r) {
|
|
5
|
+
return e === void 0 ? !0 : typeof e == "string" ? r.can(e) : "any" in e ? e.any.some((t) => r.can(t)) : e.all.every((t) => r.can(t));
|
|
6
|
+
}
|
|
7
|
+
const A = Symbol("vue-core.pageRefresh");
|
|
8
|
+
function h(e, r) {
|
|
9
|
+
return e.matched.findIndex((t) => !y(t.meta.access, r));
|
|
10
|
+
}
|
|
11
|
+
function x(e) {
|
|
12
|
+
return {
|
|
13
|
+
deniedFrom: p(() => h(e.router.currentRoute.value, e.access)),
|
|
14
|
+
noAccess: e.noAccess
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const [F, R] = v("vue-core.routeAccess"), i = Symbol("vue-core.routerViewDepth"), K = d({
|
|
18
|
+
name: "AppRouterView",
|
|
19
|
+
setup() {
|
|
20
|
+
const e = a(i, 0);
|
|
21
|
+
l(i, e + 1);
|
|
22
|
+
const r = R(), t = e === 0 ? a(A, null) : null;
|
|
23
|
+
return () => o(m, null, {
|
|
24
|
+
default: ({ Component: s, route: c }) => {
|
|
25
|
+
const u = r.deniedFrom.value;
|
|
26
|
+
if (u !== -1 && e >= u) return o(r.noAccess);
|
|
27
|
+
if (!s) return null;
|
|
28
|
+
const n = c.meta.remountOnParam, f = [n ? `${n}:${String(c.params[n])}` : "", t?.value ? `refresh:${t.value}` : ""].filter(Boolean).join("|");
|
|
29
|
+
return o(s, { key: f || void 0 });
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
export {
|
|
35
|
+
K as A,
|
|
36
|
+
x as c,
|
|
37
|
+
h as f,
|
|
38
|
+
y as i,
|
|
39
|
+
A as p,
|
|
40
|
+
F as r,
|
|
41
|
+
R as u
|
|
42
|
+
};
|
package/dist/app/feature.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare function provideContext<T>(key: InjectionKey<T>, value: T): Conte
|
|
|
19
19
|
* shell that offers more augments this interface (declaration merging, like `IconRegistry`).
|
|
20
20
|
*
|
|
21
21
|
* - `headerActions`: the actions of the top bar (a notification bell, a search button)
|
|
22
|
+
* - `search`: a search field at the top of the sidebar, under the brand, and at the top of the phone drawer (a quick-search trigger that looks like a field)
|
|
22
23
|
* - `accountMenu`: entries of the signed-in user's menu
|
|
23
24
|
* - `banner`: a strip across the top of the whole shell, above everything (a notice that must stay in view: signed in as somebody else)
|
|
24
25
|
* - `host`: components with no place of their own that must be mounted once (a command palette, a dialog host)
|
|
@@ -27,6 +28,7 @@ export interface ShellSlots {
|
|
|
27
28
|
}
|
|
28
29
|
interface DocumentedShellSlots {
|
|
29
30
|
headerActions: true;
|
|
31
|
+
search: true;
|
|
30
32
|
accountMenu: true;
|
|
31
33
|
banner: true;
|
|
32
34
|
host: true;
|
package/dist/app/index.js
CHANGED
|
@@ -9,9 +9,9 @@ import { c as Fe, i as Te, f as qe } from "../format-B8mJm946.js";
|
|
|
9
9
|
import { coreMessages as oe, createMessageRuntime as Pe } from "../i18n/index.js";
|
|
10
10
|
import { i as We, a as Be } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
|
|
11
11
|
import { i as De, b as He } from "../bottomDock-BZEiOPYZ.js";
|
|
12
|
-
import { i as Ve, p as Ge } from "../chrome-
|
|
12
|
+
import { i as Ve, p as Ge } from "../chrome-nUcmVu8G.js";
|
|
13
13
|
import { i as Je, g as ze } from "../platform-q3cjODLx.js";
|
|
14
|
-
import { c as Qe, A as Ue, r as re } from "../access-
|
|
14
|
+
import { c as Qe, A as Ue, r as re } from "../access-DmAceEo5.js";
|
|
15
15
|
import { c as Xe, _ as Ye } from "../NoAccess.vue_vue_type_script_setup_true_lang-DWxq-MTM.js";
|
|
16
16
|
import { i as Ze } from "../guards-Dve61KjR.js";
|
|
17
17
|
import { b as et, c as tt, n as ne } from "../navigation-Cm3iChlR.js";
|
package/dist/collection/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { D as M, L as O, a as V, h as j, l as U, r as G } from "../http-CNcDHSOj.js";
|
|
2
|
-
import { _ as Z, a as q, u as H } from "../CollectionPage.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { _ as Z, a as q, u as H } from "../CollectionPage.vue_vue_type_script_setup_true_lang-21lc-EE4.js";
|
|
3
3
|
import { u as K } from "../neighbors-DpaIMQAL.js";
|
|
4
|
-
import { a as W, b as Y } from "../rowLayout-
|
|
5
|
-
import { _ as te } from "../DataTable.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { a as W, b as Y } from "../rowLayout-CZ7uZFnE.js";
|
|
5
|
+
import { _ as te } from "../DataTable.vue_vue_type_script_setup_true_lang-DBtMgcW6.js";
|
|
6
6
|
import { defineComponent as y, openBlock as c, createElementBlock as d, Fragment as h, renderList as v, createBlock as k, unref as u, withCtx as C, normalizeClass as m, createVNode as p, createCommentVNode as g } from "vue";
|
|
7
7
|
import { _ } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
|
|
8
8
|
import { _ as w } from "../Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js";
|
package/dist/form/index.js
CHANGED
|
@@ -43,10 +43,10 @@ import { _ as Rt } from "../Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.j
|
|
|
43
43
|
import { _ as We } from "../Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
|
|
44
44
|
import { D as Tt } from "../useWaitStatus-fsacMl4W.js";
|
|
45
45
|
import { t as Et } from "../toast-D9Z5To38.js";
|
|
46
|
-
import { a as It } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-
|
|
47
|
-
import { _ as Gt, a as Nt } from "../SectionList.vue_vue_type_script_setup_true_lang-
|
|
46
|
+
import { a as It } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
|
|
47
|
+
import { _ as Gt, a as Nt } from "../SectionList.vue_vue_type_script_setup_true_lang-BtQjHjd4.js";
|
|
48
48
|
import { p as Kt } from "../sectionIndex-BS0ic5W7.js";
|
|
49
|
-
import { u as Pt } from "../useSaveChrome-
|
|
49
|
+
import { u as Pt } from "../useSaveChrome-DuWm0Czf.js";
|
|
50
50
|
import { matchedRouteKey as At, onBeforeRouteLeave as Ut } from "vue-router";
|
|
51
51
|
function Yt(o) {
|
|
52
52
|
const t = I(null);
|
package/dist/identity/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as t, h as n, j as a, i, k as o, d as r, l as d, m as u, n as y, r as l, o as I, s as f, q as p, t as A, f as c } from "../index-
|
|
1
|
+
import { _ as t, h as n, j as a, i, k as o, d as r, l as d, m as u, n as y, r as l, o as I, s as f, q as p, t as A, f as c } from "../index-DhePSl1J.js";
|
|
2
2
|
export {
|
|
3
3
|
t as SignInAsButton,
|
|
4
4
|
n as identityFeature,
|
|
@@ -31,9 +31,9 @@ const M = {
|
|
|
31
31
|
deadLettersRetryAll: y("POST", "/v1/events/dead-letters/retry", { permission: "events.deadletter:retry" }),
|
|
32
32
|
consumers: y("GET", "/v1/events/consumers", { permission: "events.deadletter:view" })
|
|
33
33
|
}, [ke, ee] = fe("vue-core.notifications"), we = "events.deadletter:view", bt = "events.deadletter:retry", J = Z({
|
|
34
|
-
index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-
|
|
34
|
+
index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-hVaoctMw.js"), meta: { access: we, titleKey: "core.notifications.dead_letters.title" } }
|
|
35
35
|
}), j = Z({
|
|
36
|
-
index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-
|
|
36
|
+
index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-CDE4ucf0.js"), meta: { titleKey: "core.notifications.settings.title" } }
|
|
37
37
|
}), Te = /* @__PURE__ */ z({
|
|
38
38
|
__name: "SettingsMenuItem",
|
|
39
39
|
setup(o) {
|
|
@@ -43,12 +43,12 @@ const C = {
|
|
|
43
43
|
viewAccess: "iam.user:view",
|
|
44
44
|
manageBindings: "iam.user:manage"
|
|
45
45
|
}, re = Ee({
|
|
46
|
-
roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-
|
|
47
|
-
newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-
|
|
46
|
+
roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-BRSmWTD0.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
|
|
47
|
+
newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-Bz4AfDbT.js"), meta: { access: F.manageRoles, titleKey: "core.access.new_title" } },
|
|
48
48
|
role: {
|
|
49
49
|
name: "access.role",
|
|
50
50
|
path: "/iam/roles/:ref",
|
|
51
|
-
component: () => import("./RolePage-
|
|
51
|
+
component: () => import("./RolePage-B9NAwbl1.js"),
|
|
52
52
|
// A role's ref (its key, or the id of a custom one) swaps in place when a link leads to another role.
|
|
53
53
|
meta: { access: F.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
|
|
54
54
|
}
|
|
@@ -315,7 +315,7 @@ function Cs(e) {
|
|
|
315
315
|
const Ye = async (e) => {
|
|
316
316
|
await B(e.http);
|
|
317
317
|
}, Je = z({
|
|
318
|
-
login: { name: "login", path: "/login", component: () => import("./SignInPage-
|
|
318
|
+
login: { name: "login", path: "/login", component: () => import("./SignInPage-saEqF2jO.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
|
|
319
319
|
});
|
|
320
320
|
function Os(e = {}) {
|
|
321
321
|
return H({
|
|
@@ -334,7 +334,7 @@ function Os(e = {}) {
|
|
|
334
334
|
});
|
|
335
335
|
}
|
|
336
336
|
const Z = z({
|
|
337
|
-
index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-
|
|
337
|
+
index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-DD0yQ8bd.js"), meta: { titleKey: "core.profile.title" } }
|
|
338
338
|
}), Qe = /* @__PURE__ */ E({
|
|
339
339
|
__name: "ProfileMenuItem",
|
|
340
340
|
setup(e) {
|
|
@@ -358,19 +358,19 @@ function es(e) {
|
|
|
358
358
|
return { name: `users.record.${e.path}`, path: e.path, component: s, meta: { ...e.meta } };
|
|
359
359
|
}
|
|
360
360
|
const W = "iam.user:view", qs = "iam.user:manage", ss = "iam.user.activity:view", ee = z({
|
|
361
|
-
index: { name: "users.index", path: "/users", component: () => import("./UsersList-
|
|
361
|
+
index: { name: "users.index", path: "/users", component: () => import("./UsersList-BPPMKPqX.js"), meta: { access: W, titleKey: "core.users.title" } },
|
|
362
362
|
record: {
|
|
363
363
|
name: "users.record",
|
|
364
364
|
path: "/users/:id",
|
|
365
|
-
component: () => import("./UserRecord-
|
|
365
|
+
component: () => import("./UserRecord-DcTnTZDJ.js"),
|
|
366
366
|
meta: { access: W, titleKey: "core.users.title", remountOnParam: "id" },
|
|
367
367
|
children: [
|
|
368
|
-
{ name: "users.record.general", path: "general", component: () => import("./General-
|
|
369
|
-
{ name: "users.record.signin", path: "signin", component: () => import("./SignIn-
|
|
370
|
-
{ name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-
|
|
371
|
-
{ name: "users.record.signins", path: "signins", component: () => import("./SignIns-
|
|
372
|
-
{ name: "users.record.changes", path: "changes", component: () => import("./Changes-
|
|
373
|
-
{ name: "users.record.activity", path: "activity", component: () => import("./Activity-
|
|
368
|
+
{ name: "users.record.general", path: "general", component: () => import("./General-BS8GFldj.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
|
|
369
|
+
{ name: "users.record.signin", path: "signin", component: () => import("./SignIn-tQ67Acwu.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
|
|
370
|
+
{ name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-DVhVtiEg.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
|
|
371
|
+
{ name: "users.record.signins", path: "signins", component: () => import("./SignIns-DlAyzaD2.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
|
|
372
|
+
{ name: "users.record.changes", path: "changes", component: () => import("./Changes-vnJKoY8t.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
|
|
373
|
+
{ name: "users.record.activity", path: "activity", component: () => import("./Activity-Dn4TGnZE.js"), meta: { access: ss, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
|
|
374
374
|
]
|
|
375
375
|
}
|
|
376
376
|
});
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The version of @wssto2/vue-core (kept equal to package.json by index.test.ts). */
|
|
2
|
-
export declare const version = "0.4.
|
|
2
|
+
export declare const version = "0.4.2";
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,8 @@ export interface MenuItem {
|
|
|
15
15
|
shortcut?: string;
|
|
16
16
|
/**
|
|
17
17
|
* A choice among the items (the current location): the item is a `menuitemradio` with
|
|
18
|
-
* `aria-checked`,
|
|
18
|
+
* `aria-checked`, and the current one (`true`) also draws a tick at the trailing end, as the
|
|
19
|
+
* account menu does, so the tick is never the only way it is told. `false` reserves nothing.
|
|
19
20
|
*/
|
|
20
21
|
checked?: boolean;
|
|
21
22
|
onSelect: () => void;
|
package/dist/overlay/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as e } from "../AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
|
|
2
|
-
import { _ as a } from "../Menu.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { _ as a } from "../Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js";
|
|
3
3
|
import { _ as p } from "../Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js";
|
|
4
4
|
import { _ as m } from "../Toaster.vue_vue_type_script_setup_true_lang-55boRLAj.js";
|
|
5
5
|
import { _ as x } from "../Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js";
|
package/dist/page/chrome.d.ts
CHANGED
|
@@ -64,7 +64,10 @@ export declare function createPageChrome(): PageChrome;
|
|
|
64
64
|
export declare const pageChromeKey: import("vue").InjectionKey<PageChrome>, usePageChromeContext: () => PageChrome;
|
|
65
65
|
/** Creates the page chrome of an app and installs it; returns it for the app's phone header to read. */
|
|
66
66
|
export declare function installPageChrome(app: App): PageChrome;
|
|
67
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* The chrome of an app that installed one, otherwise null. Use it in a component that may be mounted without the
|
|
69
|
+
* application (a unit test, a story); inside an application use `usePageChromeContext`, which names the missing provider.
|
|
70
|
+
*/
|
|
68
71
|
export declare function useOptionalPageChrome(): PageChrome | null;
|
|
69
72
|
export interface PageChromeOptions {
|
|
70
73
|
/** Actions for the page's toolbar (desktop) and nav bar (phone). */
|
package/dist/page/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { default as PageActions } from "./PageActions.vue";
|
|
|
7
7
|
export { default as PageToolbar } from "./PageToolbar.vue";
|
|
8
8
|
export { default as RecordHeader } from "./RecordHeader.vue";
|
|
9
9
|
export { default as ResourceHeader } from "./ResourceHeader.vue";
|
|
10
|
-
export { createPageChrome, installPageChrome, usePageChrome, usePageChromeContext, pageChromeKey, type FocusMemory, type PageChrome, type PageChromeOptions, type PageChromeOwner, type PageChromeRegistration, } from "./chrome";
|
|
10
|
+
export { createPageChrome, installPageChrome, useOptionalPageChrome, usePageChrome, usePageChromeContext, pageChromeKey, type FocusMemory, type PageChrome, type PageChromeOptions, type PageChromeOwner, type PageChromeRegistration, } from "./chrome";
|
|
11
11
|
export { pageSectionBackKey, usePageSectionBack } from "./sectionBack";
|
|
12
12
|
export { provideSectionIndex, sectionId, useSectionAnchor, useSectionIndex } from "./sectionIndex";
|
|
13
13
|
export type { IndexedSection, SectionIndex } from "./sectionIndex";
|
package/dist/page/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { _ as x } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
import { a as W, b as X, c as Y, d as Z, p as ee, u as te, e as ae } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as x } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
|
|
2
|
+
import { a as W, b as X, c as Y, d as Z, p as ee, u as te, e as ae } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
|
|
3
3
|
import { _ as se } from "../BottomDock.vue_vue_type_script_setup_true_lang-CjN7xYEr.js";
|
|
4
4
|
import { b as ne, i as re, u as ie } from "../bottomDock-BZEiOPYZ.js";
|
|
5
|
-
import { defineComponent as v, openBlock as a, createBlock as b, withCtx as c, createElementVNode as s, normalizeStyle as k, createElementBlock as l, Fragment as y, renderList as B, normalizeClass as d, unref as
|
|
5
|
+
import { defineComponent as v, openBlock as a, createBlock as b, withCtx as c, createElementVNode as s, normalizeStyle as k, createElementBlock as l, Fragment as y, renderList as B, normalizeClass as d, unref as h, createCommentVNode as p, toDisplayString as f, useModel as S, useId as C, useTemplateRef as P, computed as $, mergeProps as w, createSlots as T, renderSlot as m, mergeModels as D } from "vue";
|
|
6
6
|
import { _ as L } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
|
|
7
|
-
import { _ as ue } from "../RecordHeader.vue_vue_type_script_setup_true_lang-
|
|
8
|
-
import { c as pe, i as fe, p as me,
|
|
7
|
+
import { _ as ue } from "../RecordHeader.vue_vue_type_script_setup_true_lang-BCTNrzBb.js";
|
|
8
|
+
import { c as pe, i as fe, p as me, a as be, u as ge, b as ve } from "../chrome-nUcmVu8G.js";
|
|
9
9
|
import { s as z, u as I } from "../sectionIndex-BS0ic5W7.js";
|
|
10
|
-
import { p as _e, a as
|
|
11
|
-
import { _ as
|
|
12
|
-
import { a as
|
|
10
|
+
import { p as _e, a as xe } from "../sectionIndex-BS0ic5W7.js";
|
|
11
|
+
import { _ as ye } from "../SectionNavigator.vue_vue_type_script_setup_true_lang-BGc8A9AQ.js";
|
|
12
|
+
import { a as Se, _ as Ce } from "../SectionList.vue_vue_type_script_setup_true_lang-BtQjHjd4.js";
|
|
13
13
|
import { _ as A } from "../Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
|
|
14
14
|
const K = ["aria-label"], M = ["aria-label"], N = ["aria-selected", "tabindex", "onClick"], R = { class: "relative" }, E = {
|
|
15
15
|
key: 2,
|
|
@@ -17,7 +17,7 @@ const K = ["aria-label"], M = ["aria-label"], N = ["aria-selected", "tabindex",
|
|
|
17
17
|
}, H = {
|
|
18
18
|
key: 0,
|
|
19
19
|
class: "sr-only"
|
|
20
|
-
},
|
|
20
|
+
}, U = /* @__PURE__ */ v({
|
|
21
21
|
__name: "BottomTabBar",
|
|
22
22
|
props: {
|
|
23
23
|
items: {},
|
|
@@ -51,7 +51,7 @@ const K = ["aria-label"], M = ["aria-label"], N = ["aria-selected", "tabindex",
|
|
|
51
51
|
onClick: (u) => r("select", e.value)
|
|
52
52
|
}, [
|
|
53
53
|
s("span", R, [
|
|
54
|
-
e.icon ? (a(), b(
|
|
54
|
+
e.icon ? (a(), b(h(L), {
|
|
55
55
|
key: 0,
|
|
56
56
|
name: e.icon,
|
|
57
57
|
size: 22
|
|
@@ -73,7 +73,7 @@ const K = ["aria-label"], M = ["aria-label"], N = ["aria-selected", "tabindex",
|
|
|
73
73
|
_: 1
|
|
74
74
|
}));
|
|
75
75
|
}
|
|
76
|
-
}),
|
|
76
|
+
}), q = /* @__PURE__ */ v({
|
|
77
77
|
__name: "SectionPanel",
|
|
78
78
|
props: /* @__PURE__ */ D({
|
|
79
79
|
title: {},
|
|
@@ -91,13 +91,13 @@ const K = ["aria-label"], M = ["aria-label"], N = ["aria-selected", "tabindex",
|
|
|
91
91
|
}),
|
|
92
92
|
emits: ["update:collapsed"],
|
|
93
93
|
setup(n) {
|
|
94
|
-
const t = n, o = S(n, "collapsed"), r = t.id ?? (z(t.title) || `section-${C()}`), i =
|
|
94
|
+
const t = n, o = S(n, "collapsed"), r = t.id ?? (z(t.title) || `section-${C()}`), i = P("panel"), g = $(() => i.value?.$el ?? null);
|
|
95
95
|
return I(r, () => t.title, g, { number: () => t.number, reveal: () => i.value?.expand() }), (e, u) => (a(), b(A, w({
|
|
96
96
|
ref_key: "panel",
|
|
97
97
|
ref: i,
|
|
98
98
|
collapsed: o.value,
|
|
99
|
-
"onUpdate:collapsed": u[0] || (u[0] = (
|
|
100
|
-
}, { id:
|
|
99
|
+
"onUpdate:collapsed": u[0] || (u[0] = (_) => o.value = _)
|
|
100
|
+
}, { id: h(r), tabindex: -1 }, {
|
|
101
101
|
title: t.title,
|
|
102
102
|
icon: t.icon,
|
|
103
103
|
number: t.number,
|
|
@@ -134,15 +134,15 @@ export {
|
|
|
134
134
|
W as AdaptivePageShell,
|
|
135
135
|
se as BottomDock,
|
|
136
136
|
x as BottomDockPortal,
|
|
137
|
-
|
|
137
|
+
U as BottomTabBar,
|
|
138
138
|
X as PageActions,
|
|
139
139
|
Y as PageToolbar,
|
|
140
140
|
ue as RecordHeader,
|
|
141
141
|
Z as ResourceHeader,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
142
|
+
Se as SectionJumper,
|
|
143
|
+
Ce as SectionList,
|
|
144
|
+
ye as SectionNavigator,
|
|
145
|
+
q as SectionPanel,
|
|
146
146
|
ne as bottomDockKey,
|
|
147
147
|
pe as createPageChrome,
|
|
148
148
|
re as installBottomDock,
|
|
@@ -153,9 +153,10 @@ export {
|
|
|
153
153
|
z as sectionId,
|
|
154
154
|
ie as useBottomDockTarget,
|
|
155
155
|
te as useLargeTitle,
|
|
156
|
-
be as
|
|
157
|
-
ge as
|
|
156
|
+
be as useOptionalPageChrome,
|
|
157
|
+
ge as usePageChrome,
|
|
158
|
+
ve as usePageChromeContext,
|
|
158
159
|
ae as usePageSectionBack,
|
|
159
160
|
I as useSectionAnchor,
|
|
160
|
-
|
|
161
|
+
xe as useSectionIndex
|
|
161
162
|
};
|
package/dist/resource/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p as o, u as r, a, b as u } from "../routeResource-DstM0hvf.js";
|
|
2
|
-
import { _ as R, a as c } from "../ResourcePage.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { _ as R, a as c } from "../ResourcePage.vue_vue_type_script_setup_true_lang-C_tQTUyN.js";
|
|
3
3
|
export {
|
|
4
4
|
R as RecordPager,
|
|
5
5
|
c as ResourcePage,
|
package/dist/router/access.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export declare const routeAccessKey: InjectionKey<RouteAccess>, useRouteAccess:
|
|
|
24
24
|
* page's section outlet) is an `AppRouterView`, not a bare `RouterView`: it shows the no-access state
|
|
25
25
|
* in place of a page the session may not open (parents around it keep rendering, so the layout stays),
|
|
26
26
|
* and remounts a page when the route parameter named by `meta.remountOnParam` changes (a record pager
|
|
27
|
-
* moving to the next record).
|
|
27
|
+
* moving to the next record), or when the shell's pull to refresh reloads the page (the shell's outlet only).
|
|
28
28
|
*
|
|
29
29
|
* Denial is shown here, not enforced: the server authorizes every request.
|
|
30
30
|
*/
|
package/dist/router/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { _ as a, c as o, a as r, i as t } from "../NoAccess.vue_vue_type_script_setup_true_lang-DWxq-MTM.js";
|
|
2
2
|
import { d as c } from "../defineRoutes-BGAdiIrt.js";
|
|
3
|
-
import { A as u, f as p, i as f, r as A, u as m } from "../access-
|
|
3
|
+
import { A as u, f as p, i as f, r as A, u as m } from "../access-DmAceEo5.js";
|
|
4
4
|
import { i as l, r as x } from "../guards-Dve61KjR.js";
|
|
5
|
-
import { u as y } from "../sections-
|
|
5
|
+
import { u as y } from "../sections-D-kD98vu.js";
|
|
6
6
|
import { b as v, c as N, n as H, u as b } from "../navigation-Cm3iChlR.js";
|
|
7
7
|
export {
|
|
8
8
|
u as AppRouterView,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type InjectionKey, type Ref } from "vue";
|
|
2
|
+
/**
|
|
3
|
+
* Bumped by the shell's pull to refresh; the page outlet of the shell (an `AppRouterView` at depth 0) is keyed by it, so
|
|
4
|
+
* the page remounts and reloads its data while everything around it stays. Internal: not exported from `router`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const pageRefreshKey: InjectionKey<Ref<number>>;
|
|
@@ -3,7 +3,7 @@ import { useI18n as ve } from "vue-i18n";
|
|
|
3
3
|
import { RouterLink as ce, useRouter as _e } from "vue-router";
|
|
4
4
|
import { _ as we } from "./SwipeActions.vue_vue_type_script_setup_true_lang-BJIA2JfI.js";
|
|
5
5
|
import { _ as K } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
|
|
6
|
-
import { _ as xe } from "./Menu.vue_vue_type_script_setup_true_lang-
|
|
6
|
+
import { _ as xe } from "./Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js";
|
|
7
7
|
import { _ as Ce } from "./Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js";
|
|
8
8
|
import { _ as re } from "./EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js";
|
|
9
9
|
import { u as $e } from "./format-B8mJm946.js";
|
|
@@ -2,7 +2,7 @@ import { computed as n, watch as h } from "vue";
|
|
|
2
2
|
import { useI18n as b } from "vue-i18n";
|
|
3
3
|
import { useRoute as g, useRouter as p } from "vue-router";
|
|
4
4
|
import { u as y } from "./platform-q3cjODLx.js";
|
|
5
|
-
import { i as w } from "./access-
|
|
5
|
+
import { i as w } from "./access-DmAceEo5.js";
|
|
6
6
|
function j() {
|
|
7
7
|
const t = g(), u = p(), { access: c } = y(), { t: r } = b(), i = n(() => {
|
|
8
8
|
for (let e = t.matched.length - 1; e >= 0; e--) {
|
|
@@ -5,7 +5,7 @@ import type { NavigationProgress } from "./progress";
|
|
|
5
5
|
/**
|
|
6
6
|
* The layout of a backoffice application: a sidebar with the server's menu on desktop, a top bar
|
|
7
7
|
* and a push navigation drawer on phones, the page in between, the bottom dock and the toasts, and
|
|
8
|
-
* the places features contribute to (`headerActions`, `accountMenu`, `banner`, `host`). Give it to
|
|
8
|
+
* the places features contribute to (`headerActions`, `search`, `accountMenu`, `banner`, `host`). Give it to
|
|
9
9
|
* `createApplication` through `backofficeShell()`, or render it inside a shell of your own.
|
|
10
10
|
*
|
|
11
11
|
* Signed out (the login page) there is only the top bar with the brand and the page.
|
|
@@ -21,6 +21,8 @@ type __VLS_Props = {
|
|
|
21
21
|
identity?: (user: SessionUser) => ShellIdentity;
|
|
22
22
|
/** The page-load indicator (`backofficeShell()` supplies it to the router as well). */
|
|
23
23
|
progress?: NavigationProgress;
|
|
24
|
+
/** Pull down from the top of the page to reload it, while the application runs installed (`display-mode: standalone`). Default on. */
|
|
25
|
+
pullToRefresh?: boolean;
|
|
24
26
|
};
|
|
25
27
|
type __VLS_Slots = {
|
|
26
28
|
/** The logo, for the dark sidebar (`tone` `light`) and the light surfaces (`brand`). Default: the application's name. */
|
|
@@ -36,6 +38,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
|
|
|
36
38
|
progress: NavigationProgress;
|
|
37
39
|
home: RouteLocationRaw;
|
|
38
40
|
identity: (user: SessionUser) => ShellIdentity;
|
|
41
|
+
pullToRefresh: boolean;
|
|
39
42
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
40
43
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
41
44
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RouteLocationRaw } from "vue-router";
|
|
2
2
|
import type { ShellIdentity } from "./identity";
|
|
3
3
|
/**
|
|
4
|
-
* The phone navigation drawer's content (UI decision D18): the brand (home), the destinations (the
|
|
4
|
+
* The phone navigation drawer's content (UI decision D18): the brand (home), the shell's `search` field, the destinations (the
|
|
5
5
|
* same model as the desktop rail), a `footer` slot, and the account row pinned at the bottom.
|
|
6
6
|
* Presentation only: the `ShellStage` around it owns opening, closing, gestures and focus, and the
|
|
7
7
|
* owner acts on the events:
|
|
@@ -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;
|
|
@@ -3,7 +3,8 @@ import type { ShellIdentity } from "./identity";
|
|
|
3
3
|
/**
|
|
4
4
|
* The desktop sidebar: an attached, full-height dark rail, the page's one dark surface (the
|
|
5
5
|
* `anchor` palette), sticky and scrolling on its own when the menu is taller than the window. From
|
|
6
|
-
* top to bottom: the brand (home) with the shell's `headerActions`, the
|
|
6
|
+
* top to bottom: the brand (home) with the shell's `headerActions`, the shell's `search` field,
|
|
7
|
+
* the server's menu, a `footer`
|
|
7
8
|
* slot, and the account block. It renders from the md breakpoint up and nothing below it (phones use
|
|
8
9
|
* the navigation drawer), so a header action contributed to the shell is mounted once, never in both.
|
|
9
10
|
*
|
|
@@ -14,10 +14,12 @@ export interface BackofficeShellOptions<U extends SessionUser = SessionUser> {
|
|
|
14
14
|
footer?: Component;
|
|
15
15
|
/** Extra content at the end of the top bar. */
|
|
16
16
|
topBarEnd?: Component;
|
|
17
|
+
/** Pull down from the top of the page to reload it (the page only; the shell stays), while the application runs installed. Default `true`. */
|
|
18
|
+
pullToRefresh?: boolean;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* The backoffice shell as `createApplication` takes it: the layout, the slots it renders
|
|
20
|
-
* (`headerActions`, `accountMenu`, `banner`, `host`) and the page-load indicator wired to the router.
|
|
22
|
+
* (`headerActions`, `search`, `accountMenu`, `banner`, `host`) and the page-load indicator wired to the router.
|
|
21
23
|
*
|
|
22
24
|
* createApplication({ platform, features, shell: backofficeShell({ brand: MyLogo }) });
|
|
23
25
|
*
|