@covalent/markdown-navigator 4.0.0-alpha.0 → 4.0.0-beta.4

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 (37) hide show
  1. package/covalent-markdown-navigator.d.ts +1 -1
  2. package/esm2020/covalent-markdown-navigator.mjs +5 -0
  3. package/esm2020/index.mjs +2 -0
  4. package/esm2020/markdown-navigator-window/markdown-navigator-window.component.mjs +91 -0
  5. package/esm2020/markdown-navigator-window-directive/markdown-navigator-window.directive.mjs +34 -0
  6. package/esm2020/markdown-navigator-window-service/markdown-navigator-window.service.mjs +129 -0
  7. package/esm2020/markdown-navigator.component.mjs +587 -0
  8. package/esm2020/markdown-navigator.module.mjs +62 -0
  9. package/esm2020/public-api.mjs +6 -0
  10. package/fesm2015/covalent-markdown-navigator.mjs +968 -0
  11. package/fesm2015/covalent-markdown-navigator.mjs.map +1 -0
  12. package/fesm2020/covalent-markdown-navigator.mjs +889 -0
  13. package/fesm2020/covalent-markdown-navigator.mjs.map +1 -0
  14. package/markdown-navigator-window/markdown-navigator-window.component.d.ts +3 -0
  15. package/markdown-navigator-window/markdown-navigator-window.component.scss +1 -0
  16. package/markdown-navigator-window-directive/markdown-navigator-window.directive.d.ts +3 -0
  17. package/markdown-navigator-window-service/markdown-navigator-window.service.d.ts +3 -0
  18. package/markdown-navigator.component.d.ts +3 -0
  19. package/markdown-navigator.component.scss +5 -0
  20. package/markdown-navigator.module.d.ts +16 -0
  21. package/package.json +30 -15
  22. package/public-api.d.ts +1 -0
  23. package/bundles/covalent-markdown-navigator.umd.js +0 -1650
  24. package/bundles/covalent-markdown-navigator.umd.js.map +0 -1
  25. package/bundles/covalent-markdown-navigator.umd.min.js +0 -16
  26. package/bundles/covalent-markdown-navigator.umd.min.js.map +0 -1
  27. package/covalent-markdown-navigator.metadata.json +0 -1
  28. package/esm2015/covalent-markdown-navigator.js +0 -11
  29. package/esm2015/index.js +0 -7
  30. package/esm2015/markdown-navigator-window/markdown-navigator-window.component.js +0 -129
  31. package/esm2015/markdown-navigator-window-directive/markdown-navigator-window.directive.js +0 -50
  32. package/esm2015/markdown-navigator-window-service/markdown-navigator-window.service.js +0 -254
  33. package/esm2015/markdown-navigator.component.js +0 -698
  34. package/esm2015/markdown-navigator.module.js +0 -41
  35. package/esm2015/public-api.js +0 -10
  36. package/fesm2015/covalent-markdown-navigator.js +0 -1181
  37. package/fesm2015/covalent-markdown-navigator.js.map +0 -1
