@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.
Files changed (78) hide show
  1. package/dist/development/components/MultiSelect.cjs +7 -13
  2. package/dist/development/components/MultiSelect.cjs.map +1 -1
  3. package/dist/development/components/MultiSelect.js +8 -14
  4. package/dist/development/components/MultiSelect.js.map +1 -1
  5. package/dist/development/components/Select.cjs +7 -13
  6. package/dist/development/components/Select.cjs.map +1 -1
  7. package/dist/development/components/Select.js +8 -14
  8. package/dist/development/components/Select.js.map +1 -1
  9. package/dist/development/components/SelectDataView.cjs +3 -7
  10. package/dist/development/components/SelectDataView.cjs.map +1 -1
  11. package/dist/development/components/SelectDataView.js +4 -8
  12. package/dist/development/components/SelectDataView.js.map +1 -1
  13. package/dist/development/components/SortableMultiSelect.cjs +9 -15
  14. package/dist/development/components/SortableMultiSelect.cjs.map +1 -1
  15. package/dist/development/components/SortableMultiSelect.js +10 -16
  16. package/dist/development/components/SortableMultiSelect.js.map +1 -1
  17. package/dist/development/contexts.cjs +0 -5
  18. package/dist/development/contexts.cjs.map +1 -1
  19. package/dist/development/contexts.js +1 -6
  20. package/dist/development/contexts.js.map +1 -1
  21. package/dist/development/index.cjs +0 -4
  22. package/dist/development/index.cjs.map +1 -1
  23. package/dist/development/index.js +2 -6
  24. package/dist/development/index.js.map +1 -1
  25. package/dist/production/components/MultiSelect.cjs +2 -4
  26. package/dist/production/components/MultiSelect.cjs.map +1 -1
  27. package/dist/production/components/MultiSelect.js +3 -5
  28. package/dist/production/components/MultiSelect.js.map +1 -1
  29. package/dist/production/components/Select.cjs +2 -4
  30. package/dist/production/components/Select.cjs.map +1 -1
  31. package/dist/production/components/Select.js +3 -5
  32. package/dist/production/components/Select.js.map +1 -1
  33. package/dist/production/components/SelectDataView.cjs +2 -6
  34. package/dist/production/components/SelectDataView.cjs.map +1 -1
  35. package/dist/production/components/SelectDataView.js +3 -7
  36. package/dist/production/components/SelectDataView.js.map +1 -1
  37. package/dist/production/components/SortableMultiSelect.cjs +2 -4
  38. package/dist/production/components/SortableMultiSelect.cjs.map +1 -1
  39. package/dist/production/components/SortableMultiSelect.js +3 -5
  40. package/dist/production/components/SortableMultiSelect.js.map +1 -1
  41. package/dist/production/contexts.cjs +0 -5
  42. package/dist/production/contexts.cjs.map +1 -1
  43. package/dist/production/contexts.js +1 -6
  44. package/dist/production/contexts.js.map +1 -1
  45. package/dist/production/index.cjs +0 -4
  46. package/dist/production/index.cjs.map +1 -1
  47. package/dist/production/index.js +2 -6
  48. package/dist/production/index.js.map +1 -1
  49. package/dist/types/components/MultiSelect.d.ts +2 -3
  50. package/dist/types/components/MultiSelect.d.ts.map +1 -1
  51. package/dist/types/components/Select.d.ts +2 -3
  52. package/dist/types/components/Select.d.ts.map +1 -1
  53. package/dist/types/components/SelectDataView.d.ts.map +1 -1
  54. package/dist/types/components/SortableMultiSelect.d.ts +2 -3
  55. package/dist/types/components/SortableMultiSelect.d.ts.map +1 -1
  56. package/dist/types/contexts.d.ts +0 -4
  57. package/dist/types/contexts.d.ts.map +1 -1
  58. package/dist/types/hooks/index.d.ts +1 -1
  59. package/dist/types/hooks/index.d.ts.map +1 -1
  60. package/dist/types/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +6 -6
  62. package/src/components/MultiSelect.tsx +3 -8
  63. package/src/components/Select.tsx +2 -7
  64. package/src/components/SelectDataView.tsx +2 -5
  65. package/src/components/SortableMultiSelect.tsx +3 -8
  66. package/src/contexts.ts +0 -5
  67. package/src/hooks/index.ts +1 -1
  68. package/dist/development/hooks/useSelectFilter.cjs +0 -31
  69. package/dist/development/hooks/useSelectFilter.cjs.map +0 -1
  70. package/dist/development/hooks/useSelectFilter.js +0 -31
  71. package/dist/development/hooks/useSelectFilter.js.map +0 -1
  72. package/dist/production/hooks/useSelectFilter.cjs +0 -31
  73. package/dist/production/hooks/useSelectFilter.cjs.map +0 -1
  74. package/dist/production/hooks/useSelectFilter.js +0 -31
  75. package/dist/production/hooks/useSelectFilter.js.map +0 -1
  76. package/dist/types/hooks/useSelectFilter.d.ts +0 -8
  77. package/dist/types/hooks/useSelectFilter.d.ts.map +0 -1
  78. 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.22",
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.22",
44
- "@contember/react-dataview": "1.3.0-alpha.22",
45
- "@contember/react-repeater": "1.3.0-alpha.22",
46
- "@contember/react-utils": "1.3.0-alpha.22",
47
- "@contember/utilities": "1.3.0-alpha.22",
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, SelectOptionsFilterContext } from '../contexts'
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, filterField }: MultiSelectProps) => {
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
- <SelectOptionsFilterContext.Provider value={filter}>
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, SelectOptionsFilterContext } from '../contexts'
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, filterField }: SelectProps) => {
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, useSelectOptionsFilter } from '../contexts'
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, SelectOptionsFilterContext } from '../contexts'
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, filterField }: SortableMultiSelectProps) => {
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
- <SelectOptionsFilterContext.Provider value={filter}>
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]
@@ -1 +1 @@
1
- export * from './useSelectFilter'
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
- }