quasar-ui-danx 0.3.11 → 0.3.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/dist/danx.es.js +5978 -5901
  2. package/dist/danx.es.js.map +1 -1
  3. package/dist/danx.umd.js +5 -5
  4. package/dist/danx.umd.js.map +1 -1
  5. package/dist/style.css +1 -1
  6. package/package.json +1 -1
  7. package/src/components/ActionTable/ActionMenu.vue +7 -7
  8. package/src/components/ActionTable/ActionTable.vue +55 -31
  9. package/src/components/ActionTable/ActionTableColumn.vue +37 -15
  10. package/src/components/ActionTable/ActionTableHeaderColumn.vue +9 -9
  11. package/src/components/ActionTable/Columns/ColumnListItem.vue +33 -10
  12. package/src/components/ActionTable/Columns/ColumnSettingsDialog.vue +23 -19
  13. package/src/components/ActionTable/Columns/TitleColumnFormat.vue +5 -3
  14. package/src/components/ActionTable/Columns/VisibleColumnsToggleButtons.vue +24 -22
  15. package/src/components/ActionTable/EmptyTableState.vue +4 -2
  16. package/src/components/ActionTable/Filters/CollapsableFiltersSidebar.vue +17 -9
  17. package/src/components/ActionTable/Filters/FilterFieldItem.vue +7 -5
  18. package/src/components/ActionTable/Filters/FilterFieldList.vue +21 -21
  19. package/src/components/ActionTable/Filters/FilterListToggle.vue +13 -10
  20. package/src/components/ActionTable/Filters/FilterToolbarLayout.vue +14 -7
  21. package/src/components/ActionTable/Filters/FilterableField.vue +75 -70
  22. package/src/components/ActionTable/Form/Fields/BooleanField.vue +9 -9
  23. package/src/components/ActionTable/Form/Fields/ConfirmPasswordField.vue +7 -7
  24. package/src/components/ActionTable/Form/Fields/DateField.vue +4 -4
  25. package/src/components/ActionTable/Form/Fields/DateRangeField.vue +10 -12
  26. package/src/components/ActionTable/Form/Fields/DateTimeField.vue +13 -10
  27. package/src/components/ActionTable/Form/Fields/DateTimePicker.vue +36 -14
  28. package/src/components/ActionTable/Form/Fields/EditableDiv.vue +3 -3
  29. package/src/components/ActionTable/Form/Fields/FieldLabel.vue +2 -2
  30. package/src/components/ActionTable/Form/Fields/FileUploadButton.vue +23 -20
  31. package/src/components/ActionTable/Form/Fields/InlineDateTimeField.vue +10 -10
  32. package/src/components/ActionTable/Form/Fields/IntegerField.vue +6 -6
  33. package/src/components/ActionTable/Form/Fields/LabeledInput.vue +20 -17
  34. package/src/components/ActionTable/Form/Fields/MultiFileField.vue +35 -35
  35. package/src/components/ActionTable/Form/Fields/MultiKeywordField.vue +15 -15
  36. package/src/components/ActionTable/Form/Fields/NewPasswordField.vue +4 -4
  37. package/src/components/ActionTable/Form/Fields/NumberField.vue +11 -11
  38. package/src/components/ActionTable/Form/Fields/NumberRangeField.vue +11 -11
  39. package/src/components/ActionTable/Form/Fields/SelectDrawer.vue +38 -33
  40. package/src/components/ActionTable/Form/Fields/SelectField.vue +37 -35
  41. package/src/components/ActionTable/Form/Fields/SelectWithChildrenField.vue +19 -15
  42. package/src/components/ActionTable/Form/Fields/SingleFileField.vue +29 -28
  43. package/src/components/ActionTable/Form/Fields/TextField.vue +22 -22
  44. package/src/components/ActionTable/Form/RenderedForm.vue +5 -1
  45. package/src/components/ActionTable/Layouts/ActionTableLayout.vue +1 -1
  46. package/src/components/ActionTable/TableSummaryRow.vue +15 -15
  47. package/src/components/ActionTable/listControls.ts +378 -383
  48. package/src/components/AuditHistory/AuditHistoryItem.vue +12 -6
  49. package/src/components/AuditHistory/AuditHistoryItemValue.vue +6 -6
  50. package/src/components/DragAndDrop/HandleDraggable.vue +21 -21
  51. package/src/components/DragAndDrop/ListItemDraggable.vue +19 -15
  52. package/src/components/PanelsDrawer/PanelsDrawer.vue +18 -11
  53. package/src/components/PanelsDrawer/PanelsDrawerPanels.vue +9 -5
  54. package/src/components/PanelsDrawer/PanelsDrawerTabs.vue +18 -13
  55. package/src/components/Utility/Buttons/ExportButton.vue +5 -1
  56. package/src/components/Utility/Buttons/RefreshButton.vue +2 -2
  57. package/src/components/Utility/Controls/PreviousNextControls.vue +8 -8
  58. package/src/components/Utility/Dialogs/ConfirmDialog.vue +32 -29
  59. package/src/components/Utility/Dialogs/FullScreenDialog.vue +12 -9
  60. package/src/components/Utility/Dialogs/FullscreenCarouselDialog.vue +30 -26
  61. package/src/components/Utility/Dialogs/InfoDialog.vue +25 -22
  62. package/src/components/Utility/Dialogs/InputDialog.vue +7 -7
  63. package/src/components/Utility/Files/FilePreview.vue +64 -47
  64. package/src/components/Utility/Files/SvgImg.vue +7 -4
  65. package/src/components/Utility/Formats/GpsCoordinatesFormat.vue +11 -3
  66. package/src/components/Utility/Layouts/CollapsableSidebar.vue +16 -16
  67. package/src/components/Utility/Layouts/ContentDrawer.vue +8 -8
  68. package/src/components/Utility/Popovers/InteractiveTooltip.vue +7 -7
  69. package/src/components/Utility/Popovers/PopoverMenu.vue +21 -21
  70. package/src/components/Utility/Tabs/BadgeTab.vue +9 -7
  71. package/src/components/Utility/Tools/ActionVnode.vue +5 -5
  72. package/src/components/Utility/Tools/RenderComponent.vue +11 -9
  73. package/src/components/Utility/Transitions/StaggeredListTransition.vue +7 -7
  74. package/src/styles/quasar-reset.scss +63 -19
  75. package/src/styles/themes/danx/action-table.scss +19 -0
  76. package/src/styles/themes/danx/index.scss +1 -0
