bt-core-app 1.4.2 → 1.4.3

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.
Files changed (68) hide show
  1. package/package.json +8 -2
  2. package/dist/useApi.d.ts +0 -0
  3. package/src/assets/vue.svg +0 -1
  4. package/src/components/BT-Btn.vue +0 -41
  5. package/src/components/BT-Col.vue +0 -36
  6. package/src/components/BT-Field-Checkbox.vue +0 -70
  7. package/src/components/BT-Field-Date.vue +0 -108
  8. package/src/components/BT-Field-Entity.vue +0 -48
  9. package/src/components/BT-Field-Select.vue +0 -67
  10. package/src/components/BT-Field-String.vue +0 -78
  11. package/src/components/BT-Field-Switch.vue +0 -68
  12. package/src/components/BT-Field-Tags.vue +0 -66
  13. package/src/components/BT-Field-Textarea.vue +0 -67
  14. package/src/components/BT-Field-Trigger.vue +0 -315
  15. package/src/components/BT-Header-Option.vue +0 -39
  16. package/src/components/BT-Json.vue +0 -67
  17. package/src/components/BT-Nav-Menu-Item.vue +0 -60
  18. package/src/components/BT-Nav-Sidebar.vue +0 -78
  19. package/src/components/BT-Select-List-Box.vue +0 -258
  20. package/src/components/BT-Select.vue +0 -46
  21. package/src/components/BT-Snack.vue +0 -31
  22. package/src/components/BT-Span.vue +0 -21
  23. package/src/components/Dialog-Confirm.vue +0 -47
  24. package/src/components/Dialog-Select-Date.vue +0 -89
  25. package/src/components/Dialog-Select.vue +0 -140
  26. package/src/components/Dialog-Text.vue +0 -59
  27. package/src/composables/actions-tracker.ts +0 -99
  28. package/src/composables/actions.ts +0 -354
  29. package/src/composables/api.ts +0 -479
  30. package/src/composables/auth.ts +0 -452
  31. package/src/composables/cosmetics.ts +0 -177
  32. package/src/composables/csv.ts +0 -198
  33. package/src/composables/dates.ts +0 -86
  34. package/src/composables/demo.ts +0 -33
  35. package/src/composables/dialogs.ts +0 -114
  36. package/src/composables/document-meta.ts +0 -44
  37. package/src/composables/draggable.ts +0 -189
  38. package/src/composables/filters.ts +0 -264
  39. package/src/composables/forage.ts +0 -49
  40. package/src/composables/helpers.ts +0 -647
  41. package/src/composables/id.ts +0 -20
  42. package/src/composables/list.ts +0 -604
  43. package/src/composables/navigation.ts +0 -222
  44. package/src/composables/presets.ts +0 -28
  45. package/src/composables/pwa.ts +0 -97
  46. package/src/composables/resizable.ts +0 -382
  47. package/src/composables/rules.ts +0 -40
  48. package/src/composables/stores.ts +0 -818
  49. package/src/composables/track.ts +0 -55
  50. package/src/composables/urls.ts +0 -66
  51. package/src/core.ts +0 -113
  52. package/src/index.ts +0 -48
  53. package/src/types.ts +0 -17
  54. package/src/useApi.ts +0 -68
  55. package/src/vite-env.d.ts +0 -1
  56. package/test/api.test.ts +0 -84
  57. package/test/auth.test.ts +0 -74
  58. package/test/forage.test.ts +0 -31
  59. package/test/helpers.test.ts +0 -231
  60. package/test/navigation.test.ts +0 -99
  61. package/test/stores-last-update.test.ts +0 -138
  62. package/test/stores-session.test.ts +0 -118
  63. package/test/track.test.ts +0 -29
  64. package/test/urls.test.ts +0 -42
  65. package/test/utils.ts +0 -15
  66. package/tsconfig.json +0 -28
  67. package/tsconfig.node.json +0 -11
  68. package/vite.config.ts +0 -45
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bt-core-app",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "description": "Core app tools for some basic features like navigation, authentication, server apis, and cosmetics",
5
5
  "homepage": "https://github.com/BlitzItTech/bt-core",
