box-ui-elements 23.3.1-beta.1 → 23.4.0-beta.2

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 (92) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/preview.js +1 -1
  3. package/dist/sharing.js +1 -1
  4. package/dist/sharing.js.LICENSE.txt +10 -0
  5. package/dist/sidebar.js +1 -1
  6. package/es/common/types/metadata.js.flow +1 -0
  7. package/es/common/types/metadata.js.map +1 -1
  8. package/es/components/notification/Notification.js +17 -8
  9. package/es/components/notification/Notification.js.flow +15 -8
  10. package/es/components/notification/Notification.js.map +1 -1
  11. package/es/features/metadata-instance-editor/CascadePolicy.js +6 -2
  12. package/es/features/metadata-instance-editor/CascadePolicy.js.flow +19 -12
  13. package/es/features/metadata-instance-editor/CascadePolicy.js.map +1 -1
  14. package/es/features/metadata-instance-editor/Instance.js +31 -9
  15. package/es/features/metadata-instance-editor/Instance.js.flow +41 -9
  16. package/es/features/metadata-instance-editor/Instance.js.map +1 -1
  17. package/es/features/metadata-instance-editor/Instances.js +2 -0
  18. package/es/features/metadata-instance-editor/Instances.js.flow +3 -0
  19. package/es/features/metadata-instance-editor/Instances.js.map +1 -1
  20. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js +2 -0
  21. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.flow +3 -0
  22. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.map +1 -1
  23. package/es/features/metadata-instance-editor/TemplateDropdown.js +1 -1
  24. package/es/features/metadata-instance-editor/TemplateDropdown.js.flow +1 -1
  25. package/es/features/metadata-instance-editor/TemplateDropdown.js.map +1 -1
  26. package/es/features/metadata-instance-editor/TemplatedInstance.js +2 -0
  27. package/es/features/metadata-instance-editor/TemplatedInstance.js.flow +11 -1
  28. package/es/features/metadata-instance-editor/TemplatedInstance.js.map +1 -1
  29. package/es/features/metadata-instance-editor/constants.js +2 -1
  30. package/es/features/metadata-instance-editor/constants.js.flow +3 -1
  31. package/es/features/metadata-instance-editor/constants.js.map +1 -1
  32. package/es/features/metadata-instance-fields/DateMetadataField.js +30 -25
  33. package/es/features/metadata-instance-fields/DateMetadataField.js.flow +31 -27
  34. package/es/features/metadata-instance-fields/DateMetadataField.js.map +1 -1
  35. package/es/features/metadata-instance-fields/EnumMetadataField.js +8 -5
  36. package/es/features/metadata-instance-fields/EnumMetadataField.js.flow +8 -6
  37. package/es/features/metadata-instance-fields/EnumMetadataField.js.map +1 -1
  38. package/es/features/metadata-instance-fields/FloatMetadataField.js +2 -0
  39. package/es/features/metadata-instance-fields/FloatMetadataField.js.flow +3 -0
  40. package/es/features/metadata-instance-fields/FloatMetadataField.js.map +1 -1
  41. package/es/features/metadata-instance-fields/IntegerMetadataField.js +2 -0
  42. package/es/features/metadata-instance-fields/IntegerMetadataField.js.flow +3 -0
  43. package/es/features/metadata-instance-fields/IntegerMetadataField.js.map +1 -1
  44. package/es/features/metadata-instance-fields/MetadataField.js +7 -0
  45. package/es/features/metadata-instance-fields/MetadataField.js.flow +8 -0
  46. package/es/features/metadata-instance-fields/MetadataField.js.map +1 -1
  47. package/es/features/metadata-instance-fields/MultiSelectMetadataField.js +2 -0
  48. package/es/features/metadata-instance-fields/MultiSelectMetadataField.js.flow +3 -0
  49. package/es/features/metadata-instance-fields/MultiSelectMetadataField.js.map +1 -1
  50. package/es/features/metadata-instance-fields/TextMetadataField.js +8 -5
  51. package/es/features/metadata-instance-fields/TextMetadataField.js.flow +8 -6
  52. package/es/features/metadata-instance-fields/TextMetadataField.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/common/types/metadata.js +1 -0
  55. package/src/components/notification/Notification.js +15 -8
  56. package/src/components/notification/__tests__/Notification.test.js +21 -1
  57. package/src/features/metadata-instance-editor/CascadePolicy.js +19 -12
  58. package/src/features/metadata-instance-editor/Instance.js +41 -9
  59. package/src/features/metadata-instance-editor/Instances.js +3 -0
  60. package/src/features/metadata-instance-editor/MetadataInstanceEditor.js +3 -0
  61. package/src/features/metadata-instance-editor/TemplateDropdown.js +1 -1
  62. package/src/features/metadata-instance-editor/TemplatedInstance.js +11 -1
  63. package/src/features/metadata-instance-editor/__tests__/CascadePolicy.test.js +92 -1
  64. package/src/features/metadata-instance-editor/__tests__/Instance.test.js +207 -2
  65. package/src/features/metadata-instance-editor/__tests__/Instances.test.js +92 -3
  66. package/src/features/metadata-instance-editor/__tests__/MetadataInstanceEditor.test.js +105 -0
  67. package/src/features/metadata-instance-editor/__tests__/TemplatedInstance.test.js +83 -1
  68. package/src/features/metadata-instance-editor/__tests__/__snapshots__/CascadePolicy.test.js.snap +1 -0
  69. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +16 -5
  70. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instances.test.js.snap +4 -2
  71. package/src/features/metadata-instance-editor/__tests__/__snapshots__/MetadataInstanceEditor.test.js.snap +1 -0
  72. package/src/features/metadata-instance-editor/__tests__/__snapshots__/TemplatedInstance.test.js.snap +2 -2
  73. package/src/features/metadata-instance-editor/constants.js +3 -1
  74. package/src/features/metadata-instance-fields/DateMetadataField.js +31 -27
  75. package/src/features/metadata-instance-fields/EnumMetadataField.js +8 -6
  76. package/src/features/metadata-instance-fields/FloatMetadataField.js +3 -0
  77. package/src/features/metadata-instance-fields/IntegerMetadataField.js +3 -0
  78. package/src/features/metadata-instance-fields/MetadataField.js +8 -0
  79. package/src/features/metadata-instance-fields/MultiSelectMetadataField.js +3 -0
  80. package/src/features/metadata-instance-fields/TextMetadataField.js +8 -6
  81. package/src/features/metadata-instance-fields/__tests__/DateMetadataField.test.js +59 -8
  82. package/src/features/metadata-instance-fields/__tests__/EnumMetadataField.test.js +63 -18
  83. package/src/features/metadata-instance-fields/__tests__/FloatMetadataField.test.js +68 -4
  84. package/src/features/metadata-instance-fields/__tests__/IntegerMetadataField.test.js +90 -4
  85. package/src/features/metadata-instance-fields/__tests__/MultiSelectMetadataField.test.js +95 -7
  86. package/src/features/metadata-instance-fields/__tests__/TextMetadataField.test.js +107 -14
  87. package/src/features/metadata-instance-fields/__tests__/__snapshots__/DateMetadataField.test.js.snap +0 -18
  88. package/src/features/metadata-instance-fields/__tests__/__snapshots__/EnumMetadataField.test.js.snap +0 -84
  89. package/src/features/metadata-instance-fields/__tests__/__snapshots__/FloatMetadataField.test.js.snap +0 -8
  90. package/src/features/metadata-instance-fields/__tests__/__snapshots__/IntegerMetadataField.test.js.snap +0 -8
  91. package/src/features/metadata-instance-fields/__tests__/__snapshots__/MultiSelectMetadataField.test.js.snap +0 -58
  92. package/src/features/metadata-instance-fields/__tests__/__snapshots__/TextMetadataField.test.js.snap +0 -31
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataField.js","names":["React","FormattedMessage","InlineError","TextMetadataField","EnumMetadataField","DateMetadataField","FloatMetadataField","IntegerMetadataField","MultiSelectMetadataField","ReadOnlyMetadataField","messages","FIELD_TYPE_ENUM","FIELD_TYPE_FLOAT","FIELD_TYPE_INTEGER","FIELD_TYPE_STRING","FIELD_TYPE_DATE","FIELD_TYPE_MULTISELECT","MetadataField","blurExceptionClassNames","dataKey","dataValue","displayName","description","error","isHidden","canEdit","onChange","onRemove","options","type","createElement","Error","title","invalidMetadataFieldType"],"sources":["../../../src/features/metadata-instance-fields/MetadataField.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport InlineError from '../../components/inline-error/InlineError';\n\nimport TextMetadataField from './TextMetadataField';\nimport EnumMetadataField from './EnumMetadataField';\nimport DateMetadataField from './DateMetadataField';\nimport FloatMetadataField from './FloatMetadataField';\nimport IntegerMetadataField from './IntegerMetadataField';\nimport MultiSelectMetadataField from './MultiSelectMetadataField';\nimport ReadOnlyMetadataField from './ReadOnlyMetadataField';\nimport messages from './messages';\nimport type { MetadataFieldValue, MetadataTemplateFieldOption, MetadataFieldType } from '../../common/types/metadata';\n\nimport {\n FIELD_TYPE_ENUM,\n FIELD_TYPE_FLOAT,\n FIELD_TYPE_INTEGER,\n FIELD_TYPE_STRING,\n FIELD_TYPE_DATE,\n FIELD_TYPE_MULTISELECT,\n} from './constants';\n\ntype Props = {\n blurExceptionClassNames?: Array<string>,\n canEdit: boolean,\n dataKey: string,\n dataValue?: MetadataFieldValue,\n description?: string,\n displayName: string,\n error?: React.Node,\n isHidden?: boolean,\n onChange?: (key: string, value: MetadataFieldValue) => void,\n onRemove?: (key: string) => void,\n options?: Array<MetadataTemplateFieldOption>,\n type: MetadataFieldType,\n};\n\nconst MetadataField = ({\n blurExceptionClassNames,\n dataKey,\n dataValue,\n displayName,\n description,\n error,\n isHidden,\n canEdit,\n onChange,\n onRemove,\n options,\n type,\n}: Props) => {\n if (isHidden) {\n return null;\n }\n\n if (!canEdit) {\n return (\n <ReadOnlyMetadataField\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n type={type}\n />\n );\n }\n\n if (!onChange || !onRemove) {\n throw new Error('Need to have onChange and onRemove');\n }\n\n switch (type) {\n case FIELD_TYPE_STRING:\n return (\n <TextMetadataField\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n onChange={onChange}\n onRemove={onRemove}\n />\n );\n\n case FIELD_TYPE_FLOAT:\n return (\n <FloatMetadataField\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n error={error}\n onChange={onChange}\n onRemove={onRemove}\n type={type}\n />\n );\n\n case FIELD_TYPE_INTEGER:\n return (\n <IntegerMetadataField\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n error={error}\n onChange={onChange}\n onRemove={onRemove}\n type={type}\n />\n );\n\n case FIELD_TYPE_ENUM:\n return (\n <EnumMetadataField\n blurExceptionClassNames={blurExceptionClassNames}\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n onChange={onChange}\n onRemove={onRemove}\n options={options}\n />\n );\n\n case FIELD_TYPE_MULTISELECT:\n return (\n <MultiSelectMetadataField\n blurExceptionClassNames={blurExceptionClassNames}\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n onChange={onChange}\n onRemove={onRemove}\n options={options}\n />\n );\n\n case FIELD_TYPE_DATE:\n return (\n <DateMetadataField\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n onChange={onChange}\n onRemove={onRemove}\n />\n );\n\n default:\n return (\n <InlineError title={type}>\n <FormattedMessage {...messages.invalidMetadataFieldType} />\n </InlineError>\n );\n }\n};\n\nexport default MetadataField;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MetadataField.js","names":["React","FormattedMessage","InlineError","TextMetadataField","EnumMetadataField","DateMetadataField","FloatMetadataField","IntegerMetadataField","MultiSelectMetadataField","ReadOnlyMetadataField","messages","FIELD_TYPE_ENUM","FIELD_TYPE_FLOAT","FIELD_TYPE_INTEGER","FIELD_TYPE_STRING","FIELD_TYPE_DATE","FIELD_TYPE_MULTISELECT","MetadataField","blurExceptionClassNames","dataKey","dataValue","displayName","description","error","isDisabled","isHidden","canEdit","onChange","onRemove","options","type","createElement","Error","title","invalidMetadataFieldType"],"sources":["../../../src/features/metadata-instance-fields/MetadataField.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport InlineError from '../../components/inline-error/InlineError';\n\nimport TextMetadataField from './TextMetadataField';\nimport EnumMetadataField from './EnumMetadataField';\nimport DateMetadataField from './DateMetadataField';\nimport FloatMetadataField from './FloatMetadataField';\nimport IntegerMetadataField from './IntegerMetadataField';\nimport MultiSelectMetadataField from './MultiSelectMetadataField';\nimport ReadOnlyMetadataField from './ReadOnlyMetadataField';\nimport messages from './messages';\nimport type { MetadataFieldValue, MetadataTemplateFieldOption, MetadataFieldType } from '../../common/types/metadata';\n\nimport {\n FIELD_TYPE_ENUM,\n FIELD_TYPE_FLOAT,\n FIELD_TYPE_INTEGER,\n FIELD_TYPE_STRING,\n FIELD_TYPE_DATE,\n FIELD_TYPE_MULTISELECT,\n} from './constants';\n\ntype Props = {\n blurExceptionClassNames?: Array<string>,\n canEdit: boolean,\n dataKey: string,\n dataValue?: MetadataFieldValue,\n description?: string,\n displayName: string,\n error?: React.Node,\n isDisabled?: boolean,\n isHidden?: boolean,\n onChange?: (key: string, value: MetadataFieldValue) => void,\n onRemove?: (key: string) => void,\n options?: Array<MetadataTemplateFieldOption>,\n type: MetadataFieldType,\n};\n\nconst MetadataField = ({\n blurExceptionClassNames,\n dataKey,\n dataValue,\n displayName,\n description,\n error,\n isDisabled,\n isHidden,\n canEdit,\n onChange,\n onRemove,\n options,\n type,\n}: Props) => {\n if (isHidden) {\n return null;\n }\n\n if (!canEdit) {\n return (\n <ReadOnlyMetadataField\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n type={type}\n />\n );\n }\n\n if (!onChange || !onRemove) {\n throw new Error('Need to have onChange and onRemove');\n }\n\n switch (type) {\n case FIELD_TYPE_STRING:\n return (\n <TextMetadataField\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n isDisabled={isDisabled}\n onChange={onChange}\n onRemove={onRemove}\n />\n );\n\n case FIELD_TYPE_FLOAT:\n return (\n <FloatMetadataField\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n error={error}\n isDisabled={isDisabled}\n onChange={onChange}\n onRemove={onRemove}\n type={type}\n />\n );\n\n case FIELD_TYPE_INTEGER:\n return (\n <IntegerMetadataField\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n error={error}\n isDisabled={isDisabled}\n onChange={onChange}\n onRemove={onRemove}\n type={type}\n />\n );\n\n case FIELD_TYPE_ENUM:\n return (\n <EnumMetadataField\n blurExceptionClassNames={blurExceptionClassNames}\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n isDisabled={isDisabled}\n onChange={onChange}\n onRemove={onRemove}\n options={options}\n />\n );\n\n case FIELD_TYPE_MULTISELECT:\n return (\n <MultiSelectMetadataField\n blurExceptionClassNames={blurExceptionClassNames}\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n isDisabled={isDisabled}\n onChange={onChange}\n onRemove={onRemove}\n options={options}\n />\n );\n\n case FIELD_TYPE_DATE:\n return (\n <DateMetadataField\n dataKey={dataKey}\n dataValue={dataValue}\n description={description}\n displayName={displayName}\n isDisabled={isDisabled}\n onChange={onChange}\n onRemove={onRemove}\n />\n );\n\n default:\n return (\n <InlineError title={type}>\n <FormattedMessage {...messages.invalidMetadataFieldType} />\n </InlineError>\n );\n }\n};\n\nexport default MetadataField;\n"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,7 @@ const MultiSelectMetadataField = ({
10
10
  dataValue,
