@elyra/canvas 12.10.2 → 12.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas-constants-7f93e705.js +2 -0
- package/dist/canvas-constants-7f93e705.js.map +1 -0
- package/dist/canvas-constants-ac5daafb.js +2 -0
- package/dist/canvas-constants-ac5daafb.js.map +1 -0
- package/dist/canvas-controller-190542a6.js +2 -0
- package/dist/canvas-controller-190542a6.js.map +1 -0
- package/dist/canvas-controller-cbee8dd7.js +2 -0
- package/dist/canvas-controller-cbee8dd7.js.map +1 -0
- package/dist/canvas-logger-815781bb.js +2 -0
- package/dist/canvas-logger-815781bb.js.map +1 -0
- package/dist/canvas-logger-a0f1beaa.js +2 -0
- package/dist/canvas-logger-a0f1beaa.js.map +1 -0
- package/dist/common-canvas-8d2ddc6b.js +2 -0
- package/dist/common-canvas-8d2ddc6b.js.map +1 -0
- package/dist/common-canvas-e0a57cdb.js +2 -0
- package/dist/common-canvas-e0a57cdb.js.map +1 -0
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.es.js.map +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-canvas.js.map +1 -1
- package/dist/common-properties-09ec10eb.js +2 -0
- package/dist/common-properties-09ec10eb.js.map +1 -0
- package/dist/common-properties-f1b96e0f.js +2 -0
- package/dist/common-properties-f1b96e0f.js.map +1 -0
- package/dist/datarecord-metadata-v3-schema-bda88f2e.js +2 -0
- package/dist/datarecord-metadata-v3-schema-bda88f2e.js.map +1 -0
- package/dist/datarecord-metadata-v3-schema-d7ad05cd.js +2 -0
- package/dist/datarecord-metadata-v3-schema-d7ad05cd.js.map +1 -0
- package/dist/en-2ed89528.js +2 -0
- package/dist/en-2ed89528.js.map +1 -0
- package/dist/en-e93855cc.js +2 -0
- package/dist/en-e93855cc.js.map +1 -0
- package/dist/extends-39f57612.js +7 -0
- package/dist/extends-39f57612.js.map +1 -0
- package/dist/extends-51d9ddcc.js +7 -0
- package/dist/extends-51d9ddcc.js.map +1 -0
- package/dist/flexible-table-154a3359.js +2 -0
- package/dist/flexible-table-154a3359.js.map +1 -0
- package/dist/flexible-table-5e4a1e6d.js +2 -0
- package/dist/flexible-table-5e4a1e6d.js.map +1 -0
- package/dist/icon-811ffddd.js +2 -0
- package/dist/icon-811ffddd.js.map +1 -0
- package/dist/icon-d6909a68.js +2 -0
- package/dist/icon-d6909a68.js.map +1 -0
- package/dist/index-4fd90a14.js +2 -0
- package/dist/index-4fd90a14.js.map +1 -0
- package/dist/index-6d138021.js +2 -0
- package/dist/index-6d138021.js.map +1 -0
- package/dist/isArrayLikeObject-31e5e646.js +2 -0
- package/dist/isArrayLikeObject-31e5e646.js.map +1 -0
- package/dist/isArrayLikeObject-7c33c7fd.js +2 -0
- package/dist/isArrayLikeObject-7c33c7fd.js.map +1 -0
- package/dist/lib/canvas-controller.es.js +1 -1
- package/dist/lib/canvas-controller.js +1 -1
- package/dist/lib/canvas.es.js +1 -1
- package/dist/lib/canvas.js +1 -1
- package/dist/lib/context-menu.es.js +1 -1
- package/dist/lib/context-menu.es.js.map +1 -1
- package/dist/lib/context-menu.js +1 -1
- package/dist/lib/context-menu.js.map +1 -1
- package/dist/lib/properties/field-picker.es.js +1 -1
- package/dist/lib/properties/field-picker.js +1 -1
- package/dist/lib/properties/flexible-table.es.js +1 -1
- package/dist/lib/properties/flexible-table.js +1 -1
- package/dist/lib/properties.es.js +1 -1
- package/dist/lib/properties.js +1 -1
- package/dist/lib/tooltip.es.js +1 -1
- package/dist/lib/tooltip.es.js.map +1 -1
- package/dist/lib/tooltip.js +1 -1
- package/dist/lib/tooltip.js.map +1 -1
- package/dist/styles/common-canvas.min.css +1 -1
- package/dist/styles/common-canvas.min.css.map +1 -1
- package/dist/toolbar-335252dd.js +2 -0
- package/dist/toolbar-335252dd.js.map +1 -0
- package/dist/toolbar-85e6c77b.js +2 -0
- package/dist/toolbar-85e6c77b.js.map +1 -0
- package/locales/command-actions/locales/en.json +7 -1
- package/locales/command-actions/locales/eo.json +7 -1
- package/locales/command-actions/locales/index.js +3 -1
- package/locales/command-actions/locales/ko.json +9 -0
- package/locales/common-canvas/locales/en.json +3 -0
- package/locales/common-canvas/locales/eo.json +3 -0
- package/locales/common-canvas/locales/index.js +3 -1
- package/locales/common-canvas/locales/ko.json +32 -0
- package/locales/common-properties/locales/index.js +3 -1
- package/locales/common-properties/locales/ko.json +93 -0
- package/locales/palette/locales/index.js +3 -1
- package/locales/palette/locales/ko.json +10 -0
- package/locales/toolbar/locales/index.js +3 -1
- package/locales/toolbar/locales/ko.json +8 -0
- package/package.json +2 -1
- package/src/color-picker/color-picker-panel.jsx +61 -0
- package/src/color-picker/color-picker.jsx +37 -0
- package/src/color-picker/color-picker.scss +46 -0
- package/src/command-actions/colorSelectedObjectsAction.js +72 -0
- package/src/command-actions/deleteObjectsAction.js +16 -11
- package/src/command-actions/pasteAction.js +50 -21
- package/src/common-canvas/canvas-controller.js +32 -5
- package/src/common-canvas/cc-bottom-panel.jsx +15 -9
- package/src/common-canvas/cc-contents.jsx +115 -8
- package/src/common-canvas/cc-toolbar.jsx +7 -6
- package/src/common-canvas/common-canvas-utils.js +73 -90
- package/src/common-canvas/common-canvas.scss +5 -5
- package/src/common-canvas/constants/canvas-constants.js +17 -16
- package/src/common-canvas/label-util.js +1 -1
- package/src/common-canvas/svg-canvas-d3.js +20 -107
- package/src/common-canvas/svg-canvas-d3.scss +66 -4
- package/src/common-canvas/svg-canvas-pipeline.js +201 -0
- package/src/common-canvas/svg-canvas-renderer.js +325 -339
- package/src/common-canvas/svg-canvas-utils-links.js +3 -3
- package/src/common-canvas/svg-canvas-utils-nodes.js +22 -44
- package/src/common-properties/actions.js +4 -0
- package/src/common-properties/components/field-picker/field-picker.jsx +33 -36
- package/src/common-properties/components/field-picker/field-picker.scss +20 -23
- package/src/common-properties/components/flexible-table/flexible-table.jsx +46 -31
- package/src/common-properties/components/flexible-table/flexible-table.scss +14 -17
- package/src/common-properties/components/properties-buttons/properties-buttons.jsx +28 -21
- package/src/common-properties/components/table-buttons/table-buttons.jsx +3 -1
- package/src/common-properties/components/table-buttons/table-buttons.scss +8 -8
- package/src/common-properties/components/title-editor/title-editor.jsx +31 -4
- package/src/common-properties/components/title-editor/title-editor.scss +30 -5
- package/src/common-properties/components/virtualized-table/virtualized-table.jsx +119 -27
- package/src/common-properties/components/virtualized-table/virtualized-table.scss +72 -8
- package/src/common-properties/constants/constants.js +5 -1
- package/src/common-properties/constants/form-constants.js +1 -0
- package/src/common-properties/controls/abstract-table.jsx +12 -11
- package/src/common-properties/controls/abstract-table.scss +6 -2
- package/src/common-properties/controls/dropdown/dropdown.scss +4 -0
- package/src/common-properties/controls/expression/expression-builder/expression-select-field-function.jsx +2 -2
- package/src/common-properties/controls/expression/expression.scss +1 -1
- package/src/common-properties/controls/passwordfield/passwordfield.jsx +2 -2
- package/src/common-properties/controls/readonlytable/readonlytable.jsx +4 -2
- package/src/common-properties/controls/selectcolumns/selectcolumns.scss +0 -19
- package/src/common-properties/controls/someofselect/someofselect.scss +2 -2
- package/src/common-properties/form/ControlInfo.js +8 -0
- package/src/common-properties/form/EditorForm.js +4 -0
- package/src/common-properties/form/ParameterInfo.js +4 -0
- package/src/common-properties/panels/sub-panel/cell.jsx +18 -23
- package/src/common-properties/panels/sub-panel/sub-panel.scss +5 -22
- package/src/common-properties/properties-controller.js +18 -0
- package/src/common-properties/properties-main/properties-main.jsx +15 -9
- package/src/common-properties/properties-main/properties-main.scss +9 -2
- package/src/common-properties/properties-store.js +27 -1
- package/src/common-properties/reducers/properties-settings.js +17 -1
- package/src/context-menu/common-context-menu.jsx +74 -29
- package/src/context-menu/context-menu-wrapper.jsx +2 -2
- package/src/icons/icon.jsx +5 -46
- package/src/index.scss +1 -0
- package/src/object-model/api-pipeline.js +18 -7
- package/src/object-model/object-model.js +27 -3
- package/src/object-model/redux/reducers/canvasinfo.js +36 -0
- package/src/object-model/redux/reducers/comments.js +58 -10
- package/src/object-model/redux/reducers/externalpipelineflows.js +1 -0
- package/src/object-model/redux/reducers/links.js +9 -7
- package/src/object-model/redux/reducers/selectioninfo.js +2 -1
- package/src/palette/palette-content-list-item.jsx +8 -1
- package/src/palette/palette-dialog-content-grid-node.jsx +8 -1
- package/src/toolbar/toolbar-action-item.jsx +75 -11
- package/src/toolbar/toolbar-overflow-item.jsx +2 -3
- package/src/tooltip/tooltip.jsx +4 -1
- package/stats.html +1 -1
- package/dist/canvas-constants-af93267a.js +0 -2
- package/dist/canvas-constants-af93267a.js.map +0 -1
- package/dist/canvas-constants-ffce3b78.js +0 -2
- package/dist/canvas-constants-ffce3b78.js.map +0 -1
- package/dist/canvas-controller-3f67c4fb.js +0 -2
- package/dist/canvas-controller-3f67c4fb.js.map +0 -1
- package/dist/canvas-controller-cee447d2.js +0 -2
- package/dist/canvas-controller-cee447d2.js.map +0 -1
- package/dist/common-canvas-e212a9c1.js +0 -2
- package/dist/common-canvas-e212a9c1.js.map +0 -1
- package/dist/common-canvas-e98191b3.js +0 -2
- package/dist/common-canvas-e98191b3.js.map +0 -1
- package/dist/common-properties-653e50e3.js +0 -2
- package/dist/common-properties-653e50e3.js.map +0 -1
- package/dist/common-properties-e2c6def7.js +0 -2
- package/dist/common-properties-e2c6def7.js.map +0 -1
- package/dist/datarecord-metadata-v3-schema-10ddafaf.js +0 -2
- package/dist/datarecord-metadata-v3-schema-10ddafaf.js.map +0 -1
- package/dist/datarecord-metadata-v3-schema-1504c843.js +0 -2
- package/dist/datarecord-metadata-v3-schema-1504c843.js.map +0 -1
- package/dist/en-517f38fc.js +0 -2
- package/dist/en-517f38fc.js.map +0 -1
- package/dist/en-dc6f2e9f.js +0 -2
- package/dist/en-dc6f2e9f.js.map +0 -1
- package/dist/extends-5a45f92e.js +0 -7
- package/dist/extends-5a45f92e.js.map +0 -1
- package/dist/extends-a52336ca.js +0 -8
- package/dist/extends-a52336ca.js.map +0 -1
- package/dist/flexible-table-e6ccbe58.js +0 -2
- package/dist/flexible-table-e6ccbe58.js.map +0 -1
- package/dist/flexible-table-f60c1680.js +0 -2
- package/dist/flexible-table-f60c1680.js.map +0 -1
- package/dist/index-567978da.js +0 -2
- package/dist/index-567978da.js.map +0 -1
- package/dist/index-59486e9a.js +0 -2
- package/dist/index-59486e9a.js.map +0 -1
- package/dist/isEmpty-def8f509.js +0 -2
- package/dist/isEmpty-def8f509.js.map +0 -1
- package/dist/isEmpty-e171b734.js +0 -2
- package/dist/isEmpty-e171b734.js.map +0 -1
- package/dist/toolbar-404bf690.js +0 -2
- package/dist/toolbar-404bf690.js.map +0 -1
- package/dist/toolbar-611d8ab9.js +0 -2
- package/dist/toolbar-611d8ab9.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("./extends-a52336ca.js"),t=require("./getPrototypeOf-0bf77a9e.js"),r=require("./createClass-6db89a23.js"),o=require("./isEmpty-e171b734.js"),l=require("react"),i=require("react-intl"),s=require("react-dom"),a=require("carbon-components-react"),n=require("react-virtualized"),d=require("./lib/tooltip.js"),c=require("uuid"),p=require("react-resize-detector");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=u(l),b=u(s),f=u(p),m={"subPanel.button.tooltip":"Edit","structureListEditor.addButton.label":"Add value","structureListEditor.removeButton.label":"Remove","structureTable.addButton.label":"Add columns","structureTable.removeButton.label":"Remove","fieldPicker.saveButton.label":"Select Fields for","fieldPicker.saveButton.tooltip":"Save and return","fieldPicker.resetButton.label":"Reset ","fieldPicker.filter.label":"Filter:","fieldPicker.fieldColumn.label":"Field name","fieldPicker.schemaColumn.label":"Schema name","fieldPicker.dataTypeColumn.label":"Data type","fieldPicker.integer.label":"integer","fieldPicker.double.label":"double","fieldPicker.string.label":"string","fieldPicker.date.label":"date","fieldPicker.time.label":"time","fieldPicker.timestamp.label":"timestamp","flyout.applyButton.label":"OK","flyout.rejectButton.label":"Cancel","propertiesEdit.closeButton.label":"Close","propertiesEdit.applyButton.label":"Save","propertiesEdit.rejectButton.label":"Cancel","propertiesEdit.revertButton.label":"Revert","propertiesEdit.resizeButton.expand.label":"Expand","propertiesEdit.resizeButton.contract.label":"Contract","properties.revert.message":"Click Revert to go back to the previous screen or click Close to exit the pane. Then try your operation again.","properties.close.message":"Click Close to exit the pane. Then try your operation again.","properties.support.message":"If the problem persists, contact support.","properties.unexpected.message":"Oops, the pane didn't load.","table.search.header":"View in tables","table.search.placeholder":"Find in column {column_name}","table.search.label":"Search in {table_name} table","summary.longTable.placeholder":"More than ten fields...","alerts.tab.title":"Alerts","title.editor.label":"edit title","title.editor.helpButton.label":"help","table.summary.error":"There are {errorMsgCount} error cells. ","table.summary.warning":"There are {warningMsgCount} warning cells. ","control.summary.error":"There are {errorMsgCount} parameters with errors. ","control.summary.warning":"There are {warningMsgCount} parameters with warnings. ","control.summary.error.warning":"There are {errorMsgCount} parameters with errors and {warningMsgCount} parameters with warnings.","required.error":"You must provide your {label}.","datetime.format.error":"Invalid {role}. Format should be {format}.","invalid.field.error":"Invalid {label}, field not found in data set.","expression.validate.label":"Validate","expression.validating.label":"Validating","expression.builder.title":"Expression Builder","expression.builder.icon.description":"launch expression builder","expression.builder.label":"Expression","expression.fields.table.label":"Fields table","expression.values.table.label":"Values table","expression.functions.table.label":"Functions table","expression.fields.dropdown":"Fields","expression.fields.title":"Fields","expression.values.title":"Values","expression.field.column":"Field","expression.storage.column":"Storage","expression.value.column":"Value","expression.function.column":"Function","expression.return.column":"Return","expression.recently.used.column":"Item","expression.field.tab":"Fields","expression.functions.tab":"Functions","expression.recently.used":"Recently Used","expression.all.functions":"All Functions","expression.min.label":"Min","expression.max.label":"Max","expression.no.functions":"No functions found.","multi.selected.row.label":"rows selected.","multi.selected.row.action":"Changing a value in this row will change the value in all allowed selected rows.","datetimefield.format.error.message":"Invalid format object provided. Check input definitions.","editorform.group.type.error":"(Unknown group type '{group.groupType()}')","moveable.table.button.top":"Move to top","moveable.table.button.up":"Move up","moveable.table.button.down":"Move down","moveable.table.button.bottom":"Move to bottom","list.table.label":"Values","dropdown.tooltip.openMenu":"Open menu","dropdown.tooltip.closeMenu":"Close menu","dropdown.tooltip.clear.all":"Clear all","dropdown.tooltip.clear.selection":"Clear selection","truncate.long.string.error":"These values exceed the display limit of {truncate_limit} characters and can't be edited.","properties.label":"Properties","readonlytable.edit.button.label":"Edit","toggletext.icon.description":"{toggletext_label} Icon","multiselect.dropdown.empty.label":"None selected","multiselect.dropdown.options.selected.label":"options selected","virtualizedTable.header.checkbox.label":"Select all {header_checkbox_label}","virtualizedTable.row.checkbox.label":"Select row {row_index} from {table_label}","properties.empty.table.text":'To begin, click "{button_label}"'};function v(e){var r=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 o,l=t._getPrototypeOf(e);if(r){var i=t._getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,i)}else o=l.apply(this,arguments);return t._possibleConstructorReturn(this,o)}}var w=function(l){t._inherits(s,l);var i=v(s);function s(e,o){var l;return r._classCallCheck(this,s),(l=i.call(this,e,o)).state={rowCount:l.props.rowCount},l.virtualizedTableRef=h.default.createRef(),l.isOverSelectOption=!1,l.mouseEventCalled=!1,l.keyBoardEventCalled=!1,l.cellRenderer=l.cellRenderer.bind(t._assertThisInitialized(l)),l.selectAll=l.selectAll.bind(t._assertThisInitialized(l)),l.headerRowRenderer=l.headerRowRenderer.bind(t._assertThisInitialized(l)),l.headerColRenderer=l.headerColRenderer.bind(t._assertThisInitialized(l)),l.onRowClick=l.onRowClick.bind(t._assertThisInitialized(l)),l.overSelectOption=l.overSelectOption.bind(t._assertThisInitialized(l)),l}return r._createClass(s,[{key:"componentDidUpdate",value:function(){"function"==typeof this.props.rowHeight&&this.recomputeRowHeights()}},{key:"onRowClick",value:function(e,t,r){if("bx--select-option"===e.target.className)e.stopPropagation();else{var o=!this.isRowSelected(t.originalRowIndex);"function"==typeof this.props.setRowsSelected&&this.props.setRowsSelected({index:r,originalRowIndex:t.originalRowIndex,selected:o,isOverSelectOption:this.isOverSelectOption},e)}}},{key:"onRowDoubleClick",value:function(e,t,r){this.props.onRowDoubleClick&&this.props.onRowDoubleClick(e,t,r)}},{key:"getCheckboxLabelColumnIndex",value:function(e){for(var t=0;t<e.length;t++)if("index"!==e[t].operation)return t;return 0}},{key:"isRowSelected",value:function(e){return!!this.props.rowsSelected&&this.props.rowsSelected.indexOf(e)>-1}},{key:"selectAll",value:function(e){this.props.setAllRowsSelected(e)}},{key:"cellRenderer",value:function(e){var t=e.cellData;return null==t?"":t}},{key:"cellRendererHTML",value:function(e){var t=e.cellData;return null==t?"":h.default.createElement("div",{dangerouslySetInnerHTML:{__html:t}})}},{key:"recomputeRowHeights",value:function(e){this.virtualizedTableRef&&this.virtualizedTableRef.current&&this.virtualizedTableRef.current.recomputeRowHeights(e)}},{key:"headerRowRenderer",value:function(t,r){var o=r.className,l=r.columns,i=r.style,s=void 0===this.props.columns||0===this.props.columns.length?0:this.getCheckboxLabelColumnIndex(this.props.columns),n=void 0===this.props.columns||0===this.props.columns.length?"":this.props.columns[s].headerLabel,d=this.props.intl.formatMessage({id:"virtualizedTable.header.checkbox.label",defaultMessage:m["virtualizedTable.header.checkbox.label"]},{header_checkbox_label:n}),c=this.props.selectable&&this.props.rowSelection!==e.ROW_SELECTION.SINGLE?h.default.createElement("div",{role:"columnheader",className:"properties-vt-header-checkbox"},h.default.createElement(a.Checkbox,{id:"properties-vt-hd-cb-".concat(t),onChange:this.selectAll,checked:this.props.checkedAll,labelText:d,hideLabel:!0})):"";return h.default.createElement("div",{className:o,"data-role":"properties-header-row",role:"row",style:i},c,l)}},{key:"headerColRenderer",value:function(t){var r=t.columnData,l=t.dataKey,i=t.disableSort,s=t.label;t.sortBy,t.sortDirection;var a=null;void 0!==this.props.sortColumns[l]&&(a=this.props.sortColumns[l]===e.SORT_DIRECTION.ASC?h.default.createElement(e.Icon,{type:e.CARBON_ICONS.CHEVRONARROWS.UP,disabled:this.props.tableState===e.STATES.DISABLED}):h.default.createElement(e.Icon,{type:e.CARBON_ICONS.CHEVRONARROWS.DOWN,disabled:this.props.tableState===e.STATES.DISABLED}),a=h.default.createElement("div",{className:"properties-ft-column-sort-icon"},a));var n=null;r.description&&r.headerLabel?n=h.default.createElement("div",{className:"properties-tooltips"},h.default.createElement("span",{style:{fontWeight:"bold"}},r.headerLabel),h.default.createElement("br",null),r.description):r.description?n=h.default.createElement("div",{className:"properties-tooltips"},r.description):r.headerLabel&&(n=h.default.createElement("div",{className:"properties-tooltips"},h.default.createElement("span",{style:{fontWeight:"bold"}},r.headerLabel)));var p=c.v4()+"-tooltip-column-"+l;return h.default.createElement("div",{className:e.classNames("properties-vt-column properties-tooltips-container",{"sort-column-active":l===this.props.sortBy})},o.isEmpty_1(n)?s:h.default.createElement(d,{id:p,tip:n,direction:"bottom",className:"properties-tooltips"},s),!1===i&&a)}},{key:"overSelectOption",value:function(e){"mouseenter"!==e.type||this.keyBoardEventCalled?"mouseleave"===e.type&&this.mouseEventCalled?(this.mouseEventCalled=!1,this.isOverSelectOption=!this.isOverSelectOption):"focus"!==e.type||this.mouseEventCalled?"blur"===e.type&&this.keyBoardEventCalled&&(this.keyBoardEventCalled=!1,this.isOverSelectOption=!this.isOverSelectOption):(this.keyBoardEventCalled=!0,this.isOverSelectOption=!this.isOverSelectOption):(this.mouseEventCalled=!0,this.isOverSelectOption=!this.isOverSelectOption)}},{key:"rowRenderer",value:function(t,r){var o=this,l=r.className,i=r.columns,s=r.index,n=r.key,d=r.rowData,c=r.style,p="",u=!1,b="boolean"==typeof d.disabled&&d.disabled;if("function"==typeof this.props.rowHeight&&0===this.props.rowHeight({index:s}))return null;if(this.props.selectable){var f=this.isRowSelected(d.originalRowIndex);if(u=this.props.selectable&&f,this.props.rowSelection!==e.ROW_SELECTION.SINGLE){var v=this.props.intl.formatMessage({id:"virtualizedTable.row.checkbox.label",defaultMessage:m["virtualizedTable.row.checkbox.label"]},{row_index:s+1,table_label:this.props.tableLabel?this.props.tableLabel:""});p=h.default.createElement("div",{className:"properties-vt-row-checkbox",role:"gridcell",onMouseEnter:function(e){return o.overSelectOption(e)},onMouseLeave:function(e){return o.overSelectOption(e)},onFocus:function(e){return o.overSelectOption(e)},onBlur:function(e){return o.overSelectOption(e)}},h.default.createElement(a.Checkbox,{id:"properties-vt-row-cb-".concat(t,"-").concat(s),key:"properties-vt-row-cb-".concat(t,"-").concat(s),labelText:v,hideLabel:!0,checked:f,disabled:b}))}}if(this.props.summaryTable&&(p=h.default.createElement("div",{className:"properties-vt-row-checkbox"})),!0===d.loading)return h.default.createElement("div",{className:l,key:n,"data-role":"properties-loading-row",role:"row",style:c},h.default.createElement(a.Loading,{className:"properties-vt-small-loading",small:!0,withOverlay:!1}));var w=parseInt(c.width,10)+"px",y=Object.assign({},c,{width:w});return h.default.createElement("div",{style:{},key:n,className:"properties-vt-double-click",onDoubleClick:function(e){return o.onRowDoubleClick(e,d.rowKey,s)}},h.default.createElement("div",{className:e.classNames(l,{"properties-vt-row-selected":u},{"properties-vt-row-disabled":b},{"properties-vt-row-non-interactive":!this.props.selectable}),"data-role":"properties-data-row",role:"row",style:y,onMouseDown:function(e){return o.onRowClick(e,d,s)},onKeyPress:function(e){"Space"!==e.code&&"Enter"!==e.code||o.onRowClick(e,d,s)}},p,i))}},{key:"render",value:function(){var t=this;return h.default.createElement("div",{className:"properties-vt"},h.default.createElement("div",{className:e.classNames("properties-vt-autosizer",{"properties-vt-single-selection":this.props.rowSelection&&this.props.rowSelection===e.ROW_SELECTION.SINGLE,"properties-light-disabled":!this.props.light})},h.default.createElement(n.AutoSizer,null,(function(r){var o=r.height,l=r.width;return h.default.createElement(n.Table,{ref:t.virtualizedTableRef,width:l||500,height:o||2e3,className:"properties-autosized-vt","aria-label":t.props.tableLabel?t.props.tableLabel:"",disableHeader:t.props.disableHeader,headerClassName:"properties-autosized-vt-header",headerHeight:32,headerRowRenderer:t.headerRowRenderer.bind(t,t.props.scrollKey),onHeaderClick:t.props.onHeaderClick,rowClassName:"properties-vt-row-class",rowHeight:t.props.rowHeight?t.props.rowHeight:32,rowCount:t.state.rowCount,rowGetter:t.props.rowGetter,rowRenderer:t.rowRenderer.bind(t,t.props.scrollKey),scrollToIndex:t.props.scrollToIndex,scrollToAlignment:t.props.scrollToAlignment,sort:t.props.onSort,sortDirection:t.props.sortDirection},t.props.columns.map((function(r){return h.default.createElement(n.Column,e._extends({key:r.key,label:r.label,dataKey:r.key,width:r.width,columnData:r,disableSort:void 0===t.props.sortColumns[r.key],cellRenderer:r.isHTML?t.cellRendererHTML:t.cellRenderer,headerRenderer:t.headerColRenderer},r.minWidth&&{minWidth:r.minWidth}))})))}))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.rowCount!==t.rowCount?{rowCount:e.rowCount}:{}}}]),s}(h.default.Component);w.defaultProps={disableHeader:!1};var y=i.injectIntl(w);function g(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return R(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return R(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0,l=function(){};return{s:l,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw i}}}}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function C(e){var r=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 o,l=t._getPrototypeOf(e);if(r){var i=t._getPrototypeOf(this).constructor;o=Reflect.construct(l,arguments,i)}else o=l.apply(this,arguments);return t._possibleConstructorReturn(this,o)}}var S=function(l){t._inherits(s,l);var i=C(s);function s(o){var l;r._classCallCheck(this,s);var a={};if(void 0!==(l=i.call(this,o)).props.sortable)for(var n=0;n<l.props.sortable.length;n++){a[l.props.sortable[n]]=e.SORT_DIRECTION.DESC}return l.state={checkedAllRows:!1,columnSortDir:a,currentSortColumn:"",tableWidth:0,tableHeight:0},l.rowHeight=l.rowHeight.bind(t._assertThisInitialized(l)),l.rowGetter=l.rowGetter.bind(t._assertThisInitialized(l)),l.getOriginalRowIndex=l.getOriginalRowIndex.bind(t._assertThisInitialized(l)),l.getLastChildPropertyIdRow=l.getLastChildPropertyIdRow.bind(t._assertThisInitialized(l)),l.calculateColumnWidths=l.calculateColumnWidths.bind(t._assertThisInitialized(l)),l.handleFilterChange=l.handleFilterChange.bind(t._assertThisInitialized(l)),l.onSort=l.onSort.bind(t._assertThisInitialized(l)),l.sortHeaderClick=l.sortHeaderClick.bind(t._assertThisInitialized(l)),l._updateTableWidth=l._updateTableWidth.bind(t._assertThisInitialized(l)),l._adjustTableHeight=l._adjustTableHeight.bind(t._assertThisInitialized(l)),l.handleCheckedRow=l.handleCheckedRow.bind(t._assertThisInitialized(l)),l.handleCheckedAllRows=l.handleCheckedAllRows.bind(t._assertThisInitialized(l)),l}return r._createClass(s,[{key:"componentDidMount",value:function(){this._adjustTableHeight(),window.addEventListener("resize",this._adjustTableHeight),this.tableNode=b.default.findDOMNode(this.refs.table)}},{key:"componentDidUpdate",value:function(e,t){e.rows===this.props.rows&&e.columns===this.props.columns&&e.noAutoSize===this.props.noAutoSize||this._adjustTableHeight(),this.props.selectedRows&&this.setCheckedAll(this.props.selectedRows),this.tableNode=b.default.findDOMNode(this.refs.table)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this._adjustTableHeight)}},{key:"onSort",value:function(t){var r=t.sortBy;if(this.props.onSort){var o={column:r,direction:this.state.columnSortDir[r]===e.SORT_DIRECTION.ASC?e.SORT_DIRECTION.DESC:e.SORT_DIRECTION.ASC};this.props.onSort(o)}}},{key:"getOriginalRowIndex",value:function(e,t){var r=t;return e.columns&&o.has_1(e.columns[0],"content.props.children.props.propertyId.propertyId")?r=this.getLastChildPropertyIdRow(e.columns[0].content.props.children.props.propertyId,t):e.columns&&o.has_1(e.columns[0],"content.props.children.props.propertyId.row")?r=e.columns[0].content.props.children.props.propertyId.row:"number"==typeof e.rowKey&&(r=parseInt(e.rowKey,10)),r}},{key:"getLastChildPropertyIdRow",value:function(e,t){return void 0!==e.propertyId?this.getLastChildPropertyIdRow(e.propertyId):void 0!==e.row?e.row:t}},{key:"setCheckedAll",value:function(e){for(var t=!0,r=0;r<this.props.data.length;r++){var o=this.props.data[r],l=this.getOriginalRowIndex(o,r);if(e.indexOf(l)<0){t=!1;break}}this.state.checkedAllRows!==t&&this.setState({checkedAllRows:t})}},{key:"calculateColumnWidths",value:function(t,r){var o=r-12;this.props.rowSelection!==e.ROW_SELECTION.SINGLE&&(o-=40);var l,i=t.length,s=0,a=g(t);try{for(a.s();!(l=a.n()).done;){var n=l.value;n.width&&("string"==typeof n.width&&n.width.includes("px")?(o-=parseInt(n.width,10),i--):s=Math.max(s,n.width))}}catch(e){a.e(e)}finally{a.f()}var d,c=[],p=Math.floor(o/i),u=[],h=0,b=g(t);try{for(b.s();!(d=b.n()).done;){var f=d.value;f.width&&!isNaN(f.width)?(u.push(f.width/s),h+=f.width/s):u.push(null)}}catch(e){b.e(e)}finally{b.f()}for(var m=o/h,v=0,w=0;w<t.length;w++){var y=t[w];if(y.width)if("string"==typeof y.width&&y.width.includes("px"))c.push(Math.floor(parseInt(y.width,10))+"px"),v+=parseInt(y.width,10);else{var R=Math.floor(u[w]*m);c.push(R+"px"),v+=R}else c.push(p),v+=p}var C=r;if(this.props.rowSelection!==e.ROW_SELECTION.SINGLE&&(C-=40),v<C){var S=parseInt(c[0],10);c[0]=S+C-v+"px"}return c}},{key:"_updateTableWidth",value:function(e,t){this.state.tableWidth!==Math.floor(e-2)&&this.setState({tableWidth:Math.floor(e-2)})}},{key:"_adjustTableHeight",value:function(){if(!this.props.noAutoSize){var e=this.state.tableHeight,t=2.25,r=2.5,o=void 0!==this.props.rows?this.props.rows:4;if(o>0)e=t*o+r;else if(0===o)e=r;else{var l=document.getElementById("root"),i=l?l.getElementsByClassName("properties-wf-children"):[];if(l&&0===i.length&&(i=l.getElementsByClassName("bx--modal-content")),i.length>0){var s=i[i.length-1],a=s.getElementsByClassName("properties-ft-container-wrapper"),n=a.length>0?a[a.length-1]:null;if(n){var d=window.getComputedStyle(n,null).getPropertyValue("font-size"),c=parseFloat(d);e=(s.offsetHeight-n.offsetTop)/c+r,e=Math.max(e,4.75)}else e=11.5}}e!==this.state.tableHeight&&this.setState({tableHeight:e})}}},{key:"sortHeaderClick",value:function(t){var r=t.dataKey,o=this.state.columnSortDir;void 0!==o[r]&&(o[r]=o[r]===e.SORT_DIRECTION.ASC?e.SORT_DIRECTION.DESC:e.SORT_DIRECTION.ASC,this.setState({columnSortDir:o,currentSortColumn:r}))}},{key:"handleFilterChange",value:function(e){this.props.onFilter&&this.props.onFilter(e.target.value)}},{key:"handleCheckedAllRows",value:function(e){var t=[],r=this.props.data;if(e){t=Array.from(this.props.selectedRows);for(var o=0;o<r.length;o++){var l=this.getOriginalRowIndex(r[o],o);t.push(l)}}t=Array.from(new Set(t)),this.props.updateRowSelections(t),this.setState({checkedAllRows:e})}},{key:"handleCheckedRow",value:function(t,r){var o=t.originalRowIndex,l=t.index,i=t.selected,s=t.isOverSelectOption;if(!this.props.data[l].disabled)if(s){var a=this.props.selectedRows?this.props.selectedRows:[];i?(a=a.concat(o),this.setCheckedAll(a)):a&&(a=a.filter((function(e){return e!==o})),this.setState({checkedAllRows:!1})),this.props.updateRowSelections(a)}else this.props.rowSelection===e.ROW_SELECTION.SINGLE&&void 0!==this.props.updateRowSelections&&this.props.updateRowSelections(t.index,r,this.props.data[t.index].rowKey)}},{key:"generateTableHeaderRow",value:function(e){for(var r=[],o="",l=0;l<this.props.columns.length;l++){var i=this.props.columns[l];void 0!==this.props.filterable&&this.props.filterable[0]===i.key&&(o=i.label);var s=Math.abs(parseInt(e[l],10)),a=void 0;"object"===t._typeof(i.label)?a=i.label.props.labelText:"string"==typeof i.label&&(a=i.label),r.push({key:i.key,label:i.label,width:s,description:i.description,headerLabel:a,operation:i.operation})}return{headers:r,searchLabel:o}}},{key:"rowGetter",value:function(e){var t=e.index,r=this.props.data[t],o=this.getOriginalRowIndex(r,t),l={};if(r.columns)for(var i=0;i<r.columns.length;i++){var s=r.columns[i];l[s.column]=s.content}return Object.assign({},l,{loading:!1,index:t,originalRowIndex:o,rowKey:void 0!==r.rowKey?r.rowKey:this.props.scrollKey+"-row-"+t,disabled:r.disabled})}},{key:"rowHeight",value:function(t){return t.index,e.ROW_HEIGHT}},{key:"render",value:function(){var t=this.state.tableWidth,r=this.state.tableHeight,o=this.calculateColumnWidths(this.props.columns,t),l=this.generateTableHeaderRow(o),i=l.headers,s=l.searchLabel,n=this.props.tableState===e.STATES.DISABLED,d=null;if(void 0!==this.props.filterable&&0!==this.props.filterable.length){var c=this.props.intl.formatMessage({id:"table.search.placeholder",defaultMessage:m["table.search.placeholder"]},{column_name:s}),p=this.props.intl.formatMessage({id:"table.search.label",defaultMessage:m["table.search.label"]},{table_name:this.props.tableLabel});d=h.default.createElement("div",{className:e.classNames("properties-ft-search-container",{disabled:n})},h.default.createElement(a.Search,{className:"properties-ft-search-text",placeholder:c,onChange:this.handleFilterChange,disabled:n,size:"sm",labelText:p,light:this.props.light}))}var u=-1;void 0!==this.props.scrollToRow&&null!==this.props.scrollToRow&&(u=this.props.scrollToRow);var b=this.props.noAutoSize||0===r?{}:{height:r+"em"},v=this.props.showHeader?"properties-ft-container-absolute ":"properties-ft-container-absolute-noheader ",w=this.props.messageInfo?v+this.props.messageInfo.type:v+e.STATES.INFO;return h.default.createElement("div",{"data-id":"properties-ft-"+this.props.scrollKey,className:"properties-ft-control-container"},h.default.createElement("div",{className:"properties-ft-table-header"},d,this.props.topRightPanel),h.default.createElement("div",{className:"properties-ft-container-panel"},h.default.createElement(f.default,{handleWidth:!0,onResize:this._updateTableWidth},h.default.createElement("div",{className:"properties-ft-container-wrapper",style:b},h.default.createElement("div",{className:w},this.props.selectedEditRow,h.default.createElement(y,e._extends({tableLabel:this.props.tableLabel,columns:i,onHeaderClick:this.sortHeaderClick,rowCount:this.props.data.length,rowHeight:this.rowHeight,rowGetter:this.rowGetter,summaryTable:this.props.summaryTable,selectable:void 0!==this.props.updateRowSelections,rowSelection:this.props.rowSelection,disableHeader:!this.props.showHeader,onRowDoubleClick:this.props.onRowDoubleClick,rowsSelected:this.props.selectedRows,checkedAll:this.state.checkedAllRows,setRowsSelected:this.handleCheckedRow,setAllRowsSelected:this.handleCheckedAllRows,scrollKey:this.props.scrollKey,onSort:this.onSort,sortBy:this.state.currentSortColumn,sortColumns:this.state.columnSortDir,sortDirection:this.state.columnSortDir[this.state.currentSortColumn],tableState:this.props.tableState,light:this.props.light},-1!==u&&{scrollToIndex:u,scrollToAlignment:"center"})))))))}}]),s}(h.default.Component);S.defaultProps={showHeader:!0,light:!0};var k=i.injectIntl(S);exports.FlexibleTable=k,exports.defaultMessages=m;
|
|
2
|
-
//# sourceMappingURL=flexible-table-e6ccbe58.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flexible-table-e6ccbe58.js","sources":["../src/common-properties/components/virtualized-table/virtualized-table.jsx","../src/common-properties/components/flexible-table/flexible-table.jsx"],"sourcesContent":["/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Column, Table, AutoSizer } from \"react-virtualized\";\n\nimport { Checkbox, Loading } from \"carbon-components-react\";\nimport Icon from \"./../../../icons/icon.jsx\";\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport { SORT_DIRECTION, STATES, ROW_SELECTION, CARBON_ICONS } from \"./../../constants/constants\";\nimport { injectIntl } from \"react-intl\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nimport { isEmpty } from \"lodash\";\nimport { v4 as uuid4 } from \"uuid\";\nimport classNames from \"classnames\";\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nclass VirtualizedTable extends React.Component {\n\n\tstatic getDerivedStateFromProps(nextProps, prevState) {\n\t\tif (nextProps.rowCount !== prevState.rowCount) {\n\t\t\treturn ({ rowCount: nextProps.rowCount });\n\t\t}\n\t\treturn ({});\n\t}\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\trowCount: this.props.rowCount\n\t\t};\n\t\tthis.virtualizedTableRef = React.createRef();\n\n\t\tthis.isOverSelectOption = false;\n\t\tthis.mouseEventCalled = false;\n\t\tthis.keyBoardEventCalled = false;\n\t\tthis.cellRenderer = this.cellRenderer.bind(this);\n\t\tthis.selectAll = this.selectAll.bind(this);\n\t\tthis.headerRowRenderer = this.headerRowRenderer.bind(this);\n\t\tthis.headerColRenderer = this.headerColRenderer.bind(this);\n\t\tthis.onRowClick = this.onRowClick.bind(this);\n\t\tthis.overSelectOption = this.overSelectOption.bind(this);\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// If the rowHeight prop is a function, the virtualized table doesn't always adjust its\n\t\t// row heights correctly when the table data has changed. So in this case we need\n\t\t// to recompute the row heights.\n\t\tif (typeof this.props.rowHeight === \"function\") {\n\t\t\tthis.recomputeRowHeights();\n\t\t}\n\t}\n\n\t// This is also triggered when clicking on a checkbox\n\tonRowClick(evt, rowData, index) {\n\t\tif (evt.target.className === \"bx--select-option\") {\n\t\t\tevt.stopPropagation(); // stop propagation when selecting dropdown select options within table rows\n\t\t} else {\n\t\t\t// Set selections\n\t\t\tconst selected = !this.isRowSelected(rowData.originalRowIndex);\n\t\t\tif (typeof this.props.setRowsSelected === \"function\") {\n\t\t\t\tthis.props.setRowsSelected({\n\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\"originalRowIndex\": rowData.originalRowIndex,\n\t\t\t\t\t\"selected\": selected,\n\t\t\t\t\t\"isOverSelectOption\": this.isOverSelectOption }, evt);\n\t\t\t}\n\t\t}\n\t}\n\n\tonRowDoubleClick(evt, rowKey, index) {\n\t\tif (this.props.onRowDoubleClick) {\n\t\t\tthis.props.onRowDoubleClick(evt, rowKey, index);\n\t\t}\n\t}\n\n\tgetCheckboxLabelColumnIndex(columns) {\n\t\t// If 1st column is Index, use the next column for labeling\n\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\tif (columns[i].operation !== \"index\") {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\t// Use first column by default\n\t\treturn 0;\n\t}\n\n\tisRowSelected(index) {\n\t\tif (this.props.rowsSelected) {\n\t\t\treturn this.props.rowsSelected.indexOf(index) > -1;\n\t\t}\n\t\treturn false;\n\t}\n\n\tselectAll(selected) {\n\t\tthis.props.setAllRowsSelected(selected);\n\t}\n\n\t// Callback responsible for rendering a cell's contents.\n\tcellRenderer({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn cellData;\n\t}\n\n\tcellRendererHTML({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn (<div dangerouslySetInnerHTML={{ __html: cellData }} />);\n\t}\n\n\trecomputeRowHeights(index) {\n\t\tif (this.virtualizedTableRef && this.virtualizedTableRef.current) {\n\t\t\tthis.virtualizedTableRef.current.recomputeRowHeights(index);\n\t\t}\n\t}\n\n\t// Responsible for rendering the table header row given an array of columns.\n\theaderRowRenderer(scrollKey, { className, columns, style }) {\n\t\tconst checkboxLabelColumnIndex = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? 0 : this.getCheckboxLabelColumnIndex(this.props.columns);\n\t\tconst headerCheckboxLabel = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? \"\" : this.props.columns[checkboxLabelColumnIndex].headerLabel;\n\t\tconst translatedHeaderCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t{ id: \"virtualizedTable.header.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.header.checkbox.label\"] },\n\t\t\t{ header_checkbox_label: headerCheckboxLabel }\n\t\t);\n\t\tconst checkbox = this.props.selectable && this.props.rowSelection !== ROW_SELECTION.SINGLE ? (<div role=\"columnheader\" className=\"properties-vt-header-checkbox\">\n\t\t\t<Checkbox\n\t\t\t\tid={`properties-vt-hd-cb-${scrollKey}`}\n\t\t\t\tonChange={this.selectAll}\n\t\t\t\tchecked={this.props.checkedAll}\n\t\t\t\tlabelText={translatedHeaderCheckboxLabel}\n\t\t\t\thideLabel\n\t\t\t/>\n\t\t</div>)\n\t\t\t: \"\";\n\n\t\treturn (<div className={className} data-role=\"properties-header-row\" role=\"row\" style={style}>\n\t\t\t{checkbox}\n\t\t\t{columns}\n\t\t</div>);\n\t}\n\n\theaderColRenderer({ columnData, dataKey, disableSort, label, sortBy, sortDirection }) {\n\t\tlet sortIcon = null;\n\t\tif (typeof this.props.sortColumns[dataKey] !== \"undefined\") {\n\t\t\tsortIcon = this.props.sortColumns[dataKey] === SORT_DIRECTION.ASC\n\t\t\t\t? <Icon type={CARBON_ICONS.CHEVRONARROWS.UP} disabled={this.props.tableState === STATES.DISABLED} />\n\t\t\t\t: <Icon type={CARBON_ICONS.CHEVRONARROWS.DOWN} disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\tsortIcon = (<div className=\"properties-ft-column-sort-icon\">\n\t\t\t\t{sortIcon}\n\t\t\t</div>);\n\t\t}\n\n\t\tlet tooltip = null;\n\t\tif (columnData.description && columnData.headerLabel) {\n\t\t\ttooltip = (\n\t\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t\t<span style= {{ fontWeight: \"bold\" }}>{columnData.headerLabel}</span>\n\t\t\t\t\t<br />\n\t\t\t\t\t{columnData.description}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if (columnData.description) {\n\t\t\ttooltip = (\n\t\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t\t{columnData.description}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if (columnData.headerLabel) {\n\t\t\ttooltip = (\n\t\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t\t<span style= {{ fontWeight: \"bold\" }}>{columnData.headerLabel}</span>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst tooltipId = uuid4() + \"-tooltip-column-\" + dataKey;\n\n\t\treturn (<div className={classNames(\"properties-vt-column properties-tooltips-container\", { \"sort-column-active\": dataKey === this.props.sortBy })}>\n\t\t\t{ isEmpty(tooltip)\n\t\t\t\t? label\n\t\t\t\t: <Tooltip\n\t\t\t\t\tid={tooltipId}\n\t\t\t\t\ttip={tooltip}\n\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Tooltip>\n\t\t\t}\n\t\t\t{disableSort === false && sortIcon}\n\t\t</div>);\n\t}\n\n\toverSelectOption(evt) {\n\t\t// Differentiate between mouse and keyboard event\n\t\tif (evt.type === \"mouseenter\" && !this.keyBoardEventCalled) {\n\t\t\tthis.mouseEventCalled = true;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"mouseleave\" && this.mouseEventCalled) {\n\t\t\tthis.mouseEventCalled = false;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"focus\" && !this.mouseEventCalled) {\n\t\t\tthis.keyBoardEventCalled = true;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"blur\" && this.keyBoardEventCalled) {\n\t\t\tthis.keyBoardEventCalled = false;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t}\n\t}\n\n\t// Responsible for rendering a table row given an array of columns.\n\trowRenderer(scrollKey, { className, columns, index, key, rowData, style }) {\n\t\tlet selectOption = \"\";\n\t\tlet selectedRow = false;\n\t\tconst rowDisabled = typeof rowData.disabled === \"boolean\" ? rowData.disabled : false;\n\n\t\tif (typeof this.props.rowHeight === \"function\" && this.props.rowHeight({ index }) === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.props.selectable) {\n\t\t\tconst rowSelected = this.isRowSelected(rowData.originalRowIndex);\n\t\t\tselectedRow = this.props.selectable && rowSelected;\n\t\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\t\tconst translatedRowCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t\t\t{ id: \"virtualizedTable.row.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.row.checkbox.label\"] },\n\t\t\t\t\t{ row_index: index + 1, table_label: (this.props.tableLabel ? this.props.tableLabel : \"\") }\n\t\t\t\t);\n\n\t\t\t\tselectOption = (<div className=\"properties-vt-row-checkbox\"\n\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\tonMouseEnter={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonMouseLeave={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonFocus={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonBlur={(evt) => this.overSelectOption(evt)}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tid={`properties-vt-row-cb-${scrollKey}-${index}`}\n\t\t\t\t\t\tkey={`properties-vt-row-cb-${scrollKey}-${index}`}\n\t\t\t\t\t\tlabelText={translatedRowCheckboxLabel}\n\t\t\t\t\t\thideLabel\n\t\t\t\t\t\tchecked={rowSelected}\n\t\t\t\t\t\tdisabled={rowDisabled}\n\t\t\t\t\t/>\n\t\t\t\t</div>);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.summaryTable) {\n\t\t\tselectOption = <div className=\"properties-vt-row-checkbox\" />;\n\t\t}\n\n\t\tif (rowData.loading === true) {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tkey={key}\n\t\t\t\t\tdata-role=\"properties-loading-row\"\n\t\t\t\t\trole=\"row\"\n\t\t\t\t\tstyle={style}\n\t\t\t\t>\n\t\t\t\t\t<Loading className=\"properties-vt-small-loading\" small withOverlay={false} />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst width = (parseInt(style.width, 10)) + \"px\"; // Subtract 2px to account for row borders\n\t\tconst newStyle = Object.assign({}, style, { width: width });\n\n\t\t// Empty style required on cell for react-virtualized. This div wrapper is required to apply the onDoubleClick handler.\n\t\treturn (<div style={{}} key={key} className=\"properties-vt-double-click\" onDoubleClick={(evt) => this.onRowDoubleClick(evt, rowData.rowKey, index)}>\n\t\t\t<div\n\t\t\t\tclassName={classNames(className,\n\t\t\t\t\t{ \"properties-vt-row-selected\": selectedRow },\n\t\t\t\t\t{ \"properties-vt-row-disabled\": rowDisabled },\n\t\t\t\t\t{ \"properties-vt-row-non-interactive\": !this.props.selectable } // ReadonlyTable with single row selection is non-interactive.\n\t\t\t\t)}\n\t\t\t\tdata-role=\"properties-data-row\"\n\t\t\t\trole=\"row\"\n\t\t\t\tstyle={newStyle}\n\t\t\t\tonMouseDown={(evt) => this.onRowClick(evt, rowData, index)}\n\t\t\t\tonKeyPress={(evt) => {\n\t\t\t\t\tif (evt.code === \"Space\" || evt.code === \"Enter\") {\n\t\t\t\t\t\tthis.onRowClick(evt, rowData, index);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{selectOption}\n\t\t\t\t{columns}\n\t\t\t</div>\n\t\t</div>);\n\t}\n\n\trender() {\n\t\tconst defaultTestHeight = 2000; // 2000 is set to accommodate test data \"category-selection-data\" with all categories expanded\n\n\t\t// AutoSizer manages width and height properties so the table fills the available space.\n\t\t// It does a direct DOM manipulation to the parent, outside React's VirtualDOM.\n\t\t// Since the actual DOM is not available when unit testing, we are passing in a default\n\t\t// width of 500 and a default height of 300.\n\t\treturn (\n\t\t\t<div className=\"properties-vt\">\n\t\t\t\t<div className={classNames(\"properties-vt-autosizer\",\n\t\t\t\t\t{ \"properties-vt-single-selection\": this.props.rowSelection && this.props.rowSelection === ROW_SELECTION.SINGLE,\n\t\t\t\t\t\t\"properties-light-disabled\": !this.props.light })}\n\t\t\t\t>\n\t\t\t\t\t<AutoSizer>\n\t\t\t\t\t\t{({ height, width }) => ( // Table height: subtract 50 for margin below the table.\n\t\t\t\t\t\t\t<Table\n\t\t\t\t\t\t\t\tref={this.virtualizedTableRef}\n\t\t\t\t\t\t\t\twidth={width ? width : 500}\n\t\t\t\t\t\t\t\theight={height ? height : defaultTestHeight}\n\n\t\t\t\t\t\t\t\tclassName=\"properties-autosized-vt\"\n\t\t\t\t\t\t\t\taria-label={this.props.tableLabel ? this.props.tableLabel : \"\"}\n\n\t\t\t\t\t\t\t\tdisableHeader={this.props.disableHeader}\n\t\t\t\t\t\t\t\theaderClassName=\"properties-autosized-vt-header\"\n\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\theaderRowRenderer={this.headerRowRenderer.bind(this, this.props.scrollKey)}\n\t\t\t\t\t\t\t\tonHeaderClick={this.props.onHeaderClick}\n\n\t\t\t\t\t\t\t\trowClassName=\"properties-vt-row-class\"\n\t\t\t\t\t\t\t\trowHeight={this.props.rowHeight ? this.props.rowHeight : 32}\n\n\t\t\t\t\t\t\t\trowCount={this.state.rowCount}\n\t\t\t\t\t\t\t\trowGetter={this.props.rowGetter}\n\t\t\t\t\t\t\t\trowRenderer={this.rowRenderer.bind(this, this.props.scrollKey)}\n\n\t\t\t\t\t\t\t\tscrollToIndex={this.props.scrollToIndex}\n\t\t\t\t\t\t\t\tscrollToAlignment={this.props.scrollToAlignment}\n\n\t\t\t\t\t\t\t\tsort={this.props.onSort}\n\t\t\t\t\t\t\t\tsortDirection={this.props.sortDirection}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.props.columns.map((column) => (\n\t\t\t\t\t\t\t\t\t\t<Column\n\t\t\t\t\t\t\t\t\t\t\tkey={column.key}\n\t\t\t\t\t\t\t\t\t\t\tlabel={column.label}\n\t\t\t\t\t\t\t\t\t\t\tdataKey={column.key}\n\t\t\t\t\t\t\t\t\t\t\twidth={column.width}\n\t\t\t\t\t\t\t\t\t\t\tcolumnData={column}\n\t\t\t\t\t\t\t\t\t\t\tdisableSort={typeof this.props.sortColumns[column.key] === \"undefined\"}\n\t\t\t\t\t\t\t\t\t\t\tcellRenderer={column.isHTML ? this.cellRendererHTML : this.cellRenderer}\n\t\t\t\t\t\t\t\t\t\t\theaderRenderer={this.headerColRenderer}\n\t\t\t\t\t\t\t\t\t\t\t{...column.minWidth && { minWidth: column.minWidth }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Table>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</AutoSizer>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nVirtualizedTable.defaultProps = {\n\tdisableHeader: false\n};\n\nVirtualizedTable.propTypes = {\n\ttableLabel: PropTypes.string,\n\tselectable: PropTypes.bool,\n\tsummaryTable: PropTypes.bool,\n\trowSelection: PropTypes.string,\n\tdisableHeader: PropTypes.bool,\n\tcolumns: PropTypes.array.isRequired,\n\trowCount: PropTypes.number.isRequired,\n\trowGetter: PropTypes.func.isRequired,\n\trowHeight: PropTypes.oneOfType([\n\t\tPropTypes.func.isRequired,\n\t\tPropTypes.number.isRequired\n\t]),\n\tonRowDoubleClick: PropTypes.func,\n\trowsSelected: PropTypes.array, // Required if selectable is true\n\tcheckedAll: PropTypes.bool, // Required if selectable is true\n\tsetRowsSelected: PropTypes.func, // Required if selectable is true\n\tsetAllRowsSelected: PropTypes.func, // Required if selectable is true\n\tscrollToIndex: PropTypes.number,\n\tscrollToAlignment: PropTypes.string,\n\tonSort: PropTypes.func,\n\tsortBy: PropTypes.string,\n\tsortColumns: PropTypes.object,\n\tsortDirection: PropTypes.string,\n\tonHeaderClick: PropTypes.func,\n\tscrollKey: PropTypes.string,\n\ttableState: PropTypes.string,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired\n};\n\nexport default injectIntl(VirtualizedTable);\n","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint complexity: [\"error\", 25] */\n/* eslint max-depth: [\"error\", 6] */\n\nimport React from \"react\";\nimport { injectIntl } from \"react-intl\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\nimport { Search } from \"carbon-components-react\";\nimport VirtualizedTable from \"./../virtualized-table/virtualized-table.jsx\";\nimport { SORT_DIRECTION, STATES, ROW_HEIGHT, ROW_SELECTION } from \"./../../constants/constants\";\nimport ReactResizeDetector from \"react-resize-detector\";\nimport classNames from \"classnames\";\nimport { has } from \"lodash\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nclass FlexibleTable extends React.Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst sortDirs = {};\n\t\tif (typeof this.props.sortable !== \"undefined\") {\n\t\t\tfor (var i = 0; i < this.props.sortable.length; i++) {\n\t\t\t\tconst sortCol = this.props.sortable[i];\n\t\t\t\tsortDirs[sortCol] = SORT_DIRECTION.DESC;\n\t\t\t}\n\t\t}\n\t\tthis.state = {\n\t\t\tcheckedAllRows: false,\n\t\t\tcolumnSortDir: sortDirs,\n\t\t\tcurrentSortColumn: \"\",\n\t\t\ttableWidth: 0,\n\t\t\ttableHeight: 0\n\t\t};\n\n\t\tthis.rowHeight = this.rowHeight.bind(this);\n\t\tthis.rowGetter = this.rowGetter.bind(this);\n\n\t\tthis.getOriginalRowIndex = this.getOriginalRowIndex.bind(this);\n\t\tthis.getLastChildPropertyIdRow = this.getLastChildPropertyIdRow.bind(this);\n\n\t\tthis.calculateColumnWidths = this.calculateColumnWidths.bind(this);\n\t\tthis.handleFilterChange = this.handleFilterChange.bind(this);\n\t\tthis.onSort = this.onSort.bind(this);\n\t\tthis.sortHeaderClick = this.sortHeaderClick.bind(this);\n\t\tthis._updateTableWidth = this._updateTableWidth.bind(this);\n\t\tthis._adjustTableHeight = this._adjustTableHeight.bind(this);\n\t\tthis.handleCheckedRow = this.handleCheckedRow.bind(this);\n\t\tthis.handleCheckedAllRows = this.handleCheckedAllRows.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._adjustTableHeight();\n\t\twindow.addEventListener(\"resize\", this._adjustTableHeight);\n\t\tthis.tableNode = ReactDOM.findDOMNode(this.refs.table);\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (prevProps.rows !== this.props.rows ||\n\t\t\tprevProps.columns !== this.props.columns ||\n\t\t\tprevProps.noAutoSize !== this.props.noAutoSize) {\n\t\t\tthis._adjustTableHeight();\n\t\t}\n\n\t\t// Calculate if checkedAllRows is true\n\t\tif (this.props.selectedRows) {\n\t\t\tthis.setCheckedAll(this.props.selectedRows);\n\t\t}\n\n\t\tthis.tableNode = ReactDOM.findDOMNode(this.refs.table);\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"resize\", this._adjustTableHeight);\n\t}\n\n\tonSort({ sortBy }) {\n\t\tif (this.props.onSort) {\n\t\t\tconst sortDirection = (this.state.columnSortDir[sortBy] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tconst spec = {\n\t\t\t\tcolumn: sortBy,\n\t\t\t\tdirection: sortDirection\n\t\t\t};\n\t\t\tthis.props.onSort(spec);\n\t\t}\n\t}\n\n\t/**\n\t* The current displayed row may have an index that is different from its actual index within the dataset\n\t* Given the current displayed row and index of the table,\n\t* return its original row index from its row's propertyId\n\t*/\n\tgetOriginalRowIndex(row, index) {\n\t\tlet rowIndex = index;\n\t\tif (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.propertyId\")) {\n\t\t\t// this is a nested control\n\t\t\trowIndex = this.getLastChildPropertyIdRow(row.columns[0].content.props.children.props.propertyId, index);\n\t\t} else if (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.row\")) {\n\t\t\trowIndex = row.columns[0].content.props.children.props.propertyId.row;\n\t\t} else if (typeof row.rowKey === \"number\") { // expression tables uses rowKey\n\t\t\trowIndex = parseInt(row.rowKey, 10);\n\t\t}\n\t\treturn rowIndex;\n\t}\n\n\t// Get the 'row' of the last child's propertyId\n\tgetLastChildPropertyIdRow(propertyId, defaultRowIndex) {\n\t\tif (typeof propertyId.propertyId !== \"undefined\") {\n\t\t\treturn this.getLastChildPropertyIdRow(propertyId.propertyId);\n\t\t}\n\t\tif (typeof propertyId.row !== \"undefined\") {\n\t\t\treturn propertyId.row;\n\t\t}\n\t\treturn defaultRowIndex;\n\t}\n\n\t/**\n\t* The header checkAll box may change depending on the current visible rows\n\t* Determine if all visible rows in the table are currently selected\n\t* and set the `checkedAllRows` state accordingly\n\t*/\n\tsetCheckedAll(selectedRows) {\n\t\tlet checkAll = true;\n\t\tfor (let idx = 0; idx < this.props.data.length; idx++) {\n\t\t\tconst row = this.props.data[idx];\n\t\t\tconst originalRowIndex = this.getOriginalRowIndex(row, idx);\n\t\t\tif (selectedRows.indexOf(originalRowIndex) < 0) {\n\t\t\t\tcheckAll = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.state.checkedAllRows !== checkAll) {\n\t\t\tthis.setState({ checkedAllRows: checkAll });\n\t\t}\n\t}\n\n\t/**\n\t* Calculate the width for each column to fit within the table\n\t* Widths provided in columns without 'px' are 'weighted' and will be scaled\n\t* Widths provided in columns with 'px' are used as is without scaling\n\t* if width is provided with 'px', subtract that from the total available table width\n\t* if width is provided, divide the column 'weighted' width with the max width from columns\n\t* return the scaled factor\n\t* multiply each column 'weighted' width with the scaled factor to get the actual width in pixels\n\t* @param columns column definitions\n\t* @param parentTableWidth\n\t*/\n\tcalculateColumnWidths(columns, parentTableWidth) {\n\t\tlet tableWidth = parentTableWidth - 12; // subtract 12 for the left padding scss $spacing-04\n\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\ttableWidth -= 40;\n\t\t}\n\t\tlet remainingColumns = columns.length; // keep track of how many columns to calculate width for\n\t\tlet maxWeight = 0;\n\n\t\tfor (const columnDef of columns) {\n\t\t\t// if columns have specific width subtract from total width\n\t\t\tif (columnDef.width) {\n\t\t\t\tif (typeof columnDef.width === \"string\" && columnDef.width.includes(\"px\")) {\n\t\t\t\t\ttableWidth -= parseInt(columnDef.width, 10);\n\t\t\t\t\tremainingColumns--;\n\t\t\t\t} else {\n\t\t\t\t\tmaxWeight = Math.max(maxWeight, columnDef.width); // keep track of which column has highest width provided\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst widths = [];\n\t\tconst defaultWidth = Math.floor(tableWidth / remainingColumns); // use default width for columns without a weight\n\t\tconst weightedWidths = [];\n\t\tlet sumWeightedWidths = 0;\n\n\t\t// scale weight of columns with width provided\n\t\tfor (const columnDef of columns) {\n\t\t\tif (columnDef.width && !isNaN(columnDef.width)) {\n\t\t\t\tweightedWidths.push(columnDef.width / maxWeight);\n\t\t\t\tsumWeightedWidths += (columnDef.width / maxWeight);\n\t\t\t} else {\n\t\t\t\tweightedWidths.push(null);\n\t\t\t}\n\t\t}\n\n\t\tconst scaledWidth = tableWidth / sumWeightedWidths; // scaled width multiplier for each column with width provided\n\n\t\tlet sumColumnWidth = 0;\n\t\tfor (let idx = 0; idx < columns.length; idx++) {\n\t\t\tconst columnDef = columns[idx];\n\t\t\tif (columnDef.width) {\n\t\t\t\t// use the width provided with 'px' as is\n\t\t\t\tif (typeof columnDef.width === \"string\" && columnDef.width.includes(\"px\")) {\n\t\t\t\t\twidths.push(Math.floor(parseInt(columnDef.width, 10)) + \"px\");\n\t\t\t\t\tsumColumnWidth += parseInt(columnDef.width, 10);\n\t\t\t\t} else { // multiply the width provided by the scaled width\n\t\t\t\t\tconst calculatedWidth = Math.floor(weightedWidths[idx] * scaledWidth);\n\t\t\t\t\twidths.push(calculatedWidth + \"px\");\n\t\t\t\t\tsumColumnWidth += calculatedWidth;\n\t\t\t\t}\n\t\t\t} else { // if no width provided, use the defaultWidth\n\t\t\t\twidths.push(defaultWidth);\n\t\t\t\tsumColumnWidth += defaultWidth;\n\t\t\t}\n\t\t}\n\n\t\t// if any columns had decimals floored, allocate additional space to the first column\n\t\tlet compare = parentTableWidth;\n\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\tcompare -= 40;\n\t\t}\n\n\t\tif (sumColumnWidth < compare) {\n\t\t\tconst firstColWith = parseInt(widths[0], 10);\n\t\t\twidths[0] = firstColWith + compare - sumColumnWidth + \"px\";\n\t\t}\n\n\t\treturn widths;\n\t}\n\n\t_updateTableWidth(width, height) {\n\t\tif (this.state.tableWidth !== Math.floor(width - 2)) {\n\t\t\tthis.setState({\n\t\t\t\ttableWidth: Math.floor(width - 2) // subtract 2 px for the borders\n\t\t\t});\n\t\t}\n\t}\n\n\t_adjustTableHeight() {\n\t\tif (this.props.noAutoSize) {\n\t\t\treturn;\n\t\t}\n\t\tlet newHeight = this.state.tableHeight;\n\t\tconst rowHeight = 2.25; // in em\n\t\tconst headerHeight = 2.5; // in em\n\t\tconst rows = typeof this.props.rows !== \"undefined\" ? this.props.rows : 4;\n\t\tif (rows > 0) {\n\t\t\tnewHeight = (rowHeight * rows + headerHeight);\n\t\t} else if (rows === 0) { // only display header\n\t\t\tnewHeight = headerHeight;\n\t\t} else {\n\t\t\t// A -1 row count indicates a desire to use the entire available vertical space\n\t\t\tconst rootElement = document.getElementById(\"root\");\n\t\t\tlet container = rootElement ? rootElement.getElementsByClassName(\"properties-wf-children\") : [];\n\t\t\tif (rootElement && container.length === 0) {\n\t\t\t\tcontainer = rootElement.getElementsByClassName(\"bx--modal-content\");\n\t\t\t}\n\t\t\tif (container.length > 0) {\n\t\t\t\tconst parentElement = container[container.length - 1]; // Adjust height to the latest wide flyout opened\n\t\t\t\tconst tableElements =\tparentElement.getElementsByClassName(\"properties-ft-container-wrapper\");\n\t\t\t\tconst tableElement = tableElements.length > 0 ? tableElements[tableElements.length - 1] : null;\n\t\t\t\tif (tableElement) {\n\t\t\t\t\tconst style = window.getComputedStyle(tableElement, null).getPropertyValue(\"font-size\");\n\t\t\t\t\tconst fontSize = parseFloat(style);\n\t\t\t\t\t// this is to adjust for multiple-select edit.\n\t\t\t\t\t// There is one additional row and header to account for.\n\t\t\t\t\tconst minHeight = (rowHeight + headerHeight);\n\t\t\t\t\tnewHeight = (parentElement.offsetHeight - tableElement.offsetTop) / fontSize + headerHeight;\n\t\t\t\t\tnewHeight = Math.max(newHeight, minHeight);\n\t\t\t\t} else {\n\t\t\t\t\tnewHeight = (rowHeight * 4 + headerHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (newHeight !== this.state.tableHeight) {\n\t\t\tthis.setState({ tableHeight: newHeight });\n\t\t}\n\t}\n\n\tsortHeaderClick({ dataKey }) {\n\t\tconst colSortDir = this.state.columnSortDir;\n\t\tif (typeof colSortDir[dataKey] !== \"undefined\") {\n\t\t\tcolSortDir[dataKey] = (colSortDir[dataKey] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tthis.setState({\n\t\t\t\tcolumnSortDir: colSortDir,\n\t\t\t\tcurrentSortColumn: dataKey\n\t\t\t});\n\t\t}\n\t}\n\n\thandleFilterChange(evt) {\n\t\tif (this.props.onFilter) {\n\t\t\tthis.props.onFilter(evt.target.value);\n\t\t}\n\t}\n\n\thandleCheckedAllRows(checked) {\n\t\tlet selectAll = [];\n\t\tconst controlValue = this.props.data;\n\t\tif (checked) {\n\t\t\tselectAll = Array.from(this.props.selectedRows);\n\t\t\tfor (var rowIndex = 0; rowIndex < controlValue.length; rowIndex++) {\n\t\t\t\tconst originalRowIndex = this.getOriginalRowIndex(controlValue[rowIndex], rowIndex);\n\t\t\t\tselectAll.push(originalRowIndex);\n\t\t\t}\n\t\t}\n\t\tselectAll = Array.from(new Set(selectAll));\n\t\tthis.props.updateRowSelections(selectAll);\n\t\tthis.setState({ checkedAllRows: checked });\n\t}\n\n\thandleCheckedRow(data, evt) {\n\t\tconst dataRowIndex = data.originalRowIndex; // Use the originalRowIndex for selection in case rows are filtered.\n\t\tconst displayedRowIndex = data.index;\n\t\tconst checked = data.selected;\n\t\tconst overSelectOption = data.isOverSelectOption;\n\n\t\tif (!this.props.data[displayedRowIndex].disabled) {\n\t\t\tif (overSelectOption) { // Checkbox is clicked\n\t\t\t\tlet current = this.props.selectedRows ? this.props.selectedRows : [];\n\t\t\t\tif (checked) {\n\t\t\t\t\tcurrent = current.concat(dataRowIndex);\n\t\t\t\t\tthis.setCheckedAll(current);\n\t\t\t\t} else if (current) {\n\t\t\t\t\tcurrent = current.filter(function(element) {\n\t\t\t\t\t\treturn element !== dataRowIndex;\n\t\t\t\t\t});\n\t\t\t\t\tthis.setState({ checkedAllRows: false });\n\t\t\t\t}\n\t\t\t\tthis.props.updateRowSelections(current);\n\t\t\t} else if (this.props.rowSelection === ROW_SELECTION.SINGLE && typeof this.props.updateRowSelections !== \"undefined\") { // Table row is clicked\n\t\t\t\tthis.props.updateRowSelections(data.index, evt, this.props.data[data.index].rowKey);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t* Generate the table header specs from this.props.columns\n\t* this.props.columns: array of objects\n\t* [\n\t* {\n\t* \"key\": string,\n\t* \"label\": string,\n\t* \"width\": integer or string if containts 'px',\n\t* \"description\": optional string\n\t* }\n\t* ]\n\t* @param columnWidths\n\t*/\n\tgenerateTableHeaderRow(columnWidths) {\n\t\tconst headers = [];\n\t\tlet searchLabel = \"\";\n\t\tfor (var j = 0; j < this.props.columns.length; j++) {\n\t\t\tconst columnDef = this.props.columns[j];\n\t\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable[0] === columnDef.key) {\n\t\t\t\tsearchLabel = columnDef.label;\n\t\t\t}\n\t\t\tconst width = Math.abs(parseInt(columnWidths[j], 10));\n\t\t\tlet headerLabel;\n\t\t\tif (typeof (columnDef.label) === \"object\") {\n\t\t\t\theaderLabel = columnDef.label.props.labelText;\n\t\t\t} else if (typeof (columnDef.label) === \"string\") {\n\t\t\t\theaderLabel = columnDef.label;\n\t\t\t}\n\t\t\theaders.push({\n\t\t\t\tkey: columnDef.key,\n\t\t\t\tlabel: columnDef.label,\n\t\t\t\twidth: width,\n\t\t\t\tdescription: columnDef.description,\n\t\t\t\theaderLabel: headerLabel,\n\t\t\t\toperation: columnDef.operation\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\theaders: headers,\n\t\t\tsearchLabel: searchLabel\n\t\t};\n\t}\n\n\t/**\n\t* Callback responsible for returning a data row given an index\n\t*/\n\trowGetter({ index }) {\n\t\tconst row = this.props.data[index];\n\t\tconst originalRowIndex = this.getOriginalRowIndex(row, index);\n\n\t\tconst columns = {};\n\t\tif (row.columns) {\n\t\t\tfor (let cidx = 0; cidx < row.columns.length; cidx++) {\n\t\t\t\tconst column = row.columns[cidx];\n\t\t\t\tcolumns[column.column] = column.content;\n\t\t\t}\n\t\t}\n\t\treturn Object.assign({}, columns, {\n\t\t\tloading: false,\n\t\t\tindex: index,\n\t\t\toriginalRowIndex: originalRowIndex,\n\t\t\trowKey: typeof row.rowKey !== \"undefined\" ? row.rowKey : this.props.scrollKey + \"-row-\" + index,\n\t\t\tdisabled: row.disabled\n\t\t});\n\t}\n\n\t// Function that returns the height of a row given its index\n\trowHeight({ index }) {\n\t\treturn ROW_HEIGHT;\n\t}\n\n\trender() {\n\t\tconst tableWidth = this.state.tableWidth;\n\t\tconst tableHeight = this.state.tableHeight; // subtract 2 px for the borders\n\t\tconst columnWidths = this.calculateColumnWidths(this.props.columns, tableWidth);\n\t\tconst headerInfo = this.generateTableHeaderRow(columnWidths);\n\n\t\tconst headers = headerInfo.headers;\n\t\tconst searchLabel = headerInfo.searchLabel;\n\t\tconst disabled = this.props.tableState === STATES.DISABLED;\n\n\t\tlet searchBar = null;\n\n\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable.length !== 0) {\n\t\t\tconst placeHolder = this.props.intl.formatMessage(\n\t\t\t\t{ id: \"table.search.placeholder\", defaultMessage: defaultMessages[\"table.search.placeholder\"] },\n\t\t\t\t{ column_name: searchLabel }\n\t\t\t);\n\t\t\tconst searchBarLabel = this.props.intl.formatMessage(\n\t\t\t\t{ id: \"table.search.label\", defaultMessage: defaultMessages[\"table.search.label\"] },\n\t\t\t\t{ table_name: this.props.tableLabel }\n\t\t\t);\n\n\t\t\tsearchBar = (\n\t\t\t\t<div className={classNames(\"properties-ft-search-container\", { \"disabled\": disabled })}>\n\t\t\t\t\t<Search\n\t\t\t\t\t\tclassName=\"properties-ft-search-text\"\n\t\t\t\t\t\tplaceholder={placeHolder}\n\t\t\t\t\t\tonChange={this.handleFilterChange}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tlabelText={searchBarLabel}\n\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tlet scrollIndex = -1;\n\t\tif (typeof this.props.scrollToRow !== \"undefined\" && this.props.scrollToRow !== null) {\n\t\t\tscrollIndex = this.props.scrollToRow;\n\t\t}\n\n\t\tconst heightStyle = (this.props.noAutoSize || tableHeight === 0) ? {} : { height: tableHeight + \"em\" };\n\t\tconst containerClass = this.props.showHeader ? \"properties-ft-container-absolute \" : \"properties-ft-container-absolute-noheader \";\n\t\tconst messageClass = (!this.props.messageInfo) ? containerClass + STATES.INFO : containerClass + this.props.messageInfo.type;\n\n\t\treturn (\n\t\t\t<div data-id={\"properties-ft-\" + this.props.scrollKey} className=\"properties-ft-control-container\">\n\t\t\t\t<div className=\"properties-ft-table-header\">\n\t\t\t\t\t{searchBar}\n\t\t\t\t\t{this.props.topRightPanel}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"properties-ft-container-panel\">\n\t\t\t\t\t<ReactResizeDetector handleWidth onResize={this._updateTableWidth}>\n\t\t\t\t\t\t<div className=\"properties-ft-container-wrapper\" style={ heightStyle }>\n\t\t\t\t\t\t\t<div className={messageClass}>\n\t\t\t\t\t\t\t\t{this.props.selectedEditRow}\n\t\t\t\t\t\t\t\t<VirtualizedTable\n\t\t\t\t\t\t\t\t\ttableLabel={this.props.tableLabel}\n\t\t\t\t\t\t\t\t\tcolumns={headers}\n\t\t\t\t\t\t\t\t\tonHeaderClick={this.sortHeaderClick}\n\t\t\t\t\t\t\t\t\trowCount={this.props.data.length}\n\t\t\t\t\t\t\t\t\trowHeight={this.rowHeight}\n\t\t\t\t\t\t\t\t\trowGetter={this.rowGetter}\n\t\t\t\t\t\t\t\t\tsummaryTable={this.props.summaryTable}\n\t\t\t\t\t\t\t\t\tselectable={typeof this.props.updateRowSelections !== \"undefined\"}\n\t\t\t\t\t\t\t\t\trowSelection={this.props.rowSelection}\n\t\t\t\t\t\t\t\t\tdisableHeader={!this.props.showHeader}\n\t\t\t\t\t\t\t\t\tonRowDoubleClick={this.props.onRowDoubleClick}\n\t\t\t\t\t\t\t\t\trowsSelected={this.props.selectedRows}\n\t\t\t\t\t\t\t\t\tcheckedAll={this.state.checkedAllRows}\n\t\t\t\t\t\t\t\t\tsetRowsSelected={this.handleCheckedRow}\n\t\t\t\t\t\t\t\t\tsetAllRowsSelected={this.handleCheckedAllRows}\n\t\t\t\t\t\t\t\t\tscrollKey={this.props.scrollKey}\n\t\t\t\t\t\t\t\t\tonSort={this.onSort}\n\t\t\t\t\t\t\t\t\tsortBy={this.state.currentSortColumn}\n\t\t\t\t\t\t\t\t\tsortColumns={this.state.columnSortDir}\n\t\t\t\t\t\t\t\t\tsortDirection={this.state.columnSortDir[this.state.currentSortColumn]}\n\t\t\t\t\t\t\t\t\ttableState={this.props.tableState}\n\t\t\t\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t\t\t\t\t{...(scrollIndex !== -1 && { scrollToIndex: scrollIndex, scrollToAlignment: \"center\" })}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ReactResizeDetector>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nFlexibleTable.defaultProps = {\n\tshowHeader: true,\n\tlight: true\n};\n\nFlexibleTable.propTypes = {\n\tsortable: PropTypes.array,\n\tcolumns: PropTypes.array.isRequired,\n\tdata: PropTypes.array.isRequired,\n\tfilterable: PropTypes.array,\n\tfilterBy: PropTypes.string,\n\tfilterKeyword: PropTypes.string,\n\thideFilterInput: PropTypes.func,\n\tscrollToRow: PropTypes.number,\n\tonSort: PropTypes.func,\n\tonFilter: PropTypes.func,\n\tshowHeader: PropTypes.bool,\n\tselectedEditRow: PropTypes.object,\n\ttopRightPanel: PropTypes.object,\n\tscrollKey: PropTypes.string,\n\ttableLabel: PropTypes.string,\n\trows: PropTypes.number,\n\tnoAutoSize: PropTypes.bool,\n\ttableState: PropTypes.string,\n\tmessageInfo: PropTypes.object,\n\tupdateRowSelections: PropTypes.func,\n\tonRowDoubleClick: PropTypes.func,\n\tselectedRows: PropTypes.array,\n\trowSelection: PropTypes.string,\n\tsummaryTable: PropTypes.bool,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired\n};\n\nexport default injectIntl(FlexibleTable);\n"],"names":["VirtualizedTable","props","context","state","rowCount","_this","virtualizedTableRef","React","createRef","isOverSelectOption","mouseEventCalled","keyBoardEventCalled","cellRenderer","bind","selectAll","headerRowRenderer","headerColRenderer","onRowClick","overSelectOption","this","rowHeight","recomputeRowHeights","evt","rowData","index","target","className","stopPropagation","selected","isRowSelected","originalRowIndex","setRowsSelected","rowKey","onRowDoubleClick","columns","i","length","operation","rowsSelected","indexOf","setAllRowsSelected","cellData","dangerouslySetInnerHTML","__html","current","scrollKey","style","checkboxLabelColumnIndex","getCheckboxLabelColumnIndex","headerCheckboxLabel","headerLabel","translatedHeaderCheckboxLabel","intl","formatMessage","id","defaultMessage","defaultMessages","header_checkbox_label","checkbox","selectable","rowSelection","ROW_SELECTION","SINGLE","role","Checkbox","onChange","checked","checkedAll","labelText","hideLabel","columnData","dataKey","disableSort","label","sortBy","sortDirection","sortIcon","sortColumns","SORT_DIRECTION","ASC","Icon","type","CARBON_ICONS","CHEVRONARROWS","UP","disabled","tableState","STATES","DISABLED","DOWN","tooltip","description","fontWeight","tooltipId","uuid4","classNames","_isEmpty","Tooltip","tip","direction","key","selectOption","selectedRow","rowDisabled","rowSelected","translatedRowCheckboxLabel","row_index","table_label","tableLabel","onMouseEnter","_this2","onMouseLeave","onFocus","onBlur","summaryTable","loading","Loading","small","withOverlay","width","parseInt","newStyle","Object","assign","onDoubleClick","onMouseDown","onKeyPress","code","light","AutoSizer","height","Table","ref","_this3","disableHeader","headerClassName","headerHeight","onHeaderClick","rowClassName","rowGetter","rowRenderer","scrollToIndex","scrollToAlignment","sort","onSort","map","column","Column","isHTML","cellRendererHTML","headerRenderer","minWidth","nextProps","prevState","Component","defaultProps","injectIntl","FlexibleTable","sortDirs","sortable","DESC","checkedAllRows","columnSortDir","currentSortColumn","tableWidth","tableHeight","getOriginalRowIndex","getLastChildPropertyIdRow","calculateColumnWidths","handleFilterChange","sortHeaderClick","_updateTableWidth","_adjustTableHeight","handleCheckedRow","handleCheckedAllRows","window","addEventListener","tableNode","ReactDOM","findDOMNode","refs","table","prevProps","rows","noAutoSize","selectedRows","setCheckedAll","removeEventListener","spec","row","rowIndex","_has","content","children","propertyId","defaultRowIndex","checkAll","idx","data","setState","parentTableWidth","remainingColumns","maxWeight","columnDef","includes","Math","max","widths","defaultWidth","floor","weightedWidths","sumWeightedWidths","isNaN","push","scaledWidth","sumColumnWidth","calculatedWidth","compare","firstColWith","newHeight","rootElement","document","getElementById","container","getElementsByClassName","parentElement","tableElements","tableElement","getComputedStyle","getPropertyValue","fontSize","parseFloat","offsetHeight","offsetTop","colSortDir","onFilter","value","controlValue","Array","from","Set","updateRowSelections","dataRowIndex","displayedRowIndex","concat","filter","element","columnWidths","headers","searchLabel","j","filterable","abs","_typeof","cidx","ROW_HEIGHT","headerInfo","generateTableHeaderRow","searchBar","placeHolder","column_name","searchBarLabel","table_name","Search","placeholder","size","scrollIndex","scrollToRow","heightStyle","containerClass","showHeader","messageClass","messageInfo","INFO","topRightPanel","ReactResizeDetector","handleWidth","onResize","selectedEditRow"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{R as e,l as t,I as r,e as o,S as l,c as i,_ as s,q as a}from"./extends-5a45f92e.js";import{_ as n,a as p,b as c,c as d,d as u}from"./getPrototypeOf-97272efe.js";import{_ as h,a as b}from"./createClass-32a0cf0f.js";import{d as m,h as f}from"./isEmpty-def8f509.js";import v from"react";import{injectIntl as w}from"react-intl";import g from"react-dom";import{Checkbox as y,Loading as R,Search as k}from"carbon-components-react";import{AutoSizer as C,Table as S,Column as x}from"react-virtualized";import E from"./lib/tooltip.es.js";import{v4 as I}from"uuid";import T from"react-resize-detector";var O={"subPanel.button.tooltip":"Edit","structureListEditor.addButton.label":"Add value","structureListEditor.removeButton.label":"Remove","structureTable.addButton.label":"Add columns","structureTable.removeButton.label":"Remove","fieldPicker.saveButton.label":"Select Fields for","fieldPicker.saveButton.tooltip":"Save and return","fieldPicker.resetButton.label":"Reset ","fieldPicker.filter.label":"Filter:","fieldPicker.fieldColumn.label":"Field name","fieldPicker.schemaColumn.label":"Schema name","fieldPicker.dataTypeColumn.label":"Data type","fieldPicker.integer.label":"integer","fieldPicker.double.label":"double","fieldPicker.string.label":"string","fieldPicker.date.label":"date","fieldPicker.time.label":"time","fieldPicker.timestamp.label":"timestamp","flyout.applyButton.label":"OK","flyout.rejectButton.label":"Cancel","propertiesEdit.closeButton.label":"Close","propertiesEdit.applyButton.label":"Save","propertiesEdit.rejectButton.label":"Cancel","propertiesEdit.revertButton.label":"Revert","propertiesEdit.resizeButton.expand.label":"Expand","propertiesEdit.resizeButton.contract.label":"Contract","properties.revert.message":"Click Revert to go back to the previous screen or click Close to exit the pane. Then try your operation again.","properties.close.message":"Click Close to exit the pane. Then try your operation again.","properties.support.message":"If the problem persists, contact support.","properties.unexpected.message":"Oops, the pane didn't load.","table.search.header":"View in tables","table.search.placeholder":"Find in column {column_name}","table.search.label":"Search in {table_name} table","summary.longTable.placeholder":"More than ten fields...","alerts.tab.title":"Alerts","title.editor.label":"edit title","title.editor.helpButton.label":"help","table.summary.error":"There are {errorMsgCount} error cells. ","table.summary.warning":"There are {warningMsgCount} warning cells. ","control.summary.error":"There are {errorMsgCount} parameters with errors. ","control.summary.warning":"There are {warningMsgCount} parameters with warnings. ","control.summary.error.warning":"There are {errorMsgCount} parameters with errors and {warningMsgCount} parameters with warnings.","required.error":"You must provide your {label}.","datetime.format.error":"Invalid {role}. Format should be {format}.","invalid.field.error":"Invalid {label}, field not found in data set.","expression.validate.label":"Validate","expression.validating.label":"Validating","expression.builder.title":"Expression Builder","expression.builder.icon.description":"launch expression builder","expression.builder.label":"Expression","expression.fields.table.label":"Fields table","expression.values.table.label":"Values table","expression.functions.table.label":"Functions table","expression.fields.dropdown":"Fields","expression.fields.title":"Fields","expression.values.title":"Values","expression.field.column":"Field","expression.storage.column":"Storage","expression.value.column":"Value","expression.function.column":"Function","expression.return.column":"Return","expression.recently.used.column":"Item","expression.field.tab":"Fields","expression.functions.tab":"Functions","expression.recently.used":"Recently Used","expression.all.functions":"All Functions","expression.min.label":"Min","expression.max.label":"Max","expression.no.functions":"No functions found.","multi.selected.row.label":"rows selected.","multi.selected.row.action":"Changing a value in this row will change the value in all allowed selected rows.","datetimefield.format.error.message":"Invalid format object provided. Check input definitions.","editorform.group.type.error":"(Unknown group type '{group.groupType()}')","moveable.table.button.top":"Move to top","moveable.table.button.up":"Move up","moveable.table.button.down":"Move down","moveable.table.button.bottom":"Move to bottom","list.table.label":"Values","dropdown.tooltip.openMenu":"Open menu","dropdown.tooltip.closeMenu":"Close menu","dropdown.tooltip.clear.all":"Clear all","dropdown.tooltip.clear.selection":"Clear selection","truncate.long.string.error":"These values exceed the display limit of {truncate_limit} characters and can't be edited.","properties.label":"Properties","readonlytable.edit.button.label":"Edit","toggletext.icon.description":"{toggletext_label} Icon","multiselect.dropdown.empty.label":"None selected","multiselect.dropdown.options.selected.label":"options selected","virtualizedTable.header.checkbox.label":"Select all {header_checkbox_label}","virtualizedTable.row.checkbox.label":"Select row {row_index} from {table_label}","properties.empty.table.text":'To begin, click "{button_label}"'};function A(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,o=p(e);if(t){var l=p(this).constructor;r=Reflect.construct(o,arguments,l)}else r=o.apply(this,arguments);return c(this,r)}}var H=function(a){n(c,a);var p=A(c);function c(e,t){var r;return h(this,c),(r=p.call(this,e,t)).state={rowCount:r.props.rowCount},r.virtualizedTableRef=v.createRef(),r.isOverSelectOption=!1,r.mouseEventCalled=!1,r.keyBoardEventCalled=!1,r.cellRenderer=r.cellRenderer.bind(d(r)),r.selectAll=r.selectAll.bind(d(r)),r.headerRowRenderer=r.headerRowRenderer.bind(d(r)),r.headerColRenderer=r.headerColRenderer.bind(d(r)),r.onRowClick=r.onRowClick.bind(d(r)),r.overSelectOption=r.overSelectOption.bind(d(r)),r}return b(c,[{key:"componentDidUpdate",value:function(){"function"==typeof this.props.rowHeight&&this.recomputeRowHeights()}},{key:"onRowClick",value:function(e,t,r){if("bx--select-option"===e.target.className)e.stopPropagation();else{var o=!this.isRowSelected(t.originalRowIndex);"function"==typeof this.props.setRowsSelected&&this.props.setRowsSelected({index:r,originalRowIndex:t.originalRowIndex,selected:o,isOverSelectOption:this.isOverSelectOption},e)}}},{key:"onRowDoubleClick",value:function(e,t,r){this.props.onRowDoubleClick&&this.props.onRowDoubleClick(e,t,r)}},{key:"getCheckboxLabelColumnIndex",value:function(e){for(var t=0;t<e.length;t++)if("index"!==e[t].operation)return t;return 0}},{key:"isRowSelected",value:function(e){return!!this.props.rowsSelected&&this.props.rowsSelected.indexOf(e)>-1}},{key:"selectAll",value:function(e){this.props.setAllRowsSelected(e)}},{key:"cellRenderer",value:function(e){var t=e.cellData;return null==t?"":t}},{key:"cellRendererHTML",value:function(e){var t=e.cellData;return null==t?"":v.createElement("div",{dangerouslySetInnerHTML:{__html:t}})}},{key:"recomputeRowHeights",value:function(e){this.virtualizedTableRef&&this.virtualizedTableRef.current&&this.virtualizedTableRef.current.recomputeRowHeights(e)}},{key:"headerRowRenderer",value:function(t,r){var o=r.className,l=r.columns,i=r.style,s=void 0===this.props.columns||0===this.props.columns.length?0:this.getCheckboxLabelColumnIndex(this.props.columns),a=void 0===this.props.columns||0===this.props.columns.length?"":this.props.columns[s].headerLabel,n=this.props.intl.formatMessage({id:"virtualizedTable.header.checkbox.label",defaultMessage:O["virtualizedTable.header.checkbox.label"]},{header_checkbox_label:a}),p=this.props.selectable&&this.props.rowSelection!==e.SINGLE?v.createElement("div",{role:"columnheader",className:"properties-vt-header-checkbox"},v.createElement(y,{id:"properties-vt-hd-cb-".concat(t),onChange:this.selectAll,checked:this.props.checkedAll,labelText:n,hideLabel:!0})):"";return v.createElement("div",{className:o,"data-role":"properties-header-row",role:"row",style:i},p,l)}},{key:"headerColRenderer",value:function(e){var s=e.columnData,a=e.dataKey,n=e.disableSort,p=e.label;e.sortBy,e.sortDirection;var c=null;void 0!==this.props.sortColumns[a]&&(c=this.props.sortColumns[a]===t.ASC?v.createElement(r,{type:o.CHEVRONARROWS.UP,disabled:this.props.tableState===l.DISABLED}):v.createElement(r,{type:o.CHEVRONARROWS.DOWN,disabled:this.props.tableState===l.DISABLED}),c=v.createElement("div",{className:"properties-ft-column-sort-icon"},c));var d=null;s.description&&s.headerLabel?d=v.createElement("div",{className:"properties-tooltips"},v.createElement("span",{style:{fontWeight:"bold"}},s.headerLabel),v.createElement("br",null),s.description):s.description?d=v.createElement("div",{className:"properties-tooltips"},s.description):s.headerLabel&&(d=v.createElement("div",{className:"properties-tooltips"},v.createElement("span",{style:{fontWeight:"bold"}},s.headerLabel)));var u=I()+"-tooltip-column-"+a;return v.createElement("div",{className:i("properties-vt-column properties-tooltips-container",{"sort-column-active":a===this.props.sortBy})},m(d)?p:v.createElement(E,{id:u,tip:d,direction:"bottom",className:"properties-tooltips"},p),!1===n&&c)}},{key:"overSelectOption",value:function(e){"mouseenter"!==e.type||this.keyBoardEventCalled?"mouseleave"===e.type&&this.mouseEventCalled?(this.mouseEventCalled=!1,this.isOverSelectOption=!this.isOverSelectOption):"focus"!==e.type||this.mouseEventCalled?"blur"===e.type&&this.keyBoardEventCalled&&(this.keyBoardEventCalled=!1,this.isOverSelectOption=!this.isOverSelectOption):(this.keyBoardEventCalled=!0,this.isOverSelectOption=!this.isOverSelectOption):(this.mouseEventCalled=!0,this.isOverSelectOption=!this.isOverSelectOption)}},{key:"rowRenderer",value:function(t,r){var o=this,l=r.className,s=r.columns,a=r.index,n=r.key,p=r.rowData,c=r.style,d="",u=!1,h="boolean"==typeof p.disabled&&p.disabled;if("function"==typeof this.props.rowHeight&&0===this.props.rowHeight({index:a}))return null;if(this.props.selectable){var b=this.isRowSelected(p.originalRowIndex);if(u=this.props.selectable&&b,this.props.rowSelection!==e.SINGLE){var m=this.props.intl.formatMessage({id:"virtualizedTable.row.checkbox.label",defaultMessage:O["virtualizedTable.row.checkbox.label"]},{row_index:a+1,table_label:this.props.tableLabel?this.props.tableLabel:""});d=v.createElement("div",{className:"properties-vt-row-checkbox",role:"gridcell",onMouseEnter:function(e){return o.overSelectOption(e)},onMouseLeave:function(e){return o.overSelectOption(e)},onFocus:function(e){return o.overSelectOption(e)},onBlur:function(e){return o.overSelectOption(e)}},v.createElement(y,{id:"properties-vt-row-cb-".concat(t,"-").concat(a),key:"properties-vt-row-cb-".concat(t,"-").concat(a),labelText:m,hideLabel:!0,checked:b,disabled:h}))}}if(this.props.summaryTable&&(d=v.createElement("div",{className:"properties-vt-row-checkbox"})),!0===p.loading)return v.createElement("div",{className:l,key:n,"data-role":"properties-loading-row",role:"row",style:c},v.createElement(R,{className:"properties-vt-small-loading",small:!0,withOverlay:!1}));var f=parseInt(c.width,10)+"px",w=Object.assign({},c,{width:f});return v.createElement("div",{style:{},key:n,className:"properties-vt-double-click",onDoubleClick:function(e){return o.onRowDoubleClick(e,p.rowKey,a)}},v.createElement("div",{className:i(l,{"properties-vt-row-selected":u},{"properties-vt-row-disabled":h},{"properties-vt-row-non-interactive":!this.props.selectable}),"data-role":"properties-data-row",role:"row",style:w,onMouseDown:function(e){return o.onRowClick(e,p,a)},onKeyPress:function(e){"Space"!==e.code&&"Enter"!==e.code||o.onRowClick(e,p,a)}},d,s))}},{key:"render",value:function(){var t=this;return v.createElement("div",{className:"properties-vt"},v.createElement("div",{className:i("properties-vt-autosizer",{"properties-vt-single-selection":this.props.rowSelection&&this.props.rowSelection===e.SINGLE,"properties-light-disabled":!this.props.light})},v.createElement(C,null,(function(e){var r=e.height,o=e.width;return v.createElement(S,{ref:t.virtualizedTableRef,width:o||500,height:r||2e3,className:"properties-autosized-vt","aria-label":t.props.tableLabel?t.props.tableLabel:"",disableHeader:t.props.disableHeader,headerClassName:"properties-autosized-vt-header",headerHeight:32,headerRowRenderer:t.headerRowRenderer.bind(t,t.props.scrollKey),onHeaderClick:t.props.onHeaderClick,rowClassName:"properties-vt-row-class",rowHeight:t.props.rowHeight?t.props.rowHeight:32,rowCount:t.state.rowCount,rowGetter:t.props.rowGetter,rowRenderer:t.rowRenderer.bind(t,t.props.scrollKey),scrollToIndex:t.props.scrollToIndex,scrollToAlignment:t.props.scrollToAlignment,sort:t.props.onSort,sortDirection:t.props.sortDirection},t.props.columns.map((function(e){return v.createElement(x,s({key:e.key,label:e.label,dataKey:e.key,width:e.width,columnData:e,disableSort:void 0===t.props.sortColumns[e.key],cellRenderer:e.isHTML?t.cellRendererHTML:t.cellRenderer,headerRenderer:t.headerColRenderer},e.minWidth&&{minWidth:e.minWidth}))})))}))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.rowCount!==t.rowCount?{rowCount:e.rowCount}:{}}}]),c}(v.Component);H.defaultProps={disableHeader:!1};var N=w(H);function L(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return M(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return M(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0,l=function(){};return{s:l,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:l}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(a)throw i}}}}function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r<t;r++)o[r]=e[r];return o}function D(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,o=p(e);if(t){var l=p(this).constructor;r=Reflect.construct(o,arguments,l)}else r=o.apply(this,arguments);return c(this,r)}}var B=function(r){n(p,r);var o=D(p);function p(e){var r;h(this,p);var l={};if(void 0!==(r=o.call(this,e)).props.sortable)for(var i=0;i<r.props.sortable.length;i++){l[r.props.sortable[i]]=t.DESC}return r.state={checkedAllRows:!1,columnSortDir:l,currentSortColumn:"",tableWidth:0,tableHeight:0},r.rowHeight=r.rowHeight.bind(d(r)),r.rowGetter=r.rowGetter.bind(d(r)),r.getOriginalRowIndex=r.getOriginalRowIndex.bind(d(r)),r.getLastChildPropertyIdRow=r.getLastChildPropertyIdRow.bind(d(r)),r.calculateColumnWidths=r.calculateColumnWidths.bind(d(r)),r.handleFilterChange=r.handleFilterChange.bind(d(r)),r.onSort=r.onSort.bind(d(r)),r.sortHeaderClick=r.sortHeaderClick.bind(d(r)),r._updateTableWidth=r._updateTableWidth.bind(d(r)),r._adjustTableHeight=r._adjustTableHeight.bind(d(r)),r.handleCheckedRow=r.handleCheckedRow.bind(d(r)),r.handleCheckedAllRows=r.handleCheckedAllRows.bind(d(r)),r}return b(p,[{key:"componentDidMount",value:function(){this._adjustTableHeight(),window.addEventListener("resize",this._adjustTableHeight),this.tableNode=g.findDOMNode(this.refs.table)}},{key:"componentDidUpdate",value:function(e,t){e.rows===this.props.rows&&e.columns===this.props.columns&&e.noAutoSize===this.props.noAutoSize||this._adjustTableHeight(),this.props.selectedRows&&this.setCheckedAll(this.props.selectedRows),this.tableNode=g.findDOMNode(this.refs.table)}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this._adjustTableHeight)}},{key:"onSort",value:function(e){var r=e.sortBy;if(this.props.onSort){var o={column:r,direction:this.state.columnSortDir[r]===t.ASC?t.DESC:t.ASC};this.props.onSort(o)}}},{key:"getOriginalRowIndex",value:function(e,t){var r=t;return e.columns&&f(e.columns[0],"content.props.children.props.propertyId.propertyId")?r=this.getLastChildPropertyIdRow(e.columns[0].content.props.children.props.propertyId,t):e.columns&&f(e.columns[0],"content.props.children.props.propertyId.row")?r=e.columns[0].content.props.children.props.propertyId.row:"number"==typeof e.rowKey&&(r=parseInt(e.rowKey,10)),r}},{key:"getLastChildPropertyIdRow",value:function(e,t){return void 0!==e.propertyId?this.getLastChildPropertyIdRow(e.propertyId):void 0!==e.row?e.row:t}},{key:"setCheckedAll",value:function(e){for(var t=!0,r=0;r<this.props.data.length;r++){var o=this.props.data[r],l=this.getOriginalRowIndex(o,r);if(e.indexOf(l)<0){t=!1;break}}this.state.checkedAllRows!==t&&this.setState({checkedAllRows:t})}},{key:"calculateColumnWidths",value:function(t,r){var o=r-12;this.props.rowSelection!==e.SINGLE&&(o-=40);var l,i=t.length,s=0,a=L(t);try{for(a.s();!(l=a.n()).done;){var n=l.value;n.width&&("string"==typeof n.width&&n.width.includes("px")?(o-=parseInt(n.width,10),i--):s=Math.max(s,n.width))}}catch(e){a.e(e)}finally{a.f()}var p,c=[],d=Math.floor(o/i),u=[],h=0,b=L(t);try{for(b.s();!(p=b.n()).done;){var m=p.value;m.width&&!isNaN(m.width)?(u.push(m.width/s),h+=m.width/s):u.push(null)}}catch(e){b.e(e)}finally{b.f()}for(var f=o/h,v=0,w=0;w<t.length;w++){var g=t[w];if(g.width)if("string"==typeof g.width&&g.width.includes("px"))c.push(Math.floor(parseInt(g.width,10))+"px"),v+=parseInt(g.width,10);else{var y=Math.floor(u[w]*f);c.push(y+"px"),v+=y}else c.push(d),v+=d}var R=r;if(this.props.rowSelection!==e.SINGLE&&(R-=40),v<R){var k=parseInt(c[0],10);c[0]=k+R-v+"px"}return c}},{key:"_updateTableWidth",value:function(e,t){this.state.tableWidth!==Math.floor(e-2)&&this.setState({tableWidth:Math.floor(e-2)})}},{key:"_adjustTableHeight",value:function(){if(!this.props.noAutoSize){var e=this.state.tableHeight,t=2.25,r=2.5,o=void 0!==this.props.rows?this.props.rows:4;if(o>0)e=t*o+r;else if(0===o)e=r;else{var l=document.getElementById("root"),i=l?l.getElementsByClassName("properties-wf-children"):[];if(l&&0===i.length&&(i=l.getElementsByClassName("bx--modal-content")),i.length>0){var s=i[i.length-1],a=s.getElementsByClassName("properties-ft-container-wrapper"),n=a.length>0?a[a.length-1]:null;if(n){var p=window.getComputedStyle(n,null).getPropertyValue("font-size"),c=parseFloat(p);e=(s.offsetHeight-n.offsetTop)/c+r,e=Math.max(e,4.75)}else e=11.5}}e!==this.state.tableHeight&&this.setState({tableHeight:e})}}},{key:"sortHeaderClick",value:function(e){var r=e.dataKey,o=this.state.columnSortDir;void 0!==o[r]&&(o[r]=o[r]===t.ASC?t.DESC:t.ASC,this.setState({columnSortDir:o,currentSortColumn:r}))}},{key:"handleFilterChange",value:function(e){this.props.onFilter&&this.props.onFilter(e.target.value)}},{key:"handleCheckedAllRows",value:function(e){var t=[],r=this.props.data;if(e){t=Array.from(this.props.selectedRows);for(var o=0;o<r.length;o++){var l=this.getOriginalRowIndex(r[o],o);t.push(l)}}t=Array.from(new Set(t)),this.props.updateRowSelections(t),this.setState({checkedAllRows:e})}},{key:"handleCheckedRow",value:function(t,r){var o=t.originalRowIndex,l=t.index,i=t.selected,s=t.isOverSelectOption;if(!this.props.data[l].disabled)if(s){var a=this.props.selectedRows?this.props.selectedRows:[];i?(a=a.concat(o),this.setCheckedAll(a)):a&&(a=a.filter((function(e){return e!==o})),this.setState({checkedAllRows:!1})),this.props.updateRowSelections(a)}else this.props.rowSelection===e.SINGLE&&void 0!==this.props.updateRowSelections&&this.props.updateRowSelections(t.index,r,this.props.data[t.index].rowKey)}},{key:"generateTableHeaderRow",value:function(e){for(var t=[],r="",o=0;o<this.props.columns.length;o++){var l=this.props.columns[o];void 0!==this.props.filterable&&this.props.filterable[0]===l.key&&(r=l.label);var i=Math.abs(parseInt(e[o],10)),s=void 0;"object"===u(l.label)?s=l.label.props.labelText:"string"==typeof l.label&&(s=l.label),t.push({key:l.key,label:l.label,width:i,description:l.description,headerLabel:s,operation:l.operation})}return{headers:t,searchLabel:r}}},{key:"rowGetter",value:function(e){var t=e.index,r=this.props.data[t],o=this.getOriginalRowIndex(r,t),l={};if(r.columns)for(var i=0;i<r.columns.length;i++){var s=r.columns[i];l[s.column]=s.content}return Object.assign({},l,{loading:!1,index:t,originalRowIndex:o,rowKey:void 0!==r.rowKey?r.rowKey:this.props.scrollKey+"-row-"+t,disabled:r.disabled})}},{key:"rowHeight",value:function(e){return e.index,a}},{key:"render",value:function(){var e=this.state.tableWidth,t=this.state.tableHeight,r=this.calculateColumnWidths(this.props.columns,e),o=this.generateTableHeaderRow(r),a=o.headers,n=o.searchLabel,p=this.props.tableState===l.DISABLED,c=null;if(void 0!==this.props.filterable&&0!==this.props.filterable.length){var d=this.props.intl.formatMessage({id:"table.search.placeholder",defaultMessage:O["table.search.placeholder"]},{column_name:n}),u=this.props.intl.formatMessage({id:"table.search.label",defaultMessage:O["table.search.label"]},{table_name:this.props.tableLabel});c=v.createElement("div",{className:i("properties-ft-search-container",{disabled:p})},v.createElement(k,{className:"properties-ft-search-text",placeholder:d,onChange:this.handleFilterChange,disabled:p,size:"sm",labelText:u,light:this.props.light}))}var h=-1;void 0!==this.props.scrollToRow&&null!==this.props.scrollToRow&&(h=this.props.scrollToRow);var b=this.props.noAutoSize||0===t?{}:{height:t+"em"},m=this.props.showHeader?"properties-ft-container-absolute ":"properties-ft-container-absolute-noheader ",f=this.props.messageInfo?m+this.props.messageInfo.type:m+l.INFO;return v.createElement("div",{"data-id":"properties-ft-"+this.props.scrollKey,className:"properties-ft-control-container"},v.createElement("div",{className:"properties-ft-table-header"},c,this.props.topRightPanel),v.createElement("div",{className:"properties-ft-container-panel"},v.createElement(T,{handleWidth:!0,onResize:this._updateTableWidth},v.createElement("div",{className:"properties-ft-container-wrapper",style:b},v.createElement("div",{className:f},this.props.selectedEditRow,v.createElement(N,s({tableLabel:this.props.tableLabel,columns:a,onHeaderClick:this.sortHeaderClick,rowCount:this.props.data.length,rowHeight:this.rowHeight,rowGetter:this.rowGetter,summaryTable:this.props.summaryTable,selectable:void 0!==this.props.updateRowSelections,rowSelection:this.props.rowSelection,disableHeader:!this.props.showHeader,onRowDoubleClick:this.props.onRowDoubleClick,rowsSelected:this.props.selectedRows,checkedAll:this.state.checkedAllRows,setRowsSelected:this.handleCheckedRow,setAllRowsSelected:this.handleCheckedAllRows,scrollKey:this.props.scrollKey,onSort:this.onSort,sortBy:this.state.currentSortColumn,sortColumns:this.state.columnSortDir,sortDirection:this.state.columnSortDir[this.state.currentSortColumn],tableState:this.props.tableState,light:this.props.light},-1!==h&&{scrollToIndex:h,scrollToAlignment:"center"})))))))}}]),p}(v.Component);B.defaultProps={showHeader:!0,light:!0};var P=w(B);export{P as F,O as d};
|
|
2
|
-
//# sourceMappingURL=flexible-table-f60c1680.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"flexible-table-f60c1680.js","sources":["../src/common-properties/components/virtualized-table/virtualized-table.jsx","../src/common-properties/components/flexible-table/flexible-table.jsx"],"sourcesContent":["/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Column, Table, AutoSizer } from \"react-virtualized\";\n\nimport { Checkbox, Loading } from \"carbon-components-react\";\nimport Icon from \"./../../../icons/icon.jsx\";\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport { SORT_DIRECTION, STATES, ROW_SELECTION, CARBON_ICONS } from \"./../../constants/constants\";\nimport { injectIntl } from \"react-intl\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nimport { isEmpty } from \"lodash\";\nimport { v4 as uuid4 } from \"uuid\";\nimport classNames from \"classnames\";\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\n\nclass VirtualizedTable extends React.Component {\n\n\tstatic getDerivedStateFromProps(nextProps, prevState) {\n\t\tif (nextProps.rowCount !== prevState.rowCount) {\n\t\t\treturn ({ rowCount: nextProps.rowCount });\n\t\t}\n\t\treturn ({});\n\t}\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\trowCount: this.props.rowCount\n\t\t};\n\t\tthis.virtualizedTableRef = React.createRef();\n\n\t\tthis.isOverSelectOption = false;\n\t\tthis.mouseEventCalled = false;\n\t\tthis.keyBoardEventCalled = false;\n\t\tthis.cellRenderer = this.cellRenderer.bind(this);\n\t\tthis.selectAll = this.selectAll.bind(this);\n\t\tthis.headerRowRenderer = this.headerRowRenderer.bind(this);\n\t\tthis.headerColRenderer = this.headerColRenderer.bind(this);\n\t\tthis.onRowClick = this.onRowClick.bind(this);\n\t\tthis.overSelectOption = this.overSelectOption.bind(this);\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// If the rowHeight prop is a function, the virtualized table doesn't always adjust its\n\t\t// row heights correctly when the table data has changed. So in this case we need\n\t\t// to recompute the row heights.\n\t\tif (typeof this.props.rowHeight === \"function\") {\n\t\t\tthis.recomputeRowHeights();\n\t\t}\n\t}\n\n\t// This is also triggered when clicking on a checkbox\n\tonRowClick(evt, rowData, index) {\n\t\tif (evt.target.className === \"bx--select-option\") {\n\t\t\tevt.stopPropagation(); // stop propagation when selecting dropdown select options within table rows\n\t\t} else {\n\t\t\t// Set selections\n\t\t\tconst selected = !this.isRowSelected(rowData.originalRowIndex);\n\t\t\tif (typeof this.props.setRowsSelected === \"function\") {\n\t\t\t\tthis.props.setRowsSelected({\n\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\"originalRowIndex\": rowData.originalRowIndex,\n\t\t\t\t\t\"selected\": selected,\n\t\t\t\t\t\"isOverSelectOption\": this.isOverSelectOption }, evt);\n\t\t\t}\n\t\t}\n\t}\n\n\tonRowDoubleClick(evt, rowKey, index) {\n\t\tif (this.props.onRowDoubleClick) {\n\t\t\tthis.props.onRowDoubleClick(evt, rowKey, index);\n\t\t}\n\t}\n\n\tgetCheckboxLabelColumnIndex(columns) {\n\t\t// If 1st column is Index, use the next column for labeling\n\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\tif (columns[i].operation !== \"index\") {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\t// Use first column by default\n\t\treturn 0;\n\t}\n\n\tisRowSelected(index) {\n\t\tif (this.props.rowsSelected) {\n\t\t\treturn this.props.rowsSelected.indexOf(index) > -1;\n\t\t}\n\t\treturn false;\n\t}\n\n\tselectAll(selected) {\n\t\tthis.props.setAllRowsSelected(selected);\n\t}\n\n\t// Callback responsible for rendering a cell's contents.\n\tcellRenderer({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn cellData;\n\t}\n\n\tcellRendererHTML({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn (<div dangerouslySetInnerHTML={{ __html: cellData }} />);\n\t}\n\n\trecomputeRowHeights(index) {\n\t\tif (this.virtualizedTableRef && this.virtualizedTableRef.current) {\n\t\t\tthis.virtualizedTableRef.current.recomputeRowHeights(index);\n\t\t}\n\t}\n\n\t// Responsible for rendering the table header row given an array of columns.\n\theaderRowRenderer(scrollKey, { className, columns, style }) {\n\t\tconst checkboxLabelColumnIndex = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? 0 : this.getCheckboxLabelColumnIndex(this.props.columns);\n\t\tconst headerCheckboxLabel = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? \"\" : this.props.columns[checkboxLabelColumnIndex].headerLabel;\n\t\tconst translatedHeaderCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t{ id: \"virtualizedTable.header.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.header.checkbox.label\"] },\n\t\t\t{ header_checkbox_label: headerCheckboxLabel }\n\t\t);\n\t\tconst checkbox = this.props.selectable && this.props.rowSelection !== ROW_SELECTION.SINGLE ? (<div role=\"columnheader\" className=\"properties-vt-header-checkbox\">\n\t\t\t<Checkbox\n\t\t\t\tid={`properties-vt-hd-cb-${scrollKey}`}\n\t\t\t\tonChange={this.selectAll}\n\t\t\t\tchecked={this.props.checkedAll}\n\t\t\t\tlabelText={translatedHeaderCheckboxLabel}\n\t\t\t\thideLabel\n\t\t\t/>\n\t\t</div>)\n\t\t\t: \"\";\n\n\t\treturn (<div className={className} data-role=\"properties-header-row\" role=\"row\" style={style}>\n\t\t\t{checkbox}\n\t\t\t{columns}\n\t\t</div>);\n\t}\n\n\theaderColRenderer({ columnData, dataKey, disableSort, label, sortBy, sortDirection }) {\n\t\tlet sortIcon = null;\n\t\tif (typeof this.props.sortColumns[dataKey] !== \"undefined\") {\n\t\t\tsortIcon = this.props.sortColumns[dataKey] === SORT_DIRECTION.ASC\n\t\t\t\t? <Icon type={CARBON_ICONS.CHEVRONARROWS.UP} disabled={this.props.tableState === STATES.DISABLED} />\n\t\t\t\t: <Icon type={CARBON_ICONS.CHEVRONARROWS.DOWN} disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\tsortIcon = (<div className=\"properties-ft-column-sort-icon\">\n\t\t\t\t{sortIcon}\n\t\t\t</div>);\n\t\t}\n\n\t\tlet tooltip = null;\n\t\tif (columnData.description && columnData.headerLabel) {\n\t\t\ttooltip = (\n\t\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t\t<span style= {{ fontWeight: \"bold\" }}>{columnData.headerLabel}</span>\n\t\t\t\t\t<br />\n\t\t\t\t\t{columnData.description}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if (columnData.description) {\n\t\t\ttooltip = (\n\t\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t\t{columnData.description}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else if (columnData.headerLabel) {\n\t\t\ttooltip = (\n\t\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t\t<span style= {{ fontWeight: \"bold\" }}>{columnData.headerLabel}</span>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst tooltipId = uuid4() + \"-tooltip-column-\" + dataKey;\n\n\t\treturn (<div className={classNames(\"properties-vt-column properties-tooltips-container\", { \"sort-column-active\": dataKey === this.props.sortBy })}>\n\t\t\t{ isEmpty(tooltip)\n\t\t\t\t? label\n\t\t\t\t: <Tooltip\n\t\t\t\t\tid={tooltipId}\n\t\t\t\t\ttip={tooltip}\n\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t>\n\t\t\t\t\t{label}\n\t\t\t\t</Tooltip>\n\t\t\t}\n\t\t\t{disableSort === false && sortIcon}\n\t\t</div>);\n\t}\n\n\toverSelectOption(evt) {\n\t\t// Differentiate between mouse and keyboard event\n\t\tif (evt.type === \"mouseenter\" && !this.keyBoardEventCalled) {\n\t\t\tthis.mouseEventCalled = true;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"mouseleave\" && this.mouseEventCalled) {\n\t\t\tthis.mouseEventCalled = false;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"focus\" && !this.mouseEventCalled) {\n\t\t\tthis.keyBoardEventCalled = true;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t} else if (evt.type === \"blur\" && this.keyBoardEventCalled) {\n\t\t\tthis.keyBoardEventCalled = false;\n\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t}\n\t}\n\n\t// Responsible for rendering a table row given an array of columns.\n\trowRenderer(scrollKey, { className, columns, index, key, rowData, style }) {\n\t\tlet selectOption = \"\";\n\t\tlet selectedRow = false;\n\t\tconst rowDisabled = typeof rowData.disabled === \"boolean\" ? rowData.disabled : false;\n\n\t\tif (typeof this.props.rowHeight === \"function\" && this.props.rowHeight({ index }) === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.props.selectable) {\n\t\t\tconst rowSelected = this.isRowSelected(rowData.originalRowIndex);\n\t\t\tselectedRow = this.props.selectable && rowSelected;\n\t\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\t\tconst translatedRowCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t\t\t{ id: \"virtualizedTable.row.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.row.checkbox.label\"] },\n\t\t\t\t\t{ row_index: index + 1, table_label: (this.props.tableLabel ? this.props.tableLabel : \"\") }\n\t\t\t\t);\n\n\t\t\t\tselectOption = (<div className=\"properties-vt-row-checkbox\"\n\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\tonMouseEnter={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonMouseLeave={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonFocus={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonBlur={(evt) => this.overSelectOption(evt)}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tid={`properties-vt-row-cb-${scrollKey}-${index}`}\n\t\t\t\t\t\tkey={`properties-vt-row-cb-${scrollKey}-${index}`}\n\t\t\t\t\t\tlabelText={translatedRowCheckboxLabel}\n\t\t\t\t\t\thideLabel\n\t\t\t\t\t\tchecked={rowSelected}\n\t\t\t\t\t\tdisabled={rowDisabled}\n\t\t\t\t\t/>\n\t\t\t\t</div>);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.summaryTable) {\n\t\t\tselectOption = <div className=\"properties-vt-row-checkbox\" />;\n\t\t}\n\n\t\tif (rowData.loading === true) {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tkey={key}\n\t\t\t\t\tdata-role=\"properties-loading-row\"\n\t\t\t\t\trole=\"row\"\n\t\t\t\t\tstyle={style}\n\t\t\t\t>\n\t\t\t\t\t<Loading className=\"properties-vt-small-loading\" small withOverlay={false} />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst width = (parseInt(style.width, 10)) + \"px\"; // Subtract 2px to account for row borders\n\t\tconst newStyle = Object.assign({}, style, { width: width });\n\n\t\t// Empty style required on cell for react-virtualized. This div wrapper is required to apply the onDoubleClick handler.\n\t\treturn (<div style={{}} key={key} className=\"properties-vt-double-click\" onDoubleClick={(evt) => this.onRowDoubleClick(evt, rowData.rowKey, index)}>\n\t\t\t<div\n\t\t\t\tclassName={classNames(className,\n\t\t\t\t\t{ \"properties-vt-row-selected\": selectedRow },\n\t\t\t\t\t{ \"properties-vt-row-disabled\": rowDisabled },\n\t\t\t\t\t{ \"properties-vt-row-non-interactive\": !this.props.selectable } // ReadonlyTable with single row selection is non-interactive.\n\t\t\t\t)}\n\t\t\t\tdata-role=\"properties-data-row\"\n\t\t\t\trole=\"row\"\n\t\t\t\tstyle={newStyle}\n\t\t\t\tonMouseDown={(evt) => this.onRowClick(evt, rowData, index)}\n\t\t\t\tonKeyPress={(evt) => {\n\t\t\t\t\tif (evt.code === \"Space\" || evt.code === \"Enter\") {\n\t\t\t\t\t\tthis.onRowClick(evt, rowData, index);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{selectOption}\n\t\t\t\t{columns}\n\t\t\t</div>\n\t\t</div>);\n\t}\n\n\trender() {\n\t\tconst defaultTestHeight = 2000; // 2000 is set to accommodate test data \"category-selection-data\" with all categories expanded\n\n\t\t// AutoSizer manages width and height properties so the table fills the available space.\n\t\t// It does a direct DOM manipulation to the parent, outside React's VirtualDOM.\n\t\t// Since the actual DOM is not available when unit testing, we are passing in a default\n\t\t// width of 500 and a default height of 300.\n\t\treturn (\n\t\t\t<div className=\"properties-vt\">\n\t\t\t\t<div className={classNames(\"properties-vt-autosizer\",\n\t\t\t\t\t{ \"properties-vt-single-selection\": this.props.rowSelection && this.props.rowSelection === ROW_SELECTION.SINGLE,\n\t\t\t\t\t\t\"properties-light-disabled\": !this.props.light })}\n\t\t\t\t>\n\t\t\t\t\t<AutoSizer>\n\t\t\t\t\t\t{({ height, width }) => ( // Table height: subtract 50 for margin below the table.\n\t\t\t\t\t\t\t<Table\n\t\t\t\t\t\t\t\tref={this.virtualizedTableRef}\n\t\t\t\t\t\t\t\twidth={width ? width : 500}\n\t\t\t\t\t\t\t\theight={height ? height : defaultTestHeight}\n\n\t\t\t\t\t\t\t\tclassName=\"properties-autosized-vt\"\n\t\t\t\t\t\t\t\taria-label={this.props.tableLabel ? this.props.tableLabel : \"\"}\n\n\t\t\t\t\t\t\t\tdisableHeader={this.props.disableHeader}\n\t\t\t\t\t\t\t\theaderClassName=\"properties-autosized-vt-header\"\n\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\theaderRowRenderer={this.headerRowRenderer.bind(this, this.props.scrollKey)}\n\t\t\t\t\t\t\t\tonHeaderClick={this.props.onHeaderClick}\n\n\t\t\t\t\t\t\t\trowClassName=\"properties-vt-row-class\"\n\t\t\t\t\t\t\t\trowHeight={this.props.rowHeight ? this.props.rowHeight : 32}\n\n\t\t\t\t\t\t\t\trowCount={this.state.rowCount}\n\t\t\t\t\t\t\t\trowGetter={this.props.rowGetter}\n\t\t\t\t\t\t\t\trowRenderer={this.rowRenderer.bind(this, this.props.scrollKey)}\n\n\t\t\t\t\t\t\t\tscrollToIndex={this.props.scrollToIndex}\n\t\t\t\t\t\t\t\tscrollToAlignment={this.props.scrollToAlignment}\n\n\t\t\t\t\t\t\t\tsort={this.props.onSort}\n\t\t\t\t\t\t\t\tsortDirection={this.props.sortDirection}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.props.columns.map((column) => (\n\t\t\t\t\t\t\t\t\t\t<Column\n\t\t\t\t\t\t\t\t\t\t\tkey={column.key}\n\t\t\t\t\t\t\t\t\t\t\tlabel={column.label}\n\t\t\t\t\t\t\t\t\t\t\tdataKey={column.key}\n\t\t\t\t\t\t\t\t\t\t\twidth={column.width}\n\t\t\t\t\t\t\t\t\t\t\tcolumnData={column}\n\t\t\t\t\t\t\t\t\t\t\tdisableSort={typeof this.props.sortColumns[column.key] === \"undefined\"}\n\t\t\t\t\t\t\t\t\t\t\tcellRenderer={column.isHTML ? this.cellRendererHTML : this.cellRenderer}\n\t\t\t\t\t\t\t\t\t\t\theaderRenderer={this.headerColRenderer}\n\t\t\t\t\t\t\t\t\t\t\t{...column.minWidth && { minWidth: column.minWidth }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Table>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</AutoSizer>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nVirtualizedTable.defaultProps = {\n\tdisableHeader: false\n};\n\nVirtualizedTable.propTypes = {\n\ttableLabel: PropTypes.string,\n\tselectable: PropTypes.bool,\n\tsummaryTable: PropTypes.bool,\n\trowSelection: PropTypes.string,\n\tdisableHeader: PropTypes.bool,\n\tcolumns: PropTypes.array.isRequired,\n\trowCount: PropTypes.number.isRequired,\n\trowGetter: PropTypes.func.isRequired,\n\trowHeight: PropTypes.oneOfType([\n\t\tPropTypes.func.isRequired,\n\t\tPropTypes.number.isRequired\n\t]),\n\tonRowDoubleClick: PropTypes.func,\n\trowsSelected: PropTypes.array, // Required if selectable is true\n\tcheckedAll: PropTypes.bool, // Required if selectable is true\n\tsetRowsSelected: PropTypes.func, // Required if selectable is true\n\tsetAllRowsSelected: PropTypes.func, // Required if selectable is true\n\tscrollToIndex: PropTypes.number,\n\tscrollToAlignment: PropTypes.string,\n\tonSort: PropTypes.func,\n\tsortBy: PropTypes.string,\n\tsortColumns: PropTypes.object,\n\tsortDirection: PropTypes.string,\n\tonHeaderClick: PropTypes.func,\n\tscrollKey: PropTypes.string,\n\ttableState: PropTypes.string,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired\n};\n\nexport default injectIntl(VirtualizedTable);\n","/*\n * Copyright 2017-2022 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint complexity: [\"error\", 25] */\n/* eslint max-depth: [\"error\", 6] */\n\nimport React from \"react\";\nimport { injectIntl } from \"react-intl\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\nimport { Search } from \"carbon-components-react\";\nimport VirtualizedTable from \"./../virtualized-table/virtualized-table.jsx\";\nimport { SORT_DIRECTION, STATES, ROW_HEIGHT, ROW_SELECTION } from \"./../../constants/constants\";\nimport ReactResizeDetector from \"react-resize-detector\";\nimport classNames from \"classnames\";\nimport { has } from \"lodash\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nclass FlexibleTable extends React.Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst sortDirs = {};\n\t\tif (typeof this.props.sortable !== \"undefined\") {\n\t\t\tfor (var i = 0; i < this.props.sortable.length; i++) {\n\t\t\t\tconst sortCol = this.props.sortable[i];\n\t\t\t\tsortDirs[sortCol] = SORT_DIRECTION.DESC;\n\t\t\t}\n\t\t}\n\t\tthis.state = {\n\t\t\tcheckedAllRows: false,\n\t\t\tcolumnSortDir: sortDirs,\n\t\t\tcurrentSortColumn: \"\",\n\t\t\ttableWidth: 0,\n\t\t\ttableHeight: 0\n\t\t};\n\n\t\tthis.rowHeight = this.rowHeight.bind(this);\n\t\tthis.rowGetter = this.rowGetter.bind(this);\n\n\t\tthis.getOriginalRowIndex = this.getOriginalRowIndex.bind(this);\n\t\tthis.getLastChildPropertyIdRow = this.getLastChildPropertyIdRow.bind(this);\n\n\t\tthis.calculateColumnWidths = this.calculateColumnWidths.bind(this);\n\t\tthis.handleFilterChange = this.handleFilterChange.bind(this);\n\t\tthis.onSort = this.onSort.bind(this);\n\t\tthis.sortHeaderClick = this.sortHeaderClick.bind(this);\n\t\tthis._updateTableWidth = this._updateTableWidth.bind(this);\n\t\tthis._adjustTableHeight = this._adjustTableHeight.bind(this);\n\t\tthis.handleCheckedRow = this.handleCheckedRow.bind(this);\n\t\tthis.handleCheckedAllRows = this.handleCheckedAllRows.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._adjustTableHeight();\n\t\twindow.addEventListener(\"resize\", this._adjustTableHeight);\n\t\tthis.tableNode = ReactDOM.findDOMNode(this.refs.table);\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (prevProps.rows !== this.props.rows ||\n\t\t\tprevProps.columns !== this.props.columns ||\n\t\t\tprevProps.noAutoSize !== this.props.noAutoSize) {\n\t\t\tthis._adjustTableHeight();\n\t\t}\n\n\t\t// Calculate if checkedAllRows is true\n\t\tif (this.props.selectedRows) {\n\t\t\tthis.setCheckedAll(this.props.selectedRows);\n\t\t}\n\n\t\tthis.tableNode = ReactDOM.findDOMNode(this.refs.table);\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.removeEventListener(\"resize\", this._adjustTableHeight);\n\t}\n\n\tonSort({ sortBy }) {\n\t\tif (this.props.onSort) {\n\t\t\tconst sortDirection = (this.state.columnSortDir[sortBy] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tconst spec = {\n\t\t\t\tcolumn: sortBy,\n\t\t\t\tdirection: sortDirection\n\t\t\t};\n\t\t\tthis.props.onSort(spec);\n\t\t}\n\t}\n\n\t/**\n\t* The current displayed row may have an index that is different from its actual index within the dataset\n\t* Given the current displayed row and index of the table,\n\t* return its original row index from its row's propertyId\n\t*/\n\tgetOriginalRowIndex(row, index) {\n\t\tlet rowIndex = index;\n\t\tif (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.propertyId\")) {\n\t\t\t// this is a nested control\n\t\t\trowIndex = this.getLastChildPropertyIdRow(row.columns[0].content.props.children.props.propertyId, index);\n\t\t} else if (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.row\")) {\n\t\t\trowIndex = row.columns[0].content.props.children.props.propertyId.row;\n\t\t} else if (typeof row.rowKey === \"number\") { // expression tables uses rowKey\n\t\t\trowIndex = parseInt(row.rowKey, 10);\n\t\t}\n\t\treturn rowIndex;\n\t}\n\n\t// Get the 'row' of the last child's propertyId\n\tgetLastChildPropertyIdRow(propertyId, defaultRowIndex) {\n\t\tif (typeof propertyId.propertyId !== \"undefined\") {\n\t\t\treturn this.getLastChildPropertyIdRow(propertyId.propertyId);\n\t\t}\n\t\tif (typeof propertyId.row !== \"undefined\") {\n\t\t\treturn propertyId.row;\n\t\t}\n\t\treturn defaultRowIndex;\n\t}\n\n\t/**\n\t* The header checkAll box may change depending on the current visible rows\n\t* Determine if all visible rows in the table are currently selected\n\t* and set the `checkedAllRows` state accordingly\n\t*/\n\tsetCheckedAll(selectedRows) {\n\t\tlet checkAll = true;\n\t\tfor (let idx = 0; idx < this.props.data.length; idx++) {\n\t\t\tconst row = this.props.data[idx];\n\t\t\tconst originalRowIndex = this.getOriginalRowIndex(row, idx);\n\t\t\tif (selectedRows.indexOf(originalRowIndex) < 0) {\n\t\t\t\tcheckAll = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.state.checkedAllRows !== checkAll) {\n\t\t\tthis.setState({ checkedAllRows: checkAll });\n\t\t}\n\t}\n\n\t/**\n\t* Calculate the width for each column to fit within the table\n\t* Widths provided in columns without 'px' are 'weighted' and will be scaled\n\t* Widths provided in columns with 'px' are used as is without scaling\n\t* if width is provided with 'px', subtract that from the total available table width\n\t* if width is provided, divide the column 'weighted' width with the max width from columns\n\t* return the scaled factor\n\t* multiply each column 'weighted' width with the scaled factor to get the actual width in pixels\n\t* @param columns column definitions\n\t* @param parentTableWidth\n\t*/\n\tcalculateColumnWidths(columns, parentTableWidth) {\n\t\tlet tableWidth = parentTableWidth - 12; // subtract 12 for the left padding scss $spacing-04\n\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\ttableWidth -= 40;\n\t\t}\n\t\tlet remainingColumns = columns.length; // keep track of how many columns to calculate width for\n\t\tlet maxWeight = 0;\n\n\t\tfor (const columnDef of columns) {\n\t\t\t// if columns have specific width subtract from total width\n\t\t\tif (columnDef.width) {\n\t\t\t\tif (typeof columnDef.width === \"string\" && columnDef.width.includes(\"px\")) {\n\t\t\t\t\ttableWidth -= parseInt(columnDef.width, 10);\n\t\t\t\t\tremainingColumns--;\n\t\t\t\t} else {\n\t\t\t\t\tmaxWeight = Math.max(maxWeight, columnDef.width); // keep track of which column has highest width provided\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst widths = [];\n\t\tconst defaultWidth = Math.floor(tableWidth / remainingColumns); // use default width for columns without a weight\n\t\tconst weightedWidths = [];\n\t\tlet sumWeightedWidths = 0;\n\n\t\t// scale weight of columns with width provided\n\t\tfor (const columnDef of columns) {\n\t\t\tif (columnDef.width && !isNaN(columnDef.width)) {\n\t\t\t\tweightedWidths.push(columnDef.width / maxWeight);\n\t\t\t\tsumWeightedWidths += (columnDef.width / maxWeight);\n\t\t\t} else {\n\t\t\t\tweightedWidths.push(null);\n\t\t\t}\n\t\t}\n\n\t\tconst scaledWidth = tableWidth / sumWeightedWidths; // scaled width multiplier for each column with width provided\n\n\t\tlet sumColumnWidth = 0;\n\t\tfor (let idx = 0; idx < columns.length; idx++) {\n\t\t\tconst columnDef = columns[idx];\n\t\t\tif (columnDef.width) {\n\t\t\t\t// use the width provided with 'px' as is\n\t\t\t\tif (typeof columnDef.width === \"string\" && columnDef.width.includes(\"px\")) {\n\t\t\t\t\twidths.push(Math.floor(parseInt(columnDef.width, 10)) + \"px\");\n\t\t\t\t\tsumColumnWidth += parseInt(columnDef.width, 10);\n\t\t\t\t} else { // multiply the width provided by the scaled width\n\t\t\t\t\tconst calculatedWidth = Math.floor(weightedWidths[idx] * scaledWidth);\n\t\t\t\t\twidths.push(calculatedWidth + \"px\");\n\t\t\t\t\tsumColumnWidth += calculatedWidth;\n\t\t\t\t}\n\t\t\t} else { // if no width provided, use the defaultWidth\n\t\t\t\twidths.push(defaultWidth);\n\t\t\t\tsumColumnWidth += defaultWidth;\n\t\t\t}\n\t\t}\n\n\t\t// if any columns had decimals floored, allocate additional space to the first column\n\t\tlet compare = parentTableWidth;\n\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\tcompare -= 40;\n\t\t}\n\n\t\tif (sumColumnWidth < compare) {\n\t\t\tconst firstColWith = parseInt(widths[0], 10);\n\t\t\twidths[0] = firstColWith + compare - sumColumnWidth + \"px\";\n\t\t}\n\n\t\treturn widths;\n\t}\n\n\t_updateTableWidth(width, height) {\n\t\tif (this.state.tableWidth !== Math.floor(width - 2)) {\n\t\t\tthis.setState({\n\t\t\t\ttableWidth: Math.floor(width - 2) // subtract 2 px for the borders\n\t\t\t});\n\t\t}\n\t}\n\n\t_adjustTableHeight() {\n\t\tif (this.props.noAutoSize) {\n\t\t\treturn;\n\t\t}\n\t\tlet newHeight = this.state.tableHeight;\n\t\tconst rowHeight = 2.25; // in em\n\t\tconst headerHeight = 2.5; // in em\n\t\tconst rows = typeof this.props.rows !== \"undefined\" ? this.props.rows : 4;\n\t\tif (rows > 0) {\n\t\t\tnewHeight = (rowHeight * rows + headerHeight);\n\t\t} else if (rows === 0) { // only display header\n\t\t\tnewHeight = headerHeight;\n\t\t} else {\n\t\t\t// A -1 row count indicates a desire to use the entire available vertical space\n\t\t\tconst rootElement = document.getElementById(\"root\");\n\t\t\tlet container = rootElement ? rootElement.getElementsByClassName(\"properties-wf-children\") : [];\n\t\t\tif (rootElement && container.length === 0) {\n\t\t\t\tcontainer = rootElement.getElementsByClassName(\"bx--modal-content\");\n\t\t\t}\n\t\t\tif (container.length > 0) {\n\t\t\t\tconst parentElement = container[container.length - 1]; // Adjust height to the latest wide flyout opened\n\t\t\t\tconst tableElements =\tparentElement.getElementsByClassName(\"properties-ft-container-wrapper\");\n\t\t\t\tconst tableElement = tableElements.length > 0 ? tableElements[tableElements.length - 1] : null;\n\t\t\t\tif (tableElement) {\n\t\t\t\t\tconst style = window.getComputedStyle(tableElement, null).getPropertyValue(\"font-size\");\n\t\t\t\t\tconst fontSize = parseFloat(style);\n\t\t\t\t\t// this is to adjust for multiple-select edit.\n\t\t\t\t\t// There is one additional row and header to account for.\n\t\t\t\t\tconst minHeight = (rowHeight + headerHeight);\n\t\t\t\t\tnewHeight = (parentElement.offsetHeight - tableElement.offsetTop) / fontSize + headerHeight;\n\t\t\t\t\tnewHeight = Math.max(newHeight, minHeight);\n\t\t\t\t} else {\n\t\t\t\t\tnewHeight = (rowHeight * 4 + headerHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (newHeight !== this.state.tableHeight) {\n\t\t\tthis.setState({ tableHeight: newHeight });\n\t\t}\n\t}\n\n\tsortHeaderClick({ dataKey }) {\n\t\tconst colSortDir = this.state.columnSortDir;\n\t\tif (typeof colSortDir[dataKey] !== \"undefined\") {\n\t\t\tcolSortDir[dataKey] = (colSortDir[dataKey] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tthis.setState({\n\t\t\t\tcolumnSortDir: colSortDir,\n\t\t\t\tcurrentSortColumn: dataKey\n\t\t\t});\n\t\t}\n\t}\n\n\thandleFilterChange(evt) {\n\t\tif (this.props.onFilter) {\n\t\t\tthis.props.onFilter(evt.target.value);\n\t\t}\n\t}\n\n\thandleCheckedAllRows(checked) {\n\t\tlet selectAll = [];\n\t\tconst controlValue = this.props.data;\n\t\tif (checked) {\n\t\t\tselectAll = Array.from(this.props.selectedRows);\n\t\t\tfor (var rowIndex = 0; rowIndex < controlValue.length; rowIndex++) {\n\t\t\t\tconst originalRowIndex = this.getOriginalRowIndex(controlValue[rowIndex], rowIndex);\n\t\t\t\tselectAll.push(originalRowIndex);\n\t\t\t}\n\t\t}\n\t\tselectAll = Array.from(new Set(selectAll));\n\t\tthis.props.updateRowSelections(selectAll);\n\t\tthis.setState({ checkedAllRows: checked });\n\t}\n\n\thandleCheckedRow(data, evt) {\n\t\tconst dataRowIndex = data.originalRowIndex; // Use the originalRowIndex for selection in case rows are filtered.\n\t\tconst displayedRowIndex = data.index;\n\t\tconst checked = data.selected;\n\t\tconst overSelectOption = data.isOverSelectOption;\n\n\t\tif (!this.props.data[displayedRowIndex].disabled) {\n\t\t\tif (overSelectOption) { // Checkbox is clicked\n\t\t\t\tlet current = this.props.selectedRows ? this.props.selectedRows : [];\n\t\t\t\tif (checked) {\n\t\t\t\t\tcurrent = current.concat(dataRowIndex);\n\t\t\t\t\tthis.setCheckedAll(current);\n\t\t\t\t} else if (current) {\n\t\t\t\t\tcurrent = current.filter(function(element) {\n\t\t\t\t\t\treturn element !== dataRowIndex;\n\t\t\t\t\t});\n\t\t\t\t\tthis.setState({ checkedAllRows: false });\n\t\t\t\t}\n\t\t\t\tthis.props.updateRowSelections(current);\n\t\t\t} else if (this.props.rowSelection === ROW_SELECTION.SINGLE && typeof this.props.updateRowSelections !== \"undefined\") { // Table row is clicked\n\t\t\t\tthis.props.updateRowSelections(data.index, evt, this.props.data[data.index].rowKey);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t* Generate the table header specs from this.props.columns\n\t* this.props.columns: array of objects\n\t* [\n\t* {\n\t* \"key\": string,\n\t* \"label\": string,\n\t* \"width\": integer or string if containts 'px',\n\t* \"description\": optional string\n\t* }\n\t* ]\n\t* @param columnWidths\n\t*/\n\tgenerateTableHeaderRow(columnWidths) {\n\t\tconst headers = [];\n\t\tlet searchLabel = \"\";\n\t\tfor (var j = 0; j < this.props.columns.length; j++) {\n\t\t\tconst columnDef = this.props.columns[j];\n\t\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable[0] === columnDef.key) {\n\t\t\t\tsearchLabel = columnDef.label;\n\t\t\t}\n\t\t\tconst width = Math.abs(parseInt(columnWidths[j], 10));\n\t\t\tlet headerLabel;\n\t\t\tif (typeof (columnDef.label) === \"object\") {\n\t\t\t\theaderLabel = columnDef.label.props.labelText;\n\t\t\t} else if (typeof (columnDef.label) === \"string\") {\n\t\t\t\theaderLabel = columnDef.label;\n\t\t\t}\n\t\t\theaders.push({\n\t\t\t\tkey: columnDef.key,\n\t\t\t\tlabel: columnDef.label,\n\t\t\t\twidth: width,\n\t\t\t\tdescription: columnDef.description,\n\t\t\t\theaderLabel: headerLabel,\n\t\t\t\toperation: columnDef.operation\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\theaders: headers,\n\t\t\tsearchLabel: searchLabel\n\t\t};\n\t}\n\n\t/**\n\t* Callback responsible for returning a data row given an index\n\t*/\n\trowGetter({ index }) {\n\t\tconst row = this.props.data[index];\n\t\tconst originalRowIndex = this.getOriginalRowIndex(row, index);\n\n\t\tconst columns = {};\n\t\tif (row.columns) {\n\t\t\tfor (let cidx = 0; cidx < row.columns.length; cidx++) {\n\t\t\t\tconst column = row.columns[cidx];\n\t\t\t\tcolumns[column.column] = column.content;\n\t\t\t}\n\t\t}\n\t\treturn Object.assign({}, columns, {\n\t\t\tloading: false,\n\t\t\tindex: index,\n\t\t\toriginalRowIndex: originalRowIndex,\n\t\t\trowKey: typeof row.rowKey !== \"undefined\" ? row.rowKey : this.props.scrollKey + \"-row-\" + index,\n\t\t\tdisabled: row.disabled\n\t\t});\n\t}\n\n\t// Function that returns the height of a row given its index\n\trowHeight({ index }) {\n\t\treturn ROW_HEIGHT;\n\t}\n\n\trender() {\n\t\tconst tableWidth = this.state.tableWidth;\n\t\tconst tableHeight = this.state.tableHeight; // subtract 2 px for the borders\n\t\tconst columnWidths = this.calculateColumnWidths(this.props.columns, tableWidth);\n\t\tconst headerInfo = this.generateTableHeaderRow(columnWidths);\n\n\t\tconst headers = headerInfo.headers;\n\t\tconst searchLabel = headerInfo.searchLabel;\n\t\tconst disabled = this.props.tableState === STATES.DISABLED;\n\n\t\tlet searchBar = null;\n\n\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable.length !== 0) {\n\t\t\tconst placeHolder = this.props.intl.formatMessage(\n\t\t\t\t{ id: \"table.search.placeholder\", defaultMessage: defaultMessages[\"table.search.placeholder\"] },\n\t\t\t\t{ column_name: searchLabel }\n\t\t\t);\n\t\t\tconst searchBarLabel = this.props.intl.formatMessage(\n\t\t\t\t{ id: \"table.search.label\", defaultMessage: defaultMessages[\"table.search.label\"] },\n\t\t\t\t{ table_name: this.props.tableLabel }\n\t\t\t);\n\n\t\t\tsearchBar = (\n\t\t\t\t<div className={classNames(\"properties-ft-search-container\", { \"disabled\": disabled })}>\n\t\t\t\t\t<Search\n\t\t\t\t\t\tclassName=\"properties-ft-search-text\"\n\t\t\t\t\t\tplaceholder={placeHolder}\n\t\t\t\t\t\tonChange={this.handleFilterChange}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tlabelText={searchBarLabel}\n\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tlet scrollIndex = -1;\n\t\tif (typeof this.props.scrollToRow !== \"undefined\" && this.props.scrollToRow !== null) {\n\t\t\tscrollIndex = this.props.scrollToRow;\n\t\t}\n\n\t\tconst heightStyle = (this.props.noAutoSize || tableHeight === 0) ? {} : { height: tableHeight + \"em\" };\n\t\tconst containerClass = this.props.showHeader ? \"properties-ft-container-absolute \" : \"properties-ft-container-absolute-noheader \";\n\t\tconst messageClass = (!this.props.messageInfo) ? containerClass + STATES.INFO : containerClass + this.props.messageInfo.type;\n\n\t\treturn (\n\t\t\t<div data-id={\"properties-ft-\" + this.props.scrollKey} className=\"properties-ft-control-container\">\n\t\t\t\t<div className=\"properties-ft-table-header\">\n\t\t\t\t\t{searchBar}\n\t\t\t\t\t{this.props.topRightPanel}\n\t\t\t\t</div>\n\t\t\t\t<div className=\"properties-ft-container-panel\">\n\t\t\t\t\t<ReactResizeDetector handleWidth onResize={this._updateTableWidth}>\n\t\t\t\t\t\t<div className=\"properties-ft-container-wrapper\" style={ heightStyle }>\n\t\t\t\t\t\t\t<div className={messageClass}>\n\t\t\t\t\t\t\t\t{this.props.selectedEditRow}\n\t\t\t\t\t\t\t\t<VirtualizedTable\n\t\t\t\t\t\t\t\t\ttableLabel={this.props.tableLabel}\n\t\t\t\t\t\t\t\t\tcolumns={headers}\n\t\t\t\t\t\t\t\t\tonHeaderClick={this.sortHeaderClick}\n\t\t\t\t\t\t\t\t\trowCount={this.props.data.length}\n\t\t\t\t\t\t\t\t\trowHeight={this.rowHeight}\n\t\t\t\t\t\t\t\t\trowGetter={this.rowGetter}\n\t\t\t\t\t\t\t\t\tsummaryTable={this.props.summaryTable}\n\t\t\t\t\t\t\t\t\tselectable={typeof this.props.updateRowSelections !== \"undefined\"}\n\t\t\t\t\t\t\t\t\trowSelection={this.props.rowSelection}\n\t\t\t\t\t\t\t\t\tdisableHeader={!this.props.showHeader}\n\t\t\t\t\t\t\t\t\tonRowDoubleClick={this.props.onRowDoubleClick}\n\t\t\t\t\t\t\t\t\trowsSelected={this.props.selectedRows}\n\t\t\t\t\t\t\t\t\tcheckedAll={this.state.checkedAllRows}\n\t\t\t\t\t\t\t\t\tsetRowsSelected={this.handleCheckedRow}\n\t\t\t\t\t\t\t\t\tsetAllRowsSelected={this.handleCheckedAllRows}\n\t\t\t\t\t\t\t\t\tscrollKey={this.props.scrollKey}\n\t\t\t\t\t\t\t\t\tonSort={this.onSort}\n\t\t\t\t\t\t\t\t\tsortBy={this.state.currentSortColumn}\n\t\t\t\t\t\t\t\t\tsortColumns={this.state.columnSortDir}\n\t\t\t\t\t\t\t\t\tsortDirection={this.state.columnSortDir[this.state.currentSortColumn]}\n\t\t\t\t\t\t\t\t\ttableState={this.props.tableState}\n\t\t\t\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t\t\t\t\t{...(scrollIndex !== -1 && { scrollToIndex: scrollIndex, scrollToAlignment: \"center\" })}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ReactResizeDetector>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nFlexibleTable.defaultProps = {\n\tshowHeader: true,\n\tlight: true\n};\n\nFlexibleTable.propTypes = {\n\tsortable: PropTypes.array,\n\tcolumns: PropTypes.array.isRequired,\n\tdata: PropTypes.array.isRequired,\n\tfilterable: PropTypes.array,\n\tfilterBy: PropTypes.string,\n\tfilterKeyword: PropTypes.string,\n\thideFilterInput: PropTypes.func,\n\tscrollToRow: PropTypes.number,\n\tonSort: PropTypes.func,\n\tonFilter: PropTypes.func,\n\tshowHeader: PropTypes.bool,\n\tselectedEditRow: PropTypes.object,\n\ttopRightPanel: PropTypes.object,\n\tscrollKey: PropTypes.string,\n\ttableLabel: PropTypes.string,\n\trows: PropTypes.number,\n\tnoAutoSize: PropTypes.bool,\n\ttableState: PropTypes.string,\n\tmessageInfo: PropTypes.object,\n\tupdateRowSelections: PropTypes.func,\n\tonRowDoubleClick: PropTypes.func,\n\tselectedRows: PropTypes.array,\n\trowSelection: PropTypes.string,\n\tsummaryTable: PropTypes.bool,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired\n};\n\nexport default injectIntl(FlexibleTable);\n"],"names":["VirtualizedTable","props","context","state","rowCount","_this","virtualizedTableRef","React","createRef","isOverSelectOption","mouseEventCalled","keyBoardEventCalled","cellRenderer","bind","selectAll","headerRowRenderer","headerColRenderer","onRowClick","overSelectOption","this","rowHeight","recomputeRowHeights","evt","rowData","index","target","className","stopPropagation","selected","isRowSelected","originalRowIndex","setRowsSelected","rowKey","onRowDoubleClick","columns","i","length","operation","rowsSelected","indexOf","setAllRowsSelected","cellData","dangerouslySetInnerHTML","__html","current","scrollKey","style","checkboxLabelColumnIndex","getCheckboxLabelColumnIndex","headerCheckboxLabel","headerLabel","translatedHeaderCheckboxLabel","intl","formatMessage","id","defaultMessage","defaultMessages","header_checkbox_label","checkbox","selectable","rowSelection","ROW_SELECTION","SINGLE","role","Checkbox","onChange","checked","checkedAll","labelText","hideLabel","columnData","dataKey","disableSort","label","sortBy","sortDirection","sortIcon","sortColumns","SORT_DIRECTION","ASC","Icon","type","CARBON_ICONS","CHEVRONARROWS","UP","disabled","tableState","STATES","DISABLED","DOWN","tooltip","description","fontWeight","tooltipId","uuid4","classNames","_isEmpty","Tooltip","tip","direction","key","selectOption","selectedRow","rowDisabled","rowSelected","translatedRowCheckboxLabel","row_index","table_label","tableLabel","onMouseEnter","_this2","onMouseLeave","onFocus","onBlur","summaryTable","loading","Loading","small","withOverlay","width","parseInt","newStyle","Object","assign","onDoubleClick","onMouseDown","onKeyPress","code","light","AutoSizer","height","Table","ref","_this3","disableHeader","headerClassName","headerHeight","onHeaderClick","rowClassName","rowGetter","rowRenderer","scrollToIndex","scrollToAlignment","sort","onSort","map","column","Column","isHTML","cellRendererHTML","headerRenderer","minWidth","nextProps","prevState","Component","defaultProps","injectIntl","FlexibleTable","sortDirs","sortable","DESC","checkedAllRows","columnSortDir","currentSortColumn","tableWidth","tableHeight","getOriginalRowIndex","getLastChildPropertyIdRow","calculateColumnWidths","handleFilterChange","sortHeaderClick","_updateTableWidth","_adjustTableHeight","handleCheckedRow","handleCheckedAllRows","window","addEventListener","tableNode","ReactDOM","findDOMNode","refs","table","prevProps","rows","noAutoSize","selectedRows","setCheckedAll","removeEventListener","spec","row","rowIndex","_has","content","children","propertyId","defaultRowIndex","checkAll","idx","data","setState","parentTableWidth","remainingColumns","maxWeight","columnDef","includes","Math","max","widths","defaultWidth","floor","weightedWidths","sumWeightedWidths","isNaN","push","scaledWidth","sumColumnWidth","calculatedWidth","compare","firstColWith","newHeight","rootElement","document","getElementById","container","getElementsByClassName","parentElement","tableElements","tableElement","getComputedStyle","getPropertyValue","fontSize","parseFloat","offsetHeight","offsetTop","colSortDir","onFilter","value","controlValue","Array","from","Set","updateRowSelections","dataRowIndex","displayedRowIndex","concat","filter","element","columnWidths","headers","searchLabel","j","filterable","abs","_typeof","cidx","ROW_HEIGHT","headerInfo","generateTableHeaderRow","searchBar","placeHolder","column_name","searchBarLabel","table_name","Search","placeholder","size","scrollIndex","scrollToRow","heightStyle","containerClass","showHeader","messageClass","messageInfo","INFO","topRightPanel","ReactResizeDetector","handleWidth","onResize","selectedEditRow"],"mappings":"okLAgCMA,2CASOC,EAAOC,yCACZD,EAAOC,IAERC,MAAQ,CACZC,SAAUC,EAAKJ,MAAMG,YAEjBE,oBAAsBC,EAAMC,cAE5BC,oBAAqB,IACrBC,kBAAmB,IACnBC,qBAAsB,IACtBC,aAAeP,EAAKO,aAAaC,aACjCC,UAAYT,EAAKS,UAAUD,aAC3BE,kBAAoBV,EAAKU,kBAAkBF,aAC3CG,kBAAoBX,EAAKW,kBAAkBH,aAC3CI,WAAaZ,EAAKY,WAAWJ,aAC7BK,iBAAmBb,EAAKa,iBAAiBL,yDAG/C,WAIqC,mBAAzBM,KAAKlB,MAAMmB,gBAChBC,gDAKP,SAAWC,EAAKC,EAASC,MACK,sBAAzBF,EAAIG,OAAOC,UACdJ,EAAIK,sBACE,KAEAC,GAAYT,KAAKU,cAAcN,EAAQO,kBACH,mBAA/BX,KAAKlB,MAAM8B,sBAChB9B,MAAM8B,gBAAgB,OACjBP,mBACWD,EAAQO,0BAChBF,qBACUT,KAAKV,oBAAsBa,oCAKrD,SAAiBA,EAAKU,EAAQR,GACzBL,KAAKlB,MAAMgC,uBACThC,MAAMgC,iBAAiBX,EAAKU,EAAQR,8CAI3C,SAA4BU,OAEtB,IAAIC,EAAI,EAAGA,EAAID,EAAQE,OAAQD,OACN,UAAzBD,EAAQC,GAAGE,iBACPF,SAIF,+BAGR,SAAcX,WACTL,KAAKlB,MAAMqC,cACPnB,KAAKlB,MAAMqC,aAAaC,QAAQf,IAAU,2BAKnD,SAAUI,QACJ3B,MAAMuC,mBAAmBZ,+BAI/B,gBAAea,IAAAA,gBACVA,MAAAA,EACI,GAEDA,kCAGR,gBAAmBA,IAAAA,gBACdA,MAAAA,EACI,GAEAlC,uBAAKmC,wBAAyB,CAAEC,OAAQF,wCAGjD,SAAoBjB,GACfL,KAAKb,qBAAuBa,KAAKb,oBAAoBsC,cACnDtC,oBAAoBsC,QAAQvB,oBAAoBG,oCAKvD,SAAkBqB,SAAanB,IAAAA,UAAWQ,IAAAA,QAASY,IAAAA,MAC5CC,OAA0D,IAAvB5B,KAAKlB,MAAMiC,SAAyD,IAA9Bf,KAAKlB,MAAMiC,QAAQE,OAAgB,EAAIjB,KAAK6B,4BAA4B7B,KAAKlB,MAAMiC,SAC5Je,OAAqD,IAAvB9B,KAAKlB,MAAMiC,SAAyD,IAA9Bf,KAAKlB,MAAMiC,QAAQE,OAAgB,GAAKjB,KAAKlB,MAAMiC,QAAQa,GAA0BG,YACzJC,EAAgChC,KAAKlB,MAAMmD,KAAKC,cACrD,CAAEC,GAAI,yCAA0CC,eAAgBC,EAAgB,2CAChF,CAAEC,sBAAuBR,IAEpBS,EAAWvC,KAAKlB,MAAM0D,YAAcxC,KAAKlB,MAAM2D,eAAiBC,EAAcC,OAAUvD,uBAAKwD,KAAK,eAAerC,UAAU,iCAChInB,gBAACyD,GACAV,iCAA2BT,GAC3BoB,SAAU9C,KAAKL,UACfoD,QAAS/C,KAAKlB,MAAMkE,WACpBC,UAAWjB,EACXkB,gBAGC,UAEK9D,uBAAKmB,UAAWA,cAAqB,wBAAwBqC,KAAK,MAAMjB,MAAOA,GACrFY,EACAxB,oCAIH,gBAAoBoC,IAAAA,WAAYC,IAAAA,QAASC,IAAAA,YAAaC,IAAAA,QAAOC,SAAQC,kBAChEC,EAAW,UACgC,IAApCzD,KAAKlB,MAAM4E,YAAYN,KACjCK,EAAWzD,KAAKlB,MAAM4E,YAAYN,KAAaO,EAAeC,IAC3DxE,gBAACyE,GAAKC,KAAMC,EAAaC,cAAcC,GAAIC,SAAUlE,KAAKlB,MAAMqF,aAAeC,EAAOC,WACtFjF,gBAACyE,GAAKC,KAAMC,EAAaC,cAAcM,KAAMJ,SAAUlE,KAAKlB,MAAMqF,aAAeC,EAAOC,WAC3FZ,EAAYrE,uBAAKmB,UAAU,kCACzBkD,QAICc,EAAU,KACVpB,EAAWqB,aAAerB,EAAWpB,YACxCwC,EACCnF,uBAAKmB,UAAU,uBACdnB,wBAAMuC,MAAQ,CAAE8C,WAAY,SAAWtB,EAAWpB,aAClD3C,2BACC+D,EAAWqB,aAGJrB,EAAWqB,YACrBD,EACCnF,uBAAKmB,UAAU,uBACb4C,EAAWqB,aAGJrB,EAAWpB,cACrBwC,EACCnF,uBAAKmB,UAAU,uBACdnB,wBAAMuC,MAAQ,CAAE8C,WAAY,SAAWtB,EAAWpB,mBAK/C2C,EAAYC,IAAU,mBAAqBvB,SAEzChE,uBAAKmB,UAAWqE,EAAW,qDAAsD,sBAAwBxB,IAAYpD,KAAKlB,MAAMyE,UACrIsB,EAAQN,GACPjB,EACAlE,gBAAC0F,GACF3C,GAAIuC,EACJK,IAAKR,EACLS,UAAU,SACVzE,UAAU,uBAET+C,IAGc,IAAhBD,GAAyBI,mCAI5B,SAAiBtD,GAEC,eAAbA,EAAI2D,MAA0B9D,KAAKR,oBAGf,eAAbW,EAAI2D,MAAyB9D,KAAKT,uBACvCA,kBAAmB,OACnBD,oBAAsBU,KAAKV,oBACT,UAAba,EAAI2D,MAAqB9D,KAAKT,iBAGjB,SAAbY,EAAI2D,MAAmB9D,KAAKR,2BACjCA,qBAAsB,OACtBF,oBAAsBU,KAAKV,0BAJ3BE,qBAAsB,OACtBF,oBAAsBU,KAAKV,0BAP3BC,kBAAmB,OACnBD,oBAAsBU,KAAKV,+CAclC,SAAYoC,gBAAanB,IAAAA,UAAWQ,IAAAA,QAASV,IAAAA,MAAO4E,IAAAA,IAAK7E,IAAAA,QAASuB,IAAAA,MAC7DuD,EAAe,GACfC,GAAc,EACZC,EAA0C,kBAArBhF,EAAQ8D,UAAyB9D,EAAQ8D,YAEhC,mBAAzBlE,KAAKlB,MAAMmB,WAAgE,IAApCD,KAAKlB,MAAMmB,UAAU,CAAEI,MAAAA,WACjE,QAGJL,KAAKlB,MAAM0D,WAAY,KACpB6C,EAAcrF,KAAKU,cAAcN,EAAQO,qBAC/CwE,EAAcnF,KAAKlB,MAAM0D,YAAc6C,EACnCrF,KAAKlB,MAAM2D,eAAiBC,EAAcC,OAAQ,KAC/C2C,EAA6BtF,KAAKlB,MAAMmD,KAAKC,cAClD,CAAEC,GAAI,sCAAuCC,eAAgBC,EAAgB,wCAC7E,CAAEkD,UAAWlF,EAAQ,EAAGmF,YAAcxF,KAAKlB,MAAM2G,WAAazF,KAAKlB,MAAM2G,WAAa,KAGvFP,EAAgB9F,uBAAKmB,UAAU,6BAC9BqC,KAAK,WACL8C,aAAc,SAACvF,UAAQwF,EAAK5F,iBAAiBI,IAC7CyF,aAAc,SAACzF,UAAQwF,EAAK5F,iBAAiBI,IAC7C0F,QAAS,SAAC1F,UAAQwF,EAAK5F,iBAAiBI,IACxC2F,OAAQ,SAAC3F,UAAQwF,EAAK5F,iBAAiBI,KAEvCf,gBAACyD,GACAV,kCAA4BT,cAAarB,GACzC4E,mCAA6BvD,cAAarB,GAC1C4C,UAAWqC,EACXpC,aACAH,QAASsC,EACTnB,SAAUkB,SAMVpF,KAAKlB,MAAMiH,eACdb,EAAe9F,uBAAKmB,UAAU,iCAGP,IAApBH,EAAQ4F,eAEV5G,uBACCmB,UAAWA,EACX0E,IAAKA,cACK,yBACVrC,KAAK,MACLjB,MAAOA,GAEPvC,gBAAC6G,GAAQ1F,UAAU,8BAA8B2F,SAAMC,aAAa,SAKjEC,EAASC,SAAS1E,EAAMyE,MAAO,IAAO,KACtCE,EAAWC,OAAOC,OAAO,GAAI7E,EAAO,CAAEyE,MAAOA,WAG3ChH,uBAAKuC,MAAO,GAAIsD,IAAKA,EAAK1E,UAAU,6BAA6BkG,cAAe,SAACtG,UAAQwF,EAAK7E,iBAAiBX,EAAKC,EAAQS,OAAQR,KAC3IjB,uBACCmB,UAAWqE,EAAWrE,EACrB,8BAAgC4E,GAChC,8BAAgCC,GAChC,sCAAwCpF,KAAKlB,MAAM0D,yBAE1C,sBACVI,KAAK,MACLjB,MAAO2E,EACPI,YAAa,SAACvG,UAAQwF,EAAK7F,WAAWK,EAAKC,EAASC,IACpDsG,WAAY,SAACxG,GACK,UAAbA,EAAIyG,MAAiC,UAAbzG,EAAIyG,MAC/BjB,EAAK7F,WAAWK,EAAKC,EAASC,KAI/B6E,EACAnE,0BAKJ,6BAQE3B,uBAAKmB,UAAU,iBACdnB,uBAAKmB,UAAWqE,EAAW,0BAC1B,kCAAoC5E,KAAKlB,MAAM2D,cAAgBzC,KAAKlB,MAAM2D,eAAiBC,EAAcC,oCAC1E3C,KAAKlB,MAAM+H,SAE1CzH,gBAAC0H,QACC,gBAAGC,IAAAA,OAAQX,IAAAA,6BACVY,GACAC,IAAKC,EAAK/H,oBACViH,MAAOA,GAAgB,IACvBW,OAAQA,GAjBY,IAmBpBxG,UAAU,uCACE2G,EAAKpI,MAAM2G,WAAayB,EAAKpI,MAAM2G,WAAa,GAE5D0B,cAAeD,EAAKpI,MAAMqI,cAC1BC,gBAAgB,iCAChBC,aAAc,GACdzH,kBAAmBsH,EAAKtH,kBAAkBF,KAAKwH,EAAMA,EAAKpI,MAAM4C,WAChE4F,cAAeJ,EAAKpI,MAAMwI,cAE1BC,aAAa,0BACbtH,UAAWiH,EAAKpI,MAAMmB,UAAYiH,EAAKpI,MAAMmB,UAAY,GAEzDhB,SAAUiI,EAAKlI,MAAMC,SACrBuI,UAAWN,EAAKpI,MAAM0I,UACtBC,YAAaP,EAAKO,YAAY/H,KAAKwH,EAAMA,EAAKpI,MAAM4C,WAEpDgG,cAAeR,EAAKpI,MAAM4I,cAC1BC,kBAAmBT,EAAKpI,MAAM6I,kBAE9BC,KAAMV,EAAKpI,MAAM+I,OACjBrE,cAAe0D,EAAKpI,MAAM0E,eAGzB0D,EAAKpI,MAAMiC,QAAQ+G,KAAI,SAACC,UACvB3I,gBAAC4I,KACA/C,IAAK8C,EAAO9C,IACZ3B,MAAOyE,EAAOzE,MACdF,QAAS2E,EAAO9C,IAChBmB,MAAO2B,EAAO3B,MACdjD,WAAY4E,EACZ1E,iBAA2D,IAAvC6D,EAAKpI,MAAM4E,YAAYqE,EAAO9C,KAClDxF,aAAcsI,EAAOE,OAASf,EAAKgB,iBAAmBhB,EAAKzH,aAC3D0I,eAAgBjB,EAAKrH,mBACjBkI,EAAOK,UAAY,CAAEA,SAAUL,EAAOK,+DA3UpD,SAAgCC,EAAWC,UACtCD,EAAUpJ,WAAaqJ,EAAUrJ,SAC5B,CAAEA,SAAUoJ,EAAUpJ,UAEvB,UANqBG,EAAMmJ,WA0VrC1J,EAAiB2J,aAAe,CAC/BrB,eAAe,GAkChB,MAAesB,EAAW5J,k8CC/XpB6J,2CAEO5J,uBAGL6J,EAAW,WACkB,mBAH7B7J,IAGUA,MAAM8J,aAChB,IAAI5H,EAAI,EAAGA,EAAI9B,EAAKJ,MAAM8J,SAAS3H,OAAQD,IAAK,CAEpD2H,EADgBzJ,EAAKJ,MAAM8J,SAAS5H,IAChB2C,EAAekF,cAGhC7J,MAAQ,CACZ8J,gBAAgB,EAChBC,cAAeJ,EACfK,kBAAmB,GACnBC,WAAY,EACZC,YAAa,KAGTjJ,UAAYf,EAAKe,UAAUP,aAC3B8H,UAAYtI,EAAKsI,UAAU9H,aAE3ByJ,oBAAsBjK,EAAKiK,oBAAoBzJ,aAC/C0J,0BAA4BlK,EAAKkK,0BAA0B1J,aAE3D2J,sBAAwBnK,EAAKmK,sBAAsB3J,aACnD4J,mBAAqBpK,EAAKoK,mBAAmB5J,aAC7CmI,OAAS3I,EAAK2I,OAAOnI,aACrB6J,gBAAkBrK,EAAKqK,gBAAgB7J,aACvC8J,kBAAoBtK,EAAKsK,kBAAkB9J,aAC3C+J,mBAAqBvK,EAAKuK,mBAAmB/J,aAC7CgK,iBAAmBxK,EAAKwK,iBAAiBhK,aACzCiK,qBAAuBzK,EAAKyK,qBAAqBjK,wDAGvD,gBACM+J,qBACLG,OAAOC,iBAAiB,SAAU7J,KAAKyJ,yBAClCK,UAAYC,EAASC,YAAYhK,KAAKiK,KAAKC,yCAGjD,SAAmBC,EAAW7B,GACzB6B,EAAUC,OAASpK,KAAKlB,MAAMsL,MACjCD,EAAUpJ,UAAYf,KAAKlB,MAAMiC,SACjCoJ,EAAUE,aAAerK,KAAKlB,MAAMuL,iBAC/BZ,qBAIFzJ,KAAKlB,MAAMwL,mBACTC,cAAcvK,KAAKlB,MAAMwL,mBAG1BR,UAAYC,EAASC,YAAYhK,KAAKiK,KAAKC,2CAGjD,WACCN,OAAOY,oBAAoB,SAAUxK,KAAKyJ,0CAG3C,gBAASlG,IAAAA,UACJvD,KAAKlB,MAAM+I,OAAQ,KAEhB4C,EAAO,CACZ1C,OAAQxE,EACRyB,UAHsBhF,KAAKhB,MAAM+J,cAAcxF,KAAYI,EAAeC,IAAOD,EAAekF,KAAOlF,EAAeC,UAKlH9E,MAAM+I,OAAO4C,uCASpB,SAAoBC,EAAKrK,OACpBsK,EAAWtK,SACXqK,EAAI3J,SAAW6J,EAAIF,EAAI3J,QAAQ,GAAI,sDAEtC4J,EAAW3K,KAAKoJ,0BAA0BsB,EAAI3J,QAAQ,GAAG8J,QAAQ/L,MAAMgM,SAAShM,MAAMiM,WAAY1K,GACxFqK,EAAI3J,SAAW6J,EAAIF,EAAI3J,QAAQ,GAAI,+CAC7C4J,EAAWD,EAAI3J,QAAQ,GAAG8J,QAAQ/L,MAAMgM,SAAShM,MAAMiM,WAAWL,IAClC,iBAAfA,EAAI7J,SACrB8J,EAAWtE,SAASqE,EAAI7J,OAAQ,KAE1B8J,2CAIR,SAA0BI,EAAYC,eACA,IAA1BD,EAAWA,WACd/K,KAAKoJ,0BAA0B2B,EAAWA,iBAEpB,IAAnBA,EAAWL,IACdK,EAAWL,IAEZM,+BAQR,SAAcV,WACTW,GAAW,EACNC,EAAM,EAAGA,EAAMlL,KAAKlB,MAAMqM,KAAKlK,OAAQiK,IAAO,KAChDR,EAAM1K,KAAKlB,MAAMqM,KAAKD,GACtBvK,EAAmBX,KAAKmJ,oBAAoBuB,EAAKQ,MACnDZ,EAAalJ,QAAQT,GAAoB,EAAG,CAC/CsK,GAAW,SAITjL,KAAKhB,MAAM8J,iBAAmBmC,QAC5BG,SAAS,CAAEtC,eAAgBmC,yCAelC,SAAsBlK,EAASsK,OAC1BpC,EAAaoC,EAAmB,GAChCrL,KAAKlB,MAAM2D,eAAiBC,EAAcC,SAC7CsG,GAAc,UAEXqC,EAAmBvK,EAAQE,OAC3BsK,EAAY,MAEQxK,kCAAS,KAAtByK,UAENA,EAAUpF,QACkB,iBAApBoF,EAAUpF,OAAsBoF,EAAUpF,MAAMqF,SAAS,OACnExC,GAAc5C,SAASmF,EAAUpF,MAAO,IACxCkF,KAEAC,EAAYG,KAAKC,IAAIJ,EAAWC,EAAUpF,6CAIvCwF,EAAS,GACTC,EAAeH,KAAKI,MAAM7C,EAAaqC,GACvCS,EAAiB,GACnBC,EAAoB,MAGAjL,kCAAS,KAAtByK,UACNA,EAAUpF,QAAU6F,MAAMT,EAAUpF,QACvC2F,EAAeG,KAAKV,EAAUpF,MAAQmF,GACtCS,GAAsBR,EAAUpF,MAAQmF,GAExCQ,EAAeG,KAAK,6CAIhBC,EAAclD,EAAa+C,EAE7BI,EAAiB,EACZlB,EAAM,EAAGA,EAAMnK,EAAQE,OAAQiK,IAAO,KACxCM,EAAYzK,EAAQmK,MACtBM,EAAUpF,SAEkB,iBAApBoF,EAAUpF,OAAsBoF,EAAUpF,MAAMqF,SAAS,MACnEG,EAAOM,KAAKR,KAAKI,MAAMzF,SAASmF,EAAUpF,MAAO,KAAO,MACxDgG,GAAkB/F,SAASmF,EAAUpF,MAAO,QACtC,KACAiG,EAAkBX,KAAKI,MAAMC,EAAeb,GAAOiB,GACzDP,EAAOM,KAAKG,EAAkB,MAC9BD,GAAkBC,OAGnBT,EAAOM,KAAKL,GACZO,GAAkBP,MAKhBS,EAAUjB,KACVrL,KAAKlB,MAAM2D,eAAiBC,EAAcC,SAC7C2J,GAAW,IAGRF,EAAiBE,EAAS,KACvBC,EAAelG,SAASuF,EAAO,GAAI,IACzCA,EAAO,GAAKW,EAAeD,EAAUF,EAAiB,YAGhDR,mCAGR,SAAkBxF,EAAOW,GACpB/G,KAAKhB,MAAMiK,aAAeyC,KAAKI,MAAM1F,EAAQ,SAC3CgF,SAAS,CACbnC,WAAYyC,KAAKI,MAAM1F,EAAQ,uCAKlC,eACKpG,KAAKlB,MAAMuL,gBAGXmC,EAAYxM,KAAKhB,MAAMkK,YACrBjJ,EAAY,KACZoH,EAAe,IACf+C,OAAkC,IAApBpK,KAAKlB,MAAMsL,KAAuBpK,KAAKlB,MAAMsL,KAAO,KACpEA,EAAO,EACVoC,EAAavM,EAAYmK,EAAO/C,OAC1B,GAAa,IAAT+C,EACVoC,EAAYnF,MACN,KAEAoF,EAAcC,SAASC,eAAe,QACxCC,EAAYH,EAAcA,EAAYI,uBAAuB,0BAA4B,MACzFJ,GAAoC,IAArBG,EAAU3L,SAC5B2L,EAAYH,EAAYI,uBAAuB,sBAE5CD,EAAU3L,OAAS,EAAG,KACnB6L,EAAgBF,EAAUA,EAAU3L,OAAS,GAC7C8L,EAAgBD,EAAcD,uBAAuB,mCACrDG,EAAeD,EAAc9L,OAAS,EAAI8L,EAAcA,EAAc9L,OAAS,GAAK,QACtF+L,EAAc,KACXrL,EAAQiI,OAAOqD,iBAAiBD,EAAc,MAAME,iBAAiB,aACrEC,EAAWC,WAAWzL,GAI5B6K,GAAaM,EAAcO,aAAeL,EAAaM,WAAaH,EAAW9F,EAC/EmF,EAAYd,KAAKC,IAAIa,EAFFvM,WAInBuM,EAAavM,MAIZuM,IAAcxM,KAAKhB,MAAMkK,kBACvBkC,SAAS,CAAElC,YAAasD,oCAI/B,gBAAkBpJ,IAAAA,QACXmK,EAAavN,KAAKhB,MAAM+J,mBACK,IAAxBwE,EAAWnK,KACrBmK,EAAWnK,GAAYmK,EAAWnK,KAAaO,EAAeC,IAAOD,EAAekF,KAAOlF,EAAeC,SACrGwH,SAAS,CACbrC,cAAewE,EACfvE,kBAAmB5F,uCAKtB,SAAmBjD,GACdH,KAAKlB,MAAM0O,eACT1O,MAAM0O,SAASrN,EAAIG,OAAOmN,2CAIjC,SAAqB1K,OAChBpD,EAAY,GACV+N,EAAe1N,KAAKlB,MAAMqM,QAC5BpI,EAAS,CACZpD,EAAYgO,MAAMC,KAAK5N,KAAKlB,MAAMwL,kBAC7B,IAAIK,EAAW,EAAGA,EAAW+C,EAAazM,OAAQ0J,IAAY,KAC5DhK,EAAmBX,KAAKmJ,oBAAoBuE,EAAa/C,GAAWA,GAC1EhL,EAAUuM,KAAKvL,IAGjBhB,EAAYgO,MAAMC,KAAK,IAAIC,IAAIlO,SAC1Bb,MAAMgP,oBAAoBnO,QAC1ByL,SAAS,CAAEtC,eAAgB/F,oCAGjC,SAAiBoI,EAAMhL,OAChB4N,EAAe5C,EAAKxK,iBACpBqN,EAAoB7C,EAAK9K,MACzB0C,EAAUoI,EAAK1K,SACfV,EAAmBoL,EAAK7L,uBAEzBU,KAAKlB,MAAMqM,KAAK6C,GAAmB9J,YACnCnE,EAAkB,KACjB0B,EAAUzB,KAAKlB,MAAMwL,aAAetK,KAAKlB,MAAMwL,aAAe,GAC9DvH,GACHtB,EAAUA,EAAQwM,OAAOF,QACpBxD,cAAc9I,IACTA,IACVA,EAAUA,EAAQyM,QAAO,SAASC,UAC1BA,IAAYJ,UAEf3C,SAAS,CAAEtC,gBAAgB,UAE5BhK,MAAMgP,oBAAoBrM,QACrBzB,KAAKlB,MAAM2D,eAAiBC,EAAcC,aAAoD,IAAnC3C,KAAKlB,MAAMgP,0BAC3EhP,MAAMgP,oBAAoB3C,EAAK9K,MAAOF,EAAKH,KAAKlB,MAAMqM,KAAKA,EAAK9K,OAAOQ,8CAmB/E,SAAuBuN,WAChBC,EAAU,GACZC,EAAc,GACTC,EAAI,EAAGA,EAAIvO,KAAKlB,MAAMiC,QAAQE,OAAQsN,IAAK,KAC7C/C,EAAYxL,KAAKlB,MAAMiC,QAAQwN,QACA,IAA1BvO,KAAKlB,MAAM0P,YAA8BxO,KAAKlB,MAAM0P,WAAW,KAAOhD,EAAUvG,MAC1FqJ,EAAc9C,EAAUlI,WAEnB8C,EAAQsF,KAAK+C,IAAIpI,SAAS+H,EAAaG,GAAI,KAC7CxM,SAC6B,WAA7B2M,EAAQlD,EAAUlI,OACrBvB,EAAcyJ,EAAUlI,MAAMxE,MAAMmE,UACG,iBAArBuI,EAAUlI,QAC5BvB,EAAcyJ,EAAUlI,OAEzB+K,EAAQnC,KAAK,CACZjH,IAAKuG,EAAUvG,IACf3B,MAAOkI,EAAUlI,MACjB8C,MAAOA,EACP5B,YAAagH,EAAUhH,YACvBzC,YAAaA,EACbb,UAAWsK,EAAUtK,kBAGhB,CACNmN,QAASA,EACTC,YAAaA,4BAOf,gBAAYjO,IAAAA,MACLqK,EAAM1K,KAAKlB,MAAMqM,KAAK9K,GACtBM,EAAmBX,KAAKmJ,oBAAoBuB,EAAKrK,GAEjDU,EAAU,MACZ2J,EAAI3J,YACF,IAAI4N,EAAO,EAAGA,EAAOjE,EAAI3J,QAAQE,OAAQ0N,IAAQ,KAC/C5G,EAAS2C,EAAI3J,QAAQ4N,GAC3B5N,EAAQgH,EAAOA,QAAUA,EAAO8C,eAG3BtE,OAAOC,OAAO,GAAIzF,EAAS,CACjCiF,SAAS,EACT3F,MAAOA,EACPM,iBAAkBA,EAClBE,YAA8B,IAAf6J,EAAI7J,OAAyB6J,EAAI7J,OAASb,KAAKlB,MAAM4C,UAAY,QAAUrB,EAC1F6D,SAAUwG,EAAIxG,oCAKhB,qBAAY7D,MACJuO,wBAGR,eACO3F,EAAajJ,KAAKhB,MAAMiK,WACxBC,EAAclJ,KAAKhB,MAAMkK,YACzBkF,EAAepO,KAAKqJ,sBAAsBrJ,KAAKlB,MAAMiC,QAASkI,GAC9D4F,EAAa7O,KAAK8O,uBAAuBV,GAEzCC,EAAUQ,EAAWR,QACrBC,EAAcO,EAAWP,YACzBpK,EAAWlE,KAAKlB,MAAMqF,aAAeC,EAAOC,SAE9C0K,EAAY,aAEqB,IAA1B/O,KAAKlB,MAAM0P,YAA+D,IAAjCxO,KAAKlB,MAAM0P,WAAWvN,OAAc,KACjF+N,EAAchP,KAAKlB,MAAMmD,KAAKC,cACnC,CAAEC,GAAI,2BAA4BC,eAAgBC,EAAgB,6BAClE,CAAE4M,YAAaX,IAEVY,EAAiBlP,KAAKlB,MAAMmD,KAAKC,cACtC,CAAEC,GAAI,qBAAsBC,eAAgBC,EAAgB,uBAC5D,CAAE8M,WAAYnP,KAAKlB,MAAM2G,aAG1BsJ,EACC3P,uBAAKmB,UAAWqE,EAAW,iCAAkC,UAAcV,KAC1E9E,gBAACgQ,GACA7O,UAAU,4BACV8O,YAAaL,EACblM,SAAU9C,KAAKsJ,mBACfpF,SAAUA,EACVoL,KAAK,KACLrM,UAAWiM,EACXrI,MAAO7G,KAAKlB,MAAM+H,aAMlB0I,GAAe,OACmB,IAA3BvP,KAAKlB,MAAM0Q,aAA0D,OAA3BxP,KAAKlB,MAAM0Q,cAC/DD,EAAcvP,KAAKlB,MAAM0Q,iBAGpBC,EAAezP,KAAKlB,MAAMuL,YAA8B,IAAhBnB,EAAqB,GAAK,CAAEnC,OAAQmC,EAAc,MAC1FwG,EAAiB1P,KAAKlB,MAAM6Q,WAAa,oCAAsC,6CAC/EC,EAAiB5P,KAAKlB,MAAM+Q,YAA8CH,EAAiB1P,KAAKlB,MAAM+Q,YAAY/L,KAAvE4L,EAAiBtL,EAAO0L,YAGxE1Q,iCAAc,iBAAmBY,KAAKlB,MAAM4C,UAAWnB,UAAU,mCAChEnB,uBAAKmB,UAAU,8BACbwO,EACA/O,KAAKlB,MAAMiR,eAEb3Q,uBAAKmB,UAAU,iCACdnB,gBAAC4Q,GAAoBC,eAAYC,SAAUlQ,KAAKwJ,mBAC/CpK,uBAAKmB,UAAU,kCAAkCoB,MAAQ8N,GACxDrQ,uBAAKmB,UAAWqP,GACd5P,KAAKlB,MAAMqR,gBACZ/Q,gBAACP,KACA4G,WAAYzF,KAAKlB,MAAM2G,WACvB1E,QAASsN,EACT/G,cAAetH,KAAKuJ,gBACpBtK,SAAUe,KAAKlB,MAAMqM,KAAKlK,OAC1BhB,UAAWD,KAAKC,UAChBuH,UAAWxH,KAAKwH,UAChBzB,aAAc/F,KAAKlB,MAAMiH,aACzBvD,gBAAsD,IAAnCxC,KAAKlB,MAAMgP,oBAC9BrL,aAAczC,KAAKlB,MAAM2D,aACzB0E,eAAgBnH,KAAKlB,MAAM6Q,WAC3B7O,iBAAkBd,KAAKlB,MAAMgC,iBAC7BK,aAAcnB,KAAKlB,MAAMwL,aACzBtH,WAAYhD,KAAKhB,MAAM8J,eACvBlI,gBAAiBZ,KAAK0J,iBACtBrI,mBAAoBrB,KAAK2J,qBACzBjI,UAAW1B,KAAKlB,MAAM4C,UACtBmG,OAAQ7H,KAAK6H,OACbtE,OAAQvD,KAAKhB,MAAMgK,kBACnBtF,YAAa1D,KAAKhB,MAAM+J,cACxBvF,cAAexD,KAAKhB,MAAM+J,cAAc/I,KAAKhB,MAAMgK,mBACnD7E,WAAYnE,KAAKlB,MAAMqF,WACvB0C,MAAO7G,KAAKlB,MAAM+H,QACI,IAAjB0I,GAAsB,CAAE7H,cAAe6H,EAAa5H,kBAAmB,wBA3czDvI,EAAMmJ,WAsdlCG,EAAcF,aAAe,CAC5BmH,YAAY,EACZ9I,OAAO,GAgCR,MAAe4B,EAAWC"}
|
package/dist/index-567978da.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{_ as e,a as t}from"./createClass-32a0cf0f.js";import{_ as r,a as n,b as a,d as i,c as s}from"./getPrototypeOf-97272efe.js";import{p as o,q as l,r as c,i as u,s as f,_ as p,t as d,u as m,l as h,j as v,a as E,h as y,v as b,w as T}from"./en-dc6f2e9f.js";import{k as N,l as g,a as L,j as S,e as A,m as O,c as I,g as R,n as C,o as k,p as M,h as P,d as _}from"./isEmpty-def8f509.js";import D,{Component as F}from"react";import{d as w,F as U}from"./flexible-table-f60c1680.js";import{v4 as j}from"uuid";import B from"./lib/tooltip.es.js";import{injectIntl as x}from"react-intl";import{Button as G}from"carbon-components-react";import{c as Y,k as H,e as K,l as V,I as X,M as z,R as W}from"./extends-5a45f92e.js";import{ArrowLeft24 as $,Reset24 as Z}from"@carbon/icons-react";function q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,i=n(e);if(t){var s=n(this).constructor;r=Reflect.construct(i,arguments,s)}else r=i.apply(this,arguments);return a(this,r)}}var J=function(n){r(i,F);var a=q(i);function i(){return e(this,i),a.apply(this,arguments)}return t(i,[{key:"render",value:function(){var e,t=void 0===this.props.applyLabel?this.props.intl.formatMessage({id:"propertiesEdit.applyButton.label",defaultMessage:w["propertiesEdit.applyButton.label"]}):this.props.applyLabel,r=void 0===this.props.rejectLabel?this.props.intl.formatMessage({id:"propertiesEdit.rejectButton.label",defaultMessage:w["propertiesEdit.rejectButton.label"]}):this.props.rejectLabel;this.props.cancelHandler&&(e=D.createElement(G,{"data-id":"properties-cancel-button",className:"properties-cancel-button",type:"button",size:"small",kind:"secondary",onClick:this.props.cancelHandler},r));var n=D.createElement(G,{"data-id":"properties-apply-button",className:"properties-apply-button",type:"button",size:"small",onClick:this.props.okHandler,disabled:!this.props.applyButtonEnabled},t);return D.createElement("div",{className:Y("properties-modal-buttons",{hide:void 0!==this.props.showPropertiesButtons&&!this.props.showPropertiesButtons})},e,n)}}]),i}();J.defaultProps={applyButtonEnabled:!0};var Q=x(J);var ee=function(e,t){return null!=e&&t in Object(e)},te=N;var re=function(e,t){return null!=e&&te(e,t,ee)},ne=o;var ae=function(e,t){return ne(e,t)},ie={CONTROL:"control",ADDITIONAL_LINK:"additionalLink",STATIC_TEXT:"staticText",HORIZONTAL_SEPARATOR:"hSeparator",PANEL:"panel",SUB_TABS:"subTabs",PRIMARY_TABS:"primaryTabs",PANEL_SELECTOR:"panelSelector",CUSTOM_PANEL:"customPanel",ACTION:"action",TEXT_PANEL:"textPanel"},se={INLINE:"inline",SUBPANEL:"subpanel",ON_PANEL:"on_panel"},oe={LARGE:"large",MEDIUM:"medium",SMALL:"small"},le={CONTROLS:"controls",TABS:"tabs",SUB_TABS:"subTabs",PANELS:"panels",ADDITIONAL:"additional",COLUMN_SELECTION:"columnSelection",PANEL_SELECTOR:"panelSelector",CUSTOM_PANEL:"customPanel",SUMMARY_PANEL:"summaryPanel",ACTION_PANEL:"actionPanel",TEXT_PANEL:"textPanel",TWISTY_PANEL:"twistyPanel",COLUMN_PANEL:"columnPanel"},ce={GENERAL:"general",COLUMN_SELECTION:"columnSelection",CUSTOM:"custom",SUMMARY:"summary",ACTION_PANEL:"actionPanel",TWISTY_PANEL:"twisty",COLUMN_PANEL:"column"},ue={CUSTOM:"custom",TEXTFIELD:"textfield",PASSWORDFIELD:"passwordfield",TEXTAREA:"textarea",LIST:"list",EXPRESSION:"expression",NUMBERFIELD:"numberfield",DATEFIELD:"datefield",TIMEFIELD:"timefield",TIMESTAMP:"timestampfield",CHECKBOX:"checkbox",RADIOSET:"radioset",CHECKBOXSET:"checkboxset",ONEOFSELECT:"oneofselect",MULTISELECT:"multiselect",SOMEOFSELECT:"someofselect",SELECTCOLUMN:"selectcolumn",SELECTCOLUMNS:"selectcolumns",SELECTSCHEMA:"selectschema",STRUCTURETABLE:"structuretable",STRUCTUREEDITOR:"structureeditor",STRUCTURELISTEDITOR:"structurelisteditor",TOGGLETEXT:"toggletext",READONLY:"readonly",READONLYTABLE:"readonlyTable",SPINNER:"spinner",CODE:"code",HIDDEN:"hidden"},fe={TEXT:"text",ENUM:"enum",COLUMN:"column",NEW_COLUMN:"new_column",EXPRESSION:"expression",EMAIL:"email",URL:"url",COLOR:"color",INTERVAL_YEAR:"interval_year",INTERVAL_DAY:"interval_day",INTERVAL_SECOND:"interval_second",CUSTOM:"custom",UNSPECIFIED:""},pe={BOOLEAN:"boolean",INTEGER:"integer",LONG:"long",DOUBLE:"double",STRING:"string",PASSWORD:"password",DATE:"date",TIME:"time",STRUCTURE:"structure",OBJECT:"object"},de={BEFORE:"before",AFTER:"after"},me={VERTICAL:"vertical",HORIZONTAL:"horizontal"};var he=function(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}},ve=l,Ee=c,ye=he;var be=o,Te=u,Ne=re,ge=g,Le=f,Se=he,Ae=L;var Oe=p;var Ie=function(e){return function(t){return null==t?void 0:t[e]}},Re=function(e){return function(t){return Oe(t,e)}},Ce=g,ke=L;var Me=function(e){var t=Ee(e);return 1==t.length&&t[0][2]?ye(t[0][0],t[0][1]):function(r){return r===e||ve(r,e,t)}},Pe=function(e,t){return ge(e)&&Le(t)?Se(Ae(e),t):function(r){var n=Te(r,e);return void 0===n&&n===t?Ne(r,e):be(t,n,3)}},_e=d,De=S,Fe=function(e){return Ce(e)?Ie(ke(e)):Re(e)};var we=function(e){return"function"==typeof e?e:null==e?_e:"object"==typeof e?De(e)?Pe(e[0],e[1]):Me(e):Fe(e)},Ue=m,je=h;var Be=A;var xe=function(e,t){return function(r,n){if(null==r)return r;if(!Be(r))return e(r,n);for(var a=r.length,i=t?a:-1,s=Object(r);(t?i--:++i<a)&&!1!==n(s[i],i,s););return r}}((function(e,t){return e&&Ue(e,t,je)})),Ge=xe,Ye=A;var He=O;var Ke=function(e,t){if(e!==t){var r=void 0!==e,n=null===e,a=e==e,i=He(e),s=void 0!==t,o=null===t,l=t==t,c=He(t);if(!o&&!c&&!i&&e>t||i&&s&&l&&!o&&!c||n&&s&&l||!r&&l||!a)return 1;if(!n&&!i&&!c&&e<t||c&&r&&a&&!n&&!i||o&&r&&a||!s&&a||!l)return-1}return 0};var Ve=I,Xe=p,ze=we,We=function(e,t){var r=-1,n=Ye(e)?Array(e.length):[];return Ge(e,(function(e,a,i){n[++r]=t(e,a,i)})),n},$e=function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e},Ze=R,qe=function(e,t,r){for(var n=-1,a=e.criteria,i=t.criteria,s=a.length,o=r.length;++n<s;){var l=Ke(a[n],i[n]);if(l)return n>=o?l:l*("desc"==r[n]?-1:1)}return e.index-t.index},Je=d,Qe=S;var et=C,tt=A,rt=k,nt=M;var at=function(e,t,r){if(!nt(r))return!1;var n=typeof t;return!!("number"==n?tt(r)&&rt(t,r.length):"string"==n&&t in r)&&et(r[t],e)},it=E,st=function(e,t,r){t=t.length?Ve(t,(function(e){return Qe(e)?function(t){return Xe(t,1===e.length?e[0]:e)}:e})):[Je];var n=-1;t=Ve(t,Ze(ze));var a=We(e,(function(e,r,a){return{criteria:Ve(t,(function(t){return t(e)})),index:++n,value:e}}));return $e(a,(function(e,t){return qe(e,t,r)}))},ot=at,lt=v((function(e,t){if(null==e)return[];var r=t.length;return r>1&&ot(e,t[0],t[1])?t=[]:r>2&&ot(t[0],t[1],t[2])&&(t=[t[0]]),st(e,it(t,1),[])})),ct={};function ut(e,t,r){var n="",a="",i="";return r&&(n=r+": "),t&&(t.lineNumber&&(a="(line "+t.lineNumber+"): "),i=t.message?t.message:"Message unavailable"),"["+e+"]: "+n+a+i}ct.debug=function(e,t){console.log(ut("DEBUG",t,e))},ct.info=function(e,t){console.log(ut("INFO",t,e))},ct.warn=function(e,t){console.warn(ut("WARNING",t,e))},ct.error=function(e,t){console.error(ut("ERROR",t,e))};var ft=ct;function pt(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return dt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return dt(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){o=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(o)throw i}}}}function dt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function mt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ht(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?mt(Object(r),!0).forEach((function(t){b(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):mt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function vt(e){return{}.toString.call(e).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function Et(e){return void 0!==e?y(e):e}function yt(e,t,r){var n=ht(ht({},w),T);return null!=e?e.formatMessage({id:t,defaultMessage:n[t]},r):n[t]}function bt(){return"properties-"+j()}function Tt(e,t){try{if(!e)return e;var r=e.indexOf("${");if(r<0)return e;var n=e.substr(r+2).indexOf("}");if(n<0)return e;var a=e.substr(r+2,n),i=e.replace("${"+a+"}",function(e,t){var r,n,a=e.indexOf("("),i=e.substr(0,a),s=e.slice(a+1,-1).split(",");if(0===s.length)return"";switch(i){case"percent":return!(n=Nt(s[0],t))||isNaN(n)?0:(r=100/n,s.length>1&&(r=r.toFixed(parseInt(s[1],10))),r);case"sum":r=0;var o,l=pt(s);try{for(l.s();!(o=l.n()).done;){n=Nt(o.value,t),isNaN(n)||(r+=n)}}catch(e){l.e(e)}finally{l.f()}return r}return""}(a,t));return Tt(i,t)}catch(t){return ft.warn("Invalid expression. Make sure replacement expression in text is a valid expression."),e}}function Nt(e,t){return isNaN(e)?t.getPropertyValue({name:e.trim()}):parseFloat(e)}function gt(e){if(e)if(e.subControls){for(var t=0;t<e.subControls.length;t++)if(e.subControls[t].role===fe.COLUMN)return t}else if(e.role===fe.COLUMN)return 0;return-1}function Lt(e){var t={fields:[]};if(e&&e.columns){var r,n=pt(e.columns);try{for(n.s();!(r=n.n()).done;){var a=r.value,i={};i.name=a.name,i.type=St(a.storage),i.metadata={},i.metadata.description="",a.measure&&(i.metadata.measure=a.measure.toLowerCase()),a.modelingRole&&(i.metadata.modeling_role=a.modelingRole.toLowerCase()),t.fields.push(i)}}catch(e){n.e(e)}finally{n.f()}}return t}function St(e){var t=e.toLowerCase();return"Real"===e&&(t="double"),t}function At(e){if(e){if(e.structureType&&"object"===e.structureType)return!0;if(e.subControls){var t,r=pt(e.subControls);try{for(r.s();!(t=r.n()).done;){var n=t.value;if(n.structureType&&"object"===n.structureType)return!0;if(n.subControls&&At(n))return!0}}catch(e){r.e(e)}finally{r.f()}return!1}}return!1}function Ot(e,t,r){var n=[];if(t.forEach((function(e){n.push(e.name)})),e){var a=[];return"object"===i(r)&&null!==r&&Object.keys(r).length>0&&r.forEach((function(e){if(Array.isArray(e)){var r=[];e.forEach((function(e,n){var a=e;"object"===i(e)&&null!==e&&Object.keys(e).length>0&&(a=Ot(t[n].valueDef.isList,t[n].subControls,e)),r.push(a)})),a.push(r)}else if("object"===i(e)){var s=[];n.forEach((function(r,n){var a=void 0!==e[r]?e[r]:null;t[n].structureType&&"object"===t[n].structureType&&(a=Ot(t[n].valueDef.isList,t[n].subControls,e[r])),s.push(a)})),a.push(s)}})),a}var s=[];return n.forEach((function(e,t){var n=void 0!==r[e]?r[e]:null;s.push(n)})),s}function It(e,t,r,n){var a=[];if(t.forEach((function(e){a.push(e.name)})),e&&Array.isArray(r)){var i=[];return r.forEach((function(e,r){if(n){var s={};a.forEach((function(r,n){t[n].structureType&&"object"===t[n].structureType?s[r]=It(t[n].valueDef.isList,t[n].subControls,e[n],!0):void 0!==t.subControls?s[r]=It(t[n].valueDef.isList,t[n].subControls,e[n],!1):s[r]=void 0!==e[n]?e[n]:null})),i.push(s)}else{var o=[];e.forEach((function(e,r){var n=e;t[r].structureType&&"object"===t[r].structureType&&(n=It(t[r].valueDef.isList,t[r].subControls,e,!0)),o.push(n)})),i.push(o)}})),i}var s={};return a.forEach((function(e,t){s[e]=r&&void 0!==r[t]?r[t]:null})),s}function Rt(e,t,r){var n=gt(e),a=[];if(t&&-1!==n){var i,s=pt(t);try{for(s.s();!(i=s.n()).done;){var o=i.value,l=o;Array.isArray(o)?l=Ct(o[n],e):"object"===vt(o)&&(l=Ct(o,e)),a.push(l)}}catch(e){s.e(e)}finally{s.f()}}return a}function Ct(e,t,r){return"object"===vt(e)?t&&t.valueDef&&e.link_ref?r?e.field_name:e.link_ref+"."+e.field_name:null:e}function kt(e,t){return"object"===vt(e)&&e.link_ref?e.link_ref===t.schema&&e.field_name===t.origName:e===t.name}function Mt(e,t,r){if("column"===t.role&&"structure"===t.valueDef.propType){var n,a=pt(r.getDatasetMetadataFields());try{for(a.s();!(n=a.n()).done;){var i=n.value;if(i.name===e)return{link_ref:i.schema,field_name:i.origName}}}catch(e){a.e(e)}finally{a.f()}}return e}function Pt(e,t,r){var n,a=e.dmDefault;if(t){var i,s=pt(r);try{for(s.s();!(i=s.n()).done;){var o=i.value;if(o.name===t){switch(a){case"type":n=o.type;break;case"description":n=o.metadata.description;break;case"measure":n=Dt(o.metadata.measure,e.values);break;case"modeling_role":n=Dt(o.metadata.modeling_role,e.values)}break}}}catch(e){s.e(e)}finally{s.f()}}return n}function _t(e,t,r){var n,a=e.find((function(e){return e.origName===t}));switch(r){case"measure":if(!a)return K.MEASUREMENTS.EMPTY;switch(a.metadata.measure){case"range":n=K.MEASUREMENTS.SCALE;break;case"ordered_set":n=K.MEASUREMENTS.ORDINAL;break;case"discrete":n=K.MEASUREMENTS.DISCRETE;break;case"set":case"collection":case"geospatial":n=K.MEASUREMENTS.NOMINAL;break;case"flag":n=K.MEASUREMENTS.FLAG;break;default:n=K.MEASUREMENTS.EMPTY}break;case"type":if(!a)return"typeEmpty";switch(a.type){case H.DATE:n=H.DATE;break;case H.TIME:n=H.TIME;break;case H.TIMESTAMP:n=H.TIMESTAMP;break;case H.STRING:n=H.STRING;break;case H.INTEGER:n=H.INTEGER;break;case H.DOUBLE:n=H.DOUBLE;break;default:n="typeEmpty"}}return n}function Dt(e,t){var r=t.indexOf(e);if(r>-1)return t[r];var n,a=e.toLowerCase(),i=pt(t);try{for(i.s();!(n=i.n()).done;){var s=n.value;if(a===s.toLowerCase())return s}}catch(e){i.e(e)}finally{i.f()}var o,l=pt(t);try{for(l.s();!(o=l.n()).done;){var c=o.value;if(a.startsWith(c.substring(0,6).toLowerCase()))return c}}catch(e){l.e(e)}finally{l.f()}return e}function Ft(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,i=n(e);if(t){var s=n(this).constructor;r=Reflect.construct(i,arguments,s)}else r=i.apply(this,arguments);return a(this,r)}}var wt=function(n){r(s,n);var a=Ft(s);function s(){return e(this,s),a.apply(this,arguments)}return t(s,[{key:"render",value:function(){var e=this.props.tooltipText;"object"!==i(this.props.tooltipText)&&(e=String(this.props.tooltipText));var t=D.createElement("div",{className:"properties-tooltips"},e);return D.createElement("div",{className:"properties-truncated-tooltip"},D.createElement(B,{id:"".concat(j(),"-properties"),tip:t,direction:"bottom",className:"properties-tooltips",disable:!P(this.props,"disabled")||this.props.disabled,showToolTipIfTruncated:!0},this.props.content))}}]),s}(D.Component),Ut=wt;function jt(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return Bt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Bt(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,o=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){o=!0,i=e},f:function(){try{s||null==r.return||r.return()}finally{if(o)throw i}}}}function Bt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function xt(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,i=n(e);if(t){var s=n(this).constructor;r=Reflect.construct(i,arguments,s)}else r=i.apply(this,arguments);return a(this,r)}}var Gt=function(n){r(i,n);var a=xt(i);function i(t){var r;return e(this,i),(r=a.call(this,t)).state={fields:r.props.fields,origFields:r.props.fields,filterIcons:[],filterText:"",selectedFields:r.props.currentFields},r.multiSchema=t.controller.getDatasetMetadataSchemas()&&t.controller.getDatasetMetadataSchemas().length>1,r.filterList=[],r.filterType=r.filterType.bind(s(r)),r.getTableData=r.getTableData.bind(s(r)),r.getVisibleData=r.getVisibleData.bind(s(r)),r.handleSave=r.handleSave.bind(s(r)),r.handleCancel=r.handleCancel.bind(s(r)),r.handleReset=r.handleReset.bind(s(r)),r.getNewSelections=r.getNewSelections.bind(s(r)),r.onSort=r.onSort.bind(s(r)),r.onFilter=r.onFilter.bind(s(r)),r.updateFieldSelections=r.updateFieldSelections.bind(s(r)),r.filterList=r.getAvailableFilters(),r}return t(i,[{key:"onFilter",value:function(e){this.setState({filterText:e})}},{key:"onSort",value:function(e){var t=Array.from(this.state.fields);t=lt(t,(function(t){switch(e.column){case"fieldName":return t.origName;case"dataType":return t.type;case"schemaName":return t.schema;default:return null}})),e.direction===V.DESC&&t.reverse(),this.setState({fields:t})}},{key:"getAvailableFilters",value:function(){var e=[];for(var t in H)if(P(H,t)){var r,n=H[t],a=jt(this.props.fields);try{for(a.s();!(r=a.n()).done;){var i=r.value;if(n===i.type){var s,o={type:i.type},l=!1,c=jt(e);try{for(c.s();!(s=c.n()).done;){if(s.value.type===o.type){l=!0;break}}}catch(e){c.e(e)}finally{c.f()}l||e.push(o);break}}}catch(e){a.e(e)}finally{a.f()}}return e}},{key:"getTableData",value:function(){for(var e=this.getVisibleData(),t=[],r=this.state.selectedFields,n=[],a=function(t){var a=e.findIndex((function(e){return e.name===r[t]}));-1!==a&&n.push(a)},i=0;i<r.length;i++)a(i);for(var s=0;s<e.length;s++){var o=e[s],l=[],c=D.createElement("div",{className:"properties-fp-field"},D.createElement("div",{className:"properties-fp-field-name"},o.origName));if(this.props.dmIcon){var u=_t(this.props.controller.getDatasetMetadataFields(),o.origName,this.props.dmIcon),f=u?D.createElement(X,{type:u}):null,p=!0;o.origName&&(p=!1);var d=D.createElement("span",{className:"properties-fp-field-name"},o.origName),m=D.createElement(Ut,{content:d,tooltipText:o.origName,disabled:p});c=D.createElement("div",{className:"properties-fp-field"},D.createElement("div",{className:"properties-fp-field-type-icon"},f),m)}if(l.push({column:"fieldName",content:c,fieldName:o.origName}),this.multiSchema){var h=D.createElement("div",{className:"properties-fp-schema"},o.schema);l.push({column:"schemaName",content:h})}l.push({column:"dataType",content:D.createElement("div",{className:"properties-fp-data"},D.createElement("div",{className:"properties-fp-data-type-icon"},D.createElement(X,{type:o.type})),D.createElement("div",{className:"properties-fp-field-type"},o.type)),value:o.type}),t.push({className:"properties-fp-data-rows",columns:l})}return this.selectedRowsIndex=n,t}},{key:"getVisibleData",value:function(){var e=this;return this.state.fields.filter((function(t){return e.state.filterIcons.indexOf(t.type)<0})).filter((function(t){return void 0===e.state.filterText||null===e.state.filterText||t.origName.toLowerCase().indexOf(e.state.filterText.toLowerCase())>-1}))}},{key:"getNewSelections",value:function(){var e=[],t=this.props.currentFields;if(this.state.selectedFields)for(var r=0;r<this.state.selectedFields.length;r++)(null==t||t.indexOf(this.state.selectedFields[r])<0)&&e.push(r);return e}},{key:"handleSave",value:function(){this.props.closeFieldPicker(this.state.selectedFields,this.getNewSelections())}},{key:"handleCancel",value:function(){this.handleReset(),this.props.closeFieldPicker()}},{key:"updateFieldSelections",value:function(e){for(var t=this.getVisibleData(),r=Array.from(this.state.selectedFields),n=r.filter((function(n,a,i){var s=t.findIndex((function(e){return e.name===r[a]}));return-1===s||e.includes(s)})),a=0;a<e.length;a++){var i=t[e[a]];if(i&&!n.includes(i)){var s=i.name;n.push(s)}}n=Array.from(new Set(n)),this.setState({selectedFields:n})}},{key:"isFieldInList",value:function(e,t){return e.some((function(e){return e.name===t}))}},{key:"handleReset",value:function(){this.setState({selectedFields:this.props.currentFields,filterIcons:[],filterText:""})}},{key:"filterType",value:function(e){var t=e.currentTarget.getAttribute("data-type"),r=Array.from(this.state.filterIcons),n=r.indexOf(t);n<0?r.push(t):r.splice(n,1),this.setState({filterIcons:r})}},{key:"_genBackButton",value:function(){if(this.props.rightFlyout){var e=yt(this.props.controller.getReactIntl(),z.APPLYBUTTON_LABEL),t=yt(this.props.controller.getReactIntl(),z.REJECTBUTTON_LABEL);return D.createElement(Q,{okHandler:this.handleSave,cancelHandler:this.handleCancel,showPropertiesButtons:!0,applyLabel:e,rejectLabel:t})}var r=yt(this.props.controller.getReactIntl(),z.FIELDPICKER_SAVEBUTTON_TOOLTIP),n=j()+"-tooltip-fp",a=D.createElement("div",{className:"properties-tooltips"},r);return D.createElement("div",null,D.createElement(B,{id:n,tip:a,direction:"left",className:"properties-tooltips"},D.createElement("div",null,D.createElement(G,{className:"properties-fp-back-button",renderIcon:$,iconDescription:this.props.title,size:"small",kind:"primary",onClick:this.handleSave}),D.createElement("label",{className:"properties-fp-button-label"},this.props.title))))}},{key:"_genResetButton",value:function(){var e=yt(this.props.controller.getReactIntl(),z.FIELDPICKER_RESETBUTTON_LABEL);return D.createElement(G,{className:"properties-fp-reset-button-container",onClick:this.handleReset,renderIcon:Z,iconDescription:e,size:"small",kind:"ghost"},D.createElement("span",null,e))}},{key:"_genFilterTypes",value:function(){var e=this,t=yt(this.props.controller.getReactIntl(),z.FIELDPICKER_FILTER_LABEL),r=this.filterList.map((function(r,n){for(var a=!0,i=0;i<e.state.filterIcons.length;i++)if(r.type===e.state.filterIcons[i]){a=!1;break}var s=j()+"-tooltip-filters-"+n,o=yt(e.props.controller.getReactIntl(),z["FIELDPICKER_".concat(r.type.toUpperCase(),"_LABEL")]),l=D.createElement("div",{className:"properties-tooltips"},o);return D.createElement("li",{key:"filters"+n,className:"properties-fp-filter-list-li"},D.createElement("div",{className:"properties-tooltips-filter"},D.createElement(B,{id:s,tip:l,direction:"bottom",className:"properties-tooltips icon-tooltip",disable:_(r.type)},D.createElement(G,{className:"properties-fp-filter","data-type":r.type,onClick:e.filterType.bind(e),"aria-label":t+" "+r.type,kind:"ghost"},D.createElement(X,{type:r.type,disabled:!a})))))}));return D.createElement("ul",{className:"properties-fp-filter-list"},D.createElement("li",{className:"properties-fp-filter-list-title properties-fp-filter-list-li"},t),r)}},{key:"_genTable",value:function(){var e=yt(this.props.controller.getReactIntl(),z.FIELDPICKER_FIELDCOLUMN_LABEL),t=yt(this.props.controller.getReactIntl(),z.FIELDPICKER_SCHEMACOLUMN_LABEL),r=yt(this.props.controller.getReactIntl(),z.FIELDPICKER_DATATYPECOLUMN_LABEL),n=[];n.push({key:"fieldName",label:e}),this.multiSchema&&n.push({key:"schemaName",label:t}),n.push({key:"dataType",label:r});var a=this.getTableData();return D.createElement(U,{className:"properties-fp-table",sortable:["fieldName","schemaName","dataType"],filterable:["fieldName"],onFilter:this.onFilter,columns:n,data:a,onSort:this.onSort,filterKeyword:this.state.filterText,scrollKey:"field-picker",rows:-1,tableLabel:this.props.title?this.props.title:"",selectedRows:this.selectedRowsIndex,updateRowSelections:this.updateFieldSelections,rowSelection:W.MULTIPLE,light:this.props.controller.getLight()})}},{key:"render",value:function(){var e=this._genBackButton(),t=this._genResetButton(),r=this._genFilterTypes(),n=this._genTable();return this.props.rightFlyout?D.createElement("div",null,D.createElement("div",{className:"properties-fp-top-row"},r,t),n,e):D.createElement("div",null,D.createElement("div",{className:"properties-fp-top-row"},e,t),r,n)}}],[{key:"getDerivedStateFromProps",value:function(e,t){if(!ae(e.fields,t.origFields)){var r=t.selectedFields;return e.currentFields&&(ae(Object.keys(e.currentFields),Object.keys(t.selectedFields))||(r=e.currentFields)),{fields:e.fields,selectedFields:r,origFields:e.fields}}return{}}}]),i}(D.Component),Yt=Gt;export{ue as C,se as E,Yt as F,le as G,ie as I,me as O,Q as P,oe as S,pe as T,at as _,fe as a,lt as b,Rt as c,de as d,Tt as e,yt as f,gt as g,re as h,ce as i,Et as j,ae as k,ft as l,Ut as m,we as n,Mt as o,_t as p,xe as q,Pt as r,Ct as s,vt as t,kt as u,At as v,Ot as w,It as x,bt as y,Lt as z};
|
|
2
|
-
//# sourceMappingURL=index-567978da.js.map
|