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,74 +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 { BehaviorSubject, merge, Subject } from 'rxjs';
|
|
4
|
-
import { KININTEL_CONFIG } from '../../kinintel-config';
|
|
5
|
-
import { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
8
|
-
import * as i2 from "../../services/tag.service";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
import * as i4 from "@angular/material/legacy-button";
|
|
11
|
-
import * as i5 from "@angular/material/icon";
|
|
12
|
-
import * as i6 from "@angular/cdk/drag-drop";
|
|
13
|
-
import * as i7 from "@angular/forms";
|
|
14
|
-
export class TagPickerComponent {
|
|
15
|
-
constructor(dialogRef, data, tagService, config) {
|
|
16
|
-
this.dialogRef = dialogRef;
|
|
17
|
-
this.data = data;
|
|
18
|
-
this.tagService = tagService;
|
|
19
|
-
this.config = config;
|
|
20
|
-
this.tags = [];
|
|
21
|
-
this.addNew = false;
|
|
22
|
-
this.searchText = new BehaviorSubject('');
|
|
23
|
-
this.reload = new Subject();
|
|
24
|
-
this.activeTag = {};
|
|
25
|
-
}
|
|
26
|
-
ngOnInit() {
|
|
27
|
-
this.activeTag = this.tagService.activeTag.getValue() || {};
|
|
28
|
-
merge(this.searchText, this.reload).pipe(debounceTime(300), distinctUntilChanged(), switchMap(() => this.getTags())).subscribe((tags) => {
|
|
29
|
-
this.tags = tags;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
activateTag(tag) {
|
|
33
|
-
this.tagService.setActiveTag(tag);
|
|
34
|
-
this.dialogRef.close();
|
|
35
|
-
}
|
|
36
|
-
removeTag(tagKey) {
|
|
37
|
-
const message = `Are you sure you would like to remove this ${this.config.tagLabel}?`;
|
|
38
|
-
if (window.confirm(message)) {
|
|
39
|
-
this.tagService.removeTag(tagKey).then(() => {
|
|
40
|
-
if (this.tagService.activeTag.getValue() &&
|
|
41
|
-
this.tagService.activeTag.getValue().key === tagKey) {
|
|
42
|
-
this.tagService.resetActiveTag();
|
|
43
|
-
}
|
|
44
|
-
this.reload.next(Date.now());
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
createTag() {
|
|
49
|
-
this.tagService.saveTag(this.newName, this.newDescription).then(() => {
|
|
50
|
-
this.newName = '';
|
|
51
|
-
this.newDescription = '';
|
|
52
|
-
this.addNew = false;
|
|
53
|
-
this.reload.next(Date.now());
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
getTags() {
|
|
57
|
-
return this.tagService.getTags(this.searchText.getValue()).pipe(map((tags) => {
|
|
58
|
-
return tags;
|
|
59
|
-
}));
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
TagPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TagPickerComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.TagService }, { token: KININTEL_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
TagPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TagPickerComponent, selector: "ki-tag-picker", 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>{{config.tagMenuLabel || 'Tags'}}</h2>\n <button mat-stroked-button color=\"primary\" (click)=\"addNew = !addNew\">\n <mat-icon>add</mat-icon>\n New {{config.tagLabel || 'Tag'}}\n </button>\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\n <ng-template [ngIf]=\"!addNew\">\n <div class=\"px-4 sm:px-6 lg:px-8 mt-0\">\n <div class=\"flex flex-col\">\n <div class=\"-my-2 -mx-4 sm:-mx-6 lg:-mx-8\">\n <div class=\"inline-block min-w-full py-2 align-middle\">\n <div class=\"mt-3 sm:mt-0 flex-1\">\n <label for=\"mobile-search-candidate\" class=\"sr-only\">Search</label>\n <div class=\"flex\">\n <div class=\"relative flex-grow focus-within:z-10\">\n <div\n class=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n <svg class=\"h-5 w-5 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clip-rule=\"evenodd\"/>\n </svg>\n </div>\n <input type=\"text\" name=\"mobile-search-candidate\" id=\"mobile-search-candidate\"\n class=\"block w-full rounded-none pl-10 border-t-1 border-l-0 border-gray-300\"\n placeholder=\"Search {{config.tagMenuLabel || 'tags'}}\"\n (keyup)=\"searchText.next($event.target.value)\">\n </div>\n </div>\n </div>\n <table class=\"min-w-full border-separate\" style=\"border-spacing: 0\">\n <thead class=\"bg-gray-100\">\n <tr>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 backdrop-blur backdrop-filter\">\n <span class=\"sr-only\">Checked</span>\n </th>\n <th scope=\"col\"\n 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\">\n Name\n </th>\n <th scope=\"col\"\n 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\">\n Description\n </th>\n <th scope=\"col\"\n 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\">\n Key\n </th>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 backdrop-blur backdrop-filter\">\n <span class=\"sr-only\">Edit</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"bg-white\">\n <tr *ngFor=\"let tag of tags\" (click)=\"activateTag(tag)\"\n class=\"hover:bg-gray-50 cursor-pointer\">\n <td class=\"whitespace-nowrap border-b border-gray-200 py-2 px-4 text-sm \">\n <mat-icon color=\"primary\" *ngIf=\"activeTag.key === tag.key\">check_circle</mat-icon>\n </td>\n <td class=\"whitespace-nowrap border-b border-gray-200 py-2 px-4 text-sm font-medium text-gray-900\">\n {{tag.tag}}\n </td>\n <td class=\"whitespace-nowrap border-b border-gray-200 py-2 px-4 text-sm text-gray-500\">\n {{tag.description}}\n </td>\n <td class=\"whitespace-nowrap border-b border-gray-200 py-2 px-4 text-sm text-gray-500\">\n {{tag.key}}\n </td>\n <td class=\"relative whitespace-nowrap border-b border-gray-200 py-2 px-4 text-right text-sm\">\n <div class=\"flex items-center justify-end\">\n <button mat-icon-button color=\"warn\" (click)=\"removeTag(tag.key)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n\n<!-- <ng-template [ngIf]=\"!addNew\">-->\n<!-- <input class=\"full\" type=\"text\" placeholder=\"Search {{config.tagMenuLabel || 'tags'}}\" (keyup)=\"searchText.next($event.target.value)\">-->\n\n<!-- <table class=\"hover\">-->\n<!-- <thead>-->\n<!-- <tr>-->\n<!-- <th></th>-->\n<!-- <th>Name</th>-->\n<!-- <th>Description</th>-->\n<!-- <th>Key</th>-->\n<!-- <th></th>-->\n<!-- </tr>-->\n<!-- </thead>-->\n<!-- <tbody>-->\n<!-- <tr >-->\n<!-- <td>-->\n<!-- <mat-icon color=\"primary\" *ngIf=\"activeTag.key === tag.key\">check_circle</mat-icon>-->\n<!-- </td>-->\n<!-- <td>{{tag.tag}}</td>-->\n<!-- <td>{{tag.description}}</td>-->\n<!-- <td>{{tag.key}}</td>-->\n<!-- <td class=\"text-right\">-->\n<!-- <button mat-icon-button color=\"warn\" (click)=\"removeTag(tag.key)\">-->\n<!-- <mat-icon>clear</mat-icon>-->\n<!-- </button>-->\n<!-- </td>-->\n<!-- </tr>-->\n\n<!-- </tbody>-->\n<!-- </table>-->\n<!-- </ng-template>-->\n\n <div class=\"p-4\" *ngIf=\"addNew\">\n <div class=\"my-4\">\n <p><b>{{config.tagLabel || 'Tag'}} Name</b></p>\n <input class=\"full\" type=\"text\" placeholder=\"Enter {{config.tagLabel || 'tag'}} name\" [(ngModel)]=\"newName\">\n </div>\n <div class=\"my-4\">\n <p class=\"mt-1\"><b>{{config.tagLabel || 'Tag'}} Description</b></p>\n <input class=\"full\" type=\"text\" placeholder=\"Enter {{config.tagLabel || 'Tag'}} description\" [(ngModel)]=\"newDescription\">\n </div>\n </div>\n\n\n </div>\n\n <div class=\"dialog-footer\">\n <button mat-button mat-dialog-close mat-stroked-button type=\"button\" *ngIf=\"!addNew\">Close</button>\n <button mat-button mat-stroked-button type=\"button\" (click)=\"addNew = false;\" *ngIf=\"addNew\">Cancel</button>\n\n <button mat-button mat-flat-button color=\"primary\" type=\"button\" *ngIf=\"addNew\"\n (click)=\"createTag()\" [disabled]=\"!newName || !newDescription\">Create {{config.tagLabel || 'Tag'}}\n </button>\n </div>\n\n</div>\n\n\n", styles: ["table{margin-top:2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.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: i5.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: i6.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: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TagPickerComponent, decorators: [{
|
|
65
|
-
type: Component,
|
|
66
|
-
args: [{ selector: 'ki-tag-picker', 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>{{config.tagMenuLabel || 'Tags'}}</h2>\n <button mat-stroked-button color=\"primary\" (click)=\"addNew = !addNew\">\n <mat-icon>add</mat-icon>\n New {{config.tagLabel || 'Tag'}}\n </button>\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\n <ng-template [ngIf]=\"!addNew\">\n <div class=\"px-4 sm:px-6 lg:px-8 mt-0\">\n <div class=\"flex flex-col\">\n <div class=\"-my-2 -mx-4 sm:-mx-6 lg:-mx-8\">\n <div class=\"inline-block min-w-full py-2 align-middle\">\n <div class=\"mt-3 sm:mt-0 flex-1\">\n <label for=\"mobile-search-candidate\" class=\"sr-only\">Search</label>\n <div class=\"flex\">\n <div class=\"relative flex-grow focus-within:z-10\">\n <div\n class=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n <svg class=\"h-5 w-5 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clip-rule=\"evenodd\"/>\n </svg>\n </div>\n <input type=\"text\" name=\"mobile-search-candidate\" id=\"mobile-search-candidate\"\n class=\"block w-full rounded-none pl-10 border-t-1 border-l-0 border-gray-300\"\n placeholder=\"Search {{config.tagMenuLabel || 'tags'}}\"\n (keyup)=\"searchText.next($event.target.value)\">\n </div>\n </div>\n </div>\n <table class=\"min-w-full border-separate\" style=\"border-spacing: 0\">\n <thead class=\"bg-gray-100\">\n <tr>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 backdrop-blur backdrop-filter\">\n <span class=\"sr-only\">Checked</span>\n </th>\n <th scope=\"col\"\n 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\">\n Name\n </th>\n <th scope=\"col\"\n 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\">\n Description\n </th>\n <th scope=\"col\"\n 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\">\n Key\n </th>\n <th scope=\"col\"\n class=\"sticky top-0 z-10 border-b border-gray-300 bg-gray-50 bg-opacity-75 py-3.5 px-4 backdrop-blur backdrop-filter\">\n <span class=\"sr-only\">Edit</span>\n </th>\n </tr>\n </thead>\n <tbody class=\"bg-white\">\n <tr *ngFor=\"let tag of tags\" (click)=\"activateTag(tag)\"\n class=\"hover:bg-gray-50 cursor-pointer\">\n <td class=\"whitespace-nowrap border-b border-gray-200 py-2 px-4 text-sm \">\n <mat-icon color=\"primary\" *ngIf=\"activeTag.key === tag.key\">check_circle</mat-icon>\n </td>\n <td class=\"whitespace-nowrap border-b border-gray-200 py-2 px-4 text-sm font-medium text-gray-900\">\n {{tag.tag}}\n </td>\n <td class=\"whitespace-nowrap border-b border-gray-200 py-2 px-4 text-sm text-gray-500\">\n {{tag.description}}\n </td>\n <td class=\"whitespace-nowrap border-b border-gray-200 py-2 px-4 text-sm text-gray-500\">\n {{tag.key}}\n </td>\n <td class=\"relative whitespace-nowrap border-b border-gray-200 py-2 px-4 text-right text-sm\">\n <div class=\"flex items-center justify-end\">\n <button mat-icon-button color=\"warn\" (click)=\"removeTag(tag.key)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n </td>\n </tr>\n\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n\n<!-- <ng-template [ngIf]=\"!addNew\">-->\n<!-- <input class=\"full\" type=\"text\" placeholder=\"Search {{config.tagMenuLabel || 'tags'}}\" (keyup)=\"searchText.next($event.target.value)\">-->\n\n<!-- <table class=\"hover\">-->\n<!-- <thead>-->\n<!-- <tr>-->\n<!-- <th></th>-->\n<!-- <th>Name</th>-->\n<!-- <th>Description</th>-->\n<!-- <th>Key</th>-->\n<!-- <th></th>-->\n<!-- </tr>-->\n<!-- </thead>-->\n<!-- <tbody>-->\n<!-- <tr >-->\n<!-- <td>-->\n<!-- <mat-icon color=\"primary\" *ngIf=\"activeTag.key === tag.key\">check_circle</mat-icon>-->\n<!-- </td>-->\n<!-- <td>{{tag.tag}}</td>-->\n<!-- <td>{{tag.description}}</td>-->\n<!-- <td>{{tag.key}}</td>-->\n<!-- <td class=\"text-right\">-->\n<!-- <button mat-icon-button color=\"warn\" (click)=\"removeTag(tag.key)\">-->\n<!-- <mat-icon>clear</mat-icon>-->\n<!-- </button>-->\n<!-- </td>-->\n<!-- </tr>-->\n\n<!-- </tbody>-->\n<!-- </table>-->\n<!-- </ng-template>-->\n\n <div class=\"p-4\" *ngIf=\"addNew\">\n <div class=\"my-4\">\n <p><b>{{config.tagLabel || 'Tag'}} Name</b></p>\n <input class=\"full\" type=\"text\" placeholder=\"Enter {{config.tagLabel || 'tag'}} name\" [(ngModel)]=\"newName\">\n </div>\n <div class=\"my-4\">\n <p class=\"mt-1\"><b>{{config.tagLabel || 'Tag'}} Description</b></p>\n <input class=\"full\" type=\"text\" placeholder=\"Enter {{config.tagLabel || 'Tag'}} description\" [(ngModel)]=\"newDescription\">\n </div>\n </div>\n\n\n </div>\n\n <div class=\"dialog-footer\">\n <button mat-button mat-dialog-close mat-stroked-button type=\"button\" *ngIf=\"!addNew\">Close</button>\n <button mat-button mat-stroked-button type=\"button\" (click)=\"addNew = false;\" *ngIf=\"addNew\">Cancel</button>\n\n <button mat-button mat-flat-button color=\"primary\" type=\"button\" *ngIf=\"addNew\"\n (click)=\"createTag()\" [disabled]=\"!newName || !newDescription\">Create {{config.tagLabel || 'Tag'}}\n </button>\n </div>\n\n</div>\n\n\n", styles: ["table{margin-top:2rem}\n"] }]
|
|
67
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
68
|
-
type: Inject,
|
|
69
|
-
args: [MAT_DIALOG_DATA]
|
|
70
|
-
}] }, { type: i2.TagService }, { type: undefined, decorators: [{
|
|
71
|
-
type: Inject,
|
|
72
|
-
args: [KININTEL_CONFIG]
|
|
73
|
-
}] }]; } });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raW5pbnRlbC9zcmMvbGliL2NvbXBvbmVudHMvdGFnLXBpY2tlci90YWctcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpbmludGVsL3NyYy9saWIvY29tcG9uZW50cy90YWctcGlja2VyL3RhZy1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxlQUFlLEVBQXFDLE1BQU0saUNBQWlDLENBQUM7QUFDOUgsT0FBTyxFQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFBQyxlQUFlLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVFsRixNQUFNLE9BQU8sa0JBQWtCO0lBVTNCLFlBQW1CLFNBQTJDLEVBQ2xCLElBQVMsRUFDakMsVUFBc0IsRUFDRSxNQUE0QjtRQUhyRCxjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDRSxXQUFNLEdBQU4sTUFBTSxDQUFzQjtRQVhqRSxTQUFJLEdBQVEsRUFBRSxDQUFDO1FBQ2YsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM3QyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQVEsRUFBRSxDQUFDO0lBUTNCLENBQUM7SUFFRCxRQUFRO1FBRUosSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFNUQsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDcEMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQ1gsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUNqQixDQUNKLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQUc7UUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQU07UUFDbkIsTUFBTSxPQUFPLEdBQUcsOENBQThDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUM7UUFDdEYsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO29CQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxFQUFFO29CQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO2lCQUNwQztnQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLE9BQU87UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUM3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNqQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7Z0hBbEVRLGtCQUFrQixvREFXUCxlQUFlLHVDQUVmLGVBQWU7b0dBYjFCLGtCQUFrQixpR0NiL0IsNjlSQTJKQTs0RkQ5SWEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNJLGVBQWUsUUFHbkIsRUFBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUM7OzBCQWFsQixNQUFNOzJCQUFDLGVBQWU7OzBCQUV0QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEsIE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7VGFnU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFnLnNlcnZpY2UnO1xuaW1wb3J0IHtLSU5JTlRFTF9DT05GSUcsIEtpbmludGVsTW9kdWxlQ29uZmlnfSBmcm9tICcuLi8uLi9raW5pbnRlbC1jb25maWcnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2tpLXRhZy1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWctcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YWctcGlja2VyLmNvbXBvbmVudC5zYXNzJ10sXG4gICAgaG9zdDoge2NsYXNzOiAnZGlhbG9nLXdyYXBwZXInfVxufSlcbmV4cG9ydCBjbGFzcyBUYWdQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHVibGljIHRhZ3M6IGFueSA9IFtdO1xuICAgIHB1YmxpYyBhZGROZXcgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2VhcmNoVGV4dCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHVibGljIHJlbG9hZCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGFjdGl2ZVRhZzogYW55ID0ge307XG4gICAgcHVibGljIG5ld05hbWU7XG4gICAgcHVibGljIG5ld0Rlc2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRhZ1BpY2tlckNvbXBvbmVudD4sXG4gICAgICAgICAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSB0YWdTZXJ2aWNlOiBUYWdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoS0lOSU5URUxfQ09ORklHKSBwdWJsaWMgY29uZmlnOiBLaW5pbnRlbE1vZHVsZUNvbmZpZykge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVGFnID0gdGhpcy50YWdTZXJ2aWNlLmFjdGl2ZVRhZy5nZXRWYWx1ZSgpIHx8IHt9O1xuXG4gICAgICAgIG1lcmdlKHRoaXMuc2VhcmNoVGV4dCwgdGhpcy5yZWxvYWQpLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmdldFRhZ3MoKVxuICAgICAgICAgICAgKVxuICAgICAgICApLnN1YnNjcmliZSgodGFnczogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRhZ3MgPSB0YWdzO1xuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIHB1YmxpYyBhY3RpdmF0ZVRhZyh0YWcpIHtcbiAgICAgICAgdGhpcy50YWdTZXJ2aWNlLnNldEFjdGl2ZVRhZyh0YWcpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVUYWcodGFnS2V5KSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIHJlbW92ZSB0aGlzICR7dGhpcy5jb25maWcudGFnTGFiZWx9P2A7XG4gICAgICAgIGlmICh3aW5kb3cuY29uZmlybShtZXNzYWdlKSkge1xuICAgICAgICAgICAgdGhpcy50YWdTZXJ2aWNlLnJlbW92ZVRhZyh0YWdLZXkpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRhZ1NlcnZpY2UuYWN0aXZlVGFnLmdldFZhbHVlKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdTZXJ2aWNlLmFjdGl2ZVRhZy5nZXRWYWx1ZSgpLmtleSA9PT0gdGFnS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFnU2VydmljZS5yZXNldEFjdGl2ZVRhZygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZC5uZXh0KERhdGUubm93KCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlVGFnKCkge1xuICAgICAgICB0aGlzLnRhZ1NlcnZpY2Uuc2F2ZVRhZyh0aGlzLm5ld05hbWUsIHRoaXMubmV3RGVzY3JpcHRpb24pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZXdOYW1lID0gJyc7XG4gICAgICAgICAgICB0aGlzLm5ld0Rlc2NyaXB0aW9uID0gJyc7XG4gICAgICAgICAgICB0aGlzLmFkZE5ldyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZWxvYWQubmV4dChEYXRlLm5vdygpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUYWdzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50YWdTZXJ2aWNlLmdldFRhZ3MoXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFRleHQuZ2V0VmFsdWUoKVxuICAgICAgICApLnBpcGUobWFwKCh0YWdzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFncztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZGlhbG9nXCIgY2RrRHJhZyBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIuY2RrLW92ZXJsYXktcGFuZVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImRpYWxvZy10aXRsZVwiIGNka0RyYWdIYW5kbGU+XG4gICAgICAgIDxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7Y29uZmlnLnRhZ01lbnVMYWJlbCB8fCAnVGFncyd9fTwvaDI+XG4gICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGROZXcgPSAhYWRkTmV3XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIE5ldyB7e2NvbmZpZy50YWdMYWJlbCB8fCAnVGFnJ319XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPlxuICAgICAgICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWNvbnRlbnQgcC0wXCI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFhZGROZXdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC00IHNtOnB4LTYgbGc6cHgtOCBtdC0wXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIi1teS0yIC1teC00IHNtOi1teC02IGxnOi1teC04XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWJsb2NrIG1pbi13LWZ1bGwgcHktMiBhbGlnbi1taWRkbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBzbTptdC0wIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibW9iaWxlLXNlYXJjaC1jYW5kaWRhdGVcIiBjbGFzcz1cInNyLW9ubHlcIj5TZWFyY2g8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXgtZ3JvdyBmb2N1cy13aXRoaW46ei0xMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC15LTAgbGVmdC0wIHBsLTMgZmxleCBpdGVtcy1jZW50ZXIgcG9pbnRlci1ldmVudHMtbm9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiaC01IHctNSB0ZXh0LWdyYXktNDAwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04IDRhNCA0IDAgMTAwIDggNCA0IDAgMDAwLTh6TTIgOGE2IDYgMCAxMTEwLjg5IDMuNDc2bDQuODE3IDQuODE3YTEgMSAwIDAxLTEuNDE0IDEuNDE0bC00LjgxNi00LjgxNkE2IDYgMCAwMTIgOHpcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cIm1vYmlsZS1zZWFyY2gtY2FuZGlkYXRlXCIgaWQ9XCJtb2JpbGUtc2VhcmNoLWNhbmRpZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmxvY2sgdy1mdWxsIHJvdW5kZWQtbm9uZSBwbC0xMCBib3JkZXItdC0xIGJvcmRlci1sLTAgYm9yZGVyLWdyYXktMzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2gge3tjb25maWcudGFnTWVudUxhYmVsIHx8ICd0YWdzJ319XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cInNlYXJjaFRleHQubmV4dCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cIm1pbi13LWZ1bGwgYm9yZGVyLXNlcGFyYXRlXCIgc3R5bGU9XCJib3JkZXItc3BhY2luZzogMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJiZy1ncmF5LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RpY2t5IHRvcC0wIHotMTAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIGJnLWdyYXktNTAgYmctb3BhY2l0eS03NSBweS0zLjUgcHgtNCBiYWNrZHJvcC1ibHVyIGJhY2tkcm9wLWZpbHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkNoZWNrZWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0aWNreSB0b3AtMCB6LTEwIGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIGJnLW9wYWNpdHktNzUgcHktMy41IHB4LTQgdGV4dC1sZWZ0IHRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIGJhY2tkcm9wLWJsdXIgYmFja2Ryb3AtZmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdGlja3kgdG9wLTAgei0xMCBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgYmctZ3JheS01MCBiZy1vcGFjaXR5LTc1IHB5LTMuNSBweC00IHRleHQtbGVmdCB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMCBiYWNrZHJvcC1ibHVyIGJhY2tkcm9wLWZpbHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0aWNreSB0b3AtMCB6LTEwIGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIGJnLW9wYWNpdHktNzUgcHktMy41IHB4LTQgdGV4dC1sZWZ0IHRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwIGJhY2tkcm9wLWJsdXIgYmFja2Ryb3AtZmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0aWNreSB0b3AtMCB6LTEwIGJvcmRlci1iIGJvcmRlci1ncmF5LTMwMCBiZy1ncmF5LTUwIGJnLW9wYWNpdHktNzUgcHktMy41IHB4LTQgYmFja2Ryb3AtYmx1ciBiYWNrZHJvcC1maWx0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5FZGl0PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwiYmctd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1wiIChjbGljayk9XCJhY3RpdmF0ZVRhZyh0YWcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaG92ZXI6YmctZ3JheS01MCBjdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwIHB5LTIgcHgtNCB0ZXh0LXNtIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cImFjdGl2ZVRhZy5rZXkgPT09IHRhZy5rZXlcIj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMCBweS0yIHB4LTQgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWcudGFnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcCBib3JkZXItYiBib3JkZXItZ3JheS0yMDAgcHktMiBweC00IHRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dGFnLmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcCBib3JkZXItYiBib3JkZXItZ3JheS0yMDAgcHktMiBweC00IHRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dGFnLmtleX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicmVsYXRpdmUgd2hpdGVzcGFjZS1ub3dyYXAgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwIHB5LTIgcHgtNCB0ZXh0LXJpZ2h0IHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cInJlbW92ZVRhZyh0YWcua2V5KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG48IS0tICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWFkZE5ld1wiPi0tPlxuPCEtLSAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ1bGxcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIHt7Y29uZmlnLnRhZ01lbnVMYWJlbCB8fCAndGFncyd9fVwiIChrZXl1cCk9XCJzZWFyY2hUZXh0Lm5leHQoJGV2ZW50LnRhcmdldC52YWx1ZSlcIj4tLT5cblxuPCEtLSAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cImhvdmVyXCI+LS0+XG48IS0tICAgICAgICAgICAgICAgIDx0aGVhZD4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPHRyPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHRoPjwvdGg+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8dGg+TmFtZTwvdGg+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8dGg+RGVzY3JpcHRpb248L3RoPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHRoPktleTwvdGg+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8dGg+PC90aD4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC90cj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPC90aGVhZD4tLT5cbjwhLS0gICAgICAgICAgICAgICAgPHRib2R5Pi0tPlxuPCEtLSAgICAgICAgICAgICAgICA8dHIgPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHRkPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cImFjdGl2ZVRhZy5rZXkgPT09IHRhZy5rZXlcIj5jaGVja19jaXJjbGU8L21hdC1pY29uPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPC90ZD4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDx0ZD57e3RhZy50YWd9fTwvdGQ+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8dGQ+e3t0YWcuZGVzY3JpcHRpb259fTwvdGQ+LS0+XG48IS0tICAgICAgICAgICAgICAgICAgICA8dGQ+e3t0YWcua2V5fX08L3RkPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGV4dC1yaWdodFwiPi0tPlxuPCEtLSAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJyZW1vdmVUYWcodGFnLmtleSlcIj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4tLT5cbjwhLS0gICAgICAgICAgICAgICAgICAgIDwvdGQ+LS0+XG48IS0tICAgICAgICAgICAgICAgIDwvdHI+LS0+XG5cbjwhLS0gICAgICAgICAgICAgICAgPC90Ym9keT4tLT5cbjwhLS0gICAgICAgICAgICA8L3RhYmxlPi0tPlxuPCEtLSAgICAgICAgPC9uZy10ZW1wbGF0ZT4tLT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicC00XCIgKm5nSWY9XCJhZGROZXdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS00XCI+XG4gICAgICAgICAgICAgICAgPHA+PGI+e3tjb25maWcudGFnTGFiZWwgfHwgJ1RhZyd9fSBOYW1lPC9iPjwvcD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmdWxsXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIHt7Y29uZmlnLnRhZ0xhYmVsIHx8ICd0YWcnfX0gbmFtZVwiIFsobmdNb2RlbCldPVwibmV3TmFtZVwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktNFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibXQtMVwiPjxiPnt7Y29uZmlnLnRhZ0xhYmVsIHx8ICdUYWcnfX0gRGVzY3JpcHRpb248L2I+PC9wPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ1bGxcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIge3tjb25maWcudGFnTGFiZWwgfHwgJ1RhZyd9fSBkZXNjcmlwdGlvblwiIFsobmdNb2RlbCldPVwibmV3RGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiIWFkZE5ld1wiPkNsb3NlPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJhZGROZXcgPSBmYWxzZTtcIiAqbmdJZj1cImFkZE5ld1wiPkNhbmNlbDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiYWRkTmV3XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlVGFnKClcIiBbZGlzYWJsZWRdPVwiIW5ld05hbWUgfHwgIW5ld0Rlc2NyaXB0aW9uXCI+Q3JlYXRlIHt7Y29uZmlnLnRhZ0xhYmVsIHx8ICdUYWcnfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbjwvZGl2PlxuXG5cbiJdfQ==
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
2
|
-
import * as lodash from 'lodash';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/material/legacy-button";
|
|
6
|
-
import * as i3 from "@angular/material/icon";
|
|
7
|
-
import * as i4 from "@angular/forms";
|
|
8
|
-
import * as i5 from "@angular/material/legacy-select";
|
|
9
|
-
import * as i6 from "@angular/material/legacy-core";
|
|
10
|
-
const _ = lodash.default;
|
|
11
|
-
export class TaskTimePeriodsComponent {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.taskTimePeriods = [];
|
|
14
|
-
this.showTitle = true;
|
|
15
|
-
this.taskTimePeriodsChange = new EventEmitter();
|
|
16
|
-
this.showNewTaskTimePeriod = false;
|
|
17
|
-
this.newTaskTimePeriod = {};
|
|
18
|
-
this._ = _;
|
|
19
|
-
this.Object = Object;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
}
|
|
23
|
-
addScheduleTime() {
|
|
24
|
-
this.showNewTaskTimePeriod = true;
|
|
25
|
-
}
|
|
26
|
-
addTimePeriod() {
|
|
27
|
-
this.taskTimePeriods.push(this.newTaskTimePeriod);
|
|
28
|
-
this.showNewTaskTimePeriod = false;
|
|
29
|
-
this.newTaskTimePeriod = {};
|
|
30
|
-
this.taskTimePeriodsChange.next(this.taskTimePeriods);
|
|
31
|
-
}
|
|
32
|
-
removeTime(index) {
|
|
33
|
-
this.taskTimePeriods.splice(index, 1);
|
|
34
|
-
if (!this.taskTimePeriods.length) {
|
|
35
|
-
this.showNewTaskTimePeriod = true;
|
|
36
|
-
this.newTaskTimePeriod = {};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
TaskTimePeriodsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskTimePeriodsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
41
|
-
TaskTimePeriodsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TaskTimePeriodsComponent, selector: "ki-task-time-periods", inputs: { taskTimePeriods: "taskTimePeriods", showTitle: "showTitle" }, outputs: { taskTimePeriodsChange: "taskTimePeriodsChange" }, viewQueries: [{ propertyName: "timeForm", first: true, predicate: ["timeForm"], descendants: true }], ngImport: i0, template: "<p *ngIf=\"showTitle\"><b>Time Periods</b></p>\n\n<div class=\"time-period\" *ngFor=\"let time of taskTimePeriods; let i = index\">\n <div class=\"align-center justify-between\">\n <div>\n <ng-template ngFor let-key [ngForOf]=\"Object.keys(time)\">\n <ng-template [ngIf]=\"key !== 'id' && time[key]\">\n <span class=\"mr-2\"><span class=\"capitalize\"><b>{{_.startCase(key)}}:</b></span> <span>{{time[key]}}</span></span>\n </ng-template>\n </ng-template>\n </div>\n <button mat-icon-button color=\"warn\" (click)=\"removeTime(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n\n<button mat-button color=\"primary\" (click)=\"addScheduleTime()\">\n <mat-icon>more_time</mat-icon> Add scheduled time\n</button>\n\n<ng-template [ngIf]=\"showNewTaskTimePeriod\">\n <div class=\"w-full bg-gray-50 p-4 mt-4\">\n <div class=\"mb-2 text-xs \">Enter the frequency for the desired time period then click\n <span class=\"font-medium\">Save time period</span></div>\n <form #timeForm=\"ngForm\" class=\"w-1/2\">\n <label class=\"mb-4\">\n Frequency\n <mat-select #frequency=\"ngModel\" [ngClass]=\"{'border-red-600': frequency.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.frequency\" name=\"frequency\" required>\n <mat-option value=\"Monthly\">Monthly</mat-option>\n <mat-option value=\"Weekly\">Weekly</mat-option>\n <mat-option value=\"Daily\">Daily</mat-option>\n <mat-option value=\"Hourly\">Hourly</mat-option>\n </mat-select>\n </label>\n\n <label class=\"mb-4\" *ngIf=\"['Monthly'].indexOf(newTaskTimePeriod.frequency) > -1\">\n Day of month\n <mat-select #month=\"ngModel\" [ngClass]=\"{'border-red-600': month.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.dayInMonth\" name=\"month\" required>\n <mat-option [value]=\"day\" *ngFor=\"let day of _.range(1, 29)\">\n {{day}}\n </mat-option>\n </mat-select>\n </label>\n\n <label class=\"mb-4\" *ngIf=\"['Weekly'].indexOf(newTaskTimePeriod.frequency) > -1\">\n Day of week\n <mat-select #week=\"ngModel\" [ngClass]=\"{'border-red-600': week.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.dayOfWeek\" name=\"week\" required>\n <mat-option [value]=\"1\">Monday</mat-option>\n <mat-option [value]=\"2\">Tuesday</mat-option>\n <mat-option [value]=\"3\">Wednesday</mat-option>\n <mat-option [value]=\"4\">Thursday</mat-option>\n <mat-option [value]=\"5\">Friday</mat-option>\n <mat-option [value]=\"6\">Saturday</mat-option>\n <mat-option [value]=\"7\">Sunday</mat-option>\n </mat-select>\n </label>\n\n <label class=\"mb-4\"\n *ngIf=\"['Monthly', 'Weekly', 'Daily'].indexOf(newTaskTimePeriod.frequency) > -1\">\n Hour\n <mat-select #hour=\"ngModel\" [ngClass]=\"{'border-red-600': hour.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.hour\" name=\"hour\" required>\n <mat-option [value]=\"hour < 10 ? '0' + hour : hour\" *ngFor=\"let hour of _.range(0, 24)\">\n {{hour < 10 ? '0' + hour : hour}}\n </mat-option>\n </mat-select>\n </label>\n\n <label class=\"mb-4\"\n *ngIf=\"['Monthly', 'Weekly', 'Daily', 'Hourly'].indexOf(newTaskTimePeriod.frequency) > -1\">\n Minute\n <mat-select #minute=\"ngModel\" [ngClass]=\"{'border-red-600': minute.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.minute\" name=\"minute\" required>\n <mat-option [value]=\"minute < 10 ? '0' + minute : minute\" *ngFor=\"let minute of _.range(0, 60)\">\n {{minute < 10 ? '0' + minute : minute}}\n </mat-option>\n </mat-select>\n </label>\n\n <div class=\"align-center justify-between\">\n <div></div>\n <button mat-flat-button color=\"primary\" (click)=\"addTimePeriod()\"\n [disabled]=\"timeForm.invalid\">Save time period\n </button>\n </div>\n </form>\n </div>\n\n</ng-template>\n", styles: [".time-period{padding:.25rem 1rem;border-radius:4px;border:1px solid #dadada;margin-bottom:.5rem;width:100%;max-width:500px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.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: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }] });
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskTimePeriodsComponent, decorators: [{
|
|
43
|
-
type: Component,
|
|
44
|
-
args: [{ selector: 'ki-task-time-periods', template: "<p *ngIf=\"showTitle\"><b>Time Periods</b></p>\n\n<div class=\"time-period\" *ngFor=\"let time of taskTimePeriods; let i = index\">\n <div class=\"align-center justify-between\">\n <div>\n <ng-template ngFor let-key [ngForOf]=\"Object.keys(time)\">\n <ng-template [ngIf]=\"key !== 'id' && time[key]\">\n <span class=\"mr-2\"><span class=\"capitalize\"><b>{{_.startCase(key)}}:</b></span> <span>{{time[key]}}</span></span>\n </ng-template>\n </ng-template>\n </div>\n <button mat-icon-button color=\"warn\" (click)=\"removeTime(i)\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n\n<button mat-button color=\"primary\" (click)=\"addScheduleTime()\">\n <mat-icon>more_time</mat-icon> Add scheduled time\n</button>\n\n<ng-template [ngIf]=\"showNewTaskTimePeriod\">\n <div class=\"w-full bg-gray-50 p-4 mt-4\">\n <div class=\"mb-2 text-xs \">Enter the frequency for the desired time period then click\n <span class=\"font-medium\">Save time period</span></div>\n <form #timeForm=\"ngForm\" class=\"w-1/2\">\n <label class=\"mb-4\">\n Frequency\n <mat-select #frequency=\"ngModel\" [ngClass]=\"{'border-red-600': frequency.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.frequency\" name=\"frequency\" required>\n <mat-option value=\"Monthly\">Monthly</mat-option>\n <mat-option value=\"Weekly\">Weekly</mat-option>\n <mat-option value=\"Daily\">Daily</mat-option>\n <mat-option value=\"Hourly\">Hourly</mat-option>\n </mat-select>\n </label>\n\n <label class=\"mb-4\" *ngIf=\"['Monthly'].indexOf(newTaskTimePeriod.frequency) > -1\">\n Day of month\n <mat-select #month=\"ngModel\" [ngClass]=\"{'border-red-600': month.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.dayInMonth\" name=\"month\" required>\n <mat-option [value]=\"day\" *ngFor=\"let day of _.range(1, 29)\">\n {{day}}\n </mat-option>\n </mat-select>\n </label>\n\n <label class=\"mb-4\" *ngIf=\"['Weekly'].indexOf(newTaskTimePeriod.frequency) > -1\">\n Day of week\n <mat-select #week=\"ngModel\" [ngClass]=\"{'border-red-600': week.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.dayOfWeek\" name=\"week\" required>\n <mat-option [value]=\"1\">Monday</mat-option>\n <mat-option [value]=\"2\">Tuesday</mat-option>\n <mat-option [value]=\"3\">Wednesday</mat-option>\n <mat-option [value]=\"4\">Thursday</mat-option>\n <mat-option [value]=\"5\">Friday</mat-option>\n <mat-option [value]=\"6\">Saturday</mat-option>\n <mat-option [value]=\"7\">Sunday</mat-option>\n </mat-select>\n </label>\n\n <label class=\"mb-4\"\n *ngIf=\"['Monthly', 'Weekly', 'Daily'].indexOf(newTaskTimePeriod.frequency) > -1\">\n Hour\n <mat-select #hour=\"ngModel\" [ngClass]=\"{'border-red-600': hour.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.hour\" name=\"hour\" required>\n <mat-option [value]=\"hour < 10 ? '0' + hour : hour\" *ngFor=\"let hour of _.range(0, 24)\">\n {{hour < 10 ? '0' + hour : hour}}\n </mat-option>\n </mat-select>\n </label>\n\n <label class=\"mb-4\"\n *ngIf=\"['Monthly', 'Weekly', 'Daily', 'Hourly'].indexOf(newTaskTimePeriod.frequency) > -1\">\n Minute\n <mat-select #minute=\"ngModel\" [ngClass]=\"{'border-red-600': minute.invalid}\"\n [(ngModel)]=\"newTaskTimePeriod.minute\" name=\"minute\" required>\n <mat-option [value]=\"minute < 10 ? '0' + minute : minute\" *ngFor=\"let minute of _.range(0, 60)\">\n {{minute < 10 ? '0' + minute : minute}}\n </mat-option>\n </mat-select>\n </label>\n\n <div class=\"align-center justify-between\">\n <div></div>\n <button mat-flat-button color=\"primary\" (click)=\"addTimePeriod()\"\n [disabled]=\"timeForm.invalid\">Save time period\n </button>\n </div>\n </form>\n </div>\n\n</ng-template>\n", styles: [".time-period{padding:.25rem 1rem;border-radius:4px;border:1px solid #dadada;margin-bottom:.5rem;width:100%;max-width:500px}\n"] }]
|
|
45
|
-
}], ctorParameters: function () { return []; }, propDecorators: { timeForm: [{
|
|
46
|
-
type: ViewChild,
|
|
47
|
-
args: ['timeForm']
|
|
48
|
-
}], taskTimePeriods: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], showTitle: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], taskTimePeriodsChange: [{
|
|
53
|
-
type: Output
|
|
54
|
-
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay10aW1lLXBlcmlvZHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stdGltZS1wZXJpb2RzL3Rhc2stdGltZS1wZXJpb2RzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpbmludGVsL3NyYy9saWIvY29tcG9uZW50cy90YXNrLXRpbWUtcGVyaW9kcy90YXNrLXRpbWUtcGVyaW9kcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7QUFFakMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztBQU96QixNQUFNLE9BQU8sd0JBQXdCO0lBZWpDO1FBWFMsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFDMUIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVoQiwwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixzQkFBaUIsR0FBUSxFQUFFLENBQUM7UUFDNUIsTUFBQyxHQUFHLENBQUMsQ0FBQztRQUNOLFdBQU0sR0FBRyxNQUFNLENBQUM7SUFJdkIsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxhQUFhO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUM5QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7U0FDL0I7SUFDTCxDQUFDOztzSEF0Q1Esd0JBQXdCOzBHQUF4Qix3QkFBd0IsdVNDVnJDLDBwSkE2RkE7NEZEbkZhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxzQkFBc0I7MEVBTVQsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUVaLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxxQkFBcUI7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7TmdGb3JtfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5jb25zdCBfID0gbG9kYXNoLmRlZmF1bHQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2ktdGFzay10aW1lLXBlcmlvZHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YXNrLXRpbWUtcGVyaW9kcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFzay10aW1lLXBlcmlvZHMuY29tcG9uZW50LnNhc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUYXNrVGltZVBlcmlvZHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQFZpZXdDaGlsZCgndGltZUZvcm0nKSB0aW1lRm9ybTogTmdGb3JtO1xuXG4gICAgQElucHV0KCkgdGFza1RpbWVQZXJpb2RzOiBhbnkgPSBbXTtcbiAgICBASW5wdXQoKSBzaG93VGl0bGUgPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpIHRhc2tUaW1lUGVyaW9kc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBzaG93TmV3VGFza1RpbWVQZXJpb2QgPSBmYWxzZTtcbiAgICBwdWJsaWMgbmV3VGFza1RpbWVQZXJpb2Q6IGFueSA9IHt9O1xuICAgIHB1YmxpYyBfID0gXztcbiAgICBwdWJsaWMgT2JqZWN0ID0gT2JqZWN0O1xuXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkU2NoZWR1bGVUaW1lKCkge1xuICAgICAgICB0aGlzLnNob3dOZXdUYXNrVGltZVBlcmlvZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFRpbWVQZXJpb2QoKSB7XG4gICAgICAgIHRoaXMudGFza1RpbWVQZXJpb2RzLnB1c2godGhpcy5uZXdUYXNrVGltZVBlcmlvZCk7XG4gICAgICAgIHRoaXMuc2hvd05ld1Rhc2tUaW1lUGVyaW9kID0gZmFsc2U7XG4gICAgICAgIHRoaXMubmV3VGFza1RpbWVQZXJpb2QgPSB7fTtcbiAgICAgICAgdGhpcy50YXNrVGltZVBlcmlvZHNDaGFuZ2UubmV4dCh0aGlzLnRhc2tUaW1lUGVyaW9kcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVRpbWUoaW5kZXgpIHtcbiAgICAgICAgdGhpcy50YXNrVGltZVBlcmlvZHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgaWYgKCF0aGlzLnRhc2tUaW1lUGVyaW9kcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd05ld1Rhc2tUaW1lUGVyaW9kID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubmV3VGFza1RpbWVQZXJpb2QgPSB7fTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxwICpuZ0lmPVwic2hvd1RpdGxlXCI+PGI+VGltZSBQZXJpb2RzPC9iPjwvcD5cblxuPGRpdiBjbGFzcz1cInRpbWUtcGVyaW9kXCIgKm5nRm9yPVwibGV0IHRpbWUgb2YgdGFza1RpbWVQZXJpb2RzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cImFsaWduLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQta2V5IFtuZ0Zvck9mXT1cIk9iamVjdC5rZXlzKHRpbWUpXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImtleSAhPT0gJ2lkJyAmJiB0aW1lW2tleV1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0yXCI+PHNwYW4gY2xhc3M9XCJjYXBpdGFsaXplXCI+PGI+e3tfLnN0YXJ0Q2FzZShrZXkpfX06PC9iPjwvc3Bhbj4mbmJzcDs8c3Bhbj57e3RpbWVba2V5XX19PC9zcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJyZW1vdmVUaW1lKGkpXCI+XG4gICAgICAgICAgICA8bWF0LWljb24+Y2xlYXI8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZFNjaGVkdWxlVGltZSgpXCI+XG4gICAgPG1hdC1pY29uPm1vcmVfdGltZTwvbWF0LWljb24+Jm5ic3A7QWRkIHNjaGVkdWxlZCB0aW1lXG48L2J1dHRvbj5cblxuPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNob3dOZXdUYXNrVGltZVBlcmlvZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgYmctZ3JheS01MCBwLTQgbXQtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiB0ZXh0LXhzIFwiPkVudGVyIHRoZSBmcmVxdWVuY3kgZm9yIHRoZSBkZXNpcmVkIHRpbWUgcGVyaW9kIHRoZW4gY2xpY2tcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIj5TYXZlIHRpbWUgcGVyaW9kPC9zcGFuPjwvZGl2PlxuICAgICAgICA8Zm9ybSAjdGltZUZvcm09XCJuZ0Zvcm1cIiBjbGFzcz1cInctMS8yXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYi00XCI+XG4gICAgICAgICAgICAgICAgRnJlcXVlbmN5XG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgI2ZyZXF1ZW5jeT1cIm5nTW9kZWxcIiBbbmdDbGFzc109XCJ7J2JvcmRlci1yZWQtNjAwJzogZnJlcXVlbmN5LmludmFsaWR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld1Rhc2tUaW1lUGVyaW9kLmZyZXF1ZW5jeVwiIG5hbWU9XCJmcmVxdWVuY3lcIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJNb250aGx5XCI+TW9udGhseTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJXZWVrbHlcIj5XZWVrbHk8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiRGFpbHlcIj5EYWlseTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJIb3VybHlcIj5Ib3VybHk8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWItNFwiICpuZ0lmPVwiWydNb250aGx5J10uaW5kZXhPZihuZXdUYXNrVGltZVBlcmlvZC5mcmVxdWVuY3kpID4gLTFcIj5cbiAgICAgICAgICAgICAgICBEYXkgb2YgbW9udGhcbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAjbW9udGg9XCJuZ01vZGVsXCIgW25nQ2xhc3NdPVwieydib3JkZXItcmVkLTYwMCc6IG1vbnRoLmludmFsaWR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld1Rhc2tUaW1lUGVyaW9kLmRheUluTW9udGhcIiBuYW1lPVwibW9udGhcIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImRheVwiICpuZ0Zvcj1cImxldCBkYXkgb2YgXy5yYW5nZSgxLCAyOSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF5fX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTRcIiAqbmdJZj1cIlsnV2Vla2x5J10uaW5kZXhPZihuZXdUYXNrVGltZVBlcmlvZC5mcmVxdWVuY3kpID4gLTFcIj5cbiAgICAgICAgICAgICAgICBEYXkgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICN3ZWVrPVwibmdNb2RlbFwiIFtuZ0NsYXNzXT1cInsnYm9yZGVyLXJlZC02MDAnOiB3ZWVrLmludmFsaWR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5ld1Rhc2tUaW1lUGVyaW9kLmRheU9mV2Vla1wiIG5hbWU9XCJ3ZWVrXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIxXCI+TW9uZGF5PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiMlwiPlR1ZXNkYXk8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCIzXCI+V2VkbmVzZGF5PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiNFwiPlRodXJzZGF5PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiNVwiPkZyaWRheTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjZcIj5TYXR1cmRheTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIjdcIj5TdW5kYXk8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWItNFwiXG4gICAgICAgICAgICAgICAgICAgKm5nSWY9XCJbJ01vbnRobHknLCAnV2Vla2x5JywgJ0RhaWx5J10uaW5kZXhPZihuZXdUYXNrVGltZVBlcmlvZC5mcmVxdWVuY3kpID4gLTFcIj5cbiAgICAgICAgICAgICAgICBIb3VyXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgI2hvdXI9XCJuZ01vZGVsXCIgW25nQ2xhc3NdPVwieydib3JkZXItcmVkLTYwMCc6IGhvdXIuaW52YWxpZH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3VGFza1RpbWVQZXJpb2QuaG91clwiIG5hbWU9XCJob3VyXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJob3VyIDwgMTAgPyAnMCcgKyBob3VyIDogaG91clwiICpuZ0Zvcj1cImxldCBob3VyIG9mIF8ucmFuZ2UoMCwgMjQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2hvdXIgPCAxMCA/ICcwJyArIGhvdXIgOiBob3VyfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTRcIlxuICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiWydNb250aGx5JywgJ1dlZWtseScsICdEYWlseScsICdIb3VybHknXS5pbmRleE9mKG5ld1Rhc2tUaW1lUGVyaW9kLmZyZXF1ZW5jeSkgPiAtMVwiPlxuICAgICAgICAgICAgICAgIE1pbnV0ZVxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICNtaW51dGU9XCJuZ01vZGVsXCIgW25nQ2xhc3NdPVwieydib3JkZXItcmVkLTYwMCc6IG1pbnV0ZS5pbnZhbGlkfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdUYXNrVGltZVBlcmlvZC5taW51dGVcIiBuYW1lPVwibWludXRlXCIgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJtaW51dGUgPCAxMCA/ICcwJyArIG1pbnV0ZSA6IG1pbnV0ZVwiICpuZ0Zvcj1cImxldCBtaW51dGUgb2YgXy5yYW5nZSgwLCA2MClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7bWludXRlIDwgMTAgPyAnMCcgKyBtaW51dGUgOiBtaW51dGV9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsaWduLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJhZGRUaW1lUGVyaW9kKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRpbWVGb3JtLmludmFsaWRcIj5TYXZlIHRpbWUgcGVyaW9kXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuXG48L25nLXRlbXBsYXRlPlxuIl19
|
package/esm2020/lib/components/whitelisted-sql-functions/whitelisted-sql-functions.component.mjs
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import * as lodash from 'lodash';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../services/dataset.service";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
const _ = lodash.default;
|
|
8
|
-
export class WhitelistedSqlFunctionsComponent {
|
|
9
|
-
constructor(datasetService) {
|
|
10
|
-
this.datasetService = datasetService;
|
|
11
|
-
this.search = new BehaviorSubject('');
|
|
12
|
-
this.fields = [];
|
|
13
|
-
this.docs = [];
|
|
14
|
-
this.sqlFunctions = {};
|
|
15
|
-
this.showColumns = false;
|
|
16
|
-
this.Object = Object;
|
|
17
|
-
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
this.datasetService.getWhiteListedSQLFunctions().then((sql) => {
|
|
20
|
-
_.forEach(sql, (sqlFunction, name) => {
|
|
21
|
-
if (!this.sqlFunctions[sqlFunction.category]) {
|
|
22
|
-
this.sqlFunctions[sqlFunction.category] = { category: _.startCase(sqlFunction.category), functions: [] };
|
|
23
|
-
}
|
|
24
|
-
sqlFunction.name = name;
|
|
25
|
-
this.sqlFunctions[sqlFunction.category].functions.push(sqlFunction);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
WhitelistedSqlFunctionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WhitelistedSqlFunctionsComponent, deps: [{ token: i1.DatasetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
-
WhitelistedSqlFunctionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WhitelistedSqlFunctionsComponent, selector: "ki-whitelisted-sql-functions", inputs: { search: "search", fields: "fields" }, ngImport: i0, template: "<div class=\"max-w-7xl mx-auto pb-6\">\n <div class=\"max-w-3xl mx-auto divide-y-2 divide-gray-200\">\n <h2 class=\"mt-4 text-center text-xl font-extrabold text-gray-900\">\n Documentation\n </h2>\n\n <dl class=\"space-y-6 divide-y divide-gray-200\">\n <div class=\"py-6\">\n <ng-template [ngIf]=\"fields.length\">\n <dt class=\"text-lg\">\n <!-- Expand/collapse question button -->\n <button type=\"button\" (click)=\"showColumns = !showColumns\"\n class=\"text-left w-full flex justify-between items-start text-gray-400\"\n aria-controls=\"faq-0\" aria-expanded=\"false\">\n <span class=\"font-medium text-gray-900\"> Available Columns </span>\n <span class=\"ml-6 h-7 flex items-center\">\n <svg [ngClass]=\"{'rotate-0': !showColumns, '-rotate-180': showColumns}\"\n class=\"h-6 w-6 transform\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\n viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M19 9l-7 7-7-7\"/>\n </svg>\n </span>\n </button>\n </dt>\n <dd class=\"mt-2\" *ngIf=\"showColumns\">\n <p class=\"text-base text-gray-500\">\n Use columns by wrapping the column name in double square brackets.\n </p>\n <table class=\"min-w-full divide-y divide-gray-300\">\n <thead class=\"bg-gray-50\">\n <tr>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Title\n </th>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Column\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200 bg-white\">\n <tr *ngFor=\"let field of fields\">\n <td class=\"whitespace-nowrap px-3 py-2 text-sm text-gray-900 font-semibold\">\n {{field.title}}</td>\n <td class=\"whitespace-nowrap px-3 py-2 text-sm text-gray-500\">\n [[{{field.name}}]]\n </td>\n </tr>\n </tbody>\n </table>\n </dd>\n </ng-template>\n </div>\n </dl>\n </div>\n <div class=\"max-w-3xl mx-auto divide-y-2 divide-gray-200\">\n <p class=\"pt-6 text-base text-gray-500 text-semibold\">\n Available Functions\n </p>\n <dl class=\"space-y-6 divide-y divide-gray-200\" *ngIf=\"Object.keys(sqlFunctions).length\">\n <div class=\"pt-6\" *ngFor=\"let key of Object.keys(sqlFunctions)\">\n <dt class=\"text-lg\">\n <!-- Expand/collapse question button -->\n <button type=\"button\" (click)=\"sqlFunctions[key].show = !sqlFunctions[key].show\"\n class=\"text-left w-full flex justify-between items-start text-gray-400\"\n aria-controls=\"faq-0\" aria-expanded=\"false\">\n <span class=\"font-medium text-gray-900 capitalize\"> {{key.toLowerCase()}} </span>\n <span class=\"ml-6 h-7 flex items-center\">\n <svg\n [ngClass]=\"{'rotate-0': !sqlFunctions[key].show, '-rotate-180': sqlFunctions[key].show}\"\n class=\"h-6 w-6 transform\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\n viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M19 9l-7 7-7-7\"/>\n </svg>\n </span>\n </button>\n </dt>\n <dd class=\"mt-2\" *ngIf=\"sqlFunctions[key].show\">\n <table class=\"min-w-full divide-y divide-gray-300\">\n <thead class=\"bg-gray-50\">\n <tr>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Name\n </th>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Parameters\n </th>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Description\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200 bg-white\">\n <tr *ngFor=\"let sql of sqlFunctions[key].functions\">\n <td class=\"px-3 py-2 text-sm text-gray-900 font-semibold\">\n {{sql.name}}</td>\n <td class=\"px-3 py-2 text-sm text-gray-500\">\n {{sql.params}}\n </td>\n <td class=\"px-3 py-2 text-sm text-gray-500\">\n {{sql.description}}\n </td>\n </tr>\n </tbody>\n </table>\n </dd>\n </div>\n </dl>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WhitelistedSqlFunctionsComponent, decorators: [{
|
|
33
|
-
type: Component,
|
|
34
|
-
args: [{ selector: 'ki-whitelisted-sql-functions', template: "<div class=\"max-w-7xl mx-auto pb-6\">\n <div class=\"max-w-3xl mx-auto divide-y-2 divide-gray-200\">\n <h2 class=\"mt-4 text-center text-xl font-extrabold text-gray-900\">\n Documentation\n </h2>\n\n <dl class=\"space-y-6 divide-y divide-gray-200\">\n <div class=\"py-6\">\n <ng-template [ngIf]=\"fields.length\">\n <dt class=\"text-lg\">\n <!-- Expand/collapse question button -->\n <button type=\"button\" (click)=\"showColumns = !showColumns\"\n class=\"text-left w-full flex justify-between items-start text-gray-400\"\n aria-controls=\"faq-0\" aria-expanded=\"false\">\n <span class=\"font-medium text-gray-900\"> Available Columns </span>\n <span class=\"ml-6 h-7 flex items-center\">\n <svg [ngClass]=\"{'rotate-0': !showColumns, '-rotate-180': showColumns}\"\n class=\"h-6 w-6 transform\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\n viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M19 9l-7 7-7-7\"/>\n </svg>\n </span>\n </button>\n </dt>\n <dd class=\"mt-2\" *ngIf=\"showColumns\">\n <p class=\"text-base text-gray-500\">\n Use columns by wrapping the column name in double square brackets.\n </p>\n <table class=\"min-w-full divide-y divide-gray-300\">\n <thead class=\"bg-gray-50\">\n <tr>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Title\n </th>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Column\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200 bg-white\">\n <tr *ngFor=\"let field of fields\">\n <td class=\"whitespace-nowrap px-3 py-2 text-sm text-gray-900 font-semibold\">\n {{field.title}}</td>\n <td class=\"whitespace-nowrap px-3 py-2 text-sm text-gray-500\">\n [[{{field.name}}]]\n </td>\n </tr>\n </tbody>\n </table>\n </dd>\n </ng-template>\n </div>\n </dl>\n </div>\n <div class=\"max-w-3xl mx-auto divide-y-2 divide-gray-200\">\n <p class=\"pt-6 text-base text-gray-500 text-semibold\">\n Available Functions\n </p>\n <dl class=\"space-y-6 divide-y divide-gray-200\" *ngIf=\"Object.keys(sqlFunctions).length\">\n <div class=\"pt-6\" *ngFor=\"let key of Object.keys(sqlFunctions)\">\n <dt class=\"text-lg\">\n <!-- Expand/collapse question button -->\n <button type=\"button\" (click)=\"sqlFunctions[key].show = !sqlFunctions[key].show\"\n class=\"text-left w-full flex justify-between items-start text-gray-400\"\n aria-controls=\"faq-0\" aria-expanded=\"false\">\n <span class=\"font-medium text-gray-900 capitalize\"> {{key.toLowerCase()}} </span>\n <span class=\"ml-6 h-7 flex items-center\">\n <svg\n [ngClass]=\"{'rotate-0': !sqlFunctions[key].show, '-rotate-180': sqlFunctions[key].show}\"\n class=\"h-6 w-6 transform\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\"\n viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n d=\"M19 9l-7 7-7-7\"/>\n </svg>\n </span>\n </button>\n </dt>\n <dd class=\"mt-2\" *ngIf=\"sqlFunctions[key].show\">\n <table class=\"min-w-full divide-y divide-gray-300\">\n <thead class=\"bg-gray-50\">\n <tr>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Name\n </th>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Parameters\n </th>\n <th scope=\"col\" class=\"px-3 py-4 text-left text-sm font-semibold text-gray-900\">\n Description\n </th>\n </tr>\n </thead>\n <tbody class=\"divide-y divide-gray-200 bg-white\">\n <tr *ngFor=\"let sql of sqlFunctions[key].functions\">\n <td class=\"px-3 py-2 text-sm text-gray-900 font-semibold\">\n {{sql.name}}</td>\n <td class=\"px-3 py-2 text-sm text-gray-500\">\n {{sql.params}}\n </td>\n <td class=\"px-3 py-2 text-sm text-gray-500\">\n {{sql.description}}\n </td>\n </tr>\n </tbody>\n </table>\n </dd>\n </div>\n </dl>\n </div>\n</div>\n" }]
|
|
35
|
-
}], ctorParameters: function () { return [{ type: i1.DatasetService }]; }, propDecorators: { search: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], fields: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpdGVsaXN0ZWQtc3FsLWZ1bmN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raW5pbnRlbC9zcmMvbGliL2NvbXBvbmVudHMvd2hpdGVsaXN0ZWQtc3FsLWZ1bmN0aW9ucy93aGl0ZWxpc3RlZC1zcWwtZnVuY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWtpbmludGVsL3NyYy9saWIvY29tcG9uZW50cy93aGl0ZWxpc3RlZC1zcWwtZnVuY3Rpb25zL3doaXRlbGlzdGVkLXNxbC1mdW5jdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQzs7OztBQUNqQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBT3pCLE1BQU0sT0FBTyxnQ0FBZ0M7SUFVekMsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBUnpDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQyxXQUFNLEdBQVEsRUFBRSxDQUFDO1FBRW5CLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixXQUFNLEdBQUcsTUFBTSxDQUFDO0lBR3ZCLENBQUM7SUFFRCxRQUFRO1FBRUosSUFBSSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQy9ELENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUMsQ0FBQztpQkFDMUc7Z0JBQ0QsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzhIQXhCUSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQyxvSENYN0MsMDVNQStHQTs0RkRwR2EsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNJLDhCQUE4QjtxR0FNL0IsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0YXNldFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGFzZXQuc2VydmljZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBsb2Rhc2ggZnJvbSAnbG9kYXNoJztcbmNvbnN0IF8gPSBsb2Rhc2guZGVmYXVsdDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdraS13aGl0ZWxpc3RlZC1zcWwtZnVuY3Rpb25zJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vd2hpdGVsaXN0ZWQtc3FsLWZ1bmN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vd2hpdGVsaXN0ZWQtc3FsLWZ1bmN0aW9ucy5jb21wb25lbnQuc2FzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdoaXRlbGlzdGVkU3FsRnVuY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIHNlYXJjaCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuICAgIEBJbnB1dCgpIGZpZWxkczogYW55ID0gW107XG5cbiAgICBwdWJsaWMgZG9jczogYW55ID0gW107XG4gICAgcHVibGljIHNxbEZ1bmN0aW9uczogYW55ID0ge307XG4gICAgcHVibGljIHNob3dDb2x1bW5zID0gZmFsc2U7XG4gICAgcHVibGljIE9iamVjdCA9IE9iamVjdDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YXNldFNlcnZpY2U6IERhdGFzZXRTZXJ2aWNlKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICAgICAgdGhpcy5kYXRhc2V0U2VydmljZS5nZXRXaGl0ZUxpc3RlZFNRTEZ1bmN0aW9ucygpLnRoZW4oKHNxbDogYW55KSA9PiB7XG4gICAgICAgICAgICBfLmZvckVhY2goc3FsLCAoc3FsRnVuY3Rpb24sIG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3FsRnVuY3Rpb25zW3NxbEZ1bmN0aW9uLmNhdGVnb3J5XSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNxbEZ1bmN0aW9uc1tzcWxGdW5jdGlvbi5jYXRlZ29yeV0gPSB7Y2F0ZWdvcnk6IF8uc3RhcnRDYXNlKHNxbEZ1bmN0aW9uLmNhdGVnb3J5KSwgZnVuY3Rpb25zOiBbXX07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNxbEZ1bmN0aW9uLm5hbWUgPSBuYW1lO1xuICAgICAgICAgICAgICAgIHRoaXMuc3FsRnVuY3Rpb25zW3NxbEZ1bmN0aW9uLmNhdGVnb3J5XS5mdW5jdGlvbnMucHVzaChzcWxGdW5jdGlvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibWF4LXctN3hsIG14LWF1dG8gcGItNlwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXgtdy0zeGwgbXgtYXV0byBkaXZpZGUteS0yIGRpdmlkZS1ncmF5LTIwMFwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJtdC00IHRleHQtY2VudGVyIHRleHQteGwgZm9udC1leHRyYWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgRG9jdW1lbnRhdGlvblxuICAgICAgICA8L2gyPlxuXG4gICAgICAgIDxkbCBjbGFzcz1cInNwYWNlLXktNiAgZGl2aWRlLXkgZGl2aWRlLWdyYXktMjAwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktNlwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJmaWVsZHMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkdCBjbGFzcz1cInRleHQtbGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRXhwYW5kL2NvbGxhcHNlIHF1ZXN0aW9uIGJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzaG93Q29sdW1ucyA9ICFzaG93Q29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1sZWZ0IHctZnVsbCBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1zdGFydCB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cImZhcS0wXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+IEF2YWlsYWJsZSBDb2x1bW5zIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTYgaC03IGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIFtuZ0NsYXNzXT1cInsncm90YXRlLTAnOiAhc2hvd0NvbHVtbnMsICctcm90YXRlLTE4MCc6IHNob3dDb2x1bW5zfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaC02IHctNiB0cmFuc2Zvcm1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSA5bC03IDctNy03XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgICAgICAgICA8ZGQgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJzaG93Q29sdW1uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBjb2x1bW5zIGJ5IHdyYXBwaW5nIHRoZSBjb2x1bW4gbmFtZSBpbiBkb3VibGUgc3F1YXJlIGJyYWNrZXRzLlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwibWluLXctZnVsbCBkaXZpZGUteSBkaXZpZGUtZ3JheS0zMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJiZy1ncmF5LTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInB4LTMgcHktNCB0ZXh0LWxlZnQgdGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwicHgtMyBweS00IHRleHQtbGVmdCB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImRpdmlkZS15IGRpdmlkZS1ncmF5LTIwMCBiZy13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwIHB4LTMgcHktMiB0ZXh0LXNtIHRleHQtZ3JheS05MDAgZm9udC1zZW1pYm9sZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tmaWVsZC50aXRsZX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgcHgtMyBweS0yIHRleHQtc20gdGV4dC1ncmF5LTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t7e2ZpZWxkLm5hbWV9fV1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGw+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1heC13LTN4bCBteC1hdXRvIGRpdmlkZS15LTIgZGl2aWRlLWdyYXktMjAwXCI+XG4gICAgICAgIDxwIGNsYXNzPVwicHQtNiB0ZXh0LWJhc2UgdGV4dC1ncmF5LTUwMCB0ZXh0LXNlbWlib2xkXCI+XG4gICAgICAgICAgICBBdmFpbGFibGUgRnVuY3Rpb25zXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGRsIGNsYXNzPVwic3BhY2UteS02IGRpdmlkZS15IGRpdmlkZS1ncmF5LTIwMFwiICpuZ0lmPVwiT2JqZWN0LmtleXMoc3FsRnVuY3Rpb25zKS5sZW5ndGhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC02XCIgKm5nRm9yPVwibGV0IGtleSBvZiBPYmplY3Qua2V5cyhzcWxGdW5jdGlvbnMpXCI+XG4gICAgICAgICAgICAgICAgPGR0IGNsYXNzPVwidGV4dC1sZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIEV4cGFuZC9jb2xsYXBzZSBxdWVzdGlvbiBidXR0b24gLS0+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzcWxGdW5jdGlvbnNba2V5XS5zaG93ID0gIXNxbEZ1bmN0aW9uc1trZXldLnNob3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1sZWZ0IHctZnVsbCBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1zdGFydCB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwiZmFxLTBcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1ncmF5LTkwMCBjYXBpdGFsaXplXCI+IHt7a2V5LnRvTG93ZXJDYXNlKCl9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTYgaC03IGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyb3RhdGUtMCc6ICFzcWxGdW5jdGlvbnNba2V5XS5zaG93LCAnLXJvdGF0ZS0xODAnOiBzcWxGdW5jdGlvbnNba2V5XS5zaG93fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLTYgdy02IHRyYW5zZm9ybVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkgOWwtNyA3LTctN1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZHQ+XG4gICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwibXQtMlwiICpuZ0lmPVwic3FsRnVuY3Rpb25zW2tleV0uc2hvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJtaW4tdy1mdWxsIGRpdmlkZS15IGRpdmlkZS1ncmF5LTMwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkIGNsYXNzPVwiYmctZ3JheS01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwicHgtMyBweS00IHRleHQtbGVmdCB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cInB4LTMgcHktNCB0ZXh0LWxlZnQgdGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtZ3JheS05MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJweC0zIHB5LTQgdGV4dC1sZWZ0IHRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktOTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5IGNsYXNzPVwiZGl2aWRlLXkgZGl2aWRlLWdyYXktMjAwIGJnLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHNxbCBvZiBzcWxGdW5jdGlvbnNba2V5XS5mdW5jdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktOTAwIGZvbnQtc2VtaWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzcWwubmFtZX19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c3FsLnBhcmFtc319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c3FsLmRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2RsPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class DashboardChangesGuard {
|
|
4
|
-
canDeactivate(component, currentRoute, currentState, nextState) {
|
|
5
|
-
// if there are no pending changes, just allow deactivation; else confirm first
|
|
6
|
-
return component.canDeactivate() ?
|
|
7
|
-
true :
|
|
8
|
-
// NOTE: this warning message will only be shown when navigating elsewhere within your angular app;
|
|
9
|
-
// when navigating away from your angular app, the browser will show a generic warning message
|
|
10
|
-
// see http://stackoverflow.com/a/42207299/7307355
|
|
11
|
-
confirm('Leave site? Changes that you made may not be saved.');
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
DashboardChangesGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardChangesGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
-
DashboardChangesGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardChangesGuard, providedIn: 'root' });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardChangesGuard, decorators: [{
|
|
17
|
-
type: Injectable,
|
|
18
|
-
args: [{
|
|
19
|
-
providedIn: 'root'
|
|
20
|
-
}]
|
|
21
|
-
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWNoYW5nZXMuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1raW5pbnRlbC9zcmMvbGliL2d1YXJkcy9kYXNoYm9hcmQtY2hhbmdlcy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQVd6QyxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLGFBQWEsQ0FDVCxTQUFpQyxFQUNqQyxZQUFvQyxFQUNwQyxZQUFpQyxFQUNqQyxTQUErQjtRQUMvQiwrRUFBK0U7UUFDL0UsT0FBTyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsQ0FBQztZQUNOLG1HQUFtRztZQUNuRyw4RkFBOEY7WUFDOUYsa0RBQWtEO1lBQ2xELE9BQU8sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7O21IQWJRLHFCQUFxQjt1SEFBckIscUJBQXFCLGNBRmxCLE1BQU07NEZBRVQscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkRlYWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudENhbkRlYWN0aXZhdGUge1xuICAgIGNhbkRlYWN0aXZhdGU6ICgpID0+IGJvb2xlYW4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENoYW5nZXNHdWFyZCBpbXBsZW1lbnRzIENhbkRlYWN0aXZhdGU8Q29tcG9uZW50Q2FuRGVhY3RpdmF0ZT4ge1xuICAgIGNhbkRlYWN0aXZhdGUoXG4gICAgICAgIGNvbXBvbmVudDogQ29tcG9uZW50Q2FuRGVhY3RpdmF0ZSxcbiAgICAgICAgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICAgICAgICBjdXJyZW50U3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gICAgICAgIG5leHRTdGF0ZT86IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB8IFByb21pc2U8Ym9vbGVhbiB8IFVybFRyZWU+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xuICAgICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gcGVuZGluZyBjaGFuZ2VzLCBqdXN0IGFsbG93IGRlYWN0aXZhdGlvbjsgZWxzZSBjb25maXJtIGZpcnN0XG4gICAgICAgIHJldHVybiBjb21wb25lbnQuY2FuRGVhY3RpdmF0ZSgpID9cbiAgICAgICAgICAgIHRydWUgOlxuICAgICAgICAgICAgLy8gTk9URTogdGhpcyB3YXJuaW5nIG1lc3NhZ2Ugd2lsbCBvbmx5IGJlIHNob3duIHdoZW4gbmF2aWdhdGluZyBlbHNld2hlcmUgd2l0aGluIHlvdXIgYW5ndWxhciBhcHA7XG4gICAgICAgICAgICAvLyB3aGVuIG5hdmlnYXRpbmcgYXdheSBmcm9tIHlvdXIgYW5ndWxhciBhcHAsIHRoZSBicm93c2VyIHdpbGwgc2hvdyBhIGdlbmVyaWMgd2FybmluZyBtZXNzYWdlXG4gICAgICAgICAgICAvLyBzZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDIyMDcyOTkvNzMwNzM1NVxuICAgICAgICAgICAgY29uZmlybSgnTGVhdmUgc2l0ZT8gQ2hhbmdlcyB0aGF0IHlvdSBtYWRlIG1heSBub3QgYmUgc2F2ZWQuJyk7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const KININTEL_CONFIG = new InjectionToken('KinintelModuleConfig');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luaW50ZWwtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmcta2luaW50ZWwvc3JjL2xpYi9raW5pbnRlbC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQXVCLHNCQUFzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEtpbmludGVsTW9kdWxlQ29uZmlnIHtcbiAgICBiYWNrZW5kVVJMOiBzdHJpbmc7XG4gICAgZ3Vlc3RVUkw/OiBzdHJpbmc7XG4gICAgZXh0ZXJuYWxVUkw/OiBzdHJpbmc7XG4gICAgdGFnTGFiZWw/OiBzdHJpbmc7XG4gICAgdGFnTWVudUxhYmVsPzogc3RyaW5nO1xuICAgIGRhdGFTZWFyY2hUeXBlTWFwcGluZz86IGFueTtcbn1cblxuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEtJTklOVEVMX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxLaW5pbnRlbE1vZHVsZUNvbmZpZz4oJ0tpbmludGVsTW9kdWxlQ29uZmlnJyk7XG4iXX0=
|