@mythpe/quasar-ui-qui 0.2.83 → 0.2.85

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mythpe/quasar-ui-qui",
3
- "version": "0.2.83",
3
+ "version": "0.2.85",
4
4
  "description": "MyTh Quasar UI Kit App Extension",
5
5
  "author": {
6
6
  "name": "MyTh Ahmed Faiz",
@@ -88,6 +88,7 @@ type Props = {
88
88
  colorColumns?: MDatatableProps['colorColumns'];
89
89
  sarColumns?: MDatatableProps['sarColumns'];
90
90
  copyColumns?: MDatatableProps['copyColumns'];
91
+ descColumns?: MDatatableProps['descColumns'];
91
92
  }
92
93
 
93
94
  const props = withDefaults(defineProps<Props>(), {
@@ -154,7 +155,8 @@ const props = withDefaults(defineProps<Props>(), {
154
155
  urlColumns: undefined,
155
156
  colorColumns: undefined,
156
157
  sarColumns: undefined,
157
- copyColumns: undefined
158
+ copyColumns: undefined,
159
+ descColumns: undefined
158
160
  })
159
161
 
160
162
  interface Emits {
@@ -403,6 +405,7 @@ const urlColumnsProp = computed<string[]>(() => toValue(props.urlColumns || []))
403
405
  const colorColumnsProp = computed<string[]>(() => toValue(props.colorColumns || []))
404
406
  const sarColumnsProp = computed<string[]>(() => toValue(props.sarColumns || []))
405
407
  const copyColumnsProp = computed<string[]>(() => toValue(props.copyColumns || []))
408
+ const descColumnsProp = computed<string[]>(() => toValue(props.descColumns || []))
406
409
  onMounted(() => refresh())
407
410
  watch(loading, v => {
408
411
  if (pluginOptions.value?.dt?.useQuasarLoading) {
@@ -627,6 +630,9 @@ defineExpose({
627
630
  :value="col.value"
628
631
  />
629
632
  </template>
633
+ <template v-else-if="descColumnsProp.indexOf(col.name) !== -1">
634
+ <MDtDescColumn :value="col.value" />
635
+ </template>
630
636
  <template v-else-if="col.name === controlKey">
631
637
  <MRow
632
638
  class="m-dt-context_menu_items"
@@ -932,7 +938,6 @@ defineExpose({
932
938
  <MBtn
933
939
  v-close-popup
934
940
  :label="__('myth.datatable.filter.cancel')"
935
- color="secondary"
936
941
  style="min-width: 100px"
937
942
  v-bind="pluginOptions.dt?.dialogButtonsProps as any"
938
943
  @click="closeFilterDialog"
@@ -1301,6 +1306,18 @@ defineExpose({
1301
1306
  </q-td>
1302
1307
  </template>
1303
1308
 
1309
+ <template
1310
+ v-for="cdd in descColumnsProp"
1311
+ :key="`a-cdd-body-cell-${cdd}`"
1312
+ #[`body-cell-${cdd}`]="descColumnProps"
1313
+ >
1314
+ <q-td :props="descColumnProps">
1315
+ <MDtDescColumn
1316
+ :value="descColumnProps.row[descColumnProps.col.field]"
1317
+ />
1318
+ </q-td>
1319
+ </template>
1320
+
1304
1321
  <template
1305
1322
  v-for="slotName in getSlots"
1306
1323
  :key="slotName"
@@ -34,24 +34,20 @@ defineOptions({
34
34
  :style="`max-width: ${width ?? 150}px;`"
35
35
  class="ellipsis"
36
36
  >
37
+ <q-btn
38
+ v-if="!!value"
39
+ dense
40
+ flat
41
+ icon="ion-copy"
42
+ round
43
+ size="sm"
44
+ @click="() => !!value ? copyText(value) : null"
45
+ />
37
46
  {{ label ?? '' }}
38
47
  <q-tooltip>
39
48
  {{ value }}
40
49
  </q-tooltip>
41
50
  </div>
42
- <q-btn
43
- v-if="!!value"
44
- dense
45
- flat
46
- icon="ion-copy"
47
- round
48
- size="sm"
49
- @click="() => !!value ? copyText(value) : null"
50
- >
51
- <q-tooltip>
52
- {{ __('labels.copy') }}
53
- </q-tooltip>
54
- </q-btn>
55
51
  <slot />
56
52
  </div>
57
53
  </template>
@@ -0,0 +1,53 @@
1
+ <!--
2
+ - MyTh Ahmed Faiz Copyright © 2016-2025 All rights reserved.
3
+ - Email: mythpe@gmail.com
4
+ - Mobile: +966590470092
5
+ - Website: https://www.4myth.com
6
+ - Github: https://github.com/mythpe
7
+ -->
8
+
9
+ <script lang="ts" setup>
10
+
11
+ import type { MDtDescColumnProps } from '../../types'
12
+ import { useMyth } from '../../composable'
13
+
14
+ interface Props {
15
+ value?: MDtDescColumnProps['value'];
16
+ }
17
+
18
+ defineProps<Props>()
19
+
20
+ const { __, copyText } = useMyth()
21
+
22
+ defineOptions({
23
+ name: 'MDtDescColumn',
24
+ inheritAttrs: !1
25
+ })
26
+ </script>
27
+
28
+ <template>
29
+ <div
30
+ class="row q-gutter-md items-center justify-center"
31
+ v-bind="$attrs"
32
+ >
33
+ <div class="m-dt__max_desc">
34
+ <q-btn
35
+ v-if="!!value"
36
+ dense
37
+ flat
38
+ icon="ion-copy"
39
+ round
40
+ size="sm"
41
+ @click="() => !!value ? copyText(value) : null"
42
+ />
43
+ {{ value ?? '' }}
44
+ <q-tooltip>
45
+ <div
46
+ class="text-body2"
47
+ v-text="value"
48
+ />
49
+ </q-tooltip>
50
+ </div>
51
+ <slot />
52
+ </div>
53
+ </template>
@@ -136,7 +136,6 @@ export const useMyth = () => {
136
136
  controlStyle = opts.controlStyle
137
137
  delete opts.controlStyle
138
138
  }
139
-
140
139
  const result: MDtColumn[] = []
141
140
 
142
141
  headers.forEach((elm: string | MDtColumn | undefined) => {
@@ -59,6 +59,7 @@ export const defineAsyncComponents = function (app: App) {
59
59
  app.component('MDtColorColumn', defineAsyncComponent(() => import('../components/datatable/MDtColorColumn.vue')))
60
60
  app.component('MDtContextmenuItems', defineAsyncComponent(() => import('../components/datatable/MDtContextmenuItems.vue')))
61
61
  app.component('MDtCopyColumn', defineAsyncComponent(() => import('../components/datatable/MDtCopyColumn.vue')))
62
+ app.component('MDtDescColumn', defineAsyncComponent(() => import('../components/datatable/MDtDescColumn.vue')))
62
63
  app.component('MDtImageColumn', defineAsyncComponent(() => import('../components/datatable/MDtImageColumn.vue')))
63
64
  app.component('MDtSarColumn', defineAsyncComponent(() => import('../components/datatable/MDtSarColumn.vue')))
64
65
  app.component('MDtUrlColumn', defineAsyncComponent(() => import('../components/datatable/MDtUrlColumn.vue')))
@@ -21,6 +21,8 @@ import type {
21
21
  MDtContextmenuItemsSlots,
22
22
  MDtCopyColumnProps,
23
23
  MDtCopyColumnSlots,
24
+ MDtDescColumnProps,
25
+ MDtDescColumnSlots,
24
26
  MDtImageColumnProps,
25
27
  MDtImageColumnSlots,
26
28
  MDtSarColumnProps,
@@ -127,6 +129,7 @@ declare module '@vue/runtime-core' {
127
129
  MDtColorColumn: GlobalComponentConstructor<MDtColorColumnProps, MDtColorColumnSlots>;
128
130
  MDtContextmenuItems: GlobalComponentConstructor<MDtContextmenuItemsProps, MDtContextmenuItemsSlots>;
129
131
  MDtCopyColumn: GlobalComponentConstructor<MDtCopyColumnProps, MDtCopyColumnSlots>;
132
+ MDtDescColumn: GlobalComponentConstructor<MDtDescColumnProps, MDtDescColumnSlots>;
130
133
  MDtImageColumn: GlobalComponentConstructor<MDtImageColumnProps, MDtImageColumnSlots>;
131
134
  MDtSarColumn: GlobalComponentConstructor<MDtSarColumnProps, MDtSarColumnSlots>;
132
135
  MDtUrlColumn: GlobalComponentConstructor<MDtUrlColumnProps, MDtUrlColumnSlots>;
@@ -314,6 +314,10 @@ export type MDatatableProps<I extends GenericFormValues = GenericFormValues> = O
314
314
  * Names of a text want to show copy btn
315
315
  */
316
316
  copyColumns?: MaybeRefOrGetter<string[]>;
317
+ /**
318
+ * Names of a text want to show be truncate text
319
+ */
320
+ descColumns?: MaybeRefOrGetter<string[]>;
317
321
  }
318
322
 
319
323
  export interface MDtAvatarProps extends QAvatarProps {
@@ -368,6 +372,17 @@ export interface MDtCopyColumnSlots {
368
372
  default: () => VNode[];
369
373
  }
370
374
 
375
+ export interface MDtDescColumnProps {
376
+ value?: any;
377
+ }
378
+
379
+ export interface MDtDescColumnSlots {
380
+ /**
381
+ * Default slot can be used for captions. See examples
382
+ */
383
+ default: () => VNode[];
384
+ }
385
+
371
386
  export interface MDtImageColumnProps {
372
387
  imageMode?: MDatatableProps['imageMode'];
373
388
  imageSize?: MDatatableProps['imageSize'];