@c8y/ngx-components 1021.63.2 → 1021.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth-configuration/sso-configuration/template-parts/signature-configuration.component.d.ts +7 -2
- package/auth-configuration/sso-configuration/template-parts/signature-configuration.component.d.ts.map +1 -1
- package/core/bottom-drawer/bottom-drawer-ref.d.ts +4 -0
- package/core/bottom-drawer/bottom-drawer-ref.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb-item.component.d.ts +1 -1
- package/core/breadcrumb/breadcrumb-item.component.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb-outlet.component.d.ts +1 -1
- package/core/breadcrumb/breadcrumb-outlet.component.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/core/breadcrumb/breadcrumb.component.d.ts.map +1 -1
- package/core/breadcrumb/breadcrumb.module.d.ts +7 -7
- package/core/breadcrumb/breadcrumb.module.d.ts.map +1 -1
- package/core/common/common.module.d.ts +38 -38
- package/core/common/date-format.service.d.ts +30 -0
- package/core/common/date-format.service.d.ts.map +1 -0
- package/core/common/date.pipe.d.ts +7 -3
- package/core/common/date.pipe.d.ts.map +1 -1
- package/core/common/index.d.ts +1 -0
- package/core/common/index.d.ts.map +1 -1
- package/core/common/outlet.directive.d.ts +1 -1
- package/core/common/outlet.directive.d.ts.map +1 -1
- package/core/common/user-preferences/user-preferences-store-current-user.d.ts +11 -0
- package/core/common/user-preferences/user-preferences-store-current-user.d.ts.map +1 -0
- package/core/common/user-preferences/user-preferences.service.d.ts +40 -1
- package/core/common/user-preferences/user-preferences.service.d.ts.map +1 -1
- package/core/date-picker/date-picker.component.d.ts +3 -1
- package/core/date-picker/date-picker.component.d.ts.map +1 -1
- package/core/date-time-picker/date-time-picker.component.d.ts +6 -3
- package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
- package/core/dynamic-forms/date/date.type.component.d.ts +3 -0
- package/core/dynamic-forms/date/date.type.component.d.ts.map +1 -1
- package/core/plugins/plugins.model.d.ts +1 -0
- package/core/plugins/plugins.model.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts +7 -2
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/core/time-interval/time-interval.component.d.ts +4 -2
- package/core/time-interval/time-interval.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugin-readme.component.d.ts +15 -0
- package/ecosystem/application-plugins/application-plugin-readme.component.d.ts.map +1 -0
- package/ecosystem/application-plugins/application-plugins.component.d.ts +4 -2
- package/ecosystem/application-plugins/application-plugins.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/application-plugins.module.d.ts +4 -3
- package/ecosystem/application-plugins/application-plugins.module.d.ts.map +1 -1
- package/ecosystem/application-plugins/install-plugin.component.d.ts +8 -4
- package/ecosystem/application-plugins/install-plugin.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/plugin-list.component.d.ts +10 -26
- package/ecosystem/application-plugins/plugin-list.component.d.ts.map +1 -1
- package/ecosystem/application-plugins/plugin-list.service.d.ts +27 -0
- package/ecosystem/application-plugins/plugin-list.service.d.ts.map +1 -0
- package/ecosystem/ecosystem.module.d.ts +2 -1
- package/ecosystem/ecosystem.module.d.ts.map +1 -1
- package/ecosystem/packages/package-changelog-tab/package-changelog-tab.component.d.ts +15 -0
- package/ecosystem/packages/package-changelog-tab/package-changelog-tab.component.d.ts.map +1 -0
- package/ecosystem/packages/package-changelog.guard.d.ts +10 -0
- package/ecosystem/packages/package-changelog.guard.d.ts.map +1 -0
- package/ecosystem/packages/package-details/package-details.component.d.ts +7 -9
- package/ecosystem/packages/package-details/package-details.component.d.ts.map +1 -1
- package/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.d.ts +5 -1
- package/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.d.ts.map +1 -1
- package/ecosystem/packages/package-versions/package-contents/packages-contents.component.d.ts +8 -3
- package/ecosystem/packages/package-versions/package-contents/packages-contents.component.d.ts.map +1 -1
- package/ecosystem/packages/package-versions/packages-versions.component.d.ts +9 -2
- package/ecosystem/packages/package-versions/packages-versions.component.d.ts.map +1 -1
- package/ecosystem/shared/index.d.ts +1 -0
- package/ecosystem/shared/index.d.ts.map +1 -1
- package/ecosystem/shared/package-changelog/package-changelog.component.d.ts +24 -0
- package/ecosystem/shared/package-changelog/package-changelog.component.d.ts.map +1 -0
- package/ecosystem/shared/shared-ecosystem.module.d.ts +2 -1
- package/ecosystem/shared/shared-ecosystem.module.d.ts.map +1 -1
- package/esm2022/auth-configuration/sso-configuration/template-parts/signature-configuration.component.mjs +11 -7
- package/esm2022/core/bottom-drawer/bottom-drawer-ref.mjs +9 -3
- package/esm2022/core/breadcrumb/breadcrumb-item.component.mjs +3 -3
- package/esm2022/core/breadcrumb/breadcrumb-outlet.component.mjs +19 -9
- package/esm2022/core/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/core/breadcrumb/breadcrumb.module.mjs +16 -5
- package/esm2022/core/common/common.module.mjs +6 -6
- package/esm2022/core/common/date-format.service.mjs +81 -0
- package/esm2022/core/common/date.pipe.mjs +29 -6
- package/esm2022/core/common/index.mjs +2 -1
- package/esm2022/core/common/outlet.directive.mjs +4 -3
- package/esm2022/core/common/user-preferences/user-preferences-store-current-user.mjs +22 -0
- package/esm2022/core/common/user-preferences/user-preferences.service.mjs +106 -16
- package/esm2022/core/date-picker/date-picker.component.mjs +11 -4
- package/esm2022/core/date-time-picker/date-time-picker.component.mjs +20 -11
- package/esm2022/core/dynamic-forms/date/date.type.component.mjs +12 -4
- package/esm2022/core/plugins/plugins.model.mjs +1 -1
- package/esm2022/core/plugins/plugins.service.mjs +31 -5
- package/esm2022/core/time-interval/time-interval.component.mjs +9 -2
- package/esm2022/ecosystem/application-plugins/application-plugin-readme.component.mjs +26 -0
- package/esm2022/ecosystem/application-plugins/application-plugins.component.mjs +29 -14
- package/esm2022/ecosystem/application-plugins/application-plugins.module.mjs +6 -3
- package/esm2022/ecosystem/application-plugins/install-plugin.component.mjs +21 -15
- package/esm2022/ecosystem/application-plugins/plugin-list-item.component.mjs +3 -3
- package/esm2022/ecosystem/application-plugins/plugin-list.component.mjs +26 -202
- package/esm2022/ecosystem/application-plugins/plugin-list.service.mjs +200 -0
- package/esm2022/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +3 -3
- package/esm2022/ecosystem/application-properties/update-application-modal/update-application-modal.component.mjs +1 -1
- package/esm2022/ecosystem/ecosystem.module.mjs +21 -5
- package/esm2022/ecosystem/packages/package-changelog-tab/package-changelog-tab.component.mjs +33 -0
- package/esm2022/ecosystem/packages/package-changelog.guard.mjs +22 -0
- package/esm2022/ecosystem/packages/package-details/package-details.component.mjs +25 -44
- package/esm2022/ecosystem/packages/package-versions/package-contents/contents-plugins/contents-plugins.component.mjs +14 -4
- package/esm2022/ecosystem/packages/package-versions/package-contents/packages-contents.component.mjs +27 -8
- package/esm2022/ecosystem/packages/package-versions/packages-versions.component.mjs +22 -8
- package/esm2022/ecosystem/shared/index.mjs +2 -1
- package/esm2022/ecosystem/shared/list-filters/list-filters.component.mjs +3 -3
- package/esm2022/ecosystem/shared/package-changelog/package-changelog.component.mjs +82 -0
- package/esm2022/ecosystem/shared/package-version-select/package-version-select.component.mjs +3 -3
- package/esm2022/ecosystem/shared/shared-ecosystem.module.mjs +12 -6
- package/esm2022/operations/bulk-operation-scheduler/operation-scheduler.component.mjs +9 -7
- package/esm2022/operations/bulk-operations-list/bulk-operations-list.component.mjs +1 -1
- package/esm2022/upgrade/ng1/downgraded.services.mjs +3 -2
- package/esm2022/upgrade/ng1/index.mjs +3 -2
- package/esm2022/widgets/cockpit/index.mjs +3 -1
- package/esm2022/widgets/cockpit-exports/index.mjs +8 -1
- package/esm2022/widgets/definitions/index.mjs +2 -1
- package/esm2022/widgets/definitions/radial-gauge/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +5 -0
- package/esm2022/widgets/definitions/radial-gauge/index.mjs +33 -0
- package/esm2022/widgets/implementations/info-gauge/index.mjs +2 -2
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.mjs +295 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.mjs +141 -11
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.mjs +67 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.mjs +34 -6
- package/esm2022/widgets/implementations/info-gauge/info-gauge-widget.module.mjs +9 -4
- package/esm2022/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.mjs +97 -0
- package/esm2022/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.mjs +369 -0
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +9 -5
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +209 -142
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +96 -13
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +336 -186
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -5
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +3 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs +7 -0
- package/fesm2022/c8y-ngx-components-widgets-cockpit-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs +2 -0
- package/fesm2022/c8y-ngx-components-widgets-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +40 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs +1 -0
- package/fesm2022/c8y-ngx-components-widgets-definitions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +991 -28
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +833 -550
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +45 -6
- package/locales/es.po +45 -6
- package/locales/fr.po +45 -6
- package/locales/ja_JP.po +45 -6
- package/locales/ko.po +45 -6
- package/locales/locales.pot +73 -10
- package/locales/nl.po +45 -6
- package/locales/pl.po +45 -6
- package/locales/pt_BR.po +45 -6
- package/locales/zh_CN.po +45 -6
- package/locales/zh_TW.po +45 -6
- package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts +4 -2
- package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/upgrade/ng1/downgraded.services.d.ts +1 -0
- package/upgrade/ng1/downgraded.services.d.ts.map +1 -1
- package/upgrade/ng1/index.d.ts.map +1 -1
- package/widgets/cockpit/index.d.ts +29 -0
- package/widgets/cockpit/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +6 -0
- package/widgets/cockpit-exports/index.d.ts.map +1 -1
- package/widgets/definitions/index.d.ts +1 -0
- package/widgets/definitions/index.d.ts.map +1 -1
- package/widgets/definitions/radial-gauge/c8y-ngx-components-widgets-definitions-radial-gauge.d.ts.map +1 -0
- package/widgets/definitions/radial-gauge/index.d.ts +33 -0
- package/widgets/definitions/radial-gauge/index.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/index.d.ts +1 -1
- package/widgets/implementations/info-gauge/index.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.d.ts +339 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/gauge.model.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts +27 -7
- package/widgets/implementations/info-gauge/info-gauge-widget-config/info-gauge-widget-config.component.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.d.ts +33 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-config/preset-preview/preset-preview.component.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts +7 -3
- package/widgets/implementations/info-gauge/info-gauge-widget-view/info-gauge-widget-view.component.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/info-gauge-widget.module.d.ts +2 -1
- package/widgets/implementations/info-gauge/info-gauge-widget.module.d.ts.map +1 -1
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.d.ts +37 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.component.d.ts.map +1 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.d.ts +146 -0
- package/widgets/implementations/info-gauge/radial-gauge/radial-gauge.service.d.ts.map +1 -0
- package/esm2022/widgets/implementations/info-gauge/info-gauge.model.mjs +0 -2
- package/widgets/implementations/info-gauge/info-gauge.model.d.ts +0 -7
- package/widgets/implementations/info-gauge/info-gauge.model.d.ts.map +0 -1
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { AsyncPipe, NgIf } from '@angular/common';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { C8yTranslatePipe, EmptyStateComponent, LoadingComponent, MarkdownToHtmlPipe, PluginsService } from '@c8y/ngx-components';
|
|
4
|
+
import { lt } from 'semver';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Component to display the change log of a package.
|
|
8
|
+
* It fetches the change log file from the package's repository and displays it.
|
|
9
|
+
* It can fetch the change log for the latest version or a specific version if provided.
|
|
10
|
+
* It can also compare the change log with the previous version if provided and display the difference between the two versions.
|
|
11
|
+
*/
|
|
12
|
+
export class PackageChangelogComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.selectedVersion = 'latest';
|
|
15
|
+
this.previousVersion = null;
|
|
16
|
+
this.isLoading = true;
|
|
17
|
+
this.pluginsService = inject(PluginsService);
|
|
18
|
+
}
|
|
19
|
+
async ngOnChanges() {
|
|
20
|
+
if (!this.package) {
|
|
21
|
+
this.changelog = '';
|
|
22
|
+
this.isLoading = false;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.isLoading = true;
|
|
26
|
+
this.changelog = await this.getChangeLog();
|
|
27
|
+
this.isLoading = false;
|
|
28
|
+
}
|
|
29
|
+
async getChangeLog() {
|
|
30
|
+
if (this.selectedVersion === this.previousVersion || !this.selectedVersion) {
|
|
31
|
+
return '';
|
|
32
|
+
}
|
|
33
|
+
const selectedVersionChangelogUrl = this.baseUrlForVersion(this.selectedVersion);
|
|
34
|
+
this.baseUrl = selectedVersionChangelogUrl;
|
|
35
|
+
if (!this.previousVersion) {
|
|
36
|
+
return await this.pluginsService.getChangelogFileContent(selectedVersionChangelogUrl);
|
|
37
|
+
}
|
|
38
|
+
const previousVersionChangelogUrl = this.baseUrlForVersion(this.previousVersion);
|
|
39
|
+
const changelogsPromises = [
|
|
40
|
+
this.pluginsService.getChangelogFileContent(previousVersionChangelogUrl),
|
|
41
|
+
this.pluginsService.getChangelogFileContent(selectedVersionChangelogUrl)
|
|
42
|
+
];
|
|
43
|
+
const [previousVersionChangelog, selectedVersionChangelog] = await Promise.all(changelogsPromises);
|
|
44
|
+
// Determine if this is a downgrade using semver comparison
|
|
45
|
+
let isDowngrade;
|
|
46
|
+
try {
|
|
47
|
+
isDowngrade = lt(this.selectedVersion, this.previousVersion);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
isDowngrade = false;
|
|
51
|
+
}
|
|
52
|
+
if (isDowngrade) {
|
|
53
|
+
return previousVersionChangelog.replace(selectedVersionChangelog, '');
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
return selectedVersionChangelog.replace(previousVersionChangelog, '');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
baseUrlForVersion(version) {
|
|
60
|
+
return `/apps/${this.package.contextPath}@${version}/`;
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PackageChangelogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PackageChangelogComponent, isStandalone: true, selector: "c8y-contents-changelog", inputs: { package: "package", selectedVersion: "selectedVersion", previousVersion: "previousVersion" }, usesOnChanges: true, ngImport: i0, template: "<c8y-loading *ngIf=\"isLoading\"></c8y-loading>\n\n<ng-container *ngIf=\"!isLoading\">\n <div\n *ngIf=\"changelog\"\n class=\"markdown-content markdown-content--to-h3\"\n [innerHTML]=\"changelog | markdownToHtml: { baseUrl } | async\"\n ></div>\n\n <c8y-ui-empty-state\n [icon]=\"'user-manual'\"\n [title]=\"'No CHANGELOG.md found for package version' | translate\"\n [subtitle]=\"\n 'To view the contents of "CHANGELOG", add the file "CHANGELOG.md" to the package.'\n | translate\n \"\n *ngIf=\"!changelog\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n</ng-container>\n", dependencies: [{ kind: "component", type: LoadingComponent, selector: "c8y-loading", inputs: ["layout", "progress", "message"] }, { kind: "pipe", type: MarkdownToHtmlPipe, name: "markdownToHtml" }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PackageChangelogComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: 'c8y-contents-changelog', standalone: true, imports: [
|
|
68
|
+
LoadingComponent,
|
|
69
|
+
MarkdownToHtmlPipe,
|
|
70
|
+
EmptyStateComponent,
|
|
71
|
+
AsyncPipe,
|
|
72
|
+
C8yTranslatePipe,
|
|
73
|
+
NgIf
|
|
74
|
+
], template: "<c8y-loading *ngIf=\"isLoading\"></c8y-loading>\n\n<ng-container *ngIf=\"!isLoading\">\n <div\n *ngIf=\"changelog\"\n class=\"markdown-content markdown-content--to-h3\"\n [innerHTML]=\"changelog | markdownToHtml: { baseUrl } | async\"\n ></div>\n\n <c8y-ui-empty-state\n [icon]=\"'user-manual'\"\n [title]=\"'No CHANGELOG.md found for package version' | translate\"\n [subtitle]=\"\n 'To view the contents of "CHANGELOG", add the file "CHANGELOG.md" to the package.'\n | translate\n \"\n *ngIf=\"!changelog\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n</ng-container>\n" }]
|
|
75
|
+
}], propDecorators: { package: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], selectedVersion: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], previousVersion: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}] } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1jaGFuZ2Vsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9wYWNrYWdlLWNoYW5nZWxvZy9wYWNrYWdlLWNoYW5nZWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3BhY2thZ2UtY2hhbmdlbG9nL3BhY2thZ2UtY2hhbmdlbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsY0FBYyxFQUNmLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFFNUI7Ozs7O0dBS0c7QUFjSCxNQUFNLE9BQU8seUJBQXlCO0lBYnRDO1FBZVcsb0JBQWUsR0FBRyxRQUFRLENBQUM7UUFDM0Isb0JBQWUsR0FBa0IsSUFBSSxDQUFDO1FBRy9DLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFVCxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQXFEakQ7SUFuREMsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRU8sS0FBSyxDQUFDLFlBQVk7UUFDeEIsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0UsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxPQUFPLEdBQUcsMkJBQTJCLENBQUM7UUFFM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7UUFFRCxNQUFNLDJCQUEyQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFakYsTUFBTSxrQkFBa0IsR0FBRztZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLHVCQUF1QixDQUFDLDJCQUEyQixDQUFDO1lBQ3hFLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsMkJBQTJCLENBQUM7U0FDekUsQ0FBQztRQUVGLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxHQUN4RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUV4QywyREFBMkQ7UUFDM0QsSUFBSSxXQUFvQixDQUFDO1FBQ3pCLElBQUksQ0FBQztZQUNILFdBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsT0FBTyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWU7UUFDdkMsT0FBTyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sR0FBRyxDQUFDO0lBQ3pELENBQUM7K0dBNURVLHlCQUF5QjttR0FBekIseUJBQXlCLCtNQy9CdEMsaW9CQW9CQSw0Q0RHSSxnQkFBZ0IsOEZBQ2hCLGtCQUFrQix1REFDbEIsbUJBQW1CLCtHQUNuQixTQUFTLHlDQUNULGdCQUFnQixrREFDaEIsSUFBSTs7NEZBR0sseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNFLHdCQUF3QixjQUV0QixJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLElBQUk7cUJBQ0w7OEJBR1EsT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQzh5VHJhbnNsYXRlUGlwZSxcbiAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgTG9hZGluZ0NvbXBvbmVudCxcbiAgTWFya2Rvd25Ub0h0bWxQaXBlLFxuICBQbHVnaW5zU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGx0IH0gZnJvbSAnc2VtdmVyJztcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gZGlzcGxheSB0aGUgY2hhbmdlIGxvZyBvZiBhIHBhY2thZ2UuXG4gKiBJdCBmZXRjaGVzIHRoZSBjaGFuZ2UgbG9nIGZpbGUgZnJvbSB0aGUgcGFja2FnZSdzIHJlcG9zaXRvcnkgYW5kIGRpc3BsYXlzIGl0LlxuICogSXQgY2FuIGZldGNoIHRoZSBjaGFuZ2UgbG9nIGZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb3IgYSBzcGVjaWZpYyB2ZXJzaW9uIGlmIHByb3ZpZGVkLlxuICogSXQgY2FuIGFsc28gY29tcGFyZSB0aGUgY2hhbmdlIGxvZyB3aXRoIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGlmIHByb3ZpZGVkIGFuZCBkaXNwbGF5IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byB2ZXJzaW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWNvbnRlbnRzLWNoYW5nZWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWNrYWdlLWNoYW5nZWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxuICAgIE1hcmtkb3duVG9IdG1sUGlwZSxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBDOHlUcmFuc2xhdGVQaXBlLFxuICAgIE5nSWZcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQYWNrYWdlQ2hhbmdlbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgcGFja2FnZTogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSBzZWxlY3RlZFZlcnNpb24gPSAnbGF0ZXN0JztcbiAgQElucHV0KCkgcHJldmlvdXNWZXJzaW9uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgY2hhbmdlbG9nOiBzdHJpbmc7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgaXNMb2FkaW5nID0gdHJ1ZTtcblxuICBwcml2YXRlIHBsdWdpbnNTZXJ2aWNlID0gaW5qZWN0KFBsdWdpbnNTZXJ2aWNlKTtcblxuICBhc3luYyBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAoIXRoaXMucGFja2FnZSkge1xuICAgICAgdGhpcy5jaGFuZ2Vsb2cgPSAnJztcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmNoYW5nZWxvZyA9IGF3YWl0IHRoaXMuZ2V0Q2hhbmdlTG9nKCk7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0Q2hhbmdlTG9nKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRWZXJzaW9uID09PSB0aGlzLnByZXZpb3VzVmVyc2lvbiB8fCAhdGhpcy5zZWxlY3RlZFZlcnNpb24pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZFZlcnNpb25DaGFuZ2Vsb2dVcmwgPSB0aGlzLmJhc2VVcmxGb3JWZXJzaW9uKHRoaXMuc2VsZWN0ZWRWZXJzaW9uKTtcbiAgICB0aGlzLmJhc2VVcmwgPSBzZWxlY3RlZFZlcnNpb25DaGFuZ2Vsb2dVcmw7XG5cbiAgICBpZiAoIXRoaXMucHJldmlvdXNWZXJzaW9uKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wbHVnaW5zU2VydmljZS5nZXRDaGFuZ2Vsb2dGaWxlQ29udGVudChzZWxlY3RlZFZlcnNpb25DaGFuZ2Vsb2dVcmwpO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXZpb3VzVmVyc2lvbkNoYW5nZWxvZ1VybCA9IHRoaXMuYmFzZVVybEZvclZlcnNpb24odGhpcy5wcmV2aW91c1ZlcnNpb24pO1xuXG4gICAgY29uc3QgY2hhbmdlbG9nc1Byb21pc2VzID0gW1xuICAgICAgdGhpcy5wbHVnaW5zU2VydmljZS5nZXRDaGFuZ2Vsb2dGaWxlQ29udGVudChwcmV2aW91c1ZlcnNpb25DaGFuZ2Vsb2dVcmwpLFxuICAgICAgdGhpcy5wbHVnaW5zU2VydmljZS5nZXRDaGFuZ2Vsb2dGaWxlQ29udGVudChzZWxlY3RlZFZlcnNpb25DaGFuZ2Vsb2dVcmwpXG4gICAgXTtcblxuICAgIGNvbnN0IFtwcmV2aW91c1ZlcnNpb25DaGFuZ2Vsb2csIHNlbGVjdGVkVmVyc2lvbkNoYW5nZWxvZ10gPVxuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoY2hhbmdlbG9nc1Byb21pc2VzKTtcblxuICAgIC8vIERldGVybWluZSBpZiB0aGlzIGlzIGEgZG93bmdyYWRlIHVzaW5nIHNlbXZlciBjb21wYXJpc29uXG4gICAgbGV0IGlzRG93bmdyYWRlOiBib29sZWFuO1xuICAgIHRyeSB7XG4gICAgICBpc0Rvd25ncmFkZSA9IGx0KHRoaXMuc2VsZWN0ZWRWZXJzaW9uLCB0aGlzLnByZXZpb3VzVmVyc2lvbik7XG4gICAgfSBjYXRjaCB7XG4gICAgICBpc0Rvd25ncmFkZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChpc0Rvd25ncmFkZSkge1xuICAgICAgcmV0dXJuIHByZXZpb3VzVmVyc2lvbkNoYW5nZWxvZy5yZXBsYWNlKHNlbGVjdGVkVmVyc2lvbkNoYW5nZWxvZywgJycpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gc2VsZWN0ZWRWZXJzaW9uQ2hhbmdlbG9nLnJlcGxhY2UocHJldmlvdXNWZXJzaW9uQ2hhbmdlbG9nLCAnJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBiYXNlVXJsRm9yVmVyc2lvbih2ZXJzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgL2FwcHMvJHt0aGlzLnBhY2thZ2UuY29udGV4dFBhdGh9QCR7dmVyc2lvbn0vYDtcbiAgfVxufVxuIiwiPGM4eS1sb2FkaW5nICpuZ0lmPVwiaXNMb2FkaW5nXCI+PC9jOHktbG9hZGluZz5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiY2hhbmdlbG9nXCJcbiAgICBjbGFzcz1cIm1hcmtkb3duLWNvbnRlbnQgbWFya2Rvd24tY29udGVudC0tdG8taDNcIlxuICAgIFtpbm5lckhUTUxdPVwiY2hhbmdlbG9nIHwgbWFya2Rvd25Ub0h0bWw6IHsgYmFzZVVybCB9IHwgYXN5bmNcIlxuICA+PC9kaXY+XG5cbiAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgIFtpY29uXT1cIid1c2VyLW1hbnVhbCdcIlxuICAgIFt0aXRsZV09XCInTm8gQ0hBTkdFTE9HLm1kIGZvdW5kIGZvciBwYWNrYWdlIHZlcnNpb24nIHwgdHJhbnNsYXRlXCJcbiAgICBbc3VidGl0bGVdPVwiXG4gICAgICAnVG8gdmlldyB0aGUgY29udGVudHMgb2YgJnF1b3Q7Q0hBTkdFTE9HJnF1b3Q7LCBhZGQgdGhlIGZpbGUgJnF1b3Q7Q0hBTkdFTE9HLm1kJnF1b3Q7IHRvIHRoZSBwYWNrYWdlLidcbiAgICAgICAgfCB0cmFuc2xhdGVcbiAgICBcIlxuICAgICpuZ0lmPVwiIWNoYW5nZWxvZ1wiXG4gICAgW2hvcml6b250YWxdPVwidHJ1ZVwiXG4gID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
package/esm2022/ecosystem/shared/package-version-select/package-version-select.component.mjs
CHANGED
|
@@ -91,7 +91,7 @@ export class PackageVersionSelectComponent {
|
|
|
91
91
|
multi: true,
|
|
92
92
|
useExisting: forwardRef(() => PackageVersionSelectComponent)
|
|
93
93
|
}
|
|
94
|
-
], usesOnChanges: true, ngImport: i0, template: "<label for=\"packageVersion\">{{ label | translate }}</label>\n<c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"selectedVersion\"\n name=\"packageVersion\"\n (onSearch)=\"onInput$.next($event)\"\n placeholder=\"{{ 'Select below or start typing' | translate }}\"\n [displayProperty]=\"'version'\"\n [required]=\"true\"\n [disabled]=\"isDisabled\"\n [hideNew]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *c8yFor=\"let appVersion of versions$; loadMore: 'auto'; notFound: notFoundTemplate\"\n (click)=\"onVersionSelect(appVersion)\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n [active]=\"selectedVersion === appVersion\"\n >\n <c8y-li-icon icon=\"big-parcel\"></c8y-li-icon>\n <
|
|
94
|
+
], usesOnChanges: true, ngImport: i0, template: "<label for=\"packageVersion\">{{ label | translate }}</label>\n<c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"selectedVersion\"\n name=\"packageVersion\"\n (onSearch)=\"onInput$.next($event)\"\n placeholder=\"{{ 'Select below or start typing' | translate }}\"\n [displayProperty]=\"'version'\"\n [required]=\"true\"\n [disabled]=\"isDisabled\"\n [hideNew]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *c8yFor=\"let appVersion of versions$; loadMore: 'auto'; notFound: notFoundTemplate\"\n (click)=\"onVersionSelect(appVersion)\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n [active]=\"selectedVersion === appVersion\"\n >\n <c8y-li-icon icon=\"big-parcel\"></c8y-li-icon>\n <c8y-highlight\n [text]=\"appVersion.version || '--'\"\n [pattern]=\"onInput$ | async\"\n ></c8y-highlight>\n <span>\n <span *ngFor=\"let tag of appVersion.tags\" class=\"label label-info m-l-4\">\n {{ tag }}\n </span>\n </span>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li\n class=\"bg-gray-lighter p-8\"\n *ngIf=\"(onInput$ | async)?.length > 0 && (versions$ | async)?.data?.length === 0\"\n >\n <span translate>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n</c8y-form-group>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i2.HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: i2.TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected", "highlightFirstItem"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
|
|
95
95
|
}
|
|
96
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PackageVersionSelectComponent, decorators: [{
|
|
97
97
|
type: Component,
|
|
@@ -101,7 +101,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
101
101
|
multi: true,
|
|
102
102
|
useExisting: forwardRef(() => PackageVersionSelectComponent)
|
|
103
103
|
}
|
|
104
|
-
], template: "<label for=\"packageVersion\">{{ label | translate }}</label>\n<c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"selectedVersion\"\n name=\"packageVersion\"\n (onSearch)=\"onInput$.next($event)\"\n placeholder=\"{{ 'Select below or start typing' | translate }}\"\n [displayProperty]=\"'version'\"\n [required]=\"true\"\n [disabled]=\"isDisabled\"\n [hideNew]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *c8yFor=\"let appVersion of versions$; loadMore: 'auto'; notFound: notFoundTemplate\"\n (click)=\"onVersionSelect(appVersion)\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n [active]=\"selectedVersion === appVersion\"\n >\n <c8y-li-icon icon=\"big-parcel\"></c8y-li-icon>\n <
|
|
104
|
+
], template: "<label for=\"packageVersion\">{{ label | translate }}</label>\n<c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"selectedVersion\"\n name=\"packageVersion\"\n (onSearch)=\"onInput$.next($event)\"\n placeholder=\"{{ 'Select below or start typing' | translate }}\"\n [displayProperty]=\"'version'\"\n [required]=\"true\"\n [disabled]=\"isDisabled\"\n [hideNew]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *c8yFor=\"let appVersion of versions$; loadMore: 'auto'; notFound: notFoundTemplate\"\n (click)=\"onVersionSelect(appVersion)\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n [active]=\"selectedVersion === appVersion\"\n >\n <c8y-li-icon icon=\"big-parcel\"></c8y-li-icon>\n <c8y-highlight\n [text]=\"appVersion.version || '--'\"\n [pattern]=\"onInput$ | async\"\n ></c8y-highlight>\n <span>\n <span *ngFor=\"let tag of appVersion.tags\" class=\"label label-info m-l-4\">\n {{ tag }}\n </span>\n </span>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li\n class=\"bg-gray-lighter p-8\"\n *ngIf=\"(onInput$ | async)?.length > 0 && (versions$ | async)?.data?.length === 0\"\n >\n <span translate>No match found.</span>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n</c8y-form-group>\n" }]
|
|
105
105
|
}], ctorParameters: () => [{ type: i1.ApplicationService }, { type: i2.PluginsService }], propDecorators: { label: [{
|
|
106
106
|
type: Input
|
|
107
107
|
}], packageContextPath: [{
|
|
@@ -109,4 +109,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
109
109
|
}], packageId: [{
|
|
110
110
|
type: Input
|
|
111
111
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS12ZXJzaW9uLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3BhY2thZ2UtdmVyc2lvbi1zZWxlY3QvcGFja2FnZS12ZXJzaW9uLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3BhY2thZ2UtdmVyc2lvbi1zZWxlY3QvcGFja2FnZS12ZXJzaW9uLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQW9DLE1BQU0sYUFBYSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBYXJFLE1BQU0sT0FBTyw2QkFBNkI7SUFheEMsWUFDVSxrQkFBc0MsRUFDdEMsY0FBOEI7UUFEOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFkL0IsVUFBSyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBSS9DLGFBQVEsR0FBNEIsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFcEUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNYLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFD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QXFCO1lBQzNCLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUNsQixFQUNELE1BQU0sQ0FDUCxDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFELENBQUM7K0dBckhVLDZCQUE2QjttR0FBN0IsNkJBQTZCLG1KQVI3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDN0Q7U0FDRiwrQ0NoQkgsd21EQWtEQTs7NEZEaENhLDZCQUE2QjtrQkFYekMsU0FBUzsrQkFDRSw0QkFBNEIsYUFFM0I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsOEJBQThCLENBQUM7eUJBQzdEO3FCQUNGO29IQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25DaGFuZ2VzLCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBJQXBwbGljYXRpb25WZXJzaW9uLCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldHRleHQsIFBsdWdpbnNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXBhY2thZ2UtdmVyc2lvbi1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFja2FnZS12ZXJzaW9uLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYWNrYWdlVmVyc2lvblNlbGVjdENvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFja2FnZVZlcnNpb25TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbGFiZWwgPSBnZXR0ZXh0KCdVc2UgcGx1Z2luIHZlcnNpb24nKTtcbiAgQElucHV0KCkgcGFja2FnZUNvbnRleHRQYXRoOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhY2thZ2VJZDogc3RyaW5nIHwgbnVtYmVyO1xuICBzZWxlY3RlZFZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb247XG4gIG9uSW5wdXQkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHZlcnNpb25zJDogT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxJQXBwbGljYXRpb25WZXJzaW9uPj47XG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBwYWNrYWdlQ29udGV4dFBhdGgkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIHByaXZhdGUgcGFja2FnZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVtYmVyPignJyk7XG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2ZXJzaW9uOiBJQXBwbGljYXRpb25WZXJzaW9uKSA9PiB2b2lkO1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGx1Z2luc1NlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IHBhY2thZ2VJZEZyb21Db250ZXh0UGF0aCQgPSB0aGlzLnBhY2thZ2VDb250ZXh0UGF0aCQucGlwZShcbiAgICAgIGZpbHRlcihwYXRoID0+ICEhcGF0aCksXG4gICAgICBzd2l0Y2hNYXAocGF0aCA9PiB0aGlzLmdldFBhY2thZ2VJZEZvckNvbnRleHRQYXRoKHBhdGgpKVxuICAgICk7XG4gICAgY29uc3QgcGFja2FnZUlkJCA9IG1lcmdlKHBhY2thZ2VJZEZyb21Db250ZXh0UGF0aCQsIHRoaXMucGFja2FnZUlkJC5waXBlKGZpbHRlcihpZCA9PiAhIWlkKSkpO1xuICAgIGNvbnN0IHBhY2thZ2VWZXJzaW9ucyQgPSBwYWNrYWdlSWQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoaWQgPT4gdGhpcy5nZXRQYWNrYWdlVmVyc2lvbnMoaWQpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgICB0aGlzLnZlcnNpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3BhY2thZ2VWZXJzaW9ucyQsIHRoaXMub25JbnB1dCQuYXNPYnNlcnZhYmxlKCldKS5waXBlKFxuICAgICAgbWFwKChbcmVzdWx0TGlzdCwgZmlsdGVyU3RyXSkgPT4gdGhpcy5hcHBseUZpbHRlclRvUmVzdWx0TGlzdChyZXN1bHRMaXN0LCBmaWx0ZXJTdHIpKVxuICAgICk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFZlcnNpb24gPSBvYmo7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnBhY2thZ2VDb250ZXh0UGF0aCkge1xuICAgICAgdGhpcy5wYWNrYWdlQ29udGV4dFBhdGgkLm5leHQodGhpcy5wYWNrYWdlQ29udGV4dFBhdGgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnBhY2thZ2VJZCkge1xuICAgICAgdGhpcy5wYWNrYWdlSWQkLm5leHQodGhpcy5wYWNrYWdlSWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFBhY2thZ2VWZXJzaW9ucyhwYWNrYWdlSWQ6IHN0cmluZyB8IG51bWJlcik6IFByb21pc2U8SVJlc3VsdExpc3Q8SUFwcGxpY2F0aW9uVmVyc2lvbj4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UubGlzdFZlcnNpb25zKHBhY2thZ2VJZCk7XG4gIH1cblxuICBvblZlcnNpb25TZWxlY3QodmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbikge1xuICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2ZXJzaW9uKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UGFja2FnZUlkRm9yQ29udGV4dFBhdGgoY29udGV4dFBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyPiB7XG4gICAgY29uc3QgeyBkYXRhOiBhcHBsaWNhdGlvbiB9ID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZ2V0TWFuaWZlc3RPZkNvbnRleHRQYXRoKFxuICAgICAgY29udGV4dFBhdGhcbiAgICApO1xuICAgIGNvbnN0IHBhY2thZ2VBcHBJZCA9IGFwcGxpY2F0aW9uLmlkO1xuICAgIHJldHVybiBwYWNrYWdlQXBwSWQ7XG4gIH1cblxuICBwcml2YXRlIHNldEluaXRpYWxWYWx1ZUZvcklucHV0KHZlcnNpb25zOiBJQXBwbGljYXRpb25WZXJzaW9uW10pIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRWZXJzaW9uICYmIHZlcnNpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGxhdGVzdCA9IHZlcnNpb25zLmZpbmQodiA9PiB2LnRhZ3MuaW5jbHVkZXMoJ2xhdGVzdCcpKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gbGF0ZXN0IHx8IHZlcnNpb25zWzBdO1xuICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkVmVyc2lvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJBcHBWZXJzaW9ucyhcbiAgICBhcHBWZXJzaW9uczogSUFwcGxpY2F0aW9uVmVyc2lvbltdLFxuICAgIGZpbHRlclN0cjogc3RyaW5nXG4gICk6IElBcHBsaWNhdGlvblZlcnNpb25bXSB7XG4gICAgcmV0dXJuIGZpbHRlclN0ciA9PT0gJydcbiAgICAgID8gYXBwVmVyc2lvbnNcbiAgICAgIDogYXBwVmVyc2lvbnMuZmlsdGVyKFxuICAgICAgICAgIGFwcFZlcnNpb24gPT5cbiAgICAgICAgICAgIGFwcFZlcnNpb24udmVyc2lvbi5pbmNsdWRlcyhmaWx0ZXJTdHIpIHx8XG4gICAgICAgICAgICBhcHBWZXJzaW9uLnRhZ3M/LnNvbWUodGFnID0+IHRhZy5pbmNsdWRlcyhmaWx0ZXJTdHIpKVxuICAgICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZpbHRlclRvUmVzdWx0TGlzdChcbiAgICByZXN1bHRMaXN0OiBJUmVzdWx0TGlzdDxJQXBwbGljYXRpb25WZXJzaW9uPixcbiAgICBmaWx0ZXJTdHI6IHN0cmluZ1xuICApOiBJUmVzdWx0TGlzdDxJQXBwbGljYXRpb25WZXJzaW9uPiB7XG4gICAgY29uc3QgdmVyc2lvbnNGaWx0ZXJlZEJ5U3RyID0gdGhpcy5maWx0ZXJBcHBWZXJzaW9ucyhyZXN1bHRMaXN0LmRhdGEsIGZpbHRlclN0cik7XG4gICAgY29uc3Qgc29ydGVkQXBwVmVyc2lvbnMgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLnNvcnRWZXJzaW9ucyhcbiAgICAgIHtcbiAgICAgICAgbGlzdDogdmVyc2lvbnNGaWx0ZXJlZEJ5U3RyLFxuICAgICAgICBwYXRoOiBbJ3ZlcnNpb24nXVxuICAgICAgfSxcbiAgICAgICdkZXNjJ1xuICAgICk7XG5cbiAgICB0aGlzLnNldEluaXRpYWxWYWx1ZUZvcklucHV0KHNvcnRlZEFwcFZlcnNpb25zKTtcbiAgICByZXR1cm4geyBkYXRhOiBzb3J0ZWRBcHBWZXJzaW9ucywgcmVzOiByZXN1bHRMaXN0LnJlcyB9O1xuICB9XG59XG4iLCI8bGFiZWwgZm9yPVwicGFja2FnZVZlcnNpb25cIj57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG48Yzh5LWZvcm0tZ3JvdXA+XG4gIDxjOHktdHlwZWFoZWFkXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZlcnNpb25cIlxuICAgIG5hbWU9XCJwYWNrYWdlVmVyc2lvblwiXG4gICAgKG9uU2VhcmNoKT1cIm9uSW5wdXQkLm5leHQoJGV2ZW50KVwiXG4gICAgcGxhY2Vob2xkZXI9XCJ7eyAnU2VsZWN0IGJlbG93IG9yIHN0YXJ0IHR5cGluZycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFtkaXNwbGF5UHJvcGVydHldPVwiJ3ZlcnNpb24nXCJcbiAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgIFtoaWRlTmV3XT1cInRydWVcIlxuICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgPlxuICAgIDxjOHktbGlcbiAgICAgICpjOHlGb3I9XCJsZXQgYXBwVmVyc2lvbiBvZiB2ZXJzaW9ucyQ7IGxvYWRNb3JlOiAnYXV0byc7IG5vdEZvdW5kOiBub3RGb3VuZFRlbXBsYXRlXCJcbiAgICAgIChjbGljayk9XCJvblZlcnNpb25TZWxlY3QoYXBwVmVyc2lvbilcIlxuICAgICAgY2xhc3M9XCJwLWwtOCBwLXItOCBjOHktbGlzdF9faXRlbS0tbGlua1wiXG4gICAgICBbYWN0aXZlXT1cInNlbGVjdGVkVmVyc2lvbiA9PT0gYXBwVmVyc2lvblwiXG4gICAgPlxuICAgICAgPGM4eS1saS1pY29uIGljb249XCJiaWctcGFyY2VsXCI+PC9jOHktbGktaWNvbj5cbiAgICAgIDxzcGFuXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogJ3JvdycsXG4gICAgICAgICAgJ2FsaWduLWNvbnRlbnQnOiAnY2VudGVyJyxcbiAgICAgICAgICAnanVzdGlmeS1jb250ZW50JzogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICdhbGlnbi1pdGVtcyc6ICdjZW50ZXInXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8Yzh5LWhpZ2hsaWdodFxuICAgICAgICAgIFt0ZXh0XT1cImFwcFZlcnNpb24udmVyc2lvbiB8fCAnLS0nXCJcbiAgICAgICAgICBbcGF0dGVybl09XCJvbklucHV0JCB8IGFzeW5jXCJcbiAgICAgICAgPjwvYzh5LWhpZ2hsaWdodD5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHRhZyBvZiBhcHBWZXJzaW9uLnRhZ3NcIiBjbGFzcz1cImxhYmVsIGxhYmVsLWluZm8gbS1sLTRcIj5cbiAgICAgICAgICAgIHt7IHRhZyB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYzh5LWxpPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm90Rm91bmRUZW1wbGF0ZT5cbiAgICAgIDxjOHktbGlcbiAgICAgICAgY2xhc3M9XCJiZy1ncmF5LWxpZ2h0ZXIgcC04XCJcbiAgICAgICAgKm5nSWY9XCIob25JbnB1dCQgfCBhc3luYyk/Lmxlbmd0aCA+IDAgJiYgKHZlcnNpb25zJCB8IGFzeW5jKT8uZGF0YT8ubGVuZ3RoID09PSAwXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPk5vIG1hdGNoIGZvdW5kLjwvc3Bhbj5cbiAgICAgIDwvYzh5LWxpPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvYzh5LXR5cGVhaGVhZD5cbjwvYzh5LWZvcm0tZ3JvdXA+XG4iXX0=
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS12ZXJzaW9uLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3BhY2thZ2UtdmVyc2lvbi1zZWxlY3QvcGFja2FnZS12ZXJzaW9uLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3BhY2thZ2UtdmVyc2lvbi1zZWxlY3QvcGFja2FnZS12ZXJzaW9uLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQW9DLE1BQU0sYUFBYSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBYXJFLE1BQU0sT0FBTyw2QkFBNkI7SUFheEMsWUFDVSxrQkFBc0MsRUFDdEMsY0FBOEI7UUFEOUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFkL0IsVUFBSyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBSS9DLGFBQVEsR0FBNEIsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFcEUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNYLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFD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QXFCO1lBQzNCLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUNsQixFQUNELE1BQU0sQ0FDUCxDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFELENBQUM7K0dBckhVLDZCQUE2QjttR0FBN0IsNkJBQTZCLG1KQVI3QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDN0Q7U0FDRiwrQ0NoQkgscTFDQXdDQTs7NEZEdEJhLDZCQUE2QjtrQkFYekMsU0FBUzsrQkFDRSw0QkFBNEIsYUFFM0I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsOEJBQThCLENBQUM7eUJBQzdEO3FCQUNGO29IQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgT25DaGFuZ2VzLCBJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBJQXBwbGljYXRpb25WZXJzaW9uLCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldHRleHQsIFBsdWdpbnNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXBhY2thZ2UtdmVyc2lvbi1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFja2FnZS12ZXJzaW9uLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYWNrYWdlVmVyc2lvblNlbGVjdENvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFja2FnZVZlcnNpb25TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbGFiZWwgPSBnZXR0ZXh0KCdVc2UgcGx1Z2luIHZlcnNpb24nKTtcbiAgQElucHV0KCkgcGFja2FnZUNvbnRleHRQYXRoOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhY2thZ2VJZDogc3RyaW5nIHwgbnVtYmVyO1xuICBzZWxlY3RlZFZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb247XG4gIG9uSW5wdXQkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHZlcnNpb25zJDogT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxJQXBwbGljYXRpb25WZXJzaW9uPj47XG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBwYWNrYWdlQ29udGV4dFBhdGgkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIHByaXZhdGUgcGFja2FnZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVtYmVyPignJyk7XG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2ZXJzaW9uOiBJQXBwbGljYXRpb25WZXJzaW9uKSA9PiB2b2lkO1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGx1Z2luc1NlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IHBhY2thZ2VJZEZyb21Db250ZXh0UGF0aCQgPSB0aGlzLnBhY2thZ2VDb250ZXh0UGF0aCQucGlwZShcbiAgICAgIGZpbHRlcihwYXRoID0+ICEhcGF0aCksXG4gICAgICBzd2l0Y2hNYXAocGF0aCA9PiB0aGlzLmdldFBhY2thZ2VJZEZvckNvbnRleHRQYXRoKHBhdGgpKVxuICAgICk7XG4gICAgY29uc3QgcGFja2FnZUlkJCA9IG1lcmdlKHBhY2thZ2VJZEZyb21Db250ZXh0UGF0aCQsIHRoaXMucGFja2FnZUlkJC5waXBlKGZpbHRlcihpZCA9PiAhIWlkKSkpO1xuICAgIGNvbnN0IHBhY2thZ2VWZXJzaW9ucyQgPSBwYWNrYWdlSWQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoaWQgPT4gdGhpcy5nZXRQYWNrYWdlVmVyc2lvbnMoaWQpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgICB0aGlzLnZlcnNpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3BhY2thZ2VWZXJzaW9ucyQsIHRoaXMub25JbnB1dCQuYXNPYnNlcnZhYmxlKCldKS5waXBlKFxuICAgICAgbWFwKChbcmVzdWx0TGlzdCwgZmlsdGVyU3RyXSkgPT4gdGhpcy5hcHBseUZpbHRlclRvUmVzdWx0TGlzdChyZXN1bHRMaXN0LCBmaWx0ZXJTdHIpKVxuICAgICk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFZlcnNpb24gPSBvYmo7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnBhY2thZ2VDb250ZXh0UGF0aCkge1xuICAgICAgdGhpcy5wYWNrYWdlQ29udGV4dFBhdGgkLm5leHQodGhpcy5wYWNrYWdlQ29udGV4dFBhdGgpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzLnBhY2thZ2VJZCkge1xuICAgICAgdGhpcy5wYWNrYWdlSWQkLm5leHQodGhpcy5wYWNrYWdlSWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFBhY2thZ2VWZXJzaW9ucyhwYWNrYWdlSWQ6IHN0cmluZyB8IG51bWJlcik6IFByb21pc2U8SVJlc3VsdExpc3Q8SUFwcGxpY2F0aW9uVmVyc2lvbj4+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UubGlzdFZlcnNpb25zKHBhY2thZ2VJZCk7XG4gIH1cblxuICBvblZlcnNpb25TZWxlY3QodmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbikge1xuICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gdmVyc2lvbjtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5vbkNoYW5nZSh2ZXJzaW9uKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UGFja2FnZUlkRm9yQ29udGV4dFBhdGgoY29udGV4dFBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyPiB7XG4gICAgY29uc3QgeyBkYXRhOiBhcHBsaWNhdGlvbiB9ID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZ2V0TWFuaWZlc3RPZkNvbnRleHRQYXRoKFxuICAgICAgY29udGV4dFBhdGhcbiAgICApO1xuICAgIGNvbnN0IHBhY2thZ2VBcHBJZCA9IGFwcGxpY2F0aW9uLmlkO1xuICAgIHJldHVybiBwYWNrYWdlQXBwSWQ7XG4gIH1cblxuICBwcml2YXRlIHNldEluaXRpYWxWYWx1ZUZvcklucHV0KHZlcnNpb25zOiBJQXBwbGljYXRpb25WZXJzaW9uW10pIHtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRWZXJzaW9uICYmIHZlcnNpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGxhdGVzdCA9IHZlcnNpb25zLmZpbmQodiA9PiB2LnRhZ3MuaW5jbHVkZXMoJ2xhdGVzdCcpKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWZXJzaW9uID0gbGF0ZXN0IHx8IHZlcnNpb25zWzBdO1xuICAgICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkVmVyc2lvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJBcHBWZXJzaW9ucyhcbiAgICBhcHBWZXJzaW9uczogSUFwcGxpY2F0aW9uVmVyc2lvbltdLFxuICAgIGZpbHRlclN0cjogc3RyaW5nXG4gICk6IElBcHBsaWNhdGlvblZlcnNpb25bXSB7XG4gICAgcmV0dXJuIGZpbHRlclN0ciA9PT0gJydcbiAgICAgID8gYXBwVmVyc2lvbnNcbiAgICAgIDogYXBwVmVyc2lvbnMuZmlsdGVyKFxuICAgICAgICAgIGFwcFZlcnNpb24gPT5cbiAgICAgICAgICAgIGFwcFZlcnNpb24udmVyc2lvbi5pbmNsdWRlcyhmaWx0ZXJTdHIpIHx8XG4gICAgICAgICAgICBhcHBWZXJzaW9uLnRhZ3M/LnNvbWUodGFnID0+IHRhZy5pbmNsdWRlcyhmaWx0ZXJTdHIpKVxuICAgICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZpbHRlclRvUmVzdWx0TGlzdChcbiAgICByZXN1bHRMaXN0OiBJUmVzdWx0TGlzdDxJQXBwbGljYXRpb25WZXJzaW9uPixcbiAgICBmaWx0ZXJTdHI6IHN0cmluZ1xuICApOiBJUmVzdWx0TGlzdDxJQXBwbGljYXRpb25WZXJzaW9uPiB7XG4gICAgY29uc3QgdmVyc2lvbnNGaWx0ZXJlZEJ5U3RyID0gdGhpcy5maWx0ZXJBcHBWZXJzaW9ucyhyZXN1bHRMaXN0LmRhdGEsIGZpbHRlclN0cik7XG4gICAgY29uc3Qgc29ydGVkQXBwVmVyc2lvbnMgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLnNvcnRWZXJzaW9ucyhcbiAgICAgIHtcbiAgICAgICAgbGlzdDogdmVyc2lvbnNGaWx0ZXJlZEJ5U3RyLFxuICAgICAgICBwYXRoOiBbJ3ZlcnNpb24nXVxuICAgICAgfSxcbiAgICAgICdkZXNjJ1xuICAgICk7XG5cbiAgICB0aGlzLnNldEluaXRpYWxWYWx1ZUZvcklucHV0KHNvcnRlZEFwcFZlcnNpb25zKTtcbiAgICByZXR1cm4geyBkYXRhOiBzb3J0ZWRBcHBWZXJzaW9ucywgcmVzOiByZXN1bHRMaXN0LnJlcyB9O1xuICB9XG59XG4iLCI8bGFiZWwgZm9yPVwicGFja2FnZVZlcnNpb25cIj57eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG48Yzh5LWZvcm0tZ3JvdXA+XG4gIDxjOHktdHlwZWFoZWFkXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZlcnNpb25cIlxuICAgIG5hbWU9XCJwYWNrYWdlVmVyc2lvblwiXG4gICAgKG9uU2VhcmNoKT1cIm9uSW5wdXQkLm5leHQoJGV2ZW50KVwiXG4gICAgcGxhY2Vob2xkZXI9XCJ7eyAnU2VsZWN0IGJlbG93IG9yIHN0YXJ0IHR5cGluZycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFtkaXNwbGF5UHJvcGVydHldPVwiJ3ZlcnNpb24nXCJcbiAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgIFtoaWRlTmV3XT1cInRydWVcIlxuICAgIFtjb250YWluZXJdPVwiJ2JvZHknXCJcbiAgPlxuICAgIDxjOHktbGlcbiAgICAgICpjOHlGb3I9XCJsZXQgYXBwVmVyc2lvbiBvZiB2ZXJzaW9ucyQ7IGxvYWRNb3JlOiAnYXV0byc7IG5vdEZvdW5kOiBub3RGb3VuZFRlbXBsYXRlXCJcbiAgICAgIChjbGljayk9XCJvblZlcnNpb25TZWxlY3QoYXBwVmVyc2lvbilcIlxuICAgICAgY2xhc3M9XCJwLWwtOCBwLXItOCBjOHktbGlzdF9faXRlbS0tbGlua1wiXG4gICAgICBbYWN0aXZlXT1cInNlbGVjdGVkVmVyc2lvbiA9PT0gYXBwVmVyc2lvblwiXG4gICAgPlxuICAgICAgPGM4eS1saS1pY29uIGljb249XCJiaWctcGFyY2VsXCI+PC9jOHktbGktaWNvbj5cbiAgICAgIDxjOHktaGlnaGxpZ2h0XG4gICAgICAgIFt0ZXh0XT1cImFwcFZlcnNpb24udmVyc2lvbiB8fCAnLS0nXCJcbiAgICAgICAgW3BhdHRlcm5dPVwib25JbnB1dCQgfCBhc3luY1wiXG4gICAgICA+PC9jOHktaGlnaGxpZ2h0PlxuICAgICAgPHNwYW4+XG4gICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCB0YWcgb2YgYXBwVmVyc2lvbi50YWdzXCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1pbmZvIG0tbC00XCI+XG4gICAgICAgICAge3sgdGFnIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2M4eS1saT5cbiAgICA8bmctdGVtcGxhdGUgI25vdEZvdW5kVGVtcGxhdGU+XG4gICAgICA8Yzh5LWxpXG4gICAgICAgIGNsYXNzPVwiYmctZ3JheS1saWdodGVyIHAtOFwiXG4gICAgICAgICpuZ0lmPVwiKG9uSW5wdXQkIHwgYXN5bmMpPy5sZW5ndGggPiAwICYmICh2ZXJzaW9ucyQgfCBhc3luYyk/LmRhdGE/Lmxlbmd0aCA9PT0gMFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIHRyYW5zbGF0ZT5ObyBtYXRjaCBmb3VuZC48L3NwYW4+XG4gICAgICA8L2M4eS1saT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2M4eS10eXBlYWhlYWQ+XG48L2M4eS1mb3JtLWdyb3VwPlxuIl19
|
|
@@ -18,6 +18,7 @@ import { TranslatePackageLabelPipe } from './translate-package-label.pipe';
|
|
|
18
18
|
import { ListFiltersComponent } from './list-filters/list-filters.component';
|
|
19
19
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
20
20
|
import { ArchivedFilterComponent } from './archived-filter/archived-filter.component';
|
|
21
|
+
import { PackageChangelogComponent } from './package-changelog/package-changelog.component';
|
|
21
22
|
import * as i0 from "@angular/core";
|
|
22
23
|
export class SharedEcosystemModule {
|
|
23
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedEcosystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -38,7 +39,8 @@ export class SharedEcosystemModule {
|
|
|
38
39
|
FormsModule,
|
|
39
40
|
PopoverModule,
|
|
40
41
|
ReactiveFormsModule,
|
|
41
|
-
IconSelectorModule
|
|
42
|
+
IconSelectorModule,
|
|
43
|
+
PackageChangelogComponent], exports: [AddApplicationComponent,
|
|
42
44
|
ApplicationPropertiesFormComponent,
|
|
43
45
|
UploadArchiveComponent,
|
|
44
46
|
ApplicationCardComponent,
|
|
@@ -48,7 +50,8 @@ export class SharedEcosystemModule {
|
|
|
48
50
|
PackageVersionSelectComponent,
|
|
49
51
|
TranslatePackageLabelPipe,
|
|
50
52
|
ListFiltersComponent,
|
|
51
|
-
ArchivedFilterComponent
|
|
53
|
+
ArchivedFilterComponent,
|
|
54
|
+
PackageChangelogComponent] }); }
|
|
52
55
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedEcosystemModule, providers: [
|
|
53
56
|
hookWizard({
|
|
54
57
|
wizardId: EcosystemWizards.APPLICATION_UPLOAD,
|
|
@@ -69,7 +72,8 @@ export class SharedEcosystemModule {
|
|
|
69
72
|
FormsModule,
|
|
70
73
|
PopoverModule,
|
|
71
74
|
ReactiveFormsModule,
|
|
72
|
-
IconSelectorModule
|
|
75
|
+
IconSelectorModule,
|
|
76
|
+
PackageChangelogComponent] }); }
|
|
73
77
|
}
|
|
74
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SharedEcosystemModule, decorators: [{
|
|
75
79
|
type: NgModule,
|
|
@@ -82,7 +86,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
82
86
|
FormsModule,
|
|
83
87
|
PopoverModule,
|
|
84
88
|
ReactiveFormsModule,
|
|
85
|
-
IconSelectorModule
|
|
89
|
+
IconSelectorModule,
|
|
90
|
+
PackageChangelogComponent
|
|
86
91
|
],
|
|
87
92
|
declarations: [
|
|
88
93
|
AddApplicationComponent,
|
|
@@ -108,7 +113,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
108
113
|
PackageVersionSelectComponent,
|
|
109
114
|
TranslatePackageLabelPipe,
|
|
110
115
|
ListFiltersComponent,
|
|
111
|
-
ArchivedFilterComponent
|
|
116
|
+
ArchivedFilterComponent,
|
|
117
|
+
PackageChangelogComponent
|
|
112
118
|
],
|
|
113
119
|
providers: [
|
|
114
120
|
hookWizard({
|
|
@@ -126,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
126
132
|
]
|
|
127
133
|
}]
|
|
128
134
|
}] });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWVjb3N5c3RlbS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3NoYXJlZC1lY29zeXN0ZW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM3RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQztBQUM1SSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxxR0FBcUcsQ0FBQztBQUM5SixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVB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QUFJLEVBQUUsZ0NBQWdDOzRCQUN0QyxPQUFPLEVBQUUsTUFBTTt5QkFDaEIsQ0FBQztxQkFDSDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBob29rV2l6YXJkIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJY29uU2VsZWN0b3JNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2ljb24tc2VsZWN0b3InO1xuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdG9vbHRpcCc7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgUG9wb3Zlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvcG9wb3Zlcic7XG5pbXBvcnQgeyBBZGRBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYWRkLWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNhcmRDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkQXJjaGl2ZUNvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLWFyY2hpdmUuY29tcG9uZW50JztcbmltcG9ydCB7IER1cGxpY2F0ZUFwcGxpY2F0aW9uTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZHVwbGljYXRlLWFwcGxpY2F0aW9uL2R1cGxpY2F0ZS1hcHBsaWNhdGlvbi1saXN0L2R1cGxpY2F0ZS1hcHBsaWNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEdXBsaWNhdGVBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuL2R1cGxpY2F0ZS1hcHBsaWNhdGlvbi9kdXBsaWNhdGUtYXBwbGljYXRpb24tcHJvcGVydGllcy9kdXBsaWNhdGUtYXBwbGljYXRpb24tcHJvcGVydGllcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHVwbGljYXRlQXBwbGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2R1cGxpY2F0ZS1hcHBsaWNhdGlvbi9kdXBsaWNhdGUtYXBwbGljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBhY2thZ2VWZXJzaW9uU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlLXZlcnNpb24tc2VsZWN0L3BhY2thZ2UtdmVyc2lvbi1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEVjb3N5c3RlbVdpemFyZHMgfSBmcm9tICcuL2Vjb3N5c3RlbS5tb2RlbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQYWNrYWdlTGFiZWxQaXBlIH0gZnJvbSAnLi90cmFuc2xhdGUtcGFja2FnZS1sYWJlbC5waXBlJztcbmltcG9ydCB7IExpc3RGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWZpbHRlcnMvbGlzdC1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFyY2hpdmVkRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hcmNoaXZlZC1maWx0ZXIvYXJjaGl2ZWQtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlQ2hhbmdlbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlLWNoYW5nZWxvZy9wYWNrYWdlLWNoYW5nZWxvZy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBQb3BvdmVyTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSWNvblNlbGVjdG9yTW9kdWxlLFxuICAgIFBhY2thZ2VDaGFuZ2Vsb2dDb21wb25lbnRcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgQWRkQXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudCxcbiAgICBVcGxvYWRBcmNoaXZlQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uQ2FyZENvbXBvbmVudCxcbiAgICBEdXBsaWNhdGVBcHBsaWNhdGlvbkxpc3RDb21wb25lbnQsXG4gICAgRHVwbGljYXRlQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIER1cGxpY2F0ZUFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uU2VsZWN0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZVBhY2thZ2VMYWJlbFBpcGUsXG4gICAgTGlzdEZpbHRlcnNDb21wb25lbnQsXG4gICAgQXJjaGl2ZWRGaWx0ZXJDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFkZEFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQsXG4gICAgVXBsb2FkQXJjaGl2ZUNvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkNhcmRDb21wb25lbnQsXG4gICAgRHVwbGljYXRlQXBwbGljYXRpb25MaXN0Q29tcG9uZW50LFxuICAgIER1cGxpY2F0ZUFwcGxpY2F0aW9uUHJvcGVydGllc0NvbXBvbmVudCxcbiAgICBEdXBsaWNhdGVBcHBsaWNhdGlvbkNvbXBvbmVudCxcbiAgICBQYWNrYWdlVmVyc2lvblNlbGVjdENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVQYWNrYWdlTGFiZWxQaXBlLFxuICAgIExpc3RGaWx0ZXJzQ29tcG9uZW50LFxuICAgIEFyY2hpdmVkRmlsdGVyQ29tcG9uZW50LFxuICAgIFBhY2thZ2VDaGFuZ2Vsb2dDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IER1cGxpY2F0ZUFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgICAgbmFtZTogJ0R1cGxpY2F0ZSBleGlzdGluZyBhcHBsaWNhdGlvbicsXG4gICAgICBjOHlJY29uOiAnY29weSdcbiAgICB9KSxcbiAgICBob29rV2l6YXJkKHtcbiAgICAgIHdpemFyZElkOiAnZHVwbGljYXRlQXBwbGljYXRpb24nLFxuICAgICAgY29tcG9uZW50OiBEdXBsaWNhdGVBcHBsaWNhdGlvbkNvbXBvbmVudCxcbiAgICAgIG5hbWU6ICdEdXBsaWNhdGUgZXhpc3RpbmcgYXBwbGljYXRpb24nLFxuICAgICAgYzh5SWNvbjogJ2NvcHknXG4gICAgfSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZWRFY29zeXN0ZW1Nb2R1bGUge31cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, forwardRef, Input } from '@angular/core';
|
|
2
2
|
import { FormBuilder, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
|
|
3
|
-
import { gettext, OptionsService } from '@c8y/ngx-components';
|
|
3
|
+
import { DateFormatService, gettext, OptionsService } from '@c8y/ngx-components';
|
|
4
4
|
import { isEmpty } from 'lodash-es';
|
|
5
5
|
import { throttleTime } from 'rxjs/operators';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -14,9 +14,10 @@ export class OperationSchedulerComponent {
|
|
|
14
14
|
this.minutesAhead = minutes;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
constructor(formBuilder, options) {
|
|
17
|
+
constructor(formBuilder, options, dateFormatService) {
|
|
18
18
|
this.formBuilder = formBuilder;
|
|
19
19
|
this.options = options;
|
|
20
|
+
this.dateFormatService = dateFormatService;
|
|
20
21
|
this.placeholder = gettext('Start date');
|
|
21
22
|
this.delayErrors = null;
|
|
22
23
|
this.pickerErrors = null;
|
|
@@ -55,6 +56,7 @@ export class OperationSchedulerComponent {
|
|
|
55
56
|
this.emitData(data);
|
|
56
57
|
});
|
|
57
58
|
this.updateDelayValidation();
|
|
59
|
+
this.dateInputFormat = this.dateFormatService.getDateFormat();
|
|
58
60
|
}
|
|
59
61
|
ngOnDestroy() {
|
|
60
62
|
if (this.subscription && !this.subscription.closed) {
|
|
@@ -202,7 +204,7 @@ export class OperationSchedulerComponent {
|
|
|
202
204
|
}
|
|
203
205
|
return { dateValidation: true };
|
|
204
206
|
}
|
|
205
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationSchedulerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.OptionsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationSchedulerComponent, deps: [{ token: i1.FormBuilder }, { token: i2.OptionsService }, { token: i2.DateFormatService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
206
208
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OperationSchedulerComponent, selector: "c8y-operation-scheduler", inputs: { _minutesAhead: ["minutesAhead", "_minutesAhead"] }, providers: [
|
|
207
209
|
{
|
|
208
210
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -214,7 +216,7 @@ export class OperationSchedulerComponent {
|
|
|
214
216
|
multi: true,
|
|
215
217
|
useExisting: forwardRef(() => OperationSchedulerComponent)
|
|
216
218
|
}
|
|
217
|
-
], ngImport: i0, template: "<div [formGroup]=\"fgOperationScheduler\">\n <div class=\"form-group\">\n <label translate>Start date</label>\n <div class=\"datetime-picker\">\n <c8y-form-group class=\"datepicker\">\n <input\n class=\"form-control\"\n placeholder=\"{{ placeholder | translate }}\"\n required\n formControlName=\"picker\"\n [bsConfig]=\"{ customTodayClass: 'today' }\"\n [minDate]=\"minDate\"\n bsDatepicker\n (blur)=\"markAsTouched()\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'dateValidation'\"\n [text]=\"'Select time in the future.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <timepicker\n class=\"form-group\"\n [showSpinners]=\"false\"\n [showMeridian]=\"false\"\n formControlName=\"time\"\n (blur)=\"markAsTouched()\"\n ></timepicker>\n </div>\n </div>\n <div class=\"form-group\">\n <c8y-form-group [hasError]=\"delayErrors\">\n <label translate>Delay</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 15\"\n type=\"number\"\n required\n formControlName=\"delay\"\n (blur)=\"markAsTouched()\"\n />\n <div class=\"input-group-btn\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control m-r-sm-32 m-r-xs-56\"\n [attr.aria-label]=\"'Delay units' | translate\"\n formControlName=\"unit\"\n (blur)=\"markAsTouched()\"\n >\n <option\n value=\"seconds\"\n translate\n >\n Seconds\n </option>\n <option\n value=\"milliseconds\"\n translate\n >\n Milliseconds\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </c8y-form-group>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i2.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i3.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "component", type: i4.TimepickerComponent, selector: "timepicker", inputs: ["hourStep", "minuteStep", "secondsStep", "readonlyInput", "disabled", "mousewheel", "arrowkeys", "showSpinners", "showMeridian", "showMinutes", "showSeconds", "meridians", "min", "max", "hoursPlaceholder", "minutesPlaceholder", "secondsPlaceholder"], outputs: ["isValid", "meridianChange"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
219
|
+
], ngImport: i0, template: "<div [formGroup]=\"fgOperationScheduler\">\n <div class=\"form-group\">\n <label translate>Start date</label>\n <div class=\"datetime-picker\">\n <c8y-form-group class=\"datepicker\">\n <input\n class=\"form-control\"\n placeholder=\"{{ placeholder | translate }}\"\n required\n formControlName=\"picker\"\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: dateInputFormat }\"\n [minDate]=\"minDate\"\n bsDatepicker\n (blur)=\"markAsTouched()\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'dateValidation'\"\n [text]=\"'Select time in the future.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <timepicker\n class=\"form-group\"\n [showSpinners]=\"false\"\n [showMeridian]=\"false\"\n formControlName=\"time\"\n (blur)=\"markAsTouched()\"\n ></timepicker>\n </div>\n </div>\n <div class=\"form-group\">\n <c8y-form-group [hasError]=\"delayErrors\">\n <label translate>Delay</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 15\"\n type=\"number\"\n required\n formControlName=\"delay\"\n (blur)=\"markAsTouched()\"\n />\n <div class=\"input-group-btn\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control m-r-sm-32 m-r-xs-56\"\n [attr.aria-label]=\"'Delay units' | translate\"\n formControlName=\"unit\"\n (blur)=\"markAsTouched()\"\n >\n <option\n value=\"seconds\"\n translate\n >\n Seconds\n </option>\n <option\n value=\"milliseconds\"\n translate\n >\n Milliseconds\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </c8y-form-group>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: i2.MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i3.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "component", type: i4.TimepickerComponent, selector: "timepicker", inputs: ["hourStep", "minuteStep", "secondsStep", "readonlyInput", "disabled", "mousewheel", "arrowkeys", "showSpinners", "showMeridian", "showMinutes", "showSeconds", "meridians", "min", "max", "hoursPlaceholder", "minutesPlaceholder", "secondsPlaceholder"], outputs: ["isValid", "meridianChange"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
|
|
218
220
|
}
|
|
219
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationSchedulerComponent, decorators: [{
|
|
220
222
|
type: Component,
|
|
@@ -229,9 +231,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
229
231
|
multi: true,
|
|
230
232
|
useExisting: forwardRef(() => OperationSchedulerComponent)
|
|
231
233
|
}
|
|
232
|
-
], template: "<div [formGroup]=\"fgOperationScheduler\">\n <div class=\"form-group\">\n <label translate>Start date</label>\n <div class=\"datetime-picker\">\n <c8y-form-group class=\"datepicker\">\n <input\n class=\"form-control\"\n placeholder=\"{{ placeholder | translate }}\"\n required\n formControlName=\"picker\"\n [bsConfig]=\"{ customTodayClass: 'today' }\"\n [minDate]=\"minDate\"\n bsDatepicker\n (blur)=\"markAsTouched()\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'dateValidation'\"\n [text]=\"'Select time in the future.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <timepicker\n class=\"form-group\"\n [showSpinners]=\"false\"\n [showMeridian]=\"false\"\n formControlName=\"time\"\n (blur)=\"markAsTouched()\"\n ></timepicker>\n </div>\n </div>\n <div class=\"form-group\">\n <c8y-form-group [hasError]=\"delayErrors\">\n <label translate>Delay</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 15\"\n type=\"number\"\n required\n formControlName=\"delay\"\n (blur)=\"markAsTouched()\"\n />\n <div class=\"input-group-btn\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control m-r-sm-32 m-r-xs-56\"\n [attr.aria-label]=\"'Delay units' | translate\"\n formControlName=\"unit\"\n (blur)=\"markAsTouched()\"\n >\n <option\n value=\"seconds\"\n translate\n >\n Seconds\n </option>\n <option\n value=\"milliseconds\"\n translate\n >\n Milliseconds\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </c8y-form-group>\n </div>\n</div>\n" }]
|
|
233
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.OptionsService }], propDecorators: { _minutesAhead: [{
|
|
234
|
+
], template: "<div [formGroup]=\"fgOperationScheduler\">\n <div class=\"form-group\">\n <label translate>Start date</label>\n <div class=\"datetime-picker\">\n <c8y-form-group class=\"datepicker\">\n <input\n class=\"form-control\"\n placeholder=\"{{ placeholder | translate }}\"\n required\n formControlName=\"picker\"\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: dateInputFormat }\"\n [minDate]=\"minDate\"\n bsDatepicker\n (blur)=\"markAsTouched()\"\n />\n <c8y-messages>\n <c8y-message\n [name]=\"'dateValidation'\"\n [text]=\"'Select time in the future.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <timepicker\n class=\"form-group\"\n [showSpinners]=\"false\"\n [showMeridian]=\"false\"\n formControlName=\"time\"\n (blur)=\"markAsTouched()\"\n ></timepicker>\n </div>\n </div>\n <div class=\"form-group\">\n <c8y-form-group [hasError]=\"delayErrors\">\n <label translate>Delay</label>\n <div class=\"input-group\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 15\"\n type=\"number\"\n required\n formControlName=\"delay\"\n (blur)=\"markAsTouched()\"\n />\n <div class=\"input-group-btn\">\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control m-r-sm-32 m-r-xs-56\"\n [attr.aria-label]=\"'Delay units' | translate\"\n formControlName=\"unit\"\n (blur)=\"markAsTouched()\"\n >\n <option\n value=\"seconds\"\n translate\n >\n Seconds\n </option>\n <option\n value=\"milliseconds\"\n translate\n >\n Milliseconds\n </option>\n </select>\n <span></span>\n </div>\n </div>\n </div>\n </c8y-form-group>\n </div>\n</div>\n" }]
|
|
235
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.OptionsService }, { type: i2.DateFormatService }], propDecorators: { _minutesAhead: [{
|
|
234
236
|
type: Input,
|
|
235
237
|
args: ['minutesAhead']
|
|
236
238
|
}] } });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXNjaGVkdWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9uLXNjaGVkdWxlci9vcGVyYXRpb24tc2NoZWR1bGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvYnVsay1vcGVyYXRpb24tc2NoZWR1bGVyL29wZXJhdGlvbi1zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBRUwsV0FBVyxFQUdYLGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBbUI5QyxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDLElBQTJCLGFBQWEsQ0FBQyxPQUFlO1FBQ3RELElBQUksT0FBTyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQTRCRCxZQUNVLFdBQXdCLEVBQ3hCLE9BQXVCO1FBRHZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBNUJqQyxnQkFBVyxHQUFXLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUs1QyxnQkFBVyxHQUFxQixJQUFJLENBQUM7UUFDckMsaUJBQVksR0FBcUIsSUFBSSxDQUFD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QixPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQztnQkFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQzsrR0FuUVUsMkJBQTJCO21HQUEzQiwyQkFBMkIsZ0hBYjNCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQzthQUMzRDtZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2FBQzNEO1NBQ0YsMEJDaENILCttRUF1RUE7OzRGRHJDYSwyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNFLHlCQUF5QixhQUV4Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzt5QkFDM0Q7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDO3lCQUMzRDtxQkFDRjs2R0FLMEIsYUFBYTtzQkFBdkMsS0FBSzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yc1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXR0ZXh0LCBPcHRpb25zU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9wZXJhdGlvblNjaGVkdWxlIH0gZnJvbSAnLi9vcGVyYXRpb24tc2NoZWR1bGUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LW9wZXJhdGlvbi1zY2hlZHVsZXInLFxuICB0ZW1wbGF0ZVVybDogJ29wZXJhdGlvbi1zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT3BlcmF0aW9uU2NoZWR1bGVyQ29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT3BlcmF0aW9uU2NoZWR1bGVyQ29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBPcGVyYXRpb25TY2hlZHVsZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoJ21pbnV0ZXNBaGVhZCcpIHNldCBfbWludXRlc0FoZWFkKG1pbnV0ZXM6IG51bWJlcikge1xuICAgIGlmIChtaW51dGVzICYmIG1pbnV0ZXMgPiB0aGlzLk1JTlVURVNfQUhFQURfREVGQVVMVCkge1xuICAgICAgdGhpcy5taW51dGVzQWhlYWQgPSBtaW51dGVzO1xuICAgIH1cbiAgfVxuXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBnZXR0ZXh0KCdTdGFydCBkYXRlJyk7XG4gIGZnT3BlcmF0aW9uU2NoZWR1bGVyOiBGb3JtR3JvdXA7XG4gIG1pbkRhdGU6IERhdGU7XG4gIG1pbkRlbGF5OiBudW1iZXI7XG4gIG1heERlbGF5OiBudW1iZXI7XG4gIGRlbGF5RXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gbnVsbDtcbiAgcGlja2VyRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IERFTEFZX1NFQ09ORFNfREVGQVVMVDogbnVtYmVyID0gMTtcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5fREVMQVlfU0VDT05EU19ERUZBVUxUOiBudW1iZXIgPSAwLjAwMTtcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfREVMQVlfU0VDT05EU19ERUZBVUxUOiBudW1iZXIgPSAzNjAwO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTlVURVNfQUhFQURfREVGQVVMVDogbnVtYmVyID0gNTtcbiAgcHJpdmF0ZSBpc0RlbGF5SW5TZWNvbmRzID0gdHJ1ZTtcbiAgcHJpdmF0ZSBtaW51dGVzQWhlYWQ6IG51bWJlciA9IHRoaXMuTUlOVVRFU19BSEVBRF9ERUZBVUxUO1xuICBwcml2YXRlIHJlYWRvbmx5IERFTEFZX0tFWV9DQVRFR09SWSA9ICdkZXZpY2UtY29udHJvbCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUFYX0RFTEFZX0tFWV9OQU1FID0gJ2J1bGtvcGVyYXRpb24ubWF4Y3JlYXRpb25yYW1wJztcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5fREVMQVlfS0VZX05BTUUgPSAnYnVsa29wZXJhdGlvbi5jcmVhdGlvbnJhbXAnO1xuICBwcml2YXRlIGN1cnJlbnRVbml0ID0gJ3NlY29uZHMnO1xuICBwcml2YXRlIGRlbGF5SW5TZWNvbmRzOiBudW1iZXI7XG4gIHByaXZhdGUgaW5pdGlhbERhdGU6IERhdGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKG5hbWUpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIG9uVmFsaWRhdG9yQ2hhbmdlZDogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuaW5pdGlhbERhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHRoaXMubWluRGF0ZS5zZXRNaW51dGVzKHRoaXMubWluRGF0ZS5nZXRNaW51dGVzKCkgKyB0aGlzLm1pbnV0ZXNBaGVhZClcbiAgICApO1xuXG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlciA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcGlja2VyOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLmRhdGVWYWxpZGF0aW9uXV0sXG4gICAgICB0aW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLnRpbWVWYWxpZGF0aW9uXV0sXG4gICAgICBkZWxheTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdW5pdDogWydzZWNvbmRzJ11cbiAgICB9KTtcblxuICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIucGF0Y2hWYWx1ZSh7XG4gICAgICBwaWNrZXI6IHRoaXMuaW5pdGlhbERhdGUsXG4gICAgICB0aW1lOiB0aGlzLmluaXRpYWxEYXRlLFxuICAgICAgZGVsYXk6IHRoaXMuREVMQVlfU0VDT05EU19ERUZBVUxUXG4gICAgfSk7XG5cbiAgICAvLyBEdWUgdG8gdGhlIHZhbGlkYXRpb24gb2YgcGlja2VyIGFuZCB0aW1lIGl0IGNvdWxkIGJlIHBvc3NpYmxlIHRoYXQgdmFsdWUgY2hhbmdlc1xuICAgIC8vIGFyZSBlbWl0dGVkIG1vcmUgdGhhbiBvbmNlLiBUaGVyZWZvcmUgd2UgdGhyb3R0bGUgdGhlIGVtaXRzLlxuICAgIGNvbnN0IHZhbHVlQ2hhbmdlcyQgPSB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLnZhbHVlQ2hhbmdlcy5waXBlKHRocm90dGxlVGltZSgxMDApKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHZhbHVlQ2hhbmdlcyQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgdGhpcy5kZWxheUVycm9ycyA9IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMuZGVsYXkuZXJyb3JzO1xuICAgICAgdGhpcy5waWNrZXJFcnJvcnMgPSB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLnBpY2tlci5lcnJvcnM7XG4gICAgICB0aGlzLmNvbnZlcnREZWxheUhhbmRsZXIoZGF0YS51bml0KTtcbiAgICAgIHRoaXMuZW1pdERhdGEoZGF0YSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZURlbGF5VmFsaWRhdGlvbigpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uICYmICF0aGlzLnN1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogT3BlcmF0aW9uU2NoZWR1bGUpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIucGF0Y2hWYWx1ZSh7XG4gICAgICAgIHBpY2tlcjogdmFsdWUuc2NoZWR1bGVkRGF0ZSxcbiAgICAgICAgdGltZTogdmFsdWUuc2NoZWR1bGVkRGF0ZSxcbiAgICAgICAgZGVsYXk6IHZhbHVlLmRlbGF5SW5TZWNvbmRzID4gMSA/IHZhbHVlLmRlbGF5SW5TZWNvbmRzIDogdmFsdWUuZGVsYXlJblNlY29uZHMgKiAxMDAwLFxuICAgICAgICB1bml0OiB2YWx1ZS5kZWxheUluU2Vjb25kcyA+IDEgPyAnc2Vjb25kcycgOiAnbWlsbGlzZWNvbmRzJ1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXI/LmRpc2FibGVkID09PSBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmRpc2FibGUoKSA6IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuZW5hYmxlKCk7XG4gIH1cblxuICB2YWxpZGF0ZSgpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBpZiAodGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5pbnZhbGlkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi50aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLnBpY2tlci5lcnJvcnMsXG4gICAgICAgIC4uLnRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMudGltZS5lcnJvcnMsXG4gICAgICAgIC4uLnRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMuZGVsYXkuZXJyb3JzXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2VkID0gZm47XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBjb252ZXJ0RGVsYXlIYW5kbGVyKHVuaXQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmN1cnJlbnRVbml0ID09PSB1bml0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50VW5pdCA9IHVuaXQ7XG5cbiAgICB0aGlzLmNvbnZlcnREZWxheSh0aGlzLmN1cnJlbnRVbml0KTtcblxuICAgIC8vIHVwZGF0ZSB2YWxpZGF0b3Igb24gZGVsYXkgY29udHJvbCB0byBtYWtlIHN1cmUgdGhhdFxuICAgIC8vIHN3aXRjaGluZyBmcm9tIG1pbnV0ZXMgdG8gc2Vjb25kcyBvciB2aWNlIHZlcnNhIGRvZXMgbm90IGhhcm0gdmFsaWRhdGlvbi5cbiAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LnNldFZhbGlkYXRvcnMoW1xuICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgIFZhbGlkYXRvcnMubWluKHRoaXMubWluRGVsYXkpLFxuICAgICAgVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhEZWxheSlcbiAgICBdKTtcbiAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIGVtaXREYXRhKGRhdGE6IHsgZGVsYXlJblNlY29uZHM6IG51bWJlcjsgcGlja2VyOiBEYXRlOyB0aW1lPzogRGF0ZTsgZGVsYXk/OiBudW1iZXIgfSkge1xuICAgIGlmICh0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlZCkge1xuICAgICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5waWNrZXIgJiYgZGF0YS50aW1lKSB7XG4gICAgICBkYXRhLnBpY2tlciA9IHRoaXMuY29tYmluZURhdGVBbmRUaW1lKGRhdGEucGlja2VyLCBkYXRhLnRpbWUpO1xuICAgIH1cblxuICAgIHRoaXMuY29udmVydERlbGF5KHRoaXMuY3VycmVudFVuaXQpO1xuICAgIGRhdGEuZGVsYXlJblNlY29uZHMgPSB0aGlzLmRlbGF5SW5TZWNvbmRzO1xuXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMub25DaGFuZ2Uoe1xuICAgICAgICBkZWxheUluU2Vjb25kczogZGF0YS5kZWxheUluU2Vjb25kcyxcbiAgICAgICAgc2NoZWR1bGVkRGF0ZTogZGF0YS5waWNrZXJcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlRGVsYXlWYWxpZGF0aW9uKCkge1xuICAgIGNvbnN0IG1pblN5c3RlbSA9IGF3YWl0IHRoaXMub3B0aW9ucy5nZXRTeXN0ZW1PcHRpb24oXG4gICAgICB0aGlzLkRFTEFZX0tFWV9DQVRFR09SWSxcbiAgICAgIHRoaXMuTUlOX0RFTEFZX0tFWV9OQU1FXG4gICAgKTtcbiAgICBjb25zdCBtYXhTeXN0ZW0gPSBhd2FpdCB0aGlzLm9wdGlvbnMuZ2V0U3lzdGVtT3B0aW9uKFxuICAgICAgdGhpcy5ERUxBWV9LRVlfQ0FURUdPUlksXG4gICAgICB0aGlzLk1BWF9ERUxBWV9LRVlfTkFNRVxuICAgICk7XG5cbiAgICB0aGlzLm1heERlbGF5ID0gbWF4U3lzdGVtID8gTnVtYmVyKG1heFN5c3RlbSkgOiB0aGlzLk1BWF9ERUxBWV9TRUNPTkRTX0RFRkFVTFQ7XG4gICAgdGhpcy5taW5EZWxheSA9IG1pblN5c3RlbSA/IE51bWJlcihtaW5TeXN0ZW0pIDogdGhpcy5NSU5fREVMQVlfU0VDT05EU19ERUZBVUxUO1xuXG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlclxuICAgICAgLmdldCgnZGVsYXknKVxuICAgICAgLnNldFZhbGlkYXRvcnMoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1pbih0aGlzLm1pbkRlbGF5KSxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhEZWxheSlcbiAgICAgIF0pO1xuICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0RGVsYXkodW5pdDogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWxheUluU2Vjb25kcyA9IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMuZGVsYXkudmFsdWU7XG5cbiAgICBpZiAodW5pdCA9PT0gJ3NlY29uZHMnICYmICF0aGlzLmlzRGVsYXlJblNlY29uZHMpIHtcbiAgICAgIHRoaXMubWF4RGVsYXkgPSB0aGlzLm1heERlbGF5IC8gMTAwMDtcbiAgICAgIHRoaXMubWluRGVsYXkgPSB0aGlzLm1pbkRlbGF5IC8gMTAwMDtcbiAgICAgIHRoaXMuaXNEZWxheUluU2Vjb25kcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHVuaXQgPT09ICdtaWxsaXNlY29uZHMnKSB7XG4gICAgICB0aGlzLmRlbGF5SW5TZWNvbmRzID0gdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5kZWxheS52YWx1ZSAvIDEwMDA7XG4gICAgICBpZiAodGhpcy5pc0RlbGF5SW5TZWNvbmRzKSB7XG4gICAgICAgIHRoaXMubWF4RGVsYXkgPSB0aGlzLm1heERlbGF5ICogMTAwMDtcbiAgICAgICAgdGhpcy5taW5EZWxheSA9IHRoaXMubWluRGVsYXkgKiAxMDAwO1xuICAgICAgICB0aGlzLmlzRGVsYXlJblNlY29uZHMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbWJpbmVEYXRlQW5kVGltZShkYXRlOiBEYXRlLCB0aW1lOiBEYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKFxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgZGF0ZS5nZXREYXRlKCksXG4gICAgICB0aW1lLmdldEhvdXJzKCksXG4gICAgICB0aW1lLmdldE1pbnV0ZXMoKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRhdGVWYWxpZGF0aW9uKGZDb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGlmIChmQ29udHJvbC52YWx1ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IGZDb250cm9sLnZhbHVlIGFzIERhdGU7XG4gICAgICBmQ29udHJvbC5wYXJlbnQuZ2V0KCd0aW1lJykuc2V0VmFsdWUoZGF0ZSk7XG4gICAgICByZXR1cm4gZGF0ZSA+PSBuZXcgRGF0ZSgpXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGRhdGVWYWxpZGF0aW9uOiB0cnVlXG4gICAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0ZVZhbGlkYXRpb246IHRydWUgfTtcbiAgfVxuXG4gIHByaXZhdGUgdGltZVZhbGlkYXRpb24oZkNvbnRyb2w6IEZvcm1Db250cm9sKSB7XG4gICAgaWYgKGZDb250cm9sLnZhbHVlKSB7XG4gICAgICBjb25zdCBkYXRlID0gZkNvbnRyb2wudmFsdWUgYXMgRGF0ZTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICAgIGRhdGUgPj0gbmV3IERhdGUoKVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICBkYXRlVmFsaWRhdGlvbjogdHJ1ZVxuICAgICAgICAgICAgfTtcblxuICAgICAgY29uc3QgcGlja2VyID0gZkNvbnRyb2wucGFyZW50LmdldCgncGlja2VyJyk7XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcGlja2VyLnNldEVycm9ycyhyZXN1bHQpO1xuICAgICAgICBwaWNrZXIubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBpZiAocGlja2VyICYmIHBpY2tlci5lcnJvcnMgJiYgcGlja2VyLmVycm9ycy5kYXRlVmFsaWRhdGlvbikge1xuICAgICAgICBkZWxldGUgcGlja2VyLmVycm9ycy5kYXRlVmFsaWRhdGlvbjtcblxuICAgICAgICBpZiAoaXNFbXB0eShwaWNrZXIuZXJyb3JzKSkge1xuICAgICAgICAgIHBpY2tlci5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHBpY2tlci5zZXRFcnJvcnMocGlja2VyLmVycm9ycyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4geyBkYXRlVmFsaWRhdGlvbjogdHJ1ZSB9O1xuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZmdPcGVyYXRpb25TY2hlZHVsZXJcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICA8bGFiZWwgdHJhbnNsYXRlPlN0YXJ0IGRhdGU8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRldGltZS1waWNrZXJcIj5cbiAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cImRhdGVwaWNrZXJcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGlja2VyXCJcbiAgICAgICAgICBbYnNDb25maWddPVwieyBjdXN0b21Ub2RheUNsYXNzOiAndG9kYXknIH1cIlxuICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgIGJzRGF0ZXBpY2tlclxuICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxjOHktbWVzc2FnZXM+XG4gICAgICAgICAgPGM4eS1tZXNzYWdlXG4gICAgICAgICAgICBbbmFtZV09XCInZGF0ZVZhbGlkYXRpb24nXCJcbiAgICAgICAgICAgIFt0ZXh0XT1cIidTZWxlY3QgdGltZSBpbiB0aGUgZnV0dXJlLicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgID48L2M4eS1tZXNzYWdlPlxuICAgICAgICA8L2M4eS1tZXNzYWdlcz5cbiAgICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gICAgICA8dGltZXBpY2tlclxuICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgICAgICBbc2hvd1NwaW5uZXJzXT1cImZhbHNlXCJcbiAgICAgICAgW3Nob3dNZXJpZGlhbl09XCJmYWxzZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpbWVcIlxuICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgICAgPjwvdGltZXBpY2tlcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgPGM4eS1mb3JtLWdyb3VwIFtoYXNFcnJvcl09XCJkZWxheUVycm9yc1wiPlxuICAgICAgPGxhYmVsIHRyYW5zbGF0ZT5EZWxheTwvbGFiZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2UuZy4nIHwgdHJhbnNsYXRlIH19IDE1XCJcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlbGF5XCJcbiAgICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1zZWxlY3Qtd3JhcHBlclwiPlxuICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtLXItc20tMzIgbS1yLXhzLTU2XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRGVsYXkgdW5pdHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidW5pdFwiXG4gICAgICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICB2YWx1ZT1cInNlY29uZHNcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgU2Vjb25kc1xuICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgIHZhbHVlPVwibWlsbGlzZWNvbmRzXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIE1pbGxpc2Vjb25kc1xuICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXNjaGVkdWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2J1bGstb3BlcmF0aW9uLXNjaGVkdWxlci9vcGVyYXRpb24tc2NoZWR1bGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvYnVsay1vcGVyYXRpb24tc2NoZWR1bGVyL29wZXJhdGlvbi1zY2hlZHVsZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBRUwsV0FBVyxFQUdYLGFBQWEsRUFDYixpQkFBaUIsRUFHakIsVUFBVSxFQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBbUI5QyxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDLElBQTJCLGFBQWEsQ0FBQyxPQUFlO1FBQ3RELElBQUksT0FBTyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQTZCRCxZQUNVLFdBQXdCLEVBQ3hCLE9BQXVCLEVBQ3ZCLGlCQUFvQztRQUZwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBOUI5QyxnQkFBVyxHQUFXLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FB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LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9yc1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlRm9ybWF0U2VydmljZSwgZ2V0dGV4dCwgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPcGVyYXRpb25TY2hlZHVsZSB9IGZyb20gJy4vb3BlcmF0aW9uLXNjaGVkdWxlLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1vcGVyYXRpb24tc2NoZWR1bGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdvcGVyYXRpb24tc2NoZWR1bGVyLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9wZXJhdGlvblNjaGVkdWxlckNvbXBvbmVudClcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE9wZXJhdGlvblNjaGVkdWxlckNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT3BlcmF0aW9uU2NoZWR1bGVyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCdtaW51dGVzQWhlYWQnKSBzZXQgX21pbnV0ZXNBaGVhZChtaW51dGVzOiBudW1iZXIpIHtcbiAgICBpZiAobWludXRlcyAmJiBtaW51dGVzID4gdGhpcy5NSU5VVEVTX0FIRUFEX0RFRkFVTFQpIHtcbiAgICAgIHRoaXMubWludXRlc0FoZWFkID0gbWludXRlcztcbiAgICB9XG4gIH1cblxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gZ2V0dGV4dCgnU3RhcnQgZGF0ZScpO1xuICBmZ09wZXJhdGlvblNjaGVkdWxlcjogRm9ybUdyb3VwO1xuICBtaW5EYXRlOiBEYXRlO1xuICBtaW5EZWxheTogbnVtYmVyO1xuICBtYXhEZWxheTogbnVtYmVyO1xuICBkZWxheUVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IG51bGw7XG4gIHBpY2tlckVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IG51bGw7XG4gIGRhdGVJbnB1dEZvcm1hdDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREVMQVlfU0VDT05EU19ERUZBVUxUOiBudW1iZXIgPSAxO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9ERUxBWV9TRUNPTkRTX0RFRkFVTFQ6IG51bWJlciA9IDAuMDAxO1xuICBwcml2YXRlIHJlYWRvbmx5IE1BWF9ERUxBWV9TRUNPTkRTX0RFRkFVTFQ6IG51bWJlciA9IDM2MDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgTUlOVVRFU19BSEVBRF9ERUZBVUxUOiBudW1iZXIgPSA1O1xuICBwcml2YXRlIGlzRGVsYXlJblNlY29uZHMgPSB0cnVlO1xuICBwcml2YXRlIG1pbnV0ZXNBaGVhZDogbnVtYmVyID0gdGhpcy5NSU5VVEVTX0FIRUFEX0RFRkFVTFQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVMQVlfS0VZX0NBVEVHT1JZID0gJ2RldmljZS1jb250cm9sJztcbiAgcHJpdmF0ZSByZWFkb25seSBNQVhfREVMQVlfS0VZX05BTUUgPSAnYnVsa29wZXJhdGlvbi5tYXhjcmVhdGlvbnJhbXAnO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9ERUxBWV9LRVlfTkFNRSA9ICdidWxrb3BlcmF0aW9uLmNyZWF0aW9ucmFtcCc7XG4gIHByaXZhdGUgY3VycmVudFVuaXQgPSAnc2Vjb25kcyc7XG4gIHByaXZhdGUgZGVsYXlJblNlY29uZHM6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbml0aWFsRGF0ZTogRGF0ZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAobmFtZSkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2VkOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRlRm9ybWF0U2VydmljZTogRGF0ZUZvcm1hdFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgdGhpcy5pbml0aWFsRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgdGhpcy5taW5EYXRlLnNldE1pbnV0ZXModGhpcy5taW5EYXRlLmdldE1pbnV0ZXMoKSArIHRoaXMubWludXRlc0FoZWFkKVxuICAgICk7XG5cbiAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBwaWNrZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuZGF0ZVZhbGlkYXRpb25dXSxcbiAgICAgIHRpbWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMudGltZVZhbGlkYXRpb25dXSxcbiAgICAgIGRlbGF5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB1bml0OiBbJ3NlY29uZHMnXVxuICAgIH0pO1xuXG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5wYXRjaFZhbHVlKHtcbiAgICAgIHBpY2tlcjogdGhpcy5pbml0aWFsRGF0ZSxcbiAgICAgIHRpbWU6IHRoaXMuaW5pdGlhbERhdGUsXG4gICAgICBkZWxheTogdGhpcy5ERUxBWV9TRUNPTkRTX0RFRkFVTFRcbiAgICB9KTtcblxuICAgIC8vIER1ZSB0byB0aGUgdmFsaWRhdGlvbiBvZiBwaWNrZXIgYW5kIHRpbWUgaXQgY291bGQgYmUgcG9zc2libGUgdGhhdCB2YWx1ZSBjaGFuZ2VzXG4gICAgLy8gYXJlIGVtaXR0ZWQgbW9yZSB0aGFuIG9uY2UuIFRoZXJlZm9yZSB3ZSB0aHJvdHRsZSB0aGUgZW1pdHMuXG4gICAgY29uc3QgdmFsdWVDaGFuZ2VzJCA9IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIudmFsdWVDaGFuZ2VzLnBpcGUodGhyb3R0bGVUaW1lKDEwMCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdmFsdWVDaGFuZ2VzJC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICB0aGlzLmRlbGF5RXJyb3JzID0gdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5kZWxheS5lcnJvcnM7XG4gICAgICB0aGlzLnBpY2tlckVycm9ycyA9IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMucGlja2VyLmVycm9ycztcbiAgICAgIHRoaXMuY29udmVydERlbGF5SGFuZGxlcihkYXRhLnVuaXQpO1xuICAgICAgdGhpcy5lbWl0RGF0YShkYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMudXBkYXRlRGVsYXlWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5kYXRlSW5wdXRGb3JtYXQgPSB0aGlzLmRhdGVGb3JtYXRTZXJ2aWNlLmdldERhdGVGb3JtYXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbiAmJiAhdGhpcy5zdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IE9wZXJhdGlvblNjaGVkdWxlKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLnBhdGNoVmFsdWUoe1xuICAgICAgICBwaWNrZXI6IHZhbHVlLnNjaGVkdWxlZERhdGUsXG4gICAgICAgIHRpbWU6IHZhbHVlLnNjaGVkdWxlZERhdGUsXG4gICAgICAgIGRlbGF5OiB2YWx1ZS5kZWxheUluU2Vjb25kcyA+IDEgPyB2YWx1ZS5kZWxheUluU2Vjb25kcyA6IHZhbHVlLmRlbGF5SW5TZWNvbmRzICogMTAwMCxcbiAgICAgICAgdW5pdDogdmFsdWUuZGVsYXlJblNlY29uZHMgPiAxID8gJ3NlY29uZHMnIDogJ21pbGxpc2Vjb25kcydcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyPy5kaXNhYmxlZCA9PT0gaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpc0Rpc2FibGVkID8gdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5kaXNhYmxlKCkgOiB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmVuYWJsZSgpO1xuICB9XG5cbiAgdmFsaWRhdGUoKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuaW52YWxpZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4udGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5waWNrZXIuZXJyb3JzLFxuICAgICAgICAuLi50aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLnRpbWUuZXJyb3JzLFxuICAgICAgICAuLi50aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LmVycm9yc1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlZCA9IGZuO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgY29udmVydERlbGF5SGFuZGxlcih1bml0OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50VW5pdCA9PT0gdW5pdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFVuaXQgPSB1bml0O1xuXG4gICAgdGhpcy5jb252ZXJ0RGVsYXkodGhpcy5jdXJyZW50VW5pdCk7XG5cbiAgICAvLyB1cGRhdGUgdmFsaWRhdG9yIG9uIGRlbGF5IGNvbnRyb2wgdG8gbWFrZSBzdXJlIHRoYXRcbiAgICAvLyBzd2l0Y2hpbmcgZnJvbSBtaW51dGVzIHRvIHNlY29uZHMgb3IgdmljZSB2ZXJzYSBkb2VzIG5vdCBoYXJtIHZhbGlkYXRpb24uXG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5kZWxheS5zZXRWYWxpZGF0b3JzKFtcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICBWYWxpZGF0b3JzLm1pbih0aGlzLm1pbkRlbGF5KSxcbiAgICAgIFZhbGlkYXRvcnMubWF4KHRoaXMubWF4RGVsYXkpXG4gICAgXSk7XG4gICAgdGhpcy5mZ09wZXJhdGlvblNjaGVkdWxlci5jb250cm9scy5kZWxheS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBlbWl0RGF0YShkYXRhOiB7IGRlbGF5SW5TZWNvbmRzOiBudW1iZXI7IHBpY2tlcjogRGF0ZTsgdGltZT86IERhdGU7IGRlbGF5PzogbnVtYmVyIH0pIHtcbiAgICBpZiAodGhpcy5vblZhbGlkYXRvckNoYW5nZWQpIHtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2VkKCk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEucGlja2VyICYmIGRhdGEudGltZSkge1xuICAgICAgZGF0YS5waWNrZXIgPSB0aGlzLmNvbWJpbmVEYXRlQW5kVGltZShkYXRhLnBpY2tlciwgZGF0YS50aW1lKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvbnZlcnREZWxheSh0aGlzLmN1cnJlbnRVbml0KTtcbiAgICBkYXRhLmRlbGF5SW5TZWNvbmRzID0gdGhpcy5kZWxheUluU2Vjb25kcztcblxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHtcbiAgICAgICAgZGVsYXlJblNlY29uZHM6IGRhdGEuZGVsYXlJblNlY29uZHMsXG4gICAgICAgIHNjaGVkdWxlZERhdGU6IGRhdGEucGlja2VyXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZURlbGF5VmFsaWRhdGlvbigpIHtcbiAgICBjb25zdCBtaW5TeXN0ZW0gPSBhd2FpdCB0aGlzLm9wdGlvbnMuZ2V0U3lzdGVtT3B0aW9uKFxuICAgICAgdGhpcy5ERUxBWV9LRVlfQ0FURUdPUlksXG4gICAgICB0aGlzLk1JTl9ERUxBWV9LRVlfTkFNRVxuICAgICk7XG4gICAgY29uc3QgbWF4U3lzdGVtID0gYXdhaXQgdGhpcy5vcHRpb25zLmdldFN5c3RlbU9wdGlvbihcbiAgICAgIHRoaXMuREVMQVlfS0VZX0NBVEVHT1JZLFxuICAgICAgdGhpcy5NQVhfREVMQVlfS0VZX05BTUVcbiAgICApO1xuXG4gICAgdGhpcy5tYXhEZWxheSA9IG1heFN5c3RlbSA/IE51bWJlcihtYXhTeXN0ZW0pIDogdGhpcy5NQVhfREVMQVlfU0VDT05EU19ERUZBVUxUO1xuICAgIHRoaXMubWluRGVsYXkgPSBtaW5TeXN0ZW0gPyBOdW1iZXIobWluU3lzdGVtKSA6IHRoaXMuTUlOX0RFTEFZX1NFQ09ORFNfREVGQVVMVDtcblxuICAgIHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXJcbiAgICAgIC5nZXQoJ2RlbGF5JylcbiAgICAgIC5zZXRWYWxpZGF0b3JzKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW4odGhpcy5taW5EZWxheSksXG4gICAgICAgIFZhbGlkYXRvcnMubWF4KHRoaXMubWF4RGVsYXkpXG4gICAgICBdKTtcbiAgICB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydERlbGF5KHVuaXQ6IHN0cmluZykge1xuICAgIHRoaXMuZGVsYXlJblNlY29uZHMgPSB0aGlzLmZnT3BlcmF0aW9uU2NoZWR1bGVyLmNvbnRyb2xzLmRlbGF5LnZhbHVlO1xuXG4gICAgaWYgKHVuaXQgPT09ICdzZWNvbmRzJyAmJiAhdGhpcy5pc0RlbGF5SW5TZWNvbmRzKSB7XG4gICAgICB0aGlzLm1heERlbGF5ID0gdGhpcy5tYXhEZWxheSAvIDEwMDA7XG4gICAgICB0aGlzLm1pbkRlbGF5ID0gdGhpcy5taW5EZWxheSAvIDEwMDA7XG4gICAgICB0aGlzLmlzRGVsYXlJblNlY29uZHMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh1bml0ID09PSAnbWlsbGlzZWNvbmRzJykge1xuICAgICAgdGhpcy5kZWxheUluU2Vjb25kcyA9IHRoaXMuZmdPcGVyYXRpb25TY2hlZHVsZXIuY29udHJvbHMuZGVsYXkudmFsdWUgLyAxMDAwO1xuICAgICAgaWYgKHRoaXMuaXNEZWxheUluU2Vjb25kcykge1xuICAgICAgICB0aGlzLm1heERlbGF5ID0gdGhpcy5tYXhEZWxheSAqIDEwMDA7XG4gICAgICAgIHRoaXMubWluRGVsYXkgPSB0aGlzLm1pbkRlbGF5ICogMTAwMDtcbiAgICAgICAgdGhpcy5pc0RlbGF5SW5TZWNvbmRzID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21iaW5lRGF0ZUFuZFRpbWUoZGF0ZTogRGF0ZSwgdGltZTogRGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgdGltZS5nZXRIb3VycygpLFxuICAgICAgdGltZS5nZXRNaW51dGVzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRlVmFsaWRhdGlvbihmQ29udHJvbDogRm9ybUNvbnRyb2wpIHtcbiAgICBpZiAoZkNvbnRyb2wudmFsdWUpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBmQ29udHJvbC52YWx1ZSBhcyBEYXRlO1xuICAgICAgZkNvbnRyb2wucGFyZW50LmdldCgndGltZScpLnNldFZhbHVlKGRhdGUpO1xuICAgICAgcmV0dXJuIGRhdGUgPj0gbmV3IERhdGUoKVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBkYXRlVmFsaWRhdGlvbjogdHJ1ZVxuICAgICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7IGRhdGVWYWxpZGF0aW9uOiB0cnVlIH07XG4gIH1cblxuICBwcml2YXRlIHRpbWVWYWxpZGF0aW9uKGZDb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGlmIChmQ29udHJvbC52YWx1ZSkge1xuICAgICAgY29uc3QgZGF0ZSA9IGZDb250cm9sLnZhbHVlIGFzIERhdGU7XG4gICAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICBkYXRlID49IG5ldyBEYXRlKClcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgZGF0ZVZhbGlkYXRpb246IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgIGNvbnN0IHBpY2tlciA9IGZDb250cm9sLnBhcmVudC5nZXQoJ3BpY2tlcicpO1xuXG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHBpY2tlci5zZXRFcnJvcnMocmVzdWx0KTtcbiAgICAgICAgcGlja2VyLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgaWYgKHBpY2tlciAmJiBwaWNrZXIuZXJyb3JzICYmIHBpY2tlci5lcnJvcnMuZGF0ZVZhbGlkYXRpb24pIHtcbiAgICAgICAgZGVsZXRlIHBpY2tlci5lcnJvcnMuZGF0ZVZhbGlkYXRpb247XG5cbiAgICAgICAgaWYgKGlzRW1wdHkocGlja2VyLmVycm9ycykpIHtcbiAgICAgICAgICBwaWNrZXIuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICBwaWNrZXIuc2V0RXJyb3JzKHBpY2tlci5lcnJvcnMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0ZVZhbGlkYXRpb246IHRydWUgfTtcbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZnT3BlcmF0aW9uU2NoZWR1bGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIHRyYW5zbGF0ZT5TdGFydCBkYXRlPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZXRpbWUtcGlja2VyXCI+XG4gICAgICA8Yzh5LWZvcm0tZ3JvdXAgY2xhc3M9XCJkYXRlcGlja2VyXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBpY2tlclwiXG4gICAgICAgICAgW2JzQ29uZmlnXT1cInsgY3VzdG9tVG9kYXlDbGFzczogJ3RvZGF5JywgZGF0ZUlucHV0Rm9ybWF0OiBkYXRlSW5wdXRGb3JtYXQgfVwiXG4gICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgICAgYnNEYXRlcGlja2VyXG4gICAgICAgICAgKGJsdXIpPVwibWFya0FzVG91Y2hlZCgpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGM4eS1tZXNzYWdlcz5cbiAgICAgICAgICA8Yzh5LW1lc3NhZ2VcbiAgICAgICAgICAgIFtuYW1lXT1cIidkYXRlVmFsaWRhdGlvbidcIlxuICAgICAgICAgICAgW3RleHRdPVwiJ1NlbGVjdCB0aW1lIGluIHRoZSBmdXR1cmUuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgPjwvYzh5LW1lc3NhZ2U+XG4gICAgICAgIDwvYzh5LW1lc3NhZ2VzPlxuICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgIDx0aW1lcGlja2VyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1ncm91cFwiXG4gICAgICAgIFtzaG93U3Bpbm5lcnNdPVwiZmFsc2VcIlxuICAgICAgICBbc2hvd01lcmlkaWFuXT1cImZhbHNlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGltZVwiXG4gICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiXG4gICAgICA+PC90aW1lcGlja2VyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICA8Yzh5LWZvcm0tZ3JvdXAgW2hhc0Vycm9yXT1cImRlbGF5RXJyb3JzXCI+XG4gICAgICA8bGFiZWwgdHJhbnNsYXRlPkRlbGF5PC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZS5nLicgfCB0cmFuc2xhdGUgfX0gMTVcIlxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVsYXlcIlxuICAgICAgICAgIChibHVyKT1cIm1hcmtBc1RvdWNoZWQoKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LXNlbGVjdC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIG0tci1zbS0zMiBtLXIteHMtNTZcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidEZWxheSB1bml0cycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1bml0XCJcbiAgICAgICAgICAgICAgKGJsdXIpPVwibWFya0FzVG91Y2hlZCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgIHZhbHVlPVwic2Vjb25kc1wiXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBTZWNvbmRzXG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgdmFsdWU9XCJtaWxsaXNlY29uZHNcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgTWlsbGlzZWNvbmRzXG4gICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9jOHktZm9ybS1ncm91cD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -112,7 +112,7 @@ export class BulkOperationsListComponent {
|
|
|
112
112
|
return (filters || []).reduce((flattened, current) => flattened.concat(current.fragments), []);
|
|
113
113
|
}
|
|
114
114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BulkOperationsListComponent, deps: [{ token: i1.OperationBulkRealtimeService }, { token: i2.BulkOperationsService }, { token: i3.BulkOperationModalsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
115
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BulkOperationsListComponent, selector: "c8y-bulk-operations", providers: [OperationBulkRealtimeService], viewQueries: [{ propertyName: "statusFilter", first: true, predicate: ["statusFilter"], descendants: true, static: true }, { propertyName: "datePicker", first: true, predicate: DatePickerComponent, descendants: true, static: true }, { propertyName: "listItems", predicate: BulkOperationListItemComponent, descendants: true }], ngImport: i0, template: "<c8y-title>{{ 'Bulk operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-overviews'\"\n [label]=\"'Overviews' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Device control' | translate\"\n [path]=\"'devicecontrol/single'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-energy'\"\n [label]=\"'Bulk operations' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"bulkTypes?.length\"\n itemClass=\"navbar-form\"\n [placement]=\"'left'\"\n>\n <label\n class=\"hidden-sm hidden-xs\"\n translate\n >\n Type\n </label>\n <c8y-select-legacy\n style=\"width: 180px\"\n [items]=\"bulkTypes\"\n [selected]=\"selectedTypeFilters\"\n [disableApplyOnNoSelection]=\"true\"\n (onChange)=\"selectedTypeFilters = $event; typeFilter$.next(selectedTypeFilters)\"\n ></c8y-select-legacy>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-status-filter\n #statusFilter\n [options]=\"bulkOperationStatusOptions\"\n (onFilterChanged)=\"statusFilter$.next($event)\"\n ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-date-picker (onDateSelected)=\"timeFilter$.next($event)\"></c8y-date-picker>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Add bulk operation' | translate }}\"\n *ngIf=\"bulkTypes?.length\"\n (click)=\"addBulkOperation()\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ action: bulkActions.OPEN_ADD_BULK_OPERATION_DIALOG }\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span class=\"text-truncate\">\n {{ 'Add bulk operation' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload$.next()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': refreshLoading }\"\n ></i>\n <span class=\"text-truncate\">\n {{ 'Reload' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/monitoring-and-controlling-devices/#to-view-bulk-operations\"\n></c8y-help>\n\n<!-- Empty state -->\n<c8y-ui-empty-state\n icon=\"c8y-energy\"\n [title]=\"'No items to display' | translate\"\n [subtitle]=\"'Bulk operations will be displayed here' | translate\"\n *ngIf=\"(bulkOperations$ | async)?.data.length === 0 && !isFilterApplied()\"\n>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add bulk operation' | translate }}\"\n type=\"button\"\n *ngIf=\"bulkTypes?.length\"\n (click)=\"addBulkOperation()\"\n translate\n >\n Add bulk operation\n </button>\n</c8y-ui-empty-state>\n\n<!-- No results empty state -->\n<c8y-ui-empty-state\n icon=\"search\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Adjust or reset the filter.' | translate\"\n *ngIf=\"(bulkOperations$ | async)?.data.length === 0 && isFilterApplied()\"\n>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Reset filter' | translate }}\"\n type=\"button\"\n (click)=\"resetFilter()\"\n translate\n >\n Reset filter\n </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group class=\"m-b-24\">\n <div\n class=\"page-sticky-header hidden-xs c8y-list__item--double-actions c8y-list__item\"\n *ngIf=\"(bulkOperations$ | async)?.data.length\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i\n class=\"invisible\"\n c8yIcon=\"refresh\"\n ></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"content-flex-57\">\n <div class=\"col-5\">\n {{ 'Operation' | translate }}\n </div>\n <div class=\"flex-grow\">\n {{ 'Progress' | translate }}\n </div>\n <div class=\"col-4\">\n {{ 'Status' | translate }}\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\"></div>\n </div>\n </div>\n <div\n class=\"d-contents\"\n *c8yFor=\"\n let bulkOperation of bulkOperations$ | async;\n let i = index;\n realtime: realtime;\n pipe: filterPipe;\n comparator: compareOperations.bind(this);\n loadMore: 'auto'\n \"\n >\n <c8y-bulk-operation-list-item\n class=\"d-contents\"\n [bulkOperation]=\"bulkOperation\"\n (reload)=\"reload$.next()\"\n (showFailedOperation)=\"openFailedOperation($event)\"\n ></c8y-bulk-operation-list-item>\n </div>\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i1.SelectLegacyComponent, selector: "c8y-select-legacy", inputs: ["placeholder", "selectedLabel", "applyLabel", "items", "selected", "updateItems", "disableApplyOnNoSelection", "addDropdownContainerToBody"], outputs: ["onChange"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.DatePickerComponent, selector: "c8y-date-picker", inputs: ["placeholder"], outputs: ["onDateSelected"] }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "component", type: i1.RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: ["service", "label", "title", "disabled"], outputs: ["onToggle"] }, { kind: "component", type: i5.StatusFilterComponent, selector: "c8y-status-filter", inputs: ["options", "multiple", "small"], outputs: ["onFilterChanged"] }, { kind: "component", type: i6.BulkOperationListItemComponent, selector: "c8y-bulk-operation-list-item", inputs: ["bulkOperation", "detailsCollapsed", "readOnly"], outputs: ["showFailedOperation", "reload"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
115
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: BulkOperationsListComponent, selector: "c8y-bulk-operations", providers: [OperationBulkRealtimeService], viewQueries: [{ propertyName: "statusFilter", first: true, predicate: ["statusFilter"], descendants: true, static: true }, { propertyName: "datePicker", first: true, predicate: DatePickerComponent, descendants: true, static: true }, { propertyName: "listItems", predicate: BulkOperationListItemComponent, descendants: true }], ngImport: i0, template: "<c8y-title>{{ 'Bulk operations' | translate }}</c8y-title>\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-overviews'\"\n [label]=\"'Overviews' | translate\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-device-control'\"\n [label]=\"'Device control' | translate\"\n [path]=\"'devicecontrol/single'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n [icon]=\"'c8y-energy'\"\n [label]=\"'Bulk operations' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item\n *ngIf=\"bulkTypes?.length\"\n itemClass=\"navbar-form\"\n [placement]=\"'left'\"\n>\n <label\n class=\"hidden-sm hidden-xs\"\n translate\n >\n Type\n </label>\n <c8y-select-legacy\n style=\"width: 180px\"\n [items]=\"bulkTypes\"\n [selected]=\"selectedTypeFilters\"\n [disableApplyOnNoSelection]=\"true\"\n (onChange)=\"selectedTypeFilters = $event; typeFilter$.next(selectedTypeFilters)\"\n ></c8y-select-legacy>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-status-filter\n #statusFilter\n [options]=\"bulkOperationStatusOptions\"\n (onFilterChanged)=\"statusFilter$.next($event)\"\n ></c8y-status-filter>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <c8y-date-picker (onDateSelected)=\"timeFilter$.next($event)\"></c8y-date-picker>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <c8y-realtime-btn [service]=\"realtime\"></c8y-realtime-btn>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Add bulk operation' | translate }}\"\n *ngIf=\"bulkTypes?.length\"\n (click)=\"addBulkOperation()\"\n c8yProductExperience\n [actionName]=\"BULK_OPERATION_EVENT\"\n [actionData]=\"{ action: bulkActions.OPEN_ADD_BULK_OPERATION_DIALOG }\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"plus-circle\"\n ></i>\n <span class=\"text-truncate\">\n {{ 'Add bulk operation' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link d-flex a-i-center\"\n title=\"{{ 'Reload' | translate }}\"\n (click)=\"reload$.next()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"refresh\"\n [ngClass]=\"{ 'icon-spin': refreshLoading }\"\n ></i>\n <span class=\"text-truncate\">\n {{ 'Reload' | translate }}\n </span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-help\n src=\"/docs/device-management-application/monitoring-and-controlling-devices/#to-view-bulk-operations\"\n></c8y-help>\n\n<!-- Empty state -->\n<c8y-ui-empty-state\n icon=\"c8y-energy\"\n [title]=\"'No items to display' | translate\"\n [subtitle]=\"'Bulk operations will be displayed here' | translate\"\n *ngIf=\"(bulkOperations$ | async)?.data.length === 0 && !isFilterApplied()\"\n>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Add bulk operation' | translate }}\"\n type=\"button\"\n *ngIf=\"bulkTypes?.length\"\n (click)=\"addBulkOperation()\"\n translate\n >\n Add bulk operation\n </button>\n</c8y-ui-empty-state>\n\n<!-- No results empty state -->\n<c8y-ui-empty-state\n icon=\"search\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Adjust or reset the filter.' | translate\"\n *ngIf=\"(bulkOperations$ | async)?.data.length === 0 && isFilterApplied()\"\n>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Reset filter' | translate }}\"\n type=\"button\"\n (click)=\"resetFilter()\"\n translate\n >\n Reset filter\n </button>\n</c8y-ui-empty-state>\n\n<!-- Detailed list of operations + load more button -->\n<c8y-list-group class=\"m-b-24\">\n <div\n class=\"page-sticky-header hidden-xs c8y-list__item--double-actions c8y-list__item\"\n *ngIf=\"(bulkOperations$ | async)?.data.length\"\n >\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i\n class=\"invisible\"\n c8yIcon=\"refresh\"\n ></i>\n </div>\n <div class=\"c8y-list__item__body\">\n <div class=\"content-flex-57\">\n <div class=\"col-5\">\n {{ 'Operation' | translate }}\n </div>\n <div class=\"flex-grow\">\n {{ 'Progress' | translate }}\n </div>\n <div class=\"col-4\">\n {{ 'Status' | translate }}\n </div>\n </div>\n </div>\n <div class=\"c8y-list__item__actions\"></div>\n </div>\n </div>\n <div\n class=\"d-contents\"\n *c8yFor=\"\n let bulkOperation of bulkOperations$ | async;\n let i = index;\n realtime: realtime;\n pipe: filterPipe;\n comparator: compareOperations.bind(this);\n loadMore: 'auto'\n \"\n >\n <c8y-bulk-operation-list-item\n class=\"d-contents\"\n [bulkOperation]=\"bulkOperation\"\n (reload)=\"reload$.next()\"\n (showFailedOperation)=\"openFailedOperation($event)\"\n ></c8y-bulk-operation-list-item>\n </div>\n</c8y-list-group>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "component", type: i1.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i1.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: i1.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForLoadingLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount", "c8yForChange", "c8yForLoadMoreComponent"] }, { kind: "component", type: i1.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: i1.SelectLegacyComponent, selector: "c8y-select-legacy", inputs: ["placeholder", "selectedLabel", "applyLabel", "items", "selected", "updateItems", "disableApplyOnNoSelection", "addDropdownContainerToBody"], outputs: ["onChange"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.DatePickerComponent, selector: "c8y-date-picker", inputs: ["placeholder", "dateInputFormat"], outputs: ["onDateSelected"] }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i1.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "component", type: i1.RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: ["service", "label", "title", "disabled"], outputs: ["onToggle"] }, { kind: "component", type: i5.StatusFilterComponent, selector: "c8y-status-filter", inputs: ["options", "multiple", "small"], outputs: ["onFilterChanged"] }, { kind: "component", type: i6.BulkOperationListItemComponent, selector: "c8y-bulk-operation-list-item", inputs: ["bulkOperation", "detailsCollapsed", "readOnly"], outputs: ["showFailedOperation", "reload"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
116
116
|
}
|
|
117
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BulkOperationsListComponent, decorators: [{
|
|
118
118
|
type: Component,
|