@agorapulse/ui-components 15.0.36 → 15.0.38

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.
@@ -1,4 +1,4 @@
1
- import { Renderer2, ElementRef, EventEmitter } from '@angular/core';
1
+ import { ElementRef, EventEmitter, Renderer2 } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.
@@ -8,12 +8,9 @@ import * as i0 from "@angular/core";
8
8
  export declare class MultiStyleTextDirective {
9
9
  private elRef;
10
10
  private renderer;
11
- private childrenCreated;
12
11
  set multiStyleText(fullText: string);
13
12
  partEvent: EventEmitter<string>;
14
13
  constructor(elRef: ElementRef, renderer: Renderer2);
15
- private static parse;
16
- private static cutFirstGroup;
17
14
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiStyleTextDirective, never>;
18
15
  static ɵdir: i0.ɵɵDirectiveDeclaration<MultiStyleTextDirective, "[multiStyleText]", never, { "multiStyleText": "multiStyleText"; }, { "partEvent": "partEvent"; }, never, never, true, never>;
19
16
  }
@@ -1,10 +1,7 @@
1
- import { Directive, Input, Output, EventEmitter } from '@angular/core';
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import DOMPurify from 'dompurify';
2
3
  import * as i0 from "@angular/core";
3
- const PART_START = '<ng-container data-mst="';
4
- const PARSE_MIDDLE = '">';
5
- const PARSE_END = '</ng-container>';
6
- const DATA_SEPARATOR = ',';
7
- const OPTIONAL_EVENTS_SEPARATOR = ';';
4
+ const DATA_MST = 'data-mst';
8
5
  /**
9
6
  * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.
10
7
  * The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES">TEXT</ng-container>.
@@ -13,111 +10,36 @@ const OPTIONAL_EVENTS_SEPARATOR = ';';
13
10
  export class MultiStyleTextDirective {
14
11
  set multiStyleText(fullText) {
15
12
  // First remove previously added children (on update).
16
- for (const child of this.childrenCreated) {
17
- this.renderer.removeChild(this.elRef.nativeElement, child);
18
- }
19
- if (fullText && fullText.length > 0) {
20
- MultiStyleTextDirective.parse(fullText).forEach((part) => {
21
- if (part.clazz || part.clickName) {
22
- // Parsed item with styling classes and/or event listening.
23
- const span = this.renderer.createElement('span');
24
- const text = this.renderer.createText(part.content);
25
- this.renderer.appendChild(span, text);
26
- if (part.clazz) {
27
- part.clazz.forEach(clazz => this.renderer.addClass(span, clazz));
13
+ this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', "");
14
+ if (!fullText || fullText.length <= 0) {
15
+ return;
16
+ }
17
+ this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', DOMPurify.sanitize(fullText.replace(/ng-container/g, 'span')));
18
+ Array.from(this.elRef.nativeElement.children).forEach((childNode) => {
19
+ if (childNode.nodeType == 1 && childNode.tagName.toLowerCase() === 'span') { // Node.ELEMENT_NODE
20
+ const span = this.renderer.createElement('span');
21
+ span.innerHTML = childNode.innerHTML;
22
+ this.elRef.nativeElement.replaceChild(span, childNode);
23
+ const mstValue = childNode.getAttribute(DATA_MST);
24
+ if (mstValue) {
25
+ const mstContents = mstValue.split(';');
26
+ // Bind click events
27
+ if (mstContents[1]) {
28
+ this.renderer.listen(span, 'click', () => this.partEvent.emit(mstContents[1]));
28
29
  }
29
- if (part.clickName) {
30
- this.renderer.listen(span, 'click', () => this.partEvent.emit(part.clickName));
30
+ // Add classes
31
+ if (mstContents[0] && mstContents[0].length > 0) {
32
+ this.renderer.setAttribute(span, 'class', mstContents[0].replace(',', ' '));
31
33
  }
32
- this.renderer.appendChild(this.elRef.nativeElement, span);
33
- this.childrenCreated.push(span);
34
- }
35
- else {
36
- // Specific of part without styling classes (could be used to get event listening only)
37
- const text = this.renderer.createText(part.content);
38
- this.renderer.appendChild(this.elRef.nativeElement, text);
39
- this.childrenCreated.push(text);
40
34
  }
41
- });
42
- }
35
+ }
36
+ });
43
37
  }
44
38
  constructor(elRef, renderer) {
45
39
  this.elRef = elRef;
46
40
  this.renderer = renderer;
47
- this.childrenCreated = [];
48
41
  this.partEvent = new EventEmitter();
49
42
  }
50
- static parse(toParse) {
51
- const parts = [];
52
- let startIndex = toParse.indexOf(PART_START);
53
- while (startIndex >= 0) {
54
- if (startIndex > 0) {
55
- // Optional text before first parsed part.
56
- parts.push({ content: toParse.substring(0, startIndex) });
57
- }
58
- const elem = this.cutFirstGroup(toParse.substring(startIndex));
59
- if (elem === 'invalid') {
60
- return [];
61
- }
62
- else if (elem) {
63
- parts.push({
64
- content: elem.content,
65
- clazz: elem.classes,
66
- clickName: elem.clickName
67
- });
68
- toParse = elem.rest;
69
- startIndex = toParse.indexOf(PART_START);
70
- }
71
- else {
72
- parts.push({ content: toParse });
73
- }
74
- }
75
- // Very end
76
- if (toParse.length > 0) {
77
- parts.push({ content: toParse });
78
- }
79
- return parts;
80
- }
81
- static cutFirstGroup(toCut) {
82
- if (!toCut.startsWith(PART_START)) {
83
- // String doesn't start with expected parser start.
84
- return null;
85
- }
86
- const afterParserStart = toCut.substring(PART_START.length);
87
- let index = afterParserStart.indexOf(PARSE_MIDDLE);
88
- if (index <= 0) {
89
- console.error('Not able to parse invalid string: ' + toCut);
90
- return 'invalid';
91
- }
92
- const data = afterParserStart.substring(0, index);
93
- let classes;
94
- let clickName;
95
- const eventsPartSeparatorIndex = data.indexOf(OPTIONAL_EVENTS_SEPARATOR);
96
- if (eventsPartSeparatorIndex > 0) {
97
- // Case the data contains events part with dedicated separator
98
- classes = data.substring(0, eventsPartSeparatorIndex);
99
- clickName = data.substring(eventsPartSeparatorIndex + 1);
100
- }
101
- else {
102
- // Otherwise, only design classes are provided
103
- classes = data;
104
- clickName = undefined;
105
- }
106
- let rest = afterParserStart.substring(index + PARSE_MIDDLE.length);
107
- index = rest.indexOf(PARSE_END);
108
- if (index <= 0) {
109
- console.error('Not able to parse invalid string: ' + toCut);
110
- return 'invalid';
111
- }
112
- const content = rest.substring(0, index);
113
- rest = rest.substring(index + PARSE_END.length);
114
- return {
115
- content,
116
- classes: classes.split(DATA_SEPARATOR),
117
- clickName,
118
- rest
119
- };
120
- }
121
43
  }
122
44
  MultiStyleTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiStyleTextDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
123
45
  MultiStyleTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: MultiStyleTextDirective, isStandalone: true, selector: "[multiStyleText]", inputs: { multiStyleText: "multiStyleText" }, outputs: { partEvent: "partEvent" }, ngImport: i0 });
@@ -133,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
133
55
  }], partEvent: [{
134
56
  type: Output
135
57
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQXlCLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRTVGLE1BQU0sVUFBVSxHQUFHLDBCQUEwQixDQUFDO0FBQzlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUMxQixNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztBQUNwQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFDM0IsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUM7QUFRdEM7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyx1QkFBdUI7SUFJaEMsSUFBYSxjQUFjLENBQUMsUUFBZ0I7UUFDeEMsc0RBQXNEO1FBQ3RELEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtnQkFDM0QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQzlCLDJEQUEyRDtvQkFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pELE1BQU0sSUFBSSxHQUFH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Q0QsSUFBSSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM1RCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEQsT0FBTztZQUNILE9BQU87WUFDUCxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDdEMsU0FBUztZQUNULElBQUk7U0FDUCxDQUFDO0lBQ04sQ0FBQzs7b0hBakhRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7eUhBS2dCLGNBQWM7c0JBQTFCLEtBQUs7Z0JBK0JJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBQQVJUX1NUQVJUID0gJzxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCInO1xuY29uc3QgUEFSU0VfTUlERExFID0gJ1wiPic7XG5jb25zdCBQQVJTRV9FTkQgPSAnPC9uZy1jb250YWluZXI+JztcbmNvbnN0IERBVEFfU0VQQVJBVE9SID0gJywnO1xuY29uc3QgT1BUSU9OQUxfRVZFTlRTX1NFUEFSQVRPUiA9ICc7JztcblxuaW50ZXJmYWNlIFBhcnQge1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBjbGF6ej86IHN0cmluZ1tdOyAvLyBOb3QgZGVmaW5lZCBvbiBzdGVyaWxlIHRleHRcbiAgICBjbGlja05hbWU/OiBzdHJpbmc7IC8vIE5vdCBkZWZpbmVkIG9uIHN0ZXJpbGUgdGV4dFxufVxuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGFpbXMgdG8gcGFyc2Ugc2ltcGxlIHN0cmluZyB0byBleHRyYWN0IHNvbWUgc3BlY2lmaWMgdGFncyBhbmQgdG8gdHVybiB0aGVtIGludG8gU1BBTiB3aXRoIHN0eWxpbmcgY2xhc3NlcyBhdHRyaWJ1dGVzIGFuZCBvcHRpb25hbCBldmVudCBsaXN0ZW5pbmcuXG4gKiBUaGUgc3BlY2lmaWMgdGFncyBtdXN0IHRoaXMgc2NoZW1hOiA8bmctY29udGFpbmVyIGRhdGEtbXN0PVwiU1RZTElORy1DTEFTU0VTXCI+VEVYVDwvbmctY29udGFpbmVyPi5cbiAqIEV4YW1wbGU6ICdMb3JlbSA8bmctY29udGFpbmVyIGRhdGEtbXN0PVwibXktc3R5bGVcIj5pcHN1bTwvbmctY29udGFpbmVyPiBkb2xvciBzaXQgYW1ldCcuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbbXVsdGlTdHlsZVRleHRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVN0eWxlVGV4dERpcmVjdGl2ZSB7XG5cbiAgICBwcml2YXRlIGNoaWxkcmVuQ3JlYXRlZDogYW55W10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHNldCBtdWx0aVN0eWxlVGV4dChmdWxsVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIC8vIEZpcnN0IHJlbW92ZSBwcmV2aW91c2x5IGFkZGVkIGNoaWxkcmVuIChvbiB1cGRhdGUpLlxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW5DcmVhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgY2hpbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZ1bGxUZXh0ICYmIGZ1bGxUZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE11bHRpU3R5bGVUZXh0RGlyZWN0aXZlLnBhcnNlKGZ1bGxUZXh0KS5mb3JFYWNoKChwYXJ0OiBQYXJ0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnQuY2xhenogfHwgcGFydC5jbGlja05hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2VkIGl0ZW0gd2l0aCBzdHlsaW5nIGNsYXNzZXMgYW5kL29yIGV2ZW50IGxpc3RlbmluZy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHBhcnQuY29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3BhbiwgdGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0LmNsYXp6KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0LmNsYXp6LmZvckVhY2goY2xhenogPT4gdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhzcGFuLCBjbGF6eikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0LmNsaWNrTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc3BhbiwgJ2NsaWNrJywgKCkgPT4gdGhpcy5wYXJ0RXZlbnQuZW1pdChwYXJ0LmNsaWNrTmFtZSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCBzcGFuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZHJlbkNyZWF0ZWQucHVzaChzcGFuKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBTcGVjaWZpYyBvZiBwYXJ0IHdpdGhvdXQgc3R5bGluZyBjbGFzc2VzIChjb3VsZCBiZSB1c2VkIHRvIGdldCBldmVudCBsaXN0ZW5pbmcgb25seSlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChwYXJ0LmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5DcmVhdGVkLnB1c2godGV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgcGFydEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHBhcnNlKHRvUGFyc2U6IHN0cmluZyk6IFBhcnRbXSB7XG4gICAgICAgIGNvbnN0IHBhcnRzOiBQYXJ0W10gPSBbXTtcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSB0b1BhcnNlLmluZGV4T2YoUEFSVF9TVEFSVCk7XG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGlmIChzdGFydEluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIE9wdGlvbmFsIHRleHQgYmVmb3JlIGZpcnN0IHBhcnNlZCBwYXJ0LlxuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goe2NvbnRlbnQ6IHRvUGFyc2Uuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbGVtID0gdGhpcy5jdXRGaXJzdEdyb3VwKHRvUGFyc2Uuc3Vic3RyaW5nKHN0YXJ0SW5kZXgpKTtcbiAgICAgICAgICAgIGlmIChlbGVtID09PSAnaW52YWxpZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW0pIHtcbiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogZWxlbS5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBjbGF6ejogZWxlbS5jbGFzc2VzLFxuICAgICAgICAgICAgICAgICAgICBjbGlja05hbWU6IGVsZW0uY2xpY2tOYW1lXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdG9QYXJzZSA9IGVsZW0ucmVzdDtcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gdG9QYXJzZS5pbmRleE9mKFBBUlRfU1RBUlQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKHtjb250ZW50OiB0b1BhcnNlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gVmVyeSBlbmRcbiAgICAgICAgaWYgKHRvUGFyc2UubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFydHMucHVzaCh7Y29udGVudDogdG9QYXJzZX0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJ0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjdXRGaXJzdEdyb3VwKHRvQ3V0OiBzdHJpbmcpOiB7Y29udGVudDogc3RyaW5nLCBjbGFzc2VzOiBzdHJpbmdbXSwgY2xpY2tOYW1lOiBzdHJpbmcsIHJlc3Q6IHN0cmluZ30gfCAnaW52YWxpZCcgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0b0N1dC5zdGFydHNXaXRoKFBBUlRfU1RBUlQpKSB7XG4gICAgICAgICAgICAvLyBTdHJpbmcgZG9lc24ndCBzdGFydCB3aXRoIGV4cGVjdGVkIHBhcnNlciBzdGFydC5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWZ0ZXJQYXJzZXJTdGFydCA9IHRvQ3V0LnN1YnN0cmluZyhQQVJUX1NUQVJULmxlbmd0aCk7XG4gICAgICAgIGxldCBpbmRleCA9IGFmdGVyUGFyc2VyU3RhcnQuaW5kZXhPZihQQVJTRV9NSURETEUpO1xuICAgICAgICBpZiAoaW5kZXggPD0gMCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignTm90IGFibGUgdG8gcGFyc2UgaW52YWxpZCBzdHJpbmc6ICcgKyB0b0N1dCk7XG4gICAgICAgICAgICByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhZnRlclBhcnNlclN0YXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XG4gICAgICAgIGxldCBjbGFzc2VzO1xuICAgICAgICBsZXQgY2xpY2tOYW1lO1xuICAgICAgICBjb25zdCBldmVudHNQYXJ0U2VwYXJhdG9ySW5kZXggPSBkYXRhLmluZGV4T2YoT1BUSU9OQUxfRVZFTlRTX1NFUEFSQVRPUik7XG4gICAgICAgIGlmIChldmVudHNQYXJ0U2VwYXJhdG9ySW5kZXggPiAwKSB7XG4gICAgICAgICAgICAvLyBDYXNlIHRoZSBkYXRhIGNvbnRhaW5zIGV2ZW50cyBwYXJ0IHdpdGggZGVkaWNhdGVkIHNlcGFyYXRvclxuICAgICAgICAgICAgY2xhc3NlcyA9IGRhdGEuc3Vic3RyaW5nKDAsIGV2ZW50c1BhcnRTZXBhcmF0b3JJbmRleCk7XG4gICAgICAgICAgICBjbGlja05hbWUgPSBkYXRhLnN1YnN0cmluZyhldmVudHNQYXJ0U2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgb25seSBkZXNpZ24gY2xhc3NlcyBhcmUgcHJvdmlkZWRcbiAgICAgICAgICAgIGNsYXNzZXMgPSBkYXRhO1xuICAgICAgICAgICAgY2xpY2tOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN0ID0gYWZ0ZXJQYXJzZXJTdGFydC5zdWJzdHJpbmcoaW5kZXggKyBQQVJTRV9NSURETEUubGVuZ3RoKTtcbiAgICAgICAgaW5kZXggPSByZXN0LmluZGV4T2YoUEFSU0VfRU5EKTtcbiAgICAgICAgaWYgKGluZGV4IDw9IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vdCBhYmxlIHRvIHBhcnNlIGludmFsaWQgc3RyaW5nOiAnICsgdG9DdXQpO1xuICAgICAgICAgICAgcmV0dXJuICdpbnZhbGlkJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZW50ID0gcmVzdC5zdWJzdHJpbmcoMCwgaW5kZXgpO1xuICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHJpbmcoaW5kZXggKyBQQVJTRV9FTkQubGVuZ3RoKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIGNsYXNzZXM6IGNsYXNzZXMuc3BsaXQoREFUQV9TRVBBUkFUT1IpLFxuICAgICAgICAgICAgY2xpY2tOYW1lLFxuICAgICAgICAgICAgcmVzdFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7O0FBRWxDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQTtBQVEzQjs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVoQyxJQUFhLGNBQWMsQ0FBQyxRQUFnQjtRQUN4QyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUMzRCxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQ2hFLENBQUM7UUFFRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQXNCLEVBQUUsRUFBRTtZQUM3RSxJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLEVBQUUsb0JBQW9CO2dCQUU3RixNQUFNLElBQUksR0FBZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFFdkQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxRQUFRLEVBQUU7b0JBQ1YsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEMsb0JBQW9CO29CQUNwQixJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNsRjtvQkFDRCxjQUFjO29CQUNkLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7cUJBQzlFO2lCQUVKO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFJRCxZQUNZLEtBQWlCLEVBQ2pCLFFBQW1CO1FBRG5CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUpyQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUs5QyxDQUFDOztvSEExQ0ssdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt5SEFHZ0IsY0FBYztzQkFBMUIsS0FBSztnQkFtQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgRE9NUHVyaWZ5IGZyb20gJ2RvbXB1cmlmeSc7XG5cbmNvbnN0IERBVEFfTVNUID0gJ2RhdGEtbXN0J1xuXG5pbnRlcmZhY2UgUGFydCB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIGNsYXp6Pzogc3RyaW5nW107IC8vIE5vdCBkZWZpbmVkIG9uIHN0ZXJpbGUgdGV4dFxuICAgIGNsaWNrTmFtZT86IHN0cmluZzsgLy8gTm90IGRlZmluZWQgb24gc3RlcmlsZSB0ZXh0XG59XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgYWltcyB0byBwYXJzZSBzaW1wbGUgc3RyaW5nIHRvIGV4dHJhY3Qgc29tZSBzcGVjaWZpYyB0YWdzIGFuZCB0byB0dXJuIHRoZW0gaW50byBTUEFOIHdpdGggc3R5bGluZyBjbGFzc2VzIGF0dHJpYnV0ZXMgYW5kIG9wdGlvbmFsIGV2ZW50IGxpc3RlbmluZy5cbiAqIFRoZSBzcGVjaWZpYyB0YWdzIG11c3QgdGhpcyBzY2hlbWE6IDxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCJTVFlMSU5HLUNMQVNTRVNcIj5URVhUPC9uZy1jb250YWluZXI+LlxuICogRXhhbXBsZTogJ0xvcmVtIDxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCJteS1zdHlsZVwiPmlwc3VtPC9uZy1jb250YWluZXI+IGRvbG9yIHNpdCBhbWV0Jy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1ttdWx0aVN0eWxlVGV4dF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU3R5bGVUZXh0RGlyZWN0aXZlIHtcblxuICAgIEBJbnB1dCgpIHNldCBtdWx0aVN0eWxlVGV4dChmdWxsVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIC8vIEZpcnN0IHJlbW92ZSBwcmV2aW91c2x5IGFkZGVkIGNoaWxkcmVuIChvbiB1cGRhdGUpLlxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsIFwiXCIpO1xuICAgICAgICBpZiAoIWZ1bGxUZXh0IHx8IGZ1bGxUZXh0Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsXG4gICAgICAgICAgICBET01QdXJpZnkuc2FuaXRpemUoZnVsbFRleHQucmVwbGFjZSgvbmctY29udGFpbmVyL2csICdzcGFuJykpXG4gICAgICAgICk7XG5cbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4pLmZvckVhY2goKGNoaWxkTm9kZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZE5vZGUubm9kZVR5cGUgPT0gMSAmJiBjaGlsZE5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc3BhbicpIHsgLy8gTm9kZS5FTEVNRU5UX05PREVcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW46IEhUTUxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBjaGlsZE5vZGUuaW5uZXJIVE1MO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZXBsYWNlQ2hpbGQoc3BhbiwgY2hpbGROb2RlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1zdFZhbHVlID0gY2hpbGROb2RlLmdldEF0dHJpYnV0ZShEQVRBX01TVCk7XG4gICAgICAgICAgICAgICAgaWYgKG1zdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1zdENvbnRlbnRzID0gbXN0VmFsdWUuc3BsaXQoJzsnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQmluZCBjbGljayBldmVudHNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihzcGFuLCAnY2xpY2snLCAoKSA9PiB0aGlzLnBhcnRFdmVudC5lbWl0KG1zdENvbnRlbnRzWzFdKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzBdICYmIG1zdENvbnRlbnRzWzBdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNwYW4sICdjbGFzcycsIG1zdENvbnRlbnRzWzBdLnJlcGxhY2UoJywnLCAnICcpKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBwYXJ0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkge31cblxufVxuIl19
@@ -71,10 +71,10 @@ export class ModalComponent {
71
71
  }
72
72
  ModalComponent.PANEL_CLASS = 'modal-container';
73
73
  ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ModalComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: i2.SymbolRegistry }], target: i0.ɵɵFactoryTarget.Component });
74
- ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ModalComponent, isStandalone: true, selector: "ap-modal", inputs: { closable: "closable", headerBottomBorderEnabled: "headerBottomBorderEnabled", footerTemplate: "footerTemplate", footerVisible: "footerVisible", headerTemplate: "headerTemplate", headerVisible: "headerVisible", mainTemplate: "mainTemplate", config: "config", sidePaneTemplate: "sidePaneTemplate", sidePaneStyle: "sidePaneStyle", containerStyle: "containerStyle", headerStyle: "headerStyle", contentStyle: "contentStyle", footerStyle: "footerStyle", defaultLayout: "defaultLayout" }, ngImport: i0, template: "<div *ngIf=\"sidePaneTemplate\"\n [ngStyle]=\"sidePaneStyle\"\n [ngClass]=\"{pane: defaultLayout}\">\n <ng-template [ngTemplateOutlet]=\"sidePaneTemplate\"></ng-template>\n</div>\n\n<div\n [ngStyle]=\"containerStyle\"\n class=\"modal-wrapper\"\n [class.default-layout]=\"defaultLayout\">\n <ap-icon-button\n *ngIf=\"closable\"\n class=\"close-button\"\n ariaLabel=\"Close button\"\n name=\"close-button\"\n color=\"none\"\n (onClick)=\"close()\"\n type=\"flat\"\n >\n <ap-symbol symbolId=\"close\"></ap-symbol>\n </ap-icon-button>\n <div\n *ngIf=\"headerTemplate && headerVisible\"\n [ngStyle]=\"headerStyle\"\n [ngClass]=\"{header: defaultLayout}\"\n [class.border-bottom]=\"headerBottomBorderEnabled\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </div>\n <div\n *ngIf=\"mainTemplate\"\n [ngStyle]=\"contentStyle\"\n [class.content]=\"defaultLayout\"\n >\n <ng-template [ngTemplateOutlet]=\"mainTemplate\"></ng-template>\n </div>\n <div\n *ngIf=\"footerTemplate && footerVisible\"\n [ngStyle]=\"footerStyle\"\n [ngClass]=\"{footer: defaultLayout}\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </div>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{display:flex;flex-direction:row;max-height:90vh}.modal-wrapper{position:relative;width:100%;display:flex;flex-direction:column}.modal-wrapper.default-layout{padding-top:24px;padding-bottom:16px}.modal-wrapper .close-button{margin:-12px;position:absolute;right:24px;top:24px}.modal-wrapper .close-button ap-symbol{height:12px;width:12px}.modal-wrapper .header{padding:0 24px 16px}.modal-wrapper .header ::ng-deep h2{margin-top:0}.modal-wrapper .header.border-bottom{border-bottom:1px solid #eaecef;margin-bottom:16px}.modal-wrapper .content{color:#5d6a82;font-size:16px;padding:0 24px;flex:1;overflow-y:auto}.modal-wrapper .footer{align-items:center;box-shadow:0 1px #eaecef inset;display:flex;justify-content:flex-end;margin-top:24px;padding:16px 24px 0}.modal-wrapper .footer ::ng-deep .mat-flat-button:not(:last-child),.modal-wrapper .footer .mat-stroked-button:not(:last-child){margin-right:16px}.pane{padding:24px}::ng-deep .modal-container{max-width:100vw!important;margin:24px 24px 64px}::ng-deep .modal-container .mat-dialog-container{border-radius:10px;box-shadow:0 25px 50px #0000000a;max-width:100vw;padding:0}::ng-deep .cdk-overlay-dark-backdrop{background:rgba(52,69,99,.7)}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i2.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconButtonComponent, selector: "ap-icon-button", inputs: ["ariaLabel", "name", "color", "disabled", "menuTrigger", "locked", "loading", "type"], outputs: ["onClick", "onFocus", "onBlur", "menuOpened", "menuClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ModalComponent, isStandalone: true, selector: "ap-modal", inputs: { closable: "closable", headerBottomBorderEnabled: "headerBottomBorderEnabled", footerTemplate: "footerTemplate", footerVisible: "footerVisible", headerTemplate: "headerTemplate", headerVisible: "headerVisible", mainTemplate: "mainTemplate", config: "config", sidePaneTemplate: "sidePaneTemplate", sidePaneStyle: "sidePaneStyle", containerStyle: "containerStyle", headerStyle: "headerStyle", contentStyle: "contentStyle", footerStyle: "footerStyle", defaultLayout: "defaultLayout" }, ngImport: i0, template: "<div *ngIf=\"sidePaneTemplate\"\n [ngStyle]=\"sidePaneStyle\"\n [ngClass]=\"{pane: defaultLayout}\">\n <ng-template [ngTemplateOutlet]=\"sidePaneTemplate\"></ng-template>\n</div>\n\n<div\n [ngStyle]=\"containerStyle\"\n class=\"modal-wrapper\"\n [class.default-layout]=\"defaultLayout\">\n <ap-icon-button\n *ngIf=\"closable\"\n class=\"close-button\"\n ariaLabel=\"Close button\"\n name=\"close-button\"\n color=\"none\"\n (onClick)=\"close()\"\n type=\"flat\"\n >\n <ap-symbol symbolId=\"close\"></ap-symbol>\n </ap-icon-button>\n <div\n *ngIf=\"headerTemplate && headerVisible\"\n [ngStyle]=\"headerStyle\"\n [ngClass]=\"{header: defaultLayout}\"\n [class.border-bottom]=\"headerBottomBorderEnabled\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </div>\n <div\n *ngIf=\"mainTemplate\"\n [ngStyle]=\"contentStyle\"\n [class.content]=\"defaultLayout\"\n >\n <ng-template [ngTemplateOutlet]=\"mainTemplate\"></ng-template>\n </div>\n <div\n *ngIf=\"footerTemplate && footerVisible\"\n [ngStyle]=\"footerStyle\"\n [ngClass]=\"{footer: defaultLayout}\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </div>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{display:flex;flex-direction:row;max-height:90vh}.modal-wrapper{position:relative;width:100%;display:flex;flex-direction:column}.modal-wrapper.default-layout{padding-top:24px;padding-bottom:16px}.modal-wrapper .close-button{margin:-12px;position:absolute;right:24px;top:24px}.modal-wrapper .close-button ap-symbol{height:12px;width:12px}.modal-wrapper .header{padding:0 24px 16px}.modal-wrapper .header ::ng-deep h2{margin-top:0}.modal-wrapper .header.border-bottom{border-bottom:1px solid #eaecef;margin-bottom:16px}.modal-wrapper .content{color:#5d6a82;font-size:16px;padding:0 24px;flex:1;overflow-y:auto;overflow-x:hidden}.modal-wrapper .footer{align-items:center;box-shadow:0 1px #eaecef inset;display:flex;justify-content:flex-end;margin-top:24px;padding:16px 24px 0}.pane{padding:24px}::ng-deep .modal-container{max-width:100vw!important;margin:24px 24px 64px}::ng-deep .modal-container .mat-dialog-container{border-radius:10px;box-shadow:0 25px 50px #0000000a;max-width:100vw;padding:0}::ng-deep .cdk-overlay-dark-backdrop{background:rgba(52,69,99,.7)}\n"], dependencies: [{ kind: "ngmodule", type: AgorapulseUiSymbolModule }, { kind: "component", type: i2.SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconButtonComponent, selector: "ap-icon-button", inputs: ["ariaLabel", "name", "color", "disabled", "menuTrigger", "locked", "loading", "type"], outputs: ["onClick", "onFocus", "onBlur", "menuOpened", "menuClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ModalComponent, decorators: [{
76
76
  type: Component,
77
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-modal', standalone: true, imports: [AgorapulseUiSymbolModule, NgStyle, NgClass, NgIf, ButtonComponent, NgTemplateOutlet, IconButtonComponent], template: "<div *ngIf=\"sidePaneTemplate\"\n [ngStyle]=\"sidePaneStyle\"\n [ngClass]=\"{pane: defaultLayout}\">\n <ng-template [ngTemplateOutlet]=\"sidePaneTemplate\"></ng-template>\n</div>\n\n<div\n [ngStyle]=\"containerStyle\"\n class=\"modal-wrapper\"\n [class.default-layout]=\"defaultLayout\">\n <ap-icon-button\n *ngIf=\"closable\"\n class=\"close-button\"\n ariaLabel=\"Close button\"\n name=\"close-button\"\n color=\"none\"\n (onClick)=\"close()\"\n type=\"flat\"\n >\n <ap-symbol symbolId=\"close\"></ap-symbol>\n </ap-icon-button>\n <div\n *ngIf=\"headerTemplate && headerVisible\"\n [ngStyle]=\"headerStyle\"\n [ngClass]=\"{header: defaultLayout}\"\n [class.border-bottom]=\"headerBottomBorderEnabled\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </div>\n <div\n *ngIf=\"mainTemplate\"\n [ngStyle]=\"contentStyle\"\n [class.content]=\"defaultLayout\"\n >\n <ng-template [ngTemplateOutlet]=\"mainTemplate\"></ng-template>\n </div>\n <div\n *ngIf=\"footerTemplate && footerVisible\"\n [ngStyle]=\"footerStyle\"\n [ngClass]=\"{footer: defaultLayout}\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </div>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{display:flex;flex-direction:row;max-height:90vh}.modal-wrapper{position:relative;width:100%;display:flex;flex-direction:column}.modal-wrapper.default-layout{padding-top:24px;padding-bottom:16px}.modal-wrapper .close-button{margin:-12px;position:absolute;right:24px;top:24px}.modal-wrapper .close-button ap-symbol{height:12px;width:12px}.modal-wrapper .header{padding:0 24px 16px}.modal-wrapper .header ::ng-deep h2{margin-top:0}.modal-wrapper .header.border-bottom{border-bottom:1px solid #eaecef;margin-bottom:16px}.modal-wrapper .content{color:#5d6a82;font-size:16px;padding:0 24px;flex:1;overflow-y:auto}.modal-wrapper .footer{align-items:center;box-shadow:0 1px #eaecef inset;display:flex;justify-content:flex-end;margin-top:24px;padding:16px 24px 0}.modal-wrapper .footer ::ng-deep .mat-flat-button:not(:last-child),.modal-wrapper .footer .mat-stroked-button:not(:last-child){margin-right:16px}.pane{padding:24px}::ng-deep .modal-container{max-width:100vw!important;margin:24px 24px 64px}::ng-deep .modal-container .mat-dialog-container{border-radius:10px;box-shadow:0 25px 50px #0000000a;max-width:100vw;padding:0}::ng-deep .cdk-overlay-dark-backdrop{background:rgba(52,69,99,.7)}\n"] }]
77
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-modal', standalone: true, imports: [AgorapulseUiSymbolModule, NgStyle, NgClass, NgIf, ButtonComponent, NgTemplateOutlet, IconButtonComponent], template: "<div *ngIf=\"sidePaneTemplate\"\n [ngStyle]=\"sidePaneStyle\"\n [ngClass]=\"{pane: defaultLayout}\">\n <ng-template [ngTemplateOutlet]=\"sidePaneTemplate\"></ng-template>\n</div>\n\n<div\n [ngStyle]=\"containerStyle\"\n class=\"modal-wrapper\"\n [class.default-layout]=\"defaultLayout\">\n <ap-icon-button\n *ngIf=\"closable\"\n class=\"close-button\"\n ariaLabel=\"Close button\"\n name=\"close-button\"\n color=\"none\"\n (onClick)=\"close()\"\n type=\"flat\"\n >\n <ap-symbol symbolId=\"close\"></ap-symbol>\n </ap-icon-button>\n <div\n *ngIf=\"headerTemplate && headerVisible\"\n [ngStyle]=\"headerStyle\"\n [ngClass]=\"{header: defaultLayout}\"\n [class.border-bottom]=\"headerBottomBorderEnabled\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </div>\n <div\n *ngIf=\"mainTemplate\"\n [ngStyle]=\"contentStyle\"\n [class.content]=\"defaultLayout\"\n >\n <ng-template [ngTemplateOutlet]=\"mainTemplate\"></ng-template>\n </div>\n <div\n *ngIf=\"footerTemplate && footerVisible\"\n [ngStyle]=\"footerStyle\"\n [ngClass]=\"{footer: defaultLayout}\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </div>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}:host{display:flex;flex-direction:row;max-height:90vh}.modal-wrapper{position:relative;width:100%;display:flex;flex-direction:column}.modal-wrapper.default-layout{padding-top:24px;padding-bottom:16px}.modal-wrapper .close-button{margin:-12px;position:absolute;right:24px;top:24px}.modal-wrapper .close-button ap-symbol{height:12px;width:12px}.modal-wrapper .header{padding:0 24px 16px}.modal-wrapper .header ::ng-deep h2{margin-top:0}.modal-wrapper .header.border-bottom{border-bottom:1px solid #eaecef;margin-bottom:16px}.modal-wrapper .content{color:#5d6a82;font-size:16px;padding:0 24px;flex:1;overflow-y:auto;overflow-x:hidden}.modal-wrapper .footer{align-items:center;box-shadow:0 1px #eaecef inset;display:flex;justify-content:flex-end;margin-top:24px;padding:16px 24px 0}.pane{padding:24px}::ng-deep .modal-container{max-width:100vw!important;margin:24px 24px 64px}::ng-deep .modal-container .mat-dialog-container{border-radius:10px;box-shadow:0 25px 50px #0000000a;max-width:100vw;padding:0}::ng-deep .cdk-overlay-dark-backdrop{background:rgba(52,69,99,.7)}\n"] }]
78
78
  }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: i2.SymbolRegistry }]; }, propDecorators: { closable: [{
79
79
  type: Input
80
80
  }], headerBottomBorderEnabled: [{
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
106
106
  }], defaultLayout: [{
107
107
  type: Input
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL21vZGFsL3NyYy9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbW9kYWwvc3JjL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxPQUFPLEVBQWlCLE1BQU0sdUJBQXVCLENBQUM7QUFFeEYsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBb0JqRSxNQUFNLE9BQU8sY0FBYztJQUd2QixZQUFtQixTQUEyQyxFQUMzQyxjQUE4QjtRQUQ5QixjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUMzQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFVeEMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFJckIsa0JBQWEsR0FBNEIsRUFBRSxDQUFDO1FBQzVDLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztRQUM3QyxnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFDMUMsaUJBQVksR0FBNEIsRUFBRSxDQUFDO1FBQzNDLGdCQUFXLEdBQTRCLEVBQUUsQ0FBQztRQUMxQyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQXBCMUIsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENB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QUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQztzSUFjMUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fnb3JhcHVsc2VVaVN5bWJvbE1vZHVsZSwgYXBDbG9zZSwgU3ltYm9sUmVnaXN0cnl9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nLCBNYXRMZWdhY3lEaWFsb2dDb25maWcgYXMgTWF0RGlhbG9nQ29uZmlnLCBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7SWNvbkJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcIkBhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvaWNvbi1idXR0b25cIjtcbmltcG9ydCB7QnV0dG9uQ29tcG9uZW50fSBmcm9tIFwiQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9idXR0b25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RhbENvbmZpZyBleHRlbmRzIE1vZGFsQ29uZmlnQmFzZSB7XG4gICAgY2xvc2FibGU/OiBib29sZWFuO1xuICAgIGhlYWRlckJvdHRvbUJvcmRlckVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsQ29uZmlnQmFzZSB7XG4gICAgYmFja2Ryb3BDbG9zZUVuYWJsZT86IGJvb2xlYW47XG4gICAgbWF0RGlhbG9nQ29uZmlnPzogTWF0RGlhbG9nQ29uZmlnO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLW1vZGFsJyxcbiAgICB0ZW1wbGF0ZVVybDogJ21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBZ29yYXB1bHNlVWlTeW1ib2xNb2R1bGUsIE5nU3R5bGUsIE5nQ2xhc3MsIE5nSWYsIEJ1dHRvbkNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldCwgSWNvbkJ1dHRvbkNvbXBvbmVudF0sXG4gICAgc3R5bGVVcmxzOiBbJ21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcmVhZG9ubHkgUEFORUxfQ0xBU1MgPSAnbW9kYWwtY29udGFpbmVyJztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb21wb25lbnRUeXBlPGFueT4+LFxuICAgICAgICAgICAgICAgIHB1YmxpYyBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnkpIHtcbiAgICAgICAgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFtcbiAgICAgICAgICAgIGFwQ2xvc2VcbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgY2xvc2FibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGVhZGVyQm90dG9tQm9yZGVyRW5hYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBmb290ZXJWaXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBoZWFkZXJWaXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBtYWluVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQElucHV0KCkgY29uZmlnOiBNYXREaWFsb2dDb25maWc7XG4gICAgQElucHV0KCkgc2lkZVBhbmVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBzaWRlUGFuZVN0eWxlOiB7W2FyZzogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgIEBJbnB1dCgpIGNvbnRhaW5lclN0eWxlOiB7W2FyZzogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgIEBJbnB1dCgpIGhlYWRlclN0eWxlOiB7W2FyZzogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgIEBJbnB1dCgpIGNvbnRlbnRTdHlsZToge1thcmc6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICBASW5wdXQoKSBmb290ZXJTdHlsZToge1thcmc6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICBASW5wdXQoKSBkZWZhdWx0TGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFVzZSBpdCB0byBvcGVuIGEgbW9kYWwgY29udGFpbmluZyB0aGUge0BsaW5rIGNvbXBvbmVudFR5cGV9IGNvbXBvbmVudCwgd2l0aCB0aGUgcmlnaHQgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzdGF0aWMgb3BlbldpdGhDb21wb25lbnQ8VD4oXG4gICAgICAgIG1hdERpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBjb25maWc6IE1vZGFsQ29uZmlnQmFzZSxcbiAgICAgICAgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxUPlxuICAgICk6IE1hdERpYWxvZ1JlZjxUPiB7XG4gICAgICAgIGxldCBtYXREaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZztcbiAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgbWF0RGlhbG9nQ29uZmlnID0gY29uZmlnLm1hdERpYWxvZ0NvbmZpZztcbiAgICAgICAgICAgIGlmIChtYXREaWFsb2dDb25maWcpIHtcbiAgICAgICAgICAgICAgICBtYXREaWFsb2dDb25maWcucGFuZWxDbGFzcyA9IEFycmF5LmlzQXJyYXkoY29uZmlnLm1hdERpYWxvZ0NvbmZpZy5wYW5lbENsYXNzKVxuICAgICAgICAgICAgICAgICAgICA/IFsuLi5jb25maWcubWF0RGlhbG9nQ29uZmlnLnBhbmVsQ2xhc3MsIE1vZGFsQ29tcG9uZW50LlBBTkVMX0NMQVNTXSAvLyBpbiBjYXNlIHdoZXJlIHRoZSBwYW5lbENsYXNzIGlzIGFuIGFycmF5XG4gICAgICAgICAgICAgICAgICAgIDogW2NvbmZpZy5tYXREaWFsb2dDb25maWcucGFuZWxDbGFzcywgTW9kYWxDb21wb25lbnQuUEFORUxfQ0xBU1NdOyAvLyBpbiB0aGUgb3RoZXIgY2FzZSwgaXQncyBhIFN0cmluZ1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYXREaWFsb2dDb25maWcgPSB7cGFuZWxDbGFzczogTW9kYWxDb21wb25lbnQuUEFORUxfQ0xBU1N9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IE1vZGFsQ29tcG9uZW50LlBBTkVMX0NMQVNTLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBtYXREaWFsb2dDb25maWcuYXV0b0ZvY3VzID0gZmFsc2U7IC8vIFByZXZlbnQgZmlyc3QgYnV0dG9uIHRvIGJlIGZvY3VzZWRcblxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSBtYXREaWFsb2cub3Blbihjb21wb25lbnRUeXBlLCBtYXREaWFsb2dDb25maWcpO1xuICAgICAgICBpZiAoY29uZmlnLmJhY2tkcm9wQ2xvc2VFbmFibGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZSBpdCB0byBvcGVuIGEgbW9kYWwgY29udGFpbmluZyB0aGUgcHJvdmlkZWQgdGVtcGxhdGVzLCB3aXRoIHRoZSByaWdodCBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHN0YXRpYyBvcGVuV2l0aFRlbXBsYXRlcyhcbiAgICAgICAgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICBtYWluVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgIGZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgY29uZmlnPzogTW9kYWxDb25maWcsXG4gICAgICAgIHNpZGVQYW5lVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICk6IE1hdERpYWxvZ1JlZjxNb2RhbENvbXBvbmVudD4ge1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSBNb2RhbENvbXBvbmVudC5vcGVuV2l0aENvbXBvbmVudChtYXREaWFsb2csIGNvbmZpZywgTW9kYWxDb21wb25lbnQpO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuY2xvc2FibGUgPSBjb25maWcgJiYgY29uZmlnLmNsb3NhYmxlID8gY29uZmlnLmNsb3NhYmxlIDogZmFsc2U7XG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5oZWFkZXJCb3R0b21Cb3JkZXJFbmFibGVkID1cbiAgICAgICAgICAgIGNvbmZpZyAmJiBjb25maWcuaGVhZGVyQm90dG9tQm9yZGVyRW5hYmxlZCA/IGNvbmZpZy5oZWFkZXJCb3R0b21Cb3JkZXJFbmFibGVkIDogZmFsc2U7XG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5oZWFkZXJUZW1wbGF0ZSA9IGhlYWRlclRlbXBsYXRlO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UubWFpblRlbXBsYXRlID0gbWFpblRlbXBsYXRlO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZm9vdGVyVGVtcGxhdGUgPSBmb290ZXJUZW1wbGF0ZTtcbiAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLnNpZGVQYW5lVGVtcGxhdGUgPSBzaWRlUGFuZVRlbXBsYXRlO1xuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJzaWRlUGFuZVRlbXBsYXRlXCJcbiAgICAgW25nU3R5bGVdPVwic2lkZVBhbmVTdHlsZVwiXG4gICAgIFtuZ0NsYXNzXT1cIntwYW5lOiBkZWZhdWx0TGF5b3V0fVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzaWRlUGFuZVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48ZGl2XG4gICAgW25nU3R5bGVdPVwiY29udGFpbmVyU3R5bGVcIlxuICAgIGNsYXNzPVwibW9kYWwtd3JhcHBlclwiXG4gICAgW2NsYXNzLmRlZmF1bHQtbGF5b3V0XT1cImRlZmF1bHRMYXlvdXRcIj5cbiAgICA8YXAtaWNvbi1idXR0b25cbiAgICAgICAgKm5nSWY9XCJjbG9zYWJsZVwiXG4gICAgICAgIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgYXJpYUxhYmVsPVwiQ2xvc2UgYnV0dG9uXCJcbiAgICAgICAgbmFtZT1cImNsb3NlLWJ1dHRvblwiXG4gICAgICAgIGNvbG9yPVwibm9uZVwiXG4gICAgICAgIChvbkNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICB0eXBlPVwiZmxhdFwiXG4gICAgPlxuICAgICAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwiY2xvc2VcIj48L2FwLXN5bWJvbD5cbiAgICA8L2FwLWljb24tYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZSAmJiBoZWFkZXJWaXNpYmxlXCJcbiAgICAgICAgW25nU3R5bGVdPVwiaGVhZGVyU3R5bGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7aGVhZGVyOiBkZWZhdWx0TGF5b3V0fVwiXG4gICAgICAgIFtjbGFzcy5ib3JkZXItYm90dG9tXT1cImhlYWRlckJvdHRvbUJvcmRlckVuYWJsZWRcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwibWFpblRlbXBsYXRlXCJcbiAgICAgICAgW25nU3R5bGVdPVwiY29udGVudFN0eWxlXCJcbiAgICAgICAgW2NsYXNzLmNvbnRlbnRdPVwiZGVmYXVsdExheW91dFwiXG4gICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibWFpblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGUgJiYgZm9vdGVyVmlzaWJsZVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImZvb3RlclN0eWxlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie2Zvb3RlcjogZGVmYXVsdExheW91dH1cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL21vZGFsL3NyYy9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbW9kYWwvc3JjL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxPQUFPLEVBQWlCLE1BQU0sdUJBQXVCLENBQUM7QUFFeEYsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBb0JqRSxNQUFNLE9BQU8sY0FBYztJQUd2QixZQUFtQixTQUEyQyxFQUMzQyxjQUE4QjtRQUQ5QixjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUMzQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFVeEMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFJckIsa0JBQWEsR0FBNEIsRUFBRSxDQUFDO1FBQzVDLG1CQUFjLEdBQTRCLEVBQUUsQ0FBQztRQUM3QyxnQkFBVyxHQUE0QixFQUFFLENBQUM7UUFDMUMsaUJBQVksR0FBNEIsRUFBRSxDQUFDO1FBQzNDLGdCQUFXLEdBQTRCLEVBQUUsQ0FBQztRQUMxQyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQXBCMUIsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENB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QUFPLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQztzSUFjMUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fnb3JhcHVsc2VVaVN5bWJvbE1vZHVsZSwgYXBDbG9zZSwgU3ltYm9sUmVnaXN0cnl9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtOZ0NsYXNzLCBOZ0lmLCBOZ1N0eWxlLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nLCBNYXRMZWdhY3lEaWFsb2dDb25maWcgYXMgTWF0RGlhbG9nQ29uZmlnLCBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7SWNvbkJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcIkBhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvaWNvbi1idXR0b25cIjtcbmltcG9ydCB7QnV0dG9uQ29tcG9uZW50fSBmcm9tIFwiQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9idXR0b25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBNb2RhbENvbmZpZyBleHRlbmRzIE1vZGFsQ29uZmlnQmFzZSB7XG4gICAgY2xvc2FibGU/OiBib29sZWFuO1xuICAgIGhlYWRlckJvdHRvbUJvcmRlckVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsQ29uZmlnQmFzZSB7XG4gICAgYmFja2Ryb3BDbG9zZUVuYWJsZT86IGJvb2xlYW47XG4gICAgbWF0RGlhbG9nQ29uZmlnPzogTWF0RGlhbG9nQ29uZmlnO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2FwLW1vZGFsJyxcbiAgICB0ZW1wbGF0ZVVybDogJ21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtBZ29yYXB1bHNlVWlTeW1ib2xNb2R1bGUsIE5nU3R5bGUsIE5nQ2xhc3MsIE5nSWYsIEJ1dHRvbkNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldCwgSWNvbkJ1dHRvbkNvbXBvbmVudF0sXG4gICAgc3R5bGVVcmxzOiBbJ21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcmVhZG9ubHkgUEFORUxfQ0xBU1MgPSAnbW9kYWwtY29udGFpbmVyJztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb21wb25lbnRUeXBlPGFueT4+LFxuICAgICAgICAgICAgICAgIHB1YmxpYyBzeW1ib2xSZWdpc3RyeTogU3ltYm9sUmVnaXN0cnkpIHtcbiAgICAgICAgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFtcbiAgICAgICAgICAgIGFwQ2xvc2VcbiAgICAgICAgXSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgY2xvc2FibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGVhZGVyQm90dG9tQm9yZGVyRW5hYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBmb290ZXJWaXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBoZWFkZXJWaXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBtYWluVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQElucHV0KCkgY29uZmlnOiBNYXREaWFsb2dDb25maWc7XG4gICAgQElucHV0KCkgc2lkZVBhbmVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBzaWRlUGFuZVN0eWxlOiB7W2FyZzogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgIEBJbnB1dCgpIGNvbnRhaW5lclN0eWxlOiB7W2FyZzogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgIEBJbnB1dCgpIGhlYWRlclN0eWxlOiB7W2FyZzogc3RyaW5nXTogc3RyaW5nfSA9IHt9O1xuICAgIEBJbnB1dCgpIGNvbnRlbnRTdHlsZToge1thcmc6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICBASW5wdXQoKSBmb290ZXJTdHlsZToge1thcmc6IHN0cmluZ106IHN0cmluZ30gPSB7fTtcbiAgICBASW5wdXQoKSBkZWZhdWx0TGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFVzZSBpdCB0byBvcGVuIGEgbW9kYWwgY29udGFpbmluZyB0aGUge0BsaW5rIGNvbXBvbmVudFR5cGV9IGNvbXBvbmVudCwgd2l0aCB0aGUgcmlnaHQgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBzdGF0aWMgb3BlbldpdGhDb21wb25lbnQ8VD4oXG4gICAgICAgIG1hdERpYWxvZzogTWF0RGlhbG9nLFxuICAgICAgICBjb25maWc6IE1vZGFsQ29uZmlnQmFzZSxcbiAgICAgICAgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxUPlxuICAgICk6IE1hdERpYWxvZ1JlZjxUPiB7XG4gICAgICAgIGxldCBtYXREaWFsb2dDb25maWc6IE1hdERpYWxvZ0NvbmZpZztcbiAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgbWF0RGlhbG9nQ29uZmlnID0gY29uZmlnLm1hdERpYWxvZ0NvbmZpZztcbiAgICAgICAgICAgIGlmIChtYXREaWFsb2dDb25maWcpIHtcbiAgICAgICAgICAgICAgICBtYXREaWFsb2dDb25maWcucGFuZWxDbGFzcyA9IEFycmF5LmlzQXJyYXkoY29uZmlnLm1hdERpYWxvZ0NvbmZpZy5wYW5lbENsYXNzKVxuICAgICAgICAgICAgICAgICAgICA/IFsuLi5jb25maWcubWF0RGlhbG9nQ29uZmlnLnBhbmVsQ2xhc3MsIE1vZGFsQ29tcG9uZW50LlBBTkVMX0NMQVNTXSAvLyBpbiBjYXNlIHdoZXJlIHRoZSBwYW5lbENsYXNzIGlzIGFuIGFycmF5XG4gICAgICAgICAgICAgICAgICAgIDogW2NvbmZpZy5tYXREaWFsb2dDb25maWcucGFuZWxDbGFzcywgTW9kYWxDb21wb25lbnQuUEFORUxfQ0xBU1NdOyAvLyBpbiB0aGUgb3RoZXIgY2FzZSwgaXQncyBhIFN0cmluZ1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYXREaWFsb2dDb25maWcgPSB7cGFuZWxDbGFzczogTW9kYWxDb21wb25lbnQuUEFORUxfQ0xBU1N9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M6IE1vZGFsQ29tcG9uZW50LlBBTkVMX0NMQVNTLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBtYXREaWFsb2dDb25maWcuYXV0b0ZvY3VzID0gZmFsc2U7IC8vIFByZXZlbnQgZmlyc3QgYnV0dG9uIHRvIGJlIGZvY3VzZWRcblxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSBtYXREaWFsb2cub3Blbihjb21wb25lbnRUeXBlLCBtYXREaWFsb2dDb25maWcpO1xuICAgICAgICBpZiAoY29uZmlnLmJhY2tkcm9wQ2xvc2VFbmFibGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZSBpdCB0byBvcGVuIGEgbW9kYWwgY29udGFpbmluZyB0aGUgcHJvdmlkZWQgdGVtcGxhdGVzLCB3aXRoIHRoZSByaWdodCBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHN0YXRpYyBvcGVuV2l0aFRlbXBsYXRlcyhcbiAgICAgICAgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICBtYWluVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgIGZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgY29uZmlnPzogTW9kYWxDb25maWcsXG4gICAgICAgIHNpZGVQYW5lVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICk6IE1hdERpYWxvZ1JlZjxNb2RhbENvbXBvbmVudD4ge1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSBNb2RhbENvbXBvbmVudC5vcGVuV2l0aENvbXBvbmVudChtYXREaWFsb2csIGNvbmZpZywgTW9kYWxDb21wb25lbnQpO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuY2xvc2FibGUgPSBjb25maWcgJiYgY29uZmlnLmNsb3NhYmxlID8gY29uZmlnLmNsb3NhYmxlIDogZmFsc2U7XG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5oZWFkZXJCb3R0b21Cb3JkZXJFbmFibGVkID1cbiAgICAgICAgICAgIGNvbmZpZyAmJiBjb25maWcuaGVhZGVyQm90dG9tQm9yZGVyRW5hYmxlZCA/IGNvbmZpZy5oZWFkZXJCb3R0b21Cb3JkZXJFbmFibGVkIDogZmFsc2U7XG4gICAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5oZWFkZXJUZW1wbGF0ZSA9IGhlYWRlclRlbXBsYXRlO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UubWFpblRlbXBsYXRlID0gbWFpblRlbXBsYXRlO1xuICAgICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZm9vdGVyVGVtcGxhdGUgPSBmb290ZXJUZW1wbGF0ZTtcbiAgICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLnNpZGVQYW5lVGVtcGxhdGUgPSBzaWRlUGFuZVRlbXBsYXRlO1xuICAgICAgICByZXR1cm4gZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJzaWRlUGFuZVRlbXBsYXRlXCJcbiAgICAgW25nU3R5bGVdPVwic2lkZVBhbmVTdHlsZVwiXG4gICAgIFtuZ0NsYXNzXT1cIntwYW5lOiBkZWZhdWx0TGF5b3V0fVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzaWRlUGFuZVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48ZGl2XG4gICAgW25nU3R5bGVdPVwiY29udGFpbmVyU3R5bGVcIlxuICAgIGNsYXNzPVwibW9kYWwtd3JhcHBlclwiXG4gICAgW2NsYXNzLmRlZmF1bHQtbGF5b3V0XT1cImRlZmF1bHRMYXlvdXRcIj5cbiAgICA8YXAtaWNvbi1idXR0b25cbiAgICAgICAgKm5nSWY9XCJjbG9zYWJsZVwiXG4gICAgICAgIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgYXJpYUxhYmVsPVwiQ2xvc2UgYnV0dG9uXCJcbiAgICAgICAgbmFtZT1cImNsb3NlLWJ1dHRvblwiXG4gICAgICAgIGNvbG9yPVwibm9uZVwiXG4gICAgICAgIChvbkNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICB0eXBlPVwiZmxhdFwiXG4gICAgPlxuICAgICAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwiY2xvc2VcIj48L2FwLXN5bWJvbD5cbiAgICA8L2FwLWljb24tYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZSAmJiBoZWFkZXJWaXNpYmxlXCJcbiAgICAgICAgW25nU3R5bGVdPVwiaGVhZGVyU3R5bGVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7aGVhZGVyOiBkZWZhdWx0TGF5b3V0fVwiXG4gICAgICAgIFtjbGFzcy5ib3JkZXItYm90dG9tXT1cImhlYWRlckJvdHRvbUJvcmRlckVuYWJsZWRcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwibWFpblRlbXBsYXRlXCJcbiAgICAgICAgW25nU3R5bGVdPVwiY29udGVudFN0eWxlXCJcbiAgICAgICAgW2NsYXNzLmNvbnRlbnRdPVwiZGVmYXVsdExheW91dFwiXG4gICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibWFpblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGUgJiYgZm9vdGVyVmlzaWJsZVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImZvb3RlclN0eWxlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie2Zvb3RlcjogZGVmYXVsdExheW91dH1cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive, HostListener, inject, ElementRef, ChangeDetectorRef, Input, EventEmitter, Output, forwardRef, Attribute } from '@angular/core';
3
3
  import { NG_VALIDATORS } from '@angular/forms';
4
+ import DOMPurify from 'dompurify';
4
5
  import { fromEvent } from 'rxjs';
5
6
  import * as i1 from '@agorapulse/ui-components/tooltip-neo';
6
7
 
@@ -384,11 +385,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
384
385
  type: Input
385
386
  }] } });
386
387
 
387
- const PART_START = '<ng-container data-mst="';
388
- const PARSE_MIDDLE = '">';
389
- const PARSE_END = '</ng-container>';
390
- const DATA_SEPARATOR = ',';
391
- const OPTIONAL_EVENTS_SEPARATOR = ';';
388
+ const DATA_MST = 'data-mst';
392
389
  /**
393
390
  * This directive aims to parse simple string to extract some specific tags and to turn them into SPAN with styling classes attributes and optional event listening.
394
391
  * The specific tags must this schema: <ng-container data-mst="STYLING-CLASSES">TEXT</ng-container>.
@@ -397,111 +394,36 @@ const OPTIONAL_EVENTS_SEPARATOR = ';';
397
394
  class MultiStyleTextDirective {
398
395
  set multiStyleText(fullText) {
399
396
  // First remove previously added children (on update).
400
- for (const child of this.childrenCreated) {
401
- this.renderer.removeChild(this.elRef.nativeElement, child);
397
+ this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', "");
398
+ if (!fullText || fullText.length <= 0) {
399
+ return;
402
400
  }
403
- if (fullText && fullText.length > 0) {
404
- MultiStyleTextDirective.parse(fullText).forEach((part) => {
405
- if (part.clazz || part.clickName) {
406
- // Parsed item with styling classes and/or event listening.
407
- const span = this.renderer.createElement('span');
408
- const text = this.renderer.createText(part.content);
409
- this.renderer.appendChild(span, text);
410
- if (part.clazz) {
411
- part.clazz.forEach(clazz => this.renderer.addClass(span, clazz));
401
+ this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', DOMPurify.sanitize(fullText.replace(/ng-container/g, 'span')));
402
+ Array.from(this.elRef.nativeElement.children).forEach((childNode) => {
403
+ if (childNode.nodeType == 1 && childNode.tagName.toLowerCase() === 'span') { // Node.ELEMENT_NODE
404
+ const span = this.renderer.createElement('span');
405
+ span.innerHTML = childNode.innerHTML;
406
+ this.elRef.nativeElement.replaceChild(span, childNode);
407
+ const mstValue = childNode.getAttribute(DATA_MST);
408
+ if (mstValue) {
409
+ const mstContents = mstValue.split(';');
410
+ // Bind click events
411
+ if (mstContents[1]) {
412
+ this.renderer.listen(span, 'click', () => this.partEvent.emit(mstContents[1]));
412
413
  }
413
- if (part.clickName) {
414
- this.renderer.listen(span, 'click', () => this.partEvent.emit(part.clickName));
414
+ // Add classes
415
+ if (mstContents[0] && mstContents[0].length > 0) {
416
+ this.renderer.setAttribute(span, 'class', mstContents[0].replace(',', ' '));
415
417
  }
416
- this.renderer.appendChild(this.elRef.nativeElement, span);
417
- this.childrenCreated.push(span);
418
- }
419
- else {
420
- // Specific of part without styling classes (could be used to get event listening only)
421
- const text = this.renderer.createText(part.content);
422
- this.renderer.appendChild(this.elRef.nativeElement, text);
423
- this.childrenCreated.push(text);
424
418
  }
425
- });
426
- }
419
+ }
420
+ });
427
421
  }
428
422
  constructor(elRef, renderer) {
429
423
  this.elRef = elRef;
430
424
  this.renderer = renderer;
431
- this.childrenCreated = [];
432
425
  this.partEvent = new EventEmitter();
433
426
  }
434
- static parse(toParse) {
435
- const parts = [];
436
- let startIndex = toParse.indexOf(PART_START);
437
- while (startIndex >= 0) {
438
- if (startIndex > 0) {
439
- // Optional text before first parsed part.
440
- parts.push({ content: toParse.substring(0, startIndex) });
441
- }
442
- const elem = this.cutFirstGroup(toParse.substring(startIndex));
443
- if (elem === 'invalid') {
444
- return [];
445
- }
446
- else if (elem) {
447
- parts.push({
448
- content: elem.content,
449
- clazz: elem.classes,
450
- clickName: elem.clickName
451
- });
452
- toParse = elem.rest;
453
- startIndex = toParse.indexOf(PART_START);
454
- }
455
- else {
456
- parts.push({ content: toParse });
457
- }
458
- }
459
- // Very end
460
- if (toParse.length > 0) {
461
- parts.push({ content: toParse });
462
- }
463
- return parts;
464
- }
465
- static cutFirstGroup(toCut) {
466
- if (!toCut.startsWith(PART_START)) {
467
- // String doesn't start with expected parser start.
468
- return null;
469
- }
470
- const afterParserStart = toCut.substring(PART_START.length);
471
- let index = afterParserStart.indexOf(PARSE_MIDDLE);
472
- if (index <= 0) {
473
- console.error('Not able to parse invalid string: ' + toCut);
474
- return 'invalid';
475
- }
476
- const data = afterParserStart.substring(0, index);
477
- let classes;
478
- let clickName;
479
- const eventsPartSeparatorIndex = data.indexOf(OPTIONAL_EVENTS_SEPARATOR);
480
- if (eventsPartSeparatorIndex > 0) {
481
- // Case the data contains events part with dedicated separator
482
- classes = data.substring(0, eventsPartSeparatorIndex);
483
- clickName = data.substring(eventsPartSeparatorIndex + 1);
484
- }
485
- else {
486
- // Otherwise, only design classes are provided
487
- classes = data;
488
- clickName = undefined;
489
- }
490
- let rest = afterParserStart.substring(index + PARSE_MIDDLE.length);
491
- index = rest.indexOf(PARSE_END);
492
- if (index <= 0) {
493
- console.error('Not able to parse invalid string: ' + toCut);
494
- return 'invalid';
495
- }
496
- const content = rest.substring(0, index);
497
- rest = rest.substring(index + PARSE_END.length);
498
- return {
499
- content,
500
- classes: classes.split(DATA_SEPARATOR),
501
- clickName,
502
- rest
503
- };
504
- }
505
427
  }
506
428
  MultiStyleTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: MultiStyleTextDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
507
429
  MultiStyleTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: MultiStyleTextDirective, isStandalone: true, selector: "[multiStyleText]", inputs: { multiStyleText: "multiStyleText" }, outputs: { partEvent: "partEvent" }, ngImport: i0 });