@@ -5,14 +5,14 @@
5
5
  <div class="flex flex-nowrap items-center mt-4">
6
6
  <div class="bg-red-200 line-through p-2">
7
7
  <AuditHistoryItemValue
8
- :type="change.type"
9
- :value="change.oldValue"
8
+ :type="change.type"
9
+ :value="change.oldValue"
10
10
  />
11
11
  </div>
12
12
  <div class="bg-emerald-200 ml-2.5 p-2">
13
13
  <AuditHistoryItemValue
14
- :type="change.type"
15
- :value="change.newValue"
14
+ :type="change.type"
15
+ :value="change.newValue"
16
16
  />
17
17
  </div>
18
18
  </div>
@@ -24,8 +24,14 @@
24
24
  </template>
25
25
  <div>{{ item.account }}</div>
26
26
  <div>
27
- <a v-if="item.audit_request_id" :href="novaUrl" target="_blank">{{ fLocalizedDateTime(item.timestamp) }}</a>
28
- <template v-else>{{ fLocalizedDateTime(item.timestamp) }}</template>
27
+ <a
28
+ v-if="item.audit_request_id"
29
+ :href="novaUrl"
30
+ target="_blank"
31
+ >{{ fLocalizedDateTime(item.timestamp) }}</a>
32
+ <template v-else>
33
+ {{ fLocalizedDateTime(item.timestamp) }}
34
+ </template>
29
35
  </div>
30
36
  </div>
31
37
  </div>
@@ -2,16 +2,16 @@
2
2
  <div class="flex space-x-2">
3
3
  <template v-if="type === 'SINGLE_FILE'">
4
4
  <FilePreview
5
- :image="value"
6
- class="w-24"
5
+ :image="value"
6
+ class="w-24"
7
7
  />
8
8
  </template>
9
9
  <template v-else-if="type === 'MULTI_FILE'">
10
10
  <FilePreview
11
- v-for="file in value"
12
- :key="'file-' + file.id"
13
- :image="file"
14
- class="w-24 mb-2"
11
+ v-for="file in value"
12
+ :key="'file-' + file.id"
13
+ :image="file"
14
+ class="w-24 mb-2"
15
15
  />
16
16
  </template>
17
17
  <template v-else-if="type === 'WYSIWYG'">
