@elyra/canvas 12.32.0 → 12.32.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/_baseIteratee-e1311552.js +8 -0
  2. package/dist/_baseIteratee-e1311552.js.map +1 -0
  3. package/dist/_baseIteratee-eabd2a94.js +7 -0
  4. package/dist/_baseIteratee-eabd2a94.js.map +1 -0
  5. package/dist/{canvas-constants-0b396113.js → canvas-constants-72222288.js} +2 -2
  6. package/dist/{canvas-constants-0b396113.js.map → canvas-constants-72222288.js.map} +1 -1
  7. package/dist/canvas-controller-2df80dc3.js +2 -0
  8. package/dist/canvas-controller-2df80dc3.js.map +1 -0
  9. package/dist/canvas-controller-c0b65951.js +2 -0
  10. package/dist/canvas-controller-c0b65951.js.map +1 -0
  11. package/dist/common-canvas-55d8916f.js +2 -0
  12. package/dist/common-canvas-55d8916f.js.map +1 -0
  13. package/dist/common-canvas-8eb241dc.js +2 -0
  14. package/dist/common-canvas-8eb241dc.js.map +1 -0
  15. package/dist/common-canvas.es.js +1 -1
  16. package/dist/common-canvas.es.js.map +1 -1
  17. package/dist/common-canvas.js +1 -1
  18. package/dist/common-canvas.js.map +1 -1
  19. package/dist/common-properties-96c9c88a.js +2 -0
  20. package/dist/common-properties-96c9c88a.js.map +1 -0
  21. package/dist/common-properties-c5292c66.js +2 -0
  22. package/dist/common-properties-c5292c66.js.map +1 -0
  23. package/dist/{datarecord-metadata-v3-schema-cd1871c0.js → datarecord-metadata-v3-schema-dd7370da.js} +2 -2
  24. package/dist/{datarecord-metadata-v3-schema-cd1871c0.js.map → datarecord-metadata-v3-schema-dd7370da.js.map} +1 -1
  25. package/dist/flexible-table-23d61157.js +2 -0
  26. package/dist/flexible-table-23d61157.js.map +1 -0
  27. package/dist/flexible-table-4259d869.js +2 -0
  28. package/dist/flexible-table-4259d869.js.map +1 -0
  29. package/dist/icon-04f858ce.js +2 -0
  30. package/dist/{icon-5f3da14a.js.map → icon-04f858ce.js.map} +1 -1
  31. package/dist/icon-8cc7816d.js +2 -0
  32. package/dist/{icon-f3de6e3a.js.map → icon-8cc7816d.js.map} +1 -1
  33. package/dist/index-101f9560.js +2 -0
  34. package/dist/{index-20a7841f.js.map → index-101f9560.js.map} +1 -1
  35. package/dist/index-2788d55d.js +2 -0
  36. package/dist/{index-7ec85110.js.map → index-2788d55d.js.map} +1 -1
  37. package/dist/{isArrayLikeObject-5da4b548.js → isArrayLikeObject-c0bf3ab6.js} +2 -2
  38. package/dist/{isArrayLikeObject-5da4b548.js.map → isArrayLikeObject-c0bf3ab6.js.map} +1 -1
  39. package/dist/lib/canvas-controller.es.js +1 -1
  40. package/dist/lib/canvas-controller.js +1 -1
  41. package/dist/lib/canvas.es.js +1 -1
  42. package/dist/lib/canvas.js +1 -1
  43. package/dist/lib/properties/field-picker.es.js +1 -1
  44. package/dist/lib/properties/field-picker.js +1 -1
  45. package/dist/lib/properties/flexible-table.es.js +1 -1
  46. package/dist/lib/properties/flexible-table.js +1 -1
  47. package/dist/lib/properties.es.js +1 -1
  48. package/dist/lib/properties.js +1 -1
  49. package/dist/lib/tooltip.es.js +1 -1
  50. package/dist/lib/tooltip.es.js.map +1 -1
  51. package/dist/lib/tooltip.js +1 -1
  52. package/dist/lib/tooltip.js.map +1 -1
  53. package/dist/toolbar-12f6def6.js +2 -0
  54. package/dist/toolbar-12f6def6.js.map +1 -0
  55. package/dist/toolbar-55e2020e.js +2 -0
  56. package/dist/toolbar-55e2020e.js.map +1 -0
  57. package/locales/common-canvas/locales/de.json +1 -0
  58. package/locales/common-canvas/locales/es.json +1 -0
  59. package/locales/common-canvas/locales/fr.json +1 -0
  60. package/locales/common-canvas/locales/it.json +1 -0
  61. package/locales/common-canvas/locales/ja.json +1 -0
  62. package/locales/common-canvas/locales/ko.json +1 -0
  63. package/locales/common-canvas/locales/pt-br.json +1 -0
  64. package/locales/common-canvas/locales/sv.json +1 -0
  65. package/locales/common-canvas/locales/zh-CN.json +1 -0
  66. package/locales/common-canvas/locales/zh-TW.json +1 -0
  67. package/locales/common-properties/locales/de.json +2 -0
  68. package/locales/common-properties/locales/es.json +2 -0
  69. package/locales/common-properties/locales/fr.json +2 -0
  70. package/locales/common-properties/locales/it.json +2 -0
  71. package/locales/common-properties/locales/ja.json +2 -0
  72. package/locales/common-properties/locales/ko.json +2 -0
  73. package/locales/common-properties/locales/pt-br.json +2 -0
  74. package/locales/common-properties/locales/sv.json +2 -0
  75. package/locales/common-properties/locales/zh-CN.json +2 -0
  76. package/locales/common-properties/locales/zh-TW.json +2 -0
  77. package/package.json +1 -1
  78. package/src/common-canvas/cc-context-toolbar.jsx +2 -1
  79. package/src/common-canvas/svg-canvas-renderer.js +43 -5
  80. package/src/common-properties/ui-conditions/conditions-utils.js +9 -0
  81. package/src/object-model/config-utils.js +1 -0
  82. package/src/tooltip/tooltip.jsx +5 -7
  83. package/stats.html +1 -1
  84. package/dist/_baseForOwn-2ef49e2c.js +0 -7
  85. package/dist/_baseForOwn-2ef49e2c.js.map +0 -1
  86. package/dist/_baseForOwn-33edf1a0.js +0 -8
  87. package/dist/_baseForOwn-33edf1a0.js.map +0 -1
  88. package/dist/canvas-controller-293520d1.js +0 -2
  89. package/dist/canvas-controller-293520d1.js.map +0 -1
  90. package/dist/canvas-controller-978f3e99.js +0 -2
  91. package/dist/canvas-controller-978f3e99.js.map +0 -1
  92. package/dist/common-canvas-b19904f0.js +0 -2
  93. package/dist/common-canvas-b19904f0.js.map +0 -1
  94. package/dist/common-canvas-ef3c716f.js +0 -2
  95. package/dist/common-canvas-ef3c716f.js.map +0 -1
  96. package/dist/common-properties-7863aacb.js +0 -2
  97. package/dist/common-properties-7863aacb.js.map +0 -1
  98. package/dist/common-properties-8b8a659b.js +0 -2
  99. package/dist/common-properties-8b8a659b.js.map +0 -1
  100. package/dist/flexible-table-865cd1c7.js +0 -2
  101. package/dist/flexible-table-865cd1c7.js.map +0 -1
  102. package/dist/flexible-table-ccced653.js +0 -2
  103. package/dist/flexible-table-ccced653.js.map +0 -1
  104. package/dist/icon-5f3da14a.js +0 -2
  105. package/dist/icon-f3de6e3a.js +0 -2
  106. package/dist/index-20a7841f.js +0 -2
  107. package/dist/index-7ec85110.js +0 -2
  108. package/dist/toolbar-9f4c1709.js +0 -2
  109. package/dist/toolbar-9f4c1709.js.map +0 -1
  110. package/dist/toolbar-c2ec8f11.js +0 -2
  111. package/dist/toolbar-c2ec8f11.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import"../createClass-be661622.js";import"../isArrayLikeObject-5da4b548.js";export{C as default}from"../canvas-controller-293520d1.js";import"./command-stack.es.js";import"../canvas-constants-0b396113.js";import"../canvas-logger-3bfbcf85.js";import"../getPrototypeOf-3751add9.js";import"../datarecord-metadata-v3-schema-cd1871c0.js";import"uuid";import"redux";import"jsonschema";import"@elyra/pipeline-schemas";import"immutable";
1
+ import"../createClass-be661622.js";import"../isArrayLikeObject-c0bf3ab6.js";export{C as default}from"../canvas-controller-2df80dc3.js";import"./command-stack.es.js";import"../canvas-constants-72222288.js";import"../canvas-logger-3bfbcf85.js";import"../getPrototypeOf-3751add9.js";import"../datarecord-metadata-v3-schema-dd7370da.js";import"uuid";import"redux";import"jsonschema";import"@elyra/pipeline-schemas";import"immutable";
2
2
  //# sourceMappingURL=canvas-controller.es.js.map
@@ -1,2 +1,2 @@
1
- "use strict";require("../createClass-826941b3.js"),require("../isArrayLikeObject-0cd02b77.js");var e=require("../canvas-controller-978f3e99.js");require("./command-stack.js"),require("../canvas-constants-903046ab.js"),require("../canvas-logger-6f90b136.js"),require("../getPrototypeOf-1e698126.js"),require("../datarecord-metadata-v3-schema-64329ae4.js"),require("uuid"),require("redux"),require("jsonschema"),require("@elyra/pipeline-schemas"),require("immutable"),module.exports=e.CanvasController;
1
+ "use strict";require("../createClass-826941b3.js"),require("../isArrayLikeObject-0cd02b77.js");var e=require("../canvas-controller-c0b65951.js");require("./command-stack.js"),require("../canvas-constants-903046ab.js"),require("../canvas-logger-6f90b136.js"),require("../getPrototypeOf-1e698126.js"),require("../datarecord-metadata-v3-schema-64329ae4.js"),require("uuid"),require("redux"),require("jsonschema"),require("@elyra/pipeline-schemas"),require("immutable"),module.exports=e.CanvasController;
2
2
  //# sourceMappingURL=canvas-controller.js.map
@@ -1,2 +1,2 @@
1
- export{c as CommonCanvas}from"../common-canvas-b19904f0.js";export{C as CanvasController}from"../canvas-controller-293520d1.js";import"../createClass-be661622.js";import"../getPrototypeOf-3751add9.js";import"react";import"react-redux";import"react-intl";import"../isArrayLikeObject-5da4b548.js";import"../icon-5f3da14a.js";import"../_baseForOwn-2ef49e2c.js";import"react-inlinesvg";import"@carbon/icons-react";import"../canvas-constants-0b396113.js";import"../toolbar-c2ec8f11.js";import"../datarecord-metadata-v3-schema-cd1871c0.js";import"react-resize-detector";import"./tooltip.es.js";import"react-portal";import"carbon-components-react";import"uuid";import"../canvas-logger-3bfbcf85.js";import"../context-menu-wrapper-5846a20e.js";import"../extends-093996c9.js";import"react-contextmenu";import"react-dom";import"./command-stack.es.js";import"immutable";import"redux";import"jsonschema";import"@elyra/pipeline-schemas";
1
+ export{c as CommonCanvas}from"../common-canvas-8eb241dc.js";export{C as CanvasController}from"../canvas-controller-2df80dc3.js";import"../createClass-be661622.js";import"../getPrototypeOf-3751add9.js";import"react";import"react-redux";import"react-intl";import"../isArrayLikeObject-c0bf3ab6.js";import"../icon-04f858ce.js";import"../_baseIteratee-eabd2a94.js";import"react-inlinesvg";import"@carbon/icons-react";import"../canvas-constants-72222288.js";import"../toolbar-12f6def6.js";import"../datarecord-metadata-v3-schema-dd7370da.js";import"react-resize-detector";import"./tooltip.es.js";import"react-portal";import"carbon-components-react";import"uuid";import"../canvas-logger-3bfbcf85.js";import"../context-menu-wrapper-5846a20e.js";import"../extends-093996c9.js";import"react-contextmenu";import"react-dom";import"./command-stack.es.js";import"immutable";import"redux";import"jsonschema";import"@elyra/pipeline-schemas";
2
2
  //# sourceMappingURL=canvas.es.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../common-canvas-ef3c716f.js"),r=require("../canvas-controller-978f3e99.js");require("../createClass-826941b3.js"),require("../getPrototypeOf-1e698126.js"),require("react"),require("react-redux"),require("react-intl"),require("../isArrayLikeObject-0cd02b77.js"),require("../icon-f3de6e3a.js"),require("../_baseForOwn-33edf1a0.js"),require("react-inlinesvg"),require("@carbon/icons-react"),require("../canvas-constants-903046ab.js"),require("../toolbar-9f4c1709.js"),require("../datarecord-metadata-v3-schema-64329ae4.js"),require("react-resize-detector"),require("./tooltip.js"),require("react-portal"),require("carbon-components-react"),require("uuid"),require("../canvas-logger-6f90b136.js"),require("../context-menu-wrapper-ac5e8c7a.js"),require("../extends-1b35a664.js"),require("react-contextmenu"),require("react-dom"),require("./command-stack.js"),require("immutable"),require("redux"),require("jsonschema"),require("@elyra/pipeline-schemas"),exports.CommonCanvas=e.commonCanvas,exports.CanvasController=r.CanvasController;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../common-canvas-55d8916f.js"),r=require("../canvas-controller-c0b65951.js");require("../createClass-826941b3.js"),require("../getPrototypeOf-1e698126.js"),require("react"),require("react-redux"),require("react-intl"),require("../isArrayLikeObject-0cd02b77.js"),require("../icon-8cc7816d.js"),require("../_baseIteratee-e1311552.js"),require("react-inlinesvg"),require("@carbon/icons-react"),require("../canvas-constants-903046ab.js"),require("../toolbar-55e2020e.js"),require("../datarecord-metadata-v3-schema-64329ae4.js"),require("react-resize-detector"),require("./tooltip.js"),require("react-portal"),require("carbon-components-react"),require("uuid"),require("../canvas-logger-6f90b136.js"),require("../context-menu-wrapper-ac5e8c7a.js"),require("../extends-1b35a664.js"),require("react-contextmenu"),require("react-dom"),require("./command-stack.js"),require("immutable"),require("redux"),require("jsonschema"),require("@elyra/pipeline-schemas"),exports.CommonCanvas=e.commonCanvas,exports.CanvasController=r.CanvasController;
2
2
  //# sourceMappingURL=canvas.js.map
@@ -1,2 +1,2 @@
1
- export{F as default}from"../../index-7ec85110.js";import"../../createClass-be661622.js";import"../../getPrototypeOf-3751add9.js";import"../../isArrayLikeObject-5da4b548.js";import"../../flexible-table-ccced653.js";import"../../extends-093996c9.js";import"react";import"react-intl";import"react-dom";import"carbon-components-react";import"../../_baseForOwn-2ef49e2c.js";import"react-virtualized";import"react-draggable";import"@carbon/icons-react";import"../tooltip.es.js";import"react-portal";import"uuid";import"react-resize-detector";import"../../canvas-constants-0b396113.js";import"../../icon-5f3da14a.js";import"react-inlinesvg";
1
+ export{F as default}from"../../index-2788d55d.js";import"../../createClass-be661622.js";import"../../getPrototypeOf-3751add9.js";import"../../isArrayLikeObject-c0bf3ab6.js";import"../../_baseIteratee-eabd2a94.js";import"react";import"../../flexible-table-23d61157.js";import"../../extends-093996c9.js";import"react-intl";import"react-dom";import"carbon-components-react";import"react-virtualized";import"react-draggable";import"@carbon/icons-react";import"../tooltip.es.js";import"react-portal";import"uuid";import"react-resize-detector";import"../../canvas-constants-72222288.js";import"../../icon-04f858ce.js";import"react-inlinesvg";
2
2
  //# sourceMappingURL=field-picker.es.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../index-20a7841f.js");require("../../createClass-826941b3.js"),require("../../getPrototypeOf-1e698126.js"),require("../../isArrayLikeObject-0cd02b77.js"),require("../../flexible-table-865cd1c7.js"),require("../../extends-1b35a664.js"),require("react"),require("react-intl"),require("react-dom"),require("carbon-components-react"),require("../../_baseForOwn-33edf1a0.js"),require("react-virtualized"),require("react-draggable"),require("@carbon/icons-react"),require("../tooltip.js"),require("react-portal"),require("uuid"),require("react-resize-detector"),require("../../canvas-constants-903046ab.js"),require("../../icon-f3de6e3a.js"),require("react-inlinesvg"),module.exports=e.FieldPicker;
1
+ "use strict";var e=require("../../index-101f9560.js");require("../../createClass-826941b3.js"),require("../../getPrototypeOf-1e698126.js"),require("../../isArrayLikeObject-0cd02b77.js"),require("../../_baseIteratee-e1311552.js"),require("react"),require("../../flexible-table-4259d869.js"),require("../../extends-1b35a664.js"),require("react-intl"),require("react-dom"),require("carbon-components-react"),require("react-virtualized"),require("react-draggable"),require("@carbon/icons-react"),require("../tooltip.js"),require("react-portal"),require("uuid"),require("react-resize-detector"),require("../../canvas-constants-903046ab.js"),require("../../icon-8cc7816d.js"),require("react-inlinesvg"),module.exports=e.FieldPicker;
2
2
  //# sourceMappingURL=field-picker.js.map
@@ -1,2 +1,2 @@
1
- import{F as t}from"../../flexible-table-ccced653.js";export{F as default}from"../../flexible-table-ccced653.js";import"../../extends-093996c9.js";import"../../createClass-be661622.js";import"../../getPrototypeOf-3751add9.js";import"../../isArrayLikeObject-5da4b548.js";import"react";import"react-intl";import"react-dom";import"carbon-components-react";import"../../_baseForOwn-2ef49e2c.js";import"react-virtualized";import"react-draggable";import"@carbon/icons-react";import"../tooltip.es.js";import"react-portal";import"uuid";import"react-resize-detector";
1
+ import{F as t}from"../../flexible-table-23d61157.js";export{F as default}from"../../flexible-table-23d61157.js";import"../../extends-093996c9.js";import"../../createClass-be661622.js";import"../../getPrototypeOf-3751add9.js";import"../../isArrayLikeObject-c0bf3ab6.js";import"react";import"react-intl";import"react-dom";import"carbon-components-react";import"../../_baseIteratee-eabd2a94.js";import"react-virtualized";import"react-draggable";import"@carbon/icons-react";import"../tooltip.es.js";import"react-portal";import"uuid";import"react-resize-detector";
2
2
  //# sourceMappingURL=flexible-table.es.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../flexible-table-865cd1c7.js");require("../../extends-1b35a664.js"),require("../../createClass-826941b3.js"),require("../../getPrototypeOf-1e698126.js"),require("../../isArrayLikeObject-0cd02b77.js"),require("react"),require("react-intl"),require("react-dom"),require("carbon-components-react"),require("../../_baseForOwn-33edf1a0.js"),require("react-virtualized"),require("react-draggable"),require("@carbon/icons-react"),require("../tooltip.js"),require("react-portal"),require("uuid"),require("react-resize-detector"),module.exports=e.FlexibleTable;
1
+ "use strict";var e=require("../../flexible-table-4259d869.js");require("../../extends-1b35a664.js"),require("../../createClass-826941b3.js"),require("../../getPrototypeOf-1e698126.js"),require("../../isArrayLikeObject-0cd02b77.js"),require("react"),require("react-intl"),require("react-dom"),require("carbon-components-react"),require("../../_baseIteratee-e1311552.js"),require("react-virtualized"),require("react-draggable"),require("@carbon/icons-react"),require("../tooltip.js"),require("react-portal"),require("uuid"),require("react-resize-detector"),module.exports=e.FlexibleTable;
2
2
  //# sourceMappingURL=flexible-table.js.map
