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,62 +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 * as fileSaver from 'file-saver';
|
|
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 "../../../services/dataset.service";
|
|
8
|
-
import * as i3 from "@angular/material/legacy-snack-bar";
|
|
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/cdk/drag-drop";
|
|
13
|
-
import * as i8 from "@angular/forms";
|
|
14
|
-
import * as i9 from "@angular/material/legacy-checkbox";
|
|
15
|
-
const _ = lodash.default;
|
|
16
|
-
export class ExportDataComponent {
|
|
17
|
-
constructor(dialogRef, data, datasetService, snackBar) {
|
|
18
|
-
this.dialogRef = dialogRef;
|
|
19
|
-
this.data = data;
|
|
20
|
-
this.datasetService = datasetService;
|
|
21
|
-
this.snackBar = snackBar;
|
|
22
|
-
this.exportDataset = {};
|
|
23
|
-
}
|
|
24
|
-
ngOnInit() {
|
|
25
|
-
this.exportDataset.dataSetInstanceSummary = this.data.datasetInstanceSummary;
|
|
26
|
-
this.exportDataset.transformationInstances = [];
|
|
27
|
-
this.exportDataset.parameterValues = [];
|
|
28
|
-
this.exportDataset.limit = '100';
|
|
29
|
-
this.exportDataset.offset = '0';
|
|
30
|
-
this.exportDataset.exporterKey = 'sv';
|
|
31
|
-
this.exportDataset.exporterConfiguration = { includeHeaderRow: true, separator: ',' };
|
|
32
|
-
}
|
|
33
|
-
exportData() {
|
|
34
|
-
this.datasetService.exportDataset(this.exportDataset).then(res => {
|
|
35
|
-
let fileType = 'txt';
|
|
36
|
-
if (this.exportDataset.exporterKey === 'json') {
|
|
37
|
-
fileType = 'json';
|
|
38
|
-
}
|
|
39
|
-
else if (this.exportDataset.exporterKey === 'sv' &&
|
|
40
|
-
this.exportDataset.exporterConfiguration.separator === ',') {
|
|
41
|
-
fileType = 'csv';
|
|
42
|
-
}
|
|
43
|
-
const filename = _.kebabCase(this.exportDataset.dataSetInstanceSummary.title) + '-' + Date.now();
|
|
44
|
-
fileSaver.saveAs(res, filename + '.' + fileType);
|
|
45
|
-
this.dialogRef.close();
|
|
46
|
-
this.snackBar.open('Data Exported Successfully.', 'Close', {
|
|
47
|
-
duration: 3000,
|
|
48
|
-
verticalPosition: 'top'
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
ExportDataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExportDataComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.DatasetService }, { token: i3.MatLegacySnackBar }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
-
ExportDataComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ExportDataComponent, selector: "ki-export-data", 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>\n Export Data\n </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\">\n <label class=\"mb-4\">\n Export Type\n <select [(ngModel)]=\"exportDataset.exporterKey\">\n <option value=\"sv\">Separated Value</option>\n <option value=\"json\">JSON</option>\n </select>\n </label>\n\n <ng-template [ngIf]=\"exportDataset.exporterKey === 'sv'\">\n <mat-checkbox class=\"mb-2\"\n [(ngModel)]=\"exportDataset.exporterConfiguration.includeHeaderRow\">\n Include header row\n </mat-checkbox>\n <label class=\"mb-2\">\n Separator\n <input type=\"text\" [(ngModel)]=\"exportDataset.exporterConfiguration.separator\">\n <small class=\"font-normal\">Enter the character used to separate the values.</small>\n </label>\n </ng-template>\n\n <label class=\"mb-4\">\n Limit Results\n <select [(ngModel)]=\"exportDataset.limit\">\n <option value=\"1\">1</option>\n <option value=\"5\">5</option>\n <option value=\"10\">10</option>\n <option value=\"25\">25</option>\n <option value=\"50\">50</option>\n <option value=\"100\">100</option>\n <option value=\"250\">250</option>\n <option value=\"500\">500</option>\n <option value=\"1000\">1000</option>\n <option value=\"5000\">5000</option>\n <option value=\"10000\">10000</option>\n </select>\n </label>\n\n <label class=\"mb-4\">\n Offset Results\n <input type=\"number\" [(ngModel)]=\"exportDataset.offset\">\n </label>\n\n </div>\n\n <div class=\"dialog-footer\">\n <button mat-button mat-dialog-close mat-stroked-button type=\"button\">Close</button>\n\n <button mat-button mat-flat-button color=\"primary\" type=\"button\"\n (click)=\"exportData()\"\n [disabled]=\"!exportDataset.exporterKey\">Export Data\n </button>\n </div>\n\n</div>\n\n\n", styles: [""], dependencies: [{ 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: "directive", type: i7.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: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.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: i8.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i8.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatLegacyCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ExportDataComponent, decorators: [{
|
|
56
|
-
type: Component,
|
|
57
|
-
args: [{ selector: 'ki-export-data', 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>\n Export Data\n </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\">\n <label class=\"mb-4\">\n Export Type\n <select [(ngModel)]=\"exportDataset.exporterKey\">\n <option value=\"sv\">Separated Value</option>\n <option value=\"json\">JSON</option>\n </select>\n </label>\n\n <ng-template [ngIf]=\"exportDataset.exporterKey === 'sv'\">\n <mat-checkbox class=\"mb-2\"\n [(ngModel)]=\"exportDataset.exporterConfiguration.includeHeaderRow\">\n Include header row\n </mat-checkbox>\n <label class=\"mb-2\">\n Separator\n <input type=\"text\" [(ngModel)]=\"exportDataset.exporterConfiguration.separator\">\n <small class=\"font-normal\">Enter the character used to separate the values.</small>\n </label>\n </ng-template>\n\n <label class=\"mb-4\">\n Limit Results\n <select [(ngModel)]=\"exportDataset.limit\">\n <option value=\"1\">1</option>\n <option value=\"5\">5</option>\n <option value=\"10\">10</option>\n <option value=\"25\">25</option>\n <option value=\"50\">50</option>\n <option value=\"100\">100</option>\n <option value=\"250\">250</option>\n <option value=\"500\">500</option>\n <option value=\"1000\">1000</option>\n <option value=\"5000\">5000</option>\n <option value=\"10000\">10000</option>\n </select>\n </label>\n\n <label class=\"mb-4\">\n Offset Results\n <input type=\"number\" [(ngModel)]=\"exportDataset.offset\">\n </label>\n\n </div>\n\n <div class=\"dialog-footer\">\n <button mat-button mat-dialog-close mat-stroked-button type=\"button\">Close</button>\n\n <button mat-button mat-flat-button color=\"primary\" type=\"button\"\n (click)=\"exportData()\"\n [disabled]=\"!exportDataset.exporterKey\">Export Data\n </button>\n </div>\n\n</div>\n\n\n" }]
|
|
58
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
59
|
-
type: Inject,
|
|
60
|
-
args: [MAT_DIALOG_DATA]
|
|
61
|
-
}] }, { type: i2.DatasetService }, { type: i3.MatLegacySnackBar }]; } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWRhdGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZXhwbG9yZXIvZXhwb3J0LWRhdGEvZXhwb3J0LWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZXhwbG9yZXIvZXhwb3J0LWRhdGEvZXhwb3J0LWRhdGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLHNCQUFzQixJQUFJLGVBQWUsRUFBcUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5SCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7QUFHakMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztBQVF6QixNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQW1CLFNBQTRDLEVBQ25CLElBQVMsRUFDakMsY0FBOEIsRUFDOUIsUUFBcUI7UUFIdEIsY0FBUyxHQUFULFNBQVMsQ0FBbUM7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUxsQyxrQkFBYSxHQUFRLEVBQUUsQ0FBQztJQU0vQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztRQUM3RSxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsR0FBRyxFQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdELElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTtnQkFDM0MsUUFBUSxHQUFHLE1BQU0sQ0FBQzthQUNyQjtpQkFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxLQUFLLElBQUk7Z0JBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsU0FBUyxLQUFLLEdBQUcsRUFBRTtnQkFDNUQsUUFBUSxHQUFHLEtBQUssQ0FBQzthQUNwQjtZQUVELE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2pHLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLFFBQVEsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxPQUFPLEVBQUU7Z0JBQ3ZELFFBQVEsRUFBRSxJQUFJO2dCQUNkLGdCQUFnQixFQUFFLEtBQUs7YUFDMUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztpSEF0Q1EsbUJBQW1CLG9EQUtSLGVBQWU7cUdBTDFCLG1CQUFtQixrR0NmaEMseTdFQXFFQTs0RkR0RGEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGdCQUFnQixRQUdwQixFQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBQzs7MEJBT2xCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBLCBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7RGF0YXNldFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RhdGFzZXQuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBmaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgKiBhcyBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7TWF0TGVnYWN5U25hY2tCYXIgYXMgTWF0U25hY2tCYXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1zbmFjay1iYXInO1xuXG5jb25zdCBfID0gbG9kYXNoLmRlZmF1bHQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2ktZXhwb3J0LWRhdGEnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9leHBvcnQtZGF0YS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZXhwb3J0LWRhdGEuY29tcG9uZW50LnNhc3MnXSxcbiAgICBob3N0OiB7Y2xhc3M6ICdkaWFsb2ctd3JhcHBlcid9XG59KVxuZXhwb3J0IGNsYXNzIEV4cG9ydERhdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHVibGljIGV4cG9ydERhdGFzZXQ6IGFueSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEV4cG9ydERhdGFDb21wb25lbnQ+LFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGF0YXNldFNlcnZpY2U6IERhdGFzZXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXhwb3J0RGF0YXNldC5kYXRhU2V0SW5zdGFuY2VTdW1tYXJ5ID0gdGhpcy5kYXRhLmRhdGFzZXRJbnN0YW5jZVN1bW1hcnk7XG4gICAgICAgIHRoaXMuZXhwb3J0RGF0YXNldC50cmFuc2Zvcm1hdGlvbkluc3RhbmNlcyA9IFtdO1xuICAgICAgICB0aGlzLmV4cG9ydERhdGFzZXQucGFyYW1ldGVyVmFsdWVzID0gW107XG4gICAgICAgIHRoaXMuZXhwb3J0RGF0YXNldC5saW1pdCA9ICcxMDAnO1xuICAgICAgICB0aGlzLmV4cG9ydERhdGFzZXQub2Zmc2V0ID0gJzAnO1xuICAgICAgICB0aGlzLmV4cG9ydERhdGFzZXQuZXhwb3J0ZXJLZXkgPSAnc3YnO1xuICAgICAgICB0aGlzLmV4cG9ydERhdGFzZXQuZXhwb3J0ZXJDb25maWd1cmF0aW9uID0ge2luY2x1ZGVIZWFkZXJSb3c6IHRydWUsIHNlcGFyYXRvcjogJywnfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwb3J0RGF0YSgpIHtcbiAgICAgICAgdGhpcy5kYXRhc2V0U2VydmljZS5leHBvcnREYXRhc2V0KHRoaXMuZXhwb3J0RGF0YXNldCkudGhlbihyZXMgPT4ge1xuICAgICAgICAgICAgbGV0IGZpbGVUeXBlID0gJ3R4dCc7XG4gICAgICAgICAgICBpZiAodGhpcy5leHBvcnREYXRhc2V0LmV4cG9ydGVyS2V5ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgICAgICBmaWxlVHlwZSA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5leHBvcnREYXRhc2V0LmV4cG9ydGVyS2V5ID09PSAnc3YnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnREYXRhc2V0LmV4cG9ydGVyQ29uZmlndXJhdGlvbi5zZXBhcmF0b3IgPT09ICcsJykge1xuICAgICAgICAgICAgICAgIGZpbGVUeXBlID0gJ2Nzdic7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gXy5rZWJhYkNhc2UodGhpcy5leHBvcnREYXRhc2V0LmRhdGFTZXRJbnN0YW5jZVN1bW1hcnkudGl0bGUpICsgJy0nICsgRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIGZpbGVTYXZlci5zYXZlQXMocmVzLCBmaWxlbmFtZSArICcuJyArIGZpbGVUeXBlKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0RhdGEgRXhwb3J0ZWQgU3VjY2Vzc2Z1bGx5LicsICdDbG9zZScsIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAndG9wJ1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImRpYWxvZ1wiIGNka0RyYWcgY2RrRHJhZ1Jvb3RFbGVtZW50PVwiLmNkay1vdmVybGF5LXBhbmVcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctdGl0bGVcIiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICA8aDIgbWF0LWRpYWxvZy10aXRsZT5cbiAgICAgICAgICAgIEV4cG9ydCBEYXRhXG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTRcIj5cbiAgICAgICAgICAgIEV4cG9ydCBUeXBlXG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwiZXhwb3J0RGF0YXNldC5leHBvcnRlcktleVwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzdlwiPlNlcGFyYXRlZCBWYWx1ZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJqc29uXCI+SlNPTjwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImV4cG9ydERhdGFzZXQuZXhwb3J0ZXJLZXkgPT09ICdzdidcIj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJtYi0yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJleHBvcnREYXRhc2V0LmV4cG9ydGVyQ29uZmlndXJhdGlvbi5pbmNsdWRlSGVhZGVyUm93XCI+XG4gICAgICAgICAgICAgICAgSW5jbHVkZSBoZWFkZXIgcm93XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICBTZXBhcmF0b3JcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImV4cG9ydERhdGFzZXQuZXhwb3J0ZXJDb25maWd1cmF0aW9uLnNlcGFyYXRvclwiPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvbnQtbm9ybWFsXCI+RW50ZXIgdGhlIGNoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHRoZSB2YWx1ZXMuPC9zbWFsbD5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibWItNFwiPlxuICAgICAgICAgICAgTGltaXQgUmVzdWx0c1xuICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImV4cG9ydERhdGFzZXQubGltaXRcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjE8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNVwiPjU8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTBcIj4xMDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyNVwiPjI1PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjUwXCI+NTA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTAwXCI+MTAwPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjI1MFwiPjI1MDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1MDBcIj41MDA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTAwMFwiPjEwMDA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNTAwMFwiPjUwMDA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTAwMDBcIj4xMDAwMDwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibWItNFwiPlxuICAgICAgICAgICAgT2Zmc2V0IFJlc3VsdHNcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJleHBvcnREYXRhc2V0Lm9mZnNldFwiPlxuICAgICAgICA8L2xhYmVsPlxuXG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiPkNsb3NlPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0RGF0YSgpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWV4cG9ydERhdGFzZXQuZXhwb3J0ZXJLZXlcIj5FeHBvcnQgRGF0YVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG5cblxuIl19
|
package/esm2020/lib/components/data-explorer/snapshot-api-access/snapshot-api-access.component.mjs
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Component, Inject, Input } from '@angular/core';
|
|
2
|
-
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
5
|
-
import * as i2 from "@angular/material/legacy-snack-bar";
|
|
6
|
-
import * as i3 from "../../../services/dataset.service";
|
|
7
|
-
import * as i4 from "@angular/common/http";
|
|
8
|
-
import * as i5 from "@angular/common";
|
|
9
|
-
import * as i6 from "@angular/material/legacy-button";
|
|
10
|
-
import * as i7 from "@angular/material/icon";
|
|
11
|
-
import * as i8 from "@angular/cdk/drag-drop";
|
|
12
|
-
import * as i9 from "@angular/forms";
|
|
13
|
-
import * as i10 from "@angular/cdk/clipboard";
|
|
14
|
-
export class SnapshotApiAccessComponent {
|
|
15
|
-
constructor(dialogRef, data, snackBar, datasetService, http) {
|
|
16
|
-
this.dialogRef = dialogRef;
|
|
17
|
-
this.data = data;
|
|
18
|
-
this.snackBar = snackBar;
|
|
19
|
-
this.datasetService = datasetService;
|
|
20
|
-
this.http = http;
|
|
21
|
-
this.showApiAccessDetails = false;
|
|
22
|
-
}
|
|
23
|
-
async ngOnInit() {
|
|
24
|
-
this.backendURL = this.data.backendUrl;
|
|
25
|
-
this.datasetInstance = this.data.datasetInstanceSummary;
|
|
26
|
-
this.showApiAccessDetails = !!this.datasetInstance.managementKey;
|
|
27
|
-
this.apiKeys = await this.http.get('/account/apikey/first/dataprocessormanage').toPromise();
|
|
28
|
-
}
|
|
29
|
-
copied() {
|
|
30
|
-
this.snackBar.open('Copied to Clipboard', null, {
|
|
31
|
-
duration: 2000,
|
|
32
|
-
verticalPosition: 'top'
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
examplePayload() {
|
|
36
|
-
let payload = '{"title": "New Snapshot"';
|
|
37
|
-
if (this.datasetInstance.parameters?.length) {
|
|
38
|
-
let params = [];
|
|
39
|
-
this.datasetInstance.parameters.forEach(parameter => {
|
|
40
|
-
params.push('"' + parameter.name + '": "' + parameter.type + '"');
|
|
41
|
-
});
|
|
42
|
-
payload += ', "parameterValues": {' + params.join(", ") + '}';
|
|
43
|
-
}
|
|
44
|
-
payload += "}";
|
|
45
|
-
return payload;
|
|
46
|
-
}
|
|
47
|
-
exampleResults() {
|
|
48
|
-
let results = [];
|
|
49
|
-
for (let i = 0; i < 3; i++) {
|
|
50
|
-
results.push('{"column1": "value1", "column2": "value2"}');
|
|
51
|
-
}
|
|
52
|
-
return '[' + results.join(',') + ']';
|
|
53
|
-
}
|
|
54
|
-
async saveDataset() {
|
|
55
|
-
await this.datasetService.saveDataset(this.datasetInstance);
|
|
56
|
-
this.showApiAccessDetails = !!this.datasetInstance.managementKey;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
SnapshotApiAccessComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SnapshotApiAccessComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.MatLegacySnackBar }, { token: i3.DatasetService }, { token: i4.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
-
SnapshotApiAccessComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SnapshotApiAccessComponent, selector: "ki-snapshot-api-access", inputs: { apiKeys: "apiKeys" }, 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>\n API Access\n </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\">\n\n <div class=\"text-lg font-semibold mb-4\">\n Management Key\n </div>\n\n <div class=\"mb-4\">\n <input class=\"mt-2 w-full\" type=\"text\" [(ngModel)]=\"datasetInstance.managementKey\">\n <small class=\"font-normal\">This will be used as part of API requests</small>\n </div>\n\n <ng-template [ngIf]=\"showApiAccessDetails\">\n <div class=\"text-lg font-semibold mb-4\">\n Example API Usage\n </div>\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">List Snapshots</div>\n <div class=\"text-sm mb-2\">\n List all snapshots associated with this query using the management key.\n </div>\n <div #listSnapshots class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span> -X <b>GET</b> <span class=\"text-secondary\">{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"listSnapshots.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{'[{\"key\":\"snapshot_1\",\"title\":\"Snapshot 1\",\"type\":\"STANDARD\",\"config\":{\"parameterValues\":[],\"keyFieldNames\":[],\"indexes\":[],\"timeLapsedFields\":[],\"createHistory\":false,\"createLatest\":true,\"readChunkSize\":null},\"trigger\":\"adhoc\",\"datasetManagementKey\":\"managementkey\",\"datasetTitle\":\"Test Query\",\"status\":\"COMPLETED\",\"lastRunTime\":\"22\\\\/03\\\\/2024 14:50:20\",\"nextRunTime\":null}]'}}\n </pre>\n </div>\n\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">Get Single Snapshot</div>\n <div class=\"text-sm mb-2\">\n Get a single snapshot associated with this query using the management key and snapshot key as returned from a list or create operation.\n </div>\n <div #getSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>GET</b> <span class=\"text-secondary\">{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"getSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{'{\"key\":\"snapshot_1\",\"title\":\"Snapshot 1\",\"type\":\"STANDARD\",\"config\":{\"parameterValues\":[],\"keyFieldNames\":[],\"indexes\":[],\"timeLapsedFields\":[],\"createHistory\":false,\"createLatest\":true,\"readChunkSize\":null},\"trigger\":\"adhoc\",\"datasetManagementKey\":\"managementkey\",\"datasetTitle\":\"Test Query\",\"status\":\"COMPLETED\",\"lastRunTime\":\"22\\\\/03\\\\/2024 14:50:20\",\"nextRunTime\":null}'}}\n </pre>\n </div>\n\n\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">Get data for snapshot</div>\n <div class=\"text-sm mb-2\">\n Return data for a snapshot for this query identified by management key and snapshot key. Optionally supply an offset and limit for paging the data.\n </div>\n <div #getSnapshotData class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>GET</b> <span class=\"text-secondary\">\"{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY/data?limit=25&offset=0\"</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"getSnapshotData.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{exampleResults()}}\n </pre>\n </div>\n\n\n <div class=\"relative w-full mb-8\">\n <div class=\"text-base font-semibold\">Run a snapshot</div>\n <div class=\"text-sm mb-2\">\n Run a snapshot immediately - the results can be checked by calling the methods above.\n </div>\n <div #runSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>PATCH</b> <span class=\"text-secondary\">\"{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY\"</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"runSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">Create New Snapshot</div>\n <div class=\"text-sm mb-2\">\n Create a new snapshot for this query using the passed management key.\n </div>\n <div #createSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>POST</b> <span class=\"text-secondary\">{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"createSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <div class=\"font-semibold text-sm my-1\">Example Payload</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">\n {{examplePayload()}}\n </pre>\n </div>\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{'{\"snapshotKey\": \"NEW_SNAPSHOT_KEY\"}'}}\n </pre>\n </div>\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">Update Existing Snapshot</div>\n <div class=\"text-sm mb-2\">\n Update an existing snapshot for this query using the passed management key and snapshot key.\n </div>\n <div #updateSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>PUT</b> <span class=\"text-secondary\">{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"updateSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <div class=\"font-semibold text-sm my-1\">Example Payload</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">\n {{examplePayload()}}\n </pre>\n </div>\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{'{\"snapshotKey\": \"NEW_SNAPSHOT_KEY\"}'}}\n </pre>\n </div>\n\n <div class=\"relative w-full mb-8\">\n <div class=\"text-base font-semibold\">Remove snapshot</div>\n <div class=\"text-sm mb-2\">\n Delete a snapshot for a management key and snapshot key.\n </div>\n <div #removeSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>DELETE</b> <span class=\"text-secondary\">\"{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY\"</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"removeSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n\n\n\n\n\n </ng-template>\n\n </div>\n\n <div class=\"dialog-footer\">\n <button mat-button mat-dialog-close mat-stroked-button type=\"button\">Close</button>\n <button mat-flat-button color=\"primary\" (click)=\"saveDataset()\">\n Save\n </button>\n </div>\n\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.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: i7.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: "directive", type: i8.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: i8.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }] });
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SnapshotApiAccessComponent, decorators: [{
|
|
62
|
-
type: Component,
|
|
63
|
-
args: [{ selector: 'ki-snapshot-api-access', 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>\n API Access\n </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\">\n\n <div class=\"text-lg font-semibold mb-4\">\n Management Key\n </div>\n\n <div class=\"mb-4\">\n <input class=\"mt-2 w-full\" type=\"text\" [(ngModel)]=\"datasetInstance.managementKey\">\n <small class=\"font-normal\">This will be used as part of API requests</small>\n </div>\n\n <ng-template [ngIf]=\"showApiAccessDetails\">\n <div class=\"text-lg font-semibold mb-4\">\n Example API Usage\n </div>\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">List Snapshots</div>\n <div class=\"text-sm mb-2\">\n List all snapshots associated with this query using the management key.\n </div>\n <div #listSnapshots class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span> -X <b>GET</b> <span class=\"text-secondary\">{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"listSnapshots.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{'[{\"key\":\"snapshot_1\",\"title\":\"Snapshot 1\",\"type\":\"STANDARD\",\"config\":{\"parameterValues\":[],\"keyFieldNames\":[],\"indexes\":[],\"timeLapsedFields\":[],\"createHistory\":false,\"createLatest\":true,\"readChunkSize\":null},\"trigger\":\"adhoc\",\"datasetManagementKey\":\"managementkey\",\"datasetTitle\":\"Test Query\",\"status\":\"COMPLETED\",\"lastRunTime\":\"22\\\\/03\\\\/2024 14:50:20\",\"nextRunTime\":null}]'}}\n </pre>\n </div>\n\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">Get Single Snapshot</div>\n <div class=\"text-sm mb-2\">\n Get a single snapshot associated with this query using the management key and snapshot key as returned from a list or create operation.\n </div>\n <div #getSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>GET</b> <span class=\"text-secondary\">{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"getSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{'{\"key\":\"snapshot_1\",\"title\":\"Snapshot 1\",\"type\":\"STANDARD\",\"config\":{\"parameterValues\":[],\"keyFieldNames\":[],\"indexes\":[],\"timeLapsedFields\":[],\"createHistory\":false,\"createLatest\":true,\"readChunkSize\":null},\"trigger\":\"adhoc\",\"datasetManagementKey\":\"managementkey\",\"datasetTitle\":\"Test Query\",\"status\":\"COMPLETED\",\"lastRunTime\":\"22\\\\/03\\\\/2024 14:50:20\",\"nextRunTime\":null}'}}\n </pre>\n </div>\n\n\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">Get data for snapshot</div>\n <div class=\"text-sm mb-2\">\n Return data for a snapshot for this query identified by management key and snapshot key. Optionally supply an offset and limit for paging the data.\n </div>\n <div #getSnapshotData class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>GET</b> <span class=\"text-secondary\">\"{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY/data?limit=25&offset=0\"</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"getSnapshotData.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{exampleResults()}}\n </pre>\n </div>\n\n\n <div class=\"relative w-full mb-8\">\n <div class=\"text-base font-semibold\">Run a snapshot</div>\n <div class=\"text-sm mb-2\">\n Run a snapshot immediately - the results can be checked by calling the methods above.\n </div>\n <div #runSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>PATCH</b> <span class=\"text-secondary\">\"{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY\"</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"runSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">Create New Snapshot</div>\n <div class=\"text-sm mb-2\">\n Create a new snapshot for this query using the passed management key.\n </div>\n <div #createSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>POST</b> <span class=\"text-secondary\">{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"createSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <div class=\"font-semibold text-sm my-1\">Example Payload</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">\n {{examplePayload()}}\n </pre>\n </div>\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{'{\"snapshotKey\": \"NEW_SNAPSHOT_KEY\"}'}}\n </pre>\n </div>\n\n <div class=\"relative w-full\">\n <div class=\"text-base font-semibold\">Update Existing Snapshot</div>\n <div class=\"text-sm mb-2\">\n Update an existing snapshot for this query using the passed management key and snapshot key.\n </div>\n <div #updateSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>PUT</b> <span class=\"text-secondary\">{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"updateSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n <div class=\"font-semibold text-sm my-1\">Example Payload</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">\n {{examplePayload()}}\n </pre>\n </div>\n <div class=\"font-semibold text-sm my-1\">Example Response</div>\n <div class=\"relative bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4 mb-8\">\n <pre class=\"whitespace-normal\">\n {{'{\"snapshotKey\": \"NEW_SNAPSHOT_KEY\"}'}}\n </pre>\n </div>\n\n <div class=\"relative w-full mb-8\">\n <div class=\"text-base font-semibold\">Remove snapshot</div>\n <div class=\"text-sm mb-2\">\n Delete a snapshot for a management key and snapshot key.\n </div>\n <div #removeSnapshot class=\" bg-gray-800 border-2 border-gray-900 text-white rounded-md p-4\">\n <pre class=\"whitespace-normal\">curl -H <span class=\"text-secondary\">\"API-KEY:<b>{{apiKeys ? apiKeys.apiKey : '[[apiKey]]'}}</b>\"</span> -H <span class=\"text-secondary\">\"API-SECRET:<b>{{apiKeys ? apiKeys.apiSecret : '[[apiSecret]]'}}</b>\"</span></pre><pre class=\"whitespace-normal\"> -X <b>DELETE</b> <span class=\"text-secondary\">\"{{backendURL}}/api/snapshot/{{datasetInstance.managementKey}}/SNAPSHOT_KEY\"</span></pre>\n </div>\n <button mat-icon-button [cdkCopyToClipboard]=\"removeSnapshot.textContent\" (cdkCopyToClipboardCopied)=\"copied()\"\n class=\"text-white absolute bottom-0 right-0\">\n <mat-icon>content_copy</mat-icon>\n </button>\n </div>\n\n\n\n\n\n\n </ng-template>\n\n </div>\n\n <div class=\"dialog-footer\">\n <button mat-button mat-dialog-close mat-stroked-button type=\"button\">Close</button>\n <button mat-flat-button color=\"primary\" (click)=\"saveDataset()\">\n Save\n </button>\n </div>\n\n</div>\n\n\n" }]
|
|
64
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
65
|
-
type: Inject,
|
|
66
|
-
args: [MAT_DIALOG_DATA]
|
|
67
|
-
}] }, { type: i2.MatLegacySnackBar }, { type: i3.DatasetService }, { type: i4.HttpClient }]; }, propDecorators: { apiKeys: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtYXBpLWFjY2Vzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raW5pbnRlbC9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS1leHBsb3Jlci9zbmFwc2hvdC1hcGktYWNjZXNzL3NuYXBzaG90LWFwaS1hY2Nlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZXhwbG9yZXIvc25hcHNob3QtYXBpLWFjY2Vzcy9zbmFwc2hvdC1hcGktYWNjZXNzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsc0JBQXNCLElBQUksZUFBZSxFQUU1QyxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7Ozs7QUFXekMsTUFBTSxPQUFPLDBCQUEwQjtJQVNuQyxZQUFtQixTQUFtRCxFQUMxQixJQUFTLEVBQ2pDLFFBQXFCLEVBQ3JCLGNBQThCLEVBQzlCLElBQWdCO1FBSmpCLGNBQVMsR0FBVCxTQUFTLENBQTBDO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDakMsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQU43Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7SUFPcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUNqRSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRyxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksRUFBRTtZQUM1QyxRQUFRLEVBQUUsSUFBSTtZQUNkLGdCQUFnQixFQUFFLEtBQUs7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxPQUFPLEdBQUcsMEJBQTBCLENBQUM7UUFFekMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUU7WUFDekMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNqRTtRQUVELE9BQU8sSUFBSSxHQUFHLENBQUM7UUFFZixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBR00sY0FBYztRQUVqQixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7U0FDOUQ7UUFFRCxPQUFPLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN6QyxDQUFDO0lBR00sS0FBSyxDQUFDLFdBQVc7UUFDcEIsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztJQUNyRSxDQUFDOzt3SEE5RFEsMEJBQTBCLG9EQVVmLGVBQWU7NEdBVjFCLDBCQUEwQiwwSUNmdkMsbThZQW1NQTs0RkRwTGEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLHdCQUF3QixRQUc1QixFQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBQzs7MEJBWWxCLE1BQU07MkJBQUMsZUFBZTtrSUFSMUIsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBLFxuICAgIE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQge0RhdGFzZXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kYXRhc2V0LnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRMZWdhY3lTbmFja0JhciBhcyBNYXRTbmFja0Jhcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1zbmFjay1iYXJcIjtcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2ktc25hcHNob3QtYXBpLWFjY2VzcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NuYXBzaG90LWFwaS1hY2Nlc3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NuYXBzaG90LWFwaS1hY2Nlc3MuY29tcG9uZW50LnNhc3MnXSxcbiAgICBob3N0OiB7Y2xhc3M6ICdkaWFsb2ctd3JhcHBlcid9XG59KVxuZXhwb3J0IGNsYXNzIFNuYXBzaG90QXBpQWNjZXNzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIGFwaUtleXM6IGFueTtcblxuICAgIHB1YmxpYyBiYWNrZW5kVVJMOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZGF0YXNldEluc3RhbmNlOiBhbnk7XG4gICAgcHVibGljIHNob3dBcGlBY2Nlc3NEZXRhaWxzID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U25hcHNob3RBcGlBY2Nlc3NDb21wb25lbnQ+LFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgZGF0YXNldFNlcnZpY2U6IERhdGFzZXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgIH1cblxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmJhY2tlbmRVUkwgPSB0aGlzLmRhdGEuYmFja2VuZFVybDtcbiAgICAgICAgdGhpcy5kYXRhc2V0SW5zdGFuY2UgPSB0aGlzLmRhdGEuZGF0YXNldEluc3RhbmNlU3VtbWFyeTtcbiAgICAgICAgdGhpcy5zaG93QXBpQWNjZXNzRGV0YWlscyA9ICEhdGhpcy5kYXRhc2V0SW5zdGFuY2UubWFuYWdlbWVudEtleTtcbiAgICAgICAgdGhpcy5hcGlLZXlzID0gYXdhaXQgdGhpcy5odHRwLmdldCgnL2FjY291bnQvYXBpa2V5L2ZpcnN0L2RhdGFwcm9jZXNzb3JtYW5hZ2UnKS50b1Byb21pc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29waWVkKCkge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0NvcGllZCB0byBDbGlwYm9hcmQnLCBudWxsLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcbiAgICAgICAgICAgIHZlcnRpY2FsUG9zaXRpb246ICd0b3AnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBleGFtcGxlUGF5bG9hZCgpOiBhbnkge1xuICAgICAgICBsZXQgcGF5bG9hZCA9ICd7XCJ0aXRsZVwiOiBcIk5ldyBTbmFwc2hvdFwiJztcblxuICAgICAgICBpZiAodGhpcy5kYXRhc2V0SW5zdGFuY2UucGFyYW1ldGVycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgcGFyYW1zID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRJbnN0YW5jZS5wYXJhbWV0ZXJzLmZvckVhY2gocGFyYW1ldGVyID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMucHVzaCgnXCInICsgcGFyYW1ldGVyLm5hbWUgKyAnXCI6IFwiJyArIHBhcmFtZXRlci50eXBlICsgJ1wiJyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcGF5bG9hZCArPSAnLCBcInBhcmFtZXRlclZhbHVlc1wiOiB7JyArIHBhcmFtcy5qb2luKFwiLCBcIikgKyAnfSc7XG4gICAgICAgIH1cblxuICAgICAgICBwYXlsb2FkICs9IFwifVwiO1xuXG4gICAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgIH1cblxuXG4gICAgcHVibGljIGV4YW1wbGVSZXN1bHRzKCkge1xuXG4gICAgICAgIGxldCByZXN1bHRzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMzsgaSsrKSB7XG4gICAgICAgICAgICByZXN1bHRzLnB1c2goJ3tcImNvbHVtbjFcIjogXCJ2YWx1ZTFcIiwgXCJjb2x1bW4yXCI6IFwidmFsdWUyXCJ9Jyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJ1snICsgcmVzdWx0cy5qb2luKCcsJykgKyAnXSc7XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgYXN5bmMgc2F2ZURhdGFzZXQoKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YXNldFNlcnZpY2Uuc2F2ZURhdGFzZXQodGhpcy5kYXRhc2V0SW5zdGFuY2UpO1xuICAgICAgICB0aGlzLnNob3dBcGlBY2Nlc3NEZXRhaWxzID0gISF0aGlzLmRhdGFzZXRJbnN0YW5jZS5tYW5hZ2VtZW50S2V5O1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkaWFsb2dcIiBjZGtEcmFnIGNka0RyYWdSb290RWxlbWVudD1cIi5jZGstb3ZlcmxheS1wYW5lXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXRpdGxlXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+XG4gICAgICAgICAgICBBUEkgQWNjZXNzXG4gICAgICAgIDwvaDI+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbGVhcjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbGcgZm9udC1zZW1pYm9sZCBtYi00XCI+XG4gICAgICAgICAgICBNYW5hZ2VtZW50IEtleVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwibXQtMiB3LWZ1bGxcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiZGF0YXNldEluc3RhbmNlLm1hbmFnZW1lbnRLZXlcIj5cbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZvbnQtbm9ybWFsXCI+VGhpcyB3aWxsIGJlIHVzZWQgYXMgcGFydCBvZiBBUEkgcmVxdWVzdHM8L3NtYWxsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2hvd0FwaUFjY2Vzc0RldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItNFwiPlxuICAgICAgICAgICAgICAgIEV4YW1wbGUgQVBJIFVzYWdlXG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIHctZnVsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZFwiPkxpc3QgU25hcHNob3RzPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICBMaXN0IGFsbCBzbmFwc2hvdHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcXVlcnkgdXNpbmcgdGhlIG1hbmFnZW1lbnQga2V5LlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgI2xpc3RTbmFwc2hvdHMgY2xhc3M9XCIgYmctZ3JheS04MDAgYm9yZGVyLTIgYm9yZGVyLWdyYXktOTAwIHRleHQtd2hpdGUgcm91bmRlZC1tZCBwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHByZSBjbGFzcz1cIndoaXRlc3BhY2Utbm9ybWFsXCI+Y3VybCAtSCA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+XCJBUEktS0VZOjxiPnt7YXBpS2V5cyA/IGFwaUtleXMuYXBpS2V5IDogJ1tbYXBpS2V5XV0nfX08L2I+XCI8L3NwYW4+IC1IIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cIkFQSS1TRUNSRVQ6PGI+e3thcGlLZXlzID8gYXBpS2V5cy5hcGlTZWNyZXQgOiAnW1thcGlTZWNyZXRdXSd9fTwvYj5cIjwvc3Bhbj4gLVggPGI+R0VUPC9iPiA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+e3tiYWNrZW5kVVJMfX0vYXBpL3NuYXBzaG90L3t7ZGF0YXNldEluc3RhbmNlLm1hbmFnZW1lbnRLZXl9fTwvc3Bhbj48L3ByZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY2RrQ29weVRvQ2xpcGJvYXJkXT1cImxpc3RTbmFwc2hvdHMudGV4dENvbnRlbnRcIiAoY2RrQ29weVRvQ2xpcGJvYXJkQ29waWVkKT1cImNvcGllZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC13aGl0ZSBhYnNvbHV0ZSBib3R0b20tMCByaWdodC0wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXNtIG15LTFcIj5FeGFtcGxlIFJlc3BvbnNlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgYmctZ3JheS04MDAgYm9yZGVyLTIgYm9yZGVyLWdyYXktOTAwIHRleHQtd2hpdGUgcm91bmRlZC1tZCBwLTQgbWItOFwiPlxuICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICB7eydbe1wia2V5XCI6XCJzbmFwc2hvdF8xXCIsXCJ0aXRsZVwiOlwiU25hcHNob3QgMVwiLFwidHlwZVwiOlwiU1RBTkRBUkRcIixcImNvbmZpZ1wiOntcInBhcmFtZXRlclZhbHVlc1wiOltdLFwia2V5RmllbGROYW1lc1wiOltdLFwiaW5kZXhlc1wiOltdLFwidGltZUxhcHNlZEZpZWxkc1wiOltdLFwiY3JlYXRlSGlzdG9yeVwiOmZhbHNlLFwiY3JlYXRlTGF0ZXN0XCI6dHJ1ZSxcInJlYWRDaHVua1NpemVcIjpudWxsfSxcInRyaWdnZXJcIjpcImFkaG9jXCIsXCJkYXRhc2V0TWFuYWdlbWVudEtleVwiOlwibWFuYWdlbWVudGtleVwiLFwiZGF0YXNldFRpdGxlXCI6XCJUZXN0IFF1ZXJ5XCIsXCJzdGF0dXNcIjpcIkNPTVBMRVRFRFwiLFwibGFzdFJ1blRpbWVcIjpcIjIyXFxcXC8wM1xcXFwvMjAyNCAxNDo1MDoyMFwiLFwibmV4dFJ1blRpbWVcIjpudWxsfV0nfX1cbiAgICAgICAgICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGRcIj5HZXQgU2luZ2xlIFNuYXBzaG90PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICBHZXQgYSBzaW5nbGUgc25hcHNob3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcXVlcnkgdXNpbmcgdGhlIG1hbmFnZW1lbnQga2V5IGFuZCBzbmFwc2hvdCBrZXkgYXMgcmV0dXJuZWQgZnJvbSBhIGxpc3Qgb3IgY3JlYXRlIG9wZXJhdGlvbi5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICNnZXRTbmFwc2hvdCBjbGFzcz1cIiBiZy1ncmF5LTgwMCBib3JkZXItMiBib3JkZXItZ3JheS05MDAgdGV4dC13aGl0ZSByb3VuZGVkLW1kIHAtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPVwid2hpdGVzcGFjZS1ub3JtYWxcIj5jdXJsIC1IIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cIkFQSS1LRVk6PGI+e3thcGlLZXlzID8gYXBpS2V5cy5hcGlLZXkgOiAnW1thcGlLZXldXSd9fTwvYj5cIjwvc3Bhbj4gLUggPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlwiQVBJLVNFQ1JFVDo8Yj57e2FwaUtleXMgPyBhcGlLZXlzLmFwaVNlY3JldCA6ICdbW2FwaVNlY3JldF1dJ319PC9iPlwiPC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPiAtWCA8Yj5HRVQ8L2I+IDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj57e2JhY2tlbmRVUkx9fS9hcGkvc25hcHNob3Qve3tkYXRhc2V0SW5zdGFuY2UubWFuYWdlbWVudEtleX19L1NOQVBTSE9UX0tFWTwvc3Bhbj48L3ByZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY2RrQ29weVRvQ2xpcGJvYXJkXT1cImdldFNuYXBzaG90LnRleHRDb250ZW50XCIgKGNka0NvcHlUb0NsaXBib2FyZENvcGllZCk9XCJjb3BpZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtd2hpdGUgYWJzb2x1dGUgYm90dG9tLTAgcmlnaHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtc2VtaWJvbGQgdGV4dC1zbSBteS0xXCI+RXhhbXBsZSBSZXNwb25zZTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGJnLWdyYXktODAwIGJvcmRlci0yIGJvcmRlci1ncmF5LTkwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtbWQgcC00IG1iLThcIj5cbiAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPVwid2hpdGVzcGFjZS1ub3JtYWxcIj5cbiAgICAgICAgICAgICAgICAgICAge3sne1wia2V5XCI6XCJzbmFwc2hvdF8xXCIsXCJ0aXRsZVwiOlwiU25hcHNob3QgMVwiLFwidHlwZVwiOlwiU1RBTkRBUkRcIixcImNvbmZpZ1wiOntcInBhcmFtZXRlclZhbHVlc1wiOltdLFwia2V5RmllbGROYW1lc1wiOltdLFwiaW5kZXhlc1wiOltdLFwidGltZUxhcHNlZEZpZWxkc1wiOltdLFwiY3JlYXRlSGlzdG9yeVwiOmZhbHNlLFwiY3JlYXRlTGF0ZXN0XCI6dHJ1ZSxcInJlYWRDaHVua1NpemVcIjpudWxsfSxcInRyaWdnZXJcIjpcImFkaG9jXCIsXCJkYXRhc2V0TWFuYWdlbWVudEtleVwiOlwibWFuYWdlbWVudGtleVwiLFwiZGF0YXNldFRpdGxlXCI6XCJUZXN0IFF1ZXJ5XCIsXCJzdGF0dXNcIjpcIkNPTVBMRVRFRFwiLFwibGFzdFJ1blRpbWVcIjpcIjIyXFxcXC8wM1xcXFwvMjAyNCAxNDo1MDoyMFwiLFwibmV4dFJ1blRpbWVcIjpudWxsfSd9fVxuICAgICAgICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LXNlbWlib2xkXCI+R2V0IGRhdGEgZm9yIHNuYXBzaG90PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICBSZXR1cm4gZGF0YSBmb3IgYSBzbmFwc2hvdCBmb3IgdGhpcyBxdWVyeSBpZGVudGlmaWVkIGJ5IG1hbmFnZW1lbnQga2V5IGFuZCBzbmFwc2hvdCBrZXkuICBPcHRpb25hbGx5IHN1cHBseSBhbiBvZmZzZXQgYW5kIGxpbWl0IGZvciBwYWdpbmcgdGhlIGRhdGEuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAjZ2V0U25hcHNob3REYXRhIGNsYXNzPVwiIGJnLWdyYXktODAwIGJvcmRlci0yIGJvcmRlci1ncmF5LTkwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtbWQgcC00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPmN1cmwgLUggPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlwiQVBJLUtFWTo8Yj57e2FwaUtleXMgPyBhcGlLZXlzLmFwaUtleSA6ICdbW2FwaUtleV1dJ319PC9iPlwiPC9zcGFuPiAtSCA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+XCJBUEktU0VDUkVUOjxiPnt7YXBpS2V5cyA/IGFwaUtleXMuYXBpU2VjcmV0IDogJ1tbYXBpU2VjcmV0XV0nfX08L2I+XCI8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cIndoaXRlc3BhY2Utbm9ybWFsXCI+IC1YIDxiPkdFVDwvYj4gPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlwie3tiYWNrZW5kVVJMfX0vYXBpL3NuYXBzaG90L3t7ZGF0YXNldEluc3RhbmNlLm1hbmFnZW1lbnRLZXl9fS9TTkFQU0hPVF9LRVkvZGF0YT9saW1pdD0yNSZvZmZzZXQ9MFwiPC9zcGFuPjwvcHJlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtjZGtDb3B5VG9DbGlwYm9hcmRdPVwiZ2V0U25hcHNob3REYXRhLnRleHRDb250ZW50XCIgKGNka0NvcHlUb0NsaXBib2FyZENvcGllZCk9XCJjb3BpZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtd2hpdGUgYWJzb2x1dGUgYm90dG9tLTAgcmlnaHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXNtIG15LTFcIj5FeGFtcGxlIFJlc3BvbnNlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgYmctZ3JheS04MDAgYm9yZGVyLTIgYm9yZGVyLWdyYXktOTAwIHRleHQtd2hpdGUgcm91bmRlZC1tZCBwLTQgbWItOFwiPlxuICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICB7e2V4YW1wbGVSZXN1bHRzKCl9fVxuICAgICAgICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIHctZnVsbCBtYi04XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LXNlbWlib2xkXCI+UnVuIGEgc25hcHNob3Q8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zbSBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIFJ1biBhIHNuYXBzaG90IGltbWVkaWF0ZWx5IC0gdGhlIHJlc3VsdHMgY2FuIGJlIGNoZWNrZWQgYnkgY2FsbGluZyB0aGUgbWV0aG9kcyBhYm92ZS5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICNydW5TbmFwc2hvdCBjbGFzcz1cIiBiZy1ncmF5LTgwMCBib3JkZXItMiBib3JkZXItZ3JheS05MDAgdGV4dC13aGl0ZSByb3VuZGVkLW1kIHAtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPVwid2hpdGVzcGFjZS1ub3JtYWxcIj5jdXJsIC1IIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cIkFQSS1LRVk6PGI+e3thcGlLZXlzID8gYXBpS2V5cy5hcGlLZXkgOiAnW1thcGlLZXldXSd9fTwvYj5cIjwvc3Bhbj4gLUggPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlwiQVBJLVNFQ1JFVDo8Yj57e2FwaUtleXMgPyBhcGlLZXlzLmFwaVNlY3JldCA6ICdbW2FwaVNlY3JldF1dJ319PC9iPlwiPC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPiAtWCA8Yj5QQVRDSDwvYj4gPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlwie3tiYWNrZW5kVVJMfX0vYXBpL3NuYXBzaG90L3t7ZGF0YXNldEluc3RhbmNlLm1hbmFnZW1lbnRLZXl9fS9TTkFQU0hPVF9LRVlcIjwvc3Bhbj48L3ByZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY2RrQ29weVRvQ2xpcGJvYXJkXT1cInJ1blNuYXBzaG90LnRleHRDb250ZW50XCIgKGNka0NvcHlUb0NsaXBib2FyZENvcGllZCk9XCJjb3BpZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtd2hpdGUgYWJzb2x1dGUgYm90dG9tLTAgcmlnaHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtc2VtaWJvbGRcIj5DcmVhdGUgTmV3IFNuYXBzaG90PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICBDcmVhdGUgYSBuZXcgc25hcHNob3QgZm9yIHRoaXMgcXVlcnkgdXNpbmcgdGhlIHBhc3NlZCBtYW5hZ2VtZW50IGtleS5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICNjcmVhdGVTbmFwc2hvdCBjbGFzcz1cIiBiZy1ncmF5LTgwMCBib3JkZXItMiBib3JkZXItZ3JheS05MDAgdGV4dC13aGl0ZSByb3VuZGVkLW1kIHAtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPVwid2hpdGVzcGFjZS1ub3JtYWxcIj5jdXJsIC1IIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cIkFQSS1LRVk6PGI+e3thcGlLZXlzID8gYXBpS2V5cy5hcGlLZXkgOiAnW1thcGlLZXldXSd9fTwvYj5cIjwvc3Bhbj4gLUggPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlwiQVBJLVNFQ1JFVDo8Yj57e2FwaUtleXMgPyBhcGlLZXlzLmFwaVNlY3JldCA6ICdbW2FwaVNlY3JldF1dJ319PC9iPlwiPC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPiAtWCA8Yj5QT1NUPC9iPiA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+e3tiYWNrZW5kVVJMfX0vYXBpL3NuYXBzaG90L3t7ZGF0YXNldEluc3RhbmNlLm1hbmFnZW1lbnRLZXl9fTwvc3Bhbj48L3ByZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY2RrQ29weVRvQ2xpcGJvYXJkXT1cImNyZWF0ZVNuYXBzaG90LnRleHRDb250ZW50XCIgKGNka0NvcHlUb0NsaXBib2FyZENvcGllZCk9XCJjb3BpZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtd2hpdGUgYWJzb2x1dGUgYm90dG9tLTAgcmlnaHQtMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXNtIG15LTFcIj5FeGFtcGxlIFBheWxvYWQ8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBiZy1ncmF5LTgwMCBib3JkZXItMiBib3JkZXItZ3JheS05MDAgdGV4dC13aGl0ZSByb3VuZGVkLW1kIHAtNFwiPlxuICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICB7e2V4YW1wbGVQYXlsb2FkKCl9fVxuICAgICAgICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1zZW1pYm9sZCB0ZXh0LXNtIG15LTFcIj5FeGFtcGxlIFJlc3BvbnNlPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgYmctZ3JheS04MDAgYm9yZGVyLTIgYm9yZGVyLWdyYXktOTAwIHRleHQtd2hpdGUgcm91bmRlZC1tZCBwLTQgbWItOFwiPlxuICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyd7XCJzbmFwc2hvdEtleVwiOiBcIk5FV19TTkFQU0hPVF9LRVlcIn0nfX1cbiAgICAgICAgICAgICAgICA8L3ByZT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LXNlbWlib2xkXCI+VXBkYXRlIEV4aXN0aW5nIFNuYXBzaG90PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gbWItMlwiPlxuICAgICAgICAgICAgICAgICAgICBVcGRhdGUgYW4gZXhpc3Rpbmcgc25hcHNob3QgZm9yIHRoaXMgcXVlcnkgdXNpbmcgdGhlIHBhc3NlZCBtYW5hZ2VtZW50IGtleSBhbmQgc25hcHNob3Qga2V5LlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgI3VwZGF0ZVNuYXBzaG90IGNsYXNzPVwiIGJnLWdyYXktODAwIGJvcmRlci0yIGJvcmRlci1ncmF5LTkwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtbWQgcC00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPmN1cmwgLUggPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlwiQVBJLUtFWTo8Yj57e2FwaUtleXMgPyBhcGlLZXlzLmFwaUtleSA6ICdbW2FwaUtleV1dJ319PC9iPlwiPC9zcGFuPiAtSCA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+XCJBUEktU0VDUkVUOjxiPnt7YXBpS2V5cyA/IGFwaUtleXMuYXBpU2VjcmV0IDogJ1tbYXBpU2VjcmV0XV0nfX08L2I+XCI8L3NwYW4+PC9wcmU+PHByZSBjbGFzcz1cIndoaXRlc3BhY2Utbm9ybWFsXCI+IC1YIDxiPlBVVDwvYj4gPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPnt7YmFja2VuZFVSTH19L2FwaS9zbmFwc2hvdC97e2RhdGFzZXRJbnN0YW5jZS5tYW5hZ2VtZW50S2V5fX0vU05BUFNIT1RfS0VZPC9zcGFuPjwvcHJlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtjZGtDb3B5VG9DbGlwYm9hcmRdPVwidXBkYXRlU25hcHNob3QudGV4dENvbnRlbnRcIiAoY2RrQ29weVRvQ2xpcGJvYXJkQ29waWVkKT1cImNvcGllZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC13aGl0ZSBhYnNvbHV0ZSBib3R0b20tMCByaWdodC0wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jb250ZW50X2NvcHk8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtc20gbXktMVwiPkV4YW1wbGUgUGF5bG9hZDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGJnLWdyYXktODAwIGJvcmRlci0yIGJvcmRlci1ncmF5LTkwMCB0ZXh0LXdoaXRlIHJvdW5kZWQtbWQgcC00XCI+XG4gICAgICAgICAgICAgICAgPHByZSBjbGFzcz1cIndoaXRlc3BhY2Utbm9ybWFsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ZXhhbXBsZVBheWxvYWQoKX19XG4gICAgICAgICAgICAgICAgPC9wcmU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXNlbWlib2xkIHRleHQtc20gbXktMVwiPkV4YW1wbGUgUmVzcG9uc2U8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBiZy1ncmF5LTgwMCBib3JkZXItMiBib3JkZXItZ3JheS05MDAgdGV4dC13aGl0ZSByb3VuZGVkLW1kIHAtNCBtYi04XCI+XG4gICAgICAgICAgICAgICAgPHByZSBjbGFzcz1cIndoaXRlc3BhY2Utbm9ybWFsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7J3tcInNuYXBzaG90S2V5XCI6IFwiTkVXX1NOQVBTSE9UX0tFWVwifSd9fVxuICAgICAgICAgICAgICAgIDwvcHJlPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGwgbWItOFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZFwiPlJlbW92ZSBzbmFwc2hvdDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgRGVsZXRlIGEgc25hcHNob3QgZm9yIGEgbWFuYWdlbWVudCBrZXkgYW5kIHNuYXBzaG90IGtleS5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICNyZW1vdmVTbmFwc2hvdCBjbGFzcz1cIiBiZy1ncmF5LTgwMCBib3JkZXItMiBib3JkZXItZ3JheS05MDAgdGV4dC13aGl0ZSByb3VuZGVkLW1kIHAtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8cHJlIGNsYXNzPVwid2hpdGVzcGFjZS1ub3JtYWxcIj5jdXJsIC1IIDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cIkFQSS1LRVk6PGI+e3thcGlLZXlzID8gYXBpS2V5cy5hcGlLZXkgOiAnW1thcGlLZXldXSd9fTwvYj5cIjwvc3Bhbj4gLUggPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPlwiQVBJLVNFQ1JFVDo8Yj57e2FwaUtleXMgPyBhcGlLZXlzLmFwaVNlY3JldCA6ICdbW2FwaVNlY3JldF1dJ319PC9iPlwiPC9zcGFuPjwvcHJlPjxwcmUgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vcm1hbFwiPiAtWCA8Yj5ERUxFVEU8L2I+IDxzcGFuIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIj5cInt7YmFja2VuZFVSTH19L2FwaS9zbmFwc2hvdC97e2RhdGFzZXRJbnN0YW5jZS5tYW5hZ2VtZW50S2V5fX0vU05BUFNIT1RfS0VZXCI8L3NwYW4+PC9wcmU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2Nka0NvcHlUb0NsaXBib2FyZF09XCJyZW1vdmVTbmFwc2hvdC50ZXh0Q29udGVudFwiIChjZGtDb3B5VG9DbGlwYm9hcmRDb3BpZWQpPVwiY29waWVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXdoaXRlIGFic29sdXRlIGJvdHRvbS0wIHJpZ2h0LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNvbnRlbnRfY29weTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuXG5cblxuXG5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgbWF0LXN0cm9rZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIj5DbG9zZTwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwic2F2ZURhdGFzZXQoKVwiPlxuICAgICAgICAgICAgU2F2ZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG5cblxuIl19
|