@dimailn/vuetify 2.7.2-alpha34 → 2.7.2-alpha36

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 (49) hide show
  1. package/dist/vuetify.js +41 -40
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VBottomNavigation/VBottomNavigation.js +3 -7
  6. package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  7. package/es5/components/VSelect/VSelect.js +1 -1
  8. package/es5/components/VSelect/VSelect.js.map +1 -1
  9. package/es5/components/VSlideGroup/VSlideGroup.js +32 -33
  10. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  11. package/es5/components/VStepper/VStepperContent.js +5 -3
  12. package/es5/components/VStepper/VStepperContent.js.map +1 -1
  13. package/es5/components/VTextField/VTextField.js +4 -3
  14. package/es5/components/VTextField/VTextField.js.map +1 -1
  15. package/es5/components/VTextarea/VTextarea.js +1 -1
  16. package/es5/components/VTextarea/VTextarea.js.map +1 -1
  17. package/es5/framework.js +1 -1
  18. package/es5/mixins/proxyable/index.js +5 -2
  19. package/es5/mixins/proxyable/index.js.map +1 -1
  20. package/lib/components/VBottomNavigation/VBottomNavigation.js +4 -8
  21. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  22. package/lib/components/VSelect/VSelect.js +1 -1
  23. package/lib/components/VSelect/VSelect.js.map +1 -1
  24. package/lib/components/VSlideGroup/VSlideGroup.js +21 -18
  25. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  26. package/lib/components/VStepper/VStepperContent.js +6 -4
  27. package/lib/components/VStepper/VStepperContent.js.map +1 -1
  28. package/lib/components/VTextField/VTextField.js +4 -3
  29. package/lib/components/VTextField/VTextField.js.map +1 -1
  30. package/lib/components/VTextarea/VTextarea.js +1 -1
  31. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  32. package/lib/framework.js +1 -1
  33. package/lib/mixins/proxyable/index.js +5 -2
  34. package/lib/mixins/proxyable/index.js.map +1 -1
  35. package/package.json +1 -1
  36. package/src/components/VBottomNavigation/VBottomNavigation.ts +9 -9
  37. package/src/components/VBottomNavigation/__tests__/__snapshots__/VBottomNavigation.spec.ts.snap +0 -1
  38. package/src/components/VExpansionPanel/__tests__/VExpansionPanel.spec.ts +2 -2
  39. package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +6 -7
  40. package/src/components/VSelect/VSelect.ts +1 -1
  41. package/src/components/VSlideGroup/VSlideGroup.ts +33 -19
  42. package/src/components/VStepper/VStepperContent.ts +8 -9
  43. package/src/components/VTextField/VTextField.ts +9 -8
  44. package/src/components/VTextarea/VTextarea.ts +1 -1
  45. package/src/components/VTextarea/__tests__/VTextarea.spec.ts +51 -0
  46. package/src/components/VTextarea/__tests__/__snapshots__/VTextarea.spec.ts.snap +85 -0
  47. package/src/components/VTreeview/__tests__/VTreeviewNode.spec.ts +31 -46
  48. package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +48 -17
  49. package/src/mixins/proxyable/index.ts +4 -1