@@ -1,2 +1,2 @@
1
- export{c as CommonProperties,P as PropertiesController}from"../common-properties-8b8a659b.js";export{F as FlexibleTable}from"../flexible-table-ccced653.js";export{F as FieldPicker}from"../index-7ec85110.js";import"../createClass-be661622.js";import"../getPrototypeOf-3751add9.js";import"react";import"../canvas-constants-0b396113.js";import"../isArrayLikeObject-5da4b548.js";import"../datarecord-metadata-v3-schema-cd1871c0.js";import"carbon-components-react";import"../_baseForOwn-2ef49e2c.js";import"react-portal";import"react-intl";import"react-redux";import"@carbon/icons-react";import"react-dom";import"../icon-5f3da14a.js";import"react-inlinesvg";import"uuid";import"./tooltip.es.js";import"../extends-093996c9.js";import"redux";import"seedrandom";import"./command-stack.es.js";import"immutable";import"date-fns";import"prop-types";import"../toolbar-c2ec8f11.js";import"react-resize-detector";import"react-codemirror2";import"jsonschema";import"react-virtualized";import"react-draggable";
1
+ export{c as CommonProperties,P as PropertiesController}from"../common-properties-96c9c88a.js";export{F as FlexibleTable}from"../flexible-table-23d61157.js";export{F as FieldPicker}from"../index-2788d55d.js";import"../createClass-be661622.js";import"../getPrototypeOf-3751add9.js";import"react";import"../canvas-constants-72222288.js";import"../isArrayLikeObject-c0bf3ab6.js";import"../datarecord-metadata-v3-schema-dd7370da.js";import"../_baseIteratee-eabd2a94.js";import"carbon-components-react";import"react-portal";import"react-intl";import"react-redux";import"@carbon/icons-react";import"react-dom";import"../icon-04f858ce.js";import"react-inlinesvg";import"uuid";import"./tooltip.es.js";import"../extends-093996c9.js";import"redux";import"seedrandom";import"./command-stack.es.js";import"immutable";import"date-fns";import"prop-types";import"../toolbar-12f6def6.js";import"react-resize-detector";import"react-codemirror2";import"jsonschema";import"react-virtualized";import"react-draggable";
2
2
  //# sourceMappingURL=properties.es.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../common-properties-7863aacb.js"),r=require("../flexible-table-865cd1c7.js"),i=require("../index-20a7841f.js");require("../createClass-826941b3.js"),require("../getPrototypeOf-1e698126.js"),require("react"),require("../canvas-constants-903046ab.js"),require("../isArrayLikeObject-0cd02b77.js"),require("../datarecord-metadata-v3-schema-64329ae4.js"),require("carbon-components-react"),require("../_baseForOwn-33edf1a0.js"),require("react-portal"),require("react-intl"),require("react-redux"),require("@carbon/icons-react"),require("react-dom"),require("../icon-f3de6e3a.js"),require("react-inlinesvg"),require("uuid"),require("./tooltip.js"),require("../extends-1b35a664.js"),require("redux"),require("seedrandom"),require("./command-stack.js"),require("immutable"),require("date-fns"),require("prop-types"),require("../toolbar-9f4c1709.js"),require("react-resize-detector"),require("react-codemirror2"),require("jsonschema"),require("react-virtualized"),require("react-draggable"),exports.CommonProperties=e.commonProperties,exports.PropertiesController=e.PropertiesController,exports.FlexibleTable=r.FlexibleTable,exports.FieldPicker=i.FieldPicker;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../common-properties-c5292c66.js"),r=require("../flexible-table-4259d869.js"),i=require("../index-101f9560.js");require("../createClass-826941b3.js"),require("../getPrototypeOf-1e698126.js"),require("react"),require("../canvas-constants-903046ab.js"),require("../isArrayLikeObject-0cd02b77.js"),require("../datarecord-metadata-v3-schema-64329ae4.js"),require("../_baseIteratee-e1311552.js"),require("carbon-components-react"),require("react-portal"),require("react-intl"),require("react-redux"),require("@carbon/icons-react"),require("react-dom"),require("../icon-8cc7816d.js"),require("react-inlinesvg"),require("uuid"),require("./tooltip.js"),require("../extends-1b35a664.js"),require("redux"),require("seedrandom"),require("./command-stack.js"),require("immutable"),require("date-fns"),require("prop-types"),require("../toolbar-55e2020e.js"),require("react-resize-detector"),require("react-codemirror2"),require("jsonschema"),require("react-virtualized"),require("react-draggable"),exports.CommonProperties=e.commonProperties,exports.PropertiesController=e.PropertiesController,exports.FlexibleTable=r.FlexibleTable,exports.FieldPicker=i.FieldPicker;
2
2
  //# sourceMappingURL=properties.js.map
