@wssto2/vue-core 0.2.0 → 0.4.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/README.md +36 -0
- package/dist/AccessGate.vue_vue_type_script_setup_true_lang-DcbZBINh.js +22 -0
- package/dist/AccountMenuItem.vue_vue_type_script_setup_true_lang-CPeNxh5K.js +76 -0
- package/dist/ActionRow.vue_vue_type_script_setup_true_lang-LlfIPWsJ.js +45 -0
- package/dist/Activity-2gGxQn7v.js +156 -0
- package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-CeKK8_g5.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-BoinCY93.js} +48 -47
- package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-e4hzkzg3.js → AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js} +1 -1
- package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-CWLB3xsR.js → AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js} +4 -4
- package/dist/{Banner.vue_vue_type_script_setup_true_lang-n_wGPIIu.js → Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js} +1 -1
- package/dist/{BottomDock.vue_vue_type_script_setup_true_lang-DhlMnPC2.js → BottomDock.vue_vue_type_script_setup_true_lang-CjN7xYEr.js} +1 -1
- package/dist/{Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js → Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js} +1 -1
- package/dist/Changes-Bm8xvagD.js +129 -0
- package/dist/CollectionPage.vue_vue_type_script_setup_true_lang-DCBVw2Qd.js +1485 -0
- package/dist/DataTable.vue_vue_type_script_setup_true_lang-UH6f9puS.js +52 -0
- package/dist/DateField.vue_vue_type_script_setup_true_lang-GVasv8ao.js +255 -0
- package/dist/DeadLetters-CMRtXn_N.js +104 -0
- package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-DyhYHRyz.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-D1arePCZ.js} +1 -1
- package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-BeGpHMUP.js → EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js} +1 -1
- package/dist/FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js +276 -0
- package/dist/FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js +136 -0
- package/dist/FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js +38 -0
- package/dist/General-CTqd0SLK.js +145 -0
- package/dist/HeaderAction.vue_vue_type_script_setup_true_lang-Cgji-Jrr.js +45 -0
- package/dist/{Icon.vue_vue_type_script_lang-DtC4_mkz.js → Icon.vue_vue_type_script_lang-D7oC-d-S.js} +54 -37
- package/dist/{IconTile.vue_vue_type_script_setup_true_lang-Csfv6Sel.js → IconTile.vue_vue_type_script_setup_true_lang-BpIjgu5E.js} +1 -1
- package/dist/KeyValue.vue_vue_type_script_setup_true_lang-wcZcvnow.js +35 -0
- package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CvwoT1JF.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-Cv7KlA5y.js} +2 -2
- package/dist/{Menu.vue_vue_type_script_setup_true_lang-CrMj6KPD.js → Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js} +66 -58
- package/dist/{Modal.vue_vue_type_script_setup_true_lang-BQZM49gC.js → Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js} +4 -4
- package/dist/NewRolePage-DTOWIxxC.js +42 -0
- package/dist/NoAccess.vue_vue_type_script_setup_true_lang-DWxq-MTM.js +31 -0
- package/dist/NumberField.vue_vue_type_script_setup_true_lang-C7N5nq0P.js +113 -0
- package/dist/OtpInput.vue_vue_type_script_setup_true_lang-gp4FfWAH.js +95 -0
- package/dist/PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js +47 -0
- package/dist/{Panel.vue_vue_type_script_setup_true_lang-BQmv3cLb.js → Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js} +1 -1
- package/dist/PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js +46 -0
- package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-ElDizaW2.js → PhotoViewer.vue_vue_type_script_setup_true_lang-QPCW3Xi6.js} +1 -1
- package/dist/Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js +125 -0
- package/dist/ProfilePage-BlpiWH_W.js +654 -0
- package/dist/{ProgressTrack.vue_vue_type_script_setup_true_lang-1DDaNs2W.js → ProgressTrack.vue_vue_type_script_setup_true_lang-B6Prw9hi.js} +2 -2
- package/dist/RecordHeader.vue_vue_type_script_setup_true_lang-C_ymvhHU.js +64 -0
- package/dist/ResourcePage.vue_vue_type_script_setup_true_lang-CwI_sROp.js +173 -0
- package/dist/RoleEditor.vue_vue_type_script_setup_true_lang-CmwvSytD.js +300 -0
- package/dist/RolePage-DZk7BZOc.js +315 -0
- package/dist/RolesPage-DzGGCMnm.js +115 -0
- package/dist/SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js +23 -0
- package/dist/SectionList.vue_vue_type_script_setup_true_lang-BFYls8fR.js +148 -0
- package/dist/SectionNavigator.vue_vue_type_script_setup_true_lang-DSMXEaCs.js +314 -0
- package/dist/SegmentedField.vue_vue_type_script_setup_true_lang-BMqWlpsL.js +58 -0
- package/dist/SelectField.vue_vue_type_script_setup_true_lang-7O1BAx04.js +423 -0
- package/dist/SessionList.vue_vue_type_script_setup_true_lang-D5KRitar.js +111 -0
- package/dist/Sessions-CWqjjTr1.js +96 -0
- package/dist/SettingsPage-C4s0IdkW.js +255 -0
- package/dist/Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js +145 -0
- package/dist/SignIn-zzKY__df.js +140 -0
- package/dist/SignInPage-Rqnus_s-.js +60 -0
- package/dist/SignInTable.vue_vue_type_script_setup_true_lang-CEbAvZ_C.js +79 -0
- package/dist/SignIns-Cnf9BVR0.js +66 -0
- package/dist/SwipeActions.vue_vue_type_script_setup_true_lang-BJIA2JfI.js +93 -0
- package/dist/SwitchField.vue_vue_type_script_setup_true_lang-CM8yp9JQ.js +64 -0
- package/dist/Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js +155 -0
- package/dist/TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js +269 -0
- package/dist/TextareaField.vue_vue_type_script_setup_true_lang-CqAWfABZ.js +68 -0
- package/dist/TimeField.vue_vue_type_script_setup_true_lang-DWfAUlnz.js +164 -0
- package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-CSY_mMm1.js → Timestamp.vue_vue_type_script_setup_true_lang-FVRUr-9y.js} +1 -1
- package/dist/UserRecord-DqigxVxH.js +267 -0
- package/dist/UsersList-DNlZsI9J.js +155 -0
- package/dist/ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js +28 -0
- package/dist/access/AddRoleDialog.vue.d.ts +19 -0
- package/dist/access/BindingRow.vue.d.ts +19 -0
- package/dist/access/EffectiveAccess.vue.d.ts +12 -0
- package/dist/access/NewRolePage.vue.d.ts +2 -0
- package/dist/access/PermissionTree.vue.d.ts +13 -0
- package/dist/access/PersonAccess.vue.d.ts +21 -0
- package/dist/access/ReplaceRoleDialog.vue.d.ts +17 -0
- package/dist/access/RoleCompareDialog.vue.d.ts +14 -0
- package/dist/access/RoleEditor.vue.d.ts +28 -0
- package/dist/access/RolePage.vue.d.ts +2 -0
- package/dist/access/RolesPage.vue.d.ts +2 -0
- package/dist/access/api.d.ts +26 -0
- package/dist/access/catalogue.d.ts +64 -0
- package/dist/access/context.d.ts +20 -0
- package/dist/access/effective.d.ts +42 -0
- package/dist/access/feature.d.ts +27 -0
- package/dist/access/index.d.ts +13 -0
- package/dist/access/index.js +15 -0
- package/dist/access/labels.d.ts +35 -0
- package/dist/access/refusals.d.ts +6 -0
- package/dist/access/routes.d.ts +45 -0
- package/dist/access/scopes.d.ts +20 -0
- package/dist/app/contributions.d.ts +1 -1
- package/dist/app/feature.d.ts +8 -0
- package/dist/app/index.js +259 -296
- package/dist/bottomDock-BZEiOPYZ.js +12 -0
- package/dist/button/Button.vue.d.ts +3 -3
- package/dist/button/index.js +1 -1
- package/dist/chrome-BS3xJcad.js +93 -0
- package/dist/client/client.d.ts +13 -0
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.js +11 -138
- package/dist/client/route.d.ts +59 -0
- package/dist/client-k9euDWF4.js +147 -0
- package/dist/closeOverlays-CjVsIrpL.js +8 -0
- package/dist/collection/definition.d.ts +3 -0
- package/dist/collection/http.d.ts +4 -2
- package/dist/collection/index.js +74 -2428
- package/dist/collection/useCollection.d.ts +2 -0
- package/dist/content/index.js +37 -66
- package/dist/contributions-DsfmDoRD.js +26 -0
- package/dist/control-7EP4tjYy.js +313 -0
- package/dist/controls/DateButton.vue.d.ts +1 -1
- package/dist/controls/PopupButton.vue.d.ts +1 -1
- package/dist/controls/index.js +11 -10
- package/dist/defineRoutes-BGAdiIrt.js +19 -0
- package/dist/{describeError-l5T9b8Uv.js → describeError-Ctga6GcS.js} +1 -1
- package/dist/environment-Dva-SG8D.js +6 -0
- package/dist/{error-Bb_dr_Ay.js → error-CD7x0Jrz.js} +2 -2
- package/dist/feature-DdUAfyi4.js +25 -0
- package/dist/fieldMessages-C3Rpbktw.js +25 -0
- package/dist/form/CheckboxField.vue.d.ts +1 -1
- package/dist/form/CommandDialog.vue.d.ts +1 -1
- package/dist/form/DateField.vue.d.ts +1 -1
- package/dist/form/DateTimeField.vue.d.ts +1 -1
- package/dist/form/EditorPage.vue.d.ts +1 -1
- package/dist/form/Field.vue.d.ts +1 -1
- package/dist/form/FileField.vue.d.ts +1 -1
- package/dist/form/FormGroup.vue.d.ts +1 -1
- package/dist/form/FormGroupButton.vue.d.ts +1 -1
- package/dist/form/FormRow.vue.d.ts +1 -1
- package/dist/form/I18nField.vue.d.ts +3 -3
- package/dist/form/MoneyField.vue.d.ts +1 -1
- package/dist/form/MonthYearField.vue.d.ts +1 -1
- package/dist/form/NumberCell.vue.d.ts +1 -1
- package/dist/form/NumberField.vue.d.ts +2 -2
- package/dist/form/OtpInput.vue.d.ts +2 -2
- package/dist/form/PhotoField.vue.d.ts +1 -1
- package/dist/form/SwitchField.vue.d.ts +1 -1
- package/dist/form/TextField.vue.d.ts +3 -3
- package/dist/form/TextareaField.vue.d.ts +3 -3
- package/dist/form/TimeField.vue.d.ts +1 -1
- package/dist/form/date/DatePickerSheet.vue.d.ts +1 -1
- package/dist/form/date/MonthYearPanel.vue.d.ts +1 -1
- package/dist/form/index.js +1159 -3474
- package/dist/guards-Dve61KjR.js +51 -0
- package/dist/http-CNcDHSOj.js +194 -0
- package/dist/i18n/index.d.ts +281 -0
- package/dist/i18n/index.js +52 -52
- package/dist/icon/core.d.ts +17 -0
- package/dist/icon/index.js +1 -1
- package/dist/identity/ImpersonationBanner.vue.d.ts +2 -0
- package/dist/identity/LocaleSync.vue.d.ts +2 -0
- package/dist/identity/SessionExpiry.vue.d.ts +2 -0
- package/dist/identity/SignInAsButton.vue.d.ts +15 -0
- package/dist/identity/SignInPage.vue.d.ts +2 -0
- package/dist/identity/context.d.ts +7 -0
- package/dist/identity/feature.d.ts +16 -0
- package/dist/identity/fieldMessages.d.ts +15 -0
- package/dist/identity/index.d.ts +16 -0
- package/dist/identity/index.js +18 -0
- package/dist/identity/profile/DetailsPanel.vue.d.ts +11 -0
- package/dist/identity/profile/EmailChangeDialog.vue.d.ts +14 -0
- package/dist/identity/profile/EmailPanel.vue.d.ts +11 -0
- package/dist/identity/profile/PanelActions.vue.d.ts +17 -0
- package/dist/identity/profile/PasswordPanel.vue.d.ts +2 -0
- package/dist/identity/profile/ProfileMenuItem.vue.d.ts +2 -0
- package/dist/identity/profile/ProfilePage.vue.d.ts +2 -0
- package/dist/identity/profile/SessionsPanel.vue.d.ts +2 -0
- package/dist/identity/profile/SignInsPanel.vue.d.ts +2 -0
- package/dist/identity/profile/VerifyCode.vue.d.ts +49 -0
- package/dist/identity/profile/routes.d.ts +13 -0
- package/dist/identity/session.d.ts +30 -0
- package/dist/identity/shared/ActionRow.vue.d.ts +20 -0
- package/dist/identity/shared/ChangeFeed.vue.d.ts +11 -0
- package/dist/identity/shared/PageBar.vue.d.ts +12 -0
- package/dist/identity/shared/SectionIntro.vue.d.ts +16 -0
- package/dist/identity/shared/SessionList.vue.d.ts +19 -0
- package/dist/identity/shared/SignInTable.vue.d.ts +11 -0
- package/dist/identity/shared/ViewTabs.vue.d.ts +23 -0
- package/dist/identity/shared/signInEvents.d.ts +9 -0
- package/dist/identity/signIn.d.ts +27 -0
- package/dist/identity/useSignInForm.d.ts +20 -0
- package/dist/identity/user.d.ts +6 -0
- package/dist/identity/users/DeactivateDialog.vue.d.ts +18 -0
- package/dist/identity/users/NewUserDialog.vue.d.ts +9 -0
- package/dist/identity/users/SetPasswordDialog.vue.d.ts +16 -0
- package/dist/identity/users/UserRecord.vue.d.ts +2 -0
- package/dist/identity/users/UsersList.vue.d.ts +2 -0
- package/dist/identity/users/access.d.ts +4 -0
- package/dist/identity/users/context.d.ts +9 -0
- package/dist/identity/users/feature.d.ts +34 -0
- package/dist/identity/users/languages.d.ts +4 -0
- package/dist/identity/users/list.d.ts +8 -0
- package/dist/identity/users/person.d.ts +26 -0
- package/dist/identity/users/personSections.d.ts +22 -0
- package/dist/identity/users/routes.d.ts +22 -0
- package/dist/identity/users/sections/Activity.vue.d.ts +2 -0
- package/dist/identity/users/sections/Changes.vue.d.ts +2 -0
- package/dist/identity/users/sections/General.vue.d.ts +2 -0
- package/dist/identity/users/sections/Sessions.vue.d.ts +2 -0
- package/dist/identity/users/sections/SignIn.vue.d.ts +2 -0
- package/dist/identity/users/sections/SignIns.vue.d.ts +2 -0
- package/dist/identity/users/status.d.ts +4 -0
- package/dist/index-BsJ92eub.js +504 -0
- package/dist/index-CGv-u1Ws.js +459 -0
- package/dist/index-GcLnFF-z.js +706 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/languageName.d.ts +2 -0
- package/dist/keepAlive-WYQGRhuz.js +48 -0
- package/dist/languageName-CItV_SOv.js +11 -0
- package/dist/languages-BShG9LpE.js +10 -0
- package/dist/leaveGuard-Cc8yeLxM.js +72 -0
- package/dist/modal/Modal.vue.d.ts +1 -1
- package/dist/modal/Sheet.vue.d.ts +2 -0
- package/dist/modal/index.js +5 -5
- package/dist/modules/access/entities.d.ts +112 -0
- package/dist/modules/access/routes.d.ts +67 -0
- package/dist/modules/access/schemas.d.ts +73 -0
- package/dist/modules/events/entities.d.ts +16 -0
- package/dist/modules/events/routes.d.ts +17 -0
- package/dist/modules/events/schemas.d.ts +16 -0
- package/dist/modules/identity/entities.d.ts +150 -0
- package/dist/modules/identity/routes.d.ts +118 -0
- package/dist/modules/identity/schemas.d.ts +145 -0
- package/dist/modules/notification/entities.d.ts +46 -0
- package/dist/modules/notification/routes.d.ts +26 -0
- package/dist/modules/notification/schemas.d.ts +25 -0
- package/dist/{navigation-B33ikiCS.js → navigation-Cm3iChlR.js} +21 -20
- package/dist/neighbors-DpaIMQAL.js +86 -0
- package/dist/notifications/InboxPanel.vue.d.ts +16 -0
- package/dist/notifications/MarkAllRead.vue.d.ts +7 -0
- package/dist/notifications/NotificationBell.vue.d.ts +2 -0
- package/dist/notifications/SettingsLink.vue.d.ts +6 -0
- package/dist/notifications/context.d.ts +20 -0
- package/dist/notifications/deadletters/DeadLetters.vue.d.ts +2 -0
- package/dist/notifications/deadletters/access.d.ts +3 -0
- package/dist/notifications/deadletters/list.d.ts +3 -0
- package/dist/notifications/deadletters/routes.d.ts +13 -0
- package/dist/notifications/feature.d.ts +31 -0
- package/dist/notifications/inbox.d.ts +62 -0
- package/dist/notifications/index.d.ts +13 -0
- package/dist/notifications/index.js +8 -0
- package/dist/notifications/settings/EmailPanel.vue.d.ts +14 -0
- package/dist/notifications/settings/QuietHoursPanel.vue.d.ts +14 -0
- package/dist/notifications/settings/SettingsMenuItem.vue.d.ts +2 -0
- package/dist/notifications/settings/SettingsPage.vue.d.ts +2 -0
- package/dist/notifications/settings/categoryText.d.ts +9 -0
- package/dist/notifications/settings/routes.d.ts +13 -0
- package/dist/notifications/settings/settings.d.ts +18 -0
- package/dist/notifications/settings/state.d.ts +16 -0
- package/dist/notifications/state.d.ts +27 -0
- package/dist/notifications/stream.d.ts +21 -0
- package/dist/options-Ba_0uLWN.js +18 -0
- package/dist/overlay/AlertDialog.vue.d.ts +3 -3
- package/dist/overlay/Popover.vue.d.ts +1 -1
- package/dist/overlay/closeOverlays.d.ts +7 -0
- package/dist/overlay/index.js +21 -20
- package/dist/page/AdaptivePageShell.vue.d.ts +2 -2
- package/dist/page/ResourceHeader.vue.d.ts +2 -2
- package/dist/page/index.js +99 -457
- package/dist/phone/PhoneField.vue.d.ts +2 -2
- package/dist/phone/index.js +68 -67
- package/dist/platform/index.d.ts +2 -2
- package/dist/platform/index.js +73 -90
- package/dist/platform/platform.d.ts +2 -2
- package/dist/platform/session.d.ts +22 -1
- package/dist/platform-q3cjODLx.js +255 -0
- package/dist/resource/index.js +8 -248
- package/dist/route-goWMxDUN.js +13 -0
- package/dist/routeResource-DstM0hvf.js +82 -0
- package/dist/router/guards.d.ts +7 -1
- package/dist/router/index.js +23 -37
- package/dist/router/navigation.d.ts +1 -1
- package/dist/rowLayout-BqTEhEuy.js +603 -0
- package/dist/sectionIndex-BS0ic5W7.js +86 -0
- package/dist/{sections-LtxV5Mtk.js → sections-CntvUTxn.js} +1 -1
- package/dist/shell/AccountMenuItem.vue.d.ts +1 -1
- package/dist/shell/BackofficeShell.vue.d.ts +2 -2
- package/dist/shell/NavigationList.vue.d.ts +1 -1
- package/dist/shell/ShellBrand.vue.d.ts +1 -1
- package/dist/shell/backofficeShell.d.ts +1 -1
- package/dist/shell/identity.d.ts +1 -1
- package/dist/shell/index.js +491 -595
- package/dist/state/ProgressTrack.vue.d.ts +1 -1
- package/dist/state/index.js +59 -92
- package/dist/status-BuP3ULjH.js +33 -0
- package/dist/styles.css +1 -1
- package/dist/suggestions-BxMm6MQA.js +138 -0
- package/dist/testing/index.js +1 -1
- package/dist/toast-D9Z5To38.js +13 -0
- package/dist/transport-BnP7WC0Y.js +4 -0
- package/dist/useCommand-BkONMn3X.js +135 -0
- package/dist/useLoad-CYRVx6HW.js +39 -0
- package/dist/useResourceForm-D1hIpwW5.js +52 -0
- package/dist/useSaveChrome-chi6D3HY.js +25 -0
- package/dist/useSheetDrag-OsD6Eb6I.js +72 -0
- package/dist/useTypedEntry-aTfPBAhw.js +857 -0
- package/package.json +26 -5
- package/dist/NoAccess.vue_vue_type_script_setup_true_lang-OKW8pKYU.js +0 -78
- package/dist/SectionList.vue_vue_type_script_setup_true_lang-L9ita_Kx.js +0 -230
- package/dist/SelectField.vue_vue_type_script_setup_true_lang-DZTrU8NJ.js +0 -661
- package/dist/Sheet.vue_vue_type_script_setup_true_lang-CtkJ-4e3.js +0 -210
- package/dist/SwipeActions.vue_vue_type_script_setup_true_lang-CGTuEnTv.js +0 -243
- package/dist/chrome-D9pwD6iS.js +0 -101
- package/dist/environment-D3nozt9a.js +0 -75
- package/dist/feature-DyDtyMLU.js +0 -47
- package/dist/options-DAkBtYkI.js +0 -330
- package/dist/platform-jqlKVJ2e.js +0 -244
- package/dist/toast-DvrHQ6Ag.js +0 -131
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { c as P } from "./client-k9euDWF4.js";
|
|
2
|
+
import { d as k } from "./context-Ch1r4fdN.js";
|
|
3
|
+
import { a as x, A as q } from "./error-CD7x0Jrz.js";
|
|
4
|
+
import { shallowRef as U } from "vue";
|
|
5
|
+
const _ = (e, n) => e.level === n.level && e.id === n.id, z = (e, n) => Object.prototype.hasOwnProperty.call(e, n);
|
|
6
|
+
function C(e, n = {}) {
|
|
7
|
+
const t = n.covers ?? _;
|
|
8
|
+
function o(r) {
|
|
9
|
+
const s = e();
|
|
10
|
+
return !s || !z(s.permissions, r) || s.unavailable.includes(r) ? null : s.permissions[r] ?? null;
|
|
11
|
+
}
|
|
12
|
+
function a(r, s) {
|
|
13
|
+
const i = o(r);
|
|
14
|
+
return i ? s ? (i.clauses.length > 0 ? i.clauses.map((c) => c.scope) : [i.scope]).some((c) => t(c, s)) : !0 : !1;
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
get root() {
|
|
18
|
+
return e()?.root ?? !1;
|
|
19
|
+
},
|
|
20
|
+
can: a,
|
|
21
|
+
canAny: (r) => r.some((s) => a(s)),
|
|
22
|
+
canAll: (r) => r.every((s) => a(s)),
|
|
23
|
+
held: o
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const A = ["own", "own_location", "all"], m = (e) => typeof e == "object" && e !== null && !Array.isArray(e);
|
|
27
|
+
function $(e, n, t) {
|
|
28
|
+
return !m(e) || typeof e.level != "string" ? (t.push(`${n}: expected { level: string, id?: number }`), { level: "" }) : (e.id !== void 0 && typeof e.id != "number" && t.push(`${n}.id: expected number`), typeof e.id == "number" ? { level: e.level, id: e.id } : { level: e.level });
|
|
29
|
+
}
|
|
30
|
+
function S(e, n, t) {
|
|
31
|
+
return typeof e == "string" && A.includes(e) ? e : (t.push(`${n}: expected one of ${A.join(", ")}`), "own");
|
|
32
|
+
}
|
|
33
|
+
function I(e) {
|
|
34
|
+
const n = [], t = {}, o = { root: !1, permissions: {}, unavailable: [] };
|
|
35
|
+
if (!m(e)) return { snapshot: o, issues: ["access: expected an object"] };
|
|
36
|
+
if (!m(e.permissions)) n.push("access.permissions: expected an object");
|
|
37
|
+
else
|
|
38
|
+
for (const [r, s] of Object.entries(e.permissions)) {
|
|
39
|
+
const i = `access.permissions.${r}`;
|
|
40
|
+
if (!m(s)) {
|
|
41
|
+
n.push(`${i}: expected an object`);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const u = (Array.isArray(s.clauses) ? s.clauses : []).map((c, y) => {
|
|
45
|
+
const l = `${i}.clauses[${y}]`;
|
|
46
|
+
if (!m(c))
|
|
47
|
+
return n.push(`${l}: expected an object`), { scope: { level: "" }, qualifier: "own" };
|
|
48
|
+
const f = { scope: $(c.scope, `${l}.scope`, n), qualifier: S(c.qualifier, `${l}.qualifier`, n) };
|
|
49
|
+
return typeof c.role == "string" ? { ...f, role: c.role } : f;
|
|
50
|
+
});
|
|
51
|
+
t[r] = {
|
|
52
|
+
scope: $(s.scope, `${i}.scope`, n),
|
|
53
|
+
qualifier: S(s.qualifier, `${i}.qualifier`, n),
|
|
54
|
+
clauses: u
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const a = e.unavailable ?? [];
|
|
58
|
+
return (!Array.isArray(a) || !a.every((r) => typeof r == "string")) && n.push("access.unavailable: expected an array of strings"), {
|
|
59
|
+
snapshot: {
|
|
60
|
+
root: e.root === !0,
|
|
61
|
+
permissions: t,
|
|
62
|
+
unavailable: Array.isArray(a) ? a.filter((r) => typeof r == "string") : []
|
|
63
|
+
},
|
|
64
|
+
issues: n
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
const T = (e) => typeof e == "object" && e !== null && !Array.isArray(e);
|
|
68
|
+
function j(e, n, t = "navigation") {
|
|
69
|
+
return Array.isArray(e) ? e.flatMap((o, a) => {
|
|
70
|
+
const r = `${t}[${a}]`;
|
|
71
|
+
if (!T(o) || typeof o.i18n != "string")
|
|
72
|
+
return n.push(`${r}: expected an object with an i18n key`), [];
|
|
73
|
+
for (const i of ["icon", "route"])
|
|
74
|
+
o[i] != null && typeof o[i] != "string" && n.push(`${r}.${i}: expected a string`);
|
|
75
|
+
const s = o.children == null ? void 0 : j(o.children, n, `${r}.children`);
|
|
76
|
+
return [
|
|
77
|
+
{
|
|
78
|
+
i18n: o.i18n,
|
|
79
|
+
...typeof o.icon == "string" && { icon: o.icon },
|
|
80
|
+
...typeof o.route == "string" && { route: o.route },
|
|
81
|
+
...s && { children: s }
|
|
82
|
+
}
|
|
83
|
+
];
|
|
84
|
+
}) : (n.push(`${t}: expected an array`), []);
|
|
85
|
+
}
|
|
86
|
+
const b = (e) => typeof e == "object" && e !== null && !Array.isArray(e), N = (e) => {
|
|
87
|
+
if (b(e) && (typeof e.id == "number" || typeof e.id == "string")) return { id: e.id };
|
|
88
|
+
throw new TypeError("expected an object with a numeric or string id");
|
|
89
|
+
};
|
|
90
|
+
function B(e, n = N) {
|
|
91
|
+
const t = [];
|
|
92
|
+
if (!b(e)) throw O(["expected an object"]);
|
|
93
|
+
let o = null;
|
|
94
|
+
try {
|
|
95
|
+
o = n(e.user);
|
|
96
|
+
} catch (u) {
|
|
97
|
+
t.push(`user: ${u instanceof Error ? u.message : "invalid"}`);
|
|
98
|
+
}
|
|
99
|
+
let a = null;
|
|
100
|
+
if (e.expires_at !== void 0 && e.expires_at !== null) {
|
|
101
|
+
const u = typeof e.expires_at == "string" ? new Date(e.expires_at) : null;
|
|
102
|
+
u === null || Number.isNaN(u.getTime()) ? t.push("expires_at: expected an ISO date-time string") : a = u;
|
|
103
|
+
}
|
|
104
|
+
let r;
|
|
105
|
+
if (e.impersonator !== void 0 && e.impersonator !== null) {
|
|
106
|
+
const u = e.impersonator;
|
|
107
|
+
b(u) && (typeof u.id == "number" || typeof u.id == "string") && typeof u.name == "string" ? r = { id: u.id, name: u.name } : t.push("impersonator: expected { id, name }");
|
|
108
|
+
}
|
|
109
|
+
const s = I(e.access);
|
|
110
|
+
t.push(...s.issues);
|
|
111
|
+
const i = e.navigation === void 0 || e.navigation === null ? void 0 : j(e.navigation, t);
|
|
112
|
+
if (o === null || t.length > 0) throw O(t);
|
|
113
|
+
return { user: o, expiresAt: a, access: s.snapshot, ...r && { impersonator: r }, ...i && { navigation: i } };
|
|
114
|
+
}
|
|
115
|
+
const O = (e) => new q({ kind: "malformed", message: `Unreadable session payload: ${e.join("; ")}` });
|
|
116
|
+
function F(e, n = {}) {
|
|
117
|
+
const { mePath: t = "/auth/me", signOutPath: o = "/auth/logout", parseUser: a } = n;
|
|
118
|
+
return {
|
|
119
|
+
async load(r) {
|
|
120
|
+
try {
|
|
121
|
+
const { data: s } = await e.get(t, { signal: r, handleUnauthorized: !1 });
|
|
122
|
+
return B(s, a);
|
|
123
|
+
} catch (s) {
|
|
124
|
+
if (x(s) && s.kind === "unauthorized") return null;
|
|
125
|
+
throw s;
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
async signOut() {
|
|
129
|
+
try {
|
|
130
|
+
await e.post(o, void 0, { handleUnauthorized: !1 });
|
|
131
|
+
} catch (r) {
|
|
132
|
+
if (!(x(r) && r.kind === "unauthorized")) throw r;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
function E(e) {
|
|
138
|
+
return e.status === "authenticated" ? e : e.status === "anonymous" && e.reason === "expired" ? e.previous ?? null : null;
|
|
139
|
+
}
|
|
140
|
+
const w = 3e3;
|
|
141
|
+
function H(e, n = {}) {
|
|
142
|
+
const t = U({ status: "unknown" });
|
|
143
|
+
let o = 0;
|
|
144
|
+
const a = new Set(n.beforeSignOut ? [n.beforeSignOut] : []);
|
|
145
|
+
let r = !1, s = null, i = null;
|
|
146
|
+
function u() {
|
|
147
|
+
o++, i?.controller.abort(), i = null;
|
|
148
|
+
}
|
|
149
|
+
async function c(l) {
|
|
150
|
+
const f = new AbortController();
|
|
151
|
+
let h;
|
|
152
|
+
const g = new Promise((d) => {
|
|
153
|
+
h = setTimeout(() => {
|
|
154
|
+
f.abort(), n.onError?.(new Error(`A before-sign-out hook did not finish within ${w} ms; signing out without it.`)), d();
|
|
155
|
+
}, w);
|
|
156
|
+
}), v = Promise.all(
|
|
157
|
+
[...a].map(async (d) => {
|
|
158
|
+
try {
|
|
159
|
+
await d(l, f.signal);
|
|
160
|
+
} catch (p) {
|
|
161
|
+
n.onError?.(p);
|
|
162
|
+
}
|
|
163
|
+
})
|
|
164
|
+
).then(() => {
|
|
165
|
+
});
|
|
166
|
+
await Promise.race([v, g]), clearTimeout(h);
|
|
167
|
+
}
|
|
168
|
+
function y() {
|
|
169
|
+
if (i) return i.promise;
|
|
170
|
+
const l = o, f = new AbortController(), h = t.value, g = E(h) !== null;
|
|
171
|
+
g || (t.value = { status: "loading" });
|
|
172
|
+
const v = async () => {
|
|
173
|
+
try {
|
|
174
|
+
const p = await e.load(f.signal);
|
|
175
|
+
if (o !== l) return t.value;
|
|
176
|
+
t.value = p ? { status: "authenticated", ...p } : { status: "anonymous", reason: "none" };
|
|
177
|
+
} catch (p) {
|
|
178
|
+
if (o !== l) return t.value;
|
|
179
|
+
n.onError?.(p), t.value = g ? h : { status: "failed", error: p };
|
|
180
|
+
} finally {
|
|
181
|
+
o === l && (i = null);
|
|
182
|
+
}
|
|
183
|
+
return t.value;
|
|
184
|
+
}, d = Promise.resolve().then(v);
|
|
185
|
+
return i = { controller: f, promise: d }, d;
|
|
186
|
+
}
|
|
187
|
+
return {
|
|
188
|
+
state: t,
|
|
189
|
+
restore: () => t.value.status === "unknown" || t.value.status === "failed" ? y() : i?.promise ?? Promise.resolve(t.value),
|
|
190
|
+
refresh: y,
|
|
191
|
+
establish(l) {
|
|
192
|
+
u(), t.value = { status: "authenticated", ...l };
|
|
193
|
+
},
|
|
194
|
+
expire() {
|
|
195
|
+
if (t.value.status !== "authenticated") return;
|
|
196
|
+
const { status: l, ...f } = t.value;
|
|
197
|
+
u(), t.value = r && !t.value.impersonator ? { status: "anonymous", reason: "expired", previous: f } : { status: "anonymous", reason: "expired" }, n.onExpired?.();
|
|
198
|
+
},
|
|
199
|
+
signOut() {
|
|
200
|
+
return s ?? (s = (async () => {
|
|
201
|
+
try {
|
|
202
|
+
const l = t.value;
|
|
203
|
+
l.status === "authenticated" && a.size > 0 && await c(l.user), u(), t.value = { status: "anonymous", reason: "signedOut" }, await e.signOut();
|
|
204
|
+
} finally {
|
|
205
|
+
s = null;
|
|
206
|
+
}
|
|
207
|
+
})()), s;
|
|
208
|
+
},
|
|
209
|
+
holdExpired(l) {
|
|
210
|
+
r = l;
|
|
211
|
+
},
|
|
212
|
+
onBeforeSignOut(l) {
|
|
213
|
+
return a.add(l), () => void a.delete(l);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
function M(e) {
|
|
218
|
+
let n = null;
|
|
219
|
+
const t = P({
|
|
220
|
+
baseUrl: e.config.apiBase,
|
|
221
|
+
transport: e.transport,
|
|
222
|
+
headers: e.headers,
|
|
223
|
+
credentials: e.credentials,
|
|
224
|
+
requestId: e.requestId,
|
|
225
|
+
async onUnauthorized() {
|
|
226
|
+
return r.state.value.status !== "authenticated" ? "fail" : e.renewSession && (n ?? (n = e.renewSession(r, t).then(
|
|
227
|
+
(i) => i,
|
|
228
|
+
() => !1
|
|
229
|
+
).finally(() => {
|
|
230
|
+
n = null;
|
|
231
|
+
})), await n) ? "retry" : (r.expire(), "fail");
|
|
232
|
+
}
|
|
233
|
+
}), o = e.session ?? ((i) => F(i)), a = typeof o == "function" ? o(t) : o, r = H(a, { onError: e.onSessionError, onExpired: e.onSessionExpired, beforeSignOut: e.beforeSignOut }), s = C(
|
|
234
|
+
() => E(r.state.value)?.access ?? null,
|
|
235
|
+
{ covers: e.covers }
|
|
236
|
+
);
|
|
237
|
+
return { config: e.config, http: t, session: r, access: s };
|
|
238
|
+
}
|
|
239
|
+
const [Q, G] = k("platform");
|
|
240
|
+
function J(e, n) {
|
|
241
|
+
e.provide(Q, n);
|
|
242
|
+
}
|
|
243
|
+
export {
|
|
244
|
+
M as a,
|
|
245
|
+
w as b,
|
|
246
|
+
C as c,
|
|
247
|
+
H as d,
|
|
248
|
+
F as e,
|
|
249
|
+
B as f,
|
|
250
|
+
Q as g,
|
|
251
|
+
E as h,
|
|
252
|
+
J as i,
|
|
253
|
+
j as p,
|
|
254
|
+
G as u
|
|
255
|
+
};
|
package/dist/resource/index.js
CHANGED
|
@@ -1,250 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { i as S } from "../error-Bb_dr_Ay.js";
|
|
4
|
-
import { useRoute as H, useRouter as Q, RouterLink as I } from "vue-router";
|
|
5
|
-
import { M as N } from "../context-Ch1r4fdN.js";
|
|
6
|
-
import { u as T } from "../Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js";
|
|
7
|
-
import { _ as w } from "../Icon.vue_vue_type_script_lang-DtC4_mkz.js";
|
|
8
|
-
import { _ as D } from "../Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js";
|
|
9
|
-
import { a as X } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-CeKK8_g5.js";
|
|
10
|
-
import { _ as Y } from "../AsyncSection.vue_vue_type_script_setup_true_lang-CWLB3xsR.js";
|
|
11
|
-
import { _ as Z } from "../EmptyState.vue_vue_type_script_setup_true_lang-BeGpHMUP.js";
|
|
12
|
-
function ee(t) {
|
|
13
|
-
if (!/^\d+$/.test(t)) return null;
|
|
14
|
-
const e = Number(t);
|
|
15
|
-
return Number.isSafeInteger(e) && e > 0 ? e : null;
|
|
16
|
-
}
|
|
17
|
-
const te = (t) => typeof t == "object" && t !== null && "state" in t && "reload" in t && "id" in t, re = (t) => typeof t == "object" && t !== null && "id" in t;
|
|
18
|
-
function oe(t) {
|
|
19
|
-
const { t: e } = C(), o = te(t.for) ? t.for : null, i = f(() => o ? o.id.value : K(t.for)), u = f(() => o !== null && o.data.value === null), r = F({ status: "loading" });
|
|
20
|
-
let n = null, s = 0, m = null;
|
|
21
|
-
const y = t.errorMessage ?? ((l) => S(l) && l.kind === "network" ? e("core.resource.offline") : S(l) && l.kind === "forbidden" ? e("core.no_access.body") : e("core.resource.unavailable"));
|
|
22
|
-
function $() {
|
|
23
|
-
return m?.abort(), m = null, ++s;
|
|
24
|
-
}
|
|
25
|
-
async function A() {
|
|
26
|
-
const l = i.value, p = $();
|
|
27
|
-
if (u.value) {
|
|
28
|
-
n = null, r.value = { status: "loading" };
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
if (l === null) {
|
|
32
|
-
n = null, r.value = { status: "failed", reason: "notFound", error: e("core.resource.not_found.body") };
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const g = n === l && "value" in r.value ? r.value : null;
|
|
36
|
-
g ? r.value = { status: "refreshing", value: g.value } : (n = null, r.value = { status: "loading" });
|
|
37
|
-
const L = new AbortController();
|
|
38
|
-
m = L;
|
|
39
|
-
try {
|
|
40
|
-
const v = await t.load(l, { signal: L.signal });
|
|
41
|
-
if (p !== s) return;
|
|
42
|
-
n = l, r.value = { status: "loaded", value: v };
|
|
43
|
-
} catch (v) {
|
|
44
|
-
if (p !== s) return;
|
|
45
|
-
S(v) && v.kind === "notFound" ? (n = null, r.value = { status: "failed", reason: "notFound", error: e("core.resource.not_found.body") }) : g ? r.value = { status: "stale", value: g.value, error: y(v) } : (n = null, r.value = { status: "failed", reason: "unavailable", error: y(v) });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
function B(l) {
|
|
49
|
-
const p = i.value, g = t.identify ? t.identify(l) : re(l) ? l.id : p;
|
|
50
|
-
return p === null || g !== p ? !1 : ($(), n = p, r.value = { status: "loaded", value: l }, !0);
|
|
51
|
-
}
|
|
52
|
-
return P([i, u], () => void A(), { immediate: !0, flush: "sync" }), M() && J($), {
|
|
53
|
-
id: i,
|
|
54
|
-
state: f(() => r.value),
|
|
55
|
-
data: f(() => "value" in r.value ? r.value.value : null),
|
|
56
|
-
reload: A,
|
|
57
|
-
update: B
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
function he(t) {
|
|
61
|
-
const e = H(), o = t.parse ?? ee, i = F(null);
|
|
62
|
-
let u = !1;
|
|
63
|
-
P(
|
|
64
|
-
() => e.params[t.param],
|
|
65
|
-
(n) => {
|
|
66
|
-
if (n === void 0 && u) return;
|
|
67
|
-
u = !0;
|
|
68
|
-
const s = Array.isArray(n) ? n[0] : n;
|
|
69
|
-
i.value = s === void 0 ? null : o(s);
|
|
70
|
-
},
|
|
71
|
-
{ immediate: !0, flush: "sync" }
|
|
72
|
-
);
|
|
73
|
-
const r = oe({ ...t, for: i });
|
|
74
|
-
return t.key && U(t.key, r), r;
|
|
75
|
-
}
|
|
76
|
-
function ye(t) {
|
|
77
|
-
const e = t.description ?? "route resource";
|
|
78
|
-
if (!O()) throw new N(e, "outside-setup");
|
|
79
|
-
const o = W(t, null);
|
|
80
|
-
if (!o) throw new N(e, "not-provided");
|
|
81
|
-
return o;
|
|
82
|
-
}
|
|
83
|
-
const ne = ["aria-label"], se = {
|
|
84
|
-
class: "min-w-14 px-1 text-center text-footnote tabular-nums text-content-muted compact:px-1.5",
|
|
85
|
-
"data-test": "pager-position",
|
|
86
|
-
"aria-live": "polite"
|
|
87
|
-
}, x = "hit-target flex size-6 items-center justify-center rounded-button text-content-strong transition-colors duration-motion-fast hover:bg-fill-strong focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-border-focus compact:size-9 compact:text-content-link compact:hover:bg-transparent", E = "pointer-events-none opacity-40", ae = /* @__PURE__ */ V({
|
|
88
|
-
__name: "RecordPager",
|
|
89
|
-
props: {
|
|
90
|
-
neighbors: {}
|
|
91
|
-
},
|
|
92
|
-
setup(t) {
|
|
93
|
-
const e = t, { t: o } = C(), i = Q(), u = (r, n) => T({ key: r, group: "record", label: () => o(`core.resource.pager.${n}`) }, () => {
|
|
94
|
-
const s = e.neighbors[n];
|
|
95
|
-
if (!s) return !1;
|
|
96
|
-
i.push(s);
|
|
97
|
-
});
|
|
98
|
-
return u("j", "next"), u("ArrowRight", "next"), u("k", "previous"), u("ArrowLeft", "previous"), (r, n) => (c(), R("nav", {
|
|
99
|
-
"aria-label": a(o)("core.resource.pager.records"),
|
|
100
|
-
"data-test": "record-pager",
|
|
101
|
-
class: "inline-flex shrink-0 items-center rounded-button bg-fill p-0.5 compact:gap-0.5 compact:bg-surface-overlay compact:p-1 compact:shadow-float"
|
|
102
|
-
}, [
|
|
103
|
-
e.neighbors.previous ? (c(), h(a(D), {
|
|
104
|
-
key: 0,
|
|
105
|
-
side: "bottom",
|
|
106
|
-
delay: 300,
|
|
107
|
-
text: `${a(o)("core.resource.pager.previous")} (← / K)`
|
|
108
|
-
}, {
|
|
109
|
-
default: d(() => [
|
|
110
|
-
b(a(I), {
|
|
111
|
-
to: e.neighbors.previous,
|
|
112
|
-
"aria-label": a(o)("core.resource.pager.previous"),
|
|
113
|
-
"aria-keyshortcuts": "ArrowLeft K",
|
|
114
|
-
"data-test": "pager-previous",
|
|
115
|
-
class: k(x)
|
|
116
|
-
}, {
|
|
117
|
-
default: d(() => [
|
|
118
|
-
b(a(w), {
|
|
119
|
-
name: "arrowUpSLine",
|
|
120
|
-
size: 18
|
|
121
|
-
})
|
|
122
|
-
]),
|
|
123
|
-
_: 1
|
|
124
|
-
}, 8, ["to", "aria-label"])
|
|
125
|
-
]),
|
|
126
|
-
_: 1
|
|
127
|
-
}, 8, ["text"])) : (c(), R("span", {
|
|
128
|
-
key: 1,
|
|
129
|
-
class: k([x, E]),
|
|
130
|
-
"aria-hidden": "true"
|
|
131
|
-
}, [
|
|
132
|
-
b(a(w), {
|
|
133
|
-
name: "arrowUpSLine",
|
|
134
|
-
size: 18
|
|
135
|
-
})
|
|
136
|
-
], 2)),
|
|
137
|
-
q("span", se, z(e.neighbors.position) + " / " + z(e.neighbors.total), 1),
|
|
138
|
-
e.neighbors.next ? (c(), h(a(D), {
|
|
139
|
-
key: 2,
|
|
140
|
-
side: "bottom",
|
|
141
|
-
delay: 300,
|
|
142
|
-
text: `${a(o)("core.resource.pager.next")} (→ / J)`
|
|
143
|
-
}, {
|
|
144
|
-
default: d(() => [
|
|
145
|
-
b(a(I), {
|
|
146
|
-
to: e.neighbors.next,
|
|
147
|
-
"aria-label": a(o)("core.resource.pager.next"),
|
|
148
|
-
"aria-keyshortcuts": "ArrowRight J",
|
|
149
|
-
"data-test": "pager-next",
|
|
150
|
-
class: k(x)
|
|
151
|
-
}, {
|
|
152
|
-
default: d(() => [
|
|
153
|
-
b(a(w), {
|
|
154
|
-
name: "arrowDownSLine",
|
|
155
|
-
size: 18
|
|
156
|
-
})
|
|
157
|
-
]),
|
|
158
|
-
_: 1
|
|
159
|
-
}, 8, ["to", "aria-label"])
|
|
160
|
-
]),
|
|
161
|
-
_: 1
|
|
162
|
-
}, 8, ["text"])) : (c(), R("span", {
|
|
163
|
-
key: 3,
|
|
164
|
-
class: k([x, E]),
|
|
165
|
-
"aria-hidden": "true"
|
|
166
|
-
}, [
|
|
167
|
-
b(a(w), {
|
|
168
|
-
name: "arrowDownSLine",
|
|
169
|
-
size: 18
|
|
170
|
-
})
|
|
171
|
-
], 2))
|
|
172
|
-
], 8, ne));
|
|
173
|
-
}
|
|
174
|
-
}), ke = /* @__PURE__ */ V({
|
|
175
|
-
__name: "ResourcePage",
|
|
176
|
-
props: {
|
|
177
|
-
resource: {},
|
|
178
|
-
title: {},
|
|
179
|
-
back: { default: void 0 },
|
|
180
|
-
list: { default: null },
|
|
181
|
-
actions: { default: () => [] },
|
|
182
|
-
width: { default: "content" }
|
|
183
|
-
},
|
|
184
|
-
setup(t) {
|
|
185
|
-
const e = t, { t: o } = C(), i = f(() => e.resource.state.value), u = f(() => e.resource.data.value), r = f(() => i.value.status === "failed" && "reason" in i.value && i.value.reason === "notFound"), n = f(() => e.back ?? e.list?.back ?? null);
|
|
186
|
-
return (s, m) => (c(), h(X, {
|
|
187
|
-
title: e.title,
|
|
188
|
-
"document-title": e.title,
|
|
189
|
-
back: n.value,
|
|
190
|
-
actions: e.actions,
|
|
191
|
-
width: e.width
|
|
192
|
-
}, j({
|
|
193
|
-
default: d(() => [
|
|
194
|
-
r.value ? (c(), h(Z, {
|
|
195
|
-
key: 0,
|
|
196
|
-
title: a(o)("core.resource.not_found.title"),
|
|
197
|
-
description: a(o)("core.resource.not_found.body"),
|
|
198
|
-
icon: "errorWarningLine"
|
|
199
|
-
}, null, 8, ["title", "description"])) : (c(), h(Y, {
|
|
200
|
-
key: 1,
|
|
201
|
-
state: i.value,
|
|
202
|
-
"is-empty": () => !1,
|
|
203
|
-
onRetry: m[0] || (m[0] = (y) => e.resource.reload())
|
|
204
|
-
}, j({
|
|
205
|
-
default: d(({ value: y }) => [
|
|
206
|
-
_(s.$slots, "default", { record: y })
|
|
207
|
-
]),
|
|
208
|
-
_: 2
|
|
209
|
-
}, [
|
|
210
|
-
s.$slots.loading ? {
|
|
211
|
-
name: "skeleton",
|
|
212
|
-
fn: d(() => [
|
|
213
|
-
_(s.$slots, "loading")
|
|
214
|
-
]),
|
|
215
|
-
key: "0"
|
|
216
|
-
} : void 0
|
|
217
|
-
]), 1032, ["state"]))
|
|
218
|
-
]),
|
|
219
|
-
_: 2
|
|
220
|
-
}, [
|
|
221
|
-
s.$slots.pager || e.list?.neighbors ? {
|
|
222
|
-
name: "pager",
|
|
223
|
-
fn: d(() => [
|
|
224
|
-
_(s.$slots, "pager", {}, () => [
|
|
225
|
-
e.list?.neighbors ? (c(), h(ae, {
|
|
226
|
-
key: 0,
|
|
227
|
-
neighbors: e.list.neighbors
|
|
228
|
-
}, null, 8, ["neighbors"])) : G("", !0)
|
|
229
|
-
])
|
|
230
|
-
]),
|
|
231
|
-
key: "0"
|
|
232
|
-
} : void 0,
|
|
233
|
-
u.value !== null && s.$slots.header ? {
|
|
234
|
-
name: "header",
|
|
235
|
-
fn: d(() => [
|
|
236
|
-
_(s.$slots, "header", { record: u.value })
|
|
237
|
-
]),
|
|
238
|
-
key: "1"
|
|
239
|
-
} : void 0
|
|
240
|
-
]), 1032, ["title", "document-title", "back", "actions", "width"]));
|
|
241
|
-
}
|
|
242
|
-
});
|
|
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-CwI_sROp.js";
|
|
243
3
|
export {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
4
|
+
R as RecordPager,
|
|
5
|
+
c as ResourcePage,
|
|
6
|
+
o as positiveInteger,
|
|
7
|
+
r as useResource,
|
|
8
|
+
a as useRouteResource,
|
|
9
|
+
u as useRouteResourceContext
|
|
250
10
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function u(e, i, r = {}) {
|
|
2
|
+
return { method: e, path: i, permission: r.permission, public: r.public === !0, raw: !1 };
|
|
3
|
+
}
|
|
4
|
+
u.raw = (e, i, r = {}) => ({
|
|
5
|
+
method: e,
|
|
6
|
+
path: i,
|
|
7
|
+
permission: r.permission,
|
|
8
|
+
public: r.public === !0,
|
|
9
|
+
raw: !0
|
|
10
|
+
});
|
|
11
|
+
export {
|
|
12
|
+
u as r
|
|
13
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { computed as f, toValue as x, shallowRef as R, watch as w, getCurrentScope as C, onScopeDispose as I, provide as j, hasInjectionContext as A, inject as F } from "vue";
|
|
2
|
+
import { useRoute as M } from "vue-router";
|
|
3
|
+
import { M as h } from "./context-Ch1r4fdN.js";
|
|
4
|
+
import { useI18n as S } from "vue-i18n";
|
|
5
|
+
import { a as p } from "./error-CD7x0Jrz.js";
|
|
6
|
+
function _(e) {
|
|
7
|
+
if (!/^\d+$/.test(e)) return null;
|
|
8
|
+
const n = Number(e);
|
|
9
|
+
return Number.isSafeInteger(n) && n > 0 ? n : null;
|
|
10
|
+
}
|
|
11
|
+
const E = (e) => typeof e == "object" && e !== null && "state" in e && "reload" in e && "id" in e, N = (e) => typeof e == "object" && e !== null && "id" in e;
|
|
12
|
+
function D(e) {
|
|
13
|
+
const { t: n } = S(), o = E(e.for) ? e.for : null, s = f(() => o ? o.id.value : x(e.for)), d = f(() => o !== null && o.data.value === null), t = R({ status: "loading" });
|
|
14
|
+
let u = null, a = 0, v = null;
|
|
15
|
+
const g = e.errorMessage ?? ((r) => p(r) && r.kind === "network" ? n("core.resource.offline") : p(r) && r.kind === "forbidden" ? n("core.no_access.body") : n("core.resource.unavailable"));
|
|
16
|
+
function m() {
|
|
17
|
+
return v?.abort(), v = null, ++a;
|
|
18
|
+
}
|
|
19
|
+
async function y() {
|
|
20
|
+
const r = s.value, l = m();
|
|
21
|
+
if (d.value) {
|
|
22
|
+
u = null, t.value = { status: "loading" };
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (r === null) {
|
|
26
|
+
u = null, t.value = { status: "failed", reason: "notFound", error: n("core.resource.not_found.body") };
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const i = u === r && "value" in t.value ? t.value : null;
|
|
30
|
+
i ? t.value = { status: "refreshing", value: i.value } : (u = null, t.value = { status: "loading" });
|
|
31
|
+
const b = new AbortController();
|
|
32
|
+
v = b;
|
|
33
|
+
try {
|
|
34
|
+
const c = await e.load(r, { signal: b.signal });
|
|
35
|
+
if (l !== a) return;
|
|
36
|
+
u = r, t.value = { status: "loaded", value: c };
|
|
37
|
+
} catch (c) {
|
|
38
|
+
if (l !== a) return;
|
|
39
|
+
p(c) && c.kind === "notFound" ? (u = null, t.value = { status: "failed", reason: "notFound", error: n("core.resource.not_found.body") }) : i ? t.value = { status: "stale", value: i.value, error: g(c) } : (u = null, t.value = { status: "failed", reason: "unavailable", error: g(c) });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function k(r) {
|
|
43
|
+
const l = s.value, i = e.identify ? e.identify(r) : N(r) ? r.id : l;
|
|
44
|
+
return l === null || i !== l ? !1 : (m(), u = l, t.value = { status: "loaded", value: r }, !0);
|
|
45
|
+
}
|
|
46
|
+
return w([s, d], () => void y(), { immediate: !0, flush: "sync" }), C() && I(m), {
|
|
47
|
+
id: s,
|
|
48
|
+
state: f(() => t.value),
|
|
49
|
+
data: f(() => "value" in t.value ? t.value.value : null),
|
|
50
|
+
reload: y,
|
|
51
|
+
update: k
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function B(e) {
|
|
55
|
+
const n = M(), o = e.parse ?? _, s = R(null);
|
|
56
|
+
let d = !1;
|
|
57
|
+
w(
|
|
58
|
+
() => n.params[e.param],
|
|
59
|
+
(u) => {
|
|
60
|
+
if (u === void 0 && d) return;
|
|
61
|
+
d = !0;
|
|
62
|
+
const a = Array.isArray(u) ? u[0] : u;
|
|
63
|
+
s.value = a === void 0 ? null : o(a);
|
|
64
|
+
},
|
|
65
|
+
{ immediate: !0, flush: "sync" }
|
|
66
|
+
);
|
|
67
|
+
const t = D({ ...e, for: s });
|
|
68
|
+
return e.key && j(e.key, t), t;
|
|
69
|
+
}
|
|
70
|
+
function G(e) {
|
|
71
|
+
const n = e.description ?? "route resource";
|
|
72
|
+
if (!A()) throw new h(n, "outside-setup");
|
|
73
|
+
const o = F(e, null);
|
|
74
|
+
if (!o) throw new h(n, "not-provided");
|
|
75
|
+
return o;
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
B as a,
|
|
79
|
+
G as b,
|
|
80
|
+
_ as p,
|
|
81
|
+
D as u
|
|
82
|
+
};
|
package/dist/router/guards.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RouteLocationNormalized, RouteLocationRaw, Router } from "vue-router";
|
|
2
|
-
import type
|
|
2
|
+
import { type Session } from "../platform/session";
|
|
3
3
|
export interface RouterGuardOptions {
|
|
4
4
|
router: Router;
|
|
5
5
|
session: Session;
|
|
@@ -19,6 +19,12 @@ export interface RouterGuardOptions {
|
|
|
19
19
|
start(): void;
|
|
20
20
|
done(): void;
|
|
21
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* True when something on the page asks the person to sign in again when their session expires (the identity
|
|
24
|
+
* feature's sheet): an expired session then stays on its protected page instead of going to the login page.
|
|
25
|
+
* A session that ends any other way still goes to the login page.
|
|
26
|
+
*/
|
|
27
|
+
holdExpired?: boolean;
|
|
22
28
|
/** A failure of the session check or of the router (a lazy view that did not load). */
|
|
23
29
|
onError?: (error: unknown) => void;
|
|
24
30
|
}
|