@@ -6,6 +6,7 @@ exports[`VTextarea.ts should calculate element height when using auto-grow prop
6
6
  <div class="v-input__slot">
7
7
  <div class="v-text-field__slot">
8
8
  <textarea id="input-1"
9
+ rows="5"
9
10
  value="this
10
11
  is
11
12
  a
@@ -34,3 +35,87 @@ maybe?"
34
35
  </div>
35
36
  </div>
36
37
  `;
38
+
39
+ exports[`VTextarea.ts should render with custom rows attribute 1`] = `
40
+ <div class="v-input v-textarea theme--light v-text-field">
41
+ <div class="v-input__control">
42
+ <div class="v-input__slot">
43
+ <div class="v-text-field__slot">
44
+ <textarea id="input-45"
45
+ rows="3"
46
+ >
47
+ </textarea>
48
+ </div>
49
+ </div>
50
+ <div class="v-text-field__details">
51
+ <div class="v-messages theme--light">
52
+ <div class="v-messages__wrapper">
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ `;
59
+
60
+ exports[`VTextarea.ts should render with default rows attribute 1`] = `
61
+ <div class="v-input v-textarea theme--light v-text-field">
62
+ <div class="v-input__control">
63
+ <div class="v-input__slot">
64
+ <div class="v-text-field__slot">
65
+ <textarea id="input-41"
66
+ rows="5"
67
+ >
68
+ </textarea>
69
+ </div>
70
+ </div>
71
+ <div class="v-text-field__details">
72
+ <div class="v-messages theme--light">
73
+ <div class="v-messages__wrapper">
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ `;
80
+
81
+ exports[`VTextarea.ts should render with rows and autoGrow 1`] = `
82
+ <div class="v-input v-textarea v-textarea--auto-grow v-textarea--no-resize theme--light v-text-field">
83
+ <div class="v-input__control">
84
+ <div class="v-input__slot">
85
+ <div class="v-text-field__slot">
86
+ <textarea id="input-53"
87
+ rows="7"
88
+ >
89
+ </textarea>
90
+ </div>
91
+ </div>
92
+ <div class="v-text-field__details">
93
+ <div class="v-messages theme--light">
94
+ <div class="v-messages__wrapper">
95
+ </div>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </div>
100
+ `;
101
+
102
+ exports[`VTextarea.ts should render with rows as string 1`] = `
103
+ <div class="v-input v-textarea theme--light v-text-field">
104
+ <div class="v-input__control">
105
+ <div class="v-input__slot">
106
+ <div class="v-text-field__slot">
107
+ <textarea id="input-49"
108
+ rows="10"
109
+ >
110
+ </textarea>
111
+ </div>
112
+ </div>
113
+ <div class="v-text-field__details">
114
+ <div class="v-messages theme--light">
115
+ <div class="v-messages__wrapper">
116
+ </div>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ `;
@@ -17,27 +17,9 @@ const defaultSlot = () => h('div', 'foobar')
17
17
  const Mock = defineComponent({
18
18
  name: 'test',
19
19
 
20
- render() {
20
+ render () {
21
21
  return h(VTreeviewNode, {
22
- slots: {
23
- prepend: defaultSlot,
24
- append: defaultSlot,
25
- },
26
- })
27
- },
28
- })
29
-
30
- const MockScopedLabel = defineComponent({
31
- name: 'test',
32
-
33
- render() {
34
- return h(VTreeviewNode, {
35
- props: {
36
- item: singleRootTwoChildren,
37
- },
38
- slots: {
39
- label: (props: any) => h('div', [props.item.name.toUpperCase()]),
40
- },
22
+ item: singleRootTwoChildren,
41
23
  })
42
24
  },
43
25
  })
@@ -85,14 +67,20 @@ describe('VTreeViewNode.ts', () => {
85
67
  expect(wrapper.vm.computedIcon).toBe('$checkboxOff')
86
68
 
87
69
  // В Vue 3 нужно использовать другой подход для изменения внутренних данных
88
- wrapper.vm.isIndeterminate = true
89
- await wrapper.vm.$nextTick()
70
+ await wrapper.setData({ isIndeterminate: true })
90
71
 
91
72
  expect(wrapper.vm.computedIcon).toBe('$checkboxIndeterminate')
92
73
  })
93
74
 
94
75
  it('should use scoped slots', () => {
95
- const wrapper = mount(Mock, {
76
+ const wrapper = mount(VTreeviewNode, {
77
+ props: {
78
+ item: singleRootTwoChildren,
79
+ },
80
+ slots: {
81
+ prepend: defaultSlot,
82
+ append: defaultSlot,
83
+ },
96
84
  global: {
97
85
  provide: { treeview },
98
86
  },
@@ -110,7 +98,13 @@ describe('VTreeViewNode.ts', () => {
110
98
  })
111
99
 
112
100
  it('should use label slot', () => {
113
- const wrapper = mount(MockScopedLabel, {
101
+ const wrapper = mount(VTreeviewNode, {
102
+ props: {
103
+ item: singleRootTwoChildren,
104
+ },
105
+ slots: {
106
+ label: (props: any) => h('div', [props.item.name.toUpperCase()]),
107
+ },
114
108
  global: {
115
109
  provide: { treeview },
116
110
  },
@@ -120,23 +114,14 @@ describe('VTreeViewNode.ts', () => {
120
114
  })
121
115
 
122
116
  it('should render disabled item', () => {
123
- const TestComponent = defineComponent({
124
- name: 'test',
125
-
126
- render() {
127
- return h(VTreeviewNode, {
128
- slots: {
129
- prepend: defaultSlot,
130
- append: defaultSlot,
131
- },
132
- props: {
133
- item: { ...singleRootTwoChildren, disabled: true },
134
- },
135
- })
117
+ const wrapper = mount(VTreeviewNode, {
118
+ props: {
119
+ item: { ...singleRootTwoChildren, disabled: true },
120
+ },
121
+ slots: {
122
+ prepend: defaultSlot,
123
+ append: defaultSlot,
136
124
  },
137
- })
138
-
139
- const wrapper = mount(TestComponent, {
140
125
  global: {
141
126
  provide: { treeview },
142
127
  },
@@ -146,7 +131,7 @@ describe('VTreeViewNode.ts', () => {
146
131
  })
147
132
 
148
133
  const singleRootWithEmptyChildrens = { id: 1, name: 'Child', children: [] }
149
- it('should be able to have active children with empty array', () => {
134
+ it('should be able to have active children with empty array', async () => {
150
135
  const wrapper = mountFunction({
151
136
  props: {
152
137
  item: singleRootWithEmptyChildrens,
@@ -157,13 +142,13 @@ describe('VTreeViewNode.ts', () => {
157
142
 
158
143
  expect(wrapper.vm.isActive).toBe(false)
159
144
  const selectedLeaf = wrapper.find('.v-treeview-node__root')
160
- selectedLeaf.trigger('click')
145
+ await selectedLeaf.trigger('click')
161
146
  expect(wrapper.vm.isActive).toBe(true)
162
147
 
163
148
  expect(wrapper.html()).toMatchSnapshot()
164
149
  })
165
150
 
166
- it('should not be able to have active children with empty array when loadChildren is specified', () => {
151
+ it('should not be able to have active children with empty array when loadChildren is specified', async () => {
167
152
  const wrapper = mountFunction({
168
153
  props: {
169
154
  item: singleRootWithEmptyChildrens,
@@ -175,13 +160,13 @@ describe('VTreeViewNode.ts', () => {
175
160
 
176
161
  expect(wrapper.vm.isActive).toBe(false)
177
162
  const selectedLeaf = wrapper.find('.v-treeview-node__root')
178
- selectedLeaf.trigger('click')
163
+ await selectedLeaf.trigger('click')
179
164
  expect(wrapper.vm.isActive).toBe(false)
180
165
 
181
166
  expect(wrapper.html()).toMatchSnapshot()
182
167
  })
183
168
 
184
- it('should not be able to have active children with empty array when disabled', () => {
169
+ it('should not be able to have active children with empty array when disabled', async () => {
185
170
  const wrapper = mountFunction({
186
171
  props: {
187
172
  item: { ...singleRootWithEmptyChildrens, disabled: true },
@@ -192,7 +177,7 @@ describe('VTreeViewNode.ts', () => {
192
177
 
193
178
  expect(wrapper.vm.isActive).toBe(false)
194
179
  const selectedLeaf = wrapper.find('.v-treeview-node__root')
195
- selectedLeaf.trigger('click')
180
+ await selectedLeaf.trigger('click')
196
181
  expect(wrapper.vm.isActive).toBe(false)
197
182
 
198
183
  expect(wrapper.html()).toMatchSnapshot()
@@ -4,7 +4,7 @@ exports[`VTreeViewNode.ts should be able to have active children with empty arra
4
4
  <div class="v-treeview-node v-treeview-node--leaf v-treeview-node--click"
5
5
  aria-expanded="false"
6
6
  >
7
- <div class="v-treeview-node__root">
7
+ <div class="v-treeview-node__root v-treeview-node--active primary--text">
8
8
  <div class="v-treeview-node__level">
9
9
  </div>
10
10
  <div class="v-treeview-node__content">
@@ -49,10 +49,10 @@ exports[`VTreeViewNode.ts should not be able to have active children with empty
49
49
 
50
50
  exports[`VTreeViewNode.ts should not be able to have active children with empty array when loadChildren is specified 1`] = `
51
51
  <div class="v-treeview-node v-treeview-node--click"
52
- aria-expanded="false"
52
+ aria-expanded="true"
53
53
  >
54
54
  <div class="v-treeview-node__root">
55
- <button class="v-icon--link v-icon notranslate theme--light material-icons v-treeview-node__toggle"
55
+ <button class="v-icon--link v-icon notranslate theme--light material-icons v-treeview-node__toggle v-treeview-node__toggle--open"
56
56
  aria-hidden="false"
57
57
  type="button"
58
58
  >
@@ -63,20 +63,34 @@ exports[`VTreeViewNode.ts should not be able to have active children with empty
63
63
  </div>
64
64
  </div>
65
65
  </div>
66
+ <div class="v-treeview-node__children">
67
+ </div>
66
68
  </div>
67
69
  `;
68
70
 
69
71
  exports[`VTreeViewNode.ts should render disabled item 1`] = `
70
- <div class="v-treeview-node v-treeview-node--leaf"
72
+ <div class="v-treeview-node v-treeview-node--disabled"
71
73
  aria-expanded="false"
72
- slots="[object Object]"
73
- props="[object Object]"
74
74
  >
75
75
  <div class="v-treeview-node__root">
76
- <div class="v-treeview-node__level">
77
- </div>
76
+ <button class="v-icon--link v-icon notranslate theme--light mdi mdi-menu-down v-treeview-node__toggle"
77
+ aria-hidden="false"
78
+ type="button"
79
+ >
80
+ </button>
78
81
  <div class="v-treeview-node__content">
82
+ <div class="v-treeview-node__prepend">
83
+ <div>
84
+ foobar
85
+ </div>
86
+ </div>
79
87
  <div class="v-treeview-node__label">
88
+ Root
89
+ </div>
90
+ <div class="v-treeview-node__append">
91
+ <div>
92
+ foobar
93
+ </div>
80
94
  </div>
81
95
  </div>
82
96
  </div>
@@ -84,16 +98,20 @@ exports[`VTreeViewNode.ts should render disabled item 1`] = `
84
98
  `;
85
99
 
86
100
  exports[`VTreeViewNode.ts should use label slot 1`] = `
87
- <div class="v-treeview-node v-treeview-node--leaf"
101
+ <div class="v-treeview-node"
88
102
  aria-expanded="false"
89
- props="[object Object]"
90
- slots="[object Object]"
91
103
  >
92
104
  <div class="v-treeview-node__root">
93
- <div class="v-treeview-node__level">
94
- </div>
105
+ <button class="v-icon--link v-icon notranslate theme--light mdi mdi-menu-down v-treeview-node__toggle"
106
+ aria-hidden="false"
107
+ type="button"
108
+ >
109
+ </button>
95
110
  <div class="v-treeview-node__content">
96
111
  <div class="v-treeview-node__label">
112
+ <div>
113
+ ROOT
114
+ </div>
97
115
  </div>
98
116
  </div>
99
117
  </div>
@@ -101,15 +119,28 @@ exports[`VTreeViewNode.ts should use label slot 1`] = `
101
119
  `;
102
120
 
103
121
  exports[`VTreeViewNode.ts should use scoped slots 1`] = `
104
- <div class="v-treeview-node v-treeview-node--leaf"
122
+ <div class="v-treeview-node"
105
123
  aria-expanded="false"
106
- slots="[object Object]"
107
124
  >
108
125
  <div class="v-treeview-node__root">
109
- <div class="v-treeview-node__level">
110
- </div>
126
+ <button class="v-icon--link v-icon notranslate theme--light mdi mdi-menu-down v-treeview-node__toggle"
127
+ aria-hidden="false"
128
+ type="button"
129
+ >
130
+ </button>
111
131
  <div class="v-treeview-node__content">
132
+ <div class="v-treeview-node__prepend">
133
+ <div>
134
+ foobar
135
+ </div>
136
+ </div>
112
137
  <div class="v-treeview-node__label">
138
+ Root
139
+ </div>
140
+ <div class="v-treeview-node__append">
141
+ <div>
142
+ foobar
143
+ </div>
113
144
  </div>
114
145
  </div>
115
146
  </div>
@@ -35,7 +35,10 @@ export function factory (
35
35
 
36
36
  this.internalLazyValue = val
37
37
 
38
- this.$emit(event, val)
38
+ // Don't emit events if component is being destroyed
39
+ if (!(this as any)._isDestroyed) {
40
+ this.$emit(event, val)
41
+ }
39
42
  },
40
43
  },
41
44
  },