11
11
  displayName,
12
12
  description,
13
+ isDisabled,
13
14
  onChange,
14
15
  onRemove,
15
16
  options = []
@@ -23,6 +24,7 @@ const MultiSelectMetadataField = ({
23
24
  className: "bdl-MultiSelectMetadataField-desc"
24
25
  }, description), /*#__PURE__*/React.createElement(MultiSelect, {
25
26
  blurExceptionClassNames: blurExceptionClassNames,
27
+ isDisabled: isDisabled,
26
28
  isEscapedWithReference: true,
27
29
  isScrollable: true,
28
30
  onChange: selectedOptions => {
@@ -18,6 +18,7 @@ type Props = {
18
18
  dataValue?: MetadataFieldValue,
19
19
  description?: string,
20
20
  displayName: string,
21
+ isDisabled?: boolean,
21
22
  onChange: (key: string, value: MetadataFieldValue) => void,
22
23
  onRemove: (key: string) => void,
23
24
  options?: Array<MetadataTemplateFieldOption>,
@@ -29,6 +30,7 @@ const MultiSelectMetadataField = ({
29
30
  dataValue,
30
31
  displayName,
31
32
  description,
33
+ isDisabled,
32
34
  onChange,
33
35
  onRemove,
34
36
  options = [],
@@ -41,6 +43,7 @@ const MultiSelectMetadataField = ({
41
43
  {!!description && <i className="bdl-MultiSelectMetadataField-desc">{description}</i>}
42
44
  <MultiSelect
43
45
  blurExceptionClassNames={blurExceptionClassNames}
46
+ isDisabled={isDisabled}
44
47
  isEscapedWithReference
45
48
  isScrollable
46
49
  onChange={(selectedOptions: Array<SelectOptionProp>) => {
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectMetadataField.js","names":["React","FormattedMessage","Label","MultiSelect","messages","MultiSelectMetadataField","blurExceptionClassNames","dataKey","dataValue","displayName","description","onChange","onRemove","options","placeholder","createElement","metadataFieldMultiSelectValue","className","text","isEscapedWithReference","isScrollable","selectedOptions","length","map","value","option","displayText","key","selectedValues","MultiSelectMetadataFieldBase"],"sources":["../../../src/features/metadata-instance-fields/MultiSelectMetadataField.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport Label from '../../components/label/Label';\nimport MultiSelect from '../../components/select-field/MultiSelectField';\nimport type { SelectOptionProp } from '../../components/select-field/props';\n\nimport messages from './messages';\n\nimport type { MetadataFieldValue, MetadataTemplateFieldOption } from '../../common/types/metadata';\n\nimport './MultiSelectMetadataField.scss';\n\ntype Props = {\n blurExceptionClassNames?: Array<string>,\n dataKey: string,\n dataValue?: MetadataFieldValue,\n description?: string,\n displayName: string,\n onChange: (key: string, value: MetadataFieldValue) => void,\n onRemove: (key: string) => void,\n options?: Array<MetadataTemplateFieldOption>,\n};\n\nconst MultiSelectMetadataField = ({\n blurExceptionClassNames,\n dataKey,\n dataValue,\n displayName,\n description,\n onChange,\n onRemove,\n options = [],\n}: Props) => {\n const placeholder = <FormattedMessage {...messages.metadataFieldMultiSelectValue} />;\n\n return (\n <div className=\"bdl-MultiSelectMetadataField\">\n <Label text={displayName}>\n {!!description && <i className=\"bdl-MultiSelectMetadataField-desc\">{description}</i>}\n <MultiSelect\n blurExceptionClassNames={blurExceptionClassNames}\n isEscapedWithReference\n isScrollable\n onChange={(selectedOptions: Array<SelectOptionProp>) => {\n if (selectedOptions.length) {\n onChange(\n dataKey,\n selectedOptions.map(({ value }) => value),\n );\n } else {\n onRemove(dataKey);\n }\n }}\n options={options.map(option => ({\n displayText: option.key,\n value: option.key,\n }))}\n placeholder={placeholder}\n selectedValues={dataValue}\n />\n </Label>\n </div>\n );\n};\n\nexport { MultiSelectMetadataField as MultiSelectMetadataFieldBase };\nexport default MultiSelectMetadataField;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,gBAAgB,QAAQ,YAAY;AAE7C,OAAOC,KAAK,MAAM,8BAA8B;AAChD,OAAOC,WAAW,MAAM,gDAAgD;AAGxE,OAAOC,QAAQ,MAAM,YAAY;AAIjC,OAAO,iCAAiC;AAaxC,MAAMC,wBAAwB,GAAGA,CAAC;EAC9BC,uBAAuB;EACvBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,QAAQ;EACRC,QAAQ;EACRC,OAAO,GAAG;AACP,CAAC,KAAK;EACT,MAAMC,WAAW,gBAAGd,KAAA,CAAAe,aAAA,CAACd,gBAAgB,EAAKG,QAAQ,CAACY,6BAAgC,CAAC;EAEpF,oBACIhB,KAAA,CAAAe,aAAA;IAAKE,SAAS,EAAC;EAA8B,gBACzCjB,KAAA,CAAAe,aAAA,CAACb,KAAK;IAACgB,IAAI,EAAET;EAAY,GACpB,CAAC,CAACC,WAAW,iBAAIV,KAAA,CAAAe,aAAA;IAAGE,SAAS,EAAC;EAAmC,GAAEP,WAAe,CAAC,eACpFV,KAAA,CAAAe,aAAA,CAACZ,WAAW;IACRG,uBAAuB,EAAEA,uBAAwB;IACjDa,sBAAsB;IACtBC,YAAY;IACZT,QAAQ,EAAGU,eAAwC,IAAK;MACpD,IAAIA,eAAe,CAACC,MAAM,EAAE;QACxBX,QAAQ,CACJJ,OAAO,EACPc,eAAe,CAACE,GAAG,CAAC,CAAC;UAAEC;QAAM,CAAC,KAAKA,KAAK,CAC5C,CAAC;MACL,CAAC,MAAM;QACHZ,QAAQ,CAACL,OAAO,CAAC;MACrB;IACJ,CAAE;IACFM,OAAO,EAAEA,OAAO,CAACU,GAAG,CAACE,MAAM,KAAK;MAC5BC,WAAW,EAAED,MAAM,CAACE,GAAG;MACvBH,KAAK,EAAEC,MAAM,CAACE;IAClB,CAAC,CAAC,CAAE;IACJb,WAAW,EAAEA,WAAY;IACzBc,cAAc,EAAEpB;EAAU,CAC7B,CACE,CACN,CAAC;AAEd,CAAC;AAED,SAASH,wBAAwB,IAAIwB,4BAA4B;AACjE,eAAexB,wBAAwB","ignoreList":[]}
1
+ {"version":3,"file":"MultiSelectMetadataField.js","names":["React","FormattedMessage","Label","MultiSelect","messages","MultiSelectMetadataField","blurExceptionClassNames","dataKey","dataValue","displayName","description","isDisabled","onChange","onRemove","options","placeholder","createElement","metadataFieldMultiSelectValue","className","text","isEscapedWithReference","isScrollable","selectedOptions","length","map","value","option","displayText","key","selectedValues","MultiSelectMetadataFieldBase"],"sources":["../../../src/features/metadata-instance-fields/MultiSelectMetadataField.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport Label from '../../components/label/Label';\nimport MultiSelect from '../../components/select-field/MultiSelectField';\nimport type { SelectOptionProp } from '../../components/select-field/props';\n\nimport messages from './messages';\n\nimport type { MetadataFieldValue, MetadataTemplateFieldOption } from '../../common/types/metadata';\n\nimport './MultiSelectMetadataField.scss';\n\ntype Props = {\n blurExceptionClassNames?: Array<string>,\n dataKey: string,\n dataValue?: MetadataFieldValue,\n description?: string,\n displayName: string,\n isDisabled?: boolean,\n onChange: (key: string, value: MetadataFieldValue) => void,\n onRemove: (key: string) => void,\n options?: Array<MetadataTemplateFieldOption>,\n};\n\nconst MultiSelectMetadataField = ({\n blurExceptionClassNames,\n dataKey,\n dataValue,\n displayName,\n description,\n isDisabled,\n onChange,\n onRemove,\n options = [],\n}: Props) => {\n const placeholder = <FormattedMessage {...messages.metadataFieldMultiSelectValue} />;\n\n return (\n <div className=\"bdl-MultiSelectMetadataField\">\n <Label text={displayName}>\n {!!description && <i className=\"bdl-MultiSelectMetadataField-desc\">{description}</i>}\n <MultiSelect\n blurExceptionClassNames={blurExceptionClassNames}\n isDisabled={isDisabled}\n isEscapedWithReference\n isScrollable\n onChange={(selectedOptions: Array<SelectOptionProp>) => {\n if (selectedOptions.length) {\n onChange(\n dataKey,\n selectedOptions.map(({ value }) => value),\n );\n } else {\n onRemove(dataKey);\n }\n }}\n options={options.map(option => ({\n displayText: option.key,\n value: option.key,\n }))}\n placeholder={placeholder}\n selectedValues={dataValue}\n />\n </Label>\n </div>\n );\n};\n\nexport { MultiSelectMetadataField as MultiSelectMetadataFieldBase };\nexport default MultiSelectMetadataField;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,gBAAgB,QAAQ,YAAY;AAE7C,OAAOC,KAAK,MAAM,8BAA8B;AAChD,OAAOC,WAAW,MAAM,gDAAgD;AAGxE,OAAOC,QAAQ,MAAM,YAAY;AAIjC,OAAO,iCAAiC;AAcxC,MAAMC,wBAAwB,GAAGA,CAAC;EAC9BC,uBAAuB;EACvBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,UAAU;EACVC,QAAQ;EACRC,QAAQ;EACRC,OAAO,GAAG;AACP,CAAC,KAAK;EACT,MAAMC,WAAW,gBAAGf,KAAA,CAAAgB,aAAA,CAACf,gBAAgB,EAAKG,QAAQ,CAACa,6BAAgC,CAAC;EAEpF,oBACIjB,KAAA,CAAAgB,aAAA;IAAKE,SAAS,EAAC;EAA8B,gBACzClB,KAAA,CAAAgB,aAAA,CAACd,KAAK;IAACiB,IAAI,EAAEV;EAAY,GACpB,CAAC,CAACC,WAAW,iBAAIV,KAAA,CAAAgB,aAAA;IAAGE,SAAS,EAAC;EAAmC,GAAER,WAAe,CAAC,eACpFV,KAAA,CAAAgB,aAAA,CAACb,WAAW;IACRG,uBAAuB,EAAEA,uBAAwB;IACjDK,UAAU,EAAEA,UAAW;IACvBS,sBAAsB;IACtBC,YAAY;IACZT,QAAQ,EAAGU,eAAwC,IAAK;MACpD,IAAIA,eAAe,CAACC,MAAM,EAAE;QACxBX,QAAQ,CACJL,OAAO,EACPe,eAAe,CAACE,GAAG,CAAC,CAAC;UAAEC;QAAM,CAAC,KAAKA,KAAK,CAC5C,CAAC;MACL,CAAC,MAAM;QACHZ,QAAQ,CAACN,OAAO,CAAC;MACrB;IACJ,CAAE;IACFO,OAAO,EAAEA,OAAO,CAACU,GAAG,CAACE,MAAM,KAAK;MAC5BC,WAAW,EAAED,MAAM,CAACE,GAAG;MACvBH,KAAK,EAAEC,MAAM,CAACE;IAClB,CAAC,CAAC,CAAE;IACJb,WAAW,EAAEA,WAAY;IACzBc,cAAc,EAAErB;EAAU,CAC7B,CACE,CACN,CAAC;AAEd,CAAC;AAED,SAASH,wBAAwB,IAAIyB,4BAA4B;AACjE,eAAezB,wBAAwB","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { injectIntl } from 'react-intl';
2
+ import { useIntl } from 'react-intl';
3
3
  import TextInput from '../../components/text-input';
4
4
  import messages from './messages';
5
5
  import './TextMetadataField.scss';
@@ -9,11 +9,14 @@ const TextMetadataField = ({
9
9
  displayName,
10
10
  description,
11
11
  error,
12
- intl,
12
+ isDisabled,
13
13
  onChange,
14
14
  onRemove,
15
15
  type = 'text'
16
16
  }) => {
17
+ const {
18
+ formatMessage
19
+ } = useIntl();
17
20
  let value = '';
18
21
  if (typeof dataValue === 'number') {
19
22
  value = dataValue;
@@ -25,6 +28,7 @@ const TextMetadataField = ({
25
28
  description: description,
26
29
  error: error,
27
30
  hideOptionalLabel: true,
31
+ disabled: isDisabled,
28
32
  label: displayName,
29
33
  name: dataKey,
30
34
  onChange: event => {
@@ -35,11 +39,10 @@ const TextMetadataField = ({
35
39
  onRemove(dataKey);
36
40
  }
37
41
  },
38
- placeholder: intl.formatMessage(messages.metadataFieldSetValue),
42
+ placeholder: formatMessage(messages.metadataFieldSetValue),
39
43
  type: type,
40
44
  value: value
41
45
  });
42
46
  };
43
- export { TextMetadataField as TextMetadataFieldBase };
44
- export default injectIntl(TextMetadataField);
47
+ export default TextMetadataField;
45
48
  //# sourceMappingURL=TextMetadataField.js.map
@@ -1,6 +1,6 @@
1
1
  // @flow
2
2
  import * as React from 'react';
3
- import { injectIntl } from 'react-intl';
3
+ import { useIntl } from 'react-intl';
4
4
 
5
5
  import TextInput from '../../components/text-input';
6
6
 
@@ -14,7 +14,7 @@ type Props = {
14
14
  description?: string,
15
15
  displayName: string,
16
16
  error?: React.Node,
17
- intl: any,
17
+ isDisabled?: boolean,
18
18
  onChange: (key: string, value: MetadataFieldValue) => void,
19
19
  onRemove: (key: string) => void,
20
20
  type?: string,
@@ -26,11 +26,13 @@ const TextMetadataField = ({
26
26
  displayName,
27
27
  description,
28
28
  error,
29
- intl,
29
+ isDisabled,
30
30
  onChange,
31
31
  onRemove,
32
32
  type = 'text',
33
33
  }: Props) => {
34
+ const { formatMessage } = useIntl();
35
+
34
36
  let value = '';
35
37
 
36
38
  if (typeof dataValue === 'number') {
@@ -45,6 +47,7 @@ const TextMetadataField = ({
45
47
  description={description}
46
48
  error={error}
47
49
  hideOptionalLabel
50
+ disabled={isDisabled}
48
51
  label={displayName}
49
52
  name={dataKey}
50
53
  onChange={(event: SyntheticKeyboardEvent<HTMLInputElement>) => {
@@ -55,12 +58,11 @@ const TextMetadataField = ({
55
58
  onRemove(dataKey);
56
59
  }
57
60
  }}
58
- placeholder={intl.formatMessage(messages.metadataFieldSetValue)}
61
+ placeholder={formatMessage(messages.metadataFieldSetValue)}
59
62
  type={type}
60
63
  value={value}
61
64
  />
62
65
  );
63
66
  };
64
67
 
65
- export { TextMetadataField as TextMetadataFieldBase };
66
- export default injectIntl(TextMetadataField);
68
+ export default TextMetadataField;
@@ -1 +1 @@
1
- {"version":3,"file":"TextMetadataField.js","names":["React","injectIntl","TextInput","messages","TextMetadataField","dataKey","dataValue","displayName","description","error","intl","onChange","onRemove","type","value","createElement","className","hideOptionalLabel","label","name","event","currentTarget","placeholder","formatMessage","metadataFieldSetValue","TextMetadataFieldBase"],"sources":["../../../src/features/metadata-instance-fields/TextMetadataField.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport TextInput from '../../components/text-input';\n\nimport messages from './messages';\nimport type { MetadataFieldValue } from '../../common/types/metadata';\nimport './TextMetadataField.scss';\n\ntype Props = {\n dataKey: string,\n dataValue?: MetadataFieldValue,\n description?: string,\n displayName: string,\n error?: React.Node,\n intl: any,\n onChange: (key: string, value: MetadataFieldValue) => void,\n onRemove: (key: string) => void,\n type?: string,\n};\n\nconst TextMetadataField = ({\n dataKey,\n dataValue,\n displayName,\n description,\n error,\n intl,\n onChange,\n onRemove,\n type = 'text',\n}: Props) => {\n let value = '';\n\n if (typeof dataValue === 'number') {\n value = dataValue;\n } else if (dataValue) {\n value = dataValue;\n }\n\n return (\n <TextInput\n className=\"bdl-TextMetadataField\"\n description={description}\n error={error}\n hideOptionalLabel\n label={displayName}\n name={dataKey}\n onChange={(event: SyntheticKeyboardEvent<HTMLInputElement>) => {\n const currentTarget = (event.currentTarget: HTMLInputElement);\n if (currentTarget.value) {\n onChange(dataKey, currentTarget.value);\n } else {\n onRemove(dataKey);\n }\n }}\n placeholder={intl.formatMessage(messages.metadataFieldSetValue)}\n type={type}\n value={value}\n />\n );\n};\n\nexport { TextMetadataField as TextMetadataFieldBase };\nexport default injectIntl(TextMetadataField);\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,YAAY;AAEvC,OAAOC,SAAS,MAAM,6BAA6B;AAEnD,OAAOC,QAAQ,MAAM,YAAY;AAEjC,OAAO,0BAA0B;AAcjC,MAAMC,iBAAiB,GAAGA,CAAC;EACvBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,KAAK;EACLC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,IAAI,GAAG;AACJ,CAAC,KAAK;EACT,IAAIC,KAAK,GAAG,EAAE;EAEd,IAAI,OAAOR,SAAS,KAAK,QAAQ,EAAE;IAC/BQ,KAAK,GAAGR,SAAS;EACrB,CAAC,MAAM,IAAIA,SAAS,EAAE;IAClBQ,KAAK,GAAGR,SAAS;EACrB;EAEA,oBACIN,KAAA,CAAAe,aAAA,CAACb,SAAS;IACNc,SAAS,EAAC,uBAAuB;IACjCR,WAAW,EAAEA,WAAY;IACzBC,KAAK,EAAEA,KAAM;IACbQ,iBAAiB;IACjBC,KAAK,EAAEX,WAAY;IACnBY,IAAI,EAAEd,OAAQ;IACdM,QAAQ,EAAGS,KAA+C,IAAK;MAC3D,MAAMC,aAAa,GAAID,KAAK,CAACC,aAAgC;MAC7D,IAAIA,aAAa,CAACP,KAAK,EAAE;QACrBH,QAAQ,CAACN,OAAO,EAAEgB,aAAa,CAACP,KAAK,CAAC;MAC1C,CAAC,MAAM;QACHF,QAAQ,CAACP,OAAO,CAAC;MACrB;IACJ,CAAE;IACFiB,WAAW,EAAEZ,IAAI,CAACa,aAAa,CAACpB,QAAQ,CAACqB,qBAAqB,CAAE;IAChEX,IAAI,EAAEA,IAAK;IACXC,KAAK,EAAEA;EAAM,CAChB,CAAC;AAEV,CAAC;AAED,SAASV,iBAAiB,IAAIqB,qBAAqB;AACnD,eAAexB,UAAU,CAACG,iBAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"TextMetadataField.js","names":["React","useIntl","TextInput","messages","TextMetadataField","dataKey","dataValue","displayName","description","error","isDisabled","onChange","onRemove","type","formatMessage","value","createElement","className","hideOptionalLabel","disabled","label","name","event","currentTarget","placeholder","metadataFieldSetValue"],"sources":["../../../src/features/metadata-instance-fields/TextMetadataField.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport { useIntl } from 'react-intl';\n\nimport TextInput from '../../components/text-input';\n\nimport messages from './messages';\nimport type { MetadataFieldValue } from '../../common/types/metadata';\nimport './TextMetadataField.scss';\n\ntype Props = {\n dataKey: string,\n dataValue?: MetadataFieldValue,\n description?: string,\n displayName: string,\n error?: React.Node,\n isDisabled?: boolean,\n onChange: (key: string, value: MetadataFieldValue) => void,\n onRemove: (key: string) => void,\n type?: string,\n};\n\nconst TextMetadataField = ({\n dataKey,\n dataValue,\n displayName,\n description,\n error,\n isDisabled,\n onChange,\n onRemove,\n type = 'text',\n}: Props) => {\n const { formatMessage } = useIntl();\n\n let value = '';\n\n if (typeof dataValue === 'number') {\n value = dataValue;\n } else if (dataValue) {\n value = dataValue;\n }\n\n return (\n <TextInput\n className=\"bdl-TextMetadataField\"\n description={description}\n error={error}\n hideOptionalLabel\n disabled={isDisabled}\n label={displayName}\n name={dataKey}\n onChange={(event: SyntheticKeyboardEvent<HTMLInputElement>) => {\n const currentTarget = (event.currentTarget: HTMLInputElement);\n if (currentTarget.value) {\n onChange(dataKey, currentTarget.value);\n } else {\n onRemove(dataKey);\n }\n }}\n placeholder={formatMessage(messages.metadataFieldSetValue)}\n type={type}\n value={value}\n />\n );\n};\n\nexport default TextMetadataField;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,OAAO,QAAQ,YAAY;AAEpC,OAAOC,SAAS,MAAM,6BAA6B;AAEnD,OAAOC,QAAQ,MAAM,YAAY;AAEjC,OAAO,0BAA0B;AAcjC,MAAMC,iBAAiB,GAAGA,CAAC;EACvBC,OAAO;EACPC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,KAAK;EACLC,UAAU;EACVC,QAAQ;EACRC,QAAQ;EACRC,IAAI,GAAG;AACJ,CAAC,KAAK;EACT,MAAM;IAAEC;EAAc,CAAC,GAAGb,OAAO,CAAC,CAAC;EAEnC,IAAIc,KAAK,GAAG,EAAE;EAEd,IAAI,OAAOT,SAAS,KAAK,QAAQ,EAAE;IAC/BS,KAAK,GAAGT,SAAS;EACrB,CAAC,MAAM,IAAIA,SAAS,EAAE;IAClBS,KAAK,GAAGT,SAAS;EACrB;EAEA,oBACIN,KAAA,CAAAgB,aAAA,CAACd,SAAS;IACNe,SAAS,EAAC,uBAAuB;IACjCT,WAAW,EAAEA,WAAY;IACzBC,KAAK,EAAEA,KAAM;IACbS,iBAAiB;IACjBC,QAAQ,EAAET,UAAW;IACrBU,KAAK,EAAEb,WAAY;IACnBc,IAAI,EAAEhB,OAAQ;IACdM,QAAQ,EAAGW,KAA+C,IAAK;MAC3D,MAAMC,aAAa,GAAID,KAAK,CAACC,aAAgC;MAC7D,IAAIA,aAAa,CAACR,KAAK,EAAE;QACrBJ,QAAQ,CAACN,OAAO,EAAEkB,aAAa,CAACR,KAAK,CAAC;MAC1C,CAAC,MAAM;QACHH,QAAQ,CAACP,OAAO,CAAC;MACrB;IACJ,CAAE;IACFmB,WAAW,EAAEV,aAAa,CAACX,QAAQ,CAACsB,qBAAqB,CAAE;IAC3DZ,IAAI,EAAEA,IAAK;IACXE,KAAK,EAAEA;EAAM,CAChB,CAAC;AAEV,CAAC;AAED,eAAeX,iBAAiB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-ui-elements",
3
- "version": "23.3.1-beta.1",
3
+ "version": "23.4.0-beta.2",
4
4
  "description": "Box UI Elements",
5
5
  "author": "Box (https://www.box.com/)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -90,6 +90,7 @@ type MetadataType = {
90
90
  type MetadataCascadePolicy = {
91
91
  canEdit?: boolean,
92
92
  id?: string,
93
+ cascadePolicyType?: string,
93
94
  };
94
95
 
95
96
  type MetadataCascadingPolicyData = {
@@ -3,9 +3,13 @@ import * as React from 'react';
3
3
  import { defineMessages, injectIntl } from 'react-intl';
4
4
  import classNames from 'classnames';
5
5
 
6
+ // $FlowFixMe
7
+ import { Information, Check, AlertTriangle, AlertBadge, XMark } from '@box/blueprint-web-assets/icons/Medium';
8
+
6
9
  import InfoBadge16 from '../../icon/line/InfoBadge16';
7
10
  import CircleCheck16 from '../../icon/line/CircleCheck16';
8
11
  import TriangleAlert16 from '../../icon/line/TriangleAlert16';
12
+
9
13
  import XBadge16 from '../../icon/line/XBadge16';
10
14
  import X16 from '../../icon/fill/X16';
11
15
 
@@ -30,10 +34,10 @@ const DURATION_TIMES = {
30
34
  };
31
35
 
32
36
  const ICON_RENDERER: { [string]: Function } = {
33
- [TYPE_DEFAULT]: () => <InfoBadge16 />,
34
- [TYPE_ERROR]: () => <XBadge16 />,
35
- [TYPE_INFO]: () => <CircleCheck16 />,
36
- [TYPE_WARN]: () => <TriangleAlert16 />,
37
+ [TYPE_DEFAULT]: useV2Icons => (useV2Icons ? <Information /> : <InfoBadge16 />),
38
+ [TYPE_ERROR]: useV2Icons => (useV2Icons ? <AlertBadge /> : <XBadge16 />),
39
+ [TYPE_INFO]: useV2Icons => (useV2Icons ? <Check /> : <CircleCheck16 />),
40
+ [TYPE_WARN]: useV2Icons => (useV2Icons ? <AlertTriangle /> : <TriangleAlert16 />),
37
41
  };
38
42
 
39
43
  const messages = defineMessages({
@@ -69,6 +73,7 @@ type Props = {
69
73
  */
70
74
  type: NotificationType,
71
75
  overflow?: 'wrap' | 'ellipsis',
76
+ useV2Icons?: boolean,
72
77
  };
73
78
 
74
79
  class Notification extends React.Component<Props> {
@@ -101,14 +106,16 @@ class Notification extends React.Component<Props> {
101
106
 
102
107
  render() {
103
108
  const contents = this.getChildren();
104
- const { intl, type, overflow, className } = this.props;
109
+ const { intl, type, overflow, className, useV2Icons } = this.props;
105
110
  const { formatMessage } = intl;
106
111
  const classes = classNames('notification', type, overflow, className);
112
+ const iconRenderer = ICON_RENDERER[type](useV2Icons);
113
+ const iconColor = useV2Icons ? '#222' : '#fff';
107
114
 
108
115
  return (
109
116
  <div className={classes}>
110
- {React.cloneElement(ICON_RENDERER[type](), {
111
- color: '#fff',
117
+ {React.cloneElement(iconRenderer, {
118
+ color: iconColor,
112
119
  height: 20,
113
120
  width: 20,
114
121
  })}
@@ -119,7 +126,7 @@ class Notification extends React.Component<Props> {
119
126
  onClick={this.onClose}
120
127
  type="button"
121
128
  >
122
- <X16 />
129
+ {useV2Icons ? <XMark height={32} width={32} /> : <X16 />}
123
130
  </button>
124
131
  </div>
125
132
  );
@@ -46,7 +46,7 @@ describe('components/notification/Notification', () => {
46
46
  expect(component.find('div.notification').hasClass(type)).toBe(true);
47
47
  });
48
48
 
49
- test('should render a correct icon when initialized', () => {
49
+ test('should render local icons per notification type', () => {
50
50
  const component = mount(<Notification type={type}>test</Notification>);
51
51
  const infoBadge16Count = type === TYPE_DEFAULT ? 1 : 0;
52
52
  const CircleCheck16Count = type === TYPE_INFO ? 1 : 0;
@@ -57,6 +57,26 @@ describe('components/notification/Notification', () => {
57
57
  expect(component.find('XBadge16').length).toBe(XBadge16Count);
58
58
  expect(component.find('CircleCheck16').length).toBe(CircleCheck16Count);
59
59
  expect(component.find('TriangleAlert16').length).toBe(TriangleAlert16Count);
60
+
61
+ // Does not render v2 icons
62
+ expect(component.find(`svg[role="img"]`).length).toBe(0);
63
+ });
64
+
65
+ test('should render v2 icons when useV2Icons is true', () => {
66
+ const component = mount(
67
+ <Notification type={type} useV2Icons={true}>
68
+ test
69
+ </Notification>,
70
+ );
71
+
72
+ // Type icon and Close button
73
+ expect(component.find(`svg[role="img"]`).length).toBe(2);
74
+
75
+ // Does not render local icons
76
+ expect(component.find('InfoBadge16').length).toBe(0);
77
+ expect(component.find('XBadge16').length).toBe(0);
78
+ expect(component.find('CircleCheck16').length).toBe(0);
79
+ expect(component.find('TriangleAlert16').length).toBe(0);
60
80
  });
61
81
  });
62
82
 
@@ -34,10 +34,12 @@ const agents = [
34
34
  type Props = {
35
35
  canEdit: boolean,
36
36
  canUseAIFolderExtraction: boolean,
37
+ canUseAIFolderExtractionAgentSelector: boolean,
37
38
  isAIFolderExtractionEnabled: boolean,
38
39
  isCascadingEnabled: boolean,
39
40
  isCascadingOverwritten: boolean,
40
41
  isCustomMetadata: boolean,
42
+ isExistingAIExtractionCascadePolicy: boolean,
41
43
  onAIFolderExtractionToggle: (value: boolean) => void,
42
44
  onCascadeModeChange: (value: boolean) => void,
43
45
  onCascadeToggle: (value: boolean) => void,
@@ -47,10 +49,12 @@ type Props = {
47
49
  const CascadePolicy = ({
48
50
  canEdit,
49
51
  canUseAIFolderExtraction,
52
+ canUseAIFolderExtractionAgentSelector,
50
53
  isCascadingEnabled,
51
54
  isCascadingOverwritten,
52
55
  isCustomMetadata,
53
56
  isAIFolderExtractionEnabled,
57
+ isExistingAIExtractionCascadePolicy,
54
58
  onAIFolderExtractionToggle,
55
59
  onCascadeToggle,
56
60
  onCascadeModeChange,
@@ -65,7 +69,7 @@ const CascadePolicy = ({
65
69
  return canEdit ? (
66
70
  <>
67
71
  <div className="metadata-cascade-editor">
68
- <div className="metadata-cascade-enable">
72
+ <div className="metadata-cascade-enable" data-testid="metadata-cascade-enable">
69
73
  <div>
70
74
  <FormattedMessage tagName="strong" {...messages.enableCascadePolicy} />
71
75
  {!isCustomMetadata && (
@@ -131,6 +135,7 @@ const CascadePolicy = ({
131
135
  <Toggle
132
136
  className="metadata-cascade-toggle"
133
137
  isOn={isAIFolderExtractionEnabled}
138
+ isDisabled={isExistingAIExtractionCascadePolicy}
134
139
  label=""
135
140
  onChange={e => onAIFolderExtractionToggle(e.target.checked)}
136
141
  />
@@ -142,17 +147,19 @@ const CascadePolicy = ({
142
147
  <FormattedMessage {...messages.aiAutofillLearnMore} />
143
148
  </Link>
144
149
  </div>
145
- <div className="metadata-cascade-ai-agent-selector">
146
- <TooltipProvider>
147
- <BoxAiAgentSelector
148
- agents={agents}
149
- onErrorAction={() => {}}
150
- requestState="success"
151
- selectedAgent={agents[0]}
152
- variant="sidebar"
153
- />
154
- </TooltipProvider>
155
- </div>
150
+ {canUseAIFolderExtractionAgentSelector && (
151
+ <div className="metadata-cascade-ai-agent-selector">
152
+ <TooltipProvider>
153
+ <BoxAiAgentSelector
154
+ agents={agents}
155
+ onErrorAction={() => {}}
156
+ requestState="success"
157
+ selectedAgent={agents[0]}
158
+ variant="sidebar"
159
+ />
160
+ </TooltipProvider>
161
+ </div>
162
+ )}
156
163
  <InlineNotice className="metadata-cascade-ai-notice" variant="info">
157
164
  <FormattedMessage
158
165
  {...messages.aiAutofillNotice}
@@ -24,7 +24,7 @@ import MetadataInstanceConfirmDialog from './MetadataInstanceConfirmDialog';
24
24
  import Footer from './Footer';
25
25
  import messages from './messages';
26
26
  import { FIELD_TYPE_FLOAT, FIELD_TYPE_INTEGER } from '../metadata-instance-fields/constants';
27
- import TEMPLATE_CUSTOM_PROPERTIES from './constants';
27
+ import { CASCADE_POLICY_TYPE_AI_EXTRACT, TEMPLATE_CUSTOM_PROPERTIES } from './constants';
28
28
  import {
29
29
  JSON_PATCH_OP_REMOVE,
30
30
  JSON_PATCH_OP_ADD,
@@ -48,6 +48,7 @@ import './Instance.scss';
48
48
  type Props = {
49
49
  canEdit: boolean,
50
50
  canUseAIFolderExtraction?: boolean,
51
+ canUseAIFolderExtractionAgentSelector?: boolean,
51
52
  cascadePolicy?: MetadataCascadePolicy, // eslint-disable-line
52
53
  data: MetadataFields,
53
54
  hasError: boolean,
@@ -210,7 +211,13 @@ class Instance extends React.PureComponent<Props, State> {
210
211
  isCascadingPolicyApplicable,
211
212
  onSave,
212
213
  }: Props = this.props;
213
- const { data: currentData, errors, isCascadingEnabled, isCascadingOverwritten }: State = this.state;
214
+ const {
215
+ data: currentData,
216
+ errors,
217
+ isAIFolderExtractionEnabled,
218
+ isCascadingEnabled,
219
+ isCascadingOverwritten,
220
+ }: State = this.state;
214
221
 
215
222
  if (!this.isEditing() || !isDirty || !onSave || Object.keys(errors).length) {
216
223
  return;
@@ -219,7 +226,8 @@ class Instance extends React.PureComponent<Props, State> {
219
226
  this.setState({
220
227
  isBusy: true,
221
228
  isEditing: false,
222
- shouldShowCascadeOptions: false,
229
+ // reset state if cascading policy is removed
230
+ isAIFolderExtractionEnabled: isCascadingEnabled ? isAIFolderExtractionEnabled : false,
223
231
  });
224
232
  onSave(
225
233
  id,
@@ -230,6 +238,7 @@ class Instance extends React.PureComponent<Props, State> {
230
238
  id: cascadePolicy ? cascadePolicy.id : undefined,
231
239
  isEnabled: isCascadingEnabled,
232
240
  overwrite: isCascadingOverwritten,
241
+ isAIFolderExtractionEnabled,
233
242
  }
234
243
  : undefined,
235
244
  cloneDeep(currentData),
@@ -339,12 +348,12 @@ class Instance extends React.PureComponent<Props, State> {
339
348
  * @return {Object} - react state
340
349
  */
341
350
  getState(props: Props): State {
342
- const isCascadingEnabled = this.isCascadingEnabled(props);
351
+ const isCascadingEnabled = this.isCascadingEnabledThroughProps(props);
343
352
 
344
353
  return {
345
354
  data: cloneDeep(props.data),
346
355
  errors: {},
347
- isAIFolderExtractionEnabled: false,
356
+ isAIFolderExtractionEnabled: this.isAIFolderExtractionEnabledThroughProps(props),
348
357
  isBusy: false,
349
358
  isCascadingEnabled,
350
359
  isCascadingOverwritten: false,
@@ -420,13 +429,16 @@ class Instance extends React.PureComponent<Props, State> {
420
429
  */
421
430
  setDirty = (type?: string): void => {
422
431
  const { id, isCascadingPolicyApplicable, onModification }: Props = this.props;
423
- const { data, isCascadingEnabled, isCascadingOverwritten } = this.state;
432
+ const { data, isCascadingEnabled, isCascadingOverwritten, isAIFolderExtractionEnabled } = this.state;
424
433
  const hasDataChanged = !isEqual(data, this.props.data);
425
434
  let hasCascadingChanged = false;
426
435
 
427
436
  if (isCascadingPolicyApplicable) {
428
437
  // isCascadingOverwritten always starts out as false, so true signifies a change
429
- hasCascadingChanged = isCascadingOverwritten || isCascadingEnabled !== this.isCascadingEnabled(this.props);
438
+ hasCascadingChanged =
439
+ isCascadingOverwritten ||
440
+ isCascadingEnabled !== this.isCascadingEnabledThroughProps(this.props) ||
441
+ isAIFolderExtractionEnabled !== this.isAIFolderExtractionEnabledThroughProps(this.props);
430
442
  }
431
443
 
432
444
  // Callback to parent to tell that something is dirty
@@ -442,19 +454,30 @@ class Instance extends React.PureComponent<Props, State> {
442
454
  fieldKeyToTypeMap: Object;
443
455
 
444
456
  /**
445
- * Determines if cascading policy is enabled based on
457
+ * Determines if cascading policy is enabled through props based on
446
458
  * whether it has an id or not.
447
459
  *
448
460
  * @param {Object} props - component props
449
461
  * @return {boolean} true if cascading policy is enabled
450
462
  */
451
- isCascadingEnabled(props: Props) {
463
+ isCascadingEnabledThroughProps(props: Props) {
452
464
  if (props.cascadePolicy) {
453
465
  return !!props.cascadePolicy.id;
454
466
  }
455
467
  return false;
456
468
  }
457
469
 
470
+ /**
471
+ * Determines if ai extraction is enabled based on
472
+ * if cascade policy type is ai_extract
473
+ *
474
+ * @param {Object} props - component props
475
+ * @return {boolean} true if ai extraction is enabled
476
+ */
477
+ isAIFolderExtractionEnabledThroughProps({ cascadePolicy }: Props) {
478
+ return cascadePolicy?.cascadePolicyType === CASCADE_POLICY_TYPE_AI_EXTRACT;
479
+ }
480
+
458
481
  /**
459
482
  * Toggles the edit mode
460
483
  *
@@ -590,6 +613,7 @@ class Instance extends React.PureComponent<Props, State> {
590
613
  render() {
591
614
  const {
592
615
  canUseAIFolderExtraction = false,
616
+ canUseAIFolderExtractionAgentSelector = false,
593
617
  cascadePolicy = {},
594
618
  isDirty,
595
619
  isCascadingPolicyApplicable,
@@ -617,6 +641,9 @@ class Instance extends React.PureComponent<Props, State> {
617
641
  // Animate short and tall cards at consistent speeds.
618
642
  const animationDuration = (fields.length + 1) * 50;
619
643
 
644
+ const isExistingAIExtractionCascadePolicy =
645
+ this.isCascadingEnabledThroughProps(this.props) && this.isAIFolderExtractionEnabledThroughProps(this.props);
646
+
620
647
  return (
621
648
  <div ref={this.collapsibleRef}>
622
649
  <Collapsible
@@ -647,10 +674,14 @@ class Instance extends React.PureComponent<Props, State> {
647
674
  <CascadePolicy
648
675
  canEdit={isEditing && !!cascadePolicy.canEdit}
649
676
  canUseAIFolderExtraction={canUseAIFolderExtraction}
677
+ canUseAIFolderExtractionAgentSelector={
678
+ canUseAIFolderExtractionAgentSelector
679
+ }
650
680
  isAIFolderExtractionEnabled={isAIFolderExtractionEnabled}
651
681
  isCascadingEnabled={isCascadingEnabled}
652
682
  isCascadingOverwritten={isCascadingOverwritten}
653
683
  isCustomMetadata={isProperties}
684
+ isExistingAIExtractionCascadePolicy={isExistingAIExtractionCascadePolicy}
654
685
  onAIFolderExtractionToggle={this.onAIFolderExtractionToggle}
655
686
  onCascadeModeChange={this.onCascadeModeChange}
656
687
  onCascadeToggle={this.onCascadeToggle}
@@ -669,6 +700,7 @@ class Instance extends React.PureComponent<Props, State> {
669
700
  canEdit={isEditing}
670
701
  data={data}
671
702
  errors={errors}
703
+ isDisabled={isAIFolderExtractionEnabled}
672
704
  onFieldChange={this.onFieldChange}
673
705
  onFieldRemove={this.onFieldRemove}
674
706
  template={template}
@@ -7,6 +7,7 @@ import type { JSONPatchOperations } from '../../common/types/api';
7
7
 
8
8
  type Props = {
9
9
  canUseAIFolderExtraction?: boolean,
10
+ canUseAIFolderExtractionAgentSelector?: boolean,
10
11
  editors?: Array<MetadataEditor>,
11
12
  isCascadingPolicyApplicable?: boolean,
12
13
  onModification?: (id: string, isDirty: boolean) => void,
@@ -22,6 +23,7 @@ type Props = {
22
23
 
23
24
  const Instances = ({
24
25
  canUseAIFolderExtraction = false,
26
+ canUseAIFolderExtractionAgentSelector = false,
25
27
  isCascadingPolicyApplicable = false,
26
28
  editors = [],
27
29
  onModification,
@@ -37,6 +39,7 @@ const Instances = ({
37
39
  <Instance
38
40
  canEdit={instance.canEdit}
39
41
  canUseAIFolderExtraction={canUseAIFolderExtraction}
42
+ canUseAIFolderExtractionAgentSelector={canUseAIFolderExtractionAgentSelector}
40
43
  cascadePolicy={instance.cascadePolicy}
41
44
  data={instance.data}
42
45
  hasError={hasError}
@@ -15,6 +15,7 @@ type Props = {
15
15
  blurExceptionClassNames?: Array<string>,
16
16
  canAdd: boolean,
17
17
  canUseAIFolderExtraction?: boolean,
18
+ canUseAIFolderExtractionAgentSelector?: boolean,
18
19
  editors?: Array<MetadataEditor>,
19
20
  isCascadingPolicyApplicable?: boolean,
20
21
  isDropdownBusy?: boolean,
@@ -37,6 +38,7 @@ const MetadataInstanceEditor = ({
37
38
  blurExceptionClassNames,
38
39
  canAdd,
39
40
  canUseAIFolderExtraction = false,
41
+ canUseAIFolderExtractionAgentSelector = false,
40
42
  isCascadingPolicyApplicable = false,
41
43
  isDropdownBusy,
42
44
  editors = [],
@@ -64,6 +66,7 @@ const MetadataInstanceEditor = ({
64
66
  <ScrollWrapper>
65
67
  <Instances
66
68
  canUseAIFolderExtraction={canUseAIFolderExtraction}
69
+ canUseAIFolderExtractionAgentSelector={canUseAIFolderExtractionAgentSelector}
67
70
  editors={editors}
68
71
  isCascadingPolicyApplicable={isCascadingPolicyApplicable}
69
72
  onModification={onModification}
@@ -13,7 +13,7 @@ import { Flyout, Overlay } from '../../components/flyout';
13
13
 
14
14
  import MenuToggle from '../../components/dropdown-menu/MenuToggle';
15
15
  import messages from './messages';
16
- import TEMPLATE_CUSTOM_PROPERTIES from './constants';
16
+ import { TEMPLATE_CUSTOM_PROPERTIES } from './constants';
17
17
  import type { MetadataTemplate } from '../../common/types/metadata';
18
18
  import './TemplateDropdown.scss';
19
19