@tdesign/uniapp 0.7.2 → 0.8.0

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 (199) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +32 -2
  3. package/dist/action-sheet/README.md +1 -1
  4. package/dist/action-sheet/action-sheet.vue +158 -150
  5. package/dist/action-sheet/props.ts +2 -2
  6. package/dist/action-sheet/type.ts +1 -1
  7. package/dist/avatar/avatar.vue +89 -87
  8. package/dist/avatar-group/avatar-group.vue +69 -67
  9. package/dist/back-top/back-top.vue +60 -58
  10. package/dist/badge/badge.vue +69 -59
  11. package/dist/button/button.vue +121 -116
  12. package/dist/button/props.ts +2 -2
  13. package/dist/button/type.ts +1 -1
  14. package/dist/calendar/calendar-header.vue +4 -4
  15. package/dist/calendar/calendar.vue +308 -297
  16. package/dist/calendar/template.vue +1 -1
  17. package/dist/cascader/README.en-US.md +2 -1
  18. package/dist/cascader/README.md +2 -1
  19. package/dist/cascader/cascader.vue +340 -328
  20. package/dist/cascader/props.ts +6 -1
  21. package/dist/cascader/type.ts +6 -0
  22. package/dist/cell/cell.vue +127 -121
  23. package/dist/cell-group/cell-group.vue +32 -30
  24. package/dist/check-tag/check-tag.vue +73 -71
  25. package/dist/checkbox/README.en-US.md +6 -6
  26. package/dist/checkbox/README.md +5 -5
  27. package/dist/checkbox/checkbox.vue +127 -127
  28. package/dist/checkbox/props.ts +6 -6
  29. package/dist/checkbox/type.ts +6 -4
  30. package/dist/checkbox-group/checkbox-group.vue +175 -173
  31. package/dist/checkbox-group/props.ts +6 -6
  32. package/dist/checkbox-group/type.ts +6 -4
  33. package/dist/col/col.vue +26 -24
  34. package/dist/collapse/collapse.vue +83 -81
  35. package/dist/collapse-panel/collapse-panel.vue +121 -119
  36. package/dist/collapse-panel/props.ts +4 -4
  37. package/dist/collapse-panel/type.ts +2 -2
  38. package/dist/color-picker/README.md +1 -1
  39. package/dist/color-picker/color-picker.vue +324 -322
  40. package/dist/color-picker/props.ts +2 -2
  41. package/dist/color-picker/template.vue +14 -10
  42. package/dist/common/common.ts +1 -0
  43. package/dist/common/style/theme/index.css +57 -61
  44. package/dist/common/utils.js +7 -2
  45. package/dist/common/validator.js +172 -0
  46. package/dist/config-provider/README.en-US.md +184 -0
  47. package/dist/config-provider/README.md +234 -0
  48. package/dist/config-provider/config-provider.vue +105 -0
  49. package/dist/config-provider/config-store.js +70 -0
  50. package/dist/config-provider/props.ts +16 -0
  51. package/dist/config-provider/reactive-state.js +39 -0
  52. package/dist/config-provider/type.ts +401 -0
  53. package/dist/config-provider/use-config.js +29 -0
  54. package/dist/config-provider/utils.js +29 -0
  55. package/dist/count-down/count-down.vue +98 -97
  56. package/dist/date-time-picker/date-time-picker.vue +410 -395
  57. package/dist/demo/demo.vue +1 -0
  58. package/dist/dialog/dialog.vue +176 -173
  59. package/dist/divider/divider.vue +38 -36
  60. package/dist/draggable/draggable.vue +60 -58
  61. package/dist/drawer/README.md +1 -1
  62. package/dist/drawer/drawer.vue +48 -46
  63. package/dist/dropdown-item/dropdown-item.vue +209 -207
  64. package/dist/dropdown-item/props.ts +4 -4
  65. package/dist/dropdown-item/type.ts +3 -3
  66. package/dist/dropdown-menu/dropdown-menu.vue +93 -99
  67. package/dist/empty/empty.vue +43 -42
  68. package/dist/fab/fab.vue +88 -86
  69. package/dist/footer/footer.vue +36 -34
  70. package/dist/form/README.en-US.md +17 -24
  71. package/dist/form/README.md +18 -25
  72. package/dist/form/form.css +1 -166
  73. package/dist/form/form.vue +251 -236
  74. package/dist/form/props.ts +2 -21
  75. package/dist/form/type.ts +7 -70
  76. package/dist/form-item/README.en-US.md +4 -5
  77. package/dist/form-item/README.md +4 -5
  78. package/dist/form-item/form-item.css +69 -96
  79. package/dist/form-item/form-item.vue +315 -336
  80. package/dist/form-item/form-model.ts +125 -173
  81. package/dist/form-item/props.ts +4 -17
  82. package/dist/form-item/type.ts +43 -1
  83. package/dist/grid/grid.vue +53 -51
  84. package/dist/grid-item/grid-item.vue +121 -119
  85. package/dist/guide/README.md +1 -1
  86. package/dist/guide/guide.vue +281 -277
  87. package/dist/icon/README.md +2 -4
  88. package/dist/icon/icon.vue +78 -76
  89. package/dist/image/README.md +1 -1
  90. package/dist/image/image.vue +103 -101
  91. package/dist/image-viewer/image-viewer.vue +160 -158
  92. package/dist/image-viewer/props.ts +2 -2
  93. package/dist/image-viewer/type.ts +1 -1
  94. package/dist/index.js +3 -0
  95. package/dist/indexes/indexes.vue +264 -267
  96. package/dist/indexes-anchor/indexes-anchor.vue +41 -41
  97. package/dist/input/input.vue +192 -192
  98. package/dist/input/props.ts +6 -6
  99. package/dist/input/type.ts +3 -3
  100. package/dist/link/link.vue +73 -71
  101. package/dist/loading/loading.vue +59 -59
  102. package/dist/locale/ar_KW.ts +157 -0
  103. package/dist/locale/en_US.ts +146 -0
  104. package/dist/locale/it_IT.ts +145 -0
  105. package/dist/locale/ja_JP.ts +132 -0
  106. package/dist/locale/ko_KR.ts +132 -0
  107. package/dist/locale/ru_RU.ts +157 -0
  108. package/dist/locale/zh_CN.ts +133 -0
  109. package/dist/locale/zh_TW.ts +132 -0
  110. package/dist/message/message.vue +181 -173
  111. package/dist/message/props.ts +2 -2
  112. package/dist/message/type.ts +1 -1
  113. package/dist/message-item/message-item.vue +192 -184
  114. package/dist/mixins/using-config.js +39 -0
  115. package/dist/navbar/navbar.vue +201 -199
  116. package/dist/notice-bar/notice-bar.vue +175 -171
  117. package/dist/notice-bar/props.ts +2 -2
  118. package/dist/notice-bar/type.ts +1 -1
  119. package/dist/npm/dayjs/esm/locale/ar.js +81 -0
  120. package/dist/npm/dayjs/esm/locale/it.js +39 -0
  121. package/dist/overlay/overlay.vue +50 -48
  122. package/dist/picker/picker.vue +168 -161
  123. package/dist/picker-item/picker-item.vue +269 -269
  124. package/dist/popover/README.md +1 -1
  125. package/dist/popover/popover.vue +262 -261
  126. package/dist/popover/props.ts +4 -4
  127. package/dist/popover/type.ts +2 -2
  128. package/dist/popup/popup.vue +46 -45
  129. package/dist/progress/README.md +1 -1
  130. package/dist/progress/progress.vue +76 -76
  131. package/dist/pull-down-refresh/props.ts +2 -2
  132. package/dist/pull-down-refresh/pull-down-refresh.vue +240 -234
  133. package/dist/pull-down-refresh/type.ts +1 -1
  134. package/dist/qrcode/README.md +1 -1
  135. package/dist/qrcode/components/qrcode-canvas/qrcode-canvas.vue +340 -338
  136. package/dist/qrcode/components/qrcode-status/qrcode-status.vue +6 -6
  137. package/dist/qrcode/qrcode.vue +93 -87
  138. package/dist/radio/props.ts +6 -6
  139. package/dist/radio/radio.vue +118 -120
  140. package/dist/radio/type.ts +3 -3
  141. package/dist/radio-group/props.ts +4 -4
  142. package/dist/radio-group/radio-group.vue +136 -134
  143. package/dist/radio-group/type.ts +4 -4
  144. package/dist/rate/computed.js +2 -2
  145. package/dist/rate/props.ts +4 -4
  146. package/dist/rate/rate.vue +155 -154
  147. package/dist/rate/type.ts +2 -2
  148. package/dist/result/result.vue +41 -39
  149. package/dist/row/row.vue +38 -36
  150. package/dist/scroll-view/scroll-view.vue +24 -22
  151. package/dist/search/props.ts +2 -2
  152. package/dist/search/search.vue +127 -125
  153. package/dist/search/type.ts +1 -1
  154. package/dist/side-bar/side-bar.vue +57 -55
  155. package/dist/side-bar-item/side-bar-item.vue +86 -86
  156. package/dist/skeleton/skeleton.vue +126 -124
  157. package/dist/slider/README.md +1 -1
  158. package/dist/slider/props.ts +2 -2
  159. package/dist/slider/slider.vue +457 -457
  160. package/dist/slider/type.ts +1 -1
  161. package/dist/step-item/step-item.vue +77 -75
  162. package/dist/stepper/props.ts +2 -2
  163. package/dist/stepper/stepper.vue +168 -149
  164. package/dist/stepper/type.ts +1 -1
  165. package/dist/steps/props.ts +2 -2
  166. package/dist/steps/steps.vue +83 -81
  167. package/dist/steps/type.ts +1 -1
  168. package/dist/sticky/sticky.vue +104 -102
  169. package/dist/swipe-cell/swipe-cell.vue +91 -89
  170. package/dist/swiper/README.md +1 -1
  171. package/dist/swiper/swiper.vue +91 -89
  172. package/dist/swiper-nav/swiper-nav.vue +38 -36
  173. package/dist/switch/props.ts +2 -2
  174. package/dist/switch/switch.vue +62 -62
  175. package/dist/switch/type.ts +1 -1
  176. package/dist/tab-bar/tab-bar.vue +88 -86
  177. package/dist/tab-bar-item/tab-bar-item.vue +85 -82
  178. package/dist/tab-panel/tab-panel.vue +66 -64
  179. package/dist/tabs/tabs.vue +294 -287
  180. package/dist/tag/tag.vue +79 -77
  181. package/dist/textarea/props.ts +6 -6
  182. package/dist/textarea/textarea.vue +127 -126
  183. package/dist/textarea/type.ts +3 -3
  184. package/dist/toast/toast.vue +107 -106
  185. package/dist/transition/transition.vue +30 -28
  186. package/dist/tree-select/tree-select.vue +151 -151
  187. package/dist/types/config-provider.d.ts +7 -0
  188. package/dist/types/index.d.ts +2 -0
  189. package/dist/types/popover.d.ts +7 -0
  190. package/dist/upload/README.en-US.md +13 -14
  191. package/dist/upload/README.md +11 -12
  192. package/dist/upload/props.ts +2 -4
  193. package/dist/upload/type.ts +12 -11
  194. package/dist/upload/upload.css +1 -1
  195. package/dist/upload/upload.vue +672 -512
  196. package/dist/watermark/watermark.vue +151 -149
  197. package/global.d.ts +2 -0
  198. package/package.json +16 -2
  199. package/dist/form/form-item-props.ts +0 -56
