@deephaven/iris-grid 0.11.5 → 0.11.6-beta.12
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/AdvancedFilterCreator.css.map +1 -1
- package/dist/ColumnStatistics.css.map +1 -1
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +0 -3
- package/dist/Formatter.js.map +1 -1
- package/dist/IrisGrid.css.map +1 -1
- package/dist/IrisGrid.d.ts +10 -6
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +36 -12
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +7 -0
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +18 -0
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +8 -4
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/sidebar/ChartBuilder.css.map +1 -1
- package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
- package/dist/sidebar/ChartBuilder.js +12 -20
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.css.map +1 -1
- package/dist/sidebar/InputEditor.css.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.css.map +1 -1
- package/dist/sidebar/TableCsvExporter.css.map +1 -1
- package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +10 -3
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/VisibilityOrderingBuilder.css.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css.map +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mousehandlers/IrisGridContextMenuHandler.jsx"],"names":["React","FontAwesomeIcon","dhFilterFilled","vsRemove","vsCheck","vsFilter","debounce","ContextActions","ContextActionUtils","GLOBAL_SHORTCUTS","GridMouseHandler","dh","Log","DateTimeFormatContextMenu","DecimalFormatContextMenu","IntegerFormatContextMenu","TableUtils","TableColumnFormatter","DateTimeColumnFormatter","SHORTCUTS","log","module","DEBOUNCE_UPDATE_FORMAT","CONTEXT_MENU_DATE_FORMAT","IrisGridContextMenuHandler","getQuickFilterCondition","columnFilter","newColumnFilter","additive","and","getQuickFilterText","filterText","newFilterText","getNumberValueEqualsFilter","column","value","filter","Number","POSITIVE_INFINITY","FilterCondition","invoke","greaterThan","FilterValue","ofNumber","NEGATIVE_INFINITY","lessThan","isNaN","filterValue","getFilterValueForNumberOrChar","type","eq","columnType","isCharType","ofString","String","fromCharCode","constructor","irisGrid","debouncedUpdateCustomFormat","handleFormatSelection","componentWillUnmount","flush","onContextMenu","gridPoint","grid","event","y","columnIndex","row","rowIndex","modelColumn","getModelColumn","modelRow","getModelRow","model","canCopy","props","columns","valueForCell","valueText","textForCell","actions","metrics","isFilterBarShown","reverseType","quickFilters","advancedFilters","searchFilter","state","theme","getTheme","columnHeaderHeight","gridY","filterIconColor","filterBarActiveColor","contextMenuSortIconColor","contextMenuReverseIconColor","settings","modelSort","sort","columnSort","getSortForColumn","hasReverse","REVERSE_TYPE","NONE","dateFilterFormatter","timeZone","showTimeZone","showTSeparator","defaultDateTimeFormatString","previewFilterFormatter","isColumnFrozen","table","push","isFilterable","title","group","GROUP_FILTER","order","action","removeColumnFilter","disabled","has","userColumnWidths","isColumnHidden","values","some","columnWidth","GROUP_HIDE_COLUMNS","hideColumnByVisibleIndex","unFreezeColumnByColumnName","name","freezeColumnByColumnName","showAllColumns","icon","iconColor","shortcut","TABLE","TOGGLE_QUICK_FILTER","toggleFilterBar","get","handleAdvancedMenuOpened","CLEAR_FILTERS","clearAllFilters","size","GROUP_SORT","sortByActions","length","additionalSortActions","sortColumn","COLUMN_SORT_DIRECTION","none","isReversible","REVERSE","reverse","POST_SORT","GROUP_COPY","copyToClipboard","textForColumnHeader","catch","e","error","isDateType","GROUP_FORMAT","dateFormatActions","isNumberType","numberFormatActions","filterMenu","andFilterMenu","numberValueText","numberFilterActions","isBooleanType","booleanFilterActions","dateValueText","format","previewValue","dateFilterActions","stringFilterActions","nullFilterActions","copyCell","selectedRanges","COPY","copyRanges","isEditable","GROUP_EDIT","deleteRanges","triggerMenu","gridWrapper","pageX","pageY","formatter","selectedFormat","getColumnFormat","formatOptions","getOptions","i","description","isSelected","getColumnIndexByName","isDecimalType","isIntegerType","TYPE_CONTEXT_CUSTOM","quickFilter","text","menuElement","setQuickFilter","notEq","contains","not","isFinite","valueFilter","greaterThanOrEqualTo","lessThanOrEqualTo","isTrue","isFalse","isNull","sortActions","ascending","checkColumnSort","descending","color","isMacPlatform","direction","isAbs","groups","high"],"mappings":";;;;;;AAAA;AACA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,cAAT,EAAyBC,QAAzB,EAAmCC,OAAnC,EAA4CC,QAA5C,QAA4D,kBAA5D;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,SACEC,cADF,EAEEC,kBAFF,EAGEC,gBAHF,QAIO,uBAJP;AAKA,SAASC,gBAAT,QAAiC,iBAAjC;AACA,OAAOC,EAAP,MAAe,uBAAf;AACA,OAAOC,GAAP,MAAgB,gBAAhB;SAEEC,yB,EACAC,wB,EACAC,wB;;OAGKC,U;SACEC,oB,EAAsBC,uB;OACxBC,S;AAEP,IAAMC,GAAG,GAAGR,GAAG,CAACS,MAAJ,CAAW,4BAAX,CAAZ;AAEA,IAAMC,sBAAsB,GAAG,GAA/B;AACA,IAAMC,wBAAwB,GAAG,+BAAjC;AAEA;AACA;AACA;;AACA,MAAMC,0BAAN,SAAyCd,gBAAzC,CAA0D;AAmBxD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACgC,SAAvBe,uBAAuB,CAC5BC,YAD4B,EAE5BC,eAF4B,EAI5B;AAAA,QADAC,QACA,uEADW,KACX;;AACA,QAAI,CAACA,QAAD,IAAa,CAACF,YAAlB,EAAgC;AAC9B,aAAOC,eAAP;AACD;;AACD,WAAOD,YAAY,CAACG,GAAb,CAAiBF,eAAjB,CAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;;;AAC2B,SAAlBG,kBAAkB,CAACC,UAAD,EAAaC,aAAb,EAA8C;AAAA,QAAlBJ,QAAkB,uEAAP,KAAO;AACrE,WAAOA,QAAQ,IAAIG,UAAZ,aACAA,UADA,iBACiBC,aADjB,IAEHA,aAFJ;AAGD;AAED;AACF;AACA;AACA;AACA;;;AACmC,SAA1BC,0BAA0B,CAACC,MAAD,EAASC,KAAT,EAAgB;AAC/C,QAAMT,YAAY,GAAGQ,MAAM,CAACE,MAAP,EAArB;;AACA,QAAID,KAAK,KAAKE,MAAM,CAACC,iBAArB,EAAwC;AACtC,aAAO3B,EAAE,CAAC4B,eAAH,CAAmBC,MAAnB,CAA0B,OAA1B,EAAmCd,YAAnC,EAAiDG,GAAjD,CACLH,YAAY,CAACe,WAAb,CAAyB9B,EAAE,CAAC+B,WAAH,CAAeC,QAAf,CAAwB,CAAxB,CAAzB,CADK,CAAP;AAGD;;AACD,QAAIR,KAAK,KAAKE,MAAM,CAACO,iBAArB,EAAwC;AACtC,aAAOjC,EAAE,CAAC4B,eAAH,CAAmBC,MAAnB,CAA0B,OAA1B,EAAmCd,YAAnC,EAAiDG,GAAjD,CACLH,YAAY,CAACmB,QAAb,CAAsBlC,EAAE,CAAC+B,WAAH,CAAeC,QAAf,CAAwB,CAAxB,CAAtB,CADK,CAAP;AAGD;;AACD,QAAIN,MAAM,CAACS,KAAP,CAAaX,KAAb,CAAJ,EAAyB;AACvB,aAAOxB,EAAE,CAAC4B,eAAH,CAAmBC,MAAnB,CAA0B,OAA1B,EAAmCd,YAAnC,CAAP;AACD;;AAED,QAAMqB,WAAW,GAAGvB,0BAA0B,CAACwB,6BAA3B,CAClBd,MAAM,CAACe,IADW,EAElBd,KAFkB,CAApB;AAIA,WAAOT,YAAY,CAACwB,EAAb,CAAgBH,WAAhB,CAAP;AACD;;AAEmC,SAA7BC,6BAA6B,CAACG,UAAD,EAAahB,KAAb,EAAoB;AACtD,WAAOnB,UAAU,CAACoC,UAAX,CAAsBD,UAAtB,IACHxC,EAAE,CAAC+B,WAAH,CAAeW,QAAf,CAAwBC,MAAM,CAACC,YAAP,CAAoBpB,KAApB,CAAxB,CADG,GAEHxB,EAAE,CAAC+B,WAAH,CAAeC,QAAf,CAAwBR,KAAxB,CAFJ;AAGD;;AAEDqB,EAAAA,WAAW,CAACC,QAAD,EAAW;AACpB;AAEA,SAAKC,2BAAL,GAAmCpD,QAAQ,CACzCmD,QAAQ,CAACE,qBADgC,EAEzCrC,sBAFyC,CAA3C;AAKA,SAAKmC,QAAL,GAAgBA,QAAhB;AACD;;AAEDG,EAAAA,oBAAoB,GAAG;AACrB,SAAKF,2BAAL,CAAiCG,KAAjC;AACD;;AAEDC,EAAAA,aAAa,CAACC,SAAD,EAAYC,IAAZ,EAAkBC,KAAlB,EAAyB;AACpC,QAAM;AAAER,MAAAA;AAAF,QAAe,IAArB;AACA,QAAM;AAAES,MAAAA,CAAF;AAAKhC,MAAAA,MAAM,EAAEiC,WAAb;AAA0BC,MAAAA,GAAG,EAAEC;AAA/B,QAA4CN,SAAlD;AACA,QAAMO,WAAW,GAAGb,QAAQ,CAACc,cAAT,CAAwBJ,WAAxB,CAApB;AACA,QAAMK,QAAQ,GAAGf,QAAQ,CAACgB,WAAT,CAAqBJ,QAArB,CAAjB;AACA,QAAM;AAAEK,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAqBlB,QAAQ,CAACmB,KAApC;AACA,QAAM;AAAEC,MAAAA;AAAF,QAAcH,KAApB;AACA,QAAMvC,KAAK,GAAGuC,KAAK,CAACI,YAAN,CAAmBR,WAAnB,EAAgCE,QAAhC,CAAd;AACA,QAAMO,SAAS,GAAGL,KAAK,CAACM,WAAN,CAAkBV,WAAlB,EAA+BE,QAA/B,CAAlB;AACA,QAAMtC,MAAM,GAAG2C,OAAO,CAACP,WAAD,CAAtB;AAEA,QAAMW,OAAO,GAAG,EAAhB;AAEA,QAAM;AACJC,MAAAA,OADI;AAEJC,MAAAA,gBAFI;AAGJC,MAAAA,WAHI;AAIJC,MAAAA,YAJI;AAKJC,MAAAA,eALI;AAMJC,MAAAA;AANI,QAOF9B,QAAQ,CAAC+B,KAPb;AAQA,QAAMC,KAAK,GAAGhC,QAAQ,CAACiC,QAAT,EAAd;AACA,QAAM;AAAEC,MAAAA,kBAAF;AAAsBC,MAAAA;AAAtB,QAAgCV,OAAtC;AACA,QAAM;AACJW,MAAAA,eADI;AAEJC,MAAAA,oBAFI;AAGJC,MAAAA,wBAHI;AAIJC,MAAAA;AAJI,QAKFP,KALJ;AAMA,QAAM;AAAE3B,MAAAA,aAAF;AAAiBmC,MAAAA;AAAjB,QAA8BxC,QAAQ,CAACmB,KAA7C;AAEA,QAAMsB,SAAS,GAAGxB,KAAK,CAACyB,IAAxB;AACA,QAAMC,UAAU,GAAGpF,UAAU,CAACqF,gBAAX,CAA4BH,SAA5B,EAAuC5B,WAAvC,CAAnB;AACA,QAAMgC,UAAU,GAAGlB,WAAW,KAAKpE,UAAU,CAACuF,YAAX,CAAwBC,IAA3D;AACA,QAAMC,mBAAmB,GAAG,IAAIvF,uBAAJ,CAA4B;AACtDwF,MAAAA,QAAQ,EAAET,QAAQ,CAACS,QADmC;AAEtDC,MAAAA,YAAY,EAAE,KAFwC;AAGtDC,MAAAA,cAAc,EAAE,IAHsC;AAItDC,MAAAA,2BAA2B,EAAEtF;AAJyB,KAA5B,CAA5B;AAMA,QAAMuF,sBAAsB,GAAG,IAAI5F,uBAAJ,CAA4B;AACzDwF,MAAAA,QAAQ,EAAET,QAAQ,CAACS,QADsC;AAEzDC,MAAAA,YAAY,EAAEV,QAAQ,CAACU,YAFkC;AAGzDC,MAAAA,cAAc,EAAEX,QAAQ,CAACW,cAHgC;AAIzDC,MAAAA,2BAA2B,EAAEtF;AAJ4B,KAA5B,CAA/B;AAMA,QAAMwF,cAAc,GAAGrC,KAAK,CAACqC,cAAN,CAAqB5C,WAArB,CAAvB;;AAEA,QAAIjC,MAAM,IAAI,IAAd,EAAoB;AAClB,UAAM;AAAE8E,QAAAA;AAAF,UAAYtC,KAAlB;AACAO,MAAAA,OAAO,CAACgC,IAAR,CACEnD,aAAa,CAAC;AACZkD,QAAAA,KADY;AAEZtC,QAAAA,KAFY;AAGZvC,QAAAA,KAHY;AAIZ4C,QAAAA,SAJY;AAKZ7C,QAAAA,MALY;AAMZmC,QAAAA,QANY;AAOZF,QAAAA,WAPY;AAQZK,QAAAA,QARY;AASZF,QAAAA;AATY,OAAD,CADf;AAaD;;AAED,QAAIpC,MAAM,IAAI,IAAV,IAAkBwC,KAAK,CAACwC,YAAN,CAAmB5C,WAAnB,CAAtB,EAAuD;AACrDW,MAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,QAAAA,KAAK,EAAE,qBADI;AAEXC,QAAAA,KAAK,EAAE5F,0BAA0B,CAAC6F,YAFvB;AAGXC,QAAAA,KAAK,EAAE,EAHI;AAIXC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAc+D,kBAAd,CAAiClD,WAAjC;AACD,SANU;AAOXmD,QAAAA,QAAQ,EAAE,EACRpC,YAAY,CAACqC,GAAb,CAAiBpD,WAAjB,KAAiCgB,eAAe,CAACoC,GAAhB,CAAoBpD,WAApB,CADzB;AAPC,OAAb;AAWD;;AAED,QAAIa,gBAAgB,GAAGjB,CAAC,IAAI0B,KAAR,GAAgB1B,CAAC,IAAIyB,kBAAzC,EAA6D;AAC3D;AACA,UAAIzD,MAAM,IAAI,IAAd,EAAoB;AAClB,YAAM;AAAEyF,UAAAA;AAAF,YAAuBzC,OAA7B;AACA,YAAM0C,cAAc,GAAG,CAAC,GAAGD,gBAAgB,CAACE,MAAjB,EAAJ,EAA+BC,IAA/B,CACrBC,WAAW,IAAIA,WAAW,KAAK,CADV,CAAvB;AAGA9C,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,aADI;AAEXC,UAAAA,KAAK,EAAE5F,0BAA0B,CAACwG,kBAFvB;AAGXT,UAAAA,MAAM,EAAE,MAAM;AACZ,iBAAK9D,QAAL,CAAcwE,wBAAd,CAAuC9D,WAAvC;AACD;AALU,SAAb;AAOAc,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAEJ,cAAc,GAAG,iBAAH,GAAuB,eADjC;AAEXK,UAAAA,KAAK,EAAE5F,0BAA0B,CAACwG,kBAFvB;AAGXT,UAAAA,MAAM,EAAE,MAAM;AACZ,gBAAIR,cAAJ,EAAoB;AAClB,mBAAKtD,QAAL,CAAcyE,0BAAd,CAAyChG,MAAM,CAACiG,IAAhD;AACD,aAFD,MAEO;AACL,mBAAK1E,QAAL,CAAc2E,wBAAd,CAAuClG,MAAM,CAACiG,IAA9C;AACD;AACF,WATU;AAUXb,UAAAA,KAAK,EAAE;AAVI,SAAb;AAYArC,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,kBADI;AAEXC,UAAAA,KAAK,EAAE5F,0BAA0B,CAACwG,kBAFvB;AAGXT,UAAAA,MAAM,EAAE,MAAM;AACZ,iBAAK9D,QAAL,CAAc4E,cAAd;AACD,WALU;AAMXZ,UAAAA,QAAQ,EAAE,CAACG;AANA,SAAb;AAQA3C,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,eADI;AAEXmB,UAAAA,IAAI,EAAEnI,QAFK;AAGXoI,UAAAA,SAAS,EAAEzC,oBAHA;AAIX0C,UAAAA,QAAQ,EAAErH,SAAS,CAACsH,KAAV,CAAgBC,mBAJf;AAKXtB,UAAAA,KAAK,EAAE5F,0BAA0B,CAAC6F,YALvB;AAMXC,UAAAA,KAAK,EAAE,EANI;AAOXC,UAAAA,MAAM,EAAE,MAAM;AACZ,iBAAK9D,QAAL,CAAckF,eAAd,CAA8BxE,WAA9B;AACD;AATU,SAAb;AAWAc,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,kBADI;AAEXmB,UAAAA,IAAI,EAAEhD,eAAe,CAACsD,GAAhB,CAAoBtE,WAApB,IAAmCpE,cAAnC,GAAoDG,QAF/C;AAGXkI,UAAAA,SAAS,EAAE1C,eAHA;AAIXuB,UAAAA,KAAK,EAAE5F,0BAA0B,CAAC6F,YAJvB;AAKXC,UAAAA,KAAK,EAAE,EALI;AAMXC,UAAAA,MAAM,EAAE,MAAM;AACZ,iBAAK9D,QAAL,CAAcoF,wBAAd,CAAuC1E,WAAvC;AACD;AARU,SAAb;AAUAc,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,qBADI;AAEXC,UAAAA,KAAK,EAAE5F,0BAA0B,CAAC6F,YAFvB;AAGXC,UAAAA,KAAK,EAAE,EAHI;AAIX;AACAkB,UAAAA,QAAQ,EAAErH,SAAS,CAACsH,KAAV,CAAgBK,aALf;AAMXvB,UAAAA,MAAM,EAAE,MAAM;AACZ,iBAAK9D,QAAL,CAAcsF,eAAd;AACD,WARU;AASXtB,UAAAA,QAAQ,EAAE,EACRpC,YAAY,CAAC2D,IAAb,GAAoB,CAApB,IACA1D,eAAe,CAAC0D,IAAhB,GAAuB,CADvB,IAEAzD,YAAY,KAAK,IAHT;AATC,SAAb;AAeAN,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,SADI;AAEXmB,UAAAA,IAAI,EAAEnI,QAFK;AAGXoI,UAAAA,SAAS,EAAExC,wBAHA;AAIXqB,UAAAA,KAAK,EAAE5F,0BAA0B,CAACyH,UAJvB;AAKX3B,UAAAA,KAAK,EAAE,EALI;AAMXrC,UAAAA,OAAO,EAAE,KAAKiE,aAAL,CAAmBhH,MAAnB,EAA2BoC,WAA3B,EAAwC8B,UAAxC;AANE,SAAb;AAQAnB,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,qBADI;;AAEX;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACUM,UAAAA,QAAQ,EACLrB,UAAU,IAAIF,SAAS,CAACiD,MAAV,KAAqB,CAApC,IACC7C,UAAU,IAAIJ,SAAS,CAACiD,MAAV,KAAqB,CADpC,IAEC/C,UAAU,IAAIE,UAAd,IAA4BJ,SAAS,CAACiD,MAAV,KAAqB,CAFlD,IAGAjD,SAAS,CAACiD,MAAV,KAAqB,CAdZ;AAeX/B,UAAAA,KAAK,EAAE5F,0BAA0B,CAACyH,UAfvB;AAgBX3B,UAAAA,KAAK,EAAE,EAhBI;AAiBXrC,UAAAA,OAAO,EAAE,KAAKmE,qBAAL,CAA2BlH,MAA3B,EAAmCoC,WAAnC;AAjBE,SAAb;AAmBAW,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,qBADI;AAEXM,UAAAA,QAAQ,EACN;AACAvB,UAAAA,SAAS,CAACiD,MAAV,KAAqB,CAArB,IAA2B7C,UAAU,IAAIJ,SAAS,CAACiD,MAAV,KAAqB,CAJrD;AAKX/B,UAAAA,KAAK,EAAE5F,0BAA0B,CAACyH,UALvB;AAMX1B,UAAAA,MAAM,EAAE,MAAM;AACZ,iBAAK9D,QAAL,CAAc4F,UAAd,CACElF,WADF,EAEE3C,0BAA0B,CAAC8H,qBAA3B,CAAiDC,IAFnD;AAID,WAXU;AAYXjC,UAAAA,KAAK,EAAE;AAZI,SAAb;AAcArC,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EACH/B,WAAW,KAAKpE,UAAU,CAACuF,YAAX,CAAwBC,IAAxC,GACI,eADJ,GAEI,qBAJK;AAKX8B,UAAAA,IAAI,EAAEnI,QALK;AAMXoI,UAAAA,SAAS,EAAEvC,2BANA;AAOXoB,UAAAA,KAAK,EAAE5F,0BAA0B,CAACyH,UAPvB;AAQX3B,UAAAA,KAAK,EAAE,EARI;AASXG,UAAAA,QAAQ,EAAE,CAAC/C,KAAK,CAAC8E,YATN;AAUX;AACAhB,UAAAA,QAAQ,EAAErH,SAAS,CAACsH,KAAV,CAAgBgB,OAXf;AAYXlC,UAAAA,MAAM,EAAE,MAAM;AACZ,gBAAInC,WAAW,KAAKpE,UAAU,CAACuF,YAAX,CAAwBC,IAA5C,EAAkD;AAChD,mBAAK/C,QAAL,CAAciG,OAAd,CAAsB1I,UAAU,CAACuF,YAAX,CAAwBoD,SAA9C;AACD,aAFD,MAEO;AACL,mBAAKlG,QAAL,CAAciG,OAAd,CAAsB1I,UAAU,CAACuF,YAAX,CAAwBC,IAA9C;AACD;AACF;AAlBU,SAAb;AAoBAvB,QAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,UAAAA,KAAK,EAAE,kBADI;AAEXC,UAAAA,KAAK,EAAE5F,0BAA0B,CAACoI,UAFvB;AAGXrC,UAAAA,MAAM,EAAE,MAAM;AACZ/G,YAAAA,kBAAkB,CAACqJ,eAAnB,CACEnF,KAAK,CAACoF,mBAAN,CAA0BxF,WAA1B,CADF,EAEEyF,KAFF,CAEQC,CAAC,IAAI5I,GAAG,CAAC6I,KAAJ,CAAU,uBAAV,EAAmCD,CAAnC,CAFb;AAGD;AAPU,SAAb;;AAUA,YAAIhJ,UAAU,CAACkJ,UAAX,CAAsBhI,MAAM,CAACe,IAA7B,CAAJ,EAAwC;AACtCgC,UAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,YAAAA,KAAK,EAAE,kBADI;AAEXC,YAAAA,KAAK,EAAE5F,0BAA0B,CAAC2I,YAFvB;AAGXlF,YAAAA,OAAO,EAAE,KAAKmF,iBAAL,CAAuBlI,MAAvB;AAHE,WAAb;AAKD,SAND,MAMO,IAAIlB,UAAU,CAACqJ,YAAX,CAAwBnI,MAAM,CAACe,IAA/B,CAAJ,EAA0C;AAC/CgC,UAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,YAAAA,KAAK,EAAE,eADI;AAEXC,YAAAA,KAAK,EAAE5F,0BAA0B,CAAC2I,YAFvB;AAGXlF,YAAAA,OAAO,EAAE,KAAKqF,mBAAL,CAAyBpI,MAAzB;AAHE,WAAb;AAKD;AACF;AACF,KA3JD,MA2JO;AACL;AACA,UAAIA,MAAM,IAAI,IAAV,IAAkBmC,QAAQ,IAAI,IAAlC,EAAwC;AACtC,YAAIK,KAAK,CAACwC,YAAN,CAAmB5C,WAAnB,CAAJ,EAAqC;AACnC;AACA,cAAMiG,UAAU,GAAG;AACjBpD,YAAAA,KAAK,EAAE,iBADU;AAEjBmB,YAAAA,IAAI,EAAEnI,QAFW;AAGjBoI,YAAAA,SAAS,EAAE1C,eAHM;AAIjBuB,YAAAA,KAAK,EAAE5F,0BAA0B,CAAC6F,YAJjB;AAKjBC,YAAAA,KAAK,EAAE,EALU;AAMjBrC,YAAAA,OAAO,EAAE;AANQ,WAAnB;AASA,cAAMuF,aAAa,GAAG;AACpBrD,YAAAA,KAAK,EAAE,qBADa;AAEpBmB,YAAAA,IAAI,EAAEnI,QAFc;AAGpBoI,YAAAA,SAAS,EAAE1C,eAHS;AAIpBuB,YAAAA,KAAK,EAAE5F,0BAA0B,CAAC6F,YAJd;AAKpBC,YAAAA,KAAK,EAAE,EALa;AAMpBrC,YAAAA,OAAO,EAAE,IANW;AAOpBwC,YAAAA,QAAQ,EAAE,CAACpC,YAAY,CAACuD,GAAb,CAAiBtE,WAAjB;AAPS,WAAtB;;AAUA,cAAInC,KAAK,IAAI,IAAb,EAAmB;AACjB;AACA,gBACEnB,UAAU,CAACqJ,YAAX,CAAwBnI,MAAM,CAACe,IAA/B,KACAjC,UAAU,CAACoC,UAAX,CAAsBlB,MAAM,CAACe,IAA7B,CAFF,EAGE;AACA;AACA;AACA,kBAAMwH,eAAe,GAAGzJ,UAAU,CAACoC,UAAX,CAAsBlB,MAAM,CAACe,IAA7B,IACpBK,MAAM,CAACC,YAAP,CAAoBpB,KAApB,CADoB,aAEjBA,KAFiB,CAAxB;AAGAoI,cAAAA,UAAU,CAACtF,OAAX,GAAqB,KAAKyF,mBAAL,CACnBxI,MADmB,EAEnBuI,eAFmB,EAGnBtI,KAHmB,CAArB;AAKAqI,cAAAA,aAAa,CAACvF,OAAd,GAAwB,KAAKyF,mBAAL,CACtBxI,MADsB,EAEtBuI,eAFsB,EAGtBtI,KAHsB,EAItBkD,YAAY,CAACuD,GAAb,CAAiBtE,WAAjB,CAJsB,EAKtB,IALsB,CAAxB;AAOD,aArBD,MAqBO,IAAItD,UAAU,CAAC2J,aAAX,CAAyBzI,MAAM,CAACe,IAAhC,CAAJ,EAA2C;AAChDsH,cAAAA,UAAU,CAACtF,OAAX,GAAqB,KAAK2F,oBAAL,CAA0B1I,MAA1B,EAAkC6C,SAAlC,CAArB;AACAyF,cAAAA,aAAa,CAACvF,OAAd,GAAwB,KAAK2F,oBAAL,CACtB1I,MADsB,EAEtB6C,SAFsB,EAGtBM,YAAY,CAACuD,GAAb,CAAiBtE,WAAjB,CAHsB,EAItB,IAJsB,CAAxB;AAMD,aARM,MAQA,IAAItD,UAAU,CAACkJ,UAAX,CAAsBhI,MAAM,CAACe,IAA7B,CAAJ,EAAwC;AAC7C,kBAAM4H,aAAa,GAAGpE,mBAAmB,CAACqE,MAApB,CAA2B3I,KAA3B,CAAtB;AACA,kBAAM4I,YAAY,GAAGjE,sBAAsB,CAACgE,MAAvB,CAA8B3I,KAA9B,CAArB;AACAoI,cAAAA,UAAU,CAACtF,OAAX,GAAqB,KAAK+F,iBAAL,CACnB9I,MADmB,EAEnB2I,aAFmB,EAGnBE,YAHmB,EAInB5I,KAJmB,CAArB;AAMAqI,cAAAA,aAAa,CAACvF,OAAd,GAAwB,KAAK+F,iBAAL,CACtB9I,MADsB,EAEtB2I,aAFsB,EAGtBE,YAHsB,EAItB5I,KAJsB,EAKtBkD,YAAY,CAACuD,GAAb,CAAiBtE,WAAjB,CALsB,EAMtB,IANsB,CAAxB;AAQD,aAjBM,MAiBA;AACLiG,cAAAA,UAAU,CAACtF,OAAX,GAAqB,KAAKgG,mBAAL,CACnB/I,MADmB,EAEnB6C,SAFmB,EAGnB5C,KAHmB,CAArB;AAKAqI,cAAAA,aAAa,CAACvF,OAAd,GAAwB,KAAKgG,mBAAL,CACtB/I,MADsB,EAEtB6C,SAFsB,EAGtB5C,KAHsB,EAItBkD,YAAY,CAACuD,GAAb,CAAiBtE,WAAjB,CAJsB,EAKtB,IALsB,CAAxB;AAOD;AACF,WA9DD,MA8DO;AACLiG,YAAAA,UAAU,CAACtF,OAAX,GAAqB,KAAKiG,iBAAL,CAAuBhJ,MAAvB,CAArB;AACAsI,YAAAA,aAAa,CAACvF,OAAd,GAAwB,KAAKiG,iBAAL,CACtBhJ,MADsB,EAEtBmD,YAAY,CAACuD,GAAb,CAAiBtE,WAAjB,CAFsB,EAGtB,IAHsB,CAAxB;AAKD;;AAED,cAAIiG,UAAU,CAACtF,OAAX,IAAsB,IAAtB,IAA8BsF,UAAU,CAACtF,OAAX,CAAmBkE,MAAnB,GAA4B,CAA9D,EAAiE;AAC/DlE,YAAAA,OAAO,CAACgC,IAAR,CAAasD,UAAb;AACD;;AACD,cACEC,aAAa,CAACvF,OAAd,IAAyB,IAAzB,IACAuF,aAAa,CAACvF,OAAd,CAAsBkE,MAAtB,GAA+B,CAFjC,EAGE;AACAlE,YAAAA,OAAO,CAACgC,IAAR,CAAauD,aAAb;AACD;AACF;;AAED,YAAI7F,OAAJ,EAAa;AACXM,UAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,YAAAA,KAAK,EAAE,WADI;AAEXC,YAAAA,KAAK,EAAE5F,0BAA0B,CAACoI,UAFvB;AAGXtC,YAAAA,KAAK,EAAE,EAHI;AAIXC,YAAAA,MAAM,EAAE,MAAM;AACZ9D,cAAAA,QAAQ,CAAC0H,QAAT,CAAkBhH,WAAlB,EAA+BE,QAA/B;AACD;AANU,WAAb;AASAY,UAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,YAAAA,KAAK,EAAE,uBADI;AAEXC,YAAAA,KAAK,EAAE5F,0BAA0B,CAACoI,UAFvB;AAGXtC,YAAAA,KAAK,EAAE,EAHI;AAIXC,YAAAA,MAAM,EAAE,MAAM;AACZ9D,cAAAA,QAAQ,CAAC0H,QAAT,CAAkBhH,WAAlB,EAA+BE,QAA/B,EAAyC,IAAzC;AACD;AANU,WAAb;AAQD;AACF,OA7HI,CA+HL;;;AACA,UAAM;AAAE+G,QAAAA;AAAF,UAAqBpH,IAAI,CAACwB,KAAhC;;AACA,UAAI4F,cAAc,CAACjC,MAAf,GAAwB,CAA5B,EAA+B;AAC7B,YAAIxE,OAAJ,EAAa;AACXM,UAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,YAAAA,KAAK,EAAE,gBADI;AAEXqB,YAAAA,QAAQ,EAAE/H,gBAAgB,CAAC4K,IAFhB;AAGXjE,YAAAA,KAAK,EAAE5F,0BAA0B,CAACoI,UAHvB;AAIXtC,YAAAA,KAAK,EAAE,EAJI;AAKXC,YAAAA,MAAM,EAAE,MAAM;AACZ9D,cAAAA,QAAQ,CAAC6H,UAAT,CAAoBF,cAApB;AACD;AAPU,WAAb;AAUAnG,UAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,YAAAA,KAAK,EAAE,2BADI;AAEXC,YAAAA,KAAK,EAAE5F,0BAA0B,CAACoI,UAFvB;AAGXtC,YAAAA,KAAK,EAAE,EAHI;AAIXC,YAAAA,MAAM,EAAE,MAAM;AACZ9D,cAAAA,QAAQ,CAAC6H,UAAT,CAAoBF,cAApB,EAAoC,IAApC;AACD;AANU,WAAb;AAQD;;AAED,YAAI1G,KAAK,CAAC6G,UAAV,EAAsB;AACpBtG,UAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,YAAAA,KAAK,EAAE,sBADI;AAEXC,YAAAA,KAAK,EAAE5F,0BAA0B,CAACgK,UAFvB;AAGXlE,YAAAA,KAAK,EAAE,EAHI;AAIXC,YAAAA,MAAM,EAAE,MAAM;AACZ,mBAAK9D,QAAL,CAAcgI,YAAd,CAA2BL,cAA3B;AACD;AANU,WAAb;AAQD;AACF;AACF;;AAED,QAAInG,OAAO,CAACkE,MAAR,KAAmB,CAAvB,EAA0B;AACxB,aAAO,KAAP;AACD;;AAED5I,IAAAA,cAAc,CAACmL,WAAf,CACEjI,QAAQ,CAACkI,WADX,EAEE1H,KAAK,CAAC2H,KAFR,EAGE3H,KAAK,CAAC4H,KAHR,EAIE5G,OAJF;AAMA,WAAO,IAAP;AACD;;AAEDmF,EAAAA,iBAAiB,CAAClI,MAAD,EAAS;AAAA;;AACxB,QAAM;AAAEwC,MAAAA;AAAF,QAAY,KAAKjB,QAAL,CAAcmB,KAAhC;AACA,QAAM;AAAEkH,MAAAA;AAAF,QAAgBpH,KAAtB;AACA,QAAMqH,cAAc,GAAGD,SAAS,CAACE,eAAV,CAA0B9J,MAAM,CAACe,IAAjC,EAAuCf,MAAM,CAACiG,IAA9C,CAAvB;AACA,QAAM8D,aAAa,GAAGpL,yBAAyB,CAACqL,UAA1B,CACpBJ,SADoB,EAEpBC,cAFoB,CAAtB;AAKA,QAAM9G,OAAO,GAAG,EAAhB;;AATwB,+BAWfkH,CAXe;AAYtB,UAAM;AAAEC,QAAAA,WAAF;AAAetB,QAAAA,MAAf;AAAuB1D,QAAAA,KAAvB;AAA8BiF,QAAAA,UAA9B;AAA0ClF,QAAAA;AAA1C,UAAoD8E,aAAa,CACrEE,CADqE,CAAvE;AAGAlH,MAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,QAAAA,KADW;AAEXiF,QAAAA,WAFW;AAGX9D,QAAAA,IAAI,EAAE+D,UAAU,GAAGjM,OAAH,GAAa,IAHlB;AAIXgH,QAAAA,KAJW;AAKXE,QAAAA,KAAK,EAAE6E,CALI;AAMX5E,QAAAA,MAAM,EAAE,MAAM;AACZ,UAAA,KAAI,CAAC9D,QAAL,CAAcE,qBAAd,CACEe,KAAK,CAAC4H,oBAAN,CAA2BpK,MAAM,CAACiG,IAAlC,CADF,EAEE2C,MAFF;AAID;AAXU,OAAb;AAfsB;;AAWxB,SAAK,IAAIqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,aAAa,CAAC9C,MAAlC,EAA0CgD,CAAC,IAAI,CAA/C,EAAkD;AAAA,YAAzCA,CAAyC;AAiBjD;;AACD,WAAOlH,OAAP;AACD;;AAEDqF,EAAAA,mBAAmB,CAACpI,MAAD,EAAS;AAAA;;AAC1B,QAAM;AAAEwC,MAAAA;AAAF,QAAY,KAAKjB,QAAL,CAAcmB,KAAhC;AACA,QAAM;AAAEkH,MAAAA;AAAF,QAAgBpH,KAAtB;AACA,QAAMqH,cAAc,GAAGD,SAAS,CAACE,eAAV,CAA0B9J,MAAM,CAACe,IAAjC,EAAuCf,MAAM,CAACiG,IAA9C,CAAvB;AACA,QAAI8D,aAAJ;AAEA,QAAM9H,WAAW,GAAGO,KAAK,CAAC4H,oBAAN,CAA2BpK,MAAM,CAACiG,IAAlC,CAApB;;AACA,QAAInH,UAAU,CAACuL,aAAX,CAAyBrK,MAAM,CAACe,IAAhC,CAAJ,EAA2C;AACzCgJ,MAAAA,aAAa,GAAGnL,wBAAwB,CAACoL,UAAzB,CACdH,cADc,EAEdjB,MAAM,IAAI;AACR,aAAKpH,2BAAL,CAAiCS,WAAjC,EAA8C2G,MAA9C;AACD,OAJa,CAAhB;AAMD,KAPD,MAOO,IAAI9J,UAAU,CAACwL,aAAX,CAAyBtK,MAAM,CAACe,IAAhC,CAAJ,EAA2C;AAChDgJ,MAAAA,aAAa,GAAGlL,wBAAwB,CAACmL,UAAzB,CACdH,cADc,EAEdjB,MAAM,IAAI;AACR,aAAKpH,2BAAL,CAAiCS,WAAjC,EAA8C2G,MAA9C;AACD,OAJa,CAAhB;AAMD,KAPM,MAOA;AACL1J,MAAAA,GAAG,CAAC6I,KAAJ,CAAU,4CAAV;AACA,aAAO,IAAP;AACD;;AAED,QAAMhF,OAAO,GAAG,EAAhB;;AA1B0B,iCA4BjBkH,CA5BiB;AA6BxB,UAAM;AAAErB,QAAAA,MAAF;AAAUuB,QAAAA;AAAV,UAAyBJ,aAAa,CAACE,CAAD,CAA5C;AACAlH,MAAAA,OAAO,CAACgC,IAAR,iCACKgF,aAAa,CAACE,CAAD,CADlB;AAEE7D,QAAAA,IAAI,EAAE+D,UAAU,GAAGjM,OAAH,GAAa,IAF/B;AAGEkH,QAAAA,KAAK,EAAE6E,CAHT;AAIE5E,QAAAA,MAAM,EAAE,MAAM;AACZ,cACEuD,MAAM,IACNA,MAAM,CAAC7H,IAAP,KAAgBhC,oBAAoB,CAACwL,mBAFvC,EAGE;AACA;AACD;;AACD,UAAA,MAAI,CAAChJ,QAAL,CAAcE,qBAAd,CAAoCQ,WAApC,EAAiD2G,MAAjD;AACD;AAZH;AA9BwB;;AA4B1B,SAAK,IAAIqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,aAAa,CAAC9C,MAAlC,EAA0CgD,CAAC,IAAI,CAA/C,EAAkD;AAAA,aAAzCA,CAAyC;AAgBjD;;AACD,WAAOlH,OAAP;AACD;;AAEDgG,EAAAA,mBAAmB,CACjB/I,MADiB,EAEjB6C,SAFiB,EAGjB5C,KAHiB,EAMjB;AAAA,QAFAuK,WAEA,uEAFc,EAEd;AAAA,QADA9K,QACA,uEADW,KACX;AACA,QAAMmB,WAAW,GAAGpC,EAAE,CAAC+B,WAAH,CAAeW,QAAf,CAAwBlB,KAAxB,CAApB;AACA,QAAM;AAAEC,MAAAA,MAAF;AAAUuK,MAAAA,IAAI,EAAE5K;AAAhB,QAA+B2K,WAArC;AACA,QAAMzH,OAAO,GAAG,EAAhB;AACA,QAAM;AAAEP,MAAAA;AAAF,QAAY,KAAKjB,QAAL,CAAcmB,KAAhC;AACA,QAAMT,WAAW,GAAGO,KAAK,CAAC4H,oBAAN,CAA2BpK,MAAM,CAACiG,IAAlC,CAApB;AAEAlD,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACX2F,MAAAA,WAAW,eACT;AAAK,QAAA,SAAS,EAAC;AAAf,eACS7H,SADT,OAFS;AAMXuC,MAAAA,KAAK,EAAE;AANI,KAAb;AASArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,iBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,iBAA4ChG,KAA5C,sBAFA;AAGXoF,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBc,EAAhB,CAAmBH,WAAnB,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,qBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,qBAAgDpD,SAAhD,sBAFA;AAGXwC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgB0K,KAAhB,CAAsB/J,WAAtB,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,cAEOgD,SAFP,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,iBADM;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,uBAAkDpD,SAAlD,CAFA;AAGXwC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgB2K,QAAhB,CAAyBhK,WAAzB,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,uBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,+BAA0DhG,KAA1D,CAFA;AAGXoF,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgB2K,QAAhB,CAAyBhK,WAAzB,EAAsCiK,GAAtC,EAFF,EAGEpL,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,cAEOgD,SAFP,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,kBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,0BAAqDpD,SAArD,CAFA;AAGXwC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBI,MAAhB,CAAuB,YAAvB,EAAqCO,WAArC,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,YAEKgD,SAFL,QAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,gBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,wBAAmDpD,SAAnD,CAFA;AAGXwC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEiL,WADF,EAEExK,MAAM,CAACE,MAAP,GAAgBI,MAAhB,CAAuB,UAAvB,EAAmCO,WAAnC,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBA,WAAOrC,OAAP;AACD;;AAEDyF,EAAAA,mBAAmB,CACjBxI,MADiB,EAEjB6C,SAFiB,EAGjB5C,KAHiB,EAMjB;AAAA,QAFAuK,WAEA,uEAFc,EAEd;AAAA,QADA9K,QACA,uEADW,KACX;AACA,QAAMmB,WAAW,GAAGvB,0BAA0B,CAACwB,6BAA3B,CAClBd,MAAM,CAACe,IADW,EAElBd,KAFkB,CAApB;AAIA,QAAM;AAAEC,MAAAA,MAAF;AAAUuK,MAAAA,IAAI,EAAE5K;AAAhB,QAA+B2K,WAArC;AACA,QAAMzH,OAAO,GAAG,EAAhB;AACA,QAAMgI,QAAQ,GACZ9K,KAAK,KAAKE,MAAM,CAACC,iBAAjB,IACAH,KAAK,KAAKE,MAAM,CAACO,iBADjB,IAEA,CAACP,MAAM,CAACS,KAAP,CAAaX,KAAb,CAHH;AAIA,QAAM;AAAEuC,MAAAA;AAAF,QAAY,KAAKjB,QAAL,CAAcmB,KAAhC;AACA,QAAMT,WAAW,GAAGO,KAAK,CAAC4H,oBAAN,CAA2BpK,MAAM,CAACiG,IAAlC,CAApB;AAEAlD,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACX2F,MAAAA,WAAW,eACT;AAAK,QAAA,SAAS,EAAC;AAAf,SACGhL,QAAQ,GAAG,OAAH,GAAa,EADxB,QACkCmD,SADlC,OAFS;AAMXuC,MAAAA,KAAK,EAAE;AANI,KAAb;AAQArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,aADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,iBAA4CpD,SAA5C,CAFA;AAGXwC,MAAAA,MAAM,EAAE,MAAM;AACZ,YAAM2F,WAAW,GAAG1L,0BAA0B,CAACS,0BAA3B,CAClBC,MADkB,EAElBC,KAFkB,CAApB;AAIA,aAAKsB,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEE8K,WAFF,EAGEtL,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,OArBU;AAsBX0F,MAAAA,KAAK,EAAE;AAtBI,KAAb;AAwBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,iBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,qBAAgDpD,SAAhD,CAFA;AAGXwC,MAAAA,MAAM,EAAE,MAAM;AACZ,YAAM2F,WAAW,GAAG1L,0BAA0B,CAACS,0BAA3B,CAClBC,MADkB,EAElBC,KAFkB,EAGlB6K,GAHkB,EAApB;AAIA,aAAKvJ,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEE8K,WAFF,EAGEtL,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,cAEOgD,SAFP,GAGEnD,QAHF,CAPF;AAaD,OArBU;AAsBX0F,MAAAA,KAAK,EAAE;AAtBI,KAAb,EA9CA,CAuEA;AACA;AACA;;AACA,QAAI2F,QAAQ,IAAI,CAACjM,UAAU,CAACoC,UAAX,CAAsBlB,MAAM,CAACe,IAA7B,CAAjB,EAAqD;AACnDgC,MAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,QAAAA,KAAK,EAAE,cADI;AAEXiF,QAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,8BAAyDpD,SAAzD,CAFA;AAGXwC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBK,WAAhB,CAA4BM,WAA5B,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,SAjBU;AAkBX0F,QAAAA,KAAK,EAAE;AAlBI,OAAb;AAoBArC,MAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,QAAAA,KAAK,EAAE,0BADI;AAEXiF,QAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,0CAAqEpD,SAArE,CAFA;AAGXwC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgB+K,oBAAhB,CAAqCpK,WAArC,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,cAEOgD,SAFP,GAGEnD,QAHF,CAPF;AAaD,SAjBU;AAkBX0F,QAAAA,KAAK,EAAE;AAlBI,OAAb;AAoBArC,MAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,QAAAA,KAAK,EAAE,WADI;AAEXiF,QAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,2BAAsDpD,SAAtD,CAFA;AAGXwC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBS,QAAhB,CAAyBE,WAAzB,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,SAjBU;AAkBX0F,QAAAA,KAAK,EAAE;AAlBI,OAAb;AAoBArC,MAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,QAAAA,KAAK,EAAE,uBADI;AAEXiF,QAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,uCAAkEpD,SAAlE,CAFA;AAGXwC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBgL,iBAAhB,CAAkCrK,WAAlC,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,cAEOgD,SAFP,GAGEnD,QAHF,CAPF;AAaD,SAjBU;AAkBX0F,QAAAA,KAAK,EAAE;AAlBI,OAAb;AAoBD;;AACD,WAAOrC,OAAP;AACD;;AAED2F,EAAAA,oBAAoB,CAAC1I,MAAD,EAAS6C,SAAT,EAAwD;AAAA,QAApC2H,WAAoC,uEAAtB,EAAsB;AAAA,QAAlB9K,QAAkB,uEAAP,KAAO;AAC1E,QAAMqD,OAAO,GAAG,EAAhB;AACA,QAAM;AAAE7C,MAAAA,MAAF;AAAUuK,MAAAA,IAAI,EAAE5K;AAAhB,QAA+B2K,WAArC;AACA,QAAM;AAAEhI,MAAAA;AAAF,QAAY,KAAKjB,QAAL,CAAcmB,KAAhC;AACA,QAAMT,WAAW,GAAGO,KAAK,CAAC4H,oBAAN,CAA2BpK,MAAM,CAACiG,IAAlC,CAApB;AAEAlD,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACX2F,MAAAA,WAAW,eACT;AAAK,QAAA,SAAS,EAAC;AAAf,SACGhL,QAAQ,GAAG,MAAH,GAAY,EADvB,QACiCmD,SADjC,OAFS;AAMXuC,MAAAA,KAAK,EAAE;AANI,KAAb;AAQArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,MADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,aAFA;AAGXZ,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBiL,MAAhB,EAFF,EAGEzL,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,EAEE,MAFF,EAGEH,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,OADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,cAFA;AAGXZ,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBkL,OAAhB,EAFF,EAGE1L,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,EAEE,OAFF,EAGEH,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,MADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,aAFA;AAGXZ,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEiL,WADF,EAEExK,MAAM,CAACE,MAAP,GAAgBmL,MAAhB,EAFF,EAGE3L,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,EAEE,MAFF,EAGEH,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAqBA,WAAOrC,OAAP;AACD;;AAED+F,EAAAA,iBAAiB,CACf9I,MADe,EAEf6C,SAFe,EAGfgG,YAHe,EAIf5I,KAJe,EAOf;AAAA,QAFAuK,WAEA,uEAFc,EAEd;AAAA,QADA9K,QACA,uEADW,KACX;AACA,QAAMmB,WAAW,GAAGpC,EAAE,CAAC+B,WAAH,CAAeC,QAAf,CAAwBR,KAAxB,CAApB;AACA,QAAM;AAAEC,MAAAA,MAAF;AAAUuK,MAAAA,IAAI,EAAE5K;AAAhB,QAA+B2K,WAArC;AACA,QAAM;AAAEhI,MAAAA;AAAF,QAAY,KAAKjB,QAAL,CAAcmB,KAAhC;AACA,QAAMT,WAAW,GAAGO,KAAK,CAAC4H,oBAAN,CAA2BpK,MAAM,CAACiG,IAAlC,CAApB;AAEA,QAAMlD,OAAO,GAAG,EAAhB;AAEAA,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACX2F,MAAAA,WAAW,eACT;AAAK,QAAA,SAAS,EAAC;AAAf,SACGhL,QAAQ,GAAG,OAAH,GAAa,EADxB,QACkCmJ,YADlC,OAFS;AAMXzD,MAAAA,KAAK,EAAE;AANI,KAAb;AAQArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,SADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,iBAA4C4C,YAA5C,CAFA;AAGXxD,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBc,EAAhB,CAAmBH,WAAnB,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,aADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,qBAAgD4C,YAAhD,CAFA;AAGXxD,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgB0K,KAAhB,CAAsB/J,WAAtB,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,cAEOgD,SAFP,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,gBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,wBAAmD4C,YAAnD,CAFA;AAGXxD,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBS,QAAhB,CAAyBE,WAAzB,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,yBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,oCAA+D4C,YAA/D,CAFA;AAGXxD,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBgL,iBAAhB,CAAkCrK,WAAlC,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,cAEOgD,SAFP,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,eADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,8BAAyD4C,YAAzD,CAFA;AAGXxD,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBK,WAAhB,CAA4BM,WAA5B,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,aAEMgD,SAFN,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,wBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,mCAA8D4C,YAA9D,CAFA;AAGXxD,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgB+K,oBAAhB,CAAqCpK,WAArC,CAFF,EAGEnB,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,cAEOgD,SAFP,GAGEnD,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBA,WAAOrC,OAAP;AACD;;AAEDiG,EAAAA,iBAAiB,CAAChJ,MAAD,EAA6C;AAAA,QAApCwK,WAAoC,uEAAtB,EAAsB;AAAA,QAAlB9K,QAAkB,uEAAP,KAAO;AAC5D,QAAM;AAAEQ,MAAAA,MAAF;AAAUuK,MAAAA,IAAI,EAAE5K;AAAhB,QAA+B2K,WAArC;AACA,QAAMzH,OAAO,GAAG,EAAhB;AACA,QAAM;AAAEP,MAAAA;AAAF,QAAY,KAAKjB,QAAL,CAAcmB,KAAhC;AACA,QAAMT,WAAW,GAAGO,KAAK,CAAC4H,oBAAN,CAA2BpK,MAAM,CAACiG,IAAlC,CAApB;AAEAlD,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACX2F,MAAAA,WAAW,eACT;AAAK,QAAA,SAAS,EAAC;AAAf,SACGhL,QAAQ,GAAG,OAAH,GAAa,EADxB,aAFS;AAMX0F,MAAAA,KAAK,EAAE;AANI,KAAb;AAQArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,aADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,aAFA;AAGXZ,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBmL,MAAhB,EAFF,EAGE3L,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,EAEE,MAFF,EAGEH,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAoBArC,IAAAA,OAAO,CAACgC,IAAR,CAAa;AACXE,MAAAA,KAAK,EAAE,iBADI;AAEXiF,MAAAA,WAAW,iCAA0BlK,MAAM,CAACiG,IAAjC,iBAFA;AAGXZ,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAcoJ,cAAd,CACE1I,WADF,EAEE3C,0BAA0B,CAACC,uBAA3B,CACEW,MADF,EAEEF,MAAM,CAACE,MAAP,GAAgBmL,MAAhB,GAAyBP,GAAzB,EAFF,EAGEpL,QAHF,CAFF,EAOEJ,0BAA0B,CAACM,kBAA3B,CACEC,UADF,EAEE,OAFF,EAGEH,QAHF,CAPF;AAaD,OAjBU;AAkBX0F,MAAAA,KAAK,EAAE;AAlBI,KAAb;AAqBA,WAAOrC,OAAP;AACD;;AAEDiE,EAAAA,aAAa,CAAChH,MAAD,EAASoC,WAAT,EAAsB8B,UAAtB,EAAkC;AAC7C,QAAMX,KAAK,GAAG,KAAKhC,QAAL,CAAciC,QAAd,EAAd;AACA,QAAM;AAAEK,MAAAA;AAAF,QAA+BN,KAArC;AACA,QAAM+H,WAAW,GAAG,CAClB;AACErG,MAAAA,KAAK,YAAKjF,MAAM,CAACiG,IAAZ,eADP;AAEEb,MAAAA,KAAK,EAAE,EAFT;AAGEC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAc4F,UAAd,CACE/E,WADF,EAEE9C,0BAA0B,CAAC8H,qBAA3B,CAAiDmE,SAFnD;AAID,OARH;AASEnF,MAAAA,IAAI,EAAE,KAAKoF,eAAL,CACJtH,UADI,EAEJ5E,0BAA0B,CAAC8H,qBAA3B,CAAiDmE,SAF7C,IAIFtN,QAJE,GAKF,IAdN;AAeEoI,MAAAA,SAAS,EAAExC;AAfb,KADkB,EAkBlB;AACEoB,MAAAA,KAAK,YAAKjF,MAAM,CAACiG,IAAZ,gBADP;AAEEb,MAAAA,KAAK,EAAE,EAFT;AAGEC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAc4F,UAAd,CACE/E,WADF,EAEE9C,0BAA0B,CAAC8H,qBAA3B,CAAiDqE,UAFnD;AAID,OARH;AASErF,MAAAA,IAAI,EAAE,KAAKoF,eAAL,CACJtH,UADI,EAEJ5E,0BAA0B,CAAC8H,qBAA3B,CAAiDqE,UAF7C,IAIFxN,QAJE,GAKF,IAdN;AAeEoI,MAAAA,SAAS,EAAExC;AAfb,KAlBkB,EAmClB;AACEoB,MAAAA,KAAK,eADP;AAEEG,MAAAA,KAAK,EAAE,EAFT;AAGEC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAc4F,UAAd,CACE/E,WADF,EAEE9C,0BAA0B,CAAC8H,qBAA3B,CAAiDC,IAFnD,EAGE,KAHF,EAIE,IAJF;AAMD,OAVH;AAWE9B,MAAAA,QAAQ,EAAE,CAACrB;AAXb,KAnCkB,CAApB;;AAiDA,QAAIpF,UAAU,CAACqJ,YAAX,CAAwBnI,MAAM,CAACe,IAA/B,CAAJ,EAA0C;AACxCuK,MAAAA,WAAW,CAACvG,IAAZ,CAAiB;AACfE,QAAAA,KAAK,gBAASjF,MAAM,CAACiG,IAAhB,gBADU;AAEfb,QAAAA,KAAK,EAAE,EAFQ;AAGfC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAc4F,UAAd,CACE/E,WADF,EAEE9C,0BAA0B,CAAC8H,qBAA3B,CAAiDmE,SAFnD,EAGE,IAHF;AAKD,SATc;AAUfnF,QAAAA,IAAI,EAAE,KAAKoF,eAAL,CACJtH,UADI,EAEJ5E,0BAA0B,CAAC8H,qBAA3B,CAAiDmE,SAF7C,EAGJ,IAHI,IAKFtN,QALE,GAMF,IAhBW;AAiBfoI,QAAAA,SAAS,EAAExC;AAjBI,OAAjB;AAmBAyH,MAAAA,WAAW,CAACvG,IAAZ,CAAiB;AACfE,QAAAA,KAAK,gBAASjF,MAAM,CAACiG,IAAhB,kBADU;AAEfb,QAAAA,KAAK,EAAE,EAFQ;AAGfC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAc4F,UAAd,CACE/E,WADF,EAEE9C,0BAA0B,CAAC8H,qBAA3B,CAAiDqE,UAFnD,EAGE,IAHF;AAKD,SATc;AAUfrF,QAAAA,IAAI,EAAE,KAAKoF,eAAL,CACJtH,UADI,EAEJ5E,0BAA0B,CAAC8H,qBAA3B,CAAiDqE,UAF7C,EAGJ,IAHI,IAKFxN,QALE,GAMF,IAhBW;AAiBfoI,QAAAA,SAAS,EAAExC;AAjBI,OAAjB;AAmBD;;AACD,WAAOyH,WAAP;AACD;;AAEDpE,EAAAA,qBAAqB,CAAClH,MAAD,EAASiC,WAAT,EAAsB;AACzC,QAAMsB,KAAK,GAAG,KAAKhC,QAAL,CAAciC,QAAd,EAAd;AACA,QAAM;AAAEK,MAAAA;AAAF,QAA+BN,KAArC;AACA,QAAM2D,qBAAqB,GAAG,CAC5B;AACEjC,MAAAA,KAAK,EAAE,aADT;AAEEyF,MAAAA,WAAW,eACT;AAAK,QAAA,SAAS,EAAC;AAAf,sBACE;AAAM,QAAA,SAAS,EAAC;AAAhB,sBACE,oBAAC,eAAD;AACE,QAAA,IAAI,EAAEzM,QADR;AAEE,QAAA,KAAK,EAAE;AAAEyN,UAAAA,KAAK,EAAE7H;AAAT;AAFT,QADF,CADF,eAOE;AAAM,QAAA,SAAS,EAAC;AAAhB,+BAPF,eAQE;AAAM,QAAA,SAAS,EAAC;AAAhB,SACGvF,kBAAkB,CAACqN,aAAnB,KAAqC,QAArC,GAAgD,QADnD,CARF,CAHJ;AAgBEvG,MAAAA,KAAK,EAAE;AAhBT,KAD4B,EAmB5B;AACEH,MAAAA,KAAK,YAAKjF,MAAM,CAACiG,IAAZ,eADP;AAEEb,MAAAA,KAAK,EAAE,EAFT;AAGEC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAc4F,UAAd,CACElF,WADF,EAEE3C,0BAA0B,CAAC8H,qBAA3B,CAAiDmE,SAFnD,EAGE,KAHF,EAIE,IAJF;AAMD;AAVH,KAnB4B,EA+B5B;AACEtG,MAAAA,KAAK,YAAKjF,MAAM,CAACiG,IAAZ,gBADP;AAEEb,MAAAA,KAAK,EAAE,EAFT;AAGEC,MAAAA,MAAM,EAAE,MAAM;AACZ,aAAK9D,QAAL,CAAc4F,UAAd,CACElF,WADF,EAEE3C,0BAA0B,CAAC8H,qBAA3B,CAAiDqE,UAFnD,EAGE,KAHF,EAIE,IAJF;AAMD;AAVH,KA/B4B,CAA9B;;AA4CA,QAAI3M,UAAU,CAACqJ,YAAX,CAAwBnI,MAAM,CAACe,IAA/B,CAAJ,EAA0C;AACxCmG,MAAAA,qBAAqB,CAACnC,IAAtB,CAA2B;AACzBE,QAAAA,KAAK,gBAASjF,MAAM,CAACiG,IAAhB,gBADoB;AAEzBb,QAAAA,KAAK,EAAE,EAFkB;AAGzBC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAc4F,UAAd,CACElF,WADF,EAEE3C,0BAA0B,CAAC8H,qBAA3B,CAAiDmE,SAFnD,EAGE,IAHF,EAIE,IAJF;AAMD;AAVwB,OAA3B;AAYArE,MAAAA,qBAAqB,CAACnC,IAAtB,CAA2B;AACzBE,QAAAA,KAAK,gBAASjF,MAAM,CAACiG,IAAhB,kBADoB;AAEzBb,QAAAA,KAAK,EAAE,EAFkB;AAGzBC,QAAAA,MAAM,EAAE,MAAM;AACZ,eAAK9D,QAAL,CAAc4F,UAAd,CACElF,WADF,EAEE3C,0BAA0B,CAAC8H,qBAA3B,CAAiDqE,UAFnD,EAGE,IAHF,EAIE,IAJF;AAMD;AAVwB,OAA3B;AAYD;;AACD,WAAOvE,qBAAP;AACD;;AAEDsE,EAAAA,eAAe,CAACtH,UAAD,EAA8C;AAAA,QAAjC0H,SAAiC,uEAArB,IAAqB;AAAA,QAAfC,KAAe,uEAAP,KAAO;;AAC3D,QAAI,CAAC3H,UAAL,EAAiB;AACf,aAAO,KAAP;AACD;;AACD,WAAOA,UAAU,CAAC0H,SAAX,KAAyBA,SAAzB,IAAsC1H,UAAU,CAAC2H,KAAX,KAAqBA,KAAlE;AACD;;AA90CuD;;gBAApDvM,0B,gBACgBjB,cAAc,CAACyN,MAAf,CAAsBC,IAAtB,GAA6B,E;;gBAD7CzM,0B,wBAGwBjB,cAAc,CAACyN,MAAf,CAAsBC,IAAtB,GAA6B,E;;gBAHrDzM,0B,kBAKkBjB,cAAc,CAACyN,MAAf,CAAsBC,IAAtB,GAA6B,E;;gBAL/CzM,0B,gBAOgBjB,cAAc,CAACyN,MAAf,CAAsBC,IAAtB,GAA6B,E;;gBAP7CzM,0B,gBASgBjB,cAAc,CAACyN,MAAf,CAAsBC,IAAtB,GAA6B,G;;gBAT7CzM,0B,kBAWkBjB,cAAc,CAACyN,MAAf,CAAsBC,IAAtB,GAA6B,G;;gBAX/CzM,0B,2BAa2B;AAC7BiM,EAAAA,SAAS,EAAE,KADkB;AAE7BE,EAAAA,UAAU,EAAE,MAFiB;AAG7BpE,EAAAA,IAAI,EAAE;AAHuB,C;;AAo0CjC,eAAe/H,0BAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhFilterFilled, vsRemove, vsCheck, vsFilter } from '@deephaven/icons';\nimport debounce from 'lodash.debounce';\nimport {\n ContextActions,\n ContextActionUtils,\n GLOBAL_SHORTCUTS,\n} from '@deephaven/components';\nimport { GridMouseHandler } from '@deephaven/grid';\nimport dh from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport {\n DateTimeFormatContextMenu,\n DecimalFormatContextMenu,\n IntegerFormatContextMenu,\n} from '../format-context-menus';\nimport './IrisGridContextMenuHandler.scss';\nimport TableUtils from '../TableUtils';\nimport { TableColumnFormatter, DateTimeColumnFormatter } from '../formatters';\nimport SHORTCUTS from '../IrisGridShortcuts';\n\nconst log = Log.module('IrisGridContextMenuHandler');\n\nconst DEBOUNCE_UPDATE_FORMAT = 150;\nconst CONTEXT_MENU_DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss.SSSSSSSSS';\n\n/**\n * Used to eat the mouse event in the bottom right corner of the scroll bar\n */\nclass IrisGridContextMenuHandler extends GridMouseHandler {\n static GROUP_EDIT = ContextActions.groups.high + 10;\n\n static GROUP_HIDE_COLUMNS = ContextActions.groups.high + 25;\n\n static GROUP_FILTER = ContextActions.groups.high + 50;\n\n static GROUP_SORT = ContextActions.groups.high + 75;\n\n static GROUP_COPY = ContextActions.groups.high + 100;\n\n static GROUP_FORMAT = ContextActions.groups.high + 150;\n\n static COLUMN_SORT_DIRECTION = {\n ascending: 'ASC',\n descending: 'DESC',\n none: null,\n };\n\n /**\n * Get filter condition for quick filter with existed column filter and the new filter to be applied,\n * returns new filter if filters are not additive.\n * if filters are additive, returns filter conditions combined with 'and'.\n * @param {FilterCondition} columnFilter\n * @param {FilterCondition} newColumnFilter\n * @param {boolean} additive\n */\n static getQuickFilterCondition(\n columnFilter,\n newColumnFilter,\n additive = false\n ) {\n if (!additive || !columnFilter) {\n return newColumnFilter;\n }\n return columnFilter.and(newColumnFilter);\n }\n\n /**\n * combines filter text with '&&' if filters are additive\n * @param {String} filterText\n * @param {String} newFilterText\n * @param {boolean} additive\n */\n static getQuickFilterText(filterText, newFilterText, additive = false) {\n return additive && filterText\n ? `${filterText} && ${newFilterText}`\n : newFilterText;\n }\n\n /**\n * Gets an equality filter for the provided numeric value\n * @param {dh.Column} column The column to make the filter for\n * @param {Number} value The value to get the equality filter for\n */\n static getNumberValueEqualsFilter(column, value) {\n const columnFilter = column.filter();\n if (value === Number.POSITIVE_INFINITY) {\n return dh.FilterCondition.invoke('isInf', columnFilter).and(\n columnFilter.greaterThan(dh.FilterValue.ofNumber(0))\n );\n }\n if (value === Number.NEGATIVE_INFINITY) {\n return dh.FilterCondition.invoke('isInf', columnFilter).and(\n columnFilter.lessThan(dh.FilterValue.ofNumber(0))\n );\n }\n if (Number.isNaN(value)) {\n return dh.FilterCondition.invoke('isNaN', columnFilter);\n }\n\n const filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(\n column.type,\n value\n );\n return columnFilter.eq(filterValue);\n }\n\n static getFilterValueForNumberOrChar(columnType, value) {\n return TableUtils.isCharType(columnType)\n ? dh.FilterValue.ofString(String.fromCharCode(value))\n : dh.FilterValue.ofNumber(value);\n }\n\n constructor(irisGrid) {\n super();\n\n this.debouncedUpdateCustomFormat = debounce(\n irisGrid.handleFormatSelection,\n DEBOUNCE_UPDATE_FORMAT\n );\n\n this.irisGrid = irisGrid;\n }\n\n componentWillUnmount() {\n this.debouncedUpdateCustomFormat.flush();\n }\n\n onContextMenu(gridPoint, grid, event) {\n const { irisGrid } = this;\n const { y, column: columnIndex, row: rowIndex } = gridPoint;\n const modelColumn = irisGrid.getModelColumn(columnIndex);\n const modelRow = irisGrid.getModelRow(rowIndex);\n const { model, canCopy } = irisGrid.props;\n const { columns } = model;\n const value = model.valueForCell(modelColumn, modelRow);\n const valueText = model.textForCell(modelColumn, modelRow);\n const column = columns[modelColumn];\n\n const actions = [];\n\n const {\n metrics,\n isFilterBarShown,\n reverseType,\n quickFilters,\n advancedFilters,\n searchFilter,\n } = irisGrid.state;\n const theme = irisGrid.getTheme();\n const { columnHeaderHeight, gridY } = metrics;\n const {\n filterIconColor,\n filterBarActiveColor,\n contextMenuSortIconColor,\n contextMenuReverseIconColor,\n } = theme;\n const { onContextMenu, settings } = irisGrid.props;\n\n const modelSort = model.sort;\n const columnSort = TableUtils.getSortForColumn(modelSort, modelColumn);\n const hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;\n const dateFilterFormatter = new DateTimeColumnFormatter({\n timeZone: settings.timeZone,\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT,\n });\n const previewFilterFormatter = new DateTimeColumnFormatter({\n timeZone: settings.timeZone,\n showTimeZone: settings.showTimeZone,\n showTSeparator: settings.showTSeparator,\n defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT,\n });\n const isColumnFrozen = model.isColumnFrozen(columnIndex);\n\n if (column != null) {\n const { table } = model;\n actions.push(\n onContextMenu({\n table,\n model,\n value,\n valueText,\n column,\n rowIndex,\n columnIndex,\n modelRow,\n modelColumn,\n })\n );\n }\n\n if (column != null && model.isFilterable(modelColumn)) {\n actions.push({\n title: 'Clear Column Filter',\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 30,\n action: () => {\n this.irisGrid.removeColumnFilter(modelColumn);\n },\n disabled: !(\n quickFilters.has(modelColumn) || advancedFilters.has(modelColumn)\n ),\n });\n }\n\n if (isFilterBarShown ? y <= gridY : y <= columnHeaderHeight) {\n // grid header context menu options\n if (column != null) {\n const { userColumnWidths } = metrics;\n const isColumnHidden = [...userColumnWidths.values()].some(\n columnWidth => columnWidth === 0\n );\n actions.push({\n title: 'Hide Column',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n this.irisGrid.hideColumnByVisibleIndex(columnIndex);\n },\n });\n actions.push({\n title: isColumnFrozen ? 'Unfreeze Column' : 'Freeze Column',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n if (isColumnFrozen) {\n this.irisGrid.unFreezeColumnByColumnName(column.name);\n } else {\n this.irisGrid.freezeColumnByColumnName(column.name);\n }\n },\n order: 10,\n });\n actions.push({\n title: 'Show All Columns',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n this.irisGrid.showAllColumns();\n },\n disabled: !isColumnHidden,\n });\n actions.push({\n title: 'Quick Filters',\n icon: vsRemove,\n iconColor: filterBarActiveColor,\n shortcut: SHORTCUTS.TABLE.TOGGLE_QUICK_FILTER,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 10,\n action: () => {\n this.irisGrid.toggleFilterBar(columnIndex);\n },\n });\n actions.push({\n title: 'Advanced Filters',\n icon: advancedFilters.get(modelColumn) ? dhFilterFilled : vsFilter,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 20,\n action: () => {\n this.irisGrid.handleAdvancedMenuOpened(columnIndex);\n },\n });\n actions.push({\n title: 'Clear Table Filters',\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 40,\n // this just displays the shortcut, the actual listener is in irisgrid handleKeyDown\n shortcut: SHORTCUTS.TABLE.CLEAR_FILTERS,\n action: () => {\n this.irisGrid.clearAllFilters();\n },\n disabled: !(\n quickFilters.size > 0 ||\n advancedFilters.size > 0 ||\n searchFilter !== null\n ),\n });\n actions.push({\n title: 'Sort by',\n icon: vsRemove,\n iconColor: contextMenuSortIconColor,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 10,\n actions: this.sortByActions(column, modelColumn, columnSort),\n });\n actions.push({\n title: 'Add Additional Sort',\n /**\n * disable conditions:\n * 1. table is sorted only by this column\n * 2. table is only reversed\n * 3. 1 & 2 combined\n * 4. table has no sort\n * reverse is a type of sort, so needs to be accounted for in exclusions\n * */\n disabled:\n (columnSort && modelSort.length === 1) ||\n (hasReverse && modelSort.length === 1) ||\n (columnSort && hasReverse && modelSort.length === 2) ||\n modelSort.length === 0,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 20,\n actions: this.additionalSortActions(column, modelColumn),\n });\n actions.push({\n title: 'Clear Table Sorting',\n disabled:\n // reverse is a type of sort, but special and needs to be exluded despite being part of model.sort\n modelSort.length === 0 || (hasReverse && modelSort.length === 1),\n group: IrisGridContextMenuHandler.GROUP_SORT,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.none\n );\n },\n order: 30,\n });\n actions.push({\n title:\n reverseType === TableUtils.REVERSE_TYPE.NONE\n ? 'Reverse Table'\n : 'Clear Reverse Table',\n icon: vsRemove,\n iconColor: contextMenuReverseIconColor,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 40,\n disabled: !model.isReversible,\n // this just displays the shortcut, the actual listener is in irisgrid handleKeyDown\n shortcut: SHORTCUTS.TABLE.REVERSE,\n action: () => {\n if (reverseType === TableUtils.REVERSE_TYPE.NONE) {\n this.irisGrid.reverse(TableUtils.REVERSE_TYPE.POST_SORT);\n } else {\n this.irisGrid.reverse(TableUtils.REVERSE_TYPE.NONE);\n }\n },\n });\n actions.push({\n title: 'Copy Column Name',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n action: () => {\n ContextActionUtils.copyToClipboard(\n model.textForColumnHeader(modelColumn)\n ).catch(e => log.error('Unable to copy header', e));\n },\n });\n\n if (TableUtils.isDateType(column.type)) {\n actions.push({\n title: 'Date/Time Format',\n group: IrisGridContextMenuHandler.GROUP_FORMAT,\n actions: this.dateFormatActions(column),\n });\n } else if (TableUtils.isNumberType(column.type)) {\n actions.push({\n title: 'Number Format',\n group: IrisGridContextMenuHandler.GROUP_FORMAT,\n actions: this.numberFormatActions(column),\n });\n }\n }\n } else {\n // grid data area context menu options\n if (column != null && rowIndex != null) {\n if (model.isFilterable(modelColumn)) {\n // cell data area contextmenu options\n const filterMenu = {\n title: 'Filter By Value',\n icon: vsRemove,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 10,\n actions: null,\n };\n\n const andFilterMenu = {\n title: 'Add Filter By Value',\n icon: vsRemove,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 20,\n actions: null,\n disabled: !quickFilters.get(modelColumn),\n };\n\n if (value != null) {\n // Chars get treated like numbers in terms of which filters are available\n if (\n TableUtils.isNumberType(column.type) ||\n TableUtils.isCharType(column.type)\n ) {\n // We want to show the full unformatted value if it's a number, so user knows which value they are matching\n // If it's a Char we just show the char\n const numberValueText = TableUtils.isCharType(column.type)\n ? String.fromCharCode(value)\n : `${value}`;\n filterMenu.actions = this.numberFilterActions(\n column,\n numberValueText,\n value\n );\n andFilterMenu.actions = this.numberFilterActions(\n column,\n numberValueText,\n value,\n quickFilters.get(modelColumn),\n true\n );\n } else if (TableUtils.isBooleanType(column.type)) {\n filterMenu.actions = this.booleanFilterActions(column, valueText);\n andFilterMenu.actions = this.booleanFilterActions(\n column,\n valueText,\n quickFilters.get(modelColumn),\n true\n );\n } else if (TableUtils.isDateType(column.type)) {\n const dateValueText = dateFilterFormatter.format(value);\n const previewValue = previewFilterFormatter.format(value);\n filterMenu.actions = this.dateFilterActions(\n column,\n dateValueText,\n previewValue,\n value\n );\n andFilterMenu.actions = this.dateFilterActions(\n column,\n dateValueText,\n previewValue,\n value,\n quickFilters.get(modelColumn),\n true\n );\n } else {\n filterMenu.actions = this.stringFilterActions(\n column,\n valueText,\n value\n );\n andFilterMenu.actions = this.stringFilterActions(\n column,\n valueText,\n value,\n quickFilters.get(modelColumn),\n true\n );\n }\n } else {\n filterMenu.actions = this.nullFilterActions(column);\n andFilterMenu.actions = this.nullFilterActions(\n column,\n quickFilters.get(modelColumn),\n true\n );\n }\n\n if (filterMenu.actions != null && filterMenu.actions.length > 0) {\n actions.push(filterMenu);\n }\n if (\n andFilterMenu.actions != null &&\n andFilterMenu.actions.length > 0\n ) {\n actions.push(andFilterMenu);\n }\n }\n\n if (canCopy) {\n actions.push({\n title: 'Copy Cell',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 10,\n action: () => {\n irisGrid.copyCell(columnIndex, rowIndex);\n },\n });\n\n actions.push({\n title: 'Copy Cell Unformatted',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 20,\n action: () => {\n irisGrid.copyCell(columnIndex, rowIndex, true);\n },\n });\n }\n }\n\n // data area, including blank space context menu options\n const { selectedRanges } = grid.state;\n if (selectedRanges.length > 0) {\n if (canCopy) {\n actions.push({\n title: 'Copy Selection',\n shortcut: GLOBAL_SHORTCUTS.COPY,\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 30,\n action: () => {\n irisGrid.copyRanges(selectedRanges);\n },\n });\n\n actions.push({\n title: 'Copy Selection w/ Headers',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 40,\n action: () => {\n irisGrid.copyRanges(selectedRanges, true);\n },\n });\n }\n\n if (model.isEditable) {\n actions.push({\n title: 'Delete Selected Rows',\n group: IrisGridContextMenuHandler.GROUP_EDIT,\n order: 50,\n action: () => {\n this.irisGrid.deleteRanges(selectedRanges);\n },\n });\n }\n }\n }\n\n if (actions.length === 0) {\n return false;\n }\n\n ContextActions.triggerMenu(\n irisGrid.gridWrapper,\n event.pageX,\n event.pageY,\n actions\n );\n return true;\n }\n\n dateFormatActions(column) {\n const { model } = this.irisGrid.props;\n const { formatter } = model;\n const selectedFormat = formatter.getColumnFormat(column.type, column.name);\n const formatOptions = DateTimeFormatContextMenu.getOptions(\n formatter,\n selectedFormat\n );\n\n const actions = [];\n\n for (let i = 0; i < formatOptions.length; i += 1) {\n const { description, format, group, isSelected, title } = formatOptions[\n i\n ];\n actions.push({\n title,\n description,\n icon: isSelected ? vsCheck : null,\n group,\n order: i,\n action: () => {\n this.irisGrid.handleFormatSelection(\n model.getColumnIndexByName(column.name),\n format\n );\n },\n });\n }\n return actions;\n }\n\n numberFormatActions(column) {\n const { model } = this.irisGrid.props;\n const { formatter } = model;\n const selectedFormat = formatter.getColumnFormat(column.type, column.name);\n let formatOptions;\n\n const columnIndex = model.getColumnIndexByName(column.name);\n if (TableUtils.isDecimalType(column.type)) {\n formatOptions = DecimalFormatContextMenu.getOptions(\n selectedFormat,\n format => {\n this.debouncedUpdateCustomFormat(columnIndex, format);\n }\n );\n } else if (TableUtils.isIntegerType(column.type)) {\n formatOptions = IntegerFormatContextMenu.getOptions(\n selectedFormat,\n format => {\n this.debouncedUpdateCustomFormat(columnIndex, format);\n }\n );\n } else {\n log.error('Invalid column type in numberFormatActions');\n return null;\n }\n\n const actions = [];\n\n for (let i = 0; i < formatOptions.length; i += 1) {\n const { format, isSelected } = formatOptions[i];\n actions.push({\n ...formatOptions[i],\n icon: isSelected ? vsCheck : null,\n order: i,\n action: () => {\n if (\n format &&\n format.type === TableColumnFormatter.TYPE_CONTEXT_CUSTOM\n ) {\n return;\n }\n this.irisGrid.handleFormatSelection(columnIndex, format);\n },\n });\n }\n return actions;\n }\n\n stringFilterActions(\n column,\n valueText,\n value,\n quickFilter = {},\n additive = false\n ) {\n const filterValue = dh.FilterValue.ofString(value);\n const { filter, text: filterText } = quickFilter;\n const actions = [];\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n "{valueText}"\n </div>\n ),\n order: 1,\n });\n\n actions.push({\n title: 'text is exactly',\n description: `Show only rows where ${column.name} is ${value} (case sensitive)`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().eq(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'text is not exactly',\n description: `Show only rows where ${column.name} is not ${valueText} (case sensitive)`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().notEq(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n additive\n )\n );\n },\n order: 20,\n });\n actions.push({\n title: `text contains`,\n description: `Show only rows where ${column.name} contains ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().contains(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `~${valueText}`,\n additive\n )\n );\n },\n order: 30,\n });\n actions.push({\n title: 'text does not contain',\n description: `Show only rows where ${column.name} does not contain ${value}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().contains(filterValue).not(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!~${valueText}`,\n additive\n )\n );\n },\n order: 40,\n });\n actions.push({\n title: 'text starts with',\n description: `Show only rows where ${column.name} starts with ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().invoke('startsWith', filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `${valueText}*`,\n additive\n )\n );\n },\n order: 50,\n });\n actions.push({\n title: 'text ends with',\n description: `Show only rows where ${column.name} ends with ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n quickFilter,\n column.filter().invoke('endsWith', filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `*${valueText}`,\n additive\n )\n );\n },\n order: 60,\n });\n return actions;\n }\n\n numberFilterActions(\n column,\n valueText,\n value,\n quickFilter = {},\n additive = false\n ) {\n const filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(\n column.type,\n value\n );\n const { filter, text: filterText } = quickFilter;\n const actions = [];\n const isFinite =\n value !== Number.POSITIVE_INFINITY &&\n value !== Number.NEGATIVE_INFINITY &&\n !Number.isNaN(value);\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {additive ? ' AND ' : ''}"{valueText}"\n </div>\n ),\n order: 1,\n });\n actions.push({\n title: 'is equal to',\n description: `Show only rows where ${column.name} is ${valueText}`,\n action: () => {\n const valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(\n column,\n value\n );\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n valueFilter,\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'is not equal to',\n description: `Show only rows where ${column.name} is not ${valueText}`,\n action: () => {\n const valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(\n column,\n value\n ).not();\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n valueFilter,\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n additive\n )\n );\n },\n order: 20,\n });\n\n // IDS-6092 Less/greater than filters don't make sense for Infinite/NaN\n // TODO (DH-11799): These char filters should work in Bard, with the merge for DH-11040: https://gitlab.eng.illumon.com/illumon/iris/merge_requests/5801\n // They do not work in Powell though, so disable them.\n if (isFinite && !TableUtils.isCharType(column.type)) {\n actions.push({\n title: 'greater than',\n description: `Show only rows where ${column.name} is greater than ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThan(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>${valueText}`,\n additive\n )\n );\n },\n order: 30,\n });\n actions.push({\n title: 'greater than or equal to',\n description: `Show only rows where ${column.name} is greater than or equal to ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThanOrEqualTo(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>=${valueText}`,\n additive\n )\n );\n },\n order: 40,\n });\n actions.push({\n title: 'less than',\n description: `Show only rows where ${column.name} is less than ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThan(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<${valueText}`,\n additive\n )\n );\n },\n order: 50,\n });\n actions.push({\n title: 'less than or equal to',\n description: `Show only rows where ${column.name} is less than or equal to ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThanOrEqualTo(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<=${valueText}`,\n additive\n )\n );\n },\n order: 60,\n });\n }\n return actions;\n }\n\n booleanFilterActions(column, valueText, quickFilter = {}, additive = false) {\n const actions = [];\n const { filter, text: filterText } = quickFilter;\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {additive ? 'AND ' : ''}"{valueText}"\n </div>\n ),\n order: 1,\n });\n actions.push({\n title: 'true',\n description: `Show only rows where ${column.name} is true`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isTrue(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'true',\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'false',\n description: `Show only rows where ${column.name} is false`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isFalse(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'false',\n additive\n )\n );\n },\n order: 20,\n });\n actions.push({\n title: 'null',\n description: `Show only rows where ${column.name} is null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n quickFilter,\n column.filter().isNull(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'null',\n additive\n )\n );\n },\n order: 30,\n });\n\n return actions;\n }\n\n dateFilterActions(\n column,\n valueText,\n previewValue,\n value,\n quickFilter = {},\n additive = false\n ) {\n const filterValue = dh.FilterValue.ofNumber(value);\n const { filter, text: filterText } = quickFilter;\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n const actions = [];\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {additive ? ' AND ' : ''}"{previewValue}"\n </div>\n ),\n order: 1,\n });\n actions.push({\n title: 'date is',\n description: `Show only rows where ${column.name} is ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().eq(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'date is not',\n description: `Show only rows where ${column.name} is not ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().notEq(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n additive\n )\n );\n },\n order: 20,\n });\n actions.push({\n title: 'date is before',\n description: `Show only rows where ${column.name} is before ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThan(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<${valueText}`,\n additive\n )\n );\n },\n order: 30,\n });\n actions.push({\n title: 'date is before or equal',\n description: `Show only rows where ${column.name} is before or equal to ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThanOrEqualTo(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<=${valueText}`,\n additive\n )\n );\n },\n order: 40,\n });\n actions.push({\n title: 'date is after',\n description: `Show only rows where ${column.name} is greater than ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThan(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>${valueText}`,\n additive\n )\n );\n },\n order: 50,\n });\n actions.push({\n title: 'date is after or equal',\n description: `Show only rows where ${column.name} is after or equal to ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThanOrEqualTo(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>=${valueText}`,\n additive\n )\n );\n },\n order: 60,\n });\n return actions;\n }\n\n nullFilterActions(column, quickFilter = {}, additive = false) {\n const { filter, text: filterText } = quickFilter;\n const actions = [];\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {additive ? ' AND ' : ''}"null"\n </div>\n ),\n order: 1,\n });\n actions.push({\n title: 'equals null',\n description: `Show only rows where ${column.name} is null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'null',\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'not equals null',\n description: `Show only rows where ${column.name} is not null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull().not(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n '!null',\n additive\n )\n );\n },\n order: 20,\n });\n\n return actions;\n }\n\n sortByActions(column, modelColumn, columnSort) {\n const theme = this.irisGrid.getTheme();\n const { contextMenuSortIconColor } = theme;\n const sortActions = [\n {\n title: `${column.name} Ascending`,\n order: 10,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending\n )\n ? vsRemove\n : null,\n iconColor: contextMenuSortIconColor,\n },\n {\n title: `${column.name} Descending`,\n order: 20,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending\n )\n ? vsRemove\n : null,\n iconColor: contextMenuSortIconColor,\n },\n {\n title: `Remove Sort`,\n order: 50,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.none,\n false,\n true\n );\n },\n disabled: !columnSort,\n },\n ];\n if (TableUtils.isNumberType(column.type)) {\n sortActions.push({\n title: `ABS(${column.name}) Ascending`,\n order: 30,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true\n )\n ? vsRemove\n : null,\n iconColor: contextMenuSortIconColor,\n });\n sortActions.push({\n title: `ABS(${column.name}) Descending`,\n order: 40,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true\n )\n ? vsRemove\n : null,\n iconColor: contextMenuSortIconColor,\n });\n }\n return sortActions;\n }\n\n additionalSortActions(column, columnIndex) {\n const theme = this.irisGrid.getTheme();\n const { contextMenuSortIconColor } = theme;\n const additionalSortActions = [\n {\n title: 'Add Sort By',\n menuElement: (\n <div className=\"btn-context-menu menu-title\">\n <span className=\"icon\">\n <FontAwesomeIcon\n icon={vsRemove}\n style={{ color: contextMenuSortIconColor }}\n />\n </span>\n <span className=\"title\">Add Additional Sort</span>\n <span className=\"shortcut\">\n {ContextActionUtils.isMacPlatform() ? '⌘Click' : '^Click'}\n </span>\n </div>\n ),\n order: 1,\n },\n {\n title: `${column.name} Ascending`,\n order: 10,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n false,\n true\n );\n },\n },\n {\n title: `${column.name} Descending`,\n order: 20,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n false,\n true\n );\n },\n },\n ];\n if (TableUtils.isNumberType(column.type)) {\n additionalSortActions.push({\n title: `ABS(${column.name}) Ascending`,\n order: 30,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true,\n true\n );\n },\n });\n additionalSortActions.push({\n title: `ABS(${column.name}) Descending`,\n order: 40,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true,\n true\n );\n },\n });\n }\n return additionalSortActions;\n }\n\n checkColumnSort(columnSort, direction = null, isAbs = false) {\n if (!columnSort) {\n return false;\n }\n return columnSort.direction === direction && columnSort.isAbs === isAbs;\n }\n}\n\nexport default IrisGridContextMenuHandler;\n"],"file":"IrisGridContextMenuHandler.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/mousehandlers/IrisGridContextMenuHandler.jsx"],"names":["React","FontAwesomeIcon","dhFilterFilled","vsRemove","vsCheck","vsFilter","debounce","ContextActions","ContextActionUtils","GLOBAL_SHORTCUTS","GridMouseHandler","dh","Log","DateTimeFormatContextMenu","DecimalFormatContextMenu","IntegerFormatContextMenu","TableUtils","TableColumnFormatter","DateTimeColumnFormatter","SHORTCUTS","log","module","DEBOUNCE_UPDATE_FORMAT","CONTEXT_MENU_DATE_FORMAT","IrisGridContextMenuHandler","getQuickFilterCondition","columnFilter","newColumnFilter","additive","and","getQuickFilterText","filterText","newFilterText","getNumberValueEqualsFilter","column","value","filter","Number","POSITIVE_INFINITY","FilterCondition","invoke","greaterThan","FilterValue","ofNumber","NEGATIVE_INFINITY","lessThan","isNaN","filterValue","getFilterValueForNumberOrChar","type","eq","columnType","isCharType","ofString","String","fromCharCode","constructor","irisGrid","debouncedUpdateCustomFormat","handleFormatSelection","componentWillUnmount","flush","onContextMenu","gridPoint","grid","event","y","columnIndex","row","rowIndex","modelColumn","getModelColumn","modelRow","getModelRow","model","canCopy","props","columns","valueForCell","valueText","textForCell","actions","metrics","isFilterBarShown","reverseType","quickFilters","advancedFilters","searchFilter","state","theme","getTheme","columnHeaderHeight","gridY","filterIconColor","filterBarActiveColor","contextMenuSortIconColor","contextMenuReverseIconColor","settings","modelSort","sort","columnSort","getSortForColumn","hasReverse","REVERSE_TYPE","NONE","dateFilterFormatter","timeZone","showTimeZone","showTSeparator","defaultDateTimeFormatString","previewFilterFormatter","table","push","isFilterable","title","group","GROUP_FILTER","order","action","removeColumnFilter","disabled","has","userColumnWidths","isColumnHidden","values","some","columnWidth","isColumnFrozen","GROUP_HIDE_COLUMNS","hideColumnByVisibleIndex","unFreezeColumnByColumnName","name","freezeColumnByColumnName","showAllColumns","icon","iconColor","shortcut","TABLE","TOGGLE_QUICK_FILTER","toggleFilterBar","get","handleAdvancedMenuOpened","CLEAR_FILTERS","clearAllFilters","size","GROUP_SORT","sortByActions","length","additionalSortActions","sortColumn","COLUMN_SORT_DIRECTION","none","isReversible","REVERSE","reverse","POST_SORT","GROUP_COPY","copyToClipboard","textForColumnHeader","catch","e","error","isDateType","GROUP_FORMAT","dateFormatActions","isNumberType","numberFormatActions","filterMenu","andFilterMenu","numberValueText","numberFilterActions","isBooleanType","booleanFilterActions","dateValueText","format","previewValue","dateFilterActions","stringFilterActions","nullFilterActions","copyCell","selectedRanges","COPY","copyRanges","isEditable","GROUP_EDIT","deleteRanges","triggerMenu","gridWrapper","pageX","pageY","formatter","selectedFormat","getColumnFormat","formatOptions","getOptions","i","description","isSelected","getColumnIndexByName","isDecimalType","isIntegerType","TYPE_CONTEXT_CUSTOM","quickFilter","text","menuElement","setQuickFilter","notEq","contains","not","isFinite","valueFilter","greaterThanOrEqualTo","lessThanOrEqualTo","isTrue","isFalse","isNull","sortActions","ascending","checkColumnSort","descending","color","isMacPlatform","direction","isAbs","groups","high"],"mappings":"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","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhFilterFilled, vsRemove, vsCheck, vsFilter } from '@deephaven/icons';\nimport debounce from 'lodash.debounce';\nimport {\n ContextActions,\n ContextActionUtils,\n GLOBAL_SHORTCUTS,\n} from '@deephaven/components';\nimport { GridMouseHandler } from '@deephaven/grid';\nimport dh from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport {\n DateTimeFormatContextMenu,\n DecimalFormatContextMenu,\n IntegerFormatContextMenu,\n} from '../format-context-menus';\nimport './IrisGridContextMenuHandler.scss';\nimport TableUtils from '../TableUtils';\nimport { TableColumnFormatter, DateTimeColumnFormatter } from '../formatters';\nimport SHORTCUTS from '../IrisGridShortcuts';\n\nconst log = Log.module('IrisGridContextMenuHandler');\n\nconst DEBOUNCE_UPDATE_FORMAT = 150;\nconst CONTEXT_MENU_DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss.SSSSSSSSS';\n\n/**\n * Used to eat the mouse event in the bottom right corner of the scroll bar\n */\nclass IrisGridContextMenuHandler extends GridMouseHandler {\n static GROUP_EDIT = ContextActions.groups.high + 10;\n\n static GROUP_HIDE_COLUMNS = ContextActions.groups.high + 25;\n\n static GROUP_FILTER = ContextActions.groups.high + 50;\n\n static GROUP_SORT = ContextActions.groups.high + 75;\n\n static GROUP_COPY = ContextActions.groups.high + 100;\n\n static GROUP_FORMAT = ContextActions.groups.high + 150;\n\n static COLUMN_SORT_DIRECTION = {\n ascending: 'ASC',\n descending: 'DESC',\n none: null,\n };\n\n /**\n * Get filter condition for quick filter with existed column filter and the new filter to be applied,\n * returns new filter if filters are not additive.\n * if filters are additive, returns filter conditions combined with 'and'.\n * @param {FilterCondition} columnFilter\n * @param {FilterCondition} newColumnFilter\n * @param {boolean} additive\n */\n static getQuickFilterCondition(\n columnFilter,\n newColumnFilter,\n additive = false\n ) {\n if (!additive || !columnFilter) {\n return newColumnFilter;\n }\n return columnFilter.and(newColumnFilter);\n }\n\n /**\n * combines filter text with '&&' if filters are additive\n * @param {String} filterText\n * @param {String} newFilterText\n * @param {boolean} additive\n */\n static getQuickFilterText(filterText, newFilterText, additive = false) {\n return additive && filterText\n ? `${filterText} && ${newFilterText}`\n : newFilterText;\n }\n\n /**\n * Gets an equality filter for the provided numeric value\n * @param {dh.Column} column The column to make the filter for\n * @param {Number} value The value to get the equality filter for\n */\n static getNumberValueEqualsFilter(column, value) {\n const columnFilter = column.filter();\n if (value === Number.POSITIVE_INFINITY) {\n return dh.FilterCondition.invoke('isInf', columnFilter).and(\n columnFilter.greaterThan(dh.FilterValue.ofNumber(0))\n );\n }\n if (value === Number.NEGATIVE_INFINITY) {\n return dh.FilterCondition.invoke('isInf', columnFilter).and(\n columnFilter.lessThan(dh.FilterValue.ofNumber(0))\n );\n }\n if (Number.isNaN(value)) {\n return dh.FilterCondition.invoke('isNaN', columnFilter);\n }\n\n const filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(\n column.type,\n value\n );\n return columnFilter.eq(filterValue);\n }\n\n static getFilterValueForNumberOrChar(columnType, value) {\n return TableUtils.isCharType(columnType)\n ? dh.FilterValue.ofString(String.fromCharCode(value))\n : dh.FilterValue.ofNumber(value);\n }\n\n constructor(irisGrid) {\n super();\n\n this.debouncedUpdateCustomFormat = debounce(\n irisGrid.handleFormatSelection,\n DEBOUNCE_UPDATE_FORMAT\n );\n\n this.irisGrid = irisGrid;\n }\n\n componentWillUnmount() {\n this.debouncedUpdateCustomFormat.flush();\n }\n\n onContextMenu(gridPoint, grid, event) {\n const { irisGrid } = this;\n const { y, column: columnIndex, row: rowIndex } = gridPoint;\n const modelColumn = irisGrid.getModelColumn(columnIndex);\n const modelRow = irisGrid.getModelRow(rowIndex);\n const { model, canCopy } = irisGrid.props;\n const { columns } = model;\n const value = model.valueForCell(modelColumn, modelRow);\n const valueText = model.textForCell(modelColumn, modelRow);\n const column = columns[modelColumn];\n\n const actions = [];\n\n const {\n metrics,\n isFilterBarShown,\n reverseType,\n quickFilters,\n advancedFilters,\n searchFilter,\n } = irisGrid.state;\n const theme = irisGrid.getTheme();\n const { columnHeaderHeight, gridY } = metrics;\n const {\n filterIconColor,\n filterBarActiveColor,\n contextMenuSortIconColor,\n contextMenuReverseIconColor,\n } = theme;\n const { onContextMenu, settings } = irisGrid.props;\n\n const modelSort = model.sort;\n const columnSort = TableUtils.getSortForColumn(modelSort, modelColumn);\n const hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;\n const dateFilterFormatter = new DateTimeColumnFormatter({\n timeZone: settings.timeZone,\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT,\n });\n const previewFilterFormatter = new DateTimeColumnFormatter({\n timeZone: settings.timeZone,\n showTimeZone: settings.showTimeZone,\n showTSeparator: settings.showTSeparator,\n defaultDateTimeFormatString: CONTEXT_MENU_DATE_FORMAT,\n });\n\n if (column != null) {\n const { table } = model;\n actions.push(\n onContextMenu({\n table,\n model,\n value,\n valueText,\n column,\n rowIndex,\n columnIndex,\n modelRow,\n modelColumn,\n })\n );\n }\n\n if (column != null && model.isFilterable(modelColumn)) {\n actions.push({\n title: 'Clear Column Filter',\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 30,\n action: () => {\n this.irisGrid.removeColumnFilter(modelColumn);\n },\n disabled: !(\n quickFilters.has(modelColumn) || advancedFilters.has(modelColumn)\n ),\n });\n }\n\n if (isFilterBarShown ? y <= gridY : y <= columnHeaderHeight) {\n // grid header context menu options\n if (column != null) {\n const { userColumnWidths } = metrics;\n const isColumnHidden = [...userColumnWidths.values()].some(\n columnWidth => columnWidth === 0\n );\n const isColumnFrozen = model.isColumnFrozen(columnIndex);\n actions.push({\n title: 'Hide Column',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n this.irisGrid.hideColumnByVisibleIndex(columnIndex);\n },\n });\n actions.push({\n title: isColumnFrozen ? 'Unfreeze Column' : 'Freeze Column',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n if (isColumnFrozen) {\n this.irisGrid.unFreezeColumnByColumnName(column.name);\n } else {\n this.irisGrid.freezeColumnByColumnName(column.name);\n }\n },\n order: 10,\n });\n actions.push({\n title: 'Show All Columns',\n group: IrisGridContextMenuHandler.GROUP_HIDE_COLUMNS,\n action: () => {\n this.irisGrid.showAllColumns();\n },\n disabled: !isColumnHidden,\n });\n actions.push({\n title: 'Quick Filters',\n icon: vsRemove,\n iconColor: filterBarActiveColor,\n shortcut: SHORTCUTS.TABLE.TOGGLE_QUICK_FILTER,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 10,\n action: () => {\n this.irisGrid.toggleFilterBar(columnIndex);\n },\n });\n actions.push({\n title: 'Advanced Filters',\n icon: advancedFilters.get(modelColumn) ? dhFilterFilled : vsFilter,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 20,\n action: () => {\n this.irisGrid.handleAdvancedMenuOpened(columnIndex);\n },\n });\n actions.push({\n title: 'Clear Table Filters',\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 40,\n // this just displays the shortcut, the actual listener is in irisgrid handleKeyDown\n shortcut: SHORTCUTS.TABLE.CLEAR_FILTERS,\n action: () => {\n this.irisGrid.clearAllFilters();\n },\n disabled: !(\n quickFilters.size > 0 ||\n advancedFilters.size > 0 ||\n searchFilter !== null\n ),\n });\n actions.push({\n title: 'Sort by',\n icon: vsRemove,\n iconColor: contextMenuSortIconColor,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 10,\n actions: this.sortByActions(column, modelColumn, columnSort),\n });\n actions.push({\n title: 'Add Additional Sort',\n /**\n * disable conditions:\n * 1. table is sorted only by this column\n * 2. table is only reversed\n * 3. 1 & 2 combined\n * 4. table has no sort\n * reverse is a type of sort, so needs to be accounted for in exclusions\n * */\n disabled:\n (columnSort && modelSort.length === 1) ||\n (hasReverse && modelSort.length === 1) ||\n (columnSort && hasReverse && modelSort.length === 2) ||\n modelSort.length === 0,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 20,\n actions: this.additionalSortActions(column, modelColumn),\n });\n actions.push({\n title: 'Clear Table Sorting',\n disabled:\n // reverse is a type of sort, but special and needs to be exluded despite being part of model.sort\n modelSort.length === 0 || (hasReverse && modelSort.length === 1),\n group: IrisGridContextMenuHandler.GROUP_SORT,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.none\n );\n },\n order: 30,\n });\n actions.push({\n title:\n reverseType === TableUtils.REVERSE_TYPE.NONE\n ? 'Reverse Table'\n : 'Clear Reverse Table',\n icon: vsRemove,\n iconColor: contextMenuReverseIconColor,\n group: IrisGridContextMenuHandler.GROUP_SORT,\n order: 40,\n disabled: !model.isReversible,\n // this just displays the shortcut, the actual listener is in irisgrid handleKeyDown\n shortcut: SHORTCUTS.TABLE.REVERSE,\n action: () => {\n if (reverseType === TableUtils.REVERSE_TYPE.NONE) {\n this.irisGrid.reverse(TableUtils.REVERSE_TYPE.POST_SORT);\n } else {\n this.irisGrid.reverse(TableUtils.REVERSE_TYPE.NONE);\n }\n },\n });\n actions.push({\n title: 'Copy Column Name',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n action: () => {\n ContextActionUtils.copyToClipboard(\n model.textForColumnHeader(modelColumn)\n ).catch(e => log.error('Unable to copy header', e));\n },\n });\n\n if (TableUtils.isDateType(column.type)) {\n actions.push({\n title: 'Date/Time Format',\n group: IrisGridContextMenuHandler.GROUP_FORMAT,\n actions: this.dateFormatActions(column),\n });\n } else if (TableUtils.isNumberType(column.type)) {\n actions.push({\n title: 'Number Format',\n group: IrisGridContextMenuHandler.GROUP_FORMAT,\n actions: this.numberFormatActions(column),\n });\n }\n }\n } else {\n // grid data area context menu options\n if (column != null && rowIndex != null) {\n if (model.isFilterable(modelColumn)) {\n // cell data area contextmenu options\n const filterMenu = {\n title: 'Filter By Value',\n icon: vsRemove,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 10,\n actions: null,\n };\n\n const andFilterMenu = {\n title: 'Add Filter By Value',\n icon: vsRemove,\n iconColor: filterIconColor,\n group: IrisGridContextMenuHandler.GROUP_FILTER,\n order: 20,\n actions: null,\n disabled: !quickFilters.get(modelColumn),\n };\n\n if (value != null) {\n // Chars get treated like numbers in terms of which filters are available\n if (\n TableUtils.isNumberType(column.type) ||\n TableUtils.isCharType(column.type)\n ) {\n // We want to show the full unformatted value if it's a number, so user knows which value they are matching\n // If it's a Char we just show the char\n const numberValueText = TableUtils.isCharType(column.type)\n ? String.fromCharCode(value)\n : `${value}`;\n filterMenu.actions = this.numberFilterActions(\n column,\n numberValueText,\n value\n );\n andFilterMenu.actions = this.numberFilterActions(\n column,\n numberValueText,\n value,\n quickFilters.get(modelColumn),\n true\n );\n } else if (TableUtils.isBooleanType(column.type)) {\n filterMenu.actions = this.booleanFilterActions(column, valueText);\n andFilterMenu.actions = this.booleanFilterActions(\n column,\n valueText,\n quickFilters.get(modelColumn),\n true\n );\n } else if (TableUtils.isDateType(column.type)) {\n const dateValueText = dateFilterFormatter.format(value);\n const previewValue = previewFilterFormatter.format(value);\n filterMenu.actions = this.dateFilterActions(\n column,\n dateValueText,\n previewValue,\n value\n );\n andFilterMenu.actions = this.dateFilterActions(\n column,\n dateValueText,\n previewValue,\n value,\n quickFilters.get(modelColumn),\n true\n );\n } else {\n filterMenu.actions = this.stringFilterActions(\n column,\n valueText,\n value\n );\n andFilterMenu.actions = this.stringFilterActions(\n column,\n valueText,\n value,\n quickFilters.get(modelColumn),\n true\n );\n }\n } else {\n filterMenu.actions = this.nullFilterActions(column);\n andFilterMenu.actions = this.nullFilterActions(\n column,\n quickFilters.get(modelColumn),\n true\n );\n }\n\n if (filterMenu.actions != null && filterMenu.actions.length > 0) {\n actions.push(filterMenu);\n }\n if (\n andFilterMenu.actions != null &&\n andFilterMenu.actions.length > 0\n ) {\n actions.push(andFilterMenu);\n }\n }\n\n if (canCopy) {\n actions.push({\n title: 'Copy Cell',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 10,\n action: () => {\n irisGrid.copyCell(columnIndex, rowIndex);\n },\n });\n\n actions.push({\n title: 'Copy Cell Unformatted',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 20,\n action: () => {\n irisGrid.copyCell(columnIndex, rowIndex, true);\n },\n });\n }\n }\n\n // data area, including blank space context menu options\n const { selectedRanges } = grid.state;\n if (selectedRanges.length > 0) {\n if (canCopy) {\n actions.push({\n title: 'Copy Selection',\n shortcut: GLOBAL_SHORTCUTS.COPY,\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 30,\n action: () => {\n irisGrid.copyRanges(selectedRanges);\n },\n });\n\n actions.push({\n title: 'Copy Selection w/ Headers',\n group: IrisGridContextMenuHandler.GROUP_COPY,\n order: 40,\n action: () => {\n irisGrid.copyRanges(selectedRanges, true);\n },\n });\n }\n\n if (model.isEditable) {\n actions.push({\n title: 'Delete Selected Rows',\n group: IrisGridContextMenuHandler.GROUP_EDIT,\n order: 50,\n action: () => {\n this.irisGrid.deleteRanges(selectedRanges);\n },\n });\n }\n }\n }\n\n if (actions.length === 0) {\n return false;\n }\n\n ContextActions.triggerMenu(\n irisGrid.gridWrapper,\n event.pageX,\n event.pageY,\n actions\n );\n return true;\n }\n\n dateFormatActions(column) {\n const { model } = this.irisGrid.props;\n const { formatter } = model;\n const selectedFormat = formatter.getColumnFormat(column.type, column.name);\n const formatOptions = DateTimeFormatContextMenu.getOptions(\n formatter,\n selectedFormat\n );\n\n const actions = [];\n\n for (let i = 0; i < formatOptions.length; i += 1) {\n const { description, format, group, isSelected, title } = formatOptions[\n i\n ];\n actions.push({\n title,\n description,\n icon: isSelected ? vsCheck : null,\n group,\n order: i,\n action: () => {\n this.irisGrid.handleFormatSelection(\n model.getColumnIndexByName(column.name),\n format\n );\n },\n });\n }\n return actions;\n }\n\n numberFormatActions(column) {\n const { model } = this.irisGrid.props;\n const { formatter } = model;\n const selectedFormat = formatter.getColumnFormat(column.type, column.name);\n let formatOptions;\n\n const columnIndex = model.getColumnIndexByName(column.name);\n if (TableUtils.isDecimalType(column.type)) {\n formatOptions = DecimalFormatContextMenu.getOptions(\n selectedFormat,\n format => {\n this.debouncedUpdateCustomFormat(columnIndex, format);\n }\n );\n } else if (TableUtils.isIntegerType(column.type)) {\n formatOptions = IntegerFormatContextMenu.getOptions(\n selectedFormat,\n format => {\n this.debouncedUpdateCustomFormat(columnIndex, format);\n }\n );\n } else {\n log.error('Invalid column type in numberFormatActions');\n return null;\n }\n\n const actions = [];\n\n for (let i = 0; i < formatOptions.length; i += 1) {\n const { format, isSelected } = formatOptions[i];\n actions.push({\n ...formatOptions[i],\n icon: isSelected ? vsCheck : null,\n order: i,\n action: () => {\n if (\n format &&\n format.type === TableColumnFormatter.TYPE_CONTEXT_CUSTOM\n ) {\n return;\n }\n this.irisGrid.handleFormatSelection(columnIndex, format);\n },\n });\n }\n return actions;\n }\n\n stringFilterActions(\n column,\n valueText,\n value,\n quickFilter = {},\n additive = false\n ) {\n const filterValue = dh.FilterValue.ofString(value);\n const { filter, text: filterText } = quickFilter;\n const actions = [];\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n "{valueText}"\n </div>\n ),\n order: 1,\n });\n\n actions.push({\n title: 'text is exactly',\n description: `Show only rows where ${column.name} is ${value} (case sensitive)`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().eq(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'text is not exactly',\n description: `Show only rows where ${column.name} is not ${valueText} (case sensitive)`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().notEq(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n additive\n )\n );\n },\n order: 20,\n });\n actions.push({\n title: `text contains`,\n description: `Show only rows where ${column.name} contains ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().contains(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `~${valueText}`,\n additive\n )\n );\n },\n order: 30,\n });\n actions.push({\n title: 'text does not contain',\n description: `Show only rows where ${column.name} does not contain ${value}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().contains(filterValue).not(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!~${valueText}`,\n additive\n )\n );\n },\n order: 40,\n });\n actions.push({\n title: 'text starts with',\n description: `Show only rows where ${column.name} starts with ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().invoke('startsWith', filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `${valueText}*`,\n additive\n )\n );\n },\n order: 50,\n });\n actions.push({\n title: 'text ends with',\n description: `Show only rows where ${column.name} ends with ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n quickFilter,\n column.filter().invoke('endsWith', filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `*${valueText}`,\n additive\n )\n );\n },\n order: 60,\n });\n return actions;\n }\n\n numberFilterActions(\n column,\n valueText,\n value,\n quickFilter = {},\n additive = false\n ) {\n const filterValue = IrisGridContextMenuHandler.getFilterValueForNumberOrChar(\n column.type,\n value\n );\n const { filter, text: filterText } = quickFilter;\n const actions = [];\n const isFinite =\n value !== Number.POSITIVE_INFINITY &&\n value !== Number.NEGATIVE_INFINITY &&\n !Number.isNaN(value);\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {additive ? ' AND ' : ''}"{valueText}"\n </div>\n ),\n order: 1,\n });\n actions.push({\n title: 'is equal to',\n description: `Show only rows where ${column.name} is ${valueText}`,\n action: () => {\n const valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(\n column,\n value\n );\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n valueFilter,\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'is not equal to',\n description: `Show only rows where ${column.name} is not ${valueText}`,\n action: () => {\n const valueFilter = IrisGridContextMenuHandler.getNumberValueEqualsFilter(\n column,\n value\n ).not();\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n valueFilter,\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n additive\n )\n );\n },\n order: 20,\n });\n\n // IDS-6092 Less/greater than filters don't make sense for Infinite/NaN\n // TODO (DH-11799): These char filters should work in Bard, with the merge for DH-11040: https://gitlab.eng.illumon.com/illumon/iris/merge_requests/5801\n // They do not work in Powell though, so disable them.\n if (isFinite && !TableUtils.isCharType(column.type)) {\n actions.push({\n title: 'greater than',\n description: `Show only rows where ${column.name} is greater than ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThan(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>${valueText}`,\n additive\n )\n );\n },\n order: 30,\n });\n actions.push({\n title: 'greater than or equal to',\n description: `Show only rows where ${column.name} is greater than or equal to ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThanOrEqualTo(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>=${valueText}`,\n additive\n )\n );\n },\n order: 40,\n });\n actions.push({\n title: 'less than',\n description: `Show only rows where ${column.name} is less than ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThan(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<${valueText}`,\n additive\n )\n );\n },\n order: 50,\n });\n actions.push({\n title: 'less than or equal to',\n description: `Show only rows where ${column.name} is less than or equal to ${valueText}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThanOrEqualTo(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<=${valueText}`,\n additive\n )\n );\n },\n order: 60,\n });\n }\n return actions;\n }\n\n booleanFilterActions(column, valueText, quickFilter = {}, additive = false) {\n const actions = [];\n const { filter, text: filterText } = quickFilter;\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {additive ? 'AND ' : ''}"{valueText}"\n </div>\n ),\n order: 1,\n });\n actions.push({\n title: 'true',\n description: `Show only rows where ${column.name} is true`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isTrue(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'true',\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'false',\n description: `Show only rows where ${column.name} is false`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isFalse(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'false',\n additive\n )\n );\n },\n order: 20,\n });\n actions.push({\n title: 'null',\n description: `Show only rows where ${column.name} is null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n quickFilter,\n column.filter().isNull(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'null',\n additive\n )\n );\n },\n order: 30,\n });\n\n return actions;\n }\n\n dateFilterActions(\n column,\n valueText,\n previewValue,\n value,\n quickFilter = {},\n additive = false\n ) {\n const filterValue = dh.FilterValue.ofNumber(value);\n const { filter, text: filterText } = quickFilter;\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n const actions = [];\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {additive ? ' AND ' : ''}"{previewValue}"\n </div>\n ),\n order: 1,\n });\n actions.push({\n title: 'date is',\n description: `Show only rows where ${column.name} is ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().eq(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `=${valueText}`,\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'date is not',\n description: `Show only rows where ${column.name} is not ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().notEq(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `!=${valueText}`,\n additive\n )\n );\n },\n order: 20,\n });\n actions.push({\n title: 'date is before',\n description: `Show only rows where ${column.name} is before ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThan(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<${valueText}`,\n additive\n )\n );\n },\n order: 30,\n });\n actions.push({\n title: 'date is before or equal',\n description: `Show only rows where ${column.name} is before or equal to ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().lessThanOrEqualTo(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `<=${valueText}`,\n additive\n )\n );\n },\n order: 40,\n });\n actions.push({\n title: 'date is after',\n description: `Show only rows where ${column.name} is greater than ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThan(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>${valueText}`,\n additive\n )\n );\n },\n order: 50,\n });\n actions.push({\n title: 'date is after or equal',\n description: `Show only rows where ${column.name} is after or equal to ${previewValue}`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().greaterThanOrEqualTo(filterValue),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n `>=${valueText}`,\n additive\n )\n );\n },\n order: 60,\n });\n return actions;\n }\n\n nullFilterActions(column, quickFilter = {}, additive = false) {\n const { filter, text: filterText } = quickFilter;\n const actions = [];\n const { model } = this.irisGrid.props;\n const columnIndex = model.getColumnIndexByName(column.name);\n\n actions.push({\n menuElement: (\n <div className=\"iris-grid-filter-menu-item-value\">\n {additive ? ' AND ' : ''}"null"\n </div>\n ),\n order: 1,\n });\n actions.push({\n title: 'equals null',\n description: `Show only rows where ${column.name} is null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n 'null',\n additive\n )\n );\n },\n order: 10,\n });\n actions.push({\n title: 'not equals null',\n description: `Show only rows where ${column.name} is not null`,\n action: () => {\n this.irisGrid.setQuickFilter(\n columnIndex,\n IrisGridContextMenuHandler.getQuickFilterCondition(\n filter,\n column.filter().isNull().not(),\n additive\n ),\n IrisGridContextMenuHandler.getQuickFilterText(\n filterText,\n '!null',\n additive\n )\n );\n },\n order: 20,\n });\n\n return actions;\n }\n\n sortByActions(column, modelColumn, columnSort) {\n const theme = this.irisGrid.getTheme();\n const { contextMenuSortIconColor } = theme;\n const sortActions = [\n {\n title: `${column.name} Ascending`,\n order: 10,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending\n )\n ? vsRemove\n : null,\n iconColor: contextMenuSortIconColor,\n },\n {\n title: `${column.name} Descending`,\n order: 20,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending\n )\n ? vsRemove\n : null,\n iconColor: contextMenuSortIconColor,\n },\n {\n title: `Remove Sort`,\n order: 50,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.none,\n false,\n true\n );\n },\n disabled: !columnSort,\n },\n ];\n if (TableUtils.isNumberType(column.type)) {\n sortActions.push({\n title: `ABS(${column.name}) Ascending`,\n order: 30,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true\n )\n ? vsRemove\n : null,\n iconColor: contextMenuSortIconColor,\n });\n sortActions.push({\n title: `ABS(${column.name}) Descending`,\n order: 40,\n action: () => {\n this.irisGrid.sortColumn(\n modelColumn,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true\n );\n },\n icon: this.checkColumnSort(\n columnSort,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true\n )\n ? vsRemove\n : null,\n iconColor: contextMenuSortIconColor,\n });\n }\n return sortActions;\n }\n\n additionalSortActions(column, columnIndex) {\n const theme = this.irisGrid.getTheme();\n const { contextMenuSortIconColor } = theme;\n const additionalSortActions = [\n {\n title: 'Add Sort By',\n menuElement: (\n <div className=\"btn-context-menu menu-title\">\n <span className=\"icon\">\n <FontAwesomeIcon\n icon={vsRemove}\n style={{ color: contextMenuSortIconColor }}\n />\n </span>\n <span className=\"title\">Add Additional Sort</span>\n <span className=\"shortcut\">\n {ContextActionUtils.isMacPlatform() ? '⌘Click' : '^Click'}\n </span>\n </div>\n ),\n order: 1,\n },\n {\n title: `${column.name} Ascending`,\n order: 10,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n false,\n true\n );\n },\n },\n {\n title: `${column.name} Descending`,\n order: 20,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n false,\n true\n );\n },\n },\n ];\n if (TableUtils.isNumberType(column.type)) {\n additionalSortActions.push({\n title: `ABS(${column.name}) Ascending`,\n order: 30,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.ascending,\n true,\n true\n );\n },\n });\n additionalSortActions.push({\n title: `ABS(${column.name}) Descending`,\n order: 40,\n action: () => {\n this.irisGrid.sortColumn(\n columnIndex,\n IrisGridContextMenuHandler.COLUMN_SORT_DIRECTION.descending,\n true,\n true\n );\n },\n });\n }\n return additionalSortActions;\n }\n\n checkColumnSort(columnSort, direction = null, isAbs = false) {\n if (!columnSort) {\n return false;\n }\n return columnSort.direction === direction && columnSort.isAbs === isAbs;\n }\n}\n\nexport default IrisGridContextMenuHandler;\n"],"file":"IrisGridContextMenuHandler.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/sidebar/ChartBuilder.scss","../../../components/scss/bootstrap_overrides.scss","../../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AACA;EACE,OCLK;;ADML;EACE;;AAKN;EACE,OCbO;EDcP,
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/sidebar/ChartBuilder.scss","../../../components/scss/bootstrap_overrides.scss","../../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AACA;EACE,OCLK;;ADML;EACE;;AAKN;EACE,OCbO;EDcP,WE8R0B;EF7R1B;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA,YCpBO;;ADuBT;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE","file":"ChartBuilder.css"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/sidebar/ChartBuilder.jsx"],"names":[],"mappings":";AA4BA;;GAEG;AACH;IACE,gEAOE;IAEF;;;OAGG;IACH,mCAeC;IAED,kDAeC;IAED,iDASC;IAED,8DASC;IAED,sDAOC;IAED;;;MAEC;IAED;;;QAQC;IAED,qDAMC;IAED,
|
|
1
|
+
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/sidebar/ChartBuilder.jsx"],"names":[],"mappings":";AA4BA;;GAEG;AACH;IACE,gEAOE;IAEF;;;OAGG;IACH,mCAeC;IAED,kDAeC;IAED,iDASC;IAED,8DASC;IAED,sDAOC;IAED;;;MAEC;IAED;;;QAQC;IAED,qDAMC;IAED,wBAiCC;IAED,wBAcC;IAED,wCAEC;IAED,oBAUC;IAED,qCAYC;IAED,0CAWC;IAED,+BAOC;IAED,kCAkBC;IAED,oCAKC;IAED,mBAMC;CAmJF"}
|
|
@@ -138,6 +138,7 @@ class ChartBuilder extends PureComponent {
|
|
|
138
138
|
this.handleSubmit = this.handleSubmit.bind(this);
|
|
139
139
|
this.handleTypeClick = this.handleTypeClick.bind(this);
|
|
140
140
|
this.handleXAxisChange = this.handleXAxisChange.bind(this);
|
|
141
|
+
this.sendChange = this.sendChange.bind(this);
|
|
141
142
|
var {
|
|
142
143
|
model
|
|
143
144
|
} = props;
|
|
@@ -181,15 +182,13 @@ class ChartBuilder extends PureComponent {
|
|
|
181
182
|
return {
|
|
182
183
|
seriesItems
|
|
183
184
|
};
|
|
184
|
-
},
|
|
185
|
-
this.sendChange();
|
|
186
|
-
});
|
|
185
|
+
}, this.sendChange);
|
|
187
186
|
}
|
|
188
187
|
|
|
189
188
|
handleLinkStateChange(event) {
|
|
190
189
|
this.setState({
|
|
191
190
|
isLinked: event.target.value === 'true'
|
|
192
|
-
});
|
|
191
|
+
}, this.sendChange);
|
|
193
192
|
}
|
|
194
193
|
|
|
195
194
|
handleReset() {
|
|
@@ -208,9 +207,7 @@ class ChartBuilder extends PureComponent {
|
|
|
208
207
|
seriesItems,
|
|
209
208
|
xAxis,
|
|
210
209
|
isLinked
|
|
211
|
-
},
|
|
212
|
-
this.sendChange();
|
|
213
|
-
});
|
|
210
|
+
}, this.sendChange);
|
|
214
211
|
}
|
|
215
212
|
|
|
216
213
|
handleSeriesChange(event) {
|
|
@@ -227,9 +224,7 @@ class ChartBuilder extends PureComponent {
|
|
|
227
224
|
return {
|
|
228
225
|
seriesItems
|
|
229
226
|
};
|
|
230
|
-
},
|
|
231
|
-
this.sendChange();
|
|
232
|
-
});
|
|
227
|
+
}, this.sendChange);
|
|
233
228
|
}
|
|
234
229
|
|
|
235
230
|
handleSeriesDeleteClick(event) {
|
|
@@ -243,9 +238,7 @@ class ChartBuilder extends PureComponent {
|
|
|
243
238
|
return {
|
|
244
239
|
seriesItems
|
|
245
240
|
};
|
|
246
|
-
},
|
|
247
|
-
this.sendChange();
|
|
248
|
-
});
|
|
241
|
+
}, this.sendChange);
|
|
249
242
|
}
|
|
250
243
|
|
|
251
244
|
handleSubmit(event) {
|
|
@@ -293,9 +286,7 @@ class ChartBuilder extends PureComponent {
|
|
|
293
286
|
type,
|
|
294
287
|
seriesItems
|
|
295
288
|
};
|
|
296
|
-
},
|
|
297
|
-
this.sendChange();
|
|
298
|
-
});
|
|
289
|
+
}, this.sendChange);
|
|
299
290
|
}
|
|
300
291
|
|
|
301
292
|
handleXAxisChange(event) {
|
|
@@ -303,9 +294,7 @@ class ChartBuilder extends PureComponent {
|
|
|
303
294
|
log.debug2('x-axis change', xAxis);
|
|
304
295
|
this.setState({
|
|
305
296
|
xAxis
|
|
306
|
-
},
|
|
307
|
-
this.sendChange();
|
|
308
|
-
});
|
|
297
|
+
}, this.sendChange);
|
|
309
298
|
}
|
|
310
299
|
|
|
311
300
|
sendChange() {
|
|
@@ -376,13 +365,15 @@ class ChartBuilder extends PureComponent {
|
|
|
376
365
|
value: column.name
|
|
377
366
|
}, column.name)))), isSeriesVisible && /*#__PURE__*/React.createElement("hr", null), seriesItems.map((seriesItem, i) => /*#__PURE__*/React.createElement("div", {
|
|
378
367
|
className: "form-row form-inline form-series-item",
|
|
379
|
-
key: seriesItem.id
|
|
368
|
+
key: seriesItem.id,
|
|
369
|
+
"data-testid": "form-series-item-".concat(i)
|
|
380
370
|
}, /*#__PURE__*/React.createElement("label", {
|
|
381
371
|
className: "col-2 label-left"
|
|
382
372
|
}, i === 0 ? seriesLabel : ''), /*#__PURE__*/React.createElement("select", {
|
|
383
373
|
className: "form-control custom-select select-series col",
|
|
384
374
|
value: seriesItem.value,
|
|
385
375
|
onChange: this.handleSeriesChange,
|
|
376
|
+
"data-testid": "select-series-item-".concat(i),
|
|
386
377
|
"data-index": i
|
|
387
378
|
}, columns.map(column => /*#__PURE__*/React.createElement("option", {
|
|
388
379
|
key: column.name,
|
|
@@ -392,6 +383,7 @@ class ChartBuilder extends PureComponent {
|
|
|
392
383
|
type: "button",
|
|
393
384
|
className: "btn btn-link btn-link-icon btn-delete-series ml-2 px-2",
|
|
394
385
|
"data-index": i,
|
|
386
|
+
"data-testid": "delete-series-".concat(i),
|
|
395
387
|
onClick: this.handleSeriesDeleteClick
|
|
396
388
|
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
397
389
|
icon: vsTrash
|