@dereekb/dbx-web 12.6.12 → 12.6.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/extension/download/text/download.text.component.mjs +7 -39
- package/esm2022/lib/extension/download/text/download.text.module.mjs +2 -2
- package/esm2022/lib/extension/help/absract.help.widget.directive.mjs +20 -0
- package/esm2022/lib/extension/help/help.context.directive.mjs +29 -0
- package/esm2022/lib/extension/help/help.context.mjs +24 -0
- package/esm2022/lib/extension/help/help.context.service.mjs +34 -0
- package/esm2022/lib/extension/help/help.mjs +2 -0
- package/esm2022/lib/extension/help/help.providers.mjs +20 -0
- package/esm2022/lib/extension/help/help.view.list.component.mjs +60 -0
- package/esm2022/lib/extension/help/help.view.list.entry.component.mjs +58 -0
- package/esm2022/lib/extension/help/help.view.popover.button.component.mjs +45 -0
- package/esm2022/lib/extension/help/help.view.popover.component.mjs +49 -0
- package/esm2022/lib/extension/help/help.widget.mjs +6 -0
- package/esm2022/lib/extension/help/help.widget.service.mjs +84 -0
- package/esm2022/lib/extension/help/index.mjs +13 -0
- package/esm2022/lib/extension/index.mjs +2 -1
- package/esm2022/lib/layout/content/content.pit.directive.mjs +4 -2
- package/esm2022/lib/layout/text/copy.text.component.mjs +39 -0
- package/esm2022/lib/layout/text/copy.text.directive.mjs +56 -0
- package/esm2022/lib/layout/text/detail.block.component.mjs +5 -3
- package/esm2022/lib/layout/text/index.mjs +3 -1
- package/esm2022/lib/layout/text/text.module.mjs +6 -4
- package/esm2022/lib/util/clipboard.directive.mjs +20 -0
- package/esm2022/lib/util/clipboard.mjs +98 -0
- package/esm2022/lib/util/index.mjs +3 -1
- package/fesm2022/dereekb-dbx-web.mjs +592 -44
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/extension/_extension.scss +19 -0
- package/lib/extension/download/text/download.text.component.d.ts +2 -4
- package/lib/extension/download/text/download.text.module.d.ts +1 -1
- package/lib/extension/help/_help.scss +27 -0
- package/lib/extension/help/absract.help.widget.directive.d.ts +12 -0
- package/lib/extension/help/help.context.d.ts +11 -0
- package/lib/extension/help/help.context.directive.d.ts +17 -0
- package/lib/extension/help/help.context.service.d.ts +20 -0
- package/lib/extension/help/help.d.ts +15 -0
- package/lib/extension/help/help.providers.d.ts +22 -0
- package/lib/extension/help/help.view.list.component.d.ts +20 -0
- package/lib/extension/help/help.view.list.entry.component.d.ts +16 -0
- package/lib/extension/help/help.view.popover.button.component.d.ts +19 -0
- package/lib/extension/help/help.view.popover.component.d.ts +60 -0
- package/lib/extension/help/help.widget.d.ts +42 -0
- package/lib/extension/help/help.widget.service.d.ts +55 -0
- package/lib/extension/help/index.d.ts +12 -0
- package/lib/extension/index.d.ts +1 -0
- package/lib/layout/content/_content.scss +4 -0
- package/lib/layout/content/content.pit.directive.d.ts +2 -1
- package/lib/layout/text/_text.scss +20 -2
- package/lib/layout/text/copy.text.component.d.ts +17 -0
- package/lib/layout/text/copy.text.directive.d.ts +23 -0
- package/lib/layout/text/detail.block.component.d.ts +2 -1
- package/lib/layout/text/index.d.ts +2 -0
- package/lib/layout/text/text.module.d.ts +10 -8
- package/lib/style/_config.scss +7 -1
- package/lib/style/_root-variables.scss +2 -0
- package/lib/style/_variables.scss +3 -0
- package/lib/util/clipboard.d.ts +78 -0
- package/lib/util/clipboard.directive.d.ts +12 -0
- package/lib/util/index.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ElementRef, computed,
|
|
2
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, computed, input, viewChild } from '@angular/core';
|
|
3
2
|
import { loadingStateContext, successResult, valueFromFinishedLoadingState, maybeValueFromObservableOrValue } from '@dereekb/rxjs';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { Clipboard } from '@angular/cdk/clipboard';
|
|
7
|
-
import { AbstractSubscriptionDirective, DbxActionButtonDirective } from '@dereekb/dbx-core';
|
|
3
|
+
import { first, of, shareReplay, switchMap } from 'rxjs';
|
|
4
|
+
import { DbxActionButtonDirective } from '@dereekb/dbx-core';
|
|
8
5
|
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
9
6
|
import { DbxLoadingComponent } from '../../../loading/loading.component';
|
|
10
7
|
import { NgTemplateOutlet } from '@angular/common';
|
|
@@ -13,14 +10,13 @@ import { DbxActionModule } from '../../../action/action.module';
|
|
|
13
10
|
import { DbxButtonSpacerDirective } from '../../../button/button.spacer.directive';
|
|
14
11
|
import { browserObjectUrlRef } from '@dereekb/browser';
|
|
15
12
|
import { DbxDownloadBlobButtonComponent } from '../blob/download.blob.button.component';
|
|
13
|
+
import { AbstractDbxClipboardDirective } from '../../../util/clipboard.directive';
|
|
16
14
|
import * as i0 from "@angular/core";
|
|
17
15
|
import * as i1 from "@dereekb/dbx-core";
|
|
18
16
|
/**
|
|
19
17
|
* View for previewing and downloading arbitrary text content.
|
|
20
18
|
*/
|
|
21
|
-
export class DbxDownloadTextViewComponent extends
|
|
22
|
-
_clipboard = inject(Clipboard);
|
|
23
|
-
_matSnackbar = inject(MatSnackBar);
|
|
19
|
+
export class DbxDownloadTextViewComponent extends AbstractDbxClipboardDirective {
|
|
24
20
|
_browserObjectUrl = browserObjectUrlRef();
|
|
25
21
|
downloadButton = viewChild('downloadButton', { read: ElementRef });
|
|
26
22
|
loadingText = input(undefined);
|
|
@@ -71,42 +67,14 @@ export class DbxDownloadTextViewComponent extends AbstractSubscriptionDirective
|
|
|
71
67
|
handleCopyToClipboard = () => {
|
|
72
68
|
return this.content$.pipe(first(), switchMap((downloadTextContent) => {
|
|
73
69
|
if (downloadTextContent) {
|
|
74
|
-
return
|
|
75
|
-
const pending = this._clipboard.beginCopy(downloadTextContent.content);
|
|
76
|
-
let secondsRemainingForCopy = 20; // attempt to copy for up to 20 seconds
|
|
77
|
-
const attempt = () => {
|
|
78
|
-
const copyIsFinished = pending.copy();
|
|
79
|
-
if (!copyIsFinished && --secondsRemainingForCopy) {
|
|
80
|
-
setTimeout(attempt, MS_IN_SECOND);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
// Remember to destroy when you're done!
|
|
84
|
-
pending.destroy();
|
|
85
|
-
if (copyIsFinished) {
|
|
86
|
-
resolve(true);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
reject(false);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
attempt();
|
|
94
|
-
});
|
|
70
|
+
return this._copyToClipboard(downloadTextContent.content);
|
|
95
71
|
}
|
|
96
72
|
else {
|
|
97
73
|
return of(false);
|
|
98
74
|
}
|
|
99
|
-
}), tap((success) => {
|
|
100
|
-
if (success) {
|
|
101
|
-
this._matSnackbar.open('Copied to clipboard', undefined, { duration: 3 * MS_IN_SECOND });
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
this._matSnackbar.open('Content failed to copy...', undefined, { duration: 3 * MS_IN_SECOND });
|
|
105
|
-
}
|
|
106
75
|
}));
|
|
107
76
|
};
|
|
108
77
|
ngOnDestroy() {
|
|
109
|
-
super.ngOnDestroy();
|
|
110
78
|
this._browserObjectUrl.destroy();
|
|
111
79
|
}
|
|
112
80
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDownloadTextViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -116,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
116
84
|
type: Component,
|
|
117
85
|
args: [{ selector: 'dbx-download-text-view', standalone: true, imports: [NgTemplateOutlet, DbxLoadingComponent, DbxActionModule, DbxActionButtonDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxDownloadBlobButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear()\" [text]=\"loadingText()\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <div class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentDataSignal() }}</div>\n }\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-download-blob-button [config]=\"downloadConfigSignal()\"></dbx-download-blob-button>\n </div>\n </div>\n</ng-template>\n" }]
|
|
118
86
|
}] });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQudGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2Rvd25sb2FkL3RleHQvZG93bmxvYWQudGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2Rvd25sb2FkL3RleHQvZG93bmxvYWQudGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBcUMsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUEwQiwrQkFBK0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5TCxPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBYyxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25E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LHdCQUF3QixnRkFBRSw4QkFBOEI7OzRGQUc3Siw0QkFBNEI7a0JBUHhDLFNBQVM7K0JBRUUsd0JBQXdCLGNBQ3RCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsQ0FBQyxtQkFDeEosdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgV29ya1VzaW5nT2JzZXJ2YWJsZSwgTG9hZGluZ1N0YXRlLCBsb2FkaW5nU3RhdGVDb250ZXh0LCBzdWNjZXNzUmVzdWx0LCB2YWx1ZUZyb21GaW5pc2hlZExvYWRpbmdTdGF0ZSwgTWF5YmVPYnNlcnZhYmxlT3JWYWx1ZSwgbWF5YmVWYWx1ZUZyb21PYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgTVNfSU5fU0VDT05ELCB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaXJzdCwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBEb3dubG9hZFRleHRDb250ZW50IH0gZnJvbSAnLi9kb3dubG9hZC50ZXh0JztcbmltcG9ydCB7IEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlLCBEYnhBY3Rpb25CdXR0b25EaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Nb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9hY3Rpb24vYWN0aW9uLm1vZHVsZSc7XG5pbXBvcnQgeyBEYnhCdXR0b25TcGFjZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9idXR0b24vYnV0dG9uLnNwYWNlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgYnJvd3Nlck9iamVjdFVybFJlZiB9IGZyb20gJ0BkZXJlZWtiL2Jyb3dzZXInO1xuaW1wb3J0IHsgRGJ4RG93bmxvYWRCbG9iQnV0dG9uQ29tcG9uZW50LCBEYnhEb3dubG9hZEJsb2JCdXR0b25Db25maWcgfSBmcm9tICcuLi9ibG9iL2Rvd25sb2FkLmJsb2IuYnV0dG9uLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVmlldyBmb3IgcHJldmlld2luZyBhbmQgZG93bmxvYWRpbmcgYXJiaXRyYXJ5IHRleHQgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9kb3dubG9hZC50ZXh0LmNvbXBvbmVudC5odG1sJyxcbiAgc2VsZWN0b3I6ICdkYngtZG93bmxvYWQtdGV4dC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIERieExvYWRpbmdDb21wb25lbnQsIERieEFjdGlvbk1vZHVsZSwgRGJ4QWN0aW9uQnV0dG9uRGlyZWN0aXZlLCBEYnhCdXR0b25Db21wb25lbnQsIERieEJ1dHRvblNwYWNlckRpcmVjdGl2ZSwgRGJ4RG93bmxvYWRCbG9iQnV0dG9uQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RG93bmxvYWRUZXh0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xpcGJvYXJkID0gaW5qZWN0KENsaXBib2FyZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21hdFNuYWNrYmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9icm93c2VyT2JqZWN0VXJsID0gYnJvd3Nlck9iamVjdFVybFJlZigpO1xuXG4gIHJlYWRvbmx5IGRvd25sb2FkQnV0dG9uID0gdmlld0NoaWxkPHN0cmluZywgTWF5YmU8RWxlbWVudFJlZj4+KCdkb3dubG9hZEJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KTtcblxuICByZWFkb25seSBsb2FkaW5nVGV4dCA9IGlucHV0PE1heWJlPHN0cmluZz4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGxpbmVhciA9IGlucHV0PE1heWJlPGJvb2xlYW4+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSBzaG93VGl0bGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgc2hvd1ByZXZpZXcgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICByZWFkb25seSBjb250ZW50ID0gaW5wdXQ8TWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGNvbnRlbnRTdGF0ZSA9IGlucHV0PE1heWJlT2JzZXJ2YWJsZU9yVmFsdWU8TG9hZGluZ1N0YXRlPERvd25sb2FkVGV4dENvbnRlbnQ+Pj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBjb250ZW50U3RhdGUkID0gdG9PYnNlcnZhYmxlKHRoaXMuY29udGVudFN0YXRlKS5waXBlKG1heWJlVmFsdWVGcm9tT2JzZXJ2YWJsZU9yVmFsdWUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRTdGF0ZVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuY29udGVudFN0YXRlJCk7XG5cbiAgcmVhZG9ubHkgY29udGVudExvYWRpbmdTdGF0ZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50KCk7XG4gICAgY29uc3QgY29udGVudFN0YXRlID0gdGhpcy5jb250ZW50U3RhdGVTaWduYWwoKTtcblxuICAgIGxldCByZXN1bHQ6IE1heWJlPExvYWRpbmdTdGF0ZTxEb3dubG9hZFRleHRDb250ZW50Pj47XG5cbiAgICBpZiAoY29udGVudFN0YXRlKSB7XG4gICAgICByZXN1bHQgPSBjb250ZW50U3RhdGU7XG4gICAgfSBlbHNlIGlmIChjb250ZW50KSB7XG4gICAgICByZXN1bHQgPSBzdWNjZXNzUmVzdWx0KGNvbnRlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRMb2FkaW5nU3RhdGUkID0gdG9PYnNlcnZhYmxlKHRoaXMuY29udGVudExvYWRpbmdTdGF0ZVNpZ25hbCk7XG4gIHJlYWRvbmx5IGNvbnRlbnQkOiBPYnNlcnZhYmxlPE1heWJlPERvd25sb2FkVGV4dENvbnRlbnQ+PiA9IHRoaXMuY29udGVudExvYWRpbmdTdGF0ZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgIGlmICh4KSB7XG4gICAgICAgIHJldHVybiBvZih4KS5waXBlKHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfSlcbiAgKTtcblxuICByZWFkb25seSBjb250ZW50U2lnbmFsID0gdG9TaWduYWwodGhpcy5jb250ZW50JCk7XG4gIHJlYWRvbmx5IGNvbnRlbnREYXRhU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb250ZW50U2lnbmFsKCk/LmNvbnRlbnQpO1xuICByZWFkb25seSBmaWxlTmFtZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29udGVudFNpZ25hbCgpPy5uYW1lID8/ICdkb3dubG9hZC50eHQnKTtcblxuICByZWFkb25seSBkb3dubG9hZENvbmZpZ1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5jb250ZW50U2lnbmFsKCk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lU2lnbmFsKCk7XG4gICAgbGV0IHJlc3VsdDogTWF5YmU8RGJ4RG93bmxvYWRCbG9iQnV0dG9uQ29uZmlnPiA9IHVuZGVmaW5lZDtcblxuICAgIGlmIChjb250ZW50KSB7XG4gICAgICByZXN1bHQgPSB7XG4gICAgICAgIGJsb2I6IG5ldyBCbG9iKFtjb250ZW50LmNvbnRlbnRdLCB7IHR5cGU6IGNvbnRlbnQubWltZVR5cGUgPz8gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfSksXG4gICAgICAgIGZpbGVOYW1lXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmNvbnRlbnRMb2FkaW5nU3RhdGUkIH0pO1xuXG4gIHJlYWRvbmx5IGhhbmRsZUNvcHlUb0NsaXBib2FyZDogV29ya1VzaW5nT2JzZXJ2YWJsZSA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50JC5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHN3aXRjaE1hcCgoZG93bmxvYWRUZXh0Q29udGVudDogTWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD4pID0+IHtcbiAgICAgICAgaWYgKGRvd25sb2FkVGV4dENvbnRlbnQpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGVuZGluZyA9IHRoaXMuX2NsaXBib2FyZC5iZWdpbkNvcHkoZG93bmxvYWRUZXh0Q29udGVudC5jb250ZW50KTtcblxuICAgICAgICAgICAgbGV0IHNlY29uZHNSZW1haW5pbmdGb3JDb3B5ID0gMjA7IC8vIGF0dGVtcHQgdG8gY29weSBmb3IgdXAgdG8gMjAgc2Vjb25kc1xuXG4gICAgICAgICAgICBjb25zdCBhdHRlbXB0ID0gKCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjb3B5SXNGaW5pc2hlZCA9IHBlbmRpbmcuY29weSgpO1xuXG4gICAgICAgICAgICAgIGlmICghY29weUlzRmluaXNoZWQgJiYgLS1zZWNvbmRzUmVtYWluaW5nRm9yQ29weSkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoYXR0ZW1wdCwgTVNfSU5fU0VDT05EKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBSZW1lbWJlciB0byBkZXN0cm95IHdoZW4geW91J3JlIGRvbmUhXG4gICAgICAgICAgICAgICAgcGVuZGluZy5kZXN0cm95KCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29weUlzRmluaXNoZWQpIHtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBhdHRlbXB0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YXAoKHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICB0aGlzLl9tYXRTbmFja2Jhci5vcGVuKCdDb3BpZWQgdG8gY2xpcGJvYXJkJywgdW5kZWZpbmVkLCB7IGR1cmF0aW9uOiAzICogTVNfSU5fU0VDT05EIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX21hdFNuYWNrYmFyLm9wZW4oJ0NvbnRlbnQgZmFpbGVkIHRvIGNvcHkuLi4nLCB1bmRlZmluZWQsIHsgZHVyYXRpb246IDMgKiBNU19JTl9TRUNPTkQgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfTtcblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2Jyb3dzZXJPYmplY3RVcmwuZGVzdHJveSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LWRvd25sb2FkLXRleHQtdmlld1wiPlxuICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwiY29udGV4dFwiIFtsaW5lYXJdPVwibGluZWFyKClcIiBbdGV4dF09XCJsb2FkaW5nVGV4dCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRWaWV3XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGJ4LWxvYWRpbmc+XG48L2Rpdj5cblxuPCEtLSBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFZpZXc+XG4gIDxkaXYgY2xhc3M9XCJkYngtZG93bmxvYWQtdGV4dC12aWV3LWNvbnRlbnRcIj5cbiAgICBAaWYgKHNob3dUaXRsZSgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWRvd25sb2FkLXRleHQtdmlldy1jb250ZW50LXRpdGxlIGRieC1tYjIgbWF0LXN1YnRpdGxlLTJcIj57eyBmaWxlTmFtZVNpZ25hbCgpIH19PC9kaXY+XG4gICAgfVxuICAgIEBpZiAoc2hvd1ByZXZpZXcoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImRieC1kb3dubG9hZC10ZXh0LXByZXZpZXcgZGJ4LWpzb24gZGJ4LWNvbnRlbnQtcGl0IGRieC1jb250ZW50LXBpdC1zY3JvbGxhYmxlIGRieC1tYjNcIj57eyBjb250ZW50RGF0YVNpZ25hbCgpIH19PC9kaXY+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJkYngtZG93bmxvYWQtdGV4dC12aWV3LWFjdGlvbnNcIj5cbiAgICAgIDxkYngtYnV0dG9uIGRieEFjdGlvbiBkYnhBY3Rpb25WYWx1ZSBbcmFpc2VkXT1cInRydWVcIiBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVDb3B5VG9DbGlwYm9hcmRcIiBpY29uPVwiY29udGVudF9jb3B5XCIgZGJ4QWN0aW9uQnV0dG9uIHRleHQ9XCJDb3B5IFRvIENsaXBib2FyZFwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgPGRieC1kb3dubG9hZC1ibG9iLWJ1dHRvbiBbY29uZmlnXT1cImRvd25sb2FkQ29uZmlnU2lnbmFsKClcIj48L2RieC1kb3dubG9hZC1ibG9iLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQudGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2Rvd25sb2FkL3RleHQvZG93bmxvYWQudGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2Rvd25sb2FkL3RleHQvZG93bmxvYWQudGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQXFDLG1CQUFtQixFQUFFLGFBQWEsRUFBRSw2QkFBNkIsRUFBMEIsK0JBQStCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUwsT0FBTyxFQUFjLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIGNvbXB1dGVkLCBpbnB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXb3JrVXNpbmdPYnNlcnZhYmxlLCBMb2FkaW5nU3RhdGUsIGxvYWRpbmdTdGF0ZUNvbnRleHQsIHN1Y2Nlc3NSZXN1bHQsIHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlLCBNYXliZU9ic2VydmFibGVPclZhbHVlLCBtYXliZVZhbHVlRnJvbU9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaXJzdCwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERvd25sb2FkVGV4dENvbnRlbnQgfSBmcm9tICcuL2Rvd25sb2FkLnRleHQnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IERieExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGJ4QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vYWN0aW9uL2FjdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgRGJ4QnV0dG9uU3BhY2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi5zcGFjZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IGJyb3dzZXJPYmplY3RVcmxSZWYgfSBmcm9tICdAZGVyZWVrYi9icm93c2VyJztcbmltcG9ydCB7IERieERvd25sb2FkQmxvYkJ1dHRvbkNvbXBvbmVudCwgRGJ4RG93bmxvYWRCbG9iQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi4vYmxvYi9kb3dubG9hZC5ibG9iLmJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhDbGlwYm9hcmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NsaXBib2FyZC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFZpZXcgZm9yIHByZXZpZXdpbmcgYW5kIGRvd25sb2FkaW5nIGFyYml0cmFyeSB0ZXh0IGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vZG93bmxvYWQudGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHNlbGVjdG9yOiAnZGJ4LWRvd25sb2FkLXRleHQtdmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBEYnhBY3Rpb25Nb2R1bGUsIERieEFjdGlvbkJ1dHRvbkRpcmVjdGl2ZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBEYnhCdXR0b25TcGFjZXJEaXJlY3RpdmUsIERieERvd25sb2FkQmxvYkJ1dHRvbkNvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieERvd25sb2FkVGV4dFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdERieENsaXBib2FyZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Jyb3dzZXJPYmplY3RVcmwgPSBicm93c2VyT2JqZWN0VXJsUmVmKCk7XG5cbiAgcmVhZG9ubHkgZG93bmxvYWRCdXR0b24gPSB2aWV3Q2hpbGQ8c3RyaW5nLCBNYXliZTxFbGVtZW50UmVmPj4oJ2Rvd25sb2FkQnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuXG4gIHJlYWRvbmx5IGxvYWRpbmdUZXh0ID0gaW5wdXQ8TWF5YmU8c3RyaW5nPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbGluZWFyID0gaW5wdXQ8TWF5YmU8Ym9vbGVhbj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHNob3dUaXRsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBzaG93UHJldmlldyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnQgPSBpbnB1dDxNYXliZTxEb3dubG9hZFRleHRDb250ZW50Pj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgY29udGVudFN0YXRlID0gaW5wdXQ8TWF5YmVPYnNlcnZhYmxlT3JWYWx1ZTxMb2FkaW5nU3RhdGU8RG93bmxvYWRUZXh0Q29udGVudD4+Pih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRTdGF0ZSQgPSB0b09ic2VydmFibGUodGhpcy5jb250ZW50U3RhdGUpLnBpcGUobWF5YmVWYWx1ZUZyb21PYnNlcnZhYmxlT3JWYWx1ZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgY29udGVudFN0YXRlU2lnbmFsID0gdG9TaWduYWwodGhpcy5jb250ZW50U3RhdGUkKTtcblxuICByZWFkb25seSBjb250ZW50TG9hZGluZ1N0YXRlU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnQoKTtcbiAgICBjb25zdCBjb250ZW50U3RhdGUgPSB0aGlzLmNvbnRlbnRTdGF0ZVNpZ25hbCgpO1xuXG4gICAgbGV0IHJlc3VsdDogTWF5YmU8TG9hZGluZ1N0YXRlPERvd25sb2FkVGV4dENvbnRlbnQ+PjtcblxuICAgIGlmIChjb250ZW50U3RhdGUpIHtcbiAgICAgIHJlc3VsdCA9IGNvbnRlbnRTdGF0ZTtcbiAgICB9IGVsc2UgaWYgKGNvbnRlbnQpIHtcbiAgICAgIHJlc3VsdCA9IHN1Y2Nlc3NSZXN1bHQoY29udGVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY29udGVudExvYWRpbmdTdGF0ZSQgPSB0b09ic2VydmFibGUodGhpcy5jb250ZW50TG9hZGluZ1N0YXRlU2lnbmFsKTtcbiAgcmVhZG9ubHkgY29udGVudCQ6IE9ic2VydmFibGU8TWF5YmU8RG93bmxvYWRUZXh0Q29udGVudD4+ID0gdGhpcy5jb250ZW50TG9hZGluZ1N0YXRlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4ge1xuICAgICAgaWYgKHgpIHtcbiAgICAgICAgcmV0dXJuIG9mKHgpLnBpcGUodmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmNvbnRlbnQkKTtcbiAgcmVhZG9ubHkgY29udGVudERhdGFTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbnRlbnRTaWduYWwoKT8uY29udGVudCk7XG4gIHJlYWRvbmx5IGZpbGVOYW1lU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb250ZW50U2lnbmFsKCk/Lm5hbWUgPz8gJ2Rvd25sb2FkLnR4dCcpO1xuXG4gIHJlYWRvbmx5IGRvd25sb2FkQ29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNvbnRlbnRTaWduYWwoKTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IHRoaXMuZmlsZU5hbWVTaWduYWwoKTtcbiAgICBsZXQgcmVzdWx0OiBNYXliZTxEYnhEb3dubG9hZEJsb2JCdXR0b25Db25maWc+ID0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgIHJlc3VsdCA9IHtcbiAgICAgICAgYmxvYjogbmV3IEJsb2IoW2NvbnRlbnQuY29udGVudF0sIHsgdHlwZTogY29udGVudC5taW1lVHlwZSA/PyAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB9KSxcbiAgICAgICAgZmlsZU5hbWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQoeyBvYnM6IHRoaXMuY29udGVudExvYWRpbmdTdGF0ZSQgfSk7XG5cbiAgcmVhZG9ubHkgaGFuZGxlQ29weVRvQ2xpcGJvYXJkOiBXb3JrVXNpbmdPYnNlcnZhYmxlID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnQkLnBpcGUoXG4gICAgICBmaXJzdCgpLFxuICAgICAgc3dpdGNoTWFwKChkb3dubG9hZFRleHRDb250ZW50OiBNYXliZTxEb3dubG9hZFRleHRDb250ZW50PikgPT4ge1xuICAgICAgICBpZiAoZG93bmxvYWRUZXh0Q29udGVudCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9jb3B5VG9DbGlwYm9hcmQoZG93bmxvYWRUZXh0Q29udGVudC5jb250ZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH07XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fYnJvd3Nlck9iamVjdFVybC5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtZG93bmxvYWQtdGV4dC12aWV3XCI+XG4gIDxkYngtbG9hZGluZyBbY29udGV4dF09XCJjb250ZXh0XCIgW2xpbmVhcl09XCJsaW5lYXIoKVwiIFt0ZXh0XT1cImxvYWRpbmdUZXh0KClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFZpZXdcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kYngtbG9hZGluZz5cbjwvZGl2PlxuXG48IS0tIFRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlICNjb250ZW50Vmlldz5cbiAgPGRpdiBjbGFzcz1cImRieC1kb3dubG9hZC10ZXh0LXZpZXctY29udGVudFwiPlxuICAgIEBpZiAoc2hvd1RpdGxlKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJkYngtZG93bmxvYWQtdGV4dC12aWV3LWNvbnRlbnQtdGl0bGUgZGJ4LW1iMiBtYXQtc3VidGl0bGUtMlwiPnt7IGZpbGVOYW1lU2lnbmFsKCkgfX08L2Rpdj5cbiAgICB9XG4gICAgQGlmIChzaG93UHJldmlldygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZGJ4LWRvd25sb2FkLXRleHQtcHJldmlldyBkYngtanNvbiBkYngtY29udGVudC1waXQgZGJ4LWNvbnRlbnQtcGl0LXNjcm9sbGFibGUgZGJ4LW1iM1wiPnt7IGNvbnRlbnREYXRhU2lnbmFsKCkgfX08L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cImRieC1kb3dubG9hZC10ZXh0LXZpZXctYWN0aW9uc1wiPlxuICAgICAgPGRieC1idXR0b24gZGJ4QWN0aW9uIGRieEFjdGlvblZhbHVlIFtyYWlzZWRdPVwidHJ1ZVwiIFtkYnhBY3Rpb25IYW5kbGVyXT1cImhhbmRsZUNvcHlUb0NsaXBib2FyZFwiIGljb249XCJjb250ZW50X2NvcHlcIiBkYnhBY3Rpb25CdXR0b24gdGV4dD1cIkNvcHkgVG8gQ2xpcGJvYXJkXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgICA8ZGJ4LWRvd25sb2FkLWJsb2ItYnV0dG9uIFtjb25maWddPVwiZG93bmxvYWRDb25maWdTaWduYWwoKVwiPjwvZGJ4LWRvd25sb2FkLWJsb2ItYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { DbxDownloadTextViewComponent } from './download.text.component';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
const importsAndExports = [DbxDownloadTextViewComponent];
|
|
5
5
|
/**
|
|
6
|
-
* @deprecated import
|
|
6
|
+
* @deprecated import DbxDownloadTextViewComponent directly instead.
|
|
7
7
|
*/
|
|
8
8
|
export class DbxDownloadTextModule {
|
|
9
9
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDownloadTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
17
17
|
exports: importsAndExports
|
|
18
18
|
}]
|
|
19
19
|
}] });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQudGV4dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2Rvd25sb2FkL3RleHQvZG93bmxvYWQudGV4dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFekUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFekQ7O0dBRUc7QUFLSCxNQUFNLE9BQU8scUJBQXFCO3dHQUFyQixxQkFBcUI7eUdBQXJCLHFCQUFxQixZQVRQLDRCQUE0QixhQUE1Qiw0QkFBNEI7eUdBUzFDLHFCQUFxQixZQUh2QixpQkFBaUI7OzRGQUdmLHFCQUFxQjtrQkFKakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixPQUFPLEVBQUUsaUJBQWlCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhEb3dubG9hZFRleHRWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9kb3dubG9hZC50ZXh0LmNvbXBvbmVudCc7XG5cbmNvbnN0IGltcG9ydHNBbmRFeHBvcnRzID0gW0RieERvd25sb2FkVGV4dFZpZXdDb21wb25lbnRdO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCBEYnhEb3dubG9hZFRleHRWaWV3Q29tcG9uZW50IGRpcmVjdGx5IGluc3RlYWQuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IGltcG9ydHNBbmRFeHBvcnRzLFxuICBleHBvcnRzOiBpbXBvcnRzQW5kRXhwb3J0c1xufSlcbmV4cG9ydCBjbGFzcyBEYnhEb3dubG9hZFRleHRNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Directive, inject } from '@angular/core';
|
|
2
|
+
import { DBX_HELP_WIDGET_ENTRY_DATA_TOKEN } from './help.widget';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Abstract help widget directive that injects the help widget data.
|
|
6
|
+
*/
|
|
7
|
+
export class DbxAbstractHelpWidgetDirective {
|
|
8
|
+
helpWidgetData = inject(DBX_HELP_WIDGET_ENTRY_DATA_TOKEN);
|
|
9
|
+
helpWidgetEntry = this.helpWidgetData.helpWidgetEntry;
|
|
10
|
+
get helpContextString() {
|
|
11
|
+
return this.helpWidgetEntry.helpContextString;
|
|
12
|
+
}
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAbstractHelpWidgetDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxAbstractHelpWidgetDirective, ngImport: i0 });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAbstractHelpWidgetDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzcmFjdC5oZWxwLndpZGdldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2hlbHAvYWJzcmFjdC5oZWxwLndpZGdldC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdqRTs7R0FFRztBQUVILE1BQU0sT0FBZ0IsOEJBQThCO0lBQ3pDLGNBQWMsR0FBRyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUMxRCxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7SUFFL0QsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELENBQUM7d0dBTm1CLDhCQUE4Qjs0RkFBOUIsOEJBQThCOzs0RkFBOUIsOEJBQThCO2tCQURuRCxTQUFTO21CQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREJYX0hFTFBfV0lER0VUX0VOVFJZX0RBVEFfVE9LRU4gfSBmcm9tICcuL2hlbHAud2lkZ2V0JztcbmltcG9ydCB7IERieEhlbHBDb250ZXh0U3RyaW5nIH0gZnJvbSAnLi9oZWxwJztcblxuLyoqXG4gKiBBYnN0cmFjdCBoZWxwIHdpZGdldCBkaXJlY3RpdmUgdGhhdCBpbmplY3RzIHRoZSBoZWxwIHdpZGdldCBkYXRhLlxuICovXG5ARGlyZWN0aXZlKHt9KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERieEFic3RyYWN0SGVscFdpZGdldERpcmVjdGl2ZSB7XG4gIHJlYWRvbmx5IGhlbHBXaWRnZXREYXRhID0gaW5qZWN0KERCWF9IRUxQX1dJREdFVF9FTlRSWV9EQVRBX1RPS0VOKTtcbiAgcmVhZG9ubHkgaGVscFdpZGdldEVudHJ5ID0gdGhpcy5oZWxwV2lkZ2V0RGF0YS5oZWxwV2lkZ2V0RW50cnk7XG5cbiAgZ2V0IGhlbHBDb250ZXh0U3RyaW5nKCk6IERieEhlbHBDb250ZXh0U3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oZWxwV2lkZ2V0RW50cnkuaGVscENvbnRleHRTdHJpbmc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Directive, input } from '@angular/core';
|
|
2
|
+
import { asArray } from '@dereekb/util';
|
|
3
|
+
import { map } from 'rxjs';
|
|
4
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { registerHelpContextStringsWithDbxHelpContextService } from './help.context';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Directive that registers one or more help contexts to the current context.
|
|
9
|
+
*/
|
|
10
|
+
export class DbxHelpContextDirective {
|
|
11
|
+
/**
|
|
12
|
+
* The input help context string(s) to add.
|
|
13
|
+
*/
|
|
14
|
+
dbxHelpContext = input.required();
|
|
15
|
+
helpContextStrings$ = toObservable(this.dbxHelpContext).pipe(map(asArray));
|
|
16
|
+
constructor() {
|
|
17
|
+
registerHelpContextStringsWithDbxHelpContextService(this.helpContextStrings$);
|
|
18
|
+
}
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpContextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
20
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxHelpContextDirective, isStandalone: true, selector: "[dbxHelpContext]", inputs: { dbxHelpContext: { classPropertyName: "dbxHelpContext", publicName: "dbxHelpContext", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 });
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpContextDirective, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: '[dbxHelpContext]',
|
|
26
|
+
standalone: true
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: () => [] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5jb250ZXh0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vaGVscC9oZWxwLmNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBZ0IsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtREFBbUQsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUVyRjs7R0FFRztBQUtILE1BQU0sT0FBTyx1QkFBdUI7SUFDbEM7O09BRUc7SUFDTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBc0MsQ0FBQztJQUN0RSxtQkFBbUIsR0FBdUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFeEg7UUFDRSxtREFBbUQsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNoRixDQUFDO3dHQVRVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEhlbHBDb250ZXh0U3RyaW5nIH0gZnJvbSAnLi9oZWxwJztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgYXNBcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyByZWdpc3RlckhlbHBDb250ZXh0U3RyaW5nc1dpdGhEYnhIZWxwQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2hlbHAuY29udGV4dCc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgcmVnaXN0ZXJzIG9uZSBvciBtb3JlIGhlbHAgY29udGV4dHMgdG8gdGhlIGN1cnJlbnQgY29udGV4dC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEhlbHBDb250ZXh0XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4SGVscENvbnRleHREaXJlY3RpdmUge1xuICAvKipcbiAgICogVGhlIGlucHV0IGhlbHAgY29udGV4dCBzdHJpbmcocykgdG8gYWRkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJ4SGVscENvbnRleHQgPSBpbnB1dC5yZXF1aXJlZDxBcnJheU9yVmFsdWU8RGJ4SGVscENvbnRleHRTdHJpbmc+PigpO1xuICByZWFkb25seSBoZWxwQ29udGV4dFN0cmluZ3MkOiBPYnNlcnZhYmxlPERieEhlbHBDb250ZXh0U3RyaW5nW10+ID0gdG9PYnNlcnZhYmxlKHRoaXMuZGJ4SGVscENvbnRleHQpLnBpcGUobWFwKGFzQXJyYXkpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZWdpc3RlckhlbHBDb250ZXh0U3RyaW5nc1dpdGhEYnhIZWxwQ29udGV4dFNlcnZpY2UodGhpcy5oZWxwQ29udGV4dFN0cmluZ3MkKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { asObservable } from '@dereekb/rxjs';
|
|
2
|
+
import { DestroyRef, inject } from '@angular/core';
|
|
3
|
+
import { DbxHelpContextService } from './help.context.service';
|
|
4
|
+
/**
|
|
5
|
+
* Registers the input observable with the DbxHelpContextService.
|
|
6
|
+
*
|
|
7
|
+
* Must be run in an injectable context.
|
|
8
|
+
*
|
|
9
|
+
* Automatically cleans up, but returns a destroy function for manual cleanup.
|
|
10
|
+
*/
|
|
11
|
+
export function registerHelpContextStringsWithDbxHelpContextService(helpContextStrings) {
|
|
12
|
+
const helpContextService = inject(DbxHelpContextService);
|
|
13
|
+
const destroyRef = inject(DestroyRef);
|
|
14
|
+
const helpContextReference = {
|
|
15
|
+
helpContextStrings$: asObservable(helpContextStrings)
|
|
16
|
+
};
|
|
17
|
+
helpContextService.register(helpContextReference);
|
|
18
|
+
function _destroy() {
|
|
19
|
+
helpContextService.unregister(helpContextReference);
|
|
20
|
+
}
|
|
21
|
+
destroyRef.onDestroy(_destroy);
|
|
22
|
+
return _destroy;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2V4dGVuc2lvbi9oZWxwL2hlbHAuY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUcvRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsbURBQW1ELENBQUMsa0JBQTZEO0lBQy9ILE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDekQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLE1BQU0sb0JBQW9CLEdBQTRCO1FBQ3BELG1CQUFtQixFQUFFLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztLQUN0RCxDQUFDO0lBRUYsa0JBQWtCLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFbEQsU0FBUyxRQUFRO1FBQ2Ysa0JBQWtCLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFL0IsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzT2JzZXJ2YWJsZSwgdHlwZSBPYnNlcnZhYmxlT3JWYWx1ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBEYnhIZWxwQ29udGV4dFJlZmVyZW5jZSwgdHlwZSBEYnhIZWxwQ29udGV4dFN0cmluZyB9IGZyb20gJy4vaGVscCc7XG5pbXBvcnQgeyBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEhlbHBDb250ZXh0U2VydmljZSB9IGZyb20gJy4vaGVscC5jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgdHlwZSBEZXN0cm95RnVuY3Rpb24gfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGlucHV0IG9ic2VydmFibGUgd2l0aCB0aGUgRGJ4SGVscENvbnRleHRTZXJ2aWNlLlxuICpcbiAqIE11c3QgYmUgcnVuIGluIGFuIGluamVjdGFibGUgY29udGV4dC5cbiAqXG4gKiBBdXRvbWF0aWNhbGx5IGNsZWFucyB1cCwgYnV0IHJldHVybnMgYSBkZXN0cm95IGZ1bmN0aW9uIGZvciBtYW51YWwgY2xlYW51cC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVySGVscENvbnRleHRTdHJpbmdzV2l0aERieEhlbHBDb250ZXh0U2VydmljZShoZWxwQ29udGV4dFN0cmluZ3M6IE9ic2VydmFibGVPclZhbHVlPERieEhlbHBDb250ZXh0U3RyaW5nW10+KTogRGVzdHJveUZ1bmN0aW9uIHtcbiAgY29uc3QgaGVscENvbnRleHRTZXJ2aWNlID0gaW5qZWN0KERieEhlbHBDb250ZXh0U2VydmljZSk7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3QgaGVscENvbnRleHRSZWZlcmVuY2U6IERieEhlbHBDb250ZXh0UmVmZXJlbmNlID0ge1xuICAgIGhlbHBDb250ZXh0U3RyaW5ncyQ6IGFzT2JzZXJ2YWJsZShoZWxwQ29udGV4dFN0cmluZ3MpXG4gIH07XG5cbiAgaGVscENvbnRleHRTZXJ2aWNlLnJlZ2lzdGVyKGhlbHBDb250ZXh0UmVmZXJlbmNlKTtcblxuICBmdW5jdGlvbiBfZGVzdHJveSgpIHtcbiAgICBoZWxwQ29udGV4dFNlcnZpY2UudW5yZWdpc3RlcihoZWxwQ29udGV4dFJlZmVyZW5jZSk7XG4gIH1cblxuICBkZXN0cm95UmVmLm9uRGVzdHJveShfZGVzdHJveSk7XG5cbiAgcmV0dXJuIF9kZXN0cm95O1xufVxuIl19
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, combineLatest, defaultIfEmpty, map, shareReplay, switchMap } from 'rxjs';
|
|
3
|
+
import { distinctUntilHasDifferentValues } from '@dereekb/rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Service that tracks all active help context strings in the current context.
|
|
7
|
+
*/
|
|
8
|
+
export class DbxHelpContextService {
|
|
9
|
+
_contextReferences = new BehaviorSubject(new Set());
|
|
10
|
+
/**
|
|
11
|
+
* Observable of all currently active help context strings.
|
|
12
|
+
*/
|
|
13
|
+
activeHelpContextStrings$ = this._contextReferences.pipe(switchMap((allReferences) => combineLatest(Array.from(allReferences).map((ref) => ref.helpContextStrings$)).pipe(map((x) => x.flat()), defaultIfEmpty([]), map((x) => new Set(x)))), distinctUntilHasDifferentValues(), shareReplay(1));
|
|
14
|
+
activeHelpContextStringsArray$ = this.activeHelpContextStrings$.pipe(map((x) => Array.from(x)), shareReplay(1));
|
|
15
|
+
register(reference) {
|
|
16
|
+
const referenceSet = this._contextReferences.value;
|
|
17
|
+
referenceSet.add(reference);
|
|
18
|
+
this._contextReferences.next(referenceSet);
|
|
19
|
+
}
|
|
20
|
+
unregister(reference) {
|
|
21
|
+
const referenceSet = this._contextReferences.value;
|
|
22
|
+
referenceSet.delete(reference);
|
|
23
|
+
this._contextReferences.next(referenceSet);
|
|
24
|
+
}
|
|
25
|
+
ngOnDestroy() {
|
|
26
|
+
this._contextReferences.complete();
|
|
27
|
+
}
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpContextService });
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpContextService, decorators: [{
|
|
32
|
+
type: Injectable
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2hlbHAvaGVscC5jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFjLGFBQWEsRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0csT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVoRTs7R0FFRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUFDZixrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBK0IsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRW5HOztPQUVHO0lBQ00seUJBQXlCLEdBQTBDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQ3RHLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQzFCLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2pGLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQ3BCLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFDbEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN2QixDQUNGLEVBQ0QsK0JBQStCLEVBQUUsRUFDakMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyw4QkFBOEIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUMzRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDekIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFRixRQUFRLENBQUMsU0FBa0M7UUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUNuRCxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFrQztRQUMzQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ25ELFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO3dHQXJDVSxxQkFBcUI7NEdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBkZWZhdWx0SWZFbXB0eSwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhIZWxwQ29udGV4dFN0cmluZywgRGJ4SGVscENvbnRleHRSZWZlcmVuY2UgfSBmcm9tICcuL2hlbHAnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbEhhc0RpZmZlcmVudFZhbHVlcyB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCB0cmFja3MgYWxsIGFjdGl2ZSBoZWxwIGNvbnRleHQgc3RyaW5ncyBpbiB0aGUgY3VycmVudCBjb250ZXh0LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGJ4SGVscENvbnRleHRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGV4dFJlZmVyZW5jZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldDxEYnhIZWxwQ29udGV4dFJlZmVyZW5jZT4+KG5ldyBTZXQoKSk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgb2YgYWxsIGN1cnJlbnRseSBhY3RpdmUgaGVscCBjb250ZXh0IHN0cmluZ3MuXG4gICAqL1xuICByZWFkb25seSBhY3RpdmVIZWxwQ29udGV4dFN0cmluZ3MkOiBPYnNlcnZhYmxlPFNldDxEYnhIZWxwQ29udGV4dFN0cmluZz4+ID0gdGhpcy5fY29udGV4dFJlZmVyZW5jZXMucGlwZShcbiAgICBzd2l0Y2hNYXAoKGFsbFJlZmVyZW5jZXMpID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KEFycmF5LmZyb20oYWxsUmVmZXJlbmNlcykubWFwKChyZWYpID0+IHJlZi5oZWxwQ29udGV4dFN0cmluZ3MkKSkucGlwZShcbiAgICAgICAgbWFwKCh4KSA9PiB4LmZsYXQoKSksXG4gICAgICAgIGRlZmF1bHRJZkVtcHR5KFtdKSxcbiAgICAgICAgbWFwKCh4KSA9PiBuZXcgU2V0KHgpKVxuICAgICAgKVxuICAgICksXG4gICAgZGlzdGluY3RVbnRpbEhhc0RpZmZlcmVudFZhbHVlcygpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWN0aXZlSGVscENvbnRleHRTdHJpbmdzQXJyYXkkID0gdGhpcy5hY3RpdmVIZWxwQ29udGV4dFN0cmluZ3MkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBBcnJheS5mcm9tKHgpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlZ2lzdGVyKHJlZmVyZW5jZTogRGJ4SGVscENvbnRleHRSZWZlcmVuY2UpOiB2b2lkIHtcbiAgICBjb25zdCByZWZlcmVuY2VTZXQgPSB0aGlzLl9jb250ZXh0UmVmZXJlbmNlcy52YWx1ZTtcbiAgICByZWZlcmVuY2VTZXQuYWRkKHJlZmVyZW5jZSk7XG4gICAgdGhpcy5fY29udGV4dFJlZmVyZW5jZXMubmV4dChyZWZlcmVuY2VTZXQpO1xuICB9XG5cbiAgdW5yZWdpc3RlcihyZWZlcmVuY2U6IERieEhlbHBDb250ZXh0UmVmZXJlbmNlKTogdm9pZCB7XG4gICAgY29uc3QgcmVmZXJlbmNlU2V0ID0gdGhpcy5fY29udGV4dFJlZmVyZW5jZXMudmFsdWU7XG4gICAgcmVmZXJlbmNlU2V0LmRlbGV0ZShyZWZlcmVuY2UpO1xuICAgIHRoaXMuX2NvbnRleHRSZWZlcmVuY2VzLm5leHQocmVmZXJlbmNlU2V0KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbnRleHRSZWZlcmVuY2VzLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vaGVscC9oZWxwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTdHJpbmcgdHlwZSBmb3IgaWRlbnRpZnlpbmcgaGVscCB0b3BpY3NcbiAqL1xuZXhwb3J0IHR5cGUgRGJ4SGVscENvbnRleHRTdHJpbmcgPSBzdHJpbmc7XG5cbi8qKlxuICogUmVmZXJlbmNlIG9iamVjdCBmb3IgdHJhY2tpbmcgaGVscCBjb250ZXh0IHJlZ2lzdHJhdGlvbnMuXG4gKiBVc2VkIGludGVybmFsbHkgdG8gdHJhY2sgbXVsdGlwbGUgZGlyZWN0aXZlcyB3aXRoIHRoZSBzYW1lIGNvbnRleHQgc3RyaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEhlbHBDb250ZXh0UmVmZXJlbmNlIHtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgb2YgY29udGV4dCBzdHJpbmdzIHRoYXQgdGhpcyByZWZlcmVuY2UgcHJvdmlkZXMuXG4gICAqL1xuICByZWFkb25seSBoZWxwQ29udGV4dFN0cmluZ3MkOiBPYnNlcnZhYmxlPERieEhlbHBDb250ZXh0U3RyaW5nW10+O1xufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { makeEnvironmentProviders } from '@angular/core';
|
|
2
|
+
import { DbxHelpWidgetService, DbxHelpWidgetServiceConfig } from './help.widget.service';
|
|
3
|
+
import { DbxHelpContextService } from './help.context.service';
|
|
4
|
+
/**
|
|
5
|
+
* Creates EnvironmentProviders for the help context system.
|
|
6
|
+
*
|
|
7
|
+
* @param config Optional configuration
|
|
8
|
+
* @returns EnvironmentProviders
|
|
9
|
+
*/
|
|
10
|
+
export function provideDbxHelpServices(config) {
|
|
11
|
+
const providers = [DbxHelpWidgetService, DbxHelpContextService];
|
|
12
|
+
if (config?.dbxHelpWidgetServiceConfigFactory) {
|
|
13
|
+
providers.push({
|
|
14
|
+
provide: DbxHelpWidgetServiceConfig,
|
|
15
|
+
useFactory: config.dbxHelpWidgetServiceConfigFactory
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return makeEnvironmentProviders(providers);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvZXh0ZW5zaW9uL2hlbHAvaGVscC5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyRCx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWlCL0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsTUFBcUM7SUFDMUUsTUFBTSxTQUFTLEdBQWUsQ0FBQyxvQkFBb0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBRTVFLElBQUksTUFBTSxFQUFFLGlDQUFpQyxFQUFFLENBQUM7UUFDOUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNiLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxpQ0FBaUM7U0FDckQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRW52aXJvbm1lbnRQcm92aWRlcnMsIHR5cGUgSW5qZWN0b3IsIHR5cGUgUHJvdmlkZXIsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4SGVscFdpZGdldFNlcnZpY2UsIERieEhlbHBXaWRnZXRTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi9oZWxwLndpZGdldC5zZXJ2aWNlJztcbmltcG9ydCB7IERieEhlbHBDb250ZXh0U2VydmljZSB9IGZyb20gJy4vaGVscC5jb250ZXh0LnNlcnZpY2UnO1xuXG4vKipcbiAqIEZhY3RvcnkgZm9yIERieEhlbHBXaWRnZXRTZXJ2aWNlQ29uZmlnLlxuICovXG5leHBvcnQgdHlwZSBEYnhIZWxwV2lkZ2V0U2VydmljZUNvbmZpZ0ZhY3RvcnkgPSAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBEYnhIZWxwV2lkZ2V0U2VydmljZUNvbmZpZztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBwcm92aWRlRGJ4SGVscFNlcnZpY2VzKCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZURieEhlbHBTZXJ2aWNlc0NvbmZpZyB7XG4gIC8qKlxuICAgKiBJbml0aWFsIGhlbHAgd2lkZ2V0IGVudHJpZXMgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICByZWFkb25seSBkYnhIZWxwV2lkZ2V0U2VydmljZUNvbmZpZ0ZhY3Rvcnk/OiBEYnhIZWxwV2lkZ2V0U2VydmljZUNvbmZpZ0ZhY3Rvcnk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBFbnZpcm9ubWVudFByb3ZpZGVycyBmb3IgdGhlIGhlbHAgY29udGV4dCBzeXN0ZW0uXG4gKlxuICogQHBhcmFtIGNvbmZpZyBPcHRpb25hbCBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudFByb3ZpZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEhlbHBTZXJ2aWNlcyhjb25maWc/OiBQcm92aWRlRGJ4SGVscFNlcnZpY2VzQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbRGJ4SGVscFdpZGdldFNlcnZpY2UsIERieEhlbHBDb250ZXh0U2VydmljZV07XG5cbiAgaWYgKGNvbmZpZz8uZGJ4SGVscFdpZGdldFNlcnZpY2VDb25maWdGYWN0b3J5KSB7XG4gICAgcHJvdmlkZXJzLnB1c2goe1xuICAgICAgcHJvdmlkZTogRGJ4SGVscFdpZGdldFNlcnZpY2VDb25maWcsXG4gICAgICB1c2VGYWN0b3J5OiBjb25maWcuZGJ4SGVscFdpZGdldFNlcnZpY2VDb25maWdGYWN0b3J5XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XG59XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
|
|
2
|
+
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { asObservable, distinctUntilHasDifferentValues } from '@dereekb/rxjs';
|
|
4
|
+
import { map, of, shareReplay, switchMap } from 'rxjs';
|
|
5
|
+
import { DbxHelpWidgetService } from './help.widget.service';
|
|
6
|
+
import { DbxHelpViewListEntryComponent } from './help.view.list.entry.component';
|
|
7
|
+
import { asArray } from '@dereekb/util';
|
|
8
|
+
import { MatAccordion } from '@angular/material/expansion';
|
|
9
|
+
import { DbxListEmptyContentComponent } from '../../layout/list/list.content.empty.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class DbxHelpViewListComponent {
|
|
12
|
+
helpWidgetService = inject(DbxHelpWidgetService);
|
|
13
|
+
/**
|
|
14
|
+
* Whether the accordion should allow multiple expanded panels.
|
|
15
|
+
*/
|
|
16
|
+
multi = input(true);
|
|
17
|
+
helpContextStrings = input.required();
|
|
18
|
+
helpContextStrings$ = toObservable(this.helpContextStrings).pipe(switchMap((x) => asObservable(x) ?? of([])), map(asArray), distinctUntilHasDifferentValues(), shareReplay(1));
|
|
19
|
+
helpContextStringsSignal = toSignal(this.helpContextStrings$, { initialValue: [] });
|
|
20
|
+
helpWidgetEntriesSignal = computed(() => this.helpWidgetService.getHelpWidgetEntriesForHelpContextStrings(this.helpContextStringsSignal()));
|
|
21
|
+
hasNoHelpWidgetEntriesSignal = computed(() => !this.helpWidgetEntriesSignal()?.length);
|
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpViewListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxHelpViewListComponent, isStandalone: true, selector: "dbx-help-view-list", inputs: { multi: { classPropertyName: "multi", publicName: "multi", isSignal: true, isRequired: false, transformFunction: null }, helpContextStrings: { classPropertyName: "helpContextStrings", publicName: "helpContextStrings", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "dbx-help-view-list dbx-block" }, ngImport: i0, template: `
|
|
24
|
+
<mat-accordion [multi]="multi()">
|
|
25
|
+
@for (widgetEntry of helpWidgetEntriesSignal(); track widgetEntry.helpContextString) {
|
|
26
|
+
<dbx-help-view-list-entry [helpWidgetEntry]="widgetEntry"></dbx-help-view-list-entry>
|
|
27
|
+
}
|
|
28
|
+
</mat-accordion>
|
|
29
|
+
@if (hasNoHelpWidgetEntriesSignal()) {
|
|
30
|
+
<dbx-list-empty-content>
|
|
31
|
+
<ng-content select="[empty]"></ng-content>
|
|
32
|
+
</dbx-list-empty-content>
|
|
33
|
+
}
|
|
34
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: DbxHelpViewListEntryComponent, selector: "dbx-help-view-list-entry", inputs: ["helpWidgetEntry"] }, { kind: "component", type: DbxListEmptyContentComponent, selector: "dbx-list-empty-content" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpViewListComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{
|
|
39
|
+
selector: 'dbx-help-view-list',
|
|
40
|
+
template: `
|
|
41
|
+
<mat-accordion [multi]="multi()">
|
|
42
|
+
@for (widgetEntry of helpWidgetEntriesSignal(); track widgetEntry.helpContextString) {
|
|
43
|
+
<dbx-help-view-list-entry [helpWidgetEntry]="widgetEntry"></dbx-help-view-list-entry>
|
|
44
|
+
}
|
|
45
|
+
</mat-accordion>
|
|
46
|
+
@if (hasNoHelpWidgetEntriesSignal()) {
|
|
47
|
+
<dbx-list-empty-content>
|
|
48
|
+
<ng-content select="[empty]"></ng-content>
|
|
49
|
+
</dbx-list-empty-content>
|
|
50
|
+
}
|
|
51
|
+
`,
|
|
52
|
+
host: {
|
|
53
|
+
class: 'dbx-help-view-list dbx-block'
|
|
54
|
+
},
|
|
55
|
+
imports: [MatAccordion, DbxHelpViewListEntryComponent, DbxListEmptyContentComponent],
|
|
56
|
+
standalone: true,
|
|
57
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
58
|
+
}]
|
|
59
|
+
}] });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC52aWV3Lmxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2V4dGVuc2lvbi9oZWxwL2hlbHAudmlldy5saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSwrQkFBK0IsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRixPQUFPLEVBQWdCLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBdUI5RixNQUFNLE9BQU8sd0JBQXdCO0lBQzFCLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTFEOztPQUVHO0lBQ00sS0FBSyxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUU3QixrQkFBa0IsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF5RCxDQUFDO0lBQzdGLG1CQUFtQixHQUF1QyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUMzRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDM0MsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUNaLCtCQUErQixFQUFFLEVBQ2pDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sd0JBQXdCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMseUNBQXlDLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTVJLDRCQUE0QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dHQW5CckYsd0JBQXdCOzRGQUF4Qix3QkFBd0IsMGFBbkJ6Qjs7Ozs7Ozs7Ozs7R0FXVCw0REFJUyxZQUFZLCtJQUFFLDZCQUE2QixrR0FBRSw0QkFBNEI7OzRGQUl4RSx3QkFBd0I7a0JBckJwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7R0FXVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLDhCQUE4QjtxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLDZCQUE2QixFQUFFLDRCQUE0QixDQUFDO29CQUNwRixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEhlbHBDb250ZXh0U3RyaW5nIH0gZnJvbSAnLi9oZWxwJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhc09ic2VydmFibGUsIGRpc3RpbmN0VW50aWxIYXNEaWZmZXJlbnRWYWx1ZXMsIE9ic2VydmFibGVPclZhbHVlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhIZWxwV2lkZ2V0U2VydmljZSB9IGZyb20gJy4vaGVscC53aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhIZWxwVmlld0xpc3RFbnRyeUNvbXBvbmVudCB9IGZyb20gJy4vaGVscC52aWV3Lmxpc3QuZW50cnkuY29tcG9uZW50JztcbmltcG9ydCB7IEFycmF5T3JWYWx1ZSwgYXNBcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgTWF0QWNjb3JkaW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IERieExpc3RFbXB0eUNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9sYXlvdXQvbGlzdC9saXN0LmNvbnRlbnQuZW1wdHkuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWhlbHAtdmlldy1saXN0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bWF0LWFjY29yZGlvbiBbbXVsdGldPVwibXVsdGkoKVwiPlxuICAgICAgQGZvciAod2lkZ2V0RW50cnkgb2YgaGVscFdpZGdldEVudHJpZXNTaWduYWwoKTsgdHJhY2sgd2lkZ2V0RW50cnkuaGVscENvbnRleHRTdHJpbmcpIHtcbiAgICAgICAgPGRieC1oZWxwLXZpZXctbGlzdC1lbnRyeSBbaGVscFdpZGdldEVudHJ5XT1cIndpZGdldEVudHJ5XCI+PC9kYngtaGVscC12aWV3LWxpc3QtZW50cnk+XG4gICAgICB9XG4gICAgPC9tYXQtYWNjb3JkaW9uPlxuICAgIEBpZiAoaGFzTm9IZWxwV2lkZ2V0RW50cmllc1NpZ25hbCgpKSB7XG4gICAgICA8ZGJ4LWxpc3QtZW1wdHktY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VtcHR5XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGJ4LWxpc3QtZW1wdHktY29udGVudD5cbiAgICB9XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2RieC1oZWxwLXZpZXctbGlzdCBkYngtYmxvY2snXG4gIH0sXG4gIGltcG9ydHM6IFtNYXRBY2NvcmRpb24sIERieEhlbHBWaWV3TGlzdEVudHJ5Q29tcG9uZW50LCBEYnhMaXN0RW1wdHlDb250ZW50Q29tcG9uZW50XSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGJ4SGVscFZpZXdMaXN0Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaGVscFdpZGdldFNlcnZpY2UgPSBpbmplY3QoRGJ4SGVscFdpZGdldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY2NvcmRpb24gc2hvdWxkIGFsbG93IG11bHRpcGxlIGV4cGFuZGVkIHBhbmVscy5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcmVhZG9ubHkgaGVscENvbnRleHRTdHJpbmdzID0gaW5wdXQucmVxdWlyZWQ8T2JzZXJ2YWJsZU9yVmFsdWU8QXJyYXlPclZhbHVlPERieEhlbHBDb250ZXh0U3RyaW5nPj4+KCk7XG4gIHJlYWRvbmx5IGhlbHBDb250ZXh0U3RyaW5ncyQ6IE9ic2VydmFibGU8RGJ4SGVscENvbnRleHRTdHJpbmdbXT4gPSB0b09ic2VydmFibGUodGhpcy5oZWxwQ29udGV4dFN0cmluZ3MpLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiBhc09ic2VydmFibGUoeCkgPz8gb2YoW10pKSxcbiAgICBtYXAoYXNBcnJheSksXG4gICAgZGlzdGluY3RVbnRpbEhhc0RpZmZlcmVudFZhbHVlcygpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGVscENvbnRleHRTdHJpbmdzU2lnbmFsID0gdG9TaWduYWwodGhpcy5oZWxwQ29udGV4dFN0cmluZ3MkLCB7IGluaXRpYWxWYWx1ZTogW10gfSk7XG4gIHJlYWRvbmx5IGhlbHBXaWRnZXRFbnRyaWVzU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5oZWxwV2lkZ2V0U2VydmljZS5nZXRIZWxwV2lkZ2V0RW50cmllc0ZvckhlbHBDb250ZXh0U3RyaW5ncyh0aGlzLmhlbHBDb250ZXh0U3RyaW5nc1NpZ25hbCgpKSk7XG5cbiAgcmVhZG9ubHkgaGFzTm9IZWxwV2lkZ2V0RW50cmllc1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmhlbHBXaWRnZXRFbnRyaWVzU2lnbmFsKCk/Lmxlbmd0aCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
|
|
2
|
+
import { DbxInjectionComponent } from '@dereekb/dbx-core';
|
|
3
|
+
import { MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionPanelContent } from '@angular/material/expansion';
|
|
4
|
+
import { MatIcon } from '@angular/material/icon';
|
|
5
|
+
import { AsyncPipe } from '@angular/common';
|
|
6
|
+
import { DBX_HELP_WIDGET_ENTRY_DATA_TOKEN } from './help.widget';
|
|
7
|
+
import { DbxHelpWidgetService } from './help.widget.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class DbxHelpViewListEntryComponent {
|
|
10
|
+
helpWidgetEntry = input.required();
|
|
11
|
+
helpWidgetService = inject(DbxHelpWidgetService);
|
|
12
|
+
titleSignal = computed(() => this.helpWidgetEntry().title);
|
|
13
|
+
iconSignal = computed(() => this.helpWidgetEntry().icon ?? this.helpWidgetService.getDefaultIcon());
|
|
14
|
+
widgetInjectionConfigSignal = computed(() => {
|
|
15
|
+
const helpWidgetEntry = this.helpWidgetEntry();
|
|
16
|
+
const widgetComponentClass = helpWidgetEntry.widgetComponentClass;
|
|
17
|
+
const widgetData = {
|
|
18
|
+
helpWidgetEntry
|
|
19
|
+
};
|
|
20
|
+
const config = {
|
|
21
|
+
componentClass: widgetComponentClass,
|
|
22
|
+
providers: [
|
|
23
|
+
{
|
|
24
|
+
provide: DBX_HELP_WIDGET_ENTRY_DATA_TOKEN,
|
|
25
|
+
useValue: widgetData
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
};
|
|
29
|
+
return config;
|
|
30
|
+
});
|
|
31
|
+
headerInjectionConfigSignal = computed(() => {
|
|
32
|
+
const helpWidgetEntry = this.helpWidgetEntry();
|
|
33
|
+
const headerComponentClass = helpWidgetEntry.headerComponentClass;
|
|
34
|
+
let config = undefined;
|
|
35
|
+
if (headerComponentClass) {
|
|
36
|
+
const widgetData = {
|
|
37
|
+
helpWidgetEntry
|
|
38
|
+
};
|
|
39
|
+
config = {
|
|
40
|
+
componentClass: headerComponentClass,
|
|
41
|
+
providers: [
|
|
42
|
+
{
|
|
43
|
+
provide: DBX_HELP_WIDGET_ENTRY_DATA_TOKEN,
|
|
44
|
+
useValue: widgetData
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return config;
|
|
50
|
+
});
|
|
51
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpViewListEntryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxHelpViewListEntryComponent, isStandalone: true, selector: "dbx-help-view-list-entry", inputs: { helpWidgetEntry: { classPropertyName: "helpWidgetEntry", publicName: "helpWidgetEntry", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (iconSignal(); as icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ icon }}</mat-icon>\n }\n <span>{{ titleSignal() }}</span>\n </mat-panel-title>\n <ng-container>\n @if (headerInjectionConfigSignal(); as headerInjectionConfig) {\n <mat-panel-description>\n <span class=\"dbx-spacer\"></span>\n <dbx-injection [config]=\"headerInjectionConfig\"></dbx-injection>\n </mat-panel-description>\n }\n </ng-container>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-help-view-list-entry-content\">\n <dbx-injection [config]=\"widgetInjectionConfigSignal()\"></dbx-injection>\n </div>\n </ng-template>\n</mat-expansion-panel>\n", dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "directive", type: MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
|
+
}
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpViewListEntryComponent, decorators: [{
|
|
55
|
+
type: Component,
|
|
56
|
+
args: [{ selector: 'dbx-help-view-list-entry', imports: [DbxInjectionComponent, MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionPanelContent, MatIcon, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (iconSignal(); as icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ icon }}</mat-icon>\n }\n <span>{{ titleSignal() }}</span>\n </mat-panel-title>\n <ng-container>\n @if (headerInjectionConfigSignal(); as headerInjectionConfig) {\n <mat-panel-description>\n <span class=\"dbx-spacer\"></span>\n <dbx-injection [config]=\"headerInjectionConfig\"></dbx-injection>\n </mat-panel-description>\n }\n </ng-container>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-help-view-list-entry-content\">\n <dbx-injection [config]=\"widgetInjectionConfigSignal()\"></dbx-injection>\n </div>\n </ng-template>\n</mat-expansion-panel>\n" }]
|
|
57
|
+
}] });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC52aWV3Lmxpc3QuZW50cnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2V4dGVuc2lvbi9oZWxwL2hlbHAudmlldy5saXN0LmVudHJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vaGVscC9oZWxwLnZpZXcubGlzdC5lbnRyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxxQkFBcUIsRUFBK0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6SyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBcUQsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBUzdELE1BQU0sT0FBTyw2QkFBNkI7SUFDL0IsZUFBZSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTZCLENBQUM7SUFDOUQsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFakQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBRXBHLDJCQUEyQixHQUF3QyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ3hGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvQyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQztRQUVsRSxNQUFNLFVBQVUsR0FBMkI7WUFDekMsZUFBZTtTQUNoQixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQWdDO1lBQzFDLGNBQWMsRUFBRSxvQkFBb0I7WUFDcEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7b0JBQ3pDLFFBQVEsRUFBRSxVQUFVO2lCQUNyQjthQUNGO1NBQ0YsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBRU0sMkJBQTJCLEdBQStDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDL0YsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9DLE1BQU0sb0JBQW9CLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDO1FBRWxFLElBQUksTUFBTSxHQUF1QyxTQUFTLENBQUM7UUFFM0QsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sVUFBVSxHQUEyQjtnQkFDekMsZUFBZTthQUNoQixDQUFDO1lBRUYsTUFBTSxHQUFHO2dCQUNQLGNBQWMsRUFBRSxvQkFBb0I7Z0JBQ3BDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsZ0NBQWdDO3dCQUN6QyxRQUFRLEVBQUUsVUFBVTtxQkFDckI7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO3dHQW5EUSw2QkFBNkI7NEZBQTdCLDZCQUE2QixxUENoQjFDLG8wQkF1QkEsNENEWFkscUJBQXFCLDJIQUFFLGlCQUFpQixzTEFBRSx1QkFBdUIsa0lBQUUsc0JBQXNCLDREQUFFLDRCQUE0QixrRUFBRSx3QkFBd0Isa0ZBQUUsT0FBTzs7NEZBSXpKLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDRSwwQkFBMEIsV0FFM0IsQ0FBQyxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLG1CQUMvSix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnQsIERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvblBhbmVsLCBNYXRFeHBhbnNpb25QYW5lbEhlYWRlciwgTWF0RXhwYW5zaW9uUGFuZWxUaXRsZSwgTWF0RXhwYW5zaW9uUGFuZWxEZXNjcmlwdGlvbiwgTWF0RXhwYW5zaW9uUGFuZWxDb250ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZXhwYW5zaW9uJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEQlhfSEVMUF9XSURHRVRfRU5UUllfREFUQV9UT0tFTiwgRGJ4SGVscFdpZGdldEVudHJ5RGF0YSwgRGJ4SGVscFdpZGdldFNlcnZpY2VFbnRyeSB9IGZyb20gJy4vaGVscC53aWRnZXQnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEhlbHBXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi9oZWxwLndpZGdldC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWhlbHAtdmlldy1saXN0LWVudHJ5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlbHAudmlldy5saXN0LmVudHJ5LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RieEluamVjdGlvbkNvbXBvbmVudCwgTWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlLCBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLCBNYXRFeHBhbnNpb25QYW5lbENvbnRlbnQsIE1hdEljb24sIEFzeW5jUGlwZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEhlbHBWaWV3TGlzdEVudHJ5Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaGVscFdpZGdldEVudHJ5ID0gaW5wdXQucmVxdWlyZWQ8RGJ4SGVscFdpZGdldFNlcnZpY2VFbnRyeT4oKTtcbiAgcmVhZG9ubHkgaGVscFdpZGdldFNlcnZpY2UgPSBpbmplY3QoRGJ4SGVscFdpZGdldFNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHRpdGxlU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5oZWxwV2lkZ2V0RW50cnkoKS50aXRsZSk7XG4gIHJlYWRvbmx5IGljb25TaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmhlbHBXaWRnZXRFbnRyeSgpLmljb24gPz8gdGhpcy5oZWxwV2lkZ2V0U2VydmljZS5nZXREZWZhdWx0SWNvbigpKTtcblxuICByZWFkb25seSB3aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWw6IFNpZ25hbDxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGhlbHBXaWRnZXRFbnRyeSA9IHRoaXMuaGVscFdpZGdldEVudHJ5KCk7XG4gICAgY29uc3Qgd2lkZ2V0Q29tcG9uZW50Q2xhc3MgPSBoZWxwV2lkZ2V0RW50cnkud2lkZ2V0Q29tcG9uZW50Q2xhc3M7XG5cbiAgICBjb25zdCB3aWRnZXREYXRhOiBEYnhIZWxwV2lkZ2V0RW50cnlEYXRhID0ge1xuICAgICAgaGVscFdpZGdldEVudHJ5XG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpZzogRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnID0ge1xuICAgICAgY29tcG9uZW50Q2xhc3M6IHdpZGdldENvbXBvbmVudENsYXNzLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEQlhfSEVMUF9XSURHRVRfRU5UUllfREFUQV9UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogd2lkZ2V0RGF0YVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhlYWRlckluamVjdGlvbkNvbmZpZ1NpZ25hbDogU2lnbmFsPE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz4+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGhlbHBXaWRnZXRFbnRyeSA9IHRoaXMuaGVscFdpZGdldEVudHJ5KCk7XG4gICAgY29uc3QgaGVhZGVyQ29tcG9uZW50Q2xhc3MgPSBoZWxwV2lkZ2V0RW50cnkuaGVhZGVyQ29tcG9uZW50Q2xhc3M7XG5cbiAgICBsZXQgY29uZmlnOiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc+ID0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKGhlYWRlckNvbXBvbmVudENsYXNzKSB7XG4gICAgICBjb25zdCB3aWRnZXREYXRhOiBEYnhIZWxwV2lkZ2V0RW50cnlEYXRhID0ge1xuICAgICAgICBoZWxwV2lkZ2V0RW50cnlcbiAgICAgIH07XG5cbiAgICAgIGNvbmZpZyA9IHtcbiAgICAgICAgY29tcG9uZW50Q2xhc3M6IGhlYWRlckNvbXBvbmVudENsYXNzLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEQlhfSEVMUF9XSURHRVRfRU5UUllfREFUQV9UT0tFTixcbiAgICAgICAgICAgIHVzZVZhbHVlOiB3aWRnZXREYXRhXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWc7XG4gIH0pO1xufVxuIiwiPG1hdC1leHBhbnNpb24tcGFuZWw+XG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICA8bWF0LXBhbmVsLXRpdGxlPlxuICAgICAgQGlmIChpY29uU2lnbmFsKCk7IGFzIGljb24pIHtcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZGJ4LWJ1dHRvbi1zcGFjZXJcIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICAgIH1cbiAgICAgIDxzcGFuPnt7IHRpdGxlU2lnbmFsKCkgfX08L3NwYW4+XG4gICAgPC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIEBpZiAoaGVhZGVySW5qZWN0aW9uQ29uZmlnU2lnbmFsKCk7IGFzIGhlYWRlckluamVjdGlvbkNvbmZpZykge1xuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LXNwYWNlclwiPjwvc3Bhbj5cbiAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImhlYWRlckluamVjdGlvbkNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gIDxuZy10ZW1wbGF0ZSBtYXRFeHBhbnNpb25QYW5lbENvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImRieC1oZWxwLXZpZXctbGlzdC1lbnRyeS1jb250ZW50XCI+XG4gICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cIndpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCgpXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, inject, input, viewChild } from '@angular/core';
|
|
2
|
+
import { AbstractPopoverRefDirective } from '../../interaction/popover/abstract.popover.ref.directive';
|
|
3
|
+
import { DbxPopoverService } from '../../interaction/popover/popover.service';
|
|
4
|
+
import { DbxIconButtonComponent } from '../../button';
|
|
5
|
+
import { DbxHelpViewPopoverComponent } from './help.view.popover.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Button component that opens a help popover showing active help contexts.
|
|
9
|
+
*/
|
|
10
|
+
export class DbxHelpViewPopoverButtonComponent extends AbstractPopoverRefDirective {
|
|
11
|
+
_dbxPopoverService = inject(DbxPopoverService);
|
|
12
|
+
buttonElement = viewChild.required('button', { read: ElementRef });
|
|
13
|
+
config = input();
|
|
14
|
+
_makePopoverRef(origin) {
|
|
15
|
+
if (!origin) {
|
|
16
|
+
throw new Error('Missing origin.');
|
|
17
|
+
}
|
|
18
|
+
const config = this.config();
|
|
19
|
+
return DbxHelpViewPopoverComponent.openPopover(this._dbxPopoverService, {
|
|
20
|
+
origin,
|
|
21
|
+
...config
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
showHelpPopover() {
|
|
25
|
+
const origin = this.buttonElement();
|
|
26
|
+
this.showPopover(origin);
|
|
27
|
+
}
|
|
28
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpViewPopoverButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxHelpViewPopoverButtonComponent, isStandalone: true, selector: "dbx-help-view-popover-button", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
30
|
+
<dbx-icon-button #button (buttonClick)="showHelpPopover()" icon="help_center"></dbx-icon-button>
|
|
31
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxIconButtonComponent, selector: "dbx-icon-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpViewPopoverButtonComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{
|
|
36
|
+
selector: 'dbx-help-view-popover-button',
|
|
37
|
+
template: `
|
|
38
|
+
<dbx-icon-button #button (buttonClick)="showHelpPopover()" icon="help_center"></dbx-icon-button>
|
|
39
|
+
`,
|
|
40
|
+
standalone: true,
|
|
41
|
+
imports: [DbxIconButtonComponent],
|
|
42
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
43
|
+
}]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC52aWV3LnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vaGVscC9oZWxwLnZpZXcucG9wb3Zlci5idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQXlDLE1BQU0sK0JBQStCLENBQUM7O0FBSW5IOztHQUVHO0FBVUgsTUFBTSxPQUFPLGlDQUFrQyxTQUFRLDJCQUE2QztJQUNqRixrQkFBa0IsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV2RCxhQUFhLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBcUIsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkYsTUFBTSxHQUFHLEtBQUssRUFBeUMsQ0FBQztJQUU5QyxlQUFlLENBQUMsTUFBMEI7UUFDM0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFN0IsT0FBTywyQkFBMkIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3RFLE1BQU07WUFDTixHQUFHLE1BQU07U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7d0dBdEJVLGlDQUFpQzs0RkFBakMsaUNBQWlDLG1UQUdzQyxVQUFVLG9FQVZsRjs7R0FFVCw0REFFUyxzQkFBc0I7OzRGQUdyQixpQ0FBaUM7a0JBVDdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFOztHQUVUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RQb3BvdmVyUmVmRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24vcG9wb3Zlci9hYnN0cmFjdC5wb3BvdmVyLnJlZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi9wb3BvdmVyL3BvcG92ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uJztcbmltcG9ydCB7IE5nUG9wb3ZlclJlZiB9IGZyb20gJ25nLW92ZXJsYXktY29udGFpbmVyJztcbmltcG9ydCB7IERieEhlbHBWaWV3UG9wb3ZlckNvbXBvbmVudCwgRGJ4SGVscFZpZXdQb3BvdmVyQ29uZmlnV2l0aG91dE9yaWdpbiB9IGZyb20gJy4vaGVscC52aWV3LnBvcG92ZXIuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgRGJ4SGVscFZpZXdQb3BvdmVyQnV0dG9uQ29uZmlnID0gRGJ4SGVscFZpZXdQb3BvdmVyQ29uZmlnV2l0aG91dE9yaWdpbjtcblxuLyoqXG4gKiBCdXR0b24gY29tcG9uZW50IHRoYXQgb3BlbnMgYSBoZWxwIHBvcG92ZXIgc2hvd2luZyBhY3RpdmUgaGVscCBjb250ZXh0cy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWhlbHAtdmlldy1wb3BvdmVyLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1pY29uLWJ1dHRvbiAjYnV0dG9uIChidXR0b25DbGljayk9XCJzaG93SGVscFBvcG92ZXIoKVwiIGljb249XCJoZWxwX2NlbnRlclwiPjwvZGJ4LWljb24tYnV0dG9uPlxuICBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRGJ4SWNvbkJ1dHRvbkNvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieEhlbHBWaWV3UG9wb3ZlckJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UG9wb3ZlclJlZkRpcmVjdGl2ZTx1bmtub3duLCB1bmtub3duPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RieFBvcG92ZXJTZXJ2aWNlID0gaW5qZWN0KERieFBvcG92ZXJTZXJ2aWNlKTtcblxuICByZWFkb25seSBidXR0b25FbGVtZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPHN0cmluZywgRWxlbWVudFJlZj4oJ2J1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KTtcbiAgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQ8TWF5YmU8RGJ4SGVscFZpZXdQb3BvdmVyQnV0dG9uQ29uZmlnPj4oKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX21ha2VQb3BvdmVyUmVmKG9yaWdpbj86IE1heWJlPEVsZW1lbnRSZWY+KTogTmdQb3BvdmVyUmVmPHVua25vd24sIHVua25vd24+IHtcbiAgICBpZiAoIW9yaWdpbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9yaWdpbi4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xuXG4gICAgcmV0dXJuIERieEhlbHBWaWV3UG9wb3ZlckNvbXBvbmVudC5vcGVuUG9wb3Zlcih0aGlzLl9kYnhQb3BvdmVyU2VydmljZSwge1xuICAgICAgb3JpZ2luLFxuICAgICAgLi4uY29uZmlnXG4gICAgfSk7XG4gIH1cblxuICBzaG93SGVscFBvcG92ZXIoKTogdm9pZCB7XG4gICAgY29uc3Qgb3JpZ2luID0gdGhpcy5idXR0b25FbGVtZW50KCk7XG4gICAgdGhpcy5zaG93UG9wb3ZlcihvcmlnaW4pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
2
|
+
import { AbstractPopoverDirective } from '../../interaction/popover/abstract.popover.directive';
|
|
3
|
+
import { DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective } from '../../interaction';
|
|
4
|
+
import { DbxHelpViewListComponent } from './help.view.list.component';
|
|
5
|
+
import { DbxHelpContextService } from './help.context.service';
|
|
6
|
+
import { DbxInjectionComponent } from '@dereekb/dbx-core';
|
|
7
|
+
import { DbxHelpWidgetService } from './help.widget.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export const DEFAULT_DBX_HELP_VIEW_POPOVER_KEY = 'help';
|
|
10
|
+
/**
|
|
11
|
+
* Popover component for displaying help contexts.
|
|
12
|
+
*/
|
|
13
|
+
export class DbxHelpViewPopoverComponent extends AbstractPopoverDirective {
|
|
14
|
+
_helpContextService = inject(DbxHelpContextService);
|
|
15
|
+
_helpWidgetService = inject(DbxHelpWidgetService);
|
|
16
|
+
helpContextStrings$ = this.popover.data?.helpContextStrings ?? this._helpContextService.activeHelpContextStringsArray$;
|
|
17
|
+
static openPopover(popoverService, config, popoverKey) {
|
|
18
|
+
const { origin, ...data } = config;
|
|
19
|
+
return popoverService.open({
|
|
20
|
+
height: '500px',
|
|
21
|
+
width: '600px',
|
|
22
|
+
key: popoverKey ?? DEFAULT_DBX_HELP_VIEW_POPOVER_KEY,
|
|
23
|
+
origin,
|
|
24
|
+
componentClass: DbxHelpViewPopoverComponent,
|
|
25
|
+
data,
|
|
26
|
+
isResizable: true
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
get config() {
|
|
30
|
+
return this.popover.data;
|
|
31
|
+
}
|
|
32
|
+
icon = this.config.icon ?? 'help';
|
|
33
|
+
header = this.config.header ?? 'Help';
|
|
34
|
+
emptyText = this.config.emptyText ?? 'No help topics available in current context.';
|
|
35
|
+
popoverHeaderConfig = (() => {
|
|
36
|
+
let config = this.config.popoverHeaderConfig;
|
|
37
|
+
if (!config) {
|
|
38
|
+
config = this._helpWidgetService.getPopoverHeaderComponentConfig();
|
|
39
|
+
}
|
|
40
|
+
return config;
|
|
41
|
+
})();
|
|
42
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpViewPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxHelpViewPopoverComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <dbx-injection [config]=\"popoverHeaderConfig\"></dbx-injection>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-help-view-list [helpContextStrings]=\"helpContextStrings$\">\n <p empty>{{ emptyText }}</p>\n </dbx-help-view-list>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n", dependencies: [{ kind: "component", type: DbxPopoverContentComponent, selector: "dbx-popover-content" }, { kind: "component", type: DbxPopoverHeaderComponent, selector: "dbx-popover-header", inputs: ["header", "icon"] }, { kind: "directive", type: DbxPopoverScrollContentDirective, selector: "dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content" }, { kind: "component", type: DbxHelpViewListComponent, selector: "dbx-help-view-list", inputs: ["multi", "helpContextStrings"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxHelpViewPopoverComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{ imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxHelpViewListComponent, DbxInjectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <dbx-injection [config]=\"popoverHeaderConfig\"></dbx-injection>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-help-view-list [helpContextStrings]=\"helpContextStrings$\">\n <p empty>{{ emptyText }}</p>\n </dbx-help-view-list>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n" }]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC52aWV3LnBvcG92ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2V4dGVuc2lvbi9oZWxwL2hlbHAudmlldy5wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9leHRlbnNpb24vaGVscC9oZWxwLnZpZXcucG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUdoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1SCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUl0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQStCLE1BQU0sbUJBQW1CLENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTdELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQztBQXFDeEQ7O0dBRUc7QUFPSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsd0JBQTJEO0lBQ3pGLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3BELGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTFELG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGtCQUFrQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyw4QkFBOEIsQ0FBQztJQUVoSSxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWlDLEVBQUUsTUFBZ0MsRUFBRSxVQUEwQjtRQUNoSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRW5DLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztZQUN6QixNQUFNLEVBQUUsT0FBTztZQUNmLEtBQUssRUFBRSxPQUFPO1lBQ2QsR0FBRyxFQUFFLFVBQVUsSUFBSSxpQ0FBaUM7WUFDcEQsTUFBTTtZQUNOLGNBQWMsRUFBRSwyQkFBMkI7WUFDM0MsSUFBSTtZQUNKLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBZ0MsQ0FBQztJQUN2RCxDQUFDO0lBRVEsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQztJQUNsQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDO0lBQ3RDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSw4Q0FBOEMsQ0FBQztJQUVwRixtQkFBbUIsR0FBdUMsQ0FBQyxHQUFHLEVBQUU7UUFDdkUsSUFBSSxNQUFNLEdBQXVDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7UUFFakYsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywrQkFBK0IsRUFBRSxDQUFDO1FBQ3JFLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsRUFBRSxDQUFDO3dHQXBDTSwyQkFBMkI7NEZBQTNCLDJCQUEyQiwrRkM1RHhDLDBiQVlBLDRDRDRDWSwwQkFBMEIsZ0VBQUUseUJBQXlCLDJGQUFFLGdDQUFnQyw2SEFBRSx3QkFBd0Isd0dBQUUscUJBQXFCOzs0RkFJdkksMkJBQTJCO2tCQU52QyxTQUFTOzhCQUVDLENBQUMsMEJBQTBCLEVBQUUseUJBQXlCLEVBQUUsZ0NBQWdDLEVBQUUsd0JBQXdCLEVBQUUscUJBQXFCLENBQUMsbUJBQ2xJLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXJyYXlPclZhbHVlLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24vcG9wb3Zlci9hYnN0cmFjdC5wb3BvdmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhQb3BvdmVyS2V5IH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24vcG9wb3Zlci9wb3BvdmVyJztcbmltcG9ydCB7IERieFBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24vcG9wb3Zlci9wb3BvdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4UG9wb3ZlckNvbnRlbnRDb21wb25lbnQsIERieFBvcG92ZXJIZWFkZXJDb21wb25lbnQsIERieFBvcG92ZXJTY3JvbGxDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24nO1xuaW1wb3J0IHsgRGJ4SGVscFZpZXdMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9oZWxwLnZpZXcubGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4SGVscENvbnRleHRTdHJpbmcgfSBmcm9tICcuL2hlbHAnO1xuaW1wb3J0IHsgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEhlbHBDb250ZXh0U2VydmljZSB9IGZyb20gJy4vaGVscC5jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50LCBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhIZWxwV2lkZ2V0U2VydmljZSB9IGZyb20gJy4vaGVscC53aWRnZXQuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RCWF9IRUxQX1ZJRVdfUE9QT1ZFUl9LRVkgPSAnaGVscCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4SGVscFZpZXdQb3BvdmVyQ29uZmlnIHtcbiAgLyoqXG4gICAqIEN1c3RvbSBpY29uXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiaGVscFwiXG4gICAqL1xuICByZWFkb25seSBpY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIGhlYWRlciB0ZXh0XG4gICAqXG4gICAqIERlZmF1bHRzIHRvIFwiSGVscFwiXG4gICAqL1xuICByZWFkb25seSBoZWFkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gZW1wdHkgdGV4dCB3aGVuIG5vIGhlbHAgY29udGV4dHMgYXJlIGF2YWlsYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGVtcHR5VGV4dD86IHN0cmluZztcbiAgLyoqXG4gICAqIE9yaWdpbiBlbGVtZW50IHRvIGF0dGFjaCB0aGUgcG9wb3ZlciB0by5cbiAgICovXG4gIHJlYWRvbmx5IG9yaWdpbjogRWxlbWVudFJlZjtcbiAgLyoqXG4gICAqIFNwZWNpZmljIGNvbnRleHRzIHRvIGRpc3BsYXkuIElmIG5vdCBwcm92aWRlZCwgc2hvd3MgYWxsIGFjdGl2ZSBjb250ZXh0cyBmcm9tIHRoZSBEYnhIZWxwQ29udGV4dFNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBoZWxwQ29udGV4dFN0cmluZ3M/OiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZTxBcnJheU9yVmFsdWU8RGJ4SGVscENvbnRleHRTdHJpbmc+Pj47XG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGRlZmF1bHQgcG9wb3ZlciBoZWFkZXIgY29uZmlnLlxuICAgKlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IHBvcG92ZXIgaGVhZGVyIGNvbmZpZyB3aWxsIGJlIHVzZWQgZnJvbSBEYnhIZWxwV2lkZ2V0U2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHBvcG92ZXJIZWFkZXJDb25maWc/OiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc+O1xufVxuXG5leHBvcnQgdHlwZSBEYnhIZWxwVmlld1BvcG92ZXJDb25maWdXaXRob3V0T3JpZ2luID0gT21pdDxEYnhIZWxwVmlld1BvcG92ZXJDb25maWcsICdvcmlnaW4nPjtcblxuLyoqXG4gKiBQb3BvdmVyIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBoZWxwIGNvbnRleHRzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2hlbHAudmlldy5wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0RieFBvcG92ZXJDb250ZW50Q29tcG9uZW50LCBEYnhQb3BvdmVySGVhZGVyQ29tcG9uZW50LCBEYnhQb3BvdmVyU2Nyb2xsQ29udGVudERpcmVjdGl2ZSwgRGJ4SGVscFZpZXdMaXN0Q29tcG9uZW50LCBEYnhJbmplY3Rpb25Db21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhIZWxwVmlld1BvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFBvcG92ZXJEaXJlY3RpdmU8dW5rbm93biwgRGJ4SGVscFZpZXdQb3BvdmVyQ29uZmlnPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hlbHBDb250ZXh0U2VydmljZSA9IGluamVjdChEYnhIZWxwQ29udGV4dFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9oZWxwV2lkZ2V0U2VydmljZSA9IGluamVjdChEYnhIZWxwV2lkZ2V0U2VydmljZSk7XG5cbiAgcmVhZG9ubHkgaGVscENvbnRleHRTdHJpbmdzJCA9IHRoaXMucG9wb3Zlci5kYXRhPy5oZWxwQ29udGV4dFN0cmluZ3MgPz8gdGhpcy5faGVscENvbnRleHRTZXJ2aWNlLmFjdGl2ZUhlbHBDb250ZXh0U3RyaW5nc0FycmF5JDtcblxuICBzdGF0aWMgb3BlblBvcG92ZXIocG9wb3ZlclNlcnZpY2U6IERieFBvcG92ZXJTZXJ2aWNlLCBjb25maWc6IERieEhlbHBWaWV3UG9wb3ZlckNvbmZpZywgcG9wb3ZlcktleT86IERieFBvcG92ZXJLZXkpOiBOZ1BvcG92ZXJSZWYge1xuICAgIGNvbnN0IHsgb3JpZ2luLCAuLi5kYXRhIH0gPSBjb25maWc7XG5cbiAgICByZXR1cm4gcG9wb3ZlclNlcnZpY2Uub3Blbih7XG4gICAgICBoZWlnaHQ6ICc1MDBweCcsXG4gICAgICB3aWR0aDogJzYwMHB4JyxcbiAgICAgIGtleTogcG9wb3ZlcktleSA/PyBERUZBVUxUX0RCWF9IRUxQX1ZJRVdfUE9QT1ZFUl9LRVksXG4gICAgICBvcmlnaW4sXG4gICAgICBjb21wb25lbnRDbGFzczogRGJ4SGVscFZpZXdQb3BvdmVyQ29tcG9uZW50LFxuICAgICAgZGF0YSxcbiAgICAgIGlzUmVzaXphYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBnZXQgY29uZmlnKCk6IERieEhlbHBWaWV3UG9wb3ZlckNvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMucG9wb3Zlci5kYXRhIGFzIERieEhlbHBWaWV3UG9wb3ZlckNvbmZpZztcbiAgfVxuXG4gIHJlYWRvbmx5IGljb24gPSB0aGlzLmNvbmZpZy5pY29uID8/ICdoZWxwJztcbiAgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5jb25maWcuaGVhZGVyID8/ICdIZWxwJztcbiAgcmVhZG9ubHkgZW1wdHlUZXh0ID0gdGhpcy5jb25maWcuZW1wdHlUZXh0ID8/ICdObyBoZWxwIHRvcGljcyBhdmFpbGFibGUgaW4gY3VycmVudCBjb250ZXh0Lic7XG5cbiAgcmVhZG9ubHkgcG9wb3ZlckhlYWRlckNvbmZpZzogTWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPiA9ICgoKSA9PiB7XG4gICAgbGV0IGNvbmZpZzogTWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPiA9IHRoaXMuY29uZmlnLnBvcG92ZXJIZWFkZXJDb25maWc7XG5cbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uZmlnID0gdGhpcy5faGVscFdpZGdldFNlcnZpY2UuZ2V0UG9wb3ZlckhlYWRlckNvbXBvbmVudENvbmZpZygpO1xuICAgIH1cblxuICAgIHJldHVybiBjb25maWc7XG4gIH0pKCk7XG59XG4iLCI8ZGJ4LXBvcG92ZXItY29udGVudD5cbiAgPCEtLSBIZWFkZXIgLS0+XG4gIDxkYngtcG9wb3Zlci1oZWFkZXIgW2ljb25dPVwiaWNvblwiIFtoZWFkZXJdPVwiaGVhZGVyXCI+XG4gICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJwb3BvdmVySGVhZGVyQ29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICA8L2RieC1wb3BvdmVyLWhlYWRlcj5cbiAgPCEtLSBDb250ZW50IC0tPlxuICA8ZGJ4LXBvcG92ZXItc2Nyb2xsLWNvbnRlbnQ+XG4gICAgPGRieC1oZWxwLXZpZXctbGlzdCBbaGVscENvbnRleHRTdHJpbmdzXT1cImhlbHBDb250ZXh0U3RyaW5ncyRcIj5cbiAgICAgIDxwIGVtcHR5Pnt7IGVtcHR5VGV4dCB9fTwvcD5cbiAgICA8L2RieC1oZWxwLXZpZXctbGlzdD5cbiAgPC9kYngtcG9wb3Zlci1zY3JvbGwtY29udGVudD5cbjwvZGJ4LXBvcG92ZXItY29udGVudD5cbiJdfQ==
|