@elyra/canvas 12.40.1 → 12.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/{_baseIteratee-05ccf6a8.js → _baseIteratee-148093b7.js} +3 -3
  2. package/dist/{_baseIteratee-05ccf6a8.js.map → _baseIteratee-148093b7.js.map} +1 -1
  3. package/dist/{canvas-constants-079172c0.js → canvas-constants-13b58448.js} +2 -2
  4. package/dist/{canvas-constants-079172c0.js.map → canvas-constants-13b58448.js.map} +1 -1
  5. package/dist/canvas-controller-a53943e4.js +2 -0
  6. package/dist/canvas-controller-a53943e4.js.map +1 -0
  7. package/dist/canvas-controller-cb1d7420.js +2 -0
  8. package/dist/canvas-controller-cb1d7420.js.map +1 -0
  9. package/dist/common-canvas-42027a3f.js +2 -0
  10. package/dist/common-canvas-42027a3f.js.map +1 -0
  11. package/dist/common-canvas-f758ff42.js +2 -0
  12. package/dist/common-canvas-f758ff42.js.map +1 -0
  13. package/dist/common-canvas.es.js +1 -1
  14. package/dist/common-canvas.es.js.map +1 -1
  15. package/dist/common-canvas.js +1 -1
  16. package/dist/common-canvas.js.map +1 -1
  17. package/dist/common-properties-2e1b7ec7.js +2 -0
  18. package/dist/common-properties-2e1b7ec7.js.map +1 -0
  19. package/dist/common-properties-5e8870e3.js +2 -0
  20. package/dist/common-properties-5e8870e3.js.map +1 -0
  21. package/dist/context-menu-wrapper-49f9a1af.js +2 -0
  22. package/dist/context-menu-wrapper-49f9a1af.js.map +1 -0
  23. package/dist/context-menu-wrapper-5d6a399f.js +2 -0
  24. package/dist/context-menu-wrapper-5d6a399f.js.map +1 -0
  25. package/dist/{datarecord-metadata-v3-schema-59505bc5.js → datarecord-metadata-v3-schema-98ec66e9.js} +2 -2
  26. package/dist/{datarecord-metadata-v3-schema-59505bc5.js.map → datarecord-metadata-v3-schema-98ec66e9.js.map} +1 -1
  27. package/dist/{flexible-table-5ee2a42b.js → flexible-table-35e9922a.js} +2 -2
  28. package/dist/{flexible-table-5ee2a42b.js.map → flexible-table-35e9922a.js.map} +1 -1
  29. package/dist/{flexible-table-562ae288.js → flexible-table-7c7de0f9.js} +1 -1
  30. package/dist/{flexible-table-562ae288.js.map → flexible-table-7c7de0f9.js.map} +1 -1
  31. package/dist/{icon-0390f1fe.js → icon-9edff40c.js} +2 -2
  32. package/dist/{icon-0390f1fe.js.map → icon-9edff40c.js.map} +1 -1
  33. package/dist/{index-fe8d4201.js → index-94fec521.js} +2 -2
  34. package/dist/index-94fec521.js.map +1 -0
  35. package/dist/index-e2f8a935.js +2 -0
  36. package/dist/index-e2f8a935.js.map +1 -0
  37. package/dist/{isArrayLikeObject-36898fcb.js → isArrayLikeObject-7a30aa4b.js} +2 -2
  38. package/dist/{isArrayLikeObject-36898fcb.js.map → isArrayLikeObject-7a30aa4b.js.map} +1 -1
  39. package/dist/lib/canvas-controller.es.js +1 -1
  40. package/dist/lib/canvas-controller.js +1 -1
  41. package/dist/lib/canvas.es.js +1 -1
  42. package/dist/lib/canvas.js +1 -1
  43. package/dist/lib/context-menu.es.js +1 -1
  44. package/dist/lib/context-menu.js +1 -1
  45. package/dist/lib/properties/field-picker.es.js +1 -1
  46. package/dist/lib/properties/field-picker.js +1 -1
  47. package/dist/lib/properties/flexible-table.es.js +1 -1
  48. package/dist/lib/properties/flexible-table.js +1 -1
  49. package/dist/lib/properties.es.js +1 -1
  50. package/dist/lib/properties.js +1 -1
  51. package/dist/lib/tooltip.es.js +1 -1
  52. package/dist/lib/tooltip.es.js.map +1 -1
  53. package/dist/lib/tooltip.js +1 -1
  54. package/dist/lib/tooltip.js.map +1 -1
  55. package/dist/styles/common-canvas.min.css +1 -1
  56. package/dist/styles/common-canvas.min.css.map +1 -1
  57. package/dist/toolbar-6acda0a2.js +2 -0
  58. package/dist/toolbar-6acda0a2.js.map +1 -0
  59. package/dist/toolbar-d5647da2.js +2 -0
  60. package/dist/toolbar-d5647da2.js.map +1 -0
  61. package/locales/common-properties/locales/de.json +1 -0
  62. package/locales/common-properties/locales/es.json +1 -0
  63. package/locales/common-properties/locales/fr.json +1 -0
  64. package/locales/common-properties/locales/it.json +1 -0
  65. package/locales/common-properties/locales/ja.json +1 -0
  66. package/locales/common-properties/locales/ko.json +1 -0
  67. package/locales/common-properties/locales/pt-br.json +1 -0
  68. package/locales/common-properties/locales/sv.json +1 -0
  69. package/locales/common-properties/locales/zh-CN.json +1 -0
  70. package/locales/common-properties/locales/zh-TW.json +1 -0
  71. package/package.json +12 -4
  72. package/src/color-picker/color-picker.jsx +92 -17
  73. package/src/command-actions/arrangeLayoutAction.js +7 -6
  74. package/src/command-actions/attachNodeToLinksAction.js +4 -4
  75. package/src/command-actions/collapseSuperNodeInPlaceAction.js +5 -5
  76. package/src/command-actions/colorSelectedObjectsAction.js +4 -4
  77. package/src/command-actions/commonPropertiesAction.js +1 -1
  78. package/src/command-actions/convertSuperNodeExternalToLocalAction.js +4 -4
  79. package/src/command-actions/convertSuperNodeLocalToExternalAction.js +4 -4
  80. package/src/command-actions/createAutoNodeAction.js +14 -5
  81. package/src/command-actions/createCommentAction.js +4 -10
  82. package/src/command-actions/createCommentLinkAction.js +4 -4
  83. package/src/command-actions/createNodeAction.js +13 -4
  84. package/src/command-actions/createNodeAttachLinksAction.js +4 -4
  85. package/src/command-actions/createNodeLinkAction.js +13 -4
  86. package/src/command-actions/createNodeLinkDetachedAction.js +4 -4
  87. package/src/command-actions/createNodeOnLinkAction.js +4 -4
  88. package/src/command-actions/createSuperNodeAction.js +7 -7
  89. package/src/command-actions/deconstructSuperNodeAction.js +5 -5
  90. package/src/command-actions/deleteLinkAction.js +4 -4
  91. package/src/command-actions/deleteObjectsAction.js +15 -6
  92. package/src/command-actions/disconnectObjectsAction.js +13 -4
  93. package/src/command-actions/displayPreviousPipelineAction.js +4 -4
  94. package/src/command-actions/displaySubPipelineAction.js +4 -4
  95. package/src/command-actions/editCommentAction.js +4 -4
  96. package/src/command-actions/editDecorationLabelAction.js +4 -4
  97. package/src/command-actions/expandSuperNodeInPlaceAction.js +5 -5
  98. package/src/command-actions/insertNodeIntoLinkAction.js +4 -4
  99. package/src/command-actions/moveObjectsAction.js +4 -4
  100. package/src/command-actions/pasteAction.js +16 -7
  101. package/src/command-actions/saveToPaletteAction.js +4 -4
  102. package/src/command-actions/setLinksStyleAction.js +4 -4
  103. package/src/command-actions/setNodeLabelAction.js +4 -4
  104. package/src/command-actions/setObjectsStyleAction.js +4 -4
  105. package/src/command-actions/sizeAndPositionObjectsAction.js +4 -4
  106. package/src/command-actions/updateLinkAction.js +4 -4
  107. package/src/common-canvas/canvas-controller-menu-utils.js +1 -1
  108. package/src/common-canvas/canvas-controller.js +78 -62
  109. package/src/common-canvas/cc-central-items.jsx +1 -1
  110. package/src/common-canvas/cc-context-toolbar.jsx +9 -13
  111. package/src/common-canvas/cc-toolbar.jsx +2 -0
  112. package/src/common-canvas/svg-canvas-d3.scss +1 -1
  113. package/src/common-canvas/svg-canvas-renderer.js +6 -2
  114. package/src/common-canvas/svg-canvas-utils-drag-det-link.js +8 -1
  115. package/src/common-canvas/svg-canvas-utils-drag-new-link.js +1 -1
  116. package/src/common-properties/components/table-buttons/table-buttons.scss +0 -1
  117. package/src/common-properties/components/wide-flyout/wide-flyout.scss +1 -2
  118. package/src/common-properties/constants/form-constants.js +1 -0
  119. package/src/common-properties/controls/control-factory.js +6 -1
  120. package/src/common-properties/controls/controls.scss +1 -0
  121. package/src/common-properties/controls/expression/expression-builder/expression-builder.jsx +32 -26
  122. package/src/common-properties/controls/expression/expression.jsx +146 -117
  123. package/src/common-properties/controls/expression/expression.scss +43 -45
  124. package/src/common-properties/controls/expression/languages/CLEM-hint.js +86 -159
  125. package/src/common-properties/controls/expression/languages/python-hint.js +53 -104
  126. package/src/common-properties/controls/expression/languages/r-hint.js +55 -130
  127. package/src/{toolbar/toolbar-utils.js → common-properties/controls/slider/index.js} +2 -17
  128. package/src/common-properties/controls/slider/slider.jsx +96 -0
  129. package/src/common-properties/controls/slider/slider.scss +44 -0
  130. package/src/common-properties/form/ControlInfo.js +6 -0
  131. package/src/common-properties/form/EditorForm.js +2 -0
  132. package/src/common-properties/form/ParameterInfo.js +8 -0
  133. package/src/common-properties/properties-controller.js +16 -5
  134. package/src/context-menu/common-context-menu.jsx +4 -1
  135. package/src/index.js +12 -2
  136. package/src/object-model/redux/canvas-store.js +4 -3
  137. package/src/toolbar/toolbar-action-item.jsx +90 -314
  138. package/src/toolbar/toolbar-button-item.jsx +354 -0
  139. package/src/toolbar/toolbar-divider-item.jsx +3 -4
  140. package/src/toolbar/toolbar-overflow-item.jsx +82 -36
  141. package/src/toolbar/toolbar-sub-menu-item.jsx +235 -0
  142. package/src/toolbar/toolbar-sub-menu.jsx +254 -0
  143. package/src/toolbar/toolbar-sub-panel.jsx +81 -0
  144. package/src/toolbar/toolbar-sub-utils.js +77 -0
  145. package/src/toolbar/toolbar.jsx +330 -146
  146. package/src/toolbar/toolbar.scss +22 -15
  147. package/src/tooltip/tooltip.jsx +21 -2
  148. package/stats.html +1 -1
  149. package/dist/canvas-controller-1e71b405.js +0 -2
  150. package/dist/canvas-controller-1e71b405.js.map +0 -1
  151. package/dist/canvas-controller-4bed5320.js +0 -2
  152. package/dist/canvas-controller-4bed5320.js.map +0 -1
  153. package/dist/common-canvas-318df796.js +0 -2
  154. package/dist/common-canvas-318df796.js.map +0 -1
  155. package/dist/common-canvas-d41ba910.js +0 -2
  156. package/dist/common-canvas-d41ba910.js.map +0 -1
  157. package/dist/common-properties-6e904e3b.js +0 -2
  158. package/dist/common-properties-6e904e3b.js.map +0 -1
  159. package/dist/common-properties-c91bfb31.js +0 -2
  160. package/dist/common-properties-c91bfb31.js.map +0 -1
  161. package/dist/context-menu-wrapper-3a7fdec8.js +0 -2
  162. package/dist/context-menu-wrapper-3a7fdec8.js.map +0 -1
  163. package/dist/context-menu-wrapper-fc85d853.js +0 -2
  164. package/dist/context-menu-wrapper-fc85d853.js.map +0 -1
  165. package/dist/index-8e8b8729.js +0 -2
  166. package/dist/index-8e8b8729.js.map +0 -1
  167. package/dist/index-fe8d4201.js.map +0 -1
  168. package/dist/toolbar-b01e6749.js +0 -2
  169. package/dist/toolbar-b01e6749.js.map +0 -1
  170. package/dist/toolbar-fd4e4a3a.js +0 -2
  171. package/dist/toolbar-fd4e4a3a.js.map +0 -1
  172. package/src/toolbar/toolbar-action-sub-area.jsx +0 -126
  173. package/src/toolbar/toolbar-overflow-menu.jsx +0 -77
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-fe8d4201.js","sources":["../src/common-properties/components/properties-buttons/properties-buttons.jsx","../node_modules/lodash/isEqual.js","../src/common-properties/constants/form-constants.js","../node_modules/lodash/isString.js","../node_modules/lodash/isUndefined.js","../utils/logger.js","../src/common-properties/util/property-utils.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/sortBy.js","../src/common-properties/components/field-picker/field-picker.jsx","../src/common-properties/components/field-picker/index.js"],"sourcesContent":["/*\n * Copyright 2017-2023 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, { Component } from \"react\";\nimport { injectIntl } from \"react-intl\";\nimport PropTypes from \"prop-types\";\nimport { Button } from \"carbon-components-react\";\nimport classNames from \"classnames\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\n\nclass PropertiesButtons extends Component {\n\n\trender() {\n\t\tconst applyButtonLabel = (typeof this.props.applyLabel === \"undefined\")\n\t\t\t? this.props.intl.formatMessage({ id: \"propertiesEdit.applyButton.label\", defaultMessage: defaultMessages[\"propertiesEdit.applyButton.label\"] })\n\t\t\t: this.props.applyLabel;\n\t\tconst rejectButtonLabel = (typeof this.props.rejectLabel === \"undefined\")\n\t\t\t? this.props.intl.formatMessage({ id: \"propertiesEdit.rejectButton.label\", defaultMessage: defaultMessages[\"propertiesEdit.rejectButton.label\"] })\n\t\t\t: this.props.rejectLabel;\n\n\t\tlet rejectButton;\n\t\tif (this.props.cancelHandler) {\n\t\t\trejectButton = (\n\t\t\t\t<Button\n\t\t\t\t\tdata-id=\"properties-cancel-button\"\n\t\t\t\t\tclassName=\"properties-cancel-button\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tkind=\"secondary\"\n\t\t\t\t\tonClick={this.props.cancelHandler}\n\t\t\t\t>\n\t\t\t\t\t{rejectButtonLabel}\n\t\t\t\t</Button>\n\t\t\t);\n\t\t}\n\t\tlet applyButton;\n\t\tif (this.props.okHandler) {\n\t\t\tapplyButton = (\n\t\t\t\t<Button\n\t\t\t\t\tdata-id=\"properties-apply-button\"\n\t\t\t\t\tclassName=\"properties-apply-button\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tonClick={this.props.okHandler}\n\t\t\t\t\tdisabled={!this.props.applyButtonEnabled}\n\t\t\t\t>\n\t\t\t\t\t{applyButtonLabel}\n\t\t\t\t</Button>\n\t\t\t);\n\t\t}\n\n\t\tconst propertiesModalButtons = this.props.okHandler || this.props.cancelHandler\n\t\t\t? (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"properties-modal-buttons\", { \"hide\": (typeof (this.props.showPropertiesButtons) !== \"undefined\" &&\n\t\t\t\t\t\t!this.props.showPropertiesButtons) })}\n\t\t\t\t>\n\t\t\t\t\t{rejectButton}\n\t\t\t\t\t{applyButton}\n\t\t\t\t</div>\n\t\t\t)\n\t\t\t: null;\n\n\t\treturn propertiesModalButtons;\n\t}\n}\n\nPropertiesButtons.propTypes = {\n\tintl: PropTypes.object.isRequired,\n\tcancelHandler: PropTypes.func,\n\tokHandler: PropTypes.func,\n\tapplyLabel: PropTypes.string,\n\trejectLabel: PropTypes.string,\n\tshowPropertiesButtons: PropTypes.bool,\n\tapplyButtonEnabled: PropTypes.bool\n};\n\nPropertiesButtons.defaultProps = {\n\tapplyButtonEnabled: true\n};\n\nexport default injectIntl(PropertiesButtons);\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","/*\n * Copyright 2017-2023 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\nconst ItemType = {\n\tCONTROL: \"control\",\n\tADDITIONAL_LINK: \"additionalLink\",\n\tSTATIC_TEXT: \"staticText\",\n\tHORIZONTAL_SEPARATOR: \"hSeparator\",\n\tPANEL: \"panel\",\n\tTEARSHEET: \"tearsheet\",\n\tSUB_TABS: \"subTabs\",\n\tPRIMARY_TABS: \"primaryTabs\",\n\tPANEL_SELECTOR: \"panelSelector\",\n\tCUSTOM_PANEL: \"customPanel\",\n\tACTION: \"action\",\n\tTEXT_PANEL: \"textPanel\"\n};\n\nconst EditStyle = {\n\tINLINE: \"inline\",\n\tSUBPANEL: \"subpanel\",\n\tON_PANEL: \"on_panel\"\n};\n\nconst Size = {\n\tMAX: \"max\",\n\tLARGE: \"large\",\n\tMEDIUM: \"medium\",\n\tSMALL: \"small\"\n};\n\nconst GroupType = {\n\tCONTROLS: \"controls\",\n\tTABS: \"tabs\", // currently not used\n\tSUB_TABS: \"subTabs\",\n\tPANELS: \"panels\",\n\tADDITIONAL: \"additional\",\n\tCOLUMN_SELECTION: \"columnSelection\",\n\tPANEL_SELECTOR: \"panelSelector\",\n\tCUSTOM_PANEL: \"customPanel\",\n\tSUMMARY_PANEL: \"summaryPanel\",\n\tACTION_PANEL: \"actionPanel\",\n\tTEXT_PANEL: \"textPanel\",\n\tTWISTY_PANEL: \"twistyPanel\",\n\tCOLUMN_PANEL: \"columnPanel\",\n\tTEARSHEET_PANEL: \"tearsheetPanel\"\n};\n\nconst PanelType = {\n\tGENERAL: \"general\",\n\tCOLUMN_SELECTION: \"columnSelection\",\n\tCUSTOM: \"custom\",\n\tSUMMARY: \"summary\",\n\tACTION_PANEL: \"actionPanel\",\n\tTWISTY_PANEL: \"twisty\",\n\tCOLUMN_PANEL: \"column\",\n\tTEARSHEET: \"tearsheet\"\n};\n\nconst ControlType = {\n\tCUSTOM: \"custom\",\n\tTEXTFIELD: \"textfield\",\n\tPASSWORDFIELD: \"passwordfield\",\n\tTEXTAREA: \"textarea\",\n\tLIST: \"list\",\n\tEXPRESSION: \"expression\",\n\tNUMBERFIELD: \"numberfield\",\n\tDATEFIELD: \"datefield\",\n\tDATEPICKER: \"datepicker\",\n\tDATEPICKERRANGE: \"datepickerRange\",\n\tTIMEFIELD: \"timefield\",\n\tTIMESTAMP: \"timestampfield\",\n\tCHECKBOX: \"checkbox\",\n\tTOGGLE: \"toggle\",\n\tRADIOSET: \"radioset\",\n\tCHECKBOXSET: \"checkboxset\",\n\tONEOFSELECT: \"oneofselect\",\n\tMULTISELECT: \"multiselect\",\n\tSOMEOFSELECT: \"someofselect\",\n\tSELECTCOLUMN: \"selectcolumn\",\n\tSELECTCOLUMNS: \"selectcolumns\",\n\tSELECTSCHEMA: \"selectschema\",\n\tSTRUCTURETABLE: \"structuretable\",\n\tSTRUCTUREEDITOR: \"structureeditor\",\n\tSTRUCTURELISTEDITOR: \"structurelisteditor\",\n\tTOGGLETEXT: \"toggletext\",\n\tREADONLY: \"readonly\",\n\tREADONLYTABLE: \"readonlyTable\",\n\tSPINNER: \"spinner\",\n\tCODE: \"code\",\n\tHIDDEN: \"hidden\"\n};\n\nconst ParamRole = {\n\tTEXT: \"text\",\n\tENUM: \"enum\",\n\tCOLUMN: \"column\",\n\tNEW_COLUMN: \"new_column\",\n\tEXPRESSION: \"expression\",\n\tEMAIL: \"email\",\n\tURL: \"url\",\n\tCOLOR: \"color\",\n\tINTERVAL_YEAR: \"interval_year\",\n\tINTERVAL_DAY: \"interval_day\",\n\tINTERVAL_SECOND: \"interval_second\",\n\tCUSTOM: \"custom\",\n\tUNSPECIFIED: \"\"\n};\n\nconst Type = {\n\tBOOLEAN: \"boolean\",\n\tINTEGER: \"integer\",\n\tLONG: \"long\",\n\tDOUBLE: \"double\",\n\tSTRING: \"string\",\n\tPASSWORD: \"password\",\n\tDATE: \"date\",\n\tTIME: \"time\",\n\tTIMESTAMP: \"timestamp\",\n\tSTRUCTURE: \"structure\",\n\tOBJECT: \"object\"\n};\n\nconst Separator = {\n\tBEFORE: \"before\",\n\tAFTER: \"after\"\n};\n\nconst ORIENTATIONS = {\n\tVERTICAL: \"vertical\",\n\tHORIZONTAL: \"horizontal\"\n};\n\nfunction hasValue(Enum, value) {\n\tfor (var key in Enum) {\n\t\tif (value === Enum[key]) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nexport { GroupType, PanelType, Type, ParamRole, ControlType, hasValue, EditStyle, Size, ItemType, Separator, ORIENTATIONS };\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","/*\n * Copyright 2017-2023 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/* eslint no-console: [\"error\", { allow: [\"log\", \"warn\", \"error\"] }] */\n\n// Modules\n\n// Globals\n\n// Private Methods ------------------------------------------------------------>\n\nfunction _getErrorMessage(prefix, errorObject, id) {\n\tvar classID = \"\";\n\tvar lineNumber = \"\";\n\tvar message = \"\";\n\n\t// Class name\n\tif (id) {\n\t\tclassID = id + \": \";\n\t}\n\n\tif (errorObject) {\n\t\t// Line number\n\t\tif (errorObject.lineNumber) {\n\t\t\tlineNumber = \"(line \" + errorObject.lineNumber + \"): \";\n\t\t}\n\t\t// Error message\n\t\tif (errorObject.message) {\n\t\t\tmessage = errorObject.message;\n\t\t} else {\n\t\t\tmessage = \"Message unavailable\";\n\t\t}\n\t}\n\n\tvar errorMessage = \"[\" + prefix + \"]: \" +\n\t\t\t\t\t\tclassID +\n\t\t\t\t\t\tlineNumber +\n\t\t\t\t\t\tmessage;\n\n\treturn errorMessage;\n}\n\n/**\n * Prints a DEBUG status message to the console.\n *\n * @param {String} id: Logging ID included in status message.\n * @param {String} errorObject: Error object used to wrap message & line number.\n *\n * @returns void\n */\nfunction _debug(id, errorObject) {\n\tconsole.log(_getErrorMessage(\"DEBUG\", errorObject, id));\n}\n\n/**\n * Prints a INFO status message to the console.\n *\n * @param {String} id: Logging ID included in status message.\n * @param {String} errorObject: Error object used to wrap message & line number.\n *\n * @returns void\n */\nfunction _info(id, errorObject) {\n\tconsole.log(_getErrorMessage(\"INFO\", errorObject, id));\n}\n\n/**\n * Prints a WARNING status message to the console.\n *\n * @param {String} id: Logging ID included in status message.\n * @param {String} errorObject: Error object used to wrap message & line number.\n *\n * @returns void\n */\nfunction _warning(id, errorObject) {\n\tconsole.warn(_getErrorMessage(\"WARNING\", errorObject, id));\n}\n\n/**\n * Prints a ERROR status message to the console.\n *\n * @param {String} id: Logging ID included in status message.\n * @param {String} errorObject: Error object used to wrap message & line number.\n *\n * @returns void\n */\nfunction _error(id, errorObject) {\n\tconsole.error(_getErrorMessage(\"ERROR\", errorObject, id));\n}\n\n// Public Methods ------------------------------------------------------------->\n\nmodule.exports.debug = _debug;\nmodule.exports.info = _info;\nmodule.exports.warn = _warning;\nmodule.exports.error = _error;\n","/*\n * Copyright 2017-2023 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\n/* eslint max-depth: [\"error\", 5] */\n\nimport logger from \"../../../utils/logger\";\nimport { ParamRole } from \"../constants/form-constants\";\nimport { DATA_TYPE, CARBON_ICONS } from \"../constants/constants\";\nimport { cloneDeep, isUndefined, isString } from \"lodash\";\nimport { v4 as uuid4 } from \"uuid\";\nimport defaultMessages1 from \"../../../locales/common-properties/locales/en.json\";\nimport defaultMessages2 from \"../../../locales/command-actions/locales/en.json\";\n\n/**\n * A better type identifier than a simple 'typeOf' call:\n *\n * \ttoType({a: 4}); //\"object\"\n *\ttoType([1, 2, 3]); //\"array\"\n *\t(function() {console.log(toType(arguments))})(); //arguments\n *\ttoType(new ReferenceError); //\"error\"\n *\ttoType(new Date); //\"date\"\n *\ttoType(/a-z/); //\"regexp\"\n *\ttoType(Math); //\"math\"\n *\ttoType(JSON); //\"json\"\n *\ttoType(new Number(4)); //\"number\"\n *\ttoType(new String(\"abc\")); //\"string\"\n *\ttoType(new Boolean(true)); //\"boolean\"\n */\nfunction toType(obj) {\n\treturn ({}).toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\n}\n\nfunction copy(obj) {\n\tif (typeof obj !== \"undefined\") {\n\t\treturn cloneDeep(obj);\n\t}\n\treturn obj;\n}\n\nfunction formatMessage(intl, key, substituteObj) {\n\tconst defaultMessages = { ...defaultMessages1, ...defaultMessages2 };\n\tlet formattedMessage;\n\tif (typeof intl !== \"undefined\" && intl !== null) {\n\t\tif (intl.messages[key] === \"\") {\n\t\t\treturn \"\"; // Allow empty strings\n\t\t}\n\t\tformattedMessage = intl.formatMessage({ id: key, defaultMessage: defaultMessages[key] }, substituteObj);\n\t} else {\n\t\tformattedMessage = defaultMessages[key];\n\t}\n\treturn formattedMessage;\n}\n\nfunction generateId() {\n\treturn \"properties-\" + uuid4();\n}\n\n/*\n* Parses text to see if there is any text replace elements ${}\n*/\nfunction evaluateText(text, controller) {\n\ttry {\n\t\tif (!text) {\n\t\t\treturn text;\n\t\t}\n\t\tconst startIdx = text.indexOf(\"${\");\n\t\tif (startIdx < 0) {\n\t\t\treturn text;\n\t\t}\n\t\tconst endIdx = text.substr(startIdx + 2).indexOf(\"}\");\n\t\tif (endIdx < 0) {\n\t\t\treturn text;\n\t\t}\n\t\tconst expression = text.substr(startIdx + 2, endIdx);\n\t\tconst newText = text.replace(\"${\" + expression + \"}\", _evaluateExpression(expression, controller));\n\t\treturn evaluateText(newText, controller); // test to see if there are more expressions\n\t} catch (e) {\n\t\tlogger.warn(\"Invalid expression. Make sure replacement expression in text is a valid expression.\");\n\t\treturn text;\n\t}\n}\n\nfunction _evaluateExpression(expression, controller) {\n\tconst paramStartIdx = expression.indexOf(\"(\");\n\tconst funcName = expression.substr(0, paramStartIdx);\n\tconst parameters = expression.slice(paramStartIdx + 1, -1).split(\",\");\n\tif (parameters.length === 0) {\n\t\treturn \"\";\n\t}\n\tlet value;\n\tlet paramValue;\n\tswitch (funcName) {\n\tcase \"percent\":\n\t\tparamValue = _getExpParameterValue(parameters[0], controller);\n\t\t// 0, undefined, null, or not a number return 0\n\t\tif (!paramValue || isNaN(paramValue)) {\n\t\t\treturn 0;\n\t\t}\n\t\tvalue = 100.0 / paramValue;\n\t\tif (parameters.length > 1) {\n\t\t\tvalue = value.toFixed(parseInt(parameters[1], 10));\n\t\t}\n\t\treturn value;\n\tcase \"sum\":\n\t\tvalue = 0;\n\t\tfor (const param of parameters) {\n\t\t\tparamValue = _getExpParameterValue(param, controller);\n\t\t\tif (!isNaN(paramValue)) {\n\t\t\t\tvalue += paramValue;\n\t\t\t}\n\t\t}\n\t\treturn value;\n\tdefault:\n\t\tbreak;\n\t}\n\treturn \"\";\n}\n\nfunction _getExpParameterValue(expParam, controller) {\n\t// assume property if parameter is a string\n\tif (isNaN(expParam)) {\n\t\treturn controller.getPropertyValue({ name: expParam.trim() });\n\t}\n\treturn parseFloat(expParam);\n}\n\nfunction getTableFieldIndex(control) {\n\tif (control) {\n\t\t// table\n\t\tif (control.subControls) {\n\t\t\tfor (let i = 0; i < control.subControls.length; i++) {\n\t\t\t\tif (control.subControls[i].role === ParamRole.COLUMN) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (control.role === ParamRole.COLUMN) { // array\n\t\t\treturn 0;\n\t\t}\n\t}\n\treturn -1;\n}\n\n// TODO: This can be removed once the WML Play service generates datasetMetadata instead of inputDataModel\n/**\n * Converts old style Modeler inputDataModel into newer datasetMetadata\n */\nfunction convertInputDataModel(dataModel) {\n\tconst datasetMetadata = {};\n\tdatasetMetadata.fields = [];\n\tif (dataModel && dataModel.columns) {\n\t\tfor (const column of dataModel.columns) {\n\t\t\tconst field = {};\n\t\t\tfield.name = column.name;\n\t\t\tfield.type = convertType(column.storage);\n\t\t\tfield.metadata = {};\n\t\t\tfield.metadata.description = \"\";\n\t\t\tif (column.measure) {\n\t\t\t\tfield.metadata.measure = column.measure.toLowerCase();\n\t\t\t}\n\t\t\tif (column.modelingRole) {\n\t\t\t\tfield.metadata.modeling_role = column.modelingRole.toLowerCase();\n\t\t\t}\n\t\t\tdatasetMetadata.fields.push(field);\n\t\t}\n\t}\n\treturn datasetMetadata;\n}\n\n/**\n * Converts from Modeler storage to WML type.\n */\nfunction convertType(storage) {\n\tlet retVal = storage.toLowerCase();\n\tif (storage === \"Real\") {\n\t\tretVal = \"double\";\n\t}\n\treturn retVal;\n}\n\n/**\n * Returns true if any subControl within control has 'structureType === object'\n */\nfunction isSubControlStructureObjectType(control) {\n\tif (control) {\n\t\tif (control.structureType && control.structureType === \"object\") {\n\t\t\treturn true;\n\t\t} else if (control.subControls) {\n\t\t\tfor (const subControl of control.subControls) {\n\t\t\t\tif (subControl.structureType && subControl.structureType === \"object\") {\n\t\t\t\t\treturn true;\n\t\t\t\t} else if (subControl.subControls) {\n\t\t\t\t\tconst objectType = isSubControlStructureObjectType(subControl);\n\t\t\t\t\tif (objectType) { // continue if false\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n}\n\n/**\n * Converts the currentValues of a structure control of type 'object'\n * from an array of objects to an array of values.\n * @isList boolean, true if this structure is a list\n * Example currentValues: [{a: 1, b: 2}, {a: 10, b; 20}] || {z: 9, y: 88, x: [\"abc\", \"def\"]}\n * Example convertedValues: [[1, 2], [10, 20]] || [9, 88, [\"abc\", \"def\"]]\n */\nfunction convertObjectStructureToArray(isList, subControls, currentValues) {\n\tconst structureKeys = [];\n\tsubControls.forEach((control) => {\n\t\tstructureKeys.push(control.name);\n\t});\n\n\tif (isList) {\n\t\tconst convertedValues = [];\n\t\tif (typeof currentValues === \"object\" && currentValues !== null && Object.keys(currentValues).length > 0) {\n\t\t\tcurrentValues.forEach((row) => {\n\t\t\t\tif (Array.isArray(row)) { // check if any values in the row is a nested object\n\t\t\t\t\tconst convertedRow = [];\n\t\t\t\t\trow.forEach((field, index) => {\n\t\t\t\t\t\tlet value = field;\n\t\t\t\t\t\tif (typeof field === \"object\" && field !== null && Object.keys(field).length > 0) {\n\t\t\t\t\t\t\tvalue = convertObjectStructureToArray(subControls[index].valueDef.isList, subControls[index].subControls, field);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconvertedRow.push(value);\n\t\t\t\t\t});\n\t\t\t\t\tconvertedValues.push(convertedRow);\n\t\t\t\t} else if (typeof row === \"object\") {\n\t\t\t\t\tconst convertedRow = [];\n\t\t\t\t\tstructureKeys.forEach((key, index) => {\n\t\t\t\t\t\tlet value = typeof row[key] !== \"undefined\" ? row[key] : null;\n\t\t\t\t\t\t// subControls that are type 'object' will need to be converted\n\t\t\t\t\t\tif (subControls[index].structureType && subControls[index].structureType === \"object\") {\n\t\t\t\t\t\t\tvalue = convertObjectStructureToArray(subControls[index].valueDef.isList, subControls[index].subControls, row[key]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconvertedRow.push(value);\n\t\t\t\t\t});\n\t\t\t\t\tconvertedValues.push(convertedRow);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn convertedValues;\n\t}\n\n\tconst converted = [];\n\tstructureKeys.forEach((key, index) => {\n\t\tconst value = typeof currentValues[key] !== \"undefined\" ? currentValues[key] : null;\n\t\tconverted.push(value);\n\t});\n\treturn converted;\n}\n\n/**\n * Converts the currentValues of a structure control of type 'object'\n * from an array of values to an array of objects.\n * @isList boolean, true if this structure is a list\n * @convert boolean, true if the current control values need to be converted.\n * If false, need to determine if the subControls need to be converted\n * Example currentValues: [[1, 2], [10, 20]] || [9, 88, [\"abc\", \"def\"]]\n * Example convertedValues: [{a: 1, b: 2}, {a: 10, b; 20}] || {z: 9, y: 88, x: [\"abc\", \"def\"]}\n */\nfunction convertArrayStructureToObject(isList, subControls, currentValues, convert) {\n\tconst structureKeys = [];\n\tsubControls.forEach((control) => {\n\t\tstructureKeys.push(control.name);\n\t});\n\n\tif (isList && Array.isArray(currentValues)) {\n\t\tconst convertedValues = [];\n\t\tcurrentValues.forEach((row, idx) => {\n\t\t\tif (convert) { // this control needs to be converted, convert all values in this row and determine if there are nested structures to be converted\n\t\t\t\tconst newObject = {};\n\t\t\t\tstructureKeys.forEach((key, keyIndex) => {\n\t\t\t\t\t// subControls that are type 'object' will need to be converted\n\t\t\t\t\tif (subControls[keyIndex].structureType && subControls[keyIndex].structureType === \"object\") { // nested object\n\t\t\t\t\t\tnewObject[key] = convertArrayStructureToObject(subControls[keyIndex].valueDef.isList, subControls[keyIndex].subControls, row[keyIndex], true);\n\t\t\t\t\t} else if (typeof subControls.subControls !== \"undefined\") { // nested array\n\t\t\t\t\t\tnewObject[key] = convertArrayStructureToObject(subControls[keyIndex].valueDef.isList, subControls[keyIndex].subControls, row[keyIndex], false);\n\t\t\t\t\t} else { // value\n\t\t\t\t\t\tnewObject[key] = typeof row[keyIndex] !== \"undefined\" ? row[keyIndex] : null;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tconvertedValues.push(newObject);\n\t\t\t} else { // determine if each value in the row is a nested structure that needs to be converted\n\t\t\t\tconst convertedRow = [];\n\t\t\t\trow.forEach((field, index) => {\n\t\t\t\t\tlet value = field;\n\t\t\t\t\tif (subControls[index].structureType && subControls[index].structureType === \"object\") {\n\t\t\t\t\t\tvalue = convertArrayStructureToObject(subControls[index].valueDef.isList, subControls[index].subControls, field, true);\n\t\t\t\t\t}\n\t\t\t\t\tconvertedRow.push(value);\n\t\t\t\t});\n\t\t\t\tconvertedValues.push(convertedRow);\n\t\t\t}\n\t\t});\n\t\treturn convertedValues;\n\t}\n\n\tconst converted = {};\n\tstructureKeys.forEach((key, index) => {\n\t\tconverted[key] = currentValues && typeof currentValues[index] !== \"undefined\" ? currentValues[index] : null;\n\t});\n\treturn converted;\n}\n\n/**\n * Converts the input list of currentParameters into a simple array of field names\n * \tWill also remove invalid fields in currentParameters that are not in the data model.\n *\n * @param control the control to format the input list for\n * @param controlValues array of the currentControlValues\n * @param fields the filtered list of fields from the data model\n */\nfunction getFieldsFromControlValues(control, controlValues, fields) {\n\tconst dataColumnIndex = getTableFieldIndex(control);\n\tconst outputList = [];\n\tif (controlValues && dataColumnIndex !== -1) {\n\t\tfor (const controlValue of controlValues) {\n\t\t\tlet fieldName = controlValue;\n\t\t\tif (Array.isArray(controlValue)) {\n\t\t\t\tfieldName = stringifyFieldValue(controlValue[dataColumnIndex], control);\n\t\t\t} else if (toType(controlValue) === \"object\") {\n\t\t\t\tfieldName = stringifyFieldValue(controlValue, control);\n\t\t\t}\n\t\t\toutputList.push(fieldName);\n\t\t}\n\t}\n\treturn outputList;\n}\n\n/**\n * Returns the string field name for both string and object based field values.\n * If the control's propType is structure, return the combined schema and field names.\n *\n * @param value A field value. Can be string or object\n * @param control The control definition for the parameter\n * @param excludeSchema When true, exclude the schema prefix on compound entries\n * @return A string field name value or null\n */\nfunction stringifyFieldValue(value, control, excludeSchema) {\n\tconst theType = toType(value);\n\tif (theType === \"object\") {\n\t\tif (control && control.valueDef && value.link_ref) {\n\t\t\tlet stringName;\n\t\t\tif (!excludeSchema) {\n\t\t\t\tstringName = value.link_ref + \".\" + value.field_name;\n\t\t\t} else {\n\t\t\t\tstringName = value.field_name;\n\t\t\t}\n\t\t\treturn stringName;\n\t\t}\n\t\treturn null;\n\t}\n\treturn value;\n}\n\n/**\n * Returns true if the given field value matches the provided field prototype.\n *\n * @param fieldValue A persistent field value\n * @param fieldProto A field prototype structure\n * @return True if the field value matches the field prototype\n */\nfunction fieldValueMatchesProto(fieldValue, fieldProto) {\n\tconst theType = toType(fieldValue);\n\tif (theType === \"object\" && fieldValue.link_ref) {\n\t\treturn fieldValue.link_ref === fieldProto.schema &&\n\t\t\t\t\t\tfieldValue.field_name === fieldProto.origName;\n\t}\n\treturn fieldValue === fieldProto.name;\n}\n\n/**\n * Converts a display string for a field name into the value it is stored as.\n *\n * @param stringValue A field name, either plain or in schema.name format\n * @param The control The control\n * @param controller Properties controller\n * @return The field name in canonical format for storage (string or object)\n */\nfunction fieldStringToValue(stringValue, control, controller) {\n\tif (control.role === \"column\" && control.valueDef.propType === \"structure\") {\n\t\tconst dataModelFields = controller.getDatasetMetadataFields();\n\t\tfor (const field of dataModelFields) {\n\t\t\tif (field.name === stringValue) {\n\t\t\t\treturn { link_ref: field.schema, field_name: field.origName };\n\t\t\t}\n\t\t}\n\t}\n\treturn stringValue;\n}\n\nfunction getDMDefault(subControlDef, fieldName, fields) {\n\tlet defaultValue;\n\tconst dmField = subControlDef.dmDefault;\n\tif (fieldName) {\n\t\tfor (const field of fields) {\n\t\t\tif (field.name === fieldName) {\n\t\t\t\tswitch (dmField) {\n\t\t\t\tcase \"type\":\n\t\t\t\t\tdefaultValue = field.type;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"description\":\n\t\t\t\t\tdefaultValue = field.metadata.description;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"measure\":\n\t\t\t\t\tdefaultValue = _findCorrespondingValue(field.metadata.measure, subControlDef.values);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"modeling_role\":\n\t\t\t\t\tdefaultValue = _findCorrespondingValue(field.metadata.modeling_role, subControlDef.values);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn defaultValue;\n}\n\nfunction getDMFieldIcon(fields, value, iconType) {\n\tlet icon;\n\tconst correctField = fields.find(function(field) {\n\t\treturn field.origName === value;\n\t});\n\tswitch (iconType) {\n\tcase \"measure\":\n\t\tif (!correctField) {\n\t\t\treturn CARBON_ICONS.MEASUREMENTS.EMPTY;\n\t\t}\n\t\tswitch (correctField.metadata.measure) {\n\t\tcase \"range\":\n\t\t\ticon = CARBON_ICONS.MEASUREMENTS.SCALE;\n\t\t\tbreak;\n\t\tcase \"ordered_set\":\n\t\t\ticon = CARBON_ICONS.MEASUREMENTS.ORDINAL;\n\t\t\tbreak;\n\t\tcase \"discrete\":\n\t\t\ticon = CARBON_ICONS.MEASUREMENTS.DISCRETE;\n\t\t\tbreak;\n\t\tcase \"set\":\n\t\t\ticon = CARBON_ICONS.MEASUREMENTS.NOMINAL;\n\t\t\tbreak;\n\t\tcase \"flag\":\n\t\t\ticon = CARBON_ICONS.MEASUREMENTS.FLAG;\n\t\t\tbreak;\n\t\tcase \"collection\":\n\t\t\ticon = CARBON_ICONS.MEASUREMENTS.NOMINAL;\n\t\t\tbreak;\n\t\tcase \"geospatial\":\n\t\t\ticon = CARBON_ICONS.MEASUREMENTS.NOMINAL;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ticon = CARBON_ICONS.MEASUREMENTS.EMPTY;\n\t\t\tbreak;\n\t\t}\n\t\tbreak;\n\tcase \"type\":\n\t\tif (!correctField) {\n\t\t\treturn \"typeEmpty\";\n\t\t}\n\t\tswitch (correctField.type) {\n\t\tcase DATA_TYPE.DATE:\n\t\t\ticon = DATA_TYPE.DATE;\n\t\t\tbreak;\n\t\tcase DATA_TYPE.TIME:\n\t\t\ticon = DATA_TYPE.TIME;\n\t\t\tbreak;\n\t\tcase DATA_TYPE.TIMESTAMP:\n\t\t\ticon = DATA_TYPE.TIMESTAMP;\n\t\t\tbreak;\n\t\tcase DATA_TYPE.STRING:\n\t\t\ticon = DATA_TYPE.STRING;\n\t\t\tbreak;\n\t\tcase DATA_TYPE.INTEGER:\n\t\t\ticon = DATA_TYPE.INTEGER;\n\t\t\tbreak;\n\t\tcase DATA_TYPE.DOUBLE:\n\t\t\ticon = DATA_TYPE.DOUBLE;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ticon = \"typeEmpty\";\n\t\t\tbreak;\n\t\t}\n\t\tbreak;\n\tdefault:\n\t\tbreak;\n\t}\n\treturn icon;\n}\n\n\n// Attempts to synchronize the Modeler notions of measurement level\n// and modeling role with those defined in datarecord-metadata.\nfunction _findCorrespondingValue(input, values) {\n\t// First try for an exact match\n\tconst idx = values.indexOf(input);\n\tif (idx > -1) {\n\t\treturn values[idx];\n\t}\n\t// Next try for a case insensitive match\n\tconst searchTerm = input.toLowerCase();\n\tfor (const value of values) {\n\t\tif (searchTerm === value.toLowerCase()) {\n\t\t\treturn value;\n\t\t}\n\t}\n\t// Finally try for a startsWith match\n\tfor (const value of values) {\n\t\tif (searchTerm.startsWith(value.substring(0, 6).toLowerCase())) {\n\t\t\treturn value;\n\t\t}\n\t}\n\t// Last resort: Return the original value\n\treturn input;\n}\n\n// Convert the data types of currentParameters to the type defined in parameterDefs\nfunction convertValueDataTypes(currentParameters, controls) {\n\tconst convertedCurrentParameters = {};\n\tconst currentParams = Object.keys(currentParameters);\n\tcurrentParams.forEach((paramName) => {\n\t\tconst originalValue = currentParameters[paramName];\n\t\tif (!isUndefined(originalValue) && controls[paramName]) {\n\t\t\tconst valueType = controls[paramName].valueDef.propType;\n\t\t\tconst isList = controls[paramName].valueDef.isList;\n\t\t\tif (originalValue) {\n\t\t\t\tswitch (valueType) {\n\t\t\t\tcase \"string\": {\n\t\t\t\t\tif (isList) {\n\t\t\t\t\t\tconvertedCurrentParameters[paramName] = originalValue.map((val) => val.toString());\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconvertedCurrentParameters[paramName] = originalValue.toString();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"integer\": {\n\t\t\t\t\tif (isList) {\n\t\t\t\t\t\tconvertedCurrentParameters[paramName] = originalValue.map((val) => parseInt(val, 10));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconvertedCurrentParameters[paramName] = parseInt(originalValue, 10);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"double\": {\n\t\t\t\t\tif (isList) {\n\t\t\t\t\t\tconvertedCurrentParameters[paramName] = originalValue.map((val) => parseFloat(val));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconvertedCurrentParameters[paramName] = parseFloat(originalValue);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"boolean\": {\n\t\t\t\t\tif (isString(originalValue)) {\n\t\t\t\t\t\tconvertedCurrentParameters[paramName] = originalValue === \"true\";\n\t\t\t\t\t} else { // Assume boolean\n\t\t\t\t\t\tconvertedCurrentParameters[paramName] = Boolean(originalValue);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: { // arrays, objects, enum, password\n\t\t\t\t\tconvertedCurrentParameters[paramName] = originalValue;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else { // null\n\t\t\t\tconvertedCurrentParameters[paramName] = originalValue;\n\t\t\t}\n\t\t} else { // control is missing or current parameter is not set\n\t\t\tconvertedCurrentParameters[paramName] = originalValue;\n\t\t}\n\t});\n\treturn convertedCurrentParameters;\n}\n\nexport {\n\ttoType,\n\tformatMessage,\n\tevaluateText,\n\tgetTableFieldIndex,\n\tconvertInputDataModel,\n\tisSubControlStructureObjectType,\n\tconvertObjectStructureToArray,\n\tconvertArrayStructureToObject,\n\tconvertValueDataTypes,\n\tgetFieldsFromControlValues,\n\tcopy,\n\tstringifyFieldValue,\n\tfieldValueMatchesProto,\n\tfieldStringToValue,\n\tgenerateId,\n\tgetDMDefault,\n\tgetDMFieldIcon\n};\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/*\n * Copyright 2017-2023 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\n/* eslint max-depth: [\"error\", 6] */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport FlexibleTable from \"./../flexible-table\";\nimport TruncatedContentTooltip from \"./../truncated-content-tooltip\";\nimport PropertiesButtons from \"./../properties-buttons\";\nimport * as PropertyUtils from \"./../../util/property-utils\";\n\nimport { Button } from \"carbon-components-react\";\n\nimport { MESSAGE_KEYS, DATA_TYPE, SORT_DIRECTION, ROW_SELECTION } from \"./../../constants/constants\";\nimport Icon from \"./../../../icons/icon.jsx\";\nimport { Reset24 } from \"@carbon/icons-react\";\n\nimport { has, isEmpty, sortBy, isEqual } from \"lodash\";\n\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\n\nexport default class FieldPicker extends React.Component {\n\tstatic getDerivedStateFromProps(nextProps, prevState) {\n\t\tif (!isEqual(nextProps.fields, prevState.origFields)) {\n\t\t\tlet selectedFields = prevState.selectedFields;\n\t\t\tif (nextProps.currentFields) {\n\t\t\t\tif (!isEqual(Object.keys(nextProps.currentFields), Object.keys(prevState.selectedFields))) {\n\t\t\t\t\tselectedFields = nextProps.currentFields;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn ({ fields: nextProps.fields, selectedFields: selectedFields, origFields: nextProps.fields });\n\t\t}\n\t\treturn ({});\n\t}\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tfields: this.props.fields, // list of fields dynamically adjusted by filtered or sort criteria\n\t\t\torigFields: this.props.fields,\n\t\t\tfilterIcons: [],\n\t\t\tfilterText: \"\",\n\t\t\tselectedFields: this.props.currentFields // list of fields selected\n\t\t};\n\t\tthis.multiSchema = props.controller.getDatasetMetadataSchemas() &&\n\t\t\tprops.controller.getDatasetMetadataSchemas().length > 1;\n\t\tthis.filterList = [];\n\n\t\tthis.filterType = this.filterType.bind(this);\n\t\tthis.getTableData = this.getTableData.bind(this);\n\t\tthis.getVisibleData = this.getVisibleData.bind(this);\n\t\tthis.handleSave = this.handleSave.bind(this);\n\t\tthis.handleCancel = this.handleCancel.bind(this);\n\t\tthis.handleReset = this.handleReset.bind(this);\n\t\tthis.getNewSelections = this.getNewSelections.bind(this);\n\t\tthis.onSort = this.onSort.bind(this);\n\t\tthis.onFilter = this.onFilter.bind(this);\n\t\tthis.updateFieldSelections = this.updateFieldSelections.bind(this);\n\t\tthis.filterList = this.getAvailableFilters();\n\t}\n\n\tonFilter(filterString) {\n\t\tthis.setState({ filterText: filterString });\n\t}\n\n\t/**\n\t* Reorder the current list of fields displayed according to the sort column\n\t* @param spec object with a column and direction to sort\n\t*/\n\tonSort(spec) {\n\t\tlet fields = Array.from(this.state.fields);\n\t\tfields = sortBy(fields, function(field) {\n\t\t\tswitch (spec.column) {\n\t\t\tcase \"fieldName\": return field.origName;\n\t\t\tcase \"dataType\": return field.type;\n\t\t\tcase \"schemaName\": return field.schema;\n\t\t\tdefault: return null;\n\t\t\t}\n\t\t});\n\t\tif (spec.direction === SORT_DIRECTION.DESC) {\n\t\t\tfields.reverse();\n\t\t}\n\t\tthis.setState({ fields: fields });\n\t}\n\n\tgetAvailableFilters() {\n\t\tconst filters = [];\n\t\tfor (const key in DATA_TYPE) {\n\t\t\tif (has(DATA_TYPE, key)) {\n\t\t\t\tconst dataType = DATA_TYPE[key];\n\t\t\t\tfor (const field of this.props.fields) {\n\t\t\t\t\tif (dataType === field.type) {\n\t\t\t\t\t\tconst filter = {\n\t\t\t\t\t\t\t\"type\": field.type\n\t\t\t\t\t\t};\n\t\t\t\t\t\tlet duplicate = false;\n\t\t\t\t\t\tfor (const filtered of filters) {\n\t\t\t\t\t\t\tif (filtered.type === filter.type) {\n\t\t\t\t\t\t\t\tduplicate = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!duplicate) {\n\t\t\t\t\t\t\tfilters.push(filter);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn filters;\n\t}\n\n\tgetTableData() {\n\t\tconst fields = this.getVisibleData();\n\t\tconst tableData = [];\n\t\tconst selectedFields = this.state.selectedFields;\n\t\tconst selectedRowsIndex = [];\n\t\tfor (let i = 0; i < selectedFields.length; i++) {\n\t\t\tconst idx = fields.findIndex((field) => field.name === selectedFields[i]);\n\t\t\tif (idx !== -1) {\n\t\t\t\tselectedRowsIndex.push(idx);\n\t\t\t}\n\t\t}\n\t\tfor (let i = 0; i < fields.length; i++) {\n\t\t\tconst field = fields[i];\n\t\t\tconst columns = [];\n\t\t\tlet dmIcon = null;\n\t\t\tif (this.props.dmIcon && this.props.dmIcon !== \"type\") {\n\t\t\t\tconst metadata = this.props.controller.getDatasetMetadataFields();\n\t\t\t\tconst dmIconType = PropertyUtils.getDMFieldIcon(metadata, field.origName, this.props.dmIcon);\n\t\t\t\tconst icon = dmIconType ? <Icon type={dmIconType} /> : null;\n\t\t\t\t// don't show icon for type since it's already being displayed\n\t\t\t\tif (icon) {\n\t\t\t\t\tdmIcon = (\n\t\t\t\t\t\t<div className=\"properties-fp-field-type-icon\">\n\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst fpFieldName = (\n\t\t\t\t<span className=\"properties-fp-field-name\">\n\t\t\t\t\t{field.origName}\n\t\t\t\t</span>\n\t\t\t);\n\n\t\t\tconst fieldNameWithTooltip = (\n\t\t\t\t<TruncatedContentTooltip\n\t\t\t\t\tcontent={fpFieldName}\n\t\t\t\t\ttooltipText={field.origName}\n\t\t\t\t\tdisabled={false}\n\t\t\t\t/>\n\t\t\t);\n\t\t\tconst fieldContent = (\n\t\t\t\t<div className=\"properties-fp-field\">\n\t\t\t\t\t{dmIcon}\n\t\t\t\t\t{fieldNameWithTooltip}\n\t\t\t\t</div>\n\t\t\t);\n\n\t\t\tcolumns.push({\n\t\t\t\tcolumn: \"fieldName\",\n\t\t\t\tcontent: fieldContent,\n\t\t\t\tfieldName: field.origName\n\t\t\t});\n\t\t\tif (this.multiSchema) {\n\t\t\t\tconst schemaContent = (<div className=\"properties-fp-schema\">\n\t\t\t\t\t{field.schema}\n\t\t\t\t</div>);\n\t\t\t\tcolumns.push({ column: \"schemaName\", content: schemaContent });\n\t\t\t}\n\t\t\tcolumns.push({\n\t\t\t\tcolumn: \"dataType\",\n\t\t\t\tcontent: (<div className=\"properties-fp-data\">\n\t\t\t\t\t<div className={\"properties-fp-data-type-icon\"}>\n\t\t\t\t\t\t<Icon type={field.type} />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"properties-fp-field-type\">{field.type}</div>\n\t\t\t\t</div>),\n\t\t\t\tvalue: field.type\n\t\t\t});\n\n\t\t\ttableData.push({ className: \"properties-fp-data-rows\", columns: columns });\n\t\t}\n\t\tthis.selectedRowsIndex = selectedRowsIndex;\n\t\treturn tableData;\n\t}\n\n\t/**\n\t* Returns list of visible fields from search or filter\n\t*/\n\tgetVisibleData() {\n\t\tconst that = this;\n\t\tconst data = this.state.fields;\n\t\tconst\tfilteredData = data.filter(function(row) {\n\t\t\treturn that.state.filterIcons.indexOf(row.type) < 0;\n\t\t});\n\n\t\tconst visibleData = filteredData.filter(function(row) {\n\t\t\tif (typeof that.state.filterText !== \"undefined\" && that.state.filterText !== null) {\n\t\t\t\treturn row.origName.toLowerCase().indexOf(that.state.filterText.toLowerCase()) > -1;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t\treturn visibleData;\n\t}\n\n\t/**\n\t * Returns any new columns that were not a part of the original set.\n\t */\n\tgetNewSelections() {\n\t\tconst deltas = [];\n\t\tconst initialValues = this.props.currentFields;\n\t\tif (this.state.selectedFields) {\n\t\t\tfor (let i = 0; i < this.state.selectedFields.length; i++) {\n\t\t\t\tif (typeof initialValues === \"undefined\" || initialValues === null || initialValues.indexOf(this.state.selectedFields[i]) < 0) {\n\t\t\t\t\tdeltas.push(i);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn deltas;\n\t}\n\n\thandleSave() {\n\t\tthis.props.closeFieldPicker(this.state.selectedFields, this.getNewSelections());\n\t}\n\n\thandleCancel() {\n\t\tthis.handleReset();\n\t\tthis.props.closeFieldPicker();\n\t}\n\n\tupdateFieldSelections(rowsIndex) {\n\t\tconst fields = this.getVisibleData();\n\t\tconst currField = Array.from(this.state.selectedFields);\n\t\t// Remove previously selected fields\n\t\tlet current = currField.filter(function(value, index, arr) {\n\t\t\tconst idx = fields.findIndex((field) => field.name === currField[index]);\n\t\t\treturn (idx === -1);\n\t\t});\n\t\t// Add new selections in current\n\t\trowsIndex.forEach((rowIndex) => {\n\t\t\tcurrent.push(fields[rowIndex].name);\n\t\t});\n\n\t\tcurrent = Array.from(new Set(current));\n\t\tthis.setState({\n\t\t\tselectedFields: current\n\t\t});\n\t}\n\n\t/**\n\t* Returns true if field is found in list, else false\n\t* @param list array of fields to search through\n\t* @param fieldName field name to find in data\n\t*/\n\tisFieldInList(list, fieldName) {\n\t\treturn list.some(function(field) {\n\t\t\treturn field.name === fieldName;\n\t\t});\n\t}\n\n\thandleReset() {\n\t\tthis.setState({\n\t\t\tselectedFields: this.props.currentFields,\n\t\t\tfilterIcons: [],\n\t\t\tfilterText: \"\",\n\t\t});\n\t}\n\n\tfilterType(evt) {\n\t\tconst type = evt.currentTarget.getAttribute(\"data-type\");\n\t\tconst iconsSelected = Array.from(this.state.filterIcons);\n\t\tconst index = iconsSelected.indexOf(type);\n\t\tif (index < 0) {\n\t\t\ticonsSelected.push(type);\n\t\t} else {\n\t\t\ticonsSelected.splice(index, 1);\n\t\t}\n\t\tthis.setState({ filterIcons: iconsSelected });\n\t}\n\n\t_genBackButton() {\n\t\tlet applyLabel = PropertyUtils.formatMessage(this.props.controller.getReactIntl(), MESSAGE_KEYS.APPLYBUTTON_LABEL);\n\t\tconst rejectLabel = PropertyUtils.formatMessage(this.props.controller.getReactIntl(), MESSAGE_KEYS.REJECTBUTTON_LABEL);\n\n\t\tif (!this.props.rightFlyout) {\n\t\t\tapplyLabel = PropertyUtils.formatMessage(this.props.controller.getReactIntl(), MESSAGE_KEYS.FIELDPICKER_SAVEBUTTON_MODAL_LABEL);\n\t\t}\n\n\t\treturn (<PropertiesButtons\n\t\t\tokHandler={this.handleSave}\n\t\t\tcancelHandler={this.handleCancel}\n\t\t\tshowPropertiesButtons\n\t\t\tapplyLabel={applyLabel}\n\t\t\trejectLabel={rejectLabel}\n\t\t/>);\n\t}\n\n\t_genResetButton() {\n\t\tconst resetLabel = PropertyUtils.formatMessage(this.props.controller.getReactIntl(),\n\t\t\tMESSAGE_KEYS.FIELDPICKER_RESETBUTTON_LABEL);\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tclassName=\"properties-fp-reset-button-container\"\n\t\t\t\tonClick={this.handleReset}\n\t\t\t\trenderIcon={Reset24}\n\t\t\t\ticonDescription={resetLabel}\n\t\t\t\tsize=\"small\"\n\t\t\t\tkind=\"ghost\"\n\t\t\t>\n\t\t\t\t<span>{resetLabel}</span>\n\t\t\t</Button>\n\t\t);\n\t}\n\n\t_genFilterTypes() {\n\t\tconst that = this;\n\t\tconst filterLabel = PropertyUtils.formatMessage(this.props.controller.getReactIntl(),\n\t\t\tMESSAGE_KEYS.FIELDPICKER_FILTER_LABEL);\n\t\tconst filters = this.filterList.map(function(filter, ind) {\n\t\t\tlet enabled = true;\n\t\t\tfor (let i = 0; i < that.state.filterIcons.length; i++) {\n\t\t\t\tif (filter.type === that.state.filterIcons[i]) {\n\t\t\t\t\tenabled = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst filterTooltipId = \"tooltip-filters-\" + ind;\n\t\t\tconst dataTypeLabel = PropertyUtils.formatMessage(that.props.controller.getReactIntl(), MESSAGE_KEYS[`FIELDPICKER_${filter.type.toUpperCase()}_LABEL`]);\n\t\t\tconst tooltip = (\n\t\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t\t{dataTypeLabel}\n\t\t\t\t</div>\n\t\t\t);\n\t\t\tconst row = (\n\t\t\t\t<li key={\"filters\" + ind} className=\"properties-fp-filter-list-li\">\n\t\t\t\t\t<div className=\"properties-tooltips-filter\">\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tid={filterTooltipId}\n\t\t\t\t\t\t\ttip={tooltip}\n\t\t\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\t\t\tclassName=\"properties-tooltips icon-tooltip\"\n\t\t\t\t\t\t\tdisable={isEmpty(filter.type)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"properties-fp-filter\"\n\t\t\t\t\t\t\t\tdata-type={filter.type}\n\t\t\t\t\t\t\t\tonClick={that.filterType.bind(that)}\n\t\t\t\t\t\t\t\taria-label={filterLabel + \" \" + filter.type}\n\t\t\t\t\t\t\t\tkind=\"ghost\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon type={filter.type} disabled={!enabled} />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</div>\n\t\t\t\t</li>\n\t\t\t);\n\t\t\treturn (row);\n\t\t});\n\t\treturn (\n\t\t\t<ul className=\"properties-fp-filter-list\">\n\t\t\t\t<li className=\"properties-fp-filter-list-title properties-fp-filter-list-li\">\n\t\t\t\t\t{filterLabel}\n\t\t\t\t</li>\n\t\t\t\t{filters}\n\t\t\t</ul>\n\t\t);\n\t}\n\n\t_genTable() {\n\n\t\tconst fieldColumnLabel = PropertyUtils.formatMessage(this.props.controller.getReactIntl(),\n\t\t\tMESSAGE_KEYS.FIELDPICKER_FIELDCOLUMN_LABEL);\n\t\t// TODO: debug why resource key not used\n\t\tconst schemaColumnLabel = PropertyUtils.formatMessage(this.props.controller.getReactIntl(),\n\t\t\tMESSAGE_KEYS.FIELDPICKER_SCHEMACOLUMN_LABEL);\n\t\tconst dataTypeColumnLabel = PropertyUtils.formatMessage(this.props.controller.getReactIntl(),\n\t\t\tMESSAGE_KEYS.FIELDPICKER_DATATYPECOLUMN_LABEL);\n\t\t// TODO get label from resource and make id unique\n\t\tconst headers = [];\n\t\theaders.push({ \"key\": \"fieldName\", \"label\": fieldColumnLabel });\n\t\tif (this.multiSchema) {\n\t\t\theaders.push({ \"key\": \"schemaName\", \"label\": schemaColumnLabel });\n\t\t}\n\t\theaders.push({ \"key\": \"dataType\", \"label\": dataTypeColumnLabel });\n\n\t\tconst tableData = this.getTableData();\n\n\t\treturn (\n\t\t\t<FlexibleTable className=\"properties-fp-table\"\n\t\t\t\tsortable={[\"fieldName\", \"schemaName\", \"dataType\"]}\n\t\t\t\tfilterable={[\"fieldName\"]}\n\t\t\t\tonFilter={this.onFilter}\n\t\t\t\tcolumns={headers}\n\t\t\t\tdata={tableData}\n\t\t\t\tonSort={this.onSort}\n\t\t\t\tfilterKeyword={this.state.filterText}\n\t\t\t\tscrollKey=\"field-picker\"\n\t\t\t\tnoAutoSize\n\t\t\t\ttableLabel={this.props.title ? this.props.title : \"\"}\n\t\t\t\tselectedRows={this.selectedRowsIndex}\n\t\t\t\tupdateRowSelections={this.updateFieldSelections}\n\t\t\t\trowSelection={ROW_SELECTION.MULTIPLE}\n\t\t\t\tlight={this.props.controller.getLight() && !this.props.controller.isTearsheetContainer()}\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst backButton = this._genBackButton();\n\t\tconst resetButton = this._genResetButton();\n\t\tconst filterTypes = this._genFilterTypes();\n\t\tconst table = this._genTable();\n\n\t\treturn (<React.Fragment>\n\t\t\t<div className=\"properties-fp-top-row\">\n\t\t\t\t{filterTypes}\n\t\t\t\t{resetButton}\n\t\t\t</div>\n\t\t\t{table}\n\t\t\t{backButton}\n\t\t</React.Fragment>);\n\t}\n}\n\nFieldPicker.propTypes = {\n\tcloseFieldPicker: PropTypes.func.isRequired,\n\tcurrentFields: PropTypes.array.isRequired,\n\tfields: PropTypes.array, // in current data model\n\ttitle: PropTypes.string,\n\tcontroller: PropTypes.object.isRequired,\n\trightFlyout: PropTypes.bool,\n\tdmIcon: PropTypes.string\n};\n","/*\n * Copyright 2017-2023 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 FieldPicker from \"./field-picker.jsx\";\nexport default FieldPicker;\n"],"names":["PropertiesButtons","_Component","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","rejectButton","applyButton","applyButtonLabel","this","props","applyLabel","intl","formatMessage","id","defaultMessage","defaultMessages","rejectButtonLabel","rejectLabel","cancelHandler","React","createElement","Button","className","type","size","kind","onClick","okHandler","disabled","applyButtonEnabled","classNames","hide","showPropertiesButtons","Component","defaultProps","injectIntl","baseIsEqual","require$$0","isEqual_1","other","ParamRole","TEXT","ENUM","COLUMN","NEW_COLUMN","EXPRESSION","EMAIL","URL","COLOR","INTERVAL_YEAR","INTERVAL_DAY","INTERVAL_SECOND","CUSTOM","UNSPECIFIED","baseGetTag","isArray","require$$1","isObjectLike","require$$2","isString_1","isUndefined_1","undefined","_getErrorMessage","prefix","errorObject","classID","lineNumber","message","console","log","warn","error","toType","obj","toString","call","match","toLowerCase","substituteObj","formattedMessage","_objectSpread","defaultMessages1","defaultMessages2","messages","_getExpParameterValue","expParam","controller","isNaN","getPropertyValue","name","trim","parseFloat","getTableFieldIndex","control","subControls","i","length","role","convertType","storage","retVal","stringifyFieldValue","excludeSchema","valueDef","link_ref","field_name","getDMFieldIcon","fields","iconType","icon","correctField","find","field","origName","CARBON_ICONS","MEASUREMENTS","EMPTY","metadata","measure","SCALE","ORDINAL","DISCRETE","NOMINAL","FLAG","DATA_TYPE","DATE","TIME","TIMESTAMP","STRING","INTEGER","DOUBLE","_findCorrespondingValue","input","values","idx","indexOf","_step7","searchTerm","_iterator7","_createForOfIteratorHelper","s","n","done","err","e","f","_step8","_iterator8","startsWith","substring","isArrayLike","_baseEach","eachFunc","fromRight","collection","iteratee","index","iterable","Object","createBaseEach","baseEach","_baseMap","result","Array","_baseSortBy","array","comparer","sort","isSymbol","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","_compareMultiple","object","orders","objCriteria","criteria","othCriteria","ordersLength","arrayMap","baseGet","baseIteratee","baseMap","require$$3","baseSortBy","require$$4","baseUnary","require$$5","compareMultiple","require$$6","identity","require$$7","require$$8","_baseOrderBy","iteratees","eq","isIndex","isObject","_isIterateeCall","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy_1","FieldPicker","_React$Component","_this","state","origFields","filterIcons","filterText","selectedFields","currentFields","multiSchema","getDatasetMetadataSchemas","filterList","filterType","bind","_assertThisInitialized","getTableData","getVisibleData","handleSave","handleCancel","handleReset","getNewSelections","onSort","onFilter","updateFieldSelections","getAvailableFilters","filterString","setState","spec","from","_sortBy","column","schema","direction","SORT_DIRECTION","DESC","reverse","filters","_has","_step","dataType","_iterator","_step2","filter","duplicate","_iterator2","push","tableData","selectedRowsIndex","_loop","findIndex","columns","dmIcon","dmIconType","PropertyUtils","getDatasetMetadataFields","Icon","fpFieldName","fieldNameWithTooltip","TruncatedContentTooltip","content","tooltipText","fieldContent","fieldName","schemaContent","that","row","deltas","initialValues","closeFieldPicker","rowsIndex","currField","current","arr","forEach","rowIndex","Set","list","some","evt","currentTarget","getAttribute","iconsSelected","splice","getReactIntl","MESSAGE_KEYS","APPLYBUTTON_LABEL","REJECTBUTTON_LABEL","rightFlyout","FIELDPICKER_SAVEBUTTON_MODAL_LABEL","resetLabel","FIELDPICKER_RESETBUTTON_LABEL","renderIcon","Reset24","iconDescription","filterLabel","FIELDPICKER_FILTER_LABEL","map","ind","enabled","filterTooltipId","dataTypeLabel","concat","toUpperCase","tooltip","Tooltip","tip","disable","_isEmpty","fieldColumnLabel","FIELDPICKER_FIELDCOLUMN_LABEL","schemaColumnLabel","FIELDPICKER_SCHEMACOLUMN_LABEL","dataTypeColumnLabel","FIELDPICKER_DATATYPECOLUMN_LABEL","headers","label","FlexibleTable","sortable","filterable","data","filterKeyword","scrollKey","noAutoSize","tableLabel","title","selectedRows","updateRowSelections","rowSelection","ROW_SELECTION","MULTIPLE","light","getLight","isTearsheetContainer","backButton","_genBackButton","resetButton","_genResetButton","filterTypes","_genFilterTypes","table","_genTable","Fragment","nextProps","prevState","_isEqual","keys","TEXTFIELD","PASSWORDFIELD","TEXTAREA","LIST","NUMBERFIELD","DATEFIELD","DATEPICKER","DATEPICKERRANGE","TIMEFIELD","CHECKBOX","TOGGLE","RADIOSET","CHECKBOXSET","ONEOFSELECT","MULTISELECT","SOMEOFSELECT","SELECTCOLUMN","SELECTCOLUMNS","SELECTSCHEMA","STRUCTURETABLE","STRUCTUREEDITOR","STRUCTURELISTEDITOR","TOGGLETEXT","READONLY","READONLYTABLE","SPINNER","CODE","HIDDEN","INLINE","SUBPANEL","ON_PANEL","CONTROLS","TABS","SUB_TABS","PANELS","ADDITIONAL","COLUMN_SELECTION","PANEL_SELECTOR","CUSTOM_PANEL","SUMMARY_PANEL","ACTION_PANEL","TEXT_PANEL","TWISTY_PANEL","COLUMN_PANEL","TEARSHEET_PANEL","CONTROL","ADDITIONAL_LINK","STATIC_TEXT","HORIZONTAL_SEPARATOR","PANEL","TEARSHEET","PRIMARY_TABS","ACTION","VERTICAL","HORIZONTAL","GENERAL","SUMMARY","BEFORE","AFTER","MAX","LARGE","MEDIUM","SMALL","BOOLEAN","LONG","PASSWORD","STRUCTURE","OBJECT","convertArrayStructureToObject","isList","currentValues","convert","structureKeys","convertedValues","newObject","keyIndex","structureType","convertedRow","converted","dataModel","datasetMetadata","description","modelingRole","modeling_role","convertObjectStructureToArray","_typeof","currentParameters","controls","convertedCurrentParameters","paramName","originalValue","_isUndefined","valueType","propType","val","parseInt","_isString","Boolean","_cloneDeep","evaluateText","text","startIdx","endIdx","substr","expression","newText","replace","paramValue","paramStartIdx","funcName","parameters","slice","split","toFixed","_evaluateExpression","logger","stringValue","_step5","_iterator5","fieldValue","fieldProto","uuid4","subControlDef","defaultValue","dmField","dmDefault","_step6","_iterator6","controlValues","dataColumnIndex","outputList","_step4","_iterator4","controlValue","isSubControlStructureObjectType","_step3","_iterator3","subControl"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{m as e,I as t}from"./isArrayLikeObject-36898fcb.js";import{c as n}from"./datarecord-metadata-v3-schema-59505bc5.js";import{_ as r,a as o}from"./createClass-440000a3.js";import{_ as a,a as s,b as i,c as l}from"./inherits-226dfdb2.js";import c from"react";import u from"react-resize-detector";import p from"./lib/tooltip.es.js";import{Button as h}from"carbon-components-react";import d from"react-inlinesvg";import{c as v}from"./_baseIteratee-05ccf6a8.js";import{ZoomOut16 as b,ZoomIn16 as m,Edit16 as C,TrashCan16 as f,ColorPalette16 as g,ChatOff16 as E,Chat16 as y,AddComment16 as I,Paste16 as k,Copy16 as w,Cut16 as x,Result16 as D,Redo16 as A,Undo16 as B,Launch16 as F,Minimize16 as O,Maximize16 as M,Play16 as R,StopFilledAlt16 as H,ChevronRight16 as T,ChevronUp16 as j,ChevronDown16 as S,OverflowMenuVertical16 as z}from"@carbon/icons-react";import{T as L,m as N,n as V,o as Z,p as P,q as W,r as q,s as $,t as _,u as U,v as G,w as J,x as K,y as Q,z as X,A as Y,B as ee,D as te,F as ne,G as re,H as oe,J as ae,K as se,L as ie,M as le,N as ce,O as ue,P as pe}from"./canvas-constants-079172c0.js";import{v4 as he}from"uuid";var de=/\s/;var ve=function(e){for(var t=e.length;t--&&de.test(e.charAt(t)););return t},be=/^\s+/;var me=function(e){return e?e.slice(0,ve(e)+1).replace(be,""):e},Ce=e,fe=t,ge=/^[-+]0x[0-9a-f]+$/i,Ee=/^0b[01]+$/i,ye=/^0o[0-7]+$/i,Ie=parseInt;var ke=function(e){if("number"==typeof e)return e;if(fe(e))return NaN;if(Ce(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ce(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=me(e);var n=Ee.test(e);return n||ye.test(e)?Ie(e.slice(2),n?2:8):ge.test(e)?NaN:+e},we=ke,xe=1/0;var De=function(e){return e?(e=we(e))===xe||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0};var Ae=function(e){var t=De(e),n=t%1;return t==t?n?t-n:t:0},Be=function(e,t){var n=t.getElementsByClassName(e);return n&&n.length>0?n[0]:null},Fe=function(e,t){var n=Be(e,t);return n?n.getBoundingClientRect():null};function Oe(e,t,n){return t=s(t),i(e,Me()?Reflect.construct(t,n||[],s(e).constructor):t.apply(e,n))}function Me(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Me=function(){return!!e})()}var Re=function(e){function t(e){var n;return r(this,t),(n=Oe(this,t,[e])).onClick=n.onClick.bind(l(n)),n}return a(t,e),o(t,[{key:"componentDidMount",value:function(){this.props.containingDivId&&this.adjustSubAreaPosition()}},{key:"onClick",value:function(){this.props.closeSubArea&&this.props.closeSubArea()}},{key:"adjustSubAreaPosition",value:function(){var e=document.getElementById(this.props.containingDivId),t=e.getBoundingClientRect(),n=this.props.actionObj.subPanel?"subpanel":"submenu",r=Be(n,e),o=Fe(n,e),a=o.bottom-t.bottom,s=o.right-t.right;if("vertical"===this.props.expandDirection){if(a>0){var i=this.props.actionItemRect.top-o.height;r.style.top=i+"px"}if(s>0){var l=this.props.actionItemRect.left-s-2;r.style.left=l+"px"}}else{if(a>0){var c=o.top-a-2;r.style.top=c+"px"}if(s>0){var u=this.props.actionItemRect.left-o.width;r.style.left=u+"px"}}}},{key:"generateSubAreaStyle",value:function(){return"vertical"===this.props.expandDirection?{top:this.props.actionItemRect.bottom+1,left:this.props.actionItemRect.left}:{top:this.props.actionItemRect.top-1,left:this.props.actionItemRect.left+this.props.actionItemRect.width}}},{key:"render",value:function(){var e=this.generateSubAreaStyle();if(this.props.actionObj.subPanel)return c.createElement("div",{style:e,className:"toolbar-popover-list subpanel",onClick:this.onClick},this.props.actionObj.subPanel);if(this.props.actionObj.subMenu){var t=this.props.generateToolbarItems(this.props.actionObj.subMenu,!0,!1);return c.createElement("div",{style:e,className:"toolbar-popover-list submenu",onClick:this.onClick},t)}return null}}]),t}(c.Component);function He(e,t,n){return t=s(t),i(e,Te()?Reflect.construct(t,n||[],s(e).constructor):t.apply(e,n))}function Te(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Te=function(){return!!e})()}var je=function(e){function t(e){var n;return r(this,t),(n=He(this,t,[e])).state={subAreaDisplayed:!1},n.actionClickHandler=n.actionClickHandler.bind(l(n)),n.onMouseEnter=n.onMouseEnter.bind(l(n)),n.onMouseLeave=n.onMouseLeave.bind(l(n)),n.openSubArea=n.openSubArea.bind(l(n)),n.closeSubArea=n.closeSubArea.bind(l(n)),n.clickOutside=n.clickOutside.bind(l(n)),n}return a(t,e),o(t,[{key:"componentDidMount",value:function(){this.props.actionObj.getSubPanelCloseFn&&this.props.actionObj.getSubPanelCloseFn(this.closeSubArea)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.clickOutside,!1)}},{key:"onMouseEnter",value:function(e){(this.props.actionObj.subMenu||this.props.actionObj.subPanel)&&this.props.overflow&&this.openSubArea()}},{key:"onMouseLeave",value:function(e){(this.props.actionObj.subMenu||this.props.actionObj.subPanel)&&this.props.overflow&&this.closeSubArea()}},{key:"getDefaultIcon",value:function(e){var t=!e.enable;switch(e.action){case pe:return c.createElement(H,{disabled:t});case ue:return c.createElement(R,{disabled:t});case ce:return c.createElement(M,{disabled:t});case le:return c.createElement(O,{disabled:t});case ie:return c.createElement(F,{disabled:t});case se:return c.createElement(B,{disabled:t});case ae:return c.createElement(A,{disabled:t});case oe:return c.createElement(D,{disabled:t});case re:return c.createElement(x,{disabled:t});case ne:return c.createElement(w,{disabled:t});case te:return c.createElement(k,{disabled:t});case ee:case Y:return c.createElement(I,{disabled:t});case X:return c.createElement(y,{disabled:t});case Q:return c.createElement(E,{disabled:t});case K:return c.createElement(g,{disabled:t});case J:case G:return c.createElement(f,{disabled:t});case U:case _:return c.createElement(C,{disabled:t});case $:return c.createElement(m,{disabled:t});case q:return c.createElement(b,{disabled:t});case W:return c.createElement(d,{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:t});case P:return c.createElement(d,{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:t});case Z:return c.createElement(d,{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:t});case V:return c.createElement(d,{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:t});case N:return c.createElement(d,{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:t});case L:return c.createElement(d,{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:t});default:return null}}},{key:"generateLabel",value:function(e,t,n,r){var o="toolbar-icon-label";return o+=this.generateLabelType(n,r),o+=t?" disabled":"",c.createElement("div",{className:o},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 n=e.iconEnabled,r=e.iconDisabled||e.iconEnabled,o=e.enable?n:r,a="toolbar-icon-"+this.props.instanceId+" -"+e.action;t="string"==typeof o?c.createElement(d,{id:a,src:o,disabled:!e.enable}):o}return t?c.createElement("div",{className:"toolbar-icon"},t):null}},{key:"clickOutside",value:function(e){if(this.state.subAreaDisplayed){var t=document.getElementsByClassName(this.generateActionName());!!(t&&t.length>0)&&t[0].contains(e.target)||this.closeSubArea()}}},{key:"openSubArea",value:function(){this.setState({subAreaDisplayed:!0})}},{key:"closeSubArea",value:function(){this.setState({subAreaDisplayed:!1})}},{key:"actionClickHandler",value:function(e){this.props.actionObj.subMenu||this.props.actionObj.subPanel?(this.state.showExtendedMenu?document.removeEventListener("click",this.clickOutside,!1):document.addEventListener("click",this.clickOutside,!1),this.props.setResizeHandler&&(this.state.subAreaDisplayed?this.props.setResizeHandler(null):this.props.setResizeHandler(this.closeSubArea)),this.props.overflow||this.setState({subAreaDisplayed:!this.state.subAreaDisplayed})):this.props.toolbarActionHandler(this.props.actionObj.action,e)}},{key:"generateButton",value:function(e){var t=null,n=null;this.props.overflow?n=this.generateLabel(e.label,!e.enable,!0):"before"===e.incLabelWithIcon?t=this.generateLabel(e.label,!e.enable,!1,e.incLabelWithIcon):"after"===e.incLabelWithIcon&&(n=this.generateLabel(e.label,!e.enable,!1,e.incLabelWithIcon));var r=this.generateIcon(e),o=e.textContent?c.createElement("div",{className:"toolbar-text-content"}," ",e.textContent," "):null,a=v("toolbar-item-content",e.className?e.className:null,{overflow:this.props.overflow,disabled:!e.enable,default:!e.kind}),s=e.kind||"ghost",i=this.generateChevronIcon(e),l=c.createElement("div",{className:a},t,r,n,o,i);l=this.wrapInTooltip(l);var u=e.incLabelWithIcon?null:e.label;return l=c.createElement(h,{kind:s,onClick:this.actionClickHandler,disabled:!e.enable,onFocus:this.props.onFocus,"aria-label":u,size:this.props.size},l)}},{key:"generateChevronIcon",value:function(e){if(e.subMenu||e.subPanel){if(this.props.overflow)return c.createElement(T,null);if("before"===e.incLabelWithIcon||"after"===e.incLabelWithIcon){var t=this.state.subAreaDisplayed?c.createElement(j,null):c.createElement(S,null);return c.createElement("div",{className:"toolbar-up-down-chevron"},t)}return this.generateChevronMini()}return null}},{key:"generateChevronMini",value:function(){var e="sm"===this.props.size?"M 29 29 L 29 23 23 29 Z":"M 37 37 L 37 30 30 37 Z";return c.createElement("svg",{className:"toolbar-tick-svg"},c.createElement("path",{d:e,className:"toolbar-tick-mark"}))}},{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(),n=this.props.actionObj.tooltip?this.props.actionObj.tooltip:this.props.actionObj.label,r=t+"-"+this.props.instanceId+"-tooltip",o=this.props.actionObj.enable||this.props.actionObj.jsx,a=this.props.tooltipDirection?this.props.tooltipDirection:"bottom";return c.createElement(p,{id:r,tip:n,disable:!o,className:"icon-tooltip",direction:a},e)}return e}},{key:"showLabelAsTip",value:function(e){return!!e.label&&("before"!==e.incLabelWithIcon&&"after"!==e.incLabelWithIcon)}},{key:"generateSubArea",value:function(){var e=document.getElementsByClassName(this.generateActionName()),t=e&&e.length>0?e[0].getBoundingClientRect():{top:0,left:0,width:120};return c.createElement(Re,{actionObj:this.props.actionObj,generateToolbarItems:this.props.generateToolbarItems,closeSubArea:this.props.actionObj.closeSubAreaOnClick?this.closeSubArea:null,actionItemRect:t,containingDivId:this.props.containingDivId,expandDirection:this.props.overflow?"horizontal":"vertical"})}},{key:"render",value:function(){var e=this.props.actionObj,t=this.generateActionName(),n=null;n=e.jsx?this.wrapInTooltip(e.jsx):this.generateButton(e);var r=!this.props.overflow||null,o=e.kind?e.kind:"default",a=v({"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},o,t),s=this.state.subAreaDisplayed?this.generateSubArea():null;return c.createElement("div",{className:a,"data-toolbar-item":r,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave},n,s)}}]),t}(c.Component);function Se(e,t,n){return t=s(t),i(e,ze()?Reflect.construct(t,n||[],s(e).constructor):t.apply(e,n))}function ze(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(ze=function(){return!!e})()}var Le=function(e){function t(){return r(this,t),Se(this,t,arguments)}return a(t,e),o(t,[{key:"componentDidMount",value:function(){this.props.containingDivId&&this.setSubAreaStyle()}},{key:"setSubAreaStyle",value:function(){var e=document.getElementById(this.props.containingDivId),t=e.getBoundingClientRect(),n=Be("toolbar-popover-list",e),r=Fe("toolbar-popover-list",e);if(r){var o=Fe(this.props.buttonClass,e);if(o){var a=Fe("context-toolbar",e);if(a){var s=r.right-t.right;if(s>0){var i=o.left-a.left;n.style.left=i-s-2+"px"}r.bottom-t.bottom>0&&(n.style.top=-r.height+"px")}}}}},{key:"render",value:function(){var e=null;return this.props.menuItems.length>0&&(e=c.createElement("div",{className:"toolbar-popover-list"},this.props.menuItems)),e}}]),t}(c.Component);function Ne(e,t,n){return t=s(t),i(e,Ve()?Reflect.construct(t,n||[],s(e).constructor):t.apply(e,n))}function Ve(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ve=function(){return!!e})()}var Ze=function(e){function t(e){var n;return r(this,t),(n=Ne(this,t,[e])).state={showExtendedMenu:!1},n.uuid=he(),n.toggleExtendedMenu=n.toggleExtendedMenu.bind(l(n)),n.clickOutside=n.clickOutside.bind(l(n)),n}return a(t,e),o(t,[{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.clickOutside,!1)}},{key:"genOverflowButtonClass",value:function(){return"toolbar-spacer toolbar-index-"+this.props.index+" toolbar-uuid-"+this.uuid}},{key:"toggleExtendedMenu",value:function(){var e=this;this.state.showExtendedMenu?document.removeEventListener("click",this.clickOutside,!1):document.addEventListener("click",this.clickOutside,!1),this.props.setResizeHandler&&(this.state.showExtendedMenu?this.props.setResizeHandler(null):this.props.setResizeHandler((function(){e.setState({showExtendedMenu:!1})}))),this.setState({showExtendedMenu:!this.state.showExtendedMenu})}},{key:"clickOutside",value:function(e){if(this.state.showExtendedMenu){var t=document.getElementsByClassName("toolbar-uuid-"+this.uuid);!!(t&&t.length>0)&&t[0].contains(e.target)||this.setState({showExtendedMenu:!1})}}},{key:"render",value:function(){this.props.setResizeHandler&&!this.state.showExtendedMenu&&this.props.setResizeHandler(null);var e=null;if(this.state.showExtendedMenu){var t=this.props.generateExtensionMenuItems(this.props.index);e=c.createElement(Le,{menuItems:t,containingDivId:this.props.containingDivId,buttonClass:"toolbar-uuid-"+this.uuid})}return c.createElement("div",{className:this.genOverflowButtonClass()},c.createElement("div",{className:"toolbar-overflow-item"},c.createElement(h,{kind:"ghost",tabIndex:-1,onClick:this.toggleExtendedMenu,onFocus:this.props.onFocus,"aria-label":this.props.label,size:this.props.size},c.createElement("div",{className:"toolbar-item-content default"},c.createElement("div",{className:"toolbar-icon"},c.createElement(z,null))))),e)}}]),t}(c.Component);function Pe(e,t,n){return t=s(t),i(e,We()?Reflect.construct(t,n||[],s(e).constructor):t.apply(e,n))}function We(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(We=function(){return!!e})()}var qe=function(e){function t(){return r(this,t),Pe(this,t,arguments)}return a(t,e),o(t,[{key:"render",value:function(){var e=this.props.overflow?"toolbar-divider-overflow":"toolbar-divider";return c.createElement("div",{className:e,"data-toolbar-item":!0,tabIndex:-1,"aria-hidden":!0}," ")}}]),t}(c.Component);function $e(e,t,n){return t=s(t),i(e,_e()?Reflect.construct(t,n||[],s(e).constructor):t.apply(e,n))}function _e(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(_e=function(){return!!e})()}var Ue=function(e){function t(e){var n;return r(this,t),(n=$e(this,t,[e])).leftBar=[],n.rightBar=[],n.resizeHandler=null,n.onFocus=n.onFocus.bind(l(n)),n.onToolbarResize=n.onToolbarResize.bind(l(n)),n.generateExtensionMenuItems=n.generateExtensionMenuItems.bind(l(n)),n.generateToolbarItems=n.generateToolbarItems.bind(l(n)),n.setResizeHandler=n.setResizeHandler.bind(l(n)),n}return a(t,e),o(t,[{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.resizeHandler&&this.resizeHandler(),this.setLeftBarItemsTabIndex(),this.setRightBarItemsTabIndex()}},{key:"setResizeHandler",value:function(e){this.resizeHandler=e}},{key:"setLeftBarItemsTabIndex",value:function(){var e=this.getBar("left");if(e){for(var t=e.querySelectorAll("[data-toolbar-item=true]")||[],n=this.getTopOfFirstOverflowItem(e),r=-1,o=0;o<t.length;o++){var a=t[o].getBoundingClientRect();this.setOverflowItemButtonTabIndex(o,-1,e),a.top===n?(r=o,this.setToolbarItemButtonTabIndex(t[o],0)):this.setToolbarItemButtonTabIndex(t[o],-1)}r<t.length&&this.setOverflowItemButtonTabIndex(r+1,0,e)}}},{key:"setRightBarItemsTabIndex",value:function(){for(var e=this.getRightBarItems(),t=0,n=0;n<e.length;n++){var r=e[n].getBoundingClientRect();0===n&&(t=r.top),r.top===t?this.setToolbarItemButtonTabIndex(e[n],0):this.setToolbarItemButtonTabIndex(e[n],-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 n="toolbar-index-"+e;return t.getElementsByClassName(n)[0]}},{key:"setToolbarItemButtonTabIndex",value:function(e,t){var n=e.querySelector("button");n&&n.setAttribute("tabindex",t)}},{key:"setOverflowItemButtonTabIndex",value:function(e,t,n){var r=this.getOverflowItem(e,n);if(r){var o=r.querySelector("button");o&&o.setAttribute("tabindex",t)}}},{key:"generateToolbarItems",value:function(e,t,n){for(var r=[],o=0;o<e.length;o++){var a=e[o];a&&(n&&!a.divider&&r.push(this.generateOverflowIcon(o)),r.push(this.generateToolbarItem(a,o,t)))}return r}},{key:"generateToolbarItem",value:function(e,t,n){var r=null;return e&&(r=e.divider?c.createElement(qe,{key:"toolbar-item-key-"+t,overflow:n}):c.createElement(je,{key:"toolbar-item-key-"+t,actionObj:e,tooltipDirection:this.props.tooltipDirection,toolbarActionHandler:this.props.toolbarActionHandler,generateToolbarItems:this.generateToolbarItems,setResizeHandler:this.setResizeHandler,overflow:n,instanceId:this.props.instanceId,containingDivId:this.props.containingDivId,onFocus:this.onFocus,size:this.props.size})),r}},{key:"generateOverflowIcon",value:function(e){var t=this.props.additionalText?this.props.additionalText.overflowMenuLabel:"";return c.createElement(Ze,{key:"toolbar-overflow-item-key-"+e,index:e,generateExtensionMenuItems:this.generateExtensionMenuItems,setResizeHandler:this.setResizeHandler,containingDivId:this.props.containingDivId,onFocus:this.onFocus,label:t,size:this.props.size})}},{key:"generateExtensionMenuItems",value:function(e){var t=this.generateRightOverflowItems();t.reverse();var n=this.leftBar.slice(e).concat(t);return this.generateToolbarItems(n,!0,!1)}},{key:"generateRightOverflowItems",value:function(){for(var e=[],t=this.getRightBarItems(),n=0,r=0;r<t.length;r++){var o=t[r].getBoundingClientRect();0===r&&(n=o.top),o.top!==n&&e.push(this.rightBar[r])}return e}},{key:"render",value:function(){this.leftBar=this.props.config.leftBar||[],this.rightBar=this.props.config.rightBar||[],this.rightBar=n(this.rightBar).reverse()||[];var e=this.generateToolbarItems(this.leftBar,!1,!0),t=this.generateToolbarItems(this.rightBar,!1,!1),r="sm"===this.props.size?"toolbar-div toolbar-size-small":"toolbar-div";return c.createElement(u,{handleWidth:!0,onResize:this.onToolbarResize},c.createElement("div",{className:r,instanceid:this.props.instanceId},c.createElement("div",{className:"toolbar-left-bar",onScroll:this.onScroll},e),c.createElement("div",{className:"toolbar-right-bar"},t)))}}]),t}(c.Component);export{Ue as T,ke as a,Ae as t};
2
- //# sourceMappingURL=toolbar-b01e6749.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolbar-b01e6749.js","sources":["../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../src/toolbar/toolbar-utils.js","../src/toolbar/toolbar-action-sub-area.jsx","../src/toolbar/toolbar-action-item.jsx","../assets/images/zoom_to_fit.svg","../assets/images/arrange_horizontally.svg","../assets/images/arrange_vertically.svg","../assets/images/palette/palette_open.svg","../assets/images/palette/palette_close.svg","../assets/images/notification_counter_icon.svg","../src/toolbar/toolbar-overflow-menu.jsx","../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","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","/*\n * Copyright 2017-2023 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\nexport const genElementByClass = (className, containingDiv) => {\n\tconst elements = containingDiv.getElementsByClassName(className);\n\n\tif (elements && elements.length > 0) {\n\t\treturn elements[0];\n\t}\n\treturn null;\n};\n\nexport const genRectByClass = (className, containingDiv) => {\n\tconst element = genElementByClass(className, containingDiv);\n\n\tif (element) {\n\t\treturn element.getBoundingClientRect();\n\t}\n\treturn null;\n};\n","/*\n * Copyright 2023 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\";\nimport { genElementByClass, genRectByClass } from \"./toolbar-utils.js\";\n\nclass ToolbarActionSubArea extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.onClick = this.onClick.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tif (this.props.containingDivId) {\n\t\t\tthis.adjustSubAreaPosition();\n\t\t}\n\t}\n\n\t// If we are given a closeSubArea function then call it. We will only have\n\t// such a function if the user has specified the closeSubAreaOnClick prop for\n\t// the parent action AND provided the user has not stopped event propogation.\n\tonClick() {\n\t\tif (this.props.closeSubArea) {\n\t\t\tthis.props.closeSubArea();\n\t\t}\n\t}\n\n\t// Adjust the position of the sub-area to make sure it doesn't extend\n\t// outside the containing divs boundary. We need to do this after the subarea\n\t// has been mounted so we can query its size and position.\n\tadjustSubAreaPosition() {\n\t\tconst containingDiv = document.getElementById(this.props.containingDivId);\n\t\tconst containingDivRect = containingDiv.getBoundingClientRect();\n\n\t\tconst classToGet = this.props.actionObj.subPanel ? \"subpanel\" : \"submenu\";\n\n\t\tconst thisArea = genElementByClass(classToGet, containingDiv);\n\t\tconst thisAreaRect = genRectByClass(classToGet, containingDiv);\n\n\t\tconst outsideBottom = thisAreaRect.bottom - containingDivRect.bottom;\n\t\tconst outsideRight = thisAreaRect.right - containingDivRect.right;\n\n\t\tif (this.props.expandDirection === \"vertical\") {\n\t\t\tif (outsideBottom > 0) {\n\t\t\t\tconst newTop = this.props.actionItemRect.top - thisAreaRect.height;\n\t\t\t\tthisArea.style.top = newTop + \"px\";\n\t\t\t}\n\n\t\t\tif (outsideRight > 0) {\n\t\t\t\tconst newLeft = this.props.actionItemRect.left - outsideRight - 2;\n\t\t\t\tthisArea.style.left = newLeft + \"px\";\n\t\t\t}\n\n\t\t} else {\n\t\t\tif (outsideBottom > 0) {\n\t\t\t\tconst newTop = thisAreaRect.top - outsideBottom - 2;\n\t\t\t\tthisArea.style.top = newTop + \"px\";\n\t\t\t}\n\n\t\t\tif (outsideRight > 0) {\n\t\t\t\tconst newLeft = this.props.actionItemRect.left - thisAreaRect.width;\n\t\t\t\tthisArea.style.left = newLeft + \"px\";\n\t\t\t}\n\t\t}\n\t}\n\n\tgenerateSubAreaStyle() {\n\t\tif (this.props.expandDirection === \"vertical\") {\n\t\t\treturn {\n\t\t\t\ttop: this.props.actionItemRect.bottom + 1,\n\t\t\t\tleft: this.props.actionItemRect.left\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\ttop: this.props.actionItemRect.top - 1,\n\t\t\tleft: this.props.actionItemRect.left + this.props.actionItemRect.width\n\t\t};\n\t}\n\n\trender() {\n\t\tconst style = this.generateSubAreaStyle();\n\n\t\tif (this.props.actionObj.subPanel) {\n\t\t\treturn (\n\t\t\t\t<div style={style} className={\"toolbar-popover-list subpanel\"} onClick={this.onClick}>\n\t\t\t\t\t{this.props.actionObj.subPanel}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if (this.props.actionObj.subMenu) {\n\t\t\tconst subMenuItems = this.props.generateToolbarItems(this.props.actionObj.subMenu, true, false);\n\n\t\t\treturn (\n\t\t\t\t<div style={style} className={\"toolbar-popover-list submenu\"} onClick={this.onClick}>\n\t\t\t\t\t{subMenuItems}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n}\n\nToolbarActionSubArea.propTypes = {\n\tactionObj: PropTypes.object.isRequired,\n\tgenerateToolbarItems: PropTypes.func.isRequired,\n\tcloseSubArea: PropTypes.func,\n\tactionItemRect: PropTypes.object.isRequired,\n\texpandDirection: PropTypes.string.isRequired,\n\tcontainingDivId: PropTypes.string\n};\n\nexport default ToolbarActionSubArea;\n","/*\n * Copyright 2017-2023 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 ToolbarActionSubArea from \"./toolbar-action-sub-area.jsx\";\nimport { StopFilledAlt16, Play16, Undo16, Redo16, Chat16, ChatOff16, Result16,\n\tCut16, Copy16, Paste16, Edit16,\tColorPalette16, Maximize16, Minimize16,\n\tLaunch16, AddComment16, TrashCan16, ZoomIn16, ZoomOut16,\n\tChevronRight16, ChevronDown16, ChevronUp16 } from \"@carbon/icons-react\";\nimport { TOOLBAR_STOP, TOOLBAR_RUN, TOOLBAR_UNDO, TOOLBAR_REDO,\n\tTOOLBAR_CUT, TOOLBAR_COPY, TOOLBAR_PASTE, TOOLBAR_CLIPBOARD,\n\tTOOLBAR_CREATE_COMMENT, TOOLBAR_CREATE_AUTO_COMMENT, TOOLBAR_COLOR_BACKGROUND,\n\tTOOLBAR_DELETE_SELECTED_OBJECTS, TOOLBAR_DELETE_LINK,\n\tTOOLBAR_ZOOM_IN, TOOLBAR_ZOOM_OUT, TOOLBAR_ZOOM_FIT,\n\tTOOLBAR_ARRANGE_HORIZONALLY, TOOLBAR_ARRANGE_VERTICALLY,\n\tTOOLBAR_OPEN_PALETTE, TOOLBAR_CLOSE_PALETTE, TOOLBAR_TOGGLE_NOTIFICATION_PANEL,\n\tTOOLBAR_SHOW_COMMENTS, TOOLBAR_HIDE_COMMENTS,\n\tTOOLBAR_EXPAND_SUPERNODE_IN_PLACE, TOOLBAR_COLLAPSE_SUPERNODE_IN_PLACE,\n\tTOOLBAR_EXPAND_SUPERNODE_FULL_PAGE, TOOLBAR_SET_NODE_LABEL_EDIT, TOOLBAR_SET_COMMENT_EDIT_MODE }\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.state = {\n\t\t\tsubAreaDisplayed: false\n\t\t};\n\n\t\tthis.actionClickHandler = this.actionClickHandler.bind(this);\n\t\tthis.onMouseEnter = this.onMouseEnter.bind(this);\n\t\tthis.onMouseLeave = this.onMouseLeave.bind(this);\n\t\tthis.openSubArea = this.openSubArea.bind(this);\n\t\tthis.closeSubArea = this.closeSubArea.bind(this);\n\t\tthis.clickOutside = this.clickOutside.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tif (this.props.actionObj.getSubPanelCloseFn) {\n\t\t\tthis.props.actionObj.getSubPanelCloseFn(this.closeSubArea);\n\t\t}\n\t}\n\n\t// We must remove the eventListener in case this class is unmounted due\n\t// to the toolbar getting redrawn.\n\tcomponentWillUnmount() {\n\t\tdocument.removeEventListener(\"click\", this.clickOutside, false);\n\t}\n\n\tonMouseEnter(evt) {\n\t\tif ((this.props.actionObj.subMenu || this.props.actionObj.subPanel) && this.props.overflow) {\n\t\t\tthis.openSubArea();\n\t\t}\n\t}\n\n\tonMouseLeave(evt) {\n\t\tif ((this.props.actionObj.subMenu || this.props.actionObj.subPanel) && this.props.overflow) {\n\t\t\tthis.closeSubArea();\n\t\t}\n\t}\n\n\t// Returns a default icon, if there is one, for the action passed in.\n\t// It also may be set to disabled state.\n\tgetDefaultIcon(actionObj) {\n\t\tconst disabled = !actionObj.enable;\n\n\t\tswitch (actionObj.action) {\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_EXPAND_SUPERNODE_IN_PLACE):\n\t\t\treturn <Maximize16 disabled={disabled} />;\n\t\tcase (TOOLBAR_COLLAPSE_SUPERNODE_IN_PLACE):\n\t\t\treturn <Minimize16 disabled={disabled} />;\n\t\tcase (TOOLBAR_EXPAND_SUPERNODE_FULL_PAGE):\n\t\t\treturn <Launch16 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_CLIPBOARD):\n\t\t\treturn <Result16 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_COMMENT):\n\t\tcase (TOOLBAR_CREATE_AUTO_COMMENT):\n\t\t\treturn <AddComment16 disabled={disabled} />;\n\t\tcase (TOOLBAR_SHOW_COMMENTS):\n\t\t\treturn <Chat16 disabled={disabled} />;\n\t\tcase (TOOLBAR_HIDE_COMMENTS):\n\t\t\treturn <ChatOff16 disabled={disabled} />;\n\t\tcase (TOOLBAR_COLOR_BACKGROUND):\n\t\t\treturn <ColorPalette16 disabled={disabled} />;\n\t\tcase (TOOLBAR_DELETE_LINK):\n\t\tcase (TOOLBAR_DELETE_SELECTED_OBJECTS):\n\t\t\treturn <TrashCan16 disabled={disabled} />;\n\t\tcase (TOOLBAR_SET_COMMENT_EDIT_MODE):\n\t\tcase (TOOLBAR_SET_NODE_LABEL_EDIT):\n\t\t\treturn <Edit16 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={ArrangeHorizontally} disabled={disabled} />;\n\t\tcase (TOOLBAR_ARRANGE_VERTICALLY):\n\t\t\treturn <SVG src={ArrangeVertically} 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\tclickOutside(evt) {\n\t\tif (this.state.subAreaDisplayed) {\n\t\t\tconst items = document.getElementsByClassName(this.generateActionName());\n\t\t\tconst isOver = items && items.length > 0 ? items[0].contains(evt.target) : false;\n\n\t\t\tif (!isOver) {\n\t\t\t\tthis.closeSubArea();\n\t\t\t}\n\t\t}\n\t}\n\n\topenSubArea() {\n\t\tthis.setState({ subAreaDisplayed: true });\n\t}\n\n\tcloseSubArea() {\n\t\tthis.setState({ subAreaDisplayed: false });\n\t}\n\n\tactionClickHandler(evt) {\n\t\tif (this.props.actionObj.subMenu || this.props.actionObj.subPanel) {\n\t\t\tif (this.state.showExtendedMenu) {\n\t\t\t\tdocument.removeEventListener(\"click\", this.clickOutside, false);\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"click\", this.clickOutside, false);\n\t\t\t}\n\n\t\t\tif (this.props.setResizeHandler) {\n\t\t\t\tif (this.state.subAreaDisplayed) {\n\t\t\t\t\tthis.props.setResizeHandler(null);\n\t\t\t\t} else {\n\t\t\t\t\tthis.props.setResizeHandler(this.closeSubArea);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!this.props.overflow) {\n\t\t\t\tthis.setState({ subAreaDisplayed: !this.state.subAreaDisplayed });\n\t\t\t}\n\t\t} else {\n\t\t\tthis.props.toolbarActionHandler(this.props.actionObj.action, evt);\n\t\t}\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\tconst chevronIcon = this.generateChevronIcon(actionObj);\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\t{chevronIcon}\n\t\t\t</div>\n\t\t);\n\n\t\tbuttonContent = this.wrapInTooltip(buttonContent);\n\n\t\t// Only specify an aria label for the button if a label is not displayed\n\t\t// with the button icon.\n\t\tconst ariaLabel = actionObj.incLabelWithIcon ? null : actionObj.label;\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={ariaLabel}\n\t\t\t\tsize={this.props.size}\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\t// Returns a chevron icon if the action icon is displaying a sub-menu or\n\t// sub-panel. The chevron will:\n\t// * point right if this action item is in a drop down menu\n\t// * point down if this action item is displayed with text in the toolbar\n\t// and the menu isn't displayed\n\t// * point up if this action item is displayed with text in the toolbar\n\t// and the menu is displayed\n\t// * be a mini-chevron (small triangle in the bottom right of icon) if this\n\t// action item isn't displayed with text.\n\tgenerateChevronIcon(actionObj) {\n\t\tif (actionObj.subMenu || actionObj.subPanel) {\n\t\t\tif (this.props.overflow) {\n\t\t\t\treturn (<ChevronRight16 />);\n\t\t\t}\n\t\t\tif (actionObj.incLabelWithIcon === \"before\" ||\n\t\t\t\t\tactionObj.incLabelWithIcon === \"after\") {\n\t\t\t\tconst chev = this.state.subAreaDisplayed ? (<ChevronUp16 />) : (<ChevronDown16 />);\n\t\t\t\treturn (<div className={\"toolbar-up-down-chevron\"}>{chev}</div>);\n\t\t\t}\n\t\t\treturn this.generateChevronMini();\n\t\t}\n\t\treturn null;\n\t}\n\n\t// Returns an svg to display the little triangle that appears in the bottom\n\t// right corner of icons that, when clicked, show a drop down menu.\n\tgenerateChevronMini() {\n\t\tconst path = this.props.size === \"sm\" ? \"M 29 29 L 29 23 23 29 Z\" : \"M 37 37 L 37 30 30 37 Z\";\n\t\treturn (\n\t\t\t<svg className=\"toolbar-tick-svg\">\n\t\t\t\t<path d={path} className=\"toolbar-tick-mark\" />\n\t\t\t</svg>\n\t\t);\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 tip = 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.jsx; // JSX 'tools' don't have enable attr so always display a tooltip for them.\n\t\t\tconst direction = this.props.tooltipDirection ? this.props.tooltipDirection : \"bottom\";\n\n\t\t\treturn (\n\t\t\t\t<Tooltip id={tooltipId} tip={tip} disable={!enableTooltip} className=\"icon-tooltip\" direction={direction}>\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\t// Returns a sub-area for a cascading menu item. The sub-area can be either a\n\t// sub-panel which is a div contaiing whatever the caller passes in within the\n\t// supPanel field OR a sub-menu which is a list of options which is created\n\t// from the array of items the caller passes in the subMenu field.\n\tgenerateSubArea() {\n\t\tconst elements = document.getElementsByClassName(this.generateActionName());\n\t\tconst actionItemRect = elements && elements.length > 0 ? elements[0].getBoundingClientRect() : { top: 0, left: 0, width: 120 };\n\n\t\treturn (\n\t\t\t<ToolbarActionSubArea\n\t\t\t\tactionObj={this.props.actionObj}\n\t\t\t\tgenerateToolbarItems={this.props.generateToolbarItems}\n\t\t\t\tcloseSubArea={this.props.actionObj.closeSubAreaOnClick ? this.closeSubArea : null}\n\t\t\t\tactionItemRect={actionItemRect}\n\t\t\t\tcontainingDivId={this.props.containingDivId}\n\t\t\t\texpandDirection={this.props.overflow ? \"horizontal\" : \"vertical\" }\n\t\t\t/>\n\t\t);\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\tconst subArea = this.state.subAreaDisplayed ? this.generateSubArea() : null;\n\n\t\treturn (\n\t\t\t<div className={itemClassName} data-toolbar-item={isToolbarItem} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave}>\n\t\t\t\t{divContent}\n\t\t\t\t{subArea}\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\tisSelected: PropTypes.bool,\n\t\tkind: PropTypes.string,\n\t\tcloseSubAreaOnClick: PropTypes.bool,\n\t\tgetSubPanelCloseFn: PropTypes.func,\n\t\tsubMenu: PropTypes.array,\n\t\tsubPanel: PropTypes.object,\n\t\tjsx: PropTypes.object,\n\t\ttooltip: PropTypes.oneOfType([\n\t\t\tPropTypes.string,\n\t\t\tPropTypes.object,\n\t\t\tPropTypes.func\n\t\t])\n\t}),\n\ttooltipDirection: PropTypes.oneOf([\"top\", \"bottom\"]),\n\ttoolbarActionHandler: PropTypes.func.isRequired,\n\tgenerateToolbarItems: PropTypes.func.isRequired,\n\tsetResizeHandler: PropTypes.func,\n\tinstanceId: PropTypes.number.isRequired,\n\tcontainingDivId: PropTypes.string,\n\toverflow: PropTypes.bool,\n\tonFocus: PropTypes.func,\n\tsize: PropTypes.oneOf([\"md\", \"sm\"])\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%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%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%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-2023 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\";\nimport { genElementByClass, genRectByClass } from \"./toolbar-utils.js\";\n\nclass ToolbarOverflowMenu extends React.Component {\n\n\tcomponentDidMount() {\n\t\tif (this.props.containingDivId) {\n\t\t\tthis.setSubAreaStyle();\n\t\t}\n\t}\n\n\tsetSubAreaStyle() {\n\t\tconst containingDiv = document.getElementById(this.props.containingDivId);\n\t\tconst containingDivRect = containingDiv.getBoundingClientRect();\n\n\t\tconst mainMenu = genElementByClass(\"toolbar-popover-list\", containingDiv);\n\t\tconst mainMenuRect = genRectByClass(\"toolbar-popover-list\", containingDiv);\n\n\t\tif (mainMenuRect) {\n\t\t\tconst overflowButtonRect = genRectByClass(this.props.buttonClass, containingDiv);\n\n\t\t\tif (overflowButtonRect) {\n\t\t\t\tconst contextToolbaRect = genRectByClass(\"context-toolbar\", containingDiv);\n\n\t\t\t\tif (contextToolbaRect) {\n\t\t\t\t\tconst outsideRight = mainMenuRect.right - containingDivRect.right;\n\t\t\t\t\tif (outsideRight > 0) {\n\t\t\t\t\t\tconst overflowIconOffsetX = overflowButtonRect.left - contextToolbaRect.left;\n\t\t\t\t\t\tmainMenu.style.left = (overflowIconOffsetX - outsideRight - 2) + \"px\";\n\t\t\t\t\t}\n\n\t\t\t\t\tconst outsideBottom = mainMenuRect.bottom - containingDivRect.bottom;\n\t\t\t\t\tif (outsideBottom > 0) {\n\t\t\t\t\t\tmainMenu.style.top = -mainMenuRect.height + \"px\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\trender() {\n\t\tlet overflowMenu = null;\n\t\tif (this.props.menuItems.length > 0) {\n\t\t\toverflowMenu = (\n\t\t\t\t<div className={\"toolbar-popover-list\"}>\n\t\t\t\t\t{this.props.menuItems}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t\treturn overflowMenu;\n\t}\n}\n\nToolbarOverflowMenu.propTypes = {\n\tmenuItems: PropTypes.array.isRequired,\n\tcontainingDivId: PropTypes.string,\n\tbuttonClass: PropTypes.string\n};\n\nexport default ToolbarOverflowMenu;\n","/*\n * Copyright 2017-2023 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 { v4 as uuid4 } from \"uuid\";\nimport { Button } from \"carbon-components-react\";\nimport { OverflowMenuVertical16 } from \"@carbon/icons-react\";\nimport ToolbarOverflowMenu from \"./toolbar-overflow-menu.jsx\";\n\nclass ToolbarOverflowItem extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tshowExtendedMenu: false\n\t\t};\n\t\tthis.uuid = uuid4();\n\t\tthis.toggleExtendedMenu = this.toggleExtendedMenu.bind(this);\n\t\tthis.clickOutside = this.clickOutside.bind(this);\n\t}\n\n\t// We must remove the eventListener in case this class is unmounted due\n\t// to the toolbar getting redrawn.\n\tcomponentWillUnmount() {\n\t\tdocument.removeEventListener(\"click\", this.clickOutside, false);\n\t}\n\n\tgenOverflowButtonClass() {\n\t\treturn \"toolbar-spacer toolbar-index-\" + this.props.index + \" toolbar-uuid-\" + this.uuid;\n\t}\n\n\ttoggleExtendedMenu() {\n\t\tif (this.state.showExtendedMenu) {\n\t\t\tdocument.removeEventListener(\"click\", this.clickOutside, false);\n\t\t} else {\n\t\t\tdocument.addEventListener(\"click\", this.clickOutside, false);\n\t\t}\n\n\t\tif (this.props.setResizeHandler) {\n\t\t\tif (this.state.showExtendedMenu) {\n\t\t\t\tthis.props.setResizeHandler(null);\n\t\t\t} else {\n\t\t\t\tthis.props.setResizeHandler(() => {\n\t\t\t\t\tthis.setState({ showExtendedMenu: false });\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({ showExtendedMenu: !this.state.showExtendedMenu });\n\t}\n\n\tclickOutside(evt) {\n\t\tif (this.state.showExtendedMenu) {\n\t\t\tconst items = document.getElementsByClassName(\"toolbar-uuid-\" + this.uuid);\n\t\t\tconst isOver = items && items.length > 0 ? items[0].contains(evt.target) : false;\n\n\t\t\tif (!isOver) {\n\t\t\t\tthis.setState({ showExtendedMenu: false });\n\t\t\t}\n\t\t}\n\t}\n\n\trender() {\n\t\tif (this.props.setResizeHandler && !this.state.showExtendedMenu) {\n\t\t\tthis.props.setResizeHandler(null);\n\t\t}\n\n\t\tlet overflowMenu = null;\n\t\tif (this.state.showExtendedMenu) {\n\t\t\tconst menuItems = this.props.generateExtensionMenuItems(this.props.index);\n\t\t\toverflowMenu = (\n\t\t\t\t<ToolbarOverflowMenu\n\t\t\t\t\tmenuItems={menuItems}\n\t\t\t\t\tcontainingDivId={this.props.containingDivId}\n\t\t\t\t\tbuttonClass={\"toolbar-uuid-\" + this.uuid}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div className={this.genOverflowButtonClass()} >\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\ttabIndex={-1}\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\tsize={this.props.size}\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\tindex: PropTypes.number.isRequired,\n\tgenerateExtensionMenuItems: PropTypes.func,\n\tsetResizeHandler: PropTypes.func,\n\tcontainingDivId: PropTypes.string,\n\tonFocus: PropTypes.func,\n\tlabel: PropTypes.string,\n\tsize: PropTypes.oneOf([\"md\", \"sm\"])\n};\n\nexport default ToolbarOverflowItem;\n","/*\n * Copyright 2017-2023 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 >&nbsp;</div>\n\t\t);\n\t}\n}\n\nToolbarDividerItem.propTypes = {\n\toverflow: PropTypes.bool\n};\n\nexport default ToolbarDividerItem;\n","/*\n * Copyright 2017-2023 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\";\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.leftBar = [];\n\t\tthis.rightBar = [];\n\n\t\tthis.resizeHandler = null;\n\t\tthis.onFocus = this.onFocus.bind(this);\n\t\tthis.onToolbarResize = this.onToolbarResize.bind(this);\n\t\tthis.generateExtensionMenuItems = this.generateExtensionMenuItems.bind(this);\n\t\tthis.generateToolbarItems = this.generateToolbarItems.bind(this);\n\t\tthis.setResizeHandler = this.setResizeHandler.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.resizeHandler) {\n\t\t\tthis.resizeHandler();\n\t\t}\n\n\t\tthis.setLeftBarItemsTabIndex();\n\t\tthis.setRightBarItemsTabIndex();\n\t}\n\n\t// Allows the overflow item or action item to set a function that will be\n\t// called when the toolbar is resized. This function causes the menu that\n\t// is currently open to be closed.\n\tsetResizeHandler(resizeHandler) {\n\t\tthis.resizeHandler = resizeHandler;\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\ttooltipDirection={this.props.tooltipDirection}\n\t\t\t\t\t\ttoolbarActionHandler={this.props.toolbarActionHandler}\n\t\t\t\t\t\tgenerateToolbarItems={this.generateToolbarItems}\n\t\t\t\t\t\tsetResizeHandler={this.setResizeHandler}\n\t\t\t\t\t\toverflow={overflow}\n\t\t\t\t\t\tinstanceId={this.props.instanceId}\n\t\t\t\t\t\tcontainingDivId={this.props.containingDivId}\n\t\t\t\t\t\tonFocus={this.onFocus}\n\t\t\t\t\t\tsize={this.props.size}\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\tgenerateExtensionMenuItems={this.generateExtensionMenuItems}\n\t\t\t\tsetResizeHandler={this.setResizeHandler}\n\t\t\t\tcontainingDivId={this.props.containingDivId}\n\t\t\t\tonFocus={this.onFocus}\n\t\t\t\tlabel={label}\n\t\t\t\tsize={this.props.size}\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\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 toolbarSizeClass = this.props.size === \"sm\" ? \"toolbar-div toolbar-size-small\" : \"toolbar-div\";\n\t\tconst canvasToolbar = (\n\t\t\t<ReactResizeDetector handleWidth onResize={this.onToolbarResize}>\n\t\t\t\t<div className={toolbarSizeClass} instanceid={this.props.instanceId}>\n\t\t\t\t\t<div className=\"toolbar-left-bar\" onScroll={this.onScroll}>\n\t\t\t\t\t\t{leftItems}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"toolbar-right-bar\">\n\t\t\t\t\t\t{rightItems}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</ReactResizeDetector>\n\t\t);\n\t\treturn canvasToolbar;\n\t}\n}\n\nToolbar.propTypes = {\n\tconfig: PropTypes.object.isRequired,\n\tinstanceId: PropTypes.number.isRequired,\n\tcontainingDivId: PropTypes.string,\n\ttoolbarActionHandler: PropTypes.func,\n\ttooltipDirection: PropTypes.string,\n\tadditionalText: PropTypes.object,\n\tsize: PropTypes.oneOf([\"md\", \"sm\"])\n};\n\nexport default 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","toNumber","require$$0","INFINITY","toFinite","toInteger_1","result","remainder","genElementByClass","className","containingDiv","elements","getElementsByClassName","genRectByClass","element","getBoundingClientRect","_React$Component","ToolbarActionSubArea","props","_this","_classCallCheck","_callSuper","onClick","bind","_assertThisInitialized","_inherits","_createClass","key","this","containingDivId","adjustSubAreaPosition","closeSubArea","document","getElementById","containingDivRect","classToGet","actionObj","subPanel","thisArea","thisAreaRect","outsideBottom","bottom","outsideRight","right","expandDirection","newTop","actionItemRect","top","height","style","newLeft","left","width","generateSubAreaStyle","React","createElement","subMenu","subMenuItems","generateToolbarItems","Component","ToolbarActionItem","state","subAreaDisplayed","actionClickHandler","onMouseEnter","onMouseLeave","openSubArea","clickOutside","getSubPanelCloseFn","removeEventListener","evt","overflow","disabled","enable","action","TOOLBAR_STOP","StopFilledAlt16","TOOLBAR_RUN","Play16","TOOLBAR_EXPAND_SUPERNODE_IN_PLACE","Maximize16","TOOLBAR_COLLAPSE_SUPERNODE_IN_PLACE","Minimize16","TOOLBAR_EXPAND_SUPERNODE_FULL_PAGE","Launch16","TOOLBAR_UNDO","Undo16","TOOLBAR_REDO","Redo16","TOOLBAR_CLIPBOARD","Result16","TOOLBAR_CUT","Cut16","TOOLBAR_COPY","Copy16","TOOLBAR_PASTE","Paste16","TOOLBAR_CREATE_COMMENT","TOOLBAR_CREATE_AUTO_COMMENT","AddComment16","TOOLBAR_SHOW_COMMENTS","Chat16","TOOLBAR_HIDE_COMMENTS","ChatOff16","TOOLBAR_COLOR_BACKGROUND","ColorPalette16","TOOLBAR_DELETE_LINK","TOOLBAR_DELETE_SELECTED_OBJECTS","TrashCan16","TOOLBAR_SET_COMMENT_EDIT_MODE","TOOLBAR_SET_NODE_LABEL_EDIT","Edit16","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","incLabelWithIcon","generateLabelType","inLabelWithIcon","icon","getDefaultIcon","iconEnabled","iconDisabled","customIcon","id","instanceId","items","generateActionName","contains","target","setState","showExtendedMenu","addEventListener","setResizeHandler","toolbarActionHandler","labelBefore","labelAfter","generateLabel","generateIcon","textContent","itemContentClassName","classNames","default","kind","chevronIcon","generateChevronIcon","buttonContent","wrapInTooltip","ariaLabel","Button","onFocus","size","ChevronRight16","chev","ChevronUp16","ChevronDown16","generateChevronMini","path","d","content","showLabelAsTip","tooltip","actionName","tip","tooltipId","enableTooltip","jsx","direction","tooltipDirection","Tooltip","closeSubAreaOnClick","divContent","generateButton","isToolbarItem","kindAsClass","itemClassName","isSelected","subArea","generateSubArea","ToolbarOverflowMenu","arguments","setSubAreaStyle","mainMenu","mainMenuRect","overflowButtonRect","buttonClass","contextToolbaRect","overflowIconOffsetX","overflowMenu","menuItems","ToolbarOverflowItem","uuid","uuid4","toggleExtendedMenu","_this2","generateExtensionMenuItems","genOverflowButtonClass","tabIndex","OverflowMenuVertical16","ToolbarDividerItem","dividerClassName","Toolbar","leftBar","rightBar","resizeHandler","onToolbarResize","setLeftBarItemsTabIndex","setRightBarItemsTabIndex","currentTarget","scroll","preventDefault","bar","getBar","querySelectorAll","topRow","getTopOfFirstOverflowItem","lastTopRowElement","i","itemRect","setOverflowItemButtonTabIndex","setToolbarItemButtonTabIndex","getRightBarItems","side","querySelector","concat","firstOverflowItem","getOverflowItem","overflowClassName","item","button","setAttribute","overflowItem","overflowButton","actionDefinitions","withSpacer","newItems","divider","push","generateOverflowIcon","generateToolbarItem","additionalText","overflowMenuLabel","leftIndex","rightItems","generateRightOverflowItems","reverse","overflowMenuBarItems","newDefItems","rect","config","_toConsumableArray","leftItems","toolbarSizeClass","ReactResizeDetector","handleWidth","onResize","instanceid","onScroll"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";var e=require("./isArrayLikeObject-04f333a5.js"),t=require("./datarecord-metadata-v3-schema-dba0b214.js"),n=require("./createClass-5ca26865.js"),a=require("./inherits-41673c87.js"),r=require("react"),o=require("react-resize-detector"),i=require("./lib/tooltip.js"),s=require("carbon-components-react"),l=require("react-inlinesvg"),u=require("./_baseIteratee-2b75d27c.js"),c=require("@carbon/icons-react"),d=require("./canvas-constants-ff5cf88e.js"),h=require("uuid");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=p(r),C=p(o),v=p(l),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,I=e.isSymbol_1,y=/^[-+]0x[0-9a-f]+$/i,A=/^0b[01]+$/i,T=/^0o[0-7]+$/i,_=parseInt;var R=function(e){if("number"==typeof e)return e;if(I(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 n=A.test(e);return n||T.test(e)?_(e.slice(2),n?2:8):y.test(e)?NaN:+e},D=R,k=1/0;var B=function(e){return e?(e=D(e))===k||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0};var w=function(e){var t=B(e),n=t%1;return t==t?n?t-n:t:0},x=function(e,t){var n=t.getElementsByClassName(e);return n&&n.length>0?n[0]:null},L=function(e,t){var n=x(e,t);return n?n.getBoundingClientRect():null};function M(e,t,n){return t=a._getPrototypeOf(t),a._possibleConstructorReturn(e,F()?Reflect.construct(t,n||[],a._getPrototypeOf(e).constructor):t.apply(e,n))}function F(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(F=function(){return!!e})()}var N=function(e){function t(e){var r;return n._classCallCheck(this,t),(r=M(this,t,[e])).onClick=r.onClick.bind(a._assertThisInitialized(r)),r}return a._inherits(t,e),n._createClass(t,[{key:"componentDidMount",value:function(){this.props.containingDivId&&this.adjustSubAreaPosition()}},{key:"onClick",value:function(){this.props.closeSubArea&&this.props.closeSubArea()}},{key:"adjustSubAreaPosition",value:function(){var e=document.getElementById(this.props.containingDivId),t=e.getBoundingClientRect(),n=this.props.actionObj.subPanel?"subpanel":"submenu",a=x(n,e),r=L(n,e),o=r.bottom-t.bottom,i=r.right-t.right;if("vertical"===this.props.expandDirection){if(o>0){var s=this.props.actionItemRect.top-r.height;a.style.top=s+"px"}if(i>0){var l=this.props.actionItemRect.left-i-2;a.style.left=l+"px"}}else{if(o>0){var u=r.top-o-2;a.style.top=u+"px"}if(i>0){var c=this.props.actionItemRect.left-r.width;a.style.left=c+"px"}}}},{key:"generateSubAreaStyle",value:function(){return"vertical"===this.props.expandDirection?{top:this.props.actionItemRect.bottom+1,left:this.props.actionItemRect.left}:{top:this.props.actionItemRect.top-1,left:this.props.actionItemRect.left+this.props.actionItemRect.width}}},{key:"render",value:function(){var e=this.generateSubAreaStyle();if(this.props.actionObj.subPanel)return f.default.createElement("div",{style:e,className:"toolbar-popover-list subpanel",onClick:this.onClick},this.props.actionObj.subPanel);if(this.props.actionObj.subMenu){var t=this.props.generateToolbarItems(this.props.actionObj.subMenu,!0,!1);return f.default.createElement("div",{style:e,className:"toolbar-popover-list submenu",onClick:this.onClick},t)}return null}}]),t}(f.default.Component);function S(e,t,n){return t=a._getPrototypeOf(t),a._possibleConstructorReturn(e,z()?Reflect.construct(t,n||[],a._getPrototypeOf(e).constructor):t.apply(e,n))}function z(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(z=function(){return!!e})()}var H=function(e){function t(e){var r;return n._classCallCheck(this,t),(r=S(this,t,[e])).state={subAreaDisplayed:!1},r.actionClickHandler=r.actionClickHandler.bind(a._assertThisInitialized(r)),r.onMouseEnter=r.onMouseEnter.bind(a._assertThisInitialized(r)),r.onMouseLeave=r.onMouseLeave.bind(a._assertThisInitialized(r)),r.openSubArea=r.openSubArea.bind(a._assertThisInitialized(r)),r.closeSubArea=r.closeSubArea.bind(a._assertThisInitialized(r)),r.clickOutside=r.clickOutside.bind(a._assertThisInitialized(r)),r}return a._inherits(t,e),n._createClass(t,[{key:"componentDidMount",value:function(){this.props.actionObj.getSubPanelCloseFn&&this.props.actionObj.getSubPanelCloseFn(this.closeSubArea)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.clickOutside,!1)}},{key:"onMouseEnter",value:function(e){(this.props.actionObj.subMenu||this.props.actionObj.subPanel)&&this.props.overflow&&this.openSubArea()}},{key:"onMouseLeave",value:function(e){(this.props.actionObj.subMenu||this.props.actionObj.subPanel)&&this.props.overflow&&this.closeSubArea()}},{key:"getDefaultIcon",value:function(e){var t=!e.enable;switch(e.action){case d.TOOLBAR_STOP:return f.default.createElement(c.StopFilledAlt16,{disabled:t});case d.TOOLBAR_RUN:return f.default.createElement(c.Play16,{disabled:t});case d.TOOLBAR_EXPAND_SUPERNODE_IN_PLACE:return f.default.createElement(c.Maximize16,{disabled:t});case d.TOOLBAR_COLLAPSE_SUPERNODE_IN_PLACE:return f.default.createElement(c.Minimize16,{disabled:t});case d.TOOLBAR_EXPAND_SUPERNODE_FULL_PAGE:return f.default.createElement(c.Launch16,{disabled:t});case d.TOOLBAR_UNDO:return f.default.createElement(c.Undo16,{disabled:t});case d.TOOLBAR_REDO:return f.default.createElement(c.Redo16,{disabled:t});case d.TOOLBAR_CLIPBOARD:return f.default.createElement(c.Result16,{disabled:t});case d.TOOLBAR_CUT:return f.default.createElement(c.Cut16,{disabled:t});case d.TOOLBAR_COPY:return f.default.createElement(c.Copy16,{disabled:t});case d.TOOLBAR_PASTE:return f.default.createElement(c.Paste16,{disabled:t});case d.TOOLBAR_CREATE_COMMENT:case d.TOOLBAR_CREATE_AUTO_COMMENT:return f.default.createElement(c.AddComment16,{disabled:t});case d.TOOLBAR_SHOW_COMMENTS:return f.default.createElement(c.Chat16,{disabled:t});case d.TOOLBAR_HIDE_COMMENTS:return f.default.createElement(c.ChatOff16,{disabled:t});case d.TOOLBAR_COLOR_BACKGROUND:return f.default.createElement(c.ColorPalette16,{disabled:t});case d.TOOLBAR_DELETE_LINK:case d.TOOLBAR_DELETE_SELECTED_OBJECTS:return f.default.createElement(c.TrashCan16,{disabled:t});case d.TOOLBAR_SET_COMMENT_EDIT_MODE:case d.TOOLBAR_SET_NODE_LABEL_EDIT:return f.default.createElement(c.Edit16,{disabled:t});case d.TOOLBAR_ZOOM_IN:return f.default.createElement(c.ZoomIn16,{disabled:t});case d.TOOLBAR_ZOOM_OUT:return f.default.createElement(c.ZoomOut16,{disabled:t});case d.TOOLBAR_ZOOM_FIT:return f.default.createElement(v.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:t});case d.TOOLBAR_ARRANGE_HORIZONALLY:return f.default.createElement(v.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:t});case d.TOOLBAR_ARRANGE_VERTICALLY:return f.default.createElement(v.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:t});case d.TOOLBAR_OPEN_PALETTE:return f.default.createElement(v.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:t});case d.TOOLBAR_CLOSE_PALETTE:return f.default.createElement(v.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:t});case d.TOOLBAR_TOGGLE_NOTIFICATION_PANEL:return f.default.createElement(v.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:t});default:return null}}},{key:"generateLabel",value:function(e,t,n,a){var r="toolbar-icon-label";return r+=this.generateLabelType(n,a),r+=t?" disabled":"",f.default.createElement("div",{className:r},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 n=e.iconEnabled,a=e.iconDisabled||e.iconEnabled,r=e.enable?n:a,o="toolbar-icon-"+this.props.instanceId+" -"+e.action;t="string"==typeof r?f.default.createElement(v.default,{id:o,src:r,disabled:!e.enable}):r}return t?f.default.createElement("div",{className:"toolbar-icon"},t):null}},{key:"clickOutside",value:function(e){if(this.state.subAreaDisplayed){var t=document.getElementsByClassName(this.generateActionName());!!(t&&t.length>0)&&t[0].contains(e.target)||this.closeSubArea()}}},{key:"openSubArea",value:function(){this.setState({subAreaDisplayed:!0})}},{key:"closeSubArea",value:function(){this.setState({subAreaDisplayed:!1})}},{key:"actionClickHandler",value:function(e){this.props.actionObj.subMenu||this.props.actionObj.subPanel?(this.state.showExtendedMenu?document.removeEventListener("click",this.clickOutside,!1):document.addEventListener("click",this.clickOutside,!1),this.props.setResizeHandler&&(this.state.subAreaDisplayed?this.props.setResizeHandler(null):this.props.setResizeHandler(this.closeSubArea)),this.props.overflow||this.setState({subAreaDisplayed:!this.state.subAreaDisplayed})):this.props.toolbarActionHandler(this.props.actionObj.action,e)}},{key:"generateButton",value:function(e){var t=null,n=null;this.props.overflow?n=this.generateLabel(e.label,!e.enable,!0):"before"===e.incLabelWithIcon?t=this.generateLabel(e.label,!e.enable,!1,e.incLabelWithIcon):"after"===e.incLabelWithIcon&&(n=this.generateLabel(e.label,!e.enable,!1,e.incLabelWithIcon));var a=this.generateIcon(e),r=e.textContent?f.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}),i=e.kind||"ghost",l=this.generateChevronIcon(e),c=f.default.createElement("div",{className:o},t,a,n,r,l);c=this.wrapInTooltip(c);var d=e.incLabelWithIcon?null:e.label;return c=f.default.createElement(s.Button,{kind:i,onClick:this.actionClickHandler,disabled:!e.enable,onFocus:this.props.onFocus,"aria-label":d,size:this.props.size},c)}},{key:"generateChevronIcon",value:function(e){if(e.subMenu||e.subPanel){if(this.props.overflow)return f.default.createElement(c.ChevronRight16,null);if("before"===e.incLabelWithIcon||"after"===e.incLabelWithIcon){var t=this.state.subAreaDisplayed?f.default.createElement(c.ChevronUp16,null):f.default.createElement(c.ChevronDown16,null);return f.default.createElement("div",{className:"toolbar-up-down-chevron"},t)}return this.generateChevronMini()}return null}},{key:"generateChevronMini",value:function(){var e="sm"===this.props.size?"M 29 29 L 29 23 23 29 Z":"M 37 37 L 37 30 30 37 Z";return f.default.createElement("svg",{className:"toolbar-tick-svg"},f.default.createElement("path",{d:e,className:"toolbar-tick-mark"}))}},{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(),n=this.props.actionObj.tooltip?this.props.actionObj.tooltip:this.props.actionObj.label,a=t+"-"+this.props.instanceId+"-tooltip",r=this.props.actionObj.enable||this.props.actionObj.jsx,o=this.props.tooltipDirection?this.props.tooltipDirection:"bottom";return f.default.createElement(i,{id:a,tip:n,disable:!r,className:"icon-tooltip",direction:o},e)}return e}},{key:"showLabelAsTip",value:function(e){return!!e.label&&("before"!==e.incLabelWithIcon&&"after"!==e.incLabelWithIcon)}},{key:"generateSubArea",value:function(){var e=document.getElementsByClassName(this.generateActionName()),t=e&&e.length>0?e[0].getBoundingClientRect():{top:0,left:0,width:120};return f.default.createElement(N,{actionObj:this.props.actionObj,generateToolbarItems:this.props.generateToolbarItems,closeSubArea:this.props.actionObj.closeSubAreaOnClick?this.closeSubArea:null,actionItemRect:t,containingDivId:this.props.containingDivId,expandDirection:this.props.overflow?"horizontal":"vertical"})}},{key:"render",value:function(){var e=this.props.actionObj,t=this.generateActionName(),n=null;n=e.jsx?this.wrapInTooltip(e.jsx):this.generateButton(e);var a=!this.props.overflow||null,r=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},r,t),i=this.state.subAreaDisplayed?this.generateSubArea():null;return f.default.createElement("div",{className:o,"data-toolbar-item":a,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave},n,i)}}]),t}(f.default.Component);function j(e,t,n){return t=a._getPrototypeOf(t),a._possibleConstructorReturn(e,P()?Reflect.construct(t,n||[],a._getPrototypeOf(e).constructor):t.apply(e,n))}function P(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(P=function(){return!!e})()}var Z=function(e){function t(){return n._classCallCheck(this,t),j(this,t,arguments)}return a._inherits(t,e),n._createClass(t,[{key:"componentDidMount",value:function(){this.props.containingDivId&&this.setSubAreaStyle()}},{key:"setSubAreaStyle",value:function(){var e=document.getElementById(this.props.containingDivId),t=e.getBoundingClientRect(),n=x("toolbar-popover-list",e),a=L("toolbar-popover-list",e);if(a){var r=L(this.props.buttonClass,e);if(r){var o=L("context-toolbar",e);if(o){var i=a.right-t.right;if(i>0){var s=r.left-o.left;n.style.left=s-i-2+"px"}a.bottom-t.bottom>0&&(n.style.top=-a.height+"px")}}}}},{key:"render",value:function(){var e=null;return this.props.menuItems.length>0&&(e=f.default.createElement("div",{className:"toolbar-popover-list"},this.props.menuItems)),e}}]),t}(f.default.Component);function V(e,t,n){return t=a._getPrototypeOf(t),a._possibleConstructorReturn(e,q()?Reflect.construct(t,n||[],a._getPrototypeOf(e).constructor):t.apply(e,n))}function q(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(q=function(){return!!e})()}var U=function(e){function t(e){var r;return n._classCallCheck(this,t),(r=V(this,t,[e])).state={showExtendedMenu:!1},r.uuid=h.v4(),r.toggleExtendedMenu=r.toggleExtendedMenu.bind(a._assertThisInitialized(r)),r.clickOutside=r.clickOutside.bind(a._assertThisInitialized(r)),r}return a._inherits(t,e),n._createClass(t,[{key:"componentWillUnmount",value:function(){document.removeEventListener("click",this.clickOutside,!1)}},{key:"genOverflowButtonClass",value:function(){return"toolbar-spacer toolbar-index-"+this.props.index+" toolbar-uuid-"+this.uuid}},{key:"toggleExtendedMenu",value:function(){var e=this;this.state.showExtendedMenu?document.removeEventListener("click",this.clickOutside,!1):document.addEventListener("click",this.clickOutside,!1),this.props.setResizeHandler&&(this.state.showExtendedMenu?this.props.setResizeHandler(null):this.props.setResizeHandler((function(){e.setState({showExtendedMenu:!1})}))),this.setState({showExtendedMenu:!this.state.showExtendedMenu})}},{key:"clickOutside",value:function(e){if(this.state.showExtendedMenu){var t=document.getElementsByClassName("toolbar-uuid-"+this.uuid);!!(t&&t.length>0)&&t[0].contains(e.target)||this.setState({showExtendedMenu:!1})}}},{key:"render",value:function(){this.props.setResizeHandler&&!this.state.showExtendedMenu&&this.props.setResizeHandler(null);var e=null;if(this.state.showExtendedMenu){var t=this.props.generateExtensionMenuItems(this.props.index);e=f.default.createElement(Z,{menuItems:t,containingDivId:this.props.containingDivId,buttonClass:"toolbar-uuid-"+this.uuid})}return f.default.createElement("div",{className:this.genOverflowButtonClass()},f.default.createElement("div",{className:"toolbar-overflow-item"},f.default.createElement(s.Button,{kind:"ghost",tabIndex:-1,onClick:this.toggleExtendedMenu,onFocus:this.props.onFocus,"aria-label":this.props.label,size:this.props.size},f.default.createElement("div",{className:"toolbar-item-content default"},f.default.createElement("div",{className:"toolbar-icon"},f.default.createElement(c.OverflowMenuVertical16,null))))),e)}}]),t}(f.default.Component);function W(e,t,n){return t=a._getPrototypeOf(t),a._possibleConstructorReturn(e,G()?Reflect.construct(t,n||[],a._getPrototypeOf(e).constructor):t.apply(e,n))}function G(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(G=function(){return!!e})()}var Y=function(e){function t(){return n._classCallCheck(this,t),W(this,t,arguments)}return a._inherits(t,e),n._createClass(t,[{key:"render",value:function(){var e=this.props.overflow?"toolbar-divider-overflow":"toolbar-divider";return f.default.createElement("div",{className:e,"data-toolbar-item":!0,tabIndex:-1,"aria-hidden":!0}," ")}}]),t}(f.default.Component);function $(e,t,n){return t=a._getPrototypeOf(t),a._possibleConstructorReturn(e,K()?Reflect.construct(t,n||[],a._getPrototypeOf(e).constructor):t.apply(e,n))}function K(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(K=function(){return!!e})()}var X=function(e){function r(e){var t;return n._classCallCheck(this,r),(t=$(this,r,[e])).leftBar=[],t.rightBar=[],t.resizeHandler=null,t.onFocus=t.onFocus.bind(a._assertThisInitialized(t)),t.onToolbarResize=t.onToolbarResize.bind(a._assertThisInitialized(t)),t.generateExtensionMenuItems=t.generateExtensionMenuItems.bind(a._assertThisInitialized(t)),t.generateToolbarItems=t.generateToolbarItems.bind(a._assertThisInitialized(t)),t.setResizeHandler=t.setResizeHandler.bind(a._assertThisInitialized(t)),t}return a._inherits(r,e),n._createClass(r,[{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.resizeHandler&&this.resizeHandler(),this.setLeftBarItemsTabIndex(),this.setRightBarItemsTabIndex()}},{key:"setResizeHandler",value:function(e){this.resizeHandler=e}},{key:"setLeftBarItemsTabIndex",value:function(){var e=this.getBar("left");if(e){for(var t=e.querySelectorAll("[data-toolbar-item=true]")||[],n=this.getTopOfFirstOverflowItem(e),a=-1,r=0;r<t.length;r++){var o=t[r].getBoundingClientRect();this.setOverflowItemButtonTabIndex(r,-1,e),o.top===n?(a=r,this.setToolbarItemButtonTabIndex(t[r],0)):this.setToolbarItemButtonTabIndex(t[r],-1)}a<t.length&&this.setOverflowItemButtonTabIndex(a+1,0,e)}}},{key:"setRightBarItemsTabIndex",value:function(){for(var e=this.getRightBarItems(),t=0,n=0;n<e.length;n++){var a=e[n].getBoundingClientRect();0===n&&(t=a.top),a.top===t?this.setToolbarItemButtonTabIndex(e[n],0):this.setToolbarItemButtonTabIndex(e[n],-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 n="toolbar-index-"+e;return t.getElementsByClassName(n)[0]}},{key:"setToolbarItemButtonTabIndex",value:function(e,t){var n=e.querySelector("button");n&&n.setAttribute("tabindex",t)}},{key:"setOverflowItemButtonTabIndex",value:function(e,t,n){var a=this.getOverflowItem(e,n);if(a){var r=a.querySelector("button");r&&r.setAttribute("tabindex",t)}}},{key:"generateToolbarItems",value:function(e,t,n){for(var a=[],r=0;r<e.length;r++){var o=e[r];o&&(n&&!o.divider&&a.push(this.generateOverflowIcon(r)),a.push(this.generateToolbarItem(o,r,t)))}return a}},{key:"generateToolbarItem",value:function(e,t,n){var a=null;return e&&(a=e.divider?f.default.createElement(Y,{key:"toolbar-item-key-"+t,overflow:n}):f.default.createElement(H,{key:"toolbar-item-key-"+t,actionObj:e,tooltipDirection:this.props.tooltipDirection,toolbarActionHandler:this.props.toolbarActionHandler,generateToolbarItems:this.generateToolbarItems,setResizeHandler:this.setResizeHandler,overflow:n,instanceId:this.props.instanceId,containingDivId:this.props.containingDivId,onFocus:this.onFocus,size:this.props.size})),a}},{key:"generateOverflowIcon",value:function(e){var t=this.props.additionalText?this.props.additionalText.overflowMenuLabel:"";return f.default.createElement(U,{key:"toolbar-overflow-item-key-"+e,index:e,generateExtensionMenuItems:this.generateExtensionMenuItems,setResizeHandler:this.setResizeHandler,containingDivId:this.props.containingDivId,onFocus:this.onFocus,label:t,size:this.props.size})}},{key:"generateExtensionMenuItems",value:function(e){var t=this.generateRightOverflowItems();t.reverse();var n=this.leftBar.slice(e).concat(t);return this.generateToolbarItems(n,!0,!1)}},{key:"generateRightOverflowItems",value:function(){for(var e=[],t=this.getRightBarItems(),n=0,a=0;a<t.length;a++){var r=t[a].getBoundingClientRect();0===a&&(n=r.top),r.top!==n&&e.push(this.rightBar[a])}return e}},{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),n=this.generateToolbarItems(this.rightBar,!1,!1),a="sm"===this.props.size?"toolbar-div toolbar-size-small":"toolbar-div";return f.default.createElement(C.default,{handleWidth:!0,onResize:this.onToolbarResize},f.default.createElement("div",{className:a,instanceid:this.props.instanceId},f.default.createElement("div",{className:"toolbar-left-bar",onScroll:this.onScroll},e),f.default.createElement("div",{className:"toolbar-right-bar"},n)))}}]),r}(f.default.Component);exports.Toolbar=X,exports.toInteger_1=w,exports.toNumber_1=R;
2
- //# sourceMappingURL=toolbar-fd4e4a3a.js.map