@igo2/common 1.14.3 → 1.14.4
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 +26 -26
- package/esm2020/lib/action/actionbar/actionbar-item.component.mjs +251 -251
- package/esm2020/lib/action/actionbar/actionbar.component.mjs +369 -369
- package/esm2020/lib/action/actionbar/actionbar.module.mjs +56 -56
- 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 +1 -1
- package/esm2020/lib/action/shared/index.mjs +4 -4
- package/esm2020/lib/action/shared/store.mjs +7 -7
- package/esm2020/lib/backdrop/backdrop.component.mjs +25 -25
- package/esm2020/lib/backdrop/backdrop.module.mjs +24 -24
- package/esm2020/lib/backdrop/index.mjs +2 -2
- package/esm2020/lib/badge-icon/badge-icon.directive.mjs +140 -140
- package/esm2020/lib/badge-icon/badge-icon.module.mjs +25 -25
- package/esm2020/lib/badge-icon/index.mjs +2 -2
- package/esm2020/lib/clickout/clickout.directive.mjs +31 -31
- package/esm2020/lib/clickout/clickout.module.mjs +23 -23
- package/esm2020/lib/clickout/index.mjs +2 -2
- package/esm2020/lib/clone/clone.module.mjs +23 -23
- package/esm2020/lib/clone/clone.pipe.mjs +23 -23
- package/esm2020/lib/clone/index.mjs +2 -2
- package/esm2020/lib/collapsible/collapse.directive.mjs +54 -54
- package/esm2020/lib/collapsible/collapsible.component.mjs +56 -56
- package/esm2020/lib/collapsible/collapsible.module.mjs +26 -26
- package/esm2020/lib/collapsible/index.mjs +2 -2
- package/esm2020/lib/confirm-dialog/confirm-dialog.component.mjs +43 -43
- package/esm2020/lib/confirm-dialog/confirm-dialog.module.mjs +28 -28
- package/esm2020/lib/confirm-dialog/confirm-dialog.service.mjs +21 -21
- package/esm2020/lib/confirm-dialog/index.mjs +2 -2
- package/esm2020/lib/context-menu/context-menu.directive.mjs +102 -102
- package/esm2020/lib/context-menu/context-menu.module.mjs +24 -24
- package/esm2020/lib/context-menu/index.mjs +2 -2
- package/esm2020/lib/context-menu/long-press.directive.mjs +62 -62
- package/esm2020/lib/custom-html/custom-html.component.mjs +28 -28
- package/esm2020/lib/custom-html/custom-html.module.mjs +46 -46
- package/esm2020/lib/custom-html/custom-html.pipe.mjs +17 -17
- package/esm2020/lib/custom-html/index.mjs +2 -2
- package/esm2020/lib/dom/dom.interfaces.mjs +2 -2
- package/esm2020/lib/dom/dom.module.mjs +22 -22
- package/esm2020/lib/dom/dom.service.mjs +29 -29
- 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 +23 -23
- package/esm2020/lib/drag-drop/index.mjs +2 -2
- package/esm2020/lib/dynamic-component/dynamic-component.module.mjs +30 -30
- package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +122 -122
- package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +27 -27
- 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 +173 -173
- package/esm2020/lib/dynamic-component/shared/dynamic-component.service.mjs +28 -28
- package/esm2020/lib/dynamic-component/shared/index.mjs +4 -4
- package/esm2020/lib/entity/entity-selector/entity-selector.component.mjs +193 -193
- package/esm2020/lib/entity/entity-selector/entity-selector.module.mjs +31 -31
- package/esm2020/lib/entity/entity-table/entity-table-row.directive.mjs +136 -136
- package/esm2020/lib/entity/entity-table/entity-table.component.mjs +1367 -1367
- package/esm2020/lib/entity/entity-table/entity-table.module.mjs +101 -101
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +131 -131
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +1 -1
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +27 -27
- package/esm2020/lib/entity/entity.module.mjs +30 -30
- package/esm2020/lib/entity/index.mjs +5 -5
- package/esm2020/lib/entity/shared/entity.enums.mjs +28 -28
- package/esm2020/lib/entity/shared/entity.interfaces.mjs +1 -1
- package/esm2020/lib/entity/shared/entity.utils.mjs +66 -66
- package/esm2020/lib/entity/shared/index.mjs +10 -10
- package/esm2020/lib/entity/shared/state.mjs +190 -190
- package/esm2020/lib/entity/shared/store.mjs +287 -287
- package/esm2020/lib/entity/shared/strategies/filter-custom-function.mjs +78 -78
- package/esm2020/lib/entity/shared/strategies/filter-selection.mjs +83 -83
- package/esm2020/lib/entity/shared/strategies/index.mjs +4 -4
- package/esm2020/lib/entity/shared/strategies/strategy.mjs +74 -74
- package/esm2020/lib/entity/shared/transaction.mjs +315 -315
- package/esm2020/lib/entity/shared/view.mjs +314 -314
- package/esm2020/lib/entity/shared/watcher.mjs +119 -119
- package/esm2020/lib/flexible/flexible.component.mjs +147 -147
- package/esm2020/lib/flexible/flexible.module.mjs +23 -23
- 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 +116 -116
- package/esm2020/lib/form/form/form.module.mjs +39 -39
- package/esm2020/lib/form/form-field/form-field-select.component.mjs +126 -126
- package/esm2020/lib/form/form-field/form-field-text.component.mjs +103 -103
- package/esm2020/lib/form/form-field/form-field-textarea.component.mjs +104 -104
- package/esm2020/lib/form/form-field/form-field.component.mjs +71 -71
- package/esm2020/lib/form/form-field/form-field.module.mjs +73 -73
- package/esm2020/lib/form/form-field/index.mjs +4 -4
- package/esm2020/lib/form/form-group/form-group.component.mjs +104 -104
- package/esm2020/lib/form/form-group/form-group.module.mjs +39 -39
- package/esm2020/lib/form/form.module.mjs +48 -48
- package/esm2020/lib/form/index.mjs +4 -4
- package/esm2020/lib/form/shared/form-field-component.mjs +7 -7
- package/esm2020/lib/form/shared/form-field.service.mjs +28 -28
- package/esm2020/lib/form/shared/form.interfaces.mjs +1 -1
- package/esm2020/lib/form/shared/form.service.mjs +80 -80
- package/esm2020/lib/form/shared/form.utils.mjs +39 -39
- package/esm2020/lib/form/shared/index.mjs +6 -6
- package/esm2020/lib/home-button/home-button.component.mjs +30 -30
- package/esm2020/lib/home-button/home-button.module.mjs +40 -40
- package/esm2020/lib/home-button/index.mjs +2 -2
- package/esm2020/lib/image/image-error.directive.mjs +34 -34
- package/esm2020/lib/image/image.module.mjs +24 -24
- package/esm2020/lib/image/index.mjs +2 -2
- 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 +134 -134
- package/esm2020/lib/interactive-tour/interactive-tour.interface.mjs +1 -1
- package/esm2020/lib/interactive-tour/interactive-tour.loader.mjs +43 -43
- package/esm2020/lib/interactive-tour/interactive-tour.module.mjs +39 -39
- package/esm2020/lib/interactive-tour/interactive-tour.service.mjs +284 -284
- package/esm2020/lib/json-dialog/index.mjs +3 -3
- package/esm2020/lib/json-dialog/json-dialog.component.mjs +108 -108
- package/esm2020/lib/json-dialog/json-dialog.module.mjs +28 -28
- package/esm2020/lib/json-dialog/json-dialog.service.mjs +23 -23
- package/esm2020/lib/keyvalue/index.mjs +2 -2
- package/esm2020/lib/keyvalue/keyvalue.module.mjs +23 -23
- package/esm2020/lib/keyvalue/keyvalue.pipe.mjs +17 -17
- package/esm2020/lib/list/index.mjs +2 -2
- package/esm2020/lib/list/list-item.directive.mjs +164 -164
- package/esm2020/lib/list/list.component.mjs +261 -261
- package/esm2020/lib/list/list.module.mjs +28 -28
- package/esm2020/lib/panel/index.mjs +2 -2
- package/esm2020/lib/panel/panel.component.mjs +58 -58
- package/esm2020/lib/panel/panel.module.mjs +18 -18
- package/esm2020/lib/sidenav/index.mjs +2 -2
- package/esm2020/lib/sidenav/sidenav-shim.directive.mjs +54 -54
- package/esm2020/lib/sidenav/sidenav.module.mjs +23 -23
- package/esm2020/lib/spinner/index.mjs +2 -2
- package/esm2020/lib/spinner/spinner-activity.directive.mjs +46 -46
- package/esm2020/lib/spinner/spinner.component.mjs +34 -34
- package/esm2020/lib/spinner/spinner.module.mjs +20 -20
- package/esm2020/lib/stop-propagation/index.mjs +2 -2
- package/esm2020/lib/stop-propagation/stop-drop-propagation.directive.mjs +21 -21
- package/esm2020/lib/stop-propagation/stop-propagation.directive.mjs +20 -20
- package/esm2020/lib/stop-propagation/stop-propagation.module.mjs +24 -24
- 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 +60 -60
- package/esm2020/lib/table/table-model.interface.mjs +1 -1
- package/esm2020/lib/table/table.component.mjs +296 -296
- package/esm2020/lib/table/table.module.mjs +66 -66
- 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 +8 -8
- package/esm2020/lib/tool/shared/tool.interface.mjs +1 -1
- package/esm2020/lib/tool/shared/tool.service.mjs +43 -43
- package/esm2020/lib/tool/shared/toolbox.enums.mjs +6 -6
- package/esm2020/lib/tool/shared/toolbox.mjs +178 -178
- package/esm2020/lib/tool/tool.module.mjs +31 -31
- package/esm2020/lib/tool/toolbox/toolbox.animation.mjs +9 -9
- package/esm2020/lib/tool/toolbox/toolbox.component.mjs +255 -255
- package/esm2020/lib/tool/toolbox/toolbox.module.mjs +35 -35
- 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 +19 -19
- package/esm2020/lib/widget/widget-outlet/widget-outlet.component.mjs +115 -115
- package/esm2020/lib/widget/widget-outlet/widget-outlet.module.mjs +31 -31
- package/esm2020/lib/widget/widget.module.mjs +31 -31
- package/esm2020/lib/workspace/index.mjs +3 -3
- package/esm2020/lib/workspace/shared/index.mjs +4 -4
- package/esm2020/lib/workspace/shared/store.mjs +39 -39
- package/esm2020/lib/workspace/shared/workspace.interfaces.mjs +1 -1
- package/esm2020/lib/workspace/shared/workspace.mjs +116 -116
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.component.mjs +50 -50
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +31 -31
- package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +87 -87
- package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +31 -31
- package/esm2020/lib/workspace/workspace.module.mjs +26 -26
- package/esm2020/public_api.mjs +73 -73
- package/fesm2015/igo2-common.mjs +10003 -10003
- package/fesm2015/igo2-common.mjs.map +1 -1
- package/fesm2020/igo2-common.mjs +9306 -9306
- 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 +10 -10
- 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 +327 -327
- 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
|
@@ -1,370 +1,370 @@
|
|
|
1
|
-
import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import { Media } from '@igo2/core';
|
|
3
|
-
import { EntityStoreWatcher } from '../../entity';
|
|
4
|
-
import { ActionbarMode } from '../shared/action.enums';
|
|
5
|
-
import { BehaviorSubject } from 'rxjs';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
8
|
-
import * as i2 from "@igo2/core";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "@angular/material/button";
|
|
11
|
-
import * as i5 from "@angular/material/icon";
|
|
12
|
-
import * as i6 from "@angular/material/tooltip";
|
|
13
|
-
import * as i7 from "@angular/material/menu";
|
|
14
|
-
import * as i8 from "@angular/material/list";
|
|
15
|
-
import * as i9 from "@angular/material/card";
|
|
16
|
-
import * as i10 from "./actionbar-item.component";
|
|
17
|
-
import * as i11 from "@ngx-translate/core";
|
|
18
|
-
function ActionbarComponent_mat_list_0_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
-
const _r8 = i0.ɵɵgetCurrentView();
|
|
20
|
-
i0.ɵɵelementStart(0, "div", 5)(1, "button", 6);
|
|
21
|
-
i0.ɵɵlistener("click", function ActionbarComponent_mat_list_0_div_1_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.scrollUp()); });
|
|
22
|
-
i0.ɵɵpipe(2, "translate");
|
|
23
|
-
i0.ɵɵelement(3, "mat-icon", 7);
|
|
24
|
-
i0.ɵɵelementEnd()();
|
|
25
|
-
} if (rf & 2) {
|
|
26
|
-
i0.ɵɵadvance(1);
|
|
27
|
-
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 1, "igo.common.actionbar.scrollUp"));
|
|
28
|
-
} }
|
|
29
|
-
function ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
-
const _r10 = i0.ɵɵgetCurrentView();
|
|
31
|
-
i0.ɵɵelementStart(0, "igo-actionbar-item", 8);
|
|
32
|
-
i0.ɵɵlistener("trigger", function ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template_igo_actionbar_item_trigger_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.onTriggerAction(ctx_r9.toggleCollapseAction)); });
|
|
33
|
-
i0.ɵɵelementEnd();
|
|
34
|
-
} if (rf & 2) {
|
|
35
|
-
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
36
|
-
i0.ɵɵproperty("withTitle", false)("withIcon", true)("color", ctx_r4.color)("disabled", ctx_r4.store.view.empty)("action", ctx_r4.toggleCollapseAction);
|
|
37
|
-
} }
|
|
38
|
-
function ActionbarComponent_mat_list_0_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
-
const _r15 = i0.ɵɵgetCurrentView();
|
|
40
|
-
i0.ɵɵelementStart(0, "igo-actionbar-item", 11);
|
|
41
|
-
i0.ɵɵlistener("trigger", function ActionbarComponent_mat_list_0_3_ng_template_0_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r15); const action_r13 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r14.onTriggerAction(action_r13)); });
|
|
42
|
-
i0.ɵɵelementEnd();
|
|
43
|
-
} if (rf & 2) {
|
|
44
|
-
const action_r13 = ctx.$implicit;
|
|
45
|
-
const ctx_r12 = i0.ɵɵnextContext(3);
|
|
46
|
-
i0.ɵɵproperty("withTitle", ctx_r12.withTitle)("withIcon", ctx_r12.withIcon)("withTooltip", ctx_r12.withTooltip)("color", ctx_r12.color)("disabled", ctx_r12.store.state.get(action_r13).disabled)("action", action_r13);
|
|
47
|
-
} }
|
|
48
|
-
function ActionbarComponent_mat_list_0_3_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
-
i0.ɵɵtemplate(0, ActionbarComponent_mat_list_0_3_ng_template_0_Template, 1, 6, "ng-template", 9, 10, i0.ɵɵtemplateRefExtractor);
|
|
50
|
-
i0.ɵɵpipe(2, "async");
|
|
51
|
-
} if (rf & 2) {
|
|
52
|
-
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
53
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx_r5.store.view.all$()));
|
|
54
|
-
} }
|
|
55
|
-
function ActionbarComponent_mat_list_0_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
-
const _r17 = i0.ɵɵgetCurrentView();
|
|
57
|
-
i0.ɵɵelementStart(0, "div", 12)(1, "button", 6);
|
|
58
|
-
i0.ɵɵlistener("click", function ActionbarComponent_mat_list_0_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.scrollDown()); });
|
|
59
|
-
i0.ɵɵpipe(2, "translate");
|
|
60
|
-
i0.ɵɵelement(3, "mat-icon", 13);
|
|
61
|
-
i0.ɵɵelementEnd()();
|
|
62
|
-
} if (rf & 2) {
|
|
63
|
-
i0.ɵɵadvance(1);
|
|
64
|
-
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 1, "igo.common.actionbar.scrollDown"));
|
|
65
|
-
} }
|
|
66
|
-
function ActionbarComponent_mat_list_0_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
-
i0.ɵɵelementStart(0, "mat-list");
|
|
68
|
-
i0.ɵɵtemplate(1, ActionbarComponent_mat_list_0_div_1_Template, 4, 3, "div", 2);
|
|
69
|
-
i0.ɵɵtemplate(2, ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template, 1, 5, "igo-actionbar-item", 3);
|
|
70
|
-
i0.ɵɵtemplate(3, ActionbarComponent_mat_list_0_3_Template, 3, 3, null, 0);
|
|
71
|
-
i0.ɵɵtemplate(4, ActionbarComponent_mat_list_0_div_4_Template, 4, 3, "div", 4);
|
|
72
|
-
i0.ɵɵelementEnd();
|
|
73
|
-
} if (rf & 2) {
|
|
74
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
75
|
-
i0.ɵɵadvance(1);
|
|
76
|
-
i0.ɵɵproperty("ngIf", ctx_r0.heightCondition && ctx_r0.positionConditionTop && ctx_r0.isDesktop);
|
|
77
|
-
i0.ɵɵadvance(1);
|
|
78
|
-
i0.ɵɵproperty("ngIf", ctx_r0.withToggleButton);
|
|
79
|
-
i0.ɵɵadvance(1);
|
|
80
|
-
i0.ɵɵproperty("ngIf", !ctx_r0.collapsed);
|
|
81
|
-
i0.ɵɵadvance(1);
|
|
82
|
-
i0.ɵɵproperty("ngIf", ctx_r0.heightCondition && ctx_r0.positionConditionLow && ctx_r0.isDesktop);
|
|
83
|
-
} }
|
|
84
|
-
function ActionbarComponent_div_1_ng_template_7_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
-
const _r22 = i0.ɵɵgetCurrentView();
|
|
86
|
-
i0.ɵɵelementStart(0, "igo-actionbar-item", 18);
|
|
87
|
-
i0.ɵɵlistener("trigger", function ActionbarComponent_div_1_ng_template_7_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const action_r20 = restoredCtx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.onTriggerAction(action_r20)); });
|
|
88
|
-
i0.ɵɵelementEnd();
|
|
89
|
-
} if (rf & 2) {
|
|
90
|
-
const action_r20 = ctx.$implicit;
|
|
91
|
-
const ctx_r19 = i0.ɵɵnextContext(2);
|
|
92
|
-
i0.ɵɵproperty("withTitle", ctx_r19.withTitle)("withIcon", ctx_r19.withIcon)("color", ctx_r19.color)("action", action_r20);
|
|
93
|
-
} }
|
|
94
|
-
function ActionbarComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
-
i0.ɵɵelementStart(0, "div")(1, "button", 14);
|
|
96
|
-
i0.ɵɵpipe(2, "translate");
|
|
97
|
-
i0.ɵɵelement(3, "mat-icon", 15);
|
|
98
|
-
i0.ɵɵelementEnd();
|
|
99
|
-
i0.ɵɵelementStart(4, "mat-menu", 16, 17)(6, "mat-list");
|
|
100
|
-
i0.ɵɵtemplate(7, ActionbarComponent_div_1_ng_template_7_Template, 1, 4, "ng-template", 9);
|
|
101
|
-
i0.ɵɵpipe(8, "async");
|
|
102
|
-
i0.ɵɵelementEnd()()();
|
|
103
|
-
} if (rf & 2) {
|
|
104
|
-
const _r18 = i0.ɵɵreference(5);
|
|
105
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
106
|
-
i0.ɵɵadvance(1);
|
|
107
|
-
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 10, "igo.common.actionbar.icon"))("matMenuTriggerFor", _r18)("disabled", ctx_r1.store.view.empty)("color", ctx_r1.iconColor);
|
|
108
|
-
i0.ɵɵadvance(2);
|
|
109
|
-
i0.ɵɵproperty("svgIcon", ctx_r1.icon);
|
|
110
|
-
i0.ɵɵadvance(1);
|
|
111
|
-
i0.ɵɵclassMap(ctx_r1.overlayClass);
|
|
112
|
-
i0.ɵɵproperty("xPosition", ctx_r1.xPosition)("yPosition", ctx_r1.yPosition);
|
|
113
|
-
i0.ɵɵadvance(3);
|
|
114
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(8, 12, ctx_r1.store.view.all$()));
|
|
115
|
-
} }
|
|
116
|
-
function ActionbarComponent_mat_card_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
117
|
-
const _r26 = i0.ɵɵgetCurrentView();
|
|
118
|
-
i0.ɵɵelementStart(0, "igo-actionbar-item", 18);
|
|
119
|
-
i0.ɵɵlistener("trigger", function ActionbarComponent_mat_card_2_ng_template_2_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r26); const action_r24 = restoredCtx.$implicit; const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.onTriggerAction(action_r24)); });
|
|
120
|
-
i0.ɵɵelementEnd();
|
|
121
|
-
i0.ɵɵelement(1, "br");
|
|
122
|
-
} if (rf & 2) {
|
|
123
|
-
const action_r24 = ctx.$implicit;
|
|
124
|
-
const ctx_r23 = i0.ɵɵnextContext(2);
|
|
125
|
-
i0.ɵɵproperty("withTitle", ctx_r23.withTitle)("withIcon", ctx_r23.withIcon)("color", ctx_r23.color)("action", action_r24);
|
|
126
|
-
} }
|
|
127
|
-
function ActionbarComponent_mat_card_2_Template(rf, ctx) { if (rf & 1) {
|
|
128
|
-
i0.ɵɵelementStart(0, "mat-card", 19)(1, "mat-list");
|
|
129
|
-
i0.ɵɵtemplate(2, ActionbarComponent_mat_card_2_ng_template_2_Template, 2, 4, "ng-template", 9);
|
|
130
|
-
i0.ɵɵpipe(3, "async");
|
|
131
|
-
i0.ɵɵelementEnd()();
|
|
132
|
-
} if (rf & 2) {
|
|
133
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
134
|
-
i0.ɵɵadvance(2);
|
|
135
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 1, ctx_r2.store.view.all$()));
|
|
136
|
-
} }
|
|
137
|
-
/**
|
|
138
|
-
* A list of action buttons.
|
|
139
|
-
* This component can be displayed in one of two way: 'dock' or 'overlay'
|
|
140
|
-
*/
|
|
141
|
-
export class ActionbarComponent {
|
|
142
|
-
constructor(overlay, elRef, cdRef, mediaService) {
|
|
143
|
-
this.overlay = overlay;
|
|
144
|
-
this.elRef = elRef;
|
|
145
|
-
this.cdRef = cdRef;
|
|
146
|
-
this.mediaService = mediaService;
|
|
147
|
-
/**
|
|
148
|
-
* Reference to the ActionbarMode enum for use in the template
|
|
149
|
-
* @internal
|
|
150
|
-
*/
|
|
151
|
-
this.actionbarMode = ActionbarMode;
|
|
152
|
-
/**
|
|
153
|
-
* Whether the actionbar is collapsed (Dock mode)
|
|
154
|
-
* @internal
|
|
155
|
-
*/
|
|
156
|
-
this.collapsed = false;
|
|
157
|
-
/**
|
|
158
|
-
* Toggle collapse action (Dock)
|
|
159
|
-
* @internal
|
|
160
|
-
*/
|
|
161
|
-
this.toggleCollapseAction = {
|
|
162
|
-
id: 'actionbar_toggle',
|
|
163
|
-
icon: 'dots-vertical',
|
|
164
|
-
handler: () => {
|
|
165
|
-
this.collapsed = !this.collapsed;
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
/**
|
|
169
|
-
* Height Condition for scroll button
|
|
170
|
-
*/
|
|
171
|
-
this.heightCondition$ = new BehaviorSubject(false);
|
|
172
|
-
/**
|
|
173
|
-
* Position Condition for top scroll button
|
|
174
|
-
*/
|
|
175
|
-
this.positionConditionTop$ = new BehaviorSubject(true);
|
|
176
|
-
/**
|
|
177
|
-
* Position Condition for low scroll button
|
|
178
|
-
*/
|
|
179
|
-
this.positionConditionLow$ = new BehaviorSubject(true);
|
|
180
|
-
/**
|
|
181
|
-
* Actionbar mode
|
|
182
|
-
*/
|
|
183
|
-
this.mode = ActionbarMode.Dock;
|
|
184
|
-
/**
|
|
185
|
-
* Whether a toggle button should be displayed (Dock mode)
|
|
186
|
-
*/
|
|
187
|
-
this.withToggleButton = false;
|
|
188
|
-
/**
|
|
189
|
-
* Whether a the actionbar should display buttons horizontally
|
|
190
|
-
*/
|
|
191
|
-
this.horizontal = false;
|
|
192
|
-
/**
|
|
193
|
-
* Color
|
|
194
|
-
*/
|
|
195
|
-
this.color = 'default';
|
|
196
|
-
/**
|
|
197
|
-
* Color of the button if action mode === overlay
|
|
198
|
-
*/
|
|
199
|
-
this.iconColor = 'default';
|
|
200
|
-
/**
|
|
201
|
-
* Whether action titles are displayed
|
|
202
|
-
*/
|
|
203
|
-
this.withTitle = true;
|
|
204
|
-
/**
|
|
205
|
-
* Whether action tooltips are displayed
|
|
206
|
-
*/
|
|
207
|
-
this.withTooltip = true;
|
|
208
|
-
/**
|
|
209
|
-
* Whether action titles are displayed (condition for scroll button)
|
|
210
|
-
*/
|
|
211
|
-
this.scrollActive = true;
|
|
212
|
-
/**
|
|
213
|
-
* Whether action icons are displayed
|
|
214
|
-
*/
|
|
215
|
-
this.withIcon = true;
|
|
216
|
-
/**
|
|
217
|
-
* Which icon want to be shown
|
|
218
|
-
*/
|
|
219
|
-
this.icon = 'dots-horizontal';
|
|
220
|
-
/**
|
|
221
|
-
* Overlay X position
|
|
222
|
-
*/
|
|
223
|
-
this.xPosition = 'before';
|
|
224
|
-
/**
|
|
225
|
-
* Overlay Y position
|
|
226
|
-
*/
|
|
227
|
-
this.yPosition = 'above';
|
|
228
|
-
this._overlayClass = '';
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Class to add to the actionbar overlay
|
|
232
|
-
*/
|
|
233
|
-
set overlayClass(value) {
|
|
234
|
-
this._overlayClass = value;
|
|
235
|
-
}
|
|
236
|
-
get overlayClass() {
|
|
237
|
-
return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* @ignore
|
|
241
|
-
*/
|
|
242
|
-
get withTitleClass() {
|
|
243
|
-
return this.withTitle;
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* @ignore
|
|
247
|
-
*/
|
|
248
|
-
get withIconClass() {
|
|
249
|
-
return this.withIcon;
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* @ignore
|
|
253
|
-
*/
|
|
254
|
-
get horizontalClass() {
|
|
255
|
-
return this.horizontal;
|
|
256
|
-
}
|
|
257
|
-
get heightCondition() {
|
|
258
|
-
const el = this.elRef.nativeElement;
|
|
259
|
-
if (this.scrollActive === false) {
|
|
260
|
-
if (el.clientHeight < el.scrollHeight) {
|
|
261
|
-
return true;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return false;
|
|
265
|
-
}
|
|
266
|
-
get positionConditionTop() {
|
|
267
|
-
if (this.elRef.nativeElement.scrollTop === 0) {
|
|
268
|
-
return false;
|
|
269
|
-
}
|
|
270
|
-
return true;
|
|
271
|
-
}
|
|
272
|
-
get positionConditionLow() {
|
|
273
|
-
const el = this.elRef.nativeElement;
|
|
274
|
-
if (el.scrollTop >= (el.scrollHeight - el.clientHeight)) {
|
|
275
|
-
return false;
|
|
276
|
-
}
|
|
277
|
-
return true;
|
|
278
|
-
}
|
|
279
|
-
get isDesktop() {
|
|
280
|
-
return this.mediaService.getMedia() === Media.Desktop;
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* @internal
|
|
284
|
-
*/
|
|
285
|
-
ngOnChanges(changes) {
|
|
286
|
-
const store = changes.store;
|
|
287
|
-
if (store && store.currentValue !== store.previousValue) {
|
|
288
|
-
if (this.watcher !== undefined) {
|
|
289
|
-
this.watcher.destroy();
|
|
290
|
-
}
|
|
291
|
-
this.watcher = new EntityStoreWatcher(this.store, this.cdRef);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* @internal
|
|
296
|
-
*/
|
|
297
|
-
ngOnDestroy() {
|
|
298
|
-
this.watcher.destroy();
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Invoke the action handler
|
|
302
|
-
* @internal
|
|
303
|
-
*/
|
|
304
|
-
onTriggerAction(action) {
|
|
305
|
-
const args = action.args || [];
|
|
306
|
-
action.handler(...args);
|
|
307
|
-
}
|
|
308
|
-
scrollDown() {
|
|
309
|
-
this.elRef.nativeElement.scrollBy(0, 52);
|
|
310
|
-
}
|
|
311
|
-
scrollUp() {
|
|
312
|
-
this.elRef.nativeElement.scrollBy(0, -52);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
ActionbarComponent.ɵfac = function ActionbarComponent_Factory(t) { return new (t || ActionbarComponent)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.MediaService)); };
|
|
316
|
-
ActionbarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionbarComponent, selectors: [["igo-actionbar"]], hostVars: 6, hostBindings: function ActionbarComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
317
|
-
i0.ɵɵclassProp("with-title", ctx.withTitleClass)("with-icon", ctx.withIconClass)("horizontal", ctx.horizontalClass);
|
|
318
|
-
} }, inputs: { store: "store", mode: "mode", withToggleButton: "withToggleButton", horizontal: "horizontal", color: "color", iconColor: "iconColor", withTitle: "withTitle", withTooltip: "withTooltip", scrollActive: "scrollActive", withIcon: "withIcon", icon: "icon", xPosition: "xPosition", yPosition: "yPosition", overlayClass: "overlayClass" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[4, "ngIf"], ["class", "context-menu-card mat-elevation-z4", 4, "ngIf"], ["id", "topChevron", 4, "ngIf"], ["color", "accent", 3, "withTitle", "withIcon", "color", "disabled", "action", "trigger", 4, "ngIf"], ["id", "lowChevron", 4, "ngIf"], ["id", "topChevron"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "click"], ["svgIcon", "chevron-up"], ["color", "accent", 3, "withTitle", "withIcon", "color", "disabled", "action", "trigger"], ["ngFor", "", 3, "ngForOf"], ["buttonContent", ""], ["color", "accent", 3, "withTitle", "withIcon", "withTooltip", "color", "disabled", "action", "trigger"], ["id", "lowChevron"], ["svgIcon", "chevron-down"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "buttonOverlay", 3, "matTooltip", "matMenuTriggerFor", "disabled", "color"], [3, "svgIcon"], ["overlapTrigger", "true", 1, "igo-compact-menu", "igo-no-min-width-menu", 3, "xPosition", "yPosition"], ["actionbarMenu", "matMenu"], ["color", "accent", 3, "withTitle", "withIcon", "color", "action", "trigger"], [1, "context-menu-card", "mat-elevation-z4"]], template: function ActionbarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
319
|
-
i0.ɵɵtemplate(0, ActionbarComponent_mat_list_0_Template, 5, 4, "mat-list", 0);
|
|
320
|
-
i0.ɵɵtemplate(1, ActionbarComponent_div_1_Template, 9, 14, "div", 0);
|
|
321
|
-
i0.ɵɵtemplate(2, ActionbarComponent_mat_card_2_Template, 4, 3, "mat-card", 1);
|
|
322
|
-
} if (rf & 2) {
|
|
323
|
-
i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Dock);
|
|
324
|
-
i0.ɵɵadvance(1);
|
|
325
|
-
i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Overlay);
|
|
326
|
-
i0.ɵɵadvance(1);
|
|
327
|
-
i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Context);
|
|
328
|
-
} }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatButton, i5.MatIcon, i6.MatTooltip, i7.MatMenu, i7.MatMenuTrigger, i8.MatList, i9.MatCard, i10.ActionbarItemComponent, i3.AsyncPipe, i11.TranslatePipe], styles: ["[_nghost-%COMP%]{display:block;height:100%;overflow:auto;position:relative}button[_ngcontent-%COMP%]{margin:4px}.buttonOverlay[_ngcontent-%COMP%]{margin:0}mat-list[_ngcontent-%COMP%]{padding-top:0}.horizontal[_nghost-%COMP%]{max-width:100%;overflow:visible;overflow:initial}.horizontal[_nghost-%COMP%] mat-list[_ngcontent-%COMP%]{width:auto;white-space:nowrap}.horizontal[_nghost-%COMP%] igo-actionbar-item[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .mat-list .mat-list-item .mat-list-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar{height:46px}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content{display:-webkit-flex;height:46px;padding:3px}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content>mat-icon{padding:8px}igo-actionbar-item[_ngcontent-%COMP%] mat-list-item [mat-list-avatar]{height:auto;width:40px}igo-actionbar-item[_ngcontent-%COMP%] mat-list-item:hover{cursor:pointer}.context-menu-card[_ngcontent-%COMP%]{padding:8px 3px;margin:10px}#topChevron[_ngcontent-%COMP%]{position
|
|
329
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionbarComponent, [{
|
|
330
|
-
type: Component,
|
|
331
|
-
args: [{ selector: 'igo-actionbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list *ngIf=\"mode === actionbarMode.Dock\">\n\n <div *ngIf=\"heightCondition && positionConditionTop && isDesktop\"\n id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\">\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n </div>\n\n <igo-actionbar-item\n *ngIf=\"withToggleButton\"\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color\"\n [disabled]=\"store.view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\">\n </igo-actionbar-item>\n\n <ng-template #buttonContent *ngIf=\"!collapsed\" ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [withTooltip]=\"withTooltip\"\n [color]=\"color\"\n [disabled]=\"store.state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n\n <div *ngIf=\"heightCondition && positionConditionLow && isDesktop\"\n id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n </div>\n\n</mat-list>\n\n<div *ngIf=\"mode === actionbarMode.Overlay\">\n <button class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store.view.empty\"\n [color]=\"iconColor\">\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\n </button>\n\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n [class]=\"overlayClass\">\n\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n </mat-list>\n </mat-menu>\n</div>\n<mat-card *ngIf=\"mode === actionbarMode.Context\" class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n <br/>\n </ng-template>\n </mat-list>\n</mat-card>\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}button{margin:4px}.buttonOverlay{margin:0}mat-list{padding-top:0}:host.horizontal{max-width:100%;overflow:visible;overflow:initial}:host.horizontal mat-list{width:auto;white-space:nowrap}:host.horizontal igo-actionbar-item{display:inline-block}:host ::ng-deep .mat-list .mat-list-item .mat-list-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar{height:46px}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content{display:-webkit-flex;height:46px;padding:3px}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content>mat-icon{padding:8px}igo-actionbar-item ::ng-deep mat-list-item [mat-list-avatar]{height:auto;width:40px}igo-actionbar-item ::ng-deep mat-list-item:hover{cursor:pointer}.context-menu-card{padding:8px 3px;margin:10px}#topChevron{position
|
|
332
|
-
}], function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.MediaService }]; }, { store: [{
|
|
333
|
-
type: Input
|
|
334
|
-
}], mode: [{
|
|
335
|
-
type: Input
|
|
336
|
-
}], withToggleButton: [{
|
|
337
|
-
type: Input
|
|
338
|
-
}], horizontal: [{
|
|
339
|
-
type: Input
|
|
340
|
-
}], color: [{
|
|
341
|
-
type: Input
|
|
342
|
-
}], iconColor: [{
|
|
343
|
-
type: Input
|
|
344
|
-
}], withTitle: [{
|
|
345
|
-
type: Input
|
|
346
|
-
}], withTooltip: [{
|
|
347
|
-
type: Input
|
|
348
|
-
}], scrollActive: [{
|
|
349
|
-
type: Input
|
|
350
|
-
}], withIcon: [{
|
|
351
|
-
type: Input
|
|
352
|
-
}], icon: [{
|
|
353
|
-
type: Input
|
|
354
|
-
}], xPosition: [{
|
|
355
|
-
type: Input
|
|
356
|
-
}], yPosition: [{
|
|
357
|
-
type: Input
|
|
358
|
-
}], overlayClass: [{
|
|
359
|
-
type: Input
|
|
360
|
-
}], withTitleClass: [{
|
|
361
|
-
type: HostBinding,
|
|
362
|
-
args: ['class.with-title']
|
|
363
|
-
}], withIconClass: [{
|
|
364
|
-
type: HostBinding,
|
|
365
|
-
args: ['class.with-icon']
|
|
366
|
-
}], horizontalClass: [{
|
|
367
|
-
type: HostBinding,
|
|
368
|
-
args: ['class.horizontal']
|
|
369
|
-
}] }); })();
|
|
1
|
+
import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { Media } from '@igo2/core';
|
|
3
|
+
import { EntityStoreWatcher } from '../../entity';
|
|
4
|
+
import { ActionbarMode } from '../shared/action.enums';
|
|
5
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
8
|
+
import * as i2 from "@igo2/core";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@angular/material/button";
|
|
11
|
+
import * as i5 from "@angular/material/icon";
|
|
12
|
+
import * as i6 from "@angular/material/tooltip";
|
|
13
|
+
import * as i7 from "@angular/material/menu";
|
|
14
|
+
import * as i8 from "@angular/material/list";
|
|
15
|
+
import * as i9 from "@angular/material/card";
|
|
16
|
+
import * as i10 from "./actionbar-item.component";
|
|
17
|
+
import * as i11 from "@ngx-translate/core";
|
|
18
|
+
function ActionbarComponent_mat_list_0_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
20
|
+
i0.ɵɵelementStart(0, "div", 5)(1, "button", 6);
|
|
21
|
+
i0.ɵɵlistener("click", function ActionbarComponent_mat_list_0_div_1_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r7.scrollUp()); });
|
|
22
|
+
i0.ɵɵpipe(2, "translate");
|
|
23
|
+
i0.ɵɵelement(3, "mat-icon", 7);
|
|
24
|
+
i0.ɵɵelementEnd()();
|
|
25
|
+
} if (rf & 2) {
|
|
26
|
+
i0.ɵɵadvance(1);
|
|
27
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 1, "igo.common.actionbar.scrollUp"));
|
|
28
|
+
} }
|
|
29
|
+
function ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
31
|
+
i0.ɵɵelementStart(0, "igo-actionbar-item", 8);
|
|
32
|
+
i0.ɵɵlistener("trigger", function ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template_igo_actionbar_item_trigger_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.onTriggerAction(ctx_r9.toggleCollapseAction)); });
|
|
33
|
+
i0.ɵɵelementEnd();
|
|
34
|
+
} if (rf & 2) {
|
|
35
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
36
|
+
i0.ɵɵproperty("withTitle", false)("withIcon", true)("color", ctx_r4.color)("disabled", ctx_r4.store.view.empty)("action", ctx_r4.toggleCollapseAction);
|
|
37
|
+
} }
|
|
38
|
+
function ActionbarComponent_mat_list_0_3_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
40
|
+
i0.ɵɵelementStart(0, "igo-actionbar-item", 11);
|
|
41
|
+
i0.ɵɵlistener("trigger", function ActionbarComponent_mat_list_0_3_ng_template_0_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r15); const action_r13 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r14.onTriggerAction(action_r13)); });
|
|
42
|
+
i0.ɵɵelementEnd();
|
|
43
|
+
} if (rf & 2) {
|
|
44
|
+
const action_r13 = ctx.$implicit;
|
|
45
|
+
const ctx_r12 = i0.ɵɵnextContext(3);
|
|
46
|
+
i0.ɵɵproperty("withTitle", ctx_r12.withTitle)("withIcon", ctx_r12.withIcon)("withTooltip", ctx_r12.withTooltip)("color", ctx_r12.color)("disabled", ctx_r12.store.state.get(action_r13).disabled)("action", action_r13);
|
|
47
|
+
} }
|
|
48
|
+
function ActionbarComponent_mat_list_0_3_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
i0.ɵɵtemplate(0, ActionbarComponent_mat_list_0_3_ng_template_0_Template, 1, 6, "ng-template", 9, 10, i0.ɵɵtemplateRefExtractor);
|
|
50
|
+
i0.ɵɵpipe(2, "async");
|
|
51
|
+
} if (rf & 2) {
|
|
52
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
53
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx_r5.store.view.all$()));
|
|
54
|
+
} }
|
|
55
|
+
function ActionbarComponent_mat_list_0_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
57
|
+
i0.ɵɵelementStart(0, "div", 12)(1, "button", 6);
|
|
58
|
+
i0.ɵɵlistener("click", function ActionbarComponent_mat_list_0_div_4_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.scrollDown()); });
|
|
59
|
+
i0.ɵɵpipe(2, "translate");
|
|
60
|
+
i0.ɵɵelement(3, "mat-icon", 13);
|
|
61
|
+
i0.ɵɵelementEnd()();
|
|
62
|
+
} if (rf & 2) {
|
|
63
|
+
i0.ɵɵadvance(1);
|
|
64
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 1, "igo.common.actionbar.scrollDown"));
|
|
65
|
+
} }
|
|
66
|
+
function ActionbarComponent_mat_list_0_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
+
i0.ɵɵelementStart(0, "mat-list");
|
|
68
|
+
i0.ɵɵtemplate(1, ActionbarComponent_mat_list_0_div_1_Template, 4, 3, "div", 2);
|
|
69
|
+
i0.ɵɵtemplate(2, ActionbarComponent_mat_list_0_igo_actionbar_item_2_Template, 1, 5, "igo-actionbar-item", 3);
|
|
70
|
+
i0.ɵɵtemplate(3, ActionbarComponent_mat_list_0_3_Template, 3, 3, null, 0);
|
|
71
|
+
i0.ɵɵtemplate(4, ActionbarComponent_mat_list_0_div_4_Template, 4, 3, "div", 4);
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
} if (rf & 2) {
|
|
74
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
75
|
+
i0.ɵɵadvance(1);
|
|
76
|
+
i0.ɵɵproperty("ngIf", ctx_r0.heightCondition && ctx_r0.positionConditionTop && ctx_r0.isDesktop);
|
|
77
|
+
i0.ɵɵadvance(1);
|
|
78
|
+
i0.ɵɵproperty("ngIf", ctx_r0.withToggleButton);
|
|
79
|
+
i0.ɵɵadvance(1);
|
|
80
|
+
i0.ɵɵproperty("ngIf", !ctx_r0.collapsed);
|
|
81
|
+
i0.ɵɵadvance(1);
|
|
82
|
+
i0.ɵɵproperty("ngIf", ctx_r0.heightCondition && ctx_r0.positionConditionLow && ctx_r0.isDesktop);
|
|
83
|
+
} }
|
|
84
|
+
function ActionbarComponent_div_1_ng_template_7_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
+
const _r22 = i0.ɵɵgetCurrentView();
|
|
86
|
+
i0.ɵɵelementStart(0, "igo-actionbar-item", 18);
|
|
87
|
+
i0.ɵɵlistener("trigger", function ActionbarComponent_div_1_ng_template_7_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r22); const action_r20 = restoredCtx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.onTriggerAction(action_r20)); });
|
|
88
|
+
i0.ɵɵelementEnd();
|
|
89
|
+
} if (rf & 2) {
|
|
90
|
+
const action_r20 = ctx.$implicit;
|
|
91
|
+
const ctx_r19 = i0.ɵɵnextContext(2);
|
|
92
|
+
i0.ɵɵproperty("withTitle", ctx_r19.withTitle)("withIcon", ctx_r19.withIcon)("color", ctx_r19.color)("action", action_r20);
|
|
93
|
+
} }
|
|
94
|
+
function ActionbarComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
i0.ɵɵelementStart(0, "div")(1, "button", 14);
|
|
96
|
+
i0.ɵɵpipe(2, "translate");
|
|
97
|
+
i0.ɵɵelement(3, "mat-icon", 15);
|
|
98
|
+
i0.ɵɵelementEnd();
|
|
99
|
+
i0.ɵɵelementStart(4, "mat-menu", 16, 17)(6, "mat-list");
|
|
100
|
+
i0.ɵɵtemplate(7, ActionbarComponent_div_1_ng_template_7_Template, 1, 4, "ng-template", 9);
|
|
101
|
+
i0.ɵɵpipe(8, "async");
|
|
102
|
+
i0.ɵɵelementEnd()()();
|
|
103
|
+
} if (rf & 2) {
|
|
104
|
+
const _r18 = i0.ɵɵreference(5);
|
|
105
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
106
|
+
i0.ɵɵadvance(1);
|
|
107
|
+
i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(2, 10, "igo.common.actionbar.icon"))("matMenuTriggerFor", _r18)("disabled", ctx_r1.store.view.empty)("color", ctx_r1.iconColor);
|
|
108
|
+
i0.ɵɵadvance(2);
|
|
109
|
+
i0.ɵɵproperty("svgIcon", ctx_r1.icon);
|
|
110
|
+
i0.ɵɵadvance(1);
|
|
111
|
+
i0.ɵɵclassMap(ctx_r1.overlayClass);
|
|
112
|
+
i0.ɵɵproperty("xPosition", ctx_r1.xPosition)("yPosition", ctx_r1.yPosition);
|
|
113
|
+
i0.ɵɵadvance(3);
|
|
114
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(8, 12, ctx_r1.store.view.all$()));
|
|
115
|
+
} }
|
|
116
|
+
function ActionbarComponent_mat_card_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
117
|
+
const _r26 = i0.ɵɵgetCurrentView();
|
|
118
|
+
i0.ɵɵelementStart(0, "igo-actionbar-item", 18);
|
|
119
|
+
i0.ɵɵlistener("trigger", function ActionbarComponent_mat_card_2_ng_template_2_Template_igo_actionbar_item_trigger_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r26); const action_r24 = restoredCtx.$implicit; const ctx_r25 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r25.onTriggerAction(action_r24)); });
|
|
120
|
+
i0.ɵɵelementEnd();
|
|
121
|
+
i0.ɵɵelement(1, "br");
|
|
122
|
+
} if (rf & 2) {
|
|
123
|
+
const action_r24 = ctx.$implicit;
|
|
124
|
+
const ctx_r23 = i0.ɵɵnextContext(2);
|
|
125
|
+
i0.ɵɵproperty("withTitle", ctx_r23.withTitle)("withIcon", ctx_r23.withIcon)("color", ctx_r23.color)("action", action_r24);
|
|
126
|
+
} }
|
|
127
|
+
function ActionbarComponent_mat_card_2_Template(rf, ctx) { if (rf & 1) {
|
|
128
|
+
i0.ɵɵelementStart(0, "mat-card", 19)(1, "mat-list");
|
|
129
|
+
i0.ɵɵtemplate(2, ActionbarComponent_mat_card_2_ng_template_2_Template, 2, 4, "ng-template", 9);
|
|
130
|
+
i0.ɵɵpipe(3, "async");
|
|
131
|
+
i0.ɵɵelementEnd()();
|
|
132
|
+
} if (rf & 2) {
|
|
133
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
134
|
+
i0.ɵɵadvance(2);
|
|
135
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(3, 1, ctx_r2.store.view.all$()));
|
|
136
|
+
} }
|
|
137
|
+
/**
|
|
138
|
+
* A list of action buttons.
|
|
139
|
+
* This component can be displayed in one of two way: 'dock' or 'overlay'
|
|
140
|
+
*/
|
|
141
|
+
export class ActionbarComponent {
|
|
142
|
+
constructor(overlay, elRef, cdRef, mediaService) {
|
|
143
|
+
this.overlay = overlay;
|
|
144
|
+
this.elRef = elRef;
|
|
145
|
+
this.cdRef = cdRef;
|
|
146
|
+
this.mediaService = mediaService;
|
|
147
|
+
/**
|
|
148
|
+
* Reference to the ActionbarMode enum for use in the template
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
this.actionbarMode = ActionbarMode;
|
|
152
|
+
/**
|
|
153
|
+
* Whether the actionbar is collapsed (Dock mode)
|
|
154
|
+
* @internal
|
|
155
|
+
*/
|
|
156
|
+
this.collapsed = false;
|
|
157
|
+
/**
|
|
158
|
+
* Toggle collapse action (Dock)
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
this.toggleCollapseAction = {
|
|
162
|
+
id: 'actionbar_toggle',
|
|
163
|
+
icon: 'dots-vertical',
|
|
164
|
+
handler: () => {
|
|
165
|
+
this.collapsed = !this.collapsed;
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Height Condition for scroll button
|
|
170
|
+
*/
|
|
171
|
+
this.heightCondition$ = new BehaviorSubject(false);
|
|
172
|
+
/**
|
|
173
|
+
* Position Condition for top scroll button
|
|
174
|
+
*/
|
|
175
|
+
this.positionConditionTop$ = new BehaviorSubject(true);
|
|
176
|
+
/**
|
|
177
|
+
* Position Condition for low scroll button
|
|
178
|
+
*/
|
|
179
|
+
this.positionConditionLow$ = new BehaviorSubject(true);
|
|
180
|
+
/**
|
|
181
|
+
* Actionbar mode
|
|
182
|
+
*/
|
|
183
|
+
this.mode = ActionbarMode.Dock;
|
|
184
|
+
/**
|
|
185
|
+
* Whether a toggle button should be displayed (Dock mode)
|
|
186
|
+
*/
|
|
187
|
+
this.withToggleButton = false;
|
|
188
|
+
/**
|
|
189
|
+
* Whether a the actionbar should display buttons horizontally
|
|
190
|
+
*/
|
|
191
|
+
this.horizontal = false;
|
|
192
|
+
/**
|
|
193
|
+
* Color
|
|
194
|
+
*/
|
|
195
|
+
this.color = 'default';
|
|
196
|
+
/**
|
|
197
|
+
* Color of the button if action mode === overlay
|
|
198
|
+
*/
|
|
199
|
+
this.iconColor = 'default';
|
|
200
|
+
/**
|
|
201
|
+
* Whether action titles are displayed
|
|
202
|
+
*/
|
|
203
|
+
this.withTitle = true;
|
|
204
|
+
/**
|
|
205
|
+
* Whether action tooltips are displayed
|
|
206
|
+
*/
|
|
207
|
+
this.withTooltip = true;
|
|
208
|
+
/**
|
|
209
|
+
* Whether action titles are displayed (condition for scroll button)
|
|
210
|
+
*/
|
|
211
|
+
this.scrollActive = true;
|
|
212
|
+
/**
|
|
213
|
+
* Whether action icons are displayed
|
|
214
|
+
*/
|
|
215
|
+
this.withIcon = true;
|
|
216
|
+
/**
|
|
217
|
+
* Which icon want to be shown
|
|
218
|
+
*/
|
|
219
|
+
this.icon = 'dots-horizontal';
|
|
220
|
+
/**
|
|
221
|
+
* Overlay X position
|
|
222
|
+
*/
|
|
223
|
+
this.xPosition = 'before';
|
|
224
|
+
/**
|
|
225
|
+
* Overlay Y position
|
|
226
|
+
*/
|
|
227
|
+
this.yPosition = 'above';
|
|
228
|
+
this._overlayClass = '';
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Class to add to the actionbar overlay
|
|
232
|
+
*/
|
|
233
|
+
set overlayClass(value) {
|
|
234
|
+
this._overlayClass = value;
|
|
235
|
+
}
|
|
236
|
+
get overlayClass() {
|
|
237
|
+
return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* @ignore
|
|
241
|
+
*/
|
|
242
|
+
get withTitleClass() {
|
|
243
|
+
return this.withTitle;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* @ignore
|
|
247
|
+
*/
|
|
248
|
+
get withIconClass() {
|
|
249
|
+
return this.withIcon;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* @ignore
|
|
253
|
+
*/
|
|
254
|
+
get horizontalClass() {
|
|
255
|
+
return this.horizontal;
|
|
256
|
+
}
|
|
257
|
+
get heightCondition() {
|
|
258
|
+
const el = this.elRef.nativeElement;
|
|
259
|
+
if (this.scrollActive === false) {
|
|
260
|
+
if (el.clientHeight < el.scrollHeight) {
|
|
261
|
+
return true;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
get positionConditionTop() {
|
|
267
|
+
if (this.elRef.nativeElement.scrollTop === 0) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
return true;
|
|
271
|
+
}
|
|
272
|
+
get positionConditionLow() {
|
|
273
|
+
const el = this.elRef.nativeElement;
|
|
274
|
+
if (el.scrollTop >= (el.scrollHeight - el.clientHeight)) {
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
return true;
|
|
278
|
+
}
|
|
279
|
+
get isDesktop() {
|
|
280
|
+
return this.mediaService.getMedia() === Media.Desktop;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* @internal
|
|
284
|
+
*/
|
|
285
|
+
ngOnChanges(changes) {
|
|
286
|
+
const store = changes.store;
|
|
287
|
+
if (store && store.currentValue !== store.previousValue) {
|
|
288
|
+
if (this.watcher !== undefined) {
|
|
289
|
+
this.watcher.destroy();
|
|
290
|
+
}
|
|
291
|
+
this.watcher = new EntityStoreWatcher(this.store, this.cdRef);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* @internal
|
|
296
|
+
*/
|
|
297
|
+
ngOnDestroy() {
|
|
298
|
+
this.watcher.destroy();
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Invoke the action handler
|
|
302
|
+
* @internal
|
|
303
|
+
*/
|
|
304
|
+
onTriggerAction(action) {
|
|
305
|
+
const args = action.args || [];
|
|
306
|
+
action.handler(...args);
|
|
307
|
+
}
|
|
308
|
+
scrollDown() {
|
|
309
|
+
this.elRef.nativeElement.scrollBy(0, 52);
|
|
310
|
+
}
|
|
311
|
+
scrollUp() {
|
|
312
|
+
this.elRef.nativeElement.scrollBy(0, -52);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
ActionbarComponent.ɵfac = function ActionbarComponent_Factory(t) { return new (t || ActionbarComponent)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.MediaService)); };
|
|
316
|
+
ActionbarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionbarComponent, selectors: [["igo-actionbar"]], hostVars: 6, hostBindings: function ActionbarComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
317
|
+
i0.ɵɵclassProp("with-title", ctx.withTitleClass)("with-icon", ctx.withIconClass)("horizontal", ctx.horizontalClass);
|
|
318
|
+
} }, inputs: { store: "store", mode: "mode", withToggleButton: "withToggleButton", horizontal: "horizontal", color: "color", iconColor: "iconColor", withTitle: "withTitle", withTooltip: "withTooltip", scrollActive: "scrollActive", withIcon: "withIcon", icon: "icon", xPosition: "xPosition", yPosition: "yPosition", overlayClass: "overlayClass" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [[4, "ngIf"], ["class", "context-menu-card mat-elevation-z4", 4, "ngIf"], ["id", "topChevron", 4, "ngIf"], ["color", "accent", 3, "withTitle", "withIcon", "color", "disabled", "action", "trigger", 4, "ngIf"], ["id", "lowChevron", 4, "ngIf"], ["id", "topChevron"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "matTooltip", "click"], ["svgIcon", "chevron-up"], ["color", "accent", 3, "withTitle", "withIcon", "color", "disabled", "action", "trigger"], ["ngFor", "", 3, "ngForOf"], ["buttonContent", ""], ["color", "accent", 3, "withTitle", "withIcon", "withTooltip", "color", "disabled", "action", "trigger"], ["id", "lowChevron"], ["svgIcon", "chevron-down"], ["mat-icon-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "buttonOverlay", 3, "matTooltip", "matMenuTriggerFor", "disabled", "color"], [3, "svgIcon"], ["overlapTrigger", "true", 1, "igo-compact-menu", "igo-no-min-width-menu", 3, "xPosition", "yPosition"], ["actionbarMenu", "matMenu"], ["color", "accent", 3, "withTitle", "withIcon", "color", "action", "trigger"], [1, "context-menu-card", "mat-elevation-z4"]], template: function ActionbarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
319
|
+
i0.ɵɵtemplate(0, ActionbarComponent_mat_list_0_Template, 5, 4, "mat-list", 0);
|
|
320
|
+
i0.ɵɵtemplate(1, ActionbarComponent_div_1_Template, 9, 14, "div", 0);
|
|
321
|
+
i0.ɵɵtemplate(2, ActionbarComponent_mat_card_2_Template, 4, 3, "mat-card", 1);
|
|
322
|
+
} if (rf & 2) {
|
|
323
|
+
i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Dock);
|
|
324
|
+
i0.ɵɵadvance(1);
|
|
325
|
+
i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Overlay);
|
|
326
|
+
i0.ɵɵadvance(1);
|
|
327
|
+
i0.ɵɵproperty("ngIf", ctx.mode === ctx.actionbarMode.Context);
|
|
328
|
+
} }, dependencies: [i3.NgForOf, i3.NgIf, i4.MatButton, i5.MatIcon, i6.MatTooltip, i7.MatMenu, i7.MatMenuTrigger, i8.MatList, i9.MatCard, i10.ActionbarItemComponent, i3.AsyncPipe, i11.TranslatePipe], styles: ["[_nghost-%COMP%]{display:block;height:100%;overflow:auto;position:relative}button[_ngcontent-%COMP%]{margin:4px}.buttonOverlay[_ngcontent-%COMP%]{margin:0}mat-list[_ngcontent-%COMP%]{padding-top:0}.horizontal[_nghost-%COMP%]{max-width:100%;overflow:visible;overflow:initial}.horizontal[_nghost-%COMP%] mat-list[_ngcontent-%COMP%]{width:auto;white-space:nowrap}.horizontal[_nghost-%COMP%] igo-actionbar-item[_ngcontent-%COMP%]{display:inline-block}[_nghost-%COMP%] .mat-list .mat-list-item .mat-list-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar{height:46px}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content{display:-webkit-flex;height:46px;padding:3px}[_nghost-%COMP%] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content>mat-icon{padding:8px}igo-actionbar-item[_ngcontent-%COMP%] mat-list-item [mat-list-avatar]{height:auto;width:40px}igo-actionbar-item[_ngcontent-%COMP%] mat-list-item:hover{cursor:pointer}.context-menu-card[_ngcontent-%COMP%]{padding:8px 3px;margin:10px}#topChevron[_ngcontent-%COMP%]{position:sticky;top:0;background-color:#fff;z-index:3}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#topChevron[_ngcontent-%COMP%]{position:fixed;top:auto;top:initial}}@supports (-ms-accelerator: true){#topChevron[_ngcontent-%COMP%]{position:fixed;top:auto;top:initial}}#lowChevron[_ngcontent-%COMP%]{position:fixed;position:sticky;bottom:0;background-color:#fff;z-index:3}"], changeDetection: 0 });
|
|
329
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionbarComponent, [{
|
|
330
|
+
type: Component,
|
|
331
|
+
args: [{ selector: 'igo-actionbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-list *ngIf=\"mode === actionbarMode.Dock\">\n\n <div *ngIf=\"heightCondition && positionConditionTop && isDesktop\"\n id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\">\n <mat-icon svgIcon=\"chevron-up\"></mat-icon>\n </button>\n </div>\n\n <igo-actionbar-item\n *ngIf=\"withToggleButton\"\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color\"\n [disabled]=\"store.view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\">\n </igo-actionbar-item>\n\n <ng-template #buttonContent *ngIf=\"!collapsed\" ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [withTooltip]=\"withTooltip\"\n [color]=\"color\"\n [disabled]=\"store.state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n\n <div *ngIf=\"heightCondition && positionConditionLow && isDesktop\"\n id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n </div>\n\n</mat-list>\n\n<div *ngIf=\"mode === actionbarMode.Overlay\">\n <button class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store.view.empty\"\n [color]=\"iconColor\">\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\n </button>\n\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n [class]=\"overlayClass\">\n\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n </ng-template>\n </mat-list>\n </mat-menu>\n</div>\n<mat-card *ngIf=\"mode === actionbarMode.Context\" class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n <ng-template ngFor let-action [ngForOf]=\"store.view.all$() | async\">\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\">\n </igo-actionbar-item>\n <br/>\n </ng-template>\n </mat-list>\n</mat-card>\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}button{margin:4px}.buttonOverlay{margin:0}mat-list{padding-top:0}:host.horizontal{max-width:100%;overflow:visible;overflow:initial}:host.horizontal mat-list{width:auto;white-space:nowrap}:host.horizontal igo-actionbar-item{display:inline-block}:host ::ng-deep .mat-list .mat-list-item .mat-list-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;max-height:36px;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar{height:46px}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content{display:-webkit-flex;height:46px;padding:3px}:host ::ng-deep .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content>mat-icon{padding:8px}igo-actionbar-item ::ng-deep mat-list-item [mat-list-avatar]{height:auto;width:40px}igo-actionbar-item ::ng-deep mat-list-item:hover{cursor:pointer}.context-menu-card{padding:8px 3px;margin:10px}#topChevron{position:sticky;top:0;background-color:#fff;z-index:3}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#topChevron{position:fixed;top:auto;top:initial}}@supports (-ms-accelerator: true){#topChevron{position:fixed;top:auto;top:initial}}#lowChevron{position:fixed;position:sticky;bottom:0;background-color:#fff;z-index:3}\n"] }]
|
|
332
|
+
}], function () { return [{ type: i1.Overlay }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.MediaService }]; }, { store: [{
|
|
333
|
+
type: Input
|
|
334
|
+
}], mode: [{
|
|
335
|
+
type: Input
|
|
336
|
+
}], withToggleButton: [{
|
|
337
|
+
type: Input
|
|
338
|
+
}], horizontal: [{
|
|
339
|
+
type: Input
|
|
340
|
+
}], color: [{
|
|
341
|
+
type: Input
|
|
342
|
+
}], iconColor: [{
|
|
343
|
+
type: Input
|
|
344
|
+
}], withTitle: [{
|
|
345
|
+
type: Input
|
|
346
|
+
}], withTooltip: [{
|
|
347
|
+
type: Input
|
|
348
|
+
}], scrollActive: [{
|
|
349
|
+
type: Input
|
|
350
|
+
}], withIcon: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}], icon: [{
|
|
353
|
+
type: Input
|
|
354
|
+
}], xPosition: [{
|
|
355
|
+
type: Input
|
|
356
|
+
}], yPosition: [{
|
|
357
|
+
type: Input
|
|
358
|
+
}], overlayClass: [{
|
|
359
|
+
type: Input
|
|
360
|
+
}], withTitleClass: [{
|
|
361
|
+
type: HostBinding,
|
|
362
|
+
args: ['class.with-title']
|
|
363
|
+
}], withIconClass: [{
|
|
364
|
+
type: HostBinding,
|
|
365
|
+
args: ['class.with-icon']
|
|
366
|
+
}], horizontalClass: [{
|
|
367
|
+
type: HostBinding,
|
|
368
|
+
args: ['class.horizontal']
|
|
369
|
+
}] }); })();
|
|
370
370
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2FjdGlvbi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2FjdGlvbi9hY3Rpb25iYXIvYWN0aW9uYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFFWCx1QkFBdUIsRUFLeEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7SUNoQm5DLDhCQUNrQixnQkFBQTtJQU1kLDJLQUFTLGVBQUEsaUJBQVUsQ0FBQSxJQUFDOztJQUNwQiw4QkFBMEM7SUFDNUMsaUJBQVMsRUFBQTs7SUFIUCxlQUEwRDtJQUExRCxrRkFBMEQ7Ozs7SUFNOUQsNkNBUW9EO0lBQWxELDJNQUFXLGVBQUEsbURBQXFDLENBQUEsSUFBQztJQUNuRCxpQkFBcUI7OztJQU5uQixpQ0FBbUIsa0JBQUEsdUJBQUEscUNBQUEsdUNBQUE7Ozs7SUFTbkIsOENBUXNDO0lBQXBDLHFRQUFXLGVBQUEsbUNBQXVCLENBQUEsSUFBQztJQUNyQyxpQkFBcUI7Ozs7SUFQbkIsNkNBQXVCLDhCQUFBLG9DQUFBLHdCQUFBLDBEQUFBLHNCQUFBOzs7SUFIM0IsK0hBV2M7Ozs7SUFYa0Qsd0VBQXFDOzs7O0lBYXJHLCtCQUNrQixnQkFBQTtJQU1kLDZL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SyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7b0ZBMU5VLGtCQUFrQjtxRUFBbEIsa0JBQWtCOzs7UUM5Qi9CLDZFQWtEVztRQUVYLG9FQWlDTTtRQUNOLDZFQWNXOztRQXBHQSwwREFBaUM7UUFvRHRDLGVBQW9DO1FBQXBDLDZEQUFvQztRQWtDL0IsZUFBb0M7UUFBcEMsNkRBQW9DOzt1RkR4RGxDLGtCQUFrQjtjQU45QixTQUFTOzJCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTs4SUFvRHRDLEtBQUs7a0JBQWIsS0FBSztZQUtHLElBQUk7a0JBQVosS0FBSztZQUtHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUtHLFVBQVU7a0JBQWxCLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxTQUFTO2tCQUFqQixLQUFLO1lBS0csU0FBUztrQkFBakIsS0FBSztZQUtHLFdBQVc7a0JBQW5CLEtBQUs7WUFLRyxZQUFZO2tCQUFwQixLQUFLO1lBS0csUUFBUTtrQkFBaEIsS0FBSztZQUtHLElBQUk7a0JBQVosS0FBSztZQUtHLFNBQVM7a0JBQWpCLEtBQUs7WUFLRyxTQUFTO2tCQUFqQixLQUFLO1lBTUYsWUFBWTtrQkFEZixLQUFLO1lBYUYsY0FBYztrQkFEakIsV0FBVzttQkFBQyxrQkFBa0I7WUFTM0IsYUFBYTtrQkFEaEIsV0FBVzttQkFBQyxpQkFBaUI7WUFTMUIsZUFBZTtrQkFEbEIsV0FBVzttQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBIb3N0QmluZGluZyxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlLCBNZWRpYSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmVXYXRjaGVyIH0gZnJvbSAnLi4vLi4vZW50aXR5JztcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4uL3NoYXJlZC9hY3Rpb24uaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBY3Rpb25iYXJNb2RlIH0gZnJvbSAnLi4vc2hhcmVkL2FjdGlvbi5lbnVtcyc7XG5pbXBvcnQgeyBBY3Rpb25TdG9yZSB9IGZyb20gJy4uL3NoYXJlZC9zdG9yZSc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQSBsaXN0IG9mIGFjdGlvbiBidXR0b25zLlxuICogVGhpcyBjb21wb25lbnQgY2FuIGJlIGRpc3BsYXllZCBpbiBvbmUgb2YgdHdvIHdheTogJ2RvY2snIG9yICdvdmVybGF5J1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tYWN0aW9uYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbmJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbmJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25iYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgQWN0aW9uYmFyTW9kZSBlbnVtIGZvciB1c2UgaW4gdGhlIHRlbXBsYXRlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgYWN0aW9uYmFyTW9kZSA9IEFjdGlvbmJhck1vZGU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjdGlvbmJhciBpcyBjb2xsYXBzZWQgKERvY2sgbW9kZSlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjb2xsYXBzZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVG9nZ2xlIGNvbGxhcHNlIGFjdGlvbiAoRG9jaylcbiAgICogQGludGVybmFsXG4gICAqL1xuICB0b2dnbGVDb2xsYXBzZUFjdGlvbiA9IHtcbiAgICBpZDogJ2FjdGlvbmJhcl90b2dnbGUnLFxuICAgIGljb246ICdkb3RzLXZlcnRpY2FsJyxcbiAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEFjdGlvbiBzdG9yZSB3YXRjaGVyXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSB3YXRjaGVyOiBFbnRpdHlTdG9yZVdhdGNoZXI8QWN0aW9uPjtcblxuICAvKipcbiAgICogSGVpZ2h0IENvbmRpdGlvbiBmb3Igc2Nyb2xsIGJ1dHRvblxuICAgKi9cbiAgaGVpZ2h0Q29uZGl0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIENvbmRpdGlvbiBmb3IgdG9wIHNjcm9sbCBidXR0b25cbiAgICovXG4gIHBvc2l0aW9uQ29uZGl0aW9uVG9wJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvKipcbiAgICogUG9zaXRpb24gQ29uZGl0aW9uIGZvciBsb3cgc2Nyb2xsIGJ1dHRvblxuICAgKi9cbiAgcG9zaXRpb25Db25kaXRpb25Mb3ckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBBY3Rpb24gc3RvcmVcbiAgICovXG4gIEBJbnB1dCgpIHN0b3JlOiBBY3Rpb25TdG9yZTtcblxuICAvKipcbiAgICogQWN0aW9uYmFyIG1vZGVcbiAgICovXG4gIEBJbnB1dCgpIG1vZGU6IEFjdGlvbmJhck1vZGUgPSBBY3Rpb25iYXJNb2RlLkRvY2s7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSB0b2dnbGUgYnV0dG9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgKERvY2sgbW9kZSlcbiAgICovXG4gIEBJbnB1dCgpIHdpdGhUb2dnbGVCdXR0b24gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciBhIHRoZSBhY3Rpb25iYXIgc2hvdWxkIGRpc3BsYXkgYnV0dG9ucyBob3Jpem9udGFsbHlcbiAgICovXG4gIEBJbnB1dCgpIGhvcml6b250YWwgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ29sb3JcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yID0gJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBDb2xvciBvZiB0aGUgYnV0dG9uIGlmIGFjdGlvbiBtb2RlID09PSBvdmVybGF5XG4gICAqL1xuICBASW5wdXQoKSBpY29uQ29sb3IgPSAnZGVmYXVsdCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWN0aW9uIHRpdGxlcyBhcmUgZGlzcGxheWVkXG4gICAqL1xuICBASW5wdXQoKSB3aXRoVGl0bGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFjdGlvbiB0b29sdGlwcyBhcmUgZGlzcGxheWVkXG4gICAqL1xuICBASW5wdXQoKSB3aXRoVG9vbHRpcCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYWN0aW9uIHRpdGxlcyBhcmUgZGlzcGxheWVkIChjb25kaXRpb24gZm9yIHNjcm9sbCBidXR0b24pXG4gICAqL1xuICBASW5wdXQoKSBzY3JvbGxBY3RpdmUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGFjdGlvbiBpY29ucyBhcmUgZGlzcGxheWVkXG4gICAqL1xuICBASW5wdXQoKSB3aXRoSWNvbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoaWNoIGljb24gd2FudCB0byBiZSBzaG93blxuICAgKi9cbiAgQElucHV0KCkgaWNvbiA9ICdkb3RzLWhvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBPdmVybGF5IFggcG9zaXRpb25cbiAgICovXG4gIEBJbnB1dCgpIHhQb3NpdGlvbiA9ICdiZWZvcmUnO1xuXG4gIC8qKlxuICAgKiBPdmVybGF5IFkgcG9zaXRpb25cbiAgICovXG4gIEBJbnB1dCgpIHlQb3NpdGlvbiA9ICdhYm92ZSc7XG5cbiAgLyoqXG4gICAqIENsYXNzIHRvIGFkZCB0byB0aGUgYWN0aW9uYmFyIG92ZXJsYXlcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBvdmVybGF5Q2xhc3ModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX292ZXJsYXlDbGFzcyA9IHZhbHVlO1xuICB9XG4gIGdldCBvdmVybGF5Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW3RoaXMuX292ZXJsYXlDbGFzcywgJ2lnby1hY3Rpb25iYXItb3ZlcmxheSddLmpvaW4oJyAnKTtcbiAgfVxuICBwcml2YXRlIF9vdmVybGF5Q2xhc3MgPSAnJztcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53aXRoLXRpdGxlJylcbiAgZ2V0IHdpdGhUaXRsZUNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLndpdGhUaXRsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndpdGgtaWNvbicpXG4gIGdldCB3aXRoSWNvbkNsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLndpdGhJY29uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaG9yaXpvbnRhbCcpXG4gIGdldCBob3Jpem9udGFsQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaG9yaXpvbnRhbDtcbiAgfVxuXG4gIGdldCBoZWlnaHRDb25kaXRpb24oKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuc2Nyb2xsQWN0aXZlID09PSBmYWxzZSkge1xuICAgICAgaWYgKGVsLmNsaWVudEhlaWdodCA8IGVsLnNjcm9sbEhlaWdodCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uQ29uZGl0aW9uVG9wKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uQ29uZGl0aW9uTG93KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbC5zY3JvbGxUb3AgPj0gKGVsLnNjcm9sbEhlaWdodCAtIGVsLmNsaWVudEhlaWdodCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgaXNEZXNrdG9wKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lZGlhU2VydmljZS5nZXRNZWRpYSgpID09PSBNZWRpYS5EZXNrdG9wO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwdWJsaWMgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2UpIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHN0b3JlID0gY2hhbmdlcy5zdG9yZTtcbiAgICBpZiAoc3RvcmUgJiYgc3RvcmUuY3VycmVudFZhbHVlICE9PSBzdG9yZS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICBpZiAodGhpcy53YXRjaGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy53YXRjaGVyLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICAgIHRoaXMud2F0Y2hlciA9IG5ldyBFbnRpdHlTdG9yZVdhdGNoZXIodGhpcy5zdG9yZSwgdGhpcy5jZFJlZik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy53YXRjaGVyLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdGhlIGFjdGlvbiBoYW5kbGVyXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25UcmlnZ2VyQWN0aW9uKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgY29uc3QgYXJncyA9IGFjdGlvbi5hcmdzIHx8IFtdO1xuICAgIGFjdGlvbi5oYW5kbGVyKC4uLmFyZ3MpO1xuICB9XG5cbiAgc2Nyb2xsRG93bigpIHtcbiAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsQnkoMCwgNTIpO1xuICB9XG5cbiAgc2Nyb2xsVXAoKSB7XG4gICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEJ5KDAsIC01Mik7XG4gIH1cblxufVxuIiwiPG1hdC1saXN0ICpuZ0lmPVwibW9kZSA9PT0gYWN0aW9uYmFyTW9kZS5Eb2NrXCI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaGVpZ2h0Q29uZGl0aW9uICYmIHBvc2l0aW9uQ29uZGl0aW9uVG9wICYmIGlzRGVza3RvcFwiXG4gICAgICBpZD1cInRvcENoZXZyb25cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmNvbW1vbi5hY3Rpb25iYXIuc2Nyb2xsVXAnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgKGNsaWNrKT1cInNjcm9sbFVwKClcIj5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLXVwXCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGlnby1hY3Rpb25iYXItaXRlbVxuICAgICAgKm5nSWY9XCJ3aXRoVG9nZ2xlQnV0dG9uXCJcbiAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgIFt3aXRoVGl0bGVdPVwiZmFsc2VcIlxuICAgICAgW3dpdGhJY29uXT1cInRydWVcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzdG9yZS52aWV3LmVtcHR5XCJcbiAgICAgIFthY3Rpb25dPVwidG9nZ2xlQ29sbGFwc2VBY3Rpb25cIlxuICAgICAgKHRyaWdnZXIpPVwib25UcmlnZ2VyQWN0aW9uKHRvZ2dsZUNvbGxhcHNlQWN0aW9uKVwiPlxuICAgIDwvaWdvLWFjdGlvbmJhci1pdGVtPlxuXG4gICAgPG5nLXRlbXBsYXRlICNidXR0b25Db250ZW50ICpuZ0lmPVwiIWNvbGxhcHNlZFwiIG5nRm9yIGxldC1hY3Rpb24gW25nRm9yT2ZdPVwic3RvcmUudmlldy5hbGwkKCkgfCBhc3luY1wiPlxuICAgICAgPGlnby1hY3Rpb25iYXItaXRlbVxuICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgIFt3aXRoVGl0bGVdPVwid2l0aFRpdGxlXCJcbiAgICAgICAgW3dpdGhJY29uXT1cIndpdGhJY29uXCJcbiAgICAgICAgW3dpdGhUb29sdGlwXT1cIndpdGhUb29sdGlwXCJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInN0b3JlLnN0YXRlLmdldChhY3Rpb24pLmRpc2FibGVkXCJcbiAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICAodHJpZ2dlcik9XCJvblRyaWdnZXJBY3Rpb24oYWN0aW9uKVwiPlxuICAgICAgPC9pZ28tYWN0aW9uYmFyLWl0ZW0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxkaXYgKm5nSWY9XCJoZWlnaHRDb25kaXRpb24gJiYgcG9zaXRpb25Db25kaXRpb25Mb3cgJiYgaXNEZXNrdG9wXCJcbiAgICAgIGlkPVwibG93Q2hldnJvblwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uY29tbW9uLmFjdGlvbmJhci5zY3JvbGxEb3duJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxEb3duKClcIj5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLWRvd25cIj48L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbjwvbWF0LWxpc3Q+XG5cbjxkaXYgKm5nSWY9XCJtb2RlID09PSBhY3Rpb25iYXJNb2RlLk92ZXJsYXlcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbk92ZXJsYXlcIlxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5jb21tb24uYWN0aW9uYmFyLmljb24nIHwgdHJhbnNsYXRlXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWN0aW9uYmFyTWVudVwiXG4gICAgW2Rpc2FibGVkXT1cInN0b3JlLnZpZXcuZW1wdHlcIlxuICAgIFtjb2xvcl09XCJpY29uQ29sb3JcIj5cbiAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvblwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDxtYXQtbWVudVxuICAgICNhY3Rpb25iYXJNZW51PVwibWF0TWVudVwiXG4gICAgY2xhc3M9XCJpZ28tY29tcGFjdC1tZW51IGlnby1uby1taW4td2lkdGgtbWVudVwiXG4gICAgb3ZlcmxhcFRyaWdnZXI9XCJ0cnVlXCJcbiAgICBbeFBvc2l0aW9uXT1cInhQb3NpdGlvblwiXG4gICAgW3lQb3NpdGlvbl09XCJ5UG9zaXRpb25cIlxuICAgIFtjbGFzc109XCJvdmVybGF5Q2xhc3NcIj5cblxuICAgIDxtYXQtbGlzdD5cbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtYWN0aW9uIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cbiAgICAgICAgPGlnby1hY3Rpb25iYXItaXRlbVxuICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICBbd2l0aFRpdGxlXT1cIndpdGhUaXRsZVwiXG4gICAgICAgICAgW3dpdGhJY29uXT1cIndpdGhJY29uXCJcbiAgICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAodHJpZ2dlcik9XCJvblRyaWdnZXJBY3Rpb24oYWN0aW9uKVwiPlxuICAgICAgICA8L2lnby1hY3Rpb25iYXItaXRlbT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtbGlzdD5cbiAgPC9tYXQtbWVudT5cbjwvZGl2PlxuPG1hdC1jYXJkICpuZ0lmPVwibW9kZSA9PT0gYWN0aW9uYmFyTW9kZS5Db250ZXh0XCIgY2xhc3M9XCJjb250ZXh0LW1lbnUtY2FyZCBtYXQtZWxldmF0aW9uLXo0XCI+XG4gIDxtYXQtbGlzdD5cbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtYWN0aW9uIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cbiAgICAgICAgICA8aWdvLWFjdGlvbmJhci1pdGVtXG4gICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXG4gICAgICAgICAgICBbd2l0aFRpdGxlXT1cIndpdGhUaXRsZVwiXG4gICAgICAgICAgICBbd2l0aEljb25dPVwid2l0aEljb25cIlxuICAgICAgICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICh0cmlnZ2VyKT1cIm9uVHJpZ2dlckFjdGlvbihhY3Rpb24pXCI+XG4gICAgICAgICAgPC9pZ28tYWN0aW9uYmFyLWl0ZW0+XG4gICAgICAgIDxici8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICA8L21hdC1saXN0PlxuPC9tYXQtY2FyZD5cbiJdfQ==
|