@vuu-ui/vuu-filters 0.8.57 → 0.8.59
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/cjs/filter-bar/FilterBar.css.js +1 -1
- package/cjs/index.js +2 -2
- package/cjs/inline-filter/InlineFilter.css.js +6 -0
- package/cjs/inline-filter/InlineFilter.css.js.map +1 -0
- package/cjs/inline-filter/InlineFilter.js +52 -0
- package/cjs/inline-filter/InlineFilter.js.map +1 -0
- package/esm/filter-bar/FilterBar.css.js +1 -1
- package/esm/index.js +1 -1
- package/esm/inline-filter/InlineFilter.css.js +4 -0
- package/esm/inline-filter/InlineFilter.css.js.map +1 -0
- package/esm/inline-filter/InlineFilter.js +50 -0
- package/esm/inline-filter/InlineFilter.js.map +1 -0
- package/package.json +12 -12
- package/types/FilterModel.d.ts +1 -1
- package/types/filter-clause/ColumnPicker.d.ts +1 -1
- package/types/filter-clause/OperatorPicker.d.ts +1 -1
- package/types/index.d.ts +1 -1
- package/types/inline-filter/InlineFilter.d.ts +7 -0
- package/types/inline-filter/index.d.ts +1 -0
- package/cjs/use-filter-config.js +0 -39
- package/cjs/use-filter-config.js.map +0 -1
- package/cjs/use-rest-config.js +0 -63
- package/cjs/use-rest-config.js.map +0 -1
- package/esm/use-filter-config.js +0 -37
- package/esm/use-filter-config.js.map +0 -1
- package/esm/use-rest-config.js +0 -61
- package/esm/use-rest-config.js.map +0 -1
- package/types/use-filter-config.d.ts +0 -13
- package/types/use-rest-config.d.ts +0 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var filterBarCss = ".vuuFilterBar {\n --vuu-svg-grid: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M2 6.00004H4.66667V3.33337H3.33333C2.6 3.33337 2 3.93337 2 4.66671V6.00004ZM2 9.33337H4.66667V6.66671H2V9.33337ZM5.33333 9.33337H8V6.66671H5.33333V9.33337ZM8.66667 9.33337H11.3333V6.66671H8.66667V9.33337ZM5.33333 6.00004H8V3.33337H5.33333V6.00004ZM8.66667 3.33337V6.00004H11.3333V3.33337H8.66667ZM12 9.33337H14.6667V6.66671H12V9.33337ZM3.33333 12.6667H4.66667V10H2V11.3334C2 12.0667 2.6 12.6667 3.33333 12.6667ZM5.33333 12.6667H8V10H5.33333V12.6667ZM8.66667 12.6667H11.3333V10H8.66667V12.6667ZM12 12.6667H13.3333C14.0667 12.6667 14.6667 12.0667 14.6667 11.3334V10H12V12.6667ZM12 3.33337V6.00004H14.6667V4.66671C14.6667 3.93337 14.0667 3.33337 13.3333 3.33337H12Z\"/></svg>');\n --vuu-svg-tune: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 18C3 18.55 3.45 19 4 19H9V17H4C3.45 17 3 17.45 3 18ZM3 6C3 6.55 3.45 7 4 7H13V5H4C3.45 5 3 5.45 3 6ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 10V11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H7V14C7 14.55 7.45 15 8 15C8.55 15 9 14.55 9 14V10C9 9.45 8.55 9 8 9C7.45 9 7 9.45 7 10ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12ZM16 9C16.55 9 17 8.55 17 8V7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H17V4C17 3.45 16.55 3 16 3C15.45 3 15 3.45 15 4V8C15 8.55 15.45 9 16 9Z\" /></svg>');\n --vuuOverflowContainer-minWidth: 0;\n --filterbar-height: var(--vuuFilterBar-height
|
|
3
|
+
var filterBarCss = ".vuuFilterBar {\n --vuu-svg-grid: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M2 6.00004H4.66667V3.33337H3.33333C2.6 3.33337 2 3.93337 2 4.66671V6.00004ZM2 9.33337H4.66667V6.66671H2V9.33337ZM5.33333 9.33337H8V6.66671H5.33333V9.33337ZM8.66667 9.33337H11.3333V6.66671H8.66667V9.33337ZM5.33333 6.00004H8V3.33337H5.33333V6.00004ZM8.66667 3.33337V6.00004H11.3333V3.33337H8.66667ZM12 9.33337H14.6667V6.66671H12V9.33337ZM3.33333 12.6667H4.66667V10H2V11.3334C2 12.0667 2.6 12.6667 3.33333 12.6667ZM5.33333 12.6667H8V10H5.33333V12.6667ZM8.66667 12.6667H11.3333V10H8.66667V12.6667ZM12 12.6667H13.3333C14.0667 12.6667 14.6667 12.0667 14.6667 11.3334V10H12V12.6667ZM12 3.33337V6.00004H14.6667V4.66671C14.6667 3.93337 14.0667 3.33337 13.3333 3.33337H12Z\"/></svg>');\n --vuu-svg-tune: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 18C3 18.55 3.45 19 4 19H9V17H4C3.45 17 3 17.45 3 18ZM3 6C3 6.55 3.45 7 4 7H13V5H4C3.45 5 3 5.45 3 6ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 10V11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H7V14C7 14.55 7.45 15 8 15C8.55 15 9 14.55 9 14V10C9 9.45 8.55 9 8 9C7.45 9 7 9.45 7 10ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12ZM16 9C16.55 9 17 8.55 17 8V7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H17V4C17 3.45 16.55 3 16 3C15.45 3 15 3.45 15 4V8C15 8.55 15.45 9 16 9Z\" /></svg>');\n --vuuOverflowContainer-minWidth: 0;\n --filterbar-height: var(\n --vuuFilterBar-height,\n calc(var(--salt-size-base) + var(--salt-spacing-100))\n );\n --vuuFilterEditor-height: var(--filterbar-height);\n --flexbar-gap: var(--salt-spacing-100);\n\n align-items: flex-start;\n background-color: var(--salt-container-secondary-background);\n border-color: var(--salt-container-primary-borderColor);\n border-style: var(--vuuFilterBar-borderStyle, none none solid none);\n border-width: 1px;\n display: inline-flex;\n flex: var(--vuuFilterBar-flex);\n flex-wrap: wrap;\n gap: var(--flexbar-gap);\n grid-template-columns: 70px 1fr 28px;\n grid-auto-rows: 28px 0px;\n height: calc(var(--salt-spacing-100) + var(--filterbar-height));\n overflow: hidden;\n padding: var(--salt-spacing-100) var(--salt-spacing-200);\n}\n\n.vuuFilterBar-quick-filter {\n align-items: flex-end;\n padding: var(--salt-spacing-100) var(--salt-spacing-200);\n}\n\n.vuuFilterBar:has(.vuuFilterEditor) {\n grid-template-rows: 28px 28px;\n height: calc(1px + var(--flexbar-gap) + (2 * var(--filterbar-height)));\n}\n\n.vuuFilterbar-icon {\n display: inline-block;\n height: 16px;\n width: 16px;\n}\n\n.vuuFilterBar [data-icon=\"grid\"] {\n --vuu-icon-size: 16px;\n --vuu-icon-svg: var(--vuu-svg-grid);\n}\n.vuuFilterBar [data-icon=\"tune\"] {\n --vuu-icon-size: 16px;\n --vuu-icon-svg: var(--vuu-svg-tune);\n}\n\n.vuuFilterBar [data-icon=\"plus\"] {\n --vuu-icon-size: 16px;\n}\n\n.vuuFilterBar .vuuToolbar {\n flex: 0 1 auto;\n}\n\n.vuuFilterBar-Editor {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--salt-spacing-100);\n}\n\n.vuuCustomFilters {\n display: flex;\n gap: var(--salt-spacing-100);\n}\n.vuuCustomFilters-filters {\n display: flex;\n gap: var(--salt-spacing-100);\n}\n";
|
|
4
4
|
|
|
5
5
|
module.exports = filterBarCss;
|
|
6
6
|
//# sourceMappingURL=FilterBar.css.js.map
|
package/cjs/index.js
CHANGED
|
@@ -8,8 +8,8 @@ var FilterClauseValueEditorText = require('./filter-clause/value-editors/FilterC
|
|
|
8
8
|
var FilterEditor = require('./filter-editor/FilterEditor.js');
|
|
9
9
|
var FilterPill = require('./filter-pill/FilterPill.js');
|
|
10
10
|
var filterUtils = require('./filter-utils.js');
|
|
11
|
+
var InlineFilter = require('./inline-filter/InlineFilter.js');
|
|
11
12
|
var QuickFilters = require('./quick-filters/QuickFilters.js');
|
|
12
|
-
var useFilterConfig = require('./use-filter-config.js');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
@@ -41,6 +41,6 @@ exports.removeFilter = filterUtils.removeFilter;
|
|
|
41
41
|
exports.removeLastClause = filterUtils.removeLastClause;
|
|
42
42
|
exports.splitFilterOnColumn = filterUtils.splitFilterOnColumn;
|
|
43
43
|
exports.updateFilter = filterUtils.updateFilter;
|
|
44
|
+
exports.InlineFilter = InlineFilter.InlineFilter;
|
|
44
45
|
exports.QuickFilters = QuickFilters.QuickFilters;
|
|
45
|
-
exports.useFilterConfig = useFilterConfig.useFilterConfig;
|
|
46
46
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var inlineFilteCss = ".vuuInlineFilter {\n .vuuInlineFilter-filter {\n display: inline-block;\n padding: 1px;\n }\n\n .vuuInlineFilter-virtualColSpan {\n display: inline-block;\n }\n}\n";
|
|
4
|
+
|
|
5
|
+
module.exports = inlineFilteCss;
|
|
6
|
+
//# sourceMappingURL=InlineFilter.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineFilter.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var vuuDataReact = require('@vuu-ui/vuu-data-react');
|
|
5
|
+
var vuuTable = require('@vuu-ui/vuu-table');
|
|
6
|
+
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
7
|
+
var styles = require('@salt-ds/styles');
|
|
8
|
+
var window = require('@salt-ds/window');
|
|
9
|
+
var react = require('react');
|
|
10
|
+
var InlineFilter$1 = require('./InlineFilter.css.js');
|
|
11
|
+
|
|
12
|
+
const classBase = "vuuInlineFilter";
|
|
13
|
+
const InlineFilter = ({
|
|
14
|
+
onChange,
|
|
15
|
+
...htmlAttributes
|
|
16
|
+
}) => {
|
|
17
|
+
const targetWindow = window.useWindow();
|
|
18
|
+
styles.useComponentCssInjection({
|
|
19
|
+
testId: "vuu-inline-filter",
|
|
20
|
+
css: InlineFilter$1,
|
|
21
|
+
window: targetWindow
|
|
22
|
+
});
|
|
23
|
+
const { columns, virtualColSpan = 0 } = vuuTable.useHeaderProps();
|
|
24
|
+
const onCommit = react.useCallback(
|
|
25
|
+
(evt, value) => {
|
|
26
|
+
const field = vuuUtils.queryClosest(evt.target, "[data-field]");
|
|
27
|
+
if (field) {
|
|
28
|
+
const columnName = field.dataset.field;
|
|
29
|
+
const column = columns.find((c) => c.name === columnName);
|
|
30
|
+
if (column) {
|
|
31
|
+
onChange(column, value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
[columns, onChange]
|
|
36
|
+
);
|
|
37
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...htmlAttributes, className: classBase, children: [
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsx(vuuTable.VirtualColSpan, { width: virtualColSpan }),
|
|
39
|
+
columns.map((column) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
className: `${classBase}-filter`,
|
|
43
|
+
style: { width: column.width },
|
|
44
|
+
children: vuuDataReact.getDataItemEditControl({ column, onCommit })
|
|
45
|
+
},
|
|
46
|
+
column.name
|
|
47
|
+
))
|
|
48
|
+
] });
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
exports.InlineFilter = InlineFilter;
|
|
52
|
+
//# sourceMappingURL=InlineFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineFilter.js","sources":["../../src/inline-filter/InlineFilter.tsx"],"sourcesContent":["import { getDataItemEditControl } from \"@vuu-ui/vuu-data-react\";\nimport { VirtualColSpan, useHeaderProps } from \"@vuu-ui/vuu-table\";\nimport { Commithandler } from \"@vuu-ui/vuu-ui-controls\";\nimport { queryClosest } from \"@vuu-ui/vuu-utils\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes, useCallback } from \"react\";\n\nimport inlineFilteCss from \"./InlineFilter.css\";\nimport { ColumnDescriptor } from \"packages/vuu-table-types\";\n\nconst classBase = \"vuuInlineFilter\";\n\nexport type FilterValueChangeHandler = (\n column: ColumnDescriptor,\n value: string\n) => void;\nexport interface InlineFilterProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n onChange: FilterValueChangeHandler;\n}\n\nexport const InlineFilter = ({\n onChange,\n ...htmlAttributes\n}: InlineFilterProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-inline-filter\",\n css: inlineFilteCss,\n window: targetWindow,\n });\n\n const { columns, virtualColSpan = 0 } = useHeaderProps();\n\n const onCommit = useCallback<Commithandler>(\n (evt, value) => {\n const field = queryClosest(evt.target, \"[data-field]\");\n if (field) {\n const columnName = field.dataset.field;\n const column = columns.find((c) => c.name === columnName);\n if (column) {\n onChange(column, value);\n }\n }\n },\n [columns, onChange]\n );\n\n return (\n <div {...htmlAttributes} className={classBase}>\n <VirtualColSpan width={virtualColSpan} />\n {columns.map((column) => (\n <div\n className={`${classBase}-filter`}\n key={column.name}\n style={{ width: column.width }}\n >\n {getDataItemEditControl({ column, onCommit })}\n </div>\n ))}\n </div>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","inlineFilteCss","useHeaderProps","useCallback","queryClosest","jsxs","jsx","VirtualColSpan","getDataItemEditControl"],"mappings":";;;;;;;;;;;AAWA,MAAM,SAAY,GAAA,iBAAA,CAAA;AAWX,MAAM,eAAe,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,GAAG,cAAA;AACL,CAAyB,KAAA;AACvB,EAAA,MAAM,eAAeA,gBAAU,EAAA,CAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAC,cAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,OAAA,EAAS,cAAiB,GAAA,CAAA,KAAMC,uBAAe,EAAA,CAAA;AAEvD,EAAA,MAAM,QAAW,GAAAC,iBAAA;AAAA,IACf,CAAC,KAAK,KAAU,KAAA;AACd,MAAA,MAAM,KAAQ,GAAAC,qBAAA,CAAa,GAAI,CAAA,MAAA,EAAQ,cAAc,CAAA,CAAA;AACrD,MAAA,IAAI,KAAO,EAAA;AACT,QAAM,MAAA,UAAA,GAAa,MAAM,OAAQ,CAAA,KAAA,CAAA;AACjC,QAAA,MAAM,SAAS,OAAQ,CAAA,IAAA,CAAK,CAAC,CAAM,KAAA,CAAA,CAAE,SAAS,UAAU,CAAA,CAAA;AACxD,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,QAAA,CAAS,QAAQ,KAAK,CAAA,CAAA;AAAA,SACxB;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,SAAS,QAAQ,CAAA;AAAA,GACpB,CAAA;AAEA,EAAA,uBACGC,eAAA,CAAA,KAAA,EAAA,EAAK,GAAG,cAAA,EAAgB,WAAW,SAClC,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAAC,uBAAA,EAAA,EAAe,OAAO,cAAgB,EAAA,CAAA;AAAA,IACtC,OAAA,CAAQ,GAAI,CAAA,CAAC,MACZ,qBAAAD,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,SAAS,CAAA,OAAA,CAAA;AAAA,QAEvB,KAAO,EAAA,EAAE,KAAO,EAAA,MAAA,CAAO,KAAM,EAAA;AAAA,QAE5B,QAAuB,EAAAE,mCAAA,CAAA,EAAE,MAAQ,EAAA,QAAA,EAAU,CAAA;AAAA,OAAA;AAAA,MAHvC,MAAO,CAAA,IAAA;AAAA,KAKf,CAAA;AAAA,GACH,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var filterBarCss = ".vuuFilterBar {\n --vuu-svg-grid: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M2 6.00004H4.66667V3.33337H3.33333C2.6 3.33337 2 3.93337 2 4.66671V6.00004ZM2 9.33337H4.66667V6.66671H2V9.33337ZM5.33333 9.33337H8V6.66671H5.33333V9.33337ZM8.66667 9.33337H11.3333V6.66671H8.66667V9.33337ZM5.33333 6.00004H8V3.33337H5.33333V6.00004ZM8.66667 3.33337V6.00004H11.3333V3.33337H8.66667ZM12 9.33337H14.6667V6.66671H12V9.33337ZM3.33333 12.6667H4.66667V10H2V11.3334C2 12.0667 2.6 12.6667 3.33333 12.6667ZM5.33333 12.6667H8V10H5.33333V12.6667ZM8.66667 12.6667H11.3333V10H8.66667V12.6667ZM12 12.6667H13.3333C14.0667 12.6667 14.6667 12.0667 14.6667 11.3334V10H12V12.6667ZM12 3.33337V6.00004H14.6667V4.66671C14.6667 3.93337 14.0667 3.33337 13.3333 3.33337H12Z\"/></svg>');\n --vuu-svg-tune: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 18C3 18.55 3.45 19 4 19H9V17H4C3.45 17 3 17.45 3 18ZM3 6C3 6.55 3.45 7 4 7H13V5H4C3.45 5 3 5.45 3 6ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 10V11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H7V14C7 14.55 7.45 15 8 15C8.55 15 9 14.55 9 14V10C9 9.45 8.55 9 8 9C7.45 9 7 9.45 7 10ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12ZM16 9C16.55 9 17 8.55 17 8V7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H17V4C17 3.45 16.55 3 16 3C15.45 3 15 3.45 15 4V8C15 8.55 15.45 9 16 9Z\" /></svg>');\n --vuuOverflowContainer-minWidth: 0;\n --filterbar-height: var(--vuuFilterBar-height
|
|
1
|
+
var filterBarCss = ".vuuFilterBar {\n --vuu-svg-grid: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M2 6.00004H4.66667V3.33337H3.33333C2.6 3.33337 2 3.93337 2 4.66671V6.00004ZM2 9.33337H4.66667V6.66671H2V9.33337ZM5.33333 9.33337H8V6.66671H5.33333V9.33337ZM8.66667 9.33337H11.3333V6.66671H8.66667V9.33337ZM5.33333 6.00004H8V3.33337H5.33333V6.00004ZM8.66667 3.33337V6.00004H11.3333V3.33337H8.66667ZM12 9.33337H14.6667V6.66671H12V9.33337ZM3.33333 12.6667H4.66667V10H2V11.3334C2 12.0667 2.6 12.6667 3.33333 12.6667ZM5.33333 12.6667H8V10H5.33333V12.6667ZM8.66667 12.6667H11.3333V10H8.66667V12.6667ZM12 12.6667H13.3333C14.0667 12.6667 14.6667 12.0667 14.6667 11.3334V10H12V12.6667ZM12 3.33337V6.00004H14.6667V4.66671C14.6667 3.93337 14.0667 3.33337 13.3333 3.33337H12Z\"/></svg>');\n --vuu-svg-tune: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 18C3 18.55 3.45 19 4 19H9V17H4C3.45 17 3 17.45 3 18ZM3 6C3 6.55 3.45 7 4 7H13V5H4C3.45 5 3 5.45 3 6ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 10V11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H7V14C7 14.55 7.45 15 8 15C8.55 15 9 14.55 9 14V10C9 9.45 8.55 9 8 9C7.45 9 7 9.45 7 10ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12ZM16 9C16.55 9 17 8.55 17 8V7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H17V4C17 3.45 16.55 3 16 3C15.45 3 15 3.45 15 4V8C15 8.55 15.45 9 16 9Z\" /></svg>');\n --vuuOverflowContainer-minWidth: 0;\n --filterbar-height: var(\n --vuuFilterBar-height,\n calc(var(--salt-size-base) + var(--salt-spacing-100))\n );\n --vuuFilterEditor-height: var(--filterbar-height);\n --flexbar-gap: var(--salt-spacing-100);\n\n align-items: flex-start;\n background-color: var(--salt-container-secondary-background);\n border-color: var(--salt-container-primary-borderColor);\n border-style: var(--vuuFilterBar-borderStyle, none none solid none);\n border-width: 1px;\n display: inline-flex;\n flex: var(--vuuFilterBar-flex);\n flex-wrap: wrap;\n gap: var(--flexbar-gap);\n grid-template-columns: 70px 1fr 28px;\n grid-auto-rows: 28px 0px;\n height: calc(var(--salt-spacing-100) + var(--filterbar-height));\n overflow: hidden;\n padding: var(--salt-spacing-100) var(--salt-spacing-200);\n}\n\n.vuuFilterBar-quick-filter {\n align-items: flex-end;\n padding: var(--salt-spacing-100) var(--salt-spacing-200);\n}\n\n.vuuFilterBar:has(.vuuFilterEditor) {\n grid-template-rows: 28px 28px;\n height: calc(1px + var(--flexbar-gap) + (2 * var(--filterbar-height)));\n}\n\n.vuuFilterbar-icon {\n display: inline-block;\n height: 16px;\n width: 16px;\n}\n\n.vuuFilterBar [data-icon=\"grid\"] {\n --vuu-icon-size: 16px;\n --vuu-icon-svg: var(--vuu-svg-grid);\n}\n.vuuFilterBar [data-icon=\"tune\"] {\n --vuu-icon-size: 16px;\n --vuu-icon-svg: var(--vuu-svg-tune);\n}\n\n.vuuFilterBar [data-icon=\"plus\"] {\n --vuu-icon-size: 16px;\n}\n\n.vuuFilterBar .vuuToolbar {\n flex: 0 1 auto;\n}\n\n.vuuFilterBar-Editor {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--salt-spacing-100);\n}\n\n.vuuCustomFilters {\n display: flex;\n gap: var(--salt-spacing-100);\n}\n.vuuCustomFilters-filters {\n display: flex;\n gap: var(--salt-spacing-100);\n}\n";
|
|
2
2
|
|
|
3
3
|
export { filterBarCss as default };
|
|
4
4
|
//# sourceMappingURL=FilterBar.css.js.map
|
package/esm/index.js
CHANGED
|
@@ -6,6 +6,6 @@ export { FilterClauseValueEditorText } from './filter-clause/value-editors/Filte
|
|
|
6
6
|
export { FilterEditor } from './filter-editor/FilterEditor.js';
|
|
7
7
|
export { FilterPill } from './filter-pill/FilterPill.js';
|
|
8
8
|
export { AND, ENDS_WITH, EQUALS, GREATER_THAN, IN, LESS_THAN, OR, STARTS_WITH, addClause, addFilter, filterClauses, filterEquals, filterIncludesColumn, getNumericFilter, getTypeaheadFilter, overrideColName, removeFilter, removeLastClause, splitFilterOnColumn, updateFilter } from './filter-utils.js';
|
|
9
|
+
export { InlineFilter } from './inline-filter/InlineFilter.js';
|
|
9
10
|
export { QuickFilters } from './quick-filters/QuickFilters.js';
|
|
10
|
-
export { useFilterConfig } from './use-filter-config.js';
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var inlineFilteCss = ".vuuInlineFilter {\n .vuuInlineFilter-filter {\n display: inline-block;\n padding: 1px;\n }\n\n .vuuInlineFilter-virtualColSpan {\n display: inline-block;\n }\n}\n";
|
|
2
|
+
|
|
3
|
+
export { inlineFilteCss as default };
|
|
4
|
+
//# sourceMappingURL=InlineFilter.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineFilter.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { getDataItemEditControl } from '@vuu-ui/vuu-data-react';
|
|
3
|
+
import { useHeaderProps, VirtualColSpan } from '@vuu-ui/vuu-table';
|
|
4
|
+
import { queryClosest } from '@vuu-ui/vuu-utils';
|
|
5
|
+
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
6
|
+
import { useWindow } from '@salt-ds/window';
|
|
7
|
+
import { useCallback } from 'react';
|
|
8
|
+
import inlineFilteCss from './InlineFilter.css.js';
|
|
9
|
+
|
|
10
|
+
const classBase = "vuuInlineFilter";
|
|
11
|
+
const InlineFilter = ({
|
|
12
|
+
onChange,
|
|
13
|
+
...htmlAttributes
|
|
14
|
+
}) => {
|
|
15
|
+
const targetWindow = useWindow();
|
|
16
|
+
useComponentCssInjection({
|
|
17
|
+
testId: "vuu-inline-filter",
|
|
18
|
+
css: inlineFilteCss,
|
|
19
|
+
window: targetWindow
|
|
20
|
+
});
|
|
21
|
+
const { columns, virtualColSpan = 0 } = useHeaderProps();
|
|
22
|
+
const onCommit = useCallback(
|
|
23
|
+
(evt, value) => {
|
|
24
|
+
const field = queryClosest(evt.target, "[data-field]");
|
|
25
|
+
if (field) {
|
|
26
|
+
const columnName = field.dataset.field;
|
|
27
|
+
const column = columns.find((c) => c.name === columnName);
|
|
28
|
+
if (column) {
|
|
29
|
+
onChange(column, value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
[columns, onChange]
|
|
34
|
+
);
|
|
35
|
+
return /* @__PURE__ */ jsxs("div", { ...htmlAttributes, className: classBase, children: [
|
|
36
|
+
/* @__PURE__ */ jsx(VirtualColSpan, { width: virtualColSpan }),
|
|
37
|
+
columns.map((column) => /* @__PURE__ */ jsx(
|
|
38
|
+
"div",
|
|
39
|
+
{
|
|
40
|
+
className: `${classBase}-filter`,
|
|
41
|
+
style: { width: column.width },
|
|
42
|
+
children: getDataItemEditControl({ column, onCommit })
|
|
43
|
+
},
|
|
44
|
+
column.name
|
|
45
|
+
))
|
|
46
|
+
] });
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export { InlineFilter };
|
|
50
|
+
//# sourceMappingURL=InlineFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InlineFilter.js","sources":["../../src/inline-filter/InlineFilter.tsx"],"sourcesContent":["import { getDataItemEditControl } from \"@vuu-ui/vuu-data-react\";\nimport { VirtualColSpan, useHeaderProps } from \"@vuu-ui/vuu-table\";\nimport { Commithandler } from \"@vuu-ui/vuu-ui-controls\";\nimport { queryClosest } from \"@vuu-ui/vuu-utils\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes, useCallback } from \"react\";\n\nimport inlineFilteCss from \"./InlineFilter.css\";\nimport { ColumnDescriptor } from \"packages/vuu-table-types\";\n\nconst classBase = \"vuuInlineFilter\";\n\nexport type FilterValueChangeHandler = (\n column: ColumnDescriptor,\n value: string\n) => void;\nexport interface InlineFilterProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n onChange: FilterValueChangeHandler;\n}\n\nexport const InlineFilter = ({\n onChange,\n ...htmlAttributes\n}: InlineFilterProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-inline-filter\",\n css: inlineFilteCss,\n window: targetWindow,\n });\n\n const { columns, virtualColSpan = 0 } = useHeaderProps();\n\n const onCommit = useCallback<Commithandler>(\n (evt, value) => {\n const field = queryClosest(evt.target, \"[data-field]\");\n if (field) {\n const columnName = field.dataset.field;\n const column = columns.find((c) => c.name === columnName);\n if (column) {\n onChange(column, value);\n }\n }\n },\n [columns, onChange]\n );\n\n return (\n <div {...htmlAttributes} className={classBase}>\n <VirtualColSpan width={virtualColSpan} />\n {columns.map((column) => (\n <div\n className={`${classBase}-filter`}\n key={column.name}\n style={{ width: column.width }}\n >\n {getDataItemEditControl({ column, onCommit })}\n </div>\n ))}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AAWA,MAAM,SAAY,GAAA,iBAAA,CAAA;AAWX,MAAM,eAAe,CAAC;AAAA,EAC3B,QAAA;AAAA,EACA,GAAG,cAAA;AACL,CAAyB,KAAA;AACvB,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAA,cAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,OAAA,EAAS,cAAiB,GAAA,CAAA,KAAM,cAAe,EAAA,CAAA;AAEvD,EAAA,MAAM,QAAW,GAAA,WAAA;AAAA,IACf,CAAC,KAAK,KAAU,KAAA;AACd,MAAA,MAAM,KAAQ,GAAA,YAAA,CAAa,GAAI,CAAA,MAAA,EAAQ,cAAc,CAAA,CAAA;AACrD,MAAA,IAAI,KAAO,EAAA;AACT,QAAM,MAAA,UAAA,GAAa,MAAM,OAAQ,CAAA,KAAA,CAAA;AACjC,QAAA,MAAM,SAAS,OAAQ,CAAA,IAAA,CAAK,CAAC,CAAM,KAAA,CAAA,CAAE,SAAS,UAAU,CAAA,CAAA;AACxD,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,QAAA,CAAS,QAAQ,KAAK,CAAA,CAAA;AAAA,SACxB;AAAA,OACF;AAAA,KACF;AAAA,IACA,CAAC,SAAS,QAAQ,CAAA;AAAA,GACpB,CAAA;AAEA,EAAA,uBACG,IAAA,CAAA,KAAA,EAAA,EAAK,GAAG,cAAA,EAAgB,WAAW,SAClC,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,cAAA,EAAA,EAAe,OAAO,cAAgB,EAAA,CAAA;AAAA,IACtC,OAAA,CAAQ,GAAI,CAAA,CAAC,MACZ,qBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,SAAS,CAAA,OAAA,CAAA;AAAA,QAEvB,KAAO,EAAA,EAAE,KAAO,EAAA,MAAA,CAAO,KAAM,EAAA;AAAA,QAE5B,QAAuB,EAAA,sBAAA,CAAA,EAAE,MAAQ,EAAA,QAAA,EAAU,CAAA;AAAA,OAAA;AAAA,MAHvC,MAAO,CAAA,IAAA;AAAA,KAKf,CAAA;AAAA,GACH,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
package/package.json
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.8.
|
|
2
|
+
"version": "0.8.59",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"@vuu-ui/vuu-data-types": "0.8.
|
|
8
|
-
"@vuu-ui/vuu-protocol-types": "0.8.
|
|
9
|
-
"@vuu-ui/vuu-table-types": "0.8.
|
|
10
|
-
"@vuu-ui/vuu-filter-types": "0.8.
|
|
7
|
+
"@vuu-ui/vuu-data-types": "0.8.59",
|
|
8
|
+
"@vuu-ui/vuu-protocol-types": "0.8.59",
|
|
9
|
+
"@vuu-ui/vuu-table-types": "0.8.59",
|
|
10
|
+
"@vuu-ui/vuu-filter-types": "0.8.59",
|
|
11
11
|
"@types/uuid": "^9.0.2"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@vuu-ui/vuu-
|
|
15
|
-
"@vuu-ui/vuu-
|
|
16
|
-
"@vuu-ui/vuu-
|
|
17
|
-
"@vuu-ui/vuu-
|
|
18
|
-
"@vuu-ui/vuu-
|
|
19
|
-
"@vuu-ui/vuu-utils": "0.8.
|
|
20
|
-
"@salt-ds/core": "1.
|
|
14
|
+
"@vuu-ui/vuu-data-react": "0.8.59",
|
|
15
|
+
"@vuu-ui/vuu-filter-parser": "0.8.59",
|
|
16
|
+
"@vuu-ui/vuu-popups": "0.8.59",
|
|
17
|
+
"@vuu-ui/vuu-ui-controls": "0.8.59",
|
|
18
|
+
"@vuu-ui/vuu-table": "0.8.59",
|
|
19
|
+
"@vuu-ui/vuu-utils": "0.8.59",
|
|
20
|
+
"@salt-ds/core": "1.27.1",
|
|
21
21
|
"@salt-ds/styles": "0.2.1",
|
|
22
22
|
"@salt-ds/window": "0.1.1",
|
|
23
23
|
"uuid": "9.0.0"
|
package/types/FilterModel.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare class FilterClauseModel extends EventEmitter<FilterClauseModelEve
|
|
|
18
18
|
private setIsValid;
|
|
19
19
|
get column(): undefined | string;
|
|
20
20
|
set column(column: undefined | string);
|
|
21
|
-
get op():
|
|
21
|
+
get op(): import("@vuu-ui/vuu-filter-types").SingleValueFilterClauseOp | "in" | undefined;
|
|
22
22
|
setOp(op: undefined | FilterClauseOp): void;
|
|
23
23
|
setValue(value: undefined | string | string[] | number | number[] | boolean | boolean[], isFinal?: boolean): void;
|
|
24
24
|
asFilter(throwIfInvalid?: boolean): FilterClause;
|
|
@@ -5,7 +5,7 @@ export type ColumnPickerProps = Pick<ComboBoxProps, "className" | "inputProps" |
|
|
|
5
5
|
columns: ColumnDescriptor[];
|
|
6
6
|
onSelect: (evt: SyntheticEvent, columnName: string) => void;
|
|
7
7
|
};
|
|
8
|
-
export declare const ColumnPicker: import("react").ForwardRefExoticComponent<Pick<ComboBoxProps, "
|
|
8
|
+
export declare const ColumnPicker: import("react").ForwardRefExoticComponent<Pick<ComboBoxProps, "className" | "value" | "inputProps"> & {
|
|
9
9
|
columns: ColumnDescriptor[];
|
|
10
10
|
onSelect: (evt: SyntheticEvent, columnName: string) => void;
|
|
11
11
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -6,7 +6,7 @@ export type OperatorPickerProps = Pick<ComboBoxProps, "className" | "inputProps"
|
|
|
6
6
|
column: ColumnDescriptor;
|
|
7
7
|
onSelect: (evt: SyntheticEvent, operator: FilterClauseOp) => void;
|
|
8
8
|
};
|
|
9
|
-
export declare const OperatorPicker: import("react").ForwardRefExoticComponent<Pick<ComboBoxProps, "
|
|
9
|
+
export declare const OperatorPicker: import("react").ForwardRefExoticComponent<Pick<ComboBoxProps, "className" | "value" | "inputProps"> & {
|
|
10
10
|
column: ColumnDescriptor;
|
|
11
11
|
onSelect: (evt: SyntheticEvent, operator: FilterClauseOp) => void;
|
|
12
12
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
package/types/index.d.ts
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
import { ColumnDescriptor } from "packages/vuu-table-types";
|
|
3
|
+
export type FilterValueChangeHandler = (column: ColumnDescriptor, value: string) => void;
|
|
4
|
+
export interface InlineFilterProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
5
|
+
onChange: FilterValueChangeHandler;
|
|
6
|
+
}
|
|
7
|
+
export declare const InlineFilter: ({ onChange, ...htmlAttributes }: InlineFilterProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./InlineFilter";
|
package/cjs/use-filter-config.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var useRestConfig = require('./use-rest-config.js');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
|
|
6
|
-
const useFilterConfig = ({
|
|
7
|
-
user,
|
|
8
|
-
saveUrl = "api/vui/filters",
|
|
9
|
-
saveLocation = "local"
|
|
10
|
-
// TODO: "remote" is not supported yet
|
|
11
|
-
}) => {
|
|
12
|
-
const [allFilters, setAllFilters] = react.useState();
|
|
13
|
-
const { get, getAll, save } = useRestConfig.useRestEntityStore({
|
|
14
|
-
baseUrl: `${saveUrl}/${user.username}`,
|
|
15
|
-
saveLocation
|
|
16
|
-
});
|
|
17
|
-
const refreshAllFilters = react.useCallback(async () => {
|
|
18
|
-
const filters = await getAll();
|
|
19
|
-
setAllFilters(filters);
|
|
20
|
-
}, [getAll]);
|
|
21
|
-
react.useEffect(() => {
|
|
22
|
-
refreshAllFilters().catch((err) => console.error(err));
|
|
23
|
-
}, [refreshAllFilters]);
|
|
24
|
-
const saveFilter = react.useCallback(
|
|
25
|
-
async (filter) => {
|
|
26
|
-
await save(filter);
|
|
27
|
-
await refreshAllFilters();
|
|
28
|
-
},
|
|
29
|
-
[save, refreshAllFilters]
|
|
30
|
-
);
|
|
31
|
-
return {
|
|
32
|
-
allFilters,
|
|
33
|
-
getFilterById: get,
|
|
34
|
-
saveFilter
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
exports.useFilterConfig = useFilterConfig;
|
|
39
|
-
//# sourceMappingURL=use-filter-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-filter-config.js","sources":["../src/use-filter-config.ts"],"sourcesContent":["import { NamedDataSourceFilter } from \"@vuu-ui/vuu-data-types\";\nimport { SaveLocation } from \"@vuu-ui/vuu-shell\";\nimport { useRestEntityStore } from \"./use-rest-config\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport type { VuuUser } from \"@vuu-ui/vuu-utils\";\n\nexport interface FilterConfigHookProps {\n user: VuuUser;\n saveUrl?: string;\n saveLocation: SaveLocation;\n}\n\nexport const useFilterConfig = ({\n user,\n saveUrl = \"api/vui/filters\",\n saveLocation = \"local\", // TODO: \"remote\" is not supported yet\n}: FilterConfigHookProps) => {\n const [allFilters, setAllFilters] = useState<NamedDataSourceFilter[]>();\n\n const { get, getAll, save } = useRestEntityStore<NamedDataSourceFilter>({\n baseUrl: `${saveUrl}/${user.username}`,\n saveLocation,\n });\n\n const refreshAllFilters = useCallback(async () => {\n const filters = await getAll();\n setAllFilters(filters);\n }, [getAll]);\n\n useEffect(() => {\n refreshAllFilters().catch((err) => console.error(err));\n }, [refreshAllFilters]);\n\n const saveFilter = useCallback(\n async (filter: NamedDataSourceFilter) => {\n await save(filter);\n await refreshAllFilters();\n },\n [save, refreshAllFilters]\n );\n\n return {\n allFilters,\n getFilterById: get,\n saveFilter,\n };\n};\n"],"names":["useState","useRestEntityStore","useCallback","useEffect"],"mappings":";;;;;AAYO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAA;AAAA,EACA,OAAU,GAAA,iBAAA;AAAA,EACV,YAAe,GAAA,OAAA;AAAA;AACjB,CAA6B,KAAA;AAC3B,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,cAAkC,EAAA,CAAA;AAEtE,EAAA,MAAM,EAAE,GAAA,EAAK,MAAQ,EAAA,IAAA,KAASC,gCAA0C,CAAA;AAAA,IACtE,OAAS,EAAA,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,KAAK,QAAQ,CAAA,CAAA;AAAA,IACpC,YAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,iBAAA,GAAoBC,kBAAY,YAAY;AAChD,IAAM,MAAA,OAAA,GAAU,MAAM,MAAO,EAAA,CAAA;AAC7B,IAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,GACvB,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,iBAAA,GAAoB,KAAM,CAAA,CAAC,QAAQ,OAAQ,CAAA,KAAA,CAAM,GAAG,CAAC,CAAA,CAAA;AAAA,GACvD,EAAG,CAAC,iBAAiB,CAAC,CAAA,CAAA;AAEtB,EAAA,MAAM,UAAa,GAAAD,iBAAA;AAAA,IACjB,OAAO,MAAkC,KAAA;AACvC,MAAA,MAAM,KAAK,MAAM,CAAA,CAAA;AACjB,MAAA,MAAM,iBAAkB,EAAA,CAAA;AAAA,KAC1B;AAAA,IACA,CAAC,MAAM,iBAAiB,CAAA;AAAA,GAC1B,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,aAAe,EAAA,GAAA;AAAA,IACf,UAAA;AAAA,GACF,CAAA;AACF;;;;"}
|
package/cjs/use-rest-config.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var vuuUtils = require('@vuu-ui/vuu-utils');
|
|
4
|
-
var react = require('react');
|
|
5
|
-
|
|
6
|
-
const useRestEntityStore = ({
|
|
7
|
-
baseUrl,
|
|
8
|
-
saveLocation
|
|
9
|
-
}) => {
|
|
10
|
-
const usingLocal = saveLocation === "local";
|
|
11
|
-
const getAll = react.useCallback(async () => {
|
|
12
|
-
if (usingLocal)
|
|
13
|
-
return vuuUtils.getAllLocalEntity(baseUrl);
|
|
14
|
-
try {
|
|
15
|
-
const response = await fetch(baseUrl, {});
|
|
16
|
-
if (response.ok) {
|
|
17
|
-
return await response.json();
|
|
18
|
-
}
|
|
19
|
-
} catch {
|
|
20
|
-
console.error(`Failed to load entity at ${baseUrl}`);
|
|
21
|
-
}
|
|
22
|
-
}, [baseUrl, usingLocal]);
|
|
23
|
-
const get = react.useCallback(
|
|
24
|
-
async (id) => {
|
|
25
|
-
if (usingLocal)
|
|
26
|
-
return vuuUtils.getLocalEntity(`${baseUrl}/${id}`);
|
|
27
|
-
try {
|
|
28
|
-
const response = await fetch(`${baseUrl}/${id}`, {});
|
|
29
|
-
if (response.ok) {
|
|
30
|
-
return await response.json();
|
|
31
|
-
}
|
|
32
|
-
} catch {
|
|
33
|
-
console.error(`Failed to load entity at ${baseUrl}/${id}`);
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
[baseUrl, usingLocal]
|
|
37
|
-
);
|
|
38
|
-
const save = react.useCallback(
|
|
39
|
-
async (data) => {
|
|
40
|
-
if (usingLocal)
|
|
41
|
-
return vuuUtils.saveLocalEntity(`${baseUrl}/${vuuUtils.uuid()}`, data);
|
|
42
|
-
try {
|
|
43
|
-
const response = await fetch(baseUrl, {
|
|
44
|
-
method: "POST",
|
|
45
|
-
headers: {
|
|
46
|
-
"Content-Type": "application/json"
|
|
47
|
-
},
|
|
48
|
-
body: JSON.stringify(data)
|
|
49
|
-
});
|
|
50
|
-
if (response.ok) {
|
|
51
|
-
return await response.json();
|
|
52
|
-
}
|
|
53
|
-
} catch {
|
|
54
|
-
console.error(`Failed to save entity at ${baseUrl}`);
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
[baseUrl, usingLocal]
|
|
58
|
-
);
|
|
59
|
-
return { getAll, get, save };
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
exports.useRestEntityStore = useRestEntityStore;
|
|
63
|
-
//# sourceMappingURL=use-rest-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-rest-config.js","sources":["../src/use-rest-config.ts"],"sourcesContent":["import { SaveLocation } from \"@vuu-ui/vuu-shell\";\nimport {\n getAllLocalEntity,\n getLocalEntity,\n saveLocalEntity,\n uuid,\n} from \"@vuu-ui/vuu-utils\";\nimport { useCallback } from \"react\";\n\ntype EntityStoreProps = {\n baseUrl: string;\n saveLocation: SaveLocation;\n};\n\nexport const useRestEntityStore = <T>({\n baseUrl,\n saveLocation,\n}: EntityStoreProps) => {\n const usingLocal = saveLocation === \"local\";\n\n const getAll = useCallback(async (): Promise<T[] | undefined> => {\n if (usingLocal) return getAllLocalEntity(baseUrl);\n try {\n const response = await fetch(baseUrl, {});\n if (response.ok) {\n return await response.json();\n }\n } catch {\n console.error(`Failed to load entity at ${baseUrl}`);\n }\n }, [baseUrl, usingLocal]);\n\n const get = useCallback(\n async (id: string): Promise<T | undefined> => {\n if (usingLocal) return getLocalEntity(`${baseUrl}/${id}`);\n try {\n const response = await fetch(`${baseUrl}/${id}`, {});\n if (response.ok) {\n return await response.json();\n }\n } catch {\n console.error(`Failed to load entity at ${baseUrl}/${id}`);\n }\n },\n [baseUrl, usingLocal]\n );\n\n const save = useCallback(\n async (data: T): Promise<T | undefined> => {\n if (usingLocal) return saveLocalEntity(`${baseUrl}/${uuid()}`, data);\n try {\n const response = await fetch(baseUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n });\n if (response.ok) {\n return await response.json();\n }\n } catch {\n console.error(`Failed to save entity at ${baseUrl}`);\n }\n },\n [baseUrl, usingLocal]\n );\n\n return { getAll, get, save };\n};\n"],"names":["useCallback","getAllLocalEntity","getLocalEntity","saveLocalEntity","uuid"],"mappings":";;;;;AAcO,MAAM,qBAAqB,CAAI;AAAA,EACpC,OAAA;AAAA,EACA,YAAA;AACF,CAAwB,KAAA;AACtB,EAAA,MAAM,aAAa,YAAiB,KAAA,OAAA,CAAA;AAEpC,EAAM,MAAA,MAAA,GAASA,kBAAY,YAAsC;AAC/D,IAAI,IAAA,UAAA;AAAY,MAAA,OAAOC,2BAAkB,OAAO,CAAA,CAAA;AAChD,IAAI,IAAA;AACF,MAAA,MAAM,QAAW,GAAA,MAAM,KAAM,CAAA,OAAA,EAAS,EAAE,CAAA,CAAA;AACxC,MAAA,IAAI,SAAS,EAAI,EAAA;AACf,QAAO,OAAA,MAAM,SAAS,IAAK,EAAA,CAAA;AAAA,OAC7B;AAAA,KACM,CAAA,MAAA;AACN,MAAQ,OAAA,CAAA,KAAA,CAAM,CAA4B,yBAAA,EAAA,OAAO,CAAE,CAAA,CAAA,CAAA;AAAA,KACrD;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA,CAAA;AAExB,EAAA,MAAM,GAAM,GAAAD,iBAAA;AAAA,IACV,OAAO,EAAuC,KAAA;AAC5C,MAAI,IAAA,UAAA;AAAY,QAAA,OAAOE,uBAAe,CAAA,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,EAAE,CAAE,CAAA,CAAA,CAAA;AACxD,MAAI,IAAA;AACF,QAAM,MAAA,QAAA,GAAW,MAAM,KAAM,CAAA,CAAA,EAAG,OAAO,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,EAAE,CAAA,CAAA;AACnD,QAAA,IAAI,SAAS,EAAI,EAAA;AACf,UAAO,OAAA,MAAM,SAAS,IAAK,EAAA,CAAA;AAAA,SAC7B;AAAA,OACM,CAAA,MAAA;AACN,QAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,yBAAA,EAA4B,OAAO,CAAA,CAAA,EAAI,EAAE,CAAE,CAAA,CAAA,CAAA;AAAA,OAC3D;AAAA,KACF;AAAA,IACA,CAAC,SAAS,UAAU,CAAA;AAAA,GACtB,CAAA;AAEA,EAAA,MAAM,IAAO,GAAAF,iBAAA;AAAA,IACX,OAAO,IAAoC,KAAA;AACzC,MAAI,IAAA,UAAA;AAAY,QAAA,OAAOG,yBAAgB,CAAG,EAAA,OAAO,IAAIC,aAAK,EAAC,IAAI,IAAI,CAAA,CAAA;AACnE,MAAI,IAAA;AACF,QAAM,MAAA,QAAA,GAAW,MAAM,KAAA,CAAM,OAAS,EAAA;AAAA,UACpC,MAAQ,EAAA,MAAA;AAAA,UACR,OAAS,EAAA;AAAA,YACP,cAAgB,EAAA,kBAAA;AAAA,WAClB;AAAA,UACA,IAAA,EAAM,IAAK,CAAA,SAAA,CAAU,IAAI,CAAA;AAAA,SAC1B,CAAA,CAAA;AACD,QAAA,IAAI,SAAS,EAAI,EAAA;AACf,UAAO,OAAA,MAAM,SAAS,IAAK,EAAA,CAAA;AAAA,SAC7B;AAAA,OACM,CAAA,MAAA;AACN,QAAQ,OAAA,CAAA,KAAA,CAAM,CAA4B,yBAAA,EAAA,OAAO,CAAE,CAAA,CAAA,CAAA;AAAA,OACrD;AAAA,KACF;AAAA,IACA,CAAC,SAAS,UAAU,CAAA;AAAA,GACtB,CAAA;AAEA,EAAO,OAAA,EAAE,MAAQ,EAAA,GAAA,EAAK,IAAK,EAAA,CAAA;AAC7B;;;;"}
|
package/esm/use-filter-config.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { useRestEntityStore } from './use-rest-config.js';
|
|
2
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
3
|
-
|
|
4
|
-
const useFilterConfig = ({
|
|
5
|
-
user,
|
|
6
|
-
saveUrl = "api/vui/filters",
|
|
7
|
-
saveLocation = "local"
|
|
8
|
-
// TODO: "remote" is not supported yet
|
|
9
|
-
}) => {
|
|
10
|
-
const [allFilters, setAllFilters] = useState();
|
|
11
|
-
const { get, getAll, save } = useRestEntityStore({
|
|
12
|
-
baseUrl: `${saveUrl}/${user.username}`,
|
|
13
|
-
saveLocation
|
|
14
|
-
});
|
|
15
|
-
const refreshAllFilters = useCallback(async () => {
|
|
16
|
-
const filters = await getAll();
|
|
17
|
-
setAllFilters(filters);
|
|
18
|
-
}, [getAll]);
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
refreshAllFilters().catch((err) => console.error(err));
|
|
21
|
-
}, [refreshAllFilters]);
|
|
22
|
-
const saveFilter = useCallback(
|
|
23
|
-
async (filter) => {
|
|
24
|
-
await save(filter);
|
|
25
|
-
await refreshAllFilters();
|
|
26
|
-
},
|
|
27
|
-
[save, refreshAllFilters]
|
|
28
|
-
);
|
|
29
|
-
return {
|
|
30
|
-
allFilters,
|
|
31
|
-
getFilterById: get,
|
|
32
|
-
saveFilter
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export { useFilterConfig };
|
|
37
|
-
//# sourceMappingURL=use-filter-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-filter-config.js","sources":["../src/use-filter-config.ts"],"sourcesContent":["import { NamedDataSourceFilter } from \"@vuu-ui/vuu-data-types\";\nimport { SaveLocation } from \"@vuu-ui/vuu-shell\";\nimport { useRestEntityStore } from \"./use-rest-config\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport type { VuuUser } from \"@vuu-ui/vuu-utils\";\n\nexport interface FilterConfigHookProps {\n user: VuuUser;\n saveUrl?: string;\n saveLocation: SaveLocation;\n}\n\nexport const useFilterConfig = ({\n user,\n saveUrl = \"api/vui/filters\",\n saveLocation = \"local\", // TODO: \"remote\" is not supported yet\n}: FilterConfigHookProps) => {\n const [allFilters, setAllFilters] = useState<NamedDataSourceFilter[]>();\n\n const { get, getAll, save } = useRestEntityStore<NamedDataSourceFilter>({\n baseUrl: `${saveUrl}/${user.username}`,\n saveLocation,\n });\n\n const refreshAllFilters = useCallback(async () => {\n const filters = await getAll();\n setAllFilters(filters);\n }, [getAll]);\n\n useEffect(() => {\n refreshAllFilters().catch((err) => console.error(err));\n }, [refreshAllFilters]);\n\n const saveFilter = useCallback(\n async (filter: NamedDataSourceFilter) => {\n await save(filter);\n await refreshAllFilters();\n },\n [save, refreshAllFilters]\n );\n\n return {\n allFilters,\n getFilterById: get,\n saveFilter,\n };\n};\n"],"names":[],"mappings":";;;AAYO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAA;AAAA,EACA,OAAU,GAAA,iBAAA;AAAA,EACV,YAAe,GAAA,OAAA;AAAA;AACjB,CAA6B,KAAA;AAC3B,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,QAAkC,EAAA,CAAA;AAEtE,EAAA,MAAM,EAAE,GAAA,EAAK,MAAQ,EAAA,IAAA,KAAS,kBAA0C,CAAA;AAAA,IACtE,OAAS,EAAA,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,KAAK,QAAQ,CAAA,CAAA;AAAA,IACpC,YAAA;AAAA,GACD,CAAA,CAAA;AAED,EAAM,MAAA,iBAAA,GAAoB,YAAY,YAAY;AAChD,IAAM,MAAA,OAAA,GAAU,MAAM,MAAO,EAAA,CAAA;AAC7B,IAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,GACvB,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,iBAAA,GAAoB,KAAM,CAAA,CAAC,QAAQ,OAAQ,CAAA,KAAA,CAAM,GAAG,CAAC,CAAA,CAAA;AAAA,GACvD,EAAG,CAAC,iBAAiB,CAAC,CAAA,CAAA;AAEtB,EAAA,MAAM,UAAa,GAAA,WAAA;AAAA,IACjB,OAAO,MAAkC,KAAA;AACvC,MAAA,MAAM,KAAK,MAAM,CAAA,CAAA;AACjB,MAAA,MAAM,iBAAkB,EAAA,CAAA;AAAA,KAC1B;AAAA,IACA,CAAC,MAAM,iBAAiB,CAAA;AAAA,GAC1B,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,aAAe,EAAA,GAAA;AAAA,IACf,UAAA;AAAA,GACF,CAAA;AACF;;;;"}
|
package/esm/use-rest-config.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { getAllLocalEntity, getLocalEntity, saveLocalEntity, uuid } from '@vuu-ui/vuu-utils';
|
|
2
|
-
import { useCallback } from 'react';
|
|
3
|
-
|
|
4
|
-
const useRestEntityStore = ({
|
|
5
|
-
baseUrl,
|
|
6
|
-
saveLocation
|
|
7
|
-
}) => {
|
|
8
|
-
const usingLocal = saveLocation === "local";
|
|
9
|
-
const getAll = useCallback(async () => {
|
|
10
|
-
if (usingLocal)
|
|
11
|
-
return getAllLocalEntity(baseUrl);
|
|
12
|
-
try {
|
|
13
|
-
const response = await fetch(baseUrl, {});
|
|
14
|
-
if (response.ok) {
|
|
15
|
-
return await response.json();
|
|
16
|
-
}
|
|
17
|
-
} catch {
|
|
18
|
-
console.error(`Failed to load entity at ${baseUrl}`);
|
|
19
|
-
}
|
|
20
|
-
}, [baseUrl, usingLocal]);
|
|
21
|
-
const get = useCallback(
|
|
22
|
-
async (id) => {
|
|
23
|
-
if (usingLocal)
|
|
24
|
-
return getLocalEntity(`${baseUrl}/${id}`);
|
|
25
|
-
try {
|
|
26
|
-
const response = await fetch(`${baseUrl}/${id}`, {});
|
|
27
|
-
if (response.ok) {
|
|
28
|
-
return await response.json();
|
|
29
|
-
}
|
|
30
|
-
} catch {
|
|
31
|
-
console.error(`Failed to load entity at ${baseUrl}/${id}`);
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
[baseUrl, usingLocal]
|
|
35
|
-
);
|
|
36
|
-
const save = useCallback(
|
|
37
|
-
async (data) => {
|
|
38
|
-
if (usingLocal)
|
|
39
|
-
return saveLocalEntity(`${baseUrl}/${uuid()}`, data);
|
|
40
|
-
try {
|
|
41
|
-
const response = await fetch(baseUrl, {
|
|
42
|
-
method: "POST",
|
|
43
|
-
headers: {
|
|
44
|
-
"Content-Type": "application/json"
|
|
45
|
-
},
|
|
46
|
-
body: JSON.stringify(data)
|
|
47
|
-
});
|
|
48
|
-
if (response.ok) {
|
|
49
|
-
return await response.json();
|
|
50
|
-
}
|
|
51
|
-
} catch {
|
|
52
|
-
console.error(`Failed to save entity at ${baseUrl}`);
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
[baseUrl, usingLocal]
|
|
56
|
-
);
|
|
57
|
-
return { getAll, get, save };
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
export { useRestEntityStore };
|
|
61
|
-
//# sourceMappingURL=use-rest-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-rest-config.js","sources":["../src/use-rest-config.ts"],"sourcesContent":["import { SaveLocation } from \"@vuu-ui/vuu-shell\";\nimport {\n getAllLocalEntity,\n getLocalEntity,\n saveLocalEntity,\n uuid,\n} from \"@vuu-ui/vuu-utils\";\nimport { useCallback } from \"react\";\n\ntype EntityStoreProps = {\n baseUrl: string;\n saveLocation: SaveLocation;\n};\n\nexport const useRestEntityStore = <T>({\n baseUrl,\n saveLocation,\n}: EntityStoreProps) => {\n const usingLocal = saveLocation === \"local\";\n\n const getAll = useCallback(async (): Promise<T[] | undefined> => {\n if (usingLocal) return getAllLocalEntity(baseUrl);\n try {\n const response = await fetch(baseUrl, {});\n if (response.ok) {\n return await response.json();\n }\n } catch {\n console.error(`Failed to load entity at ${baseUrl}`);\n }\n }, [baseUrl, usingLocal]);\n\n const get = useCallback(\n async (id: string): Promise<T | undefined> => {\n if (usingLocal) return getLocalEntity(`${baseUrl}/${id}`);\n try {\n const response = await fetch(`${baseUrl}/${id}`, {});\n if (response.ok) {\n return await response.json();\n }\n } catch {\n console.error(`Failed to load entity at ${baseUrl}/${id}`);\n }\n },\n [baseUrl, usingLocal]\n );\n\n const save = useCallback(\n async (data: T): Promise<T | undefined> => {\n if (usingLocal) return saveLocalEntity(`${baseUrl}/${uuid()}`, data);\n try {\n const response = await fetch(baseUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n });\n if (response.ok) {\n return await response.json();\n }\n } catch {\n console.error(`Failed to save entity at ${baseUrl}`);\n }\n },\n [baseUrl, usingLocal]\n );\n\n return { getAll, get, save };\n};\n"],"names":[],"mappings":";;;AAcO,MAAM,qBAAqB,CAAI;AAAA,EACpC,OAAA;AAAA,EACA,YAAA;AACF,CAAwB,KAAA;AACtB,EAAA,MAAM,aAAa,YAAiB,KAAA,OAAA,CAAA;AAEpC,EAAM,MAAA,MAAA,GAAS,YAAY,YAAsC;AAC/D,IAAI,IAAA,UAAA;AAAY,MAAA,OAAO,kBAAkB,OAAO,CAAA,CAAA;AAChD,IAAI,IAAA;AACF,MAAA,MAAM,QAAW,GAAA,MAAM,KAAM,CAAA,OAAA,EAAS,EAAE,CAAA,CAAA;AACxC,MAAA,IAAI,SAAS,EAAI,EAAA;AACf,QAAO,OAAA,MAAM,SAAS,IAAK,EAAA,CAAA;AAAA,OAC7B;AAAA,KACM,CAAA,MAAA;AACN,MAAQ,OAAA,CAAA,KAAA,CAAM,CAA4B,yBAAA,EAAA,OAAO,CAAE,CAAA,CAAA,CAAA;AAAA,KACrD;AAAA,GACC,EAAA,CAAC,OAAS,EAAA,UAAU,CAAC,CAAA,CAAA;AAExB,EAAA,MAAM,GAAM,GAAA,WAAA;AAAA,IACV,OAAO,EAAuC,KAAA;AAC5C,MAAI,IAAA,UAAA;AAAY,QAAA,OAAO,cAAe,CAAA,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,EAAE,CAAE,CAAA,CAAA,CAAA;AACxD,MAAI,IAAA;AACF,QAAM,MAAA,QAAA,GAAW,MAAM,KAAM,CAAA,CAAA,EAAG,OAAO,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,EAAE,CAAA,CAAA;AACnD,QAAA,IAAI,SAAS,EAAI,EAAA;AACf,UAAO,OAAA,MAAM,SAAS,IAAK,EAAA,CAAA;AAAA,SAC7B;AAAA,OACM,CAAA,MAAA;AACN,QAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,yBAAA,EAA4B,OAAO,CAAA,CAAA,EAAI,EAAE,CAAE,CAAA,CAAA,CAAA;AAAA,OAC3D;AAAA,KACF;AAAA,IACA,CAAC,SAAS,UAAU,CAAA;AAAA,GACtB,CAAA;AAEA,EAAA,MAAM,IAAO,GAAA,WAAA;AAAA,IACX,OAAO,IAAoC,KAAA;AACzC,MAAI,IAAA,UAAA;AAAY,QAAA,OAAO,gBAAgB,CAAG,EAAA,OAAO,IAAI,IAAK,EAAC,IAAI,IAAI,CAAA,CAAA;AACnE,MAAI,IAAA;AACF,QAAM,MAAA,QAAA,GAAW,MAAM,KAAA,CAAM,OAAS,EAAA;AAAA,UACpC,MAAQ,EAAA,MAAA;AAAA,UACR,OAAS,EAAA;AAAA,YACP,cAAgB,EAAA,kBAAA;AAAA,WAClB;AAAA,UACA,IAAA,EAAM,IAAK,CAAA,SAAA,CAAU,IAAI,CAAA;AAAA,SAC1B,CAAA,CAAA;AACD,QAAA,IAAI,SAAS,EAAI,EAAA;AACf,UAAO,OAAA,MAAM,SAAS,IAAK,EAAA,CAAA;AAAA,SAC7B;AAAA,OACM,CAAA,MAAA;AACN,QAAQ,OAAA,CAAA,KAAA,CAAM,CAA4B,yBAAA,EAAA,OAAO,CAAE,CAAA,CAAA,CAAA;AAAA,OACrD;AAAA,KACF;AAAA,IACA,CAAC,SAAS,UAAU,CAAA;AAAA,GACtB,CAAA;AAEA,EAAO,OAAA,EAAE,MAAQ,EAAA,GAAA,EAAK,IAAK,EAAA,CAAA;AAC7B;;;;"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { NamedDataSourceFilter } from "@vuu-ui/vuu-data-types";
|
|
2
|
-
import { SaveLocation } from "@vuu-ui/vuu-shell";
|
|
3
|
-
import type { VuuUser } from "@vuu-ui/vuu-utils";
|
|
4
|
-
export interface FilterConfigHookProps {
|
|
5
|
-
user: VuuUser;
|
|
6
|
-
saveUrl?: string;
|
|
7
|
-
saveLocation: SaveLocation;
|
|
8
|
-
}
|
|
9
|
-
export declare const useFilterConfig: ({ user, saveUrl, saveLocation, }: FilterConfigHookProps) => {
|
|
10
|
-
allFilters: NamedDataSourceFilter[] | undefined;
|
|
11
|
-
getFilterById: (id: string) => Promise<NamedDataSourceFilter | undefined>;
|
|
12
|
-
saveFilter: (filter: NamedDataSourceFilter) => Promise<void>;
|
|
13
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { SaveLocation } from "@vuu-ui/vuu-shell";
|
|
2
|
-
type EntityStoreProps = {
|
|
3
|
-
baseUrl: string;
|
|
4
|
-
saveLocation: SaveLocation;
|
|
5
|
-
};
|
|
6
|
-
export declare const useRestEntityStore: <T>({ baseUrl, saveLocation, }: EntityStoreProps) => {
|
|
7
|
-
getAll: () => Promise<T[] | undefined>;
|
|
8
|
-
get: (id: string) => Promise<T | undefined>;
|
|
9
|
-
save: (data: T) => Promise<T | undefined>;
|
|
10
|
-
};
|
|
11
|
-
export {};
|