@@ -1,13 +1,13 @@
1
1
  <template>
2
2
  <div
3
- :class="{
3
+ :class="{
4
4
  'cursor-ew-resize': direction === 'horizontal',
5
5
  'cursor-ns-resize': direction === 'vertical',
6
6
  }"
7
- class="flex justify-center items-center w-full h-full"
8
- draggable="true"
9
- @dragstart="dragAndDrop.dragStart"
10
- @dragend="dragAndDrop.dragEnd"
7
+ class="flex justify-center items-center w-full h-full"
8
+ draggable="true"
9
+ @dragstart="dragAndDrop.dragStart"
10
+ @dragend="dragAndDrop.dragEnd"
11
11
  >
12
12
  <slot />
13
13
  </div>
@@ -34,20 +34,20 @@ const props = defineProps({
34
34
  });
35
35
 
36
36
  const dragAndDrop = new DragAndDrop()
37
- .setDropZone(props.dropZone)
38
- .setOptions({
39
- showPlaceholder: true,
40
- direction: props.direction,
41
- hideDragImage: true
42
- })
43
- .onDragging(useDebounceFn(() => {
44
- emit("resize", {
45
- distance: dragAndDrop.getDistance(),
46
- percent: dragAndDrop.getPercentChange(),
47
- startDropZoneSize: dragAndDrop.startSize,
48
- dropZoneSize: dragAndDrop.getDropZoneSize()
49
- });
50
- }, 20, { maxWait: 30 }))
51
- .onStart(() => emit("start"))
52
- .onEnd(() => emit("end"));
37
+ .setDropZone(props.dropZone)
38
+ .setOptions({
39
+ showPlaceholder: true,
40
+ direction: props.direction,
41
+ hideDragImage: true
42
+ })
43
+ .onDragging(useDebounceFn(() => {
44
+ emit("resize", {
45
+ distance: dragAndDrop.getDistance(),
46
+ percent: dragAndDrop.getPercentChange(),
47
+ startDropZoneSize: dragAndDrop.startSize,
48
+ dropZoneSize: dragAndDrop.getDropZoneSize()
49
+ });
50
+ }, 20, { maxWait: 30 }))
51
+ .onStart(() => emit("start"))
52
+ .onEnd(() => emit("end"));
53
53
  </script>
@@ -1,13 +1,17 @@
1
1
  <template>
2
2
  <div
3
- class="cursor-move"
4
- draggable="true"
5
- @dragstart="dragAndDrop.dragStart"
6
- @dragend="dragAndDrop.dragEnd"
3
+ class="cursor-move"
4
+ draggable="true"
5
+ @dragstart="dragAndDrop.dragStart"
6
+ @dragend="dragAndDrop.dragEnd"
7
7
  >
8
8
  <div class="flex items-center">
9
9
  <div v-if="showHandle">
10
- <SvgImg :svg="DragHandleIcon" class="w-4 h-4" alt="drag-handle" />
10
+ <SvgImg
11
+ :svg="DragHandleIcon"
12
+ class="w-4 h-4"
13
+ alt="drag-handle"
14
+ />
11
15
  </div>
12
16
  <div class="flex-grow">
13
17
  <slot />
@@ -39,15 +43,15 @@ const props = defineProps({
39
43
  });
40
44
 
41
45
  const dragAndDrop = new ListDragAndDrop()
42
- .setDropZone(props.dropZone)
43
- .setOptions({ showPlaceholder: true, direction: props.direction })
44
- .onPositionChange((newPosition, oldPosition) => {
45
- emit("position", newPosition);
46
+ .setDropZone(props.dropZone)
47
+ .setOptions({ showPlaceholder: true, direction: props.direction })
48
+ .onPositionChange((newPosition, oldPosition) => {
49
+ emit("position", newPosition);
46
50
 
47
- if (props.listItems) {
48
- const items = [...props.listItems];
49
- items.splice(newPosition, 0, items.splice(oldPosition, 1)[0]);
50
- emit("update:list-items", items);
51
- }
52
- });
51
+ if (props.listItems) {
52
+ const items = [...props.listItems];
53
+ items.splice(newPosition, 0, items.splice(oldPosition, 1)[0]);
54
+ emit("update:list-items", items);
55
+ }
56
+ });
53
57
  </script>
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <ContentDrawer
3
- position="right"
4
- :show="true"
5
- overlay
6
- content-class="h-full"
7
- title=""
8
- @update:show="$emit('close')"
3
+ position="right"
4
+ :show="true"
5
+ overlay
6
+ content-class="h-full"
7
+ title=""
8
+ @update:show="$emit('close')"
9
9
  >
