@guiexpert/table 1.0.3 → 1.0.5
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/esm2022/guiexpert-table.mjs +5 -0
- package/esm2022/index.mjs +140 -0
- package/esm2022/lib/table/action/action-id.type.mjs +20 -0
- package/esm2022/lib/table/action/on-action-triggered.if.mjs +2 -0
- package/esm2022/lib/table/action/osx-shortcut-actionId-mapping.mjs +21 -0
- package/esm2022/lib/table/action/shortcut-actionid-mapping.type.mjs +2 -0
- package/esm2022/lib/table/action/shortcut.service.mjs +114 -0
- package/esm2022/lib/table/action/windows-shortcut-actionId-mapping.mjs +19 -0
- package/esm2022/lib/table/checkbox/checkbox-model.if.mjs +2 -0
- package/esm2022/lib/table/checkbox/checkbox-model.mjs +50 -0
- package/esm2022/lib/table/checkbox/tree-checkbox-model.mjs +107 -0
- package/esm2022/lib/table/color/color-rgb.if.mjs +2 -0
- package/esm2022/lib/table/color/color-rgb.mjs +11 -0
- package/esm2022/lib/table/color/ge-css-color-util.mjs +26 -0
- package/esm2022/lib/table/color/three-color-gradient-arg.if.mjs +2 -0
- package/esm2022/lib/table/color/three-color-gradient-arg.mjs +17 -0
- package/esm2022/lib/table/color/two-color-gradient-arg.if.mjs +2 -0
- package/esm2022/lib/table/color/two-color-gradient-arg.mjs +13 -0
- package/esm2022/lib/table/css-vars.mjs +238 -0
- package/esm2022/lib/table/data/chunk/chunk.data-event.if.mjs +2 -0
- package/esm2022/lib/table/data/chunk/chunk.data-event.mjs +12 -0
- package/esm2022/lib/table/data/chunk/request-chunk.if.mjs +2 -0
- package/esm2022/lib/table/data/chunk/request-chunk.mjs +22 -0
- package/esm2022/lib/table/data/common/aligns.mjs +19 -0
- package/esm2022/lib/table/data/common/area-map-factory.mjs +7 -0
- package/esm2022/lib/table/data/common/area-map.mjs +11 -0
- package/esm2022/lib/table/data/common/area-map.type.mjs +2 -0
- package/esm2022/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +2 -0
- package/esm2022/lib/table/data/common/args-render-cell-div.mjs +2 -0
- package/esm2022/lib/table/data/common/boolean-function.mjs +3 -0
- package/esm2022/lib/table/data/common/cell-range.mjs +36 -0
- package/esm2022/lib/table/data/common/checkbox-column-def.mjs +13 -0
- package/esm2022/lib/table/data/common/checked-type.mjs +2 -0
- package/esm2022/lib/table/data/common/event/ge-cell-indices.mjs +9 -0
- package/esm2022/lib/table/data/common/event/ge-key-event.mjs +9 -0
- package/esm2022/lib/table/data/common/event/ge-model-change-event.mjs +11 -0
- package/esm2022/lib/table/data/common/event/ge-mouse-event.mjs +30 -0
- package/esm2022/lib/table/data/common/event/input/table-cell-update-event.if.mjs +2 -0
- package/esm2022/lib/table/data/common/event/input/table-cell-update-event.mjs +13 -0
- package/esm2022/lib/table/data/common/filter-function.mjs +2 -0
- package/esm2022/lib/table/data/common/get-t.mjs +2 -0
- package/esm2022/lib/table/data/common/index-and-px.mjs +9 -0
- package/esm2022/lib/table/data/common/size.if.mjs +2 -0
- package/esm2022/lib/table/data/common/size.mjs +9 -0
- package/esm2022/lib/table/data/common/sizes.mjs +33 -0
- package/esm2022/lib/table/data/common/sort-item.mjs +9 -0
- package/esm2022/lib/table/data/common/sort-state.type.mjs +2 -0
- package/esm2022/lib/table/data/common/tree-arrow.type.mjs +2 -0
- package/esm2022/lib/table/data/common/tree-row-if.mjs +2 -0
- package/esm2022/lib/table/data/common/tree-row.mjs +19 -0
- package/esm2022/lib/table/data/common/value-label.if.mjs +2 -0
- package/esm2022/lib/table/data/common/value-label.mjs +9 -0
- package/esm2022/lib/table/data/div-scope.type.mjs +2 -0
- package/esm2022/lib/table/data/event/mouse-target-data.mjs +36 -0
- package/esm2022/lib/table/data/geo-data.mjs +15 -0
- package/esm2022/lib/table/data/options/auto-restore-options.if.mjs +2 -0
- package/esm2022/lib/table/data/options/auto-restore-options.mjs +40 -0
- package/esm2022/lib/table/data/options/default-row-heights.if.mjs +2 -0
- package/esm2022/lib/table/data/options/default-row-heights.mjs +11 -0
- package/esm2022/lib/table/data/options/icon.if.mjs +2 -0
- package/esm2022/lib/table/data/options/icon.mjs +11 -0
- package/esm2022/lib/table/data/options/sorted-options.if.mjs +2 -0
- package/esm2022/lib/table/data/options/sorted-options.mjs +12 -0
- package/esm2022/lib/table/data/options/table-options.if.mjs +2 -0
- package/esm2022/lib/table/data/options/table-options.mjs +44 -0
- package/esm2022/lib/table/data/options/tree-options.if.mjs +2 -0
- package/esm2022/lib/table/data/options/tree-options.mjs +14 -0
- package/esm2022/lib/table/data/side-ident.type.mjs +2 -0
- package/esm2022/lib/table/data/table-model-and-options.if.mjs +2 -0
- package/esm2022/lib/table/data/table-model-and-options.mjs +9 -0
- package/esm2022/lib/table/data/tablemodel/area-ident.type.mjs +14 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +137 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.mjs +47 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-cell-groups.mjs +163 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +84 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +15 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +88 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +181 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model.if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model.mjs +76 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +51 -0
- package/esm2022/lib/table/data/tablemodel/areamodel/has-default-row-height-if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group-ext.mjs +133 -0
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.mjs +18 -0
- package/esm2022/lib/table/data/tablemodel/cellgroup/cellgroup-factory.mjs +110 -0
- package/esm2022/lib/table/data/tablemodel/column/column-def.if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/column/column-def.mjs +52 -0
- package/esm2022/lib/table/data/tablemodel/padding.mjs +13 -0
- package/esm2022/lib/table/data/tablemodel/table-model.if.mjs +2 -0
- package/esm2022/lib/table/data/tablemodel/table-model.mjs +308 -0
- package/esm2022/lib/table/ele-scope.mjs +199 -0
- package/esm2022/lib/table/event-adapter.mjs +17 -0
- package/esm2022/lib/table/event-listener.if.mjs +2 -0
- package/esm2022/lib/table/factory/table-factory.mjs +186 -0
- package/esm2022/lib/table/factory/tree-factory.mjs +32 -0
- package/esm2022/lib/table/focus/focus-model.if.mjs +2 -0
- package/esm2022/lib/table/focus/focus-model.mjs +33 -0
- package/esm2022/lib/table/focus/focus.type.mjs +2 -0
- package/esm2022/lib/table/input-handler.mjs +25 -0
- package/esm2022/lib/table/mouse-handler.mjs +196 -0
- package/esm2022/lib/table/render-scope.mjs +719 -0
- package/esm2022/lib/table/renderer/cell-group-ext-cell-renderer.mjs +8 -0
- package/esm2022/lib/table/renderer/cell-render.if.mjs +2 -0
- package/esm2022/lib/table/renderer/checkbox-boolean-property-cell-renderer.mjs +47 -0
- package/esm2022/lib/table/renderer/checkbox-cell-renderer.mjs +22 -0
- package/esm2022/lib/table/renderer/date-to-int-date-cell-renderer.mjs +24 -0
- package/esm2022/lib/table/renderer/date-to-iso-cell-renderer.mjs +9 -0
- package/esm2022/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +9 -0
- package/esm2022/lib/table/renderer/date-to-tec-cell-renderer.mjs +12 -0
- package/esm2022/lib/table/renderer/edit/edit-cell-renderer.type.mjs +2 -0
- package/esm2022/lib/table/renderer/edit/edit-input-pipe-for-number.mjs +4 -0
- package/esm2022/lib/table/renderer/edit/edit-input-pipe.if.mjs +2 -0
- package/esm2022/lib/table/renderer/edit/input-cell-renderer.mjs +23 -0
- package/esm2022/lib/table/renderer/edit/select-cell-renderer.mjs +36 -0
- package/esm2022/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +12 -0
- package/esm2022/lib/table/renderer/number-cell-renderer.mjs +21 -0
- package/esm2022/lib/table/renderer/progress-bar-cell-renderer.mjs +44 -0
- package/esm2022/lib/table/renderer/renderer-cleanup-fn.type.mjs +2 -0
- package/esm2022/lib/table/renderer/renderer.mjs +7 -0
- package/esm2022/lib/table/renderer/star-rating-cell-renderer.mjs +27 -0
- package/esm2022/lib/table/renderer/true-false-cell-renderer.mjs +15 -0
- package/esm2022/lib/table/selection/selection-model.if.mjs +2 -0
- package/esm2022/lib/table/selection/selection-model.mjs +99 -0
- package/esm2022/lib/table/selection/selection-service.mjs +101 -0
- package/esm2022/lib/table/selection/selection.type.mjs +2 -0
- package/esm2022/lib/table/service/abstract-store-state.service.mjs +50 -0
- package/esm2022/lib/table/service/convenience-dom.service.mjs +405 -0
- package/esm2022/lib/table/service/data/collapsed-expanded.data.mjs +13 -0
- package/esm2022/lib/table/service/data/html-style.type.mjs +2 -0
- package/esm2022/lib/table/service/dom-service.if.mjs +2 -0
- package/esm2022/lib/table/service/ge-filter.service.mjs +98 -0
- package/esm2022/lib/table/service/simple-dom-service.mjs +34 -0
- package/esm2022/lib/table/service/sorter.service.mjs +27 -0
- package/esm2022/lib/table/service/store-state-collapsed-expand.service.mjs +57 -0
- package/esm2022/lib/table/service/store-state-scroll-pos.service.mjs +29 -0
- package/esm2022/lib/table/service/store-state-sorting.service.mjs +29 -0
- package/esm2022/lib/table/service/tree-row.service.mjs +23 -0
- package/esm2022/lib/table/table-api.mjs +42 -0
- package/esm2022/lib/table/table-scope.mjs +364 -0
- package/{src/index.ts → index.d.ts} +4 -24
- package/lib/table/action/action-id.type.d.ts +2 -0
- package/{src/lib/table/action/on-action-triggered.if.ts → lib/table/action/on-action-triggered.if.d.ts} +1 -4
- package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +6 -0
- package/lib/table/action/shortcut-actionid-mapping.type.d.ts +4 -0
- package/lib/table/action/shortcut.service.d.ts +18 -0
- package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +6 -0
- package/lib/table/checkbox/checkbox-model.d.ts +12 -0
- package/lib/table/checkbox/checkbox-model.if.d.ts +9 -0
- package/lib/table/checkbox/tree-checkbox-model.d.ts +17 -0
- package/lib/table/color/color-rgb.d.ts +7 -0
- package/lib/table/color/color-rgb.if.d.ts +5 -0
- package/lib/table/color/ge-css-color-util.d.ts +7 -0
- package/lib/table/color/three-color-gradient-arg.d.ts +11 -0
- package/lib/table/color/three-color-gradient-arg.if.d.ts +9 -0
- package/lib/table/color/two-color-gradient-arg.d.ts +9 -0
- package/lib/table/color/two-color-gradient-arg.if.d.ts +7 -0
- package/lib/table/css-vars.d.ts +9 -0
- package/lib/table/data/chunk/chunk.data-event.d.ts +9 -0
- package/lib/table/data/chunk/chunk.data-event.if.d.ts +4 -0
- package/lib/table/data/chunk/request-chunk.d.ts +14 -0
- package/lib/table/data/chunk/request-chunk.if.d.ts +9 -0
- package/lib/table/data/common/aligns.d.ts +24 -0
- package/lib/table/data/common/area-map-factory.d.ts +5 -0
- package/lib/table/data/common/area-map.d.ts +7 -0
- package/lib/table/data/common/area-map.type.d.ts +5 -0
- package/{src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts → lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts} +10 -11
- package/lib/table/data/common/args-render-cell-div.d.ts +17 -0
- package/lib/table/data/common/boolean-function.d.ts +3 -0
- package/lib/table/data/common/cell-range.d.ts +19 -0
- package/lib/table/data/common/checkbox-column-def.d.ts +13 -0
- package/lib/table/data/common/event/ge-cell-indices.d.ts +5 -0
- package/lib/table/data/common/event/ge-key-event.d.ts +5 -0
- package/lib/table/data/common/event/ge-model-change-event.d.ts +6 -0
- package/lib/table/data/common/event/ge-mouse-event.d.ts +17 -0
- package/lib/table/data/common/event/input/table-cell-update-event.d.ts +9 -0
- package/{src/lib/table/data/common/event/input/table-cell-update-event.if.ts → lib/table/data/common/event/input/table-cell-update-event.if.d.ts} +4 -7
- package/lib/table/data/common/index-and-px.d.ts +5 -0
- package/lib/table/data/common/size.d.ts +6 -0
- package/lib/table/data/common/size.if.d.ts +4 -0
- package/lib/table/data/common/sizes.d.ts +32 -0
- package/lib/table/data/common/sort-item.d.ts +6 -0
- package/lib/table/data/common/tree-row-if.d.ts +10 -0
- package/lib/table/data/common/tree-row.d.ts +11 -0
- package/lib/table/data/common/value-label.d.ts +6 -0
- package/lib/table/data/common/value-label.if.d.ts +4 -0
- package/lib/table/data/div-scope.type.d.ts +7 -0
- package/lib/table/data/event/mouse-target-data.d.ts +15 -0
- package/lib/table/data/geo-data.d.ts +8 -0
- package/lib/table/data/options/auto-restore-options.d.ts +11 -0
- package/lib/table/data/options/auto-restore-options.if.d.ts +16 -0
- package/lib/table/data/options/default-row-heights.d.ts +7 -0
- package/lib/table/data/options/default-row-heights.if.d.ts +5 -0
- package/lib/table/data/options/icon.d.ts +7 -0
- package/lib/table/data/options/icon.if.d.ts +5 -0
- package/lib/table/data/options/sorted-options.d.ts +8 -0
- package/{src/lib/table/data/options/sorted-options.if.ts → lib/table/data/options/sorted-options.if.d.ts} +3 -6
- package/lib/table/data/options/table-options.d.ts +41 -0
- package/lib/table/data/options/table-options.if.d.ts +42 -0
- package/lib/table/data/options/tree-options.d.ts +9 -0
- package/lib/table/data/options/tree-options.if.d.ts +7 -0
- package/lib/table/data/table-model-and-options.d.ts +8 -0
- package/{src/lib/table/data/table-model-and-options.if.ts → lib/table/data/table-model-and-options.if.d.ts} +2 -4
- package/{src/lib/table/data/tablemodel/area-ident.type.ts → lib/table/data/tablemodel/area-ident.type.d.ts} +1 -10
- package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +47 -0
- package/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +19 -0
- package/lib/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +51 -0
- package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +41 -0
- package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +10 -0
- package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +28 -0
- package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +39 -0
- package/lib/table/data/tablemodel/areamodel/area-model.d.ts +37 -0
- package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +158 -0
- package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +12 -0
- package/{src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts → lib/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts} +1 -1
- package/lib/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +21 -0
- package/lib/table/data/tablemodel/cellgroup/cell-group.d.ts +11 -0
- package/lib/table/data/tablemodel/cellgroup/cell-group.if.d.ts +9 -0
- package/lib/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +10 -0
- package/lib/table/data/tablemodel/column/column-def.d.ts +52 -0
- package/lib/table/data/tablemodel/column/column-def.if.d.ts +25 -0
- package/lib/table/data/tablemodel/padding.d.ts +7 -0
- package/lib/table/data/tablemodel/table-model.d.ts +88 -0
- package/lib/table/data/tablemodel/table-model.if.d.ts +56 -0
- package/lib/table/ele-scope.d.ts +37 -0
- package/lib/table/event-adapter.d.ts +12 -0
- package/lib/table/event-listener.if.d.ts +11 -0
- package/lib/table/factory/table-factory.d.ts +65 -0
- package/lib/table/factory/tree-factory.d.ts +6 -0
- package/lib/table/focus/focus-model.d.ts +15 -0
- package/lib/table/focus/focus-model.if.d.ts +8 -0
- package/{src/lib/table/focus/focus.type.ts → lib/table/focus/focus.type.d.ts} +0 -3
- package/lib/table/input-handler.d.ts +6 -0
- package/lib/table/mouse-handler.d.ts +25 -0
- package/lib/table/render-scope.d.ts +86 -0
- package/lib/table/renderer/cell-group-ext-cell-renderer.d.ts +9 -0
- package/{src/lib/table/renderer/cell-render.if.ts → lib/table/renderer/cell-render.if.d.ts} +1 -10
- package/lib/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +15 -0
- package/lib/table/renderer/checkbox-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +9 -0
- package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/date-to-tec-cell-renderer.d.ts +8 -0
- package/{src/lib/table/renderer/edit/edit-cell-renderer.type.ts → lib/table/renderer/edit/edit-cell-renderer.type.d.ts} +0 -1
- package/lib/table/renderer/edit/edit-input-pipe-for-number.d.ts +2 -0
- package/lib/table/renderer/edit/edit-input-pipe.if.d.ts +3 -0
- package/lib/table/renderer/edit/input-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/edit/select-cell-renderer.d.ts +12 -0
- package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +8 -0
- package/lib/table/renderer/number-cell-renderer.d.ts +11 -0
- package/lib/table/renderer/progress-bar-cell-renderer.d.ts +15 -0
- package/lib/table/renderer/renderer.d.ts +5 -0
- package/lib/table/renderer/star-rating-cell-renderer.d.ts +13 -0
- package/lib/table/renderer/true-false-cell-renderer.d.ts +8 -0
- package/lib/table/selection/selection-model.d.ts +21 -0
- package/lib/table/selection/selection-model.if.d.ts +11 -0
- package/lib/table/selection/selection-service.d.ts +17 -0
- package/{src/lib/table/selection/selection.type.ts → lib/table/selection/selection.type.d.ts} +0 -3
- package/lib/table/service/abstract-store-state.service.d.ts +10 -0
- package/lib/table/service/convenience-dom.service.d.ts +46 -0
- package/lib/table/service/data/collapsed-expanded.data.d.ts +7 -0
- package/lib/table/service/data/html-style.type.d.ts +3 -0
- package/lib/table/service/dom-service.if.d.ts +9 -0
- package/lib/table/service/ge-filter.service.d.ts +5 -0
- package/lib/table/service/simple-dom-service.d.ts +10 -0
- package/lib/table/service/sorter.service.d.ts +3 -0
- package/lib/table/service/store-state-collapsed-expand.service.d.ts +15 -0
- package/lib/table/service/store-state-scroll-pos.service.d.ts +10 -0
- package/lib/table/service/store-state-sorting.service.d.ts +11 -0
- package/lib/table/service/tree-row.service.d.ts +5 -0
- package/lib/table/table-api.d.ts +18 -0
- package/lib/table/table-scope.d.ts +56 -0
- package/package.json +17 -10
- package/.eslintrc.json +0 -42
- package/LICENSE +0 -35
- package/README.md +0 -102
- package/jest.config.ts +0 -18
- package/ng-package.json +0 -7
- package/project.json +0 -47
- package/src/lib/table/action/action-id.type.ts +0 -24
- package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +0 -29
- package/src/lib/table/action/shortcut-actionid-mapping.type.ts +0 -3
- package/src/lib/table/action/shortcut.service.ts +0 -134
- package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +0 -27
- package/src/lib/table/checkbox/checkbox-model.if.ts +0 -16
- package/src/lib/table/checkbox/checkbox-model.ts +0 -62
- package/src/lib/table/checkbox/tree-checkbox-model.ts +0 -123
- package/src/lib/table/color/color-rgb.if.ts +0 -7
- package/src/lib/table/color/color-rgb.ts +0 -10
- package/src/lib/table/color/ge-css-color-util.ts +0 -43
- package/src/lib/table/color/three-color-gradient-arg.if.ts +0 -10
- package/src/lib/table/color/three-color-gradient-arg.ts +0 -14
- package/src/lib/table/color/two-color-gradient-arg.if.ts +0 -8
- package/src/lib/table/color/two-color-gradient-arg.ts +0 -12
- package/src/lib/table/css-vars.ts +0 -243
- package/src/lib/table/data/common/aligns.ts +0 -19
- package/src/lib/table/data/common/area-map-factory.ts +0 -14
- package/src/lib/table/data/common/area-map.ts +0 -11
- package/src/lib/table/data/common/area-map.type.ts +0 -5
- package/src/lib/table/data/common/args-render-cell-div.ts +0 -18
- package/src/lib/table/data/common/boolean-function.ts +0 -4
- package/src/lib/table/data/common/cell-range.ts +0 -57
- package/src/lib/table/data/common/checkbox-column-def.ts +0 -25
- package/src/lib/table/data/common/event/ge-cell-indices.ts +0 -9
- package/src/lib/table/data/common/event/ge-key-event.ts +0 -10
- package/src/lib/table/data/common/event/ge-model-change-event.ts +0 -13
- package/src/lib/table/data/common/event/ge-mouse-event.ts +0 -38
- package/src/lib/table/data/common/event/input/table-cell-update-event.ts +0 -14
- package/src/lib/table/data/common/index-and-px.ts +0 -9
- package/src/lib/table/data/common/size.if.ts +0 -4
- package/src/lib/table/data/common/size.ts +0 -9
- package/src/lib/table/data/common/sizes.ts +0 -35
- package/src/lib/table/data/common/sort-item.ts +0 -11
- package/src/lib/table/data/common/tree-row-if.ts +0 -11
- package/src/lib/table/data/common/tree-row.ts +0 -16
- package/src/lib/table/data/common/value-label.if.ts +0 -6
- package/src/lib/table/data/common/value-label.ts +0 -13
- package/src/lib/table/data/div-scope.type.ts +0 -5
- package/src/lib/table/data/event/mouse-target-data.ts +0 -45
- package/src/lib/table/data/geo-data.ts +0 -13
- package/src/lib/table/data/options/auto-restore-options.if.ts +0 -21
- package/src/lib/table/data/options/auto-restore-options.ts +0 -50
- package/src/lib/table/data/options/default-row-heights.if.ts +0 -5
- package/src/lib/table/data/options/default-row-heights.ts +0 -10
- package/src/lib/table/data/options/icon.if.ts +0 -7
- package/src/lib/table/data/options/icon.ts +0 -10
- package/src/lib/table/data/options/sorted-options.ts +0 -15
- package/src/lib/table/data/options/table-options.if.ts +0 -54
- package/src/lib/table/data/options/table-options.ts +0 -66
- package/src/lib/table/data/options/tree-options.if.ts +0 -10
- package/src/lib/table/data/options/tree-options.ts +0 -32
- package/src/lib/table/data/table-model-and-options.ts +0 -13
- package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +0 -183
- package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +0 -59
- package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +0 -210
- package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +0 -120
- package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +0 -23
- package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +0 -105
- package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +0 -215
- package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +0 -186
- package/src/lib/table/data/tablemodel/areamodel/area-model.ts +0 -110
- package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +0 -61
- package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +0 -167
- package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +0 -12
- package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +0 -18
- package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +0 -148
- package/src/lib/table/data/tablemodel/column/column-def.if.ts +0 -28
- package/src/lib/table/data/tablemodel/column/column-def.ts +0 -104
- package/src/lib/table/data/tablemodel/padding.ts +0 -9
- package/src/lib/table/data/tablemodel/table-model.if.ts +0 -90
- package/src/lib/table/data/tablemodel/table-model.ts +0 -352
- package/src/lib/table/ele-scope.ts +0 -283
- package/src/lib/table/event-adapter.ts +0 -28
- package/src/lib/table/event-listener.if.ts +0 -19
- package/src/lib/table/factory/table-factory.ts +0 -378
- package/src/lib/table/factory/tree-factory.ts +0 -51
- package/src/lib/table/focus/focus-model.if.ts +0 -14
- package/src/lib/table/focus/focus-model.ts +0 -48
- package/src/lib/table/input-handler.ts +0 -34
- package/src/lib/table/mouse-handler.ts +0 -236
- package/src/lib/table/render-scope.ts +0 -936
- package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +0 -27
- package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +0 -63
- package/src/lib/table/renderer/checkbox-cell-renderer.ts +0 -39
- package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +0 -39
- package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +0 -25
- package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +0 -24
- package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +0 -28
- package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +0 -6
- package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +0 -7
- package/src/lib/table/renderer/edit/input-cell-renderer.ts +0 -41
- package/src/lib/table/renderer/edit/select-cell-renderer.ts +0 -60
- package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +0 -26
- package/src/lib/table/renderer/number-cell-renderer.ts +0 -38
- package/src/lib/table/renderer/progress-bar-cell-renderer.ts +0 -60
- package/src/lib/table/renderer/renderer.ts +0 -11
- package/src/lib/table/renderer/star-rating-cell-renderer.ts +0 -45
- package/src/lib/table/renderer/true-false-cell-renderer.ts +0 -28
- package/src/lib/table/selection/selection-model.if.ts +0 -20
- package/src/lib/table/selection/selection-model.ts +0 -109
- package/src/lib/table/selection/selection-service.ts +0 -120
- package/src/lib/table/service/abstract-store-state.service.ts +0 -105
- package/src/lib/table/service/convenience-dom.service.ts +0 -548
- package/src/lib/table/service/data/collapsed-expanded.data.ts +0 -11
- package/src/lib/table/service/data/html-style.type.ts +0 -1
- package/src/lib/table/service/dom-service.if.ts +0 -16
- package/src/lib/table/service/ge-filter.service.ts +0 -123
- package/src/lib/table/service/simple-dom-service.ts +0 -46
- package/src/lib/table/service/sorter.service.ts +0 -30
- package/src/lib/table/service/store-state-collapsed-expand.service.ts +0 -76
- package/src/lib/table/service/store-state-scroll-pos.service.ts +0 -40
- package/src/lib/table/service/store-state-sorting.service.ts +0 -41
- package/src/lib/table/service/tree-row.service.ts +0 -31
- package/src/lib/table/table-api.ts +0 -61
- package/src/lib/table/table-scope.ts +0 -433
- package/src/test-setup.ts +0 -1
- package/tsconfig.json +0 -22
- package/tsconfig.lib.json +0 -19
- package/tsconfig.lib.prod.json +0 -7
- package/tsconfig.spec.json +0 -20
- /package/{src/lib/table/data/common/checked-type.ts → lib/table/data/common/checked-type.d.ts} +0 -0
- /package/{src/lib/table/data/common/filter-function.ts → lib/table/data/common/filter-function.d.ts} +0 -0
- /package/{src/lib/table/data/common/get-t.ts → lib/table/data/common/get-t.d.ts} +0 -0
- /package/{src/lib/table/data/common/sort-state.type.ts → lib/table/data/common/sort-state.type.d.ts} +0 -0
- /package/{src/lib/table/data/common/tree-arrow.type.ts → lib/table/data/common/tree-arrow.type.d.ts} +0 -0
- /package/{src/lib/table/data/side-ident.type.ts → lib/table/data/side-ident.type.d.ts} +0 -0
- /package/{src/lib/table/renderer/renderer-cleanup-fn.type.ts → lib/table/renderer/renderer-cleanup-fn.type.d.ts} +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { ColumnDef } from "../column/column-def";
|
|
2
|
+
import { CellGroupExt } from "./cell-group-ext";
|
|
3
|
+
export class CellgroupFactory {
|
|
4
|
+
static buildColumnDefs(cellGroups, ret = []) {
|
|
5
|
+
for (const cellGroup of cellGroups) {
|
|
6
|
+
if (cellGroup.property) {
|
|
7
|
+
ret.push(ColumnDef.create({
|
|
8
|
+
property: cellGroup.property,
|
|
9
|
+
headerLabel: cellGroup.data ? cellGroup.data : cellGroup.property,
|
|
10
|
+
isVisible: () => {
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
if (typeof cellGroup["isVisible"] === "function") {
|
|
13
|
+
const cge = cellGroup;
|
|
14
|
+
return cge.isVisible();
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
if (cellGroup.children) {
|
|
21
|
+
CellgroupFactory.buildColumnDefs(cellGroup.children, ret);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return ret;
|
|
25
|
+
}
|
|
26
|
+
/*
|
|
27
|
+
static buildDeepMap(
|
|
28
|
+
cellGroups: CellGroupIf[],
|
|
29
|
+
ret: { [key: string]: number } = {},
|
|
30
|
+
deep = 0
|
|
31
|
+
): { [key: string]: number } {
|
|
32
|
+
|
|
33
|
+
for (const cellGroup of cellGroups) {
|
|
34
|
+
//if (cellGroup.property) {
|
|
35
|
+
ret[cellGroup.data] = deep;
|
|
36
|
+
//}
|
|
37
|
+
if (cellGroup.children) {
|
|
38
|
+
CellgroupFactory.buildDeepMap(cellGroup.children, ret, deep + 1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return ret;
|
|
42
|
+
}
|
|
43
|
+
*/
|
|
44
|
+
static buildGroupExts(cellGroups, ret = [], deep = 0, parent) {
|
|
45
|
+
let last = undefined;
|
|
46
|
+
for (let i = 0; i < cellGroups.length; i++) {
|
|
47
|
+
const cellGroup = cellGroups[i];
|
|
48
|
+
const cge = new CellGroupExt(cellGroup, deep, i, parent);
|
|
49
|
+
if (last) {
|
|
50
|
+
cge.leftNeighbour = last;
|
|
51
|
+
last.rightNeighbour = cge;
|
|
52
|
+
}
|
|
53
|
+
ret.push(cge);
|
|
54
|
+
if (cellGroup.children) {
|
|
55
|
+
cge.children = CellgroupFactory.buildGroupExts(cellGroup.children, [], deep + 1, cge);
|
|
56
|
+
}
|
|
57
|
+
last = cge;
|
|
58
|
+
}
|
|
59
|
+
return ret;
|
|
60
|
+
}
|
|
61
|
+
static flattenGroupExts(cellGroups, ret = []) {
|
|
62
|
+
for (const cellGroup of cellGroups) {
|
|
63
|
+
ret.push(cellGroup);
|
|
64
|
+
if (cellGroup.children) {
|
|
65
|
+
CellgroupFactory.flattenGroupExts(cellGroup.children, ret);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return ret;
|
|
69
|
+
}
|
|
70
|
+
/*
|
|
71
|
+
|
|
72
|
+
Gold Hohenwarte
|
|
73
|
+
Gold AB Gold CD HOH AB HOH CD
|
|
74
|
+
. Gold A Gold B Gold C Gold D Gold Sum . HOH Loc HOH A HOH B HOH C HOH D
|
|
75
|
+
|
|
76
|
+
*/
|
|
77
|
+
static buildArrayOfArrays(flatten, arrs) {
|
|
78
|
+
let col = -1;
|
|
79
|
+
let lastRowIdx = 99999;
|
|
80
|
+
for (const cellGroup of flatten) {
|
|
81
|
+
if (cellGroup.rowIndex <= lastRowIdx) {
|
|
82
|
+
col++;
|
|
83
|
+
for (let r = 0; r < arrs.length; r++) {
|
|
84
|
+
arrs[r][col] = null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
arrs[cellGroup.rowIndex][col] = cellGroup;
|
|
88
|
+
lastRowIdx = cellGroup.rowIndex;
|
|
89
|
+
if (cellGroup.ownColumn() && cellGroup.children?.length) {
|
|
90
|
+
for (let r = cellGroup.rowIndex + 1; r < arrs.length; r++) {
|
|
91
|
+
arrs[r][col] = undefined;
|
|
92
|
+
}
|
|
93
|
+
col++;
|
|
94
|
+
for (let r = 0; r < arrs.length; r++) {
|
|
95
|
+
arrs[r][col] = null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return arrs;
|
|
100
|
+
}
|
|
101
|
+
static iterateThrowColumns(sb = [], cellGroups) {
|
|
102
|
+
for (const cellGroup of cellGroups) {
|
|
103
|
+
sb.push(cellGroup.data + " rowIndex:" + cellGroup.rowIndex);
|
|
104
|
+
if (cellGroup.children?.length) {
|
|
105
|
+
CellgroupFactory.iterateThrowColumns(sb, cellGroup.children);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbGdyb3VwLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZGF0YS90YWJsZW1vZGVsL2NlbGxncm91cC9jZWxsZ3JvdXAtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsTUFBTSxDQUFDLGVBQWUsQ0FDcEIsVUFBeUIsRUFDekIsTUFBcUIsRUFBRTtRQUd2QixLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUNsQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztvQkFDdEIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO29CQUM1QixXQUFXLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVE7b0JBQ2pFLFNBQVMsRUFBRSxHQUFHLEVBQUU7d0JBQ2QsYUFBYTt3QkFDYixJQUFJLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFVBQVUsRUFBRTs0QkFDaEQsTUFBTSxHQUFHLEdBQUcsU0FBeUIsQ0FBQzs0QkFDdEMsT0FBTyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7eUJBQ3hCO3dCQUNELE9BQU8sSUFBSSxDQUFDO29CQUNkLENBQUM7aUJBQ0YsQ0FBQyxDQUNILENBQUM7YUFDSDtZQUNELElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRTtnQkFDdEIsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxD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TUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNwQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNyQjthQUNGO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFHRCxNQUFNLENBQUMsbUJBQW1CLENBQ3hCLEtBQWUsRUFBRSxFQUNqQixVQUEwQjtRQUcxQixLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUNsQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUM5QixnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlEO1NBQ0Y7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZWxsR3JvdXBJZiB9IGZyb20gXCIuL2NlbGwtZ3JvdXAuaWZcIjtcbmltcG9ydCB7IENvbHVtbkRlZklmIH0gZnJvbSBcIi4uL2NvbHVtbi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQgeyBDb2x1bW5EZWYgfSBmcm9tIFwiLi4vY29sdW1uL2NvbHVtbi1kZWZcIjtcbmltcG9ydCB7IENlbGxHcm91cEV4dCB9IGZyb20gXCIuL2NlbGwtZ3JvdXAtZXh0XCI7XG5cbmV4cG9ydCBjbGFzcyBDZWxsZ3JvdXBGYWN0b3J5IHtcblxuXG4gIHN0YXRpYyBidWlsZENvbHVtbkRlZnMoXG4gICAgY2VsbEdyb3VwczogQ2VsbEdyb3VwSWZbXSxcbiAgICByZXQ6IENvbHVtbkRlZklmW10gPSBbXVxuICApOiBDb2x1bW5EZWZJZltdIHtcblxuICAgIGZvciAoY29uc3QgY2VsbEdyb3VwIG9mIGNlbGxHcm91cHMpIHtcbiAgICAgIGlmIChjZWxsR3JvdXAucHJvcGVydHkpIHtcbiAgICAgICAgcmV0LnB1c2goQ29sdW1uRGVmLmNyZWF0ZSh7XG4gICAgICAgICAgICBwcm9wZXJ0eTogY2VsbEdyb3VwLnByb3BlcnR5LFxuICAgICAgICAgICAgaGVhZGVyTGFiZWw6IGNlbGxHcm91cC5kYXRhID8gY2VsbEdyb3VwLmRhdGEgOiBjZWxsR3JvdXAucHJvcGVydHksXG4gICAgICAgICAgICBpc1Zpc2libGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxHcm91cFtcImlzVmlzaWJsZVwiXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2dlID0gY2VsbEdyb3VwIGFzIENlbGxHcm91cEV4dDtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2dlLmlzVmlzaWJsZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoY2VsbEdyb3VwLmNoaWxkcmVuKSB7XG4gICAgICAgIENlbGxncm91cEZhY3RvcnkuYnVpbGRDb2x1bW5EZWZzKGNlbGxHcm91cC5jaGlsZHJlbiwgcmV0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuLypcbiAgc3RhdGljIGJ1aWxkRGVlcE1hcChcbiAgICBjZWxsR3JvdXBzOiBDZWxsR3JvdXBJZltdLFxuICAgIHJldDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9LFxuICAgIGRlZXAgPSAwXG4gICk6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0ge1xuXG4gICAgZm9yIChjb25zdCBjZWxsR3JvdXAgb2YgY2VsbEdyb3Vwcykge1xuICAgICAgLy9pZiAoY2VsbEdyb3VwLnByb3BlcnR5KSB7XG4gICAgICByZXRbY2VsbEdyb3VwLmRhdGFdID0gZGVlcDtcbiAgICAgIC8vfVxuICAgICAgaWYgKGNlbGxHcm91cC5jaGlsZHJlbikge1xuICAgICAgICBDZWxsZ3JvdXBGYWN0b3J5LmJ1aWxkRGVlcE1hcChjZWxsR3JvdXAuY2hpbGRyZW4sIHJldCwgZGVlcCArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG4qL1xuICBzdGF0aWMgYnVpbGRHcm91cEV4dHMoXG4gICAgY2VsbEdyb3VwczogQ2VsbEdyb3VwSWZbXSxcbiAgICByZXQ6IENlbGxHcm91cEV4dFtdID0gW10sXG4gICAgZGVlcCA9IDAsXG4gICAgcGFyZW50PzogQ2VsbEdyb3VwRXh0XG4gICk6IENlbGxHcm91cEV4dFtdIHtcblxuICAgIGxldCBsYXN0OiBDZWxsR3JvdXBFeHQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjZWxsR3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjZWxsR3JvdXAgPSBjZWxsR3JvdXBzW2ldO1xuICAgICAgY29uc3QgY2dlID0gbmV3IENlbGxHcm91cEV4dChjZWxsR3JvdXAsIGRlZXAsIGksIHBhcmVudCk7XG5cbiAgICAgIGlmIChsYXN0KSB7XG4gICAgICAgIGNnZS5sZWZ0TmVpZ2hib3VyID0gbGFzdDtcbiAgICAgICAgbGFzdC5yaWdodE5laWdoYm91ciA9IGNnZTtcbiAgICAgIH1cbiAgICAgIHJldC5wdXNoKGNnZSk7XG4gICAgICBpZiAoY2VsbEdyb3VwLmNoaWxkcmVuKSB7XG4gICAgICAgIGNnZS5jaGlsZHJlbiA9IENlbGxncm91cEZhY3RvcnkuYnVpbGRHcm91cEV4dHMoY2VsbEdyb3VwLmNoaWxkcmVuLCBbXSwgZGVlcCArIDEsIGNnZSk7XG4gICAgICB9XG4gICAgICBsYXN0ID0gY2dlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cblxuICBzdGF0aWMgZmxhdHRlbkdyb3VwRXh0cyhcbiAgICBjZWxsR3JvdXBzOiBDZWxsR3JvdXBFeHRbXSxcbiAgICByZXQ6IENlbGxHcm91cEV4dFtdID0gW11cbiAgKTogQ2VsbEdyb3VwRXh0W10ge1xuXG4gICAgZm9yIChjb25zdCBjZWxsR3JvdXAgb2YgY2VsbEdyb3Vwcykge1xuICAgICAgcmV0LnB1c2goY2VsbEdyb3VwKTtcbiAgICAgIGlmIChjZWxsR3JvdXAuY2hpbGRyZW4pIHtcbiAgICAgICAgQ2VsbGdyb3VwRmFjdG9yeS5mbGF0dGVuR3JvdXBFeHRzKGNlbGxHcm91cC5jaGlsZHJlbiwgcmV0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qXG5cbiAgR29sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSG9oZW53YXJ0ZVxuICBHb2xkIEFCICAgICAgICAgICAgICAgICAgICAgICAgIEdvbGQgQ0QgICAgICAgICAgICAgICAgICAgICAgICBIT0ggQUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSE9IIENEXG4gIC4gICAgICAgICAgR29sZCBBICAgICBHb2xkIEIgICAgR29sZCBDICAgR29sZCBEICAgIEdvbGQgU3VtICAgIC4gICAgICAgICAgIEhPSCBMb2MgICAgSE9IIEEgICAgSE9IIEIgICBIT0ggQyAgICBIT0ggRFxuXG4gICovXG5cbiAgc3RhdGljIGJ1aWxkQXJyYXlPZkFycmF5cyhcbiAgICBmbGF0dGVuOiBDZWxsR3JvdXBFeHRbXSxcbiAgICBhcnJzOiAoQ2VsbEdyb3VwRXh0IHwgbnVsbCB8IHVuZGVmaW5lZClbXVtdXG4gICk6IChDZWxsR3JvdXBFeHQgfCBudWxsIHwgdW5kZWZpbmVkKVtdW10ge1xuXG4gICAgbGV0IGNvbCA9IC0xO1xuICAgIGxldCBsYXN0Um93SWR4ID0gOTk5OTk7XG4gICAgZm9yIChjb25zdCBjZWxsR3JvdXAgb2YgZmxhdHRlbikge1xuICAgICAgaWYgKGNlbGxHcm91cC5yb3dJbmRleCA8PSBsYXN0Um93SWR4KSB7XG4gICAgICAgIGNvbCsrO1xuICAgICAgICBmb3IgKGxldCByID0gMDsgciA8IGFycnMubGVuZ3RoOyByKyspIHtcbiAgICAgICAgICBhcnJzW3JdW2NvbF0gPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFycnNbY2VsbEdyb3VwLnJvd0luZGV4XVtjb2xdID0gY2VsbEdyb3VwO1xuICAgICAgbGFzdFJvd0lkeCA9IGNlbGxHcm91cC5yb3dJbmRleDtcblxuICAgICAgaWYgKGNlbGxHcm91cC5vd25Db2x1bW4oKSAmJiBjZWxsR3JvdXAuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICBmb3IgKGxldCByID0gY2VsbEdyb3VwLnJvd0luZGV4ICsgMTsgciA8IGFycnMubGVuZ3RoOyByKyspIHtcbiAgICAgICAgICBhcnJzW3JdW2NvbF0gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29sKys7XG4gICAgICAgIGZvciAobGV0IHIgPSAwOyByIDwgYXJycy5sZW5ndGg7IHIrKykge1xuICAgICAgICAgIGFycnNbcl1bY29sXSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycnM7XG4gIH1cblxuXG4gIHN0YXRpYyBpdGVyYXRlVGhyb3dDb2x1bW5zKFxuICAgIHNiOiBzdHJpbmdbXSA9IFtdLFxuICAgIGNlbGxHcm91cHM6IENlbGxHcm91cEV4dFtdXG4gICkge1xuXG4gICAgZm9yIChjb25zdCBjZWxsR3JvdXAgb2YgY2VsbEdyb3Vwcykge1xuICAgICAgc2IucHVzaChjZWxsR3JvdXAuZGF0YSArIFwiICAgIHJvd0luZGV4OlwiICsgY2VsbEdyb3VwLnJvd0luZGV4KTtcbiAgICAgIGlmIChjZWxsR3JvdXAuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICBDZWxsZ3JvdXBGYWN0b3J5Lml0ZXJhdGVUaHJvd0NvbHVtbnMoc2IsIGNlbGxHcm91cC5jaGlsZHJlbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cblxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZi5pZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvY29sdW1uL2NvbHVtbi1kZWYuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpemVJZiB9IGZyb20gXCIuLi8uLi9jb21tb24vc2l6ZS5pZlwiO1xuaW1wb3J0IHsgQ2VsbFJlbmRlcmVySWYgfSBmcm9tIFwiLi4vLi4vLi4vcmVuZGVyZXIvY2VsbC1yZW5kZXIuaWZcIjtcbmltcG9ydCB7IEFyZWFPYmplY3RNYXBUeXBlIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9hcmVhLW1hcC50eXBlXCI7XG5pbXBvcnQgeyBCb29sZWFuRnVuY3Rpb24gfSBmcm9tIFwiLi4vLi4vY29tbW9uL2Jvb2xlYW4tZnVuY3Rpb25cIjtcbmltcG9ydCB7IFNvcnRTdGF0ZSB9IGZyb20gXCIuLi8uLi9jb21tb24vc29ydC1zdGF0ZS50eXBlXCI7XG5pbXBvcnQgeyBHZXRFZGl0UmVuZGVyZXIgfSBmcm9tIFwiLi4vLi4vLi4vcmVuZGVyZXIvZWRpdC9lZGl0LWNlbGwtcmVuZGVyZXIudHlwZVwiO1xuaW1wb3J0IHsgZWRpdElucHV0UGlwZSB9IGZyb20gXCIuLi8uLi8uLi9yZW5kZXJlci9lZGl0L2VkaXQtaW5wdXQtcGlwZS5pZlwiO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRGVmSWYge1xuICBwcm9wZXJ0eTogc3RyaW5nO1xuICBoZWFkZXJMYWJlbDogc3RyaW5nO1xuICB3aWR0aDogU2l6ZUlmO1xuICBtaW5XaWR0aDogU2l6ZUlmO1xuICBtYXhXaWR0aDogU2l6ZUlmO1xuICByZW5kZXJlck1hcDogQXJlYU9iamVjdE1hcFR5cGU8Q2VsbFJlbmRlcmVySWY+O1xuICBjbGFzc2VzOiBBcmVhT2JqZWN0TWFwVHlwZTxzdHJpbmdbXT47XG4gIHNvcnRhYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICBzb3J0SWNvblZpc2libGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gIHNvcnRDb21wYXJhdG9yPzogPFQ+KGE6IFQsIGI6IFQpID0+IG51bWJlcixcbiAgc29ydFN0YXRlPzogU29ydFN0YXRlLFxuICBzb3J0U3RhdGVzT3JkZXI/OiBTb3J0U3RhdGVbXSxcbiAgZWRpdGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gIGlzVmlzaWJsZT86IEJvb2xlYW5GdW5jdGlvbixcbiAgZ2V0RWRpdFJlbmRlcmVyPzogR2V0RWRpdFJlbmRlcmVyLFxuICBlZGl0SW5wdXRQaXBlPzogZWRpdElucHV0UGlwZVxufVxuXG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Size } from "../../common/size";
|
|
2
|
+
import { AreaObjectMap } from "../../common/area-map";
|
|
3
|
+
import { FalseFn, TrueFn } from "../../common/boolean-function";
|
|
4
|
+
export class ColumnDef {
|
|
5
|
+
property;
|
|
6
|
+
headerLabel;
|
|
7
|
+
width;
|
|
8
|
+
classes;
|
|
9
|
+
rendererMap;
|
|
10
|
+
minWidth;
|
|
11
|
+
maxWidth;
|
|
12
|
+
sortable;
|
|
13
|
+
sortComparator;
|
|
14
|
+
sortState;
|
|
15
|
+
sortStatesOrder;
|
|
16
|
+
sortIconVisible;
|
|
17
|
+
editable;
|
|
18
|
+
getEditRenderer;
|
|
19
|
+
editInputPipe;
|
|
20
|
+
isVisible;
|
|
21
|
+
visible = true;
|
|
22
|
+
constructor(property, headerLabel, width = new Size(100, "px"), classes = new AreaObjectMap(), rendererMap = new AreaObjectMap(), minWidth = new Size(100, "px"), maxWidth = new Size(100, "px"), sortable, sortComparator, sortState, sortStatesOrder, sortIconVisible, editable, getEditRenderer, editInputPipe, isVisible = () => this.visible) {
|
|
23
|
+
this.property = property;
|
|
24
|
+
this.headerLabel = headerLabel;
|
|
25
|
+
this.width = width;
|
|
26
|
+
this.classes = classes;
|
|
27
|
+
this.rendererMap = rendererMap;
|
|
28
|
+
this.minWidth = minWidth;
|
|
29
|
+
this.maxWidth = maxWidth;
|
|
30
|
+
this.sortable = sortable;
|
|
31
|
+
this.sortComparator = sortComparator;
|
|
32
|
+
this.sortState = sortState;
|
|
33
|
+
this.sortStatesOrder = sortStatesOrder;
|
|
34
|
+
this.sortIconVisible = sortIconVisible;
|
|
35
|
+
this.editable = editable;
|
|
36
|
+
this.getEditRenderer = getEditRenderer;
|
|
37
|
+
this.editInputPipe = editInputPipe;
|
|
38
|
+
this.isVisible = isVisible;
|
|
39
|
+
}
|
|
40
|
+
static bodyRenderer(bodyRenderer) {
|
|
41
|
+
return new AreaObjectMap(undefined, bodyRenderer, undefined);
|
|
42
|
+
}
|
|
43
|
+
static create(param) {
|
|
44
|
+
const am = new AreaObjectMap(param.headerRenderer, param.bodyRenderer, param.footerRenderer);
|
|
45
|
+
const cm = new AreaObjectMap(param.headerClasses, param.bodyClasses, param.footerClasses);
|
|
46
|
+
const sortIconVisible = param.sortIconVisible ?? param.sortable ?? FalseFn;
|
|
47
|
+
const editable = param.editable ?? param.editable ?? FalseFn;
|
|
48
|
+
const isVisible = param.isVisible ?? param.isVisible ?? TrueFn;
|
|
49
|
+
return new ColumnDef(param.property ?? "", param.headerLabel ?? "", param.width ?? new Size(100, "px"), cm, am, param.minWidth ?? new Size(100, "px"), param.maxWidth ?? new Size(100, "px"), param.sortable, param.sortComparator, param.sortState, param.sortStatesOrder, sortIconVisible, editable, param.getEditRenderer, param.editInputPipe, isVisible);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvY29sdW1uL2NvbHVtbi1kZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBS3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQW1CLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU1qRixNQUFNLE9BQU8sU0FBUztJQUtYO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBbEJGLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFFdEIsWUFDUyxRQUFnQixFQUNoQixXQUFtQixFQUNuQixRQUFnQixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQ25DLFVBQXVDLElBQUksYUFBYSxFQUFZLEVBQ3BFLGNBQWlELElBQUksYUFBYSxFQUFrQixFQUNwRixXQUFtQixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQ3RDLFdBQW1CLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFDdEMsUUFBMEIsRUFDMUIsY0FBMEMsRUFDMUMsU0FBcUIsRUFDckIsZUFBNkIsRUFDN0IsZUFBaUMsRUFDakMsUUFBMEIsRUFDMUIsZUFBaUMsRUFDakMsYUFBNkIsRUFDN0IsWUFBNkIsR0FBRSxFQUFFLENBQUEsSUFBSSxDQUFDLE9BQU87UUFmN0MsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixVQUFLLEdBQUwsS0FBSyxDQUE4QjtRQUNuQyxZQUFPLEdBQVAsT0FBTyxDQUE2RDtRQUNwRSxnQkFBVyxHQUFYLFdBQVcsQ0FBeUU7UUFDcEYsYUFBUSxHQUFSLFFBQVEsQ0FBOEI7UUFDdEMsYUFBUSxHQUFSLFFBQVEsQ0FBOEI7UUFDdEMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQTRCO1FBQzFDLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDckIsb0JBQWUsR0FBZixlQUFlLENBQWM7UUFDN0Isb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBb0M7SUFFdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBNEI7UUFDOUMsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBcUJiO1FBRUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxhQUFhLENBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxZQUFZLEVBQ2xCLEtBQUssQ0FBQyxjQUFjLENBQ3JCLENBQUM7UUFFRixNQUFNLEVBQUUsR0FBRyxJQUFJLGFBQWEsQ0FDMUIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFdBQVcsRUFDakIsS0FBSyxDQUFDLGFBQWEsQ0FDcEIsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUM3RCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDO1FBRS9ELE9BQU8sSUFBSSxTQUFTLENBQ2xCLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxFQUNwQixLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFDdkIsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQ2xDLEVBQUUsRUFDRixFQUFFLEVBQ0YsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQ3JDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUNyQyxLQUFLLENBQUMsUUFBUSxFQUNkLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxTQUFTLEVBQ2YsS0FBSyxDQUFDLGVBQWUsRUFDckIsZUFBZSxFQUNmLFFBQVEsRUFDUixLQUFLLENBQUMsZUFBZSxFQUNyQixLQUFLLENBQUMsYUFBYSxFQUNuQixTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vY29tbW9uL3NpemVcIjtcbmltcG9ydCB7IFNpemVJZiB9IGZyb20gXCIuLi8uLi9jb21tb24vc2l6ZS5pZlwiO1xuaW1wb3J0IHsgQ29sdW1uRGVmSWYgfSBmcm9tIFwiLi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQgeyBDZWxsUmVuZGVyZXJJZiB9IGZyb20gXCIuLi8uLi8uLi9yZW5kZXJlci9jZWxsLXJlbmRlci5pZlwiO1xuaW1wb3J0IHsgQXJlYU9iamVjdE1hcFR5cGUgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2FyZWEtbWFwLnR5cGVcIjtcbmltcG9ydCB7IEFyZWFPYmplY3RNYXAgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2FyZWEtbWFwXCI7XG5pbXBvcnQgeyBCb29sZWFuRnVuY3Rpb24sIEZhbHNlRm4sIFRydWVGbiB9IGZyb20gXCIuLi8uLi9jb21tb24vYm9vbGVhbi1mdW5jdGlvblwiO1xuaW1wb3J0IHsgU29ydFN0YXRlIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zb3J0LXN0YXRlLnR5cGVcIjtcbmltcG9ydCB7IEdldEVkaXRSZW5kZXJlciB9IGZyb20gXCIuLi8uLi8uLi9yZW5kZXJlci9lZGl0L2VkaXQtY2VsbC1yZW5kZXJlci50eXBlXCI7XG5pbXBvcnQgeyBlZGl0SW5wdXRQaXBlIH0gZnJvbSBcIi4uLy4uLy4uL3JlbmRlcmVyL2VkaXQvZWRpdC1pbnB1dC1waXBlLmlmXCI7XG5cblxuZXhwb3J0IGNsYXNzIENvbHVtbkRlZiBpbXBsZW1lbnRzIENvbHVtbkRlZklmIHtcblxuICBwdWJsaWMgdmlzaWJsZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgcHVibGljIGhlYWRlckxhYmVsOiBzdHJpbmcsXG4gICAgcHVibGljIHdpZHRoOiBTaXplSWYgPSBuZXcgU2l6ZSgxMDAsIFwicHhcIiksXG4gICAgcHVibGljIGNsYXNzZXM6IEFyZWFPYmplY3RNYXBUeXBlPHN0cmluZ1tdPiA9IG5ldyBBcmVhT2JqZWN0TWFwPHN0cmluZ1tdPigpLFxuICAgIHB1YmxpYyByZW5kZXJlck1hcDogQXJlYU9iamVjdE1hcFR5cGU8Q2VsbFJlbmRlcmVySWY+ID0gbmV3IEFyZWFPYmplY3RNYXA8Q2VsbFJlbmRlcmVySWY+KCksXG4gICAgcHVibGljIG1pbldpZHRoOiBTaXplSWYgPSBuZXcgU2l6ZSgxMDAsIFwicHhcIiksXG4gICAgcHVibGljIG1heFdpZHRoOiBTaXplSWYgPSBuZXcgU2l6ZSgxMDAsIFwicHhcIiksXG4gICAgcHVibGljIHNvcnRhYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICAgIHB1YmxpYyBzb3J0Q29tcGFyYXRvcj86IDxUPihhOiBULCBiOiBUKSA9PiBudW1iZXIsXG4gICAgcHVibGljIHNvcnRTdGF0ZT86IFNvcnRTdGF0ZSxcbiAgICBwdWJsaWMgc29ydFN0YXRlc09yZGVyPzogU29ydFN0YXRlW10sXG4gICAgcHVibGljIHNvcnRJY29uVmlzaWJsZT86IEJvb2xlYW5GdW5jdGlvbixcbiAgICBwdWJsaWMgZWRpdGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gICAgcHVibGljIGdldEVkaXRSZW5kZXJlcj86IEdldEVkaXRSZW5kZXJlcixcbiAgICBwdWJsaWMgZWRpdElucHV0UGlwZT86IGVkaXRJbnB1dFBpcGUsXG4gICAgcHVibGljIGlzVmlzaWJsZTogQm9vbGVhbkZ1bmN0aW9uID0gKCk9PnRoaXMudmlzaWJsZVxuICApIHtcbiAgfVxuXG4gIHN0YXRpYyBib2R5UmVuZGVyZXIoYm9keVJlbmRlcmVyOiBDZWxsUmVuZGVyZXJJZikge1xuICAgIHJldHVybiBuZXcgQXJlYU9iamVjdE1hcDxDZWxsUmVuZGVyZXJJZj4oXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBib2R5UmVuZGVyZXIsXG4gICAgICB1bmRlZmluZWRcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZShwYXJhbToge1xuICAgIHByb3BlcnR5Pzogc3RyaW5nLFxuICAgIGhlYWRlckxhYmVsPzogc3RyaW5nLFxuICAgIHdpZHRoPzogU2l6ZUlmLFxuICAgIG1pbldpZHRoPzogU2l6ZUlmLFxuICAgIG1heFdpZHRoPzogU2l6ZUlmLFxuICAgIGhlYWRlclJlbmRlcmVyPzogQ2VsbFJlbmRlcmVySWYsXG4gICAgYm9keVJlbmRlcmVyPzogQ2VsbFJlbmRlcmVySWYsXG4gICAgZm9vdGVyUmVuZGVyZXI/OiBDZWxsUmVuZGVyZXJJZixcbiAgICBoZWFkZXJDbGFzc2VzPzogc3RyaW5nW11cbiAgICBib2R5Q2xhc3Nlcz86IHN0cmluZ1tdXG4gICAgZm9vdGVyQ2xhc3Nlcz86IHN0cmluZ1tdLFxuICAgIHNvcnRhYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICAgIHNvcnRJY29uVmlzaWJsZT86IEJvb2xlYW5GdW5jdGlvbixcbiAgICBzb3J0Q29tcGFyYXRvcj86IDxUPihhOiBULCBiOiBUKSA9PiBudW1iZXIsXG4gICAgc29ydFN0YXRlPzogU29ydFN0YXRlLFxuICAgIHNvcnRTdGF0ZXNPcmRlcj86IFNvcnRTdGF0ZVtdLFxuICAgIGVkaXRhYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICAgIGlzVmlzaWJsZT86IEJvb2xlYW5GdW5jdGlvbixcbiAgICBnZXRFZGl0UmVuZGVyZXI/OiBHZXRFZGl0UmVuZGVyZXIsXG4gICAgZWRpdElucHV0UGlwZT86IGVkaXRJbnB1dFBpcGUsXG4gIH0pOiBDb2x1bW5EZWZJZiB7XG5cbiAgICBjb25zdCBhbSA9IG5ldyBBcmVhT2JqZWN0TWFwPENlbGxSZW5kZXJlcklmPihcbiAgICAgIHBhcmFtLmhlYWRlclJlbmRlcmVyLFxuICAgICAgcGFyYW0uYm9keVJlbmRlcmVyLFxuICAgICAgcGFyYW0uZm9vdGVyUmVuZGVyZXJcbiAgICApO1xuXG4gICAgY29uc3QgY20gPSBuZXcgQXJlYU9iamVjdE1hcDxzdHJpbmdbXT4oXG4gICAgICBwYXJhbS5oZWFkZXJDbGFzc2VzLFxuICAgICAgcGFyYW0uYm9keUNsYXNzZXMsXG4gICAgICBwYXJhbS5mb290ZXJDbGFzc2VzXG4gICAgKTtcblxuICAgIGNvbnN0IHNvcnRJY29uVmlzaWJsZSA9IHBhcmFtLnNvcnRJY29uVmlzaWJsZSA/PyBwYXJhbS5zb3J0YWJsZSA/PyBGYWxzZUZuO1xuICAgIGNvbnN0IGVkaXRhYmxlID0gcGFyYW0uZWRpdGFibGUgPz8gcGFyYW0uZWRpdGFibGUgPz8gRmFsc2VGbjtcbiAgICBjb25zdCBpc1Zpc2libGUgPSBwYXJhbS5pc1Zpc2libGUgPz8gcGFyYW0uaXNWaXNpYmxlID8/IFRydWVGbjtcblxuICAgIHJldHVybiBuZXcgQ29sdW1uRGVmKFxuICAgICAgcGFyYW0ucHJvcGVydHkgPz8gXCJcIixcbiAgICAgIHBhcmFtLmhlYWRlckxhYmVsID8/IFwiXCIsXG4gICAgICBwYXJhbS53aWR0aCA/PyBuZXcgU2l6ZSgxMDAsIFwicHhcIiksXG4gICAgICBjbSxcbiAgICAgIGFtLFxuICAgICAgcGFyYW0ubWluV2lkdGggPz8gbmV3IFNpemUoMTAwLCBcInB4XCIpLFxuICAgICAgcGFyYW0ubWF4V2lkdGggPz8gbmV3IFNpemUoMTAwLCBcInB4XCIpLFxuICAgICAgcGFyYW0uc29ydGFibGUsXG4gICAgICBwYXJhbS5zb3J0Q29tcGFyYXRvcixcbiAgICAgIHBhcmFtLnNvcnRTdGF0ZSxcbiAgICAgIHBhcmFtLnNvcnRTdGF0ZXNPcmRlcixcbiAgICAgIHNvcnRJY29uVmlzaWJsZSxcbiAgICAgIGVkaXRhYmxlLFxuICAgICAgcGFyYW0uZ2V0RWRpdFJlbmRlcmVyLFxuICAgICAgcGFyYW0uZWRpdElucHV0UGlwZSxcbiAgICAgIGlzVmlzaWJsZSxcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class Padding {
|
|
2
|
+
top;
|
|
3
|
+
right;
|
|
4
|
+
bottom;
|
|
5
|
+
left;
|
|
6
|
+
constructor(top = 0, right = 0, bottom = 0, left = 0) {
|
|
7
|
+
this.top = top;
|
|
8
|
+
this.right = right;
|
|
9
|
+
this.bottom = bottom;
|
|
10
|
+
this.left = left;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvcGFkZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sT0FBTztJQUVUO0lBQ0E7SUFDQTtJQUNBO0lBSlQsWUFDUyxNQUFjLENBQUMsRUFDZixRQUFnQixDQUFDLEVBQ2pCLFNBQWlCLENBQUMsRUFDbEIsT0FBZSxDQUFDO1FBSGhCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUV6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUGFkZGluZyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0b3A6IG51bWJlciA9IDAsXG4gICAgcHVibGljIHJpZ2h0OiBudW1iZXIgPSAwLFxuICAgIHB1YmxpYyBib3R0b206IG51bWJlciA9IDAsXG4gICAgcHVibGljIGxlZnQ6IG51bWJlciA9IDBcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZGF0YS90YWJsZW1vZGVsL3RhYmxlLW1vZGVsLmlmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWRkaW5nIH0gZnJvbSBcIi4vcGFkZGluZ1wiO1xuaW1wb3J0IHsgQXJlYUlkZW50IH0gZnJvbSBcIi4vYXJlYS1pZGVudC50eXBlXCI7XG5pbXBvcnQgeyBDb2x1bW5EZWZJZiB9IGZyb20gXCIuL2NvbHVtbi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQgeyBBcmVhTW9kZWxJZiB9IGZyb20gXCIuL2FyZWFtb2RlbC9hcmVhLW1vZGVsLmlmXCI7XG5pbXBvcnQgeyBGaWx0ZXJGdW5jdGlvbiB9IGZyb20gXCIuLi9jb21tb24vZmlsdGVyLWZ1bmN0aW9uXCI7XG5pbXBvcnQgeyBTb3J0SXRlbSB9IGZyb20gXCIuLi9jb21tb24vc29ydC1pdGVtXCI7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbElmIH0gZnJvbSBcIi4uLy4uL3NlbGVjdGlvbi9zZWxlY3Rpb24tbW9kZWwuaWZcIjtcblxuLyoqXG4gKiBUaGUgVGFibGVNb2RlbElmIGlzIG9uIG9uZSBoYW5kIGEgY29udGFpbmVyIGZvciB0aGUgaGVhZGVyLCBib2R5LCBhbmQgZm9vdGVyIG1vZGVsc1xuICogKHNlZSA6ICNnZXRBcmVhTW9kZWwsIGFuZCAjQXJlYU1vZGVsSWYpLCBhbmQgb24gdGhlIG90aGVyIGhhbmQgdGhlIG1hc3RlciBvZlxuICogdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiAoI2dldENvbHVtbkNvdW50KCksICNnZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleDogbnVtYmVyKSkuXG4gKlxuICogSWYgZ2V0Rml4ZWRMZWZ0Q29sdW1uQ291bnQoKSByZXR1cm5zIGEgdmFsdWUgZ3JlYXRlciB0aGFuIDAsIGEgZml4ZWQgd2VzdCBhcmVhIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlXG4gKiBoZWFkZXIsIGJvZHksIGFuZCBmb290ZXIuIEEgdmFsdWUgZ3JlYXRlciB0aGFuIDAgZm9yIGdldEZpeGVkTGVmdENvbHVtbkNvdW50KClcbiAqIHdpbGwgcmVzdWx0IGluIHRoZSBwcmVzZW5jZSBvZiBhbiBlYXN0IGFyZWEuXG4gKiA8cHJlPlxuICogICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rXG4gKiAgfCAgaGVhZGVyL3dlc3QgICB8ICBoZWFkZXIvY2VudGVyICAgIHwgaGVhZGVyL2Vhc3QgIHxcbiAqICArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tK1xuICogIHwgIGJvZHkvd2VzdCAgICAgfCAgYm9keS9jZW50ZXIgICAgICB8IGJvZHkvZWFzdCAgICB8XG4gKiAgKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLStcbiAqICB8ICBmb290ZXIvd2VzdCAgIHwgIGZvb3Rlci9jZW50ZXIgICAgfCBmb290ZXIvZWFzdCAgfFxuICogICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rPC9wcmU+XG4gKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlTW9kZWxJZiB7XG5cbiAgY2hhbmdlQ29sdW1uT3JkZXIoc291cmNlQ29sdW1uSW5kZXg6IG51bWJlciwgdGFyZ2V0Q29sdW1uSW5kZXg6IG51bWJlcik6IHZvaWQ7XG5cbiAgaXNTb3J0YWJsZShjb2xJZHg6IG51bWJlcik6IGJvb2xlYW47XG5cbiAgaW5pdCgpOiB2b2lkO1xuXG4gIGdldENvbHVtbkNvdW50KCk6IG51bWJlcjtcblxuICBnZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleDogbnVtYmVyKTogbnVtYmVyO1xuXG4gIGdldFhQb3NCeUNvbHVtbkluZGV4KGNvbHVtbkluZGV4OiBudW1iZXIpOiBudW1iZXI7XG5cbiAgZ2V0QXJlYU1vZGVsKHJvd0FyZWFJZGVudDogQXJlYUlkZW50KTogQXJlYU1vZGVsSWY7XG5cbiAgZ2V0Qm9keU1vZGVsKCk6IEFyZWFNb2RlbElmO1xuXG4gIGdldEZpeGVkTGVmdENvbHVtbkNvdW50KCk6IG51bWJlcjtcblxuICBnZXRGaXhlZFJpZ2h0Q29sdW1uQ291bnQoKTogbnVtYmVyO1xuXG4gIGlzSGVhZGVyVmlzaWJlKCk6IGJvb2xlYW47XG5cbiAgaXNGb290ZXJWaXNpYmUoKTogYm9vbGVhbjtcblxuICBpc1Jvd0NoZWNrYm94VmlzaWJsZSgpOiBib29sZWFuO1xuXG4gIGdldFJvd0hlaWdodChyb3dBcmVhSWRlbnQ6IEFyZWFJZGVudCwgcm93SW5kZXg6IG51bWJlcik6IG51bWJlcjtcblxuICBnZXRDb2x1bW5EZWYoaW5kZXg6IG51bWJlcik6IENvbHVtbkRlZklmIHwgdW5kZWZpbmVkO1xuXG4gIGdldENvbHVtbkRlZnMoKTogQ29sdW1uRGVmSWZbXSB8IHVuZGVmaW5lZDtcblxuICBnZXRDb2x1bW5Qcm9wZXJ0eShjb2x1bW5JbmRleDogbnVtYmVyKTogc3RyaW5nO1xuXG4gIGdldEJvZHlSb3dCeUluZGV4KHJvd0luZGV4OiBudW1iZXIpOiBhbnk7XG5cbiAgZ2V0Q29sdW1uV2lkdGgoY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlcjtcblxuICBzZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleDogbnVtYmVyLCB3aWR0aDogbnVtYmVyKTogdm9pZDtcblxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcmVjYWxjU2l6ZShjbGllbnRXaWR0aDogbnVtYmVyKTogdm9pZDtcblxuICByZWNhbGNQYWRkaW5nKCk6IHZvaWQ7XG5cbiAgcmVjYWxjSGVpZ2h0QW5kUGFkZGluZygpOiB2b2lkO1xuXG4gIGdldFBhZGRpbmcoKTogUGFkZGluZztcblxuICBnZXRDb250ZW50SGVpZ2h0SW5QaXhlbCgpOiBudW1iZXI7XG5cbiAgZ2V0Q29udGVudFdpZHRoSW5QaXhlbCgpOiBudW1iZXI7XG5cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGV4dGVybmFsRmlsdGVyQ2hhbmdlZDxUPihwcmVkaWN0Rm46IEZpbHRlckZ1bmN0aW9uPFQ+KTogdm9pZDtcblxuICBkb1NvcnQoc29ydEl0ZW1zOiBTb3J0SXRlbVtdKTogYm9vbGVhbjtcblxuICBnZXRTZWxlY3Rpb25Nb2RlbCgpOiBTZWxlY3Rpb25Nb2RlbElmfHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { Padding } from "./padding";
|
|
2
|
+
import { DefaultRowHeights } from "../options/default-row-heights";
|
|
3
|
+
import { CheckboxColumnDef } from "../common/checkbox-column-def";
|
|
4
|
+
import { CheckboxModel } from "../../checkbox/checkbox-model";
|
|
5
|
+
/**
|
|
6
|
+
* This is a default implementation of TableModelIf.
|
|
7
|
+
* Ths TableModel is on one hand a container for the header, body, and footer models
|
|
8
|
+
* (see : #getAreaModel, and #AreaModelIf), and on the other hand the master of
|
|
9
|
+
* the column information (#getColumnCount(), #getColumnWidth(columnIndex: number)).
|
|
10
|
+
*
|
|
11
|
+
* If getFixedLeftColumnCount() returns a value greater than 0, a fixed west area will be rendered in the
|
|
12
|
+
* header, body, and footer. A value greater than 0 for getFixedLeftColumnCount()
|
|
13
|
+
* will result in the presence of an east area.
|
|
14
|
+
*
|
|
15
|
+
* <pre>
|
|
16
|
+
* +----------------+-------------------+--------------+
|
|
17
|
+
* | header/west | header/center | header/east |
|
|
18
|
+
* +----------------+-------------------+--------------+
|
|
19
|
+
* | body/west | body/center | body/east |
|
|
20
|
+
* +----------------+-------------------+--------------+
|
|
21
|
+
* | footer/west | footer/center | footer/east |
|
|
22
|
+
* +----------------+-------------------+--------------+ </pre>
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
export class TableModel {
|
|
26
|
+
headerAreaModel;
|
|
27
|
+
bodyAreaModel;
|
|
28
|
+
footerAreaModel;
|
|
29
|
+
fixedLeftColumnCount;
|
|
30
|
+
fixedRightColumnCount;
|
|
31
|
+
rowCheckboxVisible;
|
|
32
|
+
defaultRowHeights;
|
|
33
|
+
columnDefs;
|
|
34
|
+
columnSizes;
|
|
35
|
+
overridingColumnWidth;
|
|
36
|
+
columnCount;
|
|
37
|
+
parentSize;
|
|
38
|
+
getSelectionModel;
|
|
39
|
+
rowCount = 0;
|
|
40
|
+
contentHeightInPx = 0;
|
|
41
|
+
contentWidthInPx = 0;
|
|
42
|
+
// in case of a fixed header, left or right column, footer:
|
|
43
|
+
padding = new Padding(0, 0, 0, 0); // the dimension of the 'body/center'
|
|
44
|
+
xPositions = [];
|
|
45
|
+
constructor(headerAreaModel, bodyAreaModel, footerAreaModel, fixedLeftColumnCount = 0, fixedRightColumnCount = 0, rowCheckboxVisible = false, defaultRowHeights = new DefaultRowHeights(), columnDefs = [], columnSizes = [], overridingColumnWidth = -1, columnCount = 0, parentSize = 400, // can be important when we have percentage widthes,
|
|
46
|
+
getSelectionModel = () => undefined) {
|
|
47
|
+
this.headerAreaModel = headerAreaModel;
|
|
48
|
+
this.bodyAreaModel = bodyAreaModel;
|
|
49
|
+
this.footerAreaModel = footerAreaModel;
|
|
50
|
+
this.fixedLeftColumnCount = fixedLeftColumnCount;
|
|
51
|
+
this.fixedRightColumnCount = fixedRightColumnCount;
|
|
52
|
+
this.rowCheckboxVisible = rowCheckboxVisible;
|
|
53
|
+
this.defaultRowHeights = defaultRowHeights;
|
|
54
|
+
this.columnDefs = columnDefs;
|
|
55
|
+
this.columnSizes = columnSizes;
|
|
56
|
+
this.overridingColumnWidth = overridingColumnWidth;
|
|
57
|
+
this.columnCount = columnCount;
|
|
58
|
+
this.parentSize = parentSize;
|
|
59
|
+
this.getSelectionModel = getSelectionModel;
|
|
60
|
+
headerAreaModel.areaIdent = "header";
|
|
61
|
+
bodyAreaModel.areaIdent = "body";
|
|
62
|
+
footerAreaModel.areaIdent = "footer";
|
|
63
|
+
if (!this.columnCount) {
|
|
64
|
+
if (this.columnDefs?.length) {
|
|
65
|
+
this.columnCount = this.columnDefs.length;
|
|
66
|
+
}
|
|
67
|
+
else if (this.columnSizes?.length) {
|
|
68
|
+
this.columnCount = this.columnSizes?.length;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (this.columnDefs?.length
|
|
72
|
+
&& this.columnDefs[0] instanceof CheckboxColumnDef
|
|
73
|
+
&& !bodyAreaModel.rowSelectionModel) {
|
|
74
|
+
bodyAreaModel.rowSelectionModel = new CheckboxModel();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
init() {
|
|
78
|
+
this.recalcSize(this.parentSize);
|
|
79
|
+
if (this.overridingColumnWidth === -1) {
|
|
80
|
+
this.calcXPositions();
|
|
81
|
+
}
|
|
82
|
+
if (this.headerAreaModel) {
|
|
83
|
+
this.headerAreaModel.init();
|
|
84
|
+
}
|
|
85
|
+
if (this.bodyAreaModel) {
|
|
86
|
+
this.bodyAreaModel.init();
|
|
87
|
+
}
|
|
88
|
+
if (this.footerAreaModel) {
|
|
89
|
+
this.footerAreaModel.init();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
getColumnCount() {
|
|
93
|
+
return this.columnCount;
|
|
94
|
+
}
|
|
95
|
+
;
|
|
96
|
+
setColumnWidth(columnIndex, width) {
|
|
97
|
+
width = Math.max(0, width);
|
|
98
|
+
if (this.overridingColumnWidth !== -1) {
|
|
99
|
+
this.overridingColumnWidth = width;
|
|
100
|
+
}
|
|
101
|
+
if (columnIndex > -1 && columnIndex < this.columnSizes?.length) {
|
|
102
|
+
this.columnSizes[columnIndex] = width;
|
|
103
|
+
}
|
|
104
|
+
this.recalcContentWidthInPx();
|
|
105
|
+
}
|
|
106
|
+
getColumnWidth(columnIndex) {
|
|
107
|
+
const cd = this.getColumnDef(columnIndex);
|
|
108
|
+
if (cd && cd.isVisible && !cd.isVisible()) {
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
if (this.overridingColumnWidth !== -1) {
|
|
112
|
+
return this.overridingColumnWidth;
|
|
113
|
+
}
|
|
114
|
+
if (columnIndex > -1 && columnIndex < this.columnSizes?.length) {
|
|
115
|
+
return this.columnSizes[columnIndex];
|
|
116
|
+
}
|
|
117
|
+
return 0;
|
|
118
|
+
}
|
|
119
|
+
;
|
|
120
|
+
getXPosByColumnIndex(columnIndex) {
|
|
121
|
+
if (columnIndex === 0) {
|
|
122
|
+
return 0;
|
|
123
|
+
}
|
|
124
|
+
if (this.overridingColumnWidth > -1) {
|
|
125
|
+
return this.overridingColumnWidth * columnIndex;
|
|
126
|
+
}
|
|
127
|
+
return this.xPositions[columnIndex];
|
|
128
|
+
}
|
|
129
|
+
recalcSize(clientWidth) {
|
|
130
|
+
this.recalcColumnWidthes(clientWidth);
|
|
131
|
+
this.recalcHeightAndPadding();
|
|
132
|
+
}
|
|
133
|
+
recalcHeightAndPadding() {
|
|
134
|
+
const bodyModel = this.getAreaModel("body");
|
|
135
|
+
this.rowCount = bodyModel.getRowCount();
|
|
136
|
+
this.contentHeightInPx = this.getAreaHeight("body");
|
|
137
|
+
this.recalcContentWidthInPx();
|
|
138
|
+
this.recalcPadding();
|
|
139
|
+
}
|
|
140
|
+
recalcPadding() {
|
|
141
|
+
const westWidth = this.getSideAreaWidth("west");
|
|
142
|
+
const eastWidth = this.getSideAreaWidth("east");
|
|
143
|
+
const headerHeight = this.getAreaHeight("header");
|
|
144
|
+
const footerHeight = this.getAreaHeight("footer");
|
|
145
|
+
this.padding = new Padding(headerHeight, eastWidth, footerHeight, westWidth);
|
|
146
|
+
}
|
|
147
|
+
getPadding() {
|
|
148
|
+
return this.padding;
|
|
149
|
+
}
|
|
150
|
+
getContentHeightInPixel() {
|
|
151
|
+
return this.contentHeightInPx;
|
|
152
|
+
}
|
|
153
|
+
getContentWidthInPixel() {
|
|
154
|
+
return this.contentWidthInPx;
|
|
155
|
+
}
|
|
156
|
+
getRowHeight(rowAreaIdent, rowIndex) {
|
|
157
|
+
return this.getAreaModel(rowAreaIdent).getRowHeight(rowIndex);
|
|
158
|
+
}
|
|
159
|
+
getModel(rowAreaIdent) {
|
|
160
|
+
return this.getAreaModel(rowAreaIdent);
|
|
161
|
+
}
|
|
162
|
+
getAreaHeight(areaIdent) {
|
|
163
|
+
const model = this.getModel(areaIdent);
|
|
164
|
+
const rowCount = model.getRowCount();
|
|
165
|
+
if (this.defaultRowHeights[areaIdent]) {
|
|
166
|
+
return rowCount * this.defaultRowHeights[areaIdent];
|
|
167
|
+
}
|
|
168
|
+
let ret = 0;
|
|
169
|
+
for (let i = 0; i < rowCount; i++) {
|
|
170
|
+
ret = ret + model.getRowHeight(i);
|
|
171
|
+
}
|
|
172
|
+
return ret;
|
|
173
|
+
}
|
|
174
|
+
getSideAreaWidth(sideIdent) {
|
|
175
|
+
const [cStart, cEnd] = this.getSideStartAndEndColumnIndex(sideIdent);
|
|
176
|
+
let ret = 0;
|
|
177
|
+
for (let i = cStart; i <= cEnd; i++) {
|
|
178
|
+
ret = ret + this.getColumnWidth(i);
|
|
179
|
+
}
|
|
180
|
+
return ret;
|
|
181
|
+
}
|
|
182
|
+
getSideStartAndEndColumnIndex(sideIdent) {
|
|
183
|
+
const c1 = this.getFixedLeftColumnCount();
|
|
184
|
+
const c2 = this.getFixedRightColumnCount();
|
|
185
|
+
let cStart = 0;
|
|
186
|
+
let cEnd = this.columnCount - 1;
|
|
187
|
+
if (sideIdent === "west") {
|
|
188
|
+
cEnd = c1 - 1;
|
|
189
|
+
}
|
|
190
|
+
else if (sideIdent === "east") {
|
|
191
|
+
cStart = this.columnCount - c2;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
// center:
|
|
195
|
+
cStart = c1;
|
|
196
|
+
cEnd = this.columnCount - c2 - 1;
|
|
197
|
+
}
|
|
198
|
+
return [cStart, cEnd];
|
|
199
|
+
}
|
|
200
|
+
getColumnDef(index) {
|
|
201
|
+
if (index < this.columnDefs.length) {
|
|
202
|
+
return this.columnDefs[index];
|
|
203
|
+
}
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
getFixedLeftColumnCount() {
|
|
207
|
+
return this.fixedLeftColumnCount;
|
|
208
|
+
}
|
|
209
|
+
getFixedRightColumnCount() {
|
|
210
|
+
return this.fixedRightColumnCount;
|
|
211
|
+
}
|
|
212
|
+
getAreaModel(area) {
|
|
213
|
+
if (area === "header") {
|
|
214
|
+
return this.headerAreaModel;
|
|
215
|
+
}
|
|
216
|
+
if (area === "body") {
|
|
217
|
+
return this.bodyAreaModel;
|
|
218
|
+
}
|
|
219
|
+
if (area === "footer") {
|
|
220
|
+
return this.footerAreaModel;
|
|
221
|
+
}
|
|
222
|
+
throw new Error("Wrong ident.");
|
|
223
|
+
}
|
|
224
|
+
getBodyModel() {
|
|
225
|
+
return this.bodyAreaModel;
|
|
226
|
+
}
|
|
227
|
+
isFooterVisibe() {
|
|
228
|
+
return (this.footerAreaModel?.getRowCount() ?? 0) > 0;
|
|
229
|
+
}
|
|
230
|
+
isHeaderVisibe() {
|
|
231
|
+
return (this.headerAreaModel?.getRowCount() ?? 0) > 0;
|
|
232
|
+
}
|
|
233
|
+
isRowCheckboxVisible() {
|
|
234
|
+
return this.rowCheckboxVisible;
|
|
235
|
+
}
|
|
236
|
+
externalFilterChanged(predictFn) {
|
|
237
|
+
this.getAreaModel("body").externalFilterChanged(predictFn);
|
|
238
|
+
}
|
|
239
|
+
doSort(sortItems) {
|
|
240
|
+
return this.getAreaModel("body").doSort(sortItems);
|
|
241
|
+
}
|
|
242
|
+
getColumnDefs() {
|
|
243
|
+
return this.columnDefs;
|
|
244
|
+
}
|
|
245
|
+
getColumnProperty(columnIndex) {
|
|
246
|
+
return this.columnDefs[columnIndex].property;
|
|
247
|
+
}
|
|
248
|
+
getBodyRowByIndex(rowIndex) {
|
|
249
|
+
return this.getBodyModel().getRowByIndex(rowIndex);
|
|
250
|
+
}
|
|
251
|
+
isSortable(columnIndex) {
|
|
252
|
+
if (this.columnDefs
|
|
253
|
+
&& columnIndex < this.columnDefs.length
|
|
254
|
+
&& this.columnDefs[columnIndex].sortable) {
|
|
255
|
+
// @ts-ignore
|
|
256
|
+
return this.columnDefs[columnIndex].sortable();
|
|
257
|
+
}
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
changeColumnOrder(sourceColumnIndex, targetColumnIndex) {
|
|
261
|
+
this.arrayMove(this.columnDefs, sourceColumnIndex, targetColumnIndex);
|
|
262
|
+
this.arrayMove(this.columnSizes, sourceColumnIndex, targetColumnIndex);
|
|
263
|
+
this.headerAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
|
|
264
|
+
this.bodyAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
|
|
265
|
+
this.footerAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
|
|
266
|
+
this.calcXPositions();
|
|
267
|
+
}
|
|
268
|
+
recalcColumnWidthes(clientWidth) {
|
|
269
|
+
if (!this.columnDefs?.length && !this.columnSizes?.length) {
|
|
270
|
+
this.columnSizes = new Array(this.getColumnCount()).fill(this.overridingColumnWidth);
|
|
271
|
+
}
|
|
272
|
+
if (this.columnDefs?.length) {
|
|
273
|
+
this.columnSizes = this.columnDefs.map(def => {
|
|
274
|
+
if (def.width.unit === "%" && clientWidth) {
|
|
275
|
+
// only for a % value we have to check min and max:
|
|
276
|
+
let px = Math.floor(def.width.value * clientWidth / 100);
|
|
277
|
+
if (def.minWidth) {
|
|
278
|
+
let pxMin = def.minWidth.unit === "px" ? def.minWidth.value : Math.floor(def.minWidth.value * clientWidth / 100);
|
|
279
|
+
px = Math.max(pxMin, px);
|
|
280
|
+
}
|
|
281
|
+
if (def.maxWidth) {
|
|
282
|
+
let pxMax = def.maxWidth.unit === "px" ? def.maxWidth.value : Math.floor(def.maxWidth.value * clientWidth / 100);
|
|
283
|
+
px = Math.min(pxMax, px);
|
|
284
|
+
}
|
|
285
|
+
return px;
|
|
286
|
+
}
|
|
287
|
+
return def.width.value;
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
arrayMove(arr, fromIndex, toIndex) {
|
|
292
|
+
const element = arr.splice(fromIndex, 1)[0];
|
|
293
|
+
arr.splice(toIndex, 0, element);
|
|
294
|
+
return arr;
|
|
295
|
+
}
|
|
296
|
+
recalcContentWidthInPx() {
|
|
297
|
+
this.contentWidthInPx = this.getSideAreaWidth("center");
|
|
298
|
+
}
|
|
299
|
+
calcXPositions() {
|
|
300
|
+
const columnCount = this.getColumnCount();
|
|
301
|
+
this.xPositions = new Array(columnCount + 1);
|
|
302
|
+
this.xPositions[0] = 0;
|
|
303
|
+
for (let i = 0; i < columnCount; i++) {
|
|
304
|
+
this.xPositions[i + 1] = this.getColumnWidth(i) + this.xPositions[i];
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZGF0YS90YWJsZW1vZGVsL3RhYmxlLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFLcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFNbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzlEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFXSDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNUO0lBQ0E7SUFDRztJQUNBO0lBQ0E7SUFDTTtJQXJCUixRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUUvQiwyREFBMkQ7SUFDakQsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMscUNBQXFDO0lBQ3hFLFVBQVUsR0FBYSxFQUFFLENBQUM7SUFFcEMsWUFDa0IsZUFBNEIsRUFDNUIsYUFBMEIsRUFDMUIsZUFBNEIsRUFDNUIsdUJBQStCLENBQUMsRUFDaEMsd0JBQWdDLENBQUMsRUFDakMscUJBQThCLEtBQUssRUFDbkMsb0JBQXlDLElBQUksaUJBQWlCLEVBQUUsRUFDekUsYUFBNEIsRUFBRSxFQUM5QixjQUF3QixFQUFFLEVBQ3ZCLHdCQUFnQyxDQUFDLENBQUMsRUFDbEMsY0FBc0IsQ0FBQyxFQUN2QixhQUFxQixHQUFHLEVBQUUsb0RBQW9EO0lBQ3hFLG9CQUE0QyxHQUFHLEVBQUUsQ0FBQyxTQUFTO1FBWjNELG9CQUFlLEdBQWYsZUFBZSxDQUFhO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFhO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFhO1FBQzVCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBWTtRQUNoQywwQkFBcUIsR0FBckIscUJBQXFCLENBQVk7UUFDakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFpQjtRQUNuQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQStDO1FBQ3pFLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFlO1FBQ3ZCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBYTtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBQ2xCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEM7UUFFM0UsZUFBZSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckMsYUFBYSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFDakMsZUFBZSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQzthQUMzQztpQkFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFO2dCQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO2FBQzdDO1NBQ0Y7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTTtlQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLGlCQUFpQjtlQUMvQyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRTtZQUNyQyxhQUFhLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMscUJBQXFCLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDN0I7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUFBLENBQUM7SUFFRixjQUFjLENBQUMsV0FBbUIsRUFBRSxLQUFhO1FBQy9DLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFO1lBQzlELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFtQjtRQUNoQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDekMsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLHFCQUFxQixLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO1NBQ25DO1FBQ0QsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFO1lBQzlELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN0QztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUFBLENBQUM7SUFFRixvQkFBb0IsQ0FBQyxXQUFtQjtRQUN0QyxJQUFJLFdBQVcsS0FBSyxDQUFDLEVBQUU7WUFDckIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixHQUFHLFdBQVcsQ0FBQztTQUNqRDtRQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsVUFBVSxDQUFDLFdBQW1CO1FBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhO1FBQ1gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FDeEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUF1QixFQUFFLFFBQWdCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxZQUF1QjtRQUM5QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFvQjtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQyxPQUFPLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDckQ7UUFFRCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLEdBQUcsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQW9CO1FBQ25DLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsNkJBQTZCLENBQUMsU0FBb0I7UUFDaEQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDMUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFFM0MsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxTQUFTLEtBQUssTUFBTSxFQUFFO1lBQ3hCLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2Y7YUFBTSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUU7WUFDL0IsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1NBQ2hDO2FBQU07WUFDTCxVQUFVO1lBQ1YsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUNaLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDbEM7UUFDRCxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYTtRQUN4QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFlO1FBQzFCLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDN0I7UUFDRCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQzNCO1FBQ0QsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUM3QjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQscUJBQXFCLENBQUksU0FBNEI7UUFDbkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELGlCQUFpQixDQUFDLFdBQW1CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDL0MsQ0FBQztJQUVELGlCQUFpQixDQUFDLFFBQWdCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsVUFBVSxDQUFDLFdBQW1CO1FBQzVCLElBQUksSUFBSSxDQUFDLFVBQVU7ZUFDZCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNO2VBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQzFDLGFBQWE7WUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDaEQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxpQkFBeUIsRUFBRSxpQkFBeUI7UUFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsZUFBZSxFQUFFLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHTyxtQkFBbUIsQ0FBQyxXQUFtQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRTtZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN0RjtRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDM0MsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksV0FBVyxFQUFFO29CQUN6QyxtREFBbUQ7b0JBQ25ELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUN6RCxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7d0JBQ2hCLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDO3dCQUNqSCxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7cUJBQzFCO29CQUNELElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRTt3QkFDaEIsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUM7d0JBQ2pILEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUM7aUJBQ1g7Z0JBQ0QsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFVLEVBQUUsU0FBaUIsRUFBRSxPQUFlO1FBQzlELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZU1vZGVsSWYgfSBmcm9tIFwiLi90YWJsZS1tb2RlbC5pZlwiO1xuaW1wb3J0IHsgUGFkZGluZyB9IGZyb20gXCIuL3BhZGRpbmdcIjtcbmltcG9ydCB7IEFyZWFJZGVudCB9IGZyb20gXCIuL2FyZWEtaWRlbnQudHlwZVwiO1xuaW1wb3J0IHsgQXJlYU1vZGVsSWYgfSBmcm9tIFwiLi9hcmVhbW9kZWwvYXJlYS1tb2RlbC5pZlwiO1xuaW1wb3J0IHsgU2lkZUlkZW50IH0gZnJvbSBcIi4uL3NpZGUtaWRlbnQudHlwZVwiO1xuaW1wb3J0IHsgRGVmYXVsdFJvd0hlaWdodHNJZiB9IGZyb20gXCIuLi9vcHRpb25zL2RlZmF1bHQtcm93LWhlaWdodHMuaWZcIjtcbmltcG9ydCB7IERlZmF1bHRSb3dIZWlnaHRzIH0gZnJvbSBcIi4uL29wdGlvbnMvZGVmYXVsdC1yb3ctaGVpZ2h0c1wiO1xuaW1wb3J0IHsgQ29sdW1uRGVmSWYgfSBmcm9tIFwiLi9jb2x1bW4vY29sdW1uLWRlZi5pZlwiO1xuaW1wb3J0IHsgRmlsdGVyRnVuY3Rpb24gfSBmcm9tIFwiLi4vY29tbW9uL2ZpbHRlci1mdW5jdGlvblwiO1xuaW1wb3J0IHsgU29ydEl0ZW0gfSBmcm9tIFwiLi4vY29tbW9uL3NvcnQtaXRlbVwiO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWxJZiB9IGZyb20gXCIuLi8uLi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsLmlmXCI7XG5pbXBvcnQgeyBHZXRUIH0gZnJvbSBcIi4uL2NvbW1vbi9nZXQtdFwiO1xuaW1wb3J0IHsgQ2hlY2tib3hDb2x1bW5EZWYgfSBmcm9tIFwiLi4vY29tbW9uL2NoZWNrYm94LWNvbHVtbi1kZWZcIjtcbmltcG9ydCB7IENoZWNrYm94TW9kZWwgfSBmcm9tIFwiLi4vLi4vY2hlY2tib3gvY2hlY2tib3gtbW9kZWxcIjtcblxuXG4vKipcbiAqIFRoaXMgaXMgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIFRhYmxlTW9kZWxJZi5cbiAqIFRocyBUYWJsZU1vZGVsIGlzIG9uIG9uZSBoYW5kIGEgY29udGFpbmVyIGZvciB0aGUgaGVhZGVyLCBib2R5LCBhbmQgZm9vdGVyIG1vZGVsc1xuICogKHNlZSA6ICNnZXRBcmVhTW9kZWwsIGFuZCAjQXJlYU1vZGVsSWYpLCBhbmQgb24gdGhlIG90aGVyIGhhbmQgdGhlIG1hc3RlciBvZlxuICogdGhlIGNvbHVtbiBpbmZvcm1hdGlvbiAoI2dldENvbHVtbkNvdW50KCksICNnZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleDogbnVtYmVyKSkuXG4gKlxuICogSWYgZ2V0Rml4ZWRMZWZ0Q29sdW1uQ291bnQoKSByZXR1cm5zIGEgdmFsdWUgZ3JlYXRlciB0aGFuIDAsIGEgZml4ZWQgd2VzdCBhcmVhIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlXG4gKiBoZWFkZXIsIGJvZHksIGFuZCBmb290ZXIuIEEgdmFsdWUgZ3JlYXRlciB0aGFuIDAgZm9yIGdldEZpeGVkTGVmdENvbHVtbkNvdW50KClcbiAqIHdpbGwgcmVzdWx0IGluIHRoZSBwcmVzZW5jZSBvZiBhbiBlYXN0IGFyZWEuXG4gKlxuICogPHByZT5cbiAqICArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tK1xuICogIHwgIGhlYWRlci93ZXN0ICAgfCAgaGVhZGVyL2NlbnRlciAgICB8IGhlYWRlci9lYXN0ICB8XG4gKiAgKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLStcbiAqICB8ICBib2R5L3dlc3QgICAgIHwgIGJvZHkvY2VudGVyICAgICAgfCBib2R5L2Vhc3QgICAgfFxuICogICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rXG4gKiAgfCAgZm9vdGVyL3dlc3QgICB8ICBmb290ZXIvY2VudGVyICAgIHwgZm9vdGVyL2Vhc3QgIHxcbiAqICArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKyA8L3ByZT5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWJsZU1vZGVsIGltcGxlbWVudHMgVGFibGVNb2RlbElmIHtcblxuICBwcm90ZWN0ZWQgcm93Q291bnQgPSAwO1xuICBwcm90ZWN0ZWQgY29udGVudEhlaWdodEluUHggPSAwO1xuICBwcm90ZWN0ZWQgY29udGVudFdpZHRoSW5QeCA9IDA7XG5cbiAgLy8gaW4gY2FzZSBvZiBhIGZpeGVkIGhlYWRlciwgbGVmdCBvciByaWdodCBjb2x1bW4sIGZvb3RlcjpcbiAgcHJvdGVjdGVkIHBhZGRpbmcgPSBuZXcgUGFkZGluZygwLCAwLCAwLCAwKTsgLy8gdGhlIGRpbWVuc2lvbiBvZiB0aGUgJ2JvZHkvY2VudGVyJ1xuICBwcm90ZWN0ZWQgeFBvc2l0aW9uczogbnVtYmVyW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyQXJlYU1vZGVsOiBBcmVhTW9kZWxJZixcbiAgICBwdWJsaWMgcmVhZG9ubHkgYm9keUFyZWFNb2RlbDogQXJlYU1vZGVsSWYsXG4gICAgcHVibGljIHJlYWRvbmx5IGZvb3RlckFyZWFNb2RlbDogQXJlYU1vZGVsSWYsXG4gICAgcHVibGljIHJlYWRvbmx5IGZpeGVkTGVmdENvbHVtbkNvdW50OiBudW1iZXIgPSAwLFxuICAgIHB1YmxpYyByZWFkb25seSBmaXhlZFJpZ2h0Q29sdW1uQ291bnQ6IG51bWJlciA9IDAsXG4gICAgcHVibGljIHJlYWRvbmx5IHJvd0NoZWNrYm94VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHB1YmxpYyByZWFkb25seSBkZWZhdWx0Um93SGVpZ2h0czogRGVmYXVsdFJvd0hlaWdodHNJZiA9IG5ldyBEZWZhdWx0Um93SGVpZ2h0cygpLFxuICAgIHB1YmxpYyBjb2x1bW5EZWZzOiBDb2x1bW5EZWZJZltdID0gW10sXG4gICAgcHVibGljIGNvbHVtblNpemVzOiBudW1iZXJbXSA9IFtdLFxuICAgIHByb3RlY3RlZCBvdmVycmlkaW5nQ29sdW1uV2lkdGg6IG51bWJlciA9IC0xLFxuICAgIHByb3RlY3RlZCBjb2x1bW5Db3VudDogbnVtYmVyID0gMCxcbiAgICBwcm90ZWN0ZWQgcGFyZW50U2l6ZTogbnVtYmVyID0gNDAwLCAvLyBjYW4gYmUgaW1wb3J0YW50IHdoZW4gd2UgaGF2ZSBwZXJjZW50YWdlIHdpZHRoZXMsXG4gICAgcHVibGljIHJlYWRvbmx5IGdldFNlbGVjdGlvbk1vZGVsOiBHZXRUPFNlbGVjdGlvbk1vZGVsSWY+ID0gKCkgPT4gdW5kZWZpbmVkXG4gICkge1xuICAgIGhlYWRlckFyZWFNb2RlbC5hcmVhSWRlbnQgPSBcImhlYWRlclwiO1xuICAgIGJvZHlBcmVhTW9kZWwuYXJlYUlkZW50ID0gXCJib2R5XCI7XG4gICAgZm9vdGVyQXJlYU1vZGVsLmFyZWFJZGVudCA9IFwiZm9vdGVyXCI7XG4gICAgaWYgKCF0aGlzLmNvbHVtbkNvdW50KSB7XG4gICAgICBpZiAodGhpcy5jb2x1bW5EZWZzPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5jb2x1bW5Db3VudCA9IHRoaXMuY29sdW1uRGVmcy5sZW5ndGg7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29sdW1uU2l6ZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmNvbHVtbkNvdW50ID0gdGhpcy5jb2x1bW5TaXplcz8ubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5jb2x1bW5EZWZzPy5sZW5ndGhcbiAgICAgICYmIHRoaXMuY29sdW1uRGVmc1swXSBpbnN0YW5jZW9mIENoZWNrYm94Q29sdW1uRGVmXG4gICAgICAmJiAhYm9keUFyZWFNb2RlbC5yb3dTZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgYm9keUFyZWFNb2RlbC5yb3dTZWxlY3Rpb25Nb2RlbCA9IG5ldyBDaGVja2JveE1vZGVsKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdCgpIHtcbiAgICB0aGlzLnJlY2FsY1NpemUodGhpcy5wYXJlbnRTaXplKTtcbiAgICBpZiAodGhpcy5vdmVycmlkaW5nQ29sdW1uV2lkdGggPT09IC0xKSB7XG4gICAgICB0aGlzLmNhbGNYUG9zaXRpb25zKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhlYWRlckFyZWFNb2RlbCkge1xuICAgICAgdGhpcy5oZWFkZXJBcmVhTW9kZWwuaW5pdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5ib2R5QXJlYU1vZGVsKSB7XG4gICAgICB0aGlzLmJvZHlBcmVhTW9kZWwuaW5pdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb290ZXJBcmVhTW9kZWwpIHtcbiAgICAgIHRoaXMuZm9vdGVyQXJlYU1vZGVsLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBnZXRDb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbkNvdW50O1xuICB9O1xuXG4gIHNldENvbHVtbldpZHRoKGNvbHVtbkluZGV4OiBudW1iZXIsIHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICB3aWR0aCA9IE1hdGgubWF4KDAsIHdpZHRoKTtcbiAgICBpZiAodGhpcy5vdmVycmlkaW5nQ29sdW1uV2lkdGggIT09IC0xKSB7XG4gICAgICB0aGlzLm92ZXJyaWRpbmdDb2x1bW5XaWR0aCA9IHdpZHRoO1xuICAgIH1cbiAgICBpZiAoY29sdW1uSW5kZXggPiAtMSAmJiBjb2x1bW5JbmRleCA8IHRoaXMuY29sdW1uU2l6ZXM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5jb2x1bW5TaXplc1tjb2x1bW5JbmRleF0gPSB3aWR0aDtcbiAgICB9XG4gICAgdGhpcy5yZWNhbGNDb250ZW50V2lkdGhJblB4KCk7XG4gIH1cblxuICBnZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCBjZCA9IHRoaXMuZ2V0Q29sdW1uRGVmKGNvbHVtbkluZGV4KTtcbiAgICBpZiAoY2QgJiYgY2QuaXNWaXNpYmxlICYmICFjZC5pc1Zpc2libGUoKSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGlmICh0aGlzLm92ZXJyaWRpbmdDb2x1bW5XaWR0aCAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0aGlzLm92ZXJyaWRpbmdDb2x1bW5XaWR0aDtcbiAgICB9XG4gICAgaWYgKGNvbHVtbkluZGV4ID4gLTEgJiYgY29sdW1uSW5kZXggPCB0aGlzLmNvbHVtblNpemVzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbHVtblNpemVzW2NvbHVtbkluZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH07XG5cbiAgZ2V0WFBvc0J5Q29sdW1uSW5kZXgoY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGNvbHVtbkluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgaWYgKHRoaXMub3ZlcnJpZGluZ0NvbHVtbldpZHRoID4gLTEpIHtcbiAgICAgIHJldHVybiB0aGlzLm92ZXJyaWRpbmdDb2x1bW5XaWR0aCAqIGNvbHVtbkluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy54UG9zaXRpb25zW2NvbHVtbkluZGV4XTtcbiAgfVxuXG4gIHJlY2FsY1NpemUoY2xpZW50V2lkdGg6IG51bWJlcikge1xuICAgIHRoaXMucmVjYWxjQ29sdW1uV2lkdGhlcyhjbGllbnRXaWR0aCk7XG4gICAgdGhpcy5yZWNhbGNIZWlnaHRBbmRQYWRkaW5nKCk7XG4gIH1cblxuICByZWNhbGNIZWlnaHRBbmRQYWRkaW5nKCkge1xuICAgIGNvbnN0IGJvZHlNb2RlbCA9IHRoaXMuZ2V0QXJlYU1vZGVsKFwiYm9keVwiKTtcbiAgICB0aGlzLnJvd0NvdW50ID0gYm9keU1vZGVsLmdldFJvd0NvdW50KCk7XG4gICAgdGhpcy5jb250ZW50SGVpZ2h0SW5QeCA9IHRoaXMuZ2V0QXJlYUhlaWdodChcImJvZHlcIik7XG4gICAgdGhpcy5yZWNhbGNDb250ZW50V2lkdGhJblB4KCk7XG5cbiAgICB0aGlzLnJlY2FsY1BhZGRpbmcoKTtcbiAgfVxuXG4gIHJlY2FsY1BhZGRpbmcoKSB7XG4gICAgY29uc3Qgd2VzdFdpZHRoID0gdGhpcy5nZXRTaWRlQXJlYVdpZHRoKFwid2VzdFwiKTtcbiAgICBjb25zdCBlYXN0V2lkdGggPSB0aGlzLmdldFNpZGVBcmVhV2lkdGgoXCJlYXN0XCIpO1xuICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuZ2V0QXJlYUhlaWdodChcImhlYWRlclwiKTtcbiAgICBjb25zdCBmb290ZXJIZWlnaHQgPSB0aGlzLmdldEFyZWFIZWlnaHQoXCJmb290ZXJcIik7XG5cbiAgICB0aGlzLnBhZGRpbmcgPSBuZXcgUGFkZGluZyhcbiAgICAgIGhlYWRlckhlaWdodCxcbiAgICAgIGVhc3RXaWR0aCxcbiAgICAgIGZvb3RlckhlaWdodCxcbiAgICAgIHdlc3RXaWR0aCk7XG4gIH1cblxuICBnZXRQYWRkaW5nKCk6IFBhZGRpbmcge1xuICAgIHJldHVybiB0aGlzLnBhZGRpbmc7XG4gIH1cblxuICBnZXRDb250ZW50SGVpZ2h0SW5QaXhlbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRIZWlnaHRJblB4O1xuICB9XG5cbiAgZ2V0Q29udGVudFdpZHRoSW5QaXhlbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRXaWR0aEluUHg7XG4gIH1cblxuICBnZXRSb3dIZWlnaHQocm93QXJlYUlkZW50OiBBcmVhSWRlbnQsIHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldEFyZWFNb2RlbChyb3dBcmVhSWRlbnQpLmdldFJvd0hlaWdodChyb3dJbmRleCk7XG4gIH1cblxuICBnZXRNb2RlbChyb3dBcmVhSWRlbnQ6IEFyZWFJZGVudCk6IEFyZWFNb2RlbElmIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBcmVhTW9kZWwocm93QXJlYUlkZW50KTtcbiAgfVxuXG4gIGdldEFyZWFIZWlnaHQoYXJlYUlkZW50OiBBcmVhSWRlbnQpOiBudW1iZXIge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRNb2RlbChhcmVhSWRlbnQpO1xuICAgIGNvbnN0IHJvd0NvdW50ID0gbW9kZWwuZ2V0Um93Q291bnQoKTtcbiAgICBpZiAodGhpcy5kZWZhdWx0Um93SGVpZ2h0c1thcmVhSWRlbnRdKSB7XG4gICAgICByZXR1cm4gcm93Q291bnQgKiB0aGlzLmRlZmF1bHRSb3dIZWlnaHRzW2FyZWFJZGVudF07XG4gICAgfVxuXG4gICAgbGV0IHJldCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dDb3VudDsgaSsrKSB7XG4gICAgICByZXQgPSByZXQgKyBtb2RlbC5nZXRSb3dIZWlnaHQoaSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBnZXRTaWRlQXJlYVdpZHRoKHNpZGVJZGVudDogU2lkZUlkZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBbY1N0YXJ0LCBjRW5kXSA9IHRoaXMuZ2V0U2lkZVN0YXJ0QW5kRW5kQ29sdW1uSW5kZXgoc2lkZUlkZW50KTtcbiAgICBsZXQgcmV0ID0gMDtcbiAgICBmb3IgKGxldCBpID0gY1N0YXJ0OyBpIDw9IGNFbmQ7IGkrKykge1xuICAgICAgcmV0ID0gcmV0ICsgdGhpcy5nZXRDb2x1bW5XaWR0aChpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGdldFNpZGVTdGFydEFuZEVuZENvbHVtbkluZGV4KHNpZGVJZGVudDogU2lkZUlkZW50KTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgY29uc3QgYzEgPSB0aGlzLmdldEZpeGVkTGVmdENvbHVtbkNvdW50KCk7XG4gICAgY29uc3QgYzIgPSB0aGlzLmdldEZpeGVkUmlnaHRDb2x1bW5Db3VudCgpO1xuXG4gICAgbGV0IGNTdGFydCA9IDA7XG4gICAgbGV0IGNFbmQgPSB0aGlzLmNvbHVtbkNvdW50IC0gMTtcbiAgICBpZiAoc2lkZUlkZW50ID09PSBcIndlc3RcIikge1xuICAgICAgY0VuZCA9IGMxIC0gMTtcbiAgICB9IGVsc2UgaWYgKHNpZGVJZGVudCA9PT0gXCJlYXN0XCIpIHtcbiAgICAgIGNTdGFydCA9IHRoaXMuY29sdW1uQ291bnQgLSBjMjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2VudGVyOlxuICAgICAgY1N0YXJ0ID0gYzE7XG4gICAgICBjRW5kID0gdGhpcy5jb2x1bW5Db3VudCAtIGMyIC0gMTtcbiAgICB9XG4gICAgcmV0dXJuIFtjU3RhcnQsIGNFbmRdO1xuICB9XG5cbiAgZ2V0Q29sdW1uRGVmKGluZGV4OiBudW1iZXIpOiBDb2x1bW5EZWZJZiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGluZGV4IDwgdGhpcy5jb2x1bW5EZWZzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29sdW1uRGVmc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRGaXhlZExlZnRDb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmZpeGVkTGVmdENvbHVtbkNvdW50O1xuICB9XG5cbiAgZ2V0Rml4ZWRSaWdodENvbHVtbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZml4ZWRSaWdodENvbHVtbkNvdW50O1xuICB9XG5cbiAgZ2V0QXJlYU1vZGVsKGFyZWE6IEFyZWFJZGVudCk6IEFyZWFNb2RlbElmIHtcbiAgICBpZiAoYXJlYSA9PT0gXCJoZWFkZXJcIikge1xuICAgICAgcmV0dXJuIHRoaXMuaGVhZGVyQXJlYU1vZGVsO1xuICAgIH1cbiAgICBpZiAoYXJlYSA9PT0gXCJib2R5XCIpIHtcbiAgICAgIHJldHVybiB0aGlzLmJvZHlBcmVhTW9kZWw7XG4gICAgfVxuICAgIGlmIChhcmVhID09PSBcImZvb3RlclwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb290ZXJBcmVhTW9kZWw7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcIldyb25nIGlkZW50LlwiKTtcbiAgfVxuXG4gIGdldEJvZHlNb2RlbCgpOiBBcmVhTW9kZWxJZiB7XG4gICAgcmV0dXJuIHRoaXMuYm9keUFyZWFNb2RlbDtcbiAgfVxuXG4gIGlzRm9vdGVyVmlzaWJlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5mb290ZXJBcmVhTW9kZWw/LmdldFJvd0NvdW50KCkgPz8gMCkgPiAwO1xuICB9XG5cbiAgaXNIZWFkZXJWaXNpYmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmhlYWRlckFyZWFNb2RlbD8uZ2V0Um93Q291bnQoKSA/PyAwKSA+IDA7XG4gIH1cblxuICBpc1Jvd0NoZWNrYm94VmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb3dDaGVja2JveFZpc2libGU7XG4gIH1cblxuICBleHRlcm5hbEZpbHRlckNoYW5nZWQ8VD4ocHJlZGljdEZuOiBGaWx0ZXJGdW5jdGlvbjxUPik6IHZvaWQge1xuICAgIHRoaXMuZ2V0QXJlYU1vZGVsKFwiYm9keVwiKS5leHRlcm5hbEZpbHRlckNoYW5nZWQocHJlZGljdEZuKTtcbiAgfVxuXG4gIGRvU29ydChzb3J0SXRlbXM6IFNvcnRJdGVtW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBcmVhTW9kZWwoXCJib2R5XCIpLmRvU29ydChzb3J0SXRlbXMpO1xuICB9XG5cbiAgZ2V0Q29sdW1uRGVmcygpOiBDb2x1bW5EZWZJZltdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5EZWZzO1xuICB9XG5cbiAgZ2V0Q29sdW1uUHJvcGVydHkoY29sdW1uSW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uRGVmc1tjb2x1bW5JbmRleF0ucHJvcGVydHk7XG4gIH1cblxuICBnZXRCb2R5Um93QnlJbmRleChyb3dJbmRleDogbnVtYmVyKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRCb2R5TW9kZWwoKS5nZXRSb3dCeUluZGV4KHJvd0luZGV4KTtcbiAgfVxuXG4gIGlzU29ydGFibGUoY29sdW1uSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNvbHVtbkRlZnNcbiAgICAgICYmIGNvbHVtbkluZGV4IDwgdGhpcy5jb2x1bW5EZWZzLmxlbmd0aFxuICAgICAgJiYgdGhpcy5jb2x1bW5EZWZzW2NvbHVtbkluZGV4XS5zb3J0YWJsZSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuIHRoaXMuY29sdW1uRGVmc1tjb2x1bW5JbmRleF0uc29ydGFibGUoKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY2hhbmdlQ29sdW1uT3JkZXIoc291cmNlQ29sdW1uSW5kZXg6IG51bWJlciwgdGFyZ2V0Q29sdW1uSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuYXJyYXlNb3ZlKHRoaXMuY29sdW1uRGVmcywgc291cmNlQ29sdW1uSW5kZXgsIHRhcmdldENvbHVtbkluZGV4KTtcbiAgICB0aGlzLmFycmF5TW92ZSh0aGlzLmNvbHVtblNpemVzLCBzb3VyY2VDb2x1bW5JbmRleCwgdGFyZ2V0Q29sdW1uSW5kZXgpO1xuICAgIHRoaXMuaGVhZGVyQXJlYU1vZGVsPy5jaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleCwgdGFyZ2V0Q29sdW1uSW5kZXgpO1xuICAgIHRoaXMuYm9keUFyZWFNb2RlbD8uY2hhbmdlQ29sdW1uT3JkZXIoc291cmNlQ29sdW1uSW5kZXgsIHRhcmdldENvbHVtbkluZGV4KTtcbiAgICB0aGlzLmZvb3RlckFyZWFNb2RlbD8uY2hhbmdlQ29sdW1uT3JkZXIoc291cmNlQ29sdW1uSW5kZXgsIHRhcmdldENvbHVtbkluZGV4KTtcbiAgICB0aGlzLmNhbGNYUG9zaXRpb25zKCk7XG4gIH1cblxuXG4gIHByaXZhdGUgcmVjYWxjQ29sdW1uV2lkdGhlcyhjbGllbnRXaWR0aDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLmNvbHVtbkRlZnM/Lmxlbmd0aCAmJiAhdGhpcy5jb2x1bW5TaXplcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNvbHVtblNpemVzID0gbmV3IEFycmF5KHRoaXMuZ2V0Q29sdW1uQ291bnQoKSkuZmlsbCh0aGlzLm92ZXJyaWRpbmdDb2x1bW5XaWR0aCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbHVtbkRlZnM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5jb2x1bW5TaXplcyA9IHRoaXMuY29sdW1uRGVmcy5tYXAoZGVmID0+IHtcbiAgICAgICAgaWYgKGRlZi53aWR0aC51bml0ID09PSBcIiVcIiAmJiBjbGllbnRXaWR0aCkge1xuICAgICAgICAgIC8vIG9ubHkgZm9yIGEgJSB2YWx1ZSB3ZSBoYXZlIHRvIGNoZWNrIG1pbiBhbmQgbWF4OlxuICAgICAgICAgIGxldCBweCA9IE1hdGguZmxvb3IoZGVmLndpZHRoLnZhbHVlICogY2xpZW50V2lkdGggLyAxMDApO1xuICAgICAgICAgIGlmIChkZWYubWluV2lkdGgpIHtcbiAgICAgICAgICAgIGxldCBweE1pbiA9IGRlZi5taW5XaWR0aC51bml0ID09PSBcInB4XCIgPyBkZWYubWluV2lkdGgudmFsdWUgOiBNYXRoLmZsb29yKGRlZi5taW5XaWR0aC52YWx1ZSAqIGNsaWVudFdpZHRoIC8gMTAwKTtcbiAgICAgICAgICAgIHB4ID0gTWF0aC5tYXgocHhNaW4sIHB4KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlZi5tYXhXaWR0aCkge1xuICAgICAgICAgICAgbGV0IHB4TWF4ID0gZGVmLm1heFdpZHRoLnVuaXQgPT09IFwicHhcIiA/IGRlZi5tYXhXaWR0aC52YWx1ZSA6IE1hdGguZmxvb3IoZGVmLm1heFdpZHRoLnZhbHVlICogY2xpZW50V2lkdGggLyAxMDApO1xuICAgICAgICAgICAgcHggPSBNYXRoLm1pbihweE1heCwgcHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcHg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlZi53aWR0aC52YWx1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXJyYXlNb3ZlKGFycjogYW55W10sIGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyLnNwbGljZShmcm9tSW5kZXgsIDEpWzBdO1xuICAgIGFyci5zcGxpY2UodG9JbmRleCwgMCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHByaXZhdGUgcmVjYWxjQ29udGVudFdpZHRoSW5QeCgpIHtcbiAgICB0aGlzLmNvbnRlbnRXaWR0aEluUHggPSB0aGlzLmdldFNpZGVBcmVhV2lkdGgoXCJjZW50ZXJcIik7XG4gIH1cblxuICBwcml2YXRlIGNhbGNYUG9zaXRpb25zKCkge1xuICAgIGNvbnN0IGNvbHVtbkNvdW50ID0gdGhpcy5nZXRDb2x1bW5Db3VudCgpO1xuICAgIHRoaXMueFBvc2l0aW9ucyA9IG5ldyBBcnJheShjb2x1bW5Db3VudCArIDEpO1xuICAgIHRoaXMueFBvc2l0aW9uc1swXSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5Db3VudDsgaSsrKSB7XG4gICAgICB0aGlzLnhQb3NpdGlvbnNbaSArIDFdID0gdGhpcy5nZXRDb2x1bW5XaWR0aChpKSArIHRoaXMueFBvc2l0aW9uc1tpXTtcbiAgICB9XG4gIH1cblxuXG59XG5cblxuIl19
|