@@ -8,8 +8,8 @@
8
8
  :style="'height: ' + placeholderHeight + 'px;'"
9
9
  />
10
10
  <view
11
- :style="tools._style(['z-index: ' + zIndex, customStyle])"
12
- :class="tools.cls(classPrefix, [
11
+ :style="'' + tools._style(['z-index: ' + zIndex, customStyle])"
12
+ :class="'' + tools.cls(classPrefix, [
13
13
  ['border', bordered], ['fixed', fixed],
14
14
  ['safe', safeAreaInsetBottom], shape]
15
15
  ) + ' ' + tClass"
@@ -32,105 +32,107 @@ import tools from '../common/utils.wxs';
32
32
  const classPrefix = `${prefix}-tab-bar`;
33
33
 
34
34
 
35
- export default uniComponent({
36
- name: classPrefix,
37
- options: {
38
- styleIsolation: 'shared',
39
- },
40
- controlledProps: [{
41
- key: 'value',
42
- event: 'change',
43
- }],
44
- externalClasses: [`${prefix}-class`],
45
- mixins: [ParentMixin(RELATION_MAP.TabBarItem)],
46
- props: {
47
- ...props,
48
- },
49
- emits: [
50
- 'change',
51
- ],
52
- data() {
53
- return {
54
- prefix,
55
- classPrefix,
56
- tools,
35
+ export default {
36
+ ...uniComponent({
37
+ name: classPrefix,
38
+ options: {
39
+ styleIsolation: 'shared',
40
+ },
41
+ controlledProps: [{
42
+ key: 'value',
43
+ event: 'change',
44
+ }],
45
+ externalClasses: [`${prefix}-class`],
46
+ mixins: [ParentMixin(RELATION_MAP.TabBarItem)],
47
+ props: {
48
+ ...props,
49
+ },
50
+ emits: [
51
+ 'change',
52
+ ],
53
+ data() {
54
+ return {
55
+ prefix,
56
+ classPrefix,
57
+ tools,
57
58
 
58
- dataValue: coalesce(this.value, this.defaultValue),
59
- placeholderHeight: 56,
60
- };
61
- },
62
- watch: {
63
- value: {
64
- handler(e) {
65
- this.dataValue = e;
66
- },
67
- immediate: true,
59
+ dataValue: coalesce(this.value, this.defaultValue),
60
+ placeholderHeight: 56,
61
+ };
68
62
  },
69
- dataValue: {
70
- handler() {
71
- this.updateChildren();
63
+ watch: {
64
+ value: {
65
+ handler(e) {
66
+ this.dataValue = e;
67
+ },
68
+ immediate: true,
69
+ },
70
+ dataValue: {
71
+ handler() {
72
+ this.updateChildren();
73
+ },
74
+ immediate: true,
75
+ },
76
+ 'fixed'() {
77
+ this.setPlaceholderHeight();
78
+ },
79
+ placeholder() {
80
+ this.setPlaceholderHeight();
72
81
  },
73
- immediate: true,
74
- },
75
- 'fixed'() {
76
- this.setPlaceholderHeight();
77
82
  },
78
- placeholder() {
83
+ mounted() {
79
84
  this.setPlaceholderHeight();
85
+ this.showChildren();
80
86
  },
81
- },
82
- mounted() {
83
- this.setPlaceholderHeight();
84
- this.showChildren();
85
- },
86
- methods: {
87
- setPlaceholderHeight() {
88
- if (!this.fixed || !this.placeholder) {
89
- return;
90
- }
91
- nextTick().then(() => {
92
- getRect(this, `.${classPrefix}`).then((res) => {
93
- this.placeholderHeight = res.height;
87
+ methods: {
88
+ setPlaceholderHeight() {
89
+ if (!this.fixed || !this.placeholder) {
90
+ return;
91
+ }
92
+ nextTick().then(() => {
93
+ getRect(this, `.${classPrefix}`).then((res) => {
94
+ this.placeholderHeight = res.height;
95
+ });
94
96
  });
95
- });
96
- },
97
- showChildren() {
98
- const { dataValue } = this;
97
+ },
98
+ showChildren() {
99
+ const { dataValue } = this;
99
100
 
100
- this.children.forEach((child) => {
101
- this.crowded = this.children.length > 3;
101
+ this.children.forEach((child) => {
102
+ this.crowded = this.children.length > 3;
102
103
 
103
- if (child.value === dataValue) {
104
- child.showSpread();
105
- }
106
- });
107
- },
104
+ if (child.value === dataValue) {
105
+ child.showSpread();
106
+ }
107
+ });
108
+ },
108
109
 
109
- updateChildren() {
110
- const { dataValue } = this;
110
+ updateChildren() {
111
+ const { dataValue } = this;
111
112
 
112
- this.children?.forEach((child) => {
113
- child.checkActive(dataValue);
114
- });
115
- },
113
+ this.children?.forEach((child) => {
114
+ child.checkActive(dataValue);
115
+ });
116
+ },
116
117
 
117
- updateValue(value) {
118
- this._trigger('change', { value });
119
- },
118
+ updateValue(value) {
119
+ this._trigger('change', { value });
120
+ },
120
121
 
121
- changeOtherSpread(value) {
122
- this.children.forEach((child) => {
123
- if (child.value !== value) {
124
- child.closeSpread();
125
- }
126
- });
127
- },
122
+ changeOtherSpread(value) {
123
+ this.children.forEach((child) => {
124
+ if (child.value !== value) {
125
+ child.closeSpread();
126
+ }
127
+ });
128
+ },
128
129
 
129
- initName() {
130
- return (this.backupValue += 1);
130
+ initName() {
131
+ return (this.backupValue += 1);
132
+ },
131
133
  },
132
- },
133
- });
134
+ }),
135
+ };
134
136
  </script>
135
137
  <style scoped src="./tab-bar.css"></style>
136
138
  <style scoped>
@@ -1,13 +1,13 @@
1
1
  <template>
2
2
  <view
3
- :style="tools._style([customStyle])"
4
- :class="tools.cls(classPrefix, [
3
+ :style="'' + tools._style([customStyle])"
4
+ :class="'' + tools.cls(classPrefix, [
5
5
  ['split', split],
6
6
  ['crowded', crowded], shape]
7
7
  ) + ' ' + tClass"
8
8
  >
9
9
  <view
10
- :class="tools.cls(classPrefix + '__content', [['checked', isChecked], theme])"
10
+ :class="'' + tools.cls(classPrefix + '__content', [['checked', isChecked], theme])"
11
11
  :hover-class="classPrefix + '__content--active'"
12
12
  :hover-stay-time="200"
13
13
  :aria-selected="(!hasChildren || !isSpread) && isChecked ? true : false"
@@ -71,7 +71,7 @@
71
71
  </block>
72
72
  <slot name="icon" />
73
73
  </view>
74
- <view :class="tools.cls(classPrefix + '__text', [['small', !!icon]])">
74
+ <view :class="'' + tools.cls(classPrefix + '__text', [['small', !!icon]])">
75
75
  <t-icon
76
76
  v-if="hasChildren"
77
77
  name="view-list"
@@ -123,97 +123,100 @@ import { ChildrenMixin, RELATION_MAP } from '../common/relation';
123
123
  const classPrefix = `${prefix}-tab-bar-item`;
124
124
 
125
125
 
126
- export default uniComponent({
127
- name: classPrefix,
128
- options: {
129
- styleIsolation: 'shared',
130
- virtualHost: true,
131
- },
132
- externalClasses: [`${prefix}-class`],
133
- mixins: [ChildrenMixin(RELATION_MAP.TabBarItem)],
126
+ export default {
134
127
  components: {
135
128
  TIcon,
136
129
  TBadge,
137
130
  },
138
- props: {
139
- ...props,
140
- },
141
- emits: [],
142
- watch: {
143
- subTabBar: {
144
- handler(value) {
145
- this.hasChildren = value?.length > 0;
146
- },
147
- immediate: true,
131
+ ...uniComponent({
132
+ name: classPrefix,
133
+ options: {
134
+ styleIsolation: 'shared',
135
+ virtualHost: true,
148
136
  },
149
- icon: {
150
- handler(v) {
151
- this.innerIcon = calcIcon(v);
137
+ externalClasses: [`${prefix}-class`],
138
+ mixins: [ChildrenMixin(RELATION_MAP.TabBarItem)],
139
+ props: {
140
+ ...props,
141
+ },
142
+ emits: [],
143
+ watch: {
144
+ subTabBar: {
145
+ handler(value) {
146
+ this.hasChildren = value?.length > 0;
147
+ },
148
+ immediate: true,
149
+ },
150
+ icon: {
151
+ handler(v) {
152
+ this.innerIcon = calcIcon(v);
153
+ },
154
+ immediate: true,
152
155
  },
153
- immediate: true,
154
156
  },
155
- },
156
- data() {
157
- return {
158
- prefix,
159
- classPrefix,
160
- isSpread: false,
161
- isChecked: false,
162
- hasChildren: false,
163
- currentName: '',
164
- split: true,
165
- iconOnly: false,
166
- theme: '',
167
- crowded: false,
168
- shape: 'normal',
169
- tools,
170
- };
171
- },
172
- async mounted() {
173
- const res = await getRect(this, `.${classPrefix}__text`);
157
+ data() {
158
+ return {
159
+ prefix,
160
+ classPrefix,
161
+ isSpread: false,
162
+ isChecked: false,
163
+ hasChildren: false,
164
+ currentName: '',
165
+ split: true,
166
+ iconOnly: false,
167
+ theme: '',
168
+ crowded: false,
169
+ shape: 'normal',
170
+ tools,
171
+ innerIcon: null,
172
+ };
173
+ },
174
+ async mounted() {
175
+ const res = await getRect(this, `.${classPrefix}__text`);
174
176
 
175
- this.iconOnly = res.height === 0;
176
- },
177
- methods: {
178
- innerAfterLinked() {
179
- const parent = this[RELATION_MAP.TabBarItem];
180
- const { theme, split, shape } = parent;
177
+ this.iconOnly = res.height === 0;
178
+ },
179
+ methods: {
180
+ innerAfterLinked() {
181
+ const parent = this[RELATION_MAP.TabBarItem];
182
+ const { theme, split, shape } = parent;
181
183
 
182
- this.theme = theme;
183
- this.split = split;
184
- this.shape = shape;
185
- this.currentName = this.value ? this.value : parent.initName();
184
+ this.theme = theme;
185
+ this.split = split;
186
+ this.shape = shape;
187
+ this.currentName = this.value ? this.value : parent.initName();
186
188
 
187
- parent.updateChildren();
188
- },
189
- showSpread() {
190
- this.isSpread = true;
191
- },
192
- toggle() {
193
- const { currentName, hasChildren, isSpread } = this;
189
+ parent.updateChildren();
190
+ },
191
+ showSpread() {
192
+ this.isSpread = true;
193
+ },
194
+ toggle() {
195
+ const { currentName, hasChildren, isSpread } = this;
194
196
 
195
- if (hasChildren) {
196
- this.isSpread = !isSpread;
197
- }
198
- this[RELATION_MAP.TabBarItem].updateValue(currentName);
199
- this[RELATION_MAP.TabBarItem].changeOtherSpread(currentName);
200
- },
201
- selectChild(event) {
202
- const { value } = event.target.dataset;
197
+ if (hasChildren) {
198
+ this.isSpread = !isSpread;
199
+ }
200
+ this[RELATION_MAP.TabBarItem].updateValue(currentName);
201
+ this[RELATION_MAP.TabBarItem].changeOtherSpread(currentName);
202
+ },
203
+ selectChild(event) {
204
+ const { value } = event.target.dataset;
203
205
 
204
- this[RELATION_MAP.TabBarItem].updateValue(value);
205
- this.isSpread = false;
206
- },
207
- checkActive(value) {
208
- const { currentName, subTabBar = [] } = this;
209
- const isChecked = subTabBar?.some(item => item.value === value) || currentName === value;
206
+ this[RELATION_MAP.TabBarItem].updateValue(value);
207
+ this.isSpread = false;
208
+ },
209
+ checkActive(value) {
210
+ const { currentName, subTabBar = [] } = this;
211
+ const isChecked = subTabBar?.some(item => item.value === value) || currentName === value;
210
212
 
211
- this.isChecked = isChecked;
212
- },
213
- closeSpread() {
214
- this.isSpread = false;
213
+ this.isChecked = isChecked;
214
+ },
215
+ closeSpread() {
216
+ this.isSpread = false;
217
+ },
215
218
  },
216
- },
217
- });
219
+ }),
220
+ };
218
221
  </script>
219
222
  <style scoped src="./tab-bar-item.css"></style>
@@ -3,7 +3,7 @@
3
3
  v-if="!lazy || hasActivated"
4
4
  :id="id"
5
5
  :class="tClass + ' ' + classPrefix + ' ' + (active ? classPrefix + '--active' : classPrefix + '--inactive')"
6
- :style="tools._style([customStyle, hide ? 'display: none' : ''])"
6
+ :style="'' + tools._style([customStyle, hide ? 'display: none' : ''])"
7
7
  aria-role="tabpanel"
8
8
  >
9
9
  <view v-if="panel">
@@ -23,76 +23,78 @@ import { ChildrenMixin, RELATION_MAP } from '../common/relation';
23
23
 
24
24
  const name = `${prefix}-tab-panel`;
25
25
 
26
- export default uniComponent({
27
- name,
28
- options: {
29
- styleIsolation: 'shared',
30
- virtualHost: true,
31
- },
32
- externalClasses: [`${prefix}-class`],
33
- mixins: [ChildrenMixin(RELATION_MAP.TabPanel)],
34
- props: {
35
- ...props,
36
- },
37
- data() {
38
- return {
39
- prefix,
40
- classPrefix: name,
41
- active: false,
42
- hide: true,
43
- id: '',
44
- hasActivated: false,
45
- tools,
46
- };
47
- },
48
- watch: {
49
- label: 'update',
50
- badgeProps: {
51
- handler() {
52
- this.update();
53
- },
54
- deep: true,
55
- },
56
- disabled: 'update',
57
-
58
- icon: 'update',
59
- panel: 'update',
60
- value: 'update',
61
-
62
- lazy: 'update',
63
- },
64
- methods: {
65
- setParent(parent) {
66
- this[RELATION_MAP.TabPanel] = parent;
67
- if (!parent.children.includes(this)) {
68
- parent.children.push(this);
69
- }
70
- parent.innerAfterLinked(this);
26
+ export default {
27
+ ...uniComponent({
28
+ name,
29
+ options: {
30
+ styleIsolation: 'shared',
31
+ virtualHost: true,
71
32
  },
72
- setId(id) {
73
- this.id = id;
33
+ externalClasses: [`${prefix}-class`],
34
+ mixins: [ChildrenMixin(RELATION_MAP.TabPanel)],
35
+ props: {
36
+ ...props,
74
37
  },
75
- getComputedName() {
76
- if (this.value != null) {
77
- return `${this.value}`;
78
- }
79
- return `${this.dataIndex}`;
38
+ data() {
39
+ return {
40
+ prefix,
41
+ classPrefix: name,
42
+ active: false,
43
+ hide: true,
44
+ id: '',
45
+ hasActivated: false,
46
+ tools,
47
+ };
80
48
  },
81
- update() {
82
- this[RELATION_MAP.TabPanel]?.updateTabs();
49
+ watch: {
50
+ label: 'update',
51
+ badgeProps: {
52
+ handler() {
53
+ this.update();
54
+ },
55
+ deep: true,
56
+ },
57
+ disabled: 'update',
58
+
59
+ icon: 'update',
60
+ panel: 'update',
61
+ value: 'update',
62
+
63
+ lazy: 'update',
83
64
  },
65
+ methods: {
66
+ setParent(parent) {
67
+ this[RELATION_MAP.TabPanel] = parent;
68
+ if (!parent.children.includes(this)) {
69
+ parent.children.push(this);
70
+ }
71
+ parent.innerAfterLinked(this);
72
+ },
73
+ setId(id) {
74
+ this.id = id;
75
+ },
76
+ getComputedName() {
77
+ if (this.value != null) {
78
+ return `${this.value}`;
79
+ }
80
+ return `${this.dataIndex}`;
81
+ },
82
+ update() {
83
+ this[RELATION_MAP.TabPanel]?.updateTabs();
84
+ },
84
85
 
85
- render(active, parent) {
86
- this.initialized = this.initialized || active;
86
+ render(active, parent) {
87
+ this.initialized = this.initialized || active;
87
88
 
88
- if (active && !this.hasActivated) {
89
- this.hasActivated = true;
90
- }
89
+ if (active && !this.hasActivated) {
90
+ this.hasActivated = true;
91
+ }
91
92
 
92
- this.active = active;
93
- this.hide = !parent.animation && !active;
93
+ this.active = active;
94
+ this.hide = !parent.animation && !active;
95
+ },
94
96
  },
95
- },
96
- });
97
+ }),
98
+ };
97
99
  </script>
98
100
  <style scoped src="./tab-panel.css"></style>