@genesislcap/foundation-zero 14.240.0 → 14.241.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/dist/custom-elements.json +27 -2564
- package/package.json +14 -32
- package/dist/dts/accordion/accordion.stories.d.ts +0 -5
- package/dist/dts/accordion/accordion.stories.d.ts.map +0 -1
- package/dist/dts/actions-menu/actions-menu.stories.d.ts +0 -6
- package/dist/dts/actions-menu/actions-menu.stories.d.ts.map +0 -1
- package/dist/dts/anchor/anchor.stories.d.ts +0 -5
- package/dist/dts/anchor/anchor.stories.d.ts.map +0 -1
- package/dist/dts/anchored-region/anchored-region.stories.d.ts +0 -5
- package/dist/dts/anchored-region/anchored-region.stories.d.ts.map +0 -1
- package/dist/dts/avatar/avatar.stories.d.ts +0 -5
- package/dist/dts/avatar/avatar.stories.d.ts.map +0 -1
- package/dist/dts/badge/badge.stories.d.ts +0 -5
- package/dist/dts/badge/badge.stories.d.ts.map +0 -1
- package/dist/dts/banner/banner.stories.d.ts +0 -5
- package/dist/dts/banner/banner.stories.d.ts.map +0 -1
- package/dist/dts/breadcrumb/breadcrumb.stories.d.ts +0 -5
- package/dist/dts/breadcrumb/breadcrumb.stories.d.ts.map +0 -1
- package/dist/dts/button/button.stories.d.ts +0 -6
- package/dist/dts/button/button.stories.d.ts.map +0 -1
- package/dist/dts/calendar/calendar.stories.d.ts +0 -5
- package/dist/dts/calendar/calendar.stories.d.ts.map +0 -1
- package/dist/dts/card/card.stories.d.ts +0 -5
- package/dist/dts/card/card.stories.d.ts.map +0 -1
- package/dist/dts/categorized-multiselect/categorized-multiselect.stories.d.ts +0 -5
- package/dist/dts/categorized-multiselect/categorized-multiselect.stories.d.ts.map +0 -1
- package/dist/dts/checkbox/checkbox.stories.d.ts +0 -5
- package/dist/dts/checkbox/checkbox.stories.d.ts.map +0 -1
- package/dist/dts/combobox/combobox.stories.d.ts +0 -5
- package/dist/dts/combobox/combobox.stories.d.ts.map +0 -1
- package/dist/dts/connection-indicator/connection-indicator.stories.d.ts +0 -5
- package/dist/dts/connection-indicator/connection-indicator.stories.d.ts.map +0 -1
- package/dist/dts/data-grid/data-grid.stories.d.ts +0 -5
- package/dist/dts/data-grid/data-grid.stories.d.ts.map +0 -1
- package/dist/dts/date-picker/date-picker.stories.d.ts +0 -5
- package/dist/dts/date-picker/date-picker.stories.d.ts.map +0 -1
- package/dist/dts/dialog/dialog.stories.d.ts +0 -5
- package/dist/dts/dialog/dialog.stories.d.ts.map +0 -1
- package/dist/dts/disclosure/disclosure.stories.d.ts +0 -5
- package/dist/dts/disclosure/disclosure.stories.d.ts.map +0 -1
- package/dist/dts/divider/divider.stories.d.ts +0 -5
- package/dist/dts/divider/divider.stories.d.ts.map +0 -1
- package/dist/dts/dropdown-menu/dropdown-menu.stories.d.ts +0 -5
- package/dist/dts/dropdown-menu/dropdown-menu.stories.d.ts.map +0 -1
- package/dist/dts/error-banner/error-banner.stories.d.ts +0 -5
- package/dist/dts/error-banner/error-banner.stories.d.ts.map +0 -1
- package/dist/dts/error-dialog/error-dialog.stories.d.ts +0 -5
- package/dist/dts/error-dialog/error-dialog.stories.d.ts.map +0 -1
- package/dist/dts/file-upload/file-upload.stories.d.ts +0 -5
- package/dist/dts/file-upload/file-upload.stories.d.ts.map +0 -1
- package/dist/dts/filter/filter.stories.d.ts +0 -5
- package/dist/dts/filter/filter.stories.d.ts.map +0 -1
- package/dist/dts/filter-bar/filter-bar.stories.d.ts +0 -5
- package/dist/dts/filter-bar/filter-bar.stories.d.ts.map +0 -1
- package/dist/dts/flex-layout/flex-layout.stories.d.ts +0 -5
- package/dist/dts/flex-layout/flex-layout.stories.d.ts.map +0 -1
- package/dist/dts/flipper/flipper.stories.d.ts +0 -5
- package/dist/dts/flipper/flipper.stories.d.ts.map +0 -1
- package/dist/dts/flyout/flyout.stories.d.ts +0 -5
- package/dist/dts/flyout/flyout.stories.d.ts.map +0 -1
- package/dist/dts/grid-layout/grid-layout.stories.d.ts +0 -5
- package/dist/dts/grid-layout/grid-layout.stories.d.ts.map +0 -1
- package/dist/dts/horizontal-scroll/horizontal-scroll.stories.d.ts +0 -5
- package/dist/dts/horizontal-scroll/horizontal-scroll.stories.d.ts.map +0 -1
- package/dist/dts/icon/icon.stories.d.ts +0 -7
- package/dist/dts/icon/icon.stories.d.ts.map +0 -1
- package/dist/dts/listbox/listbox.stories.d.ts +0 -5
- package/dist/dts/listbox/listbox.stories.d.ts.map +0 -1
- package/dist/dts/menu/menu.stories.d.ts +0 -5
- package/dist/dts/menu/menu.stories.d.ts.map +0 -1
- package/dist/dts/modal/modal.stories.d.ts +0 -5
- package/dist/dts/modal/modal.stories.d.ts.map +0 -1
- package/dist/dts/multiselect/multiselect.stories.d.ts +0 -12
- package/dist/dts/multiselect/multiselect.stories.d.ts.map +0 -1
- package/dist/dts/number-field/number-field.stories.d.ts +0 -5
- package/dist/dts/number-field/number-field.stories.d.ts.map +0 -1
- package/dist/dts/progress/progress.stories.d.ts +0 -6
- package/dist/dts/progress/progress.stories.d.ts.map +0 -1
- package/dist/dts/progress-ring/progress-ring.stories.d.ts +0 -6
- package/dist/dts/progress-ring/progress-ring.stories.d.ts.map +0 -1
- package/dist/dts/radio/radio.stories.d.ts +0 -5
- package/dist/dts/radio/radio.stories.d.ts.map +0 -1
- package/dist/dts/radio-group/radio-group.stories.d.ts +0 -5
- package/dist/dts/radio-group/radio-group.stories.d.ts.map +0 -1
- package/dist/dts/search-bar/search-bar.stories.d.ts +0 -5
- package/dist/dts/search-bar/search-bar.stories.d.ts.map +0 -1
- package/dist/dts/segmented-control/segmented-control.stories.d.ts +0 -5
- package/dist/dts/segmented-control/segmented-control.stories.d.ts.map +0 -1
- package/dist/dts/select/select.stories.d.ts +0 -5
- package/dist/dts/select/select.stories.d.ts.map +0 -1
- package/dist/dts/skeleton/skeleton.stories.d.ts +0 -5
- package/dist/dts/skeleton/skeleton.stories.d.ts.map +0 -1
- package/dist/dts/slider/slider.stories.d.ts +0 -6
- package/dist/dts/slider/slider.stories.d.ts.map +0 -1
- package/dist/dts/snackbar/snackbar.stories.d.ts +0 -5
- package/dist/dts/snackbar/snackbar.stories.d.ts.map +0 -1
- package/dist/dts/stacking-icons/stacking-icons.stories.d.ts +0 -5
- package/dist/dts/stacking-icons/stacking-icons.stories.d.ts.map +0 -1
- package/dist/dts/stepper/stepper.stories.d.ts +0 -5
- package/dist/dts/stepper/stepper.stories.d.ts.map +0 -1
- package/dist/dts/switch/switch.stories.d.ts +0 -5
- package/dist/dts/switch/switch.stories.d.ts.map +0 -1
- package/dist/dts/tabs/tabs.stories.d.ts +0 -5
- package/dist/dts/tabs/tabs.stories.d.ts.map +0 -1
- package/dist/dts/text-area/text-area.stories.d.ts +0 -5
- package/dist/dts/text-area/text-area.stories.d.ts.map +0 -1
- package/dist/dts/text-field/text-field.stories.d.ts +0 -5
- package/dist/dts/text-field/text-field.stories.d.ts.map +0 -1
- package/dist/dts/toast/toast.stories.d.ts +0 -5
- package/dist/dts/toast/toast.stories.d.ts.map +0 -1
- package/dist/dts/toolbar/toolbar.stories.d.ts +0 -5
- package/dist/dts/toolbar/toolbar.stories.d.ts.map +0 -1
- package/dist/dts/tooltip/tooltip.stories.d.ts +0 -5
- package/dist/dts/tooltip/tooltip.stories.d.ts.map +0 -1
- package/dist/dts/tree-view/tree-view.stories.d.ts +0 -5
- package/dist/dts/tree-view/tree-view.stories.d.ts.map +0 -1
- package/dist/dts/url-input/url-input.stories.d.ts +0 -5
- package/dist/dts/url-input/url-input.stories.d.ts.map +0 -1
- package/dist/esm/accordion/accordion.stories.js +0 -28
- package/dist/esm/actions-menu/actions-menu.stories.js +0 -56
- package/dist/esm/anchor/anchor.stories.js +0 -23
- package/dist/esm/anchored-region/anchored-region.stories.js +0 -29
- package/dist/esm/avatar/avatar.stories.js +0 -30
- package/dist/esm/badge/badge.stories.js +0 -25
- package/dist/esm/banner/banner.stories.js +0 -73
- package/dist/esm/breadcrumb/breadcrumb.stories.js +0 -19
- package/dist/esm/button/button.stories.js +0 -38
- package/dist/esm/calendar/calendar.stories.js +0 -32
- package/dist/esm/card/card.stories.js +0 -23
- package/dist/esm/categorized-multiselect/categorized-multiselect.stories.js +0 -87
- package/dist/esm/checkbox/checkbox.stories.js +0 -26
- package/dist/esm/combobox/combobox.stories.js +0 -53
- package/dist/esm/connection-indicator/connection-indicator.stories.js +0 -14
- package/dist/esm/data-grid/data-grid.stories.js +0 -46
- package/dist/esm/date-picker/date-picker.stories.js +0 -27
- package/dist/esm/dialog/dialog.stories.js +0 -86
- package/dist/esm/disclosure/disclosure.stories.js +0 -31
- package/dist/esm/divider/divider.stories.js +0 -33
- package/dist/esm/dropdown-menu/dropdown-menu.stories.js +0 -68
- package/dist/esm/error-banner/error-banner.stories.js +0 -70
- package/dist/esm/error-dialog/error-dialog.stories.js +0 -63
- package/dist/esm/file-upload/file-upload.stories.js +0 -13
- package/dist/esm/filter/filter.stories.js +0 -17
- package/dist/esm/filter-bar/filter-bar.stories.js +0 -14
- package/dist/esm/flex-layout/flex-layout.stories.js +0 -81
- package/dist/esm/flipper/flipper.stories.js +0 -20
- package/dist/esm/flyout/flyout.stories.js +0 -59
- package/dist/esm/grid-layout/grid-layout.stories.js +0 -251
- package/dist/esm/horizontal-scroll/horizontal-scroll.stories.js +0 -22
- package/dist/esm/icon/icon.stories.js +0 -79
- package/dist/esm/listbox/listbox.stories.js +0 -15
- package/dist/esm/menu/menu.stories.js +0 -26
- package/dist/esm/modal/modal.stories.js +0 -39
- package/dist/esm/multiselect/multiselect.stories.js +0 -207
- package/dist/esm/number-field/number-field.stories.js +0 -26
- package/dist/esm/progress/progress.stories.js +0 -38
- package/dist/esm/progress-ring/progress-ring.stories.js +0 -23
- package/dist/esm/radio/radio.stories.js +0 -11
- package/dist/esm/radio-group/radio-group.stories.js +0 -16
- package/dist/esm/search-bar/search-bar.stories.js +0 -45
- package/dist/esm/segmented-control/segmented-control.stories.js +0 -26
- package/dist/esm/select/select.stories.js +0 -17
- package/dist/esm/skeleton/skeleton.stories.js +0 -35
- package/dist/esm/slider/slider.stories.js +0 -28
- package/dist/esm/snackbar/snackbar.stories.js +0 -95
- package/dist/esm/stacking-icons/stacking-icons.stories.js +0 -53
- package/dist/esm/stepper/stepper.stories.js +0 -30
- package/dist/esm/switch/switch.stories.js +0 -11
- package/dist/esm/tabs/tabs.stories.js +0 -51
- package/dist/esm/text-area/text-area.stories.js +0 -15
- package/dist/esm/text-field/text-field.stories.js +0 -20
- package/dist/esm/toast/toast.stories.js +0 -30
- package/dist/esm/toolbar/toolbar.stories.js +0 -21
- package/dist/esm/tooltip/tooltip.stories.js +0 -14
- package/dist/esm/tree-view/tree-view.stories.js +0 -20
- package/dist/esm/url-input/url-input.stories.js +0 -12
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Combobox',
|
|
4
|
-
component: 'zero-combobox',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
const wrapperStyle = 'height: 500px; width: 100%; display: flex; justify-content: center; align-items: center;';
|
|
8
|
-
const renderOption = (option) => html `
|
|
9
|
-
<zero-option value="${option.value}">${option.text}</zero-option>
|
|
10
|
-
`;
|
|
11
|
-
const OptionsMapperTemplate = {
|
|
12
|
-
render: ({ options, position }) => html `
|
|
13
|
-
<div style="${wrapperStyle}">
|
|
14
|
-
<div style="display: flex">
|
|
15
|
-
Combobox
|
|
16
|
-
<zero-combobox position="${position}">${options.map(renderOption)}</zero-combobox>
|
|
17
|
-
</div>
|
|
18
|
-
<div style="display: flex">
|
|
19
|
-
Case-Sensitive Combobox
|
|
20
|
-
<zero-combobox position="${position}" case-sensitive>
|
|
21
|
-
${options.map(renderOption)}
|
|
22
|
-
</zero-combobox>
|
|
23
|
-
</div>
|
|
24
|
-
<div style="display: flex">
|
|
25
|
-
Combobox with Ignore Input Click
|
|
26
|
-
<zero-combobox position="${position}" ignore-input-click>
|
|
27
|
-
${options.map(renderOption)}
|
|
28
|
-
</zero-combobox>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
`,
|
|
32
|
-
};
|
|
33
|
-
const optionsData = [
|
|
34
|
-
{ text: 'Zero Option 1', value: 1 },
|
|
35
|
-
{ text: 'Zero Option 2', value: 2 },
|
|
36
|
-
{ text: 'Zero Option 3', value: 3 },
|
|
37
|
-
{ text: 'Zero Option 4', value: 4 },
|
|
38
|
-
{ text: 'Zero Option 5', value: 5 },
|
|
39
|
-
{ text: 'ABC', value: 'ABC' },
|
|
40
|
-
{ text: 'GBp', value: 'GBp' },
|
|
41
|
-
{ text: 'GBP', value: 'GBP' },
|
|
42
|
-
{ text: 'GbP', value: 'GbP' },
|
|
43
|
-
{ text: 'USD', value: 'USD' },
|
|
44
|
-
];
|
|
45
|
-
export const Primary = Object.assign(Object.assign({}, OptionsMapperTemplate), { argTypes: {
|
|
46
|
-
position: {
|
|
47
|
-
control: 'select',
|
|
48
|
-
options: ['above', 'below'],
|
|
49
|
-
},
|
|
50
|
-
}, args: {
|
|
51
|
-
options: optionsData,
|
|
52
|
-
position: 'below',
|
|
53
|
-
} });
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Connection Indicator',
|
|
4
|
-
component: 'zero-connection-indicator',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
export const Primary = {
|
|
8
|
-
args: {
|
|
9
|
-
showLabel: true,
|
|
10
|
-
},
|
|
11
|
-
render: ({ showLabel }) => html `
|
|
12
|
-
<zero-connection-indicator show-label="${showLabel}"></zero-connection-indicator>
|
|
13
|
-
`,
|
|
14
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Data Grid',
|
|
4
|
-
component: 'zero-data-grid',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
const loadData = (rows) => {
|
|
8
|
-
const zeroDataGrid = document.querySelector('zero-data-grid');
|
|
9
|
-
zeroDataGrid.rowsData = rows;
|
|
10
|
-
};
|
|
11
|
-
const clearData = () => {
|
|
12
|
-
const zeroDataGrid = document.querySelector('zero-data-grid');
|
|
13
|
-
zeroDataGrid.rowsData = [];
|
|
14
|
-
};
|
|
15
|
-
const rowsData = [
|
|
16
|
-
{ make: 'Toyota', model: 'Celica', price: 35000, creationDate: 1617624494293, isCool: true },
|
|
17
|
-
{ make: 'Ford', model: 'Mondeo', price: 32000, creationDate: 1617624494295, isCool: false },
|
|
18
|
-
{ make: 'Porsche', model: 'Boxter', price: 72000, creationDate: 1619637452397, isCool: false },
|
|
19
|
-
{ make: 'Audi', model: 'A6', price: 80000, creationDate: 1617624494293, isCool: true },
|
|
20
|
-
{ make: 'Renault', model: 'Clio', price: 20000, creationDate: 1617624494295, isCool: true },
|
|
21
|
-
{ make: 'Chevrolet', model: 'Camaro', price: 40000, creationDate: 1619637452397, isCool: false },
|
|
22
|
-
{ make: 'BMW', model: 'Z8', price: 90000, creationDate: 1617624494293, isCool: false },
|
|
23
|
-
{ make: 'Suzuki', model: 'Jimny', price: 23000, creationDate: 1617624494295, isCool: false },
|
|
24
|
-
{ make: 'Toyota', model: 'Celica', price: 35000, creationDate: 1619637452397, isCool: true },
|
|
25
|
-
{ make: 'Ford', model: 'Mondeo', price: 32000, creationDate: 1617624494293, isCool: false },
|
|
26
|
-
{ make: 'Porsche', model: 'Boxter', price: 72000, creationDate: 1617624494295, isCool: true },
|
|
27
|
-
{ make: 'Audi', model: 'A6', price: 80000, creationDate: 1619637452397, isCool: false },
|
|
28
|
-
{ make: 'Renault', model: 'Clio', price: 20000, creationDate: 1617624494293, isCool: false },
|
|
29
|
-
{ make: 'Chevrolet', model: 'Camaro', price: 40000, creationDate: 1617624494295, isCool: true },
|
|
30
|
-
{ make: 'BMW', model: 'Z8', price: 90000, creationDate: 1619637452397, isCool: true },
|
|
31
|
-
{ make: 'Suzuki', model: 'Jimny', price: 23000, creationDate: 1617624494293, isCool: true },
|
|
32
|
-
];
|
|
33
|
-
export const Primary = {
|
|
34
|
-
args: {
|
|
35
|
-
dataGridRowsData: rowsData,
|
|
36
|
-
},
|
|
37
|
-
render: ({ dataGridRowsData }) => html `
|
|
38
|
-
<div>
|
|
39
|
-
<div>
|
|
40
|
-
<zero-button @click="${() => loadData(dataGridRowsData)}">Load Data</zero-button>
|
|
41
|
-
<zero-button @click="${() => clearData()}">Clear Data</zero-button>
|
|
42
|
-
</div>
|
|
43
|
-
<zero-data-grid></zero-data-grid>
|
|
44
|
-
</div>
|
|
45
|
-
`,
|
|
46
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Date Picker',
|
|
4
|
-
component: 'zero-date-picker',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
const wrapperStyle = 'display: flex; flex-direction: row; justify-content: center; width: 100%; height: 500px;';
|
|
8
|
-
export const Primary = {
|
|
9
|
-
args: {
|
|
10
|
-
firstDataPickerValue: '01-01-2021',
|
|
11
|
-
secondDatePickerFormat: 'MMMM/DD/YY',
|
|
12
|
-
thirdDatePickerFormat: 'MMM/ddd/YYYY',
|
|
13
|
-
thirdDatePickerValue: '01-01-2023',
|
|
14
|
-
},
|
|
15
|
-
render: ({ firstDataPickerValue, secondDatePickerFormat, thirdDatePickerFormat, thirdDatePickerValue, }) => html `
|
|
16
|
-
<div style="${wrapperStyle}">
|
|
17
|
-
<div>
|
|
18
|
-
<zero-date-picker value="${firstDataPickerValue}"></zero-date-picker>
|
|
19
|
-
<zero-date-picker format="${secondDatePickerFormat}"></zero-date-picker>
|
|
20
|
-
<zero-date-picker
|
|
21
|
-
format="${thirdDatePickerFormat}"
|
|
22
|
-
value="${thirdDatePickerValue}"
|
|
23
|
-
></zero-date-picker>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
`,
|
|
27
|
-
};
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Dialog',
|
|
4
|
-
component: 'zero-dialog',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
const showDialog = (e) => {
|
|
8
|
-
const dialog = document.querySelector('zero-dialog');
|
|
9
|
-
dialog.show();
|
|
10
|
-
};
|
|
11
|
-
const showEmptyDialog = (e) => {
|
|
12
|
-
const dialog = document.getElementById('empty-dialog');
|
|
13
|
-
dialog.show();
|
|
14
|
-
};
|
|
15
|
-
const closeDialog = (e) => {
|
|
16
|
-
const dialog = document.querySelector('zero-dialog');
|
|
17
|
-
dialog.close();
|
|
18
|
-
};
|
|
19
|
-
const dialogNotifyId = 'dialogNotify';
|
|
20
|
-
const showDialogNotify = (notifyText, dialogType) => {
|
|
21
|
-
const dialogNotify = document.createElement('zero-dialog');
|
|
22
|
-
dialogNotify.setAttribute('id', dialogNotifyId);
|
|
23
|
-
dialogNotify.type = dialogType;
|
|
24
|
-
dialogNotify.notification = {
|
|
25
|
-
title: 'Notify Title',
|
|
26
|
-
body: `${notifyText} ID - notify - ${Math.random()}`,
|
|
27
|
-
config: {
|
|
28
|
-
dialog: {
|
|
29
|
-
confirmingActions: [
|
|
30
|
-
{
|
|
31
|
-
label: 'Action',
|
|
32
|
-
action: () => {
|
|
33
|
-
alert('Action in progress');
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
],
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
const container = document.getElementById('dialog-container');
|
|
41
|
-
container.appendChild(dialogNotify);
|
|
42
|
-
dialogNotify.show();
|
|
43
|
-
};
|
|
44
|
-
export const Primary = {
|
|
45
|
-
argTypes: {
|
|
46
|
-
dialogType: {
|
|
47
|
-
control: 'select',
|
|
48
|
-
options: ['default', 'error', 'success'],
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
args: {
|
|
52
|
-
notifyText: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet',
|
|
53
|
-
dialogMaxWidth: '557px',
|
|
54
|
-
dialogTitle: 'Dialog title',
|
|
55
|
-
dialogInitialText: 'Some text in a Zero Dialog',
|
|
56
|
-
dialogMainText: `Lorem ipsum dolor sit amet consectetur adipisicing elit. Quis similique iste ab sed
|
|
57
|
-
voluptatem ut suscipit tenetur distinctio? Quo est debitis pariatur qui quisquam repudiandae
|
|
58
|
-
at atque et quibusdam rerum, reprehenderit sed laborum officiis distinctio dolorum
|
|
59
|
-
temporibus aperiam dolor consequatur perferendis aspernatur fugit repellendus asperiores,
|
|
60
|
-
voluptas illo? Voluptatum, atque quidem?`,
|
|
61
|
-
dialogCloseButtonText: 'Close this dialog',
|
|
62
|
-
dialogType: 'default',
|
|
63
|
-
},
|
|
64
|
-
render: ({ notifyText, dialogMaxWidth, dialogTitle, dialogInitialText, dialogMainText, dialogCloseButtonText, dialogType, }) => {
|
|
65
|
-
var _a;
|
|
66
|
-
(_a = document.getElementById(dialogNotifyId)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
67
|
-
return html `
|
|
68
|
-
<zero-button @click="${showDialog}">Show Zero Dialog</zero-button>
|
|
69
|
-
<zero-button @click="${showEmptyDialog}">Show Empty Dialog</zero-button>
|
|
70
|
-
<zero-button @click="${() => showDialogNotify(notifyText, dialogType)}">
|
|
71
|
-
Show Zero Dialog - Notification Structure ${dialogType}
|
|
72
|
-
</zero-button>
|
|
73
|
-
<div id="dialog-container"></div>
|
|
74
|
-
<zero-dialog style="--dialog-max-width: ${dialogMaxWidth};" type=${dialogType}>
|
|
75
|
-
<h5 slot="top">${dialogTitle}</h5>
|
|
76
|
-
<p>${dialogInitialText}</p>
|
|
77
|
-
<p>${dialogMainText}</p>
|
|
78
|
-
<zero-divider slot="bottom"></zero-divider>
|
|
79
|
-
<zero-button appearance="primary-gradient" slot="bottom" @click="${closeDialog}">
|
|
80
|
-
${dialogCloseButtonText}
|
|
81
|
-
</zero-button>
|
|
82
|
-
</zero-dialog>
|
|
83
|
-
<zero-dialog id="empty-dialog"></zero-dialog>
|
|
84
|
-
`;
|
|
85
|
-
},
|
|
86
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
import { FastAppearanceValues } from '../_common/colors';
|
|
3
|
-
const meta = {
|
|
4
|
-
title: 'Disclosure',
|
|
5
|
-
component: 'zero-disclosure',
|
|
6
|
-
};
|
|
7
|
-
export default meta;
|
|
8
|
-
export const Primary = {
|
|
9
|
-
argTypes: {
|
|
10
|
-
fastAppearance: {
|
|
11
|
-
control: 'select',
|
|
12
|
-
options: FastAppearanceValues,
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
args: {
|
|
16
|
-
disclosureTitle: 'Open Disclosure',
|
|
17
|
-
disclosureText: `Created by writer Gardner Fox and artist Harry Lampert, the original Flashfirst appeared
|
|
18
|
-
in Flash Comics #1 (cover date January 1940/release monthNovember 1939). Nicknamed the
|
|
19
|
-
"Scarlet Speedster", all incarnations of theFlash possess "super speed", which includes
|
|
20
|
-
the ability to run, move, andthink extremely fast, use superhuman reflexes, and seemingly
|
|
21
|
-
violatecertain laws of physics.`,
|
|
22
|
-
disclosureEndSlot: '⚡️',
|
|
23
|
-
fastAppearance: 'lightweight',
|
|
24
|
-
},
|
|
25
|
-
render: ({ fastAppearance, disclosureTitle, disclosureText, disclosureEndSlot }) => html `
|
|
26
|
-
<zero-disclosure appearance="${fastAppearance}" title="${disclosureTitle}">
|
|
27
|
-
<span slot="end">${disclosureEndSlot}</span>
|
|
28
|
-
<div>${disclosureText}</div>
|
|
29
|
-
</zero-disclosure>
|
|
30
|
-
`,
|
|
31
|
-
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Divider',
|
|
4
|
-
component: 'zero-divider',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
export const Primary = {
|
|
8
|
-
argTypes: {
|
|
9
|
-
orientation: {
|
|
10
|
-
control: 'select',
|
|
11
|
-
options: ['horizontal', 'vertical'],
|
|
12
|
-
},
|
|
13
|
-
role: {
|
|
14
|
-
control: 'select',
|
|
15
|
-
options: ['separator', 'presentation'],
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
args: {
|
|
19
|
-
orientation: 'horizontal',
|
|
20
|
-
role: 'separator',
|
|
21
|
-
},
|
|
22
|
-
render: ({ orientation, role }) => html `
|
|
23
|
-
<div
|
|
24
|
-
style="display: flex; justify-content:center; width: 100%; ${orientation === 'vertical'
|
|
25
|
-
? 'flex-direction: row;'
|
|
26
|
-
: 'flex-direction: column;'}"
|
|
27
|
-
>
|
|
28
|
-
<zero-button style="flex: 1;"></zero-button>
|
|
29
|
-
<zero-divider orientation="${orientation}" role="${role}"></zero-divider>
|
|
30
|
-
<zero-button style="flex: 1;"></zero-button>
|
|
31
|
-
</div>
|
|
32
|
-
`,
|
|
33
|
-
};
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
import { logger } from '../utils/logger';
|
|
3
|
-
const meta = {
|
|
4
|
-
title: 'Dropdown Menu',
|
|
5
|
-
component: 'zero-dropdown-menu',
|
|
6
|
-
};
|
|
7
|
-
export default meta;
|
|
8
|
-
const zeroItems = [
|
|
9
|
-
{
|
|
10
|
-
name: 'Menu item 1',
|
|
11
|
-
callback: () => alert('Menu item 1 clicked'),
|
|
12
|
-
icon: {
|
|
13
|
-
name: 'glasses',
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
name: 'Menu item 2',
|
|
18
|
-
callback: () => alert('Menu item 2 clicked'),
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: 'Menu item 3',
|
|
22
|
-
callback: () => alert('Menu item 3 clicked'),
|
|
23
|
-
submenu: [
|
|
24
|
-
{
|
|
25
|
-
name: 'Menu item 5',
|
|
26
|
-
callback: () => alert('Menu item 5 clicked'),
|
|
27
|
-
icon: {
|
|
28
|
-
name: 'address-card',
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: 'Menu item 6',
|
|
33
|
-
callback: () => alert('Menu item 6 clicked'),
|
|
34
|
-
submenu: [
|
|
35
|
-
{
|
|
36
|
-
name: 'Menu item 7',
|
|
37
|
-
callback: () => alert('Menu item 7 clicked'),
|
|
38
|
-
color: 'red',
|
|
39
|
-
icon: {
|
|
40
|
-
name: 'address-card',
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'Menu item 8',
|
|
45
|
-
callback: () => alert('Menu item 8 clicked'),
|
|
46
|
-
isDisabled: () => true,
|
|
47
|
-
},
|
|
48
|
-
],
|
|
49
|
-
},
|
|
50
|
-
],
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: 'Menu item 4',
|
|
54
|
-
callback: () => logger.debug('Menu item 4 clicked'),
|
|
55
|
-
isDisabled: () => true,
|
|
56
|
-
},
|
|
57
|
-
];
|
|
58
|
-
export const Primary = {
|
|
59
|
-
args: {
|
|
60
|
-
items: zeroItems,
|
|
61
|
-
dropdownOpenerText: 'Dropdown menu',
|
|
62
|
-
},
|
|
63
|
-
render: ({ dropdownOpenerText, items }) => html `
|
|
64
|
-
<div>
|
|
65
|
-
<zero-dropdown-menu name="${dropdownOpenerText}" .items=${items}></zero-dropdown-menu>
|
|
66
|
-
</div>
|
|
67
|
-
`,
|
|
68
|
-
};
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Error Banner',
|
|
4
|
-
component: 'zero-error-banner',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
const showError = (errorText) => {
|
|
8
|
-
var _a;
|
|
9
|
-
let errorBanner = document.querySelector('#js-error-banner');
|
|
10
|
-
if (!errorBanner) {
|
|
11
|
-
errorBanner = document.createElement('zero-error-banner');
|
|
12
|
-
errorBanner.id = 'js-error-banner';
|
|
13
|
-
(_a = document.querySelector('#zero-banner')) === null || _a === void 0 ? void 0 : _a.appendChild(errorBanner);
|
|
14
|
-
}
|
|
15
|
-
errorBanner.error = {
|
|
16
|
-
title: 'Error Title',
|
|
17
|
-
errorDetails: `${errorText} ID - ${Math.random()}`,
|
|
18
|
-
config: {
|
|
19
|
-
banner: {
|
|
20
|
-
confirmingActions: [
|
|
21
|
-
{
|
|
22
|
-
label: 'Action',
|
|
23
|
-
action: () => {
|
|
24
|
-
alert('Action in progress');
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
],
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
const showNotify = (notifyText) => {
|
|
33
|
-
var _a;
|
|
34
|
-
let errorBanner = document.querySelector('#js-error-banner');
|
|
35
|
-
if (!errorBanner) {
|
|
36
|
-
errorBanner = document.createElement('zero-error-banner');
|
|
37
|
-
errorBanner.id = 'js-error-banner';
|
|
38
|
-
(_a = document.querySelector('#zero-banner')) === null || _a === void 0 ? void 0 : _a.appendChild(errorBanner);
|
|
39
|
-
}
|
|
40
|
-
errorBanner.notification = {
|
|
41
|
-
title: 'Notify Title',
|
|
42
|
-
body: `${notifyText} ID - notify - ${Math.random()}`,
|
|
43
|
-
config: {
|
|
44
|
-
banner: {
|
|
45
|
-
confirmingActions: [
|
|
46
|
-
{
|
|
47
|
-
label: 'Action',
|
|
48
|
-
action: () => {
|
|
49
|
-
alert('Action in progress');
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
],
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
export const Primary = {
|
|
58
|
-
args: {
|
|
59
|
-
errorText: 'Lorem ipsum dolor sit amet consectetur adipisicing elit.',
|
|
60
|
-
notifyText: 'Lorem ipsum dolor sit amet consectetur adipisicing elit.',
|
|
61
|
-
},
|
|
62
|
-
render: ({ errorText, notifyText }) => html `
|
|
63
|
-
<div id="zero-banner" style="width: 100%;">
|
|
64
|
-
<zero-button @click="${() => showError(errorText)}">Show Zero Error Banner</zero-button>
|
|
65
|
-
<zero-button @click="${() => showNotify(notifyText)}">
|
|
66
|
-
Show Zero Error Banner - Notification
|
|
67
|
-
</zero-button>
|
|
68
|
-
</div>
|
|
69
|
-
`,
|
|
70
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Error Dialog',
|
|
4
|
-
component: 'zero-error-dialog',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
const showDialog = (errorText) => {
|
|
8
|
-
const dialog = document.createElement('zero-error-dialog');
|
|
9
|
-
const container = document.getElementById('error-dialog-container');
|
|
10
|
-
container.appendChild(dialog);
|
|
11
|
-
dialog.error = {
|
|
12
|
-
title: 'Error Title',
|
|
13
|
-
errorDetails: `${errorText} ID - ${Math.random()}`,
|
|
14
|
-
config: {
|
|
15
|
-
dialog: {
|
|
16
|
-
confirmingActions: [
|
|
17
|
-
{
|
|
18
|
-
label: 'Action',
|
|
19
|
-
action: () => {
|
|
20
|
-
alert('Action in progress');
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
dialog.show();
|
|
28
|
-
};
|
|
29
|
-
const showDialogNotify = (notifyText) => {
|
|
30
|
-
const dialog = document.createElement('zero-error-dialog');
|
|
31
|
-
const container = document.getElementById('error-dialog-container');
|
|
32
|
-
container.appendChild(dialog);
|
|
33
|
-
dialog.notification = {
|
|
34
|
-
title: 'Notify Title',
|
|
35
|
-
body: `${notifyText} ID - notify - ${Math.random()}`,
|
|
36
|
-
config: {
|
|
37
|
-
dialog: {
|
|
38
|
-
confirmingActions: [
|
|
39
|
-
{
|
|
40
|
-
label: 'Action',
|
|
41
|
-
action: () => {
|
|
42
|
-
alert('Action in progress');
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
};
|
|
49
|
-
dialog.show();
|
|
50
|
-
};
|
|
51
|
-
export const Primary = {
|
|
52
|
-
args: {
|
|
53
|
-
errorText: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet',
|
|
54
|
-
notifyText: 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Lorem ipsum dolor sit amet',
|
|
55
|
-
},
|
|
56
|
-
render: ({ errorText, notifyText }) => html `
|
|
57
|
-
<zero-button @click="${() => showDialog(errorText)}">Show Zero Dialog</zero-button>
|
|
58
|
-
<zero-button @click="${() => showDialogNotify(notifyText)}">
|
|
59
|
-
Show Zero Dialog - Notification
|
|
60
|
-
</zero-button>
|
|
61
|
-
<div id="error-dialog-container"></div>
|
|
62
|
-
`,
|
|
63
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'File Upload',
|
|
4
|
-
component: 'zero-file-upload',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
export const Primary = {
|
|
8
|
-
render: () => html `
|
|
9
|
-
<div style="min-height: 300px;">
|
|
10
|
-
<zero-file-upload label="Select Files"></zero-file-upload>
|
|
11
|
-
</div>
|
|
12
|
-
`,
|
|
13
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Filter',
|
|
4
|
-
component: 'zero-filter',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
const wrapperStyle = 'display: flex;min-height:300px;';
|
|
8
|
-
export const Primary = {
|
|
9
|
-
render: () => html `
|
|
10
|
-
<div style="${wrapperStyle}">
|
|
11
|
-
<zero-filter type="text" fieldName="SOME_TEXT_FIELD"></zero-filter>
|
|
12
|
-
<zero-filter type="boolean" fieldName="SOME_BOOLEAN_FIELD"></zero-filter>
|
|
13
|
-
<zero-filter type="date" fieldName="SOME_DATE_FIELD"></zero-filter>
|
|
14
|
-
<zero-filter type="number" fieldName="SOME_NUMERIC_FIELD"></zero-filter>
|
|
15
|
-
</div>
|
|
16
|
-
`,
|
|
17
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Filter Bar',
|
|
4
|
-
component: 'zero-filter-bar',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
export const Primary = {
|
|
8
|
-
render: () => html `
|
|
9
|
-
<zero-filter-bar
|
|
10
|
-
resource="ALL_PROCESSES_STATUS"
|
|
11
|
-
only="PROCESS_PORT, START_TIME, PROCESS_NAME, DATADUMP"
|
|
12
|
-
></zero-filter-bar>
|
|
13
|
-
`,
|
|
14
|
-
};
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Flex Layout',
|
|
4
|
-
component: 'zero-flex-layout',
|
|
5
|
-
parameters: {
|
|
6
|
-
controls: { hideNoControlsWarning: true },
|
|
7
|
-
},
|
|
8
|
-
};
|
|
9
|
-
export default meta;
|
|
10
|
-
const wrapperStyle = 'display: flex; flex-direction: column; flex: 1; padding: 10px; justify-content: space-between; height: 1500px;';
|
|
11
|
-
export const Primary = {
|
|
12
|
-
render: () => html `
|
|
13
|
-
<div style="${wrapperStyle}">
|
|
14
|
-
<zero-card style="height: 200px; width: 100%;">
|
|
15
|
-
<zero-flex-layout class="flex-column flex-wrap spacing-2x justify-end">
|
|
16
|
-
<div style="width: 30%; height: 40%; background-color: red;"></div>
|
|
17
|
-
<div style="width: 30%; height: 50%; background-color: green;"></div>
|
|
18
|
-
</zero-flex-layout>
|
|
19
|
-
</zero-card>
|
|
20
|
-
|
|
21
|
-
<zero-card style="height: 200px; width: 100%;">
|
|
22
|
-
<zero-flex-layout class="flex-row spacing-2x">
|
|
23
|
-
<div style="width: 30%; background-color: red;"></div>
|
|
24
|
-
<div style="width: 70%; background-color: green;"></div>
|
|
25
|
-
</zero-flex-layout>
|
|
26
|
-
</zero-card>
|
|
27
|
-
|
|
28
|
-
<zero-card style="height: 200px; width: 100%;">
|
|
29
|
-
<zero-flex-layout class="flex-row spacing-2x">
|
|
30
|
-
<div style="width: 20%; background-color: red;"></div>
|
|
31
|
-
<div style="width: 60%; background-color: green;"></div>
|
|
32
|
-
<div style="width: 20%; background-color: blue;"></div>
|
|
33
|
-
</zero-flex-layout>
|
|
34
|
-
</zero-card>
|
|
35
|
-
|
|
36
|
-
<zero-card style="height: 200px; width: 100%;">
|
|
37
|
-
<zero-flex-layout class="flex-row spacing-2x">
|
|
38
|
-
<div style="width: 30%; height: 100%; background-color: red;"></div>
|
|
39
|
-
<zero-flex-layout class="flex-column spacing-2x">
|
|
40
|
-
<div style="height: 60%; width: 100%; background-color: blue;"></div>
|
|
41
|
-
<div style="height: 40%; width: 100%; background-color: green;"></div>
|
|
42
|
-
</zero-flex-layout>
|
|
43
|
-
</zero-flex-layout>
|
|
44
|
-
</zero-card>
|
|
45
|
-
|
|
46
|
-
<zero-card style="height: 200px; width: 100%;">
|
|
47
|
-
<zero-flex-layout class="flex-column spacing-2x">
|
|
48
|
-
<div style="height: 100%; width: 100%; background-color: blue;"></div>
|
|
49
|
-
<zero-flex-layout class="flex-row spacing-2x">
|
|
50
|
-
<div style="width: 80%; background-color: green;"></div>
|
|
51
|
-
<div style="width: 20%; background-color: blue;"></div>
|
|
52
|
-
</zero-flex-layout>
|
|
53
|
-
</zero-flex-layout>
|
|
54
|
-
</zero-card>
|
|
55
|
-
|
|
56
|
-
<zero-card style="height: 200px; width: 100%;">
|
|
57
|
-
<zero-flex-layout class="flex-column spacing-2x">
|
|
58
|
-
<div style="height: 20%; width: 100%; background-color: blue;"></div>
|
|
59
|
-
<zero-flex-layout class="flex-row spacing-2x">
|
|
60
|
-
<div style="width: 20%; background-color: green;"></div>
|
|
61
|
-
<div style="width: 80%; background-color: blue;"></div>
|
|
62
|
-
</zero-flex-layout>
|
|
63
|
-
<div style="width: 100%; height: 20%; background-color: yellow;"></div>
|
|
64
|
-
</zero-flex-layout>
|
|
65
|
-
</zero-card>
|
|
66
|
-
|
|
67
|
-
<zero-card style="height: 200px; width: 100%;">
|
|
68
|
-
<zero-flex-layout class="flex-row spacing-2x">
|
|
69
|
-
<div style="background-color: blue; width: 100%; height: 100%;"></div>
|
|
70
|
-
<zero-flex-layout class="flex-column spacing-2x">
|
|
71
|
-
<div style="background-color: green; width: 100%; height: 100%;"></div>
|
|
72
|
-
<zero-flex-layout class="flex-row spacing-2x">
|
|
73
|
-
<div style="flex:3; background-color: yellow;"></div>
|
|
74
|
-
<div style="flex:1; background-color: blue;"></div>
|
|
75
|
-
</zero-flex-layout>
|
|
76
|
-
</zero-flex-layout>
|
|
77
|
-
</zero-flex-layout>
|
|
78
|
-
</zero-card>
|
|
79
|
-
</div>
|
|
80
|
-
`,
|
|
81
|
-
};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-html';
|
|
2
|
-
const meta = {
|
|
3
|
-
title: 'Flipper',
|
|
4
|
-
component: 'zero-flipper',
|
|
5
|
-
};
|
|
6
|
-
export default meta;
|
|
7
|
-
export const Primary = {
|
|
8
|
-
argTypes: {
|
|
9
|
-
direction: {
|
|
10
|
-
control: 'select',
|
|
11
|
-
options: ['previous', 'next'],
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
args: {
|
|
15
|
-
direction: 'next',
|
|
16
|
-
},
|
|
17
|
-
render: ({ direction }) => html `
|
|
18
|
-
<zero-flipper direction="${direction}">Zero Flipper</zero-flipper>
|
|
19
|
-
`,
|
|
20
|
-
};
|