@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.
Files changed (122) hide show
  1. package/fesm2022/sunbird-cb-tree-hierarchy.mjs +770 -200
  2. package/fesm2022/sunbird-cb-tree-hierarchy.mjs.map +1 -1
  3. package/index.d.ts +1052 -3
  4. package/index.d.ts.map +1 -0
  5. package/package.json +14 -16
  6. package/sunbird-cb-tree-hierarchy-0.0.2-ang-17-20.tgz +0 -0
  7. package/esm2022/lib/components/action-bar/action-bar.component.mjs +0 -41
  8. package/esm2022/lib/components/approval/approval.component.mjs +0 -19
  9. package/esm2022/lib/components/approve-view/approve-view.component.mjs +0 -64
  10. package/esm2022/lib/components/categories-preview/categories-preview.component.mjs +0 -44
  11. package/esm2022/lib/components/category-edit/category-edit-module/category-edit-module.component.mjs +0 -55
  12. package/esm2022/lib/components/conforamtion-popup/conforamtion-popup.component.mjs +0 -74
  13. package/esm2022/lib/components/connector/connector.component.mjs +0 -59
  14. package/esm2022/lib/components/create-categories/create-categories.component.mjs +0 -83
  15. package/esm2022/lib/components/create-term/create-term.component.mjs +0 -847
  16. package/esm2022/lib/components/create-term-from-framework/create-term-from-framework.component.mjs +0 -824
  17. package/esm2022/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.mjs +0 -223
  18. package/esm2022/lib/components/pending-approval/pending-approval.component.mjs +0 -64
  19. package/esm2022/lib/components/term-card/term-card.component.mjs +0 -340
  20. package/esm2022/lib/components/tree-column-view/tree-column-view.component.mjs +0 -354
  21. package/esm2022/lib/components/tree-view/tree-view.component.mjs +0 -826
  22. package/esm2022/lib/constants/app-constant.mjs +0 -40
  23. package/esm2022/lib/constants/data.mjs +0 -6972
  24. package/esm2022/lib/containers/config-framework/config-framework.component.mjs +0 -92
  25. package/esm2022/lib/containers/dashboard/dashboard.component.mjs +0 -14
  26. package/esm2022/lib/labels/strings.mjs +0 -40
  27. package/esm2022/lib/models/approval.model.mjs +0 -2
  28. package/esm2022/lib/models/connection-type.model.mjs +0 -2
  29. package/esm2022/lib/models/connection.model.mjs +0 -2
  30. package/esm2022/lib/models/framework.model.mjs +0 -2
  31. package/esm2022/lib/models/variable-type.model.mjs +0 -2
  32. package/esm2022/lib/pipes/order-by.pipe.mjs +0 -35
  33. package/esm2022/lib/services/approval.service.mjs +0 -47
  34. package/esm2022/lib/services/connection.service.mjs +0 -3
  35. package/esm2022/lib/services/connector.service.mjs +0 -286
  36. package/esm2022/lib/services/framework.service.mjs +0 -525
  37. package/esm2022/lib/services/local-connection.service.mjs +0 -75
  38. package/esm2022/lib/services/odcs.service.mjs +0 -23
  39. package/esm2022/lib/tree-hierarchy-routing.module.mjs +0 -43
  40. package/esm2022/lib/tree-hierarchy.component.mjs +0 -24
  41. package/esm2022/lib/tree-hierarchy.module.mjs +0 -145
  42. package/esm2022/lib/tree-hierarchy.service.mjs +0 -57
  43. package/esm2022/material.module.mjs +0 -199
  44. package/esm2022/public-api.mjs +0 -9
  45. package/esm2022/sunbird-cb-tree-hierarchy.mjs +0 -2
  46. package/lib/components/action-bar/action-bar.component.d.ts +0 -17
  47. package/lib/components/action-bar/action-bar.component.d.ts.map +0 -1
  48. package/lib/components/approval/approval.component.d.ts +0 -10
  49. package/lib/components/approval/approval.component.d.ts.map +0 -1
  50. package/lib/components/approve-view/approve-view.component.d.ts +0 -27
  51. package/lib/components/approve-view/approve-view.component.d.ts.map +0 -1
  52. package/lib/components/categories-preview/categories-preview.component.d.ts +0 -14
  53. package/lib/components/categories-preview/categories-preview.component.d.ts.map +0 -1
  54. package/lib/components/category-edit/category-edit-module/category-edit-module.component.d.ts +0 -18
  55. package/lib/components/category-edit/category-edit-module/category-edit-module.component.d.ts.map +0 -1
  56. package/lib/components/conforamtion-popup/conforamtion-popup.component.d.ts +0 -20
  57. package/lib/components/conforamtion-popup/conforamtion-popup.component.d.ts.map +0 -1
  58. package/lib/components/connector/connector.component.d.ts +0 -23
  59. package/lib/components/connector/connector.component.d.ts.map +0 -1
  60. package/lib/components/create-categories/create-categories.component.d.ts +0 -26
  61. package/lib/components/create-categories/create-categories.component.d.ts.map +0 -1
  62. package/lib/components/create-term/create-term.component.d.ts +0 -148
  63. package/lib/components/create-term/create-term.component.d.ts.map +0 -1
  64. package/lib/components/create-term-from-framework/create-term-from-framework.component.d.ts +0 -105
  65. package/lib/components/create-term-from-framework/create-term-from-framework.component.d.ts.map +0 -1
  66. package/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.d.ts +0 -46
  67. package/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.d.ts.map +0 -1
  68. package/lib/components/pending-approval/pending-approval.component.d.ts +0 -21
  69. package/lib/components/pending-approval/pending-approval.component.d.ts.map +0 -1
  70. package/lib/components/term-card/term-card.component.d.ts +0 -53
  71. package/lib/components/term-card/term-card.component.d.ts.map +0 -1
  72. package/lib/components/tree-column-view/tree-column-view.component.d.ts +0 -56
  73. package/lib/components/tree-column-view/tree-column-view.component.d.ts.map +0 -1
  74. package/lib/components/tree-view/tree-view.component.d.ts +0 -102
  75. package/lib/components/tree-view/tree-view.component.d.ts.map +0 -1
  76. package/lib/constants/app-constant.d.ts +0 -44
  77. package/lib/constants/app-constant.d.ts.map +0 -1
  78. package/lib/constants/data.d.ts +0 -117
  79. package/lib/constants/data.d.ts.map +0 -1
  80. package/lib/containers/config-framework/config-framework.component.d.ts +0 -32
  81. package/lib/containers/config-framework/config-framework.component.d.ts.map +0 -1
  82. package/lib/containers/dashboard/dashboard.component.d.ts +0 -9
  83. package/lib/containers/dashboard/dashboard.component.d.ts.map +0 -1
  84. package/lib/labels/strings.d.ts +0 -40
  85. package/lib/labels/strings.d.ts.map +0 -1
  86. package/lib/models/approval.model.d.ts +0 -11
  87. package/lib/models/approval.model.d.ts.map +0 -1
  88. package/lib/models/connection-type.model.d.ts +0 -6
  89. package/lib/models/connection-type.model.d.ts.map +0 -1
  90. package/lib/models/connection.model.d.ts +0 -7
  91. package/lib/models/connection.model.d.ts.map +0 -1
  92. package/lib/models/framework.model.d.ts +0 -89
  93. package/lib/models/framework.model.d.ts.map +0 -1
  94. package/lib/models/variable-type.model.d.ts +0 -46
  95. package/lib/models/variable-type.model.d.ts.map +0 -1
  96. package/lib/pipes/order-by.pipe.d.ts +0 -10
  97. package/lib/pipes/order-by.pipe.d.ts.map +0 -1
  98. package/lib/services/approval.service.d.ts +0 -21
  99. package/lib/services/approval.service.d.ts.map +0 -1
  100. package/lib/services/connection.service.d.ts +0 -4
  101. package/lib/services/connection.service.d.ts.map +0 -1
  102. package/lib/services/connector.service.d.ts +0 -18
  103. package/lib/services/connector.service.d.ts.map +0 -1
  104. package/lib/services/framework.service.d.ts +0 -89
  105. package/lib/services/framework.service.d.ts.map +0 -1
  106. package/lib/services/local-connection.service.d.ts +0 -18
  107. package/lib/services/local-connection.service.d.ts.map +0 -1
  108. package/lib/services/odcs.service.d.ts +0 -11
  109. package/lib/services/odcs.service.d.ts.map +0 -1
  110. package/lib/tree-hierarchy-routing.module.d.ts +0 -8
  111. package/lib/tree-hierarchy-routing.module.d.ts.map +0 -1
  112. package/lib/tree-hierarchy.component.d.ts +0 -13
  113. package/lib/tree-hierarchy.component.d.ts.map +0 -1
  114. package/lib/tree-hierarchy.module.d.ts +0 -33
  115. package/lib/tree-hierarchy.module.d.ts.map +0 -1
  116. package/lib/tree-hierarchy.service.d.ts +0 -21
  117. package/lib/tree-hierarchy.service.d.ts.map +0 -1
  118. package/material.module.d.ts +0 -52
  119. package/material.module.d.ts.map +0 -1
  120. package/public-api.d.ts +0 -9
  121. package/public-api.d.ts.map +0 -1
  122. 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