@elyra/canvas 12.10.2 → 12.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas-constants-7f93e705.js +2 -0
- package/dist/canvas-constants-7f93e705.js.map +1 -0
- package/dist/canvas-constants-ac5daafb.js +2 -0
- package/dist/canvas-constants-ac5daafb.js.map +1 -0
- package/dist/canvas-controller-190542a6.js +2 -0
- package/dist/canvas-controller-190542a6.js.map +1 -0
- package/dist/canvas-controller-cbee8dd7.js +2 -0
- package/dist/canvas-controller-cbee8dd7.js.map +1 -0
- package/dist/canvas-logger-815781bb.js +2 -0
- package/dist/canvas-logger-815781bb.js.map +1 -0
- package/dist/canvas-logger-a0f1beaa.js +2 -0
- package/dist/canvas-logger-a0f1beaa.js.map +1 -0
- package/dist/common-canvas-8d2ddc6b.js +2 -0
- package/dist/common-canvas-8d2ddc6b.js.map +1 -0
- package/dist/common-canvas-e0a57cdb.js +2 -0
- package/dist/common-canvas-e0a57cdb.js.map +1 -0
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.es.js.map +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-canvas.js.map +1 -1
- package/dist/common-properties-09ec10eb.js +2 -0
- package/dist/common-properties-09ec10eb.js.map +1 -0
- package/dist/common-properties-f1b96e0f.js +2 -0
- package/dist/common-properties-f1b96e0f.js.map +1 -0
- package/dist/datarecord-metadata-v3-schema-bda88f2e.js +2 -0
- package/dist/datarecord-metadata-v3-schema-bda88f2e.js.map +1 -0
- package/dist/datarecord-metadata-v3-schema-d7ad05cd.js +2 -0
- package/dist/datarecord-metadata-v3-schema-d7ad05cd.js.map +1 -0
- package/dist/en-2ed89528.js +2 -0
- package/dist/en-2ed89528.js.map +1 -0
- package/dist/en-e93855cc.js +2 -0
- package/dist/en-e93855cc.js.map +1 -0
- package/dist/extends-39f57612.js +7 -0
- package/dist/extends-39f57612.js.map +1 -0
- package/dist/extends-51d9ddcc.js +7 -0
- package/dist/extends-51d9ddcc.js.map +1 -0
- package/dist/flexible-table-154a3359.js +2 -0
- package/dist/flexible-table-154a3359.js.map +1 -0
- package/dist/flexible-table-5e4a1e6d.js +2 -0
- package/dist/flexible-table-5e4a1e6d.js.map +1 -0
- package/dist/icon-811ffddd.js +2 -0
- package/dist/icon-811ffddd.js.map +1 -0
- package/dist/icon-d6909a68.js +2 -0
- package/dist/icon-d6909a68.js.map +1 -0
- package/dist/index-4fd90a14.js +2 -0
- package/dist/index-4fd90a14.js.map +1 -0
- package/dist/index-6d138021.js +2 -0
- package/dist/index-6d138021.js.map +1 -0
- package/dist/isArrayLikeObject-31e5e646.js +2 -0
- package/dist/isArrayLikeObject-31e5e646.js.map +1 -0
- package/dist/isArrayLikeObject-7c33c7fd.js +2 -0
- package/dist/isArrayLikeObject-7c33c7fd.js.map +1 -0
- package/dist/lib/canvas-controller.es.js +1 -1
- package/dist/lib/canvas-controller.js +1 -1
- package/dist/lib/canvas.es.js +1 -1
- package/dist/lib/canvas.js +1 -1
- package/dist/lib/context-menu.es.js +1 -1
- package/dist/lib/context-menu.es.js.map +1 -1
- package/dist/lib/context-menu.js +1 -1
- package/dist/lib/context-menu.js.map +1 -1
- package/dist/lib/properties/field-picker.es.js +1 -1
- package/dist/lib/properties/field-picker.js +1 -1
- package/dist/lib/properties/flexible-table.es.js +1 -1
- package/dist/lib/properties/flexible-table.js +1 -1
- package/dist/lib/properties.es.js +1 -1
- package/dist/lib/properties.js +1 -1
- package/dist/lib/tooltip.es.js +1 -1
- package/dist/lib/tooltip.es.js.map +1 -1
- package/dist/lib/tooltip.js +1 -1
- package/dist/lib/tooltip.js.map +1 -1
- package/dist/styles/common-canvas.min.css +1 -1
- package/dist/styles/common-canvas.min.css.map +1 -1
- package/dist/toolbar-335252dd.js +2 -0
- package/dist/toolbar-335252dd.js.map +1 -0
- package/dist/toolbar-85e6c77b.js +2 -0
- package/dist/toolbar-85e6c77b.js.map +1 -0
- package/locales/command-actions/locales/en.json +7 -1
- package/locales/command-actions/locales/eo.json +7 -1
- package/locales/command-actions/locales/index.js +3 -1
- package/locales/command-actions/locales/ko.json +9 -0
- package/locales/common-canvas/locales/en.json +3 -0
- package/locales/common-canvas/locales/eo.json +3 -0
- package/locales/common-canvas/locales/index.js +3 -1
- package/locales/common-canvas/locales/ko.json +32 -0
- package/locales/common-properties/locales/index.js +3 -1
- package/locales/common-properties/locales/ko.json +93 -0
- package/locales/palette/locales/index.js +3 -1
- package/locales/palette/locales/ko.json +10 -0
- package/locales/toolbar/locales/index.js +3 -1
- package/locales/toolbar/locales/ko.json +8 -0
- package/package.json +2 -1
- package/src/color-picker/color-picker-panel.jsx +61 -0
- package/src/color-picker/color-picker.jsx +37 -0
- package/src/color-picker/color-picker.scss +46 -0
- package/src/command-actions/colorSelectedObjectsAction.js +72 -0
- package/src/command-actions/deleteObjectsAction.js +16 -11
- package/src/command-actions/pasteAction.js +50 -21
- package/src/common-canvas/canvas-controller.js +32 -5
- package/src/common-canvas/cc-bottom-panel.jsx +15 -9
- package/src/common-canvas/cc-contents.jsx +115 -8
- package/src/common-canvas/cc-toolbar.jsx +7 -6
- package/src/common-canvas/common-canvas-utils.js +73 -90
- package/src/common-canvas/common-canvas.scss +5 -5
- package/src/common-canvas/constants/canvas-constants.js +17 -16
- package/src/common-canvas/label-util.js +1 -1
- package/src/common-canvas/svg-canvas-d3.js +20 -107
- package/src/common-canvas/svg-canvas-d3.scss +66 -4
- package/src/common-canvas/svg-canvas-pipeline.js +201 -0
- package/src/common-canvas/svg-canvas-renderer.js +325 -339
- package/src/common-canvas/svg-canvas-utils-links.js +3 -3
- package/src/common-canvas/svg-canvas-utils-nodes.js +22 -44
- package/src/common-properties/actions.js +4 -0
- package/src/common-properties/components/field-picker/field-picker.jsx +33 -36
- package/src/common-properties/components/field-picker/field-picker.scss +20 -23
- package/src/common-properties/components/flexible-table/flexible-table.jsx +46 -31
- package/src/common-properties/components/flexible-table/flexible-table.scss +14 -17
- package/src/common-properties/components/properties-buttons/properties-buttons.jsx +28 -21
- package/src/common-properties/components/table-buttons/table-buttons.jsx +3 -1
- package/src/common-properties/components/table-buttons/table-buttons.scss +8 -8
- package/src/common-properties/components/title-editor/title-editor.jsx +31 -4
- package/src/common-properties/components/title-editor/title-editor.scss +30 -5
- package/src/common-properties/components/virtualized-table/virtualized-table.jsx +119 -27
- package/src/common-properties/components/virtualized-table/virtualized-table.scss +72 -8
- package/src/common-properties/constants/constants.js +5 -1
- package/src/common-properties/constants/form-constants.js +1 -0
- package/src/common-properties/controls/abstract-table.jsx +12 -11
- package/src/common-properties/controls/abstract-table.scss +6 -2
- package/src/common-properties/controls/dropdown/dropdown.scss +4 -0
- package/src/common-properties/controls/expression/expression-builder/expression-select-field-function.jsx +2 -2
- package/src/common-properties/controls/expression/expression.scss +1 -1
- package/src/common-properties/controls/passwordfield/passwordfield.jsx +2 -2
- package/src/common-properties/controls/readonlytable/readonlytable.jsx +4 -2
- package/src/common-properties/controls/selectcolumns/selectcolumns.scss +0 -19
- package/src/common-properties/controls/someofselect/someofselect.scss +2 -2
- package/src/common-properties/form/ControlInfo.js +8 -0
- package/src/common-properties/form/EditorForm.js +4 -0
- package/src/common-properties/form/ParameterInfo.js +4 -0
- package/src/common-properties/panels/sub-panel/cell.jsx +18 -23
- package/src/common-properties/panels/sub-panel/sub-panel.scss +5 -22
- package/src/common-properties/properties-controller.js +18 -0
- package/src/common-properties/properties-main/properties-main.jsx +15 -9
- package/src/common-properties/properties-main/properties-main.scss +9 -2
- package/src/common-properties/properties-store.js +27 -1
- package/src/common-properties/reducers/properties-settings.js +17 -1
- package/src/context-menu/common-context-menu.jsx +74 -29
- package/src/context-menu/context-menu-wrapper.jsx +2 -2
- package/src/icons/icon.jsx +5 -46
- package/src/index.scss +1 -0
- package/src/object-model/api-pipeline.js +18 -7
- package/src/object-model/object-model.js +27 -3
- package/src/object-model/redux/reducers/canvasinfo.js +36 -0
- package/src/object-model/redux/reducers/comments.js +58 -10
- package/src/object-model/redux/reducers/externalpipelineflows.js +1 -0
- package/src/object-model/redux/reducers/links.js +9 -7
- package/src/object-model/redux/reducers/selectioninfo.js +2 -1
- package/src/palette/palette-content-list-item.jsx +8 -1
- package/src/palette/palette-dialog-content-grid-node.jsx +8 -1
- package/src/toolbar/toolbar-action-item.jsx +75 -11
- package/src/toolbar/toolbar-overflow-item.jsx +2 -3
- package/src/tooltip/tooltip.jsx +4 -1
- package/stats.html +1 -1
- package/dist/canvas-constants-af93267a.js +0 -2
- package/dist/canvas-constants-af93267a.js.map +0 -1
- package/dist/canvas-constants-ffce3b78.js +0 -2
- package/dist/canvas-constants-ffce3b78.js.map +0 -1
- package/dist/canvas-controller-3f67c4fb.js +0 -2
- package/dist/canvas-controller-3f67c4fb.js.map +0 -1
- package/dist/canvas-controller-cee447d2.js +0 -2
- package/dist/canvas-controller-cee447d2.js.map +0 -1
- package/dist/common-canvas-e212a9c1.js +0 -2
- package/dist/common-canvas-e212a9c1.js.map +0 -1
- package/dist/common-canvas-e98191b3.js +0 -2
- package/dist/common-canvas-e98191b3.js.map +0 -1
- package/dist/common-properties-653e50e3.js +0 -2
- package/dist/common-properties-653e50e3.js.map +0 -1
- package/dist/common-properties-e2c6def7.js +0 -2
- package/dist/common-properties-e2c6def7.js.map +0 -1
- package/dist/datarecord-metadata-v3-schema-10ddafaf.js +0 -2
- package/dist/datarecord-metadata-v3-schema-10ddafaf.js.map +0 -1
- package/dist/datarecord-metadata-v3-schema-1504c843.js +0 -2
- package/dist/datarecord-metadata-v3-schema-1504c843.js.map +0 -1
- package/dist/en-517f38fc.js +0 -2
- package/dist/en-517f38fc.js.map +0 -1
- package/dist/en-dc6f2e9f.js +0 -2
- package/dist/en-dc6f2e9f.js.map +0 -1
- package/dist/extends-5a45f92e.js +0 -7
- package/dist/extends-5a45f92e.js.map +0 -1
- package/dist/extends-a52336ca.js +0 -8
- package/dist/extends-a52336ca.js.map +0 -1
- package/dist/flexible-table-e6ccbe58.js +0 -2
- package/dist/flexible-table-e6ccbe58.js.map +0 -1
- package/dist/flexible-table-f60c1680.js +0 -2
- package/dist/flexible-table-f60c1680.js.map +0 -1
- package/dist/index-567978da.js +0 -2
- package/dist/index-567978da.js.map +0 -1
- package/dist/index-59486e9a.js +0 -2
- package/dist/index-59486e9a.js.map +0 -1
- package/dist/isEmpty-def8f509.js +0 -2
- package/dist/isEmpty-def8f509.js.map +0 -1
- package/dist/isEmpty-e171b734.js +0 -2
- package/dist/isEmpty-e171b734.js.map +0 -1
- package/dist/toolbar-404bf690.js +0 -2
- package/dist/toolbar-404bf690.js.map +0 -1
- package/dist/toolbar-611d8ab9.js +0 -2
- package/dist/toolbar-611d8ab9.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar-335252dd.js","sources":["../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/toNumber.js","../src/toolbar/toolbar-action-item.jsx","../assets/images/zoom_to_fit.svg","../assets/images/arrange_vertically.svg","../assets/images/arrange_horizontally.svg","../assets/images/palette/palette_open.svg","../assets/images/palette/palette_close.svg","../assets/images/notification_counter_icon.svg","../src/toolbar/toolbar-overflow-item.jsx","../src/toolbar/toolbar-divider-item.jsx","../src/toolbar/toolbar.jsx"],"sourcesContent":["/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport Tooltip from \"../tooltip/tooltip.jsx\";\nimport ArrangeHorizontally from \"./../../assets/images/arrange_horizontally.svg\";\nimport ArrangeVertically from \"./../../assets/images/arrange_vertically.svg\";\nimport ToggleNotificationPanel from \"./../../assets/images/notification_counter_icon.svg\";\nimport PaletteClose from \"./../../assets/images/palette/palette_close.svg\";\nimport PaletteOpen from \"./../../assets/images/palette/palette_open.svg\";\nimport ZoomToFit from \"./../../assets/images/zoom_to_fit.svg\";\n\nimport { Button } from \"carbon-components-react\";\nimport SVG from \"react-inlinesvg\";\nimport classNames from \"classnames\";\nimport { StopFilledAlt16, Play16, Undo16, Redo16, Cut16, Copy16, Paste16,\n\tAddComment16, TrashCan16, ZoomIn16, ZoomOut16 } from \"@carbon/icons-react\";\nimport { TOOLBAR_STOP, TOOLBAR_RUN, TOOLBAR_UNDO, TOOLBAR_REDO, TOOLBAR_CUT,\n\tTOOLBAR_COPY, TOOLBAR_PASTE, TOOLBAR_CREATE_AUTO_COMMENT,\n\tTOOLBAR_DELETE_SELECTED_OBJECTS, TOOLBAR_ZOOM_IN, TOOLBAR_ZOOM_OUT, TOOLBAR_ZOOM_FIT,\n\tTOOLBAR_ARRANGE_HORIZONALLY, TOOLBAR_ARRANGE_VERTICALLY, TOOLBAR_OPEN_PALETTE,\n\tTOOLBAR_CLOSE_PALETTE, TOOLBAR_TOGGLE_NOTIFICATION_PANEL }\n\tfrom \"../common-canvas/constants/canvas-constants.js\";\n\nclass ToolbarActionItem extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.actionClickHandler = this.actionClickHandler.bind(this);\n\t}\n\n\t// Returns a default icon, if there is one, for the action passed in. The\n\t// icon may be overridden by the iconTypeOverride field if it is provided.\n\t// It also may be set to disabled state.\n\tgetDefaultIcon(actionObj) {\n\t\tconst iconType = actionObj.iconTypeOverride ? actionObj.iconTypeOverride : actionObj.action;\n\t\tconst disabled = !actionObj.enable;\n\n\t\tswitch (iconType) {\n\t\tcase (TOOLBAR_STOP):\n\t\t\treturn <StopFilledAlt16 disabled={disabled} />;\n\t\tcase (TOOLBAR_RUN):\n\t\t\treturn <Play16 disabled={disabled} />;\n\t\tcase (TOOLBAR_UNDO):\n\t\t\treturn <Undo16 disabled={disabled} />;\n\t\tcase (TOOLBAR_REDO):\n\t\t\treturn <Redo16 disabled={disabled} />;\n\t\tcase (TOOLBAR_CUT):\n\t\t\treturn <Cut16 disabled={disabled} />;\n\t\tcase (TOOLBAR_COPY):\n\t\t\treturn <Copy16 disabled={disabled} />;\n\t\tcase (TOOLBAR_PASTE):\n\t\t\treturn <Paste16 disabled={disabled} />;\n\t\tcase (TOOLBAR_CREATE_AUTO_COMMENT):\n\t\t\treturn <AddComment16 disabled={disabled} />;\n\t\tcase (TOOLBAR_DELETE_SELECTED_OBJECTS):\n\t\t\treturn <TrashCan16 disabled={disabled} />;\n\t\tcase (TOOLBAR_ZOOM_IN):\n\t\t\treturn <ZoomIn16 disabled={disabled} />;\n\t\tcase (TOOLBAR_ZOOM_OUT):\n\t\t\treturn <ZoomOut16 disabled={disabled} />;\n\n\t\tcase (TOOLBAR_ZOOM_FIT):\n\t\t\treturn <SVG src={ZoomToFit} disabled={disabled} />;\n\t\tcase (TOOLBAR_ARRANGE_HORIZONALLY):\n\t\t\treturn <SVG src={ArrangeVertically} disabled={disabled} />;\n\t\tcase (TOOLBAR_ARRANGE_VERTICALLY):\n\t\t\treturn <SVG src={ArrangeHorizontally} disabled={disabled} />;\n\t\tcase (TOOLBAR_OPEN_PALETTE):\n\t\t\treturn <SVG src={PaletteOpen} disabled={disabled} />;\n\t\tcase (TOOLBAR_CLOSE_PALETTE):\n\t\t\treturn <SVG src={PaletteClose} disabled={disabled} />;\n\t\tcase (TOOLBAR_TOGGLE_NOTIFICATION_PANEL):\n\t\t\treturn <SVG src={ToggleNotificationPanel} disabled={disabled} />;\n\n\t\tdefault:\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tgenerateLabel(label, disable, overflow, incLabelWithIcon) {\n\t\tlet className = \"toolbar-icon-label\";\n\t\tclassName += this.generateLabelType(overflow, incLabelWithIcon);\n\t\tclassName += disable ? \" disabled\" : \"\";\n\t\treturn (<div className={className}>{label}</div>);\n\t}\n\n\tgenerateLabelType(overflow, inLabelWithIcon) {\n\t\tif (overflow) {\n\t\t\treturn \" overflow\";\n\t\t} else if (inLabelWithIcon === \"before\") {\n\t\t\treturn \" before\";\n\t\t} else if (inLabelWithIcon === \"after\") {\n\t\t\treturn \" after\";\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tgenerateIcon(actionObj) {\n\t\tlet icon = this.getDefaultIcon(actionObj);\n\n\t\t// Host application provided icon. This will override any default icon.\n\t\tif (actionObj.iconEnabled) {\n\t\t\tconst iconEnabled = actionObj.iconEnabled;\n\t\t\tconst iconDisabled = actionObj.iconDisabled || actionObj.iconEnabled;\n\t\t\tconst customIcon = actionObj.enable ? iconEnabled : iconDisabled;\n\t\t\tconst id = \"toolbar-icon-\" + this.props.instanceId + \" -\" + actionObj.action;\n\n\t\t\tif (typeof customIcon === \"string\") {\n\t\t\t\ticon = (<SVG id={id} src={customIcon} disabled={!actionObj.enable} />);\n\t\t\t} else {\n\t\t\t\ticon = customIcon;\n\t\t\t}\n\t\t}\n\n\t\tif (icon) {\n\t\t\treturn (\n\t\t\t\t<div className={\"toolbar-icon\"}>\n\t\t\t\t\t{icon}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\tactionClickHandler() {\n\t\tthis.props.toolbarActionHandler(this.props.actionObj.action);\n\t}\n\n\tgenerateButton(actionObj) {\n\t\tlet labelBefore = null;\n\t\tlet labelAfter = null;\n\n\t\tif (this.props.overflow) {\n\t\t\tlabelAfter = this.generateLabel(actionObj.label, !actionObj.enable, true);\n\n\t\t} else if (actionObj.incLabelWithIcon === \"before\") {\n\t\t\tlabelBefore = this.generateLabel(actionObj.label, !actionObj.enable, false, actionObj.incLabelWithIcon);\n\n\t\t} else if (actionObj.incLabelWithIcon === \"after\") {\n\t\t\tlabelAfter = this.generateLabel(actionObj.label, !actionObj.enable, false, actionObj.incLabelWithIcon);\n\t\t}\n\n\t\tconst icon = this.generateIcon(actionObj);\n\t\tconst textContent = actionObj.textContent ? (<div className=\"toolbar-text-content\"> {actionObj.textContent} </div>) : null;\n\n\t\tconst itemContentClassName = classNames(\n\t\t\t\"toolbar-item-content\",\n\t\t\tactionObj.className ? actionObj.className : null,\n\t\t\t{ \"overflow\": this.props.overflow, \"disabled\": !actionObj.enable, \"default\": !actionObj.kind });\n\n\t\t// If no 'kind' is set, use ghost and then override colors using the \"default\" class in innerDivClassName.\n\t\tconst kind = actionObj.kind || \"ghost\";\n\n\t\tlet buttonContent = (\n\t\t\t<div className={itemContentClassName}>\n\t\t\t\t{labelBefore}\n\t\t\t\t{icon}\n\t\t\t\t{labelAfter}\n\t\t\t\t{textContent}\n\t\t\t</div>\n\t\t);\n\n\t\tbuttonContent = this.wrapInTooltip(buttonContent);\n\n\t\tbuttonContent = (\n\t\t\t<Button kind={kind}\n\t\t\t\tonClick={this.actionClickHandler}\n\t\t\t\tdisabled={!actionObj.enable}\n\t\t\t\tonFocus={this.props.onFocus}\n\t\t\t\taria-label={actionObj.label}\n\t\t\t>\n\t\t\t\t{buttonContent}\n\t\t\t</Button>\n\t\t);\n\n\t\treturn buttonContent;\n\t}\n\n\tgenerateActionName(actionObj) {\n\t\treturn this.props.actionObj.action + \"-action\";\n\t}\n\n\twrapInTooltip(content) {\n\t\tif (!this.props.overflow && (this.showLabelAsTip(this.props.actionObj) || this.props.actionObj.tooltip)) {\n\t\t\tconst actionName = this.generateActionName();\n\t\t\tconst tipText = this.props.actionObj.tooltip ? this.props.actionObj.tooltip : this.props.actionObj.label;\n\t\t\tconst tooltipId = actionName + \"-\" + this.props.instanceId + \"-tooltip\";\n\t\t\tconst enableTooltip = this.props.actionObj.enable ? this.props.actionObj.enable : false;\n\n\t\t\treturn (\n\t\t\t\t<Tooltip id={tooltipId} tip={tipText} disable={!enableTooltip} className=\"icon-tooltip\" >\n\t\t\t\t\t{content}\n\t\t\t\t</Tooltip>\n\t\t\t);\n\t\t}\n\t\treturn content;\n\t}\n\n\t// Returns true if the label should be shown as a tooltip or false if not.\n\t// We do not show the label as a tooltip if it is already shown in the\n\t// toolbar next to the icon (i.e. incLabelWithIcon is set to something).\n\tshowLabelAsTip(actionObj) {\n\t\tif (actionObj.label) {\n\t\t\tif (actionObj.incLabelWithIcon === \"before\" ||\n\t\t\t\t\tactionObj.incLabelWithIcon === \"after\") {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\trender() {\n\t\tconst actionObj = this.props.actionObj;\n\t\tconst actionName = this.generateActionName();\n\t\tlet divContent = null;\n\n\t\tif (actionObj.jsx) {\n\t\t\tdivContent = this.wrapInTooltip(actionObj.jsx);\n\t\t} else {\n\t\t\tdivContent = this.generateButton(actionObj);\n\t\t}\n\n\t\tconst isToolbarItem = this.props.overflow ? null : true; // null wil make data-toolbar-item be removed\n\t\tconst kindAsClass = actionObj.kind ? actionObj.kind : \"default\";\n\n\t\tconst itemClassName = classNames(\n\t\t\t{ \"toolbar-overflow-menu-item\": this.props.overflow,\n\t\t\t\t\"toolbar-item\": !this.props.overflow && !actionObj.jsx,\n\t\t\t\t\"toolbar-jsx-item\": !this.props.overflow && actionObj.jsx,\n\t\t\t\t\"toolbar-overflow-jsx-item\": this.props.overflow && actionObj.jsx,\n\t\t\t\t\"toolbar-item-selected\": actionObj.isSelected },\n\t\t\tkindAsClass,\n\t\t\tactionName);\n\n\t\treturn (\n\t\t\t<div className={itemClassName} data-toolbar-item={isToolbarItem}>\n\t\t\t\t{divContent}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nToolbarActionItem.propTypes = {\n\tactionObj: PropTypes.shape({\n\t\taction: PropTypes.string.isRequired,\n\t\tlabel: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object\n\t\t]),\n\t\tincLabelWithIcon: PropTypes.oneOf([\"no\", \"before\", \"after\"]),\n\t\tenable: PropTypes.bool,\n\t\ticonEnabled: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object\n\t\t]),\n\t\ticonDisabled: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object\n\t\t]),\n\t\tclassName: PropTypes.string,\n\t\ttextContent: PropTypes.string,\n\t\ticonTypeOverride: PropTypes.string,\n\t\tisSelected: PropTypes.bool,\n\t\tkind: PropTypes.string,\n\t\tjsx: PropTypes.object,\n\t\ttooltip: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object\n\t\t])\n\t}),\n\ttoolbarActionHandler: PropTypes.func.isRequired,\n\tinstanceId: PropTypes.number.isRequired,\n\toverflow: PropTypes.bool,\n\tonFocus: PropTypes.func\n};\n\nexport default ToolbarActionItem;\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22currentColor%22%3E%20%3Cpath%20d%3D%22M6%2C7.5h4v1H6Z%22%2F%3E%20%3Cpath%20d%3D%22M4%2C12h8a.94.94%2C0%2C0%2C0%2C1-1V5a.94.94%2C0%2C0%2C0-1-1H4A.94.94%2C0%2C0%2C0%2C3%2C5v6A.94.94%2C0%2C0%2C0%2C4%2C12ZM4%2C5h8v6H4Z%22%2F%3E%20%3Cpolygon%20points%3D%222%203.5%201%203.5%201%201%203.5%201%203.5%202%202%202%202%203.5%22%2F%3E%20%3Cpolygon%20points%3D%2215%203.5%2014%203.5%2014%202%2012.5%202%2012.5%201%2015%201%2015%203.5%22%2F%3E%20%3Cpolygon%20points%3D%2215%2015%2012.5%2015%2012.5%2014%2014%2014%2014%2012.5%2015%2012.5%2015%2015%22%2F%3E%20%3Cpolygon%20points%3D%223.5%2015%201%2015%201%2012.5%202%2012.5%202%2014%203.5%2014%203.5%2015%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Crect%20x%3D%222%22%20y%3D%221.5%22%20width%3D%221%22%20height%3D%2213%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%221.5%22%20width%3D%221%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M10.5%2C7.5h-5A.47.47%2C0%2C0%2C1%2C5%2C7V3a.47.47%2C0%2C0%2C1%2C.5-.5h5A.47.47%2C0%2C0%2C1%2C11%2C3V7A.47.47%2C0%2C0%2C1%2C10.5%2C7.5ZM6%2C6.5h4v-3H6Z%22%2F%3E%3Cpath%20d%3D%22M10.5%2C13.5h-5A.47.47%2C0%2C0%2C1%2C5%2C13V9a.47.47%2C0%2C0%2C1%2C.5-.5h5A.47.47%2C0%2C0%2C1%2C11%2C9v4A.47.47%2C0%2C0%2C1%2C10.5%2C13.5ZM6%2C12.5h4v-3H6Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Crect%20x%3D%221.5%22%20y%3D%222%22%20width%3D%2213%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221.5%22%20y%3D%2213%22%20width%3D%2213%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M7%2C10.5H2a.47.47%2C0%2C0%2C1-.5-.5V6A.47.47%2C0%2C0%2C1%2C2%2C5.5H7a.47.47%2C0%2C0%2C1%2C.5.5v4A.47.47%2C0%2C0%2C1%2C7%2C10.5Zm-4.5-1h4v-3h-4Z%22%2F%3E%3Cpath%20d%3D%22M14%2C10.5H9a.47.47%2C0%2C0%2C1-.5-.5V6A.47.47%2C0%2C0%2C1%2C9%2C5.5h5a.47.47%2C0%2C0%2C1%2C.5.5v4A.47.47%2C0%2C0%2C1%2C14%2C10.5Zm-4.5-1h4v-3h-4Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22none%22%2F%3E%20%3Cpath%20d%3D%22M28%2C4H4A2%2C2%2C0%2C0%2C0%2C2%2C6V26a2%2C2%2C0%2C0%2C0%2C2%2C2H28a2%2C2%2C0%2C0%2C0%2C2-2V6A2%2C2%2C0%2C0%2C0%2C28%2C4Zm0%2C22H12V17.1h8.9l-2.5%2C2.5%2C1.5%2C1.5L25%2C16l-5.1-5.1-1.5%2C1.5%2C2.5%2C2.5H12V6H28Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22none%22%2F%3E%20%3Cpath%20d%3D%22M28%2C4H4A2%2C2%2C0%2C0%2C0%2C2%2C6V26a2%2C2%2C0%2C0%2C0%2C2%2C2H28a2%2C2%2C0%2C0%2C0%2C2-2V6A2%2C2%2C0%2C0%2C0%2C28%2C4Zm0%2C11H19.1l2.5-2.5L20.1%2C11%2C15%2C16l5.1%2C5.1%2C1.5-1.5-2.5-2.5H28V26H12V6H28Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Cpath%20d%3D%22M27%2C12V27H5V5H20V3H5A2%2C2%2C0%2C0%2C0%2C3%2C5V27a2%2C2%2C0%2C0%2C0%2C2%2C2H27a2%2C2%2C0%2C0%2C0%2C2-2V12Z%22%2F%3E%20%3Ccircle%20class%3D%22dot%22%20cx%3D%2226.5%22%20cy%3D%225.5%22%20r%3D%223.5%22%2F%3E%3C%2Fsvg%3E\"","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { Button } from \"carbon-components-react\";\nimport { OverflowMenuVertical16 } from \"@carbon/icons-react\";\n\nclass ToolbarOverflowItem extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.toggleExtendedMenu = this.toggleExtendedMenu.bind(this);\n\t}\n\n\ttoggleExtendedMenu() {\n\t\tthis.props.toggleExtendedMenu(this.props.index);\n\t}\n\n\trender() {\n\t\tconst menuItems = this.props.showExtendedMenu ? this.props.generateExtensionMenuItems(this.props.index) : [];\n\t\tconst subMenuClassName = this.props.showExtendedMenu ? \"\" : \"toolbar-popover-list-hide\";\n\n\t\tlet overflowMenu = null;\n\t\tif (menuItems.length > 0) {\n\t\t\toverflowMenu = (\n\t\t\t\t<div className={\"toolbar-popover-list \" + subMenuClassName}>\n\t\t\t\t\t{menuItems}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst className = \"toolbar-spacer toolbar-index-\" + this.props.index;\n\n\t\treturn (\n\t\t\t<div className={className} >\n\t\t\t\t<div className={\"toolbar-overflow-item\"}>\n\t\t\t\t\t<Button kind=\"ghost\"\n\t\t\t\t\t\tonClick={this.toggleExtendedMenu}\n\t\t\t\t\t\tonFocus={this.props.onFocus}\n\t\t\t\t\t\taria-label={this.props.label}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"toolbar-item-content default\">\n\t\t\t\t\t\t\t<div className=\"toolbar-icon\">\n\t\t\t\t\t\t\t\t<OverflowMenuVertical16 />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t\t{overflowMenu}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nToolbarOverflowItem.propTypes = {\n\tshowExtendedMenu: PropTypes.bool.isRequired,\n\ttoggleExtendedMenu: PropTypes.func.isRequired,\n\tindex: PropTypes.number.isRequired,\n\tgenerateExtensionMenuItems: PropTypes.func,\n\tonFocus: PropTypes.func,\n\tlabel: PropTypes.string\n};\n\nexport default ToolbarOverflowItem;\n","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nclass ToolbarDividerItem extends React.Component {\n\n\trender() {\n\t\tconst dividerClassName = this.props.overflow ? \"toolbar-divider-overflow\" : \"toolbar-divider\";\n\n\t\t// Add a space as content. When using display: inline-block the div needs\n\t\t// some content so it is displayed inline with the other elements of the\n\t\t// toolbar. With no content it is displayed above (!) the other elements.\n\t\treturn (\n\t\t\t<div className={dividerClassName} data-toolbar-item tabIndex={-1} aria-hidden > </div>\n\t\t);\n\t}\n}\n\nToolbarDividerItem.propTypes = {\n\toverflow: PropTypes.bool\n};\n\nexport default ToolbarDividerItem;\n","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { injectIntl } from \"react-intl\";\nimport PropTypes from \"prop-types\";\nimport defaultMessages from \"../../locales/toolbar/locales/en.json\";\nimport ReactResizeDetector from \"react-resize-detector\";\n\nimport ToolbarActionItem from \"./toolbar-action-item.jsx\";\nimport ToolbarOverflowItem from \"./toolbar-overflow-item.jsx\";\nimport ToolbarDividerItem from \"./toolbar-divider-item.jsx\";\n\nclass Toolbar extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tshowExtendedMenuIndex: -1\n\t\t};\n\n\t\tthis.leftBar = [];\n\t\tthis.rightBar = [];\n\n\t\tthis.onFocus = this.onFocus.bind(this);\n\t\tthis.onToolbarResize = this.onToolbarResize.bind(this);\n\t\tthis.toggleExtendedMenu = this.toggleExtendedMenu.bind(this);\n\t\tthis.generateExtensionMenuItems = this.generateExtensionMenuItems.bind(this);\n\t}\n\n\t// When the toolbar is initially opened the tabindex for each element may not\n\t// be set correctly because of the time it takes to initially render the DOM.\n\t// Typically, this means the tabindex is not set correctly on whichever\n\t// overflow menu icon is displayed. Therefore, as the user moves the focus\n\t// to the first element in the toolbar (whose tabindex IS typically OK) we\n\t// set the tabindex for all elements again, this then sets the overflow\n\t// icon's tabindex correctly.\n\tonFocus() {\n\t\tthis.setLeftBarItemsTabIndex();\n\t\tthis.setRightBarItemsTabIndex();\n\t}\n\n\t// Prevents the inline-block elements of the left bar being scrolled to\n\t// reveal the wrapped elements, when the user tabs through the elements.\n\tonScroll(evt) {\n\t\tevt.currentTarget.scroll(0, 0);\n\t\tevt.preventDefault();\n\t}\n\n\t// Close the overflow menu, if it is open, when the toolbar is resized in\n\t// case a new menu needs to be displayed with the new toolbar width.\n\tonToolbarResize() {\n\t\tif (this.state.showExtendedMenuIndex > -1) {\n\t\t\tthis.setState({ showExtendedMenuIndex: -1 });\n\t\t}\n\n\t\tthis.setLeftBarItemsTabIndex();\n\t\tthis.setRightBarItemsTabIndex();\n\t}\n\n\t// Sets the tabindex on all left bar items so tabbing works correctly. This\n\t// falls into two parts: 1. Set the tabindex for all overflow items to -1\n\t// except the overflow item that is displayed (if there is one). 2. Set the\n\t// tabindex of all hidden regular toolbar items to -1 and to 0 for all\n\t// displayed regular toolbar items.\n\t// Note: We detect the y coordinate of the 'top row' by using the top of\n\t// the first overflow icon. This is because the toolbar might be compressed\n\t// to the extent that the first overflow icon is the only item on the left\n\t// of the toolbar.\n\tsetLeftBarItemsTabIndex() {\n\t\tconst bar = this.getBar(\"left\");\n\t\tif (!bar) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst items = bar.querySelectorAll(\"[data-toolbar-item=true]\") || [];\n\t\tconst topRow = this.getTopOfFirstOverflowItem(bar);\n\t\tlet lastTopRowElement = -1;\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\tconst itemRect = items[i].getBoundingClientRect();\n\n\t\t\tthis.setOverflowItemButtonTabIndex(i, -1, bar);\n\n\t\t\tif (itemRect.top === topRow) {\n\t\t\t\tlastTopRowElement = i;\n\t\t\t\tthis.setToolbarItemButtonTabIndex(items[i], 0);\n\t\t\t} else {\n\t\t\t\tthis.setToolbarItemButtonTabIndex(items[i], -1);\n\t\t\t}\n\t\t}\n\n\t\tif (lastTopRowElement < items.length) {\n\t\t\tthis.setOverflowItemButtonTabIndex(lastTopRowElement + 1, 0, bar);\n\t\t}\n\t}\n\n\t// Sets the tabindex on all right bar items so tabbing works correctly. This\n\t// involves setting the tabindex of all hidden regular toolbar items to -1\n\t// and to 0 for all displayed regular toolbar items.\n\tsetRightBarItemsTabIndex() {\n\t\tconst items = this.getRightBarItems();\n\t\tlet topRow = 0;\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\tconst itemRect = items[i].getBoundingClientRect();\n\n\t\t\tif (i === 0) {\n\t\t\t\ttopRow = itemRect.top;\n\t\t\t}\n\n\t\t\tif (itemRect.top === topRow) {\n\t\t\t\tthis.setToolbarItemButtonTabIndex(items[i], 0);\n\t\t\t} else {\n\t\t\t\tthis.setToolbarItemButtonTabIndex(items[i], -1);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetBar(side) {\n\t\tconst id = this.props.instanceId;\n\t\tconst part = document.querySelector(`.toolbar-div[instanceid='${id}'] > .toolbar-${side}-bar`) || [];\n\t\treturn part;\n\t}\n\n\tgetRightBarItems() {\n\t\tconst bar = this.getBar(\"right\");\n\t\tif (!bar) {\n\t\t\treturn [];\n\t\t}\n\t\treturn bar.querySelectorAll(\"[data-toolbar-item=true]\") || [];\n\t}\n\n\tgetTopOfFirstOverflowItem(bar) {\n\t\tconst firstOverflowItem = this.getOverflowItem(0, bar);\n\t\tif (firstOverflowItem) {\n\t\t\tconst rect = firstOverflowItem.getBoundingClientRect();\n\t\t\treturn rect.top;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tgetOverflowItem(index, bar) {\n\t\tconst overflowClassName = \"toolbar-index-\" + index;\n\t\treturn bar.getElementsByClassName(overflowClassName)[0];\n\t}\n\n\tsetToolbarItemButtonTabIndex(item, tabIndex) {\n\t\tconst button = item.querySelector(\"button\");\n\t\tif (button) {\n\t\t\tbutton.setAttribute(\"tabindex\", tabIndex);\n\t\t}\n\t}\n\n\tsetOverflowItemButtonTabIndex(index, tabIndex, bar) {\n\t\tconst overflowItem = this.getOverflowItem(index, bar);\n\t\tif (overflowItem) {\n\t\t\tconst overflowButton = overflowItem.querySelector(\"button\");\n\t\t\tif (overflowButton) {\n\t\t\t\toverflowButton.setAttribute(\"tabindex\", tabIndex);\n\t\t\t}\n\t\t}\n\t}\n\n\tgenerateToolbarItems(actionDefinitions, overflow, withSpacer) {\n\t\tconst newItems = [];\n\n\t\tfor (let i = 0; i < actionDefinitions.length; i++) {\n\t\t\tconst actionObj = actionDefinitions[i];\n\t\t\tif (actionObj) {\n\t\t\t\tif (withSpacer && !actionObj.divider) {\n\t\t\t\t\tnewItems.push(this.generateOverflowIcon(i));\n\t\t\t\t}\n\t\t\t\tnewItems.push(this.generateToolbarItem(actionObj, i, overflow));\n\t\t\t}\n\t\t}\n\t\treturn newItems;\n\t}\n\n\tgenerateToolbarItem(actionObj, i, overflow) {\n\t\tlet jsx = null;\n\t\tif (actionObj) {\n\t\t\tif (actionObj.divider) {\n\t\t\t\tjsx = (\n\t\t\t\t\t<ToolbarDividerItem\n\t\t\t\t\t\tkey={\"toolbar-item-key-\" + i}\n\t\t\t\t\t\toverflow={overflow}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tjsx = (\n\t\t\t\t\t<ToolbarActionItem\n\t\t\t\t\t\tkey={\"toolbar-item-key-\" + i}\n\t\t\t\t\t\tactionObj={actionObj}\n\t\t\t\t\t\ttoolbarActionHandler={this.props.toolbarActionHandler}\n\t\t\t\t\t\toverflow={overflow}\n\t\t\t\t\t\tinstanceId={this.props.instanceId}\n\t\t\t\t\t\tonFocus={this.onFocus}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn jsx;\n\t}\n\n\tgenerateOverflowIcon(index) {\n\t\tconst label = this.props.additionalText ? this.props.additionalText.overflowMenuLabel : \"\";\n\t\tconst jsx = (\n\t\t\t<ToolbarOverflowItem\n\t\t\t\tkey={\"toolbar-overflow-item-key-\" + index}\n\t\t\t\tindex={index}\n\t\t\t\tshowExtendedMenu={this.state.showExtendedMenuIndex === index}\n\t\t\t\ttoggleExtendedMenu={this.toggleExtendedMenu}\n\t\t\t\tgenerateExtensionMenuItems={this.generateExtensionMenuItems}\n\t\t\t\tonFocus={this.onFocus}\n\t\t\t\tlabel={label}\n\t\t\t/>\n\t\t);\n\n\t\treturn jsx;\n\t}\n\n\t// Generates an array of action definition elements that correspond to the\n\t// hidden DOM items on the left and right of the toolbar. For any left bar\n\t// items we can use the leftIndex passed in to split the leftBar defintion\n\t// array, however for the right side we need to loop through the DOM items\n\t// and discover which is hidden and which is displayed.\n\tgenerateExtensionMenuItems(leftIndex) {\n\t\tconst rightItems = this.generateRightOverflowItems();\n\t\trightItems.reverse();\n\n\t\tconst overflowMenuBarItems = this.leftBar.slice(leftIndex).concat(rightItems);\n\t\tconst extensionItems = this.generateToolbarItems(overflowMenuBarItems, true, false);\n\t\treturn extensionItems;\n\t}\n\n\t// Generates an array of right side defintion items that correspond to\n\t// right side DOM items that are hidden.\n\tgenerateRightOverflowItems() {\n\t\tconst newDefItems = [];\n\t\tconst items = this.getRightBarItems();\n\t\tlet topRow = 0;\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\tconst rect = items[i].getBoundingClientRect();\n\n\t\t\tif (i === 0) {\n\t\t\t\ttopRow = rect.top;\n\t\t\t}\n\n\t\t\tif (rect.top !== topRow) {\n\t\t\t\tnewDefItems.push(this.rightBar[i]);\n\t\t\t}\n\t\t}\n\t\treturn newDefItems;\n\t}\n\n\ttoggleExtendedMenu(index) {\n\t\tconst newIndex = index === this.state.showExtendedMenuIndex ? -1 : index;\n\t\tthis.setState({ showExtendedMenuIndex: newIndex });\n\t}\n\n\trender() {\n\t\tthis.leftBar = this.props.config.leftBar || [];\n\t\tthis.rightBar = this.props.config.rightBar || [];\n\t\tthis.rightBar = [...this.rightBar].reverse() || [];\n\n\t\tconst leftItems = this.generateToolbarItems(this.leftBar, false, true);\n\t\tconst rightItems = this.generateToolbarItems(this.rightBar, false, false);\n\n\t\tconst canvasToolbar = (\n\t\t\t<section aria-label={this.props.intl.formatMessage({ id: \"toolbar.label\", defaultMessage: defaultMessages[\"toolbar.label\"] })} role=\"toolbar\">\n\t\t\t\t<ReactResizeDetector handleWidth onResize={this.onToolbarResize}>\n\t\t\t\t\t<div className=\"toolbar-div\" instanceid={this.props.instanceId}>\n\t\t\t\t\t\t<div className=\"toolbar-left-bar\" onScroll={this.onScroll}>\n\t\t\t\t\t\t\t{leftItems}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"toolbar-right-bar\">\n\t\t\t\t\t\t\t{rightItems}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</ReactResizeDetector>\n\t\t\t</section>\n\t\t);\n\t\treturn canvasToolbar;\n\t}\n}\n\nToolbar.propTypes = {\n\tintl: PropTypes.object.isRequired,\n\tconfig: PropTypes.object.isRequired,\n\tinstanceId: PropTypes.number,\n\ttoolbarActionHandler: PropTypes.func,\n\tadditionalText: PropTypes.object\n};\n\nexport default injectIntl(Toolbar);\n"],"names":["reWhitespace","trimmedEndIndex","string","index","length","test","charAt","reTrimStart","baseTrim","slice","replace","isObject","require$$1","isSymbol","require$$2","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber_1","value","other","valueOf","isBinary","props","actionClickHandler","_this","bind","actionObj","iconType","iconTypeOverride","action","disabled","enable","TOOLBAR_STOP","React","StopFilledAlt16","TOOLBAR_RUN","Play16","TOOLBAR_UNDO","Undo16","TOOLBAR_REDO","Redo16","TOOLBAR_CUT","Cut16","TOOLBAR_COPY","Copy16","TOOLBAR_PASTE","Paste16","TOOLBAR_CREATE_AUTO_COMMENT","AddComment16","TOOLBAR_DELETE_SELECTED_OBJECTS","TrashCan16","TOOLBAR_ZOOM_IN","ZoomIn16","TOOLBAR_ZOOM_OUT","ZoomOut16","TOOLBAR_ZOOM_FIT","SVG","src","TOOLBAR_ARRANGE_HORIZONALLY","TOOLBAR_ARRANGE_VERTICALLY","TOOLBAR_OPEN_PALETTE","TOOLBAR_CLOSE_PALETTE","TOOLBAR_TOGGLE_NOTIFICATION_PANEL","label","disable","overflow","incLabelWithIcon","className","this","generateLabelType","inLabelWithIcon","icon","getDefaultIcon","iconEnabled","iconDisabled","customIcon","id","instanceId","toolbarActionHandler","labelBefore","labelAfter","generateLabel","generateIcon","textContent","itemContentClassName","classNames","kind","buttonContent","wrapInTooltip","Button","onClick","onFocus","content","showLabelAsTip","tooltip","actionName","generateActionName","tipText","tooltipId","enableTooltip","Tooltip","tip","divContent","jsx","generateButton","isToolbarItem","kindAsClass","itemClassName","isSelected","Component","toggleExtendedMenu","menuItems","showExtendedMenu","generateExtensionMenuItems","subMenuClassName","overflowMenu","OverflowMenuVertical16","dividerClassName","tabIndex","injectIntl","state","showExtendedMenuIndex","leftBar","rightBar","onToolbarResize","setLeftBarItemsTabIndex","setRightBarItemsTabIndex","evt","currentTarget","scroll","preventDefault","setState","bar","getBar","items","querySelectorAll","topRow","getTopOfFirstOverflowItem","lastTopRowElement","i","itemRect","getBoundingClientRect","setOverflowItemButtonTabIndex","top","setToolbarItemButtonTabIndex","getRightBarItems","side","document","querySelector","firstOverflowItem","getOverflowItem","overflowClassName","getElementsByClassName","item","button","setAttribute","overflowItem","overflowButton","actionDefinitions","withSpacer","newItems","divider","push","generateOverflowIcon","generateToolbarItem","ToolbarDividerItem","key","ToolbarActionItem","additionalText","overflowMenuLabel","ToolbarOverflowItem","leftIndex","rightItems","generateRightOverflowItems","reverse","overflowMenuBarItems","concat","generateToolbarItems","newDefItems","rect","newIndex","config","_toConsumableArray","leftItems","intl","formatMessage","defaultMessage","defaultMessages","role","ReactResizeDetector","handleWidth","onResize","instanceid","onScroll"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("./isArrayLikeObject-31e5e646.js"),t=require("./datarecord-metadata-v3-schema-d7ad05cd.js"),r=require("./createClass-6db89a23.js"),a=require("./getPrototypeOf-0bf77a9e.js"),n=require("react"),o=require("react-intl"),l=require("react-resize-detector"),i=require("./lib/tooltip.js"),s=require("carbon-components-react"),c=require("react-inlinesvg"),u=require("./extends-51d9ddcc.js"),d=require("@carbon/icons-react"),f=require("./canvas-constants-ac5daafb.js");function C(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=C(n),v=C(l),p=C(c),b=/\s/;var m=function(e){for(var t=e.length;t--&&b.test(e.charAt(t)););return t},g=/^\s+/;var E=function(e){return e?e.slice(0,m(e)+1).replace(g,""):e},O=e.isObject_1,y=e.isSymbol_1,x=/^[-+]0x[0-9a-f]+$/i,I=/^0b[01]+$/i,T=/^0o[0-7]+$/i,w=parseInt;var B=function(e){if("number"==typeof e)return e;if(y(e))return NaN;if(O(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=O(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=E(e);var r=I.test(e);return r||T.test(e)?w(e.slice(2),r?2:8):x.test(e)?NaN:+e},A={"toolbar.palette":"Palette","toolbar.zoomIn":"Zoom in","toolbar.zoomOut":"Zoom out","toolbar.zoomToFit":"Zoom to fit","toolbar.overflowMenu":"Overflow menu","toolbar.label":"Canvas toolbar"};function R(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=a._getPrototypeOf(e);if(t){var o=a._getPrototypeOf(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return a._possibleConstructorReturn(this,r)}}var F=function(e){a._inherits(n,e);var t=R(n);function n(e){var o;return r._classCallCheck(this,n),(o=t.call(this,e)).actionClickHandler=o.actionClickHandler.bind(a._assertThisInitialized(o)),o}return r._createClass(n,[{key:"getDefaultIcon",value:function(e){var t=e.iconTypeOverride?e.iconTypeOverride:e.action,r=!e.enable;switch(t){case f.TOOLBAR_STOP:return h.default.createElement(d.StopFilledAlt16,{disabled:r});case f.TOOLBAR_RUN:return h.default.createElement(d.Play16,{disabled:r});case f.TOOLBAR_UNDO:return h.default.createElement(d.Undo16,{disabled:r});case f.TOOLBAR_REDO:return h.default.createElement(d.Redo16,{disabled:r});case f.TOOLBAR_CUT:return h.default.createElement(d.Cut16,{disabled:r});case f.TOOLBAR_COPY:return h.default.createElement(d.Copy16,{disabled:r});case f.TOOLBAR_PASTE:return h.default.createElement(d.Paste16,{disabled:r});case f.TOOLBAR_CREATE_AUTO_COMMENT:return h.default.createElement(d.AddComment16,{disabled:r});case f.TOOLBAR_DELETE_SELECTED_OBJECTS:return h.default.createElement(d.TrashCan16,{disabled:r});case f.TOOLBAR_ZOOM_IN:return h.default.createElement(d.ZoomIn16,{disabled:r});case f.TOOLBAR_ZOOM_OUT:return h.default.createElement(d.ZoomOut16,{disabled:r});case f.TOOLBAR_ZOOM_FIT:return h.default.createElement(p.default,{src:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22currentColor%22%3E%20%3Cpath%20d%3D%22M6%2C7.5h4v1H6Z%22%2F%3E%20%3Cpath%20d%3D%22M4%2C12h8a.94.94%2C0%2C0%2C0%2C1-1V5a.94.94%2C0%2C0%2C0-1-1H4A.94.94%2C0%2C0%2C0%2C3%2C5v6A.94.94%2C0%2C0%2C0%2C4%2C12ZM4%2C5h8v6H4Z%22%2F%3E%20%3Cpolygon%20points%3D%222%203.5%201%203.5%201%201%203.5%201%203.5%202%202%202%202%203.5%22%2F%3E%20%3Cpolygon%20points%3D%2215%203.5%2014%203.5%2014%202%2012.5%202%2012.5%201%2015%201%2015%203.5%22%2F%3E%20%3Cpolygon%20points%3D%2215%2015%2012.5%2015%2012.5%2014%2014%2014%2014%2012.5%2015%2012.5%2015%2015%22%2F%3E%20%3Cpolygon%20points%3D%223.5%2015%201%2015%201%2012.5%202%2012.5%202%2014%203.5%2014%203.5%2015%22%2F%3E%3C%2Fsvg%3E",disabled:r});case f.TOOLBAR_ARRANGE_HORIZONALLY:return h.default.createElement(p.default,{src:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Crect%20x%3D%222%22%20y%3D%221.5%22%20width%3D%221%22%20height%3D%2213%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%221.5%22%20width%3D%221%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M10.5%2C7.5h-5A.47.47%2C0%2C0%2C1%2C5%2C7V3a.47.47%2C0%2C0%2C1%2C.5-.5h5A.47.47%2C0%2C0%2C1%2C11%2C3V7A.47.47%2C0%2C0%2C1%2C10.5%2C7.5ZM6%2C6.5h4v-3H6Z%22%2F%3E%3Cpath%20d%3D%22M10.5%2C13.5h-5A.47.47%2C0%2C0%2C1%2C5%2C13V9a.47.47%2C0%2C0%2C1%2C.5-.5h5A.47.47%2C0%2C0%2C1%2C11%2C9v4A.47.47%2C0%2C0%2C1%2C10.5%2C13.5ZM6%2C12.5h4v-3H6Z%22%2F%3E%3C%2Fsvg%3E",disabled:r});case f.TOOLBAR_ARRANGE_VERTICALLY:return h.default.createElement(p.default,{src:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Crect%20x%3D%221.5%22%20y%3D%222%22%20width%3D%2213%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221.5%22%20y%3D%2213%22%20width%3D%2213%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M7%2C10.5H2a.47.47%2C0%2C0%2C1-.5-.5V6A.47.47%2C0%2C0%2C1%2C2%2C5.5H7a.47.47%2C0%2C0%2C1%2C.5.5v4A.47.47%2C0%2C0%2C1%2C7%2C10.5Zm-4.5-1h4v-3h-4Z%22%2F%3E%3Cpath%20d%3D%22M14%2C10.5H9a.47.47%2C0%2C0%2C1-.5-.5V6A.47.47%2C0%2C0%2C1%2C9%2C5.5h5a.47.47%2C0%2C0%2C1%2C.5.5v4A.47.47%2C0%2C0%2C1%2C14%2C10.5Zm-4.5-1h4v-3h-4Z%22%2F%3E%3C%2Fsvg%3E",disabled:r});case f.TOOLBAR_OPEN_PALETTE:return h.default.createElement(p.default,{src:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22none%22%2F%3E%20%3Cpath%20d%3D%22M28%2C4H4A2%2C2%2C0%2C0%2C0%2C2%2C6V26a2%2C2%2C0%2C0%2C0%2C2%2C2H28a2%2C2%2C0%2C0%2C0%2C2-2V6A2%2C2%2C0%2C0%2C0%2C28%2C4Zm0%2C22H12V17.1h8.9l-2.5%2C2.5%2C1.5%2C1.5L25%2C16l-5.1-5.1-1.5%2C1.5%2C2.5%2C2.5H12V6H28Z%22%2F%3E%3C%2Fsvg%3E",disabled:r});case f.TOOLBAR_CLOSE_PALETTE:return h.default.createElement(p.default,{src:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22none%22%2F%3E%20%3Cpath%20d%3D%22M28%2C4H4A2%2C2%2C0%2C0%2C0%2C2%2C6V26a2%2C2%2C0%2C0%2C0%2C2%2C2H28a2%2C2%2C0%2C0%2C0%2C2-2V6A2%2C2%2C0%2C0%2C0%2C28%2C4Zm0%2C11H19.1l2.5-2.5L20.1%2C11%2C15%2C16l5.1%2C5.1%2C1.5-1.5-2.5-2.5H28V26H12V6H28Z%22%2F%3E%3C%2Fsvg%3E",disabled:r});case f.TOOLBAR_TOGGLE_NOTIFICATION_PANEL:return h.default.createElement(p.default,{src:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Cpath%20d%3D%22M27%2C12V27H5V5H20V3H5A2%2C2%2C0%2C0%2C0%2C3%2C5V27a2%2C2%2C0%2C0%2C0%2C2%2C2H27a2%2C2%2C0%2C0%2C0%2C2-2V12Z%22%2F%3E%20%3Ccircle%20class%3D%22dot%22%20cx%3D%2226.5%22%20cy%3D%225.5%22%20r%3D%223.5%22%2F%3E%3C%2Fsvg%3E",disabled:r});default:return null}}},{key:"generateLabel",value:function(e,t,r,a){var n="toolbar-icon-label";return n+=this.generateLabelType(r,a),n+=t?" disabled":"",h.default.createElement("div",{className:n},e)}},{key:"generateLabelType",value:function(e,t){return e?" overflow":"before"===t?" before":"after"===t?" after":""}},{key:"generateIcon",value:function(e){var t=this.getDefaultIcon(e);if(e.iconEnabled){var r=e.iconEnabled,a=e.iconDisabled||e.iconEnabled,n=e.enable?r:a,o="toolbar-icon-"+this.props.instanceId+" -"+e.action;t="string"==typeof n?h.default.createElement(p.default,{id:o,src:n,disabled:!e.enable}):n}return t?h.default.createElement("div",{className:"toolbar-icon"},t):null}},{key:"actionClickHandler",value:function(){this.props.toolbarActionHandler(this.props.actionObj.action)}},{key:"generateButton",value:function(e){var t=null,r=null;this.props.overflow?r=this.generateLabel(e.label,!e.enable,!0):"before"===e.incLabelWithIcon?t=this.generateLabel(e.label,!e.enable,!1,e.incLabelWithIcon):"after"===e.incLabelWithIcon&&(r=this.generateLabel(e.label,!e.enable,!1,e.incLabelWithIcon));var a=this.generateIcon(e),n=e.textContent?h.default.createElement("div",{className:"toolbar-text-content"}," ",e.textContent," "):null,o=u.classNames("toolbar-item-content",e.className?e.className:null,{overflow:this.props.overflow,disabled:!e.enable,default:!e.kind}),l=e.kind||"ghost",i=h.default.createElement("div",{className:o},t,a,r,n);return i=this.wrapInTooltip(i),i=h.default.createElement(s.Button,{kind:l,onClick:this.actionClickHandler,disabled:!e.enable,onFocus:this.props.onFocus,"aria-label":e.label},i)}},{key:"generateActionName",value:function(e){return this.props.actionObj.action+"-action"}},{key:"wrapInTooltip",value:function(e){if(!this.props.overflow&&(this.showLabelAsTip(this.props.actionObj)||this.props.actionObj.tooltip)){var t=this.generateActionName(),r=this.props.actionObj.tooltip?this.props.actionObj.tooltip:this.props.actionObj.label,a=t+"-"+this.props.instanceId+"-tooltip",n=!!this.props.actionObj.enable&&this.props.actionObj.enable;return h.default.createElement(i,{id:a,tip:r,disable:!n,className:"icon-tooltip"},e)}return e}},{key:"showLabelAsTip",value:function(e){return!!e.label&&("before"!==e.incLabelWithIcon&&"after"!==e.incLabelWithIcon)}},{key:"render",value:function(){var e=this.props.actionObj,t=this.generateActionName(),r=null;r=e.jsx?this.wrapInTooltip(e.jsx):this.generateButton(e);var a=!this.props.overflow||null,n=e.kind?e.kind:"default",o=u.classNames({"toolbar-overflow-menu-item":this.props.overflow,"toolbar-item":!this.props.overflow&&!e.jsx,"toolbar-jsx-item":!this.props.overflow&&e.jsx,"toolbar-overflow-jsx-item":this.props.overflow&&e.jsx,"toolbar-item-selected":e.isSelected},n,t);return h.default.createElement("div",{className:o,"data-toolbar-item":a},r)}}]),n}(h.default.Component);function _(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=a._getPrototypeOf(e);if(t){var o=a._getPrototypeOf(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return a._possibleConstructorReturn(this,r)}}var D=function(e){a._inherits(n,e);var t=_(n);function n(e){var o;return r._classCallCheck(this,n),(o=t.call(this,e)).toggleExtendedMenu=o.toggleExtendedMenu.bind(a._assertThisInitialized(o)),o}return r._createClass(n,[{key:"toggleExtendedMenu",value:function(){this.props.toggleExtendedMenu(this.props.index)}},{key:"render",value:function(){var e=this.props.showExtendedMenu?this.props.generateExtensionMenuItems(this.props.index):[],t=this.props.showExtendedMenu?"":"toolbar-popover-list-hide",r=null;e.length>0&&(r=h.default.createElement("div",{className:"toolbar-popover-list "+t},e));var a="toolbar-spacer toolbar-index-"+this.props.index;return h.default.createElement("div",{className:a},h.default.createElement("div",{className:"toolbar-overflow-item"},h.default.createElement(s.Button,{kind:"ghost",onClick:this.toggleExtendedMenu,onFocus:this.props.onFocus,"aria-label":this.props.label},h.default.createElement("div",{className:"toolbar-item-content default"},h.default.createElement("div",{className:"toolbar-icon"},h.default.createElement(d.OverflowMenuVertical16,null))))),r)}}]),n}(h.default.Component);function k(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=a._getPrototypeOf(e);if(t){var o=a._getPrototypeOf(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return a._possibleConstructorReturn(this,r)}}var L=function(e){a._inherits(n,e);var t=k(n);function n(){return r._classCallCheck(this,n),t.apply(this,arguments)}return r._createClass(n,[{key:"render",value:function(){var e=this.props.overflow?"toolbar-divider-overflow":"toolbar-divider";return h.default.createElement("div",{className:e,"data-toolbar-item":!0,tabIndex:-1,"aria-hidden":!0}," ")}}]),n}(h.default.Component);function M(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=a._getPrototypeOf(e);if(t){var o=a._getPrototypeOf(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return a._possibleConstructorReturn(this,r)}}var N=function(e){a._inherits(o,e);var n=M(o);function o(e){var t;return r._classCallCheck(this,o),(t=n.call(this,e)).state={showExtendedMenuIndex:-1},t.leftBar=[],t.rightBar=[],t.onFocus=t.onFocus.bind(a._assertThisInitialized(t)),t.onToolbarResize=t.onToolbarResize.bind(a._assertThisInitialized(t)),t.toggleExtendedMenu=t.toggleExtendedMenu.bind(a._assertThisInitialized(t)),t.generateExtensionMenuItems=t.generateExtensionMenuItems.bind(a._assertThisInitialized(t)),t}return r._createClass(o,[{key:"onFocus",value:function(){this.setLeftBarItemsTabIndex(),this.setRightBarItemsTabIndex()}},{key:"onScroll",value:function(e){e.currentTarget.scroll(0,0),e.preventDefault()}},{key:"onToolbarResize",value:function(){this.state.showExtendedMenuIndex>-1&&this.setState({showExtendedMenuIndex:-1}),this.setLeftBarItemsTabIndex(),this.setRightBarItemsTabIndex()}},{key:"setLeftBarItemsTabIndex",value:function(){var e=this.getBar("left");if(e){for(var t=e.querySelectorAll("[data-toolbar-item=true]")||[],r=this.getTopOfFirstOverflowItem(e),a=-1,n=0;n<t.length;n++){var o=t[n].getBoundingClientRect();this.setOverflowItemButtonTabIndex(n,-1,e),o.top===r?(a=n,this.setToolbarItemButtonTabIndex(t[n],0)):this.setToolbarItemButtonTabIndex(t[n],-1)}a<t.length&&this.setOverflowItemButtonTabIndex(a+1,0,e)}}},{key:"setRightBarItemsTabIndex",value:function(){for(var e=this.getRightBarItems(),t=0,r=0;r<e.length;r++){var a=e[r].getBoundingClientRect();0===r&&(t=a.top),a.top===t?this.setToolbarItemButtonTabIndex(e[r],0):this.setToolbarItemButtonTabIndex(e[r],-1)}}},{key:"getBar",value:function(e){var t=this.props.instanceId;return document.querySelector(".toolbar-div[instanceid='".concat(t,"'] > .toolbar-").concat(e,"-bar"))||[]}},{key:"getRightBarItems",value:function(){var e=this.getBar("right");return e&&e.querySelectorAll("[data-toolbar-item=true]")||[]}},{key:"getTopOfFirstOverflowItem",value:function(e){var t=this.getOverflowItem(0,e);return t?t.getBoundingClientRect().top:0}},{key:"getOverflowItem",value:function(e,t){var r="toolbar-index-"+e;return t.getElementsByClassName(r)[0]}},{key:"setToolbarItemButtonTabIndex",value:function(e,t){var r=e.querySelector("button");r&&r.setAttribute("tabindex",t)}},{key:"setOverflowItemButtonTabIndex",value:function(e,t,r){var a=this.getOverflowItem(e,r);if(a){var n=a.querySelector("button");n&&n.setAttribute("tabindex",t)}}},{key:"generateToolbarItems",value:function(e,t,r){for(var a=[],n=0;n<e.length;n++){var o=e[n];o&&(r&&!o.divider&&a.push(this.generateOverflowIcon(n)),a.push(this.generateToolbarItem(o,n,t)))}return a}},{key:"generateToolbarItem",value:function(e,t,r){var a=null;return e&&(a=e.divider?h.default.createElement(L,{key:"toolbar-item-key-"+t,overflow:r}):h.default.createElement(F,{key:"toolbar-item-key-"+t,actionObj:e,toolbarActionHandler:this.props.toolbarActionHandler,overflow:r,instanceId:this.props.instanceId,onFocus:this.onFocus})),a}},{key:"generateOverflowIcon",value:function(e){var t=this.props.additionalText?this.props.additionalText.overflowMenuLabel:"";return h.default.createElement(D,{key:"toolbar-overflow-item-key-"+e,index:e,showExtendedMenu:this.state.showExtendedMenuIndex===e,toggleExtendedMenu:this.toggleExtendedMenu,generateExtensionMenuItems:this.generateExtensionMenuItems,onFocus:this.onFocus,label:t})}},{key:"generateExtensionMenuItems",value:function(e){var t=this.generateRightOverflowItems();t.reverse();var r=this.leftBar.slice(e).concat(t);return this.generateToolbarItems(r,!0,!1)}},{key:"generateRightOverflowItems",value:function(){for(var e=[],t=this.getRightBarItems(),r=0,a=0;a<t.length;a++){var n=t[a].getBoundingClientRect();0===a&&(r=n.top),n.top!==r&&e.push(this.rightBar[a])}return e}},{key:"toggleExtendedMenu",value:function(e){var t=e===this.state.showExtendedMenuIndex?-1:e;this.setState({showExtendedMenuIndex:t})}},{key:"render",value:function(){this.leftBar=this.props.config.leftBar||[],this.rightBar=this.props.config.rightBar||[],this.rightBar=t._toConsumableArray(this.rightBar).reverse()||[];var e=this.generateToolbarItems(this.leftBar,!1,!0),r=this.generateToolbarItems(this.rightBar,!1,!1);return h.default.createElement("section",{"aria-label":this.props.intl.formatMessage({id:"toolbar.label",defaultMessage:A["toolbar.label"]}),role:"toolbar"},h.default.createElement(v.default,{handleWidth:!0,onResize:this.onToolbarResize},h.default.createElement("div",{className:"toolbar-div",instanceid:this.props.instanceId},h.default.createElement("div",{className:"toolbar-left-bar",onScroll:this.onScroll},e),h.default.createElement("div",{className:"toolbar-right-bar"},r))))}}]),o}(h.default.Component),H=o.injectIntl(N);exports.Toolbar=H,exports.defaultToolbarMessages=A,exports.toNumber_1=B;
|
|
2
|
+
//# sourceMappingURL=toolbar-85e6c77b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar-85e6c77b.js","sources":["../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/toNumber.js","../src/toolbar/toolbar-action-item.jsx","../assets/images/zoom_to_fit.svg","../assets/images/arrange_vertically.svg","../assets/images/arrange_horizontally.svg","../assets/images/palette/palette_open.svg","../assets/images/palette/palette_close.svg","../assets/images/notification_counter_icon.svg","../src/toolbar/toolbar-overflow-item.jsx","../src/toolbar/toolbar-divider-item.jsx","../src/toolbar/toolbar.jsx"],"sourcesContent":["/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport Tooltip from \"../tooltip/tooltip.jsx\";\nimport ArrangeHorizontally from \"./../../assets/images/arrange_horizontally.svg\";\nimport ArrangeVertically from \"./../../assets/images/arrange_vertically.svg\";\nimport ToggleNotificationPanel from \"./../../assets/images/notification_counter_icon.svg\";\nimport PaletteClose from \"./../../assets/images/palette/palette_close.svg\";\nimport PaletteOpen from \"./../../assets/images/palette/palette_open.svg\";\nimport ZoomToFit from \"./../../assets/images/zoom_to_fit.svg\";\n\nimport { Button } from \"carbon-components-react\";\nimport SVG from \"react-inlinesvg\";\nimport classNames from \"classnames\";\nimport { StopFilledAlt16, Play16, Undo16, Redo16, Cut16, Copy16, Paste16,\n\tAddComment16, TrashCan16, ZoomIn16, ZoomOut16 } from \"@carbon/icons-react\";\nimport { TOOLBAR_STOP, TOOLBAR_RUN, TOOLBAR_UNDO, TOOLBAR_REDO, TOOLBAR_CUT,\n\tTOOLBAR_COPY, TOOLBAR_PASTE, TOOLBAR_CREATE_AUTO_COMMENT,\n\tTOOLBAR_DELETE_SELECTED_OBJECTS, TOOLBAR_ZOOM_IN, TOOLBAR_ZOOM_OUT, TOOLBAR_ZOOM_FIT,\n\tTOOLBAR_ARRANGE_HORIZONALLY, TOOLBAR_ARRANGE_VERTICALLY, TOOLBAR_OPEN_PALETTE,\n\tTOOLBAR_CLOSE_PALETTE, TOOLBAR_TOGGLE_NOTIFICATION_PANEL }\n\tfrom \"../common-canvas/constants/canvas-constants.js\";\n\nclass ToolbarActionItem extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.actionClickHandler = this.actionClickHandler.bind(this);\n\t}\n\n\t// Returns a default icon, if there is one, for the action passed in. The\n\t// icon may be overridden by the iconTypeOverride field if it is provided.\n\t// It also may be set to disabled state.\n\tgetDefaultIcon(actionObj) {\n\t\tconst iconType = actionObj.iconTypeOverride ? actionObj.iconTypeOverride : actionObj.action;\n\t\tconst disabled = !actionObj.enable;\n\n\t\tswitch (iconType) {\n\t\tcase (TOOLBAR_STOP):\n\t\t\treturn <StopFilledAlt16 disabled={disabled} />;\n\t\tcase (TOOLBAR_RUN):\n\t\t\treturn <Play16 disabled={disabled} />;\n\t\tcase (TOOLBAR_UNDO):\n\t\t\treturn <Undo16 disabled={disabled} />;\n\t\tcase (TOOLBAR_REDO):\n\t\t\treturn <Redo16 disabled={disabled} />;\n\t\tcase (TOOLBAR_CUT):\n\t\t\treturn <Cut16 disabled={disabled} />;\n\t\tcase (TOOLBAR_COPY):\n\t\t\treturn <Copy16 disabled={disabled} />;\n\t\tcase (TOOLBAR_PASTE):\n\t\t\treturn <Paste16 disabled={disabled} />;\n\t\tcase (TOOLBAR_CREATE_AUTO_COMMENT):\n\t\t\treturn <AddComment16 disabled={disabled} />;\n\t\tcase (TOOLBAR_DELETE_SELECTED_OBJECTS):\n\t\t\treturn <TrashCan16 disabled={disabled} />;\n\t\tcase (TOOLBAR_ZOOM_IN):\n\t\t\treturn <ZoomIn16 disabled={disabled} />;\n\t\tcase (TOOLBAR_ZOOM_OUT):\n\t\t\treturn <ZoomOut16 disabled={disabled} />;\n\n\t\tcase (TOOLBAR_ZOOM_FIT):\n\t\t\treturn <SVG src={ZoomToFit} disabled={disabled} />;\n\t\tcase (TOOLBAR_ARRANGE_HORIZONALLY):\n\t\t\treturn <SVG src={ArrangeVertically} disabled={disabled} />;\n\t\tcase (TOOLBAR_ARRANGE_VERTICALLY):\n\t\t\treturn <SVG src={ArrangeHorizontally} disabled={disabled} />;\n\t\tcase (TOOLBAR_OPEN_PALETTE):\n\t\t\treturn <SVG src={PaletteOpen} disabled={disabled} />;\n\t\tcase (TOOLBAR_CLOSE_PALETTE):\n\t\t\treturn <SVG src={PaletteClose} disabled={disabled} />;\n\t\tcase (TOOLBAR_TOGGLE_NOTIFICATION_PANEL):\n\t\t\treturn <SVG src={ToggleNotificationPanel} disabled={disabled} />;\n\n\t\tdefault:\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tgenerateLabel(label, disable, overflow, incLabelWithIcon) {\n\t\tlet className = \"toolbar-icon-label\";\n\t\tclassName += this.generateLabelType(overflow, incLabelWithIcon);\n\t\tclassName += disable ? \" disabled\" : \"\";\n\t\treturn (<div className={className}>{label}</div>);\n\t}\n\n\tgenerateLabelType(overflow, inLabelWithIcon) {\n\t\tif (overflow) {\n\t\t\treturn \" overflow\";\n\t\t} else if (inLabelWithIcon === \"before\") {\n\t\t\treturn \" before\";\n\t\t} else if (inLabelWithIcon === \"after\") {\n\t\t\treturn \" after\";\n\t\t}\n\t\treturn \"\";\n\t}\n\n\tgenerateIcon(actionObj) {\n\t\tlet icon = this.getDefaultIcon(actionObj);\n\n\t\t// Host application provided icon. This will override any default icon.\n\t\tif (actionObj.iconEnabled) {\n\t\t\tconst iconEnabled = actionObj.iconEnabled;\n\t\t\tconst iconDisabled = actionObj.iconDisabled || actionObj.iconEnabled;\n\t\t\tconst customIcon = actionObj.enable ? iconEnabled : iconDisabled;\n\t\t\tconst id = \"toolbar-icon-\" + this.props.instanceId + \" -\" + actionObj.action;\n\n\t\t\tif (typeof customIcon === \"string\") {\n\t\t\t\ticon = (<SVG id={id} src={customIcon} disabled={!actionObj.enable} />);\n\t\t\t} else {\n\t\t\t\ticon = customIcon;\n\t\t\t}\n\t\t}\n\n\t\tif (icon) {\n\t\t\treturn (\n\t\t\t\t<div className={\"toolbar-icon\"}>\n\t\t\t\t\t{icon}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\n\tactionClickHandler() {\n\t\tthis.props.toolbarActionHandler(this.props.actionObj.action);\n\t}\n\n\tgenerateButton(actionObj) {\n\t\tlet labelBefore = null;\n\t\tlet labelAfter = null;\n\n\t\tif (this.props.overflow) {\n\t\t\tlabelAfter = this.generateLabel(actionObj.label, !actionObj.enable, true);\n\n\t\t} else if (actionObj.incLabelWithIcon === \"before\") {\n\t\t\tlabelBefore = this.generateLabel(actionObj.label, !actionObj.enable, false, actionObj.incLabelWithIcon);\n\n\t\t} else if (actionObj.incLabelWithIcon === \"after\") {\n\t\t\tlabelAfter = this.generateLabel(actionObj.label, !actionObj.enable, false, actionObj.incLabelWithIcon);\n\t\t}\n\n\t\tconst icon = this.generateIcon(actionObj);\n\t\tconst textContent = actionObj.textContent ? (<div className=\"toolbar-text-content\"> {actionObj.textContent} </div>) : null;\n\n\t\tconst itemContentClassName = classNames(\n\t\t\t\"toolbar-item-content\",\n\t\t\tactionObj.className ? actionObj.className : null,\n\t\t\t{ \"overflow\": this.props.overflow, \"disabled\": !actionObj.enable, \"default\": !actionObj.kind });\n\n\t\t// If no 'kind' is set, use ghost and then override colors using the \"default\" class in innerDivClassName.\n\t\tconst kind = actionObj.kind || \"ghost\";\n\n\t\tlet buttonContent = (\n\t\t\t<div className={itemContentClassName}>\n\t\t\t\t{labelBefore}\n\t\t\t\t{icon}\n\t\t\t\t{labelAfter}\n\t\t\t\t{textContent}\n\t\t\t</div>\n\t\t);\n\n\t\tbuttonContent = this.wrapInTooltip(buttonContent);\n\n\t\tbuttonContent = (\n\t\t\t<Button kind={kind}\n\t\t\t\tonClick={this.actionClickHandler}\n\t\t\t\tdisabled={!actionObj.enable}\n\t\t\t\tonFocus={this.props.onFocus}\n\t\t\t\taria-label={actionObj.label}\n\t\t\t>\n\t\t\t\t{buttonContent}\n\t\t\t</Button>\n\t\t);\n\n\t\treturn buttonContent;\n\t}\n\n\tgenerateActionName(actionObj) {\n\t\treturn this.props.actionObj.action + \"-action\";\n\t}\n\n\twrapInTooltip(content) {\n\t\tif (!this.props.overflow && (this.showLabelAsTip(this.props.actionObj) || this.props.actionObj.tooltip)) {\n\t\t\tconst actionName = this.generateActionName();\n\t\t\tconst tipText = this.props.actionObj.tooltip ? this.props.actionObj.tooltip : this.props.actionObj.label;\n\t\t\tconst tooltipId = actionName + \"-\" + this.props.instanceId + \"-tooltip\";\n\t\t\tconst enableTooltip = this.props.actionObj.enable ? this.props.actionObj.enable : false;\n\n\t\t\treturn (\n\t\t\t\t<Tooltip id={tooltipId} tip={tipText} disable={!enableTooltip} className=\"icon-tooltip\" >\n\t\t\t\t\t{content}\n\t\t\t\t</Tooltip>\n\t\t\t);\n\t\t}\n\t\treturn content;\n\t}\n\n\t// Returns true if the label should be shown as a tooltip or false if not.\n\t// We do not show the label as a tooltip if it is already shown in the\n\t// toolbar next to the icon (i.e. incLabelWithIcon is set to something).\n\tshowLabelAsTip(actionObj) {\n\t\tif (actionObj.label) {\n\t\t\tif (actionObj.incLabelWithIcon === \"before\" ||\n\t\t\t\t\tactionObj.incLabelWithIcon === \"after\") {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\trender() {\n\t\tconst actionObj = this.props.actionObj;\n\t\tconst actionName = this.generateActionName();\n\t\tlet divContent = null;\n\n\t\tif (actionObj.jsx) {\n\t\t\tdivContent = this.wrapInTooltip(actionObj.jsx);\n\t\t} else {\n\t\t\tdivContent = this.generateButton(actionObj);\n\t\t}\n\n\t\tconst isToolbarItem = this.props.overflow ? null : true; // null wil make data-toolbar-item be removed\n\t\tconst kindAsClass = actionObj.kind ? actionObj.kind : \"default\";\n\n\t\tconst itemClassName = classNames(\n\t\t\t{ \"toolbar-overflow-menu-item\": this.props.overflow,\n\t\t\t\t\"toolbar-item\": !this.props.overflow && !actionObj.jsx,\n\t\t\t\t\"toolbar-jsx-item\": !this.props.overflow && actionObj.jsx,\n\t\t\t\t\"toolbar-overflow-jsx-item\": this.props.overflow && actionObj.jsx,\n\t\t\t\t\"toolbar-item-selected\": actionObj.isSelected },\n\t\t\tkindAsClass,\n\t\t\tactionName);\n\n\t\treturn (\n\t\t\t<div className={itemClassName} data-toolbar-item={isToolbarItem}>\n\t\t\t\t{divContent}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nToolbarActionItem.propTypes = {\n\tactionObj: PropTypes.shape({\n\t\taction: PropTypes.string.isRequired,\n\t\tlabel: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object\n\t\t]),\n\t\tincLabelWithIcon: PropTypes.oneOf([\"no\", \"before\", \"after\"]),\n\t\tenable: PropTypes.bool,\n\t\ticonEnabled: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object\n\t\t]),\n\t\ticonDisabled: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object\n\t\t]),\n\t\tclassName: PropTypes.string,\n\t\ttextContent: PropTypes.string,\n\t\ticonTypeOverride: PropTypes.string,\n\t\tisSelected: PropTypes.bool,\n\t\tkind: PropTypes.string,\n\t\tjsx: PropTypes.object,\n\t\ttooltip: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object\n\t\t])\n\t}),\n\ttoolbarActionHandler: PropTypes.func.isRequired,\n\tinstanceId: PropTypes.number.isRequired,\n\toverflow: PropTypes.bool,\n\tonFocus: PropTypes.func\n};\n\nexport default ToolbarActionItem;\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%20fill%3D%22currentColor%22%3E%20%3Cpath%20d%3D%22M6%2C7.5h4v1H6Z%22%2F%3E%20%3Cpath%20d%3D%22M4%2C12h8a.94.94%2C0%2C0%2C0%2C1-1V5a.94.94%2C0%2C0%2C0-1-1H4A.94.94%2C0%2C0%2C0%2C3%2C5v6A.94.94%2C0%2C0%2C0%2C4%2C12ZM4%2C5h8v6H4Z%22%2F%3E%20%3Cpolygon%20points%3D%222%203.5%201%203.5%201%201%203.5%201%203.5%202%202%202%202%203.5%22%2F%3E%20%3Cpolygon%20points%3D%2215%203.5%2014%203.5%2014%202%2012.5%202%2012.5%201%2015%201%2015%203.5%22%2F%3E%20%3Cpolygon%20points%3D%2215%2015%2012.5%2015%2012.5%2014%2014%2014%2014%2012.5%2015%2012.5%2015%2015%22%2F%3E%20%3Cpolygon%20points%3D%223.5%2015%201%2015%201%2012.5%202%2012.5%202%2014%203.5%2014%203.5%2015%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Crect%20x%3D%222%22%20y%3D%221.5%22%20width%3D%221%22%20height%3D%2213%22%2F%3E%3Crect%20x%3D%2213%22%20y%3D%221.5%22%20width%3D%221%22%20height%3D%2213%22%2F%3E%3Cpath%20d%3D%22M10.5%2C7.5h-5A.47.47%2C0%2C0%2C1%2C5%2C7V3a.47.47%2C0%2C0%2C1%2C.5-.5h5A.47.47%2C0%2C0%2C1%2C11%2C3V7A.47.47%2C0%2C0%2C1%2C10.5%2C7.5ZM6%2C6.5h4v-3H6Z%22%2F%3E%3Cpath%20d%3D%22M10.5%2C13.5h-5A.47.47%2C0%2C0%2C1%2C5%2C13V9a.47.47%2C0%2C0%2C1%2C.5-.5h5A.47.47%2C0%2C0%2C1%2C11%2C9v4A.47.47%2C0%2C0%2C1%2C10.5%2C13.5ZM6%2C12.5h4v-3H6Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2016%2016%22%3E%3Crect%20x%3D%221.5%22%20y%3D%222%22%20width%3D%2213%22%20height%3D%221%22%2F%3E%3Crect%20x%3D%221.5%22%20y%3D%2213%22%20width%3D%2213%22%20height%3D%221%22%2F%3E%3Cpath%20d%3D%22M7%2C10.5H2a.47.47%2C0%2C0%2C1-.5-.5V6A.47.47%2C0%2C0%2C1%2C2%2C5.5H7a.47.47%2C0%2C0%2C1%2C.5.5v4A.47.47%2C0%2C0%2C1%2C7%2C10.5Zm-4.5-1h4v-3h-4Z%22%2F%3E%3Cpath%20d%3D%22M14%2C10.5H9a.47.47%2C0%2C0%2C1-.5-.5V6A.47.47%2C0%2C0%2C1%2C9%2C5.5h5a.47.47%2C0%2C0%2C1%2C.5.5v4A.47.47%2C0%2C0%2C1%2C14%2C10.5Zm-4.5-1h4v-3h-4Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22none%22%2F%3E%20%3Cpath%20d%3D%22M28%2C4H4A2%2C2%2C0%2C0%2C0%2C2%2C6V26a2%2C2%2C0%2C0%2C0%2C2%2C2H28a2%2C2%2C0%2C0%2C0%2C2-2V6A2%2C2%2C0%2C0%2C0%2C28%2C4Zm0%2C22H12V17.1h8.9l-2.5%2C2.5%2C1.5%2C1.5L25%2C16l-5.1-5.1-1.5%2C1.5%2C2.5%2C2.5H12V6H28Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Crect%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22none%22%2F%3E%20%3Cpath%20d%3D%22M28%2C4H4A2%2C2%2C0%2C0%2C0%2C2%2C6V26a2%2C2%2C0%2C0%2C0%2C2%2C2H28a2%2C2%2C0%2C0%2C0%2C2-2V6A2%2C2%2C0%2C0%2C0%2C28%2C4Zm0%2C11H19.1l2.5-2.5L20.1%2C11%2C15%2C16l5.1%2C5.1%2C1.5-1.5-2.5-2.5H28V26H12V6H28Z%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%20fill%3D%22currentColor%22%3E%20%3Cpath%20d%3D%22M27%2C12V27H5V5H20V3H5A2%2C2%2C0%2C0%2C0%2C3%2C5V27a2%2C2%2C0%2C0%2C0%2C2%2C2H27a2%2C2%2C0%2C0%2C0%2C2-2V12Z%22%2F%3E%20%3Ccircle%20class%3D%22dot%22%20cx%3D%2226.5%22%20cy%3D%225.5%22%20r%3D%223.5%22%2F%3E%3C%2Fsvg%3E\"","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { Button } from \"carbon-components-react\";\nimport { OverflowMenuVertical16 } from \"@carbon/icons-react\";\n\nclass ToolbarOverflowItem extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.toggleExtendedMenu = this.toggleExtendedMenu.bind(this);\n\t}\n\n\ttoggleExtendedMenu() {\n\t\tthis.props.toggleExtendedMenu(this.props.index);\n\t}\n\n\trender() {\n\t\tconst menuItems = this.props.showExtendedMenu ? this.props.generateExtensionMenuItems(this.props.index) : [];\n\t\tconst subMenuClassName = this.props.showExtendedMenu ? \"\" : \"toolbar-popover-list-hide\";\n\n\t\tlet overflowMenu = null;\n\t\tif (menuItems.length > 0) {\n\t\t\toverflowMenu = (\n\t\t\t\t<div className={\"toolbar-popover-list \" + subMenuClassName}>\n\t\t\t\t\t{menuItems}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst className = \"toolbar-spacer toolbar-index-\" + this.props.index;\n\n\t\treturn (\n\t\t\t<div className={className} >\n\t\t\t\t<div className={\"toolbar-overflow-item\"}>\n\t\t\t\t\t<Button kind=\"ghost\"\n\t\t\t\t\t\tonClick={this.toggleExtendedMenu}\n\t\t\t\t\t\tonFocus={this.props.onFocus}\n\t\t\t\t\t\taria-label={this.props.label}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"toolbar-item-content default\">\n\t\t\t\t\t\t\t<div className=\"toolbar-icon\">\n\t\t\t\t\t\t\t\t<OverflowMenuVertical16 />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t\t{overflowMenu}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nToolbarOverflowItem.propTypes = {\n\tshowExtendedMenu: PropTypes.bool.isRequired,\n\ttoggleExtendedMenu: PropTypes.func.isRequired,\n\tindex: PropTypes.number.isRequired,\n\tgenerateExtensionMenuItems: PropTypes.func,\n\tonFocus: PropTypes.func,\n\tlabel: PropTypes.string\n};\n\nexport default ToolbarOverflowItem;\n","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\nclass ToolbarDividerItem extends React.Component {\n\n\trender() {\n\t\tconst dividerClassName = this.props.overflow ? \"toolbar-divider-overflow\" : \"toolbar-divider\";\n\n\t\t// Add a space as content. When using display: inline-block the div needs\n\t\t// some content so it is displayed inline with the other elements of the\n\t\t// toolbar. With no content it is displayed above (!) the other elements.\n\t\treturn (\n\t\t\t<div className={dividerClassName} data-toolbar-item tabIndex={-1} aria-hidden > </div>\n\t\t);\n\t}\n}\n\nToolbarDividerItem.propTypes = {\n\toverflow: PropTypes.bool\n};\n\nexport default ToolbarDividerItem;\n","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { injectIntl } from \"react-intl\";\nimport PropTypes from \"prop-types\";\nimport defaultMessages from \"../../locales/toolbar/locales/en.json\";\nimport ReactResizeDetector from \"react-resize-detector\";\n\nimport ToolbarActionItem from \"./toolbar-action-item.jsx\";\nimport ToolbarOverflowItem from \"./toolbar-overflow-item.jsx\";\nimport ToolbarDividerItem from \"./toolbar-divider-item.jsx\";\n\nclass Toolbar extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tshowExtendedMenuIndex: -1\n\t\t};\n\n\t\tthis.leftBar = [];\n\t\tthis.rightBar = [];\n\n\t\tthis.onFocus = this.onFocus.bind(this);\n\t\tthis.onToolbarResize = this.onToolbarResize.bind(this);\n\t\tthis.toggleExtendedMenu = this.toggleExtendedMenu.bind(this);\n\t\tthis.generateExtensionMenuItems = this.generateExtensionMenuItems.bind(this);\n\t}\n\n\t// When the toolbar is initially opened the tabindex for each element may not\n\t// be set correctly because of the time it takes to initially render the DOM.\n\t// Typically, this means the tabindex is not set correctly on whichever\n\t// overflow menu icon is displayed. Therefore, as the user moves the focus\n\t// to the first element in the toolbar (whose tabindex IS typically OK) we\n\t// set the tabindex for all elements again, this then sets the overflow\n\t// icon's tabindex correctly.\n\tonFocus() {\n\t\tthis.setLeftBarItemsTabIndex();\n\t\tthis.setRightBarItemsTabIndex();\n\t}\n\n\t// Prevents the inline-block elements of the left bar being scrolled to\n\t// reveal the wrapped elements, when the user tabs through the elements.\n\tonScroll(evt) {\n\t\tevt.currentTarget.scroll(0, 0);\n\t\tevt.preventDefault();\n\t}\n\n\t// Close the overflow menu, if it is open, when the toolbar is resized in\n\t// case a new menu needs to be displayed with the new toolbar width.\n\tonToolbarResize() {\n\t\tif (this.state.showExtendedMenuIndex > -1) {\n\t\t\tthis.setState({ showExtendedMenuIndex: -1 });\n\t\t}\n\n\t\tthis.setLeftBarItemsTabIndex();\n\t\tthis.setRightBarItemsTabIndex();\n\t}\n\n\t// Sets the tabindex on all left bar items so tabbing works correctly. This\n\t// falls into two parts: 1. Set the tabindex for all overflow items to -1\n\t// except the overflow item that is displayed (if there is one). 2. Set the\n\t// tabindex of all hidden regular toolbar items to -1 and to 0 for all\n\t// displayed regular toolbar items.\n\t// Note: We detect the y coordinate of the 'top row' by using the top of\n\t// the first overflow icon. This is because the toolbar might be compressed\n\t// to the extent that the first overflow icon is the only item on the left\n\t// of the toolbar.\n\tsetLeftBarItemsTabIndex() {\n\t\tconst bar = this.getBar(\"left\");\n\t\tif (!bar) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst items = bar.querySelectorAll(\"[data-toolbar-item=true]\") || [];\n\t\tconst topRow = this.getTopOfFirstOverflowItem(bar);\n\t\tlet lastTopRowElement = -1;\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\tconst itemRect = items[i].getBoundingClientRect();\n\n\t\t\tthis.setOverflowItemButtonTabIndex(i, -1, bar);\n\n\t\t\tif (itemRect.top === topRow) {\n\t\t\t\tlastTopRowElement = i;\n\t\t\t\tthis.setToolbarItemButtonTabIndex(items[i], 0);\n\t\t\t} else {\n\t\t\t\tthis.setToolbarItemButtonTabIndex(items[i], -1);\n\t\t\t}\n\t\t}\n\n\t\tif (lastTopRowElement < items.length) {\n\t\t\tthis.setOverflowItemButtonTabIndex(lastTopRowElement + 1, 0, bar);\n\t\t}\n\t}\n\n\t// Sets the tabindex on all right bar items so tabbing works correctly. This\n\t// involves setting the tabindex of all hidden regular toolbar items to -1\n\t// and to 0 for all displayed regular toolbar items.\n\tsetRightBarItemsTabIndex() {\n\t\tconst items = this.getRightBarItems();\n\t\tlet topRow = 0;\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\tconst itemRect = items[i].getBoundingClientRect();\n\n\t\t\tif (i === 0) {\n\t\t\t\ttopRow = itemRect.top;\n\t\t\t}\n\n\t\t\tif (itemRect.top === topRow) {\n\t\t\t\tthis.setToolbarItemButtonTabIndex(items[i], 0);\n\t\t\t} else {\n\t\t\t\tthis.setToolbarItemButtonTabIndex(items[i], -1);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetBar(side) {\n\t\tconst id = this.props.instanceId;\n\t\tconst part = document.querySelector(`.toolbar-div[instanceid='${id}'] > .toolbar-${side}-bar`) || [];\n\t\treturn part;\n\t}\n\n\tgetRightBarItems() {\n\t\tconst bar = this.getBar(\"right\");\n\t\tif (!bar) {\n\t\t\treturn [];\n\t\t}\n\t\treturn bar.querySelectorAll(\"[data-toolbar-item=true]\") || [];\n\t}\n\n\tgetTopOfFirstOverflowItem(bar) {\n\t\tconst firstOverflowItem = this.getOverflowItem(0, bar);\n\t\tif (firstOverflowItem) {\n\t\t\tconst rect = firstOverflowItem.getBoundingClientRect();\n\t\t\treturn rect.top;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tgetOverflowItem(index, bar) {\n\t\tconst overflowClassName = \"toolbar-index-\" + index;\n\t\treturn bar.getElementsByClassName(overflowClassName)[0];\n\t}\n\n\tsetToolbarItemButtonTabIndex(item, tabIndex) {\n\t\tconst button = item.querySelector(\"button\");\n\t\tif (button) {\n\t\t\tbutton.setAttribute(\"tabindex\", tabIndex);\n\t\t}\n\t}\n\n\tsetOverflowItemButtonTabIndex(index, tabIndex, bar) {\n\t\tconst overflowItem = this.getOverflowItem(index, bar);\n\t\tif (overflowItem) {\n\t\t\tconst overflowButton = overflowItem.querySelector(\"button\");\n\t\t\tif (overflowButton) {\n\t\t\t\toverflowButton.setAttribute(\"tabindex\", tabIndex);\n\t\t\t}\n\t\t}\n\t}\n\n\tgenerateToolbarItems(actionDefinitions, overflow, withSpacer) {\n\t\tconst newItems = [];\n\n\t\tfor (let i = 0; i < actionDefinitions.length; i++) {\n\t\t\tconst actionObj = actionDefinitions[i];\n\t\t\tif (actionObj) {\n\t\t\t\tif (withSpacer && !actionObj.divider) {\n\t\t\t\t\tnewItems.push(this.generateOverflowIcon(i));\n\t\t\t\t}\n\t\t\t\tnewItems.push(this.generateToolbarItem(actionObj, i, overflow));\n\t\t\t}\n\t\t}\n\t\treturn newItems;\n\t}\n\n\tgenerateToolbarItem(actionObj, i, overflow) {\n\t\tlet jsx = null;\n\t\tif (actionObj) {\n\t\t\tif (actionObj.divider) {\n\t\t\t\tjsx = (\n\t\t\t\t\t<ToolbarDividerItem\n\t\t\t\t\t\tkey={\"toolbar-item-key-\" + i}\n\t\t\t\t\t\toverflow={overflow}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tjsx = (\n\t\t\t\t\t<ToolbarActionItem\n\t\t\t\t\t\tkey={\"toolbar-item-key-\" + i}\n\t\t\t\t\t\tactionObj={actionObj}\n\t\t\t\t\t\ttoolbarActionHandler={this.props.toolbarActionHandler}\n\t\t\t\t\t\toverflow={overflow}\n\t\t\t\t\t\tinstanceId={this.props.instanceId}\n\t\t\t\t\t\tonFocus={this.onFocus}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn jsx;\n\t}\n\n\tgenerateOverflowIcon(index) {\n\t\tconst label = this.props.additionalText ? this.props.additionalText.overflowMenuLabel : \"\";\n\t\tconst jsx = (\n\t\t\t<ToolbarOverflowItem\n\t\t\t\tkey={\"toolbar-overflow-item-key-\" + index}\n\t\t\t\tindex={index}\n\t\t\t\tshowExtendedMenu={this.state.showExtendedMenuIndex === index}\n\t\t\t\ttoggleExtendedMenu={this.toggleExtendedMenu}\n\t\t\t\tgenerateExtensionMenuItems={this.generateExtensionMenuItems}\n\t\t\t\tonFocus={this.onFocus}\n\t\t\t\tlabel={label}\n\t\t\t/>\n\t\t);\n\n\t\treturn jsx;\n\t}\n\n\t// Generates an array of action definition elements that correspond to the\n\t// hidden DOM items on the left and right of the toolbar. For any left bar\n\t// items we can use the leftIndex passed in to split the leftBar defintion\n\t// array, however for the right side we need to loop through the DOM items\n\t// and discover which is hidden and which is displayed.\n\tgenerateExtensionMenuItems(leftIndex) {\n\t\tconst rightItems = this.generateRightOverflowItems();\n\t\trightItems.reverse();\n\n\t\tconst overflowMenuBarItems = this.leftBar.slice(leftIndex).concat(rightItems);\n\t\tconst extensionItems = this.generateToolbarItems(overflowMenuBarItems, true, false);\n\t\treturn extensionItems;\n\t}\n\n\t// Generates an array of right side defintion items that correspond to\n\t// right side DOM items that are hidden.\n\tgenerateRightOverflowItems() {\n\t\tconst newDefItems = [];\n\t\tconst items = this.getRightBarItems();\n\t\tlet topRow = 0;\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\tconst rect = items[i].getBoundingClientRect();\n\n\t\t\tif (i === 0) {\n\t\t\t\ttopRow = rect.top;\n\t\t\t}\n\n\t\t\tif (rect.top !== topRow) {\n\t\t\t\tnewDefItems.push(this.rightBar[i]);\n\t\t\t}\n\t\t}\n\t\treturn newDefItems;\n\t}\n\n\ttoggleExtendedMenu(index) {\n\t\tconst newIndex = index === this.state.showExtendedMenuIndex ? -1 : index;\n\t\tthis.setState({ showExtendedMenuIndex: newIndex });\n\t}\n\n\trender() {\n\t\tthis.leftBar = this.props.config.leftBar || [];\n\t\tthis.rightBar = this.props.config.rightBar || [];\n\t\tthis.rightBar = [...this.rightBar].reverse() || [];\n\n\t\tconst leftItems = this.generateToolbarItems(this.leftBar, false, true);\n\t\tconst rightItems = this.generateToolbarItems(this.rightBar, false, false);\n\n\t\tconst canvasToolbar = (\n\t\t\t<section aria-label={this.props.intl.formatMessage({ id: \"toolbar.label\", defaultMessage: defaultMessages[\"toolbar.label\"] })} role=\"toolbar\">\n\t\t\t\t<ReactResizeDetector handleWidth onResize={this.onToolbarResize}>\n\t\t\t\t\t<div className=\"toolbar-div\" instanceid={this.props.instanceId}>\n\t\t\t\t\t\t<div className=\"toolbar-left-bar\" onScroll={this.onScroll}>\n\t\t\t\t\t\t\t{leftItems}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"toolbar-right-bar\">\n\t\t\t\t\t\t\t{rightItems}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</ReactResizeDetector>\n\t\t\t</section>\n\t\t);\n\t\treturn canvasToolbar;\n\t}\n}\n\nToolbar.propTypes = {\n\tintl: PropTypes.object.isRequired,\n\tconfig: PropTypes.object.isRequired,\n\tinstanceId: PropTypes.number,\n\ttoolbarActionHandler: PropTypes.func,\n\tadditionalText: PropTypes.object\n};\n\nexport default injectIntl(Toolbar);\n"],"names":["reWhitespace","trimmedEndIndex","string","index","length","test","charAt","reTrimStart","baseTrim","slice","replace","isObject","require$$1","isSymbol","require$$2","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber_1","value","other","valueOf","isBinary","props","actionClickHandler","_this","bind","actionObj","iconType","iconTypeOverride","action","disabled","enable","TOOLBAR_STOP","React","StopFilledAlt16","TOOLBAR_RUN","Play16","TOOLBAR_UNDO","Undo16","TOOLBAR_REDO","Redo16","TOOLBAR_CUT","Cut16","TOOLBAR_COPY","Copy16","TOOLBAR_PASTE","Paste16","TOOLBAR_CREATE_AUTO_COMMENT","AddComment16","TOOLBAR_DELETE_SELECTED_OBJECTS","TrashCan16","TOOLBAR_ZOOM_IN","ZoomIn16","TOOLBAR_ZOOM_OUT","ZoomOut16","TOOLBAR_ZOOM_FIT","SVG","src","TOOLBAR_ARRANGE_HORIZONALLY","TOOLBAR_ARRANGE_VERTICALLY","TOOLBAR_OPEN_PALETTE","TOOLBAR_CLOSE_PALETTE","TOOLBAR_TOGGLE_NOTIFICATION_PANEL","label","disable","overflow","incLabelWithIcon","className","this","generateLabelType","inLabelWithIcon","icon","getDefaultIcon","iconEnabled","iconDisabled","customIcon","id","instanceId","toolbarActionHandler","labelBefore","labelAfter","generateLabel","generateIcon","textContent","itemContentClassName","classNames","kind","buttonContent","wrapInTooltip","Button","onClick","onFocus","content","showLabelAsTip","tooltip","actionName","generateActionName","tipText","tooltipId","enableTooltip","Tooltip","tip","divContent","jsx","generateButton","isToolbarItem","kindAsClass","itemClassName","isSelected","Component","toggleExtendedMenu","menuItems","showExtendedMenu","generateExtensionMenuItems","subMenuClassName","overflowMenu","OverflowMenuVertical16","dividerClassName","tabIndex","Toolbar","state","showExtendedMenuIndex","leftBar","rightBar","onToolbarResize","setLeftBarItemsTabIndex","setRightBarItemsTabIndex","evt","currentTarget","scroll","preventDefault","setState","bar","getBar","items","querySelectorAll","topRow","getTopOfFirstOverflowItem","lastTopRowElement","i","itemRect","getBoundingClientRect","setOverflowItemButtonTabIndex","top","setToolbarItemButtonTabIndex","getRightBarItems","side","document","querySelector","firstOverflowItem","getOverflowItem","overflowClassName","getElementsByClassName","item","button","setAttribute","overflowItem","overflowButton","actionDefinitions","withSpacer","newItems","divider","push","generateOverflowIcon","generateToolbarItem","ToolbarDividerItem","key","ToolbarActionItem","additionalText","overflowMenuLabel","ToolbarOverflowItem","leftIndex","rightItems","generateRightOverflowItems","reverse","overflowMenuBarItems","concat","generateToolbarItems","newDefItems","rect","newIndex","config","_toConsumableArray","leftItems","intl","formatMessage","defaultMessage","defaultMessages","role","ReactResizeDetector","handleWidth","onResize","instanceid","onScroll","injectIntl"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
"action.attachNodeToLinks": "Attach {node_label} node to link",
|
|
5
5
|
"action.collapseSuperNodeInPlace": "Collapse supernode",
|
|
6
6
|
"action.commonProperties": "Save properties",
|
|
7
|
+
"action.colorComments": "Color {comments_count} comments",
|
|
7
8
|
"action.convertSuperNodeExternalToLocal": "Convert external supernode {node_label} to local",
|
|
8
9
|
"action.convertSuperNodeLocalToExternal": "Convert local supernode {node_label} to external",
|
|
9
10
|
"action.createComment": "Create comment",
|
|
@@ -16,8 +17,13 @@
|
|
|
16
17
|
"action.createSuperNode": "Create {node_label} supernode",
|
|
17
18
|
"action.deconstructSuperNode": "Deconstruct {node_label} supernode",
|
|
18
19
|
"action.deleteLink": "Delete link",
|
|
20
|
+
"action.deleteComments":"Delete {comments_count} comments",
|
|
21
|
+
"action.deleteNodes":"Delete {nodes_count} nodes",
|
|
22
|
+
"action.deleteLinks":"Delete {links_count} links",
|
|
23
|
+
"action.deleteCommentsLinks":"Delete {comments_count} comments and {links_count} links",
|
|
24
|
+
"action.deleteNodesLinks":"Delete {nodes_count} nodes and {links_count} links",
|
|
19
25
|
"action.deleteNodesCommentsLinks": "Delete {nodes_count} nodes, {comments_count} comments and {links_count} links",
|
|
20
|
-
"action.deleteNodesComments": "Delete {nodes_count} nodes
|
|
26
|
+
"action.deleteNodesComments": "Delete {nodes_count} nodes and {comments_count} comments",
|
|
21
27
|
"action.disconnectObjects": "Disconnect objects",
|
|
22
28
|
"action.displayPreviousPipeline": "Display previous pipline",
|
|
23
29
|
"action.displaySubPipeline": "Display supernode full page",
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
"action.attachNodeToLinks": "[Esperanto~Attach {node_label} node to link~~~~~~~eo]",
|
|
5
5
|
"action.collapseSuperNodeInPlace": "[Esperanto~Collapse supernode~~~~~~~eo]",
|
|
6
6
|
"action.commonProperties": "[Esperanto~Save properties~~~~~~~eo]",
|
|
7
|
+
"action.colorComments": "[Esperanto~Color {comments_count} comments~~~~~~~~eo]",
|
|
7
8
|
"action.convertSuperNodeExternalToLocal": "[Esperanto~Convert external supernode {node_label} to local~~~~~~~eo]",
|
|
8
9
|
"action.convertSuperNodeLocalToExternal": "[Esperanto~Convert local supernode {node_label} to external~~~~~~~eo]",
|
|
9
10
|
"action.createComment": "[Esperanto~Create comment~~~~~~~eo]",
|
|
@@ -15,9 +16,14 @@
|
|
|
15
16
|
"action.createNodeOnLink": "[Esperanto~Create {node_label} node and insert into link~~~~~~~eo]",
|
|
16
17
|
"action.createSuperNode": "[Esperanto~Create {node_label} supernode~~~~~~~eo]",
|
|
17
18
|
"action.deconstructSuperNode": "[Esperanto~Deconstruct {node_label} supernode~~~~~~~eo]",
|
|
19
|
+
"action.deleteComments":"[Esperanto~Delete {comments_count} comments~~~eo]",
|
|
20
|
+
"action.deleteNodes":"[Esperanto~Delete {nodes_count} nodes~~~eo]",
|
|
21
|
+
"action.deleteLinks":"[Esperanto~Delete {links_count} links~~~eo]",
|
|
22
|
+
"action.deleteCommentsLinks":"[Esperanto~Delete {comments_count} comments and {links_count} links~~~~eo]",
|
|
23
|
+
"action.deleteNodesLinks":"[Esperanto~Delete {nodes_count} nodes and {links_count} links~~~~eo]",
|
|
18
24
|
"action.deleteLink": "[Esperanto~Delete link~~~~~~~eo]",
|
|
19
25
|
"action.deleteNodesCommentsLinks": "[Esperanto~Delete {nodes_count} nodes, {comments_count} comments and {links_count} links~~~~~~~eo]",
|
|
20
|
-
"action.deleteNodesComments": "[Esperanto~Delete {nodes_count} nodes
|
|
26
|
+
"action.deleteNodesComments": "[Esperanto~Delete {nodes_count} nodes and {comments_count} comments~~~~~~~eo]",
|
|
21
27
|
"action.disconnectObjects": "[Esperanto~Disconnect objects~~~~~~~eo]",
|
|
22
28
|
"action.displayPreviousPipeline": "[Esperanto~Display previous pipline~~~~~~~eo]",
|
|
23
29
|
"action.displaySubPipeline": "[Esperanto~Display supernode full page~~~~~~~eo]",
|
|
@@ -24,6 +24,7 @@ const zhTW = require("./zh-tw.json");
|
|
|
24
24
|
const zhCN = require("./zh-cn.json");
|
|
25
25
|
const ru = require("./ru.json");
|
|
26
26
|
const eo = require("./eo.json");
|
|
27
|
+
const ko = require("./ko.json");
|
|
27
28
|
|
|
28
29
|
module.exports = {
|
|
29
30
|
"de": de,
|
|
@@ -36,5 +37,6 @@ module.exports = {
|
|
|
36
37
|
"zh-TW": zhTW,
|
|
37
38
|
"zh-CN": zhCN,
|
|
38
39
|
"ru": ru,
|
|
39
|
-
"eo": eo
|
|
40
|
+
"eo": eo,
|
|
41
|
+
"ko": ko
|
|
40
42
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"supernode.template.description": "이 수퍼노드는 공통 캔버스에서 작성되었습니다.",
|
|
3
|
+
"supernode.template.label": "수퍼노드",
|
|
4
|
+
"supernode.new.port.label": "수퍼노드에 대한 포트 바인딩",
|
|
5
|
+
"supernode.binding.node.label": "바인딩",
|
|
6
|
+
"supernode.binding.node.description": "수퍼노드 바인딩 노드",
|
|
7
|
+
"palette.saved.nodes.label": "저장된 노드",
|
|
8
|
+
"palette.saved.nodes.description": "이 범주의 노드는 이전에 플로우에서 저장되었습니다."
|
|
9
|
+
}
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
"canvas.selectAll": "Select all",
|
|
13
13
|
"canvas.undo": "Undo",
|
|
14
14
|
"canvas.redo": "Redo",
|
|
15
|
+
"canvas.undoCommand": "Undo: {undo_command}",
|
|
16
|
+
"canvas.redoCommand": "Redo: {redo_command}",
|
|
15
17
|
"canvas.deleteObject": "Delete",
|
|
16
18
|
"canvas.flowIsEmpty": "Your flow is empty.",
|
|
17
19
|
"canvas.addNodeToStart": "Get started by adding a node.",
|
|
@@ -19,6 +21,7 @@
|
|
|
19
21
|
"canvas.stateTagReadOnly": "Read-only",
|
|
20
22
|
"canvas.stateTagTipLocked": "This flow is locked and cannot be edited.",
|
|
21
23
|
"canvas.stateTagTipReadOnly": "This flow cannot be edited.",
|
|
24
|
+
"comment.colorBackground": "Color background",
|
|
22
25
|
"node.createSupernode": "Create supernode",
|
|
23
26
|
"node.createSupernodeExternal": "Create external supernode",
|
|
24
27
|
"node.expandSupernode": "Expand supernode",
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
"canvas.selectAll": "[Esperanto~Select all~~~~~~eo]",
|
|
13
13
|
"canvas.undo": "[Esperanto~Undo~eo]",
|
|
14
14
|
"canvas.redo": "[Esperanto~Redo~eo]",
|
|
15
|
+
"canvas.undoCommand": "[Esperanto~Undo: {undo_command}~~eo]",
|
|
16
|
+
"canvas.redoCommand": "[Esperanto~Redo: {redo_command}~~eo]",
|
|
15
17
|
"canvas.deleteObject": "[Esperanto~Delete~eo]",
|
|
16
18
|
"canvas.flowIsEmpty": "[Esperanto~Your flow is empty.~~~~~eo]",
|
|
17
19
|
"canvas.addNodeToStart": "[Esperanto~Get started by adding a node.~~~~~~~~~eo]",
|
|
@@ -19,6 +21,7 @@
|
|
|
19
21
|
"canvas.stateTagReadOnly": "[Esperanto~Read-only~~~eo]",
|
|
20
22
|
"canvas.stateTagTipLocked": "[Esperanto~This flow is locked and cannot be edited.~~~~~~~~~eo]",
|
|
21
23
|
"canvas.stateTagTipReadOnly": "[Esperanto~This flow cannot be edited.~~~~~~~~~eo]",
|
|
24
|
+
"comment.colorBackground": "[Esperanto~Color background~~~~~~~~~eo]",
|
|
22
25
|
"node.createSupernode": "[Esperanto~Create supernode~~eo]",
|
|
23
26
|
"node.createSupernodeExternal": "[Esperanto~Create external supernode~~~~~~eo]",
|
|
24
27
|
"node.expandSupernode": "[Esperanto~Expand supernode~~eo]",
|
|
@@ -24,6 +24,7 @@ const zhTW = require("./zh-tw.json");
|
|
|
24
24
|
const zhCN = require("./zh-cn.json");
|
|
25
25
|
const ru = require("./ru.json");
|
|
26
26
|
const eo = require("./eo.json");
|
|
27
|
+
const ko = require("./ko.json");
|
|
27
28
|
|
|
28
29
|
module.exports = {
|
|
29
30
|
"de": de,
|
|
@@ -36,5 +37,6 @@ module.exports = {
|
|
|
36
37
|
"zh-TW": zhTW,
|
|
37
38
|
"zh-CN": zhCN,
|
|
38
39
|
"ru": ru,
|
|
39
|
-
"eo": eo
|
|
40
|
+
"eo": eo,
|
|
41
|
+
"ko": ko
|
|
40
42
|
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"menu.highlightBranch": "분기 강조표시",
|
|
3
|
+
"menu.highlightUpstream": "업스트림 강조표시",
|
|
4
|
+
"menu.highlightDownstream": "다운스트림 강조표시",
|
|
5
|
+
"menu.unhighlight": "강조표시 해제",
|
|
6
|
+
"menu.highlight": "강조표시",
|
|
7
|
+
"edit.cutSelection": "잘라내기",
|
|
8
|
+
"edit.copySelection": "복사",
|
|
9
|
+
"edit.pasteSelection": "불여넣기",
|
|
10
|
+
"canvas.label": "캔버스",
|
|
11
|
+
"canvas.addComment": "새 주석",
|
|
12
|
+
"canvas.selectAll": "모두 선택",
|
|
13
|
+
"canvas.undo": "실행 취소",
|
|
14
|
+
"canvas.redo": "다시 실행",
|
|
15
|
+
"canvas.deleteObject": "삭제",
|
|
16
|
+
"canvas.flowIsEmpty": "플로우가 비어 있습니다.",
|
|
17
|
+
"canvas.addNodeToStart": "노드를 추가하여 시작하십시오.",
|
|
18
|
+
"node.createSupernode": "수퍼노드 작성",
|
|
19
|
+
"node.createSupernodeExternal": "외부 수퍼노드 작성",
|
|
20
|
+
"node.expandSupernode": "수퍼노드 펼치기",
|
|
21
|
+
"node.displaySupernodeFullPage": "Display full page",
|
|
22
|
+
"node.collapseSupernodeInPlace": "수퍼노드 접기",
|
|
23
|
+
"node.deconstructSupernode": "Deconstruct supernode",
|
|
24
|
+
"node.convertSupernodeExternalToLocal": "외부에서 로컬로 변환",
|
|
25
|
+
"node.convertSupernodeLocalToExternal": "로컬에서 외부로 변환",
|
|
26
|
+
"canvas.validateFlow": "플로우 유효성 검증",
|
|
27
|
+
"node.editNode": "열림",
|
|
28
|
+
"node.editMenu": "편집",
|
|
29
|
+
"node.disconnectNode": "연결 끊기",
|
|
30
|
+
"node.saveToPalette": "팔레트에 저장",
|
|
31
|
+
"link.deleteLink": "삭제"
|
|
32
|
+
}
|
|
@@ -24,6 +24,7 @@ const zhTW = require("./zh-tw.json");
|
|
|
24
24
|
const zhCN = require("./zh-cn.json");
|
|
25
25
|
const ru = require("./ru.json");
|
|
26
26
|
const eo = require("./eo.json");
|
|
27
|
+
const ko = require("./ko.json");
|
|
27
28
|
|
|
28
29
|
module.exports = {
|
|
29
30
|
"de": de,
|
|
@@ -36,5 +37,6 @@ module.exports = {
|
|
|
36
37
|
"zh-TW": zhTW,
|
|
37
38
|
"zh-CN": zhCN,
|
|
38
39
|
"ru": ru,
|
|
39
|
-
"eo": eo
|
|
40
|
+
"eo": eo,
|
|
41
|
+
"ko": ko
|
|
40
42
|
};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subPanel.button.tooltip": "편집",
|
|
3
|
+
"structureListEditor.addButton.label": "값 추가",
|
|
4
|
+
"structureListEditor.removeButton.label": "제거",
|
|
5
|
+
"structureTable.addButton.label": "열 추가",
|
|
6
|
+
"structureTable.removeButton.label": "제거",
|
|
7
|
+
"fieldPicker.saveButton.label": "필드 선택",
|
|
8
|
+
"fieldPicker.saveButton.tooltip": "저장한 후 돌아가기",
|
|
9
|
+
"fieldPicker.resetButton.label": "재설정 ",
|
|
10
|
+
"fieldPicker.filter.label": "필터:",
|
|
11
|
+
"fieldPicker.fieldColumn.label": "필드 이름",
|
|
12
|
+
"fieldPicker.schemaColumn.label": "스키마 이름",
|
|
13
|
+
"fieldPicker.dataTypeColumn.label": "데이터 유형",
|
|
14
|
+
"fieldPicker.integer.label": "정수",
|
|
15
|
+
"fieldPicker.double.label": "Double",
|
|
16
|
+
"fieldPicker.string.label": "문자열",
|
|
17
|
+
"fieldPicker.date.label": "날짜",
|
|
18
|
+
"fieldPicker.time.label": "시간",
|
|
19
|
+
"fieldPicker.timestamp.label": "시간소인",
|
|
20
|
+
"flyout.applyButton.label": "확인",
|
|
21
|
+
"flyout.rejectButton.label": "취소",
|
|
22
|
+
"propertiesEdit.closeButton.label": "닫기",
|
|
23
|
+
"propertiesEdit.applyButton.label": "저장",
|
|
24
|
+
"propertiesEdit.rejectButton.label": "취소",
|
|
25
|
+
"propertiesEdit.revertButton.label": "되돌리기",
|
|
26
|
+
"propertiesEdit.resizeButton.expand.label": "펼치기",
|
|
27
|
+
"propertiesEdit.resizeButton.contract.label": "계약",
|
|
28
|
+
"properties.revert.message": "되돌리기를 클릭하여 이전 화면으로 돌아가거나 닫기를 클릭하여 분할창을 종료하십시오. 그런 다음 조작을 다시 시도하십시오.",
|
|
29
|
+
"properties.close.message": "닫기를 클릭하여 분할창을 종료하십시오. 그런 다음 조작을 다시 시도하십시오.",
|
|
30
|
+
"properties.support.message": "문제가 지속되면 지원에 문의하십시오.",
|
|
31
|
+
"properties.unexpected.message": "분할창이 로드되지 않았습니다.",
|
|
32
|
+
"table.search.header": "테이블에서 보기",
|
|
33
|
+
"table.search.placeholder": "{column_name} 열에서 찾기",
|
|
34
|
+
"table.search.label": "{table_name} 테이블에서 검색",
|
|
35
|
+
"summary.longTable.placeholder": "10개가 넘는 필드...",
|
|
36
|
+
"alerts.tab.title": "경보",
|
|
37
|
+
"title.editor.label": "제목 편집",
|
|
38
|
+
"title.editor.helpButton.label": "help",
|
|
39
|
+
"table.summary.error": "{errorMsgCount} 오류 셀이 있습니다. ",
|
|
40
|
+
"table.summary.warning": "{warningMsgCount} 경고 셀이 있습니다. ",
|
|
41
|
+
"control.summary.error": "오류가 있는 {errorMsgCount} 매개변수가 있습니다. ",
|
|
42
|
+
"control.summary.warning": "경고가 있는 {warningMsgCount} 매개변수가 있습니다. ",
|
|
43
|
+
"control.summary.error.warning": "오류가 있는 {errorMsgCount} 매개변수와 경고가 있는 {warningMsgCount} 매개변수가 있습니다.",
|
|
44
|
+
"required.error": "필수 매개변수 ''{label}''에 값이 없습니다.",
|
|
45
|
+
"datetime.format.error": "올바르지 않은 {role}입니다. 형식은 {format}이어야 합니다.",
|
|
46
|
+
"invalid.field.error": "올바르지 않은 {label}, 데이터 세트에서 필드를 찾을 수 없습니다.",
|
|
47
|
+
"expression.validate.label": "유효성 검증",
|
|
48
|
+
"expression.validating.label": "유효성 검증",
|
|
49
|
+
"expression.builder.title": "표현식 빌더",
|
|
50
|
+
"expression.builder.icon.description": "표현식 빌더 실행",
|
|
51
|
+
"expression.builder.label": "표현식",
|
|
52
|
+
"expression.fields.table.label": "필드 테이블",
|
|
53
|
+
"expression.values.table.label": "값 테이블",
|
|
54
|
+
"expression.functions.table.label": "함수 테이블",
|
|
55
|
+
"expression.fields.dropdown": "필드",
|
|
56
|
+
"expression.fields.title": "필드",
|
|
57
|
+
"expression.values.title": "값",
|
|
58
|
+
"expression.field.column": "필드",
|
|
59
|
+
"expression.storage.column": "스토리지",
|
|
60
|
+
"expression.value.column": "값",
|
|
61
|
+
"expression.function.column": "함수",
|
|
62
|
+
"expression.return.column": "리턴",
|
|
63
|
+
"expression.recently.used.column": "항목",
|
|
64
|
+
"expression.field.tab": "필드",
|
|
65
|
+
"expression.functions.tab": "함수",
|
|
66
|
+
"expression.recently.used": "최근에 사용됨",
|
|
67
|
+
"expression.all.functions": "모든 함수",
|
|
68
|
+
"expression.min.label": "최소값",
|
|
69
|
+
"expression.max.label": "최대값",
|
|
70
|
+
"expression.no.functions": "함수가 없습니다.",
|
|
71
|
+
"multi.selected.row.label": "행이 선택되었습니다.",
|
|
72
|
+
"multi.selected.row.action": "이 행의 값을 변경하면 허용되는 모든 선택된 행의 값이 변경됩니다.",
|
|
73
|
+
"datetimefield.format.error.message": "제공된 형식 오브젝트가 올바르지 않습니다. 입력 정의를 확인하십시오.",
|
|
74
|
+
"editorform.group.type.error": "(알 수 없는 그룹 유형 '{group.groupType()}')",
|
|
75
|
+
"moveable.table.button.top": "맨 위로 이동",
|
|
76
|
+
"moveable.table.button.up": "위로 이동",
|
|
77
|
+
"moveable.table.button.down": "아래로 이동",
|
|
78
|
+
"moveable.table.button.bottom": "맨 아래로 이동",
|
|
79
|
+
"list.table.label": "값",
|
|
80
|
+
"dropdown.tooltip.openMenu": "메뉴 열기",
|
|
81
|
+
"dropdown.tooltip.closeMenu": "메뉴 닫기",
|
|
82
|
+
"dropdown.tooltip.clear.all": "모두 지우기",
|
|
83
|
+
"dropdown.tooltip.clear.selection": "선택 취소",
|
|
84
|
+
"truncate.long.string.error": "이러한 값은 {truncate_limit} 문자의 표시 한계를 초과하므로 편집할 수 없습니다.",
|
|
85
|
+
"properties.label": "특성",
|
|
86
|
+
"readonlytable.edit.button.label": "편집",
|
|
87
|
+
"toggletext.icon.description": "{toggletext_label} 아이콘",
|
|
88
|
+
"multiselect.dropdown.empty.label": "선택되지 않음",
|
|
89
|
+
"multiselect.dropdown.options.selected.label": "옵션이 선택됨",
|
|
90
|
+
"virtualizedTable.header.checkbox.label": "{header_checkbox_label} 모두 선택",
|
|
91
|
+
"virtualizedTable.row.checkbox.label": "{table_label}에서 행 {row_index} 선택",
|
|
92
|
+
"properties.empty.table.text": "시작하려면 \"{button_label}\"을(를) 클릭하십시오."
|
|
93
|
+
}
|
|
@@ -24,6 +24,7 @@ const zhTW = require("./zh-tw.json");
|
|
|
24
24
|
const zhCN = require("./zh-cn.json");
|
|
25
25
|
const ru = require("./ru.json");
|
|
26
26
|
const eo = require("./eo.json");
|
|
27
|
+
const ko = require("./ko.json");
|
|
27
28
|
|
|
28
29
|
module.exports = {
|
|
29
30
|
"de": de,
|
|
@@ -36,5 +37,6 @@ module.exports = {
|
|
|
36
37
|
"zh-TW": zhTW,
|
|
37
38
|
"zh-CN": zhCN,
|
|
38
39
|
"ru": ru,
|
|
39
|
-
"eo": eo
|
|
40
|
+
"eo": eo,
|
|
41
|
+
"ko": ko
|
|
40
42
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"palette.flyout.search.placeholder": "팔레트 노드 찾기",
|
|
3
|
+
"palette.flyout.search.noresults": "결과를 찾을 수 없습니다.",
|
|
4
|
+
"palette.flyout.search.adjustsearch": "찾고 있는 내용을 찾기 위해 검색을 조정하십시오.",
|
|
5
|
+
"palette.flyout.search.resultsrestricted": "결과는 10개의 노드로 제한됩니다. 검색을 세분화하십시오.",
|
|
6
|
+
"palette.flyout.search.more": "자세히 표시",
|
|
7
|
+
"palette.flyout.search.less": "간략히 보기",
|
|
8
|
+
"palette.flyout.label": "플라이아웃 팔레트",
|
|
9
|
+
"palette.dialog.label": "대화 상자 팔레트"
|
|
10
|
+
}
|
|
@@ -24,6 +24,7 @@ const zhTW = require("./zh-tw.json");
|
|
|
24
24
|
const zhCN = require("./zh-cn.json");
|
|
25
25
|
const ru = require("./ru.json");
|
|
26
26
|
const eo = require("./eo.json");
|
|
27
|
+
const ko = require("./ko.json");
|
|
27
28
|
|
|
28
29
|
module.exports = {
|
|
29
30
|
"de": de,
|
|
@@ -36,5 +37,6 @@ module.exports = {
|
|
|
36
37
|
"zh-TW": zhTW,
|
|
37
38
|
"zh-CN": zhCN,
|
|
38
39
|
"ru": ru,
|
|
39
|
-
"eo": eo
|
|
40
|
+
"eo": eo,
|
|
41
|
+
"ko": ko
|
|
40
42
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elyra/canvas",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.11.2",
|
|
4
4
|
"description": "Elyra common-canvas",
|
|
5
5
|
"main": "dist/common-canvas.js",
|
|
6
6
|
"module": "dist/common-canvas.es.js",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"prop-types": "^15.7.2",
|
|
36
36
|
"react-codemirror2": "^7.2.1",
|
|
37
37
|
"react-contextmenu": "^2.14.0",
|
|
38
|
+
"react-draggable": "^4.4.4",
|
|
38
39
|
"react-inlinesvg": "^2.1.0",
|
|
39
40
|
"react-portal": "^4.2.1",
|
|
40
41
|
"react-resize-detector": "^5.2.0",
|