@@ -1,2 +1,2 @@
1
- import{_ as t,a as e,b as i}from"../createClass-be661622.js";import{_ as o,a as l,b as s,c as n}from"../getPrototypeOf-3751add9.js";import r from"react";import{Portal as p}from"react-portal";import{Link as h}from"carbon-components-react";import{v4 as a}from"uuid";function u(t){var e=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(t){return!1}}();return function(){var i,o=l(t);if(e){var n=l(this).constructor;i=Reflect.construct(o,arguments,n)}else i=o.apply(this,arguments);return s(this,i)}}var c=function(l){o(c,l);var s=u(c);function c(e){var i;return t(this,c),(i=s.call(this,e)).state={isTooltipVisible:!1},i.uuid=a(),i.pendingTooltip=null,i.hideTooltipOnScrollAndResize=i.hideTooltipOnScrollAndResize.bind(n(i)),i}return e(c,[{key:"componentDidMount",value:function(){window.addEventListener("scroll",this.hideTooltipOnScrollAndResize,!0),window.addEventListener("resize",this.hideTooltipOnScrollAndResize,!0),this.props.targetObj&&this.setTooltipVisible(!0)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("scroll",this.hideTooltipOnScrollAndResize,!0),window.removeEventListener("resize",this.hideTooltipOnScrollAndResize,!0),this.pendingTooltip&&clearTimeout(this.pendingTooltip)}},{key:"setTooltipVisible",value:function(t){if((!this.showTooltip()||!t&&this.pendingTooltip)&&(clearTimeout(this.pendingTooltip),this.pendingTooltip=null,this.setState({isTooltipVisible:!1})),this.showTooltip()){var e=document.querySelector("[data-id='".concat(this.uuid,"-").concat(this.props.id,"']"));if(this.pendingTooltip=null,this.setState({isTooltipVisible:t}),t){var i=null;(i=this.props.targetObj?this.props.targetObj:document.querySelector("[data-id='".concat(this.uuid,"-").concat(this.props.id,"-trigger']")))&&e&&this.updateTooltipLayout(e,i,e.getAttribute("direction"))}}}},{key:"getStyleValue",value:function(t){return t+"px"}},{key:"getNewDirection",value:function(t){var e;switch(t){case"top":e="bottom";break;case"bottom":e="top";break;case"left":e="right";break;default:e="left"}return e}},{key:"showTooltip",value:function(){var t=this.canDisplayFullText(this.triggerRef);return!this.props.disable&&!this.props.showToolTipIfTruncated||!this.props.disable&&this.props.showToolTipIfTruncated&&!t}},{key:"canDisplayFullText",value:function(t){var e=this.props.truncatedRef?this.props.truncatedRef:t;if(e){var i=e.firstChild&&e.firstChild.scrollWidth&&0!==e.firstChild.scrollWidth?e.firstChild.scrollWidth:e.scrollWidth,o=e.firstChild&&e.firstChild.offsetWidth&&e.firstChild.offsetWidth||0,l=i<=(0!==o&&o<e.offsetWidth?o:e.offsetWidth);return l}return!1}},{key:"showTooltipWithDelay",value:function(){if(!this.pendingTooltip&&this.showTooltip()){var t=this;this.pendingTooltip=setTimeout((function(){t.setTooltipVisible(!0)}),this.props.delay)}}},{key:"updateTooltipLayout",value:function(t,e,i){var o=i,l=document.documentElement.clientWidth,s=document.documentElement.clientHeight,n=e.getBoundingClientRect(),r=t.querySelector("svg"),p=r.getBoundingClientRect();if(t.style.left=this.getStyleValue(n.left),t.style.top=this.getStyleValue(n.top),this.props.mousePos)this.updateLocationBasedOnMousePos(t,this.props.mousePos,i);else{if("top"===o||"bottom"===o){var h=n.left;t.offsetWidth>n.width?(h-=(t.offsetWidth-n.width)/2)<0&&(h=2):t.offsetWidth<n.width&&(h+=(n.width-t.offsetWidth)/2),t.style.left=this.getStyleValue(h),h+t.offsetWidth>l&&(t.style.left=this.getStyleValue(l-t.offsetWidth))}else if("left"===o)for(;t.offsetLeft+t.offsetWidth+p.width>Math.round(n.left);)t.style.left=this.getStyleValue(n.left-t.offsetWidth-p.width);else"right"===o&&(t.style.left=this.getStyleValue(n.right+p.width));if("top"===o)t.style.top=this.getStyleValue(n.top-p.height-t.offsetHeight);else if("bottom"===o)t.style.top=this.getStyleValue(n.bottom+p.height);else if("left"===o||"right"===o){var a=n.top;t.offsetHeight>n.height?(a-=(t.offsetHeight-n.height)/2)<0&&(a=n.top):t.offsetHeight<n.height&&(a+=(n.height-t.offsetHeight)/2),t.style.top=this.getStyleValue(a+1),s-t.offsetHeight<n.top&&(t.style.top=this.getStyleValue(s-t.offsetHeight))}"top"===o||"bottom"===o?r.style.left=this.getStyleValue(n.left-t.getBoundingClientRect().left+e.getBoundingClientRect().width/2-p.width/2+1):"left"===o?r.style.left=this.getStyleValue(t.offsetWidth-3):"right"===o&&(r.style.left=this.getStyleValue(2-p.width)),"top"===o?r.style.top=this.getStyleValue(t.offsetHeight-5):"bottom"===o?r.style.top="-11px":"left"!==o&&"right"!==o||(r.style.top=this.getStyleValue(n.top-t.getBoundingClientRect().top+e.offsetHeight/2-p.height/2))}if(this.isOutOfBounds(t)&&t.getAttribute("direction")===o){var u=this.getNewDirection(o);return this.updateTooltipLayout(t,e,u),void t.setAttribute("direction",u)}}},{key:"updateLocationBasedOnMousePos",value:function(t,e,i){var o=i,l=document.documentElement.clientWidth,s=document.documentElement.clientHeight,n=t.querySelector("svg"),r=n.getBoundingClientRect(),p=this.props.mousePos.x,h=this.props.mousePos.y;if("top"===o||"bottom"===o){var a=p-t.offsetWidth/2;l-t.offsetWidth<a?a=l-t.offsetWidth:a<0&&(a=2),t.style.left=this.getStyleValue(a)}else"left"===o?t.style.left=this.getStyleValue(p-t.offsetWidth-r.width-5):"right"===o&&(t.style.left=this.getStyleValue(p+r.width+5));if("top"===o)t.style.top=this.getStyleValue(h-r.height-t.offsetHeight);else if("bottom"===o)t.style.top=this.getStyleValue(h+2*r.height);else if("left"===o||"right"===o){var u=h-t.offsetHeight/2;s-t.offsetHeight<u?u=s-t.offsetHeight:u<0&&(u=2),t.style.top=this.getStyleValue(u+1)}"top"===o||"bottom"===o?n.style.left=this.getStyleValue(p-t.getBoundingClientRect().left-r.width/2):"left"===o?n.style.left=this.getStyleValue(t.offsetWidth-3):"right"===o&&(n.style.left=this.getStyleValue(2-r.width)),"top"===o?n.style.top=this.getStyleValue(t.offsetHeight-5):"bottom"===o?n.style.top="-11px":"left"!==o&&"right"!==o||(n.style.top=this.getStyleValue(h-t.getBoundingClientRect().top-r.height/2))}},{key:"isOutOfBounds",value:function(t){var e=parseFloat(t.style.left),i=parseFloat(t.style.top);return e+t.offsetWidth>document.documentElement.clientWidth||e<0||i<0||i+t.offsetHeight>document.documentElement.clientHeight}},{key:"toggleTooltipOnClick",value:function(t){t.stopPropagation(),t.preventDefault(),this.state.isTooltipVisible?this.setTooltipVisible(!1):this.setTooltipVisible(!0)}},{key:"hideTooltipOnScrollAndResize",value:function(t){this.state.isTooltipVisible&&this.setTooltipVisible(!1)}},{key:"tooltipLinkOnClick",value:function(t){window.open(t,"_blank","noopener")}},{key:"render",value:function(){var t=this,e=null,o=null;if(this.props.children){o=r.createElement("div",{"data-id":"".concat(this.uuid,"-").concat(this.props.id,"-trigger"),className:"tooltip-trigger",onMouseOver:this.props.showToolTipOnClick?null:function(){return t.setTooltipVisible(!0)},onMouseLeave:this.props.showToolTipOnClick?null:function(){return t.setTooltipVisible(!1)},onMouseDown:this.props.showToolTipOnClick?null:function(){return t.setTooltipVisible(!1)},onClick:this.props.showToolTipOnClick?function(e){return t.toggleTooltipOnClick(e)}:null,onFocus:this.props.showToolTipOnClick?function(){return t.showTooltipWithDelay()}:null,onBlur:this.props.showToolTipOnClick?function(e){null!==e.relatedTarget&&t.setTooltipVisible(!1)}:null,tabIndex:this.props.showToolTipOnClick?0:null,role:this.props.showToolTipOnClick?"button":null,"aria-labelledby":this.props.showToolTipOnClick?"".concat(this.uuid,"-").concat(this.props.id):null,"aria-expanded":this.props.showToolTipOnClick?this.state.isTooltipVisible:null,"aria-controls":this.props.showToolTipOnClick?"".concat(this.uuid,"-").concat(this.props.id):null,ref:function(e){return t.triggerRef=e}},this.props.children)}"string"==typeof this.props.tip?e=r.createElement("span",{className:"tooltipContainer"},this.props.tip):"object"===i(this.props.tip)?e=r.createElement("div",{className:"tooltipContainer"},this.props.tip):"function"==typeof this.props.tip&&(e=this.props.tip());var l="common-canvas-tooltip";this.props.className&&(l+=" "+this.props.className);var s=null;if(this.state.isTooltipVisible&&this.props.tooltipLinkHandler&&this.props.link){var n=this.props.tooltipLinkHandler(this.props.link);"object"===i(n)&&n.label&&n.url&&(s=r.createElement(h,{className:"tooltip-link",id:this.props.link.id,onClick:this.tooltipLinkOnClick.bind(this,n.url)},n.label))}var a=null;return(e||s)&&(a=r.createElement(p,null,r.createElement("div",{role:"tooltip",id:"".concat(this.uuid,"-").concat(this.props.id),"data-id":"".concat(this.uuid,"-").concat(this.props.id),className:l,"aria-hidden":!this.state.isTooltipVisible,direction:this.props.direction},r.createElement("svg",{className:"tipArrow",x:"0px",y:"0px",viewBox:"0 0 9.1 16.1"},r.createElement("polyline",{points:"9.1,15.7 1.4,8.1 9.1,0.5"}),r.createElement("polygon",{points:"8.1,16.1 0,8.1 8.1,0 8.1,1.4 1.4,8.1 8.1,14.7"})),e,s))),r.createElement("div",{className:"tooltip-container"},o,a)}}]),c}(r.Component);c.defaultProps={delay:200,direction:"bottom",showToolTipIfTruncated:!1,showToolTipOnClick:!1};export{c as default};
1
+ import{_ as t,a as e,b as i}from"../createClass-be661622.js";import{_ as o,a as l,b as s,c as n}from"../getPrototypeOf-3751add9.js";import r from"react";import{Portal as p}from"react-portal";import{Link as h}from"carbon-components-react";import{v4 as a}from"uuid";function u(t){var e=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(t){return!1}}();return function(){var i,o=l(t);if(e){var n=l(this).constructor;i=Reflect.construct(o,arguments,n)}else i=o.apply(this,arguments);return s(this,i)}}var c=function(l){o(c,l);var s=u(c);function c(e){var i;return t(this,c),(i=s.call(this,e)).state={isTooltipVisible:!1},i.uuid=a(),i.pendingTooltip=null,i.hideTooltipOnScrollAndResize=i.hideTooltipOnScrollAndResize.bind(n(i)),i}return e(c,[{key:"componentDidMount",value:function(){window.addEventListener("scroll",this.hideTooltipOnScrollAndResize,!0),window.addEventListener("resize",this.hideTooltipOnScrollAndResize,!0),this.props.targetObj&&this.setTooltipVisible(!0)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("scroll",this.hideTooltipOnScrollAndResize,!0),window.removeEventListener("resize",this.hideTooltipOnScrollAndResize,!0),this.pendingTooltip&&clearTimeout(this.pendingTooltip)}},{key:"setTooltipVisible",value:function(t){if((!this.showTooltip()||!t&&this.pendingTooltip)&&(clearTimeout(this.pendingTooltip),this.pendingTooltip=null,this.setState({isTooltipVisible:!1})),this.showTooltip()){var e=document.querySelector("[data-id='".concat(this.uuid,"-").concat(this.props.id,"']"));if(this.pendingTooltip=null,this.setState({isTooltipVisible:t}),t){var i=null;(i=this.props.targetObj?this.props.targetObj:document.querySelector("[data-id='".concat(this.uuid,"-").concat(this.props.id,"-trigger']")))&&e&&this.updateTooltipLayout(e,i,e.getAttribute("direction"))}}}},{key:"getStyleValue",value:function(t){return t+"px"}},{key:"getNewDirection",value:function(t){var e;switch(t){case"top":e="bottom";break;case"bottom":e="top";break;case"left":e="right";break;default:e="left"}return e}},{key:"showTooltip",value:function(){var t=this.canDisplayFullText(this.triggerRef);return!this.props.disable&&!this.props.showToolTipIfTruncated||!this.props.disable&&this.props.showToolTipIfTruncated&&!t}},{key:"canDisplayFullText",value:function(t){var e=this.props.truncatedRef?this.props.truncatedRef:t;if(e){var i=e.firstChild&&e.firstChild.scrollWidth&&0!==e.firstChild.scrollWidth?e.firstChild.scrollWidth:e.scrollWidth,o=e.firstChild&&e.firstChild.offsetWidth&&e.firstChild.offsetWidth||0,l=i<=(0!==o&&o<e.offsetWidth?o:e.offsetWidth);return l}return!1}},{key:"showTooltipWithDelay",value:function(){if(!this.pendingTooltip&&this.showTooltip()){var t=this;this.pendingTooltip=setTimeout((function(){t.setTooltipVisible(!0)}),this.props.delay)}}},{key:"updateTooltipLayout",value:function(t,e,i){var o=i,l=document.documentElement.clientWidth,s=document.documentElement.clientHeight,n=e.getBoundingClientRect(),r=t.querySelector("svg"),p=r.getBoundingClientRect();if(t.style.left=this.getStyleValue(n.left),t.style.top=this.getStyleValue(n.top),this.props.mousePos)this.updateLocationBasedOnMousePos(t,this.props.mousePos,i);else{if("top"===o||"bottom"===o){var h=n.left;t.offsetWidth>n.width?(h-=(t.offsetWidth-n.width)/2)<0&&(h=2):t.offsetWidth<n.width&&(h+=(n.width-t.offsetWidth)/2),t.style.left=this.getStyleValue(h),h+t.offsetWidth>l&&(t.style.left=this.getStyleValue(l-t.offsetWidth))}else if("left"===o)for(;t.offsetLeft+t.offsetWidth+p.width>Math.round(n.left);)t.style.left=this.getStyleValue(n.left-t.offsetWidth-p.width);else"right"===o&&(t.style.left=this.getStyleValue(n.right+p.width));if("top"===o)t.style.top=this.getStyleValue(n.top-p.height-t.offsetHeight);else if("bottom"===o)t.style.top=this.getStyleValue(n.bottom+p.height);else if("left"===o||"right"===o){var a=n.top;t.offsetHeight>n.height?(a-=(t.offsetHeight-n.height)/2)<0&&(a=n.top):t.offsetHeight<n.height&&(a+=(n.height-t.offsetHeight)/2),t.style.top=this.getStyleValue(a+1),s-t.offsetHeight<n.top&&(t.style.top=this.getStyleValue(s-t.offsetHeight))}"top"===o||"bottom"===o?r.style.left=this.getStyleValue(n.left-t.getBoundingClientRect().left+e.getBoundingClientRect().width/2-p.width/2+1):"left"===o?r.style.left=this.getStyleValue(t.offsetWidth-3):"right"===o&&(r.style.left=this.getStyleValue(2-p.width)),"top"===o?r.style.top=this.getStyleValue(t.offsetHeight-5):"bottom"===o?r.style.top="-11px":"left"!==o&&"right"!==o||(r.style.top=this.getStyleValue(n.top-t.getBoundingClientRect().top+e.offsetHeight/2-p.height/2))}if(this.isOutOfBounds(t)&&t.getAttribute("direction")===o){var u=this.getNewDirection(o);return this.updateTooltipLayout(t,e,u),void t.setAttribute("direction",u)}}},{key:"updateLocationBasedOnMousePos",value:function(t,e,i){var o=i,l=document.documentElement.clientWidth,s=document.documentElement.clientHeight,n=t.querySelector("svg"),r=n.getBoundingClientRect(),p=this.props.mousePos.x,h=this.props.mousePos.y;if("top"===o||"bottom"===o){var a=p-t.offsetWidth/2;l-t.offsetWidth<a?a=l-t.offsetWidth:a<0&&(a=2),t.style.left=this.getStyleValue(a)}else"left"===o?t.style.left=this.getStyleValue(p-t.offsetWidth-r.width-5):"right"===o&&(t.style.left=this.getStyleValue(p+r.width+5));if("top"===o)t.style.top=this.getStyleValue(h-r.height-t.offsetHeight);else if("bottom"===o)t.style.top=this.getStyleValue(h+2*r.height);else if("left"===o||"right"===o){var u=h-t.offsetHeight/2;s-t.offsetHeight<u?u=s-t.offsetHeight:u<0&&(u=2),t.style.top=this.getStyleValue(u+1)}"top"===o||"bottom"===o?n.style.left=this.getStyleValue(p-t.getBoundingClientRect().left-r.width/2):"left"===o?n.style.left=this.getStyleValue(t.offsetWidth-3):"right"===o&&(n.style.left=this.getStyleValue(2-r.width)),"top"===o?n.style.top=this.getStyleValue(t.offsetHeight-5):"bottom"===o?n.style.top="-11px":"left"!==o&&"right"!==o||(n.style.top=this.getStyleValue(h-t.getBoundingClientRect().top-r.height/2))}},{key:"isOutOfBounds",value:function(t){var e=parseFloat(t.style.left),i=parseFloat(t.style.top);return e+t.offsetWidth>document.documentElement.clientWidth||e<0||i<0||i+t.offsetHeight>document.documentElement.clientHeight}},{key:"toggleTooltipOnClick",value:function(t){t.stopPropagation(),t.preventDefault(),this.state.isTooltipVisible?this.setTooltipVisible(!1):this.setTooltipVisible(!0)}},{key:"hideTooltipOnScrollAndResize",value:function(t){this.state.isTooltipVisible&&this.setTooltipVisible(!1)}},{key:"render",value:function(){var t=this,e=null,o=null;if(this.props.children){o=r.createElement("div",{"data-id":"".concat(this.uuid,"-").concat(this.props.id,"-trigger"),className:"tooltip-trigger",onMouseOver:this.props.showToolTipOnClick?null:function(){return t.setTooltipVisible(!0)},onMouseLeave:this.props.showToolTipOnClick?null:function(){return t.setTooltipVisible(!1)},onMouseDown:this.props.showToolTipOnClick?null:function(){return t.setTooltipVisible(!1)},onClick:this.props.showToolTipOnClick?function(e){return t.toggleTooltipOnClick(e)}:null,onFocus:this.props.showToolTipOnClick?function(){return t.showTooltipWithDelay()}:null,onBlur:this.props.showToolTipOnClick?function(e){null===e.relatedTarget&&t.setTooltipVisible(!1)}:null,tabIndex:this.props.showToolTipOnClick?0:null,role:this.props.showToolTipOnClick?"button":null,"aria-labelledby":this.props.showToolTipOnClick?"".concat(this.uuid,"-").concat(this.props.id):null,"aria-expanded":this.props.showToolTipOnClick?this.state.isTooltipVisible:null,"aria-controls":this.props.showToolTipOnClick?"".concat(this.uuid,"-").concat(this.props.id):null,ref:function(e){return t.triggerRef=e}},this.props.children)}"string"==typeof this.props.tip?e=r.createElement("span",{className:"tooltipContainer"},this.props.tip):"object"===i(this.props.tip)?e=r.createElement("div",{className:"tooltipContainer"},this.props.tip):"function"==typeof this.props.tip&&(e=this.props.tip());var l="common-canvas-tooltip";this.props.className&&(l+=" "+this.props.className);var s=null;if(this.state.isTooltipVisible&&this.props.tooltipLinkHandler&&this.props.link){var n=this.props.tooltipLinkHandler(this.props.link);"object"===i(n)&&n.label&&n.url&&(s=r.createElement(h,{className:"tooltip-link",id:this.props.link.id,href:n.url,target:"_blank",rel:"noopener",visited:!1},n.label))}var a=null;return(e||s)&&(a=r.createElement(p,null,r.createElement("div",{role:"tooltip",id:"".concat(this.uuid,"-").concat(this.props.id),"data-id":"".concat(this.uuid,"-").concat(this.props.id),className:l,"aria-hidden":!this.state.isTooltipVisible,direction:this.props.direction},r.createElement("svg",{className:"tipArrow",x:"0px",y:"0px",viewBox:"0 0 9.1 16.1"},r.createElement("polyline",{points:"9.1,15.7 1.4,8.1 9.1,0.5"}),r.createElement("polygon",{points:"8.1,16.1 0,8.1 8.1,0 8.1,1.4 1.4,8.1 8.1,14.7"})),e,s))),r.createElement("div",{className:"tooltip-container"},o,a)}}]),c}(r.Component);c.defaultProps={delay:200,direction:"bottom",showToolTipIfTruncated:!1,showToolTipOnClick:!1};export{c as default};
2
2
  //# sourceMappingURL=tooltip.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.es.js","sources":["../../src/tooltip/tooltip.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/*\n\tThis code is a modified version from portal-common-api for the Elyra canvas tooltips\n*/\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Portal } from \"react-portal\";\nimport { Link } from \"carbon-components-react\";\nimport { v4 as uuid4 } from \"uuid\";\n\nclass ToolTip extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tisTooltipVisible: false\n\t\t};\n\t\tthis.uuid = uuid4();\n\t\tthis.pendingTooltip = null;\n\t\tthis.hideTooltipOnScrollAndResize = this.hideTooltipOnScrollAndResize.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\twindow.addEventListener(\"scroll\", this.hideTooltipOnScrollAndResize, true);\n\t\twindow.addEventListener(\"resize\", this.hideTooltipOnScrollAndResize, true);\n\t\tif (this.props.targetObj) {\n\t\t\tthis.setTooltipVisible(true);\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"scroll\", this.hideTooltipOnScrollAndResize, true);\n\t\twindow.removeEventListener(\"resize\", this.hideTooltipOnScrollAndResize, true);\n\t\tif (this.pendingTooltip) {\n\t\t\tclearTimeout(this.pendingTooltip);\n\t\t}\n\t}\n\n\tsetTooltipVisible(visible) {\n\t\t// clear the display timer if set\n\t\tif (!this.showTooltip() || (!visible && this.pendingTooltip)) {\n\t\t\tclearTimeout(this.pendingTooltip);\n\t\t\tthis.pendingTooltip = null;\n\t\t\tthis.setState({\n\t\t\t\tisTooltipVisible: false\n\t\t\t});\n\t\t}\n\n\n\t\tif (this.showTooltip()) {\n\t\t\tconst tooltip = document.querySelector(`[data-id='${this.uuid}-${this.props.id}']`);\n\t\t\tthis.pendingTooltip = null;\n\t\t\tthis.setState({\n\t\t\t\tisTooltipVisible: visible\n\t\t\t});\n\t\t\t// updates the tooltip display\n\t\t\tif (visible) {\n\t\t\t\tlet tooltipTrigger = null;\n\t\t\t\tif (this.props.targetObj) {\n\t\t\t\t\ttooltipTrigger = this.props.targetObj;\n\t\t\t\t} else {\n\t\t\t\t\ttooltipTrigger = document.querySelector(`[data-id='${this.uuid}-${this.props.id}-trigger']`);\n\t\t\t\t}\n\t\t\t\tif (tooltipTrigger && tooltip) {\n\t\t\t\t\tthis.updateTooltipLayout(tooltip, tooltipTrigger, tooltip.getAttribute(\"direction\"));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetStyleValue(value) {\n\t\treturn value + \"px\";\n\t}\n\n\tgetNewDirection(currentDirection) {\n\t\tlet newDirection;\n\t\tswitch (currentDirection) {\n\t\tcase \"top\":\n\t\t\tnewDirection = \"bottom\";\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\tnewDirection = \"top\";\n\t\t\tbreak;\n\t\tcase \"left\":\n\t\t\tnewDirection = \"right\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tnewDirection = \"left\";\n\t\t}\n\t\treturn newDirection;\n\t}\n\n\tshowTooltip() {\n\t\tconst canDisplayFullText = this.canDisplayFullText(this.triggerRef);\n\t\tconst showToolTip = (\n\t\t\t// show tooltip if not disabled and showToolTipIfTruncated is false\n\t\t\t(!this.props.disable && !this.props.showToolTipIfTruncated) ||\n\t\t\t// show tooltip if not disabled and showToolTipIfTruncated is true and string is truncated\n\t\t\t(!this.props.disable && this.props.showToolTipIfTruncated && !canDisplayFullText));\n\t\treturn showToolTip;\n\t}\n\n\t// Return true if the string can be displayed in the available space\n\t// Return false if the string is truncated and ellipsis is shown on the UI\n\t// (offsetWidth) is a measurement in pixels of the element's CSS width, including any borders, padding, and vertical scrollbars\n\t// (scrollWidth) value is equal to the minimum width the element would require\n\t// in order to fit all the content in the viewport without using a horizontal scrollbar\n\tcanDisplayFullText(elem) {\n\t\tconst triggerElem = this.props.truncatedRef ? this.props.truncatedRef : elem;\n\t\tif (triggerElem) {\n\t\t\tconst fullWidth = triggerElem.firstChild && triggerElem.firstChild.scrollWidth && triggerElem.firstChild.scrollWidth !== 0 ? triggerElem.firstChild.scrollWidth\n\t\t\t\t: triggerElem.scrollWidth;\n\t\t\tconst childWidth = triggerElem.firstChild && triggerElem.firstChild.offsetWidth && triggerElem.firstChild.offsetWidth || 0;\n\t\t\t// need different handling when content is within a span vs div\n\t\t\tconst displayWidth = childWidth !== 0 && childWidth < triggerElem.offsetWidth ? childWidth : triggerElem.offsetWidth;\n\t\t\tconst canDisplayFullText = fullWidth <= displayWidth;\n\t\t\treturn canDisplayFullText;\n\t\t}\n\t\treturn false; // Show tooltip if we cannot read the width (Canvas objects)\n\t}\n\n\tshowTooltipWithDelay() {\n\n\t\t// set a delay on displaying the tooltip\n\t\tif (!this.pendingTooltip && this.showTooltip()) {\n\t\t\tconst that = this;\n\t\t\tthis.pendingTooltip = setTimeout(function() {\n\t\t\t\tthat.setTooltipVisible(true);\n\t\t\t}, this.props.delay);\n\t\t}\n\n\t}\n\n\tupdateTooltipLayout(tooltip, tooltipTrigger, direction) {\n\t\tconst tooltipDirection = direction;\n\t\tconst viewPortWidth = document.documentElement.clientWidth;\n\t\tconst viewPortHeight = document.documentElement.clientHeight;\n\t\tconst triggerLayout = tooltipTrigger.getBoundingClientRect();\n\t\tconst pointer = tooltip.querySelector(\"svg\");\n\t\tconst pointerLayout = pointer.getBoundingClientRect();\n\t\tconst pointerCorrection = 1;\n\n\t\t// always initialize tooltip location so it's all visible to ensure adjustments are done on the right size\n\t\ttooltip.style.left = this.getStyleValue(triggerLayout.left);\n\t\ttooltip.style.top = this.getStyleValue(triggerLayout.top);\n\n\t\tif (this.props.mousePos) {\n\t\t\tthis.updateLocationBasedOnMousePos(tooltip, this.props.mousePos, direction);\n\t\t} else { // tooltip relativ to element\n\t\t\t// tooltip - left correction\n\t\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\t\tlet tooltipLeft = triggerLayout.left;\n\t\t\t\tif (tooltip.offsetWidth > triggerLayout.width) {\n\t\t\t\t\ttooltipLeft -= (tooltip.offsetWidth - triggerLayout.width) / 2; // distribute overlap evenly left and right\n\t\t\t\t\tif (tooltipLeft < 0) {\n\t\t\t\t\t\ttooltipLeft = 2; // hitting left border\n\t\t\t\t\t}\n\t\t\t\t} else if (tooltip.offsetWidth < triggerLayout.width) {\n\t\t\t\t\ttooltipLeft += (triggerLayout.width - tooltip.offsetWidth) / 2; // center tip within triggerLayout\n\t\t\t\t}\n\t\t\t\ttooltip.style.left = this.getStyleValue(tooltipLeft);\n\t\t\t\tif ((tooltipLeft + tooltip.offsetWidth) > viewPortWidth) {\n\t\t\t\t\ttooltip.style.left = this.getStyleValue(viewPortWidth - tooltip.offsetWidth); // hitting right border\n\t\t\t\t}\n\t\t\t} else if (tooltipDirection === \"left\") {\n\t\t\t\t// For long tooltips, tooltip.offsetWidth is updated after setting tooltip.style.left. Ensure tooltip doesn't overlap tooltipTrigger element.\n\t\t\t\twhile ((tooltip.offsetLeft + tooltip.offsetWidth + pointerLayout.width) > Math.round(triggerLayout.left)) {\n\t\t\t\t\ttooltip.style.left = this.getStyleValue(triggerLayout.left - tooltip.offsetWidth - pointerLayout.width);\n\t\t\t\t}\n\t\t\t} else if (tooltipDirection === \"right\") {\n\t\t\t\ttooltip.style.left = this.getStyleValue(triggerLayout.right + pointerLayout.width);\n\t\t\t}\n\n\t\t\t// tooltip - top correction\n\t\t\tif (tooltipDirection === \"top\") {\n\t\t\t\ttooltip.style.top = this.getStyleValue(triggerLayout.top - pointerLayout.height - tooltip.offsetHeight);\n\t\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\t\ttooltip.style.top = this.getStyleValue(triggerLayout.bottom + pointerLayout.height);\n\t\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\t\tlet tooltipTop = triggerLayout.top;\n\t\t\t\tif (tooltip.offsetHeight > triggerLayout.height) {\n\t\t\t\t\ttooltipTop -= (tooltip.offsetHeight - triggerLayout.height) / 2; // distribute overlap evenly top and bottom\n\t\t\t\t\tif (tooltipTop < 0) {\n\t\t\t\t\t\ttooltipTop = triggerLayout.top; // hitting top border\n\t\t\t\t\t}\n\t\t\t\t} else if (tooltip.offsetHeight < triggerLayout.height) {\n\t\t\t\t\ttooltipTop += (triggerLayout.height - tooltip.offsetHeight) / 2; // center tip within triggerLayout\n\t\t\t\t}\n\t\t\t\ttooltip.style.top = this.getStyleValue(tooltipTop + pointerCorrection);\n\t\t\t\tif ((viewPortHeight - tooltip.offsetHeight) < triggerLayout.top) {\n\t\t\t\t\ttooltip.style.top = this.getStyleValue(viewPortHeight - tooltip.offsetHeight); // hitting bottom border\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// pointer - left correction\n\t\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(triggerLayout.left - tooltip.getBoundingClientRect().left +\n\t\t\t\t\ttooltipTrigger.getBoundingClientRect().width / 2 - pointerLayout.width / 2\t + pointerCorrection);\n\t\t\t} else if (tooltipDirection === \"left\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(tooltip.offsetWidth - 3);\n\t\t\t} else if (tooltipDirection === \"right\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(-pointerLayout.width + 2);\n\t\t\t}\n\n\t\t\t// pointer - top correction\n\t\t\tif (tooltipDirection === \"top\") {\n\t\t\t\tpointer.style.top = this.getStyleValue(tooltip.offsetHeight - 5);\n\t\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\t\tpointer.style.top = \"-11px\";\n\t\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\t\tpointer.style.top = this.getStyleValue(triggerLayout.top - tooltip.getBoundingClientRect().top +\n\t\t\t\t\ttooltipTrigger.offsetHeight / 2 - pointerLayout.height / 2);\n\t\t\t}\n\t\t}\n\n\t\t// check if out-of-bounds at the end and if so, trigger new layout on opposite site if not already re-rendered already\n\t\tif (this.isOutOfBounds(tooltip) && tooltip.getAttribute(\"direction\") === tooltipDirection) {\n\t\t\tconst newDirection = this.getNewDirection(tooltipDirection);\n\t\t\tthis.updateTooltipLayout(tooltip, tooltipTrigger, newDirection);\n\t\t\t// update class name directly, otherwise setState triggers re-render loop in canvas\n\t\t\t// also call after updateTooltipLayout, otherwise the newDirection and class of trigger are the same\n\t\t\ttooltip.setAttribute(\"direction\", newDirection);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tupdateLocationBasedOnMousePos(tooltip, mousePos, direction) {\n\t\tconst tooltipDirection = direction;\n\t\tconst viewPortWidth = document.documentElement.clientWidth;\n\t\tconst viewPortHeight = document.documentElement.clientHeight;\n\t\tconst pointer = tooltip.querySelector(\"svg\");\n\t\tconst pointerLayout = pointer.getBoundingClientRect();\n\t\tconst pointerCorrection = 1;\n\n\t\tconst mouseX = this.props.mousePos.x;\n\t\tconst mouseY = this.props.mousePos.y;\n\t\t// if mouse position is passed in, use the cursor as reference point\n\n\t\t// tooltip - left correction\n\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\tlet tooltipLeft = mouseX - tooltip.offsetWidth / 2;\n\t\t\tif ((viewPortWidth - tooltip.offsetWidth) < tooltipLeft) {\n\t\t\t\ttooltipLeft = viewPortWidth - tooltip.offsetWidth; // hitting right border\n\t\t\t} else if (tooltipLeft < 0) {\n\t\t\t\ttooltipLeft = 2; // hitting left border\n\t\t\t}\n\t\t\ttooltip.style.left = this.getStyleValue(tooltipLeft);\n\t\t} else if (tooltipDirection === \"left\") {\n\t\t\ttooltip.style.left = this.getStyleValue(mouseX - tooltip.offsetWidth - pointerLayout.width - 5);\n\t\t} else if (tooltipDirection === \"right\") {\n\t\t\ttooltip.style.left = this.getStyleValue(mouseX + pointerLayout.width + 5);\n\t\t}\n\n\t\t// tooltip - top correction\n\t\tif (tooltipDirection === \"top\") {\n\t\t\ttooltip.style.top = this.getStyleValue(mouseY - pointerLayout.height - tooltip.offsetHeight);\n\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\ttooltip.style.top = this.getStyleValue(mouseY + 2 * pointerLayout.height);\n\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\tlet tooltipTop = mouseY - tooltip.offsetHeight / 2;\n\t\t\tif ((viewPortHeight - tooltip.offsetHeight) < tooltipTop) {\n\t\t\t\ttooltipTop = viewPortHeight - tooltip.offsetHeight; // hitting bottom border\n\t\t\t} else if (tooltipTop < 0) {\n\t\t\t\ttooltipTop = 2; // hitting top border\n\t\t\t}\n\t\t\ttooltip.style.top = this.getStyleValue(tooltipTop + pointerCorrection);\n\t\t}\n\n\t\t// pointer - left correction\n\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\tpointer.style.left = this.getStyleValue(mouseX - tooltip.getBoundingClientRect().left - pointerLayout.width / 2);\n\t\t} else if (tooltipDirection === \"left\") {\n\t\t\tpointer.style.left = this.getStyleValue(tooltip.offsetWidth - 3);\n\t\t} else if (tooltipDirection === \"right\") {\n\t\t\tpointer.style.left = this.getStyleValue(-pointerLayout.width + 2);\n\t\t}\n\n\t\t// pointer - top correction\n\t\tif (tooltipDirection === \"top\") {\n\t\t\tpointer.style.top = this.getStyleValue(tooltip.offsetHeight - 5);\n\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\tpointer.style.top = \"-11px\";\n\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\tpointer.style.top = this.getStyleValue(mouseY - tooltip.getBoundingClientRect().top - pointerLayout.height / 2);\n\t\t}\n\t}\n\n\tisOutOfBounds(tooltip) {\n\t\tconst tooltipLeft = parseFloat(tooltip.style.left);\n\t\tconst tooltipTop = parseFloat(tooltip.style.top);\n\t\treturn (((tooltipLeft + tooltip.offsetWidth) > document.documentElement.clientWidth) || // to the right\n\t\t\t\t(tooltipLeft < 0) || // to the left\n\t\t\t\t(tooltipTop < 0) || // to the top\n\t\t\t\t((tooltipTop + tooltip.offsetHeight) > document.documentElement.clientHeight)); // to the bottom\n\t}\n\n\ttoggleTooltipOnClick(evt) {\n\t\t// 'blur' event occurs before 'click' event. Because of this, onBlur function is called which hides the tooltip.\n\t\t// To prevent this default behavior, stopPropagation and preventDefault is used.\n\t\tevt.stopPropagation();\n\t\tevt.preventDefault();\n\t\tif (this.state.isTooltipVisible) {\n\t\t\t// Tooltip is visible and user clicks on trigger element again, hide tooltip\n\t\t\tthis.setTooltipVisible(false);\n\t\t} else {\n\t\t\tthis.setTooltipVisible(true);\n\t\t}\n\t}\n\n\thideTooltipOnScrollAndResize(evt) {\n\t\tif (this.state.isTooltipVisible) {\n\t\t\tthis.setTooltipVisible(false);\n\t\t}\n\t}\n\n\ttooltipLinkOnClick(url) {\n\t\twindow.open(url, \"_blank\", \"noopener\");\n\t}\n\n\trender() {\n\t\tlet tooltipContent = null;\n\t\tlet triggerContent = null;\n\t\tif (this.props.children) {\n\t\t\t// when children are passed in, tooltip will handle show/hide, otherwise consumer has to hide show/hide tooltip\n\t\t\tconst mouseover = () => this.setTooltipVisible(true);\n\t\t\tconst mouseleave = () => this.setTooltipVisible(false);\n\t\t\tconst mousedown = () => this.setTooltipVisible(false);\n\t\t\t// `focus` event occurs before `click`. Adding timeout in onFocus function to ensure click is executed first.\n\t\t\t// Ref - https://stackoverflow.com/a/49512400\n\t\t\tconst onFocus = () => this.showTooltipWithDelay();\n\t\t\tconst onBlur = (evt) => {\n\t\t\t\t// Keep tooltip visible when clicked on a link.\n\t\t\t\t// Since link is an anchor tag without \"href\" attribute, it has relatedTarget=null\n\t\t\t\tif (evt.relatedTarget !== null) {\n\t\t\t\t\tthis.setTooltipVisible(false);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst click = (evt) => this.toggleTooltipOnClick(evt);\n\n\t\t\ttriggerContent = (<div\n\t\t\t\tdata-id={`${this.uuid}-${this.props.id}-trigger`}\n\t\t\t\tclassName=\"tooltip-trigger\"\n\t\t\t\tonMouseOver={!this.props.showToolTipOnClick ? mouseover : null}\n\t\t\t\tonMouseLeave={!this.props.showToolTipOnClick ? mouseleave : null}\n\t\t\t\tonMouseDown={!this.props.showToolTipOnClick ? mousedown : null}\n\t\t\t\tonClick={this.props.showToolTipOnClick ? click : null}\n\t\t\t\tonFocus={this.props.showToolTipOnClick ? onFocus : null} // When focused using keyboard\n\t\t\t\tonBlur={this.props.showToolTipOnClick ? onBlur : null}\n\t\t\t\ttabIndex={this.props.showToolTipOnClick ? 0 : null}\n\t\t\t\trole={this.props.showToolTipOnClick ? \"button\" : null}\n\t\t\t\taria-labelledby={this.props.showToolTipOnClick ? `${this.uuid}-${this.props.id}` : null}\n\t\t\t\taria-expanded={this.props.showToolTipOnClick ? this.state.isTooltipVisible : null}\n\t\t\t\taria-controls={this.props.showToolTipOnClick ? `${this.uuid}-${this.props.id}` : null}\n\t\t\t\tref={(ref) => (this.triggerRef = ref)}\n\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</div>);\n\t\t}\n\n\t\tif ((typeof this.props.tip) === \"string\") {\n\t\t\ttooltipContent = (\n\t\t\t\t<span className=\"tooltipContainer\">\n\t\t\t\t\t{this.props.tip}\n\t\t\t\t</span>\n\t\t\t);\n\t\t} else if ((typeof this.props.tip) === \"object\") {\n\t\t\ttooltipContent = (\n\t\t\t\t<div className=\"tooltipContainer\">\n\t\t\t\t\t{this.props.tip}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ((typeof this.props.tip) === \"function\") {\n\t\t\ttooltipContent = this.props.tip();\n\t\t}\n\n\t\tlet tipClass = \"common-canvas-tooltip\";\n\t\tif (this.props.className) {\n\t\t\ttipClass += \" \" + this.props.className;\n\t\t}\n\n\t\tlet link = null;\n\t\tif (this.state.isTooltipVisible && this.props.tooltipLinkHandler && this.props.link) {\n\t\t\tconst linkInformation = this.props.tooltipLinkHandler(this.props.link);\n\t\t\t// Verify tooltipLinkHandler returns object in correct format\n\t\t\tif (typeof linkInformation === \"object\" && linkInformation.label && linkInformation.url) {\n\t\t\t\tlink = (<Link\n\t\t\t\t\tclassName=\"tooltip-link\"\n\t\t\t\t\tid={this.props.link.id}\n\t\t\t\t\tonClick={this.tooltipLinkOnClick.bind(this, linkInformation.url)}\n\t\t\t\t>\n\t\t\t\t\t{linkInformation.label}\n\t\t\t\t</Link>);\n\t\t\t}\n\t\t}\n\n\t\tlet tooltip = null;\n\t\tif (tooltipContent || link) {\n\t\t\ttooltip = (\n\t\t\t\t<Portal>\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"tooltip\"\n\t\t\t\t\t\tid={`${this.uuid}-${this.props.id}`}\n\t\t\t\t\t\tdata-id={`${this.uuid}-${this.props.id}`}\n\t\t\t\t\t\tclassName={tipClass}\n\t\t\t\t\t\taria-hidden={!this.state.isTooltipVisible}\n\t\t\t\t\t\tdirection={this.props.direction}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg className=\"tipArrow\" x=\"0px\" y=\"0px\" viewBox=\"0 0 9.1 16.1\">\n\t\t\t\t\t\t\t<polyline points=\"9.1,15.7 1.4,8.1 9.1,0.5\" />\n\t\t\t\t\t\t\t<polygon points=\"8.1,16.1 0,8.1 8.1,0 8.1,1.4 1.4,8.1 8.1,14.7\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t{tooltipContent}\n\t\t\t\t\t\t{link}\n\t\t\t\t\t</div>\n\t\t\t\t</Portal>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div className=\"tooltip-container\">\n\t\t\t\t{triggerContent}\n\t\t\t\t{tooltip}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nToolTip.propTypes = {\n\ttip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]).isRequired,\n\tlink: PropTypes.object,\n\ttooltipLinkHandler: PropTypes.func,\n\tdirection: PropTypes.oneOf([\"left\", \"right\", \"top\", \"bottom\"]),\n\tchildren: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n\ttargetObj: PropTypes.object,\n\tid: PropTypes.string.isRequired,\n\tclassName: PropTypes.string,\n\tmousePos: PropTypes.object,\n\tdisable: PropTypes.bool, // Tooltip will not show if disabled\n\tshowToolTipIfTruncated: PropTypes.bool, // Set to true to only display tooltip if full text does not fit in displayable width\n\ttruncatedRef: PropTypes.object,\n\tdelay: PropTypes.number,\n\tshowToolTipOnClick: PropTypes.bool\n};\n\nToolTip.defaultProps = {\n\tdelay: 200,\n\tdirection: \"bottom\",\n\tshowToolTipIfTruncated: false, // False will always show Tooltip even when whole word can be displayed\n\tshowToolTipOnClick: false\n};\n\nexport default ToolTip;\n"],"names":["ToolTip","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","state","isTooltipVisible","uuid","uuid4","pendingTooltip","hideTooltipOnScrollAndResize","bind","_assertThisInitialized","_createClass","key","value","window","addEventListener","this","targetObj","setTooltipVisible","removeEventListener","clearTimeout","visible","showTooltip","setState","tooltip","document","querySelector","concat","id","tooltipTrigger","updateTooltipLayout","getAttribute","currentDirection","newDirection","canDisplayFullText","triggerRef","disable","showToolTipIfTruncated","elem","triggerElem","truncatedRef","fullWidth","firstChild","scrollWidth","childWidth","offsetWidth","that","setTimeout","delay","direction","tooltipDirection","viewPortWidth","documentElement","clientWidth","viewPortHeight","clientHeight","triggerLayout","getBoundingClientRect","pointer","pointerLayout","style","left","getStyleValue","top","mousePos","updateLocationBasedOnMousePos","tooltipLeft","width","offsetLeft","Math","round","right","height","offsetHeight","bottom","tooltipTop","isOutOfBounds","getNewDirection","setAttribute","mouseX","x","mouseY","y","parseFloat","evt","stopPropagation","preventDefault","url","open","_this2","tooltipContent","triggerContent","children","React","createElement","className","onMouseOver","showToolTipOnClick","onMouseLeave","onMouseDown","onClick","toggleTooltipOnClick","onFocus","showTooltipWithDelay","onBlur","relatedTarget","tabIndex","role","ref","tip","_typeof","tipClass","link","tooltipLinkHandler","linkInformation","label","Link","tooltipLinkOnClick","Portal","viewBox","points","Component","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"tooltip.es.js","sources":["../../src/tooltip/tooltip.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/*\n\tThis code is a modified version from portal-common-api for the Elyra canvas tooltips\n*/\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Portal } from \"react-portal\";\nimport { Link } from \"carbon-components-react\";\nimport { v4 as uuid4 } from \"uuid\";\n\nclass ToolTip extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tisTooltipVisible: false\n\t\t};\n\t\tthis.uuid = uuid4();\n\t\tthis.pendingTooltip = null;\n\t\tthis.hideTooltipOnScrollAndResize = this.hideTooltipOnScrollAndResize.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\twindow.addEventListener(\"scroll\", this.hideTooltipOnScrollAndResize, true);\n\t\twindow.addEventListener(\"resize\", this.hideTooltipOnScrollAndResize, true);\n\t\tif (this.props.targetObj) {\n\t\t\tthis.setTooltipVisible(true);\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"scroll\", this.hideTooltipOnScrollAndResize, true);\n\t\twindow.removeEventListener(\"resize\", this.hideTooltipOnScrollAndResize, true);\n\t\tif (this.pendingTooltip) {\n\t\t\tclearTimeout(this.pendingTooltip);\n\t\t}\n\t}\n\n\tsetTooltipVisible(visible) {\n\t\t// clear the display timer if set\n\t\tif (!this.showTooltip() || (!visible && this.pendingTooltip)) {\n\t\t\tclearTimeout(this.pendingTooltip);\n\t\t\tthis.pendingTooltip = null;\n\t\t\tthis.setState({\n\t\t\t\tisTooltipVisible: false\n\t\t\t});\n\t\t}\n\n\n\t\tif (this.showTooltip()) {\n\t\t\tconst tooltip = document.querySelector(`[data-id='${this.uuid}-${this.props.id}']`);\n\t\t\tthis.pendingTooltip = null;\n\t\t\tthis.setState({\n\t\t\t\tisTooltipVisible: visible\n\t\t\t});\n\t\t\t// updates the tooltip display\n\t\t\tif (visible) {\n\t\t\t\tlet tooltipTrigger = null;\n\t\t\t\tif (this.props.targetObj) {\n\t\t\t\t\ttooltipTrigger = this.props.targetObj;\n\t\t\t\t} else {\n\t\t\t\t\ttooltipTrigger = document.querySelector(`[data-id='${this.uuid}-${this.props.id}-trigger']`);\n\t\t\t\t}\n\t\t\t\tif (tooltipTrigger && tooltip) {\n\t\t\t\t\tthis.updateTooltipLayout(tooltip, tooltipTrigger, tooltip.getAttribute(\"direction\"));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetStyleValue(value) {\n\t\treturn value + \"px\";\n\t}\n\n\tgetNewDirection(currentDirection) {\n\t\tlet newDirection;\n\t\tswitch (currentDirection) {\n\t\tcase \"top\":\n\t\t\tnewDirection = \"bottom\";\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\tnewDirection = \"top\";\n\t\t\tbreak;\n\t\tcase \"left\":\n\t\t\tnewDirection = \"right\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tnewDirection = \"left\";\n\t\t}\n\t\treturn newDirection;\n\t}\n\n\tshowTooltip() {\n\t\tconst canDisplayFullText = this.canDisplayFullText(this.triggerRef);\n\t\tconst showToolTip = (\n\t\t\t// show tooltip if not disabled and showToolTipIfTruncated is false\n\t\t\t(!this.props.disable && !this.props.showToolTipIfTruncated) ||\n\t\t\t// show tooltip if not disabled and showToolTipIfTruncated is true and string is truncated\n\t\t\t(!this.props.disable && this.props.showToolTipIfTruncated && !canDisplayFullText));\n\t\treturn showToolTip;\n\t}\n\n\t// Return true if the string can be displayed in the available space\n\t// Return false if the string is truncated and ellipsis is shown on the UI\n\t// (offsetWidth) is a measurement in pixels of the element's CSS width, including any borders, padding, and vertical scrollbars\n\t// (scrollWidth) value is equal to the minimum width the element would require\n\t// in order to fit all the content in the viewport without using a horizontal scrollbar\n\tcanDisplayFullText(elem) {\n\t\tconst triggerElem = this.props.truncatedRef ? this.props.truncatedRef : elem;\n\t\tif (triggerElem) {\n\t\t\tconst fullWidth = triggerElem.firstChild && triggerElem.firstChild.scrollWidth && triggerElem.firstChild.scrollWidth !== 0 ? triggerElem.firstChild.scrollWidth\n\t\t\t\t: triggerElem.scrollWidth;\n\t\t\tconst childWidth = triggerElem.firstChild && triggerElem.firstChild.offsetWidth && triggerElem.firstChild.offsetWidth || 0;\n\t\t\t// need different handling when content is within a span vs div\n\t\t\tconst displayWidth = childWidth !== 0 && childWidth < triggerElem.offsetWidth ? childWidth : triggerElem.offsetWidth;\n\t\t\tconst canDisplayFullText = fullWidth <= displayWidth;\n\t\t\treturn canDisplayFullText;\n\t\t}\n\t\treturn false; // Show tooltip if we cannot read the width (Canvas objects)\n\t}\n\n\tshowTooltipWithDelay() {\n\n\t\t// set a delay on displaying the tooltip\n\t\tif (!this.pendingTooltip && this.showTooltip()) {\n\t\t\tconst that = this;\n\t\t\tthis.pendingTooltip = setTimeout(function() {\n\t\t\t\tthat.setTooltipVisible(true);\n\t\t\t}, this.props.delay);\n\t\t}\n\n\t}\n\n\tupdateTooltipLayout(tooltip, tooltipTrigger, direction) {\n\t\tconst tooltipDirection = direction;\n\t\tconst viewPortWidth = document.documentElement.clientWidth;\n\t\tconst viewPortHeight = document.documentElement.clientHeight;\n\t\tconst triggerLayout = tooltipTrigger.getBoundingClientRect();\n\t\tconst pointer = tooltip.querySelector(\"svg\");\n\t\tconst pointerLayout = pointer.getBoundingClientRect();\n\t\tconst pointerCorrection = 1;\n\n\t\t// always initialize tooltip location so it's all visible to ensure adjustments are done on the right size\n\t\ttooltip.style.left = this.getStyleValue(triggerLayout.left);\n\t\ttooltip.style.top = this.getStyleValue(triggerLayout.top);\n\n\t\tif (this.props.mousePos) {\n\t\t\tthis.updateLocationBasedOnMousePos(tooltip, this.props.mousePos, direction);\n\t\t} else { // tooltip relativ to element\n\t\t\t// tooltip - left correction\n\t\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\t\tlet tooltipLeft = triggerLayout.left;\n\t\t\t\tif (tooltip.offsetWidth > triggerLayout.width) {\n\t\t\t\t\ttooltipLeft -= (tooltip.offsetWidth - triggerLayout.width) / 2; // distribute overlap evenly left and right\n\t\t\t\t\tif (tooltipLeft < 0) {\n\t\t\t\t\t\ttooltipLeft = 2; // hitting left border\n\t\t\t\t\t}\n\t\t\t\t} else if (tooltip.offsetWidth < triggerLayout.width) {\n\t\t\t\t\ttooltipLeft += (triggerLayout.width - tooltip.offsetWidth) / 2; // center tip within triggerLayout\n\t\t\t\t}\n\t\t\t\ttooltip.style.left = this.getStyleValue(tooltipLeft);\n\t\t\t\tif ((tooltipLeft + tooltip.offsetWidth) > viewPortWidth) {\n\t\t\t\t\ttooltip.style.left = this.getStyleValue(viewPortWidth - tooltip.offsetWidth); // hitting right border\n\t\t\t\t}\n\t\t\t} else if (tooltipDirection === \"left\") {\n\t\t\t\t// For long tooltips, tooltip.offsetWidth is updated after setting tooltip.style.left. Ensure tooltip doesn't overlap tooltipTrigger element.\n\t\t\t\twhile ((tooltip.offsetLeft + tooltip.offsetWidth + pointerLayout.width) > Math.round(triggerLayout.left)) {\n\t\t\t\t\ttooltip.style.left = this.getStyleValue(triggerLayout.left - tooltip.offsetWidth - pointerLayout.width);\n\t\t\t\t}\n\t\t\t} else if (tooltipDirection === \"right\") {\n\t\t\t\ttooltip.style.left = this.getStyleValue(triggerLayout.right + pointerLayout.width);\n\t\t\t}\n\n\t\t\t// tooltip - top correction\n\t\t\tif (tooltipDirection === \"top\") {\n\t\t\t\ttooltip.style.top = this.getStyleValue(triggerLayout.top - pointerLayout.height - tooltip.offsetHeight);\n\t\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\t\ttooltip.style.top = this.getStyleValue(triggerLayout.bottom + pointerLayout.height);\n\t\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\t\tlet tooltipTop = triggerLayout.top;\n\t\t\t\tif (tooltip.offsetHeight > triggerLayout.height) {\n\t\t\t\t\ttooltipTop -= (tooltip.offsetHeight - triggerLayout.height) / 2; // distribute overlap evenly top and bottom\n\t\t\t\t\tif (tooltipTop < 0) {\n\t\t\t\t\t\ttooltipTop = triggerLayout.top; // hitting top border\n\t\t\t\t\t}\n\t\t\t\t} else if (tooltip.offsetHeight < triggerLayout.height) {\n\t\t\t\t\ttooltipTop += (triggerLayout.height - tooltip.offsetHeight) / 2; // center tip within triggerLayout\n\t\t\t\t}\n\t\t\t\ttooltip.style.top = this.getStyleValue(tooltipTop + pointerCorrection);\n\t\t\t\tif ((viewPortHeight - tooltip.offsetHeight) < triggerLayout.top) {\n\t\t\t\t\ttooltip.style.top = this.getStyleValue(viewPortHeight - tooltip.offsetHeight); // hitting bottom border\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// pointer - left correction\n\t\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(triggerLayout.left - tooltip.getBoundingClientRect().left +\n\t\t\t\t\ttooltipTrigger.getBoundingClientRect().width / 2 - pointerLayout.width / 2\t + pointerCorrection);\n\t\t\t} else if (tooltipDirection === \"left\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(tooltip.offsetWidth - 3);\n\t\t\t} else if (tooltipDirection === \"right\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(-pointerLayout.width + 2);\n\t\t\t}\n\n\t\t\t// pointer - top correction\n\t\t\tif (tooltipDirection === \"top\") {\n\t\t\t\tpointer.style.top = this.getStyleValue(tooltip.offsetHeight - 5);\n\t\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\t\tpointer.style.top = \"-11px\";\n\t\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\t\tpointer.style.top = this.getStyleValue(triggerLayout.top - tooltip.getBoundingClientRect().top +\n\t\t\t\t\ttooltipTrigger.offsetHeight / 2 - pointerLayout.height / 2);\n\t\t\t}\n\t\t}\n\n\t\t// check if out-of-bounds at the end and if so, trigger new layout on opposite site if not already re-rendered already\n\t\tif (this.isOutOfBounds(tooltip) && tooltip.getAttribute(\"direction\") === tooltipDirection) {\n\t\t\tconst newDirection = this.getNewDirection(tooltipDirection);\n\t\t\tthis.updateTooltipLayout(tooltip, tooltipTrigger, newDirection);\n\t\t\t// update class name directly, otherwise setState triggers re-render loop in canvas\n\t\t\t// also call after updateTooltipLayout, otherwise the newDirection and class of trigger are the same\n\t\t\ttooltip.setAttribute(\"direction\", newDirection);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tupdateLocationBasedOnMousePos(tooltip, mousePos, direction) {\n\t\tconst tooltipDirection = direction;\n\t\tconst viewPortWidth = document.documentElement.clientWidth;\n\t\tconst viewPortHeight = document.documentElement.clientHeight;\n\t\tconst pointer = tooltip.querySelector(\"svg\");\n\t\tconst pointerLayout = pointer.getBoundingClientRect();\n\t\tconst pointerCorrection = 1;\n\n\t\tconst mouseX = this.props.mousePos.x;\n\t\tconst mouseY = this.props.mousePos.y;\n\t\t// if mouse position is passed in, use the cursor as reference point\n\n\t\t// tooltip - left correction\n\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\tlet tooltipLeft = mouseX - tooltip.offsetWidth / 2;\n\t\t\tif ((viewPortWidth - tooltip.offsetWidth) < tooltipLeft) {\n\t\t\t\ttooltipLeft = viewPortWidth - tooltip.offsetWidth; // hitting right border\n\t\t\t} else if (tooltipLeft < 0) {\n\t\t\t\ttooltipLeft = 2; // hitting left border\n\t\t\t}\n\t\t\ttooltip.style.left = this.getStyleValue(tooltipLeft);\n\t\t} else if (tooltipDirection === \"left\") {\n\t\t\ttooltip.style.left = this.getStyleValue(mouseX - tooltip.offsetWidth - pointerLayout.width - 5);\n\t\t} else if (tooltipDirection === \"right\") {\n\t\t\ttooltip.style.left = this.getStyleValue(mouseX + pointerLayout.width + 5);\n\t\t}\n\n\t\t// tooltip - top correction\n\t\tif (tooltipDirection === \"top\") {\n\t\t\ttooltip.style.top = this.getStyleValue(mouseY - pointerLayout.height - tooltip.offsetHeight);\n\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\ttooltip.style.top = this.getStyleValue(mouseY + 2 * pointerLayout.height);\n\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\tlet tooltipTop = mouseY - tooltip.offsetHeight / 2;\n\t\t\tif ((viewPortHeight - tooltip.offsetHeight) < tooltipTop) {\n\t\t\t\ttooltipTop = viewPortHeight - tooltip.offsetHeight; // hitting bottom border\n\t\t\t} else if (tooltipTop < 0) {\n\t\t\t\ttooltipTop = 2; // hitting top border\n\t\t\t}\n\t\t\ttooltip.style.top = this.getStyleValue(tooltipTop + pointerCorrection);\n\t\t}\n\n\t\t// pointer - left correction\n\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\tpointer.style.left = this.getStyleValue(mouseX - tooltip.getBoundingClientRect().left - pointerLayout.width / 2);\n\t\t} else if (tooltipDirection === \"left\") {\n\t\t\tpointer.style.left = this.getStyleValue(tooltip.offsetWidth - 3);\n\t\t} else if (tooltipDirection === \"right\") {\n\t\t\tpointer.style.left = this.getStyleValue(-pointerLayout.width + 2);\n\t\t}\n\n\t\t// pointer - top correction\n\t\tif (tooltipDirection === \"top\") {\n\t\t\tpointer.style.top = this.getStyleValue(tooltip.offsetHeight - 5);\n\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\tpointer.style.top = \"-11px\";\n\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\tpointer.style.top = this.getStyleValue(mouseY - tooltip.getBoundingClientRect().top - pointerLayout.height / 2);\n\t\t}\n\t}\n\n\tisOutOfBounds(tooltip) {\n\t\tconst tooltipLeft = parseFloat(tooltip.style.left);\n\t\tconst tooltipTop = parseFloat(tooltip.style.top);\n\t\treturn (((tooltipLeft + tooltip.offsetWidth) > document.documentElement.clientWidth) || // to the right\n\t\t\t\t(tooltipLeft < 0) || // to the left\n\t\t\t\t(tooltipTop < 0) || // to the top\n\t\t\t\t((tooltipTop + tooltip.offsetHeight) > document.documentElement.clientHeight)); // to the bottom\n\t}\n\n\ttoggleTooltipOnClick(evt) {\n\t\t// 'blur' event occurs before 'click' event. Because of this, onBlur function is called which hides the tooltip.\n\t\t// To prevent this default behavior, stopPropagation and preventDefault is used.\n\t\tevt.stopPropagation();\n\t\tevt.preventDefault();\n\t\tif (this.state.isTooltipVisible) {\n\t\t\t// Tooltip is visible and user clicks on trigger element again, hide tooltip\n\t\t\tthis.setTooltipVisible(false);\n\t\t} else {\n\t\t\tthis.setTooltipVisible(true);\n\t\t}\n\t}\n\n\thideTooltipOnScrollAndResize(evt) {\n\t\tif (this.state.isTooltipVisible) {\n\t\t\tthis.setTooltipVisible(false);\n\t\t}\n\t}\n\n\trender() {\n\t\tlet tooltipContent = null;\n\t\tlet triggerContent = null;\n\t\tif (this.props.children) {\n\t\t\t// when children are passed in, tooltip will handle show/hide, otherwise consumer has to hide show/hide tooltip\n\t\t\tconst mouseover = () => this.setTooltipVisible(true);\n\t\t\tconst mouseleave = () => this.setTooltipVisible(false);\n\t\t\tconst mousedown = () => this.setTooltipVisible(false);\n\t\t\t// `focus` event occurs before `click`. Adding timeout in onFocus function to ensure click is executed first.\n\t\t\t// Ref - https://stackoverflow.com/a/49512400\n\t\t\tconst onFocus = () => this.showTooltipWithDelay();\n\t\t\tconst onBlur = (evt) => {\n\t\t\t\t// Keep tooltip visible when clicked on a link.\n\t\t\t\tif (evt.relatedTarget === null) {\n\t\t\t\t\tthis.setTooltipVisible(false);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst click = (evt) => this.toggleTooltipOnClick(evt);\n\n\t\t\ttriggerContent = (<div\n\t\t\t\tdata-id={`${this.uuid}-${this.props.id}-trigger`}\n\t\t\t\tclassName=\"tooltip-trigger\"\n\t\t\t\tonMouseOver={!this.props.showToolTipOnClick ? mouseover : null}\n\t\t\t\tonMouseLeave={!this.props.showToolTipOnClick ? mouseleave : null}\n\t\t\t\tonMouseDown={!this.props.showToolTipOnClick ? mousedown : null}\n\t\t\t\tonClick={this.props.showToolTipOnClick ? click : null}\n\t\t\t\tonFocus={this.props.showToolTipOnClick ? onFocus : null} // When focused using keyboard\n\t\t\t\tonBlur={this.props.showToolTipOnClick ? onBlur : null}\n\t\t\t\ttabIndex={this.props.showToolTipOnClick ? 0 : null}\n\t\t\t\trole={this.props.showToolTipOnClick ? \"button\" : null}\n\t\t\t\taria-labelledby={this.props.showToolTipOnClick ? `${this.uuid}-${this.props.id}` : null}\n\t\t\t\taria-expanded={this.props.showToolTipOnClick ? this.state.isTooltipVisible : null}\n\t\t\t\taria-controls={this.props.showToolTipOnClick ? `${this.uuid}-${this.props.id}` : null}\n\t\t\t\tref={(ref) => (this.triggerRef = ref)}\n\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</div>);\n\t\t}\n\n\t\tif ((typeof this.props.tip) === \"string\") {\n\t\t\ttooltipContent = (\n\t\t\t\t<span className=\"tooltipContainer\">\n\t\t\t\t\t{this.props.tip}\n\t\t\t\t</span>\n\t\t\t);\n\t\t} else if ((typeof this.props.tip) === \"object\") {\n\t\t\ttooltipContent = (\n\t\t\t\t<div className=\"tooltipContainer\">\n\t\t\t\t\t{this.props.tip}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ((typeof this.props.tip) === \"function\") {\n\t\t\ttooltipContent = this.props.tip();\n\t\t}\n\n\t\tlet tipClass = \"common-canvas-tooltip\";\n\t\tif (this.props.className) {\n\t\t\ttipClass += \" \" + this.props.className;\n\t\t}\n\n\t\tlet link = null;\n\t\tif (this.state.isTooltipVisible && this.props.tooltipLinkHandler && this.props.link) {\n\t\t\tconst linkInformation = this.props.tooltipLinkHandler(this.props.link);\n\t\t\t// Verify tooltipLinkHandler returns object in correct format\n\t\t\tif (typeof linkInformation === \"object\" && linkInformation.label && linkInformation.url) {\n\t\t\t\tlink = (<Link\n\t\t\t\t\tclassName=\"tooltip-link\"\n\t\t\t\t\tid={this.props.link.id}\n\t\t\t\t\thref={linkInformation.url}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener\"\n\t\t\t\t\tvisited={false}\n\t\t\t\t>\n\t\t\t\t\t{linkInformation.label}\n\t\t\t\t</Link>);\n\t\t\t}\n\t\t}\n\n\t\tlet tooltip = null;\n\t\tif (tooltipContent || link) {\n\t\t\ttooltip = (\n\t\t\t\t<Portal>\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"tooltip\"\n\t\t\t\t\t\tid={`${this.uuid}-${this.props.id}`}\n\t\t\t\t\t\tdata-id={`${this.uuid}-${this.props.id}`}\n\t\t\t\t\t\tclassName={tipClass}\n\t\t\t\t\t\taria-hidden={!this.state.isTooltipVisible}\n\t\t\t\t\t\tdirection={this.props.direction}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg className=\"tipArrow\" x=\"0px\" y=\"0px\" viewBox=\"0 0 9.1 16.1\">\n\t\t\t\t\t\t\t<polyline points=\"9.1,15.7 1.4,8.1 9.1,0.5\" />\n\t\t\t\t\t\t\t<polygon points=\"8.1,16.1 0,8.1 8.1,0 8.1,1.4 1.4,8.1 8.1,14.7\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t{tooltipContent}\n\t\t\t\t\t\t{link}\n\t\t\t\t\t</div>\n\t\t\t\t</Portal>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div className=\"tooltip-container\">\n\t\t\t\t{triggerContent}\n\t\t\t\t{tooltip}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nToolTip.propTypes = {\n\ttip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]).isRequired,\n\tlink: PropTypes.object,\n\ttooltipLinkHandler: PropTypes.func,\n\tdirection: PropTypes.oneOf([\"left\", \"right\", \"top\", \"bottom\"]),\n\tchildren: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n\ttargetObj: PropTypes.object,\n\tid: PropTypes.string.isRequired,\n\tclassName: PropTypes.string,\n\tmousePos: PropTypes.object,\n\tdisable: PropTypes.bool, // Tooltip will not show if disabled\n\tshowToolTipIfTruncated: PropTypes.bool, // Set to true to only display tooltip if full text does not fit in displayable width\n\ttruncatedRef: PropTypes.object,\n\tdelay: PropTypes.number,\n\tshowToolTipOnClick: PropTypes.bool\n};\n\nToolTip.defaultProps = {\n\tdelay: 200,\n\tdirection: \"bottom\",\n\tshowToolTipIfTruncated: false, // False will always show Tooltip even when whole word can be displayed\n\tshowToolTipOnClick: false\n};\n\nexport default ToolTip;\n"],"names":["ToolTip","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","state","isTooltipVisible","uuid","uuid4","pendingTooltip","hideTooltipOnScrollAndResize","bind","_assertThisInitialized","_createClass","key","value","window","addEventListener","this","targetObj","setTooltipVisible","removeEventListener","clearTimeout","visible","showTooltip","setState","tooltip","document","querySelector","concat","id","tooltipTrigger","updateTooltipLayout","getAttribute","currentDirection","newDirection","canDisplayFullText","triggerRef","disable","showToolTipIfTruncated","elem","triggerElem","truncatedRef","fullWidth","firstChild","scrollWidth","childWidth","offsetWidth","that","setTimeout","delay","direction","tooltipDirection","viewPortWidth","documentElement","clientWidth","viewPortHeight","clientHeight","triggerLayout","getBoundingClientRect","pointer","pointerLayout","style","left","getStyleValue","top","mousePos","updateLocationBasedOnMousePos","tooltipLeft","width","offsetLeft","Math","round","right","height","offsetHeight","bottom","tooltipTop","isOutOfBounds","getNewDirection","setAttribute","mouseX","x","mouseY","y","parseFloat","evt","stopPropagation","preventDefault","_this2","tooltipContent","triggerContent","children","React","createElement","className","onMouseOver","showToolTipOnClick","onMouseLeave","onMouseDown","onClick","toggleTooltipOnClick","onFocus","showTooltipWithDelay","onBlur","relatedTarget","tabIndex","role","ref","tip","_typeof","tipClass","link","tooltipLinkHandler","linkInformation","label","url","Link","href","target","rel","visited","Portal","viewBox","points","Component","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("../createClass-826941b3.js"),e=require("../getPrototypeOf-1e698126.js"),i=require("react"),o=require("react-portal"),l=require("carbon-components-react"),s=require("uuid");function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=n(i);function p(t){var i=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(t){return!1}}();return function(){var o,l=e._getPrototypeOf(t);if(i){var s=e._getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,s)}else o=l.apply(this,arguments);return e._possibleConstructorReturn(this,o)}}var h=function(i){e._inherits(h,i);var n=p(h);function h(i){var o;return t._classCallCheck(this,h),(o=n.call(this,i)).state={isTooltipVisible:!1},o.uuid=s.v4(),o.pendingTooltip=null,o.hideTooltipOnScrollAndResize=o.hideTooltipOnScrollAndResize.bind(e._assertThisInitialized(o)),o}return t._createClass(h,[{key:"componentDidMount",value:function(){window.addEventListener("scroll",this.hideTooltipOnScrollAndResize,!0),window.addEventListener("resize",this.hideTooltipOnScrollAndResize,!0),this.props.targetObj&&this.setTooltipVisible(!0)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("scroll",this.hideTooltipOnScrollAndResize,!0),window.removeEventListener("resize",this.hideTooltipOnScrollAndResize,!0),this.pendingTooltip&&clearTimeout(this.pendingTooltip)}},{key:"setTooltipVisible",value:function(t){if((!this.showTooltip()||!t&&this.pendingTooltip)&&(clearTimeout(this.pendingTooltip),this.pendingTooltip=null,this.setState({isTooltipVisible:!1})),this.showTooltip()){var e=document.querySelector("[data-id='".concat(this.uuid,"-").concat(this.props.id,"']"));if(this.pendingTooltip=null,this.setState({isTooltipVisible:t}),t){var i=null;(i=this.props.targetObj?this.props.targetObj:document.querySelector("[data-id='".concat(this.uuid,"-").concat(this.props.id,"-trigger']")))&&e&&this.updateTooltipLayout(e,i,e.getAttribute("direction"))}}}},{key:"getStyleValue",value:function(t){return t+"px"}},{key:"getNewDirection",value:function(t){var e;switch(t){case"top":e="bottom";break;case"bottom":e="top";break;case"left":e="right";break;default:e="left"}return e}},{key:"showTooltip",value:function(){var t=this.canDisplayFullText(this.triggerRef);return!this.props.disable&&!this.props.showToolTipIfTruncated||!this.props.disable&&this.props.showToolTipIfTruncated&&!t}},{key:"canDisplayFullText",value:function(t){var e=this.props.truncatedRef?this.props.truncatedRef:t;if(e){var i=e.firstChild&&e.firstChild.scrollWidth&&0!==e.firstChild.scrollWidth?e.firstChild.scrollWidth:e.scrollWidth,o=e.firstChild&&e.firstChild.offsetWidth&&e.firstChild.offsetWidth||0,l=i<=(0!==o&&o<e.offsetWidth?o:e.offsetWidth);return l}return!1}},{key:"showTooltipWithDelay",value:function(){if(!this.pendingTooltip&&this.showTooltip()){var t=this;this.pendingTooltip=setTimeout((function(){t.setTooltipVisible(!0)}),this.props.delay)}}},{key:"updateTooltipLayout",value:function(t,e,i){var o=i,l=document.documentElement.clientWidth,s=document.documentElement.clientHeight,n=e.getBoundingClientRect(),r=t.querySelector("svg"),p=r.getBoundingClientRect();if(t.style.left=this.getStyleValue(n.left),t.style.top=this.getStyleValue(n.top),this.props.mousePos)this.updateLocationBasedOnMousePos(t,this.props.mousePos,i);else{if("top"===o||"bottom"===o){var h=n.left;t.offsetWidth>n.width?(h-=(t.offsetWidth-n.width)/2)<0&&(h=2):t.offsetWidth<n.width&&(h+=(n.width-t.offsetWidth)/2),t.style.left=this.getStyleValue(h),h+t.offsetWidth>l&&(t.style.left=this.getStyleValue(l-t.offsetWidth))}else if("left"===o)for(;t.offsetLeft+t.offsetWidth+p.width>Math.round(n.left);)t.style.left=this.getStyleValue(n.left-t.offsetWidth-p.width);else"right"===o&&(t.style.left=this.getStyleValue(n.right+p.width));if("top"===o)t.style.top=this.getStyleValue(n.top-p.height-t.offsetHeight);else if("bottom"===o)t.style.top=this.getStyleValue(n.bottom+p.height);else if("left"===o||"right"===o){var a=n.top;t.offsetHeight>n.height?(a-=(t.offsetHeight-n.height)/2)<0&&(a=n.top):t.offsetHeight<n.height&&(a+=(n.height-t.offsetHeight)/2),t.style.top=this.getStyleValue(a+1),s-t.offsetHeight<n.top&&(t.style.top=this.getStyleValue(s-t.offsetHeight))}"top"===o||"bottom"===o?r.style.left=this.getStyleValue(n.left-t.getBoundingClientRect().left+e.getBoundingClientRect().width/2-p.width/2+1):"left"===o?r.style.left=this.getStyleValue(t.offsetWidth-3):"right"===o&&(r.style.left=this.getStyleValue(2-p.width)),"top"===o?r.style.top=this.getStyleValue(t.offsetHeight-5):"bottom"===o?r.style.top="-11px":"left"!==o&&"right"!==o||(r.style.top=this.getStyleValue(n.top-t.getBoundingClientRect().top+e.offsetHeight/2-p.height/2))}if(this.isOutOfBounds(t)&&t.getAttribute("direction")===o){var u=this.getNewDirection(o);return this.updateTooltipLayout(t,e,u),void t.setAttribute("direction",u)}}},{key:"updateLocationBasedOnMousePos",value:function(t,e,i){var o=i,l=document.documentElement.clientWidth,s=document.documentElement.clientHeight,n=t.querySelector("svg"),r=n.getBoundingClientRect(),p=this.props.mousePos.x,h=this.props.mousePos.y;if("top"===o||"bottom"===o){var a=p-t.offsetWidth/2;l-t.offsetWidth<a?a=l-t.offsetWidth:a<0&&(a=2),t.style.left=this.getStyleValue(a)}else"left"===o?t.style.left=this.getStyleValue(p-t.offsetWidth-r.width-5):"right"===o&&(t.style.left=this.getStyleValue(p+r.width+5));if("top"===o)t.style.top=this.getStyleValue(h-r.height-t.offsetHeight);else if("bottom"===o)t.style.top=this.getStyleValue(h+2*r.height);else if("left"===o||"right"===o){var u=h-t.offsetHeight/2;s-t.offsetHeight<u?u=s-t.offsetHeight:u<0&&(u=2),t.style.top=this.getStyleValue(u+1)}"top"===o||"bottom"===o?n.style.left=this.getStyleValue(p-t.getBoundingClientRect().left-r.width/2):"left"===o?n.style.left=this.getStyleValue(t.offsetWidth-3):"right"===o&&(n.style.left=this.getStyleValue(2-r.width)),"top"===o?n.style.top=this.getStyleValue(t.offsetHeight-5):"bottom"===o?n.style.top="-11px":"left"!==o&&"right"!==o||(n.style.top=this.getStyleValue(h-t.getBoundingClientRect().top-r.height/2))}},{key:"isOutOfBounds",value:function(t){var e=parseFloat(t.style.left),i=parseFloat(t.style.top);return e+t.offsetWidth>document.documentElement.clientWidth||e<0||i<0||i+t.offsetHeight>document.documentElement.clientHeight}},{key:"toggleTooltipOnClick",value:function(t){t.stopPropagation(),t.preventDefault(),this.state.isTooltipVisible?this.setTooltipVisible(!1):this.setTooltipVisible(!0)}},{key:"hideTooltipOnScrollAndResize",value:function(t){this.state.isTooltipVisible&&this.setTooltipVisible(!1)}},{key:"tooltipLinkOnClick",value:function(t){window.open(t,"_blank","noopener")}},{key:"render",value:function(){var e=this,i=null,s=null;if(this.props.children){s=r.default.createElement("div",{"data-id":"".concat(this.uuid,"-").concat(this.props.id,"-trigger"),className:"tooltip-trigger",onMouseOver:this.props.showToolTipOnClick?null:function(){return e.setTooltipVisible(!0)},onMouseLeave:this.props.showToolTipOnClick?null:function(){return e.setTooltipVisible(!1)},onMouseDown:this.props.showToolTipOnClick?null:function(){return e.setTooltipVisible(!1)},onClick:this.props.showToolTipOnClick?function(t){return e.toggleTooltipOnClick(t)}:null,onFocus:this.props.showToolTipOnClick?function(){return e.showTooltipWithDelay()}:null,onBlur:this.props.showToolTipOnClick?function(t){null!==t.relatedTarget&&e.setTooltipVisible(!1)}:null,tabIndex:this.props.showToolTipOnClick?0:null,role:this.props.showToolTipOnClick?"button":null,"aria-labelledby":this.props.showToolTipOnClick?"".concat(this.uuid,"-").concat(this.props.id):null,"aria-expanded":this.props.showToolTipOnClick?this.state.isTooltipVisible:null,"aria-controls":this.props.showToolTipOnClick?"".concat(this.uuid,"-").concat(this.props.id):null,ref:function(t){return e.triggerRef=t}},this.props.children)}"string"==typeof this.props.tip?i=r.default.createElement("span",{className:"tooltipContainer"},this.props.tip):"object"===t._typeof(this.props.tip)?i=r.default.createElement("div",{className:"tooltipContainer"},this.props.tip):"function"==typeof this.props.tip&&(i=this.props.tip());var n="common-canvas-tooltip";this.props.className&&(n+=" "+this.props.className);var p=null;if(this.state.isTooltipVisible&&this.props.tooltipLinkHandler&&this.props.link){var h=this.props.tooltipLinkHandler(this.props.link);"object"===t._typeof(h)&&h.label&&h.url&&(p=r.default.createElement(l.Link,{className:"tooltip-link",id:this.props.link.id,onClick:this.tooltipLinkOnClick.bind(this,h.url)},h.label))}var a=null;return(i||p)&&(a=r.default.createElement(o.Portal,null,r.default.createElement("div",{role:"tooltip",id:"".concat(this.uuid,"-").concat(this.props.id),"data-id":"".concat(this.uuid,"-").concat(this.props.id),className:n,"aria-hidden":!this.state.isTooltipVisible,direction:this.props.direction},r.default.createElement("svg",{className:"tipArrow",x:"0px",y:"0px",viewBox:"0 0 9.1 16.1"},r.default.createElement("polyline",{points:"9.1,15.7 1.4,8.1 9.1,0.5"}),r.default.createElement("polygon",{points:"8.1,16.1 0,8.1 8.1,0 8.1,1.4 1.4,8.1 8.1,14.7"})),i,p))),r.default.createElement("div",{className:"tooltip-container"},s,a)}}]),h}(r.default.Component);h.defaultProps={delay:200,direction:"bottom",showToolTipIfTruncated:!1,showToolTipOnClick:!1},module.exports=h;
