quasar-ui-danx 0.2.15 → 0.2.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. package/dist/danx.es.js +2 -2
  2. package/dist/danx.es.js.map +1 -1
  3. package/dist/danx.umd.js +1 -1
  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 +4 -4
  8. package/src/components/ActionTable/ActionTable.vue +12 -12
  9. package/src/components/ActionTable/ActionTableColumn.vue +11 -11
  10. package/src/components/ActionTable/Columns/ColumnListItem.vue +2 -2
  11. package/src/components/ActionTable/Columns/ColumnSettingsDialog.vue +8 -8
  12. package/src/components/ActionTable/Columns/TitleColumnFormat.vue +1 -1
  13. package/src/components/ActionTable/Columns/VisibleColumnsToggleButtons.vue +7 -7
  14. package/src/components/ActionTable/EmptyTableState.vue +4 -4
  15. package/src/components/ActionTable/Filters/CollapsableFiltersSidebar.vue +3 -3
  16. package/src/components/ActionTable/Filters/FilterFieldList.vue +6 -6
  17. package/src/components/ActionTable/Filters/FilterListToggle.vue +3 -3
  18. package/src/components/ActionTable/Filters/FilterToolbarLayout.vue +3 -3
  19. package/src/components/ActionTable/Filters/FilterableField.vue +6 -6
  20. package/src/components/ActionTable/Form/Fields/BooleanField.vue +4 -4
  21. package/src/components/ActionTable/Form/Fields/ConfirmPasswordField.vue +7 -7
  22. package/src/components/ActionTable/Form/Fields/DateField.vue +6 -6
  23. package/src/components/ActionTable/Form/Fields/DateRangeField.vue +13 -13
  24. package/src/components/ActionTable/Form/Fields/DateTimeField.vue +6 -6
  25. package/src/components/ActionTable/Form/Fields/DateTimePicker.vue +6 -6
  26. package/src/components/ActionTable/Form/Fields/EditableDiv.vue +3 -3
  27. package/src/components/ActionTable/Form/Fields/FieldLabel.vue +2 -2
  28. package/src/components/ActionTable/Form/Fields/FileUploadButton.vue +15 -15
  29. package/src/components/ActionTable/Form/Fields/InlineDateTimeField.vue +7 -7
  30. package/src/components/ActionTable/Form/Fields/IntegerField.vue +2 -2
  31. package/src/components/ActionTable/Form/Fields/LabeledInput.vue +2 -2
  32. package/src/components/ActionTable/Form/Fields/MultiFileField.vue +6 -6
  33. package/src/components/ActionTable/Form/Fields/MultiKeywordField.vue +8 -8
  34. package/src/components/ActionTable/Form/Fields/NewPasswordField.vue +6 -6
  35. package/src/components/ActionTable/Form/Fields/NumberField.vue +20 -20
  36. package/src/components/ActionTable/Form/Fields/NumberRangeField.vue +20 -20
  37. package/src/components/ActionTable/Form/Fields/SelectDrawer.vue +8 -8
  38. package/src/components/ActionTable/Form/Fields/SelectField.vue +36 -36
  39. package/src/components/ActionTable/Form/Fields/SelectWithChildrenField.vue +9 -9
  40. package/src/components/ActionTable/Form/Fields/SingleFileField.vue +6 -6
  41. package/src/components/ActionTable/Form/Fields/TextField.vue +15 -15
  42. package/src/components/ActionTable/Form/Fields/WysiwygField.vue +4 -4
  43. package/src/components/ActionTable/Form/RenderedForm.vue +5 -5
  44. package/src/components/ActionTable/TableSummaryRow.vue +8 -8
  45. package/src/components/ActionTable/listControls.ts +5 -5
  46. package/src/components/ActionTable/listHelpers.ts +1 -1
  47. package/src/components/ActionTable/tableColumns.ts +24 -1
  48. package/src/components/AuditHistory/AuditHistoryItem.vue +4 -4
  49. package/src/components/AuditHistory/AuditHistoryItemValue.vue +10 -10
  50. package/src/components/DragAndDrop/HandleDraggable.vue +8 -8
  51. package/src/components/DragAndDrop/ListItemDraggable.vue +8 -8
  52. package/src/components/DragAndDrop/dragAndDrop.ts +219 -219
  53. package/src/components/DragAndDrop/listDragAndDrop.ts +4 -4
  54. package/src/components/PanelsDrawer/PanelsDrawer.vue +8 -8
  55. package/src/components/PanelsDrawer/PanelsDrawerPanels.vue +1 -1
  56. package/src/components/PanelsDrawer/PanelsDrawerTabs.vue +4 -4
  57. package/src/components/Utility/Buttons/ExportButton.vue +4 -4
  58. package/src/components/Utility/Buttons/RefreshButton.vue +2 -2
  59. package/src/components/Utility/Controls/PreviousNextControls.vue +2 -2
  60. package/src/components/Utility/Dialogs/ConfirmDialog.vue +14 -14
  61. package/src/components/Utility/Dialogs/FullScreenDialog.vue +8 -8
  62. package/src/components/Utility/Dialogs/FullscreenCarouselDialog.vue +11 -11
  63. package/src/components/Utility/Dialogs/InfoDialog.vue +12 -12
  64. package/src/components/Utility/Dialogs/InputDialog.vue +5 -5
  65. package/src/components/Utility/Files/FilePreview.vue +10 -10
  66. package/src/components/Utility/Formats/GpsCoordinatesFormat.vue +4 -4
  67. package/src/components/Utility/Formats/IconWithTextFormat.vue +2 -2
  68. package/src/components/Utility/Formats/LabelValueFormat.vue +2 -2
  69. package/src/components/Utility/Layouts/CollapsableSidebar.vue +15 -15
  70. package/src/components/Utility/Layouts/ContentDrawer.vue +6 -6
  71. package/src/components/Utility/Popovers/InteractiveTooltip.vue +4 -4
  72. package/src/components/Utility/Popovers/PopoverMenu.vue +49 -49
  73. package/src/components/Utility/Tabs/BadgeTab.vue +1 -1
  74. package/src/components/Utility/Tabs/IndicatorTab.vue +3 -3
  75. package/src/components/Utility/Tools/ActionVnode.vue +3 -3
  76. package/src/components/Utility/Tools/RenderComponent.vue +3 -3
  77. package/src/components/Utility/Transitions/StaggeredListTransition.vue +3 -3
  78. package/src/helpers/array.ts +16 -16
  79. package/src/helpers/storage.ts +5 -5
  80. package/src/helpers/utils.ts +1 -1
  81. package/src/index.common.js +1 -2
  82. package/src/index.esm.js +1 -1
  83. package/src/index.umd.js +2 -2
  84. package/src/svg/CaretDownIcon.svg +1 -1
  85. package/src/svg/DragHandleDotsIcon.svg +3 -3
  86. package/src/svg/DragHandleIcon.svg +3 -3
  87. package/src/svg/FilterIcon.svg +5 -5
  88. package/src/svg/ImageIcon.svg +27 -27
  89. package/src/svg/PdfIcon.svg +5 -5
  90. package/src/svg/SkipNextIcon.svg +3 -3
  91. package/src/svg/SkipPreviousIcon.svg +3 -3
  92. package/src/svg/TrashIcon.svg +12 -12
  93. package/src/svg/WarningIcon.svg +3 -3
  94. package/src/svg/XIcon.svg +15 -15
  95. package/src/vue-plugin.js +5 -5
  96. package/vite.config.js +7 -0
