ngx-bimplus-components 0.0.70 → 0.0.72-draggable-1
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/assets/images/27_Center_Menu.svg +3 -3
- package/assets/images/27_Center_Menu_active.svg +3 -3
- package/assets/images/27_Center_Menu_opened.svg +14 -14
- package/assets/images/6-dots-gray.svg +10 -10
- package/assets/images/6_dots_gray.svg +8 -8
- package/assets/images/Add_Issue_active.svg +12 -12
- package/assets/images/Add_Issue_disabled.svg +12 -12
- package/assets/images/Allplan-Cloud-Viewer-Logo.svg +17 -17
- package/assets/images/Allplan-Connexis-Logo.svg +8 -8
- package/assets/images/Allplan_Bimplus_Logo.svg +14 -14
- package/assets/images/Fullscreen_active.svg +6 -6
- package/assets/images/Fullscreen_disabled.svg +8 -8
- package/assets/images/Hide_active.svg +12 -12
- package/assets/images/Hide_disabled.svg +12 -12
- package/assets/images/IsolateMenuClipped.svg +19 -19
- package/assets/images/IsolateMenuClipped_orange.svg +19 -19
- package/assets/images/IsolateMenuHidden.svg +8 -8
- package/assets/images/IsolateMenuHidden_orange.svg +8 -8
- package/assets/images/IsolateMenuNormal.svg +29 -29
- package/assets/images/IsolateMenuNormal_orange.svg +29 -29
- package/assets/images/IsolationMenuParams.svg +5 -5
- package/assets/images/IsolationMenuParamsOrange.svg +5 -5
- package/assets/images/Isolation_active.svg +12 -12
- package/assets/images/Isolation_disabled.svg +12 -12
- package/assets/images/Markup_active.svg +11 -11
- package/assets/images/Markup_disabled.svg +11 -11
- package/assets/images/Navigation_Map_active.svg +3 -3
- package/assets/images/Navigation_Map_disabled.svg +5 -5
- package/assets/images/Project_Navigation_active.svg +10 -10
- package/assets/images/Project_Navigation_disabled.svg +10 -10
- package/assets/images/Quantity_active.svg +3 -3
- package/assets/images/Quantity_disabled.svg +5 -5
- package/assets/images/Reset_active.svg +10 -10
- package/assets/images/Reset_disabled.svg +10 -10
- package/assets/images/Section_active.svg +3 -3
- package/assets/images/Section_disabled.svg +5 -5
- package/assets/images/Spinner_18_disabled.svg +15 -15
- package/assets/images/View_active.svg +4 -4
- package/assets/images/View_disabled.svg +6 -6
- package/assets/images/bimplus_Components_Account_Settings.svg +14 -14
- package/assets/images/bimplus_Components_Autoconverter.svg +14 -14
- package/assets/images/bimplus_Components_Autoconverter_Active.svg +14 -14
- package/assets/images/bimplus_Components_Autoconverter_Disabled.svg +14 -14
- package/assets/images/bimplus_Components_BIM_Explorer.svg +18 -18
- package/assets/images/bimplus_Components_BIM_Explorer_Active.svg +18 -18
- package/assets/images/bimplus_Components_BIM_Explorer_Disabled.svg +18 -18
- package/assets/images/bimplus_Components_Clear_Cache.svg +16 -16
- package/assets/images/bimplus_Components_Close.svg +3 -3
- package/assets/images/bimplus_Components_Connexis.svg +4 -4
- package/assets/images/bimplus_Components_Connexis_Active.svg +4 -4
- package/assets/images/bimplus_Components_Connexis_Disabled.svg +4 -4
- package/assets/images/bimplus_Components_Desktop_Mode.svg +15 -15
- package/assets/images/bimplus_Components_Documents.svg +14 -14
- package/assets/images/bimplus_Components_Documents_Active.svg +14 -14
- package/assets/images/bimplus_Components_Documents_Disabled.svg +14 -14
- package/assets/images/bimplus_Components_Edit_Profile.svg +8 -8
- package/assets/images/bimplus_Components_Forum.svg +10 -10
- package/assets/images/bimplus_Components_IFC_viewer.svg +9 -9
- package/assets/images/bimplus_Components_IFC_viewer_Active.svg +16 -16
- package/assets/images/bimplus_Components_IFC_viewer_Disabled.svg +9 -9
- package/assets/images/bimplus_Components_ISO.svg +3 -3
- package/assets/images/bimplus_Components_ISO_Active.svg +3 -3
- package/assets/images/bimplus_Components_ISO_Disabled.svg +3 -3
- package/assets/images/bimplus_Components_Info.svg +16 -16
- package/assets/images/bimplus_Components_Info_Active.svg +16 -16
- package/assets/images/bimplus_Components_Languages.svg +5 -5
- package/assets/images/bimplus_Components_Logout.svg +12 -12
- package/assets/images/bimplus_Components_Models.svg +3 -3
- package/assets/images/bimplus_Components_Models_Active.svg +3 -3
- package/assets/images/bimplus_Components_Models_Disabled.svg +3 -3
- package/assets/images/bimplus_Components_Notify_Alert.svg +6 -6
- package/assets/images/bimplus_Components_Notify_Close.svg +3 -3
- package/assets/images/bimplus_Components_Notify_Empty.svg +5 -5
- package/assets/images/bimplus_Components_Notify_Main.svg +5 -5
- package/assets/images/bimplus_Components_Notify_Tick_Up.svg +3 -3
- package/assets/images/bimplus_Components_Projects_Folder.svg +10 -10
- package/assets/images/bimplus_Components_Projects_Folder_Active.svg +10 -10
- package/assets/images/bimplus_Components_Projects_Folder_Disabled.svg +10 -10
- package/assets/images/bimplus_Components_Property_Manager.svg +5 -5
- package/assets/images/bimplus_Components_Property_Manager_Active.svg +5 -5
- package/assets/images/bimplus_Components_Property_Manager_Disabled.svg +5 -5
- package/assets/images/bimplus_Components_Setting_Active.svg +3 -3
- package/assets/images/bimplus_Components_Settings.svg +3 -3
- package/assets/images/bimplus_Components_Settings_Disabled.svg +3 -3
- package/assets/images/bimplus_Components_Shop.svg +13 -13
- package/assets/images/bimplus_Components_Shop_Disabled.svg +13 -13
- package/assets/images/bimplus_Components_Support.svg +21 -21
- package/assets/images/bimplus_Components_Team_Members.svg +4 -4
- package/assets/images/bimplus_Components_Team_Members_Active.svg +4 -4
- package/assets/images/bimplus_Components_Touch_Mode.svg +16 -16
- package/assets/images/bimplus_Components_User_Guide.svg +17 -17
- package/assets/images/bimplus_Components_Users.svg +4 -4
- package/assets/images/bimplus_Components_Users_Active.svg +4 -4
- package/assets/images/bimplus_Components_Users_Disabled.svg +4 -4
- package/assets/images/bimplus_Components_Zoom.svg +5 -5
- package/assets/images/bimplus_Components_navbar_menu.svg +6 -6
- package/assets/images/bimplus_Components_navbar_menu_active.svg +6 -6
- package/assets/images/bimplus_Components_navbar_menu_disabled.svg +6 -6
- package/assets/images/bimplus_Components_submenu_arrow.svg +4 -4
- package/assets/images/bimplus_Remove_Conection.svg +15 -15
- package/assets/images/bimplus_WebIcons_Cross.svg +1 -1
- package/assets/images/checkbox_off.svg +3 -3
- package/assets/images/checkbox_off_disabled.svg +3 -3
- package/assets/images/checkbox_off_hovered.svg +3 -3
- package/assets/images/checkbox_on.svg +4 -4
- package/assets/images/checkbox_on_disabled.svg +4 -4
- package/assets/images/checkbox_on_hovered.svg +4 -4
- package/assets/images/cm_view_front_black.svg +4 -4
- package/assets/images/cm_view_front_orange.svg +4 -4
- package/assets/images/cm_view_perspective_black.svg +3 -3
- package/assets/images/cm_view_perspective_orange.svg +3 -3
- package/assets/images/cm_view_side_black.svg +4 -4
- package/assets/images/cm_view_side_orange.svg +4 -4
- package/assets/images/cm_view_top_black.svg +4 -4
- package/assets/images/cm_view_top_orange.svg +4 -4
- package/assets/images/collapsed_18.svg +3 -3
- package/assets/images/collapsed_18_small.svg +3 -3
- package/assets/images/expanded_18.svg +3 -3
- package/assets/images/expanded_18_small.svg +3 -3
- package/assets/images/ic_drag.svg +8 -8
- package/assets/images/ic_eye_black.svg +5 -5
- package/assets/images/ic_eye_orange.svg +5 -5
- package/assets/images/ic_make_transparent.svg +4 -4
- package/assets/images/ic_make_transparent_active.svg +4 -4
- package/assets/images/ic_reset.svg +3 -3
- package/assets/images/ic_thin_arrow_left.svg +3 -3
- package/assets/images/ic_toggle_off_gray.svg +4 -4
- package/assets/images/ic_toggle_on_green.svg +4 -4
- package/assets/images/ic_toggle_on_light_green.svg +4 -4
- package/assets/images/icon-hide-param-orange.svg +5 -5
- package/assets/images/icon-hide-param-white.svg +5 -5
- package/assets/images/resize_handle_ne.svg +4 -4
- package/assets/images/resize_handle_se.svg +4 -4
- package/assets/languages/strings_cs.json +2310 -2310
- package/assets/languages/strings_de.json +2310 -2310
- package/assets/languages/strings_en.json +2352 -2352
- package/assets/languages/strings_es.json +2310 -2310
- package/assets/languages/strings_fr.json +2310 -2310
- package/assets/languages/strings_it.json +2310 -2310
- package/assets/languages/strings_nl.json +796 -796
- package/assets/languages/strings_ro.json +2310 -2310
- package/assets/languages/strings_ru.json +2310 -2310
- package/assets/languages/strings_tr.json +2310 -2310
- package/assets/languages/strings_us.json +2263 -2263
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.service.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-contact/bimplus-contact.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.component.mjs +75 -10
- package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar-body/bimplus-floating-bar-body.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-dragger/bimplus-floating-bar-dragger.component.mjs +15 -7
- package/esm2022/lib/components/bimplus-floating-bar-header-content/bimplus-floating-bar-header-content.component.mjs +20 -8
- package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +30 -12
- package/esm2022/lib/components/bimplus-floating-bar-hide-objects/bimplus-floating-bar-hide-objects.component.mjs +41 -32
- package/esm2022/lib/components/bimplus-floating-bar-isolation-objects/bimplus-floating-bar-isolation-objects.component.mjs +19 -9
- package/esm2022/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.mjs +19 -9
- package/esm2022/lib/components/bimplus-language-menu/bimplus-language-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-main-menu/bimplus-main-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-navbar/bimplus-navbar.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-navbar/logo-state.enum.mjs +1 -1
- package/esm2022/lib/components/bimplus-notify/bimplus-notify.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/filter-criterium/filter-criterium.component.mjs +2 -2
- package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-panel-toolbar/bimplus-panel-toolbar.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-project-menu/bimplus-project-menu.component.mjs +4 -4
- package/esm2022/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-sidenav/bimplus-sidenav.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-sidenav-drawer-content/bimplus-sidenav-drawer-content.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-storage-info/bimplus-storage-info.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-text-message/bimplus-text-message.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.mjs +62 -22
- package/esm2022/lib/components/bimplus-tool-hub/svgGenerator.mjs +1 -1
- package/esm2022/lib/components/bimplus-tool-hub/tool-hub-item/tool-hub-item.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tool-hub/tool-hub-sub-item/tool-hub-sub-item.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.component.mjs +7 -3
- package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-touch-menu/bimplus-touch-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-user-menu/bimplus-user-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-zoom/bimplus-zoom.component.mjs +3 -3
- package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +3 -3
- package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +3 -3
- package/esm2022/lib/components/project-models/project-models.component.mjs +3 -3
- package/esm2022/lib/components/project-models/project-models.interface.mjs +1 -1
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +1 -1
- package/esm2022/lib/directives/draggable.directive.mjs +8 -2
- package/esm2022/lib/interfaces/bimplus-opacity-properties.interface.mjs +1 -1
- package/esm2022/lib/interfaces/bimplus-visibility-properties.interface.mjs +1 -1
- package/esm2022/lib/services/layout-manager.service.mjs +221 -48
- package/esm2022/lib/services/local-storage.service.mjs +70 -0
- package/esm2022/lib/services/resize-observer.service.mjs +28 -0
- package/esm2022/lib/types/types.mjs +1 -1
- package/esm2022/lib/utils/filterString.mjs +1 -1
- package/esm2022/lib/utils/filterStructureFetcher.mjs +1 -1
- package/esm2022/lib/utils/utils.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ngx-bimplus-components.mjs +728 -288
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.d.ts +2 -2
- package/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.d.ts +1 -1
- package/lib/components/bimplus-floating-bar/bimplus-floating-bar.component.d.ts +20 -4
- package/lib/components/bimplus-floating-bar-dragger/bimplus-floating-bar-dragger.component.d.ts +6 -1
- package/lib/components/bimplus-floating-bar-header-content/bimplus-floating-bar-header-content.component.d.ts +6 -2
- package/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.d.ts +10 -5
- package/lib/components/bimplus-floating-bar-hide-objects/bimplus-floating-bar-hide-objects.component.d.ts +14 -11
- package/lib/components/bimplus-floating-bar-isolation-objects/bimplus-floating-bar-isolation-objects.component.d.ts +5 -3
- package/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.d.ts +5 -3
- package/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.d.ts +18 -9
- package/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.component.d.ts +1 -0
- package/lib/directives/draggable.directive.d.ts +2 -1
- package/lib/services/layout-manager.service.d.ts +55 -3
- package/lib/services/local-storage.service.d.ts +18 -0
- package/lib/services/resize-observer.service.d.ts +12 -0
- package/lib/utils/utils.d.ts +5 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,48 +1,178 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./resize-observer.service";
|
|
5
|
+
import * as i2 from "./local-storage.service";
|
|
3
6
|
export class LayoutManagerService {
|
|
4
|
-
constructor() {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
7
|
+
constructor(resizeObserverService, localStorageService) {
|
|
8
|
+
this.resizeObserverService = resizeObserverService;
|
|
9
|
+
this.localStorageService = localStorageService;
|
|
10
|
+
this.registeredItems$ = new BehaviorSubject([]);
|
|
11
|
+
this.registeredItems = [];
|
|
12
|
+
this.CONFIG = 'layoutManagerConfig';
|
|
13
|
+
}
|
|
14
|
+
get RegisteredItems() {
|
|
15
|
+
return this.registeredItems;
|
|
16
|
+
}
|
|
17
|
+
/**--------------------------------------------------------------------------
|
|
18
|
+
* register object. object must have unique id or elementId
|
|
19
|
+
--------------------------------------------------------------------------*/
|
|
20
|
+
registerObject(obj, id, left = 100, top = 100, selector, rememberPosition) {
|
|
21
|
+
if (this.registeredItems.some(item => item.id === id)) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const newItem = {
|
|
25
|
+
element: obj,
|
|
26
|
+
id: id,
|
|
27
|
+
selector: selector,
|
|
28
|
+
rememberPosition: !!rememberPosition,
|
|
29
|
+
left: left,
|
|
30
|
+
top: top,
|
|
31
|
+
isCollapsed: false
|
|
32
|
+
};
|
|
33
|
+
this.registeredItems.push(newItem);
|
|
34
|
+
this.registeredItems$.next(this.registeredItems);
|
|
35
|
+
this._initObject(newItem);
|
|
36
|
+
}
|
|
37
|
+
_initObject(obj) {
|
|
38
|
+
this._adjustObjectByConfig(obj);
|
|
39
|
+
this._adjustObjectByWindowSize(obj);
|
|
40
|
+
}
|
|
41
|
+
/**--------------------------------------------------------------------------
|
|
42
|
+
* get object configuration
|
|
43
|
+
* return {left, top, width, heigth}
|
|
44
|
+
--------------------------------------------------------------------------*/
|
|
45
|
+
_getObjectConfig(obj) {
|
|
46
|
+
if (!obj) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const configValue = this.localStorageService.getItem(this.CONFIG);
|
|
50
|
+
const config = configValue ? JSON.parse(configValue) : {};
|
|
51
|
+
const objId = obj.id;
|
|
52
|
+
let configObj = config[objId];
|
|
53
|
+
if (!configObj) {
|
|
54
|
+
configObj = { id: objId, left: obj.left, top: obj.top };
|
|
55
|
+
}
|
|
56
|
+
return configObj;
|
|
57
|
+
}
|
|
58
|
+
_adjustObjectByConfig(obj) {
|
|
59
|
+
const config = this._getObjectConfig(obj);
|
|
60
|
+
if (!config) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const element = obj.element?.nativeElement;
|
|
64
|
+
element.style.left = (config.left) + 'px';
|
|
65
|
+
element.style.top = (config.top) + 'px';
|
|
66
|
+
const { deltaX, deltaY } = this.checkPosition(obj.id, "", undefined, undefined, undefined, 0, 0, true);
|
|
67
|
+
const computedStyle = window.getComputedStyle(element);
|
|
68
|
+
const top = parseInt(computedStyle.top, 10);
|
|
69
|
+
const left = parseInt(computedStyle.left, 10);
|
|
70
|
+
element.style.top = (top + deltaY) + 'px';
|
|
71
|
+
element.style.left = (left + deltaX) + 'px';
|
|
72
|
+
}
|
|
73
|
+
_adjustObjectByWindowSize(obj) {
|
|
74
|
+
console.log('_adjustObjectByWindowSize', obj);
|
|
75
|
+
}
|
|
76
|
+
/**--------------------------------------------------------------------------
|
|
77
|
+
* returns object registered in the layout manager
|
|
78
|
+
--------------------------------------------------------------------------*/
|
|
79
|
+
getItem(id) {
|
|
80
|
+
let foundItem = null;
|
|
81
|
+
this.registeredItems.forEach(item => {
|
|
82
|
+
if (item.id === id) {
|
|
83
|
+
foundItem = item;
|
|
25
84
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
85
|
+
});
|
|
86
|
+
return foundItem;
|
|
87
|
+
}
|
|
88
|
+
/**--------------------------------------------------------------------------
|
|
89
|
+
* set object configuration
|
|
90
|
+
--------------------------------------------------------------------------*/
|
|
91
|
+
_setObjectConfig(obj, left, top) {
|
|
92
|
+
const objId = obj?.id;
|
|
93
|
+
if (!objId) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
let config = this.localStorageService.getObject(this.CONFIG);
|
|
97
|
+
//let config = configValue && JSON.parse(configValue) as LayoutManagerConfig;
|
|
98
|
+
if (!config) {
|
|
99
|
+
config = {};
|
|
100
|
+
}
|
|
101
|
+
if (obj?.isCollapsed) { // do not overtake collapsed size
|
|
102
|
+
if (!config[objId]) {
|
|
103
|
+
config[objId] = obj;
|
|
104
|
+
}
|
|
105
|
+
config[objId].left = left;
|
|
106
|
+
config[objId].top = top;
|
|
107
|
+
this.localStorageService.setObject(this.CONFIG, config);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const newItem = {
|
|
111
|
+
id: objId,
|
|
112
|
+
isCollapsed: false,
|
|
113
|
+
left: left,
|
|
114
|
+
top: top
|
|
115
|
+
//width: width,
|
|
116
|
+
//height: height
|
|
117
|
+
};
|
|
118
|
+
config[objId] = newItem;
|
|
119
|
+
this.localStorageService.setObject(this.CONFIG, config);
|
|
120
|
+
}
|
|
121
|
+
// checks whether element or element with additional selectionof subelement is placed within the give rectangle
|
|
122
|
+
// if not then calculates the offset to be moved to fit in
|
|
123
|
+
checkPosition(id, selector, parentRectangle, left, top, deltaX, deltaY, forceCheck = false) {
|
|
124
|
+
if (!id) {
|
|
125
|
+
return { deltaX: 0, deltaY: 0 };
|
|
126
|
+
}
|
|
127
|
+
const e1 = this.getItem(id);
|
|
128
|
+
if (!e1) {
|
|
129
|
+
return { deltaX: 0, deltaY: 0 };
|
|
130
|
+
}
|
|
131
|
+
const element = e1.element?.nativeElement?.shadowRoot || e1.element?.nativeElement;
|
|
132
|
+
const mySelector = selector?.length > 0 ? selector : e1.selector;
|
|
133
|
+
const parentRect = parentRectangle || this.resizeObserverService.getParentAppRect();
|
|
134
|
+
if (parentRect?.width <= 1 || parentRect?.height <= 1) {
|
|
135
|
+
return { deltaX: 0, deltaY: 0 };
|
|
136
|
+
}
|
|
137
|
+
let elementRect = undefined;
|
|
138
|
+
if (!element) {
|
|
139
|
+
console.error('checkPosition: missing element');
|
|
140
|
+
return { deltaX: 0, deltaY: 0 };
|
|
141
|
+
}
|
|
142
|
+
if (mySelector) {
|
|
143
|
+
const selectedObj = element.querySelector(mySelector);
|
|
144
|
+
elementRect = selectedObj?.getBoundingClientRect();
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
elementRect = element.getBoundingClientRect();
|
|
148
|
+
}
|
|
149
|
+
if (!elementRect?.width || !elementRect?.height) {
|
|
150
|
+
console.error('checkPosition:missing element rect');
|
|
151
|
+
return { deltaX: 0, deltaY: 0 };
|
|
152
|
+
}
|
|
153
|
+
let checkBoundaries = true;
|
|
154
|
+
if (this._isInsideRect(elementRect, parentRect) === false && !forceCheck) {
|
|
155
|
+
checkBoundaries = false;
|
|
156
|
+
}
|
|
157
|
+
// copy of real element rectangle to perform calculation over before set to the real element
|
|
158
|
+
const elementDOMRect = DOMRect.fromRect(elementRect);
|
|
159
|
+
//set the element rectangle by deltas
|
|
160
|
+
//this._translateRectangle(elementDOMRect, deltaX, deltaY);
|
|
161
|
+
if (checkBoundaries) {
|
|
162
|
+
if (this._isInsideRect(elementDOMRect, parentRect) === false) {
|
|
163
|
+
const newElementPos = this.getAlignedPosition(elementDOMRect, parentRect);
|
|
164
|
+
deltaX = newElementPos.x - elementRect.x;
|
|
165
|
+
deltaY = newElementPos.y - elementRect.y;
|
|
166
|
+
//this._translateRectangle(elementDOMRect, deltaX, deltaY);
|
|
37
167
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
console.log("not inside!!");
|
|
171
|
+
if (this._isInsideLeftTopRect(parentRect, elementDOMRect) === false) {
|
|
172
|
+
const newElementPos = this._getAlignedLeftTopPosition(elementDOMRect, parentRect);
|
|
173
|
+
deltaX = newElementPos.x - elementRect.x;
|
|
174
|
+
deltaY = newElementPos.y - elementRect.y;
|
|
175
|
+
//this._translateRectangle(elementDOMRect, deltaX, deltaY);
|
|
46
176
|
}
|
|
47
177
|
}
|
|
48
178
|
return { deltaX, deltaY };
|
|
@@ -112,15 +242,58 @@ export class LayoutManagerService {
|
|
|
112
242
|
/**--------------------------------------------------------------------------
|
|
113
243
|
* translate rectangle by x, y
|
|
114
244
|
--------------------------------------------------------------------------*/
|
|
115
|
-
_translateRectangle(rect, translateX, translateY) {
|
|
116
|
-
|
|
245
|
+
/*_translateRectangle(rect:DOMRect, translateX:number, translateY:number) {
|
|
246
|
+
if(!rect) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
rect.x += translateX;
|
|
250
|
+
rect.y += translateY;
|
|
251
|
+
return rect;
|
|
252
|
+
}
|
|
253
|
+
*/
|
|
254
|
+
updateCollapsed(value, id = '') {
|
|
255
|
+
const foundItem = this.getItem(id);
|
|
256
|
+
if (!foundItem) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
foundItem.isCollapsed = value;
|
|
260
|
+
this.registeredItems$.next(this.registeredItems);
|
|
261
|
+
setTimeout(() => {
|
|
262
|
+
const { deltaX, deltaY } = this.checkPosition(foundItem.id, "", undefined, undefined, undefined, 0, 0, true);
|
|
263
|
+
if (deltaX != 0 || deltaY !== 0) {
|
|
264
|
+
const element = foundItem.element?.nativeElement;
|
|
265
|
+
const computedStyle = window.getComputedStyle(element);
|
|
266
|
+
const top = parseInt(computedStyle.top, 10);
|
|
267
|
+
const left = parseInt(computedStyle.left, 10);
|
|
268
|
+
element.style.top = (top + deltaY) + 'px';
|
|
269
|
+
element.style.left = (left + deltaX) + 'px';
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
let s1 = '';
|
|
273
|
+
this.registeredItems.forEach((item) => {
|
|
274
|
+
s1 = s1 + `${item.id}:<${item.isCollapsed ? 1 : 0}> `;
|
|
275
|
+
});
|
|
276
|
+
console.log(s1);
|
|
277
|
+
}
|
|
278
|
+
handleDragEnd(id) {
|
|
279
|
+
this.finalizeObjectChanges(id);
|
|
280
|
+
}
|
|
281
|
+
/**--------------------------------------------------------------------------
|
|
282
|
+
* finalize object changes (position). object must be registered in the layout manager
|
|
283
|
+
* object: object to finalize
|
|
284
|
+
--------------------------------------------------------------------------*/
|
|
285
|
+
finalizeObjectChanges(id) {
|
|
286
|
+
const item = this.getItem(id);
|
|
287
|
+
if (!item) {
|
|
117
288
|
return;
|
|
118
289
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
290
|
+
const element = item.element?.nativeElement;
|
|
291
|
+
const computedStyle = window.getComputedStyle(element);
|
|
292
|
+
const top = parseInt(computedStyle.top, 10);
|
|
293
|
+
const left = parseInt(computedStyle.left, 10);
|
|
294
|
+
this._setObjectConfig(item, left, top);
|
|
122
295
|
}
|
|
123
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LayoutManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
296
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LayoutManagerService, deps: [{ token: i1.ResizeObserverService }, { token: i2.LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
124
297
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LayoutManagerService, providedIn: 'root' }); }
|
|
125
298
|
}
|
|
126
299
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LayoutManagerService, decorators: [{
|
|
@@ -128,5 +301,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
128
301
|
args: [{
|
|
129
302
|
providedIn: 'root'
|
|
130
303
|
}]
|
|
131
|
-
}], ctorParameters: () => [] });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3RELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsZ0JBQWdCLENBQUM7SUFDakIsYUFBYSxDQUFDLFVBQXFCLEVBQUMsUUFBZSxFQUFDLElBQVcsRUFBQyxHQUFVLEVBQUMsTUFBYSxFQUFDLE1BQWEsRUFBQyxhQUFxQixLQUFLO1FBQy9ILE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRSw0RUFBNEU7UUFDNUUsb0VBQW9FO1FBQ3BFLHVEQUF1RDtRQUN2RCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2RyxNQUFNLFFBQVEsR0FBSSxRQUFRLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzdHLElBQUcsTUFBTSxJQUFJLFVBQVUsQ0FBQyxhQUFhLElBQUksU0FBUyxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUMsQ0FBQztZQUMxRSxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN4RCxNQUFNLGFBQWEsR0FBVSxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvRCxNQUFNLFlBQVksR0FBVyxRQUFRLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM5RCxNQUFNLFdBQVcsR0FBVyxVQUFVLENBQUMsYUFB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QztZQUNULE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQWxJVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZixJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExheW91dE1hbmFnZXJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuICBjaGVja1Bvc2l0aW9uKGVsZW1lbnRSZWY6RWxlbWVudFJlZixzZWxlY3RvcjpzdHJpbmcsbGVmdDpudW1iZXIsdG9wOm51bWJlcixkZWx0YVg6bnVtYmVyLGRlbHRhWTpudW1iZXIsZm9yY2VDaGVjazpib29sZWFuID0gZmFsc2Upe1xuICAgIGNvbnN0IHBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibWFpblZpZXdwb3J0Q29udGFpbmVyXCIpO1xuICAgIC8vY29uc3QgbGVmdFBhbmVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImxlZnQtc2lkZW5hdi1jb250ZW50XCIpO1xuICAgIC8vY29uc3QgbGVmdFBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5sZWZ0LXNpZGVuYXYtY29udGVudFwiKTtcbiAgICAvL2NvbnN0IGxlZnRQYW5lbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc2lkZW5hdlwiKTtcbiAgICBjb25zdCBsZWZ0UGFuZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaWItYmltcGx1cy1zaWRlbmF2Jyk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zaWRlbmF2Jyk7XG4gICAgY29uc3QgdG9wUGFuZWwgPSAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbGliLWJpbXBsdXMtbmF2YmFyJyk/LnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5iaW1wbHVzLW5hdmJhcicpO1xuICAgIGlmKHBhcmVudCAmJiBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiYgbGVmdFBhbmVsICYmIHRvcFBhbmVsICYmIHNlbGVjdG9yKXtcbiAgICAgIGNvbnN0IHZpZXdSZWN0OkRPTVJlY3QgPSBwYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBsZWZ0UGFuZWxSZWN0OkRPTVJlY3QgPWxlZnRQYW5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHRvcFBhbmVsUmVjdDpET01SZWN0ID0gdG9wUGFuZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBlbGVtZW50UmVjdDpET01SZWN0ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Py5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsgXG4gICAgICBjb25zb2xlLmxvZyhgYm94OiBsZWZ0OiR7ZWxlbWVudFJlY3QubGVmdH0sdG9wOiR7ZWxlbWVudFJlY3QudG9wfSxyaWdodDoke2VsZW1lbnRSZWN0LnJpZ2h0fSxib3R0b206JHtlbGVtZW50UmVjdC5ib3R0b219YCk7XG4gICAgICAvL2NvbnN0IGVsZW1lbnRSZWN0OkRPTVJlY3QgID0gIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGNvbnN0IHBhcmVudFJlY3Q6RE9NUmVjdCA9IG5ldyBET01SZWN0KFxuICAgICAgICAgdmlld1JlY3QubGVmdCArIGxlZnRQYW5lbFJlY3QucmlnaHQgKyB0b3BQYW5lbFJlY3QubGVmdCxcbiAgICAgICAgIHZpZXdSZWN0LnRvcCwgICAgICAgICBcbiAgICAgICAgIHZpZXdSZWN0LndpZHRoIC0gbGVmdFBhbmVsUmVjdC4gd2lkdGgsXG4gICAgICAgICB2aWV3UmVjdC5oZWlnaHQpIDtcbiAgICAgIC8vY29uc3QgcGFyZW50UmVjdDpET01SZWN0ID0gbmV3IERPTVJlY3QoICB2aWV3UmVjdC5sZWZ0LHZpZXdSZWN0LnRvcCx2aWV3UmVjdC53aWR0aCx2aWV3UmVjdC5oZWlnaHQpO1xuICAgICAgXG4gICAgICAvL2NvbnNvbGUubG9nKHZpZXdSZWN0LGVsZW1lbnRSZWN0KTtcbiAgICAgIGxldCBjaGVja0JvdW5kYXJpZXMgPSB0cnVlO1xuICAgICAgaWYodGhpcy5faXNJbnNpZGVSZWN0KGVsZW1lbnRSZWN0LCBwYXJlbnRSZWN0KSA9PT0gZmFsc2UgJiYgIWZvcmNlQ2hlY2spIHtcbiAgICAgICAgY2hlY2tCb3VuZGFyaWVzID0gZmFsc2U7XG4gICAgICB9XG4gIFxuICAgICAgLy8gY29weSBvZiByZWFsIGVsZW1lbnQgcmVjdGFuZ2xlIHRvIHBlcmZvcm0gY2FsY3VsYXRpb24gb3ZlciBiZWZvcmUgc2V0IHRvIHRoZSByZWFsIGVsZW1lbnRcbiAgICAgIGNvbnN0IGVsZW1lbnRET01SZWN0ID0gRE9NUmVjdC5mcm9tUmVjdChlbGVtZW50UmVjdCk7XG4gIFxuICAgICAgLy9zZXQgdGhlIGVsZW1lbnQgcmVjdGFuZ2xlIGJ5IGRlbHRhc1xuICAgICAgdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XG4gIFxuICAgICAgaWYoY2hlY2tCb3VuZGFyaWVzKSB7XG4gICAgICAgIGlmKHRoaXMuX2lzSW5zaWRlUmVjdChlbGVtZW50RE9NUmVjdCwgcGFyZW50UmVjdCkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgY29uc3QgIG5ld0VsZW1lbnRQb3MgPSB0aGlzLmdldEFsaWduZWRQb3NpdGlvbihlbGVtZW50RE9NUmVjdCwgcGFyZW50UmVjdCk7XG4gICAgICAgICAgZGVsdGFYID0gbmV3RWxlbWVudFBvcy54IC0gZWxlbWVudFJlY3QueDtcbiAgICAgICAgICBkZWx0YVkgPSBuZXdFbGVtZW50UG9zLnkgLSBlbGVtZW50UmVjdC55O1xuICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVJlY3RhbmdsZShlbGVtZW50RE9NUmVjdCwgZGVsdGFYLCBkZWx0YVkpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhcIm5vdCBpbnNpZGUhIVwiKTtcbiAgICAgICAgaWYgKHRoaXMuX2lzSW5zaWRlTGVmdFRvcFJlY3QocGFyZW50UmVjdCwgZWxlbWVudERPTVJlY3QpID09PSBmYWxzZSkge1xuICAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnRQb3MgPSB0aGlzLl9nZXRBbGlnbmVkTGVmdFRvcFBvc2l0aW9uKGVsZW1lbnRET01SZWN0LCBwYXJlbnRSZWN0KTtcbiAgICAgICAgICBkZWx0YVggPSBuZXdFbGVtZW50UG9zLnggLSBlbGVtZW50UmVjdC54O1xuICAgICAgICAgIGRlbHRhWSA9IG5ld0VsZW1lbnRQb3MueSAtIGVsZW1lbnRSZWN0Lnk7XG4gICAgICAgICAgdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtkZWx0YVgsZGVsdGFZfTtcbiAgfVxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAqIGZpbmQgaWYgcmVjdGFuZ2xlIDEgaXMgaW5zaWRlIHJlY3RhbmdsZSAyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgX2lzSW5zaWRlUmVjdChyMTpET01SZWN0LCByMjpET01SZWN0KSB7XG4gICAgaWYoIXIxIHx8ICFyMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIHIyLmxlZnQgPD0gcjEubGVmdCAgJiYgcjIudG9wIDw9IHIxLnRvcCAmJiByMi5yaWdodCA+PSByMS5yaWdodCAmJiByMi5ib3R0b20gPj0gcjEuYm90dG9tO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBmaW5kIGlmIHJlY3RhbmdsZXMgZG8gbm90IG92ZXJsYXAgdGhlIGxlZnQgYW5kIHRvcCBzaWRlc1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIF9pc0luc2lkZUxlZnRUb3BSZWN0KHIxOkRPTVJlY3QsIHIyOkRPTVJlY3QpIHtcbiAgICBpZighcjEgfHwgIXIyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0ICByMUluc2lkZSA9IHIyLmxlZnQgPD0gcjEubGVmdCAgJiYgcjIudG9wIDw9IHIxLnRvcDtcbiAgICBjb25zdCAgcjJJbnNpZGUgPSByMS5sZWZ0IDw9IHIyLmxlZnQgICYmIHIxLnRvcCA8PSByMi50b3AgXG4gICAgcmV0dXJuIHIxSW5zaWRlIHx8IHIySW5zaWRlO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBnZXQgcG9zaXRpb24gb2YgcjEgYWxpZ25lZCB3aXRoIHRoZSByMiBzaWRlc1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIGdldEFsaWduZWRQb3NpdGlvbihyMTpET01SZWN0LCByMjpET01SZWN0KSB7XG4gICAgaWYoIXIxIHx8ICFyMikge1xuICAgICAgcmV0dXJuIHt4OjAseTowfTtcbiAgICB9XG4gICAgY29uc3QgdG8gPSB7IHg6IHIxLngsIHk6IHIxLnkgfTtcbiAgICAvL2FsaWduIGxlZnQgb3IgcmlnaHQgc2lkZXMuIHByZWZlcmFibHkgbGVmdFxuICAgIGlmKHIxLmxlZnQgPCByMi5sZWZ0KSB7XG4gICAgICB0by54ID0gcjIueDtcbiAgICB9IGVsc2UgaWYocjEucmlnaHQgPiByMi5yaWdodCkge1xuICAgICAgdG8ueCA9IHIyLnJpZ2h0IC0gcjEud2lkdGg7XG4gICAgfVxuICAgIC8vYWxpZ24gdG9wIG9yIGJvdHRvbS4gcHJlZmVyYWJseSB0b3BcbiAgICBpZihyMS50b3AgPCByMi50b3ApIHtcbiAgICAgIHRvLnkgPSByMi55O1xuICAgIH0gZWxzZSBpZihyMS5ib3R0b20gPiByMi5ib3R0b20pIHtcbiAgICAgIHRvLnkgPSByMi5ib3R0b20gLSByMS5oZWlnaHQ7XG4gICAgfVxuICAgIHJldHVybiB0bztcbiAgfVxuICBcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBnZXQgcG9zaXRpb24gb2YgcjEgYWxpZ25lZCB3aXRoIHRoZSByMiBsZWZ0LCB0b3Agc2lkZXNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICBfZ2V0QWxpZ25lZExlZnRUb3BQb3NpdGlvbihyMTpET01SZWN0LCByMjpET01SZWN0KSB7XG4gICAgaWYoIXIxIHx8ICFyMikge1xuICAgICAgcmV0dXJuICB7eDowLHk6MH07XG4gICAgfVxuXG4gICAgY29uc3QgIHRvID0geyB4OiByMS54LCB5OiByMS55IH07XG4gICAgLy9hbGlnbiBsZWZ0XG4gICAgaWYocjEubGVmdCA8IHIyLmxlZnQpIHtcbiAgICAgIHRvLnggPSByMi54O1xuICAgIH1cbiAgICAvL2FsaWduIHRvcFxuICAgIGlmKHIxLnRvcCA8IHIyLnRvcCkge1xuICAgICAgdG8ueSA9IHIyLnk7XG4gICAgfVxuICAgIHJldHVybiB0bztcbiAgfVxuXG4gICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAqIHRyYW5zbGF0ZSByZWN0YW5nbGUgYnkgeCwgeVxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIF90cmFuc2xhdGVSZWN0YW5nbGUocmVjdDpET01SZWN0LCB0cmFuc2xhdGVYOm51bWJlciwgdHJhbnNsYXRlWTpudW1iZXIpIHtcbiAgICBpZighcmVjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZWN0LnggKz0gdHJhbnNsYXRlWDtcbiAgICByZWN0LnkgKz0gdHJhbnNsYXRlWTtcbiAgICByZXR1cm4gcmVjdDtcbiAgfVxufVxuIl19
|
|
304
|
+
}], ctorParameters: () => [{ type: i1.ResizeObserverService }, { type: i2.LocalStorageService }] });
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQStCdkMsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixxQkFBMkMsRUFDM0MsbUJBQXdDO1FBRHhDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUY1RCxxQkFBZ0IsR0FBeUMsSUFBSSxlQUFlLENBQXNCLEVBQUUsQ0FBQyxDQUFBO1FBSTdGLG9CQUFlLEdBQXVCLEVBQUUsQ0FBQztRQUtqRCxXQUFNLEdBQVUscUJBQXFCLENBQUM7SUFObEMsQ0FBQztJQUdMLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUlIOztrRkFFOEU7SUFDNUUsY0FBYyxDQUFDLEdBQWMsRUFBRSxFQUFTLEVBQUMsT0FBYyxHQUFHLEVBQUUsTUFBYSxHQUFHLEVBQUUsUUFBMkIsRUFBRSxnQkFBd0I7UUFFakksSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUMsQ0FBQztZQUNwRCxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFzQjtZQUNqQyxPQUFPLEVBQUMsR0FBRztZQUNYLEVBQUUsRUFBQyxFQUFFO1lBQ0wsUUFBUSxFQUFDLFFBQVE7WUFDakIsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDLGdC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Q0FBQyxDQUFDO0lBQ3ZDLENBQUM7K0dBclRVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSAgIGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbi8vaW1wb3J0IHsgSXRlbXNMaXN0IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QvbGliL2l0ZW1zLWxpc3QnO1xyXG4vL2ltcG9ydCB7IE5vdEZvdW5kRXJyb3IgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheW91dE1hbmFnZXJJdGVtIHtcclxuICBlbGVtZW50OkVsZW1lbnRSZWY7XHJcbiAgaWQ6IHN0cmluZztcclxuICBzZWxlY3Rvcj86c3RyaW5nO1xyXG4gIGlzQ29sbGFwc2VkOmJvb2xlYW47XHJcbiAgcmVtZW1iZXJQb3NpdGlvbj86Ym9vbGVhblxyXG4gIGxlZnQ/OiBudW1iZXI7XHJcbiAgdG9wPzpudW1iZXI7XHJcbiAgd2lkdGg/Om51bWJlcjtcclxuICBoZWlnaHQ/Om51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBpc0NvbGxhcHNlZDpib29sZWFuOyAgXHJcbiAgbGVmdD86IG51bWJlcjtcclxuICB0b3A/Om51bWJlcjsgIFxyXG59XHJcblxyXG5cclxuaW50ZXJmYWNlIExheW91dE1hbmFnZXJDb25maWcge1xyXG4gIFtrZXk6c3RyaW5nXTogTGF5b3V0TWFuYWdlckNvbmZpZ0l0ZW1cclxufVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRNYW5hZ2VyU2VydmljZSB7XHJcblxyXG4gIHJlZ2lzdGVyZWRJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDxMYXlvdXRNYW5hZ2VySXRlbVtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGF5b3V0TWFuYWdlckl0ZW1bXT4oW10pXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZSA6TG9jYWxTdG9yYWdlU2VydmljZSBcclxuICApIHsgfVxyXG4gIHByaXZhdGUgcmVnaXN0ZXJlZEl0ZW1zOkxheW91dE1hbmFnZXJJdGVtW10gPSBbXTtcclxuICBcclxuICBnZXQgUmVnaXN0ZXJlZEl0ZW1zKCk6IExheW91dE1hbmFnZXJJdGVtW10ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJlZEl0ZW1zO1xyXG4gIH1cclxuICBDT05GSUc6c3RyaW5nID0gJ2xheW91dE1hbmFnZXJDb25maWcnO1xyXG5cclxuICBcclxuLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHJlZ2lzdGVyIG9iamVjdC4gb2JqZWN0IG11c3QgaGF2ZSB1bmlxdWUgaWQgb3IgZWxlbWVudElkXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIHJlZ2lzdGVyT2JqZWN0KG9iajpFbGVtZW50UmVmLCBpZDpzdHJpbmcsbGVmdDpudW1iZXIgPSAxMDAsIHRvcDpudW1iZXIgPSAxMDAsIHNlbGVjdG9yOnN0cmluZyB8IHVuZGVmaW5lZCwgcmVtZW1iZXJQb3NpdGlvbjpib29sZWFuKSB7XHJcbiAgICBcclxuICAgIGlmKHRoaXMucmVnaXN0ZXJlZEl0ZW1zLnNvbWUoaXRlbSA9PiBpdGVtLmlkID09PSBpZCkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdJdGVtOiBMYXlvdXRNYW5hZ2VySXRlbSA9IHsgXHJcbiAgICAgIGVsZW1lbnQ6b2JqLFxyXG4gICAgICBpZDppZCxcclxuICAgICAgc2VsZWN0b3I6c2VsZWN0b3IsXHJcbiAgICAgIHJlbWVtYmVyUG9zaXRpb246ISFyZW1lbWJlclBvc2l0aW9uLFxyXG4gICAgICBsZWZ0OmxlZnQsXHJcbiAgICAgIHRvcDp0b3AsXHJcbiAgICAgIGlzQ29sbGFwc2VkOiBmYWxzZSAgICBcclxuICAgICB9O1xyXG5cclxuICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zLnB1c2gobmV3SXRlbSk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcyQubmV4dCh0aGlzLnJlZ2lzdGVyZWRJdGVtcyk7XHJcbiAgICB0aGlzLl9pbml0T2JqZWN0KG5ld0l0ZW0pO1xyXG4gIH1cclxuICBcclxuICBfaW5pdE9iamVjdChvYmo6TGF5b3V0TWFuYWdlckl0ZW0pe1xyXG4gICAgdGhpcy5fYWRqdXN0T2JqZWN0QnlDb25maWcob2JqKTtcclxuICAgIHRoaXMuX2FkanVzdE9iamVjdEJ5V2luZG93U2l6ZShvYmopO1xyXG4gICAgXHJcbiAgfVxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBnZXQgb2JqZWN0IGNvbmZpZ3VyYXRpb25cclxuICAqIHJldHVybiB7bGVmdCwgdG9wLCB3aWR0aCwgaGVpZ3RofVxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfZ2V0T2JqZWN0Q29uZmlnKG9iajpMYXlvdXRNYW5hZ2VySXRlbSk6TGF5b3V0TWFuYWdlckNvbmZpZ0l0ZW18bnVsbCB7XHJcbiAgICBpZighb2JqKXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWdWYWx1ZSA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuQ09ORklHKTtcclxuICAgIGNvbnN0ICBjb25maWcgPSBjb25maWdWYWx1ZSA/IEpTT04ucGFyc2UoY29uZmlnVmFsdWUpIDoge307XHJcbiAgICBjb25zdCAgb2JqSWQgPSBvYmouaWQgO1xyXG4gICAgbGV0IGNvbmZpZ09iaiA9IGNvbmZpZ1tvYmpJZF07XHJcbiAgICBpZighY29uZmlnT2JqKSB7XHJcbiAgICAgIGNvbmZpZ09iaiA9IHtpZDpvYmpJZCxsZWZ0Om9iai5sZWZ0LHRvcDpvYmoudG9wfTtcclxuICAgIH1cclxuICAgIHJldHVybiBjb25maWdPYmo7XHJcbiAgfVxyXG5cclxuICBfYWRqdXN0T2JqZWN0QnlDb25maWcob2JqOkxheW91dE1hbmFnZXJJdGVtKXtcclxuICAgIGNvbnN0IGNvbmZpZzpMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbXxudWxsID0gdGhpcy5fZ2V0T2JqZWN0Q29uZmlnKG9iaik7XHJcbiAgICBpZighY29uZmlnKXtcclxuICAgICAgcmV0dXJuOyAgICAgIFxyXG4gICAgfWNvbnN0IGVsZW1lbnQgPSBvYmouZWxlbWVudD8ubmF0aXZlRWxlbWVudDsgIFxyXG4gICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gKGNvbmZpZy5sZWZ0KSArICdweCc7XHJcbiAgICBlbGVtZW50LnN0eWxlLnRvcCA9IChjb25maWcudG9wKSArICdweCc7XHJcbiAgICBjb25zdCB7ZGVsdGFYLGRlbHRhWX0gPSB0aGlzLmNoZWNrUG9zaXRpb24ob2JqLmlkLFwiXCIsdW5kZWZpbmVkLHVuZGVmaW5lZCx1bmRlZmluZWQsMCwwLHRydWUpO1xyXG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpOyAgXHJcbiAgICBjb25zdCB0b3AgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLnRvcCwgMTApO1xyXG4gICAgY29uc3QgbGVmdCA9IHBhcnNlSW50KGNvbXB1dGVkU3R5bGUubGVmdCwgMTApO1xyXG4gICAgZWxlbWVudC5zdHlsZS50b3AgPSAodG9wICsgZGVsdGFZKSArICdweCc7XHJcbiAgICBlbGVtZW50LnN0eWxlLmxlZnQgPSAobGVmdCArIGRlbHRhWCkgKyAncHgnOyAgICBcclxuICB9XHJcblxyXG4gIF9hZGp1c3RPYmplY3RCeVdpbmRvd1NpemUob2JqOkxheW91dE1hbmFnZXJJdGVtKXtcclxuICAgIGNvbnNvbGUubG9nKCdfYWRqdXN0T2JqZWN0QnlXaW5kb3dTaXplJyxvYmopO1xyXG4gIH1cclxuICBcclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogcmV0dXJucyBvYmplY3QgIHJlZ2lzdGVyZWQgaW4gdGhlIGxheW91dCBtYW5hZ2VyIFxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBnZXRJdGVtKGlkOiBzdHJpbmcgKTpMYXlvdXRNYW5hZ2VySXRlbXxudWxsIHsgICBcclxuICAgIGxldCBmb3VuZEl0ZW06TGF5b3V0TWFuYWdlckl0ZW18bnVsbCA9IG51bGw7XHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT57XHJcbiAgICAgIGlmKGl0ZW0uaWQgPT09IGlkKXtcclxuICAgICAgICBmb3VuZEl0ZW0gPSBpdGVtO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3VuZEl0ZW07XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogc2V0IG9iamVjdCBjb25maWd1cmF0aW9uXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9zZXRPYmplY3RDb25maWcob2JqOkxheW91dE1hbmFnZXJJdGVtLCBsZWZ0Om51bWJlcix0b3A6bnVtYmVyKXsvL30sd2lkdGg6bnVtYmVyLGhlaWdodDpudW1iZXIpIHtcclxuICAgIGNvbnN0IG9iaklkID0gb2JqPy5pZCA7XHJcbiAgICBpZiAoIW9iaklkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBjb25maWcgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0T2JqZWN0KHRoaXMuQ09ORklHKSBhcyBMYXlvdXRNYW5hZ2VyQ29uZmlnO1xyXG4gICAgLy9sZXQgY29uZmlnID0gY29uZmlnVmFsdWUgJiYgSlNPTi5wYXJzZShjb25maWdWYWx1ZSkgYXMgTGF5b3V0TWFuYWdlckNvbmZpZztcclxuICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgIGNvbmZpZyA9IHt9O1xyXG4gICAgfVxyXG4gICAgaWYob2JqPy5pc0NvbGxhcHNlZCl7ICAvLyBkbyBub3Qgb3ZlcnRha2UgY29sbGFwc2VkIHNpemVcclxuICAgICAgaWYgKCFjb25maWdbb2JqSWRdKSB7ICAgICAgICBcclxuICAgICAgICBjb25maWdbb2JqSWRdID0gb2JqO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbmZpZ1tvYmpJZF0ubGVmdCA9IGxlZnQ7XHJcbiAgICAgIGNvbmZpZ1tvYmpJZF0udG9wICA9IHRvcDtcclxuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldE9iamVjdCh0aGlzLkNPTkZJRywgY29uZmlnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld0l0ZW0gOkxheW91dE1hbmFnZXJDb25maWdJdGVtID0ge1xyXG4gICAgICBpZDogb2JqSWQsXHJcbiAgICAgIGlzQ29sbGFwc2VkOiBmYWxzZSxcclxuICAgICAgbGVmdDogbGVmdCxcclxuICAgICAgdG9wOiB0b3BcclxuICAgICAgLy93aWR0aDogd2lkdGgsXHJcbiAgICAgIC8vaGVpZ2h0OiBoZWlnaHRcclxuICAgIH07XHJcbiAgICBjb25maWdbb2JqSWRdID0gbmV3SXRlbTtcclxuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRPYmplY3QodGhpcy5DT05GSUcsY29uZmlnKTtcclxuICB9XHJcbiAgLy8gY2hlY2tzIHdoZXRoZXIgZWxlbWVudCBvciBlbGVtZW50IHdpdGggYWRkaXRpb25hbCBzZWxlY3Rpb25vZiBzdWJlbGVtZW50IGlzIHBsYWNlZCB3aXRoaW4gdGhlIGdpdmUgcmVjdGFuZ2xlXHJcbiAgLy8gaWYgbm90IHRoZW4gY2FsY3VsYXRlcyB0aGUgb2Zmc2V0IHRvIGJlIG1vdmVkIHRvIGZpdCBpblxyXG4gIGNoZWNrUG9zaXRpb24oaWQ6c3RyaW5nLHNlbGVjdG9yOnN0cmluZyxwYXJlbnRSZWN0YW5nbGU6RE9NUmVjdHx1bmRlZmluZWQgLGxlZnQ6bnVtYmVyfHVuZGVmaW5lZCx0b3A6bnVtYmVyfHVuZGVmaW5lZCxkZWx0YVg6bnVtYmVyLGRlbHRhWTpudW1iZXIsZm9yY2VDaGVjazpib29sZWFuID0gZmFsc2Upe1xyXG4gICAgaWYoIWlkKXtcclxuICAgICAgcmV0dXJuIHtkZWx0YVg6MCxkZWx0YVk6MH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBlMSA9IHRoaXMuZ2V0SXRlbShpZCk7XHJcbiAgICBpZighZTEpe1xyXG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcclxuICAgIH1cclxuICAgIGNvbnN0IGVsZW1lbnQ6RWxlbWVudCA9IGUxLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnNoYWRvd1Jvb3QgfHwgZTEuZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcclxuICAgIGNvbnN0IG15U2VsZWN0b3IgPXNlbGVjdG9yPy5sZW5ndGggPiAwID9zZWxlY3RvcjplMS5zZWxlY3RvcjsgICAgXHJcbiAgICBjb25zdCBwYXJlbnRSZWN0OkRPTVJlY3QgPSAgcGFyZW50UmVjdGFuZ2xlIHx8ICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5nZXRQYXJlbnRBcHBSZWN0KCk7XHJcbiAgICBpZiggcGFyZW50UmVjdD8ud2lkdGg8PTEgfHwgcGFyZW50UmVjdD8uaGVpZ2h0PD0xICkge1xyXG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcclxuICAgIH1cclxuICAgIGxldCAgZWxlbWVudFJlY3Q6RE9NUmVjdHx1bmRlZmluZWQgPXVuZGVmaW5lZDtcclxuICAgIGlmKCFlbGVtZW50KXtcclxuICAgICAgY29uc29sZS5lcnJvcignY2hlY2tQb3NpdGlvbjogbWlzc2luZyBlbGVtZW50Jyk7XHJcbiAgICAgIHJldHVybiB7ZGVsdGFYOjAsZGVsdGFZOjB9O1xyXG4gICAgfVxyXG4gICAgaWYobXlTZWxlY3Rvcil7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkT2JqIDogSFRNTEVsZW1lbnR8bnVsbCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcihteVNlbGVjdG9yKTtcclxuICAgICAgZWxlbWVudFJlY3QgPSBzZWxlY3RlZE9iaj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBlbGVtZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB9XHJcbiAgICBpZighZWxlbWVudFJlY3Q/LndpZHRoIHx8ICFlbGVtZW50UmVjdD8uaGVpZ2h0KXtcclxuICAgICAgY29uc29sZS5lcnJvcignY2hlY2tQb3NpdGlvbjptaXNzaW5nIGVsZW1lbnQgcmVjdCcpO1xyXG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcclxuICAgIH0gXHJcbiAgICBsZXQgY2hlY2tCb3VuZGFyaWVzID0gdHJ1ZTtcclxuICAgIGlmKHRoaXMuX2lzSW5zaWRlUmVjdChlbGVtZW50UmVjdCwgcGFyZW50UmVjdCkgPT09IGZhbHNlICYmICFmb3JjZUNoZWNrKSB7XHJcbiAgICAgIGNoZWNrQm91bmRhcmllcyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvcHkgb2YgcmVhbCBlbGVtZW50IHJlY3RhbmdsZSB0byBwZXJmb3JtIGNhbGN1bGF0aW9uIG92ZXIgYmVmb3JlIHNldCB0byB0aGUgcmVhbCBlbGVtZW50XHJcbiAgICBjb25zdCBlbGVtZW50RE9NUmVjdCA9IERPTVJlY3QuZnJvbVJlY3QoZWxlbWVudFJlY3QpO1xyXG5cclxuICAgIC8vc2V0IHRoZSBlbGVtZW50IHJlY3RhbmdsZSBieSBkZWx0YXNcclxuICAgIC8vdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XHJcblxyXG4gICAgaWYoY2hlY2tCb3VuZGFyaWVzKSB7XHJcbiAgICAgIGlmKHRoaXMuX2lzSW5zaWRlUmVjdChlbGVtZW50RE9NUmVjdCwgcGFyZW50UmVjdCkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3QgIG5ld0VsZW1lbnRQb3MgPSB0aGlzLmdldEFsaWduZWRQb3NpdGlvbihlbGVtZW50RE9NUmVjdCwgcGFyZW50UmVjdCk7XHJcbiAgICAgICAgZGVsdGFYID0gbmV3RWxlbWVudFBvcy54IC0gZWxlbWVudFJlY3QueDtcclxuICAgICAgICBkZWx0YVkgPSBuZXdFbGVtZW50UG9zLnkgLSBlbGVtZW50UmVjdC55O1xyXG4gICAgICAgIC8vdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwibm90IGluc2lkZSEhXCIpO1xyXG4gICAgICBpZiAodGhpcy5faXNJbnNpZGVMZWZ0VG9wUmVjdChwYXJlbnRSZWN0LCBlbGVtZW50RE9NUmVjdCkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RWxlbWVudFBvcyA9IHRoaXMuX2dldEFsaWduZWRMZWZ0VG9wUG9zaXRpb24oZWxlbWVudERPTVJlY3QsIHBhcmVudFJlY3QpO1xyXG4gICAgICAgIGRlbHRhWCA9IG5ld0VsZW1lbnRQb3MueCAtIGVsZW1lbnRSZWN0Lng7XHJcbiAgICAgICAgZGVsdGFZID0gbmV3RWxlbWVudFBvcy55IC0gZWxlbWVudFJlY3QueTtcclxuICAgICAgICAvL3RoaXMuX3RyYW5zbGF0ZVJlY3RhbmdsZShlbGVtZW50RE9NUmVjdCwgZGVsdGFYLCBkZWx0YVkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge2RlbHRhWCxkZWx0YVl9O1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGZpbmQgaWYgcmVjdGFuZ2xlIDEgaXMgaW5zaWRlIHJlY3RhbmdsZSAyXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9pc0luc2lkZVJlY3QocjE6RE9NUmVjdCwgcjI6RE9NUmVjdCkge1xyXG4gICAgaWYoIXIxIHx8ICFyMikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIHIyLmxlZnQgPD0gcjEubGVmdCAgJiYgcjIudG9wIDw9IHIxLnRvcCAmJiByMi5yaWdodCA+PSByMS5yaWdodCAmJiByMi5ib3R0b20gPj0gcjEuYm90dG9tO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGZpbmQgaWYgcmVjdGFuZ2xlcyBkbyBub3Qgb3ZlcmxhcCB0aGUgbGVmdCBhbmQgdG9wIHNpZGVzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIF9pc0luc2lkZUxlZnRUb3BSZWN0KHIxOkRPTVJlY3QsIHIyOkRPTVJlY3QpIHtcclxuICAgIGlmKCFyMSB8fCAhcjIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgIHIxSW5zaWRlID0gcjIubGVmdCA8PSByMS5sZWZ0ICAmJiByMi50b3AgPD0gcjEudG9wO1xyXG4gICAgY29uc3QgIHIySW5zaWRlID0gcjEubGVmdCA8PSByMi5sZWZ0ICAmJiByMS50b3AgPD0gcjIudG9wO1xyXG4gICAgcmV0dXJuIHIxSW5zaWRlIHx8IHIySW5zaWRlO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGdldCBwb3NpdGlvbiBvZiByMSBhbGlnbmVkIHdpdGggdGhlIHIyIHNpZGVzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIGdldEFsaWduZWRQb3NpdGlvbihyMTpET01SZWN0LCByMjpET01SZWN0KSB7XHJcbiAgICBpZighcjEgfHwgIXIyKSB7XHJcbiAgICAgIHJldHVybiB7eDowLHk6MH07XHJcbiAgICB9XHJcbiAgICBjb25zdCB0byA9IHsgeDogcjEueCwgeTogcjEueSB9O1xyXG4gICAgLy9hbGlnbiBsZWZ0IG9yIHJpZ2h0IHNpZGVzLiBwcmVmZXJhYmx5IGxlZnRcclxuICAgIGlmKHIxLmxlZnQgPCByMi5sZWZ0KSB7XHJcbiAgICAgIHRvLnggPSByMi54O1xyXG4gICAgfSBlbHNlIGlmKHIxLnJpZ2h0ID4gcjIucmlnaHQpIHtcclxuICAgICAgdG8ueCA9IHIyLnJpZ2h0IC0gcjEud2lkdGg7XHJcbiAgICB9XHJcbiAgICAvL2FsaWduIHRvcCBvciBib3R0b20uIHByZWZlcmFibHkgdG9wXHJcbiAgICBpZihyMS50b3AgPCByMi50b3ApIHtcclxuICAgICAgdG8ueSA9IHIyLnk7XHJcbiAgICB9IGVsc2UgaWYocjEuYm90dG9tID4gcjIuYm90dG9tKSB7XHJcbiAgICAgIHRvLnkgPSByMi5ib3R0b20gLSByMS5oZWlnaHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG87XHJcbiAgfVxyXG4gIFxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBnZXQgcG9zaXRpb24gb2YgcjEgYWxpZ25lZCB3aXRoIHRoZSByMiBsZWZ0LCB0b3Agc2lkZXNcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX2dldEFsaWduZWRMZWZ0VG9wUG9zaXRpb24ocjE6RE9NUmVjdCwgcjI6RE9NUmVjdCkge1xyXG4gICAgaWYoIXIxIHx8ICFyMikge1xyXG4gICAgICByZXR1cm4gIHt4OjAseTowfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCAgdG8gPSB7IHg6IHIxLngsIHk6IHIxLnkgfTtcclxuICAgIC8vYWxpZ24gbGVmdFxyXG4gICAgaWYocjEubGVmdCA8IHIyLmxlZnQpIHtcclxuICAgICAgdG8ueCA9IHIyLng7XHJcbiAgICB9XHJcbiAgICAvL2FsaWduIHRvcFxyXG4gICAgaWYocjEudG9wIDwgcjIudG9wKSB7XHJcbiAgICAgIHRvLnkgPSByMi55O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvO1xyXG4gIH1cclxuXHJcbiAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiB0cmFuc2xhdGUgcmVjdGFuZ2xlIGJ5IHgsIHlcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgLypfdHJhbnNsYXRlUmVjdGFuZ2xlKHJlY3Q6RE9NUmVjdCwgdHJhbnNsYXRlWDpudW1iZXIsIHRyYW5zbGF0ZVk6bnVtYmVyKSB7XHJcbiAgICBpZighcmVjdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZWN0LnggKz0gdHJhbnNsYXRlWDtcclxuICAgIHJlY3QueSArPSB0cmFuc2xhdGVZO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbiAgfVxyXG4qL1xyXG4gIFxyXG4gIHVwZGF0ZUNvbGxhcHNlZCh2YWx1ZTpib29sZWFuLCBpZDpzdHJpbmcgPSAnJyk6dm9pZHsgICAgXHJcbiAgICBjb25zdCAgZm91bmRJdGVtID0gdGhpcy5nZXRJdGVtKGlkKTtcclxuICAgIGlmKCFmb3VuZEl0ZW0pe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3VuZEl0ZW0uaXNDb2xsYXBzZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zJC5uZXh0KHRoaXMucmVnaXN0ZXJlZEl0ZW1zKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PnsgICAgICBcclxuICAgICAgY29uc3Qge2RlbHRhWCxkZWx0YVl9ID0gdGhpcy5jaGVja1Bvc2l0aW9uKGZvdW5kSXRlbS5pZCxcIlwiLHVuZGVmaW5lZCx1bmRlZmluZWQsdW5kZWZpbmVkLDAsMCx0cnVlKTtcclxuICAgICAgaWYoZGVsdGFYICE9MCB8fGRlbHRhWSAhPT0gMCl7XHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9ICBmb3VuZEl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcbiAgICAgICAgY29uc3QgdG9wID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS50b3AsIDEwKTtcclxuICAgICAgICBjb25zdCBsZWZ0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5sZWZ0LCAxMCk7XHJcbiAgICAgICAgZWxlbWVudC5zdHlsZS50b3AgPSAodG9wICsgZGVsdGFZKSArICdweCc7XHJcbiAgICAgICAgZWxlbWVudC5zdHlsZS5sZWZ0ID0gKGxlZnQgKyBkZWx0YVgpICsgJ3B4JztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBsZXQgczE6c3RyaW5nID0nJztcclxuICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW0pPT57XHJcbiAgICAgIHMxID0gczEgKyBgJHtpdGVtLmlkfTo8JHtpdGVtLmlzQ29sbGFwc2VkPzE6MH0+IGA7XHJcbiAgICB9KTtcclxuICAgIGNvbnNvbGUubG9nKHMxKTsgIFxyXG4gIH0gIFxyXG5cclxuXHJcbiAgaGFuZGxlRHJhZ0VuZChpZDpzdHJpbmcpey8vfSxsZWZ0Om51bWJlcix0b3A6bnVtYmVyKXtcclxuICAgIHRoaXMuZmluYWxpemVPYmplY3RDaGFuZ2VzKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBmaW5hbGl6ZSBvYmplY3QgY2hhbmdlcyAocG9zaXRpb24pLiBvYmplY3QgbXVzdCBiZSByZWdpc3RlcmVkIGluIHRoZSBsYXlvdXQgbWFuYWdlclxyXG4gICogb2JqZWN0OiBvYmplY3QgdG8gZmluYWxpemUgIFxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBmaW5hbGl6ZU9iamVjdENoYW5nZXMoaWQ6c3RyaW5nKTp2b2lkIHtcclxuICAgIGNvbnN0IGl0ZW06TGF5b3V0TWFuYWdlckl0ZW18bnVsbCAgPSB0aGlzLmdldEl0ZW0oaWQpO1xyXG4gICAgaWYoIWl0ZW0pe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbGVtZW50ID0gaXRlbS5lbGVtZW50Py5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpOyAgXHJcbiAgICBjb25zdCB0b3AgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLnRvcCwgMTApO1xyXG4gICAgY29uc3QgbGVmdCA9IHBhcnNlSW50KGNvbXB1dGVkU3R5bGUubGVmdCwgMTApO1xyXG4gICAgdGhpcy5fc2V0T2JqZWN0Q29uZmlnKGl0ZW0sbGVmdCx0b3ApO1xyXG4gIH1cclxufVxyXG5cclxuIl19
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class LocalStorageService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.storageSubject = new BehaviorSubject(null);
|
|
7
|
+
}
|
|
8
|
+
// Set a string value in localStorage
|
|
9
|
+
setItem(key, value) {
|
|
10
|
+
try {
|
|
11
|
+
localStorage.setItem(key, value);
|
|
12
|
+
this.storageSubject.next({ key, value });
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
console.error('Error saving to localStorage', e);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
// Get a string value from localStorage
|
|
19
|
+
getItem(key) {
|
|
20
|
+
try {
|
|
21
|
+
return localStorage.getItem(key);
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
24
|
+
console.error('Error reading from localStorage', e);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Remove an item from localStorage
|
|
29
|
+
removeItem(key) {
|
|
30
|
+
try {
|
|
31
|
+
localStorage.removeItem(key);
|
|
32
|
+
this.storageSubject.next({ key, value: null });
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
console.error('Error removing from localStorage', e);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// Clear all items in localStorage
|
|
39
|
+
clear() {
|
|
40
|
+
try {
|
|
41
|
+
localStorage.clear();
|
|
42
|
+
this.storageSubject.next(null);
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
console.error('Error clearing localStorage', e);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Set an object in localStorage
|
|
49
|
+
setObject(key, value) {
|
|
50
|
+
this.setItem(key, JSON.stringify(value));
|
|
51
|
+
}
|
|
52
|
+
// Get an object from localStorage
|
|
53
|
+
getObject(key) {
|
|
54
|
+
const value = this.getItem(key);
|
|
55
|
+
return value ? JSON.parse(value) : null;
|
|
56
|
+
}
|
|
57
|
+
// Watch for changes in localStorage
|
|
58
|
+
watchStorage() {
|
|
59
|
+
return this.storageSubject.asObservable();
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
62
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LocalStorageService, providedIn: 'root' }); }
|
|
63
|
+
}
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LocalStorageService, decorators: [{
|
|
65
|
+
type: Injectable,
|
|
66
|
+
args: [{
|
|
67
|
+
providedIn: 'root'
|
|
68
|
+
}]
|
|
69
|
+
}], ctorParameters: () => [] });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUI7UUFGUSxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUF5QyxJQUFJLENBQUMsQ0FBQztJQUUzRSxDQUFDO0lBRWpCLHFDQUFxQztJQUNyQyxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDaEMsSUFBSSxDQUFDO1lBQ0gsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLEdBQVc7UUFDakIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsbUNBQW1DO0lBQ25DLFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQztZQUNILFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLEtBQUs7UUFDSCxJQUFJLENBQUM7WUFDSCxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBYztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxTQUFTLENBQUMsR0FBVztRQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7K0dBNURVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgc3RvcmFnZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsga2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duIH0gfCBudWxsPihudWxsKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLy8gU2V0IGEgc3RyaW5nIHZhbHVlIGluIGxvY2FsU3RvcmFnZVxyXG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTdWJqZWN0Lm5leHQoeyBrZXksIHZhbHVlIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgdG8gbG9jYWxTdG9yYWdlJywgZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBHZXQgYSBzdHJpbmcgdmFsdWUgZnJvbSBsb2NhbFN0b3JhZ2VcclxuICBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVhZGluZyBmcm9tIGxvY2FsU3RvcmFnZScsIGUpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlbW92ZSBhbiBpdGVtIGZyb20gbG9jYWxTdG9yYWdlXHJcbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcclxuICAgICAgdGhpcy5zdG9yYWdlU3ViamVjdC5uZXh0KHsga2V5LCB2YWx1ZTogbnVsbCB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVtb3ZpbmcgZnJvbSBsb2NhbFN0b3JhZ2UnLCBlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIENsZWFyIGFsbCBpdGVtcyBpbiBsb2NhbFN0b3JhZ2VcclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTdWJqZWN0Lm5leHQobnVsbCk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNsZWFyaW5nIGxvY2FsU3RvcmFnZScsIGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gU2V0IGFuIG9iamVjdCBpbiBsb2NhbFN0b3JhZ2VcclxuICBzZXRPYmplY3Qoa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gIH1cclxuXHJcbiAgLy8gR2V0IGFuIG9iamVjdCBmcm9tIGxvY2FsU3RvcmFnZVxyXG4gIGdldE9iamVjdChrZXk6IHN0cmluZyk6IHVua25vd24ge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldEl0ZW0oa2V5KTtcclxuICAgIHJldHVybiB2YWx1ZSA/IEpTT04ucGFyc2UodmFsdWUpIDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8vIFdhdGNoIGZvciBjaGFuZ2VzIGluIGxvY2FsU3RvcmFnZVxyXG4gIHdhdGNoU3RvcmFnZSgpOiBPYnNlcnZhYmxlPHsga2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duIH0gfCBudWxsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ResizeObserverService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.rectSize$ = new BehaviorSubject(undefined);
|
|
7
|
+
this.internalRectSize = new DOMRect(1, 1, 1, 1);
|
|
8
|
+
// Observable that components can subscribe to
|
|
9
|
+
this.parentAppRect$ = this.rectSize$.asObservable();
|
|
10
|
+
}
|
|
11
|
+
setSize(newValue) {
|
|
12
|
+
this.rectSize$.next(newValue);
|
|
13
|
+
this.internalRectSize = newValue;
|
|
14
|
+
console.log(`SERVICE:rect size:${newValue.width} ${newValue.height}`);
|
|
15
|
+
}
|
|
16
|
+
getParentAppRect() {
|
|
17
|
+
return this.internalRectSize;
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ResizeObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ResizeObserverService, providedIn: 'root' }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ResizeObserverService, decorators: [{
|
|
23
|
+
type: Injectable,
|
|
24
|
+
args: [{
|
|
25
|
+
providedIn: 'root'
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: () => [] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvcmVzaXplLW9ic2VydmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUtuRCxNQUFNLE9BQU8scUJBQXFCO0lBT2hDO1FBTFEsY0FBUyxHQUF5QyxJQUFJLGVBQWUsQ0FBb0IsU0FBUyxDQUFDLENBQUM7UUFDcEcscUJBQWdCLEdBQVksSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsOENBQThDO1FBQ3ZDLG1CQUFjLEdBQW9DLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFdkUsQ0FBQztJQUVWLE9BQU8sQ0FBQyxRQUFpQjtRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLFFBQVEsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDOytHQWpCVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc2l6ZU9ic2VydmVyU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVjdFNpemUkOiBCZWhhdmlvclN1YmplY3Q8RE9NUmVjdCB8dW5kZWZpbmVkID4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERPTVJlY3R8dW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHByaXZhdGUgaW50ZXJuYWxSZWN0U2l6ZSA6RE9NUmVjdCA9IG5ldyBET01SZWN0KDEsMSwxLDEpO1xyXG4gIC8vIE9ic2VydmFibGUgdGhhdCBjb21wb25lbnRzIGNhbiBzdWJzY3JpYmUgdG9cclxuICBwdWJsaWMgcGFyZW50QXBwUmVjdCQ6IE9ic2VydmFibGU8RE9NUmVjdCB8IHVuZGVmaW5lZD4gPSB0aGlzLnJlY3RTaXplJC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHVibGljIHNldFNpemUobmV3VmFsdWU6IERPTVJlY3QpOiB2b2lkIHtcclxuICAgIHRoaXMucmVjdFNpemUkLm5leHQobmV3VmFsdWUpOyAgXHJcbiAgICB0aGlzLmludGVybmFsUmVjdFNpemUgPSBuZXdWYWx1ZTtcclxuICAgIGNvbnNvbGUubG9nKGBTRVJWSUNFOnJlY3Qgc2l6ZToke25ld1ZhbHVlLndpZHRofSAke25ld1ZhbHVlLmhlaWdodH1gKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXJlbnRBcHBSZWN0ICgpOkRPTVJlY3R7XHJcbiAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFJlY3RTaXplO1xyXG4gIH0gIFxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvdHlwZXMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZ3MgPSB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7IC8vIFRoaXMgYWxsb3dzIGtleS12YWx1ZSBwYWlyc1xyXG4gIH07XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgTWVudUxpc3RUeXBle1xyXG4gICdhY3Rpb24nOiBzdHJpbmcgLFxyXG4gICdpZCc6ICAgICBzdHJpbmcgLFxyXG4gICd0eXBlJzogICBzdHJpbmcgLFxyXG4gICdjbGFzcyc6ICBzdHJpbmcgLCAgICBcclxuICAndGV4dElkJzogc3RyaW5nICwgIFxyXG4gICd0ZXh0SWREaXNhYmxlZCc6IHN0cmluZyxcclxuICAnZGlzYWJsZWRUaXRsZSc6IHN0cmluZyxcclxuICAnY2hlY2tTdWJzY3JpcHRpb24nOiBib29sZWFuLFxyXG4gICdkZXZPclN0YWdlT25seScgOiBib29sZWFuLCBcclxuICAnY2xpY2tQb2xpY3knOiBzdHJpbmdcclxufSJdfQ==
|
|
@@ -69,4 +69,4 @@ export class FilterString {
|
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyU3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3V0aWxzL2ZpbHRlclN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGtCQUFrQixHQUFHLDZCQUE2QixDQUFDO0FBRXpELE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQVksZUFBdUIsRUFBRSxFQUFFLG9CQUE0QixDQUFDO1FBUzVELGtCQUFhLEdBQVksRUFBRSxDQUFDO1FBQzVCLHVCQUFrQixHQUFZLENBQUMsQ0FBQztRQVR0QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBS0Qsa0JBQWtCLENBQUMsUUFBNEI7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLGtCQUFrQixFQUFFLENBQUM7UUFFaEQsS0FBSSxNQUFNLFNBQVMsSUFBSSxRQUFRLEVBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsYUFBYSxJQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDMUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsbUNBQW1DLENBQUMsUUFBNEI7UUFDOUQsTUFBTSxjQUFjLEdBQTJCLEVBQUUsQ0FBQztRQUNsRCxLQUFJLE1BQU0sU0FBUyxJQUFJLFFBQVEsRUFBQyxDQUFDO1lBQy9CLElBQUcsU0FBUyxDQUFDLEVBQUUsSUFBSSxTQUFTLENBQUMsSUFBSTtnQkFDL0IsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ2xELENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsaUJBQW9ELFNBQVM7UUFDNUUsTUFBTSxRQUFRLEdBQXVCLEVBQUUsQ0FBQztRQUV4QyxJQUFJLDJCQUEyQixHQUFHLEtBQUssQ0FBQztRQUV4QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxLQUFJLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBQyxDQUFDO1lBQ3ZCLElBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUMsQ0FBQztnQkFDcEIsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFDLENBQUM7Z0JBQ3BFLDJCQUEyQixHQUFHLElBQUksQ0FBQztnQkFDbkMsU0FBUztZQUNYLENBQUM7WUFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFHLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGtCQUFrQixFQUFDLENBQUM7Z0JBQzlDLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxTQUFpQixFQUFFLGlCQUFvRCxTQUFTO1FBQzVHLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUNyQixJQUFJLEVBQUUsR0FBd0IsU0FBUyxDQUFDO1FBRXhDLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEQsSUFBRyxpQkFBaUIsSUFBSSxDQUFDLElBQUksa0JBQWtCLElBQUcsQ0FBQyxJQUFJLGtCQUFrQixHQUFHLGlCQUFpQixFQUFDLENBQUM7WUFDN0YsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUM1RSxFQUFFLEdBQUcsVUFBVSxDQUFDO1lBQ2hCLElBQUcsVUFBVSxJQUFJLGNBQWMsRUFBQyxDQUFDO2dCQUMvQixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xELElBQUcsY0FBYyxFQUFDLENBQUM7b0JBQ2pCLElBQUksR0FBRyxjQUFjLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFLLElBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO1lBQ2hDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUcsS0FBSyxHQUFDLFNBQVM7WUFDM0IsRUFBRSxFQUFHLEVBQUU7U0FDUixDQUFBO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaXVtIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5pbnRlcmZhY2VcIjtcclxuXHJcbmNvbnN0IERpdnNpb25JRFN1YnN0cmluZyA9ICd0YWJBdHRyaWJFbGVtZW50LkRpdmlzaW9uSUQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlclN0cmluZyB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGZpbHRlclN0cmluZzogc3RyaW5nID0gXCJcIiwgbWF4RmlsdGVyQ3JpdGVyaWE6IG51bWJlciA9IDUpe1xyXG4gICAgdGhpcy5fZmlsdGVyU3RyaW5nID0gZmlsdGVyU3RyaW5nO1xyXG4gICAgdGhpcy5fbWF4RmlsdGVyQ3JpdGVyaWEgPSBtYXhGaWx0ZXJDcml0ZXJpYTtcclxuICB9XHJcblxyXG4gIGdldCBmaWx0ZXJTdHJpbmcoKXtcclxuICAgIHJldHVybiB0aGlzLl9maWx0ZXJTdHJpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9maWx0ZXJTdHJpbmcgOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByaXZhdGUgX21heEZpbHRlckNyaXRlcmlhIDogbnVtYmVyID0gNTtcclxuXHJcbiAgZnJvbUZpbHRlckNyaXRlcmlhKGNyaXRlcmlhIDogRmlsdGVyQ3JpdGVyaXVtW10pe1xyXG4gICAgdGhpcy5fZmlsdGVyU3RyaW5nID0gYFtJXSR7RGl2c2lvbklEU3Vic3RyaW5nfWA7XHJcbiAgICBcclxuICAgIGZvcihjb25zdCBjcml0ZXJpdW0gb2YgY3JpdGVyaWEpe1xyXG4gICAgICB0aGlzLl9maWx0ZXJTdHJpbmcrPWNyaXRlcml1bS5zdWJTdHJpbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlclN0cmluZztcclxuICB9XHJcblxyXG4gIGdldFJlYWRhYmxlVmFsdWVzRnJvbUZpbHRlckNyaXRlcmlhKGNyaXRlcmlhIDogRmlsdGVyQ3JpdGVyaXVtW10pIDogUmVjb3JkPHN0cmluZyxzdHJpbmc+e1xyXG4gICAgY29uc3QgcmVhZGFibGVWYWx1ZXMgOiBSZWNvcmQ8c3RyaW5nLHN0cmluZz4gPSB7fTtcclxuICAgIGZvcihjb25zdCBjcml0ZXJpdW0gb2YgY3JpdGVyaWEpe1xyXG4gICAgICBpZihjcml0ZXJpdW0uaWQgJiYgY3JpdGVyaXVtLm5hbWUpXHJcbiAgICAgICAgcmVhZGFibGVWYWx1ZXNbY3JpdGVyaXVtLmlkXSA9IGNyaXRlcml1bS5uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZWFkYWJsZVZhbHVlcztcclxuICB9XHJcblxyXG4gIHRvRmlsdGVyQ3JpdGVyaWEocmVhZGFibGVWYWx1ZXM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IEZpbHRlckNyaXRlcml1bVtde1xyXG4gICAgY29uc3QgY3JpdGVyaWEgOiBGaWx0ZXJDcml0ZXJpdW1bXSA9IFtdO1xyXG5cclxuICAgIGxldCBmaXJzdE1vZGVsSWRDcml0ZXJpYVNraXBwZWQgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBwYXJ0cyA9IHRoaXMuX2ZpbHRlclN0cmluZy5zcGxpdCgnW0ldJyk7XHJcbiAgICBmb3IoY29uc3QgcGFydCBvZiBwYXJ0cyl7XHJcbiAgICAgIGlmKHBhcnQubGVuZ3RoID09PSAwKXtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYocGFydC5pbmNsdWRlcyhEaXZzaW9uSURTdWJzdHJpbmcpICYmICFmaXJzdE1vZGVsSWRDcml0ZXJpYVNraXBwZWQpe1xyXG4gICAgICAgIGZpcnN0TW9kZWxJZENyaXRlcmlhU2tpcHBlZCA9IHRydWU7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNyaXRlcmlhLnB1c2godGhpcy5fcGFyc2VGaWx0ZXJTdWJzdHJpbmcocGFydCwgcmVhZGFibGVWYWx1ZXMpKTtcclxuICAgICAgaWYoY3JpdGVyaWEubGVuZ3RoID09PSB0aGlzLl9tYXhGaWx0ZXJDcml0ZXJpYSl7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY3JpdGVyaWE7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wYXJzZUZpbHRlclN1YnN0cmluZyhzdWJTdHJpbmc6IHN0cmluZywgcmVhZGFibGVWYWx1ZXM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IEZpbHRlckNyaXRlcml1bXtcclxuICAgIGxldCBuYW1lID0gc3ViU3RyaW5nO1xyXG4gICAgbGV0IGlkIDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbnN0IGluZGV4T3BlbkJyYWNrZXRzID0gc3ViU3RyaW5nLmluZGV4T2YoJ1snKTtcclxuICAgIGNvbnN0IGluZGV4Q2xvc2VCcmFja2V0cyA9IHN1YlN0cmluZy5pbmRleE9mKCddJyk7XHJcblxyXG4gICAgaWYoaW5kZXhPcGVuQnJhY2tldHMgPj0gMCAmJiBpbmRleENsb3NlQnJhY2tldHMgPj0wICYmIGluZGV4Q2xvc2VCcmFja2V0cyA+IGluZGV4T3BlbkJyYWNrZXRzKXtcclxuICAgICAgY29uc3QgcmVhZGFibGVJZCA9IHN1YlN0cmluZy5zbGljZShpbmRleE9wZW5CcmFja2V0cysxLCBpbmRleENsb3NlQnJhY2tldHMpO1xyXG4gICAgICBpZCA9IHJlYWRhYmxlSWQ7XHJcbiAgICAgIGlmKHJlYWRhYmxlSWQgJiYgcmVhZGFibGVWYWx1ZXMpe1xyXG4gICAgICAgIGNvbnN0IHJlYWRhYmxlU3RyaW5nID0gcmVhZGFibGVWYWx1ZXNbcmVhZGFibGVJZF07XHJcbiAgICAgICAgaWYocmVhZGFibGVTdHJpbmcpe1xyXG4gICAgICAgICAgbmFtZSA9IHJlYWRhYmxlU3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfSAgICAgIFxyXG4gICAgfWVsc2UgaWYoc3ViU3RyaW5nLmluY2x1ZGVzKCcuJykpe1xyXG4gICAgICBjb25zdCBzcGxpdHRlZCA9IHN1YlN0cmluZy5zcGxpdCgnLicpO1xyXG4gICAgICBuYW1lID0gc3BsaXR0ZWRbc3BsaXR0ZWQubGVuZ3RoLTFdO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5hbWU6IG5hbWUsXHJcbiAgICAgIHN1YlN0cmluZyA6IFwiW0ldXCIrc3ViU3RyaW5nLFxyXG4gICAgICBpZCA6IGlkXHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -32,4 +32,4 @@ export class FilterStructureFetcher {
|
|
|
32
32
|
return observeable;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyU3RydWN0dXJlRmV0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9maWx0ZXJTdHJ1Y3R1cmVGZXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxTQUFpQixFQUFFLE1BQTJCLEVBQUUsZUFBb0MsRUFBRSxHQUFlO1FBQ2xKLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMvQixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFMUMsSUFBSSxXQUFXLEdBQTRELElBQUksQ0FBQztRQUVoRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDOUcsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7b0JBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFFRCxRQUFRLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFFeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkcsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDO29CQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlHLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO29CQUNuQixHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDbkMsT0FBTyxZQUFZLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFdlYlNkayBmcm9tICdiaW1wbHVzLXdlYnNkayc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbmNhdE1hcCwgZnJvbSwgbWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyU3RydWN0dXJlRmV0Y2hlciB7XHJcblxyXG4gIHN0YXRpYyBmZXRjaE9iamVjdEZpbHRlclN0cnVjdHVyZUZyb21TZWxlY3Rpb24ocHJvamVjdElkOiBzdHJpbmcsIGZpbHRlcjogV2ViU2RrLk9iamVjdEZpbHRlciwgc2VsZWN0aW9uT2JqZWN0OiBXZWJTZGsuRXhwb3J0T2JqZWN0LCBhcGk6IFdlYlNkay5BcGkpOiBPYnNlcnZhYmxlPFdlYlNkay5PYmplY3RGaWx0ZXJTdHJ1Y3R1cmVSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaXNUZW1wb3JhcnkgPSAhZmlsdGVyLmlkO1xyXG4gICAgbGV0IGZpbHRlcklkID0gZmlsdGVyLmlkID8gZmlsdGVyLmlkIDogXCJcIjtcclxuXHJcbiAgICBsZXQgb2JzZXJ2ZWFibGU6IE9ic2VydmFibGU8V2ViU2RrLk9iamVjdEZpbHRlclN0cnVjdHVyZVJlc3BvbnNlPiB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGlmICghaXNUZW1wb3JhcnkpIHtcclxuICAgICAgb2JzZXJ2ZWFibGUgPSBmcm9tKGFwaS5leHBvcnRTZXJ2aWNlLmNyZWF0ZUV4cG9ydFNlbGVjdGlvbihwcm9qZWN0SWQsIEpTT04uc3RyaW5naWZ5KHNlbGVjdGlvbk9iamVjdCkpKS5waXBlKFxyXG4gICAgICAgIGNvbmNhdE1hcChzZWxlY3Rpb25PYmogPT4ge1xyXG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb25PYmo/LmlkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBzZWxlY3Rpb24gb2JqZWN0Jyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gZnJvbShhcGkub2JqZWN0RmlsdGVycy5nZXRTZWxlY3Rpb25GaWx0ZXJlZE9iamVjdHMoc2VsZWN0aW9uT2JqLmlkLCBmaWx0ZXJJZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvYnNlcnZlYWJsZSA9IGZyb20oYXBpLm9iamVjdEZpbHRlcnMucG9zdChKU09OLnN0cmluZ2lmeShmaWx0ZXIpLCBwcm9qZWN0SWQpKS5waXBlKFxyXG4gICAgICAgIGNvbmNhdE1hcChmaWx0ZXJPYmogPT4ge1xyXG4gICAgICAgICAgaWYgKCFmaWx0ZXJPYmo/LmlkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsdGVyIG9iamVjdCcpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGZpbHRlcklkID0gZmlsdGVyT2JqLmlkO1xyXG5cclxuICAgICAgICAgIHJldHVybiBmcm9tKGFwaS5leHBvcnRTZXJ2aWNlLmNyZWF0ZUV4cG9ydFNlbGVjdGlvbihwcm9qZWN0SWQsIEpTT04uc3RyaW5naWZ5KHNlbGVjdGlvbk9iamVjdCkpKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjb25jYXRNYXAoc2VsZWN0aW9uT2JqID0+IHtcclxuICAgICAgICAgIGlmICghc2VsZWN0aW9uT2JqPy5pZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgc2VsZWN0aW9uIG9iamVjdCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIGZyb20oYXBpLm9iamVjdEZpbHRlcnMuZ2V0U2VsZWN0aW9uRmlsdGVyZWRPYmplY3RzKHNlbGVjdGlvbk9iai5pZCwgZmlsdGVySWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKSkucGlwZShcclxuICAgICAgICAgICAgbWFwKChmaWx0ZXJSZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICBhcGkub2JqZWN0RmlsdGVycy5kZWxldGUoZmlsdGVySWQpO1xyXG4gICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJSZXN1bHQ7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH1cclxuICAgIHJldHVybiBvYnNlcnZlYWJsZTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -24,4 +24,4 @@ export function fireEvent(source, eventName, data = null) {
|
|
|
24
24
|
_source[eventName].emit(data);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0E7Ozs7Ozs7Ozs7NEVBVTRFO0FBQzVFLE1BQU0sVUFBVSxTQUFTLENBQUMsTUFBZSxFQUFFLFNBQWlCLEVBQUUsT0FBZ0IsSUFBSTtJQUM5RSxJQUFLLENBQUMsU0FBUyxFQUFHLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7UUFDeEYsT0FBTztJQUNYLENBQUM7SUFDRCxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSyxNQUFNLENBQUMsT0FBeUIsQ0FBQztJQUNqSCxJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN2RCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUksTUFBaUIsQ0FBQztJQUNuQyxJQUFJLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN2QixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRGVmaW5lIHRoZSB0eXBlIG9mIHRoZSB3aW5kb3cuQmltUGx1cyBvYmplY3RcclxuZXhwb3J0IGludGVyZmFjZSBCaW1QbHVzT2JqZWN0IHtcclxuICAgIFtrZXk6IHN0cmluZ106IChkYXRhRGV0YWlsOiB7IGRldGFpbDogdW5rbm93biB9KSA9PiB2b2lkO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlIHtcclxuICBba2V5OiBzdHJpbmddOiB7IGVtaXQ6IChhcmcwOiB1bmtub3duKSA9PiB2b2lkOyB9O1xyXG59XHJcblxyXG5cclxuLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuKiBmaXJlIGV2ZW50IGZyb20gY29tcG9uZW50IGluIHR3byB3YXlzIDogXHJcbiAgLSBmaXJlIGN1c3RvbSBldmVudCBmcm9tIGNvbXBvbmVudCBpbiBzdGFuZGFyZCByZWNvbW1lbmRlZCB3YXkgdmlhLiB0aGlzLmV2ZW50TmFtZS5lbWl0IGZ1bmN0aW9uXHJcbiAgXHJcbiAgLSBjYWxsIHdpbmRvdy5CaW1QbHVzLmV2ZW50TmFtZSBmdW5jdGlvbiBkaXJlY3RseSBvbiB3aW5kb3cgb2JqZWN0IChldmVudE5hbWUgaXMgbmFtZVxyXG4gICAgb2YgdGhlIGV2ZW50IHdlIHdhbnQgdG8gZmlyZSBlLmcuIGJpbXBsdXNOYXZiYXJDbGlja2VkIHNvIGl0IHdpbGwgYmUgd2luZG93LkJpbVBsdXMuYmltcGx1c05hdmJhckNsaWNrZWQpLlxyXG4gICAgRnVuY3Rpb24gbXVzdCBiZSBkZWZpbmVkIGluIGFwcC4gd2hlcmUgd2UgYXJlIHVzaW5nIG91ciBjb21wb25lbnRzLlxyXG4gICAgVGhpcyB3YXMgaW1wbGVtZW50ZWQgYmVjYXVzZSBNUyBFZGdlIGJyb3dzZXIgaGFzIHByb2JsZW1zIHdpdGggY3VzdG9tIGV2ZW50cyBhbmQgaW4gc29tZSBcclxuICAgIHNpdHVhdGlvbnMoZS5nLiBhZnRlciBmaWxlIGRvd25sb2FkKSBpdCBzdG9wcyBoYW5kbGluZyBjdXN0b20gZXZlbnRzLlxyXG4gICAgRGlzYWR2YW50YWdlIGlzIHRoYXQgd2UgY2FuIGhhdmUgb25seSBvbmUgZXZlbnQgaGFuZGxlciB3aGljaCBpcyBzaGFyZWQgYmV0d2VlbiB0aGUgbXVsdGlwbGUgY29tcG9uZW50cy5cclxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5leHBvcnQgZnVuY3Rpb24gZmlyZUV2ZW50KHNvdXJjZTogdW5rbm93biwgZXZlbnROYW1lOiBzdHJpbmcsIGRhdGE6IHVua25vd24gPSBudWxsKXtcclxuICAgIGlmICggIWV2ZW50TmFtZSApIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFwiRVJST1I6IE1pc3NpbmcgZXZlbnQgbmFtZSBpbiBmaXJlRXZlbnQgZnVuY3Rpb24gaW4gQmltcGx1cyBjb21wb25lbnRzIVwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBDaGVjayBpZiBldmVudE5hbWUgZXhpc3RzIG9uIHdpbmRvdy5CaW1QbHVzIGFuZCBpZiBpdCdzIGEgZnVuY3Rpb25cclxuICAgIGNvbnN0IGJpbVBsdXMgPSAoJ0JpbVBsdXMnIGluIHdpbmRvdykgJiYgdHlwZW9mIHdpbmRvdy5CaW1QbHVzID09PSAnb2JqZWN0JyAmJiAod2luZG93LkJpbVBsdXMgYXMgQmltUGx1c09iamVjdCk7XHJcbiAgICBpZiAoYmltUGx1cyAmJiB0eXBlb2YgYmltUGx1c1tldmVudE5hbWVdID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICBiaW1QbHVzW2V2ZW50TmFtZV0oe2RldGFpbDogZGF0YX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IF9zb3VyY2UgPSAoc291cmNlIGFzIFNvdXJjZSk7XHJcbiAgICBpZiAoZXZlbnROYW1lIGluIF9zb3VyY2UpIHtcclxuICAgICAgICBfc291cmNlW2V2ZW50TmFtZV0uZW1pdChkYXRhKTtcclxuICAgIH1cclxufSJdfQ==
|