@agorapulse/ui-components 15.0.37 → 15.0.39
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/agorapulse-ui-components-15.0.39.tgz +0 -0
- package/directives/multi-style-text.directive.d.ts +1 -4
- package/esm2020/directives/multi-style-text.directive.mjs +25 -103
- package/esm2020/split-button/split-button.component.mjs +3 -3
- package/fesm2015/agorapulse-ui-components-directives.mjs +22 -100
- package/fesm2015/agorapulse-ui-components-directives.mjs.map +1 -1
- package/fesm2015/agorapulse-ui-components-split-button.mjs +2 -2
- package/fesm2015/agorapulse-ui-components-split-button.mjs.map +1 -1
- package/fesm2020/agorapulse-ui-components-directives.mjs +22 -100
- package/fesm2020/agorapulse-ui-components-directives.mjs.map +1 -1
- package/fesm2020/agorapulse-ui-components-split-button.mjs +2 -2
- package/fesm2020/agorapulse-ui-components-split-button.mjs.map +1 -1
- package/package.json +1 -1
- package/agorapulse-ui-components-15.0.37.tgz +0 -0
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
1
|
+
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import DOMPurify from 'dompurify';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
const
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
30
|
-
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQXlCLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRTVGLE1BQU0sVUFBVSxHQUFHLDBCQUEwQixDQUFDO0FBQzlDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztBQUMxQixNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztBQUNwQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFDM0IsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLENBQUM7QUFRdEM7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyx1QkFBdUI7SUFJaEMsSUFBYSxjQUFjLENBQUMsUUFBZ0I7UUFDeEMsc0RBQXNEO1FBQ3RELEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5RDtRQUVELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtnQkFDM0QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7b0JBQzlCLDJEQUEyRDtvQkFDM0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN0QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztxQkFDcEU7b0JBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO3FCQUNsRjtvQkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ25DO3FCQUFNO29CQUNILHVGQUF1RjtvQkFDdkYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNwRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ25DO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFJRCxZQUNZLEtBQWlCLEVBQ2pCLFFBQW1CO1FBRG5CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXJDdkIsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFpQzFCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBTWpELENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQWU7UUFDaEMsTUFBTSxLQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsT0FBTyxVQUFVLElBQUksQ0FBQyxFQUFFO1lBQ3BCLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRTtnQkFDaEIsMENBQTBDO2dCQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFDLENBQUMsQ0FBQzthQUMzRDtZQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQy9ELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDcEIsT0FBTyxFQUFFLENBQUM7YUFDYjtpQkFBTSxJQUFJLElBQUksRUFBRTtnQkFDYixLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO29CQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQzVCLENBQUMsQ0FBQztnQkFDSCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDcEIsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDNUM7aUJBQU07Z0JBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFDO2FBQ2xDO1NBQ0o7UUFDRCxXQUFXO1FBQ1gsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7U0FDbEM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQy9CLG1EQUFtRDtZQUNuRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1RCxJQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM1RCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxPQUFPLENBQUM7UUFDWixJQUFJLFNBQVMsQ0FBQztRQUNkLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3pFLElBQUksd0JBQXdCLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLDhEQUE4RDtZQUM5RCxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztZQUN0RCxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM1RDthQUFNO1lBQ0gsOENBQThDO1lBQzlDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixTQUFTLEdBQUcsU0FBUyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM1RCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEQsT0FBTztZQUNILE9BQU87WUFDUCxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDdEMsU0FBUztZQUNULElBQUk7U0FDUCxDQUFDO0lBQ04sQ0FBQzs7b0hBakhRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7eUhBS2dCLGNBQWM7c0JBQTFCLEtBQUs7Z0JBK0JJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIFJlbmRlcmVyMiwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBQQVJUX1NUQVJUID0gJzxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCInO1xuY29uc3QgUEFSU0VfTUlERExFID0gJ1wiPic7XG5jb25zdCBQQVJTRV9FTkQgPSAnPC9uZy1jb250YWluZXI+JztcbmNvbnN0IERBVEFfU0VQQVJBVE9SID0gJywnO1xuY29uc3QgT1BUSU9OQUxfRVZFTlRTX1NFUEFSQVRPUiA9ICc7JztcblxuaW50ZXJmYWNlIFBhcnQge1xuICAgIGNvbnRlbnQ6IHN0cmluZztcbiAgICBjbGF6ej86IHN0cmluZ1tdOyAvLyBOb3QgZGVmaW5lZCBvbiBzdGVyaWxlIHRleHRcbiAgICBjbGlja05hbWU/OiBzdHJpbmc7IC8vIE5vdCBkZWZpbmVkIG9uIHN0ZXJpbGUgdGV4dFxufVxuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGFpbXMgdG8gcGFyc2Ugc2ltcGxlIHN0cmluZyB0byBleHRyYWN0IHNvbWUgc3BlY2lmaWMgdGFncyBhbmQgdG8gdHVybiB0aGVtIGludG8gU1BBTiB3aXRoIHN0eWxpbmcgY2xhc3NlcyBhdHRyaWJ1dGVzIGFuZCBvcHRpb25hbCBldmVudCBsaXN0ZW5pbmcuXG4gKiBUaGUgc3BlY2lmaWMgdGFncyBtdXN0IHRoaXMgc2NoZW1hOiA8bmctY29udGFpbmVyIGRhdGEtbXN0PVwiU1RZTElORy1DTEFTU0VTXCI+VEVYVDwvbmctY29udGFpbmVyPi5cbiAqIEV4YW1wbGU6ICdMb3JlbSA8bmctY29udGFpbmVyIGRhdGEtbXN0PVwibXktc3R5bGVcIj5pcHN1bTwvbmctY29udGFpbmVyPiBkb2xvciBzaXQgYW1ldCcuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbbXVsdGlTdHlsZVRleHRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVN0eWxlVGV4dERpcmVjdGl2ZSB7XG5cbiAgICBwcml2YXRlIGNoaWxkcmVuQ3JlYXRlZDogYW55W10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHNldCBtdWx0aVN0eWxlVGV4dChmdWxsVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIC8vIEZpcnN0IHJlbW92ZSBwcmV2aW91c2x5IGFkZGVkIGNoaWxkcmVuIChvbiB1cGRhdGUpLlxuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuY2hpbGRyZW5DcmVhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgY2hpbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZ1bGxUZXh0ICYmIGZ1bGxUZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIE11bHRpU3R5bGVUZXh0RGlyZWN0aXZlLnBhcnNlKGZ1bGxUZXh0KS5mb3JFYWNoKChwYXJ0OiBQYXJ0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcnQuY2xhenogfHwgcGFydC5jbGlja05hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUGFyc2VkIGl0ZW0gd2l0aCBzdHlsaW5nIGNsYXNzZXMgYW5kL29yIGV2ZW50IGxpc3RlbmluZy5cbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVUZXh0KHBhcnQuY29udGVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoc3BhbiwgdGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0LmNsYXp6KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0LmNsYXp6LmZvckVhY2goY2xhenogPT4gdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhzcGFuLCBjbGF6eikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0LmNsaWNrTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oc3BhbiwgJ2NsaWNrJywgKCkgPT4gdGhpcy5wYXJ0RXZlbnQuZW1pdChwYXJ0LmNsaWNrTmFtZSkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCBzcGFuKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZHJlbkNyZWF0ZWQucHVzaChzcGFuKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBTcGVjaWZpYyBvZiBwYXJ0IHdpdGhvdXQgc3R5bGluZyBjbGFzc2VzIChjb3VsZCBiZSB1c2VkIHRvIGdldCBldmVudCBsaXN0ZW5pbmcgb25seSlcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dChwYXJ0LmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5DcmVhdGVkLnB1c2godGV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgcGFydEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHBhcnNlKHRvUGFyc2U6IHN0cmluZyk6IFBhcnRbXSB7XG4gICAgICAgIGNvbnN0IHBhcnRzOiBQYXJ0W10gPSBbXTtcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSB0b1BhcnNlLmluZGV4T2YoUEFSVF9TVEFSVCk7XG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGlmIChzdGFydEluZGV4ID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIE9wdGlvbmFsIHRleHQgYmVmb3JlIGZpcnN0IHBhcnNlZCBwYXJ0LlxuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goe2NvbnRlbnQ6IHRvUGFyc2Uuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbGVtID0gdGhpcy5jdXRGaXJzdEdyb3VwKHRvUGFyc2Uuc3Vic3RyaW5nKHN0YXJ0SW5kZXgpKTtcbiAgICAgICAgICAgIGlmIChlbGVtID09PSAnaW52YWxpZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW0pIHtcbiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogZWxlbS5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBjbGF6ejogZWxlbS5jbGFzc2VzLFxuICAgICAgICAgICAgICAgICAgICBjbGlja05hbWU6IGVsZW0uY2xpY2tOYW1lXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdG9QYXJzZSA9IGVsZW0ucmVzdDtcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4ID0gdG9QYXJzZS5pbmRleE9mKFBBUlRfU1RBUlQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYXJ0cy5wdXNoKHtjb250ZW50OiB0b1BhcnNlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gVmVyeSBlbmRcbiAgICAgICAgaWYgKHRvUGFyc2UubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcGFydHMucHVzaCh7Y29udGVudDogdG9QYXJzZX0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJ0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjdXRGaXJzdEdyb3VwKHRvQ3V0OiBzdHJpbmcpOiB7Y29udGVudDogc3RyaW5nLCBjbGFzc2VzOiBzdHJpbmdbXSwgY2xpY2tOYW1lOiBzdHJpbmcsIHJlc3Q6IHN0cmluZ30gfCAnaW52YWxpZCcgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0b0N1dC5zdGFydHNXaXRoKFBBUlRfU1RBUlQpKSB7XG4gICAgICAgICAgICAvLyBTdHJpbmcgZG9lc24ndCBzdGFydCB3aXRoIGV4cGVjdGVkIHBhcnNlciBzdGFydC5cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYWZ0ZXJQYXJzZXJTdGFydCA9IHRvQ3V0LnN1YnN0cmluZyhQQVJUX1NUQVJULmxlbmd0aCk7XG4gICAgICAgIGxldCBpbmRleCA9IGFmdGVyUGFyc2VyU3RhcnQuaW5kZXhPZihQQVJTRV9NSURETEUpO1xuICAgICAgICBpZiAoaW5kZXggPD0gMCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignTm90IGFibGUgdG8gcGFyc2UgaW52YWxpZCBzdHJpbmc6ICcgKyB0b0N1dCk7XG4gICAgICAgICAgICByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhZnRlclBhcnNlclN0YXJ0LnN1YnN0cmluZygwLCBpbmRleCk7XG4gICAgICAgIGxldCBjbGFzc2VzO1xuICAgICAgICBsZXQgY2xpY2tOYW1lO1xuICAgICAgICBjb25zdCBldmVudHNQYXJ0U2VwYXJhdG9ySW5kZXggPSBkYXRhLmluZGV4T2YoT1BUSU9OQUxfRVZFTlRTX1NFUEFSQVRPUik7XG4gICAgICAgIGlmIChldmVudHNQYXJ0U2VwYXJhdG9ySW5kZXggPiAwKSB7XG4gICAgICAgICAgICAvLyBDYXNlIHRoZSBkYXRhIGNvbnRhaW5zIGV2ZW50cyBwYXJ0IHdpdGggZGVkaWNhdGVkIHNlcGFyYXRvclxuICAgICAgICAgICAgY2xhc3NlcyA9IGRhdGEuc3Vic3RyaW5nKDAsIGV2ZW50c1BhcnRTZXBhcmF0b3JJbmRleCk7XG4gICAgICAgICAgICBjbGlja05hbWUgPSBkYXRhLnN1YnN0cmluZyhldmVudHNQYXJ0U2VwYXJhdG9ySW5kZXggKyAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgb25seSBkZXNpZ24gY2xhc3NlcyBhcmUgcHJvdmlkZWRcbiAgICAgICAgICAgIGNsYXNzZXMgPSBkYXRhO1xuICAgICAgICAgICAgY2xpY2tOYW1lID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN0ID0gYWZ0ZXJQYXJzZXJTdGFydC5zdWJzdHJpbmcoaW5kZXggKyBQQVJTRV9NSURETEUubGVuZ3RoKTtcbiAgICAgICAgaW5kZXggPSByZXN0LmluZGV4T2YoUEFSU0VfRU5EKTtcbiAgICAgICAgaWYgKGluZGV4IDw9IDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ05vdCBhYmxlIHRvIHBhcnNlIGludmFsaWQgc3RyaW5nOiAnICsgdG9DdXQpO1xuICAgICAgICAgICAgcmV0dXJuICdpbnZhbGlkJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb250ZW50ID0gcmVzdC5zdWJzdHJpbmcoMCwgaW5kZXgpO1xuICAgICAgICByZXN0ID0gcmVzdC5zdWJzdHJpbmcoaW5kZXggKyBQQVJTRV9FTkQubGVuZ3RoKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIGNsYXNzZXM6IGNsYXNzZXMuc3BsaXQoREFUQV9TRVBBUkFUT1IpLFxuICAgICAgICAgICAgY2xpY2tOYW1lLFxuICAgICAgICAgICAgcmVzdFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcy9zcmMvbXVsdGktc3R5bGUtdGV4dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUM7O0FBRWxDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQTtBQVEzQjs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVoQyxJQUFhLGNBQWMsQ0FBQyxRQUFnQjtRQUN4QyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUMzRCxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQ2hFLENBQUM7UUFFRixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQXNCLEVBQUUsRUFBRTtZQUM3RSxJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLEVBQUUsb0JBQW9CO2dCQUU3RixNQUFNLElBQUksR0FBZ0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFFdkQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxRQUFRLEVBQUU7b0JBQ1YsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEMsb0JBQW9CO29CQUNwQixJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNsRjtvQkFDRCxjQUFjO29CQUNkLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7cUJBQzlFO2lCQUVKO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFJRCxZQUNZLEtBQWlCLEVBQ2pCLFFBQW1CO1FBRG5CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUpyQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUs5QyxDQUFDOztvSEExQ0ssdUJBQXVCO3dHQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt5SEFHZ0IsY0FBYztzQkFBMUIsS0FBSztnQkFtQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgRE9NUHVyaWZ5IGZyb20gJ2RvbXB1cmlmeSc7XG5cbmNvbnN0IERBVEFfTVNUID0gJ2RhdGEtbXN0J1xuXG5pbnRlcmZhY2UgUGFydCB7XG4gICAgY29udGVudDogc3RyaW5nO1xuICAgIGNsYXp6Pzogc3RyaW5nW107IC8vIE5vdCBkZWZpbmVkIG9uIHN0ZXJpbGUgdGV4dFxuICAgIGNsaWNrTmFtZT86IHN0cmluZzsgLy8gTm90IGRlZmluZWQgb24gc3RlcmlsZSB0ZXh0XG59XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgYWltcyB0byBwYXJzZSBzaW1wbGUgc3RyaW5nIHRvIGV4dHJhY3Qgc29tZSBzcGVjaWZpYyB0YWdzIGFuZCB0byB0dXJuIHRoZW0gaW50byBTUEFOIHdpdGggc3R5bGluZyBjbGFzc2VzIGF0dHJpYnV0ZXMgYW5kIG9wdGlvbmFsIGV2ZW50IGxpc3RlbmluZy5cbiAqIFRoZSBzcGVjaWZpYyB0YWdzIG11c3QgdGhpcyBzY2hlbWE6IDxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCJTVFlMSU5HLUNMQVNTRVNcIj5URVhUPC9uZy1jb250YWluZXI+LlxuICogRXhhbXBsZTogJ0xvcmVtIDxuZy1jb250YWluZXIgZGF0YS1tc3Q9XCJteS1zdHlsZVwiPmlwc3VtPC9uZy1jb250YWluZXI+IGRvbG9yIHNpdCBhbWV0Jy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1ttdWx0aVN0eWxlVGV4dF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU3R5bGVUZXh0RGlyZWN0aXZlIHtcblxuICAgIEBJbnB1dCgpIHNldCBtdWx0aVN0eWxlVGV4dChmdWxsVGV4dDogc3RyaW5nKSB7XG4gICAgICAgIC8vIEZpcnN0IHJlbW92ZSBwcmV2aW91c2x5IGFkZGVkIGNoaWxkcmVuIChvbiB1cGRhdGUpLlxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsIFwiXCIpO1xuICAgICAgICBpZiAoIWZ1bGxUZXh0IHx8IGZ1bGxUZXh0Lmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2lubmVySFRNTCcsXG4gICAgICAgICAgICBET01QdXJpZnkuc2FuaXRpemUoZnVsbFRleHQucmVwbGFjZSgvbmctY29udGFpbmVyL2csICdzcGFuJykpXG4gICAgICAgICk7XG5cbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4pLmZvckVhY2goKGNoaWxkTm9kZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChjaGlsZE5vZGUubm9kZVR5cGUgPT0gMSAmJiBjaGlsZE5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc3BhbicpIHsgLy8gTm9kZS5FTEVNRU5UX05PREVcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNwYW46IEhUTUxFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgc3Bhbi5pbm5lckhUTUwgPSBjaGlsZE5vZGUuaW5uZXJIVE1MO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5yZXBsYWNlQ2hpbGQoc3BhbiwgY2hpbGROb2RlKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1zdFZhbHVlID0gY2hpbGROb2RlLmdldEF0dHJpYnV0ZShEQVRBX01TVCk7XG4gICAgICAgICAgICAgICAgaWYgKG1zdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1zdENvbnRlbnRzID0gbXN0VmFsdWUuc3BsaXQoJzsnKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQmluZCBjbGljayBldmVudHNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbihzcGFuLCAnY2xpY2snLCAoKSA9PiB0aGlzLnBhcnRFdmVudC5lbWl0KG1zdENvbnRlbnRzWzFdKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1zdENvbnRlbnRzWzBdICYmIG1zdENvbnRlbnRzWzBdLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHNwYW4sICdjbGFzcycsIG1zdENvbnRlbnRzWzBdLnJlcGxhY2UoJywnLCAnICcpKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBwYXJ0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICkge31cblxufVxuIl19
|
|
@@ -65,11 +65,11 @@ export class SplitButtonComponent {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
SplitButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
-
SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: SplitButtonComponent, isStandalone: true, selector: "ap-split-button[name]", inputs: { ariaLabel: "ariaLabel", disabled: "disabled", name: "name", config: "config", menuTrigger: "menuTrigger", splitDisabled: "splitDisabled", symbolPosition: "symbolPosition", splitButtonDataTest: "splitButtonDataTest" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed", click: "click", focus: "focus", blur: "blur" }, host: { listeners: { "window:keyup.space": "onSpaceKeyUp($event)" }, properties: { "attr.disabled": "disabled || null" } }, providers: [], queries: [{ propertyName: "symbolComponent", first: true, predicate: SymbolComponent, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true }, { propertyName: "splitButtonElement", first: true, predicate: ["splitButton"], descendants: true }], hostDirectives: [{ directive: i1.BaseButtonDirective }], ngImport: i0, template: "<button\n #button\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\"\n>\n <ng-content select=\"span\"></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n</button>\n<button\n #splitButton\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"splitDisabled.toString()\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n (click)=\"onSplitButtonClickHandle($event)\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\"\n>\n <ap-symbol symbolId=\"arrow-down-1\"\n size=\"nano\"\n [class.opened]=\"menuOpen\"></ap-symbol>\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
68
|
+
SplitButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: SplitButtonComponent, isStandalone: true, selector: "ap-split-button[name]", inputs: { ariaLabel: "ariaLabel", disabled: "disabled", name: "name", config: "config", menuTrigger: "menuTrigger", splitDisabled: "splitDisabled", symbolPosition: "symbolPosition", splitButtonDataTest: "splitButtonDataTest" }, outputs: { menuOpened: "menuOpened", menuClosed: "menuClosed", click: "click", focus: "focus", blur: "blur" }, host: { listeners: { "window:keyup.space": "onSpaceKeyUp($event)" }, properties: { "attr.disabled": "(disabled && splitDisabled) || null" } }, providers: [], queries: [{ propertyName: "symbolComponent", first: true, predicate: SymbolComponent, descendants: true }], viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true }, { propertyName: "splitButtonElement", first: true, predicate: ["splitButton"], descendants: true }], hostDirectives: [{ directive: i1.BaseButtonDirective }], ngImport: i0, template: "<button\n #button\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\"\n>\n <ng-content select=\"span\"></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n</button>\n<button\n #splitButton\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"splitDisabled.toString()\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n (click)=\"onSplitButtonClickHandle($event)\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\"\n>\n <ap-symbol symbolId=\"arrow-down-1\"\n size=\"nano\"\n [class.opened]=\"menuOpen\"></ap-symbol>\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol[symbolId]", inputs: ["color", "symbolId", "size", "state"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: SplitButtonComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-split-button[name]', standalone: true, imports: [NgIf, SymbolComponent, CommonModule, MatMenuModule], providers: [], encapsulation: ViewEncapsulation.None, hostDirectives: [BaseButtonDirective], host: {
|
|
72
|
-
'[attr.disabled]': 'disabled || null',
|
|
72
|
+
'[attr.disabled]': '(disabled && splitDisabled) || null',
|
|
73
73
|
}, template: "<button\n #button\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled?.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\"\n>\n <ng-content select=\"span\"></ng-content>\n <ng-content select=\"ap-symbol\"></ng-content>\n</button>\n<button\n #splitButton\n #trigger=\"matMenuTrigger\"\n role=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"splitDisabled.toString()\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n (click)=\"onSplitButtonClickHandle($event)\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\"\n>\n <ap-symbol symbolId=\"arrow-down-1\"\n size=\"nano\"\n [class.opened]=\"menuOpen\"></ap-symbol>\n</button>\n", styles: ["ap-split-button{--loading-bar-width: 50px;display:inline-flex;gap:1px;position:relative}ap-split-button[disabled]{pointer-events:none}ap-split-button button{border:none;position:relative;padding:var(--comp-split-button-padding-horizontal) var(--comp-split-button-padding-vertical);max-height:var(--comp-button-height);min-height:var(--comp-button-height);overflow:hidden;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:10px}ap-split-button button.inverse{flex-direction:row-reverse}ap-split-button button:hover:not(:disabled):not(.loading){cursor:pointer}ap-split-button button:disabled{pointer-events:none}@media (hover: hover){ap-split-button button:focus:not(:disabled):not(:active):not(.loading){outline:2px solid var(--ref-color-electric-blue-100);outline-offset:1px;z-index:10}}ap-split-button button span{font-size:var(--comp-split-button-text-size);font-family:var(--comp-split-button-text-font-family);line-height:var(--comp-split-button-text-line-height);font-weight:var(--comp-split-button-text-weight);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}ap-split-button button.loading{pointer-events:none}ap-split-button button.primary span,ap-split-button button.primary ap-symbol{color:var(--ref-color-white)}ap-split-button button.primary.orange{background:var(--ref-color-orange-100)}ap-split-button button.primary.orange:hover{background-color:var(--ref-color-orange-80)}ap-split-button button.primary.orange:active:not(:disabled){background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange:disabled{background-color:var(--ref-color-orange-20)}ap-split-button button.primary.orange.loading{background-color:var(--ref-color-orange-60)}ap-split-button button.primary.orange .loading-bar{background-color:var(--ref-color-orange-100)}ap-split-button button.primary.blue{background:var(--ref-color-electric-blue-100)}ap-split-button button.primary.blue:hover{background-color:var(--ref-color-electric-blue-80)}ap-split-button button.primary.blue:active:not(:disabled){background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue:disabled{background-color:var(--ref-color-electric-blue-20)}ap-split-button button.primary.blue.loading{background-color:var(--ref-color-electric-blue-60)}ap-split-button button.primary.blue .loading-bar{background-color:var(--ref-color-electric-blue-100)}ap-split-button button:first-child{border-top-left-radius:var(--comp-split-button-border-radius);border-bottom-left-radius:var(--comp-split-button-border-radius)}ap-split-button button:last-child{border-top-right-radius:var(--comp-split-button-border-radius);border-bottom-right-radius:var(--comp-split-button-border-radius);padding:var(--comp-split-button-padding-horizontal) 10px var(--comp-split-button-padding-horizontal) 10px}ap-split-button button ap-symbol{will-change:transform;transition:.2s ease-in-out}ap-split-button button ap-symbol.opened{transform:rotate(180deg)}\n"] }]
|
|
74
74
|
}], ctorParameters: function () { return []; }, propDecorators: { buttonElement: [{
|
|
75
75
|
type: ViewChild,
|
|
@@ -110,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
110
110
|
type: HostListener,
|
|
111
111
|
args: ['window:keyup.space', ['$event']]
|
|
112
112
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcGxpdC1idXR0b24vc3JjL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3BsaXQtYnV0dG9uL3NyYy9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFFWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFtQnpFLE1BQU0sT0FBTyxvQkFBb0I7SUE4QjdCO1FBN0JRLG1CQUFjLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RCx3QkFBbUIsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFLckYsYUFBUSxHQUF3QixLQUFLLENBQUM7UUFJdEMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsbUJBQWMsR0FBcUIsT0FBTyxDQUFDO1FBTzFDLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxlQUFVLEdBQXVCLElBQUksWUFB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QVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRW9CLGtCQUFrQjtzQkFBM0MsU0FBUzt1QkFBQyxhQUFhO2dCQUVPLGVBQWU7c0JBQTdDLFlBQVk7dUJBQUMsZUFBZTtnQkFFbkIsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLEtBQUs7c0JBQWQsTUFBTTtnQkFFRyxLQUFLO3NCQUFkLE1BQU07Z0JBRUcsSUFBSTtzQkFBYixNQUFNO2dCQWdEUCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2UsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHthcEFycm93RG93bjEsIFN5bWJvbENvbXBvbmVudCwgU3ltYm9sUmVnaXN0cnl9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQge01hdExlZ2FjeU1lbnV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1tZW51JztcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQge0Jhc2VCdXR0b25EaXJlY3RpdmV9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcyc7XG5cbnR5cGUgU3BsaXRCdXR0b25Db25maWcgPSB7c3R5bGU6ICdwcmltYXJ5JzsgY29sb3I6ICdvcmFuZ2UnIHwgJ2JsdWUnfTtcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1zcGxpdC1idXR0b25bbmFtZV0nLFxuICAgIHN0eWxlVXJsczogWycuL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFN5bWJvbENvbXBvbmVudCwgQ29tbW9uTW9kdWxlLCBNYXRNZW51TW9kdWxlXSxcbiAgICBwcm92aWRlcnM6IFtdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtCYXNlQnV0dG9uRGlyZWN0aXZlXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU3BsaXRCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcbiAgICBwcml2YXRlIHN5bWJvbFJlZ2lzdHJ5OiBTeW1ib2xSZWdpc3RyeSA9IGluamVjdChTeW1ib2xSZWdpc3RyeSk7XG4gICAgcmVhZG9ubHkgYmFzZUJ1dHRvbkRpcmVjdGl2ZTogQmFzZUJ1dHRvbkRpcmVjdGl2ZSA9IGluamVjdChCYXNlQnV0dG9uRGlyZWN0aXZlLCB7c2VsZjogdHJ1ZX0pO1xuXG4gICAgQFZpZXdDaGlsZCgnYnV0dG9uJykgYnV0dG9uRWxlbWVudDogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgICBASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBjb25maWc6IFNwbGl0QnV0dG9uQ29uZmlnO1xuICAgIEBJbnB1dCgpIG1lbnVUcmlnZ2VyOiBNYXRMZWdhY3lNZW51O1xuICAgIEBJbnB1dCgpIHNwbGl0RGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzeW1ib2xQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdyaWdodCc7XG4gICAgQElucHV0KCkgc3BsaXRCdXR0b25EYXRhVGVzdDogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZCgnc3BsaXRCdXR0b24nKSBzcGxpdEJ1dHRvbkVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gICAgQENvbnRlbnRDaGlsZChTeW1ib2xDb21wb25lbnQpIHN5bWJvbENvbXBvbmVudDogU3ltYm9sQ29tcG9uZW50O1xuXG4gICAgQE91dHB1dCgpIG1lbnVPcGVuZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbWVudUNsb3NlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBjbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBtZW51T3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3ltYm9sUmVnaXN0cnkucmVnaXN0ZXJTeW1ib2xzKFthcEFycm93RG93bjFdKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN5bWJvbENvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5zeW1ib2xDb21wb25lbnQuc2l6ZSA9ICdtaWNybyc7XG4gICAgICAgICAgICB0aGlzLnN5bWJvbENvbXBvbmVudC5uZ09uQ2hhbmdlcyh7XG4gICAgICAgICAgICAgICAgc2l6ZTogbmV3IFNpbXBsZUNoYW5nZShudWxsLCB0aGlzLnN5bWJvbENvbXBvbmVudC5zaXplLCBmYWxzZSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU3BsaXRCdXR0b25DbGlja0hhbmRsZSgkZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGhhbmRsZU1lbnVPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudU9wZW5lZC5lbWl0KCk7XG4gICAgICAgIHRoaXMubWVudU9wZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIHRoaXMuc3BsaXRCdXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cblxuICAgIGhhbmRsZU1lbnVDbG9zZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUNsb3NlZC5lbWl0KCk7XG4gICAgICAgIHRoaXMubWVudU9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICB0aGlzLnNwbGl0QnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICB9XG5cbiAgICBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBvbkNsaWNrSGFuZGxlKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5jbGljay5lbWl0KCRldmVudCk7XG4gICAgICAgIHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgdGhpcy5ibHVyLmVtaXQoJGV2ZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuc3BhY2UnLCBbJyRldmVudCddKVxuICAgIG9uU3BhY2VLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICAjYnV0dG9uXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgW2NsYXNzLnByaW1hcnldPVwiY29uZmlnLnN0eWxlID09PSAncHJpbWFyeSdcIlxuICAgIFtjbGFzcy5vcmFuZ2VdPVwiY29uZmlnLmNvbG9yID09PSAnb3JhbmdlJ1wiXG4gICAgW2NsYXNzLmJsdWVdPVwiY29uZmlnLmNvbG9yID09PSAnYmx1ZSdcIlxuICAgIFtjbGFzcy5pbnZlcnNlXT1cInN5bWJvbFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2F0dHIuaWRdPVwiYmFzZUJ1dHRvbkRpcmVjdGl2ZS5ob3N0SWRcIlxuICAgIFthdHRyLmRhdGEtdGVzdF09XCJiYXNlQnV0dG9uRGlyZWN0aXZlLmhvc3REYXRhVGVzdCA/PyBuYW1lXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkPy50b1N0cmluZygpXCJcbiAgICAoY2xpY2spPVwib25DbGlja0hhbmRsZSgkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwiZm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJibHVyLmVtaXQoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3BhblwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhcC1zeW1ib2xcIj48L25nLWNvbnRlbnQ+XG48L2J1dHRvbj5cbjxidXR0b25cbiAgICAjc3BsaXRCdXR0b25cbiAgICAjdHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCJcbiAgICByb2xlPVwiYnV0dG9uXCJcbiAgICBbY2xhc3MucHJpbWFyeV09XCJjb25maWcuc3R5bGUgPT09ICdwcmltYXJ5J1wiXG4gICAgW2NsYXNzLm9yYW5nZV09XCJjb25maWcuY29sb3IgPT09ICdvcmFuZ2UnXCJcbiAgICBbY2xhc3MuYmx1ZV09XCJjb25maWcuY29sb3IgPT09ICdibHVlJ1wiXG4gICAgW2Rpc2FibGVkXT1cInNwbGl0RGlzYWJsZWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwic3BsaXREaXNhYmxlZC50b1N0cmluZygpXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RdPVwic3BsaXRCdXR0b25EYXRhVGVzdCA/PyBuYW1lICsgJy1zcGxpdCdcIlxuICAgIChjbGljayk9XCJvblNwbGl0QnV0dG9uQ2xpY2tIYW5kbGUoJGV2ZW50KVwiXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVUcmlnZ2VyXCJcbiAgICAobWVudUNsb3NlZCk9XCJoYW5kbGVNZW51Q2xvc2VkKClcIlxuICAgIChtZW51T3BlbmVkKT1cImhhbmRsZU1lbnVPcGVuZWQoKVwiXG4+XG4gICAgPGFwLXN5bWJvbCBzeW1ib2xJZD1cImFycm93LWRvd24tMVwiXG4gICAgICAgICAgICAgICBzaXplPVwibmFub1wiXG4gICAgICAgICAgICAgICBbY2xhc3Mub3BlbmVkXT1cIm1lbnVPcGVuXCI+PC9hcC1zeW1ib2w+XG48L2J1dHRvbj5cbiJdfQ==
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcGxpdC1idXR0b24vc3JjL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3BsaXQtYnV0dG9uL3NyYy9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBRSxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFtQnpFLE1BQU0sT0FBTyxvQkFBb0I7SUE4QjdCO1FBN0JRLG1CQUFjLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RCx3QkFBbUIsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFLckYsYUFBUSxHQUF3QixLQUFLLENBQUM7UUFJdEMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsbUJBQWMsR0FBcUIsT0FBTyxDQUFDO1FBTzFDLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxlQUFVLEdBQXVCLElBQUksWUFB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QVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRW9CLGtCQUFrQjtzQkFBM0MsU0FBUzt1QkFBQyxhQUFhO2dCQUVPLGVBQWU7c0JBQTdDLFlBQVk7dUJBQUMsZUFBZTtnQkFFbkIsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLEtBQUs7c0JBQWQsTUFBTTtnQkFFRyxLQUFLO3NCQUFkLE1BQU07Z0JBRUcsSUFBSTtzQkFBYixNQUFNO2dCQWdEUCxZQUFZO3NCQURYLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2UsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHthcEFycm93RG93bjEsIFN5bWJvbENvbXBvbmVudCwgU3ltYm9sUmVnaXN0cnl9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLXN5bWJvbCc7XG5pbXBvcnQge01hdExlZ2FjeU1lbnV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1tZW51JztcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQge0Jhc2VCdXR0b25EaXJlY3RpdmV9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvZGlyZWN0aXZlcyc7XG5cbnR5cGUgU3BsaXRCdXR0b25Db25maWcgPSB7c3R5bGU6ICdwcmltYXJ5JzsgY29sb3I6ICdvcmFuZ2UnIHwgJ2JsdWUnfTtcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1zcGxpdC1idXR0b25bbmFtZV0nLFxuICAgIHN0eWxlVXJsczogWycuL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFN5bWJvbENvbXBvbmVudCwgQ29tbW9uTW9kdWxlLCBNYXRNZW51TW9kdWxlXSxcbiAgICBwcm92aWRlcnM6IFtdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtCYXNlQnV0dG9uRGlyZWN0aXZlXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnKGRpc2FibGVkICYmIHNwbGl0RGlzYWJsZWQpICB8fCBudWxsJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQge1xuICAgIHByaXZhdGUgc3ltYm9sUmVnaXN0cnk6IFN5bWJvbFJlZ2lzdHJ5ID0gaW5qZWN0KFN5bWJvbFJlZ2lzdHJ5KTtcbiAgICByZWFkb25seSBiYXNlQnV0dG9uRGlyZWN0aXZlOiBCYXNlQnV0dG9uRGlyZWN0aXZlID0gaW5qZWN0KEJhc2VCdXR0b25EaXJlY3RpdmUsIHtzZWxmOiB0cnVlfSk7XG5cbiAgICBAVmlld0NoaWxkKCdidXR0b24nKSBidXR0b25FbGVtZW50OiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNvbmZpZzogU3BsaXRCdXR0b25Db25maWc7XG4gICAgQElucHV0KCkgbWVudVRyaWdnZXI6IE1hdExlZ2FjeU1lbnU7XG4gICAgQElucHV0KCkgc3BsaXREaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHN5bWJvbFBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0JztcbiAgICBASW5wdXQoKSBzcGxpdEJ1dHRvbkRhdGFUZXN0OiBzdHJpbmc7XG5cbiAgICBAVmlld0NoaWxkKCdzcGxpdEJ1dHRvbicpIHNwbGl0QnV0dG9uRWxlbWVudDogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgICBAQ29udGVudENoaWxkKFN5bWJvbENvbXBvbmVudCkgc3ltYm9sQ29tcG9uZW50OiBTeW1ib2xDb21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbWVudU9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBtZW51Q2xvc2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIGNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIGZvY3VzOiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIG1lbnVPcGVuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zeW1ib2xSZWdpc3RyeS5yZWdpc3RlclN5bWJvbHMoW2FwQXJyb3dEb3duMV0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3ltYm9sQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLnN5bWJvbENvbXBvbmVudC5zaXplID0gJ21pY3JvJztcbiAgICAgICAgICAgIHRoaXMuc3ltYm9sQ29tcG9uZW50Lm5nT25DaGFuZ2VzKHtcbiAgICAgICAgICAgICAgICBzaXplOiBuZXcgU2ltcGxlQ2hhbmdlKG51bGwsIHRoaXMuc3ltYm9sQ29tcG9uZW50LnNpemUsIGZhbHNlKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TcGxpdEJ1dHRvbkNsaWNrSGFuZGxlKCRldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlTWVudU9wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51T3BlbmVkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5tZW51T3BlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgdGhpcy5zcGxpdEJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlTWVudUNsb3NlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51Q2xvc2VkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5tZW51T3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIHRoaXMuc3BsaXRCdXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIH1cblxuICAgIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIG9uQ2xpY2tIYW5kbGUoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmNsaWNrLmVtaXQoJGV2ZW50KTtcbiAgICAgICAgdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICB0aGlzLmJsdXIuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cC5zcGFjZScsIFsnJGV2ZW50J10pXG4gICAgb25TcGFjZUtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgICNidXR0b25cbiAgICByb2xlPVwiYnV0dG9uXCJcbiAgICBbY2xhc3MucHJpbWFyeV09XCJjb25maWcuc3R5bGUgPT09ICdwcmltYXJ5J1wiXG4gICAgW2NsYXNzLm9yYW5nZV09XCJjb25maWcuY29sb3IgPT09ICdvcmFuZ2UnXCJcbiAgICBbY2xhc3MuYmx1ZV09XCJjb25maWcuY29sb3IgPT09ICdibHVlJ1wiXG4gICAgW2NsYXNzLmludmVyc2VdPVwic3ltYm9sUG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbYXR0ci5pZF09XCJiYXNlQnV0dG9uRGlyZWN0aXZlLmhvc3RJZFwiXG4gICAgW2F0dHIuZGF0YS10ZXN0XT1cImJhc2VCdXR0b25EaXJlY3RpdmUuaG9zdERhdGFUZXN0ID8/IG5hbWVcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQ/LnRvU3RyaW5nKClcIlxuICAgIChjbGljayk9XCJvbkNsaWNrSGFuZGxlKCRldmVudClcIlxuICAgIChmb2N1cyk9XCJmb2N1cy5lbWl0KCRldmVudClcIlxuICAgIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzcGFuXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImFwLXN5bWJvbFwiPjwvbmctY29udGVudD5cbjwvYnV0dG9uPlxuPGJ1dHRvblxuICAgICNzcGxpdEJ1dHRvblxuICAgICN0cmlnZ2VyPVwibWF0TWVudVRyaWdnZXJcIlxuICAgIHJvbGU9XCJidXR0b25cIlxuICAgIFtjbGFzcy5wcmltYXJ5XT1cImNvbmZpZy5zdHlsZSA9PT0gJ3ByaW1hcnknXCJcbiAgICBbY2xhc3Mub3JhbmdlXT1cImNvbmZpZy5jb2xvciA9PT0gJ29yYW5nZSdcIlxuICAgIFtjbGFzcy5ibHVlXT1cImNvbmZpZy5jb2xvciA9PT0gJ2JsdWUnXCJcbiAgICBbZGlzYWJsZWRdPVwic3BsaXREaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJzcGxpdERpc2FibGVkLnRvU3RyaW5nKClcIlxuICAgIFthdHRyLmRhdGEtdGVzdF09XCJzcGxpdEJ1dHRvbkRhdGFUZXN0ID8/IG5hbWUgKyAnLXNwbGl0J1wiXG4gICAgKGNsaWNrKT1cIm9uU3BsaXRCdXR0b25DbGlja0hhbmRsZSgkZXZlbnQpXCJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVRyaWdnZXJcIlxuICAgIChtZW51Q2xvc2VkKT1cImhhbmRsZU1lbnVDbG9zZWQoKVwiXG4gICAgKG1lbnVPcGVuZWQpPVwiaGFuZGxlTWVudU9wZW5lZCgpXCJcbj5cbiAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwiYXJyb3ctZG93bi0xXCJcbiAgICAgICAgICAgICAgIHNpemU9XCJuYW5vXCJcbiAgICAgICAgICAgICAgIFtjbGFzcy5vcGVuZWRdPVwibWVudU9wZW5cIj48L2FwLXN5bWJvbD5cbjwvYnV0dG9uPlxuIl19
|
|
@@ -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
|
|
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
|
-
|
|
401
|
-
|
|
397
|
+
this.renderer.setProperty(this.elRef.nativeElement, 'innerHTML', "");
|
|
398
|
+
if (!fullText || fullText.length <= 0) {
|
|
399
|
+
return;
|
|
402
400
|
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
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
|
-
|
|
414
|
-
|
|
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 });
|