@next-libs/cmdb-instances 7.14.0 → 7.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/i18n/constants.js +1 -0
- package/dist/cjs/i18n/constants.js.map +1 -1
- package/dist/cjs/i18n/locales/en.js +1 -0
- package/dist/cjs/i18n/locales/en.js.map +1 -1
- package/dist/cjs/i18n/locales/zh.js +1 -0
- package/dist/cjs/i18n/locales/zh.js.map +1 -1
- package/dist/cjs/instance-list/InstanceList.js +15 -4
- package/dist/cjs/instance-list/InstanceList.js.map +1 -1
- package/dist/esm/i18n/constants.js +1 -0
- package/dist/esm/i18n/constants.js.map +1 -1
- package/dist/esm/i18n/locales/en.js +1 -0
- package/dist/esm/i18n/locales/en.js.map +1 -1
- package/dist/esm/i18n/locales/zh.js +1 -0
- package/dist/esm/i18n/locales/zh.js.map +1 -1
- package/dist/esm/instance-list/InstanceList.js +16 -6
- package/dist/esm/instance-list/InstanceList.js.map +1 -1
- package/dist/types/i18n/constants.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstanceList.js","names":["React","useEffect","useReducer","useState","useRef","useMemo","useCallback","difference","isEmpty","isEqual","isString","map","uniq","union","filter","reject","sortBy","uniqueId","findIndex","find","startsWith","compact","omit","keyBy","isNil","BrickAsComponent","getRuntime","handleHttpError","useProvider","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","CmdbObjectApi_getObjectRef","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","isSelfRelation","ElementOperators","LogicalOperators","JsonStorage","ConditionType","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","styles","extraFieldAttrs","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","objectListCache","ModelAttributeValueType","IconButton","changeQueryWithCustomRules","FilterInstanceSource","getAuth","joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","attrList","field","relation","relation_list","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","attr","queryValue","id","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","mergeFields","oldFields","newFieldIds","existField","f","order","updateSortFields","sortInfo","sortType","asc","sort","includes","item","translateConditions","aq","t","conditions","relations","sidesArr","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","Exists","info","undefined","Between","Empty","NotEmpty","False","True","currentCondition","replace","condition","label","curCondition","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","listProvider","cache","instanceArchiveListProvider","ignorePermissionProvider","fieldsProvider","updateFieldsProvider","externalPostSearchV3","externalGetIdMapName","externalFieldsProvider","externalUpdateFieldsProvider","disabledDefaultFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","useExternalCmdbApi","parentObjectId","sourceId","externalSourceId","showFilterInstanceSource","setItem","presetConfigs","computeDefaultFields","inModal","settings","ignoredFields","concat","hide_columns","sortFields","attr_order","allFields","slice","_sortFieldIds","frontFields","restFields","foundIndex","orderId","getFieldsAsync","default_type","backendDefaultFields","object_id","returnData","defaultSortFields","extraFixedFieldIds","extraFixedFields","orderField","extraDisabledField","hideModelData","getFields","getItem","setQ","state","setState","instanceSourceQuery","page","dataSource","pageSize","aliveHosts","relatedToMe","objectIdQuery","filterInstanceSource","instanceSourcePopoverVisible","inited","loading","failed","isAdvancedSearchVisible","saveFieldsBackend","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","Map","isFirstRunRef","externalRequestParams","getInstanceListData","data","v3Data","permission","archiveData","useInstanceArchiveProvider","key_word","defaultQuery","$and","fromEntries","ignore_missing_field_error","useAutoDiscoveryProvider","_agentStatus","_object_id","extraParams","assign","only_my_instance","hostRange","i","limitInstanceRange","$in","promise","onSearchExecute","ignorePermission","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","getFieldIds","fieldConfig","skip","onPaginationChange","updateDataTime","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","oldsortFields","newSortFields","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","isAdmin","s","handleConfirm","isReset","isAdminSetDisplay","onFieldsModalConfirm","removeItem","isDefault","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","Array","isArray","isInstanceFilterForm","onFilterInstanceSourceChange","onFilterObjectIdChange","onPopoverVisibleChange","visible","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","instanceListToolbar","searchRelated","placeholder","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","extraOperateBricks","useBrick","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","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","onColumnsChange","virtualLoading","InstanceList","setObjectList","externalGetObjectRef","cacheData","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} 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 cloneDeep,\n isNil,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} 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 {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select, Popover, message } 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 UseBrickAndPropertyDisplayConfig,\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 objectListCache,\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\";\nimport FilterInstanceSource from \"./FilterInstanceSource\";\nimport { ColumnType } from \"antd/lib/table\";\nimport { getAuth } from \"@next-core/brick-kit\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\ninterface ISortField {\n field: string;\n order: number;\n}\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\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 const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [...new Set([\"ip\", ...searchIpFields])];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\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\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\nexport function mergeFields(\n oldFields: ISortField[],\n newFieldIds: string[]\n): ISortField[] {\n return newFieldIds.map((field) => {\n const existField = oldFields.find((f) => f.field === field);\n const order = existField ? existField.order : 0;\n return { field, order };\n });\n}\nexport function updateSortFields(\n oldFields: ISortField[],\n sortInfo: { asc?: boolean; sort?: string },\n sortType?: string\n): ISortField[] {\n const { asc, sort } = sortInfo;\n const order = isNil(asc)\n ? 0\n : [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n return oldFields.map((item) => {\n if (item.field === sort) {\n item.order = order;\n } else {\n item.order = 0;\n }\n return item;\n });\n}\n\nexport function 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\nexport interface filterObjectIdQuery {\n objectId?: string;\n objectName?: string;\n query?: Record<string, string>;\n checked?: boolean;\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?: UseBrickAndPropertyDisplayConfig[];\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 onFieldsModalConfirm?(fields: Record<string, any>): 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 rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效\n extraFixedFields?: string[];\n // 如果在presetConfigs的query参数中指定了资源的范围,“按应用筛选”的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n useInstanceArchiveProvider?: boolean;\n placeholder?: string;\n extraOperateBricks?: {\n useBrick: UseBrickConf;\n };\n updateDataTime?: number;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(query: filterObjectIdQuery): void;\n objectIdQuery?: string;\n ignorePermission?: boolean;\n saveFieldsBackend?: boolean;\n onColumnsChange?: (columns: ColumnType<{ dataIndex: string }>[]) => void;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\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 presetConfigsQuery?: Record<string, any>;\n filterInstanceSource?: boolean;\n objectIdQuery?: string;\n instanceSourcePopoverVisible?: boolean;\n sortFields?: { field: string; order: number }[];\n backendDefaultFields?: { field: string; order: number }[];\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): 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 // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\n \"easyops.api.cmdb.job@SearchResource:1.0.1\",\n { cache: false }\n );\n const instanceArchiveListProvider = useProvider(\n \"providers-of-cmdb.instance-archive-api-list-archive-instance\",\n {\n cache: false,\n }\n );\n const ignorePermissionProvider = useProvider(\n \"easyops.api.cmdb.instance@PostSearchV3WithAdmin:1.0.0\",\n { cache: false }\n );\n // istanbul ignore next\n\n const fieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@GetListDisplayView:1.0.1\",\n { cache: false }\n );\n const updateFieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@UpdateListDisplayView:1.0.0\",\n { cache: false }\n );\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n const externalGetIdMapName = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetIdMapName:1.0.1\",\n { cache: false }\n );\n const externalFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetListDisplayView:1.0.0\",\n { cache: false }\n );\n const externalUpdateFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyUpdateListDisplayView:1.0.0\",\n { cache: false }\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 if (props.useExternalCmdbApi) {\n idNameMap = await externalGetIdMapName.query([\n {\n parentObjectId: modelData.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n props.showFilterInstanceSource &&\n jsonLocalStorage.setItem(`instances-sources-objectId-name-map`, {\n parentObjectId: modelData.objectId,\n query: props.presetConfigs?.query,\n idNameMap,\n });\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 // 针对 显示字段,默认优先拿排序的字段,再去拿属性字段\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 ).concat(modelData.view.hide_columns || []);\n const sortFields = modelData.view.attr_order || [];\n const allFields = [\n ...new Set([...sortFields, ...map(modelData.attrList, \"id\")]),\n ];\n const fieldIds: string[] = difference(allFields, ignoredFields).slice(0, 8);\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 // istanbul ignore next\n\n const getFieldsAsync = async () => {\n let sort = props.sort;\n let fieldIds = props.presetConfigs?.fieldIds;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n let asc, sortFields;\n let backendDefaultFields;\n if (props.asc === true) {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? 2 : 1;\n } else {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? -2 : -1;\n }\n if (props.useExternalCmdbApi) {\n sortFields = (\n (await externalFieldsProvider.query([\n { object_id: props.objectId, sourceId: props.externalSourceId },\n ])) as {\n sortFields: ISortField[];\n object_id: string;\n }\n ).sortFields;\n } else {\n // 获取用户配置的显示列\n const returnData = (await fieldsProvider.query([props.objectId])) as {\n sortFields: ISortField[];\n object_id: string;\n defaultSortFields: ISortField[];\n };\n sortFields = returnData.sortFields;\n backendDefaultFields = returnData.defaultSortFields;\n }\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = sortFields.map((item) => item.field);\n if (isEmpty(sort) || isEmpty(asc)) {\n const orderField = sortFields.find((item) => item.order !== 0);\n if (orderField) {\n sort = orderField.field;\n asc = orderField.order;\n }\n }\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\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, sort, asc, sortFields, backendDefaultFields };\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\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 sortFields: [],\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 objectIdQuery: props.objectIdQuery,\n filterInstanceSource: props.filterInstanceSource,\n instanceSourcePopoverVisible: false,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: props.saveFieldsBackend ? [] : getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\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 backendDefaultFields: [],\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 // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, props.externalSourceId]);\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: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n const archiveData: instanceArchiveRequestBody = {};\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = archiveData.page = page;\n v3Data[\"page_size\"] =\n data[\"page_size\"] =\n archiveData[\"page_size\"] =\n 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 (state.q && props.useInstanceArchiveProvider) {\n archiveData.key_word = state.q;\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 (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (props.useInstanceArchiveProvider) {\n archiveData.fields = v3Data.fields.join(\",\");\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 // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\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 const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\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 ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n if (props.useInstanceArchiveProvider) {\n return instanceArchiveListProvider.query([props.objectId, archiveData]);\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n // useExternalCmdbApi= true 使用外部接口externalPostSearchV3\n return promise\n ? promise\n : props.useExternalCmdbApi\n ? externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ])\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : props.ignorePermission\n ? ignorePermissionProvider.query([props.objectId, v3Data])\n : 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 // 为了接口报错,不把整页面列干掉,去掉 failed: true 这个逻辑\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n // const [fieldIds,setFieldIds] = useState([]);\n // istanbul ignore next\n useEffect(() => {\n if (props.saveFieldsBackend) {\n const getFieldIds = async () => {\n const fieldConfig = await getFieldsAsync();\n const { fieldIds, sort, asc, sortFields, backendDefaultFields } =\n fieldConfig;\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n )\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n sort,\n asc: [1, 2].includes(asc) ? true : false,\n sortFields,\n backendDefaultFields,\n });\n };\n getFieldIds();\n } else {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\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 useEffect(() => {\n setQ(props.q);\n setState({ q: props.q });\n }, [props.q]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\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 state.presetConfigsQuery,\n props.updateDataTime,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\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 let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n page: 1,\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...params,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else if (props.ignorePermission) {\n resp = await ignorePermissionProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\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 = useCallback(\n async (info: ReadSortingChangeDetail, sortFields?: ISortField[]) => {\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 // istanbul ignore next\n if (\n props.saveFieldsBackend &&\n sortFields.find((item) => item.field === info.sort)\n ) {\n try {\n const oldsortFields = sortFields;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const newSortFields = updateSortFields(oldsortFields, info, sortType);\n setState({\n sortFields: newSortFields,\n });\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields: newSortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: newSortFields },\n ]);\n }\n } catch (e) {\n handleHttpError;\n }\n }\n // istanbul ignore next\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((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 let appListResp: any;\n const params: any = {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n ...(props.useExternalCmdbApi ? externalRequestParams : {}),\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n appListResp = await externalPostSearchV3.query([params]);\n } else {\n appListResp = await InstanceApi_postSearchV3(\"APP\", params);\n }\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 page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\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\n // 后台返回的默认配置\n\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n // istanbul ignore next\n // 管理员点击恢复默认按钮是恢复到模型的前N个字段\n // 普通用户点击恢复默认按钮是恢复到 1.管理员设置的默认显示 2.管理员未设置时取前N个\n if (\n !getAuth().isAdmin &&\n props.saveFieldsBackend &&\n !props.useExternalCmdbApi &&\n state.backendDefaultFields &&\n state.backendDefaultFields?.length > 0\n ) {\n // 后台接口返回的默认字段(1. admin用户设置的,2. 前N个)\n defaultFields = compact(\n state.backendDefaultFields?.map((s) => s.field)\n );\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData, state.backendDefaultFields]);\n\n // istanbul ignore next\n const handleConfirm = async ({\n fields,\n isReset,\n isAdminSetDisplay,\n }: DisplaySettingsModalData) => {\n if (isReset) {\n // 恢复默认操作\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n if (props.saveFieldsBackend) {\n const sortFields = mergeFields(state.sortFields, fieldIds);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([props.objectId, { sortFields }]);\n }\n setState({ fieldIds, sortFields });\n props.onFieldsModalConfirm(fieldIds);\n } else {\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n setState({ fieldIds });\n props.onFieldsModalConfirm(fieldIds);\n }\n } else {\n if (!isAdminSetDisplay) {\n // 点击确定按钮触发\n if (props.saveFieldsBackend) {\n try {\n const sortFields = mergeFields(state.sortFields, fields);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields },\n ]);\n }\n setState({\n fieldIds: _sortFieldIds(fields),\n sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(\n `${modelData.objectId}-selectAttrIds`,\n fields\n );\n }\n props.onFieldsModalConfirm(fields);\n } else {\n // 点击【默认显示】按钮触发,不影响当前列表显示。\n try {\n const sortFields = mergeFields(state.sortFields, fields);\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: sortFields, isDefault: true },\n ]);\n } catch (e) {\n handleHttpError(e);\n }\n }\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 v3Data.page = 1;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp: any;\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\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 filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\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 // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\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 isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n\n const onFilterInstanceSourceChange = (checked: boolean): void => {\n setState({ filterInstanceSource: checked });\n props.onFilterInstanceSourceChange?.(checked);\n };\n\n const onFilterObjectIdChange = (objectIdQuery: any): void => {\n setState({ objectIdQuery: objectIdQuery });\n props.onFilterObjectIdChange?.(objectIdQuery);\n };\n\n const onPopoverVisibleChange = (visible: boolean): void => {\n setState({ instanceSourcePopoverVisible: visible });\n };\n\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n useEffect(() => {\n if (props.showFilterInstanceSource) {\n const aq = initAqToShow(props.aq, modelData, false);\n const aqToShow = props.aqToShow || initAqToShow(props.aq, modelData);\n setState({ aq, aqToShow });\n }\n }, [props.aq, props.aqToShow, props.showFilterInstanceSource]);\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 placeholder={props.placeholder}\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.extraOperateBricks?.useBrick && (\n <BrickAsComponent\n useBrick={props.extraOperateBricks.useBrick}\n />\n )}\n {props.showFilterInstanceSource && (\n <FilterInstanceSource\n visible={state.instanceSourcePopoverVisible}\n checked={state.filterInstanceSource}\n onPopoverVisibleChange={onPopoverVisibleChange}\n onIconClicKChange={onFilterInstanceSourceChange}\n onChange={onFilterObjectIdChange}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n value={state.objectIdQuery}\n jsonLocalStorage={jsonLocalStorage}\n isAbstract={modelData.isAbstract}\n />\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 useExternalCmdbApi={props.useExternalCmdbApi}\n saveFieldsBackend={props.saveFieldsBackend}\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={(info: any) => {\n onSortingChange(info, state.sortFields);\n }}\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 rowSelectionType={props.rowSelectionType}\n onColumnsChange={props.onColumnsChange}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n />\n )}\n </React.Fragment>\n ) : (\n // 加个空白的div是为了将loading效果撑起来\n <div className={styles.virtualLoading}></div>\n )}\n </Spin>\n );\n}\n\n/**\n * 把 objectList 封装到构件中请求,废弃掉通过老模板使用的方式,可直接使用构件。\n * 同时也兼容之前的使用方式,对于外部传进来的会优先使用外部的数据,构件内部不会额外请求,\n * 不传的话构件内部做请求,并作缓存\n */\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n const [objectList, setObjectList] = useState<\n Partial<CmdbModels.ModelCmdbObject>[]\n >(props.objectList);\n\n const externalGetObjectRef = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0\",\n { cache: false }\n );\n\n useEffect(() => {\n if (props.objectList?.length) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n let list;\n if (props.useExternalCmdbApi) {\n list = await externalGetObjectRef.query([\n {\n ref_object: props.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n }\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InstanceList.js","names":["React","useEffect","useReducer","useState","useRef","useMemo","useCallback","difference","isEmpty","isEqual","isString","map","uniq","union","filter","reject","sortBy","uniqueId","findIndex","find","startsWith","compact","omit","keyBy","isNil","BrickAsComponent","getRuntime","handleHttpError","useProvider","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","CmdbObjectApi_getObjectRef","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","message","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","isSelfRelation","ElementOperators","LogicalOperators","JsonStorage","ConditionType","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","styles","extraFieldAttrs","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","objectListCache","ModelAttributeValueType","IconButton","changeQueryWithCustomRules","FilterInstanceSource","joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","attrList","field","relation","relation_list","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","attr","queryValue","id","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","mergeFields","oldFields","newFieldIds","existField","f","order","updateSortFields","sortInfo","sortType","asc","sort","includes","item","translateConditions","aq","t","conditions","relations","sidesArr","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","Exists","info","undefined","Between","Empty","NotEmpty","False","True","currentCondition","replace","condition","label","curCondition","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","listProvider","cache","instanceArchiveListProvider","ignorePermissionProvider","fieldsProvider","updateFieldsProvider","onError","error","externalPostSearchV3","externalGetIdMapName","externalFieldsProvider","externalUpdateFieldsProvider","disabledDefaultFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","useExternalCmdbApi","parentObjectId","sourceId","externalSourceId","showFilterInstanceSource","setItem","presetConfigs","computeDefaultFields","inModal","settings","ignoredFields","concat","hide_columns","sortFields","attr_order","allFields","slice","_sortFieldIds","frontFields","restFields","foundIndex","orderId","getFieldsAsync","default_type","backendDefaultFields","object_id","returnData","defaultSortFields","extraFixedFieldIds","extraFixedFields","orderField","extraDisabledField","hideModelData","getFields","getItem","setQ","state","setState","instanceSourceQuery","page","dataSource","pageSize","aliveHosts","relatedToMe","objectIdQuery","filterInstanceSource","instanceSourcePopoverVisible","inited","loading","failed","isAdvancedSearchVisible","saveFieldsBackend","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","Map","isFirstRunRef","externalRequestParams","getInstanceListData","data","v3Data","permission","archiveData","useInstanceArchiveProvider","key_word","defaultQuery","$and","fromEntries","ignore_missing_field_error","useAutoDiscoveryProvider","_agentStatus","_object_id","extraParams","assign","only_my_instance","hostRange","i","limitInstanceRange","$in","promise","onSearchExecute","ignorePermission","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","getFieldIds","fieldConfig","skip","onPaginationChange","updateDataTime","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","oldsortFields","newSortFields","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","s","handleConfirm","isReset","isAdminSetDisplay","onFieldsModalConfirm","removeItem","isDefault","success","SET_DEFAULT_DISPLAY_SUCCESS","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","Array","isArray","isInstanceFilterForm","onFilterInstanceSourceChange","onFilterObjectIdChange","onPopoverVisibleChange","visible","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","instanceListToolbar","searchRelated","placeholder","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","extraOperateBricks","useBrick","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","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","onColumnsChange","virtualLoading","InstanceList","setObjectList","externalGetObjectRef","cacheData","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} 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 cloneDeep,\n isNil,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} 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 {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select, Popover, message } 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 UseBrickAndPropertyDisplayConfig,\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 objectListCache,\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\";\nimport FilterInstanceSource from \"./FilterInstanceSource\";\nimport { ColumnType } from \"antd/lib/table\";\nimport { getAuth } from \"@next-core/brick-kit\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\ninterface ISortField {\n field: string;\n order: number;\n}\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\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 const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [...new Set([\"ip\", ...searchIpFields])];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\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\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\nexport function mergeFields(\n oldFields: ISortField[],\n newFieldIds: string[]\n): ISortField[] {\n return newFieldIds.map((field) => {\n const existField = oldFields.find((f) => f.field === field);\n const order = existField ? existField.order : 0;\n return { field, order };\n });\n}\nexport function updateSortFields(\n oldFields: ISortField[],\n sortInfo: { asc?: boolean; sort?: string },\n sortType?: string\n): ISortField[] {\n const { asc, sort } = sortInfo;\n const order = isNil(asc)\n ? 0\n : [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n return oldFields.map((item) => {\n if (item.field === sort) {\n item.order = order;\n } else {\n item.order = 0;\n }\n return item;\n });\n}\n\nexport function 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\nexport interface filterObjectIdQuery {\n objectId?: string;\n objectName?: string;\n query?: Record<string, string>;\n checked?: boolean;\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?: UseBrickAndPropertyDisplayConfig[];\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 onFieldsModalConfirm?(fields: Record<string, any>): 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 rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效\n extraFixedFields?: string[];\n // 如果在presetConfigs的query参数中指定了资源的范围,“按应用筛选”的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n useInstanceArchiveProvider?: boolean;\n placeholder?: string;\n extraOperateBricks?: {\n useBrick: UseBrickConf;\n };\n updateDataTime?: number;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(query: filterObjectIdQuery): void;\n objectIdQuery?: string;\n ignorePermission?: boolean;\n saveFieldsBackend?: boolean;\n onColumnsChange?: (columns: ColumnType<{ dataIndex: string }>[]) => void;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\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 presetConfigsQuery?: Record<string, any>;\n filterInstanceSource?: boolean;\n objectIdQuery?: string;\n instanceSourcePopoverVisible?: boolean;\n sortFields?: { field: string; order: number }[];\n backendDefaultFields?: { field: string; order: number }[];\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): 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 // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\n \"easyops.api.cmdb.job@SearchResource:1.0.1\",\n { cache: false }\n );\n const instanceArchiveListProvider = useProvider(\n \"providers-of-cmdb.instance-archive-api-list-archive-instance\",\n {\n cache: false,\n }\n );\n const ignorePermissionProvider = useProvider(\n \"easyops.api.cmdb.instance@PostSearchV3WithAdmin:1.0.0\",\n { cache: false }\n );\n // istanbul ignore next\n\n const fieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@GetListDisplayView:1.0.1\",\n { cache: false }\n );\n\n // istanbul ignore next\n const updateFieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@UpdateListDisplayView:1.0.0\",\n {\n cache: false,\n onError: (error) => {\n // istanbul ignore next\n throw error;\n },\n }\n );\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n const externalGetIdMapName = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetIdMapName:1.0.1\",\n { cache: false }\n );\n const externalFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetListDisplayView:1.0.0\",\n { cache: false }\n );\n const externalUpdateFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyUpdateListDisplayView:1.0.0\",\n { cache: false }\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 if (props.useExternalCmdbApi) {\n idNameMap = await externalGetIdMapName.query([\n {\n parentObjectId: modelData.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n props.showFilterInstanceSource &&\n jsonLocalStorage.setItem(`instances-sources-objectId-name-map`, {\n parentObjectId: modelData.objectId,\n query: props.presetConfigs?.query,\n idNameMap,\n });\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 // 针对 显示字段,默认优先拿排序的字段,再去拿属性字段\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 ).concat(modelData.view.hide_columns || []);\n const sortFields = modelData.view.attr_order || [];\n const allFields = [\n ...new Set([...sortFields, ...map(modelData.attrList, \"id\")]),\n ];\n const fieldIds: string[] = difference(allFields, ignoredFields).slice(0, 8);\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 // istanbul ignore next\n\n const getFieldsAsync = async () => {\n let sort = props.sort;\n let fieldIds = props.presetConfigs?.fieldIds;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n let asc, sortFields;\n let backendDefaultFields;\n if (props.asc === true) {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? 2 : 1;\n } else {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? -2 : -1;\n }\n if (props.useExternalCmdbApi) {\n sortFields = (\n (await externalFieldsProvider.query([\n { object_id: props.objectId, sourceId: props.externalSourceId },\n ])) as {\n sortFields: ISortField[];\n object_id: string;\n }\n ).sortFields;\n } else {\n // 获取用户配置的显示列\n const returnData = (await fieldsProvider.query([props.objectId])) as {\n sortFields: ISortField[];\n object_id: string;\n defaultSortFields: ISortField[];\n };\n sortFields = returnData.sortFields;\n backendDefaultFields = returnData.defaultSortFields;\n }\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = sortFields.map((item) => item.field);\n if (isEmpty(sort) || isEmpty(asc)) {\n const orderField = sortFields.find((item) => item.order !== 0);\n if (orderField) {\n sort = orderField.field;\n asc = orderField.order;\n }\n }\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\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, sort, asc, sortFields, backendDefaultFields };\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\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 sortFields: [],\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 objectIdQuery: props.objectIdQuery,\n filterInstanceSource: props.filterInstanceSource,\n instanceSourcePopoverVisible: false,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: props.saveFieldsBackend ? [] : getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\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 backendDefaultFields: [],\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 // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, props.externalSourceId]);\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: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n const archiveData: instanceArchiveRequestBody = {};\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = archiveData.page = page;\n v3Data[\"page_size\"] =\n data[\"page_size\"] =\n archiveData[\"page_size\"] =\n 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 (state.q && props.useInstanceArchiveProvider) {\n archiveData.key_word = state.q;\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 (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (props.useInstanceArchiveProvider) {\n archiveData.fields = v3Data.fields.join(\",\");\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 // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\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 const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\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 ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n if (props.useInstanceArchiveProvider) {\n return instanceArchiveListProvider.query([props.objectId, archiveData]);\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n // useExternalCmdbApi= true 使用外部接口externalPostSearchV3\n return promise\n ? promise\n : props.useExternalCmdbApi\n ? externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ])\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : props.ignorePermission\n ? ignorePermissionProvider.query([props.objectId, v3Data])\n : 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 // 为了接口报错,不把整页面列干掉,去掉 failed: true 这个逻辑\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n // const [fieldIds,setFieldIds] = useState([]);\n // istanbul ignore next\n useEffect(() => {\n if (props.saveFieldsBackend) {\n const getFieldIds = async () => {\n const fieldConfig = await getFieldsAsync();\n const { fieldIds, sort, asc, sortFields, backendDefaultFields } =\n fieldConfig;\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n )\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n sort,\n asc: [1, 2].includes(asc) ? true : false,\n sortFields,\n backendDefaultFields,\n });\n };\n getFieldIds();\n } else {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\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 useEffect(() => {\n setQ(props.q);\n setState({ q: props.q });\n }, [props.q]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\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 state.presetConfigsQuery,\n props.updateDataTime,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\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 let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n page: 1,\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...params,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else if (props.ignorePermission) {\n resp = await ignorePermissionProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\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 = useCallback(\n async (info: ReadSortingChangeDetail, sortFields?: ISortField[]) => {\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 // istanbul ignore next\n if (\n props.saveFieldsBackend &&\n sortFields.find((item) => item.field === info.sort)\n ) {\n try {\n const oldsortFields = sortFields;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const newSortFields = updateSortFields(oldsortFields, info, sortType);\n setState({\n sortFields: newSortFields,\n });\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields: newSortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: newSortFields },\n ]);\n }\n } catch (e) {\n handleHttpError;\n }\n }\n // istanbul ignore next\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((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 let appListResp: any;\n const params: any = {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n ...(props.useExternalCmdbApi ? externalRequestParams : {}),\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n appListResp = await externalPostSearchV3.query([params]);\n } else {\n appListResp = await InstanceApi_postSearchV3(\"APP\", params);\n }\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 page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\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\n // 后台返回的默认配置\n\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n // istanbul ignore next\n // 所有用户(包括管理员)点击恢复默认按钮是恢复到 1.管理员设置的默认显示 2.管理员未设置时取前N个\n if (\n props.saveFieldsBackend &&\n !props.useExternalCmdbApi &&\n state.backendDefaultFields &&\n state.backendDefaultFields?.length > 0\n ) {\n // istanbul ignore next\n // 后台接口返回的默认字段(1. admin用户设置的,2. 前N个)\n defaultFields = compact(\n state.backendDefaultFields?.map((s) => s.field)\n );\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData, state.backendDefaultFields]);\n\n // istanbul ignore next\n const handleConfirm = async ({\n fields,\n isReset,\n isAdminSetDisplay,\n }: DisplaySettingsModalData) => {\n if (isReset) {\n // 恢复默认操作\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n if (props.saveFieldsBackend) {\n const sortFields = mergeFields(state.sortFields, fieldIds);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([props.objectId, { sortFields }]);\n }\n setState({ fieldIds, sortFields });\n props.onFieldsModalConfirm(fieldIds);\n } else {\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n setState({ fieldIds });\n props.onFieldsModalConfirm(fieldIds);\n }\n } else {\n if (!isAdminSetDisplay) {\n // 点击确定按钮触发\n if (props.saveFieldsBackend) {\n try {\n const sortFields = mergeFields(state.sortFields, fields);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields },\n ]);\n }\n setState({\n fieldIds: _sortFieldIds(fields),\n sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(\n `${modelData.objectId}-selectAttrIds`,\n fields\n );\n }\n props.onFieldsModalConfirm(fields);\n } else {\n // 点击【默认显示】按钮触发,不影响当前列表显示。\n try {\n // istanbul ignore next\n const sortFields = mergeFields(state.sortFields, fields);\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: sortFields, isDefault: true },\n ]);\n message.success(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SET_DEFAULT_DISPLAY_SUCCESS}`)\n );\n setState({\n backendDefaultFields: sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n }\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 v3Data.page = 1;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp: any;\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\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 filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\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 // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\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 isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n\n const onFilterInstanceSourceChange = (checked: boolean): void => {\n setState({ filterInstanceSource: checked });\n props.onFilterInstanceSourceChange?.(checked);\n };\n\n const onFilterObjectIdChange = (objectIdQuery: any): void => {\n setState({ objectIdQuery: objectIdQuery });\n props.onFilterObjectIdChange?.(objectIdQuery);\n };\n\n const onPopoverVisibleChange = (visible: boolean): void => {\n setState({ instanceSourcePopoverVisible: visible });\n };\n\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n useEffect(() => {\n if (props.showFilterInstanceSource) {\n const aq = initAqToShow(props.aq, modelData, false);\n const aqToShow = props.aqToShow || initAqToShow(props.aq, modelData);\n setState({ aq, aqToShow });\n }\n }, [props.aq, props.aqToShow, props.showFilterInstanceSource]);\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 placeholder={props.placeholder}\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.extraOperateBricks?.useBrick && (\n <BrickAsComponent\n useBrick={props.extraOperateBricks.useBrick}\n />\n )}\n {props.showFilterInstanceSource && (\n <FilterInstanceSource\n visible={state.instanceSourcePopoverVisible}\n checked={state.filterInstanceSource}\n onPopoverVisibleChange={onPopoverVisibleChange}\n onIconClicKChange={onFilterInstanceSourceChange}\n onChange={onFilterObjectIdChange}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n value={state.objectIdQuery}\n jsonLocalStorage={jsonLocalStorage}\n isAbstract={modelData.isAbstract}\n />\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 useExternalCmdbApi={props.useExternalCmdbApi}\n saveFieldsBackend={props.saveFieldsBackend}\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={(info: any) => {\n onSortingChange(info, state.sortFields);\n }}\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 rowSelectionType={props.rowSelectionType}\n onColumnsChange={props.onColumnsChange}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n />\n )}\n </React.Fragment>\n ) : (\n // 加个空白的div是为了将loading效果撑起来\n <div className={styles.virtualLoading}></div>\n )}\n </Spin>\n );\n}\n\n/**\n * 把 objectList 封装到构件中请求,废弃掉通过老模板使用的方式,可直接使用构件。\n * 同时也兼容之前的使用方式,对于外部传进来的会优先使用外部的数据,构件内部不会额外请求,\n * 不传的话构件内部做请求,并作缓存\n */\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n const [objectList, setObjectList] = useState<\n Partial<CmdbModels.ModelCmdbObject>[]\n >(props.objectList);\n\n const externalGetObjectRef = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0\",\n { cache: false }\n );\n\n useEffect(() => {\n if (props.objectList?.length) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n let list;\n if (props.useExternalCmdbApi) {\n list = await externalGetObjectRef.query([\n {\n ref_object: props.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n }\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,IACVC,SAAS,EACTC,UAAU,EACVC,QAAQ,EACRC,MAAM,EACNC,OAAO,EACPC,WAAW,QACN,OAAO;AACd,SACEC,UAAU,EACVC,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,GAAG,EACHC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,KAAK,EAELC,KAAK,QACA,QAAQ;AACf,SACEC,gBAAgB,EAChBC,UAAU,EACVC,eAAe,EACfC,WAAW,QACN,sBAAsB;AAC7B,OAAOC,IAAI,MAAM,SAAS;AAC1B,SAASC,CAAC,EAAEC,sBAAsB,QAAQ,mBAAmB;AAQ7D,SAKEC,wBAAwB,EACxBC,0BAA0B,EAC1BC,0BAA0B,QACrB,oBAAoB;AAC3B,SAASC,IAAI,IAAIC,UAAU,QAAQ,wBAAwB;AAC3D,SAASC,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAEC,GAAG,EAAEC,MAAM,EAAWC,OAAO,QAAQ,MAAM;AACzE,SACEC,sBAAsB,EACtBC,sBAAsB,EACtBC,mBAAmB,EAKnBC,cAAc,EAEdC,gBAAgB,EAChBC,gBAAgB,QAEX,uBAAuB;AAC9B,SAASC,WAAW,QAAQ,oBAAoB;AAGhD,SACEC,aAAa,EACbC,cAAc,EACdC,2BAA2B,EAC3BC,oBAAoB,EACpBC,iBAAiB,QAIZ,wBAAwB;AAC/B,OAAOC,MAAM,MAAM,2BAA2B;AAC9C,SACEC,eAAe,EACfC,0BAA0B,EAC1BC,6BAA6B,EAC7BC,eAAe,QACV,aAAa;AACpB,SAASC,uBAAuB,QAAQ,2DAA2D;AACnG,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,0BAA0B,QAAQ,eAAe;AAE1D,OAAOC,oBAAoB,MAAM,wBAAwB;AAqBzD,OAAO,SAASC,2BAA2B,CACzCC,MAAgB,EAChBC,SAA8B,EAC9BC,UAAiC,EACjC;EACA,IAAMC,SAAS,GAAG7C,KAAK,CAAC2C,SAAS,CAACG,QAAQ,EAAE,IAAI,CAAC;EACjD,OAAOJ,MAAM,CAACtD,GAAG,CAAE2D,KAAK,IAAK;IAC3B,IAAIF,SAAS,CAACE,KAAK,CAAC,EAAE;MACpB,OAAOA,KAAK;IACd,CAAC,MAAM;MACL,IAAMC,QAAQ,GAAGL,SAAS,CAACM,aAAa,CAACrD,IAAI,CAC1CoD,QAAa,IACZA,QAAQ,CAACE,OAAO,KAAKH,KAAK,IAAIC,QAAQ,CAACG,QAAQ,KAAKJ,KAAK,CAC5D;MACD,IAAIC,QAAQ,EAAE;QAAA;QACZ,IAAMI,MAAM,GAAGJ,QAAQ,CAACK,cAAc,KAAKV,SAAS,CAACW,QAAQ;QAC7D,IAAMC,iBAAiB,GAAGH,MAAM,GAC5BJ,QAAQ,CAACQ,eAAe,GACxBR,QAAQ,CAACK,cAAc;QAC3B,IAAMI,eAAe,GAAGb,UAAU,CAAChD,IAAI,CACpC8D,MAAM,IAAKA,MAAM,CAACJ,QAAQ,KAAKC,iBAAiB,CAClD;QACD,IAAMI,OAAO,4BAAGF,eAAe,aAAfA,eAAe,iDAAfA,eAAe,CAAEG,IAAI,qFAArB,uBAAuBC,QAAQ,2DAA/B,uBAAkC,CAAC,CAAC,yEAAI,EAAE;QAC1D,iBAAUd,KAAK,cAAIY,OAAO;MAC5B,CAAC,MAAM;QACL,OAAOZ,KAAK;MACd;IACF;EACF,CAAC,CAAC;AACJ;AAEA,OAAO,SAASe,QAAQ,CACtBnB,SAA8C,EAC9CoB,WAAgE,EAChEC,CAAS,EACTtB,MAAiB,EACjBuB,cAAwB,EACxB;EACA,IAAMC,KAA0B,GAAG;IAAEC,GAAG,EAAE;EAAG,CAAC;EAC9C,IAAMC,WAAW,GAAGJ,CAAC,CAACK,IAAI,EAAE,CAACC,KAAK,CAAC,KAAK,CAAC;EACzC,IAAIL,cAAc,EAAE;IAAA;IAClB,IAAMM,cAAc,GAClB,0BAACpE,UAAU,EAAE,CAACqE,aAAa,EAAE,CAACC,MAAM,0DAAnC,sBAAqCF,cAAc,KAAiB,EAAE;IACzE,IAAMG,QAAQ,GAAG,CAAC,GAAG,IAAIC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAGJ,cAAc,CAAC,CAAC,CAAC;IACxD,IAAMK,WAAW,GAAG;MAAEC,KAAK,aAAMb,CAAC,CAACK,IAAI,EAAE;IAAI,CAAC;IAC9CK,QAAQ,CAACI,OAAO,CAAEC,GAAG,IAAK;MACxBb,KAAK,CAACC,GAAG,CAACa,IAAI,CAAC;QAAE,CAACD,GAAG,GAAGH;MAAY,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,OAAOV,KAAK;EACd;EACA7C,sBAAsB,CACpBsB,SAAS,EACRsC,IAAI,IAAK;IACRb,WAAW,CAACU,OAAO,CAAEI,UAAU,IAC7BhB,KAAK,CAACC,GAAG,CAACa,IAAI,CAAC;MAAE,CAACC,IAAI,CAACE,EAAE,GAAG;QAAEN,KAAK,aAAMK,UAAU;MAAI;IAAE,CAAC,CAAC,CAC5D;EACH,CAAC,EACD,CAAClC,QAAQ,EAAEoC,KAAK,KAAK;IACnB,IAAMD,EAAE,GAAGnC,QAAQ,WAAIoC,KAAK,CAACC,IAAI,SAAwB;IACzD,IAAMC,QAAQ,GAAGhE,mBAAmB,CAClCyC,WAAW,CAACf,QAAQ,WAAIoC,KAAK,CAACG,IAAI,gBAAqC,CAAC,CACzE;IAEDnB,WAAW,CAACU,OAAO,CAAEI,UAAU,IAAK;MAClCI,QAAQ,CAACR,OAAO,CAAEU,OAAO,IAAK;QAC5BtB,KAAK,CAACC,GAAG,CAACa,IAAI,CAAC;UACb,WAAIG,EAAE,cAAIK,OAAO,IAAK;YAAEX,KAAK,aAAMK,UAAU;UAAI;QACnD,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EACDxC,MAAM,CACP;EAED,OAAOwB,KAAK;AACd;AAEA,OAAO,IAAMuB,WAAW,GAAG,CAACvB,KAAU,EAAEwB,MAAc,KAAK;EACzD,OAAOC,MAAM,CAACC,IAAI,CAAC1B,KAAK,CAACwB,MAAM,CAAC,CAAY,CAACG,IAAI,CAC9CC,CAAC,IAAKA,CAAC,KAAK,SAAS,IAAIA,CAAC,KAAK,MAAM,IAAIA,CAAC,KAAK,MAAM,CACvD;AACH,CAAC;AAED,OAAO,IAAMC,mBAAmB,GAAG,CAAC7B,KAAU,EAAEa,GAAQ,EAAEiB,OAAgB,KAAK;EAC7E;EACA,IAAMC,SAAS,GAAGR,WAAW,CAACvB,KAAK,EAAEa,GAAG,CAAC;EACzC,IAAIkB,SAAS,EAAE;IACb;EACF;EACAD,OAAO,CAAChB,IAAI,CAACd,KAAK,CAAC;AACrB,CAAC;AAED,OAAO,IAAMgC,cAAc,GAAG,CAC5BhC,KAAU,EACVwB,MAAc,EACdS,SAAkB,KACf;EACH,IAAMF,SAAS,GAAGR,WAAW,CAACvB,KAAK,EAAEwB,MAAM,CAAC;EAC5C,IAAIO,SAAS,EAAE,OAAO,KAAK;EAC3B,OAAO/B,KAAK,CAACwB,MAAM,CAAC,GAChBS,SAAS,IAAIR,MAAM,CAACS,MAAM,CAAClC,KAAK,CAACwB,MAAM,CAAC,CAAC,CAACW,IAAI,CAAC,GAAG,CAAC,KAAKF,SAAS,CAAC;EAAA,EAClE,KAAK;AACX,CAAC;AACD,OAAO,SAASG,WAAW,CACzBC,SAAuB,EACvBC,WAAqB,EACP;EACd,OAAOA,WAAW,CAACpH,GAAG,CAAE2D,KAAK,IAAK;IAChC,IAAM0D,UAAU,GAAGF,SAAS,CAAC3G,IAAI,CAAE8G,CAAC,IAAKA,CAAC,CAAC3D,KAAK,KAAKA,KAAK,CAAC;IAC3D,IAAM4D,KAAK,GAAGF,UAAU,GAAGA,UAAU,CAACE,KAAK,GAAG,CAAC;IAC/C,OAAO;MAAE5D,KAAK;MAAE4D;IAAM,CAAC;EACzB,CAAC,CAAC;AACJ;AACA,OAAO,SAASC,gBAAgB,CAC9BL,SAAuB,EACvBM,QAA0C,EAC1CC,QAAiB,EACH;EACd,IAAM;IAAEC,GAAG;IAAEC;EAAK,CAAC,GAAGH,QAAQ;EAC9B,IAAMF,KAAK,GAAG1G,KAAK,CAAC8G,GAAG,CAAC,GACpB,CAAC,GACD,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAACE,QAAQ,CAACH,QAAQ,CAAC,GACzDC,GAAG,GACD,CAAC,GACD,CAAC,CAAC,GACJA,GAAG,GACH,CAAC,GACD,CAAC,CAAC;EACN,OAAOR,SAAS,CAACnH,GAAG,CAAE8H,IAAI,IAAK;IAC7B,IAAIA,IAAI,CAACnE,KAAK,KAAKiE,IAAI,EAAE;MACvBE,IAAI,CAACP,KAAK,GAAGA,KAAK;IACpB,CAAC,MAAM;MACLO,IAAI,CAACP,KAAK,GAAG,CAAC;IAChB;IACA,OAAOO,IAAI;EACb,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,mBAAmB,CACjCC,EAAW,EACXrD,WAAgE,EAChEpB,SAA8C,EAC9C0E,CAAgB,EAC4C;EAC5D,IAAMC,UAIH,GAAG,EAAE;EACR,IAAMC,SAAgB,GAAG,EAAE;EAC3B5E,SAAS,CAACM,aAAa,CAAC6B,OAAO,CAAE9B,QAAQ,IAAK;IAC5C,IAAIwE,QAA+B,GAAG,EAAE;IACxC,IAAIjG,cAAc,CAACyB,QAAQ,CAAC,EAAE;MAC5BwE,QAAQ,GAAG,CACT;QAAEnC,IAAI,EAAE,MAAM;QAAEE,IAAI,EAAE;MAAQ,CAAC,EAC/B;QAAEF,IAAI,EAAE,OAAO;QAAEE,IAAI,EAAE;MAAO,CAAC,CAChC;IACH,CAAC,MAAM;MACLiC,QAAQ,GAAG,CAACpG,sBAAsB,CAAC4B,QAAQ,EAAEL,SAAS,CAAC,CAAC;IAC1D;IACA6E,QAAQ,CAAC1C,OAAO,CAAEM,KAAK,IAAK;MAC1B,IAAM9B,QAAQ,GAAGN,QAAQ,WAAIoC,KAAK,CAACC,IAAI,SAAwB;MAC/D,IAAMoC,cAAc,GAClB1D,WAAW,CACTf,QAAQ,WAAIoC,KAAK,CAACG,IAAI,gBAAqC,CAC5D;MACH,IAAMD,QAAQ,GAAGhE,mBAAmB,CAACmG,cAAc,CAAC;MACpDnC,QAAQ,CAACR,OAAO,CAAEU,OAAO,IAAK;QAAA;QAC5B,IAAMkC,aAAa,0BACjB9H,IAAI,CAAC6H,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAE3E,QAAQ,EAAE,CAAC,IAAI,EAAE0C,OAAO,CAAC,CAAC,0CAA/C,MAAiDmC,IAAI,mDAAInC,OAAO;QAClE,IAAML,EAAE,aAAM7B,QAAQ,cAAIkC,OAAO,CAAE;QACnC,IAAMmC,IAAI,aACR3E,QAAQ,WAAIoC,KAAK,CAACC,IAAI,WAA4B,cAChDqC,aAAa,MAAG;QACpBH,SAAS,CAACvC,IAAI,CAAC;UACbG,EAAE;UACFwC,IAAI;UACJC,KAAK,EAAE;YAAEC,IAAI,EAAE;UAAM,CAAC;UACtBC,cAAc,EAAE9E,QAAQ,WAAIoC,KAAK,CAACC,IAAI;QACxC,CAAC,CAAC;MACJ,CAAC,CAAC;MACFkC,SAAS,CAACvC,IAAI,CAAC;QACbG,EAAE,YAAK7B,QAAQ,MAAG;QAClBqE,IAAI,YAAK3E,QAAQ,WAAIoC,KAAK,CAACC,IAAI,WAA4B,CAAE;QAC7DuC,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAM,CAAC;QACtBC,cAAc,EAAE9E,QAAQ,WAAIoC,KAAK,CAACC,IAAI;MACxC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,IAAM0C,mBAAmB,GAAG,CAAC,GAAGpF,SAAS,CAACG,QAAQ,EAAE,GAAGyE,SAAS,CAAC;EACjE,IAAI,CAACtI,OAAO,CAACmI,EAAE,CAAC,EAAE;IAChB,KAAK,IAAMlD,MAAK,IAAIkD,EAAE,EAAE;MACtB,IAAIpB,QAAgB,GAAG,CAAC9B,MAAK,CAAC;MAC9B,IAAIyB,MAAM,CAACC,IAAI,CAAC1B,MAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAIyB,MAAM,CAACC,IAAI,CAAC1B,MAAK,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;QACvE8B,QAAO,GAAG9B,MAAK,CAACyB,MAAM,CAACC,IAAI,CAAC1B,MAAK,CAAC,CAAC,CAAC,CAAC,CAAY;MACnD;MAEA8B,QAAO,CAAClB,OAAO,CAAEZ,KAAK,IAAK;QAAA;QACzB,IAAMa,GAAG,GAAGY,MAAM,CAACC,IAAI,CAAC1B,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAM0D,KAAK,GAAGjC,MAAM,CAACS,MAAM,CAAClC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAIe,IAAI,GAAG8C,mBAAmB,CAACnI,IAAI,CAChCqF,IAAI,IAAKA,IAAI,CAACE,EAAE,KAAKJ,GAAG,IAAIE,IAAI,CAAC6C,cAAc,KAAK/C,GAAG,CACzD;QACD,IACEY,MAAM,CAACC,IAAI,CAACgC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAKpG,gBAAgB,CAACwG,MAAM,aACjD/C,IAAI,kCAAJ,MAAM6C,cAAc,EACpB;UACA,IAAMA,cAAc,GAAG7C,IAAI,CAAC6C,cAAc;UAC1C7C,IAAI,GACF8C,mBAAmB,CAACnI,IAAI,CACrBqF,IAAI,IAAKA,IAAI,CAACE,EAAE,eAAQ2C,cAAc,MAAG,CAC3C,IAAI7C,IAAI;QACb;QACA,IAAIA,IAAI,EAAE;UACRf,KAAK,GAAG3B,0BAA0B,CAChCI,SAAS,CAACW,QAAQ,EAClB2B,IAAI,CAACE,EAAE,EACPjB,KAAK,CACN;UACD,IAAM+D,IAAI,GAAGpG,2BAA2B,CACtCqC,KAAK,EACLa,GAAG,EACHE,IAAI,CAAC2C,KAAK,CAACC,IAAI,EACfK,SAAS,EACTA,SAAS,EACTvF,SAAS,CAACW,QAAQ,EAClB2B,IAAI,CAACE,EAAE,CACR;UACD,IACE,CAAC,CACCxD,aAAa,CAACwG,OAAO,EACrBxG,aAAa,CAACyG,KAAK,EACnBzG,aAAa,CAAC0G,QAAQ,EACtB1G,aAAa,CAAC2G,KAAK,EACnB3G,aAAa,CAAC4G,IAAI,CACnB,CAACtB,QAAQ,CAACgB,IAAI,CAACO,gBAAgB,CAACX,IAAI,CAAC,EACtC;YACAI,IAAI,CAAC7B,MAAM,GAAG6B,IAAI,CAAC7B,MAAM,CAAChH,GAAG,CAAE0G,CAAC,IAC9B3G,QAAQ,CAAC2G,CAAC,CAAC,IAAIA,CAAC,CAACmB,QAAQ,CAAC,GAAG,CAAC,GAAGnB,CAAC,CAAC2C,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG3C,CAAC,CAC/D;UACH;UAEA,IAAI4C,SAAS,aAAMzD,IAAI,CAAC0C,IAAI,eAAKM,IAAI,CAACO,gBAAgB,CAACG,KAAK,CAAE;UAC9D,IACE,CAAC,CAAChH,aAAa,CAACyG,KAAK,EAAEzG,aAAa,CAAC0G,QAAQ,CAAC,CAACpB,QAAQ,CACrDgB,IAAI,CAACO,gBAAgB,CAACX,IAAI,CAC3B,EACD;YACAa,SAAS,gBAAQT,IAAI,CAAC7B,MAAM,CAACC,IAAI,CAAC,KAAK,CAAC,OAAG;UAC7C;UACA,IAAMuC,YAAY,GAAG;YACnBlD,MAAM,EAAEX,GAAG;YACX2D,SAAS;YACTvC,SAAS,EAAE8B,IAAI,CAACY;UAClB,CAAC;UACD,IACEvB,UAAU,CAACwB,KAAK,CACbhD,CAAC,IAAK,CAAC5G,OAAO,CAACa,IAAI,CAAC+F,CAAC,EAAE,QAAQ,CAAC,EAAE/F,IAAI,CAAC6I,YAAY,EAAE,QAAQ,CAAC,CAAC,CACjE,EACD;YACAtB,UAAU,CAACtC,IAAI,CAAC4D,YAAY,CAAC;UAC/B;QACF;MACF,CAAC,CAAC;IACJ;EACF;EAEA,OAAOtB,UAAU;AACnB;AAEA,SAASyB,MAAM,CAACC,QAAkB,EAAE5B,EAAW,EAAU;EACvD,IAAIrC,GAAG,GAAG,EAAE;EACZ,IAAI,CAAC9F,OAAO,CAAC+J,QAAQ,CAAC,EAAE;IACtBjE,GAAG,IAAIiE,QAAQ,CAAC3C,IAAI,CAAC,GAAG,CAAC;EAC3B;EACA,IAAI,CAACpH,OAAO,CAACmI,EAAE,CAAC,EAAE;IAChBrC,GAAG,eAAQqC,EAAE,CAAC6B,MAAM,CAAE;EACxB;EACA,OAAOlE,GAAG;AACZ;AACA,IAAMmE,UAAU,GAAG,CACjBvG,SAA8C,EAC9CwG,OAAe,KACZ;EAAA;EACH,IAAMC,YAAY,4BAAGzG,SAAS,CAACG,QAAQ,CACpCvD,MAAM,CACJ0F,IAA8B,IAC7BA,IAAI,CAAC2C,KAAK,CAACC,IAAI,KAAK,QAAQ,IAAI5C,IAAI,CAAC2C,KAAK,CAACC,IAAI,KAAK,SAAS,CAChE,0DAJkB,sBAKjBzI,GAAG,CAAE6F,IAAI,IAAK;IACd,IAAMoE,OAAiB,GAAG,EAAE;IAC5BpE,IAAI,CAAC2C,KAAK,CAAC0B,aAAa,CAACxE,OAAO,CAAEyE,MAAM,IAAK;MAC3CF,OAAO,CAACrE,IAAI,WAAIC,IAAI,CAACE,EAAE,cAAIoE,MAAM,CAACpE,EAAE,EAAG;IACzC,CAAC,CAAC;IACF,OAAOkE,OAAO;EAChB,CAAC,CAAC,CACDG,IAAI,EAAE;EACT,OAAOJ,YAAY,CAACnC,QAAQ,CAACkC,OAAO,CAAC;AACvC,CAAC;AAED,IAAMM,WAAW,GAAG,CAClB3G,QAA+C,EAC/CqG,OAAe,KACH;EAAA;EACZ,IAAMO,UAAU,GAAG1J,KAAK,CAAC8C,QAAQ,EAAE,IAAI,CAAC;EACxC,OAAO,wBAAA4G,UAAU,CAACP,OAAO,CAAC,wDAAnB,oBAAqBvB,KAAK,CAACC,IAAI,MAAKxF,uBAAuB,CAACsH,OAAO;AAC5E,CAAC;AAED,OAAO,IAAMC,YAAY,GAAG,UAC1BxC,EAAW,EACXzE,SAA8C,EAE3C;EAAA,IADHkH,QAAQ,uEAAG,IAAI;EAEf,IAAIC,WAAkB,GAAG,EAAE;EAC3B,IAAI1C,EAAE,EAAE;IACNA,EAAE,CAACtC,OAAO,CAAEZ,KAAK,IAAK;MACpB,IAAM6F,QAAQ,GAAGpE,MAAM,CAACqE,OAAO,CAAC9F,KAAK,CAAC,CAAC9E,GAAG,CAAC,QAAwB;QAAA,IAAvB,CAAC2F,GAAG,EAAEkF,WAAW,CAAC;QAC5D,IAAIC,cAAqB,GAAG,EAAE;QAC9B,IAAInF,GAAG,KAAKtD,gBAAgB,CAAC0I,EAAE,IAAIpF,GAAG,KAAKtD,gBAAgB,CAAC2I,GAAG,EAAE;UAC/D,IAAMC,aAAa,GAAIJ,WAAW,CAAa,CAAC,CAAC;UACjD,IAAMd,QAAO,GAAGxD,MAAM,CAACC,IAAI,CAACyE,aAAa,CAAC,CAAC,CAAC,CAAC;UAC7C,IAAMC,QAAQ,GAAGpB,UAAU,CAACvG,SAAS,EAAEwG,QAAO,CAAC;UAC/C,IAAMoB,MAAM,GAAGd,WAAW,CAAC9G,SAAS,CAACG,QAAQ,EAAEqG,QAAO,CAAC;UACvD,IAAMqB,aAAkC,GACtCP,WAAW,CACX1K,MAAM,CAAEkL,UAAU,IAAK9E,MAAM,CAACC,IAAI,CAAC6E,UAAU,CAAC,CAAC,CAAC,CAAC,KAAKtB,QAAO,CAAC;UAChE,IAAImB,QAAQ,IAAIT,QAAQ,EAAE;YACxB,IAAMa,iBAAiB,GAAGF,aAAa,CAACpL,GAAG,CAAE8H,IAAS,KAAM;cAC1D,CAACiC,QAAO,CAAC7E,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG4C,IAAI,CAACiC,QAAO;YACvC,CAAC,CAAC,CAAC;YACHe,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGQ,iBAAiB,CAAC;UAC5D,CAAC,MAAM,IAAIH,MAAM,IAAI,CAACV,QAAQ,EAAE;YAC9B,IAAMc,eAAe,GAAIV,WAAW,CAAa7K,GAAG,CACjDqL,UAAU,IAAK;cACd,IAAMG,WAAW,GAAGH,UAAU,CAACtB,QAAO,CAGrC;cACD,IAAI,OAAOxD,MAAM,CAACS,MAAM,CAACwE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACrD,OAAO;kBACL,CAACzB,QAAO,GAAG;oBACT,CAACxD,MAAM,CAACC,IAAI,CAACgF,WAAW,CAAC,CAAC,CAAC,CAAC,GAC1BjF,MAAM,CAACS,MAAM,CAACwE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;kBACtC;gBACF,CAAC;cACH,CAAC,MAAM;gBACL,OAAOH,UAAU;cACnB;YACF,CAAC,CACF;YACDP,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGS,eAAe,CAAC;UAC1D,CAAC,MAAM;YACLT,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAID,WAAuB,CAAC;UACnE;UACA,OAAO;YAAE,CAAClF,GAAG,GAAGmF;UAAe,CAAC;QAClC,CAAC,MAAM;UACL,OAAOhG,KAAK;QACd;MACF,CAAC,CAAC;MACF4F,WAAW,GAAG,CAAC,GAAGA,WAAW,EAAE,GAAGC,QAAQ,CAAC;IAC7C,CAAC,CAAC;IACF,OAAOD,WAAW;EACpB;EACA;AACF,CAAC;AAqJD,OAAO,SAASe,kBAAkB,CAChCC,KAAwB,EACJ;EAAA;EACpB,IAAM;IAAEC,WAAW,GAAG;EAAK,CAAC,GAAGD,KAAK;EACpC,IAAME,QAAQ,GAAG,CACf;IACEC,UAAU,EAAE,KAAK;IACjBtD,IAAI,EAAErH,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAAC2K,WAAW;EACzD,CAAC,CACF;EACD,IAAMC,gBAAgB,GAAG,IAAIzJ,WAAW,CAAC0J,YAAY,CAAC;EACtD,IAAMC,OAAO,GAAG,CACdC,SAA4B,EAC5BC,eAA2C,KACrB;IACtB,uCACKD,SAAS,GACTC,eAAe;EAEtB,CAAC;EACD;EACA;;EAEA,IAAMC,YAAY,GAAGnL,WAAW,CAC9B,2CAA2C,EAC3C;IAAEoL,KAAK,EAAE;EAAM,CAAC,CACjB;EACD,IAAMC,2BAA2B,GAAGrL,WAAW,CAC7C,8DAA8D,EAC9D;IACEoL,KAAK,EAAE;EACT,CAAC,CACF;EACD,IAAME,wBAAwB,GAAGtL,WAAW,CAC1C,uDAAuD,EACvD;IAAEoL,KAAK,EAAE;EAAM,CAAC,CACjB;EACD;;EAEA,IAAMG,cAAc,GAAGvL,WAAW,CAChC,oDAAoD,EACpD;IAAEoL,KAAK,EAAE;EAAM,CAAC,CACjB;;EAED;EACA,IAAMI,oBAAoB,GAAGxL,WAAW,CACtC,uDAAuD,EACvD;IACEoL,KAAK,EAAE,KAAK;IACZK,OAAO,EAAGC,KAAK,IAAK;MAClB;MACA,MAAMA,KAAK;IACb;EACF,CAAC,CACF;;EAED;EACA,IAAMC,oBAAoB,GAAG3L,WAAW,CACtC,sDAAsD,EACtD;IAAEoL,KAAK,EAAE;EAAM,CAAC,CACjB;EACD,IAAMQ,oBAAoB,GAAG5L,WAAW,CACtC,sDAAsD,EACtD;IAAEoL,KAAK,EAAE;EAAM,CAAC,CACjB;EACD,IAAMS,sBAAsB,GAAG7L,WAAW,CACxC,4DAA4D,EAC5D;IAAEoL,KAAK,EAAE;EAAM,CAAC,CACjB;EACD,IAAMU,4BAA4B,GAAG9L,WAAW,CAC9C,+DAA+D,EAC/D;IAAEoL,KAAK,EAAE;EAAM,CAAC,CACjB;EAED,IAAM;IAAE9I,SAAS;IAAEoB;EAAY,CAAC,GAAGjF,OAAO,CAAC,MAAM;IAC/C,IAAI6D,SAA8C;IAClD,IAAMoB,WAAgE,GAAG,CAAC,CAAC;IAC3E+G,KAAK,CAAClI,UAAU,CAACkC,OAAO,CAAEpB,MAAM,IAAK;MACnCK,WAAW,CAACL,MAAM,CAACJ,QAAQ,CAAC,GAAGI,MAAM;MACrC,IAAIA,MAAM,CAACJ,QAAQ,KAAKwH,KAAK,CAACxH,QAAQ,EAAE;QACtCX,SAAS,GAAGe,MAAM;QAClBf,SAAS,CAACG,QAAQ,GAAG,CAACgI,KAAK,CAACsB,qBAAqB,GAC7C9M,KAAK,CAACoE,MAAM,CAACZ,QAAQ,EAAEb,eAAe,CAAC,GACvCyB,MAAM,CAACZ,QAAQ;MACrB;IACF,CAAC,CAAC;IAEF,OAAO;MAAEH,SAAS;MAAEoB;IAAY,CAAC;EACnC,CAAC,EAAE,CAAC+G,KAAK,CAAClI,UAAU,EAAEkI,KAAK,CAACxH,QAAQ,CAAC,CAAC;EAEtC,IAAM,CAAC+I,yBAAyB,EAAEC,4BAA4B,CAAC,GAAG1N,QAAQ,CAExE,CAAC,CAAC,CAAC;EACL,IAAM,CAAC2N,WAAW,EAAEC,YAAY,CAAC,GAAG5N,QAAQ,CAAC,KAAK,CAAC;EAEnD,IAAM6N,8BAA8B;IAAA,8BAAG,WACrC9J,SAA8C,EAC5B;MAClB,IAAI+J,SAAS,GAAG,CAAC,CAAC;MAClB,IAAI/J,SAAS,CAACgK,UAAU,EAAE;QAAA;QACxB,IAAI7B,KAAK,CAAC8B,kBAAkB,EAAE;UAC5BF,SAAS,SAAST,oBAAoB,CAAC/H,KAAK,CAAC,CAC3C;YACE2I,cAAc,EAAElK,SAAS,CAACW,QAAQ;YAClCwJ,QAAQ,EAAEhC,KAAK,CAACiC;UAClB,CAAC,CACF,CAAC;QACJ,CAAC,MAAM;UACLL,SAAS,SAAShM,0BAA0B,CAAC;YAC3CmM,cAAc,EAAElK,SAAS,CAACW;UAC5B,CAAC,CAAQ;QACX;QACAwH,KAAK,CAACkC,wBAAwB,IAC5B7B,gBAAgB,CAAC8B,OAAO,wCAAwC;UAC9DJ,cAAc,EAAElK,SAAS,CAACW,QAAQ;UAClCY,KAAK,0BAAE4G,KAAK,CAACoC,aAAa,yDAAnB,qBAAqBhJ,KAAK;UACjCwI;QACF,CAAC,CAAC;MACN;MACAJ,4BAA4B,CAACI,SAAS,CAAC;IACzC,CAAC;IAAA,gBAzBKD,8BAA8B;MAAA;IAAA;EAAA,GAyBnC;EAED/N,SAAS,CAAC,MAAM;IACd+N,8BAA8B,CAAC9J,SAAS,CAAC;EAC3C,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,IAAMwK,oBAAoB,GAAG,YAEA;IAAA,IAD3B;MAAEC;IAAQ,CAAC,uEAAG;MAAEA,OAAO,EAAE;IAAM,CAAC;IAEhC;IACA,IAAMC,QAAa,GAAGD,OAAO,GACzBlL,0BAA0B,GAC1BC,6BAA6B;IACjC,IAAMmL,aAAuB,GAAG,CAC9BD,QAAQ,CAACC,aAAa,CAAC3K,SAAS,CAACW,QAAQ,CAAC,IAAI,EAAE,EAChDiK,MAAM,CAAC5K,SAAS,CAACiB,IAAI,CAAC4J,YAAY,IAAI,EAAE,CAAC;IAC3C,IAAMC,UAAU,GAAG9K,SAAS,CAACiB,IAAI,CAAC8J,UAAU,IAAI,EAAE;IAClD,IAAMC,SAAS,GAAG,CAChB,GAAG,IAAIhJ,GAAG,CAAC,CAAC,GAAG8I,UAAU,EAAE,GAAGrO,GAAG,CAACuD,SAAS,CAACG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAC9D;IACD,IAAMkG,QAAkB,GAAGhK,UAAU,CAAC2O,SAAS,EAAEL,aAAa,CAAC,CAACM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO;MAAE5E;IAAS,CAAC;EACrB,CAAC;;EAED;EACA,IAAM6E,aAAa,GAAI7E,QAAe,IAAK;IAAA;IACzC,IAAI8E,WAAkB,GAAG,EAAE;IAC3B,IAAIC,UAAiB,GAAG,EAAE;IAC1B,6BAAIjD,KAAK,CAACoC,aAAa,kDAAnB,sBAAqBlE,QAAQ,EAAE;MACjC8E,WAAW,GAAGvO,MAAM,CAACuL,KAAK,CAACoC,aAAa,CAAClE,QAAQ,EAAG7D,EAAE,IACpD6D,QAAQ,CAAC/B,QAAQ,CAAC9B,EAAE,CAAC,CACtB;IACH;IACA4I,UAAU,GAAGtO,MAAM,CACjBD,MAAM,CAACwJ,QAAQ,EAAG7D,EAAE,IAAK2I,WAAW,CAAC7G,QAAQ,CAAC9B,EAAE,CAAC,CAAC,EACjDgE,OAAO,IAAK;MACX,IAAM6E,UAAU,GAAGrO,SAAS,CAC1BgD,SAAS,CAACiB,IAAI,CAAC8J,UAAU,EACxBO,OAAO,IAAKA,OAAO,KAAK9E,OAAO,CACjC;MACD,IAAI6E,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,OAAO,IAAI;MACb,CAAC,MAAM;QACL,OAAOA,UAAU;MACnB;IACF,CAAC,CACF;IACD,OAAO,CAAC,GAAGF,WAAW,EAAE,GAAGC,UAAU,CAAC;EACxC,CAAC;EACD;;EAEA,IAAMG,cAAc;IAAA,8BAAG,aAAY;MAAA;MACjC,IAAIlH,IAAI,GAAG8D,KAAK,CAAC9D,IAAI;MACrB,IAAIgC,QAAQ,4BAAG8B,KAAK,CAACoC,aAAa,0DAAnB,sBAAqBlE,QAAQ;MAC5C,IAAMlC,QAAQ,GAAGnE,SAAS,aAATA,SAAS,8CAATA,SAAS,CAAEG,QAAQ,kFAAnB,oBAAqBlD,IAAI,CAAEqF,IAAI,IAAKA,IAAI,CAACE,EAAE,KAAK6B,IAAI,CAAC,qFAArD,uBACbY,KAAK,2DADQ,uBACNuG,YAAY;MACvB,IAAIpH,GAAG,EAAE0G,UAAU;MACnB,IAAIW,oBAAoB;MACxB,IAAItD,KAAK,CAAC/D,GAAG,KAAK,IAAI,EAAE;QACtBA,GAAG,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAACE,QAAQ,CAACH,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;MACzE,CAAC,MAAM;QACLC,GAAG,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAACE,QAAQ,CAACH,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;MAC3E;MACA,IAAIgE,KAAK,CAAC8B,kBAAkB,EAAE;QAC5Ba,UAAU,GAAG,OACJvB,sBAAsB,CAAChI,KAAK,CAAC,CAClC;UAAEmK,SAAS,EAAEvD,KAAK,CAACxH,QAAQ;UAAEwJ,QAAQ,EAAEhC,KAAK,CAACiC;QAAiB,CAAC,CAChE,CAAC,EAIFU,UAAU;MACd,CAAC,MAAM;QACL;QACA,IAAMa,UAAU,SAAU1C,cAAc,CAAC1H,KAAK,CAAC,CAAC4G,KAAK,CAACxH,QAAQ,CAAC,CAI9D;QACDmK,UAAU,GAAGa,UAAU,CAACb,UAAU;QAClCW,oBAAoB,GAAGE,UAAU,CAACC,iBAAiB;MACrD;MACA,IAAMC,kBAAkB,4BAAG1D,KAAK,CAAC2D,gBAAgB,yEAAI,EAAE;MACvD,IAAIxP,OAAO,CAAC+J,QAAQ,CAAC,EAAE;QACrBA,QAAQ,GAAGyE,UAAU,CAACrO,GAAG,CAAE8H,IAAI,IAAKA,IAAI,CAACnE,KAAK,CAAC;QAC/C,IAAI9D,OAAO,CAAC+H,IAAI,CAAC,IAAI/H,OAAO,CAAC8H,GAAG,CAAC,EAAE;UACjC,IAAM2H,UAAU,GAAGjB,UAAU,CAAC7N,IAAI,CAAEsH,IAAI,IAAKA,IAAI,CAACP,KAAK,KAAK,CAAC,CAAC;UAC9D,IAAI+H,UAAU,EAAE;YACd1H,IAAI,GAAG0H,UAAU,CAAC3L,KAAK;YACvBgE,GAAG,GAAG2H,UAAU,CAAC/H,KAAK;UACxB;QACF;MACF;MACA,IAAI1H,OAAO,CAAC+J,QAAQ,CAAC,EAAE;QACrBA,QAAQ,GAAGmE,oBAAoB,EAAE,CAACnE,QAAQ;MAC5C;MACA,IAAI,CAAC/J,OAAO,CAACuP,kBAAkB,CAAC,EAAE;QAChCxF,QAAQ,GAAG3J,IAAI,CAAC,CAAC,GAAG2J,QAAQ,EAAE,GAAGwF,kBAAkB,CAAC,CAAC;MACvD;MACAxF,QAAQ,GAAG8B,KAAK,CAAC6D,kBAAkB,GAC/BtP,IAAI,CAAC,CAAC,GAAG2J,QAAQ,EAAE8B,KAAK,CAAC6D,kBAAkB,CAAC,CAAC,GAC7C3F,QAAQ;MACZA,QAAQ,GAAG6E,aAAa,CAAC7E,QAAQ,CAAC;MAClC,IAAM4F,aAAuB,GAAGjM,SAAS,CAACiB,IAAI,CAAC4J,YAAY,IAAI,EAAE;MACjExE,QAAQ,GAAGA,QAAQ,CAACzJ,MAAM,CAAEwD,KAAK,IAAK,CAAC6L,aAAa,CAAC3H,QAAQ,CAAClE,KAAK,CAAC,CAAC;MACrEJ,SAAS,CAACgK,UAAU,IAAI3D,QAAQ,CAAChE,IAAI,CAAC,YAAY,CAAC;MACnD,OAAO;QAAEgE,QAAQ;QAAEhC,IAAI;QAAED,GAAG;QAAE0G,UAAU;QAAEW;MAAqB,CAAC;IAClE,CAAC;IAAA,gBAxDKF,cAAc;MAAA;IAAA;EAAA,GAwDnB;EAED,IAAMW,SAAS,GAAG,MAAM;IAAA;IACtB,IAAI7F,QAAQ,4BAAG8B,KAAK,CAACoC,aAAa,0DAAnB,sBAAqBlE,QAAQ;IAC5C,IAAMwF,kBAAkB,6BAAG1D,KAAK,CAAC2D,gBAAgB,2EAAI,EAAE;IACvD,IAAIxP,OAAO,CAAC+J,QAAQ,CAAC,EAAE;MACrBA,QAAQ,GAAGmC,gBAAgB,CAAC2D,OAAO,WAC9BnM,SAAS,CAACW,QAAQ,oBACtB;IACH;IACA,IAAIrE,OAAO,CAAC+J,QAAQ,CAAC,EAAE;MACrBA,QAAQ,GAAGmE,oBAAoB,EAAE,CAACnE,QAAQ;IAC5C;IACA,IAAI,CAAC/J,OAAO,CAACuP,kBAAkB,CAAC,EAAE;MAChCxF,QAAQ,GAAG3J,IAAI,CAAC,CAAC,GAAG2J,QAAQ,EAAE,GAAGwF,kBAAkB,CAAC,CAAC;IACvD;IACAxF,QAAQ,GAAG8B,KAAK,CAAC6D,kBAAkB,GAC/BtP,IAAI,CAAC,CAAC,GAAG2J,QAAQ,EAAE8B,KAAK,CAAC6D,kBAAkB,CAAC,CAAC,GAC7C3F,QAAQ;IACZA,QAAQ,GAAG6E,aAAa,CAAC7E,QAAQ,CAAC;IAClC,IAAM4F,aAAuB,GAAGjM,SAAS,CAACiB,IAAI,CAAC4J,YAAY,IAAI,EAAE;IACjExE,QAAQ,GAAGA,QAAQ,CAACzJ,MAAM,CAAEwD,KAAK,IAAK,CAAC6L,aAAa,CAAC3H,QAAQ,CAAClE,KAAK,CAAC,CAAC;IACrEJ,SAAS,CAACgK,UAAU,IAAI3D,QAAQ,CAAChE,IAAI,CAAC,YAAY,CAAC;IACnD,OAAOgE,QAAQ;EACjB,CAAC;EAED,IAAM,CAAChF,CAAC,EAAE+K,IAAI,CAAC,GAAGnQ,QAAQ,CAACkM,KAAK,CAAC9G,CAAC,CAAC;EACnC,IAAM,CAACgL,KAAK,EAAEC,QAAQ,CAAC,GAAGtQ,UAAU,CAAC0M,OAAO,EAAEnD,SAAS,EAAE;IAAA;IAAA,OAAO;MAC9D5E,QAAQ,EAAEwH,KAAK,CAACxH,QAAQ;MACxBU,CAAC,EAAE8G,KAAK,CAAC9G,CAAC;MACVoD,EAAE,EAAEwC,YAAY,CAACkB,KAAK,CAAC1D,EAAE,EAAEzE,SAAS,EAAE,KAAK,CAAC;MAC5C8K,UAAU,EAAE,EAAE;MACd1D,QAAQ,EAAEe,KAAK,CAACf,QAAQ,IAAIH,YAAY,CAACkB,KAAK,CAAC1D,EAAE,EAAEzE,SAAS,CAAC;MAC7DuM,mBAAmB,EAAEpE,KAAK,CAACoE,mBAAmB;MAC9CnI,GAAG,EAAE+D,KAAK,CAAC/D,GAAG;MACdC,IAAI,EAAE8D,KAAK,CAAC9D,IAAI;MAChBmI,IAAI,yDAAErE,KAAK,CAACsE,UAAU,sDAAhB,kBAAkBD,IAAI,yEAAIrE,KAAK,CAACqE,IAAI,yCAAI,CAAC;MAC/CE,QAAQ,2DAAEvE,KAAK,CAACsE,UAAU,uDAAhB,mBAAkBC,QAAQ,2EAAIvE,KAAK,CAACuE,QAAQ,yCAAI,EAAE;MAC5DC,UAAU,EAAExE,KAAK,CAACwE,UAAU;MAC5BC,WAAW,EAAEzE,KAAK,CAACyE,WAAW;MAC9BC,aAAa,EAAE1E,KAAK,CAAC0E,aAAa;MAClCC,oBAAoB,EAAE3E,KAAK,CAAC2E,oBAAoB;MAChDC,4BAA4B,EAAE,KAAK;MACnCC,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,KAAK;MACdC,MAAM,EAAE,KAAK;MACbC,uBAAuB,EAAE,KAAK;MAC9B9G,QAAQ,EAAE8B,KAAK,CAACiF,iBAAiB,GAAG,EAAE,GAAGlB,SAAS,EAAE;MACpDmB,kBAAkB,2BAAElF,KAAK,CAACoC,aAAa,0DAAnB,sBAAqBhJ,KAAK;MAC9C+L,aAAa,EAAE,KAAK;MACpBC,mBAAmB,EAAE,EAAE;MACvBC,mBAAmB,EAAE,KAAK;MAC1BC,cAAc,EAAE,EAAE;MAClBC,YAAY,EAAE,KAAK;MACnBC,OAAO,EAAE,EAAE;MACXC,WAAW,EAAE,CACX;QACEtF,UAAU,EAAE,KAAK;QACjBtD,IAAI,EAAErH,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAAC2K,WAAW;MACzD,CAAC,CACF;MACDsF,WAAW,EAAE,KAAK;MAClBpC,oBAAoB,EAAE;IACxB,CAAC;EAAA,CAAC,CAAC;EACH,IAAM,CAACqC,eAAe,EAAEC,kBAAkB,CAAC,GAAG9R,QAAQ,0BACpDkM,KAAK,CAAC2F,eAAe,yEAAI,EAAE,CAC5B;EACD,IAAMhF,KAAK,GAAG5M,MAAM,CAAC,IAAI8R,GAAG,EAAgD,CAAC;EAC7E,IAAMC,aAAa,GAAG/R,MAAM,CAAC,IAAI,CAAC;;EAElC;EACA,IAAMgS,qBAAqB,GAAG/R,OAAO,CAAC,MAAM;IAC1C,OAAO;MACLwE,QAAQ,EAAEwH,KAAK,CAACxH,QAAQ;MACxBwJ,QAAQ,EAAEhC,KAAK,CAACiC;IAClB,CAAC;EACH,CAAC,EAAE,CAACjC,KAAK,CAACxH,QAAQ,EAAEwH,KAAK,CAACiC,gBAAgB,CAAC,CAAC;EAE5C,IAAM+D,mBAAmB;IAAA,8BAAG,WAC1B9J,IAAY,EACZD,GAAY,EACZoI,IAAY,EACsC;MAAA;MAClD,IAAM4B,IAAuC,GAAG,CAAC,CAAC;MAClD,IAAMC,MAA2C,GAAG;QAClDtO,MAAM,EAAEoI,KAAK,aAALA,KAAK,eAALA,KAAK,CAAE2D,gBAAgB,GAC3BpP,IAAI,CAAC,CAAC,YAAY,CAAC,CAACkO,MAAM,CAACzC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE2D,gBAAgB,CAAC,CAAC,GACpD,CAAC,YAAY;MACnB,CAAC;MACD,IAAI,CAACxP,OAAO,CAAC6L,KAAK,CAACmG,UAAU,CAAC,EAAE;QAC9BD,MAAM,CAACC,UAAU,GAAGF,IAAI,CAACE,UAAU,GAAGnG,KAAK,CAACmG,UAAU;MACxD;MAEA,IAAMC,WAAuC,GAAG,CAAC,CAAC;MAClD,IAAIhN,KAA0B,GAAG,CAAC,CAAC;MAEnC8M,MAAM,CAAC7B,IAAI,GAAG4B,IAAI,CAAC5B,IAAI,GAAG+B,WAAW,CAAC/B,IAAI,GAAGA,IAAI;MACjD6B,MAAM,CAAC,WAAW,CAAC,GACjBD,IAAI,CAAC,WAAW,CAAC,GACjBG,WAAW,CAAC,WAAW,CAAC,GACtBlC,KAAK,CAACK,QAAQ;MAClB,IAAMvI,QAAQ,GAAGnE,SAAS,aAATA,SAAS,+CAATA,SAAS,CAAEG,QAAQ,kFAAnB,qBAAqBlD,IAAI,CAAEqF,IAAI,IAAKA,IAAI,CAACE,EAAE,KAAK6B,IAAI,CAAC,oFAArD,sBACbY,KAAK,2DADQ,uBACNuG,YAAY;MACvB,IAAMxH,KAAK,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAACM,QAAQ,CAACH,QAAQ,CAAC,GACnEC,GAAG,GACD,CAAC,GACD,CAAC,CAAC,GACJA,GAAG,GACH,CAAC,GACD,CAAC,CAAC;MACN,IAAIC,IAAI,EAAE;QACR+J,IAAI,CAAC/J,IAAI,GAAG;UAAE,CAACA,IAAI,GAAGL;QAAM,CAAC;QAC7BqK,MAAM,CAAChK,IAAI,GAAG,CAAC;UAAEjC,GAAG,EAAEiC,IAAI;UAAEL;QAAM,CAAC,CAAC;MACtC;MAEA,IAAIqI,KAAK,CAAChL,CAAC,EAAE;QACXE,KAAK,GAAGJ,QAAQ,CACdnB,SAAS,EACToB,WAAW,EACXiL,KAAK,CAAChL,CAAC,EACPgL,KAAK,CAAChG,QAAQ,EACd8B,KAAK,CAAC7G,cAAc,CACrB;MACH;MAEA,IAAI+K,KAAK,CAAChL,CAAC,IAAI8G,KAAK,CAACqG,0BAA0B,EAAE;QAC/CD,WAAW,CAACE,QAAQ,GAAGpC,KAAK,CAAChL,CAAC;MAChC;MACA,IAAI,CAAC/E,OAAO,CAAC+P,KAAK,CAAC5H,EAAE,CAAC,EAAE;QACtBlD,KAAK,CAACzC,gBAAgB,CAAC2I,GAAG,CAAC,GAAG4E,KAAK,CAAC5H,EAAE;MACxC;MAEA,IAAI,CAACnI,OAAO,CAAC6L,KAAK,CAACuG,YAAY,CAAC,EAAE;QAChCnN,KAAK,CAACzC,gBAAgB,CAAC2I,GAAG,CAAC,GAAG,CAC5B,IAAIlG,KAAK,CAACzC,gBAAgB,CAAC2I,GAAG,CAAC,IAAI,EAAE,CAAC,EACtC,GAAGU,KAAK,CAACuG,YAAY,CACtB;MACH;MACA,IAAIvG,KAAK,CAACoC,aAAa,EAAE;QACvB,IAAI,CAACjO,OAAO,CAAC6L,KAAK,CAACoC,aAAa,CAAChJ,KAAK,CAAC,EAAE;UACvC,IAAIyB,MAAM,CAACC,IAAI,CAAC1B,KAAK,CAAC,CAAC+E,MAAM,EAAE;YAC7B/E,KAAK,GAAG;cACNoN,IAAI,EAAE,CAACpN,KAAK,EAAE4G,KAAK,CAACoC,aAAa,CAAChJ,KAAK;YACzC,CAAC;UACH,CAAC,MAAM;YACLA,KAAK,GAAG4G,KAAK,CAACoC,aAAa,CAAChJ,KAAK;UACnC;QACF;MACF;MACA,IAAI8K,KAAK,CAAChG,QAAQ,EAAE;QAClB+H,IAAI,CAACrO,MAAM,GAAGiD,MAAM,CAAC4L,WAAW,CAC9BvC,KAAK,CAAChG,QAAQ,CAAC5J,GAAG,CAAE+J,OAAO,IAAK,CAACA,OAAO,EAAE,IAAI,CAAC,CAAC,CACjD;QACD6H,MAAM,CAACtO,MAAM,GAAG,CAAC,GAAGsM,KAAK,CAAChG,QAAQ,EAAE,GAAGgI,MAAM,CAACtO,MAAM,CAAC;QACpDsO,MAAM,CAASQ,0BAA0B,GAAG,IAAI;MACnD;MACA,IAAI1G,KAAK,CAAC2G,wBAAwB,EAAE;QAClCT,MAAM,CAACtO,MAAM,GAAGD,2BAA2B,CACzCuO,MAAM,CAACtO,MAAM,EACbC,SAAS,EACTmI,KAAK,CAAClI,UAAU,CACjB;MACH;MACA,IAAIkI,KAAK,CAACqG,0BAA0B,EAAE;QACpCD,WAAW,CAACxO,MAAM,GAAGsO,MAAM,CAACtO,MAAM,CAAC2D,IAAI,CAAC,GAAG,CAAC;MAC9C;MACA,IAAI2I,KAAK,CAACM,UAAU,IAAIxE,KAAK,CAACxH,QAAQ,KAAK,MAAM,EAAE;QACjDY,KAAK,mCAAQA,KAAK;UAAEwN,YAAY,EAAE;QAAI,EAAE;MAC1C;MACA,IAAI1C,KAAK,CAACE,mBAAmB,EAAE;QAC7BhL,KAAK,mCAAQA,KAAK;UAAEyN,UAAU,EAAE3C,KAAK,CAACE;QAAmB,EAAE;MAC7D;MAEA,IAAI,CAACjQ,OAAO,CAACiF,KAAK,CAAC,EAAE;QACnB8M,MAAM,CAAC9M,KAAK,GAAG6M,IAAI,CAAC7M,KAAK,GAAGA,KAAK;MACnC;MACA;;MAEA,IAAI4G,KAAK,CAAC2G,wBAAwB,IAAI,CAACxS,OAAO,CAAC6L,KAAK,CAAC8G,WAAW,CAAC,EAAE;QACjEjM,MAAM,CAACkM,MAAM,CAACb,MAAM,EAAElG,KAAK,CAAC8G,WAAW,CAAC;MAC1C;MACA,IAAI5C,KAAK,CAACO,WAAW,EAAE;QACrByB,MAAM,CAACc,gBAAgB,GAAGf,IAAI,CAACe,gBAAgB,GAAG9C,KAAK,CAACO,WAAW;MACrE;MACA;MACA;MACA,IAAIP,KAAK,CAACwB,WAAW,EAAE;QAAA;QACrB,IAAMuB,SAAS,4BAAGjH,KAAK,CAACoC,aAAa,mFAAnB,sBAAqBhJ,KAAK,mFAA1B,sBAA6B,MAAM,CAAC,mFAApC,sBAAsCtE,IAAI,CACzDoS,CAAM,IAAKA,CAAC,CAAC/G,UAAU,CACzB,oFAFiB,sBAEfA,UAAU,2DAFK,uBAEF,KAAK,CAAC;QACtB+F,MAAM,CAAC9M,KAAK;UACV,CAAC8K,KAAK,CAACmB,mBAAmB,KAAK,KAAK,IACnCnB,KAAK,CAACmB,mBAAmB,KAAK,SAAS,IACtCnB,KAAK,CAACqB,YAAY,KAAK,KAAM,GAC3B,sCAAsC,GACtC,gCAAgC,GAAGrB,KAAK,CAACkB;QAAmB,GAC5D,CAACjR,OAAO,CAAC8S,SAAS,CAAC,IAAIjH,KAAK,CAACmH,kBAAkB,GAC/C;UACEhH,UAAU,EAAE;YAAEiH,GAAG,EAAEH;UAAU;QAC/B,CAAC,GACD,CAAC,CAAC,GACF/C,KAAK,CAACM,UAAU,IAAIxE,KAAK,CAACxH,QAAQ,KAAK,MAAM,GAC7C;UAAEoO,YAAY,EAAE;QAAK,CAAC,GACtB,CAAC,CAAC,CACP;MACH;MACA,IAAI5G,KAAK,CAACqG,0BAA0B,EAAE;QACpC,OAAOzF,2BAA2B,CAACxH,KAAK,CAAC,CAAC4G,KAAK,CAACxH,QAAQ,EAAE4N,WAAW,CAAC,CAAC;MACzE;MACA,IAAMiB,OAAO,4BAAGrH,KAAK,CAACsH,eAAe,0DAArB,2BAAAtH,KAAK,EAAmBiG,IAAI,EAAEC,MAAM,CAAC;MACrD;MACA;MACA,OAAOmB,OAAO,GACVA,OAAO,GACPrH,KAAK,CAAC8B,kBAAkB,GACxBZ,oBAAoB,CAAC9H,KAAK,CAAC,iCAEpB8M,MAAM,GACNH,qBAAqB,EAE3B,CAAC,GACF/F,KAAK,CAAC2G,wBAAwB,GAC9BjG,YAAY,CAACtH,KAAK,CAAC,CAAC4G,KAAK,CAACxH,QAAQ,EAAE0N,MAAM,CAAC,CAAC,GAC5ClG,KAAK,CAACuH,gBAAgB,GACtB1G,wBAAwB,CAACzH,KAAK,CAAC,CAAC4G,KAAK,CAACxH,QAAQ,EAAE0N,MAAM,CAAC,CAAC,GACxDvQ,wBAAwB,CAACqK,KAAK,CAACxH,QAAQ,EAAE0N,MAAM,CAAC;IACtD,CAAC;IAAA,gBApJKF,mBAAmB;MAAA;IAAA;EAAA,GAoJxB;EAED,IAAMwB,mBAAmB;IAAA,8BAAG,WAC1BtL,IAAY,EACZD,GAAY,EACZoI,IAAY,EACM;MAClBF,QAAQ,CAAC;QAAEW,OAAO,EAAE;MAAK,CAAC,CAAC;MAC3B,IAAI;QACF,IAAI9E,KAAK,CAACsE,UAAU,EAAE;UACpBH,QAAQ,CAAC;YACPlL,WAAW,EAAEA,WAAW;YACxBwO,gBAAgB,EAAEzH,KAAK,CAACsE;UAC1B,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,IAAI,CAACtE,KAAK,CAAC0H,gBAAgB,EAAE;YAC3B,IAAMD,gBAAgB,SAASzB,mBAAmB,CAAC9J,IAAI,EAAED,GAAG,EAAEoI,IAAI,CAAC;YACnEoD,gBAAgB,CAACE,IAAI,CAAC3N,OAAO,CAAEkN,CAAC,IAC9BvG,KAAK,CAACiH,OAAO,CAACC,GAAG,CAACX,CAAC,CAAC/G,UAAU,EAAE+G,CAAC,CAAC,CACnC;YACD/C,QAAQ,CAAC;cAAElL,WAAW,EAAEA,WAAW;cAAEwO;YAAiB,CAAC,CAAC;UAC1D,CAAC,MAAM;YACLtD,QAAQ,CAAC;cACPlL,WAAW,EAAEA,WAAW;cACxBwO,gBAAgB,EAAE;YACpB,CAAC,CAAC;UACJ;QACF;MACF,CAAC,CAAC,OAAOK,CAAC,EAAE;QACVxS,eAAe,CAACwS,CAAC,CAAC;QAClB;QACA3D,QAAQ,CAAC;UACPlL,WAAW,EAAEA,WAAW;UACxBwO,gBAAgB,EAAE;QACpB,CAAC,CAAC;MACJ,CAAC,SAAS;QACRtD,QAAQ,CAAC;UAAEU,MAAM,EAAE,IAAI;UAAEC,OAAO,EAAE;QAAM,CAAC,CAAC;MAC5C;IACF,CAAC;IAAA,gBApCK0C,mBAAmB;MAAA;IAAA;EAAA,GAoCxB;EACD;EACA;EACA5T,SAAS,CAAC,MAAM;IACd,IAAIoM,KAAK,CAACiF,iBAAiB,EAAE;MAC3B,IAAM8C,WAAW;QAAA,8BAAG,aAAY;UAAA;UAC9B,IAAMC,WAAW,SAAS5E,cAAc,EAAE;UAC1C,IAAM;YAAElF,QAAQ;YAAEhC,IAAI;YAAED,GAAG;YAAE0G,UAAU;YAAEW;UAAqB,CAAC,GAC7D0E,WAAW;UACb;UACE;UACAhI,KAAK,CAACxH,QAAQ,KAAK0L,KAAK,CAAC1L,QAAQ,IACjC,CAACpE,OAAO,CAAC8J,QAAQ,EAAEgG,KAAK,CAAChG,QAAQ,CAAC,IAClC,CAAC9J,OAAO,2BAAC4L,KAAK,CAACoC,aAAa,2DAAnB,uBAAqBhJ,KAAK,EAAE8K,KAAK,CAACgB,kBAAkB,CAAC,EAE9Df,QAAQ,CAAC;YACPjG,QAAQ;YACRgH,kBAAkB,4BAAElF,KAAK,CAACoC,aAAa,2DAAnB,uBAAqBhJ,KAAK;YAC9C8C,IAAI;YACJD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAACE,QAAQ,CAACF,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK;YACxC0G,UAAU;YACVW;UACF,CAAC,CAAC;QACN,CAAC;QAAA,gBAlBKyE,WAAW;UAAA;QAAA;MAAA,GAkBhB;MACDA,WAAW,EAAE;IACf,CAAC,MAAM;MAAA;MACL,IAAM7J,QAAQ,GAAG6F,SAAS,EAAE;MAC5B;MACE;MACA/D,KAAK,CAACxH,QAAQ,KAAK0L,KAAK,CAAC1L,QAAQ,IACjC,CAACpE,OAAO,CAAC8J,QAAQ,EAAEgG,KAAK,CAAChG,QAAQ,CAAC,IAClC,CAAC9J,OAAO,2BAAC4L,KAAK,CAACoC,aAAa,2DAAnB,uBAAqBhJ,KAAK,EAAE8K,KAAK,CAACgB,kBAAkB,CAAC,EAC9D;QAAA;QACAf,QAAQ,CAAC;UACPjG,QAAQ;UACRgH,kBAAkB,4BAAElF,KAAK,CAACoC,aAAa,2DAAnB,uBAAqBhJ;QAC3C,CAAC,CAAC;MACJ;IACF;EACF,CAAC,EAAE,CAAC4G,KAAK,CAACxH,QAAQ,EAAEwH,KAAK,CAACoC,aAAa,CAAC,CAAC;EAEzCxO,SAAS,CAAC,MAAM;IAAA;IACdgS,kBAAkB,2BAAC5F,KAAK,CAAC2F,eAAe,2EAAI,EAAE,CAAC;EACjD,CAAC,EAAE,CAAC3F,KAAK,CAACxH,QAAQ,EAAEwH,KAAK,CAAC2F,eAAe,CAAC,CAAC;;EAE3C;EACA/R,SAAS,CAAC,MAAM;IACd,IAAIkS,aAAa,CAAC8B,OAAO,EAAE;MACzB9B,aAAa,CAAC8B,OAAO,GAAG,KAAK;MAC7B;IACF;IAEA,IAAIK,IAAI,GAAG,KAAK;IAEhB,IAAI/D,KAAK,CAACG,IAAI,KAAK,CAAC,EAAE;MAAA;MACpBF,QAAQ,CAAC;QAAEE,IAAI,EAAE;MAAE,CAAC,CAAC;MACrB,yBAAArE,KAAK,CAACkI,kBAAkB,0DAAxB,2BAAAlI,KAAK,EAAsB;QAAEqE,IAAI,EAAE,CAAC;QAAEE,QAAQ,EAAEL,KAAK,CAACK;MAAS,CAAC,CAAC;MACjE0D,IAAI,GAAG,IAAI;IACb;;IAEA;IACA,IAAIjI,KAAK,CAACxH,QAAQ,KAAK0L,KAAK,CAAC1L,QAAQ,EAAE;MACrC2L,QAAQ,CAAC;QAAE3L,QAAQ,EAAEwH,KAAK,CAACxH;MAAS,CAAC,CAAC;MACtCyP,IAAI,GAAG,IAAI;IACb;IAEA,IAAIA,IAAI,EAAE;MACR;IACF;IAEAT,mBAAmB,CAACtD,KAAK,CAAChI,IAAI,EAAEgI,KAAK,CAACjI,GAAG,EAAE,CAAC,CAAC;EAC/C,CAAC,EAAE,CACDiI,KAAK,CAAChL,CAAC,EACPgL,KAAK,CAAC5H,EAAE,EACR4H,KAAK,CAACE,mBAAmB,EACzBF,KAAK,CAACK,QAAQ,EACdL,KAAK,CAACM,UAAU,EAChBN,KAAK,CAACO,WAAW,EACjBzE,KAAK,CAACxH,QAAQ,EACdwH,KAAK,CAACmG,UAAU,EAChBnG,KAAK,CAACuG,YAAY,CACnB,CAAC;EAEF3S,SAAS,CAAC,MAAM;IACdqQ,IAAI,CAACjE,KAAK,CAAC9G,CAAC,CAAC;IACbiL,QAAQ,CAAC;MAAEjL,CAAC,EAAE8G,KAAK,CAAC9G;IAAE,CAAC,CAAC;EAC1B,CAAC,EAAE,CAAC8G,KAAK,CAAC9G,CAAC,CAAC,CAAC;;EAEb;EACAtF,SAAS,CAAC,MAAM;IACd,IAAIO,OAAO,CAAC+P,KAAK,CAAChG,QAAQ,CAAC,EAAE;IAC7BsJ,mBAAmB,CAACtD,KAAK,CAAChI,IAAI,EAAEgI,KAAK,CAACjI,GAAG,EAAEiI,KAAK,CAACG,IAAI,CAAC;EACxD,CAAC,EAAE,CACDH,KAAK,CAACG,IAAI,EACVH,KAAK,CAAChI,IAAI,EACVgI,KAAK,CAACjI,GAAG,EACTiI,KAAK,CAAChG,QAAQ,EACdgG,KAAK,CAACkB,mBAAmB,EACzBlB,KAAK,CAACmB,mBAAmB,EACzBnB,KAAK,CAACwB,WAAW,EACjB1F,KAAK,CAACsE,UAAU,EAChBJ,KAAK,CAACgB,kBAAkB,EACxBlF,KAAK,CAACmI,cAAc,CACrB,CAAC;EAEF,IAAMC,QAAQ,GAAIN,CAAsC,IAAK;IAC3D7D,IAAI,CAAC6D,CAAC,CAACO,MAAM,CAACvL,KAAK,CAAC;EACtB,CAAC;;EAED;EACA,IAAMwL,iBAAiB,GAAGrU,WAAW;IAAA,8BACnC,WAAOsU,QAA0D,EAAK;MAAA;MACpE,IAAI;QAAEC,aAAa;QAAEC;MAAa,CAAC,GAAGF,QAAQ;MAC9C3C,kBAAkB,CAAC6C,YAAY,CAAC;MAChC,IAAIA,YAAY,CAACtK,MAAM,GAAGnJ,OAAO,CAACwT,aAAa,CAAC,CAACrK,MAAM,EAAE;QACvD,IAAMuK,GAAG,GAAGD,YAAY,CAAChU,MAAM,CAAE4F,EAAE,IAAK,CAACsG,KAAK,CAACiH,OAAO,CAACe,GAAG,CAACtO,EAAE,CAAC,CAAC;QAC/D,IAAIqO,GAAG,CAACvK,MAAM,EAAE;UACd,IAAIyK,IAAI;UACR,IAAMC,MAAM,GAAG;YACbjR,MAAM,EAAE,CAAC,YAAY,CAAC;YACtBwB,KAAK,EAAE;cACL+G,UAAU,EAAE;gBACViH,GAAG,EAAEsB;cACP;YACF,CAAC;YACDI,SAAS,EAAEJ,GAAG,CAACvK,MAAM;YACrBkG,IAAI,EAAE;UACR,CAAC;UACD;UACA,IAAIrE,KAAK,CAAC8B,kBAAkB,EAAE;YAC5B8G,IAAI,SAAS1H,oBAAoB,CAAC9H,KAAK,CAAC,iCAEjCyP,MAAM,GACN9C,qBAAqB,EAE3B,CAAC;UACJ,CAAC,MAAM,IAAI/F,KAAK,CAAC2G,wBAAwB,EAAE;YACzC;YACAiC,IAAI,SAASlI,YAAY,CAACtH,KAAK,CAAC,CAC9B4G,KAAK,CAACxH,QAAQ,EACdqC,MAAM,CAACkM,MAAM,CAAC8B,MAAM,EAAE7I,KAAK,CAAC8G,WAAW,CAAC,CACzC,CAAC;UACJ,CAAC,MAAM,IAAI9G,KAAK,CAACuH,gBAAgB,EAAE;YACjCqB,IAAI,SAAS/H,wBAAwB,CAACzH,KAAK,CAAC,CAC1C4G,KAAK,CAACxH,QAAQ,EACdqC,MAAM,CAACkM,MAAM,CAAC8B,MAAM,EAAE7I,KAAK,CAAC8G,WAAW,CAAC,CACzC,CAAC;UACJ,CAAC,MAAM;YACL8B,IAAI,SAASjT,wBAAwB,CAACqK,KAAK,CAACxH,QAAQ,EAAEqQ,MAAM,CAAC;UAC/D;UACAD,IAAI,CAACjB,IAAI,CAAC3N,OAAO,CAAEkN,CAAsB,IACvCvG,KAAK,CAACiH,OAAO,CAACC,GAAG,CAACX,CAAC,CAAC/G,UAAU,EAAE+G,CAAC,CAAC,CACnC;QACH;QACAsB,aAAa,GAAGC,YAAY,CAACnU,GAAG,CAAE+F,EAAE,IAAKsG,KAAK,CAACiH,OAAO,CAACmB,GAAG,CAAC1O,EAAE,CAAC,CAAC;MACjE;MACA,yBAAA2F,KAAK,CAACsI,iBAAiB,0DAAvB,2BAAAtI,KAAK,EAAqB;QAAEwI,aAAa;QAAEC;MAAa,CAAC,CAAC;IAC5D,CAAC;IAAA;MAAA;IAAA;EAAA,KACD,EAAE,CACH;EAED,IAAMO,QAAQ,GAAIlM,KAAa,IAAK;IAAA;IAClC,IAAM5D,CAAC,GAAG4D,KAAK,CAACvD,IAAI,EAAE;IACtB4K,QAAQ,CAAC;MAAEjL;IAAE,CAAC,CAAC;IACf,mBAAA8G,KAAK,CAACgJ,QAAQ,oDAAd,qBAAAhJ,KAAK,EAAY9G,CAAC,CAAC;EACrB,CAAC;EAED,IAAM+P,gBAAgB,GAAG,CACvB/N,OAAgB,EAChBgO,aAAsB,EACtBC,WAAoC,KACjC;IAAA;IACHhF,QAAQ,CAAC;MACP7H,EAAE,EAAEpB,OAAO;MACXiO,WAAW;MACXlK,QAAQ,EAAEiK;IACZ,CAAC,CAAC;IACF,yBAAAlJ,KAAK,CAACiJ,gBAAgB,0DAAtB,2BAAAjJ,KAAK,EAAoB9E,OAAO,CAAC;EACnC,CAAC;EAED,IAAMkO,eAAe,GAAGnV,WAAW;IAAA,+BACjC,WAAOkJ,IAA6B,EAAEwF,UAAyB,EAAK;MAAA;MAClE,IAAI1G,GAAY;MAChB,IAAIC,IAAY;MAChB,IAAIiB,IAAI,CAAClB,GAAG,KAAKmB,SAAS,EAAE;QAC1B,IAAI,CAAC8G,KAAK,CAAChI,IAAI,EAAE;UACf;QACF;QAEAiI,QAAQ,CAAC;UAAElI,GAAG,EAAEmB,SAAS;UAAElB,IAAI,EAAEkB;QAAU,CAAC,CAAC;MAC/C,CAAC,MAAM;QACL+G,QAAQ,CAAC;UAAElI,GAAG,EAAEkB,IAAI,CAAClB,GAAG;UAAEC,IAAI,EAAEiB,IAAI,CAACjB;QAAK,CAAC,CAAC;QAC5CD,GAAG,GAAGkB,IAAI,CAAClB,GAAG;QACdC,IAAI,GAAGiB,IAAI,CAACjB,IAAI;MAClB;MACA;MACA,IACE8D,KAAK,CAACiF,iBAAiB,IACvBtC,UAAU,CAAC7N,IAAI,CAAEsH,IAAI,IAAKA,IAAI,CAACnE,KAAK,KAAKkF,IAAI,CAACjB,IAAI,CAAC,EACnD;QACA,IAAI;UAAA;UACF,IAAMmN,aAAa,GAAG1G,UAAU;UAChC,IAAM3G,QAAQ,GAAGnE,SAAS,aAATA,SAAS,+CAATA,SAAS,CAAEG,QAAQ,kFAAnB,qBAAqBlD,IAAI,CAAEqF,IAAI,IAAKA,IAAI,CAACE,EAAE,KAAK6B,IAAI,CAAC,oFAArD,sBACbY,KAAK,2DADQ,uBACNuG,YAAY;UACvB,IAAMiG,aAAa,GAAGxN,gBAAgB,CAACuN,aAAa,EAAElM,IAAI,EAAEnB,QAAQ,CAAC;UACrEmI,QAAQ,CAAC;YACPxB,UAAU,EAAE2G;UACd,CAAC,CAAC;UACF,IAAItJ,KAAK,CAAC8B,kBAAkB,EAAE;YAC5B,MAAMT,4BAA4B,CAACjI,KAAK,CAAC,CACvC;cACEmK,SAAS,EAAEvD,KAAK,CAACxH,QAAQ;cACzBwJ,QAAQ,EAAEhC,KAAK,CAACiC,gBAAgB;cAChCU,UAAU,EAAE2G;YACd,CAAC,CACF,CAAC;UACJ,CAAC,MAAM;YACL,MAAMvI,oBAAoB,CAAC3H,KAAK,CAAC,CAC/B4G,KAAK,CAACxH,QAAQ,EACd;cAAEmK,UAAU,EAAE2G;YAAc,CAAC,CAC9B,CAAC;UACJ;QACF,CAAC,CAAC,OAAOxB,CAAC,EAAE;UACVxS,eAAe;QACjB;MACF;MACA;MACA,yBAAA0K,KAAK,CAACoJ,eAAe,0DAArB,2BAAApJ,KAAK,EAAmB7C,IAAI,CAAC;IAC/B,CAAC;IAAA;MAAA;IAAA;EAAA,KACD,CAAC+G,KAAK,CAAChI,IAAI,CAAC,CACb;EAED,IAAMgM,kBAAkB,GAAGjU,WAAW,CACnCsV,UAAsC,IAAK;IAAA;IAC1CpF,QAAQ,CAAC;MAAEE,IAAI,EAAEkF,UAAU,CAAClF,IAAI;MAAEE,QAAQ,EAAEgF,UAAU,CAAChF;IAAS,CAAC,CAAC;IAClE,0BAAAvE,KAAK,CAACkI,kBAAkB,2DAAxB,4BAAAlI,KAAK,EAAsBuJ,UAAU,CAAC;EACxC,CAAC,EACD,EAAE,CACH;EAED,IAAMC,sBAAsB,GAAGvV,WAAW,CAAEmQ,mBAA2B,IAAK;IAAA;IAC1ED,QAAQ,CAAC;MAAEC;IAAoB,CAAC,CAAC;IACjC,yBAAApE,KAAK,CAACwJ,sBAAsB,0DAA5B,2BAAAxJ,KAAK,EAA0BoE,mBAAmB,CAAC;EACrD,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMqF,mBAAmB,GAAIC,OAAgB,IAAK;IAAA;IAChDvF,QAAQ,CAAC;MAAEM,WAAW,EAAEiF;IAAQ,CAAC,CAAC;IAClC,yBAAA1J,KAAK,CAACyJ,mBAAmB,0DAAzB,2BAAAzJ,KAAK,EAAuB0J,OAAO,CAAC;EACtC,CAAC;EAED,IAAMC,kBAAkB,GAAID,OAAgB,IAAK;IAAA;IAC/CvF,QAAQ,CAAC;MAAEK,UAAU,EAAEkF;IAAQ,CAAC,CAAC;IACjC,yBAAA1J,KAAK,CAAC2J,kBAAkB,0DAAxB,2BAAA3J,KAAK,EAAsB0J,OAAO,CAAC;EACrC,CAAC;EAED,IAAME,mBAAmB,GAAIzE,aAAsB,IAAK;IACtDhB,QAAQ,CAAC;MAAEgB;IAAc,CAAC,CAAC;EAC7B,CAAC;EACD;EACA,IAAM0E,gBAAgB,GAAGlW,KAAK,CAACM,WAAW,iCAAC,aAAY;IACrD,IAAI,CAACiQ,KAAK,CAACwB,WAAW,EAAE;MAAA;MACtB,IAAIoE,WAAgB;MACpB,IAAMjB,MAAW;QACfjR,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC;QAC1CsE,IAAI,EAAE,CAAC;UAAEjC,GAAG,EAAE,MAAM;UAAE4B,KAAK,EAAE;QAAE,CAAC,CAAC;QACjCwI,IAAI,EAAE,CAAC;QACPyE,SAAS,EAAE;MAAI,GACX9I,KAAK,CAAC8B,kBAAkB,GAAGiE,qBAAqB,GAAG,CAAC,CAAC,CAC1D;MACD;MACA,IAAI/F,KAAK,CAAC8B,kBAAkB,EAAE;QAC5BgI,WAAW,SAAS5I,oBAAoB,CAAC9H,KAAK,CAAC,CAACyP,MAAM,CAAC,CAAC;MAC1D,CAAC,MAAM;QACLiB,WAAW,SAASnU,wBAAwB,CAAC,KAAK,EAAEkT,MAAM,CAAC;MAC7D;MAEA1E,QAAQ,CAAC;QACPiB,mBAAmB,EAAE,sBAAA0E,WAAW,CAACnC,IAAI,sDAAhB,kBAAmB,CAAC,CAAC,CAACxH,UAAU,KAAI,EAAE;QAC3DqF,OAAO,EAAEsE,WAAW,CAACnC,IAAI;QACzBlC,WAAW,EAAE,CAAC,GAAGvF,QAAQ,EAAE,IAAI,uBAAA4J,WAAW,CAACnC,IAAI,uDAAhB,mBAAmB,CAAC,CAAC,CAACoC,QAAQ,KAAI,EAAE,CAAC,CAAC;QACrErE,WAAW,EAAE,IAAI;QACjBJ,cAAc,EAAE,uBAAAwE,WAAW,CAACnC,IAAI,uDAAhB,mBAAmB,CAAC,CAAC,CAACxH,UAAU,KAAI,EAAE;QACtDoF,YAAY,EAAE,KAAK;QACnBlB,IAAI,EAAE;MACR,CAAC,CAAC;IACJ,CAAC,MAAM;MACLF,QAAQ,CAAC;QAAEuB,WAAW,EAAE,KAAK;QAAErB,IAAI,EAAE;MAAE,CAAC,CAAC;IAC3C;EACF,CAAC,GAAE,CAACH,KAAK,CAACwB,WAAW,CAAC,CAAC;EACvB;EACA,IAAMsE,eAAe,GAAIhP,CAAS,IAAK;IACrCmJ,QAAQ,CAAC;MACPiB,mBAAmB,EAAEpK,CAAC;MACtBqK,mBAAmB,EAAE,KAAK;MAC1BC,cAAc,EAAEtK,CAAC;MACjBuK,YAAY,EAAE,KAAK;MACnBE,WAAW,EAAE,CACX,GAAGvF,QAAQ,EACX,GAAGgE,KAAK,CAACsB,OAAO,CAAC1Q,IAAI,CAAEmV,CAAC,IAAKA,CAAC,CAAC9J,UAAU,KAAKnF,CAAC,CAAC,CAAC+O,QAAQ;IAE7D,CAAC,CAAC;EACJ,CAAC;EACD;EACA,IAAMG,mBAAmB,GAAIlP,CAAS,IAAK;IACzCmJ,QAAQ,CAAC;MACPiB,mBAAmB,EAAEpK,CAAC,KAAK,KAAK,GAAGkJ,KAAK,CAACoB,cAAc,GAAGtK,CAAC;MAC3DqK,mBAAmB,EAAE,SAAS;MAC9BE,YAAY,EAAEvK;IAChB,CAAC,CAAC;EACJ,CAAC;;EAED;;EAEA,IAAMmP,aAAa,GAAGnW,OAAO,CAAC,MAAM;IAAA;IAClC,IAAImW,aAAuB;IAC3B,IAAMjM,QAAQ,6BAAG8B,KAAK,CAACoC,aAAa,2DAAnB,uBAAqBlE,QAAQ;MAC5CwF,kBAAkB,6BAAG1D,KAAK,CAAC2D,gBAAgB,2EAAI,EAAE;IACnD,IAAI,CAACxP,OAAO,CAAC+J,QAAQ,CAAC,EAAE;MACtBiM,aAAa,GAAGnK,KAAK,CAACoC,aAAa,CAAClE,QAAQ;IAC9C,CAAC,MAAM;MAAA;MACL;MACA;MACA,IACE8B,KAAK,CAACiF,iBAAiB,IACvB,CAACjF,KAAK,CAAC8B,kBAAkB,IACzBoC,KAAK,CAACZ,oBAAoB,IAC1B,0BAAAY,KAAK,CAACZ,oBAAoB,0DAA1B,sBAA4BnF,MAAM,IAAG,CAAC,EACtC;QAAA;QACA;QACA;QACAgM,aAAa,GAAGnV,OAAO,2BACrBkP,KAAK,CAACZ,oBAAoB,2DAA1B,uBAA4BhP,GAAG,CAAE8V,CAAC,IAAKA,CAAC,CAACnS,KAAK,CAAC,CAChD;MACH,CAAC,MAAM;QACLkS,aAAa,GAAG9H,oBAAoB,EAAE,CAACnE,QAAQ;MACjD;IACF;IACA,IAAI,CAAC/J,OAAO,CAACuP,kBAAkB,CAAC,EAAE;MAChCyG,aAAa,GAAG5V,IAAI,CAAC,CAAC,GAAG4V,aAAa,EAAE,GAAGzG,kBAAkB,CAAC,CAAC;IACjE;IACA,OAAOyG,aAAa;EACtB,CAAC,EAAE,CAACnK,KAAK,CAACoC,aAAa,EAAEvK,SAAS,EAAEqM,KAAK,CAACZ,oBAAoB,CAAC,CAAC;;EAEhE;EACA,IAAM+G,aAAa;IAAA,+BAAG,mBAIU;MAAA,IAJH;QAC3BzS,MAAM;QACN0S,OAAO;QACPC;MACwB,CAAC;MACzB,IAAID,OAAO,EAAE;QACX;QACA,IAAMpM,QAAQ,GAAGiM,aAAa;QAC9BtS,SAAS,CAACgK,UAAU,IAAI3D,QAAQ,CAAChE,IAAI,CAAC,YAAY,CAAC;QACnD,IAAI8F,KAAK,CAACiF,iBAAiB,EAAE;UAC3B,IAAMtC,UAAU,GAAGnH,WAAW,CAAC0I,KAAK,CAACvB,UAAU,EAAEzE,QAAQ,CAAC;UAC1D,IAAI8B,KAAK,CAAC8B,kBAAkB,EAAE;YAC5B,MAAMT,4BAA4B,CAACjI,KAAK,CAAC,CACvC;cACEmK,SAAS,EAAEvD,KAAK,CAACxH,QAAQ;cACzBwJ,QAAQ,EAAEhC,KAAK,CAACiC,gBAAgB;cAChCU;YACF,CAAC,CACF,CAAC;UACJ,CAAC,MAAM;YACL,MAAM5B,oBAAoB,CAAC3H,KAAK,CAAC,CAAC4G,KAAK,CAACxH,QAAQ,EAAE;cAAEmK;YAAW,CAAC,CAAC,CAAC;UACpE;UACAwB,QAAQ,CAAC;YAAEjG,QAAQ;YAAEyE;UAAW,CAAC,CAAC;UAClC3C,KAAK,CAACwK,oBAAoB,CAACtM,QAAQ,CAAC;QACtC,CAAC,MAAM;UACLmC,gBAAgB,CAACoK,UAAU,WAAI5S,SAAS,CAACW,QAAQ,oBAAiB;UAClE2L,QAAQ,CAAC;YAAEjG;UAAS,CAAC,CAAC;UACtB8B,KAAK,CAACwK,oBAAoB,CAACtM,QAAQ,CAAC;QACtC;MACF,CAAC,MAAM;QACL,IAAI,CAACqM,iBAAiB,EAAE;UACtB;UACA,IAAIvK,KAAK,CAACiF,iBAAiB,EAAE;YAC3B,IAAI;cACF,IAAMtC,WAAU,GAAGnH,WAAW,CAAC0I,KAAK,CAACvB,UAAU,EAAE/K,MAAM,CAAC;cACxD,IAAIoI,KAAK,CAAC8B,kBAAkB,EAAE;gBAC5B,MAAMT,4BAA4B,CAACjI,KAAK,CAAC,CACvC;kBACEmK,SAAS,EAAEvD,KAAK,CAACxH,QAAQ;kBACzBwJ,QAAQ,EAAEhC,KAAK,CAACiC,gBAAgB;kBAChCU,UAAU,EAAVA;gBACF,CAAC,CACF,CAAC;cACJ,CAAC,MAAM;gBACL,MAAM5B,oBAAoB,CAAC3H,KAAK,CAAC,CAC/B4G,KAAK,CAACxH,QAAQ,EACd;kBAAEmK,UAAU,EAAVA;gBAAW,CAAC,CACf,CAAC;cACJ;cACAwB,QAAQ,CAAC;gBACPjG,QAAQ,EAAE6E,aAAa,CAACnL,MAAM,CAAC;gBAC/B+K,UAAU,EAAVA;cACF,CAAC,CAAC;YACJ,CAAC,CAAC,OAAOmF,CAAC,EAAE;cACVxS,eAAe,CAACwS,CAAC,CAAC;YACpB;UACF,CAAC,MAAM;YACL3D,QAAQ,CAAC;cACPjG,QAAQ,EAAE6E,aAAa,CAACnL,MAAM;YAChC,CAAC,CAAC;YACFyI,gBAAgB,CAAC8B,OAAO,WACnBtK,SAAS,CAACW,QAAQ,qBACrBZ,MAAM,CACP;UACH;UACAoI,KAAK,CAACwK,oBAAoB,CAAC5S,MAAM,CAAC;QACpC,CAAC,MAAM;UACL;UACA,IAAI;YACF;YACA,IAAM+K,YAAU,GAAGnH,WAAW,CAAC0I,KAAK,CAACvB,UAAU,EAAE/K,MAAM,CAAC;YACxD,MAAMmJ,oBAAoB,CAAC3H,KAAK,CAAC,CAC/B4G,KAAK,CAACxH,QAAQ,EACd;cAAEmK,UAAU,EAAEA,YAAU;cAAE+H,SAAS,EAAE;YAAK,CAAC,CAC5C,CAAC;YACFrU,OAAO,CAACsU,OAAO,CACbnV,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAACmV,2BAA2B,EAAG,CACrE;YACDzG,QAAQ,CAAC;cACPb,oBAAoB,EAAEX;YACxB,CAAC,CAAC;UACJ,CAAC,CAAC,OAAOmF,CAAC,EAAE;YACVxS,eAAe,CAACwS,CAAC,CAAC;UACpB;QACF;MACF;IACF,CAAC;IAAA,gBAtFKuC,aAAa;MAAA;IAAA;EAAA,GAsFlB;EAEDzW,SAAS,CAAC,MAAM;IAAA;IACd,yBAAAoM,KAAK,CAAC6K,mBAAmB,0DAAzB,2BAAA7K,KAAK,EAAuBkE,KAAK,CAAChG,QAAQ,CAAC;EAC7C,CAAC,EAAE,CAAC8B,KAAK,CAAC6K,mBAAmB,CAAC,CAAC;;EAE/B;EACAjX,SAAS,CAAC,MAAM;IAAA;IACd,2BAAAoM,KAAK,CAAC2F,eAAe,2DAArB,uBAAuBxH,MAAM,KAC3B,kBAAC,aAAY;MACX,IAAM8H,IAAuC,GAAG,CAAC,CAAC;MAClD,IAAMC,MAA2C,GAAG;QAClDtO,MAAM,EAAE,CAAC,YAAY;MACvB,CAAC;MACD,IAAI,CAACzD,OAAO,CAAC6L,KAAK,CAACmG,UAAU,CAAC,EAAE;QAC9BD,MAAM,CAACC,UAAU,GAAGF,IAAI,CAACE,UAAU,GAAGnG,KAAK,CAACmG,UAAU;MACxD;MAEA,IAAIjC,KAAK,CAAChG,QAAQ,EAAE;QAClB+H,IAAI,CAACrO,MAAM,GAAGiD,MAAM,CAAC4L,WAAW,CAC9BvC,KAAK,CAAChG,QAAQ,CAAC5J,GAAG,CAAE+J,OAAO,IAAK,CAACA,OAAO,EAAE,IAAI,CAAC,CAAC,CACjD;QACD6H,MAAM,CAACtO,MAAM,GAAG,CAAC,GAAGsM,KAAK,CAAChG,QAAQ,EAAE,GAAGgI,MAAM,CAACtO,MAAM,CAAC;QACpDsO,MAAM,CAASQ,0BAA0B,GAAG,IAAI;MACnD;MAEAR,MAAM,CAAC9M,KAAK,GAAG;QACb+G,UAAU,EAAE;UACViH,GAAG,EAAEpH,KAAK,CAAC2F;QACb;MACF,CAAC;MACDO,MAAM,CAAC4C,SAAS,GAAG9I,KAAK,CAAC2F,eAAe,CAACxH,MAAM;MAC/C+H,MAAM,CAAC7B,IAAI,GAAG,CAAC;MAEf,IAAIH,KAAK,CAACO,WAAW,EAAE;QACrByB,MAAM,CAACc,gBAAgB,GAAGf,IAAI,CAACe,gBAAgB,GAAG9C,KAAK,CAACO,WAAW;MACrE;MACA,IAAIzE,KAAK,CAAC8G,WAAW,EAAE;QACrBjM,MAAM,CAACkM,MAAM,CAACb,MAAM,EAAElG,KAAK,CAAC8G,WAAW,CAAC;MAC1C;MACA,IAAI8B,IAAS;MACb;MACA,IAAI5I,KAAK,CAAC8B,kBAAkB,EAAE;QAC5B8G,IAAI,SAAS1H,oBAAoB,CAAC9H,KAAK,CAAC,iCAEjC8M,MAAM,GACNH,qBAAqB,EAE3B,CAAC;MACJ,CAAC,MAAM,IAAI/F,KAAK,CAAC2G,wBAAwB,EAAE;QACzCiC,IAAI,SAASlI,YAAY,CAACtH,KAAK,CAAC,CAAC4G,KAAK,CAACxH,QAAQ,EAAE0N,MAAM,CAAC,CAAC;MAC3D,CAAC,MAAM;QACL0C,IAAI,SAASjT,wBAAwB,CAACqK,KAAK,CAACxH,QAAQ,EAAE0N,MAAM,CAAC;MAC/D;MACA0C,IAAI,CAACjB,IAAI,CAAC3N,OAAO,CAAEkN,CAAsB,IACvCvG,KAAK,CAACiH,OAAO,CAACC,GAAG,CAACX,CAAC,CAAC/G,UAAU,EAAE+G,CAAC,CAAC,CACnC;IACH,CAAC,GAAG;EACR,CAAC,EAAE,CAAClH,KAAK,CAAC2F,eAAe,CAAC,CAAC;EAC3B,IAAMmF,qBAAqB,GAAG,MAAM;IAClCpJ,YAAY,CAAC,CAACD,WAAW,CAAC;EAC5B,CAAC;EACD,IAAMsJ,wBAAwB,GAAG,CAACnQ,MAAc,EAAES,SAAiB,KAAK;IACtE,OAAO,MAAM;MAAA;MACX,IAAMH,OAAgB,GAAG,EAAE;MAC3B,IAAMgO,aAAsB,GAAG,EAAE;MACjC,IAAM8B,QAAQ,GAAI9P,OAAc,IAC9BA,OAAO,CAACzG,MAAM,CAAEuG,CAAM,IAAKI,cAAc,CAACJ,CAAC,EAAEJ,MAAM,EAAES,SAAS,CAAC,CAAC;MAClE6I,KAAK,CAAC5H,EAAE,CAACtC,OAAO,CAAEZ,KAAK,IAAK;QAC1B,IAAMa,GAAG,GAAGY,MAAM,CAACC,IAAI,CAAC1B,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IACE,CAACa,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,MAAM,KAChCY,MAAM,CAACC,IAAI,CAAE1B,KAAK,CAACa,GAAG,CAAC,CAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAKW,MAAM,EACrD;UACA,IAAMqQ,kBAAkB,GAAGD,QAAQ,CAAC5R,KAAK,CAACa,GAAG,CAAC,CAAY;UAC1D,IAAIgR,kBAAkB,CAAC9M,MAAM,GAAG,CAAC,EAAE;YACjCjD,OAAO,CAAChB,IAAI,CAAC;cACX,CAACD,GAAG,GAAGgR;YACT,CAAC,CAAC;UACJ;QACF,CAAC,MAAM,IAAIhR,GAAG,KAAKW,MAAM,IAAI,CAAC7F,UAAU,CAAC6F,MAAM,YAAKX,GAAG,OAAI,EAAE;UAC3D;UACA,IAAI,CAACiR,KAAK,CAACC,OAAO,CAAC/R,KAAK,CAACa,GAAG,CAAC,CAAC,IAAIU,WAAW,CAACvB,KAAK,EAAEa,GAAG,CAAC,EAAE;YACzDiB,OAAO,CAAChB,IAAI,CAACd,KAAK,CAAC;UACrB,CAAC,MAAM;YACL,IAAMiF,SAAO,GAAGxD,MAAM,CAACC,IAAI,CAAE1B,KAAK,CAACa,GAAG,CAAC,CAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D;YACA,IAAMuF,QAAQ,GAAGpB,UAAU,CAACvG,SAAS,EAAEwG,SAAO,CAAC;YAC/C;YACA,IACE,EACE,CAACpE,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,MAAM,KAChClF,UAAU,CAACsJ,SAAO,YAAKzD,MAAM,OAAI,IACjC4E,QAAQ,CACT,EACD;cACAtE,OAAO,CAAChB,IAAI,CAACd,KAAK,CAAC;YACrB;UACF;QACF,CAAC,MAAM,IACL4G,KAAK,CAACoL,oBAAoB,IAC1BnR,GAAG,KAAKW,MAAM,IACdQ,cAAc,CAAChC,KAAK,EAAEwB,MAAM,EAAES,SAAS,CAAC,EACxC;UACAJ,mBAAmB,CAAC7B,KAAK,EAAEa,GAAG,EAAEiB,OAAO,CAAC;QAC1C;MACF,CAAC,CAAC;MACFgJ,KAAK,CAACjF,QAAQ,CAACjF,OAAO,CAAEZ,KAAK,IAAK;QAChC,IAAMa,GAAG,GAAGY,MAAM,CAACC,IAAI,CAAC1B,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IACE,CAACa,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,MAAM,KAChCY,MAAM,CAACC,IAAI,CAAE1B,KAAK,CAACa,GAAG,CAAC,CAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAKW,MAAM,EACrD;UACA,IAAMqQ,kBAAkB,GAAGD,QAAQ,CAAC5R,KAAK,CAACa,GAAG,CAAC,CAAY;UAC1D,IAAIgR,kBAAkB,CAAC9M,MAAM,GAAG,CAAC,EAAE;YACjC+K,aAAa,CAAChP,IAAI,CAAC;cACjB,CAACD,GAAG,GAAGgR;YACT,CAAC,CAAC;UACJ;QACF,CAAC,MAAM,IAAIhR,GAAG,KAAKW,MAAM,EAAE;UACzBsO,aAAa,CAAChP,IAAI,CAACd,KAAK,CAAC;QAC3B,CAAC,MAAM,IACL4G,KAAK,CAACoL,oBAAoB,IAC1BnR,GAAG,KAAKW,MAAM,IACdQ,cAAc,CAAChC,KAAK,EAAEwB,MAAM,EAAES,SAAS,CAAC,EACxC;UACAJ,mBAAmB,CAAC7B,KAAK,EAAEa,GAAG,EAAEiP,aAAa,CAAC;QAChD;MACF,CAAC,CAAC;MACF/E,QAAQ,CAAC;QACP7H,EAAE,EAAEpB,OAAO;QACX+D,QAAQ,EAAEiK;MACZ,CAAC,CAAC;MACF,0BAAAlJ,KAAK,CAACiJ,gBAAgB,2DAAtB,4BAAAjJ,KAAK,EAAoB9E,OAAO,CAAC;IACnC,CAAC;EACH,CAAC;EAED,IAAMmQ,4BAA4B,GAAI3B,OAAgB,IAAW;IAAA;IAC/DvF,QAAQ,CAAC;MAAEQ,oBAAoB,EAAE+E;IAAQ,CAAC,CAAC;IAC3C,yBAAA1J,KAAK,CAACqL,4BAA4B,0DAAlC,2BAAArL,KAAK,EAAgC0J,OAAO,CAAC;EAC/C,CAAC;EAED,IAAM4B,sBAAsB,GAAI5G,aAAkB,IAAW;IAAA;IAC3DP,QAAQ,CAAC;MAAEO,aAAa,EAAEA;IAAc,CAAC,CAAC;IAC1C,yBAAA1E,KAAK,CAACsL,sBAAsB,0DAA5B,2BAAAtL,KAAK,EAA0B0E,aAAa,CAAC;EAC/C,CAAC;EAED,IAAM6G,sBAAsB,GAAIC,OAAgB,IAAW;IACzDrH,QAAQ,CAAC;MAAES,4BAA4B,EAAE4G;IAAQ,CAAC,CAAC;EACrD,CAAC;EAED,IAAMhP,UAAU,GAAGH,mBAAmB,CACpC6H,KAAK,CAACjF,QAAQ,EACdhG,WAAW,EACXpB,SAAS,CACV;EAEDjE,SAAS,CAAC,MAAM;IACd,IAAIoM,KAAK,CAACkC,wBAAwB,EAAE;MAClC,IAAM5F,EAAE,GAAGwC,YAAY,CAACkB,KAAK,CAAC1D,EAAE,EAAEzE,SAAS,EAAE,KAAK,CAAC;MACnD,IAAMoH,QAAQ,GAAGe,KAAK,CAACf,QAAQ,IAAIH,YAAY,CAACkB,KAAK,CAAC1D,EAAE,EAAEzE,SAAS,CAAC;MACpEsM,QAAQ,CAAC;QAAE7H,EAAE;QAAE2C;MAAS,CAAC,CAAC;IAC5B;EACF,CAAC,EAAE,CAACe,KAAK,CAAC1D,EAAE,EAAE0D,KAAK,CAACf,QAAQ,EAAEe,KAAK,CAACkC,wBAAwB,CAAC,CAAC;EAE9D,oBACE,oBAAC,IAAI;IAAC,QAAQ,EAAEgC,KAAK,CAACY;EAAQ,GAC3BZ,KAAK,CAACW,MAAM,IAAI,CAACX,KAAK,CAACa,MAAM,gBAC5B,oBAAC,KAAK,CAAC,QAAQ,QACZ,CAAC,CAAC/E,KAAK,CAACyL,cAAc,IACrB,CAACzL,KAAK,CAAC0L,sBAAsB,IAC7B,CAAC1L,KAAK,CAAC2L,mBAAmB,IAC1B,CAAC3L,KAAK,CAAC4L,kBAAkB,IACzB,CAAC5L,KAAK,CAAC6L,mBAAmB,kBAC1B;IAAK,SAAS,EAAE3U,MAAM,CAAC4U;EAAoB,gBACzC;IAAK,SAAS,EAAE5U,MAAM,CAAC6U;EAAc,GAElC,CAAC7H,KAAK,CAACwB,WAAW,gBACjB,0CACG,CAAC1F,KAAK,CAACyL,cAAc,iBACpB,oBAAC,KAAK,CAAC,MAAM;IACX,WAAW,EAAEzL,KAAK,CAACgM,WAAY;IAC/B,WAAW;IACX,KAAK,EAAE9S,CAAE;IACT,QAAQ,EAAEkP,QAAS;IACnB,QAAQ,EAAEY;EAAS,EAEtB,EACA,CAAChJ,KAAK,CAAC0L,sBAAsB,iBAC5B,oBAAC,MAAM;IACL,IAAI,EAAC,MAAM;IACX,IAAI,EAAC,OAAO;IACZ,KAAK,EAAE;MACLO,UAAU,EAAE,KAAK;MACjBC,WAAW,EAAE;IACf,CAAE;IACF,OAAO,EAAE,MACP/H,QAAQ,CAAC;MACPa,uBAAuB,EACrB,CAACd,KAAK,CAACc;IACX,CAAC,CACF;IACD,eAAY;EAA4B,GAEvCxP,IAAI,CAAC+G,CAAC,WACF7G,sBAAsB,cAAID,CAAC,CAAC0W,eAAe,EAC/C,eACD,oBAAC,UAAU;IACT,IAAI,EAAEjI,KAAK,CAACc,uBAAuB,GAAG,IAAI,GAAG;EAAO,EACpD,CAEL,CACA,gBAEH,uDACE,oBAAC,MAAM;IACL,KAAK,EAAE;MAAEoH,KAAK,EAAE,OAAO;MAAEF,WAAW,EAAE;IAAO,CAAE;IAC/C,KAAK,EAAEhI,KAAK,CAACoB,cAAe;IAC5B,QAAQ,EAAE0E,eAAgB;IAC1B,UAAU,EAAE,IAAK;IACjB,gBAAgB,EAAC;EAAU,qBAE1B9F,KAAK,CAACsB,OAAO,mDAAb,eAAelR,GAAG,CAAE2V,CAAC,iBACpB,oBAAC,MAAM,CAAC,MAAM;IAAC,GAAG,EAAEA,CAAC,CAAC9J,UAAW;IAAC,KAAK,EAAE8J,CAAC,CAAC9J;EAAW,GACnD8J,CAAC,CAACpN,IAAI,CAEV,CAAC,CACK,eACT,oBAAC,MAAM;IACL,KAAK,EAAE;MAAEuP,KAAK,EAAE;IAAQ,CAAE;IAC1B,KAAK,EAAElI,KAAK,CAACqB,YAAa;IAC1B,QAAQ,EAAE2E,mBAAoB;IAC9B,UAAU,EAAE,IAAK;IACjB,gBAAgB,EAAC;EAAU,GAE1BhG,KAAK,CAACuB,WAAW,CAACnR,GAAG,CAAE2V,CAAC,iBACvB,oBAAC,MAAM,CAAC,MAAM;IAAC,GAAG,EAAEA,CAAC,CAAC9J,UAAW;IAAC,KAAK,EAAE8J,CAAC,CAAC9J;EAAW,GACnD8J,CAAC,CAACpN,IAAI,CAEV,CAAC,CACK,CAEZ,CACG,eACN;IAAK,SAAS,EAAE3F,MAAM,CAACmV;EAAQ,GAC5B1G,eAAe,CAACxH,MAAM,GAAG,CAAC,iBACzB;IAAK,KAAK,EAAE;MAAE+N,WAAW,EAAE;IAAG;EAAE,gBAC9B,kCACG1W,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAAC6W,cAAc,GAAI;IACvDC,KAAK,EAAE5G,eAAe,CAACxH;EACzB,CAAC,CAAC,CACG,eACP;IACE,IAAI,EAAC,QAAQ;IACb,OAAO,EAAE,MACPmK,iBAAiB,CAAC;MAChBG,YAAY,EAAE,EAAE;MAChBD,aAAa,EAAE;IACjB,CAAC;EACF,GAEA,GAAG,EACHhT,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAAC+W,KAAK,EAAG,CAC7C,CAEP,EACA,0BAAAxM,KAAK,CAACyM,kBAAkB,0DAAxB,sBAA0BC,QAAQ,kBACjC,oBAAC,gBAAgB;IACf,QAAQ,EAAE1M,KAAK,CAACyM,kBAAkB,CAACC;EAAS,EAE/C,EACA1M,KAAK,CAACkC,wBAAwB,iBAC7B,oBAAC,oBAAoB;IACnB,OAAO,EAAEgC,KAAK,CAACU,4BAA6B;IAC5C,OAAO,EAAEV,KAAK,CAACS,oBAAqB;IACpC,sBAAsB,EAAE4G,sBAAuB;IAC/C,iBAAiB,EAAEF,4BAA6B;IAChD,QAAQ,EAAEC,sBAAuB;IACjC,yBAAyB,EAAE/J,yBAA0B;IACrD,KAAK,EAAE2C,KAAK,CAACQ,aAAc;IAC3B,gBAAgB,EAAErE,gBAAiB;IACnC,UAAU,EAAExI,SAAS,CAACgK;EAAW,EAEpC,EACA7B,KAAK,CAACxH,QAAQ,KAAK,MAAM,IAAIwH,KAAK,CAAC2M,iBAAiB,iBACnD,oBAAC,MAAM;IAAC,IAAI,EAAE,MAAO;IAAC,OAAO,EAAE9C;EAAiB,GAE7C3F,KAAK,CAACwB,WAAW,GACdlQ,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAACmX,cAAc,EAAG,GACvDpX,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAACoX,aAAa,EAAG,CAE7D,EACA7M,KAAK,CAACxH,QAAQ,KAAK,MAAM,IAAI,CAACwH,KAAK,CAAC4L,kBAAkB,iBACrD,oBAAC,UAAU;IACT,OAAO,EAAE1H,KAAK,CAACM,UAAW;IAC1B,QAAQ,EAAEmF,kBAAmB;IAC7B,KAAK,EAAE;MAAEuC,WAAW,EAAE;IAAG,CAAE;IAC3B,QAAQ,EAAElM,KAAK,CAAC8M,aAAc;IAC9B,IAAI,EAAC,YAAY;IACjB,KAAK,EAAEtX,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAACsX,WAAW,EAAI;IAC5D,eAAY;EAAa,EAE5B,EACA,CAAC/M,KAAK,CAAC2L,mBAAmB,iBACzB,oBAAC,UAAU;IACT,OAAO,EAAEzH,KAAK,CAACO,WAAY;IAC3B,QAAQ,EAAEgF,mBAAoB;IAC9B,KAAK,EAAE;MAAEyC,WAAW,EAAE;IAAG,CAAE;IAC3B,IAAI,EAAC,YAAY;IACjB,KAAK,EAAE1W,IAAI,CAAC+G,CAAC,WACR7G,sBAAsB,cAAID,CAAC,CAACuX,aAAa,EAC5C;IACF,eAAY;EAAe,EAE9B,EACA,CAAChN,KAAK,CAACiN,sBAAsB,iBAC5B,oBAAC,UAAU;IACT,OAAO,EAAE/I,KAAK,CAACiB,aAAc;IAC7B,QAAQ,EAAEyE,mBAAoB;IAC9B,KAAK,EAAE;MAAEsC,WAAW,EAAE;IAAG,CAAE;IAC3B,IAAI,EAAC,gBAAgB;IACrB,KAAK,EAAE1W,IAAI,CAAC+G,CAAC,WACR7G,sBAAsB,cAAID,CAAC,CAACyX,2BAA2B,EAC1D;IACF,eAAY;EAAkB,EAEjC,EACA,CAAClN,KAAK,CAAC6L,mBAAmB,iBACzB,oBAAC,oBAAoB;IACnB,SAAS,EAAEhU,SAAU;IACrB,SAAS,EAAEwS,aAAc;IACzB,kBAAkB,EAAErK,KAAK,CAAC8B,kBAAmB;IAC7C,iBAAiB,EAAE9B,KAAK,CAACiF,iBAAkB;IAC3C,QAAQ,EAAEf,KAAK,CAAChG,QAAS;IACzB,aAAa,EAAEiM,aAAc;IAC7B,kBAAkB,EAAEnK,KAAK,CAAC6D,kBAAmB;IAC7C,qBAAqB,EAAEiH,qBAAsB;IAC7C,WAAW,EAAErJ,WAAY;IACzB,eAAe,EAAEzB,KAAK,CAACmN;EAAgB,EAE1C,CACG,CAET,EACA,CAACnN,KAAK,CAAC0L,sBAAsB,IAAI,CAACxH,KAAK,CAACwB,WAAW,iBAClD;IACE,KAAK,EAAE;MAAE0H,YAAY,EAAE;IAAO,CAAE;IAChC,MAAM,EAAE,CAAClJ,KAAK,CAACc;EAAwB,gBAEvC,oBAAC,cAAc;IACb,GAAG,EAAE/G,MAAM,CAACiG,KAAK,CAAChG,QAAQ,EAAEgG,KAAK,CAAC5H,EAAE,CAAE;IACtC,QAAQ,EAAE4H,KAAK,CAAChG,QAAS;IACzB,WAAW,EAAEgG,KAAK,CAACjL,WAAY;IAC/B,SAAS,EAAEpB,SAAU;IACrB,CAAC,EAAEqM,KAAK,CAACjF,QAAS;IAClB,WAAW,EAAEiF,KAAK,CAACiF,WAAY;IAC/B,QAAQ,EAAEF;EAAiB,GACtBjJ,KAAK,CAACqN,UAAU,GACjB;IACEA,UAAU,EAAErN,KAAK,CAACqN;EACpB,CAAC,GACD,IAAI,EACR,CAEL,EACA,CAACrN,KAAK,CAACsN,oBAAoB,IAC1B,CAACpJ,KAAK,CAACwB,WAAW,KACjBxB,KAAK,CAACE,mBAAmB,IAAIF,KAAK,CAAChL,CAAC,IAAI,CAAC/E,OAAO,CAACqI,UAAU,CAAC,CAAC,iBAC5D;IAAK,SAAS,EAAEtF,MAAM,CAACqW;EAAiB,gBACtC,kCACG/X,IAAI,CAAC+G,CAAC,WACF7G,sBAAsB,cAAID,CAAC,CAAC+X,2BAA2B,EAC3D,CACI,EACNtJ,KAAK,CAAChL,CAAC,iBACN,oBAAC,GAAG;IACF,QAAQ;IACR,OAAO,EAAE,MAAM;MACb+K,IAAI,CAAC,EAAE,CAAC;MACR+E,QAAQ,CAAC,EAAE,CAAC;IACd;EAAE,GAEDxT,IAAI,CAAC+G,CAAC,WAAI7G,sBAAsB,cAAID,CAAC,CAACgY,YAAY,GAAI;IACrDrU,KAAK,EAAE8K,KAAK,CAAChL;EACf,CAAC,CAAC,CAEL,EACAgL,KAAK,CAACE,mBAAmB,iBACxB,oBAAC,GAAG;IACF,QAAQ;IACR,OAAO,EAAE,MAAM;MACboF,sBAAsB,CAAC,IAAI,CAAC;IAC9B;EAAE,GAEDhU,IAAI,CAAC+G,CAAC,WACF7G,sBAAsB,cAAID,CAAC,CAACiY,wBAAwB,GACvD;IACEtU,KAAK,EACH,CAAAmI,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CACvB2C,KAAK,CAACE,mBAAmB,CAC1B,KAAIF,KAAK,CAACE;EACf,CAAC,CACF,CAEJ,EACA5H,UAAU,CAAClI,GAAG,CAAEsJ,SAAS,iBACxB,oBAAC,GAAG;IACF,GAAG,YAAKA,SAAS,CAAChD,MAAM,SACtBgD,SAAS,CAACvC,SAAS,cACjBzG,QAAQ,EAAE,CAAG;IACjB,QAAQ;IACR,OAAO,EAAEmW,wBAAwB,CAC/BnN,SAAS,CAAChD,MAAM,EAChBgD,SAAS,CAACvC,SAAS;EACnB,GAEDuC,SAAS,CAACA,SAAS,CAEvB,CAAC,CAEL,EACF,0BAAAoC,KAAK,CAAC2N,iBAAiB,0DAAvB,sBAAyBjB,QAAQ,kBAChC,oBAAC,gBAAgB;IAAC,QAAQ,EAAE1M,KAAK,CAAC2N,iBAAiB,CAACjB;EAAS,EAC9D,EACA,CAAC1M,KAAK,CAAC0H,gBAAgB,iBACtB,oBAAC,iBAAiB;IAChB,kBAAkB,EAAE1H,KAAK,CAAC4N,kBAAmB;IAC7C,QAAQ,EAAE1J,KAAK,CAAChG,QAAS;IACzB,WAAW,EAAEgG,KAAK,CAACjL,WAAY;IAC/B,SAAS,EAAEpB,SAAU;IACrB,gBAAgB,EAAEqM,KAAK,CAACuD,gBAAiB;IACzC,IAAI,EAAEvD,KAAK,CAAChI,IAAK;IACjB,GAAG,EAAEgI,KAAK,CAACjI,GAAI;IACf,eAAe,EAAE0J,eAAgB;IACjC,cAAc,EAAE3F,KAAK,CAAC6N,cAAe;IACrC,YAAY,EAAE7N,KAAK,CAAC8N,YAAa;IACjC,sBAAsB,EAAE9N,KAAK,CAAC+N,sBAAuB;IACrD,WAAW,EAAE/N,KAAK,CAACgO,WAAY;IAC/B,aAAa,EAAEhO,KAAK,CAACiO,aAAc;IACnC,kBAAkB,EAAE/F,kBAAmB;IACvC,eAAe,EAAG/K,IAAS,IAAK;MAC9BiM,eAAe,CAACjM,IAAI,EAAE+G,KAAK,CAACvB,UAAU,CAAC;IACzC,CAAE;IACF,iBAAiB,EAAE2F,iBAAkB;IACrC,sBAAsB,EAAEkB,sBAAuB;IAC/C,mBAAmB,EAAEtF,KAAK,CAACE,mBAAoB;IAC/C,yBAAyB,EAAE7C,yBAA0B;IACrD,4BAA4B,EAAEvB,KAAK,CAACkO,4BAA6B;IACjE,aAAa,EAAEhK,KAAK,CAACiB,aAAc;IACnC,oBAAoB,EAAEnF,KAAK,CAACmO,oBAAqB;IACjD,eAAe,EAAEnO,KAAK,CAACoO,eAAgB;IACvC,eAAe,EAAEpO,KAAK,CAACqO,eAAgB;IACvC,YAAY,EAAErO,KAAK,CAACsO,YAAa;IACjC,MAAM,EAAEtO,KAAK,CAACqI,MAAO;IACrB,MAAM,EAAErI,KAAK,CAACuO,MAAO;IACrB,WAAW,EAAE9M,WAAY;IACzB,2BAA2B,EAAEzB,KAAK,CAACwO,2BAA4B;IAC/D,WAAW,EAAEvO,WAAY;IACzB,gBAAgB,EAAED,KAAK,CAACyO,gBAAiB;IACzC,eAAe,EAAEzO,KAAK,CAAC0O,eAAgB;IACvC,kBAAkB,EAAE1O,KAAK,CAAC8B,kBAAmB;IAC7C,gBAAgB,EAAE9B,KAAK,CAACiC;EAAiB,EAE5C,CACc;EAAA;EAEjB;EACA;IAAK,SAAS,EAAE/K,MAAM,CAACyX;EAAe,EACvC,CACI;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAY,CAAC5O,KAAwB,EAAsB;EACzE,IAAM,CAAClI,UAAU,EAAE+W,aAAa,CAAC,GAAG/a,QAAQ,CAE1CkM,KAAK,CAAClI,UAAU,CAAC;EAEnB,IAAMgX,oBAAoB,GAAGvZ,WAAW,CACtC,sDAAsD,EACtD;IAAEoL,KAAK,EAAE;EAAM,CAAC,CACjB;EAED/M,SAAS,CAAC,MAAM;IAAA;IACd,yBAAIoM,KAAK,CAAClI,UAAU,8CAAhB,kBAAkBqG,MAAM,EAAE;MAC5B0Q,aAAa,CAAC7O,KAAK,CAAClI,UAAU,CAAC;IACjC,CAAC,MAAM;MACL,kBAAC,aAAY;QACX,IAAMiX,SAAS,GAAGzX,eAAe,CAACyR,GAAG,CAAC/I,KAAK,CAACxH,QAAQ,CAAC;QACrD,IAAIuW,SAAS,EAAE;UACbF,aAAa,CAACE,SAAS,CAAC;QAC1B,CAAC,MAAM;UACL,IAAI;YACF,IAAIpH,IAAI;YACR,IAAI3H,KAAK,CAAC8B,kBAAkB,EAAE;cAC5B6F,IAAI,SAASmH,oBAAoB,CAAC1V,KAAK,CAAC,CACtC;gBACE4V,UAAU,EAAEhP,KAAK,CAACxH,QAAQ;gBAC1BwJ,QAAQ,EAAEhC,KAAK,CAACiC;cAClB,CAAC,CACF,CAAC;YACJ,CAAC,MAAM;cACL0F,IAAI,GAAG,OACC9R,0BAA0B,CAAC;gBAAEmZ,UAAU,EAAEhP,KAAK,CAACxH;cAAS,CAAC,CAAC,EAChEyN,IAAI;YACR;YACA4I,aAAa,CAAClH,IAAI,CAAC;YACnBrQ,eAAe,CAACuQ,GAAG,CAAC7H,KAAK,CAACxH,QAAQ,EAAEmP,IAAI,CAAC;UAC3C,CAAC,CAAC,OAAOG,CAAC,EAAE;YACV;YACAxS,eAAe,CAACwS,CAAC,CAAC;UACpB;QACF;MACF,CAAC,GAAG;IACN;EACF,CAAC,EAAE,CAAC9H,KAAK,CAACxH,QAAQ,EAAEwH,KAAK,CAAClI,UAAU,CAAC,CAAC;EAEtC,IACE,CAACA,UAAU,IACX,CAACA,UAAU,CAAChD,IAAI,CAAEsH,IAAI,IAAKA,IAAI,CAAC5D,QAAQ,KAAKwH,KAAK,CAACxH,QAAQ,CAAC,EAE5D,OAAO,IAAI;EAEb,oBAAO,oBAAC,kBAAkB,eAAKwH,KAAK;IAAE,UAAU,EAAElI;EAAW,GAAG;AAClE"}
|