1
+ "use strict";var t=require("../createClass-826941b3.js"),e=require("../getPrototypeOf-1e698126.js"),i=require("react"),o=require("react-portal"),l=require("carbon-components-react"),s=require("uuid");function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var r=n(i);function p(t){var i=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(t){return!1}}();return function(){var o,l=e._getPrototypeOf(t);if(i){var s=e._getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,s)}else o=l.apply(this,arguments);return e._possibleConstructorReturn(this,o)}}var h=function(i){e._inherits(h,i);var n=p(h);function h(i){var o;return t._classCallCheck(this,h),(o=n.call(this,i)).state={isTooltipVisible:!1},o.uuid=s.v4(),o.pendingTooltip=null,o.hideTooltipOnScrollAndResize=o.hideTooltipOnScrollAndResize.bind(e._assertThisInitialized(o)),o}return t._createClass(h,[{key:"componentDidMount",value:function(){window.addEventListener("scroll",this.hideTooltipOnScrollAndResize,!0),window.addEventListener("resize",this.hideTooltipOnScrollAndResize,!0),this.props.targetObj&&this.setTooltipVisible(!0)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("scroll",this.hideTooltipOnScrollAndResize,!0),window.removeEventListener("resize",this.hideTooltipOnScrollAndResize,!0),this.pendingTooltip&&clearTimeout(this.pendingTooltip)}},{key:"setTooltipVisible",value:function(t){if((!this.showTooltip()||!t&&this.pendingTooltip)&&(clearTimeout(this.pendingTooltip),this.pendingTooltip=null,this.setState({isTooltipVisible:!1})),this.showTooltip()){var e=document.querySelector("[data-id='".concat(this.uuid,"-").concat(this.props.id,"']"));if(this.pendingTooltip=null,this.setState({isTooltipVisible:t}),t){var i=null;(i=this.props.targetObj?this.props.targetObj:document.querySelector("[data-id='".concat(this.uuid,"-").concat(this.props.id,"-trigger']")))&&e&&this.updateTooltipLayout(e,i,e.getAttribute("direction"))}}}},{key:"getStyleValue",value:function(t){return t+"px"}},{key:"getNewDirection",value:function(t){var e;switch(t){case"top":e="bottom";break;case"bottom":e="top";break;case"left":e="right";break;default:e="left"}return e}},{key:"showTooltip",value:function(){var t=this.canDisplayFullText(this.triggerRef);return!this.props.disable&&!this.props.showToolTipIfTruncated||!this.props.disable&&this.props.showToolTipIfTruncated&&!t}},{key:"canDisplayFullText",value:function(t){var e=this.props.truncatedRef?this.props.truncatedRef:t;if(e){var i=e.firstChild&&e.firstChild.scrollWidth&&0!==e.firstChild.scrollWidth?e.firstChild.scrollWidth:e.scrollWidth,o=e.firstChild&&e.firstChild.offsetWidth&&e.firstChild.offsetWidth||0,l=i<=(0!==o&&o<e.offsetWidth?o:e.offsetWidth);return l}return!1}},{key:"showTooltipWithDelay",value:function(){if(!this.pendingTooltip&&this.showTooltip()){var t=this;this.pendingTooltip=setTimeout((function(){t.setTooltipVisible(!0)}),this.props.delay)}}},{key:"updateTooltipLayout",value:function(t,e,i){var o=i,l=document.documentElement.clientWidth,s=document.documentElement.clientHeight,n=e.getBoundingClientRect(),r=t.querySelector("svg"),p=r.getBoundingClientRect();if(t.style.left=this.getStyleValue(n.left),t.style.top=this.getStyleValue(n.top),this.props.mousePos)this.updateLocationBasedOnMousePos(t,this.props.mousePos,i);else{if("top"===o||"bottom"===o){var h=n.left;t.offsetWidth>n.width?(h-=(t.offsetWidth-n.width)/2)<0&&(h=2):t.offsetWidth<n.width&&(h+=(n.width-t.offsetWidth)/2),t.style.left=this.getStyleValue(h),h+t.offsetWidth>l&&(t.style.left=this.getStyleValue(l-t.offsetWidth))}else if("left"===o)for(;t.offsetLeft+t.offsetWidth+p.width>Math.round(n.left);)t.style.left=this.getStyleValue(n.left-t.offsetWidth-p.width);else"right"===o&&(t.style.left=this.getStyleValue(n.right+p.width));if("top"===o)t.style.top=this.getStyleValue(n.top-p.height-t.offsetHeight);else if("bottom"===o)t.style.top=this.getStyleValue(n.bottom+p.height);else if("left"===o||"right"===o){var a=n.top;t.offsetHeight>n.height?(a-=(t.offsetHeight-n.height)/2)<0&&(a=n.top):t.offsetHeight<n.height&&(a+=(n.height-t.offsetHeight)/2),t.style.top=this.getStyleValue(a+1),s-t.offsetHeight<n.top&&(t.style.top=this.getStyleValue(s-t.offsetHeight))}"top"===o||"bottom"===o?r.style.left=this.getStyleValue(n.left-t.getBoundingClientRect().left+e.getBoundingClientRect().width/2-p.width/2+1):"left"===o?r.style.left=this.getStyleValue(t.offsetWidth-3):"right"===o&&(r.style.left=this.getStyleValue(2-p.width)),"top"===o?r.style.top=this.getStyleValue(t.offsetHeight-5):"bottom"===o?r.style.top="-11px":"left"!==o&&"right"!==o||(r.style.top=this.getStyleValue(n.top-t.getBoundingClientRect().top+e.offsetHeight/2-p.height/2))}if(this.isOutOfBounds(t)&&t.getAttribute("direction")===o){var u=this.getNewDirection(o);return this.updateTooltipLayout(t,e,u),void t.setAttribute("direction",u)}}},{key:"updateLocationBasedOnMousePos",value:function(t,e,i){var o=i,l=document.documentElement.clientWidth,s=document.documentElement.clientHeight,n=t.querySelector("svg"),r=n.getBoundingClientRect(),p=this.props.mousePos.x,h=this.props.mousePos.y;if("top"===o||"bottom"===o){var a=p-t.offsetWidth/2;l-t.offsetWidth<a?a=l-t.offsetWidth:a<0&&(a=2),t.style.left=this.getStyleValue(a)}else"left"===o?t.style.left=this.getStyleValue(p-t.offsetWidth-r.width-5):"right"===o&&(t.style.left=this.getStyleValue(p+r.width+5));if("top"===o)t.style.top=this.getStyleValue(h-r.height-t.offsetHeight);else if("bottom"===o)t.style.top=this.getStyleValue(h+2*r.height);else if("left"===o||"right"===o){var u=h-t.offsetHeight/2;s-t.offsetHeight<u?u=s-t.offsetHeight:u<0&&(u=2),t.style.top=this.getStyleValue(u+1)}"top"===o||"bottom"===o?n.style.left=this.getStyleValue(p-t.getBoundingClientRect().left-r.width/2):"left"===o?n.style.left=this.getStyleValue(t.offsetWidth-3):"right"===o&&(n.style.left=this.getStyleValue(2-r.width)),"top"===o?n.style.top=this.getStyleValue(t.offsetHeight-5):"bottom"===o?n.style.top="-11px":"left"!==o&&"right"!==o||(n.style.top=this.getStyleValue(h-t.getBoundingClientRect().top-r.height/2))}},{key:"isOutOfBounds",value:function(t){var e=parseFloat(t.style.left),i=parseFloat(t.style.top);return e+t.offsetWidth>document.documentElement.clientWidth||e<0||i<0||i+t.offsetHeight>document.documentElement.clientHeight}},{key:"toggleTooltipOnClick",value:function(t){t.stopPropagation(),t.preventDefault(),this.state.isTooltipVisible?this.setTooltipVisible(!1):this.setTooltipVisible(!0)}},{key:"hideTooltipOnScrollAndResize",value:function(t){this.state.isTooltipVisible&&this.setTooltipVisible(!1)}},{key:"render",value:function(){var e=this,i=null,s=null;if(this.props.children){s=r.default.createElement("div",{"data-id":"".concat(this.uuid,"-").concat(this.props.id,"-trigger"),className:"tooltip-trigger",onMouseOver:this.props.showToolTipOnClick?null:function(){return e.setTooltipVisible(!0)},onMouseLeave:this.props.showToolTipOnClick?null:function(){return e.setTooltipVisible(!1)},onMouseDown:this.props.showToolTipOnClick?null:function(){return e.setTooltipVisible(!1)},onClick:this.props.showToolTipOnClick?function(t){return e.toggleTooltipOnClick(t)}:null,onFocus:this.props.showToolTipOnClick?function(){return e.showTooltipWithDelay()}:null,onBlur:this.props.showToolTipOnClick?function(t){null===t.relatedTarget&&e.setTooltipVisible(!1)}:null,tabIndex:this.props.showToolTipOnClick?0:null,role:this.props.showToolTipOnClick?"button":null,"aria-labelledby":this.props.showToolTipOnClick?"".concat(this.uuid,"-").concat(this.props.id):null,"aria-expanded":this.props.showToolTipOnClick?this.state.isTooltipVisible:null,"aria-controls":this.props.showToolTipOnClick?"".concat(this.uuid,"-").concat(this.props.id):null,ref:function(t){return e.triggerRef=t}},this.props.children)}"string"==typeof this.props.tip?i=r.default.createElement("span",{className:"tooltipContainer"},this.props.tip):"object"===t._typeof(this.props.tip)?i=r.default.createElement("div",{className:"tooltipContainer"},this.props.tip):"function"==typeof this.props.tip&&(i=this.props.tip());var n="common-canvas-tooltip";this.props.className&&(n+=" "+this.props.className);var p=null;if(this.state.isTooltipVisible&&this.props.tooltipLinkHandler&&this.props.link){var h=this.props.tooltipLinkHandler(this.props.link);"object"===t._typeof(h)&&h.label&&h.url&&(p=r.default.createElement(l.Link,{className:"tooltip-link",id:this.props.link.id,href:h.url,target:"_blank",rel:"noopener",visited:!1},h.label))}var a=null;return(i||p)&&(a=r.default.createElement(o.Portal,null,r.default.createElement("div",{role:"tooltip",id:"".concat(this.uuid,"-").concat(this.props.id),"data-id":"".concat(this.uuid,"-").concat(this.props.id),className:n,"aria-hidden":!this.state.isTooltipVisible,direction:this.props.direction},r.default.createElement("svg",{className:"tipArrow",x:"0px",y:"0px",viewBox:"0 0 9.1 16.1"},r.default.createElement("polyline",{points:"9.1,15.7 1.4,8.1 9.1,0.5"}),r.default.createElement("polygon",{points:"8.1,16.1 0,8.1 8.1,0 8.1,1.4 1.4,8.1 8.1,14.7"})),i,p))),r.default.createElement("div",{className:"tooltip-container"},s,a)}}]),h}(r.default.Component);h.defaultProps={delay:200,direction:"bottom",showToolTipIfTruncated:!1,showToolTipOnClick:!1},module.exports=h;
2
2
  //# sourceMappingURL=tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","sources":["../../src/tooltip/tooltip.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/*\n\tThis code is a modified version from portal-common-api for the Elyra canvas tooltips\n*/\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Portal } from \"react-portal\";\nimport { Link } from \"carbon-components-react\";\nimport { v4 as uuid4 } from \"uuid\";\n\nclass ToolTip extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tisTooltipVisible: false\n\t\t};\n\t\tthis.uuid = uuid4();\n\t\tthis.pendingTooltip = null;\n\t\tthis.hideTooltipOnScrollAndResize = this.hideTooltipOnScrollAndResize.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\twindow.addEventListener(\"scroll\", this.hideTooltipOnScrollAndResize, true);\n\t\twindow.addEventListener(\"resize\", this.hideTooltipOnScrollAndResize, true);\n\t\tif (this.props.targetObj) {\n\t\t\tthis.setTooltipVisible(true);\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"scroll\", this.hideTooltipOnScrollAndResize, true);\n\t\twindow.removeEventListener(\"resize\", this.hideTooltipOnScrollAndResize, true);\n\t\tif (this.pendingTooltip) {\n\t\t\tclearTimeout(this.pendingTooltip);\n\t\t}\n\t}\n\n\tsetTooltipVisible(visible) {\n\t\t// clear the display timer if set\n\t\tif (!this.showTooltip() || (!visible && this.pendingTooltip)) {\n\t\t\tclearTimeout(this.pendingTooltip);\n\t\t\tthis.pendingTooltip = null;\n\t\t\tthis.setState({\n\t\t\t\tisTooltipVisible: false\n\t\t\t});\n\t\t}\n\n\n\t\tif (this.showTooltip()) {\n\t\t\tconst tooltip = document.querySelector(`[data-id='${this.uuid}-${this.props.id}']`);\n\t\t\tthis.pendingTooltip = null;\n\t\t\tthis.setState({\n\t\t\t\tisTooltipVisible: visible\n\t\t\t});\n\t\t\t// updates the tooltip display\n\t\t\tif (visible) {\n\t\t\t\tlet tooltipTrigger = null;\n\t\t\t\tif (this.props.targetObj) {\n\t\t\t\t\ttooltipTrigger = this.props.targetObj;\n\t\t\t\t} else {\n\t\t\t\t\ttooltipTrigger = document.querySelector(`[data-id='${this.uuid}-${this.props.id}-trigger']`);\n\t\t\t\t}\n\t\t\t\tif (tooltipTrigger && tooltip) {\n\t\t\t\t\tthis.updateTooltipLayout(tooltip, tooltipTrigger, tooltip.getAttribute(\"direction\"));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetStyleValue(value) {\n\t\treturn value + \"px\";\n\t}\n\n\tgetNewDirection(currentDirection) {\n\t\tlet newDirection;\n\t\tswitch (currentDirection) {\n\t\tcase \"top\":\n\t\t\tnewDirection = \"bottom\";\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\tnewDirection = \"top\";\n\t\t\tbreak;\n\t\tcase \"left\":\n\t\t\tnewDirection = \"right\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tnewDirection = \"left\";\n\t\t}\n\t\treturn newDirection;\n\t}\n\n\tshowTooltip() {\n\t\tconst canDisplayFullText = this.canDisplayFullText(this.triggerRef);\n\t\tconst showToolTip = (\n\t\t\t// show tooltip if not disabled and showToolTipIfTruncated is false\n\t\t\t(!this.props.disable && !this.props.showToolTipIfTruncated) ||\n\t\t\t// show tooltip if not disabled and showToolTipIfTruncated is true and string is truncated\n\t\t\t(!this.props.disable && this.props.showToolTipIfTruncated && !canDisplayFullText));\n\t\treturn showToolTip;\n\t}\n\n\t// Return true if the string can be displayed in the available space\n\t// Return false if the string is truncated and ellipsis is shown on the UI\n\t// (offsetWidth) is a measurement in pixels of the element's CSS width, including any borders, padding, and vertical scrollbars\n\t// (scrollWidth) value is equal to the minimum width the element would require\n\t// in order to fit all the content in the viewport without using a horizontal scrollbar\n\tcanDisplayFullText(elem) {\n\t\tconst triggerElem = this.props.truncatedRef ? this.props.truncatedRef : elem;\n\t\tif (triggerElem) {\n\t\t\tconst fullWidth = triggerElem.firstChild && triggerElem.firstChild.scrollWidth && triggerElem.firstChild.scrollWidth !== 0 ? triggerElem.firstChild.scrollWidth\n\t\t\t\t: triggerElem.scrollWidth;\n\t\t\tconst childWidth = triggerElem.firstChild && triggerElem.firstChild.offsetWidth && triggerElem.firstChild.offsetWidth || 0;\n\t\t\t// need different handling when content is within a span vs div\n\t\t\tconst displayWidth = childWidth !== 0 && childWidth < triggerElem.offsetWidth ? childWidth : triggerElem.offsetWidth;\n\t\t\tconst canDisplayFullText = fullWidth <= displayWidth;\n\t\t\treturn canDisplayFullText;\n\t\t}\n\t\treturn false; // Show tooltip if we cannot read the width (Canvas objects)\n\t}\n\n\tshowTooltipWithDelay() {\n\n\t\t// set a delay on displaying the tooltip\n\t\tif (!this.pendingTooltip && this.showTooltip()) {\n\t\t\tconst that = this;\n\t\t\tthis.pendingTooltip = setTimeout(function() {\n\t\t\t\tthat.setTooltipVisible(true);\n\t\t\t}, this.props.delay);\n\t\t}\n\n\t}\n\n\tupdateTooltipLayout(tooltip, tooltipTrigger, direction) {\n\t\tconst tooltipDirection = direction;\n\t\tconst viewPortWidth = document.documentElement.clientWidth;\n\t\tconst viewPortHeight = document.documentElement.clientHeight;\n\t\tconst triggerLayout = tooltipTrigger.getBoundingClientRect();\n\t\tconst pointer = tooltip.querySelector(\"svg\");\n\t\tconst pointerLayout = pointer.getBoundingClientRect();\n\t\tconst pointerCorrection = 1;\n\n\t\t// always initialize tooltip location so it's all visible to ensure adjustments are done on the right size\n\t\ttooltip.style.left = this.getStyleValue(triggerLayout.left);\n\t\ttooltip.style.top = this.getStyleValue(triggerLayout.top);\n\n\t\tif (this.props.mousePos) {\n\t\t\tthis.updateLocationBasedOnMousePos(tooltip, this.props.mousePos, direction);\n\t\t} else { // tooltip relativ to element\n\t\t\t// tooltip - left correction\n\t\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\t\tlet tooltipLeft = triggerLayout.left;\n\t\t\t\tif (tooltip.offsetWidth > triggerLayout.width) {\n\t\t\t\t\ttooltipLeft -= (tooltip.offsetWidth - triggerLayout.width) / 2; // distribute overlap evenly left and right\n\t\t\t\t\tif (tooltipLeft < 0) {\n\t\t\t\t\t\ttooltipLeft = 2; // hitting left border\n\t\t\t\t\t}\n\t\t\t\t} else if (tooltip.offsetWidth < triggerLayout.width) {\n\t\t\t\t\ttooltipLeft += (triggerLayout.width - tooltip.offsetWidth) / 2; // center tip within triggerLayout\n\t\t\t\t}\n\t\t\t\ttooltip.style.left = this.getStyleValue(tooltipLeft);\n\t\t\t\tif ((tooltipLeft + tooltip.offsetWidth) > viewPortWidth) {\n\t\t\t\t\ttooltip.style.left = this.getStyleValue(viewPortWidth - tooltip.offsetWidth); // hitting right border\n\t\t\t\t}\n\t\t\t} else if (tooltipDirection === \"left\") {\n\t\t\t\t// For long tooltips, tooltip.offsetWidth is updated after setting tooltip.style.left. Ensure tooltip doesn't overlap tooltipTrigger element.\n\t\t\t\twhile ((tooltip.offsetLeft + tooltip.offsetWidth + pointerLayout.width) > Math.round(triggerLayout.left)) {\n\t\t\t\t\ttooltip.style.left = this.getStyleValue(triggerLayout.left - tooltip.offsetWidth - pointerLayout.width);\n\t\t\t\t}\n\t\t\t} else if (tooltipDirection === \"right\") {\n\t\t\t\ttooltip.style.left = this.getStyleValue(triggerLayout.right + pointerLayout.width);\n\t\t\t}\n\n\t\t\t// tooltip - top correction\n\t\t\tif (tooltipDirection === \"top\") {\n\t\t\t\ttooltip.style.top = this.getStyleValue(triggerLayout.top - pointerLayout.height - tooltip.offsetHeight);\n\t\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\t\ttooltip.style.top = this.getStyleValue(triggerLayout.bottom + pointerLayout.height);\n\t\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\t\tlet tooltipTop = triggerLayout.top;\n\t\t\t\tif (tooltip.offsetHeight > triggerLayout.height) {\n\t\t\t\t\ttooltipTop -= (tooltip.offsetHeight - triggerLayout.height) / 2; // distribute overlap evenly top and bottom\n\t\t\t\t\tif (tooltipTop < 0) {\n\t\t\t\t\t\ttooltipTop = triggerLayout.top; // hitting top border\n\t\t\t\t\t}\n\t\t\t\t} else if (tooltip.offsetHeight < triggerLayout.height) {\n\t\t\t\t\ttooltipTop += (triggerLayout.height - tooltip.offsetHeight) / 2; // center tip within triggerLayout\n\t\t\t\t}\n\t\t\t\ttooltip.style.top = this.getStyleValue(tooltipTop + pointerCorrection);\n\t\t\t\tif ((viewPortHeight - tooltip.offsetHeight) < triggerLayout.top) {\n\t\t\t\t\ttooltip.style.top = this.getStyleValue(viewPortHeight - tooltip.offsetHeight); // hitting bottom border\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// pointer - left correction\n\t\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(triggerLayout.left - tooltip.getBoundingClientRect().left +\n\t\t\t\t\ttooltipTrigger.getBoundingClientRect().width / 2 - pointerLayout.width / 2\t + pointerCorrection);\n\t\t\t} else if (tooltipDirection === \"left\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(tooltip.offsetWidth - 3);\n\t\t\t} else if (tooltipDirection === \"right\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(-pointerLayout.width + 2);\n\t\t\t}\n\n\t\t\t// pointer - top correction\n\t\t\tif (tooltipDirection === \"top\") {\n\t\t\t\tpointer.style.top = this.getStyleValue(tooltip.offsetHeight - 5);\n\t\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\t\tpointer.style.top = \"-11px\";\n\t\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\t\tpointer.style.top = this.getStyleValue(triggerLayout.top - tooltip.getBoundingClientRect().top +\n\t\t\t\t\ttooltipTrigger.offsetHeight / 2 - pointerLayout.height / 2);\n\t\t\t}\n\t\t}\n\n\t\t// check if out-of-bounds at the end and if so, trigger new layout on opposite site if not already re-rendered already\n\t\tif (this.isOutOfBounds(tooltip) && tooltip.getAttribute(\"direction\") === tooltipDirection) {\n\t\t\tconst newDirection = this.getNewDirection(tooltipDirection);\n\t\t\tthis.updateTooltipLayout(tooltip, tooltipTrigger, newDirection);\n\t\t\t// update class name directly, otherwise setState triggers re-render loop in canvas\n\t\t\t// also call after updateTooltipLayout, otherwise the newDirection and class of trigger are the same\n\t\t\ttooltip.setAttribute(\"direction\", newDirection);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tupdateLocationBasedOnMousePos(tooltip, mousePos, direction) {\n\t\tconst tooltipDirection = direction;\n\t\tconst viewPortWidth = document.documentElement.clientWidth;\n\t\tconst viewPortHeight = document.documentElement.clientHeight;\n\t\tconst pointer = tooltip.querySelector(\"svg\");\n\t\tconst pointerLayout = pointer.getBoundingClientRect();\n\t\tconst pointerCorrection = 1;\n\n\t\tconst mouseX = this.props.mousePos.x;\n\t\tconst mouseY = this.props.mousePos.y;\n\t\t// if mouse position is passed in, use the cursor as reference point\n\n\t\t// tooltip - left correction\n\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\tlet tooltipLeft = mouseX - tooltip.offsetWidth / 2;\n\t\t\tif ((viewPortWidth - tooltip.offsetWidth) < tooltipLeft) {\n\t\t\t\ttooltipLeft = viewPortWidth - tooltip.offsetWidth; // hitting right border\n\t\t\t} else if (tooltipLeft < 0) {\n\t\t\t\ttooltipLeft = 2; // hitting left border\n\t\t\t}\n\t\t\ttooltip.style.left = this.getStyleValue(tooltipLeft);\n\t\t} else if (tooltipDirection === \"left\") {\n\t\t\ttooltip.style.left = this.getStyleValue(mouseX - tooltip.offsetWidth - pointerLayout.width - 5);\n\t\t} else if (tooltipDirection === \"right\") {\n\t\t\ttooltip.style.left = this.getStyleValue(mouseX + pointerLayout.width + 5);\n\t\t}\n\n\t\t// tooltip - top correction\n\t\tif (tooltipDirection === \"top\") {\n\t\t\ttooltip.style.top = this.getStyleValue(mouseY - pointerLayout.height - tooltip.offsetHeight);\n\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\ttooltip.style.top = this.getStyleValue(mouseY + 2 * pointerLayout.height);\n\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\tlet tooltipTop = mouseY - tooltip.offsetHeight / 2;\n\t\t\tif ((viewPortHeight - tooltip.offsetHeight) < tooltipTop) {\n\t\t\t\ttooltipTop = viewPortHeight - tooltip.offsetHeight; // hitting bottom border\n\t\t\t} else if (tooltipTop < 0) {\n\t\t\t\ttooltipTop = 2; // hitting top border\n\t\t\t}\n\t\t\ttooltip.style.top = this.getStyleValue(tooltipTop + pointerCorrection);\n\t\t}\n\n\t\t// pointer - left correction\n\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\tpointer.style.left = this.getStyleValue(mouseX - tooltip.getBoundingClientRect().left - pointerLayout.width / 2);\n\t\t} else if (tooltipDirection === \"left\") {\n\t\t\tpointer.style.left = this.getStyleValue(tooltip.offsetWidth - 3);\n\t\t} else if (tooltipDirection === \"right\") {\n\t\t\tpointer.style.left = this.getStyleValue(-pointerLayout.width + 2);\n\t\t}\n\n\t\t// pointer - top correction\n\t\tif (tooltipDirection === \"top\") {\n\t\t\tpointer.style.top = this.getStyleValue(tooltip.offsetHeight - 5);\n\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\tpointer.style.top = \"-11px\";\n\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\tpointer.style.top = this.getStyleValue(mouseY - tooltip.getBoundingClientRect().top - pointerLayout.height / 2);\n\t\t}\n\t}\n\n\tisOutOfBounds(tooltip) {\n\t\tconst tooltipLeft = parseFloat(tooltip.style.left);\n\t\tconst tooltipTop = parseFloat(tooltip.style.top);\n\t\treturn (((tooltipLeft + tooltip.offsetWidth) > document.documentElement.clientWidth) || // to the right\n\t\t\t\t(tooltipLeft < 0) || // to the left\n\t\t\t\t(tooltipTop < 0) || // to the top\n\t\t\t\t((tooltipTop + tooltip.offsetHeight) > document.documentElement.clientHeight)); // to the bottom\n\t}\n\n\ttoggleTooltipOnClick(evt) {\n\t\t// 'blur' event occurs before 'click' event. Because of this, onBlur function is called which hides the tooltip.\n\t\t// To prevent this default behavior, stopPropagation and preventDefault is used.\n\t\tevt.stopPropagation();\n\t\tevt.preventDefault();\n\t\tif (this.state.isTooltipVisible) {\n\t\t\t// Tooltip is visible and user clicks on trigger element again, hide tooltip\n\t\t\tthis.setTooltipVisible(false);\n\t\t} else {\n\t\t\tthis.setTooltipVisible(true);\n\t\t}\n\t}\n\n\thideTooltipOnScrollAndResize(evt) {\n\t\tif (this.state.isTooltipVisible) {\n\t\t\tthis.setTooltipVisible(false);\n\t\t}\n\t}\n\n\ttooltipLinkOnClick(url) {\n\t\twindow.open(url, \"_blank\", \"noopener\");\n\t}\n\n\trender() {\n\t\tlet tooltipContent = null;\n\t\tlet triggerContent = null;\n\t\tif (this.props.children) {\n\t\t\t// when children are passed in, tooltip will handle show/hide, otherwise consumer has to hide show/hide tooltip\n\t\t\tconst mouseover = () => this.setTooltipVisible(true);\n\t\t\tconst mouseleave = () => this.setTooltipVisible(false);\n\t\t\tconst mousedown = () => this.setTooltipVisible(false);\n\t\t\t// `focus` event occurs before `click`. Adding timeout in onFocus function to ensure click is executed first.\n\t\t\t// Ref - https://stackoverflow.com/a/49512400\n\t\t\tconst onFocus = () => this.showTooltipWithDelay();\n\t\t\tconst onBlur = (evt) => {\n\t\t\t\t// Keep tooltip visible when clicked on a link.\n\t\t\t\t// Since link is an anchor tag without \"href\" attribute, it has relatedTarget=null\n\t\t\t\tif (evt.relatedTarget !== null) {\n\t\t\t\t\tthis.setTooltipVisible(false);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst click = (evt) => this.toggleTooltipOnClick(evt);\n\n\t\t\ttriggerContent = (<div\n\t\t\t\tdata-id={`${this.uuid}-${this.props.id}-trigger`}\n\t\t\t\tclassName=\"tooltip-trigger\"\n\t\t\t\tonMouseOver={!this.props.showToolTipOnClick ? mouseover : null}\n\t\t\t\tonMouseLeave={!this.props.showToolTipOnClick ? mouseleave : null}\n\t\t\t\tonMouseDown={!this.props.showToolTipOnClick ? mousedown : null}\n\t\t\t\tonClick={this.props.showToolTipOnClick ? click : null}\n\t\t\t\tonFocus={this.props.showToolTipOnClick ? onFocus : null} // When focused using keyboard\n\t\t\t\tonBlur={this.props.showToolTipOnClick ? onBlur : null}\n\t\t\t\ttabIndex={this.props.showToolTipOnClick ? 0 : null}\n\t\t\t\trole={this.props.showToolTipOnClick ? \"button\" : null}\n\t\t\t\taria-labelledby={this.props.showToolTipOnClick ? `${this.uuid}-${this.props.id}` : null}\n\t\t\t\taria-expanded={this.props.showToolTipOnClick ? this.state.isTooltipVisible : null}\n\t\t\t\taria-controls={this.props.showToolTipOnClick ? `${this.uuid}-${this.props.id}` : null}\n\t\t\t\tref={(ref) => (this.triggerRef = ref)}\n\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</div>);\n\t\t}\n\n\t\tif ((typeof this.props.tip) === \"string\") {\n\t\t\ttooltipContent = (\n\t\t\t\t<span className=\"tooltipContainer\">\n\t\t\t\t\t{this.props.tip}\n\t\t\t\t</span>\n\t\t\t);\n\t\t} else if ((typeof this.props.tip) === \"object\") {\n\t\t\ttooltipContent = (\n\t\t\t\t<div className=\"tooltipContainer\">\n\t\t\t\t\t{this.props.tip}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ((typeof this.props.tip) === \"function\") {\n\t\t\ttooltipContent = this.props.tip();\n\t\t}\n\n\t\tlet tipClass = \"common-canvas-tooltip\";\n\t\tif (this.props.className) {\n\t\t\ttipClass += \" \" + this.props.className;\n\t\t}\n\n\t\tlet link = null;\n\t\tif (this.state.isTooltipVisible && this.props.tooltipLinkHandler && this.props.link) {\n\t\t\tconst linkInformation = this.props.tooltipLinkHandler(this.props.link);\n\t\t\t// Verify tooltipLinkHandler returns object in correct format\n\t\t\tif (typeof linkInformation === \"object\" && linkInformation.label && linkInformation.url) {\n\t\t\t\tlink = (<Link\n\t\t\t\t\tclassName=\"tooltip-link\"\n\t\t\t\t\tid={this.props.link.id}\n\t\t\t\t\tonClick={this.tooltipLinkOnClick.bind(this, linkInformation.url)}\n\t\t\t\t>\n\t\t\t\t\t{linkInformation.label}\n\t\t\t\t</Link>);\n\t\t\t}\n\t\t}\n\n\t\tlet tooltip = null;\n\t\tif (tooltipContent || link) {\n\t\t\ttooltip = (\n\t\t\t\t<Portal>\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"tooltip\"\n\t\t\t\t\t\tid={`${this.uuid}-${this.props.id}`}\n\t\t\t\t\t\tdata-id={`${this.uuid}-${this.props.id}`}\n\t\t\t\t\t\tclassName={tipClass}\n\t\t\t\t\t\taria-hidden={!this.state.isTooltipVisible}\n\t\t\t\t\t\tdirection={this.props.direction}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg className=\"tipArrow\" x=\"0px\" y=\"0px\" viewBox=\"0 0 9.1 16.1\">\n\t\t\t\t\t\t\t<polyline points=\"9.1,15.7 1.4,8.1 9.1,0.5\" />\n\t\t\t\t\t\t\t<polygon points=\"8.1,16.1 0,8.1 8.1,0 8.1,1.4 1.4,8.1 8.1,14.7\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t{tooltipContent}\n\t\t\t\t\t\t{link}\n\t\t\t\t\t</div>\n\t\t\t\t</Portal>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div className=\"tooltip-container\">\n\t\t\t\t{triggerContent}\n\t\t\t\t{tooltip}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nToolTip.propTypes = {\n\ttip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]).isRequired,\n\tlink: PropTypes.object,\n\ttooltipLinkHandler: PropTypes.func,\n\tdirection: PropTypes.oneOf([\"left\", \"right\", \"top\", \"bottom\"]),\n\tchildren: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n\ttargetObj: PropTypes.object,\n\tid: PropTypes.string.isRequired,\n\tclassName: PropTypes.string,\n\tmousePos: PropTypes.object,\n\tdisable: PropTypes.bool, // Tooltip will not show if disabled\n\tshowToolTipIfTruncated: PropTypes.bool, // Set to true to only display tooltip if full text does not fit in displayable width\n\ttruncatedRef: PropTypes.object,\n\tdelay: PropTypes.number,\n\tshowToolTipOnClick: PropTypes.bool\n};\n\nToolTip.defaultProps = {\n\tdelay: 200,\n\tdirection: \"bottom\",\n\tshowToolTipIfTruncated: false, // False will always show Tooltip even when whole word can be displayed\n\tshowToolTipOnClick: false\n};\n\nexport default ToolTip;\n"],"names":["ToolTip","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","state","isTooltipVisible","uuid","uuid4","pendingTooltip","hideTooltipOnScrollAndResize","bind","_assertThisInitialized","_createClass","key","value","window","addEventListener","this","targetObj","setTooltipVisible","removeEventListener","clearTimeout","visible","showTooltip","setState","tooltip","document","querySelector","concat","id","tooltipTrigger","updateTooltipLayout","getAttribute","currentDirection","newDirection","canDisplayFullText","triggerRef","disable","showToolTipIfTruncated","elem","triggerElem","truncatedRef","fullWidth","firstChild","scrollWidth","childWidth","offsetWidth","that","setTimeout","delay","direction","tooltipDirection","viewPortWidth","documentElement","clientWidth","viewPortHeight","clientHeight","triggerLayout","getBoundingClientRect","pointer","pointerLayout","style","left","getStyleValue","top","mousePos","updateLocationBasedOnMousePos","tooltipLeft","width","offsetLeft","Math","round","right","height","offsetHeight","bottom","tooltipTop","isOutOfBounds","getNewDirection","setAttribute","mouseX","x","mouseY","y","parseFloat","evt","stopPropagation","preventDefault","url","open","_this2","tooltipContent","triggerContent","children","React","createElement","className","onMouseOver","showToolTipOnClick","onMouseLeave","onMouseDown","onClick","toggleTooltipOnClick","onFocus","showTooltipWithDelay","onBlur","relatedTarget","tabIndex","role","ref","tip","_typeof","tipClass","link","tooltipLinkHandler","linkInformation","label","Link","tooltipLinkOnClick","Portal","viewBox","points","Component","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"tooltip.js","sources":["../../src/tooltip/tooltip.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/*\n\tThis code is a modified version from portal-common-api for the Elyra canvas tooltips\n*/\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Portal } from \"react-portal\";\nimport { Link } from \"carbon-components-react\";\nimport { v4 as uuid4 } from \"uuid\";\n\nclass ToolTip extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tisTooltipVisible: false\n\t\t};\n\t\tthis.uuid = uuid4();\n\t\tthis.pendingTooltip = null;\n\t\tthis.hideTooltipOnScrollAndResize = this.hideTooltipOnScrollAndResize.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\twindow.addEventListener(\"scroll\", this.hideTooltipOnScrollAndResize, true);\n\t\twindow.addEventListener(\"resize\", this.hideTooltipOnScrollAndResize, true);\n\t\tif (this.props.targetObj) {\n\t\t\tthis.setTooltipVisible(true);\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"scroll\", this.hideTooltipOnScrollAndResize, true);\n\t\twindow.removeEventListener(\"resize\", this.hideTooltipOnScrollAndResize, true);\n\t\tif (this.pendingTooltip) {\n\t\t\tclearTimeout(this.pendingTooltip);\n\t\t}\n\t}\n\n\tsetTooltipVisible(visible) {\n\t\t// clear the display timer if set\n\t\tif (!this.showTooltip() || (!visible && this.pendingTooltip)) {\n\t\t\tclearTimeout(this.pendingTooltip);\n\t\t\tthis.pendingTooltip = null;\n\t\t\tthis.setState({\n\t\t\t\tisTooltipVisible: false\n\t\t\t});\n\t\t}\n\n\n\t\tif (this.showTooltip()) {\n\t\t\tconst tooltip = document.querySelector(`[data-id='${this.uuid}-${this.props.id}']`);\n\t\t\tthis.pendingTooltip = null;\n\t\t\tthis.setState({\n\t\t\t\tisTooltipVisible: visible\n\t\t\t});\n\t\t\t// updates the tooltip display\n\t\t\tif (visible) {\n\t\t\t\tlet tooltipTrigger = null;\n\t\t\t\tif (this.props.targetObj) {\n\t\t\t\t\ttooltipTrigger = this.props.targetObj;\n\t\t\t\t} else {\n\t\t\t\t\ttooltipTrigger = document.querySelector(`[data-id='${this.uuid}-${this.props.id}-trigger']`);\n\t\t\t\t}\n\t\t\t\tif (tooltipTrigger && tooltip) {\n\t\t\t\t\tthis.updateTooltipLayout(tooltip, tooltipTrigger, tooltip.getAttribute(\"direction\"));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tgetStyleValue(value) {\n\t\treturn value + \"px\";\n\t}\n\n\tgetNewDirection(currentDirection) {\n\t\tlet newDirection;\n\t\tswitch (currentDirection) {\n\t\tcase \"top\":\n\t\t\tnewDirection = \"bottom\";\n\t\t\tbreak;\n\t\tcase \"bottom\":\n\t\t\tnewDirection = \"top\";\n\t\t\tbreak;\n\t\tcase \"left\":\n\t\t\tnewDirection = \"right\";\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tnewDirection = \"left\";\n\t\t}\n\t\treturn newDirection;\n\t}\n\n\tshowTooltip() {\n\t\tconst canDisplayFullText = this.canDisplayFullText(this.triggerRef);\n\t\tconst showToolTip = (\n\t\t\t// show tooltip if not disabled and showToolTipIfTruncated is false\n\t\t\t(!this.props.disable && !this.props.showToolTipIfTruncated) ||\n\t\t\t// show tooltip if not disabled and showToolTipIfTruncated is true and string is truncated\n\t\t\t(!this.props.disable && this.props.showToolTipIfTruncated && !canDisplayFullText));\n\t\treturn showToolTip;\n\t}\n\n\t// Return true if the string can be displayed in the available space\n\t// Return false if the string is truncated and ellipsis is shown on the UI\n\t// (offsetWidth) is a measurement in pixels of the element's CSS width, including any borders, padding, and vertical scrollbars\n\t// (scrollWidth) value is equal to the minimum width the element would require\n\t// in order to fit all the content in the viewport without using a horizontal scrollbar\n\tcanDisplayFullText(elem) {\n\t\tconst triggerElem = this.props.truncatedRef ? this.props.truncatedRef : elem;\n\t\tif (triggerElem) {\n\t\t\tconst fullWidth = triggerElem.firstChild && triggerElem.firstChild.scrollWidth && triggerElem.firstChild.scrollWidth !== 0 ? triggerElem.firstChild.scrollWidth\n\t\t\t\t: triggerElem.scrollWidth;\n\t\t\tconst childWidth = triggerElem.firstChild && triggerElem.firstChild.offsetWidth && triggerElem.firstChild.offsetWidth || 0;\n\t\t\t// need different handling when content is within a span vs div\n\t\t\tconst displayWidth = childWidth !== 0 && childWidth < triggerElem.offsetWidth ? childWidth : triggerElem.offsetWidth;\n\t\t\tconst canDisplayFullText = fullWidth <= displayWidth;\n\t\t\treturn canDisplayFullText;\n\t\t}\n\t\treturn false; // Show tooltip if we cannot read the width (Canvas objects)\n\t}\n\n\tshowTooltipWithDelay() {\n\n\t\t// set a delay on displaying the tooltip\n\t\tif (!this.pendingTooltip && this.showTooltip()) {\n\t\t\tconst that = this;\n\t\t\tthis.pendingTooltip = setTimeout(function() {\n\t\t\t\tthat.setTooltipVisible(true);\n\t\t\t}, this.props.delay);\n\t\t}\n\n\t}\n\n\tupdateTooltipLayout(tooltip, tooltipTrigger, direction) {\n\t\tconst tooltipDirection = direction;\n\t\tconst viewPortWidth = document.documentElement.clientWidth;\n\t\tconst viewPortHeight = document.documentElement.clientHeight;\n\t\tconst triggerLayout = tooltipTrigger.getBoundingClientRect();\n\t\tconst pointer = tooltip.querySelector(\"svg\");\n\t\tconst pointerLayout = pointer.getBoundingClientRect();\n\t\tconst pointerCorrection = 1;\n\n\t\t// always initialize tooltip location so it's all visible to ensure adjustments are done on the right size\n\t\ttooltip.style.left = this.getStyleValue(triggerLayout.left);\n\t\ttooltip.style.top = this.getStyleValue(triggerLayout.top);\n\n\t\tif (this.props.mousePos) {\n\t\t\tthis.updateLocationBasedOnMousePos(tooltip, this.props.mousePos, direction);\n\t\t} else { // tooltip relativ to element\n\t\t\t// tooltip - left correction\n\t\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\t\tlet tooltipLeft = triggerLayout.left;\n\t\t\t\tif (tooltip.offsetWidth > triggerLayout.width) {\n\t\t\t\t\ttooltipLeft -= (tooltip.offsetWidth - triggerLayout.width) / 2; // distribute overlap evenly left and right\n\t\t\t\t\tif (tooltipLeft < 0) {\n\t\t\t\t\t\ttooltipLeft = 2; // hitting left border\n\t\t\t\t\t}\n\t\t\t\t} else if (tooltip.offsetWidth < triggerLayout.width) {\n\t\t\t\t\ttooltipLeft += (triggerLayout.width - tooltip.offsetWidth) / 2; // center tip within triggerLayout\n\t\t\t\t}\n\t\t\t\ttooltip.style.left = this.getStyleValue(tooltipLeft);\n\t\t\t\tif ((tooltipLeft + tooltip.offsetWidth) > viewPortWidth) {\n\t\t\t\t\ttooltip.style.left = this.getStyleValue(viewPortWidth - tooltip.offsetWidth); // hitting right border\n\t\t\t\t}\n\t\t\t} else if (tooltipDirection === \"left\") {\n\t\t\t\t// For long tooltips, tooltip.offsetWidth is updated after setting tooltip.style.left. Ensure tooltip doesn't overlap tooltipTrigger element.\n\t\t\t\twhile ((tooltip.offsetLeft + tooltip.offsetWidth + pointerLayout.width) > Math.round(triggerLayout.left)) {\n\t\t\t\t\ttooltip.style.left = this.getStyleValue(triggerLayout.left - tooltip.offsetWidth - pointerLayout.width);\n\t\t\t\t}\n\t\t\t} else if (tooltipDirection === \"right\") {\n\t\t\t\ttooltip.style.left = this.getStyleValue(triggerLayout.right + pointerLayout.width);\n\t\t\t}\n\n\t\t\t// tooltip - top correction\n\t\t\tif (tooltipDirection === \"top\") {\n\t\t\t\ttooltip.style.top = this.getStyleValue(triggerLayout.top - pointerLayout.height - tooltip.offsetHeight);\n\t\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\t\ttooltip.style.top = this.getStyleValue(triggerLayout.bottom + pointerLayout.height);\n\t\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\t\tlet tooltipTop = triggerLayout.top;\n\t\t\t\tif (tooltip.offsetHeight > triggerLayout.height) {\n\t\t\t\t\ttooltipTop -= (tooltip.offsetHeight - triggerLayout.height) / 2; // distribute overlap evenly top and bottom\n\t\t\t\t\tif (tooltipTop < 0) {\n\t\t\t\t\t\ttooltipTop = triggerLayout.top; // hitting top border\n\t\t\t\t\t}\n\t\t\t\t} else if (tooltip.offsetHeight < triggerLayout.height) {\n\t\t\t\t\ttooltipTop += (triggerLayout.height - tooltip.offsetHeight) / 2; // center tip within triggerLayout\n\t\t\t\t}\n\t\t\t\ttooltip.style.top = this.getStyleValue(tooltipTop + pointerCorrection);\n\t\t\t\tif ((viewPortHeight - tooltip.offsetHeight) < triggerLayout.top) {\n\t\t\t\t\ttooltip.style.top = this.getStyleValue(viewPortHeight - tooltip.offsetHeight); // hitting bottom border\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// pointer - left correction\n\t\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(triggerLayout.left - tooltip.getBoundingClientRect().left +\n\t\t\t\t\ttooltipTrigger.getBoundingClientRect().width / 2 - pointerLayout.width / 2\t + pointerCorrection);\n\t\t\t} else if (tooltipDirection === \"left\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(tooltip.offsetWidth - 3);\n\t\t\t} else if (tooltipDirection === \"right\") {\n\t\t\t\tpointer.style.left = this.getStyleValue(-pointerLayout.width + 2);\n\t\t\t}\n\n\t\t\t// pointer - top correction\n\t\t\tif (tooltipDirection === \"top\") {\n\t\t\t\tpointer.style.top = this.getStyleValue(tooltip.offsetHeight - 5);\n\t\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\t\tpointer.style.top = \"-11px\";\n\t\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\t\tpointer.style.top = this.getStyleValue(triggerLayout.top - tooltip.getBoundingClientRect().top +\n\t\t\t\t\ttooltipTrigger.offsetHeight / 2 - pointerLayout.height / 2);\n\t\t\t}\n\t\t}\n\n\t\t// check if out-of-bounds at the end and if so, trigger new layout on opposite site if not already re-rendered already\n\t\tif (this.isOutOfBounds(tooltip) && tooltip.getAttribute(\"direction\") === tooltipDirection) {\n\t\t\tconst newDirection = this.getNewDirection(tooltipDirection);\n\t\t\tthis.updateTooltipLayout(tooltip, tooltipTrigger, newDirection);\n\t\t\t// update class name directly, otherwise setState triggers re-render loop in canvas\n\t\t\t// also call after updateTooltipLayout, otherwise the newDirection and class of trigger are the same\n\t\t\ttooltip.setAttribute(\"direction\", newDirection);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tupdateLocationBasedOnMousePos(tooltip, mousePos, direction) {\n\t\tconst tooltipDirection = direction;\n\t\tconst viewPortWidth = document.documentElement.clientWidth;\n\t\tconst viewPortHeight = document.documentElement.clientHeight;\n\t\tconst pointer = tooltip.querySelector(\"svg\");\n\t\tconst pointerLayout = pointer.getBoundingClientRect();\n\t\tconst pointerCorrection = 1;\n\n\t\tconst mouseX = this.props.mousePos.x;\n\t\tconst mouseY = this.props.mousePos.y;\n\t\t// if mouse position is passed in, use the cursor as reference point\n\n\t\t// tooltip - left correction\n\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\tlet tooltipLeft = mouseX - tooltip.offsetWidth / 2;\n\t\t\tif ((viewPortWidth - tooltip.offsetWidth) < tooltipLeft) {\n\t\t\t\ttooltipLeft = viewPortWidth - tooltip.offsetWidth; // hitting right border\n\t\t\t} else if (tooltipLeft < 0) {\n\t\t\t\ttooltipLeft = 2; // hitting left border\n\t\t\t}\n\t\t\ttooltip.style.left = this.getStyleValue(tooltipLeft);\n\t\t} else if (tooltipDirection === \"left\") {\n\t\t\ttooltip.style.left = this.getStyleValue(mouseX - tooltip.offsetWidth - pointerLayout.width - 5);\n\t\t} else if (tooltipDirection === \"right\") {\n\t\t\ttooltip.style.left = this.getStyleValue(mouseX + pointerLayout.width + 5);\n\t\t}\n\n\t\t// tooltip - top correction\n\t\tif (tooltipDirection === \"top\") {\n\t\t\ttooltip.style.top = this.getStyleValue(mouseY - pointerLayout.height - tooltip.offsetHeight);\n\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\ttooltip.style.top = this.getStyleValue(mouseY + 2 * pointerLayout.height);\n\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\tlet tooltipTop = mouseY - tooltip.offsetHeight / 2;\n\t\t\tif ((viewPortHeight - tooltip.offsetHeight) < tooltipTop) {\n\t\t\t\ttooltipTop = viewPortHeight - tooltip.offsetHeight; // hitting bottom border\n\t\t\t} else if (tooltipTop < 0) {\n\t\t\t\ttooltipTop = 2; // hitting top border\n\t\t\t}\n\t\t\ttooltip.style.top = this.getStyleValue(tooltipTop + pointerCorrection);\n\t\t}\n\n\t\t// pointer - left correction\n\t\tif (tooltipDirection === \"top\" || tooltipDirection === \"bottom\") {\n\t\t\tpointer.style.left = this.getStyleValue(mouseX - tooltip.getBoundingClientRect().left - pointerLayout.width / 2);\n\t\t} else if (tooltipDirection === \"left\") {\n\t\t\tpointer.style.left = this.getStyleValue(tooltip.offsetWidth - 3);\n\t\t} else if (tooltipDirection === \"right\") {\n\t\t\tpointer.style.left = this.getStyleValue(-pointerLayout.width + 2);\n\t\t}\n\n\t\t// pointer - top correction\n\t\tif (tooltipDirection === \"top\") {\n\t\t\tpointer.style.top = this.getStyleValue(tooltip.offsetHeight - 5);\n\t\t} else if (tooltipDirection === \"bottom\") {\n\t\t\tpointer.style.top = \"-11px\";\n\t\t} else if (tooltipDirection === \"left\" || tooltipDirection === \"right\") {\n\t\t\tpointer.style.top = this.getStyleValue(mouseY - tooltip.getBoundingClientRect().top - pointerLayout.height / 2);\n\t\t}\n\t}\n\n\tisOutOfBounds(tooltip) {\n\t\tconst tooltipLeft = parseFloat(tooltip.style.left);\n\t\tconst tooltipTop = parseFloat(tooltip.style.top);\n\t\treturn (((tooltipLeft + tooltip.offsetWidth) > document.documentElement.clientWidth) || // to the right\n\t\t\t\t(tooltipLeft < 0) || // to the left\n\t\t\t\t(tooltipTop < 0) || // to the top\n\t\t\t\t((tooltipTop + tooltip.offsetHeight) > document.documentElement.clientHeight)); // to the bottom\n\t}\n\n\ttoggleTooltipOnClick(evt) {\n\t\t// 'blur' event occurs before 'click' event. Because of this, onBlur function is called which hides the tooltip.\n\t\t// To prevent this default behavior, stopPropagation and preventDefault is used.\n\t\tevt.stopPropagation();\n\t\tevt.preventDefault();\n\t\tif (this.state.isTooltipVisible) {\n\t\t\t// Tooltip is visible and user clicks on trigger element again, hide tooltip\n\t\t\tthis.setTooltipVisible(false);\n\t\t} else {\n\t\t\tthis.setTooltipVisible(true);\n\t\t}\n\t}\n\n\thideTooltipOnScrollAndResize(evt) {\n\t\tif (this.state.isTooltipVisible) {\n\t\t\tthis.setTooltipVisible(false);\n\t\t}\n\t}\n\n\trender() {\n\t\tlet tooltipContent = null;\n\t\tlet triggerContent = null;\n\t\tif (this.props.children) {\n\t\t\t// when children are passed in, tooltip will handle show/hide, otherwise consumer has to hide show/hide tooltip\n\t\t\tconst mouseover = () => this.setTooltipVisible(true);\n\t\t\tconst mouseleave = () => this.setTooltipVisible(false);\n\t\t\tconst mousedown = () => this.setTooltipVisible(false);\n\t\t\t// `focus` event occurs before `click`. Adding timeout in onFocus function to ensure click is executed first.\n\t\t\t// Ref - https://stackoverflow.com/a/49512400\n\t\t\tconst onFocus = () => this.showTooltipWithDelay();\n\t\t\tconst onBlur = (evt) => {\n\t\t\t\t// Keep tooltip visible when clicked on a link.\n\t\t\t\tif (evt.relatedTarget === null) {\n\t\t\t\t\tthis.setTooltipVisible(false);\n\t\t\t\t}\n\t\t\t};\n\t\t\tconst click = (evt) => this.toggleTooltipOnClick(evt);\n\n\t\t\ttriggerContent = (<div\n\t\t\t\tdata-id={`${this.uuid}-${this.props.id}-trigger`}\n\t\t\t\tclassName=\"tooltip-trigger\"\n\t\t\t\tonMouseOver={!this.props.showToolTipOnClick ? mouseover : null}\n\t\t\t\tonMouseLeave={!this.props.showToolTipOnClick ? mouseleave : null}\n\t\t\t\tonMouseDown={!this.props.showToolTipOnClick ? mousedown : null}\n\t\t\t\tonClick={this.props.showToolTipOnClick ? click : null}\n\t\t\t\tonFocus={this.props.showToolTipOnClick ? onFocus : null} // When focused using keyboard\n\t\t\t\tonBlur={this.props.showToolTipOnClick ? onBlur : null}\n\t\t\t\ttabIndex={this.props.showToolTipOnClick ? 0 : null}\n\t\t\t\trole={this.props.showToolTipOnClick ? \"button\" : null}\n\t\t\t\taria-labelledby={this.props.showToolTipOnClick ? `${this.uuid}-${this.props.id}` : null}\n\t\t\t\taria-expanded={this.props.showToolTipOnClick ? this.state.isTooltipVisible : null}\n\t\t\t\taria-controls={this.props.showToolTipOnClick ? `${this.uuid}-${this.props.id}` : null}\n\t\t\t\tref={(ref) => (this.triggerRef = ref)}\n\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</div>);\n\t\t}\n\n\t\tif ((typeof this.props.tip) === \"string\") {\n\t\t\ttooltipContent = (\n\t\t\t\t<span className=\"tooltipContainer\">\n\t\t\t\t\t{this.props.tip}\n\t\t\t\t</span>\n\t\t\t);\n\t\t} else if ((typeof this.props.tip) === \"object\") {\n\t\t\ttooltipContent = (\n\t\t\t\t<div className=\"tooltipContainer\">\n\t\t\t\t\t{this.props.tip}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if ((typeof this.props.tip) === \"function\") {\n\t\t\ttooltipContent = this.props.tip();\n\t\t}\n\n\t\tlet tipClass = \"common-canvas-tooltip\";\n\t\tif (this.props.className) {\n\t\t\ttipClass += \" \" + this.props.className;\n\t\t}\n\n\t\tlet link = null;\n\t\tif (this.state.isTooltipVisible && this.props.tooltipLinkHandler && this.props.link) {\n\t\t\tconst linkInformation = this.props.tooltipLinkHandler(this.props.link);\n\t\t\t// Verify tooltipLinkHandler returns object in correct format\n\t\t\tif (typeof linkInformation === \"object\" && linkInformation.label && linkInformation.url) {\n\t\t\t\tlink = (<Link\n\t\t\t\t\tclassName=\"tooltip-link\"\n\t\t\t\t\tid={this.props.link.id}\n\t\t\t\t\thref={linkInformation.url}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener\"\n\t\t\t\t\tvisited={false}\n\t\t\t\t>\n\t\t\t\t\t{linkInformation.label}\n\t\t\t\t</Link>);\n\t\t\t}\n\t\t}\n\n\t\tlet tooltip = null;\n\t\tif (tooltipContent || link) {\n\t\t\ttooltip = (\n\t\t\t\t<Portal>\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"tooltip\"\n\t\t\t\t\t\tid={`${this.uuid}-${this.props.id}`}\n\t\t\t\t\t\tdata-id={`${this.uuid}-${this.props.id}`}\n\t\t\t\t\t\tclassName={tipClass}\n\t\t\t\t\t\taria-hidden={!this.state.isTooltipVisible}\n\t\t\t\t\t\tdirection={this.props.direction}\n\t\t\t\t\t>\n\t\t\t\t\t\t<svg className=\"tipArrow\" x=\"0px\" y=\"0px\" viewBox=\"0 0 9.1 16.1\">\n\t\t\t\t\t\t\t<polyline points=\"9.1,15.7 1.4,8.1 9.1,0.5\" />\n\t\t\t\t\t\t\t<polygon points=\"8.1,16.1 0,8.1 8.1,0 8.1,1.4 1.4,8.1 8.1,14.7\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t{tooltipContent}\n\t\t\t\t\t\t{link}\n\t\t\t\t\t</div>\n\t\t\t\t</Portal>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div className=\"tooltip-container\">\n\t\t\t\t{triggerContent}\n\t\t\t\t{tooltip}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nToolTip.propTypes = {\n\ttip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.func]).isRequired,\n\tlink: PropTypes.object,\n\ttooltipLinkHandler: PropTypes.func,\n\tdirection: PropTypes.oneOf([\"left\", \"right\", \"top\", \"bottom\"]),\n\tchildren: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n\ttargetObj: PropTypes.object,\n\tid: PropTypes.string.isRequired,\n\tclassName: PropTypes.string,\n\tmousePos: PropTypes.object,\n\tdisable: PropTypes.bool, // Tooltip will not show if disabled\n\tshowToolTipIfTruncated: PropTypes.bool, // Set to true to only display tooltip if full text does not fit in displayable width\n\ttruncatedRef: PropTypes.object,\n\tdelay: PropTypes.number,\n\tshowToolTipOnClick: PropTypes.bool\n};\n\nToolTip.defaultProps = {\n\tdelay: 200,\n\tdirection: \"bottom\",\n\tshowToolTipIfTruncated: false, // False will always show Tooltip even when whole word can be displayed\n\tshowToolTipOnClick: false\n};\n\nexport default ToolTip;\n"],"names":["ToolTip","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","state","isTooltipVisible","uuid","uuid4","pendingTooltip","hideTooltipOnScrollAndResize","bind","_assertThisInitialized","_createClass","key","value","window","addEventListener","this","targetObj","setTooltipVisible","removeEventListener","clearTimeout","visible","showTooltip","setState","tooltip","document","querySelector","concat","id","tooltipTrigger","updateTooltipLayout","getAttribute","currentDirection","newDirection","canDisplayFullText","triggerRef","disable","showToolTipIfTruncated","elem","triggerElem","truncatedRef","fullWidth","firstChild","scrollWidth","childWidth","offsetWidth","that","setTimeout","delay","direction","tooltipDirection","viewPortWidth","documentElement","clientWidth","viewPortHeight","clientHeight","triggerLayout","getBoundingClientRect","pointer","pointerLayout","style","left","getStyleValue","top","mousePos","updateLocationBasedOnMousePos","tooltipLeft","width","offsetLeft","Math","round","right","height","offsetHeight","bottom","tooltipTop","isOutOfBounds","getNewDirection","setAttribute","mouseX","x","mouseY","y","parseFloat","evt","stopPropagation","preventDefault","_this2","tooltipContent","triggerContent","children","React","createElement","className","onMouseOver","showToolTipOnClick","onMouseLeave","onMouseDown","onClick","toggleTooltipOnClick","onFocus","showTooltipWithDelay","onBlur","relatedTarget","tabIndex","role","ref","tip","_typeof","tipClass","link","tooltipLinkHandler","linkInformation","label","url","Link","href","target","rel","visited","Portal","viewBox","points","Component","defaultProps"],"mappings":"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"}
@@ -0,0 +1,2 @@
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