@visactor/vtable 0.9.0-alpha.0-alpha.0
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/README.md +152 -0
- package/cjs/ListTable.d.ts +38 -0
- package/cjs/ListTable.js +258 -0
- package/cjs/ListTable.js.map +1 -0
- package/cjs/PivotTable.d.ts +50 -0
- package/cjs/PivotTable.js +275 -0
- package/cjs/PivotTable.js.map +1 -0
- package/cjs/body-helper/body-helper.d.ts +14 -0
- package/cjs/body-helper/body-helper.js +99 -0
- package/cjs/body-helper/body-helper.js.map +1 -0
- package/cjs/body-helper/style/ImageStyle.d.ts +7 -0
- package/cjs/body-helper/style/ImageStyle.js +24 -0
- package/cjs/body-helper/style/ImageStyle.js.map +1 -0
- package/cjs/body-helper/style/MultilineTextStyle.d.ts +13 -0
- package/cjs/body-helper/style/MultilineTextStyle.js +38 -0
- package/cjs/body-helper/style/MultilineTextStyle.js.map +1 -0
- package/cjs/body-helper/style/NumberStyle.d.ts +7 -0
- package/cjs/body-helper/style/NumberStyle.js +24 -0
- package/cjs/body-helper/style/NumberStyle.js.map +1 -0
- package/cjs/body-helper/style/ProgressBarStyle.d.ts +52 -0
- package/cjs/body-helper/style/ProgressBarStyle.js +126 -0
- package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -0
- package/cjs/body-helper/style/Style.d.ts +85 -0
- package/cjs/body-helper/style/Style.js +200 -0
- package/cjs/body-helper/style/Style.js.map +1 -0
- package/cjs/body-helper/style.d.ts +10 -0
- package/cjs/body-helper/style.js +52 -0
- package/cjs/body-helper/style.js.map +1 -0
- package/cjs/chartType.d.ts +3 -0
- package/cjs/chartType.js +14 -0
- package/cjs/chartType.js.map +1 -0
- package/cjs/core/BaseTable.d.ts +287 -0
- package/cjs/core/BaseTable.js +1272 -0
- package/cjs/core/BaseTable.js.map +1 -0
- package/cjs/core/FouseInput.d.ts +11 -0
- package/cjs/core/FouseInput.js +38 -0
- package/cjs/core/FouseInput.js.map +1 -0
- package/cjs/core/TABLE_EVENT_TYPE.d.ts +30 -0
- package/cjs/core/TABLE_EVENT_TYPE.js +34 -0
- package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -0
- package/cjs/core/tableHelper.d.ts +28 -0
- package/cjs/core/tableHelper.js +141 -0
- package/cjs/core/tableHelper.js.map +1 -0
- package/cjs/core.d.ts +3 -0
- package/cjs/core.js +24 -0
- package/cjs/core.js.map +1 -0
- package/cjs/data/CachedDataSource.d.ts +16 -0
- package/cjs/data/CachedDataSource.js +54 -0
- package/cjs/data/CachedDataSource.js.map +1 -0
- package/cjs/data/DataSource.d.ts +64 -0
- package/cjs/data/DataSource.js +294 -0
- package/cjs/data/DataSource.js.map +1 -0
- package/cjs/data/FilterDataSource.d.ts +1 -0
- package/cjs/data/FilterDataSource.js +1 -0
- package/cjs/data/FilterDataSource.js.map +1 -0
- package/cjs/data.d.ts +4 -0
- package/cjs/data.js +24 -0
- package/cjs/data.js.map +1 -0
- package/cjs/dataset/DataStatistics.d.ts +10 -0
- package/cjs/dataset/DataStatistics.js +81 -0
- package/cjs/dataset/DataStatistics.js.map +1 -0
- package/cjs/dataset/dataset.d.ts +72 -0
- package/cjs/dataset/dataset.js +490 -0
- package/cjs/dataset/dataset.js.map +1 -0
- package/cjs/dataset/flatDataToObject.d.ts +31 -0
- package/cjs/dataset/flatDataToObject.js +71 -0
- package/cjs/dataset/flatDataToObject.js.map +1 -0
- package/cjs/event/EventHandler.d.ts +45 -0
- package/cjs/event/EventHandler.js +120 -0
- package/cjs/event/EventHandler.js.map +1 -0
- package/cjs/event/EventTarget.d.ts +11 -0
- package/cjs/event/EventTarget.js +59 -0
- package/cjs/event/EventTarget.js.map +1 -0
- package/cjs/event/chart.d.ts +2 -0
- package/cjs/event/chart.js +24 -0
- package/cjs/event/chart.js.map +1 -0
- package/cjs/event/drill.d.ts +3 -0
- package/cjs/event/drill.js +23 -0
- package/cjs/event/drill.js.map +1 -0
- package/cjs/event/event.d.ts +35 -0
- package/cjs/event/event.js +426 -0
- package/cjs/event/event.js.map +1 -0
- package/cjs/event/media-click.d.ts +2 -0
- package/cjs/event/media-click.js +58 -0
- package/cjs/event/media-click.js.map +1 -0
- package/cjs/event/scroll.d.ts +2 -0
- package/cjs/event/scroll.js +23 -0
- package/cjs/event/scroll.js.map +1 -0
- package/cjs/header-helper/header-helper.d.ts +26 -0
- package/cjs/header-helper/header-helper.js +214 -0
- package/cjs/header-helper/header-helper.js.map +1 -0
- package/cjs/header-helper/style/ImageStyle.d.ts +7 -0
- package/cjs/header-helper/style/ImageStyle.js +25 -0
- package/cjs/header-helper/style/ImageStyle.js.map +1 -0
- package/cjs/header-helper/style/MultilineTextHeaderStyle.d.ts +13 -0
- package/cjs/header-helper/style/MultilineTextHeaderStyle.js +38 -0
- package/cjs/header-helper/style/MultilineTextHeaderStyle.js.map +1 -0
- package/cjs/header-helper/style/SortHeaderStyle.d.ts +1 -0
- package/cjs/header-helper/style/SortHeaderStyle.js +3 -0
- package/cjs/header-helper/style/SortHeaderStyle.js.map +1 -0
- package/cjs/header-helper/style/Style.d.ts +88 -0
- package/cjs/header-helper/style/Style.js +208 -0
- package/cjs/header-helper/style/Style.js.map +1 -0
- package/cjs/header-helper/style.d.ts +5 -0
- package/cjs/header-helper/style.js +30 -0
- package/cjs/header-helper/style.js.map +1 -0
- package/cjs/icons.d.ts +4 -0
- package/cjs/icons.js +241 -0
- package/cjs/icons.js.map +1 -0
- package/cjs/index.d.ts +17 -0
- package/cjs/index.js +95 -0
- package/cjs/index.js.map +1 -0
- package/cjs/layout/index.d.ts +1 -0
- package/cjs/layout/index.js +15 -0
- package/cjs/layout/index.js.map +1 -0
- package/cjs/layout/pivot-header-layout.d.ts +155 -0
- package/cjs/layout/pivot-header-layout.js +897 -0
- package/cjs/layout/pivot-header-layout.js.map +1 -0
- package/cjs/layout/pivot-layout.d.ts +86 -0
- package/cjs/layout/pivot-layout.js +422 -0
- package/cjs/layout/pivot-layout.js.map +1 -0
- package/cjs/layout/simple-header-layout.d.ts +67 -0
- package/cjs/layout/simple-header-layout.js +413 -0
- package/cjs/layout/simple-header-layout.js.map +1 -0
- package/cjs/menu/dom/BaseMenu.d.ts +15 -0
- package/cjs/menu/dom/BaseMenu.js +30 -0
- package/cjs/menu/dom/BaseMenu.js.map +1 -0
- package/cjs/menu/dom/Menu.d.ts +9 -0
- package/cjs/menu/dom/Menu.js +24 -0
- package/cjs/menu/dom/Menu.js.map +1 -0
- package/cjs/menu/dom/MenuHandler.d.ts +20 -0
- package/cjs/menu/dom/MenuHandler.js +134 -0
- package/cjs/menu/dom/MenuHandler.js.map +1 -0
- package/cjs/menu/dom/logic/MenuContainer.d.ts +22 -0
- package/cjs/menu/dom/logic/MenuContainer.js +110 -0
- package/cjs/menu/dom/logic/MenuContainer.js.map +1 -0
- package/cjs/menu/dom/logic/MenuElement.css +86 -0
- package/cjs/menu/dom/logic/MenuElement.d.ts +27 -0
- package/cjs/menu/dom/logic/MenuElement.js +278 -0
- package/cjs/menu/dom/logic/MenuElement.js.map +1 -0
- package/cjs/plugins/chartTypes.d.ts +3 -0
- package/cjs/plugins/chartTypes.js +6 -0
- package/cjs/plugins/chartTypes.js.map +1 -0
- package/cjs/plugins/icons.d.ts +12 -0
- package/cjs/plugins/icons.js +26 -0
- package/cjs/plugins/icons.js.map +1 -0
- package/cjs/plugins/themes.d.ts +4 -0
- package/cjs/plugins/themes.js +6 -0
- package/cjs/plugins/themes.js.map +1 -0
- package/cjs/register.d.ts +5 -0
- package/cjs/register.js +35 -0
- package/cjs/register.js.map +1 -0
- package/cjs/render/layout/arc.d.ts +23 -0
- package/cjs/render/layout/arc.js +20 -0
- package/cjs/render/layout/arc.js.map +1 -0
- package/cjs/render/layout/circle.d.ts +19 -0
- package/cjs/render/layout/circle.js +19 -0
- package/cjs/render/layout/circle.js.map +1 -0
- package/cjs/render/layout/container.d.ts +52 -0
- package/cjs/render/layout/container.js +99 -0
- package/cjs/render/layout/container.js.map +1 -0
- package/cjs/render/layout/direction.d.ts +22 -0
- package/cjs/render/layout/direction.js +35 -0
- package/cjs/render/layout/direction.js.map +1 -0
- package/cjs/render/layout/element.d.ts +47 -0
- package/cjs/render/layout/element.js +27 -0
- package/cjs/render/layout/element.js.map +1 -0
- package/cjs/render/layout/group-element.d.ts +25 -0
- package/cjs/render/layout/group-element.js +52 -0
- package/cjs/render/layout/group-element.js.map +1 -0
- package/cjs/render/layout/icon.d.ts +21 -0
- package/cjs/render/layout/icon.js +48 -0
- package/cjs/render/layout/icon.js.map +1 -0
- package/cjs/render/layout/image.d.ts +21 -0
- package/cjs/render/layout/image.js +20 -0
- package/cjs/render/layout/image.js.map +1 -0
- package/cjs/render/layout/index.d.ts +9 -0
- package/cjs/render/layout/index.js +25 -0
- package/cjs/render/layout/index.js.map +1 -0
- package/cjs/render/layout/line.d.ts +32 -0
- package/cjs/render/layout/line.js +88 -0
- package/cjs/render/layout/line.js.map +1 -0
- package/cjs/render/layout/percent-calc.d.ts +8 -0
- package/cjs/render/layout/percent-calc.js +13 -0
- package/cjs/render/layout/percent-calc.js.map +1 -0
- package/cjs/render/layout/rect.d.ts +22 -0
- package/cjs/render/layout/rect.js +19 -0
- package/cjs/render/layout/rect.js.map +1 -0
- package/cjs/render/layout/text.d.ts +22 -0
- package/cjs/render/layout/text.js +26 -0
- package/cjs/render/layout/text.js.map +1 -0
- package/cjs/scenegraph/component/cell-content.d.ts +36 -0
- package/cjs/scenegraph/component/cell-content.js +100 -0
- package/cjs/scenegraph/component/cell-content.js.map +1 -0
- package/cjs/scenegraph/component/cell-mover.d.ts +15 -0
- package/cjs/scenegraph/component/cell-mover.js +107 -0
- package/cjs/scenegraph/component/cell-mover.js.map +1 -0
- package/cjs/scenegraph/component/custom.d.ts +7 -0
- package/cjs/scenegraph/component/custom.js +212 -0
- package/cjs/scenegraph/component/custom.js.map +1 -0
- package/cjs/scenegraph/component/drill-icon.d.ts +9 -0
- package/cjs/scenegraph/component/drill-icon.js +70 -0
- package/cjs/scenegraph/component/drill-icon.js.map +1 -0
- package/cjs/scenegraph/component/menu.d.ts +41 -0
- package/cjs/scenegraph/component/menu.js +214 -0
- package/cjs/scenegraph/component/menu.js.map +1 -0
- package/cjs/scenegraph/component/table-component.d.ts +37 -0
- package/cjs/scenegraph/component/table-component.js +302 -0
- package/cjs/scenegraph/component/table-component.js.map +1 -0
- package/cjs/scenegraph/component/util.d.ts +2 -0
- package/cjs/scenegraph/component/util.js +11 -0
- package/cjs/scenegraph/component/util.js.map +1 -0
- package/cjs/scenegraph/debug-tool/debug-tool.d.ts +36 -0
- package/cjs/scenegraph/debug-tool/debug-tool.js +138 -0
- package/cjs/scenegraph/debug-tool/debug-tool.js.map +1 -0
- package/cjs/scenegraph/debug-tool/index.d.ts +4 -0
- package/cjs/scenegraph/debug-tool/index.js +14 -0
- package/cjs/scenegraph/debug-tool/index.js.map +1 -0
- package/cjs/scenegraph/graphic/chart.d.ts +30 -0
- package/cjs/scenegraph/graphic/chart.js +66 -0
- package/cjs/scenegraph/graphic/chart.js.map +1 -0
- package/cjs/scenegraph/graphic/contributions/chart-render.d.ts +10 -0
- package/cjs/scenegraph/graphic/contributions/chart-render.js +46 -0
- package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -0
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.d.ts +70 -0
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +195 -0
- package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -0
- package/cjs/scenegraph/graphic/contributions/image-contribution-render.d.ts +20 -0
- package/cjs/scenegraph/graphic/contributions/image-contribution-render.js +46 -0
- package/cjs/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -0
- package/cjs/scenegraph/graphic/contributions/index.d.ts +3 -0
- package/cjs/scenegraph/graphic/contributions/index.js +36 -0
- package/cjs/scenegraph/graphic/contributions/index.js.map +1 -0
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.d.ts +17 -0
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +47 -0
- package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -0
- package/cjs/scenegraph/graphic/group.d.ts +23 -0
- package/cjs/scenegraph/graphic/group.js +94 -0
- package/cjs/scenegraph/graphic/group.js.map +1 -0
- package/cjs/scenegraph/graphic/icon.d.ts +24 -0
- package/cjs/scenegraph/graphic/icon.js +25 -0
- package/cjs/scenegraph/graphic/icon.js.map +1 -0
- package/cjs/scenegraph/graphic/text.d.ts +16 -0
- package/cjs/scenegraph/graphic/text.js +146 -0
- package/cjs/scenegraph/graphic/text.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-helper.d.ts +7 -0
- package/cjs/scenegraph/group-creater/cell-helper.js +84 -0
- package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.d.ts +3 -0
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +78 -0
- package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +7 -0
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js +123 -0
- package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +9 -0
- package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +342 -0
- package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +3 -0
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +163 -0
- package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +5 -0
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js +64 -0
- package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -0
- package/cjs/scenegraph/group-creater/cell-type/video-cell.d.ts +4 -0
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js +100 -0
- package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -0
- package/cjs/scenegraph/group-creater/column-helper.d.ts +24 -0
- package/cjs/scenegraph/group-creater/column-helper.js +136 -0
- package/cjs/scenegraph/group-creater/column-helper.js.map +1 -0
- package/cjs/scenegraph/group-creater/column.d.ts +14 -0
- package/cjs/scenegraph/group-creater/column.js +57 -0
- package/cjs/scenegraph/group-creater/column.js.map +1 -0
- package/cjs/scenegraph/group-creater/progress/proxy.d.ts +45 -0
- package/cjs/scenegraph/group-creater/progress/proxy.js +267 -0
- package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -0
- package/cjs/scenegraph/header-icon/layout.d.ts +3 -0
- package/cjs/scenegraph/header-icon/layout.js +75 -0
- package/cjs/scenegraph/header-icon/layout.js.map +1 -0
- package/cjs/scenegraph/hover-state.d.ts +14 -0
- package/cjs/scenegraph/hover-state.js +27 -0
- package/cjs/scenegraph/hover-state.js.map +1 -0
- package/cjs/scenegraph/layout/auto-height.d.ts +2 -0
- package/cjs/scenegraph/layout/auto-height.js +50 -0
- package/cjs/scenegraph/layout/auto-height.js.map +1 -0
- package/cjs/scenegraph/layout/auto-width.d.ts +2 -0
- package/cjs/scenegraph/layout/auto-width.js +85 -0
- package/cjs/scenegraph/layout/auto-width.js.map +1 -0
- package/cjs/scenegraph/layout/compute-col-width.d.ts +3 -0
- package/cjs/scenegraph/layout/compute-col-width.js +194 -0
- package/cjs/scenegraph/layout/compute-col-width.js.map +1 -0
- package/cjs/scenegraph/layout/move-cell.d.ts +2 -0
- package/cjs/scenegraph/layout/move-cell.js +61 -0
- package/cjs/scenegraph/layout/move-cell.js.map +1 -0
- package/cjs/scenegraph/layout/update-cell.d.ts +3 -0
- package/cjs/scenegraph/layout/update-cell.js +55 -0
- package/cjs/scenegraph/layout/update-cell.js.map +1 -0
- package/cjs/scenegraph/layout/update-height.d.ts +6 -0
- package/cjs/scenegraph/layout/update-height.js +90 -0
- package/cjs/scenegraph/layout/update-height.js.map +1 -0
- package/cjs/scenegraph/layout/update-width.d.ts +2 -0
- package/cjs/scenegraph/layout/update-width.js +103 -0
- package/cjs/scenegraph/layout/update-width.js.map +1 -0
- package/cjs/scenegraph/scenegraph.d.ts +109 -0
- package/cjs/scenegraph/scenegraph.js +798 -0
- package/cjs/scenegraph/scenegraph.js.map +1 -0
- package/cjs/scenegraph/style/frame-border.d.ts +3 -0
- package/cjs/scenegraph/style/frame-border.js +43 -0
- package/cjs/scenegraph/style/frame-border.js.map +1 -0
- package/cjs/scenegraph/utils/border-line.d.ts +8 -0
- package/cjs/scenegraph/utils/border-line.js +51 -0
- package/cjs/scenegraph/utils/border-line.js.map +1 -0
- package/cjs/scenegraph/utils/break-string.d.ts +1 -0
- package/cjs/scenegraph/utils/break-string.js +37 -0
- package/cjs/scenegraph/utils/break-string.js.map +1 -0
- package/cjs/scenegraph/utils/cell-pos.d.ts +4 -0
- package/cjs/scenegraph/utils/cell-pos.js +18 -0
- package/cjs/scenegraph/utils/cell-pos.js.map +1 -0
- package/cjs/scenegraph/utils/font.d.ts +1 -0
- package/cjs/scenegraph/utils/font.js +20 -0
- package/cjs/scenegraph/utils/font.js.map +1 -0
- package/cjs/scenegraph/utils/get-cell-merge.d.ts +3 -0
- package/cjs/scenegraph/utils/get-cell-merge.js +11 -0
- package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -0
- package/cjs/scenegraph/utils/get-prop.d.ts +4 -0
- package/cjs/scenegraph/utils/get-prop.js +44 -0
- package/cjs/scenegraph/utils/get-prop.js.map +1 -0
- package/cjs/scenegraph/utils/icon.d.ts +12 -0
- package/cjs/scenegraph/utils/icon.js +35 -0
- package/cjs/scenegraph/utils/icon.js.map +1 -0
- package/cjs/scenegraph/utils/keep-aspect-ratio.d.ts +4 -0
- package/cjs/scenegraph/utils/keep-aspect-ratio.js +16 -0
- package/cjs/scenegraph/utils/keep-aspect-ratio.js.map +1 -0
- package/cjs/scenegraph/utils/measure-text.d.ts +20 -0
- package/cjs/scenegraph/utils/measure-text.js +111 -0
- package/cjs/scenegraph/utils/measure-text.js.map +1 -0
- package/cjs/scenegraph/utils/padding.d.ts +1 -0
- package/cjs/scenegraph/utils/padding.js +16 -0
- package/cjs/scenegraph/utils/padding.js.map +1 -0
- package/cjs/scenegraph/utils/text-icon-layout.d.ts +9 -0
- package/cjs/scenegraph/utils/text-icon-layout.js +237 -0
- package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -0
- package/cjs/scenegraph/utils/text-pos.d.ts +8 -0
- package/cjs/scenegraph/utils/text-pos.js +27 -0
- package/cjs/scenegraph/utils/text-pos.js.map +1 -0
- package/cjs/state/cell-move/adjust-header.d.ts +3 -0
- package/cjs/state/cell-move/adjust-header.js +20 -0
- package/cjs/state/cell-move/adjust-header.js.map +1 -0
- package/cjs/state/cell-move/index.d.ts +4 -0
- package/cjs/state/cell-move/index.js +60 -0
- package/cjs/state/cell-move/index.js.map +1 -0
- package/cjs/state/common/check-in-select.d.ts +8 -0
- package/cjs/state/common/check-in-select.js +63 -0
- package/cjs/state/common/check-in-select.js.map +1 -0
- package/cjs/state/drill/index.d.ts +2 -0
- package/cjs/state/drill/index.js +15 -0
- package/cjs/state/drill/index.js.map +1 -0
- package/cjs/state/hover/col.d.ts +5 -0
- package/cjs/state/hover/col.js +24 -0
- package/cjs/state/hover/col.js.map +1 -0
- package/cjs/state/hover/is-cell-hover.d.ts +5 -0
- package/cjs/state/hover/is-cell-hover.js +36 -0
- package/cjs/state/hover/is-cell-hover.js.map +1 -0
- package/cjs/state/hover/row.d.ts +5 -0
- package/cjs/state/hover/row.js +22 -0
- package/cjs/state/hover/row.js.map +1 -0
- package/cjs/state/hover/single.d.ts +5 -0
- package/cjs/state/hover/single.js +18 -0
- package/cjs/state/hover/single.js.map +1 -0
- package/cjs/state/hover/update-cell.d.ts +2 -0
- package/cjs/state/hover/update-cell.js +13 -0
- package/cjs/state/hover/update-cell.js.map +1 -0
- package/cjs/state/hover/update-position.d.ts +2 -0
- package/cjs/state/hover/update-position.js +44 -0
- package/cjs/state/hover/update-position.js.map +1 -0
- package/cjs/state/pin/index.d.ts +2 -0
- package/cjs/state/pin/index.js +10 -0
- package/cjs/state/pin/index.js.map +1 -0
- package/cjs/state/select/update-position.d.ts +4 -0
- package/cjs/state/select/update-position.js +111 -0
- package/cjs/state/select/update-position.js.map +1 -0
- package/cjs/state/sort/index.d.ts +2 -0
- package/cjs/state/sort/index.js +41 -0
- package/cjs/state/sort/index.js.map +1 -0
- package/cjs/state/spark-line/index.d.ts +3 -0
- package/cjs/state/spark-line/index.js +98 -0
- package/cjs/state/spark-line/index.js.map +1 -0
- package/cjs/state/state.d.ts +155 -0
- package/cjs/state/state.js +431 -0
- package/cjs/state/state.js.map +1 -0
- package/cjs/themes/ARCO.d.ts +3 -0
- package/cjs/themes/ARCO.js +114 -0
- package/cjs/themes/ARCO.js.map +1 -0
- package/cjs/themes/BRIGHT.d.ts +3 -0
- package/cjs/themes/BRIGHT.js +71 -0
- package/cjs/themes/BRIGHT.js.map +1 -0
- package/cjs/themes/DARK.d.ts +3 -0
- package/cjs/themes/DARK.js +90 -0
- package/cjs/themes/DARK.js.map +1 -0
- package/cjs/themes/DEFAULT.d.ts +3 -0
- package/cjs/themes/DEFAULT.js +89 -0
- package/cjs/themes/DEFAULT.js.map +1 -0
- package/cjs/themes/SIMPLIFY.d.ts +3 -0
- package/cjs/themes/SIMPLIFY.js +46 -0
- package/cjs/themes/SIMPLIFY.js.map +1 -0
- package/cjs/themes/theme.d.ts +34 -0
- package/cjs/themes/theme.js +520 -0
- package/cjs/themes/theme.js.map +1 -0
- package/cjs/themes.d.ts +28 -0
- package/cjs/themes.js +52 -0
- package/cjs/themes.js.map +1 -0
- package/cjs/tools/LimitPromiseQueue.d.ts +8 -0
- package/cjs/tools/LimitPromiseQueue.js +29 -0
- package/cjs/tools/LimitPromiseQueue.js.map +1 -0
- package/cjs/tools/NumberMap.d.ts +16 -0
- package/cjs/tools/NumberMap.js +76 -0
- package/cjs/tools/NumberMap.js.map +1 -0
- package/cjs/tools/Rect.d.ts +24 -0
- package/cjs/tools/Rect.js +69 -0
- package/cjs/tools/Rect.js.map +1 -0
- package/cjs/tools/calc.d.ts +5 -0
- package/cjs/tools/calc.js +197 -0
- package/cjs/tools/calc.js.map +1 -0
- package/cjs/tools/debounce.d.ts +1 -0
- package/cjs/tools/debounce.js +51 -0
- package/cjs/tools/debounce.js.map +1 -0
- package/cjs/tools/dom.d.ts +1 -0
- package/cjs/tools/dom.js +11 -0
- package/cjs/tools/dom.js.map +1 -0
- package/cjs/tools/env.d.ts +19 -0
- package/cjs/tools/env.js +48 -0
- package/cjs/tools/env.js.map +1 -0
- package/cjs/tools/global.d.ts +13 -0
- package/cjs/tools/global.js +12 -0
- package/cjs/tools/global.js.map +1 -0
- package/cjs/tools/helper.d.ts +60 -0
- package/cjs/tools/helper.js +216 -0
- package/cjs/tools/helper.js.map +1 -0
- package/cjs/tools/icons.d.ts +4 -0
- package/cjs/tools/icons.js +10 -0
- package/cjs/tools/icons.js.map +1 -0
- package/cjs/tools/isx.d.ts +16 -0
- package/cjs/tools/isx.js +117 -0
- package/cjs/tools/isx.js.map +1 -0
- package/cjs/tools/sort.d.ts +1 -0
- package/cjs/tools/sort.js +18 -0
- package/cjs/tools/sort.js.map +1 -0
- package/cjs/tools/style.css +60 -0
- package/cjs/tools/style.d.ts +2 -0
- package/cjs/tools/style.js +11 -0
- package/cjs/tools/style.js.map +1 -0
- package/cjs/tools/text-width.d.ts +1 -0
- package/cjs/tools/text-width.js +17 -0
- package/cjs/tools/text-width.js.map +1 -0
- package/cjs/tools/util.d.ts +45 -0
- package/cjs/tools/util.js +299 -0
- package/cjs/tools/util.js.map +1 -0
- package/cjs/tooltip/BaseTooltip.d.ts +22 -0
- package/cjs/tooltip/BaseTooltip.js +35 -0
- package/cjs/tooltip/BaseTooltip.js.map +1 -0
- package/cjs/tooltip/Tooltip.d.ts +5 -0
- package/cjs/tooltip/Tooltip.js +16 -0
- package/cjs/tooltip/Tooltip.js.map +1 -0
- package/cjs/tooltip/TooltipHandler.d.ts +27 -0
- package/cjs/tooltip/TooltipHandler.js +129 -0
- package/cjs/tooltip/TooltipHandler.js.map +1 -0
- package/cjs/tooltip/logic/BubbleTooltipElement.css +63 -0
- package/cjs/tooltip/logic/BubbleTooltipElement.d.ts +33 -0
- package/cjs/tooltip/logic/BubbleTooltipElement.js +152 -0
- package/cjs/tooltip/logic/BubbleTooltipElement.js.map +1 -0
- package/cjs/ts-types/base-table.d.ts +313 -0
- package/cjs/ts-types/base-table.js +6 -0
- package/cjs/ts-types/base-table.js.map +1 -0
- package/cjs/ts-types/chartType.d.ts +53 -0
- package/cjs/ts-types/chartType.js +6 -0
- package/cjs/ts-types/chartType.js.map +1 -0
- package/cjs/ts-types/column/index.d.ts +2 -0
- package/cjs/ts-types/column/index.js +21 -0
- package/cjs/ts-types/column/index.js.map +1 -0
- package/cjs/ts-types/column/style.d.ts +78 -0
- package/cjs/ts-types/column/style.js +6 -0
- package/cjs/ts-types/column/style.js.map +1 -0
- package/cjs/ts-types/column/type.d.ts +2 -0
- package/cjs/ts-types/column/type.js +6 -0
- package/cjs/ts-types/column/type.js.map +1 -0
- package/cjs/ts-types/common.d.ts +72 -0
- package/cjs/ts-types/common.js +6 -0
- package/cjs/ts-types/common.js.map +1 -0
- package/cjs/ts-types/customElement.d.ts +111 -0
- package/cjs/ts-types/customElement.js +6 -0
- package/cjs/ts-types/customElement.js.map +1 -0
- package/cjs/ts-types/customLayout.d.ts +8 -0
- package/cjs/ts-types/customLayout.js +6 -0
- package/cjs/ts-types/customLayout.js.map +1 -0
- package/cjs/ts-types/events.d.ts +182 -0
- package/cjs/ts-types/events.js +6 -0
- package/cjs/ts-types/events.js.map +1 -0
- package/cjs/ts-types/icon.d.ts +86 -0
- package/cjs/ts-types/icon.js +26 -0
- package/cjs/ts-types/icon.js.map +1 -0
- package/cjs/ts-types/index.d.ts +15 -0
- package/cjs/ts-types/index.js +28 -0
- package/cjs/ts-types/index.js.map +1 -0
- package/cjs/ts-types/list-table/define/basic-define.d.ts +36 -0
- package/cjs/ts-types/list-table/define/basic-define.js +6 -0
- package/cjs/ts-types/list-table/define/basic-define.js.map +1 -0
- package/cjs/ts-types/list-table/define/chart-define.d.ts +10 -0
- package/cjs/ts-types/list-table/define/chart-define.js +6 -0
- package/cjs/ts-types/list-table/define/chart-define.js.map +1 -0
- package/cjs/ts-types/list-table/define/image-define.d.ts +15 -0
- package/cjs/ts-types/list-table/define/image-define.js +6 -0
- package/cjs/ts-types/list-table/define/image-define.js.map +1 -0
- package/cjs/ts-types/list-table/define/index.d.ts +21 -0
- package/cjs/ts-types/list-table/define/index.js +6 -0
- package/cjs/ts-types/list-table/define/index.js.map +1 -0
- package/cjs/ts-types/list-table/define/link-define.d.ts +17 -0
- package/cjs/ts-types/list-table/define/link-define.js +6 -0
- package/cjs/ts-types/list-table/define/link-define.js.map +1 -0
- package/cjs/ts-types/list-table/define/multilinetext-define.d.ts +12 -0
- package/cjs/ts-types/list-table/define/multilinetext-define.js +6 -0
- package/cjs/ts-types/list-table/define/multilinetext-define.js.map +1 -0
- package/cjs/ts-types/list-table/define/progressbar-define.d.ts +11 -0
- package/cjs/ts-types/list-table/define/progressbar-define.js +6 -0
- package/cjs/ts-types/list-table/define/progressbar-define.js.map +1 -0
- package/cjs/ts-types/list-table/define/sparkline-define.d.ts +10 -0
- package/cjs/ts-types/list-table/define/sparkline-define.js +6 -0
- package/cjs/ts-types/list-table/define/sparkline-define.js.map +1 -0
- package/cjs/ts-types/list-table/index.d.ts +2 -0
- package/cjs/ts-types/list-table/index.js +21 -0
- package/cjs/ts-types/list-table/index.js.map +1 -0
- package/cjs/ts-types/list-table/layout-map/api.d.ts +92 -0
- package/cjs/ts-types/list-table/layout-map/api.js +6 -0
- package/cjs/ts-types/list-table/layout-map/api.js.map +1 -0
- package/cjs/ts-types/list-table/layout-map/index.d.ts +1 -0
- package/cjs/ts-types/list-table/layout-map/index.js +6 -0
- package/cjs/ts-types/list-table/layout-map/index.js.map +1 -0
- package/cjs/ts-types/menu.d.ts +73 -0
- package/cjs/ts-types/menu.js +6 -0
- package/cjs/ts-types/menu.js.map +1 -0
- package/cjs/ts-types/new-data-set.d.ts +95 -0
- package/cjs/ts-types/new-data-set.js +14 -0
- package/cjs/ts-types/new-data-set.js.map +1 -0
- package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +6 -0
- package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +13 -0
- package/cjs/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -0
- package/cjs/ts-types/pivot-table/corner.d.ts +19 -0
- package/cjs/ts-types/pivot-table/corner.js +6 -0
- package/cjs/ts-types/pivot-table/corner.js.map +1 -0
- package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +25 -0
- package/cjs/ts-types/pivot-table/dimension/basic-dimension.js +6 -0
- package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -0
- package/cjs/ts-types/pivot-table/dimension/image-dimension.d.ts +9 -0
- package/cjs/ts-types/pivot-table/dimension/image-dimension.js +6 -0
- package/cjs/ts-types/pivot-table/dimension/image-dimension.js.map +1 -0
- package/cjs/ts-types/pivot-table/dimension/index.d.ts +4 -0
- package/cjs/ts-types/pivot-table/dimension/index.js +6 -0
- package/cjs/ts-types/pivot-table/dimension/index.js.map +1 -0
- package/cjs/ts-types/pivot-table/dimension/link-dimension.d.ts +10 -0
- package/cjs/ts-types/pivot-table/dimension/link-dimension.js +6 -0
- package/cjs/ts-types/pivot-table/dimension/link-dimension.js.map +1 -0
- package/cjs/ts-types/pivot-table/dimension/multilinetext-dimension.d.ts +7 -0
- package/cjs/ts-types/pivot-table/dimension/multilinetext-dimension.js +6 -0
- package/cjs/ts-types/pivot-table/dimension/multilinetext-dimension.js.map +1 -0
- package/cjs/ts-types/pivot-table/index.d.ts +4 -0
- package/cjs/ts-types/pivot-table/index.js +22 -0
- package/cjs/ts-types/pivot-table/index.js.map +1 -0
- package/cjs/ts-types/pivot-table/indicator/basic-indicator.d.ts +26 -0
- package/cjs/ts-types/pivot-table/indicator/basic-indicator.js +6 -0
- package/cjs/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -0
- package/cjs/ts-types/pivot-table/indicator/chart-indicator.d.ts +10 -0
- package/cjs/ts-types/pivot-table/indicator/chart-indicator.js +6 -0
- package/cjs/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -0
- package/cjs/ts-types/pivot-table/indicator/image-indicator.d.ts +15 -0
- package/cjs/ts-types/pivot-table/indicator/image-indicator.js +6 -0
- package/cjs/ts-types/pivot-table/indicator/image-indicator.js.map +1 -0
- package/cjs/ts-types/pivot-table/indicator/index.d.ts +10 -0
- package/cjs/ts-types/pivot-table/indicator/index.js +6 -0
- package/cjs/ts-types/pivot-table/indicator/index.js.map +1 -0
- package/cjs/ts-types/pivot-table/indicator/link-indicator.d.ts +17 -0
- package/cjs/ts-types/pivot-table/indicator/link-indicator.js +6 -0
- package/cjs/ts-types/pivot-table/indicator/link-indicator.js.map +1 -0
- package/cjs/ts-types/pivot-table/indicator/multilinetext-indicator.d.ts +11 -0
- package/cjs/ts-types/pivot-table/indicator/multilinetext-indicator.js +6 -0
- package/cjs/ts-types/pivot-table/indicator/multilinetext-indicator.js.map +1 -0
- package/cjs/ts-types/pivot-table/indicator/progress-indicator.d.ts +11 -0
- package/cjs/ts-types/pivot-table/indicator/progress-indicator.js +6 -0
- package/cjs/ts-types/pivot-table/indicator/progress-indicator.js.map +1 -0
- package/cjs/ts-types/pivot-table/indicator/sparkline-indicator.d.ts +10 -0
- package/cjs/ts-types/pivot-table/indicator/sparkline-indicator.js +6 -0
- package/cjs/ts-types/pivot-table/indicator/sparkline-indicator.js.map +1 -0
- package/cjs/ts-types/pivot-table/title.d.ts +18 -0
- package/cjs/ts-types/pivot-table/title.js +6 -0
- package/cjs/ts-types/pivot-table/title.js.map +1 -0
- package/cjs/ts-types/style-define.d.ts +60 -0
- package/cjs/ts-types/style-define.js +6 -0
- package/cjs/ts-types/style-define.js.map +1 -0
- package/cjs/ts-types/table-engine.d.ts +169 -0
- package/cjs/ts-types/table-engine.js +12 -0
- package/cjs/ts-types/table-engine.js.map +1 -0
- package/cjs/ts-types/theme.d.ts +88 -0
- package/cjs/ts-types/theme.js +6 -0
- package/cjs/ts-types/theme.js.map +1 -0
- package/cjs/ts-types/tooltip.d.ts +22 -0
- package/cjs/ts-types/tooltip.js +6 -0
- package/cjs/ts-types/tooltip.js.map +1 -0
- package/dist/vtable.js +72964 -0
- package/dist/vtable.min.js +17 -0
- package/es/ListTable.d.ts +38 -0
- package/es/ListTable.js +256 -0
- package/es/ListTable.js.map +1 -0
- package/es/PivotTable.d.ts +50 -0
- package/es/PivotTable.js +282 -0
- package/es/PivotTable.js.map +1 -0
- package/es/body-helper/body-helper.d.ts +14 -0
- package/es/body-helper/body-helper.js +80 -0
- package/es/body-helper/body-helper.js.map +1 -0
- package/es/body-helper/style/ImageStyle.d.ts +7 -0
- package/es/body-helper/style/ImageStyle.js +16 -0
- package/es/body-helper/style/ImageStyle.js.map +1 -0
- package/es/body-helper/style/MultilineTextStyle.d.ts +13 -0
- package/es/body-helper/style/MultilineTextStyle.js +30 -0
- package/es/body-helper/style/MultilineTextStyle.js.map +1 -0
- package/es/body-helper/style/NumberStyle.d.ts +7 -0
- package/es/body-helper/style/NumberStyle.js +16 -0
- package/es/body-helper/style/NumberStyle.js.map +1 -0
- package/es/body-helper/style/ProgressBarStyle.d.ts +52 -0
- package/es/body-helper/style/ProgressBarStyle.js +118 -0
- package/es/body-helper/style/ProgressBarStyle.js.map +1 -0
- package/es/body-helper/style/Style.d.ts +85 -0
- package/es/body-helper/style/Style.js +194 -0
- package/es/body-helper/style/Style.js.map +1 -0
- package/es/body-helper/style.d.ts +10 -0
- package/es/body-helper/style.js +20 -0
- package/es/body-helper/style.js.map +1 -0
- package/es/chartType.d.ts +3 -0
- package/es/chartType.js +10 -0
- package/es/chartType.js.map +1 -0
- package/es/core/BaseTable.d.ts +287 -0
- package/es/core/BaseTable.js +1281 -0
- package/es/core/BaseTable.js.map +1 -0
- package/es/core/FouseInput.d.ts +11 -0
- package/es/core/FouseInput.js +30 -0
- package/es/core/FouseInput.js.map +1 -0
- package/es/core/TABLE_EVENT_TYPE.d.ts +30 -0
- package/es/core/TABLE_EVENT_TYPE.js +30 -0
- package/es/core/TABLE_EVENT_TYPE.js.map +1 -0
- package/es/core/tableHelper.d.ts +28 -0
- package/es/core/tableHelper.js +107 -0
- package/es/core/tableHelper.js.map +1 -0
- package/es/core.d.ts +3 -0
- package/es/core.js +6 -0
- package/es/core.js.map +1 -0
- package/es/data/CachedDataSource.d.ts +16 -0
- package/es/data/CachedDataSource.js +48 -0
- package/es/data/CachedDataSource.js.map +1 -0
- package/es/data/DataSource.d.ts +64 -0
- package/es/data/DataSource.js +267 -0
- package/es/data/DataSource.js.map +1 -0
- package/es/data/FilterDataSource.d.ts +1 -0
- package/es/data/FilterDataSource.js +1 -0
- package/es/data/FilterDataSource.js.map +1 -0
- package/es/data.d.ts +4 -0
- package/es/data.js +6 -0
- package/es/data.js.map +1 -0
- package/es/dataset/DataStatistics.d.ts +10 -0
- package/es/dataset/DataStatistics.js +74 -0
- package/es/dataset/DataStatistics.js.map +1 -0
- package/es/dataset/dataset.d.ts +72 -0
- package/es/dataset/dataset.js +482 -0
- package/es/dataset/dataset.js.map +1 -0
- package/es/dataset/flatDataToObject.d.ts +31 -0
- package/es/dataset/flatDataToObject.js +63 -0
- package/es/dataset/flatDataToObject.js.map +1 -0
- package/es/event/EventHandler.d.ts +45 -0
- package/es/event/EventHandler.js +111 -0
- package/es/event/EventHandler.js.map +1 -0
- package/es/event/EventTarget.d.ts +11 -0
- package/es/event/EventTarget.js +50 -0
- package/es/event/EventTarget.js.map +1 -0
- package/es/event/chart.d.ts +2 -0
- package/es/event/chart.js +16 -0
- package/es/event/chart.js.map +1 -0
- package/es/event/drill.d.ts +3 -0
- package/es/event/drill.js +17 -0
- package/es/event/drill.js.map +1 -0
- package/es/event/event.d.ts +35 -0
- package/es/event/event.js +438 -0
- package/es/event/event.js.map +1 -0
- package/es/event/media-click.d.ts +2 -0
- package/es/event/media-click.js +54 -0
- package/es/event/media-click.js.map +1 -0
- package/es/event/scroll.d.ts +2 -0
- package/es/event/scroll.js +17 -0
- package/es/event/scroll.js.map +1 -0
- package/es/header-helper/header-helper.d.ts +26 -0
- package/es/header-helper/header-helper.js +189 -0
- package/es/header-helper/header-helper.js.map +1 -0
- package/es/header-helper/style/ImageStyle.d.ts +7 -0
- package/es/header-helper/style/ImageStyle.js +17 -0
- package/es/header-helper/style/ImageStyle.js.map +1 -0
- package/es/header-helper/style/MultilineTextHeaderStyle.d.ts +13 -0
- package/es/header-helper/style/MultilineTextHeaderStyle.js +30 -0
- package/es/header-helper/style/MultilineTextHeaderStyle.js.map +1 -0
- package/es/header-helper/style/SortHeaderStyle.d.ts +1 -0
- package/es/header-helper/style/SortHeaderStyle.js +3 -0
- package/es/header-helper/style/SortHeaderStyle.js.map +1 -0
- package/es/header-helper/style/Style.d.ts +88 -0
- package/es/header-helper/style/Style.js +202 -0
- package/es/header-helper/style/Style.js.map +1 -0
- package/es/header-helper/style.d.ts +5 -0
- package/es/header-helper/style.js +14 -0
- package/es/header-helper/style.js.map +1 -0
- package/es/icons.d.ts +4 -0
- package/es/icons.js +241 -0
- package/es/icons.js.map +1 -0
- package/es/index.d.ts +17 -0
- package/es/index.js +34 -0
- package/es/index.js.map +1 -0
- package/es/layout/index.d.ts +1 -0
- package/es/layout/index.js +2 -0
- package/es/layout/index.js.map +1 -0
- package/es/layout/pivot-header-layout.d.ts +155 -0
- package/es/layout/pivot-header-layout.js +888 -0
- package/es/layout/pivot-header-layout.js.map +1 -0
- package/es/layout/pivot-layout.d.ts +86 -0
- package/es/layout/pivot-layout.js +416 -0
- package/es/layout/pivot-layout.js.map +1 -0
- package/es/layout/simple-header-layout.d.ts +67 -0
- package/es/layout/simple-header-layout.js +405 -0
- package/es/layout/simple-header-layout.js.map +1 -0
- package/es/menu/dom/BaseMenu.d.ts +15 -0
- package/es/menu/dom/BaseMenu.js +22 -0
- package/es/menu/dom/BaseMenu.js.map +1 -0
- package/es/menu/dom/Menu.d.ts +9 -0
- package/es/menu/dom/Menu.js +18 -0
- package/es/menu/dom/Menu.js.map +1 -0
- package/es/menu/dom/MenuHandler.d.ts +20 -0
- package/es/menu/dom/MenuHandler.js +132 -0
- package/es/menu/dom/MenuHandler.js.map +1 -0
- package/es/menu/dom/logic/MenuContainer.d.ts +22 -0
- package/es/menu/dom/logic/MenuContainer.js +105 -0
- package/es/menu/dom/logic/MenuContainer.js.map +1 -0
- package/es/menu/dom/logic/MenuElement.css +86 -0
- package/es/menu/dom/logic/MenuElement.d.ts +27 -0
- package/es/menu/dom/logic/MenuElement.js +277 -0
- package/es/menu/dom/logic/MenuElement.js.map +1 -0
- package/es/plugins/chartTypes.d.ts +3 -0
- package/es/plugins/chartTypes.js +2 -0
- package/es/plugins/chartTypes.js.map +1 -0
- package/es/plugins/icons.d.ts +12 -0
- package/es/plugins/icons.js +22 -0
- package/es/plugins/icons.js.map +1 -0
- package/es/plugins/themes.d.ts +4 -0
- package/es/plugins/themes.js +2 -0
- package/es/plugins/themes.js.map +1 -0
- package/es/register.d.ts +5 -0
- package/es/register.js +31 -0
- package/es/register.js.map +1 -0
- package/es/render/layout/arc.d.ts +23 -0
- package/es/render/layout/arc.js +12 -0
- package/es/render/layout/arc.js.map +1 -0
- package/es/render/layout/circle.d.ts +19 -0
- package/es/render/layout/circle.js +11 -0
- package/es/render/layout/circle.js.map +1 -0
- package/es/render/layout/container.d.ts +52 -0
- package/es/render/layout/container.js +99 -0
- package/es/render/layout/container.js.map +1 -0
- package/es/render/layout/direction.d.ts +22 -0
- package/es/render/layout/direction.js +31 -0
- package/es/render/layout/direction.js.map +1 -0
- package/es/render/layout/element.d.ts +47 -0
- package/es/render/layout/element.js +19 -0
- package/es/render/layout/element.js.map +1 -0
- package/es/render/layout/group-element.d.ts +25 -0
- package/es/render/layout/group-element.js +46 -0
- package/es/render/layout/group-element.js.map +1 -0
- package/es/render/layout/icon.d.ts +21 -0
- package/es/render/layout/icon.js +19 -0
- package/es/render/layout/icon.js.map +1 -0
- package/es/render/layout/image.d.ts +21 -0
- package/es/render/layout/image.js +12 -0
- package/es/render/layout/image.js.map +1 -0
- package/es/render/layout/index.d.ts +9 -0
- package/es/render/layout/index.js +18 -0
- package/es/render/layout/index.js.map +1 -0
- package/es/render/layout/line.d.ts +32 -0
- package/es/render/layout/line.js +80 -0
- package/es/render/layout/line.js.map +1 -0
- package/es/render/layout/percent-calc.d.ts +8 -0
- package/es/render/layout/percent-calc.js +7 -0
- package/es/render/layout/percent-calc.js.map +1 -0
- package/es/render/layout/rect.d.ts +22 -0
- package/es/render/layout/rect.js +11 -0
- package/es/render/layout/rect.js.map +1 -0
- package/es/render/layout/text.d.ts +22 -0
- package/es/render/layout/text.js +18 -0
- package/es/render/layout/text.js.map +1 -0
- package/es/scenegraph/component/cell-content.d.ts +36 -0
- package/es/scenegraph/component/cell-content.js +98 -0
- package/es/scenegraph/component/cell-content.js.map +1 -0
- package/es/scenegraph/component/cell-mover.d.ts +15 -0
- package/es/scenegraph/component/cell-mover.js +101 -0
- package/es/scenegraph/component/cell-mover.js.map +1 -0
- package/es/scenegraph/component/custom.d.ts +7 -0
- package/es/scenegraph/component/custom.js +211 -0
- package/es/scenegraph/component/custom.js.map +1 -0
- package/es/scenegraph/component/drill-icon.d.ts +9 -0
- package/es/scenegraph/component/drill-icon.js +41 -0
- package/es/scenegraph/component/drill-icon.js.map +1 -0
- package/es/scenegraph/component/menu.d.ts +41 -0
- package/es/scenegraph/component/menu.js +212 -0
- package/es/scenegraph/component/menu.js.map +1 -0
- package/es/scenegraph/component/table-component.d.ts +37 -0
- package/es/scenegraph/component/table-component.js +304 -0
- package/es/scenegraph/component/table-component.js.map +1 -0
- package/es/scenegraph/component/util.d.ts +2 -0
- package/es/scenegraph/component/util.js +5 -0
- package/es/scenegraph/component/util.js.map +1 -0
- package/es/scenegraph/debug-tool/debug-tool.d.ts +36 -0
- package/es/scenegraph/debug-tool/debug-tool.js +126 -0
- package/es/scenegraph/debug-tool/debug-tool.js.map +1 -0
- package/es/scenegraph/debug-tool/index.d.ts +4 -0
- package/es/scenegraph/debug-tool/index.js +6 -0
- package/es/scenegraph/debug-tool/index.js.map +1 -0
- package/es/scenegraph/graphic/chart.d.ts +30 -0
- package/es/scenegraph/graphic/chart.js +59 -0
- package/es/scenegraph/graphic/chart.js.map +1 -0
- package/es/scenegraph/graphic/contributions/chart-render.d.ts +10 -0
- package/es/scenegraph/graphic/contributions/chart-render.js +47 -0
- package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -0
- package/es/scenegraph/graphic/contributions/group-contribution-render.d.ts +70 -0
- package/es/scenegraph/graphic/contributions/group-contribution-render.js +192 -0
- package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -0
- package/es/scenegraph/graphic/contributions/image-contribution-render.d.ts +20 -0
- package/es/scenegraph/graphic/contributions/image-contribution-render.js +42 -0
- package/es/scenegraph/graphic/contributions/image-contribution-render.js.map +1 -0
- package/es/scenegraph/graphic/contributions/index.d.ts +3 -0
- package/es/scenegraph/graphic/contributions/index.js +29 -0
- package/es/scenegraph/graphic/contributions/index.js.map +1 -0
- package/es/scenegraph/graphic/contributions/rect-contribution-render.d.ts +17 -0
- package/es/scenegraph/graphic/contributions/rect-contribution-render.js +45 -0
- package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -0
- package/es/scenegraph/graphic/group.d.ts +23 -0
- package/es/scenegraph/graphic/group.js +86 -0
- package/es/scenegraph/graphic/group.js.map +1 -0
- package/es/scenegraph/graphic/icon.d.ts +24 -0
- package/es/scenegraph/graphic/icon.js +17 -0
- package/es/scenegraph/graphic/icon.js.map +1 -0
- package/es/scenegraph/graphic/text.d.ts +16 -0
- package/es/scenegraph/graphic/text.js +142 -0
- package/es/scenegraph/graphic/text.js.map +1 -0
- package/es/scenegraph/group-creater/cell-helper.d.ts +7 -0
- package/es/scenegraph/group-creater/cell-helper.js +93 -0
- package/es/scenegraph/group-creater/cell-helper.js.map +1 -0
- package/es/scenegraph/group-creater/cell-type/chart-cell.d.ts +3 -0
- package/es/scenegraph/group-creater/cell-type/chart-cell.js +54 -0
- package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -0
- package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +7 -0
- package/es/scenegraph/group-creater/cell-type/image-cell.js +102 -0
- package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -0
- package/es/scenegraph/group-creater/cell-type/progress-bar-cell.d.ts +9 -0
- package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +337 -0
- package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -0
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.d.ts +3 -0
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +165 -0
- package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -0
- package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +5 -0
- package/es/scenegraph/group-creater/cell-type/text-cell.js +66 -0
- package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -0
- package/es/scenegraph/group-creater/cell-type/video-cell.d.ts +4 -0
- package/es/scenegraph/group-creater/cell-type/video-cell.js +86 -0
- package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -0
- package/es/scenegraph/group-creater/column-helper.d.ts +24 -0
- package/es/scenegraph/group-creater/column-helper.js +135 -0
- package/es/scenegraph/group-creater/column-helper.js.map +1 -0
- package/es/scenegraph/group-creater/column.d.ts +14 -0
- package/es/scenegraph/group-creater/column.js +49 -0
- package/es/scenegraph/group-creater/column.js.map +1 -0
- package/es/scenegraph/group-creater/progress/proxy.d.ts +45 -0
- package/es/scenegraph/group-creater/progress/proxy.js +268 -0
- package/es/scenegraph/group-creater/progress/proxy.js.map +1 -0
- package/es/scenegraph/header-icon/layout.d.ts +3 -0
- package/es/scenegraph/header-icon/layout.js +69 -0
- package/es/scenegraph/header-icon/layout.js.map +1 -0
- package/es/scenegraph/hover-state.d.ts +14 -0
- package/es/scenegraph/hover-state.js +19 -0
- package/es/scenegraph/hover-state.js.map +1 -0
- package/es/scenegraph/layout/auto-height.d.ts +2 -0
- package/es/scenegraph/layout/auto-height.js +44 -0
- package/es/scenegraph/layout/auto-height.js.map +1 -0
- package/es/scenegraph/layout/auto-width.d.ts +2 -0
- package/es/scenegraph/layout/auto-width.js +82 -0
- package/es/scenegraph/layout/auto-width.js.map +1 -0
- package/es/scenegraph/layout/compute-col-width.d.ts +3 -0
- package/es/scenegraph/layout/compute-col-width.js +167 -0
- package/es/scenegraph/layout/compute-col-width.js.map +1 -0
- package/es/scenegraph/layout/move-cell.d.ts +2 -0
- package/es/scenegraph/layout/move-cell.js +55 -0
- package/es/scenegraph/layout/move-cell.js.map +1 -0
- package/es/scenegraph/layout/update-cell.d.ts +3 -0
- package/es/scenegraph/layout/update-cell.js +55 -0
- package/es/scenegraph/layout/update-cell.js.map +1 -0
- package/es/scenegraph/layout/update-height.d.ts +6 -0
- package/es/scenegraph/layout/update-height.js +91 -0
- package/es/scenegraph/layout/update-height.js.map +1 -0
- package/es/scenegraph/layout/update-width.d.ts +2 -0
- package/es/scenegraph/layout/update-width.js +105 -0
- package/es/scenegraph/layout/update-width.js.map +1 -0
- package/es/scenegraph/scenegraph.d.ts +109 -0
- package/es/scenegraph/scenegraph.js +818 -0
- package/es/scenegraph/scenegraph.js.map +1 -0
- package/es/scenegraph/style/frame-border.d.ts +3 -0
- package/es/scenegraph/style/frame-border.js +35 -0
- package/es/scenegraph/style/frame-border.js.map +1 -0
- package/es/scenegraph/utils/border-line.d.ts +8 -0
- package/es/scenegraph/utils/border-line.js +45 -0
- package/es/scenegraph/utils/border-line.js.map +1 -0
- package/es/scenegraph/utils/break-string.d.ts +1 -0
- package/es/scenegraph/utils/break-string.js +31 -0
- package/es/scenegraph/utils/break-string.js.map +1 -0
- package/es/scenegraph/utils/cell-pos.d.ts +4 -0
- package/es/scenegraph/utils/cell-pos.js +12 -0
- package/es/scenegraph/utils/cell-pos.js.map +1 -0
- package/es/scenegraph/utils/font.d.ts +1 -0
- package/es/scenegraph/utils/font.js +6 -0
- package/es/scenegraph/utils/font.js.map +1 -0
- package/es/scenegraph/utils/get-cell-merge.d.ts +3 -0
- package/es/scenegraph/utils/get-cell-merge.js +5 -0
- package/es/scenegraph/utils/get-cell-merge.js.map +1 -0
- package/es/scenegraph/utils/get-prop.d.ts +4 -0
- package/es/scenegraph/utils/get-prop.js +36 -0
- package/es/scenegraph/utils/get-prop.js.map +1 -0
- package/es/scenegraph/utils/icon.d.ts +12 -0
- package/es/scenegraph/utils/icon.js +29 -0
- package/es/scenegraph/utils/icon.js.map +1 -0
- package/es/scenegraph/utils/keep-aspect-ratio.d.ts +4 -0
- package/es/scenegraph/utils/keep-aspect-ratio.js +10 -0
- package/es/scenegraph/utils/keep-aspect-ratio.js.map +1 -0
- package/es/scenegraph/utils/measure-text.d.ts +20 -0
- package/es/scenegraph/utils/measure-text.js +114 -0
- package/es/scenegraph/utils/measure-text.js.map +1 -0
- package/es/scenegraph/utils/padding.d.ts +1 -0
- package/es/scenegraph/utils/padding.js +8 -0
- package/es/scenegraph/utils/padding.js.map +1 -0
- package/es/scenegraph/utils/text-icon-layout.d.ts +9 -0
- package/es/scenegraph/utils/text-icon-layout.js +239 -0
- package/es/scenegraph/utils/text-icon-layout.js.map +1 -0
- package/es/scenegraph/utils/text-pos.d.ts +8 -0
- package/es/scenegraph/utils/text-pos.js +20 -0
- package/es/scenegraph/utils/text-pos.js.map +1 -0
- package/es/state/cell-move/adjust-header.d.ts +3 -0
- package/es/state/cell-move/adjust-header.js +14 -0
- package/es/state/cell-move/adjust-header.js.map +1 -0
- package/es/state/cell-move/index.d.ts +4 -0
- package/es/state/cell-move/index.js +52 -0
- package/es/state/cell-move/index.js.map +1 -0
- package/es/state/common/check-in-select.d.ts +8 -0
- package/es/state/common/check-in-select.js +53 -0
- package/es/state/common/check-in-select.js.map +1 -0
- package/es/state/drill/index.d.ts +2 -0
- package/es/state/drill/index.js +9 -0
- package/es/state/drill/index.js.map +1 -0
- package/es/state/hover/col.d.ts +5 -0
- package/es/state/hover/col.js +16 -0
- package/es/state/hover/col.js.map +1 -0
- package/es/state/hover/is-cell-hover.d.ts +5 -0
- package/es/state/hover/is-cell-hover.js +30 -0
- package/es/state/hover/is-cell-hover.js.map +1 -0
- package/es/state/hover/row.d.ts +5 -0
- package/es/state/hover/row.js +14 -0
- package/es/state/hover/row.js.map +1 -0
- package/es/state/hover/single.d.ts +5 -0
- package/es/state/hover/single.js +10 -0
- package/es/state/hover/single.js.map +1 -0
- package/es/state/hover/update-cell.d.ts +2 -0
- package/es/state/hover/update-cell.js +7 -0
- package/es/state/hover/update-cell.js.map +1 -0
- package/es/state/hover/update-position.d.ts +2 -0
- package/es/state/hover/update-position.js +36 -0
- package/es/state/hover/update-position.js.map +1 -0
- package/es/state/pin/index.d.ts +2 -0
- package/es/state/pin/index.js +4 -0
- package/es/state/pin/index.js.map +1 -0
- package/es/state/select/update-position.d.ts +4 -0
- package/es/state/select/update-position.js +103 -0
- package/es/state/select/update-position.js.map +1 -0
- package/es/state/sort/index.d.ts +2 -0
- package/es/state/sort/index.js +35 -0
- package/es/state/sort/index.js.map +1 -0
- package/es/state/spark-line/index.d.ts +3 -0
- package/es/state/spark-line/index.js +92 -0
- package/es/state/spark-line/index.js.map +1 -0
- package/es/state/state.d.ts +155 -0
- package/es/state/state.js +458 -0
- package/es/state/state.js.map +1 -0
- package/es/themes/ARCO.d.ts +3 -0
- package/es/themes/ARCO.js +110 -0
- package/es/themes/ARCO.js.map +1 -0
- package/es/themes/BRIGHT.d.ts +3 -0
- package/es/themes/BRIGHT.js +67 -0
- package/es/themes/BRIGHT.js.map +1 -0
- package/es/themes/DARK.d.ts +3 -0
- package/es/themes/DARK.js +86 -0
- package/es/themes/DARK.js.map +1 -0
- package/es/themes/DEFAULT.d.ts +3 -0
- package/es/themes/DEFAULT.js +85 -0
- package/es/themes/DEFAULT.js.map +1 -0
- package/es/themes/SIMPLIFY.d.ts +3 -0
- package/es/themes/SIMPLIFY.js +42 -0
- package/es/themes/SIMPLIFY.js.map +1 -0
- package/es/themes/theme.d.ts +34 -0
- package/es/themes/theme.js +505 -0
- package/es/themes/theme.js.map +1 -0
- package/es/themes.d.ts +28 -0
- package/es/themes.js +62 -0
- package/es/themes.js.map +1 -0
- package/es/tools/LimitPromiseQueue.d.ts +8 -0
- package/es/tools/LimitPromiseQueue.js +21 -0
- package/es/tools/LimitPromiseQueue.js.map +1 -0
- package/es/tools/NumberMap.d.ts +16 -0
- package/es/tools/NumberMap.js +70 -0
- package/es/tools/NumberMap.js.map +1 -0
- package/es/tools/Rect.d.ts +24 -0
- package/es/tools/Rect.js +61 -0
- package/es/tools/Rect.js.map +1 -0
- package/es/tools/calc.d.ts +5 -0
- package/es/tools/calc.js +191 -0
- package/es/tools/calc.js.map +1 -0
- package/es/tools/debounce.d.ts +1 -0
- package/es/tools/debounce.js +43 -0
- package/es/tools/debounce.js.map +1 -0
- package/es/tools/dom.d.ts +1 -0
- package/es/tools/dom.js +5 -0
- package/es/tools/dom.js.map +1 -0
- package/es/tools/env.d.ts +19 -0
- package/es/tools/env.js +42 -0
- package/es/tools/env.js.map +1 -0
- package/es/tools/global.d.ts +13 -0
- package/es/tools/global.js +26 -0
- package/es/tools/global.js.map +1 -0
- package/es/tools/helper.d.ts +60 -0
- package/es/tools/helper.js +216 -0
- package/es/tools/helper.js.map +1 -0
- package/es/tools/icons.d.ts +4 -0
- package/es/tools/icons.js +4 -0
- package/es/tools/icons.js.map +1 -0
- package/es/tools/isx.d.ts +16 -0
- package/es/tools/isx.js +79 -0
- package/es/tools/isx.js.map +1 -0
- package/es/tools/sort.d.ts +1 -0
- package/es/tools/sort.js +12 -0
- package/es/tools/sort.js.map +1 -0
- package/es/tools/style.css +60 -0
- package/es/tools/style.d.ts +2 -0
- package/es/tools/style.js +5 -0
- package/es/tools/style.js.map +1 -0
- package/es/tools/text-width.d.ts +1 -0
- package/es/tools/text-width.js +9 -0
- package/es/tools/text-width.js.map +1 -0
- package/es/tools/util.d.ts +45 -0
- package/es/tools/util.js +250 -0
- package/es/tools/util.js.map +1 -0
- package/es/tooltip/BaseTooltip.d.ts +22 -0
- package/es/tooltip/BaseTooltip.js +27 -0
- package/es/tooltip/BaseTooltip.js.map +1 -0
- package/es/tooltip/Tooltip.d.ts +5 -0
- package/es/tooltip/Tooltip.js +10 -0
- package/es/tooltip/Tooltip.js.map +1 -0
- package/es/tooltip/TooltipHandler.d.ts +27 -0
- package/es/tooltip/TooltipHandler.js +131 -0
- package/es/tooltip/TooltipHandler.js.map +1 -0
- package/es/tooltip/logic/BubbleTooltipElement.css +63 -0
- package/es/tooltip/logic/BubbleTooltipElement.d.ts +33 -0
- package/es/tooltip/logic/BubbleTooltipElement.js +149 -0
- package/es/tooltip/logic/BubbleTooltipElement.js.map +1 -0
- package/es/ts-types/base-table.d.ts +313 -0
- package/es/ts-types/base-table.js +2 -0
- package/es/ts-types/base-table.js.map +1 -0
- package/es/ts-types/chartType.d.ts +53 -0
- package/es/ts-types/chartType.js +2 -0
- package/es/ts-types/chartType.js.map +1 -0
- package/es/ts-types/column/index.d.ts +2 -0
- package/es/ts-types/column/index.js +4 -0
- package/es/ts-types/column/index.js.map +1 -0
- package/es/ts-types/column/style.d.ts +78 -0
- package/es/ts-types/column/style.js +2 -0
- package/es/ts-types/column/style.js.map +1 -0
- package/es/ts-types/column/type.d.ts +2 -0
- package/es/ts-types/column/type.js +2 -0
- package/es/ts-types/column/type.js.map +1 -0
- package/es/ts-types/common.d.ts +72 -0
- package/es/ts-types/common.js +2 -0
- package/es/ts-types/common.js.map +1 -0
- package/es/ts-types/customElement.d.ts +111 -0
- package/es/ts-types/customElement.js +2 -0
- package/es/ts-types/customElement.js.map +1 -0
- package/es/ts-types/customLayout.d.ts +8 -0
- package/es/ts-types/customLayout.js +2 -0
- package/es/ts-types/customLayout.js.map +1 -0
- package/es/ts-types/events.d.ts +182 -0
- package/es/ts-types/events.js +2 -0
- package/es/ts-types/events.js.map +1 -0
- package/es/ts-types/icon.d.ts +86 -0
- package/es/ts-types/icon.js +28 -0
- package/es/ts-types/icon.js.map +1 -0
- package/es/ts-types/index.d.ts +15 -0
- package/es/ts-types/index.js +30 -0
- package/es/ts-types/index.js.map +1 -0
- package/es/ts-types/list-table/define/basic-define.d.ts +36 -0
- package/es/ts-types/list-table/define/basic-define.js +2 -0
- package/es/ts-types/list-table/define/basic-define.js.map +1 -0
- package/es/ts-types/list-table/define/chart-define.d.ts +10 -0
- package/es/ts-types/list-table/define/chart-define.js +2 -0
- package/es/ts-types/list-table/define/chart-define.js.map +1 -0
- package/es/ts-types/list-table/define/image-define.d.ts +15 -0
- package/es/ts-types/list-table/define/image-define.js +2 -0
- package/es/ts-types/list-table/define/image-define.js.map +1 -0
- package/es/ts-types/list-table/define/index.d.ts +21 -0
- package/es/ts-types/list-table/define/index.js +2 -0
- package/es/ts-types/list-table/define/index.js.map +1 -0
- package/es/ts-types/list-table/define/link-define.d.ts +17 -0
- package/es/ts-types/list-table/define/link-define.js +2 -0
- package/es/ts-types/list-table/define/link-define.js.map +1 -0
- package/es/ts-types/list-table/define/multilinetext-define.d.ts +12 -0
- package/es/ts-types/list-table/define/multilinetext-define.js +2 -0
- package/es/ts-types/list-table/define/multilinetext-define.js.map +1 -0
- package/es/ts-types/list-table/define/progressbar-define.d.ts +11 -0
- package/es/ts-types/list-table/define/progressbar-define.js +2 -0
- package/es/ts-types/list-table/define/progressbar-define.js.map +1 -0
- package/es/ts-types/list-table/define/sparkline-define.d.ts +10 -0
- package/es/ts-types/list-table/define/sparkline-define.js +2 -0
- package/es/ts-types/list-table/define/sparkline-define.js.map +1 -0
- package/es/ts-types/list-table/index.d.ts +2 -0
- package/es/ts-types/list-table/index.js +4 -0
- package/es/ts-types/list-table/index.js.map +1 -0
- package/es/ts-types/list-table/layout-map/api.d.ts +92 -0
- package/es/ts-types/list-table/layout-map/api.js +2 -0
- package/es/ts-types/list-table/layout-map/api.js.map +1 -0
- package/es/ts-types/list-table/layout-map/index.d.ts +1 -0
- package/es/ts-types/list-table/layout-map/index.js +2 -0
- package/es/ts-types/list-table/layout-map/index.js.map +1 -0
- package/es/ts-types/menu.d.ts +73 -0
- package/es/ts-types/menu.js +2 -0
- package/es/ts-types/menu.js.map +1 -0
- package/es/ts-types/new-data-set.d.ts +95 -0
- package/es/ts-types/new-data-set.js +13 -0
- package/es/ts-types/new-data-set.js.map +1 -0
- package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.d.ts +6 -0
- package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js +9 -0
- package/es/ts-types/pivot-table/PIVOT_TABLE_EVENT_TYPE.js.map +1 -0
- package/es/ts-types/pivot-table/corner.d.ts +19 -0
- package/es/ts-types/pivot-table/corner.js +2 -0
- package/es/ts-types/pivot-table/corner.js.map +1 -0
- package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +25 -0
- package/es/ts-types/pivot-table/dimension/basic-dimension.js +2 -0
- package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -0
- package/es/ts-types/pivot-table/dimension/image-dimension.d.ts +9 -0
- package/es/ts-types/pivot-table/dimension/image-dimension.js +2 -0
- package/es/ts-types/pivot-table/dimension/image-dimension.js.map +1 -0
- package/es/ts-types/pivot-table/dimension/index.d.ts +4 -0
- package/es/ts-types/pivot-table/dimension/index.js +2 -0
- package/es/ts-types/pivot-table/dimension/index.js.map +1 -0
- package/es/ts-types/pivot-table/dimension/link-dimension.d.ts +10 -0
- package/es/ts-types/pivot-table/dimension/link-dimension.js +2 -0
- package/es/ts-types/pivot-table/dimension/link-dimension.js.map +1 -0
- package/es/ts-types/pivot-table/dimension/multilinetext-dimension.d.ts +7 -0
- package/es/ts-types/pivot-table/dimension/multilinetext-dimension.js +2 -0
- package/es/ts-types/pivot-table/dimension/multilinetext-dimension.js.map +1 -0
- package/es/ts-types/pivot-table/index.d.ts +4 -0
- package/es/ts-types/pivot-table/index.js +8 -0
- package/es/ts-types/pivot-table/index.js.map +1 -0
- package/es/ts-types/pivot-table/indicator/basic-indicator.d.ts +26 -0
- package/es/ts-types/pivot-table/indicator/basic-indicator.js +2 -0
- package/es/ts-types/pivot-table/indicator/basic-indicator.js.map +1 -0
- package/es/ts-types/pivot-table/indicator/chart-indicator.d.ts +10 -0
- package/es/ts-types/pivot-table/indicator/chart-indicator.js +2 -0
- package/es/ts-types/pivot-table/indicator/chart-indicator.js.map +1 -0
- package/es/ts-types/pivot-table/indicator/image-indicator.d.ts +15 -0
- package/es/ts-types/pivot-table/indicator/image-indicator.js +2 -0
- package/es/ts-types/pivot-table/indicator/image-indicator.js.map +1 -0
- package/es/ts-types/pivot-table/indicator/index.d.ts +10 -0
- package/es/ts-types/pivot-table/indicator/index.js +2 -0
- package/es/ts-types/pivot-table/indicator/index.js.map +1 -0
- package/es/ts-types/pivot-table/indicator/link-indicator.d.ts +17 -0
- package/es/ts-types/pivot-table/indicator/link-indicator.js +2 -0
- package/es/ts-types/pivot-table/indicator/link-indicator.js.map +1 -0
- package/es/ts-types/pivot-table/indicator/multilinetext-indicator.d.ts +11 -0
- package/es/ts-types/pivot-table/indicator/multilinetext-indicator.js +2 -0
- package/es/ts-types/pivot-table/indicator/multilinetext-indicator.js.map +1 -0
- package/es/ts-types/pivot-table/indicator/progress-indicator.d.ts +11 -0
- package/es/ts-types/pivot-table/indicator/progress-indicator.js +2 -0
- package/es/ts-types/pivot-table/indicator/progress-indicator.js.map +1 -0
- package/es/ts-types/pivot-table/indicator/sparkline-indicator.d.ts +10 -0
- package/es/ts-types/pivot-table/indicator/sparkline-indicator.js +2 -0
- package/es/ts-types/pivot-table/indicator/sparkline-indicator.js.map +1 -0
- package/es/ts-types/pivot-table/title.d.ts +18 -0
- package/es/ts-types/pivot-table/title.js +2 -0
- package/es/ts-types/pivot-table/title.js.map +1 -0
- package/es/ts-types/style-define.d.ts +60 -0
- package/es/ts-types/style-define.js +2 -0
- package/es/ts-types/style-define.js.map +1 -0
- package/es/ts-types/table-engine.d.ts +169 -0
- package/es/ts-types/table-engine.js +12 -0
- package/es/ts-types/table-engine.js.map +1 -0
- package/es/ts-types/theme.d.ts +88 -0
- package/es/ts-types/theme.js +2 -0
- package/es/ts-types/theme.js.map +1 -0
- package/es/ts-types/tooltip.d.ts +22 -0
- package/es/ts-types/tooltip.js +2 -0
- package/es/ts-types/tooltip.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["core/BaseTable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0EAA4D;AAC5D,4EAA8D;AAC9D,8BAA4B;AAC5B,sDAAwC;AAkCxC,4CAA4D;AAE5D,yDAAsD;AACtD,wDAAqD;AACrD,sDAAmD;AACnD,kDAA+C;AAC/C,wCAAqC;AAErC,wCAAmE;AACnE,uDAA+B;AAC/B,sCAAmC;AACnC,yDAAsD;AACtD,0CAA8C;AAC9C,0CAA8C;AAC9C,4DAAwD;AACxD,kEAA8D;AAE9D,8DAA2D;AAI3D,qDAAsD;AACtD,mEAA+D;AAC/D,6EAA0E;AAC1E,2DAAuD;AAGvD,4CAA6C;AAC7C,+CAWuB;AACvB,yDAAsD;AAEtD,6CAA0C;AAC1C,MAAM,EAAE,UAAU,EAAE,GAAG,cAAS,CAAC;AACjC,MAAM,EAAE,YAAY,EAAE,GAAG,cAAK,CAAC;AAC/B,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AACpC,MAAsB,SAAU,SAAQ,yBAAW;IAyBjD,MAAM,KAAK,UAAU;QACnB,OAAO,mCAAgB,CAAC;IAC1B,CAAC;IAqBD,YAAY,UAAuC,EAAE;;QACnD,KAAK,EAAE,CAAC;QA/CV,YAAO,GAAG,IAAI,CAAC;QACf,aAAQ,GAAG,IAAI,CAAC;QAyChB,OAAE,GAAG,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QA4K3B,uBAAkB,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAtK9D,MAAM,EAGJ,cAAc,GAAG,CAAC,EAElB,gBAAgB,GAAG,EAAE,EACrB,sBAAsB,EACtB,eAAe,GAAG,EAAE,EACpB,qBAAqB,EACrB,SAAS,GAAG,UAAU,EACtB,eAAe,EACf,aAAa,EAEb,gBAAgB,EAChB,cAAc,EAGd,OAAO,EACP,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EAAE,KAAK,EACb,YAAY,EACZ,UAAU,GAAG,CAAC,EACf,GAAG,OAAO,CAAC;QACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChD,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnD,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;aACvD;SACF;QAED,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAE5B,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,EAAyB,CAAC,CAAC;QAIvE,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,mBAAmB,KAAK,QAAQ,IAAI,mBAAmB,IAAI,CAAC,EAAE;YACvE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;QAED,aAAa,CAAC,aAAa,GAAG,MAAA,OAAO,CAAC,aAAa,mCAAI,KAAK,CAAC;QAE7D,aAAa,CAAC,OAAO,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC3C,aAAa,CAAC,OAAO,GAAG,IAAA,+BAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,aAAa,CAAC,YAAY,GAAG,IAAI,uBAAU,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAEzE,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;QACtC,aAAa,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAExD,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAE,CAAC;QAE/D,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;QAE9C,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAClD,aAAa,CAAC,sBAAsB,GAAG,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,gBAAgB,CAAC;QAElF,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC;QAChD,aAAa,CAAC,qBAAqB,GAAG,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,eAAe,CAAC;QAE/E,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC;QAEhD,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAClD,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;QAG9C,aAAa,CAAC,cAAc,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC/C,aAAa,CAAC,mBAAmB,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9C,aAAa,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAS,EAAE,CAAC;QACpC,IAAI,CAAC,mBAAmB,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,aAAa,CAAC,gBAAgB,GAAG;YAC/B,CAAC,EAAE,aAAa;YAChB,IAAI,IAAI;;gBACN,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,MAAC,IAAI,CAAC,CAAC,CAAC,OAAe,CAAC,UAAU,mCAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC/F,CAAC;SAIF,CAAC;QAEF,aAAa,CAAC,iBAAiB,GAAG,EAAE,CAAC;QACrC,aAAa,CAAC,YAAY,GAAG,KAAK,CAAC;QAEnC,aAAa,CAAC,KAAK,GAAG,gBAAM,CAAC,EAAE,CAAC,MAAA,OAAO,CAAC,KAAK,mCAAI,gBAAM,CAAC,OAAO,CAAC,CAAC;QAIjE,IAAI,aAAa,EAAE;YAEjB,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;YAC7B,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;aAAM;YACL,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAED,IAAI,CAAC,6BAA6B,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/C,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QAEtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,aAAa,CAAC,KAAK,GAAG,gBAAM,CAAC,EAAE,CAAC,MAAA,OAAO,CAAC,KAAK,mCAAI,gBAAM,CAAC,OAAO,CAAC,CAAC;QACjE,aAAa,CAAC,UAAU,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC;QAChD,aAAa,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,CAAC;QAEpD,aAAa,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAElD,aAAa,CAAC,mBAAmB,GAAG,MAAA,OAAO,CAAC,mBAAmB,mCAAI,aAAa,CAAC,QAAQ,CAAC;QAC1F,aAAa,CAAC,iBAAiB,GAAG,MAAA,OAAO,CAAC,iBAAiB,mCAAI,GAAG,CAAC;QAGnE,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,oBAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,oBAAY,CAAC,IAAI,CAAC,CAAC;QAG3C,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CACnC;YACE,UAAU,EAAE,MAAM;YAClB,yBAAyB,EAAE,KAAK;YAChC,OAAO,EAAE,IAAI;SACd,EACD,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE;YAC/C,aAAa,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACxF;QACD,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAChC;YACE,UAAU,EAAE,MAAM;SACnB,EACD,OAAO,CAAC,IAAI,CACb,CAAC;QACF,KAAK,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,qBAAqB,CAAC;YAChD,IAAI,CAAC,wBAAwB,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,qBAAqB,CAAC,CAAC;QAGrE,KAAK,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,sBAAsB,CAAC;YACjD,CAAC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAElE,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YAC5C,aAAa,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC;SACnD;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;IAClC,CAAC;IAOD,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACpC,CAAC;IAID,UAAU;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACpC,CAAC;IAID,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACnC,CAAC;IAKD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;IACrC,CAAC;IAID,IAAI,QAAQ,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzC,CAAC;IAID,IAAI,QAAQ;;QACV,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,mCAAI,CAAC,CAAC;IAC1C,CAAC;IAID,IAAI,QAAQ,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzC,CAAC;IAID,IAAI,cAAc;;QAChB,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,cAAc,mCAAI,CAAC,CAAC;IAChD,CAAC;IAID,IAAI,cAAc,CAAC,cAAsB;QAEvC,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,cAAc,GAAG,CAAC,CAAC;SACpB;QAED,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;QAE7C,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;YAC5E,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC;IAED,iBAAiB,CAAC,cAAsB;QACtC,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,cAAc,GAAG,CAAC,CAAC;SACpB;QAED,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;QAE7C,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;YAC5E,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC;IAKD,kBAAkB,CAAC,cAAsB;QAEvC,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,cAAc,GAAG,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;IACrD,CAAC;IAID,oBAAoB;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC/B,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;gBACzF,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;aAC5B;iBAAM,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC9D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;aACtD;SACF;IACH,CAAC;IAID,IAAI,cAAc;;QAChB,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,cAAc,mCAAI,CAAC,CAAC;IAChD,CAAC;IAID,IAAI,cAAc,CAAC,cAAsB;QACvC,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;IAErD,CAAC;IAKD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC;IAC7C,CAAC;IAID,IAAI,gBAAgB,CAAC,gBAAwB;QAC3C,IAAI,CAAC,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IACnD,CAAC;IAKD,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC;IACnD,CAAC;IAID,IAAI,sBAAsB,CAAC,sBAAyC;QAClE,IAAI,CAAC,aAAa,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;IAC/D,CAAC;IAID,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;IAC5C,CAAC;IAID,IAAI,eAAe,CAAC,eAAuB;QACzC,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;IACjD,CAAC;IAID,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC;IAClD,CAAC;IAID,IAAI,qBAAqB,CAAC,qBAAwC;QAChE,IAAI,CAAC,aAAa,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;IAC7D,CAAC;IAID,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC1C,CAAC;IAID,IAAI,YAAY,CAAC,YAAwC;QACvD,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,YAAY,CAAC;IAClD,CAAC;IAID,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC;IACjD,CAAC;IAID,IAAI,mBAAmB,CAAC,mBAA+C;QACrE,IAAI,CAAC,aAAa,CAAC,oBAAoB,GAAG,mBAAmB,CAAC;IAChE,CAAC;IAID,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC;IAC/C,CAAC;IAID,IAAI,kBAAkB,CAAC,kBAAuC;QAC5D,IAAI,CAAC,aAAa,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAC7D,CAAC;IAID,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;IAChD,CAAC;IAID,IAAI,mBAAmB,CAAC,mBAAwC;QAC9D,IAAI,CAAC,aAAa,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IAC/D,CAAC;IAID,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;IAC3C,CAAC;IAID,IAAI,aAAa,CAAC,aAAgC;QAChD,IAAI,CAAC,aAAa,CAAC,cAAc,GAAG,aAAa,CAAC;IACpD,CAAC;IAID,IAAI,cAAc;QAOhB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;IAC5C,CAAC;IAID,IAAI,cAAc,CAAC,cAMlB;QACC,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,cAAc,CAAC;IACtD,CAAC;IACD,IAAI,eAAe;;QACjB,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,eAAe,mCAAI,IAAI,CAAC;IACpD,CAAC;IACD,IAAI,eAAe,CAAC,eAA4C;QAC9D,IAAI,CAAC,aAAa,CAAC,eAAe,GAAG,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,SAAS,CAAC;IACpE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,SAAS,CAAC,SAAuB;QACnC,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;YACjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;SAC7B;IACH,CAAC;IAQO,wBAAwB,CAAC,KAAsB;QACrD,IAAI,IAAA,0BAAY,EAAC,KAAK,CAAC,EAAE;YACvB,OAAO,IAAA,wBAAU,EAAC,IAAI,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;SAC5D;QACD,OAAO,IAAA,wBAAU,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAOO,0BAA0B;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC3D,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAE5C,IAAI,IAAA,0BAAY,EAAC,GAAG,CAAC,EAAE;gBACrB,IAAI,MAAM,EAAE;oBACV,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC7B,IAAI,MAAM,CAAC,GAAG,EAAE;wBACd,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC;qBACtB;iBACF;gBACD,SAAS,EAAE,CAAC;aACb;iBAAM;gBACL,IAAI,IAAI,GAAG,GAAG,CAAC;gBACf,IAAI,MAAM,EAAE;oBACV,MAAM,QAAQ,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACxC,MAAM,QAAQ,GAAG,IAAA,kCAAoB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBACxD,IAAI,QAAQ,KAAK,QAAQ,EAAE;wBACzB,IAAI,GAAG,GAAG,QAAQ,IAAI,CAAC;qBACxB;oBACD,MAAM,IAAI,QAAQ,CAAC;iBACpB;gBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACnB;YACD,IAAI,MAAM,GAAG,SAAS,EAAE;gBACtB,OAAO,KAAK,CAAC;aACd;SACF;QACD,IAAI,eAAe,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;YAC3C,MAAM,MAAM,GACV,CAAC,SAAS,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,QAAQ,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9G,SAAS,CAAC;YACZ,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC/B,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE;oBACrC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC3B,SAAS,EAAE,CAAC;iBACb;qBAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,EAAE;oBAC5C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC3B,SAAS,EAAE,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;YACH,IAAI,SAAS,IAAI,CAAC,EAAE;gBAClB,OAAO,GAAG,MAAM,IAAI,CAAC;aACtB;SACF;QACD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACjB,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;oBACzB,GAAG,IAAI,CAAC,CAAC;iBACV;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YACzB,OAAO,iBAAiB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,SAAS,GAAG,CAAC;SACjE;QACD,OAAO,GAAG,GAAG,GAAG,SAAS,GAAG,CAAC;IAC/B,CAAC;IAQO,kBAAkB,CAAC,GAAW;QAMpC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QAED,MAAM,MAAM,GAKR,EAAE,CAAC;QAEP,IAAI,KAAK,CAAC,GAAG,EAAE;YACb,MAAM,CAAC,GAAG,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;SAC3B;QACD,IAAI,KAAK,CAAC,GAAG,EAAE;YACb,MAAM,CAAC,GAAG,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;SAC3B;QACD,OAAO,MAAe,CAAC;IACzB,CAAC;IAEO,eAAe,CAAC,GAAW,EAAE,QAAgB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAA,kCAAoB,EAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAMD,aAAa,CAAC,UAAkB;IAEhC,CAAC;IAKD,WAAW;;QAET,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEzB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,IAAI,SAAG,CAAC,IAAI,KAAK,SAAS,EAAE;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAElC,MAAM,MAAM,GAAG,MAAA,MAAA,OAAO,CAAC,aAAa,0CAAE,WAAW,mCAAI,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,MAAA,MAAA,OAAO,CAAC,aAAa,0CAAE,YAAY,mCAAI,CAAC,GAAG,CAAC,CAAC;YAE7D,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC;YACxF,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC;YAE3F,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;YAEzB,MAAM,GAAG,MAAA,MAAA,MAAM,CAAC,aAAa,0CAAE,WAAW,mCAAI,CAAC,GAAG,CAAC,CAAC;YACpD,OAAO,GAAG,MAAA,MAAA,MAAM,CAAC,aAAa,0CAAE,YAAY,mCAAI,CAAC,GAAG,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;YACtB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;YAGxB,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,MAAM,IAAI,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC;SACtC;aAAM,IAAI,SAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YAC9B,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SACjC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAEzF,IAAI,MAAA,IAAI,CAAC,aAAa,CAAC,KAAK,0CAAE,UAAU,EAAE;YAExC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAA,MAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,0CAAE,eAAe,mCAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9F,MAAM,YAAY,GAAG,UAAU,CAAC,MAAA,MAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,0CAAE,UAAU,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,IAAI,CAAC,MAAM,GAAG,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,GAAG,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,iBAAiB;gBACpB,KAAK,GAAG,CAAC,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC,CAAC;YAC5G,IAAI,CAAC,kBAAkB;gBACrB,MAAM,GAAG,CAAC,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAA,UAAU,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,YAAY,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC,CAAC;SAC9G;IACH,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAOD,YAAY,CAAC,MAAgB;QAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAOD,YAAY,CAAC,QAAgB,EAAE,MAAc;;QAC3C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAE7C,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;QAC7E,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,EAAE;YAC3D,OAAO,cAAc,CAAC;SACvB;QAGD,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QACtF,IAAI,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,SAAS,EAAE;YACrE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,OAAO,CAAC;YACZ,IAAI,KAAK,EAAE;gBACT,OAAO;oBACL,IAAI,CAAC,SAAS,KAAK,UAAU,IAAK,IAAY,CAAC,SAAS;wBACtD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;wBACf,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1E;iBAAM;gBACL,OAAO,GAAG,CAAC,CAAC;aACb;YACD,MAAM,QAAQ,GAAG,mBAAmB,GAAG,OAAO,CAAC;YAE/C,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAC3D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC7E;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;YAC7C,CAAC;gBACC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;oBACrD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;wBACzC,CAAC,CAAC,MAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC,aAAa,CAAC,eAAe;wBACvE,CAAC,CAAC,IAAI,CAAC,qBAAqB;oBAC9B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;SAC1C;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;;YAEtD,CAAC;gBACC,CAAC,IAAI,CAAC,SAAS,KAAK,UAAU,IAAK,IAAY,CAAC,SAAS;oBACvD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBACf,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC;wBACtD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;4BACzC,CAAC,CAAC,MAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC,aAAa,CAAC,eAAe;4BACvE,CAAC,CAAC,IAAI,CAAC,qBAAqB;wBAC9B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC9B,SAAS;aACV;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC1E,IAAI,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;gBAC9C,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;aAC/C;SACF;QAGD,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;YAChC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACtE;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAMD,YAAY,CAAC,GAAW;;QACtB,OAAO,CACL,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAC3B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC;gBACzD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;oBAC1C,CAAC,CAAC,MAAA,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB;oBACzE,CAAC,CAAC,IAAI,CAAC,sBAAsB;gBAC/B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CACzC,CAAC;IACJ,CAAC;IAMD,YAAY,CAAC,GAAW,EAAE,MAAc,EAAE,UAAoB;QAC5D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;SACpC;IACH,CAAC;IAOD,cAAc,CAAC,QAAgB,EAAE,MAAc,EAAE,SAAiB;;QAChE,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE;YAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAC1B,MAAM,GAAG,EAAE,EACX,IAAI,CAAC,KAAK,CAAC,CAAC,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAC7E,CAAC;SACH;IACH,CAAC;IAOD,aAAa,CAAC,QAAgB,EAAE,MAAc;;QAE5C,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC;QAC/E,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS,EAAE;YAC7D,OAAO,eAAe,CAAC;SACxB;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,IAAI,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,SAAS,EAAE;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,oBAAoB;gBAClB,CAAC,MAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,mCAC7B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;oBAC/D,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;wBAC1C,CAAC,CAAC,MAAA,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,mCAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB;wBAC5E,CAAC,CAAC,IAAI,CAAC,sBAAsB;oBAC/B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAC9C,CAAC;YACF,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;gBAChC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aAC5E;YACD,OAAO,MAAM,CAAC;SACf;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,CAAC;gBACC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBACzB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;wBACrD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC;4BAC1C,CAAC,CAAC,MAAA,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB;4BACvE,CAAC,CAAC,IAAI,CAAC,sBAAsB;wBAC/B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;SAC5C;QACD,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,MAAM,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAOD,iBAAiB,CAAC,GAAW;;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE;YAE3C,OAAO,CAAC,CAAC;SACV;aAAM,IAAI,KAAK,EAAE;YAChB,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;YAClE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;gBAC9C,CAAC,CAAC,MAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC,eAAe;gBACzD,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC;SAChC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAOD,WAAW,CAAC,GAAW;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1C,IACE,CAAC,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;YAC5D,CAAE,IAAY,CAAC,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EACtD;YAGA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;SAC7C;QACD,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;IAMD,WAAW,CAAC,GAAW,EAAE,KAAsB,EAAE,UAAoB,EAAE,eAAyB;QAC9F,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAElF,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;SACnC;QAGD,IAAI,CAAC,eAAe,EAAE;YACpB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACjC;IACH,CAAC;IAMD,uBAAuB,CAAC,GAAY;QAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;SACjC;aAAM;YACL,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,GAAG,EAAE;oBACP,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;wBAC9B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;qBACrC;iBACF;aACF;SACF;IACH,CAAC;IAKD,wBAAwB,CAAC,GAAW;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,GAAG,EAAE;gBACP,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;oBAC9B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;iBACtC;aACF;SACF;IACH,CAAC;IAMD,mBAAmB,CAAC,GAAW;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,mBAAmB,CAAC,GAAW,EAAE,KAAsB;QACrD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAKD,gBAAgB;QACd,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,EAAE;YACpC,OAAO,CAAC,CAAC;SACV;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,CAAC;IACX,CAAC;IAKD,eAAe;QACb,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,EAAE;YACpC,OAAO,CAAC,CAAC;SACV;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IAOD,cAAc,CAAC,GAAW;;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,GAAG,GAAG,MAAA,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,mCAAI,QAAQ,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,GAAG,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC7B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAOD,cAAc,CAAC,GAAW,EAAE,QAAyB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACxE,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC;IACrB,CAAC;IAMD,cAAc,CAAC,GAAW;;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,GAAG,GAAG,MAAA,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAC;QAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,GAAG,GAAG,IAAA,wBAAU,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC7B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAOD,cAAc,CAAC,GAAW,EAAE,QAAyB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACxE,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC;IACrB,CAAC;IAOD,WAAW,CAAC,GAAW,EAAE,GAAW;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEjD,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,EAAE;YACpC,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC;SACjC;QAED,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,EAAE;YACpC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;SAC/B;QACD,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5G,CAAC;IAOD,gBAAgB,CAAC,GAAW,EAAE,GAAW;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5G,CAAC;IAOD,mBAAmB,CAAC,GAAW,EAAE,GAAW;QAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IAMD,wBAAwB,CAAC,KAA8B;QACrD,IAAgB,KAAM,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC,eAAe,CACzB,IAAI,CAAC,YAAY,CACH,KAAM,CAAC,KAAK,CAAC,GAAG,EAChB,KAAM,CAAC,KAAK,CAAC,GAAG,EAChB,KAAM,CAAC,GAAG,CAAC,GAAG,EACd,KAAM,CAAC,GAAG,CAAC,GAAG,CAC3B,CACF,CAAC;SACH;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAe,KAAM,CAAC,GAAG,EAAgB,KAAM,CAAC,GAAG,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC,eAAe,CACzB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAClG,CAAC;IACJ,CAAC;IAMD,+BAA+B,CAAC,KAA8B;QAC5D,IAAI,SAAoB,CAAC;QACzB,IAAgB,KAAM,CAAC,KAAK,EAAE;YAC5B,SAAS,GAAc,KAAK,CAAC;SAC9B;aAAM;YACL,SAAS,GAAG,IAAI,CAAC,YAAY,CAAe,KAAM,CAAC,GAAG,EAAgB,KAAM,CAAC,GAAG,CAAC,CAAC;SACnF;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC;IAMD,gBAAgB,CAAC,eAAqB,EAAE,SAAoB;QAC1D,MAAM,UAAU,GACd,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc;YACxC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9G,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;QAEzB,MAAM,SAAS,GACb,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc;YACxC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9G,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/E,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IASD,YAAY,CAAC,QAAgB,EAAE,QAAgB,EAAE,MAAc,EAAE,MAAc;QAC7E,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE1D,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,GAAG,EAAE;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,YAAY,IAAI,UAAU,CAAC;YAC3B,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;gBAC5C,KAAK,IAAI,UAAU,CAAC;gBACpB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;aAC/E;SACF;QACD,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,GAAG,EAAE;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,WAAW,IAAI,SAAS,CAAC;YACzB,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;gBAC5C,MAAM,IAAI,SAAS,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;aAClF;SACF;QACD,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5G,CAAC;IASD,iBAAiB,CAAC,QAAgB,EAAE,QAAgB,EAAE,MAAc,EAAE,MAAc;QAClF,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChD,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,GAAG,EAAE;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE;gBAC5C,KAAK,IAAI,UAAU,CAAC;gBACpB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;aAC/E;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,gBAAgB,CAAC,KAA8B;QAC7C,IAAgB,KAAM,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC,YAAY,CACV,KAAM,CAAC,KAAK,CAAC,GAAG,EAChB,KAAM,CAAC,KAAK,CAAC,GAAG,EAChB,KAAM,CAAC,GAAG,CAAC,GAAG,EACd,KAAM,CAAC,GAAG,CAAC,GAAG,CAC3B,CAAC;SACH;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAe,KAAM,CAAC,GAAG,EAAgB,KAAM,CAAC,GAAG,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3G,CAAC;IAMD,qBAAqB,CAAC,KAA8B;QAClD,IAAgB,KAAM,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC,iBAAiB,CACf,KAAM,CAAC,KAAK,CAAC,GAAG,EAChB,KAAM,CAAC,KAAK,CAAC,GAAG,EAChB,KAAM,CAAC,GAAG,CAAC,GAAG,EACd,KAAM,CAAC,GAAG,CAAC,GAAG,CAC3B,CAAC;SACH;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAe,KAAM,CAAC,GAAG,EAAgB,KAAM,CAAC,GAAG,CAAC,CAAC;QACxF,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChH,CAAC;IAED,YAAY,CACV,GAAW,EACX,GAAW;QAKX,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9D,MAAM,WAAW,GAAG,cAAc,GAAG,CAAC,IAAI,GAAG,GAAG,cAAc,CAAC;QAC/D,MAAM,WAAW,GAAG,cAAc,GAAG,CAAC,IAAI,GAAG,GAAG,cAAc,CAAC;QAC/D,IAAI,WAAW,IAAI,WAAW,EAAE;YAC9B,OAAO;gBACL,GAAG,EAAE,WAAW;gBAChB,GAAG,EAAE,WAAW;aACjB,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,QAAQ,CAAC,SAAiB;QACxB,MAAM,MAAM,GAAG,IAAA,mCAAqB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC;SACf;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG;gBACJ,GAAG,EAAE,CAAC,CAAC;gBACP,GAAG,EAAE,CAAC,CAAC;gBACP,MAAM,EAAE,CAAC,CAAC;gBACV,MAAM,EAAE,CAAC,CAAC;aACX,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAMD,QAAQ,CAAC,SAAiB;QACxB,MAAM,MAAM,GAAG,IAAA,mCAAqB,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC;SACf;QACD,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG;gBACJ,IAAI,EAAE,CAAC,CAAC;gBACR,GAAG,EAAE,CAAC,CAAC;gBACP,KAAK,EAAE,CAAC,CAAC;gBACT,KAAK,EAAE,CAAC;aACT,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAOD,SAAS,CAAC,SAAiB,EAAE,SAAiB;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC5C,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,KAAK;YACL,GAAG;YACH,MAAM;YACN,KAAK;YACL,MAAM;SACP,CAAC;QACF,OAAO;YACL,GAAG;YACH,GAAG;YACH,IAAI;SACL,CAAC;IACJ,CAAC;IAOD,YAAY,CAAC,GAAW,EAAE,GAAW;QACnC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;YACtE,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAOD,gBAAgB,CAAC,GAAW,EAAE,GAAW;QACvC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACjD,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE;gBACxD,OAAO;aACR;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,IAAA,uCAAyB,EAAC,IAAI,CAAC,CAAC;YACpD,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC9B,OAAO;aACR;YACD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;gBACtC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;iBAGnF;qBAAM,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE;oBACvC,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;iBACjD;qBAAM,IAAI,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;oBACzC,IAAI,CAAC,UAAU,IAAI,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;iBACnD;aACF;YACD,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;gBACtC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;iBAEtF;qBAAM,IAAI,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE;oBACrC,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;iBAC9C;qBAAM,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;oBAC3C,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;iBACpD;aACF;SACF;IACH,CAAC;IAKD,UAAU;QACR,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACrC,CAAC;IAMD,eAAe,CAAC,YAAkB;QAChC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAQD,cAAc;QACZ,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACvC,OAAO,IAAI,WAAI,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAKD,IAAI,eAAe;QACjB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,UAAU,GACd,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;QAErG,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,CAAC;SACV;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;QACrG,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;YACpC,IAAI,WAAW,CAAC,MAAM,GAAG,MAAM,EAAE;gBAC/B,MAAM;aACP;YACD,KAAK,EAAE,CAAC;YACR,WAAW,GAAG,MAAM,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,IAAI,eAAe;QACjB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,WAAW,GACf,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;QAEtG,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,CAAC;SACV;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;QACvG,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,YAAY,GAAG,KAAK,CAAC;YACnC,IAAI,WAAW,CAAC,KAAK,GAAG,KAAK,EAAE;gBAC7B,MAAM;aACP;YACD,KAAK,EAAE,CAAC;YACR,YAAY,GAAG,KAAK,CAAC;SACtB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC;IACjD,CAAC;IACD,IAAI,SAAS,CAAC,SAAiB;QAC7B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACnD,CAAC;IACD,IAAI,UAAU,CAAC,UAAkB;QAC/B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,aAAa,CAAC,GAAW;QACvB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;IACxB,CAAC;IACD,YAAY,CAAC,GAAW;QACtB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACvB,CAAC;IAQD,mBAAmB,CAAC,GAAW,EAAE,GAAW;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAKD,aAAa,CAAC,UAAmC;QAC/C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,UAAU,EAAE;YAClF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;SACpC;QACD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAC5F,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAKD,OAAO;;QACL,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,MAAA,MAAA,aAAa,CAAC,cAAc,0CAAE,OAAO,kDAAI,CAAC;QAC1C,MAAA,MAAA,aAAa,CAAC,WAAW,0CAAE,OAAO,kDAAI,CAAC;QACvC,iBAAS,CAAC,QAAQ,EAAE,CAAC;QAErB,MAAA,KAAK,CAAC,OAAO,oDAAI,CAAC;QAClB,MAAA,MAAA,aAAa,CAAC,OAAO,0CAAE,OAAO,kDAAI,CAAC;QAEnC,MAAA,MAAA,aAAa,CAAC,YAAY,0CAAE,OAAO,kDAAI,CAAC;QACxC,IAAI,aAAa,CAAC,WAAW,EAAE;YAC7B,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,WAAC,OAAA,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,0DAAI,CAAA,EAAA,CAAC,CAAC;YACzE,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;SAClC;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC;QAChD,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAClD;IACH,CAAC;IAED,aAAa,CACX,IAAU,EACV,GAAG,KAA+C;QAElD,OAAO,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;IAC7C,CAAC;IAMD,YAAY,CAAC,OAAoC;;QAC9C,IAAI,CAAC,OAAgC,GAAG,OAAO,CAAC;QACjD,MAAM,EAGJ,cAAc,GAAG,CAAC,EAElB,gBAAgB,GAAG,EAAE,EACrB,sBAAsB,EACtB,eAAe,GAAG,EAAE,EACpB,qBAAqB,GAAG,EAAE,EAC1B,eAAe,EAEf,gBAAgB,EAChB,cAAc,EAEd,OAAO,EACP,mBAAmB,EACnB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EAAE,KAAK,EACb,UAAU,EACV,SAAS,EACV,GAAG,OAAO,CAAC;QACZ,IAAI,UAAU,IAAI,UAAU,KAAK,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAC9D,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,UAAU,CAAC;SAC5C;QAED,IAAI,OAAO,EAAE;YACX,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;gBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;aAC9B;iBAAM;gBACL,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChD,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnD,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;aACvD;SACF;QAWD,IAAI,CAAC,OAAO,GAAG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,IAAI,OAAO,mBAAmB,KAAK,QAAQ,IAAI,mBAAmB,IAAI,CAAC,EAAE;YACvE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,UAAU,CAAC;QAEzC,MAAM,aAAa,GAAwB,IAAI,CAAC,aAAa,CAAC;QAC9D,IAAI,SAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YACvB,IAAA,sCAAwB,EAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC/D;QAGD,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;QAE9C,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAClD,aAAa,CAAC,sBAAsB,GAAG,sBAAsB,aAAtB,sBAAsB,cAAtB,sBAAsB,GAAI,gBAAgB,CAAC;QAClF,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC;QAChD,aAAa,CAAC,qBAAqB,GAAG,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,eAAe,CAAC;QAC/E,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC;QAEhD,aAAa,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAClD,aAAa,CAAC,cAAc,GAAG,cAAc,CAAC;QAE9C,aAAa,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAErC,aAAa,CAAC,KAAK,GAAG,gBAAM,CAAC,EAAE,CAAC,MAAA,OAAO,CAAC,KAAK,mCAAI,gBAAM,CAAC,OAAO,CAAC,CAAC;QAGjE,aAAa,CAAC,aAAa,GAAG,MAAA,OAAO,CAAC,aAAa,mCAAI,KAAK,CAAC;QAE7D,aAAa,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAClD,aAAa,CAAC,mBAAmB,GAAG,MAAA,OAAO,CAAC,mBAAmB,mCAAI,aAAa,CAAC,QAAQ,CAAC;QAC1F,aAAa,CAAC,iBAAiB,GAAG,MAAA,OAAO,CAAC,iBAAiB,mCAAI,GAAG,CAAC;QACnE,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CACnC;YACE,UAAU,EAAE,MAAM;YAClB,yBAAyB,EAAE,KAAK;YAChC,OAAO,EAAE,IAAI;SACd,EACD,OAAO,CAAC,OAAO,CAChB,CAAC;QACF,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;YAChF,aAAa,CAAC,cAAc,GAAG,IAAI,+BAAc,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACxF;QAED,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAChC;YACE,UAAU,EAAE,MAAM;SACnB,EACD,OAAO,CAAC,IAAI,CACb,CAAC;QACF,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAC1E,aAAa,CAAC,WAAW,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC;SACnD;IACH,CAAC;IAKD,mBAAmB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,kBAAkB;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,CAAC;IACX,CAAC;IAMD,YAAY;QAIV,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAG1E,OAAO,IAAI,WAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAKD,sBAAsB,CACpB,GAAwC,EACxC,WAAW,GAAG,IAAI;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,IAAI,CAAqB,CAAC;QAC1B,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,IAAI,CAAC;SACb;QACD,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;YACrB,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SAC3B;aAAM;YACL,CAAC,GAAG,GAAG,CAAC;SACT;QACD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QACtD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QACtD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAChE,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QAC5D,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;QAE9C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,aAAa,CAAC;QAC/D,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,CAAC;QAEjD,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACnG,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAClG,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAClB,CAAC;IACD,oBAAoB,CAClB,CAAM;QAON,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,EAAE,CAAC;SACX;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE;YAChC,OAAO;gBACL,WAAW;gBACX,IAAI;aACL,CAAC;SACH;QACD,MAAM,SAAS,GAAG;YAChB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QACF,OAAO;YACL,WAAW;YACX,IAAI;YACJ,SAAS;SACV,CAAC;IACJ,CAAC;IACD,QAAQ;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAClC,CAAC;IAQD,cAAc,CAAC,SAAiB;QAC9B,IAAI,SAAS,KAAK,CAAC,EAAE;YACnB,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;SAChD;QACD,MAAM,UAAU,GAAG,CACjB,QAAgB,EAChB,UAAkB,EAMX,EAAE;YACT,IAAI,KAAK,GAAG,UAAU,CAAC;YACvB,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;gBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;gBAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC1F,OAAO;wBACL,IAAI;wBACJ,GAAG;wBACH,KAAK;wBACL,KAAK;qBACN,CAAC;iBACH;gBACD,KAAK,GAAG,IAAI,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAChB,QAAgB,EAChB,UAAkB,EAMX,EAAE;YACT,IAAI,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;gBAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC1F,OAAO;wBACL,IAAI;wBACJ,GAAG;wBACH,KAAK;wBACL,KAAK;qBACN,CAAC;iBACH;gBACD,IAAI,GAAG,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,SAAS,IAAI,KAAK,EAAE;YACtB,OAAO,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAClC;QACD,OAAO,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAOD,cAAc,CAAC,SAAiB;QAC9B,IAAI,SAAS,KAAK,CAAC,EAAE;YACnB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;SACjD;QAED,MAAM,UAAU,GAAG,CACjB,QAAgB,EAChB,WAAmB,EAMZ,EAAE;YACT,IAAI,MAAM,GAAG,WAAW,CAAC;YACzB,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE;gBACxC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC;gBAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC1F,OAAO;wBACL,GAAG;wBACH,GAAG;wBACH,MAAM;wBACN,MAAM;qBACP,CAAC;iBACH;gBACD,MAAM,GAAG,GAAG,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAChB,QAAgB,EAChB,WAAmB,EAMZ,EAAE;YACT,IAAI,GAAG,GAAG,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;YACxC,KAAK,IAAI,GAAG,GAAG,QAAQ,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;gBAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC1F,OAAO;wBACL,GAAG;wBACH,GAAG;wBACH,MAAM;wBACN,MAAM;qBACP,CAAC;iBACH;gBACD,GAAG,GAAG,MAAM,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAMF,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,SAAS,IAAI,MAAM,EAAE;YACvB,OAAO,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACnC;QACD,OAAO,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAOO,mBAAmB,CAAC,SAAiB;QAU3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3D,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC/B,OAAO,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EAAE;oBAC5D,MAAM,GAAG,MAAM,CAAC;iBACjB;qBAAM,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EAAE;oBACnE,QAAQ,GAAG,MAAM,CAAC;iBACnB;qBAAM;oBACL,OAAO,MAAM,CAAC;iBACf;aACF;YACD,OAAO,MAAM,CAAC;SAGf;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACjG,CAAC;IAOO,mBAAmB,CAAC,SAAiB;QAE3C,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE;YAC1D,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC/B,OAAO,MAAM,GAAG,QAAQ,GAAG,CAAC,EAAE;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EAAE;oBAC3D,MAAM,GAAG,MAAM,CAAC;iBACjB;qBAAM,IAAI,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,EAAE;oBAClE,QAAQ,GAAG,MAAM,CAAC;iBACnB;qBAAM;oBACL,OAAO,MAAM,CAAC;iBACf;aACF;YACD,OAAO,MAAM,CAAC;SACf;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAChG,CAAC;IAID,aAAa;IAEb,CAAC;IAMD,UAAU,CAAC,GAAW,EAAE,GAAW;IAEnC,CAAC;IA2BD,WAAW,CAAC,GAAe;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;YAC9G,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAEpG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAE7B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IACD,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;IAChD,CAAC;IAKD,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAAC;IAC1D,CAAC;IAID,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,CAAC;IAC7D,CAAC;IAID,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC;IAC5C,CAAC;IAID,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;IACvC,CAAC;IAID,IAAI,UAAU,CAAC,UAAyC;QAEtD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAA,4BAAc,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAID,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IACzC,CAAC;IAID,IAAI,YAAY,CAAC,YAAqB;QACpC,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,KAAK,YAAY,EAAE;YACpD,OAAO;SACR;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;QACzC,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;YAEhC,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAKD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAClC,CAAC;IAID,IAAI,KAAK,CAAC,KAAiB;QACzB,MAAM,CAAC,GAAG,gBAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAM,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAOD,YAAY,CAAC,GAAW,EAAE,GAAW;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IAOD,mBAAmB,CAAC,GAAW,EAAE,GAAW;QAE1C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5D,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC;IACtB,CAAC;IAED,iBAAiB,CAAC,GAAW,EAAE,GAAW;QACxC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC;IACnE,CAAC;IAMD,cAAc,CAAC,GAAW,EAAE,GAAW;QACrC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,iBAAiB,CAAC,GAAW,EAAE,GAAW;QACxC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAOD,eAAe,CAAC,GAAW,EAAE,GAAW;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5D,OAAO,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,MAAM,CAAC;IACpB,CAAC;IACD,WAAW,CAAC,GAAW,EAAE,GAAW;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAChB,CAAC;IAUD,kBAAkB,CAAC,GAAW,EAAE,GAAW;QACzC,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClF,OAAO,eAAe,CAAC;IACzB,CAAC;IAMD,gBAAgB,CAAC,GAAW,EAAE,GAAW;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,OAAO,IAAI,EAAE;YACX,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACtB;iBAAM;gBACL,MAAM;aACP;YAED,GAAG,EAAE,CAAC;SACP;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,mBAAmB,CAAC,GAAW,EAAE,GAAW;QAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IACD,iBAAiB,CAAC,GAAW,EAAE,GAAW;QACxC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;IACpC,CAAC;IAOD,iBAAiB,CAAC,GAAW,EAAE,GAAW;;QACxC,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACnD,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,UAAU,0CAAE,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;IAMD,8BAA8B,CAAC,KAAa;QAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAMD,yBAAyB,CAAC,SAAoB;QAC5C,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,EAAE,CAAC;QACP,IAAI,SAAS,CAAC,QAAQ,EAAE;YACtB,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC;SAC7F;aAAM;YACL,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC;SACvF;QACD,IAAI,EAAE,EAAE;YACN,MAAM,UAAU,GAAG,SAAS,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAY,CAAC,CAAC;YAClE,OAAO,UAAU,CAAC;SACnB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAKD,YAAY,CAAC,GAAW,EAAE,GAAW;QACnC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;IASD,gBAAgB,CAAC,GAAW,EAAE,GAAW,EAAE,SAAiB,EAAE,SAAiB;QAC7E,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACvF,CAAC;IAOD,gBAAgB,CAAC,GAAW,EAAE,GAAW;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC;IAOD,oBAAoB,CAAC,GAAW,EAAE,GAAW;;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,mCAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC;QAChE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;YACrC,MAAM,GAAG,GAAa;gBACpB,GAAG;gBACH,GAAG;gBACH,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;gBAClC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;aAC7C,CAAC;YACF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;SACzB;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAMD,UAAU,CAAC,OAAmB,EAAE,IAA8B;;QAC5D,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAG7B,IAAI,IAAI,KAAK,SAAS,EAAE;YACrB,IAAY,CAAC,SAAS,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,YAAY,CAAE,IAAY,CAAC,SAAsB,CAAC,CAAC;SACtE;QACD,IAAI,OAAO,EAAE;YACX,IAAA,yBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3B,IAAK,IAAY,CAAC,SAAS,EAAE;gBAC3B,IAAI,KAAU,CAAC;gBACf,IAAI,KAAU,CAAC;gBACf,IAAI,QAAa,CAAC;gBAClB,IAAI,KAAK,CAAC,OAAO,CAAE,IAAY,CAAC,SAAS,CAAC,EAAE;oBAC1C,IAAK,IAAY,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;wBACxC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAC,IAAY,CAAC,SAAS,0CAAG,CAAC,CAAC,CAAC,CAAC;qBAC7D;iBACF;qBAAM;oBACL,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAI,IAAY,CAAC,SAAsB,CAAC,CAAC;iBACrE;gBAED,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,QAAQ,EAAE;oBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAE9E,IAAI,EAAE,CAAC;oBACP,IAAI,QAAQ,EAAE;wBACZ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;qBACtG;yBAAM;wBACL,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;qBAChG;oBACD,CAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,MAAM,0CAAE,IAAI,KAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,qBAAc,CAAC,CAAC;iBACvF;aACF;YACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;aAAM;YACL,IAAA,yBAAW,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC5B;QAGD,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QACnC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9G,CAAC;IACD,wBAAwB,CAAC,KAAkC;QACzD,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IACD,wBAAwB,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa;QACpE,OAAO,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IAGD,QAAQ,CAAC,GAAW,EAAE,GAAW;QAC/B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzF,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,GAAW;;QACrC,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,SAAS,0CAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,GAAW;;QAClC,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,SAAS,0CAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,GAAW;;QACrC,OAAO,MAAA,IAAI,CAAC,aAAa,CAAC,SAAS,0CAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,GAAW;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7G,OAAO;YACL,GAAG;YACH,GAAG;YACH,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;YACpC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC1E,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC3B,CAAC,CAAC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;oBACrC,CAAC,CAAC,MAAM,CAAC,UAAU;oBACnB,CAAC,CAAC,aAAa;gBACjB,CAAC,CAAC,MAAM;YACV,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9C,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YACtD,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YAClC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;YACpC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;SAChF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,KAAe,EAAE,GAAW,EAAE,GAAW;QACjD,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,KAAK,GAAG,IAAI,CAAC;QACnB,IAAI,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACpD,OAAO,KAAK,CAAC;SACd;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAOD,aAAa,CAAC,GAAW,EAAE,GAAW;QACpC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE;YACZ,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YAC5D,IAAI,UAAU,EAAE;gBACd,OAAO,UAAU,CAAC;aACnB;YACD,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;YAChF,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACrB,UAAU,GAAoB,mBAAmB,CAAC,EAAE,CAClD,KAAK,EACL,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;gBAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW;gBACxB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;oBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc;oBAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAChC;gBACE,GAAG;gBACH,GAAG;gBACH,KAAK,EAAE,IAAoB;gBAC3B,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;gBAClC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;gBAC5C,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;aACnD,EACD,UAAU,EACV,IAAI,CAAC,OAAO,CAAC,YAAY,CAC1B,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;YACvD,OAAO,UAAU,CAAC;SACnB;QACD,IAAI,QAAQ,CAAC;QAEb,IACE,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAE,IAAY,CAAC,SAAS,CAAC;YAChD,CAAC,IAAI,CAAC,YAAY,EAAE,IAAK,IAAI,CAAC,aAAa,CAAC,SAAkC,CAAC,eAAe,CAAC,EAC/F;YACA,QAAQ,GAAG,GAAG,CAAC;SAChB;aAAM;YACL,QAAQ,GAAG,GAAG,CAAC;SAChB;QACD,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,UAAU,EAAE;YACd,OAAO,UAAU,CAAC;SACnB;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE3C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;QAC5B,UAAU,GAAoB,mBAAmB,CAAC,EAAE,CAClD,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,SAAS,EACpB;YACE,GAAG;YACH,GAAG;YACH,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YAClC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC5C,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;SACnD,EACD,UAAU,EACV,IAAI,CAAC,OAAO,CAAC,YAAY,CAC1B,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC9C,OAAO,UAAU,CAAC;IACpB,CAAC;IAMD,gBAAgB,CAAC,GAAW,EAAE,GAAW;QACvC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE;YACjD,OAAO,KAAK,CAAC;SACd;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,KAAK,MAAM,EAAE;YAClD,OAAO,KAAK,CAAC;SACd;aAAM,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,KAAK,QAAQ,EAAE;YAE3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBAC5B,OAAO,KAAK,CAAC;aACd;SACF;aAAM,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,KAAK,MAAM,EAAE;YAEzD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBAC3B,OAAO,KAAK,CAAC;aACd;SACF;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YACtC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;IACjC,CAAC;IAMD,sBAAsB,CAAC,GAAW,EAAE,GAAW;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEvD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBACjC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;oBAC7C,OAAO,KAAK,CAAC;iBACd;aACF;iBAAM,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;gBACrC,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;oBAC7C,OAAO,KAAK,CAAC;iBACd;aACF;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE;gBACnC,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,KAAK,EAAE;oBAC/C,OAAO,IAAI,CAAC;iBACb;qBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,QAAQ,EAAE;oBACzD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;wBACjC,OAAO,IAAI,CAAC;qBACb;iBACF;qBAAM,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,KAAK,KAAK,EAAE;oBACtD,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;wBAC9B,OAAO,IAAI,CAAC;qBACb;iBACF;gBACD,OAAO,KAAK,CAAC;aACd;YACD,OAAO,MAAM,CAAC,UAAU,CAAC;SAC1B;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,YAAY,CAAC,GAAW,EAAE,GAAW;QACnC,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAC3B,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC5D;aAAM;YACL,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YACvC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;SACrF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAGD,gBAAgB,CAAC,GAAW,EAAE,GAAW,EAAE,mBAAyC;QAClF,IAAI,QAAQ,GAAqB,eAAe,CAAC;QACjD,IAAI,mBAAmB,EAAE;YACvB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;SACvF;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,KAAK,MAAM,EAAE;YACjD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;SACrF;IAEH,CAAC;IAED,WAAW,CAAC,GAAW,EAAE,GAAW,EAAE,cAA+B;QAEnE,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE;YACpD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;SACzE;IACH,CAAC;IAMD,YAAY,CAAC,GAAW,EAAE,GAAW;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE9C,MAAM,KAAK,GAAG,IAAA,6BAAa,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,kBAAO,CAAC,CAAC,KAAK,CAAC;QAErE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;QAE3D,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YAC/B,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;YACrC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;YAC9B,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YAC3B,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YACjC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;YAC7B,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YACjC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;YACnC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YAC/B,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YACjC,YAAY,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,KAAK;YACnC,SAAS,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,MAAM;YAC9B,YAAY;YACZ,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;YACpC,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;YACtC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;YACpC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YAE/B,aAAa,EAAG,KAAK,CAAC,IAAY,CAAC,aAAa;YAEhD,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;YAEnC,eAAe,EAAG,KAAK,CAAC,IAAY,CAAC,eAAe;SAE9C,CAAC;IACX,CAAC;IAOD,eAAe,CAAC,WAAoB,EAAE,WAAoB;QACxD,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClF,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChF,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACZ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACzE,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CACjE,CAAC;IACN,CAAC;IAOD,WAAW,CAAC,WAAoB,EAAE,WAAoB;QACpD,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChF,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACZ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;aACzE,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CACjE,CAAC;IACN,CAAC;IAKD,uBAAuB;QACrB,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;QAC7E,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;aAClC,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACZ,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;aAC3B,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CACjE,CAAC;IACN,CAAC;IAKD,oBAAoB;QAClB,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;aAClC,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACZ,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;aAC3B,IAAI,CAAC,CAAC,CAAC;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CACjE,CAAC;IACN,CAAC;IAKD,YAAY,CAAC,QAAwC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,IAAA,cAAO,EAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;SAC1F;QACD,IAAI,IAAA,cAAO,EAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE;YAChE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;SAC3F;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAGD,YAAY;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAY,EAAE,EAAE;YAC9B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpD,CAAC,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAE,EAAE;YACrC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAgB,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;oBAC9B,OAAO,GAAG,IAAI,CAAC;iBAChB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAE,EAAE;YACrC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAgB,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;oBAC9B,OAAO,GAAG,IAAI,CAAC;iBAChB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACvD,IAAI,YAAY,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAgB,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;oBAC5D,YAAY,GAAG,KAAK,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,KAAiB,EAAmC,EAAE;YACxG,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YACvC,IAAI,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YACvC,IAAI,KAAK,EAAE;gBACT,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7D,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1D,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC3D;YAED,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,GAAG,EAAE;gBAChD,OAAO,EAAE,CAAC;aACX;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,WAAW,EAAE;gBACf,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,cAAc,EAAE;wBAClB,MAAM,KAAK,GAA0B,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACnE,IAAI,KAAK,EAAE;4BACT,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;4BACpD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,aAAa,YAAY,OAAO,EAAE;6BAEvE;iCAAM;gCAEL,MAAM,YAAY,GAAG,GAAG,aAAa,EAAE,CAAC;gCACxC,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;iCAEzC;qCAAM;oCACL,SAAS,IAAI,YAAY,CAAC;iCAC3B;6BACF;4BACD,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,MAAM,EAAE;gCACnC,SAAS,IAAI,IAAI,CAAC;6BACnB;yBACF;6BAAM;4BACL,SAAS,IAAI,IAAI,CAAC;yBACnB;qBACF;iBACF;gBACD,SAAS,IAAI,IAAI,CAAC;aACnB;SACF;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,oBAAoB;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAY,EAAE,EAAE;YAC9B,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpD,CAAC,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAE,EAAE;YACrC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAgB,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;oBAC9B,OAAO,GAAG,IAAI,CAAC;iBAChB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAE,EAAE;YACrC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAgB,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;oBAC9B,OAAO,GAAG,IAAI,CAAC;iBAChB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACvD,IAAI,YAAY,CAAC;YACjB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAgB,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;oBAC5D,YAAY,GAAG,KAAK,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC,CAAC;QAEF,MAAM,aAAa,GAAiB,EAAE,CAAC;QAEvC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACxC,IAAI,WAAW,EAAE;gBACf,MAAM,WAAW,GAAe,EAAE,CAAC;gBACnC,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAC3C,IAAI,cAAc,EAAE;wBAClB,MAAM,KAAK,GAA0B,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACnE,IAAI,KAAK,EAAE;4BACT,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBAC5B;qBACF;iBACF;gBACD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aACjC;SACF;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,IAA8C;QACtE,OAAO,0BAAW,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,iBAAiB,CAAC,UAAqC;QACrD,MAAM,IAAI,GAAG,IAAI,eAAQ,CAAC,UAAU,CAAC,CAAC;QACtC,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YAC9B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;SACjC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,GAAW,EAAE,GAAW;QACtC,IAAI,YAAY,CAAC;QACjB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,EAAE;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,YAAY,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,kBAAkB,CAAC;SAC3C;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClD,YAAY,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,KAAI,IAAI,CAAC,YAAY,CAAC;SAC1D;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,eAAe,CAAC,GAAW,EAAE,GAAW;QACtC,IAAI,YAAY,CAAC;QACjB,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,MAAM,EAAE;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,YAAY,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,kBAAkB,CAAC;SAC3C;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClD,YAAY,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC;SACrC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAh0FD,8BAg0FC","file":"BaseTable.js","sourcesContent":["import * as columnStyleContents from '../body-helper/style';\nimport * as headerStyleContents from '../header-helper/style';\nimport '../tools/style.css';\nimport * as style from '../tools/style';\nimport type {\n CellAddress,\n CellRange,\n TableEventHandlersEventArgumentMap,\n TableEventHandlersReturnMap,\n TableKeyboardOptions,\n DropDownMenuHighlightInfo,\n MenuListItem,\n WidthModeDef,\n ICustomRender,\n ICellHeaderPaths,\n HeaderData,\n FullExtendStyle,\n FieldDef,\n ColumnTypeOption,\n SortState,\n IPagerConf,\n ICustomLayout,\n CellInfo,\n CellStyle,\n MenuInstanceType,\n DropDownMenuOptions,\n FieldFormat,\n FieldData,\n MaybePromiseOrUndefined,\n MousePointerCellEvent,\n DropDownMenuEventInfo,\n HierarchyState,\n FieldKeyDef,\n CellType,\n LayoutObjectId\n} from '../ts-types';\nimport type { ColumnIconOption } from '../ts-types';\nimport { event, style as utilStyle } from '../tools/helper';\n\nimport { TABLE_EVENT_TYPE } from './TABLE_EVENT_TYPE';\nimport { EventHandler } from '../event/EventHandler';\nimport { EventTarget } from '../event/EventTarget';\nimport { NumberMap } from '../tools/NumberMap';\nimport { Rect } from '../tools/Rect';\nimport type { TableTheme } from '../themes/theme';\nimport { defaultOrderFn, isValid, throttle2 } from '../tools/util';\nimport themes from '../themes';\nimport { Env } from '../tools/env';\nimport { Scenegraph } from '../scenegraph/scenegraph';\nimport { StateManeger } from '../state/state';\nimport { EventManeger } from '../event/event';\nimport { BodyHelper } from '../body-helper/body-helper';\nimport { HeaderHelper } from '../header-helper/header-helper';\nimport type { PivotHeaderLayoutMap } from '../layout/pivot-header-layout';\nimport { TooltipHandler } from '../tooltip/TooltipHandler';\nimport type { CachedDataSource, DataSource } from '../data';\nimport type { IWrapTextGraphicAttribute } from '@visactor/vrender';\nimport type { ITextSize } from '@visactor/vutils';\nimport { WrapText } from '../scenegraph/graphic/text';\nimport { textMeasure } from '../scenegraph/utils/measure-text';\nimport { getStyleTheme } from '../scenegraph/group-creater/column-helper';\nimport { getProp } from '../scenegraph/utils/get-prop';\nimport type { ColumnData, ColumnDefine, ColumnsDefine, IndicatorData } from '../ts-types/list-table/layout-map/api';\nimport type { TooltipOptions } from '../ts-types/tooltip';\nimport { IconCache } from '../plugins/icons';\nimport {\n _applyColWidthLimits,\n _getScrollableVisibleRect,\n _getTargetFrozenColAt,\n _getTargetFrozenRowAt,\n _setDataSource,\n _setRecords,\n _toPxWidth,\n createRootElement,\n isAutoDefine,\n updateRootElementPadding\n} from './tableHelper';\nimport { MenuHandler } from '../menu/dom/MenuHandler';\nimport type { BaseTableAPI, BaseTableConstructorOptions, IBaseTableProtected } from '../ts-types/base-table';\nimport { FocusInput } from './FouseInput';\nconst { toBoxArray } = utilStyle;\nconst { isTouchEvent } = event;\nconst rangeReg = /^\\$(\\d+)\\$(\\d+)$/;\nexport abstract class BaseTable extends EventTarget implements BaseTableAPI {\n internalProps: IBaseTableProtected;\n showPin = true;\n showSort = true;\n padding: { top: number; left: number; right: number; bottom: number };\n globalDropDownMenu?: MenuListItem[];\n //画布绘制单元格的区域 不包括整体边框frame,所以比canvas的width和height要小一点(canvas的width包括了frame)\n tableNoFrameWidth: number;\n tableNoFrameHeight: number;\n tableX: number;\n tableY: number;\n _widthMode: WidthModeDef;\n customRender?: ICustomRender;\n\n canvasWidth?: number;\n canvasHeight?: number;\n\n scenegraph: Scenegraph;\n stateManeger?: StateManeger;\n eventManeger?: EventManeger;\n _pixelRatio: number;\n\n _cellToBeInvalidatedNextFrame: Set<string>;\n _willNextFrameInvalidate: boolean;\n\n static get EVENT_TYPE(): typeof TABLE_EVENT_TYPE {\n return TABLE_EVENT_TYPE;\n }\n /**\n * 用户配置的options 只读 勿直接修改\n */\n readonly options: BaseTableConstructorOptions;\n\n // public version = version;\n\n pagerConf?: IPagerConf | undefined;\n\n /**\n * constructor\n *\n * @constructor\n * @param options Constructor options\n */\n // eslint-disable-next-line default-param-last\n id = `VTable${Date.now()}`;\n\n headerStyleCache: any;\n bodyStyleCache: any;\n constructor(options: BaseTableConstructorOptions = {}) {\n super();\n const {\n // rowCount = 0,\n // colCount = 0,\n frozenColCount = 0,\n // frozenRowCount = 0,\n defaultRowHeight = 40,\n defaultHeaderRowHeight,\n defaultColWidth = 80,\n defaultHeaderColWidth,\n widthMode = 'standard',\n keyboardOptions,\n parentElement,\n // disableRowHeaderColumnResize,\n columnResizeMode,\n dragHeaderMode,\n // showHeader,\n // scrollBar,\n showPin,\n allowFrozenColCount,\n padding,\n hover,\n menu,\n select: click,\n customRender,\n pixelRatio = 1\n } = options;\n this.options = options;\n this._widthMode = widthMode;\n this.customRender = customRender;\n this.padding = { top: 0, right: 0, left: 0, bottom: 0 };\n if (padding) {\n if (typeof padding === 'number') {\n this.padding.top = padding;\n this.padding.left = padding;\n this.padding.bottom = padding;\n this.padding.right = padding;\n } else {\n padding.top && (this.padding.top = padding.top);\n padding.bottom && (this.padding.bottom = padding.bottom);\n padding.left && (this.padding.left = padding.left);\n padding.right && (this.padding.right = padding.right);\n }\n }\n\n this.tableNoFrameWidth = 0;\n this.tableNoFrameHeight = 0;\n\n const internalProps = (this.internalProps = {} as IBaseTableProtected);\n // style.initDocument(scrollBar);\n // showHeader !== undefined && (this.showHeader = showHeader);\n // scrollBar !== undefined && (this.scrollBar = scrollBar);\n showPin !== undefined && (this.showPin = showPin);\n if (typeof allowFrozenColCount === 'number' && allowFrozenColCount <= 0) {\n this.showPin = false;\n }\n //设置是否自动撑开的配置\n internalProps.autoRowHeight = options.autoRowHeight ?? false;\n\n internalProps.handler = new EventHandler();\n internalProps.element = createRootElement(this.padding);\n internalProps.focusControl = new FocusInput(this, internalProps.element);\n\n internalProps.pixelRatio = pixelRatio;\n internalProps.canvas = document.createElement('canvas');\n internalProps.element.appendChild(internalProps.canvas);\n\n internalProps.context = internalProps.canvas.getContext('2d')!;\n\n internalProps.frozenColCount = frozenColCount;\n\n internalProps.defaultRowHeight = defaultRowHeight;\n internalProps.defaultHeaderRowHeight = defaultHeaderRowHeight ?? defaultRowHeight; // defaultHeaderRowHeight没有设置取defaultRowHeight\n\n internalProps.defaultColWidth = defaultColWidth;\n internalProps.defaultHeaderColWidth = defaultHeaderColWidth ?? defaultColWidth;\n\n internalProps.keyboardOptions = keyboardOptions;\n\n internalProps.columnResizeMode = columnResizeMode;\n internalProps.dragHeaderMode = dragHeaderMode;\n\n /////\n internalProps._rowHeightsMap = new NumberMap();\n internalProps._rowRangeHeightsMap = new Map();\n internalProps._colRangeWidthsMap = new Map();\n this.colWidthsMap = new NumberMap();\n this.colContentWidthsMap = new NumberMap();\n this.colWidthsLimit = {};\n\n internalProps.calcWidthContext = {\n _: internalProps,\n get full(): number {\n return this._.canvas.width / ((this._.context as any).pixelRatio ?? window.devicePixelRatio);\n }\n // get em(): number {\n // return getFontSize(this._.context, this._.theme.font).width;\n // }\n };\n\n internalProps.cellTextOverflows = {};\n internalProps.focusedTable = false;\n\n internalProps.theme = themes.of(options.theme ?? themes.DEFAULT); //原来在listTable文件中\n\n // internalProps.element.appendChild(internalProps.scrollable.getElement());\n\n if (parentElement) {\n //先清空\n parentElement.innerHTML = '';\n parentElement.appendChild(internalProps.element);\n this._updateSize();\n } else {\n this._updateSize();\n }\n\n this._cellToBeInvalidatedNextFrame = new Set(); // for all\n this._willNextFrameInvalidate = false;\n\n this.options = options;\n internalProps.theme = themes.of(options.theme ?? themes.DEFAULT);\n internalProps.bodyHelper = new BodyHelper(this);\n internalProps.headerHelper = new HeaderHelper(this);\n\n internalProps.autoWrapText = options.autoWrapText;\n\n internalProps.allowFrozenColCount = options.allowFrozenColCount ?? internalProps.colCount;\n internalProps.limitMaxAutoWidth = options.limitMaxAutoWidth ?? 450;\n\n // 生成scenegraph\n this.scenegraph = new Scenegraph(this);\n this.stateManeger = new StateManeger(this);\n this.eventManeger = new EventManeger(this);\n\n //原有的toolTip提示框处理,主要在文字绘制不全的时候 出来全文本提示信息 需要加个字段设置是否有效\n internalProps.tooltip = Object.assign(\n {\n renderMode: 'html',\n isShowOverflowTextTooltip: false,\n confine: true\n },\n options.tooltip\n );\n if (internalProps.tooltip.renderMode === 'html') {\n internalProps.tooltipHandler = new TooltipHandler(this, internalProps.tooltip.confine);\n }\n internalProps.menu = Object.assign(\n {\n renderMode: 'html'\n },\n options.menu\n );\n Array.isArray(options.menu?.dropDownMenuHighlight) &&\n this.setDropDownMenuHighlight(options.menu?.dropDownMenuHighlight);\n\n // 全局下拉菜单\n Array.isArray(options.menu?.defaultHeaderMenuItems) &&\n (this.globalDropDownMenu = options.menu.defaultHeaderMenuItems);\n\n if (internalProps.menu.renderMode === 'html') {\n internalProps.menuHandler = new MenuHandler(this);\n }\n\n this.headerStyleCache = new Map();\n this.bodyStyleCache = new Map();\n }\n /** 节流绘制 */\n throttleInvalidate = throttle2(this.invalidate.bind(this), 200);\n /**\n * Get parent element.\n * @returns {HTMLElement} parent element container\n */\n getParentElement(): HTMLElement {\n return this.options.parentElement;\n }\n /**\n * 获取表格创建的DOM根节点\n */\n getElement(): HTMLElement {\n return this.internalProps.element;\n }\n /**\n * 获取canvas\n */\n get canvas(): HTMLCanvasElement {\n return this.internalProps.canvas;\n }\n\n /**\n * Get the number of rows.\n */\n get rowCount(): number {\n return this.internalProps.rowCount;\n }\n /**\n * Set the number of rows.\n */\n set rowCount(rowCount: number) {\n this.internalProps.rowCount = rowCount;\n }\n /**\n * Get the number of columns.\n */\n get colCount(): number {\n return this.internalProps.colCount ?? 0;\n }\n /**\n * Set the number of columns.\n */\n set colCount(colCount: number) {\n this.internalProps.colCount = colCount;\n }\n /**\n * 注意 这个值和options.frozenColCount 不一样!options.frozenColCount是用户实际设置的; 这里获取的值是调整过:frozen的列过宽时 frozeCount为0\n */\n get frozenColCount(): number {\n return this.internalProps.frozenColCount ?? 0;\n }\n /**\n * Set the number of frozen columns.\n */\n set frozenColCount(frozenColCount: number) {\n // 此情况将frozenColCount设为0(显示效果一致)\n if (frozenColCount >= this.colCount) {\n frozenColCount = 0;\n }\n // const oldFrozenColCount = this.internalProps.frozenColCount;\n this.internalProps.frozenColCount = frozenColCount;\n this.options.frozenColCount = frozenColCount;\n //纠正frozenColCount的值\n if (this.tableNoFrameWidth - this.getColsWidth(0, frozenColCount - 1) <= 120) {\n this.internalProps.frozenColCount = 0;\n }\n this.stateManeger.setFrozenCol(this.internalProps.frozenColCount);\n }\n /** 设置冻结的行数 */\n setFrozenColCount(frozenColCount: number) {\n if (frozenColCount >= this.colCount) {\n frozenColCount = 0;\n }\n // const oldFrozenColCount = this.internalProps.frozenColCount;\n this.internalProps.frozenColCount = frozenColCount;\n this.options.frozenColCount = frozenColCount;\n //纠正frozenColCount的值\n if (this.tableNoFrameWidth - this.getColsWidth(0, frozenColCount - 1) <= 120) {\n this.internalProps.frozenColCount = 0;\n }\n this.stateManeger.setFrozenCol(this.internalProps.frozenColCount);\n }\n /**\n * 和setFrozenColCount一样的逻辑 但保留options.frozenColCount不赋新值\n * 当冻结列的宽度过宽时调用该函数\n */\n _setFrozenColCount(frozenColCount: number) {\n // 此情况将frozenColCount设为0(显示效果一致)\n if (frozenColCount >= this.colCount) {\n frozenColCount = 0;\n }\n this.internalProps.frozenColCount = frozenColCount;\n }\n /**\n * 计算完前置状态后 重新计算判断列宽是否过大\n */\n _resetFrozenColCount() {\n if (this.options.frozenColCount) {\n if (this.tableNoFrameWidth - this.getColsWidth(0, this.options.frozenColCount - 1) <= 120) {\n this._setFrozenColCount(0);\n } else if (this.frozenColCount !== this.options.frozenColCount) {\n this._setFrozenColCount(this.options.frozenColCount); //frozenColCount从0恢复到原有的frozenColCount\n }\n }\n }\n /**\n * Get the number of frozen rows.\n */\n get frozenRowCount(): number {\n return this.internalProps.frozenRowCount ?? 0;\n }\n /**\n * Set the number of frozen rows.\n */\n set frozenRowCount(frozenRowCount: number) {\n this.internalProps.frozenRowCount = frozenRowCount;\n // this.options.frozenRowCount = frozenRowCount;\n }\n /**\n * Get the default row height.\n *\n */\n get defaultRowHeight(): number {\n return this.internalProps.defaultRowHeight;\n }\n /**\n * Set the default row height.\n */\n set defaultRowHeight(defaultRowHeight: number) {\n this.internalProps.defaultRowHeight = defaultRowHeight;\n this.options.defaultRowHeight = defaultRowHeight;\n }\n /**\n * Get the default row height.\n *\n */\n get defaultHeaderRowHeight(): number | number[] {\n return this.internalProps.defaultHeaderRowHeight;\n }\n /**\n * Set the default row height.\n */\n set defaultHeaderRowHeight(defaultHeaderRowHeight: number | number[]) {\n this.internalProps.defaultHeaderRowHeight = defaultHeaderRowHeight;\n this.options.defaultHeaderRowHeight = defaultHeaderRowHeight;\n }\n /**\n * Get the default column width.\n */\n get defaultColWidth(): number {\n return this.internalProps.defaultColWidth;\n }\n /**\n * Set the default column width.\n */\n set defaultColWidth(defaultColWidth: number) {\n this.internalProps.defaultColWidth = defaultColWidth;\n this.options.defaultColWidth = defaultColWidth;\n }\n /**\n * Get the default column width.\n */\n get defaultHeaderColWidth(): number | number[] {\n return this.internalProps.defaultHeaderColWidth;\n }\n /**\n * Set the default column width.\n */\n set defaultHeaderColWidth(defaultHeaderColWidth: number | number[]) {\n this.internalProps.defaultHeaderColWidth = defaultHeaderColWidth;\n this.options.defaultHeaderColWidth = defaultHeaderColWidth;\n }\n /**\n * Get the columns width.\n */\n get colWidthsMap(): NumberMap<string | number> {\n return this.internalProps._colWidthsMap;\n }\n /**\n * Set the columns width.\n */\n set colWidthsMap(colWidthsMap: NumberMap<string | number>) {\n this.internalProps._colWidthsMap = colWidthsMap;\n }\n /**\n * Get every colomn's content width. not care actual column width\n */\n get colContentWidthsMap(): NumberMap<string | number> {\n return this.internalProps._colContentWidthsMap;\n }\n /**\n * Set every colomn's content width.\n */\n set colContentWidthsMap(colContentWidthsMap: NumberMap<string | number>) {\n this.internalProps._colContentWidthsMap = colContentWidthsMap;\n }\n /**\n * Get the range columns width.\n */\n get _colRangeWidthsMap(): Map<string, number> {\n return this.internalProps._colRangeWidthsMap;\n }\n /**\n * Set the range columns width.\n */\n set _colRangeWidthsMap(_colRangeWidthsMap: Map<string, number>) {\n this.internalProps._colRangeWidthsMap = _colRangeWidthsMap;\n }\n /**\n * Get the range rows height.\n */\n get _rowRangeHeightsMap(): Map<string, number> {\n return this.internalProps._rowRangeHeightsMap;\n }\n /**\n * Set the range rows height.\n */\n set _rowRangeHeightsMap(_rowRangeHeightsMap: Map<string, number>) {\n this.internalProps._rowRangeHeightsMap = _rowRangeHeightsMap;\n }\n /**\n * Get the columns width.\n */\n get rowHeightsMap(): NumberMap<number> {\n return this.internalProps._rowHeightsMap;\n }\n /**\n * Set the columns width.\n */\n set rowHeightsMap(rowHeightsMap: NumberMap<number>) {\n this.internalProps._rowHeightsMap = rowHeightsMap;\n }\n /**\n * Get the columns width limit.\n */\n get colWidthsLimit(): {\n //存储各列的宽度限制\n [col: number]: {\n max?: string | number;\n min?: string | number;\n };\n } {\n return this.internalProps._colWidthsLimit;\n }\n /**\n * Set the columns width limit.\n */\n set colWidthsLimit(colWidthsLimit: {\n //存储各列的宽度限制\n [col: number]: {\n max?: string | number;\n min?: string | number;\n };\n }) {\n this.internalProps._colWidthsLimit = colWidthsLimit;\n }\n get keyboardOptions(): TableKeyboardOptions | null {\n return this.internalProps.keyboardOptions ?? null;\n }\n set keyboardOptions(keyboardOptions: TableKeyboardOptions | null) {\n this.internalProps.keyboardOptions = keyboardOptions ?? undefined;\n }\n\n get widthMode(): WidthModeDef {\n return this._widthMode;\n }\n set widthMode(widthMode: WidthModeDef) {\n if (widthMode !== this._widthMode) {\n this._widthMode = widthMode;\n }\n }\n\n /**\n * 根据设置的列宽配置 计算列宽值\n * @param {string|number} width width definition\n * @returns {number} the pixels of width\n * @private\n */\n private _colWidthDefineToPxWidth(width: string | number): number {\n if (isAutoDefine(width)) {\n return _toPxWidth(this, this._calculateAutoColWidthExpr());\n }\n return _toPxWidth(this, width);\n }\n\n /**\n * 计算列宽为auto情况下的宽度.\n * @returns {string}\n * @private\n */\n private _calculateAutoColWidthExpr(): string {\n const fullWidth = this.internalProps.calcWidthContext.full;\n let sumMin = 0;\n const others: (string | number)[] = [];\n let autoCount = 0;\n const hasLimitsOnAuto = [];\n for (let col = 0; col < this.internalProps.colCount; col++) {\n const def = this.getColWidthDefine(col);\n const limits = this._getColWidthLimits(col);\n\n if (isAutoDefine(def)) {\n if (limits) {\n hasLimitsOnAuto.push(limits);\n if (limits.min) {\n sumMin += limits.min;\n }\n }\n autoCount++;\n } else {\n let expr = def;\n if (limits) {\n const orgWidth = _toPxWidth(this, expr);\n const newWidth = _applyColWidthLimits(limits, orgWidth);\n if (orgWidth !== newWidth) {\n expr = `${newWidth}px`;\n }\n sumMin += newWidth;\n }\n others.push(expr);\n }\n if (sumMin > fullWidth) {\n return '0px';\n }\n }\n if (hasLimitsOnAuto.length && others.length) {\n const autoPx =\n (fullWidth - _toPxWidth(this, `calc(${others.map(c => (typeof c === 'number' ? `${c}px` : c)).join(' + ')})`)) /\n autoCount;\n hasLimitsOnAuto.forEach(limits => {\n if (limits.min && autoPx < limits.min) {\n others.push(limits.minDef);\n autoCount--;\n } else if (limits.max && limits.max < autoPx) {\n others.push(limits.maxDef);\n autoCount--;\n }\n });\n if (autoCount <= 0) {\n return `${autoPx}px`;\n }\n }\n if (others.length) {\n const strDefs: string[] = [];\n let num = 0;\n others.forEach(c => {\n if (typeof c === 'number') {\n num += c;\n } else {\n strDefs.push(c);\n }\n });\n strDefs.push(`${num}px`);\n return `calc((100% - (${strDefs.join(' + ')})) / ${autoCount})`;\n }\n return `${100 / autoCount}%`;\n }\n\n /**\n * 获取列宽的最大最小限制\n * @param {number} col number of column\n * @returns {object|null} the column width limits\n * @private\n */\n private _getColWidthLimits(col: number): {\n min?: undefined;\n minDef?: undefined;\n max?: undefined;\n maxDef?: undefined;\n } | null {\n const limit = this.colWidthsLimit[col];\n if (!limit) {\n return null;\n }\n\n const result: {\n min?: number;\n max?: number;\n minDef?: string | number;\n maxDef?: string | number;\n } = {};\n\n if (limit.min) {\n result.min = _toPxWidth(this, limit.min);\n result.minDef = limit.min;\n }\n if (limit.max) {\n result.max = _toPxWidth(this, limit.max);\n result.maxDef = limit.max;\n }\n return result as never;\n }\n\n private _adjustColWidth(col: number, orgWidth: number): number {\n const limits = this._getColWidthLimits(col);\n return Math.max(_applyColWidthLimits(limits, orgWidth), 0);\n }\n\n /**\n * 设置像数比\n * @param pixelRatio\n */\n setPixelRatio(pixelRatio: number) {\n // do nothing\n }\n /**\n * 窗口尺寸发生变化 或者像数比变化\n * @return {void}\n */\n _updateSize(): void {\n //清除样式并获取大小\n const { padding } = this;\n\n let widthP = 0;\n let heightP = 0;\n\n if (Env.mode === 'browser') {\n const element = this.getElement();\n\n const width1 = element.parentElement?.offsetWidth ?? 1 - 1;\n const height1 = element.parentElement?.offsetHeight ?? 1 - 1;\n\n element.style.width = (width1 && `${width1 - padding.left - padding.right}px`) || '0px';\n element.style.height = (height1 && `${height1 - padding.top - padding.bottom}px`) || '0px';\n\n const { canvas } = this.internalProps;\n canvas.style.width = '';\n canvas.style.height = '';\n\n widthP = canvas.parentElement?.offsetWidth ?? 1 - 1;\n heightP = canvas.parentElement?.offsetHeight ?? 1 - 1;\n canvas.width = widthP;\n canvas.height = heightP;\n\n //style 与 width,height相同\n canvas.style.width = `${widthP}px`;\n canvas.style.height = `${heightP}px`;\n } else if (Env.mode === 'node') {\n widthP = this.canvasWidth - 1;\n heightP = this.canvasHeight - 1;\n }\n\n const width = Math.floor(widthP - style.getScrollBarSize(this.getTheme().scrollStyle));\n const height = Math.floor(heightP - style.getScrollBarSize(this.getTheme().scrollStyle));\n\n if (this.internalProps.theme?.frameStyle) {\n //考虑表格整体边框的问题\n const lineWidths = toBoxArray(this.internalProps.theme.frameStyle?.borderLineWidth ?? [null]);\n const shadowWidths = toBoxArray(this.internalProps.theme.frameStyle?.shadowBlur ?? [0]);\n this.tableX = (lineWidths[3] ?? 0) + (shadowWidths[3] ?? 0);\n this.tableY = (lineWidths[0] ?? 0) + (shadowWidths[0] ?? 0);\n this.tableNoFrameWidth =\n width - ((lineWidths[1] ?? 0) + (shadowWidths[1] ?? 0)) - ((lineWidths[3] ?? 0) + (shadowWidths[3] ?? 0));\n this.tableNoFrameHeight =\n height - ((lineWidths[0] ?? 0) + (shadowWidths[0] ?? 0)) - ((lineWidths[2] ?? 0) + (shadowWidths[2] ?? 0));\n }\n }\n\n get rowHierarchyType(): 'grid' | 'tree' {\n return 'grid';\n }\n\n /**\n * Set all column width.\n * @param {number[]} widths The column widths\n * @return {void}\n */\n setColWidths(widths: number[]): void {\n widths.forEach((value, index) => this.setColWidth(index, value));\n }\n /**\n * 获取指定列范围的总宽度\n * @param startCol\n * @param endCol\n * @returns\n */\n getColsWidth(startCol: number, endCol: number): number {\n endCol = Math.min(endCol, this.colCount - 1); // endCol最大为this.colCount - 1,超过会导致width计算为NaN\n //通过缓存获取指定范围列宽\n const cachedColWidth = this._colRangeWidthsMap.get(`$${startCol}$${endCol}`);\n if (cachedColWidth !== null && cachedColWidth !== undefined) {\n return cachedColWidth;\n }\n\n //特殊处理 先尝试获取startCol->endCol-1的行高\n const cachedLowerColWidth = this._colRangeWidthsMap.get(`$${startCol}$${endCol - 1}`);\n if (cachedLowerColWidth !== null && cachedLowerColWidth !== undefined) {\n const width = this.colWidthsMap.get(endCol);\n let adjustW;\n if (width) {\n adjustW =\n this.widthMode === 'adaptive' || (this as any).transpose\n ? Number(width)\n : this._adjustColWidth(endCol, this._colWidthDefineToPxWidth(width));\n } else {\n adjustW = 0;\n }\n const addWidth = cachedLowerColWidth + adjustW;\n // 合法地址存入缓存\n if (startCol >= 0 && endCol >= 0 && !Number.isNaN(addWidth)) {\n this._colRangeWidthsMap.set(`$${startCol}$${endCol}`, Math.round(addWidth));\n }\n return Math.round(addWidth);\n }\n\n let w = 0;\n for (let col = startCol; col <= endCol; col++) {\n w +=\n this.isRowHeader(col, 0) || this.isCornerHeader(col, 0)\n ? Array.isArray(this.defaultHeaderColWidth)\n ? this.defaultHeaderColWidth[col] ?? this.internalProps.defaultColWidth\n : this.defaultHeaderColWidth\n : this.internalProps.defaultColWidth;\n }\n\n this.colWidthsMap.each(startCol, endCol, (width, col) => {\n // adaptive模式下,不受max min配置影响,直接使用width\n w +=\n (this.widthMode === 'adaptive' || (this as any).transpose\n ? Number(width)\n : this._adjustColWidth(col, this._colWidthDefineToPxWidth(width))) -\n (this.isRowHeader(col, 0) || this.isCornerHeader(col, 0)\n ? Array.isArray(this.defaultHeaderColWidth)\n ? this.defaultHeaderColWidth[col] ?? this.internalProps.defaultColWidth\n : this.defaultHeaderColWidth\n : this.internalProps.defaultColWidth);\n });\n for (let col = startCol; col <= endCol; col++) {\n if (this.colWidthsMap.has(col)) {\n continue;\n }\n const adj = this._adjustColWidth(col, this.internalProps.defaultColWidth);\n if (adj !== this.internalProps.defaultColWidth) {\n w += adj - this.internalProps.defaultColWidth;\n }\n }\n\n // 合法地址存入缓存\n if (startCol >= 0 && endCol >= 0) {\n this._colRangeWidthsMap.set(`$${startCol}$${endCol}`, Math.round(w));\n }\n return Math.round(w);\n }\n /**\n * 获取某一行的高度\n * @param row\n * @returns\n */\n getRowHeight(row: number): number {\n return (\n this.rowHeightsMap.get(row) ||\n (this.isColumnHeader(0, row) || this.isCornerHeader(0, row)\n ? Array.isArray(this.defaultHeaderRowHeight)\n ? this.defaultHeaderRowHeight[row] ?? this.internalProps.defaultRowHeight\n : this.defaultHeaderRowHeight\n : this.internalProps.defaultRowHeight)\n );\n }\n /**\n * 设置某一行的高度\n * @param row\n * @returns\n */\n setRowHeight(row: number, height: number, clearCache?: boolean): void {\n this.rowHeightsMap.put(row, Math.round(height));\n // 清楚影响缓存\n if (clearCache) {\n this._clearRowRangeHeightsMap(row);\n }\n }\n /**\n * 批量设置行高 这个值只可设置在computeRowsHeight函数中\n * @param rowStart 起始行\n * @param rowEnd 结束行号\n * @param height 统一高度值\n */\n fillRowsHeight(rowStart: number, rowEnd: number, rowHeight: number): void {\n for (let row = rowStart; row <= rowEnd; row++) {\n this.rowHeightsMap.put(row, Math.round(rowHeight));\n this._rowRangeHeightsMap.set(\n `$0$${row}`,\n Math.round((this._rowRangeHeightsMap.get(`$0$${row - 1}`) ?? 0) + rowHeight)\n ); //按照逻辑这里去缓存值$0$${row - 1} 一定是有的(除第一行外)\n }\n }\n /**\n * 获取指定行范围的总高度\n * @param startCol\n * @param endCol\n * @returns\n */\n getRowsHeight(startRow: number, endRow: number): number {\n //通过缓存获取指定范围行高\n const cachedRowHeight = this._rowRangeHeightsMap.get(`$${startRow}$${endRow}`);\n if (cachedRowHeight !== null && cachedRowHeight !== undefined) {\n return cachedRowHeight;\n }\n //特殊处理 先尝试获取startRow->endRow-1的行高\n const cachedLowerRowHeight = this._rowRangeHeightsMap.get(`$${startRow}$${endRow - 1}`);\n if (cachedLowerRowHeight !== null && cachedLowerRowHeight !== undefined) {\n const height = Math.round(\n cachedLowerRowHeight +\n (this.rowHeightsMap.get(endRow) ??\n (this.isColumnHeader(0, endRow) || this.isCornerHeader(0, endRow)\n ? Array.isArray(this.defaultHeaderRowHeight)\n ? this.defaultHeaderRowHeight[endRow] ?? this.internalProps.defaultRowHeight\n : this.defaultHeaderRowHeight\n : this.internalProps.defaultRowHeight))\n );\n if (startRow >= 0 && endRow >= 0) {\n this._rowRangeHeightsMap.set(`$${startRow}$${endRow}`, Math.round(height));\n }\n return height;\n }\n\n let h = 0;\n for (let i = startRow; i <= endRow; i++) {\n h +=\n this.rowHeightsMap.get(i) ||\n (this.isColumnHeader(0, i) || this.isCornerHeader(0, i)\n ? Array.isArray(this.defaultHeaderRowHeight)\n ? this.defaultHeaderRowHeight[i] ?? this.internalProps.defaultRowHeight\n : this.defaultHeaderRowHeight\n : this.internalProps.defaultRowHeight);\n }\n if (startRow >= 0 && endRow >= 0 && h > 0) {\n this._rowRangeHeightsMap.set(`$${startRow}$${endRow}`, Math.round(h));\n }\n // }\n return Math.round(h);\n }\n /**\n * 根据列号获取列宽定义\n * @param {number} col column number\n * @returns {string|number} width definition\n * @private\n */\n getColWidthDefine(col: number): string | number {\n const width = this.colWidthsMap.get(col);\n if (typeof width === 'number' && width <= 0) {\n // adaptive模式下,宽度可能为0\n return 0;\n } else if (width) {\n return width;\n } else if (this.isRowHeader(col, 0) || this.isCornerHeader(col, 0)) {\n return Array.isArray(this.defaultHeaderColWidth)\n ? this.defaultHeaderColWidth[col] ?? this.defaultColWidth\n : this.defaultHeaderColWidth;\n }\n return this.defaultColWidth;\n }\n\n /**\n * 根据列号 获取该列宽度\n * @param {number} col column index\n * @return {number} column width\n */\n getColWidth(col: number): number {\n const width = this.getColWidthDefine(col);\n if (\n (this.widthMode === 'adaptive' && typeof width === 'number') ||\n ((this as any).transpose && typeof width === 'number')\n ) {\n // adaptive模式下,colWidthsMap存储的都是像素数值,此时max min配置失效,直接返回像素值\n // transpose模式下,不受原有列max min配置影响,直接返回像素值\n return this._colWidthDefineToPxWidth(width);\n }\n return this._adjustColWidth(col, this._colWidthDefineToPxWidth(width));\n }\n /**\n * 设置某一行的高度\n * @param row\n * @returns\n */\n setColWidth(col: number, width: string | number, clearCache?: boolean, skipCheckFrozen?: boolean): void {\n this.colWidthsMap.put(col, typeof width === 'number' ? Math.round(width) : width);\n // 清楚影响缓存\n if (clearCache) {\n this._clearColRangeWidthsMap(col);\n }\n\n // 检查冻结情况\n if (!skipCheckFrozen) {\n this.stateManeger.checkFrozen();\n }\n }\n\n /**\n * 清空含有指定col的缓存\n * @param col\n */\n _clearColRangeWidthsMap(col?: number): void {\n if (typeof col !== 'number') {\n this._colRangeWidthsMap.clear();\n } else {\n const keys = this._colRangeWidthsMap.keys();\n for (const key of keys) {\n const reg = rangeReg.exec(key);\n if (reg) {\n const start = Number(reg[1]);\n const end = Number(reg[2]);\n if (col >= start && col <= end) {\n this._colRangeWidthsMap.delete(key);\n }\n }\n }\n }\n }\n /**\n * 清空含有指定row的缓存\n * @param col\n */\n _clearRowRangeHeightsMap(row: number): void {\n const keys = this._rowRangeHeightsMap.keys();\n for (const key of keys) {\n const reg = rangeReg.exec(key);\n if (reg) {\n const start = Number(reg[1]);\n const end = Number(reg[2]);\n if (row >= start && row <= end) {\n this._rowRangeHeightsMap.delete(key);\n }\n }\n }\n }\n /**\n * 获取某一列内容的宽度 不关乎该列列宽值有多少\n * @param col\n * @returns\n */\n _getColContentWidth(col: number): number {\n return Number(this.colContentWidthsMap.get(col));\n }\n _setColContentWidth(col: number, width: string | number): void {\n this.colContentWidthsMap.put(col, width);\n }\n /**\n * 获取所有列的总高度\n * @returns\n */\n getAllRowsHeight(): number {\n if (this.internalProps.rowCount <= 0) {\n return 0;\n }\n const h = this.getRowsHeight(0, this.internalProps.rowCount - 1);\n return h;\n }\n /**\n * 获取所有行的总宽度\n * @returns\n */\n getAllColsWidth(): number {\n if (this.internalProps.colCount <= 0) {\n return 0;\n }\n const w = this.getColsWidth(0, this.internalProps.colCount - 1);\n return w;\n }\n\n /**\n * 根据列号 获取列宽最大值\n * @param {number} col column index\n * @return {number} column max width\n */\n getMaxColWidth(col: number): number {\n const obj = this.colWidthsLimit[col];\n let max = (obj && obj.max) ?? Infinity;\n if (typeof max === 'string') {\n max = _toPxWidth(this, max);\n }\n return max;\n }\n /**\n * 根据列号 设置列宽最大值\n * @param {number} col column index\n * @param {number} maxwidth column max width\n * @return {void}\n */\n setMaxColWidth(col: number, maxwidth: string | number): void {\n const obj = this.colWidthsLimit[col] || (this.colWidthsLimit[col] = {});\n obj.max = maxwidth;\n }\n /**\n * 根据列号 获取列宽最小值\n * @param {number} col column index\n * @return {number} column min width\n */\n getMinColWidth(col: number): number {\n const obj = this.colWidthsLimit[col];\n let min = (obj && obj.min) ?? 0;\n if (typeof min === 'string') {\n min = _toPxWidth(this, min);\n }\n return min;\n }\n /**\n * 根据列号 设置列宽最小值\n * @param {number} col column index\n * @param {number} minwidth column min width\n * @return {void}\n */\n setMinColWidth(col: number, minwidth: string | number): void {\n const obj = this.colWidthsLimit[col] || (this.colWidthsLimit[col] = {});\n obj.min = minwidth;\n }\n /**\n * 获取单元格的范围 返回值为Rect类型。不考虑是否为合并单元格的情况,坐标从0开始\n * @param {number} col column index\n * @param {number} row row index\n * @returns {Rect}\n */\n getCellRect(col: number, row: number): Rect {\n const isFrozenCell = this.isFrozenCell(col, row);\n\n let absoluteLeft = this.getColsWidth(0, col - 1) || 0;\n const width = this.getColWidth(col);\n if (isFrozenCell && isFrozenCell.col) {\n absoluteLeft += this.scrollLeft;\n }\n\n let absoluteTop = this.getRowsHeight(0, row - 1);\n const height = this.getRowHeight(row);\n if (isFrozenCell && isFrozenCell.row) {\n absoluteTop += this.scrollTop;\n }\n return new Rect(Math.round(absoluteLeft), Math.round(absoluteTop), Math.round(width), Math.round(height));\n }\n /**\n * 获取指定单元格【按合并后的区域】的rect 整表坐标系中(即相对于单元格[0,0]左上角来算的)\n * @param col\n * @param row\n * @returns\n */\n getMergeCellRect(col: number, row: number): Rect {\n const cellRange = this.getCellRange(col, row);\n const absoluteLeft = this.getColsWidth(0, cellRange.start.col - 1) || 0; // startCol为0时,absoluteLeft计算为Nan\n const width = this.getColsWidth(cellRange.start.col, cellRange.end.col);\n const absoluteTop = this.getRowsHeight(0, cellRange.start.row - 1) || 0;\n const height = this.getRowsHeight(cellRange.start.row, cellRange.end.row);\n return new Rect(Math.round(absoluteLeft), Math.round(absoluteTop), Math.round(width), Math.round(height));\n }\n /**\n * 获取的位置是相对表格显示界面的左上角 情况滚动情况 如单元格已经滚出表格上方 则这个单元格的x将为负值\n * @param {number} col index of column, of the cell\n * @param {number} row index of row, of the cell\n * @returns {Rect} the rect of the cell.\n */\n getCellRelativeRect(col: number, row: number): Rect {\n return this._toRelativeRect(this.getCellRect(col, row));\n }\n /**\n * 获取的位置是相对表格显示界面的左上角\n * @param {number} range :CellRange | CellAddress 类型 可以传入单元格范围或者具体某个单元格 返回值是包括合并单元格的较大区域\n * @returns {Rect}\n */\n getCellRangeRelativeRect(range: CellRange | CellAddress): Rect {\n if ((<CellRange>range).start) {\n return this._toRelativeRect(\n this.getCellsRect(\n (<CellRange>range).start.col,\n (<CellRange>range).start.row,\n (<CellRange>range).end.col,\n (<CellRange>range).end.row\n )\n );\n }\n const cellRange = this.getCellRange((<CellAddress>range).col, (<CellAddress>range).row);\n return this._toRelativeRect(\n this.getCellsRect(cellRange.start.col, cellRange.start.row, cellRange.end.col, cellRange.end.row)\n );\n }\n /**\n * 即仅视觉看到的位置 获取的位置是相对表格显示界面的左上角\n * @param {number} range :CellRange | CellAddress 类型\n * @returns {Rect} the visiable rect of the cell.可见矩形部分\n */\n getVisibleCellRangeRelativeRect(range: CellRange | CellAddress): Rect {\n let cellRange: CellRange;\n if ((<CellRange>range).start) {\n cellRange = <CellRange>range;\n } else {\n cellRange = this.getCellRange((<CellAddress>range).col, (<CellAddress>range).row);\n }\n return this._getVisiableRect(this.getCellRangeRelativeRect(range), cellRange);\n }\n /**\n * 调整relativeRectObj 计算可见部分的rect\n * @param relativeRectObj\n * @returns\n */\n _getVisiableRect(relativeRectObj: Rect, cellRange: CellRange): Rect {\n const targetLeft =\n cellRange.start.col >= this.frozenColCount\n ? Math.max(relativeRectObj.left, this.frozenColCount >= 1 ? this.getColsWidth(0, this.frozenColCount - 1) : 0)\n : relativeRectObj.left;\n const targetRight = Math.min(relativeRectObj.right, this.tableNoFrameWidth);\n const rect = relativeRectObj.copy();\n rect.left = targetLeft;\n rect.right = targetRight;\n\n const targetTop =\n cellRange.start.row >= this.frozenRowCount\n ? Math.max(relativeRectObj.top, this.frozenRowCount >= 1 ? this.getRowsHeight(0, this.frozenRowCount - 1) : 0)\n : relativeRectObj.top;\n const targetBottom = Math.min(relativeRectObj.bottom, this.tableNoFrameHeight);\n rect.top = targetTop;\n rect.bottom = targetBottom;\n return rect;\n }\n /**\n * 获取指定行列区域的Rect\n * @param {number} startCol\n * @param {number} startRow\n * @param {number} endCol\n * @param {number} endRow\n * @returns {Rect}\n */\n getCellsRect(startCol: number, startRow: number, endCol: number, endRow: number): Rect {\n const isFrozenStartCell = this.isFrozenCell(startCol, startRow);\n const isFrozenEndCell = this.isFrozenCell(endCol, endRow);\n\n let absoluteLeft = this.getColsWidth(0, startCol - 1) || 0; // startCol为0时,absoluteLeft计算为Nan\n let width = this.getColsWidth(startCol, endCol);\n if (isFrozenStartCell && isFrozenStartCell.col) {\n const scrollLeft = this.scrollLeft;\n absoluteLeft += scrollLeft;\n if (!isFrozenEndCell || !isFrozenEndCell.col) {\n width -= scrollLeft;\n width = Math.max(width, this.getColsWidth(startCol, this.frozenColCount - 1));\n }\n }\n let absoluteTop = this.getRowsHeight(0, startRow - 1);\n let height = this.getRowsHeight(startRow, endRow);\n if (isFrozenStartCell && isFrozenStartCell.row) {\n const scrollTop = this.scrollTop;\n absoluteTop += scrollTop;\n if (!isFrozenEndCell || !isFrozenEndCell.row) {\n height -= scrollTop;\n height = Math.max(height, this.getRowsHeight(startRow, this.frozenRowCount - 1));\n }\n }\n return new Rect(Math.round(absoluteLeft), Math.round(absoluteTop), Math.round(width), Math.round(height));\n }\n /**\n * 获取指定区域的宽度\n * @param startCol\n * @param startRow\n * @param endCol\n * @param endRow\n * @returns\n */\n getCellsRectWidth(startCol: number, startRow: number, endCol: number, endRow: number): number {\n const isFrozenStartCell = this.isFrozenCell(startCol, startRow);\n const isFrozenEndCell = this.isFrozenCell(endCol, endRow);\n let width = this.getColsWidth(startCol, endCol);\n if (isFrozenStartCell && isFrozenStartCell.col) {\n const scrollLeft = this.scrollLeft;\n if (!isFrozenEndCell || !isFrozenEndCell.col) {\n width -= scrollLeft;\n width = Math.max(width, this.getColsWidth(startCol, this.frozenColCount - 1));\n }\n }\n return width;\n }\n /**\n * 获取行列范围range或者某个单元格所做合并大的范围range的rect范围\n * @param range\n * @returns\n */\n getCellRangeRect(range: CellRange | CellAddress): Rect {\n if ((<CellRange>range).start) {\n return this.getCellsRect(\n (<CellRange>range).start.col,\n (<CellRange>range).start.row,\n (<CellRange>range).end.col,\n (<CellRange>range).end.row\n );\n }\n const cellRange = this.getCellRange((<CellAddress>range).col, (<CellAddress>range).row);\n return this.getCellsRect(cellRange.start.col, cellRange.start.row, cellRange.end.col, cellRange.end.row);\n }\n /**\n * 获取行列范围range或者某个单元格所做合并大的范围range的宽度\n * @param range\n * @returns\n */\n getCellRangeRectWidth(range: CellRange | CellAddress): number {\n if ((<CellRange>range).start) {\n return this.getCellsRectWidth(\n (<CellRange>range).start.col,\n (<CellRange>range).start.row,\n (<CellRange>range).end.col,\n (<CellRange>range).end.row\n );\n }\n const cellRange = this.getCellRange((<CellAddress>range).col, (<CellAddress>range).row);\n return this.getCellsRectWidth(cellRange.start.col, cellRange.start.row, cellRange.end.col, cellRange.end.row);\n }\n /** 判断某个单元格个是否在冻结行或冻结列中 */\n isFrozenCell(\n col: number,\n row: number\n ): {\n row: boolean;\n col: boolean;\n } | null {\n const { frozenRowCount, frozenColCount } = this.internalProps;\n const isFrozenRow = frozenRowCount > 0 && row < frozenRowCount;\n const isFrozenCol = frozenColCount > 0 && col < frozenColCount;\n if (isFrozenRow || isFrozenCol) {\n return {\n row: isFrozenRow,\n col: isFrozenCol\n };\n }\n return null;\n }\n /**\n * 根据y值计算所在行\n * @param absoluteY\n * @returns\n */\n getRowAt(absoluteY: number): { top: number; row: number; bottom: number; height: number } {\n const frozen = _getTargetFrozenRowAt(this, absoluteY);\n if (frozen) {\n return frozen;\n }\n let row = this.getTargetRowAt(absoluteY);\n if (!row) {\n row = {\n top: -1,\n row: -1,\n bottom: -1,\n height: -1\n };\n }\n return row;\n }\n /**\n * 根据x值计算所在列\n * @param absoluteX\n * @returns\n */\n getColAt(absoluteX: number): { left: number; col: number; right: number; width: number } {\n const frozen = _getTargetFrozenColAt(this, absoluteX);\n if (frozen) {\n return frozen;\n }\n let col = this.getTargetColAt(absoluteX);\n if (!col) {\n col = {\n left: -1,\n col: -1,\n right: -1,\n width: 1\n };\n }\n return col;\n }\n /**\n * 根据坐标值获取行列位置,index和rect范围\n * @param absoluteX\n * @param absoluteY\n * @returns\n */\n getCellAt(absoluteX: number, absoluteY: number): CellAddress {\n const rowInfo = this.getRowAt(absoluteY);\n const { row, top, bottom, height } = rowInfo;\n const colInfo = this.getColAt(absoluteX);\n const { col, left, right, width } = colInfo;\n const rect = {\n left,\n right,\n top,\n bottom,\n width,\n height\n };\n return {\n row,\n col,\n rect\n };\n }\n /**\n * 检查行列号是否正确\n * @param col\n * @param row\n * @returns\n */\n _checkRowCol(col: number, row: number) {\n if (col >= 0 && col < this.colCount && row >= 0 && row < this.rowCount) {\n return true;\n }\n return false;\n }\n /**\n * 指定的行列如果在可视范围内,则不进行逻辑处理;如果不在可视范围需要滚动一定距离能将其显示出来\n * @param {number} col The column index.\n * @param {number} row The row index\n * @return {void}\n */\n _makeVisibleCell(col: number, row: number): void {\n if (this._checkRowCol(col, row)) {\n const isFrozenCell = this.isFrozenCell(col, row);\n if (isFrozenCell && isFrozenCell.col && isFrozenCell.row) {\n return;\n }\n const rect = this.getCellRect(col, row);\n const visibleRect = _getScrollableVisibleRect(this);\n if (visibleRect.contains(rect)) {\n return;\n }\n if (!isFrozenCell || !isFrozenCell.col) {\n if (this.getColsWidth(0, this.frozenColCount - 1) + rect.width > this.canvas.width) {\n // do nothing\n // 防止点击左右跳动\n } else if (rect.left < visibleRect.left) {\n this.scrollLeft -= visibleRect.left - rect.left;\n } else if (visibleRect.right < rect.right) {\n this.scrollLeft -= visibleRect.right - rect.right;\n }\n }\n if (!isFrozenCell || !isFrozenCell.row) {\n if (this.getRowsHeight(0, this.frozenRowCount - 1) + rect.height > this.canvas.height) {\n // do nothing\n } else if (rect.top < visibleRect.top) {\n this.scrollTop -= visibleRect.top - rect.top;\n } else if (visibleRect.bottom < rect.bottom) {\n this.scrollTop -= visibleRect.bottom - rect.bottom;\n }\n }\n }\n }\n\n /**\n * 重绘表格\n */\n invalidate(): void {\n this.scenegraph.renderSceneGraph();\n }\n /**\n * 转换成视觉相对table左上角的坐标 如滚动超出表格上方 y将为负值\n * @param absoluteRect\n * @returns\n */\n _toRelativeRect(absoluteRect: Rect): Rect {\n const rect = absoluteRect.copy();\n const visibleRect = this.getVisibleRect();\n rect.offsetLeft(-visibleRect.left);\n rect.offsetTop(-visibleRect.top);\n return rect;\n }\n\n /**\n * 想象一张可以任意大的表格,呈现在我们眼前的只是其中一部分,那这个部分怎么来描述。\n * 如有滚动情况 scrollLeft为100,也就是往右滚动了100(左侧隐藏100)。_getVisibleRect获取到的Rect{_left: 100, _top: 0, _width: 1460, _height: 685}\n * @param table\n * @returns\n */\n getVisibleRect(): Rect {\n const { scrollTop, scrollLeft } = this;\n const width = this.tableNoFrameWidth;\n const height = this.tableNoFrameHeight;\n return new Rect(scrollLeft, scrollTop, width, height);\n }\n /**\n * 获取网格中完全可见的可滚动行数。不包括表头及冻结的行\n * @returns {number}\n */\n get visibleRowCount(): number {\n const { frozenRowCount } = this;\n const visibleRect = this.getVisibleRect();\n const visibleTop =\n frozenRowCount > 0 ? visibleRect.top + this.getRowsHeight(0, frozenRowCount - 1) : visibleRect.top;\n\n const initRow = this.getTargetRowAt(visibleTop);\n if (!initRow) {\n return 0;\n }\n const startRow = Math.max(initRow.top >= visibleTop ? initRow.row : initRow.row + 1, frozenRowCount);\n let absoluteTop = this.getRowsHeight(0, startRow - 1);\n let count = 0;\n const { rowCount } = this;\n for (let row = startRow; row < rowCount; row++) {\n const height = this.getRowHeight(row);\n const bottom = absoluteTop + height;\n if (visibleRect.bottom < bottom) {\n break;\n }\n count++;\n absoluteTop = bottom;\n }\n return count;\n }\n /**\n * 获取表格中完全可见的可滚动列数。不包括表头及冻结的列\n * @returns {number}\n */\n get visibleColCount(): number {\n const { frozenColCount } = this;\n const visibleRect = this.getVisibleRect();\n const visibleLeft =\n frozenColCount > 0 ? visibleRect.left + this.getColsWidth(0, frozenColCount - 1) : visibleRect.left;\n\n const initCol = this.getTargetColAt(visibleLeft);\n if (!initCol) {\n return 0;\n }\n const startCol = Math.max(initCol.left >= visibleLeft ? initCol.col : initCol.col + 1, frozenColCount);\n let absoluteLeft = this.getColsWidth(0, startCol - 1);\n let count = 0;\n const { colCount } = this;\n for (let col = startCol; col < colCount; col++) {\n const width = this.getColWidth(col);\n const right = absoluteLeft + width;\n if (visibleRect.right < right) {\n break;\n }\n count++;\n absoluteLeft = right;\n }\n return count;\n }\n\n get scrollTop(): number {\n return this.stateManeger.scroll.verticalBarPos;\n }\n set scrollTop(scrollTop: number) {\n this.stateManeger.setScrollTop(scrollTop);\n }\n\n get scrollLeft(): number {\n return this.stateManeger.scroll.horizontalBarPos;\n }\n set scrollLeft(scrollLeft: number) {\n this.stateManeger.setScrollLeft(scrollLeft);\n }\n\n getScrollLeft() {\n return this.scrollLeft;\n }\n getScrollTop() {\n return this.scrollTop;\n }\n setScrollLeft(num: number) {\n this.scrollLeft = num;\n }\n setScrollTop(num: number) {\n this.scrollTop = num;\n }\n /**\n * 获取有省略文字的的单元格文本内容\n * cellTextOverflows存储了无法显示全文本的value,供toolTip使用\n * @param {number} col column index.\n * @param {number} row row index\n * @return {string | null}\n */\n getCellOverflowText(col: number, row: number): string | null {\n return this.scenegraph.getCellOverflowText(col, row);\n }\n /**\n * 添加析构逻辑\n * @param disposable\n */\n addDisposable(disposable: { dispose: () => void }): void {\n if (!disposable || !disposable.dispose || typeof disposable.dispose !== 'function') {\n throw new Error('not disposable!');\n }\n const disposables = (this.internalProps.disposables = this.internalProps.disposables || []);\n disposables.push(disposable);\n }\n /**\n * Dispose the table instance.\n * @returns {void}\n */\n dispose(): void {\n const internalProps = this.internalProps;\n internalProps.tooltipHandler?.dispose?.();\n internalProps.menuHandler?.dispose?.();\n IconCache.clearAll();\n\n super.dispose?.();\n internalProps.handler?.dispose?.();\n // internalProps.scrollable?.dispose?.();\n internalProps.focusControl?.dispose?.();\n if (internalProps.disposables) {\n internalProps.disposables.forEach(disposable => disposable?.dispose?.());\n internalProps.disposables = null;\n }\n\n this.scenegraph.stage.release();\n\n const { parentElement } = internalProps.element;\n if (parentElement) {\n parentElement.removeChild(internalProps.element);\n }\n }\n\n fireListeners<TYPE extends keyof TableEventHandlersEventArgumentMap>(\n type: TYPE,\n ...event: TableEventHandlersEventArgumentMap[TYPE]\n ): TableEventHandlersReturnMap[TYPE][] {\n return super.fireListeners(type, ...event);\n }\n\n /**\n * 更新options 目前只支持全量更新\n * @param options\n */\n updateOption(options: BaseTableConstructorOptions) {\n (this.options as BaseTable['options']) = options;\n const {\n // rowCount = 0,\n // colCount = 0,\n frozenColCount = 0,\n // frozenRowCount = 0,\n defaultRowHeight = 40,\n defaultHeaderRowHeight,\n defaultColWidth = 80,\n defaultHeaderColWidth = 80,\n keyboardOptions,\n // disableRowHeaderColumnResize,\n columnResizeMode,\n dragHeaderMode,\n // scrollBar,\n showPin,\n allowFrozenColCount,\n padding,\n hover,\n menu,\n select: click,\n pixelRatio,\n widthMode\n } = options;\n if (pixelRatio && pixelRatio !== this.internalProps.pixelRatio) {\n this.internalProps.pixelRatio = pixelRatio;\n }\n // 更新padding\n if (padding) {\n if (typeof padding === 'number') {\n this.padding.top = padding;\n this.padding.left = padding;\n this.padding.bottom = padding;\n this.padding.right = padding;\n } else {\n padding.top && (this.padding.top = padding.top);\n padding.bottom && (this.padding.bottom = padding.bottom);\n padding.left && (this.padding.left = padding.left);\n padding.right && (this.padding.right = padding.right);\n }\n }\n\n // 更新hover/click状态\n\n // 更新基础组件显示状态\n // (showHeader!=undefined) &&(this.showHeader = showHeader);\n // (showPin!=undefined) &&(this.showPin = showPin);\n // (showSort!=undefined) &&(this.showSort = showSort);\n // style.initDocument(scrollBar);\n // this.showHeader = typeof showHeader === 'boolean' ? showHeader : true;\n // this.scrollBar = typeof scrollBar === 'boolean' ? scrollBar : true;\n this.showPin = typeof showPin === 'boolean' ? showPin : true;\n if (typeof allowFrozenColCount === 'number' && allowFrozenColCount <= 0) {\n this.showPin = false;\n }\n\n this.widthMode = widthMode ?? 'standard';\n // 更新protectedSpace\n const internalProps: IBaseTableProtected = this.internalProps;\n if (Env.mode !== 'node') {\n updateRootElementPadding(internalProps.element, this.padding);\n }\n // internalProps.rowCount = rowCount;\n // internalProps.colCount = colCount;\n internalProps.frozenColCount = frozenColCount;\n // internalProps.frozenRowCount = frozenRowCount;\n internalProps.defaultRowHeight = defaultRowHeight;\n internalProps.defaultHeaderRowHeight = defaultHeaderRowHeight ?? defaultRowHeight;\n internalProps.defaultColWidth = defaultColWidth;\n internalProps.defaultHeaderColWidth = defaultHeaderColWidth ?? defaultColWidth;\n internalProps.keyboardOptions = keyboardOptions;\n\n internalProps.columnResizeMode = columnResizeMode;\n internalProps.dragHeaderMode = dragHeaderMode;\n\n internalProps.cellTextOverflows = {};\n\n internalProps.theme = themes.of(options.theme ?? themes.DEFAULT);\n\n //设置是否自动撑开的配置\n internalProps.autoRowHeight = options.autoRowHeight ?? false;\n //是否统一设置为多行文本\n internalProps.autoWrapText = options.autoWrapText;\n internalProps.allowFrozenColCount = options.allowFrozenColCount ?? internalProps.colCount;\n internalProps.limitMaxAutoWidth = options.limitMaxAutoWidth ?? 450;\n internalProps.tooltip = Object.assign(\n {\n renderMode: 'html',\n isShowOverflowTextTooltip: false,\n confine: true\n },\n options.tooltip\n );\n if (internalProps.tooltip.renderMode === 'html' && !internalProps.tooltipHandler) {\n internalProps.tooltipHandler = new TooltipHandler(this, internalProps.tooltip.confine);\n }\n\n internalProps.menu = Object.assign(\n {\n renderMode: 'html'\n },\n options.menu\n );\n if (internalProps.menu.renderMode === 'html' && !internalProps.menuHandler) {\n internalProps.menuHandler = new MenuHandler(this);\n }\n }\n /**\n * 获取固定行总高\n * @returns\n */\n getFrozenRowsHeight(): number {\n const height = this.getRowsHeight(0, this.frozenRowCount - 1);\n return height;\n }\n /**\n * 获取固定列总宽\n * @returns\n */\n getFrozenColsWidth(): number {\n const w = this.getColsWidth(0, this.frozenColCount - 1);\n return w;\n }\n /**\n * 获取实际绘制范围的宽高,而非可绘制画布大小\n * @param table\n * @returns\n */\n getDrawRange(): Rect {\n //考虑表格整体边框的问题\n // const lineWidths = toBoxArray(this.internalProps.theme.frameStyle?.borderLineWidth ?? [null]);\n // const shadowWidths = toBoxArray(this.internalProps.theme.frameStyle?.shadowBlur ?? [0]);\n const width = Math.min(this.tableNoFrameWidth, this.getAllColsWidth());\n const height = Math.min(this.tableNoFrameHeight, this.getAllRowsHeight());\n // Math.max(lineWidths[3] ?? 0, shadowWidths[3] ?? 0),\n // Math.max(lineWidths[1] ?? 0, shadowWidths[1] ?? 0),\n return new Rect(this.tableX, this.tableY, width, height);\n }\n\n /** @private 将鼠标坐标值 转换成表格坐标系中的坐标位置\n * isAddScroll默认为true 返回的xy 加上了scrollX和scrollY。如滚动后通过该方法计算出的坐标值是未滚动时的坐标\n */\n _getMouseAbstractPoint(\n evt: TouchEvent | MouseEvent | undefined,\n isAddScroll = true\n ): { x: number; y: number } | null {\n const table = this;\n let e: MouseEvent | Touch;\n if (!evt) {\n return null;\n }\n if (isTouchEvent(evt)) {\n e = evt.changedTouches[0];\n } else {\n e = evt;\n }\n const clientX = e.clientX || e.pageX + window.scrollX;\n const clientY = e.clientY || e.pageY + window.scrollY;\n const rect = table.internalProps.canvas.getBoundingClientRect();\n if (rect.right <= clientX) {\n return null;\n }\n if (rect.bottom <= clientY) {\n return null;\n }\n\n const currentWidth = rect.width;\n const originWidth = this.canvas.offsetWidth || currentWidth;\n const widthRatio = currentWidth / originWidth;\n\n const currentHeight = rect.height;\n const originHeight = this.canvas.offsetHeight || currentHeight;\n const heightRatio = currentHeight / originHeight;\n\n const x = (clientX - rect.left) / widthRatio + (isAddScroll ? table.scrollLeft : 0) - table.tableX;\n const y = (clientY - rect.top) / heightRatio + (isAddScroll ? table.scrollTop : 0) - table.tableY;\n return { x, y };\n }\n _getCellEventArgsSet<EVT extends TouchEvent | MouseEvent>(\n e: EVT\n ): {\n abstractPos?: { x: number; y: number };\n cell?: CellAddress;\n eventArgs?: CellAddress & { event: EVT; related?: CellAddress };\n } {\n //将滚动值考虑进去,转换鼠标坐标值\n const abstractPos = this._getMouseAbstractPoint(e);\n if (!abstractPos) {\n return {};\n }\n const cell = this.getCellAt(abstractPos.x, abstractPos.y);\n if (cell.col < 0 || cell.row < 0) {\n return {\n abstractPos,\n cell\n };\n }\n const eventArgs = {\n col: cell.col,\n row: cell.row,\n event: e,\n rect: cell.rect\n };\n return {\n abstractPos,\n cell,\n eventArgs\n };\n }\n getTheme() {\n return this.internalProps.theme;\n }\n\n /**\n * 根据x获取该位置所处列值\n * @param table\n * @param absoluteX\n * @returns\n */\n getTargetColAt(absoluteX: number): { col: number; left: number; right: number; width: number } | null {\n if (absoluteX === 0) {\n return { left: 0, col: 0, right: 0, width: 0 };\n }\n const findBefore = (\n startCol: number,\n startRight: number\n ): {\n left: number;\n col: number;\n right: number;\n width: number;\n } | null => {\n let right = startRight;\n for (let col = startCol; col >= 0; col--) {\n const width = this.getColWidth(col);\n const left = right - width;\n if (Math.round(left) <= Math.round(absoluteX) && Math.round(absoluteX) < Math.round(right)) {\n return {\n left,\n col,\n right,\n width\n };\n }\n right = left;\n }\n return null;\n };\n const findAfter = (\n startCol: number,\n startRight: number\n ): {\n left: number;\n col: number;\n right: number;\n width: number;\n } | null => {\n let left = startRight - this.getColWidth(startCol);\n const { colCount } = this.internalProps;\n for (let col = startCol; col < colCount; col++) {\n const width = this.getColWidth(col);\n const right = left + width;\n if (Math.round(left) <= Math.round(absoluteX) && Math.round(absoluteX) < Math.round(right)) {\n return {\n left,\n col,\n right,\n width\n };\n }\n left = right;\n }\n return null;\n };\n //计算这个位置处是第几行\n const candCol = this.computeTargetColByX(absoluteX);\n const right = this.getColsWidth(0, candCol);\n if (absoluteX >= right) {\n return findAfter(candCol, right);\n }\n return findBefore(candCol, right);\n }\n /**\n * 根据y获取该位置所处行值\n * @param table\n * @param absoluteX\n * @returns\n */\n getTargetRowAt(absoluteY: number): { row: number; top: number; bottom: number; height: number } | null {\n if (absoluteY === 0) {\n return { top: 0, row: 0, bottom: 0, height: 0 };\n }\n\n const findBefore = (\n startRow: number,\n startBottom: number\n ): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n } | null => {\n let bottom = startBottom;\n for (let row = startRow; row >= 0; row--) {\n const height = this.getRowHeight(row);\n const top = bottom - height;\n if (Math.round(top) <= Math.round(absoluteY) && Math.round(absoluteY) < Math.round(bottom)) {\n return {\n top,\n row,\n bottom,\n height\n };\n }\n bottom = top;\n }\n return null;\n };\n const findAfter = (\n startRow: number,\n startBottom: number\n ): {\n top: number;\n row: number;\n bottom: number;\n height: number;\n } | null => {\n let top = startBottom - this.getRowHeight(startRow);\n const { rowCount } = this.internalProps;\n for (let row = startRow; row < rowCount; row++) {\n const height = this.getRowHeight(row);\n const bottom = top + height;\n if (Math.round(top) <= Math.round(absoluteY) && Math.round(absoluteY) < Math.round(bottom)) {\n return {\n top,\n row,\n bottom,\n height\n };\n }\n top = bottom;\n }\n return null;\n };\n // const candRow = Math.min(\n // Math.ceil(absoluteY / this.internalProps.defaultRowHeight),\n // this.rowCount - 1\n // );\n //计算这个位置处是第几行\n const candRow = this.computeTargetRowByY(absoluteY);\n const bottom = this.getRowsHeight(0, candRow);\n if (absoluteY >= bottom) {\n return findAfter(candRow, bottom);\n }\n return findBefore(candRow, bottom);\n }\n /**\n * 根据y值(包括了scroll的)计算所在行\n * @param this\n * @param absoluteY 左边y值,包含了scroll滚动距离\n * @returns\n */\n private computeTargetRowByY(absoluteY: number): number {\n //此方式效率太低,借助缓存,或者大约计算出一个值\n // this.rowHeightsMap.each(0, this.rowCount - 1, (height: number, row: number): boolean | void => {\n // h += height || this.internalProps.defaultRowHeight;\n // if (h > absoluteY) {\n // targetRow = row;\n // return false;\n // }\n // });\n //使用二分法计算出row\n if (this._rowRangeHeightsMap.get(`$0$${this.rowCount - 1}`)) {\n let startRow = 0;\n let endRow = this.rowCount - 1;\n while (endRow - startRow > 1) {\n const midRow = Math.floor((startRow + endRow) / 2);\n if (absoluteY < this._rowRangeHeightsMap.get(`$0$${midRow}`)) {\n endRow = midRow;\n } else if (absoluteY > this._rowRangeHeightsMap.get(`$0$${midRow}`)) {\n startRow = midRow;\n } else {\n return midRow;\n }\n }\n return endRow;\n // if (this._rowRangeHeightsMap.get[`$0$${endRow}`] === absoluteY) return endRow;\n // if (this._rowRangeHeightsMap.get[`$0$${startRow}`] === absoluteY) return startRow;\n }\n //否则使用defaultRowHeight大约计算一个row\n return Math.min(Math.ceil(absoluteY / this.internalProps.defaultRowHeight), this.rowCount - 1);\n }\n /**\n * 根据x值(包括了scroll的)计算所在列 主要借助colRangeWidthsMap缓存来提高计算效率\n * @param this\n * @param absoluteX 左边x值,包含了scroll滚动距离\n * @returns\n */\n private computeTargetColByX(absoluteX: number): number {\n //使用二分法计算出col\n if (this._colRangeWidthsMap.get(`$0$${this.colCount - 1}`)) {\n let startCol = 0;\n let endCol = this.colCount - 1;\n while (endCol - startCol > 1) {\n const midCol = Math.floor((startCol + endCol) / 2);\n if (absoluteX < this._colRangeWidthsMap.get(`$0$${midCol}`)) {\n endCol = midCol;\n } else if (absoluteX > this._colRangeWidthsMap.get(`$0$${midCol}`)) {\n startCol = midCol;\n } else {\n return midCol;\n }\n }\n return endCol;\n }\n //否则使用defaultColWidth大约计算一个col\n return Math.min(Math.ceil(absoluteX / this.internalProps.defaultColWidth), this.colCount - 1);\n }\n /**\n * 清除选中单元格\n */\n clearSelected() {\n // do nothing\n }\n /**\n * 选中单元格 和鼠标选中单元格效果一致\n * @param col\n * @param row\n */\n selectCell(col: number, row: number) {\n // do nothing\n }\n\n abstract isListTable(): boolean;\n abstract isPivotTable(): boolean;\n\n protected abstract getSortFuncFromHeaderOption(\n columns: ColumnsDefine | undefined,\n field: FieldDef,\n fieldKey?: FieldKeyDef\n ): ((v1: any, v2: any, order: string) => 0 | 1 | -1) | undefined;\n abstract refreshHeader(): void;\n abstract refreshRowColCount(): void;\n abstract getHierarchyState(col: number, row: number): HierarchyState | null;\n abstract toggleHierarchyState(col: number, row: number): void;\n abstract hasHierarchyTreeHeader(): boolean;\n abstract getMenuInfo(col: number, row: number, type: string): DropDownMenuEventInfo;\n abstract moveHeaderPosition(source: CellAddress, target: CellAddress): boolean;\n /** @private */\n abstract getFieldData(field: FieldDef | FieldFormat | undefined, col: number, row: number): FieldData;\n abstract getRecordIndexByRow(col: number, row: number): number;\n abstract getCellOriginRecord(col: number, row: number): MaybePromiseOrUndefined;\n abstract getCellValue(col: number, row: number): FieldData;\n abstract getCellOriginValue(col: number, row: number): FieldData;\n /**\n * 更新页码\n * @param cof 修改页码\n */\n updatePager(cof: IPagerConf): void {\n if (this.pagerConf) {\n typeof cof.currentPage === 'number' && cof.currentPage >= 0 && (this.pagerConf.currentPage = cof.currentPage);\n cof.perPageCount && (this.pagerConf.perPageCount = cof.perPageCount || this.pagerConf.perPageCount);\n // 清空单元格内容\n this.scenegraph.clearCells();\n //数据源缓存数据更新\n this.dataSource.updatePager(this.pagerConf);\n this.refreshRowColCount();\n // 生成单元格场景树\n this.scenegraph.createSceneGraph();\n this.invalidate();\n }\n }\n get allowFrozenColCount(): number {\n return this.internalProps.allowFrozenColCount;\n }\n\n /**\n * Get the number of cols that are row header.\n */\n get rowHeaderLevelCount(): number {\n return this.internalProps.layoutMap.rowHeaderLevelCount;\n }\n /**\n * Get the number of rows that are col header.\n */\n get columnHeaderLevelCount(): number {\n return this.internalProps.layoutMap.columnHeaderLevelCount;\n }\n /**\n * Get the records.\n */\n get records(): any[] | null {\n return this.internalProps.records || null;\n }\n /**\n * Get the data source.\n */\n get dataSource(): DataSource | CachedDataSource {\n return this.internalProps.dataSource;\n }\n /**\n * Set the data source from given\n */\n set dataSource(dataSource: DataSource | CachedDataSource) {\n // 清空单元格内容\n this.scenegraph.clearCells();\n _setDataSource(this, dataSource);\n this.refreshRowColCount();\n // 生成单元格场景树\n this.scenegraph.createSceneGraph();\n this.invalidate();\n }\n /**\n * Get the autoWrapText.\n */\n get autoWrapText(): boolean {\n return this.internalProps.autoWrapText;\n }\n /**\n * Set the autoWrapText\n */\n set autoWrapText(autoWrapText: boolean) {\n if (this.internalProps.autoWrapText === autoWrapText) {\n return;\n }\n this.internalProps.autoWrapText = autoWrapText;\n this.options.autoWrapText = autoWrapText;\n if (this.internalProps.layoutMap) {\n //后面如果修改是否转置\n this.refreshHeader();\n // if (this.internalProps.autoRowHeight) this.computeRowsHeight();\n this.invalidate();\n }\n }\n\n /**\n * 获取当前使用的主题\n */\n get theme(): TableTheme {\n return this.internalProps.theme;\n }\n /**\n * 设置主题\n */\n set theme(theme: TableTheme) {\n const t = themes.of(theme);\n this.internalProps.theme = t ? t : themes.DEFAULT;\n this.options.theme = theme;\n this._updateSize();\n this._resetFrozenColCount();\n this.invalidate();\n }\n\n /**\n * 根据行列号获取对应的字段名\n * @param {number} col column index.\n * @param {number} row row index.\n */\n getBodyField(col: number, row: number): FieldDef | undefined {\n return this.internalProps.layoutMap.getBody(col, row).field;\n }\n /**\n * 根据行列号获取配置\n * @param {number} col column index.\n * @param {number} row row index.\n * @return {ColumnDefine} The column define object.\n */\n getBodyColumnDefine(col: number, row: number): ColumnDefine {\n // TODO: 暂时修复透视表报错\n const body = this.internalProps.layoutMap.getBody(col, row);\n return body?.define;\n }\n\n getBodyColumnType(col: number, row: number): ColumnTypeOption {\n return this.internalProps.layoutMap.getBody(col, row).columnType;\n }\n /**\n * 根据行列号获取对应的字段名\n * @param {number} col column index.\n * @param {number} row row index.\n */\n getHeaderField(col: number, row: number): FieldDef {\n return this.internalProps.layoutMap.getHeaderField(col, row);\n }\n getHeaderFieldKey(col: number, row: number): FieldDef {\n return this.internalProps.layoutMap.getHeaderFieldKey(col, row);\n }\n /**\n * 根据行列号获取配置\n * @param {number} col column index.\n * @param {number} row row index.\n * @return {ColumnDefine} The column define object.\n */\n getHeaderDefine(col: number, row: number): ColumnDefine {\n const hd = this.internalProps.layoutMap.getHeader(col, row);\n return hd?.define;\n }\n getCellType(col: number, row: number): CellType {\n const hdType = this.internalProps.layoutMap.getCellType(col, row);\n return hdType;\n }\n /**\n * 获取行列表头的路径\n * @param col\n * @param row\n * @returns 返回结构{\n colHeaderPaths?: any[];\n rowHeaderPaths?: any[];\n}\n */\n getCellHeaderPaths(col: number, row: number): ICellHeaderPaths {\n const cellHeaderPaths = this.internalProps.layoutMap.getCellHeaderPaths(col, row);\n return cellHeaderPaths;\n }\n /**\n * Get the headers define of the given column.\n * @param {number} col The column index.\n * @return {*} The array of header define object.\n */\n getHeadersDefine(col: number, row: number): ColumnDefine[] {\n const headers = [];\n while (true) {\n const header = this.getHeaderDefine(col, row);\n if (header && (header.field || header.columns)) {\n headers.push(header);\n } else {\n break;\n }\n\n row++;\n }\n\n return headers;\n }\n _getHeaderLayoutMap(col: number, row: number): HeaderData {\n return this.internalProps.layoutMap.getHeader(col, row);\n }\n _getBodyLayoutMap(col: number, row: number): ColumnData | IndicatorData {\n return this.internalProps.layoutMap.getBody(col, row);\n }\n /** 获取绘制画布的canvas上下文 */\n getContext(): CanvasRenderingContext2D {\n return this.internalProps.context;\n }\n /**\n * 根据行列号获取整条数据记录\n * @param {number} col col index.\n * @param {number} row row index.\n * @return {object} record.\n */\n getRecordByRowCol(col: number, row: number): MaybePromiseOrUndefined {\n if (this.internalProps.layoutMap.isHeader(col, row)) {\n return undefined;\n }\n return this.internalProps.dataSource?.get(this.getRecordIndexByRow(col, row));\n }\n\n /**\n * 根据数据的索引获取应该显示在body的第几行\n * @param {number} index The record index.\n */\n getRecordStartRowByRecordIndex(index: number): number {\n return this.internalProps.layoutMap.getRecordStartRowByRecordIndex(index);\n }\n /**\n * 根据给定的排序状态 获取对应的表格单元格信息\n * @param sortState\n * @returns\n */\n _getHeaderCellBySortState(sortState: SortState): CellAddress | undefined {\n const { layoutMap } = this.internalProps;\n let hd;\n if (sortState.fieldKey) {\n hd = layoutMap.headerObjects.find((col: any) => col && col.fieldKey === sortState.fieldKey);\n } else {\n hd = layoutMap.headerObjects.find((col: any) => col && col.field === sortState.field);\n }\n if (hd) {\n const headercell = layoutMap.getHeaderCellAdress(hd.id as number);\n return headercell;\n }\n return undefined;\n }\n\n /**\n * 获取给定单元格的范围 如果是合并单元格,则返回合并单元格的范围\n */\n getCellRange(col: number, row: number): CellRange {\n return this.internalProps.layoutMap.getCellRange(col, row);\n }\n /**\n * 判断两个单元格是否是属于同一个合并区域\n * @param col\n * @param row\n * @param targetCol\n * @param targetRow\n * @returns\n */\n isCellRangeEqual(col: number, row: number, targetCol: number, targetRow: number): boolean {\n return this.internalProps.layoutMap.isCellRangeEqual(col, row, targetCol, targetRow);\n }\n /**\n * 根据行列号获取布局id\n * @param col\n * @param row\n * @returns\n */\n _getLayoutCellId(col: number, row: number): LayoutObjectId {\n return this.internalProps.layoutMap.getCellId(col, row);\n }\n /**\n * 获取表头的描述信息\n * @param col\n * @param row\n * @returns\n */\n getHeaderDescription(col: number, row: number): string | undefined {\n const field = this._getHeaderLayoutMap(col, row);\n const fieldDef = field?.define;\n const description = fieldDef?.description ?? field?.description;\n if (typeof description === 'function') {\n const arg: CellInfo = {\n col,\n row,\n value: this.getCellValue(col, row),\n dataValue: this.getCellOriginValue(col, row)\n };\n return description(arg);\n }\n return description;\n }\n /**\n * 设置表格数据 及排序状态\n * @param records\n * @param sort\n */\n setRecords(records: Array<any>, sort?: SortState | SortState[]): void {\n const time = typeof window !== 'undefined' ? window.performance.now() : 0;\n // 清空单元格内容\n this.scenegraph.clearCells();\n\n //重复逻辑抽取updateWidthHeight\n if (sort !== undefined) {\n (this as any).sortState = sort;\n this.stateManeger.setSortState((this as any).sortState as SortState);\n }\n if (records) {\n _setRecords(this, records);\n if ((this as any).sortState) {\n let order: any;\n let field: any;\n let fieldKey: any;\n if (Array.isArray((this as any).sortState)) {\n if ((this as any).sortState.length !== 0) {\n ({ order, field, fieldKey } = (this as any).sortState?.[0]);\n }\n } else {\n ({ order, field, fieldKey } = (this as any).sortState as SortState);\n }\n // 根据sort规则进行排序\n if (order && field && order !== 'normal') {\n const sortFunc = this.getSortFuncFromHeaderOption(undefined, field, fieldKey);\n // 如果sort传入的信息不能生成正确的sortFunc,直接更新表格,避免首次加载无法正常显示内容\n let hd;\n if (fieldKey) {\n hd = this.internalProps.layoutMap.headerObjects.find((col: any) => col && col.fieldKey === fieldKey);\n } else {\n hd = this.internalProps.layoutMap.headerObjects.find((col: any) => col && col.field === field);\n }\n hd?.define?.sort && this.dataSource.sort(hd.field, order, sortFunc ?? defaultOrderFn);\n }\n }\n this.refreshRowColCount();\n } else {\n _setRecords(this, records);\n }\n\n // 生成单元格场景树\n this.scenegraph.createSceneGraph();\n this.invalidate();\n console.log('setRecords cost time:', (typeof window !== 'undefined' ? window.performance.now() : 0) - time);\n }\n setDropDownMenuHighlight(cells: DropDownMenuHighlightInfo[]): void {\n this.stateManeger.setDropDownMenuHighlight(cells);\n }\n _dropDownMenuIsHighlight(colNow: number, rowNow: number, index: number): boolean {\n return this.stateManeger.dropDownMenuIsHighlight(colNow, rowNow, index);\n }\n\n /** 判断单元格是否属于表头部分 */\n isHeader(col: number, row: number): boolean {\n return this.internalProps.layoutMap && this.internalProps.layoutMap.isHeader(col, row);\n }\n /** 判断单元格是否属于列表头部分 */\n isColumnHeader(col: number, row: number): boolean {\n return this.internalProps.layoutMap?.isColumnHeader(col, row);\n }\n /** 判断单元格是否属于行表头部分 */\n isRowHeader(col: number, row: number): boolean {\n return this.internalProps.layoutMap?.isRowHeader(col, row);\n }\n /** 判断单元格是否属于角表头部分 */\n isCornerHeader(col: number, row: number): boolean {\n return this.internalProps.layoutMap?.isCornerHeader(col, row);\n }\n /** 获取单元格的基本信息 目前主要组织单元格信息给事件传递给用户的参数使用 */\n getCellInfo(col: number, row: number): MousePointerCellEvent {\n const colDef = this.isHeader(col, row) ? this.getHeaderDefine(col, row) : this.getBodyColumnDefine(col, row);\n return {\n col,\n row,\n field: this.getHeaderField(col, row),\n cellHeaderPaths: this.internalProps.layoutMap.getCellHeaderPaths(col, row),\n caption: colDef.caption,\n columnType: colDef.columnType\n ? typeof colDef.columnType === 'string'\n ? colDef.columnType\n : 'progressbar'\n : 'text',\n originData: this.getCellOriginRecord(col, row),\n cellRange: this.getCellRangeRelativeRect({ col, row }),\n value: this.getCellValue(col, row),\n dataValue: this.getCellOriginValue(col, row),\n cellType: this.getCellType(col, row),\n scaleRatio: this.canvas.getBoundingClientRect().width / this.canvas.offsetWidth\n };\n }\n /** @private */\n _hasField(field: FieldDef, col: number, row: number): boolean {\n if (field == null) {\n return false;\n }\n const table = this;\n if (table.internalProps.layoutMap.isHeader(col, row)) {\n return false;\n }\n const index = table.getRecordIndexByRow(col, row);\n return table.internalProps.dataSource.hasField(index, field);\n }\n /**\n * 获取单元格的样式 内部逻辑使用 获取到的样式并不是计算后的\n * @param col\n * @param row\n * @returns\n */\n _getCellStyle(col: number, row: number): FullExtendStyle {\n const { layoutMap } = this.internalProps;\n const isHeader = layoutMap.isHeader(col, row);\n if (isHeader) {\n let cacheStyle = this.headerStyleCache.get(`${col}-${row}`);\n if (cacheStyle) {\n return cacheStyle;\n }\n const hd = layoutMap.getHeader(col, row);\n // const styleClass = hd.headerType.StyleClass; //BaseHeader文件\n const styleClass = this.internalProps.headerHelper.getStyleClass(hd.headerType);\n const { style } = hd;\n cacheStyle = <FullExtendStyle>headerStyleContents.of(\n style,\n layoutMap.isColumnHeader(col, row)\n ? this.theme.headerStyle\n : layoutMap.isRowHeader(col, row)\n ? this.theme.rowHeaderStyle\n : this.theme.cornerHeaderStyle,\n {\n col,\n row,\n table: this as BaseTableAPI,\n value: this.getCellValue(col, row),\n dataValue: this.getCellOriginValue(col, row),\n cellHeaderPaths: this.getCellHeaderPaths(col, row)\n },\n styleClass,\n this.options.autoWrapText\n );\n this.headerStyleCache.set(`${col}-${row}`, cacheStyle);\n return cacheStyle;\n }\n let cacheKey;\n //如果是主体部分,获取相应的style\n if (\n (this.isListTable() && !(this as any).transpose) ||\n (this.isPivotTable() && (this.internalProps.layoutMap as PivotHeaderLayoutMap).indicatorsAsCol)\n ) {\n cacheKey = col;\n } else {\n cacheKey = row;\n }\n let cacheStyle = this.bodyStyleCache.get(cacheKey);\n if (cacheStyle) {\n return cacheStyle;\n }\n const column = layoutMap.getBody(col, row);\n // const styleClass = column?.columnType?.StyleClass; //BaseColumn文件\n const styleClass = this.internalProps.bodyHelper.getStyleClass(column.columnType);\n const style = column?.style;\n cacheStyle = <FullExtendStyle>columnStyleContents.of(\n style,\n this.theme.bodyStyle,\n {\n col,\n row,\n table: this,\n value: this.getCellValue(col, row),\n dataValue: this.getCellOriginValue(col, row),\n cellHeaderPaths: this.getCellHeaderPaths(col, row)\n },\n styleClass,\n this.options.autoWrapText\n );\n this.bodyStyleCache.set(cacheKey, cacheStyle);\n return cacheStyle;\n }\n /**\n * 该列是否可调整列宽\n * @param col\n * @returns\n */\n _canResizeColumn(col: number, row: number): boolean {\n if (!(col >= 0 && row >= 0)) {\n return false;\n }\n if (this.isCellRangeEqual(col, row, col + 1, row)) {\n return false;\n }\n\n if (this.internalProps.columnResizeMode === 'none') {\n return false;\n } else if (this.internalProps.columnResizeMode === 'header') {\n // 判断表头\n if (!this.isHeader(col, row)) {\n return false;\n }\n } else if (this.internalProps.columnResizeMode === 'body') {\n // 判断内容\n if (this.isHeader(col, row)) {\n return false;\n }\n }\n\n const limit = this.colWidthsLimit[col];\n if (!limit || !limit.min || !limit.max) {\n return true;\n }\n return limit.max !== limit.min;\n }\n /**\n * 选中位置是否可拖拽调整位置\n * @param col\n * @returns\n */\n _canDragHeaderPosition(col: number, row: number): boolean {\n if (this.isHeader(col, row) && this.stateManeger.isSelected(col, row)) {\n const selectRange = this.stateManeger.select.ranges[0];\n //判断是否整行或者整列选中\n if (this.isColumnHeader(col, row)) {\n if (selectRange.end.row !== this.rowCount - 1) {\n return false;\n }\n } else if (this.isRowHeader(col, row)) {\n if (selectRange.end.col !== this.colCount - 1) {\n return false;\n }\n } else {\n return false;\n }\n const define = this.getHeaderDefine(col, row);\n if (define.dragHeader === undefined) {\n if (this.internalProps.dragHeaderMode === 'all') {\n return true;\n } else if (this.internalProps.dragHeaderMode === 'column') {\n if (this.isColumnHeader(col, row)) {\n return true;\n }\n } else if (this.internalProps.dragHeaderMode === 'row') {\n if (this.isRowHeader(col, row)) {\n return true;\n }\n }\n return false;\n }\n return define.dragHeader;\n }\n return false;\n }\n\n /**\n * 获取某个单元格所配置的所有图标\n */\n getCellIcons(col: number, row: number): ColumnIconOption[] {\n let icons;\n if (this.isHeader(col, row)) {\n icons = this.internalProps.headerHelper.getIcons(col, row);\n } else {\n const cellValue = this.getCellValue(col, row);\n const dataValue = this.getCellOriginValue(col, row);\n const ctx = this.internalProps.context;\n icons = this.internalProps.bodyHelper.getIcons(col, row, cellValue, dataValue, ctx);\n }\n return icons;\n }\n\n /** 指定某个单元格显示下拉菜单【内容可以自定义为menu数组或者dom】 */\n showDropDownMenu(col: number, row: number, dropDownMenuOptions?: DropDownMenuOptions) {\n let menuType: MenuInstanceType = 'dropdown-menu';\n if (dropDownMenuOptions) {\n menuType = Array.isArray(dropDownMenuOptions.content) ? 'dropdown-menu' : 'container';\n }\n if (this.internalProps.menu.renderMode === 'html') {\n this.stateManeger.menu.isShow = true;\n this.internalProps.menuHandler._bindToCell(col, row, menuType, dropDownMenuOptions);\n }\n // this.stateManeger.showDropDownMenu(col,row,) //最好和这个保持一致\n }\n /** 暂时只支持全局设置了tooltip.renderMode='html',调用该接口才有效 */\n showTooltip(col: number, row: number, tooltipOptions?: TooltipOptions) {\n // this.drawHoverIconTooltip();\n if (this.internalProps.tooltip.renderMode === 'html') {\n this.internalProps.tooltipHandler._bindToCell(col, row, tooltipOptions);\n }\n }\n /**\n * 获取某个单元格的样式 供业务方调用\n * @param col\n * @param row\n */\n getCellStyle(col: number, row: number): CellStyle {\n const actStyle = this._getCellStyle(col, row);\n\n const theme = getStyleTheme(actStyle, this, col, row, getProp).theme;\n\n const { autoWrapText, lineClamp, textOverflow } = actStyle;\n\n return {\n textAlign: theme.text.textAlign,\n textBaseline: theme.text.textBaseline,\n bgColor: theme.group.fillColor,\n color: theme.text.fillColor,\n fontFamily: theme.text.fontFamily,\n fontSize: theme.text.fontSize,\n fontWeight: theme.text.fontWeight,\n fontVariant: theme.text.fontVariant,\n fontStyle: theme.text.fontStyle,\n lineHeight: theme.text.lineHeight,\n autoWrapText: autoWrapText ?? false,\n lineClamp: lineClamp ?? 'auto',\n textOverflow,\n borderColor: theme.group.strokeColor,\n borderLineWidth: theme.group.lineWidth,\n borderLineDash: theme.group.lineDash,\n underline: theme.text.underline,\n // underlineColor: theme.text.underlineColor,\n underlineDash: (theme.text as any).underlineDash,\n // underlineWidth: (theme.text as any).underlineWidth,\n lineThrough: theme.text.lineThrough,\n // lineThroughColor: theme.text.lineThroughColor,\n lineThroughDash: (theme.text as any).lineThroughDash\n // lineThroughLineWidth: textDecorationLineWidth,\n } as any;\n }\n /**\n * 获取所有body单元格数据信息\n * @param colMaxCount 限制获取最多列数\n * @param rowMaxCount 限制获取最多行数\n * @returns CellInfo[][]\n */\n getAllBodyCells(colMaxCount?: number, rowMaxCount?: number): CellInfo[][] {\n const start = { col: this.rowHeaderLevelCount, row: this.columnHeaderLevelCount };\n const end = { col: this.colCount - 1, row: this.rowCount - 1 };\n return Array(Math.min(rowMaxCount ?? 2000, end.row - start.row + 1, this.rowCount))\n .fill(0)\n .map((_, i) =>\n Array(Math.min(colMaxCount ?? 2000, end.col - start.col + 1, this.colCount))\n .fill(0)\n .map((_, j) => this.getCellInfo(j + start.col, i + start.row))\n );\n }\n /**\n * 获取所有单元格数据信息\n * @param colMaxCount 限制获取最多列数\n * @param rowMaxCount 限制获取最多行数\n * @returns CellInfo[][]\n */\n getAllCells(colMaxCount?: number, rowMaxCount?: number): CellInfo[][] {\n const start = { col: 0, row: 0 };\n const end = { col: this.colCount - 1, row: this.rowCount - 1 };\n return Array(Math.min(rowMaxCount ?? 2000, end.row - start.row + 1, this.rowCount))\n .fill(0)\n .map((_, i) =>\n Array(Math.min(colMaxCount ?? 2000, end.col - start.col + 1, this.colCount))\n .fill(0)\n .map((_, j) => this.getCellInfo(j + start.col, i + start.row))\n );\n }\n /**\n * 获取所有列表头单元格数据信息\n * @returns CellInfo[][]\n */\n getAllColumnHeaderCells(): CellInfo[][] {\n const start = { col: this.rowHeaderLevelCount, row: 0 };\n const end = { col: this.colCount - 1, row: this.columnHeaderLevelCount - 1 };\n return Array(end.row - start.row + 1)\n .fill(0)\n .map((_, i) =>\n Array(end.col - start.col + 1)\n .fill(0)\n .map((_, j) => this.getCellInfo(j + start.col, i + start.row))\n );\n }\n /**\n * 获取所有行表头单元格数据信息\n * @returns CellInfo[][]\n */\n getAllRowHeaderCells(): CellInfo[][] {\n const start = { col: 0, row: this.columnHeaderLevelCount };\n const end = { col: this.rowHeaderLevelCount - 1, row: this.rowCount - 1 };\n return Array(end.row - start.row + 1)\n .fill(0)\n .map((_, i) =>\n Array(end.col - start.col + 1)\n .fill(0)\n .map((_, j) => this.getCellInfo(j + start.col, i + start.row))\n );\n }\n /**\n * 滚动到具体某个单元格位置\n * @param cellAddr 要滚动到的单元格位置\n */\n scrollToCell(cellAddr: { col?: number; row?: number }) {\n const drawRange = this.getDrawRange();\n if (isValid(cellAddr.col) && cellAddr.col >= this.frozenColCount) {\n const frozenWidth = this.getFrozenColsWidth();\n const left = this.getColsWidth(0, cellAddr.col - 1);\n this.scrollLeft = Math.min(left - frozenWidth, this.getAllColsWidth() - drawRange.width);\n }\n if (isValid(cellAddr.row) && cellAddr.row >= this.frozenRowCount) {\n const frozenHeight = this.getFrozenRowsHeight();\n const top = this.getRowsHeight(0, cellAddr.row - 1);\n this.scrollTop = Math.min(top - frozenHeight, this.getAllRowsHeight() - drawRange.height);\n }\n this.invalidate();\n }\n\n /**获取选中区域的内容 作为复制内容 */\n getCopyValue(): string {\n const ranges = this.stateManeger.select.ranges;\n let minCol = Math.min(ranges[0].start.col, ranges[0].end.col);\n let maxCol = Math.max(ranges[0].start.col, ranges[0].end.col);\n let minRow = Math.min(ranges[0].start.row, ranges[0].end.row);\n let maxRow = Math.max(ranges[0].start.row, ranges[0].end.row);\n ranges.forEach((a: CellRange) => {\n minCol = Math.min(minCol, a.start.col, a.end.col);\n maxCol = Math.max(maxCol, a.start.col, a.end.col);\n minRow = Math.min(minRow, a.start.row, a.end.row);\n maxRow = Math.max(maxRow, a.start.row, a.end.row);\n // return a.start.row - b.start.row || a.start.col - b.start.col\n });\n const isExistDataInRow = (r: number) => {\n let isExist = false;\n ranges.forEach((range: CellRange) => {\n const minRow = Math.min(range.start.row, range.end.row);\n const maxRow = Math.max(range.start.row, range.end.row);\n if (minRow <= r && maxRow >= r) {\n isExist = true;\n }\n });\n return isExist;\n };\n const isExistDataInCol = (c: number) => {\n let isExist = false;\n ranges.forEach((range: CellRange) => {\n const minCol = Math.min(range.start.col, range.end.col);\n const maxCol = Math.max(range.start.col, range.end.col);\n if (minCol <= c && maxCol >= c) {\n isExist = true;\n }\n });\n return isExist;\n };\n\n const getRangeExistDataInCell = (c: number, r: number) => {\n let isExistRange;\n ranges.forEach((range: CellRange) => {\n const minRow = Math.min(range.start.row, range.end.row);\n const maxRow = Math.max(range.start.row, range.end.row);\n const minCol = Math.min(range.start.col, range.end.col);\n const maxCol = Math.max(range.start.col, range.end.col);\n if (minCol <= c && maxCol >= c && minRow <= r && maxRow >= r) {\n isExistRange = range;\n }\n });\n return isExistRange;\n };\n const getCopyCellValue = (col: number, row: number, range?: CellRange): string | Promise<string> | void => {\n const cellRange = this.getCellRange(col, row);\n let copyStartCol = cellRange.start.col;\n let copyStartRow = cellRange.start.row;\n if (range) {\n const rangeMinCol = Math.min(range.start.col, range.end.col);\n const rangeMinRow = Math.min(range.start.row, range.end.row);\n copyStartCol = Math.max(rangeMinCol, cellRange.start.col);\n copyStartRow = Math.max(rangeMinRow, cellRange.start.row);\n }\n\n if (copyStartCol !== col || copyStartRow !== row) {\n return '';\n }\n\n const value = this.getCellValue(col, row);\n return value;\n };\n let copyValue = '';\n\n for (let r = minRow; r <= maxRow; r++) {\n const isExistData = isExistDataInRow(r);\n if (isExistData) {\n for (let c = minCol; c <= maxCol; c++) {\n const isExistDataCol = isExistDataInCol(c);\n if (isExistDataCol) {\n const range: CellRange | undefined = getRangeExistDataInCell(c, r);\n if (range) {\n const copyCellValue = getCopyCellValue(c, r, range);\n if (typeof Promise !== 'undefined' && copyCellValue instanceof Promise) {\n //无法获取异步数据\n } else {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n const strCellValue = `${copyCellValue}`;\n if (/^\\[object .*\\]$/.exec(strCellValue)) {\n //object 对象忽略掉\n } else {\n copyValue += strCellValue;\n }\n }\n if (c < range.end.col || c < maxCol) {\n copyValue += '\\t';\n }\n } else {\n copyValue += '\\t';\n }\n }\n }\n copyValue += '\\n';\n }\n }\n return copyValue;\n }\n\n /**获取选中区域的每个单元格详情 */\n getSelectedCellInfos(): CellInfo[][] {\n const ranges = this.stateManeger.select.ranges;\n let minCol = Math.min(ranges[0].start.col, ranges[0].end.col);\n let maxCol = Math.max(ranges[0].start.col, ranges[0].end.col);\n let minRow = Math.min(ranges[0].start.row, ranges[0].end.row);\n let maxRow = Math.max(ranges[0].start.row, ranges[0].end.row);\n ranges.forEach((a: CellRange) => {\n minCol = Math.min(minCol, a.start.col, a.end.col);\n maxCol = Math.max(maxCol, a.start.col, a.end.col);\n minRow = Math.min(minRow, a.start.row, a.end.row);\n maxRow = Math.max(maxRow, a.start.row, a.end.row);\n // return a.start.row - b.start.row || a.start.col - b.start.col\n });\n const isExistDataInRow = (r: number) => {\n let isExist = false;\n ranges.forEach((range: CellRange) => {\n const minRow = Math.min(range.start.row, range.end.row);\n const maxRow = Math.max(range.start.row, range.end.row);\n if (minRow <= r && maxRow >= r) {\n isExist = true;\n }\n });\n return isExist;\n };\n const isExistDataInCol = (c: number) => {\n let isExist = false;\n ranges.forEach((range: CellRange) => {\n const minCol = Math.min(range.start.col, range.end.col);\n const maxCol = Math.max(range.start.col, range.end.col);\n if (minCol <= c && maxCol >= c) {\n isExist = true;\n }\n });\n return isExist;\n };\n\n const getRangeExistDataInCell = (c: number, r: number) => {\n let isExistRange;\n ranges.forEach((range: CellRange) => {\n const minRow = Math.min(range.start.row, range.end.row);\n const maxRow = Math.max(range.start.row, range.end.row);\n const minCol = Math.min(range.start.col, range.end.col);\n const maxCol = Math.max(range.start.col, range.end.col);\n if (minCol <= c && maxCol >= c && minRow <= r && maxRow >= r) {\n isExistRange = range;\n }\n });\n return isExistRange;\n };\n\n const cellInfoArray: CellInfo[][] = [];\n\n for (let r = minRow; r <= maxRow; r++) {\n const isExistData = isExistDataInRow(r);\n if (isExistData) {\n const cellInfoRow: CellInfo[] = [];\n for (let c = minCol; c <= maxCol; c++) {\n const isExistDataCol = isExistDataInCol(c);\n if (isExistDataCol) {\n const range: CellRange | undefined = getRangeExistDataInCell(c, r);\n if (range) {\n const cellInfo = this.getCellInfo(c, r);\n cellInfoRow.push(cellInfo);\n }\n }\n }\n cellInfoArray.push(cellInfoRow);\n }\n }\n return cellInfoArray;\n }\n /** 计算字体的宽度接口 */\n measureText(text: string, font: { fontSize: number; fontFamily: string }): ITextSize {\n return textMeasure.measureText(text, font);\n }\n measureTextBounds(attributes: IWrapTextGraphicAttribute): ITextSize {\n const text = new WrapText(attributes);\n return {\n width: text.AABBBounds.width(),\n height: text.AABBBounds.height()\n };\n }\n /** 获取单元格上定义的自定义渲染配置 */\n getCustomRender(col: number, row: number): ICustomRender {\n let customRender;\n if (this.getCellType(col, row) !== 'body') {\n const define = this.getHeaderDefine(col, row);\n customRender = define?.headerCustomRender;\n } else {\n const define = this.getBodyColumnDefine(col, row);\n customRender = define?.customRender || this.customRender;\n }\n return customRender;\n }\n /** 获取单元格上定义的自定义布局元素配置 */\n getCustomLayout(col: number, row: number): ICustomLayout {\n let customLayout;\n if (this.getCellType(col, row) !== 'body') {\n const define = this.getHeaderDefine(col, row);\n customLayout = define?.headerCustomLayout;\n } else {\n const define = this.getBodyColumnDefine(col, row);\n customLayout = define?.customLayout;\n }\n return customLayout;\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BaseTable } from '../core';
|
|
2
|
+
import type { Rect } from '../tools/Rect';
|
|
3
|
+
export declare class FocusInput extends EventTarget {
|
|
4
|
+
private _table;
|
|
5
|
+
private _input;
|
|
6
|
+
constructor(table: BaseTable, parentElement: HTMLElement);
|
|
7
|
+
focus(): void;
|
|
8
|
+
setFocusRect(rect: Rect, value: string): void;
|
|
9
|
+
get input(): HTMLInputElement;
|
|
10
|
+
dispose(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.FocusInput = void 0;
|
|
6
|
+
|
|
7
|
+
const env_1 = require("../tools/env");
|
|
8
|
+
|
|
9
|
+
class FocusInput extends EventTarget {
|
|
10
|
+
constructor(table, parentElement) {
|
|
11
|
+
if (super(), this._table = table, "node" === env_1.Env.mode) return;
|
|
12
|
+
const div = document.createElement("div");
|
|
13
|
+
div.style.opacity = "0", div.dataset.vtable = "vtable", div.style.pointerEvents = "none",
|
|
14
|
+
div.classList.add("input-container");
|
|
15
|
+
const input = this._input = document.createElement("input");
|
|
16
|
+
div.appendChild(input), input.classList.add("table-focus-control"), input.dataset.vtable = "vtable",
|
|
17
|
+
input.readOnly = !0, parentElement.appendChild(div);
|
|
18
|
+
}
|
|
19
|
+
focus() {
|
|
20
|
+
this._input.focus({
|
|
21
|
+
preventScroll: !0
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
setFocusRect(rect, value) {
|
|
25
|
+
const input = this._input;
|
|
26
|
+
input.value = value, input.select();
|
|
27
|
+
const top = rect.top - this._table.scrollTop, left = rect.left - this._table.scrollLeft;
|
|
28
|
+
input.style.top = `${top.toFixed()}px`, input.style.left = `${left.toFixed()}px`,
|
|
29
|
+
input.style.width = `${rect.width.toFixed()}px`, input.style.height = `${rect.height.toFixed()}px`;
|
|
30
|
+
}
|
|
31
|
+
get input() {
|
|
32
|
+
return this._input;
|
|
33
|
+
}
|
|
34
|
+
dispose() {}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
exports.FocusInput = FocusInput;
|
|
38
|
+
//# sourceMappingURL=FouseInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["core/FouseInput.ts"],"names":[],"mappings":";;;AAEA,sCAAmC;AAEnC,MAAa,UAAW,SAAQ,WAAW;IAGzC,YAAY,KAAgB,EAAE,aAA0B;QACtD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,SAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YACvB,OAAO;SACR;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE1C,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;QACxB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACjC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAChC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,YAAY,CAAC,IAAU,EAAE,KAAa;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QAEpB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAChD,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;QACvC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;QACzC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;QAChD,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;IACpD,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,OAAO;IAEP,CAAC;CACF;AA5CD,gCA4CC","file":"FouseInput.js","sourcesContent":["import type { BaseTable } from '../core';\nimport type { Rect } from '../tools/Rect';\nimport { Env } from '../tools/env';\n\nexport class FocusInput extends EventTarget {\n private _table: BaseTable;\n private _input: HTMLInputElement;\n constructor(table: BaseTable, parentElement: HTMLElement) {\n super();\n this._table = table;\n if (Env.mode === 'node') {\n return;\n }\n const div = document.createElement('div'); //再加一层 C360插件逻辑中用的window.getSelection()来判断的滚动\n // div.style.position = 'fixed';//定位不能使用fixed 在父级transform非none的时候 都会有问题\n div.style.opacity = '0';\n div.dataset.vtable = 'vtable'; //这里不能变 C360取元素的依据\n div.style.pointerEvents = 'none';\n div.classList.add('input-container');\n const input = (this._input = document.createElement('input'));\n div.appendChild(input);\n input.classList.add('table-focus-control');\n input.dataset.vtable = 'vtable';\n input.readOnly = true;\n parentElement.appendChild(div);\n }\n\n focus(): void {\n this._input.focus({ preventScroll: true });\n }\n setFocusRect(rect: Rect, value: string): void {\n const input = this._input;\n input.value = value;\n // input.focus({ preventScroll: true });\n input.select();\n const top = rect.top - this._table.scrollTop;\n const left = rect.left - this._table.scrollLeft;\n input.style.top = `${top.toFixed()}px`;\n input.style.left = `${left.toFixed()}px`;\n input.style.width = `${rect.width.toFixed()}px`;\n input.style.height = `${rect.height.toFixed()}px`;\n }\n get input(): HTMLInputElement {\n return this._input;\n }\n dispose(): void {\n // document.removeChild(this._input);\n }\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface TableEvents {
|
|
2
|
+
CLICK_CELL: 'click_cell';
|
|
3
|
+
DBLCLICK_CELL: 'dblclick_cell';
|
|
4
|
+
MOUSEDOWN_CELL: 'mousedown_cell';
|
|
5
|
+
MOUSEUP_CELL: 'mouseup_cell';
|
|
6
|
+
SELECTED_CELL: 'selected_cell';
|
|
7
|
+
KEYDOWN: 'keydown';
|
|
8
|
+
MOUSEENTER_TABLE: 'mouseenter_table';
|
|
9
|
+
MOUSELEAVE_TABLE: 'mouseleave_table';
|
|
10
|
+
MOUSEMOVE_CELL: 'mousemove_cell';
|
|
11
|
+
MOUSEENTER_CELL: 'mouseenter_cell';
|
|
12
|
+
MOUSELEAVE_CELL: 'mouseleave_cell';
|
|
13
|
+
CONTEXTMENU_CELL: 'contextmenu_cell';
|
|
14
|
+
RESIZE_COLUMN: 'resize_column';
|
|
15
|
+
RESIZE_COLUMN_END: 'resize_column_end';
|
|
16
|
+
CHANGE_HEADER_POSITION: 'change_header_position';
|
|
17
|
+
SORT_CLICK: 'sort_click';
|
|
18
|
+
FREEZE_CLICK: 'freeze_click';
|
|
19
|
+
SCROLL: 'scroll';
|
|
20
|
+
DROPDOWNMENU_CLICK: 'dropdownmenu_click';
|
|
21
|
+
MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol';
|
|
22
|
+
DRAG_SELECT_END: 'drag_select_end';
|
|
23
|
+
DROPDOWN_ICON_CLICK: 'dropdown_icon_click';
|
|
24
|
+
DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear';
|
|
25
|
+
TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change';
|
|
26
|
+
SHOW_MENU: 'show_menu';
|
|
27
|
+
HIDE_MENU: 'hide_menu';
|
|
28
|
+
ICON_CLICK: 'icon_click';
|
|
29
|
+
}
|
|
30
|
+
export declare const TABLE_EVENT_TYPE: TableEvents;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.TABLE_EVENT_TYPE = void 0, exports.TABLE_EVENT_TYPE = {
|
|
6
|
+
CLICK_CELL: "click_cell",
|
|
7
|
+
DBLCLICK_CELL: "dblclick_cell",
|
|
8
|
+
MOUSEDOWN_CELL: "mousedown_cell",
|
|
9
|
+
MOUSEUP_CELL: "mouseup_cell",
|
|
10
|
+
SELECTED_CELL: "selected_cell",
|
|
11
|
+
KEYDOWN: "keydown",
|
|
12
|
+
MOUSEENTER_TABLE: "mouseenter_table",
|
|
13
|
+
MOUSELEAVE_TABLE: "mouseleave_table",
|
|
14
|
+
MOUSEMOVE_CELL: "mousemove_cell",
|
|
15
|
+
MOUSEENTER_CELL: "mouseenter_cell",
|
|
16
|
+
MOUSELEAVE_CELL: "mouseleave_cell",
|
|
17
|
+
CONTEXTMENU_CELL: "contextmenu_cell",
|
|
18
|
+
RESIZE_COLUMN: "resize_column",
|
|
19
|
+
RESIZE_COLUMN_END: "resize_column_end",
|
|
20
|
+
CHANGE_HEADER_POSITION: "change_header_position",
|
|
21
|
+
SORT_CLICK: "sort_click",
|
|
22
|
+
FREEZE_CLICK: "freeze_click",
|
|
23
|
+
SCROLL: "scroll",
|
|
24
|
+
DROPDOWNMENU_CLICK: "dropdownmenu_click",
|
|
25
|
+
MOUSEOVER_CHART_SYMBOL: "mouseover_chart_symbol",
|
|
26
|
+
DRAG_SELECT_END: "drag_select_end",
|
|
27
|
+
DROPDOWN_ICON_CLICK: "dropdown_icon_click",
|
|
28
|
+
DROPDOWN_MENU_CLEAR: "dropdown_menu_clear",
|
|
29
|
+
TREE_HIERARCHY_STATE_CHANGE: "tree_hierarchy_state_change",
|
|
30
|
+
SHOW_MENU: "show_menu",
|
|
31
|
+
HIDE_MENU: "hide_menu",
|
|
32
|
+
ICON_CLICK: "icon_click"
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=TABLE_EVENT_TYPE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["core/TABLE_EVENT_TYPE.ts"],"names":[],"mappings":";;;AAiHa,QAAA,gBAAgB,GAAgB;IAC3C,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,wBAAwB;IAChD,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,kBAAkB,EAAE,oBAAoB;IACxC,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAElC,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAE1C,2BAA2B,EAAE,6BAA6B;IAE1D,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IAEtB,UAAU,EAAE,YAAY;CACV,CAAC","file":"TABLE_EVENT_TYPE.js","sourcesContent":["export interface TableEvents {\n /**\n * 鼠标点击单元格事件\n */\n CLICK_CELL: 'click_cell';\n /**\n * 鼠标双击单元格事件\n */\n DBLCLICK_CELL: 'dblclick_cell';\n /**\n * 单元格上鼠标按下事件\n */\n MOUSEDOWN_CELL: 'mousedown_cell';\n /**\n * 单元格鼠标松开事件\n */\n MOUSEUP_CELL: 'mouseup_cell';\n\n /**\n * 单元格选中状态改变事件\n */\n SELECTED_CELL: 'selected_cell';\n /**\n * 键盘按下事件\n */\n KEYDOWN: 'keydown';\n /**\n * 鼠标进入表格事件\n */\n MOUSEENTER_TABLE: 'mouseenter_table';\n /**\n * 鼠标离开表格事件\n */\n MOUSELEAVE_TABLE: 'mouseleave_table';\n /**\n * 鼠标在某个单元格上移动事件\n */\n MOUSEMOVE_CELL: 'mousemove_cell';\n /**\n * 鼠标进入单元格事件\n */\n MOUSEENTER_CELL: 'mouseenter_cell';\n /**\n * 鼠标离开单元格事件\n */\n MOUSELEAVE_CELL: 'mouseleave_cell';\n /**\n * 单元格右键事件\n */\n CONTEXTMENU_CELL: 'contextmenu_cell';\n /**\n * 列宽调整事件\n */\n RESIZE_COLUMN: 'resize_column';\n /**\n * 列宽调整结束事件\n */\n RESIZE_COLUMN_END: 'resize_column_end';\n /**\n * 拖拽表头移动位置的事件\n */\n CHANGE_HEADER_POSITION: 'change_header_position';\n /**\n * 点击排序图标事件\n */\n SORT_CLICK: 'sort_click';\n /**\n * 点击固定列图标 冻结或者解冻事件\n */\n FREEZE_CLICK: 'freeze_click';\n /**\n * 滚动表格事件\n */\n SCROLL: 'scroll';\n\n /**\n * 点击下拉菜单图标事件\n */\n DROPDOWNMENU_CLICK: 'dropdownmenu_click';\n /**\n * 鼠标经过迷你图标记事件\n */\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol';\n\n /**\n * 拖拽框选单元格鼠标松开事件\n */\n DRAG_SELECT_END: 'drag_select_end';\n\n /**\n * 点击下拉菜单按钮\n */\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click';\n /**\n * 清空下拉菜单事件(菜单显示时点击其他区域)\n */\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear';\n\n /**\n * 树形结构展开收起的点击事件\n */\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change';\n\n SHOW_MENU: 'show_menu';\n HIDE_MENU: 'hide_menu';\n /**\n * icon图标点击事件\n */\n ICON_CLICK: 'icon_click';\n}\n/**\n * Table event types\n */\nexport const TABLE_EVENT_TYPE: TableEvents = {\n CLICK_CELL: 'click_cell',\n DBLCLICK_CELL: 'dblclick_cell',\n MOUSEDOWN_CELL: 'mousedown_cell',\n MOUSEUP_CELL: 'mouseup_cell',\n SELECTED_CELL: 'selected_cell',\n KEYDOWN: 'keydown',\n MOUSEENTER_TABLE: 'mouseenter_table',\n MOUSELEAVE_TABLE: 'mouseleave_table',\n MOUSEMOVE_CELL: 'mousemove_cell',\n MOUSEENTER_CELL: 'mouseenter_cell',\n MOUSELEAVE_CELL: 'mouseleave_cell',\n CONTEXTMENU_CELL: 'contextmenu_cell',\n RESIZE_COLUMN: 'resize_column',\n RESIZE_COLUMN_END: 'resize_column_end',\n CHANGE_HEADER_POSITION: 'change_header_position',\n SORT_CLICK: 'sort_click',\n FREEZE_CLICK: 'freeze_click',\n SCROLL: 'scroll',\n DROPDOWNMENU_CLICK: 'dropdownmenu_click',\n MOUSEOVER_CHART_SYMBOL: 'mouseover_chart_symbol',\n DRAG_SELECT_END: 'drag_select_end',\n\n DROPDOWN_ICON_CLICK: 'dropdown_icon_click', // 点击下拉菜单按钮\n DROPDOWN_MENU_CLEAR: 'dropdown_menu_clear', // 清空下拉菜单事件(菜单显示时点击其他区域)\n\n TREE_HIERARCHY_STATE_CHANGE: 'tree_hierarchy_state_change', //树形结构展开收起的点击事件\n\n SHOW_MENU: 'show_menu',\n HIDE_MENU: 'hide_menu',\n\n ICON_CLICK: 'icon_click'\n} as TableEvents;\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { BaseTable } from '../core';
|
|
2
|
+
import { DataSource } from '../data';
|
|
3
|
+
import { Rect } from '../tools/Rect';
|
|
4
|
+
import type { BaseTableAPI } from '../ts-types/base-table';
|
|
5
|
+
export declare function createRootElement(padding: any): HTMLElement;
|
|
6
|
+
export declare function updateRootElementPadding(element: HTMLElement, padding: any): void;
|
|
7
|
+
export declare function _dealWithUpdateDataSource(table: BaseTableAPI, fn: (table: BaseTableAPI) => void): void;
|
|
8
|
+
export declare function _setRecords(table: BaseTableAPI, records?: any[]): void;
|
|
9
|
+
export declare function _setDataSource(table: BaseTableAPI, dataSource: DataSource): void;
|
|
10
|
+
export declare function _getTargetFrozenRowAt(table: BaseTable, absoluteY: number): {
|
|
11
|
+
top: number;
|
|
12
|
+
row: number;
|
|
13
|
+
bottom: number;
|
|
14
|
+
height: number;
|
|
15
|
+
} | null;
|
|
16
|
+
export declare function _getTargetFrozenColAt(table: BaseTable, absoluteX: number): {
|
|
17
|
+
left: number;
|
|
18
|
+
col: number;
|
|
19
|
+
right: number;
|
|
20
|
+
width: number;
|
|
21
|
+
} | null;
|
|
22
|
+
export declare function _toPxWidth(table: BaseTable, width: string | number): number;
|
|
23
|
+
export declare function _applyColWidthLimits(limits: {
|
|
24
|
+
min?: number;
|
|
25
|
+
max?: number;
|
|
26
|
+
} | void | null, orgWidth: number): number;
|
|
27
|
+
export declare function isAutoDefine(width: string | number): width is 'auto';
|
|
28
|
+
export declare function _getScrollableVisibleRect(table: BaseTable): Rect;
|