@igo2/common 1.15.4 → 16.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common-theme.scss +19 -0
- package/{esm2020 → esm2022}/igo2-common.mjs +4 -4
- package/esm2022/lib/action/action.module.mjs +20 -0
- package/esm2022/lib/action/actionbar/actionbar-item.component.mjs +270 -0
- package/esm2022/lib/action/actionbar/actionbar.component.mjs +389 -0
- package/{esm2020 → esm2022}/lib/action/actionbar/actionbar.module.mjs +57 -57
- package/{esm2020 → esm2022}/lib/action/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/action/shared/action.enums.mjs +7 -7
- package/{esm2020 → esm2022}/lib/action/shared/action.interfaces.mjs +2 -2
- package/{esm2020 → esm2022}/lib/action/shared/index.mjs +4 -4
- package/{esm2020 → esm2022}/lib/action/shared/store.mjs +8 -8
- package/esm2022/lib/backdrop/backdrop.component.mjs +27 -0
- package/{esm2020 → esm2022}/lib/backdrop/backdrop.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/backdrop/index.mjs +2 -2
- package/esm2022/lib/badge-icon/badge-icon.directive.mjs +150 -0
- package/{esm2020 → esm2022}/lib/badge-icon/badge-icon.module.mjs +26 -26
- package/{esm2020 → esm2022}/lib/badge-icon/index.mjs +2 -2
- package/esm2022/lib/clickout/clickout.directive.mjs +33 -0
- package/{esm2020 → esm2022}/lib/clickout/clickout.module.mjs +24 -24
- package/{esm2020 → esm2022}/lib/clickout/index.mjs +2 -2
- package/{esm2020 → esm2022}/lib/clone/clone.module.mjs +24 -24
- package/esm2022/lib/clone/clone.pipe.mjs +24 -0
- package/{esm2020 → esm2022}/lib/clone/index.mjs +2 -2
- package/esm2022/lib/collapsible/collapse.directive.mjs +58 -0
- package/esm2022/lib/collapsible/collapsible.component.mjs +54 -0
- package/{esm2020 → esm2022}/lib/collapsible/collapsible.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/collapsible/index.mjs +3 -3
- package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +121 -0
- package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +32 -0
- package/esm2022/lib/color-picker-form-field/index.mjs +2 -0
- package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +47 -0
- package/{esm2020 → esm2022}/lib/confirm-dialog/confirm-dialog.module.mjs +29 -29
- package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +29 -0
- package/{esm2020 → esm2022}/lib/confirm-dialog/index.mjs +3 -3
- package/esm2022/lib/context-menu/context-menu.directive.mjs +110 -0
- package/{esm2020 → esm2022}/lib/context-menu/context-menu.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/context-menu/index.mjs +3 -3
- package/esm2022/lib/context-menu/long-press.directive.mjs +67 -0
- package/esm2022/lib/custom-html/custom-html.component.mjs +27 -0
- package/{esm2020 → esm2022}/lib/custom-html/custom-html.module.mjs +47 -47
- package/{esm2020 → esm2022}/lib/custom-html/custom-html.pipe.mjs +20 -18
- package/{esm2020 → esm2022}/lib/custom-html/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/dom/dom.interfaces.mjs +2 -2
- package/{esm2020 → esm2022}/lib/dom/dom.module.mjs +21 -23
- package/esm2022/lib/dom/dom.service.mjs +35 -0
- package/{esm2020 → esm2022}/lib/dom/index.mjs +3 -3
- package/esm2022/lib/drag-drop/drag-drop.directive.mjs +85 -0
- package/{esm2020 → esm2022}/lib/drag-drop/drag-drop.module.mjs +24 -24
- package/{esm2020 → esm2022}/lib/drag-drop/index.mjs +2 -2
- package/esm2022/lib/dynamic-component/dynamic-component.module.mjs +20 -0
- package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +138 -0
- package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +22 -0
- package/{esm2020 → esm2022}/lib/dynamic-component/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -2
- package/esm2022/lib/dynamic-component/shared/dynamic-component.mjs +183 -0
- package/{esm2020 → esm2022}/lib/dynamic-component/shared/dynamic-component.service.mjs +30 -29
- package/{esm2020 → esm2022}/lib/dynamic-component/shared/index.mjs +4 -4
- package/esm2022/lib/entity/entity-selector/entity-selector.component.mjs +214 -0
- package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +24 -0
- package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +139 -0
- package/esm2022/lib/entity/entity-table/entity-table.component.mjs +1455 -0
- package/esm2022/lib/entity/entity-table/entity-table.module.mjs +96 -0
- package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +167 -0
- package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -0
- package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +22 -0
- package/{esm2020 → esm2022}/lib/entity/entity.module.mjs +29 -31
- package/{esm2020 → esm2022}/lib/entity/index.mjs +6 -6
- package/{esm2020 → esm2022}/lib/entity/shared/entity.enums.mjs +28 -28
- package/esm2022/lib/entity/shared/entity.interfaces.mjs +2 -0
- package/esm2022/lib/entity/shared/entity.utils.mjs +73 -0
- package/esm2022/lib/entity/shared/index.mjs +11 -0
- package/esm2022/lib/entity/shared/state.mjs +194 -0
- package/esm2022/lib/entity/shared/store-strategy.mjs +73 -0
- package/esm2022/lib/entity/shared/store.mjs +256 -0
- package/esm2022/lib/entity/shared/strategies/filter-custom-function.mjs +80 -0
- package/esm2022/lib/entity/shared/strategies/filter-selection.mjs +81 -0
- package/{esm2020 → esm2022}/lib/entity/shared/strategies/index.mjs +4 -4
- package/esm2022/lib/entity/shared/strategies/strategy.mjs +78 -0
- package/esm2022/lib/entity/shared/transaction.mjs +329 -0
- package/esm2022/lib/entity/shared/view.mjs +330 -0
- package/esm2022/lib/entity/shared/watcher.mjs +135 -0
- package/esm2022/lib/flexible/flexible.component.mjs +153 -0
- package/{esm2020 → esm2022}/lib/flexible/flexible.module.mjs +24 -24
- package/{esm2020 → esm2022}/lib/flexible/flexible.type.mjs +2 -2
- package/{esm2020 → esm2022}/lib/flexible/index.mjs +3 -3
- package/esm2022/lib/form/form/form.component.mjs +125 -0
- package/esm2022/lib/form/form/form.module.mjs +23 -0
- package/esm2022/lib/form/form-field/form-field-select.component.mjs +140 -0
- package/esm2022/lib/form/form-field/form-field-text.component.mjs +113 -0
- package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +114 -0
- package/esm2022/lib/form/form-field/form-field.component.mjs +78 -0
- package/{esm2020 → esm2022}/lib/form/form-field/form-field.module.mjs +74 -74
- package/{esm2020 → esm2022}/lib/form/form-field/index.mjs +5 -5
- package/esm2022/lib/form/form-group/form-group.component.mjs +115 -0
- package/esm2022/lib/form/form-group/form-group.module.mjs +36 -0
- package/esm2022/lib/form/form.module.mjs +27 -0
- package/{esm2020 → esm2022}/lib/form/index.mjs +5 -5
- package/{esm2020 → esm2022}/lib/form/shared/form-field-component.mjs +7 -7
- package/esm2022/lib/form/shared/form-field.service.mjs +29 -0
- package/esm2022/lib/form/shared/form.interfaces.mjs +2 -0
- package/esm2022/lib/form/shared/form.service.mjs +82 -0
- package/esm2022/lib/form/shared/form.utils.mjs +40 -0
- package/{esm2020 → esm2022}/lib/form/shared/index.mjs +6 -6
- package/esm2022/lib/home-button/home-button.component.mjs +30 -0
- package/{esm2020 → esm2022}/lib/home-button/home-button.module.mjs +41 -41
- package/{esm2020 → esm2022}/lib/home-button/index.mjs +2 -2
- package/esm2022/lib/image/image-error.directive.mjs +36 -0
- package/{esm2020 → esm2022}/lib/image/image.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/image/index.mjs +3 -3
- package/esm2022/lib/image/secure-image.pipe.mjs +65 -0
- package/{esm2020 → esm2022}/lib/interactive-tour/index.mjs +5 -5
- package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +161 -0
- package/esm2022/lib/interactive-tour/interactive-tour.interface.mjs +2 -0
- package/esm2022/lib/interactive-tour/interactive-tour.loader.mjs +49 -0
- package/{esm2020 → esm2022}/lib/interactive-tour/interactive-tour.module.mjs +40 -40
- package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +297 -0
- package/{esm2020 → esm2022}/lib/json-dialog/index.mjs +3 -3
- package/esm2022/lib/json-dialog/json-dialog.component.mjs +114 -0
- package/{esm2020 → esm2022}/lib/json-dialog/json-dialog.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/json-dialog/json-dialog.service.mjs +26 -24
- package/{esm2020 → esm2022}/lib/keyvalue/index.mjs +2 -2
- package/{esm2020 → esm2022}/lib/keyvalue/keyvalue.module.mjs +24 -24
- package/{esm2020 → esm2022}/lib/keyvalue/keyvalue.pipe.mjs +18 -18
- package/{esm2020 → esm2022}/lib/list/index.mjs +3 -3
- package/esm2022/lib/list/list-item.directive.mjs +167 -0
- package/esm2022/lib/list/list.component.mjs +268 -0
- package/{esm2020 → esm2022}/lib/list/list.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/panel/index.mjs +2 -2
- package/esm2022/lib/panel/panel.component.mjs +60 -0
- package/{esm2020 → esm2022}/lib/panel/panel.module.mjs +19 -19
- package/{esm2020 → esm2022}/lib/sidenav/index.mjs +2 -2
- package/esm2022/lib/sidenav/sidenav-shim.directive.mjs +59 -0
- package/{esm2020 → esm2022}/lib/sidenav/sidenav.module.mjs +24 -24
- package/{esm2020 → esm2022}/lib/spinner/index.mjs +3 -3
- package/esm2022/lib/spinner/spinner-activity.directive.mjs +55 -0
- package/esm2022/lib/spinner/spinner.component.mjs +38 -0
- package/{esm2020 → esm2022}/lib/spinner/spinner.module.mjs +21 -21
- package/{esm2020 → esm2022}/lib/stop-propagation/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/stop-propagation/stop-drop-propagation.directive.mjs +22 -22
- package/{esm2020 → esm2022}/lib/stop-propagation/stop-propagation.directive.mjs +21 -21
- package/{esm2020 → esm2022}/lib/stop-propagation/stop-propagation.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/table/index.mjs +6 -6
- package/{esm2020 → esm2022}/lib/table/table-action-color.enum.mjs +7 -7
- package/esm2022/lib/table/table-database.mjs +28 -0
- package/esm2022/lib/table/table-datasource.mjs +64 -0
- package/esm2022/lib/table/table-model.interface.mjs +2 -0
- package/esm2022/lib/table/table.component.mjs +302 -0
- package/{esm2020 → esm2022}/lib/table/table.module.mjs +67 -67
- package/{esm2020 → esm2022}/lib/tool/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/tool/shared/index.mjs +6 -6
- package/esm2022/lib/tool/shared/tool-component.mjs +9 -0
- package/esm2022/lib/tool/shared/tool.interface.mjs +2 -0
- package/esm2022/lib/tool/shared/tool.service.mjs +43 -0
- package/{esm2020 → esm2022}/lib/tool/shared/toolbox.enums.mjs +7 -7
- package/esm2022/lib/tool/shared/toolbox.mjs +184 -0
- package/esm2022/lib/tool/tool.module.mjs +26 -0
- package/{esm2020 → esm2022}/lib/tool/toolbox/toolbox.animation.mjs +10 -10
- package/esm2022/lib/tool/toolbox/toolbox.component.mjs +273 -0
- package/esm2022/lib/tool/toolbox/toolbox.module.mjs +24 -0
- package/{esm2020 → esm2022}/lib/widget/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/widget/shared/index.mjs +4 -4
- package/esm2022/lib/widget/shared/widget.interfaces.mjs +2 -0
- package/{esm2020 → esm2022}/lib/widget/shared/widget.mjs +4 -4
- package/esm2022/lib/widget/shared/widget.service.mjs +22 -0
- package/esm2022/lib/widget/widget-outlet/widget-outlet.component.mjs +124 -0
- package/esm2022/lib/widget/widget-outlet/widget-outlet.module.mjs +23 -0
- package/esm2022/lib/widget/widget.module.mjs +21 -0
- package/{esm2020 → esm2022}/lib/workspace/index.mjs +4 -4
- package/{esm2020 → esm2022}/lib/workspace/shared/index.mjs +4 -4
- package/esm2022/lib/workspace/shared/store.mjs +37 -0
- package/{esm2020 → esm2022}/lib/workspace/shared/workspace.interfaces.mjs +2 -2
- package/esm2022/lib/workspace/shared/workspace.mjs +143 -0
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.component.mjs +58 -0
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +23 -0
- package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +94 -0
- package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +23 -0
- package/esm2022/lib/workspace/workspace.module.mjs +20 -0
- package/esm2022/public_api.mjs +76 -0
- package/{fesm2020 → fesm2022}/igo2-common.mjs +9837 -9345
- package/fesm2022/igo2-common.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/action/action.module.d.ts +8 -8
- package/lib/action/action.theming.scss +5 -0
- package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
- package/lib/action/actionbar/actionbar-item.theming.scss +32 -0
- package/lib/action/actionbar/actionbar.component.d.ts +147 -146
- package/lib/action/actionbar/actionbar.module.d.ts +20 -20
- package/lib/action/actionbar/actionbar.theming.scss +22 -0
- 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/collapsible.theming.scss +22 -0
- package/lib/collapsible/index.d.ts +2 -2
- package/lib/color-picker-form-field/color-picker-form-field.component.d.ts +26 -0
- package/lib/color-picker-form-field/color-picker-form-field.module.d.ts +10 -0
- package/lib/color-picker-form-field/index.d.ts +1 -0
- 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-selector/entity-selector.theming.scss +21 -0
- package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
- package/lib/entity/entity-table/entity-table.component.d.ts +327 -333
- package/lib/entity/entity-table/entity-table.module.d.ts +29 -29
- package/lib/entity/entity-table/entity-table.theming.scss +34 -0
- 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-table-paginator/entity-table-paginator.theming.scss +21 -0
- package/lib/entity/entity.module.d.ts +10 -10
- package/lib/entity/entity.theming.scss +10 -0
- 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 +95 -114
- package/lib/entity/shared/entity.utils.d.ts +49 -49
- package/lib/entity/shared/index.d.ts +10 -9
- package/lib/entity/shared/state.d.ts +108 -103
- package/lib/entity/shared/store-strategy.d.ts +38 -0
- package/lib/entity/shared/store.d.ts +147 -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 +180 -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 +29 -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 +61 -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/home-button.theming.scss +18 -0
- 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/interactive-tour/interactive-tour.theming.scss +32 -0
- 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/list/list.theming.scss +40 -0
- 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/panel/panel.theming.scss +30 -0
- 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 +18 -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/tool.theming.scss +5 -0
- package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
- package/lib/tool/toolbox/toolbox.component.d.ts +128 -127
- package/lib/tool/toolbox/toolbox.module.d.ts +13 -13
- package/lib/tool/toolbox/toolbox.theming.scss +105 -0
- 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/locale/en.common.json +43 -0
- package/locale/fr.common.json +43 -0
- package/package.json +30 -28
- package/public_api.d.ts +72 -70
- package/style/partial/common-utils.scss +9 -0
- package/style/partial/common.variables.scss +8 -8
- package/style/style.css +204 -0
- package/esm2020/lib/action/action.module.mjs +0 -27
- package/esm2020/lib/action/actionbar/actionbar-item.component.mjs +0 -252
- package/esm2020/lib/action/actionbar/actionbar.component.mjs +0 -370
- package/esm2020/lib/backdrop/backdrop.component.mjs +0 -26
- package/esm2020/lib/badge-icon/badge-icon.directive.mjs +0 -141
- package/esm2020/lib/clickout/clickout.directive.mjs +0 -32
- package/esm2020/lib/clone/clone.pipe.mjs +0 -24
- package/esm2020/lib/collapsible/collapse.directive.mjs +0 -55
- package/esm2020/lib/collapsible/collapsible.component.mjs +0 -57
- package/esm2020/lib/confirm-dialog/confirm-dialog.component.mjs +0 -44
- package/esm2020/lib/confirm-dialog/confirm-dialog.service.mjs +0 -24
- package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -103
- package/esm2020/lib/context-menu/long-press.directive.mjs +0 -67
- package/esm2020/lib/custom-html/custom-html.component.mjs +0 -28
- package/esm2020/lib/dom/dom.service.mjs +0 -30
- package/esm2020/lib/drag-drop/drag-drop.directive.mjs +0 -88
- package/esm2020/lib/dynamic-component/dynamic-component.module.mjs +0 -31
- package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +0 -122
- package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +0 -28
- package/esm2020/lib/dynamic-component/shared/dynamic-component.mjs +0 -174
- package/esm2020/lib/entity/entity-selector/entity-selector.component.mjs +0 -194
- package/esm2020/lib/entity/entity-selector/entity-selector.module.mjs +0 -32
- package/esm2020/lib/entity/entity-table/entity-table-row.directive.mjs +0 -137
- package/esm2020/lib/entity/entity-table/entity-table.component.mjs +0 -1376
- package/esm2020/lib/entity/entity-table/entity-table.module.mjs +0 -102
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +0 -132
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +0 -2
- package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +0 -28
- package/esm2020/lib/entity/shared/entity.interfaces.mjs +0 -2
- package/esm2020/lib/entity/shared/entity.utils.mjs +0 -67
- package/esm2020/lib/entity/shared/index.mjs +0 -10
- package/esm2020/lib/entity/shared/state.mjs +0 -191
- package/esm2020/lib/entity/shared/store.mjs +0 -288
- package/esm2020/lib/entity/shared/strategies/filter-custom-function.mjs +0 -79
- package/esm2020/lib/entity/shared/strategies/filter-selection.mjs +0 -84
- package/esm2020/lib/entity/shared/strategies/strategy.mjs +0 -75
- package/esm2020/lib/entity/shared/transaction.mjs +0 -316
- package/esm2020/lib/entity/shared/view.mjs +0 -315
- package/esm2020/lib/entity/shared/watcher.mjs +0 -120
- package/esm2020/lib/flexible/flexible.component.mjs +0 -148
- package/esm2020/lib/form/form/form.component.mjs +0 -117
- package/esm2020/lib/form/form/form.module.mjs +0 -40
- package/esm2020/lib/form/form-field/form-field-select.component.mjs +0 -127
- package/esm2020/lib/form/form-field/form-field-text.component.mjs +0 -104
- package/esm2020/lib/form/form-field/form-field-textarea.component.mjs +0 -105
- package/esm2020/lib/form/form-field/form-field.component.mjs +0 -72
- package/esm2020/lib/form/form-group/form-group.component.mjs +0 -105
- package/esm2020/lib/form/form-group/form-group.module.mjs +0 -40
- package/esm2020/lib/form/form.module.mjs +0 -49
- package/esm2020/lib/form/shared/form-field.service.mjs +0 -29
- package/esm2020/lib/form/shared/form.interfaces.mjs +0 -2
- package/esm2020/lib/form/shared/form.service.mjs +0 -81
- package/esm2020/lib/form/shared/form.utils.mjs +0 -40
- package/esm2020/lib/home-button/home-button.component.mjs +0 -31
- package/esm2020/lib/image/image-error.directive.mjs +0 -35
- package/esm2020/lib/image/secure-image.pipe.mjs +0 -59
- package/esm2020/lib/interactive-tour/interactive-tour.component.mjs +0 -135
- package/esm2020/lib/interactive-tour/interactive-tour.interface.mjs +0 -2
- package/esm2020/lib/interactive-tour/interactive-tour.loader.mjs +0 -44
- package/esm2020/lib/interactive-tour/interactive-tour.service.mjs +0 -285
- package/esm2020/lib/json-dialog/json-dialog.component.mjs +0 -109
- package/esm2020/lib/list/list-item.directive.mjs +0 -165
- package/esm2020/lib/list/list.component.mjs +0 -262
- package/esm2020/lib/panel/panel.component.mjs +0 -59
- package/esm2020/lib/sidenav/sidenav-shim.directive.mjs +0 -55
- package/esm2020/lib/spinner/spinner-activity.directive.mjs +0 -47
- package/esm2020/lib/spinner/spinner.component.mjs +0 -35
- package/esm2020/lib/table/table-database.mjs +0 -28
- package/esm2020/lib/table/table-datasource.mjs +0 -61
- package/esm2020/lib/table/table-model.interface.mjs +0 -2
- package/esm2020/lib/table/table.component.mjs +0 -297
- package/esm2020/lib/tool/shared/tool-component.mjs +0 -9
- package/esm2020/lib/tool/shared/tool.interface.mjs +0 -2
- package/esm2020/lib/tool/shared/tool.service.mjs +0 -43
- package/esm2020/lib/tool/shared/toolbox.mjs +0 -179
- package/esm2020/lib/tool/tool.module.mjs +0 -32
- package/esm2020/lib/tool/toolbox/toolbox.component.mjs +0 -255
- package/esm2020/lib/tool/toolbox/toolbox.module.mjs +0 -36
- package/esm2020/lib/widget/shared/widget.interfaces.mjs +0 -2
- package/esm2020/lib/widget/shared/widget.service.mjs +0 -20
- package/esm2020/lib/widget/widget-outlet/widget-outlet.component.mjs +0 -116
- package/esm2020/lib/widget/widget-outlet/widget-outlet.module.mjs +0 -32
- package/esm2020/lib/widget/widget.module.mjs +0 -32
- package/esm2020/lib/workspace/shared/store.mjs +0 -40
- package/esm2020/lib/workspace/shared/workspace.mjs +0 -117
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.component.mjs +0 -51
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -32
- package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +0 -88
- package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +0 -32
- package/esm2020/lib/workspace/workspace.module.mjs +0 -27
- package/esm2020/public_api.mjs +0 -74
- package/fesm2015/igo2-common.mjs +0 -10329
- package/fesm2015/igo2-common.mjs.map +0 -1
- package/fesm2020/igo2-common.mjs.map +0 -1
- package/style/common.theming.scss +0 -12
- package/style/partial/action.scss +0 -18
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, Input } from '@angular/core';
|
|
2
|
-
import { of } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./interactive-tour.service";
|
|
5
|
-
import * as i2 from "../tool/shared/tool.service";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
import * as i4 from "@angular/material/icon";
|
|
8
|
-
import * as i5 from "@angular/material/button";
|
|
9
|
-
import * as i6 from "@angular/material/tooltip";
|
|
10
|
-
import * as i7 from "@ngx-translate/core";
|
|
11
|
-
function InteractiveTourComponent_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
-
const _r2 = i0.ɵɵgetCurrentView();
|
|
13
|
-
i0.ɵɵelementStart(0, "button", 1);
|
|
14
|
-
i0.ɵɵlistener("click", function InteractiveTourComponent_button_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.startInteractiveTour()); });
|
|
15
|
-
i0.ɵɵelementStart(1, "span", 2);
|
|
16
|
-
i0.ɵɵtext(2);
|
|
17
|
-
i0.ɵɵpipe(3, "translate");
|
|
18
|
-
i0.ɵɵpipe(4, "translate");
|
|
19
|
-
i0.ɵɵpipe(5, "async");
|
|
20
|
-
i0.ɵɵelementEnd();
|
|
21
|
-
i0.ɵɵelement(6, "mat-icon", 3);
|
|
22
|
-
i0.ɵɵpipe(7, "translate");
|
|
23
|
-
i0.ɵɵpipe(8, "translate");
|
|
24
|
-
i0.ɵɵelementEnd();
|
|
25
|
-
} if (rf & 2) {
|
|
26
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
27
|
-
i0.ɵɵproperty("ngClass", ctx_r0.getClass())("disabled", ctx_r0.disabledTourButton);
|
|
28
|
-
i0.ɵɵadvance(2);
|
|
29
|
-
i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(3, 5, "igo.common.interactiveTour.buttonTitle"), " ", i0.ɵɵpipeBind1(4, 7, i0.ɵɵpipeBind1(5, 9, ctx_r0.discoverTitleInLocale$)), "");
|
|
30
|
-
i0.ɵɵadvance(4);
|
|
31
|
-
i0.ɵɵproperty("matTooltip", ctx_r0.disabledTourButton ? i0.ɵɵpipeBind1(7, 11, "igo.common.interactiveTour.disaledTooltipTourToolButton") : i0.ɵɵpipeBind1(8, 13, "igo.common.interactiveTour.tooltipTourToolButton"));
|
|
32
|
-
} }
|
|
33
|
-
export class InteractiveTourComponent {
|
|
34
|
-
constructor(interactiveTourService, toolService) {
|
|
35
|
-
this.interactiveTourService = interactiveTourService;
|
|
36
|
-
this.toolService = toolService;
|
|
37
|
-
/**
|
|
38
|
-
* Toolbox that holds main tools
|
|
39
|
-
*/
|
|
40
|
-
this.tourToStart = '';
|
|
41
|
-
this.discoverTitleInLocale$ = of('IGO');
|
|
42
|
-
}
|
|
43
|
-
getClass() {
|
|
44
|
-
return {
|
|
45
|
-
'tour-button-tool-icon': this.styleButton === 'icon',
|
|
46
|
-
'tour-button-tool': this.styleButton === 'raised'
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
get toolbox() {
|
|
50
|
-
return this.toolService.toolbox;
|
|
51
|
-
}
|
|
52
|
-
getTourToStart() {
|
|
53
|
-
if (this.tourToStart) {
|
|
54
|
-
return this.tourToStart;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
return this.activeToolName;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
get activeToolName() {
|
|
61
|
-
if (this.toolbox) {
|
|
62
|
-
if (this.isActiveTool) {
|
|
63
|
-
return this.toolbox.activeTool$.getValue().name;
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
return 'global';
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
get isActiveTool() {
|
|
74
|
-
if (this.toolbox) {
|
|
75
|
-
return this.toolbox.activeTool$.getValue() !== undefined;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return undefined;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
get isToolHaveTour() {
|
|
82
|
-
if (this.activeToolName === 'about' && !this.tourToStart) {
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
return this.interactiveTourService.isToolHaveTourConfig(this.getTourToStart());
|
|
86
|
-
}
|
|
87
|
-
get showTourButton() {
|
|
88
|
-
// 2 conditions to show: have Tour on tool in Config file and if we are in mobile displayInMobile= true
|
|
89
|
-
let haveTour;
|
|
90
|
-
haveTour = this.isToolHaveTour;
|
|
91
|
-
if (haveTour === false) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
let inMobileAndShow;
|
|
95
|
-
if (this.interactiveTourService.isMobile()) {
|
|
96
|
-
inMobileAndShow = this.isTourDisplayInMobile;
|
|
97
|
-
if (inMobileAndShow === false) {
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
get isTourDisplayInMobile() {
|
|
104
|
-
return this.interactiveTourService.isTourDisplayInMobile();
|
|
105
|
-
}
|
|
106
|
-
get disabledTourButton() {
|
|
107
|
-
return this.interactiveTourService.disabledTourButton(this.activeToolName);
|
|
108
|
-
}
|
|
109
|
-
startInteractiveTour() {
|
|
110
|
-
const tour = this.getTourToStart();
|
|
111
|
-
if (tour) {
|
|
112
|
-
this.interactiveTourService.startTour(tour);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
InteractiveTourComponent.ɵfac = function InteractiveTourComponent_Factory(t) { return new (t || InteractiveTourComponent)(i0.ɵɵdirectiveInject(i1.InteractiveTourService), i0.ɵɵdirectiveInject(i2.ToolService)); };
|
|
120
|
-
InteractiveTourComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: InteractiveTourComponent, selectors: [["igo-interactive-tour"]], inputs: { tourToStart: "tourToStart", styleButton: "styleButton", discoverTitleInLocale$: "discoverTitleInLocale$" }, decls: 1, vars: 1, consts: [["mat-raised-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "ngClass", "disabled", "click", 4, "ngIf"], ["mat-raised-button", "", "tooltip-position", "below", "matTooltipShowDelay", "500", 3, "ngClass", "disabled", "click"], [1, "interactive-tour-button-title"], ["svgIcon", "presentation-play", 3, "matTooltip"]], template: function InteractiveTourComponent_Template(rf, ctx) { if (rf & 1) {
|
|
121
|
-
i0.ɵɵtemplate(0, InteractiveTourComponent_button_0_Template, 9, 15, "button", 0);
|
|
122
|
-
} if (rf & 2) {
|
|
123
|
-
i0.ɵɵproperty("ngIf", ctx.showTourButton);
|
|
124
|
-
} }, dependencies: [i3.NgClass, i3.NgIf, i4.MatIcon, i5.MatButton, i6.MatTooltip, i3.AsyncPipe, i7.TranslatePipe], styles: [".shepherd-has-title .shepherd-content .shepherd-header{padding:.5em .75em}.shepherd-title{margin:0!important;font-weight:revert!important}.shepherd-progress{margin-right:15px;color:#737373}.shepherd-text{font-size:14px!important}.shepherd-element{border:1px solid;border-color:#474747;box-shadow:4px 5px #65656599}\n"], encapsulation: 2 });
|
|
125
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InteractiveTourComponent, [{
|
|
126
|
-
type: Component,
|
|
127
|
-
args: [{ selector: 'igo-interactive-tour', encapsulation: ViewEncapsulation.None, template: "<button *ngIf=\"showTourButton\"\r\n (click) = \"startInteractiveTour()\"\r\n [ngClass]=\"getClass()\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=disabledTourButton>\r\n <span class=\"interactive-tour-button-title\">{{'igo.common.interactiveTour.buttonTitle' | translate}} {{(discoverTitleInLocale$ | async) | translate}}</span>\r\n <mat-icon\r\n svgIcon=\"presentation-play\"\r\n [matTooltip]=\"disabledTourButton ?\r\n ('igo.common.interactiveTour.disaledTooltipTourToolButton' | translate) :\r\n ('igo.common.interactiveTour.tooltipTourToolButton' | translate)\">\r\n </mat-icon>\r\n</button>\r\n", styles: [".shepherd-has-title .shepherd-content .shepherd-header{padding:.5em .75em}.shepherd-title{margin:0!important;font-weight:revert!important}.shepherd-progress{margin-right:15px;color:#737373}.shepherd-text{font-size:14px!important}.shepherd-element{border:1px solid;border-color:#474747;box-shadow:4px 5px #65656599}\n"] }]
|
|
128
|
-
}], function () { return [{ type: i1.InteractiveTourService }, { type: i2.ToolService }]; }, { tourToStart: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}], styleButton: [{
|
|
131
|
-
type: Input
|
|
132
|
-
}], discoverTitleInLocale$: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}] }); })();
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdG91ci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9pbnRlcmFjdGl2ZS10b3VyL2ludGVyYWN0aXZlLXRvdXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvaW50ZXJhY3RpdmUtdG91ci9pbnRlcmFjdGl2ZS10b3VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0lDSHRDLGlDQU1nQztJQUw5Qix3S0FBVyxlQUFBLDZCQUFzQixDQUFBLElBQUM7SUFNbEMsK0JBQTRDO0lBQUEsWUFBeUc7Ozs7SUFBQSxpQkFBTztJQUM1Siw4QkFLVzs7O0lBQ2IsaUJBQVM7OztJQVpQLDJDQUFzQix1Q0FBQTtJQUtzQixlQUF5RztJQUF6Ryw2S0FBeUc7SUFHbkosZUFFaUU7SUFGakUscU5BRWlFOztBRERyRSxNQUFNLE9BQU8sd0JBQXdCO0lBa0ZuQyxZQUNVLHNCQUE4QyxFQUM5QyxXQUF3QjtRQUR4QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbkZsQzs7V0FFRztRQUNNLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLDJCQUFzQixHQUF1QixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUErRTdELENBQUM7SUE3RUosUUFBUTtRQUNOLE9BQU87WUFDTCx1QkFBdUIsRUFBRSxJQUFJLENBQUMsV0FBVyxLQUFLLE1BQU07WUFDcEQsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRO1NBQ2xELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDekI7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUM7YUFDakQ7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUM7YUFDakI7U0FDRjthQUFNO1lBQ0wsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUssU0FBUyxDQUFDO1NBQzFEO2FBQU07WUFDTCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDeEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUNyRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLHVHQUF1RztRQUN2RyxJQUFJLFFBQWlCLENBQUM7UUFDdEIsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0IsSUFBSSxRQUFRLEtBQUssS0FBSyxFQUFFO1lBQ3RCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxJQUFJLGVBQXdCLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDMUMsZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztZQUM3QyxJQUFJLGVBQWUsS0FBSyxLQUFLLEVBQUU7Z0JBQzdCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBT0Qsb0JBQW9CO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQyxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMLE9BQU87U0FDUjtJQUNILENBQUM7O2dHQTlGVSx3QkFBd0I7MkVBQXhCLHdCQUF3QjtRQ1hyQyxnRkFjUzs7UUFkQSx5Q0FBb0I7O3VGRFdoQix3QkFBd0I7Y0FOcEMsU0FBUzsyQkFDRSxzQkFBc0IsaUJBR2pCLGlCQUFpQixDQUFDLElBQUk7bUdBTTVCLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxXQUFXO2tCQUFuQixLQUFLO1lBQ0csc0JBQXNCO2tCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW50ZXJhY3RpdmVUb3VyU2VydmljZSB9IGZyb20gJy4vaW50ZXJhY3RpdmUtdG91ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9vbFNlcnZpY2UgfSBmcm9tICcuLi90b29sL3NoYXJlZC90b29sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28taW50ZXJhY3RpdmUtdG91cicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ludGVyYWN0aXZlLXRvdXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ludGVyYWN0aXZlLXRvdXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGl2ZVRvdXJDb21wb25lbnQge1xyXG4gIC8qKlxyXG4gICAqIFRvb2xib3ggdGhhdCBob2xkcyBtYWluIHRvb2xzXHJcbiAgICovXHJcbiAgQElucHV0KCkgdG91clRvU3RhcnQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHN0eWxlQnV0dG9uOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzY292ZXJUaXRsZUluTG9jYWxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gb2YoJ0lHTycpO1xyXG5cclxuICBnZXRDbGFzcygpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICd0b3VyLWJ1dHRvbi10b29sLWljb24nOiB0aGlzLnN0eWxlQnV0dG9uID09PSAnaWNvbicsXHJcbiAgICAgICd0b3VyLWJ1dHRvbi10b29sJzogdGhpcy5zdHlsZUJ1dHRvbiA9PT0gJ3JhaXNlZCdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQgdG9vbGJveCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRvb2xTZXJ2aWNlLnRvb2xib3g7XHJcbiAgfVxyXG5cclxuICBnZXRUb3VyVG9TdGFydCgpIHtcclxuICAgIGlmICh0aGlzLnRvdXJUb1N0YXJ0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvdXJUb1N0YXJ0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVG9vbE5hbWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aXZlVG9vbE5hbWUoKSB7XHJcbiAgICBpZiAodGhpcy50b29sYm94KSB7XHJcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlVG9vbCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xib3guYWN0aXZlVG9vbCQuZ2V0VmFsdWUoKS5uYW1lO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnZ2xvYmFsJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpc0FjdGl2ZVRvb2woKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy50b29sYm94KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvb2xib3guYWN0aXZlVG9vbCQuZ2V0VmFsdWUoKSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpc1Rvb2xIYXZlVG91cigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVRvb2xOYW1lID09PSAnYWJvdXQnICYmICF0aGlzLnRvdXJUb1N0YXJ0KSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmludGVyYWN0aXZlVG91clNlcnZpY2UuaXNUb29sSGF2ZVRvdXJDb25maWcoXHJcbiAgICAgIHRoaXMuZ2V0VG91clRvU3RhcnQoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldCBzaG93VG91ckJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIC8vIDIgY29uZGl0aW9ucyB0byBzaG93OiBoYXZlIFRvdXIgb24gdG9vbCBpbiBDb25maWcgZmlsZSBhbmQgaWYgd2UgYXJlIGluIG1vYmlsZSBkaXNwbGF5SW5Nb2JpbGU9IHRydWVcclxuICAgIGxldCBoYXZlVG91cjogYm9vbGVhbjtcclxuICAgIGhhdmVUb3VyID0gdGhpcy5pc1Rvb2xIYXZlVG91cjtcclxuICAgIGlmIChoYXZlVG91ciA9PT0gZmFsc2UpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpbk1vYmlsZUFuZFNob3c6IGJvb2xlYW47XHJcbiAgICBpZiAodGhpcy5pbnRlcmFjdGl2ZVRvdXJTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcclxuICAgICAgaW5Nb2JpbGVBbmRTaG93ID0gdGhpcy5pc1RvdXJEaXNwbGF5SW5Nb2JpbGU7XHJcbiAgICAgIGlmIChpbk1vYmlsZUFuZFNob3cgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCBpc1RvdXJEaXNwbGF5SW5Nb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGl2ZVRvdXJTZXJ2aWNlLmlzVG91ckRpc3BsYXlJbk1vYmlsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpc2FibGVkVG91ckJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmludGVyYWN0aXZlVG91clNlcnZpY2UuZGlzYWJsZWRUb3VyQnV0dG9uKHRoaXMuYWN0aXZlVG9vbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGludGVyYWN0aXZlVG91clNlcnZpY2U6IEludGVyYWN0aXZlVG91clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRvb2xTZXJ2aWNlOiBUb29sU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgc3RhcnRJbnRlcmFjdGl2ZVRvdXIoKSB7XHJcbiAgICBjb25zdCB0b3VyID0gdGhpcy5nZXRUb3VyVG9TdGFydCgpO1xyXG4gICAgaWYgKHRvdXIpIHtcclxuICAgICAgdGhpcy5pbnRlcmFjdGl2ZVRvdXJTZXJ2aWNlLnN0YXJ0VG91cih0b3VyKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvbiAqbmdJZj1cInNob3dUb3VyQnV0dG9uXCJcclxuICAoY2xpY2spID0gXCJzdGFydEludGVyYWN0aXZlVG91cigpXCJcclxuICBbbmdDbGFzc109XCJnZXRDbGFzcygpXCJcclxuICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgW2Rpc2FibGVkXT1kaXNhYmxlZFRvdXJCdXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJpbnRlcmFjdGl2ZS10b3VyLWJ1dHRvbi10aXRsZVwiPnt7J2lnby5jb21tb24uaW50ZXJhY3RpdmVUb3VyLmJ1dHRvblRpdGxlJyB8IHRyYW5zbGF0ZX19IHt7KGRpc2NvdmVyVGl0bGVJbkxvY2FsZSQgfCBhc3luYykgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8bWF0LWljb25cclxuICAgIHN2Z0ljb249XCJwcmVzZW50YXRpb24tcGxheVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJkaXNhYmxlZFRvdXJCdXR0b24gP1xyXG4gICAgKCdpZ28uY29tbW9uLmludGVyYWN0aXZlVG91ci5kaXNhbGVkVG9vbHRpcFRvdXJUb29sQnV0dG9uJyB8IHRyYW5zbGF0ZSkgOlxyXG4gICAgKCdpZ28uY29tbW9uLmludGVyYWN0aXZlVG91ci50b29sdGlwVG91clRvb2xCdXR0b24nIHwgdHJhbnNsYXRlKVwiPlxyXG4gIDwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdG91ci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9pbnRlcmFjdGl2ZS10b3VyL2ludGVyYWN0aXZlLXRvdXIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aXZlVG91clN0ZXAge1xyXG4gIGVsZW1lbnQ/OiBzdHJpbmc7XHJcbiAgcG9zaXRpb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIGJlZm9yZVNob3c/OiBJbnRlcmFjdGl2ZVRvdXJBY3Rpb247XHJcbiAgYmVmb3JlQ2hhbmdlPzogSW50ZXJhY3RpdmVUb3VyQWN0aW9uO1xyXG4gIG9uU2hvdz86IEludGVyYWN0aXZlVG91ckFjdGlvbjtcclxuICBvbkhpZGU/OiBJbnRlcmFjdGl2ZVRvdXJBY3Rpb247XHJcbiAgY2xhc3M/OiBzdHJpbmc7XHJcbiAgaGlnaGxpZ2h0Q2xhc3M/OiBzdHJpbmc7XHJcbiAgc2Nyb2xsVG9FbGVtZW50PzogYm9vbGVhbjtcclxuICBkaXNhYmxlSW50ZXJhY3Rpb24/OiBib29sZWFuO1xyXG4gIG5vQmFja0J1dHRvbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJhY3RpdmVUb3VyQWN0aW9uIHtcclxuICBlbGVtZW50Pzogc3RyaW5nO1xyXG4gIGFjdGlvbjogJ2NsaWNrJztcclxuICBjb25kaXRpb24/OiBzdHJpbmc7XHJcbiAgd2FpdEZvcj86IHN0cmluZztcclxuICBtYXhXYWl0PzogbnVtYmVyOyAvLyBpbiBtaWxsaXNlY29uZFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aXZlVG91ck9wdGlvbnMge1xyXG4gIHN0ZXBzOiBJbnRlcmFjdGl2ZVRvdXJTdGVwW107XHJcbiAgcG9zaXRpb24/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgLyogQ1NTIGNsYXNzIHRoYXQgaXMgYWRkZWQgdG8gdGhlIGhpZ2h0bGlnaHQgZWxlbWVudCAqL1xyXG4gIGhpZ2hsaWdodENsYXNzPzogc3RyaW5nO1xyXG4gIC8qIENTUyBjbGFzcyB0aGF0IGlzIGFkZGVkIHRvIHRoZSBtb2RhbCBjb250YWluZXIgKi9cclxuICBjbGFzcz86IHN0cmluZztcclxuICAvKiBTY3JvbGwgdG8gaGlnaGxpZ2h0ZWQgZWxlbWVudD8gKi9cclxuICBzY3JvbGxUb0VsZW1lbnQ/OiBib29sZWFuO1xyXG4gIC8qIERpc2FibGUgYW4gaW50ZXJhY3Rpb24gd2l0aCBlbGVtZW50PyAqL1xyXG4gIGRpc2FibGVJbnRlcmFjdGlvbj86IGJvb2xlYW47XHJcbiAgLyogRWxlbWVudCB0byBjaGVjayB0byBiZSBhYmxlIHRvIHN0YXJ0IHRoZSB0b3VyICovXHJcbiAgY29uZGl0aW9ucz86IHN0cmluZ1tdO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { catchError } from 'rxjs/operators';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common/http";
|
|
5
|
-
import * as i2 from "@igo2/core";
|
|
6
|
-
export class InteractiveTourLoader {
|
|
7
|
-
constructor(http, configService) {
|
|
8
|
-
this.http = http;
|
|
9
|
-
this.configService = configService;
|
|
10
|
-
this.jsonURL = this.getPathToConfigFile();
|
|
11
|
-
}
|
|
12
|
-
loadConfigTour() {
|
|
13
|
-
this.getJSON()
|
|
14
|
-
.subscribe((data) => {
|
|
15
|
-
this.allToursOptions = data;
|
|
16
|
-
}, (err) => {
|
|
17
|
-
throw new Error(`Problem with Interactive tour configuration file: interactiveTour.json not find. Check if the file and is path is set correctly.`);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
getPathToConfigFile() {
|
|
21
|
-
return (this.configService.getConfig('interactiveTour.pathToConfigFile') ||
|
|
22
|
-
'./config/interactiveTour.json');
|
|
23
|
-
}
|
|
24
|
-
getJSON() {
|
|
25
|
-
return this.http.get(this.jsonURL).pipe(catchError((e) => {
|
|
26
|
-
e.error.caught = true;
|
|
27
|
-
throw e;
|
|
28
|
-
}));
|
|
29
|
-
}
|
|
30
|
-
getTourOptionData(toolName) {
|
|
31
|
-
if (this.allToursOptions === undefined) {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
let nameInConfigFile = toolName;
|
|
35
|
-
nameInConfigFile = nameInConfigFile.replace(/\s/g, '');
|
|
36
|
-
return this.allToursOptions[nameInConfigFile];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
InteractiveTourLoader.ɵfac = function InteractiveTourLoader_Factory(t) { return new (t || InteractiveTourLoader)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.ConfigService)); };
|
|
40
|
-
InteractiveTourLoader.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: InteractiveTourLoader, factory: InteractiveTourLoader.ɵfac });
|
|
41
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InteractiveTourLoader, [{
|
|
42
|
-
type: Injectable
|
|
43
|
-
}], function () { return [{ type: i1.HttpClient }, { type: i2.ConfigService }]; }, null); })();
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdG91ci5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9pbnRlcmFjdGl2ZS10b3VyL2ludGVyYWN0aXZlLXRvdXIubG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBSzNDLE1BQU0sT0FBTyxxQkFBcUI7SUFJaEMsWUFBb0IsSUFBZ0IsRUFBVSxhQUE0QjtRQUF0RCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDeEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLENBQUMsT0FBTyxFQUFFO2FBQ1gsU0FBUyxDQUNSLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM5QixDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsa0lBQWtJLENBQUMsQ0FBQztRQUN0SixDQUFDLENBQ0YsQ0FBQztJQUNQLENBQUM7SUFFSyxtQkFBbUI7UUFDeEIsT0FBTyxDQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLGtDQUFrQyxDQUFDO1lBQ2hFLCtCQUErQixDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3JDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxRQUFRO1FBQy9CLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUU7WUFDdEMsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxJQUFJLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztRQUNoQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7OzBGQTNDVSxxQkFBcUI7MkVBQXJCLHFCQUFxQixXQUFyQixxQkFBcUI7dUZBQXJCLHFCQUFxQjtjQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEludGVyYWN0aXZlVG91ck9wdGlvbnMgfSBmcm9tICcuL2ludGVyYWN0aXZlLXRvdXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW50ZXJhY3RpdmVUb3VyTG9hZGVyIHtcclxuICBwcml2YXRlIGpzb25VUkw6IHN0cmluZztcclxuICBwcml2YXRlIGFsbFRvdXJzT3B0aW9ucztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcclxuICAgIHRoaXMuanNvblVSTCA9IHRoaXMuZ2V0UGF0aFRvQ29uZmlnRmlsZSgpO1xyXG4gIH1cclxuXHJcbiAgIHB1YmxpYyBsb2FkQ29uZmlnVG91cigpIHtcclxuICAgICAgdGhpcy5nZXRKU09OKClcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hbGxUb3Vyc09wdGlvbnMgPSBkYXRhO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9ibGVtIHdpdGggSW50ZXJhY3RpdmUgdG91ciBjb25maWd1cmF0aW9uIGZpbGU6IGludGVyYWN0aXZlVG91ci5qc29uIG5vdCBmaW5kLiBDaGVjayBpZiB0aGUgZmlsZSBhbmQgaXMgcGF0aCBpcyBzZXQgY29ycmVjdGx5LmApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgIH1cclxuXHJcbiAgcHVibGljIGdldFBhdGhUb0NvbmZpZ0ZpbGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2ludGVyYWN0aXZlVG91ci5wYXRoVG9Db25maWdGaWxlJykgfHxcclxuICAgICAgJy4vY29uZmlnL2ludGVyYWN0aXZlVG91ci5qc29uJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmpzb25VUkwpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICBlLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgdGhyb3cgZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VG91ck9wdGlvbkRhdGEodG9vbE5hbWUpOiBJbnRlcmFjdGl2ZVRvdXJPcHRpb25zIHtcclxuICAgIGlmICh0aGlzLmFsbFRvdXJzT3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBsZXQgbmFtZUluQ29uZmlnRmlsZSA9IHRvb2xOYW1lO1xyXG4gICAgbmFtZUluQ29uZmlnRmlsZSA9IG5hbWVJbkNvbmZpZ0ZpbGUucmVwbGFjZSgvXFxzL2csICcnKTtcclxuICAgIHJldHVybiB0aGlzLmFsbFRvdXJzT3B0aW9uc1tuYW1lSW5Db25maWdGaWxlXTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@igo2/core";
|
|
4
|
-
import * as i2 from "./interactive-tour.loader";
|
|
5
|
-
import * as i3 from "angular-shepherd";
|
|
6
|
-
export class InteractiveTourService {
|
|
7
|
-
constructor(configService, mediaService, languageService, interactiveTourLoader, shepherdService) {
|
|
8
|
-
this.configService = configService;
|
|
9
|
-
this.mediaService = mediaService;
|
|
10
|
-
this.languageService = languageService;
|
|
11
|
-
this.interactiveTourLoader = interactiveTourLoader;
|
|
12
|
-
this.shepherdService = shepherdService;
|
|
13
|
-
this.nextIndex = 1;
|
|
14
|
-
if (this.isAppHaveTour()) {
|
|
15
|
-
this.interactiveTourLoader.loadConfigTour();
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
isAppHaveTour() {
|
|
19
|
-
const haveTour = this.configService.getConfig('interactiveTour.activateInteractiveTour');
|
|
20
|
-
if (haveTour === undefined) {
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
return haveTour;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
isToolHaveTourConfig(toolName) {
|
|
28
|
-
const checkTourActiveOptions = this.interactiveTourLoader.getTourOptionData(toolName);
|
|
29
|
-
if (checkTourActiveOptions === undefined) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
disabledTourButton(toolName) {
|
|
37
|
-
const stepConfig = this.interactiveTourLoader.getTourOptionData(toolName);
|
|
38
|
-
if (stepConfig?.conditions) {
|
|
39
|
-
for (const condition of stepConfig?.conditions) {
|
|
40
|
-
if (document.querySelector(condition) === null) {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
isMobile() {
|
|
48
|
-
return this.mediaService.isMobile();
|
|
49
|
-
}
|
|
50
|
-
isTourDisplayInMobile() {
|
|
51
|
-
const showInMobile = this.configService.getConfig('interactiveTour.tourInMobile');
|
|
52
|
-
if (showInMobile === undefined) {
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
return this.configService.getConfig('interactiveTour.tourInMobile');
|
|
56
|
-
}
|
|
57
|
-
getButtons(buttonKind) {
|
|
58
|
-
if (buttonKind === 'noBackButton') {
|
|
59
|
-
return [
|
|
60
|
-
{
|
|
61
|
-
classes: 'shepherd-button-primary',
|
|
62
|
-
text: this.languageService.translate.instant('igo.common.interactiveTour.nextButton'),
|
|
63
|
-
type: 'next'
|
|
64
|
-
}
|
|
65
|
-
];
|
|
66
|
-
}
|
|
67
|
-
if (buttonKind === 'first') {
|
|
68
|
-
return [
|
|
69
|
-
{
|
|
70
|
-
classes: 'shepherd-button-secondary',
|
|
71
|
-
text: this.languageService.translate.instant('igo.common.interactiveTour.exitButton'),
|
|
72
|
-
type: 'cancel'
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
classes: 'shepherd-button-primary',
|
|
76
|
-
text: this.languageService.translate.instant('igo.common.interactiveTour.nextButton'),
|
|
77
|
-
type: 'next'
|
|
78
|
-
}
|
|
79
|
-
];
|
|
80
|
-
}
|
|
81
|
-
if (buttonKind === 'last') {
|
|
82
|
-
return [
|
|
83
|
-
{
|
|
84
|
-
classes: 'shepherd-button-secondary',
|
|
85
|
-
text: this.languageService.translate.instant('igo.common.interactiveTour.backButton'),
|
|
86
|
-
type: 'back'
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
classes: 'shepherd-button-primary',
|
|
90
|
-
text: this.languageService.translate.instant('igo.common.interactiveTour.exitButton'),
|
|
91
|
-
type: 'cancel'
|
|
92
|
-
}
|
|
93
|
-
];
|
|
94
|
-
}
|
|
95
|
-
return [
|
|
96
|
-
{
|
|
97
|
-
classes: 'shepherd-button-secondary',
|
|
98
|
-
text: this.languageService.translate.instant('igo.common.interactiveTour.backButton'),
|
|
99
|
-
type: 'back'
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
classes: 'shepherd-button-primary',
|
|
103
|
-
text: this.languageService.translate.instant('igo.common.interactiveTour.nextButton'),
|
|
104
|
-
type: 'next'
|
|
105
|
-
}
|
|
106
|
-
];
|
|
107
|
-
}
|
|
108
|
-
getAction(actionName) {
|
|
109
|
-
const action = {
|
|
110
|
-
click: 'click'
|
|
111
|
-
};
|
|
112
|
-
return action[actionName.toLowerCase()];
|
|
113
|
-
}
|
|
114
|
-
addProgress() {
|
|
115
|
-
const self = this;
|
|
116
|
-
let nbTry = 0;
|
|
117
|
-
const maxTry = 21;
|
|
118
|
-
const checkExist = setInterval(() => {
|
|
119
|
-
if (self.getCurrentStep()) {
|
|
120
|
-
if (self.getCurrentStep().options.attachTo.element && !document.querySelector(self.getCurrentStep().options.attachTo.element)) {
|
|
121
|
-
self.cancel();
|
|
122
|
-
clearInterval(checkExist);
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
const currentStepElement = self.getCurrentStep().getElement();
|
|
127
|
-
if (currentStepElement) {
|
|
128
|
-
const shepherdList = currentStepElement.querySelectorAll('.shepherd-content, .shepherd-text');
|
|
129
|
-
shepherdList.forEach(element => {
|
|
130
|
-
element.classList.add('mat-typography');
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
const header = currentStepElement
|
|
134
|
-
? currentStepElement.querySelector('.shepherd-header')
|
|
135
|
-
: undefined;
|
|
136
|
-
nbTry++;
|
|
137
|
-
if (header || nbTry > maxTry) {
|
|
138
|
-
clearInterval(checkExist);
|
|
139
|
-
}
|
|
140
|
-
if (header) {
|
|
141
|
-
const stepsArray = self.steps;
|
|
142
|
-
const progress = document.createElement('span');
|
|
143
|
-
progress.className = 'shepherd-progress';
|
|
144
|
-
progress.innerText = `${stepsArray.indexOf(self.getCurrentStep()) + 1}/${stepsArray.length}`;
|
|
145
|
-
header.insertBefore(progress, currentStepElement.querySelector('.shepherd-cancel-icon'));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}, 100);
|
|
150
|
-
}
|
|
151
|
-
checkNext(index, tour, service) {
|
|
152
|
-
if (tour.getCurrentStep()) {
|
|
153
|
-
if (tour.getCurrentStep().options.attachTo.element && document.querySelector(tour.getCurrentStep().options.attachTo.element)) {
|
|
154
|
-
tour.complete();
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
if (index.index === tour.steps.length - 1) {
|
|
158
|
-
tour.complete();
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
tour.steps.splice(index.index, 1);
|
|
162
|
-
const nextStep = tour.steps[index.index];
|
|
163
|
-
if (nextStep.options.attachTo.element && !document.querySelector(nextStep.options.attachTo.element)) {
|
|
164
|
-
service.checkNext(index, tour, service);
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
tour._setupModal();
|
|
168
|
-
tour.show(nextStep.id);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
executeAction(step, actionConfig) {
|
|
173
|
-
if (!actionConfig) {
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
if (actionConfig.condition &&
|
|
177
|
-
((actionConfig.condition.charAt(0) === '!' &&
|
|
178
|
-
document.querySelector(actionConfig.condition.slice(1))) ||
|
|
179
|
-
(actionConfig.condition.charAt(0) !== '!' &&
|
|
180
|
-
!document.querySelector(actionConfig.condition)))) {
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
const element = document.querySelector(actionConfig.element || step.element);
|
|
184
|
-
const action = this.getAction(actionConfig.action);
|
|
185
|
-
if (element && action) {
|
|
186
|
-
element[action]();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
executeActionPromise(step, actionConfig) {
|
|
190
|
-
return new Promise((resolve) => {
|
|
191
|
-
this.executeAction(step, actionConfig);
|
|
192
|
-
if (!actionConfig || !actionConfig.waitFor) {
|
|
193
|
-
resolve();
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
let nbTry = 0;
|
|
197
|
-
const maxTry = actionConfig.maxWait ? actionConfig.maxWait / 100 : 20;
|
|
198
|
-
const checkExist = setInterval(() => {
|
|
199
|
-
nbTry++;
|
|
200
|
-
if (nbTry > maxTry || document.querySelector(actionConfig.waitFor)) {
|
|
201
|
-
clearInterval(checkExist);
|
|
202
|
-
resolve();
|
|
203
|
-
}
|
|
204
|
-
}, 100);
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
getShepherdSteps(stepConfig) {
|
|
208
|
-
const shepherdSteps = [];
|
|
209
|
-
let i = 0;
|
|
210
|
-
for (const step of stepConfig.steps) {
|
|
211
|
-
shepherdSteps.push({
|
|
212
|
-
attachTo: {
|
|
213
|
-
element: step.element,
|
|
214
|
-
on: step.position || stepConfig.position
|
|
215
|
-
},
|
|
216
|
-
popperOptions: {
|
|
217
|
-
modifiers: [{ name: 'offset', options: { offset: [0, 15] } }]
|
|
218
|
-
},
|
|
219
|
-
beforeShowPromise: () => {
|
|
220
|
-
return Promise.all([
|
|
221
|
-
this.executeActionPromise(this.previousStep, this.previousStep ? this.previousStep.beforeChange : undefined),
|
|
222
|
-
this.executeActionPromise(step, step.beforeShow)
|
|
223
|
-
]);
|
|
224
|
-
},
|
|
225
|
-
buttons: this.getButtons(i === 0
|
|
226
|
-
? 'first'
|
|
227
|
-
: i + 1 === stepConfig.steps.length
|
|
228
|
-
? 'last'
|
|
229
|
-
: stepConfig.steps[i].noBackButton
|
|
230
|
-
? 'noBackButton'
|
|
231
|
-
: undefined),
|
|
232
|
-
classes: step.class,
|
|
233
|
-
highlightClass: step.highlightClass,
|
|
234
|
-
scrollTo: step.scrollToElement || stepConfig.scrollToElement || true,
|
|
235
|
-
canClickTarget: step.disableInteraction
|
|
236
|
-
? !step.disableInteraction
|
|
237
|
-
: undefined,
|
|
238
|
-
title: this.languageService.translate.instant(step.title || stepConfig.title),
|
|
239
|
-
text: [this.languageService.translate.instant(step.text)],
|
|
240
|
-
when: {
|
|
241
|
-
show: () => {
|
|
242
|
-
this.executeAction(step, step.onShow);
|
|
243
|
-
},
|
|
244
|
-
hide: () => {
|
|
245
|
-
this.previousStep = step;
|
|
246
|
-
this.executeAction(step, step.onHide);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
i++;
|
|
251
|
-
}
|
|
252
|
-
return shepherdSteps;
|
|
253
|
-
}
|
|
254
|
-
startTour(toolName) {
|
|
255
|
-
const stepConfig = this.interactiveTourLoader.getTourOptionData(toolName);
|
|
256
|
-
this.shepherdService.defaultStepOptions = {
|
|
257
|
-
classes: stepConfig.class,
|
|
258
|
-
highlightClass: stepConfig.highlightClass,
|
|
259
|
-
canClickTarget: stepConfig.disableInteraction
|
|
260
|
-
? !stepConfig.disableInteraction
|
|
261
|
-
: true,
|
|
262
|
-
cancelIcon: {
|
|
263
|
-
enabled: true
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
const shepherdSteps = this.getShepherdSteps(stepConfig);
|
|
267
|
-
this.shepherdService.modal = true;
|
|
268
|
-
this.shepherdService.confirmCancel = false;
|
|
269
|
-
this.shepherdService.addSteps(shepherdSteps);
|
|
270
|
-
this.shepherdService.tourObject.on('show', this.addProgress);
|
|
271
|
-
this.shepherdService.tourObject.on('cancel', (index) => {
|
|
272
|
-
this.checkNext(index, this.shepherdService.tourObject, this);
|
|
273
|
-
});
|
|
274
|
-
this.shepherdService.start();
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
InteractiveTourService.ɵfac = function InteractiveTourService_Factory(t) { return new (t || InteractiveTourService)(i0.ɵɵinject(i1.ConfigService), i0.ɵɵinject(i1.MediaService), i0.ɵɵinject(i1.LanguageService), i0.ɵɵinject(i2.InteractiveTourLoader), i0.ɵɵinject(i3.ShepherdService)); };
|
|
278
|
-
InteractiveTourService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: InteractiveTourService, factory: InteractiveTourService.ɵfac, providedIn: 'root' });
|
|
279
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InteractiveTourService, [{
|
|
280
|
-
type: Injectable,
|
|
281
|
-
args: [{
|
|
282
|
-
providedIn: 'root'
|
|
283
|
-
}]
|
|
284
|
-
}], function () { return [{ type: i1.ConfigService }, { type: i1.MediaService }, { type: i1.LanguageService }, { type: i2.InteractiveTourLoader }, { type: i3.ShepherdService }]; }, null); })();
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtdG91ci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvaW50ZXJhY3RpdmUtdG91ci9pbnRlcmFjdGl2ZS10b3VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFjM0MsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNVLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLGVBQWdDLEVBQ2hDLHFCQUE0QyxFQUM1QyxlQUFnQztRQUpoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFQbEMsY0FBUyxHQUFHLENBQUMsQ0FBQztRQVNwQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRU0sYUFBYTtRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLFFBQVEsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxRQUFnQjtRQUMxQyxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FDekUsUUFBUSxDQUNULENBQUM7UUFDRixJQUFJLHNCQUFzQixLQUFLLFNBQVMsRUFBRTtZQUN4QyxPQUFPLEtB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VSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7U0FDRixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDOzs0RkFyVlUsc0JBQXNCOzRFQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCLG1CQUZyQixNQUFNO3VGQUVQLHNCQUFzQjtjQUhsQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNoZXBoZXJkU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItc2hlcGhlcmQnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSwgTWVkaWFTZXJ2aWNlLCBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgSW50ZXJhY3RpdmVUb3VyTG9hZGVyIH0gZnJvbSAnLi9pbnRlcmFjdGl2ZS10b3VyLmxvYWRlcic7XHJcbmltcG9ydCB7XHJcbiAgSW50ZXJhY3RpdmVUb3VyT3B0aW9ucyxcclxuICBJbnRlcmFjdGl2ZVRvdXJTdGVwLFxyXG4gIEludGVyYWN0aXZlVG91ckFjdGlvblxyXG59IGZyb20gJy4vaW50ZXJhY3RpdmUtdG91ci5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJhY3RpdmVUb3VyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBwcmV2aW91c1N0ZXA6IEludGVyYWN0aXZlVG91clN0ZXA7XHJcbiAgcHJpdmF0ZSBuZXh0SW5kZXggPSAxO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbnRlcmFjdGl2ZVRvdXJMb2FkZXI6IEludGVyYWN0aXZlVG91ckxvYWRlcixcclxuICAgIHByaXZhdGUgc2hlcGhlcmRTZXJ2aWNlOiBTaGVwaGVyZFNlcnZpY2VcclxuICApIHtcclxuICAgIGlmICh0aGlzLmlzQXBwSGF2ZVRvdXIoKSkge1xyXG4gICAgICB0aGlzLmludGVyYWN0aXZlVG91ckxvYWRlci5sb2FkQ29uZmlnVG91cigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzQXBwSGF2ZVRvdXIoKSB7XHJcbiAgICBjb25zdCBoYXZlVG91ciA9IHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2ludGVyYWN0aXZlVG91ci5hY3RpdmF0ZUludGVyYWN0aXZlVG91cicpO1xyXG4gICAgaWYgKGhhdmVUb3VyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gaGF2ZVRvdXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNUb29sSGF2ZVRvdXJDb25maWcodG9vbE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hlY2tUb3VyQWN0aXZlT3B0aW9ucyA9IHRoaXMuaW50ZXJhY3RpdmVUb3VyTG9hZGVyLmdldFRvdXJPcHRpb25EYXRhKFxyXG4gICAgICB0b29sTmFtZVxyXG4gICAgKTtcclxuICAgIGlmIChjaGVja1RvdXJBY3RpdmVPcHRpb25zID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzYWJsZWRUb3VyQnV0dG9uKHRvb2xOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHN0ZXBDb25maWc6IEludGVyYWN0aXZlVG91ck9wdGlvbnMgPSB0aGlzLmludGVyYWN0aXZlVG91ckxvYWRlci5nZXRUb3VyT3B0aW9uRGF0YShcclxuICAgICAgdG9vbE5hbWVcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHN0ZXBDb25maWc/LmNvbmRpdGlvbnMpIHtcclxuICAgICAgZm9yIChjb25zdCBjb25kaXRpb24gb2Ygc3RlcENvbmZpZz8uY29uZGl0aW9ucykge1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbmRpdGlvbikgPT09IG51bGwpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWVkaWFTZXJ2aWNlLmlzTW9iaWxlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNUb3VyRGlzcGxheUluTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgc2hvd0luTW9iaWxlID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZyhcclxuICAgICAgJ2ludGVyYWN0aXZlVG91ci50b3VySW5Nb2JpbGUnXHJcbiAgICApO1xyXG4gICAgaWYgKHNob3dJbk1vYmlsZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2ludGVyYWN0aXZlVG91ci50b3VySW5Nb2JpbGUnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QnV0dG9ucyhidXR0b25LaW5kPzogJ2ZpcnN0JyB8ICdsYXN0JyB8ICdub0JhY2tCdXR0b24nKSB7XHJcbiAgICBpZiAoYnV0dG9uS2luZCA9PT0gJ25vQmFja0J1dHRvbicpIHtcclxuICAgICAgcmV0dXJuIFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjbGFzc2VzOiAnc2hlcGhlcmQtYnV0dG9uLXByaW1hcnknLFxyXG4gICAgICAgICAgdGV4dDogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICdpZ28uY29tbW9uLmludGVyYWN0aXZlVG91ci5uZXh0QnV0dG9uJ1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIHR5cGU6ICduZXh0J1xyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuICAgIH1cclxuICAgIGlmIChidXR0b25LaW5kID09PSAnZmlyc3QnKSB7XHJcbiAgICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY2xhc3NlczogJ3NoZXBoZXJkLWJ1dHRvbi1zZWNvbmRhcnknLFxyXG4gICAgICAgICAgdGV4dDogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICdpZ28uY29tbW9uLmludGVyYWN0aXZlVG91ci5leGl0QnV0dG9uJ1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIHR5cGU6ICdjYW5jZWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBjbGFzc2VzOiAnc2hlcGhlcmQtYnV0dG9uLXByaW1hcnknLFxyXG4gICAgICAgICAgdGV4dDogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICdpZ28uY29tbW9uLmludGVyYWN0aXZlVG91ci5uZXh0QnV0dG9uJ1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIHR5cGU6ICduZXh0J1xyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYnV0dG9uS2luZCA9PT0gJ2xhc3QnKSB7XHJcbiAgICAgIHJldHVybiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY2xhc3NlczogJ3NoZXBoZXJkLWJ1dHRvbi1zZWNvbmRhcnknLFxyXG4gICAgICAgICAgdGV4dDogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICdpZ28uY29tbW9uLmludGVyYWN0aXZlVG91ci5iYWNrQnV0dG9uJ1xyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIHR5cGU6ICdiYWNrJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgY2xhc3NlczogJ3NoZXBoZXJkLWJ1dHRvbi1wcmltYXJ5JyxcclxuICAgICAgICAgIHRleHQ6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAnaWdvLmNvbW1vbi5pbnRlcmFjdGl2ZVRvdXIuZXhpdEJ1dHRvbidcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICB0eXBlOiAnY2FuY2VsJ1xyXG4gICAgICAgIH1cclxuICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gW1xyXG4gICAgICB7XHJcbiAgICAgICAgY2xhc3NlczogJ3NoZXBoZXJkLWJ1dHRvbi1zZWNvbmRhcnknLFxyXG4gICAgICAgIHRleHQ6IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgJ2lnby5jb21tb24uaW50ZXJhY3RpdmVUb3VyLmJhY2tCdXR0b24nXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0eXBlOiAnYmFjaydcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGNsYXNzZXM6ICdzaGVwaGVyZC1idXR0b24tcHJpbWFyeScsXHJcbiAgICAgICAgdGV4dDogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAnaWdvLmNvbW1vbi5pbnRlcmFjdGl2ZVRvdXIubmV4dEJ1dHRvbidcclxuICAgICAgICApLFxyXG4gICAgICAgIHR5cGU6ICduZXh0J1xyXG4gICAgICB9XHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBY3Rpb24oYWN0aW9uTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBhY3Rpb24gPSB7XHJcbiAgICAgIGNsaWNrOiAnY2xpY2snXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGFjdGlvblthY3Rpb25OYW1lLnRvTG93ZXJDYXNlKCldO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRQcm9ncmVzcygpIHtcclxuICAgIGNvbnN0IHNlbGYgPSB0aGlzIGFzIGFueTtcclxuICAgIGxldCBuYlRyeSA9IDA7XHJcbiAgICBjb25zdCBtYXhUcnkgPSAyMTtcclxuICAgIGNvbnN0IGNoZWNrRXhpc3QgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGlmIChzZWxmLmdldEN1cnJlbnRTdGVwKCkpIHtcclxuICAgICAgICBpZiAoc2VsZi5nZXRDdXJyZW50U3RlcCgpLm9wdGlvbnMuYXR0YWNoVG8uZWxlbWVudCAmJiAhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxmLmdldEN1cnJlbnRTdGVwKCkub3B0aW9ucy5hdHRhY2hUby5lbGVtZW50KSkge1xyXG4gICAgICAgICAgc2VsZi5jYW5jZWwoKTtcclxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwoY2hlY2tFeGlzdCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwRWxlbWVudCA9IHNlbGYuZ2V0Q3VycmVudFN0ZXAoKS5nZXRFbGVtZW50KCk7XHJcbiAgICAgICAgICBpZiAoY3VycmVudFN0ZXBFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNoZXBoZXJkTGlzdCA9IGN1cnJlbnRTdGVwRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2hlcGhlcmQtY29udGVudCwgLnNoZXBoZXJkLXRleHQnKTtcclxuICAgICAgICAgICAgc2hlcGhlcmRMaXN0LmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKCdtYXQtdHlwb2dyYXBoeScpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IGN1cnJlbnRTdGVwRWxlbWVudFxyXG4gICAgICAgICAgICA/IGN1cnJlbnRTdGVwRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2hlcGhlcmQtaGVhZGVyJylcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgICAgbmJUcnkrKztcclxuICAgICAgICAgIGlmIChoZWFkZXIgfHwgbmJUcnkgPiBtYXhUcnkpIHtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChjaGVja0V4aXN0KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoaGVhZGVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBzQXJyYXkgPSBzZWxmLnN0ZXBzO1xyXG4gICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICAgICAgcHJvZ3Jlc3MuY2xhc3NOYW1lID0gJ3NoZXBoZXJkLXByb2dyZXNzJztcclxuICAgICAgICAgICAgcHJvZ3Jlc3MuaW5uZXJUZXh0ID0gYCR7XHJcbiAgICAgICAgICAgICAgc3RlcHNBcnJheS5pbmRleE9mKHNlbGYuZ2V0Q3VycmVudFN0ZXAoKSkgKyAxXHJcbiAgICAgICAgICAgIH0vJHtzdGVwc0FycmF5Lmxlbmd0aH1gO1xyXG4gICAgICAgICAgICBoZWFkZXIuaW5zZXJ0QmVmb3JlKFxyXG4gICAgICAgICAgICAgIHByb2dyZXNzLFxyXG4gICAgICAgICAgICAgIGN1cnJlbnRTdGVwRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2hlcGhlcmQtY2FuY2VsLWljb24nKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tOZXh0KGluZGV4LCB0b3VyLCBzZXJ2aWNlKSB7XHJcbiAgICBpZiAodG91ci5nZXRDdXJyZW50U3RlcCgpKSB7XHJcbiAgICAgIGlmICh0b3VyLmdldEN1cnJlbnRTdGVwKCkub3B0aW9ucy5hdHRhY2hUby5lbGVtZW50ICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodG91ci5nZXRDdXJyZW50U3RlcCgpLm9wdGlvbnMuYXR0YWNoVG8uZWxlbWVudCkpIHtcclxuICAgICAgICB0b3VyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaW5kZXguaW5kZXggPT09IHRvdXIuc3RlcHMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgIHRvdXIuY29tcGxldGUoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRvdXIuc3RlcHMuc3BsaWNlKGluZGV4LmluZGV4LCAxKTtcclxuICAgICAgY29uc3QgbmV4dFN0ZXAgPSB0b3VyLnN0ZXBzW2luZGV4LmluZGV4XTtcclxuICAgICAgaWYgKG5leHRTdGVwLm9wdGlvbnMuYXR0YWNoVG8uZWxlbWVudCAmJiAhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihuZXh0U3RlcC5vcHRpb25zLmF0dGFjaFRvLmVsZW1lbnQpKSB7XHJcbiAgICAgICAgc2VydmljZS5jaGVja05leHQoaW5kZXgsIHRvdXIsIHNlcnZpY2UpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRvdXIuX3NldHVwTW9kYWwoKTtcclxuICAgICAgICB0b3VyLnNob3cobmV4dFN0ZXAuaWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4ZWN1dGVBY3Rpb24oXHJcbiAgICBzdGVwOiBJbnRlcmFjdGl2ZVRvdXJTdGVwLFxyXG4gICAgYWN0aW9uQ29uZmlnOiBJbnRlcmFjdGl2ZVRvdXJBY3Rpb25cclxuICApIHtcclxuICAgIGlmICghYWN0aW9uQ29uZmlnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIGFjdGlvbkNvbmZpZy5jb25kaXRpb24gJiZcclxuICAgICAgKChhY3Rpb25Db25maWcuY29uZGl0aW9uLmNoYXJBdCgwKSA9PT0gJyEnICYmXHJcbiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihhY3Rpb25Db25maWcuY29uZGl0aW9uLnNsaWNlKDEpKSkgfHxcclxuICAgICAgICAoYWN0aW9uQ29uZmlnLmNvbmRpdGlvbi5jaGFyQXQoMCkgIT09ICchJyAmJlxyXG4gICAgICAgICAgIWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYWN0aW9uQ29uZmlnLmNvbmRpdGlvbikpKVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgIGFjdGlvbkNvbmZpZy5lbGVtZW50IHx8IHN0ZXAuZWxlbWVudFxyXG4gICAgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuZ2V0QWN0aW9uKGFjdGlvbkNvbmZpZy5hY3Rpb24pO1xyXG4gICAgaWYgKGVsZW1lbnQgJiYgYWN0aW9uKSB7XHJcbiAgICAgIGVsZW1lbnRbYWN0aW9uXSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleGVjdXRlQWN0aW9uUHJvbWlzZShcclxuICAgIHN0ZXA6IEludGVyYWN0aXZlVG91clN0ZXAsXHJcbiAgICBhY3Rpb25Db25maWc6IEludGVyYWN0aXZlVG91ckFjdGlvblxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHRoaXMuZXhlY3V0ZUFjdGlvbihzdGVwLCBhY3Rpb25Db25maWcpO1xyXG4gICAgICBpZiAoIWFjdGlvbkNvbmZpZyB8fCAhYWN0aW9uQ29uZmlnLndhaXRGb3IpIHtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBuYlRyeSA9IDA7XHJcbiAgICAgIGNvbnN0IG1heFRyeSA9IGFjdGlvbkNvbmZpZy5tYXhXYWl0ID8gYWN0aW9uQ29uZmlnLm1heFdhaXQgLyAxMDAgOiAyMDtcclxuICAgICAgY29uc3QgY2hlY2tFeGlzdCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICBuYlRyeSsrO1xyXG4gICAgICAgIGlmIChuYlRyeSA+IG1heFRyeSB8fCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGFjdGlvbkNvbmZpZy53YWl0Rm9yKSkge1xyXG4gICAgICAgICAgY2xlYXJJbnRlcnZhbChjaGVja0V4aXN0KTtcclxuICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2hlcGhlcmRTdGVwcyhzdGVwQ29uZmlnOiBJbnRlcmFjdGl2ZVRvdXJPcHRpb25zKSB7XHJcbiAgICBjb25zdCBzaGVwaGVyZFN0ZXBzID0gW107XHJcblxyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgZm9yIChjb25zdCBzdGVwIG9mIHN0ZXBDb25maWcuc3RlcHMpIHtcclxuICAgICAgc2hlcGhlcmRTdGVwcy5wdXNoKHtcclxuICAgICAgICBhdHRhY2hUbzoge1xyXG4gICAgICAgICAgZWxlbWVudDogc3RlcC5lbGVtZW50LFxyXG4gICAgICAgICAgb246IHN0ZXAucG9zaXRpb24gfHwgc3RlcENvbmZpZy5wb3NpdGlvblxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcG9wcGVyT3B0aW9uczoge1xyXG4gICAgICAgICAgbW9kaWZpZXJzOiBbeyBuYW1lOiAnb2Zmc2V0Jywgb3B0aW9uczogeyBvZmZzZXQ6IFswLCAxNV0gfSB9XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYmVmb3JlU2hvd1Byb21pc2U6ICgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBQcm9taXNlLmFsbChbXHJcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZUFjdGlvblByb21pc2UoXHJcbiAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1N0ZXAsXHJcbiAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1N0ZXAgPyB0aGlzLnByZXZpb3VzU3RlcC5iZWZvcmVDaGFuZ2UgOiB1bmRlZmluZWRcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5leGVjdXRlQWN0aW9uUHJvbWlzZShzdGVwLCBzdGVwLmJlZm9yZVNob3cpXHJcbiAgICAgICAgICBdKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGJ1dHRvbnM6IHRoaXMuZ2V0QnV0dG9ucyhcclxuICAgICAgICAgIGkgPT09IDBcclxuICAgICAgICAgICAgPyAnZmlyc3QnXHJcbiAgICAgICAgICAgIDogaSArIDEgPT09IHN0ZXBDb25maWcuc3RlcHMubGVuZ3RoXHJcbiAgICAgICAgICAgID8gJ2xhc3QnXHJcbiAgICAgICAgICAgIDogc3RlcENvbmZpZy5zdGVwc1tpXS5ub0JhY2tCdXR0b25cclxuICAgICAgICAgICAgPyAnbm9CYWNrQnV0dG9uJ1xyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICAgICksXHJcbiAgICAgICAgY2xhc3Nlczogc3RlcC5jbGFzcyxcclxuICAgICAgICBoaWdobGlnaHRDbGFzczogc3RlcC5oaWdobGlnaHRDbGFzcyxcclxuICAgICAgICBzY3JvbGxUbzogc3RlcC5zY3JvbGxUb0VsZW1lbnQgfHwgc3RlcENvbmZpZy5zY3JvbGxUb0VsZW1lbnQgfHwgdHJ1ZSxcclxuICAgICAgICBjYW5DbGlja1RhcmdldDogc3RlcC5kaXNhYmxlSW50ZXJhY3Rpb25cclxuICAgICAgICAgID8gIXN0ZXAuZGlzYWJsZUludGVyYWN0aW9uXHJcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICB0aXRsZTogdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICBzdGVwLnRpdGxlIHx8IHN0ZXBDb25maWcudGl0bGVcclxuICAgICAgICApLFxyXG4gICAgICAgIHRleHQ6IFt0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChzdGVwLnRleHQpXSxcclxuICAgICAgICB3aGVuOiB7XHJcbiAgICAgICAgICBzaG93OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZUFjdGlvbihzdGVwLCBzdGVwLm9uU2hvdyk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgaGlkZTogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnByZXZpb3VzU3RlcCA9IHN0ZXA7XHJcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZUFjdGlvbihzdGVwLCBzdGVwLm9uSGlkZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzaGVwaGVyZFN0ZXBzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXJ0VG91cih0b29sTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBzdGVwQ29uZmlnOiBJbnRlcmFjdGl2ZVRvdXJPcHRpb25zID0gdGhpcy5pbnRlcmFjdGl2ZVRvdXJMb2FkZXIuZ2V0VG91ck9wdGlvbkRhdGEoXHJcbiAgICAgIHRvb2xOYW1lXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc2hlcGhlcmRTZXJ2aWNlLmRlZmF1bHRTdGVwT3B0aW9ucyA9IHtcclxuICAgICAgY2xhc3Nlczogc3RlcENvbmZpZy5jbGFzcyxcclxuICAgICAgaGlnaGxpZ2h0Q2xhc3M6IHN0ZXBDb25maWcuaGlnaGxpZ2h0Q2xhc3MsXHJcbiAgICAgIGNhbkNsaWNrVGFyZ2V0OiBzdGVwQ29uZmlnLmRpc2FibGVJbnRlcmFjdGlvblxyXG4gICAgICAgID8gIXN0ZXBDb25maWcuZGlzYWJsZUludGVyYWN0aW9uXHJcbiAgICAgICAgOiB0cnVlLFxyXG4gICAgICBjYW5jZWxJY29uOiB7XHJcbiAgICAgICAgZW5hYmxlZDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHNoZXBoZXJkU3RlcHMgPSB0aGlzLmdldFNoZXBoZXJkU3RlcHMoc3RlcENvbmZpZyk7XHJcblxyXG4gICAgdGhpcy5zaGVwaGVyZFNlcnZpY2UubW9kYWwgPSB0cnVlO1xyXG4gICAgdGhpcy5zaGVwaGVyZFNlcnZpY2UuY29uZmlybUNhbmNlbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaGVwaGVyZFNlcnZpY2UuYWRkU3RlcHMoc2hlcGhlcmRTdGVwcyk7XHJcblxyXG4gICAgdGhpcy5zaGVwaGVyZFNlcnZpY2UudG91ck9iamVjdC5vbignc2hvdycsIHRoaXMuYWRkUHJvZ3Jlc3MpO1xyXG4gICAgdGhpcy5zaGVwaGVyZFNlcnZpY2UudG91ck9iamVjdC5vbignY2FuY2VsJywgKGluZGV4KSA9PsKge1xyXG4gICAgICB0aGlzLmNoZWNrTmV4dChpbmRleCwgdGhpcy5zaGVwaGVyZFNlcnZpY2UudG91ck9iamVjdCwgdGhpcyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNoZXBoZXJkU2VydmljZS5zdGFydCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|