@alfakit/vue 0.1.2 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/AlfakitRoot.js.map +1 -1
- package/dist/AlfakitRoot.vue.d.ts.map +1 -1
- package/dist/AlfakitRoot.vue_vue_type_script_setup_true_lang.js +3 -1
- package/dist/AlfakitRoot.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/actions/ActionGroupMenu.js.map +1 -1
- package/dist/components/actions/ActionGroupMenu.vue.d.ts.map +1 -1
- package/dist/components/actions/ActionGroupMenu.vue_vue_type_script_setup_true_lang.js +69 -65
- package/dist/components/actions/ActionGroupMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/actions/ActionModal.js.map +1 -1
- package/dist/components/actions/ActionModal.vue.d.ts.map +1 -1
- package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js +17 -15
- package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ai/AiCopilot.js.map +1 -1
- package/dist/components/ai/AiCopilot.vue.d.ts +2 -0
- package/dist/components/ai/AiCopilot.vue.d.ts.map +1 -1
- package/dist/components/ai/AiCopilot.vue_vue_type_script_setup_true_lang.js +7 -2
- package/dist/components/ai/AiCopilot.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/cms/CmsPage.vue_vue_type_script_setup_true_lang.js +19 -19
- package/dist/components/cms/CmsPage.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/cms/LivePreview.js.map +1 -1
- package/dist/components/cms/LivePreview.vue.d.ts.map +1 -1
- package/dist/components/cms/LivePreview.vue_vue_type_script_setup_true_lang.js +83 -83
- package/dist/components/cms/LivePreview.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/BuilderField.js.map +1 -1
- package/dist/components/fields/BuilderField.vue.d.ts.map +1 -1
- package/dist/components/fields/BuilderField.vue_vue_type_script_setup_true_lang.js +162 -157
- package/dist/components/fields/BuilderField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/ImageEditorDialog.js.map +1 -1
- package/dist/components/fields/ImageEditorDialog.vue.d.ts.map +1 -1
- package/dist/components/fields/ImageEditorDialog.vue_vue_type_script_setup_true_lang.js +46 -46
- package/dist/components/fields/ImageEditorDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/KeyValueField.js.map +1 -1
- package/dist/components/fields/KeyValueField.vue.d.ts.map +1 -1
- package/dist/components/fields/KeyValueField.vue_vue_type_script_setup_true_lang.js +66 -66
- package/dist/components/fields/KeyValueField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/ModalTablePicker.js.map +1 -1
- package/dist/components/fields/ModalTablePicker.vue.d.ts.map +1 -1
- package/dist/components/fields/ModalTablePicker.vue_vue_type_script_setup_true_lang.js +113 -113
- package/dist/components/fields/ModalTablePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/RepeaterField.js.map +1 -1
- package/dist/components/fields/RepeaterField.vue.d.ts.map +1 -1
- package/dist/components/fields/RepeaterField.vue_vue_type_script_setup_true_lang.js +12 -12
- package/dist/components/fields/RepeaterField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/RichEditorInput.js.map +1 -1
- package/dist/components/fields/RichEditorInput.vue.d.ts.map +1 -1
- package/dist/components/fields/RichEditorInput.vue_vue_type_script_setup_true_lang.js +166 -165
- package/dist/components/fields/RichEditorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/SliderField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/item-actions.d.ts +2 -2
- package/dist/components/fields/item-actions.d.ts.map +1 -1
- package/dist/components/fields/item-actions.js +31 -31
- package/dist/components/fields/item-actions.js.map +1 -1
- package/dist/components/form/FormBlock.js.map +1 -1
- package/dist/components/form/FormBlock.vue.d.ts.map +1 -1
- package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form/form-context.js +25 -25
- package/dist/components/form/form-context.js.map +1 -1
- package/dist/components/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/kanban/KanbanBoard.vue.d.ts.map +1 -1
- package/dist/components/kanban/KanbanBoard.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/kanban/KanbanBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/kanban/KanbanColumnHeader.js.map +1 -1
- package/dist/components/kanban/KanbanColumnHeader.vue.d.ts.map +1 -1
- package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js +64 -64
- package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/layout/SectionComponent.js.map +1 -1
- package/dist/components/layout/SectionComponent.vue.d.ts.map +1 -1
- package/dist/components/layout/SectionComponent.vue_vue_type_script_setup_true_lang.js +23 -23
- package/dist/components/layout/SectionComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/DebugPanel.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/panel/DebugPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/GlobalSearchPalette.js.map +1 -1
- package/dist/components/panel/GlobalSearchPalette.vue.d.ts.map +1 -1
- package/dist/components/panel/GlobalSearchPalette.vue_vue_type_script_setup_true_lang.js +102 -96
- package/dist/components/panel/GlobalSearchPalette.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/NavGroup.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/panel/NavGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/NavGroupFlyout.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/components/panel/NavGroupFlyout.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/NavItem.vue_vue_type_script_setup_true_lang.js +16 -16
- package/dist/components/panel/NavItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/NavSubItem.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/panel/NavSubItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js +35 -35
- package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/Topbar.vue_vue_type_script_setup_true_lang.js +11 -11
- package/dist/components/panel/Topbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/realtime/use-live-updates.d.ts.map +1 -1
- package/dist/components/realtime/use-live-updates.js +24 -23
- package/dist/components/realtime/use-live-updates.js.map +1 -1
- package/dist/components/table/BooleanCell.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/table/BooleanCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/ColumnHeader.js.map +1 -1
- package/dist/components/table/ColumnHeader.vue.d.ts.map +1 -1
- package/dist/components/table/ColumnHeader.vue_vue_type_script_setup_true_lang.js +55 -49
- package/dist/components/table/ColumnHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/ColumnManager.js.map +1 -1
- package/dist/components/table/ColumnManager.vue.d.ts.map +1 -1
- package/dist/components/table/ColumnManager.vue_vue_type_script_setup_true_lang.js +5 -4
- package/dist/components/table/ColumnManager.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/ContentLayoutSort.js.map +1 -1
- package/dist/components/table/ContentLayoutSort.vue.d.ts.map +1 -1
- package/dist/components/table/ContentLayoutSort.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/table/ContentLayoutSort.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/SelectComboboxCell.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/table/SelectComboboxCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/TableCellContent.js.map +1 -1
- package/dist/components/table/TableCellContent.vue.d.ts.map +1 -1
- package/dist/components/table/TableCellContent.vue_vue_type_script_setup_true_lang.js +4 -3
- package/dist/components/table/TableCellContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/TablePagination.js.map +1 -1
- package/dist/components/table/TablePagination.vue.d.ts.map +1 -1
- package/dist/components/table/TablePagination.vue_vue_type_script_setup_true_lang.js +87 -87
- package/dist/components/table/TablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/cell-update.d.ts +6 -0
- package/dist/components/table/cell-update.d.ts.map +1 -1
- package/dist/components/table/cell-update.js.map +1 -1
- package/dist/components/translation-manager/TranslationManagerView.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/translation-manager/TranslationManagerView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ui/CommandAutoHighlight.js +7 -0
- package/dist/components/ui/CommandAutoHighlight.js.map +1 -0
- package/dist/components/ui/CommandAutoHighlight.vue.d.ts +21 -0
- package/dist/components/ui/CommandAutoHighlight.vue.d.ts.map +1 -0
- package/dist/components/ui/CommandAutoHighlight.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/components/ui/CommandAutoHighlight.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/ui/DialogContent.js.map +1 -1
- package/dist/components/ui/DialogContent.vue.d.ts.map +1 -1
- package/dist/components/ui/DialogContent.vue_vue_type_script_setup_true_lang.js +13 -12
- package/dist/components/ui/DialogContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ui/PopoverContent.js.map +1 -1
- package/dist/components/ui/PopoverContent.vue.d.ts.map +1 -1
- package/dist/components/ui/PopoverContent.vue_vue_type_script_setup_true_lang.js +9 -8
- package/dist/components/ui/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ui/SheetContent.js.map +1 -1
- package/dist/components/ui/SheetContent.vue.d.ts.map +1 -1
- package/dist/components/ui/SheetContent.vue_vue_type_script_setup_true_lang.js +13 -12
- package/dist/components/ui/SheetContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ui/TooltipContent.js.map +1 -1
- package/dist/components/ui/TooltipContent.vue.d.ts.map +1 -1
- package/dist/components/ui/TooltipContent.vue_vue_type_script_setup_true_lang.js +9 -8
- package/dist/components/ui/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/context.d.ts +7 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +29 -26
- package/dist/context.js.map +1 -1
- package/dist/create-alfakit.d.ts.map +1 -1
- package/dist/create-alfakit.js +33 -31
- package/dist/create-alfakit.js.map +1 -1
- package/dist/eject-manifest.json +11 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +219 -217
- package/dist/layouts/AppLayout.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/layouts/AppLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/layouts/AuthLayout.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/layouts/FullscreenLayout.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/layouts/FullscreenLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/layouts/TopNavLayout.vue_vue_type_script_setup_true_lang.js +15 -15
- package/dist/layouts/TopNavLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/layouts/lazy-layouts.d.ts +10 -0
- package/dist/layouts/lazy-layouts.d.ts.map +1 -0
- package/dist/layouts/lazy-layouts.js +8 -0
- package/dist/layouts/lazy-layouts.js.map +1 -0
- package/dist/layouts/panel-layouts.d.ts +8 -0
- package/dist/layouts/panel-layouts.d.ts.map +1 -0
- package/dist/layouts/panel-layouts.js +15 -0
- package/dist/layouts/panel-layouts.js.map +1 -0
- package/dist/lib/lazy.d.ts.map +1 -1
- package/dist/lib/lazy.js +2 -2
- package/dist/lib/lazy.js.map +1 -1
- package/dist/pages/PageShell.js.map +1 -1
- package/dist/pages/PageShell.vue.d.ts.map +1 -1
- package/dist/pages/PageShell.vue_vue_type_script_setup_true_lang.js +39 -42
- package/dist/pages/PageShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/standalone/AlfakitComponent.js.map +1 -1
- package/dist/standalone/AlfakitComponent.vue.d.ts.map +1 -1
- package/dist/standalone/AlfakitComponent.vue_vue_type_script_setup_true_lang.js +56 -52
- package/dist/standalone/AlfakitComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/standalone.css +7 -0
- package/dist/starter-kit/AlfakitStarterKitRoot.js.map +1 -1
- package/dist/starter-kit/AlfakitStarterKitRoot.vue.d.ts +2 -2
- package/dist/starter-kit/AlfakitStarterKitRoot.vue.d.ts.map +1 -1
- package/dist/starter-kit/AlfakitStarterKitRoot.vue_vue_type_script_setup_true_lang.js +17 -12
- package/dist/starter-kit/AlfakitStarterKitRoot.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/starter-kit/dashboard-widgets.d.ts +54 -0
- package/dist/starter-kit/dashboard-widgets.d.ts.map +1 -0
- package/dist/starter-kit/dashboard-widgets.js +54 -0
- package/dist/starter-kit/dashboard-widgets.js.map +1 -0
- package/dist/starter-kit/index.d.ts +2 -1
- package/dist/starter-kit/index.d.ts.map +1 -1
- package/dist/starter-kit/index.js +5 -4
- package/dist/starter-kit/runtime.d.ts +6 -0
- package/dist/starter-kit/runtime.d.ts.map +1 -1
- package/dist/starter-kit/runtime.js +19 -15
- package/dist/starter-kit/runtime.js.map +1 -1
- package/dist/starter-kit/starter-kit.d.ts.map +1 -1
- package/dist/starter-kit/starter-kit.js +8 -8
- package/dist/starter-kit/starter-kit.js.map +1 -1
- package/dist/starter-kit/widgets/CopilotTrigger.js +7 -0
- package/dist/starter-kit/widgets/CopilotTrigger.js.map +1 -0
- package/dist/starter-kit/widgets/CopilotTrigger.vue.d.ts +12 -0
- package/dist/starter-kit/widgets/CopilotTrigger.vue.d.ts.map +1 -0
- package/dist/starter-kit/widgets/CopilotTrigger.vue_vue_type_script_setup_true_lang.js +23 -0
- package/dist/starter-kit/widgets/CopilotTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/starter-kit/widgets/LoadedCopilot.js +7 -0
- package/dist/starter-kit/widgets/LoadedCopilot.js.map +1 -0
- package/dist/starter-kit/widgets/LoadedCopilot.vue.d.ts +8 -0
- package/dist/starter-kit/widgets/LoadedCopilot.vue.d.ts.map +1 -0
- package/dist/starter-kit/widgets/LoadedCopilot.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/starter-kit/widgets/LoadedCopilot.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.js +7 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.js.map +1 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue.d.ts +8 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue.d.ts.map +1 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue_vue_type_script_setup_true_lang.js +34 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/starter-kit/widgets/index.d.ts +40 -9
- package/dist/starter-kit/widgets/index.d.ts.map +1 -1
- package/dist/starter-kit/widgets/index.js +21 -18
- package/dist/starter-kit/widgets/index.js.map +1 -1
- package/dist/starter-kit/widgets/loaded.d.ts +10 -0
- package/dist/starter-kit/widgets/loaded.d.ts.map +1 -0
- package/dist/starter-kit/widgets/loaded.js +5 -0
- package/dist/styles.css +9 -2
- package/dist/themes.css +6 -1
- package/package.json +2 -2
- package/src/AlfakitRoot.vue +9 -1
- package/src/components/actions/ActionGroupMenu.vue +13 -1
- package/src/components/actions/ActionModal.vue +9 -0
- package/src/components/ai/AiCopilot.vue +7 -1
- package/src/components/cms/LivePreview.vue +8 -2
- package/src/components/fields/BuilderField.vue +15 -2
- package/src/components/fields/ImageEditorDialog.vue +7 -3
- package/src/components/fields/KeyValueField.vue +3 -2
- package/src/components/fields/ModalTablePicker.vue +7 -2
- package/src/components/fields/RepeaterField.vue +2 -3
- package/src/components/fields/RichEditorInput.vue +3 -0
- package/src/components/fields/item-actions.ts +31 -10
- package/src/components/form/FormBlock.vue +2 -1
- package/src/components/form/form-context.ts +2 -2
- package/src/components/kanban/KanbanBoard.vue +15 -3
- package/src/components/kanban/KanbanColumnHeader.vue +6 -4
- package/src/components/layout/SectionComponent.vue +10 -4
- package/src/components/panel/GlobalSearchPalette.vue +2 -0
- package/src/components/realtime/use-live-updates.ts +3 -1
- package/src/components/table/ColumnHeader.vue +23 -12
- package/src/components/table/ColumnManager.vue +12 -8
- package/src/components/table/ContentLayoutSort.vue +7 -1
- package/src/components/table/TableCellContent.vue +4 -2
- package/src/components/table/TablePagination.vue +12 -7
- package/src/components/table/cell-update.ts +6 -0
- package/src/components/ui/CommandAutoHighlight.vue +27 -0
- package/src/components/ui/DialogContent.vue +5 -1
- package/src/components/ui/PopoverContent.vue +5 -1
- package/src/components/ui/SheetContent.vue +5 -1
- package/src/components/ui/TooltipContent.vue +5 -1
- package/src/context.ts +10 -0
- package/src/create-alfakit.ts +5 -0
- package/src/index.ts +2 -0
- package/src/layouts/lazy-layouts.ts +14 -0
- package/src/layouts/panel-layouts.ts +17 -0
- package/src/lib/lazy.ts +11 -1
- package/src/pages/PageShell.vue +5 -6
- package/src/standalone/AlfakitComponent.vue +17 -6
- package/src/starter-kit/AlfakitStarterKitRoot.vue +12 -3
- package/src/starter-kit/dashboard-widgets.ts +93 -0
- package/src/starter-kit/index.ts +7 -1
- package/src/starter-kit/runtime.ts +17 -1
- package/src/starter-kit/starter-kit.ts +2 -1
- package/src/starter-kit/widgets/CopilotTrigger.vue +58 -0
- package/src/starter-kit/widgets/LoadedCopilot.vue +29 -0
- package/src/starter-kit/widgets/StarterKitImpersonationBanner.vue +57 -0
- package/src/starter-kit/widgets/index.ts +56 -11
- package/src/starter-kit/widgets/loaded.ts +9 -0
- package/src/styles.css +9 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalTablePicker.js","names":["_sfc_main","ModalTablePicker_vue_vue_type_script_setup_true_lang_default","ModalTablePicker_default"],"sources":["../../../src/components/fields/ModalTablePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ModalTableSelectResponse, ModalTableSelectSchema, TableQuery } from '@alfakit/core'\nimport {\n FILTERS_MODAL_WIDTH_CLASSES,\n debounce,\n modalTablePaging,\n toggleModalTableKey,\n} from '@alfakit/core'\nimport {\n ArrowDownIcon,\n ArrowUpDownIcon,\n ArrowUpIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n SearchIcon,\n} from '@lucide/vue'\nimport { computed, onScopeDispose, ref, watch } from 'vue'\nimport { useChoice, useT } from '../../context'\nimport { cn } from '../../lib/utils'\nimport { useFormStore } from '../form/form-context'\nimport TableCellContent from '../table/TableCellContent.vue'\nimport Button from '../ui/Button.vue'\nimport Checkbox from '../ui/Checkbox.vue'\nimport Dialog from '../ui/Dialog.vue'\nimport DialogContent from '../ui/DialogContent.vue'\nimport DialogDescription from '../ui/DialogDescription.vue'\nimport DialogFooter from '../ui/DialogFooter.vue'\nimport DialogHeader from '../ui/DialogHeader.vue'\nimport DialogTitle from '../ui/DialogTitle.vue'\nimport Input from '../ui/Input.vue'\nimport Skeleton from '../ui/Skeleton.vue'\nimport Table from '../ui/Table.vue'\nimport TableBody from '../ui/TableBody.vue'\nimport TableCell from '../ui/TableCell.vue'\nimport TableHead from '../ui/TableHead.vue'\nimport TableHeader from '../ui/TableHeader.vue'\nimport TableRow from '../ui/TableRow.vue'\nimport ModalTablePickerFilters from './ModalTablePickerFilters.vue'\n\nconst props = defineProps<{ component: ModalTableSelectSchema; initial: string[] }>()\nconst emit = defineEmits<{\n close: []\n confirm: [keys: string[], labels: Record<string, string>]\n}>()\nconst t = useT()\nconst choice = useChoice()\nconst form = useFormStore()\nconst multiple = computed(() => Boolean(props.component.multiple))\nconst query = ref<TableQuery>({})\nconst response = ref<ModalTableSelectResponse | null>(null)\nconst failed = ref(false)\nconst loading = ref(true)\nconst draft = ref<string[]>([...props.initial])\nconst labels = ref<Record<string, string>>({})\nconst search = ref('')\nlet controller: AbortController | null = null\n\nconst load = () => {\n controller?.abort()\n const current = new AbortController()\n controller = current\n loading.value = true\n\n form\n .modalTable(\n props.component.statePath,\n props.component.tableStateIdentifier,\n query.value,\n current.signal,\n )\n .then((next) => {\n if (!next) return\n response.value = next\n labels.value = { ...labels.value, ...next.labels }\n failed.value = false\n })\n .catch((error: unknown) => {\n if ((error as { name?: string }).name !== 'AbortError') failed.value = true\n })\n .finally(() => {\n if (!current.signal.aborted) loading.value = false\n })\n}\n\nwatch(query, load, { immediate: true, deep: true })\nonScopeDispose(() => controller?.abort())\n\nconst table = computed(() => response.value?.table)\nconst pushSearch = debounce((next: string) => {\n query.value = { ...query.value, search: next || null, page: null }\n}, 400)\nonScopeDispose(() => pushSearch.cancel())\n\nconst columns = computed(() =>\n table.value\n ? table.value.columns.filter((column) => table.value!.visibleColumns.includes(column.name))\n : [],\n)\nconst records = computed(() => table.value?.records ?? [])\nconst paging = computed(() => modalTablePaging(table.value?.pagination))\nconst atMax = computed(\n () =>\n multiple.value &&\n props.component.maxItems != null &&\n draft.value.length >= props.component.maxItems,\n)\nconst hasToolbar = computed(\n () => Boolean(table.value?.searchable) || (table.value?.filters?.length ?? 0) > 0,\n)\n\nconst toggle = (key: string) => {\n draft.value = toggleModalTableKey(draft.value, key, multiple.value, props.component.maxItems)\n}\nconst isSelectable = (key: string, selectable: boolean | undefined) =>\n selectable === true && (draft.value.includes(key) || !atMax.value)\nconst sort = (column: string) => {\n const direction =\n table.value?.sort?.column === column && table.value.sort.direction === 'asc' ? 'desc' : 'asc'\n query.value = { ...query.value, sort: column, direction, page: null }\n}\nconst ariaSortOf = (column: string) =>\n table.value?.sort?.column === column\n ? table.value.sort.direction === 'asc'\n ? 'ascending'\n : 'descending'\n : undefined\nconst goTo = (page: number) => {\n query.value = { ...query.value, page }\n}\nconst confirm = () =>\n emit(\n 'confirm',\n draft.value,\n Object.fromEntries(\n draft.value.filter((key) => labels.value[key]).map((key) => [key, labels.value[key]!]),\n ),\n )\n</script>\n\n<template>\n <Dialog :open=\"true\" @update:open=\"(open) => !open && emit('close')\">\n <DialogContent\n :class=\"\n cn(\n 'flex max-h-[90vh] flex-col gap-4',\n FILTERS_MODAL_WIDTH_CLASSES[props.component.modalWidth ?? '3xl'] ?? 'sm:max-w-3xl',\n )\n \"\n data-slot=\"modal-table-select-dialog\"\n >\n <DialogHeader>\n <DialogTitle>{{ props.component.modalHeading }}</DialogTitle>\n <!-- Escaped on the server (`Html::from()`), like action modal descriptions. -->\n <p\n v-if=\"props.component.modalDescription\"\n class=\"text-muted-foreground text-sm\"\n data-slot=\"modal-table-select-description\"\n v-html=\"props.component.modalDescription\"\n />\n <DialogDescription aria-live=\"polite\">{{\n choice('table.selected', draft.length, { count: draft.length }, ':count selected')\n }}</DialogDescription>\n </DialogHeader>\n <div v-if=\"table && hasToolbar\" class=\"flex flex-col gap-3\">\n <div v-if=\"table.searchable\" class=\"relative\">\n <SearchIcon\n class=\"text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 size-4 -translate-y-1/2\"\n />\n <Input\n type=\"search\"\n :model-value=\"search\"\n :aria-label=\"table.searchPlaceholder\"\n :placeholder=\"table.searchPlaceholder\"\n class=\"ps-8\"\n @update:model-value=\"\n (next) => {\n search = String(next)\n pushSearch(String(next))\n }\n \"\n />\n </div>\n <ModalTablePickerFilters\n v-if=\"(table.filters?.length ?? 0) > 0\"\n :table=\"table\"\n :owner=\"form\"\n :path=\"props.component.statePath\"\n @change=\"(filters) => (query = { ...query, filters, page: null })\"\n />\n </div>\n <div class=\"min-h-0 flex-1 overflow-auto rounded-md border\" :aria-busy=\"loading\">\n <p v-if=\"failed\" role=\"alert\" class=\"text-destructive p-6 text-center text-sm\">\n {{ t('table_select.load_failed', {}, \"Couldn't load the records.\") }}\n </p>\n <div v-else-if=\"!table\" class=\"flex flex-col gap-2 p-4\" aria-hidden=\"true\">\n <Skeleton class=\"h-8 w-full\" />\n <Skeleton class=\"h-8 w-full\" />\n <Skeleton class=\"h-8 w-full\" />\n </div>\n <p v-else-if=\"records.length === 0\" class=\"text-muted-foreground p-6 text-center text-sm\">\n {{ table.emptyState.heading }}\n </p>\n <Table v-else :class=\"cn(loading && 'opacity-60')\">\n <TableHeader>\n <TableRow>\n <TableHead class=\"w-10\"\n ><span class=\"sr-only\">{{\n t('table.select_row', {}, 'Select row')\n }}</span></TableHead\n >\n <TableHead\n v-for=\"column in columns\"\n :key=\"column.name\"\n :aria-sort=\"ariaSortOf(column.name)\"\n >\n <button\n v-if=\"column.sortable\"\n type=\"button\"\n class=\"inline-flex items-center gap-1\"\n @click=\"sort(column.name)\"\n >\n {{ column.label }}\n <template v-if=\"table.sort?.column === column.name\">\n <ArrowUpIcon v-if=\"table.sort.direction === 'asc'\" class=\"size-3.5\" />\n <ArrowDownIcon v-else class=\"size-3.5\" />\n </template>\n <ArrowUpDownIcon v-else class=\"text-muted-foreground size-3.5\" />\n </button>\n <template v-else>{{ column.label }}</template>\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow\n v-for=\"record in records\"\n :key=\"String(record.key)\"\n :data-state=\"draft.includes(String(record.key)) ? 'selected' : undefined\"\n :class=\"cn(isSelectable(String(record.key), record.selectable) && 'cursor-pointer')\"\n @click=\"\n isSelectable(String(record.key), record.selectable) && toggle(String(record.key))\n \"\n >\n <TableCell class=\"w-10\" @click.stop>\n <Checkbox\n v-if=\"multiple\"\n :model-value=\"draft.includes(String(record.key))\"\n :disabled=\"!isSelectable(String(record.key), record.selectable)\"\n :aria-label=\"\n t(\n 'table_select.select_record',\n { label: labels[String(record.key)] ?? String(record.key) },\n 'Select :label',\n )\n \"\n @update:model-value=\"toggle(String(record.key))\"\n />\n <input\n v-else\n type=\"radio\"\n :name=\"`${props.component.statePath}-picker`\"\n class=\"accent-primary size-4\"\n :checked=\"draft.includes(String(record.key))\"\n :disabled=\"!isSelectable(String(record.key), record.selectable)\"\n :aria-label=\"\n t(\n 'table_select.select_record',\n { label: labels[String(record.key)] ?? String(record.key) },\n 'Select :label',\n )\n \"\n @change=\"toggle(String(record.key))\"\n />\n </TableCell>\n <TableCell v-for=\"column in columns\" :key=\"column.name\">\n <TableCellContent\n v-if=\"record.cells[column.name]\"\n :column=\"column\"\n :cell=\"record.cells[column.name]!\"\n :record-key=\"record.key\"\n token=\"\"\n :component=\"`picker:${props.component.statePath}`\"\n />\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </div>\n <p v-if=\"atMax\" class=\"text-muted-foreground text-sm\" role=\"status\">\n {{\n choice(\n 'table_select.max_reached',\n props.component.maxItems ?? 0,\n { count: props.component.maxItems ?? 0 },\n 'You can select up to :count records.',\n )\n }}\n </p>\n <DialogFooter class=\"items-center sm:justify-between\">\n <nav\n v-if=\"paging\"\n class=\"flex items-center gap-2\"\n :aria-label=\"t('pagination', {}, 'Pagination')\"\n >\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n :disabled=\"!paging.hasPrevious || loading\"\n :aria-label=\"t('table.previous', {}, 'Previous')\"\n @click=\"goTo(paging.page - 1)\"\n ><ChevronLeftIcon class=\"rtl:rotate-180\"\n /></Button>\n <span class=\"text-muted-foreground text-sm\">{{\n paging.total !== undefined\n ? t(\n 'table.showing',\n { first: paging.from, last: paging.to, total: paging.total },\n 'Showing :first–:last of :total',\n )\n : `${paging.from}–${paging.to}`\n }}</span>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n :disabled=\"!paging.hasNext || loading\"\n :aria-label=\"t('table.next', {}, 'Next')\"\n @click=\"goTo(paging.page + 1)\"\n ><ChevronRightIcon class=\"rtl:rotate-180\"\n /></Button>\n </nav>\n <span v-else />\n <div class=\"flex gap-2\">\n <Button v-if=\"draft.length > 0\" type=\"button\" variant=\"ghost\" @click=\"draft = []\">{{\n t('table_select.clear', {}, 'Clear selection')\n }}</Button>\n <Button type=\"button\" variant=\"outline\" @click=\"emit('close')\">{{\n t('cancel', {}, 'Cancel')\n }}</Button>\n <Button type=\"button\" @click=\"confirm\">{{\n props.component.modalSubmitActionLabel ?? t('table_select.confirm', {}, 'Select')\n }}</Button>\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ModalTablePicker.js","names":["_sfc_main","ModalTablePicker_vue_vue_type_script_setup_true_lang_default","ModalTablePicker_default"],"sources":["../../../src/components/fields/ModalTablePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ModalTableSelectResponse, ModalTableSelectSchema, TableQuery } from '@alfakit/core'\nimport {\n FILTERS_MODAL_WIDTH_CLASSES,\n debounce,\n modalTablePaging,\n toggleModalTableKey,\n} from '@alfakit/core'\nimport {\n ArrowDownIcon,\n ArrowUpDownIcon,\n ArrowUpIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n SearchIcon,\n} from '@lucide/vue'\nimport { computed, onScopeDispose, ref, watch } from 'vue'\nimport { useChoice, useFormatter, useT } from '../../context'\nimport { cn } from '../../lib/utils'\nimport { useFormStore } from '../form/form-context'\nimport TableCellContent from '../table/TableCellContent.vue'\nimport Button from '../ui/Button.vue'\nimport Checkbox from '../ui/Checkbox.vue'\nimport Dialog from '../ui/Dialog.vue'\nimport DialogContent from '../ui/DialogContent.vue'\nimport DialogDescription from '../ui/DialogDescription.vue'\nimport DialogFooter from '../ui/DialogFooter.vue'\nimport DialogHeader from '../ui/DialogHeader.vue'\nimport DialogTitle from '../ui/DialogTitle.vue'\nimport Input from '../ui/Input.vue'\nimport Skeleton from '../ui/Skeleton.vue'\nimport Table from '../ui/Table.vue'\nimport TableBody from '../ui/TableBody.vue'\nimport TableCell from '../ui/TableCell.vue'\nimport TableHead from '../ui/TableHead.vue'\nimport TableHeader from '../ui/TableHeader.vue'\nimport TableRow from '../ui/TableRow.vue'\nimport ModalTablePickerFilters from './ModalTablePickerFilters.vue'\n\nconst props = defineProps<{ component: ModalTableSelectSchema; initial: string[] }>()\nconst emit = defineEmits<{\n close: []\n confirm: [keys: string[], labels: Record<string, string>]\n}>()\nconst t = useT()\nconst format = useFormatter()\nconst choice = useChoice()\nconst form = useFormStore()\nconst multiple = computed(() => Boolean(props.component.multiple))\nconst query = ref<TableQuery>({})\nconst response = ref<ModalTableSelectResponse | null>(null)\nconst failed = ref(false)\nconst loading = ref(true)\nconst draft = ref<string[]>([...props.initial])\nconst labels = ref<Record<string, string>>({})\nconst search = ref('')\nlet controller: AbortController | null = null\n\nconst load = () => {\n controller?.abort()\n const current = new AbortController()\n controller = current\n loading.value = true\n\n form\n .modalTable(\n props.component.statePath,\n props.component.tableStateIdentifier,\n query.value,\n current.signal,\n )\n .then((next) => {\n if (!next) return\n response.value = next\n labels.value = { ...labels.value, ...next.labels }\n failed.value = false\n })\n .catch((error: unknown) => {\n if ((error as { name?: string }).name !== 'AbortError') failed.value = true\n })\n .finally(() => {\n if (!current.signal.aborted) loading.value = false\n })\n}\n\nwatch(query, load, { immediate: true, deep: true })\nonScopeDispose(() => controller?.abort())\n\nconst table = computed(() => response.value?.table)\nconst pushSearch = debounce((next: string) => {\n query.value = { ...query.value, search: next || null, page: null }\n}, 400)\nonScopeDispose(() => pushSearch.cancel())\n\nconst columns = computed(() =>\n table.value\n ? table.value.columns.filter((column) => table.value!.visibleColumns.includes(column.name))\n : [],\n)\nconst records = computed(() => table.value?.records ?? [])\nconst paging = computed(() => modalTablePaging(table.value?.pagination))\nconst atMax = computed(\n () =>\n multiple.value &&\n props.component.maxItems != null &&\n draft.value.length >= props.component.maxItems,\n)\nconst hasToolbar = computed(\n () => Boolean(table.value?.searchable) || (table.value?.filters?.length ?? 0) > 0,\n)\n\nconst toggle = (key: string) => {\n draft.value = toggleModalTableKey(draft.value, key, multiple.value, props.component.maxItems)\n}\nconst isSelectable = (key: string, selectable: boolean | undefined) =>\n selectable === true && (draft.value.includes(key) || !atMax.value)\nconst sort = (column: string) => {\n const direction =\n table.value?.sort?.column === column && table.value.sort.direction === 'asc' ? 'desc' : 'asc'\n query.value = { ...query.value, sort: column, direction, page: null }\n}\nconst ariaSortOf = (column: string) =>\n table.value?.sort?.column === column\n ? table.value.sort.direction === 'asc'\n ? 'ascending'\n : 'descending'\n : undefined\nconst goTo = (page: number) => {\n query.value = { ...query.value, page }\n}\nconst confirm = () =>\n emit(\n 'confirm',\n draft.value,\n Object.fromEntries(\n draft.value.filter((key) => labels.value[key]).map((key) => [key, labels.value[key]!]),\n ),\n )\n</script>\n\n<template>\n <Dialog :open=\"true\" @update:open=\"(open) => !open && emit('close')\">\n <DialogContent\n :class=\"\n cn(\n 'flex max-h-[90vh] flex-col gap-4',\n FILTERS_MODAL_WIDTH_CLASSES[props.component.modalWidth ?? '3xl'] ?? 'sm:max-w-3xl',\n )\n \"\n data-slot=\"modal-table-select-dialog\"\n >\n <DialogHeader>\n <DialogTitle>{{ props.component.modalHeading }}</DialogTitle>\n <!-- Escaped on the server (`Html::from()`), like action modal descriptions. -->\n <p\n v-if=\"props.component.modalDescription\"\n class=\"text-muted-foreground text-sm\"\n data-slot=\"modal-table-select-description\"\n v-html=\"props.component.modalDescription\"\n />\n <DialogDescription aria-live=\"polite\">{{\n choice('table.selected', draft.length, { count: draft.length }, ':count selected')\n }}</DialogDescription>\n </DialogHeader>\n <div v-if=\"table && hasToolbar\" class=\"flex flex-col gap-3\">\n <div v-if=\"table.searchable\" class=\"relative\">\n <SearchIcon\n class=\"text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 size-4 -translate-y-1/2\"\n />\n <Input\n type=\"search\"\n :model-value=\"search\"\n :aria-label=\"table.searchPlaceholder\"\n :placeholder=\"table.searchPlaceholder\"\n class=\"ps-8\"\n @update:model-value=\"\n (next) => {\n search = String(next)\n pushSearch(String(next))\n }\n \"\n />\n </div>\n <ModalTablePickerFilters\n v-if=\"(table.filters?.length ?? 0) > 0\"\n :table=\"table\"\n :owner=\"form\"\n :path=\"props.component.statePath\"\n @change=\"(filters) => (query = { ...query, filters, page: null })\"\n />\n </div>\n <div class=\"min-h-0 flex-1 overflow-auto rounded-md border\" :aria-busy=\"loading\">\n <p v-if=\"failed\" role=\"alert\" class=\"text-destructive p-6 text-center text-sm\">\n {{ t('table_select.load_failed', {}, \"Couldn't load the records.\") }}\n </p>\n <div v-else-if=\"!table\" class=\"flex flex-col gap-2 p-4\" aria-hidden=\"true\">\n <Skeleton class=\"h-8 w-full\" />\n <Skeleton class=\"h-8 w-full\" />\n <Skeleton class=\"h-8 w-full\" />\n </div>\n <p v-else-if=\"records.length === 0\" class=\"text-muted-foreground p-6 text-center text-sm\">\n {{ table.emptyState.heading }}\n </p>\n <Table v-else :class=\"cn(loading && 'opacity-60')\">\n <TableHeader>\n <TableRow>\n <TableHead class=\"w-10\"\n ><span class=\"sr-only\">{{\n t('table.select_row', {}, 'Select row')\n }}</span></TableHead\n >\n <TableHead\n v-for=\"column in columns\"\n :key=\"column.name\"\n :aria-sort=\"ariaSortOf(column.name)\"\n >\n <button\n v-if=\"column.sortable\"\n type=\"button\"\n class=\"inline-flex items-center gap-1\"\n @click=\"sort(column.name)\"\n >\n {{ column.label }}\n <template v-if=\"table.sort?.column === column.name\">\n <ArrowUpIcon v-if=\"table.sort.direction === 'asc'\" class=\"size-3.5\" />\n <ArrowDownIcon v-else class=\"size-3.5\" />\n </template>\n <ArrowUpDownIcon v-else class=\"text-muted-foreground size-3.5\" />\n </button>\n <template v-else>{{ column.label }}</template>\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow\n v-for=\"record in records\"\n :key=\"String(record.key)\"\n :data-state=\"draft.includes(String(record.key)) ? 'selected' : undefined\"\n :class=\"cn(isSelectable(String(record.key), record.selectable) && 'cursor-pointer')\"\n @click=\"\n isSelectable(String(record.key), record.selectable) && toggle(String(record.key))\n \"\n >\n <TableCell class=\"w-10\" @click.stop>\n <Checkbox\n v-if=\"multiple\"\n :model-value=\"draft.includes(String(record.key))\"\n :disabled=\"!isSelectable(String(record.key), record.selectable)\"\n :aria-label=\"\n t(\n 'table_select.select_record',\n { label: labels[String(record.key)] ?? String(record.key) },\n 'Select :label',\n )\n \"\n @update:model-value=\"toggle(String(record.key))\"\n />\n <input\n v-else\n type=\"radio\"\n :name=\"`${props.component.statePath}-picker`\"\n class=\"accent-primary size-4\"\n :checked=\"draft.includes(String(record.key))\"\n :disabled=\"!isSelectable(String(record.key), record.selectable)\"\n :aria-label=\"\n t(\n 'table_select.select_record',\n { label: labels[String(record.key)] ?? String(record.key) },\n 'Select :label',\n )\n \"\n @change=\"toggle(String(record.key))\"\n />\n </TableCell>\n <TableCell v-for=\"column in columns\" :key=\"column.name\">\n <TableCellContent\n v-if=\"record.cells[column.name]\"\n :column=\"column\"\n :cell=\"record.cells[column.name]!\"\n :record-key=\"record.key\"\n token=\"\"\n :component=\"`picker:${props.component.statePath}`\"\n />\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </div>\n <p v-if=\"atMax\" class=\"text-muted-foreground text-sm\" role=\"status\">\n {{\n choice(\n 'table_select.max_reached',\n props.component.maxItems ?? 0,\n { count: props.component.maxItems ?? 0 },\n 'You can select up to :count records.',\n )\n }}\n </p>\n <DialogFooter class=\"items-center sm:justify-between\">\n <nav\n v-if=\"paging\"\n class=\"flex items-center gap-2\"\n :aria-label=\"t('pagination', {}, 'Pagination')\"\n >\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n :disabled=\"!paging.hasPrevious || loading\"\n :aria-label=\"t('table.previous', {}, 'Previous')\"\n @click=\"goTo(paging.page - 1)\"\n ><ChevronLeftIcon class=\"rtl:rotate-180\"\n /></Button>\n <span class=\"text-muted-foreground text-sm\">{{\n paging.total !== undefined\n ? t(\n 'table.showing',\n {\n first: format.number(paging.from),\n last: format.number(paging.to),\n total: format.number(paging.total),\n },\n 'Showing :first–:last of :total',\n )\n : `${paging.from}–${paging.to}`\n }}</span>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n :disabled=\"!paging.hasNext || loading\"\n :aria-label=\"t('table.next', {}, 'Next')\"\n @click=\"goTo(paging.page + 1)\"\n ><ChevronRightIcon class=\"rtl:rotate-180\"\n /></Button>\n </nav>\n <span v-else />\n <div class=\"flex gap-2\">\n <Button v-if=\"draft.length > 0\" type=\"button\" variant=\"ghost\" @click=\"draft = []\">{{\n t('table_select.clear', {}, 'Clear selection')\n }}</Button>\n <Button type=\"button\" variant=\"outline\" @click=\"emit('close')\">{{\n t('cancel', {}, 'Cancel')\n }}</Button>\n <Button type=\"button\" @click=\"confirm\">{{\n props.component.modalSubmitActionLabel ?? t('table_select.confirm', {}, 'Select')\n }}</Button>\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalTablePicker.vue.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ModalTablePicker.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModalTablePicker.vue.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ModalTablePicker.vue"],"names":[],"mappings":"AAkWA,OAAO,KAAK,EAA4B,sBAAsB,EAAc,MAAM,eAAe,CAAA;AAsCjG,KAAK,WAAW,GAAG;IAAE,SAAS,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;;;;;;;;AA63B5E,wBAOG"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { useChoice as e,
|
|
1
|
+
import { useChoice as e, useFormatter as t, useT as ee } from "../../context.js";
|
|
2
2
|
import { cn as n } from "../../lib/utils.js";
|
|
3
3
|
import r from "../ui/Button2.js";
|
|
4
|
-
import { useFormStore as
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
4
|
+
import { useFormStore as te } from "../form/form-context.js";
|
|
5
|
+
import ne from "../ui/Checkbox.js";
|
|
6
|
+
import re from "../ui/Input.js";
|
|
7
|
+
import ie from "../ui/Table.js";
|
|
8
|
+
import ae from "../ui/TableBody.js";
|
|
9
9
|
import i from "../ui/TableCell.js";
|
|
10
10
|
import a from "../ui/TableHead.js";
|
|
11
|
-
import
|
|
11
|
+
import oe from "../ui/TableHeader.js";
|
|
12
12
|
import o from "../ui/TableRow.js";
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
13
|
+
import se from "../ui/Dialog.js";
|
|
14
|
+
import ce from "../ui/DialogContent.js";
|
|
15
|
+
import le from "../ui/DialogDescription.js";
|
|
16
|
+
import ue from "../ui/DialogHeader.js";
|
|
17
|
+
import de from "../ui/DialogTitle.js";
|
|
18
|
+
import fe from "../table/TableCellContent.js";
|
|
19
|
+
import pe from "../ui/DialogFooter.js";
|
|
20
20
|
import s from "../ui/Skeleton.js";
|
|
21
|
-
import
|
|
21
|
+
import c from "./ModalTablePickerFilters.js";
|
|
22
22
|
import { FILTERS_MODAL_WIDTH_CLASSES as me, debounce as he, modalTablePaging as ge, toggleModalTableKey as _e } from "@alfakit/core";
|
|
23
|
-
import { Fragment as
|
|
24
|
-
import { ArrowDownIcon as be, ArrowUpDownIcon as xe, ArrowUpIcon as Se, ChevronLeftIcon as
|
|
23
|
+
import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, normalizeClass as v, onScopeDispose as y, openBlock as b, ref as x, renderList as S, toDisplayString as C, unref as w, watch as ve, withCtx as T, withModifiers as ye } from "vue";
|
|
24
|
+
import { ArrowDownIcon as be, ArrowUpDownIcon as xe, ArrowUpIcon as Se, ChevronLeftIcon as Ce, ChevronRightIcon as we, SearchIcon as Te } from "@lucide/vue";
|
|
25
25
|
//#region src/components/fields/ModalTablePicker.vue?vue&type=script&setup=true&lang.ts
|
|
26
26
|
var E = ["innerHTML"], D = {
|
|
27
27
|
key: 0,
|
|
@@ -29,40 +29,40 @@ var E = ["innerHTML"], D = {
|
|
|
29
29
|
}, O = {
|
|
30
30
|
key: 0,
|
|
31
31
|
class: "relative"
|
|
32
|
-
},
|
|
32
|
+
}, Ee = ["aria-busy"], De = {
|
|
33
33
|
key: 0,
|
|
34
34
|
role: "alert",
|
|
35
35
|
class: "text-destructive p-6 text-center text-sm"
|
|
36
|
-
},
|
|
36
|
+
}, Oe = {
|
|
37
37
|
key: 1,
|
|
38
38
|
class: "flex flex-col gap-2 p-4",
|
|
39
39
|
"aria-hidden": "true"
|
|
40
|
-
},
|
|
40
|
+
}, ke = {
|
|
41
41
|
key: 2,
|
|
42
42
|
class: "text-muted-foreground p-6 text-center text-sm"
|
|
43
|
-
},
|
|
43
|
+
}, Ae = { class: "sr-only" }, je = ["onClick"], Me = [
|
|
44
44
|
"name",
|
|
45
45
|
"checked",
|
|
46
46
|
"disabled",
|
|
47
47
|
"aria-label",
|
|
48
48
|
"onChange"
|
|
49
|
-
],
|
|
49
|
+
], Ne = {
|
|
50
50
|
key: 1,
|
|
51
51
|
class: "text-muted-foreground text-sm",
|
|
52
52
|
role: "status"
|
|
53
|
-
},
|
|
53
|
+
}, Pe = ["aria-label"], Fe = { class: "text-muted-foreground text-sm" }, Ie = { key: 1 }, Le = { class: "flex gap-2" }, k = /*@__PURE__*/ _({
|
|
54
54
|
__name: "ModalTablePicker",
|
|
55
55
|
props: {
|
|
56
56
|
component: {},
|
|
57
57
|
initial: {}
|
|
58
58
|
},
|
|
59
59
|
emits: ["close", "confirm"],
|
|
60
|
-
setup(
|
|
61
|
-
let j =
|
|
60
|
+
setup(_, { emit: k }) {
|
|
61
|
+
let A = _, j = k, M = ee(), N = t(), P = e(), F = te(), I = u(() => !!A.component.multiple), L = x({}), R = x(null), z = x(!1), B = x(!0), V = x([...A.initial]), H = x({}), U = x(""), W = null;
|
|
62
62
|
ve(L, () => {
|
|
63
63
|
W?.abort();
|
|
64
64
|
let e = new AbortController();
|
|
65
|
-
W = e, B.value = !0, F.modalTable(
|
|
65
|
+
W = e, B.value = !0, F.modalTable(A.component.statePath, A.component.tableStateIdentifier, L.value, e.signal).then((e) => {
|
|
66
66
|
e && (R.value = e, H.value = {
|
|
67
67
|
...H.value,
|
|
68
68
|
...e.labels
|
|
@@ -75,18 +75,18 @@ var E = ["innerHTML"], D = {
|
|
|
75
75
|
}, {
|
|
76
76
|
immediate: !0,
|
|
77
77
|
deep: !0
|
|
78
|
-
}),
|
|
79
|
-
let G =
|
|
78
|
+
}), y(() => W?.abort());
|
|
79
|
+
let G = u(() => R.value?.table), K = he((e) => {
|
|
80
80
|
L.value = {
|
|
81
81
|
...L.value,
|
|
82
82
|
search: e || null,
|
|
83
83
|
page: null
|
|
84
84
|
};
|
|
85
85
|
}, 400);
|
|
86
|
-
|
|
87
|
-
let q =
|
|
88
|
-
V.value = _e(V.value, e, I.value,
|
|
89
|
-
}, Q = (e, t) => t === !0 && (V.value.includes(e) || !X.value),
|
|
86
|
+
y(() => K.cancel());
|
|
87
|
+
let q = u(() => G.value ? G.value.columns.filter((e) => G.value.visibleColumns.includes(e.name)) : []), J = u(() => G.value?.records ?? []), Y = u(() => ge(G.value?.pagination)), X = u(() => I.value && A.component.maxItems != null && V.value.length >= A.component.maxItems), Re = u(() => !!G.value?.searchable || (G.value?.filters?.length ?? 0) > 0), Z = (e) => {
|
|
88
|
+
V.value = _e(V.value, e, I.value, A.component.maxItems);
|
|
89
|
+
}, Q = (e, t) => t === !0 && (V.value.includes(e) || !X.value), ze = (e) => {
|
|
90
90
|
let t = G.value?.sort?.column === e && G.value.sort.direction === "asc" ? "desc" : "asc";
|
|
91
91
|
L.value = {
|
|
92
92
|
...L.value,
|
|
@@ -94,58 +94,58 @@ var E = ["innerHTML"], D = {
|
|
|
94
94
|
direction: t,
|
|
95
95
|
page: null
|
|
96
96
|
};
|
|
97
|
-
},
|
|
97
|
+
}, Be = (e) => G.value?.sort?.column === e ? G.value.sort.direction === "asc" ? "ascending" : "descending" : void 0, $ = (e) => {
|
|
98
98
|
L.value = {
|
|
99
99
|
...L.value,
|
|
100
100
|
page: e
|
|
101
101
|
};
|
|
102
|
-
},
|
|
103
|
-
return (e, t) => (
|
|
102
|
+
}, Ve = () => j("confirm", V.value, Object.fromEntries(V.value.filter((e) => H.value[e]).map((e) => [e, H.value[e]])));
|
|
103
|
+
return (e, t) => (b(), d(se, {
|
|
104
104
|
open: !0,
|
|
105
|
-
"onUpdate:open": t[7] ||= (e) => !e &&
|
|
105
|
+
"onUpdate:open": t[7] ||= (e) => !e && j("close")
|
|
106
106
|
}, {
|
|
107
|
-
default:
|
|
108
|
-
class:
|
|
107
|
+
default: T(() => [g(ce, {
|
|
108
|
+
class: v(w(n)("flex max-h-[90vh] flex-col gap-4", w(me)[A.component.modalWidth ?? "3xl"] ?? "sm:max-w-3xl")),
|
|
109
109
|
"data-slot": "modal-table-select-dialog"
|
|
110
110
|
}, {
|
|
111
|
-
default:
|
|
112
|
-
|
|
113
|
-
default:
|
|
114
|
-
|
|
115
|
-
default:
|
|
111
|
+
default: T(() => [
|
|
112
|
+
g(ue, null, {
|
|
113
|
+
default: T(() => [
|
|
114
|
+
g(de, null, {
|
|
115
|
+
default: T(() => [h(C(A.component.modalHeading), 1)]),
|
|
116
116
|
_: 1
|
|
117
117
|
}),
|
|
118
|
-
|
|
118
|
+
A.component.modalDescription ? (b(), p("p", {
|
|
119
119
|
key: 0,
|
|
120
120
|
class: "text-muted-foreground text-sm",
|
|
121
121
|
"data-slot": "modal-table-select-description",
|
|
122
|
-
innerHTML:
|
|
123
|
-
}, null, 8, E)) :
|
|
124
|
-
|
|
125
|
-
default:
|
|
122
|
+
innerHTML: A.component.modalDescription
|
|
123
|
+
}, null, 8, E)) : f("", !0),
|
|
124
|
+
g(le, { "aria-live": "polite" }, {
|
|
125
|
+
default: T(() => [h(C(w(P)("table.selected", V.value.length, { count: V.value.length }, ":count selected")), 1)]),
|
|
126
126
|
_: 1
|
|
127
127
|
})
|
|
128
128
|
]),
|
|
129
129
|
_: 1
|
|
130
130
|
}),
|
|
131
|
-
G.value &&
|
|
131
|
+
G.value && Re.value ? (b(), p("div", D, [G.value.searchable ? (b(), p("div", O, [g(w(Te), { class: "text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 size-4 -translate-y-1/2" }), g(re, {
|
|
132
132
|
type: "search",
|
|
133
133
|
"model-value": U.value,
|
|
134
134
|
"aria-label": G.value.searchPlaceholder,
|
|
135
135
|
placeholder: G.value.searchPlaceholder,
|
|
136
136
|
class: "ps-8",
|
|
137
137
|
"onUpdate:modelValue": t[0] ||= (e) => {
|
|
138
|
-
U.value = String(e),
|
|
138
|
+
U.value = String(e), w(K)(String(e));
|
|
139
139
|
}
|
|
140
140
|
}, null, 8, [
|
|
141
141
|
"model-value",
|
|
142
142
|
"aria-label",
|
|
143
143
|
"placeholder"
|
|
144
|
-
])])) :
|
|
144
|
+
])])) : f("", !0), (G.value.filters?.length ?? 0) > 0 ? (b(), d(c, {
|
|
145
145
|
key: 1,
|
|
146
146
|
table: G.value,
|
|
147
|
-
owner:
|
|
148
|
-
path:
|
|
147
|
+
owner: w(F),
|
|
148
|
+
path: A.component.statePath,
|
|
149
149
|
onChange: t[1] ||= (e) => L.value = {
|
|
150
150
|
...L.value,
|
|
151
151
|
filters: e,
|
|
@@ -155,90 +155,90 @@ var E = ["innerHTML"], D = {
|
|
|
155
155
|
"table",
|
|
156
156
|
"owner",
|
|
157
157
|
"path"
|
|
158
|
-
])) :
|
|
159
|
-
|
|
158
|
+
])) : f("", !0)])) : f("", !0),
|
|
159
|
+
m("div", {
|
|
160
160
|
class: "min-h-0 flex-1 overflow-auto rounded-md border",
|
|
161
161
|
"aria-busy": B.value
|
|
162
|
-
}, [z.value ? (
|
|
162
|
+
}, [z.value ? (b(), p("p", De, C(w(M)("table_select.load_failed", {}, "Couldn't load the records.")), 1)) : G.value ? J.value.length === 0 ? (b(), p("p", ke, C(G.value.emptyState.heading), 1)) : (b(), d(ie, {
|
|
163
163
|
key: 3,
|
|
164
|
-
class:
|
|
164
|
+
class: v(w(n)(B.value && "opacity-60"))
|
|
165
165
|
}, {
|
|
166
|
-
default:
|
|
167
|
-
default:
|
|
168
|
-
default:
|
|
169
|
-
default:
|
|
166
|
+
default: T(() => [g(oe, null, {
|
|
167
|
+
default: T(() => [g(o, null, {
|
|
168
|
+
default: T(() => [g(a, { class: "w-10" }, {
|
|
169
|
+
default: T(() => [m("span", Ae, C(w(M)("table.select_row", {}, "Select row")), 1)]),
|
|
170
170
|
_: 1
|
|
171
|
-
}), (
|
|
171
|
+
}), (b(!0), p(l, null, S(q.value, (e) => (b(), d(a, {
|
|
172
172
|
key: e.name,
|
|
173
|
-
"aria-sort":
|
|
173
|
+
"aria-sort": Be(e.name)
|
|
174
174
|
}, {
|
|
175
|
-
default:
|
|
175
|
+
default: T(() => [e.sortable ? (b(), p("button", {
|
|
176
176
|
key: 0,
|
|
177
177
|
type: "button",
|
|
178
178
|
class: "inline-flex items-center gap-1",
|
|
179
|
-
onClick: (t) =>
|
|
180
|
-
}, [
|
|
179
|
+
onClick: (t) => ze(e.name)
|
|
180
|
+
}, [h(C(e.label) + " ", 1), G.value.sort?.column === e.name ? (b(), p(l, { key: 0 }, [G.value.sort.direction === "asc" ? (b(), d(w(Se), {
|
|
181
181
|
key: 0,
|
|
182
182
|
class: "size-3.5"
|
|
183
|
-
})) : (
|
|
183
|
+
})) : (b(), d(w(be), {
|
|
184
184
|
key: 1,
|
|
185
185
|
class: "size-3.5"
|
|
186
|
-
}))], 64)) : (
|
|
186
|
+
}))], 64)) : (b(), d(w(xe), {
|
|
187
187
|
key: 1,
|
|
188
188
|
class: "text-muted-foreground size-3.5"
|
|
189
|
-
}))], 8,
|
|
189
|
+
}))], 8, je)) : (b(), p(l, { key: 1 }, [h(C(e.label), 1)], 64))]),
|
|
190
190
|
_: 2
|
|
191
191
|
}, 1032, ["aria-sort"]))), 128))]),
|
|
192
192
|
_: 1
|
|
193
193
|
})]),
|
|
194
194
|
_: 1
|
|
195
|
-
}),
|
|
196
|
-
default:
|
|
195
|
+
}), g(ae, null, {
|
|
196
|
+
default: T(() => [(b(!0), p(l, null, S(J.value, (e) => (b(), d(o, {
|
|
197
197
|
key: String(e.key),
|
|
198
198
|
"data-state": V.value.includes(String(e.key)) ? "selected" : void 0,
|
|
199
|
-
class:
|
|
199
|
+
class: v(w(n)(Q(String(e.key), e.selectable) && "cursor-pointer")),
|
|
200
200
|
onClick: (t) => Q(String(e.key), e.selectable) && Z(String(e.key))
|
|
201
201
|
}, {
|
|
202
|
-
default:
|
|
202
|
+
default: T(() => [g(i, {
|
|
203
203
|
class: "w-10",
|
|
204
204
|
onClick: t[2] ||= ye(() => {}, ["stop"])
|
|
205
205
|
}, {
|
|
206
|
-
default:
|
|
206
|
+
default: T(() => [I.value ? (b(), d(ne, {
|
|
207
207
|
key: 0,
|
|
208
208
|
"model-value": V.value.includes(String(e.key)),
|
|
209
209
|
disabled: !Q(String(e.key), e.selectable),
|
|
210
|
-
"aria-label":
|
|
210
|
+
"aria-label": w(M)("table_select.select_record", { label: H.value[String(e.key)] ?? String(e.key) }, "Select :label"),
|
|
211
211
|
"onUpdate:modelValue": (t) => Z(String(e.key))
|
|
212
212
|
}, null, 8, [
|
|
213
213
|
"model-value",
|
|
214
214
|
"disabled",
|
|
215
215
|
"aria-label",
|
|
216
216
|
"onUpdate:modelValue"
|
|
217
|
-
])) : (
|
|
217
|
+
])) : (b(), p("input", {
|
|
218
218
|
key: 1,
|
|
219
219
|
type: "radio",
|
|
220
|
-
name: `${
|
|
220
|
+
name: `${A.component.statePath}-picker`,
|
|
221
221
|
class: "accent-primary size-4",
|
|
222
222
|
checked: V.value.includes(String(e.key)),
|
|
223
223
|
disabled: !Q(String(e.key), e.selectable),
|
|
224
|
-
"aria-label":
|
|
224
|
+
"aria-label": w(M)("table_select.select_record", { label: H.value[String(e.key)] ?? String(e.key) }, "Select :label"),
|
|
225
225
|
onChange: (t) => Z(String(e.key))
|
|
226
|
-
}, null, 40,
|
|
226
|
+
}, null, 40, Me))]),
|
|
227
227
|
_: 2
|
|
228
|
-
}, 1024), (
|
|
229
|
-
default:
|
|
228
|
+
}, 1024), (b(!0), p(l, null, S(q.value, (t) => (b(), d(i, { key: t.name }, {
|
|
229
|
+
default: T(() => [e.cells[t.name] ? (b(), d(fe, {
|
|
230
230
|
key: 0,
|
|
231
231
|
column: t,
|
|
232
232
|
cell: e.cells[t.name],
|
|
233
233
|
"record-key": e.key,
|
|
234
234
|
token: "",
|
|
235
|
-
component: `picker:${
|
|
235
|
+
component: `picker:${A.component.statePath}`
|
|
236
236
|
}, null, 8, [
|
|
237
237
|
"column",
|
|
238
238
|
"cell",
|
|
239
239
|
"record-key",
|
|
240
240
|
"component"
|
|
241
|
-
])) :
|
|
241
|
+
])) : f("", !0)]),
|
|
242
242
|
_: 2
|
|
243
243
|
}, 1024))), 128))]),
|
|
244
244
|
_: 2
|
|
@@ -250,68 +250,68 @@ var E = ["innerHTML"], D = {
|
|
|
250
250
|
_: 1
|
|
251
251
|
})]),
|
|
252
252
|
_: 1
|
|
253
|
-
}, 8, ["class"])) : (
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
]))], 8,
|
|
258
|
-
X.value ? (
|
|
259
|
-
|
|
260
|
-
default:
|
|
253
|
+
}, 8, ["class"])) : (b(), p("div", Oe, [
|
|
254
|
+
g(s, { class: "h-8 w-full" }),
|
|
255
|
+
g(s, { class: "h-8 w-full" }),
|
|
256
|
+
g(s, { class: "h-8 w-full" })
|
|
257
|
+
]))], 8, Ee),
|
|
258
|
+
X.value ? (b(), p("p", Ne, C(w(P)("table_select.max_reached", A.component.maxItems ?? 0, { count: A.component.maxItems ?? 0 }, "You can select up to :count records.")), 1)) : f("", !0),
|
|
259
|
+
g(pe, { class: "items-center sm:justify-between" }, {
|
|
260
|
+
default: T(() => [Y.value ? (b(), p("nav", {
|
|
261
261
|
key: 0,
|
|
262
262
|
class: "flex items-center gap-2",
|
|
263
|
-
"aria-label":
|
|
263
|
+
"aria-label": w(M)("pagination", {}, "Pagination")
|
|
264
264
|
}, [
|
|
265
|
-
|
|
265
|
+
g(r, {
|
|
266
266
|
type: "button",
|
|
267
267
|
variant: "outline",
|
|
268
268
|
size: "icon-sm",
|
|
269
269
|
disabled: !Y.value.hasPrevious || B.value,
|
|
270
|
-
"aria-label":
|
|
270
|
+
"aria-label": w(M)("table.previous", {}, "Previous"),
|
|
271
271
|
onClick: t[3] ||= (e) => $(Y.value.page - 1)
|
|
272
272
|
}, {
|
|
273
|
-
default:
|
|
273
|
+
default: T(() => [g(w(Ce), { class: "rtl:rotate-180" })]),
|
|
274
274
|
_: 1
|
|
275
275
|
}, 8, ["disabled", "aria-label"]),
|
|
276
|
-
|
|
277
|
-
first: Y.value.from,
|
|
278
|
-
last: Y.value.to,
|
|
279
|
-
total: Y.value.total
|
|
276
|
+
m("span", Fe, C(Y.value.total === void 0 ? `${Y.value.from}–${Y.value.to}` : w(M)("table.showing", {
|
|
277
|
+
first: w(N).number(Y.value.from),
|
|
278
|
+
last: w(N).number(Y.value.to),
|
|
279
|
+
total: w(N).number(Y.value.total)
|
|
280
280
|
}, "Showing :first–:last of :total")), 1),
|
|
281
|
-
|
|
281
|
+
g(r, {
|
|
282
282
|
type: "button",
|
|
283
283
|
variant: "outline",
|
|
284
284
|
size: "icon-sm",
|
|
285
285
|
disabled: !Y.value.hasNext || B.value,
|
|
286
|
-
"aria-label":
|
|
286
|
+
"aria-label": w(M)("table.next", {}, "Next"),
|
|
287
287
|
onClick: t[4] ||= (e) => $(Y.value.page + 1)
|
|
288
288
|
}, {
|
|
289
|
-
default:
|
|
289
|
+
default: T(() => [g(w(we), { class: "rtl:rotate-180" })]),
|
|
290
290
|
_: 1
|
|
291
291
|
}, 8, ["disabled", "aria-label"])
|
|
292
|
-
], 8,
|
|
293
|
-
V.value.length > 0 ? (
|
|
292
|
+
], 8, Pe)) : (b(), p("span", Ie)), m("div", Le, [
|
|
293
|
+
V.value.length > 0 ? (b(), d(r, {
|
|
294
294
|
key: 0,
|
|
295
295
|
type: "button",
|
|
296
296
|
variant: "ghost",
|
|
297
297
|
onClick: t[5] ||= (e) => V.value = []
|
|
298
298
|
}, {
|
|
299
|
-
default:
|
|
299
|
+
default: T(() => [h(C(w(M)("table_select.clear", {}, "Clear selection")), 1)]),
|
|
300
300
|
_: 1
|
|
301
|
-
})) :
|
|
302
|
-
|
|
301
|
+
})) : f("", !0),
|
|
302
|
+
g(r, {
|
|
303
303
|
type: "button",
|
|
304
304
|
variant: "outline",
|
|
305
|
-
onClick: t[6] ||= (e) =>
|
|
305
|
+
onClick: t[6] ||= (e) => j("close")
|
|
306
306
|
}, {
|
|
307
|
-
default:
|
|
307
|
+
default: T(() => [h(C(w(M)("cancel", {}, "Cancel")), 1)]),
|
|
308
308
|
_: 1
|
|
309
309
|
}),
|
|
310
|
-
|
|
310
|
+
g(r, {
|
|
311
311
|
type: "button",
|
|
312
|
-
onClick:
|
|
312
|
+
onClick: Ve
|
|
313
313
|
}, {
|
|
314
|
-
default:
|
|
314
|
+
default: T(() => [h(C(A.component.modalSubmitActionLabel ?? w(M)("table_select.confirm", {}, "Select")), 1)]),
|
|
315
315
|
_: 1
|
|
316
316
|
})
|
|
317
317
|
])]),
|
|
@@ -325,6 +325,6 @@ var E = ["innerHTML"], D = {
|
|
|
325
325
|
}
|
|
326
326
|
});
|
|
327
327
|
//#endregion
|
|
328
|
-
export {
|
|
328
|
+
export { k as default };
|
|
329
329
|
|
|
330
330
|
//# sourceMappingURL=ModalTablePicker.vue_vue_type_script_setup_true_lang.js.map
|