mis-crystal-design-system 2.1.3 → 2.2.3
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/async-search-dropdown/async-dropdown.component.d.ts +60 -0
- package/async-search-dropdown/async-dropdown.module.d.ts +2 -0
- package/async-search-dropdown/index.d.ts +1 -0
- package/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.d.ts +4 -0
- package/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.metadata.json +1 -0
- package/async-search-dropdown/package.json +11 -0
- package/async-search-dropdown/public_api.d.ts +2 -0
- package/bundles/mis-crystal-design-system-async-search-dropdown.umd.js +211 -0
- package/bundles/mis-crystal-design-system-async-search-dropdown.umd.js.map +1 -0
- package/bundles/mis-crystal-design-system-async-search-dropdown.umd.min.js +2 -0
- package/bundles/mis-crystal-design-system-async-search-dropdown.umd.min.js.map +1 -0
- package/bundles/mis-crystal-design-system-button.umd.js +60 -2
- package/bundles/mis-crystal-design-system-button.umd.js.map +1 -1
- package/bundles/mis-crystal-design-system-button.umd.min.js +1 -1
- package/bundles/mis-crystal-design-system-button.umd.min.js.map +1 -1
- package/bundles/mis-crystal-design-system-datepicker.umd.js +3 -1
- package/bundles/mis-crystal-design-system-datepicker.umd.js.map +1 -1
- package/bundles/mis-crystal-design-system-datepicker.umd.min.js +1 -1
- package/bundles/mis-crystal-design-system-datepicker.umd.min.js.map +1 -1
- package/bundles/mis-crystal-design-system-input.umd.js +111 -0
- package/bundles/mis-crystal-design-system-input.umd.js.map +1 -0
- package/bundles/mis-crystal-design-system-input.umd.min.js +2 -0
- package/bundles/mis-crystal-design-system-input.umd.min.js.map +1 -0
- package/bundles/mis-crystal-design-system-modal.umd.js +165 -0
- package/bundles/mis-crystal-design-system-modal.umd.js.map +1 -0
- package/bundles/mis-crystal-design-system-modal.umd.min.js +2 -0
- package/bundles/mis-crystal-design-system-modal.umd.min.js.map +1 -0
- package/bundles/mis-crystal-design-system-table.umd.js +6 -4
- package/bundles/mis-crystal-design-system-table.umd.js.map +1 -1
- package/bundles/mis-crystal-design-system-table.umd.min.js +1 -1
- package/bundles/mis-crystal-design-system-table.umd.min.js.map +1 -1
- package/button/button.directive.d.ts +12 -0
- package/button/button.directive.scss +69 -0
- package/button/mis-crystal-design-system-button.d.ts +1 -0
- package/button/mis-crystal-design-system-button.metadata.json +1 -1
- package/datepicker/mis-crystal-design-system-datepicker.metadata.json +1 -1
- package/esm2015/async-search-dropdown/async-dropdown.component.js +176 -0
- package/esm2015/async-search-dropdown/async-dropdown.module.js +15 -0
- package/esm2015/async-search-dropdown/index.js +2 -0
- package/esm2015/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.js +5 -0
- package/esm2015/async-search-dropdown/public_api.js +3 -0
- package/esm2015/button/button.directive.js +57 -0
- package/esm2015/button/button.module.js +4 -3
- package/esm2015/button/mis-crystal-design-system-button.js +2 -1
- package/esm2015/datepicker/bs-datepicker.module.js +6 -2
- package/esm2015/input/directives/input/input.directive.js +38 -0
- package/esm2015/input/index.js +2 -0
- package/esm2015/input/mis-crystal-design-system-input.js +5 -0
- package/esm2015/input/mis-input.component.js +40 -0
- package/esm2015/input/mis-input.module.js +15 -0
- package/esm2015/input/public_api.js +4 -0
- package/esm2015/modal/index.js +2 -0
- package/esm2015/modal/mis-crystal-design-system-modal.js +6 -0
- package/esm2015/modal/modal-constants.js +4 -0
- package/esm2015/modal/modal-ref.js +16 -0
- package/esm2015/modal/modal.module.js +32 -0
- package/esm2015/modal/modal.service.js +72 -0
- package/esm2015/modal/module-wrapper/module-wrapper.component.js +33 -0
- package/esm2015/modal/public_api.js +5 -0
- package/esm2015/table/filter/filter.component.js +5 -3
- package/esm2015/table/table.component.js +3 -3
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.js +194 -0
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.js.map +1 -0
- package/fesm2015/mis-crystal-design-system-button.js +60 -4
- package/fesm2015/mis-crystal-design-system-button.js.map +1 -1
- package/fesm2015/mis-crystal-design-system-datepicker.js +3 -1
- package/fesm2015/mis-crystal-design-system-datepicker.js.map +1 -1
- package/fesm2015/mis-crystal-design-system-input.js +94 -0
- package/fesm2015/mis-crystal-design-system-input.js.map +1 -0
- package/fesm2015/mis-crystal-design-system-modal.js +151 -0
- package/fesm2015/mis-crystal-design-system-modal.js.map +1 -0
- package/fesm2015/mis-crystal-design-system-table.js +6 -4
- package/fesm2015/mis-crystal-design-system-table.js.map +1 -1
- package/input/directives/input/input.directive.d.ts +15 -0
- package/input/index.d.ts +1 -0
- package/input/mis-crystal-design-system-input.d.ts +4 -0
- package/input/mis-crystal-design-system-input.metadata.json +1 -0
- package/input/mis-input.component.d.ts +15 -0
- package/input/mis-input.module.d.ts +2 -0
- package/input/package.json +11 -0
- package/input/public_api.d.ts +3 -0
- package/modal/index.d.ts +1 -0
- package/modal/mis-crystal-design-system-modal.d.ts +5 -0
- package/modal/mis-crystal-design-system-modal.metadata.json +1 -0
- package/modal/modal-constants.d.ts +3 -0
- package/modal/modal-ref.d.ts +9 -0
- package/modal/modal.module.d.ts +5 -0
- package/modal/modal.scss +9 -0
- package/modal/modal.service.d.ts +22 -0
- package/modal/module-wrapper/module-wrapper.component.d.ts +9 -0
- package/modal/package.json +11 -0
- package/modal/public_api.d.ts +4 -0
- package/package.json +1 -1
- package/table/mis-crystal-design-system-table.metadata.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { OverlayModule } from '@angular/cdk/overlay';
|
|
4
|
+
import { PortalModule } from '@angular/cdk/portal';
|
|
5
|
+
import { ModuleWrapperComponent } from './module-wrapper/module-wrapper.component';
|
|
6
|
+
import { ModalService } from './modal.service';
|
|
7
|
+
export class ModalModule {
|
|
8
|
+
static forRoot() {
|
|
9
|
+
return {
|
|
10
|
+
ngModule: ModalModule,
|
|
11
|
+
providers: [ModalService],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
static forChild() {
|
|
15
|
+
return {
|
|
16
|
+
ngModule: ModalModule,
|
|
17
|
+
providers: [ModalService],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
ModalModule.decorators = [
|
|
22
|
+
{ type: NgModule, args: [{
|
|
23
|
+
declarations: [ModuleWrapperComponent],
|
|
24
|
+
imports: [
|
|
25
|
+
CommonModule,
|
|
26
|
+
OverlayModule,
|
|
27
|
+
PortalModule
|
|
28
|
+
],
|
|
29
|
+
entryComponents: [ModuleWrapperComponent]
|
|
30
|
+
},] }
|
|
31
|
+
];
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvbW9kYWwvbW9kYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWEvQyxNQUFNLE9BQU8sV0FBVztJQUN0QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsV0FBVztZQUNyQixTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDMUIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUTtRQUNiLE9BQU87WUFDTCxRQUFRLEVBQUUsV0FBVztZQUNyQixTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDMUIsQ0FBQztJQUNKLENBQUM7OztZQXRCRixRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3RDLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGFBQWE7b0JBQ2IsWUFBWTtpQkFDYjtnQkFDRCxlQUFlLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUMxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTW9kdWxlV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vbW9kdWxlLXdyYXBwZXIvbW9kdWxlLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4vbW9kYWwuc2VydmljZSc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtNb2R1bGVXcmFwcGVyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLCBcbiAgICBQb3J0YWxNb2R1bGVcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbTW9kdWxlV3JhcHBlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxNb2R1bGUgeyBcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNb2RhbE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTW9kYWxNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtNb2RhbFNlcnZpY2VdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxNb2RhbE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTW9kYWxNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtNb2RhbFNlcnZpY2VdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Overlay, OverlayConfig } from "@angular/cdk/overlay";
|
|
2
|
+
import { ComponentPortal, PortalInjector } from "@angular/cdk/portal";
|
|
3
|
+
import { Injectable, Injector } from "@angular/core";
|
|
4
|
+
import { MODAL_DATA_VAR } from "./modal-constants";
|
|
5
|
+
import { ModalRef } from "./modal-ref";
|
|
6
|
+
import { ModuleWrapperComponent } from "./module-wrapper/module-wrapper.component";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/cdk/overlay";
|
|
9
|
+
export class ModalService {
|
|
10
|
+
constructor(overlay, injector) {
|
|
11
|
+
this.overlay = overlay;
|
|
12
|
+
this.injector = injector;
|
|
13
|
+
}
|
|
14
|
+
show(component, data, options) {
|
|
15
|
+
const positionStrategy = this.calculatePosition(options);
|
|
16
|
+
const { width, height } = options || {};
|
|
17
|
+
const config = new OverlayConfig({
|
|
18
|
+
hasBackdrop: true,
|
|
19
|
+
positionStrategy,
|
|
20
|
+
scrollStrategy: this.overlay.scrollStrategies.noop(),
|
|
21
|
+
width: width,
|
|
22
|
+
height,
|
|
23
|
+
panelClass: "mis-modal",
|
|
24
|
+
backdropClass: "mis-modal-overlay",
|
|
25
|
+
});
|
|
26
|
+
const overlayRef = this.overlay.create(config);
|
|
27
|
+
const modalRef = new ModalRef(overlayRef);
|
|
28
|
+
const injector = this.createInjector(modalRef, this.injector, data);
|
|
29
|
+
const portal = new ComponentPortal(ModuleWrapperComponent, null);
|
|
30
|
+
this.componentInstance = overlayRef.attach(portal);
|
|
31
|
+
if (options === null || options === void 0 ? void 0 : options.closeOnBackdropClick) {
|
|
32
|
+
overlayRef.backdropClick().subscribe(() => modalRef.close());
|
|
33
|
+
}
|
|
34
|
+
this.componentInstance.instance.bindComponent(component, injector);
|
|
35
|
+
return modalRef;
|
|
36
|
+
}
|
|
37
|
+
createInjector(ref, inj, data) {
|
|
38
|
+
const injectorTokens = new WeakMap();
|
|
39
|
+
injectorTokens.set(ModalRef, ref);
|
|
40
|
+
injectorTokens.set(MODAL_DATA_VAR, data);
|
|
41
|
+
return new PortalInjector(inj, injectorTokens);
|
|
42
|
+
}
|
|
43
|
+
calculatePosition(options) {
|
|
44
|
+
const position = this.overlay.position().global().centerHorizontally().centerVertically();
|
|
45
|
+
if (options && screen.width > 600) {
|
|
46
|
+
if (options.top) {
|
|
47
|
+
position.top(options.top);
|
|
48
|
+
}
|
|
49
|
+
if (options.left) {
|
|
50
|
+
position.left(options.left);
|
|
51
|
+
}
|
|
52
|
+
if (options.right) {
|
|
53
|
+
position.right(options.right);
|
|
54
|
+
}
|
|
55
|
+
if (options.bottom) {
|
|
56
|
+
position.bottom(options.bottom);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return position;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
ModalService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ModalService_Factory() { return new ModalService(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i0.INJECTOR)); }, token: ModalService, providedIn: "root" });
|
|
63
|
+
ModalService.decorators = [
|
|
64
|
+
{ type: Injectable, args: [{
|
|
65
|
+
providedIn: "root",
|
|
66
|
+
},] }
|
|
67
|
+
];
|
|
68
|
+
ModalService.ctorParameters = () => [
|
|
69
|
+
{ type: Overlay },
|
|
70
|
+
{ type: Injector }
|
|
71
|
+
];
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL21vZGFsL21vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQWdCLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQWNuRixNQUFNLE9BQU8sWUFBWTtJQUd2QixZQUFvQixPQUFnQixFQUFVLFFBQWtCO1FBQTVDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUVwRSxJQUFJLENBQU8sU0FBMkIsRUFBRSxJQUFRLEVBQUUsT0FBdUI7UUFDdkUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQy9CLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGdCQUFnQjtZQUNoQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7WUFDcEQsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNO1lBQ04sVUFBVSxFQUFFLFdBQVc7WUFDdkIsYUFBYSxFQUFFLG1CQUFtQjtTQUNuQyxDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLG9CQUFvQixFQUFFO1lBQ2pDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDOUQ7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkUsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUNPLGNBQWMsQ0FBSSxHQUFhLEVBQUUsR0FBYSxFQUFFLElBQVE7UUFDOUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQyxjQUFjLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBc0I7UUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUYsSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDakMsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFO2dCQUNmLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzNCO1lBQ0QsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO2dCQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM3QjtZQUNELElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDakIsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0I7WUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2pDO1NBQ0Y7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzs7O1lBdkRGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBbEJ1QixPQUFPO1lBRUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUsIE92ZXJsYXksIE92ZXJsYXlDb25maWcgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBNT0RBTF9EQVRBX1ZBUiB9IGZyb20gXCIuL21vZGFsLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgTW9kYWxSZWYgfSBmcm9tIFwiLi9tb2RhbC1yZWZcIjtcbmltcG9ydCB7IE1vZHVsZVdyYXBwZXJDb21wb25lbnQgfSBmcm9tIFwiLi9tb2R1bGUtd3JhcHBlci9tb2R1bGUtd3JhcHBlci5jb21wb25lbnRcIjtcblxuaW50ZXJmYWNlIElNb2RhbE9wdGlvbnMge1xuICB3aWR0aD86IHN0cmluZztcbiAgaGVpZ2h0Pzogc3RyaW5nO1xuICB0b3A/OiBzdHJpbmc7XG4gIHJpZ2h0Pzogc3RyaW5nO1xuICBib3R0b20/OiBzdHJpbmc7XG4gIGxlZnQ/OiBzdHJpbmc7XG4gIGNsb3NlT25CYWNrZHJvcENsaWNrPzogYm9vbGVhbjtcbn1cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIHByaXZhdGUgY29tcG9uZW50SW5zdGFuY2U6IENvbXBvbmVudFJlZjxNb2R1bGVXcmFwcGVyQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIHNob3c8VCwgRD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBkYXRhPzogRCwgb3B0aW9ucz86IElNb2RhbE9wdGlvbnMpOiBNb2RhbFJlZiB7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuY2FsY3VsYXRlUG9zaXRpb24ob3B0aW9ucyk7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBvcHRpb25zIHx8IHt9O1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ub29wKCksXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICBwYW5lbENsYXNzOiBcIm1pcy1tb2RhbFwiLFxuICAgICAgYmFja2Ryb3BDbGFzczogXCJtaXMtbW9kYWwtb3ZlcmxheVwiLFxuICAgIH0pO1xuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG4gICAgY29uc3QgbW9kYWxSZWYgPSBuZXcgTW9kYWxSZWYob3ZlcmxheVJlZik7XG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yKG1vZGFsUmVmLCB0aGlzLmluamVjdG9yLCBkYXRhKTtcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKE1vZHVsZVdyYXBwZXJDb21wb25lbnQsIG51bGwpO1xuICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBvdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICAgIGlmIChvcHRpb25zPy5jbG9zZU9uQmFja2Ryb3BDbGljaykge1xuICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IG1vZGFsUmVmLmNsb3NlKCkpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlLmluc3RhbmNlLmJpbmRDb21wb25lbnQoY29tcG9uZW50LCBpbmplY3Rvcik7XG4gICAgcmV0dXJuIG1vZGFsUmVmO1xuICB9XG4gIHByaXZhdGUgY3JlYXRlSW5qZWN0b3I8RD4ocmVmOiBNb2RhbFJlZiwgaW5qOiBJbmplY3RvciwgZGF0YT86IEQpOiBQb3J0YWxJbmplY3RvciB7XG4gICAgY29uc3QgaW5qZWN0b3JUb2tlbnMgPSBuZXcgV2Vha01hcCgpO1xuICAgIGluamVjdG9yVG9rZW5zLnNldChNb2RhbFJlZiwgcmVmKTtcbiAgICBpbmplY3RvclRva2Vucy5zZXQoTU9EQUxfREFUQV9WQVIsIGRhdGEpO1xuICAgIHJldHVybiBuZXcgUG9ydGFsSW5qZWN0b3IoaW5qLCBpbmplY3RvclRva2Vucyk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZVBvc2l0aW9uKG9wdGlvbnM6IElNb2RhbE9wdGlvbnMpIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKTtcbiAgICBpZiAob3B0aW9ucyAmJiBzY3JlZW4ud2lkdGggPiA2MDApIHtcbiAgICAgIGlmIChvcHRpb25zLnRvcCkge1xuICAgICAgICBwb3NpdGlvbi50b3Aob3B0aW9ucy50b3ApO1xuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbnMubGVmdCkge1xuICAgICAgICBwb3NpdGlvbi5sZWZ0KG9wdGlvbnMubGVmdCk7XG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy5yaWdodCkge1xuICAgICAgICBwb3NpdGlvbi5yaWdodChvcHRpb25zLnJpZ2h0KTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLmJvdHRvbSkge1xuICAgICAgICBwb3NpdGlvbi5ib3R0b20ob3B0aW9ucy5ib3R0b20pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcG9zaXRpb247XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { trigger, transition, style, animate } from "@angular/animations";
|
|
2
|
+
import { ComponentPortal } from "@angular/cdk/portal";
|
|
3
|
+
import { Component, ViewChild, ViewContainerRef } from "@angular/core";
|
|
4
|
+
export class ModuleWrapperComponent {
|
|
5
|
+
constructor() { }
|
|
6
|
+
bindComponent(type, injector) {
|
|
7
|
+
this.initComponent(type, injector);
|
|
8
|
+
}
|
|
9
|
+
initComponent(type, injector) {
|
|
10
|
+
this.modalPortal = new ComponentPortal(type, this.place, injector);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
ModuleWrapperComponent.decorators = [
|
|
14
|
+
{ type: Component, args: [{
|
|
15
|
+
selector: "mis-module-wrapper",
|
|
16
|
+
template: "<div class=\"mis-modal-body\" #place @slideInOut>\n <ng-template [cdkPortalOutlet]=\"modalPortal\"></ng-template>\n</div>\n",
|
|
17
|
+
animations: [
|
|
18
|
+
trigger("slideInOut", [
|
|
19
|
+
transition(":enter", [
|
|
20
|
+
style({ transform: "translateY(-30%)", opacity: 0 }),
|
|
21
|
+
animate("200ms ease-out", style({ transform: "translatey(0%)", opacity: 1 })),
|
|
22
|
+
]),
|
|
23
|
+
transition(":leave", [animate("200ms ease-out", style({ transform: "translatey(-30%)", opacity: 0 }))]),
|
|
24
|
+
]),
|
|
25
|
+
],
|
|
26
|
+
styles: [".mis-modal-body{display:block;width:100%;height:100%;background-color:transparent;border-radius:12px;box-shadow:0 12px 24px rgba(0,0,0,.12),0 4px 8px rgba(0,0,0,.12);overflow:hidden}"]
|
|
27
|
+
},] }
|
|
28
|
+
];
|
|
29
|
+
ModuleWrapperComponent.ctorParameters = () => [];
|
|
30
|
+
ModuleWrapperComponent.propDecorators = {
|
|
31
|
+
place: [{ type: ViewChild, args: ["place", { static: false, read: ViewContainerRef },] }]
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvbW9kYWwvbW9kdWxlLXdyYXBwZXIvbW9kdWxlLXdyYXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQW9CLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWlCekYsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxnQkFBZSxDQUFDO0lBSWhCLGFBQWEsQ0FBQyxJQUFTLEVBQUUsUUFBd0I7UUFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFTLEVBQUUsUUFBd0I7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDOzs7WUExQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHdJQUE4QztnQkFFOUMsVUFBVSxFQUFFO29CQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7d0JBQ3BCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7NEJBQ3BELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQzlFLENBQUM7d0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN4RyxDQUFDO2lCQUNIOzthQUNGOzs7O29CQUtFLFNBQVMsU0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyaWdnZXIsIHRyYW5zaXRpb24sIHN0eWxlLCBhbmltYXRlIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTW9kYWxSZWYgfSBmcm9tIFwiLi4vbW9kYWwtcmVmXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtaXMtbW9kdWxlLXdyYXBwZXJcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9tb2R1bGUtd3JhcHBlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vbW9kdWxlLXdyYXBwZXIuY29tcG9uZW50LnNjc3NcIl0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKFwic2xpZGVJbk91dFwiLCBbXG4gICAgICB0cmFuc2l0aW9uKFwiOmVudGVyXCIsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWSgtMzAlKVwiLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICBhbmltYXRlKFwiMjAwbXMgZWFzZS1vdXRcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwidHJhbnNsYXRleSgwJSlcIiwgb3BhY2l0eTogMSB9KSksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oXCI6bGVhdmVcIiwgW2FuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiLCBzdHlsZSh7IHRyYW5zZm9ybTogXCJ0cmFuc2xhdGV5KC0zMCUpXCIsIG9wYWNpdHk6IDAgfSkpXSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1vZHVsZVdyYXBwZXJDb21wb25lbnQge1xuICBtb2RhbFBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBAVmlld0NoaWxkKFwicGxhY2VcIiwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHBsYWNlOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGJpbmRDb21wb25lbnQodHlwZTogYW55LCBpbmplY3RvcjogUG9ydGFsSW5qZWN0b3IpIHtcbiAgICB0aGlzLmluaXRDb21wb25lbnQodHlwZSwgaW5qZWN0b3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q29tcG9uZW50KHR5cGU6IGFueSwgaW5qZWN0b3I6IFBvcnRhbEluamVjdG9yKSB7XG4gICAgdGhpcy5tb2RhbFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwodHlwZSwgdGhpcy5wbGFjZSwgaW5qZWN0b3IpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './modal.service';
|
|
2
|
+
export * from './modal-ref';
|
|
3
|
+
export * from './modal-constants';
|
|
4
|
+
export * from './modal.module';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL21vZGFsL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21vZGFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC1yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC1jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC5tb2R1bGUnOyJdfQ==
|
|
@@ -41,7 +41,9 @@ export class TableFilterComponent {
|
|
|
41
41
|
this.searchValue = event.target.value;
|
|
42
42
|
}
|
|
43
43
|
updateFilter(data) {
|
|
44
|
-
this.filtersMap[data.
|
|
44
|
+
if (this.filtersMap[data.name]) {
|
|
45
|
+
this.filtersMap[data.name].checked = !this.filtersMap[data.name].checked;
|
|
46
|
+
}
|
|
45
47
|
}
|
|
46
48
|
getFiltersBasedOnSearchValue() {
|
|
47
49
|
let list = Object.values(this.filtersMap);
|
|
@@ -61,7 +63,7 @@ export class TableFilterComponent {
|
|
|
61
63
|
TableFilterComponent.decorators = [
|
|
62
64
|
{ type: Component, args: [{
|
|
63
65
|
selector: 'mis-table-filter',
|
|
64
|
-
template: "<div id=\"main-container\"\n #mainContainer\n [ngStyle]=\"containerStyles\"\n>\n <div id=\"search-bar-container\">\n <input (keyup)=\"updateSearchValue($event)\" type=\"text\" placeholder=\"Search\">\n <svg id=\"search-icon\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.21496 8.14563C1.21496 4.3179 4.33709 1.21165 8.19249 1.21165C12.0479 1.21165 15.17 4.3179 15.17 8.14563C15.17 9.69308 14.6598 11.1226 13.797 12.2767L12.3684 13.7013C11.2043 14.5668 9.75891 15.0796 8.19249 15.0796C4.33709 15.0796 1.21496 11.9734 1.21496 8.14563ZM12.9419 14.7835C11.602 15.7329 9.96259 16.2913 8.19249 16.2913C3.66965 16.2913 -0.00012207 12.6461 -0.00012207 8.14563C-0.00012207 3.64512 3.66965 0 8.19249 0C12.7153 0 16.3851 3.64512 16.3851 8.14563C16.3851 9.93713 15.8036 11.5931 14.8183 12.9375L16.836 14.4048C17.6704 14.912 18.7553 15.6543 17.2453 17.215C15.7352 18.7756 15.0098 17.6663 14.499 16.8364L12.9419 14.7835Z\" fill=\"#6A737D\"/>\n </svg>\n </div>\n <div id=\"filters-main-container\">\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getCheckedFilters()\">\n <div class=\"filter\">\n <mis-checkbox\n [checked]=\"true\"\n [name]=\"filter.value\"\n (
|
|
66
|
+
template: "<div id=\"main-container\"\n #mainContainer\n [ngStyle]=\"containerStyles\"\n>\n <div id=\"search-bar-container\">\n <input (keyup)=\"updateSearchValue($event)\" type=\"text\" placeholder=\"Search\">\n <svg id=\"search-icon\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M1.21496 8.14563C1.21496 4.3179 4.33709 1.21165 8.19249 1.21165C12.0479 1.21165 15.17 4.3179 15.17 8.14563C15.17 9.69308 14.6598 11.1226 13.797 12.2767L12.3684 13.7013C11.2043 14.5668 9.75891 15.0796 8.19249 15.0796C4.33709 15.0796 1.21496 11.9734 1.21496 8.14563ZM12.9419 14.7835C11.602 15.7329 9.96259 16.2913 8.19249 16.2913C3.66965 16.2913 -0.00012207 12.6461 -0.00012207 8.14563C-0.00012207 3.64512 3.66965 0 8.19249 0C12.7153 0 16.3851 3.64512 16.3851 8.14563C16.3851 9.93713 15.8036 11.5931 14.8183 12.9375L16.836 14.4048C17.6704 14.912 18.7553 15.6543 17.2453 17.215C15.7352 18.7756 15.0098 17.6663 14.499 16.8364L12.9419 14.7835Z\" fill=\"#6A737D\"/>\n </svg>\n </div>\n <div id=\"filters-main-container\">\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getCheckedFilters()\">\n <div class=\"filter\">\n <mis-checkbox\n [checked]=\"true\"\n [name]=\"filter.value\"\n (valueChange)=\"updateFilter($event)\"\n ></mis-checkbox>\n <span class=\"filter-text\">{{filter.name}}</span>\n </div>\n </div>\n </div>\n <div class=\"separator\" style=\"margin: 16px 0px;\" *ngIf=\"getCheckedFilters().length && (getCheckedFilters().length < filtersData.length)\"></div>\n <div class=\"filters-sub-container\">\n <div *ngFor=\"let filter of getFiltersBasedOnSearchValue()\">\n <div class=\"filter\" *ngIf=\"!filter.checked\">\n <mis-checkbox\n [checked]=\"false\"\n [name]=\"filter.value\"\n (valueChange)=\"updateFilter($event)\"\n ></mis-checkbox>\n <span class=\"filter-text\">{{filter.name}}</span>\n </div>\n </div>\n <div id=\"no-results-container\" *ngIf=\"getFiltersBasedOnSearchValue().length < 1\">\n <span class=\"filter-text\">No matches found</span>\n </div>\n </div>\n <div class=\"separator\" style=\"margin: 16px 0px;\"></div>\n <div id=\"buttons-container\">\n <button id=\"reset-btn\" style=\"margin-right: 8px;\" (click)=\"resetFilters()\">Reset</button>\n <button id=\"apply-btn\" (click)=\"applyFilters()\">Apply</button>\n </div>\n </div>\n</div>\n",
|
|
65
67
|
styles: ["#main-container{position:absolute;background:#fff;z-index:2;right:calc(50% - 128px);width:256px;padding:16px;font-family:Lato,sans-serif;box-shadow:0 12px 24px rgba(0,0,0,.12),0 4px 8px rgba(0,0,0,.12);border-radius:8px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#9aa7b4}#search-bar-container{width:100%;position:relative;margin-bottom:8px}input{width:100%;padding:12px 12px 12px 42px;border:1px solid #000;border-radius:4px;height:48px;box-shadow:none;outline:none;font-style:normal;font-weight:400;font-size:15px;line-height:20px;letter-spacing:.1px;color:#181f33}input:focus{border:1px solid #0937b2}#search-icon{position:absolute;top:15px;left:12px}.filters-sub-container{max-height:144px;overflow-y:auto}.filter{height:36px;display:flex;justify-content:flex-start;align-items:center}.filter-text{font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#no-results-container{height:36px;display:flex;justify-content:center;align-items:center}.separator{border:1px solid #e0e0e0}#buttons-container{display:flex;justify-content:center;align-items:center}button{width:calc(50% - 4px);border:none;box-shadow:none;outline:none;font-size:16px;line-height:24px;text-align:center;letter-spacing:.2px;padding:10px 30px;background:none;border-radius:8px}#apply-btn{background:#0937b2;color:#fff}#reset-btn{background:#fff;color:#0937b2}"]
|
|
66
68
|
},] }
|
|
67
69
|
];
|
|
@@ -72,4 +74,4 @@ TableFilterComponent.propDecorators = {
|
|
|
72
74
|
filtersApplied: [{ type: Output }],
|
|
73
75
|
container: [{ type: ViewChild, args: ['mainContainer',] }]
|
|
74
76
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3RhYmxlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE1BQU0sT0FBTyxvQkFBb0I7SUFXL0I7UUFWUyxnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFDaEMsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFFekIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBSW5ELGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFnRHpCLFdBQU0sR0FBRyxDQUFDLENBQWUsRUFBRSxDQUFlLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUk7Z0JBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJO2dCQUFFLE9BQU8sQ0FBQyxDQUFDOztnQkFDOUIsT0FBTyxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBbERjLENBQUM7SUFFakIsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUN0QyxNQUFNLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ2hELEdBQUcsQ0FBQyxDQUFDLE1BQW9CLEVBQUUsRUFBRTtZQUM1QixPQUFPO2dCQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUNELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQzFFO0lBQ0gsQ0FBQztJQUNELDRCQUE0QjtRQUMxQixJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQW9CLEVBQUUsRUFBRTtZQUMxQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLElBQUksR0FBRyxJQUFJO2FBQ1IsTUFBTSxDQUFDLENBQUMsTUFBb0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7O1lBN0RGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixpM0ZBQW9DOzthQUVyQzs7OzswQkFFRSxLQUFLOzhCQUNMLEtBQUs7NkJBRUwsTUFBTTt3QkFFTixTQUFTLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21pcy10YWJsZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJ2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmaWx0ZXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGZpbHRlcnNEYXRhOiBBcnJheTxGaWx0ZXI+ID0gW107XG4gIEBJbnB1dCgpIGNvbnRhaW5lclN0eWxlczogYW55ID0ge307XG5cbiAgQE91dHB1dCgpIGZpbHRlcnNBcHBsaWVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZCgnbWFpbkNvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBmaWx0ZXJzTWFwOiBhbnkgPSB7fTtcbiAgc2VhcmNoVmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzRGF0YS5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyc01hcFtmaWx0ZXIudmFsdWVdID0gZmlsdGVyO1xuICAgIH0pO1xuICB9XG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlcnNEYXRhLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJzTWFwW2ZpbHRlci52YWx1ZV0uY2hlY2tlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyc0FwcGxpZWQuZW1pdChbXSk7XG4gIH1cbiAgYXBwbHlGaWx0ZXJzKCkge1xuICAgIGxldCBsaXN0ID0gT2JqZWN0LnZhbHVlcyh0aGlzLmZpbHRlcnNNYXApXG4gICAgICAuZmlsdGVyKChmaWx0ZXI6IEZpbHRlciB8IGFueSkgPT4gZmlsdGVyLmNoZWNrZWQpXG4gICAgICAubWFwKChmaWx0ZXI6IEZpbHRlciB8IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGZpbHRlci5uYW1lLFxuICAgICAgICAgIHZhbHVlOiBmaWx0ZXIudmFsdWUsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB0aGlzLmZpbHRlcnNBcHBsaWVkLmVtaXQobGlzdCk7XG4gIH1cbiAgdXBkYXRlU2VhcmNoVmFsdWUoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gIH1cbiAgdXBkYXRlRmlsdGVyKGRhdGE6IGFueSkge1xuICAgIGlmICh0aGlzLmZpbHRlcnNNYXBbZGF0YS5uYW1lXSkge1xuICAgICAgdGhpcy5maWx0ZXJzTWFwW2RhdGEubmFtZV0uY2hlY2tlZCA9ICF0aGlzLmZpbHRlcnNNYXBbZGF0YS5uYW1lXS5jaGVja2VkO1xuICAgIH1cbiAgfVxuICBnZXRGaWx0ZXJzQmFzZWRPblNlYXJjaFZhbHVlKCk6IEZpbHRlcltdIHwgYW55IHtcbiAgICBsZXQgbGlzdCA9IE9iamVjdC52YWx1ZXModGhpcy5maWx0ZXJzTWFwKTtcbiAgICBsaXN0ID0gbGlzdC5maWx0ZXIoKGZpbHRlcjogRmlsdGVyIHwgYW55KSA9PiB7XG4gICAgICByZXR1cm4gZmlsdGVyLm5hbWUubWF0Y2gobmV3IFJlZ0V4cCh0aGlzLnNlYXJjaFZhbHVlLCAnaScpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbGlzdC5zb3J0KHRoaXMubXlTb3J0KTtcbiAgfVxuICBnZXRDaGVja2VkRmlsdGVycygpOiBGaWx0ZXJbXSB8IGFueSB7XG4gICAgbGV0IGxpc3QgPSBPYmplY3QudmFsdWVzKHRoaXMuZmlsdGVyc01hcCk7XG4gICAgbGlzdCA9IGxpc3RcbiAgICAgIC5maWx0ZXIoKGZpbHRlcjogRmlsdGVyIHwgYW55KSA9PiBmaWx0ZXIuY2hlY2tlZClcbiAgICAgIC5zb3J0KHRoaXMubXlTb3J0KTtcbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuICBteVNvcnQgPSAoYTogRmlsdGVyIHwgYW55LCBiOiBGaWx0ZXIgfCBhbnkpID0+IHtcbiAgICBpZiAoYS5uYW1lIDwgYi5uYW1lKSByZXR1cm4gLTE7XG4gICAgZWxzZSBpZiAoYi5uYW1lIDwgYS5uYW1lKSByZXR1cm4gMTtcbiAgICBlbHNlIHJldHVybiAwO1xuICB9O1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGNoZWNrZWQ6IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -168,7 +168,7 @@ export class TableComponent {
|
|
|
168
168
|
TableComponent.decorators = [
|
|
169
169
|
{ type: Component, args: [{
|
|
170
170
|
selector: 'mis-table',
|
|
171
|
-
template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div #table id=\"table-container\" [ngClass]=\"{ 'scrollbar': expandedIndex < 0, 'no-scrollbar': !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\">\n <div\n [ngStyle]=\"{\n 'min-height': getColHeadersRowHeight(),\n 'border-top': getColHeadersRowBorderTop(),\n 'border-bottom': getColHeadersRowBorderBottom()\n }\"\n id=\"col-headers-container\"\n >\n <div\n #
|
|
171
|
+
template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth(),\n 'overflow-x': config.canScrollHorizontally ? 'auto' : 'unset'\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n ></mis-table-filter>\n <div #table id=\"table-container\" [ngClass]=\"{ 'scrollbar': expandedIndex < 0, 'no-scrollbar': !(expandedIndex < 0), 'scroll-horizontally': config.canScrollHorizontally }\">\n <div\n [ngStyle]=\"{\n 'min-height': getColHeadersRowHeight(),\n 'border-top': getColHeadersRowBorderTop(),\n 'border-bottom': getColHeadersRowBorderBottom()\n }\"\n id=\"col-headers-container\"\n >\n <div\n #colHeaderRef\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent ? colHeader?.style?.justifyContent :\n colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\">\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"\n filterData = colHeader.filters;\n toggleFilter(colHeader.data);\n $event.stopPropagation()\n \"\n *ngIf=\"\n colHeader?.type !== 'custom' &&\n colHeader?.filters &&\n colHeader?.filters?.length > 0\n \"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg\n fill=\"none\"\n height=\"10\"\n viewBox=\"0 0 13 10\"\n width=\"13\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div class=\"row-wrapper\" *ngFor=\"let row of tableData; let i = index\">\n <div class=\"t-row\" [ngStyle]=\"{'min-height': (config?.rowConfig?.height) ? config.rowConfig.height: '44px'}\">\n <div\n (click)=\"\n config?.colConfig[i]?.action\n ? config?.colConfig[i]?.action(col)\n : null\n \"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i].action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent ? config.colConfig[i]?.style?.justifyContent :\n config.colConfig[i].type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\">\n <p\n *ngIf=\"config.colConfig[i].type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color\n ? config?.colConfig[i]?.style?.color\n : ''\n }\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i].type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div\n style=\"\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n \"\n >\n Loading...\n </div>\n </ng-container>\n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div\n style=\"\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n \"\n >\n No Data Available...\n </div>\n </ng-container>\n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.paginationConfig\" id=\"pagination-container\">\n <p id=\"pagination-text\">\n Showing\n {{ (selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (selectedPage - 1) * config.paginationConfig.rowsPerPage +\n tableData.length\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(selectedPage - 1)\" class=\"page\">\n <svg\n fill=\"none\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n width=\"7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div style=\"display: flex\">\n <span class=\"dot\" style=\"margin-right: 4px\"></span>\n <span class=\"dot\" style=\"margin-right: 4px\"></span>\n <span class=\"dot\"></span>\n </div>\n </span>\n </div>\n <span (click)=\"updateSelectedPage(selectedPage + 1)\" class=\"page\">\n <svg\n fill=\"none\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n width=\"7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n",
|
|
172
172
|
styles: ["#main-container{font-family:Lato,sans-serif;position:relative}.no-scrollbar::-webkit-scrollbar{width:0}.scrollbar::-webkit-scrollbar{width:8px;height:8px}.scrollbar::-webkit-scrollbar-thumb{background:#9aa7b4}#table-container{height:inherit;overflow-y:auto}.scroll-horizontally{height:inherit;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;overflow-y:unset!important;overflow-x:visible}#col-headers-container{display:flex;align-items:center;position:-webkit-sticky;position:sticky;background-color:#fff;width:100%;z-index:1;min-height:44px;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;height:100%}.col-header,.col-header-text{display:flex;align-items:center}.col-header-text{font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.2px;margin:0}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:4px;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;align-items:center;min-height:44px;background-color:#fff;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#f1fdf8}.t-col-container{padding:0 16px;height:100%}.t-col{height:100%}.t-col,.t-col-text{display:flex;align-items:center}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;margin:0}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;cursor:pointer}.page,.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}"]
|
|
173
173
|
},] }
|
|
174
174
|
];
|
|
@@ -178,7 +178,7 @@ TableComponent.ctorParameters = () => [
|
|
|
178
178
|
TableComponent.propDecorators = {
|
|
179
179
|
filtersUpdated: [{ type: Output }],
|
|
180
180
|
filter: [{ type: ViewChild, args: ['filter',] }],
|
|
181
|
-
colHeaders: [{ type: ViewChildren, args: ['
|
|
181
|
+
colHeaders: [{ type: ViewChildren, args: ['colHeaderRef',] }],
|
|
182
182
|
pageSelected: [{ type: Output }],
|
|
183
183
|
config: [{ type: Input, args: ['tableConfig',] }],
|
|
184
184
|
subTableconfig: [{ type: Input }],
|
|
@@ -189,4 +189,4 @@ TableComponent.propDecorators = {
|
|
|
189
189
|
subTableDataLoading: [{ type: Input }],
|
|
190
190
|
table: [{ type: ViewChild, args: ['table',] }]
|
|
191
191
|
};
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFRdkIsTUFBTSxPQUFPLGNBQWM7SUE4QnpCLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUE3QnZDLDJCQUEyQjtRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFDL0IsMEJBQXFCLEdBQVEsRUFBRSxDQUFDO1FBQ2hDLG1CQUFjLEdBQ1osRUFBRSxDQUFDO1FBQ0ssbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFFdkMsQ0FBQztRQUtMLCtCQUErQjtRQUMvQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUVoQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFNM0MsY0FBUyxHQUFzQixFQUFFLENBQUM7UUFDbEMsaUJBQVksR0FBc0IsRUFBRSxDQUFDO0lBSUosQ0FBQztJQUUzQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1lBQ2hDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixLQUFLLFNBQVMsRUFBRTtZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztT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LEtBQUs7K0JBQ0wsS0FBSzs0QkFDTCxLQUFLO3dCQUNMLEtBQUs7MkJBQ0wsS0FBSztrQ0FDTCxLQUFLO29CQUNMLFNBQVMsU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlciwgVGFibGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICd0YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0YWJsZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgLy8gRmlsdGVyIHJlbGF0ZWQgdmFyaWFibGVzXG4gIHNob3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyTmFtZTogc3RyaW5nID0gJyc7XG4gIGZpbHRlckRhdGE6IEFycmF5PEZpbHRlcj4gPSBbXTtcbiAgZmlsdGVyQ29udGFpbmVyU3R5bGVzOiBhbnkgPSB7fTtcbiAgYXBwbGllZEZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4gfSA9XG4gICAge307XG4gIEBPdXRwdXQoKSBmaWx0ZXJzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIFtrZXk6IHN0cmluZ106IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+O1xuICB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlcjogVGFibGVGaWx0ZXJDb21wb25lbnQgfCBhbnk7XG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbEhlYWRlcicpIGNvbEhlYWRlcnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPiB8IGFueTtcblxuICAvLyBQYWdpbmF0aW9uIHJlbGF0ZWQgdmFyaWFibGVzXG4gIHNlbGVjdGVkUGFnZSA9IDE7XG4gIHBhZ2VzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgQE91dHB1dCgpIHBhZ2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBJbnB1dCgndGFibGVDb25maWcnKSBjb25maWc6IFRhYmxlQ29uZmlnIHwgYW55O1xuICBASW5wdXQoKSBzdWJUYWJsZWNvbmZpZzogVGFibGVDb25maWcgfCBhbnk7XG4gIEBJbnB1dCgpIHRhYmxlRGF0YUxvYWRpbmc6IGJvb2xlYW4gfCBhbnk7XG4gIEBJbnB1dCgpIGV4cGFuZGVkSW5kZXg6IG51bWJlciB8IGFueTtcbiAgQElucHV0KCkgdGFibGVEYXRhOiBBcnJheTxBcnJheTxhbnk+PiA9IFtdO1xuICBASW5wdXQoKSBzdWJUYWJsZURhdGE6IEFycmF5PEFycmF5PGFueT4+ID0gW107XG4gIEBJbnB1dCgpIHN1YlRhYmxlRGF0YUxvYWRpbmc6IGJvb2xlYW4gfCBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU6IEVsZW1lbnRSZWYgfCBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZpbHRlcnMoKVxuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVQYWdpbmF0aW9uKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbmZpZy5jYW5TY3JvbGxIb3Jpem9udGFsbHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb25maWcuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5ID0gZmFsc2U7XG4gICAgfVxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5maWx0ZXIpIHtcbiAgICAgICAgbGV0IGlzQ2hlY2tCb3hDbGlja2VkID0gZmFsc2U7XG4gICAgICAgIGxldCB0YXJnZXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxTcGFuRWxlbWVudDtcbiAgICAgICAgaWYgKHRhcmdldEVsZW1lbnQuY2xhc3NOYW1lID09PSAnY2hlY2ttYXJrJykge1xuICAgICAgICAgIGlzQ2hlY2tCb3hDbGlja2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaXNDbGlja0luc2lkZUVsZW1lbnQgPSB0aGlzLmZpbHRlci5jb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhcbiAgICAgICAgICBldmVudC50YXJnZXRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFpc0NsaWNrSW5zaWRlRWxlbWVudCAmJiAhaXNDaGVja0JveENsaWNrZWQpIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZUZpbHRlcih0aGlzLmZpbHRlck5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICBsZXQgaGVpZ2h0ID0gdGhpcy50YWJsZS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIHRoaXMudGFibGUubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgIChoZWlnaHQgLSA1NikgKyAncHgnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZpbHRlciByZWxhdGVkIGZ1bmN0aW9uc1xuICBpbml0aWFsaXplRmlsdGVycygpe1xuICAgIGZvcihsZXQgY29sSGVhZGVyIG9mIHRoaXMuY29uZmlnLmNvbEhlYWRlckNvbmZpZyl7XG4gICAgICBpZihjb2xIZWFkZXIuZmlsdGVycyl7XG4gICAgICAgIGxldCBmaWx0ZXJzID0gW11cbiAgICAgICAgZm9yKGxldCBmaWx0ZXIgb2YgY29sSGVhZGVyLmZpbHRlcnMpe1xuICAgICAgICAgIGlmKGZpbHRlci5jaGVja2VkKXtcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGZpbHRlci5uYW1lLFxuICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyLnZhbHVlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZihmaWx0ZXJzLmxlbmd0aCA+IDApIHRoaXMuYXBwbGllZEZpbHRlcnNbY29sSGVhZGVyLmRhdGFdID0gZmlsdGVyc1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB0b2dnbGVGaWx0ZXIoZmlsdGVyTmFtZTogc3RyaW5nKXtcbiAgICBpZighdGhpcy5zaG93RmlsdGVyKXtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IGZpbHRlck5hbWVcbiAgICAgIHRoaXMuc2hvd0ZpbHRlciA9IHRydWVcblxuICAgICAgbGV0IG9mZlNldCA9IDA7XG4gICAgICBsZXQgY29sSGVhZGVyc1JldmVyc2VkID0gdGhpcy5jb2xIZWFkZXJzLnRvQXJyYXkoKS5yZXZlcnNlKCk7XG5cbiAgICAgIGZvciAobGV0IGhlYWRlciBvZiBjb2xIZWFkZXJzUmV2ZXJzZWQpIHtcbiAgICAgICAgaWYgKGhlYWRlci5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCA9PT0gZmlsdGVyTmFtZSkgYnJlYWs7XG4gICAgICAgIG9mZlNldCArPSBoZWFkZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsdGVyQ29udGFpbmVyU3R5bGVzID0ge1xuICAgICAgICB0b3A6ICc0NHB4JyxcbiAgICAgICAgcmlnaHQ6IG9mZlNldCA+IDAgPyBvZmZTZXQgLSAxMTYgKyAncHgnIDogJzEycHgnLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJOYW1lID0gJyc7XG4gICAgICB0aGlzLmZpbHRlckRhdGEgPSBbXTtcbiAgICAgIHRoaXMuc2hvd0ZpbHRlciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICB1cGRhdGVBcHBsaWVkRmlsdGVycyhhcHBsaWVkRmlsdGVyczogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4pIHtcbiAgICBpZiAoYXBwbGllZEZpbHRlcnMubGVuZ3RoID09IDApIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmFwcGxpZWRGaWx0ZXJzW3RoaXMuZmlsdGVyTmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNbdGhpcy5maWx0ZXJOYW1lXSA9IGFwcGxpZWRGaWx0ZXJzO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlcnNVcGRhdGVkLmVtaXQoeyAuLi50aGlzLmFwcGxpZWRGaWx0ZXJzIH0pO1xuICAgIHRoaXMudG9nZ2xlRmlsdGVyKHRoaXMuZmlsdGVyTmFtZSk7XG4gIH1cblxuICAvLyBQYWdpbmF0aW9uIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGluaXRpYWxpemVQYWdpbmF0aW9uKCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICBsZXQgbGVuID0gdGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZy5ub09mUGFnZXM7XG4gICAgICBpZiAobGVuIDw9IDcpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbGVuOyBpKyspIHtcbiAgICAgICAgICB0aGlzLnBhZ2VzLnB1c2goaSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbMSwgMiwgMywgNCwgMCwgbGVuXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdXBkYXRlU2VsZWN0ZWRQYWdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIGlmIChwYWdlTnVtYmVyIDwgMSB8fCBwYWdlTnVtYmVyID4gdGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZy5ub09mUGFnZXMpXG4gICAgICByZXR1cm47XG4gICAgdGhpcy5zZWxlY3RlZFBhZ2UgPSBwYWdlTnVtYmVyO1xuICAgIGxldCBsZW4gPSB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLm5vT2ZQYWdlcztcbiAgICBpZiAobGVuID4gNykge1xuICAgICAgaWYgKHBhZ2VOdW1iZXIgLSAyIDw9IDEpIHtcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsxLCAyLCAzLCA0LCAwLCBsZW5dO1xuICAgICAgfSBlbHNlIGlmIChwYWdlTnVtYmVyIC0gMiA+IDEgJiYgcGFnZU51bWJlciArIDIgPCBsZW4pIHtcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsxLCAwLCBwYWdlTnVtYmVyIC0gMSwgcGFnZU51bWJlciwgcGFnZU51bWJlciArIDEsIDAsIGxlbl07XG4gICAgICB9IGVsc2UgaWYgKHBhZ2VOdW1iZXIgKyAyID49IGxlbikge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDAsIGxlbiAtIDMsIGxlbiAtIDIsIGxlbiAtIDEsIGxlbl07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucGFnZVNlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZFBhZ2UpO1xuICB9XG5cbiAgLy8gTWFpbiBjb250YWluZXIgcmVsYXRlZCBmdW5jdGlvbnNcbiAgZ2V0Q29udGFpbmVySGVpZ2h0KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5oZWlnaHQpIHJldHVybiB0aGlzLmNvbmZpZy5oZWlnaHQ7XG4gICAgZWxzZSByZXR1cm4gJyc7XG4gIH1cbiAgZ2V0Q29udGFpbmVyV2lkdGgoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLndpZHRoKSByZXR1cm4gdGhpcy5jb25maWcud2lkdGg7XG4gICAgZWxzZSByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBDb2x1bW4gSGVhZGVycyByZWxhdGVkIGZ1bmN0aW9uc1xuICBnZXRDb2xIZWFkZXJzUm93SGVpZ2h0KCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcgJiZcbiAgICAgIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcuaGVpZ2h0XG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZy5oZWlnaHQ7XG4gICAgfSBlbHNlIHJldHVybiAnNDRweCc7XG4gIH1cbiAgZ2V0Q29sSGVhZGVyc1Jvd0JvcmRlclRvcCgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmNvbmZpZy5jb2xIZWFkZXJzUm93Q29uZmlnICYmXG4gICAgICB0aGlzLmNvbmZpZy5jb2xIZWFkZXJzUm93Q29uZmlnLnN0eWxlPy5ib3JkZXJUb3BcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5jb2xIZWFkZXJzUm93Q29uZmlnLnN0eWxlPy5ib3JkZXJUb3A7XG4gICAgfSBlbHNlIHJldHVybiAnJztcbiAgfVxuICBnZXRDb2xIZWFkZXJzUm93Qm9yZGVyQm90dG9tKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcgJiZcbiAgICAgIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcuc3R5bGU/LmJvcmRlckJvdHRvbVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcuc3R5bGU/LmJvcmRlckJvdHRvbTtcbiAgICB9IGVsc2UgcmV0dXJuICcxcHggc29saWQgI0UwRTBFMCc7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbmZpZyB7XG4gIGhlaWdodDogc3RyaW5nIHwgJzEwMCUnO1xuICB3aWR0aDogc3RyaW5nIHwgJzEwMCUnO1xuICBwYWdpbmF0aW9uQ29uZmlnPzogUGFnaW5hdGlvbkNvbmZpZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIGNvbEhlYWRlcnNSb3dDb25maWc6IFJvd0NvbmZpZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIHJvd0NvbmZpZzogUm93Q29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgY29sSGVhZGVyQ29uZmlnOiBBcnJheTxDb2xIZWFkZXJDb25maWc+O1xuICBjb2xDb25maWc6IEFycmF5PENvbENvbmZpZz47XG4gIGNhbkV4cGFuZD86IGJvb2xlYW4gfCBmYWxzZTtcbiAgY2FuU2Nyb2xsSG9yaXpvbnRhbGx5PzogYm9vbGVhbiB8IGZhbHNlO1xufVxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uQ29uZmlnIHtcbiAgbm9PZlBhZ2VzOiBudW1iZXI7XG4gIHJvd3NQZXJQYWdlOiBudW1iZXI7XG4gIHRvdGFsTm9PZlJvd3M6IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUm93Q29uZmlnIHtcbiAgaGVpZ2h0Pzogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgc3R5bGU/OiB7fTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29sSGVhZGVyQ29uZmlnIHtcbiAgdHlwZTogJ3RleHQnIHwgJ251bWJlcicgfCAnY3VzdG9tJztcbiAgZGF0YTogYW55O1xuICBjb21wb25lbnRSZWY/OiBhbnk7XG4gIGZpbHRlcnM/OiBBcnJheTxGaWx0ZXI+IHwgbnVsbDtcbiAgc3R5bGU/OiB7fTtcbiAgYWN0aW9uPzogYW55O1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2xDb25maWcge1xuICB0eXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdjdXN0b20nO1xuICBjb21wb25lbnRSZWY/OiBhbnk7XG4gIHN0eWxlPzoge307XG4gIGFjdGlvbj86IGFueTtcbn1cbiJdfQ==
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFRdkIsTUFBTSxPQUFPLGNBQWM7SUE4QnpCLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUE3QnZDLDJCQUEyQjtRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFDL0IsMEJBQXFCLEdBQVEsRUFBRSxDQUFDO1FBQ2hDLG1CQUFjLEdBQ1osRUFBRSxDQUFDO1FBQ0ssbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFFdkMsQ0FBQztRQUtMLCtCQUErQjtRQUMvQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUVoQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFNM0MsY0FBUyxHQUFzQixFQUFFLENBQUM7UUFDbEMsaUJBQVksR0FBc0IsRUFBRSxDQUFDO0lBSUgsQ0FBQztJQUU1QyxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1lBQ2hDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixLQUFLLFNBQVMsRUFBRTtZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztT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LEtBQUs7K0JBQ0wsS0FBSzs0QkFDTCxLQUFLO3dCQUNMLEtBQUs7MkJBQ0wsS0FBSztrQ0FDTCxLQUFLO29CQUNMLFNBQVMsU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlciwgVGFibGVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWlzLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICd0YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0YWJsZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgLy8gRmlsdGVyIHJlbGF0ZWQgdmFyaWFibGVzXG4gIHNob3dGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyTmFtZTogc3RyaW5nID0gJyc7XG4gIGZpbHRlckRhdGE6IEFycmF5PEZpbHRlcj4gPSBbXTtcbiAgZmlsdGVyQ29udGFpbmVyU3R5bGVzOiBhbnkgPSB7fTtcbiAgYXBwbGllZEZpbHRlcnM6IHsgW2tleTogc3RyaW5nXTogQXJyYXk8eyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4gfSA9XG4gICAge307XG4gIEBPdXRwdXQoKSBmaWx0ZXJzVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIFtrZXk6IHN0cmluZ106IEFycmF5PHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+O1xuICB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlcjogVGFibGVGaWx0ZXJDb21wb25lbnQgfCBhbnk7XG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbEhlYWRlclJlZicpIGNvbEhlYWRlcnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPiB8IGFueTtcblxuICAvLyBQYWdpbmF0aW9uIHJlbGF0ZWQgdmFyaWFibGVzXG4gIHNlbGVjdGVkUGFnZSA9IDE7XG4gIHBhZ2VzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgQE91dHB1dCgpIHBhZ2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBJbnB1dCgndGFibGVDb25maWcnKSBjb25maWc6IFRhYmxlQ29uZmlnIHwgYW55O1xuICBASW5wdXQoKSBzdWJUYWJsZWNvbmZpZzogVGFibGVDb25maWcgfCBhbnk7XG4gIEBJbnB1dCgpIHRhYmxlRGF0YUxvYWRpbmc6IGJvb2xlYW4gfCBhbnk7XG4gIEBJbnB1dCgpIGV4cGFuZGVkSW5kZXg6IG51bWJlciB8IGFueTtcbiAgQElucHV0KCkgdGFibGVEYXRhOiBBcnJheTxBcnJheTxhbnk+PiA9IFtdO1xuICBASW5wdXQoKSBzdWJUYWJsZURhdGE6IEFycmF5PEFycmF5PGFueT4+ID0gW107XG4gIEBJbnB1dCgpIHN1YlRhYmxlRGF0YUxvYWRpbmc6IGJvb2xlYW4gfCBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGU6IEVsZW1lbnRSZWYgfCBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJzKClcbiAgICBpZiAodGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgdGhpcy5pbml0aWFsaXplUGFnaW5hdGlvbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29uZmlnLmNhblNjcm9sbEhvcml6b250YWxseSA9IGZhbHNlO1xuICAgIH1cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICAgIGxldCBpc0NoZWNrQm94Q2xpY2tlZCA9IGZhbHNlO1xuICAgICAgICBsZXQgdGFyZ2V0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MU3BhbkVsZW1lbnQ7XG4gICAgICAgIGlmICh0YXJnZXRFbGVtZW50LmNsYXNzTmFtZSA9PT0gJ2NoZWNrbWFyaycpIHtcbiAgICAgICAgICBpc0NoZWNrQm94Q2xpY2tlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGlzQ2xpY2tJbnNpZGVFbGVtZW50ID0gdGhpcy5maWx0ZXIuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoXG4gICAgICAgICAgZXZlbnQudGFyZ2V0XG4gICAgICAgICk7XG4gICAgICAgIGlmICghaXNDbGlja0luc2lkZUVsZW1lbnQgJiYgIWlzQ2hlY2tCb3hDbGlja2VkKSB7XG4gICAgICAgICAgdGhpcy50b2dnbGVGaWx0ZXIodGhpcy5maWx0ZXJOYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcucGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgbGV0IGhlaWdodCA9IHRoaXMudGFibGUubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICB0aGlzLnRhYmxlLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICdoZWlnaHQnLFxuICAgICAgICAoaGVpZ2h0IC0gNTYpICsgJ3B4J1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBGaWx0ZXIgcmVsYXRlZCBmdW5jdGlvbnNcbiAgaW5pdGlhbGl6ZUZpbHRlcnMoKSB7XG4gICAgZm9yIChsZXQgY29sSGVhZGVyIG9mIHRoaXMuY29uZmlnLmNvbEhlYWRlckNvbmZpZykge1xuICAgICAgaWYgKGNvbEhlYWRlci5maWx0ZXJzKSB7XG4gICAgICAgIGxldCBmaWx0ZXJzID0gW11cbiAgICAgICAgZm9yIChsZXQgZmlsdGVyIG9mIGNvbEhlYWRlci5maWx0ZXJzKSB7XG4gICAgICAgICAgaWYgKGZpbHRlci5jaGVja2VkKSB7XG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgICBuYW1lOiBmaWx0ZXIubmFtZSxcbiAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlci52YWx1ZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlcnMubGVuZ3RoID4gMCkgdGhpcy5hcHBsaWVkRmlsdGVyc1tjb2xIZWFkZXIuZGF0YV0gPSBmaWx0ZXJzXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHRvZ2dsZUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuc2hvd0ZpbHRlcikge1xuICAgICAgdGhpcy5maWx0ZXJOYW1lID0gZmlsdGVyTmFtZVxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZVxuXG4gICAgICBsZXQgb2ZmU2V0ID0gMDtcbiAgICAgIGxldCBjb2xIZWFkZXJzUmV2ZXJzZWQgPSB0aGlzLmNvbEhlYWRlcnMudG9BcnJheSgpLnJldmVyc2UoKTtcblxuICAgICAgZm9yIChsZXQgaGVhZGVyIG9mIGNvbEhlYWRlcnNSZXZlcnNlZCkge1xuICAgICAgICBpZiAoaGVhZGVyLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0ID09PSBmaWx0ZXJOYW1lKSBicmVhaztcbiAgICAgICAgb2ZmU2V0ICs9IGhlYWRlci5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgfVxuICAgICAgdGhpcy5maWx0ZXJDb250YWluZXJTdHlsZXMgPSB7XG4gICAgICAgIHRvcDogJzQ0cHgnLFxuICAgICAgICByaWdodDogb2ZmU2V0ID4gMCA/IG9mZlNldCAtIDExNiArICdweCcgOiAnMTJweCcsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlck5hbWUgPSAnJztcbiAgICAgIHRoaXMuZmlsdGVyRGF0YSA9IFtdO1xuICAgICAgdGhpcy5zaG93RmlsdGVyID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHVwZGF0ZUFwcGxpZWRGaWx0ZXJzKGFwcGxpZWRGaWx0ZXJzOiBBcnJheTx7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9Pikge1xuICAgIGlmIChhcHBsaWVkRmlsdGVycy5sZW5ndGggPT0gMCkge1xuICAgICAgZGVsZXRlIHRoaXMuYXBwbGllZEZpbHRlcnNbdGhpcy5maWx0ZXJOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyc1t0aGlzLmZpbHRlck5hbWVdID0gYXBwbGllZEZpbHRlcnM7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyc1VwZGF0ZWQuZW1pdCh7IC4uLnRoaXMuYXBwbGllZEZpbHRlcnMgfSk7XG4gICAgdGhpcy50b2dnbGVGaWx0ZXIodGhpcy5maWx0ZXJOYW1lKTtcbiAgfVxuXG4gIC8vIFBhZ2luYXRpb24gcmVsYXRlZCBmdW5jdGlvbnNcbiAgaW5pdGlhbGl6ZVBhZ2luYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcpIHtcbiAgICAgIGxldCBsZW4gPSB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLm5vT2ZQYWdlcztcbiAgICAgIGlmIChsZW4gPD0gNykge1xuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBsZW47IGkrKykge1xuICAgICAgICAgIHRoaXMucGFnZXMucHVzaChpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsxLCAyLCAzLCA0LCAwLCBsZW5dO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB1cGRhdGVTZWxlY3RlZFBhZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XG4gICAgaWYgKHBhZ2VOdW1iZXIgPCAxIHx8IHBhZ2VOdW1iZXIgPiB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uQ29uZmlnLm5vT2ZQYWdlcylcbiAgICAgIHJldHVybjtcbiAgICB0aGlzLnNlbGVjdGVkUGFnZSA9IHBhZ2VOdW1iZXI7XG4gICAgbGV0IGxlbiA9IHRoaXMuY29uZmlnLnBhZ2luYXRpb25Db25maWcubm9PZlBhZ2VzO1xuICAgIGlmIChsZW4gPiA3KSB7XG4gICAgICBpZiAocGFnZU51bWJlciAtIDIgPD0gMSkge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDIsIDMsIDQsIDAsIGxlbl07XG4gICAgICB9IGVsc2UgaWYgKHBhZ2VOdW1iZXIgLSAyID4gMSAmJiBwYWdlTnVtYmVyICsgMiA8IGxlbikge1xuICAgICAgICB0aGlzLnBhZ2VzID0gWzEsIDAsIHBhZ2VOdW1iZXIgLSAxLCBwYWdlTnVtYmVyLCBwYWdlTnVtYmVyICsgMSwgMCwgbGVuXTtcbiAgICAgIH0gZWxzZSBpZiAocGFnZU51bWJlciArIDIgPj0gbGVuKSB7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbMSwgMCwgbGVuIC0gMywgbGVuIC0gMiwgbGVuIC0gMSwgbGVuXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wYWdlU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkUGFnZSk7XG4gIH1cblxuICAvLyBNYWluIGNvbnRhaW5lciByZWxhdGVkIGZ1bmN0aW9uc1xuICBnZXRDb250YWluZXJIZWlnaHQoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmhlaWdodCkgcmV0dXJuIHRoaXMuY29uZmlnLmhlaWdodDtcbiAgICBlbHNlIHJldHVybiAnJztcbiAgfVxuICBnZXRDb250YWluZXJXaWR0aCgpIHtcbiAgICBpZiAodGhpcy5jb25maWcud2lkdGgpIHJldHVybiB0aGlzLmNvbmZpZy53aWR0aDtcbiAgICBlbHNlIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIENvbHVtbiBIZWFkZXJzIHJlbGF0ZWQgZnVuY3Rpb25zXG4gIGdldENvbEhlYWRlcnNSb3dIZWlnaHQoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZyAmJlxuICAgICAgdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZy5oZWlnaHRcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5jb2xIZWFkZXJzUm93Q29uZmlnLmhlaWdodDtcbiAgICB9IGVsc2UgcmV0dXJuICc0NHB4JztcbiAgfVxuICBnZXRDb2xIZWFkZXJzUm93Qm9yZGVyVG9wKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcgJiZcbiAgICAgIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcuc3R5bGU/LmJvcmRlclRvcFxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmNvbEhlYWRlcnNSb3dDb25maWcuc3R5bGU/LmJvcmRlclRvcDtcbiAgICB9IGVsc2UgcmV0dXJuICcnO1xuICB9XG4gIGdldENvbEhlYWRlcnNSb3dCb3JkZXJCb3R0b20oKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZyAmJlxuICAgICAgdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZy5zdHlsZT8uYm9yZGVyQm90dG9tXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcuY29sSGVhZGVyc1Jvd0NvbmZpZy5zdHlsZT8uYm9yZGVyQm90dG9tO1xuICAgIH0gZWxzZSByZXR1cm4gJzFweCBzb2xpZCAjRTBFMEUwJztcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29uZmlnIHtcbiAgaGVpZ2h0OiBzdHJpbmcgfCAnMTAwJSc7XG4gIHdpZHRoOiBzdHJpbmcgfCAnMTAwJSc7XG4gIHBhZ2luYXRpb25Db25maWc/OiBQYWdpbmF0aW9uQ29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgY29sSGVhZGVyc1Jvd0NvbmZpZzogUm93Q29uZmlnIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgcm93Q29uZmlnOiBSb3dDb25maWcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBjb2xIZWFkZXJDb25maWc6IEFycmF5PENvbEhlYWRlckNvbmZpZz47XG4gIGNvbENvbmZpZzogQXJyYXk8Q29sQ29uZmlnPjtcbiAgY2FuRXhwYW5kPzogYm9vbGVhbiB8IGZhbHNlO1xuICBjYW5TY3JvbGxIb3Jpem9udGFsbHk/OiBib29sZWFuIHwgZmFsc2U7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Db25maWcge1xuICBub09mUGFnZXM6IG51bWJlcjtcbiAgcm93c1BlclBhZ2U6IG51bWJlcjtcbiAgdG90YWxOb09mUm93czogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBSb3dDb25maWcge1xuICBoZWlnaHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBzdHlsZT86IHt9O1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2xIZWFkZXJDb25maWcge1xuICB0eXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdjdXN0b20nO1xuICBkYXRhOiBhbnk7XG4gIGNvbXBvbmVudFJlZj86IGFueTtcbiAgZmlsdGVycz86IEFycmF5PEZpbHRlcj4gfCBudWxsO1xuICBzdHlsZT86IHt9O1xuICBhY3Rpb24/OiBhbnk7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvbENvbmZpZyB7XG4gIHR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIHwgJ2N1c3RvbSc7XG4gIGNvbXBvbmVudFJlZj86IGFueTtcbiAgc3R5bGU/OiB7fTtcbiAgYWN0aW9uPzogYW55O1xufVxuIl19
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { ConnectionPositionPair, OverlayConfig, Overlay, OverlayModule } from '@angular/cdk/overlay';
|
|
2
|
+
import { TemplatePortal } from '@angular/cdk/portal';
|
|
3
|
+
import { EventEmitter, Component, ViewContainerRef, Input, ViewChild, ContentChild, Output, NgModule } from '@angular/core';
|
|
4
|
+
import { FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
5
|
+
import { filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
|
|
8
|
+
class AsyncDropdownComponent {
|
|
9
|
+
constructor(overlay, viewContainerRef) {
|
|
10
|
+
this.overlay = overlay;
|
|
11
|
+
this.viewContainerRef = viewContainerRef;
|
|
12
|
+
this.placeholder = 'Select'; // placeholder for input
|
|
13
|
+
this.debounceTime = 400; // wait time till which API call is paused
|
|
14
|
+
this.minInputLength = 2; // min length after which API call is made
|
|
15
|
+
this.multi = false; // maintain a list or emit value
|
|
16
|
+
// tslint:disable-next-line
|
|
17
|
+
this.onSelect = new EventEmitter(true); // emit selected values
|
|
18
|
+
this.searchInput = new FormControl();
|
|
19
|
+
this.data = [];
|
|
20
|
+
this.opened = false;
|
|
21
|
+
// tslint:disable-next-line
|
|
22
|
+
this.selections = new Map();
|
|
23
|
+
this.handleControlChanges = (values) => {
|
|
24
|
+
values.forEach((el) => {
|
|
25
|
+
this.selectData(el, true);
|
|
26
|
+
});
|
|
27
|
+
// tslint:disable-next-line
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
if (this.multi && !this.uniqueKey) {
|
|
33
|
+
throw new Error('[uniqueKey] required in multi mode.');
|
|
34
|
+
}
|
|
35
|
+
if (this.disabled) {
|
|
36
|
+
this.searchInput.disable();
|
|
37
|
+
}
|
|
38
|
+
this.searchSubscription = this.searchInput.valueChanges
|
|
39
|
+
.pipe(filter((val) => val && val.length >= this.minInputLength), debounceTime(this.debounceTime), distinctUntilChanged())
|
|
40
|
+
.subscribe((res) => {
|
|
41
|
+
this.httpStream(res).subscribe((list) => {
|
|
42
|
+
var _a;
|
|
43
|
+
this.data = list;
|
|
44
|
+
if (!((_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.hasAttached()) && list.length > 0) {
|
|
45
|
+
this.openDropdown(this.dd, this.origin.nativeElement);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
if ((_a = this.control) === null || _a === void 0 ? void 0 : _a.value) {
|
|
50
|
+
this.handleControlChanges(this.control.value);
|
|
51
|
+
}
|
|
52
|
+
this.controlSubscription = (_b = this.control) === null || _b === void 0 ? void 0 : _b.valueChanges.subscribe(this.handleControlChanges);
|
|
53
|
+
}
|
|
54
|
+
ngOnChanges(changes) {
|
|
55
|
+
if (changes && changes.disabled) {
|
|
56
|
+
this.searchInput.enable();
|
|
57
|
+
if (this.disabled) {
|
|
58
|
+
this.searchInput.disable();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
ngOnDestroy() {
|
|
63
|
+
var _a;
|
|
64
|
+
(_a = this.searchSubscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
65
|
+
}
|
|
66
|
+
openDropdown(template, origin) {
|
|
67
|
+
const positionStrategy = this.overlay
|
|
68
|
+
.position()
|
|
69
|
+
.flexibleConnectedTo(origin)
|
|
70
|
+
.withPositions([
|
|
71
|
+
new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }),
|
|
72
|
+
new ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }),
|
|
73
|
+
])
|
|
74
|
+
.withPush(true);
|
|
75
|
+
const configs = new OverlayConfig({
|
|
76
|
+
hasBackdrop: true,
|
|
77
|
+
backdropClass: 'cdk-overlay-transparent-backdrop',
|
|
78
|
+
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
79
|
+
positionStrategy,
|
|
80
|
+
width: origin.clientWidth,
|
|
81
|
+
});
|
|
82
|
+
this.overlayRef = this.overlay.create(configs);
|
|
83
|
+
this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));
|
|
84
|
+
this.overlayRef.backdropClick().subscribe((res) => {
|
|
85
|
+
this.closeDropdown();
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* closes the dropdown
|
|
90
|
+
*/
|
|
91
|
+
closeDropdown() {
|
|
92
|
+
var _a;
|
|
93
|
+
this.opened = false;
|
|
94
|
+
(_a = this.overlayRef) === null || _a === void 0 ? void 0 : _a.detach();
|
|
95
|
+
this.data = [];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
* @param item item to select
|
|
100
|
+
* if item property disabled is set to true, selection will be disabled
|
|
101
|
+
* @param effectedFromOutside set to true if calling from parent component, if true will focus on search input
|
|
102
|
+
*/
|
|
103
|
+
selectData(item, effectedFromOutside = true) {
|
|
104
|
+
if (item.disabled) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!this.multi) {
|
|
108
|
+
this.searchInput.patchValue(item[this.displayKey], { emitEvent: false });
|
|
109
|
+
this.setControlValue(item);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
if (!this.selections.has(item[this.uniqueKey])) {
|
|
113
|
+
this.selections.set(item[this.uniqueKey], item);
|
|
114
|
+
}
|
|
115
|
+
this.setControlValue(this.selectedItems);
|
|
116
|
+
if (!effectedFromOutside) {
|
|
117
|
+
setTimeout(() => {
|
|
118
|
+
this.input.nativeElement.focus();
|
|
119
|
+
this.input.nativeElement.scrollIntoView();
|
|
120
|
+
}, 10);
|
|
121
|
+
}
|
|
122
|
+
this.searchInput.patchValue('');
|
|
123
|
+
this.data = [];
|
|
124
|
+
}
|
|
125
|
+
this.closeDropdown();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
*
|
|
129
|
+
* @param item remove item from selected list
|
|
130
|
+
*/
|
|
131
|
+
removeItem(item) {
|
|
132
|
+
this.selections.delete(item[this.uniqueKey]);
|
|
133
|
+
this.setControlValue(this.selectedItems);
|
|
134
|
+
// tslint:disable-next-line
|
|
135
|
+
this.input['nativeElement'].focus();
|
|
136
|
+
}
|
|
137
|
+
setControlValue(value) {
|
|
138
|
+
var _a;
|
|
139
|
+
this.onSelect.emit(value);
|
|
140
|
+
(_a = this.control) === null || _a === void 0 ? void 0 : _a.patchValue(value, { emitEvent: false });
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* @returns list of selected items
|
|
144
|
+
*/
|
|
145
|
+
get selectedItems() {
|
|
146
|
+
return Array.from(this.selections.values());
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
AsyncDropdownComponent.decorators = [
|
|
150
|
+
{ type: Component, args: [{
|
|
151
|
+
selector: 'mis-async-search-dropdown',
|
|
152
|
+
template: "<div\n class=\"dd-wrapper\"\n [ngClass]=\"{ opened: opened, disabled: disabled, readonly: readonly }\"\n #ddBtn\n>\n <div class=\"selected-list\" *ngIf=\"multi && selections.size > 0\">\n <span *ngFor=\"let item of selectedItems\" (click)=\"removeItem(item)\">{{item[displayKey]}} <span class=\"ic-navigation-cancel-24\"></span> </span>\n </div>\n <div class=\"search-input\">\n <span class=\"ic-action-search-24\"></span>\n <input\n tabindex=\"0\"\n type=\"text\"\n class=\"black-text\"\n #input\n [placeholder]=\"placeholder\"\n [formControl]=\"searchInput\"\n />\n </div>\n</div>\n\n<ng-template #dd>\n <div class=\"dd-list\" *ngIf=\"data.length\">\n <ng-container *ngFor=\"let item of data\">\n <div (click)=\"selectData(item, false)\">\n <ng-container *ngIf=\"customItem; else standardItem\" [ngTemplateOutlet]=\"customItem\" [ngTemplateOutletContext]=\"{$implicit:item}\"></ng-container>\n <ng-template #standardItem>\n <div class=\"item\">\n <div class=\"value\">\n <div class=\"primary\">\n {{ item[displayKey] }}\n </div>\n <div class=\"secondary\">\n {{item[secondaryDisplayKey]}}\n </div>\n </div>\n </div>\n </ng-template>\n </div>\n </ng-container>\n </div>\n</ng-template>\n",
|
|
153
|
+
styles: [".dd-wrapper{background:#fff;border:1px solid #e0e0e0;box-sizing:border-box;border-radius:4px;display:block;cursor:pointer;outline:none}.dd-wrapper.opened,.dd-wrapper:hover{background:#f5f5f5}.dd-wrapper .selected-list{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:4px;padding:8px 16px}.dd-wrapper .selected-list>span{display:inline-block;background:#e0e0e0;border-radius:16px;padding:6px 12px;cursor:pointer;vertical-align:middle}.dd-wrapper:focus-within{border-color:#0937b2;background:#f5f5f5}.dd-wrapper.disabled,.dd-wrapper.readonly{pointer-events:none}.search-input{position:relative;border-radius:8px}.search-input input{outline:none;padding:10px 12px 10px 48px;background-color:transparent;font-size:15px;line-height:20px;color:#181f33;border-radius:inherit;border:1px solid transparent;width:100%}.search-input span{position:absolute;top:50%;transform:translateY(-50%);font-size:24px;width:24;line-height:24px;height:24px;left:10px}.dd-list{padding:8px 0;max-height:200px;background:#fff;box-shadow:0 12px 24px rgba(0,0,0,.12),0 4px 8px rgba(0,0,0,.12);border-radius:8px;min-width:100%;overflow-y:auto}.dd-list::-webkit-scrollbar{width:8px;border-radius:4px}.dd-list::-webkit-scrollbar-track{background:#fff;border-radius:4px}.dd-list::-webkit-scrollbar-thumb{background:#929dab;border-radius:4px}.dd-list::-webkit-scrollbar-thumb:hover{background:#929dab}.dd-list .item{padding:8px 16px;cursor:pointer}.dd-list .item .disabled{color:#6a737d!important;pointer-events:none}.dd-list .item .value{display:flex;justify-content:space-between;align-items:center}.dd-list .item .value .primary,.dd-list .item .value .secondary{font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#181f33}.dd-list .item .reason{font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d}.dd-list .item:hover:not(.disabled){background:#f5f7fc}"]
|
|
154
|
+
},] }
|
|
155
|
+
];
|
|
156
|
+
AsyncDropdownComponent.ctorParameters = () => [
|
|
157
|
+
{ type: Overlay },
|
|
158
|
+
{ type: ViewContainerRef }
|
|
159
|
+
];
|
|
160
|
+
AsyncDropdownComponent.propDecorators = {
|
|
161
|
+
httpStream: [{ type: Input }],
|
|
162
|
+
displayKey: [{ type: Input }],
|
|
163
|
+
secondaryDisplayKey: [{ type: Input }],
|
|
164
|
+
placeholder: [{ type: Input }],
|
|
165
|
+
debounceTime: [{ type: Input }],
|
|
166
|
+
minInputLength: [{ type: Input }],
|
|
167
|
+
multi: [{ type: Input }],
|
|
168
|
+
uniqueKey: [{ type: Input }],
|
|
169
|
+
control: [{ type: Input }],
|
|
170
|
+
disabled: [{ type: Input }],
|
|
171
|
+
readonly: [{ type: Input }],
|
|
172
|
+
origin: [{ type: ViewChild, args: ['ddBtn', { static: false },] }],
|
|
173
|
+
input: [{ type: ViewChild, args: ['input', { static: false },] }],
|
|
174
|
+
dd: [{ type: ViewChild, args: ['dd', { static: false },] }],
|
|
175
|
+
customItem: [{ type: ContentChild, args: ['misCustomItem', { static: false },] }],
|
|
176
|
+
onSelect: [{ type: Output }]
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
class AsyncDropdownModule {
|
|
180
|
+
}
|
|
181
|
+
AsyncDropdownModule.decorators = [
|
|
182
|
+
{ type: NgModule, args: [{
|
|
183
|
+
declarations: [AsyncDropdownComponent],
|
|
184
|
+
imports: [CommonModule, OverlayModule, ReactiveFormsModule, FormsModule],
|
|
185
|
+
exports: [AsyncDropdownComponent],
|
|
186
|
+
},] }
|
|
187
|
+
];
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Generated bundle index. Do not edit.
|
|
191
|
+
*/
|
|
192
|
+
|
|
193
|
+
export { AsyncDropdownComponent, AsyncDropdownModule };
|
|
194
|
+
//# sourceMappingURL=mis-crystal-design-system-async-search-dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mis-crystal-design-system-async-search-dropdown.js","sources":["../../../projects/mis-components/async-search-dropdown/async-dropdown.component.ts","../../../projects/mis-components/async-search-dropdown/async-dropdown.module.ts","../../../projects/mis-components/async-search-dropdown/mis-crystal-design-system-async-search-dropdown.ts"],"sourcesContent":["import {\n ConnectionPositionPair,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\nimport { Observable, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter } from 'rxjs/operators';\n\n// tslint:disable-next-line\ntype IListData = any;\n\n@Component({\n selector: 'mis-async-search-dropdown',\n templateUrl: './async-dropdown.component.html',\n styleUrls: ['./async-dropdown.component.scss'],\n})\nexport class AsyncDropdownComponent implements OnInit, OnChanges, OnDestroy {\n constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n @Input() httpStream!: (searchKey: string) => Observable<IListData>; // function that returns an httpobservable\n @Input() displayKey!: string; // string to show value in list\n @Input() secondaryDisplayKey!: string; // string to display secondary value\n @Input() placeholder = 'Select'; // placeholder for input\n @Input() debounceTime = 400; // wait time till which API call is paused\n @Input() minInputLength = 2; // min length after which API call is made\n @Input() multi = false; // maintain a list or emit value\n @Input() uniqueKey: string; // for identifying unique values\n @Input() control: AbstractControl | null; // form control for reactive forms\n @Input() disabled: boolean; // disable actions on component\n @Input() readonly: boolean; // make component readonly\n @ViewChild('ddBtn', { static: false }) origin: ElementRef;\n @ViewChild('input', { static: false }) input: ElementRef;\n @ViewChild('dd', { static: false }) dd: TemplateRef<Element>;\n @ContentChild('misCustomItem', { static: false })\n customItem: TemplateRef<Element>;\n // tslint:disable-next-line\n @Output() onSelect: EventEmitter<IListData | IListData[]> = new EventEmitter(\n true\n ); // emit selected values\n searchInput: FormControl = new FormControl();\n data: IListData[] = [];\n opened = false;\n // tslint:disable-next-line\n selections: Map<string, any> = new Map();\n private searchSubscription: Subscription;\n private overlayRef: OverlayRef;\n controlSubscription: Subscription | undefined;\n\n ngOnInit(): void {\n if (this.multi && !this.uniqueKey) {\n throw new Error('[uniqueKey] required in multi mode.');\n }\n if (this.disabled) {\n this.searchInput.disable();\n }\n this.searchSubscription = this.searchInput.valueChanges\n .pipe(\n filter((val) => val && val.length >= this.minInputLength),\n debounceTime(this.debounceTime),\n distinctUntilChanged()\n )\n .subscribe((res) => {\n this.httpStream(res).subscribe((list) => {\n this.data = list;\n if (!this.overlayRef?.hasAttached() && list.length > 0) {\n this.openDropdown(this.dd, this.origin.nativeElement);\n }\n });\n });\n if (this.control?.value) {\n this.handleControlChanges(this.control.value);\n }\n this.controlSubscription = this.control?.valueChanges.subscribe(\n this.handleControlChanges\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes.disabled) {\n this.searchInput.enable();\n if (this.disabled) {\n this.searchInput.disable();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.searchSubscription?.unsubscribe();\n }\n\n private handleControlChanges = (values: IListData[]) => {\n values.forEach((el) => {\n this.selectData(el, true);\n });\n // tslint:disable-next-line\n };\n\n private openDropdown(\n template: TemplateRef<Element>,\n origin: HTMLElement\n ): void {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions([\n new ConnectionPositionPair(\n { originX: 'start', originY: 'bottom' },\n { overlayX: 'start', overlayY: 'top' }\n ),\n new ConnectionPositionPair(\n { originX: 'start', originY: 'top' },\n { overlayX: 'start', overlayY: 'bottom' }\n ),\n ])\n .withPush(true);\n\n const configs = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy,\n width: origin.clientWidth,\n });\n this.overlayRef = this.overlay.create(configs);\n this.overlayRef.attach(new TemplatePortal(template, this.viewContainerRef));\n this.overlayRef.backdropClick().subscribe((res) => {\n this.closeDropdown();\n });\n }\n\n /**\n * closes the dropdown\n */\n closeDropdown(): void {\n this.opened = false;\n this.overlayRef?.detach();\n this.data = [];\n }\n\n /**\n *\n * @param item item to select\n * if item property disabled is set to true, selection will be disabled\n * @param effectedFromOutside set to true if calling from parent component, if true will focus on search input\n */\n selectData(item: IListData, effectedFromOutside = true): void {\n if (item.disabled) {\n return;\n }\n if (!this.multi) {\n this.searchInput.patchValue(item[this.displayKey], { emitEvent: false });\n this.setControlValue(item);\n } else {\n if (!this.selections.has(item[this.uniqueKey])) {\n this.selections.set(item[this.uniqueKey], item);\n }\n this.setControlValue(this.selectedItems);\n if (!effectedFromOutside) {\n setTimeout(() => {\n this.input.nativeElement.focus();\n this.input.nativeElement.scrollIntoView();\n }, 10);\n }\n this.searchInput.patchValue('');\n this.data = [];\n }\n this.closeDropdown();\n }\n\n /**\n *\n * @param item remove item from selected list\n */\n removeItem(item: IListData): void {\n this.selections.delete(item[this.uniqueKey]);\n this.setControlValue(this.selectedItems);\n // tslint:disable-next-line\n this.input['nativeElement'].focus();\n }\n\n private setControlValue(value: IListData): void {\n this.onSelect.emit(value);\n this.control?.patchValue(value, { emitEvent: false });\n }\n\n /**\n * @returns list of selected items\n */\n get selectedItems(): Array<IListData> {\n return Array.from(this.selections.values());\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AsyncDropdownComponent } from './async-dropdown.component';\n\n@NgModule({\n declarations: [AsyncDropdownComponent],\n imports: [CommonModule, OverlayModule, ReactiveFormsModule, FormsModule],\n exports: [AsyncDropdownComponent],\n})\nexport class AsyncDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|