@seniorsistemas/angular-components 19.8.0 → 19.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +2 -1
- package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +3 -1
- package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +12 -2
- package/drawer/README.md +119 -0
- package/drawer/index.d.ts +5 -0
- package/{sidebar/lib/sidebar/sidebar.component.d.ts → drawer/lib/drawer/drawer.component.d.ts} +18 -15
- package/drawer/lib/drawer/drawer.module.d.ts +8 -0
- package/drawer/public-api.d.ts +2 -0
- package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +6 -3
- package/esm2022/code-editor/lib/code-editor/core/facades/core-facade.mjs +7 -1
- package/esm2022/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.mjs +47 -22
- package/esm2022/drawer/lib/drawer/drawer.component.mjs +192 -0
- package/esm2022/drawer/lib/drawer/drawer.module.mjs +17 -0
- package/esm2022/drawer/public-api.mjs +3 -0
- package/esm2022/drawer/seniorsistemas-angular-components-drawer.mjs +5 -0
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +4 -5
- package/esm2022/lib/locale/fallback.mjs +3 -2
- package/esm2022/select/lib/select/select.component.mjs +11 -14
- package/esm2022/side-sheet/lib/side-sheet/models/side-sheet-config.mjs +2 -0
- package/esm2022/side-sheet/lib/side-sheet/models/side-sheet-size.mjs +2 -0
- package/esm2022/side-sheet/lib/side-sheet/services/side-sheet.service.mjs +82 -0
- package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +171 -0
- package/esm2022/side-sheet/public-api.mjs +3 -0
- package/esm2022/side-sheet/seniorsistemas-angular-components-side-sheet.mjs +5 -0
- package/esm2022/sidebar/public-api.mjs +12 -3
- package/esm2022/switch/lib/switch/switch.component.mjs +5 -3
- package/esm2022/switch/lib/switch/switch.module.mjs +2 -2
- package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +4 -3
- package/esm2022/tabs/lib/tabs/tabs.component.mjs +14 -10
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +82 -75
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +3 -3
- package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +35 -18
- package/esm2022/tiered-menu/lib/tiered-menu/services/tiered-menu.event.service.mjs +2 -1
- package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +89 -77
- package/esm2022/toast/lib/toast/toast.service.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +5 -2
- package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +52 -21
- package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs +211 -0
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +3 -4
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +10 -13
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +257 -0
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +10 -180
- package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-switch.mjs +5 -3
- package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs +16 -11
- package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +201 -164
- package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components.mjs +2 -1
- package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
- package/package.json +19 -7
- package/select/lib/select/select.component.d.ts +2 -1
- package/side-sheet/README.md +184 -0
- package/side-sheet/index.d.ts +5 -0
- package/side-sheet/lib/side-sheet/models/side-sheet-config.d.ts +20 -0
- package/side-sheet/lib/side-sheet/models/side-sheet-size.d.ts +1 -0
- package/side-sheet/lib/side-sheet/services/side-sheet.service.d.ts +49 -0
- package/side-sheet/lib/side-sheet/side-sheet.component.d.ts +61 -0
- package/side-sheet/public-api.d.ts +4 -0
- package/sidebar/README.md +20 -93
- package/sidebar/public-api.d.ts +11 -2
- package/tabs/lib/tab-item/tab-item.component.d.ts +1 -0
- package/tabs/lib/tabs/tabs.component.d.ts +2 -1
- package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +19 -7
- package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +4 -3
- package/tiered-menu/lib/tiered-menu/services/tiered-menu.event.service.d.ts +1 -0
- package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +6 -5
- package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +0 -169
- package/esm2022/sidebar/lib/sidebar/sidebar.module.mjs +0 -17
- package/sidebar/lib/sidebar/sidebar.module.d.ts +0 -8
|
@@ -9,19 +9,29 @@ import { EditorThemes } from './themes/editor-themes';
|
|
|
9
9
|
import { convertMarkersToDiagnostics } from './utils';
|
|
10
10
|
export class CodeMirror6Core extends CoreFacade {
|
|
11
11
|
static $onCompletionItemsUpdate = new Subject();
|
|
12
|
-
|
|
13
|
-
static
|
|
12
|
+
/** Referência à instância ativa — usada pelos métodos estáticos de compatibilidade */
|
|
13
|
+
static _activeInstance = null;
|
|
14
|
+
_ngUnsubscribe = new Subject();
|
|
15
|
+
_editorView = null;
|
|
14
16
|
/* These are necessary for the setCode and setEditorOptions can be called before view has been created */
|
|
15
17
|
_codeReceivedBeforeViewCreation = '';
|
|
16
18
|
_editorOptionsReceivedBeforeViewCreation = [];
|
|
17
19
|
constructor() {
|
|
18
20
|
super();
|
|
19
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Acesso estático à EditorView da instância ativa.
|
|
24
|
+
* Mantido para compatibilidade com extensões (autocomplete TaxCalculation).
|
|
25
|
+
*/
|
|
20
26
|
static getEditorView() {
|
|
21
|
-
return CodeMirror6Core._editorView;
|
|
27
|
+
return CodeMirror6Core._activeInstance?._editorView;
|
|
22
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Dispatch estático na EditorView da instância ativa.
|
|
31
|
+
* Mantido para compatibilidade com extensões (autocomplete TaxCalculation).
|
|
32
|
+
*/
|
|
23
33
|
static updateEditorView(...transactionSpecs) {
|
|
24
|
-
CodeMirror6Core._editorView?.dispatch(...transactionSpecs);
|
|
34
|
+
CodeMirror6Core._activeInstance?._editorView?.dispatch(...transactionSpecs);
|
|
25
35
|
}
|
|
26
36
|
setCoreWrapperElement(element) {
|
|
27
37
|
this.createEditorView(element);
|
|
@@ -30,19 +40,27 @@ export class CodeMirror6Core extends CoreFacade {
|
|
|
30
40
|
this.changeEditorContent(code);
|
|
31
41
|
}
|
|
32
42
|
initCore() {
|
|
43
|
+
CodeMirror6Core._activeInstance = this;
|
|
44
|
+
this._ngUnsubscribe = new Subject();
|
|
45
|
+
this.resetLastCodeEmitted();
|
|
33
46
|
this.setObservablesListeners();
|
|
34
47
|
}
|
|
35
48
|
destroyCore() {
|
|
36
49
|
this._codeReceivedBeforeViewCreation = '';
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
50
|
+
this._editorView?.destroy();
|
|
51
|
+
this._editorView = null;
|
|
52
|
+
this._ngUnsubscribe.next();
|
|
53
|
+
this._ngUnsubscribe.complete();
|
|
54
|
+
this.resetCoreFinishLoad();
|
|
55
|
+
if (CodeMirror6Core._activeInstance === this) {
|
|
56
|
+
CodeMirror6Core._activeInstance = null;
|
|
57
|
+
}
|
|
40
58
|
}
|
|
41
59
|
setCoreEditorOptions(options) {
|
|
42
60
|
const language = EditorLanguages.getLanguage(options.language);
|
|
43
61
|
const theme = EditorThemes.getTheme(options.theme);
|
|
44
|
-
if (
|
|
45
|
-
|
|
62
|
+
if (this._editorView) {
|
|
63
|
+
this._editorView.dispatch({
|
|
46
64
|
effects: StateEffect.reconfigure.of([language, theme, this.getCodeChangeListenerExtension()]),
|
|
47
65
|
});
|
|
48
66
|
}
|
|
@@ -51,16 +69,23 @@ export class CodeMirror6Core extends CoreFacade {
|
|
|
51
69
|
}
|
|
52
70
|
}
|
|
53
71
|
highlightCode(markers) {
|
|
54
|
-
|
|
55
|
-
|
|
72
|
+
if (!this._editorView) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const diagnostics = convertMarkersToDiagnostics(markers, this._editorView.state.doc.length);
|
|
76
|
+
this._editorView.dispatch(setDiagnostics(this._editorView.state, diagnostics));
|
|
56
77
|
}
|
|
57
78
|
setObservablesListeners() {
|
|
58
79
|
CodeMirror6Core.$onCompletionItemsUpdate
|
|
59
|
-
.pipe(takeUntil(
|
|
80
|
+
.pipe(takeUntil(this._ngUnsubscribe))
|
|
60
81
|
.subscribe((items) => this.updateCompletionItems(items));
|
|
61
82
|
}
|
|
62
83
|
createEditorView(parentElement) {
|
|
63
|
-
|
|
84
|
+
// Destruir view anterior caso exista (re-criação)
|
|
85
|
+
if (this._editorView) {
|
|
86
|
+
this._editorView.destroy();
|
|
87
|
+
}
|
|
88
|
+
this._editorView = new EditorView({
|
|
64
89
|
parent: parentElement,
|
|
65
90
|
state: EditorState.create({
|
|
66
91
|
doc: this._codeReceivedBeforeViewCreation,
|
|
@@ -73,11 +98,11 @@ export class CodeMirror6Core extends CoreFacade {
|
|
|
73
98
|
return EditorView.updateListener.of((update) => update.docChanged && this.notifyCodeChange(update.state.doc.toString()));
|
|
74
99
|
}
|
|
75
100
|
changeEditorContent(code) {
|
|
76
|
-
if (
|
|
77
|
-
|
|
101
|
+
if (this._editorView) {
|
|
102
|
+
this._editorView.dispatch({
|
|
78
103
|
changes: {
|
|
79
104
|
from: 0,
|
|
80
|
-
to:
|
|
105
|
+
to: this._editorView.state.doc.length,
|
|
81
106
|
insert: code,
|
|
82
107
|
},
|
|
83
108
|
});
|
|
@@ -87,15 +112,15 @@ export class CodeMirror6Core extends CoreFacade {
|
|
|
87
112
|
}
|
|
88
113
|
}
|
|
89
114
|
setCodeWithCursorPreservation(code) {
|
|
90
|
-
if (
|
|
91
|
-
const currentCode =
|
|
115
|
+
if (this._editorView) {
|
|
116
|
+
const currentCode = this._editorView.state.doc.toString();
|
|
92
117
|
// Só atualiza se o conteúdo for realmente diferente
|
|
93
118
|
if (currentCode !== code) {
|
|
94
|
-
const currentSelection =
|
|
95
|
-
|
|
119
|
+
const currentSelection = this._editorView.state.selection.main;
|
|
120
|
+
this._editorView.dispatch({
|
|
96
121
|
changes: {
|
|
97
122
|
from: 0,
|
|
98
|
-
to:
|
|
123
|
+
to: this._editorView.state.doc.length,
|
|
99
124
|
insert: code,
|
|
100
125
|
},
|
|
101
126
|
selection: {
|
|
@@ -110,4 +135,4 @@ export class CodeMirror6Core extends CoreFacade {
|
|
|
110
135
|
}
|
|
111
136
|
}
|
|
112
137
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci02LWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb2RlLWVkaXRvci9pbmZyYS9jb3Jlcy9jb2RlbWlycm9yLTYvY29kZW1pcnJvci02LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFtQixNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQUNwQyxNQUFNLENBQVUsd0JBQXdCLEdBQXNCLElBQUksT0FBTyxFQUFFLENBQUM7SUFDM0UsTUFBTSxDQUFVLGNBQWMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUM5RCxNQUFNLENBQUMsV0FBVyxHQUFzQixJQUFJLENBQUM7SUFFckQseUdBQXlHO0lBQ2pHLCtCQUErQixHQUFHLEVBQUUsQ0FBQztJQUNyQyx3Q0FBd0MsR0FBYyxFQUFFLENBQUM7SUFFakU7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxNQUFN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QUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztxQkFDckQ7aUJBQ0osQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQztRQUNoRCxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldERpYWdub3N0aWNzIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGludCc7XG5pbXBvcnQgeyBFZGl0b3JTdGF0ZSwgRXh0ZW5zaW9uLCBTdGF0ZUVmZmVjdCwgVHJhbnNhY3Rpb25TcGVjIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gJ0Bjb2RlbWlycm9yL3ZpZXcnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb3JlRmFjYWRlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9mYWNhZGVzL2NvcmUtZmFjYWRlJztcbmltcG9ydCB7IE1hcmtlciB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzJztcbmltcG9ydCB7IEVkaXRvck9wdGlvbnMsIExhbmd1YWdlcywgVGhlbWVzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEVkaXRvckxhbmd1YWdlcyB9IGZyb20gJy4vbGFuZ3VhZ2VzL2VkaXRvci1sYW5ndWFnZXMnO1xuaW1wb3J0IHsgRWRpdG9yVGhlbWVzIH0gZnJvbSAnLi90aGVtZXMvZWRpdG9yLXRoZW1lcyc7XG5pbXBvcnQgeyBjb252ZXJ0TWFya2Vyc1RvRGlhZ25vc3RpY3MgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIENvZGVNaXJyb3I2Q29yZSBleHRlbmRzIENvcmVGYWNhZGUge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgJG9uQ29tcGxldGlvbkl0ZW1zVXBkYXRlOiBTdWJqZWN0PHN0cmluZ1tdPiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgc3RhdGljIF9lZGl0b3JWaWV3OiBFZGl0b3JWaWV3IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiBUaGVzZSBhcmUgbmVjZXNzYXJ5IGZvciB0aGUgc2V0Q29kZSBhbmQgc2V0RWRpdG9yT3B0aW9ucyBjYW4gYmUgY2FsbGVkIGJlZm9yZSB2aWV3IGhhcyBiZWVuIGNyZWF0ZWQgKi9cbiAgICBwcml2YXRlIF9jb2RlUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24gPSAnJztcbiAgICBwcml2YXRlIF9lZGl0b3JPcHRpb25zUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb246IEV4dGVuc2lvbiA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRFZGl0b3JWaWV3KCk6IEVkaXRvclZpZXcge1xuICAgICAgICByZXR1cm4gQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3IGFzIEVkaXRvclZpZXc7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB1cGRhdGVFZGl0b3JWaWV3KC4uLnRyYW5zYWN0aW9uU3BlY3M6IFRyYW5zYWN0aW9uU3BlY1tdKTogdm9pZCB7XG4gICAgICAgIENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldz8uZGlzcGF0Y2goLi4udHJhbnNhY3Rpb25TcGVjcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvcmVXcmFwcGVyRWxlbWVudChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUVkaXRvclZpZXcoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvZGUoY29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRWRpdG9yQ29udGVudChjb2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdENvcmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T2JzZXJ2YWJsZXNMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveUNvcmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvZGVSZWNlaXZlZEJlZm9yZVZpZXdDcmVhdGlvbiA9ICcnO1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX2VkaXRvclZpZXcgPSBudWxsO1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0Q29yZUVkaXRvck9wdGlvbnMob3B0aW9uczogRWRpdG9yT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYW5ndWFnZSA9IEVkaXRvckxhbmd1YWdlcy5nZXRMYW5ndWFnZShvcHRpb25zLmxhbmd1YWdlIGFzIExhbmd1YWdlcyk7XG4gICAgICAgIGNvbnN0IHRoZW1lID0gRWRpdG9yVGhlbWVzLmdldFRoZW1lKG9wdGlvbnMudGhlbWUgYXMgVGhlbWVzKTtcblxuICAgICAgICBpZiAoQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3KSB7XG4gICAgICAgICAgICBDb2RlTWlycm9yNkNvcmUudXBkYXRlRWRpdG9yVmlldyh7XG4gICAgICAgICAgICAgICAgZWZmZWN0czogU3RhdGVFZmZlY3QucmVjb25maWd1cmUub2YoW2xhbmd1YWdlLCB0aGVtZSwgdGhpcy5nZXRDb2RlQ2hhbmdlTGlzdGVuZXJFeHRlbnNpb24oKV0pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lZGl0b3JPcHRpb25zUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24gPSBbbGFuZ3VhZ2UsIHRoZW1lXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoaWdobGlnaHRDb2RlKG1hcmtlcnM6IE1hcmtlcltdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gY29udmVydE1hcmtlcnNUb0RpYWdub3N0aWNzKFxuICAgICAgICAgICAgbWFya2VycyxcbiAgICAgICAgICAgIENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldz8uc3RhdGUuZG9jLmxlbmd0aCBhcyBudW1iZXIsXG4gICAgICAgICk7XG5cbiAgICAgICAgQ29kZU1pcnJvcjZDb3JlLnVwZGF0ZUVkaXRvclZpZXcoXG4gICAgICAgICAgICBzZXREaWFnbm9zdGljcyhDb2RlTWlycm9yNkNvcmUuX2VkaXRvclZpZXc/LnN0YXRlIGFzIEVkaXRvclN0YXRlLCBkaWFnbm9zdGljcyksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPYnNlcnZhYmxlc0xpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgQ29kZU1pcnJvcjZDb3JlLiRvbkNvbXBsZXRpb25JdGVtc1VwZGF0ZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKENvZGVNaXJyb3I2Q29yZS5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpdGVtcykgPT4gdGhpcy51cGRhdGVDb21wbGV0aW9uSXRlbXMoaXRlbXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUVkaXRvclZpZXcocGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcoe1xuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnRFbGVtZW50LFxuICAgICAgICAgICAgc3RhdGU6IEVkaXRvclN0YXRlLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgZG9jOiB0aGlzLl9jb2RlUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24sXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogW3RoaXMuX2VkaXRvck9wdGlvbnNSZWNlaXZlZEJlZm9yZVZpZXdDcmVhdGlvbiwgdGhpcy5nZXRDb2RlQ2hhbmdlTGlzdGVuZXJFeHRlbnNpb24oKV0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ub3RpZnlDb3JlRmluaXNoTG9hZCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29kZUNoYW5nZUxpc3RlbmVyRXh0ZW5zaW9uKCk6IEV4dGVuc2lvbiB7XG4gICAgICAgIHJldHVybiBFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKFxuICAgICAgICAgICAgKHVwZGF0ZSkgPT4gdXBkYXRlLmRvY0NoYW5nZWQgJiYgdGhpcy5ub3RpZnlDb2RlQ2hhbmdlKHVwZGF0ZS5zdGF0ZS5kb2MudG9TdHJpbmcoKSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGFuZ2VFZGl0b3JDb250ZW50KGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3KSB7XG4gICAgICAgICAgICBDb2RlTWlycm9yNkNvcmUudXBkYXRlRWRpdG9yVmlldyh7XG4gICAgICAgICAgICAgICAgY2hhbmdlczoge1xuICAgICAgICAgICAgICAgICAgICBmcm9tOiAwLFxuICAgICAgICAgICAgICAgICAgICB0bzogQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIGluc2VydDogY29kZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jb2RlUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24gPSBjb2RlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldENvZGVXaXRoQ3Vyc29yUHJlc2VydmF0aW9uKGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29kZSA9IENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldy5zdGF0ZS5kb2MudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgLy8gU8OzIGF0dWFsaXphIHNlIG8gY29udGXDumRvIGZvciByZWFsbWVudGUgZGlmZXJlbnRlXG4gICAgICAgICAgICBpZiAoY3VycmVudENvZGUgIT09IGNvZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50U2VsZWN0aW9uID0gQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3LnN0YXRlLnNlbGVjdGlvbi5tYWluO1xuXG4gICAgICAgICAgICAgICAgQ29kZU1pcnJvcjZDb3JlLnVwZGF0ZUVkaXRvclZpZXcoe1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG86IENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zZXJ0OiBjb2RlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvcjogTWF0aC5taW4oY3VycmVudFNlbGVjdGlvbi5hbmNob3IsIGNvZGUubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWQ6IE1hdGgubWluKGN1cnJlbnRTZWxlY3Rpb24uaGVhZCwgY29kZS5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY29kZVJlY2VpdmVkQmVmb3JlVmlld0NyZWF0aW9uID0gY29kZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci02LWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb2RlLWVkaXRvci9pbmZyYS9jb3Jlcy9jb2RlbWlycm9yLTYvY29kZW1pcnJvci02LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFtQixNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQUNwQyxNQUFNLENBQVUsd0JBQXdCLEdBQXNCLElBQUksT0FBTyxFQUFFLENBQUM7SUFFbkYsc0ZBQXNGO0lBQzlFLE1BQU0sQ0FBQyxlQUFlLEdBQTJCLElBQUksQ0FBQztJQUV0RCxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNyQyxXQUFXLEdBQXNCLElBQUksQ0FBQztJQUU5Qyx5R0FBeUc7SUFDakcsK0JBQStCLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLHdDQUF3QyxHQUFjLEVBQUUsQ0FBQztJQUVqRTtRQUNJLEtBQUss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TCxDQUFDO0lBRVMsNkJBQTZCLENBQUMsSUFBWTtRQUNoRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFMUQsb0RBQW9EO1lBQ3BELElBQUksV0FBVyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN2QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBRS9ELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO29CQUN0QixPQUFPLEVBQUU7d0JBQ0wsSUFBSSxFQUFFLENBQUM7d0JBQ1AsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNO3dCQUNyQyxNQUFNLEVBQUUsSUFBSTtxQkFDZjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7d0JBQ3RELElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO3FCQUNyRDtpQkFDSixDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDO1FBQ2hELENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0RGlhZ25vc3RpY3MgfSBmcm9tICdAY29kZW1pcnJvci9saW50JztcbmltcG9ydCB7IEVkaXRvclN0YXRlLCBFeHRlbnNpb24sIFN0YXRlRWZmZWN0LCBUcmFuc2FjdGlvblNwZWMgfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvcmVGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2ZhY2FkZXMvY29yZS1mYWNhZGUnO1xuaW1wb3J0IHsgTWFya2VyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xuaW1wb3J0IHsgRWRpdG9yT3B0aW9ucywgTGFuZ3VhZ2VzLCBUaGVtZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRWRpdG9yTGFuZ3VhZ2VzIH0gZnJvbSAnLi9sYW5ndWFnZXMvZWRpdG9yLWxhbmd1YWdlcyc7XG5pbXBvcnQgeyBFZGl0b3JUaGVtZXMgfSBmcm9tICcuL3RoZW1lcy9lZGl0b3ItdGhlbWVzJztcbmltcG9ydCB7IGNvbnZlcnRNYXJrZXJzVG9EaWFnbm9zdGljcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ29kZU1pcnJvcjZDb3JlIGV4dGVuZHMgQ29yZUZhY2FkZSB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSAkb25Db21wbGV0aW9uSXRlbXNVcGRhdGU6IFN1YmplY3Q8c3RyaW5nW10+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIC8qKiBSZWZlcsOqbmNpYSDDoCBpbnN0w6JuY2lhIGF0aXZhIOKAlCB1c2FkYSBwZWxvcyBtw6l0b2RvcyBlc3TDoXRpY29zIGRlIGNvbXBhdGliaWxpZGFkZSAqL1xuICAgIHByaXZhdGUgc3RhdGljIF9hY3RpdmVJbnN0YW5jZTogQ29kZU1pcnJvcjZDb3JlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9lZGl0b3JWaWV3OiBFZGl0b3JWaWV3IHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiBUaGVzZSBhcmUgbmVjZXNzYXJ5IGZvciB0aGUgc2V0Q29kZSBhbmQgc2V0RWRpdG9yT3B0aW9ucyBjYW4gYmUgY2FsbGVkIGJlZm9yZSB2aWV3IGhhcyBiZWVuIGNyZWF0ZWQgKi9cbiAgICBwcml2YXRlIF9jb2RlUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24gPSAnJztcbiAgICBwcml2YXRlIF9lZGl0b3JPcHRpb25zUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb246IEV4dGVuc2lvbiA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWNlc3NvIGVzdMOhdGljbyDDoCBFZGl0b3JWaWV3IGRhIGluc3TDom5jaWEgYXRpdmEuXG4gICAgICogTWFudGlkbyBwYXJhIGNvbXBhdGliaWxpZGFkZSBjb20gZXh0ZW5zw7VlcyAoYXV0b2NvbXBsZXRlIFRheENhbGN1bGF0aW9uKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGdldEVkaXRvclZpZXcoKTogRWRpdG9yVmlldyB7XG4gICAgICAgIHJldHVybiBDb2RlTWlycm9yNkNvcmUuX2FjdGl2ZUluc3RhbmNlPy5fZWRpdG9yVmlldyBhcyBFZGl0b3JWaWV3O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERpc3BhdGNoIGVzdMOhdGljbyBuYSBFZGl0b3JWaWV3IGRhIGluc3TDom5jaWEgYXRpdmEuXG4gICAgICogTWFudGlkbyBwYXJhIGNvbXBhdGliaWxpZGFkZSBjb20gZXh0ZW5zw7VlcyAoYXV0b2NvbXBsZXRlIFRheENhbGN1bGF0aW9uKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHVwZGF0ZUVkaXRvclZpZXcoLi4udHJhbnNhY3Rpb25TcGVjczogVHJhbnNhY3Rpb25TcGVjW10pOiB2b2lkIHtcbiAgICAgICAgQ29kZU1pcnJvcjZDb3JlLl9hY3RpdmVJbnN0YW5jZT8uX2VkaXRvclZpZXc/LmRpc3BhdGNoKC4uLnRyYW5zYWN0aW9uU3BlY3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRDb3JlV3JhcHBlckVsZW1lbnQoZWxlbWVudDogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVFZGl0b3JWaWV3KGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRDb2RlKGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZUVkaXRvckNvbnRlbnQoY29kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRDb3JlKCk6IHZvaWQge1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX2FjdGl2ZUluc3RhbmNlID0gdGhpcztcbiAgICAgICAgdGhpcy5fbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICAgIHRoaXMucmVzZXRMYXN0Q29kZUVtaXR0ZWQoKTtcbiAgICAgICAgdGhpcy5zZXRPYnNlcnZhYmxlc0xpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkZXN0cm95Q29yZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29kZVJlY2VpdmVkQmVmb3JlVmlld0NyZWF0aW9uID0gJyc7XG4gICAgICAgIHRoaXMuX2VkaXRvclZpZXc/LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fZWRpdG9yVmlldyA9IG51bGw7XG4gICAgICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMucmVzZXRDb3JlRmluaXNoTG9hZCgpO1xuICAgICAgICBpZiAoQ29kZU1pcnJvcjZDb3JlLl9hY3RpdmVJbnN0YW5jZSA9PT0gdGhpcykge1xuICAgICAgICAgICAgQ29kZU1pcnJvcjZDb3JlLl9hY3RpdmVJbnN0YW5jZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0Q29yZUVkaXRvck9wdGlvbnMob3B0aW9uczogRWRpdG9yT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYW5ndWFnZSA9IEVkaXRvckxhbmd1YWdlcy5nZXRMYW5ndWFnZShvcHRpb25zLmxhbmd1YWdlIGFzIExhbmd1YWdlcyk7XG4gICAgICAgIGNvbnN0IHRoZW1lID0gRWRpdG9yVGhlbWVzLmdldFRoZW1lKG9wdGlvbnMudGhlbWUgYXMgVGhlbWVzKTtcblxuICAgICAgICBpZiAodGhpcy5fZWRpdG9yVmlldykge1xuICAgICAgICAgICAgdGhpcy5fZWRpdG9yVmlldy5kaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgZWZmZWN0czogU3RhdGVFZmZlY3QucmVjb25maWd1cmUub2YoW2xhbmd1YWdlLCB0aGVtZSwgdGhpcy5nZXRDb2RlQ2hhbmdlTGlzdGVuZXJFeHRlbnNpb24oKV0pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lZGl0b3JPcHRpb25zUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24gPSBbbGFuZ3VhZ2UsIHRoZW1lXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoaWdobGlnaHRDb2RlKG1hcmtlcnM6IE1hcmtlcltdKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZWRpdG9yVmlldykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGlhZ25vc3RpY3MgPSBjb252ZXJ0TWFya2Vyc1RvRGlhZ25vc3RpY3MoXG4gICAgICAgICAgICBtYXJrZXJzLFxuICAgICAgICAgICAgdGhpcy5fZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2VkaXRvclZpZXcuZGlzcGF0Y2goXG4gICAgICAgICAgICBzZXREaWFnbm9zdGljcyh0aGlzLl9lZGl0b3JWaWV3LnN0YXRlLCBkaWFnbm9zdGljcyksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRPYnNlcnZhYmxlc0xpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgQ29kZU1pcnJvcjZDb3JlLiRvbkNvbXBsZXRpb25JdGVtc1VwZGF0ZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaXRlbXMpID0+IHRoaXMudXBkYXRlQ29tcGxldGlvbkl0ZW1zKGl0ZW1zKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVFZGl0b3JWaWV3KHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIC8vIERlc3RydWlyIHZpZXcgYW50ZXJpb3IgY2FzbyBleGlzdGEgKHJlLWNyaWHDp8OjbylcbiAgICAgICAgaWYgKHRoaXMuX2VkaXRvclZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuX2VkaXRvclZpZXcuZGVzdHJveSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZWRpdG9yVmlldyA9IG5ldyBFZGl0b3JWaWV3KHtcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50RWxlbWVudCxcbiAgICAgICAgICAgIHN0YXRlOiBFZGl0b3JTdGF0ZS5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIGRvYzogdGhpcy5fY29kZVJlY2VpdmVkQmVmb3JlVmlld0NyZWF0aW9uLFxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IFt0aGlzLl9lZGl0b3JPcHRpb25zUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24sIHRoaXMuZ2V0Q29kZUNoYW5nZUxpc3RlbmVyRXh0ZW5zaW9uKCldLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubm90aWZ5Q29yZUZpbmlzaExvYWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvZGVDaGFuZ2VMaXN0ZW5lckV4dGVuc2lvbigpOiBFeHRlbnNpb24ge1xuICAgICAgICByZXR1cm4gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZihcbiAgICAgICAgICAgICh1cGRhdGUpID0+IHVwZGF0ZS5kb2NDaGFuZ2VkICYmIHRoaXMubm90aWZ5Q29kZUNoYW5nZSh1cGRhdGUuc3RhdGUuZG9jLnRvU3RyaW5nKCkpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlRWRpdG9yQ29udGVudChjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2VkaXRvclZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMuX2VkaXRvclZpZXcuZGlzcGF0Y2goe1xuICAgICAgICAgICAgICAgIGNoYW5nZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICAgICAgICAgICAgdG86IHRoaXMuX2VkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0OiBjb2RlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NvZGVSZWNlaXZlZEJlZm9yZVZpZXdDcmVhdGlvbiA9IGNvZGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0Q29kZVdpdGhDdXJzb3JQcmVzZXJ2YXRpb24oY29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0b3JWaWV3KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29kZSA9IHRoaXMuX2VkaXRvclZpZXcuc3RhdGUuZG9jLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIC8vIFPDsyBhdHVhbGl6YSBzZSBvIGNvbnRlw7pkbyBmb3IgcmVhbG1lbnRlIGRpZmVyZW50ZVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRDb2RlICE9PSBjb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuX2VkaXRvclZpZXcuc3RhdGUuc2VsZWN0aW9uLm1haW47XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9lZGl0b3JWaWV3LmRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvOiB0aGlzLl9lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnQ6IGNvZGUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yOiBNYXRoLm1pbihjdXJyZW50U2VsZWN0aW9uLmFuY2hvciwgY29kZS5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZDogTWF0aC5taW4oY3VycmVudFNlbGVjdGlvbi5oZWFkLCBjb2RlLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jb2RlUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24gPSBjb2RlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { animate, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
3
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
4
|
+
import { Component, contentChild, ContentChildren, effect, Input, model, } from '@angular/core';
|
|
5
|
+
import { DEPRECATED_CONFIG } from '@seniorsistemas/angular-components/common/deprecated-selector';
|
|
6
|
+
import { DeprecatedSelectorDirective } from '@seniorsistemas/angular-components/common/deprecated-selector';
|
|
7
|
+
import { FooterComponent } from '@seniorsistemas/angular-components/structure';
|
|
8
|
+
import { TemplateDirective } from '@seniorsistemas/angular-components/template';
|
|
9
|
+
import { disableScroll, enableScroll } from '@seniorsistemas/angular-components/utils';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@seniorsistemas/angular-components/common/deprecated-selector";
|
|
12
|
+
/**
|
|
13
|
+
* @description Componente de painel lateral deslizante (drawer) que aparece sobre o conteúdo
|
|
14
|
+
* vindo do lado direito da tela. Suporta templates customizados para cabeçalho, corpo e rodapé
|
|
15
|
+
* via `sTemplate`, bloqueio de scroll automático e confirmação de fechamento.
|
|
16
|
+
*
|
|
17
|
+
* Também responde ao seletor legado `s-sidebar`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```html
|
|
21
|
+
* <s-drawer [(visible)]="drawerOpen" header="Filtros" [closable]="true">
|
|
22
|
+
* <ng-template sTemplate="body">Conteúdo</ng-template>
|
|
23
|
+
* </s-drawer>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @category Overlay
|
|
27
|
+
*/
|
|
28
|
+
export class DrawerComponent {
|
|
29
|
+
templates = null;
|
|
30
|
+
/**
|
|
31
|
+
* @description Controla a visibilidade do drawer. Suporta two-way binding via `[(visible)]`.
|
|
32
|
+
*
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
visible = model(false);
|
|
36
|
+
/**
|
|
37
|
+
* @description Quando `true`, exibe o botão de fechar (X) no cabeçalho do drawer.
|
|
38
|
+
*
|
|
39
|
+
* @default true
|
|
40
|
+
*/
|
|
41
|
+
closable = true;
|
|
42
|
+
/**
|
|
43
|
+
* @description Quando `true`, clicar no backdrop (área escurecida fora do drawer) fecha o painel.
|
|
44
|
+
*
|
|
45
|
+
* @default true
|
|
46
|
+
*/
|
|
47
|
+
dismissible = true;
|
|
48
|
+
/**
|
|
49
|
+
* @description Quando `true`, pressionar a tecla Escape fecha o drawer.
|
|
50
|
+
*
|
|
51
|
+
* @default true
|
|
52
|
+
*/
|
|
53
|
+
closeOnEscape = true;
|
|
54
|
+
/**
|
|
55
|
+
* @description Texto exibido no cabeçalho padrão do drawer.
|
|
56
|
+
* Pode ser substituído por um template customizado via `sTemplate="header"`.
|
|
57
|
+
*/
|
|
58
|
+
header;
|
|
59
|
+
/**
|
|
60
|
+
* @description Quando `true`, aumenta a largura do drawer para acomodar mais conteúdo.
|
|
61
|
+
*
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
largeSized = false;
|
|
65
|
+
/**
|
|
66
|
+
* @description Quando `true`, mantém o conteúdo do drawer no DOM mesmo quando oculto,
|
|
67
|
+
* preservando o estado interno dos componentes filhos.
|
|
68
|
+
*
|
|
69
|
+
* @default false
|
|
70
|
+
*/
|
|
71
|
+
cache = false;
|
|
72
|
+
/**
|
|
73
|
+
* @description Função de confirmação chamada antes de fechar o drawer.
|
|
74
|
+
* Quando retornar `false`, o fechamento é bloqueado. Útil para validar formulários não salvos.
|
|
75
|
+
*/
|
|
76
|
+
set registerConfirmClose(fn) {
|
|
77
|
+
this._confirmClose = fn;
|
|
78
|
+
}
|
|
79
|
+
headerTemplate = null;
|
|
80
|
+
bodyTemplate = null;
|
|
81
|
+
footerTemplate = null;
|
|
82
|
+
footerComponent = contentChild(FooterComponent);
|
|
83
|
+
_confirmClose = () => true;
|
|
84
|
+
visibleEffect = effect(() => {
|
|
85
|
+
const visible = this.visible();
|
|
86
|
+
if (visible) {
|
|
87
|
+
disableScroll();
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
enableScroll();
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
ngAfterContentInit() {
|
|
94
|
+
this._getTemplates();
|
|
95
|
+
}
|
|
96
|
+
ngOnDestroy() {
|
|
97
|
+
this.visibleEffect.destroy();
|
|
98
|
+
}
|
|
99
|
+
closeDrawer() {
|
|
100
|
+
if (this._confirmClose()) {
|
|
101
|
+
this.visible.set(false);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
handleEscape() {
|
|
105
|
+
if (this.closeOnEscape) {
|
|
106
|
+
this.closeDrawer();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
_getCustomTemplate(type) {
|
|
110
|
+
return this.templates?.find((template) => template.type === type)?.template ?? null;
|
|
111
|
+
}
|
|
112
|
+
getHeaderTemplate() {
|
|
113
|
+
return this._getCustomTemplate('header') ?? null;
|
|
114
|
+
}
|
|
115
|
+
getBodyTemplate() {
|
|
116
|
+
return this._getCustomTemplate('body') ?? null;
|
|
117
|
+
}
|
|
118
|
+
getFooterTemplate() {
|
|
119
|
+
return this._getCustomTemplate('footer') ?? null;
|
|
120
|
+
}
|
|
121
|
+
_getTemplates() {
|
|
122
|
+
this.headerTemplate = this.getHeaderTemplate();
|
|
123
|
+
this.bodyTemplate = this.getBodyTemplate();
|
|
124
|
+
this.footerTemplate = this.getFooterTemplate();
|
|
125
|
+
}
|
|
126
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DrawerComponent, isStandalone: true, selector: "s-drawer, s-sidebar", inputs: { visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: false, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: false, isRequired: false, transformFunction: null }, closeOnEscape: { classPropertyName: "closeOnEscape", publicName: "closeOnEscape", isSignal: false, isRequired: false, transformFunction: null }, header: { classPropertyName: "header", publicName: "header", isSignal: false, isRequired: false, transformFunction: null }, largeSized: { classPropertyName: "largeSized", publicName: "largeSized", isSignal: false, isRequired: false, transformFunction: null }, cache: { classPropertyName: "cache", publicName: "cache", isSignal: false, isRequired: false, transformFunction: null }, registerConfirmClose: { classPropertyName: "registerConfirmClose", publicName: "registerConfirmClose", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange" }, host: { listeners: { "document:keydown.escape": "handleEscape()" } }, providers: [
|
|
128
|
+
{
|
|
129
|
+
provide: DEPRECATED_CONFIG,
|
|
130
|
+
useValue: {
|
|
131
|
+
oldSelector: 's-sidebar',
|
|
132
|
+
newSelector: 's-drawer',
|
|
133
|
+
removalVersion: '20.0.0',
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
], queries: [{ propertyName: "footerComponent", first: true, predicate: FooterComponent, descendants: true, isSignal: true }, { propertyName: "templates", predicate: TemplateDirective }], hostDirectives: [{ directive: i1.DeprecatedSelectorDirective }], ngImport: i0, template: "@if (visible()) {\n <div\n class=\"backdrop\"\n (click)=\"dismissible && closeDrawer()\"\n ></div>\n}\n\n@if (cache || visible()) {\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"visible()\"\n [@visibilityChanged]\n class=\"drawer\"\n [class.drawer--open]=\"visible()\"\n [class.drawer--large-size]=\"largeSized\"\n >\n <div class=\"drawer__header\">\n @if (headerTemplate) {\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n } @else {\n <span class=\"drawer__header__title\">{{ header }}</span>\n }\n @if (closable) {\n <button\n class=\"drawer__header__close fa-solid fa-xmark\"\n (click)=\"closeDrawer()\"\n ></button>\n }\n </div>\n <div class=\"drawer__body\">\n @if (bodyTemplate) {\n <ng-template [ngTemplateOutlet]=\"bodyTemplate\"></ng-template>\n } @else {\n <ng-content select=\":not(s-footer)\"></ng-content>\n }\n </div>\n @if (footerTemplate || footerComponent()) {\n <div class=\"drawer__footer\">\n @if (footerTemplate) {\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n } @else {\n <ng-content select=\"s-footer\"></ng-content>\n }\n </div>\n }\n </div>\n}\n", styles: [".backdrop{background-color:#00000080;height:100%;left:0;position:fixed;top:0;transition:opacity .3s;width:100%;z-index:998}.drawer{background-color:#fff;box-shadow:0 1px 5px #00000040;display:flex;flex-direction:column;height:100%;right:-100%;padding:1rem;position:fixed;top:0;transition:right .3s;width:100%;z-index:999}.drawer__header{border-bottom:1px solid #dedce5;display:flex;justify-content:space-between;padding-bottom:.75rem}.drawer__header__title{color:#212533;font-family:Inter,sans-serif;font-size:1rem;text-transform:uppercase;-webkit-user-select:none;user-select:none}.drawer__header__close{background-color:transparent;border:none;color:#212533;cursor:pointer;font-size:1rem;padding:.5rem}.drawer__body{flex-grow:1;overflow:auto;padding:1rem .5rem}.drawer__footer{border-top:1px solid #dedce5;padding-top:.75rem}.drawer--open{right:0}@media (min-width: 768px){.drawer{width:75%}}@media (min-width: 992px){.drawer{width:50%}}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
137
|
+
trigger('visibilityChanged', [
|
|
138
|
+
transition(':enter', [
|
|
139
|
+
style({ transform: 'translateX(100%)' }),
|
|
140
|
+
animate('300ms', style({ transform: 'translateX(0)' })),
|
|
141
|
+
]),
|
|
142
|
+
transition(':leave', [
|
|
143
|
+
style({ transform: 'translateX(0)' }),
|
|
144
|
+
animate('300ms', style({ transform: 'translateX(100%)' })),
|
|
145
|
+
]),
|
|
146
|
+
]),
|
|
147
|
+
] });
|
|
148
|
+
}
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
150
|
+
type: Component,
|
|
151
|
+
args: [{ selector: 's-drawer, s-sidebar', host: {
|
|
152
|
+
'(document:keydown.escape)': 'handleEscape()',
|
|
153
|
+
}, hostDirectives: [DeprecatedSelectorDirective], providers: [
|
|
154
|
+
{
|
|
155
|
+
provide: DEPRECATED_CONFIG,
|
|
156
|
+
useValue: {
|
|
157
|
+
oldSelector: 's-sidebar',
|
|
158
|
+
newSelector: 's-drawer',
|
|
159
|
+
removalVersion: '20.0.0',
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
], animations: [
|
|
163
|
+
trigger('visibilityChanged', [
|
|
164
|
+
transition(':enter', [
|
|
165
|
+
style({ transform: 'translateX(100%)' }),
|
|
166
|
+
animate('300ms', style({ transform: 'translateX(0)' })),
|
|
167
|
+
]),
|
|
168
|
+
transition(':leave', [
|
|
169
|
+
style({ transform: 'translateX(0)' }),
|
|
170
|
+
animate('300ms', style({ transform: 'translateX(100%)' })),
|
|
171
|
+
]),
|
|
172
|
+
]),
|
|
173
|
+
], standalone: true, imports: [CdkTrapFocus, NgTemplateOutlet], template: "@if (visible()) {\n <div\n class=\"backdrop\"\n (click)=\"dismissible && closeDrawer()\"\n ></div>\n}\n\n@if (cache || visible()) {\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"visible()\"\n [@visibilityChanged]\n class=\"drawer\"\n [class.drawer--open]=\"visible()\"\n [class.drawer--large-size]=\"largeSized\"\n >\n <div class=\"drawer__header\">\n @if (headerTemplate) {\n <ng-template *ngTemplateOutlet=\"headerTemplate\"></ng-template>\n } @else {\n <span class=\"drawer__header__title\">{{ header }}</span>\n }\n @if (closable) {\n <button\n class=\"drawer__header__close fa-solid fa-xmark\"\n (click)=\"closeDrawer()\"\n ></button>\n }\n </div>\n <div class=\"drawer__body\">\n @if (bodyTemplate) {\n <ng-template [ngTemplateOutlet]=\"bodyTemplate\"></ng-template>\n } @else {\n <ng-content select=\":not(s-footer)\"></ng-content>\n }\n </div>\n @if (footerTemplate || footerComponent()) {\n <div class=\"drawer__footer\">\n @if (footerTemplate) {\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n } @else {\n <ng-content select=\"s-footer\"></ng-content>\n }\n </div>\n }\n </div>\n}\n", styles: [".backdrop{background-color:#00000080;height:100%;left:0;position:fixed;top:0;transition:opacity .3s;width:100%;z-index:998}.drawer{background-color:#fff;box-shadow:0 1px 5px #00000040;display:flex;flex-direction:column;height:100%;right:-100%;padding:1rem;position:fixed;top:0;transition:right .3s;width:100%;z-index:999}.drawer__header{border-bottom:1px solid #dedce5;display:flex;justify-content:space-between;padding-bottom:.75rem}.drawer__header__title{color:#212533;font-family:Inter,sans-serif;font-size:1rem;text-transform:uppercase;-webkit-user-select:none;user-select:none}.drawer__header__close{background-color:transparent;border:none;color:#212533;cursor:pointer;font-size:1rem;padding:.5rem}.drawer__body{flex-grow:1;overflow:auto;padding:1rem .5rem}.drawer__footer{border-top:1px solid #dedce5;padding-top:.75rem}.drawer--open{right:0}@media (min-width: 768px){.drawer{width:75%}}@media (min-width: 992px){.drawer{width:50%}}\n"] }]
|
|
174
|
+
}], propDecorators: { templates: [{
|
|
175
|
+
type: ContentChildren,
|
|
176
|
+
args: [TemplateDirective]
|
|
177
|
+
}], closable: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], dismissible: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], closeOnEscape: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], header: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], largeSized: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], cache: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], registerConfirmClose: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}] } });
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9kcmF3ZXIvc3JjL2xpYi9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9kcmF3ZXIvc3JjL2xpYi9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxHQUlSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzVHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFFdkY7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBa0NILE1BQU0sT0FBTyxlQUFlO0lBRWpCLFNBQVMsR0FBd0MsSUFBSSxDQUFDO0lBRTdEOzs7O09BSUc7SUFDSSxPQUFPLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRXZDOzs7O09BSUc7SUFFSSxR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LFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7NkJBQzdELENBQUM7eUJBQ0wsQ0FBQztxQkFDTCxjQUNXLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQzs4QkFJbEMsU0FBUztzQkFEZixlQUFlO3VCQUFDLGlCQUFpQjtnQkFnQjNCLFFBQVE7c0JBRGQsS0FBSztnQkFTQyxXQUFXO3NCQURqQixLQUFLO2dCQVNDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBUUMsTUFBTTtzQkFEWixLQUFLO2dCQVNDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBVUMsS0FBSztzQkFEWCxLQUFLO2dCQVFLLG9CQUFvQjtzQkFEOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDZGtUcmFwRm9jdXMgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgY29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBlZmZlY3QsXG4gICAgSW5wdXQsXG4gICAgbW9kZWwsXG4gICAgT25EZXN0cm95LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBERVBSRUNBVEVEX0NPTkZJRyB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29tbW9uL2RlcHJlY2F0ZWQtc2VsZWN0b3InO1xuaW1wb3J0IHsgRGVwcmVjYXRlZFNlbGVjdG9yRGlyZWN0aXZlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9jb21tb24vZGVwcmVjYXRlZC1zZWxlY3Rvcic7XG5pbXBvcnQgeyBGb290ZXJDb21wb25lbnQgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3N0cnVjdHVyZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGVtcGxhdGUnO1xuaW1wb3J0IHsgZGlzYWJsZVNjcm9sbCwgZW5hYmxlU2Nyb2xsIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgcGFpbmVsIGxhdGVyYWwgZGVzbGl6YW50ZSAoZHJhd2VyKSBxdWUgYXBhcmVjZSBzb2JyZSBvIGNvbnRlw7pkb1xuICogdmluZG8gZG8gbGFkbyBkaXJlaXRvIGRhIHRlbGEuIFN1cG9ydGEgdGVtcGxhdGVzIGN1c3RvbWl6YWRvcyBwYXJhIGNhYmXDp2FsaG8sIGNvcnBvIGUgcm9kYXDDqVxuICogdmlhIGBzVGVtcGxhdGVgLCBibG9xdWVpbyBkZSBzY3JvbGwgYXV0b23DoXRpY28gZSBjb25maXJtYcOnw6NvIGRlIGZlY2hhbWVudG8uXG4gKlxuICogVGFtYsOpbSByZXNwb25kZSBhbyBzZWxldG9yIGxlZ2FkbyBgcy1zaWRlYmFyYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtZHJhd2VyIFsodmlzaWJsZSldPVwiZHJhd2VyT3BlblwiIGhlYWRlcj1cIkZpbHRyb3NcIiBbY2xvc2FibGVdPVwidHJ1ZVwiPlxuICogICA8bmctdGVtcGxhdGUgc1RlbXBsYXRlPVwiYm9keVwiPkNvbnRlw7pkbzwvbmctdGVtcGxhdGU+XG4gKiA8L3MtZHJhd2VyPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IE92ZXJsYXlcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzLWRyYXdlciwgcy1zaWRlYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUpJzogJ2hhbmRsZUVzY2FwZSgpJyxcbiAgICB9LFxuICAgIGhvc3REaXJlY3RpdmVzOiBbRGVwcmVjYXRlZFNlbGVjdG9yRGlyZWN0aXZlXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogREVQUkVDQVRFRF9DT05GSUcsXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICAgIG9sZFNlbGVjdG9yOiAncy1zaWRlYmFyJyxcbiAgICAgICAgICAgICAgICBuZXdTZWxlY3RvcjogJ3MtZHJhd2VyJyxcbiAgICAgICAgICAgICAgICByZW1vdmFsVmVyc2lvbjogJzIwLjAuMCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCd2aXNpYmlsaXR5Q2hhbmdlZCcsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJyB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzMwMG1zJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJyB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDZGtUcmFwRm9jdXMsIE5nVGVtcGxhdGVPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBEcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBDb250ZW50Q2hpbGRyZW4oVGVtcGxhdGVEaXJlY3RpdmUpXG4gICAgcHVibGljIHRlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlRGlyZWN0aXZlPiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbnRyb2xhIGEgdmlzaWJpbGlkYWRlIGRvIGRyYXdlci4gU3Vwb3J0YSB0d28td2F5IGJpbmRpbmcgdmlhIGBbKHZpc2libGUpXWAuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyB2aXNpYmxlID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGV4aWJlIG8gYm90w6NvIGRlIGZlY2hhciAoWCkgbm8gY2FiZcOnYWxobyBkbyBkcmF3ZXIuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xvc2FibGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGNsaWNhciBubyBiYWNrZHJvcCAow6FyZWEgZXNjdXJlY2lkYSBmb3JhIGRvIGRyYXdlcikgZmVjaGEgbyBwYWluZWwuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzbWlzc2libGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIHByZXNzaW9uYXIgYSB0ZWNsYSBFc2NhcGUgZmVjaGEgbyBkcmF3ZXIuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xvc2VPbkVzY2FwZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGV4dG8gZXhpYmlkbyBubyBjYWJlw6dhbGhvIHBhZHLDo28gZG8gZHJhd2VyLlxuICAgICAqIFBvZGUgc2VyIHN1YnN0aXR1w61kbyBwb3IgdW0gdGVtcGxhdGUgY3VzdG9taXphZG8gdmlhIGBzVGVtcGxhdGU9XCJoZWFkZXJcImAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGVhZGVyPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGF1bWVudGEgYSBsYXJndXJhIGRvIGRyYXdlciBwYXJhIGFjb21vZGFyIG1haXMgY29udGXDumRvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYXJnZVNpemVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUXVhbmRvIGB0cnVlYCwgbWFudMOpbSBvIGNvbnRlw7pkbyBkbyBkcmF3ZXIgbm8gRE9NIG1lc21vIHF1YW5kbyBvY3VsdG8sXG4gICAgICogcHJlc2VydmFuZG8gbyBlc3RhZG8gaW50ZXJubyBkb3MgY29tcG9uZW50ZXMgZmlsaG9zLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjYWNoZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZ1bsOnw6NvIGRlIGNvbmZpcm1hw6fDo28gY2hhbWFkYSBhbnRlcyBkZSBmZWNoYXIgbyBkcmF3ZXIuXG4gICAgICogUXVhbmRvIHJldG9ybmFyIGBmYWxzZWAsIG8gZmVjaGFtZW50byDDqSBibG9xdWVhZG8uIMOadGlsIHBhcmEgdmFsaWRhciBmb3JtdWzDoXJpb3MgbsOjbyBzYWx2b3MuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlZ2lzdGVyQ29uZmlybUNsb3NlKGZuOiAoKSA9PiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NvbmZpcm1DbG9zZSA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcbiAgICBwdWJsaWMgYm9keVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmb290ZXJDb21wb25lbnQgPSBjb250ZW50Q2hpbGQoRm9vdGVyQ29tcG9uZW50KTtcblxuICAgIHByaXZhdGUgX2NvbmZpcm1DbG9zZSA9ICgpID0+IHRydWU7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpc2libGVFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCB2aXNpYmxlID0gdGhpcy52aXNpYmxlKCk7XG4gICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgICBkaXNhYmxlU2Nyb2xsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbmFibGVTY3JvbGwoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ2V0VGVtcGxhdGVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpc2libGVFZmZlY3QuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZURyYXdlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpcm1DbG9zZSgpKSB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGUuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVFc2NhcGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25Fc2NhcGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcmF3ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEN1c3RvbVRlbXBsYXRlKHR5cGU6IHN0cmluZyk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzPy5maW5kKCh0ZW1wbGF0ZTogVGVtcGxhdGVEaXJlY3RpdmUpID0+IHRlbXBsYXRlLnR5cGUgPT09IHR5cGUpPy50ZW1wbGF0ZSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKCdoZWFkZXInKSA/PyBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Qm9keVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZSgnYm9keScpID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb290ZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoJ2Zvb3RlcicpID8/IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0VGVtcGxhdGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhlYWRlclRlbXBsYXRlID0gdGhpcy5nZXRIZWFkZXJUZW1wbGF0ZSgpO1xuICAgICAgICB0aGlzLmJvZHlUZW1wbGF0ZSA9IHRoaXMuZ2V0Qm9keVRlbXBsYXRlKCk7XG4gICAgICAgIHRoaXMuZm9vdGVyVGVtcGxhdGUgPSB0aGlzLmdldEZvb3RlclRlbXBsYXRlKCk7XG4gICAgfVxufVxuIiwiQGlmICh2aXNpYmxlKCkpIHtcbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYmFja2Ryb3BcIlxuICAgICAgICAoY2xpY2spPVwiZGlzbWlzc2libGUgJiYgY2xvc2VEcmF3ZXIoKVwiXG4gICAgPjwvZGl2PlxufVxuXG5AaWYgKGNhY2hlIHx8IHZpc2libGUoKSkge1xuICAgIDxkaXZcbiAgICAgICAgY2RrVHJhcEZvY3VzXG4gICAgICAgIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ2aXNpYmxlKClcIlxuICAgICAgICBbQHZpc2liaWxpdHlDaGFuZ2VkXVxuICAgICAgICBjbGFzcz1cImRyYXdlclwiXG4gICAgICAgIFtjbGFzcy5kcmF3ZXItLW9wZW5dPVwidmlzaWJsZSgpXCJcbiAgICAgICAgW2NsYXNzLmRyYXdlci0tbGFyZ2Utc2l6ZV09XCJsYXJnZVNpemVkXCJcbiAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXJfX2hlYWRlclwiPlxuICAgICAgICAgICAgQGlmIChoZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJhd2VyX19oZWFkZXJfX3RpdGxlXCI+e3sgaGVhZGVyIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChjbG9zYWJsZSkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcmF3ZXJfX2hlYWRlcl9fY2xvc2UgZmEtc29saWQgZmEteG1hcmtcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEcmF3ZXIoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlcl9fYm9keVwiPlxuICAgICAgICAgICAgQGlmIChib2R5VGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYm9keVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIjpub3Qocy1mb290ZXIpXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChmb290ZXJUZW1wbGF0ZSB8fCBmb290ZXJDb21wb25lbnQoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYXdlcl9fZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChmb290ZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxufVxuIl19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { TemplateModule } from '@seniorsistemas/angular-components/template';
|
|
3
|
+
import { DrawerComponent } from './drawer.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class DrawerModule {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, imports: [DrawerComponent], exports: [DrawerComponent, TemplateModule] });
|
|
8
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, imports: [TemplateModule] });
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
imports: [DrawerComponent],
|
|
14
|
+
exports: [DrawerComponent, TemplateModule],
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9kcmF3ZXIvc3JjL2xpYi9kcmF3ZXIvZHJhd2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBTXJELE1BQU0sT0FBTyxZQUFZO3dHQUFaLFlBQVk7eUdBQVosWUFBWSxZQUhYLGVBQWUsYUFDZixlQUFlLEVBQUUsY0FBYzt5R0FFaEMsWUFBWSxZQUZNLGNBQWM7OzRGQUVoQyxZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUZW1wbGF0ZU1vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvdGVtcGxhdGUnO1xuXG5pbXBvcnQgeyBEcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL2RyYXdlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtEcmF3ZXJDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtEcmF3ZXJDb21wb25lbnQsIFRlbXBsYXRlTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { DrawerComponent } from './lib/drawer/drawer.component';
|
|
2
|
+
export { DrawerModule } from './lib/drawer/drawer.module';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9kcmF3ZXIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERyYXdlckNvbXBvbmVudCB9IGZyb20gJy4vbGliL2RyYXdlci9kcmF3ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IERyYXdlck1vZHVsZSB9IGZyb20gJy4vbGliL2RyYXdlci9kcmF3ZXIubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuaW9yc2lzdGVtYXMtYW5ndWxhci1jb21wb25lbnRzLWRyYXdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9kcmF3ZXIvc3JjL3NlbmlvcnNpc3RlbWFzLWFuZ3VsYXItY29tcG9uZW50cy1kcmF3ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|