ng-kinintel 0.0.397 → 20.0.2
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/fesm2022/ng-kinintel.mjs +11874 -0
- package/fesm2022/ng-kinintel.mjs.map +1 -0
- package/index.d.ts +2818 -5
- package/package.json +6 -14
- package/esm2020/lib/components/alert-groups/alert-groups.component.mjs +0 -76
- package/esm2020/lib/components/alert-groups/edit-alert-group/edit-alert-group.component.mjs +0 -83
- package/esm2020/lib/components/dashboard-editor/configure-item/configure-item.component.mjs +0 -853
- package/esm2020/lib/components/dashboard-editor/configure-item/edit-dashboard-alert/edit-dashboard-alert.component.mjs +0 -56
- package/esm2020/lib/components/dashboard-editor/configure-item/html-documentation/html-documentation.component.mjs +0 -114
- package/esm2020/lib/components/dashboard-editor/configure-item/table-cell-formatter/table-cell-formatter.component.mjs +0 -163
- package/esm2020/lib/components/dashboard-editor/configure-item/vis-network-options.json +0 -135
- package/esm2020/lib/components/dashboard-editor/dashboard-editor.component.mjs +0 -580
- package/esm2020/lib/components/dashboard-editor/dashboard-parameter/dashboard-parameter.component.mjs +0 -15
- package/esm2020/lib/components/dashboard-editor/dashboard-settings/dashboard-settings.component.mjs +0 -50
- package/esm2020/lib/components/dashboard-editor/item-component/item-component.component.mjs +0 -1226
- package/esm2020/lib/components/dashboard-editor/source-selector-dialog/source-selector-dialog.component.mjs +0 -111
- package/esm2020/lib/components/dashboards/dashboards.component.mjs +0 -163
- package/esm2020/lib/components/dashboards/view-dashboard/view-dashboard.component.mjs +0 -429
- package/esm2020/lib/components/data-explorer/change-source-warning/change-source-warning.component.mjs +0 -20
- package/esm2020/lib/components/data-explorer/data-explorer.component.mjs +0 -243
- package/esm2020/lib/components/data-explorer/export-data/export-data.component.mjs +0 -62
- package/esm2020/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.mjs +0 -70
- package/esm2020/lib/components/data-explorer/snapshot-profile-dialog/snapshot-profile-dialog.component.mjs +0 -190
- package/esm2020/lib/components/data-picker/data-picker.component.mjs +0 -79
- package/esm2020/lib/components/data-search/data-search.component.mjs +0 -11
- package/esm2020/lib/components/data-sharing-invite/data-sharing-invite.component.mjs +0 -52
- package/esm2020/lib/components/dataset/create-dataset/create-dataset.component.mjs +0 -47
- package/esm2020/lib/components/dataset/dataset-editor/available-columns/available-columns.component.mjs +0 -28
- package/esm2020/lib/components/dataset/dataset-editor/dataset-add-join/dataset-add-join.component.mjs +0 -344
- package/esm2020/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-editor/dataset-column-editor.component.mjs +0 -80
- package/esm2020/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-settings.component.mjs +0 -54
- package/esm2020/lib/components/dataset/dataset-editor/dataset-create-formula/dataset-create-formula.component.mjs +0 -67
- package/esm2020/lib/components/dataset/dataset-editor/dataset-editor.component.mjs +0 -1134
- package/esm2020/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter/dataset-filter.component.mjs +0 -201
- package/esm2020/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-inclusion/dataset-filter-inclusion.component.mjs +0 -25
- package/esm2020/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-junction/dataset-filter-junction.component.mjs +0 -72
- package/esm2020/lib/components/dataset/dataset-editor/dataset-filters/dataset-filters.component.mjs +0 -62
- package/esm2020/lib/components/dataset/dataset-editor/dataset-name-dialog/dataset-name-dialog.component.mjs +0 -41
- package/esm2020/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-add-parameter/dataset-add-parameter.component.mjs +0 -78
- package/esm2020/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-type/dataset-parameter-type.component.mjs +0 -39
- package/esm2020/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-values.component.mjs +0 -75
- package/esm2020/lib/components/dataset/dataset-editor/dataset-summarise/dataset-summarise.component.mjs +0 -107
- package/esm2020/lib/components/dataset/dataset-editor/move-transformation-confirmation/move-transformation-confirmation.component.mjs +0 -20
- package/esm2020/lib/components/dataset/dataset-editor/remove-transformation-warning/remove-transformation-warning.component.mjs +0 -20
- package/esm2020/lib/components/dataset/dataset-editor/save-as-query/save-as-query.component.mjs +0 -58
- package/esm2020/lib/components/dataset/dataset-editor/share-query/share-query.component.mjs +0 -110
- package/esm2020/lib/components/dataset/dataset-editor/upstream-changes-confirmation/upstream-changes-confirmation.component.mjs +0 -20
- package/esm2020/lib/components/dataset/dataset.component.mjs +0 -294
- package/esm2020/lib/components/datasource/create-datasource/advanced-settings/advanced-settings.component.mjs +0 -130
- package/esm2020/lib/components/datasource/create-datasource/api-access/api-access.component.mjs +0 -132
- package/esm2020/lib/components/datasource/create-datasource/create-datasource.component.mjs +0 -729
- package/esm2020/lib/components/datasource/create-datasource/import-data/import-data.component.mjs +0 -146
- package/esm2020/lib/components/datasource/create-datasource/import-data/import-wizard/import-wizard.component.mjs +0 -165
- package/esm2020/lib/components/datasource/create-datasource/tabular-datasource/tabular-datasource.component.mjs +0 -145
- package/esm2020/lib/components/datasource/datasource.component.mjs +0 -162
- package/esm2020/lib/components/datasource/document-datasource/document-datasource.component.mjs +0 -297
- package/esm2020/lib/components/export-project/export-project.component.mjs +0 -29
- package/esm2020/lib/components/feeds/feed/feed.component.mjs +0 -92
- package/esm2020/lib/components/feeds/feeds.component.mjs +0 -145
- package/esm2020/lib/components/job-tasks/job-tasks.component.mjs +0 -25
- package/esm2020/lib/components/marketplace/marketplace.component.mjs +0 -65
- package/esm2020/lib/components/metadata/metadata.component.mjs +0 -65
- package/esm2020/lib/components/notification-groups/edit-notification-group/edit-notification-group.component.mjs +0 -113
- package/esm2020/lib/components/notification-groups/notification-groups.component.mjs +0 -86
- package/esm2020/lib/components/project-picker/project-picker.component.mjs +0 -118
- package/esm2020/lib/components/project-settings/project-link-selection/project-link-selection.component.mjs +0 -104
- package/esm2020/lib/components/project-settings/project-settings.component.mjs +0 -155
- package/esm2020/lib/components/query-caching/edit-query-cache/edit-query-cache.component.mjs +0 -51
- package/esm2020/lib/components/query-caching/query-cache-view/query-cache-view.component.mjs +0 -121
- package/esm2020/lib/components/query-caching/query-caching.component.mjs +0 -162
- package/esm2020/lib/components/shared-with-me/feed-api-modal/feed-api-modal.component.mjs +0 -45
- package/esm2020/lib/components/shared-with-me/shared-with-me.component.mjs +0 -174
- package/esm2020/lib/components/snapshots/snapshots.component.mjs +0 -244
- package/esm2020/lib/components/tag-picker/tag-picker.component.mjs +0 -74
- package/esm2020/lib/components/task-time-periods/task-time-periods.component.mjs +0 -55
- package/esm2020/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.mjs +0 -40
- package/esm2020/lib/guards/dashboard-changes.guard.mjs +0 -22
- package/esm2020/lib/kinintel-config.mjs +0 -3
- package/esm2020/lib/ng-kinintel.module.mjs +0 -437
- package/esm2020/lib/objects/action-event.mjs +0 -16
- package/esm2020/lib/services/alert.service.mjs +0 -52
- package/esm2020/lib/services/dashboard.service.mjs +0 -75
- package/esm2020/lib/services/data-processor.service.mjs +0 -56
- package/esm2020/lib/services/data-search.service.mjs +0 -36
- package/esm2020/lib/services/dataset.service.mjs +0 -187
- package/esm2020/lib/services/datasource.service.mjs +0 -93
- package/esm2020/lib/services/external.service.mjs +0 -33
- package/esm2020/lib/services/feed.service.mjs +0 -50
- package/esm2020/lib/services/notification.service.mjs +0 -41
- package/esm2020/lib/services/project.service.mjs +0 -130
- package/esm2020/lib/services/tag.service.mjs +0 -63
- package/esm2020/ng-kinintel.mjs +0 -5
- package/esm2020/public-api.mjs +0 -43
- package/fesm2015/ng-kinintel.mjs +0 -12182
- package/fesm2015/ng-kinintel.mjs.map +0 -1
- package/fesm2020/ng-kinintel.mjs +0 -11872
- package/fesm2020/ng-kinintel.mjs.map +0 -1
- package/lib/components/alert-groups/alert-groups.component.d.ts +0 -30
- package/lib/components/alert-groups/edit-alert-group/edit-alert-group.component.d.ts +0 -28
- package/lib/components/dashboard-editor/configure-item/configure-item.component.d.ts +0 -256
- package/lib/components/dashboard-editor/configure-item/edit-dashboard-alert/edit-dashboard-alert.component.d.ts +0 -16
- package/lib/components/dashboard-editor/configure-item/html-documentation/html-documentation.component.d.ts +0 -59
- package/lib/components/dashboard-editor/configure-item/table-cell-formatter/table-cell-formatter.component.d.ts +0 -26
- package/lib/components/dashboard-editor/dashboard-editor.component.d.ts +0 -85
- package/lib/components/dashboard-editor/dashboard-parameter/dashboard-parameter.component.d.ts +0 -8
- package/lib/components/dashboard-editor/dashboard-settings/dashboard-settings.component.d.ts +0 -22
- package/lib/components/dashboard-editor/item-component/item-component.component.d.ts +0 -264
- package/lib/components/dashboard-editor/source-selector-dialog/source-selector-dialog.component.d.ts +0 -30
- package/lib/components/dashboards/dashboards.component.d.ts +0 -56
- package/lib/components/dashboards/view-dashboard/view-dashboard.component.d.ts +0 -81
- package/lib/components/data-explorer/change-source-warning/change-source-warning.component.d.ts +0 -11
- package/lib/components/data-explorer/data-explorer.component.d.ts +0 -61
- package/lib/components/data-explorer/export-data/export-data.component.d.ts +0 -17
- package/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.d.ts +0 -25
- package/lib/components/data-explorer/snapshot-profile-dialog/snapshot-profile-dialog.component.d.ts +0 -44
- package/lib/components/data-picker/data-picker.component.d.ts +0 -32
- package/lib/components/data-search/data-search.component.d.ts +0 -5
- package/lib/components/data-sharing-invite/data-sharing-invite.component.d.ts +0 -21
- package/lib/components/dataset/create-dataset/create-dataset.component.d.ts +0 -17
- package/lib/components/dataset/dataset-editor/available-columns/available-columns.component.d.ts +0 -12
- package/lib/components/dataset/dataset-editor/dataset-add-join/dataset-add-join.component.d.ts +0 -61
- package/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-editor/dataset-column-editor.component.d.ts +0 -21
- package/lib/components/dataset/dataset-editor/dataset-column-settings/dataset-column-settings.component.d.ts +0 -20
- package/lib/components/dataset/dataset-editor/dataset-create-formula/dataset-create-formula.component.d.ts +0 -19
- package/lib/components/dataset/dataset-editor/dataset-editor.component.d.ts +0 -131
- package/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter/dataset-filter.component.d.ts +0 -63
- package/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-inclusion/dataset-filter-inclusion.component.d.ts +0 -11
- package/lib/components/dataset/dataset-editor/dataset-filters/dataset-filter-junction/dataset-filter-junction.component.d.ts +0 -20
- package/lib/components/dataset/dataset-editor/dataset-filters/dataset-filters.component.d.ts +0 -16
- package/lib/components/dataset/dataset-editor/dataset-name-dialog/dataset-name-dialog.component.d.ts +0 -18
- package/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-add-parameter/dataset-add-parameter.component.d.ts +0 -23
- package/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-type/dataset-parameter-type.component.d.ts +0 -13
- package/lib/components/dataset/dataset-editor/dataset-parameter-values/dataset-parameter-values.component.d.ts +0 -22
- package/lib/components/dataset/dataset-editor/dataset-summarise/dataset-summarise.component.d.ts +0 -27
- package/lib/components/dataset/dataset-editor/move-transformation-confirmation/move-transformation-confirmation.component.d.ts +0 -11
- package/lib/components/dataset/dataset-editor/remove-transformation-warning/remove-transformation-warning.component.d.ts +0 -11
- package/lib/components/dataset/dataset-editor/save-as-query/save-as-query.component.d.ts +0 -25
- package/lib/components/dataset/dataset-editor/share-query/share-query.component.d.ts +0 -41
- package/lib/components/dataset/dataset-editor/upstream-changes-confirmation/upstream-changes-confirmation.component.d.ts +0 -11
- package/lib/components/dataset/dataset.component.d.ts +0 -74
- package/lib/components/datasource/create-datasource/advanced-settings/advanced-settings.component.d.ts +0 -26
- package/lib/components/datasource/create-datasource/api-access/api-access.component.d.ts +0 -31
- package/lib/components/datasource/create-datasource/create-datasource.component.d.ts +0 -112
- package/lib/components/datasource/create-datasource/import-data/import-data.component.d.ts +0 -28
- package/lib/components/datasource/create-datasource/import-data/import-wizard/import-wizard.component.d.ts +0 -40
- package/lib/components/datasource/create-datasource/tabular-datasource/tabular-datasource.component.d.ts +0 -34
- package/lib/components/datasource/datasource.component.d.ts +0 -46
- package/lib/components/datasource/document-datasource/document-datasource.component.d.ts +0 -64
- package/lib/components/export-project/export-project.component.d.ts +0 -9
- package/lib/components/feeds/feed/feed.component.d.ts +0 -30
- package/lib/components/feeds/feeds.component.d.ts +0 -47
- package/lib/components/job-tasks/job-tasks.component.d.ts +0 -11
- package/lib/components/marketplace/marketplace.component.d.ts +0 -42
- package/lib/components/metadata/metadata.component.d.ts +0 -24
- package/lib/components/notification-groups/edit-notification-group/edit-notification-group.component.d.ts +0 -37
- package/lib/components/notification-groups/notification-groups.component.d.ts +0 -28
- package/lib/components/project-picker/project-picker.component.d.ts +0 -37
- package/lib/components/project-settings/project-link-selection/project-link-selection.component.d.ts +0 -32
- package/lib/components/project-settings/project-settings.component.d.ts +0 -40
- package/lib/components/query-caching/edit-query-cache/edit-query-cache.component.d.ts +0 -17
- package/lib/components/query-caching/query-cache-view/query-cache-view.component.d.ts +0 -35
- package/lib/components/query-caching/query-caching.component.d.ts +0 -38
- package/lib/components/shared-with-me/feed-api-modal/feed-api-modal.component.d.ts +0 -21
- package/lib/components/shared-with-me/shared-with-me.component.d.ts +0 -43
- package/lib/components/snapshots/snapshots.component.d.ts +0 -52
- package/lib/components/tag-picker/tag-picker.component.d.ts +0 -27
- package/lib/components/task-time-periods/task-time-periods.component.d.ts +0 -20
- package/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.d.ts +0 -17
- package/lib/guards/dashboard-changes.guard.d.ts +0 -11
- package/lib/kinintel-config.d.ts +0 -10
- package/lib/ng-kinintel.module.d.ts +0 -116
- package/lib/objects/action-event.d.ts +0 -12
- package/lib/services/alert.service.d.ts +0 -17
- package/lib/services/dashboard.service.d.ts +0 -25
- package/lib/services/data-processor.service.d.ts +0 -18
- package/lib/services/data-search.service.d.ts +0 -14
- package/lib/services/dataset.service.d.ts +0 -56
- package/lib/services/datasource.service.d.ts +0 -34
- package/lib/services/external.service.d.ts +0 -12
- package/lib/services/feed.service.d.ts +0 -19
- package/lib/services/notification.service.d.ts +0 -16
- package/lib/services/project.service.d.ts +0 -27
- package/lib/services/tag.service.d.ts +0 -19
- package/public-api.d.ts +0 -38
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
3
|
-
import moment from "moment";
|
|
4
|
-
import * as lodash from 'lodash';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
7
|
-
import * as i2 from "ng-kiniauth";
|
|
8
|
-
import * as i3 from "../../../../services/dataset.service";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
import * as i5 from "@angular/material/legacy-button";
|
|
11
|
-
import * as i6 from "@angular/material/icon";
|
|
12
|
-
import * as i7 from "@angular/material/legacy-form-field";
|
|
13
|
-
import * as i8 from "@angular/material/legacy-input";
|
|
14
|
-
import * as i9 from "@angular/cdk/drag-drop";
|
|
15
|
-
import * as i10 from "@angular/forms";
|
|
16
|
-
import * as i11 from "@angular/material/legacy-core";
|
|
17
|
-
import * as i12 from "@angular/material/legacy-checkbox";
|
|
18
|
-
import * as i13 from "@angular/material/legacy-tabs";
|
|
19
|
-
import * as i14 from "@angular/material/legacy-autocomplete";
|
|
20
|
-
const _ = lodash.default;
|
|
21
|
-
export class ShareQueryComponent {
|
|
22
|
-
constructor(dialogRef, data, authService, accountService, datasetService) {
|
|
23
|
-
this.dialogRef = dialogRef;
|
|
24
|
-
this.data = data;
|
|
25
|
-
this.authService = authService;
|
|
26
|
-
this.accountService = accountService;
|
|
27
|
-
this.datasetService = datasetService;
|
|
28
|
-
this.shareWithAccount = false;
|
|
29
|
-
this.hideShareWithAccount = false;
|
|
30
|
-
this.sharedAccounts = [];
|
|
31
|
-
this.invitedAccounts = [];
|
|
32
|
-
this.accountSearch = '';
|
|
33
|
-
this.enterSharingIdentifier = false;
|
|
34
|
-
this.sharingIdentifier = '';
|
|
35
|
-
this.sharingIdentifierError = false;
|
|
36
|
-
this.moment = moment;
|
|
37
|
-
this.marketplaceData = {};
|
|
38
|
-
this.listOnMarketplace = false;
|
|
39
|
-
this.String = String;
|
|
40
|
-
}
|
|
41
|
-
async ngOnInit() {
|
|
42
|
-
this.hideShareWithAccount = !!this.data.hideShareWithAccount;
|
|
43
|
-
this.session = await this.authService.getSessionData();
|
|
44
|
-
this.loadSharedAccounts();
|
|
45
|
-
this.loadInvitedAccounts();
|
|
46
|
-
}
|
|
47
|
-
async loadSharedAccounts() {
|
|
48
|
-
this.sharedAccounts = await this.datasetService.getSharedAccessGroupsForDatasetInstance(this.data.datasetInstance.id);
|
|
49
|
-
this.shareWithAccount = _.some(this.sharedAccounts, sharedAccount => {
|
|
50
|
-
return _.find(sharedAccount.scopeAccesses, { itemIdentifier: String(this.session.account.accountId) });
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
async loadInvitedAccounts() {
|
|
54
|
-
this.invitedAccounts = await this.datasetService.getInvitedAccessGroupsForDatasetInstance(this.data.datasetInstance.id);
|
|
55
|
-
}
|
|
56
|
-
async filterSharableAccounts() {
|
|
57
|
-
this.accounts = await this.accountService.searchForDiscoverableAccounts(this.accountSearch);
|
|
58
|
-
}
|
|
59
|
-
async setLoggedInAccountShareStatus(event) {
|
|
60
|
-
await this.datasetService.setSharedAccessForDatasetInstanceForLoggedInAccount(this.data.datasetInstance.id, event.checked);
|
|
61
|
-
this.loadSharedAccounts();
|
|
62
|
-
}
|
|
63
|
-
async lookupSharingIdentifier() {
|
|
64
|
-
try {
|
|
65
|
-
let account = await this.accountService.lookupDiscoverableAccountByExternalIdentifier(this.sharingIdentifier);
|
|
66
|
-
this.selectAccount(account);
|
|
67
|
-
}
|
|
68
|
-
catch (e) {
|
|
69
|
-
this.sharingIdentifierError = true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// Select account, and show additional options.
|
|
73
|
-
selectAccount(account) {
|
|
74
|
-
this.accountSearch = '';
|
|
75
|
-
this.sharingIdentifierError = false;
|
|
76
|
-
this.sharingIdentifier = '';
|
|
77
|
-
this.selectedAccount = account;
|
|
78
|
-
}
|
|
79
|
-
// Invite the selected account to share with the current query.
|
|
80
|
-
async inviteSelectedAccount() {
|
|
81
|
-
await this.datasetService.inviteAccountToShareDatasetInstance(this.data.datasetInstance.id, this.selectedAccount.externalIdentifier, this.selectedExpiry);
|
|
82
|
-
this.selectedAccount = null;
|
|
83
|
-
this.loadInvitedAccounts();
|
|
84
|
-
}
|
|
85
|
-
// Revoke access to a group
|
|
86
|
-
async revokeAccessToGroup(accessGroup) {
|
|
87
|
-
const message = 'Are you sure you would like to revoke access to this account?';
|
|
88
|
-
if (window.confirm(message)) {
|
|
89
|
-
await this.datasetService.revokeAccessToGroupForDatasetInstance(this.data.datasetInstance.id, accessGroup);
|
|
90
|
-
this.loadSharedAccounts();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async cancelInvitation(accessGroup) {
|
|
94
|
-
const message = 'Are you sure you would like to cancel this invitation?';
|
|
95
|
-
if (window.confirm(message)) {
|
|
96
|
-
await this.datasetService.cancelInvitationForAccessGroupForDatasetInstance(this.data.datasetInstance.id, accessGroup);
|
|
97
|
-
this.loadInvitedAccounts();
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
ShareQueryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareQueryComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.AuthenticationService }, { token: i2.AccountService }, { token: i3.DatasetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
ShareQueryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ShareQueryComponent, selector: "ki-share-query", host: { classAttribute: "dialog-wrapper" }, ngImport: i0, template: "<div class=\"dialog\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\">\n\n <div class=\"dialog-title\" cdkDragHandle>\n <h2 mat-dialog-title>Share Query</h2>\n\n <button mat-icon-button mat-dialog-close>\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n\n <div class=\"dialog-content p-0\">\n <mat-tab-group>\n <mat-tab label=\"Sharing\">\n <div class=\"bg-blue-50 p-4\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <!-- Heroicon name: mini/information-circle -->\n <svg class=\"h-5 w-5 text-blue-400\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"\n fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M19 10.5a8.5 8.5 0 11-17 0 8.5 8.5 0 0117 0zM8.25 9.75A.75.75 0 019 9h.253a1.75 1.75 0 011.709 2.13l-.46 2.066a.25.25 0 00.245.304H11a.75.75 0 010 1.5h-.253a1.75 1.75 0 01-1.709-2.13l.46-2.066a.25.25 0 00-.245-.304H9a.75.75 0 01-.75-.75zM10 7a1 1 0 100-2 1 1 0 000 2z\"\n clip-rule=\"evenodd\"/>\n </svg>\n </div>\n <div class=\"ml-3 flex-1 md:flex md:justify-between\">\n <p class=\"text-sm text-blue-700 mb-0\">\n Share this query with other DAP users via a number of different methods.\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"!hideShareWithAccount\" class=\"px-6 pt-6 pb-4\">\n <mat-checkbox\n [(ngModel)]=\"shareWithAccount\" (change)=\"setLoggedInAccountShareStatus($event)\">\n Share With This Account\n </mat-checkbox>\n <div class=\"text-xs text-gray-400\">\n Make this query available to everyone who has access to the\n <b>{{ (session && session.account) ? session.account.name : '' }}</b> account.\n </div>\n </div>\n\n <div class=\"px-6 py-4\">\n\n <div class=\"font-medium mb-2\">Share with other accounts</div>\n\n <div>\n <mat-form-field class=\"w-full mt-0 mb-0\" appearance=\"fill\">\n <mat-label>Search for Account</mat-label>\n <input type=\"text\"\n placeholder=\"Enter account name\"\n matInput\n [(ngModel)]=\"accountSearch\"\n [matAutocomplete]=\"auto\" (keyup)=\"filterSharableAccounts()\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selectAccount($event.option.value)\">\n <mat-option *ngFor=\"let account of accounts\" [value]=\"account\">\n {{ account.accountName }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <a (click)=\"enterSharingIdentifier=true\"\n class=\"bg-secondary px-2 py-1 rounded text-white inline-block mb-4\">or enter\n a sharing identifier</a>\n\n <div *ngIf=\"enterSharingIdentifier\" class=\"flex\">\n <input class=\"full\" type=\"text\" [(ngModel)]=\"sharingIdentifier\"\n placeholder=\"Enter sharing identifier for other account\">\n <button (click)=\"lookupSharingIdentifier()\" mat-flat-button color=\"primary\" class=\"ml-2\">\n Lookup\n </button>\n </div>\n <div class=\"text-xs text-red-500\" *ngIf=\"sharingIdentifierError\">Invalid sharing identifier\n supplied.\n </div>\n\n </div>\n\n <div *ngIf=\"selectedAccount\" class=\"mt-8\">\n\n <h4>Share with account: {{selectedAccount.accountName}}</h4>\n\n <div class=\"flex items-center justify-between\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Expiry Date for sharing</mat-label>\n <input type=\"date\"\n matInput\n [(ngModel)]=\"selectedExpiry\">\n </mat-form-field>\n\n <button mat-flat-button color=\"primary\" (click)=\"inviteSelectedAccount()\">\n Invite to share\n </button>\n\n </div>\n\n\n </div>\n\n <hr class=\"my-8\">\n\n <div class=\" pl-3 tracking-wide uppercase border-b pb-2\">Invited Accounts</div>\n\n <table class=\"mb-10\">\n <thead class=\"bg-gray-100\">\n <tr>\n <th class=\"w-1/2 sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">Account Name</th>\n <th class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">Access Expires</th>\n <th class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\"></th>\n </tr>\n </thead>\n <tr *ngFor=\"let account of invitedAccounts\">\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm font-medium text-gray-900\">{{account.scopeAccesses[0].itemLabel}}</td>\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm text-gray-500\">{{account.expiryDateString ? moment(account.expiryDateString).format('MMMM Do YYYY') : 'Never'}}</td>\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm text-gray-500 text-right\">\n <a class=\"text-secondary bg-gray-50 border px-2 py-1 rounded\" (click)=\"cancelInvitation(account.groupName)\">cancel invite</a>\n </td>\n </tr>\n </table>\n\n\n <div class=\" pl-3 tracking-wide uppercase border-b pb-2\">Accounts with Access</div>\n\n <table>\n <thead class=\"bg-gray-100\">\n <tr>\n <th class=\"w-1/2 sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">Account Name</th>\n <th class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">Access Expires</th>\n <th class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\"></th>\n </tr>\n </thead>\n <ng-template ngFor let-account [ngForOf]=\"sharedAccounts\">\n <tr *ngIf=\"String(account.scopeAccesses[0].itemIdentifier) !== String(session.account.accountId)\">\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm font-medium text-gray-900\">{{account.scopeAccesses[0].itemLabel}}</td>\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm text-gray-500\">{{account.expiryDateString ? moment(account.expiryDateString).format('MMMM Do YYYY') : 'Never'}}</td>\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm text-gray-500 text-right\">\n <a class=\"text-secondary bg-gray-50 border px-2 py-1 rounded\" (click)=\"revokeAccessToGroup(account.groupName)\">revoke access</a>\n </td>\n </tr>\n </ng-template>\n </table>\n\n\n </div>\n </mat-tab>\n<!-- <mat-tab label=\"Marketplace\">-->\n<!-- <div class=\"px-6 py-4\">-->\n<!-- <mat-checkbox-->\n<!-- [(ngModel)]=\"listOnMarketplace\">-->\n<!-- List Query on Marketplace-->\n<!-- </mat-checkbox>-->\n<!-- <div class=\"text-xs text-gray-400\">-->\n<!-- Advertise this query to other users via the DAP Marketplace.-->\n<!-- </div>-->\n\n<!-- <div class=\"border-l pl-8\" *ngIf=\"listOnMarketplace\">-->\n\n<!-- <div class=\"my-4\">-->\n<!-- <p><b>Marketplace Description</b></p>-->\n<!-- <textarea [(ngModel)]=\"marketplaceData.description\" placeholder=\"Enter description\" rows=\"3\"-->\n<!-- class=\"w-full\"></textarea>-->\n<!-- <div class=\"text-xs text-gray-400\">Describe the data you are offering.</div>-->\n<!-- </div>-->\n\n<!-- <div class=\"my-4\">-->\n<!-- <p><b>Upload Icon</b></p>-->\n<!-- <input class=\"full\" type=\"file\" [(ngModel)]=\"marketplaceData.icon\">-->\n<!-- <div class=\"text-xs text-gray-400\">Attach a small image to help identify your data.</div>-->\n<!-- </div>-->\n\n<!-- <div class=\"my-4\">-->\n<!-- <p><b>Price</b></p>-->\n<!-- <input class=\"w-1/2\" type=\"number\" placeholder=\"Enter price\" [(ngModel)]=\"marketplaceData.price\">-->\n<!-- <div class=\"text-xs text-gray-400\">Set a price for accessing this dataset.</div>-->\n<!-- </div>-->\n\n<!-- <mat-checkbox-->\n<!-- [(ngModel)]=\"marketplaceData.requireVerification\">-->\n<!-- Require Account Confirmation/Verification-->\n<!-- </mat-checkbox>-->\n<!-- <div class=\"text-xs text-gray-400\">Perform additional validation on accounts requesting access-->\n<!-- to this query.</div>-->\n\n<!-- </div>-->\n\n<!-- </div>-->\n<!-- </mat-tab>-->\n </mat-tab-group>\n\n </div>\n\n <div class=\"dialog-footer\">\n <button mat-button mat-dialog-close>Close</button>\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatLegacyDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i7.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i9.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i9.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i10.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: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i11.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i12.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i13.MatLegacyTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { kind: "component", type: i13.MatLegacyTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i14.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i14.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }] });
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ShareQueryComponent, decorators: [{
|
|
104
|
-
type: Component,
|
|
105
|
-
args: [{ selector: 'ki-share-query', host: { class: 'dialog-wrapper' }, template: "<div class=\"dialog\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\">\n\n <div class=\"dialog-title\" cdkDragHandle>\n <h2 mat-dialog-title>Share Query</h2>\n\n <button mat-icon-button mat-dialog-close>\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n\n <div class=\"dialog-content p-0\">\n <mat-tab-group>\n <mat-tab label=\"Sharing\">\n <div class=\"bg-blue-50 p-4\">\n <div class=\"flex\">\n <div class=\"flex-shrink-0\">\n <!-- Heroicon name: mini/information-circle -->\n <svg class=\"h-5 w-5 text-blue-400\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\"\n fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M19 10.5a8.5 8.5 0 11-17 0 8.5 8.5 0 0117 0zM8.25 9.75A.75.75 0 019 9h.253a1.75 1.75 0 011.709 2.13l-.46 2.066a.25.25 0 00.245.304H11a.75.75 0 010 1.5h-.253a1.75 1.75 0 01-1.709-2.13l.46-2.066a.25.25 0 00-.245-.304H9a.75.75 0 01-.75-.75zM10 7a1 1 0 100-2 1 1 0 000 2z\"\n clip-rule=\"evenodd\"/>\n </svg>\n </div>\n <div class=\"ml-3 flex-1 md:flex md:justify-between\">\n <p class=\"text-sm text-blue-700 mb-0\">\n Share this query with other DAP users via a number of different methods.\n </p>\n </div>\n </div>\n </div>\n <div *ngIf=\"!hideShareWithAccount\" class=\"px-6 pt-6 pb-4\">\n <mat-checkbox\n [(ngModel)]=\"shareWithAccount\" (change)=\"setLoggedInAccountShareStatus($event)\">\n Share With This Account\n </mat-checkbox>\n <div class=\"text-xs text-gray-400\">\n Make this query available to everyone who has access to the\n <b>{{ (session && session.account) ? session.account.name : '' }}</b> account.\n </div>\n </div>\n\n <div class=\"px-6 py-4\">\n\n <div class=\"font-medium mb-2\">Share with other accounts</div>\n\n <div>\n <mat-form-field class=\"w-full mt-0 mb-0\" appearance=\"fill\">\n <mat-label>Search for Account</mat-label>\n <input type=\"text\"\n placeholder=\"Enter account name\"\n matInput\n [(ngModel)]=\"accountSearch\"\n [matAutocomplete]=\"auto\" (keyup)=\"filterSharableAccounts()\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selectAccount($event.option.value)\">\n <mat-option *ngFor=\"let account of accounts\" [value]=\"account\">\n {{ account.accountName }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <a (click)=\"enterSharingIdentifier=true\"\n class=\"bg-secondary px-2 py-1 rounded text-white inline-block mb-4\">or enter\n a sharing identifier</a>\n\n <div *ngIf=\"enterSharingIdentifier\" class=\"flex\">\n <input class=\"full\" type=\"text\" [(ngModel)]=\"sharingIdentifier\"\n placeholder=\"Enter sharing identifier for other account\">\n <button (click)=\"lookupSharingIdentifier()\" mat-flat-button color=\"primary\" class=\"ml-2\">\n Lookup\n </button>\n </div>\n <div class=\"text-xs text-red-500\" *ngIf=\"sharingIdentifierError\">Invalid sharing identifier\n supplied.\n </div>\n\n </div>\n\n <div *ngIf=\"selectedAccount\" class=\"mt-8\">\n\n <h4>Share with account: {{selectedAccount.accountName}}</h4>\n\n <div class=\"flex items-center justify-between\">\n <mat-form-field appearance=\"fill\">\n <mat-label>Expiry Date for sharing</mat-label>\n <input type=\"date\"\n matInput\n [(ngModel)]=\"selectedExpiry\">\n </mat-form-field>\n\n <button mat-flat-button color=\"primary\" (click)=\"inviteSelectedAccount()\">\n Invite to share\n </button>\n\n </div>\n\n\n </div>\n\n <hr class=\"my-8\">\n\n <div class=\" pl-3 tracking-wide uppercase border-b pb-2\">Invited Accounts</div>\n\n <table class=\"mb-10\">\n <thead class=\"bg-gray-100\">\n <tr>\n <th class=\"w-1/2 sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">Account Name</th>\n <th class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">Access Expires</th>\n <th class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\"></th>\n </tr>\n </thead>\n <tr *ngFor=\"let account of invitedAccounts\">\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm font-medium text-gray-900\">{{account.scopeAccesses[0].itemLabel}}</td>\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm text-gray-500\">{{account.expiryDateString ? moment(account.expiryDateString).format('MMMM Do YYYY') : 'Never'}}</td>\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm text-gray-500 text-right\">\n <a class=\"text-secondary bg-gray-50 border px-2 py-1 rounded\" (click)=\"cancelInvitation(account.groupName)\">cancel invite</a>\n </td>\n </tr>\n </table>\n\n\n <div class=\" pl-3 tracking-wide uppercase border-b pb-2\">Accounts with Access</div>\n\n <table>\n <thead class=\"bg-gray-100\">\n <tr>\n <th class=\"w-1/2 sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">Account Name</th>\n <th class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\">Access Expires</th>\n <th class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 text-left text-xs font-semibold text-gray-900 backdrop-blur backdrop-filter\"></th>\n </tr>\n </thead>\n <ng-template ngFor let-account [ngForOf]=\"sharedAccounts\">\n <tr *ngIf=\"String(account.scopeAccesses[0].itemIdentifier) !== String(session.account.accountId)\">\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm font-medium text-gray-900\">{{account.scopeAccesses[0].itemLabel}}</td>\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm text-gray-500\">{{account.expiryDateString ? moment(account.expiryDateString).format('MMMM Do YYYY') : 'Never'}}</td>\n <td class=\"whitespace-nowrap border-gray-200 px-4 py-2 text-sm text-gray-500 text-right\">\n <a class=\"text-secondary bg-gray-50 border px-2 py-1 rounded\" (click)=\"revokeAccessToGroup(account.groupName)\">revoke access</a>\n </td>\n </tr>\n </ng-template>\n </table>\n\n\n </div>\n </mat-tab>\n<!-- <mat-tab label=\"Marketplace\">-->\n<!-- <div class=\"px-6 py-4\">-->\n<!-- <mat-checkbox-->\n<!-- [(ngModel)]=\"listOnMarketplace\">-->\n<!-- List Query on Marketplace-->\n<!-- </mat-checkbox>-->\n<!-- <div class=\"text-xs text-gray-400\">-->\n<!-- Advertise this query to other users via the DAP Marketplace.-->\n<!-- </div>-->\n\n<!-- <div class=\"border-l pl-8\" *ngIf=\"listOnMarketplace\">-->\n\n<!-- <div class=\"my-4\">-->\n<!-- <p><b>Marketplace Description</b></p>-->\n<!-- <textarea [(ngModel)]=\"marketplaceData.description\" placeholder=\"Enter description\" rows=\"3\"-->\n<!-- class=\"w-full\"></textarea>-->\n<!-- <div class=\"text-xs text-gray-400\">Describe the data you are offering.</div>-->\n<!-- </div>-->\n\n<!-- <div class=\"my-4\">-->\n<!-- <p><b>Upload Icon</b></p>-->\n<!-- <input class=\"full\" type=\"file\" [(ngModel)]=\"marketplaceData.icon\">-->\n<!-- <div class=\"text-xs text-gray-400\">Attach a small image to help identify your data.</div>-->\n<!-- </div>-->\n\n<!-- <div class=\"my-4\">-->\n<!-- <p><b>Price</b></p>-->\n<!-- <input class=\"w-1/2\" type=\"number\" placeholder=\"Enter price\" [(ngModel)]=\"marketplaceData.price\">-->\n<!-- <div class=\"text-xs text-gray-400\">Set a price for accessing this dataset.</div>-->\n<!-- </div>-->\n\n<!-- <mat-checkbox-->\n<!-- [(ngModel)]=\"marketplaceData.requireVerification\">-->\n<!-- Require Account Confirmation/Verification-->\n<!-- </mat-checkbox>-->\n<!-- <div class=\"text-xs text-gray-400\">Perform additional validation on accounts requesting access-->\n<!-- to this query.</div>-->\n\n<!-- </div>-->\n\n<!-- </div>-->\n<!-- </mat-tab>-->\n </mat-tab-group>\n\n </div>\n\n <div class=\"dialog-footer\">\n <button mat-button mat-dialog-close>Close</button>\n </div>\n\n</div>\n" }]
|
|
106
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
107
|
-
type: Inject,
|
|
108
|
-
args: [MAT_DIALOG_DATA]
|
|
109
|
-
}] }, { type: i2.AuthenticationService }, { type: i2.AccountService }, { type: i3.DatasetService }]; } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtcXVlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9jb21wb25lbnRzL2RhdGFzZXQvZGF0YXNldC1lZGl0b3Ivc2hhcmUtcXVlcnkvc2hhcmUtcXVlcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9jb21wb25lbnRzL2RhdGFzZXQvZGF0YXNldC1lZGl0b3Ivc2hhcmUtcXVlcnkvc2hhcmUtcXVlcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUNILHNCQUFzQixJQUFJLGVBQWUsRUFFNUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUl6QyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztBQVF6QixNQUFNLE9BQU8sbUJBQW1CO0lBb0I1QixZQUFtQixTQUE0QyxFQUNuQixJQUFTLEVBQ2pDLFdBQWtDLEVBQ2xDLGNBQThCLEVBQzlCLGNBQThCO1FBSi9CLGNBQVMsR0FBVCxTQUFTLENBQW1DO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQXVCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF0QjNDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFDekIsb0JB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bmVudCwgSW5qZWN0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSxcbiAgICBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHtBY2NvdW50U2VydmljZSwgQXV0aGVudGljYXRpb25TZXJ2aWNlfSBmcm9tICduZy1raW5pYXV0aCc7XG5pbXBvcnQge01hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge0RhdGFzZXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9kYXRhc2V0LnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgKiBhcyBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcblxuY29uc3QgXyA9IGxvZGFzaC5kZWZhdWx0O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tpLXNoYXJlLXF1ZXJ5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2hhcmUtcXVlcnkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NoYXJlLXF1ZXJ5LmNvbXBvbmVudC5zYXNzJ10sXG4gICAgaG9zdDoge2NsYXNzOiAnZGlhbG9nLXdyYXBwZXInfVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZVF1ZXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIHB1YmxpYyBzaGFyZVdpdGhBY2NvdW50ID0gZmFsc2U7XG4gICAgcHVibGljIGhpZGVTaGFyZVdpdGhBY2NvdW50ID0gZmFsc2U7XG4gICAgcHVibGljIHNoYXJlZEFjY291bnRzOiBhbnkgPSBbXTtcbiAgICBwdWJsaWMgaW52aXRlZEFjY291bnRzOiBhbnkgPSBbXTtcbiAgICBwdWJsaWMgc2Vzc2lvbjogYW55O1xuICAgIHB1YmxpYyBhY2NvdW50czogYW55O1xuICAgIHB1YmxpYyBhY2NvdW50U2VhcmNoOiBzdHJpbmcgPSAnJztcbiAgICBwdWJsaWMgZW50ZXJTaGFyaW5nSWRlbnRpZmllcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBzaGFyaW5nSWRlbnRpZmllcjogc3RyaW5nID0gJyc7XG4gICAgcHVibGljIHNoYXJpbmdJZGVudGlmaWVyRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRBY2NvdW50OiBhbnk7XG4gICAgcHVibGljIHNlbGVjdGVkRXhwaXJ5OiBzdHJpbmc7XG4gICAgcHVibGljIG1vbWVudDogYW55ID0gbW9tZW50O1xuICAgIHB1YmxpYyBtYXJrZXRwbGFjZURhdGE6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBsaXN0T25NYXJrZXRwbGFjZSA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFN0cmluZyA9IFN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTaGFyZVF1ZXJ5Q29tcG9uZW50PixcbiAgICAgICAgICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBkYXRhc2V0U2VydmljZTogRGF0YXNldFNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5oaWRlU2hhcmVXaXRoQWNjb3VudCA9ICEhdGhpcy5kYXRhLmhpZGVTaGFyZVdpdGhBY2NvdW50O1xuICAgICAgICB0aGlzLnNlc3Npb24gPSBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmdldFNlc3Npb25EYXRhKCk7XG4gICAgICAgIHRoaXMubG9hZFNoYXJlZEFjY291bnRzKCk7XG4gICAgICAgIHRoaXMubG9hZEludml0ZWRBY2NvdW50cygpO1xuICAgIH1cblxuXG4gICAgcHVibGljIGFzeW5jIGxvYWRTaGFyZWRBY2NvdW50cygpIHtcbiAgICAgICAgdGhpcy5zaGFyZWRBY2NvdW50cyA9IGF3YWl0IHRoaXMuZGF0YXNldFNlcnZpY2UuZ2V0U2hhcmVkQWNjZXNzR3JvdXBzRm9yRGF0YXNldEluc3RhbmNlKHRoaXMuZGF0YS5kYXRhc2V0SW5zdGFuY2UuaWQpO1xuICAgICAgICB0aGlzLnNoYXJlV2l0aEFjY291bnQgPSBfLnNvbWUodGhpcy5zaGFyZWRBY2NvdW50cywgc2hhcmVkQWNjb3VudCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gXy5maW5kKHNoYXJlZEFjY291bnQuc2NvcGVBY2Nlc3Nlcywge2l0ZW1JZGVudGlmaWVyOiBTdHJpbmcodGhpcy5zZXNzaW9uLmFjY291bnQuYWNjb3VudElkKX0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBhc3luYyBsb2FkSW52aXRlZEFjY291bnRzKCkge1xuICAgICAgICB0aGlzLmludml0ZWRBY2NvdW50cyA9IGF3YWl0IHRoaXMuZGF0YXNldFNlcnZpY2UuZ2V0SW52aXRlZEFjY2Vzc0dyb3Vwc0ZvckRhdGFzZXRJbnN0YW5jZSh0aGlzLmRhdGEuZGF0YXNldEluc3RhbmNlLmlkKTtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBhc3luYyBmaWx0ZXJTaGFyYWJsZUFjY291bnRzKCkge1xuICAgICAgICB0aGlzLmFjY291bnRzID0gYXdhaXQgdGhpcy5hY2NvdW50U2VydmljZS5zZWFyY2hGb3JEaXNjb3ZlcmFibGVBY2NvdW50cyh0aGlzLmFjY291bnRTZWFyY2gpO1xuICAgIH1cblxuXG4gICAgcHVibGljIGFzeW5jIHNldExvZ2dlZEluQWNjb3VudFNoYXJlU3RhdHVzKGV2ZW50KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YXNldFNlcnZpY2Uuc2V0U2hhcmVkQWNjZXNzRm9yRGF0YXNldEluc3RhbmNlRm9yTG9nZ2VkSW5BY2NvdW50KHRoaXMuZGF0YS5kYXRhc2V0SW5zdGFuY2UuaWQsIGV2ZW50LmNoZWNrZWQpO1xuICAgICAgICB0aGlzLmxvYWRTaGFyZWRBY2NvdW50cygpO1xuICAgIH1cblxuXG4gICAgcHVibGljIGFzeW5jIGxvb2t1cFNoYXJpbmdJZGVudGlmaWVyKCkge1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgYWNjb3VudDogYW55ID0gYXdhaXQgdGhpcy5hY2NvdW50U2VydmljZS5sb29rdXBEaXNjb3ZlcmFibGVBY2NvdW50QnlFeHRlcm5hbElkZW50aWZpZXIodGhpcy5zaGFyaW5nSWRlbnRpZmllcik7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEFjY291bnQoYWNjb3VudCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hhcmluZ0lkZW50aWZpZXJFcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIFNlbGVjdCBhY2NvdW50LCBhbmQgc2hvdyBhZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAgcHVibGljIHNlbGVjdEFjY291bnQoYWNjb3VudDogYW55KSB7XG5cbiAgICAgICAgdGhpcy5hY2NvdW50U2VhcmNoID0gJyc7XG4gICAgICAgIHRoaXMuc2hhcmluZ0lkZW50aWZpZXJFcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNoYXJpbmdJZGVudGlmaWVyID0gJyc7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEFjY291bnQgPSBhY2NvdW50O1xuXG4gICAgfVxuXG4gICAgLy8gSW52aXRlIHRoZSBzZWxlY3RlZCBhY2NvdW50IHRvIHNoYXJlIHdpdGggdGhlIGN1cnJlbnQgcXVlcnkuXG4gICAgcHVibGljIGFzeW5jIGludml0ZVNlbGVjdGVkQWNjb3VudCgpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kYXRhc2V0U2VydmljZS5pbnZpdGVBY2NvdW50VG9TaGFyZURhdGFzZXRJbnN0YW5jZSh0aGlzLmRhdGEuZGF0YXNldEluc3RhbmNlLmlkLCB0aGlzLnNlbGVjdGVkQWNjb3VudC5leHRlcm5hbElkZW50aWZpZXIsIHRoaXMuc2VsZWN0ZWRFeHBpcnkpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQWNjb3VudCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9hZEludml0ZWRBY2NvdW50cygpO1xuICAgIH1cblxuXG4gICAgLy8gUmV2b2tlIGFjY2VzcyB0byBhIGdyb3VwXG4gICAgcHVibGljIGFzeW5jIHJldm9rZUFjY2Vzc1RvR3JvdXAoYWNjZXNzR3JvdXApIHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdBcmUgeW91IHN1cmUgeW91IHdvdWxkIGxpa2UgdG8gcmV2b2tlIGFjY2VzcyB0byB0aGlzIGFjY291bnQ/JztcbiAgICAgICAgaWYgKHdpbmRvdy5jb25maXJtKG1lc3NhZ2UpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRhdGFzZXRTZXJ2aWNlLnJldm9rZUFjY2Vzc1RvR3JvdXBGb3JEYXRhc2V0SW5zdGFuY2UodGhpcy5kYXRhLmRhdGFzZXRJbnN0YW5jZS5pZCwgYWNjZXNzR3JvdXApO1xuICAgICAgICAgICAgdGhpcy5sb2FkU2hhcmVkQWNjb3VudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjYW5jZWxJbnZpdGF0aW9uKGFjY2Vzc0dyb3VwKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSAnQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIGNhbmNlbCB0aGlzIGludml0YXRpb24/JztcbiAgICAgICAgaWYgKHdpbmRvdy5jb25maXJtKG1lc3NhZ2UpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRhdGFzZXRTZXJ2aWNlLmNhbmNlbEludml0YXRpb25Gb3JBY2Nlc3NHcm91cEZvckRhdGFzZXRJbnN0YW5jZSh0aGlzLmRhdGEuZGF0YXNldEluc3RhbmNlLmlkLCBhY2Nlc3NHcm91cCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRJbnZpdGVkQWNjb3VudHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2dcIiBjZGtEcmFnIGNka0RyYWdSb290RWxlbWVudD1cIi5jZGstb3ZlcmxheS1wYW5lXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXRpdGxlXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+U2hhcmUgUXVlcnk8L2gyPlxuXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2xlYXI8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudCBwLTBcIj5cbiAgICAgICAgPG1hdC10YWItZ3JvdXA+XG4gICAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIlNoYXJpbmdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctYmx1ZS01MCBwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBtaW5pL2luZm9ybWF0aW9uLWNpcmNsZSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaC01IHctNSB0ZXh0LWJsdWUtNDAwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSAxMC41YTguNSA4LjUgMCAxMS0xNyAwIDguNSA4LjUgMCAwMTE3IDB6TTguMjUgOS43NUEuNzUuNzUgMCAwMTkgOWguMjUzYTEuNzUgMS43NSAwIDAxMS43MDkgMi4xM2wtLjQ2IDIuMDY2YS4yNS4yNSAwIDAwLjI0NS4zMDRIMTFhLjc1Ljc1IDAgMDEwIDEuNWgtLjI1M2ExLjc1IDEuNzUgMCAwMS0xLjcwOS0yLjEzbC40Ni0yLjA2NmEuMjUuMjUgMCAwMC0uMjQ1LS4zMDRIOWEuNzUuNzUgMCAwMS0uNzUtLjc1ek0xMCA3YTEgMSAwIDEwMC0yIDEgMSAwIDAwMCAyelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtbC0zIGZsZXgtMSBtZDpmbGV4IG1kOmp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsdWUtNzAwIG1iLTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhcmUgdGhpcyBxdWVyeSB3aXRoIG90aGVyIERBUCB1c2VycyB2aWEgYSBudW1iZXIgb2YgZGlmZmVyZW50IG1ldGhvZHMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaGlkZVNoYXJlV2l0aEFjY291bnRcIiBjbGFzcz1cInB4LTYgcHQtNiBwYi00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2hhcmVXaXRoQWNjb3VudFwiIChjaGFuZ2UpPVwic2V0TG9nZ2VkSW5BY2NvdW50U2hhcmVTdGF0dXMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgU2hhcmUgV2l0aCBUaGlzIEFjY291bnRcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS00MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE1ha2UgdGhpcyBxdWVyeSBhdmFpbGFibGUgdG8gZXZlcnlvbmUgd2hvIGhhcyBhY2Nlc3MgdG8gdGhlXG4gICAgICAgICAgICAgICAgICAgICAgICA8Yj57eyAoc2Vzc2lvbiAmJiBzZXNzaW9uLmFjY291bnQpID8gc2Vzc2lvbi5hY2NvdW50Lm5hbWUgOiAnJyB9fTwvYj4gYWNjb3VudC5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtNiBweS00XCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbWVkaXVtIG1iLTJcIj5TaGFyZSB3aXRoIG90aGVyIGFjY291bnRzPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctZnVsbCBtdC0wIG1iLTBcIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+U2VhcmNoIGZvciBBY2NvdW50PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBhY2NvdW50IG5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFjY291bnRTZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiAoa2V5dXApPVwiZmlsdGVyU2hhcmFibGVBY2NvdW50cygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VsZWN0QWNjb3VudCgkZXZlbnQub3B0aW9uLnZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYWNjb3VudCBvZiBhY2NvdW50c1wiIFt2YWx1ZV09XCJhY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBhY2NvdW50LmFjY291bnROYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cImVudGVyU2hhcmluZ0lkZW50aWZpZXI9dHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLXNlY29uZGFyeSBweC0yIHB5LTEgcm91bmRlZCB0ZXh0LXdoaXRlIGlubGluZS1ibG9jayBtYi00XCI+b3IgZW50ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHNoYXJpbmcgaWRlbnRpZmllcjwvYT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVudGVyU2hhcmluZ0lkZW50aWZpZXJcIiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmdWxsXCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNoYXJpbmdJZGVudGlmaWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBzaGFyaW5nIGlkZW50aWZpZXIgZm9yIG90aGVyIGFjY291bnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJsb29rdXBTaGFyaW5nSWRlbnRpZmllcigpXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwibWwtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb29rdXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQteHMgdGV4dC1yZWQtNTAwXCIgKm5nSWY9XCJzaGFyaW5nSWRlbnRpZmllckVycm9yXCI+SW52YWxpZCBzaGFyaW5nIGlkZW50aWZpZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwbGllZC5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEFjY291bnRcIiBjbGFzcz1cIm10LThcIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlNoYXJlIHdpdGggYWNjb3VudDoge3tzZWxlY3RlZEFjY291bnQuYWNjb3VudE5hbWV9fTwvaDQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5FeHBpcnkgRGF0ZSBmb3Igc2hhcmluZzwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRFeHBpcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImludml0ZVNlbGVjdGVkQWNjb3VudCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludml0ZSB0byBzaGFyZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz1cIm15LThcIj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHBsLTMgdHJhY2tpbmctd2lkZSB1cHBlcmNhc2UgYm9yZGVyLWIgcGItMlwiPkludml0ZWQgQWNjb3VudHM8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJtYi0xMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkIGNsYXNzPVwiYmctZ3JheS0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ3LTEvMiBzdGlja3kgdG9wLTAgei0xMCBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgYmctZ3JheS01MCBiZy1vcGFjaXR5LTc1IHB5LTMuNSBweC00IHRleHQtbGVmdCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBiYWNrZHJvcC1ibHVyIGJhY2tkcm9wLWZpbHRlclwiPkFjY291bnQgTmFtZTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwic3RpY2t5IHRvcC0wIHotMTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgYmctb3BhY2l0eS03NSBweS0zLjUgcHgtNCB0ZXh0LWxlZnQgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgYmFja2Ryb3AtYmx1ciBiYWNrZHJvcC1maWx0ZXJcIj5BY2Nlc3MgRXhwaXJlczwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwic3RpY2t5IHRvcC0wIHotMTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgYmctb3BhY2l0eS03NSBweS0zLjUgcHgtNCB0ZXh0LWxlZnQgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgYmFja2Ryb3AtYmx1ciBiYWNrZHJvcC1maWx0ZXJcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGFjY291bnQgb2YgaW52aXRlZEFjY291bnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS05MDBcIj57e2FjY291bnQuc2NvcGVBY2Nlc3Nlc1swXS5pdGVtTGFiZWx9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LXNtIHRleHQtZ3JheS01MDBcIj57e2FjY291bnQuZXhwaXJ5RGF0ZVN0cmluZyA/IG1vbWVudChhY2NvdW50LmV4cGlyeURhdGVTdHJpbmcpLmZvcm1hdCgnTU1NTSBEbyBZWVlZJykgOiAnTmV2ZXInfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwIGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBiZy1ncmF5LTUwIGJvcmRlciBweC0yIHB5LTEgcm91bmRlZFwiIChjbGljayk9XCJjYW5jZWxJbnZpdGF0aW9uKGFjY291bnQuZ3JvdXBOYW1lKVwiPmNhbmNlbCBpbnZpdGU8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHBsLTMgdHJhY2tpbmctd2lkZSB1cHBlcmNhc2UgYm9yZGVyLWIgcGItMlwiPkFjY291bnRzIHdpdGggQWNjZXNzPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPHRhYmxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkIGNsYXNzPVwiYmctZ3JheS0xMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJ3LTEvMiBzdGlja3kgdG9wLTAgei0xMCBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgYmctZ3JheS01MCBiZy1vcGFjaXR5LTc1IHB5LTMuNSBweC00IHRleHQtbGVmdCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBiYWNrZHJvcC1ibHVyIGJhY2tkcm9wLWZpbHRlclwiPkFjY291bnQgTmFtZTwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwic3RpY2t5IHRvcC0wIHotMTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgYmctb3BhY2l0eS03NSBweS0zLjUgcHgtNCB0ZXh0LWxlZnQgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgYmFja2Ryb3AtYmx1ciBiYWNrZHJvcC1maWx0ZXJcIj5BY2Nlc3MgRXhwaXJlczwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwic3RpY2t5IHRvcC0wIHotMTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgYmctb3BhY2l0eS03NSBweS0zLjUgcHgtNCB0ZXh0LWxlZnQgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDAgYmFja2Ryb3AtYmx1ciBiYWNrZHJvcC1maWx0ZXJcIj48L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWFjY291bnQgW25nRm9yT2ZdPVwic2hhcmVkQWNjb3VudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJTdHJpbmcoYWNjb3VudC5zY29wZUFjY2Vzc2VzWzBdLml0ZW1JZGVudGlmaWVyKSAhPT0gU3RyaW5nKHNlc3Npb24uYWNjb3VudC5hY2NvdW50SWQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwIGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+e3thY2NvdW50LnNjb3BlQWNjZXNzZXNbMF0uaXRlbUxhYmVsfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcCBib3JkZXItZ3JheS0yMDAgcHgtNCBweS0yIHRleHQtc20gdGV4dC1ncmF5LTUwMFwiPnt7YWNjb3VudC5leHBpcnlEYXRlU3RyaW5nID8gbW9tZW50KGFjY291bnQuZXhwaXJ5RGF0ZVN0cmluZykuZm9ybWF0KCdNTU1NIERvIFlZWVknKSA6ICdOZXZlcid9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwIGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwIHRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgYmctZ3JheS01MCBib3JkZXIgcHgtMiBweS0xIHJvdW5kZWRcIiAoY2xpY2spPVwicmV2b2tlQWNjZXNzVG9Hcm91cChhY2NvdW50Lmdyb3VwTmFtZSlcIj5yZXZva2UgYWNjZXNzPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPlxuXG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LXRhYj5cbjwhLS0gICAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIk1hcmtldHBsYWNlXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC02IHB5LTRcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3gtLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxpc3RPbk1hcmtldHBsYWNlXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBRdWVyeSBvbiBNYXJrZXRwbGFjZS0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyYXktNDAwXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgQWR2ZXJ0aXNlIHRoaXMgcXVlcnkgdG8gb3RoZXIgdXNlcnMgdmlhIHRoZSBEQVAgTWFya2V0cGxhY2UuLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1sIHBsLThcIiAqbmdJZj1cImxpc3RPbk1hcmtldHBsYWNlXCI+LS0+XG5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD48Yj5NYXJrZXRwbGFjZSBEZXNjcmlwdGlvbjwvYj48L3A+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cIm1hcmtldHBsYWNlRGF0YS5kZXNjcmlwdGlvblwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgZGVzY3JpcHRpb25cIiByb3dzPVwiM1wiLS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbFwiPjwvdGV4dGFyZWE+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS00MDBcIj5EZXNjcmliZSB0aGUgZGF0YSB5b3UgYXJlIG9mZmVyaW5nLjwvZGl2Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxuXG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTRcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+PGI+VXBsb2FkIEljb248L2I+PC9wPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmdWxsXCIgdHlwZT1cImZpbGVcIiBbKG5nTW9kZWwpXT1cIm1hcmtldHBsYWNlRGF0YS5pY29uXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS00MDBcIj5BdHRhY2ggYSBzbWFsbCBpbWFnZSB0byBoZWxwIGlkZW50aWZ5IHlvdXIgZGF0YS48L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS00XCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxiPlByaWNlPC9iPjwvcD4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwidy0xLzJcIiB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBwcmljZVwiIFsobmdNb2RlbCldPVwibWFya2V0cGxhY2VEYXRhLnByaWNlXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS00MDBcIj5TZXQgYSBwcmljZSBmb3IgYWNjZXNzaW5nIHRoaXMgZGF0YXNldC48L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3gtLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtYXJrZXRwbGFjZURhdGEucmVxdWlyZVZlcmlmaWNhdGlvblwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlIEFjY291bnQgQ29uZmlybWF0aW9uL1ZlcmlmaWNhdGlvbi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS00MDBcIj5QZXJmb3JtIGFkZGl0aW9uYWwgdmFsaWRhdGlvbiBvbiBhY2NvdW50cyByZXF1ZXN0aW5nIGFjY2Vzcy0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGlzIHF1ZXJ5LjwvZGl2Pi0tPlxuXG48IS0tICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cblxuPCEtLSAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cbjwhLS0gICAgICAgICAgICA8L21hdC10YWI+LS0+XG4gICAgICAgIDwvbWF0LXRhYi1ncm91cD5cblxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+Q2xvc2U8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
4
|
-
export class UpstreamChangesConfirmationComponent {
|
|
5
|
-
constructor(dialogRef) {
|
|
6
|
-
this.dialogRef = dialogRef;
|
|
7
|
-
}
|
|
8
|
-
ngOnInit() {
|
|
9
|
-
}
|
|
10
|
-
close(res) {
|
|
11
|
-
this.dialogRef.close(res);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
UpstreamChangesConfirmationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UpstreamChangesConfirmationComponent, deps: [{ token: i1.MatLegacyDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
-
UpstreamChangesConfirmationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UpstreamChangesConfirmationComponent, selector: "ki-upstream-changes-confirmation", ngImport: i0, template: "<div class=\"flex flex-col h-full justify-between p-8\">\n <div>\n <div class=\"mx-auto flex h-12 w-12 items-center justify-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"\n class=\"w-12 h-12 text-orange-500\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z\" />\n </svg>\n\n </div>\n <div class=\"mt-3 text-center sm:mt-5\">\n <h3 class=\"text-lg font-medium leading-6 text-gray-900\" id=\"modal-title\">Transformation Changes</h3>\n <div class=\"mt-2\">\n <p class=\"text-sm text-gray-500\">\n You have made changes which may result in upstream transformations becoming incompatible, causing\n the evaluation to fail.\n </p>\n\n <p class=\"text-sm text-gray-500\">\n You can choose to proceed with the evaluation keeping all transformations in place, remove the\n affected transformations, or cancel the changes you have made.\n </p>\n </div>\n </div>\n </div>\n <div class=\"mt-5 flex align-center justify-between\">\n <button type=\"button\" (click)=\"close()\"\n class=\"mr-2 inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-sm\">Cancel</button>\n <button type=\"button\" (click)=\"close('proceed')\"\n class=\"mx-2 inline-flex w-full justify-center rounded-md border border-primary text-primary bg-white px-4 py-2 text-sm font-medium shadow-sm\">Proceed Anyway</button>\n <button type=\"button\" (click)=\"close('remove')\"\n class=\"ml-2 inline-flex w-full justify-center rounded-md border border-transparent bg-primary px-4 py-2 text-sm font-medium text-white shadow-sm\">Remove Transformations</button>\n </div>\n</div>\n\n", styles: [":host{display:block;height:100%}\n"] });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UpstreamChangesConfirmationComponent, decorators: [{
|
|
17
|
-
type: Component,
|
|
18
|
-
args: [{ selector: 'ki-upstream-changes-confirmation', template: "<div class=\"flex flex-col h-full justify-between p-8\">\n <div>\n <div class=\"mx-auto flex h-12 w-12 items-center justify-center\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\"\n class=\"w-12 h-12 text-orange-500\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z\" />\n </svg>\n\n </div>\n <div class=\"mt-3 text-center sm:mt-5\">\n <h3 class=\"text-lg font-medium leading-6 text-gray-900\" id=\"modal-title\">Transformation Changes</h3>\n <div class=\"mt-2\">\n <p class=\"text-sm text-gray-500\">\n You have made changes which may result in upstream transformations becoming incompatible, causing\n the evaluation to fail.\n </p>\n\n <p class=\"text-sm text-gray-500\">\n You can choose to proceed with the evaluation keeping all transformations in place, remove the\n affected transformations, or cancel the changes you have made.\n </p>\n </div>\n </div>\n </div>\n <div class=\"mt-5 flex align-center justify-between\">\n <button type=\"button\" (click)=\"close()\"\n class=\"mr-2 inline-flex w-full justify-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 shadow-sm\">Cancel</button>\n <button type=\"button\" (click)=\"close('proceed')\"\n class=\"mx-2 inline-flex w-full justify-center rounded-md border border-primary text-primary bg-white px-4 py-2 text-sm font-medium shadow-sm\">Proceed Anyway</button>\n <button type=\"button\" (click)=\"close('remove')\"\n class=\"ml-2 inline-flex w-full justify-center rounded-md border border-transparent bg-primary px-4 py-2 text-sm font-medium text-white shadow-sm\">Remove Transformations</button>\n </div>\n</div>\n\n", styles: [":host{display:block;height:100%}\n"] }]
|
|
19
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }]; } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzdHJlYW0tY2hhbmdlcy1jb25maXJtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9jb21wb25lbnRzL2RhdGFzZXQvZGF0YXNldC1lZGl0b3IvdXBzdHJlYW0tY2hhbmdlcy1jb25maXJtYXRpb24vdXBzdHJlYW0tY2hhbmdlcy1jb25maXJtYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9jb21wb25lbnRzL2RhdGFzZXQvZGF0YXNldC1lZGl0b3IvdXBzdHJlYW0tY2hhbmdlcy1jb25maXJtYXRpb24vdXBzdHJlYW0tY2hhbmdlcy1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBUyxNQUFNLGVBQWUsQ0FBQzs7O0FBUWhELE1BQU0sT0FBTyxvQ0FBb0M7SUFFN0MsWUFBbUIsU0FBNkQ7UUFBN0QsY0FBUyxHQUFULFNBQVMsQ0FBb0Q7SUFDaEYsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQUk7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDOztrSUFWUSxvQ0FBb0M7c0hBQXBDLG9DQUFvQyx3RUNSakQsNnFFQWtDQTs0RkQxQmEsb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNJLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdraS11cHN0cmVhbS1jaGFuZ2VzLWNvbmZpcm1hdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Vwc3RyZWFtLWNoYW5nZXMtY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91cHN0cmVhbS1jaGFuZ2VzLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuc2FzcyddXG59KVxuZXhwb3J0IGNsYXNzIFVwc3RyZWFtQ2hhbmdlc0NvbmZpcm1hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VXBzdHJlYW1DaGFuZ2VzQ29uZmlybWF0aW9uQ29tcG9uZW50Pikge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZShyZXM/KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHJlcyk7XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGwganVzdGlmeS1iZXR3ZWVuIHAtOFwiPlxuICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJteC1hdXRvIGZsZXggaC0xMiB3LTEyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEyIGgtMTIgdGV4dC1vcmFuZ2UtNTAwXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgZD1cIk0xMiA5djMuNzVtLTkuMzAzIDMuMzc2Yy0uODY2IDEuNS4yMTcgMy4zNzQgMS45NDggMy4zNzRoMTQuNzFjMS43MyAwIDIuODEzLTEuODc0IDEuOTQ4LTMuMzc0TDEzLjk0OSAzLjM3OGMtLjg2Ni0xLjUtMy4wMzItMS41LTMuODk4IDBMMi42OTcgMTYuMTI2ek0xMiAxNS43NWguMDA3di4wMDhIMTJ2LS4wMDh6XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyB0ZXh0LWNlbnRlciBzbTptdC01XCI+XG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtbWVkaXVtIGxlYWRpbmctNiB0ZXh0LWdyYXktOTAwXCIgaWQ9XCJtb2RhbC10aXRsZVwiPlRyYW5zZm9ybWF0aW9uIENoYW5nZXM8L2gzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICBZb3UgaGF2ZSBtYWRlIGNoYW5nZXMgd2hpY2ggbWF5IHJlc3VsdCBpbiB1cHN0cmVhbSB0cmFuc2Zvcm1hdGlvbnMgYmVjb21pbmcgaW5jb21wYXRpYmxlLCBjYXVzaW5nXG4gICAgICAgICAgICAgICAgICAgIHRoZSBldmFsdWF0aW9uIHRvIGZhaWwuXG4gICAgICAgICAgICAgICAgPC9wPlxuXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgWW91IGNhbiBjaG9vc2UgdG8gcHJvY2VlZCB3aXRoIHRoZSBldmFsdWF0aW9uIGtlZXBpbmcgYWxsIHRyYW5zZm9ybWF0aW9ucyBpbiBwbGFjZSwgcmVtb3ZlIHRoZVxuICAgICAgICAgICAgICAgICAgICBhZmZlY3RlZCB0cmFuc2Zvcm1hdGlvbnMsIG9yIGNhbmNlbCB0aGUgY2hhbmdlcyB5b3UgaGF2ZSBtYWRlLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXQtNSBmbGV4IGFsaWduLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXItMiBpbmxpbmUtZmxleCB3LWZ1bGwganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJnLXdoaXRlIHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS03MDAgc2hhZG93LXNtXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZSgncHJvY2VlZCcpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm14LTIgaW5saW5lLWZsZXggdy1mdWxsIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1wcmltYXJ5IHRleHQtcHJpbWFyeSBiZy13aGl0ZSBweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSBzaGFkb3ctc21cIj5Qcm9jZWVkIEFueXdheTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2UoJ3JlbW92ZScpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLTIgaW5saW5lLWZsZXggdy1mdWxsIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy1wcmltYXJ5IHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgc2hhZG93LXNtXCI+UmVtb3ZlIFRyYW5zZm9ybWF0aW9uczwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|