@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,423 @@
|
|
|
1
|
+
import { defineComponent as U, ref as N, useId as H, useTemplateRef as P, computed as y, watch as F, nextTick as I, openBlock as n, createElementBlock as b, normalizeClass as g, createElementVNode as s, createVNode as L, unref as t, withDirectives as j, vModelText as G, createCommentVNode as _, toDisplayString as w, createBlock as z, Fragment as B, renderList as T, onScopeDispose as K, useModel as W, mergeProps as E, withCtx as D, createSlots as J, createTextVNode as Q, mergeModels as X, mergeDefaults as Y } from "vue";
|
|
2
|
+
import { useI18n as R } from "vue-i18n";
|
|
3
|
+
import { _ as Z } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
|
|
4
|
+
import { _ as V } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
|
|
5
|
+
import { u as ee } from "./mediaQuery-CygcXmFW.js";
|
|
6
|
+
import { _ as te } from "./Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
|
|
7
|
+
import { _ as oe } from "./Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js";
|
|
8
|
+
import { a as le, c as ae, _ as ne, f as se, b as re } from "./control-7EP4tjYy.js";
|
|
9
|
+
import { g as ie, m as ue } from "./options-Ba_0uLWN.js";
|
|
10
|
+
import { a as ce } from "./suggestions-BxMm6MQA.js";
|
|
11
|
+
const de = { class: "flex min-h-9 items-center gap-1.5 rounded-control bg-fill px-2.5 text-content-muted focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-border-focus" }, pe = ["aria-label", "placeholder"], me = ["aria-multiselectable", "aria-busy"], fe = {
|
|
12
|
+
key: 0,
|
|
13
|
+
role: "presentation"
|
|
14
|
+
}, ve = ["aria-selected"], be = { class: "flex-1 py-2" }, ge = {
|
|
15
|
+
key: 1,
|
|
16
|
+
role: "presentation",
|
|
17
|
+
class: "flex items-center gap-2.5 px-row-inset py-4 text-subheadline text-content-muted",
|
|
18
|
+
"data-test": "options-loading"
|
|
19
|
+
}, he = { role: "status" }, ye = {
|
|
20
|
+
key: 2,
|
|
21
|
+
role: "presentation",
|
|
22
|
+
class: "flex flex-col items-start gap-1 px-row-inset py-3",
|
|
23
|
+
"data-test": "options-failed"
|
|
24
|
+
}, xe = {
|
|
25
|
+
role: "alert",
|
|
26
|
+
class: "text-subheadline text-content-destructive"
|
|
27
|
+
}, ke = ["id"], _e = ["aria-labelledby"], we = ["aria-selected"], $e = ["disabled", "onClick"], Ce = {
|
|
28
|
+
key: 0,
|
|
29
|
+
"aria-hidden": "true",
|
|
30
|
+
class: "flex shrink-0 items-center"
|
|
31
|
+
}, Se = { class: "min-w-0 flex-1 text-content-strong" }, Le = {
|
|
32
|
+
key: 0,
|
|
33
|
+
class: "shrink-0 text-footnote text-content-muted"
|
|
34
|
+
}, Ve = {
|
|
35
|
+
key: 3,
|
|
36
|
+
class: "px-4 py-6 text-center text-subheadline text-content-muted"
|
|
37
|
+
}, M = /* @__PURE__ */ U({
|
|
38
|
+
__name: "OptionList",
|
|
39
|
+
props: {
|
|
40
|
+
options: {},
|
|
41
|
+
modelValue: { default: null },
|
|
42
|
+
multiple: { type: Boolean, default: !1 },
|
|
43
|
+
searchFrom: { default: 9 },
|
|
44
|
+
noneLabel: { default: void 0 },
|
|
45
|
+
presentation: { default: "grouped" },
|
|
46
|
+
status: { default: "loaded" }
|
|
47
|
+
},
|
|
48
|
+
emits: ["select", "retry"],
|
|
49
|
+
setup(r, { emit: l }) {
|
|
50
|
+
const e = r, d = l, { t: f } = R(), v = N(""), m = H(), h = P("root"), o = y(() => e.options.length >= e.searchFrom), x = y(() => ie(ue(e.options, v.value))), S = (p) => e.multiple ? Array.isArray(e.modelValue) && e.modelValue.includes(p.value) : e.modelValue === p.value, A = y(() => e.multiple ? !1 : e.modelValue === null);
|
|
51
|
+
function O(p) {
|
|
52
|
+
if (!["ArrowDown", "ArrowUp", "Home", "End"].includes(p.key)) return;
|
|
53
|
+
const a = [...h.value?.querySelectorAll("[data-option]:not([disabled])") ?? []];
|
|
54
|
+
if (a.length === 0) return;
|
|
55
|
+
const i = a.indexOf(document.activeElement), c = p.key === "Home" ? 0 : p.key === "End" ? a.length - 1 : p.key === "ArrowDown" ? Math.min(i + 1, a.length - 1) : Math.max(i - 1, 0);
|
|
56
|
+
p.key === "ArrowUp" && i <= 0 ? h.value?.querySelector("[data-option-search]")?.focus() : a[i === -1 && p.key === "ArrowDown" ? 0 : c]?.focus(), p.preventDefault();
|
|
57
|
+
}
|
|
58
|
+
const $ = y(() => e.presentation === "grouped"), C = y(() => e.status === "loading"), u = y(() => e.status === "failed");
|
|
59
|
+
return F(() => e.status, (p, k) => {
|
|
60
|
+
k !== "loading" || p === "loading" || I(() => {
|
|
61
|
+
const a = document.activeElement;
|
|
62
|
+
(!a || a === document.body || a.getAttribute("role") === "dialog" && !!h.value && a.contains(h.value)) && h.value?.querySelector("[data-option-search], [data-option]:not([disabled])")?.focus({ preventScroll: !0 });
|
|
63
|
+
});
|
|
64
|
+
}), (p, k) => (n(), b("div", {
|
|
65
|
+
ref_key: "root",
|
|
66
|
+
ref: h,
|
|
67
|
+
"data-test": "option-list",
|
|
68
|
+
onKeydown: O
|
|
69
|
+
}, [
|
|
70
|
+
o.value ? (n(), b("div", {
|
|
71
|
+
key: 0,
|
|
72
|
+
class: g(["sticky top-0 z-10 pb-2", $.value ? "bg-surface-page pt-1" : "bg-surface-cell"])
|
|
73
|
+
}, [
|
|
74
|
+
s("label", de, [
|
|
75
|
+
L(t(V), {
|
|
76
|
+
name: "search",
|
|
77
|
+
size: 16,
|
|
78
|
+
class: "shrink-0"
|
|
79
|
+
}),
|
|
80
|
+
j(s("input", {
|
|
81
|
+
"onUpdate:modelValue": k[0] || (k[0] = (a) => v.value = a),
|
|
82
|
+
"data-option-search": "",
|
|
83
|
+
type: "search",
|
|
84
|
+
enterkeyhint: "search",
|
|
85
|
+
autocomplete: "off",
|
|
86
|
+
autocapitalize: "off",
|
|
87
|
+
spellcheck: "false",
|
|
88
|
+
"aria-label": t(f)("core.form.select.search"),
|
|
89
|
+
placeholder: t(f)("core.form.select.search"),
|
|
90
|
+
class: "min-w-0 flex-1 border-0 bg-transparent p-0 text-body text-content-strong outline-none placeholder:text-content-disabled focus:ring-0"
|
|
91
|
+
}, null, 8, pe), [
|
|
92
|
+
[G, v.value]
|
|
93
|
+
])
|
|
94
|
+
])
|
|
95
|
+
], 2)) : _("", !0),
|
|
96
|
+
s("ul", {
|
|
97
|
+
class: g(["flex flex-col", $.value ? "gap-group-gap" : "gap-2"]),
|
|
98
|
+
role: "listbox",
|
|
99
|
+
"aria-multiselectable": e.multiple || void 0,
|
|
100
|
+
"aria-busy": C.value || void 0
|
|
101
|
+
}, [
|
|
102
|
+
e.noneLabel && v.value === "" ? (n(), b("li", fe, [
|
|
103
|
+
s("ul", {
|
|
104
|
+
role: "group",
|
|
105
|
+
class: g($.value ? "rounded-group bg-surface-cell shadow-group" : "")
|
|
106
|
+
}, [
|
|
107
|
+
s("li", {
|
|
108
|
+
role: "option",
|
|
109
|
+
"aria-selected": A.value
|
|
110
|
+
}, [
|
|
111
|
+
s("button", {
|
|
112
|
+
type: "button",
|
|
113
|
+
"data-option": "",
|
|
114
|
+
class: g(["flex min-h-row w-full cursor-pointer items-center gap-3 px-row-inset text-left text-body hover:bg-fill focus-visible:bg-fill focus-visible:outline-none active:bg-fill", [A.value ? "text-content-strong" : "text-content-muted", $.value ? "rounded-group" : "rounded-control"]]),
|
|
115
|
+
onClick: k[1] || (k[1] = (a) => d("select", null))
|
|
116
|
+
}, [
|
|
117
|
+
s("span", be, w(e.noneLabel), 1),
|
|
118
|
+
A.value ? (n(), z(t(V), {
|
|
119
|
+
key: 0,
|
|
120
|
+
name: "checkCustom",
|
|
121
|
+
size: 18,
|
|
122
|
+
class: "shrink-0 text-content-link"
|
|
123
|
+
})) : _("", !0)
|
|
124
|
+
], 2)
|
|
125
|
+
], 8, ve)
|
|
126
|
+
], 2)
|
|
127
|
+
])) : _("", !0),
|
|
128
|
+
C.value ? (n(), b("li", ge, [
|
|
129
|
+
L(t(V), {
|
|
130
|
+
name: "loader4Line",
|
|
131
|
+
size: 16,
|
|
132
|
+
class: "shrink-0 animate-spin text-content-link"
|
|
133
|
+
}),
|
|
134
|
+
s("span", he, w(t(f)("core.form.select.loading")), 1)
|
|
135
|
+
])) : u.value ? (n(), b("li", ye, [
|
|
136
|
+
s("span", xe, w(t(f)("core.form.select.load_failed")), 1),
|
|
137
|
+
s("button", {
|
|
138
|
+
type: "button",
|
|
139
|
+
"data-option": "",
|
|
140
|
+
"data-test": "options-retry",
|
|
141
|
+
class: "-ml-2 cursor-pointer rounded-control px-2 py-1 text-subheadline font-medium text-content-link hover:bg-fill focus-visible:bg-fill focus-visible:outline-none",
|
|
142
|
+
onClick: k[2] || (k[2] = (a) => d("retry"))
|
|
143
|
+
}, w(t(f)("core.actions.retry")), 1)
|
|
144
|
+
])) : _("", !0),
|
|
145
|
+
(n(!0), b(B, null, T(x.value, (a, i) => (n(), b("li", {
|
|
146
|
+
key: a.title ?? i,
|
|
147
|
+
role: "presentation"
|
|
148
|
+
}, [
|
|
149
|
+
a.title ? (n(), b("p", {
|
|
150
|
+
key: 0,
|
|
151
|
+
id: `${t(m)}-${i}`,
|
|
152
|
+
class: "px-row-inset pb-1.5 text-footnote uppercase tracking-wide text-content-muted"
|
|
153
|
+
}, w(a.title), 9, ke)) : _("", !0),
|
|
154
|
+
s("ul", {
|
|
155
|
+
role: "group",
|
|
156
|
+
"aria-labelledby": a.title ? `${t(m)}-${i}` : void 0,
|
|
157
|
+
class: g($.value ? "rounded-group bg-surface-cell shadow-group" : "")
|
|
158
|
+
}, [
|
|
159
|
+
(n(!0), b(B, null, T(a.options, (c) => (n(), b("li", {
|
|
160
|
+
key: String(c.value),
|
|
161
|
+
role: "option",
|
|
162
|
+
"aria-selected": S(c),
|
|
163
|
+
class: "group/option"
|
|
164
|
+
}, [
|
|
165
|
+
s("button", {
|
|
166
|
+
type: "button",
|
|
167
|
+
"data-option": "",
|
|
168
|
+
"data-test": "option",
|
|
169
|
+
disabled: c.disabled,
|
|
170
|
+
class: g(["flex w-full cursor-pointer items-stretch gap-3 pl-row-inset text-left text-body hover:bg-fill focus-visible:bg-fill focus-visible:outline-none active:bg-fill disabled:cursor-not-allowed disabled:opacity-45", $.value ? "group-first/option:rounded-t-group group-last/option:rounded-b-group" : "rounded-control"]),
|
|
171
|
+
onClick: (Fe) => d("select", c.value)
|
|
172
|
+
}, [
|
|
173
|
+
e.multiple ? (n(), b("span", Ce, [
|
|
174
|
+
s("span", {
|
|
175
|
+
class: g(["flex size-5.5 items-center justify-center rounded-full border", S(c) ? "border-control-on bg-control-on text-white" : "border-border-control"])
|
|
176
|
+
}, [
|
|
177
|
+
S(c) ? (n(), z(t(V), {
|
|
178
|
+
key: 0,
|
|
179
|
+
name: "checkCustom",
|
|
180
|
+
size: 12
|
|
181
|
+
})) : _("", !0)
|
|
182
|
+
], 2)
|
|
183
|
+
])) : _("", !0),
|
|
184
|
+
s("span", {
|
|
185
|
+
class: g(["flex min-h-row min-w-0 flex-1 items-center gap-3 py-2 pr-row-inset", $.value ? "border-t border-border-separator group-first/option:border-t-0" : ""])
|
|
186
|
+
}, [
|
|
187
|
+
s("span", Se, w(c.label), 1),
|
|
188
|
+
c.description ? (n(), b("span", Le, w(c.description), 1)) : _("", !0),
|
|
189
|
+
!e.multiple && S(c) ? (n(), z(t(V), {
|
|
190
|
+
key: 1,
|
|
191
|
+
name: "checkCustom",
|
|
192
|
+
size: 18,
|
|
193
|
+
class: "shrink-0 text-content-link"
|
|
194
|
+
})) : _("", !0)
|
|
195
|
+
], 2)
|
|
196
|
+
], 10, $e)
|
|
197
|
+
], 8, we))), 128))
|
|
198
|
+
], 10, _e)
|
|
199
|
+
]))), 128)),
|
|
200
|
+
x.value.length === 0 && !C.value && !u.value ? (n(), b("li", Ve, w(t(f)("core.form.select.no_matches")), 1)) : _("", !0)
|
|
201
|
+
], 10, me)
|
|
202
|
+
], 544));
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
function je(r) {
|
|
206
|
+
const l = ce(), e = r.for !== void 0;
|
|
207
|
+
let d = 0;
|
|
208
|
+
function f() {
|
|
209
|
+
const v = r.for?.();
|
|
210
|
+
if (e && v == null) {
|
|
211
|
+
l.cancel(), l.items.value = [], l.status.value = "idle";
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
l.run(
|
|
215
|
+
(m) => e ? r.load(v, { signal: m }) : r.load({ signal: m })
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
return F(
|
|
219
|
+
() => r.for?.(),
|
|
220
|
+
(v, m) => {
|
|
221
|
+
m != null && d++, f();
|
|
222
|
+
},
|
|
223
|
+
{ immediate: !0 }
|
|
224
|
+
), K(l.cancel), {
|
|
225
|
+
get status() {
|
|
226
|
+
return l.status.value;
|
|
227
|
+
},
|
|
228
|
+
get options() {
|
|
229
|
+
return l.items.value;
|
|
230
|
+
},
|
|
231
|
+
get generation() {
|
|
232
|
+
return d;
|
|
233
|
+
},
|
|
234
|
+
reload: f
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
const q = (r) => Array.isArray(r), De = [];
|
|
238
|
+
function qe(r, l) {
|
|
239
|
+
const e = y(() => {
|
|
240
|
+
const o = r();
|
|
241
|
+
return q(o) ? o : o.options;
|
|
242
|
+
}), d = y(() => {
|
|
243
|
+
const o = r();
|
|
244
|
+
return q(o) ? "loaded" : o.status;
|
|
245
|
+
}), f = y(() => d.value === "loading" || d.value === "failed" ? De : e.value), v = y(() => d.value === "loading"), m = r();
|
|
246
|
+
let h = q(m) ? 0 : m.generation;
|
|
247
|
+
return F(
|
|
248
|
+
() => {
|
|
249
|
+
const o = r();
|
|
250
|
+
return q(o) ? null : o.status === "loaded" || o.status === "idle" ? o.options : null;
|
|
251
|
+
},
|
|
252
|
+
(o) => {
|
|
253
|
+
const x = r();
|
|
254
|
+
o === null || q(x) || x.generation === h || (h = x.generation, l(o));
|
|
255
|
+
}
|
|
256
|
+
), { known: e, rows: f, status: d, loading: v, reload: () => {
|
|
257
|
+
const o = r();
|
|
258
|
+
q(o) || o.reload();
|
|
259
|
+
} };
|
|
260
|
+
}
|
|
261
|
+
const ze = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-describedby", "aria-busy"], Ae = ["id", "disabled", "aria-required", "aria-invalid", "aria-describedby", "aria-busy", "onClick"], Oe = { class: "max-h-72 overflow-y-auto" }, Ge = /* @__PURE__ */ U({
|
|
262
|
+
__name: "SelectField",
|
|
263
|
+
props: /* @__PURE__ */ X(/* @__PURE__ */ Y({
|
|
264
|
+
label: {},
|
|
265
|
+
hint: {},
|
|
266
|
+
error: {},
|
|
267
|
+
required: { type: Boolean },
|
|
268
|
+
editable: { type: Boolean },
|
|
269
|
+
disabled: { type: Boolean },
|
|
270
|
+
lockedReason: {},
|
|
271
|
+
presentation: {},
|
|
272
|
+
name: {},
|
|
273
|
+
options: {},
|
|
274
|
+
selected: {},
|
|
275
|
+
placeholder: {},
|
|
276
|
+
clearable: { type: Boolean },
|
|
277
|
+
searchFrom: {}
|
|
278
|
+
}, { ...re, selected: null, placeholder: void 0, clearable: !1, searchFrom: 9 }), {
|
|
279
|
+
modelValue: { default: null },
|
|
280
|
+
modelModifiers: {}
|
|
281
|
+
}),
|
|
282
|
+
emits: ["update:modelValue"],
|
|
283
|
+
setup(r) {
|
|
284
|
+
const l = r, e = W(r, "modelValue"), { t: d } = R(), f = ee(), v = !!le(), m = P("sheet"), h = N(!1), o = qe(() => l.options, (C) => {
|
|
285
|
+
e.value !== null && !C.some((u) => u.value === e.value) && (e.value = null);
|
|
286
|
+
}), x = y(() => o.known.value.find((C) => C.value === e.value) ?? (l.selected?.value === e.value ? l.selected : null)), S = y(() => l.placeholder ?? d("core.form.select.choose")), A = ae("popup", () => l.error ? "error" : l.disabled ? "locked" : "rest");
|
|
287
|
+
function O(C) {
|
|
288
|
+
e.value = C, m.value?.dismiss();
|
|
289
|
+
}
|
|
290
|
+
const $ = y(() => [
|
|
291
|
+
"flex max-w-full min-w-0 items-center gap-1.5 py-1 pl-2.5 pr-2 text-body focus-visible:outline-none",
|
|
292
|
+
v ? "compact:pl-0 compact:pr-0" : "",
|
|
293
|
+
l.disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
294
|
+
]);
|
|
295
|
+
return (C, u) => (n(), z(ne, E(t(se)(l), {
|
|
296
|
+
value: x.value?.label ?? null
|
|
297
|
+
}), {
|
|
298
|
+
default: D(({ id: p, describedby: k, invalid: a }) => [
|
|
299
|
+
s("div", {
|
|
300
|
+
class: g(["inline-flex max-w-full min-w-0", t(A)])
|
|
301
|
+
}, [
|
|
302
|
+
t(f) ? (n(), b("button", {
|
|
303
|
+
key: 0,
|
|
304
|
+
id: p,
|
|
305
|
+
type: "button",
|
|
306
|
+
disabled: l.disabled,
|
|
307
|
+
"aria-haspopup": "dialog",
|
|
308
|
+
"aria-expanded": h.value,
|
|
309
|
+
"aria-required": l.required || void 0,
|
|
310
|
+
"aria-invalid": a || void 0,
|
|
311
|
+
"aria-describedby": k,
|
|
312
|
+
"aria-busy": t(o).loading.value || void 0,
|
|
313
|
+
class: g($.value),
|
|
314
|
+
onClick: u[0] || (u[0] = (i) => m.value?.present())
|
|
315
|
+
}, [
|
|
316
|
+
s("span", {
|
|
317
|
+
class: g(["min-w-0 truncate", x.value ? v ? "text-content-strong compact:text-content-muted" : "text-content-strong" : "text-content-disabled"])
|
|
318
|
+
}, w(x.value?.label ?? S.value), 3),
|
|
319
|
+
L(t(V), {
|
|
320
|
+
name: t(o).loading.value ? "loader4Line" : "expandUpDownLine",
|
|
321
|
+
size: 14,
|
|
322
|
+
class: g(["shrink-0 text-content-muted", t(o).loading.value ? "animate-spin" : ""])
|
|
323
|
+
}, null, 8, ["name", "class"])
|
|
324
|
+
], 10, ze)) : (n(), z(oe, {
|
|
325
|
+
key: 1,
|
|
326
|
+
label: l.label ?? S.value,
|
|
327
|
+
width: "md",
|
|
328
|
+
"match-trigger-width": "",
|
|
329
|
+
placement: "bottom-start",
|
|
330
|
+
arrow: !1
|
|
331
|
+
}, {
|
|
332
|
+
trigger: D(({ toggle: i, attrs: c }) => [
|
|
333
|
+
s("button", E({
|
|
334
|
+
id: p,
|
|
335
|
+
type: "button"
|
|
336
|
+
}, c, {
|
|
337
|
+
"aria-haspopup": "listbox",
|
|
338
|
+
disabled: l.disabled,
|
|
339
|
+
"aria-required": l.required || void 0,
|
|
340
|
+
"aria-invalid": a || void 0,
|
|
341
|
+
"aria-describedby": k,
|
|
342
|
+
"aria-busy": t(o).loading.value || void 0,
|
|
343
|
+
class: $.value,
|
|
344
|
+
onClick: i
|
|
345
|
+
}), [
|
|
346
|
+
s("span", {
|
|
347
|
+
class: g(["min-w-0 truncate", x.value ? "text-content-strong" : "text-content-disabled"])
|
|
348
|
+
}, w(x.value?.label ?? S.value), 3),
|
|
349
|
+
L(t(V), {
|
|
350
|
+
name: t(o).loading.value ? "loader4Line" : "expandUpDownLine",
|
|
351
|
+
size: 14,
|
|
352
|
+
class: g(["shrink-0 text-content-muted", t(o).loading.value ? "animate-spin" : ""])
|
|
353
|
+
}, null, 8, ["name", "class"])
|
|
354
|
+
], 16, Ae)
|
|
355
|
+
]),
|
|
356
|
+
default: D(({ dismiss: i }) => [
|
|
357
|
+
s("div", Oe, [
|
|
358
|
+
L(M, {
|
|
359
|
+
options: t(o).rows.value,
|
|
360
|
+
status: t(o).status.value,
|
|
361
|
+
"model-value": e.value,
|
|
362
|
+
"search-from": l.searchFrom,
|
|
363
|
+
"none-label": l.clearable ? t(d)("core.form.select.clear") : void 0,
|
|
364
|
+
presentation: "plain",
|
|
365
|
+
onSelect: (c) => {
|
|
366
|
+
e.value = c, i();
|
|
367
|
+
},
|
|
368
|
+
onRetry: u[1] || (u[1] = (c) => t(o).reload())
|
|
369
|
+
}, null, 8, ["options", "status", "model-value", "search-from", "none-label", "onSelect"])
|
|
370
|
+
])
|
|
371
|
+
]),
|
|
372
|
+
_: 2
|
|
373
|
+
}, 1032, ["label"]))
|
|
374
|
+
], 2),
|
|
375
|
+
t(f) ? (n(), z(te, {
|
|
376
|
+
key: 0,
|
|
377
|
+
ref_key: "sheet",
|
|
378
|
+
ref: m,
|
|
379
|
+
title: l.label ?? S.value,
|
|
380
|
+
grouped: "",
|
|
381
|
+
onPresented: u[4] || (u[4] = (i) => h.value = !0),
|
|
382
|
+
onDismissed: u[5] || (u[5] = (i) => h.value = !1)
|
|
383
|
+
}, J({
|
|
384
|
+
default: D(() => [
|
|
385
|
+
L(M, {
|
|
386
|
+
options: t(o).rows.value,
|
|
387
|
+
status: t(o).status.value,
|
|
388
|
+
"model-value": e.value,
|
|
389
|
+
"search-from": l.searchFrom,
|
|
390
|
+
"none-label": l.clearable ? t(d)("core.form.select.clear") : void 0,
|
|
391
|
+
onSelect: O,
|
|
392
|
+
onRetry: u[2] || (u[2] = (i) => t(o).reload())
|
|
393
|
+
}, null, 8, ["options", "status", "model-value", "search-from", "none-label"])
|
|
394
|
+
]),
|
|
395
|
+
_: 2
|
|
396
|
+
}, [
|
|
397
|
+
l.clearable && e.value !== null ? {
|
|
398
|
+
name: "footer",
|
|
399
|
+
fn: D(() => [
|
|
400
|
+
L(Z, {
|
|
401
|
+
prominence: "plain",
|
|
402
|
+
onClick: u[3] || (u[3] = (i) => O(null))
|
|
403
|
+
}, {
|
|
404
|
+
default: D(() => [
|
|
405
|
+
Q(w(t(d)("core.form.select.clear")), 1)
|
|
406
|
+
]),
|
|
407
|
+
_: 1
|
|
408
|
+
})
|
|
409
|
+
]),
|
|
410
|
+
key: "0"
|
|
411
|
+
} : void 0
|
|
412
|
+
]), 1032, ["title"])) : _("", !0)
|
|
413
|
+
]),
|
|
414
|
+
_: 1
|
|
415
|
+
}, 16, ["value"]));
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
export {
|
|
419
|
+
Ge as _,
|
|
420
|
+
M as a,
|
|
421
|
+
je as b,
|
|
422
|
+
qe as u
|
|
423
|
+
};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { defineComponent as g, openBlock as n, createBlock as i, unref as t, withCtx as a, createCommentVNode as r, createElementBlock as d, Fragment as x, renderList as v, createSlots as w, createElementVNode as l, toDisplayString as s, createTextVNode as m, createVNode as u } from "vue";
|
|
2
|
+
import { useI18n as $ } from "vue-i18n";
|
|
3
|
+
import { _ as C } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
|
|
4
|
+
import { _ as B } from "./IconTile.vue_vue_type_script_setup_true_lang-BpIjgu5E.js";
|
|
5
|
+
import { u as E } from "./format-B8mJm946.js";
|
|
6
|
+
import { _ as N } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
|
|
7
|
+
import { e as f } from "./control-7EP4tjYy.js";
|
|
8
|
+
import { _ as y } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
9
|
+
const V = { class: "flex flex-wrap items-center gap-x-1.5 gap-y-0.5" }, L = {
|
|
10
|
+
key: 0,
|
|
11
|
+
class: "font-mono"
|
|
12
|
+
}, S = {
|
|
13
|
+
key: 1,
|
|
14
|
+
"aria-hidden": "true"
|
|
15
|
+
}, T = {
|
|
16
|
+
key: 0,
|
|
17
|
+
class: "mt-1 flex flex-wrap gap-1"
|
|
18
|
+
}, K = /* @__PURE__ */ g({
|
|
19
|
+
__name: "SessionList",
|
|
20
|
+
props: {
|
|
21
|
+
sessions: {},
|
|
22
|
+
canEnd: { type: Boolean },
|
|
23
|
+
header: {},
|
|
24
|
+
footer: {}
|
|
25
|
+
},
|
|
26
|
+
emits: ["end"],
|
|
27
|
+
setup(h, { emit: k }) {
|
|
28
|
+
const c = h, b = k, { t: o } = $(), p = E();
|
|
29
|
+
return (F, _) => (n(), i(t(N), {
|
|
30
|
+
header: c.header,
|
|
31
|
+
footer: c.footer
|
|
32
|
+
}, {
|
|
33
|
+
default: a(() => [
|
|
34
|
+
c.sessions.length === 0 ? (n(), i(t(f), {
|
|
35
|
+
key: 0,
|
|
36
|
+
layout: "setting",
|
|
37
|
+
label: t(o)("core.account.sessions.empty")
|
|
38
|
+
}, null, 8, ["label"])) : r("", !0),
|
|
39
|
+
(n(!0), d(x, null, v(c.sessions, (e) => (n(), i(t(f), {
|
|
40
|
+
key: e.id,
|
|
41
|
+
layout: "setting",
|
|
42
|
+
label: e.device || t(o)("core.account.sessions.unknown_device"),
|
|
43
|
+
"data-session": e.id
|
|
44
|
+
}, w({
|
|
45
|
+
leading: a(() => [
|
|
46
|
+
u(t(B), {
|
|
47
|
+
tone: "anchor",
|
|
48
|
+
icon: "deviceLine"
|
|
49
|
+
})
|
|
50
|
+
]),
|
|
51
|
+
sub: a(() => [
|
|
52
|
+
l("span", V, [
|
|
53
|
+
e.ip ? (n(), d("span", L, s(e.ip), 1)) : r("", !0),
|
|
54
|
+
e.ip ? (n(), d("span", S, "·")) : r("", !0),
|
|
55
|
+
l("span", null, s(t(o)("core.account.sessions.last_active", { when: t(p).dateTime(e.last_used_at) })), 1),
|
|
56
|
+
_[0] || (_[0] = l("span", { "aria-hidden": "true" }, "·", -1)),
|
|
57
|
+
l("span", null, s(t(o)("core.account.sessions.expires", { when: t(p).dateTime(e.expires_at) })), 1)
|
|
58
|
+
]),
|
|
59
|
+
e.current || e.opened_by ? (n(), d("span", T, [
|
|
60
|
+
e.current ? (n(), i(t(y), {
|
|
61
|
+
key: 0,
|
|
62
|
+
tone: "positive",
|
|
63
|
+
dot: "",
|
|
64
|
+
"data-session-current": ""
|
|
65
|
+
}, {
|
|
66
|
+
default: a(() => [
|
|
67
|
+
m(s(t(o)("core.account.sessions.this_device")), 1)
|
|
68
|
+
]),
|
|
69
|
+
_: 1
|
|
70
|
+
})) : r("", !0),
|
|
71
|
+
e.opened_by ? (n(), i(t(y), {
|
|
72
|
+
key: 1,
|
|
73
|
+
tone: "warning",
|
|
74
|
+
"data-session-opened-by": ""
|
|
75
|
+
}, {
|
|
76
|
+
default: a(() => [
|
|
77
|
+
m(s(e.opened_by.name ? t(o)("core.account.sessions.opened_by", { name: e.opened_by.name }) : t(o)("core.account.sessions.opened_by_other")), 1)
|
|
78
|
+
]),
|
|
79
|
+
_: 2
|
|
80
|
+
}, 1024)) : r("", !0)
|
|
81
|
+
])) : r("", !0)
|
|
82
|
+
]),
|
|
83
|
+
_: 2
|
|
84
|
+
}, [
|
|
85
|
+
c.canEnd && !e.current ? {
|
|
86
|
+
name: "trailing",
|
|
87
|
+
fn: a(() => [
|
|
88
|
+
u(t(C), {
|
|
89
|
+
prominence: "plain",
|
|
90
|
+
tone: "critical",
|
|
91
|
+
size: "sm",
|
|
92
|
+
"data-end-session": e.id,
|
|
93
|
+
onClick: (z) => b("end", e)
|
|
94
|
+
}, {
|
|
95
|
+
default: a(() => [
|
|
96
|
+
m(s(t(o)("core.account.sessions.end")), 1)
|
|
97
|
+
]),
|
|
98
|
+
_: 1
|
|
99
|
+
}, 8, ["data-end-session", "onClick"])
|
|
100
|
+
]),
|
|
101
|
+
key: "0"
|
|
102
|
+
} : void 0
|
|
103
|
+
]), 1032, ["label", "data-session"]))), 128))
|
|
104
|
+
]),
|
|
105
|
+
_: 1
|
|
106
|
+
}, 8, ["header", "footer"]));
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
export {
|
|
110
|
+
K as _
|
|
111
|
+
};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { defineComponent as x, useTemplateRef as v, computed as w, ref as $, openBlock as E, createElementBlock as P, createVNode as t, unref as e, createSlots as h, withCtx as u, createTextVNode as B, toDisplayString as C } from "vue";
|
|
2
|
+
import { useI18n as N } from "vue-i18n";
|
|
3
|
+
import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
|
|
4
|
+
import { u as A } from "./describeError-Ctga6GcS.js";
|
|
5
|
+
import { P as D, b as L, e as O, i as g, d as T } from "./index-CGv-u1Ws.js";
|
|
6
|
+
import { _ as k } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
|
|
7
|
+
import { t as b } from "./toast-D9Z5To38.js";
|
|
8
|
+
import { u as V } from "./platform-q3cjODLx.js";
|
|
9
|
+
import { b as I } from "./routeResource-DstM0hvf.js";
|
|
10
|
+
import { _ as j } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
|
|
11
|
+
import { _ as z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
|
|
12
|
+
import { _ as F } from "./SessionList.vue_vue_type_script_setup_true_lang-D5KRitar.js";
|
|
13
|
+
const G = {
|
|
14
|
+
class: "flex min-w-0 flex-col gap-group-gap",
|
|
15
|
+
"data-person-sessions": ""
|
|
16
|
+
}, ne = /* @__PURE__ */ x({
|
|
17
|
+
__name: "Sessions",
|
|
18
|
+
setup(H) {
|
|
19
|
+
const { t: s } = N(), { http: d } = V(), y = A(), r = I(D), c = L(), i = O(), m = v("one"), f = v("all"), l = w(() => i.data.value?.sessions ?? []);
|
|
20
|
+
async function _(a, o) {
|
|
21
|
+
try {
|
|
22
|
+
await a(), b.success(o);
|
|
23
|
+
} catch (n) {
|
|
24
|
+
T(n) || b.error(y(n, { fallback: s("core.account.sessions.end_failed") }));
|
|
25
|
+
}
|
|
26
|
+
await i.reload();
|
|
27
|
+
}
|
|
28
|
+
const S = (a) => _(() => d.request(g.usersRevokeSession, { id: r.id.value ?? 0, session_id: a.id }), s("core.account.sessions.ended")), R = () => _(() => d.request(g.usersRevokeSessions, { id: r.id.value ?? 0 }), s("core.users.sessions.ended_all")), p = $(null);
|
|
29
|
+
return (a, o) => (E(), P("div", G, [
|
|
30
|
+
t(z, {
|
|
31
|
+
title: e(s)("core.users.sections.sessions"),
|
|
32
|
+
description: e(s)("core.users.intro.sessions", { name: e(r).data.value?.name ?? "" })
|
|
33
|
+
}, h({ _: 2 }, [
|
|
34
|
+
e(c).can.endSessions && l.value.length > 0 ? {
|
|
35
|
+
name: "actions",
|
|
36
|
+
fn: u(() => [
|
|
37
|
+
t(e(q), {
|
|
38
|
+
prominence: "plain",
|
|
39
|
+
tone: "critical",
|
|
40
|
+
"data-end-all": "",
|
|
41
|
+
onClick: o[0] || (o[0] = (n) => f.value?.present())
|
|
42
|
+
}, {
|
|
43
|
+
default: u(() => [
|
|
44
|
+
B(C(e(s)("core.users.sessions.end_all")), 1)
|
|
45
|
+
]),
|
|
46
|
+
_: 1
|
|
47
|
+
})
|
|
48
|
+
]),
|
|
49
|
+
key: "0"
|
|
50
|
+
} : void 0
|
|
51
|
+
]), 1032, ["title", "description"]),
|
|
52
|
+
t(e(j), {
|
|
53
|
+
state: e(i).state.value,
|
|
54
|
+
"skeleton-rows": 3,
|
|
55
|
+
"is-empty": () => !1,
|
|
56
|
+
onRetry: o[2] || (o[2] = (n) => e(i).reload())
|
|
57
|
+
}, {
|
|
58
|
+
default: u(() => [
|
|
59
|
+
t(F, {
|
|
60
|
+
sessions: l.value,
|
|
61
|
+
"can-end": e(c).can.endSessions,
|
|
62
|
+
header: e(s)("core.users.sessions.header", { n: l.value.length }),
|
|
63
|
+
footer: e(c).can.endSessions ? e(s)("core.users.sessions.footer") : e(s)("core.users.sessions.own_footer"),
|
|
64
|
+
onEnd: o[1] || (o[1] = (n) => {
|
|
65
|
+
p.value = n, m.value?.present(n);
|
|
66
|
+
})
|
|
67
|
+
}, null, 8, ["sessions", "can-end", "header", "footer"])
|
|
68
|
+
]),
|
|
69
|
+
_: 1
|
|
70
|
+
}, 8, ["state"]),
|
|
71
|
+
t(e(k), {
|
|
72
|
+
ref_key: "one",
|
|
73
|
+
ref: m,
|
|
74
|
+
tone: "critical",
|
|
75
|
+
icon: "logoutBoxRLine",
|
|
76
|
+
title: e(s)("core.account.sessions.end_title"),
|
|
77
|
+
message: e(s)("core.account.sessions.end_body", { device: p.value?.device || e(s)("core.account.sessions.unknown_device") }),
|
|
78
|
+
"confirm-label": e(s)("core.account.sessions.end"),
|
|
79
|
+
action: S
|
|
80
|
+
}, null, 8, ["title", "message", "confirm-label"]),
|
|
81
|
+
t(e(k), {
|
|
82
|
+
ref_key: "all",
|
|
83
|
+
ref: f,
|
|
84
|
+
tone: "critical",
|
|
85
|
+
icon: "logoutBoxRLine",
|
|
86
|
+
title: e(s)("core.users.sessions.end_all_title"),
|
|
87
|
+
message: e(s)("core.users.sessions.end_all_body", { name: e(r).data.value?.name ?? "" }),
|
|
88
|
+
"confirm-label": e(s)("core.users.sessions.end_all"),
|
|
89
|
+
action: R
|
|
90
|
+
}, null, 8, ["title", "message", "confirm-label"])
|
|
91
|
+
]));
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
export {
|
|
95
|
+
ne as default
|
|
96
|
+
};
|