box-ui-elements 23.4.0-beta.30 → 23.4.0-beta.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/explorer.css +1 -1
- package/dist/explorer.js +1 -1
- package/dist/openwith.js +1 -1
- package/dist/picker.js +1 -1
- package/dist/preview.css +1 -1
- package/dist/preview.js +1 -1
- package/dist/sharing.js +1 -1
- package/dist/sidebar.css +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/uploader.js +1 -1
- package/es/common/types/metadata.js.flow +6 -0
- package/es/common/types/metadata.js.map +1 -1
- package/es/elements/content-sidebar/SidebarNav.js +14 -3
- package/es/elements/content-sidebar/SidebarNav.js.flow +23 -3
- package/es/elements/content-sidebar/SidebarNav.js.map +1 -1
- package/es/elements/content-sidebar/SidebarNavTablist.js +58 -17
- package/es/elements/content-sidebar/SidebarNavTablist.js.flow +80 -21
- package/es/elements/content-sidebar/SidebarNavTablist.js.map +1 -1
- package/es/features/metadata-instance-editor/CascadePolicy.js +53 -23
- package/es/features/metadata-instance-editor/CascadePolicy.js.flow +69 -27
- package/es/features/metadata-instance-editor/CascadePolicy.js.map +1 -1
- package/es/features/metadata-instance-editor/Instance.js +26 -4
- package/es/features/metadata-instance-editor/Instance.js.flow +33 -4
- package/es/features/metadata-instance-editor/Instance.js.map +1 -1
- package/es/features/metadata-instance-editor/constants.js +4 -1
- package/es/features/metadata-instance-editor/constants.js.flow +10 -1
- package/es/features/metadata-instance-editor/constants.js.map +1 -1
- package/es/features/metadata-instance-editor/messages.js +16 -0
- package/es/features/metadata-instance-editor/messages.js.flow +21 -0
- package/es/features/metadata-instance-editor/messages.js.map +1 -1
- package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js +32 -0
- package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.flow +36 -0
- package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.map +1 -0
- package/i18n/bn-IN.js +4 -0
- package/i18n/da-DK.js +4 -0
- package/i18n/de-DE.js +4 -0
- package/i18n/en-AU.js +4 -0
- package/i18n/en-CA.js +4 -0
- package/i18n/en-GB.js +4 -0
- package/i18n/en-US.js +4 -0
- package/i18n/en-US.properties +8 -0
- package/i18n/en-x-pseudo.js +4 -0
- package/i18n/es-419.js +4 -0
- package/i18n/es-ES.js +4 -0
- package/i18n/fi-FI.js +4 -0
- package/i18n/fr-CA.js +4 -0
- package/i18n/fr-FR.js +4 -0
- package/i18n/hi-IN.js +4 -0
- package/i18n/it-IT.js +4 -0
- package/i18n/ja-JP.js +4 -0
- package/i18n/ko-KR.js +4 -0
- package/i18n/nb-NO.js +4 -0
- package/i18n/nl-NL.js +4 -0
- package/i18n/pl-PL.js +4 -0
- package/i18n/pt-BR.js +4 -0
- package/i18n/ru-RU.js +4 -0
- package/i18n/sv-SE.js +4 -0
- package/i18n/tr-TR.js +4 -0
- package/i18n/zh-CN.js +4 -0
- package/i18n/zh-TW.js +4 -0
- package/package.json +7 -7
- package/src/common/types/metadata.js +6 -0
- package/src/elements/content-sidebar/SidebarNav.js +23 -3
- package/src/elements/content-sidebar/SidebarNavTablist.js +80 -21
- package/src/elements/content-sidebar/__tests__/SidebarNav.test.js +99 -147
- package/src/elements/content-sidebar/__tests__/SidebarNavTablist.test.js +189 -42
- package/src/features/metadata-instance-editor/CascadePolicy.js +69 -27
- package/src/features/metadata-instance-editor/Instance.js +33 -4
- package/src/features/metadata-instance-editor/__tests__/CascadePolicy.test.js +70 -63
- package/src/features/metadata-instance-editor/__tests__/Instance.test.js +34 -19
- package/src/features/metadata-instance-editor/__tests__/Instances.test.js +15 -10
- package/src/features/metadata-instance-editor/__tests__/MetadataInstanceEditor.test.js +53 -10
- package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +2 -1
- package/src/features/metadata-instance-editor/constants.js +10 -1
- package/src/features/metadata-instance-editor/messages.js +21 -0
- package/src/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js +36 -0
- package/src/features/metadata-instance-editor/__tests__/__snapshots__/CascadePolicy.test.js.snap +0 -108
|
@@ -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","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","currentData","errors","isAIFolderExtractionEnabled","isCascadingEnabled","isCascadingOverwritten","state","Object","keys","length","createJSONPatch","canEdit","undefined","isEnabled","overwrite","isValid","finalErrors","_objectSpread","finalData","createElement","invalidInput","setDirty","shouldShowCascadeOptions","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","isExistingAIExtractionCascadePolicy","ref","buttonProps","hasStickyHeader","headerActionItems","renderEditButton","isBordered","title","isLoading","confirmationMessage","onCancel","onConfirmCancel","onConfirm","onValidSubmit","isCustomMetadata","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 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 { CASCADE_POLICY_TYPE_AI_EXTRACT, TEMPLATE_CUSTOM_PROPERTIES } 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 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 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 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 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 }\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 * 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 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 isExistingAIExtractionCascadePolicy =\n this.isCascadingEnabledThroughProps(this.props) && this.isAIFolderExtractionEnabledThroughProps(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 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 isExistingAIExtractionCascadePolicy={isExistingAIExtractionCascadePolicy}\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","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 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,4 +1,7 @@
|
|
|
1
1
|
const CASCADE_POLICY_TYPE_AI_EXTRACT = 'ai_extract';
|
|
2
2
|
const TEMPLATE_CUSTOM_PROPERTIES = 'properties';
|
|
3
|
-
|
|
3
|
+
const ENHANCED_AGENT_CONFIGURATION = 'enhanced_extract_agent';
|
|
4
|
+
const STANDARD_AGENT_ID = '1';
|
|
5
|
+
const ENHANCED_AGENT_ID = '2';
|
|
6
|
+
export { CASCADE_POLICY_TYPE_AI_EXTRACT, TEMPLATE_CUSTOM_PROPERTIES, ENHANCED_AGENT_CONFIGURATION, STANDARD_AGENT_ID, ENHANCED_AGENT_ID };
|
|
4
7
|
//# sourceMappingURL=constants.js.map
|
|
@@ -2,5 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
const CASCADE_POLICY_TYPE_AI_EXTRACT = 'ai_extract';
|
|
4
4
|
const TEMPLATE_CUSTOM_PROPERTIES: 'properties' = 'properties';
|
|
5
|
+
const ENHANCED_AGENT_CONFIGURATION = 'enhanced_extract_agent';
|
|
6
|
+
const STANDARD_AGENT_ID = '1';
|
|
7
|
+
const ENHANCED_AGENT_ID = '2';
|
|
5
8
|
|
|
6
|
-
export {
|
|
9
|
+
export {
|
|
10
|
+
CASCADE_POLICY_TYPE_AI_EXTRACT,
|
|
11
|
+
TEMPLATE_CUSTOM_PROPERTIES,
|
|
12
|
+
ENHANCED_AGENT_CONFIGURATION,
|
|
13
|
+
STANDARD_AGENT_ID,
|
|
14
|
+
ENHANCED_AGENT_ID,
|
|
15
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["CASCADE_POLICY_TYPE_AI_EXTRACT","TEMPLATE_CUSTOM_PROPERTIES"],"sources":["../../../src/features/metadata-instance-editor/constants.js"],"sourcesContent":["// @flow\n\nconst CASCADE_POLICY_TYPE_AI_EXTRACT = 'ai_extract';\nconst TEMPLATE_CUSTOM_PROPERTIES: 'properties' = 'properties';\n\nexport {
|
|
1
|
+
{"version":3,"file":"constants.js","names":["CASCADE_POLICY_TYPE_AI_EXTRACT","TEMPLATE_CUSTOM_PROPERTIES","ENHANCED_AGENT_CONFIGURATION","STANDARD_AGENT_ID","ENHANCED_AGENT_ID"],"sources":["../../../src/features/metadata-instance-editor/constants.js"],"sourcesContent":["// @flow\n\nconst CASCADE_POLICY_TYPE_AI_EXTRACT = 'ai_extract';\nconst TEMPLATE_CUSTOM_PROPERTIES: 'properties' = 'properties';\nconst ENHANCED_AGENT_CONFIGURATION = 'enhanced_extract_agent';\nconst STANDARD_AGENT_ID = '1';\nconst ENHANCED_AGENT_ID = '2';\n\nexport {\n CASCADE_POLICY_TYPE_AI_EXTRACT,\n TEMPLATE_CUSTOM_PROPERTIES,\n ENHANCED_AGENT_CONFIGURATION,\n STANDARD_AGENT_ID,\n ENHANCED_AGENT_ID,\n};\n"],"mappings":"AAEA,MAAMA,8BAA8B,GAAG,YAAY;AACnD,MAAMC,0BAAwC,GAAG,YAAY;AAC7D,MAAMC,4BAA4B,GAAG,wBAAwB;AAC7D,MAAMC,iBAAiB,GAAG,GAAG;AAC7B,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,SACIJ,8BAA8B,EAC9BC,0BAA0B,EAC1BC,4BAA4B,EAC5BC,iBAAiB,EACjBC,iBAAiB","ignoreList":[]}
|
|
@@ -156,6 +156,14 @@ const messages = defineMessages({
|
|
|
156
156
|
"id": "boxui.metadataInstanceEditor.cascadePolicyModeQuestion",
|
|
157
157
|
"defaultMessage": "In the case of conflicts when applying this template and its values to existing items, what would you like to do? This is a one time action."
|
|
158
158
|
},
|
|
159
|
+
cascadePolicyOptionsDisabledNotice: {
|
|
160
|
+
"id": "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice",
|
|
161
|
+
"defaultMessage": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one."
|
|
162
|
+
},
|
|
163
|
+
cascadePolicyOptionsDisabledNoticeIconAriaLabel: {
|
|
164
|
+
"id": "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel",
|
|
165
|
+
"defaultMessage": "Disabled cascade options information"
|
|
166
|
+
},
|
|
159
167
|
cascadePolicySkipMode: {
|
|
160
168
|
"id": "boxui.metadataInstanceEditor.cascadePolicySkipMode",
|
|
161
169
|
"defaultMessage": "Skip and keep all existing template values"
|
|
@@ -175,6 +183,14 @@ const messages = defineMessages({
|
|
|
175
183
|
operationNotImmediate: {
|
|
176
184
|
"id": "boxui.metadataInstanceEditor.operationNotImmediate",
|
|
177
185
|
"defaultMessage": "This operation is not immediate and may take some time."
|
|
186
|
+
},
|
|
187
|
+
standardAgentName: {
|
|
188
|
+
"id": "boxui.metadataInstanceEditor.standardAgentName",
|
|
189
|
+
"defaultMessage": "Standard"
|
|
190
|
+
},
|
|
191
|
+
enhancedAgentName: {
|
|
192
|
+
"id": "boxui.metadataInstanceEditor.enhancedAgentName",
|
|
193
|
+
"defaultMessage": "Enhanced"
|
|
178
194
|
}
|
|
179
195
|
});
|
|
180
196
|
export default messages;
|
|
@@ -207,6 +207,17 @@ const messages = defineMessages({
|
|
|
207
207
|
'Tooltip text that asks the user what they want to do when applying cascading to their metadata policy',
|
|
208
208
|
id: 'boxui.metadataInstanceEditor.cascadePolicyModeQuestion',
|
|
209
209
|
},
|
|
210
|
+
cascadePolicyOptionsDisabledNotice: {
|
|
211
|
+
defaultMessage:
|
|
212
|
+
'This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.',
|
|
213
|
+
description: 'Notice that explains that the cascade policy cannot be edited',
|
|
214
|
+
id: 'boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice',
|
|
215
|
+
},
|
|
216
|
+
cascadePolicyOptionsDisabledNoticeIconAriaLabel: {
|
|
217
|
+
defaultMessage: 'Disabled cascade options information',
|
|
218
|
+
description: 'Aria label for the disabled cascade options information icon',
|
|
219
|
+
id: 'boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel',
|
|
220
|
+
},
|
|
210
221
|
cascadePolicySkipMode: {
|
|
211
222
|
defaultMessage: 'Skip and keep all existing template values',
|
|
212
223
|
description: 'Label for radio button that selects skip mode for cascading policy',
|
|
@@ -235,6 +246,16 @@ const messages = defineMessages({
|
|
|
235
246
|
'Informational text below cascade policy description and explains to the user that the policy will take some time to take effect.',
|
|
236
247
|
id: 'boxui.metadataInstanceEditor.operationNotImmediate',
|
|
237
248
|
},
|
|
249
|
+
standardAgentName: {
|
|
250
|
+
defaultMessage: 'Standard',
|
|
251
|
+
description: 'Name of the standard AI agent',
|
|
252
|
+
id: 'boxui.metadataInstanceEditor.standardAgentName',
|
|
253
|
+
},
|
|
254
|
+
enhancedAgentName: {
|
|
255
|
+
defaultMessage: 'Enhanced',
|
|
256
|
+
description: 'Name of the enhanced AI agent',
|
|
257
|
+
id: 'boxui.metadataInstanceEditor.enhancedAgentName',
|
|
258
|
+
},
|
|
238
259
|
});
|
|
239
260
|
|
|
240
261
|
export default messages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","names":["defineMessages","messages","customTitle","customAdd","customRemove","customKey","customKeyPlaceholder","customValue","customValuePlaceholder","customNewField","customNewFieldMessage","customErrorRequired","customErrorDuplicateKey","customErrorInternalKey","invalidInput","metadataEditTooltip","metadataRemoveTemplate","fileMetadataRemoveTemplateConfirm","folderMetadataRemoveTemplateConfirm","fileMetadataRemoveCustomTemplateConfirm","folderMetadataRemoveCustomTemplateConfirm","metadataTemplateSearchPlaceholder","metadataTemplateAdd","metadataTemplatesTitle","metadataTemplatesNoResults","metadataTemplatesFetchFailed","metadataTemplatesNoRemainingTemplates","metadataTemplatesServerHasNoTemplates","metadataSave","metadataCancel","metadataCascadePolicyEnabledInfo","noMetadata","noMetadataAddTemplate","enableCascadePolicy","enableAIAutofill","aiAutofillDescription","aiAutofillLearnMore","applyCascadePolicyText","cannotApplyCascadePolicyText","cascadePolicyLearnMore","cascadePolicyModeQuestion","cascadePolicySkipMode","cascadePolicyOverwriteMode","allAttributesAreHidden","noAttributesForTemplate","operationNotImmediate"],"sources":["../../../src/features/metadata-instance-editor/messages.js"],"sourcesContent":["import { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n customTitle: {\n defaultMessage: 'Custom Metadata',\n description: 'title of the custom metadata card',\n id: 'boxui.metadataInstanceEditor.customTitle',\n },\n customAdd: {\n defaultMessage: 'Add',\n description: 'Label for the add button for custom metadata',\n id: 'boxui.metadataInstanceEditor.customAdd',\n },\n customRemove: {\n defaultMessage: 'Remove',\n description: 'Label for the remove button for custom metadata',\n id: 'boxui.metadataInstanceEditor.customRemove',\n },\n customKey: {\n defaultMessage: 'Key',\n description: 'Label for the key field for custom metadata',\n id: 'boxui.metadataInstanceEditor.customKey',\n },\n customKeyPlaceholder: {\n defaultMessage: 'e.g. Order Number',\n description: 'Placeholder for the key field for custom metadata',\n id: 'boxui.metadataInstanceEditor.customKeyPlaceholder',\n },\n customValue: {\n defaultMessage: 'Value',\n description: 'Label for the value field for custom metadata',\n id: 'boxui.metadataInstanceEditor.customValue',\n },\n customValuePlaceholder: {\n defaultMessage: 'e.g. 42',\n description: 'Placeholder for the value field for custom metadata',\n id: 'boxui.metadataInstanceEditor.customValuePlaceholder',\n },\n customNewField: {\n defaultMessage: 'New Field',\n description: 'Title for the new field section for custom metadata',\n id: 'boxui.metadataInstanceEditor.customNewField',\n },\n customNewFieldMessage: {\n defaultMessage: 'Add a custom metadata field. Other people will be able to see and search for this field.',\n description: 'Description for the new field section for custom metadata',\n id: 'boxui.metadataInstanceEditor.customNewFieldMessage',\n },\n customErrorRequired: {\n defaultMessage: 'A key is required.',\n description: 'Error enforcing required key for custom metadata',\n id: 'boxui.metadataInstanceEditor.customErrorRequired',\n },\n customErrorDuplicateKey: {\n defaultMessage: 'A field with that key already exists.',\n description: 'Error enforcing unique key for custom metadata',\n id: 'boxui.metadataInstanceEditor.customErrorDuplicateKey',\n },\n customErrorInternalKey: {\n defaultMessage: 'Keys cannot begin with a $.',\n description: 'Error enforcing non internal key for custom metadata',\n id: 'boxui.metadataInstanceEditor.customErrorInternalKey',\n },\n invalidInput: {\n defaultMessage: 'Invalid Input!',\n description: 'Error message displayed if the user enters a badly formatted value in metadata text box',\n id: 'boxui.metadataInstanceEditor.invalidValue',\n },\n metadataEditTooltip: {\n defaultMessage: 'Edit Metadata',\n description: 'Text that shows in a tooltip above the edit pencil button.',\n id: 'boxui.metadataInstanceEditor.editTooltip',\n },\n metadataRemoveTemplate: {\n defaultMessage: 'Remove',\n description: 'Label to remove a template',\n id: 'boxui.metadataInstanceEditor.removeTemplate',\n },\n fileMetadataRemoveTemplateConfirm: {\n defaultMessage: 'Are you sure you want to delete \"{metadataName}\" and all of its values from this file?',\n description:\n 'Message for users who may attempt to remove a metadata instance for a file, which is non-recoverable',\n id: 'boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm',\n },\n folderMetadataRemoveTemplateConfirm: {\n defaultMessage:\n 'Are you sure you want to delete \"{metadataName}\" and all of its values? Any metadata template values already applied to files in this folder will not be deleted.',\n description:\n 'Message for users who may attempt to remove a metadata instance for a folder, which is non-recoverable',\n id: 'boxui.metadataInstanceEditor.folderMetadataRemoveTemplateConfirm',\n },\n fileMetadataRemoveCustomTemplateConfirm: {\n defaultMessage: 'Are you sure you want to delete this custom metadata and all of its values from this file?',\n description:\n 'Message for users who may attempt to remove a custom metadata instance for a file. Also non-recoverable',\n id: 'boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm',\n },\n folderMetadataRemoveCustomTemplateConfirm: {\n defaultMessage:\n 'Are you sure you want to delete this custom metadata and all of its values? Any metadata template values already applied to files in this folder will not be deleted.',\n description:\n 'Message for users who may attempt to remove a custom metadata instance for a folder. Also non-recoverable',\n id: 'boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm',\n },\n metadataTemplateSearchPlaceholder: {\n defaultMessage: 'Search all templates',\n description: 'Placeholder to search for all templates',\n id: 'boxui.metadataInstanceEditor.templateSearchPlaceholder',\n },\n metadataTemplateAdd: {\n defaultMessage: 'Add',\n description: 'Label to add a template',\n id: 'boxui.metadataInstanceEditor.templateAdd',\n },\n metadataTemplatesTitle: {\n defaultMessage: 'Templates',\n description: 'Overall title of metadata',\n id: 'boxui.metadataInstanceEditor.templatesTitle',\n },\n metadataTemplatesNoResults: {\n defaultMessage: 'No Results',\n description: 'Text to indicate no templates found by searching',\n id: 'boxui.metadataInstanceEditor.templatesNoResults',\n },\n metadataTemplatesFetchFailed: {\n defaultMessage: 'Sorry! We could not fetch templates. Please contact your administrator',\n description: 'Text to indicate that we failed to fetch templates',\n id: 'boxui.metadataInstanceEditor.templatesFetchFailed',\n },\n metadataTemplatesNoRemainingTemplates: {\n defaultMessage: 'All templates have been added',\n description: 'Text to indicate that all the templates have been added',\n id: 'boxui.metadataInstanceEditor.templatesNoRemainingTemplates',\n },\n metadataTemplatesServerHasNoTemplates: {\n defaultMessage: 'Zero templates',\n description: 'Text to indicate that the server has no templates',\n id: 'boxui.metadataInstanceEditor.templatesServerHasNoTemplates',\n },\n metadataSave: {\n defaultMessage: 'Save',\n description: 'Label for save button',\n id: 'boxui.metadataInstanceEditor.metadataSave',\n },\n metadataCancel: {\n defaultMessage: 'Cancel',\n description: 'Label for cancel button',\n id: 'boxui.metadataInstanceEditor.metadataCancel',\n },\n metadataCascadePolicyEnabledInfo: {\n defaultMessage:\n 'This template and its values are being cascaded to all items in this folder and its subfolders.',\n description: 'Informational text shown in metadata modal when cascading is turned on for current folder',\n id: 'boxui.metadataInstanceEditor.metadataCascadePolicyEnabledInfo',\n },\n noMetadata: {\n defaultMessage: 'No Metadata Applied',\n description: 'Text to display when no metadata is applied to folder',\n id: 'boxui.metadataInstanceEditor.noMetadata',\n },\n noMetadataAddTemplate: {\n defaultMessage: \"Click 'Add' in the top right to add metadata to this item\",\n description: 'Instructions to create metadata for the selected folder',\n id: 'boxui.metadataInstanceEditor.noMetadataAddTemplate',\n },\n enableCascadePolicy: {\n defaultMessage: 'Enable Cascade Policy',\n description: 'Label for enable cascade policy toggle switch',\n id: 'boxui.metadataInstanceEditor.enableCascadePolicy',\n },\n enableAIAutofill: {\n defaultMessage: 'Box AI Autofill',\n description: 'Label for enable AI autofill toggle switch',\n id: 'boxui.metadataInstanceEditor.enableAIAutofill',\n },\n aiAutofillDescription: {\n defaultMessage: 'Use Box AI to automatically extract metadata values.',\n description: 'Description for AI autofill toggle switch',\n id: 'boxui.metadataInstanceEditor.aiAutofillDescription',\n },\n aiAutofillLearnMore: {\n defaultMessage: 'Learn more',\n description: 'Learn more link for AI autofill',\n id: 'boxui.metadataInstanceEditor.aiAutofillLearnMore',\n },\n applyCascadePolicyText: {\n defaultMessage:\n 'Apply template and its values to all new and existing items in this folder and its subfolders.',\n description: 'Informational text below enable cascade policy toggle switch',\n id: 'boxui.metadataInstanceEditor.applyCascadePolicyText',\n },\n cannotApplyCascadePolicyText: {\n defaultMessage: 'Cascade policy cannot be applied to custom metadata at this time.',\n description:\n 'Informational text below enable cascade policy toggle switch indicating that cascade policy cannot be applied',\n id: 'boxui.metadataInstanceEditor.cannotApplyCascadePolicyText',\n },\n cascadePolicyLearnMore: {\n defaultMessage: 'Learn more',\n description: 'Tooltip text a user can use to learn more about cascading metadata policy',\n id: 'boxui.metadataInstanceEditor.cascadePolicyLearnMore',\n },\n cascadePolicyModeQuestion: {\n defaultMessage:\n 'In the case of conflicts when applying this template and its values to existing items, what would you like to do? This is a one time action.',\n description:\n 'Tooltip text that asks the user what they want to do when applying cascading to their metadata policy',\n id: 'boxui.metadataInstanceEditor.cascadePolicyModeQuestion',\n },\n cascadePolicySkipMode: {\n defaultMessage: 'Skip and keep all existing template values',\n description: 'Label for radio button that selects skip mode for cascading policy',\n id: 'boxui.metadataInstanceEditor.cascadePolicySkipMode',\n },\n cascadePolicyOverwriteMode: {\n defaultMessage: 'Overwrite all existing template values',\n description: 'Label for radio button that selects overwrite mode for cascading policy',\n id: 'boxui.metadataInstanceEditor.cascadePolicyOverwriteMode',\n },\n allAttributesAreHidden: {\n defaultMessage: 'All attributes in this template have been hidden.',\n description:\n 'Informational text below collapsible header indicating that all fields for this template are hidden',\n id: 'boxui.metadataInstanceEditor.allAttributesAreHidden',\n },\n noAttributesForTemplate: {\n defaultMessage: 'There are no attributes in this template.',\n description:\n 'Informational text below collapsible header indicating that there are no attributes for this template',\n id: 'boxui.metadataInstanceEditor.noAttributesForTemplate',\n },\n operationNotImmediate: {\n defaultMessage: 'This operation is not immediate and may take some time.',\n description:\n 'Informational text below cascade policy description and explains to the user that the policy will take some time to take effect.',\n id: 'boxui.metadataInstanceEditor.operationNotImmediate',\n },\n});\n\nexport default messages;\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,YAAY;AAE3C,MAAMC,QAAQ,GAAGD,cAAc,CAAC;EAC5BE,WAAW;IAAA;IAAA;EAAA,CAIV;EACDC,SAAS;IAAA;IAAA;EAAA,CAIR;EACDC,YAAY;IAAA;IAAA;EAAA,CAIX;EACDC,SAAS;IAAA;IAAA;EAAA,CAIR;EACDC,oBAAoB;IAAA;IAAA;EAAA,CAInB;EACDC,WAAW;IAAA;IAAA;EAAA,CAIV;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,cAAc;IAAA;IAAA;EAAA,CAIb;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAIpB;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,uBAAuB;IAAA;IAAA;EAAA,CAItB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,YAAY;IAAA;IAAA;EAAA,CAIX;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,iCAAiC;IAAA;IAAA;EAAA,CAKhC;EACDC,mCAAmC;IAAA;IAAA;EAAA,CAMlC;EACDC,uCAAuC;IAAA;IAAA;EAAA,CAKtC;EACDC,yCAAyC;IAAA;IAAA;EAAA,CAMxC;EACDC,iCAAiC;IAAA;IAAA;EAAA,CAIhC;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,0BAA0B;IAAA;IAAA;EAAA,CAIzB;EACDC,4BAA4B;IAAA;IAAA;EAAA,CAI3B;EACDC,qCAAqC;IAAA;IAAA;EAAA,CAIpC;EACDC,qCAAqC;IAAA;IAAA;EAAA,CAIpC;EACDC,YAAY;IAAA;IAAA;EAAA,CAIX;EACDC,cAAc;IAAA;IAAA;EAAA,CAIb;EACDC,gCAAgC;IAAA;IAAA;EAAA,CAK/B;EACDC,UAAU;IAAA;IAAA;EAAA,CAIT;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAIpB;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,gBAAgB;IAAA;IAAA;EAAA,CAIf;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAIpB;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAKrB;EACDC,4BAA4B;IAAA;IAAA;EAAA,CAK3B;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,yBAAyB;IAAA;IAAA;EAAA,CAMxB;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAIpB;EACDC,0BAA0B;IAAA;IAAA;EAAA,CAIzB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAKrB;EACDC,uBAAuB;IAAA;IAAA;EAAA,CAKtB;EACDC,qBAAqB;IAAA;IAAA;EAAA;AAMzB,CAAC,CAAC;AAEF,eAAe5C,QAAQ","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"messages.js","names":["defineMessages","messages","customTitle","customAdd","customRemove","customKey","customKeyPlaceholder","customValue","customValuePlaceholder","customNewField","customNewFieldMessage","customErrorRequired","customErrorDuplicateKey","customErrorInternalKey","invalidInput","metadataEditTooltip","metadataRemoveTemplate","fileMetadataRemoveTemplateConfirm","folderMetadataRemoveTemplateConfirm","fileMetadataRemoveCustomTemplateConfirm","folderMetadataRemoveCustomTemplateConfirm","metadataTemplateSearchPlaceholder","metadataTemplateAdd","metadataTemplatesTitle","metadataTemplatesNoResults","metadataTemplatesFetchFailed","metadataTemplatesNoRemainingTemplates","metadataTemplatesServerHasNoTemplates","metadataSave","metadataCancel","metadataCascadePolicyEnabledInfo","noMetadata","noMetadataAddTemplate","enableCascadePolicy","enableAIAutofill","aiAutofillDescription","aiAutofillLearnMore","applyCascadePolicyText","cannotApplyCascadePolicyText","cascadePolicyLearnMore","cascadePolicyModeQuestion","cascadePolicyOptionsDisabledNotice","cascadePolicyOptionsDisabledNoticeIconAriaLabel","cascadePolicySkipMode","cascadePolicyOverwriteMode","allAttributesAreHidden","noAttributesForTemplate","operationNotImmediate","standardAgentName","enhancedAgentName"],"sources":["../../../src/features/metadata-instance-editor/messages.js"],"sourcesContent":["import { defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n customTitle: {\n defaultMessage: 'Custom Metadata',\n description: 'title of the custom metadata card',\n id: 'boxui.metadataInstanceEditor.customTitle',\n },\n customAdd: {\n defaultMessage: 'Add',\n description: 'Label for the add button for custom metadata',\n id: 'boxui.metadataInstanceEditor.customAdd',\n },\n customRemove: {\n defaultMessage: 'Remove',\n description: 'Label for the remove button for custom metadata',\n id: 'boxui.metadataInstanceEditor.customRemove',\n },\n customKey: {\n defaultMessage: 'Key',\n description: 'Label for the key field for custom metadata',\n id: 'boxui.metadataInstanceEditor.customKey',\n },\n customKeyPlaceholder: {\n defaultMessage: 'e.g. Order Number',\n description: 'Placeholder for the key field for custom metadata',\n id: 'boxui.metadataInstanceEditor.customKeyPlaceholder',\n },\n customValue: {\n defaultMessage: 'Value',\n description: 'Label for the value field for custom metadata',\n id: 'boxui.metadataInstanceEditor.customValue',\n },\n customValuePlaceholder: {\n defaultMessage: 'e.g. 42',\n description: 'Placeholder for the value field for custom metadata',\n id: 'boxui.metadataInstanceEditor.customValuePlaceholder',\n },\n customNewField: {\n defaultMessage: 'New Field',\n description: 'Title for the new field section for custom metadata',\n id: 'boxui.metadataInstanceEditor.customNewField',\n },\n customNewFieldMessage: {\n defaultMessage: 'Add a custom metadata field. Other people will be able to see and search for this field.',\n description: 'Description for the new field section for custom metadata',\n id: 'boxui.metadataInstanceEditor.customNewFieldMessage',\n },\n customErrorRequired: {\n defaultMessage: 'A key is required.',\n description: 'Error enforcing required key for custom metadata',\n id: 'boxui.metadataInstanceEditor.customErrorRequired',\n },\n customErrorDuplicateKey: {\n defaultMessage: 'A field with that key already exists.',\n description: 'Error enforcing unique key for custom metadata',\n id: 'boxui.metadataInstanceEditor.customErrorDuplicateKey',\n },\n customErrorInternalKey: {\n defaultMessage: 'Keys cannot begin with a $.',\n description: 'Error enforcing non internal key for custom metadata',\n id: 'boxui.metadataInstanceEditor.customErrorInternalKey',\n },\n invalidInput: {\n defaultMessage: 'Invalid Input!',\n description: 'Error message displayed if the user enters a badly formatted value in metadata text box',\n id: 'boxui.metadataInstanceEditor.invalidValue',\n },\n metadataEditTooltip: {\n defaultMessage: 'Edit Metadata',\n description: 'Text that shows in a tooltip above the edit pencil button.',\n id: 'boxui.metadataInstanceEditor.editTooltip',\n },\n metadataRemoveTemplate: {\n defaultMessage: 'Remove',\n description: 'Label to remove a template',\n id: 'boxui.metadataInstanceEditor.removeTemplate',\n },\n fileMetadataRemoveTemplateConfirm: {\n defaultMessage: 'Are you sure you want to delete \"{metadataName}\" and all of its values from this file?',\n description:\n 'Message for users who may attempt to remove a metadata instance for a file, which is non-recoverable',\n id: 'boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm',\n },\n folderMetadataRemoveTemplateConfirm: {\n defaultMessage:\n 'Are you sure you want to delete \"{metadataName}\" and all of its values? Any metadata template values already applied to files in this folder will not be deleted.',\n description:\n 'Message for users who may attempt to remove a metadata instance for a folder, which is non-recoverable',\n id: 'boxui.metadataInstanceEditor.folderMetadataRemoveTemplateConfirm',\n },\n fileMetadataRemoveCustomTemplateConfirm: {\n defaultMessage: 'Are you sure you want to delete this custom metadata and all of its values from this file?',\n description:\n 'Message for users who may attempt to remove a custom metadata instance for a file. Also non-recoverable',\n id: 'boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm',\n },\n folderMetadataRemoveCustomTemplateConfirm: {\n defaultMessage:\n 'Are you sure you want to delete this custom metadata and all of its values? Any metadata template values already applied to files in this folder will not be deleted.',\n description:\n 'Message for users who may attempt to remove a custom metadata instance for a folder. Also non-recoverable',\n id: 'boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm',\n },\n metadataTemplateSearchPlaceholder: {\n defaultMessage: 'Search all templates',\n description: 'Placeholder to search for all templates',\n id: 'boxui.metadataInstanceEditor.templateSearchPlaceholder',\n },\n metadataTemplateAdd: {\n defaultMessage: 'Add',\n description: 'Label to add a template',\n id: 'boxui.metadataInstanceEditor.templateAdd',\n },\n metadataTemplatesTitle: {\n defaultMessage: 'Templates',\n description: 'Overall title of metadata',\n id: 'boxui.metadataInstanceEditor.templatesTitle',\n },\n metadataTemplatesNoResults: {\n defaultMessage: 'No Results',\n description: 'Text to indicate no templates found by searching',\n id: 'boxui.metadataInstanceEditor.templatesNoResults',\n },\n metadataTemplatesFetchFailed: {\n defaultMessage: 'Sorry! We could not fetch templates. Please contact your administrator',\n description: 'Text to indicate that we failed to fetch templates',\n id: 'boxui.metadataInstanceEditor.templatesFetchFailed',\n },\n metadataTemplatesNoRemainingTemplates: {\n defaultMessage: 'All templates have been added',\n description: 'Text to indicate that all the templates have been added',\n id: 'boxui.metadataInstanceEditor.templatesNoRemainingTemplates',\n },\n metadataTemplatesServerHasNoTemplates: {\n defaultMessage: 'Zero templates',\n description: 'Text to indicate that the server has no templates',\n id: 'boxui.metadataInstanceEditor.templatesServerHasNoTemplates',\n },\n metadataSave: {\n defaultMessage: 'Save',\n description: 'Label for save button',\n id: 'boxui.metadataInstanceEditor.metadataSave',\n },\n metadataCancel: {\n defaultMessage: 'Cancel',\n description: 'Label for cancel button',\n id: 'boxui.metadataInstanceEditor.metadataCancel',\n },\n metadataCascadePolicyEnabledInfo: {\n defaultMessage:\n 'This template and its values are being cascaded to all items in this folder and its subfolders.',\n description: 'Informational text shown in metadata modal when cascading is turned on for current folder',\n id: 'boxui.metadataInstanceEditor.metadataCascadePolicyEnabledInfo',\n },\n noMetadata: {\n defaultMessage: 'No Metadata Applied',\n description: 'Text to display when no metadata is applied to folder',\n id: 'boxui.metadataInstanceEditor.noMetadata',\n },\n noMetadataAddTemplate: {\n defaultMessage: \"Click 'Add' in the top right to add metadata to this item\",\n description: 'Instructions to create metadata for the selected folder',\n id: 'boxui.metadataInstanceEditor.noMetadataAddTemplate',\n },\n enableCascadePolicy: {\n defaultMessage: 'Enable Cascade Policy',\n description: 'Label for enable cascade policy toggle switch',\n id: 'boxui.metadataInstanceEditor.enableCascadePolicy',\n },\n enableAIAutofill: {\n defaultMessage: 'Box AI Autofill',\n description: 'Label for enable AI autofill toggle switch',\n id: 'boxui.metadataInstanceEditor.enableAIAutofill',\n },\n aiAutofillDescription: {\n defaultMessage: 'Use Box AI to automatically extract metadata values.',\n description: 'Description for AI autofill toggle switch',\n id: 'boxui.metadataInstanceEditor.aiAutofillDescription',\n },\n aiAutofillLearnMore: {\n defaultMessage: 'Learn more',\n description: 'Learn more link for AI autofill',\n id: 'boxui.metadataInstanceEditor.aiAutofillLearnMore',\n },\n applyCascadePolicyText: {\n defaultMessage:\n 'Apply template and its values to all new and existing items in this folder and its subfolders.',\n description: 'Informational text below enable cascade policy toggle switch',\n id: 'boxui.metadataInstanceEditor.applyCascadePolicyText',\n },\n cannotApplyCascadePolicyText: {\n defaultMessage: 'Cascade policy cannot be applied to custom metadata at this time.',\n description:\n 'Informational text below enable cascade policy toggle switch indicating that cascade policy cannot be applied',\n id: 'boxui.metadataInstanceEditor.cannotApplyCascadePolicyText',\n },\n cascadePolicyLearnMore: {\n defaultMessage: 'Learn more',\n description: 'Tooltip text a user can use to learn more about cascading metadata policy',\n id: 'boxui.metadataInstanceEditor.cascadePolicyLearnMore',\n },\n cascadePolicyModeQuestion: {\n defaultMessage:\n 'In the case of conflicts when applying this template and its values to existing items, what would you like to do? This is a one time action.',\n description:\n 'Tooltip text that asks the user what they want to do when applying cascading to their metadata policy',\n id: 'boxui.metadataInstanceEditor.cascadePolicyModeQuestion',\n },\n cascadePolicyOptionsDisabledNotice: {\n defaultMessage:\n 'This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.',\n description: 'Notice that explains that the cascade policy cannot be edited',\n id: 'boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice',\n },\n cascadePolicyOptionsDisabledNoticeIconAriaLabel: {\n defaultMessage: 'Disabled cascade options information',\n description: 'Aria label for the disabled cascade options information icon',\n id: 'boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel',\n },\n cascadePolicySkipMode: {\n defaultMessage: 'Skip and keep all existing template values',\n description: 'Label for radio button that selects skip mode for cascading policy',\n id: 'boxui.metadataInstanceEditor.cascadePolicySkipMode',\n },\n cascadePolicyOverwriteMode: {\n defaultMessage: 'Overwrite all existing template values',\n description: 'Label for radio button that selects overwrite mode for cascading policy',\n id: 'boxui.metadataInstanceEditor.cascadePolicyOverwriteMode',\n },\n allAttributesAreHidden: {\n defaultMessage: 'All attributes in this template have been hidden.',\n description:\n 'Informational text below collapsible header indicating that all fields for this template are hidden',\n id: 'boxui.metadataInstanceEditor.allAttributesAreHidden',\n },\n noAttributesForTemplate: {\n defaultMessage: 'There are no attributes in this template.',\n description:\n 'Informational text below collapsible header indicating that there are no attributes for this template',\n id: 'boxui.metadataInstanceEditor.noAttributesForTemplate',\n },\n operationNotImmediate: {\n defaultMessage: 'This operation is not immediate and may take some time.',\n description:\n 'Informational text below cascade policy description and explains to the user that the policy will take some time to take effect.',\n id: 'boxui.metadataInstanceEditor.operationNotImmediate',\n },\n standardAgentName: {\n defaultMessage: 'Standard',\n description: 'Name of the standard AI agent',\n id: 'boxui.metadataInstanceEditor.standardAgentName',\n },\n enhancedAgentName: {\n defaultMessage: 'Enhanced',\n description: 'Name of the enhanced AI agent',\n id: 'boxui.metadataInstanceEditor.enhancedAgentName',\n },\n});\n\nexport default messages;\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,YAAY;AAE3C,MAAMC,QAAQ,GAAGD,cAAc,CAAC;EAC5BE,WAAW;IAAA;IAAA;EAAA,CAIV;EACDC,SAAS;IAAA;IAAA;EAAA,CAIR;EACDC,YAAY;IAAA;IAAA;EAAA,CAIX;EACDC,SAAS;IAAA;IAAA;EAAA,CAIR;EACDC,oBAAoB;IAAA;IAAA;EAAA,CAInB;EACDC,WAAW;IAAA;IAAA;EAAA,CAIV;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,cAAc;IAAA;IAAA;EAAA,CAIb;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAIpB;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,uBAAuB;IAAA;IAAA;EAAA,CAItB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,YAAY;IAAA;IAAA;EAAA,CAIX;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,iCAAiC;IAAA;IAAA;EAAA,CAKhC;EACDC,mCAAmC;IAAA;IAAA;EAAA,CAMlC;EACDC,uCAAuC;IAAA;IAAA;EAAA,CAKtC;EACDC,yCAAyC;IAAA;IAAA;EAAA,CAMxC;EACDC,iCAAiC;IAAA;IAAA;EAAA,CAIhC;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,0BAA0B;IAAA;IAAA;EAAA,CAIzB;EACDC,4BAA4B;IAAA;IAAA;EAAA,CAI3B;EACDC,qCAAqC;IAAA;IAAA;EAAA,CAIpC;EACDC,qCAAqC;IAAA;IAAA;EAAA,CAIpC;EACDC,YAAY;IAAA;IAAA;EAAA,CAIX;EACDC,cAAc;IAAA;IAAA;EAAA,CAIb;EACDC,gCAAgC;IAAA;IAAA;EAAA,CAK/B;EACDC,UAAU;IAAA;IAAA;EAAA,CAIT;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAIpB;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,gBAAgB;IAAA;IAAA;EAAA,CAIf;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAIpB;EACDC,mBAAmB;IAAA;IAAA;EAAA,CAIlB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAKrB;EACDC,4BAA4B;IAAA;IAAA;EAAA,CAK3B;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAIrB;EACDC,yBAAyB;IAAA;IAAA;EAAA,CAMxB;EACDC,kCAAkC;IAAA;IAAA;EAAA,CAKjC;EACDC,+CAA+C;IAAA;IAAA;EAAA,CAI9C;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAIpB;EACDC,0BAA0B;IAAA;IAAA;EAAA,CAIzB;EACDC,sBAAsB;IAAA;IAAA;EAAA,CAKrB;EACDC,uBAAuB;IAAA;IAAA;EAAA,CAKtB;EACDC,qBAAqB;IAAA;IAAA;EAAA,CAKpB;EACDC,iBAAiB;IAAA;IAAA;EAAA,CAIhB;EACDC,iBAAiB;IAAA;IAAA;EAAA;AAKrB,CAAC,CAAC;AAEF,eAAehD,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { TooltipProvider } from '@box/blueprint-web';
|
|
4
|
+
import CascadePolicy from '../../CascadePolicy';
|
|
5
|
+
const baseProps = {
|
|
6
|
+
canEdit: true,
|
|
7
|
+
canUseAIFolderExtraction: true,
|
|
8
|
+
canUseAIFolderExtractionAgentSelector: true,
|
|
9
|
+
isAIFolderExtractionEnabled: false,
|
|
10
|
+
isCascadingEnabled: true,
|
|
11
|
+
isCascadingOverwritten: false,
|
|
12
|
+
isCustomMetadata: false,
|
|
13
|
+
onAIFolderExtractionToggle: () => {},
|
|
14
|
+
onCascadeModeChange: () => {},
|
|
15
|
+
onCascadeToggle: () => {},
|
|
16
|
+
shouldShowCascadeOptions: true
|
|
17
|
+
};
|
|
18
|
+
const Template = props => /*#__PURE__*/React.createElement(TooltipProvider, null, /*#__PURE__*/React.createElement(CascadePolicy, _extends({}, baseProps, props)));
|
|
19
|
+
const EnabledCascadePolicyOptionsFieldsOnly = () => /*#__PURE__*/React.createElement(Template, {
|
|
20
|
+
isExistingCascadePolicy: false
|
|
21
|
+
});
|
|
22
|
+
EnabledCascadePolicyOptionsFieldsOnly.storyName = 'Enabled Cascade Policy Options';
|
|
23
|
+
const DisabledCascadePolicyOptionsFieldsOnly = () => /*#__PURE__*/React.createElement(Template, {
|
|
24
|
+
isExistingCascadePolicy: true
|
|
25
|
+
});
|
|
26
|
+
DisabledCascadePolicyOptionsFieldsOnly.storyName = 'Disabled Cascade Policy Options';
|
|
27
|
+
export { EnabledCascadePolicyOptionsFieldsOnly, DisabledCascadePolicyOptionsFieldsOnly };
|
|
28
|
+
export default {
|
|
29
|
+
title: 'Features/Metadata Instance Editor/CascadePolicy/Visual',
|
|
30
|
+
component: CascadePolicy
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=CascadePolicy-visual.stories.js.map
|
package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.flow
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { TooltipProvider } from '@box/blueprint-web';
|
|
3
|
+
import CascadePolicy from '../../CascadePolicy';
|
|
4
|
+
|
|
5
|
+
const baseProps = {
|
|
6
|
+
canEdit: true,
|
|
7
|
+
canUseAIFolderExtraction: true,
|
|
8
|
+
canUseAIFolderExtractionAgentSelector: true,
|
|
9
|
+
isAIFolderExtractionEnabled: false,
|
|
10
|
+
isCascadingEnabled: true,
|
|
11
|
+
isCascadingOverwritten: false,
|
|
12
|
+
isCustomMetadata: false,
|
|
13
|
+
onAIFolderExtractionToggle: () => {},
|
|
14
|
+
onCascadeModeChange: () => {},
|
|
15
|
+
onCascadeToggle: () => {},
|
|
16
|
+
shouldShowCascadeOptions: true,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const Template = props => (
|
|
20
|
+
<TooltipProvider>
|
|
21
|
+
<CascadePolicy {...baseProps} {...props} />
|
|
22
|
+
</TooltipProvider>
|
|
23
|
+
);
|
|
24
|
+
|
|
25
|
+
const EnabledCascadePolicyOptionsFieldsOnly = () => <Template isExistingCascadePolicy={false} />;
|
|
26
|
+
EnabledCascadePolicyOptionsFieldsOnly.storyName = 'Enabled Cascade Policy Options';
|
|
27
|
+
|
|
28
|
+
const DisabledCascadePolicyOptionsFieldsOnly = () => <Template isExistingCascadePolicy={true} />;
|
|
29
|
+
DisabledCascadePolicyOptionsFieldsOnly.storyName = 'Disabled Cascade Policy Options';
|
|
30
|
+
|
|
31
|
+
export { EnabledCascadePolicyOptionsFieldsOnly, DisabledCascadePolicyOptionsFieldsOnly };
|
|
32
|
+
|
|
33
|
+
export default {
|
|
34
|
+
title: 'Features/Metadata Instance Editor/CascadePolicy/Visual',
|
|
35
|
+
component: CascadePolicy,
|
|
36
|
+
};
|
package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.map
ADDED
|
@@ -0,0 +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":[]}
|
package/i18n/bn-IN.js
CHANGED
|
@@ -612,6 +612,8 @@ export default {
|
|
|
612
612
|
"boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "এই মুহূর্তে কাসকেড নীতি কাস্টম মেটাডেটায় প্রযোজ্য হবে না।",
|
|
613
613
|
"boxui.metadataInstanceEditor.cascadePolicyLearnMore": "আরও জানুন",
|
|
614
614
|
"boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "এই টেমপ্লেটটি এবং এর মান বিদ্যমান আইটেমগুলোতে প্রয়োগ করার সময় অসুবিধা হলে আপনি কী করতে চাইবেন? এটি একবার করতে হবে।",
|
|
615
|
+
"boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
|
|
616
|
+
"boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
|
|
615
617
|
"boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "সমস্ত বিদ্যমান টেমপ্লেটের মান ওভাররাইট করুন",
|
|
616
618
|
"boxui.metadataInstanceEditor.cascadePolicySkipMode": "স্কিপ করে সমস্ত বিদ্যমান টেমপ্লেটের মান রাখুন",
|
|
617
619
|
"boxui.metadataInstanceEditor.customAdd": "যোগ করুন",
|
|
@@ -629,6 +631,7 @@ export default {
|
|
|
629
631
|
"boxui.metadataInstanceEditor.editTooltip": "মেটাডেটা সম্পাদনা করুন",
|
|
630
632
|
"boxui.metadataInstanceEditor.enableAIAutofill": "Box AI অটোফিল",
|
|
631
633
|
"boxui.metadataInstanceEditor.enableCascadePolicy": "ক্যাসকেড নীতি সক্ষম করুন",
|
|
634
|
+
"boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
|
|
632
635
|
"boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "আপনি কি এই কাস্টম মেটাডেটা এবং এর সমস্ত মান মুছতে চাওয়ার বিষয়ে নিশ্চিত?",
|
|
633
636
|
"boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "আপনি কি এই ফাইলটি থেকে \"{metadataName}\" এবং এর সমস্ত মান মুছতে চাওয়ার বিষয়ে নিশ্চিত?",
|
|
634
637
|
"boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "আপনি কি এই কাস্টম মেটাডেটা এবং এর সমস্ত মান মোছার ব্যাপারে নিশ্চিত?এই ফোল্ডারের ফাইলগুলিতে ইতিমধ্যে প্রযোজ্য যেকোনও মেটাডেটা টেমপ্লেটের মান মোছা হবে না।",
|
|
@@ -642,6 +645,7 @@ export default {
|
|
|
642
645
|
"boxui.metadataInstanceEditor.noMetadataAddTemplate": "এই আইটেমে মেটাডেটা যোগ করতে উপরের ডানদিকে 'যোগ করুন' ক্লিক করুন",
|
|
643
646
|
"boxui.metadataInstanceEditor.operationNotImmediate": "এই ক্রিয়াকলাপটি সঙ্গে সঙ্গে ঘটবে না এবং এটি কিছু সময় নিতে পারে।",
|
|
644
647
|
"boxui.metadataInstanceEditor.removeTemplate": "অপসারণ করুন",
|
|
648
|
+
"boxui.metadataInstanceEditor.standardAgentName": "Standard",
|
|
645
649
|
"boxui.metadataInstanceEditor.templateAdd": "যোগ করুন",
|
|
646
650
|
"boxui.metadataInstanceEditor.templateSearchPlaceholder": "সমস্ত টেমপ্লেট অনুসন্ধান করুন",
|
|
647
651
|
"boxui.metadataInstanceEditor.templatesFetchFailed": "দুঃখিত! আমরা টেমপ্লেট আনতে পারি নি। অনুগ্রহ করে আপনার প্রশাসকের সাথে যোগাযোগ করুন",
|
package/i18n/da-DK.js
CHANGED
|
@@ -612,6 +612,8 @@ export default {
|
|
|
612
612
|
"boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Cascade-politik kan ikke anvendes til brugerdefinerede metadata på dette tidspunkt.",
|
|
613
613
|
"boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Få mere at vide",
|
|
614
614
|
"boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Hvad vil du gøre i tilfælde af konflikter ved anvendelse af denne skabelon og dens værdier på eksisterende elementer? Denne handling skal kun udføres én gang.",
|
|
615
|
+
"boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
|
|
616
|
+
"boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
|
|
615
617
|
"boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Overskriv alle eksisterende skabelonværdier",
|
|
616
618
|
"boxui.metadataInstanceEditor.cascadePolicySkipMode": "Spring over, og behold alle eksisterende skabelonværdier",
|
|
617
619
|
"boxui.metadataInstanceEditor.customAdd": "Tilføj",
|
|
@@ -629,6 +631,7 @@ export default {
|
|
|
629
631
|
"boxui.metadataInstanceEditor.editTooltip": "Rediger metadata",
|
|
630
632
|
"boxui.metadataInstanceEditor.enableAIAutofill": "Box AI automatisk udfyldning",
|
|
631
633
|
"boxui.metadataInstanceEditor.enableCascadePolicy": "Aktivér cascade-politik",
|
|
634
|
+
"boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
|
|
632
635
|
"boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Er du sikker på, at du vil slette disse brugerdefinerede metadata og alle deres værdier fra denne fil?",
|
|
633
636
|
"boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Er du sikker på, at du vil slette \"{metadataName}\" og alle deres værdier fra denne fil?",
|
|
634
637
|
"boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Vil du slette disse brugerdefinerede metadata og alle deres værdier? Eventuelle metadataskabelonværdier, som allerede er anvendt på filer i denne mappe, bliver ikke slettet.",
|
|
@@ -642,6 +645,7 @@ export default {
|
|
|
642
645
|
"boxui.metadataInstanceEditor.noMetadataAddTemplate": "Klik på \"Tilføj\" øverst til højre for at føje metadata til dette element",
|
|
643
646
|
"boxui.metadataInstanceEditor.operationNotImmediate": "Denne handling er ikke øjeblikkelig og kan tage et stykke tid.",
|
|
644
647
|
"boxui.metadataInstanceEditor.removeTemplate": "Fjern",
|
|
648
|
+
"boxui.metadataInstanceEditor.standardAgentName": "Standard",
|
|
645
649
|
"boxui.metadataInstanceEditor.templateAdd": "Tilføj",
|
|
646
650
|
"boxui.metadataInstanceEditor.templateSearchPlaceholder": "Søg i alle skabeloner",
|
|
647
651
|
"boxui.metadataInstanceEditor.templatesFetchFailed": "Vi beklager! Vi kunne ikke hente skabeloner. Kontakt din administrator",
|
package/i18n/de-DE.js
CHANGED
|
@@ -612,6 +612,8 @@ export default {
|
|
|
612
612
|
"boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Kaskadenrichtlinie kann zu diesem Zeitpunkt nicht auf benutzerdefinierte Metadaten angewendet werden.",
|
|
613
613
|
"boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Mehr erfahren",
|
|
614
614
|
"boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Wie möchten Sie vorgehen, wenn Konflikte bei der Anwendung dieser Vorlage und ihrer Werte auf vorhandene Elemente auftreten? Dies ist eine einmalige Aktion.",
|
|
615
|
+
"boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
|
|
616
|
+
"boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
|
|
615
617
|
"boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Alle vorhandenen Vorlagenwerte überschreiben",
|
|
616
618
|
"boxui.metadataInstanceEditor.cascadePolicySkipMode": "Alle vorhandenen Vorlagenwerte überspringen und behalten",
|
|
617
619
|
"boxui.metadataInstanceEditor.customAdd": "Hinzufügen",
|
|
@@ -629,6 +631,7 @@ export default {
|
|
|
629
631
|
"boxui.metadataInstanceEditor.editTooltip": "Metadaten bearbeiten",
|
|
630
632
|
"boxui.metadataInstanceEditor.enableAIAutofill": "Box AI automatischen Ausfüllen",
|
|
631
633
|
"boxui.metadataInstanceEditor.enableCascadePolicy": "Kaskadenrichtlinie aktivieren",
|
|
634
|
+
"boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
|
|
632
635
|
"boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Möchten Sie diese benutzerdefinierten Metadaten und ihre gesamten Werte aus dieser Datei wirklich löschen?",
|
|
633
636
|
"boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Möchten Sie „{metadataName}“ und ihre gesamten Werte aus dieser Datei wirklich löschen?",
|
|
634
637
|
"boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Möchten Sie diese benutzerdefinierten Metadaten und alle zugehörigen Werte wirklich löschen? Metadatenvorlagenwerte, die bereits auf Dateien in diesem Ordner angewendet wurden, werden nicht gelöscht.",
|
|
@@ -642,6 +645,7 @@ export default {
|
|
|
642
645
|
"boxui.metadataInstanceEditor.noMetadataAddTemplate": "Klicken Sie oben rechts auf „Hinzufügen“, um diesem Element Metadaten hinzuzufügen",
|
|
643
646
|
"boxui.metadataInstanceEditor.operationNotImmediate": "Dieser Vorgang wird nicht sofort ausgeführt und dauert möglicherweise eine Weile.",
|
|
644
647
|
"boxui.metadataInstanceEditor.removeTemplate": "Entfernen",
|
|
648
|
+
"boxui.metadataInstanceEditor.standardAgentName": "Standard",
|
|
645
649
|
"boxui.metadataInstanceEditor.templateAdd": "Hinzufügen",
|
|
646
650
|
"boxui.metadataInstanceEditor.templateSearchPlaceholder": "Alle Vorlagen durchsuchen",
|
|
647
651
|
"boxui.metadataInstanceEditor.templatesFetchFailed": "Leider konnten die Vorlagen nicht abgerufen werden. Bitte wenden Sie sich an Ihren Administrator.",
|
package/i18n/en-AU.js
CHANGED
|
@@ -612,6 +612,8 @@ export default {
|
|
|
612
612
|
"boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Cascade policy cannot be applied to custom metadata at this time.",
|
|
613
613
|
"boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Learn more",
|
|
614
614
|
"boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "In the event of conflicts when applying this template and its values to existing items, what would you prefer to do? This is a one-time action.",
|
|
615
|
+
"boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
|
|
616
|
+
"boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
|
|
615
617
|
"boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Overwrite all existing template values",
|
|
616
618
|
"boxui.metadataInstanceEditor.cascadePolicySkipMode": "Skip and keep all existing template values",
|
|
617
619
|
"boxui.metadataInstanceEditor.customAdd": "Add",
|
|
@@ -629,6 +631,7 @@ export default {
|
|
|
629
631
|
"boxui.metadataInstanceEditor.editTooltip": "Edit metadata",
|
|
630
632
|
"boxui.metadataInstanceEditor.enableAIAutofill": "Box AI Autofill",
|
|
631
633
|
"boxui.metadataInstanceEditor.enableCascadePolicy": "Enable Cascade Policy",
|
|
634
|
+
"boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
|
|
632
635
|
"boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Are you sure you want to delete this custom metadata and all of its values from this file?",
|
|
633
636
|
"boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Are you sure you want to delete \"{metadataName}\" and all of its values from this file?",
|
|
634
637
|
"boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Are you sure you want to delete this custom metadata and all of its values? Any metadata template values already applied to files in this folder will not be deleted.",
|
|
@@ -642,6 +645,7 @@ export default {
|
|
|
642
645
|
"boxui.metadataInstanceEditor.noMetadataAddTemplate": "Click 'Add' in the top right to add metadata to this item",
|
|
643
646
|
"boxui.metadataInstanceEditor.operationNotImmediate": "This operation is not immediate and may take some time.",
|
|
644
647
|
"boxui.metadataInstanceEditor.removeTemplate": "Remove",
|
|
648
|
+
"boxui.metadataInstanceEditor.standardAgentName": "Standard",
|
|
645
649
|
"boxui.metadataInstanceEditor.templateAdd": "Add",
|
|
646
650
|
"boxui.metadataInstanceEditor.templateSearchPlaceholder": "Search all templates",
|
|
647
651
|
"boxui.metadataInstanceEditor.templatesFetchFailed": "Sorry! We could not fetch templates. Please contact your administrator",
|