@next-libs/cmdb-instances 6.29.2 → 6.29.3
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/CHANGELOG.md +8 -0
- package/dist/cjs/instance-list/InstanceList.js +5 -1
- package/dist/cjs/instance-list/InstanceList.js.map +1 -1
- package/dist/cjs/instance-list-table/InstanceListTable.js +22 -18
- package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/esm/instance-list/InstanceList.js +5 -1
- package/dist/esm/instance-list/InstanceList.js.map +1 -1
- package/dist/esm/instance-list-table/InstanceListTable.js +22 -18
- package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/types/instance-list/InstanceList.d.ts +1 -0
- package/dist/types/instance-list-table/InstanceListTable.d.ts +2 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [6.29.3](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.29.2...@next-libs/cmdb-instances@6.29.3) (2022-06-08)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @next-libs/cmdb-instances
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [6.29.2](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.29.1...@next-libs/cmdb-instances@6.29.2) (2022-06-08)
|
|
7
15
|
|
|
8
16
|
|
|
@@ -273,6 +273,9 @@ exports.initAqToShow = initAqToShow;
|
|
|
273
273
|
function InstanceList(props) {
|
|
274
274
|
var _props$selectedRowKey, _props$extraFilterBri;
|
|
275
275
|
|
|
276
|
+
const {
|
|
277
|
+
showTooltip = true
|
|
278
|
+
} = props;
|
|
276
279
|
const baseList = [{
|
|
277
280
|
instanceId: "all",
|
|
278
281
|
name: _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.ALL_CLUSTER}`)
|
|
@@ -1100,7 +1103,8 @@ function InstanceList(props) {
|
|
|
1100
1103
|
target: props.target,
|
|
1101
1104
|
ipCopy: props.ipCopy,
|
|
1102
1105
|
fixedHeader: fixedHeader,
|
|
1103
|
-
separatorUsedInRelationData: props.separatorUsedInRelationData
|
|
1106
|
+
separatorUsedInRelationData: props.separatorUsedInRelationData,
|
|
1107
|
+
showTooltip: showTooltip
|
|
1104
1108
|
})) : null);
|
|
1105
1109
|
}
|
|
1106
1110
|
//# sourceMappingURL=InstanceList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"names":["getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","Object","keys","key","values","find","ElementOperators","Exists","info","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","map","v","replace","condition","label","join","curCondition","attrId","valuesStr","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","InstanceList","props","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","objectList","object","disabledDefaultFields","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","slice","hideModelData","view","hide_columns","field","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","Map","isFirstRunRef","getInstanceListData","data","v3Data","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","hideInstanceList","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","$in","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","useCallback","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","isValueEqual","filterAq","specialQueryHandler","isSpecial","some","filteredSubQueries","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","showFixedHeader","marginBottom","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AAmBA;;AACA;;AACA;;AASA;;AAQA;;AACA;;AACA;;AAcA;;AAGA;;AASA;;AACA;;AAKA;;AACA;;AACA;;AAOO,SAASA,QAAT,CACLC,SADK,EAELC,WAFK,EAGLC,CAHK,EAILC,MAJK,EAKLC,cALK,EAML;AACA,QAAMC,KAA0B,GAAG;AAAEC,IAAAA,GAAG,EAAE;AAAP,GAAnC;AAEA,QAAMC,WAAW,GAAGL,CAAC,CAACM,IAAF,GAASC,KAAT,CAAe,KAAf,CAApB;;AACA,MAAIL,cAAJ,EAAoB;AAClBC,IAAAA,KAAK,CAACC,GAAN,CAAUI,IAAV,CAAe;AAAEC,MAAAA,EAAE,EAAE;AAAEC,QAAAA,KAAK,EAAG,IAAGV,CAAC,CAACM,IAAF,EAAS;AAAtB;AAAN,KAAf;AACA,WAAOH,KAAP;AACD;;AACD,yCACEL,SADF,EAEGa,IAAD,IAAU;AACRN,IAAAA,WAAW,CAACO,OAAZ,CAAqBC,UAAD,IAClBV,KAAK,CAACC,GAAN,CAAUI,IAAV,CAAe;AAAE,OAACG,IAAI,CAACG,EAAN,GAAW;AAAEJ,QAAAA,KAAK,EAAG,IAAGG,UAAW;AAAxB;AAAb,KAAf,CADF;AAGD,GANH,EAOE,CAACE,QAAD,EAAWC,KAAX,KAAqB;AACnB,UAAMF,EAAE,GAAGC,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,KAAf,CAAnB;AACA,UAAMC,QAAQ,GAAG,oCACfnB,WAAW,CAACgB,QAAQ,CAAE,GAAEC,KAAK,CAACG,IAAK,YAAf,CAAT,CADI,CAAjB;AAIAd,IAAAA,WAAW,CAACO,OAAZ,CAAqBC,UAAD,IAAgB;AAClCK,MAAAA,QAAQ,CAACN,OAAT,CAAkBQ,OAAD,IAAa;AAC5BjB,QAAAA,KAAK,CAACC,GAAN,CAAUI,IAAV,CAAe;AACb,WAAE,GAAEM,EAAG,IAAGM,OAAQ,EAAlB,GAAsB;AAAEV,YAAAA,KAAK,EAAG,IAAGG,UAAW;AAAxB;AADT,SAAf;AAGD,OAJD;AAKD,KAND;AAOD,GApBH,EAqBEZ,MArBF;AAwBA,SAAOE,KAAP;AACD;;AAED,SAASkB,mBAAT,CACEC,EADF,EAEEvB,WAFF,EAGED,SAHF,EAIEyB,CAJF,EAK8D;AAC5D,QAAMC,UAIH,GAAG,EAJN;AAKA,QAAMC,SAAgB,GAAG,EAAzB;AACA3B,EAAAA,SAAS,CAAC4B,aAAV,CAAwBd,OAAxB,CAAiCG,QAAD,IAAc;AAC5C,QAAIY,QAA+B,GAAG,EAAtC;;AACA,QAAI,+BAAeZ,QAAf,CAAJ,EAA8B;AAC5BY,MAAAA,QAAQ,GAAG,CACT;AAAEV,QAAAA,IAAI,EAAE,MAAR;AAAgBE,QAAAA,IAAI,EAAE;AAAtB,OADS,EAET;AAAEF,QAAAA,IAAI,EAAE,OAAR;AAAiBE,QAAAA,IAAI,EAAE;AAAvB,OAFS,CAAX;AAID,KALD,MAKO;AACLQ,MAAAA,QAAQ,GAAG,CAAC,uCAAuBZ,QAAvB,EAAiCjB,SAAjC,CAAD,CAAX;AACD;;AACD6B,IAAAA,QAAQ,CAACf,OAAT,CAAkBI,KAAD,IAAW;AAC1B,YAAMY,QAAQ,GAAGb,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,KAAf,CAAzB;AACA,YAAMY,cAAc,GAClB9B,WAAW,CACTgB,QAAQ,CAAE,GAAEC,KAAK,CAACG,IAAK,YAAf,CADC,CADb;AAIA,YAAMD,QAAQ,GAAG,oCAAoBW,cAApB,CAAjB;AACAX,MAAAA,QAAQ,CAACN,OAAT,CAAkBQ,OAAD,IAAa;AAAA;;AAC5B,cAAMU,aAAa,0BACjB,kBAAKD,cAAL,aAAKA,cAAL,uBAAKA,cAAc,CAAEE,QAArB,EAA+B,CAAC,IAAD,EAAOX,OAAP,CAA/B,CADiB,0CACjB,MAAiDY,IADhC,mDACwCZ,OAD3D;AAEA,cAAMN,EAAE,GAAI,GAAEc,QAAS,IAAGR,OAAQ,EAAlC;AACA,cAAMY,IAAI,GAAI,GACZjB,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,OAAf,CACT,IAAGa,aAAc,GAFlB;AAGAL,QAAAA,SAAS,CAACjB,IAAV,CAAe;AACbM,UAAAA,EADa;AAEbkB,UAAAA,IAFa;AAGbC,UAAAA,KAAK,EAAE;AAAEC,YAAAA,IAAI,EAAE;AAAR,WAHM;AAIbC,UAAAA,cAAc,EAAEpB,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,KAAf;AAJX,SAAf;AAMD,OAbD;AAcAQ,MAAAA,SAAS,CAACjB,IAAV,CAAe;AACbM,QAAAA,EAAE,EAAG,GAAEc,QAAS,GADH;AAEbI,QAAAA,IAAI,EAAG,GAAEjB,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,OAAf,CAA2C,EAF/C;AAGbgB,QAAAA,KAAK,EAAE;AAAEC,UAAAA,IAAI,EAAE;AAAR,SAHM;AAIbC,QAAAA,cAAc,EAAEpB,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,KAAf;AAJX,OAAf;AAMD,KA3BD;AA4BD,GAtCD;AAuCA,QAAMmB,mBAAmB,GAAG,CAAC,GAAGtC,SAAS,CAACiC,QAAd,EAAwB,GAAGN,SAA3B,CAA5B;;AACA,MAAI,CAAC,qBAAQH,EAAR,CAAL,EAAkB;AAChB,SAAK,MAAMnB,KAAX,IAAoBmB,EAApB,EAAwB;AACtB,UAAIe,OAAgB,GAAG,CAAClC,KAAD,CAAvB;;AACA,UAAImC,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,MAA0B,KAA1B,IAAmCmC,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,MAA0B,MAAjE,EAAyE;AACvEkC,QAAAA,OAAO,GAAGlC,KAAK,CAACmC,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,CAAD,CAAf;AACD;;AAEDkC,MAAAA,OAAO,CAACzB,OAAR,CAAiBT,KAAD,IAAW;AACzB,cAAMqC,GAAG,GAAGF,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,CAAZ;AACA,cAAM8B,KAAK,GAAGK,MAAM,CAACG,MAAP,CAActC,KAAd,EAAqB,CAArB,CAAd;AACA,YAAIQ,IAAI,GAAGyB,mBAAmB,CAACM,IAApB,CACR/B,IAAD,IAAUA,IAAI,CAACG,EAAL,KAAY0B,GAAZ,IAAmB7B,IAAI,CAACwB,cAAL,KAAwBK,GAD5C,CAAX;;AAGA,YACEF,MAAM,CAACC,IAAP,CAAYN,KAAZ,EAAmB,CAAnB,MAA0BU,4BAAiBC,MAA3C,IACAjC,IAAI,CAACwB,cAFP,EAGE;AACA,gBAAMA,cAAc,GAAGxB,IAAI,CAACwB,cAA5B;AACAxB,UAAAA,IAAI,GACFyB,mBAAmB,CAACM,IAApB,CACG/B,IAAD,IAAUA,IAAI,CAACG,EAAL,KAAa,GAAEqB,cAAe,GAD1C,KAEKxB,IAHP;AAID;;AACD,YAAIA,IAAJ,EAAU;AACRR,UAAAA,KAAK,GAAG,4CACNL,SAAS,CAAC8B,QADJ,EAENjB,IAAI,CAACG,EAFC,EAGNX,KAHM,CAAR;AAKA,gBAAM0C,IAAI,GAAG,oDACX1C,KADW,EAEXqC,GAFW,EAGX7B,IAAI,CAACsB,KAAL,CAAWC,IAHA,EAIXY,SAJW,EAKXA,SALW,EAMXhD,SAAS,CAAC8B,QANC,EAOXjB,IAAI,CAACG,EAPM,CAAb;;AASA,cACE,CAAC,CACCiC,iCAAcC,OADf,EAECD,iCAAcE,KAFf,EAGCF,iCAAcG,QAHf,EAICH,iCAAcI,KAJf,EAKCJ,iCAAcK,IALf,EAMCC,QAND,CAMUR,IAAI,CAACS,gBAAL,CAAsBpB,IANhC,CADH,EAQE;AACAW,YAAAA,IAAI,CAACJ,MAAL,GAAcI,IAAI,CAACJ,MAAL,CAAYc,GAAZ,CAAiBC,CAAD,IAC5B,sBAASA,CAAT,KAAeA,CAAC,CAACH,QAAF,CAAW,GAAX,CAAf,GAAiCG,CAAC,CAACC,OAAF,CAAU,UAAV,EAAsB,EAAtB,CAAjC,GAA6DD,CADjD,CAAd;AAGD;;AAED,cAAIE,SAAS,GAAI,GAAE/C,IAAI,CAACqB,IAAK,KAAIa,IAAI,CAACS,gBAAL,CAAsBK,KAAM,EAA7D;;AACA,cACE,CAAC,CAACZ,iCAAcE,KAAf,EAAsBF,iCAAcG,QAApC,EAA8CG,QAA9C,CACCR,IAAI,CAACS,gBAAL,CAAsBpB,IADvB,CADH,EAIE;AACAwB,YAAAA,SAAS,IAAK,IAAGb,IAAI,CAACJ,MAAL,CAAYmB,IAAZ,CAAiB,KAAjB,CAAwB,GAAzC;AACD;;AACD,gBAAMC,YAAY,GAAG;AACnBC,YAAAA,MAAM,EAAEtB,GADW;AAEnBkB,YAAAA,SAFmB;AAGnBK,YAAAA,SAAS,EAAElB,IAAI,CAACmB;AAHG,WAArB;;AAKA,cACExC,UAAU,CAACyC,KAAX,CACGT,CAAD,IAAO,CAAC,qBAAQ,kBAAKA,CAAL,EAAQ,QAAR,CAAR,EAA2B,kBAAKK,YAAL,EAAmB,QAAnB,CAA3B,CADV,CADF,EAIE;AACArC,YAAAA,UAAU,CAAChB,IAAX,CAAgBqD,YAAhB;AACD;AACF;AACF,OAlED;AAmED;AACF;;AAED,SAAOrC,UAAP;AACD;;AAED,SAAS0C,MAAT,CAAgBC,QAAhB,EAAoC7C,EAApC,EAAyD;AACvD,MAAIkB,GAAG,GAAG,EAAV;;AACA,MAAI,CAAC,qBAAQ2B,QAAR,CAAL,EAAwB;AACtB3B,IAAAA,GAAG,IAAI2B,QAAQ,CAACP,IAAT,CAAc,GAAd,CAAP;AACD;;AACD,MAAI,CAAC,qBAAQtC,EAAR,CAAL,EAAkB;AAChBkB,IAAAA,GAAG,IAAK,IAAGlB,EAAE,CAAC8C,MAAO,EAArB;AACD;;AACD,SAAO5B,GAAP;AACD;;AACD,MAAM6B,UAAU,GAAG,CACjBvE,SADiB,EAEjBwE,OAFiB,KAGd;AAAA;;AACH,QAAMC,YAAY,4BAAGzE,SAAS,CAACiC,QAAV,CAClByC,MADkB,CAEhB7D,IAAD,IACEA,IAAI,CAACsB,KAAL,CAAWC,IAAX,KAAoB,QAApB,IAAgCvB,IAAI,CAACsB,KAAL,CAAWC,IAAX,KAAoB,SAHrC,CAAH,0DAAG,sBAKjBqB,GALiB,CAKZ5C,IAAD,IAAU;AACd,UAAM8D,OAAiB,GAAG,EAA1B;AACA9D,IAAAA,IAAI,CAACsB,KAAL,CAAWyC,aAAX,CAAyB9D,OAAzB,CAAkC+D,MAAD,IAAY;AAC3CF,MAAAA,OAAO,CAACjE,IAAR,CAAc,GAAEG,IAAI,CAACG,EAAG,IAAG6D,MAAM,CAAC7D,EAAG,EAArC;AACD,KAFD;AAGA,WAAO2D,OAAP;AACD,GAXkB,EAYlBG,IAZkB,EAArB;AAaA,SAAOL,YAAY,CAAClB,QAAb,CAAsBiB,OAAtB,CAAP;AACD,CAlBD;;AAoBA,MAAMO,WAAW,GAAG,CAClB9C,QADkB,EAElBuC,OAFkB,KAGN;AAAA;;AACZ,QAAMQ,UAAU,GAAG,mBAAM/C,QAAN,EAAgB,IAAhB,CAAnB;AACA,SAAO,wBAAA+C,UAAU,CAACR,OAAD,CAAV,4EAAqBrC,KAArB,CAA2BC,IAA3B,MAAoC6C,mDAAwBC,OAAnE;AACD,CAND;;AAQO,MAAMC,YAAY,GAAG,CAC1B3D,EAD0B,EAE1BxB,SAF0B,EAG1BoF,QAAQ,GAAG,IAHe,KAIvB;AACH,MAAIC,WAAkB,GAAG,EAAzB;;AACA,MAAI7D,EAAJ,EAAQ;AACNA,IAAAA,EAAE,CAACV,OAAH,CAAYT,KAAD,IAAW;AACpB,YAAMiF,QAAQ,GAAG9C,MAAM,CAAC+C,OAAP,CAAelF,KAAf,EAAsBoD,GAAtB,CAA0B,CAAC,CAACf,GAAD,EAAM8C,WAAN,CAAD,KAAwB;AACjE,YAAIC,cAAqB,GAAG,EAA5B;;AACA,YAAI/C,GAAG,KAAKgD,4BAAiBC,EAAzB,IAA+BjD,GAAG,KAAKgD,4BAAiBE,GAA5D,EAAiE;AAC/D,gBAAMC,aAAa,GAAIL,WAAD,CAAyB,CAAzB,CAAtB;AACA,gBAAMhB,OAAO,GAAGhC,MAAM,CAACC,IAAP,CAAYoD,aAAZ,EAA2B,CAA3B,CAAhB;AACA,gBAAMC,QAAQ,GAAGvB,UAAU,CAACvE,SAAD,EAAYwE,OAAZ,CAA3B;AACA,gBAAMuB,MAAM,GAAGhB,WAAW,CAAC/E,SAAS,CAACiC,QAAX,EAAqBuC,OAArB,CAA1B;AACA,gBAAMwB,aAAkC,GACtCR,WADyC,CAEzCd,MAFyC,CAEjCuB,UAAD,IAAgBzD,MAAM,CAACC,IAAP,CAAYwD,UAAZ,EAAwB,CAAxB,MAA+BzB,OAFb,CAA3C;;AAGA,cAAIsB,QAAQ,IAAIV,QAAhB,EAA0B;AACxB,kBAAMc,iBAAiB,GAAGF,aAAa,CAACvC,GAAd,CAAmB0C,IAAD,KAAgB;AAC1D,eAAC3B,OAAO,CAAC/D,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAD,GAAyB0F,IAAI,CAAC3B,OAAD;AAD6B,aAAhB,CAAlB,CAA1B;AAGAiB,YAAAA,cAAc,GAAG,CAAC,GAAGA,cAAJ,EAAoB,GAAGS,iBAAvB,CAAjB;AACD,WALD,MAKO,IAAIH,MAAM,IAAI,CAACX,QAAf,EAAyB;AAC9B,kBAAMgB,eAAe,GAAIZ,WAAD,CAAyB/B,GAAzB,CACrBwC,UAAD,IAAgB;AACd,oBAAMI,WAAW,GAAGJ,UAAU,CAACzB,OAAD,CAA9B;;AAIA,kBAAI,OAAOhC,MAAM,CAACG,MAAP,CAAc0D,WAAd,EAA2B,CAA3B,CAAP,KAAyC,QAA7C,EAAuD;AACrD,uBAAO;AACL,mBAAC7B,OAAD,GAAW;AACT,qBAAChC,MAAM,CAACC,IAAP,CAAY4D,WAAZ,EAAyB,CAAzB,CAAD,GACE7D,MAAM,CAACG,MAAP,CAAc0D,WAAd,EAA2B,CAA3B,MAAkC;AAF3B;AADN,iBAAP;AAMD,eAPD,MAOO;AACL,uBAAOJ,UAAP;AACD;AACF,aAhBqB,CAAxB;AAkBAR,YAAAA,cAAc,GAAG,CAAC,GAAGA,cAAJ,EAAoB,GAAGW,eAAvB,CAAjB;AACD,WApBM,MAoBA;AACLX,YAAAA,cAAc,GAAG,CAAC,GAAGA,cAAJ,EAAoB,GAAID,WAAxB,CAAjB;AACD;;AACD,iBAAO;AAAE,aAAC9C,GAAD,GAAO+C;AAAT,WAAP;AACD,SArCD,MAqCO;AACL,iBAAOpF,KAAP;AACD;AACF,OA1CgB,CAAjB;AA2CAgF,MAAAA,WAAW,GAAG,CAAC,GAAGA,WAAJ,EAAiB,GAAGC,QAApB,CAAd;AACD,KA7CD;AA8CA,WAAOD,WAAP;AACD;;AACD;AACD,CAxDM;;;;AAqKA,SAASiB,YAAT,CAAsBC,KAAtB,EAAoE;AAAA;;AACzE,QAAMC,QAAQ,GAAG,CACf;AACEC,IAAAA,UAAU,EAAE,KADd;AAEEvE,IAAAA,IAAI,EAAEwE,iBAAKjF,CAAL,CAAQ,GAAEkF,iCAAuB,IAAGC,aAAEC,WAAY,EAAlD;AAFR,GADe,CAAjB;AAMA,QAAMC,gBAAgB,GAAG,IAAIC,oBAAJ,CAAgBC,YAAhB,CAAzB;;AACA,QAAMC,OAAO,GAAG,CACdC,SADc,EAEdC,eAFc,KAGQ;AACtB,WAAO,EACL,GAAGD,SADE;AAEL,SAAGC;AAFE,KAAP;AAID,GARD;;AAUA,QAAM;AAAEnH,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA6B,oBAAQ,MAAM;AAC/C,QAAID,SAAJ;AACA,UAAMC,WAAgE,GAAG,EAAzE;AACAsG,IAAAA,KAAK,CAACa,UAAN,CAAiBtG,OAAjB,CAA0BuG,MAAD,IAAY;AACnCpH,MAAAA,WAAW,CAACoH,MAAM,CAACvF,QAAR,CAAX,GAA+BuF,MAA/B;;AACA,UAAIA,MAAM,CAACvF,QAAP,KAAoByE,KAAK,CAACzE,QAA9B,EAAwC;AACtC9B,QAAAA,SAAS,GAAGqH,MAAZ;AACArH,QAAAA,SAAS,CAACiC,QAAV,GAAqB,CAACsE,KAAK,CAACe,qBAAP,GACjB,mBAAMD,MAAM,CAACpF,QAAb,EAAuBsF,2BAAvB,CADiB,GAEjBF,MAAM,CAACpF,QAFX;AAGD;AACF,KARD;AAUA,WAAO;AAAEjC,MAAAA,SAAF;AAAaC,MAAAA;AAAb,KAAP;AACD,GAdkC,EAchC,CAACsG,KAAK,CAACa,UAAP,EAAmBb,KAAK,CAACzE,QAAzB,CAdgC,CAAnC;AAgBA,QAAM,CAAC0F,yBAAD,EAA4BC,4BAA5B,IAA4D,qBAEhE,EAFgE,CAAlE;AAGA,QAAM,CAACC,WAAD,EAAcC,YAAd,IAA8B,qBAAS,KAAT,CAApC;;AAEA,QAAMC,8BAA8B,GAAG,MACrC5H,SADqC,IAEnB;AAClB,QAAI6H,SAAS,GAAG,EAAhB;;AACA,QAAI7H,SAAS,CAAC8H,UAAd,EAA0B;AACxBD,MAAAA,SAAS,GAAG,MAAM,yCAA2B;AAC3CE,QAAAA,cAAc,EAAE/H,SAAS,CAAC8B;AADiB,OAA3B,CAAlB;AAGD;;AACD2F,IAAAA,4BAA4B,CAACI,SAAD,CAA5B;AACD,GAVD;;AAYA,wBAAU,MAAM;AACdD,IAAAA,8BAA8B,CAAC5H,SAAD,CAA9B;AACD,GAFD,EAEG,CAACA,SAAD,CAFH;;AAIA,QAAMgI,oBAAoB,GAAG,CAC3B;AAAEC,IAAAA;AAAF,MAAc;AAAEA,IAAAA,OAAO,EAAE;AAAX,GADa,KAEA;AAC3B;AACA,UAAMC,QAAa,GAAGD,OAAO,GACzBE,sCADyB,GAEzBC,yCAFJ;AAGA,UAAMC,aAAuB,GAC3BH,QAAQ,CAACG,aAAT,CAAuBrI,SAAS,CAAC8B,QAAjC,KAA8C,EADhD;AAEA,QAAIuC,QAAkB,GAAG,wBACvB,kBAAK,iBAAIrE,SAAS,CAACiC,QAAd,EAAwB,IAAxB,CAAL,CADuB,EAEvBoG,aAFuB,EAGvBC,KAHuB,CAGjB,CAHiB,EAGd,CAHc,CAAzB;AAIA,UAAMC,aAAuB,GAAGvI,SAAS,CAACwI,IAAV,CAAeC,YAAf,IAA+B,EAA/D;AACApE,IAAAA,QAAQ,GAAGA,QAAQ,CAACK,MAAT,CAAiBgE,KAAD,IAAW,CAACH,aAAa,CAAChF,QAAd,CAAuBmF,KAAvB,CAA5B,CAAX;AACA,WAAO;AAAErE,MAAAA;AAAF,KAAP;AACD,GAhBD,CAvDyE,CAyEzE;;;AACA,QAAMsE,aAAa,GAAItE,QAAD,IAAqB;AAAA;;AACzC,QAAIuE,WAAkB,GAAG,EAAzB;AACA,QAAIC,UAAiB,GAAG,EAAxB;;AACA,gCAAItC,KAAK,CAACuC,aAAV,iDAAI,qBAAqBzE,QAAzB,EAAmC;AACjCuE,MAAAA,WAAW,GAAG,oBAAOrC,KAAK,CAACuC,aAAN,CAAoBzE,QAA3B,EAAsCrD,EAAD,IACjDqD,QAAQ,CAACd,QAAT,CAAkBvC,EAAlB,CADY,CAAd;AAGD;;AACD6H,IAAAA,UAAU,GAAG,oBACX,oBAAOxE,QAAP,EAAkBrD,EAAD,IAAQ4H,WAAW,CAACrF,QAAZ,CAAqBvC,EAArB,CAAzB,CADW,EAEVwD,OAAD,IAAa;AACX,YAAMuE,UAAU,GAAG,uBACjB/I,SAAS,CAACwI,IAAV,CAAeQ,UADE,EAEhBC,OAAD,IAAaA,OAAO,KAAKzE,OAFR,CAAnB;;AAIA,UAAIuE,UAAU,KAAK,CAAC,CAApB,EAAuB;AACrB,eAAO,IAAP;AACD,OAFD,MAEO;AACL,eAAOA,UAAP;AACD;AACF,KAZU,CAAb;AAcA,WAAO,CAAC,GAAGH,WAAJ,EAAiB,GAAGC,UAApB,CAAP;AACD,GAvBD;;AAyBA,QAAMK,SAAS,GAAG,MAAM;AAAA;;AACtB,QAAI7E,QAAQ,4BAAGkC,KAAK,CAACuC,aAAT,0DAAG,sBAAqBzE,QAApC;;AACA,QAAI,qBAAQA,QAAR,CAAJ,EAAuB;AACrBA,MAAAA,QAAQ,GAAGyC,gBAAgB,CAACqC,OAAjB,CACR,GAAEnJ,SAAS,CAAC8B,QAAS,gBADb,CAAX;AAGD;;AAED,QAAI,qBAAQuC,QAAR,CAAJ,EAAuB;AACrBA,MAAAA,QAAQ,GAAG2D,oBAAoB,GAAG3D,QAAlC;AACD;;AACDA,IAAAA,QAAQ,GAAGkC,KAAK,CAAC6C,kBAAN,GACP,kBAAK,CAAC,GAAG/E,QAAJ,EAAckC,KAAK,CAAC6C,kBAApB,CAAL,CADO,GAEP/E,QAFJ;AAGAA,IAAAA,QAAQ,GAAGsE,aAAa,CAACtE,QAAD,CAAxB;AACA,UAAMkE,aAAuB,GAAGvI,SAAS,CAACwI,IAAV,CAAeC,YAAf,IAA+B,EAA/D;AACApE,IAAAA,QAAQ,GAAGA,QAAQ,CAACK,MAAT,CAAiBgE,KAAD,IAAW,CAACH,aAAa,CAAChF,QAAd,CAAuBmF,KAAvB,CAA5B,CAAX;AACA1I,IAAAA,SAAS,CAAC8H,UAAV,IAAwBzD,QAAQ,CAAC3D,IAAT,CAAc,YAAd,CAAxB;AACA,WAAO2D,QAAP;AACD,GAnBD;;AAqBA,QAAM,CAACnE,CAAD,EAAImJ,IAAJ,IAAY,qBAAS9C,KAAK,CAACrG,CAAf,CAAlB;AACA,QAAM,CAACoJ,KAAD,EAAQC,QAAR,IAAoB,uBAAWtC,OAAX,EAAoBjE,SAApB,EAA+B;AAAA;;AAAA,WAAO;AAC9DlB,MAAAA,QAAQ,EAAEyE,KAAK,CAACzE,QAD8C;AAE9D5B,MAAAA,CAAC,EAAEqG,KAAK,CAACrG,CAFqD;AAG9DsB,MAAAA,EAAE,EAAE2D,YAAY,CAACoB,KAAK,CAAC/E,EAAP,EAAWxB,SAAX,EAAsB,KAAtB,CAH8C;AAI9DsF,MAAAA,QAAQ,EAAEiB,KAAK,CAACjB,QAAN,IAAkBH,YAAY,CAACoB,KAAK,CAAC/E,EAAP,EAAWxB,SAAX,CAJsB;AAK9DwJ,MAAAA,mBAAmB,EAAEjD,KAAK,CAACiD,mBALmC;AAM9DC,MAAAA,GAAG,EAAElD,KAAK,CAACkD,GANmD;AAO9DC,MAAAA,IAAI,EAAEnD,KAAK,CAACmD,IAPkD;AAQ9DC,MAAAA,IAAI,wDAAEpD,KAAK,CAACqD,UAAR,sDAAE,kBAAkBD,IAApB,yEAA4BpD,KAAK,CAACoD,IAAlC,uCAA0C,CARgB;AAS9DE,MAAAA,QAAQ,2DAAEtD,KAAK,CAACqD,UAAR,uDAAE,mBAAkBC,QAApB,2EAAgCtD,KAAK,CAACsD,QAAtC,yCAAkD,EATI;AAU9DC,MAAAA,UAAU,EAAEvD,KAAK,CAACuD,UAV4C;AAW9DC,MAAAA,WAAW,EAAExD,KAAK,CAACwD,WAX2C;AAY9DC,MAAAA,MAAM,EAAE,KAZsD;AAa9DC,MAAAA,OAAO,EAAE,KAbqD;AAc9DC,MAAAA,MAAM,EAAE,KAdsD;AAe9DC,MAAAA,uBAAuB,EAAE,KAfqC;AAgB9D9F,MAAAA,QAAQ,EAAE6E,SAAS,EAhB2C;AAiB9DkB,MAAAA,aAAa,EAAE,KAjB+C;AAkB9DC,MAAAA,mBAAmB,EAAE,EAlByC;AAmB9DC,MAAAA,mBAAmB,EAAE,KAnByC;AAoB9DC,MAAAA,cAAc,EAAE,EApB8C;AAqB9DC,MAAAA,YAAY,EAAE,KArBgD;AAsB9DC,MAAAA,OAAO,EAAE,EAtBqD;AAuB9DC,MAAAA,WAAW,EAAE,CACX;AACEjE,QAAAA,UAAU,EAAE,KADd;AAEEvE,QAAAA,IAAI,EAAEwE,iBAAKjF,CAAL,CAAQ,GAAEkF,iCAAuB,IAAGC,aAAEC,WAAY,EAAlD;AAFR,OADW,CAvBiD;AA6B9D8D,MAAAA,WAAW,EAAE;AA7BiD,KAAP;AAAA,GAA/B,CAA1B;AA+BA,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwC,8CAC5CtE,KAAK,CAACqE,eADsC,yEACnB,EADmB,CAA9C;AAGA,QAAME,KAAK,GAAG,mBAAO,IAAIC,GAAJ,EAAP,CAAd;AACA,QAAMC,aAAa,GAAG,mBAAO,IAAP,CAAtB;;AAEA,QAAMC,mBAAmB,GAAG,OAC1BvB,IAD0B,EAE1BD,GAF0B,EAG1BE,IAH0B,KAIwB;AAAA;;AAClD,UAAMuB,IAAuC,GAAG,EAAhD;AACA,UAAMC,MAA2C,GAAG;AAClDhL,MAAAA,MAAM,EAAE,CAAC,YAAD;AAD0C,KAApD;;AAGA,QAAI,CAAC,qBAAQoG,KAAK,CAAC6E,UAAd,CAAL,EAAgC;AAC9BD,MAAAA,MAAM,CAACC,UAAP,GAAoBF,IAAI,CAACE,UAAL,GAAkB7E,KAAK,CAAC6E,UAA5C;AACD;;AAED,QAAI/K,KAA0B,GAAG,EAAjC;AAEA8K,IAAAA,MAAM,CAACxB,IAAP,GAAcuB,IAAI,CAACvB,IAAL,GAAYA,IAA1B;AACAwB,IAAAA,MAAM,CAAC,WAAD,CAAN,GAAsBD,IAAI,CAAC,WAAD,CAAJ,GAAoB5B,KAAK,CAACO,QAAhD;AACA,UAAMwB,QAAQ,GAAGrL,SAAH,aAAGA,SAAH,8CAAGA,SAAS,CAAEiC,QAAd,kFAAG,oBAAqBW,IAArB,CAA2B/B,IAAD,IAAUA,IAAI,CAACG,EAAL,KAAY0I,IAAhD,CAAH,qFAAG,uBACbvH,KADU,2DAAG,uBACNmJ,YADX;AAEA,UAAMC,KAAK,GAAG,CAAC,eAAD,EAAkB,mBAAlB,EAAuChI,QAAvC,CAAgD8H,QAAhD,IACV5B,GAAG,GACD,CADC,GAED,CAAC,CAHO,GAIVA,GAAG,GACH,CADG,GAEH,CAAC,CANL;;AAOA,QAAIC,IAAJ,EAAU;AACRwB,MAAAA,IAAI,CAACxB,IAAL,GAAY;AAAE,SAACA,IAAD,GAAQ6B;AAAV,OAAZ;AACAJ,MAAAA,MAAM,CAACzB,IAAP,GAAc,CAAC;AAAEhH,QAAAA,GAAG,EAAEgH,IAAP;AAAa6B,QAAAA;AAAb,OAAD,CAAd;AACD;;AAED,QAAIjC,KAAK,CAACpJ,CAAV,EAAa;AACXG,MAAAA,KAAK,GAAGN,QAAQ,CACdC,SADc,EAEdC,WAFc,EAGdqJ,KAAK,CAACpJ,CAHQ,EAIdoJ,KAAK,CAACjF,QAJQ,EAKdkC,KAAK,CAACnG,cALQ,CAAhB;AAOD;;AAED,QAAI,CAAC,qBAAQkJ,KAAK,CAAC9H,EAAd,CAAL,EAAwB;AACtBnB,MAAAA,KAAK,CAACqF,4BAAiBE,GAAlB,CAAL,GAA8B0D,KAAK,CAAC9H,EAApC;AACD;;AAED,QAAI,CAAC,qBAAQ+E,KAAK,CAACiF,YAAd,CAAL,EAAkC;AAChCnL,MAAAA,KAAK,CAACqF,4BAAiBE,GAAlB,CAAL,GAA8B,CAC5B,IAAIvF,KAAK,CAACqF,4BAAiBE,GAAlB,CAAL,IAA+B,EAAnC,CAD4B,EAE5B,GAAGW,KAAK,CAACiF,YAFmB,CAA9B;AAID;;AACD,QAAIjF,KAAK,CAACuC,aAAV,EAAyB;AACvB,UAAI,CAAC,qBAAQvC,KAAK,CAACuC,aAAN,CAAoBzI,KAA5B,CAAL,EAAyC;AACvC,YAAImC,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmBiE,MAAvB,EAA+B;AAC7BjE,UAAAA,KAAK,GAAG;AACNoL,YAAAA,IAAI,EAAE,CAACpL,KAAD,EAAQkG,KAAK,CAACuC,aAAN,CAAoBzI,KAA5B;AADA,WAAR;AAGD,SAJD,MAIO;AACLA,UAAAA,KAAK,GAAGkG,KAAK,CAACuC,aAAN,CAAoBzI,KAA5B;AACD;AACF;AACF;;AACD,QAAIiJ,KAAK,CAACjF,QAAV,EAAoB;AAClB6G,MAAAA,IAAI,CAAC/K,MAAL,GAAcqC,MAAM,CAACkJ,WAAP,CACZpC,KAAK,CAACjF,QAAN,CAAeZ,GAAf,CAAoBe,OAAD,IAAa,CAACA,OAAD,EAAU,IAAV,CAAhC,CADY,CAAd;AAGA2G,MAAAA,MAAM,CAAChL,MAAP,GAAgB,CAAC,GAAGmJ,KAAK,CAACjF,QAAV,EAAoB,GAAG8G,MAAM,CAAChL,MAA9B,CAAhB;AACCgL,MAAAA,MAAD,CAAgBQ,0BAAhB,GAA6C,IAA7C;AACD;;AACD,QAAIrC,KAAK,CAACQ,UAAN,IAAoBvD,KAAK,CAACzE,QAAN,KAAmB,MAA3C,EAAmD;AACjDzB,MAAAA,KAAK,GAAG,EAAE,GAAGA,KAAL;AAAYuL,QAAAA,YAAY,EAAE;AAA1B,OAAR;AACD;;AACD,QAAItC,KAAK,CAACE,mBAAV,EAA+B;AAC7BnJ,MAAAA,KAAK,GAAG,EAAE,GAAGA,KAAL;AAAYwL,QAAAA,UAAU,EAAEvC,KAAK,CAACE;AAA9B,OAAR;AACD;;AAED,QAAI,CAAC,qBAAQnJ,KAAR,CAAL,EAAqB;AACnB8K,MAAAA,MAAM,CAAC9K,KAAP,GAAe6K,IAAI,CAAC7K,KAAL,GAAaA,KAA5B;AACD;;AAED,QAAIiJ,KAAK,CAACS,WAAV,EAAuB;AACrBoB,MAAAA,MAAM,CAACW,gBAAP,GAA0BZ,IAAI,CAACY,gBAAL,GAAwBxC,KAAK,CAACS,WAAxD;AACD,KA9EiD,CA+ElD;AACA;;;AACA,QAAIT,KAAK,CAACqB,WAAV,EAAuB;AACrBQ,MAAAA,MAAM,CAAC9K,KAAP,GAAe;AACb,SAACiJ,KAAK,CAACgB,mBAAN,KAA8B,KAA9B,IACAhB,KAAK,CAACgB,mBAAN,KAA8B,SAA9B,IACChB,KAAK,CAACkB,YAAN,KAAuB,KAFxB,GAGG,sCAHH,GAIG,gCAJJ,GAIuClB,KAAK,CAACe,mBALhC;AAMb,YAAIf,KAAK,CAACQ,UAAN,IAAoBvD,KAAK,CAACzE,QAAN,KAAmB,MAAvC,GACA;AAAE8J,UAAAA,YAAY,EAAE;AAAhB,SADA,GAEA,EAFJ;AANa,OAAf;AAUD;;AACD,UAAMG,OAAO,4BAAGxF,KAAK,CAACyF,eAAT,0DAAG,2BAAAzF,KAAK,EAAmB2E,IAAnB,EAAyBC,MAAzB,CAArB;AAEA,WAAOY,OAAO,GAAGA,OAAH,GAAa,uCAAyBxF,KAAK,CAACzE,QAA/B,EAAyCqJ,MAAzC,CAA3B;AACD,GApGD;;AAsGA,QAAMc,mBAAmB,GAAG,OAC1BvC,IAD0B,EAE1BD,GAF0B,EAG1BE,IAH0B,KAIR;AAClBJ,IAAAA,QAAQ,CAAC;AAAEU,MAAAA,OAAO,EAAE;AAAX,KAAD,CAAR;;AACA,QAAI;AACF,UAAI1D,KAAK,CAACqD,UAAV,EAAsB;AACpBL,QAAAA,QAAQ,CAAC;AACPtJ,UAAAA,WAAW,EAAEA,WADN;AAEPiM,UAAAA,gBAAgB,EAAE3F,KAAK,CAACqD;AAFjB,SAAD,CAAR;AAID,OALD,MAKO;AACL,YAAI,CAACrD,KAAK,CAAC4F,gBAAX,EAA6B;AAC3B,gBAAMD,gBAAgB,GAAG,MAAMjB,mBAAmB,CAACvB,IAAD,EAAOD,GAAP,EAAYE,IAAZ,CAAlD;AACAuC,UAAAA,gBAAgB,CAACE,IAAjB,CAAsBtL,OAAtB,CAA+BuL,CAAD,IAC5BvB,KAAK,CAACwB,OAAN,CAAcC,GAAd,CAAkBF,CAAC,CAAC5F,UAApB,EAAgC4F,CAAhC,CADF;AAGA9C,UAAAA,QAAQ,CAAC;AAAEtJ,YAAAA,WAAW,EAAEA,WAAf;AAA4BiM,YAAAA;AAA5B,WAAD,CAAR;AACD,SAND,MAMO;AACL3C,UAAAA,QAAQ,CAAC;AACPtJ,YAAAA,WAAW,EAAEA,WADN;AAEPiM,YAAAA,gBAAgB,EAAE;AAFX,WAAD,CAAR;AAID;AACF;AACF,KApBD,CAoBE,OAAOM,CAAP,EAAU;AACV,qCAAgBA,CAAhB;AACAjD,MAAAA,QAAQ,CAAC;AAAEW,QAAAA,MAAM,EAAE;AAAV,OAAD,CAAR;AACD,KAvBD,SAuBU;AACRX,MAAAA,QAAQ,CAAC;AAAES,QAAAA,MAAM,EAAE,IAAV;AAAgBC,QAAAA,OAAO,EAAE;AAAzB,OAAD,CAAR;AACD;AACF,GAhCD;;AAkCA,wBAAU,MAAM;AACd,UAAM5F,QAAQ,GAAG6E,SAAS,EAA1B;;AACA,SACE;AACA3C,IAAAA,KAAK,CAACzE,QAAN,KAAmBwH,KAAK,CAACxH,QAAzB,IACA,CAAC,qBAAQuC,QAAR,EAAkBiF,KAAK,CAACjF,QAAxB,CAHH,EAIE;AACAkF,MAAAA,QAAQ,CAAC;AACPlF,QAAAA;AADO,OAAD,CAAR;AAGD;AACF,GAXD,EAWG,CAACkC,KAAK,CAACzE,QAAP,EAAiByE,KAAK,CAACuC,aAAvB,CAXH;AAaA,wBAAU,MAAM;AAAA;;AACd+B,IAAAA,kBAAkB,2BAACtE,KAAK,CAACqE,eAAP,2EAA0B,EAA1B,CAAlB;AACD,GAFD,EAEG,CAACrE,KAAK,CAACzE,QAAP,EAAiByE,KAAK,CAACqE,eAAvB,CAFH,EAnTyE,CAuTzE;;AACA,wBAAU,MAAM;AACd,QAAII,aAAa,CAACsB,OAAlB,EAA2B;AACzBtB,MAAAA,aAAa,CAACsB,OAAd,GAAwB,KAAxB;AACA;AACD;;AAED,QAAIG,IAAI,GAAG,KAAX;;AAEA,QAAInD,KAAK,CAACK,IAAN,KAAe,CAAnB,EAAsB;AAAA;;AACpBJ,MAAAA,QAAQ,CAAC;AAAEI,QAAAA,IAAI,EAAE;AAAR,OAAD,CAAR;AACA,+BAAApD,KAAK,CAACmG,kBAAN,qFAAAnG,KAAK,EAAsB;AAAEoD,QAAAA,IAAI,EAAE,CAAR;AAAWE,QAAAA,QAAQ,EAAEP,KAAK,CAACO;AAA3B,OAAtB,CAAL;AACA4C,MAAAA,IAAI,GAAG,IAAP;AACD,KAZa,CAcd;;;AACA,QAAIlG,KAAK,CAACzE,QAAN,KAAmBwH,KAAK,CAACxH,QAA7B,EAAuC;AACrCyH,MAAAA,QAAQ,CAAC;AAAEzH,QAAAA,QAAQ,EAAEyE,KAAK,CAACzE;AAAlB,OAAD,CAAR;AACA2K,MAAAA,IAAI,GAAG,IAAP;AACD;;AAED,QAAIA,IAAJ,EAAU;AACR;AACD;;AAEDR,IAAAA,mBAAmB,CAAC3C,KAAK,CAACI,IAAP,EAAaJ,KAAK,CAACG,GAAnB,EAAwB,CAAxB,CAAnB;AACD,GAzBD,EAyBG,CACDH,KAAK,CAACpJ,CADL,EAEDoJ,KAAK,CAAC9H,EAFL,EAGD8H,KAAK,CAACE,mBAHL,EAIDF,KAAK,CAACO,QAJL,EAKDP,KAAK,CAACQ,UALL,EAMDR,KAAK,CAACS,WANL,EAODxD,KAAK,CAACzE,QAPL,EAQDyE,KAAK,CAAC6E,UARL,EASD7E,KAAK,CAACiF,YATL,CAzBH,EAxTyE,CA6VzE;;AACA,wBAAU,MAAM;AACd,QAAI,qBAAQlC,KAAK,CAACjF,QAAd,CAAJ,EAA6B;AAE7B4H,IAAAA,mBAAmB,CAAC3C,KAAK,CAACI,IAAP,EAAaJ,KAAK,CAACG,GAAnB,EAAwBH,KAAK,CAACK,IAA9B,CAAnB;AACD,GAJD,EAIG,CACDL,KAAK,CAACK,IADL,EAEDL,KAAK,CAACI,IAFL,EAGDJ,KAAK,CAACG,GAHL,EAIDH,KAAK,CAACjF,QAJL,EAKDiF,KAAK,CAACe,mBALL,EAMDf,KAAK,CAACgB,mBANL,EAODhB,KAAK,CAACqB,WAPL,EAQDpE,KAAK,CAACqD,UARL,CAJH;;AAeA,QAAM+C,QAAQ,GAAIH,CAAD,IAA4C;AAC3DnD,IAAAA,IAAI,CAACmD,CAAC,CAACI,MAAF,CAASzK,KAAV,CAAJ;AACD,GAFD,CA7WyE,CAiXzE;;;AACA,QAAM0K,iBAAiB,GAAG,MAAOC,QAAP,IAGpB;AAAA;;AACJ,QAAI;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAkCF,QAAtC;AACAjC,IAAAA,kBAAkB,CAACmC,YAAD,CAAlB;;AACA,QAAIA,YAAY,CAAC1I,MAAb,GAAsB,qBAAQyI,aAAR,EAAuBzI,MAAjD,EAAyD;AACvD,YAAM2I,GAAG,GAAGD,YAAY,CAACtI,MAAb,CAAqB1D,EAAD,IAAQ,CAAC8J,KAAK,CAACwB,OAAN,CAAcY,GAAd,CAAkBlM,EAAlB,CAA7B,CAAZ;;AACA,UAAIiM,GAAG,CAAC3I,MAAR,EAAgB;AACd,cAAM6I,IAAI,GAAG,MAAM,uCAAyB5G,KAAK,CAACzE,QAA/B,EAAyC;AAC1D3B,UAAAA,MAAM,EAAE,CAAC,YAAD,CADkD;AAE1DE,UAAAA,KAAK,EAAE;AACLoG,YAAAA,UAAU,EAAE;AACV2G,cAAAA,GAAG,EAAEH;AADK;AADP,WAFmD;AAO1DI,UAAAA,SAAS,EAAEJ,GAAG,CAAC3I;AAP2C,SAAzC,CAAnB;AASA6I,QAAAA,IAAI,CAACf,IAAL,CAAUtL,OAAV,CAAmBuL,CAAD,IAAOvB,KAAK,CAACwB,OAAN,CAAcC,GAAd,CAAkBF,CAAC,CAAC5F,UAApB,EAAgC4F,CAAhC,CAAzB;AACD;;AACDU,MAAAA,aAAa,GAAGC,YAAY,CAACvJ,GAAb,CAAkBzC,EAAD,IAAQ8J,KAAK,CAACwB,OAAN,CAAcgB,GAAd,CAAkBtM,EAAlB,CAAzB,CAAhB;AACD;;AACD,6BAAAuF,KAAK,CAACsG,iBAAN,qFAAAtG,KAAK,EAAqB;AAAEwG,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,KAArB,CAAL;AACD,GAvBD;;AAyBA,QAAMO,QAAQ,GAAIpL,KAAD,IAAmB;AAAA;;AAClC,UAAMjC,CAAC,GAAGiC,KAAK,CAAC3B,IAAN,EAAV;AACA+I,IAAAA,QAAQ,CAAC;AAAErJ,MAAAA;AAAF,KAAD,CAAR;AACA,uBAAAqG,KAAK,CAACgH,QAAN,yEAAAhH,KAAK,EAAYrG,CAAZ,CAAL;AACD,GAJD;;AAMA,QAAMsN,gBAAgB,GAAG,CACvBjL,OADuB,EAEvBkL,aAFuB,EAGvBC,WAHuB,KAIpB;AAAA;;AACHnE,IAAAA,QAAQ,CAAC;AACP/H,MAAAA,EAAE,EAAEe,OADG;AAEPmL,MAAAA,WAFO;AAGPpI,MAAAA,QAAQ,EAAEmI;AAHH,KAAD,CAAR;AAKA,6BAAAlH,KAAK,CAACiH,gBAAN,qFAAAjH,KAAK,EAAoBhE,OAApB,CAAL;AACD,GAXD;;AAaA,QAAMoL,eAAe,GAAI5K,IAAD,IAAmC;AAAA;;AACzD,QAAI0G,GAAJ;AACA,QAAIC,IAAJ;;AACA,QAAI3G,IAAI,CAAC0G,GAAL,KAAazG,SAAjB,EAA4B;AAC1B,UAAI,CAACsG,KAAK,CAACI,IAAX,EAAiB;AACf;AACD;;AAEDH,MAAAA,QAAQ,CAAC;AAAEE,QAAAA,GAAG,EAAEzG,SAAP;AAAkB0G,QAAAA,IAAI,EAAE1G;AAAxB,OAAD,CAAR;AACD,KAND,MAMO;AACLuG,MAAAA,QAAQ,CAAC;AAAEE,QAAAA,GAAG,EAAE1G,IAAI,CAAC0G,GAAZ;AAAiBC,QAAAA,IAAI,EAAE3G,IAAI,CAAC2G;AAA5B,OAAD,CAAR;AACAD,MAAAA,GAAG,GAAG1G,IAAI,CAAC0G,GAAX;AACAC,MAAAA,IAAI,GAAG3G,IAAI,CAAC2G,IAAZ;AACD;;AACD,6BAAAnD,KAAK,CAACoH,eAAN,qFAAApH,KAAK,EAAmBxD,IAAnB,CAAL;AACD,GAfD;;AAiBA,QAAM2J,kBAAkB,GAAIkB,UAAD,IAA4C;AAAA;;AACrErE,IAAAA,QAAQ,CAAC;AAAEI,MAAAA,IAAI,EAAEiE,UAAU,CAACjE,IAAnB;AAAyBE,MAAAA,QAAQ,EAAE+D,UAAU,CAAC/D;AAA9C,KAAD,CAAR;AACA,8BAAAtD,KAAK,CAACmG,kBAAN,uFAAAnG,KAAK,EAAsBqH,UAAtB,CAAL;AACD,GAHD;;AAKA,QAAMC,sBAAsB,GAAIrE,mBAAD,IAAiC;AAAA;;AAC9DD,IAAAA,QAAQ,CAAC;AAAEC,MAAAA;AAAF,KAAD,CAAR;AACA,6BAAAjD,KAAK,CAACsH,sBAAN,qFAAAtH,KAAK,EAA0BiD,mBAA1B,CAAL;AACD,GAHD;;AAKA,QAAMsE,mBAAmB,GAAIC,OAAD,IAAsB;AAAA;;AAChDxE,IAAAA,QAAQ,CAAC;AAAEQ,MAAAA,WAAW,EAAEgE;AAAf,KAAD,CAAR;AACA,6BAAAxH,KAAK,CAACuH,mBAAN,qFAAAvH,KAAK,EAAuBwH,OAAvB,CAAL;AACD,GAHD;;AAKA,QAAMC,kBAAkB,GAAID,OAAD,IAAsB;AAAA;;AAC/CxE,IAAAA,QAAQ,CAAC;AAAEO,MAAAA,UAAU,EAAEiE;AAAd,KAAD,CAAR;AACA,6BAAAxH,KAAK,CAACyH,kBAAN,qFAAAzH,KAAK,EAAsBwH,OAAtB,CAAL;AACD,GAHD;;AAKA,QAAME,mBAAmB,GAAI7D,aAAD,IAA4B;AACtDb,IAAAA,QAAQ,CAAC;AAAEa,MAAAA;AAAF,KAAD,CAAR;AACD,GAFD,CAncyE,CAsczE;;;AACA,QAAM8D,gBAAgB,GAAGC,eAAMC,WAAN,CAAkB,YAAY;AACrD,QAAI,CAAC9E,KAAK,CAACqB,WAAX,EAAwB;AAAA;;AACtB,YAAM0D,WAAW,GAAG,MAAM,uCAAyB,KAAzB,EAAgC;AACxDlO,QAAAA,MAAM,EAAE,CAAC,UAAD,EAAa,YAAb,EAA2B,MAA3B,CADgD;AAExDuJ,QAAAA,IAAI,EAAE,CAAC;AAAEhH,UAAAA,GAAG,EAAE,MAAP;AAAe6I,UAAAA,KAAK,EAAE;AAAtB,SAAD,CAFkD;AAGxD5B,QAAAA,IAAI,EAAE,CAHkD;AAIxD0D,QAAAA,SAAS,EAAE;AAJ6C,OAAhC,CAA1B;AAMA9D,MAAAA,QAAQ,CAAC;AACPc,QAAAA,mBAAmB,EAAE,sBAAAgE,WAAW,CAACjC,IAAZ,wEAAmB,CAAnB,EAAsB3F,UAAtB,KAAoC,EADlD;AAEPgE,QAAAA,OAAO,EAAE4D,WAAW,CAACjC,IAFd;AAGP1B,QAAAA,WAAW,EAAE,CAAC,GAAGlE,QAAJ,EAAc,IAAI,uBAAA6H,WAAW,CAACjC,IAAZ,0EAAmB,CAAnB,EAAsBkC,QAAtB,KAAkC,EAAtC,CAAd,CAHN;AAIP3D,QAAAA,WAAW,EAAE,IAJN;AAKPJ,QAAAA,cAAc,EAAE,uBAAA8D,WAAW,CAACjC,IAAZ,0EAAmB,CAAnB,EAAsB3F,UAAtB,KAAoC,EAL7C;AAMP+D,QAAAA,YAAY,EAAE;AANP,OAAD,CAAR;AAQD,KAfD,MAeO;AACLjB,MAAAA,QAAQ,CAAC;AAAEoB,QAAAA,WAAW,EAAE;AAAf,OAAD,CAAR;AACD;AACF,GAnBwB,EAmBtB,CAACrB,KAAK,CAACqB,WAAP,CAnBsB,CAAzB,CAvcyE,CA2dzE;;;AACA,QAAM4D,eAAe,GAAI7K,CAAD,IAAe;AACrC6F,IAAAA,QAAQ,CAAC;AACPc,MAAAA,mBAAmB,EAAE3G,CADd;AAEP4G,MAAAA,mBAAmB,EAAE,KAFd;AAGPC,MAAAA,cAAc,EAAE7G,CAHT;AAIP8G,MAAAA,YAAY,EAAE,KAJP;AAKPE,MAAAA,WAAW,EAAE,CACX,GAAGlE,QADQ,EAEX,GAAG8C,KAAK,CAACmB,OAAN,CAAc7H,IAAd,CAAoB4L,CAAD,IAAOA,CAAC,CAAC/H,UAAF,KAAiB/C,CAA3C,EAA8C4K,QAFtC;AALN,KAAD,CAAR;AAUD,GAXD,CA5dyE,CAwezE;;;AACA,QAAMG,mBAAmB,GAAI/K,CAAD,IAAe;AACzC6F,IAAAA,QAAQ,CAAC;AACPc,MAAAA,mBAAmB,EAAE3G,CAAC,KAAK,KAAN,GAAc4F,KAAK,CAACiB,cAApB,GAAqC7G,CADnD;AAEP4G,MAAAA,mBAAmB,EAAE,SAFd;AAGPE,MAAAA,YAAY,EAAE9G;AAHP,KAAD,CAAR;AAKD,GAND;;AAOA,QAAMgL,aAAa,GAAG,oBAAQ,MAAM;AAAA;;AAClC,QAAIA,aAAJ;;AACA,QAAI,CAAC,8CAAQnI,KAAK,CAACuC,aAAd,0DAAQ,sBAAqBzE,QAA7B,CAAL,EAA6C;AAC3CqK,MAAAA,aAAa,GAAGnI,KAAK,CAACuC,aAAN,CAAoBzE,QAApC;AACD,KAFD,MAEO;AACLqK,MAAAA,aAAa,GAAG1G,oBAAoB,GAAG3D,QAAvC;AACD;;AACD,WAAOqK,aAAP;AACD,GARqB,EAQnB,CAACnI,KAAK,CAACuC,aAAP,EAAsB9I,SAAtB,CARmB,CAAtB,CAhfyE,CA0fzE;;AACA,QAAM2O,aAAa,GAAG,CAAC;AAAExO,IAAAA,MAAF;AAAUyO,IAAAA;AAAV,GAAD,KAAmD;AACvE,QAAIA,OAAJ,EAAa;AACX,YAAMvK,QAAQ,GAAGqK,aAAjB;AACA1O,MAAAA,SAAS,CAAC8H,UAAV,IAAwBzD,QAAQ,CAAC3D,IAAT,CAAc,YAAd,CAAxB;AACA6I,MAAAA,QAAQ,CAAC;AAAElF,QAAAA;AAAF,OAAD,CAAR;AACAyC,MAAAA,gBAAgB,CAAC+H,UAAjB,CAA6B,GAAE7O,SAAS,CAAC8B,QAAS,gBAAlD;AACD,KALD,MAKO;AACLyH,MAAAA,QAAQ,CAAC;AACPlF,QAAAA,QAAQ,EAAEsE,aAAa,CAACxI,MAAD;AADhB,OAAD,CAAR;AAGA2G,MAAAA,gBAAgB,CAACgI,OAAjB,CAA0B,GAAE9O,SAAS,CAAC8B,QAAS,gBAA/C,EAAgE3B,MAAhE;AACD;AACF,GAZD;;AAcA,wBAAU,MAAM;AAAA;;AACd,6BAAAoG,KAAK,CAACwI,mBAAN,qFAAAxI,KAAK,EAAuB+C,KAAK,CAACjF,QAA7B,CAAL;AACD,GAFD,EAEG,CAACkC,KAAK,CAACwI,mBAAP,CAFH,EAzgByE,CA6gBzE;;AACA,wBAAU,MAAM;AAAA;;AACd,+BAAAxI,KAAK,CAACqE,eAAN,kFAAuBtG,MAAvB,KACE,CAAC,YAAY;AACX,YAAM4G,IAAuC,GAAG,EAAhD;AACA,YAAMC,MAA2C,GAAG;AAClDhL,QAAAA,MAAM,EAAE,CAAC,YAAD;AAD0C,OAApD;;AAGA,UAAI,CAAC,qBAAQoG,KAAK,CAAC6E,UAAd,CAAL,EAAgC;AAC9BD,QAAAA,MAAM,CAACC,UAAP,GAAoBF,IAAI,CAACE,UAAL,GAAkB7E,KAAK,CAAC6E,UAA5C;AACD;;AAED,UAAI9B,KAAK,CAACjF,QAAV,EAAoB;AAClB6G,QAAAA,IAAI,CAAC/K,MAAL,GAAcqC,MAAM,CAACkJ,WAAP,CACZpC,KAAK,CAACjF,QAAN,CAAeZ,GAAf,CAAoBe,OAAD,IAAa,CAACA,OAAD,EAAU,IAAV,CAAhC,CADY,CAAd;AAGA2G,QAAAA,MAAM,CAAChL,MAAP,GAAgB,CAAC,GAAGmJ,KAAK,CAACjF,QAAV,EAAoB,GAAG8G,MAAM,CAAChL,MAA9B,CAAhB;AACCgL,QAAAA,MAAD,CAAgBQ,0BAAhB,GAA6C,IAA7C;AACD;;AAEDR,MAAAA,MAAM,CAAC9K,KAAP,GAAe;AACboG,QAAAA,UAAU,EAAE;AACV2G,UAAAA,GAAG,EAAE7G,KAAK,CAACqE;AADD;AADC,OAAf;AAKAO,MAAAA,MAAM,CAACkC,SAAP,GAAmB9G,KAAK,CAACqE,eAAN,CAAsBtG,MAAzC;;AAEA,UAAIgF,KAAK,CAACS,WAAV,EAAuB;AACrBoB,QAAAA,MAAM,CAACW,gBAAP,GAA0BZ,IAAI,CAACY,gBAAL,GAAwBxC,KAAK,CAACS,WAAxD;AACD;;AAED,YAAMoD,IAAI,GAAG,MAAM,uCAAyB5G,KAAK,CAACzE,QAA/B,EAAyCqJ,MAAzC,CAAnB;AACAgC,MAAAA,IAAI,CAACf,IAAL,CAAUtL,OAAV,CAAmBuL,CAAD,IAAOvB,KAAK,CAACwB,OAAN,CAAcC,GAAd,CAAkBF,CAAC,CAAC5F,UAApB,EAAgC4F,CAAhC,CAAzB;AACD,KA9BD,GADF;AAgCD,GAjCD,EAiCG,CAAC9F,KAAK,CAACqE,eAAP,CAjCH;;AAkCA,QAAMoE,qBAAqB,GAAG,MAAM;AAClCrH,IAAAA,YAAY,CAAC,CAACD,WAAF,CAAZ;AACD,GAFD;;AAGA,QAAMuH,wBAAwB,GAAG,CAACjL,MAAD,EAAiBC,SAAjB,KAAuC;AACtE,WAAO,MAAM;AAAA;;AACX,YAAM1B,OAAgB,GAAG,EAAzB;AACA,YAAMkL,aAAsB,GAAG,EAA/B;;AACA,YAAMyB,YAAY,GAAI7O,KAAD,IACnBA,KAAK,CAAC2D,MAAD,CAAL,GACIxB,MAAM,CAACG,MAAP,CAActC,KAAK,CAAC2D,MAAD,CAAnB,EAA6BF,IAA7B,CAAkC,GAAlC,MAA2CG,SAD/C,GAEI,KAHN;;AAIA,YAAMkL,QAAQ,GAAI5M,OAAD,IACfA,OAAO,CAACmC,MAAR,CAAgBhB,CAAD,IAAYwL,YAAY,CAACxL,CAAD,CAAvC,CADF;;AAEA,YAAM0L,mBAAmB,GAAG,CAAC/O,KAAD,EAAaqC,GAAb,EAAuBH,OAAvB,KAA4C;AACtE;AACA,cAAM8M,SAAS,GAAG7M,MAAM,CAACC,IAAP,CAAYpC,KAAK,CAACqC,GAAD,CAAjB,EAAmC4M,IAAnC,CACf5L,CAAD,IAAOA,CAAC,KAAK,SAAN,IAAmBA,CAAC,KAAK,MAAzB,IAAmCA,CAAC,KAAK,MADhC,CAAlB;;AAGA,YAAI2L,SAAJ,EAAe;AACb;AACD;;AACD9M,QAAAA,OAAO,CAAC7B,IAAR,CAAaL,KAAb;AACD,OATD;;AAUAiJ,MAAAA,KAAK,CAAC9H,EAAN,CAASV,OAAT,CAAkBT,KAAD,IAAW;AAC1B,cAAMqC,GAAG,GAAGF,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,CAAZ;;AACA,YACE,CAACqC,GAAG,KAAK,KAAR,IAAiBA,GAAG,KAAK,MAA1B,KACAF,MAAM,CAACC,IAAP,CAAapC,KAAK,CAACqC,GAAD,CAAN,CAAwB,CAAxB,CAAZ,EAAwC,CAAxC,MAA+CsB,MAFjD,EAGE;AACA,gBAAMuL,kBAAkB,GAAGJ,QAAQ,CAAC9O,KAAK,CAACqC,GAAD,CAAN,CAAnC;;AACA,cAAI6M,kBAAkB,CAACjL,MAAnB,GAA4B,CAAhC,EAAmC;AACjC/B,YAAAA,OAAO,CAAC7B,IAAR,CAAa;AACX,eAACgC,GAAD,GAAO6M;AADI,aAAb;AAGD;AACF,SAVD,MAUO,IAAI7M,GAAG,KAAKsB,MAAR,IAAkB,CAAC,wBAAWA,MAAX,EAAoB,GAAEtB,GAAI,GAA1B,CAAvB,EAAsD;AAC3DH,UAAAA,OAAO,CAAC7B,IAAR,CAAaL,KAAb;AACD,SAFM,MAEA,IACLkG,KAAK,CAACiJ,oBAAN,IACA9M,GAAG,KAAKsB,MADR,IAEAkL,YAAY,CAAC7O,KAAD,CAHP,EAIL;AACA+O,UAAAA,mBAAmB,CAAC/O,KAAD,EAAQqC,GAAR,EAAaH,OAAb,CAAnB;AACD;AACF,OArBD;AAsBA+G,MAAAA,KAAK,CAAChE,QAAN,CAAexE,OAAf,CAAwBT,KAAD,IAAW;AAChC,cAAMqC,GAAG,GAAGF,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,CAAZ;;AACA,YACE,CAACqC,GAAG,KAAK,KAAR,IAAiBA,GAAG,KAAK,MAA1B,KACAF,MAAM,CAACC,IAAP,CAAapC,KAAK,CAACqC,GAAD,CAAN,CAAwB,CAAxB,CAAZ,EAAwC,CAAxC,MAA+CsB,MAFjD,EAGE;AACA,gBAAMuL,kBAAkB,GAAGJ,QAAQ,CAAC9O,KAAK,CAACqC,GAAD,CAAN,CAAnC;;AACA,cAAI6M,kBAAkB,CAACjL,MAAnB,GAA4B,CAAhC,EAAmC;AACjCmJ,YAAAA,aAAa,CAAC/M,IAAd,CAAmB;AACjB,eAACgC,GAAD,GAAO6M;AADU,aAAnB;AAGD;AACF,SAVD,MAUO,IAAI7M,GAAG,KAAKsB,MAAZ,EAAoB;AACzByJ,UAAAA,aAAa,CAAC/M,IAAd,CAAmBL,KAAnB;AACD,SAFM,MAEA,IACLkG,KAAK,CAACiJ,oBAAN,IACA9M,GAAG,KAAKsB,MADR,IAEAkL,YAAY,CAAC7O,KAAD,CAHP,EAIL;AACA+O,UAAAA,mBAAmB,CAAC/O,KAAD,EAAQqC,GAAR,EAAa+K,aAAb,CAAnB;AACD;AACF,OArBD;AAsBAlE,MAAAA,QAAQ,CAAC;AACP/H,QAAAA,EAAE,EAAEe,OADG;AAEP+C,QAAAA,QAAQ,EAAEmI;AAFH,OAAD,CAAR;AAIA,gCAAAlH,KAAK,CAACiH,gBAAN,uFAAAjH,KAAK,EAAoBhE,OAApB,CAAL;AACD,KApED;AAqED,GAtED;;AAuEA,QAAMb,UAAU,GAAGH,mBAAmB,CACpC+H,KAAK,CAAChE,QAD8B,EAEpCrF,WAFoC,EAGpCD,SAHoC,CAAtC;AAMA,sBACE,6BAAC,UAAD;AAAM,IAAA,QAAQ,EAAEsJ,KAAK,CAACW;AAAtB,KACGX,KAAK,CAACU,MAAN,IAAgB,CAACV,KAAK,CAACY,MAAvB,gBACC,6BAAC,cAAD,CAAO,QAAP,QACG,CAAC,CAAC3D,KAAK,CAACkJ,cAAP,IACA,CAAClJ,KAAK,CAACmJ,sBADP,IAEA,CAACnJ,KAAK,CAACoJ,mBAFP,IAGA,CAACpJ,KAAK,CAACqJ,kBAHP,IAIA,CAACrJ,KAAK,CAACsJ,mBAJR,kBAKC;AAAK,IAAA,SAAS,EAAEC,4BAAOC;AAAvB,kBACE;AAAK,IAAA,SAAS,EAAED,4BAAOE;AAAvB,KAEG,CAAC1G,KAAK,CAACqB,WAAP,gBACC,4DACG,CAACpE,KAAK,CAACkJ,cAAP,iBACC,6BAAC,WAAD,CAAO,MAAP;AACE,IAAA,WAAW,MADb;AAEE,IAAA,KAAK,EAAEvP,CAFT;AAGE,IAAA,QAAQ,EAAEyM,QAHZ;AAIE,IAAA,QAAQ,EAAEY;AAJZ,IAFJ,EASG,CAAChH,KAAK,CAACmJ,sBAAP,iBACC,6BAAC,YAAD;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,IAAI,EAAC,OAFP;AAGE,IAAA,KAAK,EAAE;AACLO,MAAAA,UAAU,EAAE,KADP;AAELC,MAAAA,WAAW,EAAE;AAFR,KAHT;AAOE,IAAA,OAAO,EAAE,MACP3G,QAAQ,CAAC;AACPY,MAAAA,uBAAuB,EACrB,CAACb,KAAK,CAACa;AAFF,KAAD,CARZ;AAaE,mBAAY;AAbd,KAeGzD,iBAAKjF,CAAL,CACE,GAAEkF,iCAAuB,IAAGC,aAAEuJ,eAAgB,EADhD,CAfH,eAkBE,6BAAC,gBAAD;AACE,IAAA,IAAI,EAAE7G,KAAK,CAACa,uBAAN,GAAgC,IAAhC,GAAuC;AAD/C,IAlBF,CAVJ,CADD,gBAoCC,yEACE,6BAAC,YAAD;AACE,IAAA,KAAK,EAAE;AAAEiG,MAAAA,KAAK,EAAE,OAAT;AAAkBF,MAAAA,WAAW,EAAE;AAA/B,KADT;AAEE,IAAA,KAAK,EAAE5G,KAAK,CAACiB,cAFf;AAGE,IAAA,QAAQ,EAAEgE,eAHZ;AAIE,IAAA,UAAU,EAAE,IAJd;AAKE,IAAA,gBAAgB,EAAC;AALnB,KAOGjF,KAAK,CAACmB,OAAN,CAAchH,GAAd,CAAmB+K,CAAD,iBACjB,6BAAC,YAAD,CAAQ,MAAR;AAAe,IAAA,GAAG,EAAEA,CAAC,CAAC/H,UAAtB;AAAkC,IAAA,KAAK,EAAE+H,CAAC,CAAC/H;AAA3C,KACG+H,CAAC,CAACtM,IADL,CADD,CAPH,CADF,eAcE,6BAAC,YAAD;AACE,IAAA,KAAK,EAAE;AAAEkO,MAAAA,KAAK,EAAE;AAAT,KADT;AAEE,IAAA,KAAK,EAAE9G,KAAK,CAACkB,YAFf;AAGE,IAAA,QAAQ,EAAEiE,mBAHZ;AAIE,IAAA,UAAU,EAAE,IAJd;AAKE,IAAA,gBAAgB,EAAC;AALnB,KAOGnF,KAAK,CAACoB,WAAN,CAAkBjH,GAAlB,CAAuB+K,CAAD,iBACrB,6BAAC,YAAD,CAAQ,MAAR;AAAe,IAAA,GAAG,EAAEA,CAAC,CAAC/H,UAAtB;AAAkC,IAAA,KAAK,EAAE+H,CAAC,CAAC/H;AAA3C,KACG+H,CAAC,CAACtM,IADL,CADD,CAPH,CAdF,CAtCJ,CADF,eAqEE;AAAK,IAAA,SAAS,EAAE4N,4BAAOO;AAAvB,KACGzF,eAAe,CAACtG,MAAhB,GAAyB,CAAzB,iBACC;AAAK,IAAA,KAAK,EAAE;AAAE4L,MAAAA,WAAW,EAAE;AAAf;AAAZ,kBACE,2CACGxJ,iBAAKjF,CAAL,CAAQ,GAAEkF,iCAAuB,IAAGC,aAAE0J,cAAe,EAArD,EAAwD;AACvDC,IAAAA,KAAK,EAAE3F,eAAe,CAACtG;AADgC,GAAxD,CADH,CADF,eAME;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,OAAO,EAAE,MACPuI,iBAAiB,CAAC;AAChBG,MAAAA,YAAY,EAAE,EADE;AAEhBD,MAAAA,aAAa,EAAE;AAFC,KAAD;AAHrB,KASG,GATH,EAUGrG,iBAAKjF,CAAL,CAAQ,GAAEkF,iCAAuB,IAAGC,aAAE4J,KAAM,EAA5C,CAVH,CANF,CAFJ,EAsBGjK,KAAK,CAACzE,QAAN,KAAmB,MAAnB,IAA6ByE,KAAK,CAACkK,iBAAnC,iBACC,6BAAC,YAAD;AAAQ,IAAA,IAAI,EAAE,MAAd;AAAsB,IAAA,OAAO,EAAEvC;AAA/B,KAEG5E,KAAK,CAACqB,WAAN,GACGjE,iBAAKjF,CAAL,CAAQ,GAAEkF,iCAAuB,IAAGC,aAAE8J,cAAe,EAArD,CADH,GAEGhK,iBAAKjF,CAAL,CAAQ,GAAEkF,iCAAuB,IAAGC,aAAE+J,aAAc,EAApD,CAJN,CAvBJ,EA8BGpK,KAAK,CAACzE,QAAN,KAAmB,MAAnB,IAA6B,CAACyE,KAAK,CAACqJ,kBAApC,iBACC,6BAAC,sBAAD;AACE,IAAA,OAAO,EAAEtG,KAAK,CAACQ,UADjB;AAEE,IAAA,QAAQ,EAAEkE,kBAFZ;AAGE,IAAA,KAAK,EAAE;AAAEkC,MAAAA,WAAW,EAAE;AAAf,KAHT;AAIE,IAAA,QAAQ,EAAE3J,KAAK,CAACqK,aAJlB;AAKE,IAAA,IAAI,EAAC,YALP;AAME,IAAA,KAAK,EAAElK,iBAAKjF,CAAL,CAAQ,GAAEkF,iCAAuB,IAAGC,aAAEiK,WAAY,EAAlD,CANT;AAOE,mBAAY;AAPd,IA/BJ,EAyCG,CAACtK,KAAK,CAACoJ,mBAAP,iBACC,6BAAC,sBAAD;AACE,IAAA,OAAO,EAAErG,KAAK,CAACS,WADjB;AAEE,IAAA,QAAQ,EAAE+D,mBAFZ;AAGE,IAAA,KAAK,EAAE;AAAEoC,MAAAA,WAAW,EAAE;AAAf,KAHT;AAIE,IAAA,IAAI,EAAC,YAJP;AAKE,IAAA,KAAK,EAAExJ,iBAAKjF,CAAL,CACJ,GAAEkF,iCAAuB,IAAGC,aAAEkK,aAAc,EADxC,CALT;AAQE,mBAAY;AARd,IA1CJ,EAqDG,CAACvK,KAAK,CAACwK,sBAAP,iBACC,6BAAC,sBAAD;AACE,IAAA,OAAO,EAAEzH,KAAK,CAACc,aADjB;AAEE,IAAA,QAAQ,EAAE6D,mBAFZ;AAGE,IAAA,KAAK,EAAE;AAAEiC,MAAAA,WAAW,EAAE;AAAf,KAHT;AAIE,IAAA,IAAI,EAAC,gBAJP;AAKE,IAAA,KAAK,EAAExJ,iBAAKjF,CAAL,CACJ,GAAEkF,iCAAuB,IAAGC,aAAEoK,2BAA4B,EADtD,CALT;AAQE,mBAAY;AARd,IAtDJ,EAiEG,CAACzK,KAAK,CAACsJ,mBAAP,iBACC,6BAAC,uCAAD;AACE,IAAA,SAAS,EAAE7P,SADb;AAEE,IAAA,SAAS,EAAE2O,aAFb;AAGE,IAAA,QAAQ,EAAErF,KAAK,CAACjF,QAHlB;AAIE,IAAA,aAAa,EAAEqK,aAJjB;AAKE,IAAA,kBAAkB,EAAEnI,KAAK,CAAC6C,kBAL5B;AAME,IAAA,qBAAqB,EAAE4F,qBANzB;AAOE,IAAA,WAAW,EAAEtH,WAPf;AAQE,IAAA,eAAe,EAAEnB,KAAK,CAAC0K;AARzB,IAlEJ,CArEF,CANJ,EA2JG,CAAC1K,KAAK,CAACmJ,sBAAP,IAAiC,CAACpG,KAAK,CAACqB,WAAxC,iBACC;AACE,IAAA,KAAK,EAAE;AAAEuG,MAAAA,YAAY,EAAE;AAAhB,KADT;AAEE,IAAA,MAAM,EAAE,CAAC5H,KAAK,CAACa;AAFjB,kBAIE,6BAAC,iCAAD;AACE,IAAA,GAAG,EAAE/F,MAAM,CAACkF,KAAK,CAACjF,QAAP,EAAiBiF,KAAK,CAAC9H,EAAvB,CADb;AAEE,IAAA,QAAQ,EAAE8H,KAAK,CAACjF,QAFlB;AAGE,IAAA,WAAW,EAAEiF,KAAK,CAACrJ,WAHrB;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,CAAC,EAAEsJ,KAAK,CAAChE,QALX;AAME,IAAA,WAAW,EAAEgE,KAAK,CAACoE,WANrB;AAOE,IAAA,QAAQ,EAAEF;AAPZ,KAQOjH,KAAK,CAAC4K,UAAN,GACD;AACEA,IAAAA,UAAU,EAAE5K,KAAK,CAAC4K;AADpB,GADC,GAID,IAZN,EAJF,CA5JJ,EAgLG,CAAC5K,KAAK,CAAC6K,oBAAP,IACC,CAAC9H,KAAK,CAACqB,WADR,KAEErB,KAAK,CAACE,mBAAN,IAA6BF,KAAK,CAACpJ,CAAnC,IAAwC,CAAC,qBAAQwB,UAAR,CAF3C,kBAGG;AAAK,IAAA,SAAS,EAAEoO,4BAAOuB;AAAvB,kBACE,2CACG3K,iBAAKjF,CAAL,CACE,GAAEkF,iCAAuB,IAAGC,aAAE0K,2BAA4B,EAD5D,CADH,CADF,EAMGhI,KAAK,CAACpJ,CAAN,iBACC,6BAAC,SAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,OAAO,EAAE,MAAM;AACbmJ,MAAAA,IAAI,CAAC,EAAD,CAAJ;AACAkE,MAAAA,QAAQ,CAAC,EAAD,CAAR;AACD;AALH,KAOG7G,iBAAKjF,CAAL,CAAQ,GAAEkF,iCAAuB,IAAGC,aAAE2K,YAAa,EAAnD,EAAsD;AACrDlR,IAAAA,KAAK,EAAEiJ,KAAK,CAACpJ;AADwC,GAAtD,CAPH,CAPJ,EAmBGoJ,KAAK,CAACE,mBAAN,iBACC,6BAAC,SAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,OAAO,EAAE,MAAM;AACbqE,MAAAA,sBAAsB,CAAC,IAAD,CAAtB;AACD;AAJH,KAMGnH,iBAAKjF,CAAL,CACE,GAAEkF,iCAAuB,IAAGC,aAAE4K,wBAAyB,EADzD,EAEC;AACEnR,IAAAA,KAAK,EACH,CAAAmH,yBAAyB,SAAzB,IAAAA,yBAAyB,WAAzB,YAAAA,yBAAyB,CACvB8B,KAAK,CAACE,mBADiB,CAAzB,KAEKF,KAAK,CAACE;AAJf,GAFD,CANH,CApBJ,EAqCG9H,UAAU,CAAC+B,GAAX,CAAgBG,SAAD,iBACd,6BAAC,SAAD;AACE,IAAA,GAAG,EAAG,GAAEA,SAAS,CAACI,MAAO,GACvBJ,SAAS,CAACK,SACX,IAAG,uBAAW,EAHjB;AAIE,IAAA,QAAQ,MAJV;AAKE,IAAA,OAAO,EAAEgL,wBAAwB,CAC/BrL,SAAS,CAACI,MADqB,EAE/BJ,SAAS,CAACK,SAFqB;AALnC,KAUGL,SAAS,CAACA,SAVb,CADD,CArCH,CAnLN,EAwOG,0BAAA2C,KAAK,CAACkL,iBAAN,gFAAyBC,QAAzB,kBACC,6BAAC,0BAAD;AAAkB,IAAA,QAAQ,EAAEnL,KAAK,CAACkL,iBAAN,CAAwBC;AAApD,IAzOJ,EA2OG,CAACnL,KAAK,CAAC4F,gBAAP,iBACC,6BAAC,oCAAD;AACE,IAAA,kBAAkB,EAAE5F,KAAK,CAACoL,kBAD5B;AAEE,IAAA,QAAQ,EAAErI,KAAK,CAACjF,QAFlB;AAGE,IAAA,WAAW,EAAEiF,KAAK,CAACrJ,WAHrB;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,gBAAgB,EAAEsJ,KAAK,CAAC4C,gBAL1B;AAME,IAAA,IAAI,EAAE5C,KAAK,CAACI,IANd;AAOE,IAAA,GAAG,EAAEJ,KAAK,CAACG,GAPb;AAQE,IAAA,eAAe,EAAEmB,eARnB;AASE,IAAA,cAAc,EAAErE,KAAK,CAACqL,cATxB;AAUE,IAAA,YAAY,EAAErL,KAAK,CAACsL,YAVtB;AAWE,IAAA,sBAAsB,EAAEtL,KAAK,CAACuL,sBAXhC;AAYE,IAAA,WAAW,EAAEvL,KAAK,CAACwL,WAZrB;AAaE,IAAA,aAAa,EAAExL,KAAK,CAACyL,aAbvB;AAcE,IAAA,kBAAkB,EAAEtF,kBAdtB;AAeE,IAAA,eAAe,EAAEiB,eAfnB;AAgBE,IAAA,iBAAiB,EAAEd,iBAhBrB;AAiBE,IAAA,sBAAsB,EAAEgB,sBAjB1B;AAkBE,IAAA,mBAAmB,EAAEvE,KAAK,CAACE,mBAlB7B;AAmBE,IAAA,yBAAyB,EAAEhC,yBAnB7B;AAoBE,IAAA,4BAA4B,EAAEjB,KAAK,CAAC0L,4BApBtC;AAqBE,IAAA,aAAa,EAAE3I,KAAK,CAACc,aArBvB;AAsBE,IAAA,oBAAoB,EAAE7D,KAAK,CAAC2L,oBAtB9B;AAuBE,IAAA,eAAe,EAAE3L,KAAK,CAAC4L,eAvBzB;AAwBE,IAAA,eAAe,EAAE5L,KAAK,CAAC6L,eAxBzB;AAyBE,IAAA,YAAY,EAAE7L,KAAK,CAAC8L,YAzBtB;AA0BE,IAAA,MAAM,EAAE9L,KAAK,CAACqG,MA1BhB;AA2BE,IAAA,MAAM,EAAErG,KAAK,CAAC+L,MA3BhB;AA4BE,IAAA,WAAW,EAAE5K,WA5Bf;AA6BE,IAAA,2BAA2B,EAAEnB,KAAK,CAACgM;AA7BrC,IA5OJ,CADD,GA8QG,IA/QN,CADF;AAmRD","sourcesContent":["import React, { useEffect, useReducer, useState, useRef, useMemo } from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport { BrickAsComponent, handleHttpError } from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport { TableProps } from \"antd/lib/table\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\ninterface InstanceListProps {\n objectId: string;\n objectList: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showFixedHeader?: boolean;\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n}\n\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n\n const { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] =\n settings.ignoredFields[modelData.objectId] || [];\n let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\")),\n ignoredFields\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n\n return promise ? promise : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = async (selected: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n const resp = await InstanceApi_postSearchV3(props.objectId, {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n });\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n };\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n };\n\n const onPaginationChange = (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n };\n\n const onInstanceSourceChange = (instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n };\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n });\n } else {\n setState({ searchByApp: false });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n if (!isEmpty(props.presetConfigs?.fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n\n const resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const isValueEqual = (query: any) =>\n query[attrId]\n ? Object.values(query[attrId]).join(\" \") !== valuesStr\n : false;\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqual(v));\n const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = Object.keys(query[key] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n if (isSpecial) {\n return;\n }\n queries.push(query);\n };\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n queries.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqual(query)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqual(query)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n />\n )}\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n"],"file":"InstanceList.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"names":["getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","Object","keys","key","values","find","ElementOperators","Exists","info","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","map","v","replace","condition","label","join","curCondition","attrId","valuesStr","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","InstanceList","props","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","objectList","object","disabledDefaultFields","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","slice","hideModelData","view","hide_columns","field","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","Map","isFirstRunRef","getInstanceListData","data","v3Data","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","hideInstanceList","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","$in","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","useCallback","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","isValueEqual","filterAq","specialQueryHandler","isSpecial","some","filteredSubQueries","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","showFixedHeader","marginBottom","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData"],"mappings":"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","sourcesContent":["import React, { useEffect, useReducer, useState, useRef, useMemo } from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport { BrickAsComponent, handleHttpError } from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport { TableProps } from \"antd/lib/table\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\ninterface InstanceListProps {\n objectId: string;\n objectList: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n}\n\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n\n const { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] =\n settings.ignoredFields[modelData.objectId] || [];\n let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\")),\n ignoredFields\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n\n return promise ? promise : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = async (selected: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n const resp = await InstanceApi_postSearchV3(props.objectId, {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n });\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n };\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n };\n\n const onPaginationChange = (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n };\n\n const onInstanceSourceChange = (instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n };\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n });\n } else {\n setState({ searchByApp: false });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n if (!isEmpty(props.presetConfigs?.fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n\n const resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const isValueEqual = (query: any) =>\n query[attrId]\n ? Object.values(query[attrId]).join(\" \") !== valuesStr\n : false;\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqual(v));\n const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = Object.keys(query[key] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n if (isSpecial) {\n return;\n }\n queries.push(query);\n };\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n queries.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqual(query)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqual(query)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n />\n )}\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n"],"file":"InstanceList.js"}
|
|
@@ -394,6 +394,25 @@ class LegacyInstanceListTable extends _react.default.Component {
|
|
|
394
394
|
}
|
|
395
395
|
});
|
|
396
396
|
};
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
getLinkContent(node) {
|
|
400
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
401
|
+
style: {
|
|
402
|
+
display: "flex"
|
|
403
|
+
}
|
|
404
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
405
|
+
className: _InstanceListTableModule.default.iconWrap
|
|
406
|
+
}, /*#__PURE__*/_react.default.createElement(_basicComponents.GeneralIcon, {
|
|
407
|
+
icon: {
|
|
408
|
+
lib: "easyops",
|
|
409
|
+
icon: "search",
|
|
410
|
+
category: "app",
|
|
411
|
+
color: "#167be0"
|
|
412
|
+
}
|
|
413
|
+
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
414
|
+
className: _InstanceListTableModule.default.linkKey
|
|
415
|
+
}, node));
|
|
397
416
|
} // istanbul ignore next
|
|
398
417
|
|
|
399
418
|
|
|
@@ -403,25 +422,10 @@ class LegacyInstanceListTable extends _react.default.Component {
|
|
|
403
422
|
role: "button",
|
|
404
423
|
onClick: e => this.handleClickItem(e, record),
|
|
405
424
|
"data-testid": "instance-detail-link"
|
|
406
|
-
}, /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
|
|
425
|
+
}, this.props.showTooltip ? /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
|
|
407
426
|
placement: "top",
|
|
408
|
-
title: `${_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.JUMP_TO}`)}${object.name}${_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.INSTANCE_DETAIL}`)}
|
|
409
|
-
},
|
|
410
|
-
style: {
|
|
411
|
-
display: "flex"
|
|
412
|
-
}
|
|
413
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
414
|
-
className: _InstanceListTableModule.default.iconWrap
|
|
415
|
-
}, /*#__PURE__*/_react.default.createElement(_basicComponents.GeneralIcon, {
|
|
416
|
-
icon: {
|
|
417
|
-
lib: "easyops",
|
|
418
|
-
icon: "search",
|
|
419
|
-
category: "app",
|
|
420
|
-
color: "#167be0"
|
|
421
|
-
}
|
|
422
|
-
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
423
|
-
className: _InstanceListTableModule.default.linkKey
|
|
424
|
-
}, node))));
|
|
427
|
+
title: `${_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.JUMP_TO}`)}${object.name}${_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.INSTANCE_DETAIL}`)}你好帅`
|
|
428
|
+
}, this.getLinkContent(node)) : this.getLinkContent(node));
|
|
425
429
|
}
|
|
426
430
|
|
|
427
431
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|