kempo-ui 0.0.41 → 0.0.43
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/dist/components/Accordion.js +1 -1
- package/dist/components/ContentSlider.js +2 -2
- package/dist/components/Icon.js +34 -2
- package/dist/components/Main.js +24 -0
- package/dist/components/PhotoViewer.js +2 -2
- package/dist/components/ShowMore.js +8 -8
- package/dist/components/SidePanel.js +225 -0
- package/dist/components/Table.js +1 -1
- package/dist/components/tableControls/FirstPage.js +1 -1
- package/dist/components/tableControls/LastPage.js +1 -1
- package/dist/components/tableControls/NextPage.js +1 -1
- package/dist/components/tableControls/PrevPage.js +1 -1
- package/dist/utils/theme.js +1 -1
- package/docs/components/accordion.html +0 -1
- package/docs/components/card.html +0 -1
- package/docs/components/content-slider.html +0 -1
- package/docs/components/dialog.html +0 -1
- package/docs/components/dropdown.html +0 -1
- package/docs/components/focus-capture.html +0 -1
- package/docs/components/hybrid-component.html +0 -1
- package/docs/components/icon.html +50 -5
- package/docs/components/import.html +0 -1
- package/docs/components/light-component.html +0 -1
- package/docs/components/photo-viewer.html +0 -1
- package/docs/components/resize.html +0 -1
- package/docs/components/shadow-component.html +0 -1
- package/docs/components/show-more.html +0 -1
- package/docs/components/side-menu.html +0 -1
- package/docs/components/side-panel-basic.html +44 -0
- package/docs/components/side-panel-menu.html +50 -0
- package/docs/components/side-panel.html +186 -0
- package/docs/components/sortable.html +0 -1
- package/docs/components/spinner.html +0 -1
- package/docs/components/split.html +0 -1
- package/docs/components/table.html +24 -25
- package/docs/components/tableControls.html +0 -1
- package/docs/components/tableCustomFields.html +0 -1
- package/docs/components/tableFetchRecords.html +0 -1
- package/docs/components/tableFieldSortHide.html +0 -1
- package/docs/components/tablePagination.html +0 -1
- package/docs/components/tableRecordEditing.html +0 -1
- package/docs/components/tableRecordFiltering.html +0 -1
- package/docs/components/tableRecordHiding.html +0 -1
- package/docs/components/tableRecordSearching.html +0 -1
- package/docs/components/tableRecordSelection.html +0 -1
- package/docs/components/tableRowControls.html +0 -1
- package/docs/components/tableSorting.html +0 -1
- package/docs/components/tabs.html +0 -1
- package/docs/components/tags.html +0 -1
- package/docs/components/theme-switcher.html +0 -1
- package/docs/components/timestamp.html +0 -1
- package/docs/components/toast.html +0 -1
- package/docs/components/toggle.html +0 -1
- package/docs/components/tree.html +0 -1
- package/docs/dev.config.json +8 -1
- package/docs/icons/account-circle.svg +1 -0
- package/docs/icons/arrow-circle.svg +1 -0
- package/docs/icons/arrow-line.svg +1 -0
- package/docs/icons/arrow-menu-close.svg +1 -0
- package/docs/icons/arrow-menu-open.svg +1 -0
- package/docs/icons/arrow.svg +1 -0
- package/docs/icons/chevron-double.svg +1 -0
- package/docs/icons/chevron-line.svg +1 -0
- package/docs/icons/chevron-up.svg +1 -0
- package/docs/icons/key.svg +1 -0
- package/docs/icons/login.svg +1 -0
- package/docs/icons/logout.svg +1 -0
- package/docs/index.html +6 -1
- package/docs/nav-1.inc.html +1 -0
- package/docs/nav.inc.html +1 -0
- package/docs/prod.config.json +4 -0
- package/docs/src/components/Accordion.js +1 -1
- package/docs/src/components/ContentSlider.js +2 -2
- package/docs/src/components/Icon.js +34 -2
- package/docs/src/components/Main.js +24 -0
- package/docs/src/components/PhotoViewer.js +2 -2
- package/docs/src/components/ShowMore.js +8 -8
- package/docs/src/components/SidePanel.js +225 -0
- package/docs/src/components/Table.js +1 -1
- package/docs/src/components/tableControls/FirstPage.js +1 -1
- package/docs/src/components/tableControls/LastPage.js +1 -1
- package/docs/src/components/tableControls/NextPage.js +1 -1
- package/docs/src/components/tableControls/PrevPage.js +1 -1
- package/docs/src/utils/theme.js +1 -1
- package/docs/utils/context.html +0 -1
- package/docs/utils/debounce.html +0 -1
- package/docs/utils/drag.html +0 -1
- package/docs/utils/formatTimestamp.html +0 -1
- package/docs/utils/object.html +0 -1
- package/docs/utils/propConverters.html +0 -1
- package/docs/utils/string.html +0 -1
- package/docs/utils/theme.html +0 -1
- package/docs/utils/toTitleCase.html +0 -1
- package/docs/utils/type.html +0 -1
- package/docs/utils/wait.html +0 -1
- package/icons/account-circle.svg +1 -0
- package/icons/arrow-circle.svg +1 -0
- package/icons/arrow-line.svg +1 -0
- package/icons/arrow.svg +1 -0
- package/icons/chevron-double.svg +1 -0
- package/icons/chevron-line.svg +1 -0
- package/icons/chevron.svg +1 -0
- package/icons/key.svg +1 -0
- package/icons/login.svg +1 -0
- package/icons/logout.svg +1 -0
- package/package.json +1 -1
- package/scripts/build.js +0 -7
- package/src/components/Accordion.js +1 -1
- package/src/components/ContentSlider.js +2 -2
- package/src/components/Icon.js +64 -4
- package/src/components/Main.js +87 -0
- package/src/components/PhotoViewer.js +2 -2
- package/src/components/ShowMore.js +8 -8
- package/src/components/SidePanel.js +454 -0
- package/src/components/Table.js +1 -1
- package/src/components/tableControls/FirstPage.js +1 -1
- package/src/components/tableControls/LastPage.js +1 -1
- package/src/components/tableControls/NextPage.js +1 -1
- package/src/components/tableControls/PrevPage.js +1 -1
- package/src/utils/theme.js +22 -9
- package/tests/components/Icon.browser-test.js +205 -0
- package/tests/components/Main.browser-test.js +345 -0
- package/tests/components/SidePanel.browser-test.js +466 -0
- package/tests/components/tableControls/PaginationControls.browser-test.js +10 -10
- package/dist/kempo-vars.css +0 -1
- package/docs/init-1.js +0 -4
- package/docs/init.js +0 -4
- package/docs/src/kempo-vars.css +0 -1
- package/icons/arrow-back.svg +0 -1
- package/icons/arrow-down-double.svg +0 -1
- package/icons/arrow-down.svg +0 -1
- package/icons/arrow-up-double.svg +0 -1
- package/icons/arrow-up.svg +0 -1
- package/icons/chevron-left.svg +0 -1
- package/src/kempo-vars.css +0 -1
- /package/{icons/arrow-forward.svg → docs/icons/arrow-right.svg} +0 -0
- /package/{icons/chevron-right.svg → docs/icons/chevron.svg} +0 -0
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
import '../../src/components/SidePanel.js';
|
|
2
|
+
|
|
3
|
+
const createPanel = async (options = {}) => {
|
|
4
|
+
const panel = document.createElement('k-side-panel');
|
|
5
|
+
if(options.collapsed !== undefined) panel.collapsed = options.collapsed;
|
|
6
|
+
if(options.side) panel.side = options.side;
|
|
7
|
+
document.body.appendChild(panel);
|
|
8
|
+
await panel.updateComplete;
|
|
9
|
+
return panel;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const createPanelWithItem = async () => {
|
|
13
|
+
const panel = document.createElement('k-side-panel');
|
|
14
|
+
const item = document.createElement('k-side-panel-item');
|
|
15
|
+
item.icon = 'home';
|
|
16
|
+
item.label = 'Home';
|
|
17
|
+
item.href = '/home';
|
|
18
|
+
panel.appendChild(item);
|
|
19
|
+
document.body.appendChild(panel);
|
|
20
|
+
await panel.updateComplete;
|
|
21
|
+
await item.updateComplete;
|
|
22
|
+
return { panel, item };
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const createPanelWithLabel = async () => {
|
|
26
|
+
const panel = document.createElement('k-side-panel');
|
|
27
|
+
const label = document.createElement('k-side-panel-label');
|
|
28
|
+
label.textContent = 'Section';
|
|
29
|
+
panel.appendChild(label);
|
|
30
|
+
document.body.appendChild(panel);
|
|
31
|
+
await panel.updateComplete;
|
|
32
|
+
await label.updateComplete;
|
|
33
|
+
return { panel, label };
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const createPanelWithMenu = async () => {
|
|
37
|
+
const panel = document.createElement('k-side-panel');
|
|
38
|
+
const menu = document.createElement('k-side-panel-menu');
|
|
39
|
+
menu.icon = 'folder';
|
|
40
|
+
menu.label = 'Files';
|
|
41
|
+
const item1 = document.createElement('k-side-panel-item');
|
|
42
|
+
item1.label = 'File 1';
|
|
43
|
+
const item2 = document.createElement('k-side-panel-item');
|
|
44
|
+
item2.label = 'File 2';
|
|
45
|
+
menu.appendChild(item1);
|
|
46
|
+
menu.appendChild(item2);
|
|
47
|
+
panel.appendChild(menu);
|
|
48
|
+
document.body.appendChild(panel);
|
|
49
|
+
await panel.updateComplete;
|
|
50
|
+
await menu.updateComplete;
|
|
51
|
+
return { panel, menu, item1, item2 };
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
const cleanup = (el) => {
|
|
55
|
+
if(el && el.parentNode) {
|
|
56
|
+
el.parentNode.removeChild(el);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default {
|
|
61
|
+
/*
|
|
62
|
+
SidePanel - Properties
|
|
63
|
+
*/
|
|
64
|
+
'should have default collapsed property as false': async ({pass, fail}) => {
|
|
65
|
+
const panel = await createPanel();
|
|
66
|
+
if(panel.collapsed !== false) {
|
|
67
|
+
cleanup(panel);
|
|
68
|
+
return fail(`Expected collapsed to be false, got ${panel.collapsed}`);
|
|
69
|
+
}
|
|
70
|
+
cleanup(panel);
|
|
71
|
+
pass('Default collapsed property is false');
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
'should have default side property as left': async ({pass, fail}) => {
|
|
75
|
+
const panel = await createPanel();
|
|
76
|
+
if(panel.side !== 'left') {
|
|
77
|
+
cleanup(panel);
|
|
78
|
+
return fail(`Expected side to be "left", got "${panel.side}"`);
|
|
79
|
+
}
|
|
80
|
+
cleanup(panel);
|
|
81
|
+
pass('Default side property is left');
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
'should reflect collapsed property to attribute': async ({pass, fail}) => {
|
|
85
|
+
const panel = await createPanel({ collapsed: true });
|
|
86
|
+
if(!panel.hasAttribute('collapsed')) {
|
|
87
|
+
cleanup(panel);
|
|
88
|
+
return fail('collapsed attribute should be set');
|
|
89
|
+
}
|
|
90
|
+
cleanup(panel);
|
|
91
|
+
pass('Collapsed property reflects to attribute');
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
'should reflect side property to attribute': async ({pass, fail}) => {
|
|
95
|
+
const panel = await createPanel({ side: 'right' });
|
|
96
|
+
if(panel.getAttribute('side') !== 'right') {
|
|
97
|
+
cleanup(panel);
|
|
98
|
+
return fail(`Expected side attribute "right", got "${panel.getAttribute('side')}"`);
|
|
99
|
+
}
|
|
100
|
+
cleanup(panel);
|
|
101
|
+
pass('Side property reflects to attribute');
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
/*
|
|
105
|
+
SidePanel - Methods
|
|
106
|
+
*/
|
|
107
|
+
'should expand panel': async ({pass, fail}) => {
|
|
108
|
+
const panel = await createPanel({ collapsed: true });
|
|
109
|
+
panel.expand();
|
|
110
|
+
await panel.updateComplete;
|
|
111
|
+
if(panel.collapsed !== false) {
|
|
112
|
+
cleanup(panel);
|
|
113
|
+
return fail('Panel should be expanded');
|
|
114
|
+
}
|
|
115
|
+
cleanup(panel);
|
|
116
|
+
pass('Panel expands correctly');
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
'should collapse panel': async ({pass, fail}) => {
|
|
120
|
+
const panel = await createPanel({ collapsed: false });
|
|
121
|
+
panel.collapse();
|
|
122
|
+
await panel.updateComplete;
|
|
123
|
+
if(panel.collapsed !== true) {
|
|
124
|
+
cleanup(panel);
|
|
125
|
+
return fail('Panel should be collapsed');
|
|
126
|
+
}
|
|
127
|
+
cleanup(panel);
|
|
128
|
+
pass('Panel collapses correctly');
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
'should toggle panel from collapsed to expanded': async ({pass, fail}) => {
|
|
132
|
+
const panel = await createPanel({ collapsed: true });
|
|
133
|
+
panel.toggle();
|
|
134
|
+
await panel.updateComplete;
|
|
135
|
+
if(panel.collapsed !== false) {
|
|
136
|
+
cleanup(panel);
|
|
137
|
+
return fail('Panel should toggle to expanded');
|
|
138
|
+
}
|
|
139
|
+
cleanup(panel);
|
|
140
|
+
pass('Panel toggles from collapsed to expanded');
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
'should toggle panel from expanded to collapsed': async ({pass, fail}) => {
|
|
144
|
+
const panel = await createPanel({ collapsed: false });
|
|
145
|
+
panel.toggle();
|
|
146
|
+
await panel.updateComplete;
|
|
147
|
+
if(panel.collapsed !== true) {
|
|
148
|
+
cleanup(panel);
|
|
149
|
+
return fail('Panel should toggle to collapsed');
|
|
150
|
+
}
|
|
151
|
+
cleanup(panel);
|
|
152
|
+
pass('Panel toggles from expanded to collapsed');
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
/*
|
|
156
|
+
SidePanel - Events
|
|
157
|
+
*/
|
|
158
|
+
'should dispatch collapse event when collapsed': async ({pass, fail}) => {
|
|
159
|
+
const panel = await createPanel();
|
|
160
|
+
let eventFired = false;
|
|
161
|
+
panel.addEventListener('collapse', () => {
|
|
162
|
+
eventFired = true;
|
|
163
|
+
});
|
|
164
|
+
panel.collapse();
|
|
165
|
+
await panel.updateComplete;
|
|
166
|
+
if(!eventFired) {
|
|
167
|
+
cleanup(panel);
|
|
168
|
+
return fail('collapse event should be dispatched');
|
|
169
|
+
}
|
|
170
|
+
cleanup(panel);
|
|
171
|
+
pass('Collapse event dispatched');
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
'should dispatch expand event when expanded': async ({pass, fail}) => {
|
|
175
|
+
const panel = await createPanel({ collapsed: true });
|
|
176
|
+
let eventFired = false;
|
|
177
|
+
panel.addEventListener('expand', () => {
|
|
178
|
+
eventFired = true;
|
|
179
|
+
});
|
|
180
|
+
panel.expand();
|
|
181
|
+
await panel.updateComplete;
|
|
182
|
+
if(!eventFired) {
|
|
183
|
+
cleanup(panel);
|
|
184
|
+
return fail('expand event should be dispatched');
|
|
185
|
+
}
|
|
186
|
+
cleanup(panel);
|
|
187
|
+
pass('Expand event dispatched');
|
|
188
|
+
},
|
|
189
|
+
|
|
190
|
+
'should dispatch change event with detail on collapse': async ({pass, fail}) => {
|
|
191
|
+
const panel = await createPanel();
|
|
192
|
+
let changeDetail = null;
|
|
193
|
+
panel.addEventListener('change', (e) => {
|
|
194
|
+
changeDetail = e.detail;
|
|
195
|
+
});
|
|
196
|
+
panel.collapse();
|
|
197
|
+
await panel.updateComplete;
|
|
198
|
+
if(changeDetail !== 'collapse') {
|
|
199
|
+
cleanup(panel);
|
|
200
|
+
return fail(`Expected change detail "collapse", got "${changeDetail}"`);
|
|
201
|
+
}
|
|
202
|
+
cleanup(panel);
|
|
203
|
+
pass('Change event dispatched with collapse detail');
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
'should dispatch window side-panel-change event on collapse': async ({pass, fail}) => {
|
|
207
|
+
const panel = await createPanel();
|
|
208
|
+
let eventDetail = null;
|
|
209
|
+
const handler = (e) => {
|
|
210
|
+
eventDetail = e.detail;
|
|
211
|
+
};
|
|
212
|
+
window.addEventListener('side-panel-change', handler);
|
|
213
|
+
panel.collapse();
|
|
214
|
+
await panel.updateComplete;
|
|
215
|
+
window.removeEventListener('side-panel-change', handler);
|
|
216
|
+
if(!eventDetail || eventDetail.collapsed !== true || eventDetail.width !== '3.5rem' || eventDetail.side !== 'left') {
|
|
217
|
+
cleanup(panel);
|
|
218
|
+
return fail('Window event should have correct detail on collapse');
|
|
219
|
+
}
|
|
220
|
+
cleanup(panel);
|
|
221
|
+
pass('Window side-panel-change event dispatched on collapse');
|
|
222
|
+
},
|
|
223
|
+
|
|
224
|
+
/*
|
|
225
|
+
SidePanel - Toggle Button
|
|
226
|
+
*/
|
|
227
|
+
'should toggle panel when toggle button clicked': async ({pass, fail}) => {
|
|
228
|
+
const panel = await createPanel();
|
|
229
|
+
const toggleButton = panel.shadowRoot.querySelector('#toggle');
|
|
230
|
+
const initialState = panel.collapsed;
|
|
231
|
+
toggleButton.click();
|
|
232
|
+
await panel.updateComplete;
|
|
233
|
+
if(panel.collapsed === initialState) {
|
|
234
|
+
cleanup(panel);
|
|
235
|
+
return fail('Panel should toggle when button clicked');
|
|
236
|
+
}
|
|
237
|
+
cleanup(panel);
|
|
238
|
+
pass('Toggle button works correctly');
|
|
239
|
+
},
|
|
240
|
+
|
|
241
|
+
'should show right arrow icon when collapsed': async ({pass, fail}) => {
|
|
242
|
+
const panel = await createPanel({ collapsed: true });
|
|
243
|
+
const icon = panel.shadowRoot.querySelector('#toggle k-icon');
|
|
244
|
+
if(icon.getAttribute('direction') !== 'right') {
|
|
245
|
+
cleanup(panel);
|
|
246
|
+
return fail(`Expected direction "right", got "${icon.getAttribute('direction')}"`);
|
|
247
|
+
}
|
|
248
|
+
cleanup(panel);
|
|
249
|
+
pass('Right arrow shown when collapsed');
|
|
250
|
+
},
|
|
251
|
+
|
|
252
|
+
'should show left arrow icon when expanded': async ({pass, fail}) => {
|
|
253
|
+
const panel = await createPanel({ collapsed: false });
|
|
254
|
+
const icon = panel.shadowRoot.querySelector('#toggle k-icon');
|
|
255
|
+
if(icon.getAttribute('direction') !== 'left') {
|
|
256
|
+
cleanup(panel);
|
|
257
|
+
return fail(`Expected direction "left", got "${icon.getAttribute('direction')}"`);
|
|
258
|
+
}
|
|
259
|
+
cleanup(panel);
|
|
260
|
+
pass('Left arrow shown when expanded');
|
|
261
|
+
},
|
|
262
|
+
|
|
263
|
+
/*
|
|
264
|
+
SidePanelItem - Properties
|
|
265
|
+
*/
|
|
266
|
+
'should have icon property on item': async ({pass, fail}) => {
|
|
267
|
+
const { panel, item } = await createPanelWithItem();
|
|
268
|
+
if(item.icon !== 'home') {
|
|
269
|
+
cleanup(panel);
|
|
270
|
+
return fail(`Expected icon "home", got "${item.icon}"`);
|
|
271
|
+
}
|
|
272
|
+
cleanup(panel);
|
|
273
|
+
pass('Item has icon property');
|
|
274
|
+
},
|
|
275
|
+
|
|
276
|
+
'should have label property on item': async ({pass, fail}) => {
|
|
277
|
+
const { panel, item } = await createPanelWithItem();
|
|
278
|
+
if(item.label !== 'Home') {
|
|
279
|
+
cleanup(panel);
|
|
280
|
+
return fail(`Expected label "Home", got "${item.label}"`);
|
|
281
|
+
}
|
|
282
|
+
cleanup(panel);
|
|
283
|
+
pass('Item has label property');
|
|
284
|
+
},
|
|
285
|
+
|
|
286
|
+
'should have default active property as false on item': async ({pass, fail}) => {
|
|
287
|
+
const { panel, item } = await createPanelWithItem();
|
|
288
|
+
if(item.active !== false) {
|
|
289
|
+
cleanup(panel);
|
|
290
|
+
return fail(`Expected active to be false, got ${item.active}`);
|
|
291
|
+
}
|
|
292
|
+
cleanup(panel);
|
|
293
|
+
pass('Item default active property is false');
|
|
294
|
+
},
|
|
295
|
+
|
|
296
|
+
/*
|
|
297
|
+
SidePanelItem - Panel Collapse/Expand
|
|
298
|
+
*/
|
|
299
|
+
'should update item when panel collapses': async ({pass, fail}) => {
|
|
300
|
+
const { panel, item } = await createPanelWithItem();
|
|
301
|
+
panel.collapse();
|
|
302
|
+
await panel.updateComplete;
|
|
303
|
+
await item.updateComplete;
|
|
304
|
+
if(item.collapsed !== true) {
|
|
305
|
+
cleanup(panel);
|
|
306
|
+
return fail('Item should update when panel collapses');
|
|
307
|
+
}
|
|
308
|
+
cleanup(panel);
|
|
309
|
+
pass('Item updates when panel collapses');
|
|
310
|
+
},
|
|
311
|
+
|
|
312
|
+
'should hide item label when panel collapsed': async ({pass, fail}) => {
|
|
313
|
+
const { panel, item } = await createPanelWithItem();
|
|
314
|
+
panel.collapse();
|
|
315
|
+
await panel.updateComplete;
|
|
316
|
+
await item.updateComplete;
|
|
317
|
+
const label = item.shadowRoot.querySelector('.label');
|
|
318
|
+
if(!label.classList.contains('hidden')) {
|
|
319
|
+
cleanup(panel);
|
|
320
|
+
return fail('Item label should be hidden when panel collapsed');
|
|
321
|
+
}
|
|
322
|
+
cleanup(panel);
|
|
323
|
+
pass('Item label hidden when panel collapsed');
|
|
324
|
+
},
|
|
325
|
+
|
|
326
|
+
/*
|
|
327
|
+
SidePanelLabel - Panel Collapse/Expand
|
|
328
|
+
*/
|
|
329
|
+
'should update label when panel collapses': async ({pass, fail}) => {
|
|
330
|
+
const { panel, label } = await createPanelWithLabel();
|
|
331
|
+
panel.collapse();
|
|
332
|
+
await panel.updateComplete;
|
|
333
|
+
await label.updateComplete;
|
|
334
|
+
if(label.collapsed !== true) {
|
|
335
|
+
cleanup(panel);
|
|
336
|
+
return fail('Label should update when panel collapses');
|
|
337
|
+
}
|
|
338
|
+
cleanup(panel);
|
|
339
|
+
pass('Label updates when panel collapses');
|
|
340
|
+
},
|
|
341
|
+
|
|
342
|
+
'should render horizontal rule when label collapsed': async ({pass, fail}) => {
|
|
343
|
+
const { panel, label } = await createPanelWithLabel();
|
|
344
|
+
panel.collapse();
|
|
345
|
+
await panel.updateComplete;
|
|
346
|
+
await label.updateComplete;
|
|
347
|
+
const hr = label.shadowRoot.querySelector('hr');
|
|
348
|
+
if(!hr) {
|
|
349
|
+
cleanup(panel);
|
|
350
|
+
return fail('Should render horizontal rule when collapsed');
|
|
351
|
+
}
|
|
352
|
+
cleanup(panel);
|
|
353
|
+
pass('Horizontal rule rendered when collapsed');
|
|
354
|
+
},
|
|
355
|
+
|
|
356
|
+
/*
|
|
357
|
+
SidePanelMenu - Properties
|
|
358
|
+
*/
|
|
359
|
+
'should have icon property on menu': async ({pass, fail}) => {
|
|
360
|
+
const { panel, menu } = await createPanelWithMenu();
|
|
361
|
+
if(menu.icon !== 'folder') {
|
|
362
|
+
cleanup(panel);
|
|
363
|
+
return fail(`Expected icon "folder", got "${menu.icon}"`);
|
|
364
|
+
}
|
|
365
|
+
cleanup(panel);
|
|
366
|
+
pass('Menu has icon property');
|
|
367
|
+
},
|
|
368
|
+
|
|
369
|
+
'should have default open property as false on menu': async ({pass, fail}) => {
|
|
370
|
+
const { panel, menu } = await createPanelWithMenu();
|
|
371
|
+
if(menu.open !== false) {
|
|
372
|
+
cleanup(panel);
|
|
373
|
+
return fail(`Expected open to be false, got ${menu.open}`);
|
|
374
|
+
}
|
|
375
|
+
cleanup(panel);
|
|
376
|
+
pass('Menu default open property is false');
|
|
377
|
+
},
|
|
378
|
+
|
|
379
|
+
/*
|
|
380
|
+
SidePanelMenu - Toggle
|
|
381
|
+
*/
|
|
382
|
+
'should toggle menu from closed to open': async ({pass, fail}) => {
|
|
383
|
+
const { panel, menu } = await createPanelWithMenu();
|
|
384
|
+
menu.toggleMenu();
|
|
385
|
+
await menu.updateComplete;
|
|
386
|
+
if(menu.open !== true) {
|
|
387
|
+
cleanup(panel);
|
|
388
|
+
return fail('Menu should toggle to open');
|
|
389
|
+
}
|
|
390
|
+
cleanup(panel);
|
|
391
|
+
pass('Menu toggles to open');
|
|
392
|
+
},
|
|
393
|
+
|
|
394
|
+
'should toggle menu when header clicked': async ({pass, fail}) => {
|
|
395
|
+
const { panel, menu } = await createPanelWithMenu();
|
|
396
|
+
const header = menu.shadowRoot.querySelector('.menu-header');
|
|
397
|
+
header.click();
|
|
398
|
+
await menu.updateComplete;
|
|
399
|
+
if(menu.open !== true) {
|
|
400
|
+
cleanup(panel);
|
|
401
|
+
return fail('Menu should toggle when header clicked');
|
|
402
|
+
}
|
|
403
|
+
cleanup(panel);
|
|
404
|
+
pass('Menu toggles on header click');
|
|
405
|
+
},
|
|
406
|
+
|
|
407
|
+
'should not toggle menu when panel is collapsed': async ({pass, fail}) => {
|
|
408
|
+
const { panel, menu } = await createPanelWithMenu();
|
|
409
|
+
panel.collapse();
|
|
410
|
+
await panel.updateComplete;
|
|
411
|
+
await menu.updateComplete;
|
|
412
|
+
menu.toggleMenu();
|
|
413
|
+
await menu.updateComplete;
|
|
414
|
+
if(menu.open !== false) {
|
|
415
|
+
cleanup(panel);
|
|
416
|
+
return fail('Menu should not toggle when panel collapsed');
|
|
417
|
+
}
|
|
418
|
+
cleanup(panel);
|
|
419
|
+
pass('Menu does not toggle when panel collapsed');
|
|
420
|
+
},
|
|
421
|
+
|
|
422
|
+
/*
|
|
423
|
+
SidePanelMenu - Chevron Icon
|
|
424
|
+
*/
|
|
425
|
+
'should show right-pointing chevron when menu closed': async ({pass, fail}) => {
|
|
426
|
+
const { panel, menu } = await createPanelWithMenu();
|
|
427
|
+
const chevron = menu.shadowRoot.querySelector('.chevron');
|
|
428
|
+
if(chevron.getAttribute('direction') !== 'right') {
|
|
429
|
+
cleanup(panel);
|
|
430
|
+
return fail(`Expected direction "right", got "${chevron.getAttribute('direction')}"`);
|
|
431
|
+
}
|
|
432
|
+
cleanup(panel);
|
|
433
|
+
pass('Right-pointing chevron when closed');
|
|
434
|
+
},
|
|
435
|
+
|
|
436
|
+
'should show down-pointing chevron when menu open': async ({pass, fail}) => {
|
|
437
|
+
const { panel, menu } = await createPanelWithMenu();
|
|
438
|
+
menu.open = true;
|
|
439
|
+
await menu.updateComplete;
|
|
440
|
+
const chevron = menu.shadowRoot.querySelector('.chevron');
|
|
441
|
+
if(chevron.getAttribute('direction') !== 'down') {
|
|
442
|
+
cleanup(panel);
|
|
443
|
+
return fail(`Expected direction "down", got "${chevron.getAttribute('direction')}"`);
|
|
444
|
+
}
|
|
445
|
+
cleanup(panel);
|
|
446
|
+
pass('Down-pointing chevron when open');
|
|
447
|
+
},
|
|
448
|
+
|
|
449
|
+
/*
|
|
450
|
+
SidePanelSpacer
|
|
451
|
+
*/
|
|
452
|
+
'should render spacer': async ({pass, fail}) => {
|
|
453
|
+
const panel = document.createElement('k-side-panel');
|
|
454
|
+
const spacer = document.createElement('k-side-panel-spacer');
|
|
455
|
+
panel.appendChild(spacer);
|
|
456
|
+
document.body.appendChild(panel);
|
|
457
|
+
await spacer.updateComplete;
|
|
458
|
+
const spacerDiv = spacer.shadowRoot.querySelector('.spacer');
|
|
459
|
+
if(!spacerDiv) {
|
|
460
|
+
cleanup(panel);
|
|
461
|
+
return fail('Spacer should render');
|
|
462
|
+
}
|
|
463
|
+
cleanup(panel);
|
|
464
|
+
pass('Spacer renders correctly');
|
|
465
|
+
}
|
|
466
|
+
};
|
|
@@ -53,10 +53,10 @@ export default {
|
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const icon = control.shadowRoot.querySelector('k-icon[name="
|
|
57
|
-
if(!icon){
|
|
56
|
+
const icon = control.shadowRoot.querySelector('k-icon[name="chevron-line"]');
|
|
57
|
+
if(!icon || icon.getAttribute('direction') !== 'left'){
|
|
58
58
|
cleanup(container);
|
|
59
|
-
fail('FirstPage should have
|
|
59
|
+
fail('FirstPage should have chevron-line icon with direction="left"');
|
|
60
60
|
return;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -133,10 +133,10 @@ export default {
|
|
|
133
133
|
return;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
const icon = control.shadowRoot.querySelector('k-icon[name="
|
|
136
|
+
const icon = control.shadowRoot.querySelector('k-icon[name="chevron-line"]');
|
|
137
137
|
if(!icon){
|
|
138
138
|
cleanup(container);
|
|
139
|
-
fail('LastPage should have
|
|
139
|
+
fail('LastPage should have chevron-line icon');
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
142
142
|
|
|
@@ -215,10 +215,10 @@ export default {
|
|
|
215
215
|
return;
|
|
216
216
|
}
|
|
217
217
|
|
|
218
|
-
const icon = control.shadowRoot.querySelector('k-icon[name="chevron
|
|
218
|
+
const icon = control.shadowRoot.querySelector('k-icon[name="chevron"]');
|
|
219
219
|
if(!icon){
|
|
220
220
|
cleanup(container);
|
|
221
|
-
fail('NextPage should have chevron
|
|
221
|
+
fail('NextPage should have chevron icon');
|
|
222
222
|
return;
|
|
223
223
|
}
|
|
224
224
|
|
|
@@ -278,10 +278,10 @@ export default {
|
|
|
278
278
|
return;
|
|
279
279
|
}
|
|
280
280
|
|
|
281
|
-
const icon = control.shadowRoot.querySelector('k-icon[name="chevron
|
|
282
|
-
if(!icon){
|
|
281
|
+
const icon = control.shadowRoot.querySelector('k-icon[name="chevron"]');
|
|
282
|
+
if(!icon || icon.getAttribute('direction') !== 'left'){
|
|
283
283
|
cleanup(container);
|
|
284
|
-
fail('PrevPage should have chevron
|
|
284
|
+
fail('PrevPage should have chevron icon with direction="left"');
|
|
285
285
|
return;
|
|
286
286
|
}
|
|
287
287
|
|
package/dist/kempo-vars.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/* Define Kempo Vars Here */
|
package/docs/init-1.js
DELETED
package/docs/init.js
DELETED
package/docs/src/kempo-vars.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/* Define Kempo Vars Here */
|
package/icons/arrow-back.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="m313-440 224 224-57 56-320-320 320-320 57 56-224 224h487v80H313Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M480-200 240-440l56-56 184 183 184-183 56 56-240 240Zm0-240L240-680l56-56 184 183 184-183 56 56-240 240Z"/></svg>
|
package/icons/arrow-down.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M440-800v487L216-537l-56 57 320 320 320-320-56-57-224 224v-487h-80Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="m296-224-56-56 240-240 240 240-56 56-184-183-184 183Zm0-240-56-56 240-240 240 240-56 56-184-183-184 183Z"/></svg>
|
package/icons/arrow-up.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M440-160v-487L216-423l-56-57 320-320 320 320-56 57-224-224v487h-80Z"/></svg>
|
package/icons/chevron-left.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path fill="currentColor" d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z"/></svg>
|
package/src/kempo-vars.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/* Define Kempo Vars Here */
|
|
File without changes
|
|
File without changes
|