@contember/react-select 1.3.0-alpha.20 → 1.3.0-alpha.22
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/development/components/MultiSelect.cjs +15 -8
- package/dist/development/components/MultiSelect.cjs.map +1 -1
- package/dist/development/components/MultiSelect.js +16 -9
- package/dist/development/components/MultiSelect.js.map +1 -1
- package/dist/development/components/Select.cjs +15 -8
- package/dist/development/components/Select.cjs.map +1 -1
- package/dist/development/components/Select.js +16 -9
- package/dist/development/components/Select.js.map +1 -1
- package/dist/development/components/SelectDataView.cjs +23 -5
- package/dist/development/components/SelectDataView.cjs.map +1 -1
- package/dist/development/components/SelectDataView.js +24 -6
- package/dist/development/components/SelectDataView.js.map +1 -1
- package/dist/development/components/SortableMultiSelect.cjs +30 -10
- package/dist/development/components/SortableMultiSelect.cjs.map +1 -1
- package/dist/development/components/SortableMultiSelect.js +32 -12
- package/dist/development/components/SortableMultiSelect.js.map +1 -1
- package/dist/development/contexts.cjs +5 -0
- package/dist/development/contexts.cjs.map +1 -1
- package/dist/development/contexts.js +6 -1
- package/dist/development/contexts.js.map +1 -1
- package/dist/development/hooks/useSelectFilter.cjs +31 -0
- package/dist/development/hooks/useSelectFilter.cjs.map +1 -0
- package/dist/development/hooks/useSelectFilter.js +31 -0
- package/dist/development/hooks/useSelectFilter.js.map +1 -0
- package/dist/development/index.cjs +4 -0
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +6 -2
- package/dist/development/index.js.map +1 -1
- package/dist/production/components/MultiSelect.cjs +6 -3
- package/dist/production/components/MultiSelect.cjs.map +1 -1
- package/dist/production/components/MultiSelect.js +7 -4
- package/dist/production/components/MultiSelect.js.map +1 -1
- package/dist/production/components/Select.cjs +6 -3
- package/dist/production/components/Select.cjs.map +1 -1
- package/dist/production/components/Select.js +7 -4
- package/dist/production/components/Select.js.map +1 -1
- package/dist/production/components/SelectDataView.cjs +15 -1
- package/dist/production/components/SelectDataView.cjs.map +1 -1
- package/dist/production/components/SelectDataView.js +16 -2
- package/dist/production/components/SelectDataView.js.map +1 -1
- package/dist/production/components/SortableMultiSelect.cjs +19 -3
- package/dist/production/components/SortableMultiSelect.cjs.map +1 -1
- package/dist/production/components/SortableMultiSelect.js +21 -5
- package/dist/production/components/SortableMultiSelect.js.map +1 -1
- package/dist/production/contexts.cjs +5 -0
- package/dist/production/contexts.cjs.map +1 -1
- package/dist/production/contexts.js +6 -1
- package/dist/production/contexts.js.map +1 -1
- package/dist/production/hooks/useSelectFilter.cjs +31 -0
- package/dist/production/hooks/useSelectFilter.cjs.map +1 -0
- package/dist/production/hooks/useSelectFilter.js +31 -0
- package/dist/production/hooks/useSelectFilter.js.map +1 -0
- package/dist/production/index.cjs +4 -0
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +6 -2
- package/dist/production/index.js.map +1 -1
- package/dist/types/components/MultiSelect.d.ts +5 -4
- package/dist/types/components/MultiSelect.d.ts.map +1 -1
- package/dist/types/components/Select.d.ts +5 -4
- package/dist/types/components/Select.d.ts.map +1 -1
- package/dist/types/components/SelectDataView.d.ts.map +1 -1
- package/dist/types/components/SortableMultiSelect.d.ts +5 -4
- package/dist/types/components/SortableMultiSelect.d.ts.map +1 -1
- package/dist/types/contexts.d.ts +4 -0
- package/dist/types/contexts.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useSelectFilter.d.ts +8 -0
- package/dist/types/hooks/useSelectFilter.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/components/MultiSelect.tsx +11 -5
- package/src/components/Select.tsx +12 -5
- package/src/components/SelectDataView.tsx +15 -4
- package/src/components/SortableMultiSelect.tsx +41 -6
- package/src/contexts.ts +6 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useSelectFilter.ts +35 -0
- package/src/index.ts +1 -0
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
2
2
|
import { useMemo, useCallback } from "react";
|
|
3
|
-
import { SelectCurrentEntitiesContext, SelectIsSelectedContext, SelectHandleSelectContext, SelectOptionsContext } from "../contexts.js";
|
|
4
|
-
import { Component, useEntityList, HasOne } from "@contember/react-binding";
|
|
3
|
+
import { SelectCurrentEntitiesContext, SelectIsSelectedContext, SelectHandleSelectContext, SelectOptionsContext, SelectOptionsFilterContext } from "../contexts.js";
|
|
4
|
+
import { Component, useEntityList, QueryLanguage, PlaceholderGenerator, FieldMarker, HasOne } from "@contember/react-binding";
|
|
5
5
|
import { useReferentiallyStableCallback } from "@contember/react-utils";
|
|
6
6
|
import { Repeater } from "@contember/react-repeater";
|
|
7
|
-
|
|
7
|
+
import { useSelectFilter } from "../hooks/useSelectFilter.js";
|
|
8
|
+
const SortableMultiSelect = Component(({ field, children, sortableBy, connectAt, options, onSelect, onUnselect, filterField }) => {
|
|
8
9
|
const list = useEntityList({ field });
|
|
9
10
|
const entitiesArr = useMemo(() => Array.from(list), [list]);
|
|
11
|
+
const optionsMarker = useMemo(() => {
|
|
12
|
+
const desugared = QueryLanguage.desugarRelativeSingleEntity({ field: connectAt }, list.environment);
|
|
13
|
+
let marker = list.getMarker();
|
|
14
|
+
for (let relation of desugared.hasOneRelationPath) {
|
|
15
|
+
const placeholder = PlaceholderGenerator.getHasOneRelationPlaceholder(relation);
|
|
16
|
+
const relationMarker = marker.fields.markers.get(placeholder);
|
|
17
|
+
if (!relationMarker || relationMarker instanceof FieldMarker) {
|
|
18
|
+
throw new Error("Invalid marker");
|
|
19
|
+
}
|
|
20
|
+
marker = relationMarker;
|
|
21
|
+
}
|
|
22
|
+
return marker;
|
|
23
|
+
}, [connectAt, list]);
|
|
24
|
+
options ?? (options = optionsMarker.environment.getSubTreeNode().entity.name);
|
|
25
|
+
const filter = useSelectFilter({ filterField, marker: optionsMarker });
|
|
10
26
|
const selectedEntities = useMemo(() => Array.from(list).map((it) => it.getEntity({ field: connectAt }).id), [connectAt, list]);
|
|
11
27
|
const handler = useReferentiallyStableCallback((entity, action = "toggle") => {
|
|
12
28
|
const isSelected2 = selectedEntities.includes(entity.id);
|
|
@@ -26,35 +42,39 @@ const SortableMultiSelect = Component(({ field, children, sortableBy, connectAt,
|
|
|
26
42
|
const isSelected = useCallback((entity) => {
|
|
27
43
|
return selectedEntities.includes(entity.id);
|
|
28
44
|
}, [selectedEntities]);
|
|
29
|
-
return /* @__PURE__ */ jsxDEV(Repeater, { field, sortableBy, initialEntityCount: 0, children: /* @__PURE__ */ jsxDEV(SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsxDEV(SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsxDEV(SelectHandleSelectContext.Provider, { value: handler, children: /* @__PURE__ */ jsxDEV(SelectOptionsContext.Provider, { value: options, children }, void 0, false, {
|
|
45
|
+
return /* @__PURE__ */ jsxDEV(Repeater, { field, sortableBy, initialEntityCount: 0, children: /* @__PURE__ */ jsxDEV(SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsxDEV(SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsxDEV(SelectHandleSelectContext.Provider, { value: handler, children: /* @__PURE__ */ jsxDEV(SelectOptionsContext.Provider, { value: options, children: /* @__PURE__ */ jsxDEV(SelectOptionsFilterContext.Provider, { value: filter, children }, void 0, false, {
|
|
46
|
+
fileName: "/__w/interface/interface/packages/react-select/src/components/SortableMultiSelect.tsx",
|
|
47
|
+
lineNumber: 82,
|
|
48
|
+
columnNumber: 8
|
|
49
|
+
}, void 0) }, void 0, false, {
|
|
30
50
|
fileName: "/__w/interface/interface/packages/react-select/src/components/SortableMultiSelect.tsx",
|
|
31
|
-
lineNumber:
|
|
51
|
+
lineNumber: 81,
|
|
32
52
|
columnNumber: 7
|
|
33
53
|
}, void 0) }, void 0, false, {
|
|
34
54
|
fileName: "/__w/interface/interface/packages/react-select/src/components/SortableMultiSelect.tsx",
|
|
35
|
-
lineNumber:
|
|
55
|
+
lineNumber: 80,
|
|
36
56
|
columnNumber: 6
|
|
37
57
|
}, void 0) }, void 0, false, {
|
|
38
58
|
fileName: "/__w/interface/interface/packages/react-select/src/components/SortableMultiSelect.tsx",
|
|
39
|
-
lineNumber:
|
|
59
|
+
lineNumber: 79,
|
|
40
60
|
columnNumber: 5
|
|
41
61
|
}, void 0) }, void 0, false, {
|
|
42
62
|
fileName: "/__w/interface/interface/packages/react-select/src/components/SortableMultiSelect.tsx",
|
|
43
|
-
lineNumber:
|
|
63
|
+
lineNumber: 78,
|
|
44
64
|
columnNumber: 4
|
|
45
65
|
}, void 0) }, void 0, false, {
|
|
46
66
|
fileName: "/__w/interface/interface/packages/react-select/src/components/SortableMultiSelect.tsx",
|
|
47
|
-
lineNumber:
|
|
67
|
+
lineNumber: 77,
|
|
48
68
|
columnNumber: 3
|
|
49
69
|
}, void 0);
|
|
50
70
|
}, ({ children, field, sortableBy, connectAt }) => {
|
|
51
|
-
return /* @__PURE__ */ jsxDEV(Repeater, { field, sortableBy, initialEntityCount: 0, children: /* @__PURE__ */ jsxDEV(HasOne, { field: connectAt, children }, void 0, false, {
|
|
71
|
+
return /* @__PURE__ */ jsxDEV(Repeater, { field, sortableBy, initialEntityCount: 0, children: /* @__PURE__ */ jsxDEV(HasOne, { field: connectAt, expectedMutation: "connectOrDisconnect", children }, void 0, false, {
|
|
52
72
|
fileName: "/__w/interface/interface/packages/react-select/src/components/SortableMultiSelect.tsx",
|
|
53
|
-
lineNumber:
|
|
73
|
+
lineNumber: 94,
|
|
54
74
|
columnNumber: 4
|
|
55
75
|
}, void 0) }, void 0, false, {
|
|
56
76
|
fileName: "/__w/interface/interface/packages/react-select/src/components/SortableMultiSelect.tsx",
|
|
57
|
-
lineNumber:
|
|
77
|
+
lineNumber: 93,
|
|
58
78
|
columnNumber: 3
|
|
59
79
|
}, void 0);
|
|
60
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortableMultiSelect.js","sources":["../../../src/components/SortableMultiSelect.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext } from '../contexts'\nimport {
|
|
1
|
+
{"version":3,"file":"SortableMultiSelect.js","sources":["../../../src/components/SortableMultiSelect.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext, SelectOptionsFilterContext } from '../contexts'\nimport {\n\tComponent,\n\tEntityAccessor,\n\tFieldMarker,\n\tHasOne,\n\tMeaningfulMarker,\n\tPlaceholderGenerator,\n\tQueryLanguage,\n\tSugaredQualifiedEntityList,\n\tSugaredRelativeEntityList,\n\tSugaredRelativeSingleEntity,\n\tSugaredRelativeSingleField,\n\tuseEntityList,\n} from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { Repeater } from '@contember/react-repeater'\nimport { SelectEvents } from '../types'\nimport { SelectFilterFieldProps, useSelectFilter } from '../hooks'\n\nexport type SortableMultiSelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeEntityList['field']\n\t\toptions?: SugaredQualifiedEntityList['entities']\n\t\tsortableBy: SugaredRelativeSingleField['field']\n\t\tconnectAt: SugaredRelativeSingleEntity['field']\n\t}\n\t& SelectFilterFieldProps\n\t& SelectEvents\n\nexport const SortableMultiSelect = Component(({ field, children, sortableBy, connectAt, options, onSelect, onUnselect, filterField }: SortableMultiSelectProps) => {\n\tconst list = useEntityList({ field })\n\tconst entitiesArr = useMemo(() => Array.from(list), [list])\n\n\tconst optionsMarker = useMemo(() => {\n\t\tconst desugared = QueryLanguage.desugarRelativeSingleEntity({ field: connectAt }, list.environment)\n\t\tlet marker: Exclude<MeaningfulMarker, FieldMarker> = list.getMarker()\n\t\tfor (let relation of desugared.hasOneRelationPath) {\n\t\t\tconst placeholder = PlaceholderGenerator.getHasOneRelationPlaceholder(relation)\n\t\t\tconst relationMarker = marker.fields.markers.get(placeholder)\n\t\t\tif (!relationMarker || relationMarker instanceof FieldMarker) {\n\t\t\t\tthrow new Error('Invalid marker')\n\t\t\t}\n\t\t\tmarker = relationMarker\n\t\t}\n\t\treturn marker\n\t}, [connectAt, list])\n\n\toptions ??= optionsMarker.environment.getSubTreeNode().entity.name\n\n\tconst filter = useSelectFilter({ filterField, marker: optionsMarker })\n\n\tconst selectedEntities = useMemo(() => Array.from(list).map(it => it.getEntity({ field: connectAt }).id), [connectAt, list])\n\n\tconst handler = useReferentiallyStableCallback<SelectHandler>((entity, action = 'toggle') => {\n\t\tconst isSelected = selectedEntities.includes(entity.id)\n\t\tif (action === 'toggle') {\n\t\t\taction = isSelected ? 'unselect' : 'select'\n\t\t}\n\t\tif (action === 'unselect' && isSelected) {\n\t\t\tArray.from(list).find(it => it.getEntity({ field: connectAt }).id === entity.id)?.deleteEntity()\n\t\t\tonUnselect?.(entity)\n\t\t} else if (action === 'select' && !isSelected) {\n\t\t\tlist.createNewEntity(getEntity => {\n\t\t\t\tgetEntity().connectEntityAtField({ field: connectAt }, entity)\n\t\t\t\tonSelect?.(entity)\n\t\t\t})\n\t\t}\n\t})\n\tconst isSelected = useCallback((entity: EntityAccessor) => {\n\t\treturn selectedEntities.includes(entity.id)\n\t}, [selectedEntities])\n\n\treturn (\n\t\t<Repeater field={field} sortableBy={sortableBy} initialEntityCount={0}>\n\t\t\t<SelectCurrentEntitiesContext.Provider value={entitiesArr}>\n\t\t\t\t<SelectIsSelectedContext.Provider value={isSelected}>\n\t\t\t\t\t<SelectHandleSelectContext.Provider value={handler}>\n\t\t\t\t\t\t<SelectOptionsContext.Provider value={options}>\n\t\t\t\t\t\t\t<SelectOptionsFilterContext.Provider value={filter}>\n\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t</SelectOptionsFilterContext.Provider>\n\t\t\t\t\t\t</SelectOptionsContext.Provider>\n\t\t\t\t\t</SelectHandleSelectContext.Provider>\n\t\t\t\t</SelectIsSelectedContext.Provider>\n\t\t\t</SelectCurrentEntitiesContext.Provider>\n\t\t</Repeater>\n\t)\n}, ({ children, field, sortableBy, connectAt }) => {\n\treturn (\n\t\t<Repeater field={field} sortableBy={sortableBy} initialEntityCount={0}>\n\t\t\t<HasOne field={connectAt} expectedMutation=\"connectOrDisconnect\">\n\t\t\t\t{children}\n\t\t\t</HasOne>\n\t\t</Repeater>\n\t)\n})\n\n"],"names":["isSelected","this"],"mappings":";;;;;;;AAgCO,MAAM,sBAAsB,UAAU,CAAC,EAAE,OAAO,UAAU,YAAY,WAAW,SAAS,UAAU,YAAY,YAAA,MAA4C;AAClK,QAAM,OAAO,cAAc,EAAE,MAAO,CAAA;AAC9B,QAAA,cAAc,QAAQ,MAAM,MAAM,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;AAEpD,QAAA,gBAAgB,QAAQ,MAAM;AAC7B,UAAA,YAAY,cAAc,4BAA4B,EAAE,OAAO,UAAU,GAAG,KAAK,WAAW;AAC9F,QAAA,SAAiD,KAAK;AACjD,aAAA,YAAY,UAAU,oBAAoB;AAC5C,YAAA,cAAc,qBAAqB,6BAA6B,QAAQ;AAC9E,YAAM,iBAAiB,OAAO,OAAO,QAAQ,IAAI,WAAW;AACxD,UAAA,CAAC,kBAAkB,0BAA0B,aAAa;AACvD,cAAA,IAAI,MAAM,gBAAgB;AAAA,MACjC;AACS,eAAA;AAAA,IACV;AACO,WAAA;AAAA,EAAA,GACL,CAAC,WAAW,IAAI,CAAC;AAEpB,wBAAY,cAAc,YAAY,eAAe,EAAE,OAAO;AAE9D,QAAM,SAAS,gBAAgB,EAAE,aAAa,QAAQ,eAAe;AAE/D,QAAA,mBAAmB,QAAQ,MAAM,MAAM,KAAK,IAAI,EAAE,IAAI,CAAM,OAAA,GAAG,UAAU,EAAE,OAAO,WAAW,EAAE,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC;AAE3H,QAAM,UAAU,+BAA8C,CAAC,QAAQ,SAAS,aAAa;AAC5F,UAAMA,cAAa,iBAAiB,SAAS,OAAO,EAAE;AACtD,QAAI,WAAW,UAAU;AACxB,eAASA,cAAa,aAAa;AAAA,IACpC;AACI,QAAA,WAAW,cAAcA,aAAY;AACxC,YAAM,KAAK,IAAI,EAAE,KAAK,CAAA,OAAM,GAAG,UAAU,EAAE,OAAO,UAAW,CAAA,EAAE,OAAO,OAAO,EAAE,GAAG;AAClF,mBAAa,MAAM;AAAA,IACT,WAAA,WAAW,YAAY,CAACA,aAAY;AAC9C,WAAK,gBAAgB,CAAa,cAAA;AACjC,kBAAA,EAAY,qBAAqB,EAAE,OAAO,UAAA,GAAa,MAAM;AAC7D,mBAAW,MAAM;AAAA,MAAA,CACjB;AAAA,IACF;AAAA,EAAA,CACA;AACK,QAAA,aAAa,YAAY,CAAC,WAA2B;AACnD,WAAA,iBAAiB,SAAS,OAAO,EAAE;AAAA,EAAA,GACxC,CAAC,gBAAgB,CAAC;AAErB,gCACE,UAAS,EAAA,OAAc,YAAwB,oBAAoB,GACnE,UAAC,uBAAA,6BAA6B,UAA7B,EAAsC,OAAO,aAC7C,UAAA,uBAAC,wBAAwB,UAAxB,EAAiC,OAAO,YACxC,UAAC,uBAAA,0BAA0B,UAA1B,EAAmC,OAAO,SAC1C,UAAA,uBAAC,qBAAqB,UAArB,EAA8B,OAAO,SACrC,iCAAC,2BAA2B,UAA3B,EAAoC,OAAO,QAC1C,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAIA,EALD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAMA,EAPD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAQA,EATD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAUA,EAXD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAYA,GAAAA,MAAA;AAEF,GAAG,CAAC,EAAE,UAAU,OAAO,YAAY,gBAAgB;AAClD,SACE,uBAAA,UAAA,EAAS,OAAc,YAAwB,oBAAoB,GACnE,UAAC,uBAAA,QAAA,EAAO,OAAO,WAAW,kBAAiB,uBACzC,YADF,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAIA,GAAAA,MAAA;AAEF,CAAC;"}
|
|
@@ -13,12 +13,17 @@ const useSelectHandleSelect = _SelectHandleSelectContext[1];
|
|
|
13
13
|
const _SelectOptionsContext = reactUtils.createRequiredContext("SelectOptionsContext");
|
|
14
14
|
const SelectOptionsContext = _SelectOptionsContext[0];
|
|
15
15
|
const useSelectOptions = _SelectOptionsContext[1];
|
|
16
|
+
const _SelectOptionsFilterContext = reactUtils.createRequiredContext("SelectOptionsFilterContext");
|
|
17
|
+
const SelectOptionsFilterContext = _SelectOptionsFilterContext[0];
|
|
18
|
+
const useSelectOptionsFilter = _SelectOptionsFilterContext[1];
|
|
16
19
|
exports.SelectCurrentEntitiesContext = SelectCurrentEntitiesContext;
|
|
17
20
|
exports.SelectHandleSelectContext = SelectHandleSelectContext;
|
|
18
21
|
exports.SelectIsSelectedContext = SelectIsSelectedContext;
|
|
19
22
|
exports.SelectOptionsContext = SelectOptionsContext;
|
|
23
|
+
exports.SelectOptionsFilterContext = SelectOptionsFilterContext;
|
|
20
24
|
exports.useSelectCurrentEntities = useSelectCurrentEntities;
|
|
21
25
|
exports.useSelectHandleSelect = useSelectHandleSelect;
|
|
22
26
|
exports.useSelectIsSelected = useSelectIsSelected;
|
|
23
27
|
exports.useSelectOptions = useSelectOptions;
|
|
28
|
+
exports.useSelectOptionsFilter = useSelectOptionsFilter;
|
|
24
29
|
//# sourceMappingURL=contexts.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contexts.cjs","sources":["../../src/contexts.ts"],"sourcesContent":["import { createRequiredContext } from '@contember/react-utils'\nimport { EntityAccessor, SugaredQualifiedEntityList } from '@contember/react-binding'\n\nconst _SelectCurrentEntitiesContext = createRequiredContext<EntityAccessor[]>('SelectCurrentEntitiesContext')\n/** @internal */\nexport const SelectCurrentEntitiesContext = _SelectCurrentEntitiesContext[0]\nexport const useSelectCurrentEntities = _SelectCurrentEntitiesContext[1]\n\n\n\nconst _SelectIsSelectedContext = createRequiredContext<(entity: EntityAccessor) => boolean>('SelectIsSelectedContext')\n/** @internal */\nexport const SelectIsSelectedContext = _SelectIsSelectedContext[0]\nexport const useSelectIsSelected = _SelectIsSelectedContext[1]\n\nexport type SelectHandler = (entity: EntityAccessor, action?: 'select' | 'unselect' | 'toggle') => void\nconst _SelectHandleSelectContext = createRequiredContext<SelectHandler>('SelectHandleSelectContext')\n/** @internal */\nexport const SelectHandleSelectContext = _SelectHandleSelectContext[0]\nexport const useSelectHandleSelect = _SelectHandleSelectContext[1]\n\nconst _SelectOptionsContext = createRequiredContext<SugaredQualifiedEntityList['entities']>('SelectOptionsContext')\n/** @internal */\nexport const SelectOptionsContext = _SelectOptionsContext[0]\nexport const useSelectOptions = _SelectOptionsContext[1]\n"],"names":["createRequiredContext"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"contexts.cjs","sources":["../../src/contexts.ts"],"sourcesContent":["import { createRequiredContext } from '@contember/react-utils'\nimport { EntityAccessor, SugaredQualifiedEntityList } from '@contember/react-binding'\nimport { DataViewFilterHandler, TextFilterArtifacts } from '@contember/react-dataview'\n\nconst _SelectCurrentEntitiesContext = createRequiredContext<EntityAccessor[]>('SelectCurrentEntitiesContext')\n/** @internal */\nexport const SelectCurrentEntitiesContext = _SelectCurrentEntitiesContext[0]\nexport const useSelectCurrentEntities = _SelectCurrentEntitiesContext[1]\n\n\n\nconst _SelectIsSelectedContext = createRequiredContext<(entity: EntityAccessor) => boolean>('SelectIsSelectedContext')\n/** @internal */\nexport const SelectIsSelectedContext = _SelectIsSelectedContext[0]\nexport const useSelectIsSelected = _SelectIsSelectedContext[1]\n\nexport type SelectHandler = (entity: EntityAccessor, action?: 'select' | 'unselect' | 'toggle') => void\nconst _SelectHandleSelectContext = createRequiredContext<SelectHandler>('SelectHandleSelectContext')\n/** @internal */\nexport const SelectHandleSelectContext = _SelectHandleSelectContext[0]\nexport const useSelectHandleSelect = _SelectHandleSelectContext[1]\n\nconst _SelectOptionsContext = createRequiredContext<SugaredQualifiedEntityList['entities']>('SelectOptionsContext')\n/** @internal */\nexport const SelectOptionsContext = _SelectOptionsContext[0]\nexport const useSelectOptions = _SelectOptionsContext[1]\n\nconst _SelectOptionsFilterContext = createRequiredContext<DataViewFilterHandler<TextFilterArtifacts> | undefined>('SelectOptionsFilterContext')\n/** @internal */\nexport const SelectOptionsFilterContext = _SelectOptionsFilterContext[0]\nexport const useSelectOptionsFilter = _SelectOptionsFilterContext[1]\n"],"names":["createRequiredContext"],"mappings":";;;AAIA,MAAM,gCAAgCA,WAAAA,sBAAwC,8BAA8B;AAE/F,MAAA,+BAA+B,8BAA8B,CAAC;AAC9D,MAAA,2BAA2B,8BAA8B,CAAC;AAIvE,MAAM,2BAA2BA,WAAAA,sBAA2D,yBAAyB;AAExG,MAAA,0BAA0B,yBAAyB,CAAC;AACpD,MAAA,sBAAsB,yBAAyB,CAAC;AAG7D,MAAM,6BAA6BA,WAAAA,sBAAqC,2BAA2B;AAEtF,MAAA,4BAA4B,2BAA2B,CAAC;AACxD,MAAA,wBAAwB,2BAA2B,CAAC;AAEjE,MAAM,wBAAwBA,WAAAA,sBAA8D,sBAAsB;AAErG,MAAA,uBAAuB,sBAAsB,CAAC;AAC9C,MAAA,mBAAmB,sBAAsB,CAAC;AAEvD,MAAM,8BAA8BA,WAAAA,sBAA8E,4BAA4B;AAEjI,MAAA,6BAA6B,4BAA4B,CAAC;AAC1D,MAAA,yBAAyB,4BAA4B,CAAC;;;;;;;;;;;"}
|
|
@@ -11,14 +11,19 @@ const useSelectHandleSelect = _SelectHandleSelectContext[1];
|
|
|
11
11
|
const _SelectOptionsContext = createRequiredContext("SelectOptionsContext");
|
|
12
12
|
const SelectOptionsContext = _SelectOptionsContext[0];
|
|
13
13
|
const useSelectOptions = _SelectOptionsContext[1];
|
|
14
|
+
const _SelectOptionsFilterContext = createRequiredContext("SelectOptionsFilterContext");
|
|
15
|
+
const SelectOptionsFilterContext = _SelectOptionsFilterContext[0];
|
|
16
|
+
const useSelectOptionsFilter = _SelectOptionsFilterContext[1];
|
|
14
17
|
export {
|
|
15
18
|
SelectCurrentEntitiesContext,
|
|
16
19
|
SelectHandleSelectContext,
|
|
17
20
|
SelectIsSelectedContext,
|
|
18
21
|
SelectOptionsContext,
|
|
22
|
+
SelectOptionsFilterContext,
|
|
19
23
|
useSelectCurrentEntities,
|
|
20
24
|
useSelectHandleSelect,
|
|
21
25
|
useSelectIsSelected,
|
|
22
|
-
useSelectOptions
|
|
26
|
+
useSelectOptions,
|
|
27
|
+
useSelectOptionsFilter
|
|
23
28
|
};
|
|
24
29
|
//# sourceMappingURL=contexts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contexts.js","sources":["../../src/contexts.ts"],"sourcesContent":["import { createRequiredContext } from '@contember/react-utils'\nimport { EntityAccessor, SugaredQualifiedEntityList } from '@contember/react-binding'\n\nconst _SelectCurrentEntitiesContext = createRequiredContext<EntityAccessor[]>('SelectCurrentEntitiesContext')\n/** @internal */\nexport const SelectCurrentEntitiesContext = _SelectCurrentEntitiesContext[0]\nexport const useSelectCurrentEntities = _SelectCurrentEntitiesContext[1]\n\n\n\nconst _SelectIsSelectedContext = createRequiredContext<(entity: EntityAccessor) => boolean>('SelectIsSelectedContext')\n/** @internal */\nexport const SelectIsSelectedContext = _SelectIsSelectedContext[0]\nexport const useSelectIsSelected = _SelectIsSelectedContext[1]\n\nexport type SelectHandler = (entity: EntityAccessor, action?: 'select' | 'unselect' | 'toggle') => void\nconst _SelectHandleSelectContext = createRequiredContext<SelectHandler>('SelectHandleSelectContext')\n/** @internal */\nexport const SelectHandleSelectContext = _SelectHandleSelectContext[0]\nexport const useSelectHandleSelect = _SelectHandleSelectContext[1]\n\nconst _SelectOptionsContext = createRequiredContext<SugaredQualifiedEntityList['entities']>('SelectOptionsContext')\n/** @internal */\nexport const SelectOptionsContext = _SelectOptionsContext[0]\nexport const useSelectOptions = _SelectOptionsContext[1]\n"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"contexts.js","sources":["../../src/contexts.ts"],"sourcesContent":["import { createRequiredContext } from '@contember/react-utils'\nimport { EntityAccessor, SugaredQualifiedEntityList } from '@contember/react-binding'\nimport { DataViewFilterHandler, TextFilterArtifacts } from '@contember/react-dataview'\n\nconst _SelectCurrentEntitiesContext = createRequiredContext<EntityAccessor[]>('SelectCurrentEntitiesContext')\n/** @internal */\nexport const SelectCurrentEntitiesContext = _SelectCurrentEntitiesContext[0]\nexport const useSelectCurrentEntities = _SelectCurrentEntitiesContext[1]\n\n\n\nconst _SelectIsSelectedContext = createRequiredContext<(entity: EntityAccessor) => boolean>('SelectIsSelectedContext')\n/** @internal */\nexport const SelectIsSelectedContext = _SelectIsSelectedContext[0]\nexport const useSelectIsSelected = _SelectIsSelectedContext[1]\n\nexport type SelectHandler = (entity: EntityAccessor, action?: 'select' | 'unselect' | 'toggle') => void\nconst _SelectHandleSelectContext = createRequiredContext<SelectHandler>('SelectHandleSelectContext')\n/** @internal */\nexport const SelectHandleSelectContext = _SelectHandleSelectContext[0]\nexport const useSelectHandleSelect = _SelectHandleSelectContext[1]\n\nconst _SelectOptionsContext = createRequiredContext<SugaredQualifiedEntityList['entities']>('SelectOptionsContext')\n/** @internal */\nexport const SelectOptionsContext = _SelectOptionsContext[0]\nexport const useSelectOptions = _SelectOptionsContext[1]\n\nconst _SelectOptionsFilterContext = createRequiredContext<DataViewFilterHandler<TextFilterArtifacts> | undefined>('SelectOptionsFilterContext')\n/** @internal */\nexport const SelectOptionsFilterContext = _SelectOptionsFilterContext[0]\nexport const useSelectOptionsFilter = _SelectOptionsFilterContext[1]\n"],"names":[],"mappings":";AAIA,MAAM,gCAAgC,sBAAwC,8BAA8B;AAE/F,MAAA,+BAA+B,8BAA8B,CAAC;AAC9D,MAAA,2BAA2B,8BAA8B,CAAC;AAIvE,MAAM,2BAA2B,sBAA2D,yBAAyB;AAExG,MAAA,0BAA0B,yBAAyB,CAAC;AACpD,MAAA,sBAAsB,yBAAyB,CAAC;AAG7D,MAAM,6BAA6B,sBAAqC,2BAA2B;AAEtF,MAAA,4BAA4B,2BAA2B,CAAC;AACxD,MAAA,wBAAwB,2BAA2B,CAAC;AAEjE,MAAM,wBAAwB,sBAA8D,sBAAsB;AAErG,MAAA,uBAAuB,sBAAsB,CAAC;AAC9C,MAAA,mBAAmB,sBAAsB,CAAC;AAEvD,MAAM,8BAA8B,sBAA8E,4BAA4B;AAEjI,MAAA,6BAA6B,4BAA4B,CAAC;AAC1D,MAAA,yBAAyB,4BAA4B,CAAC;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const reactBinding = require("@contember/react-binding");
|
|
4
|
+
const reactDataview = require("@contember/react-dataview");
|
|
5
|
+
const react = require("react");
|
|
6
|
+
const useSelectFilter = ({ filterField, marker }) => {
|
|
7
|
+
return react.useMemo(() => {
|
|
8
|
+
const filter = filterField ?? extractStringFields(marker);
|
|
9
|
+
if (!filter || Array.isArray(filter) && filter.length === 0) {
|
|
10
|
+
return void 0;
|
|
11
|
+
}
|
|
12
|
+
return reactDataview.createUnionTextFilter(Array.isArray(filter) ? filter : [filter]);
|
|
13
|
+
}, [filterField, marker]);
|
|
14
|
+
};
|
|
15
|
+
const extractStringFields = (marker) => {
|
|
16
|
+
const node = marker.environment.getSubTreeNode();
|
|
17
|
+
const textFields = [];
|
|
18
|
+
for (const field of marker.fields.markers.values()) {
|
|
19
|
+
if (field instanceof reactBinding.FieldMarker) {
|
|
20
|
+
const columnInfo = node.entity.fields.get(field.fieldName);
|
|
21
|
+
if (columnInfo?.type === "String") {
|
|
22
|
+
textFields.push(field.fieldName);
|
|
23
|
+
}
|
|
24
|
+
} else if (field instanceof reactBinding.HasOneRelationMarker) {
|
|
25
|
+
textFields.push(...extractStringFields(field).map((it) => `${field.parameters.field}.${it}`));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return textFields;
|
|
29
|
+
};
|
|
30
|
+
exports.useSelectFilter = useSelectFilter;
|
|
31
|
+
//# sourceMappingURL=useSelectFilter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelectFilter.cjs","sources":["../../../src/hooks/useSelectFilter.ts"],"sourcesContent":["import { FieldMarker, HasOneRelationMarker, MeaningfulMarker, SugaredRelativeSingleField } from '@contember/react-binding'\nimport { createUnionTextFilter } from '@contember/react-dataview'\nimport { useMemo } from 'react'\n\nexport type SelectFilterFieldProps = {\n\tfilterField?: SugaredRelativeSingleField['field'] | SugaredRelativeSingleField['field'][]\n}\n\nexport const useSelectFilter = ({ filterField, marker }: SelectFilterFieldProps & {\n\tmarker: Exclude<MeaningfulMarker, FieldMarker>\n}) => {\n\treturn useMemo(() => {\n\t\tconst filter = filterField ?? extractStringFields(marker)\n\t\tif (!filter || (Array.isArray(filter) && filter.length === 0)) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn createUnionTextFilter(Array.isArray(filter) ? filter : [filter])\n\t}, [filterField, marker])\n}\n\nconst extractStringFields = (marker: Exclude<MeaningfulMarker, FieldMarker>): string[] => {\n\tconst node = marker.environment.getSubTreeNode()\n\tconst textFields = []\n\tfor (const field of marker.fields.markers.values()) {\n\t\tif (field instanceof FieldMarker) {\n\t\t\tconst columnInfo = node.entity.fields.get(field.fieldName)\n\t\t\tif (columnInfo?.type === 'String') {\n\t\t\t\ttextFields.push(field.fieldName)\n\t\t\t}\n\t\t} else if (field instanceof HasOneRelationMarker) {\n\t\t\ttextFields.push(...extractStringFields(field).map(it => `${field.parameters.field}.${it}`))\n\t\t}\n\t}\n\treturn textFields\n}\n"],"names":["useMemo","createUnionTextFilter","FieldMarker","HasOneRelationMarker"],"mappings":";;;;;AAQO,MAAM,kBAAkB,CAAC,EAAE,aAAa,aAEzC;AACL,SAAOA,cAAQ,MAAM;AACd,UAAA,SAAS,eAAe,oBAAoB,MAAM;AACpD,QAAA,CAAC,UAAW,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW,GAAI;AACvD,aAAA;AAAA,IACR;AACO,WAAAC,cAAA,sBAAsB,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;AAAA,EAAA,GACpE,CAAC,aAAa,MAAM,CAAC;AACzB;AAEA,MAAM,sBAAsB,CAAC,WAA6D;AACnF,QAAA,OAAO,OAAO,YAAY,eAAe;AAC/C,QAAM,aAAa,CAAA;AACnB,aAAW,SAAS,OAAO,OAAO,QAAQ,UAAU;AACnD,QAAI,iBAAiBC,aAAAA,aAAa;AACjC,YAAM,aAAa,KAAK,OAAO,OAAO,IAAI,MAAM,SAAS;AACrD,UAAA,YAAY,SAAS,UAAU;AACvB,mBAAA,KAAK,MAAM,SAAS;AAAA,MAChC;AAAA,IAAA,WACU,iBAAiBC,mCAAsB;AACjD,iBAAW,KAAK,GAAG,oBAAoB,KAAK,EAAE,IAAI,CAAA,OAAM,GAAG,MAAM,WAAW,KAAK,IAAI,EAAE,EAAE,CAAC;AAAA,IAC3F;AAAA,EACD;AACO,SAAA;AACR;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { FieldMarker, HasOneRelationMarker } from "@contember/react-binding";
|
|
2
|
+
import { createUnionTextFilter } from "@contember/react-dataview";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
const useSelectFilter = ({ filterField, marker }) => {
|
|
5
|
+
return useMemo(() => {
|
|
6
|
+
const filter = filterField ?? extractStringFields(marker);
|
|
7
|
+
if (!filter || Array.isArray(filter) && filter.length === 0) {
|
|
8
|
+
return void 0;
|
|
9
|
+
}
|
|
10
|
+
return createUnionTextFilter(Array.isArray(filter) ? filter : [filter]);
|
|
11
|
+
}, [filterField, marker]);
|
|
12
|
+
};
|
|
13
|
+
const extractStringFields = (marker) => {
|
|
14
|
+
const node = marker.environment.getSubTreeNode();
|
|
15
|
+
const textFields = [];
|
|
16
|
+
for (const field of marker.fields.markers.values()) {
|
|
17
|
+
if (field instanceof FieldMarker) {
|
|
18
|
+
const columnInfo = node.entity.fields.get(field.fieldName);
|
|
19
|
+
if (columnInfo?.type === "String") {
|
|
20
|
+
textFields.push(field.fieldName);
|
|
21
|
+
}
|
|
22
|
+
} else if (field instanceof HasOneRelationMarker) {
|
|
23
|
+
textFields.push(...extractStringFields(field).map((it) => `${field.parameters.field}.${it}`));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return textFields;
|
|
27
|
+
};
|
|
28
|
+
export {
|
|
29
|
+
useSelectFilter
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=useSelectFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSelectFilter.js","sources":["../../../src/hooks/useSelectFilter.ts"],"sourcesContent":["import { FieldMarker, HasOneRelationMarker, MeaningfulMarker, SugaredRelativeSingleField } from '@contember/react-binding'\nimport { createUnionTextFilter } from '@contember/react-dataview'\nimport { useMemo } from 'react'\n\nexport type SelectFilterFieldProps = {\n\tfilterField?: SugaredRelativeSingleField['field'] | SugaredRelativeSingleField['field'][]\n}\n\nexport const useSelectFilter = ({ filterField, marker }: SelectFilterFieldProps & {\n\tmarker: Exclude<MeaningfulMarker, FieldMarker>\n}) => {\n\treturn useMemo(() => {\n\t\tconst filter = filterField ?? extractStringFields(marker)\n\t\tif (!filter || (Array.isArray(filter) && filter.length === 0)) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn createUnionTextFilter(Array.isArray(filter) ? filter : [filter])\n\t}, [filterField, marker])\n}\n\nconst extractStringFields = (marker: Exclude<MeaningfulMarker, FieldMarker>): string[] => {\n\tconst node = marker.environment.getSubTreeNode()\n\tconst textFields = []\n\tfor (const field of marker.fields.markers.values()) {\n\t\tif (field instanceof FieldMarker) {\n\t\t\tconst columnInfo = node.entity.fields.get(field.fieldName)\n\t\t\tif (columnInfo?.type === 'String') {\n\t\t\t\ttextFields.push(field.fieldName)\n\t\t\t}\n\t\t} else if (field instanceof HasOneRelationMarker) {\n\t\t\ttextFields.push(...extractStringFields(field).map(it => `${field.parameters.field}.${it}`))\n\t\t}\n\t}\n\treturn textFields\n}\n"],"names":[],"mappings":";;;AAQO,MAAM,kBAAkB,CAAC,EAAE,aAAa,aAEzC;AACL,SAAO,QAAQ,MAAM;AACd,UAAA,SAAS,eAAe,oBAAoB,MAAM;AACpD,QAAA,CAAC,UAAW,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW,GAAI;AACvD,aAAA;AAAA,IACR;AACO,WAAA,sBAAsB,MAAM,QAAQ,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC;AAAA,EAAA,GACpE,CAAC,aAAa,MAAM,CAAC;AACzB;AAEA,MAAM,sBAAsB,CAAC,WAA6D;AACnF,QAAA,OAAO,OAAO,YAAY,eAAe;AAC/C,QAAM,aAAa,CAAA;AACnB,aAAW,SAAS,OAAO,OAAO,QAAQ,UAAU;AACnD,QAAI,iBAAiB,aAAa;AACjC,YAAM,aAAa,KAAK,OAAO,OAAO,IAAI,MAAM,SAAS;AACrD,UAAA,YAAY,SAAS,UAAU;AACvB,mBAAA,KAAK,MAAM,SAAS;AAAA,MAChC;AAAA,IAAA,WACU,iBAAiB,sBAAsB;AACjD,iBAAW,KAAK,GAAG,oBAAoB,KAAK,EAAE,IAAI,CAAA,OAAM,GAAG,MAAM,WAAW,KAAK,IAAI,EAAE,EAAE,CAAC;AAAA,IAC3F;AAAA,EACD;AACO,SAAA;AACR;"}
|
|
@@ -10,14 +10,17 @@ const SelectItemTrigger = require("./components/SelectItemTrigger.cjs");
|
|
|
10
10
|
const SelectOption = require("./components/SelectOption.cjs");
|
|
11
11
|
const SelectPlaceholder = require("./components/SelectPlaceholder.cjs");
|
|
12
12
|
const SortableMultiSelect = require("./components/SortableMultiSelect.cjs");
|
|
13
|
+
const useSelectFilter = require("./hooks/useSelectFilter.cjs");
|
|
13
14
|
exports.SelectCurrentEntitiesContext = contexts.SelectCurrentEntitiesContext;
|
|
14
15
|
exports.SelectHandleSelectContext = contexts.SelectHandleSelectContext;
|
|
15
16
|
exports.SelectIsSelectedContext = contexts.SelectIsSelectedContext;
|
|
16
17
|
exports.SelectOptionsContext = contexts.SelectOptionsContext;
|
|
18
|
+
exports.SelectOptionsFilterContext = contexts.SelectOptionsFilterContext;
|
|
17
19
|
exports.useSelectCurrentEntities = contexts.useSelectCurrentEntities;
|
|
18
20
|
exports.useSelectHandleSelect = contexts.useSelectHandleSelect;
|
|
19
21
|
exports.useSelectIsSelected = contexts.useSelectIsSelected;
|
|
20
22
|
exports.useSelectOptions = contexts.useSelectOptions;
|
|
23
|
+
exports.useSelectOptionsFilter = contexts.useSelectOptionsFilter;
|
|
21
24
|
exports.MultiSelect = MultiSelect.MultiSelect;
|
|
22
25
|
exports.Select = Select.Select;
|
|
23
26
|
exports.SelectNewItem = SelectNewItem.SelectNewItem;
|
|
@@ -27,4 +30,5 @@ exports.SelectItemTrigger = SelectItemTrigger.SelectItemTrigger;
|
|
|
27
30
|
exports.SelectOption = SelectOption.SelectOption;
|
|
28
31
|
exports.SelectPlaceholder = SelectPlaceholder.SelectPlaceholder;
|
|
29
32
|
exports.SortableMultiSelect = SortableMultiSelect.SortableMultiSelect;
|
|
33
|
+
exports.useSelectFilter = useSelectFilter.useSelectFilter;
|
|
30
34
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SelectCurrentEntitiesContext, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext, useSelectCurrentEntities, useSelectHandleSelect, useSelectIsSelected, useSelectOptions } from "./contexts.js";
|
|
1
|
+
import { SelectCurrentEntitiesContext, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext, SelectOptionsFilterContext, useSelectCurrentEntities, useSelectHandleSelect, useSelectIsSelected, useSelectOptions, useSelectOptionsFilter } from "./contexts.js";
|
|
2
2
|
import { MultiSelect } from "./components/MultiSelect.js";
|
|
3
3
|
import { Select } from "./components/Select.js";
|
|
4
4
|
import { SelectNewItem } from "./components/SelectNewItem.js";
|
|
@@ -8,6 +8,7 @@ import { SelectItemTrigger } from "./components/SelectItemTrigger.js";
|
|
|
8
8
|
import { SelectOption } from "./components/SelectOption.js";
|
|
9
9
|
import { SelectPlaceholder } from "./components/SelectPlaceholder.js";
|
|
10
10
|
import { SortableMultiSelect } from "./components/SortableMultiSelect.js";
|
|
11
|
+
import { useSelectFilter } from "./hooks/useSelectFilter.js";
|
|
11
12
|
export {
|
|
12
13
|
MultiSelect,
|
|
13
14
|
Select,
|
|
@@ -20,11 +21,14 @@ export {
|
|
|
20
21
|
SelectNewItem,
|
|
21
22
|
SelectOption,
|
|
22
23
|
SelectOptionsContext,
|
|
24
|
+
SelectOptionsFilterContext,
|
|
23
25
|
SelectPlaceholder,
|
|
24
26
|
SortableMultiSelect,
|
|
25
27
|
useSelectCurrentEntities,
|
|
28
|
+
useSelectFilter,
|
|
26
29
|
useSelectHandleSelect,
|
|
27
30
|
useSelectIsSelected,
|
|
28
|
-
useSelectOptions
|
|
31
|
+
useSelectOptions,
|
|
32
|
+
useSelectOptionsFilter
|
|
29
33
|
};
|
|
30
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
@@ -5,8 +5,11 @@ const react = require("react");
|
|
|
5
5
|
const contexts = require("../contexts.cjs");
|
|
6
6
|
const reactBinding = require("@contember/react-binding");
|
|
7
7
|
const reactUtils = require("@contember/react-utils");
|
|
8
|
-
const
|
|
8
|
+
const useSelectFilter = require("../hooks/useSelectFilter.cjs");
|
|
9
|
+
const MultiSelect = reactBinding.Component(({ field, children, options, onSelect, onUnselect, filterField }) => {
|
|
9
10
|
const entities = reactBinding.useEntityList({ field });
|
|
11
|
+
options ?? (options = entities.name);
|
|
12
|
+
const filter = useSelectFilter.useSelectFilter({ filterField, marker: entities.getMarker() });
|
|
10
13
|
const entitiesArr = react.useMemo(() => Array.from(entities), [entities]);
|
|
11
14
|
const selectedEntities = react.useMemo(() => Array.from(entities).map((it) => it.id), [entities]);
|
|
12
15
|
const handler = reactUtils.useReferentiallyStableCallback((entity, action = "toggle") => {
|
|
@@ -25,9 +28,9 @@ const MultiSelect = reactBinding.Component(({ field, children, options, onSelect
|
|
|
25
28
|
const isSelected = react.useCallback((entity) => {
|
|
26
29
|
return selectedEntities.includes(entity.id);
|
|
27
30
|
}, [selectedEntities]);
|
|
28
|
-
return /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectHandleSelectContext.Provider, { value: handler, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectOptionsContext.Provider, { value: options, children }) }) }) });
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectHandleSelectContext.Provider, { value: handler, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectOptionsContext.Provider, { value: options, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectOptionsFilterContext.Provider, { value: filter, children }) }) }) }) });
|
|
29
32
|
}, ({ field, children }) => {
|
|
30
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactBinding.HasMany, { field, children });
|
|
33
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactBinding.HasMany, { field, expectedMutation: "connectOrDisconnect", children });
|
|
31
34
|
});
|
|
32
35
|
exports.MultiSelect = MultiSelect;
|
|
33
36
|
//# sourceMappingURL=MultiSelect.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.cjs","sources":["../../../src/components/MultiSelect.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext } from '../contexts'\nimport { Component, EntityAccessor, HasMany, SugaredQualifiedEntityList, SugaredRelativeEntityList, useEntityList } from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { SelectEvents } from '../types'\n\nexport type MultiSelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeEntityList['field']\n\t\toptions
|
|
1
|
+
{"version":3,"file":"MultiSelect.cjs","sources":["../../../src/components/MultiSelect.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext, SelectOptionsFilterContext } from '../contexts'\nimport { Component, EntityAccessor, HasMany, SugaredQualifiedEntityList, SugaredRelativeEntityList, useEntityList } from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { SelectEvents } from '../types'\nimport { SelectFilterFieldProps, useSelectFilter } from '../hooks'\n\nexport type MultiSelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeEntityList['field']\n\t\toptions?: SugaredQualifiedEntityList['entities']\n\t}\n\t& SelectFilterFieldProps\n\t& SelectEvents\n\nexport const MultiSelect = Component(({ field, children, options, onSelect, onUnselect, filterField }: MultiSelectProps) => {\n\tconst entities = useEntityList({ field })\n\toptions ??= entities.name\n\tconst filter = useSelectFilter({ filterField, marker: entities.getMarker() })\n\tconst entitiesArr = useMemo(() => Array.from(entities), [entities])\n\tconst selectedEntities = useMemo(() => Array.from(entities).map(it => it.id), [entities])\n\n\tconst handler = useReferentiallyStableCallback<SelectHandler>((entity, action = 'toggle') => {\n\t\tconst isSelected = selectedEntities.includes(entity.id)\n\t\tif (action === 'toggle') {\n\t\t\taction = isSelected ? 'unselect' : 'select'\n\t\t}\n\t\tif (action === 'unselect' && isSelected) {\n\t\t\tentities.disconnectEntity(entity)\n\t\t\tonUnselect?.(entity)\n\t\t} else if (action === 'select' && !isSelected) {\n\t\t\tentities.connectEntity(entity)\n\t\t\tonSelect?.(entity)\n\t\t}\n\t})\n\tconst isSelected = useCallback((entity: EntityAccessor) => {\n\t\treturn selectedEntities.includes(entity.id)\n\t}, [selectedEntities])\n\n\treturn (\n\t\t<SelectCurrentEntitiesContext.Provider value={entitiesArr}>\n\t\t\t<SelectIsSelectedContext.Provider value={isSelected}>\n\t\t\t\t<SelectHandleSelectContext.Provider value={handler}>\n\t\t\t\t\t<SelectOptionsContext.Provider value={options}>\n\t\t\t\t\t\t<SelectOptionsFilterContext.Provider value={filter}>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</SelectOptionsFilterContext.Provider>\n\t\t\t\t\t</SelectOptionsContext.Provider>\n\t\t\t\t</SelectHandleSelectContext.Provider>\n\t\t\t</SelectIsSelectedContext.Provider>\n\t\t</SelectCurrentEntitiesContext.Provider>\n\t)\n}, ({ field, children }) => {\n\treturn (\n\t\t<HasMany field={field} expectedMutation=\"connectOrDisconnect\">\n\t\t\t{children}\n\t\t</HasMany>\n\t)\n})\n\n"],"names":["Component","useEntityList","useSelectFilter","useMemo","useReferentiallyStableCallback","isSelected","useCallback","jsx","SelectCurrentEntitiesContext","SelectIsSelectedContext","SelectHandleSelectContext","SelectOptionsContext","SelectOptionsFilterContext","HasMany"],"mappings":";;;;;;;;AAgBa,MAAA,cAAcA,aAAAA,UAAU,CAAC,EAAE,OAAO,UAAU,SAAS,UAAU,YAAY,kBAAoC;AAC3H,QAAM,WAAWC,aAAAA,cAAc,EAAE,MAAO,CAAA;AACxC,wBAAY,SAAS;AACf,QAAA,SAASC,gCAAgB,EAAE,aAAa,QAAQ,SAAS,aAAa;AACtE,QAAA,cAAcC,cAAQ,MAAM,MAAM,KAAK,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAClE,QAAM,mBAAmBA,MAAA,QAAQ,MAAM,MAAM,KAAK,QAAQ,EAAE,IAAI,CAAA,OAAM,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC;AAExF,QAAM,UAAUC,WAAA,+BAA8C,CAAC,QAAQ,SAAS,aAAa;AAC5F,UAAMC,cAAa,iBAAiB,SAAS,OAAO,EAAE;AACtD,QAAI,WAAW,UAAU;AACxB,eAASA,cAAa,aAAa;AAAA,IACpC;AACI,QAAA,WAAW,cAAcA,aAAY;AACxC,eAAS,iBAAiB,MAAM;AAChC,mBAAa,MAAM;AAAA,IACT,WAAA,WAAW,YAAY,CAACA,aAAY;AAC9C,eAAS,cAAc,MAAM;AAC7B,iBAAW,MAAM;AAAA,IAClB;AAAA,EAAA,CACA;AACK,QAAA,aAAaC,kBAAY,CAAC,WAA2B;AACnD,WAAA,iBAAiB,SAAS,OAAO,EAAE;AAAA,EAAA,GACxC,CAAC,gBAAgB,CAAC;AAErB,SACEC,2BAAAA,IAAAC,SAAAA,6BAA6B,UAA7B,EAAsC,OAAO,aAC7C,UAAAD,+BAACE,SAAAA,wBAAwB,UAAxB,EAAiC,OAAO,YACxC,UAACF,2BAAA,IAAAG,mCAA0B,UAA1B,EAAmC,OAAO,SAC1C,UAAAH,2BAAA,IAACI,SAAqB,qBAAA,UAArB,EAA8B,OAAO,SACrC,UAACJ,2BAAAA,IAAAK,SAAA,2BAA2B,UAA3B,EAAoC,OAAO,QAC1C,SACF,CAAA,EACD,CAAA,GACD,GACD,EACD,CAAA;AAEF,GAAG,CAAC,EAAE,OAAO,eAAe;AAC3B,SACEL,2BAAAA,IAAAM,aAAAA,SAAA,EAAQ,OAAc,kBAAiB,uBACtC,SACF,CAAA;AAEF,CAAC;;"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useCallback } from "react";
|
|
3
|
-
import { SelectCurrentEntitiesContext, SelectIsSelectedContext, SelectHandleSelectContext, SelectOptionsContext } from "../contexts.js";
|
|
3
|
+
import { SelectCurrentEntitiesContext, SelectIsSelectedContext, SelectHandleSelectContext, SelectOptionsContext, SelectOptionsFilterContext } from "../contexts.js";
|
|
4
4
|
import { Component, useEntityList, HasMany } from "@contember/react-binding";
|
|
5
5
|
import { useReferentiallyStableCallback } from "@contember/react-utils";
|
|
6
|
-
|
|
6
|
+
import { useSelectFilter } from "../hooks/useSelectFilter.js";
|
|
7
|
+
const MultiSelect = Component(({ field, children, options, onSelect, onUnselect, filterField }) => {
|
|
7
8
|
const entities = useEntityList({ field });
|
|
9
|
+
options ?? (options = entities.name);
|
|
10
|
+
const filter = useSelectFilter({ filterField, marker: entities.getMarker() });
|
|
8
11
|
const entitiesArr = useMemo(() => Array.from(entities), [entities]);
|
|
9
12
|
const selectedEntities = useMemo(() => Array.from(entities).map((it) => it.id), [entities]);
|
|
10
13
|
const handler = useReferentiallyStableCallback((entity, action = "toggle") => {
|
|
@@ -23,9 +26,9 @@ const MultiSelect = Component(({ field, children, options, onSelect, onUnselect
|
|
|
23
26
|
const isSelected = useCallback((entity) => {
|
|
24
27
|
return selectedEntities.includes(entity.id);
|
|
25
28
|
}, [selectedEntities]);
|
|
26
|
-
return /* @__PURE__ */ jsx(SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsx(SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsx(SelectHandleSelectContext.Provider, { value: handler, children: /* @__PURE__ */ jsx(SelectOptionsContext.Provider, { value: options, children }) }) }) });
|
|
29
|
+
return /* @__PURE__ */ jsx(SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsx(SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsx(SelectHandleSelectContext.Provider, { value: handler, children: /* @__PURE__ */ jsx(SelectOptionsContext.Provider, { value: options, children: /* @__PURE__ */ jsx(SelectOptionsFilterContext.Provider, { value: filter, children }) }) }) }) });
|
|
27
30
|
}, ({ field, children }) => {
|
|
28
|
-
return /* @__PURE__ */ jsx(HasMany, { field, children });
|
|
31
|
+
return /* @__PURE__ */ jsx(HasMany, { field, expectedMutation: "connectOrDisconnect", children });
|
|
29
32
|
});
|
|
30
33
|
export {
|
|
31
34
|
MultiSelect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.js","sources":["../../../src/components/MultiSelect.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext } from '../contexts'\nimport { Component, EntityAccessor, HasMany, SugaredQualifiedEntityList, SugaredRelativeEntityList, useEntityList } from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { SelectEvents } from '../types'\n\nexport type MultiSelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeEntityList['field']\n\t\toptions
|
|
1
|
+
{"version":3,"file":"MultiSelect.js","sources":["../../../src/components/MultiSelect.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext, SelectOptionsFilterContext } from '../contexts'\nimport { Component, EntityAccessor, HasMany, SugaredQualifiedEntityList, SugaredRelativeEntityList, useEntityList } from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { SelectEvents } from '../types'\nimport { SelectFilterFieldProps, useSelectFilter } from '../hooks'\n\nexport type MultiSelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeEntityList['field']\n\t\toptions?: SugaredQualifiedEntityList['entities']\n\t}\n\t& SelectFilterFieldProps\n\t& SelectEvents\n\nexport const MultiSelect = Component(({ field, children, options, onSelect, onUnselect, filterField }: MultiSelectProps) => {\n\tconst entities = useEntityList({ field })\n\toptions ??= entities.name\n\tconst filter = useSelectFilter({ filterField, marker: entities.getMarker() })\n\tconst entitiesArr = useMemo(() => Array.from(entities), [entities])\n\tconst selectedEntities = useMemo(() => Array.from(entities).map(it => it.id), [entities])\n\n\tconst handler = useReferentiallyStableCallback<SelectHandler>((entity, action = 'toggle') => {\n\t\tconst isSelected = selectedEntities.includes(entity.id)\n\t\tif (action === 'toggle') {\n\t\t\taction = isSelected ? 'unselect' : 'select'\n\t\t}\n\t\tif (action === 'unselect' && isSelected) {\n\t\t\tentities.disconnectEntity(entity)\n\t\t\tonUnselect?.(entity)\n\t\t} else if (action === 'select' && !isSelected) {\n\t\t\tentities.connectEntity(entity)\n\t\t\tonSelect?.(entity)\n\t\t}\n\t})\n\tconst isSelected = useCallback((entity: EntityAccessor) => {\n\t\treturn selectedEntities.includes(entity.id)\n\t}, [selectedEntities])\n\n\treturn (\n\t\t<SelectCurrentEntitiesContext.Provider value={entitiesArr}>\n\t\t\t<SelectIsSelectedContext.Provider value={isSelected}>\n\t\t\t\t<SelectHandleSelectContext.Provider value={handler}>\n\t\t\t\t\t<SelectOptionsContext.Provider value={options}>\n\t\t\t\t\t\t<SelectOptionsFilterContext.Provider value={filter}>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</SelectOptionsFilterContext.Provider>\n\t\t\t\t\t</SelectOptionsContext.Provider>\n\t\t\t\t</SelectHandleSelectContext.Provider>\n\t\t\t</SelectIsSelectedContext.Provider>\n\t\t</SelectCurrentEntitiesContext.Provider>\n\t)\n}, ({ field, children }) => {\n\treturn (\n\t\t<HasMany field={field} expectedMutation=\"connectOrDisconnect\">\n\t\t\t{children}\n\t\t</HasMany>\n\t)\n})\n\n"],"names":["isSelected"],"mappings":";;;;;;AAgBa,MAAA,cAAc,UAAU,CAAC,EAAE,OAAO,UAAU,SAAS,UAAU,YAAY,kBAAoC;AAC3H,QAAM,WAAW,cAAc,EAAE,MAAO,CAAA;AACxC,wBAAY,SAAS;AACf,QAAA,SAAS,gBAAgB,EAAE,aAAa,QAAQ,SAAS,aAAa;AACtE,QAAA,cAAc,QAAQ,MAAM,MAAM,KAAK,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAClE,QAAM,mBAAmB,QAAQ,MAAM,MAAM,KAAK,QAAQ,EAAE,IAAI,CAAA,OAAM,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC;AAExF,QAAM,UAAU,+BAA8C,CAAC,QAAQ,SAAS,aAAa;AAC5F,UAAMA,cAAa,iBAAiB,SAAS,OAAO,EAAE;AACtD,QAAI,WAAW,UAAU;AACxB,eAASA,cAAa,aAAa;AAAA,IACpC;AACI,QAAA,WAAW,cAAcA,aAAY;AACxC,eAAS,iBAAiB,MAAM;AAChC,mBAAa,MAAM;AAAA,IACT,WAAA,WAAW,YAAY,CAACA,aAAY;AAC9C,eAAS,cAAc,MAAM;AAC7B,iBAAW,MAAM;AAAA,IAClB;AAAA,EAAA,CACA;AACK,QAAA,aAAa,YAAY,CAAC,WAA2B;AACnD,WAAA,iBAAiB,SAAS,OAAO,EAAE;AAAA,EAAA,GACxC,CAAC,gBAAgB,CAAC;AAErB,SACE,oBAAA,6BAA6B,UAA7B,EAAsC,OAAO,aAC7C,UAAA,oBAAC,wBAAwB,UAAxB,EAAiC,OAAO,YACxC,UAAC,oBAAA,0BAA0B,UAA1B,EAAmC,OAAO,SAC1C,UAAA,oBAAC,qBAAqB,UAArB,EAA8B,OAAO,SACrC,UAAC,oBAAA,2BAA2B,UAA3B,EAAoC,OAAO,QAC1C,SACF,CAAA,EACD,CAAA,GACD,GACD,EACD,CAAA;AAEF,GAAG,CAAC,EAAE,OAAO,eAAe;AAC3B,SACE,oBAAA,SAAA,EAAQ,OAAc,kBAAiB,uBACtC,SACF,CAAA;AAEF,CAAC;"}
|
|
@@ -5,9 +5,12 @@ const react = require("react");
|
|
|
5
5
|
const contexts = require("../contexts.cjs");
|
|
6
6
|
const reactBinding = require("@contember/react-binding");
|
|
7
7
|
const reactUtils = require("@contember/react-utils");
|
|
8
|
-
const
|
|
8
|
+
const useSelectFilter = require("../hooks/useSelectFilter.cjs");
|
|
9
|
+
const Select = reactBinding.Component(({ field, children, onUnselect, onSelect, options, filterField }) => {
|
|
9
10
|
const entity = reactBinding.useEntity();
|
|
10
11
|
const selectedEntity = entity.getEntity({ field });
|
|
12
|
+
options ?? (options = selectedEntity.name);
|
|
13
|
+
const filter = useSelectFilter.useSelectFilter({ filterField, marker: selectedEntity.getMarker() });
|
|
11
14
|
const entityExists = selectedEntity.existsOnServer || selectedEntity.hasUnpersistedChanges;
|
|
12
15
|
const entitiesArr = react.useMemo(() => entityExists ? [selectedEntity] : [], [entityExists, selectedEntity]);
|
|
13
16
|
const handleSelect = reactUtils.useReferentiallyStableCallback((selected, action = "toggle") => {
|
|
@@ -23,9 +26,9 @@ const Select = reactBinding.Component(({ field, children, onUnselect, onSelect,
|
|
|
23
26
|
}
|
|
24
27
|
});
|
|
25
28
|
const isSelected = react.useCallback((entity2) => entity2.id === selectedEntity.id, [selectedEntity.id]);
|
|
26
|
-
return /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectHandleSelectContext.Provider, { value: handleSelect, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectOptionsContext.Provider, { value: options, children }) }) }) });
|
|
29
|
+
return /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectHandleSelectContext.Provider, { value: handleSelect, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectOptionsContext.Provider, { value: options, children: /* @__PURE__ */ jsxRuntime.jsx(contexts.SelectOptionsFilterContext.Provider, { value: filter, children }) }) }) }) });
|
|
27
30
|
}, ({ field, children }) => {
|
|
28
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactBinding.HasOne, { field, children });
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactBinding.HasOne, { field, expectedMutation: "connectOrDisconnect", children });
|
|
29
32
|
});
|
|
30
33
|
exports.Select = Select;
|
|
31
34
|
//# sourceMappingURL=Select.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.cjs","sources":["../../../src/components/Select.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext } from '../contexts'\nimport { Component, EntityAccessor, HasOne, SugaredQualifiedEntityList, SugaredRelativeSingleEntity, useEntity } from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { SelectEvents } from '../types'\n\nexport type SelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeSingleEntity['field']\n\t\toptions
|
|
1
|
+
{"version":3,"file":"Select.cjs","sources":["../../../src/components/Select.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext, SelectOptionsFilterContext } from '../contexts'\nimport { Component, EntityAccessor, HasOne, SugaredQualifiedEntityList, SugaredRelativeSingleEntity, useEntity } from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { SelectEvents } from '../types'\nimport { SelectFilterFieldProps, useSelectFilter } from '../hooks'\n\nexport type SelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeSingleEntity['field']\n\t\toptions?: SugaredQualifiedEntityList['entities']\n\t}\n\t& SelectFilterFieldProps\n\t& SelectEvents\n\nexport const Select = Component(({ field, children, onUnselect, onSelect, options, filterField }: SelectProps) => {\n\tconst entity = useEntity()\n\tconst selectedEntity = entity.getEntity({ field })\n\toptions ??= selectedEntity.name\n\tconst filter = useSelectFilter({ filterField, marker: selectedEntity.getMarker() })\n\n\tconst entityExists = selectedEntity.existsOnServer || selectedEntity.hasUnpersistedChanges\n\tconst entitiesArr = useMemo(() => entityExists ? [selectedEntity] : [], [entityExists, selectedEntity])\n\n\tconst handleSelect = useReferentiallyStableCallback<SelectHandler>((selected, action = 'toggle') => {\n\t\tif (action === 'toggle') {\n\t\t\taction = selected.id === selectedEntity.id ? 'unselect' : 'select'\n\t\t}\n\t\tif (action === 'unselect') {\n\t\t\tentity.disconnectEntityAtField({ field })\n\t\t\tonUnselect?.(selected)\n\t\t} else if (action === 'select') {\n\t\t\tentity.connectEntityAtField({ field }, selected)\n\t\t\tonSelect?.(selected)\n\t\t}\n\t})\n\tconst isSelected = useCallback((entity: EntityAccessor) => entity.id === selectedEntity.id, [selectedEntity.id])\n\n\treturn (\n\t\t<SelectCurrentEntitiesContext.Provider value={entitiesArr}>\n\t\t\t<SelectIsSelectedContext.Provider value={isSelected}>\n\t\t\t\t<SelectHandleSelectContext.Provider value={handleSelect}>\n\t\t\t\t\t<SelectOptionsContext.Provider value={options}>\n\t\t\t\t\t\t<SelectOptionsFilterContext.Provider value={filter}>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</SelectOptionsFilterContext.Provider>\n\t\t\t\t\t</SelectOptionsContext.Provider>\n\t\t\t\t</SelectHandleSelectContext.Provider>\n\t\t\t</SelectIsSelectedContext.Provider>\n\t\t</SelectCurrentEntitiesContext.Provider>\n\t)\n}, ({ field, children }) => {\n\treturn (\n\t\t<HasOne field={field} expectedMutation=\"connectOrDisconnect\">\n\t\t\t{children}\n\t\t</HasOne>\n\t)\n})\n\n"],"names":["Component","useEntity","useSelectFilter","useMemo","useReferentiallyStableCallback","useCallback","entity","jsx","SelectCurrentEntitiesContext","SelectIsSelectedContext","SelectHandleSelectContext","SelectOptionsContext","SelectOptionsFilterContext","HasOne"],"mappings":";;;;;;;;AAgBa,MAAA,SAASA,aAAAA,UAAU,CAAC,EAAE,OAAO,UAAU,YAAY,UAAU,SAAS,kBAA+B;AACjH,QAAM,SAASC,aAAAA;AACf,QAAM,iBAAiB,OAAO,UAAU,EAAE,MAAO,CAAA;AACjD,wBAAY,eAAe;AACrB,QAAA,SAASC,gCAAgB,EAAE,aAAa,QAAQ,eAAe,aAAa;AAE5E,QAAA,eAAe,eAAe,kBAAkB,eAAe;AACrE,QAAM,cAAcC,MAAAA,QAAQ,MAAM,eAAe,CAAC,cAAc,IAAI,CAAA,GAAI,CAAC,cAAc,cAAc,CAAC;AAEtG,QAAM,eAAeC,WAAA,+BAA8C,CAAC,UAAU,SAAS,aAAa;AACnG,QAAI,WAAW,UAAU;AACxB,eAAS,SAAS,OAAO,eAAe,KAAK,aAAa;AAAA,IAC3D;AACA,QAAI,WAAW,YAAY;AACnB,aAAA,wBAAwB,EAAE,MAAA,CAAO;AACxC,mBAAa,QAAQ;AAAA,IAAA,WACX,WAAW,UAAU;AAC/B,aAAO,qBAAqB,EAAE,MAAM,GAAG,QAAQ;AAC/C,iBAAW,QAAQ;AAAA,IACpB;AAAA,EAAA,CACA;AACK,QAAA,aAAaC,MAAAA,YAAY,CAACC,YAA2BA,QAAO,OAAO,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC;AAE/G,SACEC,2BAAAA,IAAAC,SAAAA,6BAA6B,UAA7B,EAAsC,OAAO,aAC7C,UAAAD,+BAACE,SAAAA,wBAAwB,UAAxB,EAAiC,OAAO,YACxC,UAACF,2BAAA,IAAAG,mCAA0B,UAA1B,EAAmC,OAAO,cAC1C,UAAAH,2BAAA,IAACI,SAAqB,qBAAA,UAArB,EAA8B,OAAO,SACrC,UAACJ,2BAAAA,IAAAK,SAAA,2BAA2B,UAA3B,EAAoC,OAAO,QAC1C,SACF,CAAA,EACD,CAAA,GACD,GACD,EACD,CAAA;AAEF,GAAG,CAAC,EAAE,OAAO,eAAe;AAC3B,SACEL,2BAAAA,IAAAM,aAAAA,QAAA,EAAO,OAAc,kBAAiB,uBACrC,SACF,CAAA;AAEF,CAAC;;"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useCallback } from "react";
|
|
3
|
-
import { SelectCurrentEntitiesContext, SelectIsSelectedContext, SelectHandleSelectContext, SelectOptionsContext } from "../contexts.js";
|
|
3
|
+
import { SelectCurrentEntitiesContext, SelectIsSelectedContext, SelectHandleSelectContext, SelectOptionsContext, SelectOptionsFilterContext } from "../contexts.js";
|
|
4
4
|
import { Component, useEntity, HasOne } from "@contember/react-binding";
|
|
5
5
|
import { useReferentiallyStableCallback } from "@contember/react-utils";
|
|
6
|
-
|
|
6
|
+
import { useSelectFilter } from "../hooks/useSelectFilter.js";
|
|
7
|
+
const Select = Component(({ field, children, onUnselect, onSelect, options, filterField }) => {
|
|
7
8
|
const entity = useEntity();
|
|
8
9
|
const selectedEntity = entity.getEntity({ field });
|
|
10
|
+
options ?? (options = selectedEntity.name);
|
|
11
|
+
const filter = useSelectFilter({ filterField, marker: selectedEntity.getMarker() });
|
|
9
12
|
const entityExists = selectedEntity.existsOnServer || selectedEntity.hasUnpersistedChanges;
|
|
10
13
|
const entitiesArr = useMemo(() => entityExists ? [selectedEntity] : [], [entityExists, selectedEntity]);
|
|
11
14
|
const handleSelect = useReferentiallyStableCallback((selected, action = "toggle") => {
|
|
@@ -21,9 +24,9 @@ const Select = Component(({ field, children, onUnselect, onSelect, options }) =>
|
|
|
21
24
|
}
|
|
22
25
|
});
|
|
23
26
|
const isSelected = useCallback((entity2) => entity2.id === selectedEntity.id, [selectedEntity.id]);
|
|
24
|
-
return /* @__PURE__ */ jsx(SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsx(SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsx(SelectHandleSelectContext.Provider, { value: handleSelect, children: /* @__PURE__ */ jsx(SelectOptionsContext.Provider, { value: options, children }) }) }) });
|
|
27
|
+
return /* @__PURE__ */ jsx(SelectCurrentEntitiesContext.Provider, { value: entitiesArr, children: /* @__PURE__ */ jsx(SelectIsSelectedContext.Provider, { value: isSelected, children: /* @__PURE__ */ jsx(SelectHandleSelectContext.Provider, { value: handleSelect, children: /* @__PURE__ */ jsx(SelectOptionsContext.Provider, { value: options, children: /* @__PURE__ */ jsx(SelectOptionsFilterContext.Provider, { value: filter, children }) }) }) }) });
|
|
25
28
|
}, ({ field, children }) => {
|
|
26
|
-
return /* @__PURE__ */ jsx(HasOne, { field, children });
|
|
29
|
+
return /* @__PURE__ */ jsx(HasOne, { field, expectedMutation: "connectOrDisconnect", children });
|
|
27
30
|
});
|
|
28
31
|
export {
|
|
29
32
|
Select
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/Select.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext } from '../contexts'\nimport { Component, EntityAccessor, HasOne, SugaredQualifiedEntityList, SugaredRelativeSingleEntity, useEntity } from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { SelectEvents } from '../types'\n\nexport type SelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeSingleEntity['field']\n\t\toptions
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Select.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useMemo } from 'react'\nimport { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext, SelectOptionsFilterContext } from '../contexts'\nimport { Component, EntityAccessor, HasOne, SugaredQualifiedEntityList, SugaredRelativeSingleEntity, useEntity } from '@contember/react-binding'\nimport { useReferentiallyStableCallback } from '@contember/react-utils'\nimport { SelectEvents } from '../types'\nimport { SelectFilterFieldProps, useSelectFilter } from '../hooks'\n\nexport type SelectProps =\n\t& {\n\t\tchildren: ReactNode\n\t\tfield: SugaredRelativeSingleEntity['field']\n\t\toptions?: SugaredQualifiedEntityList['entities']\n\t}\n\t& SelectFilterFieldProps\n\t& SelectEvents\n\nexport const Select = Component(({ field, children, onUnselect, onSelect, options, filterField }: SelectProps) => {\n\tconst entity = useEntity()\n\tconst selectedEntity = entity.getEntity({ field })\n\toptions ??= selectedEntity.name\n\tconst filter = useSelectFilter({ filterField, marker: selectedEntity.getMarker() })\n\n\tconst entityExists = selectedEntity.existsOnServer || selectedEntity.hasUnpersistedChanges\n\tconst entitiesArr = useMemo(() => entityExists ? [selectedEntity] : [], [entityExists, selectedEntity])\n\n\tconst handleSelect = useReferentiallyStableCallback<SelectHandler>((selected, action = 'toggle') => {\n\t\tif (action === 'toggle') {\n\t\t\taction = selected.id === selectedEntity.id ? 'unselect' : 'select'\n\t\t}\n\t\tif (action === 'unselect') {\n\t\t\tentity.disconnectEntityAtField({ field })\n\t\t\tonUnselect?.(selected)\n\t\t} else if (action === 'select') {\n\t\t\tentity.connectEntityAtField({ field }, selected)\n\t\t\tonSelect?.(selected)\n\t\t}\n\t})\n\tconst isSelected = useCallback((entity: EntityAccessor) => entity.id === selectedEntity.id, [selectedEntity.id])\n\n\treturn (\n\t\t<SelectCurrentEntitiesContext.Provider value={entitiesArr}>\n\t\t\t<SelectIsSelectedContext.Provider value={isSelected}>\n\t\t\t\t<SelectHandleSelectContext.Provider value={handleSelect}>\n\t\t\t\t\t<SelectOptionsContext.Provider value={options}>\n\t\t\t\t\t\t<SelectOptionsFilterContext.Provider value={filter}>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</SelectOptionsFilterContext.Provider>\n\t\t\t\t\t</SelectOptionsContext.Provider>\n\t\t\t\t</SelectHandleSelectContext.Provider>\n\t\t\t</SelectIsSelectedContext.Provider>\n\t\t</SelectCurrentEntitiesContext.Provider>\n\t)\n}, ({ field, children }) => {\n\treturn (\n\t\t<HasOne field={field} expectedMutation=\"connectOrDisconnect\">\n\t\t\t{children}\n\t\t</HasOne>\n\t)\n})\n\n"],"names":["entity"],"mappings":";;;;;;AAgBa,MAAA,SAAS,UAAU,CAAC,EAAE,OAAO,UAAU,YAAY,UAAU,SAAS,kBAA+B;AACjH,QAAM,SAAS;AACf,QAAM,iBAAiB,OAAO,UAAU,EAAE,MAAO,CAAA;AACjD,wBAAY,eAAe;AACrB,QAAA,SAAS,gBAAgB,EAAE,aAAa,QAAQ,eAAe,aAAa;AAE5E,QAAA,eAAe,eAAe,kBAAkB,eAAe;AACrE,QAAM,cAAc,QAAQ,MAAM,eAAe,CAAC,cAAc,IAAI,CAAA,GAAI,CAAC,cAAc,cAAc,CAAC;AAEtG,QAAM,eAAe,+BAA8C,CAAC,UAAU,SAAS,aAAa;AACnG,QAAI,WAAW,UAAU;AACxB,eAAS,SAAS,OAAO,eAAe,KAAK,aAAa;AAAA,IAC3D;AACA,QAAI,WAAW,YAAY;AACnB,aAAA,wBAAwB,EAAE,MAAA,CAAO;AACxC,mBAAa,QAAQ;AAAA,IAAA,WACX,WAAW,UAAU;AAC/B,aAAO,qBAAqB,EAAE,MAAM,GAAG,QAAQ;AAC/C,iBAAW,QAAQ;AAAA,IACpB;AAAA,EAAA,CACA;AACK,QAAA,aAAa,YAAY,CAACA,YAA2BA,QAAO,OAAO,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC;AAE/G,SACE,oBAAA,6BAA6B,UAA7B,EAAsC,OAAO,aAC7C,UAAA,oBAAC,wBAAwB,UAAxB,EAAiC,OAAO,YACxC,UAAC,oBAAA,0BAA0B,UAA1B,EAAmC,OAAO,cAC1C,UAAA,oBAAC,qBAAqB,UAArB,EAA8B,OAAO,SACrC,UAAC,oBAAA,2BAA2B,UAA3B,EAAoC,OAAO,QAC1C,SACF,CAAA,EACD,CAAA,GACD,GACD,EACD,CAAA;AAEF,GAAG,CAAC,EAAE,OAAO,eAAe;AAC3B,SACE,oBAAA,QAAA,EAAO,OAAc,kBAAiB,uBACrC,SACF,CAAA;AAEF,CAAC;"}
|
|
@@ -1,12 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const react = require("react");
|
|
4
5
|
const contexts = require("../contexts.cjs");
|
|
5
6
|
const reactDataview = require("@contember/react-dataview");
|
|
6
7
|
const SelectDataView = (props) => {
|
|
7
8
|
const handleSelect = contexts.useSelectHandleSelect();
|
|
8
9
|
const entities = contexts.useSelectOptions();
|
|
9
|
-
|
|
10
|
+
const filter = contexts.useSelectOptionsFilter();
|
|
11
|
+
const defaultFilterTypes = react.useMemo(() => filter ? { query: filter } : {}, [filter]);
|
|
12
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13
|
+
reactDataview.DataView,
|
|
14
|
+
{
|
|
15
|
+
filterTypes: defaultFilterTypes,
|
|
16
|
+
...props,
|
|
17
|
+
onSelectHighlighted: handleSelect,
|
|
18
|
+
entities,
|
|
19
|
+
filteringStateStorage: "null",
|
|
20
|
+
sortingStateStorage: "null",
|
|
21
|
+
currentPageStateStorage: "null"
|
|
22
|
+
}
|
|
23
|
+
);
|
|
10
24
|
};
|
|
11
25
|
exports.SelectDataView = SelectDataView;
|
|
12
26
|
//# sourceMappingURL=SelectDataView.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectDataView.cjs","sources":["../../../src/components/SelectDataView.tsx"],"sourcesContent":["import React, { ReactNode } from 'react'\nimport { useSelectHandleSelect, useSelectOptions } from '../contexts'\nimport { DataViewProps, DataView } from '@contember/react-dataview'\n\nexport type SelectDataViewProps =\n\t& Omit<DataViewProps, 'entities'>\n\t& {\n\t\tchildren: ReactNode\n\t}\n\nexport const SelectDataView = (props: SelectDataViewProps) => {\n\tconst handleSelect = useSelectHandleSelect()\n\tconst entities = useSelectOptions()\n\treturn (\n\t\t<DataView
|
|
1
|
+
{"version":3,"file":"SelectDataView.cjs","sources":["../../../src/components/SelectDataView.tsx"],"sourcesContent":["import React, { ReactNode, useMemo } from 'react'\nimport { useSelectHandleSelect, useSelectOptions, useSelectOptionsFilter } from '../contexts'\nimport { DataViewProps, DataView, DataViewFilterHandlerRegistry } from '@contember/react-dataview'\n\nexport type SelectDataViewProps =\n\t& Omit<DataViewProps, 'entities'>\n\t& {\n\t\tchildren: ReactNode\n\t}\n\nexport const SelectDataView = (props: SelectDataViewProps) => {\n\tconst handleSelect = useSelectHandleSelect()\n\tconst entities = useSelectOptions()\n\tconst filter = useSelectOptionsFilter()\n\tconst defaultFilterTypes = useMemo((): DataViewFilterHandlerRegistry => filter ? { query: filter } : {}, [filter])\n\n\treturn (\n\t\t<DataView\n\t\t\tfilterTypes={defaultFilterTypes}\n\t\t\t{...props}\n\t\t\tonSelectHighlighted={handleSelect}\n\t\t\tentities={entities}\n\t\t\tfilteringStateStorage=\"null\"\n\t\t\tsortingStateStorage=\"null\"\n\t\t\tcurrentPageStateStorage=\"null\"\n\t\t/>\n\t)\n}\n"],"names":["useSelectHandleSelect","useSelectOptions","useSelectOptionsFilter","useMemo","jsx","DataView"],"mappings":";;;;;;AAUa,MAAA,iBAAiB,CAAC,UAA+B;AAC7D,QAAM,eAAeA,SAAAA;AACrB,QAAM,WAAWC,SAAAA;AACjB,QAAM,SAASC,SAAAA;AACf,QAAM,qBAAqBC,MAAAA,QAAQ,MAAqC,SAAS,EAAE,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAGhH,SAAAC,2BAAA;AAAA,IAACC,cAAA;AAAA,IAAA;AAAA,MACA,aAAa;AAAA,MACZ,GAAG;AAAA,MACJ,qBAAqB;AAAA,MACrB;AAAA,MACA,uBAAsB;AAAA,MACtB,qBAAoB;AAAA,MACpB,yBAAwB;AAAA,IAAA;AAAA,EAAA;AAG3B;;"}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useSelectHandleSelect, useSelectOptions, useSelectOptionsFilter } from "../contexts.js";
|
|
3
4
|
import { DataView } from "@contember/react-dataview";
|
|
4
5
|
const SelectDataView = (props) => {
|
|
5
6
|
const handleSelect = useSelectHandleSelect();
|
|
6
7
|
const entities = useSelectOptions();
|
|
7
|
-
|
|
8
|
+
const filter = useSelectOptionsFilter();
|
|
9
|
+
const defaultFilterTypes = useMemo(() => filter ? { query: filter } : {}, [filter]);
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
DataView,
|
|
12
|
+
{
|
|
13
|
+
filterTypes: defaultFilterTypes,
|
|
14
|
+
...props,
|
|
15
|
+
onSelectHighlighted: handleSelect,
|
|
16
|
+
entities,
|
|
17
|
+
filteringStateStorage: "null",
|
|
18
|
+
sortingStateStorage: "null",
|
|
19
|
+
currentPageStateStorage: "null"
|
|
20
|
+
}
|
|
21
|
+
);
|
|
8
22
|
};
|
|
9
23
|
export {
|
|
10
24
|
SelectDataView
|