box-ui-elements 23.5.0-beta.2 → 23.5.0-beta.3

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 (34) hide show
  1. package/dist/explorer.css +1 -1
  2. package/dist/explorer.js +1 -1
  3. package/dist/preview.css +1 -1
  4. package/dist/preview.js +1 -1
  5. package/dist/sidebar.css +1 -1
  6. package/dist/sidebar.js +1 -1
  7. package/es/features/metadata-instance-editor/CascadePolicy.js +3 -3
  8. package/es/features/metadata-instance-editor/CascadePolicy.js.flow +2 -3
  9. package/es/features/metadata-instance-editor/CascadePolicy.js.map +1 -1
  10. package/es/features/metadata-instance-editor/Instance.js +0 -2
  11. package/es/features/metadata-instance-editor/Instance.js.flow +0 -5
  12. package/es/features/metadata-instance-editor/Instance.js.map +1 -1
  13. package/es/features/metadata-instance-editor/Instances.js +0 -2
  14. package/es/features/metadata-instance-editor/Instances.js.flow +0 -3
  15. package/es/features/metadata-instance-editor/Instances.js.map +1 -1
  16. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js +0 -2
  17. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.flow +0 -3
  18. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.map +1 -1
  19. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js +0 -1
  20. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.flow +0 -1
  21. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.map +1 -1
  22. package/package.json +3 -3
  23. package/src/features/metadata-instance-editor/CascadePolicy.js +2 -3
  24. package/src/features/metadata-instance-editor/Instance.js +0 -5
  25. package/src/features/metadata-instance-editor/Instances.js +0 -3
  26. package/src/features/metadata-instance-editor/MetadataInstanceEditor.js +0 -3
  27. package/src/features/metadata-instance-editor/__tests__/CascadePolicy.test.js +0 -9
  28. package/src/features/metadata-instance-editor/__tests__/Instance.test.js +0 -28
  29. package/src/features/metadata-instance-editor/__tests__/Instances.test.js +7 -9
  30. package/src/features/metadata-instance-editor/__tests__/MetadataInstanceEditor.test.js +1 -48
  31. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +0 -1
  32. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instances.test.js.snap +0 -2
  33. package/src/features/metadata-instance-editor/__tests__/__snapshots__/MetadataInstanceEditor.test.js.snap +0 -1
  34. package/src/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js +0 -1
@@ -20,7 +20,6 @@ const AI_LINK = 'https://www.box.com/ai';
20
20
  const CascadePolicy = ({
21
21
  canEdit,
22
22
  canUseAIFolderExtraction,
23
- canUseAIFolderExtractionAgentSelector,
24
23
  cascadePolicyConfiguration,
25
24
  isCascadingEnabled,
26
25
  isCascadingOverwritten,
@@ -129,13 +128,14 @@ const CascadePolicy = ({
129
128
  className: "cascade-policy-link",
130
129
  href: AI_LINK,
131
130
  target: "_blank"
132
- }, /*#__PURE__*/React.createElement(FormattedMessage, messages.aiAutofillLearnMore))), canUseAIFolderExtractionAgentSelector && isAIFolderExtractionEnabled && /*#__PURE__*/React.createElement("div", {
131
+ }, /*#__PURE__*/React.createElement(FormattedMessage, messages.aiAutofillLearnMore))), isAIFolderExtractionEnabled && /*#__PURE__*/React.createElement("div", {
133
132
  className: "metadata-cascade-ai-agent-selector"
134
133
  }, /*#__PURE__*/React.createElement(BoxAiAgentSelectorWithApiContainer, {
135
134
  disabled: isExistingCascadePolicy,
136
135
  fetcher: agentFetcher,
137
136
  onSelectAgent: handleAgentSelect,
138
- recordAction: () => {}
137
+ recordAction: () => {},
138
+ selectorAlignment: "left"
139
139
  }))))) : readOnlyState;
140
140
  };
141
141
  export default CascadePolicy;
