@elyra/canvas 13.41.0 → 13.41.1
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/{common-canvas-faa1c8f9.js → common-canvas-614f599a.js} +2 -2
- package/dist/{common-canvas-faa1c8f9.js.map → common-canvas-614f599a.js.map} +1 -1
- package/dist/{common-canvas-91cd796c.js → common-canvas-63cf169d.js} +2 -2
- package/dist/{common-canvas-91cd796c.js.map → common-canvas-63cf169d.js.map} +1 -1
- package/dist/common-canvas.es.js +1 -1
- package/dist/common-canvas.js +1 -1
- package/dist/common-properties-9cf649aa.js +2 -0
- package/dist/common-properties-9cf649aa.js.map +1 -0
- package/dist/common-properties-dcfb5ebe.js +2 -0
- package/dist/common-properties-dcfb5ebe.js.map +1 -0
- package/dist/flexible-table-4463a683.js +2 -0
- package/dist/flexible-table-4463a683.js.map +1 -0
- package/dist/{flexible-table-2cf782bc.js → flexible-table-e75a6d5b.js} +2 -2
- package/dist/flexible-table-e75a6d5b.js.map +1 -0
- package/dist/{index-0b2515f9.js → index-355fd3e1.js} +2 -2
- package/dist/{index-0b2515f9.js.map → index-355fd3e1.js.map} +1 -1
- package/dist/{index-27371669.js → index-4f11af02.js} +2 -2
- package/dist/{index-27371669.js.map → index-4f11af02.js.map} +1 -1
- package/dist/lib/canvas.es.js +1 -1
- package/dist/lib/canvas.js +1 -1
- package/dist/lib/properties/field-picker.es.js +1 -1
- package/dist/lib/properties/field-picker.js +1 -1
- package/dist/lib/properties/flexible-table.es.js +1 -1
- package/dist/lib/properties/flexible-table.js +1 -1
- package/dist/lib/properties.es.js +1 -1
- package/dist/lib/properties.js +1 -1
- package/dist/styles/common-canvas.min.css +1 -1
- package/dist/{toolbar-cd90b048.js → toolbar-23100028.js} +2 -2
- package/dist/{toolbar-cd90b048.js.map → toolbar-23100028.js.map} +1 -1
- package/dist/{toolbar-43e63291.js → toolbar-9f98432a.js} +2 -2
- package/dist/{toolbar-43e63291.js.map → toolbar-9f98432a.js.map} +1 -1
- package/package.json +2 -2
- package/src/command-actions/commonPropertiesAction.js +10 -4
- package/src/common-properties/components/virtualized-grid/virtualized-grid.jsx +16 -8
- package/src/toolbar/toolbar-sub-menu-item.jsx +11 -13
- package/src/toolbar/toolbar.scss +1 -1
- package/stats.html +1 -1
- package/dist/common-properties-02756e6a.js +0 -2
- package/dist/common-properties-02756e6a.js.map +0 -1
- package/dist/common-properties-d054dfb5.js +0 -2
- package/dist/common-properties-d054dfb5.js.map +0 -1
- package/dist/flexible-table-1cf1378f.js +0 -2
- package/dist/flexible-table-1cf1378f.js.map +0 -1
- package/dist/flexible-table-2cf782bc.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{_ as e,b as t,a as r}from"./createClass-a140e270.js";import{_ as o,a as l,b as i}from"./inherits-860188e5.js";import{l as s,u as a,j as n,v as c,i as d,f as p,g as u,h,a as b,m}from"./isArrayLikeObject-78364f29.js";import{m as f,i as v,n as w,h as g,l as y,c as k}from"./common-canvas-utils-99c8d7d1.js";import x,{useState as R,useRef as S,useEffect as C}from"react";import{injectIntl as E}from"react-intl";import{Checkbox as T,Loading as I,Layer as N,Search as H}from"@carbon/react";import{t as O,c as z,R as M,I as A,z as D,B as L,F as W,G as _,_ as B,H as P,J as K,S as F,r as j,K as G,L as V,O as U,N as q}from"./toInteger-78279fd2.js";import{useReactTable as X,getCoreRowModel as Y}from"@tanstack/react-table";import{useVirtualizer as J}from"@tanstack/react-virtual";import $ from"./lib/tooltip.es.js";import{K as Q}from"./keyboard-utils-f42d2d2b.js";import{AutoSizer as Z,Table as ee,Column as te}from"react-virtualized";import re from"react-draggable";import{v4 as oe}from"uuid";var le={"subPanel.button.tooltip":"Edit","structureListEditor.addButton.label":"Add value","structureTable.addButton.label":"Add columns","fieldPicker.saveButton.label":"Select Fields for","fieldPicker.saveButton.modal.label":"Save and continue","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","table.sort.column.label":"Sort by {column_name}","summary.longTable.placeholder":"More than ten fields...","alerts.tab.title":"Alerts","title.editor.label":"edit title","title.editor.helpButton.label":"Help","title.editor.descButton.label":"Heading additional information","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 enter a value for {label}.","datetime.format.error":"Invalid {role}. Format should be {format}.","invalid.field.error":"Invalid {label}, field not found in data set.","invalid.number.error":"Number is not valid.","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.fields.empty.table.label":"No fields found","expression.values.empty.table.label":"No values found","expression.functions.table.label":"Functions table","expression.fields.dropdown":"Fields","expression.functions.dropdown":"General Functions","expression.add.column":"Add","expression.fields.title":"Fields","expression.values.title":"Values","expression.field.column":"Field","expression.field.column.description":"","expression.storage.column":"Storage","expression.value.column":"Value","expression.value.column.description":"","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.minimize.label":"Minimize","expression.max.label":"Max","expression.maximize.label":"Maximize","toggle.on.label":"On","toggle.off.label":"Off","passwordShow.tooltip":"Show password","passwordHide.tooltip":"Hide password","expression.no.functions":"No functions found.","single.selected.row.label":"item selected","multi.selected.row.label":"items selected","single.selected.row.label.small.flyout":"item","multi.selected.row.label.small.flyout":"items","multi.select.edit.subpanel.title":"Update selected rows","datetimefield.format.error.message":"Invalid format object provided. Check input definitions.","datepickerRangeStart.default.label":"Start","datepickerRangeEnd.default.label":"End","editorform.group.type.error":"(Unknown group type '{group.groupType()}')","table.toolbar.button.top":"Move row(s) to top","table.toolbar.button.up":"Move row(s) up one position","table.toolbar.button.down":"Move row(s) down one position","table.toolbar.button.bottom":"Move row(s) to bottom","table.toolbar.button.delete":"Delete","table.toolbar.button.edit":"Edit","table.toolbar.button.cancel":"Cancel","table.toolbar.overflow.label":"Table toolbar overflow","table.toolbar.label":"Table toolbar for {table_label}","radiobuttongroup.aria.label":"Radio button group","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":"{label} Properties","properties.error.label":"Error in 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}"',"label.indicator.required":"(required)","label.indicator.optional":"(optional)","slider.numberInput.label":"Slider number input","editorForm.tabList.label":"Primary Tabs","subTabs.tabList.label":"Tab List","table.deleteIcon.tooltip":"Delete","action.button.icon":"Action button icon"},ie=f,se=v,ae=w;var ne=function(e){return"string"==typeof e||!se(e)&&ae(e)&&"[object String]"==ie(e)};function ce(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(ce=function(){return!!e})()}var de=function(s){function a(){return r(this,a),e=this,o=arguments,t=l(t=a),i(e,ce()?Reflect.construct(t,o||[],l(e).constructor):t.apply(e,o));var e,t,o}return o(a,s),e(a,[{key:"render",value:function(){var e=this,r=this.props.tooltipText,o=this.props.truncatedRef;"object"!==t(this.props.tooltipText)&&(r=String(this.props.tooltipText)),this.props.content&&this.props.content.type===T&&this.tooltipRef&&this.tooltipRef.firstChild&&(o=this.tooltipRef.firstChild.lastChild.previousSibling);var l=x.createElement("div",{className:"properties-tooltips"},r);return x.createElement("div",{className:"properties-truncated-tooltip"},x.createElement($,{id:"properties",tip:l,direction:"bottom",className:"properties-tooltips",disable:!g(this.props,"disabled")||this.props.disabled,showToolTipIfTruncated:!0,truncatedRef:o},x.createElement("div",{ref:function(t){return e.tooltipRef=t}},this.props.content)))}}])}(x.Component),pe=de;function ue(){return ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)({}).hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},ue.apply(null,arguments)}var he=y;var be=function(e,t){return he(t,function(t){return e[t]})},me=s;var fe=a,ve=n,we=ne,ge=O,ye=function(e){return null==e?[]:be(e,me(e))},ke=Math.max;var xe=function(e,t,r,o){e=ve(e)?e:ye(e),r=r&&!o?ge(r):0;var l=e.length;return r<0&&(r=ke(l+r,0)),we(e)?r<=l&&e.indexOf(t,r)>-1:!!l&&fe(e,t,r)>-1},Re=function(e){var t=R([]),r=c(t,2),o=r[0],l=r[1],i=R(!1),s=c(i,2),a=s[0],n=s[1],p=R(!1),u=c(p,2),h=u[0],b=u[1],m=R(!1),f=c(m,2),v=f[0],w=f[1],g=R(d(e.rowsSelected)?null:e.rowsSelected.slice(-1).pop()),y=c(g,2),k=y[0],E=y[1],I=S(null),N=J({count:e.rowCount,getScrollElement:function(){return I.current},estimateSize:function(){return 32},overscan:3}),H=J({count:e.columns.length,getScrollElement:function(){return I.current},estimateSize:function(t){return e.columns[t].width||120},horizontal:!0,overscan:3}),O=x.useMemo(function(){var t=[];return e.columns.forEach(function(r,o){var l={accessorFn:function(e){var t;return null===(t=e.columns.find(function(e){return e.column===r.key}))||void 0===t?void 0:t.content},header:r.label,size:r.width,id:r.key,enableResizing:r.resizable,enableSorting:e.onSort&&xe(e.sortColumns,r.key)};t.push(l)}),t},[e.columns]),_=X({data:e.data,columns:O,defaultColumn:{size:120},state:{sorting:o},sortDescFirst:!1,onSortingChange:l,columnResizeMode:"onChange",getCoreRowModel:Y(),enableSortingRemoval:!1}),B=x.useMemo(function(){var e=H.getMeasurements(),t=_.getLeafHeaders(),r={};return t.forEach(function(t,o){r[o]=t.column.getSize(),e[o].size!==r[o]&&H.resizeItem(o,r[o])}),r},[_.getState().columnSizingInfo,O,e.excessWidth]);C(function(){e.onSort&&_.getState().sorting.length>0&&e.onSort(_.getState().sorting[0].id,_.getState().sorting[0].desc)},[_.getState().sorting]),C(function(){if(void 0!==e.scrollToIndex){var t=N.getVirtualItems().map(function(e){return e.index}),r=xe(t,e.scrollToIndex),o=function(){N.scrollToIndex(e.scrollToIndex,{align:"start"}),requestAnimationFrame(function(){requestAnimationFrame(function(){t=N.getVirtualItems().map(function(e){return e.index}),(r=xe(t,e.scrollToIndex))||o()})})};r?N.scrollToIndex(e.scrollToIndex,{align:"center"}):o()}},[e.scrollToIndex]);var P,K,F,j,G,V,U,q,Z=x.useMemo(function(){if(void 0===e.columns||0===e.columns.length)return 0;for(var t=0;t<e.columns.length;t++)if("index"!==e.columns[t].operation)return t;return 0},[e.columns]),ee=function(t){e.readOnly||("mouseenter"!==t.type||v?"mouseleave"===t.type&&h?(b(!1),n(!1)):"focus"!==t.type||h?"blur"===t.type&&v&&(w(!1),n(!1)):(w(!0),n(!0)):(b(!0),n(!0)))},te=function(t,r,o,l){if("cds--select-option"===t.target.className)t.stopPropagation();else if(void 0!==l||e.rowSelection===M.SINGLE){var i=null!=l?l:!oe(o.originalRowIndex);"function"==typeof e.setRowsSelected&&(e.setRowsSelected({index:r,originalRowIndex:o.originalRowIndex,selected:i,isOverSelectOption:a,selectMultipleRows:!!t.shiftKey&&t.shiftKey,lastCheckedRow:null===k?0:k},t),E(o.originalRowIndex))}},re=function(t,r,o){e.onRowDoubleClick&&e.onRowDoubleClick(t,r,o)},oe=function(t){return!!e.rowsSelected&&e.rowsSelected.indexOf(t)>-1},ie=function(t,r){var o=r.checked;r.id,e.setAllRowsSelected(o)};return x.createElement("div",{ref:I,className:z("properties-tanstack-grid properties-vt",{disabled:e.tableDisabled})},x.createElement("table",{"aria-label":e.tableLabel?e.tableLabel:"",className:z("properties-autosized-vt",{"properties-vt-single-selection":e.rowSelection&&e.rowSelection===M.SINGLE},{"properties-light-disabled":!e.light})},e.showHeader?(q=_.getHeaderGroups(),x.createElement("thead",{className:"properties-grid-header"},q.map(function(t){var r,o,l=H.getVirtualItems(),i=l.length>1?[l[0].start,H.getTotalSize()-l[l.length-1].end]:[0,0],s=c(i,2),a=s[0],n=s[1]+e.excessWidth;return x.createElement("tr",{className:"properties-vt-row-class",key:"canvas-grid-header-row-0","data-role":"properties-header-row"},x.createElement("th",{key:"properties-grid-fake-col-row-0-start",className:"properties-grid-fake-col",style:{width:"".concat(a,"px")}}),(r=void 0===e.columns||0===e.columns.length?"":e.columns[Z].headerLabel,o=e.intl.formatMessage({id:"virtualizedTable.header.checkbox.label",defaultMessage:le["virtualizedTable.header.checkbox.label"]},{header_checkbox_label:r}),e.selectable&&e.rowSelection!==M.SINGLE?x.createElement("th",{className:"properties-vt-column properties-vt-header-checkbox"},x.createElement(T,{id:"properties-vt-hd-cb-".concat(e.scrollKey),onChange:ie,checked:e.checkedAll,labelText:o,hideLabel:!0,readOnly:e.readOnly,disabled:e.tableDisabled})):""),l.map(function(r){var o=t.headers[r.index],l=e.columns[r.index],i=l.label,s="string"==typeof i?x.createElement("span",null,i):i,a=d(l.description)?null:x.createElement("div",{className:"properties-vt-info-icon-tip"},x.createElement($,{id:"properties-tooltip-info",tip:l.description,direction:"bottom",className:"properties-tooltips",showToolTipOnClick:!0},x.createElement(A,{className:"properties-vt-info-icon"}))),n=xe(e.sortColumns,l.key),c=null;c=n?"asc"===o.column.getIsSorted()?x.createElement(D,{className:"properties-ft-column-sort-icon asc"}):"desc"===o.column.getIsSorted()?x.createElement(L,{className:"properties-ft-column-sort-icon desc"}):x.createElement(W,{className:"properties-ft-column-sort-icon default"}):null;var p=null;n&&(p=x.createElement("div",{className:"properties-vt-header-sort-icon",disabled:!n,tabIndex:c?0:null,role:c?"button":null,"aria-label":c?e.intl.formatMessage({id:"table.sort.column.label"},{column_name:i}):null,onKeyDown:c?function(e){Q.spaceKey(e)&&o.column.getToggleSortingHandler()(e)}:null,onClick:o.column.getToggleSortingHandler()},c));var u=x.createElement("div",{className:"properties-vt-label-tip-icon"},x.createElement(pe,{tooltipText:i,content:s,disabled:l.disabled}),a),h=l.resizable?x.createElement("div",{className:z("properties-vt-header-resize",{resizing:o.column.getIsResizing()}),onMouseDown:o.getResizeHandler(),onTouchStart:o.getResizeHandler(),role:"button",tabIndex:"0","aria-label":"Resize column"}):null;return x.createElement("th",{key:"properties-grid-".concat(o.id),className:z("properties-autosized-vt-header sticky-row properties-vt-column properties-tooltips-container",{"properties-vt-column-with-resize":l.resizable},{"properties-vt-column-sortable":n},{"sort-column-active":n&&("asc"===o.column.getIsSorted()||"desc"===o.column.getIsSorted())}),style:{width:Math.max(B[r.index],l.width)},onClick:o.column.getToggleSortingHandler(),"aria-label":i,"data-id":"properties-vt-header-".concat(l.key)},u,p,h)}),x.createElement("th",{key:"properties-grid-fake-col-row-0-end",className:"properties-grid-fake-col",style:{width:"".concat(n,"px")}}))}))):null,(P=_.getRowModel().rows,K=N.getVirtualItems(),F=H.getVirtualItems(),j=F.length>1?[F[0].start,H.getTotalSize()-F[F.length-1].end]:[0,0],G=c(j,2),V=G[0],U=G[1]+e.excessWidth,x.createElement("tbody",{key:"properties-grid-body-key",className:"properties-grid-body",style:{height:"".concat(N.getTotalSize(),"px")}},K.map(function(t){var r=P[t.index],o=e.getOriginalRowIndex(r.original,t.index),l=r.getVisibleCells(),i=F.map(function(r){var o=l[r.index];return x.createElement("td",{key:"properties-grid-row-".concat(t.index,"-").concat(r.index),className:z("properties-grid-body-row-cell"),style:{minHeight:32,width:Math.max(B[r.index],e.columns[r.index].width)}},o.getValue())});i.originalRowIndex=o;var s=oe(i.originalRowIndex),a="boolean"==typeof r.original.disabled&&r.original.disabled;return i.disabled=a,x.createElement("tr",{key:"properties-grid-body-row-".concat(t.index,"}"),"data-id":"".concat(e.scrollKey,"-").concat(o),className:z("properties-grid-body-row properties-vt-row-class properties-vt-double-click",{"properties-vt-row-selected":s},{"properties-vt-row-disabled":a},{"properties-vt-row-non-interactive":!e.selectable}),"data-role":"properties-data-row",style:{transform:"translateY(".concat(t.start,"px)")},onMouseDown:function(e){return te(e,t.index,i)},onDoubleClick:function(e){return re(e,r.original.rowKey,t.index)}},x.createElement("td",{key:"properties-grid-body-row-".concat(t.index,"-fake-col-start"),className:"properties-grid-fake-col",style:{width:"".concat(V,"px")}}),function(t,r){if(e.summaryTable)return x.createElement("div",{className:"properties-vt-row-checkbox"});var o="";if(e.selectable&&e.rowSelection!==M.SINGLE){var l=oe(r.originalRowIndex),i="boolean"==typeof r.disabled&&r.disabled,s=e.intl.formatMessage({id:"virtualizedTable.row.checkbox.label",defaultMessage:le["virtualizedTable.row.checkbox.label"]},{row_index:t+1,table_label:e.tableLabel?e.tableLabel:""});o=x.createElement("td",{className:"properties-vt-row-checkbox",onMouseEnter:function(e){return ee(e)},onMouseLeave:function(e){return ee(e)},onFocus:function(e){return ee(e)},onBlur:function(e){return ee(e)}},x.createElement(T,{id:"properties-vt-row-cb-".concat(e.scrollKey,"-").concat(t),key:"properties-vt-row-cb-".concat(e.scrollKey,"-").concat(t),labelText:s,hideLabel:!0,checked:l,disabled:i||e.tableDisabled,readOnly:e.readOnly,onChange:function(e,o){return te(e.nativeEvent,t,r,o.checked)}}))}return o}(t.index,i),i,x.createElement("td",{key:"properties-grid-body-row-".concat(t.index,"-fake-col-end"),className:"properties-grid-fake-col",style:{width:"".concat(U,"px")}}))})))))};Re.defaultProps={disableHeader:!1};var Se=E(Re),Ce=k,Ee=_,Te=B;var Ie=function(e,t){var r={};return t=Te(t),Ee(e,function(e,o,l){Ce(r,o,t(e,o,l))}),r},Ne=u,He=h,Oe=B,ze=b,Me=m,Ae=p(function(e,t){var r=Me(t);return ze(r)&&(r=void 0),ze(e)?Ne(e,He(t,1,ze,!0),Oe(r)):[]}),De=Ae;function Le(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Le=function(){return!!e})()}var We=function(t){function s(e,t){var o,a,n,c;return r(this,s),a=this,c=[e,t],n=l(n=s),(o=i(a,Le()?Reflect.construct(n,c||[],l(a).constructor):n.apply(a,c))).state={rowCount:o.props.rowCount,columns:o.props.columns,columnResized:!1},o.virtualizedTableRef=x.createRef(),o.lastChecked=d(e.rowsSelected)?null:e.rowsSelected.slice(-1).pop(),o.isOverSelectOption=!1,o.mouseEventCalled=!1,o.keyBoardEventCalled=!1,o.cellRenderer=o.cellRenderer.bind(o),o.selectAll=o.selectAll.bind(o),o.headerRowRenderer=o.headerRowRenderer.bind(o),o.headerColRenderer=o.headerColRenderer.bind(o),o.onRowClick=o.onRowClick.bind(o),o.overSelectOption=o.overSelectOption.bind(o),o.resizeColumn=o.resizeColumn.bind(o),o.uuid=oe(),o}return o(s,t),e(s,[{key:"componentDidUpdate",value:function(){"function"==typeof this.props.rowHeight&&this.recomputeRowHeights()}},{key:"onRowClick",value:function(e,t,r){if("cds--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,selectMultipleRows:!!e.shiftKey&&e.shiftKey,lastCheckedRow:null===this.lastChecked?0:this.lastChecked},e),this.lastChecked=t.index)}}},{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:"getColumnIndex",value:function(e,t){return e.findIndex(function(e){return e.key===t})}},{key:"getColumnWiseDeltas",value:function(e,t){var r={};if(e.length>0){e.sort(function(e,t){return e.width-t.width});for(var o=t,l=0;l<e.length;l++){var i=e.slice(l).reduce(function(e,t){return e+t.width},0),s=Math.round(e[l].width*o/i);e[l].headerLabel.length>0&&e[l].width-s<P?s=e[l].width-P:e[l].width-s<K&&(s=e[l].width-K),o-=s,r[e[l].key]=s}if(o>0)return Ie(r,function(){return 0})}return r}},{key:"isRowSelected",value:function(e){return!!this.props.rowsSelected&&this.props.rowsSelected.indexOf(e)>-1}},{key:"isLastColumn",value:function(e){var t=this.getColumnIndex(this.props.columns,e)===this.props.columns.length-1;return t}},{key:"selectAll",value:function(e,t){var r=t.checked;t.id,this.props.setAllRowsSelected(r)}},{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?"":x.createElement("div",{dangerouslySetInnerHTML:{__html:t}})}},{key:"recomputeRowHeights",value:function(e){this.virtualizedTableRef&&this.virtualizedTableRef.current&&this.virtualizedTableRef.current.recomputeRowHeights(e)}},{key:"headerRowRenderer",value:function(e,t){var r=t.className,o=t.columns,l=t.style,i=void 0===this.props.columns||0===this.props.columns.length?0:this.getCheckboxLabelColumnIndex(this.props.columns),s=void 0===this.props.columns||0===this.props.columns.length?"":this.props.columns[i].headerLabel,a=this.props.intl.formatMessage({id:"virtualizedTable.header.checkbox.label",defaultMessage:le["virtualizedTable.header.checkbox.label"]},{header_checkbox_label:s}),n=this.props.selectable&&this.props.rowSelection!==M.SINGLE?x.createElement("div",{role:"checkbox","aria-checked":this.props.checkedAll,className:"properties-vt-header-checkbox"},x.createElement(T,{id:"properties-vt-hd-cb-".concat(this.uuid,"-").concat(e),onChange:this.selectAll,checked:this.props.checkedAll,labelText:a,hideLabel:!0,readOnly:this.props.readOnly})):"";return x.createElement("div",{className:r,"data-role":"properties-header-row",role:"row",style:l},n,o)}},{key:"headerColRenderer",value:function(e){var t=this,r=e.columnData,o=e.dataKey,l=e.disableSort,i=e.label;e.sortBy,e.sortDirection;var s=null;if(void 0!==this.props.sortColumns[o]){var a=null;switch(this.props.sortColumns[o]){case j.ASC:a=x.createElement(D,{disabled:this.props.tableState===F.DISABLED});break;case j.DESC:a=x.createElement(L,{disabled:this.props.tableState===F.DISABLED});break;default:a=x.createElement(W,{disabled:this.props.tableState===F.DISABLED})}s=x.createElement("span",{className:"properties-ft-column-sort-icon"},a)}var n=d(r.description)?null:x.createElement("div",{className:"properties-vt-info-icon-tip"},x.createElement($,{id:"properties-tooltip-info",tip:r.description,direction:"bottom",className:"properties-tooltips",showToolTipOnClick:!0},x.createElement(A,{className:"properties-vt-info-icon"}))),c=r.resizable&&!this.isLastColumn(o)?x.createElement(re,{axis:"x",defaultClassName:"properties-vt-header-resize",defaultClassNameDragging:"properties-vt-header-resize-active",onDrag:function(e,r){var l=r.deltaX;t.resizeColumn({dataKey:o,deltaX:l})},position:{x:0},zIndex:999},x.createElement("div",{role:"button",tabIndex:"0","aria-label":"Resize column"})):"",p="string"==typeof i?x.createElement("span",null,i):i,u=x.createElement("div",{className:"properties-vt-label-tip-icon"},x.createElement(pe,{tooltipText:r.headerLabel,content:p,disabled:r.disabled}),n);return x.createElement("div",{"data-id":"properties-vt-header-".concat(o),className:z({"properties-vt-column-with-resize":""!==c,"properties-vt-column-without-resize":""===c})},x.createElement("div",{className:z("properties-vt-column properties-tooltips-container",{"sort-column-active":o===this.props.sortBy})},u,!1===l&&s),c)}},{key:"resizeColumn",value:function(e){var t=this,r=e.dataKey,o=e.deltaX;this.setState(function(e){var l=e.columns,i=t.getColumnIndex(l,r),s=l.slice(i+1).filter(function(e){return!e.staticWidth}).filter(function(e){return!(o>=0)||(e.headerLabel.length>0?e.width>P:e.width>K)}),a=t.getColumnWiseDeltas(s,o),n=Object.keys(a),c=Object.values(a).every(function(e){return 0===e});return l[i].width+o>P&&!d(a)&&!c&&(l[i].width+=o,n.forEach(function(e){var t=l.findIndex(function(t){return t.key===e});l[t].width-=a[e]})),{columnResized:!0,columns:l}})}},{key:"overSelectOption",value:function(e){this.props.readOnly||("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(e,t){var r=this,o=t.className,l=t.columns,i=t.index,s=t.key,a=t.rowData,n=t.style,c="",d=!1,p="boolean"==typeof a.disabled&&a.disabled;if("function"==typeof this.props.rowHeight&&0===this.props.rowHeight({index:i}))return null;if(this.props.selectable){var u=this.props.sortDirection?this.isRowSelected(a.index):this.isRowSelected(a.originalRowIndex);if(d=this.props.selectable&&u,this.props.rowSelection!==M.SINGLE){var h=this.props.intl.formatMessage({id:"virtualizedTable.row.checkbox.label",defaultMessage:le["virtualizedTable.row.checkbox.label"]},{row_index:i+1,table_label:this.props.tableLabel?this.props.tableLabel:""});c=x.createElement("div",{className:"properties-vt-row-checkbox",role:"gridcell",onMouseEnter:function(e){return r.overSelectOption(e)},onMouseLeave:function(e){return r.overSelectOption(e)},onFocus:function(e){return r.overSelectOption(e)},onBlur:function(e){return r.overSelectOption(e)},onKeyDown:function(e){"Space"!==e.key&&"Enter"!==e.key||r.onRowClick(e,a,i)}},x.createElement(T,{id:"properties-vt-row-cb-".concat(this.uuid,"-").concat(e,"-").concat(i),key:"properties-vt-row-cb-".concat(e,"-").concat(i),labelText:h,hideLabel:!0,checked:u,disabled:p,readOnly:this.props.readOnly}))}}if(this.props.summaryTable&&(c=x.createElement("div",{className:"properties-vt-row-checkbox"})),!0===a.loading)return x.createElement("div",{className:o,key:s,"data-role":"properties-loading-row",role:"row",style:n},x.createElement(I,{className:"properties-vt-small-loading",small:!0,withOverlay:!1}));var b=parseInt(n.width,10)+"px",m=Object.assign({},n,{width:b});return x.createElement("div",{style:{},key:s,className:"properties-vt-double-click",onDoubleClick:function(e){return r.onRowDoubleClick(e,a.rowKey,i)}},x.createElement("div",{className:z(o,{"properties-vt-row-selected":d},{"properties-vt-row-disabled":p},{"properties-vt-row-non-interactive":!this.props.selectable}),"data-role":"properties-data-row",role:"row",style:m,onMouseDown:function(e){return r.onRowClick(e,a,i)}},c,l))}},{key:"render",value:function(){var e=this;return x.createElement("div",{className:"properties-vt deprecated"},x.createElement("div",{className:z("properties-vt-autosizer",{"properties-vt-single-selection":this.props.rowSelection&&this.props.rowSelection===M.SINGLE,"properties-light-disabled":!this.props.light})},x.createElement(Z,null,function(t){var r=t.height,o=t.width;return x.createElement(ee,{ref:e.virtualizedTableRef,width:o||500,height:e.props.tableHeight||r||2e3,className:"properties-autosized-vt","aria-label":e.props.tableLabel?e.props.tableLabel:"",disableHeader:e.props.disableHeader,headerClassName:"properties-autosized-vt-header",headerHeight:32,headerRowRenderer:e.headerRowRenderer.bind(e,e.props.scrollKey),onHeaderClick:e.props.onHeaderClick,rowClassName:"properties-vt-row-class",rowHeight:e.props.rowHeight?e.props.rowHeight:32,rowCount:e.state.rowCount,rowGetter:e.props.rowGetter,rowRenderer:e.rowRenderer.bind(e,e.props.scrollKey),scrollToIndex:e.props.scrollToIndex,scrollToAlignment:e.props.scrollToAlignment,sort:e.props.onSort,sortDirection:e.props.sortDirection,tabIndex:-1},e.state.columns.map(function(t){return x.createElement(te,ue({key:t.key,label:t.label,dataKey:t.key,width:t.width,columnData:t,disableSort:void 0===e.props.sortColumns[t.key],cellRenderer:t.isHTML?e.cellRendererHTML:e.cellRenderer,headerRenderer:e.headerColRenderer},t.minWidth&&{minWidth:t.minWidth}))}))})))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var r={};e.rowCount!==t.rowCount&&(r.rowCount=e.rowCount);var o=t.columns.reduce(function(e,t){return t.width+e},0)!==e.columns.reduce(function(e,t){return t.width+e},0);return t.columnResized&&d(De(e.columns,t.columns,"headerLabel"))&&!o||(r.columns=e.columns),r}}])}(x.Component);We.defaultProps={disableHeader:!1};var _e=E(We);function Be(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Pe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pe(e,t):void 0}}(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 Pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o}function Ke(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Ke=function(){return!!e})()}var Fe=function(s){function a(e){var t,o,s,n;r(this,a),o=this,n=[e],s=l(s=a);var c={};if(void 0!==(t=i(o,Ke()?Reflect.construct(s,n||[],l(o).constructor):s.apply(o,n))).props.sortable)for(var d=0;d<t.props.sortable.length;d++){c[t.props.sortable[d]]=j.NOT_SORTED}return t.state={checkedAllRows:!1,columnSortDir:c,currentSortColumn:"",excessWidth:0,availableWidth:0,tableWidth:0,tableHeight:0,headerHeight:0,rows:void 0!==e.rows?e.rows:5.5,dynamicHeight:null},t.rowHeight=t.rowHeight.bind(t),t.rowGetter=t.rowGetter.bind(t),t.tableRef=x.createRef(),t.flexibleTableHeader=x.createRef(),t.getOriginalRowIndex=t.getOriginalRowIndex.bind(t),t.getLastChildPropertyIdRow=t.getLastChildPropertyIdRow.bind(t),t.calculateColumnWidths=t.calculateColumnWidths.bind(t),t.handleFilterChange=t.handleFilterChange.bind(t),t.onSortVT=t.onSortVT.bind(t),t.onSort=t.onSort.bind(t),t.sortHeaderClick=t.sortHeaderClick.bind(t),t._updateTableWidth=t._updateTableWidth.bind(t),t._updateRows=t._updateRows.bind(t),t._adjustTableHeight=t._adjustTableHeight.bind(t),t.updateHeaderHeight=t.updateHeaderHeight.bind(t),t.updateExcessWidth=t.updateExcessWidth.bind(t),t.handleCheckedRow=t.handleCheckedRow.bind(t),t.handleCheckedAllRows=t.handleCheckedAllRows.bind(t),t.handleCheckedMultipleRows=t.handleCheckedMultipleRows.bind(t),t}return o(a,s),e(a,[{key:"componentDidMount",value:function(){var e=this;this._updateTableWidth(this.tableRef.current.getBoundingClientRect(),this.tableRef.current),this.calculateColumnWidths(),this._adjustTableHeight(),this.headerObserver=new ResizeObserver(function(t){var r,o=Be(t);try{for(o.s();!(r=o.n()).done;){var l=r.value;e.updateHeaderHeight(l.contentRect)}}catch(e){o.e(e)}finally{o.f()}}),this.flexibleTableHeader.current&&this.headerObserver.observe(this.flexibleTableHeader.current),this.resizeObserver=new ResizeObserver(function(t){var r,o=Be(t);try{for(o.s();!(r=o.n()).done;){var l=r.value;e._updateTableWidth(l.contentRect,l.target)}}catch(e){o.e(e)}finally{o.f()}}),this.tableRef.current&&this.resizeObserver.observe(this.tableRef.current)}},{key:"componentDidUpdate",value:function(e,t){e.rows!==this.props.rows&&this._updateRows(),e.columns===this.props.columns&&e.noAutoSize===this.props.noAutoSize&&t.availableWidth===this.state.availableWidth||(this._adjustTableHeight(),this.calculateColumnWidths()),t.tableWidth===this.state.tableWidth&&t.availableWidth===this.state.availableWidth||this.updateExcessWidth(),this.props.selectedRows&&!d(this.props.data)&&this.setCheckedAll(this.props.selectedRows)}},{key:"componentWillUnmount",value:function(){var e,t;null===(e=this.headerObserver)||void 0===e||e.disconnect(),null===(t=this.resizeObserver)||void 0===t||t.disconnect()}},{key:"onSortVT",value:function(e){var t=e.sortBy;if(this.props.onSort){var r={column:t,direction:this.state.columnSortDir[t]===j.ASC?j.DESC:j.ASC};this.props.onSort(r)}}},{key:"onSort",value:function(e,t){if(this.props.onSort){var r={column:e,direction:!0===t?j.DESC:j.ASC};this.props.onSort(r)}}},{key:"getOriginalRowIndex",value:function(e,t){var r=t;return e.columns&&g(e.columns[0],"content.props.children.props.propertyId.propertyId")?r=this.getLastChildPropertyIdRow(e.columns[0].content.props.children.props.propertyId,t):e.columns&&g(e.columns[0],"content.props.children.props.propertyId.index")?r=e.columns[0].content.props.children.props.propertyId.index:e.columns&&g(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(){var e=this.props.columns,t=this.state.availableWidth-12;this.props.rowSelection!==M.SINGLE&&(t-=40);var r,o=t+9,l=e.length,i=0,s=Be(e);try{for(s.s();!(r=s.n()).done;){var a=r.value;a.width&&("string"==typeof a.width&&a.width.includes("px")?(t-=parseInt(a.width,10),l--):i=Math.max(i,a.width))}}catch(e){s.e(e)}finally{s.f()}var n,c=[],d=t>40*l?Math.floor(t/l):40,p=[],u=0,h=Be(e);try{for(h.s();!(n=h.n()).done;){var b=n.value;b.width&&!isNaN(b.width)?(p.push(b.width/i),u+=b.width/i):p.push(null)}}catch(e){h.e(e)}finally{h.f()}for(var m=t/u,f=0,v=0;v<e.length;v++){var w=e[v];if(w.width)if("string"==typeof w.width&&w.width.includes("px"))c.push(Math.floor(parseInt(w.width,10))+"px"),f+=parseInt(w.width,10);else{var g=Math.floor(p[v]*m);c.push(g+"px"),f+=g}else c.push(d),f+=d}if(f<o){var y=parseInt(c[0],10);c[0]=y+o-f+"px"}this.setState({columnWidths:c,tableWidth:f})}},{key:"updateHeaderHeight",value:function(e){this.state.headerHeight!==e.height&&this.setState({headerHeight:e.height})}},{key:"updateExcessWidth",value:function(){if(this.state.tableWidth>0&&this.state.tableWidth<this.state.availableWidth){var e=this.state.availableWidth-this.state.tableWidth-12;void 0!==this.props.updateRowSelections&&(e-=40),this.setState({excessWidth:e>0?e:0})}else 0!==this.state.excessWidth&&this.setState({excessWidth:0})}},{key:"_updateTableWidth",value:function(e,t){var r,o=this,l=Math.floor(null==t||null===(r=t.childNodes)||void 0===r||null===(r=r[0].childNodes)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.clientWidth)||e.width;this.state.availableWidth!==Math.floor(l-2)&&this.setState({availableWidth:Math.floor(l-2)},function(){return o.updateExcessWidth()})}},{key:"_updateRows",value:function(){var e=this;this.props.rows&&this.props.rows!==this.state.rows&&this.setState({rows:this.props.rows},function(){e._adjustTableHeight()})}},{key:"_adjustTableHeight",value:function(){if(!this.props.noAutoSize){var e=this.state.tableHeight,t=this.state.dynamicHeight;if(Array.isArray(this.props.data)&&this.props.data.length<this.state.rows)e=(G*this.props.data.length+V)*U;else if(this.state.rows>0)e=(G*this.state.rows+V)*U;else if(0===this.state.rows)e=V*U;else if(-1===this.state.rows&&this.flexibleTable){var r=this.findPropertyNodeHeight(this.flexibleTable,"properties-wf-children"),o=this.findPropertyNodeHeight(this.flexibleTable,"properties-primary-tab-panel");if(0===r&&0===o)e="100vh",t=-1;else{var l=0!==r?r:o;e="calc(".concat(l-this.state.headerHeight-50,"px - ").concat(3.5*U,"px)"),t=l-this.state.headerHeight-50-56}}e!==this.state.tableHeight&&this.setState({tableHeight:e,dynamicHeight:t})}}},{key:"findPropertyNodeHeight",value:function(e,t){if(e&&e.parentNode&&e.parentNode.className&&e.parentNode.className.includes(t)){var r=e.parentNode.getBoundingClientRect();return r?r.height:0}return e&&e.parentNode?this.findPropertyNodeHeight(e.parentNode,t):0}},{key:"sortHeaderClick",value:function(e){var t=e.dataKey,r=this.state.columnSortDir;void 0!==r[t]&&(Object.keys(r).forEach(function(e){e!==t&&(r[e]=j.NOT_SORTED)}),r[t]=r[t]===j.ASC?j.DESC:j.ASC,this.setState({columnSortDir:r,currentSortColumn:t}))}},{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:"handleCheckedMultipleRows",value:function(e,t,r){var o,l=this.props.selectedRows?this.props.selectedRows:[];return o=e<t?Array.from({length:t-e+1},function(t,r){return e+r}):Array.from({length:e-t+1},function(e,r){return t+r}),l=l.filter(function(e){return!o.includes(e)}),r&&(l=l.concat(o)),l}},{key:"handleCheckedRow",value:function(e,t){var r=e.originalRowIndex,o=e.index,l=e.selected,i=e.isOverSelectOption;if(!this.props.data[o].disabled&&"function"==typeof this.props.updateRowSelections)if(i){var s=this.props.selectedRows?this.props.selectedRows:[];e.selectMultipleRows?(s=this.handleCheckedMultipleRows(e.lastCheckedRow,o,l),this.setCheckedAll(s)):l?(s=s.concat(r),this.setCheckedAll(s)):s&&(s=s.filter(function(e){return e!==r}),this.setState({checkedAllRows:!1})),s.sort(function(e,t){return e-t}),this.props.updateRowSelections(s)}else this.props.rowSelection===M.SINGLE&&this.props.updateRowSelections(e.index,t,this.props.data[e.index].rowKey)}},{key:"generateTableHeaderRow",value:function(){for(var e=[],r="",o=0;o<this.props.columns.length;o++){var l,i,s=this.props.columns[o];void 0!==this.props.filterable&&this.props.filterable[0]===s.key&&(r=s.label);var a=Math.abs(parseInt(null!==(l=null===(i=this.state.columnWidths)||void 0===i?void 0:i[o])&&void 0!==l?l:40,10)),n=void 0;"object"===t(s.label)?n=s.label.props.labelText:"string"==typeof s.label&&(n=s.label),e.push({key:s.key,label:s.label,width:a,description:s.description,headerLabel:n,resizable:s.resizable,operation:s.operation,staticWidth:!!s.staticWidth&&s.staticWidth})}return{headers:e,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,q}},{key:"render",value:function(){var e=this,t=d(this.props.data)?x.createElement("div",{className:"properties-ft-empty-table"},this.props.emptyTablePlaceholder):null;if(0===this.props.columns.length)return x.createElement("div",{ref:this.tableRef},x.createElement("div",{className:"properties-ft-empty-table-header"}),t);var r=this.generateTableHeaderRow(),o=r.headers,l=r.searchLabel,i=this.props.tableState===F.DISABLED,s=null;if(void 0!==this.props.filterable&&0!==this.props.filterable.length){var a=void 0!==this.props.searchPlaceholder?this.props.searchPlaceholder:this.props.intl.formatMessage({id:"table.search.placeholder",defaultMessage:le["table.search.placeholder"]},{column_name:l}),n=this.props.intl.formatMessage({id:"table.search.label",defaultMessage:le["table.search.label"]},{table_name:this.props.tableLabel});s=x.createElement("div",{className:z("properties-ft-search-container",{disabled:i})},x.createElement(N,{level:this.props.light?1:0},x.createElement(H,{className:"properties-ft-search-text",placeholder:a,onChange:this.handleFilterChange,disabled:i,size:"sm",labelText:n})))}var c=-1;void 0!==this.props.scrollToRow&&null!==this.props.scrollToRow&&(c=this.props.scrollToRow);var p={};this.props.noAutoSize||(p={height:this.state.tableHeight});var u=this.props.showHeader?"properties-ft-container-absolute ":"properties-ft-container-absolute-noheader ",h=this.props.messageInfo?u:u+F.INFO,b=z("properties-ft-table-header",{"single-row-selection-table":this.props.rowSelection===M.SINGLE}),m=void 0!==this.props.topRightPanel&&null!==this.props.topRightPanel&&void 0===this.props.topRightPanel.props.className,f=s||this.props.topRightPanel?x.createElement("div",{className:b,ref:this.flexibleTableHeader},m?null:s,this.props.topRightPanel):null,v=z("properties-ft-control-container",{"properties-light-disabled":!this.props.light}),w=0;-1!==this.state.rows&&this.state.tableHeight?w=parseInt(this.state.tableHeight,10):-1===this.state.rows&&this.state.dynamicHeight&&-1!==this.state.dynamicHeight&&(w=this.state.dynamicHeight);return this.props.enableTanstackTable?x.createElement("div",{"data-id":"properties-ft-"+this.props.scrollKey,className:v,ref:function(t){return e.flexibleTable=t}},f,x.createElement("div",{className:"properties-ft-container-panel"},x.createElement("div",{className:z("properties-ft-container-wrapper",this.props.messageInfo?this.props.messageInfo.type:""),style:p,ref:this.tableRef},x.createElement("div",{className:h},x.createElement(Se,ue({data:this.props.data,tableLabel:this.props.tableLabel,excessWidth:this.state.excessWidth,columns:o,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,showHeader:this.props.showHeader,onRowDoubleClick:this.props.onRowDoubleClick,getOriginalRowIndex:this.getOriginalRowIndex,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.props.sortable,sortDirection:this.state.columnSortDir[this.state.currentSortColumn],tableDisabled:i,light:this.props.light,readOnly:this.props.readOnly},-1!==c&&{scrollToIndex:c}))))),t):x.createElement("div",{"data-id":"properties-ft-"+this.props.scrollKey,className:v,ref:function(t){return e.flexibleTable=t}},f,x.createElement("div",{className:"properties-ft-container-panel"},x.createElement("div",{className:z("properties-ft-container-wrapper",this.props.messageInfo?this.props.messageInfo.type:""),style:p,ref:this.tableRef},x.createElement("div",{className:h},x.createElement(_e,ue({tableLabel:this.props.tableLabel,tableHeight:w,columns:o,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.onSortVT,sortBy:this.state.currentSortColumn,sortColumns:this.state.columnSortDir,sortDirection:this.state.columnSortDir[this.state.currentSortColumn],tableState:this.props.tableState,light:this.props.light,readOnly:this.props.readOnly},-1!==c&&{scrollToIndex:c,scrollToAlignment:"center"}))))),t)}}])}(x.Component);Fe.defaultProps={showHeader:!0,light:!0,emptyTablePlaceholder:"",selectedRows:[],enableTanstackTable:!0};var je=E(Fe);export{je as F,pe as T,ue as _,ne as a,le as d,xe as i};
|
|
2
|
+
//# sourceMappingURL=flexible-table-4463a683.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flexible-table-4463a683.js","sources":["../node_modules/lodash/isString.js","../src/common-properties/components/truncated-content-tooltip/truncated-content-tooltip.jsx","../src/common-properties/components/truncated-content-tooltip/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/lodash/_baseValues.js","../node_modules/lodash/values.js","../node_modules/lodash/includes.js","../src/common-properties/components/virtualized-grid/virtualized-grid.jsx","../node_modules/lodash/mapValues.js","../node_modules/lodash/differenceBy.js","../src/common-properties/components/virtualized-table/virtualized-table.jsx","../src/common-properties/components/flexible-table/flexible-table.jsx"],"sourcesContent":["var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/*\n * Copyright 2017-2023 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport { has } from \"lodash\";\nimport { Checkbox } from \"@carbon/react\";\n\n// Reusable component to show tooltip if the content is truncated\nexport default class TruncatedContentTooltip extends React.Component {\n\n\trender() {\n\t\tlet tooltipText = this.props.tooltipText;\n\t\tlet truncatedRef = this.props.truncatedRef;\n\t\tif (typeof this.props.tooltipText !== \"object\") {\n\t\t\ttooltipText = String(this.props.tooltipText);\n\t\t}\n\t\tif (this.props.content && this.props.content.type === Checkbox && this.tooltipRef && this.tooltipRef.firstChild) {\n\t\t\ttruncatedRef = this.tooltipRef.firstChild.lastChild.previousSibling; // checkbox label is in div -> label -> span\n\t\t}\n\t\tconst tooltip = (\n\t\t\t<div className=\"properties-tooltips\">\n\t\t\t\t{tooltipText}\n\t\t\t</div>\n\t\t);\n\t\treturn (\n\t\t\t<div className=\"properties-truncated-tooltip\">\n\t\t\t\t<Tooltip\n\t\t\t\t\tid=\"properties\"\n\t\t\t\t\ttip={tooltip}\n\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t\tdisable={has(this.props, \"disabled\") ? this.props.disabled : true}\n\t\t\t\t\tshowToolTipIfTruncated\n\t\t\t\t\ttruncatedRef={truncatedRef}\n\t\t\t\t>\n\t\t\t\t\t<div ref={(ref) => (this.tooltipRef = ref)}>\n\t\t\t\t\t\t{this.props.content}\n\t\t\t\t\t</div>\n\t\t\t\t</Tooltip>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nTruncatedContentTooltip.propTypes = {\n\tcontent: PropTypes.element,\n\ttruncatedRef: PropTypes.object,\n\ttooltipText: PropTypes.oneOfType([\n\t\tPropTypes.string.isRequired,\n\t\tPropTypes.object.isRequired,\n\t\tPropTypes.number.isRequired,\n\t\tPropTypes.bool.isRequired,\n\t\tPropTypes.array.isRequired\n\t]),\n\tdisabled: PropTypes.bool\n};\n","/*\n * Copyright 2017-2023 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport TruncatedContentTooltip from \"./truncated-content-tooltip.jsx\";\nexport default TruncatedContentTooltip;\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","/*\n * Copyright 2025-2026 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 { getCoreRowModel, useReactTable } from \"@tanstack/react-table\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\n\nimport React, { useRef, useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { injectIntl } from \"react-intl\";\nimport { isEmpty, includes } from \"lodash\";\nimport { Checkbox } from \"@carbon/react\";\nimport { ArrowUp, ArrowDown, ArrowsVertical, Information } from \"@carbon/react/icons\";\n\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport TruncatedContentTooltip from \"../truncated-content-tooltip\";\nimport { ROW_SELECTION } from \"../../constants/constants.js\";\nimport KeyboardUtils from \"../../../common-canvas/keyboard-utils.js\";\n\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nimport classNames from \"classnames\";\n\n\nconst DEFAULT_COLUMN_WIDTH = 120;\nconst DEFAULT_ROW_HEIGHT = 32; // $spacing-07\n\nconst VirtualizedGrid = (props) => {\n\tconst [sorting, setSorting] = useState([]);\n\tconst [isOverSelectOption, setIsOverSelectOptionState] = useState(false);\n\tconst [mouseEventCalled, setMouseEventCalledState] = useState(false);\n\tconst [keyBoardEventCalled, setKeyBoardEventCalledState] = useState(false);\n\tconst [lastChecked, setLastCheckedState] = useState(isEmpty(props.rowsSelected) ? null : props.rowsSelected.slice(-1).pop());\n\n\tconst parentRef = useRef(null);\n\tconst rowVirtualizer = useVirtualizer({\n\t\tcount: props.rowCount,\n\t\tgetScrollElement: () => parentRef.current,\n\t\testimateSize: () => DEFAULT_ROW_HEIGHT,\n\t\toverscan: 3\n\t});\n\n\tconst columnVirtualizer = useVirtualizer({\n\t\tcount: props.columns.length,\n\t\tgetScrollElement: () => parentRef.current,\n\t\testimateSize: (colIdx) => props.columns[colIdx].width || DEFAULT_COLUMN_WIDTH,\n\t\thorizontal: true,\n\t\toverscan: 3\n\t});\n\n\tconst columns = React.useMemo(() => {\n\t\tconst colDefs = [];\n\t\tprops.columns.forEach((col, colIdx) => {\n\t\t\tconst columnDef = {\n\t\t\t\taccessorFn: (row) => row.columns.find((column) => column.column === col.key)?.content,\n\t\t\t\theader: col.label,\n\t\t\t\tsize: col.width,\n\t\t\t\tid: col.key,\n\t\t\t\tenableResizing: col.resizable,\n\t\t\t\tenableSorting: props.onSort && includes(props.sortColumns, col.key)\n\t\t\t};\n\t\t\tcolDefs.push(columnDef);\n\t\t});\n\t\treturn colDefs;\n\t}, [props.columns]);\n\n\tconst table = useReactTable({\n\t\tdata: props.data,\n\t\tcolumns,\n\t\tdefaultColumn: {\n\t\t\tsize: DEFAULT_COLUMN_WIDTH\n\t\t},\n\t\tstate: {\n\t\t\tsorting,\n\t\t},\n\t\tsortDescFirst: false,\n\t\tonSortingChange: setSorting,\n\t\tcolumnResizeMode: \"onChange\",\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tenableSortingRemoval: false // disable the ability to remove sorting on columns (always none -> asc -> desc -> asc)\n\t});\n\n\t// Calculate column sizes when changed from resizing\n\tconst colSizes = React.useMemo(() => {\n\t\tconst virtualizedItems = columnVirtualizer.getMeasurements();\n\t\tconst headers = table.getLeafHeaders();\n\t\tconst colSizeDefs = {};\n\t\theaders.forEach((header, idx) => {\n\t\t\tcolSizeDefs[idx] = header.column.getSize();\n\n\t\t\t// This is needed for scrolling smoothly\n\t\t\tif (virtualizedItems[idx].size !== colSizeDefs[idx]) {\n\t\t\t\tcolumnVirtualizer.resizeItem(idx, colSizeDefs[idx]);\n\t\t\t}\n\t\t});\n\t\treturn colSizeDefs;\n\t}, [table.getState().columnSizingInfo, columns, props.excessWidth]);\n\n\tuseEffect(() => {\n\t\tif (props.onSort && table.getState().sorting.length > 0) {\n\t\t\tprops.onSort(table.getState().sorting[0].id, table.getState().sorting[0].desc);\n\t\t}\n\t}, [table.getState().sorting]);\n\n\tuseEffect(() => {\n\t\tif (typeof props.scrollToIndex !== \"undefined\") {\n\t\t\tlet virtualRows = rowVirtualizer.getVirtualItems().map((vrow) => vrow.index);\n\t\t\tlet isVisible = includes(virtualRows, props.scrollToIndex);\n\n\t\t\t// https://github.com/TanStack/virtual/issues/216\n\t\t\tconst keepScrolling = () => {\n\t\t\t\trowVirtualizer.scrollToIndex(props.scrollToIndex, { align: \"start\" });\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tvirtualRows = rowVirtualizer.getVirtualItems().map((vrow) => vrow.index);\n\t\t\t\t\t\tisVisible = includes(virtualRows, props.scrollToIndex);\n\n\t\t\t\t\t\tif (!isVisible) {\n\t\t\t\t\t\t\tkeepScrolling();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (!isVisible) { // Keep scrolling until the row is in view\n\t\t\t\tkeepScrolling();\n\t\t\t} else {\n\t\t\t\trowVirtualizer.scrollToIndex(props.scrollToIndex, { align: \"center\" });\n\t\t\t}\n\t\t}\n\t}, [props.scrollToIndex]);\n\n\tconst checkboxLabelColumnIndex = React.useMemo(() => {\n\t\tif (typeof props.columns === \"undefined\" || props.columns.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\t// If 1st column is Index, use the next column for labeling\n\t\tfor (let i = 0; i < props.columns.length; i++) {\n\t\t\tif (props.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}, [props.columns]);\n\n\tconst renderHeaderCheckbox = () => {\n\t\tconst headerCheckboxLabel = (typeof props.columns === \"undefined\" || props.columns.length === 0) ? \"\" : props.columns[checkboxLabelColumnIndex].headerLabel;\n\t\tconst translatedHeaderCheckboxLabel = 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 = props.selectable && props.rowSelection !== ROW_SELECTION.SINGLE\n\t\t\t? (<th className=\"properties-vt-column properties-vt-header-checkbox\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tid={`properties-vt-hd-cb-${props.scrollKey}`}\n\t\t\t\t\tonChange={setAllRowsSelected}\n\t\t\t\t\tchecked={props.checkedAll}\n\t\t\t\t\tlabelText={translatedHeaderCheckboxLabel}\n\t\t\t\t\thideLabel\n\t\t\t\t\treadOnly={props.readOnly}\n\t\t\t\t\tdisabled={props.tableDisabled}\n\t\t\t\t/>\n\t\t\t</th>)\n\t\t\t: \"\";\n\t\treturn checkbox;\n\t};\n\n\tconst renderDataRowCheckbox = (rowIndex, rowData) => {\n\t\tif (props.summaryTable) {\n\t\t\treturn <div className=\"properties-vt-row-checkbox\" />;\n\t\t}\n\n\t\tlet selectOption = \"\";\n\t\tif (props.selectable && props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\tconst rowSelected = isRowSelected(rowData.originalRowIndex); // use current row index when Sorted\n\t\t\tconst rowDisabled = typeof rowData.disabled === \"boolean\" ? rowData.disabled : false;\n\t\t\tconst translatedRowCheckboxLabel = props.intl.formatMessage(\n\t\t\t\t{ id: \"virtualizedTable.row.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.row.checkbox.label\"] },\n\t\t\t\t{ row_index: rowIndex + 1, table_label: (props.tableLabel ? props.tableLabel : \"\") }\n\t\t\t);\n\n\t\t\tselectOption = (<td className=\"properties-vt-row-checkbox\"\n\t\t\t\tonMouseEnter={(evt) => overSelectOption(evt)}\n\t\t\t\tonMouseLeave={(evt) => overSelectOption(evt)}\n\t\t\t\tonFocus={(evt) => overSelectOption(evt)}\n\t\t\t\tonBlur={(evt) => overSelectOption(evt)}\n\t\t\t>\n\t\t\t\t<Checkbox\n\t\t\t\t\tid={`properties-vt-row-cb-${props.scrollKey}-${rowIndex}`}\n\t\t\t\t\tkey={`properties-vt-row-cb-${props.scrollKey}-${rowIndex}`}\n\t\t\t\t\tlabelText={translatedRowCheckboxLabel}\n\t\t\t\t\thideLabel\n\t\t\t\t\tchecked={rowSelected}\n\t\t\t\t\tdisabled={rowDisabled || props.tableDisabled}\n\t\t\t\t\treadOnly={props.readOnly}\n\t\t\t\t\tonChange={(evt, data) => onRowClick(evt.nativeEvent, rowIndex, rowData, data.checked)}\n\t\t\t\t/>\n\t\t\t</td>);\n\t\t}\n\t\treturn selectOption;\n\t};\n\n\tconst overSelectOption = (evt) => {\n\t\t// Incase of readonly table disable all events\n\t\tif (!props.readOnly) {\n\t\t\t// Differentiate between mouse and keyboard event\n\t\t\tif (evt.type === \"mouseenter\" && !keyBoardEventCalled) {\n\t\t\t\tsetMouseEventCalledState(true);\n\t\t\t\tsetIsOverSelectOptionState(true);\n\t\t\t} else if (evt.type === \"mouseleave\" && mouseEventCalled) {\n\t\t\t\tsetMouseEventCalledState(false);\n\t\t\t\tsetIsOverSelectOptionState(false);\n\t\t\t} else if (evt.type === \"focus\" && !mouseEventCalled) {\n\t\t\t\tsetKeyBoardEventCalledState(true);\n\t\t\t\tsetIsOverSelectOptionState(true);\n\t\t\t} else if (evt.type === \"blur\" && keyBoardEventCalled) {\n\t\t\t\tsetKeyBoardEventCalledState(false);\n\t\t\t\tsetIsOverSelectOptionState(false);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst tableHeader = (groups) => (<thead className=\"properties-grid-header\">\n\t\t{groups.map((headerGroup) => {\n\t\t\tconst columnItems = columnVirtualizer.getVirtualItems();\n\t\t\tconst [before, after] = columnItems.length > 1\n\t\t\t\t? [columnItems[0].start,\n\t\t\t\t\tcolumnVirtualizer.getTotalSize() - columnItems[columnItems.length - 1].end]\n\t\t\t\t: [0, 0];\n\t\t\tconst excess = after + props.excessWidth;\n\n\t\t\treturn (<tr className=\"properties-vt-row-class\" key=\"canvas-grid-header-row-0\" data-role=\"properties-header-row\">\n\t\t\t\t<th key=\"properties-grid-fake-col-row-0-start\" className=\"properties-grid-fake-col\" style={{ width: `${before}px` }} />\n\t\t\t\t{renderHeaderCheckbox()}\n\t\t\t\t{columnItems.map((virtualColumn) => {\n\t\t\t\t\tconst virtualHeader = headerGroup.headers[virtualColumn.index];\n\t\t\t\t\tconst header = props.columns[virtualColumn.index];\n\t\t\t\t\tconst headerLabel = header.label;\n\t\t\t\t\tconst headerDisplayLabel = typeof headerLabel === \"string\" ? (<span>{headerLabel}</span>) : headerLabel;\n\t\t\t\t\tconst infoIcon = isEmpty(header.description)\n\t\t\t\t\t\t? null\n\t\t\t\t\t\t: (<div className=\"properties-vt-info-icon-tip\">\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tid=\"properties-tooltip-info\"\n\t\t\t\t\t\t\t\ttip={header.description}\n\t\t\t\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t\t\t\t\tshowToolTipOnClick\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Information className=\"properties-vt-info-icon\" />\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t</div>);\n\t\t\t\t\tconst sortable = includes(props.sortColumns, header.key);\n\t\t\t\t\tlet sortIcon = null;\n\t\t\t\t\tif (!sortable) {\n\t\t\t\t\t\tsortIcon = null;\n\t\t\t\t\t} else if (virtualHeader.column.getIsSorted() === \"asc\") {\n\t\t\t\t\t\tsortIcon = <ArrowUp className=\"properties-ft-column-sort-icon asc\" />;\n\t\t\t\t\t} else if (virtualHeader.column.getIsSorted() === \"desc\") {\n\t\t\t\t\t\tsortIcon = <ArrowDown className=\"properties-ft-column-sort-icon desc\" />;\n\t\t\t\t\t} else { // false\n\t\t\t\t\t\tsortIcon = <ArrowsVertical className=\"properties-ft-column-sort-icon default\" />;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet headerSort = null;\n\t\t\t\t\tif (sortable) {\n\t\t\t\t\t\theaderSort = (<div\n\t\t\t\t\t\t\tclassName=\"properties-vt-header-sort-icon\"\n\t\t\t\t\t\t\tdisabled={!sortable}\n\t\t\t\t\t\t\ttabIndex={sortIcon ? 0 : null}\n\t\t\t\t\t\t\trole={sortIcon ? \"button\" : null}\n\t\t\t\t\t\t\taria-label={sortIcon ? props.intl.formatMessage(\n\t\t\t\t\t\t\t\t{ id: \"table.sort.column.label\" },\n\t\t\t\t\t\t\t\t{ column_name: headerLabel }\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\tonKeyDown={sortIcon ? (evt) => {\n\t\t\t\t\t\t\t\tif (KeyboardUtils.spaceKey(evt)) {\n\t\t\t\t\t\t\t\t\tvirtualHeader.column.getToggleSortingHandler()(evt);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} : null}\n\t\t\t\t\t\t\tonClick={virtualHeader.column.getToggleSortingHandler()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{sortIcon}\n\t\t\t\t\t\t</div>);\n\t\t\t\t\t}\n\t\t\t\t\tconst headerContentTooltip = (<div className=\"properties-vt-label-tip-icon\">\n\t\t\t\t\t\t<TruncatedContentTooltip\n\t\t\t\t\t\t\ttooltipText={headerLabel}\n\t\t\t\t\t\t\tcontent={headerDisplayLabel}\n\t\t\t\t\t\t\tdisabled={header.disabled}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{infoIcon}\n\t\t\t\t\t</div>);\n\n\t\t\t\t\tconst resizeHandle = header.resizable\n\t\t\t\t\t\t? (\n\t\t\t\t\t\t\t<div className={classNames(\"properties-vt-header-resize\", { \"resizing\": virtualHeader.column.getIsResizing() })}\n\t\t\t\t\t\t\t\tonMouseDown={virtualHeader.getResizeHandler()}\n\t\t\t\t\t\t\t\tonTouchStart={virtualHeader.getResizeHandler()}\n\t\t\t\t\t\t\t\trole=\"button\" tabIndex=\"0\"\n\t\t\t\t\t\t\t\taria-label=\"Resize column\"\n\t\t\t\t\t\t\t/>)\n\t\t\t\t\t\t: null;\n\t\t\t\t\treturn (<th key={`properties-grid-${virtualHeader.id}`}\n\t\t\t\t\t\tclassName={classNames(\"properties-autosized-vt-header sticky-row properties-vt-column properties-tooltips-container\",\n\t\t\t\t\t\t\t{ \"properties-vt-column-with-resize\": header.resizable },\n\t\t\t\t\t\t\t{ \"properties-vt-column-sortable\": sortable },\n\t\t\t\t\t\t\t{ \"sort-column-active\": sortable && (virtualHeader.column.getIsSorted() === \"asc\" || virtualHeader.column.getIsSorted() === \"desc\") }\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tstyle={{ width: Math.max(colSizes[virtualColumn.index], header.width) }}\n\t\t\t\t\t\tonClick={virtualHeader.column.getToggleSortingHandler()}\n\t\t\t\t\t\taria-label={headerLabel}\n\t\t\t\t\t\tdata-id={`properties-vt-header-${header.key}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{headerContentTooltip}\n\t\t\t\t\t\t{headerSort}\n\t\t\t\t\t\t{resizeHandle}\n\t\t\t\t\t</th>);\n\t\t\t\t})}\n\t\t\t\t<th key=\"properties-grid-fake-col-row-0-end\" className=\"properties-grid-fake-col\" style={{ width: `${excess}px` }} />\n\t\t\t</tr>);\n\t\t})}\n\t</thead>);\n\n\tconst tableBody = (tableRows) => {\n\t\tconst rowItems = rowVirtualizer.getVirtualItems();\n\t\tconst columnItems = columnVirtualizer.getVirtualItems();\n\t\tconst [before, after] = columnItems.length > 1\n\t\t\t? [columnItems[0].start,\n\t\t\t\tcolumnVirtualizer.getTotalSize() - columnItems[columnItems.length - 1].end]\n\t\t\t: [0, 0];\n\t\tconst excess = after + props.excessWidth;\n\n\t\treturn (<tbody key=\"properties-grid-body-key\" className=\"properties-grid-body\" style={{ height: `${rowVirtualizer.getTotalSize()}px` }}>\n\t\t\t{rowItems.map((virtualRow) => {\n\t\t\t\tconst row = tableRows[virtualRow.index];\n\t\t\t\tconst originalRowIndex = props.getOriginalRowIndex(row.original, virtualRow.index);\n\n\t\t\t\tconst visibleCells = row.getVisibleCells();\n\t\t\t\tconst rowData = columnItems.map((virtualColumn) => {\n\t\t\t\t\tconst cell = visibleCells[virtualColumn.index];\n\t\t\t\t\treturn (<td key={`properties-grid-row-${virtualRow.index}-${virtualColumn.index}`}\n\t\t\t\t\t\tclassName={classNames(\"properties-grid-body-row-cell\")}\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tminHeight: DEFAULT_ROW_HEIGHT,\n\t\t\t\t\t\t\twidth: Math.max(colSizes[virtualColumn.index], props.columns[virtualColumn.index].width)\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{cell.getValue()}\n\t\t\t\t\t</td>);\n\t\t\t\t});\n\t\t\t\trowData.originalRowIndex = originalRowIndex;\n\t\t\t\tconst rowSelected = isRowSelected(rowData.originalRowIndex);\n\t\t\t\tconst rowDisabled = typeof row.original.disabled === \"boolean\" ? row.original.disabled : false;\n\t\t\t\trowData.disabled = rowDisabled;\n\n\t\t\t\treturn (<tr key={`properties-grid-body-row-${virtualRow.index}}`} data-id={`${props.scrollKey}-${originalRowIndex}`}\n\t\t\t\t\tclassName={classNames(\"properties-grid-body-row properties-vt-row-class properties-vt-double-click\",\n\t\t\t\t\t\t{ \"properties-vt-row-selected\": rowSelected },\n\t\t\t\t\t\t{ \"properties-vt-row-disabled\": rowDisabled },\n\t\t\t\t\t\t{ \"properties-vt-row-non-interactive\": !props.selectable } // ReadonlyTable with single row selection is non-interactive.\n\t\t\t\t\t)}\n\t\t\t\t\tdata-role=\"properties-data-row\"\n\t\t\t\t\tstyle={{ transform: `translateY(${virtualRow.start}px)` }}\n\t\t\t\t\tonMouseDown={(evt) => onRowClick(evt, virtualRow.index, rowData)}\n\t\t\t\t\tonDoubleClick={(evt) => onRowDoubleClick(evt, row.original.rowKey, virtualRow.index)}\n\t\t\t\t>\n\t\t\t\t\t<td key={`properties-grid-body-row-${virtualRow.index}-fake-col-start`} className=\"properties-grid-fake-col\" style={{ width: `${before}px` }} />\n\t\t\t\t\t{renderDataRowCheckbox(virtualRow.index, rowData)}\n\t\t\t\t\t{rowData}\n\t\t\t\t\t<td key={`properties-grid-body-row-${virtualRow.index}-fake-col-end`} className=\"properties-grid-fake-col\" style={{ width: `${excess}px` }} />\n\t\t\t\t</tr>);\n\t\t\t})}\n\t\t</tbody>);\n\t};\n\n\t/**\n\t * Handles row click events for selection and interaction.\n\t * Prevents propagation for dropdown options and manages row selection state\n\t * including support for shift-key multi-selection.\n\t *\n\t * @param {Event} evt - The click event object\n\t * @param {number} rowIndex - The visual index of the clicked row\n\t * @param {Object} rowData - The data object for the clicked row\n\t * @param {number} rowData.originalRowIndex - The original index from getOriginalRowIndex\n\t * @param {boolean} rowData.disabled - Whether the row is disabled\n\t * @param {boolean} [newValue] - Optional explicit new selection state (true/false)\n\t */\n\tconst onRowClick = (evt, rowIndex, rowData, newValue) => {\n\t\tif (evt.target.className === \"cds--select-option\") {\n\t\t\tevt.stopPropagation(); // stop propagation when selecting dropdown select options within table rows\n\t\t} else if (typeof newValue !== \"undefined\" || props.rowSelection === ROW_SELECTION.SINGLE) {\n\t\t\t// Set selections\n\t\t\tconst selected = newValue ?? !isRowSelected(rowData.originalRowIndex);\n\t\t\tif (typeof props.setRowsSelected === \"function\") {\n\t\t\t\tprops.setRowsSelected({\n\t\t\t\t\t\"index\": rowIndex,\n\t\t\t\t\t\"originalRowIndex\": rowData.originalRowIndex,\n\t\t\t\t\t\"selected\": selected,\n\t\t\t\t\t\"isOverSelectOption\": isOverSelectOption,\n\t\t\t\t\t\"selectMultipleRows\": evt.shiftKey ? evt.shiftKey : false,\n\t\t\t\t\t\"lastCheckedRow\": lastChecked === null ? 0 : lastChecked }, evt);\n\n\t\t\t\t// Track lastChecked row for shift key selection\n\t\t\t\tsetLastCheckedState(rowData.originalRowIndex);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onRowDoubleClick = (evt, rowKey, index) => {\n\t\tif (props.onRowDoubleClick) {\n\t\t\tprops.onRowDoubleClick(evt, rowKey, index);\n\t\t}\n\t};\n\n\tconst isRowSelected = (index) => {\n\t\tif (props.rowsSelected) {\n\t\t\treturn props.rowsSelected.indexOf(index) > -1;\n\t\t}\n\t\treturn false;\n\t};\n\n\tconst setAllRowsSelected = (evt, { checked, id }) => {\n\t\tprops.setAllRowsSelected(checked);\n\t};\n\n\treturn (<div ref={parentRef} className={classNames(\"properties-tanstack-grid properties-vt\", { disabled: props.tableDisabled })}>\n\t\t<table aria-label={props.tableLabel ? props.tableLabel : \"\"} className={classNames(\"properties-autosized-vt\",\n\t\t\t{ \"properties-vt-single-selection\": props.rowSelection && props.rowSelection === ROW_SELECTION.SINGLE },\n\t\t\t{ \"properties-light-disabled\": !props.light })}\n\t\t>\n\t\t\t{props.showHeader ? tableHeader(table.getHeaderGroups()) : null}\n\t\t\t{tableBody(table.getRowModel().rows)}\n\t\t</table>\n\t</div>);\n};\n\nVirtualizedGrid.defaultProps = {\n\tdisableHeader: false\n};\n\nVirtualizedGrid.propTypes = {\n\tdata: PropTypes.array.isRequired,\n\ttableLabel: PropTypes.string,\n\texcessWidth: PropTypes.number.isRequired,\n\tselectable: PropTypes.bool,\n\tsummaryTable: PropTypes.bool,\n\trowSelection: PropTypes.string,\n\tshowHeader: 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\tgetOriginalRowIndex: 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\tonSort: PropTypes.func,\n\tsortColumns: PropTypes.array,\n\tonHeaderClick: PropTypes.func,\n\tscrollKey: PropTypes.string,\n\ttableDisabled: PropTypes.bool,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired,\n\treadOnly: PropTypes.bool\n};\n\nexport default injectIntl(VirtualizedGrid);\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseIteratee = require('./_baseIteratee'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nmodule.exports = differenceBy;\n","/*\n * Copyright 2017-2025 Elyra Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Column, Table, AutoSizer } from \"react-virtualized\";\nimport Draggable from \"react-draggable\";\nimport { Checkbox, Loading } from \"@carbon/react\";\nimport { ArrowUp, ArrowDown, ArrowsVertical, Information } from \"@carbon/react/icons\";\nimport Tooltip from \"./../../../tooltip/tooltip.jsx\";\nimport TruncatedContentTooltip from \"./../truncated-content-tooltip\";\nimport { SORT_DIRECTION, STATES, ROW_SELECTION, MINIMUM_COLUMN_WIDTH, MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL } from \"./../../constants/constants\";\nimport { injectIntl } from \"react-intl\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nimport { isEmpty, differenceBy, mapValues } from \"lodash\";\nimport classNames from \"classnames\";\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { v4 as uuid4 } from \"uuid\";\n\nclass VirtualizedTable extends React.Component {\n\n\tstatic getDerivedStateFromProps(nextProps, prevState) {\n\t\tconst updatedState = {};\n\t\tif (nextProps.rowCount !== prevState.rowCount) {\n\t\t\tupdatedState.rowCount = nextProps.rowCount;\n\t\t}\n\n\t\tconst prevStateTableWidth = prevState.columns.reduce((totalWidth, column) => column.width + totalWidth, 0);\n\t\tconst nextPropsTableWidth = nextProps.columns.reduce((totalWidth, column) => column.width + totalWidth, 0);\n\t\tconst editorSizeUpdated = (prevStateTableWidth !== nextPropsTableWidth);\n\n\t\t// Get new columns if column label (headerLabel) is different. This is useful when changing \"View in tables\" dropdown in Expression control.\n\t\t// Also when right flyout is expanded/collapsed, width of all columns changes, in this case get new columns with updated widths.\n\t\t// We're not comparing all properties in columns object because width can be different after resizing.\n\t\tif (!prevState.columnResized || !isEmpty(differenceBy(nextProps.columns, prevState.columns, \"headerLabel\")) || editorSizeUpdated) {\n\t\t\tupdatedState.columns = nextProps.columns;\n\t\t}\n\t\treturn (updatedState);\n\t}\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\trowCount: this.props.rowCount,\n\t\t\tcolumns: this.props.columns,\n\t\t\tcolumnResized: false\n\t\t};\n\t\tthis.virtualizedTableRef = React.createRef();\n\t\tthis.lastChecked = isEmpty(props.rowsSelected) ? null : props.rowsSelected.slice(-1).pop();\n\n\t\tthis.isOverSelectOption = false;\n\t\tthis.mouseEventCalled = false;\n\t\tthis.keyBoardEventCalled = false;\n\t\tthis.cellRenderer = this.cellRenderer.bind(this);\n\t\tthis.selectAll = this.selectAll.bind(this);\n\t\tthis.headerRowRenderer = this.headerRowRenderer.bind(this);\n\t\tthis.headerColRenderer = this.headerColRenderer.bind(this);\n\t\tthis.onRowClick = this.onRowClick.bind(this);\n\t\tthis.overSelectOption = this.overSelectOption.bind(this);\n\t\tthis.resizeColumn = this.resizeColumn.bind(this);\n\t\tthis.uuid = uuid4();\n\t}\n\n\tcomponentDidUpdate() {\n\t\t// If the rowHeight prop is a function, the virtualized table doesn't always adjust its\n\t\t// row heights correctly when the table data has changed. So in this case we need\n\t\t// to recompute the row heights.\n\t\tif (typeof this.props.rowHeight === \"function\") {\n\t\t\tthis.recomputeRowHeights();\n\t\t}\n\t}\n\n\t// This is also triggered when clicking on a checkbox\n\tonRowClick(evt, rowData, index) {\n\t\tif (evt.target.className === \"cds--select-option\") {\n\t\t\tevt.stopPropagation(); // stop propagation when selecting dropdown select options within table rows\n\t\t} else {\n\t\t\t// Set selections\n\t\t\tconst selected = !this.isRowSelected(rowData.originalRowIndex);\n\t\t\tif (typeof this.props.setRowsSelected === \"function\") {\n\t\t\t\tthis.props.setRowsSelected({\n\t\t\t\t\t\"index\": index,\n\t\t\t\t\t\"originalRowIndex\": rowData.originalRowIndex,\n\t\t\t\t\t\"selected\": selected,\n\t\t\t\t\t\"isOverSelectOption\": this.isOverSelectOption,\n\t\t\t\t\t\"selectMultipleRows\": evt.shiftKey ? evt.shiftKey : false,\n\t\t\t\t\t\"lastCheckedRow\": this.lastChecked === null ? 0 : this.lastChecked }, evt);\n\n\t\t\t\t// Track lastChecked row for shift key selection\n\t\t\t\tthis.lastChecked = rowData.index;\n\t\t\t}\n\t\t}\n\t}\n\n\tonRowDoubleClick(evt, rowKey, index) {\n\t\tif (this.props.onRowDoubleClick) {\n\t\t\tthis.props.onRowDoubleClick(evt, rowKey, index);\n\t\t}\n\t}\n\n\tgetCheckboxLabelColumnIndex(columns) {\n\t\t// If 1st column is Index, use the next column for labeling\n\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\tif (columns[i].operation !== \"index\") {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\t// Use first column by default\n\t\treturn 0;\n\t}\n\n\tgetColumnIndex(columns, key) {\n\t\tconst index = columns.findIndex((column) => column.key === key);\n\t\treturn index;\n\t}\n\n\t// Returns an object of deltas for every column - {columnKey: individualDelta}\n\tgetColumnWiseDeltas(columns, deltaX) {\n\t\tconst columnWiseDeltas = {};\n\t\tif (columns.length > 0) {\n\t\t\t// sort columns in ascending order of widths because smallest column will reach MINIMUM_COLUMN_WIDTH first\n\t\t\tcolumns.sort((a, b) => a.width - b.width);\n\t\t\tlet totalDelta = deltaX;\n\t\t\t// Finalize individualDelta for 1 column at a time starting from smallest column\n\t\t\t// If individualDelta is greater than maximum allowed delta for the column, set individualDelta = maximum allowed delta until column reaches MINIMUM_COLUMN_WIDTH\n\t\t\t// Total delta will reduce after every iteration\n\t\t\tfor (let i = 0; i < columns.length; i++) {\n\t\t\t\tconst widthOfAllColumns = columns.slice(i).reduce((prev, current) => prev + current.width, 0);\n\t\t\t\tlet individualDelta = Math.round((columns[i].width * totalDelta) / widthOfAllColumns);\n\t\t\t\t// check if individualDelta is greater than the maximum allowed delta for this column\n\t\t\t\tif (columns[i].headerLabel.length > 0 && columns[i].width - individualDelta < MINIMUM_COLUMN_WIDTH) {\n\t\t\t\t\tindividualDelta = columns[i].width - MINIMUM_COLUMN_WIDTH;\n\t\t\t\t} else if (columns[i].width - individualDelta < MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL) {\n\t\t\t\t\tindividualDelta = columns[i].width - MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL;\n\t\t\t\t}\n\t\t\t\ttotalDelta -= individualDelta;\n\t\t\t\tcolumnWiseDeltas[columns[i].key] = individualDelta;\n\t\t\t}\n\t\t\tif (totalDelta > 0) {\n\t\t\t\t// deltaX is greater than maximum allowed delta for all columns.\n\t\t\t\t// Don't allow resizing by setting individualDelta = 0 for ALL columns\n\t\t\t\treturn mapValues(columnWiseDeltas, () => 0);\n\t\t\t}\n\t\t}\n\t\treturn columnWiseDeltas;\n\t}\n\n\tisRowSelected(index) {\n\t\tif (this.props.rowsSelected) {\n\t\t\treturn this.props.rowsSelected.indexOf(index) > -1;\n\t\t}\n\t\treturn false;\n\t}\n\n\tisLastColumn(dataKey) {\n\t\tconst columnIndex = this.getColumnIndex(this.props.columns, dataKey);\n\t\tconst isLastColumn = (columnIndex === (this.props.columns.length - 1));\n\t\treturn isLastColumn;\n\t}\n\n\tselectAll(evt, { checked, id }) {\n\t\tthis.props.setAllRowsSelected(checked);\n\t}\n\n\t// Callback responsible for rendering a cell's contents.\n\tcellRenderer({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn cellData;\n\t}\n\n\tcellRendererHTML({ cellData }) {\n\t\tif (cellData === null || typeof cellData === \"undefined\") {\n\t\t\treturn \"\";\n\t\t}\n\t\treturn (<div dangerouslySetInnerHTML={{ __html: cellData }} />);\n\t}\n\n\trecomputeRowHeights(index) {\n\t\tif (this.virtualizedTableRef && this.virtualizedTableRef.current) {\n\t\t\tthis.virtualizedTableRef.current.recomputeRowHeights(index);\n\t\t}\n\t}\n\n\t// Responsible for rendering the table header row given an array of columns.\n\theaderRowRenderer(scrollKey, { className, columns, style }) {\n\t\tconst checkboxLabelColumnIndex = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? 0 : this.getCheckboxLabelColumnIndex(this.props.columns);\n\t\tconst headerCheckboxLabel = (typeof this.props.columns === \"undefined\" || this.props.columns.length === 0) ? \"\" : this.props.columns[checkboxLabelColumnIndex].headerLabel;\n\t\tconst translatedHeaderCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t{ id: \"virtualizedTable.header.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.header.checkbox.label\"] },\n\t\t\t{ header_checkbox_label: headerCheckboxLabel }\n\t\t);\n\t\tconst checkbox = this.props.selectable && this.props.rowSelection !== ROW_SELECTION.SINGLE\n\t\t\t? (<div role=\"checkbox\" aria-checked={this.props.checkedAll} className=\"properties-vt-header-checkbox\">\n\t\t\t\t<Checkbox\n\t\t\t\t\tid={`properties-vt-hd-cb-${this.uuid}-${scrollKey}`}\n\t\t\t\t\tonChange={this.selectAll}\n\t\t\t\t\tchecked={this.props.checkedAll}\n\t\t\t\t\tlabelText={translatedHeaderCheckboxLabel}\n\t\t\t\t\thideLabel\n\t\t\t\t\treadOnly={this.props.readOnly}\n\t\t\t\t/>\n\t\t\t</div>)\n\t\t\t: \"\";\n\n\t\treturn (<div className={className} data-role=\"properties-header-row\" role=\"row\" style={style}>\n\t\t\t{checkbox}\n\t\t\t{columns}\n\t\t</div>);\n\t}\n\n\theaderColRenderer({ columnData, dataKey, disableSort, label, sortBy, sortDirection }) {\n\t\tlet sortIcon = null;\n\t\tif (typeof this.props.sortColumns[dataKey] !== \"undefined\") {\n\t\t\tlet type = null;\n\t\t\tswitch (this.props.sortColumns[dataKey]) {\n\t\t\tcase SORT_DIRECTION.ASC:\n\t\t\t\ttype = <ArrowUp disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t\tbreak;\n\t\t\tcase SORT_DIRECTION.DESC:\n\t\t\t\ttype = <ArrowDown disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\ttype = <ArrowsVertical disabled={this.props.tableState === STATES.DISABLED} />;\n\t\t\t}\n\t\t\tsortIcon = (<span className=\"properties-ft-column-sort-icon\">\n\t\t\t\t{type}\n\t\t\t</span>);\n\t\t}\n\n\t\tconst infoIcon = isEmpty(columnData.description)\n\t\t\t? null\n\t\t\t: (<div className=\"properties-vt-info-icon-tip\">\n\t\t\t\t<Tooltip\n\t\t\t\t\tid=\"properties-tooltip-info\"\n\t\t\t\t\ttip={columnData.description}\n\t\t\t\t\tdirection=\"bottom\"\n\t\t\t\t\tclassName=\"properties-tooltips\"\n\t\t\t\t\tshowToolTipOnClick\n\t\t\t\t>\n\t\t\t\t\t<Information className=\"properties-vt-info-icon\" />\n\t\t\t\t</Tooltip>\n\t\t\t</div>);\n\n\t\tconst resizeElem = columnData.resizable && !this.isLastColumn(dataKey)\n\t\t\t? (\n\t\t\t\t<Draggable\n\t\t\t\t\taxis=\"x\"\n\t\t\t\t\tdefaultClassName=\"properties-vt-header-resize\"\n\t\t\t\t\tdefaultClassNameDragging=\"properties-vt-header-resize-active\"\n\t\t\t\t\tonDrag={\n\t\t\t\t\t\t(evt, { deltaX }) => {\n\t\t\t\t\t\t\tthis.resizeColumn({ dataKey, deltaX });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tposition={{ x: 0 }}\n\t\t\t\t\tzIndex={999}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"button\" tabIndex=\"0\"\n\t\t\t\t\t\taria-label=\"Resize column\"\n\t\t\t\t\t/>\n\t\t\t\t</Draggable>)\n\t\t\t: \"\";\n\t\tconst headerDisplayLabel = typeof label === \"string\" ? (<span>{label}</span>) : label;\n\t\tconst header = (<div className=\"properties-vt-label-tip-icon\">\n\t\t\t<TruncatedContentTooltip\n\t\t\t\ttooltipText={columnData.headerLabel}\n\t\t\t\tcontent={headerDisplayLabel}\n\t\t\t\tdisabled={columnData.disabled}\n\t\t\t/>\n\t\t\t{infoIcon}\n\t\t</div>);\n\t\treturn (\n\t\t\t<div data-id={`properties-vt-header-${dataKey}`}\n\t\t\t\tclassName={classNames({ \"properties-vt-column-with-resize\": resizeElem !== \"\", \"properties-vt-column-without-resize\": resizeElem === \"\" })}\n\t\t\t>\n\t\t\t\t<div className={classNames(\"properties-vt-column properties-tooltips-container\", { \"sort-column-active\": dataKey === this.props.sortBy })}>\n\t\t\t\t\t{header}\n\t\t\t\t\t{disableSort === false && sortIcon}\n\t\t\t\t</div>\n\t\t\t\t{ resizeElem }\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/* Columns are not resizable by default. Host application specifies resizable columns in parameter definition.\n\t* When a column is resized, width of ALL the columns to the right of resized column is adjusted.\n\t* Every column grows/shrinks directly proportional to column width.\n\t* Example: If a column width is reduced by 10px and there are 4 columns on the right of resized column having widths [40, 30, 20, 10],\n\t* Then 10px will be adjusted in 4 columns as - [4px, 3px, 2px, 1px]\n\t* When every column's width reaches MINIMUM_COLUMN_WIDTH (56px), resizing is stopped.\n\t* Special case - For columns without labels, when their width reaches MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL (32px), resizing is stopped.\n\t*/\n\tresizeColumn({ dataKey, deltaX }) {\n\t\tthis.setState((prevState) => {\n\n\t\t\tconst columns = prevState.columns;\n\t\t\t// Calculate number of resizable columns on the right of resized column\n\t\t\tconst resizedColumnIndex = this.getColumnIndex(columns, dataKey);\n\t\t\tconst allColumnsOnRight = columns.slice(resizedColumnIndex + 1);\n\t\t\t// Exclude columns having staticWidth: true\n\t\t\tconst nonStaticColumns = allColumnsOnRight.filter((column) => !column.staticWidth);\n\n\t\t\tconst resizableColumns = nonStaticColumns.filter((column) => {\n\t\t\t\t// When shrinking, get columns having width greater than MINIMUM_COLUMN_WIDTH\n\t\t\t\tif (deltaX >= 0) {\n\t\t\t\t\tif (column.headerLabel.length > 0) {\n\t\t\t\t\t\t// Column with label has min width 56px\n\t\t\t\t\t\treturn (column.width > MINIMUM_COLUMN_WIDTH);\n\t\t\t\t\t}\n\t\t\t\t\t// Column without label has min width 32px\n\t\t\t\t\treturn (column.width > MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL);\n\t\t\t\t}\n\t\t\t\t// When expanding, get all columns\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\t// Get column wise delta for resizableColumns\n\t\t\tconst columnWiseDeltas = this.getColumnWiseDeltas(resizableColumns, deltaX);\n\t\t\tconst columnsToBeResized = Object.keys(columnWiseDeltas);\n\n\t\t\t// check if all column wise deltas are 0. This happens when deltaX is more than maximum allowed delta for all columns\n\t\t\tconst everyColumnHasZeroDelta = Object.values(columnWiseDeltas).every((delta) => delta === 0);\n\n\t\t\tif ((columns[resizedColumnIndex].width + deltaX) > MINIMUM_COLUMN_WIDTH && !isEmpty(columnWiseDeltas) && !everyColumnHasZeroDelta) {\n\t\t\t\tcolumns[resizedColumnIndex].width += deltaX;\n\t\t\t\t// Adjust width of all resizable columns\n\t\t\t\tcolumnsToBeResized.forEach((columnKey) => {\n\t\t\t\t\tconst idx = columns.findIndex((col) => col.key === columnKey);\n\t\t\t\t\tcolumns[idx].width -= columnWiseDeltas[columnKey];\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcolumnResized: true,\n\t\t\t\tcolumns: columns\n\t\t\t};\n\t\t});\n\t}\n\n\toverSelectOption(evt) {\n\t\t// Incase of readonly table disable all events\n\t\tif (!this.props.readOnly) {\n\t\t\t// Differentiate between mouse and keyboard event\n\t\t\tif (evt.type === \"mouseenter\" && !this.keyBoardEventCalled) {\n\t\t\t\tthis.mouseEventCalled = true;\n\t\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t\t} else if (evt.type === \"mouseleave\" && this.mouseEventCalled) {\n\t\t\t\tthis.mouseEventCalled = false;\n\t\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t\t} else if (evt.type === \"focus\" && !this.mouseEventCalled) {\n\t\t\t\tthis.keyBoardEventCalled = true;\n\t\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t\t} else if (evt.type === \"blur\" && this.keyBoardEventCalled) {\n\t\t\t\tthis.keyBoardEventCalled = false;\n\t\t\t\tthis.isOverSelectOption = !this.isOverSelectOption;\n\t\t\t}\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\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.props.sortDirection ? this.isRowSelected(rowData.index) : this.isRowSelected(rowData.originalRowIndex); // use current row index when Sorted\n\t\t\tselectedRow = this.props.selectable && rowSelected;\n\t\t\tif (this.props.rowSelection !== ROW_SELECTION.SINGLE) {\n\t\t\t\tconst translatedRowCheckboxLabel = this.props.intl.formatMessage(\n\t\t\t\t\t{ id: \"virtualizedTable.row.checkbox.label\", defaultMessage: defaultMessages[\"virtualizedTable.row.checkbox.label\"] },\n\t\t\t\t\t{ row_index: index + 1, table_label: (this.props.tableLabel ? this.props.tableLabel : \"\") }\n\t\t\t\t);\n\n\t\t\t\tselectOption = (<div className=\"properties-vt-row-checkbox\"\n\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\tonMouseEnter={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonMouseLeave={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonFocus={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonBlur={(evt) => this.overSelectOption(evt)}\n\t\t\t\t\tonKeyDown={(evt) => {\n\t\t\t\t\t\tif (evt.key === \"Space\" || evt.key === \"Enter\") {\n\t\t\t\t\t\t\tthis.onRowClick(evt, rowData, index);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox\n\t\t\t\t\t\tid={`properties-vt-row-cb-${this.uuid}-${scrollKey}-${index}`}\n\t\t\t\t\t\tkey={`properties-vt-row-cb-${scrollKey}-${index}`}\n\t\t\t\t\t\tlabelText={translatedRowCheckboxLabel}\n\t\t\t\t\t\thideLabel\n\t\t\t\t\t\tchecked={rowSelected}\n\t\t\t\t\t\tdisabled={rowDisabled}\n\t\t\t\t\t\treadOnly={this.props.readOnly}\n\t\t\t\t\t/>\n\t\t\t\t</div>);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.summaryTable) {\n\t\t\tselectOption = <div className=\"properties-vt-row-checkbox\" />;\n\t\t}\n\n\t\tif (rowData.loading === true) {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={className}\n\t\t\t\t\tkey={key}\n\t\t\t\t\tdata-role=\"properties-loading-row\"\n\t\t\t\t\trole=\"row\"\n\t\t\t\t\tstyle={style}\n\t\t\t\t>\n\t\t\t\t\t<Loading className=\"properties-vt-small-loading\" small withOverlay={false} />\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tconst width = (parseInt(style.width, 10)) + \"px\"; // Subtract 2px to account for row borders\n\t\tconst newStyle = Object.assign({}, style, { width: width });\n\n\t\t// Empty style required on cell for react-virtualized. This div wrapper is required to apply the onDoubleClick handler.\n\t\treturn (<div style={{}} key={key} className=\"properties-vt-double-click\" onDoubleClick={(evt) => this.onRowDoubleClick(evt, rowData.rowKey, index)}>\n\t\t\t<div\n\t\t\t\tclassName={classNames(className,\n\t\t\t\t\t{ \"properties-vt-row-selected\": selectedRow },\n\t\t\t\t\t{ \"properties-vt-row-disabled\": rowDisabled },\n\t\t\t\t\t{ \"properties-vt-row-non-interactive\": !this.props.selectable } // ReadonlyTable with single row selection is non-interactive.\n\t\t\t\t)}\n\t\t\t\tdata-role=\"properties-data-row\"\n\t\t\t\trole=\"row\"\n\t\t\t\tstyle={newStyle}\n\t\t\t\tonMouseDown={(evt) => this.onRowClick(evt, rowData, index)}\n\t\t\t>\n\t\t\t\t{selectOption}\n\t\t\t\t{columns}\n\t\t\t</div>\n\t\t</div>);\n\t}\n\n\trender() {\n\t\tconst defaultTestHeight = 2000; // 2000 is set to accommodate test data \"category-selection-data\" with all categories expanded\n\n\t\treturn (\n\t\t\t<div className=\"properties-vt deprecated\">\n\t\t\t\t<div className={classNames(\"properties-vt-autosizer\",\n\t\t\t\t\t{ \"properties-vt-single-selection\": this.props.rowSelection && this.props.rowSelection === ROW_SELECTION.SINGLE,\n\t\t\t\t\t\t\"properties-light-disabled\": !this.props.light })}\n\t\t\t\t>\n\t\t\t\t\t<AutoSizer>\n\t\t\t\t\t\t{({ height, width }) => ( // Table height: subtract 50 for margin below the table.\n\t\t\t\t\t\t\t<Table\n\t\t\t\t\t\t\t\tref={this.virtualizedTableRef}\n\t\t\t\t\t\t\t\twidth={width ? width : 500}\n\t\t\t\t\t\t\t\t// AutoSizer manages width and height properties so the table fills the available space.\n\t\t\t\t\t\t\t\t// It does a direct DOM manipulation to the parent, outside React's VirtualDOM.\n\t\t\t\t\t\t\t\t// Since the actual DOM is not available when unit testing, we are passing in a default\n\t\t\t\t\t\t\t\t// width of 500 and a default height of 300.\n\t\t\t\t\t\t\t\theight={this.props.tableHeight || height || defaultTestHeight}\n\n\t\t\t\t\t\t\t\tclassName=\"properties-autosized-vt\"\n\t\t\t\t\t\t\t\taria-label={this.props.tableLabel ? this.props.tableLabel : \"\"}\n\n\t\t\t\t\t\t\t\tdisableHeader={this.props.disableHeader}\n\t\t\t\t\t\t\t\theaderClassName=\"properties-autosized-vt-header\"\n\t\t\t\t\t\t\t\theaderHeight={32}\n\t\t\t\t\t\t\t\theaderRowRenderer={this.headerRowRenderer.bind(this, this.props.scrollKey)}\n\t\t\t\t\t\t\t\tonHeaderClick={this.props.onHeaderClick}\n\n\t\t\t\t\t\t\t\trowClassName=\"properties-vt-row-class\"\n\t\t\t\t\t\t\t\trowHeight={this.props.rowHeight ? this.props.rowHeight : 32}\n\n\t\t\t\t\t\t\t\trowCount={this.state.rowCount}\n\t\t\t\t\t\t\t\trowGetter={this.props.rowGetter}\n\t\t\t\t\t\t\t\trowRenderer={this.rowRenderer.bind(this, this.props.scrollKey)}\n\n\t\t\t\t\t\t\t\tscrollToIndex={this.props.scrollToIndex}\n\t\t\t\t\t\t\t\tscrollToAlignment={this.props.scrollToAlignment}\n\n\t\t\t\t\t\t\t\tsort={this.props.onSort}\n\t\t\t\t\t\t\t\tsortDirection={this.props.sortDirection}\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tthis.state.columns.map((column) => (\n\t\t\t\t\t\t\t\t\t\t<Column\n\t\t\t\t\t\t\t\t\t\t\tkey={column.key}\n\t\t\t\t\t\t\t\t\t\t\tlabel={column.label}\n\t\t\t\t\t\t\t\t\t\t\tdataKey={column.key}\n\t\t\t\t\t\t\t\t\t\t\twidth={column.width}\n\t\t\t\t\t\t\t\t\t\t\tcolumnData={column}\n\t\t\t\t\t\t\t\t\t\t\tdisableSort={typeof this.props.sortColumns[column.key] === \"undefined\"}\n\t\t\t\t\t\t\t\t\t\t\tcellRenderer={column.isHTML ? this.cellRendererHTML : this.cellRenderer}\n\t\t\t\t\t\t\t\t\t\t\theaderRenderer={this.headerColRenderer}\n\t\t\t\t\t\t\t\t\t\t\t{...column.minWidth && { minWidth: column.minWidth }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</Table>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</AutoSizer>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nVirtualizedTable.defaultProps = {\n\tdisableHeader: false\n};\n\nVirtualizedTable.propTypes = {\n\ttableLabel: PropTypes.string,\n\ttableHeight: PropTypes.number.isRequired,\n\tselectable: PropTypes.bool,\n\tsummaryTable: PropTypes.bool,\n\trowSelection: PropTypes.string,\n\tdisableHeader: PropTypes.bool,\n\tcolumns: PropTypes.array.isRequired,\n\trowCount: PropTypes.number.isRequired,\n\trowGetter: PropTypes.func.isRequired,\n\trowHeight: PropTypes.oneOfType([\n\t\tPropTypes.func.isRequired,\n\t\tPropTypes.number.isRequired\n\t]),\n\tonRowDoubleClick: PropTypes.func,\n\trowsSelected: PropTypes.array, // Required if selectable is true\n\tcheckedAll: PropTypes.bool, // Required if selectable is true\n\tsetRowsSelected: PropTypes.func, // Required if selectable is true\n\tsetAllRowsSelected: PropTypes.func, // Required if selectable is true\n\tscrollToIndex: PropTypes.number,\n\tscrollToAlignment: PropTypes.string,\n\tonSort: PropTypes.func,\n\tsortBy: PropTypes.string,\n\tsortColumns: PropTypes.object,\n\tsortDirection: PropTypes.string,\n\tonHeaderClick: PropTypes.func,\n\tscrollKey: PropTypes.string,\n\ttableState: PropTypes.string,\n\tlight: PropTypes.bool,\n\tintl: PropTypes.object.isRequired,\n\treadOnly: PropTypes.bool\n};\n\nexport default injectIntl(VirtualizedTable);\n","/*\n * Copyright 2017-2025 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\", 27] */\n/* eslint max-depth: [\"error\", 6] */\n\nimport React from \"react\";\nimport { injectIntl } from \"react-intl\";\nimport PropTypes from \"prop-types\";\nimport { Search, Layer } from \"@carbon/react\";\nimport classNames from \"classnames\";\nimport { has, isEmpty } from \"lodash\";\n\nimport VirtualizedGrid from \"./../virtualized-grid/virtualized-grid.jsx\";\nimport VirtualizedTable from \"./../virtualized-table/virtualized-table.jsx\";\nimport { REM_ROW_HEIGHT, REM_HEADER_HEIGHT, ONE_REM_HEIGHT, SORT_DIRECTION, STATES, ROW_HEIGHT, ROW_SELECTION } from \"./../../constants/constants\";\nimport defaultMessages from \"../../../../locales/common-properties/locales/en.json\";\n\nconst COLUMN_PADDING_BUFFER = 12;\nconst DEFAULT_COL_MIN_WIDTH = 40; // Carbon table standard to display minimum 1 character\n\nclass FlexibleTable extends React.Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst sortDirs = {};\n\t\tif (typeof this.props.sortable !== \"undefined\") {\n\t\t\tfor (var i = 0; i < this.props.sortable.length; i++) {\n\t\t\t\tconst sortCol = this.props.sortable[i];\n\t\t\t\tsortDirs[sortCol] = SORT_DIRECTION.NOT_SORTED;\n\t\t\t}\n\t\t}\n\t\tthis.state = {\n\t\t\tcheckedAllRows: false,\n\t\t\tcolumnSortDir: sortDirs,\n\t\t\tcurrentSortColumn: \"\",\n\t\t\texcessWidth: 0,\n\t\t\tavailableWidth: 0, // Space available to render the table\n\t\t\ttableWidth: 0, // The width of the entire table, sum total of each column's width\n\t\t\ttableHeight: 0,\n\t\t\theaderHeight: 0,\n\t\t\trows: typeof props.rows !== \"undefined\" ? props.rows : 5.5,\n\t\t\tdynamicHeight: null\n\t\t};\n\n\t\tthis.rowHeight = this.rowHeight.bind(this);\n\t\tthis.rowGetter = this.rowGetter.bind(this);\n\n\t\tthis.tableRef = React.createRef();\n\t\tthis.flexibleTableHeader = React.createRef();\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.onSortVT = this.onSortVT.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._updateRows = this._updateRows.bind(this);\n\t\tthis._adjustTableHeight = this._adjustTableHeight.bind(this);\n\t\tthis.updateHeaderHeight = this.updateHeaderHeight.bind(this);\n\t\tthis.updateExcessWidth = this.updateExcessWidth.bind(this);\n\t\tthis.handleCheckedRow = this.handleCheckedRow.bind(this);\n\t\tthis.handleCheckedAllRows = this.handleCheckedAllRows.bind(this);\n\t\tthis.handleCheckedMultipleRows = this.handleCheckedMultipleRows.bind(this);\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._updateTableWidth(this.tableRef.current.getBoundingClientRect(), this.tableRef.current);\n\t\tthis.calculateColumnWidths();\n\t\tthis._adjustTableHeight();\n\n\t\tthis.headerObserver = new ResizeObserver((entries) => {\n\t\t\tfor (const entry of entries) {\n\t\t\t\tthis.updateHeaderHeight(entry.contentRect);\n\t\t\t}\n\t\t});\n\t\tif (this.flexibleTableHeader.current) {\n\t\t\tthis.headerObserver.observe(this.flexibleTableHeader.current);\n\t\t}\n\n\t\tthis.resizeObserver = new ResizeObserver((entries) => {\n\t\t\tfor (const entry of entries) {\n\t\t\t\tthis._updateTableWidth(entry.contentRect, entry.target);\n\t\t\t}\n\t\t});\n\t\tif (this.tableRef.current) {\n\t\t\tthis.resizeObserver.observe(this.tableRef.current);\n\t\t}\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (prevProps.rows !== this.props.rows) {\n\t\t\tthis._updateRows();\n\t\t}\n\n\t\tif (prevProps.columns !== this.props.columns ||\n\t\t\tprevProps.noAutoSize !== this.props.noAutoSize ||\n\t\t\tprevState.availableWidth !== this.state.availableWidth\n\t\t) {\n\t\t\tthis._adjustTableHeight();\n\t\t\tthis.calculateColumnWidths();\n\t\t}\n\n\t\tif (prevState.tableWidth !== this.state.tableWidth ||\n\t\t\tprevState.availableWidth !== this.state.availableWidth) {\n\t\t\tthis.updateExcessWidth();\n\t\t}\n\n\t\t// Calculate if checkedAllRows is true\n\t\tif (this.props.selectedRows && !isEmpty(this.props.data)) {\n\t\t\tthis.setCheckedAll(this.props.selectedRows);\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.headerObserver?.disconnect();\n\t\tthis.resizeObserver?.disconnect();\n\t}\n\n\tonSortVT({ 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\tonSort(column, descending) {\n\t\tif (this.props.onSort) {\n\t\t\tconst sortDirection = descending === true ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tconst spec = {\n\t\t\t\tcolumn: column,\n\t\t\t\tdirection: sortDirection\n\t\t\t};\n\t\t\tthis.props.onSort(spec);\n\t\t}\n\t}\n\n\t/**\n\t* The current displayed row may have an index that is different from its actual index within the dataset\n\t* Given the current displayed row and index of the table,\n\t* return its original row index from its row's propertyId\n\t*/\n\tgetOriginalRowIndex(row, index) {\n\t\tlet rowIndex = index;\n\t\tif (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.propertyId\")) {\n\t\t\t// this is a nested control\n\t\t\trowIndex = this.getLastChildPropertyIdRow(row.columns[0].content.props.children.props.propertyId, index);\n\t\t} else if (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.index\")) {\n\t\t\t// for rows that have multi-select controls in them\n\t\t\trowIndex = row.columns[0].content.props.children.props.propertyId.index;\n\t\t} else if (row.columns && has(row.columns[0], \"content.props.children.props.propertyId.row\")) {\n\t\t\trowIndex = row.columns[0].content.props.children.props.propertyId.row;\n\t\t} else if (typeof row.rowKey === \"number\") { // expression tables uses rowKey\n\t\t\trowIndex = parseInt(row.rowKey, 10);\n\t\t}\n\t\treturn rowIndex;\n\t}\n\n\t// Get the 'row' of the last child's propertyId\n\tgetLastChildPropertyIdRow(propertyId, defaultRowIndex) {\n\t\tif (typeof propertyId.propertyId !== \"undefined\") {\n\t\t\treturn this.getLastChildPropertyIdRow(propertyId.propertyId);\n\t\t}\n\t\tif (typeof propertyId.row !== \"undefined\") {\n\t\t\treturn propertyId.row;\n\t\t}\n\t\treturn defaultRowIndex;\n\t}\n\n\t/**\n\t* The header checkAll box may change depending on the current visible rows\n\t* Determine if all visible rows in the table are currently selected\n\t* and set the `checkedAllRows` state accordingly\n\t*/\n\tsetCheckedAll(selectedRows) {\n\t\tlet checkAll = true;\n\t\tfor (let idx = 0; idx < this.props.data.length; idx++) {\n\t\t\tconst row = this.props.data[idx];\n\t\t\tconst originalRowIndex = this.getOriginalRowIndex(row, idx);\n\t\t\tif (selectedRows.indexOf(originalRowIndex) < 0) {\n\t\t\t\tcheckAll = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (this.state.checkedAllRows !== checkAll) {\n\t\t\tthis.setState({ checkedAllRows: checkAll });\n\t\t}\n\t}\n\n\t/**\n\t* Calculate the width for each column to fit within the table\n\t* Widths provided in columns without 'px' are 'weighted' and will be scaled\n\t* Widths provided in columns with 'px' are used as is without scaling\n\t* if width is provided with 'px', subtract that from the total available table width\n\t* if width is provided, divide the column 'weighted' width with the max width from columns\n\t* return the scaled factor\n\t* multiply each column 'weighted' width with the scaled factor to get the actual width in pixels\n\t*/\n\tcalculateColumnWidths() {\n\t\tconst columns = this.props.columns;\n\n\t\tlet tableWidth = this.state.availableWidth - COLUMN_PADDING_BUFFER; // subtract 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\tconst compare = tableWidth + (COLUMN_PADDING_BUFFER * 0.75); // Save initial width for comparison later\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 = tableWidth > (DEFAULT_COL_MIN_WIDTH * remainingColumns)\n\t\t\t? Math.floor(tableWidth / remainingColumns) // use default width for columns without a weight\n\t\t\t: DEFAULT_COL_MIN_WIDTH; // If no more space to have the column visible, set the min width and let the table scroll\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\tif (sumColumnWidth < compare) {\n\t\t\tconst firstColWidth = parseInt(widths[0], 10);\n\t\t\twidths[0] = firstColWidth + compare - sumColumnWidth + \"px\";\n\t\t}\n\t\tthis.setState({ columnWidths: widths, tableWidth: sumColumnWidth });\n\t}\n\n\tupdateHeaderHeight(contentRect) {\n\t\tif (this.state.headerHeight !== contentRect.height) {\n\t\t\tthis.setState({ headerHeight: contentRect.height });\n\t\t}\n\t}\n\n\tupdateExcessWidth() {\n\t\tif (this.state.tableWidth > 0 && this.state.tableWidth < this.state.availableWidth) {\n\t\t\tlet excessWidth = this.state.availableWidth - this.state.tableWidth - COLUMN_PADDING_BUFFER;\n\t\t\tif (typeof this.props.updateRowSelections !== \"undefined\") {\n\t\t\t\texcessWidth -= 40; // Adjust for checkboxes\n\t\t\t}\n\t\t\tthis.setState({ excessWidth: excessWidth > 0 ? excessWidth : 0 });\n\t\t} else if (this.state.excessWidth !== 0) {\n\t\t\tthis.setState({ excessWidth: 0 });\n\t\t}\n\t}\n\n\t_updateTableWidth(contentRect, target) {\n\t\tconst tableWidth = Math.floor(target?.childNodes?.[0].childNodes?.[0]?.clientWidth) || contentRect.width;\n\t\tif (this.state.availableWidth !== Math.floor(tableWidth - 2)) {\n\t\t\tthis.setState({\n\t\t\t\tavailableWidth: Math.floor(tableWidth - 2) // subtract 2 px for the borders\n\t\t\t}, () => this.updateExcessWidth());\n\t\t}\n\t}\n\n\t_updateRows() {\n\t\tif (this.props.rows && this.props.rows !== this.state.rows) {\n\t\t\tthis.setState({ rows: this.props.rows }, () => {\n\t\t\t\tthis._adjustTableHeight();\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\n\t\tlet newHeight = this.state.tableHeight;\n\t\tlet dynamicH = this.state.dynamicHeight;\n\t\tif (Array.isArray(this.props.data) && this.props.data.length < this.state.rows) {\n\t\t\tnewHeight = (REM_ROW_HEIGHT * this.props.data.length + REM_HEADER_HEIGHT) * ONE_REM_HEIGHT;\n\t\t} else if (this.state.rows > 0) {\n\t\t\tnewHeight = (REM_ROW_HEIGHT * this.state.rows + REM_HEADER_HEIGHT) * ONE_REM_HEIGHT;\n\t\t} else if (this.state.rows === 0) { // only display header\n\t\t\tnewHeight = REM_HEADER_HEIGHT * ONE_REM_HEIGHT;\n\t\t} else if (this.state.rows === -1) {\n\t\t\tif (this.flexibleTable) {\n\t\t\t\tconst labelAndDescriptionHeight = 50; // possible dynamically set this in the future\n\t\t\t\tconst flyoutHeight = this.findPropertyNodeHeight(this.flexibleTable, \"properties-wf-children\");\n\t\t\t\tconst tearsheetHeight = this.findPropertyNodeHeight(this.flexibleTable, \"properties-primary-tab-panel\");\n\t\t\t\tif (flyoutHeight === 0 && tearsheetHeight === 0) {\n\t\t\t\t\tnewHeight = \"100vh\"; // set full window height if flyout & tearsheet height not found\n\t\t\t\t\tdynamicH = -1;\n\t\t\t\t} else {\n\t\t\t\t\tconst totalHeight = flyoutHeight !== 0 ? flyoutHeight : tearsheetHeight;\n\t\t\t\t\tnewHeight = `calc(${totalHeight - this.state.headerHeight - labelAndDescriptionHeight}px - ${(3.5 * ONE_REM_HEIGHT)}px)`; // 3.5rem to adjust padding\n\t\t\t\t\tdynamicH = (totalHeight - this.state.headerHeight - labelAndDescriptionHeight) - (3.5 * 16);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (newHeight !== this.state.tableHeight) {\n\t\t\tthis.setState({ tableHeight: newHeight, dynamicHeight: dynamicH });\n\t\t}\n\t}\n\n\tfindPropertyNodeHeight(node, className) {\n\t\tif (node && node.parentNode && node.parentNode.className && node.parentNode.className.includes(className)) {\n\t\t\tconst foundNode = node.parentNode.getBoundingClientRect();\n\t\t\tif (foundNode) {\n\t\t\t\treturn foundNode.height;\n\t\t\t}\n\t\t\treturn 0;\n\t\t} else if (node && node.parentNode) {\n\t\t\treturn this.findPropertyNodeHeight(node.parentNode, className);\n\t\t}\n\t\treturn 0;\n\t}\n\n\tsortHeaderClick({ dataKey }) {\n\t\tconst colSortDir = this.state.columnSortDir;\n\t\tif (typeof colSortDir[dataKey] !== \"undefined\") {\n\t\t\t// At a time only 1 column will be shown as sorted. Revert other columns to not sorted.\n\t\t\tObject.keys(colSortDir).forEach((key) => {\n\t\t\t\tif (key !== dataKey) {\n\t\t\t\t\tcolSortDir[key] = SORT_DIRECTION.NOT_SORTED;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// Only dataKey column will be sorted\n\t\t\tcolSortDir[dataKey] = (colSortDir[dataKey] === SORT_DIRECTION.ASC) ? SORT_DIRECTION.DESC : SORT_DIRECTION.ASC;\n\t\t\tthis.setState({\n\t\t\t\tcolumnSortDir: colSortDir,\n\t\t\t\tcurrentSortColumn: dataKey\n\t\t\t});\n\t\t}\n\t}\n\n\thandleFilterChange(evt) {\n\t\tif (this.props.onFilter) {\n\t\t\tthis.props.onFilter(evt.target.value);\n\t\t}\n\t}\n\n\thandleCheckedAllRows(checked) {\n\t\tlet selectAll = [];\n\t\tconst controlValue = this.props.data;\n\t\tif (checked) {\n\t\t\tselectAll = Array.from(this.props.selectedRows);\n\t\t\tfor (var rowIndex = 0; rowIndex < controlValue.length; rowIndex++) {\n\t\t\t\tconst originalRowIndex = this.getOriginalRowIndex(controlValue[rowIndex], rowIndex);\n\t\t\t\tselectAll.push(originalRowIndex);\n\t\t\t}\n\t\t}\n\t\tselectAll = Array.from(new Set(selectAll));\n\t\tthis.props.updateRowSelections(selectAll);\n\t\tthis.setState({ checkedAllRows: checked });\n\t}\n\n\t/**\n\t* This method is called when user wants to select multiple rows using shift key\n\t* Select/deselect all rows between lastCheckedRow and existingRow\n\t* @param lastCheckedRow (integer) - index of last selected row\n\t* @param existingRow (integer) - index of row where shift key is clicked\n\t* @param checked (boolean) - rows are to be selected or deselected\n\t*/\n\thandleCheckedMultipleRows(lastCheckedRow, existingRow, checked) {\n\t\tlet selectedRows = this.props.selectedRows ? this.props.selectedRows : [];\n\t\t// Calculate rows between lastChecked row and existingRow\n\t\tlet inBetweenRows;\n\t\tif (lastCheckedRow < existingRow) {\n\t\t\tinBetweenRows = Array.from({ length: (existingRow - lastCheckedRow) + 1 }, (_, i) => lastCheckedRow + i);\n\t\t} else {\n\t\t\tinBetweenRows = Array.from({ length: (lastCheckedRow - existingRow) + 1 }, (_, i) => existingRow + i);\n\t\t}\n\t\t// if selectedRows already has inBetweenRows, remove them first\n\t\tselectedRows = selectedRows.filter((row) => !inBetweenRows.includes(row)); // Deselecting inBetweenRows using shift key\n\t\tif (checked) {\n\t\t\tselectedRows = selectedRows.concat(inBetweenRows); \t// Selecting inBetweenRows using shift key\n\t\t}\n\t\treturn selectedRows;\n\t}\n\n\thandleCheckedRow(data, evt) {\n\t\tconst dataRowIndex = data.originalRowIndex; // Use the originalRowIndex for selection in case rows are filtered.\n\t\tconst displayedRowIndex = data.index;\n\t\tconst checked = data.selected;\n\t\tconst overSelectOption = data.isOverSelectOption;\n\n\t\tif (!this.props.data[displayedRowIndex].disabled && typeof this.props.updateRowSelections === \"function\") {\n\t\t\tif (overSelectOption) { // Checkbox is clicked\n\t\t\t\tlet current = this.props.selectedRows ? this.props.selectedRows : [];\n\t\t\t\tif (data.selectMultipleRows) { // multiple rows selected/deselected using shift key\n\t\t\t\t\tcurrent = this.handleCheckedMultipleRows(data.lastCheckedRow, displayedRowIndex, checked);\n\t\t\t\t\tthis.setCheckedAll(current);\n\t\t\t\t} else if (checked) { // single row selected\n\t\t\t\t\tcurrent = current.concat(dataRowIndex);\n\t\t\t\t\tthis.setCheckedAll(current);\n\t\t\t\t} else if (current) { // single row deselected\n\t\t\t\t\tcurrent = current.filter(function(element) {\n\t\t\t\t\t\treturn element !== dataRowIndex;\n\t\t\t\t\t});\n\t\t\t\t\tthis.setState({ checkedAllRows: false });\n\t\t\t\t}\n\t\t\t\t// Sort ascending because we want to add selected rows in the same order as they're displayed in the table\n\t\t\t\tcurrent.sort((a, b) => a - b);\n\t\t\t\tthis.props.updateRowSelections(current);\n\t\t\t} else if (this.props.rowSelection === ROW_SELECTION.SINGLE) { // Table row is clicked\n\t\t\t\tthis.props.updateRowSelections(data.index, evt, this.props.data[data.index].rowKey);\n\t\t\t}\n\t\t}\n\t}\n\n\n\t/**\n\t* Generate the table header specs from this.props.columns\n\t* this.props.columns: array of objects\n\t* [\n\t* {\n\t* \"key\": string,\n\t* \"label\": string,\n\t* \"width\": integer or string if containts 'px',\n\t* \"description\": optional string,\n\t* \"resizable\": optional boolean,\n\t* \"staticWidth\": optional boolean - This is a special property added only for SPSS modeler which directly calls FlexibleTable. This property is NOT a part of uiHints.\n\t* }\n\t* ]\n\t*/\n\tgenerateTableHeaderRow() {\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(this.state.columnWidths?.[j] ?? DEFAULT_COL_MIN_WIDTH, 10));\n\t\t\tlet headerLabel;\n\t\t\tif (typeof (columnDef.label) === \"object\") {\n\t\t\t\theaderLabel = columnDef.label.props.labelText;\n\t\t\t} else if (typeof (columnDef.label) === \"string\") {\n\t\t\t\theaderLabel = columnDef.label;\n\t\t\t}\n\t\t\theaders.push({\n\t\t\t\tkey: columnDef.key,\n\t\t\t\tlabel: columnDef.label,\n\t\t\t\twidth: width,\n\t\t\t\tdescription: columnDef.description,\n\t\t\t\theaderLabel: headerLabel,\n\t\t\t\tresizable: columnDef.resizable,\n\t\t\t\toperation: columnDef.operation,\n\t\t\t\tstaticWidth: columnDef.staticWidth ? columnDef.staticWidth : false // Used to exclude a column from resizing. If true, \"resizable\" value will be ignored.\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\theaders: headers,\n\t\t\tsearchLabel: searchLabel\n\t\t};\n\t}\n\n\t/**\n\t* Callback responsible for returning a data row given an index\n\t*/\n\trowGetter({ index }) {\n\t\tconst row = this.props.data[index];\n\t\tconst originalRowIndex = this.getOriginalRowIndex(row, index);\n\n\t\tconst columns = {};\n\t\tif (row.columns) {\n\t\t\tfor (let cidx = 0; cidx < row.columns.length; cidx++) {\n\t\t\t\tconst column = row.columns[cidx];\n\t\t\t\tcolumns[column.column] = column.content;\n\t\t\t}\n\t\t}\n\t\treturn Object.assign({}, columns, {\n\t\t\tloading: false,\n\t\t\tindex: index,\n\t\t\toriginalRowIndex: originalRowIndex,\n\t\t\trowKey: typeof row.rowKey !== \"undefined\" ? row.rowKey : this.props.scrollKey + \"-row-\" + index,\n\t\t\tdisabled: row.disabled\n\t\t});\n\t}\n\n\t// Function that returns the height of a row given its index\n\trowHeight({ index }) {\n\t\treturn ROW_HEIGHT;\n\t}\n\n\trender() {\n\t\tconst emptyTableContent = isEmpty(this.props.data)\n\t\t\t? (\n\t\t\t\t<div className=\"properties-ft-empty-table\">\n\t\t\t\t\t{this.props.emptyTablePlaceholder}\n\t\t\t\t</div>\n\t\t\t)\n\t\t\t: null;\n\t\tif (this.props.columns.length === 0) {\n\t\t\treturn (<div ref={this.tableRef}>\n\t\t\t\t<div className=\"properties-ft-empty-table-header\" />\n\t\t\t\t{emptyTableContent}\n\t\t\t</div>);\n\t\t}\n\n\t\tconst headerInfo = this.generateTableHeaderRow();\n\t\tconst headers = headerInfo.headers;\n\t\tconst searchLabel = headerInfo.searchLabel;\n\t\tconst disabled = this.props.tableState === STATES.DISABLED;\n\n\t\tlet searchBar = null;\n\n\t\tif (typeof this.props.filterable !== \"undefined\" && this.props.filterable.length !== 0) {\n\t\t\tconst placeHolder = typeof this.props.searchPlaceholder !== \"undefined\"\n\t\t\t\t? this.props.searchPlaceholder\n\t\t\t\t: this.props.intl.formatMessage({ id: \"table.search.placeholder\", defaultMessage: defaultMessages[\"table.search.placeholder\"] }, { column_name: searchLabel });\n\t\t\tconst searchBarLabel = this.props.intl.formatMessage(\n\t\t\t\t{ id: \"table.search.label\", defaultMessage: defaultMessages[\"table.search.label\"] },\n\t\t\t\t{ table_name: this.props.tableLabel }\n\t\t\t);\n\n\t\t\tsearchBar = (\n\t\t\t\t<div className={classNames(\"properties-ft-search-container\", { \"disabled\": disabled })}>\n\t\t\t\t\t<Layer level={this.props.light ? 1 : 0}>\n\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\tclassName=\"properties-ft-search-text\"\n\t\t\t\t\t\t\tplaceholder={placeHolder}\n\t\t\t\t\t\t\tonChange={this.handleFilterChange}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tlabelText={searchBarLabel}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Layer>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tlet scrollIndex = -1;\n\t\tif (typeof this.props.scrollToRow !== \"undefined\" && this.props.scrollToRow !== null) {\n\t\t\tscrollIndex = this.props.scrollToRow;\n\t\t}\n\n\t\tlet heightStyle = {};\n\t\tif (!this.props.noAutoSize) {\n\t\t\theightStyle = { height: this.state.tableHeight };\n\t\t}\n\n\t\tconst containerClass = this.props.showHeader ? \"properties-ft-container-absolute \" : \"properties-ft-container-absolute-noheader \";\n\t\tconst messageClass = (!this.props.messageInfo) ? containerClass + STATES.INFO : containerClass;\n\t\tconst ftHeaderClassname = classNames(\"properties-ft-table-header\",\n\t\t\t{ \"single-row-selection-table\": this.props.rowSelection === ROW_SELECTION.SINGLE });\n\t\t// When topRightPanel has Add button, it has this.props.topRightPanel.props.className = \"properties-at-buttons-container\"\n\t\tconst topRightPanelHasTableToolbar = (typeof this.props.topRightPanel !== \"undefined\" && this.props.topRightPanel !== null &&\n\t\t\ttypeof this.props.topRightPanel.props.className === \"undefined\");\n\t\t// Table toolbar replaces ftHeader when 1+ rows are selected\n\t\tconst ftHeader = ((searchBar || this.props.topRightPanel))\n\t\t\t? (<div className={ftHeaderClassname} ref={this.flexibleTableHeader}>\n\t\t\t\t{ topRightPanelHasTableToolbar ? null : searchBar}\n\t\t\t\t{this.props.topRightPanel}\n\t\t\t</div>)\n\t\t\t: null;\n\n\t\tconst ftClassname = classNames(\"properties-ft-control-container\", { \"properties-light-disabled\": !this.props.light });\n\n\t\t// This section can be removed when we remove react-virtualized\n\t\tlet tableHeight = 0;\n\t\tif (this.state.rows !== -1 && this.state.tableHeight) {\n\t\t\tconst remHeight = parseInt(this.state.tableHeight, 10);\n\t\t\ttableHeight = remHeight;\n\t\t} else if (this.state.rows === -1 && this.state.dynamicHeight && this.state.dynamicHeight !== -1) {\n\t\t\ttableHeight = this.state.dynamicHeight;\n\t\t}\n\n\t\tif (this.props.enableTanstackTable) {\n\t\t\treturn (\n\t\t\t\t<div data-id={\"properties-ft-\" + this.props.scrollKey} className={ftClassname} ref={ (ref) => (this.flexibleTable = ref) }>\n\t\t\t\t\t{ftHeader}\n\t\t\t\t\t<div className=\"properties-ft-container-panel\">\n\t\t\t\t\t\t<div className={classNames(\"properties-ft-container-wrapper\", this.props.messageInfo ? this.props.messageInfo.type : \"\")}\n\t\t\t\t\t\t\tstyle={ heightStyle }\n\t\t\t\t\t\t\tref={this.tableRef}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className={messageClass}>\n\t\t\t\t\t\t\t\t<VirtualizedGrid\n\t\t\t\t\t\t\t\t\tdata={this.props.data}\n\t\t\t\t\t\t\t\t\ttableLabel={this.props.tableLabel}\n\t\t\t\t\t\t\t\t\texcessWidth={this.state.excessWidth}\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\tshowHeader={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\tgetOriginalRowIndex={this.getOriginalRowIndex}\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.props.sortable}\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\ttableDisabled={disabled}\n\t\t\t\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t\t\t\t\treadOnly={this.props.readOnly}\n\t\t\t\t\t\t\t\t\t{...(scrollIndex !== -1 && { scrollToIndex: scrollIndex })}\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</div>\n\t\t\t\t\t{emptyTableContent}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div data-id={\"properties-ft-\" + this.props.scrollKey} className={ftClassname} ref={ (ref) => (this.flexibleTable = ref) }>\n\t\t\t\t{ftHeader}\n\t\t\t\t<div className=\"properties-ft-container-panel\">\n\t\t\t\t\t<div className={classNames(\"properties-ft-container-wrapper\", this.props.messageInfo ? this.props.messageInfo.type : \"\")}\n\t\t\t\t\t\tstyle={ heightStyle }\n\t\t\t\t\t\tref={this.tableRef}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={messageClass}>\n\t\t\t\t\t\t\t<VirtualizedTable\n\t\t\t\t\t\t\t\ttableLabel={this.props.tableLabel}\n\t\t\t\t\t\t\t\ttableHeight={tableHeight}\n\t\t\t\t\t\t\t\tcolumns={headers}\n\t\t\t\t\t\t\t\tonHeaderClick={this.sortHeaderClick}\n\t\t\t\t\t\t\t\trowCount={this.props.data.length}\n\t\t\t\t\t\t\t\trowHeight={this.rowHeight}\n\t\t\t\t\t\t\t\trowGetter={this.rowGetter}\n\t\t\t\t\t\t\t\tsummaryTable={this.props.summaryTable}\n\t\t\t\t\t\t\t\tselectable={typeof this.props.updateRowSelections !== \"undefined\"}\n\t\t\t\t\t\t\t\trowSelection={this.props.rowSelection}\n\t\t\t\t\t\t\t\tdisableHeader={!this.props.showHeader}\n\t\t\t\t\t\t\t\tonRowDoubleClick={this.props.onRowDoubleClick}\n\t\t\t\t\t\t\t\trowsSelected={this.props.selectedRows}\n\t\t\t\t\t\t\t\tcheckedAll={this.state.checkedAllRows}\n\t\t\t\t\t\t\t\tsetRowsSelected={this.handleCheckedRow}\n\t\t\t\t\t\t\t\tsetAllRowsSelected={this.handleCheckedAllRows}\n\t\t\t\t\t\t\t\tscrollKey={this.props.scrollKey}\n\t\t\t\t\t\t\t\tonSort={this.onSortVT}\n\t\t\t\t\t\t\t\tsortBy={this.state.currentSortColumn}\n\t\t\t\t\t\t\t\tsortColumns={this.state.columnSortDir}\n\t\t\t\t\t\t\t\tsortDirection={this.state.columnSortDir[this.state.currentSortColumn]}\n\t\t\t\t\t\t\t\ttableState={this.props.tableState}\n\t\t\t\t\t\t\t\tlight={this.props.light}\n\t\t\t\t\t\t\t\treadOnly={this.props.readOnly}\n\t\t\t\t\t\t\t\t{...(scrollIndex !== -1 && { scrollToIndex: scrollIndex, scrollToAlignment: \"center\" })}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{emptyTableContent}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nFlexibleTable.defaultProps = {\n\tshowHeader: true,\n\tlight: true,\n\temptyTablePlaceholder: \"\",\n\tselectedRows: [], // Required for consumers using FlexibleTable directly\n\tenableTanstackTable: true // Feature flag\n};\n\nFlexibleTable.propTypes = {\n\tsortable: PropTypes.array,\n\tcolumns: PropTypes.array.isRequired,\n\tdata: PropTypes.array.isRequired,\n\temptyTablePlaceholder: PropTypes.oneOfType([\n\t\tPropTypes.string,\n\t\tPropTypes.element\n\t]),\n\tsearchPlaceholder: PropTypes.string,\n\tfilterable: PropTypes.array,\n\tfilterBy: PropTypes.string,\n\tfilterKeyword: PropTypes.string,\n\thideFilterInput: PropTypes.func,\n\tscrollToRow: PropTypes.number,\n\tonSort: PropTypes.func,\n\tonFilter: PropTypes.func,\n\tshowHeader: PropTypes.bool,\n\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\treadOnly: PropTypes.bool,\n\tenableTanstackTable: PropTypes.bool\n};\n\nexport default injectIntl(FlexibleTable);\n"],"names":["baseGetTag","require$$0","isArray","require$$1","isObjectLike","require$$2","isString_1","value","TruncatedContentTooltip","_React$Component","_classCallCheck","this","arguments","_inherits","_createClass","key","_this","tooltipText","props","truncatedRef","_typeof","String","content","type","Checkbox","tooltipRef","firstChild","lastChild","previousSibling","tooltip","React","createElement","className","Tooltip","id","tip","direction","disable","_has","disabled","showToolTipIfTruncated","ref","Component","_extends","Object","assign","bind","n","e","length","t","r","hasOwnProperty","call","apply","arrayMap","baseValues","object","keys","baseIndexOf","isArrayLike","isString","toInteger","require$$3","values","nativeMax","Math","max","includes_1","collection","fromIndex","guard","indexOf","VirtualizedGrid","_useState","useState","_useState2","_slicedToArray","sorting","setSorting","_useState3","_useState4","isOverSelectOption","setIsOverSelectOptionState","_useState5","_useState6","mouseEventCalled","setMouseEventCalledState","_useState7","_useState8","keyBoardEventCalled","setKeyBoardEventCalledState","_useState9","_isEmpty","rowsSelected","slice","pop","_useState0","lastChecked","setLastCheckedState","parentRef","useRef","rowVirtualizer","useVirtualizer","count","rowCount","getScrollElement","current","estimateSize","overscan","columnVirtualizer","columns","colIdx","width","horizontal","useMemo","colDefs","forEach","col","columnDef","accessorFn","row","_row$columns$find","find","column","header","label","size","enableResizing","resizable","enableSorting","onSort","_includes","sortColumns","push","table","useReactTable","data","defaultColumn","state","sortDescFirst","onSortingChange","columnResizeMode","getCoreRowModel","enableSortingRemoval","colSizes","virtualizedItems","getMeasurements","headers","getLeafHeaders","colSizeDefs","idx","getSize","resizeItem","getState","columnSizingInfo","excessWidth","useEffect","desc","scrollToIndex","virtualRows","getVirtualItems","map","vrow","index","isVisible","keepScrolling","align","requestAnimationFrame","tableRows","rowItems","columnItems","_ref3","_ref4","before","excess","groups","checkboxLabelColumnIndex","i","operation","overSelectOption","evt","readOnly","onRowClick","rowIndex","rowData","newValue","target","stopPropagation","rowSelection","ROW_SELECTION","SINGLE","selected","isRowSelected","originalRowIndex","setRowsSelected","selectMultipleRows","shiftKey","lastCheckedRow","onRowDoubleClick","rowKey","setAllRowsSelected","_ref5","checked","classNames","tableDisabled","tableLabel","light","showHeader","getHeaderGroups","headerGroup","headerCheckboxLabel","translatedHeaderCheckboxLabel","_ref","start","getTotalSize","end","_ref2","style","concat","headerLabel","intl","formatMessage","defaultMessage","defaultMessages","header_checkbox_label","selectable","scrollKey","onChange","checkedAll","labelText","hideLabel","virtualColumn","virtualHeader","headerDisplayLabel","infoIcon","description","showToolTipOnClick","Information","sortable","sortIcon","getIsSorted","ArrowUp","ArrowDown","ArrowsVertical","headerSort","tabIndex","role","column_name","onKeyDown","KeyboardUtils","spaceKey","getToggleSortingHandler","onClick","headerContentTooltip","resizeHandle","resizing","getIsResizing","onMouseDown","getResizeHandler","onTouchStart","getRowModel","rows","height","virtualRow","getOriginalRowIndex","original","visibleCells","getVisibleCells","cell","minHeight","getValue","rowSelected","rowDisabled","transform","onDoubleClick","summaryTable","selectOption","translatedRowCheckboxLabel","row_index","table_label","onMouseEnter","onMouseLeave","onFocus","onBlur","nativeEvent","renderDataRowCheckbox","defaultProps","disableHeader","injectIntl","baseAssignValue","baseForOwn","baseIteratee","mapValues_1","iteratee","result","baseDifference","baseFlatten","isArrayLikeObject","require$$4","last","require$$5","differenceBy","array","undefined","differenceBy_1","VirtualizedTable","context","columnResized","virtualizedTableRef","createRef","cellRenderer","selectAll","headerRowRenderer","headerColRenderer","resizeColumn","uuid","uuid4","rowHeight","recomputeRowHeights","findIndex","deltaX","columnWiseDeltas","sort","a","b","totalDelta","widthOfAllColumns","reduce","prev","individualDelta","round","MINIMUM_COLUMN_WIDTH","MINIMUM_COLUMN_WIDTH_WITHOUT_LABEL","_mapValues","dataKey","isLastColumn","getColumnIndex","cellData","dangerouslySetInnerHTML","__html","getCheckboxLabelColumnIndex","checkbox","_this2","columnData","disableSort","sortBy","sortDirection","SORT_DIRECTION","ASC","tableState","STATES","DISABLED","DESC","resizeElem","Draggable","axis","defaultClassName","defaultClassNameDragging","onDrag","_ref6","position","x","zIndex","_ref7","_this3","setState","prevState","resizedColumnIndex","resizableColumns","filter","staticWidth","getColumnWiseDeltas","columnsToBeResized","everyColumnHasZeroDelta","every","delta","columnKey","_ref8","_this4","selectedRow","loading","Loading","small","withOverlay","parseInt","newStyle","_this5","AutoSizer","_ref9","Table","tableHeight","headerClassName","headerHeight","onHeaderClick","rowClassName","rowGetter","rowRenderer","scrollToAlignment","Column","isHTML","cellRendererHTML","headerRenderer","minWidth","nextProps","updatedState","editorSizeUpdated","totalWidth","_differenceBy","FlexibleTable","sortDirs","NOT_SORTED","checkedAllRows","columnSortDir","currentSortColumn","availableWidth","tableWidth","dynamicHeight","tableRef","flexibleTableHeader","getLastChildPropertyIdRow","calculateColumnWidths","handleFilterChange","onSortVT","sortHeaderClick","_updateTableWidth","_updateRows","_adjustTableHeight","updateHeaderHeight","updateExcessWidth","handleCheckedRow","handleCheckedAllRows","handleCheckedMultipleRows","getBoundingClientRect","headerObserver","ResizeObserver","entries","_step","_iterator","_createForOfIteratorHelper","s","done","entry","contentRect","err","f","observe","resizeObserver","_step2","_iterator2","prevProps","noAutoSize","selectedRows","setCheckedAll","_this$headerObserver","_this$resizeObserver","disconnect","spec","descending","children","propertyId","defaultRowIndex","checkAll","_step3","compare","COLUMN_PADDING_BUFFER","remainingColumns","maxWeight","_iterator3","includes","_step4","widths","defaultWidth","floor","weightedWidths","sumWeightedWidths","_iterator4","isNaN","scaledWidth","sumColumnWidth","calculatedWidth","firstColWidth","columnWidths","updateRowSelections","_target$childNodes","childNodes","clientWidth","newHeight","dynamicH","Array","REM_ROW_HEIGHT","REM_HEADER_HEIGHT","ONE_REM_HEIGHT","flexibleTable","flyoutHeight","findPropertyNodeHeight","tearsheetHeight","totalHeight","node","parentNode","foundNode","colSortDir","onFilter","controlValue","from","Set","existingRow","inBetweenRows","_","dataRowIndex","displayedRowIndex","element","searchLabel","j","_this$state$columnWid","_this$state$columnWid2","filterable","abs","cidx","ROW_HEIGHT","emptyTableContent","emptyTablePlaceholder","headerInfo","generateTableHeaderRow","searchBar","placeHolder","searchPlaceholder","searchBarLabel","table_name","Layer","level","Search","placeholder","scrollIndex","scrollToRow","heightStyle","containerClass","messageClass","messageInfo","INFO","ftHeaderClassname","topRightPanelHasTableToolbar","topRightPanel","ftHeader","ftClassname","enableTanstackTable"],"mappings":"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"}
|