ca-components 1.0.72 → 1.0.73
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/README.md +1 -1
- package/esm2022/lib/components/ca-custom-scrollbar/ca-custom-scrollbar.component.mjs +205 -0
- package/esm2022/lib/components/ca-modal/ca-modal.component.mjs +9 -3
- package/esm2022/lib/components/ca-modal-button/ca-modal-button.component.mjs +5 -5
- package/esm2022/lib/components/ca-modal-button/enums/modal-button-size.enum.mjs +1 -1
- package/esm2022/lib/components/ca-modal-button/enums/modal-button-type.enum.mjs +1 -4
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ca-components.mjs +210 -10
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-custom-scrollbar/ca-custom-scrollbar.component.d.ts +44 -0
- package/lib/components/ca-filters/ca-filter.component.d.ts +2 -2
- package/lib/components/ca-modal-button/ca-modal-button.component.d.ts +2 -2
- package/lib/components/ca-modal-button/enums/modal-button-type.enum.d.ts +0 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/README.md
CHANGED
|
@@ -21,4 +21,4 @@ Run `ng test ca-components` to execute the unit tests via [Karma](https://karma-
|
|
|
21
21
|
|
|
22
22
|
## Further help
|
|
23
23
|
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import { FormsModule } from '@angular/forms';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { ObserversModule } from '@angular/cdk/observers';
|
|
5
|
+
import { Subject } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
import * as i2 from "@angular/cdk/observers";
|
|
9
|
+
export class CaCustomScrollbarComponent {
|
|
10
|
+
constructor(ngZone, elRef, chng) {
|
|
11
|
+
this.ngZone = ngZone;
|
|
12
|
+
this.elRef = elRef;
|
|
13
|
+
this.chng = chng;
|
|
14
|
+
this.scrollEvent = new EventEmitter();
|
|
15
|
+
this.scrollTop = 5;
|
|
16
|
+
this.showScrollbar = false;
|
|
17
|
+
this.scrollHeight = 0;
|
|
18
|
+
this.scrollRatio = 0;
|
|
19
|
+
this.scrollRatioFull = 0;
|
|
20
|
+
this.isMouseDown = false;
|
|
21
|
+
this.barClickPosition = 0;
|
|
22
|
+
this.barClickRestHeight = 0;
|
|
23
|
+
this.destroy$ = new Subject();
|
|
24
|
+
this.tableBarClickPosition = 0;
|
|
25
|
+
this.tableBarClickRestWidth = 0;
|
|
26
|
+
this.tableScrollRatio = 0;
|
|
27
|
+
this.tableScrollRatioFull = 0;
|
|
28
|
+
this.tableScrollWidth = 0;
|
|
29
|
+
this.setScrollEvent = (e) => {
|
|
30
|
+
if (!this.isMouseDown) {
|
|
31
|
+
this.calculateBarSizeAndPosition(this.elRef.nativeElement.children[0]);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
this.onMouseUpHandler = () => {
|
|
35
|
+
this.isMouseDown = false;
|
|
36
|
+
};
|
|
37
|
+
this.onResizeHandler = () => {
|
|
38
|
+
if (!this.isMouseDown) {
|
|
39
|
+
clearTimeout(this.resizeHandlerCount);
|
|
40
|
+
this.resizeHandlerCount = setTimeout(() => {
|
|
41
|
+
this.calculateBarSizeAndPosition(this.elRef.nativeElement.children[0]);
|
|
42
|
+
}, 150);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
this.onMouseMoveHandler = (e) => {
|
|
46
|
+
if (this.isMouseDown) {
|
|
47
|
+
// Regular Scroll
|
|
48
|
+
if (this.scrollBarOptions.showVerticalScrollBar) {
|
|
49
|
+
const offsetBar = e.clientY - this.barClickPosition;
|
|
50
|
+
if (offsetBar > -1 &&
|
|
51
|
+
e.clientY + this.barClickRestHeight < window.innerHeight) {
|
|
52
|
+
this.bar.nativeElement.style.transform = `translateY(${offsetBar}px)`;
|
|
53
|
+
}
|
|
54
|
+
this.elRef.nativeElement.children[0].scrollTop =
|
|
55
|
+
(e.clientY - this.barClickPosition) * this.scrollRatioFull;
|
|
56
|
+
}
|
|
57
|
+
// Table Scroll
|
|
58
|
+
else {
|
|
59
|
+
let offsetBar = e.clientX - this.tableBarClickPosition;
|
|
60
|
+
const maxWidth = this.tableNotPinedBoundingRect.width;
|
|
61
|
+
offsetBar = offsetBar < 0 ? 0 : offsetBar;
|
|
62
|
+
offsetBar =
|
|
63
|
+
e.clientX + this.tableBarClickRestWidth > maxWidth
|
|
64
|
+
? maxWidth - this.tableScrollWidth
|
|
65
|
+
: offsetBar;
|
|
66
|
+
this.bar.nativeElement.style.transform = `translateX(${offsetBar}px)`;
|
|
67
|
+
this.scrollEvent.emit({
|
|
68
|
+
eventAction: 'scrolling',
|
|
69
|
+
scrollPosition: offsetBar * this.tableScrollRatioFull,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
ngOnInit() {
|
|
76
|
+
this.ngZone.runOutsideAngular(() => {
|
|
77
|
+
document.addEventListener('mouseup', this.onMouseUpHandler);
|
|
78
|
+
document.addEventListener('mousemove', this.onMouseMoveHandler);
|
|
79
|
+
this.elRef.nativeElement.children[0].addEventListener('scroll', this.setScrollEvent);
|
|
80
|
+
window.addEventListener('resize', this.onResizeHandler);
|
|
81
|
+
this.calculateBarSizeAndPosition(this.elRef.nativeElement.children[0]);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
ngOnChanges(changes) {
|
|
85
|
+
if (!changes?.['horizontalScrollHeight']?.firstChange &&
|
|
86
|
+
changes?.['horizontalScrollHeight']) {
|
|
87
|
+
this.horizontalScrollHeight =
|
|
88
|
+
changes['horizontalScrollHeight'].currentValue;
|
|
89
|
+
}
|
|
90
|
+
if (!changes?.['scrollBarOptions']?.firstChange &&
|
|
91
|
+
changes?.['scrollBarOptions']) {
|
|
92
|
+
this.scrollBarOptions = changes['scrollBarOptions'].currentValue;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
ngAfterViewInit() {
|
|
96
|
+
// Table Scroll
|
|
97
|
+
if (this.scrollBarOptions.showHorizontalScrollBar) {
|
|
98
|
+
setTimeout(() => {
|
|
99
|
+
this.tableNotPinedContainer =
|
|
100
|
+
document.querySelector('.not-pined-columns');
|
|
101
|
+
this.tableNotPinedBoundingRect =
|
|
102
|
+
this.tableNotPinedContainer?.getBoundingClientRect()
|
|
103
|
+
? this.tableNotPinedContainer.getBoundingClientRect()
|
|
104
|
+
: null;
|
|
105
|
+
}, 100);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
setDraggingStart(e) {
|
|
109
|
+
const style = window.getComputedStyle(this.bar.nativeElement);
|
|
110
|
+
const matrix = new DOMMatrixReadOnly(style.transform);
|
|
111
|
+
this.barClickPosition = e.clientY - matrix.m42;
|
|
112
|
+
this.barClickRestHeight = this.scrollHeight - this.barClickPosition;
|
|
113
|
+
this.isMouseDown = true;
|
|
114
|
+
// Table Scroll
|
|
115
|
+
this.tableBarClickPosition = e.clientX - matrix.m41;
|
|
116
|
+
this.tableBarClickRestWidth =
|
|
117
|
+
this.tableScrollWidth - this.tableBarClickPosition;
|
|
118
|
+
}
|
|
119
|
+
calculateBarSizeAndPosition(elem, pageHeight) {
|
|
120
|
+
setTimeout(() => {
|
|
121
|
+
// Table Scroll
|
|
122
|
+
if (this.scrollBarOptions.showHorizontalScrollBar) {
|
|
123
|
+
const scrollWrapper = document.querySelector('.not-pined-columns');
|
|
124
|
+
this.tableNotPinedBoundingRect =
|
|
125
|
+
scrollWrapper?.getBoundingClientRect()
|
|
126
|
+
? scrollWrapper.getBoundingClientRect()
|
|
127
|
+
: null;
|
|
128
|
+
const tableFullWidth = scrollWrapper?.scrollWidth
|
|
129
|
+
? scrollWrapper.scrollWidth
|
|
130
|
+
: 0;
|
|
131
|
+
const tableVisibleWidth = scrollWrapper?.getBoundingClientRect()
|
|
132
|
+
.width
|
|
133
|
+
? Math.ceil(scrollWrapper.getBoundingClientRect().width)
|
|
134
|
+
: 0;
|
|
135
|
+
this.tableScrollRatio = tableVisibleWidth / tableFullWidth;
|
|
136
|
+
this.tableScrollRatioFull = tableFullWidth / tableVisibleWidth;
|
|
137
|
+
this.tableScrollWidth =
|
|
138
|
+
this.tableScrollRatio * tableVisibleWidth;
|
|
139
|
+
if (tableFullWidth <= tableVisibleWidth) {
|
|
140
|
+
this.showScrollbar = false;
|
|
141
|
+
this.chng.detectChanges();
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
this.showScrollbar = true;
|
|
145
|
+
this.chng.detectChanges();
|
|
146
|
+
}
|
|
147
|
+
this.scrollEvent.emit({
|
|
148
|
+
eventAction: 'isScrollShowing',
|
|
149
|
+
isScrollBarShowing: this.showScrollbar,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
// Regular Scroll
|
|
153
|
+
else {
|
|
154
|
+
const content_height = this.elRef.nativeElement.children[0].scrollHeight - 1;
|
|
155
|
+
const visible_height = window.innerHeight;
|
|
156
|
+
if (content_height <= visible_height) {
|
|
157
|
+
this.showScrollbar = false;
|
|
158
|
+
this.chng.detectChanges();
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.showScrollbar = true;
|
|
163
|
+
this.chng.detectChanges();
|
|
164
|
+
}
|
|
165
|
+
this.scrollRatio = visible_height / content_height;
|
|
166
|
+
this.scrollRatioFull = content_height / visible_height;
|
|
167
|
+
this.scrollTop = elem.scrollTop * this.scrollRatio;
|
|
168
|
+
if (this.bar) {
|
|
169
|
+
this.bar.nativeElement.style.transform = `translateY(${this.scrollTop}px)`;
|
|
170
|
+
}
|
|
171
|
+
this.scrollHeight = this.scrollRatio * visible_height;
|
|
172
|
+
}
|
|
173
|
+
this.chng.detectChanges();
|
|
174
|
+
}, 100);
|
|
175
|
+
}
|
|
176
|
+
ngOnDestroy() {
|
|
177
|
+
document.removeEventListener('mouseup', this.onMouseUpHandler);
|
|
178
|
+
document.removeEventListener('mousemove', this.onMouseMoveHandler);
|
|
179
|
+
window.removeEventListener('resize', this.onResizeHandler);
|
|
180
|
+
this.destroy$.next();
|
|
181
|
+
this.destroy$.complete();
|
|
182
|
+
}
|
|
183
|
+
projectContentChanged(e) {
|
|
184
|
+
clearTimeout(this.calculateSizeHeightTimer);
|
|
185
|
+
this.calculateSizeHeightTimer = setTimeout(() => {
|
|
186
|
+
this.calculateBarSizeAndPosition(this.elRef.nativeElement.children[0]);
|
|
187
|
+
}, 100);
|
|
188
|
+
}
|
|
189
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaCustomScrollbarComponent, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
190
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaCustomScrollbarComponent, isStandalone: true, selector: "app-ca-custom-scrollbar", inputs: { scrollBarOptions: "scrollBarOptions", horizontalScrollHeight: "horizontalScrollHeight" }, outputs: { scrollEvent: "scrollEvent" }, viewQueries: [{ propertyName: "bar", first: true, predicate: ["bar"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"custom-scrollbar-holder\"\n #contentHolder\n (cdkObserveContent)=\"projectContentChanged($event)\"\n [class.activeToolbar]=\"showScrollbar\"\n [ngStyle]=\"{\n height: scrollBarOptions.showHorizontalScrollBar\n ? horizontalScrollHeight + 'px'\n : 100 + 'vh',\n 'overflow-y': scrollBarOptions.showHorizontalScrollBar\n ? 'visible'\n : 'auto',\n }\"\n>\n <ng-content></ng-content>\n <!-- Vertical Scroll Bar -->\n <div\n class=\"right-bar-scroll\"\n *ngIf=\"showScrollbar && scrollBarOptions.showVerticalScrollBar\"\n >\n <div\n class=\"right-bar\"\n #bar\n [ngStyle]=\"{ height: scrollHeight + 'px' }\"\n (mousedown)=\"setDraggingStart($event)\"\n (mouseup)=\"isMouseDown = false\"\n ></div>\n </div>\n\n <!-- Horizontal Scroll Bar -->\n <div\n class=\"horizontal-scroll-bar\"\n [ngStyle]=\"{\n 'left.px':\n scrollBarOptions?.modalStyle?.horizontalScrollBarLeft === 0 ||\n scrollBarOptions?.modalStyle?.horizontalScrollBarLeft\n ? scrollBarOptions.modalStyle.horizontalScrollBarLeft\n : tableNotPinedBoundingRect?.left - 74,\n 'width.px': scrollBarOptions?.modalStyle?.horizontalScrollBarWidth\n ? scrollBarOptions.modalStyle.horizontalScrollBarWidth\n : tableNotPinedBoundingRect?.width,\n 'margin-top.px': scrollBarOptions?.modalStyle\n ?.horizontalScrollBarMarginTop\n ? scrollBarOptions.modalStyle.horizontalScrollBarMarginTop\n : -15,\n }\"\n [ngClass]=\"{\n 'modal-horizontal-scroll-bar':\n scrollBarOptions?.modalStyle?.modalScrollClassActive,\n }\"\n *ngIf=\"showScrollbar && scrollBarOptions.showHorizontalScrollBar\"\n >\n <div\n class=\"horizontal-bar\"\n #bar\n [ngStyle]=\"{\n 'width.px': scrollBarOptions?.modalStyle?.additionalWidth\n ? tableScrollWidth +\n scrollBarOptions.modalStyle.additionalWidth\n : tableScrollWidth,\n }\"\n [ngClass]=\"{\n 'horizontal-bar-sticky': scrollBarOptions.dataLength >= 23,\n }\"\n (mousedown)=\"setDraggingStart($event)\"\n (mouseup)=\"isMouseDown = false\"\n ></div>\n </div>\n</div>\n", styles: [".custom-scrollbar-holder{position:relative;transition:height .25s ease-in-out;scrollbar-width:none!important;-ms-overflow-style:none!important}.custom-scrollbar-holder::-webkit-scrollbar{display:none!important}.custom-scrollbar-holder ::-webkit-scrollbar-thumb,.custom-scrollbar-holder ::-webkit-scrollbar{width:1px!important;display:none!important}.custom-scrollbar-holder .overflow-unset{overflow-y:unset!important;overflow-x:unset!important}.custom-scrollbar-holder .right-bar-scroll{height:100%;position:fixed;right:0;top:0;-webkit-user-select:none;user-select:none}.custom-scrollbar-holder .right-bar-scroll .right-bar{position:absolute;right:3px;width:6px;min-height:30px;border-radius:1px;background-color:#aaa}.custom-scrollbar-holder .right-bar-scroll .right-bar:hover{background:#0000008c}.custom-scrollbar-holder .modal-horizontal-scroll-bar{height:6px;background:#eee;border-radius:2px}.custom-scrollbar-holder .horizontal-scroll-bar{width:100%;position:absolute;left:0;-webkit-user-select:none;user-select:none}.custom-scrollbar-holder .horizontal-scroll-bar .horizontal-bar{width:6px;position:relative!important;height:6px;min-width:30px;border-radius:1px;background-color:#aaa}.custom-scrollbar-holder .horizontal-scroll-bar .horizontal-bar:hover{background:#0000008c}.custom-scrollbar-holder .horizontal-scroll-bar .horizontal-bar-sticky{position:fixed;bottom:calc(0% + 14px)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ObserversModule }, { kind: "directive", type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }] }); }
|
|
191
|
+
}
|
|
192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaCustomScrollbarComponent, decorators: [{
|
|
193
|
+
type: Component,
|
|
194
|
+
args: [{ selector: 'app-ca-custom-scrollbar', standalone: true, imports: [FormsModule, CommonModule, ObserversModule], template: "<div\n class=\"custom-scrollbar-holder\"\n #contentHolder\n (cdkObserveContent)=\"projectContentChanged($event)\"\n [class.activeToolbar]=\"showScrollbar\"\n [ngStyle]=\"{\n height: scrollBarOptions.showHorizontalScrollBar\n ? horizontalScrollHeight + 'px'\n : 100 + 'vh',\n 'overflow-y': scrollBarOptions.showHorizontalScrollBar\n ? 'visible'\n : 'auto',\n }\"\n>\n <ng-content></ng-content>\n <!-- Vertical Scroll Bar -->\n <div\n class=\"right-bar-scroll\"\n *ngIf=\"showScrollbar && scrollBarOptions.showVerticalScrollBar\"\n >\n <div\n class=\"right-bar\"\n #bar\n [ngStyle]=\"{ height: scrollHeight + 'px' }\"\n (mousedown)=\"setDraggingStart($event)\"\n (mouseup)=\"isMouseDown = false\"\n ></div>\n </div>\n\n <!-- Horizontal Scroll Bar -->\n <div\n class=\"horizontal-scroll-bar\"\n [ngStyle]=\"{\n 'left.px':\n scrollBarOptions?.modalStyle?.horizontalScrollBarLeft === 0 ||\n scrollBarOptions?.modalStyle?.horizontalScrollBarLeft\n ? scrollBarOptions.modalStyle.horizontalScrollBarLeft\n : tableNotPinedBoundingRect?.left - 74,\n 'width.px': scrollBarOptions?.modalStyle?.horizontalScrollBarWidth\n ? scrollBarOptions.modalStyle.horizontalScrollBarWidth\n : tableNotPinedBoundingRect?.width,\n 'margin-top.px': scrollBarOptions?.modalStyle\n ?.horizontalScrollBarMarginTop\n ? scrollBarOptions.modalStyle.horizontalScrollBarMarginTop\n : -15,\n }\"\n [ngClass]=\"{\n 'modal-horizontal-scroll-bar':\n scrollBarOptions?.modalStyle?.modalScrollClassActive,\n }\"\n *ngIf=\"showScrollbar && scrollBarOptions.showHorizontalScrollBar\"\n >\n <div\n class=\"horizontal-bar\"\n #bar\n [ngStyle]=\"{\n 'width.px': scrollBarOptions?.modalStyle?.additionalWidth\n ? tableScrollWidth +\n scrollBarOptions.modalStyle.additionalWidth\n : tableScrollWidth,\n }\"\n [ngClass]=\"{\n 'horizontal-bar-sticky': scrollBarOptions.dataLength >= 23,\n }\"\n (mousedown)=\"setDraggingStart($event)\"\n (mouseup)=\"isMouseDown = false\"\n ></div>\n </div>\n</div>\n", styles: [".custom-scrollbar-holder{position:relative;transition:height .25s ease-in-out;scrollbar-width:none!important;-ms-overflow-style:none!important}.custom-scrollbar-holder::-webkit-scrollbar{display:none!important}.custom-scrollbar-holder ::-webkit-scrollbar-thumb,.custom-scrollbar-holder ::-webkit-scrollbar{width:1px!important;display:none!important}.custom-scrollbar-holder .overflow-unset{overflow-y:unset!important;overflow-x:unset!important}.custom-scrollbar-holder .right-bar-scroll{height:100%;position:fixed;right:0;top:0;-webkit-user-select:none;user-select:none}.custom-scrollbar-holder .right-bar-scroll .right-bar{position:absolute;right:3px;width:6px;min-height:30px;border-radius:1px;background-color:#aaa}.custom-scrollbar-holder .right-bar-scroll .right-bar:hover{background:#0000008c}.custom-scrollbar-holder .modal-horizontal-scroll-bar{height:6px;background:#eee;border-radius:2px}.custom-scrollbar-holder .horizontal-scroll-bar{width:100%;position:absolute;left:0;-webkit-user-select:none;user-select:none}.custom-scrollbar-holder .horizontal-scroll-bar .horizontal-bar{width:6px;position:relative!important;height:6px;min-width:30px;border-radius:1px;background-color:#aaa}.custom-scrollbar-holder .horizontal-scroll-bar .horizontal-bar:hover{background:#0000008c}.custom-scrollbar-holder .horizontal-scroll-bar .horizontal-bar-sticky{position:fixed;bottom:calc(0% + 14px)}\n"] }]
|
|
195
|
+
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { bar: [{
|
|
196
|
+
type: ViewChild,
|
|
197
|
+
args: ['bar', { static: false }]
|
|
198
|
+
}], scrollEvent: [{
|
|
199
|
+
type: Output
|
|
200
|
+
}], scrollBarOptions: [{
|
|
201
|
+
type: Input
|
|
202
|
+
}], horizontalScrollHeight: [{
|
|
203
|
+
type: Input
|
|
204
|
+
}] } });
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtY3VzdG9tLXNjcm9sbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1jdXN0b20tc2Nyb2xsYmFyL2NhLWN1c3RvbS1zY3JvbGxiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtY3VzdG9tLXNjcm9sbGJhci9jYS1jdXN0b20tc2Nyb2xsYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFTL0IsTUFBTSxPQUFPLDBCQUEwQjtJQTZCbkMsWUFDWSxNQUFjLEVBQ2QsS0FBaUIsRUFDakIsSUFBdUI7UUFGdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUE1QnpCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJOUQsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUMvQixpQkFBWSxHQUFXLENBQUMsQ0FBQztRQUN6QixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixvQkFBZSxHQUFXLENBQUMs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RUFBRSxZQUFZLEVBQUUsZUFBZSxDQUFDO29JQU9SLEdBQUc7c0JBQS9DLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDekIsV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT2JzZXJ2ZXJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtY3VzdG9tLXNjcm9sbGJhcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgT2JzZXJ2ZXJzTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtY3VzdG9tLXNjcm9sbGJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2NhLWN1c3RvbS1zY3JvbGxiYXIuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDYUN1c3RvbVNjcm9sbGJhckNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoJ2JhcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIGJhciE6IEVsZW1lbnRSZWY7XG4gICAgQE91dHB1dCgpIHNjcm9sbEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSBzY3JvbGxCYXJPcHRpb25zOiBhbnk7XG4gICAgQElucHV0KCkgaG9yaXpvbnRhbFNjcm9sbEhlaWdodCE6IG51bWJlcjtcblxuICAgIHNjcm9sbFRvcDogbnVtYmVyID0gNTtcbiAgICBzaG93U2Nyb2xsYmFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgc2Nyb2xsSGVpZ2h0OiBudW1iZXIgPSAwO1xuICAgIHNjcm9sbFJhdGlvOiBudW1iZXIgPSAwO1xuICAgIHNjcm9sbFJhdGlvRnVsbDogbnVtYmVyID0gMDtcblxuICAgIGlzTW91c2VEb3duOiBib29sZWFuID0gZmFsc2U7XG4gICAgYmFyQ2xpY2tQb3NpdGlvbjogbnVtYmVyID0gMDtcbiAgICBiYXJDbGlja1Jlc3RIZWlnaHQ6IG51bWJlciA9IDA7XG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgY2FsY3VsYXRlU2l6ZUhlaWdodFRpbWVyOiBhbnk7XG5cbiAgICAvLyBUYWJsZSBIb3Jpem9udGFsIFNjcm9sbFxuICAgIHRhYmxlTm90UGluZWRDb250YWluZXI6IGFueTtcbiAgICB0YWJsZU5vdFBpbmVkQm91bmRpbmdSZWN0OiBhbnk7XG4gICAgdGFibGVCYXJDbGlja1Bvc2l0aW9uOiBudW1iZXIgPSAwO1xuICAgIHRhYmxlQmFyQ2xpY2tSZXN0V2lkdGg6IG51bWJlciA9IDA7XG4gICAgdGFibGVTY3JvbGxSYXRpbzogbnVtYmVyID0gMDtcbiAgICB0YWJsZVNjcm9sbFJhdGlvRnVsbDogbnVtYmVyID0gMDtcbiAgICB0YWJsZVNjcm9sbFdpZHRoOiBudW1iZXIgPSAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2huZzogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMub25Nb3VzZVVwSGFuZGxlcik7XG5cbiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVIYW5kbGVyKTtcblxuICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgJ3Njcm9sbCcsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGxFdmVudFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemVIYW5kbGVyKTtcblxuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVCYXJTaXplQW5kUG9zaXRpb24oXG4gICAgICAgICAgICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFjaGFuZ2VzPy5bJ2hvcml6b250YWxTY3JvbGxIZWlnaHQnXT8uZmlyc3RDaGFuZ2UgJiZcbiAgICAgICAgICAgIGNoYW5nZXM/LlsnaG9yaXpvbnRhbFNjcm9sbEhlaWdodCddXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsU2Nyb2xsSGVpZ2h0ID1cbiAgICAgICAgICAgICAgICBjaGFuZ2VzWydob3Jpem9udGFsU2Nyb2xsSGVpZ2h0J10uY3VycmVudFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNoYW5nZXM/Llsnc2Nyb2xsQmFyT3B0aW9ucyddPy5maXJzdENoYW5nZSAmJlxuICAgICAgICAgICAgY2hhbmdlcz8uWydzY3JvbGxCYXJPcHRpb25zJ11cbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEJhck9wdGlvbnMgPSBjaGFuZ2VzWydzY3JvbGxCYXJPcHRpb25zJ10uY3VycmVudFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBUYWJsZSBTY3JvbGxcbiAgICAgICAgaWYgKHRoaXMuc2Nyb2xsQmFyT3B0aW9ucy5zaG93SG9yaXpvbnRhbFNjcm9sbEJhcikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZU5vdFBpbmVkQ29udGFpbmVyID1cbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5vdC1waW5lZC1jb2x1bW5zJyk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTm90UGluZWRCb3VuZGluZ1JlY3QgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTm90UGluZWRDb250YWluZXI/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMudGFibGVOb3RQaW5lZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTY3JvbGxFdmVudCA9IChlOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW91c2VEb3duKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUJhclNpemVBbmRQb3NpdGlvbihcbiAgICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgc2V0RHJhZ2dpbmdTdGFydChlOiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5iYXIubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG1hdHJpeCA9IG5ldyBET01NYXRyaXhSZWFkT25seShzdHlsZS50cmFuc2Zvcm0pO1xuXG4gICAgICAgIHRoaXMuYmFyQ2xpY2tQb3NpdGlvbiA9IGUuY2xpZW50WSAtIG1hdHJpeC5tNDI7XG4gICAgICAgIHRoaXMuYmFyQ2xpY2tSZXN0SGVpZ2h0ID0gdGhpcy5zY3JvbGxIZWlnaHQgLSB0aGlzLmJhckNsaWNrUG9zaXRpb247XG4gICAgICAgIHRoaXMuaXNNb3VzZURvd24gPSB0cnVlO1xuXG4gICAgICAgIC8vIFRhYmxlIFNjcm9sbFxuICAgICAgICB0aGlzLnRhYmxlQmFyQ2xpY2tQb3NpdGlvbiA9IGUuY2xpZW50WCAtIG1hdHJpeC5tNDE7XG4gICAgICAgIHRoaXMudGFibGVCYXJDbGlja1Jlc3RXaWR0aCA9XG4gICAgICAgICAgICB0aGlzLnRhYmxlU2Nyb2xsV2lkdGggLSB0aGlzLnRhYmxlQmFyQ2xpY2tQb3NpdGlvbjtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVCYXJTaXplQW5kUG9zaXRpb24oZWxlbTogYW55LCBwYWdlSGVpZ2h0PzogbnVtYmVyKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gVGFibGUgU2Nyb2xsXG4gICAgICAgICAgICBpZiAodGhpcy5zY3JvbGxCYXJPcHRpb25zLnNob3dIb3Jpem9udGFsU2Nyb2xsQmFyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsV3JhcHBlciA9XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5ub3QtcGluZWQtY29sdW1ucycpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZU5vdFBpbmVkQm91bmRpbmdSZWN0ID1cbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsV3JhcHBlcj8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICAgICAgICAgID8gc2Nyb2xsV3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGVGdWxsV2lkdGggPSBzY3JvbGxXcmFwcGVyPy5zY3JvbGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICA/IHNjcm9sbFdyYXBwZXIuc2Nyb2xsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGVWaXNpYmxlV2lkdGggPSBzY3JvbGxXcmFwcGVyPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgICAgICAud2lkdGhcbiAgICAgICAgICAgICAgICAgICAgPyBNYXRoLmNlaWwoc2Nyb2xsV3JhcHBlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aClcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVNjcm9sbFJhdGlvID0gdGFibGVWaXNpYmxlV2lkdGggLyB0YWJsZUZ1bGxXaWR0aDtcblxuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTY3JvbGxSYXRpb0Z1bGwgPSB0YWJsZUZ1bGxXaWR0aCAvIHRhYmxlVmlzaWJsZVdpZHRoO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVNjcm9sbFdpZHRoID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZVNjcm9sbFJhdGlvICogdGFibGVWaXNpYmxlV2lkdGg7XG5cbiAgICAgICAgICAgICAgICBpZiAodGFibGVGdWxsV2lkdGggPD0gdGFibGVWaXNpYmxlV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93U2Nyb2xsYmFyID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaG5nLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dTY3JvbGxiYXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNobmcuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50QWN0aW9uOiAnaXNTY3JvbGxTaG93aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgaXNTY3JvbGxCYXJTaG93aW5nOiB0aGlzLnNob3dTY3JvbGxiYXIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBSZWd1bGFyIFNjcm9sbFxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudF9oZWlnaHQgPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uc2Nyb2xsSGVpZ2h0IC0gMTtcbiAgICAgICAgICAgICAgICBjb25zdCB2aXNpYmxlX2hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblxuICAgICAgICAgICAgICAgIGlmIChjb250ZW50X2hlaWdodCA8PSB2aXNpYmxlX2hlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dTY3JvbGxiYXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaG5nLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Njcm9sbGJhciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2huZy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxSYXRpbyA9IHZpc2libGVfaGVpZ2h0IC8gY29udGVudF9oZWlnaHQ7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxSYXRpb0Z1bGwgPSBjb250ZW50X2hlaWdodCAvIHZpc2libGVfaGVpZ2h0O1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9wID0gZWxlbS5zY3JvbGxUb3AgKiB0aGlzLnNjcm9sbFJhdGlvO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYmFyLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZVkoJHt0aGlzLnNjcm9sbFRvcH1weClgO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsSGVpZ2h0ID0gdGhpcy5zY3JvbGxSYXRpbyAqIHZpc2libGVfaGVpZ2h0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNobmcuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9LCAxMDApO1xuICAgIH1cblxuICAgIG9uTW91c2VVcEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNNb3VzZURvd24gPSBmYWxzZTtcbiAgICB9O1xuXG4gICAgcmVzaXplSGFuZGxlckNvdW50OiBhbnk7XG4gICAgb25SZXNpemVIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb3VzZURvd24pIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZUhhbmRsZXJDb3VudCk7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZXJDb3VudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQmFyU2l6ZUFuZFBvc2l0aW9uKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSwgMTUwKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBvbk1vdXNlTW92ZUhhbmRsZXIgPSAoZTogYW55KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzTW91c2VEb3duKSB7XG4gICAgICAgICAgICAvLyBSZWd1bGFyIFNjcm9sbFxuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsQmFyT3B0aW9ucy5zaG93VmVydGljYWxTY3JvbGxCYXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRCYXIgPSBlLmNsaWVudFkgLSB0aGlzLmJhckNsaWNrUG9zaXRpb247XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXRCYXIgPiAtMSAmJlxuICAgICAgICAgICAgICAgICAgICBlLmNsaWVudFkgKyB0aGlzLmJhckNsaWNrUmVzdEhlaWdodCA8IHdpbmRvdy5pbm5lckhlaWdodFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhci5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVZKCR7b2Zmc2V0QmFyfXB4KWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXS5zY3JvbGxUb3AgPVxuICAgICAgICAgICAgICAgICAgICAoZS5jbGllbnRZIC0gdGhpcy5iYXJDbGlja1Bvc2l0aW9uKSAqIHRoaXMuc2Nyb2xsUmF0aW9GdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVGFibGUgU2Nyb2xsXG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgb2Zmc2V0QmFyID0gZS5jbGllbnRYIC0gdGhpcy50YWJsZUJhckNsaWNrUG9zaXRpb247XG4gICAgICAgICAgICAgICAgY29uc3QgbWF4V2lkdGggPSB0aGlzLnRhYmxlTm90UGluZWRCb3VuZGluZ1JlY3Qud2lkdGg7XG5cbiAgICAgICAgICAgICAgICBvZmZzZXRCYXIgPSBvZmZzZXRCYXIgPCAwID8gMCA6IG9mZnNldEJhcjtcbiAgICAgICAgICAgICAgICBvZmZzZXRCYXIgPVxuICAgICAgICAgICAgICAgICAgICBlLmNsaWVudFggKyB0aGlzLnRhYmxlQmFyQ2xpY2tSZXN0V2lkdGggPiBtYXhXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtYXhXaWR0aCAtIHRoaXMudGFibGVTY3JvbGxXaWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBvZmZzZXRCYXI7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmJhci5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGVYKCR7b2Zmc2V0QmFyfXB4KWA7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbEV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBldmVudEFjdGlvbjogJ3Njcm9sbGluZycsXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uOiBvZmZzZXRCYXIgKiB0aGlzLnRhYmxlU2Nyb2xsUmF0aW9GdWxsLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXBIYW5kbGVyKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZUhhbmRsZXIpO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vblJlc2l6ZUhhbmRsZXIpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByb2plY3RDb250ZW50Q2hhbmdlZChlOiBhbnkpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2FsY3VsYXRlU2l6ZUhlaWdodFRpbWVyKTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVTaXplSGVpZ2h0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQmFyU2l6ZUFuZFBvc2l0aW9uKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJjdXN0b20tc2Nyb2xsYmFyLWhvbGRlclwiXG4gICAgI2NvbnRlbnRIb2xkZXJcbiAgICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwicHJvamVjdENvbnRlbnRDaGFuZ2VkKCRldmVudClcIlxuICAgIFtjbGFzcy5hY3RpdmVUb29sYmFyXT1cInNob3dTY3JvbGxiYXJcIlxuICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgaGVpZ2h0OiBzY3JvbGxCYXJPcHRpb25zLnNob3dIb3Jpem9udGFsU2Nyb2xsQmFyXG4gICAgICAgICAgICA/IGhvcml6b250YWxTY3JvbGxIZWlnaHQgKyAncHgnXG4gICAgICAgICAgICA6IDEwMCArICd2aCcsXG4gICAgICAgICdvdmVyZmxvdy15Jzogc2Nyb2xsQmFyT3B0aW9ucy5zaG93SG9yaXpvbnRhbFNjcm9sbEJhclxuICAgICAgICAgICAgPyAndmlzaWJsZSdcbiAgICAgICAgICAgIDogJ2F1dG8nLFxuICAgIH1cIlxuPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8IS0tIFZlcnRpY2FsIFNjcm9sbCBCYXIgLS0+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInJpZ2h0LWJhci1zY3JvbGxcIlxuICAgICAgICAqbmdJZj1cInNob3dTY3JvbGxiYXIgJiYgc2Nyb2xsQmFyT3B0aW9ucy5zaG93VmVydGljYWxTY3JvbGxCYXJcIlxuICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJyaWdodC1iYXJcIlxuICAgICAgICAgICAgI2JhclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyBoZWlnaHQ6IHNjcm9sbEhlaWdodCArICdweCcgfVwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cInNldERyYWdnaW5nU3RhcnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAobW91c2V1cCk9XCJpc01vdXNlRG93biA9IGZhbHNlXCJcbiAgICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBIb3Jpem9udGFsIFNjcm9sbCBCYXIgLS0+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImhvcml6b250YWwtc2Nyb2xsLWJhclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICdsZWZ0LnB4JzpcbiAgICAgICAgICAgICAgICBzY3JvbGxCYXJPcHRpb25zPy5tb2RhbFN0eWxlPy5ob3Jpem9udGFsU2Nyb2xsQmFyTGVmdCA9PT0gMCB8fFxuICAgICAgICAgICAgICAgIHNjcm9sbEJhck9wdGlvbnM/Lm1vZGFsU3R5bGU/Lmhvcml6b250YWxTY3JvbGxCYXJMZWZ0XG4gICAgICAgICAgICAgICAgICAgID8gc2Nyb2xsQmFyT3B0aW9ucy5tb2RhbFN0eWxlLmhvcml6b250YWxTY3JvbGxCYXJMZWZ0XG4gICAgICAgICAgICAgICAgICAgIDogdGFibGVOb3RQaW5lZEJvdW5kaW5nUmVjdD8ubGVmdCAtIDc0LFxuICAgICAgICAgICAgJ3dpZHRoLnB4Jzogc2Nyb2xsQmFyT3B0aW9ucz8ubW9kYWxTdHlsZT8uaG9yaXpvbnRhbFNjcm9sbEJhcldpZHRoXG4gICAgICAgICAgICAgICAgPyBzY3JvbGxCYXJPcHRpb25zLm1vZGFsU3R5bGUuaG9yaXpvbnRhbFNjcm9sbEJhcldpZHRoXG4gICAgICAgICAgICAgICAgOiB0YWJsZU5vdFBpbmVkQm91bmRpbmdSZWN0Py53aWR0aCxcbiAgICAgICAgICAgICdtYXJnaW4tdG9wLnB4Jzogc2Nyb2xsQmFyT3B0aW9ucz8ubW9kYWxTdHlsZVxuICAgICAgICAgICAgICAgID8uaG9yaXpvbnRhbFNjcm9sbEJhck1hcmdpblRvcFxuICAgICAgICAgICAgICAgID8gc2Nyb2xsQmFyT3B0aW9ucy5tb2RhbFN0eWxlLmhvcml6b250YWxTY3JvbGxCYXJNYXJnaW5Ub3BcbiAgICAgICAgICAgICAgICA6IC0xNSxcbiAgICAgICAgfVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdtb2RhbC1ob3Jpem9udGFsLXNjcm9sbC1iYXInOlxuICAgICAgICAgICAgICAgIHNjcm9sbEJhck9wdGlvbnM/Lm1vZGFsU3R5bGU/Lm1vZGFsU2Nyb2xsQ2xhc3NBY3RpdmUsXG4gICAgICAgIH1cIlxuICAgICAgICAqbmdJZj1cInNob3dTY3JvbGxiYXIgJiYgc2Nyb2xsQmFyT3B0aW9ucy5zaG93SG9yaXpvbnRhbFNjcm9sbEJhclwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhvcml6b250YWwtYmFyXCJcbiAgICAgICAgICAgICNiYXJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICAnd2lkdGgucHgnOiBzY3JvbGxCYXJPcHRpb25zPy5tb2RhbFN0eWxlPy5hZGRpdGlvbmFsV2lkdGhcbiAgICAgICAgICAgICAgICAgICAgPyB0YWJsZVNjcm9sbFdpZHRoICtcbiAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxCYXJPcHRpb25zLm1vZGFsU3R5bGUuYWRkaXRpb25hbFdpZHRoXG4gICAgICAgICAgICAgICAgICAgIDogdGFibGVTY3JvbGxXaWR0aCxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdob3Jpem9udGFsLWJhci1zdGlja3knOiBzY3JvbGxCYXJPcHRpb25zLmRhdGFMZW5ndGggPj0gMjMsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChtb3VzZWRvd24pPVwic2V0RHJhZ2dpbmdTdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChtb3VzZXVwKT1cImlzTW91c2VEb3duID0gZmFsc2VcIlxuICAgICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -5,6 +5,8 @@ import { Component, Input } from '@angular/core';
|
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
6
|
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
|
|
7
7
|
import { AngularSvgIconModule } from 'angular-svg-icon';
|
|
8
|
+
// components
|
|
9
|
+
import { CaCustomScrollbarComponent } from '../ca-custom-scrollbar/ca-custom-scrollbar.component';
|
|
8
10
|
import * as i0 from "@angular/core";
|
|
9
11
|
import * as i1 from "@angular/common";
|
|
10
12
|
import * as i2 from "@angular/cdk/drag-drop";
|
|
@@ -15,7 +17,9 @@ export class CaModalComponent {
|
|
|
15
17
|
this.modalTitle = '';
|
|
16
18
|
}
|
|
17
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CaModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaModalComponent, isStandalone: true, selector: "app-ca-modal", inputs: { customClass: "customClass", partClass: "partClass", modalTitle: "modalTitle", leftHeaderTemplate: "leftHeaderTemplate", rightHeaderTemplate: "rightHeaderTemplate", footerTemplate: "footerTemplate", additionalPartTemplate: "additionalPartTemplate" }, ngImport: i0, template: "<div cdkDrag class=\"modal-container {{ customClass }}\" ngBAutofocus>\n
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CaModalComponent, isStandalone: true, selector: "app-ca-modal", inputs: { customClass: "customClass", partClass: "partClass", modalTitle: "modalTitle", leftHeaderTemplate: "leftHeaderTemplate", rightHeaderTemplate: "rightHeaderTemplate", footerTemplate: "footerTemplate", additionalPartTemplate: "additionalPartTemplate" }, ngImport: i0, template: "<app-ca-custom-scrollbar\n [scrollBarOptions]=\"{\n showVerticalScrollBar: true,\n showHorizontalScrollBar: false,\n }\"\n>\n <div cdkDrag class=\"modal-container {{ customClass }}\" ngBAutofocus>\n <div class=\"modal-original-part {{ partClass }}\">\n <div\n cdkDragHandle\n class=\"modal-header d-flex justify-content-between\"\n >\n <div class=\"modal-header-leftside\">\n <!-- Header title -->\n\n <h5 class=\"modal-title\">{{ modalTitle }}</h5>\n <!-- Haeder left side template -->\n\n <ng-container\n *ngTemplateOutlet=\"leftHeaderTemplate\"\n ></ng-container>\n </div>\n <div class=\"modal-header-rightside\">\n <!-- Haeder right side -->\n\n <ng-container\n *ngTemplateOutlet=\"rightHeaderTemplate\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"modal-body\">\n <!-- Modal content -->\n\n <ng-content select=\"[origin]\"></ng-content>\n </div>\n <!-- Footer Template Content -->\n\n <div cdkDragHandle>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n <!-- Additional Part Content -->\n\n <ng-container *ngTemplateOutlet=\"additionalPartTemplate\"></ng-container>\n </div>\n</app-ca-custom-scrollbar>\n", styles: ["@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.modal-open{overflow:hidden!important}.modal-open::-webkit-scrollbar-track{background-color:#0000004d}.modal-open::-webkit-scrollbar-thumb{background-color:#0000004d}.modal-date-logo{height:26px;width:26px;cursor:pointer!important;position:relative}.modal-date-logo svg:hover{cursor:pointer}.modal-date-logo svg:hover path{fill:#919191}.modal-date-border{height:18px;margin-right:4px;border-right:1px solid #cccccc}.modal-container{width:480px;height:auto;overflow:hidden;position:relative;transition:width .3s}.modal-container .drop-zone-active{width:100%;height:100%;position:absolute;top:0%;left:0%;z-index:99999999999}.modal-container .drop-zone-active .drop-zone-title{position:absolute;z-index:9999;top:16px;left:14px;color:#6c6c6c;font-size:18px;font-weight:800;margin:0}.modal-container .drop-zone-active .ta-modal-dropzone{position:absolute;top:0;border:4px dashed #e5e5e5}.modal-container .drop-zone-active-hovered .ta-modal-dropzone{position:absolute;top:0;border:4px dashed #dadada;background-color:#eee}.modal-container .drop-zone-active-hovered .ta-modal-dropzone .ta-modal-dropzone-label{background-color:#eee}.modal-container .drop-zone-active-hovered .ta-modal-dropzone .ta-modal-dropzone-text{color:#6c6c6c}.modal-container .drop-zone-active .ta-modal-dropzone-area{transform:scale(2)}.modal-container .drop-zone-active .ta-modal-dropzone-text{position:absolute!important;top:84%!important;text-align:center;left:50%!important;transform:translate(-50%,-50%)}.modal-container.modal-container-load{width:1280px;display:flex}.modal-container.modal-container-load .divider{width:615px}.modal-container.modal-container-load .modal-additional-part{width:640px}.modal-container.modal-container-load .modal-additional-part-load{background-color:#f7f7f7;height:650px}.modal-container.modal-container-load .modal-additional-part-load .divider{background-color:#dadada;height:1px}.modal-container.modal-container-load .modal-additional-part-load-modal{max-width:640px;width:calc(100vw - 640px)}.modal-container .load-modal-origin-part{width:640px!important}.modal-container.modal-container-XS{width:390px}.modal-container.modal-container-XS .divider{width:366px}.modal-container.modal-container-XS .confirmation-modal-body{padding:22px 6px}.modal-container.modal-container-S{width:366px}.modal-container.modal-container-S .divider{width:341px}.modal-container.modal-container-M{width:640px}.modal-container.modal-container-M .divider{height:1px;background-color:#dadada;width:616px;margin:0 auto}.modal-container.modal-container-L{width:710px}.modal-container.modal-container-L .divider{width:685px}.modal-container.modal-container-XL{width:860px}.modal-container.modal-container-XL .divider{width:836px}.modal-container.modal-container-XL-2{width:800px;overflow:visible!important}.modal-container.modal-container-XL-2 .divider{width:775px}.modal-container .divider-bottom{margin-bottom:12px!important}.modal-container .card-divider{background-color:#dadada!important;height:1px!important}.modal-container.modal-container-sph-applicant{width:940px;height:960px;overflow-y:scroll;scrollbar-width:none!important}.modal-container.modal-container-sph-applicant::-webkit-scrollbar{width:2px}.modal-container.modal-container-sph-applicant::-webkit-scrollbar-thumb{background-color:transparent;border:6px solid transparent;border-radius:1px}.modal-container.modal-container-sph-applicant::-webkit-scrollbar-track{padding:0;position:relative;right:0;top:0;background:transparent}.modal-container.modal-container-sph-applicant .divider{display:none}.modal-container .divider{width:455px;height:2px;content:\"\";border-radius:1px;background-color:#f3f3f3;margin:0 auto}.modal-container .modal-spinner{position:absolute;bottom:7px;right:8px}.modal-container .form-container .row>*:nth-child(odd){padding-left:12px;padding-right:12px}.modal-container .form-container .row>*:nth-child(2n){padding-left:0;padding-right:12px}.modal-container .not-clickable{pointer-events:none;cursor:not-allowed;background:#f7f7f7!important;color:#ccc!important}.modal-container .modal-footer>*{margin:0!important}.modal-container .modal-footer .ta-modal-footer-right-side,.modal-container .modal-footer .ta-modal-footer-left-side{gap:12px;padding-left:1px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: AngularSvgIconModule }, { kind: "ngmodule", type: NgbModule }, { kind: "component", type:
|
|
21
|
+
// components
|
|
22
|
+
CaCustomScrollbarComponent, selector: "app-ca-custom-scrollbar", inputs: ["scrollBarOptions", "horizontalScrollHeight"], outputs: ["scrollEvent"] }], animations: [
|
|
19
23
|
trigger('widthGrow', [
|
|
20
24
|
state('closed', style({
|
|
21
25
|
transform: 'scale(0)',
|
|
@@ -35,6 +39,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
35
39
|
DragDropModule,
|
|
36
40
|
AngularSvgIconModule,
|
|
37
41
|
NgbModule,
|
|
42
|
+
// components
|
|
43
|
+
CaCustomScrollbarComponent,
|
|
38
44
|
], animations: [
|
|
39
45
|
trigger('widthGrow', [
|
|
40
46
|
state('closed', style({
|
|
@@ -45,7 +51,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
45
51
|
})),
|
|
46
52
|
transition('closed => open', animate(100)),
|
|
47
53
|
]),
|
|
48
|
-
], template: "<div cdkDrag class=\"modal-container {{ customClass }}\" ngBAutofocus>\n
|
|
54
|
+
], template: "<app-ca-custom-scrollbar\n [scrollBarOptions]=\"{\n showVerticalScrollBar: true,\n showHorizontalScrollBar: false,\n }\"\n>\n <div cdkDrag class=\"modal-container {{ customClass }}\" ngBAutofocus>\n <div class=\"modal-original-part {{ partClass }}\">\n <div\n cdkDragHandle\n class=\"modal-header d-flex justify-content-between\"\n >\n <div class=\"modal-header-leftside\">\n <!-- Header title -->\n\n <h5 class=\"modal-title\">{{ modalTitle }}</h5>\n <!-- Haeder left side template -->\n\n <ng-container\n *ngTemplateOutlet=\"leftHeaderTemplate\"\n ></ng-container>\n </div>\n <div class=\"modal-header-rightside\">\n <!-- Haeder right side -->\n\n <ng-container\n *ngTemplateOutlet=\"rightHeaderTemplate\"\n ></ng-container>\n </div>\n </div>\n\n <div class=\"modal-body\">\n <!-- Modal content -->\n\n <ng-content select=\"[origin]\"></ng-content>\n </div>\n <!-- Footer Template Content -->\n\n <div cdkDragHandle>\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n <!-- Additional Part Content -->\n\n <ng-container *ngTemplateOutlet=\"additionalPartTemplate\"></ng-container>\n </div>\n</app-ca-custom-scrollbar>\n", styles: ["@keyframes dropdown{0%{margin-top:20px;visibility:hidden;opacity:0}to{opacity:1;margin-top:10px;visibility:visible!important}}@keyframes dropup{0%{margin-top:-19px;visibility:hidden;opacity:0}to{margin-top:inherit;visibility:visible!important}}.modal-open{overflow:hidden!important}.modal-open::-webkit-scrollbar-track{background-color:#0000004d}.modal-open::-webkit-scrollbar-thumb{background-color:#0000004d}.modal-date-logo{height:26px;width:26px;cursor:pointer!important;position:relative}.modal-date-logo svg:hover{cursor:pointer}.modal-date-logo svg:hover path{fill:#919191}.modal-date-border{height:18px;margin-right:4px;border-right:1px solid #cccccc}.modal-container{width:480px;height:auto;overflow:hidden;position:relative;transition:width .3s}.modal-container .drop-zone-active{width:100%;height:100%;position:absolute;top:0%;left:0%;z-index:99999999999}.modal-container .drop-zone-active .drop-zone-title{position:absolute;z-index:9999;top:16px;left:14px;color:#6c6c6c;font-size:18px;font-weight:800;margin:0}.modal-container .drop-zone-active .ta-modal-dropzone{position:absolute;top:0;border:4px dashed #e5e5e5}.modal-container .drop-zone-active-hovered .ta-modal-dropzone{position:absolute;top:0;border:4px dashed #dadada;background-color:#eee}.modal-container .drop-zone-active-hovered .ta-modal-dropzone .ta-modal-dropzone-label{background-color:#eee}.modal-container .drop-zone-active-hovered .ta-modal-dropzone .ta-modal-dropzone-text{color:#6c6c6c}.modal-container .drop-zone-active .ta-modal-dropzone-area{transform:scale(2)}.modal-container .drop-zone-active .ta-modal-dropzone-text{position:absolute!important;top:84%!important;text-align:center;left:50%!important;transform:translate(-50%,-50%)}.modal-container.modal-container-load{width:1280px;display:flex}.modal-container.modal-container-load .divider{width:615px}.modal-container.modal-container-load .modal-additional-part{width:640px}.modal-container.modal-container-load .modal-additional-part-load{background-color:#f7f7f7;height:650px}.modal-container.modal-container-load .modal-additional-part-load .divider{background-color:#dadada;height:1px}.modal-container.modal-container-load .modal-additional-part-load-modal{max-width:640px;width:calc(100vw - 640px)}.modal-container .load-modal-origin-part{width:640px!important}.modal-container.modal-container-XS{width:390px}.modal-container.modal-container-XS .divider{width:366px}.modal-container.modal-container-XS .confirmation-modal-body{padding:22px 6px}.modal-container.modal-container-S{width:366px}.modal-container.modal-container-S .divider{width:341px}.modal-container.modal-container-M{width:640px}.modal-container.modal-container-M .divider{height:1px;background-color:#dadada;width:616px;margin:0 auto}.modal-container.modal-container-L{width:710px}.modal-container.modal-container-L .divider{width:685px}.modal-container.modal-container-XL{width:860px}.modal-container.modal-container-XL .divider{width:836px}.modal-container.modal-container-XL-2{width:800px;overflow:visible!important}.modal-container.modal-container-XL-2 .divider{width:775px}.modal-container .divider-bottom{margin-bottom:12px!important}.modal-container .card-divider{background-color:#dadada!important;height:1px!important}.modal-container.modal-container-sph-applicant{width:940px;height:960px;overflow-y:scroll;scrollbar-width:none!important}.modal-container.modal-container-sph-applicant::-webkit-scrollbar{width:2px}.modal-container.modal-container-sph-applicant::-webkit-scrollbar-thumb{background-color:transparent;border:6px solid transparent;border-radius:1px}.modal-container.modal-container-sph-applicant::-webkit-scrollbar-track{padding:0;position:relative;right:0;top:0;background:transparent}.modal-container.modal-container-sph-applicant .divider{display:none}.modal-container .divider{width:455px;height:2px;content:\"\";border-radius:1px;background-color:#f3f3f3;margin:0 auto}.modal-container .modal-spinner{position:absolute;bottom:7px;right:8px}.modal-container .form-container .row>*:nth-child(odd){padding-left:12px;padding-right:12px}.modal-container .form-container .row>*:nth-child(2n){padding-left:0;padding-right:12px}.modal-container .not-clickable{pointer-events:none;cursor:not-allowed;background:#f7f7f7!important;color:#ccc!important}.modal-container .modal-footer>*{margin:0!important}.modal-container .modal-footer .ta-modal-footer-right-side,.modal-container .modal-footer .ta-modal-footer-left-side{gap:12px;padding-left:1px}\n"] }]
|
|
49
55
|
}], propDecorators: { customClass: [{
|
|
50
56
|
type: Input
|
|
51
57
|
}], partClass: [{
|
|
@@ -61,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
61
67
|
}], additionalPartTemplate: [{
|
|
62
68
|
type: Input
|
|
63
69
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbW9kYWwvY2EtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtbW9kYWwvY2EtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBQ1YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsYUFBYTtBQUNiLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7O0FBbUNsRyxNQUFNLE9BQU8sZ0JBQWdCO0lBakM3QjtRQWtDYSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBVyxFQUFFLENBQUM7S0FNcEM7K0dBVFksZ0JBQWdCO21HQUFoQixnQkFBZ0IsNFVDbEQ3QixtbURBK0NBLHc3SUR4QlEsWUFBWSxxTUFDWixXQUFXLDhCQUNYLGNBQWMsK2xCQUNkLG9CQUFvQiw4QkFDcEIsU0FBUztnQkFFVCxhQUFhO2dCQUNiLDBCQUEwQix3SUFFbEI7WUFDUixPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUNqQixLQUFLLENBQ0QsUUFBUSxFQUNSLEtBQUssQ0FBQztvQkFDRixTQUFTLEVBQUUsVUFBVTtpQkFDeEIsQ0FBQyxDQUNMO2dCQUNELEtBQUssQ0FDRCxNQUFNLEVBQ04sS0FBSyxDQUFDO29CQUNGLFNBQVMsRUFBRSxVQUFVO2lCQUN4QixDQUFDLENBQ0w7Z0JBQ0QsVUFBVSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM3QyxDQUFDO1NBQ0w7OzRGQUVRLGdCQUFnQjtrQkFqQzVCLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGNBQWMsV0FHZjt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLFNBQVM7d0JBRVQsYUFBYTt3QkFDYiwwQkFBMEI7cUJBQzdCLGNBQ1c7d0JBQ1IsT0FBTyxDQUFDLFdBQVcsRUFBRTs0QkFDakIsS0FBSyxDQUNELFFBQVEsRUFDUixLQUFLLENBQUM7Z0NBQ0YsU0FBUyxFQUFFLFVBQVU7NkJBQ3hCLENBQUMsQ0FDTDs0QkFDRCxLQUFLLENBQ0QsTUFBTSxFQUNOLEtBQUssQ0FBQztnQ0FDRixTQUFTLEVBQUUsVUFBVTs2QkFDeEIsQ0FBQyxDQUNMOzRCQUNELFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7eUJBQzdDLENBQUM7cUJBQ0w7OEJBR1EsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgYW5pbWF0ZSxcbiAgICBzdGF0ZSxcbiAgICBzdHlsZSxcbiAgICB0cmFuc2l0aW9uLFxuICAgIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYUN1c3RvbVNjcm9sbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL2NhLWN1c3RvbS1zY3JvbGxiYXIvY2EtY3VzdG9tLXNjcm9sbGJhci5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXBwLWNhLW1vZGFsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2EtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICAgICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgICAgIE5nYk1vZHVsZSxcblxuICAgICAgICAvLyBjb21wb25lbnRzXG4gICAgICAgIENhQ3VzdG9tU2Nyb2xsYmFyQ29tcG9uZW50LFxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCd3aWR0aEdyb3cnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnY2xvc2VkJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDApJyxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICdvcGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDEpJyxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2Nsb3NlZCA9PiBvcGVuJywgYW5pbWF0ZSgxMDApKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FNb2RhbENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgY3VzdG9tQ2xhc3M6IHN0cmluZyA9ICcnO1xuICAgIEBJbnB1dCgpIHBhcnRDbGFzczogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgbW9kYWxUaXRsZTogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBsZWZ0SGVhZGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxudWxsPjtcbiAgICBASW5wdXQoKSByaWdodEhlYWRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8bnVsbD47XG4gICAgQElucHV0KCkgZm9vdGVyVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxudWxsPjtcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsUGFydFRlbXBsYXRlITogVGVtcGxhdGVSZWY8bnVsbD47XG59XG4iLCI8YXBwLWNhLWN1c3RvbS1zY3JvbGxiYXJcbiAgICBbc2Nyb2xsQmFyT3B0aW9uc109XCJ7XG4gICAgICAgIHNob3dWZXJ0aWNhbFNjcm9sbEJhcjogdHJ1ZSxcbiAgICAgICAgc2hvd0hvcml6b250YWxTY3JvbGxCYXI6IGZhbHNlLFxuICAgIH1cIlxuPlxuICAgIDxkaXYgY2RrRHJhZyBjbGFzcz1cIm1vZGFsLWNvbnRhaW5lciB7eyBjdXN0b21DbGFzcyB9fVwiIG5nQkF1dG9mb2N1cz5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLW9yaWdpbmFsLXBhcnQge3sgcGFydENsYXNzIH19XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9kYWwtaGVhZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlci1sZWZ0c2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIEhlYWRlciB0aXRsZSAtLT5cblxuICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPnt7IG1vZGFsVGl0bGUgfX08L2g1PlxuICAgICAgICAgICAgICAgICAgICA8IS0tIEhhZWRlciBsZWZ0IHNpZGUgdGVtcGxhdGUgLS0+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsZWZ0SGVhZGVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlci1yaWdodHNpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBIYWVkZXIgcmlnaHQgc2lkZSAtLT5cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInJpZ2h0SGVhZGVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cbiAgICAgICAgICAgICAgICA8IS0tIE1vZGFsIGNvbnRlbnQgLS0+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb3JpZ2luXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPCEtLSBGb290ZXIgVGVtcGxhdGUgQ29udGVudCAtLT5cblxuICAgICAgICAgICAgPGRpdiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tIEFkZGl0aW9uYWwgUGFydCBDb250ZW50IC0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZGRpdGlvbmFsUGFydFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L2FwcC1jYS1jdXN0b20tc2Nyb2xsYmFyPlxuIl19
|