@furystack/shades-common-components 4.0.17 → 5.0.1
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 → esm}/components/animations.js +10 -20
- package/esm/components/animations.js.map +1 -0
- package/{dist → esm}/components/app-bar-link.js +10 -13
- package/esm/components/app-bar-link.js.map +1 -0
- package/{dist → esm}/components/app-bar.js +6 -9
- package/esm/components/app-bar.js.map +1 -0
- package/{dist → esm}/components/avatar.js +6 -9
- package/esm/components/avatar.js.map +1 -0
- package/{dist → esm}/components/button.js +12 -15
- package/esm/components/button.js.map +1 -0
- package/{dist → esm}/components/command-palette/command-palette-input.js +8 -11
- package/esm/components/command-palette/command-palette-input.js.map +1 -0
- package/{dist → esm}/components/command-palette/command-palette-manager.js +10 -13
- package/esm/components/command-palette/command-palette-manager.js.map +1 -0
- package/{dist → esm}/components/command-palette/command-palette-suggestion-list.js +9 -12
- package/esm/components/command-palette/command-palette-suggestion-list.js.map +1 -0
- package/esm/components/command-palette/command-provider.js +2 -0
- package/esm/components/command-palette/index.js +126 -0
- package/esm/components/command-palette/index.js.map +1 -0
- package/esm/components/data-grid/body.js +19 -0
- package/esm/components/data-grid/body.js.map +1 -0
- package/{dist → esm}/components/data-grid/data-grid-row.js +10 -13
- package/esm/components/data-grid/data-grid-row.js.map +1 -0
- package/esm/components/data-grid/data-grid.js +50 -0
- package/esm/components/data-grid/data-grid.js.map +1 -0
- package/{dist → esm}/components/data-grid/footer.js +12 -15
- package/esm/components/data-grid/footer.js.map +1 -0
- package/{dist → esm}/components/data-grid/header.js +29 -32
- package/esm/components/data-grid/header.js.map +1 -0
- package/esm/components/data-grid/index.js +3 -0
- package/{dist → esm}/components/data-grid/index.js.map +1 -1
- package/{dist → esm}/components/data-grid/selection-cell.js +3 -6
- package/esm/components/data-grid/selection-cell.js.map +1 -0
- package/{dist → esm}/components/fab.js +5 -8
- package/esm/components/fab.js.map +1 -0
- package/{dist → esm}/components/form.js +13 -16
- package/esm/components/form.js.map +1 -0
- package/esm/components/grid.js +32 -0
- package/esm/components/grid.js.map +1 -0
- package/esm/components/index.js +21 -0
- package/esm/components/index.js.map +1 -0
- package/{dist → esm}/components/inputs/autocomplete.js +6 -9
- package/esm/components/inputs/autocomplete.js.map +1 -0
- package/esm/components/inputs/index.js +4 -0
- package/esm/components/inputs/index.js.map +1 -0
- package/{dist → esm}/components/inputs/input.js +17 -20
- package/esm/components/inputs/input.js.map +1 -0
- package/{dist → esm}/components/inputs/text-area.js +12 -15
- package/esm/components/inputs/text-area.js.map +1 -0
- package/{dist → esm}/components/loader.js +8 -11
- package/esm/components/loader.js.map +1 -0
- package/{dist → esm}/components/modal.js +3 -6
- package/esm/components/modal.js.map +1 -0
- package/{dist → esm}/components/noty-list.js +22 -26
- package/esm/components/noty-list.js.map +1 -0
- package/{dist → esm}/components/paper.js +7 -10
- package/esm/components/paper.js.map +1 -0
- package/{dist → esm}/components/skeleton.js +6 -9
- package/esm/components/skeleton.js.map +1 -0
- package/{dist → esm}/components/styles.js +2 -5
- package/esm/components/styles.js.map +1 -0
- package/{dist → esm}/components/suggest/index.js +30 -47
- package/esm/components/suggest/index.js.map +1 -0
- package/{dist → esm}/components/suggest/suggest-input.js +5 -8
- package/esm/components/suggest/suggest-input.js.map +1 -0
- package/{dist → esm}/components/suggest/suggest-manager.js +11 -14
- package/esm/components/suggest/suggest-manager.js.map +1 -0
- package/{dist → esm}/components/suggest/suggestion-list.js +9 -12
- package/esm/components/suggest/suggestion-list.js.map +1 -0
- package/esm/components/suggest/suggestion-result.js +2 -0
- package/{dist → esm}/components/tabs.js +12 -15
- package/esm/components/tabs.js.map +1 -0
- package/{dist → esm}/components/wizard/index.js +6 -9
- package/esm/components/wizard/index.js.map +1 -0
- package/esm/index.js +4 -0
- package/esm/index.js.map +1 -0
- package/{dist → esm}/services/click-away-service.js +1 -5
- package/esm/services/click-away-service.js.map +1 -0
- package/{dist → esm}/services/collection-service.js +13 -20
- package/esm/services/collection-service.js.map +1 -0
- package/{dist → esm}/services/default-dark-theme.js +3 -6
- package/esm/services/default-dark-theme.js.map +1 -0
- package/{dist → esm}/services/default-light-theme.js +3 -6
- package/esm/services/default-light-theme.js.map +1 -0
- package/{dist → esm}/services/default-palette.js +1 -4
- package/esm/services/default-palette.js.map +1 -0
- package/{dist → esm}/services/default-variable-theme.js +6 -12
- package/esm/services/default-variable-theme.js.map +1 -0
- package/esm/services/index.js +9 -0
- package/esm/services/index.js.map +1 -0
- package/{dist → esm}/services/noty-service.js +7 -10
- package/esm/services/noty-service.js.map +1 -0
- package/{dist → esm}/services/theme-provider-service.js +8 -12
- package/esm/services/theme-provider-service.js.map +1 -0
- package/esm/utils/index.js +2 -0
- package/esm/utils/index.js.map +1 -0
- package/{dist → esm}/utils/promisify-animation.js +1 -5
- package/esm/utils/promisify-animation.js.map +1 -0
- package/package.json +30 -9
- package/src/components/inputs/input.tsx +0 -1
- package/src/services/collection-service.ts +2 -3
- package/src/utils/promisify-animation.spec.ts +4 -3
- package/types/components/inputs/input.d.ts +0 -1
- package/types/components/inputs/input.d.ts.map +1 -1
- package/types/services/collection-service.d.ts +0 -1
- package/types/services/collection-service.d.ts.map +1 -1
- package/dist/components/animations.js.map +0 -1
- package/dist/components/app-bar-link.js.map +0 -1
- package/dist/components/app-bar.js.map +0 -1
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/button.js.map +0 -1
- package/dist/components/command-palette/command-palette-input.js.map +0 -1
- package/dist/components/command-palette/command-palette-manager.js.map +0 -1
- package/dist/components/command-palette/command-palette-suggestion-list.js.map +0 -1
- package/dist/components/command-palette/command-provider.js +0 -3
- package/dist/components/command-palette/index.js +0 -143
- package/dist/components/command-palette/index.js.map +0 -1
- package/dist/components/data-grid/body.js +0 -22
- package/dist/components/data-grid/body.js.map +0 -1
- package/dist/components/data-grid/data-grid-row.js.map +0 -1
- package/dist/components/data-grid/data-grid.js +0 -53
- package/dist/components/data-grid/data-grid.js.map +0 -1
- package/dist/components/data-grid/footer.js.map +0 -1
- package/dist/components/data-grid/header.js.map +0 -1
- package/dist/components/data-grid/index.js +0 -19
- package/dist/components/data-grid/selection-cell.js.map +0 -1
- package/dist/components/fab.js.map +0 -1
- package/dist/components/form.js.map +0 -1
- package/dist/components/grid.js +0 -35
- package/dist/components/grid.js.map +0 -1
- package/dist/components/index.js +0 -37
- package/dist/components/index.js.map +0 -1
- package/dist/components/inputs/autocomplete.js.map +0 -1
- package/dist/components/inputs/index.js +0 -20
- package/dist/components/inputs/index.js.map +0 -1
- package/dist/components/inputs/input.js.map +0 -1
- package/dist/components/inputs/text-area.js.map +0 -1
- package/dist/components/loader.js.map +0 -1
- package/dist/components/modal.js.map +0 -1
- package/dist/components/noty-list.js.map +0 -1
- package/dist/components/paper.js.map +0 -1
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/styles.js.map +0 -1
- package/dist/components/suggest/index.js.map +0 -1
- package/dist/components/suggest/suggest-input.js.map +0 -1
- package/dist/components/suggest/suggest-manager.js.map +0 -1
- package/dist/components/suggest/suggestion-list.js.map +0 -1
- package/dist/components/suggest/suggestion-result.js +0 -3
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/wizard/index.js.map +0 -1
- package/dist/index.js +0 -20
- package/dist/index.js.map +0 -1
- package/dist/services/click-away-service.js.map +0 -1
- package/dist/services/collection-service.js.map +0 -1
- package/dist/services/default-dark-theme.js.map +0 -1
- package/dist/services/default-light-theme.js.map +0 -1
- package/dist/services/default-palette.js.map +0 -1
- package/dist/services/default-variable-theme.js.map +0 -1
- package/dist/services/index.js +0 -25
- package/dist/services/index.js.map +0 -1
- package/dist/services/noty-service.js.map +0 -1
- package/dist/services/theme-provider-service.js.map +0 -1
- package/dist/utils/index.js +0 -18
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/promisify-animation.js.map +0 -1
- package/dist/utils/promisify-animation.spec.js +0 -41
- package/dist/utils/promisify-animation.spec.js.map +0 -1
- package/tsconfig.json +0 -14
- package/tsconfig.tsbuildinfo +0 -1
- package/types/utils/promisify-animation.spec.d.ts +0 -2
- package/types/utils/promisify-animation.spec.d.ts.map +0 -1
- /package/{dist → esm}/components/command-palette/command-provider.js.map +0 -0
- /package/{dist → esm}/components/suggest/suggestion-result.js.map +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Shade, createComponent } from '@furystack/shades';
|
|
2
|
+
import { Loader } from '../loader';
|
|
3
|
+
import { DataGridRow } from './data-grid-row';
|
|
4
|
+
export const DataGridBody = Shade({
|
|
5
|
+
shadowDomName: 'shade-data-grid-body',
|
|
6
|
+
render: ({ props, element, useObservable }) => {
|
|
7
|
+
element.style.display = 'table-row-group';
|
|
8
|
+
const [data] = useObservable('data', props.service.data);
|
|
9
|
+
const [isLoading] = useObservable('isLoading', props.service.isLoading);
|
|
10
|
+
if (isLoading) {
|
|
11
|
+
return (createComponent("div", { style: { display: 'flex', height: '100%', justifyContent: 'center', alignItems: 'center', width: '100%' } }, props.loaderComponent || createComponent(Loader, { style: { height: '128px', width: '128px' } })));
|
|
12
|
+
}
|
|
13
|
+
if (!data?.entries?.length) {
|
|
14
|
+
return props.emptyComponent || createComponent("div", null, " - No Data - ");
|
|
15
|
+
}
|
|
16
|
+
return (createComponent(createComponent, null, data?.entries?.map((entry) => (createComponent(DataGridRow, { columns: props.columns, entry: entry, service: props.service, rowComponents: props.rowComponents, onRowClick: props.onRowClick, onRowDoubleClick: props.onRowDoubleClick, focusedRowStyle: props.focusedRowStyle, unfocusedRowStyle: props.unfocusedRowStyle, selectedRowStyle: props.selectedRowStyle, unselectedRowStyle: props.unselectedRowStyle })))));
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../../src/components/data-grid/body.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAiB7C,MAAM,CAAC,MAAM,YAAY,GAAiF,KAAK,CAE7G;IACA,aAAa,EAAE,sBAAsB;IACrC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5C,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,iBAAiB,CAAA;QAEzC,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEvE,IAAI,SAAS,EAAE;YACb,OAAO,CACL,yBAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAE3G,KAAK,CAAC,eAAe,IAAI,gBAAC,MAAM,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAI,CAC5E,CACP,CAAA;SACF;QAED,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;YAC1B,OAAO,KAAK,CAAC,cAAc,IAAI,6CAAwB,CAAA;SACxD;QAED,OAAO,CACL,uCACG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,gBAAC,WAAW,IACV,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,GAC/B,CAChB,CAAC,CACD,CACJ,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const shades_1 = require("@furystack/shades");
|
|
5
|
-
const services_1 = require("../../services");
|
|
6
|
-
exports.DataGridRow = (0, shades_1.Shade)({
|
|
1
|
+
import { attachStyles, createComponent, Shade } from '@furystack/shades';
|
|
2
|
+
import { ThemeProviderService } from '../../services';
|
|
3
|
+
export const DataGridRow = Shade({
|
|
7
4
|
shadowDomName: 'shades-data-grid-row',
|
|
8
5
|
render: ({ props, element, useObservable, injector }) => {
|
|
9
6
|
const { entry, rowComponents, columns, service } = props;
|
|
10
|
-
const { theme } = injector.getInstance(
|
|
7
|
+
const { theme } = injector.getInstance(ThemeProviderService);
|
|
11
8
|
const attachSelectedStyles = (selection) => {
|
|
12
9
|
if (selection.includes(entry)) {
|
|
13
10
|
element.classList.add('selected');
|
|
14
|
-
|
|
11
|
+
attachStyles(element, { style: props.selectedRowStyle || { backgroundColor: theme.background.default } });
|
|
15
12
|
element.setAttribute('aria-selected', 'true');
|
|
16
13
|
}
|
|
17
14
|
else {
|
|
18
15
|
element.classList.remove('selected');
|
|
19
|
-
|
|
16
|
+
attachStyles(element, { style: props.unselectedRowStyle || { backgroundColor: 'transparent' } });
|
|
20
17
|
element.setAttribute('aria-selected', 'false');
|
|
21
18
|
}
|
|
22
19
|
};
|
|
@@ -24,7 +21,7 @@ exports.DataGridRow = (0, shades_1.Shade)({
|
|
|
24
21
|
attachSelectedStyles(selection);
|
|
25
22
|
const [focus] = useObservable('focus', service.focusedEntry, (newEntry) => {
|
|
26
23
|
if (newEntry === props.entry) {
|
|
27
|
-
|
|
24
|
+
attachStyles(element, {
|
|
28
25
|
style: props.focusedRowStyle || {
|
|
29
26
|
boxShadow: `0 0 0 1px ${theme.palette.primary.main}`,
|
|
30
27
|
fontWeight: 'bolder',
|
|
@@ -48,7 +45,7 @@ exports.DataGridRow = (0, shades_1.Shade)({
|
|
|
48
45
|
}
|
|
49
46
|
else {
|
|
50
47
|
element.classList.remove('focused');
|
|
51
|
-
|
|
48
|
+
attachStyles(element, {
|
|
52
49
|
style: props.unfocusedRowStyle || {
|
|
53
50
|
boxShadow: 'none',
|
|
54
51
|
fontWeight: 'inherit',
|
|
@@ -67,8 +64,8 @@ exports.DataGridRow = (0, shades_1.Shade)({
|
|
|
67
64
|
element.classList.add('focused');
|
|
68
65
|
}
|
|
69
66
|
element.setAttribute('aria-selected', selection?.includes(entry).toString() || 'false');
|
|
70
|
-
return (
|
|
71
|
-
rowComponents?.default?.(entry, { selection, focus }) ||
|
|
67
|
+
return (createComponent(createComponent, null, columns.map((column) => (createComponent("td", { style: { padding: '0.5em' }, onclick: (ev) => props.onRowClick?.(entry, ev), ondblclick: (ev) => props.onRowDoubleClick?.(entry, ev) }, rowComponents?.[column]?.(entry, { selection, focus }) ||
|
|
68
|
+
rowComponents?.default?.(entry, { selection, focus }) || createComponent("span", null, entry[column]))))));
|
|
72
69
|
},
|
|
73
70
|
});
|
|
74
71
|
//# sourceMappingURL=data-grid-row.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-grid-row.js","sourceRoot":"","sources":["../../../src/components/data-grid/data-grid-row.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createComponent, Shade } from '@furystack/shades';
|
|
2
|
+
import { DataGridHeader } from './header';
|
|
3
|
+
import { DataGridBody } from './body';
|
|
4
|
+
import { DataGridFooter } from './footer';
|
|
5
|
+
import { ClickAwayService, ThemeProviderService } from '../../services';
|
|
6
|
+
export const DataGrid = Shade({
|
|
7
|
+
shadowDomName: 'shade-data-grid',
|
|
8
|
+
constructed: ({ props }) => {
|
|
9
|
+
const listener = (ev) => props.service.handleKeyDown(ev);
|
|
10
|
+
window.addEventListener('keydown', listener);
|
|
11
|
+
return () => window.removeEventListener('keydown', listener);
|
|
12
|
+
},
|
|
13
|
+
render: ({ props, injector, useDisposable, element }) => {
|
|
14
|
+
const tp = injector.getInstance(ThemeProviderService);
|
|
15
|
+
const { theme } = tp;
|
|
16
|
+
useDisposable('clickAway', () => new ClickAwayService(element, () => {
|
|
17
|
+
props.service.hasFocus.setValue(false);
|
|
18
|
+
}));
|
|
19
|
+
const headerStyle = {
|
|
20
|
+
backdropFilter: 'blur(12px) saturate(180%)',
|
|
21
|
+
color: theme.text.secondary,
|
|
22
|
+
height: '38px',
|
|
23
|
+
alignItems: 'center',
|
|
24
|
+
borderRadius: '2px',
|
|
25
|
+
top: '2px',
|
|
26
|
+
position: 'sticky',
|
|
27
|
+
fontVariant: 'all-petite-caps',
|
|
28
|
+
zIndex: '1',
|
|
29
|
+
boxShadow: 'rgba(0, 0, 0, 0.2) 1px 1px 1px 2px',
|
|
30
|
+
...props.styles?.header,
|
|
31
|
+
};
|
|
32
|
+
return (createComponent("div", { className: "shade-grid-wrapper", style: {
|
|
33
|
+
...props.styles?.wrapper,
|
|
34
|
+
width: '100%',
|
|
35
|
+
height: '100%',
|
|
36
|
+
overflow: 'auto',
|
|
37
|
+
zIndex: '1',
|
|
38
|
+
}, onclick: () => {
|
|
39
|
+
props.service.hasFocus.setValue(true);
|
|
40
|
+
}, ariaMultiSelectable: "true" },
|
|
41
|
+
createComponent("table", { style: { width: '100%', maxHeight: 'calc(100% - 4em)', position: 'relative' } },
|
|
42
|
+
createComponent("thead", null,
|
|
43
|
+
createComponent("tr", null, props.columns.map((column) => {
|
|
44
|
+
return (createComponent("th", { style: headerStyle }, props.headerComponents?.[column]?.(column) || props.headerComponents?.default?.(column) || (createComponent(DataGridHeader, { field: column, collectionService: props.service }))));
|
|
45
|
+
}))),
|
|
46
|
+
createComponent(DataGridBody, { columns: props.columns, service: props.service, rowComponents: props.rowComponents, onRowClick: (entry, ev) => props.service.handleRowClick(entry, ev), onRowDoubleClick: (entry) => props.service.handleRowDoubleClick(entry), style: props.styles?.cell, focusedRowStyle: props.focusedRowStyle, selectedRowStyle: props.selectedRowStyle, unfocusedRowStyle: props.unfocusedRowStyle, unselectedRowStyle: props.unselectedRowStyle, emptyComponent: props.emptyComponent, loaderComponent: props.loaderComponent })),
|
|
47
|
+
createComponent(DataGridFooter, { service: props.service })));
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=data-grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-grid.js","sourceRoot":"","sources":["../../../src/components/data-grid/data-grid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const services_1 = require("../../services");
|
|
6
|
-
exports.dataGridItemsPerPage = [10, 20, 25, 50, 100, Infinity];
|
|
7
|
-
exports.DataGridFooter = (0, shades_1.Shade)({
|
|
1
|
+
import { Shade, createComponent } from '@furystack/shades';
|
|
2
|
+
import { ThemeProviderService } from '../../services';
|
|
3
|
+
export const dataGridItemsPerPage = [10, 20, 25, 50, 100, Infinity];
|
|
4
|
+
export const DataGridFooter = Shade({
|
|
8
5
|
shadowDomName: 'shade-data-grid-footer',
|
|
9
6
|
render: ({ props, injector, useObservable }) => {
|
|
10
|
-
const { theme } = injector.getInstance(
|
|
7
|
+
const { theme } = injector.getInstance(ThemeProviderService);
|
|
11
8
|
const [currentData] = useObservable('dataUpdater', props.service.data);
|
|
12
9
|
const [currentQuerySettings] = useObservable('querySettings', props.service.querySettings);
|
|
13
10
|
const top = currentQuerySettings.top || Infinity;
|
|
14
11
|
const skip = currentQuerySettings.skip || 0;
|
|
15
12
|
const currentPage = Math.ceil(skip) / (top || 1);
|
|
16
13
|
const currentEntriesPerPage = top;
|
|
17
|
-
return (
|
|
14
|
+
return (createComponent("div", { className: "pager", style: {
|
|
18
15
|
backdropFilter: 'blur(10px)',
|
|
19
16
|
color: theme.text.secondary,
|
|
20
17
|
position: 'sticky',
|
|
@@ -24,25 +21,25 @@ exports.DataGridFooter = (0, shades_1.Shade)({
|
|
|
24
21
|
padding: '1em',
|
|
25
22
|
alignItems: 'center',
|
|
26
23
|
} },
|
|
27
|
-
currentEntriesPerPage !== Infinity && (
|
|
24
|
+
currentEntriesPerPage !== Infinity && (createComponent("div", null,
|
|
28
25
|
"Goto page",
|
|
29
|
-
|
|
26
|
+
createComponent("select", { style: { margin: '0 1em' }, onchange: (ev) => {
|
|
30
27
|
const value = parseInt(ev.target.value, 10);
|
|
31
28
|
const currentQuery = props.service.querySettings.getValue();
|
|
32
29
|
props.service.querySettings.setValue({ ...currentQuery, skip: (currentQuery.top || 0) * value });
|
|
33
30
|
} }, [
|
|
34
31
|
...new Array(Math.ceil(currentData.count / (props.service.querySettings.getValue().top || Infinity))),
|
|
35
|
-
].map((_val, index) => (
|
|
36
|
-
|
|
32
|
+
].map((_val, index) => (createComponent("option", { value: index.toString(), selected: currentPage === index }, (index + 1).toString())))))),
|
|
33
|
+
createComponent("div", null,
|
|
37
34
|
"Show",
|
|
38
|
-
|
|
35
|
+
createComponent("select", { style: { margin: '0 1em' }, onchange: (ev) => {
|
|
39
36
|
const value = parseInt(ev.currentTarget.value, 10);
|
|
40
37
|
props.service.querySettings.setValue({
|
|
41
38
|
...currentQuerySettings,
|
|
42
39
|
top: value,
|
|
43
40
|
skip: currentPage * value,
|
|
44
41
|
});
|
|
45
|
-
} },
|
|
42
|
+
} }, dataGridItemsPerPage.map((no) => (createComponent("option", { value: no.toString(), selected: no === currentEntriesPerPage }, no.toString())))),
|
|
46
43
|
"items per page")));
|
|
47
44
|
},
|
|
48
45
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/components/data-grid/footer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const utils_1 = require("@furystack/utils");
|
|
9
|
-
const animations_1 = require("../animations");
|
|
10
|
-
exports.OrderButton = (0, shades_1.Shade)({
|
|
1
|
+
import { Shade, createComponent } from '@furystack/shades';
|
|
2
|
+
import { Input } from '../inputs/input';
|
|
3
|
+
import { Form } from '../form';
|
|
4
|
+
import { Button } from '../button';
|
|
5
|
+
import { ObservableValue } from '@furystack/utils';
|
|
6
|
+
import { collapse, expand } from '../animations';
|
|
7
|
+
export const OrderButton = Shade({
|
|
11
8
|
shadowDomName: 'data-grid-order-button',
|
|
12
9
|
render: ({ props, useObservable }) => {
|
|
13
10
|
const [currentQuerySettings, setQuerySettings] = useObservable('currentQuerySettings', props.collectionService.querySettings);
|
|
14
11
|
const currentOrder = Object.keys(currentQuerySettings.order || {})[0];
|
|
15
12
|
const currentOrderDirection = Object.values(currentQuerySettings.order || {})[0];
|
|
16
|
-
return (
|
|
13
|
+
return (createComponent(Button, { title: "Change order", style: {
|
|
17
14
|
padding: '4px',
|
|
18
15
|
margin: '0',
|
|
19
16
|
cursor: 'pointer',
|
|
@@ -32,7 +29,7 @@ exports.OrderButton = (0, shades_1.Shade)({
|
|
|
32
29
|
} }, (currentOrder === props.field && (currentOrderDirection === 'ASC' ? '⬇' : '⬆')) || '↕'));
|
|
33
30
|
},
|
|
34
31
|
});
|
|
35
|
-
const SearchButton =
|
|
32
|
+
const SearchButton = Shade({
|
|
36
33
|
shadowDomName: 'data-grid-search-button',
|
|
37
34
|
render: ({ props, useObservable, element }) => {
|
|
38
35
|
const [queryState] = useObservable('currentFilterState', props.service.querySettings, (currentQueryState) => {
|
|
@@ -44,21 +41,21 @@ const SearchButton = (0, shades_1.Shade)({
|
|
|
44
41
|
: 'none';
|
|
45
42
|
});
|
|
46
43
|
const filterValue = queryState.filter?.[props.fieldName]?.$regex || '';
|
|
47
|
-
return (
|
|
44
|
+
return (createComponent(Button, { type: "button", title: "Filter", style: {
|
|
48
45
|
padding: '4px',
|
|
49
46
|
margin: '0',
|
|
50
47
|
cursor: 'pointer',
|
|
51
48
|
}, onclick: props.onclick }, filterValue ? '🔍' : '🔎'));
|
|
52
49
|
},
|
|
53
50
|
});
|
|
54
|
-
const SearchForm =
|
|
51
|
+
const SearchForm = Shade({
|
|
55
52
|
shadowDomName: 'data-grid-search-form',
|
|
56
53
|
render: ({ props, useObservable, element }) => {
|
|
57
54
|
const [queryState] = useObservable('currentFilterState', props.service.querySettings, (currentQueryState) => {
|
|
58
55
|
const currentValue = currentQueryState.filter?.[props.fieldName]?.$regex || '';
|
|
59
56
|
element.querySelector('input').value = currentValue;
|
|
60
57
|
});
|
|
61
|
-
return (
|
|
58
|
+
return (createComponent(Form, { className: "search-form", style: {
|
|
62
59
|
display: 'flex',
|
|
63
60
|
width: '100%',
|
|
64
61
|
overflow: 'hide',
|
|
@@ -68,30 +65,30 @@ const SearchForm = (0, shades_1.Shade)({
|
|
|
68
65
|
}, validate: (data) => data.searchValue?.length, onSubmit: ({ searchValue }) => {
|
|
69
66
|
props.onSubmit(searchValue);
|
|
70
67
|
} },
|
|
71
|
-
|
|
68
|
+
createComponent(Input, { style: { padding: '0px', paddingBottom: '0', margin: '0' }, placeholder: props.fieldName, autofocus: true, labelTitle: `${props.fieldName}`, name: "searchValue", value: queryState.filter?.[props.fieldName]?.$regex || '', labelProps: {
|
|
72
69
|
style: { padding: '0px 2em' },
|
|
73
70
|
} }),
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
createComponent("div", { style: { display: 'flex', width: '64px', alignItems: 'center', justifyContent: 'center', gap: '8px' } },
|
|
72
|
+
createComponent(Button, { type: "reset", style: { padding: '4px', margin: '0' }, onclick: () => {
|
|
76
73
|
props.onClear();
|
|
77
74
|
} }, "\u274C"),
|
|
78
|
-
|
|
75
|
+
createComponent(Button, { style: { padding: '4px', margin: '0' }, type: "submit" }, "\uD83D\uDD0E"))));
|
|
79
76
|
},
|
|
80
77
|
});
|
|
81
|
-
|
|
78
|
+
export const DataGridHeader = Shade({
|
|
82
79
|
shadowDomName: 'data-grid-header',
|
|
83
80
|
render: ({ props, element, useObservable }) => {
|
|
84
|
-
const [, setIsSearchOpened] = useObservable('isSearchOpened', new
|
|
81
|
+
const [, setIsSearchOpened] = useObservable('isSearchOpened', new ObservableValue(false), (newValue) => {
|
|
85
82
|
const searchForm = element.querySelector('.search-form');
|
|
86
83
|
const headerContent = element.querySelector('.header-content');
|
|
87
84
|
if (!newValue) {
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
collapse(searchForm);
|
|
86
|
+
expand(headerContent);
|
|
90
87
|
}
|
|
91
88
|
else {
|
|
92
89
|
searchForm.style.display = 'flex';
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
expand(searchForm).then(() => searchForm.querySelector('input')?.focus());
|
|
91
|
+
collapse(headerContent);
|
|
95
92
|
}
|
|
96
93
|
});
|
|
97
94
|
const updateSearchValue = (value) => {
|
|
@@ -112,9 +109,9 @@ exports.DataGridHeader = (0, shades_1.Shade)({
|
|
|
112
109
|
}
|
|
113
110
|
setIsSearchOpened(false);
|
|
114
111
|
};
|
|
115
|
-
return (
|
|
116
|
-
|
|
117
|
-
|
|
112
|
+
return (createComponent(createComponent, null,
|
|
113
|
+
createComponent(SearchForm, { onSubmit: updateSearchValue, onClear: updateSearchValue, service: props.collectionService, fieldName: props.field }),
|
|
114
|
+
createComponent("div", { className: "header-content", style: {
|
|
118
115
|
display: 'flex',
|
|
119
116
|
width: '100%',
|
|
120
117
|
height: '48px',
|
|
@@ -123,12 +120,12 @@ exports.DataGridHeader = (0, shades_1.Shade)({
|
|
|
123
120
|
gap: '8px',
|
|
124
121
|
overflow: 'hide',
|
|
125
122
|
} },
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
createComponent("div", { style: { paddingLeft: '0.5em' } }, props.field),
|
|
124
|
+
createComponent("div", { className: "header-controls", style: { display: 'flex', justifyContent: 'center', alignItems: 'center', paddingRight: '0.5em' } },
|
|
125
|
+
createComponent(SearchButton, { onclick: () => {
|
|
129
126
|
setIsSearchOpened(true);
|
|
130
127
|
}, service: props.collectionService, fieldName: props.field }),
|
|
131
|
-
|
|
128
|
+
createComponent(OrderButton, { collectionService: props.collectionService, field: props.field })))));
|
|
132
129
|
},
|
|
133
130
|
});
|
|
134
131
|
//# sourceMappingURL=header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../../src/components/data-grid/header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/data-grid/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/data-grid/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.SelectionCell = void 0;
|
|
4
|
-
const shades_1 = require("@furystack/shades");
|
|
5
|
-
exports.SelectionCell = (0, shades_1.Shade)({
|
|
1
|
+
import { createComponent, Shade } from '@furystack/shades';
|
|
2
|
+
export const SelectionCell = Shade({
|
|
6
3
|
shadowDomName: 'shades-data-grid-selection-cell',
|
|
7
4
|
render: ({ props, useObservable, element }) => {
|
|
8
5
|
const [selection] = useObservable('selection', props.service.selection, (newSelection) => {
|
|
@@ -10,7 +7,7 @@ exports.SelectionCell = (0, shades_1.Shade)({
|
|
|
10
7
|
element.querySelector('input').checked = newSelection.includes(props.entry);
|
|
11
8
|
});
|
|
12
9
|
const isSelected = selection.includes(props.entry);
|
|
13
|
-
return (
|
|
10
|
+
return (createComponent("input", { onchange: () => {
|
|
14
11
|
props.service.toggleSelection(props.entry);
|
|
15
12
|
}, type: "checkbox", checked: isSelected }));
|
|
16
13
|
},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-cell.js","sourceRoot":"","sources":["../../../src/components/data-grid/selection-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG1D,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAkD;IAClF,aAAa,EAAE,iCAAiC;IAChD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5C,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,EAAE;YACvF,CAAC;YAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAsB,CAAC,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACpG,CAAC,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAElD,OAAO,CACL,2BACE,QAAQ,EAAE,GAAG,EAAE;gBACb,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC5C,CAAC,EACD,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,UAAU,GACnB,CACH,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const shades_1 = require("@furystack/shades");
|
|
5
|
-
const shades_2 = require("@furystack/shades");
|
|
6
|
-
exports.Fab = (0, shades_2.Shade)({
|
|
1
|
+
import { attachProps } from '@furystack/shades';
|
|
2
|
+
import { Shade, createComponent } from '@furystack/shades';
|
|
3
|
+
export const Fab = Shade({
|
|
7
4
|
shadowDomName: 'shade-fab',
|
|
8
5
|
elementBase: HTMLButtonElement,
|
|
9
6
|
elementBaseName: 'button',
|
|
10
7
|
render: ({ props, children, element }) => {
|
|
11
|
-
|
|
8
|
+
attachProps(element, {
|
|
12
9
|
...props,
|
|
13
10
|
style: {
|
|
14
11
|
position: 'fixed',
|
|
@@ -26,7 +23,7 @@ exports.Fab = (0, shades_2.Shade)({
|
|
|
26
23
|
...props?.style,
|
|
27
24
|
},
|
|
28
25
|
});
|
|
29
|
-
return
|
|
26
|
+
return createComponent(createComponent, null, children);
|
|
30
27
|
},
|
|
31
28
|
});
|
|
32
29
|
//# sourceMappingURL=fab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fab.js","sourceRoot":"","sources":["../../src/components/fab.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAiC;IACvD,aAAa,EAAE,WAAW;IAC1B,WAAW,EAAE,iBAAiB;IAC9B,eAAe,EAAE,QAAQ;IACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,WAAW,CAAC,OAAO,EAAE;YACnB,GAAG,KAAK;YACR,KAAK,EAAE;gBACL,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,MAAM;gBACb,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,MAAM;gBACf,cAAc,EAAE,QAAQ;gBACxB,UAAU,EAAE,QAAQ;gBACpB,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,6BAA6B;gBACxC,MAAM,EAAE,SAAS;gBACjB,GAAG,KAAK,EAAE,KAAK;aAChB;SACF,CAAC,CAAA;QACF,OAAO,uCAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const inject_1 = require("@furystack/inject");
|
|
13
|
-
const utils_1 = require("@furystack/utils");
|
|
7
|
+
import { attachProps } from '@furystack/shades';
|
|
8
|
+
import { Shade, createComponent } from '@furystack/shades';
|
|
9
|
+
import { Injectable } from '@furystack/inject';
|
|
10
|
+
import { ObservableValue } from '@furystack/utils';
|
|
14
11
|
let FormService = class FormService {
|
|
15
12
|
constructor() {
|
|
16
|
-
this.validatedFormData = new
|
|
17
|
-
this.rawFormData = new
|
|
18
|
-
this.validationResult = new
|
|
19
|
-
this.fieldErrors = new
|
|
13
|
+
this.validatedFormData = new ObservableValue(null);
|
|
14
|
+
this.rawFormData = new ObservableValue(null);
|
|
15
|
+
this.validationResult = new ObservableValue({ isValid: null });
|
|
16
|
+
this.fieldErrors = new ObservableValue({});
|
|
20
17
|
this.inputs = new Set();
|
|
21
18
|
this.setFieldState = (key, validationResult, validity) => {
|
|
22
19
|
this.fieldErrors.setValue({ ...this.fieldErrors.getValue(), [key]: { validationResult, validity } });
|
|
@@ -29,10 +26,10 @@ let FormService = class FormService {
|
|
|
29
26
|
}
|
|
30
27
|
};
|
|
31
28
|
FormService = __decorate([
|
|
32
|
-
|
|
29
|
+
Injectable({ lifetime: 'scoped' })
|
|
33
30
|
], FormService);
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
export { FormService };
|
|
32
|
+
export const Form = Shade({
|
|
36
33
|
shadowDomName: 'shade-form',
|
|
37
34
|
elementBase: HTMLFormElement,
|
|
38
35
|
elementBaseName: 'form',
|
|
@@ -63,7 +60,7 @@ exports.Form = (0, shades_2.Shade)({
|
|
|
63
60
|
formService.validationResult.setValue({ isValid: false, reason: 'validation-failed' });
|
|
64
61
|
}
|
|
65
62
|
};
|
|
66
|
-
|
|
63
|
+
attachProps(element, {
|
|
67
64
|
injector: formInjector,
|
|
68
65
|
...props,
|
|
69
66
|
oninvalid: (ev) => {
|
|
@@ -82,7 +79,7 @@ exports.Form = (0, shades_2.Shade)({
|
|
|
82
79
|
formService.validatedFormData.setValue(null);
|
|
83
80
|
},
|
|
84
81
|
});
|
|
85
|
-
return
|
|
82
|
+
return createComponent(createComponent, null, children);
|
|
86
83
|
},
|
|
87
84
|
});
|
|
88
85
|
//# sourceMappingURL=form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/components/form.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Shade, createComponent } from '@furystack/shades';
|
|
2
|
+
import { ThemeProviderService } from '../services';
|
|
3
|
+
export const Grid = Shade({
|
|
4
|
+
shadowDomName: 'shade-grid',
|
|
5
|
+
render: ({ props, injector }) => {
|
|
6
|
+
const { theme } = injector.getInstance(ThemeProviderService);
|
|
7
|
+
const headerStyle = {
|
|
8
|
+
padding: '0 0.51em',
|
|
9
|
+
backgroundColor: theme.background.paper,
|
|
10
|
+
color: theme.text.secondary,
|
|
11
|
+
borderRadius: '2px',
|
|
12
|
+
top: '0',
|
|
13
|
+
position: 'sticky',
|
|
14
|
+
cursor: 'pointer',
|
|
15
|
+
fontVariant: 'all-petite-caps',
|
|
16
|
+
...props.styles?.header,
|
|
17
|
+
};
|
|
18
|
+
return (createComponent("div", { className: "shade-grid-wrapper", style: {
|
|
19
|
+
...props.styles?.wrapper,
|
|
20
|
+
width: '100%',
|
|
21
|
+
height: '100%',
|
|
22
|
+
overflow: 'auto',
|
|
23
|
+
} },
|
|
24
|
+
createComponent("table", { style: { width: '100%', position: 'relative' } },
|
|
25
|
+
createComponent("thead", null,
|
|
26
|
+
createComponent("tr", null, props.columns.map((column) => {
|
|
27
|
+
return (createComponent("th", { style: headerStyle }, props.headerComponents?.[column]?.(column) || props.headerComponents?.default?.(column) || (createComponent(createComponent, null, column))));
|
|
28
|
+
}))),
|
|
29
|
+
createComponent("tbody", null, props.entries.map((entry) => (createComponent("tr", null, props.columns.map((column) => (createComponent("td", { style: props.styles?.cell }, props.rowComponents?.[column]?.(entry) || props.rowComponents?.default?.(entry) || (createComponent(createComponent, null, entry[column]))))))))))));
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/components/grid.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAuBlD,MAAM,CAAC,MAAM,IAAI,GAAyE,KAAK,CAAC;IAC9F,aAAa,EAAE,YAAY;IAC3B,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAA;QAC5D,MAAM,WAAW,GAAiC;YAChD,OAAO,EAAE,UAAU;YACnB,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK;YACvC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YAC3B,YAAY,EAAE,KAAK;YACnB,GAAG,EAAE,GAAG;YACR,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,iBAAiB;YAC9B,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM;SACxB,CAAA;QACD,OAAO,CACL,yBACE,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE;gBACL,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO;gBACxB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE,MAAM;aACjB;YAED,2BAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE;gBACnD;oBACE,4BACG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC5B,OAAO,CACL,wBAAI,KAAK,EAAE,WAAW,IACnB,KAAK,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAC1F,uCAAG,MAAM,CAAI,CACd,CACE,CACN,CAAA;oBACH,CAAC,CAAC,CACC,CACC;gBACR,+BACG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,4BACG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC7B,wBAAI,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,IAC1B,KAAK,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAClF,uCAAG,KAAK,CAAC,MAAM,CAAC,CAAI,CACrB,CACE,CACN,CAAC,CACC,CACN,CAAC,CACI,CACF,CACJ,CACP,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export * from './animations';
|
|
2
|
+
export * from './app-bar';
|
|
3
|
+
export * from './app-bar-link';
|
|
4
|
+
export * from './inputs';
|
|
5
|
+
export * from './avatar';
|
|
6
|
+
export * from './button';
|
|
7
|
+
export * from './data-grid';
|
|
8
|
+
export * from './fab';
|
|
9
|
+
export * from './form';
|
|
10
|
+
export * from './grid';
|
|
11
|
+
export * from './modal';
|
|
12
|
+
export * from './noty-list';
|
|
13
|
+
export * from './paper';
|
|
14
|
+
export * from './skeleton';
|
|
15
|
+
export * from './styles';
|
|
16
|
+
export * from './suggest';
|
|
17
|
+
export * from './tabs';
|
|
18
|
+
export * from './loader';
|
|
19
|
+
export * from './command-palette';
|
|
20
|
+
export * from './wizard';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const shades_1 = require("@furystack/shades");
|
|
5
|
-
const input_1 = require("./input");
|
|
6
|
-
exports.Autocomplete = (0, shades_1.Shade)({
|
|
1
|
+
import { Shade, createComponent } from '@furystack/shades';
|
|
2
|
+
import { Input } from './input';
|
|
3
|
+
export const Autocomplete = Shade({
|
|
7
4
|
shadowDomName: 'shade-autocomplete',
|
|
8
5
|
render: ({ props, useState }) => {
|
|
9
6
|
const [dataListId] = useState('dataListId', (Math.random() + 1).toString(36).substring(3));
|
|
10
|
-
return (
|
|
11
|
-
|
|
7
|
+
return (createComponent("div", null,
|
|
8
|
+
createComponent(Input, { ...props.inputProps, list: dataListId, onchange: (ev) => {
|
|
12
9
|
const { value } = ev.target;
|
|
13
10
|
if (props.strict) {
|
|
14
11
|
if (!props.suggestions.includes(value)) {
|
|
@@ -19,7 +16,7 @@ exports.Autocomplete = (0, shades_1.Shade)({
|
|
|
19
16
|
}
|
|
20
17
|
props.onchange?.(value);
|
|
21
18
|
} }),
|
|
22
|
-
|
|
19
|
+
createComponent("datalist", { id: dataListId }, props.suggestions.map((s) => (createComponent("option", { value: s }))))));
|
|
23
20
|
},
|
|
24
21
|
});
|
|
25
22
|
//# sourceMappingURL=autocomplete.js.map
|