import {fetchPost} from "../../../util/fetch"; import {getColIconByType} from "./col"; import {Constants} from "../../../constants"; import {addDragFill, cellScrollIntoView, popTextCell, renderCell} from "./cell"; import {unicode2Emoji} from "../../../emoji"; import {focusBlock} from "../../util/selection"; import {hasClosestBlock, hasClosestByAttribute, hasClosestByClassName} from "../../util/hasClosest"; import {stickyRow, updateHeader} from "./row"; import {getCalcValue} from "./calc"; import {renderAVAttribute} from "./blockAttr"; import {addClearButton} from "../../../util/addClearButton"; import {escapeAriaLabel, escapeAttr, escapeHtml} from "../../../util/escape"; import {electronUndo} from "../../undo"; import {isInAndroid, isInHarmony, isInIOS} from "../../util/compatibility"; import {isMobile} from "../../../util/functions"; import {renderGallery} from "./gallery/render"; import {getFieldsByData, getViewIcon} from "./view"; import {openMenuPanel} from "./openMenuPanel"; import {getPageSize} from "./groups"; import {clearSelect} from "../../util/clearSelect"; import {showMessage} from "../../../dialog/message"; interface IIds { groupId: string, rowId: string, colId?: string } interface ITableOptions { protyle: IProtyle, blockElement: HTMLElement, cb: (data: IAV) => void, data: IAV, renderAll: boolean, resetData: { left: number, alignSelf: string, headerTransform: string, footerTransform: string, isSearching: boolean, selectCellId: IIds, selectRowIds: IIds[], dragFillId: IIds, activeIds: IIds[], query: string, pageSizes: { [key: string]: string }, } } export const genTabHeaderHTML = (data: IAV, showSearch: boolean, editable: boolean) => { let tabHTML = ""; let viewData: IAVView; let hasFilter = false; getFieldsByData(data).forEach((item) => { if (!hasFilter) { data.view.filters.find(filterItem => { if (filterItem.value.type === item.type && item.id === filterItem.column) { hasFilter = true; return true; } }); } }); data.views.forEach((item: IAVView) => { tabHTML += `