@igo2/common 1.15.4 → 1.15.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/esm2020/igo2-common.mjs +4 -4
- package/esm2020/lib/action/action.module.mjs +27 -27
- package/esm2020/lib/action/actionbar/actionbar-item.component.mjs +252 -252
- package/esm2020/lib/action/actionbar/actionbar.component.mjs +370 -370
- package/esm2020/lib/action/actionbar/actionbar.module.mjs +57 -57
- package/esm2020/lib/action/index.mjs +3 -3
- package/esm2020/lib/action/shared/action.enums.mjs +7 -7
- package/esm2020/lib/action/shared/action.interfaces.mjs +2 -2
- package/esm2020/lib/action/shared/index.mjs +4 -4
- package/esm2020/lib/action/shared/store.mjs +8 -8
- package/esm2020/lib/backdrop/backdrop.component.mjs +26 -26
- package/esm2020/lib/backdrop/backdrop.module.mjs +25 -25
- package/esm2020/lib/backdrop/index.mjs +2 -2
- package/esm2020/lib/badge-icon/badge-icon.directive.mjs +141 -141
- package/esm2020/lib/badge-icon/badge-icon.module.mjs +26 -26
- package/esm2020/lib/badge-icon/index.mjs +2 -2
- package/esm2020/lib/clickout/clickout.directive.mjs +32 -32
- package/esm2020/lib/clickout/clickout.module.mjs +24 -24
- package/esm2020/lib/clickout/index.mjs +2 -2
- package/esm2020/lib/clone/clone.module.mjs +24 -24
- package/esm2020/lib/clone/clone.pipe.mjs +24 -24
- package/esm2020/lib/clone/index.mjs +2 -2
- package/esm2020/lib/collapsible/collapse.directive.mjs +55 -55
- package/esm2020/lib/collapsible/collapsible.component.mjs +57 -57
- package/esm2020/lib/collapsible/collapsible.module.mjs +27 -27
- package/esm2020/lib/collapsible/index.mjs +3 -3
- package/esm2020/lib/confirm-dialog/confirm-dialog.component.mjs +44 -44
- package/esm2020/lib/confirm-dialog/confirm-dialog.module.mjs +29 -29
- package/esm2020/lib/confirm-dialog/confirm-dialog.service.mjs +24 -24
- package/esm2020/lib/confirm-dialog/index.mjs +3 -3
- package/esm2020/lib/context-menu/context-menu.directive.mjs +103 -103
- package/esm2020/lib/context-menu/context-menu.module.mjs +25 -25
- package/esm2020/lib/context-menu/index.mjs +3 -3
- package/esm2020/lib/context-menu/long-press.directive.mjs +67 -67
- package/esm2020/lib/custom-html/custom-html.component.mjs +28 -28
- package/esm2020/lib/custom-html/custom-html.module.mjs +47 -47
- package/esm2020/lib/custom-html/custom-html.pipe.mjs +18 -18
- package/esm2020/lib/custom-html/index.mjs +3 -3
- package/esm2020/lib/dom/dom.interfaces.mjs +2 -2
- package/esm2020/lib/dom/dom.module.mjs +23 -23
- package/esm2020/lib/dom/dom.service.mjs +30 -30
- package/esm2020/lib/dom/index.mjs +3 -3
- package/esm2020/lib/drag-drop/drag-drop.directive.mjs +87 -87
- package/esm2020/lib/drag-drop/drag-drop.module.mjs +24 -24
- package/esm2020/lib/drag-drop/index.mjs +2 -2
- package/esm2020/lib/dynamic-component/dynamic-component.module.mjs +31 -31
- package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +122 -122
- package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +28 -28
- package/esm2020/lib/dynamic-component/index.mjs +3 -3
- package/esm2020/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -2
- package/esm2020/lib/dynamic-component/shared/dynamic-component.mjs +174 -174
- package/esm2020/lib/dynamic-component/shared/dynamic-component.service.mjs +29 -29
- package/esm2020/lib/dynamic-component/shared/index.mjs +4 -4
- package/esm2020/lib/entity/entity-selector/entity-selector.component.mjs +194 -194
- package/esm2020/lib/entity/entity-selector/entity-selector.module.mjs +32 -32
- package/esm2020/lib/entity/entity-table/entity-table-row.directive.mjs +137 -137
- package/esm2020/lib/entity/entity-table/entity-table.component.mjs +1376 -1376
- package/esm2020/lib/entity/entity-table/entity-table.module.mjs +102 -102
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +132 -132
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -2
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +28 -28
- package/esm2020/lib/entity/entity.module.mjs +31 -31
- package/esm2020/lib/entity/index.mjs +6 -6
- package/esm2020/lib/entity/shared/entity.enums.mjs +28 -28
- package/esm2020/lib/entity/shared/entity.interfaces.mjs +2 -2
- package/esm2020/lib/entity/shared/entity.utils.mjs +67 -67
- package/esm2020/lib/entity/shared/index.mjs +10 -10
- package/esm2020/lib/entity/shared/state.mjs +191 -191
- package/esm2020/lib/entity/shared/store.mjs +288 -288
- package/esm2020/lib/entity/shared/strategies/filter-custom-function.mjs +79 -79
- package/esm2020/lib/entity/shared/strategies/filter-selection.mjs +84 -84
- package/esm2020/lib/entity/shared/strategies/index.mjs +4 -4
- package/esm2020/lib/entity/shared/strategies/strategy.mjs +75 -75
- package/esm2020/lib/entity/shared/transaction.mjs +316 -316
- package/esm2020/lib/entity/shared/view.mjs +315 -315
- package/esm2020/lib/entity/shared/watcher.mjs +120 -120
- package/esm2020/lib/flexible/flexible.component.mjs +148 -148
- package/esm2020/lib/flexible/flexible.module.mjs +24 -24
- package/esm2020/lib/flexible/flexible.type.mjs +2 -2
- package/esm2020/lib/flexible/index.mjs +3 -3
- package/esm2020/lib/form/form/form.component.mjs +117 -117
- package/esm2020/lib/form/form/form.module.mjs +40 -40
- package/esm2020/lib/form/form-field/form-field-select.component.mjs +127 -127
- package/esm2020/lib/form/form-field/form-field-text.component.mjs +104 -104
- package/esm2020/lib/form/form-field/form-field-textarea.component.mjs +105 -105
- package/esm2020/lib/form/form-field/form-field.component.mjs +72 -72
- package/esm2020/lib/form/form-field/form-field.module.mjs +74 -74
- package/esm2020/lib/form/form-field/index.mjs +5 -5
- package/esm2020/lib/form/form-group/form-group.component.mjs +105 -105
- package/esm2020/lib/form/form-group/form-group.module.mjs +40 -40
- package/esm2020/lib/form/form.module.mjs +49 -49
- package/esm2020/lib/form/index.mjs +5 -5
- package/esm2020/lib/form/shared/form-field-component.mjs +7 -7
- package/esm2020/lib/form/shared/form-field.service.mjs +29 -29
- package/esm2020/lib/form/shared/form.interfaces.mjs +2 -2
- package/esm2020/lib/form/shared/form.service.mjs +81 -81
- package/esm2020/lib/form/shared/form.utils.mjs +40 -40
- package/esm2020/lib/form/shared/index.mjs +6 -6
- package/esm2020/lib/home-button/home-button.component.mjs +31 -31
- package/esm2020/lib/home-button/home-button.module.mjs +41 -41
- package/esm2020/lib/home-button/index.mjs +2 -2
- package/esm2020/lib/image/image-error.directive.mjs +35 -35
- package/esm2020/lib/image/image.module.mjs +25 -25
- package/esm2020/lib/image/index.mjs +3 -3
- package/esm2020/lib/image/secure-image.pipe.mjs +59 -59
- package/esm2020/lib/interactive-tour/index.mjs +5 -5
- package/esm2020/lib/interactive-tour/interactive-tour.component.mjs +135 -135
- package/esm2020/lib/interactive-tour/interactive-tour.interface.mjs +2 -2
- package/esm2020/lib/interactive-tour/interactive-tour.loader.mjs +44 -44
- package/esm2020/lib/interactive-tour/interactive-tour.module.mjs +40 -40
- package/esm2020/lib/interactive-tour/interactive-tour.service.mjs +285 -285
- package/esm2020/lib/json-dialog/index.mjs +3 -3
- package/esm2020/lib/json-dialog/json-dialog.component.mjs +109 -109
- package/esm2020/lib/json-dialog/json-dialog.module.mjs +29 -29
- package/esm2020/lib/json-dialog/json-dialog.service.mjs +24 -24
- package/esm2020/lib/keyvalue/index.mjs +2 -2
- package/esm2020/lib/keyvalue/keyvalue.module.mjs +24 -24
- package/esm2020/lib/keyvalue/keyvalue.pipe.mjs +18 -18
- package/esm2020/lib/list/index.mjs +3 -3
- package/esm2020/lib/list/list-item.directive.mjs +165 -165
- package/esm2020/lib/list/list.component.mjs +262 -262
- package/esm2020/lib/list/list.module.mjs +29 -29
- package/esm2020/lib/panel/index.mjs +2 -2
- package/esm2020/lib/panel/panel.component.mjs +59 -59
- package/esm2020/lib/panel/panel.module.mjs +19 -19
- package/esm2020/lib/sidenav/index.mjs +2 -2
- package/esm2020/lib/sidenav/sidenav-shim.directive.mjs +55 -55
- package/esm2020/lib/sidenav/sidenav.module.mjs +24 -24
- package/esm2020/lib/spinner/index.mjs +3 -3
- package/esm2020/lib/spinner/spinner-activity.directive.mjs +47 -47
- package/esm2020/lib/spinner/spinner.component.mjs +35 -35
- package/esm2020/lib/spinner/spinner.module.mjs +21 -21
- package/esm2020/lib/stop-propagation/index.mjs +3 -3
- package/esm2020/lib/stop-propagation/stop-drop-propagation.directive.mjs +22 -22
- package/esm2020/lib/stop-propagation/stop-propagation.directive.mjs +21 -21
- package/esm2020/lib/stop-propagation/stop-propagation.module.mjs +25 -25
- package/esm2020/lib/table/index.mjs +6 -6
- package/esm2020/lib/table/table-action-color.enum.mjs +7 -7
- package/esm2020/lib/table/table-database.mjs +28 -28
- package/esm2020/lib/table/table-datasource.mjs +61 -61
- package/esm2020/lib/table/table-model.interface.mjs +2 -2
- package/esm2020/lib/table/table.component.mjs +297 -297
- package/esm2020/lib/table/table.module.mjs +67 -67
- package/esm2020/lib/tool/index.mjs +3 -3
- package/esm2020/lib/tool/shared/index.mjs +6 -6
- package/esm2020/lib/tool/shared/tool-component.mjs +9 -9
- package/esm2020/lib/tool/shared/tool.interface.mjs +2 -2
- package/esm2020/lib/tool/shared/tool.service.mjs +43 -43
- package/esm2020/lib/tool/shared/toolbox.enums.mjs +7 -7
- package/esm2020/lib/tool/shared/toolbox.mjs +179 -179
- package/esm2020/lib/tool/tool.module.mjs +32 -32
- package/esm2020/lib/tool/toolbox/toolbox.animation.mjs +10 -10
- package/esm2020/lib/tool/toolbox/toolbox.component.mjs +255 -255
- package/esm2020/lib/tool/toolbox/toolbox.module.mjs +36 -36
- package/esm2020/lib/widget/index.mjs +3 -3
- package/esm2020/lib/widget/shared/index.mjs +4 -4
- package/esm2020/lib/widget/shared/widget.interfaces.mjs +2 -2
- package/esm2020/lib/widget/shared/widget.mjs +4 -4
- package/esm2020/lib/widget/shared/widget.service.mjs +20 -20
- package/esm2020/lib/widget/widget-outlet/widget-outlet.component.mjs +116 -116
- package/esm2020/lib/widget/widget-outlet/widget-outlet.module.mjs +32 -32
- package/esm2020/lib/widget/widget.module.mjs +32 -32
- package/esm2020/lib/workspace/index.mjs +4 -4
- package/esm2020/lib/workspace/shared/index.mjs +4 -4
- package/esm2020/lib/workspace/shared/store.mjs +40 -40
- package/esm2020/lib/workspace/shared/workspace.interfaces.mjs +2 -2
- package/esm2020/lib/workspace/shared/workspace.mjs +117 -117
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.component.mjs +51 -51
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +32 -32
- package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +88 -88
- package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +32 -32
- package/esm2020/lib/workspace/workspace.module.mjs +27 -27
- package/esm2020/public_api.mjs +74 -74
- package/fesm2015/igo2-common.mjs +10016 -10016
- package/fesm2015/igo2-common.mjs.map +1 -1
- package/fesm2020/igo2-common.mjs +9319 -9319
- package/fesm2020/igo2-common.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/action/action.module.d.ts +8 -8
- package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
- package/lib/action/actionbar/actionbar.component.d.ts +146 -146
- package/lib/action/actionbar/actionbar.module.d.ts +20 -20
- package/lib/action/index.d.ts +2 -2
- package/lib/action/shared/action.enums.d.ts +5 -5
- package/lib/action/shared/action.interfaces.d.ts +17 -17
- package/lib/action/shared/index.d.ts +3 -3
- package/lib/action/shared/store.d.ts +8 -8
- package/lib/backdrop/backdrop.component.d.ts +9 -9
- package/lib/backdrop/backdrop.module.d.ts +10 -10
- package/lib/backdrop/index.d.ts +1 -1
- package/lib/badge-icon/badge-icon.directive.d.ts +36 -36
- package/lib/badge-icon/badge-icon.module.d.ts +11 -11
- package/lib/badge-icon/index.d.ts +1 -1
- package/lib/clickout/clickout.directive.d.ts +10 -10
- package/lib/clickout/clickout.module.d.ts +9 -9
- package/lib/clickout/index.d.ts +1 -1
- package/lib/clone/clone.module.d.ts +9 -9
- package/lib/clone/clone.pipe.d.ts +7 -7
- package/lib/clone/index.d.ts +1 -1
- package/lib/collapsible/collapse.directive.d.ts +19 -19
- package/lib/collapsible/collapsible.component.d.ts +13 -13
- package/lib/collapsible/collapsible.module.d.ts +12 -12
- package/lib/collapsible/index.d.ts +2 -2
- package/lib/confirm-dialog/confirm-dialog.component.d.ts +9 -9
- package/lib/confirm-dialog/confirm-dialog.module.d.ts +12 -12
- package/lib/confirm-dialog/confirm-dialog.service.d.ts +12 -12
- package/lib/confirm-dialog/index.d.ts +2 -2
- package/lib/context-menu/context-menu.directive.d.ts +21 -21
- package/lib/context-menu/context-menu.module.d.ts +10 -10
- package/lib/context-menu/index.d.ts +2 -2
- package/lib/context-menu/long-press.directive.d.ts +20 -20
- package/lib/custom-html/custom-html.component.d.ts +9 -9
- package/lib/custom-html/custom-html.module.d.ts +16 -16
- package/lib/custom-html/custom-html.pipe.d.ts +10 -10
- package/lib/custom-html/index.d.ts +2 -2
- package/lib/dom/dom.interfaces.d.ts +10 -10
- package/lib/dom/dom.module.d.ts +8 -8
- package/lib/dom/dom.service.d.ts +10 -10
- package/lib/dom/index.d.ts +2 -2
- package/lib/drag-drop/drag-drop.directive.d.ts +14 -14
- package/lib/drag-drop/drag-drop.module.d.ts +9 -9
- package/lib/drag-drop/index.d.ts +1 -1
- package/lib/dynamic-component/dynamic-component.module.d.ts +8 -8
- package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -70
- package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +11 -11
- package/lib/dynamic-component/index.d.ts +2 -2
- package/lib/dynamic-component/shared/dynamic-component.d.ts +88 -88
- package/lib/dynamic-component/shared/dynamic-component.interfaces.d.ts +3 -3
- package/lib/dynamic-component/shared/dynamic-component.service.d.ts +18 -18
- package/lib/dynamic-component/shared/index.d.ts +3 -3
- package/lib/entity/entity-selector/entity-selector.component.d.ts +92 -92
- package/lib/entity/entity-selector/entity-selector.module.d.ts +13 -13
- package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
- package/lib/entity/entity-table/entity-table.component.d.ts +333 -333
- package/lib/entity/entity-table/entity-table.module.d.ts +29 -29
- package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +49 -49
- package/lib/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +8 -8
- package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +11 -11
- package/lib/entity/entity.module.d.ts +10 -10
- package/lib/entity/index.d.ts +5 -5
- package/lib/entity/shared/entity.enums.d.ts +23 -23
- package/lib/entity/shared/entity.interfaces.d.ts +114 -114
- package/lib/entity/shared/entity.utils.d.ts +49 -49
- package/lib/entity/shared/index.d.ts +9 -9
- package/lib/entity/shared/state.d.ts +103 -103
- package/lib/entity/shared/store.d.ts +176 -176
- package/lib/entity/shared/strategies/filter-custom-function.d.ts +51 -51
- package/lib/entity/shared/strategies/filter-selection.d.ts +48 -48
- package/lib/entity/shared/strategies/index.d.ts +3 -3
- package/lib/entity/shared/strategies/strategy.d.ts +56 -56
- package/lib/entity/shared/transaction.d.ts +168 -168
- package/lib/entity/shared/view.d.ts +193 -193
- package/lib/entity/shared/watcher.d.ts +72 -72
- package/lib/flexible/flexible.component.d.ts +41 -41
- package/lib/flexible/flexible.module.d.ts +9 -9
- package/lib/flexible/flexible.type.d.ts +2 -2
- package/lib/flexible/index.d.ts +2 -2
- package/lib/form/form/form.component.d.ts +53 -53
- package/lib/form/form/form.module.d.ts +12 -12
- package/lib/form/form-field/form-field-select.component.d.ts +48 -48
- package/lib/form/form-field/form-field-text.component.d.ts +41 -41
- package/lib/form/form-field/form-field-textarea.component.d.ts +41 -41
- package/lib/form/form-field/form-field.component.d.ts +34 -34
- package/lib/form/form-field/form-field.module.d.ts +21 -21
- package/lib/form/form-field/index.d.ts +4 -4
- package/lib/form/form-group/form-group.component.d.ts +49 -49
- package/lib/form/form-group/form-group.module.d.ts +14 -14
- package/lib/form/form.module.d.ts +13 -13
- package/lib/form/index.d.ts +4 -4
- package/lib/form/shared/form-field-component.d.ts +1 -1
- package/lib/form/shared/form-field.service.d.ts +19 -19
- package/lib/form/shared/form.interfaces.d.ts +57 -57
- package/lib/form/shared/form.service.d.ts +15 -15
- package/lib/form/shared/form.utils.d.ts +11 -11
- package/lib/form/shared/index.d.ts +5 -5
- package/lib/home-button/home-button.component.d.ts +9 -9
- package/lib/home-button/home-button.module.d.ts +15 -15
- package/lib/home-button/index.d.ts +1 -1
- package/lib/image/image-error.directive.d.ts +11 -11
- package/lib/image/image.module.d.ts +10 -10
- package/lib/image/index.d.ts +2 -2
- package/lib/image/secure-image.pipe.d.ts +13 -13
- package/lib/interactive-tour/index.d.ts +4 -4
- package/lib/interactive-tour/interactive-tour.component.d.ts +30 -30
- package/lib/interactive-tour/interactive-tour.interface.d.ts +32 -32
- package/lib/interactive-tour/interactive-tour.loader.d.ts +18 -18
- package/lib/interactive-tour/interactive-tour.module.d.ts +12 -12
- package/lib/interactive-tour/interactive-tour.service.d.ts +29 -29
- package/lib/json-dialog/index.d.ts +2 -2
- package/lib/json-dialog/json-dialog.component.d.ts +13 -13
- package/lib/json-dialog/json-dialog.module.d.ts +13 -13
- package/lib/json-dialog/json-dialog.service.d.ts +10 -10
- package/lib/keyvalue/index.d.ts +1 -1
- package/lib/keyvalue/keyvalue.module.d.ts +9 -9
- package/lib/keyvalue/keyvalue.pipe.d.ts +7 -7
- package/lib/list/index.d.ts +2 -2
- package/lib/list/list-item.directive.d.ts +43 -43
- package/lib/list/list.component.d.ts +51 -51
- package/lib/list/list.module.d.ts +14 -14
- package/lib/panel/index.d.ts +1 -1
- package/lib/panel/panel.component.d.ts +10 -10
- package/lib/panel/panel.module.d.ts +8 -8
- package/lib/sidenav/index.d.ts +1 -1
- package/lib/sidenav/sidenav-shim.directive.d.ts +20 -20
- package/lib/sidenav/sidenav.module.d.ts +9 -9
- package/lib/spinner/index.d.ts +2 -2
- package/lib/spinner/spinner-activity.directive.d.ts +32 -32
- package/lib/spinner/spinner.component.d.ts +12 -12
- package/lib/spinner/spinner.module.d.ts +10 -10
- package/lib/stop-propagation/index.d.ts +2 -2
- package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +6 -6
- package/lib/stop-propagation/stop-propagation.directive.d.ts +6 -6
- package/lib/stop-propagation/stop-propagation.module.d.ts +10 -10
- package/lib/table/index.d.ts +5 -5
- package/lib/table/table-action-color.enum.d.ts +5 -5
- package/lib/table/table-database.d.ts +10 -10
- package/lib/table/table-datasource.d.ts +17 -17
- package/lib/table/table-model.interface.d.ts +28 -28
- package/lib/table/table.component.d.ts +40 -40
- package/lib/table/table.module.d.ts +20 -20
- package/lib/tool/index.d.ts +2 -2
- package/lib/tool/shared/index.d.ts +5 -5
- package/lib/tool/shared/tool-component.d.ts +2 -2
- package/lib/tool/shared/tool.interface.d.ts +18 -18
- package/lib/tool/shared/tool.service.d.ts +30 -30
- package/lib/tool/shared/toolbox.d.ts +95 -95
- package/lib/tool/shared/toolbox.enums.d.ts +5 -5
- package/lib/tool/tool.module.d.ts +10 -10
- package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
- package/lib/tool/toolbox/toolbox.component.d.ts +127 -127
- package/lib/tool/toolbox/toolbox.module.d.ts +13 -13
- package/lib/widget/index.d.ts +2 -2
- package/lib/widget/shared/index.d.ts +3 -3
- package/lib/widget/shared/widget.d.ts +4 -4
- package/lib/widget/shared/widget.interfaces.d.ts +12 -12
- package/lib/widget/shared/widget.service.d.ts +10 -10
- package/lib/widget/widget-outlet/widget-outlet.component.d.ts +71 -71
- package/lib/widget/widget-outlet/widget-outlet.module.d.ts +12 -12
- package/lib/widget/widget.module.d.ts +8 -8
- package/lib/workspace/index.d.ts +3 -3
- package/lib/workspace/shared/index.d.ts +3 -3
- package/lib/workspace/shared/store.d.ts +20 -20
- package/lib/workspace/shared/workspace.d.ts +108 -108
- package/lib/workspace/shared/workspace.interfaces.d.ts +11 -11
- package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +39 -39
- package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +12 -12
- package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -57
- package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +12 -12
- package/lib/workspace/workspace.module.d.ts +9 -9
- package/package.json +3 -3
- package/public_api.d.ts +70 -70
- package/style/common.theming.scss +12 -12
- package/style/partial/action.scss +18 -18
- package/style/partial/common.variables.scss +8 -8
|
@@ -1,255 +1,255 @@
|
|
|
1
|
-
import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import { ActionStore } from '../../action';
|
|
5
|
-
import { ToolboxColor } from '../shared/toolbox.enums';
|
|
6
|
-
import { toolSlideInOut } from './toolbox.animation';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
import * as i2 from "../../action/actionbar/actionbar.component";
|
|
10
|
-
import * as i3 from "../../dynamic-component/dynamic-outlet/dynamic-outlet.component";
|
|
11
|
-
function ToolboxComponent_igo_actionbar_0_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
-
i0.ɵɵelement(0, "igo-actionbar", 2);
|
|
13
|
-
i0.ɵɵpipe(1, "async");
|
|
14
|
-
i0.ɵɵpipe(2, "async");
|
|
15
|
-
i0.ɵɵpipe(3, "async");
|
|
16
|
-
} if (rf & 2) {
|
|
17
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
18
|
-
i0.ɵɵproperty("store", ctx_r0.actionStore)("withIcon", true)("withTitle", i0.ɵɵpipeBind1(1, 6, ctx_r0.toolbarWithTitle$))("withTooltip", i0.ɵɵpipeBind1(2, 8, ctx_r0.toolbarWithTitle$) === false)("scrollActive", i0.ɵɵpipeBind1(3, 10, ctx_r0.toolbarWithTitle$))("horizontal", false);
|
|
19
|
-
} }
|
|
20
|
-
const _c0 = function (a0, a1) { return { "igo-tool-container-with-toolbar": a0, "igo-tool-container-with-animation": a1 }; };
|
|
21
|
-
function ToolboxComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
|
23
|
-
i0.ɵɵelementStart(0, "div", 3);
|
|
24
|
-
i0.ɵɵlistener("@toolSlideInOut.start", function ToolboxComponent_div_2_Template_div_animation_toolSlideInOut_start_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onAnimationStart()); })("@toolSlideInOut.done", function ToolboxComponent_div_2_Template_div_animation_toolSlideInOut_done_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onAnimationComplete()); });
|
|
25
|
-
i0.ɵɵpipe(1, "async");
|
|
26
|
-
i0.ɵɵelement(2, "igo-dynamic-outlet", 4);
|
|
27
|
-
i0.ɵɵelementEnd();
|
|
28
|
-
} if (rf & 2) {
|
|
29
|
-
const tool_r2 = ctx.ngIf;
|
|
30
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
31
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(6, _c0, !ctx_r1.actionStore.empty, ctx_r1.animate))("@toolSlideInOut", i0.ɵɵpipeBind1(1, 4, ctx_r1.animation$));
|
|
32
|
-
i0.ɵɵadvance(2);
|
|
33
|
-
i0.ɵɵproperty("component", tool_r2.component)("inputs", ctx_r1.getToolInputs(tool_r2));
|
|
34
|
-
} }
|
|
35
|
-
export class ToolboxComponent {
|
|
36
|
-
constructor() {
|
|
37
|
-
/**
|
|
38
|
-
* Observable of the active tool
|
|
39
|
-
*/
|
|
40
|
-
this.activeTool$ = new BehaviorSubject(undefined);
|
|
41
|
-
/**
|
|
42
|
-
* Store of actions that toggle tools
|
|
43
|
-
*/
|
|
44
|
-
this.actionStore = new ActionStore([]);
|
|
45
|
-
/**
|
|
46
|
-
* Observable of he anmation state
|
|
47
|
-
*/
|
|
48
|
-
this.animation$ = new BehaviorSubject('none');
|
|
49
|
-
/**
|
|
50
|
-
* Observable of the toolbar
|
|
51
|
-
*/
|
|
52
|
-
this.toolbar$ = new BehaviorSubject([]);
|
|
53
|
-
/**
|
|
54
|
-
* Whether the Toolbar should display actions' titles
|
|
55
|
-
*/
|
|
56
|
-
this.toolbarWithTitle$ = this.activeTool$.pipe(map((tool) => tool === undefined));
|
|
57
|
-
/**
|
|
58
|
-
* Observable of the ongoing animation. This is useful when
|
|
59
|
-
* multiple animations are triggered at once i.e. when the user clicks
|
|
60
|
-
* too fast on different actions
|
|
61
|
-
*/
|
|
62
|
-
this.animating$ = new BehaviorSubject(false);
|
|
63
|
-
/**
|
|
64
|
-
* Whether the toolbox should animate the first tool entering
|
|
65
|
-
*/
|
|
66
|
-
this.animate = false;
|
|
67
|
-
/**
|
|
68
|
-
* Color of Toolbox
|
|
69
|
-
*/
|
|
70
|
-
this.color = ToolboxColor.White;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* @ignore
|
|
74
|
-
*/
|
|
75
|
-
get classColorGrey() {
|
|
76
|
-
return this.color === ToolboxColor.Grey;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* @ignore
|
|
80
|
-
*/
|
|
81
|
-
get classColorPrimary() {
|
|
82
|
-
return this.color === ToolboxColor.Primary;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Initialize the toolbar and subscribe to the active tool
|
|
86
|
-
* @internal
|
|
87
|
-
*/
|
|
88
|
-
ngOnInit() {
|
|
89
|
-
this.toolbar$$ = this.toolbox.toolbar$.subscribe((toolbar) => this.onToolbarChange(toolbar));
|
|
90
|
-
this.activeTool$$ = this.toolbox.activeTool$.subscribe((tool) => this.onActiveToolChange(tool));
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Unsubscribe to the active tool and destroy the action store
|
|
94
|
-
* @internal
|
|
95
|
-
*/
|
|
96
|
-
ngOnDestroy() {
|
|
97
|
-
this.toolbar$$.unsubscribe();
|
|
98
|
-
this.activeTool$$.unsubscribe();
|
|
99
|
-
this.actionStore.destroy();
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Track the starting animation
|
|
103
|
-
* @internal
|
|
104
|
-
*/
|
|
105
|
-
onAnimationStart() {
|
|
106
|
-
this.animating$.next(true);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Untrack the completed animation
|
|
110
|
-
* @internal
|
|
111
|
-
*/
|
|
112
|
-
onAnimationComplete() {
|
|
113
|
-
this.animating$.next(false);
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Return a tool's inputs
|
|
117
|
-
* @param tool Tool
|
|
118
|
-
* @returns Tool inputs
|
|
119
|
-
* @internal
|
|
120
|
-
*/
|
|
121
|
-
getToolInputs(tool) {
|
|
122
|
-
return tool.options || {};
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Initialize an action store
|
|
126
|
-
* @param toolbar Toolbar
|
|
127
|
-
*/
|
|
128
|
-
onToolbarChange(toolbar) {
|
|
129
|
-
this.setToolbar(toolbar);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Activate a tool and trigger an animation or not
|
|
133
|
-
* @param tool Tool to activate
|
|
134
|
-
*/
|
|
135
|
-
onActiveToolChange(tool) {
|
|
136
|
-
if (!this.animate) {
|
|
137
|
-
this.setActiveTool(tool);
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
this.onAnimate(() => this.setActiveTool(tool));
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Set the active tool
|
|
144
|
-
* @param tool Tool to activate
|
|
145
|
-
*/
|
|
146
|
-
setActiveTool(tool) {
|
|
147
|
-
if (tool === undefined) {
|
|
148
|
-
this.actionStore.state.updateAll({ active: false });
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
const action = this.actionStore.get(tool.name);
|
|
152
|
-
if (action !== undefined) {
|
|
153
|
-
this.actionStore.state.update(action, { active: true }, true);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
this.activeTool$.next(tool);
|
|
157
|
-
if (this.animate) {
|
|
158
|
-
this.animation$.next('enter');
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Initialize the toolbar
|
|
163
|
-
*/
|
|
164
|
-
setToolbar(toolbar) {
|
|
165
|
-
const actions = toolbar.reduce((acc, toolName) => {
|
|
166
|
-
const tool = this.toolbox.getTool(toolName);
|
|
167
|
-
if (tool === undefined) {
|
|
168
|
-
return acc;
|
|
169
|
-
}
|
|
170
|
-
acc.push({
|
|
171
|
-
id: tool.name,
|
|
172
|
-
title: tool.title,
|
|
173
|
-
icon: tool.icon,
|
|
174
|
-
// iconImage: tool.iconImage,
|
|
175
|
-
tooltip: tool.tooltip,
|
|
176
|
-
args: [tool, this.toolbox],
|
|
177
|
-
handler: (_tool, _toolbox) => {
|
|
178
|
-
_toolbox.activateTool(_tool.name);
|
|
179
|
-
},
|
|
180
|
-
ngClass: (_tool, _toolbox) => {
|
|
181
|
-
return this.toolbox.activeTool$.pipe(map((activeTool) => {
|
|
182
|
-
let toolActivated = false;
|
|
183
|
-
if (activeTool !== undefined && _tool.name === activeTool.name) {
|
|
184
|
-
toolActivated = true;
|
|
185
|
-
}
|
|
186
|
-
let childrenToolActivated = false;
|
|
187
|
-
if (activeTool !== undefined &&
|
|
188
|
-
_tool.name === activeTool.parent) {
|
|
189
|
-
childrenToolActivated = true;
|
|
190
|
-
}
|
|
191
|
-
return {
|
|
192
|
-
'tool-activated': toolActivated,
|
|
193
|
-
'children-tool-activated': childrenToolActivated
|
|
194
|
-
};
|
|
195
|
-
}));
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
return acc;
|
|
199
|
-
}, []);
|
|
200
|
-
this.actionStore.load(actions);
|
|
201
|
-
this.toolbar$.next(toolbar);
|
|
202
|
-
}
|
|
203
|
-
/**
|
|
204
|
-
* Observe the ongoing animation and ignore any incoming animation
|
|
205
|
-
* while one is still ongoing.
|
|
206
|
-
* @param callback Callback to execute when the animation completes
|
|
207
|
-
*/
|
|
208
|
-
onAnimate(callback) {
|
|
209
|
-
this.unAnimate();
|
|
210
|
-
this.animating$$ = this.animating$.subscribe((animation) => {
|
|
211
|
-
if (!animation) {
|
|
212
|
-
callback.call(this);
|
|
213
|
-
this.unAnimate();
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Stop observing an animation when it's complete
|
|
219
|
-
*/
|
|
220
|
-
unAnimate() {
|
|
221
|
-
if (this.animating$$) {
|
|
222
|
-
this.animating$$.unsubscribe();
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
ToolboxComponent.ɵfac = function ToolboxComponent_Factory(t) { return new (t || ToolboxComponent)(); };
|
|
227
|
-
ToolboxComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToolboxComponent, selectors: [["igo-toolbox"]], hostVars: 4, hostBindings: function ToolboxComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
228
|
-
i0.ɵɵclassProp("color-grey", ctx.classColorGrey)("color-primary", ctx.classColorPrimary);
|
|
229
|
-
} }, inputs: { toolbox: "toolbox", animate: "animate", color: "color" }, decls: 4, vars: 6, consts: [[3, "store", "withIcon", "withTitle", "withTooltip", "scrollActive", "horizontal", 4, "ngIf"], ["class", "igo-tool-container", 3, "ngClass", 4, "ngIf"], [3, "store", "withIcon", "withTitle", "withTooltip", "scrollActive", "horizontal"], [1, "igo-tool-container", 3, "ngClass"], [3, "component", "inputs"]], template: function ToolboxComponent_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
-
i0.ɵɵtemplate(0, ToolboxComponent_igo_actionbar_0_Template, 4, 12, "igo-actionbar", 0);
|
|
231
|
-
i0.ɵɵpipe(1, "async");
|
|
232
|
-
i0.ɵɵtemplate(2, ToolboxComponent_div_2_Template, 3, 9, "div", 1);
|
|
233
|
-
i0.ɵɵpipe(3, "async");
|
|
234
|
-
} if (rf & 2) {
|
|
235
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 2, ctx.toolbar$).length > 0);
|
|
236
|
-
i0.ɵɵadvance(2);
|
|
237
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 4, ctx.activeTool$));
|
|
238
|
-
} }, dependencies: [i1.NgClass, i1.NgIf, i2.ActionbarComponent, i3.DynamicOutletComponent, i1.AsyncPipe], styles: ["[_nghost-%COMP%]{display:block;position:relative;overflow:hidden;width:100%;height:100%}.igo-tool-container[_ngcontent-%COMP%]{position:absolute;inset:0}.igo-tool-container-with-animation[_ngcontent-%COMP%]{transform:translate3d(100%,0,0)}.igo-tool-container-with-toolbar[_ngcontent-%COMP%]{left:50px}igo-actionbar[_ngcontent-%COMP%]{height:100%}igo-actionbar.with-title[_ngcontent-%COMP%]{width:100%;overflow:auto}igo-actionbar[_ngcontent-%COMP%]:not(.with-title){width:48px;overflow:hidden;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-actionbar[_ngcontent-%COMP%]:not(.with-title){overflow:auto}}igo-dynamic-outlet[_ngcontent-%COMP%]{overflow:auto}"], data: { animation: [toolSlideInOut()] }, changeDetection: 0 });
|
|
239
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolboxComponent, [{
|
|
240
|
-
type: Component,
|
|
241
|
-
args: [{ selector: 'igo-toolbox', animations: [toolSlideInOut()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-actionbar\
|
|
242
|
-
}], null, { toolbox: [{
|
|
243
|
-
type: Input
|
|
244
|
-
}], animate: [{
|
|
245
|
-
type: Input
|
|
246
|
-
}], color: [{
|
|
247
|
-
type: Input
|
|
248
|
-
}], classColorGrey: [{
|
|
249
|
-
type: HostBinding,
|
|
250
|
-
args: ['class.color-grey']
|
|
251
|
-
}], classColorPrimary: [{
|
|
252
|
-
type: HostBinding,
|
|
253
|
-
args: ['class.color-primary']
|
|
254
|
-
}] }); })();
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi90b29sL3Rvb2xib3gvdG9vbGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi90b29sL3Rvb2xib3gvdG9vbGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxXQUFXLEVBQ1gsdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZ0IsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQVUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztJQ2hCckQsbUNBUWdCOzs7Ozs7SUFOZCwwQ0FBcUIsa0JBQUEsNkRBQUEseUVBQUEsaUVBQUEscUJBQUE7Ozs7O0lBUXZCLDhCQU1pRDtJQUQvQyxtTUFBeUIsZUFBQSx5QkFBa0IsQ0FBQSxJQUFDLG9MQUNwQixlQUFBLDRCQUFxQixDQUFBLElBREQ7O0lBRzVDLHdDQUdxQjtJQUV2QixpQkFBTTs7OztJQVZKLCtGQUFpSCw0REFBQTtJQU0vRyxlQUE0QjtJQUE1Qiw2Q0FBNEIseUNBQUE7O0FETWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFQN0I7UUFRRTs7V0FFRztRQUNILGdCQUFXLEdBQTBCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBFOztXQUVHO1FBQ0gsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxD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QUFTLEVBQUUsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQzs7Z0ZBbFBVLGdCQUFnQjttRUFBaEIsZ0JBQWdCOzs7UUN6QjdCLHNGQVFnQjs7UUFFaEIsaUVBYU07OztRQXRCSCxvRUFBbUM7UUFVbkMsZUFBMEI7UUFBMUIsNERBQTBCO283QkRXZixDQUFDLGNBQWMsRUFBRSxDQUFDO3VGQUduQixnQkFBZ0I7Y0FQNUIsU0FBUzsyQkFDRSxhQUFhLGNBR1gsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxtQkFDYix1QkFBdUIsQ0FBQyxNQUFNO2dCQXVEdEMsT0FBTztrQkFBZixLQUFLO1lBS0csT0FBTztrQkFBZixLQUFLO1lBS0csS0FBSztrQkFBYixLQUFLO1lBTUYsY0FBYztrQkFEakIsV0FBVzttQkFBQyxrQkFBa0I7WUFTM0IsaUJBQWlCO2tCQURwQixXQUFXO21CQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uU3RvcmUgfSBmcm9tICcuLi8uLi9hY3Rpb24nO1xyXG5pbXBvcnQgeyBUb29sIH0gZnJvbSAnLi4vc2hhcmVkL3Rvb2wuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVG9vbGJveENvbG9yIH0gZnJvbSAnLi4vc2hhcmVkL3Rvb2xib3guZW51bXMnO1xyXG5pbXBvcnQgeyBUb29sYm94IH0gZnJvbSAnLi4vc2hhcmVkL3Rvb2xib3gnO1xyXG5pbXBvcnQgeyB0b29sU2xpZGVJbk91dCB9IGZyb20gJy4vdG9vbGJveC5hbmltYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tdG9vbGJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICd0b29sYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsndG9vbGJveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFt0b29sU2xpZGVJbk91dCgpXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbGJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgdG9vbFxyXG4gICAqL1xyXG4gIGFjdGl2ZVRvb2wkOiBCZWhhdmlvclN1YmplY3Q8VG9vbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHVuZGVmaW5lZCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3JlIG9mIGFjdGlvbnMgdGhhdCB0b2dnbGUgdG9vbHNcclxuICAgKi9cclxuICBhY3Rpb25TdG9yZTogQWN0aW9uU3RvcmUgPSBuZXcgQWN0aW9uU3RvcmUoW10pO1xyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIG9mIGhlIGFubWF0aW9uIHN0YXRlXHJcbiAgICovXHJcbiAgYW5pbWF0aW9uJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCdub25lJyk7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgb2YgdGhlIHRvb2xiYXJcclxuICAgKi9cclxuICB0b29sYmFyJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBUb29sYmFyIHNob3VsZCBkaXNwbGF5IGFjdGlvbnMnIHRpdGxlc1xyXG4gICAqL1xyXG4gIHRvb2xiYXJXaXRoVGl0bGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5hY3RpdmVUb29sJC5waXBlKFxyXG4gICAgbWFwKCh0b29sOiBUb29sIHwgdW5kZWZpbmVkKSA9PiB0b29sID09PSB1bmRlZmluZWQpXHJcbiAgKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBhY3RpdmUgdG9vbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWN0aXZlVG9vbCQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgdG9vbGJhclxyXG4gICAqL1xyXG4gIHByaXZhdGUgdG9vbGJhciQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgb2YgdGhlIG9uZ29pbmcgYW5pbWF0aW9uLiBUaGlzIGlzIHVzZWZ1bCB3aGVuXHJcbiAgICogbXVsdGlwbGUgYW5pbWF0aW9ucyBhcmUgdHJpZ2dlcmVkIGF0IG9uY2UgaS5lLiB3aGVuIHRoZSB1c2VyIGNsaWNrc1xyXG4gICAqIHRvbyBmYXN0IG9uIGRpZmZlcmVudCBhY3Rpb25zXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhbmltYXRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgb25nb2luZyBhbmltYXRpb25cclxuICAgKi9cclxuICBwcml2YXRlIGFuaW1hdGluZyQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvb2xib3hcclxuICAgKi9cclxuICBASW5wdXQoKSB0b29sYm94OiBUb29sYm94O1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSB0b29sYm94IHNob3VsZCBhbmltYXRlIHRoZSBmaXJzdCB0b29sIGVudGVyaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgYW5pbWF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBDb2xvciBvZiBUb29sYm94XHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sb3I6IFRvb2xib3hDb2xvciA9IFRvb2xib3hDb2xvci5XaGl0ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY29sb3ItZ3JleScpXHJcbiAgZ2V0IGNsYXNzQ29sb3JHcmV5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sb3IgPT09IFRvb2xib3hDb2xvci5HcmV5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY29sb3ItcHJpbWFyeScpXHJcbiAgZ2V0IGNsYXNzQ29sb3JQcmltYXJ5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sb3IgPT09IFRvb2xib3hDb2xvci5QcmltYXJ5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgdG9vbGJhciBhbmQgc3Vic2NyaWJlIHRvIHRoZSBhY3RpdmUgdG9vbFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50b29sYmFyJCQgPSB0aGlzLnRvb2xib3gudG9vbGJhciQuc3Vic2NyaWJlKCh0b29sYmFyOiBzdHJpbmdbXSkgPT5cclxuICAgICAgdGhpcy5vblRvb2xiYXJDaGFuZ2UodG9vbGJhcilcclxuICAgICk7XHJcbiAgICB0aGlzLmFjdGl2ZVRvb2wkJCA9IHRoaXMudG9vbGJveC5hY3RpdmVUb29sJC5zdWJzY3JpYmUoKHRvb2w6IFRvb2wpID0+XHJcbiAgICAgIHRoaXMub25BY3RpdmVUb29sQ2hhbmdlKHRvb2wpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5zdWJzY3JpYmUgdG8gdGhlIGFjdGl2ZSB0b29sIGFuZCBkZXN0cm95IHRoZSBhY3Rpb24gc3RvcmVcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudG9vbGJhciQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmFjdGl2ZVRvb2wkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5hY3Rpb25TdG9yZS5kZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmFjayB0aGUgc3RhcnRpbmcgYW5pbWF0aW9uXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgb25BbmltYXRpb25TdGFydCgpIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nJC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW50cmFjayB0aGUgY29tcGxldGVkIGFuaW1hdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG9uQW5pbWF0aW9uQ29tcGxldGUoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyQubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gYSB0b29sJ3MgaW5wdXRzXHJcbiAgICogQHBhcmFtIHRvb2wgVG9vbFxyXG4gICAqIEByZXR1cm5zIFRvb2wgaW5wdXRzXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0VG9vbElucHV0cyh0b29sOiBUb29sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICByZXR1cm4gdG9vbC5vcHRpb25zIHx8IHt9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSBhbiBhY3Rpb24gc3RvcmVcclxuICAgKiBAcGFyYW0gdG9vbGJhciBUb29sYmFyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblRvb2xiYXJDaGFuZ2UodG9vbGJhcjogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuc2V0VG9vbGJhcih0b29sYmFyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2YXRlIGEgdG9vbCBhbmQgdHJpZ2dlciBhbiBhbmltYXRpb24gb3Igbm90XHJcbiAgICogQHBhcmFtIHRvb2wgVG9vbCB0byBhY3RpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25BY3RpdmVUb29sQ2hhbmdlKHRvb2w6IFRvb2wpIHtcclxuICAgIGlmICghdGhpcy5hbmltYXRlKSB7XHJcbiAgICAgIHRoaXMuc2V0QWN0aXZlVG9vbCh0b29sKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkFuaW1hdGUoKCkgPT4gdGhpcy5zZXRBY3RpdmVUb29sKHRvb2wpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgYWN0aXZlIHRvb2xcclxuICAgKiBAcGFyYW0gdG9vbCBUb29sIHRvIGFjdGl2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRBY3RpdmVUb29sKHRvb2w6IFRvb2wgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0b29sID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5hY3Rpb25TdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBhY3RpdmU6IGZhbHNlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25TdG9yZS5nZXQodG9vbC5uYW1lKTtcclxuICAgICAgaWYgKGFjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25TdG9yZS5zdGF0ZS51cGRhdGUoYWN0aW9uLCB7IGFjdGl2ZTogdHJ1ZSB9LCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWN0aXZlVG9vbCQubmV4dCh0b29sKTtcclxuICAgIGlmICh0aGlzLmFuaW1hdGUpIHtcclxuICAgICAgdGhpcy5hbmltYXRpb24kLm5leHQoJ2VudGVyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSB0b29sYmFyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRUb29sYmFyKHRvb2xiYXI6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBhY3Rpb25zID0gdG9vbGJhci5yZWR1Y2UoKGFjYzogQWN0aW9uW10sIHRvb2xOYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgdG9vbCA9IHRoaXMudG9vbGJveC5nZXRUb29sKHRvb2xOYW1lKTtcclxuICAgICAgaWYgKHRvb2wgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGFjYy5wdXNoKHtcclxuICAgICAgICBpZDogdG9vbC5uYW1lLFxyXG4gICAgICAgIHRpdGxlOiB0b29sLnRpdGxlLFxyXG4gICAgICAgIGljb246IHRvb2wuaWNvbixcclxuICAgICAgICAvLyBpY29uSW1hZ2U6IHRvb2wuaWNvbkltYWdlLFxyXG4gICAgICAgIHRvb2x0aXA6IHRvb2wudG9vbHRpcCxcclxuICAgICAgICBhcmdzOiBbdG9vbCwgdGhpcy50b29sYm94XSxcclxuICAgICAgICBoYW5kbGVyOiAoX3Rvb2w6IFRvb2wsIF90b29sYm94OiBUb29sYm94KSA9PiB7XHJcbiAgICAgICAgICBfdG9vbGJveC5hY3RpdmF0ZVRvb2woX3Rvb2wubmFtZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBuZ0NsYXNzOiAoX3Rvb2w6IFRvb2wsIF90b29sYm94OiBUb29sYm94KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy50b29sYm94LmFjdGl2ZVRvb2wkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoYWN0aXZlVG9vbDogVG9vbCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCB0b29sQWN0aXZhdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgaWYgKGFjdGl2ZVRvb2wgIT09IHVuZGVmaW5lZCAmJiBfdG9vbC5uYW1lID09PSBhY3RpdmVUb29sLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgIHRvb2xBY3RpdmF0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuVG9vbEFjdGl2YXRlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGFjdGl2ZVRvb2wgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICAgICAgICAgX3Rvb2wubmFtZSA9PT0gYWN0aXZlVG9vbC5wYXJlbnRcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuVG9vbEFjdGl2YXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgJ3Rvb2wtYWN0aXZhdGVkJzogdG9vbEFjdGl2YXRlZCxcclxuICAgICAgICAgICAgICAgICdjaGlsZHJlbi10b29sLWFjdGl2YXRlZCc6IGNoaWxkcmVuVG9vbEFjdGl2YXRlZFxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCBbXSk7XHJcbiAgICB0aGlzLmFjdGlvblN0b3JlLmxvYWQoYWN0aW9ucyk7XHJcbiAgICB0aGlzLnRvb2xiYXIkLm5leHQodG9vbGJhcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZlIHRoZSBvbmdvaW5nIGFuaW1hdGlvbiBhbmQgaWdub3JlIGFueSBpbmNvbWluZyBhbmltYXRpb25cclxuICAgKiB3aGlsZSBvbmUgaXMgc3RpbGwgb25nb2luZy5cclxuICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGJhY2sgdG8gZXhlY3V0ZSB3aGVuIHRoZSBhbmltYXRpb24gY29tcGxldGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvbkFuaW1hdGUoY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMudW5BbmltYXRlKCk7XHJcbiAgICB0aGlzLmFuaW1hdGluZyQkID0gdGhpcy5hbmltYXRpbmckLnN1YnNjcmliZSgoYW5pbWF0aW9uOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmICghYW5pbWF0aW9uKSB7XHJcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTtcclxuICAgICAgICB0aGlzLnVuQW5pbWF0ZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agb2JzZXJ2aW5nIGFuIGFuaW1hdGlvbiB3aGVuIGl0J3MgY29tcGxldGVcclxuICAgKi9cclxuICBwcml2YXRlIHVuQW5pbWF0ZSgpIHtcclxuICAgIGlmICh0aGlzLmFuaW1hdGluZyQkKSB7XHJcbiAgICAgIHRoaXMuYW5pbWF0aW5nJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGlnby1hY3Rpb25iYXJcclxuICAqbmdJZj1cIih0b29sYmFyJCB8IGFzeW5jKS5sZW5ndGggPiAwXCJcclxuICBbc3RvcmVdPVwiYWN0aW9uU3RvcmVcIlxyXG4gIFt3aXRoSWNvbl09XCJ0cnVlXCJcclxuICBbd2l0aFRpdGxlXT1cInRvb2xiYXJXaXRoVGl0bGUkIHwgYXN5bmNcIlxyXG4gIFt3aXRoVG9vbHRpcF09XCIodG9vbGJhcldpdGhUaXRsZSQgfCBhc3luYykgPT09IGZhbHNlXCJcclxuICBbc2Nyb2xsQWN0aXZlXT1cInRvb2xiYXJXaXRoVGl0bGUkIHwgYXN5bmNcIlxyXG4gIFtob3Jpem9udGFsXT1cImZhbHNlXCI+XHJcbjwvaWdvLWFjdGlvbmJhcj5cclxuXHJcbjxkaXZcclxuICAqbmdJZj1cImFjdGl2ZVRvb2wkIHwgYXN5bmMgYXMgdG9vbFwiXHJcbiAgY2xhc3M9XCJpZ28tdG9vbC1jb250YWluZXJcIlxyXG4gIFtuZ0NsYXNzXT1cInsnaWdvLXRvb2wtY29udGFpbmVyLXdpdGgtdG9vbGJhcic6ICFhY3Rpb25TdG9yZS5lbXB0eSwgJ2lnby10b29sLWNvbnRhaW5lci13aXRoLWFuaW1hdGlvbic6IGFuaW1hdGV9XCJcclxuICBbQHRvb2xTbGlkZUluT3V0XT1cImFuaW1hdGlvbiQgfCBhc3luY1wiXHJcbiAgKEB0b29sU2xpZGVJbk91dC5zdGFydCk9XCJvbkFuaW1hdGlvblN0YXJ0KClcIlxyXG4gIChAdG9vbFNsaWRlSW5PdXQuZG9uZSk9XCJvbkFuaW1hdGlvbkNvbXBsZXRlKClcIj5cclxuXHJcbiAgPGlnby1keW5hbWljLW91dGxldFxyXG4gICAgW2NvbXBvbmVudF09XCJ0b29sLmNvbXBvbmVudFwiXHJcbiAgICBbaW5wdXRzXT1cImdldFRvb2xJbnB1dHModG9vbClcIj5cclxuICA8L2lnby1keW5hbWljLW91dGxldD5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
|
|
1
|
+
import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import { ActionStore } from '../../action';
|
|
5
|
+
import { ToolboxColor } from '../shared/toolbox.enums';
|
|
6
|
+
import { toolSlideInOut } from './toolbox.animation';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "../../action/actionbar/actionbar.component";
|
|
10
|
+
import * as i3 from "../../dynamic-component/dynamic-outlet/dynamic-outlet.component";
|
|
11
|
+
function ToolboxComponent_igo_actionbar_0_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelement(0, "igo-actionbar", 2);
|
|
13
|
+
i0.ɵɵpipe(1, "async");
|
|
14
|
+
i0.ɵɵpipe(2, "async");
|
|
15
|
+
i0.ɵɵpipe(3, "async");
|
|
16
|
+
} if (rf & 2) {
|
|
17
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
18
|
+
i0.ɵɵproperty("store", ctx_r0.actionStore)("withIcon", true)("withTitle", i0.ɵɵpipeBind1(1, 6, ctx_r0.toolbarWithTitle$))("withTooltip", i0.ɵɵpipeBind1(2, 8, ctx_r0.toolbarWithTitle$) === false)("scrollActive", i0.ɵɵpipeBind1(3, 10, ctx_r0.toolbarWithTitle$))("horizontal", false);
|
|
19
|
+
} }
|
|
20
|
+
const _c0 = function (a0, a1) { return { "igo-tool-container-with-toolbar": a0, "igo-tool-container-with-animation": a1 }; };
|
|
21
|
+
function ToolboxComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
23
|
+
i0.ɵɵelementStart(0, "div", 3);
|
|
24
|
+
i0.ɵɵlistener("@toolSlideInOut.start", function ToolboxComponent_div_2_Template_div_animation_toolSlideInOut_start_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onAnimationStart()); })("@toolSlideInOut.done", function ToolboxComponent_div_2_Template_div_animation_toolSlideInOut_done_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.onAnimationComplete()); });
|
|
25
|
+
i0.ɵɵpipe(1, "async");
|
|
26
|
+
i0.ɵɵelement(2, "igo-dynamic-outlet", 4);
|
|
27
|
+
i0.ɵɵelementEnd();
|
|
28
|
+
} if (rf & 2) {
|
|
29
|
+
const tool_r2 = ctx.ngIf;
|
|
30
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
31
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(6, _c0, !ctx_r1.actionStore.empty, ctx_r1.animate))("@toolSlideInOut", i0.ɵɵpipeBind1(1, 4, ctx_r1.animation$));
|
|
32
|
+
i0.ɵɵadvance(2);
|
|
33
|
+
i0.ɵɵproperty("component", tool_r2.component)("inputs", ctx_r1.getToolInputs(tool_r2));
|
|
34
|
+
} }
|
|
35
|
+
export class ToolboxComponent {
|
|
36
|
+
constructor() {
|
|
37
|
+
/**
|
|
38
|
+
* Observable of the active tool
|
|
39
|
+
*/
|
|
40
|
+
this.activeTool$ = new BehaviorSubject(undefined);
|
|
41
|
+
/**
|
|
42
|
+
* Store of actions that toggle tools
|
|
43
|
+
*/
|
|
44
|
+
this.actionStore = new ActionStore([]);
|
|
45
|
+
/**
|
|
46
|
+
* Observable of he anmation state
|
|
47
|
+
*/
|
|
48
|
+
this.animation$ = new BehaviorSubject('none');
|
|
49
|
+
/**
|
|
50
|
+
* Observable of the toolbar
|
|
51
|
+
*/
|
|
52
|
+
this.toolbar$ = new BehaviorSubject([]);
|
|
53
|
+
/**
|
|
54
|
+
* Whether the Toolbar should display actions' titles
|
|
55
|
+
*/
|
|
56
|
+
this.toolbarWithTitle$ = this.activeTool$.pipe(map((tool) => tool === undefined));
|
|
57
|
+
/**
|
|
58
|
+
* Observable of the ongoing animation. This is useful when
|
|
59
|
+
* multiple animations are triggered at once i.e. when the user clicks
|
|
60
|
+
* too fast on different actions
|
|
61
|
+
*/
|
|
62
|
+
this.animating$ = new BehaviorSubject(false);
|
|
63
|
+
/**
|
|
64
|
+
* Whether the toolbox should animate the first tool entering
|
|
65
|
+
*/
|
|
66
|
+
this.animate = false;
|
|
67
|
+
/**
|
|
68
|
+
* Color of Toolbox
|
|
69
|
+
*/
|
|
70
|
+
this.color = ToolboxColor.White;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* @ignore
|
|
74
|
+
*/
|
|
75
|
+
get classColorGrey() {
|
|
76
|
+
return this.color === ToolboxColor.Grey;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @ignore
|
|
80
|
+
*/
|
|
81
|
+
get classColorPrimary() {
|
|
82
|
+
return this.color === ToolboxColor.Primary;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Initialize the toolbar and subscribe to the active tool
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
ngOnInit() {
|
|
89
|
+
this.toolbar$$ = this.toolbox.toolbar$.subscribe((toolbar) => this.onToolbarChange(toolbar));
|
|
90
|
+
this.activeTool$$ = this.toolbox.activeTool$.subscribe((tool) => this.onActiveToolChange(tool));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Unsubscribe to the active tool and destroy the action store
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
ngOnDestroy() {
|
|
97
|
+
this.toolbar$$.unsubscribe();
|
|
98
|
+
this.activeTool$$.unsubscribe();
|
|
99
|
+
this.actionStore.destroy();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Track the starting animation
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
onAnimationStart() {
|
|
106
|
+
this.animating$.next(true);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Untrack the completed animation
|
|
110
|
+
* @internal
|
|
111
|
+
*/
|
|
112
|
+
onAnimationComplete() {
|
|
113
|
+
this.animating$.next(false);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Return a tool's inputs
|
|
117
|
+
* @param tool Tool
|
|
118
|
+
* @returns Tool inputs
|
|
119
|
+
* @internal
|
|
120
|
+
*/
|
|
121
|
+
getToolInputs(tool) {
|
|
122
|
+
return tool.options || {};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Initialize an action store
|
|
126
|
+
* @param toolbar Toolbar
|
|
127
|
+
*/
|
|
128
|
+
onToolbarChange(toolbar) {
|
|
129
|
+
this.setToolbar(toolbar);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Activate a tool and trigger an animation or not
|
|
133
|
+
* @param tool Tool to activate
|
|
134
|
+
*/
|
|
135
|
+
onActiveToolChange(tool) {
|
|
136
|
+
if (!this.animate) {
|
|
137
|
+
this.setActiveTool(tool);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
this.onAnimate(() => this.setActiveTool(tool));
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Set the active tool
|
|
144
|
+
* @param tool Tool to activate
|
|
145
|
+
*/
|
|
146
|
+
setActiveTool(tool) {
|
|
147
|
+
if (tool === undefined) {
|
|
148
|
+
this.actionStore.state.updateAll({ active: false });
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
const action = this.actionStore.get(tool.name);
|
|
152
|
+
if (action !== undefined) {
|
|
153
|
+
this.actionStore.state.update(action, { active: true }, true);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
this.activeTool$.next(tool);
|
|
157
|
+
if (this.animate) {
|
|
158
|
+
this.animation$.next('enter');
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Initialize the toolbar
|
|
163
|
+
*/
|
|
164
|
+
setToolbar(toolbar) {
|
|
165
|
+
const actions = toolbar.reduce((acc, toolName) => {
|
|
166
|
+
const tool = this.toolbox.getTool(toolName);
|
|
167
|
+
if (tool === undefined) {
|
|
168
|
+
return acc;
|
|
169
|
+
}
|
|
170
|
+
acc.push({
|
|
171
|
+
id: tool.name,
|
|
172
|
+
title: tool.title,
|
|
173
|
+
icon: tool.icon,
|
|
174
|
+
// iconImage: tool.iconImage,
|
|
175
|
+
tooltip: tool.tooltip,
|
|
176
|
+
args: [tool, this.toolbox],
|
|
177
|
+
handler: (_tool, _toolbox) => {
|
|
178
|
+
_toolbox.activateTool(_tool.name);
|
|
179
|
+
},
|
|
180
|
+
ngClass: (_tool, _toolbox) => {
|
|
181
|
+
return this.toolbox.activeTool$.pipe(map((activeTool) => {
|
|
182
|
+
let toolActivated = false;
|
|
183
|
+
if (activeTool !== undefined && _tool.name === activeTool.name) {
|
|
184
|
+
toolActivated = true;
|
|
185
|
+
}
|
|
186
|
+
let childrenToolActivated = false;
|
|
187
|
+
if (activeTool !== undefined &&
|
|
188
|
+
_tool.name === activeTool.parent) {
|
|
189
|
+
childrenToolActivated = true;
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
'tool-activated': toolActivated,
|
|
193
|
+
'children-tool-activated': childrenToolActivated
|
|
194
|
+
};
|
|
195
|
+
}));
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
return acc;
|
|
199
|
+
}, []);
|
|
200
|
+
this.actionStore.load(actions);
|
|
201
|
+
this.toolbar$.next(toolbar);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Observe the ongoing animation and ignore any incoming animation
|
|
205
|
+
* while one is still ongoing.
|
|
206
|
+
* @param callback Callback to execute when the animation completes
|
|
207
|
+
*/
|
|
208
|
+
onAnimate(callback) {
|
|
209
|
+
this.unAnimate();
|
|
210
|
+
this.animating$$ = this.animating$.subscribe((animation) => {
|
|
211
|
+
if (!animation) {
|
|
212
|
+
callback.call(this);
|
|
213
|
+
this.unAnimate();
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Stop observing an animation when it's complete
|
|
219
|
+
*/
|
|
220
|
+
unAnimate() {
|
|
221
|
+
if (this.animating$$) {
|
|
222
|
+
this.animating$$.unsubscribe();
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
ToolboxComponent.ɵfac = function ToolboxComponent_Factory(t) { return new (t || ToolboxComponent)(); };
|
|
227
|
+
ToolboxComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ToolboxComponent, selectors: [["igo-toolbox"]], hostVars: 4, hostBindings: function ToolboxComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
228
|
+
i0.ɵɵclassProp("color-grey", ctx.classColorGrey)("color-primary", ctx.classColorPrimary);
|
|
229
|
+
} }, inputs: { toolbox: "toolbox", animate: "animate", color: "color" }, decls: 4, vars: 6, consts: [[3, "store", "withIcon", "withTitle", "withTooltip", "scrollActive", "horizontal", 4, "ngIf"], ["class", "igo-tool-container", 3, "ngClass", 4, "ngIf"], [3, "store", "withIcon", "withTitle", "withTooltip", "scrollActive", "horizontal"], [1, "igo-tool-container", 3, "ngClass"], [3, "component", "inputs"]], template: function ToolboxComponent_Template(rf, ctx) { if (rf & 1) {
|
|
230
|
+
i0.ɵɵtemplate(0, ToolboxComponent_igo_actionbar_0_Template, 4, 12, "igo-actionbar", 0);
|
|
231
|
+
i0.ɵɵpipe(1, "async");
|
|
232
|
+
i0.ɵɵtemplate(2, ToolboxComponent_div_2_Template, 3, 9, "div", 1);
|
|
233
|
+
i0.ɵɵpipe(3, "async");
|
|
234
|
+
} if (rf & 2) {
|
|
235
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(1, 2, ctx.toolbar$).length > 0);
|
|
236
|
+
i0.ɵɵadvance(2);
|
|
237
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 4, ctx.activeTool$));
|
|
238
|
+
} }, dependencies: [i1.NgClass, i1.NgIf, i2.ActionbarComponent, i3.DynamicOutletComponent, i1.AsyncPipe], styles: ["[_nghost-%COMP%]{display:block;position:relative;overflow:hidden;width:100%;height:100%}.igo-tool-container[_ngcontent-%COMP%]{position:absolute;inset:0}.igo-tool-container-with-animation[_ngcontent-%COMP%]{transform:translate3d(100%,0,0)}.igo-tool-container-with-toolbar[_ngcontent-%COMP%]{left:50px}igo-actionbar[_ngcontent-%COMP%]{height:100%}igo-actionbar.with-title[_ngcontent-%COMP%]{width:100%;overflow:auto}igo-actionbar[_ngcontent-%COMP%]:not(.with-title){width:48px;overflow:hidden;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-actionbar[_ngcontent-%COMP%]:not(.with-title){overflow:auto}}igo-dynamic-outlet[_ngcontent-%COMP%]{overflow:auto}"], data: { animation: [toolSlideInOut()] }, changeDetection: 0 });
|
|
239
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolboxComponent, [{
|
|
240
|
+
type: Component,
|
|
241
|
+
args: [{ selector: 'igo-toolbox', animations: [toolSlideInOut()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<igo-actionbar\n *ngIf=\"(toolbar$ | async).length > 0\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\">\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container\"\n [ngClass]=\"{'igo-tool-container-with-toolbar': !actionStore.empty, 'igo-tool-container-with-animation': animate}\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\">\n\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\">\n </igo-dynamic-outlet>\n\n</div>\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}.igo-tool-container{position:absolute;inset:0}.igo-tool-container-with-animation{transform:translate3d(100%,0,0)}.igo-tool-container-with-toolbar{left:50px}igo-actionbar{height:100%}igo-actionbar.with-title{width:100%;overflow:auto}igo-actionbar:not(.with-title){width:48px;overflow:hidden;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){igo-actionbar:not(.with-title){overflow:auto}}igo-dynamic-outlet{overflow:auto}\n"] }]
|
|
242
|
+
}], null, { toolbox: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], animate: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], color: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], classColorGrey: [{
|
|
249
|
+
type: HostBinding,
|
|
250
|
+
args: ['class.color-grey']
|
|
251
|
+
}], classColorPrimary: [{
|
|
252
|
+
type: HostBinding,
|
|
253
|
+
args: ['class.color-primary']
|
|
254
|
+
}] }); })();
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi90b29sL3Rvb2xib3gvdG9vbGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi90b29sL3Rvb2xib3gvdG9vbGJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxXQUFXLEVBQ1gsdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBZ0IsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQVUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztJQ2hCckQsbUNBUWdCOzs7Ozs7SUFOZCwwQ0FBcUIsa0JBQUEsNkRBQUEseUVBQUEsaUVBQUEscUJBQUE7Ozs7O0lBUXZCLDhCQU1pRDtJQUQvQyxtTUFBeUIsZUFBQSx5QkFBa0IsQ0FBQSxJQUFDLG9MQUNwQixlQUFBLDRCQUFxQixDQUFBLElBREQ7O0lBRzVDLHdDQUdxQjtJQUV2QixpQkFBTTs7OztJQVZKLCtGQUFpSCw0REFBQTtJQU0vRyxlQUE0QjtJQUE1Qiw2Q0FBNEIseUNBQUE7O0FETWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFQN0I7UUFRRTs7V0FFRztRQUNILGdCQUFXLEdBQTBCLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBFOztXQUVHO1FBQ0gsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFL0M7O1dBRUc7UUFDSCxlQUFVLEdBQTRCLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ0gsYUFBUSxHQUE4QixJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5RDs7V0FFRztRQUNILHNCQUFpQixHQUF3QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDNUQsR0FBRyxDQUFDLENBQUMsSUFBc0IsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUNwRCxDQUFDO1FBWUY7Ozs7V0FJRztRQUNLLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVl6RDs7V0FFRztRQUNNLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbEM7O1dBRUc7UUFDTSxVQUFLLEdBQWlCLFlBQVksQ0FBQyxLQUFLLENBQUM7S0FvTG5EO0lBbExDOztPQUVHO0lBQ0gsSUFDSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFpQixFQUFFLEVBQUUsQ0FDckUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FDOUIsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FDcEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1CQUFtQjtRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUMsSUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlLENBQUMsT0FBaUI7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCLENBQUMsSUFBVTtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSyxhQUFhLENBQUMsSUFBc0I7UUFDMUMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3JEO2FBQU07WUFDTCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0MsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQy9EO1NBQ0Y7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVLENBQUMsT0FBaUI7UUFDbEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQWEsRUFBRSxRQUFnQixFQUFFLEVBQUU7WUFDakUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsQ0FBQzthQUNaO1lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDUCxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsNkJBQTZCO2dCQUM3QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUMxQixPQUFPLEVBQUUsQ0FBQyxLQUFXLEVBQUUsUUFBaUIsRUFBRSxFQUFFO29CQUMxQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztnQkFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFXLEVBQUUsUUFBaUIsRUFBRSxFQUFFO29CQUMxQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbEMsR0FBRyxDQUFDLENBQUMsVUFBZ0IsRUFBRSxFQUFFO3dCQUN2QixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7d0JBQzFCLElBQUksVUFBVSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxJQUFJLEVBQUU7NEJBQzlELGFBQWEsR0FBRyxJQUFJLENBQUM7eUJBQ3RCO3dCQUVELElBQUkscUJBQXFCLEdBQUcsS0FBSyxDQUFDO3dCQUNsQyxJQUNFLFVBQVUsS0FBSyxTQUFTOzRCQUN4QixLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQ2hDOzRCQUNBLHFCQUFxQixHQUFHLElBQUksQ0FBQzt5QkFDOUI7d0JBRUQsT0FBTzs0QkFDTCxnQkFBZ0IsRUFBRSxhQUFhOzRCQUMvQix5QkFBeUIsRUFBRSxxQkFBcUI7eUJBQ2pELENBQUM7b0JBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztnQkFDSixDQUFDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFNBQVMsQ0FBQyxRQUFvQjtRQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQWtCLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQzs7Z0ZBbFBVLGdCQUFnQjttRUFBaEIsZ0JBQWdCOzs7UUN6QjdCLHNGQVFnQjs7UUFFaEIsaUVBYU07OztRQXRCSCxvRUFBbUM7UUFVbkMsZUFBMEI7UUFBMUIsNERBQTBCO283QkRXZixDQUFDLGNBQWMsRUFBRSxDQUFDO3VGQUduQixnQkFBZ0I7Y0FQNUIsU0FBUzsyQkFDRSxhQUFhLGNBR1gsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxtQkFDYix1QkFBdUIsQ0FBQyxNQUFNO2dCQXVEdEMsT0FBTztrQkFBZixLQUFLO1lBS0csT0FBTztrQkFBZixLQUFLO1lBS0csS0FBSztrQkFBYixLQUFLO1lBTUYsY0FBYztrQkFEakIsV0FBVzttQkFBQyxrQkFBa0I7WUFTM0IsaUJBQWlCO2tCQURwQixXQUFXO21CQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBIb3N0QmluZGluZyxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uU3RvcmUgfSBmcm9tICcuLi8uLi9hY3Rpb24nO1xuaW1wb3J0IHsgVG9vbCB9IGZyb20gJy4uL3NoYXJlZC90b29sLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUb29sYm94Q29sb3IgfSBmcm9tICcuLi9zaGFyZWQvdG9vbGJveC5lbnVtcyc7XG5pbXBvcnQgeyBUb29sYm94IH0gZnJvbSAnLi4vc2hhcmVkL3Rvb2xib3gnO1xuaW1wb3J0IHsgdG9vbFNsaWRlSW5PdXQgfSBmcm9tICcuL3Rvb2xib3guYW5pbWF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXRvb2xib3gnLFxuICB0ZW1wbGF0ZVVybDogJ3Rvb2xib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsndG9vbGJveC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbdG9vbFNsaWRlSW5PdXQoKV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgdG9vbFxuICAgKi9cbiAgYWN0aXZlVG9vbCQ6IEJlaGF2aW9yU3ViamVjdDxUb29sPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogU3RvcmUgb2YgYWN0aW9ucyB0aGF0IHRvZ2dsZSB0b29sc1xuICAgKi9cbiAgYWN0aW9uU3RvcmU6IEFjdGlvblN0b3JlID0gbmV3IEFjdGlvblN0b3JlKFtdKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiBoZSBhbm1hdGlvbiBzdGF0ZVxuICAgKi9cbiAgYW5pbWF0aW9uJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCdub25lJyk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgb2YgdGhlIHRvb2xiYXJcbiAgICovXG4gIHRvb2xiYXIkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIFRvb2xiYXIgc2hvdWxkIGRpc3BsYXkgYWN0aW9ucycgdGl0bGVzXG4gICAqL1xuICB0b29sYmFyV2l0aFRpdGxlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYWN0aXZlVG9vbCQucGlwZShcbiAgICBtYXAoKHRvb2w6IFRvb2wgfCB1bmRlZmluZWQpID0+IHRvb2wgPT09IHVuZGVmaW5lZClcbiAgKTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBhY3RpdmUgdG9vbFxuICAgKi9cbiAgcHJpdmF0ZSBhY3RpdmVUb29sJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSB0b29sYmFyXG4gICAqL1xuICBwcml2YXRlIHRvb2xiYXIkJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSBvbmdvaW5nIGFuaW1hdGlvbi4gVGhpcyBpcyB1c2VmdWwgd2hlblxuICAgKiBtdWx0aXBsZSBhbmltYXRpb25zIGFyZSB0cmlnZ2VyZWQgYXQgb25jZSBpLmUuIHdoZW4gdGhlIHVzZXIgY2xpY2tzXG4gICAqIHRvbyBmYXN0IG9uIGRpZmZlcmVudCBhY3Rpb25zXG4gICAqL1xuICBwcml2YXRlIGFuaW1hdGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBvbmdvaW5nIGFuaW1hdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBhbmltYXRpbmckJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBUb29sYm94XG4gICAqL1xuICBASW5wdXQoKSB0b29sYm94OiBUb29sYm94O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0b29sYm94IHNob3VsZCBhbmltYXRlIHRoZSBmaXJzdCB0b29sIGVudGVyaW5nXG4gICAqL1xuICBASW5wdXQoKSBhbmltYXRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIENvbG9yIG9mIFRvb2xib3hcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yOiBUb29sYm94Q29sb3IgPSBUb29sYm94Q29sb3IuV2hpdGU7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY29sb3ItZ3JleScpXG4gIGdldCBjbGFzc0NvbG9yR3JleSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb2xvciA9PT0gVG9vbGJveENvbG9yLkdyZXk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jb2xvci1wcmltYXJ5JylcbiAgZ2V0IGNsYXNzQ29sb3JQcmltYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLmNvbG9yID09PSBUb29sYm94Q29sb3IuUHJpbWFyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0b29sYmFyIGFuZCBzdWJzY3JpYmUgdG8gdGhlIGFjdGl2ZSB0b29sXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50b29sYmFyJCQgPSB0aGlzLnRvb2xib3gudG9vbGJhciQuc3Vic2NyaWJlKCh0b29sYmFyOiBzdHJpbmdbXSkgPT5cbiAgICAgIHRoaXMub25Ub29sYmFyQ2hhbmdlKHRvb2xiYXIpXG4gICAgKTtcbiAgICB0aGlzLmFjdGl2ZVRvb2wkJCA9IHRoaXMudG9vbGJveC5hY3RpdmVUb29sJC5zdWJzY3JpYmUoKHRvb2w6IFRvb2wpID0+XG4gICAgICB0aGlzLm9uQWN0aXZlVG9vbENoYW5nZSh0b29sKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gdGhlIGFjdGl2ZSB0b29sIGFuZCBkZXN0cm95IHRoZSBhY3Rpb24gc3RvcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnRvb2xiYXIkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuYWN0aXZlVG9vbCQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5hY3Rpb25TdG9yZS5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgdGhlIHN0YXJ0aW5nIGFuaW1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uQW5pbWF0aW9uU3RhcnQoKSB7XG4gICAgdGhpcy5hbmltYXRpbmckLm5leHQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVW50cmFjayB0aGUgY29tcGxldGVkIGFuaW1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uQW5pbWF0aW9uQ29tcGxldGUoKSB7XG4gICAgdGhpcy5hbmltYXRpbmckLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHRvb2wncyBpbnB1dHNcbiAgICogQHBhcmFtIHRvb2wgVG9vbFxuICAgKiBAcmV0dXJucyBUb29sIGlucHV0c1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldFRvb2xJbnB1dHModG9vbDogVG9vbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHJldHVybiB0b29sLm9wdGlvbnMgfHwge307XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBhbiBhY3Rpb24gc3RvcmVcbiAgICogQHBhcmFtIHRvb2xiYXIgVG9vbGJhclxuICAgKi9cbiAgcHJpdmF0ZSBvblRvb2xiYXJDaGFuZ2UodG9vbGJhcjogc3RyaW5nW10pIHtcbiAgICB0aGlzLnNldFRvb2xiYXIodG9vbGJhcik7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgYSB0b29sIGFuZCB0cmlnZ2VyIGFuIGFuaW1hdGlvbiBvciBub3RcbiAgICogQHBhcmFtIHRvb2wgVG9vbCB0byBhY3RpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBvbkFjdGl2ZVRvb2xDaGFuZ2UodG9vbDogVG9vbCkge1xuICAgIGlmICghdGhpcy5hbmltYXRlKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRvb2wodG9vbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub25BbmltYXRlKCgpID0+IHRoaXMuc2V0QWN0aXZlVG9vbCh0b29sKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBhY3RpdmUgdG9vbFxuICAgKiBAcGFyYW0gdG9vbCBUb29sIHRvIGFjdGl2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldEFjdGl2ZVRvb2wodG9vbDogVG9vbCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0b29sID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWN0aW9uU3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25TdG9yZS5nZXQodG9vbC5uYW1lKTtcbiAgICAgIGlmIChhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmFjdGlvblN0b3JlLnN0YXRlLnVwZGF0ZShhY3Rpb24sIHsgYWN0aXZlOiB0cnVlIH0sIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlVG9vbCQubmV4dCh0b29sKTtcbiAgICBpZiAodGhpcy5hbmltYXRlKSB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiQubmV4dCgnZW50ZXInKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdG9vbGJhclxuICAgKi9cbiAgcHJpdmF0ZSBzZXRUb29sYmFyKHRvb2xiYXI6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgYWN0aW9ucyA9IHRvb2xiYXIucmVkdWNlKChhY2M6IEFjdGlvbltdLCB0b29sTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0b29sID0gdGhpcy50b29sYm94LmdldFRvb2wodG9vbE5hbWUpO1xuICAgICAgaWYgKHRvb2wgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuXG4gICAgICBhY2MucHVzaCh7XG4gICAgICAgIGlkOiB0b29sLm5hbWUsXG4gICAgICAgIHRpdGxlOiB0b29sLnRpdGxlLFxuICAgICAgICBpY29uOiB0b29sLmljb24sXG4gICAgICAgIC8vIGljb25JbWFnZTogdG9vbC5pY29uSW1hZ2UsXG4gICAgICAgIHRvb2x0aXA6IHRvb2wudG9vbHRpcCxcbiAgICAgICAgYXJnczogW3Rvb2wsIHRoaXMudG9vbGJveF0sXG4gICAgICAgIGhhbmRsZXI6IChfdG9vbDogVG9vbCwgX3Rvb2xib3g6IFRvb2xib3gpID0+IHtcbiAgICAgICAgICBfdG9vbGJveC5hY3RpdmF0ZVRvb2woX3Rvb2wubmFtZSk7XG4gICAgICAgIH0sXG4gICAgICAgIG5nQ2xhc3M6IChfdG9vbDogVG9vbCwgX3Rvb2xib3g6IFRvb2xib3gpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy50b29sYm94LmFjdGl2ZVRvb2wkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGFjdGl2ZVRvb2w6IFRvb2wpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHRvb2xBY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgaWYgKGFjdGl2ZVRvb2wgIT09IHVuZGVmaW5lZCAmJiBfdG9vbC5uYW1lID09PSBhY3RpdmVUb29sLm5hbWUpIHtcbiAgICAgICAgICAgICAgICB0b29sQWN0aXZhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGxldCBjaGlsZHJlblRvb2xBY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGFjdGl2ZVRvb2wgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIF90b29sLm5hbWUgPT09IGFjdGl2ZVRvb2wucGFyZW50XG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuVG9vbEFjdGl2YXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICd0b29sLWFjdGl2YXRlZCc6IHRvb2xBY3RpdmF0ZWQsXG4gICAgICAgICAgICAgICAgJ2NoaWxkcmVuLXRvb2wtYWN0aXZhdGVkJzogY2hpbGRyZW5Ub29sQWN0aXZhdGVkXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBbXSk7XG4gICAgdGhpcy5hY3Rpb25TdG9yZS5sb2FkKGFjdGlvbnMpO1xuICAgIHRoaXMudG9vbGJhciQubmV4dCh0b29sYmFyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnNlcnZlIHRoZSBvbmdvaW5nIGFuaW1hdGlvbiBhbmQgaWdub3JlIGFueSBpbmNvbWluZyBhbmltYXRpb25cbiAgICogd2hpbGUgb25lIGlzIHN0aWxsIG9uZ29pbmcuXG4gICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayB0byBleGVjdXRlIHdoZW4gdGhlIGFuaW1hdGlvbiBjb21wbGV0ZXNcbiAgICovXG4gIHByaXZhdGUgb25BbmltYXRlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy51bkFuaW1hdGUoKTtcbiAgICB0aGlzLmFuaW1hdGluZyQkID0gdGhpcy5hbmltYXRpbmckLnN1YnNjcmliZSgoYW5pbWF0aW9uOiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoIWFuaW1hdGlvbikge1xuICAgICAgICBjYWxsYmFjay5jYWxsKHRoaXMpO1xuICAgICAgICB0aGlzLnVuQW5pbWF0ZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3Agb2JzZXJ2aW5nIGFuIGFuaW1hdGlvbiB3aGVuIGl0J3MgY29tcGxldGVcbiAgICovXG4gIHByaXZhdGUgdW5BbmltYXRlKCkge1xuICAgIGlmICh0aGlzLmFuaW1hdGluZyQkKSB7XG4gICAgICB0aGlzLmFuaW1hdGluZyQkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8aWdvLWFjdGlvbmJhclxuICAqbmdJZj1cIih0b29sYmFyJCB8IGFzeW5jKS5sZW5ndGggPiAwXCJcbiAgW3N0b3JlXT1cImFjdGlvblN0b3JlXCJcbiAgW3dpdGhJY29uXT1cInRydWVcIlxuICBbd2l0aFRpdGxlXT1cInRvb2xiYXJXaXRoVGl0bGUkIHwgYXN5bmNcIlxuICBbd2l0aFRvb2x0aXBdPVwiKHRvb2xiYXJXaXRoVGl0bGUkIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gIFtzY3JvbGxBY3RpdmVdPVwidG9vbGJhcldpdGhUaXRsZSQgfCBhc3luY1wiXG4gIFtob3Jpem9udGFsXT1cImZhbHNlXCI+XG48L2lnby1hY3Rpb25iYXI+XG5cbjxkaXZcbiAgKm5nSWY9XCJhY3RpdmVUb29sJCB8IGFzeW5jIGFzIHRvb2xcIlxuICBjbGFzcz1cImlnby10b29sLWNvbnRhaW5lclwiXG4gIFtuZ0NsYXNzXT1cInsnaWdvLXRvb2wtY29udGFpbmVyLXdpdGgtdG9vbGJhcic6ICFhY3Rpb25TdG9yZS5lbXB0eSwgJ2lnby10b29sLWNvbnRhaW5lci13aXRoLWFuaW1hdGlvbic6IGFuaW1hdGV9XCJcbiAgW0B0b29sU2xpZGVJbk91dF09XCJhbmltYXRpb24kIHwgYXN5bmNcIlxuICAoQHRvb2xTbGlkZUluT3V0LnN0YXJ0KT1cIm9uQW5pbWF0aW9uU3RhcnQoKVwiXG4gIChAdG9vbFNsaWRlSW5PdXQuZG9uZSk9XCJvbkFuaW1hdGlvbkNvbXBsZXRlKClcIj5cblxuICA8aWdvLWR5bmFtaWMtb3V0bGV0XG4gICAgW2NvbXBvbmVudF09XCJ0b29sLmNvbXBvbmVudFwiXG4gICAgW2lucHV0c109XCJnZXRUb29sSW5wdXRzKHRvb2wpXCI+XG4gIDwvaWdvLWR5bmFtaWMtb3V0bGV0PlxuXG48L2Rpdj5cbiJdfQ==
|