/* eslint-disable no-undef */ export default class DxfComparePanel { compareDetail; container; viewer; constructor(viewer, container = document.body) { this.init(viewer, container); } init(viewer, container) { this.viewer = viewer; this.container = container; this.buildPanel(); this.initEvents(); } buildPanel() { const panelContainer = document.createElement("div"); panelContainer.classList.add("compare-panel-container"); const header = document.createElement("h3"); panelContainer.appendChild(header); this.container.appendChild(panelContainer); const compareDetail = document.createElement("div"); compareDetail.classList.add("compare-detail"); panelContainer.appendChild(compareDetail); this.compareDetail = compareDetail; const changes = this.viewer.getChanges(); if (!changes) { return; } const changesValues = Object.values(changes); header.innerHTML = `差异列表(${changesValues.length})`; const addedChangesValues = changesValues.filter((val) => val.type === "Added"); const deletedChangeValues = changesValues.filter((val) => val.type === "Removed"); const modifiedChanageValues = changesValues.filter((val) => val.type === "Modified"); if (addedChangesValues.length > 0) { this.buildList(addedChangesValues, "新增"); } if (deletedChangeValues.length > 0) { this.buildList(deletedChangeValues, "删除"); } if (modifiedChanageValues.length > 0) { this.buildList(modifiedChanageValues, "修改"); } } buildList(changesValues, text) { const section = document.createElement("div"); section.classList.add("compare-list", "compare-add"); this.compareDetail.appendChild(section); this.buildListTitle(section, `${text}(${changesValues.length})`); const listEle = document.createElement("ul"); listEle.classList.add("list", "hide"); section.appendChild(listEle); let listFragment = ""; changesValues.forEach((val) => { listFragment += `