10
10
  <div class="flex flex-col flex-nowrap h-full">
11
11
  <div class="flex items-center px-6 py-4 border-b">
@@ -23,13 +23,20 @@
23
23
  <div class="flex items-stretch flex-nowrap h-full">
24
24
  <div class="border-r w-[13.5rem] overflow-y-auto">
25
25
  <PanelsDrawerTabs
26
- v-model="activePanel"
27
- :panels="panels"
28
- @update:model-value="$emit('update:model-value', $event)"
26
+ v-model="activePanel"
27
+ :panels="panels"
28
+ @update:model-value="$emit('update:model-value', $event)"
29
29
  />
30
30
  </div>
31
- <PanelsDrawerPanels :panels="panels" :active-panel="activePanel" :class="panelsClass" />
32
- <div v-if="$slots['right-sidebar']" class="border-l overflow-y-auto">
31
+ <PanelsDrawerPanels
32
+ :panels="panels"
33
+ :active-panel="activePanel"
34
+ :class="panelsClass"
35
+ />
36
+ <div
37
+ v-if="$slots['right-sidebar']"
38
+ class="border-l overflow-y-auto"
39
+ >
33
40
  <slot name="right-sidebar" />
34
41
  </div>
35
42
  </div>
@@ -1,12 +1,16 @@
1
1
  <template>
2
2
  <QTabPanels
3
- :model-value="activePanel"
4
- class="overflow-y-auto bg-gray-100 h-full transition-all"
3
+ :model-value="activePanel"
4
+ class="overflow-y-auto bg-gray-100 h-full transition-all"
5
5
  >
6
- <QTabPanel v-for="panel in panels" :key="panel.name" :name="panel.name">
6
+ <QTabPanel
7
+ v-for="panel in panels"
8
+ :key="panel.name"
9
+ :name="panel.name"
10
+ >
7
11
  <RenderVnode
8
- v-if="panel.vnode"
9
- :vnode="panel.vnode"
12
+ v-if="panel.vnode"
13
+ :vnode="panel.vnode"
10
14
  />
11
15
  </QTabPanel>
12
16
  </QTabPanels>
@@ -1,23 +1,28 @@
1
1
  <template>
2
2
  <QTabs
3
- :model-value="modelValue"
4
- vertical
5
- align="left"
6
- :class="cls['panel-tabs']"
7
- no-caps
8
- @update:model-value="$emit('update:model-value', $event)"
3
+ :model-value="modelValue"
4
+ vertical
5
+ align="left"
6
+ :class="cls['panel-tabs']"
7
+ no-caps
8
+ @update:model-value="$emit('update:model-value', $event)"
9
9
  >
10
10
  <template v-for="panel in panels">
11
11
  <template v-if="panel.enabled === undefined || !!panel.enabled">
12
12
  <RenderVnode
13
- v-if="panel.tabVnode"
14
- :key="panel.name"
15
- :vnode="panel.tabVnode(modelValue)"
16
- :is-active="modelValue === panel.name"
17
- :name="panel.name"
18
- :label="panel.label"
13
+ v-if="panel.tabVnode"
14
+ :key="panel.name"
15
+ :vnode="panel.tabVnode(modelValue)"
16
+ :is-active="modelValue === panel.name"
17
+ :name="panel.name"
18
+ :label="panel.label"
19
+ />
20
+ <QTab
21
+ v-else
22
+ :key="panel.name"
23
+ :name="panel.name"
24
+ :label="panel.label"
19
25
  />
20
- <QTab v-else :key="panel.name" :name="panel.name" :label="panel.label" />
21
26
  </template>
22
27
  </template>
23
28
  </QTabs>
@@ -1,5 +1,9 @@
1
1
  <template>
2
- <QBtn class="bg-slate-200" :loading="isExporting" @click="onExport">
2
+ <QBtn
3
+ class="bg-slate-200"
4
+ :loading="isExporting"
5
+ @click="onExport"
6
+ >
3
7
  <ExportIcon class="w-5" />
4
8
  </QBtn>
5
9
  </template>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <QBtn
3
- class="bg-slate-200"
4
- :loading="loading"
3
+ class="bg-slate-200"
4
+ :loading="loading"
5
5
  >
6
6
  <RefreshIcon class="w-5" />
7
7
  </QBtn>
@@ -1,18 +1,18 @@
1
1
  <template>
2
2
  <div class="previous-next-controls">
3
3
  <QBtn
4
- class="bg-slate-200 border-gray-300 border border-solid !rounded-r-none !p-2 !min-w-0"
5
- :disable="isLoading"
6
- :loading="isLoading"
7
- @click="$emit('next', -1)"
4
+ class="bg-slate-200 border-gray-300 border border-solid !rounded-r-none !p-2 !min-w-0"
5
+ :disable="isLoading"
6
+ :loading="isLoading"
7
+ @click="$emit('next', -1)"
8
8
  >
9
9
  <SkipPreviousIcon class="w-6" />
10
10
  </QBtn>
11
11
  <QBtn
12
- class="bg-slate-200 border-gray-300 border border-solid border-l-0 !rounded-l-none !p-2 !min-w-0"
13
- :disable="isLoading"
14
- :loading="isLoading"
15
- @click="$emit('next', 1)"
12
+ class="bg-slate-200 border-gray-300 border border-solid border-l-0 !rounded-l-none !p-2 !min-w-0"
13
+ :disable="isLoading"
14
+ :loading="isLoading"
15
+ @click="$emit('next', 1)"
16
16
  >
17
17
  <SkipNextIcon class="w-6" />
18
18
  </QBtn>
@@ -1,45 +1,48 @@
1
1
  <template>
2
2
  <QDialog
3
- :full-height="fullHeight"
4
- :full-width="fullWidth"
5
- :model-value="!!modelValue"
6
- :no-backdrop-dismiss="!backdropDismiss"
7
- :maximized="maximized"
8
- @update:model-value="onClose"
3
+ :full-height="fullHeight"
4
+ :full-width="fullWidth"
5
+ :model-value="!!modelValue"
6
+ :no-backdrop-dismiss="!backdropDismiss"
7
+ :maximized="maximized"
8
+ @update:model-value="onClose"
9
9
  >
10
10
  <QCard class="flex flex-col flex-nowrap">
11
11
  <QCardSection
12
- v-if="title || $slots.title"
13
- class="pl-6 pr-10 border-b border-gray-300"
12
+ v-if="title || $slots.title"
13
+ class="pl-6 pr-10 border-b border-gray-300"
14
14
  >
15
15
  <h3
16
- class="font-normal flex items-center"
17
- :class="titleClass"
16
+ class="font-normal flex items-center"
17
+ :class="titleClass"
18
18
  >
19
- <slot name="title">{{ title }}</slot>
19
+ <slot name="title">
20
+ {{ title }}
21
+ </slot>
20
22
  </h3>
21
23
  <div
22
- v-if="subtitle"
23
- class="mt-1 text-sm"
24
- >{{ subtitle }}
24
+ v-if="subtitle"
25
+ class="mt-1 text-sm"
26
+ >
27
+ {{ subtitle }}
25
28
  </div>
26
29
  </QCardSection>
27
30
  <QCardSection v-if="$slots.toolbar">
28
31
  <slot name="toolbar" />
29
32
  </QCardSection>
30
33
  <QCardSection
31
- v-if="content || $slots.default"
32
- class="px-6 bg-gray-100 flex-grow max-h-full overflow-y-auto"
33
- :class="contentClass"
34
+ v-if="content || $slots.default"
35
+ class="px-6 bg-gray-100 flex-grow max-h-full overflow-y-auto"
36
+ :class="contentClass"
34
37
  >
35
38
  <slot>{{ content }}</slot>
36
39
  </QCardSection>
37
40
  <div class="flex px-6 py-4 border-t border-gray-300">
38
41
  <div class="flex-grow">
39
42
  <QBtn
40
- :label="cancelText"
41
- class="action-btn btn-white-gray"
42
- @click="onClose"
43
+ :label="cancelText"
44
+ class="action-btn btn-white-gray"
45
+ @click="onClose"
43
46
  >
44
47
  <slot name="cancel-text" />
45
48
  </QBtn>
@@ -47,21 +50,21 @@
47
50
  <slot name="actions" />
48
51
  <div v-if="!hideConfirm">
49
52
  <QBtn
50
- :label="$slots['confirm-text'] ? '' : confirmText"
51
- class="action-btn ml-4"
52
- :class="confirmClass"
53
- :loading="isSaving"
54
- :disable="disabled"
55
- data-testid="confirm-button"
56
- @click="onConfirm"
53
+ :label="$slots['confirm-text'] ? '' : confirmText"
54
+ class="action-btn ml-4"
55
+ :class="confirmClass"
56
+ :loading="isSaving"
57
+ :disable="disabled"
58
+ data-testid="confirm-button"
59
+ @click="onConfirm"
57
60
  >
58
61
  <slot name="confirm-text" />
59
62
  </QBtn>
60
63
  </div>
61
64
  </div>
62
65
  <a
63
- class="absolute top-0 right-0 p-4 text-black"
64
- @click="onClose"
66
+ class="absolute top-0 right-0 p-4 text-black"
67
+ @click="onClose"
65
68
  >
66
69
  <CloseIcon class="w-5" />
67
70
  </a>
@@ -1,16 +1,19 @@
1
1
  <template>
2
2
  <QDialog
3
- :model-value="modelValue"
4
- maximized
5
- transition-show="slide-up"
6
- transition-hide="slide-down"
7
- @update:model-value="onClose"
3
+ :model-value="modelValue"
4
+ maximized
5
+ transition-show="slide-up"
6
+ transition-hide="slide-down"
7
+ @update:model-value="onClose"
8
8
  >
9
- <div class="flex justify-center min-w-xs" :class="computedClass">
9
+ <div
10
+ class="flex justify-center min-w-xs"
11
+ :class="computedClass"
12
+ >
10
13
  <div
11
- v-if="closeable"
12
- v-close-popup
13
- class="p-4 m-4 absolute-top-right top right cursor-pointer"
14
+ v-if="closeable"
15
+ v-close-popup
16
+ class="p-4 m-4 absolute-top-right top right cursor-pointer"
14
17
  >
15
18
  <XIcon class="w-5 h-5" />
16
19
  </div>
@@ -1,47 +1,51 @@
1
1
  <template>
2
2
  <QDialog
3
- :model-value="true"
4
- maximized
5
- @update:model-value="$emit('close')"
6
- @keyup.left="carousel.previous()"
7
- @keyup.right="carousel.next()"
3
+ :model-value="true"
4
+ maximized
5
+ @update:model-value="$emit('close')"
6
+ @keyup.left="carousel.previous()"
7
+ @keyup.right="carousel.next()"
8
8
  >
9
9
  <div class="absolute top-0 left-0 w-full h-full">
10
10
  <QCarousel
11
- ref="carousel"
12
- v-model="currentSlide"
13
- height="100%"
14
- swipeable
15
- animated
16
- :thumbnails="files.length > 1"
17
- infinite
18
- :class="cls['carousel']"
11
+ ref="carousel"
12
+ v-model="currentSlide"
13
+ height="100%"
14
+ swipeable
15
+ animated
16
+ :thumbnails="files.length > 1"
17
+ infinite
18
+ :class="cls['carousel']"
19
19
  >
20
20
  <QCarouselSlide
21
- v-for="file in files"
22
- :key="'file-' + file.id"
23
- :name="file.id"
24
- :img-src="getThumbUrl(file)"
21
+ v-for="file in files"
22
+ :key="'file-' + file.id"
23
+ :name="file.id"
24
+ :img-src="getThumbUrl(file)"
25
25
  >
26
26
  <div :class="cls['slide-image']">
27
27
  <template v-if="isVideo(file)">
28
28
  <video
29
- class="max-h-full w-full"
30
- controls
29
+ class="max-h-full w-full"
30
+ controls
31
31
  >
32
32
  <source
33
- :src="file.url + '#t=0.1'"
34
- :type="file.mime"
35
- />
33
+ :src="file.url + '#t=0.1'"
34
+ :type="file.mime"
35
+ >
36
36
  </video>
37
37
  </template>
38
- <img v-else :alt="file.filename" :src="file.url" />
38
+ <img
39
+ v-else
40
+ :alt="file.filename"
41
+ :src="file.url"
42
+ >
39
43
  </div>
40
44
  </QCarouselSlide>
41
45
  </QCarousel>
42
46
  <CloseIcon
43
- class="absolute top-4 right-4 cursor-pointer text-white w-8 h-8"
44
- @click="$emit('close')"
47
+ class="absolute top-4 right-4 cursor-pointer text-white w-8 h-8"
48
+ @click="$emit('close')"
45
49
  />
