@sunbird-cb/tree-hierarchy 0.0.1-cbrelease-4.8.29 → 0.0.2-ang-17-20
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/sunbird-cb-tree-hierarchy.mjs +770 -200
- package/fesm2022/sunbird-cb-tree-hierarchy.mjs.map +1 -1
- package/index.d.ts +1052 -3
- package/index.d.ts.map +1 -0
- package/package.json +14 -16
- package/sunbird-cb-tree-hierarchy-0.0.2-ang-17-20.tgz +0 -0
- package/esm2022/lib/components/action-bar/action-bar.component.mjs +0 -41
- package/esm2022/lib/components/approval/approval.component.mjs +0 -19
- package/esm2022/lib/components/approve-view/approve-view.component.mjs +0 -64
- package/esm2022/lib/components/categories-preview/categories-preview.component.mjs +0 -44
- package/esm2022/lib/components/category-edit/category-edit-module/category-edit-module.component.mjs +0 -55
- package/esm2022/lib/components/conforamtion-popup/conforamtion-popup.component.mjs +0 -74
- package/esm2022/lib/components/connector/connector.component.mjs +0 -59
- package/esm2022/lib/components/create-categories/create-categories.component.mjs +0 -83
- package/esm2022/lib/components/create-term/create-term.component.mjs +0 -847
- package/esm2022/lib/components/create-term-from-framework/create-term-from-framework.component.mjs +0 -824
- package/esm2022/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.mjs +0 -223
- package/esm2022/lib/components/pending-approval/pending-approval.component.mjs +0 -64
- package/esm2022/lib/components/term-card/term-card.component.mjs +0 -340
- package/esm2022/lib/components/tree-column-view/tree-column-view.component.mjs +0 -354
- package/esm2022/lib/components/tree-view/tree-view.component.mjs +0 -826
- package/esm2022/lib/constants/app-constant.mjs +0 -40
- package/esm2022/lib/constants/data.mjs +0 -6972
- package/esm2022/lib/containers/config-framework/config-framework.component.mjs +0 -92
- package/esm2022/lib/containers/dashboard/dashboard.component.mjs +0 -14
- package/esm2022/lib/labels/strings.mjs +0 -40
- package/esm2022/lib/models/approval.model.mjs +0 -2
- package/esm2022/lib/models/connection-type.model.mjs +0 -2
- package/esm2022/lib/models/connection.model.mjs +0 -2
- package/esm2022/lib/models/framework.model.mjs +0 -2
- package/esm2022/lib/models/variable-type.model.mjs +0 -2
- package/esm2022/lib/pipes/order-by.pipe.mjs +0 -35
- package/esm2022/lib/services/approval.service.mjs +0 -47
- package/esm2022/lib/services/connection.service.mjs +0 -3
- package/esm2022/lib/services/connector.service.mjs +0 -286
- package/esm2022/lib/services/framework.service.mjs +0 -525
- package/esm2022/lib/services/local-connection.service.mjs +0 -75
- package/esm2022/lib/services/odcs.service.mjs +0 -23
- package/esm2022/lib/tree-hierarchy-routing.module.mjs +0 -43
- package/esm2022/lib/tree-hierarchy.component.mjs +0 -24
- package/esm2022/lib/tree-hierarchy.module.mjs +0 -145
- package/esm2022/lib/tree-hierarchy.service.mjs +0 -57
- package/esm2022/material.module.mjs +0 -199
- package/esm2022/public-api.mjs +0 -9
- package/esm2022/sunbird-cb-tree-hierarchy.mjs +0 -2
- package/lib/components/action-bar/action-bar.component.d.ts +0 -17
- package/lib/components/action-bar/action-bar.component.d.ts.map +0 -1
- package/lib/components/approval/approval.component.d.ts +0 -10
- package/lib/components/approval/approval.component.d.ts.map +0 -1
- package/lib/components/approve-view/approve-view.component.d.ts +0 -27
- package/lib/components/approve-view/approve-view.component.d.ts.map +0 -1
- package/lib/components/categories-preview/categories-preview.component.d.ts +0 -14
- package/lib/components/categories-preview/categories-preview.component.d.ts.map +0 -1
- package/lib/components/category-edit/category-edit-module/category-edit-module.component.d.ts +0 -18
- package/lib/components/category-edit/category-edit-module/category-edit-module.component.d.ts.map +0 -1
- package/lib/components/conforamtion-popup/conforamtion-popup.component.d.ts +0 -20
- package/lib/components/conforamtion-popup/conforamtion-popup.component.d.ts.map +0 -1
- package/lib/components/connector/connector.component.d.ts +0 -23
- package/lib/components/connector/connector.component.d.ts.map +0 -1
- package/lib/components/create-categories/create-categories.component.d.ts +0 -26
- package/lib/components/create-categories/create-categories.component.d.ts.map +0 -1
- package/lib/components/create-term/create-term.component.d.ts +0 -148
- package/lib/components/create-term/create-term.component.d.ts.map +0 -1
- package/lib/components/create-term-from-framework/create-term-from-framework.component.d.ts +0 -105
- package/lib/components/create-term-from-framework/create-term-from-framework.component.d.ts.map +0 -1
- package/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.d.ts +0 -46
- package/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.d.ts.map +0 -1
- package/lib/components/pending-approval/pending-approval.component.d.ts +0 -21
- package/lib/components/pending-approval/pending-approval.component.d.ts.map +0 -1
- package/lib/components/term-card/term-card.component.d.ts +0 -53
- package/lib/components/term-card/term-card.component.d.ts.map +0 -1
- package/lib/components/tree-column-view/tree-column-view.component.d.ts +0 -56
- package/lib/components/tree-column-view/tree-column-view.component.d.ts.map +0 -1
- package/lib/components/tree-view/tree-view.component.d.ts +0 -102
- package/lib/components/tree-view/tree-view.component.d.ts.map +0 -1
- package/lib/constants/app-constant.d.ts +0 -44
- package/lib/constants/app-constant.d.ts.map +0 -1
- package/lib/constants/data.d.ts +0 -117
- package/lib/constants/data.d.ts.map +0 -1
- package/lib/containers/config-framework/config-framework.component.d.ts +0 -32
- package/lib/containers/config-framework/config-framework.component.d.ts.map +0 -1
- package/lib/containers/dashboard/dashboard.component.d.ts +0 -9
- package/lib/containers/dashboard/dashboard.component.d.ts.map +0 -1
- package/lib/labels/strings.d.ts +0 -40
- package/lib/labels/strings.d.ts.map +0 -1
- package/lib/models/approval.model.d.ts +0 -11
- package/lib/models/approval.model.d.ts.map +0 -1
- package/lib/models/connection-type.model.d.ts +0 -6
- package/lib/models/connection-type.model.d.ts.map +0 -1
- package/lib/models/connection.model.d.ts +0 -7
- package/lib/models/connection.model.d.ts.map +0 -1
- package/lib/models/framework.model.d.ts +0 -89
- package/lib/models/framework.model.d.ts.map +0 -1
- package/lib/models/variable-type.model.d.ts +0 -46
- package/lib/models/variable-type.model.d.ts.map +0 -1
- package/lib/pipes/order-by.pipe.d.ts +0 -10
- package/lib/pipes/order-by.pipe.d.ts.map +0 -1
- package/lib/services/approval.service.d.ts +0 -21
- package/lib/services/approval.service.d.ts.map +0 -1
- package/lib/services/connection.service.d.ts +0 -4
- package/lib/services/connection.service.d.ts.map +0 -1
- package/lib/services/connector.service.d.ts +0 -18
- package/lib/services/connector.service.d.ts.map +0 -1
- package/lib/services/framework.service.d.ts +0 -89
- package/lib/services/framework.service.d.ts.map +0 -1
- package/lib/services/local-connection.service.d.ts +0 -18
- package/lib/services/local-connection.service.d.ts.map +0 -1
- package/lib/services/odcs.service.d.ts +0 -11
- package/lib/services/odcs.service.d.ts.map +0 -1
- package/lib/tree-hierarchy-routing.module.d.ts +0 -8
- package/lib/tree-hierarchy-routing.module.d.ts.map +0 -1
- package/lib/tree-hierarchy.component.d.ts +0 -13
- package/lib/tree-hierarchy.component.d.ts.map +0 -1
- package/lib/tree-hierarchy.module.d.ts +0 -33
- package/lib/tree-hierarchy.module.d.ts.map +0 -1
- package/lib/tree-hierarchy.service.d.ts +0 -21
- package/lib/tree-hierarchy.service.d.ts.map +0 -1
- package/material.module.d.ts +0 -52
- package/material.module.d.ts.map +0 -1
- package/public-api.d.ts +0 -9
- package/public-api.d.ts.map +0 -1
- package/sunbird-cb-tree-hierarchy.d.ts.map +0 -1
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { Validators } from '@angular/forms';
|
|
3
|
-
import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
|
|
4
|
-
import { labels } from '../../labels/strings';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/material/legacy-dialog";
|
|
7
|
-
import * as i2 from "../../services/local-connection.service";
|
|
8
|
-
import * as i3 from "@angular/forms";
|
|
9
|
-
import * as i4 from "@angular/material/button";
|
|
10
|
-
import * as i5 from "@angular/material/dialog";
|
|
11
|
-
import * as i6 from "@angular/material/icon";
|
|
12
|
-
import * as i7 from "@angular/material/input";
|
|
13
|
-
import * as i8 from "@angular/material/form-field";
|
|
14
|
-
export class ConnectorComponent {
|
|
15
|
-
constructor(dialogRef, data, localScv, fb) {
|
|
16
|
-
this.dialogRef = dialogRef;
|
|
17
|
-
this.data = data;
|
|
18
|
-
this.localScv = localScv;
|
|
19
|
-
this.fb = fb;
|
|
20
|
-
this.app_strings = labels;
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() {
|
|
23
|
-
this.initConnectorForm();
|
|
24
|
-
}
|
|
25
|
-
initConnectorForm() {
|
|
26
|
-
this.connectorForm = this.fb.group({
|
|
27
|
-
endpoint: [this.localScv.localStorage.data.endpoint,
|
|
28
|
-
[Validators.required,
|
|
29
|
-
Validators.pattern(/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/)]],
|
|
30
|
-
token: [this.localScv.localStorage.data.token, [Validators.nullValidator]],
|
|
31
|
-
frameworkName: [this.localScv.localStorage.data.frameworkName, [Validators.required]],
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
saveConnection() {
|
|
35
|
-
if (this.connectorForm.valid) {
|
|
36
|
-
this.dialogRef.close({ source: 'online', data: this.connectorForm.value });
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
clear() {
|
|
40
|
-
this.connectorForm.reset();
|
|
41
|
-
this.dialogRef.close({ source: 'online', data: {} });
|
|
42
|
-
}
|
|
43
|
-
dialogClose() {
|
|
44
|
-
this.dialogRef.close({ source: 'online', data: {} });
|
|
45
|
-
}
|
|
46
|
-
loadDefault() {
|
|
47
|
-
this.dialogRef.close({ source: 'offline', data: {} });
|
|
48
|
-
}
|
|
49
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConnectorComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }, { token: i2.LocalConnectionService }, { token: i3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConnectorComponent, selector: "lib-connector", ngImport: i0, template: "<div class=\"flex flex-1 flex-row-reverse pointer\">\n <button mat-raised-button color=\"default\" (click)=\"dialogClose()\" >\n <mat-icon mat-raised-button >{{app_strings.close}}</mat-icon>\n </button>\n</div>\n<div class=\"dialog flex\">\n <div class=\"flex flex-1 flex-row\">\n <div class=\"container flex flex-1\">\n <div class=\"side flex flex-1\">\n <div class=\"'flex flex-2 padding-s\">\n <div class=\"dialog-title\" mat-dialog-title>{{app_strings.newConnection}}</div>\n <form [formGroup]=\"connectorForm\" novalidate (ngSubmit)=\"saveConnection()\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{app_strings.endPoint}}</mat-label>\n <input matInput type=\"url\" formControlName=\"endpoint\" placeholder=\"{{app_strings.endPoint}}\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{app_strings.token}}</mat-label>\n <input matInput formControlName=\"token\" placeholder=\"{{app_strings.token}}\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{app_strings.enterFrameworkName}}</mat-label>\n <input matInput formControlName=\"frameworkName\" placeholder=\"{{app_strings.frameworkName}}\" />\n </mat-form-field>\n <footer class=\"actions\">\n <button mat-raised-button color=\"default\" type=\"reset\"\n (click)=\"dialogClose()\">{{app_strings.cancel}}</button>\n <button mat-raised-button color=\"default\" type=\"reset\" (click)=\"clear()\">{{app_strings.clear}}</button>\n <button mat-raised-button color=\"primary\" type=\"submit\" cdkFocusInitial>{{app_strings.update}}</button>\n </footer>\n </form>\n </div>\n </div>\n <div class=\"or\">\n <div class=\"or-line\"></div>\n <div class=\"or-label\">{{app_strings.or}}</div>\n </div>\n <div class=\"side flex flex-1\">\n <div class=\"'flex flex-1 padding-s\">\n <div class=\"dialog-title\" mat-dialog-title>{{app_strings.experienceTaxonomy}}</div>\n <button mat-raised-button class=\"play\" color=\"primary\" type=\"reset\" (click)=\"loadDefault()\">\n {{app_strings.playWithIt}}\n </button>\n </div>\n </div>\n </div>\u200B\n\n </div>\n</div>", styles: [".dialog .mat-dialog-title{padding:10px 20px;margin-bottom:0;background:#00000014}.dialog .mat-form-field{width:90%;padding:0;background:#fff;margin:20px;border-radius:2px}.dialog .actions{display:flex;flex-direction:row;justify-content:space-between;padding:0 20px 20px}.dialog .mat-error{padding:0 25px;margin-top:-10px}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-1{flex:1}.flex-2{flex:2}.flex{display:flex}.padding-s{padding:8px}.container{padding:1em}.side,.or{float:left;text-align:center}.side{width:40%}.or{position:relative;width:20%}.or-line{float:left;width:50%;border-right:1px solid rgb(68,50,50);height:100%}.or-label{background:#fff;color:#000;height:1em;left:50%;margin-left:-1.25em;margin-top:2em;padding:.5em;position:absolute;text-transform:uppercase;width:1em}.play{padding:20px;margin:20% auto auto;display:flex}.dialog-title{align-items:center;display:flex}::ng-deep .mat-form-field-wrapper{padding:0}@media only screen and (max-width: 1024px){::ng-deep .cdk-overlay-pane{width:70%!important;height:60%!important}}@media only screen and (max-width: 1024px){mat-icon{font-size:20px;width:1.25em;height:1.25em}.pointer .mat-raised-button{min-width:auto;padding:0 .5em;line-height:2em}.dialog.flex{height:calc(100% - 16vh);font-size:12px}.dialog.flex mat-form-field{margin:1em}.dialog .actions{padding:0}.dialog .actions button{font-size:12px;line-height:2.5em;margin:0 5px}.dialog-title{font-size:14px;height:1em}.play{padding:.6em;font-size:12px}}\n"], dependencies: [{ kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
51
|
-
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConnectorComponent, decorators: [{
|
|
53
|
-
type: Component,
|
|
54
|
-
args: [{ selector: 'lib-connector', template: "<div class=\"flex flex-1 flex-row-reverse pointer\">\n <button mat-raised-button color=\"default\" (click)=\"dialogClose()\" >\n <mat-icon mat-raised-button >{{app_strings.close}}</mat-icon>\n </button>\n</div>\n<div class=\"dialog flex\">\n <div class=\"flex flex-1 flex-row\">\n <div class=\"container flex flex-1\">\n <div class=\"side flex flex-1\">\n <div class=\"'flex flex-2 padding-s\">\n <div class=\"dialog-title\" mat-dialog-title>{{app_strings.newConnection}}</div>\n <form [formGroup]=\"connectorForm\" novalidate (ngSubmit)=\"saveConnection()\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{app_strings.endPoint}}</mat-label>\n <input matInput type=\"url\" formControlName=\"endpoint\" placeholder=\"{{app_strings.endPoint}}\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{app_strings.token}}</mat-label>\n <input matInput formControlName=\"token\" placeholder=\"{{app_strings.token}}\" />\n </mat-form-field>\n <mat-form-field appearance=\"outline\">\n <mat-label>{{app_strings.enterFrameworkName}}</mat-label>\n <input matInput formControlName=\"frameworkName\" placeholder=\"{{app_strings.frameworkName}}\" />\n </mat-form-field>\n <footer class=\"actions\">\n <button mat-raised-button color=\"default\" type=\"reset\"\n (click)=\"dialogClose()\">{{app_strings.cancel}}</button>\n <button mat-raised-button color=\"default\" type=\"reset\" (click)=\"clear()\">{{app_strings.clear}}</button>\n <button mat-raised-button color=\"primary\" type=\"submit\" cdkFocusInitial>{{app_strings.update}}</button>\n </footer>\n </form>\n </div>\n </div>\n <div class=\"or\">\n <div class=\"or-line\"></div>\n <div class=\"or-label\">{{app_strings.or}}</div>\n </div>\n <div class=\"side flex flex-1\">\n <div class=\"'flex flex-1 padding-s\">\n <div class=\"dialog-title\" mat-dialog-title>{{app_strings.experienceTaxonomy}}</div>\n <button mat-raised-button class=\"play\" color=\"primary\" type=\"reset\" (click)=\"loadDefault()\">\n {{app_strings.playWithIt}}\n </button>\n </div>\n </div>\n </div>\u200B\n\n </div>\n</div>", styles: [".dialog .mat-dialog-title{padding:10px 20px;margin-bottom:0;background:#00000014}.dialog .mat-form-field{width:90%;padding:0;background:#fff;margin:20px;border-radius:2px}.dialog .actions{display:flex;flex-direction:row;justify-content:space-between;padding:0 20px 20px}.dialog .mat-error{padding:0 25px;margin-top:-10px}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-1{flex:1}.flex-2{flex:2}.flex{display:flex}.padding-s{padding:8px}.container{padding:1em}.side,.or{float:left;text-align:center}.side{width:40%}.or{position:relative;width:20%}.or-line{float:left;width:50%;border-right:1px solid rgb(68,50,50);height:100%}.or-label{background:#fff;color:#000;height:1em;left:50%;margin-left:-1.25em;margin-top:2em;padding:.5em;position:absolute;text-transform:uppercase;width:1em}.play{padding:20px;margin:20% auto auto;display:flex}.dialog-title{align-items:center;display:flex}::ng-deep .mat-form-field-wrapper{padding:0}@media only screen and (max-width: 1024px){::ng-deep .cdk-overlay-pane{width:70%!important;height:60%!important}}@media only screen and (max-width: 1024px){mat-icon{font-size:20px;width:1.25em;height:1.25em}.pointer .mat-raised-button{min-width:auto;padding:0 .5em;line-height:2em}.dialog.flex{height:calc(100% - 16vh);font-size:12px}.dialog.flex mat-form-field{margin:1em}.dialog .actions{padding:0}.dialog .actions button{font-size:12px;line-height:2.5em;margin:0 5px}.dialog-title{font-size:14px;height:1em}.play{padding:.6em;font-size:12px}}\n"] }]
|
|
55
|
-
}], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
|
|
56
|
-
type: Inject,
|
|
57
|
-
args: [MAT_DIALOG_DATA]
|
|
58
|
-
}] }, { type: i2.LocalConnectionService }, { type: i3.UntypedFormBuilder }]; } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90cmVlLWhpZXJhcmNoeS9zcmMvbGliL2NvbXBvbmVudHMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb21wb25lbnRzL2Nvbm5lY3Rvci9jb25uZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQXNDLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2hJLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQVM5QyxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQ1MsU0FBMkMsRUFDbEIsSUFBUyxFQUNqQyxRQUFnQyxFQUNoQyxFQUFzQjtRQUh2QixjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQXdCO1FBQ2hDLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBTGhDLGdCQUFXLEdBQVEsTUFBTSxDQUFDO0lBTXRCLENBQUM7SUFFTCxRQUFRO1FBV04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDakMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVE7Z0JBQ25ELENBQUMsVUFBVSxDQUFDLFFBQVE7b0JBQ3BCLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQyxDQUFDO1lBQ3RHLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUUsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0RixDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBcUIsQ0FBQyxDQUFBO1NBQzlGO0lBQ0gsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFxQixDQUFDLENBQUE7SUFDekUsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBcUIsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQW9CLENBQUMsQ0FBQTtJQUN6RSxDQUFDOytHQS9DVSxrQkFBa0Isb0RBS25CLGVBQWU7bUdBTGQsa0JBQWtCLHFEQ2QvQiwreUZBZ0RNOzs0RkRsQ08sa0JBQWtCO2tCQU45QixTQUFTOytCQUNFLGVBQWU7OzBCQVV0QixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2dSZWYgYXMgTWF0RGlhbG9nUmVmLCBNQVRfTEVHQUNZX0RJQUxPR19EQVRBIGFzIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgTG9jYWxDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2FsLWNvbm5lY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJQ29ubmVjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29ubmVjdGlvbi10eXBlLm1vZGVsJztcbmltcG9ydCB7IGxhYmVscyB9IGZyb20gJy4uLy4uL2xhYmVscy9zdHJpbmdzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY29ubmVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nvbm5lY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nvbm5lY3Rvci5jb21wb25lbnQuc2NzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQ29ubmVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29ubmVjdG9yRm9ybSE6IFVudHlwZWRGb3JtR3JvdXA7XG4gIGFwcF9zdHJpbmdzOiBhbnkgPSBsYWJlbHM7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb25uZWN0b3JDb21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgIHByaXZhdGUgbG9jYWxTY3Y6IExvY2FsQ29ubmVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gY29uc3QgcmVxdWVzdEJvZHkgPSB7XG4gICAgLy8gICByZXF1ZXN0OiB7XG4gICAgLy8gICAgIHNlYXJjaDoge1xuICAgIC8vICAgICAgICAgc3RhdHVzOiBcIkRyYWZ0XCJcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICAvLyB9IFxuICAgIC8vIHRoaXMuZnJhbWVXb3JrU2VydmljZS5yZWFkVGVybXModGhpcy5kYXRhLmZyYW1ld29ya0lkLCB0aGlzLmRhdGEuY2F0ZWdvcnlJZCwgcmVxdWVzdEJvZHkpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAvLyAgICB0aGlzLnRlcm1MaXN0cyA9IGRhdGEudGVybXNcbiAgICAvLyB9KVxuICAgIHRoaXMuaW5pdENvbm5lY3RvckZvcm0oKVxuICB9XG5cbiAgaW5pdENvbm5lY3RvckZvcm0oKSB7XG4gICAgdGhpcy5jb25uZWN0b3JGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBlbmRwb2ludDogW3RoaXMubG9jYWxTY3YubG9jYWxTdG9yYWdlLmRhdGEuZW5kcG9pbnQsXG4gICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXig/Omh0dHAocyk/OlxcL1xcLyk/W1xcdy4tXSsoPzpcXC5bXFx3XFwuLV0rKStbXFx3XFwtXFwuX346Lz8jW1xcXUAhXFwkJidcXChcXClcXCpcXCssOz0uXSskLyldXSxcbiAgICAgIHRva2VuOiBbdGhpcy5sb2NhbFNjdi5sb2NhbFN0b3JhZ2UuZGF0YS50b2tlbiwgW1ZhbGlkYXRvcnMubnVsbFZhbGlkYXRvcl1dLFxuICAgICAgZnJhbWV3b3JrTmFtZTogW3RoaXMubG9jYWxTY3YubG9jYWxTdG9yYWdlLmRhdGEuZnJhbWV3b3JrTmFtZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICB9KVxuICB9XG4gIHNhdmVDb25uZWN0aW9uKCkge1xuICAgIGlmICh0aGlzLmNvbm5lY3RvckZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgc291cmNlOiAnb25saW5lJywgZGF0YTogdGhpcy5jb25uZWN0b3JGb3JtLnZhbHVlIH0gYXMgSUNvbm5lY3Rpb25UeXBlKVxuICAgIH1cbiAgfVxuICBjbGVhcigpIHtcbiAgICB0aGlzLmNvbm5lY3RvckZvcm0ucmVzZXQoKVxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgc291cmNlOiAnb25saW5lJywgZGF0YToge30gfSBhcyBJQ29ubmVjdGlvblR5cGUpXG4gIH1cbiAgZGlhbG9nQ2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBzb3VyY2U6ICdvbmxpbmUnLCBkYXRhOiB7fSB9IGFzIElDb25uZWN0aW9uVHlwZSlcbiAgfVxuICBsb2FkRGVmYXVsdCgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IHNvdXJjZTogJ29mZmxpbmUnLCBkYXRhOiB7fX0gYXMgSUNvbm5lY3Rpb25UeXBlKVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmbGV4LXJvdy1yZXZlcnNlIHBvaW50ZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZGVmYXVsdFwiIChjbGljayk9XCJkaWFsb2dDbG9zZSgpXCIgPlxuICAgICAgICA8bWF0LWljb24gbWF0LXJhaXNlZC1idXR0b24gPnt7YXBwX3N0cmluZ3MuY2xvc2V9fTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2cgZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIGZsZXggZmxleC0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2lkZSBmbGV4IGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCInZmxleCBmbGV4LTIgcGFkZGluZy1zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctdGl0bGVcIiBtYXQtZGlhbG9nLXRpdGxlPnt7YXBwX3N0cmluZ3MubmV3Q29ubmVjdGlvbn19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiY29ubmVjdG9yRm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cInNhdmVDb25uZWN0aW9uKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3thcHBfc3RyaW5ncy5lbmRQb2ludH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ1cmxcIiBmb3JtQ29udHJvbE5hbWU9XCJlbmRwb2ludFwiIHBsYWNlaG9sZGVyPVwie3thcHBfc3RyaW5ncy5lbmRQb2ludH19XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7YXBwX3N0cmluZ3MudG9rZW59fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0b2tlblwiIHBsYWNlaG9sZGVyPVwie3thcHBfc3RyaW5ncy50b2tlbn19XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7YXBwX3N0cmluZ3MuZW50ZXJGcmFtZXdvcmtOYW1lfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZnJhbWV3b3JrTmFtZVwiIHBsYWNlaG9sZGVyPVwie3thcHBfc3RyaW5ncy5mcmFtZXdvcmtOYW1lfX1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb290ZXIgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cImRlZmF1bHRcIiB0eXBlPVwicmVzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGlhbG9nQ2xvc2UoKVwiPnt7YXBwX3N0cmluZ3MuY2FuY2VsfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZGVmYXVsdFwiIHR5cGU9XCJyZXNldFwiIChjbGljayk9XCJjbGVhcigpXCI+e3thcHBfc3RyaW5ncy5jbGVhcn19PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgY2RrRm9jdXNJbml0aWFsPnt7YXBwX3N0cmluZ3MudXBkYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9vdGVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvci1saW5lXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yLWxhYmVsXCI+e3thcHBfc3RyaW5ncy5vcn19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlIGZsZXggZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIidmbGV4IGZsZXgtMSBwYWRkaW5nLXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy10aXRsZVwiIG1hdC1kaWFsb2ctdGl0bGU+e3thcHBfc3RyaW5ncy5leHBlcmllbmNlVGF4b25vbXl9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNsYXNzPVwicGxheVwiIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJyZXNldFwiIChjbGljayk9XCJsb2FkRGVmYXVsdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2FwcF9zdHJpbmdzLnBsYXlXaXRoSXR9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj7igItcblxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
|
|
2
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
3
|
-
import { labels } from '../../labels/strings';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/forms";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
import * as i3 from "@angular/cdk/drag-drop";
|
|
8
|
-
import * as i4 from "@angular/material/button";
|
|
9
|
-
import * as i5 from "@angular/material/icon";
|
|
10
|
-
import * as i6 from "@angular/material/input";
|
|
11
|
-
import * as i7 from "@angular/material/form-field";
|
|
12
|
-
export class CreateCategoriesComponent {
|
|
13
|
-
constructor(fb) {
|
|
14
|
-
this.fb = fb;
|
|
15
|
-
this.updateCategory = new EventEmitter();
|
|
16
|
-
this.removeCategories = new EventEmitter();
|
|
17
|
-
this.changePosition = new EventEmitter();
|
|
18
|
-
this.app_strings = labels;
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.createCategoriesForm = this.fb.group({
|
|
22
|
-
categories: this.fb.array([])
|
|
23
|
-
});
|
|
24
|
-
if (this.taxonomyInfo) {
|
|
25
|
-
this.initCategoryForm();
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
this.addCategory();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
categories() {
|
|
32
|
-
return this.createCategoriesForm.get('categories');
|
|
33
|
-
}
|
|
34
|
-
newCategories() {
|
|
35
|
-
return this.fb.group({
|
|
36
|
-
name: '',
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
addCategory() {
|
|
40
|
-
this.categories().push(this.newCategories());
|
|
41
|
-
}
|
|
42
|
-
removeCategory(i) {
|
|
43
|
-
this.categories().removeAt(i);
|
|
44
|
-
this.removeCategories.emit(i);
|
|
45
|
-
}
|
|
46
|
-
initCategoryForm() {
|
|
47
|
-
for (var cat of this.taxonomyInfo) {
|
|
48
|
-
this.categories().push(this.fb.group({
|
|
49
|
-
name: cat.name
|
|
50
|
-
}));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
saveForm() {
|
|
54
|
-
this.updateCategory.emit(this.createCategoriesForm.value.categories);
|
|
55
|
-
}
|
|
56
|
-
emitCategory(event) {
|
|
57
|
-
this.updateCategory.emit(event.target.value);
|
|
58
|
-
}
|
|
59
|
-
drop(event) {
|
|
60
|
-
if (event.previousContainer === event.container) {
|
|
61
|
-
moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
|
|
62
|
-
this.changePosition.emit({ cur: event.currentIndex, prev: event.previousIndex });
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
transferArrayItem(event.previousContainer.data, event.container.data, event.previousIndex, event.currentIndex);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateCategoriesComponent, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateCategoriesComponent, selector: "lib-create-categories", inputs: { taxonomyInfo: "taxonomyInfo" }, outputs: { updateCategory: "updateCategory", removeCategories: "removeCategories", changePosition: "changePosition" }, ngImport: i0, template: "\n<div class=\"form-wrap\">\n <h1>{{app_strings.createCategories}}</h1>\n <form [formGroup]=\"createCategoriesForm\" (ngSubmit)=\"saveForm()\" novalidate>\n <div class=\"form-field\">\n <div class=\"form-field__wrap\" formArrayName=\"categories\" cdkDropListGroup>\n <div cdkDropList [cdkDropListData]=\"categories().controls\" (cdkDropListDropped)=\"drop($event)\">\n <div class=\"form__category\" *ngFor=\"let cat of categories().controls; let i = index\" >\n <mat-form-field appearance=\"outline\" [formGroupName]=\"i\" cdkDrag>\n <mat-label>{{app_strings.category}} {{i}}</mat-label>\n <input matInput placeholder=\"{{app_strings.categoryName}}\" formControlName=\"name\" (blur)=\"emitCategory($event)\"> \n <div class=\"drag-Handle\" cdkDragHandle>\n <svg width=\"24px\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\"></path>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n </svg>\n </div>\n </mat-form-field>\n <mat-icon (click)=\"removeCategory(i)\">{{app_strings.removeCircleOutline}}</mat-icon>\n \n </div>\n </div>\n </div>\n </div>\n <footer>\n <button type=\"button\" mat-raised-button (click)=\"addCategory()\" color=\"primary\">\n {{app_strings.add | titlecase}}\n </button>\n </footer>\n </form>\n</div>\n", styles: [".form-wrap{display:flex;flex-direction:column;justify-content:center;padding:15px}.form-wrap h1{font-size:24px;color:#666;font-weight:500}.form-field{display:flex;flex-direction:row;justify-content:start}.form-field__wrap{display:flex;flex-direction:column}.form-field__wrap .mat-form-field{width:350px}.form__btns{display:flex;flex-direction:column;justify-content:end;padding-bottom:15px;margin-left:15px}.form__category{display:flex;flex-direction:row;justify-content:center;align-items:center}.form__category .mat-form-field .mat-form-field-appearance-outline{margin-bottom:0}.form__category .mat-icon{margin-left:20px;height:20px;padding:5px 5px 25px;color:#b60909;cursor:pointer}.drag-Handle{position:absolute;top:8px;right:0;color:#9b9b9b;cursor:grabbing}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}footer{display:flex;flex-direction:row;justify-content:start}footer .mat-raised-button{padding:0 40px}@media only screen and (max-width: 1024px){.form-wrap h1{font-size:20px}.form-wrap-field__wrap .mat-form-field{width:250px}.form-wrap ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{top:10px;bottom:4px}.form-wrap ::ng-deep .mat-form-field-wrapper{padding-bottom:.3em}.form-wrap ::ng-deep .mat-input-element{font-size:10px}.form-wrap ::ng-deep .mat-raised-button{min-width:auto;padding:0 .5em;line-height:2em}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i3.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: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-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: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }] }); }
|
|
70
|
-
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateCategoriesComponent, decorators: [{
|
|
72
|
-
type: Component,
|
|
73
|
-
args: [{ selector: 'lib-create-categories', template: "\n<div class=\"form-wrap\">\n <h1>{{app_strings.createCategories}}</h1>\n <form [formGroup]=\"createCategoriesForm\" (ngSubmit)=\"saveForm()\" novalidate>\n <div class=\"form-field\">\n <div class=\"form-field__wrap\" formArrayName=\"categories\" cdkDropListGroup>\n <div cdkDropList [cdkDropListData]=\"categories().controls\" (cdkDropListDropped)=\"drop($event)\">\n <div class=\"form__category\" *ngFor=\"let cat of categories().controls; let i = index\" >\n <mat-form-field appearance=\"outline\" [formGroupName]=\"i\" cdkDrag>\n <mat-label>{{app_strings.category}} {{i}}</mat-label>\n <input matInput placeholder=\"{{app_strings.categoryName}}\" formControlName=\"name\" (blur)=\"emitCategory($event)\"> \n <div class=\"drag-Handle\" cdkDragHandle>\n <svg width=\"24px\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\"></path>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n </svg>\n </div>\n </mat-form-field>\n <mat-icon (click)=\"removeCategory(i)\">{{app_strings.removeCircleOutline}}</mat-icon>\n \n </div>\n </div>\n </div>\n </div>\n <footer>\n <button type=\"button\" mat-raised-button (click)=\"addCategory()\" color=\"primary\">\n {{app_strings.add | titlecase}}\n </button>\n </footer>\n </form>\n</div>\n", styles: [".form-wrap{display:flex;flex-direction:column;justify-content:center;padding:15px}.form-wrap h1{font-size:24px;color:#666;font-weight:500}.form-field{display:flex;flex-direction:row;justify-content:start}.form-field__wrap{display:flex;flex-direction:column}.form-field__wrap .mat-form-field{width:350px}.form__btns{display:flex;flex-direction:column;justify-content:end;padding-bottom:15px;margin-left:15px}.form__category{display:flex;flex-direction:row;justify-content:center;align-items:center}.form__category .mat-form-field .mat-form-field-appearance-outline{margin-bottom:0}.form__category .mat-icon{margin-left:20px;height:20px;padding:5px 5px 25px;color:#b60909;cursor:pointer}.drag-Handle{position:absolute;top:8px;right:0;color:#9b9b9b;cursor:grabbing}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}footer{display:flex;flex-direction:row;justify-content:start}footer .mat-raised-button{padding:0 40px}@media only screen and (max-width: 1024px){.form-wrap h1{font-size:20px}.form-wrap-field__wrap .mat-form-field{width:250px}.form-wrap ::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{top:10px;bottom:4px}.form-wrap ::ng-deep .mat-form-field-wrapper{padding-bottom:.3em}.form-wrap ::ng-deep .mat-input-element{font-size:10px}.form-wrap ::ng-deep .mat-raised-button{min-width:auto;padding:0 .5em;line-height:2em}}\n"] }]
|
|
74
|
-
}], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }]; }, propDecorators: { taxonomyInfo: [{
|
|
75
|
-
type: Input
|
|
76
|
-
}], updateCategory: [{
|
|
77
|
-
type: Output
|
|
78
|
-
}], removeCategories: [{
|
|
79
|
-
type: Output
|
|
80
|
-
}], changePosition: [{
|
|
81
|
-
type: Output
|
|
82
|
-
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNhdGVnb3JpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RyZWUtaGllcmFyY2h5L3NyYy9saWIvY29tcG9uZW50cy9jcmVhdGUtY2F0ZWdvcmllcy9jcmVhdGUtY2F0ZWdvcmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1jYXRlZ29yaWVzL2NyZWF0ZS1jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUcsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7Ozs7Ozs7O0FBUTdDLE1BQU0sT0FBTyx5QkFBeUI7SUFVcEMsWUFBb0IsRUFBc0I7UUFBdEIsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFSaEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ25DLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7UUFDckMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBSTdDLGdCQUFXLEdBQVEsTUFBTSxDQUFDO0lBRW9CLENBQUM7SUFFL0MsUUFBUTtRQUNQLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN2QyxVQUFVLEVBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQzdCLENBQUMsQ0FBQTtRQUNGLElBQUcsSUFBSSxDQUFDLFlBQVksRUFBQztZQUNuQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtTQUN0QjthQUFNO1lBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1NBQ25CO0lBQ0gsQ0FBQztJQUNELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFxQixDQUFBO0lBQ3hFLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQixJQUFJLEVBQUMsRUFBRTtTQUNSLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYyxDQUFDLENBQVE7UUFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxLQUFJLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7Z0JBQ1YsSUFBSSxFQUFDLEdBQUcsQ0FBQyxJQUFJO2FBQ2QsQ0FBQyxDQUNILENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQTRCO1FBQy9CLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFDL0MsZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxFQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUMsQ0FBQyxDQUFBO1NBQzdFO2FBQU07WUFDTCxpQkFBaUIsQ0FDZixLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUM1QixLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFDcEIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFlBQVksQ0FDbkIsQ0FBQztTQUNIO0lBQ0gsQ0FBQzsrR0F0RVUseUJBQXlCO21HQUF6Qix5QkFBeUIsOE5DWHRDLGl6REErQkE7OzRGRHBCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCO3lHQUt4QixZQUFZO3NCQUFwQixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5LCB0cmFuc2ZlckFycmF5SXRlbSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQgLCBFdmVudEVtaXR0ZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgbGFiZWxzIH0gZnJvbSAnLi4vLi4vbGFiZWxzL3N0cmluZ3MnXG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNyZWF0ZS1jYXRlZ29yaWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLWNhdGVnb3JpZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVDYXRlZ29yaWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdGF4b25vbXlJbmZvOmFueVxuICBAT3V0cHV0KCkgdXBkYXRlQ2F0ZWdvcnkgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIHJlbW92ZUNhdGVnb3JpZXMgPSBuZXcgRXZlbnRFbWl0dGVyKClcbiAgQE91dHB1dCgpIGNoYW5nZVBvc2l0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpXG5cbiAgY3JlYXRlQ2F0ZWdvcmllc0Zvcm0hOiBVbnR5cGVkRm9ybUdyb3VwXG5cbiAgYXBwX3N0cmluZ3M6IGFueSA9IGxhYmVscztcbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcikgeyB9XG5cbiAgbmdPbkluaXQoKSB7IFxuICAgdGhpcy5jcmVhdGVDYXRlZ29yaWVzRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgY2F0ZWdvcmllczp0aGlzLmZiLmFycmF5KFtdKVxuICAgIH0pXG4gICAgaWYodGhpcy50YXhvbm9teUluZm8pe1xuICAgICAgdGhpcy5pbml0Q2F0ZWdvcnlGb3JtKClcbiAgICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZENhdGVnb3J5KClcbiAgICB9XG4gIH1cbiAgY2F0ZWdvcmllcygpOiBVbnR5cGVkRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDYXRlZ29yaWVzRm9ybS5nZXQoJ2NhdGVnb3JpZXMnKSBhcyBVbnR5cGVkRm9ybUFycmF5XG4gIH1cblxuICBuZXdDYXRlZ29yaWVzKCk6IFVudHlwZWRGb3JtR3JvdXAgeyAgXG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoeyAgXG4gICAgICBuYW1lOicnLCAgXG4gICAgfSkgIFxuICB9ICBcblxuICBhZGRDYXRlZ29yeSgpIHsgIFxuICAgIHRoaXMuY2F0ZWdvcmllcygpLnB1c2godGhpcy5uZXdDYXRlZ29yaWVzKCkpOyAgXG4gIH0gIFxuICAgICBcbiAgcmVtb3ZlQ2F0ZWdvcnkoaTpudW1iZXIpIHsgIFxuICAgIHRoaXMuY2F0ZWdvcmllcygpLnJlbW92ZUF0KGkpOyAgXG4gICAgdGhpcy5yZW1vdmVDYXRlZ29yaWVzLmVtaXQoaSlcbiAgfSAgXG5cbiAgaW5pdENhdGVnb3J5Rm9ybSgpe1xuICAgIGZvcih2YXIgY2F0IG9mIHRoaXMudGF4b25vbXlJbmZvKXtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcygpLnB1c2goXG4gICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICBuYW1lOmNhdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApOyAgXG4gICAgfVxuICB9XG5cbiAgc2F2ZUZvcm0oKSB7XG4gICAgdGhpcy51cGRhdGVDYXRlZ29yeS5lbWl0KHRoaXMuY3JlYXRlQ2F0ZWdvcmllc0Zvcm0udmFsdWUuY2F0ZWdvcmllcylcbiAgfVxuXG4gIGVtaXRDYXRlZ29yeShldmVudDphbnkpe1xuICAgIHRoaXMudXBkYXRlQ2F0ZWdvcnkuZW1pdChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XG4gICAgaWYgKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyID09PSBldmVudC5jb250YWluZXIpIHtcbiAgICAgIG1vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICAgIHRoaXMuY2hhbmdlUG9zaXRpb24uZW1pdCh7Y3VyOmV2ZW50LmN1cnJlbnRJbmRleCwgcHJldjpldmVudC5wcmV2aW91c0luZGV4fSlcbiAgICB9IGVsc2Uge1xuICAgICAgdHJhbnNmZXJBcnJheUl0ZW0oXG4gICAgICAgIGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsXG4gICAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLFxuICAgICAgICBldmVudC5wcmV2aW91c0luZGV4LFxuICAgICAgICBldmVudC5jdXJyZW50SW5kZXgsXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiXG48ZGl2IGNsYXNzPVwiZm9ybS13cmFwXCI+XG4gICAgPGgxPnt7YXBwX3N0cmluZ3MuY3JlYXRlQ2F0ZWdvcmllc319PC9oMT5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNyZWF0ZUNhdGVnb3JpZXNGb3JtXCIgKG5nU3VibWl0KT1cInNhdmVGb3JtKClcIiBub3ZhbGlkYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGRfX3dyYXBcIiBmb3JtQXJyYXlOYW1lPVwiY2F0ZWdvcmllc1wiIGNka0Ryb3BMaXN0R3JvdXA+XG4gICAgICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImNhdGVnb3JpZXMoKS5jb250cm9sc1wiIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2NhdGVnb3J5XCIgKm5nRm9yPVwibGV0IGNhdCBvZiBjYXRlZ29yaWVzKCkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIiA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBbZm9ybUdyb3VwTmFtZV09XCJpXCIgY2RrRHJhZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPnt7YXBwX3N0cmluZ3MuY2F0ZWdvcnl9fSB7e2l9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cInt7YXBwX3N0cmluZ3MuY2F0ZWdvcnlOYW1lfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgKGJsdXIpPVwiZW1pdENhdGVnb3J5KCRldmVudClcIj4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctSGFuZGxlXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0cHhcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAgOWg0VjZoM2wtNS01LTUgNWgzdjN6bS0xIDFINlY3bC01IDUgNSA1di0zaDN2LTR6bTE0IDJsLTUtNXYzaC0zdjRoM3YzbDUtNXptLTkgM2gtNHYzSDdsNSA1IDUtNWgtM3YtM3pcIj48L3BhdGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwicmVtb3ZlQ2F0ZWdvcnkoaSlcIj57e2FwcF9zdHJpbmdzLnJlbW92ZUNpcmNsZU91dGxpbmV9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxmb290ZXI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAgbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImFkZENhdGVnb3J5KClcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICB7e2FwcF9zdHJpbmdzLmFkZCB8IHRpdGxlY2FzZX19XG4gICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZm9vdGVyPlxuICAgIDwvZm9ybT5cbjwvZGl2PlxuIl19
|