@covalent/markdown-navigator 4.0.0 → 4.1.1-beta.3

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 (39) hide show
  1. package/README.md +4 -222
  2. package/covalent-markdown-navigator.d.ts +2 -2
  3. package/esm2020/covalent-markdown-navigator.mjs +5 -0
  4. package/esm2020/markdown-navigator-window/markdown-navigator-window.component.mjs +84 -0
  5. package/esm2020/markdown-navigator-window-directive/markdown-navigator-window.directive.mjs +32 -0
  6. package/esm2020/markdown-navigator-window-service/markdown-navigator-window.service.mjs +130 -0
  7. package/esm2020/markdown-navigator.component.mjs +394 -0
  8. package/esm2020/markdown-navigator.module.mjs +73 -0
  9. package/esm2020/public_api.mjs +6 -0
  10. package/fesm2015/covalent-markdown-navigator.mjs +711 -0
  11. package/fesm2015/covalent-markdown-navigator.mjs.map +1 -0
  12. package/fesm2020/covalent-markdown-navigator.mjs +699 -0
  13. package/fesm2020/covalent-markdown-navigator.mjs.map +1 -0
  14. package/markdown-navigator-window/markdown-navigator-window.component.d.ts +15 -12
  15. package/markdown-navigator-window-directive/markdown-navigator-window.directive.d.ts +4 -1
  16. package/markdown-navigator-window-service/markdown-navigator-window.service.d.ts +3 -0
  17. package/markdown-navigator.component.d.ts +21 -18
  18. package/markdown-navigator.module.d.ts +16 -0
  19. package/package.json +39 -42
  20. package/{public-api.d.ts → public_api.d.ts} +1 -0
  21. package/src/README.md +237 -0
  22. package/bundles/covalent-markdown-navigator.umd.js +0 -1650
  23. package/bundles/covalent-markdown-navigator.umd.js.map +0 -1
  24. package/bundles/covalent-markdown-navigator.umd.min.js +0 -16
  25. package/bundles/covalent-markdown-navigator.umd.min.js.map +0 -1
  26. package/covalent-markdown-navigator.metadata.json +0 -1
  27. package/esm2015/covalent-markdown-navigator.js +0 -11
  28. package/esm2015/index.js +0 -7
  29. package/esm2015/markdown-navigator-window/markdown-navigator-window.component.js +0 -129
  30. package/esm2015/markdown-navigator-window-directive/markdown-navigator-window.directive.js +0 -50
  31. package/esm2015/markdown-navigator-window-service/markdown-navigator-window.service.js +0 -254
  32. package/esm2015/markdown-navigator.component.js +0 -698
  33. package/esm2015/markdown-navigator.module.js +0 -41
  34. package/esm2015/public-api.js +0 -10
  35. package/fesm2015/covalent-markdown-navigator.js +0 -1181
  36. package/fesm2015/covalent-markdown-navigator.js.map +0 -1
  37. package/index.d.ts +0 -1
  38. package/markdown-navigator-window/markdown-navigator-window.component.scss +0 -8
  39. package/markdown-navigator.component.scss +0 -50
