@xleddyl/nuxt-cms 0.4.4 → 0.5.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 +1 -1
- package/dist/module.json +1 -1
- package/dist/module.mjs +22 -7
- package/dist/runtime/app/components/cms/BlockOutline.vue +56 -67
- package/dist/runtime/app/components/cms/BlockPalette.vue +3 -1
- package/dist/runtime/app/components/cms/BlocksField.vue +155 -149
- package/dist/runtime/app/components/cms/BrandMark.d.vue.ts +3 -1
- package/dist/runtime/app/components/cms/BrandMark.vue +24 -25
- package/dist/runtime/app/components/cms/BrandMark.vue.d.ts +3 -1
- package/dist/runtime/app/components/cms/{Checkbox.d.vue.ts → ConfirmGroups.d.vue.ts} +4 -4
- package/dist/runtime/app/components/cms/ConfirmGroups.vue +22 -0
- package/dist/runtime/app/components/cms/{Checkbox.vue.d.ts → ConfirmGroups.vue.d.ts} +4 -4
- package/dist/runtime/app/components/cms/EntryDrawer.d.vue.ts +2 -2
- package/dist/runtime/app/components/cms/EntryDrawer.vue +62 -47
- package/dist/runtime/app/components/cms/EntryDrawer.vue.d.ts +2 -2
- package/dist/runtime/app/components/cms/EntryForm.vue +100 -95
- package/dist/runtime/app/components/cms/FieldInput.vue +56 -32
- package/dist/runtime/app/components/cms/ImportModal.d.vue.ts +2 -2
- package/dist/runtime/app/components/cms/ImportModal.vue +80 -79
- package/dist/runtime/app/components/cms/ImportModal.vue.d.ts +2 -2
- package/dist/runtime/app/components/cms/JsonField.vue +17 -8
- package/dist/runtime/app/components/cms/ListFilters.vue +54 -63
- package/dist/runtime/app/components/cms/LocaleSwitch.vue +21 -18
- package/dist/runtime/app/components/cms/MediaDetail.vue +110 -72
- package/dist/runtime/app/components/cms/MediaField.vue +37 -29
- package/dist/runtime/app/components/cms/MediaFolderPicker.d.vue.ts +1 -0
- package/dist/runtime/app/components/cms/MediaFolderPicker.vue +77 -49
- package/dist/runtime/app/components/cms/MediaFolderPicker.vue.d.ts +1 -0
- package/dist/runtime/app/components/cms/MediaGallery.vue +300 -323
- package/dist/runtime/app/components/cms/MediaThumb.vue +7 -2
- package/dist/runtime/app/components/cms/MediaUpload.vue +37 -70
- package/dist/runtime/app/components/cms/RelationField.vue +23 -71
- package/dist/runtime/app/components/cms/RichTextField.vue +23 -177
- package/dist/runtime/app/components/cms/SettingsAccount.vue +96 -104
- package/dist/runtime/app/components/cms/SettingsColumns.vue +7 -6
- package/dist/runtime/app/components/cms/SettingsEntry.d.vue.ts +10 -1
- package/dist/runtime/app/components/cms/SettingsEntry.vue +35 -52
- package/dist/runtime/app/components/cms/SettingsEntry.vue.d.ts +10 -1
- package/dist/runtime/app/components/cms/SettingsLayout.vue +7 -4
- package/dist/runtime/app/components/cms/SettingsModal.d.vue.ts +0 -4
- package/dist/runtime/app/components/cms/SettingsModal.vue +102 -151
- package/dist/runtime/app/components/cms/SettingsModal.vue.d.ts +0 -4
- package/dist/runtime/app/components/cms/SettingsUsers.d.vue.ts +8 -1
- package/dist/runtime/app/components/cms/SettingsUsers.vue +182 -189
- package/dist/runtime/app/components/cms/SettingsUsers.vue.d.ts +8 -1
- package/dist/runtime/app/components/cms/SlugField.vue +9 -6
- package/dist/runtime/app/components/cms/StatusBadge.vue +7 -6
- package/dist/runtime/app/components/cms/TranslatableField.vue +11 -6
- package/dist/runtime/app/components/cms/VisualEditor.vue +243 -282
- package/dist/runtime/app/components/cms/WelcomeModal.vue +49 -41
- package/dist/runtime/app/composables/cms-confirm.d.ts +0 -6
- package/dist/runtime/app/composables/cms-confirm.js +13 -13
- package/dist/runtime/app/composables/cms-media-uploader.d.ts +4 -0
- package/dist/runtime/app/composables/cms-media-uploader.js +12 -40
- package/dist/runtime/app/composables/cms-theme.d.ts +3 -9
- package/dist/runtime/app/composables/cms-theme.js +1 -19
- package/dist/runtime/app/composables/cms-toast.d.ts +3 -4
- package/dist/runtime/app/composables/cms-toast.js +6 -13
- package/dist/runtime/app/layouts/cms-admin.d.vue.ts +2 -2
- package/dist/runtime/app/layouts/cms-admin.vue +184 -113
- package/dist/runtime/app/layouts/cms-admin.vue.d.ts +2 -2
- package/dist/runtime/app/layouts/cms-editor.d.vue.ts +2 -2
- package/dist/runtime/app/layouts/cms-editor.vue +9 -4
- package/dist/runtime/app/layouts/cms-editor.vue.d.ts +2 -2
- package/dist/runtime/app/pages/admin-collection.vue +178 -143
- package/dist/runtime/app/pages/admin-content.vue +35 -30
- package/dist/runtime/app/pages/admin-entry.vue +14 -9
- package/dist/runtime/app/pages/admin-login.vue +57 -54
- package/dist/runtime/app/pages/admin-media.vue +6 -4
- package/dist/runtime/app/pages/admin-preview.vue +3 -2
- package/dist/runtime/app/preview/PreviewOverlay.vue +9 -7
- package/dist/runtime/app/utils/ui.d.ts +1 -3
- package/dist/runtime/app/utils/ui.js +4 -2
- package/dist/runtime/assets/editor.css +1 -0
- package/dist/runtime/assets/main.css +1 -1
- package/dist/runtime/assets/media.css +1 -0
- package/dist/runtime/assets/shell.css +1 -0
- package/package.json +9 -8
- package/dist/runtime/app/components/cms/Alert.d.vue.ts +0 -17
- package/dist/runtime/app/components/cms/Alert.vue +0 -13
- package/dist/runtime/app/components/cms/Alert.vue.d.ts +0 -17
- package/dist/runtime/app/components/cms/Button.d.vue.ts +0 -26
- package/dist/runtime/app/components/cms/Button.vue +0 -48
- package/dist/runtime/app/components/cms/Button.vue.d.ts +0 -26
- package/dist/runtime/app/components/cms/Checkbox.vue +0 -21
- package/dist/runtime/app/components/cms/ConfirmModal.d.vue.ts +0 -3
- package/dist/runtime/app/components/cms/ConfirmModal.vue +0 -46
- package/dist/runtime/app/components/cms/ConfirmModal.vue.d.ts +0 -3
- package/dist/runtime/app/components/cms/Drawer.d.vue.ts +0 -30
- package/dist/runtime/app/components/cms/Drawer.vue +0 -61
- package/dist/runtime/app/components/cms/Drawer.vue.d.ts +0 -30
- package/dist/runtime/app/components/cms/DropdownMenu.d.vue.ts +0 -26
- package/dist/runtime/app/components/cms/DropdownMenu.vue +0 -48
- package/dist/runtime/app/components/cms/DropdownMenu.vue.d.ts +0 -26
- package/dist/runtime/app/components/cms/EmptyState.d.vue.ts +0 -19
- package/dist/runtime/app/components/cms/EmptyState.vue +0 -21
- package/dist/runtime/app/components/cms/EmptyState.vue.d.ts +0 -19
- package/dist/runtime/app/components/cms/Form.d.vue.ts +0 -37
- package/dist/runtime/app/components/cms/Form.vue +0 -63
- package/dist/runtime/app/components/cms/Form.vue.d.ts +0 -37
- package/dist/runtime/app/components/cms/FormField.d.vue.ts +0 -22
- package/dist/runtime/app/components/cms/FormField.vue +0 -35
- package/dist/runtime/app/components/cms/FormField.vue.d.ts +0 -22
- package/dist/runtime/app/components/cms/Icon.d.vue.ts +0 -6
- package/dist/runtime/app/components/cms/Icon.vue +0 -23
- package/dist/runtime/app/components/cms/Icon.vue.d.ts +0 -6
- package/dist/runtime/app/components/cms/Input.d.vue.ts +0 -27
- package/dist/runtime/app/components/cms/Input.vue +0 -46
- package/dist/runtime/app/components/cms/Input.vue.d.ts +0 -27
- package/dist/runtime/app/components/cms/Modal.d.vue.ts +0 -31
- package/dist/runtime/app/components/cms/Modal.vue +0 -49
- package/dist/runtime/app/components/cms/Modal.vue.d.ts +0 -31
- package/dist/runtime/app/components/cms/PageHeader.d.vue.ts +0 -25
- package/dist/runtime/app/components/cms/PageHeader.vue +0 -36
- package/dist/runtime/app/components/cms/PageHeader.vue.d.ts +0 -25
- package/dist/runtime/app/components/cms/Pagination.d.vue.ts +0 -15
- package/dist/runtime/app/components/cms/Pagination.vue +0 -51
- package/dist/runtime/app/components/cms/Pagination.vue.d.ts +0 -15
- package/dist/runtime/app/components/cms/PasswordInput.d.vue.ts +0 -17
- package/dist/runtime/app/components/cms/PasswordInput.vue +0 -81
- package/dist/runtime/app/components/cms/PasswordInput.vue.d.ts +0 -17
- package/dist/runtime/app/components/cms/Popover.d.vue.ts +0 -22
- package/dist/runtime/app/components/cms/Popover.vue +0 -27
- package/dist/runtime/app/components/cms/Popover.vue.d.ts +0 -22
- package/dist/runtime/app/components/cms/Search.d.vue.ts +0 -7
- package/dist/runtime/app/components/cms/Search.vue +0 -347
- package/dist/runtime/app/components/cms/Search.vue.d.ts +0 -7
- package/dist/runtime/app/components/cms/SelectMenu.d.vue.ts +0 -25
- package/dist/runtime/app/components/cms/SelectMenu.vue +0 -152
- package/dist/runtime/app/components/cms/SelectMenu.vue.d.ts +0 -25
- package/dist/runtime/app/components/cms/Spinner.d.vue.ts +0 -3
- package/dist/runtime/app/components/cms/Spinner.vue +0 -5
- package/dist/runtime/app/components/cms/Spinner.vue.d.ts +0 -3
- package/dist/runtime/app/components/cms/Switch.d.vue.ts +0 -10
- package/dist/runtime/app/components/cms/Switch.vue +0 -14
- package/dist/runtime/app/components/cms/Switch.vue.d.ts +0 -10
- package/dist/runtime/app/components/cms/Table.d.vue.ts +0 -51
- package/dist/runtime/app/components/cms/Table.vue +0 -115
- package/dist/runtime/app/components/cms/Table.vue.d.ts +0 -51
- package/dist/runtime/app/components/cms/Textarea.d.vue.ts +0 -15
- package/dist/runtime/app/components/cms/Textarea.vue +0 -16
- package/dist/runtime/app/components/cms/Textarea.vue.d.ts +0 -15
- package/dist/runtime/app/components/cms/Toaster.d.vue.ts +0 -3
- package/dist/runtime/app/components/cms/Toaster.vue +0 -48
- package/dist/runtime/app/components/cms/Toaster.vue.d.ts +0 -3
- package/dist/runtime/app/composables/cms-overlay.d.ts +0 -4
- package/dist/runtime/app/composables/cms-overlay.js +0 -23
- package/dist/runtime/assets/svg/academic-cap.svg +0 -3
- package/dist/runtime/assets/svg/adjustments-horizontal.svg +0 -3
- package/dist/runtime/assets/svg/adjustments-vertical.svg +0 -3
- package/dist/runtime/assets/svg/archive-box-arrow-down.svg +0 -3
- package/dist/runtime/assets/svg/archive-box-x-mark.svg +0 -3
- package/dist/runtime/assets/svg/archive-box.svg +0 -3
- package/dist/runtime/assets/svg/arrow-down-circle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-down-left.svg +0 -3
- package/dist/runtime/assets/svg/arrow-down-on-square-stack.svg +0 -3
- package/dist/runtime/assets/svg/arrow-down-on-square.svg +0 -3
- package/dist/runtime/assets/svg/arrow-down-right.svg +0 -3
- package/dist/runtime/assets/svg/arrow-down-tray.svg +0 -3
- package/dist/runtime/assets/svg/arrow-down.svg +0 -3
- package/dist/runtime/assets/svg/arrow-left-circle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-left-end-on-rectangle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-left-on-rectangle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-left-start-on-rectangle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-left.svg +0 -3
- package/dist/runtime/assets/svg/arrow-long-down.svg +0 -3
- package/dist/runtime/assets/svg/arrow-long-left.svg +0 -3
- package/dist/runtime/assets/svg/arrow-long-right.svg +0 -3
- package/dist/runtime/assets/svg/arrow-long-up.svg +0 -3
- package/dist/runtime/assets/svg/arrow-path-rounded-square.svg +0 -3
- package/dist/runtime/assets/svg/arrow-path.svg +0 -3
- package/dist/runtime/assets/svg/arrow-right-circle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-right-end-on-rectangle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-right-on-rectangle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-right-start-on-rectangle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-right.svg +0 -3
- package/dist/runtime/assets/svg/arrow-small-down.svg +0 -3
- package/dist/runtime/assets/svg/arrow-small-left.svg +0 -3
- package/dist/runtime/assets/svg/arrow-small-right.svg +0 -3
- package/dist/runtime/assets/svg/arrow-small-up.svg +0 -3
- package/dist/runtime/assets/svg/arrow-top-right-on-square.svg +0 -3
- package/dist/runtime/assets/svg/arrow-trending-down.svg +0 -3
- package/dist/runtime/assets/svg/arrow-trending-up.svg +0 -3
- package/dist/runtime/assets/svg/arrow-turn-down-left.svg +0 -3
- package/dist/runtime/assets/svg/arrow-turn-down-right.svg +0 -3
- package/dist/runtime/assets/svg/arrow-turn-left-down.svg +0 -3
- package/dist/runtime/assets/svg/arrow-turn-left-up.svg +0 -3
- package/dist/runtime/assets/svg/arrow-turn-right-down.svg +0 -3
- package/dist/runtime/assets/svg/arrow-turn-right-up.svg +0 -3
- package/dist/runtime/assets/svg/arrow-turn-up-left.svg +0 -3
- package/dist/runtime/assets/svg/arrow-turn-up-right.svg +0 -3
- package/dist/runtime/assets/svg/arrow-up-circle.svg +0 -3
- package/dist/runtime/assets/svg/arrow-up-left.svg +0 -3
- package/dist/runtime/assets/svg/arrow-up-on-square-stack.svg +0 -3
- package/dist/runtime/assets/svg/arrow-up-on-square.svg +0 -3
- package/dist/runtime/assets/svg/arrow-up-right.svg +0 -3
- package/dist/runtime/assets/svg/arrow-up-tray.svg +0 -3
- package/dist/runtime/assets/svg/arrow-up.svg +0 -3
- package/dist/runtime/assets/svg/arrow-uturn-down.svg +0 -3
- package/dist/runtime/assets/svg/arrow-uturn-left.svg +0 -3
- package/dist/runtime/assets/svg/arrow-uturn-right.svg +0 -3
- package/dist/runtime/assets/svg/arrow-uturn-up.svg +0 -3
- package/dist/runtime/assets/svg/arrows-pointing-in.svg +0 -3
- package/dist/runtime/assets/svg/arrows-pointing-out.svg +0 -3
- package/dist/runtime/assets/svg/arrows-right-left.svg +0 -3
- package/dist/runtime/assets/svg/arrows-up-down.svg +0 -3
- package/dist/runtime/assets/svg/at-symbol.svg +0 -3
- package/dist/runtime/assets/svg/backspace.svg +0 -3
- package/dist/runtime/assets/svg/backward.svg +0 -3
- package/dist/runtime/assets/svg/banknotes.svg +0 -3
- package/dist/runtime/assets/svg/bars-2.svg +0 -3
- package/dist/runtime/assets/svg/bars-3-bottom-left.svg +0 -3
- package/dist/runtime/assets/svg/bars-3-bottom-right.svg +0 -3
- package/dist/runtime/assets/svg/bars-3-center-left.svg +0 -3
- package/dist/runtime/assets/svg/bars-3.svg +0 -3
- package/dist/runtime/assets/svg/bars-4.svg +0 -3
- package/dist/runtime/assets/svg/bars-arrow-down.svg +0 -3
- package/dist/runtime/assets/svg/bars-arrow-up.svg +0 -3
- package/dist/runtime/assets/svg/battery-0.svg +0 -3
- package/dist/runtime/assets/svg/battery-100.svg +0 -3
- package/dist/runtime/assets/svg/battery-50.svg +0 -3
- package/dist/runtime/assets/svg/beaker.svg +0 -3
- package/dist/runtime/assets/svg/bell-alert.svg +0 -3
- package/dist/runtime/assets/svg/bell-slash.svg +0 -3
- package/dist/runtime/assets/svg/bell-snooze.svg +0 -3
- package/dist/runtime/assets/svg/bell.svg +0 -3
- package/dist/runtime/assets/svg/bold.svg +0 -3
- package/dist/runtime/assets/svg/bolt-slash.svg +0 -3
- package/dist/runtime/assets/svg/bolt.svg +0 -3
- package/dist/runtime/assets/svg/book-open.svg +0 -3
- package/dist/runtime/assets/svg/bookmark-slash.svg +0 -3
- package/dist/runtime/assets/svg/bookmark-square.svg +0 -3
- package/dist/runtime/assets/svg/bookmark.svg +0 -3
- package/dist/runtime/assets/svg/briefcase.svg +0 -3
- package/dist/runtime/assets/svg/bug-ant.svg +0 -3
- package/dist/runtime/assets/svg/building-library.svg +0 -3
- package/dist/runtime/assets/svg/building-office-2.svg +0 -3
- package/dist/runtime/assets/svg/building-office.svg +0 -3
- package/dist/runtime/assets/svg/building-storefront.svg +0 -3
- package/dist/runtime/assets/svg/cake.svg +0 -3
- package/dist/runtime/assets/svg/calculator.svg +0 -3
- package/dist/runtime/assets/svg/calendar-date-range.svg +0 -3
- package/dist/runtime/assets/svg/calendar-days.svg +0 -3
- package/dist/runtime/assets/svg/calendar.svg +0 -3
- package/dist/runtime/assets/svg/camera.svg +0 -4
- package/dist/runtime/assets/svg/chart-bar-square.svg +0 -3
- package/dist/runtime/assets/svg/chart-bar.svg +0 -3
- package/dist/runtime/assets/svg/chart-pie.svg +0 -4
- package/dist/runtime/assets/svg/chat-bubble-bottom-center-text.svg +0 -3
- package/dist/runtime/assets/svg/chat-bubble-bottom-center.svg +0 -3
- package/dist/runtime/assets/svg/chat-bubble-left-ellipsis.svg +0 -3
- package/dist/runtime/assets/svg/chat-bubble-left-right.svg +0 -3
- package/dist/runtime/assets/svg/chat-bubble-left.svg +0 -3
- package/dist/runtime/assets/svg/chat-bubble-oval-left-ellipsis.svg +0 -3
- package/dist/runtime/assets/svg/chat-bubble-oval-left.svg +0 -3
- package/dist/runtime/assets/svg/check-badge.svg +0 -3
- package/dist/runtime/assets/svg/check-circle.svg +0 -3
- package/dist/runtime/assets/svg/check.svg +0 -3
- package/dist/runtime/assets/svg/chevron-double-down.svg +0 -3
- package/dist/runtime/assets/svg/chevron-double-left.svg +0 -3
- package/dist/runtime/assets/svg/chevron-double-right.svg +0 -3
- package/dist/runtime/assets/svg/chevron-double-up.svg +0 -4
- package/dist/runtime/assets/svg/chevron-down.svg +0 -3
- package/dist/runtime/assets/svg/chevron-left.svg +0 -3
- package/dist/runtime/assets/svg/chevron-right.svg +0 -3
- package/dist/runtime/assets/svg/chevron-up-down.svg +0 -3
- package/dist/runtime/assets/svg/chevron-up.svg +0 -3
- package/dist/runtime/assets/svg/circle-stack.svg +0 -3
- package/dist/runtime/assets/svg/clipboard-document-check.svg +0 -3
- package/dist/runtime/assets/svg/clipboard-document-list.svg +0 -3
- package/dist/runtime/assets/svg/clipboard-document.svg +0 -3
- package/dist/runtime/assets/svg/clipboard.svg +0 -3
- package/dist/runtime/assets/svg/clock.svg +0 -3
- package/dist/runtime/assets/svg/cloud-arrow-down.svg +0 -3
- package/dist/runtime/assets/svg/cloud-arrow-up.svg +0 -3
- package/dist/runtime/assets/svg/cloud.svg +0 -3
- package/dist/runtime/assets/svg/code-bracket-square.svg +0 -3
- package/dist/runtime/assets/svg/code-bracket.svg +0 -3
- package/dist/runtime/assets/svg/cog-6-tooth.svg +0 -4
- package/dist/runtime/assets/svg/cog-8-tooth.svg +0 -4
- package/dist/runtime/assets/svg/cog.svg +0 -3
- package/dist/runtime/assets/svg/command-line.svg +0 -3
- package/dist/runtime/assets/svg/computer-desktop.svg +0 -3
- package/dist/runtime/assets/svg/cpu-chip.svg +0 -3
- package/dist/runtime/assets/svg/credit-card.svg +0 -3
- package/dist/runtime/assets/svg/cube-transparent.svg +0 -3
- package/dist/runtime/assets/svg/cube.svg +0 -3
- package/dist/runtime/assets/svg/currency-bangladeshi.svg +0 -3
- package/dist/runtime/assets/svg/currency-dollar.svg +0 -3
- package/dist/runtime/assets/svg/currency-euro.svg +0 -3
- package/dist/runtime/assets/svg/currency-pound.svg +0 -3
- package/dist/runtime/assets/svg/currency-rupee.svg +0 -3
- package/dist/runtime/assets/svg/currency-yen.svg +0 -3
- package/dist/runtime/assets/svg/cursor-arrow-rays.svg +0 -3
- package/dist/runtime/assets/svg/cursor-arrow-ripple.svg +0 -3
- package/dist/runtime/assets/svg/device-phone-mobile.svg +0 -3
- package/dist/runtime/assets/svg/device-tablet.svg +0 -3
- package/dist/runtime/assets/svg/divide.svg +0 -3
- package/dist/runtime/assets/svg/document-arrow-down.svg +0 -3
- package/dist/runtime/assets/svg/document-arrow-up.svg +0 -3
- package/dist/runtime/assets/svg/document-chart-bar.svg +0 -3
- package/dist/runtime/assets/svg/document-check.svg +0 -3
- package/dist/runtime/assets/svg/document-currency-bangladeshi.svg +0 -3
- package/dist/runtime/assets/svg/document-currency-dollar.svg +0 -3
- package/dist/runtime/assets/svg/document-currency-euro.svg +0 -3
- package/dist/runtime/assets/svg/document-currency-pound.svg +0 -3
- package/dist/runtime/assets/svg/document-currency-rupee.svg +0 -3
- package/dist/runtime/assets/svg/document-currency-yen.svg +0 -3
- package/dist/runtime/assets/svg/document-duplicate.svg +0 -3
- package/dist/runtime/assets/svg/document-magnifying-glass.svg +0 -3
- package/dist/runtime/assets/svg/document-minus.svg +0 -3
- package/dist/runtime/assets/svg/document-plus.svg +0 -3
- package/dist/runtime/assets/svg/document-text.svg +0 -3
- package/dist/runtime/assets/svg/document.svg +0 -3
- package/dist/runtime/assets/svg/ellipsis-horizontal-circle.svg +0 -3
- package/dist/runtime/assets/svg/ellipsis-horizontal.svg +0 -3
- package/dist/runtime/assets/svg/ellipsis-vertical.svg +0 -3
- package/dist/runtime/assets/svg/envelope-open.svg +0 -3
- package/dist/runtime/assets/svg/envelope.svg +0 -3
- package/dist/runtime/assets/svg/equals.svg +0 -3
- package/dist/runtime/assets/svg/exclamation-circle.svg +0 -3
- package/dist/runtime/assets/svg/exclamation-triangle.svg +0 -3
- package/dist/runtime/assets/svg/eye-dropper.svg +0 -3
- package/dist/runtime/assets/svg/eye-slash.svg +0 -3
- package/dist/runtime/assets/svg/eye.svg +0 -4
- package/dist/runtime/assets/svg/face-frown.svg +0 -3
- package/dist/runtime/assets/svg/face-smile.svg +0 -3
- package/dist/runtime/assets/svg/film.svg +0 -3
- package/dist/runtime/assets/svg/finger-print.svg +0 -3
- package/dist/runtime/assets/svg/fire.svg +0 -4
- package/dist/runtime/assets/svg/flag.svg +0 -3
- package/dist/runtime/assets/svg/folder-arrow-down.svg +0 -3
- package/dist/runtime/assets/svg/folder-minus.svg +0 -3
- package/dist/runtime/assets/svg/folder-open.svg +0 -3
- package/dist/runtime/assets/svg/folder-plus.svg +0 -3
- package/dist/runtime/assets/svg/folder.svg +0 -3
- package/dist/runtime/assets/svg/forward.svg +0 -3
- package/dist/runtime/assets/svg/funnel.svg +0 -3
- package/dist/runtime/assets/svg/gif.svg +0 -3
- package/dist/runtime/assets/svg/gift-top.svg +0 -3
- package/dist/runtime/assets/svg/gift.svg +0 -3
- package/dist/runtime/assets/svg/globe-alt.svg +0 -3
- package/dist/runtime/assets/svg/globe-americas.svg +0 -3
- package/dist/runtime/assets/svg/globe-asia-australia.svg +0 -3
- package/dist/runtime/assets/svg/globe-europe-africa.svg +0 -3
- package/dist/runtime/assets/svg/h1.svg +0 -3
- package/dist/runtime/assets/svg/h2.svg +0 -3
- package/dist/runtime/assets/svg/h3.svg +0 -3
- package/dist/runtime/assets/svg/hand-raised.svg +0 -3
- package/dist/runtime/assets/svg/hand-thumb-down.svg +0 -3
- package/dist/runtime/assets/svg/hand-thumb-up.svg +0 -3
- package/dist/runtime/assets/svg/hashtag.svg +0 -3
- package/dist/runtime/assets/svg/heart.svg +0 -3
- package/dist/runtime/assets/svg/home-modern.svg +0 -3
- package/dist/runtime/assets/svg/home.svg +0 -3
- package/dist/runtime/assets/svg/identification.svg +0 -3
- package/dist/runtime/assets/svg/inbox-arrow-down.svg +0 -3
- package/dist/runtime/assets/svg/inbox-stack.svg +0 -3
- package/dist/runtime/assets/svg/inbox.svg +0 -3
- package/dist/runtime/assets/svg/information-circle.svg +0 -3
- package/dist/runtime/assets/svg/italic.svg +0 -3
- package/dist/runtime/assets/svg/key.svg +0 -3
- package/dist/runtime/assets/svg/language.svg +0 -3
- package/dist/runtime/assets/svg/lifebuoy.svg +0 -3
- package/dist/runtime/assets/svg/light-bulb.svg +0 -3
- package/dist/runtime/assets/svg/link-slash.svg +0 -3
- package/dist/runtime/assets/svg/link.svg +0 -3
- package/dist/runtime/assets/svg/list-bullet.svg +0 -3
- package/dist/runtime/assets/svg/lock-closed.svg +0 -3
- package/dist/runtime/assets/svg/lock-open.svg +0 -3
- package/dist/runtime/assets/svg/magnifying-glass-circle.svg +0 -3
- package/dist/runtime/assets/svg/magnifying-glass-minus.svg +0 -3
- package/dist/runtime/assets/svg/magnifying-glass-plus.svg +0 -3
- package/dist/runtime/assets/svg/magnifying-glass.svg +0 -3
- package/dist/runtime/assets/svg/map-pin.svg +0 -4
- package/dist/runtime/assets/svg/map.svg +0 -3
- package/dist/runtime/assets/svg/megaphone.svg +0 -3
- package/dist/runtime/assets/svg/microphone.svg +0 -3
- package/dist/runtime/assets/svg/minus-circle.svg +0 -3
- package/dist/runtime/assets/svg/minus-small.svg +0 -3
- package/dist/runtime/assets/svg/minus.svg +0 -3
- package/dist/runtime/assets/svg/moon.svg +0 -3
- package/dist/runtime/assets/svg/musical-note.svg +0 -3
- package/dist/runtime/assets/svg/newspaper.svg +0 -3
- package/dist/runtime/assets/svg/no-symbol.svg +0 -3
- package/dist/runtime/assets/svg/numbered-list.svg +0 -3
- package/dist/runtime/assets/svg/paint-brush.svg +0 -3
- package/dist/runtime/assets/svg/paper-airplane.svg +0 -3
- package/dist/runtime/assets/svg/paper-clip.svg +0 -3
- package/dist/runtime/assets/svg/pause-circle.svg +0 -3
- package/dist/runtime/assets/svg/pause.svg +0 -3
- package/dist/runtime/assets/svg/pencil-square.svg +0 -3
- package/dist/runtime/assets/svg/pencil.svg +0 -3
- package/dist/runtime/assets/svg/percent-badge.svg +0 -3
- package/dist/runtime/assets/svg/phone-arrow-down-left.svg +0 -3
- package/dist/runtime/assets/svg/phone-arrow-up-right.svg +0 -3
- package/dist/runtime/assets/svg/phone-x-mark.svg +0 -3
- package/dist/runtime/assets/svg/phone.svg +0 -3
- package/dist/runtime/assets/svg/photo.svg +0 -3
- package/dist/runtime/assets/svg/play-circle.svg +0 -4
- package/dist/runtime/assets/svg/play-pause.svg +0 -3
- package/dist/runtime/assets/svg/play.svg +0 -3
- package/dist/runtime/assets/svg/plus-circle.svg +0 -3
- package/dist/runtime/assets/svg/plus-small.svg +0 -3
- package/dist/runtime/assets/svg/plus.svg +0 -3
- package/dist/runtime/assets/svg/power.svg +0 -3
- package/dist/runtime/assets/svg/presentation-chart-bar.svg +0 -3
- package/dist/runtime/assets/svg/presentation-chart-line.svg +0 -3
- package/dist/runtime/assets/svg/printer.svg +0 -3
- package/dist/runtime/assets/svg/puzzle-piece.svg +0 -3
- package/dist/runtime/assets/svg/qr-code.svg +0 -4
- package/dist/runtime/assets/svg/question-mark-circle.svg +0 -3
- package/dist/runtime/assets/svg/queue-list.svg +0 -3
- package/dist/runtime/assets/svg/radio.svg +0 -3
- package/dist/runtime/assets/svg/receipt-percent.svg +0 -3
- package/dist/runtime/assets/svg/receipt-refund.svg +0 -3
- package/dist/runtime/assets/svg/rectangle-group.svg +0 -3
- package/dist/runtime/assets/svg/rectangle-stack.svg +0 -3
- package/dist/runtime/assets/svg/rocket-launch.svg +0 -3
- package/dist/runtime/assets/svg/rss.svg +0 -3
- package/dist/runtime/assets/svg/scale.svg +0 -3
- package/dist/runtime/assets/svg/scissors.svg +0 -3
- package/dist/runtime/assets/svg/server-stack.svg +0 -3
- package/dist/runtime/assets/svg/server.svg +0 -3
- package/dist/runtime/assets/svg/share.svg +0 -3
- package/dist/runtime/assets/svg/shield-check.svg +0 -3
- package/dist/runtime/assets/svg/shield-exclamation.svg +0 -3
- package/dist/runtime/assets/svg/shopping-bag.svg +0 -3
- package/dist/runtime/assets/svg/shopping-cart.svg +0 -3
- package/dist/runtime/assets/svg/signal-slash.svg +0 -3
- package/dist/runtime/assets/svg/signal.svg +0 -3
- package/dist/runtime/assets/svg/slash.svg +0 -3
- package/dist/runtime/assets/svg/sparkles.svg +0 -3
- package/dist/runtime/assets/svg/speaker-wave.svg +0 -3
- package/dist/runtime/assets/svg/speaker-x-mark.svg +0 -3
- package/dist/runtime/assets/svg/square-2-stack.svg +0 -3
- package/dist/runtime/assets/svg/square-3-stack-3d.svg +0 -3
- package/dist/runtime/assets/svg/squares-2x2.svg +0 -3
- package/dist/runtime/assets/svg/squares-plus.svg +0 -3
- package/dist/runtime/assets/svg/star.svg +0 -3
- package/dist/runtime/assets/svg/stop-circle.svg +0 -4
- package/dist/runtime/assets/svg/stop.svg +0 -3
- package/dist/runtime/assets/svg/strikethrough.svg +0 -3
- package/dist/runtime/assets/svg/sun.svg +0 -3
- package/dist/runtime/assets/svg/swatch.svg +0 -3
- package/dist/runtime/assets/svg/table-cells.svg +0 -3
- package/dist/runtime/assets/svg/tag.svg +0 -4
- package/dist/runtime/assets/svg/ticket.svg +0 -3
- package/dist/runtime/assets/svg/trash.svg +0 -3
- package/dist/runtime/assets/svg/trophy.svg +0 -3
- package/dist/runtime/assets/svg/truck.svg +0 -3
- package/dist/runtime/assets/svg/tv.svg +0 -3
- package/dist/runtime/assets/svg/underline.svg +0 -3
- package/dist/runtime/assets/svg/user-circle.svg +0 -3
- package/dist/runtime/assets/svg/user-group.svg +0 -3
- package/dist/runtime/assets/svg/user-minus.svg +0 -3
- package/dist/runtime/assets/svg/user-plus.svg +0 -3
- package/dist/runtime/assets/svg/user.svg +0 -3
- package/dist/runtime/assets/svg/users.svg +0 -3
- package/dist/runtime/assets/svg/variable.svg +0 -3
- package/dist/runtime/assets/svg/video-camera-slash.svg +0 -3
- package/dist/runtime/assets/svg/video-camera.svg +0 -3
- package/dist/runtime/assets/svg/view-columns.svg +0 -3
- package/dist/runtime/assets/svg/viewfinder-circle.svg +0 -3
- package/dist/runtime/assets/svg/wallet.svg +0 -3
- package/dist/runtime/assets/svg/wifi.svg +0 -3
- package/dist/runtime/assets/svg/window.svg +0 -3
- package/dist/runtime/assets/svg/wrench-screwdriver.svg +0 -3
- package/dist/runtime/assets/svg/wrench.svg +0 -4
- package/dist/runtime/assets/svg/x-circle.svg +0 -3
- package/dist/runtime/assets/svg/x-mark.svg +0 -3
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<span v-if="!value" class="cms-media-thumb-empty"
|
|
2
|
+
<span v-if="!value" class="cms-media-thumb-empty">
|
|
3
|
+
<KIcon :name="cmsIcon('minus')" />
|
|
4
|
+
<span class="k-visually-hidden">No media</span>
|
|
5
|
+
</span>
|
|
3
6
|
|
|
4
7
|
<img
|
|
5
8
|
v-else-if="kind === 'image' && url"
|
|
@@ -21,14 +24,16 @@
|
|
|
21
24
|
/>
|
|
22
25
|
|
|
23
26
|
<span v-else :title="filename" class="cms-media-thumb is-fallback">
|
|
24
|
-
<
|
|
27
|
+
<KIcon :name="cmsIcon(icon)" />
|
|
25
28
|
</span>
|
|
26
29
|
</template>
|
|
27
30
|
|
|
28
31
|
<script setup>
|
|
29
32
|
import { computed } from "#imports";
|
|
33
|
+
import { Icon as KIcon } from "@xleddyl/443-components-vue";
|
|
30
34
|
import { mediaFilename, mediaIconFor, mediaPublicUrl, mediaTypeForKey } from "#nuxt-cms";
|
|
31
35
|
import { useCmsRuntime } from "../../composables/cms-runtime";
|
|
36
|
+
import { cmsIcon } from "../../utils/ui";
|
|
32
37
|
const props = defineProps({
|
|
33
38
|
value: { type: [String, null], required: false }
|
|
34
39
|
});
|
|
@@ -1,68 +1,50 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<CmsIcon
|
|
23
|
-
:name="uploading ? 'arrow-path' : 'cloud-arrow-up'"
|
|
24
|
-
class="size-5 shrink-0"
|
|
25
|
-
:class="{ 'animate-spin': uploading }"
|
|
26
|
-
/>
|
|
27
|
-
<span class="text-sm font-medium">
|
|
28
|
-
{{
|
|
29
|
-
uploading ? `Uploading ${Math.min(done + 1, total)} of ${total}\u2026` : multiple ? "Drop files here or click to browse" : "Drop a file here or click to browse"
|
|
30
|
-
}}
|
|
31
|
-
</span>
|
|
32
|
-
<span v-if="!uploading" class="cms-dropzone-hint">
|
|
33
|
-
<CmsIcon :name="folder ? 'folder' : 'circle-stack'" class="size-3.5" />
|
|
2
|
+
<KFileInput
|
|
3
|
+
:accept="acceptAttr"
|
|
4
|
+
accept-mode="hint"
|
|
5
|
+
:multiple="multiple"
|
|
6
|
+
:directory="directories ? 'drop' : false"
|
|
7
|
+
:list="false"
|
|
8
|
+
:loading="uploading"
|
|
9
|
+
:icon="cmsIcon('cloud-arrow-up')"
|
|
10
|
+
size="lg"
|
|
11
|
+
skip-hidden
|
|
12
|
+
@add="onAdd"
|
|
13
|
+
>
|
|
14
|
+
<template #title>
|
|
15
|
+
{{
|
|
16
|
+
uploading ? `Uploading ${Math.min(done + 1, total)} of ${total}\u2026` : multiple ? "Drop files here or click to browse" : "Drop a file here or click to browse"
|
|
17
|
+
}}
|
|
18
|
+
</template>
|
|
19
|
+
<template v-if="!uploading" #hint>
|
|
20
|
+
<span class="cms-media-dropzone-hint">
|
|
21
|
+
<KIcon :name="cmsIcon(folder ? 'folder' : 'circle-stack')" />
|
|
34
22
|
{{ folder ?? "Library root" }}
|
|
35
23
|
</span>
|
|
36
|
-
</
|
|
37
|
-
<template v-if="directories && multiple && !uploading">
|
|
38
|
-
<
|
|
39
|
-
ref="directoryInput"
|
|
40
|
-
type="file"
|
|
41
|
-
class="hidden"
|
|
42
|
-
webkitdirectory
|
|
43
|
-
multiple
|
|
44
|
-
@change="onChange"
|
|
45
|
-
/>
|
|
46
|
-
<CmsButton
|
|
24
|
+
</template>
|
|
25
|
+
<template v-if="directories && multiple && !uploading" #actions="{ browseDirectory }">
|
|
26
|
+
<KButton
|
|
47
27
|
label="Upload a folder"
|
|
48
|
-
icon="folder-arrow-down"
|
|
28
|
+
:icon="cmsIcon('folder-arrow-down')"
|
|
49
29
|
variant="ghost"
|
|
50
|
-
|
|
30
|
+
tone="neutral"
|
|
51
31
|
size="sm"
|
|
52
|
-
@click="
|
|
32
|
+
@click="browseDirectory"
|
|
53
33
|
/>
|
|
54
34
|
</template>
|
|
55
|
-
</
|
|
35
|
+
</KFileInput>
|
|
56
36
|
</template>
|
|
57
37
|
|
|
58
38
|
<script setup>
|
|
59
39
|
import { mediaTypeAccept } from "#nuxt-cms";
|
|
60
|
-
import { computed
|
|
40
|
+
import { computed } from "#imports";
|
|
61
41
|
import {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
} from "
|
|
42
|
+
Button as KButton,
|
|
43
|
+
FileInput as KFileInput,
|
|
44
|
+
Icon as KIcon
|
|
45
|
+
} from "@xleddyl/443-components-vue";
|
|
46
|
+
import { cmsIcon } from "../../utils/ui";
|
|
47
|
+
import { uploadTreeFromEntries, useCmsMediaUploader } from "../../composables/cms-media-uploader";
|
|
66
48
|
const props = defineProps({
|
|
67
49
|
multiple: { type: Boolean, required: false },
|
|
68
50
|
mediaType: { type: null, required: false, default: "file" },
|
|
@@ -72,31 +54,16 @@ const props = defineProps({
|
|
|
72
54
|
});
|
|
73
55
|
const emit = defineEmits(["uploaded"]);
|
|
74
56
|
const { upload, uploading, done, total } = useCmsMediaUploader();
|
|
75
|
-
const input = ref(null);
|
|
76
|
-
const directoryInput = ref(null);
|
|
77
|
-
const dragOver = ref(false);
|
|
78
57
|
const acceptAttr = computed(
|
|
79
58
|
() => (props.accept?.length ? props.accept : mediaTypeAccept(props.mediaType))?.join(",")
|
|
80
59
|
);
|
|
81
|
-
async function
|
|
82
|
-
const tree =
|
|
60
|
+
async function onAdd(_files, detail) {
|
|
61
|
+
const tree = uploadTreeFromEntries(detail.entries, props.directories ? detail.directories : []);
|
|
83
62
|
const items = await upload(tree, {
|
|
84
63
|
folder: props.folder,
|
|
85
64
|
accept: acceptAttr.value,
|
|
86
65
|
multiple: props.multiple
|
|
87
66
|
});
|
|
88
|
-
if (items.length ||
|
|
89
|
-
}
|
|
90
|
-
function onChange(event) {
|
|
91
|
-
const el = event.target;
|
|
92
|
-
if (el.files?.length) void handleTree(uploadTreeFromFiles(el.files));
|
|
93
|
-
el.value = "";
|
|
94
|
-
}
|
|
95
|
-
function onDrop(event) {
|
|
96
|
-
dragOver.value = false;
|
|
97
|
-
if (!event.dataTransfer?.files.length) return;
|
|
98
|
-
void handleTree(
|
|
99
|
-
props.directories ? uploadTreeFromDrop(event.dataTransfer) : uploadTreeFromFiles(event.dataTransfer.files)
|
|
100
|
-
);
|
|
67
|
+
if (items.length || tree.directories.length) emit("uploaded", items);
|
|
101
68
|
}
|
|
102
69
|
</script>
|
|
@@ -1,28 +1,19 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
v-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
:
|
|
9
|
-
|
|
10
|
-
:loading="loading"
|
|
11
|
-
/>
|
|
12
|
-
<CmsSelectMenu
|
|
13
|
-
v-else
|
|
14
|
-
v-model="single"
|
|
15
|
-
v-model:search-term="searchTerm"
|
|
16
|
-
ignore-filter
|
|
17
|
-
:items="singleItems"
|
|
18
|
-
value-key="value"
|
|
19
|
-
:loading="loading"
|
|
2
|
+
<KCombobox
|
|
3
|
+
v-model="model"
|
|
4
|
+
:multiple="multiple"
|
|
5
|
+
:clearable="!multiple && !required"
|
|
6
|
+
open-on-focus
|
|
7
|
+
:options="selectedOptions"
|
|
8
|
+
:search="search"
|
|
9
|
+
:debounce="300"
|
|
20
10
|
/>
|
|
21
11
|
</template>
|
|
22
12
|
|
|
23
13
|
<script setup>
|
|
24
14
|
import { isTranslatableField, selectDisplayValue } from "#nuxt-cms";
|
|
25
|
-
import {
|
|
15
|
+
import { Combobox as KCombobox } from "@xleddyl/443-components-vue";
|
|
16
|
+
import { computed, onMounted, ref } from "#imports";
|
|
26
17
|
import cmsConfig from "#cms-config";
|
|
27
18
|
import { useCmsRuntime } from "../../composables/cms-runtime";
|
|
28
19
|
import { useCmsToast } from "../../composables/cms-toast";
|
|
@@ -36,40 +27,27 @@ const model = defineModel({ type: [String, Array, null], ...{ required: true } }
|
|
|
36
27
|
const toast = useCmsToast();
|
|
37
28
|
const target = cmsConfig[props.to];
|
|
38
29
|
const endpoint = `/api/cms/admin/${props.to}`;
|
|
39
|
-
const fetched = ref([]);
|
|
40
30
|
const selectedRows = ref(/* @__PURE__ */ new Map());
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
let fetchRequest = 0;
|
|
44
|
-
async function fetchOptions() {
|
|
45
|
-
const request = ++fetchRequest;
|
|
46
|
-
loading.value = true;
|
|
31
|
+
async function search(query, signal) {
|
|
32
|
+
const term = query.trim();
|
|
47
33
|
try {
|
|
48
|
-
const term = searchTerm.value.trim();
|
|
49
34
|
const page = await $fetch(endpoint, {
|
|
50
|
-
query: { light: "true", limit: 25, ...term ? { search: term } : {} }
|
|
35
|
+
query: { light: "true", limit: 25, ...term ? { search: term } : {} },
|
|
36
|
+
signal
|
|
51
37
|
});
|
|
52
|
-
|
|
53
|
-
fetched.value = page.items;
|
|
38
|
+
return page.items.map((row) => ({ label: optionLabel(row), value: row.id }));
|
|
54
39
|
} catch (err) {
|
|
55
|
-
if (
|
|
40
|
+
if (signal.aborted) throw err;
|
|
56
41
|
toast.add({
|
|
57
42
|
title: "Loading failed",
|
|
58
43
|
description: errorMessage(err),
|
|
59
44
|
color: "error"
|
|
60
45
|
});
|
|
61
|
-
|
|
62
|
-
if (request === fetchRequest) loading.value = false;
|
|
46
|
+
return [];
|
|
63
47
|
}
|
|
64
48
|
}
|
|
65
|
-
let searchTimer;
|
|
66
|
-
watch(searchTerm, () => {
|
|
67
|
-
clearTimeout(searchTimer);
|
|
68
|
-
searchTimer = setTimeout(() => void fetchOptions(), 300);
|
|
69
|
-
});
|
|
70
|
-
onBeforeUnmount(() => clearTimeout(searchTimer));
|
|
71
49
|
const selectedIds = computed(() => {
|
|
72
|
-
if (
|
|
50
|
+
if (Array.isArray(model.value)) return model.value;
|
|
73
51
|
return model.value ? [model.value] : [];
|
|
74
52
|
});
|
|
75
53
|
async function resolveSelected() {
|
|
@@ -85,7 +63,6 @@ async function resolveSelected() {
|
|
|
85
63
|
);
|
|
86
64
|
}
|
|
87
65
|
onMounted(() => {
|
|
88
|
-
void fetchOptions();
|
|
89
66
|
void resolveSelected();
|
|
90
67
|
});
|
|
91
68
|
const { i18n: contentI18n } = useCmsRuntime();
|
|
@@ -102,35 +79,10 @@ function optionLabel(row) {
|
|
|
102
79
|
return selectDisplayValue(titleFieldConfig, value) || `#${row.id}`;
|
|
103
80
|
return String(value ?? `#${row.id}`);
|
|
104
81
|
}
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
const list = [];
|
|
108
|
-
for (const row of fetched.value) {
|
|
109
|
-
const id = row.id;
|
|
110
|
-
list.push({ label: optionLabel(row), value: id });
|
|
111
|
-
seen.add(id);
|
|
112
|
-
}
|
|
113
|
-
for (const id of selectedIds.value) {
|
|
114
|
-
if (seen.has(id)) continue;
|
|
82
|
+
const selectedOptions = computed(
|
|
83
|
+
() => selectedIds.value.map((id) => {
|
|
115
84
|
const row = selectedRows.value.get(id);
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
});
|
|
120
|
-
const singleItems = computed(() => [
|
|
121
|
-
...props.required ? [] : [{ label: "\u2014", value: null }],
|
|
122
|
-
...options.value
|
|
123
|
-
]);
|
|
124
|
-
const single = computed({
|
|
125
|
-
get: () => model.value ?? null,
|
|
126
|
-
set: (value) => {
|
|
127
|
-
model.value = value;
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
const many = computed({
|
|
131
|
-
get: () => model.value ?? [],
|
|
132
|
-
set: (value) => {
|
|
133
|
-
model.value = value;
|
|
134
|
-
}
|
|
135
|
-
});
|
|
85
|
+
return { label: row ? optionLabel(row) : `#${id}`, value: id };
|
|
86
|
+
})
|
|
87
|
+
);
|
|
136
88
|
</script>
|
|
@@ -1,183 +1,29 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
:variant="editor?.isActive(action.mark, action.attrs) ? 'soft' : 'ghost'"
|
|
10
|
-
color="neutral"
|
|
11
|
-
:aria-label="action.label"
|
|
12
|
-
:title="action.label"
|
|
13
|
-
@click="action.run"
|
|
14
|
-
/>
|
|
15
|
-
<CmsPopover v-model:open="linkOpen">
|
|
16
|
-
<CmsButton
|
|
17
|
-
icon="link"
|
|
18
|
-
size="xs"
|
|
19
|
-
:variant="editor?.isActive('link') ? 'soft' : 'ghost'"
|
|
20
|
-
color="neutral"
|
|
21
|
-
aria-label="Link"
|
|
22
|
-
title="Link"
|
|
23
|
-
/>
|
|
24
|
-
<template #content>
|
|
25
|
-
<div class="flex items-center gap-2 p-2">
|
|
26
|
-
<CmsInput
|
|
27
|
-
v-model="linkUrl"
|
|
28
|
-
size="sm"
|
|
29
|
-
placeholder="https://"
|
|
30
|
-
class="w-64"
|
|
31
|
-
@keydown.enter.prevent="applyLink"
|
|
32
|
-
/>
|
|
33
|
-
<CmsButton size="xs" label="Apply" @click="applyLink" />
|
|
34
|
-
<CmsButton
|
|
35
|
-
v-if="editor?.isActive('link')"
|
|
36
|
-
size="xs"
|
|
37
|
-
variant="soft"
|
|
38
|
-
color="error"
|
|
39
|
-
label="Remove link"
|
|
40
|
-
@click="removeLink"
|
|
41
|
-
/>
|
|
42
|
-
</div>
|
|
43
|
-
</template>
|
|
44
|
-
</CmsPopover>
|
|
45
|
-
<span class="grow" />
|
|
46
|
-
<CmsButton
|
|
47
|
-
icon="arrow-uturn-left"
|
|
48
|
-
size="xs"
|
|
49
|
-
variant="ghost"
|
|
50
|
-
color="neutral"
|
|
51
|
-
aria-label="Undo"
|
|
52
|
-
title="Undo"
|
|
53
|
-
:disabled="!editor?.can().undo()"
|
|
54
|
-
@click="undo"
|
|
55
|
-
/>
|
|
56
|
-
<CmsButton
|
|
57
|
-
icon="arrow-uturn-right"
|
|
58
|
-
size="xs"
|
|
59
|
-
variant="ghost"
|
|
60
|
-
color="neutral"
|
|
61
|
-
aria-label="Redo"
|
|
62
|
-
title="Redo"
|
|
63
|
-
:disabled="!editor?.can().redo()"
|
|
64
|
-
@click="redo"
|
|
65
|
-
/>
|
|
66
|
-
</div>
|
|
67
|
-
<EditorContent :editor="editor" />
|
|
68
|
-
</div>
|
|
2
|
+
<KRichTextEditor
|
|
3
|
+
:model-value="model"
|
|
4
|
+
:headings="[2, 3]"
|
|
5
|
+
:toolbar="TOOLBAR"
|
|
6
|
+
min-height="9rem"
|
|
7
|
+
@update:model-value="(value) => model = typeof value === 'string' ? value : null"
|
|
8
|
+
/>
|
|
69
9
|
</template>
|
|
70
10
|
|
|
71
11
|
<script setup>
|
|
72
|
-
import
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
if (!editor.value) return;
|
|
88
|
-
const current = editor.value.isEmpty ? null : editor.value.getHTML();
|
|
89
|
-
if ((value ?? null) !== current) {
|
|
90
|
-
editor.value.commands.setContent(value ?? "");
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
const actions = [
|
|
94
|
-
{
|
|
95
|
-
icon: "bold",
|
|
96
|
-
mark: "bold",
|
|
97
|
-
label: "Bold",
|
|
98
|
-
run: () => {
|
|
99
|
-
editor.value?.chain().focus().toggleBold().run();
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
icon: "italic",
|
|
104
|
-
mark: "italic",
|
|
105
|
-
label: "Italic",
|
|
106
|
-
run: () => {
|
|
107
|
-
editor.value?.chain().focus().toggleItalic().run();
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
icon: "strikethrough",
|
|
112
|
-
mark: "strike",
|
|
113
|
-
label: "Strikethrough",
|
|
114
|
-
run: () => {
|
|
115
|
-
editor.value?.chain().focus().toggleStrike().run();
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
icon: "h2",
|
|
120
|
-
mark: "heading",
|
|
121
|
-
attrs: { level: 2 },
|
|
122
|
-
label: "Heading 2",
|
|
123
|
-
run: () => {
|
|
124
|
-
editor.value?.chain().focus().toggleHeading({ level: 2 }).run();
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
icon: "h3",
|
|
129
|
-
mark: "heading",
|
|
130
|
-
attrs: { level: 3 },
|
|
131
|
-
label: "Heading 3",
|
|
132
|
-
run: () => {
|
|
133
|
-
editor.value?.chain().focus().toggleHeading({ level: 3 }).run();
|
|
134
|
-
}
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
icon: "list-bullet",
|
|
138
|
-
mark: "bulletList",
|
|
139
|
-
label: "Bullet list",
|
|
140
|
-
run: () => {
|
|
141
|
-
editor.value?.chain().focus().toggleBulletList().run();
|
|
142
|
-
}
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
icon: "numbered-list",
|
|
146
|
-
mark: "orderedList",
|
|
147
|
-
label: "Numbered list",
|
|
148
|
-
run: () => {
|
|
149
|
-
editor.value?.chain().focus().toggleOrderedList().run();
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
icon: "chat-bubble-bottom-center-text",
|
|
154
|
-
mark: "blockquote",
|
|
155
|
-
label: "Quote",
|
|
156
|
-
run: () => {
|
|
157
|
-
editor.value?.chain().focus().toggleBlockquote().run();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
12
|
+
import { RichTextEditor as KRichTextEditor } from "@xleddyl/443-components-vue/editor";
|
|
13
|
+
const TOOLBAR = [
|
|
14
|
+
"bold",
|
|
15
|
+
"italic",
|
|
16
|
+
"strike",
|
|
17
|
+
"|",
|
|
18
|
+
"headings",
|
|
19
|
+
"|",
|
|
20
|
+
"bulletList",
|
|
21
|
+
"orderedList",
|
|
22
|
+
"blockquote",
|
|
23
|
+
"link",
|
|
24
|
+
"|",
|
|
25
|
+
"undo",
|
|
26
|
+
"redo"
|
|
160
27
|
];
|
|
161
|
-
const
|
|
162
|
-
const linkUrl = ref("");
|
|
163
|
-
watch(linkOpen, (open) => {
|
|
164
|
-
if (open) linkUrl.value = editor.value?.getAttributes("link").href ?? "";
|
|
165
|
-
});
|
|
166
|
-
function applyLink() {
|
|
167
|
-
const url = linkUrl.value.trim();
|
|
168
|
-
const chain = editor.value?.chain().focus().extendMarkRange("link");
|
|
169
|
-
if (url) chain?.setLink({ href: url }).run();
|
|
170
|
-
else chain?.unsetLink().run();
|
|
171
|
-
linkOpen.value = false;
|
|
172
|
-
}
|
|
173
|
-
function removeLink() {
|
|
174
|
-
editor.value?.chain().focus().extendMarkRange("link").unsetLink().run();
|
|
175
|
-
linkOpen.value = false;
|
|
176
|
-
}
|
|
177
|
-
function undo() {
|
|
178
|
-
editor.value?.chain().focus().undo().run();
|
|
179
|
-
}
|
|
180
|
-
function redo() {
|
|
181
|
-
editor.value?.chain().focus().redo().run();
|
|
182
|
-
}
|
|
28
|
+
const model = defineModel({ type: [String, null], ...{ required: true } });
|
|
183
29
|
</script>
|