@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.
Files changed (79) hide show
  1. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +2 -1
  2. package/code-editor/lib/code-editor/core/facades/core-facade.d.ts +3 -1
  3. package/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +12 -2
  4. package/drawer/README.md +119 -0
  5. package/drawer/index.d.ts +5 -0
  6. package/{sidebar/lib/sidebar/sidebar.component.d.ts → drawer/lib/drawer/drawer.component.d.ts} +18 -15
  7. package/drawer/lib/drawer/drawer.module.d.ts +8 -0
  8. package/drawer/public-api.d.ts +2 -0
  9. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +6 -3
  10. package/esm2022/code-editor/lib/code-editor/core/facades/core-facade.mjs +7 -1
  11. package/esm2022/code-editor/lib/code-editor/infra/cores/codemirror-6/codemirror-6-core.mjs +47 -22
  12. package/esm2022/drawer/lib/drawer/drawer.component.mjs +192 -0
  13. package/esm2022/drawer/lib/drawer/drawer.module.mjs +17 -0
  14. package/esm2022/drawer/public-api.mjs +3 -0
  15. package/esm2022/drawer/seniorsistemas-angular-components-drawer.mjs +5 -0
  16. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +4 -5
  17. package/esm2022/lib/locale/fallback.mjs +3 -2
  18. package/esm2022/select/lib/select/select.component.mjs +11 -14
  19. package/esm2022/side-sheet/lib/side-sheet/models/side-sheet-config.mjs +2 -0
  20. package/esm2022/side-sheet/lib/side-sheet/models/side-sheet-size.mjs +2 -0
  21. package/esm2022/side-sheet/lib/side-sheet/services/side-sheet.service.mjs +82 -0
  22. package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +171 -0
  23. package/esm2022/side-sheet/public-api.mjs +3 -0
  24. package/esm2022/side-sheet/seniorsistemas-angular-components-side-sheet.mjs +5 -0
  25. package/esm2022/sidebar/public-api.mjs +12 -3
  26. package/esm2022/switch/lib/switch/switch.component.mjs +5 -3
  27. package/esm2022/switch/lib/switch/switch.module.mjs +2 -2
  28. package/esm2022/tabs/lib/tab-item/tab-item.component.mjs +4 -3
  29. package/esm2022/tabs/lib/tabs/tabs.component.mjs +14 -10
  30. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +82 -75
  31. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +3 -3
  32. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +35 -18
  33. package/esm2022/tiered-menu/lib/tiered-menu/services/tiered-menu.event.service.mjs +2 -1
  34. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +89 -77
  35. package/esm2022/toast/lib/toast/toast.service.mjs +2 -2
  36. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +5 -2
  37. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  38. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +52 -21
  39. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  40. package/fesm2022/seniorsistemas-angular-components-drawer.mjs +211 -0
  41. package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -0
  42. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +3 -4
  43. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  44. package/fesm2022/seniorsistemas-angular-components-select.mjs +10 -13
  45. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  46. package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +257 -0
  47. package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -0
  48. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +10 -180
  49. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  50. package/fesm2022/seniorsistemas-angular-components-switch.mjs +5 -3
  51. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  52. package/fesm2022/seniorsistemas-angular-components-tabs.mjs +16 -11
  53. package/fesm2022/seniorsistemas-angular-components-tabs.mjs.map +1 -1
  54. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +201 -164
  55. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  56. package/fesm2022/seniorsistemas-angular-components-toast.mjs +1 -1
  57. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  58. package/fesm2022/seniorsistemas-angular-components.mjs +2 -1
  59. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  60. package/package.json +19 -7
  61. package/select/lib/select/select.component.d.ts +2 -1
  62. package/side-sheet/README.md +184 -0
  63. package/side-sheet/index.d.ts +5 -0
  64. package/side-sheet/lib/side-sheet/models/side-sheet-config.d.ts +20 -0
  65. package/side-sheet/lib/side-sheet/models/side-sheet-size.d.ts +1 -0
  66. package/side-sheet/lib/side-sheet/services/side-sheet.service.d.ts +49 -0
  67. package/side-sheet/lib/side-sheet/side-sheet.component.d.ts +61 -0
  68. package/side-sheet/public-api.d.ts +4 -0
  69. package/sidebar/README.md +20 -93
  70. package/sidebar/public-api.d.ts +11 -2
  71. package/tabs/lib/tab-item/tab-item.component.d.ts +1 -0
  72. package/tabs/lib/tabs/tabs.component.d.ts +2 -1
  73. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +19 -7
  74. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +4 -3
  75. package/tiered-menu/lib/tiered-menu/services/tiered-menu.event.service.d.ts +1 -0
  76. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +6 -5
  77. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +0 -169
  78. package/esm2022/sidebar/lib/sidebar/sidebar.module.mjs +0 -17
  79. 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
- static _ngUnsubscribe = new Subject();
13
- static _editorView = null;
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
- CodeMirror6Core._editorView = null;
38
- CodeMirror6Core._ngUnsubscribe.next();
39
- CodeMirror6Core._ngUnsubscribe.complete();
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 (CodeMirror6Core._editorView) {
45
- CodeMirror6Core.updateEditorView({
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
- const diagnostics = convertMarkersToDiagnostics(markers, CodeMirror6Core._editorView?.state.doc.length);
55
- CodeMirror6Core.updateEditorView(setDiagnostics(CodeMirror6Core._editorView?.state, diagnostics));
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(CodeMirror6Core._ngUnsubscribe))
80
+ .pipe(takeUntil(this._ngUnsubscribe))
60
81
  .subscribe((items) => this.updateCompletionItems(items));
61
82
  }
62
83
  createEditorView(parentElement) {
63
- CodeMirror6Core._editorView = new EditorView({
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 (CodeMirror6Core._editorView) {
77
- CodeMirror6Core.updateEditorView({
101
+ if (this._editorView) {
102
+ this._editorView.dispatch({
78
103
  changes: {
79
104
  from: 0,
80
- to: CodeMirror6Core._editorView.state.doc.length,
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 (CodeMirror6Core._editorView) {
91
- const currentCode = CodeMirror6Core._editorView.state.doc.toString();
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 = CodeMirror6Core._editorView.state.selection.main;
95
- CodeMirror6Core.updateEditorView({
119
+ const currentSelection = this._editorView.state.selection.main;
120
+ this._editorView.dispatch({
96
121
  changes: {
97
122
  from: 0,
98
- to: CodeMirror6Core._editorView.state.doc.length,
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==