@@ -27,7 +27,6 @@ const AI_LINK = 'https://www.box.com/ai';
27
27
  type Props = {
28
28
  canEdit: boolean,
29
29
  canUseAIFolderExtraction: boolean,
30
- canUseAIFolderExtractionAgentSelector: boolean,
31
30
  cascadePolicyConfiguration?: MetadataCascadePolicyConfiguration,
32
31
  isAIFolderExtractionEnabled: boolean,
33
32
  isCascadingEnabled: boolean,
@@ -44,7 +43,6 @@ type Props = {
44
43
  const CascadePolicy = ({
45
44
  canEdit,
46
45
  canUseAIFolderExtraction,
47
- canUseAIFolderExtractionAgentSelector,
48
46
  cascadePolicyConfiguration,
49
47
  isCascadingEnabled,
50
48
  isCascadingOverwritten,
@@ -194,13 +192,14 @@ const CascadePolicy = ({
194
192
  <FormattedMessage {...messages.aiAutofillLearnMore} />
195
193
  </Link>
196
194
  </div>
197
- {canUseAIFolderExtractionAgentSelector && isAIFolderExtractionEnabled && (
195
+ {isAIFolderExtractionEnabled && (
198
196
  <div className="metadata-cascade-ai-agent-selector">
199
197
  <BoxAiAgentSelectorWithApiContainer
200
198
  disabled={isExistingCascadePolicy}
201
199
  fetcher={agentFetcher}
202
200
  onSelectAgent={handleAgentSelect}
203
201
  recordAction={() => {}}
202
+ selectorAlignment="left"
204
203
  />
205
204
  </div>
206
205
  )}
@@ -1 +1 @@
1
- {"version":3,"file":"CascadePolicy.js","names":["React","InlineNotice","useCallback","FormattedMessage","useIntl","BoxAiAdvancedColor","BoxAiColor","BoxAiAgentSelectorWithApiContainer","Toggle","RadioButton","RadioGroup","Link","IconAlertDefault","messages","STANDARD_AGENT_ID","ENHANCED_AGENT_ID","ENHANCED_AGENT_CONFIGURATION","COMMUNITY_LINK","AI_LINK","CascadePolicy","canEdit","canUseAIFolderExtraction","canUseAIFolderExtractionAgentSelector","cascadePolicyConfiguration","isCascadingEnabled","isCascadingOverwritten","isCustomMetadata","isAIFolderExtractionEnabled","isExistingCascadePolicy","onAIFolderExtractionToggle","onAIAgentSelect","onCascadeToggle","onCascadeModeChange","shouldShowCascadeOptions","formatMessage","readOnlyState","createElement","className","metadataCascadePolicyEnabledInfo","isEnhancedAgentSelected","agent","agents","useMemo","id","name","standardAgentName","isEnterpriseDefault","enhancedAgentName","customIcon","isSelected","agentFetcher","Promise","resolve","handleAgentSelect","Fragment","variant","variantIconAriaLabel","cascadePolicyOptionsDisabledNoticeIconAriaLabel","cascadePolicyOptionsDisabledNotice","_extends","tagName","enableCascadePolicy","isOn","label","onChange","e","target","checked","applyCascadePolicyText","href","cascadePolicyLearnMore","cannotApplyCascadePolicyText","cascadePolicyModeQuestion","operationNotImmediate","value","isDisabled","cascadePolicySkipMode","cascadePolicyOverwriteMode","width","height","enableAIAutofill","aiAutofillDescription","aiAutofillLearnMore","disabled","fetcher","onSelectAgent","recordAction"],"sources":["../../../src/features/metadata-instance-editor/CascadePolicy.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\n\nimport { InlineNotice } from '@box/blueprint-web';\nimport { useCallback } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\n// $FlowFixMe\nimport { BoxAiAdvancedColor, BoxAiColor } from '@box/blueprint-web-assets/icons/Medium';\nimport { type AgentType } from '@box/box-ai-agent-selector';\n\n// $FlowFixMe\nimport { BoxAiAgentSelectorWithApiContainer } from '@box/box-ai-agent-selector';\n\nimport Toggle from '../../components/toggle';\nimport { RadioButton, RadioGroup } from '../../components/radio';\nimport Link from '../../components/link/Link';\nimport IconAlertDefault from '../../icons/general/IconAlertDefault';\nimport messages from './messages';\nimport './CascadePolicy.scss';\nimport { STANDARD_AGENT_ID, ENHANCED_AGENT_ID, ENHANCED_AGENT_CONFIGURATION } from './constants';\nimport type { MetadataCascadePolicyConfiguration } from '../../common/types/metadata';\n\nconst COMMUNITY_LINK = 'https://support.box.com/hc/en-us/articles/360044195873-Cascading-metadata-in-folders';\nconst AI_LINK = 'https://www.box.com/ai';\n\ntype Props = {\n canEdit: boolean,\n canUseAIFolderExtraction: boolean,\n canUseAIFolderExtractionAgentSelector: boolean,\n cascadePolicyConfiguration?: MetadataCascadePolicyConfiguration,\n isAIFolderExtractionEnabled: boolean,\n isCascadingEnabled: boolean,\n isCascadingOverwritten: boolean,\n isCustomMetadata: boolean,\n isExistingCascadePolicy: boolean,\n onAIFolderExtractionToggle: (value: boolean) => void,\n onAIAgentSelect?: (agent: AgentType | null) => void,\n onCascadeModeChange: (value: boolean) => void,\n onCascadeToggle: (value: boolean) => void,\n shouldShowCascadeOptions: boolean,\n};\n\nconst CascadePolicy = ({\n canEdit,\n canUseAIFolderExtraction,\n canUseAIFolderExtractionAgentSelector,\n cascadePolicyConfiguration,\n isCascadingEnabled,\n isCascadingOverwritten,\n isCustomMetadata,\n isAIFolderExtractionEnabled,\n isExistingCascadePolicy,\n onAIFolderExtractionToggle,\n onAIAgentSelect,\n onCascadeToggle,\n onCascadeModeChange,\n shouldShowCascadeOptions,\n}: Props) => {\n const { formatMessage } = useIntl();\n\n const readOnlyState = isCascadingEnabled ? (\n <div className=\"metadata-cascade-notice\">\n <FormattedMessage {...messages.metadataCascadePolicyEnabledInfo} />\n </div>\n ) : null;\n\n const isEnhancedAgentSelected = cascadePolicyConfiguration?.agent === ENHANCED_AGENT_CONFIGURATION;\n\n const agents = React.useMemo(\n () => [\n {\n id: STANDARD_AGENT_ID,\n name: formatMessage(messages.standardAgentName),\n isEnterpriseDefault: true,\n },\n {\n id: ENHANCED_AGENT_ID,\n name: formatMessage(messages.enhancedAgentName),\n isEnterpriseDefault: false,\n customIcon: BoxAiAdvancedColor,\n isSelected: isEnhancedAgentSelected,\n },\n ],\n [formatMessage, isEnhancedAgentSelected],\n );\n\n // BoxAiAgentSelectorWithApiContainer expects a function that returns a Promise<AgentListResponse>\n // Since we're passing in our own agents, we don't need to make an API call,\n // so we wrap the store data in a Promise to satisfy the component's interface requirements.\n const agentFetcher = useCallback(() => {\n return Promise.resolve({ agents });\n }, [agents]);\n\n const handleAgentSelect = useCallback(\n (agent: AgentType | null) => {\n if (onAIAgentSelect) {\n onAIAgentSelect(agent);\n }\n },\n [onAIAgentSelect],\n );\n\n return canEdit ? (\n <>\n {isExistingCascadePolicy && (\n <InlineNotice\n variant=\"info\"\n variantIconAriaLabel={formatMessage(messages.cascadePolicyOptionsDisabledNoticeIconAriaLabel)}\n >\n <FormattedMessage {...messages.cascadePolicyOptionsDisabledNotice} />\n </InlineNotice>\n )}\n <div className=\"metadata-cascade-editor\">\n <div className=\"metadata-cascade-enable\" data-testid=\"metadata-cascade-enable\">\n <div>\n <FormattedMessage tagName=\"strong\" {...messages.enableCascadePolicy} />\n {!isCustomMetadata && (\n <Toggle\n aria-label={formatMessage(messages.enableCascadePolicy)}\n className={`metadata-cascade-toggle ${\n isCascadingEnabled ? 'cascade-on' : 'cascade-off'\n }`}\n isOn={isCascadingEnabled}\n label=\"\"\n onChange={e => onCascadeToggle(e.target.checked)}\n />\n )}\n </div>\n {!isCustomMetadata ? (\n <div className=\"cascade-policy-text\">\n <FormattedMessage {...messages.applyCascadePolicyText} />\n &nbsp;\n <Link className=\"cascade-policy-link\" href={COMMUNITY_LINK} target=\"_blank\">\n <FormattedMessage {...messages.cascadePolicyLearnMore} />\n </Link>\n </div>\n ) : (\n <div>\n <FormattedMessage {...messages.cannotApplyCascadePolicyText} />\n </div>\n )}\n </div>\n </div>\n {shouldShowCascadeOptions && (\n <div className=\"metadata-cascade-editor\">\n <div className=\"metadata-cascading-mode\">\n <FormattedMessage {...messages.cascadePolicyModeQuestion} />\n\n <div className=\"metadata-operation-not-immediate\">\n <IconAlertDefault />\n <span>\n <FormattedMessage {...messages.operationNotImmediate} />\n </span>\n </div>\n <RadioGroup\n className=\"metadata-cascading-options\"\n onChange={e => onCascadeModeChange(e.target.value === 'overwrite')}\n value={isCascadingOverwritten ? 'overwrite' : 'skip'}\n >\n <RadioButton\n isDisabled={isExistingCascadePolicy}\n label={<FormattedMessage {...messages.cascadePolicySkipMode} />}\n value=\"skip\"\n />\n <RadioButton\n isDisabled={isExistingCascadePolicy}\n label={<FormattedMessage {...messages.cascadePolicyOverwriteMode} />}\n value=\"overwrite\"\n />\n </RadioGroup>\n </div>\n </div>\n )}\n {shouldShowCascadeOptions && canUseAIFolderExtraction && (\n <div className=\"metadata-cascade-editor\" data-testid=\"ai-folder-extraction\">\n <div className=\"metadata-cascade-enable\">\n <div>\n <BoxAiColor className=\"metadata-cascade-ai-logo\" width={16} height={16} />\n <FormattedMessage tagName=\"strong\" {...messages.enableAIAutofill} />\n <Toggle\n aria-label={formatMessage(messages.enableAIAutofill)}\n className=\"metadata-cascade-toggle\"\n isOn={isAIFolderExtractionEnabled}\n isDisabled={isExistingCascadePolicy}\n label=\"\"\n onChange={e => onAIFolderExtractionToggle(e.target.checked)}\n />\n </div>\n <div className=\"cascade-policy-text\">\n <FormattedMessage {...messages.aiAutofillDescription} />\n &nbsp;\n <Link className=\"cascade-policy-link\" href={AI_LINK} target=\"_blank\">\n <FormattedMessage {...messages.aiAutofillLearnMore} />\n </Link>\n </div>\n {canUseAIFolderExtractionAgentSelector && isAIFolderExtractionEnabled && (\n <div className=\"metadata-cascade-ai-agent-selector\">\n <BoxAiAgentSelectorWithApiContainer\n disabled={isExistingCascadePolicy}\n fetcher={agentFetcher}\n onSelectAgent={handleAgentSelect}\n recordAction={() => {}}\n />\n </div>\n )}\n </div>\n </div>\n )}\n </>\n ) : (\n readOnlyState\n );\n};\n\nexport default CascadePolicy;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CascadePolicy.js","names":["React","InlineNotice","useCallback","FormattedMessage","useIntl","BoxAiAdvancedColor","BoxAiColor","BoxAiAgentSelectorWithApiContainer","Toggle","RadioButton","RadioGroup","Link","IconAlertDefault","messages","STANDARD_AGENT_ID","ENHANCED_AGENT_ID","ENHANCED_AGENT_CONFIGURATION","COMMUNITY_LINK","AI_LINK","CascadePolicy","canEdit","canUseAIFolderExtraction","cascadePolicyConfiguration","isCascadingEnabled","isCascadingOverwritten","isCustomMetadata","isAIFolderExtractionEnabled","isExistingCascadePolicy","onAIFolderExtractionToggle","onAIAgentSelect","onCascadeToggle","onCascadeModeChange","shouldShowCascadeOptions","formatMessage","readOnlyState","createElement","className","metadataCascadePolicyEnabledInfo","isEnhancedAgentSelected","agent","agents","useMemo","id","name","standardAgentName","isEnterpriseDefault","enhancedAgentName","customIcon","isSelected","agentFetcher","Promise","resolve","handleAgentSelect","Fragment","variant","variantIconAriaLabel","cascadePolicyOptionsDisabledNoticeIconAriaLabel","cascadePolicyOptionsDisabledNotice","_extends","tagName","enableCascadePolicy","isOn","label","onChange","e","target","checked","applyCascadePolicyText","href","cascadePolicyLearnMore","cannotApplyCascadePolicyText","cascadePolicyModeQuestion","operationNotImmediate","value","isDisabled","cascadePolicySkipMode","cascadePolicyOverwriteMode","width","height","enableAIAutofill","aiAutofillDescription","aiAutofillLearnMore","disabled","fetcher","onSelectAgent","recordAction","selectorAlignment"],"sources":["../../../src/features/metadata-instance-editor/CascadePolicy.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\n\nimport { InlineNotice } from '@box/blueprint-web';\nimport { useCallback } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\n\n// $FlowFixMe\nimport { BoxAiAdvancedColor, BoxAiColor } from '@box/blueprint-web-assets/icons/Medium';\nimport { type AgentType } from '@box/box-ai-agent-selector';\n\n// $FlowFixMe\nimport { BoxAiAgentSelectorWithApiContainer } from '@box/box-ai-agent-selector';\n\nimport Toggle from '../../components/toggle';\nimport { RadioButton, RadioGroup } from '../../components/radio';\nimport Link from '../../components/link/Link';\nimport IconAlertDefault from '../../icons/general/IconAlertDefault';\nimport messages from './messages';\nimport './CascadePolicy.scss';\nimport { STANDARD_AGENT_ID, ENHANCED_AGENT_ID, ENHANCED_AGENT_CONFIGURATION } from './constants';\nimport type { MetadataCascadePolicyConfiguration } from '../../common/types/metadata';\n\nconst COMMUNITY_LINK = 'https://support.box.com/hc/en-us/articles/360044195873-Cascading-metadata-in-folders';\nconst AI_LINK = 'https://www.box.com/ai';\n\ntype Props = {\n canEdit: boolean,\n canUseAIFolderExtraction: boolean,\n cascadePolicyConfiguration?: MetadataCascadePolicyConfiguration,\n isAIFolderExtractionEnabled: boolean,\n isCascadingEnabled: boolean,\n isCascadingOverwritten: boolean,\n isCustomMetadata: boolean,\n isExistingCascadePolicy: boolean,\n onAIFolderExtractionToggle: (value: boolean) => void,\n onAIAgentSelect?: (agent: AgentType | null) => void,\n onCascadeModeChange: (value: boolean) => void,\n onCascadeToggle: (value: boolean) => void,\n shouldShowCascadeOptions: boolean,\n};\n\nconst CascadePolicy = ({\n canEdit,\n canUseAIFolderExtraction,\n cascadePolicyConfiguration,\n isCascadingEnabled,\n isCascadingOverwritten,\n isCustomMetadata,\n isAIFolderExtractionEnabled,\n isExistingCascadePolicy,\n onAIFolderExtractionToggle,\n onAIAgentSelect,\n onCascadeToggle,\n onCascadeModeChange,\n shouldShowCascadeOptions,\n}: Props) => {\n const { formatMessage } = useIntl();\n\n const readOnlyState = isCascadingEnabled ? (\n <div className=\"metadata-cascade-notice\">\n <FormattedMessage {...messages.metadataCascadePolicyEnabledInfo} />\n </div>\n ) : null;\n\n const isEnhancedAgentSelected = cascadePolicyConfiguration?.agent === ENHANCED_AGENT_CONFIGURATION;\n\n const agents = React.useMemo(\n () => [\n {\n id: STANDARD_AGENT_ID,\n name: formatMessage(messages.standardAgentName),\n isEnterpriseDefault: true,\n },\n {\n id: ENHANCED_AGENT_ID,\n name: formatMessage(messages.enhancedAgentName),\n isEnterpriseDefault: false,\n customIcon: BoxAiAdvancedColor,\n isSelected: isEnhancedAgentSelected,\n },\n ],\n [formatMessage, isEnhancedAgentSelected],\n );\n\n // BoxAiAgentSelectorWithApiContainer expects a function that returns a Promise<AgentListResponse>\n // Since we're passing in our own agents, we don't need to make an API call,\n // so we wrap the store data in a Promise to satisfy the component's interface requirements.\n const agentFetcher = useCallback(() => {\n return Promise.resolve({ agents });\n }, [agents]);\n\n const handleAgentSelect = useCallback(\n (agent: AgentType | null) => {\n if (onAIAgentSelect) {\n onAIAgentSelect(agent);\n }\n },\n [onAIAgentSelect],\n );\n\n return canEdit ? (\n <>\n {isExistingCascadePolicy && (\n <InlineNotice\n variant=\"info\"\n variantIconAriaLabel={formatMessage(messages.cascadePolicyOptionsDisabledNoticeIconAriaLabel)}\n >\n <FormattedMessage {...messages.cascadePolicyOptionsDisabledNotice} />\n </InlineNotice>\n )}\n <div className=\"metadata-cascade-editor\">\n <div className=\"metadata-cascade-enable\" data-testid=\"metadata-cascade-enable\">\n <div>\n <FormattedMessage tagName=\"strong\" {...messages.enableCascadePolicy} />\n {!isCustomMetadata && (\n <Toggle\n aria-label={formatMessage(messages.enableCascadePolicy)}\n className={`metadata-cascade-toggle ${\n isCascadingEnabled ? 'cascade-on' : 'cascade-off'\n }`}\n isOn={isCascadingEnabled}\n label=\"\"\n onChange={e => onCascadeToggle(e.target.checked)}\n />\n )}\n </div>\n {!isCustomMetadata ? (\n <div className=\"cascade-policy-text\">\n <FormattedMessage {...messages.applyCascadePolicyText} />\n &nbsp;\n <Link className=\"cascade-policy-link\" href={COMMUNITY_LINK} target=\"_blank\">\n <FormattedMessage {...messages.cascadePolicyLearnMore} />\n </Link>\n </div>\n ) : (\n <div>\n <FormattedMessage {...messages.cannotApplyCascadePolicyText} />\n </div>\n )}\n </div>\n </div>\n {shouldShowCascadeOptions && (\n <div className=\"metadata-cascade-editor\">\n <div className=\"metadata-cascading-mode\">\n <FormattedMessage {...messages.cascadePolicyModeQuestion} />\n\n <div className=\"metadata-operation-not-immediate\">\n <IconAlertDefault />\n <span>\n <FormattedMessage {...messages.operationNotImmediate} />\n </span>\n </div>\n <RadioGroup\n className=\"metadata-cascading-options\"\n onChange={e => onCascadeModeChange(e.target.value === 'overwrite')}\n value={isCascadingOverwritten ? 'overwrite' : 'skip'}\n >\n <RadioButton\n isDisabled={isExistingCascadePolicy}\n label={<FormattedMessage {...messages.cascadePolicySkipMode} />}\n value=\"skip\"\n />\n <RadioButton\n isDisabled={isExistingCascadePolicy}\n label={<FormattedMessage {...messages.cascadePolicyOverwriteMode} />}\n value=\"overwrite\"\n />\n </RadioGroup>\n </div>\n </div>\n )}\n {shouldShowCascadeOptions && canUseAIFolderExtraction && (\n <div className=\"metadata-cascade-editor\" data-testid=\"ai-folder-extraction\">\n <div className=\"metadata-cascade-enable\">\n <div>\n <BoxAiColor className=\"metadata-cascade-ai-logo\" width={16} height={16} />\n <FormattedMessage tagName=\"strong\" {...messages.enableAIAutofill} />\n <Toggle\n aria-label={formatMessage(messages.enableAIAutofill)}\n className=\"metadata-cascade-toggle\"\n isOn={isAIFolderExtractionEnabled}\n isDisabled={isExistingCascadePolicy}\n label=\"\"\n onChange={e => onAIFolderExtractionToggle(e.target.checked)}\n />\n </div>\n <div className=\"cascade-policy-text\">\n <FormattedMessage {...messages.aiAutofillDescription} />\n &nbsp;\n <Link className=\"cascade-policy-link\" href={AI_LINK} target=\"_blank\">\n <FormattedMessage {...messages.aiAutofillLearnMore} />\n </Link>\n </div>\n {isAIFolderExtractionEnabled && (\n <div className=\"metadata-cascade-ai-agent-selector\">\n <BoxAiAgentSelectorWithApiContainer\n disabled={isExistingCascadePolicy}\n fetcher={agentFetcher}\n onSelectAgent={handleAgentSelect}\n recordAction={() => {}}\n selectorAlignment=\"left\"\n />\n </div>\n )}\n </div>\n </div>\n )}\n </>\n ) : (\n readOnlyState\n );\n};\n\nexport default CascadePolicy;\n"],"mappings":"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","ignoreList":[]}
@@ -584,7 +584,6 @@ class Instance extends React.PureComponent {
584
584
  render() {
585
585
  const {
586
586
  canUseAIFolderExtraction = false,
587
- canUseAIFolderExtractionAgentSelector = false,
588
587
  cascadePolicy = {},
589
588
  isDirty,
590
589
  isCascadingPolicyApplicable,
@@ -641,7 +640,6 @@ class Instance extends React.PureComponent {
641
640
  cascadePolicyConfiguration: cascadePolicy?.cascadePolicyConfiguration,
642
641
  canEdit: isEditing && !!cascadePolicy.canEdit,
643
642
  canUseAIFolderExtraction: canUseAIFolderExtraction,
644
- canUseAIFolderExtractionAgentSelector: canUseAIFolderExtractionAgentSelector,
645
643
  isAIFolderExtractionEnabled: isAIFolderExtractionEnabled,
646
644
  isCascadingEnabled: isCascadingEnabled,
647
645
  isCascadingOverwritten: isCascadingOverwritten,
@@ -55,7 +55,6 @@ import './Instance.scss';
55
55
  type Props = {
56
56
  canEdit: boolean,
57
57
  canUseAIFolderExtraction?: boolean,
58
- canUseAIFolderExtractionAgentSelector?: boolean,
59
58
  cascadePolicy?: MetadataCascadePolicy, // eslint-disable-line
60
59
  data: MetadataFields,
61
60
  hasError: boolean,
@@ -642,7 +641,6 @@ class Instance extends React.PureComponent<Props, State> {
642
641
  render() {
643
642
  const {
644
643
  canUseAIFolderExtraction = false,
645
- canUseAIFolderExtractionAgentSelector = false,
646
644
  cascadePolicy = {},
647
645
  isDirty,
648
646
  isCascadingPolicyApplicable,
@@ -703,9 +701,6 @@ class Instance extends React.PureComponent<Props, State> {
703
701
  cascadePolicyConfiguration={cascadePolicy?.cascadePolicyConfiguration}
704
702
  canEdit={isEditing && !!cascadePolicy.canEdit}
705
703
  canUseAIFolderExtraction={canUseAIFolderExtraction}
706
- canUseAIFolderExtractionAgentSelector={
707
- canUseAIFolderExtractionAgentSelector
708
- }
709
704
  isAIFolderExtractionEnabled={isAIFolderExtractionEnabled}
710
705
  isCascadingEnabled={isCascadingEnabled}
711
706
  isCascadingOverwritten={isCascadingOverwritten}
@@ -1 +1 @@
1
- {"version":3,"file":"Instance.js","names":["React","injectIntl","FormattedMessage","classNames","isEqual","cloneDeep","noop","Collapsible","Form","LoadingIndicatorWrapper","PlainButton","Tooltip","IconMetadataColored","IconAlertCircle","IconEdit","bdlWatermelonRed","scrollIntoView","CascadePolicy","TemplatedInstance","CustomInstance","MetadataInstanceConfirmDialog","Footer","messages","FIELD_TYPE_FLOAT","FIELD_TYPE_INTEGER","CASCADE_POLICY_TYPE_AI_EXTRACT","TEMPLATE_CUSTOM_PROPERTIES","ENHANCED_AGENT_CONFIGURATION","ENHANCED_AGENT_ID","JSON_PATCH_OP_REMOVE","JSON_PATCH_OP_ADD","JSON_PATCH_OP_REPLACE","JSON_PATCH_OP_TEST","isValidValue","isHidden","RESIN_TAG_TARGET","createFieldKeyToTypeMap","fields","reduce","prev","key","type","getValue","data","value","parseFloat","parseInt","Instance","PureComponent","constructor","props","_defineProperty","id","onModification","setState","getState","shouldConfirmRemove","isEditing","onRemove","isBusy","cascadePolicy","originalData","isDirty","isCascadingPolicyApplicable","onSave","cascadePolicyConfiguration","currentData","errors","isAIFolderExtractionEnabled","isCascadingEnabled","isCascadingOverwritten","state","Object","keys","length","createJSONPatch","canEdit","undefined","isEnabled","overwrite","isValid","finalErrors","_objectSpread","finalData","createElement","invalidInput","setDirty","shouldShowCascadeOptions","agent","isFile","template","message","isProperties","templateKey","_extends","values","metadataName","displayName","hasDataChanged","hasCascadingChanged","isCascadingEnabledThroughProps","isAIFolderExtractionEnabledThroughProps","createRef","prevState","intl","editClassName","metadataLabelEditText","formatMessage","metadataEditTooltip","position","text","className","onClick","toggleIsEditing","fieldKeyToTypeMap","componentDidUpdate","hasError","prevHasError","prevIsDirty","currentElement","collapsibleRef","current","block","behavior","getTitle","customTitle","color","getConfirmationMessage","renderDeleteMessage","cascadePolicyType","ops","forEach","originalValue","path","prototype","hasOwnProperty","call","push","op","render","canUseAIFolderExtraction","canUseAIFolderExtractionAgentSelector","isOpen","animationDuration","isExistingCascadePolicy","ref","buttonProps","hasStickyHeader","headerActionItems","renderEditButton","isBordered","title","isLoading","confirmationMessage","onCancel","onConfirmCancel","onConfirm","onValidSubmit","isCustomMetadata","onAIAgentSelect","onAIFolderExtractionToggle","onCascadeModeChange","onCascadeToggle","onFieldChange","onFieldRemove","isDisabled","onConfirmRemove","showSave","InstanceBase"],"sources":["../../../src/features/metadata-instance-editor/Instance.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport { injectIntl, FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport noop from 'lodash/noop';\n\nimport type { AgentType } from '@box/box-ai-agent-selector';\nimport Collapsible from '../../components/collapsible/Collapsible';\nimport Form from '../../components/form-elements/form/Form';\nimport LoadingIndicatorWrapper from '../../components/loading-indicator/LoadingIndicatorWrapper';\nimport PlainButton from '../../components/plain-button/PlainButton';\nimport Tooltip from '../../components/tooltip';\nimport IconMetadataColored from '../../icons/general/IconMetadataColored';\nimport IconAlertCircle from '../../icons/general/IconAlertCircle';\nimport IconEdit from '../../icons/general/IconEdit';\nimport { bdlWatermelonRed } from '../../styles/variables';\nimport { scrollIntoView } from '../../utils/dom';\n\nimport CascadePolicy from './CascadePolicy';\nimport TemplatedInstance from './TemplatedInstance';\nimport CustomInstance from './CustomInstance';\nimport MetadataInstanceConfirmDialog from './MetadataInstanceConfirmDialog';\nimport Footer from './Footer';\nimport messages from './messages';\nimport { FIELD_TYPE_FLOAT, FIELD_TYPE_INTEGER } from '../metadata-instance-fields/constants';\nimport {\n CASCADE_POLICY_TYPE_AI_EXTRACT,\n TEMPLATE_CUSTOM_PROPERTIES,\n ENHANCED_AGENT_CONFIGURATION,\n ENHANCED_AGENT_ID,\n} from './constants';\nimport {\n JSON_PATCH_OP_REMOVE,\n JSON_PATCH_OP_ADD,\n JSON_PATCH_OP_REPLACE,\n JSON_PATCH_OP_TEST,\n} from '../../common/constants';\nimport { isValidValue } from '../metadata-instance-fields/validateMetadataField';\nimport { isHidden } from './metadataUtil';\nimport { RESIN_TAG_TARGET } from '../../common/variables';\nimport type {\n MetadataFields,\n MetadataTemplate,\n MetadataCascadePolicy,\n MetadataCascadePolicyConfiguration,\n MetadataCascadingPolicyData,\n MetadataTemplateField,\n MetadataFieldValue,\n} from '../../common/types/metadata';\nimport type { JSONPatchOperations } from '../../common/types/api';\nimport './Instance.scss';\n\ntype Props = {\n canEdit: boolean,\n canUseAIFolderExtraction?: boolean,\n canUseAIFolderExtractionAgentSelector?: boolean,\n cascadePolicy?: MetadataCascadePolicy, // eslint-disable-line\n data: MetadataFields,\n hasError: boolean,\n id: string,\n intl: Object,\n isCascadingPolicyApplicable?: boolean,\n isDirty: boolean,\n isOpen: boolean,\n onModification?: (id: string, isDirty: boolean, type?: string) => void,\n onRemove?: (id: string) => void,\n onSave?: (\n id: string,\n data: JSONPatchOperations,\n cascadingPolicy?: MetadataCascadingPolicyData,\n rawData: Object,\n ) => void,\n template: MetadataTemplate,\n};\n\ntype State = {\n cascadePolicyConfiguration: MetadataCascadePolicyConfiguration | null,\n data: Object,\n errors: { [string]: React.Node },\n isAIFolderExtractionEnabled: boolean,\n isBusy: boolean,\n isCascadingEnabled: boolean,\n isCascadingOverwritten: boolean,\n isEditing: boolean,\n shouldConfirmRemove: boolean,\n shouldShowCascadeOptions: boolean,\n};\n\nconst createFieldKeyToTypeMap = (fields?: Array<MetadataTemplateField> = []) =>\n fields.reduce((prev, { key, type }) => {\n prev[key] = type;\n return prev;\n }, {});\n\nconst getValue = (data: Object, key: string, type: string) => {\n const value = data[key];\n\n switch (type) {\n case FIELD_TYPE_FLOAT:\n return parseFloat(value);\n\n case FIELD_TYPE_INTEGER:\n return parseInt(value, 10);\n\n default:\n return value;\n }\n};\n\nclass Instance extends React.PureComponent<Props, State> {\n static defaultProps = {\n data: {},\n isDirty: false,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = this.getState(props);\n this.fieldKeyToTypeMap = createFieldKeyToTypeMap(props.template.fields);\n }\n\n componentDidUpdate({ hasError: prevHasError, isDirty: prevIsDirty }: Props, prevState: State): void {\n const currentElement = this.collapsibleRef.current;\n const { hasError, isDirty }: Props = this.props;\n const { isEditing }: State = prevState;\n\n if (currentElement && this.state.shouldConfirmRemove) {\n scrollIntoView(currentElement, {\n block: 'start',\n behavior: 'smooth',\n });\n }\n\n if (hasError && hasError !== prevHasError) {\n // If hasError is true, which means an error occurred while\n // doing a network operation and hence hide the busy indicator\n // Saving also disables isEditing, so need to enable that back.\n // isDirty remains as it was before.\n this.setState({ isBusy: false, isEditing: true });\n } else if (prevIsDirty && !isDirty) {\n // If the form was dirty and now its not dirty\n // we know a successful save may have happened.\n // We don't modify isEditing here because we maintain the\n // prior state for that. If we came here from a save\n // success then save already disabled isEditing.\n if (isEditing) {\n // We are still editing so don't reset it\n this.setState({ isBusy: false });\n } else {\n // For a successfull save we reset cascading overwrite radio\n this.setState({ isBusy: false, isCascadingOverwritten: false });\n }\n }\n }\n\n /**\n * Undo any changes made\n *\n * @return {void}\n */\n onCancel = (): void => {\n const { id, onModification }: Props = this.props;\n this.setState(this.getState(this.props));\n\n // Callback to parent to tell that something is dirty\n if (onModification) {\n onModification(id, false);\n }\n };\n\n /**\n * Allows a user to confirm metadata instance removal\n *\n * @return {void}\n */\n onConfirmRemove = (): void => {\n this.setState({ shouldConfirmRemove: true });\n };\n\n /**\n * Cancel the remove instance attempt\n *\n * @return {void}\n */\n onConfirmCancel = (): void => {\n this.setState({ shouldConfirmRemove: false });\n };\n\n /**\n * Removes an instance\n *\n * @return {void}\n */\n onRemove = (): void => {\n if (!this.isEditing()) {\n return;\n }\n\n const { id, onRemove }: Props = this.props;\n if (onRemove) {\n onRemove(id);\n this.setState({ isBusy: true });\n }\n };\n\n /**\n * Saves instance data\n *\n * @return {void}\n */\n onSave = (): void => {\n const {\n cascadePolicy,\n data: originalData,\n id,\n isDirty,\n isCascadingPolicyApplicable,\n onSave,\n }: Props = this.props;\n const {\n cascadePolicyConfiguration,\n data: currentData,\n errors,\n isAIFolderExtractionEnabled,\n isCascadingEnabled,\n isCascadingOverwritten,\n }: State = this.state;\n\n if (!this.isEditing() || !isDirty || !onSave || Object.keys(errors).length) {\n return;\n }\n\n this.setState({\n isBusy: true,\n isEditing: false,\n // reset state if cascading policy is removed\n isAIFolderExtractionEnabled: isCascadingEnabled ? isAIFolderExtractionEnabled : false,\n });\n\n onSave(\n id,\n this.createJSONPatch(currentData, originalData),\n isCascadingPolicyApplicable\n ? {\n canEdit: cascadePolicy ? cascadePolicy.canEdit : false,\n id: cascadePolicy ? cascadePolicy.id : undefined,\n isEnabled: isCascadingEnabled,\n overwrite: isCascadingOverwritten,\n isAIFolderExtractionEnabled,\n cascadePolicyConfiguration,\n }\n : undefined,\n cloneDeep(currentData),\n );\n };\n\n /**\n * Updates a key value in the instance data\n *\n * @param {string} key - key to update\n * @param {FieldValue} value - value to update\n * @param {string} type - type of field\n * @return {void}\n */\n onFieldChange = (key: string, value: MetadataFieldValue, type: string): void => {\n const { data, errors }: State = this.state;\n\n // Don't do anything if data is the same or not in edit mode\n if (!this.isEditing() || isEqual(data[key], value)) {\n return;\n }\n\n const isValid = isValidValue(type, value);\n const finalErrors = { ...errors };\n const finalData = cloneDeep(data);\n finalData[key] = value;\n\n if (isValid) {\n delete finalErrors[key];\n } else {\n finalErrors[key] = <FormattedMessage {...messages.invalidInput} />;\n }\n\n this.setState({ data: finalData, errors: finalErrors }, () => {\n this.setDirty(type);\n });\n };\n\n /**\n * Removes a key from instance data\n *\n * @param {string} key - key to remove\n * @return {void}\n */\n onFieldRemove = (key: string): void => {\n if (!this.isEditing()) {\n return;\n }\n\n const { data, errors }: State = this.state;\n const finalData = cloneDeep(data);\n const finalErrors = { ...errors };\n delete finalData[key];\n delete finalErrors[key];\n this.setState({ data: finalData, errors: finalErrors }, this.setDirty);\n };\n\n /**\n * Toggle cascading policy\n *\n * @param {boolean} value - true when turned on\n * @return {void}\n */\n onCascadeToggle = (value: boolean) => {\n const { isCascadingPolicyApplicable }: Props = this.props;\n if (!isCascadingPolicyApplicable) {\n return;\n }\n\n this.setState(\n {\n isCascadingEnabled: value,\n shouldShowCascadeOptions: value,\n },\n this.setDirty,\n );\n };\n\n /**\n * Changes the cascade mode.\n * isCascadingOverwritten is slways false to start off.\n *\n * @param {boolean} value - true when overwrite policy is chosen\n * @return {void}\n */\n onCascadeModeChange = (value: boolean): void => {\n const { isCascadingPolicyApplicable }: Props = this.props;\n if (!isCascadingPolicyApplicable) {\n return;\n }\n\n this.setState(\n {\n isCascadingOverwritten: value,\n },\n this.setDirty,\n );\n };\n\n onAIFolderExtractionToggle = (value: boolean) => {\n this.setState({ isAIFolderExtractionEnabled: value }, this.setDirty);\n };\n\n /**\n * Handles the selection of an AI agent\n * @param {AgentType | null} agent - The selected agent\n */\n onAIAgentSelect = (agent: AgentType | null): void => {\n // '2' is the id for the enhanced agent\n if (agent && agent.id === ENHANCED_AGENT_ID) {\n this.setState({\n cascadePolicyConfiguration: {\n agent: ENHANCED_AGENT_CONFIGURATION,\n },\n });\n } else {\n this.setState({ cascadePolicyConfiguration: null });\n }\n };\n\n /**\n * Returns the state from props\n *\n * @return {Object} - react state\n */\n getState(props: Props): State {\n const isCascadingEnabled = this.isCascadingEnabledThroughProps(props);\n\n return {\n cascadePolicyConfiguration: null,\n data: cloneDeep(props.data),\n errors: {},\n isAIFolderExtractionEnabled: this.isAIFolderExtractionEnabledThroughProps(props),\n isBusy: false,\n isCascadingEnabled,\n isCascadingOverwritten: false,\n isEditing: false,\n shouldConfirmRemove: false,\n shouldShowCascadeOptions: isCascadingEnabled,\n };\n }\n\n /**\n * Returns the card title with possible error mark\n *\n * @return {Object} - react title element\n */\n getTitle(): React.Node {\n const { cascadePolicy = {}, hasError, isCascadingPolicyApplicable, template }: Props = this.props;\n const isProperties = template.templateKey === TEMPLATE_CUSTOM_PROPERTIES;\n\n const type = isCascadingPolicyApplicable && cascadePolicy.id ? 'cascade' : 'default';\n\n return (\n <span className=\"metadata-instance-editor-instance-title\">\n <IconMetadataColored type={type} />\n <span\n className={classNames('metadata-instance-editor-instance-title-text', {\n 'metadata-instance-editor-instance-has-error': hasError,\n })}\n >\n {isProperties ? <FormattedMessage {...messages.customTitle} /> : template.displayName}\n </span>\n {hasError && <IconAlertCircle color={bdlWatermelonRed} />}\n </span>\n );\n }\n\n /**\n * Render the correct delete message to show based on custom metadata and file/folder metadata\n */\n renderDeleteMessage = (isFile: boolean, template: Object) => {\n let message;\n const isProperties = template.templateKey === TEMPLATE_CUSTOM_PROPERTIES;\n\n if (isProperties) {\n message = isFile ? 'fileMetadataRemoveCustomTemplateConfirm' : 'folderMetadataRemoveCustomTemplateConfirm';\n } else {\n message = isFile ? 'fileMetadataRemoveTemplateConfirm' : 'folderMetadataRemoveTemplateConfirm';\n }\n\n return (\n <FormattedMessage\n {...messages[message]}\n values={{\n metadataName: template.displayName,\n }}\n />\n );\n };\n\n /**\n * Get the delete confirmation message base on the template key\n */\n getConfirmationMessage(): React.Node {\n const { template, isCascadingPolicyApplicable }: Props = this.props;\n const isFile = !isCascadingPolicyApplicable;\n return this.renderDeleteMessage(isFile, template);\n }\n\n /**\n * Evaluates if the metadata was changed or cascading policy\n * altered or enabled.\n *\n * @return {void}\n */\n setDirty = (type?: string): void => {\n const { id, isCascadingPolicyApplicable, onModification }: Props = this.props;\n const { data, isCascadingEnabled, isCascadingOverwritten, isAIFolderExtractionEnabled } = this.state;\n const hasDataChanged = !isEqual(data, this.props.data);\n let hasCascadingChanged = false;\n\n if (isCascadingPolicyApplicable) {\n // isCascadingOverwritten always starts out as false, so true signifies a change\n hasCascadingChanged =\n isCascadingOverwritten ||\n isCascadingEnabled !== this.isCascadingEnabledThroughProps(this.props) ||\n isAIFolderExtractionEnabled !== this.isAIFolderExtractionEnabledThroughProps(this.props);\n }\n\n // Callback to parent to tell that something is dirty\n if (onModification) {\n onModification(id, hasDataChanged || hasCascadingChanged, type);\n }\n };\n\n collapsibleRef: {\n current: null | HTMLDivElement,\n } = React.createRef();\n\n fieldKeyToTypeMap: Object;\n\n /**\n * Determines if cascading policy is enabled through props based on\n * whether it has an id or not.\n *\n * @param {Object} props - component props\n * @return {boolean} true if cascading policy is enabled\n */\n isCascadingEnabledThroughProps(props: Props) {\n if (props.cascadePolicy) {\n return !!props.cascadePolicy.id;\n }\n return false;\n }\n\n /**\n * Determines if ai extraction is enabled based on\n * if cascade policy type is ai_extract\n *\n * @param {Object} props - component props\n * @return {boolean} true if ai extraction is enabled\n */\n isAIFolderExtractionEnabledThroughProps({ cascadePolicy }: Props) {\n return cascadePolicy?.cascadePolicyType === CASCADE_POLICY_TYPE_AI_EXTRACT;\n }\n\n /**\n * Toggles the edit mode\n *\n * @private\n * @return {void}\n */\n toggleIsEditing = (): void => {\n this.setState(prevState => ({\n isEditing: !prevState.isEditing,\n }));\n };\n\n /**\n * Creates JSON Patch operations from the passed in\n * data while comparing it to the original data from props.\n *\n * Only diffs at the root level and primitives.\n *\n * @param {*} currentData - the latest changes by the user\n * @param {*} originalData - the original values\n * @return {Array} - JSON patch operations\n */\n createJSONPatch(currentData: Object, originalData: Object): JSONPatchOperations {\n const ops = [];\n const data = cloneDeep(currentData); // clone the data for mutation\n\n // Iterate over the original data and find keys that have changed.\n // Also remove them from the data object to only leave new keys.\n Object.keys(originalData).forEach(key => {\n const type = this.fieldKeyToTypeMap[key];\n const originalValue = getValue(originalData, key, type);\n const path = `/${key}`;\n\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n const value = getValue(data, key, type);\n\n // Only register changed data\n if (!isEqual(value, originalValue)) {\n // Add a test OP for each replaces\n ops.push({\n op: JSON_PATCH_OP_TEST,\n path,\n value: originalValue,\n });\n ops.push({\n op: JSON_PATCH_OP_REPLACE,\n path,\n value,\n });\n }\n } else {\n // Key was removed\n // Add a test OP for removes\n ops.push({\n op: JSON_PATCH_OP_TEST,\n path,\n value: originalValue,\n });\n ops.push({ op: JSON_PATCH_OP_REMOVE, path });\n }\n delete data[key];\n });\n\n // Iterate over the remaining keys that are new.\n Object.keys(data).forEach(key => {\n const type = this.fieldKeyToTypeMap[key];\n const value = getValue(data, key, type);\n\n ops.push({\n op: JSON_PATCH_OP_ADD,\n path: `/${key}`,\n value,\n });\n });\n\n return ops;\n }\n\n /**\n * Utility function to determine if instance is editable\n *\n * @return {boolean} true if editable\n */\n canEdit(): boolean {\n const { canEdit, onModification, onRemove, onSave }: Props = this.props;\n return (\n canEdit &&\n typeof onRemove === 'function' &&\n typeof onSave === 'function' &&\n typeof onModification === 'function'\n );\n }\n\n /**\n * Utility function to determine if instance is in edit mode\n *\n * @return {boolean} true if editing\n */\n isEditing(): boolean {\n const { isEditing }: State = this.state;\n return this.canEdit() && isEditing;\n }\n\n renderEditButton = () => {\n const { intl, isDirty }: Props = this.props;\n const { isBusy }: State = this.state;\n const canEdit = this.canEdit();\n const isEditing = this.isEditing();\n const editClassName = classNames('metadata-instance-editor-instance-edit', {\n 'metadata-instance-editor-instance-is-editing': isEditing,\n });\n\n if (canEdit && !isDirty && !isBusy) {\n const metadataLabelEditText = intl.formatMessage(messages.metadataEditTooltip);\n return (\n <Tooltip position=\"top-left\" text={metadataLabelEditText}>\n <PlainButton\n aria-label={metadataLabelEditText}\n aria-pressed={isEditing}\n className={editClassName}\n data-resin-target=\"metadata-instanceedit\"\n onClick={this.toggleIsEditing}\n type=\"button\"\n >\n <IconEdit />\n </PlainButton>\n </Tooltip>\n );\n }\n return null;\n };\n\n render() {\n const {\n canUseAIFolderExtraction = false,\n canUseAIFolderExtractionAgentSelector = false,\n cascadePolicy = {},\n isDirty,\n isCascadingPolicyApplicable,\n isOpen,\n template,\n }: Props = this.props;\n const { fields = [] } = template;\n const {\n data,\n errors,\n isBusy,\n isAIFolderExtractionEnabled,\n isCascadingEnabled,\n shouldConfirmRemove,\n shouldShowCascadeOptions,\n isCascadingOverwritten,\n }: State = this.state;\n const isProperties = template.templateKey === TEMPLATE_CUSTOM_PROPERTIES;\n const isEditing = this.isEditing();\n\n if (!template || isHidden(template)) {\n return null;\n }\n\n // Animate short and tall cards at consistent speeds.\n const animationDuration = (fields.length + 1) * 50;\n\n const isExistingCascadePolicy = this.isCascadingEnabledThroughProps(this.props);\n\n return (\n <div ref={this.collapsibleRef}>\n <Collapsible\n animationDuration={animationDuration}\n buttonProps={{\n [RESIN_TAG_TARGET]: 'metadata-card',\n }}\n hasStickyHeader\n headerActionItems={this.renderEditButton()}\n isBordered\n isOpen={isOpen}\n title={this.getTitle()}\n >\n {shouldConfirmRemove && (\n <LoadingIndicatorWrapper isLoading={isBusy}>\n <MetadataInstanceConfirmDialog\n confirmationMessage={this.getConfirmationMessage()}\n onCancel={this.onConfirmCancel}\n onConfirm={this.onRemove}\n />\n </LoadingIndicatorWrapper>\n )}\n {!shouldConfirmRemove && (\n <LoadingIndicatorWrapper isLoading={isBusy}>\n <Form onValidSubmit={isDirty ? this.onSave : noop}>\n <div className=\"metadata-instance-editor-instance\">\n {isCascadingPolicyApplicable && (\n <CascadePolicy\n cascadePolicyConfiguration={cascadePolicy?.cascadePolicyConfiguration}\n canEdit={isEditing && !!cascadePolicy.canEdit}\n canUseAIFolderExtraction={canUseAIFolderExtraction}\n canUseAIFolderExtractionAgentSelector={\n canUseAIFolderExtractionAgentSelector\n }\n isAIFolderExtractionEnabled={isAIFolderExtractionEnabled}\n isCascadingEnabled={isCascadingEnabled}\n isCascadingOverwritten={isCascadingOverwritten}\n isCustomMetadata={isProperties}\n isExistingCascadePolicy={isExistingCascadePolicy}\n onAIAgentSelect={this.onAIAgentSelect}\n onAIFolderExtractionToggle={this.onAIFolderExtractionToggle}\n onCascadeModeChange={this.onCascadeModeChange}\n onCascadeToggle={this.onCascadeToggle}\n shouldShowCascadeOptions={shouldShowCascadeOptions}\n />\n )}\n {isProperties ? (\n <CustomInstance\n canEdit={isEditing}\n data={data}\n onFieldChange={this.onFieldChange}\n onFieldRemove={this.onFieldRemove}\n />\n ) : (\n <TemplatedInstance\n canEdit={isEditing}\n data={data}\n errors={errors}\n isDisabled={isAIFolderExtractionEnabled}\n onFieldChange={this.onFieldChange}\n onFieldRemove={this.onFieldRemove}\n template={template}\n />\n )}\n </div>\n {isEditing && (\n <Footer\n onCancel={this.onCancel}\n onRemove={this.onConfirmRemove}\n showSave={isDirty}\n />\n )}\n </Form>\n </LoadingIndicatorWrapper>\n )}\n </Collapsible>\n </div>\n );\n }\n}\n\nexport { Instance as InstanceBase };\nexport default injectIntl(Instance);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Instance.js","names":["React","injectIntl","FormattedMessage","classNames","isEqual","cloneDeep","noop","Collapsible","Form","LoadingIndicatorWrapper","PlainButton","Tooltip","IconMetadataColored","IconAlertCircle","IconEdit","bdlWatermelonRed","scrollIntoView","CascadePolicy","TemplatedInstance","CustomInstance","MetadataInstanceConfirmDialog","Footer","messages","FIELD_TYPE_FLOAT","FIELD_TYPE_INTEGER","CASCADE_POLICY_TYPE_AI_EXTRACT","TEMPLATE_CUSTOM_PROPERTIES","ENHANCED_AGENT_CONFIGURATION","ENHANCED_AGENT_ID","JSON_PATCH_OP_REMOVE","JSON_PATCH_OP_ADD","JSON_PATCH_OP_REPLACE","JSON_PATCH_OP_TEST","isValidValue","isHidden","RESIN_TAG_TARGET","createFieldKeyToTypeMap","fields","reduce","prev","key","type","getValue","data","value","parseFloat","parseInt","Instance","PureComponent","constructor","props","_defineProperty","id","onModification","setState","getState","shouldConfirmRemove","isEditing","onRemove","isBusy","cascadePolicy","originalData","isDirty","isCascadingPolicyApplicable","onSave","cascadePolicyConfiguration","currentData","errors","isAIFolderExtractionEnabled","isCascadingEnabled","isCascadingOverwritten","state","Object","keys","length","createJSONPatch","canEdit","undefined","isEnabled","overwrite","isValid","finalErrors","_objectSpread","finalData","createElement","invalidInput","setDirty","shouldShowCascadeOptions","agent","isFile","template","message","isProperties","templateKey","_extends","values","metadataName","displayName","hasDataChanged","hasCascadingChanged","isCascadingEnabledThroughProps","isAIFolderExtractionEnabledThroughProps","createRef","prevState","intl","editClassName","metadataLabelEditText","formatMessage","metadataEditTooltip","position","text","className","onClick","toggleIsEditing","fieldKeyToTypeMap","componentDidUpdate","hasError","prevHasError","prevIsDirty","currentElement","collapsibleRef","current","block","behavior","getTitle","customTitle","color","getConfirmationMessage","renderDeleteMessage","cascadePolicyType","ops","forEach","originalValue","path","prototype","hasOwnProperty","call","push","op","render","canUseAIFolderExtraction","isOpen","animationDuration","isExistingCascadePolicy","ref","buttonProps","hasStickyHeader","headerActionItems","renderEditButton","isBordered","title","isLoading","confirmationMessage","onCancel","onConfirmCancel","onConfirm","onValidSubmit","isCustomMetadata","onAIAgentSelect","onAIFolderExtractionToggle","onCascadeModeChange","onCascadeToggle","onFieldChange","onFieldRemove","isDisabled","onConfirmRemove","showSave","InstanceBase"],"sources":["../../../src/features/metadata-instance-editor/Instance.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport { injectIntl, FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport noop from 'lodash/noop';\n\nimport type { AgentType } from '@box/box-ai-agent-selector';\nimport Collapsible from '../../components/collapsible/Collapsible';\nimport Form from '../../components/form-elements/form/Form';\nimport LoadingIndicatorWrapper from '../../components/loading-indicator/LoadingIndicatorWrapper';\nimport PlainButton from '../../components/plain-button/PlainButton';\nimport Tooltip from '../../components/tooltip';\nimport IconMetadataColored from '../../icons/general/IconMetadataColored';\nimport IconAlertCircle from '../../icons/general/IconAlertCircle';\nimport IconEdit from '../../icons/general/IconEdit';\nimport { bdlWatermelonRed } from '../../styles/variables';\nimport { scrollIntoView } from '../../utils/dom';\n\nimport CascadePolicy from './CascadePolicy';\nimport TemplatedInstance from './TemplatedInstance';\nimport CustomInstance from './CustomInstance';\nimport MetadataInstanceConfirmDialog from './MetadataInstanceConfirmDialog';\nimport Footer from './Footer';\nimport messages from './messages';\nimport { FIELD_TYPE_FLOAT, FIELD_TYPE_INTEGER } from '../metadata-instance-fields/constants';\nimport {\n CASCADE_POLICY_TYPE_AI_EXTRACT,\n TEMPLATE_CUSTOM_PROPERTIES,\n ENHANCED_AGENT_CONFIGURATION,\n ENHANCED_AGENT_ID,\n} from './constants';\nimport {\n JSON_PATCH_OP_REMOVE,\n JSON_PATCH_OP_ADD,\n JSON_PATCH_OP_REPLACE,\n JSON_PATCH_OP_TEST,\n} from '../../common/constants';\nimport { isValidValue } from '../metadata-instance-fields/validateMetadataField';\nimport { isHidden } from './metadataUtil';\nimport { RESIN_TAG_TARGET } from '../../common/variables';\nimport type {\n MetadataFields,\n MetadataTemplate,\n MetadataCascadePolicy,\n MetadataCascadePolicyConfiguration,\n MetadataCascadingPolicyData,\n MetadataTemplateField,\n MetadataFieldValue,\n} from '../../common/types/metadata';\nimport type { JSONPatchOperations } from '../../common/types/api';\nimport './Instance.scss';\n\ntype Props = {\n canEdit: boolean,\n canUseAIFolderExtraction?: boolean,\n cascadePolicy?: MetadataCascadePolicy, // eslint-disable-line\n data: MetadataFields,\n hasError: boolean,\n id: string,\n intl: Object,\n isCascadingPolicyApplicable?: boolean,\n isDirty: boolean,\n isOpen: boolean,\n onModification?: (id: string, isDirty: boolean, type?: string) => void,\n onRemove?: (id: string) => void,\n onSave?: (\n id: string,\n data: JSONPatchOperations,\n cascadingPolicy?: MetadataCascadingPolicyData,\n rawData: Object,\n ) => void,\n template: MetadataTemplate,\n};\n\ntype State = {\n cascadePolicyConfiguration: MetadataCascadePolicyConfiguration | null,\n data: Object,\n errors: { [string]: React.Node },\n isAIFolderExtractionEnabled: boolean,\n isBusy: boolean,\n isCascadingEnabled: boolean,\n isCascadingOverwritten: boolean,\n isEditing: boolean,\n shouldConfirmRemove: boolean,\n shouldShowCascadeOptions: boolean,\n};\n\nconst createFieldKeyToTypeMap = (fields?: Array<MetadataTemplateField> = []) =>\n fields.reduce((prev, { key, type }) => {\n prev[key] = type;\n return prev;\n }, {});\n\nconst getValue = (data: Object, key: string, type: string) => {\n const value = data[key];\n\n switch (type) {\n case FIELD_TYPE_FLOAT:\n return parseFloat(value);\n\n case FIELD_TYPE_INTEGER:\n return parseInt(value, 10);\n\n default:\n return value;\n }\n};\n\nclass Instance extends React.PureComponent<Props, State> {\n static defaultProps = {\n data: {},\n isDirty: false,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = this.getState(props);\n this.fieldKeyToTypeMap = createFieldKeyToTypeMap(props.template.fields);\n }\n\n componentDidUpdate({ hasError: prevHasError, isDirty: prevIsDirty }: Props, prevState: State): void {\n const currentElement = this.collapsibleRef.current;\n const { hasError, isDirty }: Props = this.props;\n const { isEditing }: State = prevState;\n\n if (currentElement && this.state.shouldConfirmRemove) {\n scrollIntoView(currentElement, {\n block: 'start',\n behavior: 'smooth',\n });\n }\n\n if (hasError && hasError !== prevHasError) {\n // If hasError is true, which means an error occurred while\n // doing a network operation and hence hide the busy indicator\n // Saving also disables isEditing, so need to enable that back.\n // isDirty remains as it was before.\n this.setState({ isBusy: false, isEditing: true });\n } else if (prevIsDirty && !isDirty) {\n // If the form was dirty and now its not dirty\n // we know a successful save may have happened.\n // We don't modify isEditing here because we maintain the\n // prior state for that. If we came here from a save\n // success then save already disabled isEditing.\n if (isEditing) {\n // We are still editing so don't reset it\n this.setState({ isBusy: false });\n } else {\n // For a successfull save we reset cascading overwrite radio\n this.setState({ isBusy: false, isCascadingOverwritten: false });\n }\n }\n }\n\n /**\n * Undo any changes made\n *\n * @return {void}\n */\n onCancel = (): void => {\n const { id, onModification }: Props = this.props;\n this.setState(this.getState(this.props));\n\n // Callback to parent to tell that something is dirty\n if (onModification) {\n onModification(id, false);\n }\n };\n\n /**\n * Allows a user to confirm metadata instance removal\n *\n * @return {void}\n */\n onConfirmRemove = (): void => {\n this.setState({ shouldConfirmRemove: true });\n };\n\n /**\n * Cancel the remove instance attempt\n *\n * @return {void}\n */\n onConfirmCancel = (): void => {\n this.setState({ shouldConfirmRemove: false });\n };\n\n /**\n * Removes an instance\n *\n * @return {void}\n */\n onRemove = (): void => {\n if (!this.isEditing()) {\n return;\n }\n\n const { id, onRemove }: Props = this.props;\n if (onRemove) {\n onRemove(id);\n this.setState({ isBusy: true });\n }\n };\n\n /**\n * Saves instance data\n *\n * @return {void}\n */\n onSave = (): void => {\n const {\n cascadePolicy,\n data: originalData,\n id,\n isDirty,\n isCascadingPolicyApplicable,\n onSave,\n }: Props = this.props;\n const {\n cascadePolicyConfiguration,\n data: currentData,\n errors,\n isAIFolderExtractionEnabled,\n isCascadingEnabled,\n isCascadingOverwritten,\n }: State = this.state;\n\n if (!this.isEditing() || !isDirty || !onSave || Object.keys(errors).length) {\n return;\n }\n\n this.setState({\n isBusy: true,\n isEditing: false,\n // reset state if cascading policy is removed\n isAIFolderExtractionEnabled: isCascadingEnabled ? isAIFolderExtractionEnabled : false,\n });\n\n onSave(\n id,\n this.createJSONPatch(currentData, originalData),\n isCascadingPolicyApplicable\n ? {\n canEdit: cascadePolicy ? cascadePolicy.canEdit : false,\n id: cascadePolicy ? cascadePolicy.id : undefined,\n isEnabled: isCascadingEnabled,\n overwrite: isCascadingOverwritten,\n isAIFolderExtractionEnabled,\n cascadePolicyConfiguration,\n }\n : undefined,\n cloneDeep(currentData),\n );\n };\n\n /**\n * Updates a key value in the instance data\n *\n * @param {string} key - key to update\n * @param {FieldValue} value - value to update\n * @param {string} type - type of field\n * @return {void}\n */\n onFieldChange = (key: string, value: MetadataFieldValue, type: string): void => {\n const { data, errors }: State = this.state;\n\n // Don't do anything if data is the same or not in edit mode\n if (!this.isEditing() || isEqual(data[key], value)) {\n return;\n }\n\n const isValid = isValidValue(type, value);\n const finalErrors = { ...errors };\n const finalData = cloneDeep(data);\n finalData[key] = value;\n\n if (isValid) {\n delete finalErrors[key];\n } else {\n finalErrors[key] = <FormattedMessage {...messages.invalidInput} />;\n }\n\n this.setState({ data: finalData, errors: finalErrors }, () => {\n this.setDirty(type);\n });\n };\n\n /**\n * Removes a key from instance data\n *\n * @param {string} key - key to remove\n * @return {void}\n */\n onFieldRemove = (key: string): void => {\n if (!this.isEditing()) {\n return;\n }\n\n const { data, errors }: State = this.state;\n const finalData = cloneDeep(data);\n const finalErrors = { ...errors };\n delete finalData[key];\n delete finalErrors[key];\n this.setState({ data: finalData, errors: finalErrors }, this.setDirty);\n };\n\n /**\n * Toggle cascading policy\n *\n * @param {boolean} value - true when turned on\n * @return {void}\n */\n onCascadeToggle = (value: boolean) => {\n const { isCascadingPolicyApplicable }: Props = this.props;\n if (!isCascadingPolicyApplicable) {\n return;\n }\n\n this.setState(\n {\n isCascadingEnabled: value,\n shouldShowCascadeOptions: value,\n },\n this.setDirty,\n );\n };\n\n /**\n * Changes the cascade mode.\n * isCascadingOverwritten is slways false to start off.\n *\n * @param {boolean} value - true when overwrite policy is chosen\n * @return {void}\n */\n onCascadeModeChange = (value: boolean): void => {\n const { isCascadingPolicyApplicable }: Props = this.props;\n if (!isCascadingPolicyApplicable) {\n return;\n }\n\n this.setState(\n {\n isCascadingOverwritten: value,\n },\n this.setDirty,\n );\n };\n\n onAIFolderExtractionToggle = (value: boolean) => {\n this.setState({ isAIFolderExtractionEnabled: value }, this.setDirty);\n };\n\n /**\n * Handles the selection of an AI agent\n * @param {AgentType | null} agent - The selected agent\n */\n onAIAgentSelect = (agent: AgentType | null): void => {\n // '2' is the id for the enhanced agent\n if (agent && agent.id === ENHANCED_AGENT_ID) {\n this.setState({\n cascadePolicyConfiguration: {\n agent: ENHANCED_AGENT_CONFIGURATION,\n },\n });\n } else {\n this.setState({ cascadePolicyConfiguration: null });\n }\n };\n\n /**\n * Returns the state from props\n *\n * @return {Object} - react state\n */\n getState(props: Props): State {\n const isCascadingEnabled = this.isCascadingEnabledThroughProps(props);\n\n return {\n cascadePolicyConfiguration: null,\n data: cloneDeep(props.data),\n errors: {},\n isAIFolderExtractionEnabled: this.isAIFolderExtractionEnabledThroughProps(props),\n isBusy: false,\n isCascadingEnabled,\n isCascadingOverwritten: false,\n isEditing: false,\n shouldConfirmRemove: false,\n shouldShowCascadeOptions: isCascadingEnabled,\n };\n }\n\n /**\n * Returns the card title with possible error mark\n *\n * @return {Object} - react title element\n */\n getTitle(): React.Node {\n const { cascadePolicy = {}, hasError, isCascadingPolicyApplicable, template }: Props = this.props;\n const isProperties = template.templateKey === TEMPLATE_CUSTOM_PROPERTIES;\n\n const type = isCascadingPolicyApplicable && cascadePolicy.id ? 'cascade' : 'default';\n\n return (\n <span className=\"metadata-instance-editor-instance-title\">\n <IconMetadataColored type={type} />\n <span\n className={classNames('metadata-instance-editor-instance-title-text', {\n 'metadata-instance-editor-instance-has-error': hasError,\n })}\n >\n {isProperties ? <FormattedMessage {...messages.customTitle} /> : template.displayName}\n </span>\n {hasError && <IconAlertCircle color={bdlWatermelonRed} />}\n </span>\n );\n }\n\n /**\n * Render the correct delete message to show based on custom metadata and file/folder metadata\n */\n renderDeleteMessage = (isFile: boolean, template: Object) => {\n let message;\n const isProperties = template.templateKey === TEMPLATE_CUSTOM_PROPERTIES;\n\n if (isProperties) {\n message = isFile ? 'fileMetadataRemoveCustomTemplateConfirm' : 'folderMetadataRemoveCustomTemplateConfirm';\n } else {\n message = isFile ? 'fileMetadataRemoveTemplateConfirm' : 'folderMetadataRemoveTemplateConfirm';\n }\n\n return (\n <FormattedMessage\n {...messages[message]}\n values={{\n metadataName: template.displayName,\n }}\n />\n );\n };\n\n /**\n * Get the delete confirmation message base on the template key\n */\n getConfirmationMessage(): React.Node {\n const { template, isCascadingPolicyApplicable }: Props = this.props;\n const isFile = !isCascadingPolicyApplicable;\n return this.renderDeleteMessage(isFile, template);\n }\n\n /**\n * Evaluates if the metadata was changed or cascading policy\n * altered or enabled.\n *\n * @return {void}\n */\n setDirty = (type?: string): void => {\n const { id, isCascadingPolicyApplicable, onModification }: Props = this.props;\n const { data, isCascadingEnabled, isCascadingOverwritten, isAIFolderExtractionEnabled } = this.state;\n const hasDataChanged = !isEqual(data, this.props.data);\n let hasCascadingChanged = false;\n\n if (isCascadingPolicyApplicable) {\n // isCascadingOverwritten always starts out as false, so true signifies a change\n hasCascadingChanged =\n isCascadingOverwritten ||\n isCascadingEnabled !== this.isCascadingEnabledThroughProps(this.props) ||\n isAIFolderExtractionEnabled !== this.isAIFolderExtractionEnabledThroughProps(this.props);\n }\n\n // Callback to parent to tell that something is dirty\n if (onModification) {\n onModification(id, hasDataChanged || hasCascadingChanged, type);\n }\n };\n\n collapsibleRef: {\n current: null | HTMLDivElement,\n } = React.createRef();\n\n fieldKeyToTypeMap: Object;\n\n /**\n * Determines if cascading policy is enabled through props based on\n * whether it has an id or not.\n *\n * @param {Object} props - component props\n * @return {boolean} true if cascading policy is enabled\n */\n isCascadingEnabledThroughProps(props: Props) {\n if (props.cascadePolicy) {\n return !!props.cascadePolicy.id;\n }\n return false;\n }\n\n /**\n * Determines if ai extraction is enabled based on\n * if cascade policy type is ai_extract\n *\n * @param {Object} props - component props\n * @return {boolean} true if ai extraction is enabled\n */\n isAIFolderExtractionEnabledThroughProps({ cascadePolicy }: Props) {\n return cascadePolicy?.cascadePolicyType === CASCADE_POLICY_TYPE_AI_EXTRACT;\n }\n\n /**\n * Toggles the edit mode\n *\n * @private\n * @return {void}\n */\n toggleIsEditing = (): void => {\n this.setState(prevState => ({\n isEditing: !prevState.isEditing,\n }));\n };\n\n /**\n * Creates JSON Patch operations from the passed in\n * data while comparing it to the original data from props.\n *\n * Only diffs at the root level and primitives.\n *\n * @param {*} currentData - the latest changes by the user\n * @param {*} originalData - the original values\n * @return {Array} - JSON patch operations\n */\n createJSONPatch(currentData: Object, originalData: Object): JSONPatchOperations {\n const ops = [];\n const data = cloneDeep(currentData); // clone the data for mutation\n\n // Iterate over the original data and find keys that have changed.\n // Also remove them from the data object to only leave new keys.\n Object.keys(originalData).forEach(key => {\n const type = this.fieldKeyToTypeMap[key];\n const originalValue = getValue(originalData, key, type);\n const path = `/${key}`;\n\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n const value = getValue(data, key, type);\n\n // Only register changed data\n if (!isEqual(value, originalValue)) {\n // Add a test OP for each replaces\n ops.push({\n op: JSON_PATCH_OP_TEST,\n path,\n value: originalValue,\n });\n ops.push({\n op: JSON_PATCH_OP_REPLACE,\n path,\n value,\n });\n }\n } else {\n // Key was removed\n // Add a test OP for removes\n ops.push({\n op: JSON_PATCH_OP_TEST,\n path,\n value: originalValue,\n });\n ops.push({ op: JSON_PATCH_OP_REMOVE, path });\n }\n delete data[key];\n });\n\n // Iterate over the remaining keys that are new.\n Object.keys(data).forEach(key => {\n const type = this.fieldKeyToTypeMap[key];\n const value = getValue(data, key, type);\n\n ops.push({\n op: JSON_PATCH_OP_ADD,\n path: `/${key}`,\n value,\n });\n });\n\n return ops;\n }\n\n /**\n * Utility function to determine if instance is editable\n *\n * @return {boolean} true if editable\n */\n canEdit(): boolean {\n const { canEdit, onModification, onRemove, onSave }: Props = this.props;\n return (\n canEdit &&\n typeof onRemove === 'function' &&\n typeof onSave === 'function' &&\n typeof onModification === 'function'\n );\n }\n\n /**\n * Utility function to determine if instance is in edit mode\n *\n * @return {boolean} true if editing\n */\n isEditing(): boolean {\n const { isEditing }: State = this.state;\n return this.canEdit() && isEditing;\n }\n\n renderEditButton = () => {\n const { intl, isDirty }: Props = this.props;\n const { isBusy }: State = this.state;\n const canEdit = this.canEdit();\n const isEditing = this.isEditing();\n const editClassName = classNames('metadata-instance-editor-instance-edit', {\n 'metadata-instance-editor-instance-is-editing': isEditing,\n });\n\n if (canEdit && !isDirty && !isBusy) {\n const metadataLabelEditText = intl.formatMessage(messages.metadataEditTooltip);\n return (\n <Tooltip position=\"top-left\" text={metadataLabelEditText}>\n <PlainButton\n aria-label={metadataLabelEditText}\n aria-pressed={isEditing}\n className={editClassName}\n data-resin-target=\"metadata-instanceedit\"\n onClick={this.toggleIsEditing}\n type=\"button\"\n >\n <IconEdit />\n </PlainButton>\n </Tooltip>\n );\n }\n return null;\n };\n\n render() {\n const {\n canUseAIFolderExtraction = false,\n cascadePolicy = {},\n isDirty,\n isCascadingPolicyApplicable,\n isOpen,\n template,\n }: Props = this.props;\n const { fields = [] } = template;\n const {\n data,\n errors,\n isBusy,\n isAIFolderExtractionEnabled,\n isCascadingEnabled,\n shouldConfirmRemove,\n shouldShowCascadeOptions,\n isCascadingOverwritten,\n }: State = this.state;\n const isProperties = template.templateKey === TEMPLATE_CUSTOM_PROPERTIES;\n const isEditing = this.isEditing();\n\n if (!template || isHidden(template)) {\n return null;\n }\n\n // Animate short and tall cards at consistent speeds.\n const animationDuration = (fields.length + 1) * 50;\n\n const isExistingCascadePolicy = this.isCascadingEnabledThroughProps(this.props);\n\n return (\n <div ref={this.collapsibleRef}>\n <Collapsible\n animationDuration={animationDuration}\n buttonProps={{\n [RESIN_TAG_TARGET]: 'metadata-card',\n }}\n hasStickyHeader\n headerActionItems={this.renderEditButton()}\n isBordered\n isOpen={isOpen}\n title={this.getTitle()}\n >\n {shouldConfirmRemove && (\n <LoadingIndicatorWrapper isLoading={isBusy}>\n <MetadataInstanceConfirmDialog\n confirmationMessage={this.getConfirmationMessage()}\n onCancel={this.onConfirmCancel}\n onConfirm={this.onRemove}\n />\n </LoadingIndicatorWrapper>\n )}\n {!shouldConfirmRemove && (\n <LoadingIndicatorWrapper isLoading={isBusy}>\n <Form onValidSubmit={isDirty ? this.onSave : noop}>\n <div className=\"metadata-instance-editor-instance\">\n {isCascadingPolicyApplicable && (\n <CascadePolicy\n cascadePolicyConfiguration={cascadePolicy?.cascadePolicyConfiguration}\n canEdit={isEditing && !!cascadePolicy.canEdit}\n canUseAIFolderExtraction={canUseAIFolderExtraction}\n isAIFolderExtractionEnabled={isAIFolderExtractionEnabled}\n isCascadingEnabled={isCascadingEnabled}\n isCascadingOverwritten={isCascadingOverwritten}\n isCustomMetadata={isProperties}\n isExistingCascadePolicy={isExistingCascadePolicy}\n onAIAgentSelect={this.onAIAgentSelect}\n onAIFolderExtractionToggle={this.onAIFolderExtractionToggle}\n onCascadeModeChange={this.onCascadeModeChange}\n onCascadeToggle={this.onCascadeToggle}\n shouldShowCascadeOptions={shouldShowCascadeOptions}\n />\n )}\n {isProperties ? (\n <CustomInstance\n canEdit={isEditing}\n data={data}\n onFieldChange={this.onFieldChange}\n onFieldRemove={this.onFieldRemove}\n />\n ) : (\n <TemplatedInstance\n canEdit={isEditing}\n data={data}\n errors={errors}\n isDisabled={isAIFolderExtractionEnabled}\n onFieldChange={this.onFieldChange}\n onFieldRemove={this.onFieldRemove}\n template={template}\n />\n )}\n </div>\n {isEditing && (\n <Footer\n onCancel={this.onCancel}\n onRemove={this.onConfirmRemove}\n showSave={isDirty}\n />\n )}\n </Form>\n </LoadingIndicatorWrapper>\n )}\n </Collapsible>\n </div>\n );\n }\n}\n\nexport { Instance as InstanceBase };\nexport default injectIntl(Instance);\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,6 @@ import * as React from 'react';
2
2
  import Instance from './Instance';
3
3
  const Instances = ({
4
4
  canUseAIFolderExtraction = false,
5
- canUseAIFolderExtractionAgentSelector = false,
6
5
  isCascadingPolicyApplicable = false,
7
6
  editors = [],
8
7
  onModification,
@@ -22,7 +21,6 @@ const Instances = ({
22
21
  return /*#__PURE__*/React.createElement(Instance, {
23
22
  canEdit: instance.canEdit,
24
23
  canUseAIFolderExtraction: canUseAIFolderExtraction,
25
- canUseAIFolderExtractionAgentSelector: canUseAIFolderExtractionAgentSelector,
26
24
  cascadePolicy: instance.cascadePolicy,
27
25
  data: instance.data,
28
26
  hasError: hasError,
@@ -7,7 +7,6 @@ import type { JSONPatchOperations } from '../../common/types/api';
7
7
 
8
8
  type Props = {
9
9
  canUseAIFolderExtraction?: boolean,
10
- canUseAIFolderExtractionAgentSelector?: boolean,
11
10
  editors?: Array<MetadataEditor>,
12
11
  isCascadingPolicyApplicable?: boolean,
13
12
  onModification?: (id: string, isDirty: boolean) => void,
@@ -23,7 +22,6 @@ type Props = {
23
22
 
24
23
  const Instances = ({
25
24
  canUseAIFolderExtraction = false,
26
- canUseAIFolderExtractionAgentSelector = false,
27
25
  isCascadingPolicyApplicable = false,
28
26
  editors = [],
29
27
  onModification,
@@ -39,7 +37,6 @@ const Instances = ({
39
37
  <Instance
40
38
  canEdit={instance.canEdit}
41
39
  canUseAIFolderExtraction={canUseAIFolderExtraction}
42
- canUseAIFolderExtractionAgentSelector={canUseAIFolderExtractionAgentSelector}
43
40
  cascadePolicy={instance.cascadePolicy}
44
41
  data={instance.data}
45
42
  hasError={hasError}
@@ -1 +1 @@
1
- {"version":3,"file":"Instances.js","names":["React","Instance","Instances","canUseAIFolderExtraction","canUseAIFolderExtractionAgentSelector","isCascadingPolicyApplicable","editors","onModification","onRemove","onSave","selectedTemplateKey","map","isDirty","instance","hasError","template","templateKey","isOpen","length","createElement","canEdit","cascadePolicy","data","id","key"],"sources":["../../../src/features/metadata-instance-editor/Instances.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\n\nimport Instance from './Instance';\nimport type { MetadataEditor, MetadataCascadingPolicyData } from '../../common/types/metadata';\nimport type { JSONPatchOperations } from '../../common/types/api';\n\ntype Props = {\n canUseAIFolderExtraction?: boolean,\n canUseAIFolderExtractionAgentSelector?: boolean,\n editors?: Array<MetadataEditor>,\n isCascadingPolicyApplicable?: boolean,\n onModification?: (id: string, isDirty: boolean) => void,\n onRemove?: (id: string) => void,\n onSave?: (\n id: string,\n data: JSONPatchOperations,\n cascadingPolicy?: MetadataCascadingPolicyData,\n rawData: Object,\n ) => void,\n selectedTemplateKey?: string,\n};\n\nconst Instances = ({\n canUseAIFolderExtraction = false,\n canUseAIFolderExtractionAgentSelector = false,\n isCascadingPolicyApplicable = false,\n editors = [],\n onModification,\n onRemove,\n onSave,\n selectedTemplateKey,\n}: Props) =>\n editors.map<React.Element<typeof Instance>>(\n ({ isDirty = false, instance, hasError = false, template }: MetadataEditor) => {\n const { templateKey } = template;\n const isOpen = editors.length === 1 || templateKey === selectedTemplateKey;\n return (\n <Instance\n canEdit={instance.canEdit}\n canUseAIFolderExtraction={canUseAIFolderExtraction}\n canUseAIFolderExtractionAgentSelector={canUseAIFolderExtractionAgentSelector}\n cascadePolicy={instance.cascadePolicy}\n data={instance.data}\n hasError={hasError}\n id={instance.id}\n isCascadingPolicyApplicable={isCascadingPolicyApplicable}\n isDirty={isDirty}\n isOpen={isOpen}\n key={`${instance.id}-${templateKey}`}\n onModification={onModification}\n onSave={onSave}\n onRemove={onRemove}\n template={template}\n />\n );\n },\n );\n\nexport default Instances;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,QAAQ,MAAM,YAAY;AAoBjC,MAAMC,SAAS,GAAGA,CAAC;EACfC,wBAAwB,GAAG,KAAK;EAChCC,qCAAqC,GAAG,KAAK;EAC7CC,2BAA2B,GAAG,KAAK;EACnCC,OAAO,GAAG,EAAE;EACZC,cAAc;EACdC,QAAQ;EACRC,MAAM;EACNC;AACG,CAAC,KACJJ,OAAO,CAACK,GAAG,CACP,CAAC;EAAEC,OAAO,GAAG,KAAK;EAAEC,QAAQ;EAAEC,QAAQ,GAAG,KAAK;EAAEC;AAAyB,CAAC,KAAK;EAC3E,MAAM;IAAEC;EAAY,CAAC,GAAGD,QAAQ;EAChC,MAAME,MAAM,GAAGX,OAAO,CAACY,MAAM,KAAK,CAAC,IAAIF,WAAW,KAAKN,mBAAmB;EAC1E,oBACIV,KAAA,CAAAmB,aAAA,CAAClB,QAAQ;IACLmB,OAAO,EAAEP,QAAQ,CAACO,OAAQ;IAC1BjB,wBAAwB,EAAEA,wBAAyB;IACnDC,qCAAqC,EAAEA,qCAAsC;IAC7EiB,aAAa,EAAER,QAAQ,CAACQ,aAAc;IACtCC,IAAI,EAAET,QAAQ,CAACS,IAAK;IACpBR,QAAQ,EAAEA,QAAS;IACnBS,EAAE,EAAEV,QAAQ,CAACU,EAAG;IAChBlB,2BAA2B,EAAEA,2BAA4B;IACzDO,OAAO,EAAEA,OAAQ;IACjBK,MAAM,EAAEA,MAAO;IACfO,GAAG,EAAE,GAAGX,QAAQ,CAACU,EAAE,IAAIP,WAAW,EAAG;IACrCT,cAAc,EAAEA,cAAe;IAC/BE,MAAM,EAAEA,MAAO;IACfD,QAAQ,EAAEA,QAAS;IACnBO,QAAQ,EAAEA;EAAS,CACtB,CAAC;AAEV,CACJ,CAAC;AAEL,eAAeb,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"Instances.js","names":["React","Instance","Instances","canUseAIFolderExtraction","isCascadingPolicyApplicable","editors","onModification","onRemove","onSave","selectedTemplateKey","map","isDirty","instance","hasError","template","templateKey","isOpen","length","createElement","canEdit","cascadePolicy","data","id","key"],"sources":["../../../src/features/metadata-instance-editor/Instances.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\n\nimport Instance from './Instance';\nimport type { MetadataEditor, MetadataCascadingPolicyData } from '../../common/types/metadata';\nimport type { JSONPatchOperations } from '../../common/types/api';\n\ntype Props = {\n canUseAIFolderExtraction?: boolean,\n editors?: Array<MetadataEditor>,\n isCascadingPolicyApplicable?: boolean,\n onModification?: (id: string, isDirty: boolean) => void,\n onRemove?: (id: string) => void,\n onSave?: (\n id: string,\n data: JSONPatchOperations,\n cascadingPolicy?: MetadataCascadingPolicyData,\n rawData: Object,\n ) => void,\n selectedTemplateKey?: string,\n};\n\nconst Instances = ({\n canUseAIFolderExtraction = false,\n isCascadingPolicyApplicable = false,\n editors = [],\n onModification,\n onRemove,\n onSave,\n selectedTemplateKey,\n}: Props) =>\n editors.map<React.Element<typeof Instance>>(\n ({ isDirty = false, instance, hasError = false, template }: MetadataEditor) => {\n const { templateKey } = template;\n const isOpen = editors.length === 1 || templateKey === selectedTemplateKey;\n return (\n <Instance\n canEdit={instance.canEdit}\n canUseAIFolderExtraction={canUseAIFolderExtraction}\n cascadePolicy={instance.cascadePolicy}\n data={instance.data}\n hasError={hasError}\n id={instance.id}\n isCascadingPolicyApplicable={isCascadingPolicyApplicable}\n isDirty={isDirty}\n isOpen={isOpen}\n key={`${instance.id}-${templateKey}`}\n onModification={onModification}\n onSave={onSave}\n onRemove={onRemove}\n template={template}\n />\n );\n },\n );\n\nexport default Instances;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,QAAQ,MAAM,YAAY;AAmBjC,MAAMC,SAAS,GAAGA,CAAC;EACfC,wBAAwB,GAAG,KAAK;EAChCC,2BAA2B,GAAG,KAAK;EACnCC,OAAO,GAAG,EAAE;EACZC,cAAc;EACdC,QAAQ;EACRC,MAAM;EACNC;AACG,CAAC,KACJJ,OAAO,CAACK,GAAG,CACP,CAAC;EAAEC,OAAO,GAAG,KAAK;EAAEC,QAAQ;EAAEC,QAAQ,GAAG,KAAK;EAAEC;AAAyB,CAAC,KAAK;EAC3E,MAAM;IAAEC;EAAY,CAAC,GAAGD,QAAQ;EAChC,MAAME,MAAM,GAAGX,OAAO,CAACY,MAAM,KAAK,CAAC,IAAIF,WAAW,KAAKN,mBAAmB;EAC1E,oBACIT,KAAA,CAAAkB,aAAA,CAACjB,QAAQ;IACLkB,OAAO,EAAEP,QAAQ,CAACO,OAAQ;IAC1BhB,wBAAwB,EAAEA,wBAAyB;IACnDiB,aAAa,EAAER,QAAQ,CAACQ,aAAc;IACtCC,IAAI,EAAET,QAAQ,CAACS,IAAK;IACpBR,QAAQ,EAAEA,QAAS;IACnBS,EAAE,EAAEV,QAAQ,CAACU,EAAG;IAChBlB,2BAA2B,EAAEA,2BAA4B;IACzDO,OAAO,EAAEA,OAAQ;IACjBK,MAAM,EAAEA,MAAO;IACfO,GAAG,EAAE,GAAGX,QAAQ,CAACU,EAAE,IAAIP,WAAW,EAAG;IACrCT,cAAc,EAAEA,cAAe;IAC/BE,MAAM,EAAEA,MAAO;IACfD,QAAQ,EAAEA,QAAS;IACnBO,QAAQ,EAAEA;EAAS,CACtB,CAAC;AAEV,CACJ,CAAC;AAEL,eAAeZ,SAAS","ignoreList":[]}
@@ -9,7 +9,6 @@ const MetadataInstanceEditor = ({
9
9
  blurExceptionClassNames,
10
10
  canAdd,
11
11
  canUseAIFolderExtraction = false,
12
- canUseAIFolderExtractionAgentSelector = false,
13
12
  isCascadingPolicyApplicable = false,
14
13
  isDropdownBusy,
15
14
  editors = [],
@@ -37,7 +36,6 @@ const MetadataInstanceEditor = ({
37
36
  canAdd: canAdd
38
37
  }) : /*#__PURE__*/React.createElement(ScrollWrapper, null, /*#__PURE__*/React.createElement(Instances, {
39
38
  canUseAIFolderExtraction: canUseAIFolderExtraction,
40
- canUseAIFolderExtractionAgentSelector: canUseAIFolderExtractionAgentSelector,
41
39
  editors: editors,
42
40
  isCascadingPolicyApplicable: isCascadingPolicyApplicable,
43
41
  onModification: onModification,
@@ -15,7 +15,6 @@ type Props = {
15
15
  blurExceptionClassNames?: Array<string>,
16
16
  canAdd: boolean,
17
17
  canUseAIFolderExtraction?: boolean,
18
- canUseAIFolderExtractionAgentSelector?: boolean,
19
18
  editors?: Array<MetadataEditor>,
20
19
  isCascadingPolicyApplicable?: boolean,
21
20
  isDropdownBusy?: boolean,
@@ -38,7 +37,6 @@ const MetadataInstanceEditor = ({
38
37
  blurExceptionClassNames,
39
38
  canAdd,
40
39
  canUseAIFolderExtraction = false,
41
- canUseAIFolderExtractionAgentSelector = false,
42
40
  isCascadingPolicyApplicable = false,
43
41
  isDropdownBusy,
44
42
  editors = [],
@@ -66,7 +64,6 @@ const MetadataInstanceEditor = ({
66
64
  <ScrollWrapper>
67
65
  <Instances
68
66
  canUseAIFolderExtraction={canUseAIFolderExtraction}
69
- canUseAIFolderExtractionAgentSelector={canUseAIFolderExtractionAgentSelector}
70
67
  editors={editors}
71
68
  isCascadingPolicyApplicable={isCascadingPolicyApplicable}
72
69
  onModification={onModification}
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataInstanceEditor.js","names":["React","ScrollWrapper","Header","Instances","EmptyContent","MetadataInstanceEditorContext","MetadataInstanceEditor","blurExceptionClassNames","canAdd","canUseAIFolderExtraction","canUseAIFolderExtractionAgentSelector","isCascadingPolicyApplicable","isDropdownBusy","editors","onModification","onRemove","onAdd","onSave","selectedTemplateKey","templates","title","createElement","Provider","value","className","length"],"sources":["../../../src/features/metadata-instance-editor/MetadataInstanceEditor.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\n\nimport ScrollWrapper from '../../components/scroll-wrapper';\n\nimport Header from './Header';\nimport Instances from './Instances';\nimport EmptyContent from './EmptyContent';\nimport type { MetadataEditor, MetadataTemplate, MetadataCascadingPolicyData } from '../../common/types/metadata';\nimport type { JSONPatchOperations } from '../../common/types/api';\nimport MetadataInstanceEditorContext from './MetadataInstanceEditorContext';\nimport './MetadataInstanceEditor.scss';\n\ntype Props = {\n blurExceptionClassNames?: Array<string>,\n canAdd: boolean,\n canUseAIFolderExtraction?: boolean,\n canUseAIFolderExtractionAgentSelector?: boolean,\n editors?: Array<MetadataEditor>,\n isCascadingPolicyApplicable?: boolean,\n isDropdownBusy?: boolean,\n onAdd?: (template: MetadataTemplate) => void,\n onModification?: (id: string, isDirty: boolean) => void,\n onRemove?: (id: string) => void,\n onSave?: (\n id: string,\n data: JSONPatchOperations,\n cascadingPolicy?: MetadataCascadingPolicyData,\n rawData: Object,\n ) => void,\n selectedTemplateKey?: string,\n templateFilters?: Array<string> | string,\n templates: Array<MetadataTemplate>,\n title?: React.Node,\n};\n\nconst MetadataInstanceEditor = ({\n blurExceptionClassNames,\n canAdd,\n canUseAIFolderExtraction = false,\n canUseAIFolderExtractionAgentSelector = false,\n isCascadingPolicyApplicable = false,\n isDropdownBusy,\n editors = [],\n onModification,\n onRemove,\n onAdd,\n onSave,\n selectedTemplateKey,\n templates,\n title,\n}: Props) => (\n <MetadataInstanceEditorContext.Provider value={{ blurExceptionClassNames }}>\n <div className=\"metadata-instance-editor\">\n <Header\n canAdd={canAdd}\n editors={editors}\n isDropdownBusy={isDropdownBusy}\n onAdd={onAdd}\n templates={templates}\n title={title}\n />\n {editors.length === 0 ? (\n <EmptyContent canAdd={canAdd} />\n ) : (\n <ScrollWrapper>\n <Instances\n canUseAIFolderExtraction={canUseAIFolderExtraction}\n canUseAIFolderExtractionAgentSelector={canUseAIFolderExtractionAgentSelector}\n editors={editors}\n isCascadingPolicyApplicable={isCascadingPolicyApplicable}\n onModification={onModification}\n onRemove={onRemove}\n onSave={onSave}\n selectedTemplateKey={selectedTemplateKey}\n />\n </ScrollWrapper>\n )}\n </div>\n </MetadataInstanceEditorContext.Provider>\n);\n\nexport default MetadataInstanceEditor;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,aAAa,MAAM,iCAAiC;AAE3D,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,SAAS,MAAM,aAAa;AACnC,OAAOC,YAAY,MAAM,gBAAgB;AAGzC,OAAOC,6BAA6B,MAAM,iCAAiC;AAC3E,OAAO,+BAA+B;AAyBtC,MAAMC,sBAAsB,GAAGA,CAAC;EAC5BC,uBAAuB;EACvBC,MAAM;EACNC,wBAAwB,GAAG,KAAK;EAChCC,qCAAqC,GAAG,KAAK;EAC7CC,2BAA2B,GAAG,KAAK;EACnCC,cAAc;EACdC,OAAO,GAAG,EAAE;EACZC,cAAc;EACdC,QAAQ;EACRC,KAAK;EACLC,MAAM;EACNC,mBAAmB;EACnBC,SAAS;EACTC;AACG,CAAC,kBACJpB,KAAA,CAAAqB,aAAA,CAAChB,6BAA6B,CAACiB,QAAQ;EAACC,KAAK,EAAE;IAAEhB;EAAwB;AAAE,gBACvEP,KAAA,CAAAqB,aAAA;EAAKG,SAAS,EAAC;AAA0B,gBACrCxB,KAAA,CAAAqB,aAAA,CAACnB,MAAM;EACHM,MAAM,EAAEA,MAAO;EACfK,OAAO,EAAEA,OAAQ;EACjBD,cAAc,EAAEA,cAAe;EAC/BI,KAAK,EAAEA,KAAM;EACbG,SAAS,EAAEA,SAAU;EACrBC,KAAK,EAAEA;AAAM,CAChB,CAAC,EACDP,OAAO,CAACY,MAAM,KAAK,CAAC,gBACjBzB,KAAA,CAAAqB,aAAA,CAACjB,YAAY;EAACI,MAAM,EAAEA;AAAO,CAAE,CAAC,gBAEhCR,KAAA,CAAAqB,aAAA,CAACpB,aAAa,qBACVD,KAAA,CAAAqB,aAAA,CAAClB,SAAS;EACNM,wBAAwB,EAAEA,wBAAyB;EACnDC,qCAAqC,EAAEA,qCAAsC;EAC7EG,OAAO,EAAEA,OAAQ;EACjBF,2BAA2B,EAAEA,2BAA4B;EACzDG,cAAc,EAAEA,cAAe;EAC/BC,QAAQ,EAAEA,QAAS;EACnBE,MAAM,EAAEA,MAAO;EACfC,mBAAmB,EAAEA;AAAoB,CAC5C,CACU,CAElB,CAC+B,CAC3C;AAED,eAAeZ,sBAAsB","ignoreList":[]}
1
+ {"version":3,"file":"MetadataInstanceEditor.js","names":["React","ScrollWrapper","Header","Instances","EmptyContent","MetadataInstanceEditorContext","MetadataInstanceEditor","blurExceptionClassNames","canAdd","canUseAIFolderExtraction","isCascadingPolicyApplicable","isDropdownBusy","editors","onModification","onRemove","onAdd","onSave","selectedTemplateKey","templates","title","createElement","Provider","value","className","length"],"sources":["../../../src/features/metadata-instance-editor/MetadataInstanceEditor.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\n\nimport ScrollWrapper from '../../components/scroll-wrapper';\n\nimport Header from './Header';\nimport Instances from './Instances';\nimport EmptyContent from './EmptyContent';\nimport type { MetadataEditor, MetadataTemplate, MetadataCascadingPolicyData } from '../../common/types/metadata';\nimport type { JSONPatchOperations } from '../../common/types/api';\nimport MetadataInstanceEditorContext from './MetadataInstanceEditorContext';\nimport './MetadataInstanceEditor.scss';\n\ntype Props = {\n blurExceptionClassNames?: Array<string>,\n canAdd: boolean,\n canUseAIFolderExtraction?: boolean,\n editors?: Array<MetadataEditor>,\n isCascadingPolicyApplicable?: boolean,\n isDropdownBusy?: boolean,\n onAdd?: (template: MetadataTemplate) => void,\n onModification?: (id: string, isDirty: boolean) => void,\n onRemove?: (id: string) => void,\n onSave?: (\n id: string,\n data: JSONPatchOperations,\n cascadingPolicy?: MetadataCascadingPolicyData,\n rawData: Object,\n ) => void,\n selectedTemplateKey?: string,\n templateFilters?: Array<string> | string,\n templates: Array<MetadataTemplate>,\n title?: React.Node,\n};\n\nconst MetadataInstanceEditor = ({\n blurExceptionClassNames,\n canAdd,\n canUseAIFolderExtraction = false,\n isCascadingPolicyApplicable = false,\n isDropdownBusy,\n editors = [],\n onModification,\n onRemove,\n onAdd,\n onSave,\n selectedTemplateKey,\n templates,\n title,\n}: Props) => (\n <MetadataInstanceEditorContext.Provider value={{ blurExceptionClassNames }}>\n <div className=\"metadata-instance-editor\">\n <Header\n canAdd={canAdd}\n editors={editors}\n isDropdownBusy={isDropdownBusy}\n onAdd={onAdd}\n templates={templates}\n title={title}\n />\n {editors.length === 0 ? (\n <EmptyContent canAdd={canAdd} />\n ) : (\n <ScrollWrapper>\n <Instances\n canUseAIFolderExtraction={canUseAIFolderExtraction}\n editors={editors}\n isCascadingPolicyApplicable={isCascadingPolicyApplicable}\n onModification={onModification}\n onRemove={onRemove}\n onSave={onSave}\n selectedTemplateKey={selectedTemplateKey}\n />\n </ScrollWrapper>\n )}\n </div>\n </MetadataInstanceEditorContext.Provider>\n);\n\nexport default MetadataInstanceEditor;\n"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,aAAa,MAAM,iCAAiC;AAE3D,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,SAAS,MAAM,aAAa;AACnC,OAAOC,YAAY,MAAM,gBAAgB;AAGzC,OAAOC,6BAA6B,MAAM,iCAAiC;AAC3E,OAAO,+BAA+B;AAwBtC,MAAMC,sBAAsB,GAAGA,CAAC;EAC5BC,uBAAuB;EACvBC,MAAM;EACNC,wBAAwB,GAAG,KAAK;EAChCC,2BAA2B,GAAG,KAAK;EACnCC,cAAc;EACdC,OAAO,GAAG,EAAE;EACZC,cAAc;EACdC,QAAQ;EACRC,KAAK;EACLC,MAAM;EACNC,mBAAmB;EACnBC,SAAS;EACTC;AACG,CAAC,kBACJnB,KAAA,CAAAoB,aAAA,CAACf,6BAA6B,CAACgB,QAAQ;EAACC,KAAK,EAAE;IAAEf;EAAwB;AAAE,gBACvEP,KAAA,CAAAoB,aAAA;EAAKG,SAAS,EAAC;AAA0B,gBACrCvB,KAAA,CAAAoB,aAAA,CAAClB,MAAM;EACHM,MAAM,EAAEA,MAAO;EACfI,OAAO,EAAEA,OAAQ;EACjBD,cAAc,EAAEA,cAAe;EAC/BI,KAAK,EAAEA,KAAM;EACbG,SAAS,EAAEA,SAAU;EACrBC,KAAK,EAAEA;AAAM,CAChB,CAAC,EACDP,OAAO,CAACY,MAAM,KAAK,CAAC,gBACjBxB,KAAA,CAAAoB,aAAA,CAAChB,YAAY;EAACI,MAAM,EAAEA;AAAO,CAAE,CAAC,gBAEhCR,KAAA,CAAAoB,aAAA,CAACnB,aAAa,qBACVD,KAAA,CAAAoB,aAAA,CAACjB,SAAS;EACNM,wBAAwB,EAAEA,wBAAyB;EACnDG,OAAO,EAAEA,OAAQ;EACjBF,2BAA2B,EAAEA,2BAA4B;EACzDG,cAAc,EAAEA,cAAe;EAC/BC,QAAQ,EAAEA,QAAS;EACnBE,MAAM,EAAEA,MAAO;EACfC,mBAAmB,EAAEA;AAAoB,CAC5C,CACU,CAElB,CAC+B,CAC3C;AAED,eAAeX,sBAAsB","ignoreList":[]}
@@ -5,7 +5,6 @@ import CascadePolicy from '../../CascadePolicy';
5
5
  const baseProps = {
6
6
  canEdit: true,
7
7
  canUseAIFolderExtraction: true,
8
- canUseAIFolderExtractionAgentSelector: true,
9
8
  isAIFolderExtractionEnabled: false,
10
9
  isCascadingEnabled: true,
11
10
  isCascadingOverwritten: false,
@@ -5,7 +5,6 @@ import CascadePolicy from '../../CascadePolicy';
5
5
  const baseProps = {
6
6
  canEdit: true,
7
7
  canUseAIFolderExtraction: true,
8
- canUseAIFolderExtractionAgentSelector: true,
9
8
  isAIFolderExtractionEnabled: false,
10
9
  isCascadingEnabled: true,
11
10
  isCascadingOverwritten: false,
@@ -1 +1 @@
1
- {"version":3,"file":"CascadePolicy-visual.stories.js","names":["React","TooltipProvider","CascadePolicy","baseProps","canEdit","canUseAIFolderExtraction","canUseAIFolderExtractionAgentSelector","isAIFolderExtractionEnabled","isCascadingEnabled","isCascadingOverwritten","isCustomMetadata","onAIFolderExtractionToggle","onCascadeModeChange","onCascadeToggle","shouldShowCascadeOptions","Template","props","createElement","_extends","EnabledCascadePolicyOptionsFieldsOnly","isExistingCascadePolicy","storyName","DisabledCascadePolicyOptionsFieldsOnly","title","component"],"sources":["../../../../../src/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js"],"sourcesContent":["import * as React from 'react';\nimport { TooltipProvider } from '@box/blueprint-web';\nimport CascadePolicy from '../../CascadePolicy';\n\nconst baseProps = {\n canEdit: true,\n canUseAIFolderExtraction: true,\n canUseAIFolderExtractionAgentSelector: true,\n isAIFolderExtractionEnabled: false,\n isCascadingEnabled: true,\n isCascadingOverwritten: false,\n isCustomMetadata: false,\n onAIFolderExtractionToggle: () => {},\n onCascadeModeChange: () => {},\n onCascadeToggle: () => {},\n shouldShowCascadeOptions: true,\n};\n\nconst Template = props => (\n <TooltipProvider>\n <CascadePolicy {...baseProps} {...props} />\n </TooltipProvider>\n);\n\nconst EnabledCascadePolicyOptionsFieldsOnly = () => <Template isExistingCascadePolicy={false} />;\nEnabledCascadePolicyOptionsFieldsOnly.storyName = 'Enabled Cascade Policy Options';\n\nconst DisabledCascadePolicyOptionsFieldsOnly = () => <Template isExistingCascadePolicy={true} />;\nDisabledCascadePolicyOptionsFieldsOnly.storyName = 'Disabled Cascade Policy Options';\n\nexport { EnabledCascadePolicyOptionsFieldsOnly, DisabledCascadePolicyOptionsFieldsOnly };\n\nexport default {\n title: 'Features/Metadata Instance Editor/CascadePolicy/Visual',\n component: CascadePolicy,\n};\n"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,eAAe,QAAQ,oBAAoB;AACpD,OAAOC,aAAa,MAAM,qBAAqB;AAE/C,MAAMC,SAAS,GAAG;EACdC,OAAO,EAAE,IAAI;EACbC,wBAAwB,EAAE,IAAI;EAC9BC,qCAAqC,EAAE,IAAI;EAC3CC,2BAA2B,EAAE,KAAK;EAClCC,kBAAkB,EAAE,IAAI;EACxBC,sBAAsB,EAAE,KAAK;EAC7BC,gBAAgB,EAAE,KAAK;EACvBC,0BAA0B,EAAEA,CAAA,KAAM,CAAC,CAAC;EACpCC,mBAAmB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC7BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,wBAAwB,EAAE;AAC9B,CAAC;AAED,MAAMC,QAAQ,GAAGC,KAAK,iBAClBhB,KAAA,CAAAiB,aAAA,CAAChB,eAAe,qBACZD,KAAA,CAAAiB,aAAA,CAACf,aAAa,EAAAgB,QAAA,KAAKf,SAAS,EAAMa,KAAK,CAAG,CAC7B,CACpB;AAED,MAAMG,qCAAqC,GAAGA,CAAA,kBAAMnB,KAAA,CAAAiB,aAAA,CAACF,QAAQ;EAACK,uBAAuB,EAAE;AAAM,CAAE,CAAC;AAChGD,qCAAqC,CAACE,SAAS,GAAG,gCAAgC;AAElF,MAAMC,sCAAsC,GAAGA,CAAA,kBAAMtB,KAAA,CAAAiB,aAAA,CAACF,QAAQ;EAACK,uBAAuB,EAAE;AAAK,CAAE,CAAC;AAChGE,sCAAsC,CAACD,SAAS,GAAG,iCAAiC;AAEpF,SAASF,qCAAqC,EAAEG,sCAAsC;AAEtF,eAAe;EACXC,KAAK,EAAE,wDAAwD;EAC/DC,SAAS,EAAEtB;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"CascadePolicy-visual.stories.js","names":["React","TooltipProvider","CascadePolicy","baseProps","canEdit","canUseAIFolderExtraction","isAIFolderExtractionEnabled","isCascadingEnabled","isCascadingOverwritten","isCustomMetadata","onAIFolderExtractionToggle","onCascadeModeChange","onCascadeToggle","shouldShowCascadeOptions","Template","props","createElement","_extends","EnabledCascadePolicyOptionsFieldsOnly","isExistingCascadePolicy","storyName","DisabledCascadePolicyOptionsFieldsOnly","title","component"],"sources":["../../../../../src/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js"],"sourcesContent":["import * as React from 'react';\nimport { TooltipProvider } from '@box/blueprint-web';\nimport CascadePolicy from '../../CascadePolicy';\n\nconst baseProps = {\n canEdit: true,\n canUseAIFolderExtraction: true,\n isAIFolderExtractionEnabled: false,\n isCascadingEnabled: true,\n isCascadingOverwritten: false,\n isCustomMetadata: false,\n onAIFolderExtractionToggle: () => {},\n onCascadeModeChange: () => {},\n onCascadeToggle: () => {},\n shouldShowCascadeOptions: true,\n};\n\nconst Template = props => (\n <TooltipProvider>\n <CascadePolicy {...baseProps} {...props} />\n </TooltipProvider>\n);\n\nconst EnabledCascadePolicyOptionsFieldsOnly = () => <Template isExistingCascadePolicy={false} />;\nEnabledCascadePolicyOptionsFieldsOnly.storyName = 'Enabled Cascade Policy Options';\n\nconst DisabledCascadePolicyOptionsFieldsOnly = () => <Template isExistingCascadePolicy={true} />;\nDisabledCascadePolicyOptionsFieldsOnly.storyName = 'Disabled Cascade Policy Options';\n\nexport { EnabledCascadePolicyOptionsFieldsOnly, DisabledCascadePolicyOptionsFieldsOnly };\n\nexport default {\n title: 'Features/Metadata Instance Editor/CascadePolicy/Visual',\n component: CascadePolicy,\n};\n"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,eAAe,QAAQ,oBAAoB;AACpD,OAAOC,aAAa,MAAM,qBAAqB;AAE/C,MAAMC,SAAS,GAAG;EACdC,OAAO,EAAE,IAAI;EACbC,wBAAwB,EAAE,IAAI;EAC9BC,2BAA2B,EAAE,KAAK;EAClCC,kBAAkB,EAAE,IAAI;EACxBC,sBAAsB,EAAE,KAAK;EAC7BC,gBAAgB,EAAE,KAAK;EACvBC,0BAA0B,EAAEA,CAAA,KAAM,CAAC,CAAC;EACpCC,mBAAmB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC7BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,wBAAwB,EAAE;AAC9B,CAAC;AAED,MAAMC,QAAQ,GAAGC,KAAK,iBAClBf,KAAA,CAAAgB,aAAA,CAACf,eAAe,qBACZD,KAAA,CAAAgB,aAAA,CAACd,aAAa,EAAAe,QAAA,KAAKd,SAAS,EAAMY,KAAK,CAAG,CAC7B,CACpB;AAED,MAAMG,qCAAqC,GAAGA,CAAA,kBAAMlB,KAAA,CAAAgB,aAAA,CAACF,QAAQ;EAACK,uBAAuB,EAAE;AAAM,CAAE,CAAC;AAChGD,qCAAqC,CAACE,SAAS,GAAG,gCAAgC;AAElF,MAAMC,sCAAsC,GAAGA,CAAA,kBAAMrB,KAAA,CAAAgB,aAAA,CAACF,QAAQ;EAACK,uBAAuB,EAAE;AAAK,CAAE,CAAC;AAChGE,sCAAsC,CAACD,SAAS,GAAG,iCAAiC;AAEpF,SAASF,qCAAqC,EAAEG,sCAAsC;AAEtF,eAAe;EACXC,KAAK,EAAE,wDAAwD;EAC/DC,SAAS,EAAErB;AACf,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-ui-elements",
3
- "version": "23.5.0-beta.2",
3
+ "version": "23.5.0-beta.3",
4
4
  "description": "Box UI Elements",
5
5
  "author": "Box (https://www.box.com/)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -130,7 +130,7 @@
130
130
  "@babel/types": "^7.24.7",
131
131
  "@box/blueprint-web": "12.43.0",
132
132
  "@box/blueprint-web-assets": "4.61.5",
133
- "@box/box-ai-agent-selector": "^0.52.0",
133
+ "@box/box-ai-agent-selector": "^0.53.0",
134
134
  "@box/box-ai-content-answers": "^0.124.1",
135
135
  "@box/box-item-type-selector": "^0.63.12",
136
136
  "@box/cldr-data": "^34.2.0",
@@ -299,7 +299,7 @@
299
299
  "peerDependencies": {
300
300
  "@box/blueprint-web": "12.43.0",
301
301
  "@box/blueprint-web-assets": "4.61.5",
302
- "@box/box-ai-agent-selector": "^0.52.0",
302
+ "@box/box-ai-agent-selector": "^0.53.0",
303
303
  "@box/box-ai-content-answers": "^0.124.1",
304
304
  "@box/box-item-type-selector": "^0.63.12",
305
305
  "@box/cldr-data": ">=34.2.0",