@elyra/canvas 12.32.2 → 12.34.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.
- package/dist/{_baseIteratee-eabd2a94.js → _baseIteratee-2a601011.js} +2 -2
- package/dist/{_baseIteratee-eabd2a94.js.map → _baseIteratee-2a601011.js.map} +1 -1
- package/dist/{_baseIteratee-e1311552.js → _baseIteratee-7fb1949c.js} +2 -2
- package/dist/{_baseIteratee-e1311552.js.map → _baseIteratee-7fb1949c.js.map} +1 -1
- package/dist/{canvas-constants-72222288.js → canvas-constants-29b7f65c.js} +2 -2
- package/dist/{canvas-constants-72222288.js.map → canvas-constants-29b7f65c.js.map} +1 -1
- package/dist/{canvas-constants-903046ab.js → canvas-constants-85883d4c.js} +2 -2
- package/dist/{canvas-constants-903046ab.js.map → canvas-constants-85883d4c.js.map} +1 -1
- package/dist/{canvas-controller-c0b65951.js → canvas-controller-273d4b5b.js} +2 -2
- package/dist/{canvas-controller-c0b65951.js.map → canvas-controller-273d4b5b.js.map} +1 -1
- package/dist/{canvas-controller-2df80dc3.js → canvas-controller-96abce12.js} +2 -2
- package/dist/{canvas-controller-2df80dc3.js.map → canvas-controller-96abce12.js.map} +1 -1
- package/dist/{canvas-logger-6f90b136.js → canvas-logger-34ca361a.js} +2 -2
- package/dist/{canvas-logger-6f90b136.js.map → canvas-logger-34ca361a.js.map} +1 -1
- package/dist/{canvas-logger-3bfbcf85.js → canvas-logger-fec87cd1.js} +2 -2
- package/dist/{canvas-logger-3bfbcf85.js.map → canvas-logger-fec87cd1.js.map} +1 -1
- package/dist/common-canvas-5ccce28e.js +2 -0
- package/dist/common-canvas-5ccce28e.js.map +1 -0
- package/dist/common-canvas-f471a9f3.js +2 -0
- package/dist/common-canvas-f471a9f3.js.map +1 -0
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-properties-51bd2ecc.js +2 -0
- package/dist/common-properties-51bd2ecc.js.map +1 -0
- package/dist/common-properties-e82771ef.js +2 -0
- package/dist/common-properties-e82771ef.js.map +1 -0
- package/dist/{context-menu-wrapper-5846a20e.js → context-menu-wrapper-19a1cf72.js} +2 -2
- package/dist/{context-menu-wrapper-5846a20e.js.map → context-menu-wrapper-19a1cf72.js.map} +1 -1
- package/dist/{context-menu-wrapper-ac5e8c7a.js → context-menu-wrapper-c3a98c63.js} +2 -2
- package/dist/{context-menu-wrapper-ac5e8c7a.js.map → context-menu-wrapper-c3a98c63.js.map} +1 -1
- package/dist/{createClass-826941b3.js → createClass-09bc08f7.js} +1 -1
- package/dist/createClass-09bc08f7.js.map +1 -0
- package/dist/{createClass-be661622.js → createClass-ffbbe837.js} +1 -1
- package/dist/createClass-ffbbe837.js.map +1 -0
- package/dist/{datarecord-metadata-v3-schema-64329ae4.js → datarecord-metadata-v3-schema-531c7b07.js} +2 -2
- package/dist/{datarecord-metadata-v3-schema-64329ae4.js.map → datarecord-metadata-v3-schema-531c7b07.js.map} +1 -1
- package/dist/{datarecord-metadata-v3-schema-dd7370da.js → datarecord-metadata-v3-schema-db5150c5.js} +2 -2
- package/dist/{datarecord-metadata-v3-schema-dd7370da.js.map → datarecord-metadata-v3-schema-db5150c5.js.map} +1 -1
- package/dist/{flexible-table-23d61157.js → flexible-table-8c6db0fc.js} +2 -2
- package/dist/flexible-table-8c6db0fc.js.map +1 -0
- package/dist/{flexible-table-4259d869.js → flexible-table-b9c08069.js} +2 -2
- package/dist/flexible-table-b9c08069.js.map +1 -0
- package/dist/{getPrototypeOf-3751add9.js → getPrototypeOf-012c454b.js} +2 -2
- package/dist/{getPrototypeOf-3751add9.js.map → getPrototypeOf-012c454b.js.map} +1 -1
- package/dist/{getPrototypeOf-1e698126.js → getPrototypeOf-5f227292.js} +2 -2
- package/dist/{getPrototypeOf-1e698126.js.map → getPrototypeOf-5f227292.js.map} +1 -1
- package/dist/{icon-04f858ce.js → icon-a9c3f51e.js} +2 -2
- package/dist/{icon-04f858ce.js.map → icon-a9c3f51e.js.map} +1 -1
- package/dist/{icon-8cc7816d.js → icon-de9c6b33.js} +2 -2
- package/dist/{icon-8cc7816d.js.map → icon-de9c6b33.js.map} +1 -1
- package/dist/{index-101f9560.js → index-9960d3bf.js} +2 -2
- package/dist/{index-101f9560.js.map → index-9960d3bf.js.map} +1 -1
- package/dist/{index-2788d55d.js → index-d4a58ddb.js} +2 -2
- package/dist/{index-2788d55d.js.map → index-d4a58ddb.js.map} +1 -1
- package/dist/lib/canvas-controller.es.js +1 -1
- package/dist/lib/canvas-controller.js +1 -1
- package/dist/lib/canvas.es.js +1 -1
- package/dist/lib/canvas.js +1 -1
- package/dist/lib/command-stack.es.js +1 -1
- package/dist/lib/command-stack.js +1 -1
- package/dist/lib/context-menu.es.js +1 -1
- package/dist/lib/context-menu.js +1 -1
- package/dist/lib/properties/field-picker.es.js +1 -1
- package/dist/lib/properties/field-picker.js +1 -1
- package/dist/lib/properties/flexible-table.es.js +1 -1
- package/dist/lib/properties/flexible-table.js +1 -1
- package/dist/lib/properties.es.js +1 -1
- package/dist/lib/properties.js +1 -1
- package/dist/lib/tooltip.es.js +1 -1
- package/dist/lib/tooltip.js +1 -1
- package/dist/styles/common-canvas.min.css +1 -1
- package/dist/styles/common-canvas.min.css.map +1 -1
- package/dist/toolbar-233c09a8.js +2 -0
- package/dist/toolbar-233c09a8.js.map +1 -0
- package/dist/toolbar-cdb38f4a.js +2 -0
- package/dist/toolbar-cdb38f4a.js.map +1 -0
- package/package.json +3 -3
- package/src/common-canvas/cc-central-items.jsx +81 -17
- package/src/common-canvas/cc-contents.jsx +3 -19
- package/src/common-canvas/cc-right-flyout.jsx +1 -1
- package/src/common-canvas/common-canvas.jsx +1 -50
- package/src/common-canvas/common-canvas.scss +23 -45
- package/src/common-canvas/svg-canvas-d3.js +2 -1
- package/src/common-canvas/svg-canvas-renderer.js +255 -90
- package/src/common-canvas/svg-canvas-utils-nodes.js +0 -4
- package/src/common-properties/components/flexible-table/flexible-table.jsx +5 -5
- package/src/common-properties/constants/constants.js +1 -1
- package/src/common-properties/controls/dropdown/dropdown.jsx +8 -1
- package/src/common-properties/controls/numberfield/numberfield.jsx +21 -2
- package/src/notification-panel/notification-panel.scss +1 -0
- package/src/toolbar/toolbar-action-item.jsx +1 -1
- package/stats.html +1 -1
- package/dist/common-canvas-55d8916f.js +0 -2
- package/dist/common-canvas-55d8916f.js.map +0 -1
- package/dist/common-canvas-8eb241dc.js +0 -2
- package/dist/common-canvas-8eb241dc.js.map +0 -1
- package/dist/common-properties-96c9c88a.js +0 -2
- package/dist/common-properties-96c9c88a.js.map +0 -1
- package/dist/common-properties-c5292c66.js +0 -2
- package/dist/common-properties-c5292c66.js.map +0 -1
- package/dist/createClass-826941b3.js.map +0 -1
- package/dist/createClass-be661622.js.map +0 -1
- package/dist/flexible-table-23d61157.js.map +0 -1
- package/dist/flexible-table-4259d869.js.map +0 -1
- package/dist/toolbar-12f6def6.js +0 -2
- package/dist/toolbar-12f6def6.js.map +0 -1
- package/dist/toolbar-55e2020e.js +0 -2
- package/dist/toolbar-55e2020e.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createClass-826941b3.js","sources":["../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_toPropertyKey","arg","key","input","hint","prim","toPrimitive","undefined","res","call","TypeError","String","Number","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","toPropertyKey","instance","Constructor","protoProps","staticProps"],"mappings":"aAAe,SAASA,EAAQC,GAG9B,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,GACvHD,EAAQC,EACb,CCNe,SAASK,EAAeC,GACrC,IAAIC,ECFS,SAAsBC,EAAOC,GAC1C,GAAuB,WAAnBV,EAAQS,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAIE,EAAOF,EAAMP,OAAOU,aACxB,QAAaC,IAATF,EAAoB,CACtB,IAAIG,EAAMH,EAAKI,KAAKN,EAAOC,GAAQ,WACnC,GAAqB,WAAjBV,EAAQc,GAAmB,OAAOA,EACtC,MAAM,IAAIE,UAAU,gDAEtB,OAAiB,WAATN,EAAoBO,OAASC,QAAQT,EAC/C,CDPYG,CAAYL,EAAK,UAC3B,MAAwB,WAAjBP,EAAQQ,GAAoBA,EAAMS,OAAOT,EAClD,CEJA,SAASW,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQU,EAAcN,EAAWhB,KAAMgB,GAEjE,yBCTe,SAAyBO,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIhB,UAAU,oCAExB,uBDMe,SAAsBgB,EAAaC,EAAYC,GAM5D,OALID,GAAYd,EAAkBa,EAAY3B,UAAW4B,GACrDC,GAAaf,EAAkBa,EAAaE,GAChDN,OAAOC,eAAeG,EAAa,YAAa,CAC9CL,UAAU,IAELK,CACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createClass-be661622.js","sources":["../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}"],"names":["_classCallCheck","instance","Constructor","TypeError","_typeof","obj","Symbol","iterator","constructor","prototype","_toPropertyKey","arg","key","input","hint","prim","toPrimitive","undefined","res","call","String","Number","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","toPropertyKey","_createClass","protoProps","staticProps"],"mappings":"AAAe,SAASA,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,oCAExB,CCJe,SAASC,EAAQC,GAG9B,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,GACvHD,EAAQC,EACb,CCNe,SAASK,EAAeC,GACrC,IAAIC,ECFS,SAAsBC,EAAOC,GAC1C,GAAuB,WAAnBV,EAAQS,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAIE,EAAOF,EAAMP,OAAOU,aACxB,QAAaC,IAATF,EAAoB,CACtB,IAAIG,EAAMH,EAAKI,KAAKN,EAAOC,GAAQ,WACnC,GAAqB,WAAjBV,EAAQc,GAAmB,OAAOA,EACtC,MAAM,IAAIf,UAAU,gDAEtB,OAAiB,WAATW,EAAoBM,OAASC,QAAQR,EAC/C,CDPYG,CAAYL,EAAK,UAC3B,MAAwB,WAAjBP,EAAQQ,GAAoBA,EAAMQ,OAAOR,EAClD,CEJA,SAASU,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQU,EAAcN,EAAWf,KAAMe,GAEjE,CACe,SAASO,EAAahC,EAAaiC,EAAYC,GAM5D,OALID,GAAYb,EAAkBpB,EAAYO,UAAW0B,GACrDC,GAAad,EAAkBpB,EAAakC,GAChDL,OAAOC,eAAe9B,EAAa,YAAa,CAC9C4B,UAAU,IAEL5B,CACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flexible-table-23d61157.js","sources":["../src/common-properties/components/truncated-content-tooltip/truncated-content-tooltip.jsx","../src/common-properties/components/truncated-content-tooltip/index.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/differenceBy.js","../src/common-properties/components/virtualized-table/virtualized-table.jsx","../src/common-properties/components/flexible-table/flexible-table.jsx"],"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 from \"react\";\nimport PropTypes from \"prop-types\";\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport { has } from \"lodash\";\nimport { Checkbox } from \"carbon-components-react\";\n\n// Reusable component to show tooltip if the content is truncated\nexport default class TruncatedContentTooltip extends React.Component {\n\n\trender() {\n\t\tlet tooltipText = this.props.tooltipText;\n\t\tlet truncatedRef = this.props.truncatedRef;\n\t\tif (typeof this.props.tooltipText !== \"object\") {\n\t\t\ttooltipText = String(this.props.tooltipText);\n\t\t}\n\t\tif (this.props.content && this.props.content.type === Checkbox && this.tooltipRef && this.tooltipRef.firstChild) {\n\t\t\ttruncatedRef = this.tooltipRef.firstChild.lastChild; // checkbox label is in div -> label -> span\n\t\t}\n\t\tconst tooltip = (\n\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t{tooltipText}\n\t\t\t</div>\n\t\t);\n\t\treturn (\n\t\t\t<div className=\"properties-truncated-tooltip\">\n\t\t\t\t<Tooltip\n\t\t\t\t\tid=\"properties\"\n\t\t\t\t\ttip={tooltip}\n\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t\tdisable={has(this.props, \"disabled\") ? this.props.disabled : true}\n\t\t\t\t\tshowToolTipIfTruncated\n\t\t\t\t\ttruncatedRef={truncatedRef}\n\t\t\t\t>\n\t\t\t\t\t<div ref={(ref) => (this.tooltipRef = ref)}>\n\t\t\t\t\t\t{this.props.content}\n\t\t\t\t\t</div>\n\t\t\t\t</Tooltip>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nTruncatedContentTooltip.propTypes = {\n\tcontent: PropTypes.element,\n\ttruncatedRef: PropTypes.object,\n\ttooltipText: PropTypes.oneOfType([\n\t\tPropTypes.string.isRequired,\n\t\tPropTypes.object.isRequired,\n\t\tPropTypes.number.isRequired,\n\t\tPropTypes.bool.isRequired,\n\t\tPropTypes.array.isRequired\n\t]),\n\tdisabled: PropTypes.bool\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 TruncatedContentTooltip from \"./truncated-content-tooltip.jsx\";\nexport default TruncatedContentTooltip;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseIteratee = require('./_baseIteratee'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nmodule.exports = differenceBy;\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 { Column, Table, AutoSizer } from \"react-virtualized\";\nimport Draggable from \"react-draggable\";\nimport { Checkbox, Loading } from \"carbon-components-react\";\nimport { ArrowUp16, ArrowDown16, ArrowsVertical16, Information16 } from \"@carbon/icons-react\";\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport TruncatedContentTooltip from \"./../truncated-content-tooltip\";\nimport { SORT_DIRECTION, STATES, ROW_SELECTION, MINIMUM_COLUMN_WIDTH, MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL } from \"./../../constants/constants\";\nimport { injectIntl } from \"react-intl\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nimport { isEmpty, differenceBy, mapValues } from \"lodash\";\nimport classNames from \"classnames\";\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { v4 as uuid4 } from \"uuid\";\n\nclass VirtualizedTable extends React.Component {\n\n\tstatic getDerivedStateFromProps(nextProps, prevState) {\n\t\tconst updatedState = {};\n\t\tif (nextProps.rowCount !== prevState.rowCount) {\n\t\t\tupdatedState.rowCount = nextProps.rowCount;\n\t\t}\n\n\t\tconst prevStateTableWidth = prevState.columns.reduce((totalWidth, column) => column.width + totalWidth, 0);\n\t\tconst nextPropsTableWidth = nextProps.columns.reduce((totalWidth, column) => column.width + totalWidth, 0);\n\t\tconst editorSizeUpdated = (prevStateTableWidth !== nextPropsTableWidth);\n\n\t\t// Get new columns if column label (headerLabel) is different. This is useful when changing \"View in tables\" dropdown in Expression control.\n\t\t// Also when right flyout is expanded/collapsed, width of all columns changes, in this case get new columns with updated widths.\n\t\t// We're not comparing all properties in columns object because width can be different after resizing.\n\t\tif (!prevState.columnResized || !isEmpty(differenceBy(nextProps.columns, prevState.columns, \"headerLabel\")) || editorSizeUpdated) {\n\t\t\tupdatedState.columns = nextProps.columns;\n\t\t}\n\t\treturn (updatedState);\n\t}\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\trowCount: this.props.rowCount,\n\t\t\tcolumns: this.props.columns,\n\t\t\tcolumnResized: false\n\t\t};\n\t\tthis.virtualizedTableRef = React.createRef();\n\t\tthis.lastChecked = isEmpty(props.rowsSelected) ? null : props.rowsSelected.slice(-1).pop();\n\n\t\tthis.isOverSelectOption = false;\n\t\tthis.mouseEventCalled = false;\n\t\tthis.keyBoardEventCalled = false;\n\t\tthis.cellRenderer = this.cellRenderer.bind(this);\n\t\tthis.selectAll = this.selectAll.bind(this);\n\t\tthis.headerRowRenderer = this.headerRowRenderer.bind(this);\n\t\tthis.headerColRenderer = this.headerColRenderer.bind(this);\n\t\tthis.onRowClick = this.onRowClick.bind(this);\n\t\tthis.overSelectOption = this.overSelectOption.bind(this);\n\t\tthis.resizeColumn = this.resizeColumn.bind(this);\n\t\tthis.uuid = uuid4();\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// If the rowHeight prop is a function, the virtualized table doesn't always adjust its\n\t\t// row heights correctly when the table data has changed. So in this case we need\n\t\t// to recompute the row heights.\n\t\tif (typeof this.props.rowHeight === \"function\") {\n\t\t\tthis.recomputeRowHeights();\n\t\t}\n\t}\n\n\t// This is also triggered when clicking on a checkbox\n\tonRowClick(evt, rowData, index) {\n\t\tif (evt.target.className === \"bx--select-option\") {\n\t\t\tevt.stopPropagation(); // stop propagation when selecting dropdown select options within table rows\n\t\t} else {\n\t\t\t// Set selections\n\t\t\tconst selected = !this.isRowSelected(rowData.originalRowIndex);\n\t\t\tif (typeof this.props.setRowsSelected === \"function\") {\n\t\t\t\tthis.props.setRowsSelected({\n\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\"originalRowIndex\": rowData.originalRowIndex,\n\t\t\t\t\t\"selected\": selected,\n\t\t\t\t\t\"isOverSelectOption\": this.isOverSelectOption,\n\t\t\t\t\t\"selectMultipleRows\": evt.shiftKey ? evt.shiftKey : false,\n\t\t\t\t\t\"lastCheckedRow\": this.lastChecked === null ? 0 : this.lastChecked }, evt);\n\n\t\t\t\t// Track lastChecked row for shift key selection\n\t\t\t\tthis.lastChecked = rowData.index;\n\t\t\t}\n\t\t}\n\t}\n\n\tonRowDoubleClick(evt, rowKey, index) {\n\t\tif (this.props.onRowDoubleClick) {\n\t\t\tthis.props.onRowDoubleClick(evt, rowKey, index);\n\t\t}\n\t}\n\n\tgetCheckboxLabelColumnIndex(columns) {\n\t\t// If 1st column is Index, use the next column for labeling\n\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\tif (columns[i].operation !== \"index\") {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\t// Use first column by default\n\t\treturn 0;\n\t}\n\n\tgetColumnIndex(columns, key) {\n\t\tconst index = columns.findIndex((column) => column.key === key);\n\t\treturn index;\n\t}\n\n\t// Returns an object of deltas for every column - {columnKey: individualDelta}\n\tgetColumnWiseDeltas(columns, deltaX) {\n\t\tconst columnWiseDeltas = {};\n\t\tif (columns.length > 0) {\n\t\t\t// sort columns in ascending order of widths because smallest column will reach MINIMUM_COLUMN_WIDTH first\n\t\t\tcolumns.sort((a, b) => a.width - b.width);\n\t\t\tlet totalDelta = deltaX;\n\t\t\t// Finalize individualDelta for 1 column at a time starting from smallest column\n\t\t\t// If individualDelta is greater than maximum allowed delta for the column, set individualDelta = maximum allowed delta until column reaches MINIMUM_COLUMN_WIDTH\n\t\t\t// Total delta will reduce after every iteration\n\t\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\t\tconst widthOfAllColumns = columns.slice(i).reduce((prev, current) => prev + current.width, 0);\n\t\t\t\tlet individualDelta = Math.round((columns[i].width * totalDelta) / widthOfAllColumns);\n\t\t\t\t// check if individualDelta is greater than the maximum allowed delta for this column\n\t\t\t\tif (columns[i].headerLabel.length > 0 && columns[i].width - individualDelta < MINIMUM_COLUMN_WIDTH) {\n\t\t\t\t\tindividualDelta = columns[i].width - MINIMUM_COLUMN_WIDTH;\n\t\t\t\t} else if (columns[i].width - individualDelta < MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL) {\n\t\t\t\t\tindividualDelta = columns[i].width - MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL;\n\t\t\t\t}\n\t\t\t\ttotalDelta -= individualDelta;\n\t\t\t\tcolumnWiseDeltas[columns[i].key] = individualDelta;\n\t\t\t}\n\t\t\tif (totalDelta > 0) {\n\t\t\t\t// deltaX is greater than maximum allowed delta for all columns.\n\t\t\t\t// Don't allow resizing by setting individualDelta = 0 for ALL columns\n\t\t\t\treturn mapValues(columnWiseDeltas, () => 0);\n\t\t\t}\n\t\t}\n\t\treturn columnWiseDeltas;\n\t}\n\n\tisRowSelected(index) {\n\t\tif (this.props.rowsSelected) {\n\t\t\treturn this.props.rowsSelected.indexOf(index) > -1;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisLastColumn(dataKey) {\n\t\tconst columnIndex = this.getColumnIndex(this.props.columns, dataKey);\n\t\tconst isLastColumn = (columnIndex === (this.props.columns.length - 1));\n\t\treturn isLastColumn;\n\t}\n\n\tselectAll(selected) {\n\t\tthis.props.setAllRowsSelected(selected);\n\t}\n\n\t// Callback responsible for rendering a cell's contents.\n\tcellRenderer({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn cellData;\n\t}\n\n\tcellRendererHTML({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn (<div dangerouslySetInnerHTML={{ __html: cellData }} />);\n\t}\n\n\trecomputeRowHeights(index) {\n\t\tif (this.virtualizedTableRef && this.virtualizedTableRef.current) {\n\t\t\tthis.virtualizedTableRef.current.recomputeRowHeights(index);\n\t\t}\n\t}\n\n\t// Responsible for rendering the table header row given an array of columns.\n\theaderRowRenderer(scrollKey, { className, columns, style }) {\n\t\tconst checkboxLabelColumnIndex = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? 0 : this.getCheckboxLabelColumnIndex(this.props.columns);\n\t\tconst headerCheckboxLabel = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? \"\" : this.props.columns[checkboxLabelColumnIndex].headerLabel;\n\t\tconst translatedHeaderCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t{ id: \"virtualizedTable.header.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.header.checkbox.label\"] },\n\t\t\t{ header_checkbox_label: headerCheckboxLabel }\n\t\t);\n\t\tconst checkbox = this.props.selectable && this.props.rowSelection !== ROW_SELECTION.SINGLE\n\t\t\t? (<div role=\"checkbox\" aria-checked={this.props.checkedAll} className=\"properties-vt-header-checkbox\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tid={`properties-vt-hd-cb-${this.uuid}-${scrollKey}`}\n\t\t\t\t\tonChange={this.selectAll}\n\t\t\t\t\tchecked={this.props.checkedAll}\n\t\t\t\t\tlabelText={translatedHeaderCheckboxLabel}\n\t\t\t\t\thideLabel\n\t\t\t\t/>\n\t\t\t</div>)\n\t\t\t: \"\";\n\n\t\treturn (<div className={className} data-role=\"properties-header-row\" role=\"row\" style={style}>\n\t\t\t{checkbox}\n\t\t\t{columns}\n\t\t</div>);\n\t}\n\n\theaderColRenderer({ columnData, dataKey, disableSort, label, sortBy, sortDirection }) {\n\t\tlet sortIcon = null;\n\t\tif (typeof this.props.sortColumns[dataKey] !== \"undefined\") {\n\t\t\tlet type = null;\n\t\t\tswitch (this.props.sortColumns[dataKey]) {\n\t\t\tcase SORT_DIRECTION.ASC:\n\t\t\t\ttype = <ArrowUp16 disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t\tbreak;\n\t\t\tcase SORT_DIRECTION.DESC:\n\t\t\t\ttype = <ArrowDown16 disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\ttype = <ArrowsVertical16 disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t}\n\t\t\tsortIcon = (<span className=\"properties-ft-column-sort-icon\">\n\t\t\t\t{type}\n\t\t\t</span>);\n\t\t}\n\n\t\tconst infoIcon = isEmpty(columnData.description)\n\t\t\t? null\n\t\t\t: (<div className=\"properties-vt-info-icon-tip\">\n\t\t\t\t<Tooltip\n\t\t\t\t\tid=\"properties-tooltip-info\"\n\t\t\t\t\ttip={columnData.description}\n\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t\tshowToolTipOnClick\n\t\t\t\t>\n\t\t\t\t\t<Information16 className=\"properties-vt-info-icon\" />\n\t\t\t\t</Tooltip>\n\t\t\t</div>);\n\n\t\tconst resizeElem = columnData.resizable && !this.isLastColumn(dataKey)\n\t\t\t? (<Draggable\n\t\t\t\taxis=\"x\"\n\t\t\t\tdefaultClassName=\"properties-vt-header-resize\"\n\t\t\t\tdefaultClassNameDragging=\"properties-vt-header-resize-active\"\n\t\t\t\tonDrag={\n\t\t\t\t\t(evt, { deltaX }) => {\n\t\t\t\t\t\tthis.resizeColumn({ dataKey, deltaX });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tposition={{ x: 0 }}\n\t\t\t\tzIndex={999}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\trole=\"button\" tabIndex=\"0\"\n\t\t\t\t\taria-label=\"Resize column\"\n\t\t\t\t/>\n\t\t\t</Draggable>)\n\t\t\t: \"\";\n\t\tconst headerDisplayLabel = typeof label === \"string\" ? (<span>{label}</span>) : label;\n\t\tconst header = (<div className=\"properties-vt-label-tip-icon\">\n\t\t\t<TruncatedContentTooltip\n\t\t\t\ttooltipText={columnData.headerLabel}\n\t\t\t\tcontent={headerDisplayLabel}\n\t\t\t\tdisabled={columnData.disabled}\n\t\t\t/>\n\t\t\t{infoIcon}\n\t\t</div>);\n\t\treturn (\n\t\t\t<div data-id={`properties-vt-header-${dataKey}`}\n\t\t\t\tclassName={classNames({ \"properties-vt-column-with-resize\": resizeElem !== \"\", \"properties-vt-column-without-resize\": resizeElem === \"\" })}\n\t\t\t>\n\t\t\t\t<div className={classNames(\"properties-vt-column properties-tooltips-container\", { \"sort-column-active\": dataKey === this.props.sortBy })}>\n\t\t\t\t\t{header}\n\t\t\t\t\t{disableSort === false && sortIcon}\n\t\t\t\t</div>\n\t\t\t\t{ resizeElem }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/* Columns are not resizable by default. Host application specifies resizable columns in parameter definition.\n\t* When a column is resized, width of ALL the columns to the right of resized column is adjusted.\n\t* Every column grows/shrinks directly proportional to column width.\n\t* Example: If a column width is reduced by 10px and there are 4 columns on the right of resized column having widths [40, 30, 20, 10],\n\t* Then 10px will be adjusted in 4 columns as - [4px, 3px, 2px, 1px]\n\t* When every column's width reaches MINIMUM_COLUMN_WIDTH (56px), resizing is stopped.\n\t* Special case - For columns without labels, when their width reaches MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL (32px), resizing is stopped.\n\t*/\n\tresizeColumn({ dataKey, deltaX }) {\n\t\tthis.setState((prevState) => {\n\n\t\t\tconst columns = prevState.columns;\n\t\t\t// Calculate number of resizable columns on the right of resized column\n\t\t\tconst resizedColumnIndex = this.getColumnIndex(columns, dataKey);\n\t\t\tconst allColumnsOnRight = columns.slice(resizedColumnIndex + 1);\n\t\t\t// Exclude columns having staticWidth: true\n\t\t\tconst nonStaticColumns = allColumnsOnRight.filter((column) => !column.staticWidth);\n\n\t\t\tconst resizableColumns = nonStaticColumns.filter((column) => {\n\t\t\t\t// When shrinking, get columns having width greater than MINIMUM_COLUMN_WIDTH\n\t\t\t\tif (deltaX >= 0) {\n\t\t\t\t\tif (column.headerLabel.length > 0) {\n\t\t\t\t\t\t// Column with label has min width 56px\n\t\t\t\t\t\treturn (column.width > MINIMUM_COLUMN_WIDTH);\n\t\t\t\t\t}\n\t\t\t\t\t// Column without label has min width 32px\n\t\t\t\t\treturn (column.width > MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL);\n\t\t\t\t}\n\t\t\t\t// When expanding, get all columns\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\t// Get column wise delta for resizableColumns\n\t\t\tconst columnWiseDeltas = this.getColumnWiseDeltas(resizableColumns, deltaX);\n\t\t\tconst columnsToBeResized = Object.keys(columnWiseDeltas);\n\n\t\t\t// check if all column wise deltas are 0. This happens when deltaX is more than maximum allowed delta for all columns\n\t\t\tconst everyColumnHasZeroDelta = Object.values(columnWiseDeltas).every((delta) => delta === 0);\n\n\t\t\tif ((columns[resizedColumnIndex].width + deltaX) > MINIMUM_COLUMN_WIDTH && !isEmpty(columnWiseDeltas) && !everyColumnHasZeroDelta) {\n\t\t\t\tcolumns[resizedColumnIndex].width += deltaX;\n\t\t\t\t// Adjust width of all resizable columns\n\t\t\t\tcolumnsToBeResized.forEach((columnKey) => {\n\t\t\t\t\tconst idx = columns.findIndex((col) => col.key === columnKey);\n\t\t\t\t\tcolumns[idx].width -= columnWiseDeltas[columnKey];\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcolumnResized: true,\n\t\t\t\tcolumns: columns\n\t\t\t};\n\t\t});\n\t}\n\n\toverSelectOption(evt) {\n\t\t// Differentiate between mouse and keyboard event\n\t\tif (evt.type === \"mouseenter\" && !this.keyBoardEventCalled) {\n\t\t\tthis.mouseEventCalled = true;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"mouseleave\" && this.mouseEventCalled) {\n\t\t\tthis.mouseEventCalled = false;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"focus\" && !this.mouseEventCalled) {\n\t\t\tthis.keyBoardEventCalled = true;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"blur\" && this.keyBoardEventCalled) {\n\t\t\tthis.keyBoardEventCalled = false;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t}\n\t}\n\n\t// Responsible for rendering a table row given an array of columns.\n\trowRenderer(scrollKey, { className, columns, index, key, rowData, style }) {\n\t\tlet selectOption = \"\";\n\t\tlet selectedRow = false;\n\t\tconst rowDisabled = typeof rowData.disabled === \"boolean\" ? rowData.disabled : false;\n\n\t\tif (typeof this.props.rowHeight === \"function\" && this.props.rowHeight({ index }) === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.props.selectable) {\n\t\t\tconst rowSelected = this.isRowSelected(rowData.originalRowIndex);\n\t\t\tselectedRow = this.props.selectable && rowSelected;\n\t\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\t\tconst translatedRowCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t\t\t{ id: \"virtualizedTable.row.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.row.checkbox.label\"] },\n\t\t\t\t\t{ row_index: index + 1, table_label: (this.props.tableLabel ? this.props.tableLabel : \"\") }\n\t\t\t\t);\n\n\t\t\t\tselectOption = (<div className=\"properties-vt-row-checkbox\"\n\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\tonMouseEnter={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonMouseLeave={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonFocus={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonBlur={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonKeyDown={(evt) => {\n\t\t\t\t\t\tif (evt.code === \"Space\" || evt.code === \"Enter\") {\n\t\t\t\t\t\t\tthis.onRowClick(evt, rowData, index);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tid={`properties-vt-row-cb-${this.uuid}-${scrollKey}-${index}`}\n\t\t\t\t\t\tkey={`properties-vt-row-cb-${scrollKey}-${index}`}\n\t\t\t\t\t\tlabelText={translatedRowCheckboxLabel}\n\t\t\t\t\t\thideLabel\n\t\t\t\t\t\tchecked={rowSelected}\n\t\t\t\t\t\tdisabled={rowDisabled}\n\t\t\t\t\t/>\n\t\t\t\t</div>);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.summaryTable) {\n\t\t\tselectOption = <div className=\"properties-vt-row-checkbox\" />;\n\t\t}\n\n\t\tif (rowData.loading === true) {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tkey={key}\n\t\t\t\t\tdata-role=\"properties-loading-row\"\n\t\t\t\t\trole=\"row\"\n\t\t\t\t\tstyle={style}\n\t\t\t\t>\n\t\t\t\t\t<Loading className=\"properties-vt-small-loading\" small withOverlay={false} />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst width = (parseInt(style.width, 10)) + \"px\"; // Subtract 2px to account for row borders\n\t\tconst newStyle = Object.assign({}, style, { width: width });\n\n\t\t// Empty style required on cell for react-virtualized. This div wrapper is required to apply the onDoubleClick handler.\n\t\treturn (<div style={{}} key={key} className=\"properties-vt-double-click\" onDoubleClick={(evt) => this.onRowDoubleClick(evt, rowData.rowKey, index)}>\n\t\t\t<div\n\t\t\t\tclassName={classNames(className,\n\t\t\t\t\t{ \"properties-vt-row-selected\": selectedRow },\n\t\t\t\t\t{ \"properties-vt-row-disabled\": rowDisabled },\n\t\t\t\t\t{ \"properties-vt-row-non-interactive\": !this.props.selectable } // ReadonlyTable with single row selection is non-interactive.\n\t\t\t\t)}\n\t\t\t\tdata-role=\"properties-data-row\"\n\t\t\t\trole=\"row\"\n\t\t\t\tstyle={newStyle}\n\t\t\t\tonMouseDown={(evt) => this.onRowClick(evt, rowData, index)}\n\t\t\t>\n\t\t\t\t{selectOption}\n\t\t\t\t{columns}\n\t\t\t</div>\n\t\t</div>);\n\t}\n\n\trender() {\n\t\tconst defaultTestHeight = 2000; // 2000 is set to accommodate test data \"category-selection-data\" with all categories expanded\n\n\t\treturn (\n\t\t\t<div className=\"properties-vt\">\n\t\t\t\t<div className={classNames(\"properties-vt-autosizer\",\n\t\t\t\t\t{ \"properties-vt-single-selection\": this.props.rowSelection && this.props.rowSelection === ROW_SELECTION.SINGLE,\n\t\t\t\t\t\t\"properties-light-disabled\": !this.props.light })}\n\t\t\t\t>\n\t\t\t\t\t<AutoSizer>\n\t\t\t\t\t\t{({ height, width }) => ( // Table height: subtract 50 for margin below the table.\n\t\t\t\t\t\t\t<Table\n\t\t\t\t\t\t\t\tref={this.virtualizedTableRef}\n\t\t\t\t\t\t\t\twidth={width ? width : 500}\n\t\t\t\t\t\t\t\t// AutoSizer manages width and height properties so the table fills the available space.\n\t\t\t\t\t\t\t\t// It does a direct DOM manipulation to the parent, outside React's VirtualDOM.\n\t\t\t\t\t\t\t\t// Since the actual DOM is not available when unit testing, we are passing in a default\n\t\t\t\t\t\t\t\t// width of 500 and a default height of 300.\n\t\t\t\t\t\t\t\theight={this.props.tableHeight || height || defaultTestHeight}\n\n\t\t\t\t\t\t\t\tclassName=\"properties-autosized-vt\"\n\t\t\t\t\t\t\t\taria-label={this.props.tableLabel ? this.props.tableLabel : \"\"}\n\n\t\t\t\t\t\t\t\tdisableHeader={this.props.disableHeader}\n\t\t\t\t\t\t\t\theaderClassName=\"properties-autosized-vt-header\"\n\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\theaderRowRenderer={this.headerRowRenderer.bind(this, this.props.scrollKey)}\n\t\t\t\t\t\t\t\tonHeaderClick={this.props.onHeaderClick}\n\n\t\t\t\t\t\t\t\trowClassName=\"properties-vt-row-class\"\n\t\t\t\t\t\t\t\trowHeight={this.props.rowHeight ? this.props.rowHeight : 32}\n\n\t\t\t\t\t\t\t\trowCount={this.state.rowCount}\n\t\t\t\t\t\t\t\trowGetter={this.props.rowGetter}\n\t\t\t\t\t\t\t\trowRenderer={this.rowRenderer.bind(this, this.props.scrollKey)}\n\n\t\t\t\t\t\t\t\tscrollToIndex={this.props.scrollToIndex}\n\t\t\t\t\t\t\t\tscrollToAlignment={this.props.scrollToAlignment}\n\n\t\t\t\t\t\t\t\tsort={this.props.onSort}\n\t\t\t\t\t\t\t\tsortDirection={this.props.sortDirection}\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.state.columns.map((column) => (\n\t\t\t\t\t\t\t\t\t\t<Column\n\t\t\t\t\t\t\t\t\t\t\tkey={column.key}\n\t\t\t\t\t\t\t\t\t\t\tlabel={column.label}\n\t\t\t\t\t\t\t\t\t\t\tdataKey={column.key}\n\t\t\t\t\t\t\t\t\t\t\twidth={column.width}\n\t\t\t\t\t\t\t\t\t\t\tcolumnData={column}\n\t\t\t\t\t\t\t\t\t\t\tdisableSort={typeof this.props.sortColumns[column.key] === \"undefined\"}\n\t\t\t\t\t\t\t\t\t\t\tcellRenderer={column.isHTML ? this.cellRendererHTML : this.cellRenderer}\n\t\t\t\t\t\t\t\t\t\t\theaderRenderer={this.headerColRenderer}\n\t\t\t\t\t\t\t\t\t\t\t{...column.minWidth && { minWidth: column.minWidth }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Table>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</AutoSizer>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nVirtualizedTable.defaultProps = {\n\tdisableHeader: false\n};\n\nVirtualizedTable.propTypes = {\n\ttableLabel: PropTypes.string,\n\ttableHeight: PropTypes.number.isRequired,\n\tselectable: PropTypes.bool,\n\tsummaryTable: PropTypes.bool,\n\trowSelection: PropTypes.string,\n\tdisableHeader: PropTypes.bool,\n\tcolumns: PropTypes.array.isRequired,\n\trowCount: PropTypes.number.isRequired,\n\trowGetter: PropTypes.func.isRequired,\n\trowHeight: PropTypes.oneOfType([\n\t\tPropTypes.func.isRequired,\n\t\tPropTypes.number.isRequired\n\t]),\n\tonRowDoubleClick: PropTypes.func,\n\trowsSelected: PropTypes.array, // Required if selectable is true\n\tcheckedAll: PropTypes.bool, // Required if selectable is true\n\tsetRowsSelected: PropTypes.func, // Required if selectable is true\n\tsetAllRowsSelected: PropTypes.func, // Required if selectable is true\n\tscrollToIndex: PropTypes.number,\n\tscrollToAlignment: PropTypes.string,\n\tonSort: PropTypes.func,\n\tsortBy: PropTypes.string,\n\tsortColumns: PropTypes.object,\n\tsortDirection: PropTypes.string,\n\tonHeaderClick: PropTypes.func,\n\tscrollKey: PropTypes.string,\n\ttableState: PropTypes.string,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired\n};\n\nexport default injectIntl(VirtualizedTable);\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 complexity: [\"error\", 25] */\n/* eslint max-depth: [\"error\", 6] */\n\nimport React from \"react\";\nimport { injectIntl } from \"react-intl\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\nimport { Search } from \"carbon-components-react\";\nimport VirtualizedTable from \"./../virtualized-table/virtualized-table.jsx\";\nimport { REM_ROW_HEIGHT, REM_HEADER_HEIGHT, ONE_REM_HEIGHT, SORT_DIRECTION, STATES, ROW_HEIGHT, ROW_SELECTION } from \"./../../constants/constants\";\nimport ReactResizeDetector from \"react-resize-detector\";\nimport classNames from \"classnames\";\nimport { has, isEmpty } from \"lodash\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nclass FlexibleTable extends React.Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst sortDirs = {};\n\t\tif (typeof this.props.sortable !== \"undefined\") {\n\t\t\tfor (var i = 0; i < this.props.sortable.length; i++) {\n\t\t\t\tconst sortCol = this.props.sortable[i];\n\t\t\t\tsortDirs[sortCol] = SORT_DIRECTION.NOT_SORTED;\n\t\t\t}\n\t\t}\n\t\tthis.state = {\n\t\t\tcheckedAllRows: false,\n\t\t\tcolumnSortDir: sortDirs,\n\t\t\tcurrentSortColumn: \"\",\n\t\t\ttableWidth: 0,\n\t\t\ttableHeight: 0,\n\t\t\trows: typeof props.rows !== \"undefined\" ? props.rows : 5.5,\n\t\t\tdynamicHeight: null\n\t\t};\n\n\t\tthis.rowHeight = this.rowHeight.bind(this);\n\t\tthis.rowGetter = this.rowGetter.bind(this);\n\n\t\tthis.getOriginalRowIndex = this.getOriginalRowIndex.bind(this);\n\t\tthis.getLastChildPropertyIdRow = this.getLastChildPropertyIdRow.bind(this);\n\n\t\tthis.calculateColumnWidths = this.calculateColumnWidths.bind(this);\n\t\tthis.handleFilterChange = this.handleFilterChange.bind(this);\n\t\tthis.onSort = this.onSort.bind(this);\n\t\tthis.sortHeaderClick = this.sortHeaderClick.bind(this);\n\t\tthis._updateTableWidth = this._updateTableWidth.bind(this);\n\t\tthis._adjustTableHeight = this._adjustTableHeight.bind(this);\n\t\tthis.handleCheckedRow = this.handleCheckedRow.bind(this);\n\t\tthis.handleCheckedAllRows = this.handleCheckedAllRows.bind(this);\n\t\tthis.handleCheckedMultipleRows = this.handleCheckedMultipleRows.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._adjustTableHeight();\n\t\twindow.addEventListener(\"resize\", this._adjustTableHeight);\n\t\tthis.tableNode = ReactDOM.findDOMNode(this.refs.table);\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (prevProps.rows !== this.props.rows ||\n\t\t\tprevProps.columns !== this.props.columns ||\n\t\t\tprevProps.noAutoSize !== this.props.noAutoSize) {\n\t\t\tthis._adjustTableHeight();\n\t\t}\n\n\t\t// Calculate if checkedAllRows is true\n\t\tif (this.props.selectedRows && !isEmpty(this.props.data)) {\n\t\t\tthis.setCheckedAll(this.props.selectedRows);\n\t\t}\n\n\t\tthis.tableNode = ReactDOM.findDOMNode(this.refs.table);\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"resize\", this._adjustTableHeight);\n\t}\n\n\tonSort({ sortBy }) {\n\t\tif (this.props.onSort) {\n\t\t\tconst sortDirection = (this.state.columnSortDir[sortBy] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tconst spec = {\n\t\t\t\tcolumn: sortBy,\n\t\t\t\tdirection: sortDirection\n\t\t\t};\n\t\t\tthis.props.onSort(spec);\n\t\t}\n\t}\n\n\t/**\n\t* The current displayed row may have an index that is different from its actual index within the dataset\n\t* Given the current displayed row and index of the table,\n\t* return its original row index from its row's propertyId\n\t*/\n\tgetOriginalRowIndex(row, index) {\n\t\tlet rowIndex = index;\n\t\tif (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.propertyId\")) {\n\t\t\t// this is a nested control\n\t\t\trowIndex = this.getLastChildPropertyIdRow(row.columns[0].content.props.children.props.propertyId, index);\n\t\t} else if (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.index\")) {\n\t\t\t// for rows that have multi-select controls in them\n\t\t\trowIndex = row.columns[0].content.props.children.props.propertyId.index;\n\t\t} else if (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.row\")) {\n\t\t\trowIndex = row.columns[0].content.props.children.props.propertyId.row;\n\t\t} else if (typeof row.rowKey === \"number\") { // expression tables uses rowKey\n\t\t\trowIndex = parseInt(row.rowKey, 10);\n\t\t}\n\t\treturn rowIndex;\n\t}\n\n\t// Get the 'row' of the last child's propertyId\n\tgetLastChildPropertyIdRow(propertyId, defaultRowIndex) {\n\t\tif (typeof propertyId.propertyId !== \"undefined\") {\n\t\t\treturn this.getLastChildPropertyIdRow(propertyId.propertyId);\n\t\t}\n\t\tif (typeof propertyId.row !== \"undefined\") {\n\t\t\treturn propertyId.row;\n\t\t}\n\t\treturn defaultRowIndex;\n\t}\n\n\t/**\n\t* The header checkAll box may change depending on the current visible rows\n\t* Determine if all visible rows in the table are currently selected\n\t* and set the `checkedAllRows` state accordingly\n\t*/\n\tsetCheckedAll(selectedRows) {\n\t\tlet checkAll = true;\n\t\tfor (let idx = 0; idx < this.props.data.length; idx++) {\n\t\t\tconst row = this.props.data[idx];\n\t\t\tconst originalRowIndex = this.getOriginalRowIndex(row, idx);\n\t\t\tif (selectedRows.indexOf(originalRowIndex) < 0) {\n\t\t\t\tcheckAll = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.state.checkedAllRows !== checkAll) {\n\t\t\tthis.setState({ checkedAllRows: checkAll });\n\t\t}\n\t}\n\n\t/**\n\t* Calculate the width for each column to fit within the table\n\t* Widths provided in columns without 'px' are 'weighted' and will be scaled\n\t* Widths provided in columns with 'px' are used as is without scaling\n\t* if width is provided with 'px', subtract that from the total available table width\n\t* if width is provided, divide the column 'weighted' width with the max width from columns\n\t* return the scaled factor\n\t* multiply each column 'weighted' width with the scaled factor to get the actual width in pixels\n\t* @param columns column definitions\n\t* @param parentTableWidth\n\t*/\n\tcalculateColumnWidths(columns, parentTableWidth) {\n\t\tlet tableWidth = parentTableWidth - 12; // subtract 12 for the left padding scss $spacing-04\n\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\ttableWidth -= 40;\n\t\t}\n\t\tlet remainingColumns = columns.length; // keep track of how many columns to calculate width for\n\t\tlet maxWeight = 0;\n\n\t\tfor (const columnDef of columns) {\n\t\t\t// if columns have specific width subtract from total width\n\t\t\tif (columnDef.width) {\n\t\t\t\tif (typeof columnDef.width === \"string\" && columnDef.width.includes(\"px\")) {\n\t\t\t\t\ttableWidth -= parseInt(columnDef.width, 10);\n\t\t\t\t\tremainingColumns--;\n\t\t\t\t} else {\n\t\t\t\t\tmaxWeight = Math.max(maxWeight, columnDef.width); // keep track of which column has highest width provided\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst widths = [];\n\t\tconst defaultWidth = Math.floor(tableWidth / remainingColumns); // use default width for columns without a weight\n\t\tconst weightedWidths = [];\n\t\tlet sumWeightedWidths = 0;\n\n\t\t// scale weight of columns with width provided\n\t\tfor (const columnDef of columns) {\n\t\t\tif (columnDef.width && !isNaN(columnDef.width)) {\n\t\t\t\tweightedWidths.push(columnDef.width / maxWeight);\n\t\t\t\tsumWeightedWidths += (columnDef.width / maxWeight);\n\t\t\t} else {\n\t\t\t\tweightedWidths.push(null);\n\t\t\t}\n\t\t}\n\n\t\tconst scaledWidth = tableWidth / sumWeightedWidths; // scaled width multiplier for each column with width provided\n\n\t\tlet sumColumnWidth = 0;\n\t\tfor (let idx = 0; idx < columns.length; idx++) {\n\t\t\tconst columnDef = columns[idx];\n\t\t\tif (columnDef.width) {\n\t\t\t\t// use the width provided with 'px' as is\n\t\t\t\tif (typeof columnDef.width === \"string\" && columnDef.width.includes(\"px\")) {\n\t\t\t\t\twidths.push(Math.floor(parseInt(columnDef.width, 10)) + \"px\");\n\t\t\t\t\tsumColumnWidth += parseInt(columnDef.width, 10);\n\t\t\t\t} else { // multiply the width provided by the scaled width\n\t\t\t\t\tconst calculatedWidth = Math.floor(weightedWidths[idx] * scaledWidth);\n\t\t\t\t\twidths.push(calculatedWidth + \"px\");\n\t\t\t\t\tsumColumnWidth += calculatedWidth;\n\t\t\t\t}\n\t\t\t} else { // if no width provided, use the defaultWidth\n\t\t\t\twidths.push(defaultWidth);\n\t\t\t\tsumColumnWidth += defaultWidth;\n\t\t\t}\n\t\t}\n\n\t\t// if any columns had decimals floored, allocate additional space to the first column\n\t\tlet compare = parentTableWidth;\n\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\tcompare -= 40;\n\t\t}\n\n\t\tif (sumColumnWidth < compare) {\n\t\t\tconst firstColWith = parseInt(widths[0], 10);\n\t\t\twidths[0] = firstColWith + compare - sumColumnWidth + \"px\";\n\t\t}\n\n\t\treturn widths;\n\t}\n\n\t_updateTableWidth(width, height) {\n\t\tif (this.state.tableWidth !== Math.floor(width - 2)) {\n\t\t\tthis.setState({\n\t\t\t\ttableWidth: Math.floor(width - 2) // subtract 2 px for the borders\n\t\t\t});\n\t\t}\n\t}\n\n\t_adjustTableHeight() {\n\t\tif (this.props.noAutoSize) {\n\t\t\treturn;\n\t\t}\n\t\tlet newHeight = this.state.tableHeight;\n\t\tlet dynamicH = this.state.dynamicHeight;\n\t\tconst multiSelectTableHeight = REM_ROW_HEIGHT + REM_HEADER_HEIGHT;\n\t\tif (Array.isArray(this.props.data) && this.props.data.length < this.state.rows) {\n\t\t\tnewHeight = (REM_ROW_HEIGHT * this.props.data.length + REM_HEADER_HEIGHT + (this.props.selectedEditRow ? multiSelectTableHeight : 0)) + \"rem\";\n\t\t} else if (this.state.rows > 0) {\n\t\t\tnewHeight = (REM_ROW_HEIGHT * this.state.rows + REM_HEADER_HEIGHT + (this.props.selectedEditRow ? multiSelectTableHeight : 0)) + \"rem\";\n\t\t} else if (this.state.rows === 0) { // only display header\n\t\t\tnewHeight = REM_HEADER_HEIGHT + \"rem\";\n\t\t} else if (this.state.rows === -1) {\n\t\t\tif (this.flexibleTable) {\n\t\t\t\tconst labelAndDescriptionHeight = 50; // possible dynamically set this in the future\n\t\t\t\tconst ftHeaderHeight = (typeof this.flexibleTableHeader !== \"undefined\") ? ReactDOM.findDOMNode(this.flexibleTableHeader).getBoundingClientRect().height : 0;\n\t\t\t\tconst flyoutHeight = this.findPropertyNodeHeight(this.flexibleTable, \"properties-wf-children\");\n\t\t\t\tconst tearsheetHeight = this.findPropertyNodeHeight(this.flexibleTable, \"properties-primary-tab-panel\");\n\t\t\t\tif (flyoutHeight === 0 && tearsheetHeight === 0) {\n\t\t\t\t\tnewHeight = \"100vh\"; // set full window height if flyout & tearsheet height not found\n\t\t\t\t\tdynamicH = -1;\n\t\t\t\t} else {\n\t\t\t\t\tconst totalHeight = flyoutHeight !== 0 ? flyoutHeight : tearsheetHeight;\n\t\t\t\t\tnewHeight = `calc(${totalHeight - ftHeaderHeight - labelAndDescriptionHeight}px - 3.5rem)`; // 3.5rem to adjust padding\n\t\t\t\t\tdynamicH = (totalHeight - ftHeaderHeight - labelAndDescriptionHeight) - (3.5 * 16);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (newHeight !== this.state.tableHeight) {\n\t\t\tthis.setState({ tableHeight: newHeight, dynamicHeight: dynamicH });\n\t\t}\n\t}\n\n\tfindPropertyNodeHeight(node, className) {\n\t\tif (node && node.parentNode && node.parentNode.className && node.parentNode.className.includes(className)) {\n\t\t\tconst foundNode = ReactDOM.findDOMNode(node.parentNode).getBoundingClientRect();\n\t\t\tif (foundNode) {\n\t\t\t\treturn foundNode.height;\n\t\t\t}\n\t\t\treturn 0;\n\t\t} else if (node && node.parentNode) {\n\t\t\treturn this.findPropertyNodeHeight(node.parentNode, className);\n\t\t}\n\t\treturn 0;\n\t}\n\n\tsortHeaderClick({ dataKey }) {\n\t\tconst colSortDir = this.state.columnSortDir;\n\t\tif (typeof colSortDir[dataKey] !== \"undefined\") {\n\t\t\t// At a time only 1 column will be shown as sorted. Revert other columns to not sorted.\n\t\t\tObject.keys(colSortDir).forEach((key) => {\n\t\t\t\tif (key !== dataKey) {\n\t\t\t\t\tcolSortDir[key] = SORT_DIRECTION.NOT_SORTED;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// Only dataKey column will be sorted\n\t\t\tcolSortDir[dataKey] = (colSortDir[dataKey] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tthis.setState({\n\t\t\t\tcolumnSortDir: colSortDir,\n\t\t\t\tcurrentSortColumn: dataKey\n\t\t\t});\n\t\t}\n\t}\n\n\thandleFilterChange(evt) {\n\t\tif (this.props.onFilter) {\n\t\t\tthis.props.onFilter(evt.target.value);\n\t\t}\n\t}\n\n\thandleCheckedAllRows(checked) {\n\t\tlet selectAll = [];\n\t\tconst controlValue = this.props.data;\n\t\tif (checked) {\n\t\t\tselectAll = Array.from(this.props.selectedRows);\n\t\t\tfor (var rowIndex = 0; rowIndex < controlValue.length; rowIndex++) {\n\t\t\t\tconst originalRowIndex = this.getOriginalRowIndex(controlValue[rowIndex], rowIndex);\n\t\t\t\tselectAll.push(originalRowIndex);\n\t\t\t}\n\t\t}\n\t\tselectAll = Array.from(new Set(selectAll));\n\t\tthis.props.updateRowSelections(selectAll);\n\t\tthis.setState({ checkedAllRows: checked });\n\t}\n\n\t/**\n\t* This method is called when user wants to select multiple rows using shift key\n\t* Select/deselect all rows between lastCheckedRow and existingRow\n\t* @param lastCheckedRow (integer) - index of last selected row\n\t* @param existingRow (integer) - index of row where shift key is clicked\n\t* @param checked (boolean) - rows are to be selected or deselected\n\t*/\n\thandleCheckedMultipleRows(lastCheckedRow, existingRow, checked) {\n\t\tlet selectedRows = this.props.selectedRows ? this.props.selectedRows : [];\n\t\t// Calculate rows between lastChecked row and existingRow\n\t\tlet inBetweenRows;\n\t\tif (lastCheckedRow < existingRow) {\n\t\t\tinBetweenRows = Array.from({ length: (existingRow - lastCheckedRow) + 1 }, (_, i) => lastCheckedRow + i);\n\t\t} else {\n\t\t\tinBetweenRows = Array.from({ length: (lastCheckedRow - existingRow) + 1 }, (_, i) => existingRow + i);\n\t\t}\n\t\t// if selectedRows already has inBetweenRows, remove them first\n\t\tselectedRows = selectedRows.filter((row) => !inBetweenRows.includes(row)); // Deselecting inBetweenRows using shift key\n\t\tif (checked) {\n\t\t\tselectedRows = selectedRows.concat(inBetweenRows); \t// Selecting inBetweenRows using shift key\n\t\t}\n\t\treturn selectedRows;\n\t}\n\n\thandleCheckedRow(data, evt) {\n\t\tconst dataRowIndex = data.originalRowIndex; // Use the originalRowIndex for selection in case rows are filtered.\n\t\tconst displayedRowIndex = data.index;\n\t\tconst checked = data.selected;\n\t\tconst overSelectOption = data.isOverSelectOption;\n\n\t\tif (!this.props.data[displayedRowIndex].disabled && typeof this.props.updateRowSelections === \"function\") {\n\t\t\tif (overSelectOption) { // Checkbox is clicked\n\t\t\t\tlet current = this.props.selectedRows ? this.props.selectedRows : [];\n\t\t\t\tif (data.selectMultipleRows) { // multiple rows selected/deselected using shift key\n\t\t\t\t\tcurrent = this.handleCheckedMultipleRows(data.lastCheckedRow, displayedRowIndex, checked);\n\t\t\t\t\tthis.setCheckedAll(current);\n\t\t\t\t} else if (checked) { // single row selected\n\t\t\t\t\tcurrent = current.concat(dataRowIndex);\n\t\t\t\t\tthis.setCheckedAll(current);\n\t\t\t\t} else if (current) { // single row deselected\n\t\t\t\t\tcurrent = current.filter(function(element) {\n\t\t\t\t\t\treturn element !== dataRowIndex;\n\t\t\t\t\t});\n\t\t\t\t\tthis.setState({ checkedAllRows: false });\n\t\t\t\t}\n\t\t\t\t// Sort ascending because we want to add selected rows in the same order as they're displayed in the table\n\t\t\t\tcurrent.sort((a, b) => a - b);\n\t\t\t\tthis.props.updateRowSelections(current);\n\t\t\t} else if (this.props.rowSelection === ROW_SELECTION.SINGLE) { // Table row is clicked\n\t\t\t\tthis.props.updateRowSelections(data.index, evt, this.props.data[data.index].rowKey);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t* Generate the table header specs from this.props.columns\n\t* this.props.columns: array of objects\n\t* [\n\t* {\n\t* \"key\": string,\n\t* \"label\": string,\n\t* \"width\": integer or string if containts 'px',\n\t* \"description\": optional string,\n\t* \"resizable\": optional boolean,\n\t* \"staticWidth\": optional boolean - This is a special property added only for SPSS modeler which directly calls FlexibleTable. This property is NOT a part of uiHints.\n\t* }\n\t* ]\n\t* @param columnWidths\n\t*/\n\tgenerateTableHeaderRow(columnWidths) {\n\t\tconst headers = [];\n\t\tlet searchLabel = \"\";\n\t\tfor (var j = 0; j < this.props.columns.length; j++) {\n\t\t\tconst columnDef = this.props.columns[j];\n\t\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable[0] === columnDef.key) {\n\t\t\t\tsearchLabel = columnDef.label;\n\t\t\t}\n\t\t\tconst width = Math.abs(parseInt(columnWidths[j], 10));\n\t\t\tlet headerLabel;\n\t\t\tif (typeof (columnDef.label) === \"object\") {\n\t\t\t\theaderLabel = columnDef.label.props.labelText;\n\t\t\t} else if (typeof (columnDef.label) === \"string\") {\n\t\t\t\theaderLabel = columnDef.label;\n\t\t\t}\n\t\t\theaders.push({\n\t\t\t\tkey: columnDef.key,\n\t\t\t\tlabel: columnDef.label,\n\t\t\t\twidth: width,\n\t\t\t\tdescription: columnDef.description,\n\t\t\t\theaderLabel: headerLabel,\n\t\t\t\tresizable: columnDef.resizable,\n\t\t\t\toperation: columnDef.operation,\n\t\t\t\tstaticWidth: columnDef.staticWidth ? columnDef.staticWidth : false // Used to exclude a column from resizing. If true, \"resizable\" value will be ignored.\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\theaders: headers,\n\t\t\tsearchLabel: searchLabel\n\t\t};\n\t}\n\n\t/**\n\t* Callback responsible for returning a data row given an index\n\t*/\n\trowGetter({ index }) {\n\t\tconst row = this.props.data[index];\n\t\tconst originalRowIndex = this.getOriginalRowIndex(row, index);\n\n\t\tconst columns = {};\n\t\tif (row.columns) {\n\t\t\tfor (let cidx = 0; cidx < row.columns.length; cidx++) {\n\t\t\t\tconst column = row.columns[cidx];\n\t\t\t\tcolumns[column.column] = column.content;\n\t\t\t}\n\t\t}\n\t\treturn Object.assign({}, columns, {\n\t\t\tloading: false,\n\t\t\tindex: index,\n\t\t\toriginalRowIndex: originalRowIndex,\n\t\t\trowKey: typeof row.rowKey !== \"undefined\" ? row.rowKey : this.props.scrollKey + \"-row-\" + index,\n\t\t\tdisabled: row.disabled\n\t\t});\n\t}\n\n\t// Function that returns the height of a row given its index\n\trowHeight({ index }) {\n\t\treturn ROW_HEIGHT;\n\t}\n\n\trender() {\n\t\tconst tableWidth = this.state.tableWidth;\n\t\tconst columnWidths = this.calculateColumnWidths(this.props.columns, tableWidth);\n\t\tconst headerInfo = this.generateTableHeaderRow(columnWidths);\n\n\t\tconst headers = headerInfo.headers;\n\t\tconst searchLabel = headerInfo.searchLabel;\n\t\tconst disabled = this.props.tableState === STATES.DISABLED;\n\n\t\tlet searchBar = null;\n\n\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable.length !== 0) {\n\t\t\tconst placeHolder = typeof this.props.searchPlaceholder !== \"undefined\"\n\t\t\t\t? this.props.searchPlaceholder\n\t\t\t\t: this.props.intl.formatMessage({ id: \"table.search.placeholder\", defaultMessage: defaultMessages[\"table.search.placeholder\"] }, { column_name: searchLabel });\n\t\t\tconst searchBarLabel = this.props.intl.formatMessage(\n\t\t\t\t{ id: \"table.search.label\", defaultMessage: defaultMessages[\"table.search.label\"] },\n\t\t\t\t{ table_name: this.props.tableLabel }\n\t\t\t);\n\n\t\t\tsearchBar = (\n\t\t\t\t<div className={classNames(\"properties-ft-search-container\", { \"disabled\": disabled })}>\n\t\t\t\t\t<Search\n\t\t\t\t\t\tclassName=\"properties-ft-search-text\"\n\t\t\t\t\t\tplaceholder={placeHolder}\n\t\t\t\t\t\tonChange={this.handleFilterChange}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tlabelText={searchBarLabel}\n\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tlet scrollIndex = -1;\n\t\tif (typeof this.props.scrollToRow !== \"undefined\" && this.props.scrollToRow !== null) {\n\t\t\tscrollIndex = this.props.scrollToRow;\n\t\t}\n\n\t\tlet heightStyle = {};\n\t\tif (!this.props.noAutoSize) {\n\t\t\theightStyle = { height: this.state.tableHeight };\n\t\t}\n\n\t\tconst containerClass = this.props.showHeader ? \"properties-ft-container-absolute \" : \"properties-ft-container-absolute-noheader \";\n\t\tconst messageClass = (!this.props.messageInfo) ? containerClass + STATES.INFO : containerClass;\n\t\tconst ftHeader = (searchBar || this.props.topRightPanel)\n\t\t\t? (<div className=\"properties-ft-table-header\" ref={ (ref) => (this.flexibleTableHeader = ref) }>\n\t\t\t\t{searchBar}\n\t\t\t\t{this.props.topRightPanel}\n\t\t\t</div>)\n\t\t\t: null;\n\n\t\tconst emptyTableContent = isEmpty(this.props.data)\n\t\t\t? (\n\t\t\t\t<div className=\"properties-ft-empty-table\">\n\t\t\t\t\t{this.props.emptyTablePlaceholder}\n\t\t\t\t</div>\n\t\t\t)\n\t\t\t: null;\n\n\t\tconst ftClassname = classNames(\"properties-ft-control-container\", { \"properties-light-disabled\": !this.props.light });\n\n\t\tlet tableHeight = 0;\n\t\tconst multiSelectEditRowsRem = 2 * REM_HEADER_HEIGHT; // multi-select adds two rows when selectedEditRow\n\t\tconst multiSelectEditRowsPixels = multiSelectEditRowsRem * ONE_REM_HEIGHT;\n\t\tif (this.state.rows !== -1 && this.state.tableHeight) {\n\t\t\tconst remHeight = parseInt(this.state.tableHeight, 10);\n\t\t\ttableHeight = (remHeight - (this.props.selectedEditRow ? multiSelectEditRowsRem : 0)) * ONE_REM_HEIGHT;\n\t\t} else if (this.state.rows === -1 && this.state.dynamicHeight && this.state.dynamicHeight !== -1) {\n\t\t\ttableHeight = this.state.dynamicHeight - (this.props.selectedEditRow ? multiSelectEditRowsPixels : 0);\n\t\t}\n\n\t\treturn (\n\t\t\t<div data-id={\"properties-ft-\" + this.props.scrollKey} className={ftClassname} ref={ (ref) => (this.flexibleTable = ref) }>\n\t\t\t\t{ftHeader}\n\t\t\t\t<div className=\"properties-ft-container-panel\">\n\t\t\t\t\t<ReactResizeDetector handleWidth onResize={this._updateTableWidth}>\n\t\t\t\t\t\t<div className={classNames(\"properties-ft-container-wrapper\", this.props.messageInfo ? this.props.messageInfo.type : \"\")} style={ heightStyle }>\n\t\t\t\t\t\t\t<div className={messageClass}>\n\t\t\t\t\t\t\t\t{this.props.selectedEditRow}\n\t\t\t\t\t\t\t\t<VirtualizedTable\n\t\t\t\t\t\t\t\t\ttableLabel={this.props.tableLabel}\n\t\t\t\t\t\t\t\t\ttableHeight={tableHeight}\n\t\t\t\t\t\t\t\t\tcolumns={headers}\n\t\t\t\t\t\t\t\t\tonHeaderClick={this.sortHeaderClick}\n\t\t\t\t\t\t\t\t\trowCount={this.props.data.length}\n\t\t\t\t\t\t\t\t\trowHeight={this.rowHeight}\n\t\t\t\t\t\t\t\t\trowGetter={this.rowGetter}\n\t\t\t\t\t\t\t\t\tsummaryTable={this.props.summaryTable}\n\t\t\t\t\t\t\t\t\tselectable={typeof this.props.updateRowSelections !== \"undefined\"}\n\t\t\t\t\t\t\t\t\trowSelection={this.props.rowSelection}\n\t\t\t\t\t\t\t\t\tdisableHeader={!this.props.showHeader}\n\t\t\t\t\t\t\t\t\tonRowDoubleClick={this.props.onRowDoubleClick}\n\t\t\t\t\t\t\t\t\trowsSelected={this.props.selectedRows}\n\t\t\t\t\t\t\t\t\tcheckedAll={this.state.checkedAllRows}\n\t\t\t\t\t\t\t\t\tsetRowsSelected={this.handleCheckedRow}\n\t\t\t\t\t\t\t\t\tsetAllRowsSelected={this.handleCheckedAllRows}\n\t\t\t\t\t\t\t\t\tscrollKey={this.props.scrollKey}\n\t\t\t\t\t\t\t\t\tonSort={this.onSort}\n\t\t\t\t\t\t\t\t\tsortBy={this.state.currentSortColumn}\n\t\t\t\t\t\t\t\t\tsortColumns={this.state.columnSortDir}\n\t\t\t\t\t\t\t\t\tsortDirection={this.state.columnSortDir[this.state.currentSortColumn]}\n\t\t\t\t\t\t\t\t\ttableState={this.props.tableState}\n\t\t\t\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t\t\t\t\t{...(scrollIndex !== -1 && { scrollToIndex: scrollIndex, scrollToAlignment: \"center\" })}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ReactResizeDetector>\n\t\t\t\t</div>\n\t\t\t\t{emptyTableContent}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nFlexibleTable.defaultProps = {\n\tshowHeader: true,\n\tlight: true,\n\temptyTablePlaceholder: \"\"\n};\n\nFlexibleTable.propTypes = {\n\tsortable: PropTypes.array,\n\tcolumns: PropTypes.array.isRequired,\n\tdata: PropTypes.array.isRequired,\n\temptyTablePlaceholder: PropTypes.oneOfType([\n\t\tPropTypes.string,\n\t\tPropTypes.element\n\t]),\n\tsearchPlaceholder: PropTypes.string,\n\tfilterable: PropTypes.array,\n\tfilterBy: PropTypes.string,\n\tfilterKeyword: PropTypes.string,\n\thideFilterInput: PropTypes.func,\n\tscrollToRow: PropTypes.number,\n\tonSort: PropTypes.func,\n\tonFilter: PropTypes.func,\n\tshowHeader: PropTypes.bool,\n\tselectedEditRow: PropTypes.object,\n\ttopRightPanel: PropTypes.object,\n\tscrollKey: PropTypes.string,\n\ttableLabel: PropTypes.string,\n\trows: PropTypes.number,\n\tnoAutoSize: PropTypes.bool,\n\ttableState: PropTypes.string,\n\tmessageInfo: PropTypes.object,\n\tupdateRowSelections: PropTypes.func,\n\tonRowDoubleClick: PropTypes.func,\n\tselectedRows: PropTypes.array,\n\trowSelection: PropTypes.string,\n\tsummaryTable: PropTypes.bool,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired\n};\n\nexport default injectIntl(FlexibleTable);\n"],"names":["TruncatedContentTooltip","_React$Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","_this","tooltipText","this","props","truncatedRef","_typeof","String","content","type","Checkbox","tooltipRef","firstChild","lastChild","tooltip","React","createElement","className","Tooltip","id","tip","direction","disable","_has","disabled","showToolTipIfTruncated","ref","Component","baseAssignValue","require$$0","baseForOwn","require$$1","baseIteratee","require$$2","mapValues_1","object","iteratee","result","baseDifference","baseFlatten","isArrayLikeObject","require$$4","last","require$$5","differenceBy_1","require$$3","array","values","undefined","VirtualizedTable","context","call","state","rowCount","columns","columnResized","virtualizedTableRef","createRef","lastChecked","_isEmpty","rowsSelected","slice","pop","isOverSelectOption","mouseEventCalled","keyBoardEventCalled","cellRenderer","bind","_assertThisInitialized","selectAll","headerRowRenderer","headerColRenderer","onRowClick","overSelectOption","resizeColumn","uuid","uuid4","rowHeight","recomputeRowHeights","evt","rowData","index","target","stopPropagation","selected","isRowSelected","originalRowIndex","setRowsSelected","selectMultipleRows","shiftKey","lastCheckedRow","rowKey","onRowDoubleClick","i","length","operation","findIndex","column","deltaX","columnWiseDeltas","sort","a","b","width","totalDelta","widthOfAllColumns","reduce","prev","current","individualDelta","Math","round","headerLabel","MINIMUM_COLUMN_WIDTH","MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL","_mapValues","indexOf","dataKey","isLastColumn","getColumnIndex","setAllRowsSelected","_ref","cellData","_ref2","dangerouslySetInnerHTML","__html","scrollKey","_ref3","style","checkboxLabelColumnIndex","getCheckboxLabelColumnIndex","headerCheckboxLabel","translatedHeaderCheckboxLabel","intl","formatMessage","defaultMessage","defaultMessages","header_checkbox_label","checkbox","selectable","rowSelection","ROW_SELECTION","SINGLE","role","checkedAll","concat","onChange","checked","labelText","hideLabel","_ref4","_this2","columnData","disableSort","label","sortBy","sortDirection","sortIcon","sortColumns","SORT_DIRECTION","ASC","ArrowUp16","tableState","STATES","DISABLED","DESC","ArrowDown16","ArrowsVertical16","infoIcon","description","showToolTipOnClick","Information16","resizeElem","resizable","Draggable","axis","defaultClassName","defaultClassNameDragging","onDrag","_ref5","position","x","zIndex","tabIndex","headerDisplayLabel","header","classNames","_ref6","_this3","setState","prevState","resizedColumnIndex","resizableColumns","filter","staticWidth","getColumnWiseDeltas","columnsToBeResized","Object","keys","everyColumnHasZeroDelta","every","delta","forEach","columnKey","idx","col","_ref7","_this4","selectOption","selectedRow","rowDisabled","rowSelected","translatedRowCheckboxLabel","row_index","table_label","tableLabel","onMouseEnter","onMouseLeave","onFocus","onBlur","onKeyDown","code","summaryTable","loading","Loading","small","withOverlay","parseInt","newStyle","assign","onDoubleClick","onMouseDown","_this5","light","AutoSizer","_ref8","height","Table","tableHeight","disableHeader","headerClassName","headerHeight","onHeaderClick","rowClassName","rowGetter","rowRenderer","scrollToIndex","scrollToAlignment","onSort","map","Column","_extends","isHTML","cellRendererHTML","headerRenderer","minWidth","nextProps","updatedState","editorSizeUpdated","totalWidth","_differenceBy","defaultProps","injectIntl","FlexibleTable","sortDirs","sortable","NOT_SORTED","checkedAllRows","columnSortDir","currentSortColumn","tableWidth","rows","dynamicHeight","getOriginalRowIndex","getLastChildPropertyIdRow","calculateColumnWidths","handleFilterChange","sortHeaderClick","_updateTableWidth","_adjustTableHeight","handleCheckedRow","handleCheckedAllRows","handleCheckedMultipleRows","window","addEventListener","tableNode","ReactDOM","findDOMNode","refs","table","prevProps","noAutoSize","selectedRows","data","setCheckedAll","removeEventListener","spec","row","rowIndex","children","propertyId","defaultRowIndex","checkAll","parentTableWidth","_step","remainingColumns","maxWeight","_iterator","_createForOfIteratorHelper","s","n","done","columnDef","includes","max","err","e","f","_step2","widths","defaultWidth","floor","weightedWidths","sumWeightedWidths","_iterator2","isNaN","push","scaledWidth","sumColumnWidth","calculatedWidth","compare","firstColWith","newHeight","dynamicH","multiSelectTableHeight","REM_ROW_HEIGHT","REM_HEADER_HEIGHT","Array","isArray","selectedEditRow","flexibleTable","ftHeaderHeight","flexibleTableHeader","getBoundingClientRect","flyoutHeight","findPropertyNodeHeight","tearsheetHeight","totalHeight","node","parentNode","foundNode","colSortDir","onFilter","controlValue","from","Set","updateRowSelections","existingRow","inBetweenRows","_","dataRowIndex","displayedRowIndex","element","columnWidths","headers","searchLabel","j","filterable","abs","cidx","ROW_HEIGHT","headerInfo","generateTableHeaderRow","searchBar","placeHolder","searchPlaceholder","column_name","searchBarLabel","table_name","Search","placeholder","size","scrollIndex","scrollToRow","heightStyle","containerClass","showHeader","messageClass","messageInfo","INFO","ftHeader","topRightPanel","emptyTableContent","emptyTablePlaceholder","ftClassname","multiSelectEditRowsRem","multiSelectEditRowsPixels","ONE_REM_HEIGHT","ReactResizeDetector","handleWidth","onResize"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flexible-table-4259d869.js","sources":["../src/common-properties/components/truncated-content-tooltip/truncated-content-tooltip.jsx","../src/common-properties/components/truncated-content-tooltip/index.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/differenceBy.js","../src/common-properties/components/virtualized-table/virtualized-table.jsx","../src/common-properties/components/flexible-table/flexible-table.jsx"],"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 from \"react\";\nimport PropTypes from \"prop-types\";\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport { has } from \"lodash\";\nimport { Checkbox } from \"carbon-components-react\";\n\n// Reusable component to show tooltip if the content is truncated\nexport default class TruncatedContentTooltip extends React.Component {\n\n\trender() {\n\t\tlet tooltipText = this.props.tooltipText;\n\t\tlet truncatedRef = this.props.truncatedRef;\n\t\tif (typeof this.props.tooltipText !== \"object\") {\n\t\t\ttooltipText = String(this.props.tooltipText);\n\t\t}\n\t\tif (this.props.content && this.props.content.type === Checkbox && this.tooltipRef && this.tooltipRef.firstChild) {\n\t\t\ttruncatedRef = this.tooltipRef.firstChild.lastChild; // checkbox label is in div -> label -> span\n\t\t}\n\t\tconst tooltip = (\n\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t{tooltipText}\n\t\t\t</div>\n\t\t);\n\t\treturn (\n\t\t\t<div className=\"properties-truncated-tooltip\">\n\t\t\t\t<Tooltip\n\t\t\t\t\tid=\"properties\"\n\t\t\t\t\ttip={tooltip}\n\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t\tdisable={has(this.props, \"disabled\") ? this.props.disabled : true}\n\t\t\t\t\tshowToolTipIfTruncated\n\t\t\t\t\ttruncatedRef={truncatedRef}\n\t\t\t\t>\n\t\t\t\t\t<div ref={(ref) => (this.tooltipRef = ref)}>\n\t\t\t\t\t\t{this.props.content}\n\t\t\t\t\t</div>\n\t\t\t\t</Tooltip>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nTruncatedContentTooltip.propTypes = {\n\tcontent: PropTypes.element,\n\ttruncatedRef: PropTypes.object,\n\ttooltipText: PropTypes.oneOfType([\n\t\tPropTypes.string.isRequired,\n\t\tPropTypes.object.isRequired,\n\t\tPropTypes.number.isRequired,\n\t\tPropTypes.bool.isRequired,\n\t\tPropTypes.array.isRequired\n\t]),\n\tdisabled: PropTypes.bool\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 TruncatedContentTooltip from \"./truncated-content-tooltip.jsx\";\nexport default TruncatedContentTooltip;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseIteratee = require('./_baseIteratee'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nmodule.exports = differenceBy;\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 { Column, Table, AutoSizer } from \"react-virtualized\";\nimport Draggable from \"react-draggable\";\nimport { Checkbox, Loading } from \"carbon-components-react\";\nimport { ArrowUp16, ArrowDown16, ArrowsVertical16, Information16 } from \"@carbon/icons-react\";\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport TruncatedContentTooltip from \"./../truncated-content-tooltip\";\nimport { SORT_DIRECTION, STATES, ROW_SELECTION, MINIMUM_COLUMN_WIDTH, MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL } from \"./../../constants/constants\";\nimport { injectIntl } from \"react-intl\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nimport { isEmpty, differenceBy, mapValues } from \"lodash\";\nimport classNames from \"classnames\";\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { v4 as uuid4 } from \"uuid\";\n\nclass VirtualizedTable extends React.Component {\n\n\tstatic getDerivedStateFromProps(nextProps, prevState) {\n\t\tconst updatedState = {};\n\t\tif (nextProps.rowCount !== prevState.rowCount) {\n\t\t\tupdatedState.rowCount = nextProps.rowCount;\n\t\t}\n\n\t\tconst prevStateTableWidth = prevState.columns.reduce((totalWidth, column) => column.width + totalWidth, 0);\n\t\tconst nextPropsTableWidth = nextProps.columns.reduce((totalWidth, column) => column.width + totalWidth, 0);\n\t\tconst editorSizeUpdated = (prevStateTableWidth !== nextPropsTableWidth);\n\n\t\t// Get new columns if column label (headerLabel) is different. This is useful when changing \"View in tables\" dropdown in Expression control.\n\t\t// Also when right flyout is expanded/collapsed, width of all columns changes, in this case get new columns with updated widths.\n\t\t// We're not comparing all properties in columns object because width can be different after resizing.\n\t\tif (!prevState.columnResized || !isEmpty(differenceBy(nextProps.columns, prevState.columns, \"headerLabel\")) || editorSizeUpdated) {\n\t\t\tupdatedState.columns = nextProps.columns;\n\t\t}\n\t\treturn (updatedState);\n\t}\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\trowCount: this.props.rowCount,\n\t\t\tcolumns: this.props.columns,\n\t\t\tcolumnResized: false\n\t\t};\n\t\tthis.virtualizedTableRef = React.createRef();\n\t\tthis.lastChecked = isEmpty(props.rowsSelected) ? null : props.rowsSelected.slice(-1).pop();\n\n\t\tthis.isOverSelectOption = false;\n\t\tthis.mouseEventCalled = false;\n\t\tthis.keyBoardEventCalled = false;\n\t\tthis.cellRenderer = this.cellRenderer.bind(this);\n\t\tthis.selectAll = this.selectAll.bind(this);\n\t\tthis.headerRowRenderer = this.headerRowRenderer.bind(this);\n\t\tthis.headerColRenderer = this.headerColRenderer.bind(this);\n\t\tthis.onRowClick = this.onRowClick.bind(this);\n\t\tthis.overSelectOption = this.overSelectOption.bind(this);\n\t\tthis.resizeColumn = this.resizeColumn.bind(this);\n\t\tthis.uuid = uuid4();\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// If the rowHeight prop is a function, the virtualized table doesn't always adjust its\n\t\t// row heights correctly when the table data has changed. So in this case we need\n\t\t// to recompute the row heights.\n\t\tif (typeof this.props.rowHeight === \"function\") {\n\t\t\tthis.recomputeRowHeights();\n\t\t}\n\t}\n\n\t// This is also triggered when clicking on a checkbox\n\tonRowClick(evt, rowData, index) {\n\t\tif (evt.target.className === \"bx--select-option\") {\n\t\t\tevt.stopPropagation(); // stop propagation when selecting dropdown select options within table rows\n\t\t} else {\n\t\t\t// Set selections\n\t\t\tconst selected = !this.isRowSelected(rowData.originalRowIndex);\n\t\t\tif (typeof this.props.setRowsSelected === \"function\") {\n\t\t\t\tthis.props.setRowsSelected({\n\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\"originalRowIndex\": rowData.originalRowIndex,\n\t\t\t\t\t\"selected\": selected,\n\t\t\t\t\t\"isOverSelectOption\": this.isOverSelectOption,\n\t\t\t\t\t\"selectMultipleRows\": evt.shiftKey ? evt.shiftKey : false,\n\t\t\t\t\t\"lastCheckedRow\": this.lastChecked === null ? 0 : this.lastChecked }, evt);\n\n\t\t\t\t// Track lastChecked row for shift key selection\n\t\t\t\tthis.lastChecked = rowData.index;\n\t\t\t}\n\t\t}\n\t}\n\n\tonRowDoubleClick(evt, rowKey, index) {\n\t\tif (this.props.onRowDoubleClick) {\n\t\t\tthis.props.onRowDoubleClick(evt, rowKey, index);\n\t\t}\n\t}\n\n\tgetCheckboxLabelColumnIndex(columns) {\n\t\t// If 1st column is Index, use the next column for labeling\n\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\tif (columns[i].operation !== \"index\") {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\t// Use first column by default\n\t\treturn 0;\n\t}\n\n\tgetColumnIndex(columns, key) {\n\t\tconst index = columns.findIndex((column) => column.key === key);\n\t\treturn index;\n\t}\n\n\t// Returns an object of deltas for every column - {columnKey: individualDelta}\n\tgetColumnWiseDeltas(columns, deltaX) {\n\t\tconst columnWiseDeltas = {};\n\t\tif (columns.length > 0) {\n\t\t\t// sort columns in ascending order of widths because smallest column will reach MINIMUM_COLUMN_WIDTH first\n\t\t\tcolumns.sort((a, b) => a.width - b.width);\n\t\t\tlet totalDelta = deltaX;\n\t\t\t// Finalize individualDelta for 1 column at a time starting from smallest column\n\t\t\t// If individualDelta is greater than maximum allowed delta for the column, set individualDelta = maximum allowed delta until column reaches MINIMUM_COLUMN_WIDTH\n\t\t\t// Total delta will reduce after every iteration\n\t\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\t\tconst widthOfAllColumns = columns.slice(i).reduce((prev, current) => prev + current.width, 0);\n\t\t\t\tlet individualDelta = Math.round((columns[i].width * totalDelta) / widthOfAllColumns);\n\t\t\t\t// check if individualDelta is greater than the maximum allowed delta for this column\n\t\t\t\tif (columns[i].headerLabel.length > 0 && columns[i].width - individualDelta < MINIMUM_COLUMN_WIDTH) {\n\t\t\t\t\tindividualDelta = columns[i].width - MINIMUM_COLUMN_WIDTH;\n\t\t\t\t} else if (columns[i].width - individualDelta < MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL) {\n\t\t\t\t\tindividualDelta = columns[i].width - MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL;\n\t\t\t\t}\n\t\t\t\ttotalDelta -= individualDelta;\n\t\t\t\tcolumnWiseDeltas[columns[i].key] = individualDelta;\n\t\t\t}\n\t\t\tif (totalDelta > 0) {\n\t\t\t\t// deltaX is greater than maximum allowed delta for all columns.\n\t\t\t\t// Don't allow resizing by setting individualDelta = 0 for ALL columns\n\t\t\t\treturn mapValues(columnWiseDeltas, () => 0);\n\t\t\t}\n\t\t}\n\t\treturn columnWiseDeltas;\n\t}\n\n\tisRowSelected(index) {\n\t\tif (this.props.rowsSelected) {\n\t\t\treturn this.props.rowsSelected.indexOf(index) > -1;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisLastColumn(dataKey) {\n\t\tconst columnIndex = this.getColumnIndex(this.props.columns, dataKey);\n\t\tconst isLastColumn = (columnIndex === (this.props.columns.length - 1));\n\t\treturn isLastColumn;\n\t}\n\n\tselectAll(selected) {\n\t\tthis.props.setAllRowsSelected(selected);\n\t}\n\n\t// Callback responsible for rendering a cell's contents.\n\tcellRenderer({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn cellData;\n\t}\n\n\tcellRendererHTML({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn (<div dangerouslySetInnerHTML={{ __html: cellData }} />);\n\t}\n\n\trecomputeRowHeights(index) {\n\t\tif (this.virtualizedTableRef && this.virtualizedTableRef.current) {\n\t\t\tthis.virtualizedTableRef.current.recomputeRowHeights(index);\n\t\t}\n\t}\n\n\t// Responsible for rendering the table header row given an array of columns.\n\theaderRowRenderer(scrollKey, { className, columns, style }) {\n\t\tconst checkboxLabelColumnIndex = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? 0 : this.getCheckboxLabelColumnIndex(this.props.columns);\n\t\tconst headerCheckboxLabel = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? \"\" : this.props.columns[checkboxLabelColumnIndex].headerLabel;\n\t\tconst translatedHeaderCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t{ id: \"virtualizedTable.header.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.header.checkbox.label\"] },\n\t\t\t{ header_checkbox_label: headerCheckboxLabel }\n\t\t);\n\t\tconst checkbox = this.props.selectable && this.props.rowSelection !== ROW_SELECTION.SINGLE\n\t\t\t? (<div role=\"checkbox\" aria-checked={this.props.checkedAll} className=\"properties-vt-header-checkbox\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tid={`properties-vt-hd-cb-${this.uuid}-${scrollKey}`}\n\t\t\t\t\tonChange={this.selectAll}\n\t\t\t\t\tchecked={this.props.checkedAll}\n\t\t\t\t\tlabelText={translatedHeaderCheckboxLabel}\n\t\t\t\t\thideLabel\n\t\t\t\t/>\n\t\t\t</div>)\n\t\t\t: \"\";\n\n\t\treturn (<div className={className} data-role=\"properties-header-row\" role=\"row\" style={style}>\n\t\t\t{checkbox}\n\t\t\t{columns}\n\t\t</div>);\n\t}\n\n\theaderColRenderer({ columnData, dataKey, disableSort, label, sortBy, sortDirection }) {\n\t\tlet sortIcon = null;\n\t\tif (typeof this.props.sortColumns[dataKey] !== \"undefined\") {\n\t\t\tlet type = null;\n\t\t\tswitch (this.props.sortColumns[dataKey]) {\n\t\t\tcase SORT_DIRECTION.ASC:\n\t\t\t\ttype = <ArrowUp16 disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t\tbreak;\n\t\t\tcase SORT_DIRECTION.DESC:\n\t\t\t\ttype = <ArrowDown16 disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\ttype = <ArrowsVertical16 disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t}\n\t\t\tsortIcon = (<span className=\"properties-ft-column-sort-icon\">\n\t\t\t\t{type}\n\t\t\t</span>);\n\t\t}\n\n\t\tconst infoIcon = isEmpty(columnData.description)\n\t\t\t? null\n\t\t\t: (<div className=\"properties-vt-info-icon-tip\">\n\t\t\t\t<Tooltip\n\t\t\t\t\tid=\"properties-tooltip-info\"\n\t\t\t\t\ttip={columnData.description}\n\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t\tshowToolTipOnClick\n\t\t\t\t>\n\t\t\t\t\t<Information16 className=\"properties-vt-info-icon\" />\n\t\t\t\t</Tooltip>\n\t\t\t</div>);\n\n\t\tconst resizeElem = columnData.resizable && !this.isLastColumn(dataKey)\n\t\t\t? (<Draggable\n\t\t\t\taxis=\"x\"\n\t\t\t\tdefaultClassName=\"properties-vt-header-resize\"\n\t\t\t\tdefaultClassNameDragging=\"properties-vt-header-resize-active\"\n\t\t\t\tonDrag={\n\t\t\t\t\t(evt, { deltaX }) => {\n\t\t\t\t\t\tthis.resizeColumn({ dataKey, deltaX });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tposition={{ x: 0 }}\n\t\t\t\tzIndex={999}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\trole=\"button\" tabIndex=\"0\"\n\t\t\t\t\taria-label=\"Resize column\"\n\t\t\t\t/>\n\t\t\t</Draggable>)\n\t\t\t: \"\";\n\t\tconst headerDisplayLabel = typeof label === \"string\" ? (<span>{label}</span>) : label;\n\t\tconst header = (<div className=\"properties-vt-label-tip-icon\">\n\t\t\t<TruncatedContentTooltip\n\t\t\t\ttooltipText={columnData.headerLabel}\n\t\t\t\tcontent={headerDisplayLabel}\n\t\t\t\tdisabled={columnData.disabled}\n\t\t\t/>\n\t\t\t{infoIcon}\n\t\t</div>);\n\t\treturn (\n\t\t\t<div data-id={`properties-vt-header-${dataKey}`}\n\t\t\t\tclassName={classNames({ \"properties-vt-column-with-resize\": resizeElem !== \"\", \"properties-vt-column-without-resize\": resizeElem === \"\" })}\n\t\t\t>\n\t\t\t\t<div className={classNames(\"properties-vt-column properties-tooltips-container\", { \"sort-column-active\": dataKey === this.props.sortBy })}>\n\t\t\t\t\t{header}\n\t\t\t\t\t{disableSort === false && sortIcon}\n\t\t\t\t</div>\n\t\t\t\t{ resizeElem }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/* Columns are not resizable by default. Host application specifies resizable columns in parameter definition.\n\t* When a column is resized, width of ALL the columns to the right of resized column is adjusted.\n\t* Every column grows/shrinks directly proportional to column width.\n\t* Example: If a column width is reduced by 10px and there are 4 columns on the right of resized column having widths [40, 30, 20, 10],\n\t* Then 10px will be adjusted in 4 columns as - [4px, 3px, 2px, 1px]\n\t* When every column's width reaches MINIMUM_COLUMN_WIDTH (56px), resizing is stopped.\n\t* Special case - For columns without labels, when their width reaches MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL (32px), resizing is stopped.\n\t*/\n\tresizeColumn({ dataKey, deltaX }) {\n\t\tthis.setState((prevState) => {\n\n\t\t\tconst columns = prevState.columns;\n\t\t\t// Calculate number of resizable columns on the right of resized column\n\t\t\tconst resizedColumnIndex = this.getColumnIndex(columns, dataKey);\n\t\t\tconst allColumnsOnRight = columns.slice(resizedColumnIndex + 1);\n\t\t\t// Exclude columns having staticWidth: true\n\t\t\tconst nonStaticColumns = allColumnsOnRight.filter((column) => !column.staticWidth);\n\n\t\t\tconst resizableColumns = nonStaticColumns.filter((column) => {\n\t\t\t\t// When shrinking, get columns having width greater than MINIMUM_COLUMN_WIDTH\n\t\t\t\tif (deltaX >= 0) {\n\t\t\t\t\tif (column.headerLabel.length > 0) {\n\t\t\t\t\t\t// Column with label has min width 56px\n\t\t\t\t\t\treturn (column.width > MINIMUM_COLUMN_WIDTH);\n\t\t\t\t\t}\n\t\t\t\t\t// Column without label has min width 32px\n\t\t\t\t\treturn (column.width > MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL);\n\t\t\t\t}\n\t\t\t\t// When expanding, get all columns\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\t// Get column wise delta for resizableColumns\n\t\t\tconst columnWiseDeltas = this.getColumnWiseDeltas(resizableColumns, deltaX);\n\t\t\tconst columnsToBeResized = Object.keys(columnWiseDeltas);\n\n\t\t\t// check if all column wise deltas are 0. This happens when deltaX is more than maximum allowed delta for all columns\n\t\t\tconst everyColumnHasZeroDelta = Object.values(columnWiseDeltas).every((delta) => delta === 0);\n\n\t\t\tif ((columns[resizedColumnIndex].width + deltaX) > MINIMUM_COLUMN_WIDTH && !isEmpty(columnWiseDeltas) && !everyColumnHasZeroDelta) {\n\t\t\t\tcolumns[resizedColumnIndex].width += deltaX;\n\t\t\t\t// Adjust width of all resizable columns\n\t\t\t\tcolumnsToBeResized.forEach((columnKey) => {\n\t\t\t\t\tconst idx = columns.findIndex((col) => col.key === columnKey);\n\t\t\t\t\tcolumns[idx].width -= columnWiseDeltas[columnKey];\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcolumnResized: true,\n\t\t\t\tcolumns: columns\n\t\t\t};\n\t\t});\n\t}\n\n\toverSelectOption(evt) {\n\t\t// Differentiate between mouse and keyboard event\n\t\tif (evt.type === \"mouseenter\" && !this.keyBoardEventCalled) {\n\t\t\tthis.mouseEventCalled = true;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"mouseleave\" && this.mouseEventCalled) {\n\t\t\tthis.mouseEventCalled = false;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"focus\" && !this.mouseEventCalled) {\n\t\t\tthis.keyBoardEventCalled = true;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"blur\" && this.keyBoardEventCalled) {\n\t\t\tthis.keyBoardEventCalled = false;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t}\n\t}\n\n\t// Responsible for rendering a table row given an array of columns.\n\trowRenderer(scrollKey, { className, columns, index, key, rowData, style }) {\n\t\tlet selectOption = \"\";\n\t\tlet selectedRow = false;\n\t\tconst rowDisabled = typeof rowData.disabled === \"boolean\" ? rowData.disabled : false;\n\n\t\tif (typeof this.props.rowHeight === \"function\" && this.props.rowHeight({ index }) === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.props.selectable) {\n\t\t\tconst rowSelected = this.isRowSelected(rowData.originalRowIndex);\n\t\t\tselectedRow = this.props.selectable && rowSelected;\n\t\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\t\tconst translatedRowCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t\t\t{ id: \"virtualizedTable.row.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.row.checkbox.label\"] },\n\t\t\t\t\t{ row_index: index + 1, table_label: (this.props.tableLabel ? this.props.tableLabel : \"\") }\n\t\t\t\t);\n\n\t\t\t\tselectOption = (<div className=\"properties-vt-row-checkbox\"\n\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\tonMouseEnter={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonMouseLeave={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonFocus={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonBlur={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonKeyDown={(evt) => {\n\t\t\t\t\t\tif (evt.code === \"Space\" || evt.code === \"Enter\") {\n\t\t\t\t\t\t\tthis.onRowClick(evt, rowData, index);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tid={`properties-vt-row-cb-${this.uuid}-${scrollKey}-${index}`}\n\t\t\t\t\t\tkey={`properties-vt-row-cb-${scrollKey}-${index}`}\n\t\t\t\t\t\tlabelText={translatedRowCheckboxLabel}\n\t\t\t\t\t\thideLabel\n\t\t\t\t\t\tchecked={rowSelected}\n\t\t\t\t\t\tdisabled={rowDisabled}\n\t\t\t\t\t/>\n\t\t\t\t</div>);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.summaryTable) {\n\t\t\tselectOption = <div className=\"properties-vt-row-checkbox\" />;\n\t\t}\n\n\t\tif (rowData.loading === true) {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tkey={key}\n\t\t\t\t\tdata-role=\"properties-loading-row\"\n\t\t\t\t\trole=\"row\"\n\t\t\t\t\tstyle={style}\n\t\t\t\t>\n\t\t\t\t\t<Loading className=\"properties-vt-small-loading\" small withOverlay={false} />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst width = (parseInt(style.width, 10)) + \"px\"; // Subtract 2px to account for row borders\n\t\tconst newStyle = Object.assign({}, style, { width: width });\n\n\t\t// Empty style required on cell for react-virtualized. This div wrapper is required to apply the onDoubleClick handler.\n\t\treturn (<div style={{}} key={key} className=\"properties-vt-double-click\" onDoubleClick={(evt) => this.onRowDoubleClick(evt, rowData.rowKey, index)}>\n\t\t\t<div\n\t\t\t\tclassName={classNames(className,\n\t\t\t\t\t{ \"properties-vt-row-selected\": selectedRow },\n\t\t\t\t\t{ \"properties-vt-row-disabled\": rowDisabled },\n\t\t\t\t\t{ \"properties-vt-row-non-interactive\": !this.props.selectable } // ReadonlyTable with single row selection is non-interactive.\n\t\t\t\t)}\n\t\t\t\tdata-role=\"properties-data-row\"\n\t\t\t\trole=\"row\"\n\t\t\t\tstyle={newStyle}\n\t\t\t\tonMouseDown={(evt) => this.onRowClick(evt, rowData, index)}\n\t\t\t>\n\t\t\t\t{selectOption}\n\t\t\t\t{columns}\n\t\t\t</div>\n\t\t</div>);\n\t}\n\n\trender() {\n\t\tconst defaultTestHeight = 2000; // 2000 is set to accommodate test data \"category-selection-data\" with all categories expanded\n\n\t\treturn (\n\t\t\t<div className=\"properties-vt\">\n\t\t\t\t<div className={classNames(\"properties-vt-autosizer\",\n\t\t\t\t\t{ \"properties-vt-single-selection\": this.props.rowSelection && this.props.rowSelection === ROW_SELECTION.SINGLE,\n\t\t\t\t\t\t\"properties-light-disabled\": !this.props.light })}\n\t\t\t\t>\n\t\t\t\t\t<AutoSizer>\n\t\t\t\t\t\t{({ height, width }) => ( // Table height: subtract 50 for margin below the table.\n\t\t\t\t\t\t\t<Table\n\t\t\t\t\t\t\t\tref={this.virtualizedTableRef}\n\t\t\t\t\t\t\t\twidth={width ? width : 500}\n\t\t\t\t\t\t\t\t// AutoSizer manages width and height properties so the table fills the available space.\n\t\t\t\t\t\t\t\t// It does a direct DOM manipulation to the parent, outside React's VirtualDOM.\n\t\t\t\t\t\t\t\t// Since the actual DOM is not available when unit testing, we are passing in a default\n\t\t\t\t\t\t\t\t// width of 500 and a default height of 300.\n\t\t\t\t\t\t\t\theight={this.props.tableHeight || height || defaultTestHeight}\n\n\t\t\t\t\t\t\t\tclassName=\"properties-autosized-vt\"\n\t\t\t\t\t\t\t\taria-label={this.props.tableLabel ? this.props.tableLabel : \"\"}\n\n\t\t\t\t\t\t\t\tdisableHeader={this.props.disableHeader}\n\t\t\t\t\t\t\t\theaderClassName=\"properties-autosized-vt-header\"\n\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\theaderRowRenderer={this.headerRowRenderer.bind(this, this.props.scrollKey)}\n\t\t\t\t\t\t\t\tonHeaderClick={this.props.onHeaderClick}\n\n\t\t\t\t\t\t\t\trowClassName=\"properties-vt-row-class\"\n\t\t\t\t\t\t\t\trowHeight={this.props.rowHeight ? this.props.rowHeight : 32}\n\n\t\t\t\t\t\t\t\trowCount={this.state.rowCount}\n\t\t\t\t\t\t\t\trowGetter={this.props.rowGetter}\n\t\t\t\t\t\t\t\trowRenderer={this.rowRenderer.bind(this, this.props.scrollKey)}\n\n\t\t\t\t\t\t\t\tscrollToIndex={this.props.scrollToIndex}\n\t\t\t\t\t\t\t\tscrollToAlignment={this.props.scrollToAlignment}\n\n\t\t\t\t\t\t\t\tsort={this.props.onSort}\n\t\t\t\t\t\t\t\tsortDirection={this.props.sortDirection}\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.state.columns.map((column) => (\n\t\t\t\t\t\t\t\t\t\t<Column\n\t\t\t\t\t\t\t\t\t\t\tkey={column.key}\n\t\t\t\t\t\t\t\t\t\t\tlabel={column.label}\n\t\t\t\t\t\t\t\t\t\t\tdataKey={column.key}\n\t\t\t\t\t\t\t\t\t\t\twidth={column.width}\n\t\t\t\t\t\t\t\t\t\t\tcolumnData={column}\n\t\t\t\t\t\t\t\t\t\t\tdisableSort={typeof this.props.sortColumns[column.key] === \"undefined\"}\n\t\t\t\t\t\t\t\t\t\t\tcellRenderer={column.isHTML ? this.cellRendererHTML : this.cellRenderer}\n\t\t\t\t\t\t\t\t\t\t\theaderRenderer={this.headerColRenderer}\n\t\t\t\t\t\t\t\t\t\t\t{...column.minWidth && { minWidth: column.minWidth }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Table>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</AutoSizer>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nVirtualizedTable.defaultProps = {\n\tdisableHeader: false\n};\n\nVirtualizedTable.propTypes = {\n\ttableLabel: PropTypes.string,\n\ttableHeight: PropTypes.number.isRequired,\n\tselectable: PropTypes.bool,\n\tsummaryTable: PropTypes.bool,\n\trowSelection: PropTypes.string,\n\tdisableHeader: PropTypes.bool,\n\tcolumns: PropTypes.array.isRequired,\n\trowCount: PropTypes.number.isRequired,\n\trowGetter: PropTypes.func.isRequired,\n\trowHeight: PropTypes.oneOfType([\n\t\tPropTypes.func.isRequired,\n\t\tPropTypes.number.isRequired\n\t]),\n\tonRowDoubleClick: PropTypes.func,\n\trowsSelected: PropTypes.array, // Required if selectable is true\n\tcheckedAll: PropTypes.bool, // Required if selectable is true\n\tsetRowsSelected: PropTypes.func, // Required if selectable is true\n\tsetAllRowsSelected: PropTypes.func, // Required if selectable is true\n\tscrollToIndex: PropTypes.number,\n\tscrollToAlignment: PropTypes.string,\n\tonSort: PropTypes.func,\n\tsortBy: PropTypes.string,\n\tsortColumns: PropTypes.object,\n\tsortDirection: PropTypes.string,\n\tonHeaderClick: PropTypes.func,\n\tscrollKey: PropTypes.string,\n\ttableState: PropTypes.string,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired\n};\n\nexport default injectIntl(VirtualizedTable);\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 complexity: [\"error\", 25] */\n/* eslint max-depth: [\"error\", 6] */\n\nimport React from \"react\";\nimport { injectIntl } from \"react-intl\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\nimport { Search } from \"carbon-components-react\";\nimport VirtualizedTable from \"./../virtualized-table/virtualized-table.jsx\";\nimport { REM_ROW_HEIGHT, REM_HEADER_HEIGHT, ONE_REM_HEIGHT, SORT_DIRECTION, STATES, ROW_HEIGHT, ROW_SELECTION } from \"./../../constants/constants\";\nimport ReactResizeDetector from \"react-resize-detector\";\nimport classNames from \"classnames\";\nimport { has, isEmpty } from \"lodash\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nclass FlexibleTable extends React.Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst sortDirs = {};\n\t\tif (typeof this.props.sortable !== \"undefined\") {\n\t\t\tfor (var i = 0; i < this.props.sortable.length; i++) {\n\t\t\t\tconst sortCol = this.props.sortable[i];\n\t\t\t\tsortDirs[sortCol] = SORT_DIRECTION.NOT_SORTED;\n\t\t\t}\n\t\t}\n\t\tthis.state = {\n\t\t\tcheckedAllRows: false,\n\t\t\tcolumnSortDir: sortDirs,\n\t\t\tcurrentSortColumn: \"\",\n\t\t\ttableWidth: 0,\n\t\t\ttableHeight: 0,\n\t\t\trows: typeof props.rows !== \"undefined\" ? props.rows : 5.5,\n\t\t\tdynamicHeight: null\n\t\t};\n\n\t\tthis.rowHeight = this.rowHeight.bind(this);\n\t\tthis.rowGetter = this.rowGetter.bind(this);\n\n\t\tthis.getOriginalRowIndex = this.getOriginalRowIndex.bind(this);\n\t\tthis.getLastChildPropertyIdRow = this.getLastChildPropertyIdRow.bind(this);\n\n\t\tthis.calculateColumnWidths = this.calculateColumnWidths.bind(this);\n\t\tthis.handleFilterChange = this.handleFilterChange.bind(this);\n\t\tthis.onSort = this.onSort.bind(this);\n\t\tthis.sortHeaderClick = this.sortHeaderClick.bind(this);\n\t\tthis._updateTableWidth = this._updateTableWidth.bind(this);\n\t\tthis._adjustTableHeight = this._adjustTableHeight.bind(this);\n\t\tthis.handleCheckedRow = this.handleCheckedRow.bind(this);\n\t\tthis.handleCheckedAllRows = this.handleCheckedAllRows.bind(this);\n\t\tthis.handleCheckedMultipleRows = this.handleCheckedMultipleRows.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._adjustTableHeight();\n\t\twindow.addEventListener(\"resize\", this._adjustTableHeight);\n\t\tthis.tableNode = ReactDOM.findDOMNode(this.refs.table);\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (prevProps.rows !== this.props.rows ||\n\t\t\tprevProps.columns !== this.props.columns ||\n\t\t\tprevProps.noAutoSize !== this.props.noAutoSize) {\n\t\t\tthis._adjustTableHeight();\n\t\t}\n\n\t\t// Calculate if checkedAllRows is true\n\t\tif (this.props.selectedRows && !isEmpty(this.props.data)) {\n\t\t\tthis.setCheckedAll(this.props.selectedRows);\n\t\t}\n\n\t\tthis.tableNode = ReactDOM.findDOMNode(this.refs.table);\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"resize\", this._adjustTableHeight);\n\t}\n\n\tonSort({ sortBy }) {\n\t\tif (this.props.onSort) {\n\t\t\tconst sortDirection = (this.state.columnSortDir[sortBy] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tconst spec = {\n\t\t\t\tcolumn: sortBy,\n\t\t\t\tdirection: sortDirection\n\t\t\t};\n\t\t\tthis.props.onSort(spec);\n\t\t}\n\t}\n\n\t/**\n\t* The current displayed row may have an index that is different from its actual index within the dataset\n\t* Given the current displayed row and index of the table,\n\t* return its original row index from its row's propertyId\n\t*/\n\tgetOriginalRowIndex(row, index) {\n\t\tlet rowIndex = index;\n\t\tif (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.propertyId\")) {\n\t\t\t// this is a nested control\n\t\t\trowIndex = this.getLastChildPropertyIdRow(row.columns[0].content.props.children.props.propertyId, index);\n\t\t} else if (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.index\")) {\n\t\t\t// for rows that have multi-select controls in them\n\t\t\trowIndex = row.columns[0].content.props.children.props.propertyId.index;\n\t\t} else if (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.row\")) {\n\t\t\trowIndex = row.columns[0].content.props.children.props.propertyId.row;\n\t\t} else if (typeof row.rowKey === \"number\") { // expression tables uses rowKey\n\t\t\trowIndex = parseInt(row.rowKey, 10);\n\t\t}\n\t\treturn rowIndex;\n\t}\n\n\t// Get the 'row' of the last child's propertyId\n\tgetLastChildPropertyIdRow(propertyId, defaultRowIndex) {\n\t\tif (typeof propertyId.propertyId !== \"undefined\") {\n\t\t\treturn this.getLastChildPropertyIdRow(propertyId.propertyId);\n\t\t}\n\t\tif (typeof propertyId.row !== \"undefined\") {\n\t\t\treturn propertyId.row;\n\t\t}\n\t\treturn defaultRowIndex;\n\t}\n\n\t/**\n\t* The header checkAll box may change depending on the current visible rows\n\t* Determine if all visible rows in the table are currently selected\n\t* and set the `checkedAllRows` state accordingly\n\t*/\n\tsetCheckedAll(selectedRows) {\n\t\tlet checkAll = true;\n\t\tfor (let idx = 0; idx < this.props.data.length; idx++) {\n\t\t\tconst row = this.props.data[idx];\n\t\t\tconst originalRowIndex = this.getOriginalRowIndex(row, idx);\n\t\t\tif (selectedRows.indexOf(originalRowIndex) < 0) {\n\t\t\t\tcheckAll = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.state.checkedAllRows !== checkAll) {\n\t\t\tthis.setState({ checkedAllRows: checkAll });\n\t\t}\n\t}\n\n\t/**\n\t* Calculate the width for each column to fit within the table\n\t* Widths provided in columns without 'px' are 'weighted' and will be scaled\n\t* Widths provided in columns with 'px' are used as is without scaling\n\t* if width is provided with 'px', subtract that from the total available table width\n\t* if width is provided, divide the column 'weighted' width with the max width from columns\n\t* return the scaled factor\n\t* multiply each column 'weighted' width with the scaled factor to get the actual width in pixels\n\t* @param columns column definitions\n\t* @param parentTableWidth\n\t*/\n\tcalculateColumnWidths(columns, parentTableWidth) {\n\t\tlet tableWidth = parentTableWidth - 12; // subtract 12 for the left padding scss $spacing-04\n\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\ttableWidth -= 40;\n\t\t}\n\t\tlet remainingColumns = columns.length; // keep track of how many columns to calculate width for\n\t\tlet maxWeight = 0;\n\n\t\tfor (const columnDef of columns) {\n\t\t\t// if columns have specific width subtract from total width\n\t\t\tif (columnDef.width) {\n\t\t\t\tif (typeof columnDef.width === \"string\" && columnDef.width.includes(\"px\")) {\n\t\t\t\t\ttableWidth -= parseInt(columnDef.width, 10);\n\t\t\t\t\tremainingColumns--;\n\t\t\t\t} else {\n\t\t\t\t\tmaxWeight = Math.max(maxWeight, columnDef.width); // keep track of which column has highest width provided\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst widths = [];\n\t\tconst defaultWidth = Math.floor(tableWidth / remainingColumns); // use default width for columns without a weight\n\t\tconst weightedWidths = [];\n\t\tlet sumWeightedWidths = 0;\n\n\t\t// scale weight of columns with width provided\n\t\tfor (const columnDef of columns) {\n\t\t\tif (columnDef.width && !isNaN(columnDef.width)) {\n\t\t\t\tweightedWidths.push(columnDef.width / maxWeight);\n\t\t\t\tsumWeightedWidths += (columnDef.width / maxWeight);\n\t\t\t} else {\n\t\t\t\tweightedWidths.push(null);\n\t\t\t}\n\t\t}\n\n\t\tconst scaledWidth = tableWidth / sumWeightedWidths; // scaled width multiplier for each column with width provided\n\n\t\tlet sumColumnWidth = 0;\n\t\tfor (let idx = 0; idx < columns.length; idx++) {\n\t\t\tconst columnDef = columns[idx];\n\t\t\tif (columnDef.width) {\n\t\t\t\t// use the width provided with 'px' as is\n\t\t\t\tif (typeof columnDef.width === \"string\" && columnDef.width.includes(\"px\")) {\n\t\t\t\t\twidths.push(Math.floor(parseInt(columnDef.width, 10)) + \"px\");\n\t\t\t\t\tsumColumnWidth += parseInt(columnDef.width, 10);\n\t\t\t\t} else { // multiply the width provided by the scaled width\n\t\t\t\t\tconst calculatedWidth = Math.floor(weightedWidths[idx] * scaledWidth);\n\t\t\t\t\twidths.push(calculatedWidth + \"px\");\n\t\t\t\t\tsumColumnWidth += calculatedWidth;\n\t\t\t\t}\n\t\t\t} else { // if no width provided, use the defaultWidth\n\t\t\t\twidths.push(defaultWidth);\n\t\t\t\tsumColumnWidth += defaultWidth;\n\t\t\t}\n\t\t}\n\n\t\t// if any columns had decimals floored, allocate additional space to the first column\n\t\tlet compare = parentTableWidth;\n\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\tcompare -= 40;\n\t\t}\n\n\t\tif (sumColumnWidth < compare) {\n\t\t\tconst firstColWith = parseInt(widths[0], 10);\n\t\t\twidths[0] = firstColWith + compare - sumColumnWidth + \"px\";\n\t\t}\n\n\t\treturn widths;\n\t}\n\n\t_updateTableWidth(width, height) {\n\t\tif (this.state.tableWidth !== Math.floor(width - 2)) {\n\t\t\tthis.setState({\n\t\t\t\ttableWidth: Math.floor(width - 2) // subtract 2 px for the borders\n\t\t\t});\n\t\t}\n\t}\n\n\t_adjustTableHeight() {\n\t\tif (this.props.noAutoSize) {\n\t\t\treturn;\n\t\t}\n\t\tlet newHeight = this.state.tableHeight;\n\t\tlet dynamicH = this.state.dynamicHeight;\n\t\tconst multiSelectTableHeight = REM_ROW_HEIGHT + REM_HEADER_HEIGHT;\n\t\tif (Array.isArray(this.props.data) && this.props.data.length < this.state.rows) {\n\t\t\tnewHeight = (REM_ROW_HEIGHT * this.props.data.length + REM_HEADER_HEIGHT + (this.props.selectedEditRow ? multiSelectTableHeight : 0)) + \"rem\";\n\t\t} else if (this.state.rows > 0) {\n\t\t\tnewHeight = (REM_ROW_HEIGHT * this.state.rows + REM_HEADER_HEIGHT + (this.props.selectedEditRow ? multiSelectTableHeight : 0)) + \"rem\";\n\t\t} else if (this.state.rows === 0) { // only display header\n\t\t\tnewHeight = REM_HEADER_HEIGHT + \"rem\";\n\t\t} else if (this.state.rows === -1) {\n\t\t\tif (this.flexibleTable) {\n\t\t\t\tconst labelAndDescriptionHeight = 50; // possible dynamically set this in the future\n\t\t\t\tconst ftHeaderHeight = (typeof this.flexibleTableHeader !== \"undefined\") ? ReactDOM.findDOMNode(this.flexibleTableHeader).getBoundingClientRect().height : 0;\n\t\t\t\tconst flyoutHeight = this.findPropertyNodeHeight(this.flexibleTable, \"properties-wf-children\");\n\t\t\t\tconst tearsheetHeight = this.findPropertyNodeHeight(this.flexibleTable, \"properties-primary-tab-panel\");\n\t\t\t\tif (flyoutHeight === 0 && tearsheetHeight === 0) {\n\t\t\t\t\tnewHeight = \"100vh\"; // set full window height if flyout & tearsheet height not found\n\t\t\t\t\tdynamicH = -1;\n\t\t\t\t} else {\n\t\t\t\t\tconst totalHeight = flyoutHeight !== 0 ? flyoutHeight : tearsheetHeight;\n\t\t\t\t\tnewHeight = `calc(${totalHeight - ftHeaderHeight - labelAndDescriptionHeight}px - 3.5rem)`; // 3.5rem to adjust padding\n\t\t\t\t\tdynamicH = (totalHeight - ftHeaderHeight - labelAndDescriptionHeight) - (3.5 * 16);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (newHeight !== this.state.tableHeight) {\n\t\t\tthis.setState({ tableHeight: newHeight, dynamicHeight: dynamicH });\n\t\t}\n\t}\n\n\tfindPropertyNodeHeight(node, className) {\n\t\tif (node && node.parentNode && node.parentNode.className && node.parentNode.className.includes(className)) {\n\t\t\tconst foundNode = ReactDOM.findDOMNode(node.parentNode).getBoundingClientRect();\n\t\t\tif (foundNode) {\n\t\t\t\treturn foundNode.height;\n\t\t\t}\n\t\t\treturn 0;\n\t\t} else if (node && node.parentNode) {\n\t\t\treturn this.findPropertyNodeHeight(node.parentNode, className);\n\t\t}\n\t\treturn 0;\n\t}\n\n\tsortHeaderClick({ dataKey }) {\n\t\tconst colSortDir = this.state.columnSortDir;\n\t\tif (typeof colSortDir[dataKey] !== \"undefined\") {\n\t\t\t// At a time only 1 column will be shown as sorted. Revert other columns to not sorted.\n\t\t\tObject.keys(colSortDir).forEach((key) => {\n\t\t\t\tif (key !== dataKey) {\n\t\t\t\t\tcolSortDir[key] = SORT_DIRECTION.NOT_SORTED;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// Only dataKey column will be sorted\n\t\t\tcolSortDir[dataKey] = (colSortDir[dataKey] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tthis.setState({\n\t\t\t\tcolumnSortDir: colSortDir,\n\t\t\t\tcurrentSortColumn: dataKey\n\t\t\t});\n\t\t}\n\t}\n\n\thandleFilterChange(evt) {\n\t\tif (this.props.onFilter) {\n\t\t\tthis.props.onFilter(evt.target.value);\n\t\t}\n\t}\n\n\thandleCheckedAllRows(checked) {\n\t\tlet selectAll = [];\n\t\tconst controlValue = this.props.data;\n\t\tif (checked) {\n\t\t\tselectAll = Array.from(this.props.selectedRows);\n\t\t\tfor (var rowIndex = 0; rowIndex < controlValue.length; rowIndex++) {\n\t\t\t\tconst originalRowIndex = this.getOriginalRowIndex(controlValue[rowIndex], rowIndex);\n\t\t\t\tselectAll.push(originalRowIndex);\n\t\t\t}\n\t\t}\n\t\tselectAll = Array.from(new Set(selectAll));\n\t\tthis.props.updateRowSelections(selectAll);\n\t\tthis.setState({ checkedAllRows: checked });\n\t}\n\n\t/**\n\t* This method is called when user wants to select multiple rows using shift key\n\t* Select/deselect all rows between lastCheckedRow and existingRow\n\t* @param lastCheckedRow (integer) - index of last selected row\n\t* @param existingRow (integer) - index of row where shift key is clicked\n\t* @param checked (boolean) - rows are to be selected or deselected\n\t*/\n\thandleCheckedMultipleRows(lastCheckedRow, existingRow, checked) {\n\t\tlet selectedRows = this.props.selectedRows ? this.props.selectedRows : [];\n\t\t// Calculate rows between lastChecked row and existingRow\n\t\tlet inBetweenRows;\n\t\tif (lastCheckedRow < existingRow) {\n\t\t\tinBetweenRows = Array.from({ length: (existingRow - lastCheckedRow) + 1 }, (_, i) => lastCheckedRow + i);\n\t\t} else {\n\t\t\tinBetweenRows = Array.from({ length: (lastCheckedRow - existingRow) + 1 }, (_, i) => existingRow + i);\n\t\t}\n\t\t// if selectedRows already has inBetweenRows, remove them first\n\t\tselectedRows = selectedRows.filter((row) => !inBetweenRows.includes(row)); // Deselecting inBetweenRows using shift key\n\t\tif (checked) {\n\t\t\tselectedRows = selectedRows.concat(inBetweenRows); \t// Selecting inBetweenRows using shift key\n\t\t}\n\t\treturn selectedRows;\n\t}\n\n\thandleCheckedRow(data, evt) {\n\t\tconst dataRowIndex = data.originalRowIndex; // Use the originalRowIndex for selection in case rows are filtered.\n\t\tconst displayedRowIndex = data.index;\n\t\tconst checked = data.selected;\n\t\tconst overSelectOption = data.isOverSelectOption;\n\n\t\tif (!this.props.data[displayedRowIndex].disabled && typeof this.props.updateRowSelections === \"function\") {\n\t\t\tif (overSelectOption) { // Checkbox is clicked\n\t\t\t\tlet current = this.props.selectedRows ? this.props.selectedRows : [];\n\t\t\t\tif (data.selectMultipleRows) { // multiple rows selected/deselected using shift key\n\t\t\t\t\tcurrent = this.handleCheckedMultipleRows(data.lastCheckedRow, displayedRowIndex, checked);\n\t\t\t\t\tthis.setCheckedAll(current);\n\t\t\t\t} else if (checked) { // single row selected\n\t\t\t\t\tcurrent = current.concat(dataRowIndex);\n\t\t\t\t\tthis.setCheckedAll(current);\n\t\t\t\t} else if (current) { // single row deselected\n\t\t\t\t\tcurrent = current.filter(function(element) {\n\t\t\t\t\t\treturn element !== dataRowIndex;\n\t\t\t\t\t});\n\t\t\t\t\tthis.setState({ checkedAllRows: false });\n\t\t\t\t}\n\t\t\t\t// Sort ascending because we want to add selected rows in the same order as they're displayed in the table\n\t\t\t\tcurrent.sort((a, b) => a - b);\n\t\t\t\tthis.props.updateRowSelections(current);\n\t\t\t} else if (this.props.rowSelection === ROW_SELECTION.SINGLE) { // Table row is clicked\n\t\t\t\tthis.props.updateRowSelections(data.index, evt, this.props.data[data.index].rowKey);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t* Generate the table header specs from this.props.columns\n\t* this.props.columns: array of objects\n\t* [\n\t* {\n\t* \"key\": string,\n\t* \"label\": string,\n\t* \"width\": integer or string if containts 'px',\n\t* \"description\": optional string,\n\t* \"resizable\": optional boolean,\n\t* \"staticWidth\": optional boolean - This is a special property added only for SPSS modeler which directly calls FlexibleTable. This property is NOT a part of uiHints.\n\t* }\n\t* ]\n\t* @param columnWidths\n\t*/\n\tgenerateTableHeaderRow(columnWidths) {\n\t\tconst headers = [];\n\t\tlet searchLabel = \"\";\n\t\tfor (var j = 0; j < this.props.columns.length; j++) {\n\t\t\tconst columnDef = this.props.columns[j];\n\t\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable[0] === columnDef.key) {\n\t\t\t\tsearchLabel = columnDef.label;\n\t\t\t}\n\t\t\tconst width = Math.abs(parseInt(columnWidths[j], 10));\n\t\t\tlet headerLabel;\n\t\t\tif (typeof (columnDef.label) === \"object\") {\n\t\t\t\theaderLabel = columnDef.label.props.labelText;\n\t\t\t} else if (typeof (columnDef.label) === \"string\") {\n\t\t\t\theaderLabel = columnDef.label;\n\t\t\t}\n\t\t\theaders.push({\n\t\t\t\tkey: columnDef.key,\n\t\t\t\tlabel: columnDef.label,\n\t\t\t\twidth: width,\n\t\t\t\tdescription: columnDef.description,\n\t\t\t\theaderLabel: headerLabel,\n\t\t\t\tresizable: columnDef.resizable,\n\t\t\t\toperation: columnDef.operation,\n\t\t\t\tstaticWidth: columnDef.staticWidth ? columnDef.staticWidth : false // Used to exclude a column from resizing. If true, \"resizable\" value will be ignored.\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\theaders: headers,\n\t\t\tsearchLabel: searchLabel\n\t\t};\n\t}\n\n\t/**\n\t* Callback responsible for returning a data row given an index\n\t*/\n\trowGetter({ index }) {\n\t\tconst row = this.props.data[index];\n\t\tconst originalRowIndex = this.getOriginalRowIndex(row, index);\n\n\t\tconst columns = {};\n\t\tif (row.columns) {\n\t\t\tfor (let cidx = 0; cidx < row.columns.length; cidx++) {\n\t\t\t\tconst column = row.columns[cidx];\n\t\t\t\tcolumns[column.column] = column.content;\n\t\t\t}\n\t\t}\n\t\treturn Object.assign({}, columns, {\n\t\t\tloading: false,\n\t\t\tindex: index,\n\t\t\toriginalRowIndex: originalRowIndex,\n\t\t\trowKey: typeof row.rowKey !== \"undefined\" ? row.rowKey : this.props.scrollKey + \"-row-\" + index,\n\t\t\tdisabled: row.disabled\n\t\t});\n\t}\n\n\t// Function that returns the height of a row given its index\n\trowHeight({ index }) {\n\t\treturn ROW_HEIGHT;\n\t}\n\n\trender() {\n\t\tconst tableWidth = this.state.tableWidth;\n\t\tconst columnWidths = this.calculateColumnWidths(this.props.columns, tableWidth);\n\t\tconst headerInfo = this.generateTableHeaderRow(columnWidths);\n\n\t\tconst headers = headerInfo.headers;\n\t\tconst searchLabel = headerInfo.searchLabel;\n\t\tconst disabled = this.props.tableState === STATES.DISABLED;\n\n\t\tlet searchBar = null;\n\n\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable.length !== 0) {\n\t\t\tconst placeHolder = typeof this.props.searchPlaceholder !== \"undefined\"\n\t\t\t\t? this.props.searchPlaceholder\n\t\t\t\t: this.props.intl.formatMessage({ id: \"table.search.placeholder\", defaultMessage: defaultMessages[\"table.search.placeholder\"] }, { column_name: searchLabel });\n\t\t\tconst searchBarLabel = this.props.intl.formatMessage(\n\t\t\t\t{ id: \"table.search.label\", defaultMessage: defaultMessages[\"table.search.label\"] },\n\t\t\t\t{ table_name: this.props.tableLabel }\n\t\t\t);\n\n\t\t\tsearchBar = (\n\t\t\t\t<div className={classNames(\"properties-ft-search-container\", { \"disabled\": disabled })}>\n\t\t\t\t\t<Search\n\t\t\t\t\t\tclassName=\"properties-ft-search-text\"\n\t\t\t\t\t\tplaceholder={placeHolder}\n\t\t\t\t\t\tonChange={this.handleFilterChange}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tlabelText={searchBarLabel}\n\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tlet scrollIndex = -1;\n\t\tif (typeof this.props.scrollToRow !== \"undefined\" && this.props.scrollToRow !== null) {\n\t\t\tscrollIndex = this.props.scrollToRow;\n\t\t}\n\n\t\tlet heightStyle = {};\n\t\tif (!this.props.noAutoSize) {\n\t\t\theightStyle = { height: this.state.tableHeight };\n\t\t}\n\n\t\tconst containerClass = this.props.showHeader ? \"properties-ft-container-absolute \" : \"properties-ft-container-absolute-noheader \";\n\t\tconst messageClass = (!this.props.messageInfo) ? containerClass + STATES.INFO : containerClass;\n\t\tconst ftHeader = (searchBar || this.props.topRightPanel)\n\t\t\t? (<div className=\"properties-ft-table-header\" ref={ (ref) => (this.flexibleTableHeader = ref) }>\n\t\t\t\t{searchBar}\n\t\t\t\t{this.props.topRightPanel}\n\t\t\t</div>)\n\t\t\t: null;\n\n\t\tconst emptyTableContent = isEmpty(this.props.data)\n\t\t\t? (\n\t\t\t\t<div className=\"properties-ft-empty-table\">\n\t\t\t\t\t{this.props.emptyTablePlaceholder}\n\t\t\t\t</div>\n\t\t\t)\n\t\t\t: null;\n\n\t\tconst ftClassname = classNames(\"properties-ft-control-container\", { \"properties-light-disabled\": !this.props.light });\n\n\t\tlet tableHeight = 0;\n\t\tconst multiSelectEditRowsRem = 2 * REM_HEADER_HEIGHT; // multi-select adds two rows when selectedEditRow\n\t\tconst multiSelectEditRowsPixels = multiSelectEditRowsRem * ONE_REM_HEIGHT;\n\t\tif (this.state.rows !== -1 && this.state.tableHeight) {\n\t\t\tconst remHeight = parseInt(this.state.tableHeight, 10);\n\t\t\ttableHeight = (remHeight - (this.props.selectedEditRow ? multiSelectEditRowsRem : 0)) * ONE_REM_HEIGHT;\n\t\t} else if (this.state.rows === -1 && this.state.dynamicHeight && this.state.dynamicHeight !== -1) {\n\t\t\ttableHeight = this.state.dynamicHeight - (this.props.selectedEditRow ? multiSelectEditRowsPixels : 0);\n\t\t}\n\n\t\treturn (\n\t\t\t<div data-id={\"properties-ft-\" + this.props.scrollKey} className={ftClassname} ref={ (ref) => (this.flexibleTable = ref) }>\n\t\t\t\t{ftHeader}\n\t\t\t\t<div className=\"properties-ft-container-panel\">\n\t\t\t\t\t<ReactResizeDetector handleWidth onResize={this._updateTableWidth}>\n\t\t\t\t\t\t<div className={classNames(\"properties-ft-container-wrapper\", this.props.messageInfo ? this.props.messageInfo.type : \"\")} style={ heightStyle }>\n\t\t\t\t\t\t\t<div className={messageClass}>\n\t\t\t\t\t\t\t\t{this.props.selectedEditRow}\n\t\t\t\t\t\t\t\t<VirtualizedTable\n\t\t\t\t\t\t\t\t\ttableLabel={this.props.tableLabel}\n\t\t\t\t\t\t\t\t\ttableHeight={tableHeight}\n\t\t\t\t\t\t\t\t\tcolumns={headers}\n\t\t\t\t\t\t\t\t\tonHeaderClick={this.sortHeaderClick}\n\t\t\t\t\t\t\t\t\trowCount={this.props.data.length}\n\t\t\t\t\t\t\t\t\trowHeight={this.rowHeight}\n\t\t\t\t\t\t\t\t\trowGetter={this.rowGetter}\n\t\t\t\t\t\t\t\t\tsummaryTable={this.props.summaryTable}\n\t\t\t\t\t\t\t\t\tselectable={typeof this.props.updateRowSelections !== \"undefined\"}\n\t\t\t\t\t\t\t\t\trowSelection={this.props.rowSelection}\n\t\t\t\t\t\t\t\t\tdisableHeader={!this.props.showHeader}\n\t\t\t\t\t\t\t\t\tonRowDoubleClick={this.props.onRowDoubleClick}\n\t\t\t\t\t\t\t\t\trowsSelected={this.props.selectedRows}\n\t\t\t\t\t\t\t\t\tcheckedAll={this.state.checkedAllRows}\n\t\t\t\t\t\t\t\t\tsetRowsSelected={this.handleCheckedRow}\n\t\t\t\t\t\t\t\t\tsetAllRowsSelected={this.handleCheckedAllRows}\n\t\t\t\t\t\t\t\t\tscrollKey={this.props.scrollKey}\n\t\t\t\t\t\t\t\t\tonSort={this.onSort}\n\t\t\t\t\t\t\t\t\tsortBy={this.state.currentSortColumn}\n\t\t\t\t\t\t\t\t\tsortColumns={this.state.columnSortDir}\n\t\t\t\t\t\t\t\t\tsortDirection={this.state.columnSortDir[this.state.currentSortColumn]}\n\t\t\t\t\t\t\t\t\ttableState={this.props.tableState}\n\t\t\t\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t\t\t\t\t{...(scrollIndex !== -1 && { scrollToIndex: scrollIndex, scrollToAlignment: \"center\" })}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ReactResizeDetector>\n\t\t\t\t</div>\n\t\t\t\t{emptyTableContent}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nFlexibleTable.defaultProps = {\n\tshowHeader: true,\n\tlight: true,\n\temptyTablePlaceholder: \"\"\n};\n\nFlexibleTable.propTypes = {\n\tsortable: PropTypes.array,\n\tcolumns: PropTypes.array.isRequired,\n\tdata: PropTypes.array.isRequired,\n\temptyTablePlaceholder: PropTypes.oneOfType([\n\t\tPropTypes.string,\n\t\tPropTypes.element\n\t]),\n\tsearchPlaceholder: PropTypes.string,\n\tfilterable: PropTypes.array,\n\tfilterBy: PropTypes.string,\n\tfilterKeyword: PropTypes.string,\n\thideFilterInput: PropTypes.func,\n\tscrollToRow: PropTypes.number,\n\tonSort: PropTypes.func,\n\tonFilter: PropTypes.func,\n\tshowHeader: PropTypes.bool,\n\tselectedEditRow: PropTypes.object,\n\ttopRightPanel: PropTypes.object,\n\tscrollKey: PropTypes.string,\n\ttableLabel: PropTypes.string,\n\trows: PropTypes.number,\n\tnoAutoSize: PropTypes.bool,\n\ttableState: PropTypes.string,\n\tmessageInfo: PropTypes.object,\n\tupdateRowSelections: PropTypes.func,\n\tonRowDoubleClick: PropTypes.func,\n\tselectedRows: PropTypes.array,\n\trowSelection: PropTypes.string,\n\tsummaryTable: PropTypes.bool,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired\n};\n\nexport default injectIntl(FlexibleTable);\n"],"names":["TruncatedContentTooltip","_React$Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","_this","tooltipText","this","props","truncatedRef","_typeof","String","content","type","Checkbox","tooltipRef","firstChild","lastChild","tooltip","React","createElement","className","Tooltip","id","tip","direction","disable","_has","disabled","showToolTipIfTruncated","ref","Component","baseAssignValue","require$$0","baseForOwn","require$$1","baseIteratee","require$$2","mapValues_1","object","iteratee","result","baseDifference","baseFlatten","baseRest","require$$3","isArrayLikeObject","require$$4","last","require$$5","differenceBy_1","array","values","undefined","VirtualizedTable","context","call","state","rowCount","columns","columnResized","virtualizedTableRef","createRef","lastChecked","_isEmpty","rowsSelected","slice","pop","isOverSelectOption","mouseEventCalled","keyBoardEventCalled","cellRenderer","bind","_assertThisInitialized","selectAll","headerRowRenderer","headerColRenderer","onRowClick","overSelectOption","resizeColumn","uuid","uuid4","rowHeight","recomputeRowHeights","evt","rowData","index","target","stopPropagation","selected","isRowSelected","originalRowIndex","setRowsSelected","selectMultipleRows","shiftKey","lastCheckedRow","rowKey","onRowDoubleClick","i","length","operation","findIndex","column","deltaX","columnWiseDeltas","sort","a","b","width","totalDelta","widthOfAllColumns","reduce","prev","current","individualDelta","Math","round","headerLabel","MINIMUM_COLUMN_WIDTH","MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL","_mapValues","indexOf","dataKey","isLastColumn","getColumnIndex","setAllRowsSelected","_ref","cellData","_ref2","dangerouslySetInnerHTML","__html","scrollKey","_ref3","style","checkboxLabelColumnIndex","getCheckboxLabelColumnIndex","headerCheckboxLabel","translatedHeaderCheckboxLabel","intl","formatMessage","defaultMessage","defaultMessages","header_checkbox_label","checkbox","selectable","rowSelection","ROW_SELECTION","SINGLE","role","checkedAll","concat","onChange","checked","labelText","hideLabel","_ref4","_this2","columnData","disableSort","label","sortBy","sortDirection","sortIcon","sortColumns","SORT_DIRECTION","ASC","ArrowUp16","tableState","STATES","DISABLED","DESC","ArrowDown16","ArrowsVertical16","infoIcon","description","showToolTipOnClick","Information16","resizeElem","resizable","Draggable","axis","defaultClassName","defaultClassNameDragging","onDrag","_ref5","position","x","zIndex","tabIndex","headerDisplayLabel","header","classNames","_ref6","_this3","setState","prevState","resizedColumnIndex","resizableColumns","filter","staticWidth","getColumnWiseDeltas","columnsToBeResized","Object","keys","everyColumnHasZeroDelta","every","delta","forEach","columnKey","idx","col","_ref7","_this4","selectOption","selectedRow","rowDisabled","rowSelected","translatedRowCheckboxLabel","row_index","table_label","tableLabel","onMouseEnter","onMouseLeave","onFocus","onBlur","onKeyDown","code","summaryTable","loading","Loading","small","withOverlay","parseInt","newStyle","assign","onDoubleClick","onMouseDown","_this5","light","AutoSizer","_ref8","height","Table","tableHeight","disableHeader","headerClassName","headerHeight","onHeaderClick","rowClassName","rowGetter","rowRenderer","scrollToIndex","scrollToAlignment","onSort","map","Column","_extends","isHTML","cellRendererHTML","headerRenderer","minWidth","nextProps","updatedState","editorSizeUpdated","totalWidth","_differenceBy","defaultProps","injectIntl","FlexibleTable","sortDirs","sortable","NOT_SORTED","checkedAllRows","columnSortDir","currentSortColumn","tableWidth","rows","dynamicHeight","getOriginalRowIndex","getLastChildPropertyIdRow","calculateColumnWidths","handleFilterChange","sortHeaderClick","_updateTableWidth","_adjustTableHeight","handleCheckedRow","handleCheckedAllRows","handleCheckedMultipleRows","window","addEventListener","tableNode","ReactDOM","findDOMNode","refs","table","prevProps","noAutoSize","selectedRows","data","setCheckedAll","removeEventListener","spec","row","rowIndex","children","propertyId","defaultRowIndex","checkAll","parentTableWidth","_step","remainingColumns","maxWeight","_iterator","_createForOfIteratorHelper","s","n","done","columnDef","includes","max","err","e","f","_step2","widths","defaultWidth","floor","weightedWidths","sumWeightedWidths","_iterator2","isNaN","push","scaledWidth","sumColumnWidth","calculatedWidth","compare","firstColWith","newHeight","dynamicH","multiSelectTableHeight","REM_ROW_HEIGHT","REM_HEADER_HEIGHT","Array","isArray","selectedEditRow","flexibleTable","ftHeaderHeight","flexibleTableHeader","getBoundingClientRect","flyoutHeight","findPropertyNodeHeight","tearsheetHeight","totalHeight","node","parentNode","foundNode","colSortDir","onFilter","controlValue","from","Set","updateRowSelections","existingRow","inBetweenRows","_","dataRowIndex","displayedRowIndex","element","columnWidths","headers","searchLabel","j","filterable","abs","cidx","ROW_HEIGHT","headerInfo","generateTableHeaderRow","searchBar","placeHolder","searchPlaceholder","column_name","searchBarLabel","table_name","Search","placeholder","size","scrollIndex","scrollToRow","heightStyle","containerClass","showHeader","messageClass","messageInfo","INFO","ftHeader","topRightPanel","emptyTableContent","emptyTablePlaceholder","ftClassname","multiSelectEditRowsRem","multiSelectEditRowsPixels","ONE_REM_HEIGHT","ReactResizeDetector","handleWidth","onResize"],"mappings":"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"}
|
package/dist/toolbar-12f6def6.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{E as e,A as t}from"./isArrayLikeObject-c0bf3ab6.js";import{c as n}from"./datarecord-metadata-v3-schema-dd7370da.js";import{_ as r,a as o}from"./createClass-be661622.js";import{_ as a,a as i,b as s,c as l}from"./getPrototypeOf-3751add9.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 f}from"./_baseIteratee-eabd2a94.js";import{ZoomOut16 as v,ZoomIn16 as b,Edit16 as m,TrashCan16 as C,ColorPalette16 as g,ChatOff16 as y,Chat16 as E,AddComment16 as I,Paste16 as k,Copy16 as x,Cut16 as w,Result16 as D,Redo16 as R,Undo16 as A,Launch16 as B,Minimize16 as F,Maximize16 as O,Play16 as M,StopFilledAlt16 as H,ChevronRight16 as T,ChevronUp16 as j,ChevronDown16 as S,OverflowMenuVertical16 as z}from"@carbon/icons-react";import{T as L,i as N,j as V,k as P,l as Z,m as W,n as q,o as $,p as _,q as U,r as G,s as J,t as K,u as Q,v as X,w as Y,x as ee,y as te,z as ne,A as re,B as oe,D as ae,F as ie,G as se,H as le,J as ce,K as ue,L as pe}from"./canvas-constants-72222288.js";import{v4 as he}from"uuid";var de=/\s/;var fe=function(e){for(var t=e.length;t--&&de.test(e.charAt(t)););return t},ve=/^\s+/;var be=function(e){return e?e.slice(0,fe(e)+1).replace(ve,""):e},me=e,Ce=t,ge=/^[-+]0x[0-9a-f]+$/i,ye=/^0b[01]+$/i,Ee=/^0o[0-7]+$/i,Ie=parseInt;var ke=function(e){if("number"==typeof e)return e;if(Ce(e))return NaN;if(me(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=me(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=be(e);var n=ye.test(e);return n||Ee.test(e)?Ie(e.slice(2),n?2:8):ge.test(e)?NaN:+e},xe=ke,we=1/0;var De=function(e){return e?(e=xe(e))===we||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0};var Re=function(e){var t=De(e),n=t%1;return t==t?n?t-n:t:0},Ae=function(e,t){var n=t.getElementsByClassName(e);return n&&n.length>0?n[0]:null},Be=function(e,t){var n=Ae(e,t);return n?n.getBoundingClientRect():null};function Fe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return s(this,n)}}var Oe=function(e){a(n,e);var t=Fe(n);function n(e){var o;return r(this,n),(o=t.call(this,e)).onClick=o.onClick.bind(l(o)),o}return o(n,[{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=Ae(n,e),o=Be(n,e),a=o.bottom-t.bottom,i=o.right-t.right;if("vertical"===this.props.expandDirection){if(a>0){var s=this.props.actionItemRect.top-o.height;r.style.top=s+"px"}if(i>0){var l=this.props.actionItemRect.left-i-2;r.style.left=l+"px"}}else{if(a>0){var c=o.top-a-2;r.style.top=c+"px"}if(i>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}}]),n}(c.Component);function Me(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return s(this,n)}}var He=function(e){a(n,e);var t=Me(n);function n(e){var o;return r(this,n),(o=t.call(this,e)).state={subAreaDisplayed:!1},o.actionClickHandler=o.actionClickHandler.bind(l(o)),o.onMouseEnter=o.onMouseEnter.bind(l(o)),o.onMouseLeave=o.onMouseLeave.bind(l(o)),o.openSubArea=o.openSubArea.bind(l(o)),o.closeSubArea=o.closeSubArea.bind(l(o)),o.clickOutside=o.clickOutside.bind(l(o)),o}return o(n,[{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(M,{disabled:t});case ce:return c.createElement(O,{disabled:t});case le:return c.createElement(F,{disabled:t});case se:return c.createElement(B,{disabled:t});case ie:return c.createElement(A,{disabled:t});case ae:return c.createElement(R,{disabled:t});case oe:return c.createElement(D,{disabled:t});case re:return c.createElement(w,{disabled:t});case ne:return c.createElement(x,{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(E,{disabled:t});case Q:return c.createElement(y,{disabled:t});case K:return c.createElement(g,{disabled:t});case J:case G:return c.createElement(C,{disabled:t});case U:case _:return c.createElement(m,{disabled:t});case $:return c.createElement(b,{disabled:t});case q:return c.createElement(v,{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 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%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 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%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=f("toolbar-item-content",e.className?e.className:null,{overflow:this.props.overflow,disabled:!e.enable,default:!e.kind}),i=e.kind||"ghost",s=this.generateChevronIcon(e),l=c.createElement("div",{id:"open-action-item",className:a},t,r,n,o,s);l=this.wrapInTooltip(l);var u=e.incLabelWithIcon?null:e.label;return l=c.createElement(h,{kind:i,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(Oe,{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=f({"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),i=this.state.subAreaDisplayed?this.generateSubArea():null;return c.createElement("div",{className:a,"data-toolbar-item":r,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave},n,i)}}]),n}(c.Component);function Te(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return s(this,n)}}var je=function(e){a(n,e);var t=Te(n);function n(){return r(this,n),t.apply(this,arguments)}return o(n,[{key:"componentDidMount",value:function(){this.props.containingDivId&&this.setSubAreaStyle()}},{key:"setSubAreaStyle",value:function(){var e=document.getElementById(this.props.containingDivId),t=e.getBoundingClientRect(),n=Ae("toolbar-popover-list",e),r=Be("toolbar-popover-list",e);if(r){var o=Be(this.props.buttonClass,e);if(o){var a=Be("context-toolbar",e);if(a){var i=r.right-t.right;if(i>0){var s=o.left-a.left;n.style.left=s-i-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}}]),n}(c.Component);function Se(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return s(this,n)}}var ze=function(e){a(n,e);var t=Se(n);function n(e){var o;return r(this,n),(o=t.call(this,e)).state={showExtendedMenu:!1},o.uuid=he(),o.toggleExtendedMenu=o.toggleExtendedMenu.bind(l(o)),o.clickOutside=o.clickOutside.bind(l(o)),o}return o(n,[{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(je,{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)}}]),n}(c.Component);function Le(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return s(this,n)}}var Ne=function(e){a(n,e);var t=Le(n);function n(){return r(this,n),t.apply(this,arguments)}return o(n,[{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}," ")}}]),n}(c.Component);function Ve(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=i(e);if(t){var o=i(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return s(this,n)}}var Pe=function(e){a(i,e);var t=Ve(i);function i(e){var n;return r(this,i),(n=t.call(this,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 o(i,[{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(Ne,{key:"toolbar-item-key-"+t,overflow:n}):c.createElement(He,{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)))}}]),i}(c.Component);export{Pe as T,ke as a,Re as t};
|
|
2
|
-
//# sourceMappingURL=toolbar-12f6def6.js.map
|