@guiexpert/table 1.0.11 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/index.cjs.d.ts +1 -0
- package/index.cjs.js +5570 -0
- package/index.esm.js +5440 -0
- package/package.json +6 -16
- package/src/lib/table/data/tablemodel/areamodel/async-area-model-object-array.d.ts +28 -0
- package/{lib → src/lib}/table/service/convenience-dom.service.d.ts +1 -1
- package/esm2022/guiexpert-table.mjs +0 -5
- package/esm2022/index.mjs +0 -140
- package/esm2022/lib/table/action/action-id.type.mjs +0 -20
- package/esm2022/lib/table/action/on-action-triggered.if.mjs +0 -2
- package/esm2022/lib/table/action/osx-shortcut-actionId-mapping.mjs +0 -21
- package/esm2022/lib/table/action/shortcut-actionid-mapping.type.mjs +0 -2
- package/esm2022/lib/table/action/shortcut.service.mjs +0 -114
- package/esm2022/lib/table/action/windows-shortcut-actionId-mapping.mjs +0 -19
- package/esm2022/lib/table/checkbox/checkbox-model.if.mjs +0 -2
- package/esm2022/lib/table/checkbox/checkbox-model.mjs +0 -50
- package/esm2022/lib/table/checkbox/tree-checkbox-model.mjs +0 -107
- package/esm2022/lib/table/color/color-rgb.if.mjs +0 -2
- package/esm2022/lib/table/color/color-rgb.mjs +0 -11
- package/esm2022/lib/table/color/ge-css-color-util.mjs +0 -26
- package/esm2022/lib/table/color/three-color-gradient-arg.if.mjs +0 -2
- package/esm2022/lib/table/color/three-color-gradient-arg.mjs +0 -17
- package/esm2022/lib/table/color/two-color-gradient-arg.if.mjs +0 -2
- package/esm2022/lib/table/color/two-color-gradient-arg.mjs +0 -13
- package/esm2022/lib/table/css-vars.mjs +0 -238
- package/esm2022/lib/table/data/chunk/chunk.data-event.if.mjs +0 -2
- package/esm2022/lib/table/data/chunk/chunk.data-event.mjs +0 -12
- package/esm2022/lib/table/data/chunk/request-chunk.if.mjs +0 -2
- package/esm2022/lib/table/data/chunk/request-chunk.mjs +0 -22
- package/esm2022/lib/table/data/common/aligns.mjs +0 -19
- package/esm2022/lib/table/data/common/area-map-factory.mjs +0 -7
- package/esm2022/lib/table/data/common/area-map.mjs +0 -11
- package/esm2022/lib/table/data/common/area-map.type.mjs +0 -2
- package/esm2022/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +0 -2
- package/esm2022/lib/table/data/common/args-render-cell-div.mjs +0 -2
- package/esm2022/lib/table/data/common/boolean-function.mjs +0 -3
- package/esm2022/lib/table/data/common/cell-range.mjs +0 -36
- package/esm2022/lib/table/data/common/checkbox-column-def.mjs +0 -13
- package/esm2022/lib/table/data/common/checked-type.mjs +0 -2
- package/esm2022/lib/table/data/common/event/ge-cell-indices.mjs +0 -9
- package/esm2022/lib/table/data/common/event/ge-key-event.mjs +0 -9
- package/esm2022/lib/table/data/common/event/ge-model-change-event.mjs +0 -11
- package/esm2022/lib/table/data/common/event/ge-mouse-event.mjs +0 -30
- package/esm2022/lib/table/data/common/event/input/table-cell-update-event.if.mjs +0 -2
- package/esm2022/lib/table/data/common/event/input/table-cell-update-event.mjs +0 -13
- package/esm2022/lib/table/data/common/filter-function.mjs +0 -2
- package/esm2022/lib/table/data/common/get-t.mjs +0 -2
- package/esm2022/lib/table/data/common/index-and-px.mjs +0 -9
- package/esm2022/lib/table/data/common/size.if.mjs +0 -2
- package/esm2022/lib/table/data/common/size.mjs +0 -9
- package/esm2022/lib/table/data/common/sizes.mjs +0 -33
- package/esm2022/lib/table/data/common/sort-item.mjs +0 -9
- package/esm2022/lib/table/data/common/sort-state.type.mjs +0 -2
- package/esm2022/lib/table/data/common/tree-arrow.type.mjs +0 -2
- package/esm2022/lib/table/data/common/tree-row-if.mjs +0 -2
- package/esm2022/lib/table/data/common/tree-row.mjs +0 -19
- package/esm2022/lib/table/data/common/value-label.if.mjs +0 -2
- package/esm2022/lib/table/data/common/value-label.mjs +0 -9
- package/esm2022/lib/table/data/div-scope.type.mjs +0 -2
- package/esm2022/lib/table/data/event/mouse-target-data.mjs +0 -36
- package/esm2022/lib/table/data/geo-data.mjs +0 -15
- package/esm2022/lib/table/data/options/auto-restore-options.if.mjs +0 -2
- package/esm2022/lib/table/data/options/auto-restore-options.mjs +0 -40
- package/esm2022/lib/table/data/options/default-row-heights.if.mjs +0 -2
- package/esm2022/lib/table/data/options/default-row-heights.mjs +0 -11
- package/esm2022/lib/table/data/options/icon.if.mjs +0 -2
- package/esm2022/lib/table/data/options/icon.mjs +0 -11
- package/esm2022/lib/table/data/options/sorted-options.if.mjs +0 -2
- package/esm2022/lib/table/data/options/sorted-options.mjs +0 -12
- package/esm2022/lib/table/data/options/table-options.if.mjs +0 -2
- package/esm2022/lib/table/data/options/table-options.mjs +0 -44
- package/esm2022/lib/table/data/options/tree-options.if.mjs +0 -2
- package/esm2022/lib/table/data/options/tree-options.mjs +0 -14
- package/esm2022/lib/table/data/side-ident.type.mjs +0 -2
- package/esm2022/lib/table/data/table-model-and-options.if.mjs +0 -2
- package/esm2022/lib/table/data/table-model-and-options.mjs +0 -9
- package/esm2022/lib/table/data/tablemodel/area-ident.type.mjs +0 -14
- package/esm2022/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +0 -137
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.mjs +0 -47
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-cell-groups.mjs +0 -163
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +0 -84
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +0 -15
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +0 -88
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +0 -181
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model.if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model.mjs +0 -76
- package/esm2022/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +0 -51
- package/esm2022/lib/table/data/tablemodel/areamodel/has-default-row-height-if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group-ext.mjs +0 -133
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.mjs +0 -18
- package/esm2022/lib/table/data/tablemodel/cellgroup/cellgroup-factory.mjs +0 -110
- package/esm2022/lib/table/data/tablemodel/column/column-def.if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/column/column-def.mjs +0 -52
- package/esm2022/lib/table/data/tablemodel/padding.mjs +0 -13
- package/esm2022/lib/table/data/tablemodel/table-model.if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/table-model.mjs +0 -308
- package/esm2022/lib/table/ele-scope.mjs +0 -199
- package/esm2022/lib/table/event-adapter.mjs +0 -17
- package/esm2022/lib/table/event-listener.if.mjs +0 -2
- package/esm2022/lib/table/factory/table-factory.mjs +0 -186
- package/esm2022/lib/table/factory/tree-factory.mjs +0 -32
- package/esm2022/lib/table/focus/focus-model.if.mjs +0 -2
- package/esm2022/lib/table/focus/focus-model.mjs +0 -33
- package/esm2022/lib/table/focus/focus.type.mjs +0 -2
- package/esm2022/lib/table/input-handler.mjs +0 -25
- package/esm2022/lib/table/mouse-handler.mjs +0 -196
- package/esm2022/lib/table/render-scope.mjs +0 -719
- package/esm2022/lib/table/renderer/cell-group-ext-cell-renderer.mjs +0 -8
- package/esm2022/lib/table/renderer/cell-render.if.mjs +0 -2
- package/esm2022/lib/table/renderer/checkbox-boolean-property-cell-renderer.mjs +0 -47
- package/esm2022/lib/table/renderer/checkbox-cell-renderer.mjs +0 -22
- package/esm2022/lib/table/renderer/date-to-int-date-cell-renderer.mjs +0 -24
- package/esm2022/lib/table/renderer/date-to-iso-cell-renderer.mjs +0 -9
- package/esm2022/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +0 -9
- package/esm2022/lib/table/renderer/date-to-tec-cell-renderer.mjs +0 -12
- package/esm2022/lib/table/renderer/edit/edit-cell-renderer.type.mjs +0 -2
- package/esm2022/lib/table/renderer/edit/edit-input-pipe-for-number.mjs +0 -4
- package/esm2022/lib/table/renderer/edit/edit-input-pipe.if.mjs +0 -2
- package/esm2022/lib/table/renderer/edit/input-cell-renderer.mjs +0 -23
- package/esm2022/lib/table/renderer/edit/select-cell-renderer.mjs +0 -36
- package/esm2022/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +0 -12
- package/esm2022/lib/table/renderer/number-cell-renderer.mjs +0 -21
- package/esm2022/lib/table/renderer/progress-bar-cell-renderer.mjs +0 -44
- package/esm2022/lib/table/renderer/renderer-cleanup-fn.type.mjs +0 -2
- package/esm2022/lib/table/renderer/renderer.mjs +0 -7
- package/esm2022/lib/table/renderer/star-rating-cell-renderer.mjs +0 -27
- package/esm2022/lib/table/renderer/true-false-cell-renderer.mjs +0 -15
- package/esm2022/lib/table/selection/selection-model.if.mjs +0 -2
- package/esm2022/lib/table/selection/selection-model.mjs +0 -99
- package/esm2022/lib/table/selection/selection-service.mjs +0 -101
- package/esm2022/lib/table/selection/selection.type.mjs +0 -2
- package/esm2022/lib/table/service/abstract-store-state.service.mjs +0 -50
- package/esm2022/lib/table/service/convenience-dom.service.mjs +0 -405
- package/esm2022/lib/table/service/data/collapsed-expanded.data.mjs +0 -13
- package/esm2022/lib/table/service/data/html-style.type.mjs +0 -2
- package/esm2022/lib/table/service/dom-service.if.mjs +0 -2
- package/esm2022/lib/table/service/ge-filter.service.mjs +0 -98
- package/esm2022/lib/table/service/simple-dom-service.mjs +0 -34
- package/esm2022/lib/table/service/sorter.service.mjs +0 -27
- package/esm2022/lib/table/service/store-state-collapsed-expand.service.mjs +0 -57
- package/esm2022/lib/table/service/store-state-scroll-pos.service.mjs +0 -29
- package/esm2022/lib/table/service/store-state-sorting.service.mjs +0 -29
- package/esm2022/lib/table/service/tree-row.service.mjs +0 -23
- package/esm2022/lib/table/table-api.mjs +0 -42
- package/esm2022/lib/table/table-scope.mjs +0 -364
- /package/{index.d.ts → src/index.d.ts} +0 -0
- /package/{lib → src/lib}/table/action/action-id.type.d.ts +0 -0
- /package/{lib → src/lib}/table/action/on-action-triggered.if.d.ts +0 -0
- /package/{lib → src/lib}/table/action/osx-shortcut-actionId-mapping.d.ts +0 -0
- /package/{lib → src/lib}/table/action/shortcut-actionid-mapping.type.d.ts +0 -0
- /package/{lib → src/lib}/table/action/shortcut.service.d.ts +0 -0
- /package/{lib → src/lib}/table/action/windows-shortcut-actionId-mapping.d.ts +0 -0
- /package/{lib → src/lib}/table/checkbox/checkbox-model.d.ts +0 -0
- /package/{lib → src/lib}/table/checkbox/checkbox-model.if.d.ts +0 -0
- /package/{lib → src/lib}/table/checkbox/tree-checkbox-model.d.ts +0 -0
- /package/{lib → src/lib}/table/color/color-rgb.d.ts +0 -0
- /package/{lib → src/lib}/table/color/color-rgb.if.d.ts +0 -0
- /package/{lib → src/lib}/table/color/ge-css-color-util.d.ts +0 -0
- /package/{lib → src/lib}/table/color/three-color-gradient-arg.d.ts +0 -0
- /package/{lib → src/lib}/table/color/three-color-gradient-arg.if.d.ts +0 -0
- /package/{lib → src/lib}/table/color/two-color-gradient-arg.d.ts +0 -0
- /package/{lib → src/lib}/table/color/two-color-gradient-arg.if.d.ts +0 -0
- /package/{lib → src/lib}/table/css-vars.d.ts +0 -0
- /package/{lib → src/lib}/table/data/chunk/chunk.data-event.d.ts +0 -0
- /package/{lib → src/lib}/table/data/chunk/chunk.data-event.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/chunk/request-chunk.d.ts +0 -0
- /package/{lib → src/lib}/table/data/chunk/request-chunk.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/aligns.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/area-map-factory.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/area-map.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/area-map.type.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/args-adjust-columns-to-row-parent-params.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/args-render-cell-div.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/boolean-function.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/cell-range.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/checkbox-column-def.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/checked-type.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/event/ge-cell-indices.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/event/ge-key-event.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/event/ge-model-change-event.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/event/ge-mouse-event.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/event/input/table-cell-update-event.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/event/input/table-cell-update-event.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/filter-function.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/get-t.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/index-and-px.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/size.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/size.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/sizes.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/sort-item.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/sort-state.type.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/tree-arrow.type.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/tree-row-if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/tree-row.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/value-label.d.ts +0 -0
- /package/{lib → src/lib}/table/data/common/value-label.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/div-scope.type.d.ts +0 -0
- /package/{lib → src/lib}/table/data/event/mouse-target-data.d.ts +0 -0
- /package/{lib → src/lib}/table/data/geo-data.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/auto-restore-options.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/auto-restore-options.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/default-row-heights.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/default-row-heights.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/icon.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/icon.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/sorted-options.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/sorted-options.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/table-options.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/table-options.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/tree-options.d.ts +0 -0
- /package/{lib → src/lib}/table/data/options/tree-options.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/side-ident.type.d.ts +0 -0
- /package/{lib → src/lib}/table/data/table-model-and-options.d.ts +0 -0
- /package/{lib → src/lib}/table/data/table-model-and-options.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/area-ident.type.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/abstract-area-model.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/area-model-hidden.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/area-model-object-array.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/area-model-tree.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/area-model.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/area-model.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/cellgroup/cell-group.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/cellgroup/cell-group.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/column/column-def.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/column/column-def.if.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/padding.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/table-model.d.ts +0 -0
- /package/{lib → src/lib}/table/data/tablemodel/table-model.if.d.ts +0 -0
- /package/{lib → src/lib}/table/ele-scope.d.ts +0 -0
- /package/{lib → src/lib}/table/event-adapter.d.ts +0 -0
- /package/{lib → src/lib}/table/event-listener.if.d.ts +0 -0
- /package/{lib → src/lib}/table/factory/table-factory.d.ts +0 -0
- /package/{lib → src/lib}/table/factory/tree-factory.d.ts +0 -0
- /package/{lib → src/lib}/table/focus/focus-model.d.ts +0 -0
- /package/{lib → src/lib}/table/focus/focus-model.if.d.ts +0 -0
- /package/{lib → src/lib}/table/focus/focus.type.d.ts +0 -0
- /package/{lib → src/lib}/table/input-handler.d.ts +0 -0
- /package/{lib → src/lib}/table/mouse-handler.d.ts +0 -0
- /package/{lib → src/lib}/table/render-scope.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/cell-group-ext-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/cell-render.if.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/checkbox-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/date-to-int-date-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/date-to-iso-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/date-to-locale-date-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/date-to-tec-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/edit/edit-cell-renderer.type.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/edit/edit-input-pipe-for-number.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/edit/edit-input-pipe.if.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/edit/input-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/edit/select-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/male-female-to-icon-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/number-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/progress-bar-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/renderer-cleanup-fn.type.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/star-rating-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/renderer/true-false-cell-renderer.d.ts +0 -0
- /package/{lib → src/lib}/table/selection/selection-model.d.ts +0 -0
- /package/{lib → src/lib}/table/selection/selection-model.if.d.ts +0 -0
- /package/{lib → src/lib}/table/selection/selection-service.d.ts +0 -0
- /package/{lib → src/lib}/table/selection/selection.type.d.ts +0 -0
- /package/{lib → src/lib}/table/service/abstract-store-state.service.d.ts +0 -0
- /package/{lib → src/lib}/table/service/data/collapsed-expanded.data.d.ts +0 -0
- /package/{lib → src/lib}/table/service/data/html-style.type.d.ts +0 -0
- /package/{lib → src/lib}/table/service/dom-service.if.d.ts +0 -0
- /package/{lib → src/lib}/table/service/ge-filter.service.d.ts +0 -0
- /package/{lib → src/lib}/table/service/simple-dom-service.d.ts +0 -0
- /package/{lib → src/lib}/table/service/sorter.service.d.ts +0 -0
- /package/{lib → src/lib}/table/service/store-state-collapsed-expand.service.d.ts +0 -0
- /package/{lib → src/lib}/table/service/store-state-scroll-pos.service.d.ts +0 -0
- /package/{lib → src/lib}/table/service/store-state-sorting.service.d.ts +0 -0
- /package/{lib → src/lib}/table/service/tree-row.service.d.ts +0 -0
- /package/{lib → src/lib}/table/table-api.d.ts +0 -0
- /package/{lib → src/lib}/table/table-scope.d.ts +0 -0
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
import { GeoData } from "./data/geo-data";
|
|
2
|
-
export class EleScope {
|
|
3
|
-
hostElement;
|
|
4
|
-
tableModel;
|
|
5
|
-
dom;
|
|
6
|
-
tableOptions;
|
|
7
|
-
scrollViewport;
|
|
8
|
-
contentWrapperDiv; // the big one. height: sum of rows height == tableModel.getContentHeightInPixel()
|
|
9
|
-
contentDiv;
|
|
10
|
-
areaHeaderCenter;
|
|
11
|
-
areaHeaderWest;
|
|
12
|
-
areaHeaderEast;
|
|
13
|
-
areaBodyCenter;
|
|
14
|
-
areaBodyWest;
|
|
15
|
-
areaBodyEast;
|
|
16
|
-
areaFooterCenter;
|
|
17
|
-
areaFooterWest;
|
|
18
|
-
areaFooterEast;
|
|
19
|
-
borderHeaderBottom;
|
|
20
|
-
borderFooterTop;
|
|
21
|
-
borderFixedWest;
|
|
22
|
-
borderFixedEast;
|
|
23
|
-
hoverRow;
|
|
24
|
-
hoverColumn;
|
|
25
|
-
scrollTop = 0;
|
|
26
|
-
areaBodyWestGeo = new GeoData();
|
|
27
|
-
areaBodyCenterGeo = new GeoData();
|
|
28
|
-
areaBodyEastGeo = new GeoData();
|
|
29
|
-
constructor(hostElement, tableModel, dom, tableOptions) {
|
|
30
|
-
this.hostElement = hostElement;
|
|
31
|
-
this.tableModel = tableModel;
|
|
32
|
-
this.dom = dom;
|
|
33
|
-
this.tableOptions = tableOptions;
|
|
34
|
-
const hostEle = this.hostElement;
|
|
35
|
-
hostEle.innerText = ""; // clear
|
|
36
|
-
this.dom.setAttribute(hostEle, "tabindex", "0"); // needed for getting key events
|
|
37
|
-
this.dom.setStyle(this.dom.addClass("ge-table", hostEle), "position", "relative");
|
|
38
|
-
this.hoverRow =
|
|
39
|
-
dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-hover-row", hostEle));
|
|
40
|
-
this.hoverColumn =
|
|
41
|
-
dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-hover-column", hostEle));
|
|
42
|
-
this.areaHeaderWest = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-header ge-table-header-west", hostEle, "header", "west")));
|
|
43
|
-
this.areaHeaderCenter = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-header ge-table-header-center", hostEle, "header", "center")));
|
|
44
|
-
this.areaHeaderEast = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-header ge-table-header-east", hostEle, "body", "east")));
|
|
45
|
-
this.areaBodyWest = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-body ge-table-body-west", hostEle, "body", "west")));
|
|
46
|
-
this.areaBodyEast = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-body ge-table-body-east", hostEle, "body", "east")));
|
|
47
|
-
this.areaFooterWest = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-footer ge-table-footer-west", hostEle, "footer", "west")));
|
|
48
|
-
this.areaFooterCenter = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-footer ge-table-footer-center", hostEle, "footer", "center")));
|
|
49
|
-
this.areaFooterEast = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-footer ge-table-footer-east", hostEle, "footer", "east")));
|
|
50
|
-
this.scrollViewport =
|
|
51
|
-
dom.applyStyleOverflowAuto(this.tableOptions.overflowX ?? "auto", this.tableOptions.overflowY ?? "auto", dom.applyStyleNoPadding(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-scroll-viewport", hostEle, "body", "center"))));
|
|
52
|
-
this.contentWrapperDiv = dom.applyStyleNoPadding(dom.applyStylePosistionRelative(dom.createDivWithClass("ge-table-scroll-content-wrapper", this.scrollViewport)));
|
|
53
|
-
this.contentDiv = dom.applyStyleNoPadding(dom.applyStylePosistionRelative(dom.createDivWithClass("ge-table-scroll-content", this.contentWrapperDiv)));
|
|
54
|
-
this.areaBodyCenter = dom.appendRelativeChildDiv(dom.createDivWithClass("ge-table-body-center", this.contentDiv));
|
|
55
|
-
this.borderHeaderBottom =
|
|
56
|
-
dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-header-border", hostEle));
|
|
57
|
-
this.borderFixedWest =
|
|
58
|
-
dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-west-fixed-column-border", hostEle));
|
|
59
|
-
this.borderFixedEast =
|
|
60
|
-
dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-east-fixed-column-border", hostEle));
|
|
61
|
-
this.borderFooterTop =
|
|
62
|
-
dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-footer-border", hostEle));
|
|
63
|
-
}
|
|
64
|
-
adjustContainersAndRows() {
|
|
65
|
-
const padding = this.tableModel.getPadding();
|
|
66
|
-
const w = this.hostElement.clientWidth;
|
|
67
|
-
const h = this.hostElement.clientHeight;
|
|
68
|
-
this.dom.applyStyle(this.scrollViewport, {
|
|
69
|
-
width: `${(w - padding.left)}px`,
|
|
70
|
-
height: `${(h - padding.top)}px`,
|
|
71
|
-
top: `${padding.top}px`,
|
|
72
|
-
left: `${padding.left}px`
|
|
73
|
-
});
|
|
74
|
-
this.scrollTop = this.scrollViewport.scrollTop;
|
|
75
|
-
// Content:
|
|
76
|
-
this.dom.applyStyle(this.contentDiv, {
|
|
77
|
-
width: `${this.scrollViewport.clientWidth}px`,
|
|
78
|
-
height: `${this.scrollViewport.clientHeight}px`,
|
|
79
|
-
top: `${this.scrollTop}px`,
|
|
80
|
-
left: `${this.scrollViewport.scrollLeft}px`
|
|
81
|
-
});
|
|
82
|
-
// Body:
|
|
83
|
-
// Body/West:
|
|
84
|
-
this.areaBodyWestGeo.width = padding.left;
|
|
85
|
-
this.areaBodyWestGeo.height = (h - padding.top - padding.bottom);
|
|
86
|
-
this.areaBodyWestGeo.top = padding.top;
|
|
87
|
-
this.areaBodyWestGeo.left = 0;
|
|
88
|
-
this.dom.applyStyleInPx(this.areaBodyWest.parent, this.areaBodyWestGeo);
|
|
89
|
-
if (this.tableOptions.fixedWestSeparatorBorderVisible &&
|
|
90
|
-
this.tableModel.getFixedLeftColumnCount()) {
|
|
91
|
-
this.dom.applyDisplayBlockStyle(this.dom.applyStyle(this.borderFixedWest, {
|
|
92
|
-
width: `1px`,
|
|
93
|
-
height: `${this.areaBodyWestGeo.height}px`,
|
|
94
|
-
top: `${this.areaBodyWestGeo.top}px`,
|
|
95
|
-
left: `${this.areaBodyWestGeo.width}px`
|
|
96
|
-
}));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
this.dom.applyDisplayNoneStyle(this.borderFixedWest);
|
|
100
|
-
}
|
|
101
|
-
// Body/East:
|
|
102
|
-
this.areaBodyEastGeo.width = padding.right;
|
|
103
|
-
this.areaBodyEastGeo.height = (h - padding.top - padding.bottom);
|
|
104
|
-
this.areaBodyEastGeo.top = padding.top;
|
|
105
|
-
this.areaBodyEastGeo.left = w - padding.right;
|
|
106
|
-
this.dom.applyStyleInPx(this.areaBodyEast.parent, this.areaBodyEastGeo);
|
|
107
|
-
if (this.tableOptions.fixedEastSeparatorBorderVisible &&
|
|
108
|
-
this.tableModel.getFixedLeftColumnCount()) {
|
|
109
|
-
this.dom.applyDisplayBlockStyle(this.dom.applyStyle(this.borderFixedEast, {
|
|
110
|
-
width: `1px`,
|
|
111
|
-
height: `${this.areaBodyEastGeo.height}px`,
|
|
112
|
-
top: `${this.areaBodyEastGeo.top}px`,
|
|
113
|
-
left: `${this.areaBodyEastGeo.left}px`
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
this.dom.applyDisplayNoneStyle(this.borderFixedEast);
|
|
118
|
-
}
|
|
119
|
-
// Body/Center:
|
|
120
|
-
this.areaBodyCenterGeo.width = (w - padding.left - padding.right);
|
|
121
|
-
this.areaBodyCenterGeo.height = (h - padding.top - padding.bottom);
|
|
122
|
-
this.areaBodyCenterGeo.top = 0;
|
|
123
|
-
this.areaBodyCenterGeo.left = 0;
|
|
124
|
-
this.dom.applyStyleInPx(this.areaBodyCenter.parent, this.areaBodyCenterGeo);
|
|
125
|
-
// Header:
|
|
126
|
-
this.dom.applyStyle(this.areaHeaderCenter.parent, {
|
|
127
|
-
width: `${w - padding.left - padding.right}px`,
|
|
128
|
-
height: `${padding.top}px`,
|
|
129
|
-
top: "0",
|
|
130
|
-
left: `${padding.left}px`
|
|
131
|
-
});
|
|
132
|
-
this.dom.applyStyle(this.areaHeaderWest.parent, {
|
|
133
|
-
width: `${padding.left}px`,
|
|
134
|
-
height: `${padding.top}px`,
|
|
135
|
-
top: "0",
|
|
136
|
-
left: "0"
|
|
137
|
-
});
|
|
138
|
-
this.dom.applyStyle(this.areaHeaderEast.parent, {
|
|
139
|
-
width: `${padding.right}px`,
|
|
140
|
-
height: `${padding.top}px`,
|
|
141
|
-
top: "0",
|
|
142
|
-
left: `${w - padding.right}px`
|
|
143
|
-
});
|
|
144
|
-
if (this.tableOptions.headerSeparatorBorderVisible &&
|
|
145
|
-
this.tableModel.isHeaderVisibe()) {
|
|
146
|
-
this.dom.applyDisplayBlockStyle(this.dom.applyStyle(this.borderHeaderBottom, {
|
|
147
|
-
width: `${w}px`,
|
|
148
|
-
height: "1px",
|
|
149
|
-
top: `${padding.top}px`,
|
|
150
|
-
left: "0px"
|
|
151
|
-
}));
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
this.dom.applyDisplayNoneStyle(this.borderHeaderBottom);
|
|
155
|
-
}
|
|
156
|
-
// Footer:
|
|
157
|
-
this.dom.applyStyle(this.areaFooterWest.parent, {
|
|
158
|
-
width: `${padding.left}px`,
|
|
159
|
-
height: `${padding.bottom}px`,
|
|
160
|
-
top: `${h - padding.bottom}px`,
|
|
161
|
-
left: "0"
|
|
162
|
-
});
|
|
163
|
-
this.dom.applyStyle(this.areaFooterCenter.parent, {
|
|
164
|
-
width: `${w - padding.left - padding.right}px`,
|
|
165
|
-
height: `${padding.bottom}px`,
|
|
166
|
-
top: `${h - padding.bottom}px`,
|
|
167
|
-
left: `${padding.left}px`
|
|
168
|
-
});
|
|
169
|
-
this.dom.applyStyle(this.areaFooterEast.parent, {
|
|
170
|
-
width: `${padding.right}px`,
|
|
171
|
-
height: `${padding.bottom}px`,
|
|
172
|
-
top: `${h - padding.bottom}px`,
|
|
173
|
-
left: `${w - padding.right}px`
|
|
174
|
-
});
|
|
175
|
-
if (this.tableOptions.footerSeparatorBorderVisible &&
|
|
176
|
-
this.tableModel.isFooterVisibe()) {
|
|
177
|
-
this.dom.applyDisplayBlockStyle(this.dom.applyStyle(this.borderFooterTop, {
|
|
178
|
-
width: `${w}px`,
|
|
179
|
-
height: "1px",
|
|
180
|
-
top: `${h - padding.bottom}px`,
|
|
181
|
-
left: "0px"
|
|
182
|
-
}));
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
this.dom.applyDisplayNoneStyle(this.borderFooterTop);
|
|
186
|
-
}
|
|
187
|
-
this.adjustAfterScrolling();
|
|
188
|
-
}
|
|
189
|
-
adjustAfterScrolling() {
|
|
190
|
-
// must be overwritten
|
|
191
|
-
}
|
|
192
|
-
resetSizeOfWrapperDiv() {
|
|
193
|
-
const w = `${this.tableModel.getContentWidthInPixel()}px`;
|
|
194
|
-
const h = `${this.tableModel.getContentHeightInPixel() + 1}px`; // + 1, we want to see the last horizontal border
|
|
195
|
-
this.dom.setStyle(this.contentWrapperDiv, "width", w);
|
|
196
|
-
this.dom.setStyle(this.contentWrapperDiv, "height", h);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2VsZS1zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHMUMsTUFBTSxPQUFPLFFBQVE7SUFvQ1I7SUFDQTtJQUNVO0lBQ1Y7SUFyQ0osY0FBYyxDQUFpQjtJQUU1QixpQkFBaUIsQ0FBaUIsQ0FBQyxrRkFBa0Y7SUFDckgsVUFBVSxDQUFpQjtJQUUzQixnQkFBZ0IsQ0FBVztJQUMzQixjQUFjLENBQVc7SUFDekIsY0FBYyxDQUFXO0lBRXpCLGNBQWMsQ0FBVztJQUN6QixZQUFZLENBQVc7SUFDdkIsWUFBWSxDQUFXO0lBR3ZCLGdCQUFnQixDQUFXO0lBQzNCLGNBQWMsQ0FBVztJQUN6QixjQUFjLENBQVc7SUFFekIsa0JBQWtCLENBQWlCO0lBQ25DLGVBQWUsQ0FBaUI7SUFDaEMsZUFBZSxDQUFpQjtJQUNoQyxlQUFlLENBQWlCO0lBRWhDLFFBQVEsQ0FBaUI7SUFDekIsV0FBVyxDQUFpQjtJQUU1QixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBRWQsZUFBZSxHQUFZLElBQUksT0FBTyxFQUFFLENBQUM7SUFDekMsaUJBQWlCLEdBQVksSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzQyxlQUFlLEdBQVksSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUduRCxZQUNXLFdBQTJCLEVBQzNCLFVBQXdCLEVBQ2QsR0FBMEIsRUFDcEMsWUFBNEI7UUFINUIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQWM7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUF1QjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFFckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVqQyxPQUFPLENBQUMsU0FB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SSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnZlbmllbmNlRG9tU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvY29udmVuaWVuY2UtZG9tLnNlcnZpY2VcIjtcbmltcG9ydCB7IERpdlNjb3BlIH0gZnJvbSBcIi4vZGF0YS9kaXYtc2NvcGUudHlwZVwiO1xuaW1wb3J0IHsgVGFibGVNb2RlbElmIH0gZnJvbSBcIi4vZGF0YS90YWJsZW1vZGVsL3RhYmxlLW1vZGVsLmlmXCI7XG5pbXBvcnQgeyBUYWJsZU9wdGlvbnNJZiB9IGZyb20gXCIuL2RhdGEvb3B0aW9ucy90YWJsZS1vcHRpb25zLmlmXCI7XG5pbXBvcnQgeyBHZW9EYXRhIH0gZnJvbSBcIi4vZGF0YS9nZW8tZGF0YVwiO1xuXG5cbmV4cG9ydCBjbGFzcyBFbGVTY29wZSB7XG5cbiAgcHVibGljIHNjcm9sbFZpZXdwb3J0OiBIVE1MRGl2RWxlbWVudDtcblxuICBwcm90ZWN0ZWQgY29udGVudFdyYXBwZXJEaXY6IEhUTUxEaXZFbGVtZW50OyAvLyB0aGUgYmlnIG9uZS4gaGVpZ2h0OiBzdW0gb2Ygcm93cyBoZWlnaHQgPT0gdGFibGVNb2RlbC5nZXRDb250ZW50SGVpZ2h0SW5QaXhlbCgpXG4gIHByb3RlY3RlZCBjb250ZW50RGl2OiBIVE1MRGl2RWxlbWVudDtcblxuICBwcm90ZWN0ZWQgYXJlYUhlYWRlckNlbnRlcjogRGl2U2NvcGU7XG4gIHByb3RlY3RlZCBhcmVhSGVhZGVyV2VzdDogRGl2U2NvcGU7XG4gIHByb3RlY3RlZCBhcmVhSGVhZGVyRWFzdDogRGl2U2NvcGU7XG5cbiAgcHJvdGVjdGVkIGFyZWFCb2R5Q2VudGVyOiBEaXZTY29wZTtcbiAgcHJvdGVjdGVkIGFyZWFCb2R5V2VzdDogRGl2U2NvcGU7XG4gIHByb3RlY3RlZCBhcmVhQm9keUVhc3Q6IERpdlNjb3BlO1xuXG5cbiAgcHJvdGVjdGVkIGFyZWFGb290ZXJDZW50ZXI6IERpdlNjb3BlO1xuICBwcm90ZWN0ZWQgYXJlYUZvb3Rlcldlc3Q6IERpdlNjb3BlO1xuICBwcm90ZWN0ZWQgYXJlYUZvb3RlckVhc3Q6IERpdlNjb3BlO1xuXG4gIHByb3RlY3RlZCBib3JkZXJIZWFkZXJCb3R0b206IEhUTUxEaXZFbGVtZW50O1xuICBwcm90ZWN0ZWQgYm9yZGVyRm9vdGVyVG9wOiBIVE1MRGl2RWxlbWVudDtcbiAgcHJvdGVjdGVkIGJvcmRlckZpeGVkV2VzdDogSFRNTERpdkVsZW1lbnQ7XG4gIHByb3RlY3RlZCBib3JkZXJGaXhlZEVhc3Q6IEhUTUxEaXZFbGVtZW50O1xuXG4gIHByb3RlY3RlZCBob3ZlclJvdzogSFRNTERpdkVsZW1lbnQ7XG4gIHByb3RlY3RlZCBob3ZlckNvbHVtbjogSFRNTERpdkVsZW1lbnQ7XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvcCA9IDA7XG5cbiAgcHJvdGVjdGVkIGFyZWFCb2R5V2VzdEdlbzogR2VvRGF0YSA9IG5ldyBHZW9EYXRhKCk7XG4gIHByb3RlY3RlZCBhcmVhQm9keUNlbnRlckdlbzogR2VvRGF0YSA9IG5ldyBHZW9EYXRhKCk7XG4gIHByb3RlY3RlZCBhcmVhQm9keUVhc3RHZW86IEdlb0RhdGEgPSBuZXcgR2VvRGF0YSgpO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgaG9zdEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50LFxuICAgIHJlYWRvbmx5IHRhYmxlTW9kZWw6IFRhYmxlTW9kZWxJZixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9tOiBDb252ZW5pZW5jZURvbVNlcnZpY2UsXG4gICAgcmVhZG9ubHkgdGFibGVPcHRpb25zOiBUYWJsZU9wdGlvbnNJZlxuICApIHtcbiAgICBjb25zdCBob3N0RWxlID0gdGhpcy5ob3N0RWxlbWVudDtcblxuICAgIGhvc3RFbGUuaW5uZXJUZXh0ID0gXCJcIjsgLy8gY2xlYXJcbiAgICB0aGlzLmRvbS5zZXRBdHRyaWJ1dGUoaG9zdEVsZSwgXCJ0YWJpbmRleFwiLCBcIjBcIik7IC8vIG5lZWRlZCBmb3IgZ2V0dGluZyBrZXkgZXZlbnRzXG5cbiAgICB0aGlzLmRvbS5zZXRTdHlsZShcbiAgICAgIHRoaXMuZG9tLmFkZENsYXNzKFwiZ2UtdGFibGVcIiwgaG9zdEVsZSlcbiAgICAgICwgXCJwb3NpdGlvblwiLCBcInJlbGF0aXZlXCIpO1xuXG5cbiAgICB0aGlzLmhvdmVyUm93ID1cbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uQWJzb2x1dGUoXG4gICAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1ob3Zlci1yb3dcIiwgaG9zdEVsZSkpO1xuICAgIHRoaXMuaG92ZXJDb2x1bW4gPVxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWhvdmVyLWNvbHVtblwiLCBob3N0RWxlKSk7XG5cbiAgICB0aGlzLmFyZWFIZWFkZXJXZXN0ID0gZG9tLmFwcGVuZFJlbGF0aXZlQ2hpbGREaXYoXG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvbkFic29sdXRlKFxuICAgICAgICBkb20uY3JlYXRlQXJlYURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWhlYWRlciBnZS10YWJsZS1oZWFkZXItd2VzdFwiLCBob3N0RWxlLCBcImhlYWRlclwiLCBcIndlc3RcIikpKTtcbiAgICB0aGlzLmFyZWFIZWFkZXJDZW50ZXIgPSBkb20uYXBwZW5kUmVsYXRpdmVDaGlsZERpdihcbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uQWJzb2x1dGUoXG4gICAgICAgIGRvbS5jcmVhdGVBcmVhRGl2V2l0aENsYXNzKFwiZ2UtdGFibGUtaGVhZGVyIGdlLXRhYmxlLWhlYWRlci1jZW50ZXJcIiwgaG9zdEVsZSwgXCJoZWFkZXJcIiwgXCJjZW50ZXJcIikpKTtcbiAgICB0aGlzLmFyZWFIZWFkZXJFYXN0ID0gZG9tLmFwcGVuZFJlbGF0aXZlQ2hpbGREaXYoXG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvbkFic29sdXRlKFxuICAgICAgICBkb20uY3JlYXRlQXJlYURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWhlYWRlciBnZS10YWJsZS1oZWFkZXItZWFzdFwiLCBob3N0RWxlLCBcImJvZHlcIiwgXCJlYXN0XCIpKSk7XG5cbiAgICB0aGlzLmFyZWFCb2R5V2VzdCA9IGRvbS5hcHBlbmRSZWxhdGl2ZUNoaWxkRGl2KFxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZUFyZWFEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1ib2R5IGdlLXRhYmxlLWJvZHktd2VzdFwiLCBob3N0RWxlLCBcImJvZHlcIiwgXCJ3ZXN0XCIpKSk7XG5cbiAgICB0aGlzLmFyZWFCb2R5RWFzdCA9IGRvbS5hcHBlbmRSZWxhdGl2ZUNoaWxkRGl2KFxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZUFyZWFEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1ib2R5IGdlLXRhYmxlLWJvZHktZWFzdFwiLCBob3N0RWxlLCBcImJvZHlcIiwgXCJlYXN0XCIpKSk7XG5cbiAgICB0aGlzLmFyZWFGb290ZXJXZXN0ID0gZG9tLmFwcGVuZFJlbGF0aXZlQ2hpbGREaXYoXG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvbkFic29sdXRlKFxuICAgICAgICBkb20uY3JlYXRlQXJlYURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWZvb3RlciBnZS10YWJsZS1mb290ZXItd2VzdFwiLCBob3N0RWxlLCBcImZvb3RlclwiLCBcIndlc3RcIikpKTtcblxuICAgIHRoaXMuYXJlYUZvb3RlckNlbnRlciA9IGRvbS5hcHBlbmRSZWxhdGl2ZUNoaWxkRGl2KFxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZUFyZWFEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1mb290ZXIgZ2UtdGFibGUtZm9vdGVyLWNlbnRlclwiLCBob3N0RWxlLCBcImZvb3RlclwiLCBcImNlbnRlclwiKSkpO1xuXG4gICAgdGhpcy5hcmVhRm9vdGVyRWFzdCA9IGRvbS5hcHBlbmRSZWxhdGl2ZUNoaWxkRGl2KFxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZUFyZWFEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1mb290ZXIgZ2UtdGFibGUtZm9vdGVyLWVhc3RcIiwgaG9zdEVsZSwgXCJmb290ZXJcIiwgXCJlYXN0XCIpKSk7XG5cbiAgICB0aGlzLnNjcm9sbFZpZXdwb3J0ID1cbiAgICAgIGRvbS5hcHBseVN0eWxlT3ZlcmZsb3dBdXRvKFxuICAgICAgICB0aGlzLnRhYmxlT3B0aW9ucy5vdmVyZmxvd1ggPz8gXCJhdXRvXCIsXG4gICAgICAgIHRoaXMudGFibGVPcHRpb25zLm92ZXJmbG93WSA/PyBcImF1dG9cIixcbiAgICAgICAgZG9tLmFwcGx5U3R5bGVOb1BhZGRpbmcoXG4gICAgICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgICAgIGRvbS5jcmVhdGVBcmVhRGl2V2l0aENsYXNzKFwiZ2UtdGFibGUtc2Nyb2xsLXZpZXdwb3J0XCIsIGhvc3RFbGUsIFwiYm9keVwiLCBcImNlbnRlclwiKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIHRoaXMuY29udGVudFdyYXBwZXJEaXYgPSBkb20uYXBwbHlTdHlsZU5vUGFkZGluZyhcbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uUmVsYXRpdmUoXG4gICAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1zY3JvbGwtY29udGVudC13cmFwcGVyXCIsIHRoaXMuc2Nyb2xsVmlld3BvcnQpKSk7XG4gICAgdGhpcy5jb250ZW50RGl2ID0gZG9tLmFwcGx5U3R5bGVOb1BhZGRpbmcoXG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvblJlbGF0aXZlKFxuICAgICAgICBkb20uY3JlYXRlRGl2V2l0aENsYXNzKFwiZ2UtdGFibGUtc2Nyb2xsLWNvbnRlbnRcIiwgdGhpcy5jb250ZW50V3JhcHBlckRpdikpKTtcblxuICAgIHRoaXMuYXJlYUJvZHlDZW50ZXIgPSBkb20uYXBwZW5kUmVsYXRpdmVDaGlsZERpdihcbiAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1ib2R5LWNlbnRlclwiLCB0aGlzLmNvbnRlbnREaXYpKTtcblxuICAgIHRoaXMuYm9yZGVySGVhZGVyQm90dG9tID1cbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uQWJzb2x1dGUoXG4gICAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1oZWFkZXItYm9yZGVyXCIsIGhvc3RFbGUpKTtcblxuICAgIHRoaXMuYm9yZGVyRml4ZWRXZXN0ID1cbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uQWJzb2x1dGUoXG4gICAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS13ZXN0LWZpeGVkLWNvbHVtbi1ib3JkZXJcIiwgaG9zdEVsZSkpO1xuXG4gICAgdGhpcy5ib3JkZXJGaXhlZEVhc3QgPVxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWVhc3QtZml4ZWQtY29sdW1uLWJvcmRlclwiLCBob3N0RWxlKSk7XG5cbiAgICB0aGlzLmJvcmRlckZvb3RlclRvcCA9XG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvbkFic29sdXRlKFxuICAgICAgICBkb20uY3JlYXRlRGl2V2l0aENsYXNzKFwiZ2UtdGFibGUtZm9vdGVyLWJvcmRlclwiLCBob3N0RWxlKSk7XG4gIH1cblxuXG4gIGFkanVzdENvbnRhaW5lcnNBbmRSb3dzKCkge1xuICAgIGNvbnN0IHBhZGRpbmcgPSB0aGlzLnRhYmxlTW9kZWwuZ2V0UGFkZGluZygpO1xuICAgIGNvbnN0IHcgPSB0aGlzLmhvc3RFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGggPSB0aGlzLmhvc3RFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuc2Nyb2xsVmlld3BvcnQsIHtcbiAgICAgIHdpZHRoOiBgJHsodyAtIHBhZGRpbmcubGVmdCl9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHsoaCAtIHBhZGRpbmcudG9wKX1weGAsXG4gICAgICB0b3A6IGAke3BhZGRpbmcudG9wfXB4YCxcbiAgICAgIGxlZnQ6IGAke3BhZGRpbmcubGVmdH1weGBcbiAgICB9KTtcblxuICAgIHRoaXMuc2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxWaWV3cG9ydC5zY3JvbGxUb3A7XG5cbiAgICAvLyBDb250ZW50OlxuICAgIHRoaXMuZG9tLmFwcGx5U3R5bGUodGhpcy5jb250ZW50RGl2LCB7XG4gICAgICB3aWR0aDogYCR7dGhpcy5zY3JvbGxWaWV3cG9ydC5jbGllbnRXaWR0aH1weGAsXG4gICAgICBoZWlnaHQ6IGAke3RoaXMuc2Nyb2xsVmlld3BvcnQuY2xpZW50SGVpZ2h0fXB4YCxcbiAgICAgIHRvcDogYCR7dGhpcy5zY3JvbGxUb3B9cHhgLFxuICAgICAgbGVmdDogYCR7dGhpcy5zY3JvbGxWaWV3cG9ydC5zY3JvbGxMZWZ0fXB4YFxuICAgIH0pO1xuXG4gICAgLy8gQm9keTpcbiAgICAvLyBCb2R5L1dlc3Q6XG4gICAgdGhpcy5hcmVhQm9keVdlc3RHZW8ud2lkdGggPSBwYWRkaW5nLmxlZnQ7XG4gICAgdGhpcy5hcmVhQm9keVdlc3RHZW8uaGVpZ2h0ID0gKGggLSBwYWRkaW5nLnRvcCAtIHBhZGRpbmcuYm90dG9tKTtcbiAgICB0aGlzLmFyZWFCb2R5V2VzdEdlby50b3AgPSBwYWRkaW5nLnRvcDtcbiAgICB0aGlzLmFyZWFCb2R5V2VzdEdlby5sZWZ0ID0gMDtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlSW5QeCh0aGlzLmFyZWFCb2R5V2VzdC5wYXJlbnQsIHRoaXMuYXJlYUJvZHlXZXN0R2VvKTtcbiAgICBpZiAodGhpcy50YWJsZU9wdGlvbnMuZml4ZWRXZXN0U2VwYXJhdG9yQm9yZGVyVmlzaWJsZSAmJlxuICAgICAgdGhpcy50YWJsZU1vZGVsLmdldEZpeGVkTGVmdENvbHVtbkNvdW50KCkpIHtcbiAgICAgIHRoaXMuZG9tLmFwcGx5RGlzcGxheUJsb2NrU3R5bGUoXG4gICAgICAgIHRoaXMuZG9tLmFwcGx5U3R5bGUodGhpcy5ib3JkZXJGaXhlZFdlc3QsIHtcbiAgICAgICAgICB3aWR0aDogYDFweGAsXG4gICAgICAgICAgaGVpZ2h0OiBgJHt0aGlzLmFyZWFCb2R5V2VzdEdlby5oZWlnaHR9cHhgLFxuICAgICAgICAgIHRvcDogYCR7dGhpcy5hcmVhQm9keVdlc3RHZW8udG9wfXB4YCxcbiAgICAgICAgICBsZWZ0OiBgJHt0aGlzLmFyZWFCb2R5V2VzdEdlby53aWR0aH1weGBcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9tLmFwcGx5RGlzcGxheU5vbmVTdHlsZSh0aGlzLmJvcmRlckZpeGVkV2VzdCk7XG4gICAgfVxuXG4gICAgLy8gQm9keS9FYXN0OlxuICAgIHRoaXMuYXJlYUJvZHlFYXN0R2VvLndpZHRoID0gcGFkZGluZy5yaWdodDtcbiAgICB0aGlzLmFyZWFCb2R5RWFzdEdlby5oZWlnaHQgPSAoaCAtIHBhZGRpbmcudG9wIC0gcGFkZGluZy5ib3R0b20pO1xuICAgIHRoaXMuYXJlYUJvZHlFYXN0R2VvLnRvcCA9IHBhZGRpbmcudG9wO1xuICAgIHRoaXMuYXJlYUJvZHlFYXN0R2VvLmxlZnQgPSB3IC0gcGFkZGluZy5yaWdodDtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlSW5QeCh0aGlzLmFyZWFCb2R5RWFzdC5wYXJlbnQsIHRoaXMuYXJlYUJvZHlFYXN0R2VvKTtcblxuICAgIGlmICh0aGlzLnRhYmxlT3B0aW9ucy5maXhlZEVhc3RTZXBhcmF0b3JCb3JkZXJWaXNpYmxlICYmXG4gICAgICB0aGlzLnRhYmxlTW9kZWwuZ2V0Rml4ZWRMZWZ0Q29sdW1uQ291bnQoKSkge1xuICAgICAgdGhpcy5kb20uYXBwbHlEaXNwbGF5QmxvY2tTdHlsZShcbiAgICAgICAgdGhpcy5kb20uYXBwbHlTdHlsZSh0aGlzLmJvcmRlckZpeGVkRWFzdCwge1xuICAgICAgICAgIHdpZHRoOiBgMXB4YCxcbiAgICAgICAgICBoZWlnaHQ6IGAke3RoaXMuYXJlYUJvZHlFYXN0R2VvLmhlaWdodH1weGAsXG4gICAgICAgICAgdG9wOiBgJHt0aGlzLmFyZWFCb2R5RWFzdEdlby50b3B9cHhgLFxuICAgICAgICAgIGxlZnQ6IGAke3RoaXMuYXJlYUJvZHlFYXN0R2VvLmxlZnR9cHhgXG4gICAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kb20uYXBwbHlEaXNwbGF5Tm9uZVN0eWxlKHRoaXMuYm9yZGVyRml4ZWRFYXN0KTtcbiAgICB9XG5cbiAgICAvLyBCb2R5L0NlbnRlcjpcbiAgICB0aGlzLmFyZWFCb2R5Q2VudGVyR2VvLndpZHRoID0gKHcgLSBwYWRkaW5nLmxlZnQgLSBwYWRkaW5nLnJpZ2h0KTtcbiAgICB0aGlzLmFyZWFCb2R5Q2VudGVyR2VvLmhlaWdodCA9IChoIC0gcGFkZGluZy50b3AgLSBwYWRkaW5nLmJvdHRvbSk7XG4gICAgdGhpcy5hcmVhQm9keUNlbnRlckdlby50b3AgPSAwO1xuICAgIHRoaXMuYXJlYUJvZHlDZW50ZXJHZW8ubGVmdCA9IDA7XG4gICAgdGhpcy5kb20uYXBwbHlTdHlsZUluUHgodGhpcy5hcmVhQm9keUNlbnRlci5wYXJlbnQsIHRoaXMuYXJlYUJvZHlDZW50ZXJHZW8pO1xuXG5cbiAgICAvLyBIZWFkZXI6XG4gICAgdGhpcy5kb20uYXBwbHlTdHlsZSh0aGlzLmFyZWFIZWFkZXJDZW50ZXIucGFyZW50LCB7XG4gICAgICB3aWR0aDogYCR7dyAtIHBhZGRpbmcubGVmdCAtIHBhZGRpbmcucmlnaHR9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHtwYWRkaW5nLnRvcH1weGAsXG4gICAgICB0b3A6IFwiMFwiLFxuICAgICAgbGVmdDogYCR7cGFkZGluZy5sZWZ0fXB4YFxuICAgIH0pO1xuICAgIHRoaXMuZG9tLmFwcGx5U3R5bGUodGhpcy5hcmVhSGVhZGVyV2VzdC5wYXJlbnQsIHtcbiAgICAgIHdpZHRoOiBgJHtwYWRkaW5nLmxlZnR9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHtwYWRkaW5nLnRvcH1weGAsXG4gICAgICB0b3A6IFwiMFwiLFxuICAgICAgbGVmdDogXCIwXCJcbiAgICB9KTtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuYXJlYUhlYWRlckVhc3QucGFyZW50LCB7XG4gICAgICB3aWR0aDogYCR7cGFkZGluZy5yaWdodH1weGAsXG4gICAgICBoZWlnaHQ6IGAke3BhZGRpbmcudG9wfXB4YCxcbiAgICAgIHRvcDogXCIwXCIsXG4gICAgICBsZWZ0OiBgJHt3IC0gcGFkZGluZy5yaWdodH1weGBcbiAgICB9KTtcbiAgICBpZiAodGhpcy50YWJsZU9wdGlvbnMuaGVhZGVyU2VwYXJhdG9yQm9yZGVyVmlzaWJsZSAmJlxuICAgICAgdGhpcy50YWJsZU1vZGVsLmlzSGVhZGVyVmlzaWJlKCkpIHtcbiAgICAgIHRoaXMuZG9tLmFwcGx5RGlzcGxheUJsb2NrU3R5bGUoXG4gICAgICAgIHRoaXMuZG9tLmFwcGx5U3R5bGUodGhpcy5ib3JkZXJIZWFkZXJCb3R0b20sIHtcbiAgICAgICAgICB3aWR0aDogYCR7d31weGAsXG4gICAgICAgICAgaGVpZ2h0OiBcIjFweFwiLFxuICAgICAgICAgIHRvcDogYCR7cGFkZGluZy50b3B9cHhgLFxuICAgICAgICAgIGxlZnQ6IFwiMHB4XCJcbiAgICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvbS5hcHBseURpc3BsYXlOb25lU3R5bGUodGhpcy5ib3JkZXJIZWFkZXJCb3R0b20pO1xuICAgIH1cblxuICAgIC8vIEZvb3RlcjpcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuYXJlYUZvb3Rlcldlc3QucGFyZW50LCB7XG4gICAgICB3aWR0aDogYCR7cGFkZGluZy5sZWZ0fXB4YCxcbiAgICAgIGhlaWdodDogYCR7cGFkZGluZy5ib3R0b219cHhgLFxuICAgICAgdG9wOiBgJHtoIC0gcGFkZGluZy5ib3R0b219cHhgLFxuICAgICAgbGVmdDogXCIwXCJcbiAgICB9KTtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuYXJlYUZvb3RlckNlbnRlci5wYXJlbnQsIHtcbiAgICAgIHdpZHRoOiBgJHt3IC0gcGFkZGluZy5sZWZ0IC0gcGFkZGluZy5yaWdodH1weGAsXG4gICAgICBoZWlnaHQ6IGAke3BhZGRpbmcuYm90dG9tfXB4YCxcbiAgICAgIHRvcDogYCR7aCAtIHBhZGRpbmcuYm90dG9tfXB4YCxcbiAgICAgIGxlZnQ6IGAke3BhZGRpbmcubGVmdH1weGBcbiAgICB9KTtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuYXJlYUZvb3RlckVhc3QucGFyZW50LCB7XG4gICAgICB3aWR0aDogYCR7cGFkZGluZy5yaWdodH1weGAsXG4gICAgICBoZWlnaHQ6IGAke3BhZGRpbmcuYm90dG9tfXB4YCxcbiAgICAgIHRvcDogYCR7aCAtIHBhZGRpbmcuYm90dG9tfXB4YCxcbiAgICAgIGxlZnQ6IGAke3cgLSBwYWRkaW5nLnJpZ2h0fXB4YFxuICAgIH0pO1xuICAgIGlmICh0aGlzLnRhYmxlT3B0aW9ucy5mb290ZXJTZXBhcmF0b3JCb3JkZXJWaXNpYmxlICYmXG4gICAgICB0aGlzLnRhYmxlTW9kZWwuaXNGb290ZXJWaXNpYmUoKSkge1xuICAgICAgdGhpcy5kb20uYXBwbHlEaXNwbGF5QmxvY2tTdHlsZShcbiAgICAgICAgdGhpcy5kb20uYXBwbHlTdHlsZSh0aGlzLmJvcmRlckZvb3RlclRvcCwge1xuICAgICAgICAgIHdpZHRoOiBgJHt3fXB4YCxcbiAgICAgICAgICBoZWlnaHQ6IFwiMXB4XCIsXG4gICAgICAgICAgdG9wOiBgJHtoIC0gcGFkZGluZy5ib3R0b219cHhgLFxuICAgICAgICAgIGxlZnQ6IFwiMHB4XCJcbiAgICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvbS5hcHBseURpc3BsYXlOb25lU3R5bGUodGhpcy5ib3JkZXJGb290ZXJUb3ApO1xuICAgIH1cblxuICAgIHRoaXMuYWRqdXN0QWZ0ZXJTY3JvbGxpbmcoKTtcbiAgfVxuXG4gIGFkanVzdEFmdGVyU2Nyb2xsaW5nKCkge1xuICAgIC8vIG11c3QgYmUgb3ZlcndyaXR0ZW5cbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldFNpemVPZldyYXBwZXJEaXYoKSB7XG4gICAgY29uc3QgdyA9IGAke3RoaXMudGFibGVNb2RlbC5nZXRDb250ZW50V2lkdGhJblBpeGVsKCl9cHhgO1xuICAgIGNvbnN0IGggPSBgJHt0aGlzLnRhYmxlTW9kZWwuZ2V0Q29udGVudEhlaWdodEluUGl4ZWwoKSArIDF9cHhgOyAvLyArIDEsIHdlIHdhbnQgdG8gc2VlIHRoZSBsYXN0IGhvcml6b250YWwgYm9yZGVyXG4gICAgdGhpcy5kb20uc2V0U3R5bGUodGhpcy5jb250ZW50V3JhcHBlckRpdiwgXCJ3aWR0aFwiLCB3KTtcbiAgICB0aGlzLmRvbS5zZXRTdHlsZSh0aGlzLmNvbnRlbnRXcmFwcGVyRGl2LCBcImhlaWdodFwiLCBoKTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export class EventAdapter {
|
|
2
|
-
onCheckboxChanged(_evt) {
|
|
3
|
-
}
|
|
4
|
-
onContextmenu(_evt) {
|
|
5
|
-
}
|
|
6
|
-
onModelChanged(_evt) {
|
|
7
|
-
}
|
|
8
|
-
onMouseClicked(_evt) {
|
|
9
|
-
}
|
|
10
|
-
onMouseDragging(_evt) {
|
|
11
|
-
}
|
|
12
|
-
onMouseDraggingEnd(_evt) {
|
|
13
|
-
}
|
|
14
|
-
onMouseMoved(_evt) {
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9ldmVudC1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxZQUFZO0lBRXZCLGlCQUFpQixDQUFDLElBQVc7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFrQjtJQUNoQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQXdCO0lBQ3ZDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBa0I7SUFDakMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFrQjtJQUNsQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBa0I7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFrQjtJQUMvQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZU1vZGVsQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi9kYXRhL2NvbW1vbi9ldmVudC9nZS1tb2RlbC1jaGFuZ2UtZXZlbnRcIjtcbmltcG9ydCB7IEdlTW91c2VFdmVudCB9IGZyb20gXCIuL2RhdGEvY29tbW9uL2V2ZW50L2dlLW1vdXNlLWV2ZW50XCI7XG5pbXBvcnQgeyBFdmVudExpc3RlbmVySWYgfSBmcm9tIFwiLi9ldmVudC1saXN0ZW5lci5pZlwiO1xuXG5leHBvcnQgY2xhc3MgRXZlbnRBZGFwdGVyIGltcGxlbWVudHMgRXZlbnRMaXN0ZW5lcklmIHtcblxuICBvbkNoZWNrYm94Q2hhbmdlZChfZXZ0OiBhbnlbXSk6IHZvaWQge1xuICB9XG5cbiAgb25Db250ZXh0bWVudShfZXZ0OiBHZU1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgfVxuXG4gIG9uTW9kZWxDaGFuZ2VkKF9ldnQ6IEdlTW9kZWxDaGFuZ2VFdmVudCk6IHZvaWQge1xuICB9XG5cbiAgb25Nb3VzZUNsaWNrZWQoX2V2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gIH1cblxuICBvbk1vdXNlRHJhZ2dpbmcoX2V2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gIH1cblxuICBvbk1vdXNlRHJhZ2dpbmdFbmQoX2V2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gIH1cblxuICBvbk1vdXNlTW92ZWQoX2V2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gIH1cblxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdGVuZXIuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZXZlbnQtbGlzdGVuZXIuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlTW91c2VFdmVudCB9IGZyb20gXCIuL2RhdGEvY29tbW9uL2V2ZW50L2dlLW1vdXNlLWV2ZW50XCI7XG5pbXBvcnQgeyBHZU1vZGVsQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi9kYXRhL2NvbW1vbi9ldmVudC9nZS1tb2RlbC1jaGFuZ2UtZXZlbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudExpc3RlbmVySWYge1xuXG4gIG9uQ29udGV4dG1lbnUoZXZ0OiBHZU1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gIG9uTW91c2VNb3ZlZChldnQ6IEdlTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgb25Nb3VzZURyYWdnaW5nRW5kKGV2dDogR2VNb3VzZUV2ZW50KTogdm9pZDtcblxuICBvbk1vdXNlRHJhZ2dpbmcoZXZ0OiBHZU1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gIG9uTW91c2VDbGlja2VkKGV2dDogR2VNb3VzZUV2ZW50KTogdm9pZDtcblxuICBvbkNoZWNrYm94Q2hhbmdlZChldnQ6IGFueVtdKTogdm9pZDtcblxuICBvbk1vZGVsQ2hhbmdlZChldnQ6IEdlTW9kZWxDaGFuZ2VFdmVudCk6IHZvaWQ7XG59XG4iXX0=
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import { DefaultRowHeights } from "../data/options/default-row-heights";
|
|
2
|
-
import { ColumnDef } from "../data/tablemodel/column/column-def";
|
|
3
|
-
import { px200 } from "../data/common/sizes";
|
|
4
|
-
import { AreaModelArrayOfArrays } from "../data/tablemodel/areamodel/area-model-array-of-arrays";
|
|
5
|
-
import { AreaModelHidden } from "../data/tablemodel/areamodel/area-model-hidden";
|
|
6
|
-
import { TreeRow } from "../data/common/tree-row";
|
|
7
|
-
import { AreaModelTree } from "../data/tablemodel/areamodel/area-model-tree";
|
|
8
|
-
import { TreeCheckboxModel } from "../checkbox/tree-checkbox-model";
|
|
9
|
-
import { TableModel } from "../data/tablemodel/table-model";
|
|
10
|
-
import { AreaModelObjectArrayWithColumndefs } from "../data/tablemodel/areamodel/area-model-object-array-with-columndefs";
|
|
11
|
-
import { TableOptions } from "../data/options/table-options";
|
|
12
|
-
export class TableFactory {
|
|
13
|
-
static createTableModel(p) {
|
|
14
|
-
if (p.defaultRowHeights === undefined) {
|
|
15
|
-
if (p.tableOptions?.defaultRowHeights) {
|
|
16
|
-
p.defaultRowHeights = p.tableOptions.defaultRowHeights;
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
p.defaultRowHeights = new DefaultRowHeights();
|
|
20
|
-
if (p.headerAreaModel && "defaultRowHeight" in p.headerAreaModel) {
|
|
21
|
-
const dh = p.headerAreaModel.defaultRowHeight;
|
|
22
|
-
if (dh > -1) {
|
|
23
|
-
p.defaultRowHeights.header = dh;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
if (p.bodyAreaModel && "defaultRowHeight" in p.bodyAreaModel) {
|
|
27
|
-
const dh = p.bodyAreaModel.defaultRowHeight;
|
|
28
|
-
if (dh > -1) {
|
|
29
|
-
p.defaultRowHeights.body = dh;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (p.footerAreaModel && "defaultRowHeight" in p.footerAreaModel) {
|
|
33
|
-
const dh = p.footerAreaModel.defaultRowHeight;
|
|
34
|
-
if (dh > -1) {
|
|
35
|
-
p.defaultRowHeights.footer = dh;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (p.columnDefs === undefined) {
|
|
41
|
-
if (p.properties?.length) {
|
|
42
|
-
p.columnDefs = p.properties.map(p => new ColumnDef(p, p.toUpperCase(), px200));
|
|
43
|
-
}
|
|
44
|
-
else if (p.rows?.length) {
|
|
45
|
-
p.columnDefs = Object.keys(p.rows[0]).map(p => new ColumnDef(p, p.toUpperCase(), px200));
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
p.columnDefs = [];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (p.columnCount === undefined) {
|
|
52
|
-
if (p.columnDefs?.length) {
|
|
53
|
-
p.columnCount = p.columnDefs.length;
|
|
54
|
-
}
|
|
55
|
-
else if (p.headerData?.length) {
|
|
56
|
-
p.columnCount = p.headerData[0].length;
|
|
57
|
-
}
|
|
58
|
-
else if (p.columnSizes?.length) {
|
|
59
|
-
p.columnCount = p.columnSizes?.length;
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
console.warn("Property \"columnCount\" is missing and cannot be derived from other properties.");
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (!p.headerAreaModel) {
|
|
66
|
-
if (p.headerData?.length) {
|
|
67
|
-
p.headerAreaModel = new AreaModelArrayOfArrays("header", p.headerData, p.defaultRowHeights.header, p.columnDefs);
|
|
68
|
-
}
|
|
69
|
-
else if (p.columnDefs?.length) {
|
|
70
|
-
p.headerAreaModel = new AreaModelArrayOfArrays("header", [p.columnDefs.map(def => def.headerLabel)], p.defaultRowHeights.header, p.columnDefs);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
p.headerAreaModel = new AreaModelHidden("header");
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if (!p.footerAreaModel) {
|
|
77
|
-
if (p.footerData?.length) {
|
|
78
|
-
p.footerAreaModel = new AreaModelArrayOfArrays("footer", p.footerData, p.defaultRowHeights.footer, p.columnDefs);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
p.footerAreaModel = new AreaModelHidden("footer");
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
if (!p.bodyAreaModel) {
|
|
85
|
-
if (p.rows) {
|
|
86
|
-
if (p.rows?.length && p.rows[0] instanceof TreeRow) {
|
|
87
|
-
// Tree:
|
|
88
|
-
const treeRows = p.rows;
|
|
89
|
-
p.bodyAreaModel = new AreaModelTree("body", treeRows, p.defaultRowHeights.body, p.columnDefs);
|
|
90
|
-
const checkboxExtraColumnVisible = p.columnDefs[0].property === "CheckboxColumn";
|
|
91
|
-
if (checkboxExtraColumnVisible || p.tableOptions?.showCheckboxWihoutExtraColumn) {
|
|
92
|
-
p.bodyAreaModel.rowSelectionModel = new TreeCheckboxModel(treeRows);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
p.bodyAreaModel = new AreaModelObjectArrayWithColumndefs("body", p.rows, p.columnDefs, p.defaultRowHeights.body);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else if (p.bodyData) {
|
|
100
|
-
p.bodyAreaModel = new AreaModelArrayOfArrays("body", p.bodyData, p.defaultRowHeights.body);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
p.bodyAreaModel = new AreaModelHidden("body");
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
if (p.fixedLeftColumnCount === undefined) {
|
|
107
|
-
p.fixedLeftColumnCount = 0;
|
|
108
|
-
}
|
|
109
|
-
if (p.fixedRightColumnCount === undefined) {
|
|
110
|
-
p.fixedRightColumnCount = 0;
|
|
111
|
-
}
|
|
112
|
-
if (p.rowCheckboxVisible === undefined) {
|
|
113
|
-
p.rowCheckboxVisible = false;
|
|
114
|
-
}
|
|
115
|
-
if (p.overridingColumnWidth === undefined) {
|
|
116
|
-
p.overridingColumnWidth = -1;
|
|
117
|
-
}
|
|
118
|
-
if (!p.getSelectionModel && p.tableOptions?.getSelectionModel) {
|
|
119
|
-
p.getSelectionModel = p.tableOptions?.getSelectionModel;
|
|
120
|
-
}
|
|
121
|
-
// Flat table:
|
|
122
|
-
return new TableModel(p.headerAreaModel, p.bodyAreaModel, p.footerAreaModel, p.fixedLeftColumnCount, p.fixedRightColumnCount, p.rowCheckboxVisible, p.defaultRowHeights, p.columnDefs, p.columnSizes, p.overridingColumnWidth, p.columnCount, p.parentSize, p.getSelectionModel);
|
|
123
|
-
}
|
|
124
|
-
static buildByTypedRowsParam(param) {
|
|
125
|
-
return TableFactory.buildByTypedRows(param.rows ?? [], param.columnDefs, param.tableOptions ?? new TableOptions(), param.fixedLeftColumnCount ?? 0, param.fixedRightColumnCount ?? 0);
|
|
126
|
-
}
|
|
127
|
-
static buildByTypedRows(rows, columnDefs, tableOptions = new TableOptions(), fixedLeftColumnCount = 0, fixedRightColumnCount = 0) {
|
|
128
|
-
const defaultRowHeights = tableOptions.defaultRowHeights;
|
|
129
|
-
const checkboxExtraColumnVisible = columnDefs[0].property === "CheckboxColumn";
|
|
130
|
-
if (rows?.length && rows[0] instanceof TreeRow) {
|
|
131
|
-
// Tree:
|
|
132
|
-
const treeRows = rows;
|
|
133
|
-
const bodyareaModel = new AreaModelTree("body", treeRows, defaultRowHeights.body, columnDefs);
|
|
134
|
-
if (checkboxExtraColumnVisible || tableOptions.showCheckboxWihoutExtraColumn) {
|
|
135
|
-
bodyareaModel.rowSelectionModel = new TreeCheckboxModel(treeRows);
|
|
136
|
-
}
|
|
137
|
-
return TableFactory.createByAreaModelsParam({
|
|
138
|
-
headerAreaModel: new AreaModelArrayOfArrays("header", [columnDefs.map(def => def.headerLabel)], defaultRowHeights.header),
|
|
139
|
-
bodyAreaModel: bodyareaModel,
|
|
140
|
-
footerAreaModel: new AreaModelArrayOfArrays("footer", [], defaultRowHeights.footer),
|
|
141
|
-
columnDefs,
|
|
142
|
-
fixedLeftColumnCount,
|
|
143
|
-
fixedRightColumnCount,
|
|
144
|
-
defaultRowHeights: tableOptions.defaultRowHeights,
|
|
145
|
-
rowCheckboxVisible: false,
|
|
146
|
-
columnSizes: [],
|
|
147
|
-
columnCount: columnDefs.length,
|
|
148
|
-
overridingColumnWidth: -1
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
// Flat table:
|
|
152
|
-
return TableFactory.createByObjectArrayParam({
|
|
153
|
-
rows,
|
|
154
|
-
columnDefs,
|
|
155
|
-
fixedLeftColumnCount,
|
|
156
|
-
fixedRightColumnCount,
|
|
157
|
-
defaultRowHeights: tableOptions.defaultRowHeights
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
static createByObjectArrayParam(param) {
|
|
161
|
-
const rowCheckboxVisible = param.rowCheckboxVisible !== undefined ? param.rowCheckboxVisible : false;
|
|
162
|
-
return TableFactory.createByObjectArray(param.rows, param.header ?? [], param.footer ?? [], param.fixedLeftColumnCount ?? 0, param.fixedRightColumnCount ?? 0, rowCheckboxVisible, param.defaultRowHeights ?? new DefaultRowHeights(), param.columnDefs ?? [], param.columnSizes ?? []);
|
|
163
|
-
}
|
|
164
|
-
static createByAreaModels(headerAreaModel = new AreaModelHidden(), bodyAreaModel, footerAreaModel = new AreaModelHidden(), fixedLeftColumnCount = 0, fixedRightColumnCount = 0, rowCheckboxVisible = false, defaultRowHeights = new DefaultRowHeights(), columnDefs, columnSizes = [], overridingColumnWidth = -1, columnCount) {
|
|
165
|
-
return new TableModel(headerAreaModel, bodyAreaModel, footerAreaModel, fixedLeftColumnCount, fixedRightColumnCount, rowCheckboxVisible, defaultRowHeights, columnDefs, columnSizes, overridingColumnWidth, columnCount);
|
|
166
|
-
}
|
|
167
|
-
static createByAreaModelsParam(param) {
|
|
168
|
-
return TableFactory.createByAreaModels(param.headerAreaModel ?? new AreaModelHidden(), param.bodyAreaModel, param.footerAreaModel ?? new AreaModelHidden(), param.fixedLeftColumnCount ?? 0, param.fixedRightColumnCount ?? 0, param.rowCheckboxVisible === undefined ? false : param.rowCheckboxVisible, param.defaultRowHeights, param.columnDefs ?? [], param.columnSizes ?? [], param.overridingColumnWidth ?? -1, param.columnCount ?? 0);
|
|
169
|
-
}
|
|
170
|
-
static createByObjectArray(rows, header = [], footer = [], fixedLeftColumnCount = 0, fixedRightColumnCount = 0, rowCheckboxVisible = false, defaultRowHeights = new DefaultRowHeights(), columnDefs, columnSizes = []) {
|
|
171
|
-
let headerAreaModel;
|
|
172
|
-
if (header?.length) {
|
|
173
|
-
headerAreaModel = new AreaModelArrayOfArrays("header", header, defaultRowHeights.header, columnDefs);
|
|
174
|
-
}
|
|
175
|
-
else if (columnDefs?.length) {
|
|
176
|
-
headerAreaModel = new AreaModelArrayOfArrays("header", [columnDefs.map(def => def.headerLabel)], defaultRowHeights.header, columnDefs);
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
headerAreaModel = new AreaModelHidden();
|
|
180
|
-
}
|
|
181
|
-
const footerAreaModel = footer ? new AreaModelArrayOfArrays("footer", footer, defaultRowHeights.footer, columnDefs) : new AreaModelHidden();
|
|
182
|
-
const bodyAreaModel = new AreaModelObjectArrayWithColumndefs("body", rows, columnDefs, defaultRowHeights.body);
|
|
183
|
-
return new TableModel(headerAreaModel, bodyAreaModel, footerAreaModel, fixedLeftColumnCount, fixedRightColumnCount, rowCheckboxVisible, defaultRowHeights, columnDefs, columnSizes);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9mYWN0b3J5L3RhYmxlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFNUQsT0FBTyxFQUNMLGtDQUFrQyxFQUNuQyxNQUFNLHNFQUFzRSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc3RCxNQUFNLE9BQU8sWUFBWTtJQUVoQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FxQjdCO1FBRUEsSUFBSSxDQUFDLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRTtnQkFDckMsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7YUFDeEQ7aUJBQU07Z0JBQ0wsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLEVB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QWlCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzlHO2FBQU0sSUFBSSxVQUFVLEVBQUUsTUFBTSxFQUFFO1lBQzdCLGVBQWUsR0FBRyxJQUFJLHNCQUFzQixDQUFTLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDaEo7YUFBTTtZQUNMLGVBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLHNCQUFzQixDQUFTLFFBQVEsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BKLE1BQU0sYUFBYSxHQUFHLElBQUksa0NBQWtDLENBQUksTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEgsT0FBTyxJQUFJLFVBQVUsQ0FDbkIsZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZWFNb2RlbElmIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC5pZlwiO1xuaW1wb3J0IHsgRGVmYXVsdFJvd0hlaWdodHNJZiB9IGZyb20gXCIuLi9kYXRhL29wdGlvbnMvZGVmYXVsdC1yb3ctaGVpZ2h0cy5pZlwiO1xuaW1wb3J0IHsgQ29sdW1uRGVmSWYgfSBmcm9tIFwiLi4vZGF0YS90YWJsZW1vZGVsL2NvbHVtbi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQgeyBHZXRUIH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL2dldC10XCI7XG5pbXBvcnQgeyBUYWJsZU9wdGlvbnNJZiB9IGZyb20gXCIuLi9kYXRhL29wdGlvbnMvdGFibGUtb3B0aW9ucy5pZlwiO1xuaW1wb3J0IHsgVGFibGVNb2RlbElmIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC90YWJsZS1tb2RlbC5pZlwiO1xuaW1wb3J0IHsgRGVmYXVsdFJvd0hlaWdodHMgfSBmcm9tIFwiLi4vZGF0YS9vcHRpb25zL2RlZmF1bHQtcm93LWhlaWdodHNcIjtcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gXCIuLi9kYXRhL3RhYmxlbW9kZWwvY29sdW1uL2NvbHVtbi1kZWZcIjtcbmltcG9ydCB7IHB4MjAwIH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL3NpemVzXCI7XG5pbXBvcnQgeyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC1hcnJheS1vZi1hcnJheXNcIjtcbmltcG9ydCB7IEFyZWFNb2RlbEhpZGRlbiB9IGZyb20gXCIuLi9kYXRhL3RhYmxlbW9kZWwvYXJlYW1vZGVsL2FyZWEtbW9kZWwtaGlkZGVuXCI7XG5pbXBvcnQgeyBUcmVlUm93IH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL3RyZWUtcm93XCI7XG5pbXBvcnQgeyBBcmVhTW9kZWxUcmVlIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC10cmVlXCI7XG5pbXBvcnQgeyBUcmVlQ2hlY2tib3hNb2RlbCB9IGZyb20gXCIuLi9jaGVja2JveC90cmVlLWNoZWNrYm94LW1vZGVsXCI7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC90YWJsZS1tb2RlbFwiO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWxJZiB9IGZyb20gXCIuLi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsLmlmXCI7XG5pbXBvcnQge1xuICBBcmVhTW9kZWxPYmplY3RBcnJheVdpdGhDb2x1bW5kZWZzXG59IGZyb20gXCIuLi9kYXRhL3RhYmxlbW9kZWwvYXJlYW1vZGVsL2FyZWEtbW9kZWwtb2JqZWN0LWFycmF5LXdpdGgtY29sdW1uZGVmc1wiO1xuaW1wb3J0IHsgVGFibGVPcHRpb25zIH0gZnJvbSBcIi4uL2RhdGEvb3B0aW9ucy90YWJsZS1vcHRpb25zXCI7XG5cblxuZXhwb3J0IGNsYXNzIFRhYmxlRmFjdG9yeSB7XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVUYWJsZU1vZGVsKHA6IFBhcnRpYWw8e1xuICAgIGhlYWRlckFyZWFNb2RlbDogQXJlYU1vZGVsSWYsXG4gICAgYm9keUFyZWFNb2RlbDogQXJlYU1vZGVsSWYsXG4gICAgZm9vdGVyQXJlYU1vZGVsOiBBcmVhTW9kZWxJZixcbiAgICBmaXhlZExlZnRDb2x1bW5Db3VudDogbnVtYmVyLFxuICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudDogbnVtYmVyLFxuICAgIHJvd0NoZWNrYm94VmlzaWJsZTogYm9vbGVhbixcbiAgICBkZWZhdWx0Um93SGVpZ2h0czogRGVmYXVsdFJvd0hlaWdodHNJZixcbiAgICBjb2x1bW5EZWZzOiBDb2x1bW5EZWZJZltdLFxuICAgIGNvbHVtblNpemVzOiBudW1iZXJbXSxcbiAgICBvdmVycmlkaW5nQ29sdW1uV2lkdGg6IG51bWJlcixcbiAgICBjb2x1bW5Db3VudDogbnVtYmVyLFxuICAgIHBhcmVudFNpemU6IG51bWJlcixcbiAgICBnZXRTZWxlY3Rpb25Nb2RlbDogR2V0VDxTZWxlY3Rpb25Nb2RlbElmPixcbiAgICByb3dzOiBhbnlbXSxcbiAgICBwcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgICBib2R5RGF0YTogYW55W11bXSxcbiAgICBoZWFkZXJEYXRhOiBzdHJpbmdbXVtdLCAvLyBtdWx0aS1saW5lIGhlYWRlclxuICAgIGZvb3RlckRhdGE6IHN0cmluZ1tdW10sIC8vIG11bHRpLWxpbmUgZm9vdGVyRGF0YVxuICAgIHRhYmxlT3B0aW9uczogVGFibGVPcHRpb25zSWZcblxuICB9Pik6IFRhYmxlTW9kZWxJZiB7XG5cbiAgICBpZiAocC5kZWZhdWx0Um93SGVpZ2h0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAocC50YWJsZU9wdGlvbnM/LmRlZmF1bHRSb3dIZWlnaHRzKSB7XG4gICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMgPSBwLnRhYmxlT3B0aW9ucy5kZWZhdWx0Um93SGVpZ2h0cztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMgPSBuZXcgRGVmYXVsdFJvd0hlaWdodHMoKTtcblxuICAgICAgICBpZiAocC5oZWFkZXJBcmVhTW9kZWwgJiYgXCJkZWZhdWx0Um93SGVpZ2h0XCIgaW4gcC5oZWFkZXJBcmVhTW9kZWwpIHtcbiAgICAgICAgICBjb25zdCBkaCA9IHAuaGVhZGVyQXJlYU1vZGVsLmRlZmF1bHRSb3dIZWlnaHQgYXMgbnVtYmVyO1xuICAgICAgICAgIGlmIChkaCA+IC0xKSB7XG4gICAgICAgICAgICBwLmRlZmF1bHRSb3dIZWlnaHRzLmhlYWRlciA9IGRoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwLmJvZHlBcmVhTW9kZWwgJiYgXCJkZWZhdWx0Um93SGVpZ2h0XCIgaW4gcC5ib2R5QXJlYU1vZGVsKSB7XG4gICAgICAgICAgY29uc3QgZGggPSBwLmJvZHlBcmVhTW9kZWwuZGVmYXVsdFJvd0hlaWdodCBhcyBudW1iZXI7XG4gICAgICAgICAgaWYgKGRoID4gLTEpIHtcbiAgICAgICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMuYm9keSA9IGRoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwLmZvb3RlckFyZWFNb2RlbCAmJiBcImRlZmF1bHRSb3dIZWlnaHRcIiBpbiBwLmZvb3RlckFyZWFNb2RlbCkge1xuICAgICAgICAgIGNvbnN0IGRoID0gcC5mb290ZXJBcmVhTW9kZWwuZGVmYXVsdFJvd0hlaWdodCBhcyBudW1iZXI7XG4gICAgICAgICAgaWYgKGRoID4gLTEpIHtcbiAgICAgICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMuZm9vdGVyID0gZGg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHAuY29sdW1uRGVmcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAocC5wcm9wZXJ0aWVzPy5sZW5ndGgpIHtcbiAgICAgICAgcC5jb2x1bW5EZWZzID0gcC5wcm9wZXJ0aWVzLm1hcChwID0+IG5ldyBDb2x1bW5EZWYocCwgcC50b1VwcGVyQ2FzZSgpLCBweDIwMCkpO1xuICAgICAgfSBlbHNlIGlmIChwLnJvd3M/Lmxlbmd0aCkge1xuICAgICAgICBwLmNvbHVtbkRlZnMgPSBPYmplY3Qua2V5cyhwLnJvd3NbMF0pLm1hcChwID0+IG5ldyBDb2x1bW5EZWYocCwgcC50b1VwcGVyQ2FzZSgpLCBweDIwMCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcC5jb2x1bW5EZWZzID0gW107XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHAuY29sdW1uQ291bnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHAuY29sdW1uRGVmcz8ubGVuZ3RoKSB7XG4gICAgICAgIHAuY29sdW1uQ291bnQgPSBwLmNvbHVtbkRlZnMubGVuZ3RoO1xuICAgICAgfSBlbHNlIGlmIChwLmhlYWRlckRhdGE/Lmxlbmd0aCkge1xuICAgICAgICBwLmNvbHVtbkNvdW50ID0gcC5oZWFkZXJEYXRhWzBdLmxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAocC5jb2x1bW5TaXplcz8ubGVuZ3RoKSB7XG4gICAgICAgIHAuY29sdW1uQ291bnQgPSBwLmNvbHVtblNpemVzPy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJQcm9wZXJ0eSBcXFwiY29sdW1uQ291bnRcXFwiIGlzIG1pc3NpbmcgYW5kIGNhbm5vdCBiZSBkZXJpdmVkIGZyb20gb3RoZXIgcHJvcGVydGllcy5cIik7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBpZiAoIXAuaGVhZGVyQXJlYU1vZGVsKSB7XG4gICAgICBpZiAocC5oZWFkZXJEYXRhPy5sZW5ndGgpIHtcbiAgICAgICAgcC5oZWFkZXJBcmVhTW9kZWwgPSBuZXcgQXJlYU1vZGVsQXJyYXlPZkFycmF5czxzdHJpbmc+KFxuICAgICAgICAgIFwiaGVhZGVyXCIsXG4gICAgICAgICAgcC5oZWFkZXJEYXRhLFxuICAgICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMuaGVhZGVyLFxuICAgICAgICAgIHAuY29sdW1uRGVmc1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChwLmNvbHVtbkRlZnM/Lmxlbmd0aCkge1xuICAgICAgICBwLmhlYWRlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzPHN0cmluZz4oXG4gICAgICAgICAgXCJoZWFkZXJcIixcbiAgICAgICAgICBbcC5jb2x1bW5EZWZzLm1hcChkZWYgPT4gZGVmLmhlYWRlckxhYmVsKV0sXG4gICAgICAgICAgcC5kZWZhdWx0Um93SGVpZ2h0cy5oZWFkZXIsXG4gICAgICAgICAgcC5jb2x1bW5EZWZzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwLmhlYWRlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oXCJoZWFkZXJcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcC5mb290ZXJBcmVhTW9kZWwpIHtcbiAgICAgIGlmIChwLmZvb3RlckRhdGE/Lmxlbmd0aCkge1xuICAgICAgICBwLmZvb3RlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzPHN0cmluZz4oXG4gICAgICAgICAgXCJmb290ZXJcIixcbiAgICAgICAgICBwLmZvb3RlckRhdGEsXG4gICAgICAgICAgcC5kZWZhdWx0Um93SGVpZ2h0cy5mb290ZXIsXG4gICAgICAgICAgcC5jb2x1bW5EZWZzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwLmZvb3RlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oXCJmb290ZXJcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcC5ib2R5QXJlYU1vZGVsKSB7XG4gICAgICBpZiAocC5yb3dzKSB7XG5cbiAgICAgICAgaWYgKHAucm93cz8ubGVuZ3RoICYmIHAucm93c1swXSBpbnN0YW5jZW9mIFRyZWVSb3cpIHtcbiAgICAgICAgICAvLyBUcmVlOlxuICAgICAgICAgIGNvbnN0IHRyZWVSb3dzID0gcC5yb3dzIGFzIFRyZWVSb3c8YW55PltdO1xuICAgICAgICAgIHAuYm9keUFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxUcmVlKFxuICAgICAgICAgICAgXCJib2R5XCIsXG4gICAgICAgICAgICB0cmVlUm93cyxcbiAgICAgICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMuYm9keSxcbiAgICAgICAgICAgIHAuY29sdW1uRGVmc1xuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgY2hlY2tib3hFeHRyYUNvbHVtblZpc2libGUgPSBwLmNvbHVtbkRlZnNbMF0ucHJvcGVydHkgPT09IFwiQ2hlY2tib3hDb2x1bW5cIjtcbiAgICAgICAgICBpZiAoY2hlY2tib3hFeHRyYUNvbHVtblZpc2libGUgfHwgcC50YWJsZU9wdGlvbnM/LnNob3dDaGVja2JveFdpaG91dEV4dHJhQ29sdW1uKSB7XG4gICAgICAgICAgICBwLmJvZHlBcmVhTW9kZWwucm93U2VsZWN0aW9uTW9kZWwgPSBuZXcgVHJlZUNoZWNrYm94TW9kZWwodHJlZVJvd3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwLmJvZHlBcmVhTW9kZWwgPSBuZXcgQXJlYU1vZGVsT2JqZWN0QXJyYXlXaXRoQ29sdW1uZGVmczxhbnk+KFxuICAgICAgICAgICAgXCJib2R5XCIsIHAucm93cywgcC5jb2x1bW5EZWZzLCBwLmRlZmF1bHRSb3dIZWlnaHRzLmJvZHlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSBpZiAocC5ib2R5RGF0YSkge1xuICAgICAgICBwLmJvZHlBcmVhTW9kZWwgPSBuZXcgQXJlYU1vZGVsQXJyYXlPZkFycmF5czxhbnk+KFxuICAgICAgICAgIFwiYm9keVwiLCBwLmJvZHlEYXRhLCBwLmRlZmF1bHRSb3dIZWlnaHRzLmJvZHlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHAuYm9keUFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oXCJib2R5XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwLmZpeGVkTGVmdENvbHVtbkNvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHAuZml4ZWRMZWZ0Q29sdW1uQ291bnQgPSAwO1xuICAgIH1cbiAgICBpZiAocC5maXhlZFJpZ2h0Q29sdW1uQ291bnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcC5maXhlZFJpZ2h0Q29sdW1uQ291bnQgPSAwO1xuICAgIH1cbiAgICBpZiAocC5yb3dDaGVja2JveFZpc2libGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcC5yb3dDaGVja2JveFZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHAub3ZlcnJpZGluZ0NvbHVtbldpZHRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHAub3ZlcnJpZGluZ0NvbHVtbldpZHRoID0gLTE7XG4gICAgfVxuXG4gICAgaWYgKCFwLmdldFNlbGVjdGlvbk1vZGVsICYmIHAudGFibGVPcHRpb25zPy5nZXRTZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgcC5nZXRTZWxlY3Rpb25Nb2RlbCA9IHAudGFibGVPcHRpb25zPy5nZXRTZWxlY3Rpb25Nb2RlbDtcbiAgICB9XG5cbiAgICAvLyBGbGF0IHRhYmxlOlxuICAgIHJldHVybiBuZXcgVGFibGVNb2RlbChcbiAgICAgIHAuaGVhZGVyQXJlYU1vZGVsLFxuICAgICAgcC5ib2R5QXJlYU1vZGVsLFxuICAgICAgcC5mb290ZXJBcmVhTW9kZWwsXG4gICAgICBwLmZpeGVkTGVmdENvbHVtbkNvdW50LFxuICAgICAgcC5maXhlZFJpZ2h0Q29sdW1uQ291bnQsXG4gICAgICBwLnJvd0NoZWNrYm94VmlzaWJsZSxcbiAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMsXG4gICAgICBwLmNvbHVtbkRlZnMsXG4gICAgICBwLmNvbHVtblNpemVzLFxuICAgICAgcC5vdmVycmlkaW5nQ29sdW1uV2lkdGgsXG4gICAgICBwLmNvbHVtbkNvdW50LFxuICAgICAgcC5wYXJlbnRTaXplLFxuICAgICAgcC5nZXRTZWxlY3Rpb25Nb2RlbFxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgYnVpbGRCeVR5cGVkUm93c1BhcmFtPFQ+KHBhcmFtOiB7XG4gICAgcm93czogVFtdLFxuICAgIGNvbHVtbkRlZnM6IENvbHVtbkRlZklmW10sXG4gICAgdGFibGVPcHRpb25zPzogVGFibGVPcHRpb25zSWYsXG4gICAgZml4ZWRMZWZ0Q29sdW1uQ291bnQ/OiBudW1iZXIsXG4gICAgZml4ZWRSaWdodENvbHVtbkNvdW50PzogbnVtYmVyXG4gIH0pOiBUYWJsZU1vZGVsSWYge1xuXG4gICAgcmV0dXJuIFRhYmxlRmFjdG9yeS5idWlsZEJ5VHlwZWRSb3dzPFQ+KFxuICAgICAgcGFyYW0ucm93cyA/PyBbXSxcbiAgICAgIHBhcmFtLmNvbHVtbkRlZnMsXG4gICAgICBwYXJhbS50YWJsZU9wdGlvbnMgPz8gbmV3IFRhYmxlT3B0aW9ucygpLFxuICAgICAgcGFyYW0uZml4ZWRMZWZ0Q29sdW1uQ291bnQgPz8gMCxcbiAgICAgIHBhcmFtLmZpeGVkUmlnaHRDb2x1bW5Db3VudCA/PyAwXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZEJ5VHlwZWRSb3dzPFQ+KFxuICAgIHJvd3M6IFRbXSxcbiAgICBjb2x1bW5EZWZzOiBDb2x1bW5EZWZJZltdLFxuICAgIHRhYmxlT3B0aW9uczogVGFibGVPcHRpb25zSWYgPSBuZXcgVGFibGVPcHRpb25zKCksXG4gICAgZml4ZWRMZWZ0Q29sdW1uQ291bnQ6IG51bWJlciA9IDAsXG4gICAgZml4ZWRSaWdodENvbHVtbkNvdW50OiBudW1iZXIgPSAwXG4gICk6IFRhYmxlTW9kZWxJZiB7XG5cbiAgICBjb25zdCBkZWZhdWx0Um93SGVpZ2h0cyA9IHRhYmxlT3B0aW9ucy5kZWZhdWx0Um93SGVpZ2h0cztcbiAgICBjb25zdCBjaGVja2JveEV4dHJhQ29sdW1uVmlzaWJsZSA9IGNvbHVtbkRlZnNbMF0ucHJvcGVydHkgPT09IFwiQ2hlY2tib3hDb2x1bW5cIjtcblxuICAgIGlmIChyb3dzPy5sZW5ndGggJiYgcm93c1swXSBpbnN0YW5jZW9mIFRyZWVSb3cpIHtcbiAgICAgIC8vIFRyZWU6XG4gICAgICBjb25zdCB0cmVlUm93cyA9IHJvd3MgYXMgVHJlZVJvdzxUPltdO1xuICAgICAgY29uc3QgYm9keWFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxUcmVlKFxuICAgICAgICBcImJvZHlcIixcbiAgICAgICAgdHJlZVJvd3MsXG4gICAgICAgIGRlZmF1bHRSb3dIZWlnaHRzLmJvZHksXG4gICAgICAgIGNvbHVtbkRlZnNcbiAgICAgICk7XG4gICAgICBpZiAoY2hlY2tib3hFeHRyYUNvbHVtblZpc2libGUgfHwgdGFibGVPcHRpb25zLnNob3dDaGVja2JveFdpaG91dEV4dHJhQ29sdW1uKSB7XG4gICAgICAgIGJvZHlhcmVhTW9kZWwucm93U2VsZWN0aW9uTW9kZWwgPSBuZXcgVHJlZUNoZWNrYm94TW9kZWwodHJlZVJvd3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFRhYmxlRmFjdG9yeS5jcmVhdGVCeUFyZWFNb2RlbHNQYXJhbSh7XG4gICAgICAgIGhlYWRlckFyZWFNb2RlbDogbmV3IEFyZWFNb2RlbEFycmF5T2ZBcnJheXM8c3RyaW5nPihcImhlYWRlclwiLCBbY29sdW1uRGVmcy5tYXAoZGVmID0+IGRlZi5oZWFkZXJMYWJlbCldLCBkZWZhdWx0Um93SGVpZ2h0cy5oZWFkZXIpLFxuICAgICAgICBib2R5QXJlYU1vZGVsOiBib2R5YXJlYU1vZGVsLFxuICAgICAgICBmb290ZXJBcmVhTW9kZWw6IG5ldyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzPHN0cmluZz4oXCJmb290ZXJcIiwgW10sIGRlZmF1bHRSb3dIZWlnaHRzLmZvb3RlciksXG4gICAgICAgIGNvbHVtbkRlZnMsXG4gICAgICAgIGZpeGVkTGVmdENvbHVtbkNvdW50LFxuICAgICAgICBmaXhlZFJpZ2h0Q29sdW1uQ291bnQsXG4gICAgICAgIGRlZmF1bHRSb3dIZWlnaHRzOiB0YWJsZU9wdGlvbnMuZGVmYXVsdFJvd0hlaWdodHMsXG4gICAgICAgIHJvd0NoZWNrYm94VmlzaWJsZTogZmFsc2UsXG4gICAgICAgIGNvbHVtblNpemVzOiBbXSxcbiAgICAgICAgY29sdW1uQ291bnQ6IGNvbHVtbkRlZnMubGVuZ3RoLFxuICAgICAgICBvdmVycmlkaW5nQ29sdW1uV2lkdGg6IC0xXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBGbGF0IHRhYmxlOlxuICAgIHJldHVybiBUYWJsZUZhY3RvcnkuY3JlYXRlQnlPYmplY3RBcnJheVBhcmFtKHtcbiAgICAgIHJvd3MsXG4gICAgICBjb2x1bW5EZWZzLFxuICAgICAgZml4ZWRMZWZ0Q29sdW1uQ291bnQsXG4gICAgICBmaXhlZFJpZ2h0Q29sdW1uQ291bnQsXG4gICAgICBkZWZhdWx0Um93SGVpZ2h0czogdGFibGVPcHRpb25zLmRlZmF1bHRSb3dIZWlnaHRzXG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQnlPYmplY3RBcnJheVBhcmFtPFQ+KHBhcmFtOiB7XG4gICAgcm93czogVFtdLFxuICAgIGhlYWRlcj86IHN0cmluZ1tdW10sXG4gICAgZm9vdGVyPzogc3RyaW5nW11bXSxcbiAgICBmaXhlZExlZnRDb2x1bW5Db3VudD86IG51bWJlcixcbiAgICBmaXhlZFJpZ2h0Q29sdW1uQ291bnQ/OiBudW1iZXIsXG4gICAgcm93Q2hlY2tib3hWaXNpYmxlPzogYm9vbGVhbixcbiAgICBkZWZhdWx0Um93SGVpZ2h0cz86IERlZmF1bHRSb3dIZWlnaHRzSWYsXG4gICAgY29sdW1uRGVmcz86IENvbHVtbkRlZklmW10sXG4gICAgY29sdW1uU2l6ZXM/OiBudW1iZXJbXVxuICB9KSB7XG4gICAgY29uc3Qgcm93Q2hlY2tib3hWaXNpYmxlID0gcGFyYW0ucm93Q2hlY2tib3hWaXNpYmxlICE9PSB1bmRlZmluZWQgPyBwYXJhbS5yb3dDaGVja2JveFZpc2libGUgOiBmYWxzZTtcbiAgICByZXR1cm4gVGFibGVGYWN0b3J5LmNyZWF0ZUJ5T2JqZWN0QXJyYXk8VD4oXG4gICAgICBwYXJhbS5yb3dzLFxuICAgICAgcGFyYW0uaGVhZGVyID8/IFtdLFxuICAgICAgcGFyYW0uZm9vdGVyID8/IFtdLFxuICAgICAgcGFyYW0uZml4ZWRMZWZ0Q29sdW1uQ291bnQgPz8gMCxcbiAgICAgIHBhcmFtLmZpeGVkUmlnaHRDb2x1bW5Db3VudCA/PyAwLFxuICAgICAgcm93Q2hlY2tib3hWaXNpYmxlLFxuICAgICAgcGFyYW0uZGVmYXVsdFJvd0hlaWdodHMgPz8gbmV3IERlZmF1bHRSb3dIZWlnaHRzKCksXG4gICAgICBwYXJhbS5jb2x1bW5EZWZzID8/IFtdLFxuICAgICAgcGFyYW0uY29sdW1uU2l6ZXMgPz8gW11cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVCeUFyZWFNb2RlbHMoXG4gICAgaGVhZGVyQXJlYU1vZGVsOiBBcmVhTW9kZWxJZiA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oKSxcbiAgICBib2R5QXJlYU1vZGVsOiBBcmVhTW9kZWxJZixcbiAgICBmb290ZXJBcmVhTW9kZWw6IEFyZWFNb2RlbElmID0gbmV3IEFyZWFNb2RlbEhpZGRlbigpLFxuICAgIGZpeGVkTGVmdENvbHVtbkNvdW50OiBudW1iZXIgPSAwLFxuICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudDogbnVtYmVyID0gMCxcbiAgICByb3dDaGVja2JveFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBkZWZhdWx0Um93SGVpZ2h0czogRGVmYXVsdFJvd0hlaWdodHNJZiA9IG5ldyBEZWZhdWx0Um93SGVpZ2h0cygpLFxuICAgIGNvbHVtbkRlZnM6IENvbHVtbkRlZklmW10sXG4gICAgY29sdW1uU2l6ZXM6IG51bWJlcltdID0gW10sXG4gICAgb3ZlcnJpZGluZ0NvbHVtbldpZHRoOiBudW1iZXIgPSAtMSxcbiAgICBjb2x1bW5Db3VudDogbnVtYmVyXG4gICkge1xuICAgIHJldHVybiBuZXcgVGFibGVNb2RlbChcbiAgICAgIGhlYWRlckFyZWFNb2RlbCxcbiAgICAgIGJvZHlBcmVhTW9kZWwsXG4gICAgICBmb290ZXJBcmVhTW9kZWwsXG4gICAgICBmaXhlZExlZnRDb2x1bW5Db3VudCxcbiAgICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudCxcbiAgICAgIHJvd0NoZWNrYm94VmlzaWJsZSxcbiAgICAgIGRlZmF1bHRSb3dIZWlnaHRzLFxuICAgICAgY29sdW1uRGVmcyxcbiAgICAgIGNvbHVtblNpemVzLFxuICAgICAgb3ZlcnJpZGluZ0NvbHVtbldpZHRoLFxuICAgICAgY29sdW1uQ291bnRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVCeUFyZWFNb2RlbHNQYXJhbShwYXJhbToge1xuICAgIGhlYWRlckFyZWFNb2RlbD86IEFyZWFNb2RlbElmLFxuICAgIGJvZHlBcmVhTW9kZWw6IEFyZWFNb2RlbElmLFxuICAgIGZvb3RlckFyZWFNb2RlbD86IEFyZWFNb2RlbElmLFxuICAgIGZpeGVkTGVmdENvbHVtbkNvdW50PzogbnVtYmVyLFxuICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudD86IG51bWJlcixcbiAgICByb3dDaGVja2JveFZpc2libGU/OiBib29sZWFuLFxuICAgIGRlZmF1bHRSb3dIZWlnaHRzPzogRGVmYXVsdFJvd0hlaWdodHNJZixcbiAgICBjb2x1bW5EZWZzPzogQ29sdW1uRGVmSWZbXSxcbiAgICBjb2x1bW5TaXplcz86IG51bWJlcltdLFxuICAgIG92ZXJyaWRpbmdDb2x1bW5XaWR0aD86IG51bWJlcixcbiAgICBjb2x1bW5Db3VudD86IG51bWJlclxuICB9KSB7XG4gICAgcmV0dXJuIFRhYmxlRmFjdG9yeS5jcmVhdGVCeUFyZWFNb2RlbHMoXG4gICAgICBwYXJhbS5oZWFkZXJBcmVhTW9kZWwgPz8gbmV3IEFyZWFNb2RlbEhpZGRlbigpLFxuICAgICAgcGFyYW0uYm9keUFyZWFNb2RlbCxcbiAgICAgIHBhcmFtLmZvb3RlckFyZWFNb2RlbCA/PyBuZXcgQXJlYU1vZGVsSGlkZGVuKCksXG4gICAgICBwYXJhbS5maXhlZExlZnRDb2x1bW5Db3VudCA/PyAwLFxuICAgICAgcGFyYW0uZml4ZWRSaWdodENvbHVtbkNvdW50ID8/IDAsXG4gICAgICBwYXJhbS5yb3dDaGVja2JveFZpc2libGUgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogcGFyYW0ucm93Q2hlY2tib3hWaXNpYmxlLFxuICAgICAgcGFyYW0uZGVmYXVsdFJvd0hlaWdodHMsXG4gICAgICBwYXJhbS5jb2x1bW5EZWZzID8/IFtdLFxuICAgICAgcGFyYW0uY29sdW1uU2l6ZXMgPz8gW10sXG4gICAgICBwYXJhbS5vdmVycmlkaW5nQ29sdW1uV2lkdGggPz8gLTEsXG4gICAgICBwYXJhbS5jb2x1bW5Db3VudCA/PyAwXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQnlPYmplY3RBcnJheTxUPihcbiAgICByb3dzOiBUW10sXG4gICAgaGVhZGVyOiBzdHJpbmdbXVtdID0gW10sXG4gICAgZm9vdGVyOiBzdHJpbmdbXVtdID0gW10sXG4gICAgZml4ZWRMZWZ0Q29sdW1uQ291bnQ6IG51bWJlciA9IDAsXG4gICAgZml4ZWRSaWdodENvbHVtbkNvdW50OiBudW1iZXIgPSAwLFxuICAgIHJvd0NoZWNrYm94VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGRlZmF1bHRSb3dIZWlnaHRzOiBEZWZhdWx0Um93SGVpZ2h0c0lmID0gbmV3IERlZmF1bHRSb3dIZWlnaHRzKCksXG4gICAgY29sdW1uRGVmczogQ29sdW1uRGVmSWZbXSxcbiAgICBjb2x1bW5TaXplczogbnVtYmVyW10gPSBbXVxuICApIHtcbiAgICBsZXQgaGVhZGVyQXJlYU1vZGVsOiBBcmVhTW9kZWxJZjtcbiAgICBpZiAoaGVhZGVyPy5sZW5ndGgpIHtcbiAgICAgIGhlYWRlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzPHN0cmluZz4oXCJoZWFkZXJcIiwgaGVhZGVyLCBkZWZhdWx0Um93SGVpZ2h0cy5oZWFkZXIsIGNvbHVtbkRlZnMpO1xuICAgIH0gZWxzZSBpZiAoY29sdW1uRGVmcz8ubGVuZ3RoKSB7XG4gICAgICBoZWFkZXJBcmVhTW9kZWwgPSBuZXcgQXJlYU1vZGVsQXJyYXlPZkFycmF5czxzdHJpbmc+KFwiaGVhZGVyXCIsIFtjb2x1bW5EZWZzLm1hcChkZWYgPT4gZGVmLmhlYWRlckxhYmVsKV0sIGRlZmF1bHRSb3dIZWlnaHRzLmhlYWRlciwgY29sdW1uRGVmcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhlYWRlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oKTtcbiAgICB9XG4gICAgY29uc3QgZm9vdGVyQXJlYU1vZGVsID0gZm9vdGVyID8gbmV3IEFyZWFNb2RlbEFycmF5T2ZBcnJheXM8c3RyaW5nPihcImZvb3RlclwiLCBmb290ZXIsIGRlZmF1bHRSb3dIZWlnaHRzLmZvb3RlciwgY29sdW1uRGVmcykgOiBuZXcgQXJlYU1vZGVsSGlkZGVuKCk7XG4gICAgY29uc3QgYm9keUFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxPYmplY3RBcnJheVdpdGhDb2x1bW5kZWZzPFQ+KFwiYm9keVwiLCByb3dzLCBjb2x1bW5EZWZzLCBkZWZhdWx0Um93SGVpZ2h0cy5ib2R5KTtcblxuICAgIHJldHVybiBuZXcgVGFibGVNb2RlbChcbiAgICAgIGhlYWRlckFyZWFNb2RlbCxcbiAgICAgIGJvZHlBcmVhTW9kZWwsXG4gICAgICBmb290ZXJBcmVhTW9kZWwsXG4gICAgICBmaXhlZExlZnRDb2x1bW5Db3VudCxcbiAgICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudCxcbiAgICAgIHJvd0NoZWNrYm94VmlzaWJsZSxcbiAgICAgIGRlZmF1bHRSb3dIZWlnaHRzLFxuICAgICAgY29sdW1uRGVmcyxcbiAgICAgIGNvbHVtblNpemVzXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { TreeRow } from "../data/common/tree-row";
|
|
2
|
-
export class TreeFactory {
|
|
3
|
-
static buildTreeRows(data, childrenProperty = "children", deepMaxLimit = 12) {
|
|
4
|
-
const ret = [];
|
|
5
|
-
for (const r of data) {
|
|
6
|
-
ret.push(TreeFactory.buildTreeRow(r, childrenProperty, undefined, 0, deepMaxLimit));
|
|
7
|
-
}
|
|
8
|
-
return ret;
|
|
9
|
-
}
|
|
10
|
-
static buildTreeRow(data, childrenProperty = "children", parent = new TreeRow(data, true, [], undefined, 0), //, false , '0', '0'),
|
|
11
|
-
deep = 0, deepMaxLimit = 12) {
|
|
12
|
-
if (deep > deepMaxLimit) {
|
|
13
|
-
console.warn("Max deep limit reached: ", deep);
|
|
14
|
-
return parent;
|
|
15
|
-
}
|
|
16
|
-
// @ts-ignore
|
|
17
|
-
const children = data[childrenProperty];
|
|
18
|
-
if (children) {
|
|
19
|
-
for (const r of children) {
|
|
20
|
-
const tr = new TreeRow(r, true, [], parent, deep + 1);
|
|
21
|
-
parent.children?.push(tr);
|
|
22
|
-
TreeFactory.buildTreeRow(r, childrenProperty, tr, deep + 1);
|
|
23
|
-
if (deep > deepMaxLimit) {
|
|
24
|
-
console.warn("Max deep limit reached: ", deep);
|
|
25
|
-
return parent;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return parent;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2ZhY3RvcnkvdHJlZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sV0FBVztJQUd0QixNQUFNLENBQUMsYUFBYSxDQUNsQixJQUFTLEVBQ1QsbUJBQTJCLFVBQVUsRUFDckMsZUFBdUIsRUFBRTtRQUV6QixNQUFNLEdBQUcsR0FBaUIsRUFBRSxDQUFDO1FBQzdCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBSSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBR0QsTUFBTSxDQUFDLFlBQVksQ0FDakIsSUFBTyxFQUNQLG1CQUEyQixVQUFVLEVBQ3JDLFNBQXFCLElBQUksT0FBTyxDQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxzQkFBc0I7SUFDekYsT0FBZSxDQUFDLEVBQ2hCLGVBQXVCLEVBQUU7UUFFekIsSUFBSSxJQUFJLEdBQUcsWUFBWSxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUNELGFBQWE7UUFDYixNQUFNLFFBQVEsR0FBb0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxRQUFRLEVBQUU7WUFDWixLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsRUFBRTtnQkFDeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDekQsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFCLFdBQVcsQ0FBQyxZQUFZLENBQ3RCLENBQUMsRUFDRCxnQkFBZ0IsRUFDaEIsRUFBRSxFQUNGLElBQUksR0FBRyxDQUFDLENBQ1QsQ0FBQztnQkFDRixJQUFJLElBQUksR0FBRyxZQUFZLEVBQUU7b0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQy9DLE9BQU8sTUFBTSxDQUFDO2lCQUNmO2FBQ0Y7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyZWVSb3cgfSBmcm9tIFwiLi4vZGF0YS9jb21tb24vdHJlZS1yb3dcIjtcblxuZXhwb3J0IGNsYXNzIFRyZWVGYWN0b3J5IHtcblxuXG4gIHN0YXRpYyBidWlsZFRyZWVSb3dzPFQ+KFxuICAgIGRhdGE6IFRbXSxcbiAgICBjaGlsZHJlblByb3BlcnR5OiBzdHJpbmcgPSBcImNoaWxkcmVuXCIsXG4gICAgZGVlcE1heExpbWl0OiBudW1iZXIgPSAxMik6IFRyZWVSb3c8VD5bXSB7XG5cbiAgICBjb25zdCByZXQ6IFRyZWVSb3c8VD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgciBvZiBkYXRhKSB7XG4gICAgICByZXQucHVzaChUcmVlRmFjdG9yeS5idWlsZFRyZWVSb3c8VD4ociwgY2hpbGRyZW5Qcm9wZXJ0eSwgdW5kZWZpbmVkLCAwLCBkZWVwTWF4TGltaXQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG5cbiAgc3RhdGljIGJ1aWxkVHJlZVJvdzxUPihcbiAgICBkYXRhOiBULFxuICAgIGNoaWxkcmVuUHJvcGVydHk6IHN0cmluZyA9IFwiY2hpbGRyZW5cIixcbiAgICBwYXJlbnQ6IFRyZWVSb3c8VD4gPSBuZXcgVHJlZVJvdzxUPihkYXRhLCB0cnVlLCBbXSwgdW5kZWZpbmVkLCAwKSwgLy8sIGZhbHNlICwgJzAnLCAnMCcpLFxuICAgIGRlZXA6IG51bWJlciA9IDAsXG4gICAgZGVlcE1heExpbWl0OiBudW1iZXIgPSAxMik6IFRyZWVSb3c8VD4ge1xuXG4gICAgaWYgKGRlZXAgPiBkZWVwTWF4TGltaXQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIk1heCBkZWVwIGxpbWl0IHJlYWNoZWQ6IFwiLCBkZWVwKTtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBjaGlsZHJlbjogVFtdIHwgdW5kZWZpbmVkID0gZGF0YVtjaGlsZHJlblByb3BlcnR5XTtcbiAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoY29uc3QgciBvZiBjaGlsZHJlbikge1xuICAgICAgICBjb25zdCB0ciA9IG5ldyBUcmVlUm93PFQ+KHIsIHRydWUsIFtdLCBwYXJlbnQsIGRlZXAgKyAxKTtcbiAgICAgICAgcGFyZW50LmNoaWxkcmVuPy5wdXNoKHRyKTtcbiAgICAgICAgVHJlZUZhY3RvcnkuYnVpbGRUcmVlUm93KFxuICAgICAgICAgIHIsXG4gICAgICAgICAgY2hpbGRyZW5Qcm9wZXJ0eSxcbiAgICAgICAgICB0cixcbiAgICAgICAgICBkZWVwICsgMVxuICAgICAgICApO1xuICAgICAgICBpZiAoZGVlcCA+IGRlZXBNYXhMaW1pdCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIk1heCBkZWVwIGxpbWl0IHJlYWNoZWQ6IFwiLCBkZWVwKTtcbiAgICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJlbnQ7XG4gIH1cbn1cblxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtbW9kZWwuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZm9jdXMvZm9jdXMtbW9kZWwuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRm9jdXNNb2RlbElmIHtcblxuICBjbGVhcigpOiB2b2lkO1xuXG4gIHNldEZvY3VzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gIGhhc0ZvY3VzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiBib29sZWFuO1xuXG4gIGdldEZvY3VzKCk6IFtudW1iZXIsIG51bWJlcl07XG5cbiAgaGFzQ2hhbmdlZCgpOiBib29sZWFuO1xuXG4gIGNsZWFyQ2hhbmdlZCgpOiB2b2lkO1xufVxuIl19
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
export class FocusModel {
|
|
2
|
-
selectionType;
|
|
3
|
-
rowIndex = -1;
|
|
4
|
-
columnIndex = -1;
|
|
5
|
-
changed = false;
|
|
6
|
-
constructor(selectionType = "none") {
|
|
7
|
-
this.selectionType = selectionType;
|
|
8
|
-
}
|
|
9
|
-
clearChanged() {
|
|
10
|
-
this.changed = false;
|
|
11
|
-
}
|
|
12
|
-
hasChanged() {
|
|
13
|
-
return this.changed;
|
|
14
|
-
}
|
|
15
|
-
clear() {
|
|
16
|
-
this.rowIndex = -1;
|
|
17
|
-
this.columnIndex = -1;
|
|
18
|
-
}
|
|
19
|
-
setFocus(rowIndex, columnIndex) {
|
|
20
|
-
if (this.rowIndex !== rowIndex || this.columnIndex !== columnIndex) {
|
|
21
|
-
this.rowIndex = rowIndex;
|
|
22
|
-
this.columnIndex = columnIndex;
|
|
23
|
-
this.changed = true;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
hasFocus(rowIndex, columnIndex) {
|
|
27
|
-
return this.rowIndex === rowIndex && this.columnIndex === columnIndex;
|
|
28
|
-
}
|
|
29
|
-
getFocus() {
|
|
30
|
-
return [this.rowIndex, this.columnIndex];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZm9jdXMvZm9jdXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLFVBQVU7SUFPWjtJQUxDLFFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0QixXQUFXLEdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDekIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUUxQixZQUNTLGdCQUEyQixNQUFNO1FBQWpDLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtJQUUxQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFHRCxRQUFRLENBQ04sUUFBZ0IsRUFDaEIsV0FBbUI7UUFFbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzVHlwZSB9IGZyb20gXCIuL2ZvY3VzLnR5cGVcIjtcbmltcG9ydCB7IEZvY3VzTW9kZWxJZiB9IGZyb20gXCIuL2ZvY3VzLW1vZGVsLmlmXCI7XG5cbmV4cG9ydCBjbGFzcyBGb2N1c01vZGVsIGltcGxlbWVudHMgRm9jdXNNb2RlbElmIHtcblxuICBwcm90ZWN0ZWQgcm93SW5kZXg6IG51bWJlciA9IC0xO1xuICBwcm90ZWN0ZWQgY29sdW1uSW5kZXg6IG51bWJlciA9IC0xO1xuICBwcm90ZWN0ZWQgY2hhbmdlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZWxlY3Rpb25UeXBlOiBGb2N1c1R5cGUgPSBcIm5vbmVcIlxuICApIHtcbiAgfVxuXG4gIGNsZWFyQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGhhc0NoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlZDtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMucm93SW5kZXggPSAtMTtcbiAgICB0aGlzLmNvbHVtbkluZGV4ID0gLTE7XG4gIH1cblxuXG4gIHNldEZvY3VzKFxuICAgIHJvd0luZGV4OiBudW1iZXIsXG4gICAgY29sdW1uSW5kZXg6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yb3dJbmRleCAhPT0gcm93SW5kZXggfHwgdGhpcy5jb2x1bW5JbmRleCAhPT0gY29sdW1uSW5kZXgpIHtcbiAgICAgIHRoaXMucm93SW5kZXggPSByb3dJbmRleDtcbiAgICAgIHRoaXMuY29sdW1uSW5kZXggPSBjb2x1bW5JbmRleDtcbiAgICAgIHRoaXMuY2hhbmdlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaGFzRm9jdXMocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvd0luZGV4ID09PSByb3dJbmRleCAmJiB0aGlzLmNvbHVtbkluZGV4ID09PSBjb2x1bW5JbmRleDtcbiAgfVxuXG4gIGdldEZvY3VzKCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIHJldHVybiBbdGhpcy5yb3dJbmRleCwgdGhpcy5jb2x1bW5JbmRleF07XG4gIH1cblxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9mb2N1cy9mb2N1cy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGb2N1c1R5cGUgPSBcIm5vbmVcIiB8IFwiY2VsbFwiIHwgXCJyb3dcIjtcblxuXG5cbiJdfQ==
|