@box/metadata-view 1.62.3 → 1.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/esm/lib/components/filter-row/form-filter-chip.js +40 -40
  2. package/dist/esm/lib/components/filter-row/format-advanced-filter-label.js +163 -0
  3. package/dist/esm/lib/components/filter-row/initial-field-values.js +11 -7
  4. package/dist/esm/lib/components/filter-row/messages.js +73 -1
  5. package/dist/esm/lib/components/filter-row/use-form-filter-chip.js +18 -19
  6. package/dist/i18n/bn-IN.js +18 -0
  7. package/dist/i18n/da-DK.js +18 -0
  8. package/dist/i18n/de-DE.js +18 -0
  9. package/dist/i18n/en-AU.js +18 -0
  10. package/dist/i18n/en-CA.js +18 -0
  11. package/dist/i18n/en-GB.js +18 -0
  12. package/dist/i18n/en-US.js +19 -1
  13. package/dist/i18n/en-US.properties +38 -2
  14. package/dist/i18n/en-x-pseudo.js +18 -0
  15. package/dist/i18n/es-419.js +18 -0
  16. package/dist/i18n/es-ES.js +18 -0
  17. package/dist/i18n/fi-FI.js +18 -0
  18. package/dist/i18n/fr-CA.js +18 -0
  19. package/dist/i18n/fr-FR.js +18 -0
  20. package/dist/i18n/hi-IN.js +18 -0
  21. package/dist/i18n/it-IT.js +18 -0
  22. package/dist/i18n/ja-JP.js +18 -0
  23. package/dist/i18n/json/src/lib/components/filter-row/messages.json +1 -1
  24. package/dist/i18n/ko-KR.js +18 -0
  25. package/dist/i18n/nb-NO.js +18 -0
  26. package/dist/i18n/nl-NL.js +18 -0
  27. package/dist/i18n/pl-PL.js +18 -0
  28. package/dist/i18n/pt-BR.js +18 -0
  29. package/dist/i18n/ru-RU.js +18 -0
  30. package/dist/i18n/sv-SE.js +18 -0
  31. package/dist/i18n/tr-TR.js +18 -0
  32. package/dist/i18n/zh-CN.js +18 -0
  33. package/dist/i18n/zh-TW.js +18 -0
  34. package/dist/types/lib/components/filter-row/format-advanced-filter-label.d.ts +13 -0
  35. package/dist/types/lib/components/filter-row/is-filter-selected.d.ts +2 -7
  36. package/dist/types/lib/components/filter-row/messages.d.ts +90 -0
  37. package/dist/types/lib/components/filter-row/types.d.ts +15 -2
  38. package/dist/types/lib/components/filter-row/use-form-filter-chip.d.ts +3 -3
  39. package/dist/types/lib/test-utils/mock-data.d.ts +1 -1
  40. package/package.json +17 -17
