@furystack/shades-common-components 12.3.0 → 12.5.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.
- package/CHANGELOG.md +86 -0
- package/esm/components/app-bar-link.spec.js +16 -19
- package/esm/components/app-bar-link.spec.js.map +1 -1
- package/esm/components/app-bar.spec.js +6 -4
- package/esm/components/app-bar.spec.js.map +1 -1
- package/esm/components/avatar.spec.js +9 -9
- package/esm/components/avatar.spec.js.map +1 -1
- package/esm/components/breadcrumb.spec.js +2 -2
- package/esm/components/breadcrumb.spec.js.map +1 -1
- package/esm/components/button-group.d.ts +32 -0
- package/esm/components/button-group.d.ts.map +1 -1
- package/esm/components/button-group.js +26 -2
- package/esm/components/button-group.js.map +1 -1
- package/esm/components/button-group.spec.js +127 -11
- package/esm/components/button-group.spec.js.map +1 -1
- package/esm/components/button.spec.js +4 -4
- package/esm/components/button.spec.js.map +1 -1
- package/esm/components/cache-view.spec.js +2 -3
- package/esm/components/cache-view.spec.js.map +1 -1
- package/esm/components/carousel.spec.js +47 -47
- package/esm/components/carousel.spec.js.map +1 -1
- package/esm/components/circular-progress.spec.js +2 -2
- package/esm/components/command-palette/command-palette-input.spec.js +23 -19
- package/esm/components/command-palette/command-palette-input.spec.js.map +1 -1
- package/esm/components/command-palette/command-palette-suggestion-list.spec.js +27 -27
- package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
- package/esm/components/command-palette/index.spec.js +64 -51
- package/esm/components/command-palette/index.spec.js.map +1 -1
- package/esm/components/context-menu/context-menu.spec.js +33 -33
- package/esm/components/context-menu/context-menu.spec.js.map +1 -1
- package/esm/components/data-grid/body.spec.js +13 -13
- package/esm/components/data-grid/body.spec.js.map +1 -1
- package/esm/components/data-grid/data-grid-row.spec.js +8 -8
- package/esm/components/data-grid/data-grid-row.spec.js.map +1 -1
- package/esm/components/data-grid/data-grid.d.ts +40 -2
- package/esm/components/data-grid/data-grid.d.ts.map +1 -1
- package/esm/components/data-grid/data-grid.js +7 -10
- package/esm/components/data-grid/data-grid.js.map +1 -1
- package/esm/components/data-grid/data-grid.spec.js +71 -28
- package/esm/components/data-grid/data-grid.spec.js.map +1 -1
- package/esm/components/data-grid/filters/boolean-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/boolean-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.js +27 -0
- package/esm/components/data-grid/filters/boolean-filter.js.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.js +114 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/date-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/date-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/date-filter.js +109 -0
- package/esm/components/data-grid/filters/date-filter.js.map +1 -0
- package/esm/components/data-grid/filters/date-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/date-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/date-filter.spec.js +145 -0
- package/esm/components/data-grid/filters/date-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.d.ts +16 -0
- package/esm/components/data-grid/filters/enum-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.js +72 -0
- package/esm/components/data-grid/filters/enum-filter.js.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/enum-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.spec.js +136 -0
- package/esm/components/data-grid/filters/enum-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.d.ts +6 -0
- package/esm/components/data-grid/filters/filter-dropdown.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.js +41 -0
- package/esm/components/data-grid/filters/filter-dropdown.js.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.js +69 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.js.map +1 -0
- package/esm/components/data-grid/filters/filter-styles.d.ts +24 -0
- package/esm/components/data-grid/filters/filter-styles.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-styles.js +25 -0
- package/esm/components/data-grid/filters/filter-styles.js.map +1 -0
- package/esm/components/data-grid/filters/index.d.ts +7 -0
- package/esm/components/data-grid/filters/index.d.ts.map +1 -0
- package/esm/components/data-grid/filters/index.js +7 -0
- package/esm/components/data-grid/filters/index.js.map +1 -0
- package/esm/components/data-grid/filters/number-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/number-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/number-filter.js +65 -0
- package/esm/components/data-grid/filters/number-filter.js.map +1 -0
- package/esm/components/data-grid/filters/number-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/number-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/number-filter.spec.js +142 -0
- package/esm/components/data-grid/filters/number-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/string-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/string-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/string-filter.js +63 -0
- package/esm/components/data-grid/filters/string-filter.js.map +1 -0
- package/esm/components/data-grid/filters/string-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/string-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/string-filter.spec.js +128 -0
- package/esm/components/data-grid/filters/string-filter.spec.js.map +1 -0
- package/esm/components/data-grid/footer.d.ts.map +1 -1
- package/esm/components/data-grid/footer.js +24 -9
- package/esm/components/data-grid/footer.js.map +1 -1
- package/esm/components/data-grid/footer.spec.js +38 -36
- package/esm/components/data-grid/footer.spec.js.map +1 -1
- package/esm/components/data-grid/header.d.ts +6 -9
- package/esm/components/data-grid/header.d.ts.map +1 -1
- package/esm/components/data-grid/header.js +51 -117
- package/esm/components/data-grid/header.js.map +1 -1
- package/esm/components/data-grid/header.spec.js +116 -187
- package/esm/components/data-grid/header.spec.js.map +1 -1
- package/esm/components/data-grid/index.d.ts +1 -0
- package/esm/components/data-grid/index.d.ts.map +1 -1
- package/esm/components/data-grid/index.js +1 -0
- package/esm/components/data-grid/index.js.map +1 -1
- package/esm/components/data-grid/selection-cell.spec.js +8 -8
- package/esm/components/data-grid/selection-cell.spec.js.map +1 -1
- package/esm/components/drawer/drawer-toggle-button.spec.js +22 -22
- package/esm/components/drawer/drawer-toggle-button.spec.js.map +1 -1
- package/esm/components/drawer/index.spec.js +36 -36
- package/esm/components/drawer/index.spec.js.map +1 -1
- package/esm/components/dropdown.spec.js +38 -30
- package/esm/components/dropdown.spec.js.map +1 -1
- package/esm/components/fab.spec.js +4 -4
- package/esm/components/fab.spec.js.map +1 -1
- package/esm/components/form.d.ts +5 -2
- package/esm/components/form.d.ts.map +1 -1
- package/esm/components/form.js +28 -6
- package/esm/components/form.js.map +1 -1
- package/esm/components/form.spec.js +227 -20
- package/esm/components/form.spec.js.map +1 -1
- package/esm/components/grid.spec.js +3 -3
- package/esm/components/grid.spec.js.map +1 -1
- package/esm/components/image.spec.js +55 -52
- package/esm/components/image.spec.js.map +1 -1
- package/esm/components/inputs/autocomplete.spec.js +7 -14
- package/esm/components/inputs/autocomplete.spec.js.map +1 -1
- package/esm/components/inputs/checkbox.spec.js +22 -22
- package/esm/components/inputs/checkbox.spec.js.map +1 -1
- package/esm/components/inputs/input-number.spec.js +47 -47
- package/esm/components/inputs/input-number.spec.js.map +1 -1
- package/esm/components/inputs/input.spec.js +53 -53
- package/esm/components/inputs/input.spec.js.map +1 -1
- package/esm/components/inputs/radio-group.spec.js +14 -14
- package/esm/components/inputs/radio-group.spec.js.map +1 -1
- package/esm/components/inputs/radio.spec.js +16 -16
- package/esm/components/inputs/radio.spec.js.map +1 -1
- package/esm/components/inputs/select.spec.js +74 -74
- package/esm/components/inputs/select.spec.js.map +1 -1
- package/esm/components/inputs/slider.spec.js +16 -16
- package/esm/components/inputs/slider.spec.js.map +1 -1
- package/esm/components/inputs/switch.spec.js +24 -24
- package/esm/components/inputs/switch.spec.js.map +1 -1
- package/esm/components/inputs/text-area.spec.js +17 -17
- package/esm/components/inputs/text-area.spec.js.map +1 -1
- package/esm/components/linear-progress.spec.js +2 -2
- package/esm/components/list/list.spec.js +36 -36
- package/esm/components/list/list.spec.js.map +1 -1
- package/esm/components/markdown/markdown-display.spec.js +15 -15
- package/esm/components/markdown/markdown-display.spec.js.map +1 -1
- package/esm/components/markdown/markdown-editor.spec.js +8 -8
- package/esm/components/markdown/markdown-editor.spec.js.map +1 -1
- package/esm/components/markdown/markdown-input.spec.js +17 -17
- package/esm/components/markdown/markdown-input.spec.js.map +1 -1
- package/esm/components/menu/menu.spec.js +28 -28
- package/esm/components/menu/menu.spec.js.map +1 -1
- package/esm/components/modal.spec.js +15 -18
- package/esm/components/modal.spec.js.map +1 -1
- package/esm/components/noty-list.spec.js +25 -23
- package/esm/components/noty-list.spec.js.map +1 -1
- package/esm/components/page-container/index.spec.js +16 -16
- package/esm/components/page-container/index.spec.js.map +1 -1
- package/esm/components/page-container/page-header.spec.js +16 -16
- package/esm/components/page-container/page-header.spec.js.map +1 -1
- package/esm/components/page-layout/index.spec.js +29 -29
- package/esm/components/page-layout/index.spec.js.map +1 -1
- package/esm/components/paper.spec.js +3 -3
- package/esm/components/paper.spec.js.map +1 -1
- package/esm/components/rating.spec.js +61 -61
- package/esm/components/rating.spec.js.map +1 -1
- package/esm/components/skeleton.spec.js +10 -6
- package/esm/components/skeleton.spec.js.map +1 -1
- package/esm/components/suggest/suggest-input.spec.js +4 -10
- package/esm/components/suggest/suggest-input.spec.js.map +1 -1
- package/esm/components/tabs.spec.js +30 -30
- package/esm/components/tabs.spec.js.map +1 -1
- package/esm/components/tree/tree.spec.js +27 -27
- package/esm/components/tree/tree.spec.js.map +1 -1
- package/esm/components/typography.spec.js +3 -3
- package/esm/components/typography.spec.js.map +1 -1
- package/esm/components/wizard/index.spec.js +5 -5
- package/esm/components/wizard/index.spec.js.map +1 -1
- package/esm/utils/promisify-animation.d.ts.map +1 -1
- package/esm/utils/promisify-animation.js +3 -0
- package/esm/utils/promisify-animation.js.map +1 -1
- package/package.json +2 -2
- package/src/components/app-bar-link.spec.tsx +16 -19
- package/src/components/app-bar.spec.tsx +6 -4
- package/src/components/avatar.spec.tsx +9 -9
- package/src/components/breadcrumb.spec.tsx +2 -2
- package/src/components/button-group.spec.tsx +155 -11
- package/src/components/button-group.tsx +49 -2
- package/src/components/button.spec.tsx +4 -4
- package/src/components/cache-view.spec.tsx +3 -3
- package/src/components/carousel.spec.tsx +47 -47
- package/src/components/circular-progress.spec.tsx +2 -2
- package/src/components/command-palette/command-palette-input.spec.tsx +23 -19
- package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +27 -27
- package/src/components/command-palette/index.spec.tsx +64 -51
- package/src/components/context-menu/context-menu.spec.tsx +33 -33
- package/src/components/data-grid/body.spec.tsx +13 -13
- package/src/components/data-grid/data-grid-row.spec.tsx +8 -8
- package/src/components/data-grid/data-grid.spec.tsx +106 -28
- package/src/components/data-grid/data-grid.tsx +44 -11
- package/src/components/data-grid/filters/boolean-filter.spec.tsx +142 -0
- package/src/components/data-grid/filters/boolean-filter.tsx +45 -0
- package/src/components/data-grid/filters/date-filter.spec.tsx +181 -0
- package/src/components/data-grid/filters/date-filter.tsx +162 -0
- package/src/components/data-grid/filters/enum-filter.spec.tsx +168 -0
- package/src/components/data-grid/filters/enum-filter.tsx +119 -0
- package/src/components/data-grid/filters/filter-dropdown.spec.tsx +89 -0
- package/src/components/data-grid/filters/filter-dropdown.tsx +60 -0
- package/src/components/data-grid/filters/filter-styles.ts +26 -0
- package/src/components/data-grid/filters/index.ts +6 -0
- package/src/components/data-grid/filters/number-filter.spec.tsx +174 -0
- package/src/components/data-grid/filters/number-filter.tsx +115 -0
- package/src/components/data-grid/filters/string-filter.spec.tsx +157 -0
- package/src/components/data-grid/filters/string-filter.tsx +112 -0
- package/src/components/data-grid/footer.spec.tsx +38 -36
- package/src/components/data-grid/footer.tsx +21 -8
- package/src/components/data-grid/header.spec.tsx +128 -212
- package/src/components/data-grid/header.tsx +95 -183
- package/src/components/data-grid/index.tsx +1 -0
- package/src/components/data-grid/selection-cell.spec.tsx +8 -8
- package/src/components/drawer/drawer-toggle-button.spec.tsx +22 -22
- package/src/components/drawer/index.spec.tsx +36 -36
- package/src/components/dropdown.spec.tsx +38 -30
- package/src/components/fab.spec.tsx +4 -4
- package/src/components/form.spec.tsx +329 -20
- package/src/components/form.tsx +31 -8
- package/src/components/grid.spec.tsx +3 -3
- package/src/components/image.spec.tsx +55 -52
- package/src/components/inputs/autocomplete.spec.tsx +7 -14
- package/src/components/inputs/checkbox.spec.tsx +22 -22
- package/src/components/inputs/input-number.spec.tsx +47 -47
- package/src/components/inputs/input.spec.tsx +53 -53
- package/src/components/inputs/radio-group.spec.tsx +14 -14
- package/src/components/inputs/radio.spec.tsx +16 -16
- package/src/components/inputs/select.spec.tsx +74 -74
- package/src/components/inputs/slider.spec.tsx +16 -16
- package/src/components/inputs/switch.spec.tsx +24 -24
- package/src/components/inputs/text-area.spec.tsx +17 -17
- package/src/components/linear-progress.spec.tsx +2 -2
- package/src/components/list/list.spec.tsx +36 -36
- package/src/components/markdown/markdown-display.spec.tsx +15 -15
- package/src/components/markdown/markdown-editor.spec.tsx +8 -8
- package/src/components/markdown/markdown-input.spec.tsx +17 -17
- package/src/components/menu/menu.spec.tsx +28 -28
- package/src/components/modal.spec.tsx +15 -18
- package/src/components/noty-list.spec.tsx +25 -23
- package/src/components/page-container/index.spec.tsx +16 -16
- package/src/components/page-container/page-header.spec.tsx +16 -16
- package/src/components/page-layout/index.spec.tsx +29 -29
- package/src/components/paper.spec.tsx +3 -3
- package/src/components/rating.spec.tsx +61 -61
- package/src/components/skeleton.spec.tsx +10 -6
- package/src/components/suggest/suggest-input.spec.tsx +4 -10
- package/src/components/tabs.spec.tsx +30 -30
- package/src/components/tree/tree.spec.tsx +27 -27
- package/src/components/typography.spec.tsx +3 -3
- package/src/components/wizard/index.spec.tsx +5 -5
- package/src/utils/promisify-animation.ts +3 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import { ThemeProviderService } from '../../services/theme-provider-service.js'
|
|
6
6
|
import { Form, FormService } from '../form.js'
|
|
@@ -26,7 +26,7 @@ describe('Checkbox', () => {
|
|
|
26
26
|
jsxElement: <Checkbox />,
|
|
27
27
|
})
|
|
28
28
|
|
|
29
|
-
await
|
|
29
|
+
await flushUpdates()
|
|
30
30
|
|
|
31
31
|
const checkbox = document.querySelector('shade-checkbox')
|
|
32
32
|
expect(checkbox).not.toBeNull()
|
|
@@ -43,7 +43,7 @@ describe('Checkbox', () => {
|
|
|
43
43
|
jsxElement: <Checkbox name="testField" />,
|
|
44
44
|
})
|
|
45
45
|
|
|
46
|
-
await
|
|
46
|
+
await flushUpdates()
|
|
47
47
|
|
|
48
48
|
const input = document.querySelector('shade-checkbox input[type="checkbox"]') as HTMLInputElement
|
|
49
49
|
expect(input).not.toBeNull()
|
|
@@ -61,7 +61,7 @@ describe('Checkbox', () => {
|
|
|
61
61
|
jsxElement: <Checkbox labelTitle="Accept terms" />,
|
|
62
62
|
})
|
|
63
63
|
|
|
64
|
-
await
|
|
64
|
+
await flushUpdates()
|
|
65
65
|
|
|
66
66
|
const label = document.querySelector('shade-checkbox label') as HTMLLabelElement
|
|
67
67
|
expect(label).not.toBeNull()
|
|
@@ -79,7 +79,7 @@ describe('Checkbox', () => {
|
|
|
79
79
|
jsxElement: <Checkbox />,
|
|
80
80
|
})
|
|
81
81
|
|
|
82
|
-
await
|
|
82
|
+
await flushUpdates()
|
|
83
83
|
|
|
84
84
|
const labelSpan = document.querySelector('shade-checkbox .checkbox-label')
|
|
85
85
|
expect(labelSpan).toBeNull()
|
|
@@ -97,7 +97,7 @@ describe('Checkbox', () => {
|
|
|
97
97
|
jsxElement: <Checkbox checked />,
|
|
98
98
|
})
|
|
99
99
|
|
|
100
|
-
await
|
|
100
|
+
await flushUpdates()
|
|
101
101
|
|
|
102
102
|
const input = document.querySelector('shade-checkbox input[type="checkbox"]') as HTMLInputElement
|
|
103
103
|
expect(input.checked).toBe(true)
|
|
@@ -114,7 +114,7 @@ describe('Checkbox', () => {
|
|
|
114
114
|
jsxElement: <Checkbox checked={false} />,
|
|
115
115
|
})
|
|
116
116
|
|
|
117
|
-
await
|
|
117
|
+
await flushUpdates()
|
|
118
118
|
|
|
119
119
|
const input = document.querySelector('shade-checkbox input[type="checkbox"]') as HTMLInputElement
|
|
120
120
|
expect(input.checked).toBe(false)
|
|
@@ -133,7 +133,7 @@ describe('Checkbox', () => {
|
|
|
133
133
|
jsxElement: <Checkbox disabled />,
|
|
134
134
|
})
|
|
135
135
|
|
|
136
|
-
await
|
|
136
|
+
await flushUpdates()
|
|
137
137
|
|
|
138
138
|
const wrapper = document.querySelector('shade-checkbox') as HTMLElement
|
|
139
139
|
expect(wrapper.hasAttribute('data-disabled')).toBe(true)
|
|
@@ -153,7 +153,7 @@ describe('Checkbox', () => {
|
|
|
153
153
|
jsxElement: <Checkbox disabled={false} />,
|
|
154
154
|
})
|
|
155
155
|
|
|
156
|
-
await
|
|
156
|
+
await flushUpdates()
|
|
157
157
|
|
|
158
158
|
const wrapper = document.querySelector('shade-checkbox') as HTMLElement
|
|
159
159
|
expect(wrapper.hasAttribute('data-disabled')).toBe(false)
|
|
@@ -172,7 +172,7 @@ describe('Checkbox', () => {
|
|
|
172
172
|
jsxElement: <Checkbox indeterminate />,
|
|
173
173
|
})
|
|
174
174
|
|
|
175
|
-
await
|
|
175
|
+
await flushUpdates()
|
|
176
176
|
|
|
177
177
|
const wrapper = document.querySelector('shade-checkbox') as HTMLElement
|
|
178
178
|
expect(wrapper.hasAttribute('data-indeterminate')).toBe(true)
|
|
@@ -189,7 +189,7 @@ describe('Checkbox', () => {
|
|
|
189
189
|
jsxElement: <Checkbox indeterminate={false} />,
|
|
190
190
|
})
|
|
191
191
|
|
|
192
|
-
await
|
|
192
|
+
await flushUpdates()
|
|
193
193
|
|
|
194
194
|
const wrapper = document.querySelector('shade-checkbox') as HTMLElement
|
|
195
195
|
expect(wrapper.hasAttribute('data-indeterminate')).toBe(false)
|
|
@@ -208,7 +208,7 @@ describe('Checkbox', () => {
|
|
|
208
208
|
jsxElement: <Checkbox />,
|
|
209
209
|
})
|
|
210
210
|
|
|
211
|
-
await
|
|
211
|
+
await flushUpdates()
|
|
212
212
|
|
|
213
213
|
const wrapper = document.querySelector('shade-checkbox') as HTMLElement
|
|
214
214
|
const themeService = injector.getInstance(ThemeProviderService)
|
|
@@ -226,7 +226,7 @@ describe('Checkbox', () => {
|
|
|
226
226
|
jsxElement: <Checkbox color="secondary" />,
|
|
227
227
|
})
|
|
228
228
|
|
|
229
|
-
await
|
|
229
|
+
await flushUpdates()
|
|
230
230
|
|
|
231
231
|
const wrapper = document.querySelector('shade-checkbox') as HTMLElement
|
|
232
232
|
const themeService = injector.getInstance(ThemeProviderService)
|
|
@@ -247,12 +247,12 @@ describe('Checkbox', () => {
|
|
|
247
247
|
jsxElement: <Checkbox onchange={onchange} />,
|
|
248
248
|
})
|
|
249
249
|
|
|
250
|
-
await
|
|
250
|
+
await flushUpdates()
|
|
251
251
|
|
|
252
252
|
const input = document.querySelector('shade-checkbox input[type="checkbox"]') as HTMLInputElement
|
|
253
253
|
input.dispatchEvent(new Event('change', { bubbles: true }))
|
|
254
254
|
|
|
255
|
-
await
|
|
255
|
+
await flushUpdates()
|
|
256
256
|
|
|
257
257
|
expect(onchange).toHaveBeenCalled()
|
|
258
258
|
})
|
|
@@ -270,7 +270,7 @@ describe('Checkbox', () => {
|
|
|
270
270
|
jsxElement: <Checkbox name="terms" value="accepted" />,
|
|
271
271
|
})
|
|
272
272
|
|
|
273
|
-
await
|
|
273
|
+
await flushUpdates()
|
|
274
274
|
|
|
275
275
|
const input = document.querySelector('shade-checkbox input[type="checkbox"]') as HTMLInputElement
|
|
276
276
|
expect(input.value).toBe('accepted')
|
|
@@ -290,7 +290,7 @@ describe('Checkbox', () => {
|
|
|
290
290
|
jsxElement: <Checkbox required />,
|
|
291
291
|
})
|
|
292
292
|
|
|
293
|
-
await
|
|
293
|
+
await flushUpdates()
|
|
294
294
|
|
|
295
295
|
const input = document.querySelector('shade-checkbox input[type="checkbox"]') as HTMLInputElement
|
|
296
296
|
expect(input.required).toBe(true)
|
|
@@ -309,7 +309,7 @@ describe('Checkbox', () => {
|
|
|
309
309
|
jsxElement: <Checkbox labelProps={{ className: 'custom-label' }} />,
|
|
310
310
|
})
|
|
311
311
|
|
|
312
|
-
await
|
|
312
|
+
await flushUpdates()
|
|
313
313
|
|
|
314
314
|
const label = document.querySelector('shade-checkbox label') as HTMLLabelElement
|
|
315
315
|
expect(label.className).toContain('custom-label')
|
|
@@ -334,7 +334,7 @@ describe('Checkbox', () => {
|
|
|
334
334
|
),
|
|
335
335
|
})
|
|
336
336
|
|
|
337
|
-
await
|
|
337
|
+
await flushUpdates()
|
|
338
338
|
|
|
339
339
|
const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
|
|
340
340
|
const formInjector = (form as unknown as { injector: Injector }).injector
|
|
@@ -360,7 +360,7 @@ describe('Checkbox', () => {
|
|
|
360
360
|
),
|
|
361
361
|
})
|
|
362
362
|
|
|
363
|
-
await
|
|
363
|
+
await flushUpdates()
|
|
364
364
|
|
|
365
365
|
const form = document.querySelector('form[is="shade-form"]') as HTMLFormElement
|
|
366
366
|
const formInjector = (form as unknown as { injector: Injector }).injector
|
|
@@ -370,7 +370,7 @@ describe('Checkbox', () => {
|
|
|
370
370
|
|
|
371
371
|
rootElement.innerHTML = ''
|
|
372
372
|
|
|
373
|
-
await
|
|
373
|
+
await flushUpdates()
|
|
374
374
|
})
|
|
375
375
|
})
|
|
376
376
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import { InputNumber } from './input-number.js'
|
|
6
6
|
|
|
@@ -24,7 +24,7 @@ describe('InputNumber', () => {
|
|
|
24
24
|
jsxElement: <InputNumber />,
|
|
25
25
|
})
|
|
26
26
|
|
|
27
|
-
await
|
|
27
|
+
await flushUpdates()
|
|
28
28
|
|
|
29
29
|
const el = document.querySelector('shade-input-number')
|
|
30
30
|
expect(el).not.toBeNull()
|
|
@@ -41,7 +41,7 @@ describe('InputNumber', () => {
|
|
|
41
41
|
jsxElement: <InputNumber value={5} />,
|
|
42
42
|
})
|
|
43
43
|
|
|
44
|
-
await
|
|
44
|
+
await flushUpdates()
|
|
45
45
|
|
|
46
46
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
47
47
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
@@ -63,7 +63,7 @@ describe('InputNumber', () => {
|
|
|
63
63
|
jsxElement: <InputNumber labelTitle="Quantity" />,
|
|
64
64
|
})
|
|
65
65
|
|
|
66
|
-
await
|
|
66
|
+
await flushUpdates()
|
|
67
67
|
|
|
68
68
|
const label = document.querySelector('shade-input-number label') as HTMLLabelElement
|
|
69
69
|
expect(label).not.toBeNull()
|
|
@@ -83,13 +83,13 @@ describe('InputNumber', () => {
|
|
|
83
83
|
jsxElement: <InputNumber value={5} onValueChange={onValueChange} />,
|
|
84
84
|
})
|
|
85
85
|
|
|
86
|
-
await
|
|
86
|
+
await flushUpdates()
|
|
87
87
|
|
|
88
88
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
89
89
|
const incrementBtn = wrapper.querySelectorAll('.step-button')[1] as HTMLButtonElement
|
|
90
90
|
incrementBtn.click()
|
|
91
91
|
|
|
92
|
-
await
|
|
92
|
+
await flushUpdates()
|
|
93
93
|
|
|
94
94
|
expect(onValueChange).toHaveBeenCalledWith(6)
|
|
95
95
|
})
|
|
@@ -106,13 +106,13 @@ describe('InputNumber', () => {
|
|
|
106
106
|
jsxElement: <InputNumber value={5} onValueChange={onValueChange} />,
|
|
107
107
|
})
|
|
108
108
|
|
|
109
|
-
await
|
|
109
|
+
await flushUpdates()
|
|
110
110
|
|
|
111
111
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
112
112
|
const decrementBtn = wrapper.querySelectorAll('.step-button')[0] as HTMLButtonElement
|
|
113
113
|
decrementBtn.click()
|
|
114
114
|
|
|
115
|
-
await
|
|
115
|
+
await flushUpdates()
|
|
116
116
|
|
|
117
117
|
expect(onValueChange).toHaveBeenCalledWith(4)
|
|
118
118
|
})
|
|
@@ -129,13 +129,13 @@ describe('InputNumber', () => {
|
|
|
129
129
|
jsxElement: <InputNumber value={10} step={5} onValueChange={onValueChange} />,
|
|
130
130
|
})
|
|
131
131
|
|
|
132
|
-
await
|
|
132
|
+
await flushUpdates()
|
|
133
133
|
|
|
134
134
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
135
135
|
const incrementBtn = wrapper.querySelectorAll('.step-button')[1] as HTMLButtonElement
|
|
136
136
|
incrementBtn.click()
|
|
137
137
|
|
|
138
|
-
await
|
|
138
|
+
await flushUpdates()
|
|
139
139
|
|
|
140
140
|
expect(onValueChange).toHaveBeenCalledWith(15)
|
|
141
141
|
})
|
|
@@ -154,13 +154,13 @@ describe('InputNumber', () => {
|
|
|
154
154
|
jsxElement: <InputNumber value={9} max={10} onValueChange={onValueChange} />,
|
|
155
155
|
})
|
|
156
156
|
|
|
157
|
-
await
|
|
157
|
+
await flushUpdates()
|
|
158
158
|
|
|
159
159
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
160
160
|
const incrementBtn = wrapper.querySelectorAll('.step-button')[1] as HTMLButtonElement
|
|
161
161
|
incrementBtn.click()
|
|
162
162
|
|
|
163
|
-
await
|
|
163
|
+
await flushUpdates()
|
|
164
164
|
|
|
165
165
|
expect(onValueChange).toHaveBeenCalledWith(10)
|
|
166
166
|
})
|
|
@@ -177,13 +177,13 @@ describe('InputNumber', () => {
|
|
|
177
177
|
jsxElement: <InputNumber value={1} min={0} onValueChange={onValueChange} />,
|
|
178
178
|
})
|
|
179
179
|
|
|
180
|
-
await
|
|
180
|
+
await flushUpdates()
|
|
181
181
|
|
|
182
182
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
183
183
|
const decrementBtn = wrapper.querySelectorAll('.step-button')[0] as HTMLButtonElement
|
|
184
184
|
decrementBtn.click()
|
|
185
185
|
|
|
186
|
-
await
|
|
186
|
+
await flushUpdates()
|
|
187
187
|
|
|
188
188
|
expect(onValueChange).toHaveBeenCalledWith(0)
|
|
189
189
|
})
|
|
@@ -199,7 +199,7 @@ describe('InputNumber', () => {
|
|
|
199
199
|
jsxElement: <InputNumber value={0} min={0} />,
|
|
200
200
|
})
|
|
201
201
|
|
|
202
|
-
await
|
|
202
|
+
await flushUpdates()
|
|
203
203
|
|
|
204
204
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
205
205
|
const decrementBtn = wrapper.querySelectorAll('.step-button')[0] as HTMLButtonElement
|
|
@@ -218,7 +218,7 @@ describe('InputNumber', () => {
|
|
|
218
218
|
jsxElement: <InputNumber value={100} max={100} />,
|
|
219
219
|
})
|
|
220
220
|
|
|
221
|
-
await
|
|
221
|
+
await flushUpdates()
|
|
222
222
|
|
|
223
223
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
224
224
|
const incrementBtn = wrapper.querySelectorAll('.step-button')[1] as HTMLButtonElement
|
|
@@ -239,7 +239,7 @@ describe('InputNumber', () => {
|
|
|
239
239
|
jsxElement: <InputNumber value={3.1} precision={2} />,
|
|
240
240
|
})
|
|
241
241
|
|
|
242
|
-
await
|
|
242
|
+
await flushUpdates()
|
|
243
243
|
|
|
244
244
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
245
245
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
@@ -259,13 +259,13 @@ describe('InputNumber', () => {
|
|
|
259
259
|
jsxElement: <InputNumber value={1} step={0.01} precision={2} onValueChange={onValueChange} />,
|
|
260
260
|
})
|
|
261
261
|
|
|
262
|
-
await
|
|
262
|
+
await flushUpdates()
|
|
263
263
|
|
|
264
264
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
265
265
|
const incrementBtn = wrapper.querySelectorAll('.step-button')[1] as HTMLButtonElement
|
|
266
266
|
incrementBtn.click()
|
|
267
267
|
|
|
268
|
-
await
|
|
268
|
+
await flushUpdates()
|
|
269
269
|
|
|
270
270
|
expect(onValueChange).toHaveBeenCalledWith(1.01)
|
|
271
271
|
})
|
|
@@ -284,13 +284,13 @@ describe('InputNumber', () => {
|
|
|
284
284
|
jsxElement: <InputNumber value={5} onValueChange={onValueChange} />,
|
|
285
285
|
})
|
|
286
286
|
|
|
287
|
-
await
|
|
287
|
+
await flushUpdates()
|
|
288
288
|
|
|
289
289
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
290
290
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
291
291
|
input.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }))
|
|
292
292
|
|
|
293
|
-
await
|
|
293
|
+
await flushUpdates()
|
|
294
294
|
|
|
295
295
|
expect(onValueChange).toHaveBeenCalledWith(6)
|
|
296
296
|
})
|
|
@@ -307,13 +307,13 @@ describe('InputNumber', () => {
|
|
|
307
307
|
jsxElement: <InputNumber value={5} onValueChange={onValueChange} />,
|
|
308
308
|
})
|
|
309
309
|
|
|
310
|
-
await
|
|
310
|
+
await flushUpdates()
|
|
311
311
|
|
|
312
312
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
313
313
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
314
314
|
input.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
315
315
|
|
|
316
|
-
await
|
|
316
|
+
await flushUpdates()
|
|
317
317
|
|
|
318
318
|
expect(onValueChange).toHaveBeenCalledWith(4)
|
|
319
319
|
})
|
|
@@ -330,13 +330,13 @@ describe('InputNumber', () => {
|
|
|
330
330
|
jsxElement: <InputNumber value={5} disabled onValueChange={onValueChange} />,
|
|
331
331
|
})
|
|
332
332
|
|
|
333
|
-
await
|
|
333
|
+
await flushUpdates()
|
|
334
334
|
|
|
335
335
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
336
336
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
337
337
|
input.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowUp', bubbles: true }))
|
|
338
338
|
|
|
339
|
-
await
|
|
339
|
+
await flushUpdates()
|
|
340
340
|
|
|
341
341
|
expect(onValueChange).not.toHaveBeenCalled()
|
|
342
342
|
})
|
|
@@ -354,7 +354,7 @@ describe('InputNumber', () => {
|
|
|
354
354
|
jsxElement: <InputNumber value={1000} formatter={(v) => (v !== undefined ? `$${v.toLocaleString()}` : '')} />,
|
|
355
355
|
})
|
|
356
356
|
|
|
357
|
-
await
|
|
357
|
+
await flushUpdates()
|
|
358
358
|
|
|
359
359
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
360
360
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
@@ -384,7 +384,7 @@ describe('InputNumber', () => {
|
|
|
384
384
|
),
|
|
385
385
|
})
|
|
386
386
|
|
|
387
|
-
await
|
|
387
|
+
await flushUpdates()
|
|
388
388
|
|
|
389
389
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
390
390
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
@@ -392,7 +392,7 @@ describe('InputNumber', () => {
|
|
|
392
392
|
input.value = '$500'
|
|
393
393
|
input.dispatchEvent(new Event('change', { bubbles: true }))
|
|
394
394
|
|
|
395
|
-
await
|
|
395
|
+
await flushUpdates()
|
|
396
396
|
|
|
397
397
|
expect(onValueChange).toHaveBeenCalledWith(500)
|
|
398
398
|
})
|
|
@@ -411,7 +411,7 @@ describe('InputNumber', () => {
|
|
|
411
411
|
jsxElement: <InputNumber value={0} onValueChange={onValueChange} />,
|
|
412
412
|
})
|
|
413
413
|
|
|
414
|
-
await
|
|
414
|
+
await flushUpdates()
|
|
415
415
|
|
|
416
416
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
417
417
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
@@ -419,7 +419,7 @@ describe('InputNumber', () => {
|
|
|
419
419
|
input.value = '42'
|
|
420
420
|
input.dispatchEvent(new Event('blur', { bubbles: true }))
|
|
421
421
|
|
|
422
|
-
await
|
|
422
|
+
await flushUpdates()
|
|
423
423
|
|
|
424
424
|
expect(onValueChange).toHaveBeenCalledWith(42)
|
|
425
425
|
})
|
|
@@ -436,7 +436,7 @@ describe('InputNumber', () => {
|
|
|
436
436
|
jsxElement: <InputNumber value={5} onValueChange={onValueChange} />,
|
|
437
437
|
})
|
|
438
438
|
|
|
439
|
-
await
|
|
439
|
+
await flushUpdates()
|
|
440
440
|
|
|
441
441
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
442
442
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
@@ -444,7 +444,7 @@ describe('InputNumber', () => {
|
|
|
444
444
|
input.value = ''
|
|
445
445
|
input.dispatchEvent(new Event('blur', { bubbles: true }))
|
|
446
446
|
|
|
447
|
-
await
|
|
447
|
+
await flushUpdates()
|
|
448
448
|
|
|
449
449
|
expect(onValueChange).toHaveBeenCalledWith(undefined)
|
|
450
450
|
})
|
|
@@ -462,7 +462,7 @@ describe('InputNumber', () => {
|
|
|
462
462
|
jsxElement: <InputNumber disabled />,
|
|
463
463
|
})
|
|
464
464
|
|
|
465
|
-
await
|
|
465
|
+
await flushUpdates()
|
|
466
466
|
|
|
467
467
|
const el = document.querySelector('shade-input-number') as HTMLElement
|
|
468
468
|
expect(el.hasAttribute('data-disabled')).toBe(true)
|
|
@@ -479,7 +479,7 @@ describe('InputNumber', () => {
|
|
|
479
479
|
jsxElement: <InputNumber value={5} disabled />,
|
|
480
480
|
})
|
|
481
481
|
|
|
482
|
-
await
|
|
482
|
+
await flushUpdates()
|
|
483
483
|
|
|
484
484
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
485
485
|
const buttons = wrapper.querySelectorAll('.step-button')
|
|
@@ -500,13 +500,13 @@ describe('InputNumber', () => {
|
|
|
500
500
|
jsxElement: <InputNumber value={5} disabled onValueChange={onValueChange} />,
|
|
501
501
|
})
|
|
502
502
|
|
|
503
|
-
await
|
|
503
|
+
await flushUpdates()
|
|
504
504
|
|
|
505
505
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
506
506
|
const incrementBtn = wrapper.querySelectorAll('.step-button')[1] as HTMLButtonElement
|
|
507
507
|
incrementBtn.click()
|
|
508
508
|
|
|
509
|
-
await
|
|
509
|
+
await flushUpdates()
|
|
510
510
|
|
|
511
511
|
expect(onValueChange).not.toHaveBeenCalled()
|
|
512
512
|
})
|
|
@@ -524,7 +524,7 @@ describe('InputNumber', () => {
|
|
|
524
524
|
jsxElement: <InputNumber variant="outlined" />,
|
|
525
525
|
})
|
|
526
526
|
|
|
527
|
-
await
|
|
527
|
+
await flushUpdates()
|
|
528
528
|
|
|
529
529
|
const el = document.querySelector('shade-input-number') as HTMLElement
|
|
530
530
|
expect(el.getAttribute('data-variant')).toBe('outlined')
|
|
@@ -541,7 +541,7 @@ describe('InputNumber', () => {
|
|
|
541
541
|
jsxElement: <InputNumber variant="contained" />,
|
|
542
542
|
})
|
|
543
543
|
|
|
544
|
-
await
|
|
544
|
+
await flushUpdates()
|
|
545
545
|
|
|
546
546
|
const el = document.querySelector('shade-input-number') as HTMLElement
|
|
547
547
|
expect(el.getAttribute('data-variant')).toBe('contained')
|
|
@@ -560,7 +560,7 @@ describe('InputNumber', () => {
|
|
|
560
560
|
jsxElement: <InputNumber helperText="Enter a quantity" />,
|
|
561
561
|
})
|
|
562
562
|
|
|
563
|
-
await
|
|
563
|
+
await flushUpdates()
|
|
564
564
|
|
|
565
565
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
566
566
|
const helperText = wrapper.querySelector('.helperText') as HTMLElement
|
|
@@ -580,7 +580,7 @@ describe('InputNumber', () => {
|
|
|
580
580
|
jsxElement: <InputNumber />,
|
|
581
581
|
})
|
|
582
582
|
|
|
583
|
-
await
|
|
583
|
+
await flushUpdates()
|
|
584
584
|
|
|
585
585
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
586
586
|
const helperText = wrapper.querySelector('.helperText')
|
|
@@ -602,7 +602,7 @@ describe('InputNumber', () => {
|
|
|
602
602
|
})
|
|
603
603
|
|
|
604
604
|
// Wait for render + requestAnimationFrame
|
|
605
|
-
await
|
|
605
|
+
await flushUpdates()
|
|
606
606
|
|
|
607
607
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
608
608
|
const input = wrapper.querySelector('input') as HTMLInputElement
|
|
@@ -625,7 +625,7 @@ describe('InputNumber', () => {
|
|
|
625
625
|
})
|
|
626
626
|
|
|
627
627
|
// Wait for render + requestAnimationFrame
|
|
628
|
-
await
|
|
628
|
+
await flushUpdates()
|
|
629
629
|
|
|
630
630
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
631
631
|
const buttons = wrapper.querySelectorAll('.step-button')
|
|
@@ -648,13 +648,13 @@ describe('InputNumber', () => {
|
|
|
648
648
|
jsxElement: <InputNumber min={1} onValueChange={onValueChange} />,
|
|
649
649
|
})
|
|
650
650
|
|
|
651
|
-
await
|
|
651
|
+
await flushUpdates()
|
|
652
652
|
|
|
653
653
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
654
654
|
const incrementBtn = wrapper.querySelectorAll('.step-button')[1] as HTMLButtonElement
|
|
655
655
|
incrementBtn.click()
|
|
656
656
|
|
|
657
|
-
await
|
|
657
|
+
await flushUpdates()
|
|
658
658
|
|
|
659
659
|
expect(onValueChange).toHaveBeenCalledWith(2)
|
|
660
660
|
})
|
|
@@ -671,13 +671,13 @@ describe('InputNumber', () => {
|
|
|
671
671
|
jsxElement: <InputNumber onValueChange={onValueChange} />,
|
|
672
672
|
})
|
|
673
673
|
|
|
674
|
-
await
|
|
674
|
+
await flushUpdates()
|
|
675
675
|
|
|
676
676
|
const wrapper = document.querySelector('shade-input-number') as HTMLElement
|
|
677
677
|
const incrementBtn = wrapper.querySelectorAll('.step-button')[1] as HTMLButtonElement
|
|
678
678
|
incrementBtn.click()
|
|
679
679
|
|
|
680
|
-
await
|
|
680
|
+
await flushUpdates()
|
|
681
681
|
|
|
682
682
|
expect(onValueChange).toHaveBeenCalledWith(1)
|
|
683
683
|
})
|