@entake/particle 18.0.4 → 19.0.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/LICENSE +1 -1
- package/app/{modules → shared/components}/accordion/accordion.component.d.ts +3 -3
- package/app/{modules/date-picker → shared}/components/calendar/calendar.component.d.ts +7 -12
- package/app/{modules → shared/components}/checkbox/checkbox.component.d.ts +5 -7
- package/app/{modules → shared/components}/color-picker/color-picker.component.d.ts +3 -9
- package/app/{modules → shared/components}/date-picker/date-picker.component.d.ts +20 -26
- package/app/{modules/date-picker → shared}/components/date-range-picker/date-range-picker.component.d.ts +10 -11
- package/app/{modules → shared/components}/dialog/dialog.component.d.ts +14 -24
- package/app/{modules → shared/components}/dropdown/dropdown.component.d.ts +12 -14
- package/app/{modules/icons/components → shared/components/icon-select}/icon-select.component.d.ts +14 -17
- package/app/{modules → shared/components}/idle-timeout/idle-timeout.component.d.ts +3 -4
- package/app/{modules → shared/components}/input-mask/input-mask.component.d.ts +6 -7
- package/app/shared/components/layout-full-framing/layout-full-framing.component.d.ts +27 -0
- package/app/shared/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.d.ts +23 -0
- package/app/{modules/loader/components → shared/components/loader}/loader.component.d.ts +2 -2
- package/app/{modules → shared/components}/multi-select/multi-select.component.d.ts +18 -24
- package/app/{modules → shared/components}/notification/notification.component.d.ts +5 -13
- package/app/{modules → shared/components}/paginator/paginator.component.d.ts +12 -11
- package/app/{modules → shared/components}/popover/popover.component.d.ts +10 -15
- package/app/{modules → shared/components}/profile-pic/profile-pic.component.d.ts +1 -1
- package/app/shared/components/progress-bar/progress-bar.component.d.ts +15 -0
- package/app/{modules → shared/components}/rich-text/rich-text.component.d.ts +11 -12
- package/app/shared/components/scroll-to-top/scroll-to-top.component.d.ts +18 -0
- package/app/shared/components/slideover/slideover.component.d.ts +35 -0
- package/app/{modules → shared/components}/slider/slider.component.d.ts +8 -22
- package/app/{modules → shared/components}/toggle-switch/toggle-switch.component.d.ts +4 -6
- package/app/{modules → shared/components}/week-picker/week-picker.component.d.ts +21 -22
- package/app/{modules/accordion → shared}/directives/accordion-content.directive.d.ts +1 -2
- package/app/{modules/accordion → shared}/directives/accordion-header.directive.d.ts +1 -2
- package/app/{modules/accordion → shared}/directives/accordion-item.directive.d.ts +1 -1
- package/app/{modules/background-carousel → shared/directives}/background-carousel.directive.d.ts +4 -4
- package/app/{modules/keyfilter → shared/directives}/keyfilter.directive.d.ts +1 -7
- package/app/{modules/tooltip → shared/directives}/tooltip.directive.d.ts +3 -9
- package/app/shared/models/carousel-options.model.d.ts +21 -0
- package/app/shared/models/pagination-event.model.d.ts +8 -0
- package/app/shared/models/particle-component-text.model.d.ts +0 -24
- package/app/shared/modules/icons/particle-icons.module.d.ts +7 -0
- package/app/{modules/ordinal-number-pipe → shared/pipes}/ordinal-number.pipe.d.ts +1 -1
- package/app/shared/services/base-data.service.d.ts +2 -2
- package/app/shared/services/dialog.service.d.ts +1 -1
- package/app/{modules/notification → shared}/services/notification.service.d.ts +0 -4
- package/app/{modules/theming → shared}/services/theming.service.d.ts +0 -19
- package/fesm2022/entake-particle.mjs +3873 -5572
- package/fesm2022/entake-particle.mjs.map +1 -1
- package/package.json +16 -25
- package/public_api.d.ts +47 -82
- package/app/modules/accordion/accordion.module.d.ts +0 -11
- package/app/modules/background-carousel/carousel-options.model.d.ts +0 -30
- package/app/modules/background-carousel/particle-background-carousel.module.d.ts +0 -8
- package/app/modules/checkbox/checkbox.module.d.ts +0 -9
- package/app/modules/color-picker/color-picker.module.d.ts +0 -9
- package/app/modules/date-picker/date-picker.module.d.ts +0 -15
- package/app/modules/dialog/dialog.module.d.ts +0 -9
- package/app/modules/dropdown/dropdown.module.d.ts +0 -9
- package/app/modules/endpoint-state/components/endpoint-state.component.d.ts +0 -46
- package/app/modules/endpoint-state/endpoint-state.module.d.ts +0 -8
- package/app/modules/icons/particle-icons.module.d.ts +0 -13
- package/app/modules/idle-timeout/particle-idle-timeout.module.d.ts +0 -9
- package/app/modules/input-mask/input-mask.module.d.ts +0 -8
- package/app/modules/keyfilter/keyfilter.module.d.ts +0 -8
- package/app/modules/layout/components/layout-full-framing/layout-full-framing.component.d.ts +0 -27
- package/app/modules/layout/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.d.ts +0 -23
- package/app/modules/layout/layout.module.d.ts +0 -10
- package/app/modules/loader/loader.module.d.ts +0 -8
- package/app/modules/multi-select/multi-select.module.d.ts +0 -8
- package/app/modules/notification/notification.module.d.ts +0 -8
- package/app/modules/ordinal-number-pipe/ordinal-number-pipe.module.d.ts +0 -8
- package/app/modules/paginator/pagination-event.model.d.ts +0 -24
- package/app/modules/paginator/particle-paginator.module.d.ts +0 -13
- package/app/modules/popover/popover.module.d.ts +0 -9
- package/app/modules/profile-pic/particle-profile-pic.module.d.ts +0 -9
- package/app/modules/progress-bar/progress-bar.component.d.ts +0 -16
- package/app/modules/progress-bar/progress-bar.module.d.ts +0 -8
- package/app/modules/push-container/particle-push-container.module.d.ts +0 -9
- package/app/modules/push-container/push-container-state.model.d.ts +0 -7
- package/app/modules/push-container/push-container.component.d.ts +0 -137
- package/app/modules/rich-text/particle-rich-text.module.d.ts +0 -15
- package/app/modules/rich-text/render-rich-text.component.d.ts +0 -6
- package/app/modules/scroll-to-top/particle-scroll-to-top.module.d.ts +0 -8
- package/app/modules/scroll-to-top/scroll-to-top.component.d.ts +0 -19
- package/app/modules/slideover/particle-slideover.module.d.ts +0 -8
- package/app/modules/slideover/slideover.component.d.ts +0 -35
- package/app/modules/slider/slider.module.d.ts +0 -9
- package/app/modules/theming/components/theming.component.d.ts +0 -43
- package/app/modules/theming/theming.module.d.ts +0 -12
- package/app/modules/toggle-switch/toggle-switch.module.d.ts +0 -8
- package/app/modules/tooltip/tooltip.module.d.ts +0 -8
- package/app/modules/week-picker/week-picker.module.d.ts +0 -13
- package/app/shared/enums/endpoint-status.enum.d.ts +0 -9
- package/esm2022/app/modules/accordion/accordion.component.mjs +0 -101
- package/esm2022/app/modules/accordion/accordion.module.mjs +0 -37
- package/esm2022/app/modules/accordion/directives/accordion-content.directive.mjs +0 -17
- package/esm2022/app/modules/accordion/directives/accordion-header.directive.mjs +0 -17
- package/esm2022/app/modules/accordion/directives/accordion-item.directive.mjs +0 -36
- package/esm2022/app/modules/background-carousel/background-carousel.directive.mjs +0 -91
- package/esm2022/app/modules/background-carousel/carousel-options.model.mjs +0 -36
- package/esm2022/app/modules/background-carousel/particle-background-carousel.module.mjs +0 -24
- package/esm2022/app/modules/checkbox/checkbox.component.mjs +0 -108
- package/esm2022/app/modules/checkbox/checkbox.module.mjs +0 -28
- package/esm2022/app/modules/color-picker/color-picker.component.mjs +0 -306
- package/esm2022/app/modules/color-picker/color-picker.module.mjs +0 -19
- package/esm2022/app/modules/date-picker/components/calendar/calendar.component.mjs +0 -496
- package/esm2022/app/modules/date-picker/components/date-range-picker/date-range-picker.component.mjs +0 -250
- package/esm2022/app/modules/date-picker/date-picker.component.mjs +0 -538
- package/esm2022/app/modules/date-picker/date-picker.module.mjs +0 -56
- package/esm2022/app/modules/dialog/dialog.component.mjs +0 -177
- package/esm2022/app/modules/dialog/dialog.module.mjs +0 -28
- package/esm2022/app/modules/dropdown/dropdown.component.mjs +0 -682
- package/esm2022/app/modules/dropdown/dropdown.module.mjs +0 -28
- package/esm2022/app/modules/dropdown/models/dropdown-option-group.model.mjs +0 -2
- package/esm2022/app/modules/dropdown/models/dropdown-option.model.mjs +0 -2
- package/esm2022/app/modules/endpoint-state/components/endpoint-state.component.mjs +0 -75
- package/esm2022/app/modules/endpoint-state/endpoint-state.module.mjs +0 -22
- package/esm2022/app/modules/icons/components/icon-select.component.mjs +0 -376
- package/esm2022/app/modules/icons/models/fontawesome-icons-brands.model.mjs +0 -471
- package/esm2022/app/modules/icons/models/fontawesome-icons-regular.model.mjs +0 -166
- package/esm2022/app/modules/icons/models/fontawesome-icons-solid.model.mjs +0 -1016
- package/esm2022/app/modules/icons/models/particle-icons-brands.model.mjs +0 -24
- package/esm2022/app/modules/icons/models/particle-icons-regular.model.mjs +0 -50
- package/esm2022/app/modules/icons/models/particle-icons-solid.model.mjs +0 -89
- package/esm2022/app/modules/icons/particle-icons.module.mjs +0 -66
- package/esm2022/app/modules/icons/services/icons.service.mjs +0 -82
- package/esm2022/app/modules/idle-timeout/idle-timeout.component.mjs +0 -85
- package/esm2022/app/modules/idle-timeout/idle-timer.mjs +0 -66
- package/esm2022/app/modules/idle-timeout/particle-idle-timeout.module.mjs +0 -28
- package/esm2022/app/modules/input-mask/input-mask.component.mjs +0 -594
- package/esm2022/app/modules/input-mask/input-mask.module.mjs +0 -18
- package/esm2022/app/modules/keyfilter/keyfilter.directive.mjs +0 -174
- package/esm2022/app/modules/keyfilter/keyfilter.module.mjs +0 -18
- package/esm2022/app/modules/layout/components/layout-full-framing/layout-full-framing.component.mjs +0 -81
- package/esm2022/app/modules/layout/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.mjs +0 -67
- package/esm2022/app/modules/layout/layout.module.mjs +0 -33
- package/esm2022/app/modules/loader/components/loader.component.mjs +0 -30
- package/esm2022/app/modules/loader/loader.module.mjs +0 -24
- package/esm2022/app/modules/multi-select/models/multi-select-option-group.model.mjs +0 -2
- package/esm2022/app/modules/multi-select/models/multi-select-option.model.mjs +0 -2
- package/esm2022/app/modules/multi-select/multi-select.component.mjs +0 -665
- package/esm2022/app/modules/multi-select/multi-select.module.mjs +0 -18
- package/esm2022/app/modules/notification/models/notification.model.mjs +0 -2
- package/esm2022/app/modules/notification/notification.component.mjs +0 -122
- package/esm2022/app/modules/notification/notification.module.mjs +0 -18
- package/esm2022/app/modules/notification/services/notification.service.mjs +0 -84
- package/esm2022/app/modules/ordinal-number-pipe/ordinal-number-pipe.module.mjs +0 -20
- package/esm2022/app/modules/ordinal-number-pipe/ordinal-number.pipe.mjs +0 -49
- package/esm2022/app/modules/paginator/pagination-event.model.mjs +0 -29
- package/esm2022/app/modules/paginator/paginator.component.mjs +0 -207
- package/esm2022/app/modules/paginator/particle-paginator.module.mjs +0 -48
- package/esm2022/app/modules/popover/popover.component.mjs +0 -352
- package/esm2022/app/modules/popover/popover.module.mjs +0 -24
- package/esm2022/app/modules/profile-pic/particle-profile-pic.module.mjs +0 -28
- package/esm2022/app/modules/profile-pic/profile-pic.component.mjs +0 -75
- package/esm2022/app/modules/progress-bar/progress-bar.component.mjs +0 -43
- package/esm2022/app/modules/progress-bar/progress-bar.module.mjs +0 -24
- package/esm2022/app/modules/push-container/particle-push-container.module.mjs +0 -26
- package/esm2022/app/modules/push-container/push-container-state.model.mjs +0 -2
- package/esm2022/app/modules/push-container/push-container.component.mjs +0 -363
- package/esm2022/app/modules/rich-text/particle-rich-text.module.mjs +0 -64
- package/esm2022/app/modules/rich-text/render-rich-text.component.mjs +0 -18
- package/esm2022/app/modules/rich-text/rich-text-capabilities.model.mjs +0 -2
- package/esm2022/app/modules/rich-text/rich-text.component.mjs +0 -206
- package/esm2022/app/modules/scroll-to-top/particle-scroll-to-top.module.mjs +0 -24
- package/esm2022/app/modules/scroll-to-top/scroll-to-top.component.mjs +0 -49
- package/esm2022/app/modules/slideover/particle-slideover.module.mjs +0 -24
- package/esm2022/app/modules/slideover/slideover.component.mjs +0 -115
- package/esm2022/app/modules/slider/slider.component.mjs +0 -243
- package/esm2022/app/modules/slider/slider.module.mjs +0 -26
- package/esm2022/app/modules/theming/components/theming.component.mjs +0 -86
- package/esm2022/app/modules/theming/models/theme.model.mjs +0 -9
- package/esm2022/app/modules/theming/services/theme-change-detection.service.mjs +0 -38
- package/esm2022/app/modules/theming/services/theming.service.mjs +0 -510
- package/esm2022/app/modules/theming/theming.module.mjs +0 -55
- package/esm2022/app/modules/toggle-switch/models/toggle-options.model.mjs +0 -2
- package/esm2022/app/modules/toggle-switch/toggle-switch.component.mjs +0 -107
- package/esm2022/app/modules/toggle-switch/toggle-switch.module.mjs +0 -24
- package/esm2022/app/modules/tooltip/tooltip.directive.mjs +0 -381
- package/esm2022/app/modules/tooltip/tooltip.module.mjs +0 -18
- package/esm2022/app/modules/week-picker/week-picker.component.mjs +0 -511
- package/esm2022/app/modules/week-picker/week-picker.module.mjs +0 -40
- package/esm2022/app/shared/enums/endpoint-status.enum.mjs +0 -11
- package/esm2022/app/shared/interceptors/json.interceptor.mjs +0 -23
- package/esm2022/app/shared/models/auditable.model.mjs +0 -2
- package/esm2022/app/shared/models/data-list.model.mjs +0 -2
- package/esm2022/app/shared/models/id.model.mjs +0 -2
- package/esm2022/app/shared/models/observable-container.mjs +0 -15
- package/esm2022/app/shared/models/particle-component-text.model.mjs +0 -2
- package/esm2022/app/shared/services/base-data.service.mjs +0 -190
- package/esm2022/app/shared/services/dialog.service.mjs +0 -50
- package/esm2022/app/shared/services/local-storage.service.mjs +0 -60
- package/esm2022/entake-particle.mjs +0 -5
- package/esm2022/public_api.mjs +0 -98
- /package/app/{modules/dropdown → shared}/models/dropdown-option-group.model.d.ts +0 -0
- /package/app/{modules/dropdown → shared}/models/dropdown-option.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/fontawesome-icons-brands.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/fontawesome-icons-regular.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/fontawesome-icons-solid.model.d.ts +0 -0
- /package/app/{modules/multi-select → shared}/models/multi-select-option-group.model.d.ts +0 -0
- /package/app/{modules/multi-select → shared}/models/multi-select-option.model.d.ts +0 -0
- /package/app/{modules/notification → shared}/models/notification.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/particle-icons-brands.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/particle-icons-regular.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/models/particle-icons-solid.model.d.ts +0 -0
- /package/app/{modules/rich-text → shared/models}/rich-text-capabilities.model.d.ts +0 -0
- /package/app/{modules/theming → shared}/models/theme.model.d.ts +0 -0
- /package/app/{modules/toggle-switch → shared}/models/toggle-options.model.d.ts +0 -0
- /package/app/{modules/icons → shared}/services/icons.service.d.ts +0 -0
- /package/app/{modules/idle-timeout → shared/services}/idle-timer.d.ts +0 -0
- /package/app/{modules/theming → shared}/services/theme-change-detection.service.d.ts +0 -0
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "../tooltip/tooltip.directive";
|
|
6
|
-
/**
|
|
7
|
-
* Push Container that'll either push the content or overlay the content based on screen width.
|
|
8
|
-
*/
|
|
9
|
-
export class PushContainerComponent {
|
|
10
|
-
_width = 230;
|
|
11
|
-
/**
|
|
12
|
-
* Width of the container in pixels.
|
|
13
|
-
*/
|
|
14
|
-
set width(width) {
|
|
15
|
-
this._width = width;
|
|
16
|
-
this.setMargin(width + 'px');
|
|
17
|
-
this.updateContainerState();
|
|
18
|
-
}
|
|
19
|
-
get width() {
|
|
20
|
-
return this._width;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Show the side panel on load?
|
|
24
|
-
*/
|
|
25
|
-
showSidePanel = false;
|
|
26
|
-
/**
|
|
27
|
-
* Main Content ID that will be pushed by this
|
|
28
|
-
*/
|
|
29
|
-
mainContentId = null;
|
|
30
|
-
/**
|
|
31
|
-
* Side to push from (left/right)
|
|
32
|
-
*/
|
|
33
|
-
side = 'left';
|
|
34
|
-
/**
|
|
35
|
-
* Top offset to account for a nav bar
|
|
36
|
-
*/
|
|
37
|
-
set topOffset(topOffset) {
|
|
38
|
-
this._topOffset = topOffset;
|
|
39
|
-
this._originalTopOffset = topOffset;
|
|
40
|
-
this.setDefaultHeight();
|
|
41
|
-
this.updateContainerState();
|
|
42
|
-
}
|
|
43
|
-
get topOffset() {
|
|
44
|
-
return this._topOffset;
|
|
45
|
-
}
|
|
46
|
-
_topOffset = '0px';
|
|
47
|
-
set bottomOffset(bottomOffset) {
|
|
48
|
-
this._bottomOffset = bottomOffset;
|
|
49
|
-
this.setDefaultHeight();
|
|
50
|
-
this.updateContainerState();
|
|
51
|
-
}
|
|
52
|
-
get bottomOffset() {
|
|
53
|
-
return this._bottomOffset;
|
|
54
|
-
}
|
|
55
|
-
_bottomOffset = '0px';
|
|
56
|
-
/**
|
|
57
|
-
* If the screen resizes, it will either overlay or close depending on this variable
|
|
58
|
-
*/
|
|
59
|
-
closeOnResize = false;
|
|
60
|
-
/**
|
|
61
|
-
* Background color for the container
|
|
62
|
-
*/
|
|
63
|
-
backgroundColorClass = 'content_color';
|
|
64
|
-
/**
|
|
65
|
-
* Breakpoint that will make the container take over the screen when it's crossed.
|
|
66
|
-
*/
|
|
67
|
-
breakpoint = 769;
|
|
68
|
-
/**
|
|
69
|
-
* Whether to always hide the close button, defaults to false.
|
|
70
|
-
*/
|
|
71
|
-
hideCloseButton = false;
|
|
72
|
-
showTabOnClose = false;
|
|
73
|
-
tabColorClass = 'content_color_dark_2';
|
|
74
|
-
text = {
|
|
75
|
-
close: 'Close',
|
|
76
|
-
expand: 'Expand'
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* Event emitter for open
|
|
80
|
-
*/
|
|
81
|
-
opened = new EventEmitter();
|
|
82
|
-
/**
|
|
83
|
-
* Event emitter for close
|
|
84
|
-
*/
|
|
85
|
-
closed = new EventEmitter();
|
|
86
|
-
/**
|
|
87
|
-
* Visibility variable for accessibility
|
|
88
|
-
*/
|
|
89
|
-
visibility = false;
|
|
90
|
-
unclickable = false;
|
|
91
|
-
/**
|
|
92
|
-
* Private variable to detect if the breakpoint is exceeded
|
|
93
|
-
*/
|
|
94
|
-
breakpointExceeded = false;
|
|
95
|
-
containerState = new BehaviorSubject({});
|
|
96
|
-
zIndex = null;
|
|
97
|
-
_height = null;
|
|
98
|
-
_lastWidth = 0;
|
|
99
|
-
_originalTopOffset = null;
|
|
100
|
-
_originalHideCloseButton = null;
|
|
101
|
-
/**
|
|
102
|
-
* Constructor
|
|
103
|
-
*/
|
|
104
|
-
ngOnInit() {
|
|
105
|
-
this.visibility = this.showSidePanel;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Show or close the push container on load depending on the state passed in.
|
|
109
|
-
*/
|
|
110
|
-
ngAfterViewInit() {
|
|
111
|
-
this._lastWidth = window.innerWidth;
|
|
112
|
-
this._originalTopOffset = this.topOffset + '';
|
|
113
|
-
this._originalHideCloseButton = Boolean(this.hideCloseButton);
|
|
114
|
-
this.setDefaultHeight();
|
|
115
|
-
const element = document.getElementById(this.mainContentId);
|
|
116
|
-
if (element) {
|
|
117
|
-
element.style.transition = 'all 0.2s ease-in-out';
|
|
118
|
-
}
|
|
119
|
-
if (window.innerWidth > 768 && this.showSidePanel) {
|
|
120
|
-
this.setMargin(this.width + 'px');
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
setTimeout(() => {
|
|
124
|
-
this.close();
|
|
125
|
-
}, 100);
|
|
126
|
-
}
|
|
127
|
-
setTimeout(() => {
|
|
128
|
-
if (this.breakpoint && (window.innerWidth <= this.breakpoint)) {
|
|
129
|
-
this.breakpointExceeded = true;
|
|
130
|
-
}
|
|
131
|
-
this.updateContainerState();
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Close the push container on destroy
|
|
136
|
-
*/
|
|
137
|
-
ngOnDestroy() {
|
|
138
|
-
this.showTabOnClose = false;
|
|
139
|
-
this.close();
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Monitor the screen size and perform actions as specified by the input options
|
|
143
|
-
*
|
|
144
|
-
* @param event
|
|
145
|
-
*/
|
|
146
|
-
onResize(event) {
|
|
147
|
-
if (event.target.innerWidth <= 768 && this._lastWidth > 768 && this.showSidePanel) {
|
|
148
|
-
if (this.closeOnResize) {
|
|
149
|
-
this.showSidePanel = false;
|
|
150
|
-
setTimeout(() => this.visibility = false, 200);
|
|
151
|
-
this.closed.emit();
|
|
152
|
-
}
|
|
153
|
-
this.setMargin('0px');
|
|
154
|
-
}
|
|
155
|
-
else if (event.target.innerWidth > 768 && this.showSidePanel) {
|
|
156
|
-
this.setMargin(this.width + 'px');
|
|
157
|
-
this.topOffset = this._originalTopOffset + '';
|
|
158
|
-
this.hideCloseButton = Boolean(this._originalHideCloseButton);
|
|
159
|
-
this.zIndex = null;
|
|
160
|
-
this.setDefaultHeight();
|
|
161
|
-
}
|
|
162
|
-
if (event.target.innerWidth > 768 && this._lastWidth <= 768 && this.closeOnResize) {
|
|
163
|
-
this.showSidePanel = true;
|
|
164
|
-
this.visibility = true;
|
|
165
|
-
this.opened.emit();
|
|
166
|
-
this.setMargin(this.width + 'px');
|
|
167
|
-
}
|
|
168
|
-
if (this.breakpoint) {
|
|
169
|
-
this.breakpointExceeded = event.target.innerWidth < this.breakpoint;
|
|
170
|
-
}
|
|
171
|
-
this.updateContainerState();
|
|
172
|
-
this._lastWidth = event.target.innerWidth;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Open or close based on current state.
|
|
176
|
-
*/
|
|
177
|
-
toggle() {
|
|
178
|
-
if (!this.unclickable) {
|
|
179
|
-
this.unclickable = true;
|
|
180
|
-
setTimeout(() => this.unclickable = false, 500);
|
|
181
|
-
if (this.showSidePanel) {
|
|
182
|
-
this.close();
|
|
183
|
-
}
|
|
184
|
-
else {
|
|
185
|
-
this.open();
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* Open the push container
|
|
191
|
-
*
|
|
192
|
-
* @param init
|
|
193
|
-
*/
|
|
194
|
-
open(init) {
|
|
195
|
-
if (init && window.innerWidth <= 768) {
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
this.visibility = true;
|
|
199
|
-
this.showSidePanel = true;
|
|
200
|
-
this.opened.emit({});
|
|
201
|
-
if (window.innerWidth > 768) {
|
|
202
|
-
this.setMargin(this.width + 'px');
|
|
203
|
-
this._topOffset = this._originalTopOffset;
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
this._topOffset = '0';
|
|
207
|
-
this.zIndex = 'var(--z-overlay)';
|
|
208
|
-
this.hideCloseButton = false;
|
|
209
|
-
this._height = '100%';
|
|
210
|
-
}
|
|
211
|
-
this.updateContainerState();
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Close the push container
|
|
215
|
-
*/
|
|
216
|
-
close() {
|
|
217
|
-
this.showSidePanel = false;
|
|
218
|
-
this.closed.emit({});
|
|
219
|
-
this.setMargin('0px');
|
|
220
|
-
this.setDefaultHeight();
|
|
221
|
-
this.updateContainerState();
|
|
222
|
-
setTimeout(() => {
|
|
223
|
-
this.visibility = false;
|
|
224
|
-
this.topOffset = this._originalTopOffset + '';
|
|
225
|
-
this.hideCloseButton = Boolean(this._originalHideCloseButton);
|
|
226
|
-
this.zIndex = null;
|
|
227
|
-
}, 200);
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Set the margin
|
|
231
|
-
*
|
|
232
|
-
* @param size
|
|
233
|
-
*/
|
|
234
|
-
setMargin(size) {
|
|
235
|
-
const element = document.getElementById(this.mainContentId);
|
|
236
|
-
if (!element) {
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
if (this.showTabOnClose && size === '0px' && window.innerWidth > 768) {
|
|
240
|
-
size = '15px';
|
|
241
|
-
}
|
|
242
|
-
if (this.side.toLowerCase() === 'left') {
|
|
243
|
-
element.style.marginLeft = size;
|
|
244
|
-
if (size === '0px') {
|
|
245
|
-
element.style.removeProperty('margin-left');
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
else if (this.side.toLowerCase() === 'right') {
|
|
249
|
-
element.style.marginRight = size;
|
|
250
|
-
if (size === '0px') {
|
|
251
|
-
element.style.removeProperty('margin-right');
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* Get the width of the container
|
|
257
|
-
*/
|
|
258
|
-
getWidth() {
|
|
259
|
-
if (this.breakpointExceeded && this.showSidePanel) {
|
|
260
|
-
return '100%';
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
return this.width + 'px';
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Get the side panel class based on the current state.
|
|
268
|
-
*/
|
|
269
|
-
getSidePanelClass() {
|
|
270
|
-
if (this.showSidePanel) {
|
|
271
|
-
return this.backgroundColorClass + ' layout_sidebar_active_' + this.side.toLowerCase();
|
|
272
|
-
}
|
|
273
|
-
else {
|
|
274
|
-
return this.backgroundColorClass + ' layout_sidebar_inactive_' + this.side.toLowerCase();
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* Get the left size based on the options
|
|
279
|
-
*/
|
|
280
|
-
getLeftProperty() {
|
|
281
|
-
if (this.side !== 'left') {
|
|
282
|
-
return '';
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
if (this.showSidePanel) {
|
|
286
|
-
return '0';
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
return '-' + this.width + 'px';
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Get the right size based on the options
|
|
295
|
-
*/
|
|
296
|
-
getRightProperty() {
|
|
297
|
-
if (this.side !== 'right') {
|
|
298
|
-
return '';
|
|
299
|
-
}
|
|
300
|
-
else {
|
|
301
|
-
if (this.showSidePanel) {
|
|
302
|
-
return '0';
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
return '-' + (this.width + 20) + 'px';
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
updateContainerState() {
|
|
310
|
-
this.containerState.next({
|
|
311
|
-
right: this.getRightProperty(),
|
|
312
|
-
left: this.getLeftProperty(),
|
|
313
|
-
sidePanelClass: this.getSidePanelClass(),
|
|
314
|
-
height: this._height,
|
|
315
|
-
topOffset: this._topOffset
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
setDefaultHeight() {
|
|
319
|
-
const offset = +this.topOffset.replace(/\D/g, "") +
|
|
320
|
-
+this.bottomOffset.replace(/\D/g, "");
|
|
321
|
-
this._height = `calc(100% - ${offset}px)`;
|
|
322
|
-
}
|
|
323
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: PushContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
324
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: PushContainerComponent, selector: "particle-push-container", inputs: { width: "width", showSidePanel: "showSidePanel", mainContentId: "mainContentId", side: "side", topOffset: "topOffset", bottomOffset: "bottomOffset", closeOnResize: "closeOnResize", backgroundColorClass: "backgroundColorClass", breakpoint: "breakpoint", hideCloseButton: "hideCloseButton", showTabOnClose: "showTabOnClose", tabColorClass: "tabColorClass", text: "text" }, outputs: { opened: "opened", closed: "closed" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<ng-container *ngIf=\"containerState | async as state\">\r\n <div class=\"layout_sidebar\"\r\n [ngClass]=\"state.sidePanelClass\"\r\n [style.top]=\"state.topOffset\"\r\n [style.height]=\"state.height\"\r\n [style.width]=\"(breakpointExceeded && showSidePanel) ? '100%' : width + 'px'\"\r\n [style.left]=\"state.left\"\r\n [style.right]=\"state.right\"\r\n [style.visibility]=\"visibility ? 'visible' : 'hidden'\"\r\n [style.z-index]=\"zIndex\">\r\n <div class=\"push_close_bar\" *ngIf=\"(!hideCloseButton || breakpointExceeded) && !hideCloseButton\">\r\n <button (click)=\"close()\" class=\"data_hide_button access\" tabindex=\"0\" [attr.aria-label]=\"text.close\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"showSidePanel\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n </div>\r\n <button\r\n *ngIf=\"!visibility && showTabOnClose\"\r\n class=\"btn md side_panel_tab center_center hide_element access\"\r\n [ngClass]=\"tabColorClass\"\r\n [style.top]=\"state.topOffset\"\r\n [style.height]=\"'calc(100% - ' + state.topOffset + ')'\"\r\n (click)=\"open()\"\r\n [style.left]=\"side === 'left' ? 0 : undefined\"\r\n [style.right]=\"side !== 'left' ? 0 : undefined\"\r\n [particleTooltip]=\"text.expand\"\r\n [attr.aria-label]=\"text.expand\"\r\n tooltipPosition=\"right\"\r\n >\r\n <div class=\"text md\">\r\n <i [ngClass]=\"side === 'left' ? 'fas fa-angle-right' : 'fas fa-angle-left'\"></i>\r\n </div>\r\n </button>\r\n</ng-container>\r\n", styles: [".layout_sidebar{position:fixed;-webkit-user-select:none;user-select:none}.push_close_bar{position:absolute;right:0;top:0;width:45px;height:45px;display:flex;justify-content:center;align-items:center}.layout_sidebar_inactive_left,.layout_sidebar_active_left{transition:left .2s ease-in-out}.layout_sidebar_inactive_right,.layout_sidebar_active_right{transition:right .2s ease-in-out}.side_panel_push{margin-left:230px;float:left;position:relative}.side_panel_push_inactive{display:none}.side_panel_tab{position:fixed;z-index:var(--z-overlay);-webkit-user-select:none;user-select:none;width:15px;overflow:hidden;cursor:pointer;box-shadow:5px 0 3px -1px #00000059;transition:all .2s ease-in-out}.side_panel_tab:hover{width:25px}.data_hide_button{float:right;display:flex;align-items:center;justify-content:center;font-size:9pt;min-height:20px;height:20px;min-width:20px;width:20px;border-radius:50%;cursor:pointer;padding:0;transition:all .2s ease-in-out;background-color:#ffffffe6;color:#0006;border:1px solid rgba(0,0,0,.1)}.data_hide_button:hover{background-color:#0000004d;color:#fffc;border:1px solid rgba(0,0,0,.1)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TooltipDirective, selector: "[particleTooltip]", inputs: ["particleTooltip", "tooltipPosition", "tooltipDisabled"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
325
|
-
}
|
|
326
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: PushContainerComponent, decorators: [{
|
|
327
|
-
type: Component,
|
|
328
|
-
args: [{ selector: 'particle-push-container', template: "<ng-container *ngIf=\"containerState | async as state\">\r\n <div class=\"layout_sidebar\"\r\n [ngClass]=\"state.sidePanelClass\"\r\n [style.top]=\"state.topOffset\"\r\n [style.height]=\"state.height\"\r\n [style.width]=\"(breakpointExceeded && showSidePanel) ? '100%' : width + 'px'\"\r\n [style.left]=\"state.left\"\r\n [style.right]=\"state.right\"\r\n [style.visibility]=\"visibility ? 'visible' : 'hidden'\"\r\n [style.z-index]=\"zIndex\">\r\n <div class=\"push_close_bar\" *ngIf=\"(!hideCloseButton || breakpointExceeded) && !hideCloseButton\">\r\n <button (click)=\"close()\" class=\"data_hide_button access\" tabindex=\"0\" [attr.aria-label]=\"text.close\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n <ng-container *ngIf=\"showSidePanel\">\r\n <ng-content></ng-content>\r\n </ng-container>\r\n </div>\r\n <button\r\n *ngIf=\"!visibility && showTabOnClose\"\r\n class=\"btn md side_panel_tab center_center hide_element access\"\r\n [ngClass]=\"tabColorClass\"\r\n [style.top]=\"state.topOffset\"\r\n [style.height]=\"'calc(100% - ' + state.topOffset + ')'\"\r\n (click)=\"open()\"\r\n [style.left]=\"side === 'left' ? 0 : undefined\"\r\n [style.right]=\"side !== 'left' ? 0 : undefined\"\r\n [particleTooltip]=\"text.expand\"\r\n [attr.aria-label]=\"text.expand\"\r\n tooltipPosition=\"right\"\r\n >\r\n <div class=\"text md\">\r\n <i [ngClass]=\"side === 'left' ? 'fas fa-angle-right' : 'fas fa-angle-left'\"></i>\r\n </div>\r\n </button>\r\n</ng-container>\r\n", styles: [".layout_sidebar{position:fixed;-webkit-user-select:none;user-select:none}.push_close_bar{position:absolute;right:0;top:0;width:45px;height:45px;display:flex;justify-content:center;align-items:center}.layout_sidebar_inactive_left,.layout_sidebar_active_left{transition:left .2s ease-in-out}.layout_sidebar_inactive_right,.layout_sidebar_active_right{transition:right .2s ease-in-out}.side_panel_push{margin-left:230px;float:left;position:relative}.side_panel_push_inactive{display:none}.side_panel_tab{position:fixed;z-index:var(--z-overlay);-webkit-user-select:none;user-select:none;width:15px;overflow:hidden;cursor:pointer;box-shadow:5px 0 3px -1px #00000059;transition:all .2s ease-in-out}.side_panel_tab:hover{width:25px}.data_hide_button{float:right;display:flex;align-items:center;justify-content:center;font-size:9pt;min-height:20px;height:20px;min-width:20px;width:20px;border-radius:50%;cursor:pointer;padding:0;transition:all .2s ease-in-out;background-color:#ffffffe6;color:#0006;border:1px solid rgba(0,0,0,.1)}.data_hide_button:hover{background-color:#0000004d;color:#fffc;border:1px solid rgba(0,0,0,.1)}\n"] }]
|
|
329
|
-
}], propDecorators: { width: [{
|
|
330
|
-
type: Input
|
|
331
|
-
}], showSidePanel: [{
|
|
332
|
-
type: Input
|
|
333
|
-
}], mainContentId: [{
|
|
334
|
-
type: Input
|
|
335
|
-
}], side: [{
|
|
336
|
-
type: Input
|
|
337
|
-
}], topOffset: [{
|
|
338
|
-
type: Input
|
|
339
|
-
}], bottomOffset: [{
|
|
340
|
-
type: Input
|
|
341
|
-
}], closeOnResize: [{
|
|
342
|
-
type: Input
|
|
343
|
-
}], backgroundColorClass: [{
|
|
344
|
-
type: Input
|
|
345
|
-
}], breakpoint: [{
|
|
346
|
-
type: Input
|
|
347
|
-
}], hideCloseButton: [{
|
|
348
|
-
type: Input
|
|
349
|
-
}], showTabOnClose: [{
|
|
350
|
-
type: Input
|
|
351
|
-
}], tabColorClass: [{
|
|
352
|
-
type: Input
|
|
353
|
-
}], text: [{
|
|
354
|
-
type: Input
|
|
355
|
-
}], opened: [{
|
|
356
|
-
type: Output
|
|
357
|
-
}], closed: [{
|
|
358
|
-
type: Output
|
|
359
|
-
}], onResize: [{
|
|
360
|
-
type: HostListener,
|
|
361
|
-
args: ['window:resize', ['$event']]
|
|
362
|
-
}] } });
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3B1c2gtY29udGFpbmVyL3B1c2gtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9wdXNoLWNvbnRhaW5lci9wdXNoLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7QUFHckM7O0dBRUc7QUFNSCxNQUFNLE9BQU8sc0JBQXNCO0lBRXpCLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFFckI7O09BRUc7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBRUgsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUV0Qjs7T0FFRztJQUVILGFBQWEsR0FBVyxJQUFXLENBQUM7SUFFcEM7O09BRUc7SUFFSCxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBRWQ7O09BRUc7SUFDSCxJQUNJLFNBQVMsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FB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TixJQUFJO3NCQURILEtBQUs7Z0JBVU4sTUFBTTtzQkFETCxNQUFNO2dCQU9QLE1BQU07c0JBREwsTUFBTTtnQkE2RVAsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1B1c2hDb250YWluZXJTdGF0ZX0gZnJvbSAnLi9wdXNoLWNvbnRhaW5lci1zdGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtQdXNoQ29udGFpbmVyVGV4dH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9wYXJ0aWNsZS1jb21wb25lbnQtdGV4dC5tb2RlbCc7XHJcblxyXG4vKipcclxuICogUHVzaCBDb250YWluZXIgdGhhdCdsbCBlaXRoZXIgcHVzaCB0aGUgY29udGVudCBvciBvdmVybGF5IHRoZSBjb250ZW50IGJhc2VkIG9uIHNjcmVlbiB3aWR0aC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncGFydGljbGUtcHVzaC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wdXNoLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHVzaC1jb250YWluZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQdXNoQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIF93aWR0aCA9IDIzMDtcclxuXHJcbiAgLyoqXHJcbiAgICogV2lkdGggb2YgdGhlIGNvbnRhaW5lciBpbiBwaXhlbHMuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgd2lkdGgod2lkdGg6IG51bWJlcikge1xyXG4gICAgdGhpcy5fd2lkdGggPSB3aWR0aDtcclxuICAgIHRoaXMuc2V0TWFyZ2luKHdpZHRoICsgJ3B4Jyk7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lclN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgd2lkdGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl93aWR0aDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgdGhlIHNpZGUgcGFuZWwgb24gbG9hZD9cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNob3dTaWRlUGFuZWwgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFpbiBDb250ZW50IElEIHRoYXQgd2lsbCBiZSBwdXNoZWQgYnkgdGhpc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgbWFpbkNvbnRlbnRJZDogc3RyaW5nID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNpZGUgdG8gcHVzaCBmcm9tIChsZWZ0L3JpZ2h0KVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2lkZSA9ICdsZWZ0JztcclxuXHJcbiAgLyoqXHJcbiAgICogVG9wIG9mZnNldCB0byBhY2NvdW50IGZvciBhIG5hdiBiYXJcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCB0b3BPZmZzZXQodG9wT2Zmc2V0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RvcE9mZnNldCA9IHRvcE9mZnNldDtcclxuICAgIHRoaXMuX29yaWdpbmFsVG9wT2Zmc2V0ID0gdG9wT2Zmc2V0O1xyXG4gICAgdGhpcy5zZXREZWZhdWx0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lclN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgdG9wT2Zmc2V0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdG9wT2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdG9wT2Zmc2V0ID0gJzBweCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGJvdHRvbU9mZnNldChib3R0b21PZmZzZXQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYm90dG9tT2Zmc2V0ID0gYm90dG9tT2Zmc2V0O1xyXG4gICAgdGhpcy5zZXREZWZhdWx0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lclN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYm90dG9tT2Zmc2V0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYm90dG9tT2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYm90dG9tT2Zmc2V0ID0gJzBweCc7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZSBzY3JlZW4gcmVzaXplcywgaXQgd2lsbCBlaXRoZXIgb3ZlcmxheSBvciBjbG9zZSBkZXBlbmRpbmcgb24gdGhpcyB2YXJpYWJsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgY2xvc2VPblJlc2l6ZSA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgY29udGFpbmVyXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBiYWNrZ3JvdW5kQ29sb3JDbGFzcyA9ICdjb250ZW50X2NvbG9yJztcclxuXHJcbiAgLyoqXHJcbiAgICogQnJlYWtwb2ludCB0aGF0IHdpbGwgbWFrZSB0aGUgY29udGFpbmVyIHRha2Ugb3ZlciB0aGUgc2NyZWVuIHdoZW4gaXQncyBjcm9zc2VkLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYnJlYWtwb2ludCA9IDc2OTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byBhbHdheXMgaGlkZSB0aGUgY2xvc2UgYnV0dG9uLCBkZWZhdWx0cyB0byBmYWxzZS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIGhpZGVDbG9zZUJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dUYWJPbkNsb3NlID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFiQ29sb3JDbGFzcyA9ICdjb250ZW50X2NvbG9yX2RhcmtfMic7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGV4dDogUHVzaENvbnRhaW5lclRleHQgPSB7XHJcbiAgICBjbG9zZTogJ0Nsb3NlJyxcclxuICAgIGV4cGFuZDogJ0V4cGFuZCdcclxuICB9IGFzIFB1c2hDb250YWluZXJUZXh0O1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVyIGZvciBvcGVuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgb3BlbmVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlciBmb3IgY2xvc2VcclxuICAgKi9cclxuICBAT3V0cHV0KClcclxuICBjbG9zZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBWaXNpYmlsaXR5IHZhcmlhYmxlIGZvciBhY2Nlc3NpYmlsaXR5XHJcbiAgICovXHJcbiAgdmlzaWJpbGl0eSA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIHVuY2xpY2thYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFByaXZhdGUgdmFyaWFibGUgdG8gZGV0ZWN0IGlmIHRoZSBicmVha3BvaW50IGlzIGV4Y2VlZGVkXHJcbiAgICovXHJcbiAgYnJlYWtwb2ludEV4Y2VlZGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnRhaW5lclN0YXRlOiBCZWhhdmlvclN1YmplY3Q8UHVzaENvbnRhaW5lclN0YXRlPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHVzaENvbnRhaW5lclN0YXRlPih7fSBhcyBQdXNoQ29udGFpbmVyU3RhdGUpO1xyXG5cclxuICB6SW5kZXg6IHN0cmluZyA9IG51bGwgYXMgYW55O1xyXG4gIHByaXZhdGUgX2hlaWdodDogc3RyaW5nID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gIHByaXZhdGUgX2xhc3RXaWR0aCA9IDA7XHJcbiAgcHJpdmF0ZSBfb3JpZ2luYWxUb3BPZmZzZXQ6IHN0cmluZyA9IG51bGwgYXMgYW55O1xyXG4gIHByaXZhdGUgX29yaWdpbmFsSGlkZUNsb3NlQnV0dG9uOiBib29sZWFuID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpc2liaWxpdHkgPSB0aGlzLnNob3dTaWRlUGFuZWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93IG9yIGNsb3NlIHRoZSBwdXNoIGNvbnRhaW5lciBvbiBsb2FkIGRlcGVuZGluZyBvbiB0aGUgc3RhdGUgcGFzc2VkIGluLlxyXG4gICAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2xhc3RXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgdGhpcy5fb3JpZ2luYWxUb3BPZmZzZXQgPSB0aGlzLnRvcE9mZnNldCArICcnO1xyXG4gICAgdGhpcy5fb3JpZ2luYWxIaWRlQ2xvc2VCdXR0b24gPSBCb29sZWFuKHRoaXMuaGlkZUNsb3NlQnV0dG9uKTtcclxuICAgIHRoaXMuc2V0RGVmYXVsdEhlaWdodCgpO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm1haW5Db250ZW50SWQpO1xyXG5cclxuICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgIGVsZW1lbnQuc3R5bGUudHJhbnNpdGlvbiA9ICdhbGwgMC4ycyBlYXNlLWluLW91dCc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoID4gNzY4ICYmIHRoaXMuc2hvd1NpZGVQYW5lbCkge1xyXG4gICAgICB0aGlzLnNldE1hcmdpbih0aGlzLndpZHRoICsgJ3B4Jyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnQgJiYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IHRoaXMuYnJlYWtwb2ludCkpIHtcclxuICAgICAgICB0aGlzLmJyZWFrcG9pbnRFeGNlZWRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudXBkYXRlQ29udGFpbmVyU3RhdGUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2UgdGhlIHB1c2ggY29udGFpbmVyIG9uIGRlc3Ryb3lcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RhYk9uQ2xvc2UgPSBmYWxzZTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1vbml0b3IgdGhlIHNjcmVlbiBzaXplIGFuZCBwZXJmb3JtIGFjdGlvbnMgYXMgc3BlY2lmaWVkIGJ5IHRoZSBpbnB1dCBvcHRpb25zXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQudGFyZ2V0LmlubmVyV2lkdGggPD0gNzY4ICYmIHRoaXMuX2xhc3RXaWR0aCA+IDc2OCAmJiB0aGlzLnNob3dTaWRlUGFuZWwpIHtcclxuICAgICAgaWYgKHRoaXMuY2xvc2VPblJlc2l6ZSkge1xyXG4gICAgICAgIHRoaXMuc2hvd1NpZGVQYW5lbCA9IGZhbHNlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy52aXNpYmlsaXR5ID0gZmFsc2UsIDIwMCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnNldE1hcmdpbignMHB4Jyk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LnRhcmdldC5pbm5lcldpZHRoID4gNzY4ICYmIHRoaXMuc2hvd1NpZGVQYW5lbCkge1xyXG4gICAgICB0aGlzLnNldE1hcmdpbih0aGlzLndpZHRoICsgJ3B4Jyk7XHJcbiAgICAgIHRoaXMudG9wT2Zmc2V0ID0gdGhpcy5fb3JpZ2luYWxUb3BPZmZzZXQgKyAnJztcclxuICAgICAgdGhpcy5oaWRlQ2xvc2VCdXR0b24gPSBCb29sZWFuKHRoaXMuX29yaWdpbmFsSGlkZUNsb3NlQnV0dG9uKTtcclxuICAgICAgdGhpcy56SW5kZXggPSBudWxsIGFzIGFueTtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0SGVpZ2h0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5pbm5lcldpZHRoID4gNzY4ICYmIHRoaXMuX2xhc3RXaWR0aCA8PSA3NjggJiYgdGhpcy5jbG9zZU9uUmVzaXplKSB7XHJcbiAgICAgIHRoaXMuc2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgIHRoaXMudmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcclxuXHJcbiAgICAgIHRoaXMuc2V0TWFyZ2luKHRoaXMud2lkdGggKyAncHgnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5icmVha3BvaW50KSB7XHJcbiAgICAgIHRoaXMuYnJlYWtwb2ludEV4Y2VlZGVkID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGggPCB0aGlzLmJyZWFrcG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVDb250YWluZXJTdGF0ZSgpO1xyXG4gICAgdGhpcy5fbGFzdFdpZHRoID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIG9yIGNsb3NlIGJhc2VkIG9uIGN1cnJlbnQgc3RhdGUuXHJcbiAgICovXHJcbiAgdG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnVuY2xpY2thYmxlKSB7XHJcbiAgICAgIHRoaXMudW5jbGlja2FibGUgPSB0cnVlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudW5jbGlja2FibGUgPSBmYWxzZSwgNTAwKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNob3dTaWRlUGFuZWwpIHtcclxuICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5vcGVuKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW4gdGhlIHB1c2ggY29udGFpbmVyXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaW5pdFxyXG4gICAqL1xyXG4gIG9wZW4oaW5pdD86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChpbml0ICYmIHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2OCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICB0aGlzLm9wZW5lZC5lbWl0KHt9KTtcclxuXHJcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPiA3NjgpIHtcclxuICAgICAgdGhpcy5zZXRNYXJnaW4odGhpcy53aWR0aCArICdweCcpO1xyXG4gICAgICB0aGlzLl90b3BPZmZzZXQgPSB0aGlzLl9vcmlnaW5hbFRvcE9mZnNldDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3RvcE9mZnNldCA9ICcwJztcclxuICAgICAgdGhpcy56SW5kZXggPSAndmFyKC0tei1vdmVybGF5KSc7XHJcbiAgICAgIHRoaXMuaGlkZUNsb3NlQnV0dG9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2hlaWdodCA9ICcxMDAlJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZUNvbnRhaW5lclN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZSB0aGUgcHVzaCBjb250YWluZXJcclxuICAgKi9cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1NpZGVQYW5lbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jbG9zZWQuZW1pdCh7fSk7XHJcbiAgICB0aGlzLnNldE1hcmdpbignMHB4Jyk7XHJcbiAgICB0aGlzLnNldERlZmF1bHRIZWlnaHQoKTtcclxuICAgIHRoaXMudXBkYXRlQ29udGFpbmVyU3RhdGUoKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudG9wT2Zmc2V0ID0gdGhpcy5fb3JpZ2luYWxUb3BPZmZzZXQgKyAnJztcclxuICAgICAgdGhpcy5oaWRlQ2xvc2VCdXR0b24gPSBCb29sZWFuKHRoaXMuX29yaWdpbmFsSGlkZUNsb3NlQnV0dG9uKTtcclxuICAgICAgdGhpcy56SW5kZXggPSBudWxsIGFzIGFueTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIG1hcmdpblxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNpemVcclxuICAgKi9cclxuICBwcml2YXRlIHNldE1hcmdpbihzaXplOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm1haW5Db250ZW50SWQpO1xyXG4gICAgaWYgKCFlbGVtZW50KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zaG93VGFiT25DbG9zZSAmJiBzaXplID09PSAnMHB4JyAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+IDc2OCkge1xyXG4gICAgICBzaXplID0gJzE1cHgnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNpZGUudG9Mb3dlckNhc2UoKSA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgIGVsZW1lbnQuc3R5bGUubWFyZ2luTGVmdCA9IHNpemU7XHJcblxyXG4gICAgICBpZiAoc2l6ZSA9PT0gJzBweCcpIHtcclxuICAgICAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdtYXJnaW4tbGVmdCcpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2lkZS50b0xvd2VyQ2FzZSgpID09PSAncmlnaHQnKSB7XHJcbiAgICAgIGVsZW1lbnQuc3R5bGUubWFyZ2luUmlnaHQgPSBzaXplO1xyXG5cclxuICAgICAgaWYgKHNpemUgPT09ICcwcHgnKSB7XHJcbiAgICAgICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbWFyZ2luLXJpZ2h0Jyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lclxyXG4gICAqL1xyXG4gIGdldFdpZHRoKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5icmVha3BvaW50RXhjZWVkZWQgJiYgdGhpcy5zaG93U2lkZVBhbmVsKSB7XHJcbiAgICAgIHJldHVybiAnMTAwJSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy53aWR0aCArICdweCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHNpZGUgcGFuZWwgY2xhc3MgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3RhdGUuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRTaWRlUGFuZWxDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuc2hvd1NpZGVQYW5lbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5iYWNrZ3JvdW5kQ29sb3JDbGFzcyArICcgbGF5b3V0X3NpZGViYXJfYWN0aXZlXycgKyB0aGlzLnNpZGUudG9Mb3dlckNhc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmJhY2tncm91bmRDb2xvckNsYXNzICsgJyBsYXlvdXRfc2lkZWJhcl9pbmFjdGl2ZV8nICsgdGhpcy5zaWRlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGxlZnQgc2l6ZSBiYXNlZCBvbiB0aGUgb3B0aW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0TGVmdFByb3BlcnR5KCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5zaWRlICE9PSAnbGVmdCcpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd1NpZGVQYW5lbCkge1xyXG4gICAgICAgIHJldHVybiAnMCc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICctJyArIHRoaXMud2lkdGggKyAncHgnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHJpZ2h0IHNpemUgYmFzZWQgb24gdGhlIG9wdGlvbnNcclxuICAgKi9cclxuICBwcml2YXRlIGdldFJpZ2h0UHJvcGVydHkoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnNpZGUgIT09ICdyaWdodCcpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd1NpZGVQYW5lbCkge1xyXG4gICAgICAgIHJldHVybiAnMCc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICctJyArICh0aGlzLndpZHRoICsgMjApICsgJ3B4JztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVDb250YWluZXJTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udGFpbmVyU3RhdGUubmV4dCh7XHJcbiAgICAgIHJpZ2h0OiB0aGlzLmdldFJpZ2h0UHJvcGVydHkoKSxcclxuICAgICAgbGVmdDogdGhpcy5nZXRMZWZ0UHJvcGVydHkoKSxcclxuICAgICAgc2lkZVBhbmVsQ2xhc3M6IHRoaXMuZ2V0U2lkZVBhbmVsQ2xhc3MoKSxcclxuICAgICAgaGVpZ2h0OiB0aGlzLl9oZWlnaHQsXHJcbiAgICAgIHRvcE9mZnNldDogdGhpcy5fdG9wT2Zmc2V0XHJcbiAgICB9IGFzIFB1c2hDb250YWluZXJTdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERlZmF1bHRIZWlnaHQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBvZmZzZXQ6IG51bWJlciA9ICt0aGlzLnRvcE9mZnNldC5yZXBsYWNlKC9cXEQvZywgXCJcIikgK1xyXG4gICAgICArdGhpcy5ib3R0b21PZmZzZXQucmVwbGFjZSgvXFxEL2csIFwiXCIpO1xyXG5cclxuICAgIHRoaXMuX2hlaWdodCA9IGBjYWxjKDEwMCUgLSAke29mZnNldH1weClgO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRhaW5lclN0YXRlIHwgYXN5bmMgYXMgc3RhdGVcIj5cclxuICA8ZGl2IGNsYXNzPVwibGF5b3V0X3NpZGViYXJcIlxyXG4gICAgW25nQ2xhc3NdPVwic3RhdGUuc2lkZVBhbmVsQ2xhc3NcIlxyXG4gICAgW3N0eWxlLnRvcF09XCJzdGF0ZS50b3BPZmZzZXRcIlxyXG4gICAgW3N0eWxlLmhlaWdodF09XCJzdGF0ZS5oZWlnaHRcIlxyXG4gICAgW3N0eWxlLndpZHRoXT1cIihicmVha3BvaW50RXhjZWVkZWQgJiYgc2hvd1NpZGVQYW5lbCkgPyAnMTAwJScgOiB3aWR0aCArICdweCdcIlxyXG4gICAgW3N0eWxlLmxlZnRdPVwic3RhdGUubGVmdFwiXHJcbiAgICBbc3R5bGUucmlnaHRdPVwic3RhdGUucmlnaHRcIlxyXG4gICAgW3N0eWxlLnZpc2liaWxpdHldPVwidmlzaWJpbGl0eSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCJcclxuICAgIFtzdHlsZS56LWluZGV4XT1cInpJbmRleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInB1c2hfY2xvc2VfYmFyXCIgKm5nSWY9XCIoIWhpZGVDbG9zZUJ1dHRvbiB8fCBicmVha3BvaW50RXhjZWVkZWQpICYmICFoaWRlQ2xvc2VCdXR0b25cIj5cclxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwiZGF0YV9oaWRlX2J1dHRvbiBhY2Nlc3NcIiB0YWJpbmRleD1cIjBcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRleHQuY2xvc2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lc1wiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93U2lkZVBhbmVsXCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxidXR0b25cclxuICAgICpuZ0lmPVwiIXZpc2liaWxpdHkgJiYgc2hvd1RhYk9uQ2xvc2VcIlxyXG4gICAgY2xhc3M9XCJidG4gbWQgc2lkZV9wYW5lbF90YWIgY2VudGVyX2NlbnRlciBoaWRlX2VsZW1lbnQgYWNjZXNzXCJcclxuICAgIFtuZ0NsYXNzXT1cInRhYkNvbG9yQ2xhc3NcIlxyXG4gICAgW3N0eWxlLnRvcF09XCJzdGF0ZS50b3BPZmZzZXRcIlxyXG4gICAgW3N0eWxlLmhlaWdodF09XCInY2FsYygxMDAlIC0gJyArIHN0YXRlLnRvcE9mZnNldCArICcpJ1wiXHJcbiAgICAoY2xpY2spPVwib3BlbigpXCJcclxuICAgIFtzdHlsZS5sZWZ0XT1cInNpZGUgPT09ICdsZWZ0JyA/IDAgOiB1bmRlZmluZWRcIlxyXG4gICAgW3N0eWxlLnJpZ2h0XT1cInNpZGUgIT09ICdsZWZ0JyA/IDAgOiB1bmRlZmluZWRcIlxyXG4gICAgW3BhcnRpY2xlVG9vbHRpcF09XCJ0ZXh0LmV4cGFuZFwiXHJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRleHQuZXhwYW5kXCJcclxuICAgIHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dCBtZFwiPlxyXG4gICAgICA8aSBbbmdDbGFzc109XCJzaWRlID09PSAnbGVmdCcgPyAnZmFzIGZhLWFuZ2xlLXJpZ2h0JyA6ICdmYXMgZmEtYW5nbGUtbGVmdCdcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuICA8L2J1dHRvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { RichTextComponent } from './rich-text.component';
|
|
4
|
-
import { ParticleTooltipModule } from '../tooltip/tooltip.module';
|
|
5
|
-
import { NgxTiptapModule } from 'ngx-tiptap';
|
|
6
|
-
import { FormsModule } from '@angular/forms';
|
|
7
|
-
import { BrowserModule } from '@angular/platform-browser';
|
|
8
|
-
import { RenderRichTextComponent } from './render-rich-text.component';
|
|
9
|
-
import { DOMPURIFY_CONFIG, NgDompurifyModule } from '@tinkoff/ng-dompurify';
|
|
10
|
-
import { ParticleDialogModule } from '../dialog/dialog.module';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
export class ParticleRichTextModule {
|
|
13
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleRichTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: ParticleRichTextModule, declarations: [RichTextComponent,
|
|
15
|
-
RenderRichTextComponent], imports: [CommonModule,
|
|
16
|
-
ParticleTooltipModule,
|
|
17
|
-
NgxTiptapModule,
|
|
18
|
-
FormsModule,
|
|
19
|
-
BrowserModule,
|
|
20
|
-
NgDompurifyModule,
|
|
21
|
-
ParticleDialogModule], exports: [RichTextComponent,
|
|
22
|
-
RenderRichTextComponent] });
|
|
23
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleRichTextModule, providers: [
|
|
24
|
-
{
|
|
25
|
-
provide: DOMPURIFY_CONFIG,
|
|
26
|
-
useValue: { ADD_ATTR: ['target'] },
|
|
27
|
-
},
|
|
28
|
-
], imports: [CommonModule,
|
|
29
|
-
ParticleTooltipModule,
|
|
30
|
-
NgxTiptapModule,
|
|
31
|
-
FormsModule,
|
|
32
|
-
BrowserModule,
|
|
33
|
-
NgDompurifyModule,
|
|
34
|
-
ParticleDialogModule] });
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ParticleRichTextModule, decorators: [{
|
|
37
|
-
type: NgModule,
|
|
38
|
-
args: [{
|
|
39
|
-
declarations: [
|
|
40
|
-
RichTextComponent,
|
|
41
|
-
RenderRichTextComponent
|
|
42
|
-
],
|
|
43
|
-
imports: [
|
|
44
|
-
CommonModule,
|
|
45
|
-
ParticleTooltipModule,
|
|
46
|
-
NgxTiptapModule,
|
|
47
|
-
FormsModule,
|
|
48
|
-
BrowserModule,
|
|
49
|
-
NgDompurifyModule,
|
|
50
|
-
ParticleDialogModule
|
|
51
|
-
],
|
|
52
|
-
providers: [
|
|
53
|
-
{
|
|
54
|
-
provide: DOMPURIFY_CONFIG,
|
|
55
|
-
useValue: { ADD_ATTR: ['target'] },
|
|
56
|
-
},
|
|
57
|
-
],
|
|
58
|
-
exports: [
|
|
59
|
-
RichTextComponent,
|
|
60
|
-
RenderRichTextComponent
|
|
61
|
-
]
|
|
62
|
-
}]
|
|
63
|
-
}] });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGUtcmljaC10ZXh0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yaWNoLXRleHQvcGFydGljbGUtcmljaC10ZXh0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0seUJBQXlCLENBQUM7O0FBMkI3RCxNQUFNLE9BQU8sc0JBQXNCO3VHQUF0QixzQkFBc0I7d0dBQXRCLHNCQUFzQixpQkF2Qi9CLGlCQUFpQjtZQUNqQix1QkFBdUIsYUFHdkIsWUFBWTtZQUNaLHFCQUFxQjtZQUNyQixlQUFlO1lBQ2YsV0FBVztZQUNYLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsb0JBQW9CLGFBU3BCLGlCQUFpQjtZQUNqQix1QkFBdUI7d0dBR2Qsc0JBQXNCLGFBWHRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsUUFBUSxFQUFFLEVBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUM7YUFDakM7U0FDRixZQWJDLFlBQVk7WUFDWixxQkFBcUI7WUFDckIsZUFBZTtZQUNmLFdBQVc7WUFDWCxhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLG9CQUFvQjs7MkZBYVgsc0JBQXNCO2tCQXpCbEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixvQkFBb0I7cUJBQ3JCO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBQzt5QkFDakM7cUJBQ0Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsdUJBQXVCO3FCQUN4QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtSaWNoVGV4dENvbXBvbmVudH0gZnJvbSAnLi9yaWNoLXRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHtQYXJ0aWNsZVRvb2x0aXBNb2R1bGV9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xyXG5pbXBvcnQge05neFRpcHRhcE1vZHVsZX0gZnJvbSAnbmd4LXRpcHRhcCc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtCcm93c2VyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtSZW5kZXJSaWNoVGV4dENvbXBvbmVudH0gZnJvbSAnLi9yZW5kZXItcmljaC10ZXh0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RE9NUFVSSUZZX0NPTkZJRywgTmdEb21wdXJpZnlNb2R1bGV9IGZyb20gJ0B0aW5rb2ZmL25nLWRvbXB1cmlmeSc7XHJcbmltcG9ydCB7UGFydGljbGVEaWFsb2dNb2R1bGV9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBSaWNoVGV4dENvbXBvbmVudCxcclxuICAgIFJlbmRlclJpY2hUZXh0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBQYXJ0aWNsZVRvb2x0aXBNb2R1bGUsXHJcbiAgICBOZ3hUaXB0YXBNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEJyb3dzZXJNb2R1bGUsXHJcbiAgICBOZ0RvbXB1cmlmeU1vZHVsZSxcclxuICAgIFBhcnRpY2xlRGlhbG9nTW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRE9NUFVSSUZZX0NPTkZJRyxcclxuICAgICAgdXNlVmFsdWU6IHtBRERfQVRUUjogWyd0YXJnZXQnXX0sXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgUmljaFRleHRDb21wb25lbnQsXHJcbiAgICBSZW5kZXJSaWNoVGV4dENvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhcnRpY2xlUmljaFRleHRNb2R1bGUge1xyXG59XHJcbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@tinkoff/ng-dompurify";
|
|
4
|
-
export class RenderRichTextComponent {
|
|
5
|
-
html = '';
|
|
6
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RenderRichTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: RenderRichTextComponent, selector: "particle-render-rich-text", inputs: { html: "html" }, ngImport: i0, template: `<div class="ent_r2l_txt" [innerHTML]="html | dompurify"></div>`, isInline: true, dependencies: [{ kind: "pipe", type: i1.NgDompurifyPipe, name: "dompurify" }] });
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RenderRichTextComponent, decorators: [{
|
|
10
|
-
type: Component,
|
|
11
|
-
args: [{
|
|
12
|
-
selector: 'particle-render-rich-text',
|
|
13
|
-
template: `<div class="ent_r2l_txt" [innerHTML]="html | dompurify"></div>`
|
|
14
|
-
}]
|
|
15
|
-
}], propDecorators: { html: [{
|
|
16
|
-
type: Input
|
|
17
|
-
}] } });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXJpY2gtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvcmljaC10ZXh0L3JlbmRlci1yaWNoLXRleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFNL0MsTUFBTSxPQUFPLHVCQUF1QjtJQUdsQyxJQUFJLEdBQUcsRUFBRSxDQUFDO3VHQUhDLHVCQUF1QjsyRkFBdkIsdUJBQXVCLDJGQUZ4QixnRUFBZ0U7OzJGQUUvRCx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFLGdFQUFnRTtpQkFDM0U7OEJBSUMsSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncGFydGljbGUtcmVuZGVyLXJpY2gtdGV4dCcsXHJcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiZW50X3IybF90eHRcIiBbaW5uZXJIVE1MXT1cImh0bWwgfCBkb21wdXJpZnlcIj48L2Rpdj5gXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZW5kZXJSaWNoVGV4dENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaHRtbCA9ICcnO1xyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LWNhcGFiaWxpdGllcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9yaWNoLXRleHQvcmljaC10ZXh0LWNhcGFiaWxpdGllcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSaWNoVGV4dENhcGFiaWxpdGllcyB7XHJcbiAgaGVhZGluZzogYm9vbGVhbjtcclxuICB0ZXh0RGVjb3JhdGlvbjogYm9vbGVhbjtcclxuICBsaXN0OiBib29sZWFuO1xyXG4gIGFsaWdubWVudDogYm9vbGVhbjtcclxuICBsaW5rOiBib29sZWFuO1xyXG4gIGltYWdlczogYm9vbGVhblxyXG59XHJcbiJdfQ==
|