@@ -0,0 +1,711 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, SecurityContext, Component, ChangeDetectionStrategy, Input, Output, ViewChild, HostListener, Injectable, Inject, Directive, NgModule } from '@angular/core';
3
+ import * as i11 from '@angular/common';
4
+ import { DOCUMENT, CommonModule } from '@angular/common';
5
+ import { __awaiter } from 'tslib';
6
+ import * as i1 from '@covalent/markdown';
7
+ import { isAnchorLink, removeLeadingHash } from '@covalent/markdown';
8
+ import { firstValueFrom } from 'rxjs';
9
+ import * as i2 from '@angular/platform-browser';
10
+ import * as i3 from '@angular/common/http';
11
+ import * as i4 from '@angular/material/progress-bar';
12
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
13
+ import * as i5 from '@angular/material/button';
14
+ import { MatButtonModule } from '@angular/material/button';
15
+ import * as i6 from '@angular/material/icon';
16
+ import { MatIconModule } from '@angular/material/icon';
17
+ import * as i7 from '@angular/material/divider';
18
+ import * as i8 from '@covalent/core/message';
19
+ import { CovalentMessageModule } from '@covalent/core/message';
20
+ import * as i9 from '@covalent/flavored-markdown';
21
+ import { CovalentFlavoredMarkdownModule } from '@covalent/flavored-markdown';
22
+ import * as i10 from '@angular/material/list';
23
+ import { MatListModule } from '@angular/material/list';
24
+ import * as i12 from '@angular/material/tooltip';
25
+ import { MatTooltipModule } from '@angular/material/tooltip';
26
+ import * as i13 from '@angular/material/core';
27
+ import * as i1$1 from '@covalent/core/dialogs';
28
+ import { ResizableDraggableDialog, CovalentDialogsModule } from '@covalent/core/dialogs';
29
+
30
+ const DEFAULT_MARKDOWN_NAVIGATOR_LABELS = {
31
+ goHome: 'Go home',
32
+ goBack: 'Go back',
33
+ emptyState: 'No item(s) to display',
34
+ };
35
+ class TdMarkdownNavigatorComponent {
36
+ constructor(_markdownUrlLoaderService, _changeDetectorRef, _sanitizer, _http) {
37
+ this._markdownUrlLoaderService = _markdownUrlLoaderService;
38
+ this._changeDetectorRef = _changeDetectorRef;
39
+ this._sanitizer = _sanitizer;
40
+ this._http = _http;
41
+ /**
42
+ * copyCodeToClipboard?: boolean
43
+ *
44
+ * Display copy button on code snippets to copy code to clipboard.
45
+ *
46
+ */
47
+ this.copyCodeToClipboard = false;
48
+ /**
49
+ * copyCodeTooltips?: ICopyCodeTooltips
50
+ *
51
+ * Tooltips for copy button to copy and upon copying.
52
+ */
53
+ this.copyCodeTooltips = {};
54
+ this.buttonClicked = new EventEmitter();
55
+ this.historyStack = []; // history
56
+ this.currentMenuItems = []; // current menu items
57
+ this.loading = false;
58
+ }
59
+ clickListener(event) {
60
+ const element = event.srcElement;
61
+ if (element.matches('a[href]') &&
62
+ isMarkdownHref(element)) {
63
+ this.handleLinkClick(event);
64
+ }
65
+ }
66
+ get showGoBackButton() {
67
+ return this.historyStack.length > 0;
68
+ }
69
+ get showHomeButton() {
70
+ return this.historyStack.length > 1;
71
+ }
72
+ get showHeader() {
73
+ return (this.showHomeButton || this.showGoBackButton || !!this.currentItemTitle);
74
+ }
75
+ get showMenu() {
76
+ const showMenu = this.currentMenuItems && this.currentMenuItems.length > 0;
77
+ return showMenu !== null && showMenu !== void 0 ? showMenu : false;
78
+ }
79
+ get showTdMarkdownLoader() {
80
+ return (!!this.currentMarkdownItem &&
81
+ !!this.currentMarkdownItem.url &&
82
+ !this.showTdMarkdown);
83
+ }
84
+ get showTdMarkdown() {
85
+ return (!!this.currentMarkdownItem && !!this.currentMarkdownItem.markdownString);
86
+ }
87
+ get url() {
88
+ if (this.currentMarkdownItem) {
89
+ return this.currentMarkdownItem.url;
90
+ }
91
+ return undefined;
92
+ }
93
+ get footerComponent() {
94
+ if (this.currentMarkdownItem && this.currentMarkdownItem.footer) {
95
+ return this.currentMarkdownItem.footer;
96
+ }
97
+ return this.footer;
98
+ }
99
+ get httpOptions() {
100
+ if (this.currentMarkdownItem) {
101
+ return this.currentMarkdownItem.httpOptions;
102
+ }
103
+ return undefined;
104
+ }
105
+ get markdownString() {
106
+ if (this.currentMarkdownItem) {
107
+ return this.currentMarkdownItem.markdownString;
108
+ }
109
+ return undefined;
110
+ }
111
+ get anchor() {
112
+ if (this.currentMarkdownItem) {
113
+ return this.currentMarkdownItem.anchor;
114
+ }
115
+ return undefined;
116
+ }
117
+ get showEmptyState() {
118
+ return !this.items || this.items.length < 1;
119
+ }
120
+ get goHomeLabel() {
121
+ return ((this.labels && this.labels.goHome) ||
122
+ DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goHome);
123
+ }
124
+ get goBackLabel() {
125
+ return ((this.labels && this.labels.goBack) ||
126
+ DEFAULT_MARKDOWN_NAVIGATOR_LABELS.goBack);
127
+ }
128
+ get emptyStateLabel() {
129
+ return ((this.labels && this.labels.emptyState) ||
130
+ DEFAULT_MARKDOWN_NAVIGATOR_LABELS.emptyState);
131
+ }
132
+ get currentItemTitle() {
133
+ if (this.historyStack.length < 1) {
134
+ return '';
135
+ }
136
+ else if (this.currentMarkdownItem) {
137
+ return this.getTitle(this.currentMarkdownItem);
138
+ }
139
+ else if (this.historyStack.length > 0) {
140
+ return this.getTitle(this.historyStack[this.historyStack.length - 1]);
141
+ }
142
+ return '';
143
+ }
144
+ ngOnChanges(changes) {
145
+ return __awaiter(this, void 0, void 0, function* () {
146
+ if (changes['items']) {
147
+ this.reset();
148
+ }
149
+ if (changes['startAt'] && this.items && this.startAt) {
150
+ this._jumpTo(this.startAt, undefined);
151
+ }
152
+ });
153
+ }
154
+ hasChildrenOrChildrenUrl(item) {
155
+ return (item.children && item.children.length > 0) || !!item.childrenUrl;
156
+ }
157
+ clearErrors() {
158
+ this.markdownLoaderError = undefined;
159
+ this.childrenUrlError = undefined;
160
+ }
161
+ reset() {
162
+ this.loading = false;
163
+ this.clearErrors();
164
+ // if single item and no children
165
+ if (this.items &&
166
+ this.items.length === 1 &&
167
+ !this.hasChildrenOrChildrenUrl(this.items[0])) {
168
+ this.currentMenuItems = [];
169
+ this.currentMarkdownItem = this.items[0];
170
+ }
171
+ else {
172
+ this.currentMenuItems = this.items;
173
+ this.currentMarkdownItem = undefined;
174
+ }
175
+ this.historyStack = [];
176
+ this._changeDetectorRef.markForCheck();
177
+ }
178
+ goBack() {
179
+ this.loading = false;
180
+ this.clearErrors();
181
+ if (this.historyStack.length > 1) {
182
+ let parent = this.historyStack[this.historyStack.length - 2];
183
+ if (parent === null || parent === void 0 ? void 0 : parent.startAtLink) {
184
+ parent = this.historyStack[this.historyStack.length - 3]
185
+ ? this.historyStack[this.historyStack.length - 3]
186
+ : undefined;
187
+ this.historyStack = this.historyStack.slice(0, -1);
188
+ }
189
+ if (parent) {
190
+ this.currentMarkdownItem = parent;
191
+ this.historyStack = this.historyStack.slice(0, -1);
192
+ this.setChildrenAsCurrentMenuItems(parent);
193
+ }
194
+ else {
195
+ this.reset();
196
+ }
197
+ }
198
+ else {
199
+ // one level down just go to root
200
+ this.reset();
201
+ }
202
+ this._changeDetectorRef.markForCheck();
203
+ }
204
+ handleItemSelected(item) {
205
+ this.clearErrors();
206
+ this.currentMarkdownItem = item;
207
+ this.historyStack = [...this.historyStack, item];
208
+ this.setChildrenAsCurrentMenuItems(item);
209
+ this._changeDetectorRef.markForCheck();
210
+ }
211
+ setChildrenAsCurrentMenuItems(item) {
212
+ return __awaiter(this, void 0, void 0, function* () {
213
+ this.currentMenuItems = [];
214
+ this.loading = true;
215
+ this._changeDetectorRef.markForCheck();
216
+ const stackSnapshot = this.historyStack;
217
+ let children = [];
218
+ if (item.children) {
219
+ children = item.children;
220
+ }
221
+ else if (item.childrenUrl) {
222
+ children = yield this.loadChildrenUrl(item);
223
+ }
224
+ if (children && children.length && item.startAtLink) {
225
+ this._jumpTo(item.startAtLink, children);
226
+ }
227
+ const newStackSnapshot = this.historyStack;
228
+ if (stackSnapshot.length === newStackSnapshot.length &&
229
+ stackSnapshot.every((stackItem, index) => stackItem === newStackSnapshot[index])) {
230
+ this.currentMenuItems = children;
231
+ }
232
+ this.loading = false;
233
+ this._changeDetectorRef.markForCheck();
234
+ });
235
+ }
236
+ loadChildrenUrl(item) {
237
+ var _a, _b;
238
+ return __awaiter(this, void 0, void 0, function* () {
239
+ const sanitizedUrl = (_b = this._sanitizer.sanitize(SecurityContext.URL, (_a = item.childrenUrl) !== null && _a !== void 0 ? _a : null)) !== null && _b !== void 0 ? _b : '';
240
+ try {
241
+ return yield firstValueFrom(this._http.get(sanitizedUrl, Object.assign({}, item.httpOptions)));
242
+ }
243
+ catch (error) {
244
+ this.handleChildrenUrlError(error);
245
+ return [];
246
+ }
247
+ });
248
+ }
249
+ getTitle(item) {
250
+ var _a, _b, _c;
251
+ if (!item) {
252
+ return '';
253
+ }
254
+ return (removeLeadingHash((_a = item.anchor) !== null && _a !== void 0 ? _a : '') ||
255
+ item.title ||
256
+ getTitleFromUrl((_b = item.url) !== null && _b !== void 0 ? _b : '') ||
257
+ getTitleFromMarkdownString((_c = item.markdownString) !== null && _c !== void 0 ? _c : '') ||
258
+ '').trim();
259
+ }
260
+ getIcon(item) {
261
+ return (item === null || item === void 0 ? void 0 : item.icon) || 'subject';
262
+ }
263
+ handleChildrenUrlError(error) {
264
+ this.childrenUrlError = error.message;
265
+ this._changeDetectorRef.markForCheck();
266
+ }
267
+ handleMarkdownLoaderError(error) {
268
+ this.markdownLoaderError = error ? error.message : '';
269
+ this._changeDetectorRef.markForCheck();
270
+ }
271
+ _jumpTo(itemOrPath, children) {
272
+ return __awaiter(this, void 0, void 0, function* () {
273
+ const historyStack = this.historyStack;
274
+ this.reset();
275
+ if (this.items && this.items.length > 0) {
276
+ let path = [];
277
+ if (Array.isArray(itemOrPath)) {
278
+ path = yield this.followPath(this.items, itemOrPath);
279
+ }
280
+ else if (children && children.length > 0) {
281
+ this.historyStack = historyStack;
282
+ path = this.findPath(children, itemOrPath);
283
+ }
284
+ else {
285
+ path = this.findPath(this.items, itemOrPath);
286
+ }
287
+ (path || []).forEach((pathItem) => this.handleItemSelected(pathItem));
288
+ }
289
+ this._changeDetectorRef.markForCheck();
290
+ });
291
+ }
292
+ followPath(items, path) {
293
+ return __awaiter(this, void 0, void 0, function* () {
294
+ let pathItems = [];
295
+ let currentLevel = items;
296
+ const compareWith = this.compareWith || defaultCompareWith;
297
+ for (const pathItem of path) {
298
+ const foundItem = currentLevel.find((item) => compareWith(pathItem, item));
299
+ if (foundItem) {
300
+ pathItems = [...pathItems, foundItem];
301
+ if (foundItem.children) {
302
+ currentLevel = foundItem.children;
303
+ }
304
+ else if (foundItem.childrenUrl) {
305
+ currentLevel = yield this.loadChildrenUrl(foundItem);
306
+ }
307
+ }
308
+ else {
309
+ break;
310
+ }
311
+ }
312
+ if (pathItems.length !== path.length) {
313
+ pathItems = [];
314
+ }
315
+ return pathItems;
316
+ });
317
+ }
318
+ findPath(items, item) {
319
+ const compareWith = this.compareWith || defaultCompareWith;
320
+ if (items) {
321
+ for (const child of items) {
322
+ if (item && compareWith(child, item)) {
323
+ return [child];
324
+ }
325
+ const ancestors = this.findPath(child.children, item);
326
+ if (ancestors) {
327
+ return [child, ...ancestors];
328
+ }
329
+ }
330
+ }
331
+ return undefined;
332
+ }
333
+ handleLinkClick(event) {
334
+ return __awaiter(this, void 0, void 0, function* () {
335
+ event.preventDefault();
336
+ const link = event.target;
337
+ const url = new URL(link.href);
338
+ this.loading = true;
339
+ this._changeDetectorRef.markForCheck();
340
+ try {
341
+ const markdownString = yield this._markdownUrlLoaderService.load(url.href);
342
+ // pass in url to be able to use currentMarkdownItem.url later on
343
+ this.handleItemSelected({ markdownString, url: url.href });
344
+ this.markdownWrapper.nativeElement.scrollTop = 0;
345
+ }
346
+ catch (error) {
347
+ const win = window.open(url.href, '_blank');
348
+ win === null || win === void 0 ? void 0 : win.focus();
349
+ }
350
+ finally {
351
+ this.loading = false;
352
+ }
353
+ this._changeDetectorRef.markForCheck();
354
+ });
355
+ }
356
+ }
357
+ TdMarkdownNavigatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorComponent, deps: [{ token: i1.TdMarkdownLoaderService }, { token: i0.ChangeDetectorRef }, { token: i2.DomSanitizer }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
358
+ TdMarkdownNavigatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdMarkdownNavigatorComponent, selector: "td-markdown-navigator", inputs: { items: "items", labels: "labels", startAt: "startAt", copyCodeToClipboard: "copyCodeToClipboard", copyCodeTooltips: "copyCodeTooltips", footer: "footer", compareWith: "compareWith" }, outputs: { buttonClicked: "buttonClicked" }, host: { listeners: { "click": "clickListener($event)" } }, viewQueries: [{ propertyName: "markdownWrapper", first: true, predicate: ["markdownWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!showEmptyState\">\n <mat-progress-bar\n *ngIf=\"loading\"\n mode=\"indeterminate\"\n color=\"accent\"\n ></mat-progress-bar>\n\n <ng-container *ngIf=\"showHeader\">\n <div [style.display]=\"'flex'\">\n <button\n id=\"td-markdown-navigator-home-button\"\n *ngIf=\"showHomeButton\"\n mat-icon-button\n [matTooltip]=\"goHomeLabel ?? ''\"\n (click)=\"reset()\"\n [attr.data-test]=\"'home-button'\"\n >\n <mat-icon [attr.aria-label]=\"goHomeLabel\">home</mat-icon>\n </button>\n\n <button\n id=\"td-markdown-navigator-back-button\"\n *ngIf=\"showGoBackButton\"\n mat-icon-button\n [matTooltip]=\"goBackLabel ?? ''\"\n (click)=\"goBack()\"\n [attr.data-test]=\"'back-button'\"\n >\n <mat-icon [attr.aria-label]=\"goBackLabel\">arrow_back</mat-icon>\n </button>\n <span\n flex\n *ngIf=\"currentItemTitle\"\n class=\"mat-body-2 title truncate\"\n [attr.data-test]=\"'title'\"\n >\n {{ currentItemTitle }}\n </span>\n </div>\n\n <mat-divider [style.position]=\"'relative'\"></mat-divider>\n </ng-container>\n\n <div class=\"scroll-area\" id=\"td-markdown-navigator-content\">\n <div\n *ngIf=\"showTdMarkdownLoader || showTdMarkdown\"\n class=\"markdown-wrapper\"\n #markdownWrapper\n >\n <td-message\n *ngIf=\"markdownLoaderError\"\n [sublabel]=\"markdownLoaderError\"\n color=\"warn\"\n icon=\"error\"\n [attr.data-test]=\"'markdown-loader-error'\"\n ></td-message>\n <td-flavored-markdown-loader\n *ngIf=\"showTdMarkdownLoader\"\n [url]=\"url ?? ''\"\n [httpOptions]=\"httpOptions ?? {}\"\n [anchor]=\"anchor ?? ''\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (loadFailed)=\"handleMarkdownLoaderError($event)\"\n ></td-flavored-markdown-loader>\n <td-flavored-markdown\n *ngIf=\"showTdMarkdown\"\n [content]=\"markdownString ?? ''\"\n [hostedUrl]=\"url ?? ''\"\n [anchor]=\"anchor ?? ''\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n ></td-flavored-markdown>\n </div>\n\n <td-message\n *ngIf=\"childrenUrlError\"\n [sublabel]=\"childrenUrlError\"\n color=\"warn\"\n icon=\"error\"\n [attr.data-test]=\"'children-url-error'\"\n ></td-message>\n <div *ngIf=\"showMenu\" class=\"td-markdown-list\">\n <mat-action-list>\n <button\n *ngFor=\"let item of currentMenuItems; index as index\"\n [id]=\"\n 'td-markdown-navigator-list-item-' + (item.id ? item.id : index)\n \"\n (click)=\"handleItemSelected(item)\"\n mat-list-item\n [matTooltip]=\"getTitle(item)\"\n matTooltipPosition=\"before\"\n matTooltipShowDelay=\"500\"\n >\n <mat-icon matListIcon>\n {{ getIcon(item) }}\n </mat-icon>\n <span matLine class=\"truncate\">\n {{ getTitle(item) }}\n </span>\n <span matLine class=\"truncate\">{{ item.description }}</span>\n <mat-divider></mat-divider>\n </button>\n </mat-action-list>\n </div>\n\n <ng-container *ngComponentOutlet=\"footerComponent\"></ng-container>\n </div>\n</ng-container>\n\n<div\n *ngIf=\"showEmptyState\"\n layout=\"column\"\n layout-align=\"center center\"\n class=\"empty-state\"\n>\n <mat-icon matListAvatar>subject</mat-icon>\n <h2>{{ emptyStateLabel }}</h2>\n</div>\n", styles: [":host{position:relative;height:inherit;height:100%;box-sizing:border-box;display:flex;flex-direction:column}:host .scroll-area{min-height:1px;overflow-y:auto;flex:1;box-sizing:border-box}:host .markdown-wrapper{padding:16px 16px 0}:host .td-markdown-list>.mat-list{padding-top:0}:host td-flavored-markdown-loader ::ng-deep .mat-progress-bar{top:0;left:0;right:0;position:absolute}:host .title{display:inline-block;vertical-align:middle;margin:8px 0;padding-left:16px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state{padding:32px}.empty-state mat-icon{font-size:4em}\n"], components: [{ type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i8.TdMessageComponent, selector: "td-message", inputs: ["label", "sublabel", "icon", "color", "opened"] }, { type: i9.TdFlavoredMarkdownLoaderComponent, selector: "td-flavored-markdown-loader", inputs: ["url", "httpOptions", "anchor", "copyCodeToClipboard", "copyCodeTooltips"], outputs: ["contentReady", "loadFailed", "buttonClicked"] }, { type: i9.TdFlavoredMarkdownComponent, selector: "td-flavored-markdown", inputs: ["content", "simpleLineBreaks", "hostedUrl", "anchor", "copyCodeToClipboard", "copyCodeTooltips"], outputs: ["contentReady", "buttonClicked"] }, { type: i10.MatList, selector: "mat-list, mat-action-list", inputs: ["disableRipple", "disabled"], exportAs: ["matList"] }, { type: i10.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }], directives: [{ type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i11.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { type: i13.MatLine, selector: "[mat-line], [matLine]" }, { type: i11.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }, { type: i10.MatListAvatarCssMatStyler, selector: "[mat-list-avatar], [matListAvatar]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorComponent, decorators: [{
360
+ type: Component,
361
+ args: [{ selector: 'td-markdown-navigator', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!showEmptyState\">\n <mat-progress-bar\n *ngIf=\"loading\"\n mode=\"indeterminate\"\n color=\"accent\"\n ></mat-progress-bar>\n\n <ng-container *ngIf=\"showHeader\">\n <div [style.display]=\"'flex'\">\n <button\n id=\"td-markdown-navigator-home-button\"\n *ngIf=\"showHomeButton\"\n mat-icon-button\n [matTooltip]=\"goHomeLabel ?? ''\"\n (click)=\"reset()\"\n [attr.data-test]=\"'home-button'\"\n >\n <mat-icon [attr.aria-label]=\"goHomeLabel\">home</mat-icon>\n </button>\n\n <button\n id=\"td-markdown-navigator-back-button\"\n *ngIf=\"showGoBackButton\"\n mat-icon-button\n [matTooltip]=\"goBackLabel ?? ''\"\n (click)=\"goBack()\"\n [attr.data-test]=\"'back-button'\"\n >\n <mat-icon [attr.aria-label]=\"goBackLabel\">arrow_back</mat-icon>\n </button>\n <span\n flex\n *ngIf=\"currentItemTitle\"\n class=\"mat-body-2 title truncate\"\n [attr.data-test]=\"'title'\"\n >\n {{ currentItemTitle }}\n </span>\n </div>\n\n <mat-divider [style.position]=\"'relative'\"></mat-divider>\n </ng-container>\n\n <div class=\"scroll-area\" id=\"td-markdown-navigator-content\">\n <div\n *ngIf=\"showTdMarkdownLoader || showTdMarkdown\"\n class=\"markdown-wrapper\"\n #markdownWrapper\n >\n <td-message\n *ngIf=\"markdownLoaderError\"\n [sublabel]=\"markdownLoaderError\"\n color=\"warn\"\n icon=\"error\"\n [attr.data-test]=\"'markdown-loader-error'\"\n ></td-message>\n <td-flavored-markdown-loader\n *ngIf=\"showTdMarkdownLoader\"\n [url]=\"url ?? ''\"\n [httpOptions]=\"httpOptions ?? {}\"\n [anchor]=\"anchor ?? ''\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (loadFailed)=\"handleMarkdownLoaderError($event)\"\n ></td-flavored-markdown-loader>\n <td-flavored-markdown\n *ngIf=\"showTdMarkdown\"\n [content]=\"markdownString ?? ''\"\n [hostedUrl]=\"url ?? ''\"\n [anchor]=\"anchor ?? ''\"\n [copyCodeToClipboard]=\"copyCodeToClipboard\"\n [copyCodeTooltips]=\"copyCodeTooltips\"\n (buttonClicked)=\"buttonClicked.emit($event)\"\n ></td-flavored-markdown>\n </div>\n\n <td-message\n *ngIf=\"childrenUrlError\"\n [sublabel]=\"childrenUrlError\"\n color=\"warn\"\n icon=\"error\"\n [attr.data-test]=\"'children-url-error'\"\n ></td-message>\n <div *ngIf=\"showMenu\" class=\"td-markdown-list\">\n <mat-action-list>\n <button\n *ngFor=\"let item of currentMenuItems; index as index\"\n [id]=\"\n 'td-markdown-navigator-list-item-' + (item.id ? item.id : index)\n \"\n (click)=\"handleItemSelected(item)\"\n mat-list-item\n [matTooltip]=\"getTitle(item)\"\n matTooltipPosition=\"before\"\n matTooltipShowDelay=\"500\"\n >\n <mat-icon matListIcon>\n {{ getIcon(item) }}\n </mat-icon>\n <span matLine class=\"truncate\">\n {{ getTitle(item) }}\n </span>\n <span matLine class=\"truncate\">{{ item.description }}</span>\n <mat-divider></mat-divider>\n </button>\n </mat-action-list>\n </div>\n\n <ng-container *ngComponentOutlet=\"footerComponent\"></ng-container>\n </div>\n</ng-container>\n\n<div\n *ngIf=\"showEmptyState\"\n layout=\"column\"\n layout-align=\"center center\"\n class=\"empty-state\"\n>\n <mat-icon matListAvatar>subject</mat-icon>\n <h2>{{ emptyStateLabel }}</h2>\n</div>\n", styles: [":host{position:relative;height:inherit;height:100%;box-sizing:border-box;display:flex;flex-direction:column}:host .scroll-area{min-height:1px;overflow-y:auto;flex:1;box-sizing:border-box}:host .markdown-wrapper{padding:16px 16px 0}:host .td-markdown-list>.mat-list{padding-top:0}:host td-flavored-markdown-loader ::ng-deep .mat-progress-bar{top:0;left:0;right:0;position:absolute}:host .title{display:inline-block;vertical-align:middle;margin:8px 0;padding-left:16px}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-state{padding:32px}.empty-state mat-icon{font-size:4em}\n"] }]
362
+ }], ctorParameters: function () { return [{ type: i1.TdMarkdownLoaderService }, { type: i0.ChangeDetectorRef }, { type: i2.DomSanitizer }, { type: i3.HttpClient }]; }, propDecorators: { items: [{
363
+ type: Input
364
+ }], labels: [{
365
+ type: Input
366
+ }], startAt: [{
367
+ type: Input
368
+ }], copyCodeToClipboard: [{
369
+ type: Input
370
+ }], copyCodeTooltips: [{
371
+ type: Input
372
+ }], footer: [{
373
+ type: Input
374
+ }], compareWith: [{
375
+ type: Input
376
+ }], buttonClicked: [{
377
+ type: Output
378
+ }], markdownWrapper: [{
379
+ type: ViewChild,
380
+ args: ['markdownWrapper']
381
+ }], clickListener: [{
382
+ type: HostListener,
383
+ args: ['click', ['$event']]
384
+ }] } });
385
+ function getTitleFromUrl(url) {
386
+ if (url) {
387
+ const temp = new URL(url);
388
+ if (temp.hash) {
389
+ return removeLeadingHash(temp.hash);
390
+ }
391
+ else {
392
+ const path = temp.pathname.split('/');
393
+ const fileName = path[path.length - 1];
394
+ return fileName.replace(/\.[^/.]+$/, ''); // remove .md
395
+ }
396
+ }
397
+ return '';
398
+ }
399
+ function getTitleFromMarkdownString(markdownString) {
400
+ var _a;
401
+ if (markdownString) {
402
+ const firstLine = (_a = markdownString.split(/[\r\n]+/).find((line) => !!line)) !== null && _a !== void 0 ? _a : '';
403
+ return removeLeadingHash(firstLine).trim();
404
+ }
405
+ return '';
406
+ }
407
+ function isMarkdownHref(anchor) {
408
+ return !isAnchorLink(anchor) && anchor.pathname.endsWith('.md');
409
+ }
410
+ function defaultCompareWith(o1, o2) {
411
+ if (o1.id && o2.id) {
412
+ return o1.id === o2.id;
413
+ }
414
+ return o1 === o2;
415
+ }
416
+
417
+ const DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS = {
418
+ title: 'Help',
419
+ close: 'Close',
420
+ dock: 'Dock',
421
+ unDock: 'Undock',
422
+ };
423
+ class TdMarkdownNavigatorWindowComponent {
424
+ constructor() {
425
+ this.toolbarColor = 'primary';
426
+ this.docked = false;
427
+ this.copyCodeToClipboard = false;
428
+ this.copyCodeTooltips = {};
429
+ this.closed = new EventEmitter();
430
+ this.dockToggled = new EventEmitter();
431
+ this.buttonClicked = new EventEmitter();
432
+ }
433
+ get markdownNavigatorLabels() {
434
+ if (!this.labels) {
435
+ return undefined;
436
+ }
437
+ const { goHome, goBack, emptyState } = this.labels;
438
+ return {
439
+ goHome,
440
+ goBack,
441
+ emptyState,
442
+ };
443
+ }
444
+ get titleLabel() {
445
+ return ((this.labels && this.labels.title) ||
446
+ DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.title);
447
+ }
448
+ get closeLabel() {
449
+ return ((this.labels && this.labels.close) ||
450
+ DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.close);
451
+ }
452
+ get toggleDockedStateLabel() {
453
+ if (this.docked) {
454
+ return ((this.labels && this.labels.unDock) ||
455
+ DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.unDock);
456
+ }
457
+ else {
458
+ return ((this.labels && this.labels.dock) ||
459
+ DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS.dock);
460
+ }
461
+ }
462
+ toggleDockedState() {
463
+ this.dockToggled.emit(this.docked);
464
+ }
465
+ }
466
+ TdMarkdownNavigatorWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
467
+ TdMarkdownNavigatorWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: TdMarkdownNavigatorWindowComponent, selector: "td-markdown-navigator-window", inputs: { items: "items", labels: "labels", toolbarColor: "toolbarColor", startAt: "startAt", compareWith: "compareWith", docked: "docked", copyCodeToClipboard: "copyCodeToClipboard", copyCodeTooltips: "copyCodeTooltips", footer: "footer" }, outputs: { closed: "closed", dockToggled: "dockToggled", buttonClicked: "buttonClicked" }, ngImport: i0, 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", styles: [":host{height:100%;display:flex;flex-direction:column}td-markdown-navigator{height:calc(100% - 56px)}\n"], components: [{ type: i1$1.TdWindowDialogComponent, selector: "td-window-dialog", inputs: ["toolbarColor", "docked", "title", "toggleDockedStateLabel", "closeLabel"], outputs: ["dockToggled", "closed"] }, { type: TdMarkdownNavigatorComponent, selector: "td-markdown-navigator", inputs: ["items", "labels", "startAt", "copyCodeToClipboard", "copyCodeTooltips", "footer", "compareWith"], outputs: ["buttonClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
468
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorWindowComponent, decorators: [{
469
+ type: Component,
470
+ args: [{ selector: 'td-markdown-navigator-window', changeDetection: ChangeDetectionStrategy.OnPush, 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", styles: [":host{height:100%;display:flex;flex-direction:column}td-markdown-navigator{height:calc(100% - 56px)}\n"] }]
471
+ }], propDecorators: { items: [{
472
+ type: Input
473
+ }], labels: [{
474
+ type: Input
475
+ }], toolbarColor: [{
476
+ type: Input
477
+ }], startAt: [{
478
+ type: Input
479
+ }], compareWith: [{
480
+ type: Input
481
+ }], docked: [{
482
+ type: Input
483
+ }], copyCodeToClipboard: [{
484
+ type: Input
485
+ }], copyCodeTooltips: [{
486
+ type: Input
487
+ }], footer: [{
488
+ type: Input
489
+ }], closed: [{
490
+ type: Output
491
+ }], dockToggled: [{
492
+ type: Output
493
+ }], buttonClicked: [{
494
+ type: Output
495
+ }] } });
496
+
497
+ const CDK_OVERLAY_CUSTOM_CLASS = 'td-window-dialog';
498
+ const DEFAULT_POSITION = { bottom: '0px', right: '0px' };
499
+ const DEFAULT_WIDTH = '360px';
500
+ const DEFAULT_HEIGHT = '75vh';
501
+ const MIN_HEIGHT = '56px';
502
+ const MAX_WIDTH = '100vw';
503
+ const DEFAULT_DRAGGABLE_DIALOG_CONFIG = {
504
+ hasBackdrop: false,
505
+ closeOnNavigation: true,
506
+ panelClass: [CDK_OVERLAY_CUSTOM_CLASS],
507
+ position: DEFAULT_POSITION,
508
+ height: DEFAULT_HEIGHT,
509
+ width: DEFAULT_WIDTH,
510
+ maxWidth: MAX_WIDTH,
511
+ };
512
+ class TdMarkdownNavigatorWindowService {
513
+ constructor(_tdDialogService, _document, rendererFactory) {
514
+ this._tdDialogService = _tdDialogService;
515
+ this._document = _document;
516
+ this.rendererFactory = rendererFactory;
517
+ this.markdownNavigatorWindowDialogsOpen = 0;
518
+ this._renderer2 = rendererFactory.createRenderer(undefined, null);
519
+ }
520
+ open(config) {
521
+ var _a;
522
+ this.close();
523
+ const configClass = (_a = config === null || config === void 0 ? void 0 : config.dialogConfig) === null || _a === void 0 ? void 0 : _a.panelClass;
524
+ const panelClass = configClass && !Array.isArray(configClass) ? [configClass] : [];
525
+ const draggableConfig = Object.assign(Object.assign(Object.assign({}, DEFAULT_DRAGGABLE_DIALOG_CONFIG), config.dialogConfig), panelClass);
526
+ const { matDialogRef, dragRefSubject, } = this._tdDialogService.openDraggable({
527
+ component: TdMarkdownNavigatorWindowComponent,
528
+ config: draggableConfig,
529
+ dragHandleSelectors: ['.td-window-dialog-toolbar'],
530
+ draggableClass: 'td-draggable-markdown-navigator-window',
531
+ });
532
+ this.markdownNavigatorWindowDialog = matDialogRef;
533
+ this.markdownNavigatorWindowDialog.componentInstance.items = config.items;
534
+ this.markdownNavigatorWindowDialog.componentInstance.labels = config.labels;
535
+ this.markdownNavigatorWindowDialog.componentInstance.startAt =
536
+ config.startAt;
537
+ this.markdownNavigatorWindowDialog.componentInstance.copyCodeToClipboard =
538
+ config.copyCodeToClipboard;
539
+ this.markdownNavigatorWindowDialog.componentInstance.copyCodeTooltips =
540
+ config.copyCodeTooltips;
541
+ this.markdownNavigatorWindowDialog.componentInstance.compareWith =
542
+ config.compareWith;
543
+ this.markdownNavigatorWindowDialog.componentInstance.toolbarColor =
544
+ 'toolbarColor' in config ? config.toolbarColor : 'primary';
545
+ this.markdownNavigatorWindowDialogsOpen++;
546
+ this.markdownNavigatorWindowDialog.componentInstance.footer = config.footer;
547
+ dragRefSubject.subscribe((dragRf) => {
548
+ this.dragRef = dragRf;
549
+ this.resizableDraggableDialog = new ResizableDraggableDialog(this._document, this._renderer2, this.markdownNavigatorWindowDialog, this.dragRef);
550
+ });
551
+ this._handleEvents();
552
+ return this.markdownNavigatorWindowDialog;
553
+ }
554
+ close() {
555
+ if (this.markdownNavigatorWindowDialog) {
556
+ if (this.resizableDraggableDialog) {
557
+ this.resizableDraggableDialog.detach();
558
+ }
559
+ this.markdownNavigatorWindowDialog.close();
560
+ }
561
+ }
562
+ get isOpen() {
563
+ return this.markdownNavigatorWindowDialogsOpen > 0;
564
+ }
565
+ _handleEvents() {
566
+ let position;
567
+ let dimensions;
568
+ this.markdownNavigatorWindowDialog.componentInstance.closed.subscribe(() => this.close());
569
+ this.markdownNavigatorWindowDialog.componentInstance.dockToggled.subscribe((docked) => {
570
+ if (docked) {
571
+ this.markdownNavigatorWindowDialog.componentInstance.docked = false;
572
+ this.markdownNavigatorWindowDialog.updateSize(dimensions.width, dimensions.height);
573
+ this.markdownNavigatorWindowDialog.updatePosition({
574
+ top: '0px',
575
+ right: '0px',
576
+ bottom: '0px',
577
+ left: '0px',
578
+ });
579
+ this.dragRef.setFreeDragPosition(position);
580
+ this.dragRef.disabled = false;
581
+ this.resizableDraggableDialog.attach();
582
+ }
583
+ else {
584
+ dimensions = this._getDialogSize(this.markdownNavigatorWindowDialog);
585
+ position = this.dragRef.getFreeDragPosition();
586
+ this.markdownNavigatorWindowDialog.componentInstance.docked = true;
587
+ this.markdownNavigatorWindowDialog.updateSize(DEFAULT_WIDTH, MIN_HEIGHT);
588
+ this.markdownNavigatorWindowDialog.updatePosition(DEFAULT_POSITION);
589
+ this.dragRef.reset();
590
+ this.dragRef.disabled = true;
591
+ this.resizableDraggableDialog.detach();
592
+ }
593
+ });
594
+ this.markdownNavigatorWindowDialog
595
+ .afterClosed()
596
+ .toPromise()
597
+ .then(() => {
598
+ this.markdownNavigatorWindowDialogsOpen--;
599
+ });
600
+ }
601
+ _getDialogSize(dialogRef) {
602
+ const { width, height } = getComputedStyle(this._document.getElementById(dialogRef.id).parentElement);
603
+ return {
604
+ width,
605
+ height,
606
+ };
607
+ }
608
+ }
609
+ TdMarkdownNavigatorWindowService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorWindowService, deps: [{ token: i1$1.TdDialogService }, { token: DOCUMENT }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
610
+ TdMarkdownNavigatorWindowService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorWindowService });
611
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorWindowService, decorators: [{
612
+ type: Injectable
613
+ }], ctorParameters: function () {
614
+ return [{ type: i1$1.TdDialogService }, { type: undefined, decorators: [{
615
+ type: Inject,
616
+ args: [DOCUMENT]
617
+ }] }, { type: i0.RendererFactory2 }];
618
+ } });
619
+
620
+ class TdMarkdownNavigatorWindowDirective {
621
+ constructor(_markdownNavigatorWindowService) {
622
+ this._markdownNavigatorWindowService = _markdownNavigatorWindowService;
623
+ this.disabled = false;
624
+ }
625
+ click() {
626
+ if (!this.disabled && this.config) {
627
+ this._markdownNavigatorWindowService.open(this.config);
628
+ }
629
+ }
630
+ }
631
+ TdMarkdownNavigatorWindowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorWindowDirective, deps: [{ token: TdMarkdownNavigatorWindowService }], target: i0.ɵɵFactoryTarget.Directive });
632
+ TdMarkdownNavigatorWindowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: TdMarkdownNavigatorWindowDirective, selector: "[tdMarkdownNavigatorWindow]", inputs: { config: ["tdMarkdownNavigatorWindow", "config"], disabled: "disabled" }, host: { listeners: { "click": "click()" } }, ngImport: i0 });
633
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdMarkdownNavigatorWindowDirective, decorators: [{
634
+ type: Directive,
635
+ args: [{
636
+ selector: '[tdMarkdownNavigatorWindow]',
637
+ }]
638
+ }], ctorParameters: function () { return [{ type: TdMarkdownNavigatorWindowService }]; }, propDecorators: { config: [{
639
+ type: Input,
640
+ args: ['tdMarkdownNavigatorWindow']
641
+ }], disabled: [{
642
+ type: Input
643
+ }], click: [{
644
+ type: HostListener,
645
+ args: ['click']
646
+ }] } });
647
+
648
+ class CovalentMarkdownNavigatorModule {
649
+ }
650
+ CovalentMarkdownNavigatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentMarkdownNavigatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
651
+ CovalentMarkdownNavigatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentMarkdownNavigatorModule, declarations: [TdMarkdownNavigatorComponent,
652
+ TdMarkdownNavigatorWindowComponent,
653
+ TdMarkdownNavigatorWindowDirective], imports: [CommonModule,
654
+ // material
655
+ MatButtonModule,
656
+ MatTooltipModule,
657
+ MatListModule,
658
+ MatIconModule,
659
+ MatProgressBarModule,
660
+ CovalentMessageModule,
661
+ CovalentFlavoredMarkdownModule,
662
+ CovalentDialogsModule], exports: [TdMarkdownNavigatorComponent,
663
+ TdMarkdownNavigatorWindowComponent,
664
+ TdMarkdownNavigatorWindowDirective] });
665
+ CovalentMarkdownNavigatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentMarkdownNavigatorModule, providers: [TdMarkdownNavigatorWindowService], imports: [[
666
+ CommonModule,
667
+ // material
668
+ MatButtonModule,
669
+ MatTooltipModule,
670
+ MatListModule,
671
+ MatIconModule,
672
+ MatProgressBarModule,
673
+ CovalentMessageModule,
674
+ CovalentFlavoredMarkdownModule,
675
+ CovalentDialogsModule,
676
+ ]] });
677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentMarkdownNavigatorModule, decorators: [{
678
+ type: NgModule,
679
+ args: [{
680
+ imports: [
681
+ CommonModule,
682
+ // material
683
+ MatButtonModule,
684
+ MatTooltipModule,
685
+ MatListModule,
686
+ MatIconModule,
687
+ MatProgressBarModule,
688
+ CovalentMessageModule,
689
+ CovalentFlavoredMarkdownModule,
690
+ CovalentDialogsModule,
691
+ ],
692
+ declarations: [
693
+ TdMarkdownNavigatorComponent,
694
+ TdMarkdownNavigatorWindowComponent,
695
+ TdMarkdownNavigatorWindowDirective,
696
+ ],
697
+ exports: [
698
+ TdMarkdownNavigatorComponent,
699
+ TdMarkdownNavigatorWindowComponent,
700
+ TdMarkdownNavigatorWindowDirective,
701
+ ],
702
+ providers: [TdMarkdownNavigatorWindowService],
703
+ }]
704
+ }] });
705
+
706
+ /**
707
+ * Generated bundle index. Do not edit.
708
+ */
709
+
710
+ export { CovalentMarkdownNavigatorModule, DEFAULT_MARKDOWN_NAVIGATOR_LABELS, DEFAULT_MARKDOWN_NAVIGATOR_WINDOW_LABELS, TdMarkdownNavigatorComponent, TdMarkdownNavigatorWindowComponent, TdMarkdownNavigatorWindowDirective, TdMarkdownNavigatorWindowService };
711
+ //# sourceMappingURL=covalent-markdown-navigator.mjs.map