@@ -21,7 +21,7 @@
21
21
  </div>
22
22
  <div class="flex-grow overflow-hidden h-full">
23
23
  <div class="flex items-stretch flex-nowrap h-full">
24
- <div class="border-r w-[13.5em] overflow-y-auto">
24
+ <div class="border-r w-[13.5rem] overflow-y-auto">
25
25
  <PanelsDrawerTabs
26
26
  v-model="activePanel"
27
27
  :panels="panels"
@@ -38,13 +38,13 @@
38
38
  </ContentDrawer>
39
39
  </template>
40
40
  <script setup>
41
- import { ref, watch } from 'vue';
42
- import { XIcon as CloseIcon } from '../../svg';
43
- import { ContentDrawer } from '../Utility';
44
- import PanelsDrawerPanels from './PanelsDrawerPanels';
45
- import PanelsDrawerTabs from './PanelsDrawerTabs';
41
+ import { ref, watch } from "vue";
42
+ import { XIcon as CloseIcon } from "../../svg";
43
+ import { ContentDrawer } from "../Utility";
44
+ import PanelsDrawerPanels from "./PanelsDrawerPanels";
45
+ import PanelsDrawerTabs from "./PanelsDrawerTabs";
46
46
 
47
- defineEmits(['update:model-value', 'close']);
47
+ defineEmits(["update:model-value", "close"]);
48
48
  const props = defineProps({
49
49
  modelValue: {
50
50
  type: String,
@@ -52,7 +52,7 @@ const props = defineProps({
52
52
  },
53
53
  panelsClass: {
54
54
  type: [Object, String],
55
- default: 'w-[35.5rem]'
55
+ default: "w-[35.5rem]"
56
56
  },
57
57
  panels: {
58
58
  type: Array,
@@ -13,7 +13,7 @@
13
13
  </template>
14
14
 
15
15
  <script setup>
16
- import { RenderVnode } from '../Utility';
16
+ import { RenderVnode } from "../Utility";
17
17
 
18
18
  defineProps({
19
19
  activePanel: {
@@ -23,14 +23,14 @@
23
23
  </QTabs>
24
24
  </template>
25
25
  <script setup>
26
- import { QTab } from 'quasar';
27
- import { RenderVnode } from '../Utility';
26
+ import { QTab } from "quasar";
27
+ import { RenderVnode } from "../Utility";
28
28
 
29
- defineEmits(['update:model-value']);
29
+ defineEmits(["update:model-value"]);
30
30
  defineProps({
31
31
  modelValue: {
32
32
  type: String,
33
- default: 'general'
33
+ default: "general"
34
34
  },
35
35
  panels: {
36
36
  type: Array,
@@ -4,9 +4,9 @@
4
4
  </QBtn>
5
5
  </template>
6
6
  <script setup>
7
- import { DownloadIcon as ExportIcon } from '@heroicons/vue/solid';
8
- import { ref } from 'vue';
9
- import { FlashMessages } from '../../../helpers';
7
+ import { DownloadIcon as ExportIcon } from "@heroicons/vue/solid";
8
+ import { ref } from "vue";
9
+ import { FlashMessages } from "../../../helpers";
10
10
 
11
11
  const props = defineProps({
12
12
  exporter: {
@@ -21,7 +21,7 @@ async function onExport() {
21
21
  await props.exporter();
22
22
  } catch (error) {
23
23
  console.error(error);
24
- FlashMessages.error('Failed to export data');
24
+ FlashMessages.error("Failed to export data");
25
25
  }
26
26
  isExporting.value = false;
27
27
  }
@@ -7,9 +7,9 @@
7
7
  </QBtn>
8
8
  </template>
9
9
  <script setup>
10
- import { RefreshIcon } from '@heroicons/vue/solid';
10
+ import { RefreshIcon } from "@heroicons/vue/solid";
11
11
 
12
- defineEmits(['refresh']);
12
+ defineEmits(["refresh"]);
13
13
  defineProps({
14
14
  loading: Boolean
15
15
  });
@@ -19,9 +19,9 @@
19
19
  </div>
20
20
  </template>
21
21
  <script setup>
22
- import { SkipNextIcon, SkipPreviousIcon } from '../../../svg';
22
+ import { SkipNextIcon, SkipPreviousIcon } from "../../../svg";
23
23
 
24
- defineEmits(['next']);
24
+ defineEmits(["next"]);
25
25
  defineProps({
26
26
  isLoading: Boolean
27
27
  });
@@ -70,26 +70,26 @@
70
70
  </template>
71
71
 
72
72
  <script setup>
73
- import { XIcon as CloseIcon } from '@heroicons/vue/outline';
73
+ import { XIcon as CloseIcon } from "@heroicons/vue/outline";
74
74
 
75
- const emit = defineEmits(['update:model-value', 'confirm', 'close']);
75
+ const emit = defineEmits(["update:model-value", "confirm", "close"]);
76
76
  const props = defineProps({
77
77
  modelValue: { type: [String, Boolean, Object], default: true },
78
78
  title: {
79
79
  type: String,
80
- default: ''
80
+ default: ""
81
81
  },
82
82
  titleClass: {
83
83
  type: String,
84
- default: ''
84
+ default: ""
85
85
  },
86
86
  subtitle: {
87
87
  type: String,
88
- default: ''
88
+ default: ""
89
89
  },
90
90
  content: {
91
91
  type: String,
92
- default: ''
92
+ default: ""
93
93
  },
94
94
  backdropDismiss: Boolean,
95
95
  maximized: Boolean,
@@ -101,32 +101,32 @@ const props = defineProps({
101
101
  hideConfirm: Boolean,
102
102
  confirmText: {
103
103
  type: String,
104
- default: 'Confirm'
104
+ default: "Confirm"
105
105
  },
106
106
  cancelText: {
107
107
  type: String,
108
- default: 'Cancel'
108
+ default: "Cancel"
109
109
  },
110
110
  confirmClass: {
111
111
  type: String,
112
- default: 'bg-blue-600 text-white'
112
+ default: "bg-blue-600 text-white"
113
113
  },
114
114
  contentClass: {
115
115
  type: String,
116
- default: ''
116
+ default: ""
117
117
  }
118
118
  });
119
119
 
120
120
  function onConfirm() {
121
- emit('confirm');
121
+ emit("confirm");
122
122
 
123
123
  if (props.closeOnConfirm) {
124
- emit('close');
124
+ emit("close");
125
125
  }
126
126
  }
127
127
 
128
128
  function onClose() {
129
- emit('update:model-value', false);
130
- emit('close');
129
+ emit("update:model-value", false);
130
+ emit("close");
131
131
  }
132
132
  </script>
@@ -20,10 +20,10 @@
20
20
  </template>
21
21
 
22
22
  <script setup>
23
- import { computed } from 'vue';
24
- import { XIcon } from '../../../svg';
23
+ import { computed } from "vue";
24
+ import { XIcon } from "../../../svg";
25
25
 
26
- const emit = defineEmits(['update:model-value', 'close']);
26
+ const emit = defineEmits(["update:model-value", "close"]);
27
27
  const props = defineProps({
28
28
  modelValue: Boolean,
29
29
  center: Boolean,
@@ -33,14 +33,14 @@ const props = defineProps({
33
33
 
34
34
  let computedClass = computed(() => {
35
35
  return {
36
- 'bg-blue-600 text-white': props.blue,
37
- 'bg-white text-gray-base': !props.blue,
38
- 'items-center': props.center
36
+ "bg-blue-600 text-white": props.blue,
37
+ "bg-white text-gray-base": !props.blue,
38
+ "items-center": props.center
39
39
  };
40
40
  });
41
41
 
42
42
  function onClose() {
43
- emit('update:model-value', false);
44
- emit('close');
43
+ emit("update:model-value", false);
44
+ emit("close");
45
45
  }
46
46
  </script>
@@ -38,19 +38,19 @@
38
38
  <img v-else :alt="file.filename" :src="file.url" />
39
39
  </div>
40
40
  </QCarouselSlide>
41
- </QCarousel>
42
- <CloseIcon
43
- class="absolute top-4 right-4 cursor-pointer text-white w-8 h-8"
44
- @click="$emit('close')"
45
- />
41
+ </QCarousel>
42
+ <CloseIcon
43
+ class="absolute top-4 right-4 cursor-pointer text-white w-8 h-8"
44
+ @click="$emit('close')"
45
+ />
46
46
  </div>
47
- </QDialog>
47
+ </QDialog>
48
48
  </template>
49
49
  <script setup>
50
- import { ref } from 'vue';
51
- import { XIcon as CloseIcon } from '../../../svg';
50
+ import { ref } from "vue";
51
+ import { XIcon as CloseIcon } from "../../../svg";
52
52
 
53
- defineEmits(['close']);
53
+ defineEmits(["close"]);
54
54
  const props = defineProps({
55
55
  files: {
56
56
  type: Array,
@@ -58,14 +58,14 @@ const props = defineProps({
58
58
  },
59
59
  defaultSlide: {
60
60
  type: String,
61
- default: ''
61
+ default: ""
62
62
  }
63
63
  });
64
64
 
65
65
  const carousel = ref(null);
66
66
  const currentSlide = ref(props.defaultSlide);
67
67
  function isVideo(file) {
68
- return file.mime?.startsWith('video');
68
+ return file.mime?.startsWith("video");
69
69
  }
70
70
  function getThumbUrl(file) {
71
71
  if (file.thumb) {
@@ -40,7 +40,7 @@
40
40
  @click="onClose"
41
41
  >
42
42
  <slot name="done-text" />
43
- </QBtn>
43
+ </QBtn>
44
44
  </div>
45
45
  </div>
46
46
  <a
@@ -49,31 +49,31 @@
49
49
  >
50
50
  <CloseIcon class="w-5" />
51
51
  </a>
52
- </QCard>
53
- </QDialog>
52
+ </QCard>
53
+ </QDialog>
54
54
  </template>
55
55
 
56
56
  <script setup>
57
- import { XIcon as CloseIcon } from '@heroicons/vue/outline';
57
+ import { XIcon as CloseIcon } from "@heroicons/vue/outline";
58
58
 
59
- const emit = defineEmits(['update:model-value', 'close']);
59
+ const emit = defineEmits(["update:model-value", "close"]);
60
60
  defineProps({
61
61
  modelValue: { type: [Boolean, Object], default: true },
62
62
  title: {
63
63
  type: String,
64
- default: ''
64
+ default: ""
65
65
  },
66
66
  titleClass: {
67
67
  type: String,
68
- default: ''
68
+ default: ""
69
69
  },
70
70
  subtitle: {
71
71
  type: String,
72
- default: ''
72
+ default: ""
73
73
  },
74
74
  content: {
75
75
  type: String,
76
- default: ''
76
+ default: ""
77
77
  },
78
78
  backdropDismiss: Boolean,
79
79
  maximized: Boolean,
@@ -81,12 +81,12 @@ defineProps({
81
81
  fullHeight: Boolean,
82
82
  doneText: {
83
83
  type: String,
84
- default: 'Done'
84
+ default: "Done"
85
85
  }
86
86
  });
87
87
 
88
88
  function onClose() {
89
- emit('update:model-value', false);
90
- emit('close');
89
+ emit("update:model-value", false);
90
+ emit("close");
91
91
  }
92
92
  </script>
@@ -15,19 +15,19 @@
15
15
  </ConfirmDialog>
16
16
  </template>
17
17
  <script setup>
18
- import { ref } from 'vue';
19
- import ConfirmDialog from './ConfirmDialog';
18
+ import { ref } from "vue";
19
+ import ConfirmDialog from "./ConfirmDialog";
20
20
 
21
- defineEmits(['confirm', 'close', 'update:input']);
21
+ defineEmits(["confirm", "close", "update:input"]);
22
22
  const props = defineProps({
23
23
  ...ConfirmDialog.props,
24
24
  title: {
25
25
  type: String,
26
- default: 'Enter Value'
26
+ default: "Enter Value"
27
27
  },
28
28
  input: {
29
29
  type: [Number, String],
30
- default: ''
30
+ default: ""
31
31
  }
32
32
  });
33
33
 
@@ -98,17 +98,17 @@
98
98
  </template>
99
99
 
100
100
  <script setup>
101
- import { DocumentTextIcon as TextFileIcon, DownloadIcon, PlayIcon } from '@heroicons/vue/outline';
102
- import { computed, ref } from 'vue';
103
- import { download } from '../../../helpers';
104
- import { ImageIcon, PdfIcon, TrashIcon as RemoveIcon } from '../../../svg';
105
- import { FullScreenCarouselDialog } from '../Dialogs';
101
+ import { DocumentTextIcon as TextFileIcon, DownloadIcon, PlayIcon } from "@heroicons/vue/outline";
102
+ import { computed, ref } from "vue";
103
+ import { download } from "../../../helpers";
104
+ import { ImageIcon, PdfIcon, TrashIcon as RemoveIcon } from "../../../svg";
105
+ import { FullScreenCarouselDialog } from "../Dialogs";
106
106
 
107
- const emit = defineEmits(['remove']);
107
+ const emit = defineEmits(["remove"]);
108
108
  const props = defineProps({
109
109
  src: {
110
110
  type: String,
111
- default: ''
111
+ default: ""
112
112
  },
113
113
  image: {
114
114
  type: Object,
@@ -124,7 +124,7 @@ const props = defineProps({
124
124
  },
125
125
  downloadButtonClass: {
126
126
  type: String,
127
- default: 'bg-blue-600 text-white'
127
+ default: "bg-blue-600 text-white"
128
128
  },
129
129
  downloadable: Boolean,
130
130
  removable: Boolean,
@@ -140,7 +140,7 @@ const computedImage = computed(() => {
140
140
  return {
141
141
  id: props.src,
142
142
  url: props.src,
143
- type: 'image/' + props.src.split('.').pop().toLowerCase()
143
+ type: "image/" + props.src.split(".").pop().toLowerCase()
144
144
  };
145
145
  }
146
146
  return null;
@@ -168,7 +168,7 @@ function onRemove() {
168
168
  isConfirmingRemove.value = false;
169
169
  }, 2000);
170
170
  } else {
171
- emit('remove');
171
+ emit("remove");
172
172
  }
173
173
  }
174
174
  </script>
@@ -14,15 +14,15 @@ import { LocationMarkerIcon as LocationIcon } from "@heroicons/vue/solid";
14
14
  defineProps({
15
15
  location: {
16
16
  type: Object,
17
- default: null,
17
+ default: null
18
18
  },
19
19
  decimals: {
20
20
  type: Number,
21
- default: 6,
21
+ default: 6
22
22
  },
23
23
  iconClass: {
24
24
  type: String,
25
- default: "w-7",
26
- },
25
+ default: "w-7"
26
+ }
27
27
  });
28
28
  </script>
@@ -14,7 +14,7 @@ defineProps({
14
14
  },
15
15
  iconClass: {
16
16
  type: String,
17
- default: 'w-6'
17
+ default: "w-6"
18
18
  },
19
19
  text: {
20
20
  type: String,
@@ -22,7 +22,7 @@ defineProps({
22
22
  },
23
23
  textClass: {
24
24
  type: String,
25
- default: 'ml-2'
25
+ default: "ml-2"
26
26
  }
27
27
  });
28
28
  </script>
@@ -5,7 +5,7 @@
5
5
  <template v-if="loading">
6
6
  <QSpinnerTail />
7
7
  </template>
8
- <slot v-else>{{ value || '-' }}</slot>
8
+ <slot v-else>{{ value || "-" }}</slot>
9
9
  </div>
10
10
  </div>
11
11
  </template>
@@ -17,7 +17,7 @@ defineProps({
17
17
  },
18
18
  value: {
19
19
  type: [String, Number],
20
- default: '-'
20
+ default: "-"
21
21
  },
22
22
  dense: Boolean,
23
23
  nowrap: Boolean,
@@ -44,59 +44,59 @@
44
44
  </div>
45
45
  </template>
46
46
  <script setup>
47
- import { ChevronLeftIcon as ToggleIcon } from '@heroicons/vue/outline';
48
- import { computed, onMounted, ref, watch } from 'vue';
47
+ import { ChevronLeftIcon as ToggleIcon } from "@heroicons/vue/outline";
48
+ import { computed, onMounted, ref, watch } from "vue";
49
49
 
50
- const emit = defineEmits(['collapse', 'update:collapse']);
50
+ const emit = defineEmits(["collapse", "update:collapse"]);
51
51
  const props = defineProps({
52
52
  rightSide: Boolean,
53
53
  displayClass: {
54
54
  type: String,
55
- default: 'flex flex-col'
55
+ default: "flex flex-col"
56
56
  },
57
57
  maxWidth: {
58
58
  type: String,
59
- default: '13.5rem'
59
+ default: "13.5rem"
60
60
  },
61
61
  minWidth: {
62
62
  type: String,
63
- default: '5.5rem'
63
+ default: "5.5rem"
64
64
  },
65
65
  disabled: Boolean,
66
66
  collapse: Boolean,
67
67
  name: {
68
68
  type: String,
69
- default: 'sidebar'
69
+ default: "sidebar"
70
70
  },
71
71
  toggleAtTop: Boolean,
72
72
  toggleClass: {
73
73
  type: String,
74
- default: ''
74
+ default: ""
75
75
  },
76
76
  hideToggleOnCollapse: Boolean
77
77
  });
78
78
 
79
79
  const isCollapsed = ref(props.collapse);
80
80
 
81
- const stored = localStorage.getItem(props.name + '-is-collapsed');
81
+ const stored = localStorage.getItem(props.name + "-is-collapsed");
82
82
 
83
83
  if (stored !== null) {
84
- isCollapsed.value = stored === '1';
84
+ isCollapsed.value = stored === "1";
85
85
  }
86
86
  function toggleCollapse() {
87
87
  setCollapse(!isCollapsed.value);
88
- emit('collapse', isCollapsed.value);
89
- emit('update:collapse', isCollapsed.value);
88
+ emit("collapse", isCollapsed.value);
89
+ emit("update:collapse", isCollapsed.value);
90
90
  }
91
91
 
92
92
  function setCollapse(state) {
93
93
  isCollapsed.value = state;
94
- localStorage.setItem(props.name + '-is-collapsed', isCollapsed.value ? '1' : '');
94
+ localStorage.setItem(props.name + "-is-collapsed", isCollapsed.value ? "1" : "");
95
95
  }
96
96
 
97
97
  onMounted(() => {
98
- emit('collapse', isCollapsed.value);
99
- emit('update:collapse', isCollapsed.value);
98
+ emit("collapse", isCollapsed.value);
99
+ emit("update:collapse", isCollapsed.value);
100
100
  });
101
101
  const style = computed(() => {
102
102
  return {
@@ -25,9 +25,9 @@
25
25
  </template>
26
26
 
27
27
  <script setup>
28
- import { computed } from 'vue';
28
+ import { computed } from "vue";
29
29
 
30
- const emit = defineEmits(['update:show']);
30
+ const emit = defineEmits(["update:show"]);
31
31
 
32
32
  const props = defineProps({
33
33
  show: Boolean,
@@ -35,21 +35,21 @@ const props = defineProps({
35
35
  overlay: Boolean,
36
36
  position: {
37
37
  type: String,
38
- default: 'bottom'
38
+ default: "bottom"
39
39
  },
40
40
  contentClass: {
41
41
  type: String,
42
- default: 'py-8 px-12'
42
+ default: "py-8 px-12"
43
43
  },
44
44
  title: {
45
45
  type: String,
46
- default: 'Edit'
46
+ default: "Edit"
47
47
  }
48
48
  });
49
49
 
50
50
  const isShowing = computed({
51
51
  get: () => props.show,
52
- set: (value) => emit('update:show', value)
52
+ set: (value) => emit("update:show", value)
53
53
  });
54
54
  </script>
55
55
 
@@ -12,17 +12,17 @@
12
12
  </QTooltip>
13
13
  </template>
14
14
  <script setup>
15
- import { onMounted, ref } from 'vue';
15
+ import { onMounted, ref } from "vue";
16
16
 
17
- defineProps({ tooltip: { type: String, default: '' } });
17
+ defineProps({ tooltip: { type: String, default: "" } });
18
18
  const show = ref(false);
19
19
  const tooltipBox = ref(null);
20
20
  const isHovering = ref(false);
21
21
  const isHoveringParent = ref(false);
22
22
  let timeout = null;
23
23
  onMounted(() => {
24
- tooltipBox.value.$el.parentNode.addEventListener('mouseover', onEnterParent);
25
- tooltipBox.value.$el.parentNode.addEventListener('mouseleave', onLeaveParent);
24
+ tooltipBox.value.$el.parentNode.addEventListener("mouseover", onEnterParent);
25
+ tooltipBox.value.$el.parentNode.addEventListener("mouseleave", onLeaveParent);
26
26
  });
27
27
  function onEnterParent() {
28
28
  show.value = true;