@@ -7,6 +7,24 @@ export default {
7
7
  "groupSharedFeatures.metadataView.actionBar.switchToGridView": "切换为网格视图",
8
8
  "groupSharedFeatures.metadataView.actionBar.switchToListView": "切换为列表视图",
9
9
  "groupSharedFeatures.metadataView.filterRow.AllFilters": "所有筛选条件",
10
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterBetween": "{name}: {gt}-{lt}",
11
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterCustomRange": "{name}: {startDate} - {endDate}",
12
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterGreaterThanOrEqual": "{name}: >= {searchValue}",
13
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterIsBlank": "{name}: is blank",
14
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNot": "{name}: Not \"{searchValue}\"",
15
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNotAtOrWithin": "{name}: not at or within {searchValue}",
16
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNotBlank": "{name}: is not blank",
17
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterLessThanOrEqual": "{name}: <= {searchValue}",
18
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterMatchAtOrWithin": "{name}: at or within {searchValue}",
19
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterMatchExactly": "{name}: \"{searchValue}\"",
20
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterMultiselect": "{name}: {firstValue} +{count}",
21
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterMultiselectIsNot": "{name}: Not {firstValue} +{count}",
22
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterNext": "{name}: Next {searchValue} days",
23
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterNotSearchValue": "{name}: Not {searchValue}",
24
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterOlderThan": "{name}: Older than {searchValue} days",
25
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterPast": "{name}: Past {searchValue} days",
26
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterToday": "{name}: Today",
27
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterWithSearchValue": "{name}: {searchValue}",
10
28
  "groupSharedFeatures.metadataView.filterRow.applyButton": "应用程序",
11
29
  "groupSharedFeatures.metadataView.filterRow.chipNameWithCount": "{name} ({count})",
12
30
  "groupSharedFeatures.metadataView.filterRow.chipNameWithFilterOption": "{name} — {optionLabel}",
@@ -7,6 +7,24 @@ export default {
7
7
  "groupSharedFeatures.metadataView.actionBar.switchToGridView": "切換至方格檢視",
8
8
  "groupSharedFeatures.metadataView.actionBar.switchToListView": "切換至清單檢視",
9
9
  "groupSharedFeatures.metadataView.filterRow.AllFilters": "全部篩選條件",
10
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterBetween": "{name}: {gt}-{lt}",
11
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterCustomRange": "{name}: {startDate} - {endDate}",
12
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterGreaterThanOrEqual": "{name}: >= {searchValue}",
13
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterIsBlank": "{name}: is blank",
14
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNot": "{name}: Not \"{searchValue}\"",
15
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNotAtOrWithin": "{name}: not at or within {searchValue}",
16
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterIsNotBlank": "{name}: is not blank",
17
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterLessThanOrEqual": "{name}: <= {searchValue}",
18
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterMatchAtOrWithin": "{name}: at or within {searchValue}",
19
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterMatchExactly": "{name}: \"{searchValue}\"",
20
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterMultiselect": "{name}: {firstValue} +{count}",
21
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterMultiselectIsNot": "{name}: Not {firstValue} +{count}",
22
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterNext": "{name}: Next {searchValue} days",
23
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterNotSearchValue": "{name}: Not {searchValue}",
24
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterOlderThan": "{name}: Older than {searchValue} days",
25
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterPast": "{name}: Past {searchValue} days",
26
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterToday": "{name}: Today",
27
+ "groupSharedFeatures.metadataView.filterRow.advancedFilterWithSearchValue": "{name}: {searchValue}",
10
28
  "groupSharedFeatures.metadataView.filterRow.applyButton": "套用",
11
29
  "groupSharedFeatures.metadataView.filterRow.chipNameWithCount": "{name} ({count})",
12
30
  "groupSharedFeatures.metadataView.filterRow.chipNameWithFilterOption": "{name} - {optionLabel}",
@@ -0,0 +1,13 @@
1
+ import { FilterKey } from '@box/metadata-filter';
2
+ import { IntlShape } from 'react-intl';
3
+ import { FilterFieldValue } from './types';
4
+ type FormatDate = IntlShape['formatDate'];
5
+ type FormatMessage = IntlShape['formatMessage'];
6
+ export declare const formatAdvancedFilterLabel: ({ name, advancedFilterOption, filterValue, formatDate, formatMessage, }: {
7
+ name: string;
8
+ advancedFilterOption?: FilterKey;
9
+ filterValue?: FilterFieldValue;
10
+ formatDate: FormatDate;
11
+ formatMessage: FormatMessage;
12
+ }) => string;
13
+ export {};
@@ -1,9 +1,5 @@
1
- import { FilterKey, MetadataFormFieldValue } from '@box/metadata-filter';
2
- type TaxonomyFieldValue = {
3
- value?: unknown[];
4
- advancedFilterOption?: FilterKey;
5
- };
6
- type FilterFieldValue = MetadataFormFieldValue | TaxonomyFieldValue;
1
+ import { FilterKey } from '@box/metadata-filter';
2
+ import { FilterFieldValue } from './types';
7
3
  export declare const extractAdvancedFilterOption: (value: FilterFieldValue) => FilterKey | undefined;
8
4
  /**
9
5
  * Returns true if the given field value is considered "selected" (i.e., not empty).
@@ -11,4 +7,3 @@ export declare const extractAdvancedFilterOption: (value: FilterFieldValue) => F
11
7
  * since those filters are active even when the field value itself is empty.
12
8
  */
13
9
  export declare const isFilterSelected: (value: FilterFieldValue) => boolean;
14
- export {};
@@ -44,5 +44,95 @@ declare const messages: {
44
44
  description: string;
45
45
  id: string;
46
46
  };
47
+ advancedFilterWithSearchValue: {
48
+ defaultMessage: string;
49
+ description: string;
50
+ id: string;
51
+ };
52
+ advancedFilterMatchExactly: {
53
+ defaultMessage: string;
54
+ description: string;
55
+ id: string;
56
+ };
57
+ advancedFilterNotSearchValue: {
58
+ defaultMessage: string;
59
+ description: string;
60
+ id: string;
61
+ };
62
+ advancedFilterIsNot: {
63
+ defaultMessage: string;
64
+ description: string;
65
+ id: string;
66
+ };
67
+ advancedFilterIsBlank: {
68
+ defaultMessage: string;
69
+ description: string;
70
+ id: string;
71
+ };
72
+ advancedFilterIsNotBlank: {
73
+ defaultMessage: string;
74
+ description: string;
75
+ id: string;
76
+ };
77
+ advancedFilterGreaterThanOrEqual: {
78
+ defaultMessage: string;
79
+ description: string;
80
+ id: string;
81
+ };
82
+ advancedFilterLessThanOrEqual: {
83
+ defaultMessage: string;
84
+ description: string;
85
+ id: string;
86
+ };
87
+ advancedFilterBetween: {
88
+ defaultMessage: string;
89
+ description: string;
90
+ id: string;
91
+ };
92
+ advancedFilterMultiselect: {
93
+ defaultMessage: string;
94
+ description: string;
95
+ id: string;
96
+ };
97
+ advancedFilterMultiselectIsNot: {
98
+ defaultMessage: string;
99
+ description: string;
100
+ id: string;
101
+ };
102
+ advancedFilterMatchAtOrWithin: {
103
+ defaultMessage: string;
104
+ description: string;
105
+ id: string;
106
+ };
107
+ advancedFilterIsNotAtOrWithin: {
108
+ defaultMessage: string;
109
+ description: string;
110
+ id: string;
111
+ };
112
+ advancedFilterToday: {
113
+ defaultMessage: string;
114
+ description: string;
115
+ id: string;
116
+ };
117
+ advancedFilterNext: {
118
+ defaultMessage: string;
119
+ description: string;
120
+ id: string;
121
+ };
122
+ advancedFilterPast: {
123
+ defaultMessage: string;
124
+ description: string;
125
+ id: string;
126
+ };
127
+ advancedFilterOlderThan: {
128
+ defaultMessage: string;
129
+ description: string;
130
+ id: string;
131
+ };
132
+ advancedFilterCustomRange: {
133
+ defaultMessage: string;
134
+ description: string;
135
+ id: string;
136
+ };
47
137
  };
48
138
  export default messages;
@@ -1,4 +1,4 @@
1
- import { FetcherResponse, FilterKey, Level, MetadataFormFieldValue, MetadataTemplateFieldOption, TaxonomyOptionsRules, TreeOptionType, TreeQueryInput } from '@box/metadata-filter';
1
+ import { BaseOptionType, FetcherResponse, FilterKey, Level, MetadataFormFieldValue, MetadataTemplateFieldOption, RangeValue, TaxonomyOptionsRules, TreeOptionType, TreeQueryInput } from '@box/metadata-filter';
2
2
  import { ReactNode } from 'react';
3
3
  import { FilterVariant, MetadataFieldType } from '../../types';
4
4
  export interface CustomDateFilterOption {
@@ -24,7 +24,20 @@ export type TaxonomyFilterValue = TreeOptionType[] | {
24
24
  value: TreeOptionType[];
25
25
  advancedFilterOption: FilterKey;
26
26
  };
27
- export type FilterFieldValue = MetadataFormFieldValue | TaxonomyFilterValue;
27
+ interface AdvancedEnumValue<TValue> {
28
+ value: TValue;
29
+ advancedFilterOption: FilterKey;
30
+ }
31
+ interface AdvancedEnumObjectFieldValue {
32
+ enum: AdvancedEnumValue<string[] | BaseOptionType[]>;
33
+ }
34
+ interface AdvancedEnumArrayFieldValue {
35
+ enum: Array<AdvancedEnumValue<string | {
36
+ range: Partial<RangeValue>;
37
+ }>>;
38
+ }
39
+ export type AdvancedMetadataFormFieldValue = AdvancedEnumObjectFieldValue | AdvancedEnumArrayFieldValue;
40
+ export type FilterFieldValue = MetadataFormFieldValue | AdvancedMetadataFormFieldValue | TaxonomyFilterValue;
28
41
  export type CustomTriggerBindings = {
29
42
  value: FilterFieldValue | undefined;
30
43
  setValue: (value: FilterFieldValue) => Promise<unknown>;
@@ -1,9 +1,9 @@
1
1
  import { FilterKey } from '@box/metadata-filter';
2
- import { AdvancedFilterOptionsMap } from './types';
2
+ import { FilterFieldValue } from './types';
3
3
  type UseFormFilterChipProps = {
4
4
  name: string;
5
- advancedFilterOptionsMap?: AdvancedFilterOptionsMap;
6
5
  initialAdvancedFilterOption?: FilterKey;
6
+ filterValue?: FilterFieldValue;
7
7
  };
8
8
  type UseFormFilterChipResult = {
9
9
  currentAdvancedFilterOption: FilterKey | undefined;
@@ -14,5 +14,5 @@ type UseFormFilterChipResult = {
14
14
  handleCancel: () => void;
15
15
  handleClear: () => void;
16
16
  };
17
- export declare const useFormFilterChip: ({ name, advancedFilterOptionsMap, initialAdvancedFilterOption, }: UseFormFilterChipProps) => UseFormFilterChipResult;
17
+ export declare const useFormFilterChip: ({ name, initialAdvancedFilterOption, filterValue, }: UseFormFilterChipProps) => UseFormFilterChipResult;
18
18
  export {};
@@ -7,7 +7,7 @@ import { ItemActionMenuProps } from '../components/item-action-menu/item-action-
7
7
  import { MetadataTableProps } from '../components/metadata-table';
8
8
  import { PaginationProps } from '../components/pagination/pagination';
9
9
  import { SortDropdownProps } from '../components/sort-dropdown/sort-dropdown';
10
- import { MetadataViewProps, Column, HeaderProps } from '../types';
10
+ import { Column, HeaderProps, MetadataViewProps } from '../types';
11
11
  export declare const getMockFilterGroups: (filters: FilterOption[]) => Array<FilterGroup>;
12
12
  export declare const mockActiveFilterIds: string[];
13
13
  export declare const mockColumnData: Column[];
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@box/metadata-view",
3
- "version": "1.62.3",
3
+ "version": "1.63.1",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
- "@box/blueprint-web": "^15.6.0",
7
- "@box/blueprint-web-assets": "^4.123.2",
8
- "@box/box-item-type-selector": "^1.42.13",
9
- "@box/content-field": "^1.43.13",
10
- "@box/item-icon": "^2.36.13",
11
- "@box/metadata-filter": "^1.84.13",
12
- "@box/types": "2.2.5",
6
+ "@box/blueprint-web": "^15.7.1",
7
+ "@box/blueprint-web-assets": "^4.124.1",
8
+ "@box/box-item-type-selector": "^1.43.1",
9
+ "@box/content-field": "^1.44.1",
10
+ "@box/item-icon": "^2.37.1",
11
+ "@box/metadata-filter": "^1.85.1",
12
+ "@box/types": "2.2.6",
13
13
  "@tanstack/react-virtual": "^3.10.8",
14
14
  "formik": "^2.4.5",
15
15
  "lodash": "^4.17.15",
@@ -19,15 +19,15 @@
19
19
  "react-intl": "^6.4.2"
20
20
  },
21
21
  "devDependencies": {
22
- "@box/blueprint-web": "^15.6.0",
23
- "@box/blueprint-web-assets": "^4.123.2",
24
- "@box/box-item-type-selector": "^1.42.13",
25
- "@box/content-field": "^1.43.13",
26
- "@box/eslint-plugin-blueprint": "1.2.5",
27
- "@box/item-icon": "^2.36.13",
28
- "@box/metadata-filter": "^1.84.13",
29
- "@box/storybook-utils": "0.20.12",
30
- "@box/types": "2.2.5",
22
+ "@box/blueprint-web": "^15.7.1",
23
+ "@box/blueprint-web-assets": "^4.124.1",
24
+ "@box/box-item-type-selector": "^1.43.1",
25
+ "@box/content-field": "^1.44.1",
26
+ "@box/eslint-plugin-blueprint": "1.2.6",
27
+ "@box/item-icon": "^2.37.1",
28
+ "@box/metadata-filter": "^1.85.1",
29
+ "@box/storybook-utils": "0.21.1",
30
+ "@box/types": "2.2.6",
31
31
  "@tanstack/react-virtual": "^3.10.8",
32
32
  "react-intl": "^6.4.2"
33
33
  },