46
50
  </div>
47
51
  </QDialog>
@@ -73,7 +77,7 @@ function getThumbUrl(file) {
73
77
  } else if (isVideo(file)) {
74
78
  // Base64 encode a PlayIcon for the placeholder image
75
79
  return `data:image/svg+xml;base64,${btoa(
76
- `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M0 0h24v24H0z" fill="none"/><path d="M8 5v14l11-7z"/></svg>`
80
+ `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M0 0h24v24H0z" fill="none"/><path d="M8 5v14l11-7z"/></svg>`
77
81
  )}`;
78
82
  } else {
79
83
  return file.url;
@@ -1,51 +1,54 @@
1
1
  <template>
2
2
  <QDialog
3
- :full-height="fullHeight"
4
- :full-width="fullWidth"
5
- :model-value="!!modelValue"
6
- :no-backdrop-dismiss="!backdropDismiss"
7
- :maximized="maximized"
8
- @update:model-value="onClose"
3
+ :full-height="fullHeight"
4
+ :full-width="fullWidth"
5
+ :model-value="!!modelValue"
6
+ :no-backdrop-dismiss="!backdropDismiss"
7
+ :maximized="maximized"
8
+ @update:model-value="onClose"
9
9
  >
10
10
  <QCard class="flex flex-col flex-nowrap">
11
11
  <QCardSection
12
- v-if="title || $slots.title"
13
- class="pl-6 pr-10 border-b border-gray-300"
12
+ v-if="title || $slots.title"
13
+ class="pl-6 pr-10 border-b border-gray-300"
14
14
  >
15
15
  <h3
16
- class="font-normal flex items-center"
17
- :class="titleClass"
16
+ class="font-normal flex items-center"
17
+ :class="titleClass"
18
18
  >
19
- <slot name="title">{{ title }}</slot>
19
+ <slot name="title">
20
+ {{ title }}
21
+ </slot>
20
22
  </h3>
21
23
  <div
22
- v-if="subtitle"
23
- class="mt-1 text-sm"
24
- >{{ subtitle }}
24
+ v-if="subtitle"
25
+ class="mt-1 text-sm"
26
+ >
27
+ {{ subtitle }}
25
28
  </div>
26
29
  </QCardSection>
27
30
  <QCardSection
28
- v-if="content || $slots.default"
29
- class="px-6 bg-gray-100 flex-grow max-h-full overflow-y-auto"
31
+ v-if="content || $slots.default"
32
+ class="px-6 bg-gray-100 flex-grow max-h-full overflow-y-auto"
30
33
  >
31
34
  <slot>{{ content }}</slot>
32
35
  </QCardSection>
33
36
  <div
34
- class="flex items-center justify-center px-6 py-4 border-t border-gray-300"
37
+ class="flex items-center justify-center px-6 py-4 border-t border-gray-300"
35
38
  >
36
39
  <div class="flex-grow text-right">
37
40
  <QBtn
38
- :label="doneText"
39
- class="action-btn btn-white-gray"
40
- @click="onClose"
41
+ :label="doneText"
42
+ class="action-btn btn-white-gray"
43
+ @click="onClose"
41
44
  >
42
45
  <slot name="done-text" />
43
46
  </QBtn>
44
47
  </div>
45
48
  </div>
46
49
  <a
47
- class="absolute top-0 right-0 p-4 text-black"
48
- @click="onClose"
50
+ class="absolute top-0 right-0 p-4 text-black"
51
+ @click="onClose"
49
52
  >
50
53
  <CloseIcon class="w-5" />
51
54
  </a>
@@ -1,15 +1,15 @@
1
1
  <template>
2
2
  <ConfirmDialog
3
- v-bind="$props"
4
- @confirm="$emit('confirm', newInput)"
5
- @close="$emit('close', $event)"
3
+ v-bind="$props"
4
+ @confirm="$emit('confirm', newInput)"
5
+ @close="$emit('close', $event)"
6
6
  >
7
7
  <slot>
8
8
  <QInput
9
- v-model="newInput"
10
- type="number"
11
- class="w-full"
12
- @input="$emit('update:input', $event)"
9
+ v-model="newInput"
10
+ type="number"
11
+ class="w-full"
12
+ @input="$emit('update:input', $event)"
13
13
  />
14
14
  </slot>
15
15
  </ConfirmDialog>