adata-ui 2.0.76 → 2.0.77

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.
@@ -7,6 +7,7 @@
7
7
  :name="name"
8
8
  type="radio"
9
9
  class="hidden"
10
+ ref="input"
10
11
  :checked="model === value"
11
12
  :disabled="disabled"
12
13
  @change="update"
@@ -16,9 +17,11 @@
16
17
  class="flex items-center text-deepblue-900 dark:text-gray-200 cursor-pointer w-full whitespace-nowrap"
17
18
  :class="[textSizeOptions[size]]"
18
19
  >
19
- <span v-if="side==='left'" class="select-none w-full"><slot /></span>
20
- <component :is="currentComponent" class="text-deepblue-900 dark:text-gray-200 w-full" :class="[sizeOptions[size]]"/>
21
- <span v-if="side==='right'" class="select-none w-full"><slot /></span>
20
+ <span v-if="side==='left'" class="select-none w-full"><slot/></span>
21
+ <component :is="currentComponent" class="text-deepblue-900 dark:text-gray-200 w-full"
22
+ :class="[sizeOptions[size]]"
23
+ />
24
+ <span v-if="side==='right'" class="select-none w-full"><slot/></span>
22
25
  </label>
23
26
  </div>
24
27
  </template>
@@ -34,10 +37,11 @@ interface Props {
34
37
  size?: 'lg' | 'sm',
35
38
  name?: string
36
39
  disabled?: boolean
37
- side?:'right' | 'left'
40
+ side?: 'right' | 'left'
38
41
  value: string | number | boolean | null | undefined
39
42
  permanent?: boolean
40
43
  }
44
+
41
45
  const props = withDefaults(defineProps<Props>(), {
42
46
  size: 'sm',
43
47
  name: 'check',
@@ -49,23 +53,20 @@ const props = withDefaults(defineProps<Props>(), {
49
53
 
50
54
  const emit = defineEmits(['radioChanged'])
51
55
  const model = defineModel<string | number | boolean | null | undefined>()
56
+ const input = ref()
52
57
 
53
58
  const currentComponent = computed(() => {
54
- if (model.value ===props.value ) {
55
- return RadioCheck
59
+ if (model.value === props.value) {
60
+ return RadioCheck
56
61
  } else {
57
62
  return RadioEmpty
58
63
  }
59
64
  })
60
65
 
61
66
  function update() {
62
- if(props.disabled) return
67
+ if (props.disabled) return
68
+ model.value = props.value
63
69
 
64
- if(props.value == model.value && !props.permanent) {
65
- model.value = undefined
66
- }else{
67
- model.value = props.value
68
- }
69
70
  emit("radioChanged", model.value)
70
71
 
71
72
  }
@@ -79,7 +80,14 @@ const textSizeOptions = {
79
80
  sm: 'text-xs gap-2'
80
81
  }
81
82
 
82
-
83
+ watch(model, async (e) => {
84
+ await nextTick()
85
+ if (props.value == e && !props.permanent) {
86
+ input.value.addEventListener('click', () => {
87
+ model.value = undefined
88
+ })
89
+ }
90
+ }, {immediate: true, deep: true})
83
91
  </script>
84
92
 
85
93
  <style scoped>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adata-ui",
3
3
  "type": "module",
4
- "version": "2.0.76",
4
+ "version": "2.0.77",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",