@@ -1,129 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: markdown-navigator-window/markdown-navigator-window.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component, Output, EventEmitter, Input, ChangeDetectionStrategy, Type } from '@angular/core';
7
- /**
8
- * @record
9
- */
10
- export function IMarkdownNavigatorWindowLabels() { }
11
- if (false) {
12
- /** @type {?|undefined} */
13
- IMarkdownNavigatorWindowLabels.prototype.title;
14
- /** @type {?|undefined} */
15
- IMarkdownNavigatorWindowLabels.prototype.close;
16
- /** @type {?|undefined} */
17
- IMarkdownNavigatorWindowLabels.prototype.dock;
18
- /** @type {?|undefined} */
19
- IMarkdownNavigatorWindowLabels.prototype.unDock;
20
- }
21
- /** @type {?} */
22
- export const DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS = {
23
- title: 'Help',
24
- close: 'Close',
25
- dock: 'Dock',
26
- unDock: 'Undock',
27
- };
28
- export class TdMarkdownNavigatorWindowComponent {
29
- constructor() {
30
- this.toolbarColor = 'primary';
31
- this.docked = false;
32
- this.copyCodeToClipboard = false;
33
- this.copyCodeTooltips = {};
34
- this.closed = new EventEmitter();
35
- this.dockToggled = new EventEmitter();
36
- this.buttonClicked = new EventEmitter();
37
- }
38
- /**
39
- * @return {?}
40
- */
41
- get markdownNavigatorLabels() {
42
- if (this.labels) {
43
- const { goHome, goBack, emptyState } = this.labels;
44
- return {
45
- goHome,
46
- goBack,
47
- emptyState,
48
- };
49
- }
50
- }
51
- /**
52
- * @return {?}
53
- */
54
- get titleLabel() {
55
- return (this.labels && this.labels.title) || DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.title;
56
- }
57
- /**
58
- * @return {?}
59
- */
60
- get closeLabel() {
61
- return (this.labels && this.labels.close) || DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.close;
62
- }
63
- /**
64
- * @return {?}
65
- */
66
- get toggleDockedStateLabel() {
67
- if (this.docked) {
68
- return (this.labels && this.labels.unDock) || DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.unDock;
69
- }
70
- else {
71
- return (this.labels && this.labels.dock) || DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.dock;
72
- }
73
- }
74
- /**
75
- * @return {?}
76
- */
77
- toggleDockedState() {
78
- this.dockToggled.emit(this.docked);
79
- }
80
- }
81
- TdMarkdownNavigatorWindowComponent.decorators = [
82
- { type: Component, args: [{
83
- selector: 'td-markdown-navigator-window',
84
- template: "<td-window-dialog\n [toolbarColor]=\"toolbarColor\"\n [docked]=\"docked\"\n [title]=\"titleLabel\"\n [toggleDockedStateLabel]=\"toggleDockedStateLabel\"\n [closeLabel]=\"closeLabel\"\n (dockToggled)=\"toggleDockedState()\"\n (closed)=\"closed.emit()\"\n>\n <td-markdown-navigator\n [items]=\"items\"\n [labels]=\"markdownNavigatorLabels\"\n [style.display]=\"docked ? 'none' : 'inherit'\"\n [startAt]=\"startAt\"\n [compareWith]=\"compareWith\"\n [footer]=\"footer\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n ></td-markdown-navigator>\n</td-window-dialog>\n",
85
- changeDetection: ChangeDetectionStrategy.OnPush,
86
- styles: [":host{-ms-flex-direction:column;display:-ms-flexbox;display:flex;flex-direction:column;height:100%}td-markdown-navigator{height:calc(100% - 56px)}"]
87
- }] }
88
- ];
89
- TdMarkdownNavigatorWindowComponent.propDecorators = {
90
- items: [{ type: Input }],
91
- labels: [{ type: Input }],
92
- toolbarColor: [{ type: Input }],
93
- startAt: [{ type: Input }],
94
- compareWith: [{ type: Input }],
95
- docked: [{ type: Input }],
96
- copyCodeToClipboard: [{ type: Input }],
97
- copyCodeTooltips: [{ type: Input }],
98
- footer: [{ type: Input }],
99
- closed: [{ type: Output }],
100
- dockToggled: [{ type: Output }],
101
- buttonClicked: [{ type: Output }]
102
- };
103
- if (false) {
104
- /** @type {?} */
105
- TdMarkdownNavigatorWindowComponent.prototype.items;
106
- /** @type {?} */
107
- TdMarkdownNavigatorWindowComponent.prototype.labels;
108
- /** @type {?} */
109
- TdMarkdownNavigatorWindowComponent.prototype.toolbarColor;
110
- /** @type {?} */
111
- TdMarkdownNavigatorWindowComponent.prototype.startAt;
112
- /** @type {?} */
113
- TdMarkdownNavigatorWindowComponent.prototype.compareWith;
114
- /** @type {?} */
115
- TdMarkdownNavigatorWindowComponent.prototype.docked;
116
- /** @type {?} */
117
- TdMarkdownNavigatorWindowComponent.prototype.copyCodeToClipboard;
118
- /** @type {?} */
119
- TdMarkdownNavigatorWindowComponent.prototype.copyCodeTooltips;
120
- /** @type {?} */
121
- TdMarkdownNavigatorWindowComponent.prototype.footer;
122
- /** @type {?} */
123
- TdMarkdownNavigatorWindowComponent.prototype.closed;
124
- /** @type {?} */
125
- TdMarkdownNavigatorWindowComponent.prototype.dockToggled;
126
- /** @type {?} */
127
- TdMarkdownNavigatorWindowComponent.prototype.buttonClicked;
128
- }
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL21hcmtkb3duLW5hdmlnYXRvci8iLCJzb3VyY2VzIjpbIm1hcmtkb3duLW5hdmlnYXRvci13aW5kb3cvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVV0RyxvREFLQzs7O0lBSkMsK0NBQWU7O0lBQ2YsK0NBQWU7O0lBQ2YsOENBQWM7O0lBQ2QsZ0RBQWdCOzs7QUFFbEIsTUFBTSxPQUFPLHdDQUF3QyxHQUFtQztJQUN0RixLQUFLLEVBQUUsTUFBTTtJQUNiLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixNQUFNLEVBQUUsUUFBUTtDQUNqQjtBQVFELE1BQU0sT0FBTyxrQ0FBa0M7SUFOL0M7UUFTVyxpQkFBWSxHQUFpQixTQUFTLENBQUM7UUFHdkMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4Qix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMscUJBQWdCLEdBQXNCLEVBQUUsQ0FBQztRQUd4QyxXQUFNLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEQsZ0JBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxrQkFBYSxHQUFzRCxJQUFJLFlBQVksRUFBRSxDQUFDO0lBK0JsRyxDQUFDOzs7O0lBN0JDLElBQUksdUJBQXVCO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtrQkFDVCxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQW1DLElBQUksQ0FBQyxNQUFNO1lBQ2xGLE9BQU87Z0JBQ0wsTUFBTTtnQkFDTixNQUFNO2dCQUNOLFVBQVU7YUFDWCxDQUFDO1NBQ0g7SUFDSCxDQUFDOzs7O0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSx3Q0FBd0MsQ0FBQyxLQUFLLENBQUM7SUFDOUYsQ0FBQzs7OztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksd0NBQXdDLENBQUMsS0FBSyxDQUFDO0lBQzlGLENBQUM7Ozs7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLHdDQUF3QyxDQUFDLE1BQU0sQ0FBQztTQUMvRjthQUFNO1lBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSx3Q0FBd0MsQ0FBQyxJQUFJLENBQUM7U0FDM0Y7SUFDSCxDQUFDOzs7O0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OztZQWpERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtnQkFDeEMsZ3NCQUF5RDtnQkFFekQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7b0JBRUUsS0FBSztxQkFDTCxLQUFLOzJCQUNMLEtBQUs7c0JBQ0wsS0FBSzswQkFDTCxLQUFLO3FCQUNMLEtBQUs7a0NBQ0wsS0FBSzsrQkFDTCxLQUFLO3FCQUNMLEtBQUs7cUJBRUwsTUFBTTswQkFDTixNQUFNOzRCQUNOLE1BQU07Ozs7SUFaUCxtREFBeUM7O0lBQ3pDLG9EQUFnRDs7SUFDaEQsMERBQWdEOztJQUNoRCxxREFBb0U7O0lBQ3BFLHlEQUFvRDs7SUFDcEQsb0RBQWlDOztJQUNqQyxpRUFBOEM7O0lBQzlDLDhEQUFrRDs7SUFDbEQsb0RBQTJCOztJQUUzQixvREFBMEQ7O0lBQzFELHlEQUFrRTs7SUFDbEUsMkRBQWdHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG4gIElNYXJrZG93bk5hdmlnYXRvckl0ZW0sXG4gIElNYXJrZG93bk5hdmlnYXRvckxhYmVscyxcbiAgSU1hcmtkb3duTmF2aWdhdG9yQ29tcGFyZVdpdGgsXG59IGZyb20gJy4uL21hcmtkb3duLW5hdmlnYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQgfSBmcm9tICdAY292YWxlbnQvZmxhdm9yZWQtbWFya2Rvd24nO1xuaW1wb3J0IHsgSUNvcHlDb2RlVG9vbHRpcHMgfSBmcm9tICdAY292YWxlbnQvaGlnaGxpZ2h0JztcblxuZXhwb3J0IGludGVyZmFjZSBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgZXh0ZW5kcyBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMge1xuICB0aXRsZT86IHN0cmluZztcbiAgY2xvc2U/OiBzdHJpbmc7XG4gIGRvY2s/OiBzdHJpbmc7XG4gIHVuRG9jaz86IHN0cmluZztcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgPSB7XG4gIHRpdGxlOiAnSGVscCcsXG4gIGNsb3NlOiAnQ2xvc2UnLFxuICBkb2NrOiAnRG9jaycsXG4gIHVuRG9jazogJ1VuZG9jaycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZC1tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50IHtcbiAgQElucHV0KCkgaXRlbXM6IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgQElucHV0KCkgbGFiZWxzOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHM7XG4gIEBJbnB1dCgpIHRvb2xiYXJDb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBzdGFydEF0OiBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtIHwgSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBASW5wdXQoKSBjb21wYXJlV2l0aDogSU1hcmtkb3duTmF2aWdhdG9yQ29tcGFyZVdpdGg7XG4gIEBJbnB1dCgpIGRvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjb3B5Q29kZVRvQ2xpcGJvYXJkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvcHlDb2RlVG9vbHRpcHM6IElDb3B5Q29kZVRvb2x0aXBzID0ge307XG4gIEBJbnB1dCgpIGZvb3RlcjogVHlwZTxhbnk+O1xuXG4gIEBPdXRwdXQoKSBjbG9zZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRvY2tUb2dnbGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBidXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8SVRkRmxhdm9yZWRNYXJrZG93bkJ1dHRvbkNsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdldCBtYXJrZG93bk5hdmlnYXRvckxhYmVscygpOiBJTWFya2Rvd25OYXZpZ2F0b3JMYWJlbHMge1xuICAgIGlmICh0aGlzLmxhYmVscykge1xuICAgICAgY29uc3QgeyBnb0hvbWUsIGdvQmFjaywgZW1wdHlTdGF0ZSB9OiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dMYWJlbHMgPSB0aGlzLmxhYmVscztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdvSG9tZSxcbiAgICAgICAgZ29CYWNrLFxuICAgICAgICBlbXB0eVN0YXRlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgZ2V0IHRpdGxlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMubGFiZWxzICYmIHRoaXMubGFiZWxzLnRpdGxlKSB8fCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLnRpdGxlO1xuICB9XG5cbiAgZ2V0IGNsb3NlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMubGFiZWxzICYmIHRoaXMubGFiZWxzLmNsb3NlKSB8fCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLmNsb3NlO1xuICB9XG5cbiAgZ2V0IHRvZ2dsZURvY2tlZFN0YXRlTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kb2NrZWQpIHtcbiAgICAgIHJldHVybiAodGhpcy5sYWJlbHMgJiYgdGhpcy5sYWJlbHMudW5Eb2NrKSB8fCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLnVuRG9jaztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICh0aGlzLmxhYmVscyAmJiB0aGlzLmxhYmVscy5kb2NrKSB8fCBERUZBVUxUX01BUktET1dOX05BVklHQVRPUl9XSU5ET1dfTEFCRUxTLmRvY2s7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlRG9ja2VkU3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5kb2NrVG9nZ2xlZC5lbWl0KHRoaXMuZG9ja2VkKTtcbiAgfVxufVxuIl19
@@ -1,50 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: markdown-navigator-window-directive/markdown-navigator-window.directive.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Directive, HostListener, Input } from '@angular/core';
7
- import { TdMarkdownNavigatorWindowService, } from '../markdown-navigator-window-service/markdown-navigator-window.service';
8
- export class TdMarkdownNavigatorWindowDirective {
9
- /**
10
- * @param {?} _markdownNavigatorWindowService
11
- */
12
- constructor(_markdownNavigatorWindowService) {
13
- this._markdownNavigatorWindowService = _markdownNavigatorWindowService;
14
- this.disabled = false;
15
- }
16
- /**
17
- * @return {?}
18
- */
19
- click() {
20
- if (!this.disabled) {
21
- this._markdownNavigatorWindowService.open(this.config);
22
- }
23
- }
24
- }
25
- TdMarkdownNavigatorWindowDirective.decorators = [
26
- { type: Directive, args: [{
27
- selector: '[tdMarkdownNavigatorWindow]',
28
- },] }
29
- ];
30
- /** @nocollapse */
31
- TdMarkdownNavigatorWindowDirective.ctorParameters = () => [
32
- { type: TdMarkdownNavigatorWindowService }
33
- ];
34
- TdMarkdownNavigatorWindowDirective.propDecorators = {
35
- config: [{ type: Input, args: ['tdMarkdownNavigatorWindow',] }],
36
- disabled: [{ type: Input }],
37
- click: [{ type: HostListener, args: ['click',] }]
38
- };
39
- if (false) {
40
- /** @type {?} */
41
- TdMarkdownNavigatorWindowDirective.prototype.config;
42
- /** @type {?} */
43
- TdMarkdownNavigatorWindowDirective.prototype.disabled;
44
- /**
45
- * @type {?}
46
- * @private
47
- */
48
- TdMarkdownNavigatorWindowDirective.prototype._markdownNavigatorWindowService;
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vc3JjL3BsYXRmb3JtL21hcmtkb3duLW5hdmlnYXRvci8iLCJzb3VyY2VzIjpbIm1hcmtkb3duLW5hdmlnYXRvci13aW5kb3ctZGlyZWN0aXZlL21hcmtkb3duLW5hdmlnYXRvci13aW5kb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFDTCxnQ0FBZ0MsR0FFakMsTUFBTSx3RUFBd0UsQ0FBQztBQUtoRixNQUFNLE9BQU8sa0NBQWtDOzs7O0lBRzdDLFlBQW9CLCtCQUFpRTtRQUFqRSxvQ0FBK0IsR0FBL0IsK0JBQStCLENBQWtDO1FBRDVFLGFBQVEsR0FBWSxLQUFLLENBQUM7SUFDcUQsQ0FBQzs7OztJQUVsRSxLQUFLO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQzs7O1lBWkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7YUFDeEM7Ozs7WUFOQyxnQ0FBZ0M7OztxQkFRL0IsS0FBSyxTQUFDLDJCQUEyQjt1QkFDakMsS0FBSztvQkFHTCxZQUFZLFNBQUMsT0FBTzs7OztJQUpyQixvREFBMkU7O0lBQzNFLHNEQUFtQzs7Ozs7SUFDdkIsNkVBQXlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93U2VydmljZSxcbiAgSU1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29uZmlnLFxufSBmcm9tICcuLi9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LXNlcnZpY2UvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3RkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3ddJyxcbn0pXG5leHBvcnQgY2xhc3MgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpcmVjdGl2ZSB7XG4gIEBJbnB1dCgndGRNYXJrZG93bk5hdmlnYXRvcldpbmRvdycpIGNvbmZpZzogSU1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29uZmlnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2U6IFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dTZXJ2aWNlKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJykgY2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9tYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2Uub3Blbih0aGlzLmNvbmZpZyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,254 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: markdown-navigator-window-service/markdown-navigator-window.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Injectable, Inject, RendererFactory2 } from '@angular/core';
7
- import { TdMarkdownNavigatorWindowComponent, } from '../markdown-navigator-window/markdown-navigator-window.component';
8
- import { TdDialogService, ResizableDraggableDialog } from '@covalent/core/dialogs';
9
- import { DOCUMENT } from '@angular/common';
10
- /**
11
- * @record
12
- */
13
- export function IMarkdownNavigatorWindowConfig() { }
14
- if (false) {
15
- /** @type {?} */
16
- IMarkdownNavigatorWindowConfig.prototype.items;
17
- /** @type {?|undefined} */
18
- IMarkdownNavigatorWindowConfig.prototype.dialogConfig;
19
- /** @type {?|undefined} */
20
- IMarkdownNavigatorWindowConfig.prototype.labels;
21
- /** @type {?|undefined} */
22
- IMarkdownNavigatorWindowConfig.prototype.toolbarColor;
23
- /** @type {?|undefined} */
24
- IMarkdownNavigatorWindowConfig.prototype.startAt;
25
- /** @type {?|undefined} */
26
- IMarkdownNavigatorWindowConfig.prototype.compareWith;
27
- /** @type {?|undefined} */
28
- IMarkdownNavigatorWindowConfig.prototype.copyCodeToClipboard;
29
- /** @type {?|undefined} */
30
- IMarkdownNavigatorWindowConfig.prototype.copyCodeTooltips;
31
- /** @type {?|undefined} */
32
- IMarkdownNavigatorWindowConfig.prototype.footer;
33
- }
34
- /** @type {?} */
35
- const CDK_OVERLAY_CUSTOM_CLASS = 'td-window-dialog';
36
- /** @type {?} */
37
- const DEFAULT_POSITION = { bottom: '0px', right: '0px' };
38
- /** @type {?} */
39
- const DEFAULT_WIDTH = '360px';
40
- /** @type {?} */
41
- const DEFAULT_HEIGHT = '75vh';
42
- /** @type {?} */
43
- const MIN_HEIGHT = '56px';
44
- /** @type {?} */
45
- const MAX_WIDTH = '100vw';
46
- /** @type {?} */
47
- const DEFAULT_DRAGGABLE_DIALOG_CONFIG = {
48
- hasBackdrop: false,
49
- closeOnNavigation: true,
50
- panelClass: [CDK_OVERLAY_CUSTOM_CLASS],
51
- position: DEFAULT_POSITION,
52
- height: DEFAULT_HEIGHT,
53
- width: DEFAULT_WIDTH,
54
- maxWidth: MAX_WIDTH,
55
- };
56
- /**
57
- * @record
58
- */
59
- function IDialogDimensions() { }
60
- if (false) {
61
- /** @type {?} */
62
- IDialogDimensions.prototype.width;
63
- /** @type {?} */
64
- IDialogDimensions.prototype.height;
65
- }
66
- export class TdMarkdownNavigatorWindowService {
67
- /**
68
- * @param {?} _tdDialogService
69
- * @param {?} _document
70
- * @param {?} rendererFactory
71
- */
72
- constructor(_tdDialogService, _document, rendererFactory) {
73
- this._tdDialogService = _tdDialogService;
74
- this._document = _document;
75
- this.rendererFactory = rendererFactory;
76
- this.markdownNavigatorWindowDialog = undefined;
77
- this.markdownNavigatorWindowDialogsOpen = 0;
78
- this._renderer2 = rendererFactory.createRenderer(undefined, undefined);
79
- }
80
- /**
81
- * @param {?} config
82
- * @return {?}
83
- */
84
- open(config) {
85
- this.close();
86
- /** @type {?} */
87
- let panelClass = [...DEFAULT_DRAGGABLE_DIALOG_CONFIG.panelClass];
88
- if (config.dialogConfig && config.dialogConfig.panelClass) {
89
- if (Array.isArray(config.dialogConfig.panelClass)) {
90
- panelClass = [...config.dialogConfig.panelClass];
91
- }
92
- else {
93
- panelClass = [config.dialogConfig.panelClass];
94
- }
95
- }
96
- /** @type {?} */
97
- const draggableConfig = Object.assign(Object.assign(Object.assign({}, DEFAULT_DRAGGABLE_DIALOG_CONFIG), config.dialogConfig), { panelClass });
98
- const { matDialogRef, dragRefSubject } = this._tdDialogService.openDraggable({
99
- component: TdMarkdownNavigatorWindowComponent,
100
- config: draggableConfig,
101
- dragHandleSelectors: ['.td-window-dialog-toolbar'],
102
- draggableClass: 'td-draggable-markdown-navigator-window',
103
- });
104
- this.markdownNavigatorWindowDialog = matDialogRef;
105
- this.markdownNavigatorWindowDialog.componentInstance.items = config.items;
106
- this.markdownNavigatorWindowDialog.componentInstance.labels = config.labels;
107
- this.markdownNavigatorWindowDialog.componentInstance.startAt = config.startAt;
108
- this.markdownNavigatorWindowDialog.componentInstance.copyCodeToClipboard = config.copyCodeToClipboard;
109
- this.markdownNavigatorWindowDialog.componentInstance.copyCodeTooltips = config.copyCodeTooltips;
110
- this.markdownNavigatorWindowDialog.componentInstance.compareWith = config.compareWith;
111
- this.markdownNavigatorWindowDialog.componentInstance.toolbarColor =
112
- 'toolbarColor' in config ? config.toolbarColor : 'primary';
113
- this.markdownNavigatorWindowDialogsOpen++;
114
- this.markdownNavigatorWindowDialog.componentInstance.footer = config.footer;
115
- dragRefSubject.subscribe((/**
116
- * @param {?} dragRf
117
- * @return {?}
118
- */
119
- (dragRf) => {
120
- this.dragRef = dragRf;
121
- this.resizableDraggableDialog = new ResizableDraggableDialog(this._document, this._renderer2, this.markdownNavigatorWindowDialog, this.dragRef);
122
- }));
123
- this._handleEvents();
124
- return this.markdownNavigatorWindowDialog;
125
- }
126
- /**
127
- * @return {?}
128
- */
129
- close() {
130
- if (this.markdownNavigatorWindowDialog) {
131
- if (this.resizableDraggableDialog) {
132
- this.resizableDraggableDialog.detach();
133
- }
134
- this.markdownNavigatorWindowDialog.close();
135
- }
136
- }
137
- /**
138
- * @return {?}
139
- */
140
- get isOpen() {
141
- return this.markdownNavigatorWindowDialogsOpen > 0;
142
- }
143
- /**
144
- * @private
145
- * @return {?}
146
- */
147
- _handleEvents() {
148
- /** @type {?} */
149
- let position;
150
- /** @type {?} */
151
- let dimensions;
152
- this.markdownNavigatorWindowDialog.componentInstance.closed.subscribe((/**
153
- * @return {?}
154
- */
155
- () => this.close()));
156
- this.markdownNavigatorWindowDialog.componentInstance.dockToggled.subscribe((/**
157
- * @param {?} docked
158
- * @return {?}
159
- */
160
- (docked) => {
161
- if (docked) {
162
- this.markdownNavigatorWindowDialog.componentInstance.docked = false;
163
- this.markdownNavigatorWindowDialog.updateSize(dimensions.width, dimensions.height);
164
- this.markdownNavigatorWindowDialog.updatePosition({ top: '0px', right: '0px', bottom: '0px', left: '0px' });
165
- this.dragRef.setFreeDragPosition(position);
166
- this.dragRef.disabled = false;
167
- this.resizableDraggableDialog.attach();
168
- }
169
- else {
170
- dimensions = this._getDialogSize(this.markdownNavigatorWindowDialog);
171
- position = this.dragRef.getFreeDragPosition();
172
- this.markdownNavigatorWindowDialog.componentInstance.docked = true;
173
- this.markdownNavigatorWindowDialog.updateSize(DEFAULT_WIDTH, MIN_HEIGHT);
174
- this.markdownNavigatorWindowDialog.updatePosition(DEFAULT_POSITION);
175
- this.dragRef.reset();
176
- this.dragRef.disabled = true;
177
- this.resizableDraggableDialog.detach();
178
- }
179
- }));
180
- this.markdownNavigatorWindowDialog
181
- .afterClosed()
182
- .toPromise()
183
- .then((/**
184
- * @return {?}
185
- */
186
- () => {
187
- this.markdownNavigatorWindowDialogsOpen--;
188
- }));
189
- }
190
- /**
191
- * @private
192
- * @param {?} dialogRef
193
- * @return {?}
194
- */
195
- _getDialogSize(dialogRef) {
196
- const { width, height } = getComputedStyle(((/** @type {?} */ (this._document.getElementById(dialogRef.id)))).parentElement);
197
- return {
198
- width,
199
- height,
200
- };
201
- }
202
- }
203
- TdMarkdownNavigatorWindowService.decorators = [
204
- { type: Injectable }
205
- ];
206
- /** @nocollapse */
207
- TdMarkdownNavigatorWindowService.ctorParameters = () => [
208
- { type: TdDialogService },
209
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
210
- { type: RendererFactory2 }
211
- ];
212
- if (false) {
213
- /**
214
- * @type {?}
215
- * @private
216
- */
217
- TdMarkdownNavigatorWindowService.prototype._renderer2;
218
- /**
219
- * @type {?}
220
- * @private
221
- */
222
- TdMarkdownNavigatorWindowService.prototype.dragRef;
223
- /**
224
- * @type {?}
225
- * @private
226
- */
227
- TdMarkdownNavigatorWindowService.prototype.resizableDraggableDialog;
228
- /**
229
- * @type {?}
230
- * @private
231
- */
232
- TdMarkdownNavigatorWindowService.prototype.markdownNavigatorWindowDialog;
233
- /**
234
- * @type {?}
235
- * @private
236
- */
237
- TdMarkdownNavigatorWindowService.prototype.markdownNavigatorWindowDialogsOpen;
238
- /**
239
- * @type {?}
240
- * @private
241
- */
242
- TdMarkdownNavigatorWindowService.prototype._tdDialogService;
243
- /**
244
- * @type {?}
245
- * @private
246
- */
247
- TdMarkdownNavigatorWindowService.prototype._document;
248
- /**
249
- * @type {?}
250
- * @private
251
- */
252
- TdMarkdownNavigatorWindowService.prototype.rendererFactory;
253
- }
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9tYXJrZG93bi1uYXZpZ2F0b3IvIiwic291cmNlcyI6WyJtYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LXNlcnZpY2UvbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFDTCxrQ0FBa0MsR0FFbkMsTUFBTSxrRUFBa0UsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFrQix3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRW5HLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUkzQyxvREFVQzs7O0lBVEMsK0NBQWdDOztJQUNoQyxzREFBK0I7O0lBQy9CLGdEQUF3Qzs7SUFDeEMsc0RBQTRCOztJQUM1QixpREFBNEQ7O0lBQzVELHFEQUE0Qzs7SUFDNUMsNkRBQThCOztJQUM5QiwwREFBcUM7O0lBQ3JDLGdEQUFtQjs7O01BR2Ysd0JBQXdCLEdBQVcsa0JBQWtCOztNQUVyRCxnQkFBZ0IsR0FBbUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7O01BQ2xFLGFBQWEsR0FBVyxPQUFPOztNQUMvQixjQUFjLEdBQVcsTUFBTTs7TUFDL0IsVUFBVSxHQUFXLE1BQU07O01BQzNCLFNBQVMsR0FBVyxPQUFPOztNQUUzQiwrQkFBK0IsR0FBb0I7SUFDdkQsV0FBVyxFQUFFLEtBQUs7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztJQUN0QyxRQUFRLEVBQUUsZ0JBQWdCO0lBQzFCLE1BQU0sRUFBRSxjQUFj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Z0JBQWdCLENBQ3hDLENBQUMsbUJBQWEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFBLENBQUMsQ0FBQyxhQUFhLENBQ3pFO1FBQ0QsT0FBTztZQUNMLEtBQUs7WUFDTCxNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7OztZQW5IRixVQUFVOzs7O1lBekNGLGVBQWU7NENBbURuQixNQUFNLFNBQUMsUUFBUTtZQTFEUyxnQkFBZ0I7Ozs7Ozs7SUFrRDNDLHNEQUE4Qjs7Ozs7SUFDOUIsbURBQXlCOzs7OztJQUN6QixvRUFBMkQ7Ozs7O0lBQzNELHlFQUFvRzs7Ozs7SUFDcEcsOEVBQXVEOzs7OztJQUdyRCw0REFBeUM7Ozs7O0lBQ3pDLHFEQUF3Qzs7Ozs7SUFDeEMsMkRBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBSZW5kZXJlckZhY3RvcnkyLCBSZW5kZXJlcjIsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nQ29uZmlnLCBEaWFsb2dQb3NpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG4gIFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb21wb25lbnQsXG4gIElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVscyxcbn0gZnJvbSAnLi4vbWFya2Rvd24tbmF2aWdhdG9yLXdpbmRvdy9tYXJrZG93bi1uYXZpZ2F0b3Itd2luZG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZERpYWxvZ1NlcnZpY2UsIElEcmFnZ2FibGVSZWZzLCBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2cgfSBmcm9tICdAY292YWxlbnQvY29yZS9kaWFsb2dzJztcbmltcG9ydCB7IERyYWdSZWYsIFBvaW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcC9kcmFnLXJlZic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJTWFya2Rvd25OYXZpZ2F0b3JJdGVtLCBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aCB9IGZyb20gJy4uL21hcmtkb3duLW5hdmlnYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUNvcHlDb2RlVG9vbHRpcHMgfSBmcm9tICdAY292YWxlbnQvaGlnaGxpZ2h0JztcblxuZXhwb3J0IGludGVyZmFjZSBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb25maWcge1xuICBpdGVtczogSU1hcmtkb3duTmF2aWdhdG9ySXRlbVtdO1xuICBkaWFsb2dDb25maWc/OiBNYXREaWFsb2dDb25maWc7XG4gIGxhYmVscz86IElNYXJrZG93bk5hdmlnYXRvcldpbmRvd0xhYmVscztcbiAgdG9vbGJhckNvbG9yPzogVGhlbWVQYWxldHRlO1xuICBzdGFydEF0PzogSU1hcmtkb3duTmF2aWdhdG9ySXRlbSB8IElNYXJrZG93bk5hdmlnYXRvckl0ZW1bXTtcbiAgY29tcGFyZVdpdGg/OiBJTWFya2Rvd25OYXZpZ2F0b3JDb21wYXJlV2l0aDtcbiAgY29weUNvZGVUb0NsaXBib2FyZD86IGJvb2xlYW47XG4gIGNvcHlDb2RlVG9vbHRpcHM/OiBJQ29weUNvZGVUb29sdGlwcztcbiAgZm9vdGVyPzogVHlwZTxhbnk+O1xufVxuXG5jb25zdCBDREtfT1ZFUkxBWV9DVVNUT01fQ0xBU1M6IHN0cmluZyA9ICd0ZC13aW5kb3ctZGlhbG9nJztcblxuY29uc3QgREVGQVVMVF9QT1NJVElPTjogRGlhbG9nUG9zaXRpb24gPSB7IGJvdHRvbTogJzBweCcsIHJpZ2h0OiAnMHB4JyB9O1xuY29uc3QgREVGQVVMVF9XSURUSDogc3RyaW5nID0gJzM2MHB4JztcbmNvbnN0IERFRkFVTFRfSEVJR0hUOiBzdHJpbmcgPSAnNzV2aCc7XG5jb25zdCBNSU5fSEVJR0hUOiBzdHJpbmcgPSAnNTZweCc7XG5jb25zdCBNQVhfV0lEVEg6IHN0cmluZyA9ICcxMDB2dyc7XG5cbmNvbnN0IERFRkFVTFRfRFJBR0dBQkxFX0RJQUxPR19DT05GSUc6IE1hdERpYWxvZ0NvbmZpZyA9IHtcbiAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcbiAgcGFuZWxDbGFzczogW0NES19PVkVSTEFZX0NVU1RPTV9DTEFTU10sXG4gIHBvc2l0aW9uOiBERUZBVUxUX1BPU0lUSU9OLFxuICBoZWlnaHQ6IERFRkFVTFRfSEVJR0hULFxuICB3aWR0aDogREVGQVVMVF9XSURUSCxcbiAgbWF4V2lkdGg6IE1BWF9XSURUSCxcbn07XG5cbmludGVyZmFjZSBJRGlhbG9nRGltZW5zaW9ucyB7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIGhlaWdodDogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd1NlcnZpY2Uge1xuICBwcml2YXRlIF9yZW5kZXJlcjI6IFJlbmRlcmVyMjtcbiAgcHJpdmF0ZSBkcmFnUmVmOiBEcmFnUmVmO1xuICBwcml2YXRlIHJlc2l6YWJsZURyYWdnYWJsZURpYWxvZzogUmVzaXphYmxlRHJhZ2dhYmxlRGlhbG9nO1xuICBwcml2YXRlIG1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nOiBNYXREaWFsb2dSZWY8VGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudD4gPSB1bmRlZmluZWQ7XG4gIHByaXZhdGUgbWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2dzT3BlbjogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF90ZERpYWxvZ1NlcnZpY2U6IFRkRGlhbG9nU2VydmljZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxuICAgIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICApIHtcbiAgICB0aGlzLl9yZW5kZXJlcjIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oY29uZmlnOiBJTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb25maWcpOiBNYXREaWFsb2dSZWY8VGRNYXJrZG93bk5hdmlnYXRvcldpbmRvd0NvbXBvbmVudD4ge1xuICAgIHRoaXMuY2xvc2UoKTtcblxuICAgIGxldCBwYW5lbENsYXNzOiBzdHJpbmdbXSA9IFsuLi5ERUZBVUxUX0RSQUdHQUJMRV9ESUFMT0dfQ09ORklHLnBhbmVsQ2xhc3NdO1xuICAgIGlmIChjb25maWcuZGlhbG9nQ29uZmlnICYmIGNvbmZpZy5kaWFsb2dDb25maWcucGFuZWxDbGFzcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZmlnLmRpYWxvZ0NvbmZpZy5wYW5lbENsYXNzKSkge1xuICAgICAgICBwYW5lbENsYXNzID0gWy4uLmNvbmZpZy5kaWFsb2dDb25maWcucGFuZWxDbGFzc107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYW5lbENsYXNzID0gW2NvbmZpZy5kaWFsb2dDb25maWcucGFuZWxDbGFzc107XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGRyYWdnYWJsZUNvbmZpZzogTWF0RGlhbG9nQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9EUkFHR0FCTEVfRElBTE9HX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZy5kaWFsb2dDb25maWcsXG4gICAgICBwYW5lbENsYXNzLFxuICAgIH07XG4gICAgY29uc3QgeyBtYXREaWFsb2dSZWYsIGRyYWdSZWZTdWJqZWN0IH06IElEcmFnZ2FibGVSZWZzPFRkTWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dDb21wb25lbnQ+ID1cbiAgICAgIHRoaXMuX3RkRGlhbG9nU2VydmljZS5vcGVuRHJhZ2dhYmxlKHtcbiAgICAgICAgY29tcG9uZW50OiBUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50LFxuICAgICAgICBjb25maWc6IGRyYWdnYWJsZUNvbmZpZyxcbiAgICAgICAgZHJhZ0hhbmRsZVNlbGVjdG9yczogWycudGQtd2luZG93LWRpYWxvZy10b29sYmFyJ10sXG4gICAgICAgIGRyYWdnYWJsZUNsYXNzOiAndGQtZHJhZ2dhYmxlLW1hcmtkb3duLW5hdmlnYXRvci13aW5kb3cnLFxuICAgICAgfSk7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZyA9IG1hdERpYWxvZ1JlZjtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLml0ZW1zID0gY29uZmlnLml0ZW1zO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UubGFiZWxzID0gY29uZmlnLmxhYmVscztcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLnN0YXJ0QXQgPSBjb25maWcuc3RhcnRBdDtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvcHlDb2RlVG9DbGlwYm9hcmQgPSBjb25maWcuY29weUNvZGVUb0NsaXBib2FyZDtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvcHlDb2RlVG9vbHRpcHMgPSBjb25maWcuY29weUNvZGVUb29sdGlwcztcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNvbXBhcmVXaXRoID0gY29uZmlnLmNvbXBhcmVXaXRoO1xuICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UudG9vbGJhckNvbG9yID1cbiAgICAgICd0b29sYmFyQ29sb3InIGluIGNvbmZpZyA/IGNvbmZpZy50b29sYmFyQ29sb3IgOiAncHJpbWFyeSc7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuKys7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy5jb21wb25lbnRJbnN0YW5jZS5mb290ZXIgPSBjb25maWcuZm9vdGVyO1xuICAgIGRyYWdSZWZTdWJqZWN0LnN1YnNjcmliZSgoZHJhZ1JmOiBEcmFnUmVmKSA9PiB7XG4gICAgICB0aGlzLmRyYWdSZWYgPSBkcmFnUmY7XG4gICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZyA9IG5ldyBSZXNpemFibGVEcmFnZ2FibGVEaWFsb2coXG4gICAgICAgIHRoaXMuX2RvY3VtZW50LFxuICAgICAgICB0aGlzLl9yZW5kZXJlcjIsXG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2csXG4gICAgICAgIHRoaXMuZHJhZ1JlZixcbiAgICAgICk7XG4gICAgfSk7XG4gICAgdGhpcy5faGFuZGxlRXZlbnRzKCk7XG4gICAgcmV0dXJuIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2c7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cpIHtcbiAgICAgIGlmICh0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZykge1xuICAgICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZy5kZXRhY2goKTtcbiAgICAgIH1cbiAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ3NPcGVuID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUV2ZW50cygpOiB2b2lkIHtcbiAgICBsZXQgcG9zaXRpb246IFBvaW50O1xuICAgIGxldCBkaW1lbnNpb25zOiBJRGlhbG9nRGltZW5zaW9ucztcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmNsb3NlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLmNvbXBvbmVudEluc3RhbmNlLmRvY2tUb2dnbGVkLnN1YnNjcmliZSgoZG9ja2VkOiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAoZG9ja2VkKSB7XG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuZG9ja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cudXBkYXRlU2l6ZShkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7XG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cudXBkYXRlUG9zaXRpb24oeyB0b3A6ICcwcHgnLCByaWdodDogJzBweCcsIGJvdHRvbTogJzBweCcsIGxlZnQ6ICcwcHgnIH0pO1xuICAgICAgICB0aGlzLmRyYWdSZWYuc2V0RnJlZURyYWdQb3NpdGlvbihwb3NpdGlvbik7XG4gICAgICAgIHRoaXMuZHJhZ1JlZi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc2l6YWJsZURyYWdnYWJsZURpYWxvZy5hdHRhY2goKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRpbWVuc2lvbnMgPSB0aGlzLl9nZXREaWFsb2dTaXplKHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cpO1xuICAgICAgICBwb3NpdGlvbiA9IHRoaXMuZHJhZ1JlZi5nZXRGcmVlRHJhZ1Bvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMubWFya2Rvd25OYXZpZ2F0b3JXaW5kb3dEaWFsb2cuY29tcG9uZW50SW5zdGFuY2UuZG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZy51cGRhdGVTaXplKERFRkFVTFRfV0lEVEgsIE1JTl9IRUlHSFQpO1xuICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nLnVwZGF0ZVBvc2l0aW9uKERFRkFVTFRfUE9TSVRJT04pO1xuICAgICAgICB0aGlzLmRyYWdSZWYucmVzZXQoKTtcbiAgICAgICAgdGhpcy5kcmFnUmVmLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5yZXNpemFibGVEcmFnZ2FibGVEaWFsb2cuZGV0YWNoKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5tYXJrZG93bk5hdmlnYXRvcldpbmRvd0RpYWxvZ1xuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm1hcmtkb3duTmF2aWdhdG9yV2luZG93RGlhbG9nc09wZW4tLTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RGlhbG9nU2l6ZShkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUZE1hcmtkb3duTmF2aWdhdG9yV2luZG93Q29tcG9uZW50Pik6IElEaWFsb2dEaW1lbnNpb25zIHtcbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGdldENvbXB1dGVkU3R5bGUoXG4gICAgICAoPEhUTUxFbGVtZW50PnRoaXMuX2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpYWxvZ1JlZi5pZCkpLnBhcmVudEVsZW1lbnQsXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgfTtcbiAgfVxufVxuIl19