@contember/react-select 1.3.0-alpha.22 → 1.3.0-alpha.24
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 +7 -13
- package/dist/development/components/MultiSelect.cjs.map +1 -1
- package/dist/development/components/MultiSelect.js +8 -14
- package/dist/development/components/MultiSelect.js.map +1 -1
- package/dist/development/components/Select.cjs +7 -13
- package/dist/development/components/Select.cjs.map +1 -1
- package/dist/development/components/Select.js +8 -14
- package/dist/development/components/Select.js.map +1 -1
- package/dist/development/components/SelectDataView.cjs +3 -7
- package/dist/development/components/SelectDataView.cjs.map +1 -1
- package/dist/development/components/SelectDataView.js +4 -8
- package/dist/development/components/SelectDataView.js.map +1 -1
- package/dist/development/components/SortableMultiSelect.cjs +9 -15
- package/dist/development/components/SortableMultiSelect.cjs.map +1 -1
- package/dist/development/components/SortableMultiSelect.js +10 -16
- package/dist/development/components/SortableMultiSelect.js.map +1 -1
- package/dist/development/contexts.cjs +0 -5
- package/dist/development/contexts.cjs.map +1 -1
- package/dist/development/contexts.js +1 -6
- package/dist/development/contexts.js.map +1 -1
- package/dist/development/index.cjs +0 -4
- package/dist/development/index.cjs.map +1 -1
- package/dist/development/index.js +2 -6
- package/dist/development/index.js.map +1 -1
- package/dist/production/components/MultiSelect.cjs +2 -4
- package/dist/production/components/MultiSelect.cjs.map +1 -1
- package/dist/production/components/MultiSelect.js +3 -5
- package/dist/production/components/MultiSelect.js.map +1 -1
- package/dist/production/components/Select.cjs +2 -4
- package/dist/production/components/Select.cjs.map +1 -1
- package/dist/production/components/Select.js +3 -5
- package/dist/production/components/Select.js.map +1 -1
- package/dist/production/components/SelectDataView.cjs +2 -6
- package/dist/production/components/SelectDataView.cjs.map +1 -1
- package/dist/production/components/SelectDataView.js +3 -7
- package/dist/production/components/SelectDataView.js.map +1 -1
- package/dist/production/components/SortableMultiSelect.cjs +2 -4
- package/dist/production/components/SortableMultiSelect.cjs.map +1 -1
- package/dist/production/components/SortableMultiSelect.js +3 -5
- package/dist/production/components/SortableMultiSelect.js.map +1 -1
- package/dist/production/contexts.cjs +0 -5
- package/dist/production/contexts.cjs.map +1 -1
- package/dist/production/contexts.js +1 -6
- package/dist/production/contexts.js.map +1 -1
- package/dist/production/index.cjs +0 -4
- package/dist/production/index.cjs.map +1 -1
- package/dist/production/index.js +2 -6
- package/dist/production/index.js.map +1 -1
- package/dist/types/components/MultiSelect.d.ts +2 -3
- package/dist/types/components/MultiSelect.d.ts.map +1 -1
- package/dist/types/components/Select.d.ts +2 -3
- 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 +2 -3
- package/dist/types/components/SortableMultiSelect.d.ts.map +1 -1
- package/dist/types/contexts.d.ts +0 -4
- package/dist/types/contexts.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +1 -1
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/components/MultiSelect.tsx +3 -8
- package/src/components/Select.tsx +2 -7
- package/src/components/SelectDataView.tsx +2 -5
- package/src/components/SortableMultiSelect.tsx +3 -8
- package/src/contexts.ts +0 -5
- package/src/hooks/index.ts +1 -1
- package/dist/development/hooks/useSelectFilter.cjs +0 -31
- package/dist/development/hooks/useSelectFilter.cjs.map +0 -1
- package/dist/development/hooks/useSelectFilter.js +0 -31
- package/dist/development/hooks/useSelectFilter.js.map +0 -1
- package/dist/production/hooks/useSelectFilter.cjs +0 -31
- package/dist/production/hooks/useSelectFilter.cjs.map +0 -1
- package/dist/production/hooks/useSelectFilter.js +0 -31
- package/dist/production/hooks/useSelectFilter.js.map +0 -1
- package/dist/types/hooks/useSelectFilter.d.ts +0 -8
- package/dist/types/hooks/useSelectFilter.d.ts.map +0 -1
- package/src/hooks/useSelectFilter.ts +0 -35
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/react-select",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "1.3.0-alpha.
|
|
4
|
+
"version": "1.3.0-alpha.24",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"main": "./dist/production/index.js",
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
"directory": "packages/react-select"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@contember/react-binding": "1.3.0-alpha.
|
|
44
|
-
"@contember/react-dataview": "1.3.0-alpha.
|
|
45
|
-
"@contember/react-repeater": "1.3.0-alpha.
|
|
46
|
-
"@contember/react-utils": "1.3.0-alpha.
|
|
47
|
-
"@contember/utilities": "1.3.0-alpha.
|
|
43
|
+
"@contember/react-binding": "1.3.0-alpha.24",
|
|
44
|
+
"@contember/react-dataview": "1.3.0-alpha.24",
|
|
45
|
+
"@contember/react-repeater": "1.3.0-alpha.24",
|
|
46
|
+
"@contember/react-utils": "1.3.0-alpha.24",
|
|
47
|
+
"@contember/utilities": "1.3.0-alpha.24",
|
|
48
48
|
"@radix-ui/react-slot": "^1.0.2"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React, { ReactNode, useCallback, useMemo } from 'react'
|
|
2
|
-
import { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext
|
|
2
|
+
import { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext } from '../contexts'
|
|
3
3
|
import { Component, EntityAccessor, HasMany, SugaredQualifiedEntityList, SugaredRelativeEntityList, useEntityList } from '@contember/react-binding'
|
|
4
4
|
import { useReferentiallyStableCallback } from '@contember/react-utils'
|
|
5
5
|
import { SelectEvents } from '../types'
|
|
6
|
-
import { SelectFilterFieldProps, useSelectFilter } from '../hooks'
|
|
7
6
|
|
|
8
7
|
export type MultiSelectProps =
|
|
9
8
|
& {
|
|
@@ -11,13 +10,11 @@ export type MultiSelectProps =
|
|
|
11
10
|
field: SugaredRelativeEntityList['field']
|
|
12
11
|
options?: SugaredQualifiedEntityList['entities']
|
|
13
12
|
}
|
|
14
|
-
& SelectFilterFieldProps
|
|
15
13
|
& SelectEvents
|
|
16
14
|
|
|
17
|
-
export const MultiSelect = Component(({ field, children, options, onSelect, onUnselect
|
|
15
|
+
export const MultiSelect = Component(({ field, children, options, onSelect, onUnselect }: MultiSelectProps) => {
|
|
18
16
|
const entities = useEntityList({ field })
|
|
19
17
|
options ??= entities.name
|
|
20
|
-
const filter = useSelectFilter({ filterField, marker: entities.getMarker() })
|
|
21
18
|
const entitiesArr = useMemo(() => Array.from(entities), [entities])
|
|
22
19
|
const selectedEntities = useMemo(() => Array.from(entities).map(it => it.id), [entities])
|
|
23
20
|
|
|
@@ -43,9 +40,7 @@ export const MultiSelect = Component(({ field, children, options, onSelect, onUn
|
|
|
43
40
|
<SelectIsSelectedContext.Provider value={isSelected}>
|
|
44
41
|
<SelectHandleSelectContext.Provider value={handler}>
|
|
45
42
|
<SelectOptionsContext.Provider value={options}>
|
|
46
|
-
|
|
47
|
-
{children}
|
|
48
|
-
</SelectOptionsFilterContext.Provider>
|
|
43
|
+
{children}
|
|
49
44
|
</SelectOptionsContext.Provider>
|
|
50
45
|
</SelectHandleSelectContext.Provider>
|
|
51
46
|
</SelectIsSelectedContext.Provider>
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React, { ReactNode, useCallback, useMemo } from 'react'
|
|
2
|
-
import { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext
|
|
2
|
+
import { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext } from '../contexts'
|
|
3
3
|
import { Component, EntityAccessor, HasOne, SugaredQualifiedEntityList, SugaredRelativeSingleEntity, useEntity } from '@contember/react-binding'
|
|
4
4
|
import { useReferentiallyStableCallback } from '@contember/react-utils'
|
|
5
5
|
import { SelectEvents } from '../types'
|
|
6
|
-
import { SelectFilterFieldProps, useSelectFilter } from '../hooks'
|
|
7
6
|
|
|
8
7
|
export type SelectProps =
|
|
9
8
|
& {
|
|
@@ -11,14 +10,12 @@ export type SelectProps =
|
|
|
11
10
|
field: SugaredRelativeSingleEntity['field']
|
|
12
11
|
options?: SugaredQualifiedEntityList['entities']
|
|
13
12
|
}
|
|
14
|
-
& SelectFilterFieldProps
|
|
15
13
|
& SelectEvents
|
|
16
14
|
|
|
17
|
-
export const Select = Component(({ field, children, onUnselect, onSelect, options
|
|
15
|
+
export const Select = Component(({ field, children, onUnselect, onSelect, options }: SelectProps) => {
|
|
18
16
|
const entity = useEntity()
|
|
19
17
|
const selectedEntity = entity.getEntity({ field })
|
|
20
18
|
options ??= selectedEntity.name
|
|
21
|
-
const filter = useSelectFilter({ filterField, marker: selectedEntity.getMarker() })
|
|
22
19
|
|
|
23
20
|
const entityExists = selectedEntity.existsOnServer || selectedEntity.hasUnpersistedChanges
|
|
24
21
|
const entitiesArr = useMemo(() => entityExists ? [selectedEntity] : [], [entityExists, selectedEntity])
|
|
@@ -42,9 +39,7 @@ export const Select = Component(({ field, children, onUnselect, onSelect, option
|
|
|
42
39
|
<SelectIsSelectedContext.Provider value={isSelected}>
|
|
43
40
|
<SelectHandleSelectContext.Provider value={handleSelect}>
|
|
44
41
|
<SelectOptionsContext.Provider value={options}>
|
|
45
|
-
<SelectOptionsFilterContext.Provider value={filter}>
|
|
46
42
|
{children}
|
|
47
|
-
</SelectOptionsFilterContext.Provider>
|
|
48
43
|
</SelectOptionsContext.Provider>
|
|
49
44
|
</SelectHandleSelectContext.Provider>
|
|
50
45
|
</SelectIsSelectedContext.Provider>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { ReactNode, useMemo } from 'react'
|
|
2
|
-
import { useSelectHandleSelect, useSelectOptions
|
|
2
|
+
import { useSelectHandleSelect, useSelectOptions } from '../contexts'
|
|
3
3
|
import { DataViewProps, DataView, DataViewFilterHandlerRegistry } from '@contember/react-dataview'
|
|
4
4
|
|
|
5
5
|
export type SelectDataViewProps =
|
|
@@ -11,18 +11,15 @@ export type SelectDataViewProps =
|
|
|
11
11
|
export const SelectDataView = (props: SelectDataViewProps) => {
|
|
12
12
|
const handleSelect = useSelectHandleSelect()
|
|
13
13
|
const entities = useSelectOptions()
|
|
14
|
-
const filter = useSelectOptionsFilter()
|
|
15
|
-
const defaultFilterTypes = useMemo((): DataViewFilterHandlerRegistry => filter ? { query: filter } : {}, [filter])
|
|
16
14
|
|
|
17
15
|
return (
|
|
18
16
|
<DataView
|
|
19
|
-
filterTypes={defaultFilterTypes}
|
|
20
|
-
{...props}
|
|
21
17
|
onSelectHighlighted={handleSelect}
|
|
22
18
|
entities={entities}
|
|
23
19
|
filteringStateStorage="null"
|
|
24
20
|
sortingStateStorage="null"
|
|
25
21
|
currentPageStateStorage="null"
|
|
22
|
+
{...props}
|
|
26
23
|
/>
|
|
27
24
|
)
|
|
28
25
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { ReactNode, useCallback, useMemo } from 'react'
|
|
2
|
-
import { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext
|
|
2
|
+
import { SelectCurrentEntitiesContext, SelectHandler, SelectHandleSelectContext, SelectIsSelectedContext, SelectOptionsContext } from '../contexts'
|
|
3
3
|
import {
|
|
4
4
|
Component,
|
|
5
5
|
EntityAccessor,
|
|
@@ -17,7 +17,6 @@ import {
|
|
|
17
17
|
import { useReferentiallyStableCallback } from '@contember/react-utils'
|
|
18
18
|
import { Repeater } from '@contember/react-repeater'
|
|
19
19
|
import { SelectEvents } from '../types'
|
|
20
|
-
import { SelectFilterFieldProps, useSelectFilter } from '../hooks'
|
|
21
20
|
|
|
22
21
|
export type SortableMultiSelectProps =
|
|
23
22
|
& {
|
|
@@ -27,10 +26,9 @@ export type SortableMultiSelectProps =
|
|
|
27
26
|
sortableBy: SugaredRelativeSingleField['field']
|
|
28
27
|
connectAt: SugaredRelativeSingleEntity['field']
|
|
29
28
|
}
|
|
30
|
-
& SelectFilterFieldProps
|
|
31
29
|
& SelectEvents
|
|
32
30
|
|
|
33
|
-
export const SortableMultiSelect = Component(({ field, children, sortableBy, connectAt, options, onSelect, onUnselect
|
|
31
|
+
export const SortableMultiSelect = Component(({ field, children, sortableBy, connectAt, options, onSelect, onUnselect }: SortableMultiSelectProps) => {
|
|
34
32
|
const list = useEntityList({ field })
|
|
35
33
|
const entitiesArr = useMemo(() => Array.from(list), [list])
|
|
36
34
|
|
|
@@ -50,7 +48,6 @@ export const SortableMultiSelect = Component(({ field, children, sortableBy, con
|
|
|
50
48
|
|
|
51
49
|
options ??= optionsMarker.environment.getSubTreeNode().entity.name
|
|
52
50
|
|
|
53
|
-
const filter = useSelectFilter({ filterField, marker: optionsMarker })
|
|
54
51
|
|
|
55
52
|
const selectedEntities = useMemo(() => Array.from(list).map(it => it.getEntity({ field: connectAt }).id), [connectAt, list])
|
|
56
53
|
|
|
@@ -79,9 +76,7 @@ export const SortableMultiSelect = Component(({ field, children, sortableBy, con
|
|
|
79
76
|
<SelectIsSelectedContext.Provider value={isSelected}>
|
|
80
77
|
<SelectHandleSelectContext.Provider value={handler}>
|
|
81
78
|
<SelectOptionsContext.Provider value={options}>
|
|
82
|
-
|
|
83
|
-
{children}
|
|
84
|
-
</SelectOptionsFilterContext.Provider>
|
|
79
|
+
{children}
|
|
85
80
|
</SelectOptionsContext.Provider>
|
|
86
81
|
</SelectHandleSelectContext.Provider>
|
|
87
82
|
</SelectIsSelectedContext.Provider>
|
package/src/contexts.ts
CHANGED
|
@@ -24,8 +24,3 @@ const _SelectOptionsContext = createRequiredContext<SugaredQualifiedEntityList['
|
|
|
24
24
|
/** @internal */
|
|
25
25
|
export const SelectOptionsContext = _SelectOptionsContext[0]
|
|
26
26
|
export const useSelectOptions = _SelectOptionsContext[1]
|
|
27
|
-
|
|
28
|
-
const _SelectOptionsFilterContext = createRequiredContext<DataViewFilterHandler<TextFilterArtifacts> | undefined>('SelectOptionsFilterContext')
|
|
29
|
-
/** @internal */
|
|
30
|
-
export const SelectOptionsFilterContext = _SelectOptionsFilterContext[0]
|
|
31
|
-
export const useSelectOptionsFilter = _SelectOptionsFilterContext[1]
|
package/src/hooks/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export {}
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;;"}
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;"}
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;;"}
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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;"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { FieldMarker, MeaningfulMarker, SugaredRelativeSingleField } from '@contember/react-binding';
|
|
2
|
-
export type SelectFilterFieldProps = {
|
|
3
|
-
filterField?: SugaredRelativeSingleField['field'] | SugaredRelativeSingleField['field'][];
|
|
4
|
-
};
|
|
5
|
-
export declare const useSelectFilter: ({ filterField, marker }: SelectFilterFieldProps & {
|
|
6
|
-
marker: Exclude<MeaningfulMarker, FieldMarker>;
|
|
7
|
-
}) => import("@contember/react-dataview").DataViewFilterHandler<import("@contember/react-dataview").TextFilterArtifacts> | undefined;
|
|
8
|
-
//# sourceMappingURL=useSelectFilter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectFilter.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSelectFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAI1H,MAAM,MAAM,sBAAsB,GAAG;IACpC,WAAW,CAAC,EAAE,0BAA0B,CAAC,OAAO,CAAC,GAAG,0BAA0B,CAAC,OAAO,CAAC,EAAE,CAAA;CACzF,CAAA;AAED,eAAO,MAAM,eAAe;YACnB,QAAQ,gBAAgB,EAAE,WAAW,CAAC;oIAS9C,CAAA"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { FieldMarker, HasOneRelationMarker, MeaningfulMarker, SugaredRelativeSingleField } from '@contember/react-binding'
|
|
2
|
-
import { createUnionTextFilter } from '@contember/react-dataview'
|
|
3
|
-
import { useMemo } from 'react'
|
|
4
|
-
|
|
5
|
-
export type SelectFilterFieldProps = {
|
|
6
|
-
filterField?: SugaredRelativeSingleField['field'] | SugaredRelativeSingleField['field'][]
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const useSelectFilter = ({ filterField, marker }: SelectFilterFieldProps & {
|
|
10
|
-
marker: Exclude<MeaningfulMarker, FieldMarker>
|
|
11
|
-
}) => {
|
|
12
|
-
return useMemo(() => {
|
|
13
|
-
const filter = filterField ?? extractStringFields(marker)
|
|
14
|
-
if (!filter || (Array.isArray(filter) && filter.length === 0)) {
|
|
15
|
-
return undefined
|
|
16
|
-
}
|
|
17
|
-
return createUnionTextFilter(Array.isArray(filter) ? filter : [filter])
|
|
18
|
-
}, [filterField, marker])
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const extractStringFields = (marker: Exclude<MeaningfulMarker, FieldMarker>): string[] => {
|
|
22
|
-
const node = marker.environment.getSubTreeNode()
|
|
23
|
-
const textFields = []
|
|
24
|
-
for (const field of marker.fields.markers.values()) {
|
|
25
|
-
if (field instanceof FieldMarker) {
|
|
26
|
-
const columnInfo = node.entity.fields.get(field.fieldName)
|
|
27
|
-
if (columnInfo?.type === 'String') {
|
|
28
|
-
textFields.push(field.fieldName)
|
|
29
|
-
}
|
|
30
|
-
} else if (field instanceof HasOneRelationMarker) {
|
|
31
|
-
textFields.push(...extractStringFields(field).map(it => `${field.parameters.field}.${it}`))
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return textFields
|
|
35
|
-
}
|