6
6
  "bugs": {
@@ -9,7 +9,13 @@
9
9
  "type": "module",
10
10
  "types": "./dist/index.d.ts",
11
11
  "main": "./dist/bt-core-app.js",
12
- "exports": "./dist/bt-core-app.js",
12
+ "exports": {
13
+ ".": "./dist/bt-core-app.js",
14
+ "./package.json": "./package.json"
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
13
19
  "scripts": {
14
20
  "dev": "vite",
15
21
  "build": "vue-tsc && vite build",
package/dist/useApi.d.ts DELETED
File without changes
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
@@ -1,41 +0,0 @@
1
- <template>
2
- <v-btn
3
- v-bind="$attrs"
4
- :disabled="!mIsEditing"
5
- :icon="mIcon"
6
- :size="mSize"
7
- :variant="mVariant" />
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import { computed, inject, ref } from 'vue'
12
- import { usePresets } from '../composables/presets'
13
- // import { VBtn } from 'vuetify/components'
14
-
15
- interface BtnProps {
16
- icon?: string
17
- isEditing?: boolean
18
- preset?: string
19
- size?: string,
20
- variant?: 'flat' | 'text' | 'elevated' | 'tonal' | 'outlined' | 'plain'
21
- }
22
-
23
- const props = withDefaults(defineProps<BtnProps>(), {
24
- icon: undefined,
25
- isEditing: true,
26
- size: undefined,
27
- variant: 'text'
28
- })
29
-
30
- const presets = usePresets(props.preset)
31
-
32
- const mIcon = computed(() => props.icon ?? presets.icon)
33
-
34
- const iIsEditing = inject('isEditing', () => ref(false), true)
35
- const mIsEditing = computed(() => props.isEditing ?? presets.isEditing ?? iIsEditing.value)
36
-
37
- const iSize = inject('size', () => ref(props.size ?? 'small'), true)
38
- const mSize = computed(() => props.size ?? presets.size ?? iSize.value)
39
-
40
- const mVariant = computed(() => props.variant ?? presets.variant)
41
- </script>
@@ -1,36 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols"
7
- :class="noGutters ? 'px-0' : ''">
8
- <slot></slot>
9
- </v-col>
10
- </template>
11
-
12
- <script setup lang="ts">
13
- import { computed, inject, ref } from 'vue'
14
-
15
- interface ColProps {
16
- cols?: string | boolean
17
- isMobile?: boolean
18
- lg?: string | boolean
19
- md?: string | boolean
20
- sm?: string | boolean
21
- noGutters?: boolean
22
- }
23
-
24
- const props = withDefaults(defineProps<ColProps>(), {
25
- cols: '12',
26
- lg: false,
27
- md: false,
28
- sm: '6'
29
- })
30
-
31
- const mIsMobile = inject('isMobile', () => ref(false), true)
32
-
33
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
34
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
35
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
36
- </script>
@@ -1,70 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols">
7
- <!-- <v-list-item :density="density"> -->
8
- <v-checkbox
9
- v-bind="$attrs"
10
- v-model="value"
11
- color="primary"
12
- :hide-details="rules == undefined"
13
- :label="label"
14
- :readonly="!cIsEditing" />
15
- <!-- </v-list-item> -->
16
- </v-col>
17
- </template>
18
-
19
- <script setup lang="ts">
20
- import type { BladeDensity } from '../types'
21
- import { computed, inject, ref } from 'vue'
22
-
23
- defineOptions({
24
- inheritAttrs: false
25
- })
26
-
27
- interface FieldProps {
28
- cols?: string | boolean
29
- density?: BladeDensity
30
- horizontal?: boolean
31
- isEditing?: boolean
32
- isMobile?: boolean
33
- label: any
34
- lg?: string | boolean
35
- md?: string | boolean
36
- modelValue: any
37
- rules?: any
38
- sm?: string | boolean
39
- }
40
-
41
- const props = withDefaults(defineProps<FieldProps>(), {
42
- isEditing: undefined,
43
- cols: '12',
44
- lg: false,
45
- md: false,
46
- sm: '6'
47
- })
48
-
49
- const emit = defineEmits(['update:modelValue'])
50
-
51
- const value = computed({
52
- get() {
53
- return props.modelValue
54
- },
55
- set(value) {
56
- emit('update:modelValue', value)
57
- }
58
- })
59
-
60
- const mIsEditing = inject('isEditing', () => ref(false), true)
61
- const cIsEditing = computed(() => props.isEditing ?? mIsEditing.value)
62
- const mIsMobile = inject('isMobile', () => ref(false), true)
63
- // const variant = inject('variant', 'underlined')
64
- // const editVariant = inject('editVariant', 'outlined')
65
-
66
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
67
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
68
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
69
-
70
- </script>
@@ -1,108 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols">
7
- <v-list-item v-if="!cIsEditing" class="px-0" density="compact">
8
- <v-list-item-subtitle>{{ label }}</v-list-item-subtitle>
9
- <v-list-item-title>{{ displayValue }}</v-list-item-title>
10
- </v-list-item>
11
- <v-menu v-else open-delay="5">
12
- <template v-slot:activator="{ props }">
13
- <v-text-field
14
- v-bind="props"
15
- :hide-details="!dateRules"
16
- :label="label"
17
- readonly
18
- :variant="cIsEditing ? editVariant : variant"
19
- v-model="displayValue" />
20
- </template>
21
- <VueDatePicker
22
- auto-apply
23
- dark
24
- :enable-time-picker="useTime"
25
- inline
26
- :is-24="false"
27
- :time-picker-inline="useTime"
28
- :timezone="auth.timeZone.value"
29
- utc
30
- v-bind="$attrs"
31
- v-model="value" />
32
- </v-menu>
33
- </v-col>
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import VueDatePicker from '@vuepic/vue-datepicker'
38
- import '@vuepic/vue-datepicker/dist/main.css'
39
- import { computed, inject, ref } from 'vue'
40
- import { useDates } from '../composables/dates'
41
- import { useAuth } from '../composables/auth'
42
-
43
- defineOptions({
44
- inheritAttrs: false
45
- })
46
-
47
- interface FieldProps {
48
- cols?: string | boolean
49
- dateFrom?: string
50
- dateRules?: Function | unknown[]
51
- format?: string
52
- fromNow?: boolean
53
- horizontal?: boolean
54
- isEditing?: boolean
55
- isMobile?: boolean
56
- label?: string
57
- lg?: string | boolean
58
- md?: string | boolean
59
- modelValue: any
60
- sm?: string | boolean
61
- useTime?: boolean
62
- }
63
-
64
- const props = withDefaults(defineProps<FieldProps>(), {
65
- isEditing: undefined,
66
- cols: '12',
67
- lg: false,
68
- md: false,
69
- sm: '6',
70
- format: 'dd-LL-yyyy', //ccc dd-LL-yyyy t
71
- fromNow: false
72
- })
73
-
74
- const emit = defineEmits(['update:modelValue'])
75
- const { tzString } = useDates()
76
- const auth = useAuth()
77
-
78
- const value = computed({
79
- get() {
80
- return props.modelValue
81
- },
82
- set(value) {
83
- emit('update:modelValue', value)
84
- }
85
- })
86
-
87
- const displayValue = computed(() => props.modelValue ? tzString(props.modelValue, props.format) : undefined)
88
-
89
- // const modal = ref(false)
90
- const startDate = ref()
91
- const mIsEditing = inject('isEditing', () => ref(false), true)
92
- const cIsEditing = computed(() => props.isEditing ?? mIsEditing.value)
93
- const mIsMobile = inject('isMobile', () => ref(false), true)
94
- const variant = inject('fieldVariant', 'underlined')
95
- const editVariant = inject('fieldEditVariant', 'outlined')
96
-
97
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
98
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
99
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
100
-
101
- if (props.dateFrom != null) {
102
- startDate.value = props.dateFrom
103
- }
104
- else if (props.fromNow) {
105
- startDate.value = tzString()
106
- }
107
-
108
- </script>
@@ -1,48 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols">
7
- <v-list-item>
8
- <v-list-item-subtitle v-if="label != null">{{ label }}</v-list-item-subtitle>
9
- <v-list-item-title>
10
- <bt-entity
11
- v-bind="$attrs" />
12
- </v-list-item-title>
13
- </v-list-item>
14
- </v-col>
15
- </template>
16
-
17
- <script setup lang="ts">
18
- import { computed, inject, ref } from 'vue'
19
-
20
- defineOptions({
21
- inheritAttrs: false
22
- })
23
-
24
- interface FieldProps {
25
- cols?: string | boolean
26
- isMobile?: boolean
27
- label?: string
28
- lg?: string | boolean
29
- md?: string | boolean
30
- sm?: string | boolean
31
- }
32
-
33
- const props = withDefaults(defineProps<FieldProps>(), {
34
- cols: '12',
35
- lg: false,
36
- md: false,
37
- sm: '6'
38
- })
39
-
40
- const emit = defineEmits(['update:modelValue'])
41
-
42
- const mIsMobile = inject('isMobile', () => ref(false), true)
43
-
44
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
45
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
46
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
47
-
48
- </script>
@@ -1,67 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols">
7
- <bt-select
8
- v-bind="$attrs"
9
- :readonly="!cIsEditing"
10
- :fieldVariant="cIsEditing ? editVariant : variant"
11
- v-model="value" />
12
- </v-col>
13
- </template>
14
-
15
- <script setup lang="ts">
16
- import { computed, inject, ref } from 'vue'
17
-
18
- defineOptions({
19
- inheritAttrs: false
20
- })
21
-
22
- interface FieldProps {
23
- cols?: string | boolean
24
- // density?: BladeDensity
25
- horizontal?: boolean
26
- isEditing?: boolean
27
- isMobile?: boolean
28
- // label?: string
29
- lg?: string | boolean
30
- md?: string | boolean
31
- modelValue?: any
32
- rules?: any
33
- sm?: string | boolean
34
- }
35
-
36
- const props = withDefaults(defineProps<FieldProps>(), {
37
- isEditing: undefined,
38
- cols: '12',
39
- lg: false,
40
- md: false,
41
- sm: '6'
42
- })
43
-
44
- const emit = defineEmits(['update:modelValue', 'select'])
45
-
46
- const value = computed({
47
- get() {
48
- return props.modelValue
49
- },
50
- set(value) {
51
- emit('update:modelValue', value)
52
- emit('select', value)
53
- }
54
- })
55
-
56
- const mIsEditing = inject('isEditing', () => ref(false), true)
57
-
58
- const cIsEditing = computed(() => props.isEditing ?? mIsEditing.value)
59
- const mIsMobile = inject('isMobile', () => ref(false), true)
60
- const variant = inject('fieldVariant', 'underlined')
61
- const editVariant = inject('fieldEditVariant', 'outlined')
62
-
63
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
64
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
65
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
66
-
67
- </script>
@@ -1,78 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols">
7
- <v-text-field
8
- v-bind="$attrs"
9
- :hide-details="!rules"
10
- :prefix="useCurrency ? '$' : undefined"
11
- :readonly="!cIsEditing"
12
- :rules="rules"
13
- :variant="cIsEditing ? editVariant : variant"
14
- v-model="value" />
15
- </v-col>
16
- </template>
17
-
18
- <script setup lang="ts">
19
- // import { type BladeDensity } from '../types'
20
- import { computed, inject, ref } from 'vue'
21
- // import { useFilters } from '@/composables/filters'
22
-
23
- defineOptions({
24
- inheritAttrs: false
25
- })
26
-
27
- interface FieldProps {
28
- cols?: string | boolean
29
- horizontal?: boolean
30
- isEditing?: boolean
31
- isMobile?: boolean
32
- lg?: string | boolean
33
- md?: string | boolean
34
- modelValue: any
35
- rules?: any
36
- sm?: string | boolean
37
- useCurrency?: boolean
38
- }
39
-
40
- const props = withDefaults(defineProps<FieldProps>(), {
41
- isEditing: undefined,
42
- cols: '12',
43
- lg: false,
44
- md: false,
45
- sm: '6'
46
- })
47
-
48
- const emit = defineEmits(['update:modelValue'])
49
-
50
- const value = computed({
51
- get() {
52
- return props.modelValue
53
- },
54
- set(value) {
55
- emit('update:modelValue', value)
56
- }
57
- })
58
-
59
- const mIsEditing = inject('isEditing', () => ref(false), true)
60
-
61
- const cIsEditing = computed(() => props.isEditing ?? mIsEditing.value)
62
- const mIsMobile = inject('isMobile', () => ref(false), true)
63
- const variant = inject('fieldVariant', 'underlined')
64
- const editVariant = inject('fieldEditVariant', 'outlined')
65
-
66
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
67
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
68
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
69
- // const str: Ref<any> = ref(undefined)
70
-
71
- // watch(props.modelValue, (v) => { str.value = v })
72
-
73
- // function update(v: any) {
74
- // emit('update:modelValue', v)
75
- // emit('change', v)
76
- // }
77
-
78
- </script>
@@ -1,68 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols">
7
- <v-list-item>
8
- <v-list-item-subtitle>{{ label }}</v-list-item-subtitle>
9
- <v-list-item-title>{{ modelValue }}</v-list-item-title>
10
- <template #append>
11
- <v-switch
12
- v-bind="$attrs"
13
- :readonly="!cIsEditing"
14
- :variant="cIsEditing ? editVariant : variant"
15
- v-model="value" />
16
- </template>
17
- </v-list-item>
18
- </v-col>
19
- </template>
20
-
21
- <script setup lang="ts">
22
- import { computed, inject, ref } from 'vue'
23
-
24
- defineOptions({
25
- inheritAttrs: false
26
- })
27
-
28
- interface FieldProps {
29
- cols?: string | boolean
30
- isEditing?: boolean
31
- isMobile?: boolean
32
- label?: string
33
- lg?: string | boolean
34
- md?: string | boolean
35
- modelValue: any
36
- sm?: string | boolean
37
- }
38
-
39
- const props = withDefaults(defineProps<FieldProps>(), {
40
- isEditing: undefined,
41
- cols: '12',
42
- lg: false,
43
- md: false,
44
- sm: '6'
45
- })
46
-
47
- const emit = defineEmits(['update:modelValue'])
48
-
49
- const value = computed({
50
- get() {
51
- return props.modelValue
52
- },
53
- set(value) {
54
- emit('update:modelValue', value)
55
- }
56
- })
57
-
58
- const mIsEditing = inject('isEditing', () => ref(false), true)
59
-
60
- const cIsEditing = computed(() => props.isEditing ?? mIsEditing.value)
61
- const mIsMobile = inject('isMobile', () => ref(false), true)
62
- const variant = inject('fieldVariant', 'underlined')
63
- const editVariant = inject('fieldEditVariant', 'outlined')
64
-
65
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
66
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
67
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
68
- </script>
@@ -1,66 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols">
7
- <v-combobox
8
- v-bind="$attrs"
9
- chips
10
- :closableChips="cIsEditing"
11
- multiple
12
- :readonly="!cIsEditing"
13
- :variant="cIsEditing ? editVariant : variant"
14
- v-model="value" />
15
- </v-col>
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import { computed, inject, ref } from 'vue'
20
- import { isLengthyArray } from '../composables/helpers'
21
-
22
- defineOptions({
23
- inheritAttrs: false
24
- })
25
-
26
- interface FieldProps {
27
- cols?: string | boolean
28
- isEditing?: boolean
29
- isMobile?: boolean
30
- lg?: string | boolean
31
- md?: string | boolean
32
- modelValue: string | undefined
33
- rules?: any
34
- sm?: string | boolean
35
- }
36
-
37
- const props = withDefaults(defineProps<FieldProps>(), {
38
- isEditing: undefined,
39
- cols: '12',
40
- lg: false,
41
- md: false,
42
- sm: '6'
43
- })
44
-
45
- const emit = defineEmits(['update:modelValue'])
46
-
47
- const value = computed({
48
- get() {
49
- return props.modelValue?.split(',')
50
- },
51
- set(value) {
52
- emit('update:modelValue', isLengthyArray(value) ? value!.toString() : null)
53
- }
54
- })
55
-
56
- const mIsEditing = inject('isEditing', () => ref(false), true)
57
-
58
- const cIsEditing = computed(() => props.isEditing ?? mIsEditing.value)
59
- const mIsMobile = inject('isMobile', () => ref(false), true)
60
- const variant = inject('fieldVariant', 'underlined')
61
- const editVariant = inject('fieldEditVariant', 'outlined')
62
-
63
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
64
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
65
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
66
- </script>
@@ -1,67 +0,0 @@
1
- <template>
2
- <v-col
3
- :lg="mLg"
4
- :md="mMd"
5
- :sm="mSm"
6
- :cols="cols">
7
- <v-textarea
8
- v-bind="$attrs"
9
- :readonly="!cIsEditing"
10
- :rules="rules"
11
- :variant="cIsEditing ? editVariant : variant"
12
- v-model="value" />
13
- </v-col>
14
- </template>
15
-
16
- <script setup lang="ts">
17
- // import { type BladeDensity } from '@/composables/blade'
18
- import { computed, inject, ref } from 'vue'
19
-
20
- defineOptions({
21
- inheritAttrs: false
22
- })
23
-
24
- interface FieldProps {
25
- cols?: string | boolean
26
- horizontal?: boolean
27
- isEditing?: boolean
28
- isMobile?: boolean
29
- // label: any
30
- lg?: string | boolean
31
- md?: string | boolean
32
- // mode?: 'view' | 'edit' | 'new'
33
- modelValue: any
34
- rules?: any
35
- sm?: string | boolean
36
- }
37
-
38
- const props = withDefaults(defineProps<FieldProps>(), {
39
- isEditing: undefined,
40
- cols: '12',
41
- lg: false,
42
- md: false,
43
- sm: '6'
44
- })
45
-
46
- const emit = defineEmits(['update:modelValue'])
47
-
48
- const value = computed({
49
- get() {
50
- return props.modelValue
51
- },
52
- set(value) {
53
- emit('update:modelValue', value)
54
- }
55
- })
56
-
57
- const mIsEditing = inject('isEditing', () => ref(false), true)
58
-
59
- const cIsEditing = computed(() => props.isEditing ?? mIsEditing.value)
60
- const mIsMobile = inject('isMobile', () => ref(false), true)
61
- const variant = inject('fieldVariant', 'underlined')
62
- const editVariant = inject('fieldEditVariant', 'outlined')
63
-
64
- const mLg = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.lg)
65
- const mMd = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.md)
66
- const mSm = computed(() => (props.isMobile ?? mIsMobile.value) ? false : props.sm)
67
- </script>