@sunbird-cb/tree-hierarchy 0.0.1-cbrelease-4.8.32 → 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 +710 -189
  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 +13 -15
  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 -42
  8. package/esm2022/lib/components/approval/approval.component.mjs +0 -20
  9. package/esm2022/lib/components/approve-view/approve-view.component.mjs +0 -65
  10. package/esm2022/lib/components/categories-preview/categories-preview.component.mjs +0 -45
  11. package/esm2022/lib/components/category-edit/category-edit-module/category-edit-module.component.mjs +0 -56
  12. package/esm2022/lib/components/conforamtion-popup/conforamtion-popup.component.mjs +0 -75
  13. package/esm2022/lib/components/connector/connector.component.mjs +0 -60
  14. package/esm2022/lib/components/create-categories/create-categories.component.mjs +0 -84
  15. package/esm2022/lib/components/create-term/create-term.component.mjs +0 -848
  16. package/esm2022/lib/components/create-term-from-framework/create-term-from-framework.component.mjs +0 -825
  17. package/esm2022/lib/components/org-hierarchy-add-modal/org-hierarchy-add-modal.component.mjs +0 -224
  18. package/esm2022/lib/components/pending-approval/pending-approval.component.mjs +0 -65
  19. package/esm2022/lib/components/term-card/term-card.component.mjs +0 -343
  20. package/esm2022/lib/components/tree-column-view/tree-column-view.component.mjs +0 -357
  21. package/esm2022/lib/components/tree-view/tree-view.component.mjs +0 -862
  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 -93
  25. package/esm2022/lib/containers/dashboard/dashboard.component.mjs +0 -15
  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 -36
  33. package/esm2022/lib/services/approval.service.mjs +0 -48
  34. package/esm2022/lib/services/connection.service.mjs +0 -3
  35. package/esm2022/lib/services/connector.service.mjs +0 -287
  36. package/esm2022/lib/services/framework.service.mjs +0 -532
  37. package/esm2022/lib/services/local-connection.service.mjs +0 -76
  38. package/esm2022/lib/services/odcs.service.mjs +0 -24
  39. package/esm2022/lib/tree-hierarchy-routing.module.mjs +0 -44
  40. package/esm2022/lib/tree-hierarchy.component.mjs +0 -25
  41. package/esm2022/lib/tree-hierarchy.module.mjs +0 -146
  42. package/esm2022/lib/tree-hierarchy.service.mjs +0 -62
  43. package/esm2022/material.module.mjs +0 -200
  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 -54
  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 -57
  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 -103
  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 -22
  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,60 +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
- 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
- export { ConnectorComponent };
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConnectorComponent, decorators: [{
54
- type: Component,
55
- 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"] }]
56
- }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
57
- type: Inject,
58
- args: [MAT_DIALOG_DATA]
59
- }] }, { type: i2.LocalConnectionService }, { type: i3.UntypedFormBuilder }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi90cmVlLWhpZXJhcmNoeS9zcmMvbGliL2NvbXBvbmVudHMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb21wb25lbnRzL2Nvbm5lY3Rvci9jb25uZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRixPQUFPLEVBQXNDLHNCQUFzQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2hJLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7OztBQUc5QyxNQU1hLGtCQUFrQjtJQUc3QixZQUNTLFNBQTJDLEVBQ2xCLElBQVMsRUFDakMsUUFBZ0MsRUFDaEMsRUFBc0I7UUFIdkIsY0FBUyxHQUFULFNBQVMsQ0FBa0M7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUNoQyxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUxoQyxnQkFBVyxHQUFRLE1BQU0sQ0FBQztJQU10QixDQUFDO0lBRUwsUUFBUTtRQVdOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRO2dCQUNuRCxDQUFDLFVBQVUsQ0FBQyxRQUFRO29CQUNwQixVQUFVLENBQUMsT0FBTyxDQUFDLGdGQUFnRixDQUFDLENBQUMsQ0FBQztZQUN0RyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFFLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEYsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQXFCLENBQUMsQ0FBQTtTQUM5RjtJQUNILENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBcUIsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQXFCLENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFvQixDQUFDLENBQUE7SUFDekUsQ0FBQzsrR0EvQ1Usa0JBQWtCLG9EQUtuQixlQUFlO21HQUxkLGtCQUFrQixxRENkL0IsK3lGQWdETTs7U0RsQ08sa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZUFBZTs7MEJBVXRCLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBMb2NhbENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYWwtY29ubmVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9jb25uZWN0aW9uLXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgbGFiZWxzIH0gZnJvbSAnLi4vLi4vbGFiZWxzL3N0cmluZ3MnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jb25uZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY29ubmVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29ubmVjdG9yLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBDb25uZWN0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25uZWN0b3JGb3JtITogVW50eXBlZEZvcm1Hcm91cDtcbiAgYXBwX3N0cmluZ3M6IGFueSA9IGxhYmVscztcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbm5lY3RvckNvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBsb2NhbFNjdjogTG9jYWxDb25uZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXJcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBjb25zdCByZXF1ZXN0Qm9keSA9IHtcbiAgICAvLyAgIHJlcXVlc3Q6IHtcbiAgICAvLyAgICAgc2VhcmNoOiB7XG4gICAgLy8gICAgICAgICBzdGF0dXM6IFwiRHJhZnRcIlxuICAgIC8vICAgICB9XG4gICAgLy8gfVxuICAgIC8vIH0gXG4gICAgLy8gdGhpcy5mcmFtZVdvcmtTZXJ2aWNlLnJlYWRUZXJtcyh0aGlzLmRhdGEuZnJhbWV3b3JrSWQsIHRoaXMuZGF0YS5jYXRlZ29yeUlkLCByZXF1ZXN0Qm9keSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgIC8vICAgIHRoaXMudGVybUxpc3RzID0gZGF0YS50ZXJtc1xuICAgIC8vIH0pXG4gICAgdGhpcy5pbml0Q29ubmVjdG9yRm9ybSgpXG4gIH1cblxuICBpbml0Q29ubmVjdG9yRm9ybSgpIHtcbiAgICB0aGlzLmNvbm5lY3RvckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGVuZHBvaW50OiBbdGhpcy5sb2NhbFNjdi5sb2NhbFN0b3JhZ2UuZGF0YS5lbmRwb2ludCxcbiAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD86aHR0cChzKT86XFwvXFwvKT9bXFx3Li1dKyg/OlxcLltcXHdcXC4tXSspK1tcXHdcXC1cXC5ffjovPyNbXFxdQCFcXCQmJ1xcKFxcKVxcKlxcKyw7PS5dKyQvKV1dLFxuICAgICAgdG9rZW46IFt0aGlzLmxvY2FsU2N2LmxvY2FsU3RvcmFnZS5kYXRhLnRva2VuLCBbVmFsaWRhdG9ycy5udWxsVmFsaWRhdG9yXV0sXG4gICAgICBmcmFtZXdvcmtOYW1lOiBbdGhpcy5sb2NhbFNjdi5sb2NhbFN0b3JhZ2UuZGF0YS5mcmFtZXdvcmtOYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pXG4gIH1cbiAgc2F2ZUNvbm5lY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuY29ubmVjdG9yRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBzb3VyY2U6ICdvbmxpbmUnLCBkYXRhOiB0aGlzLmNvbm5lY3RvckZvcm0udmFsdWUgfSBhcyBJQ29ubmVjdGlvblR5cGUpXG4gICAgfVxuICB9XG4gIGNsZWFyKCkge1xuICAgIHRoaXMuY29ubmVjdG9yRm9ybS5yZXNldCgpXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBzb3VyY2U6ICdvbmxpbmUnLCBkYXRhOiB7fSB9IGFzIElDb25uZWN0aW9uVHlwZSlcbiAgfVxuICBkaWFsb2dDbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IHNvdXJjZTogJ29ubGluZScsIGRhdGE6IHt9IH0gYXMgSUNvbm5lY3Rpb25UeXBlKVxuICB9XG4gIGxvYWREZWZhdWx0KCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHsgc291cmNlOiAnb2ZmbGluZScsIGRhdGE6IHt9fSBhcyBJQ29ubmVjdGlvblR5cGUpXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGZsZXgtcm93LXJldmVyc2UgcG9pbnRlclwiPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJkZWZhdWx0XCIgKGNsaWNrKT1cImRpYWxvZ0Nsb3NlKClcIiA+XG4gICAgICAgIDxtYXQtaWNvbiBtYXQtcmFpc2VkLWJ1dHRvbiA+e3thcHBfc3RyaW5ncy5jbG9zZX19PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZyBmbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC0xIGZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgZmxleCBmbGV4LTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaWRlIGZsZXggZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIidmbGV4IGZsZXgtMiBwYWRkaW5nLXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy10aXRsZVwiIG1hdC1kaWFsb2ctdGl0bGU+e3thcHBfc3RyaW5ncy5uZXdDb25uZWN0aW9ufX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjb25uZWN0b3JGb3JtXCIgbm92YWxpZGF0ZSAobmdTdWJtaXQpPVwic2F2ZUNvbm5lY3Rpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD57e2FwcF9zdHJpbmdzLmVuZFBvaW50fX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInVybFwiIGZvcm1Db250cm9sTmFtZT1cImVuZHBvaW50XCIgcGxhY2Vob2xkZXI9XCJ7e2FwcF9zdHJpbmdzLmVuZFBvaW50fX1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3thcHBfc3RyaW5ncy50b2tlbn19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInRva2VuXCIgcGxhY2Vob2xkZXI9XCJ7e2FwcF9zdHJpbmdzLnRva2VufX1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3thcHBfc3RyaW5ncy5lbnRlckZyYW1ld29ya05hbWV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJmcmFtZXdvcmtOYW1lXCIgcGxhY2Vob2xkZXI9XCJ7e2FwcF9zdHJpbmdzLmZyYW1ld29ya05hbWV9fVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvb3RlciBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiZGVmYXVsdFwiIHR5cGU9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkaWFsb2dDbG9zZSgpXCI+e3thcHBfc3RyaW5ncy5jYW5jZWx9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJkZWZhdWx0XCIgdHlwZT1cInJlc2V0XCIgKGNsaWNrKT1cImNsZWFyKClcIj57e2FwcF9zdHJpbmdzLmNsZWFyfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBjZGtGb2N1c0luaXRpYWw+e3thcHBfc3RyaW5ncy51cGRhdGV9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9yLWxpbmVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ItbGFiZWxcIj57e2FwcF9zdHJpbmdzLm9yfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZGUgZmxleCBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJ2ZsZXggZmxleC0xIHBhZGRpbmctc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXRpdGxlXCIgbWF0LWRpYWxvZy10aXRsZT57e2FwcF9zdHJpbmdzLmV4cGVyaWVuY2VUYXhvbm9teX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY2xhc3M9XCJwbGF5XCIgY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInJlc2V0XCIgKGNsaWNrKT1cImxvYWREZWZhdWx0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7YXBwX3N0cmluZ3MucGxheVdpdGhJdH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PuKAi1xuXG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -1,84 +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
- 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
- export { CreateCategoriesComponent };
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateCategoriesComponent, decorators: [{
73
- type: Component,
74
- 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"] }]
75
- }], ctorParameters: function () { return [{ type: i1.UntypedFormBuilder }]; }, propDecorators: { taxonomyInfo: [{
76
- type: Input
77
- }], updateCategory: [{
78
- type: Output
79
- }], removeCategories: [{
80
- type: Output
81
- }], changePosition: [{
82
- type: Output
83
- }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNhdGVnb3JpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL3RyZWUtaGllcmFyY2h5L3NyYy9saWIvY29tcG9uZW50cy9jcmVhdGUtY2F0ZWdvcmllcy9jcmVhdGUtY2F0ZWdvcmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvdHJlZS1oaWVyYXJjaHkvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1jYXRlZ29yaWVzL2NyZWF0ZS1jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUcsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7Ozs7Ozs7O0FBRzdDLE1BS2EseUJBQXlCO0lBVXBDLFlBQW9CLEVBQXNCO1FBQXRCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBUmhDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUNuQyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ3JDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUk3QyxnQkFBVyxHQUFRLE1BQU0sQ0FBQztJQUVvQixDQUFDO0lBRS9DLFFBQVE7UUFDUCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsVUFBVSxFQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUM3QixDQUFDLENBQUE7UUFDRixJQUFHLElBQUksQ0FBQyxZQUFZLEVBQUM7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7U0FDdEI7YUFBTTtZQUNQLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtTQUNuQjtJQUNILENBQUM7SUFDRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBcUIsQ0FBQTtJQUN4RSxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDbkIsSUFBSSxFQUFDLEVBQUU7U0FDUixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFRO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsS0FBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQ3RCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUNWLElBQUksRUFBQyxHQUFHLENBQUMsSUFBSTthQUNkLENBQUMsQ0FDSCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDdEUsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFTO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUNELElBQUksQ0FBQyxLQUE0QjtRQUMvQixJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQy9DLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBQyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksRUFBQyxLQUFLLENBQUMsYUFBYSxFQUFDLENBQUMsQ0FBQTtTQUM3RTthQUFNO1lBQ0wsaUJBQWlCLENBQ2YsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFDNUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQ3BCLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxZQUFZLENBQ25CLENBQUM7U0FDSDtJQUNILENBQUM7K0dBdEVVLHlCQUF5QjttR0FBekIseUJBQXlCLDhOQ1h0QyxpekRBK0JBOztTRHBCYSx5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUI7eUdBS3hCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXksIHRyYW5zZmVyQXJyYXlJdGVtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCAsIEV2ZW50RW1pdHRlcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBsYWJlbHMgfSBmcm9tICcuLi8uLi9sYWJlbHMvc3RyaW5ncydcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY3JlYXRlLWNhdGVnb3JpZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWNhdGVnb3JpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtY2F0ZWdvcmllcy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZUNhdGVnb3JpZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB0YXhvbm9teUluZm86YW55XG4gIEBPdXRwdXQoKSB1cGRhdGVDYXRlZ29yeSA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgcmVtb3ZlQ2F0ZWdvcmllcyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgY2hhbmdlUG9zaXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICBjcmVhdGVDYXRlZ29yaWVzRm9ybSE6IFVudHlwZWRGb3JtR3JvdXBcblxuICBhcHBfc3RyaW5nczogYW55ID0gbGFiZWxzO1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyKSB7IH1cblxuICBuZ09uSW5pdCgpIHsgXG4gICB0aGlzLmNyZWF0ZUNhdGVnb3JpZXNGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBjYXRlZ29yaWVzOnRoaXMuZmIuYXJyYXkoW10pXG4gICAgfSlcbiAgICBpZih0aGlzLnRheG9ub215SW5mbyl7XG4gICAgICB0aGlzLmluaXRDYXRlZ29yeUZvcm0oKVxuICAgICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkQ2F0ZWdvcnkoKVxuICAgIH1cbiAgfVxuICBjYXRlZ29yaWVzKCk6IFVudHlwZWRGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUNhdGVnb3JpZXNGb3JtLmdldCgnY2F0ZWdvcmllcycpIGFzIFVudHlwZWRGb3JtQXJyYXlcbiAgfVxuXG4gIG5ld0NhdGVnb3JpZXMoKTogVW50eXBlZEZvcm1Hcm91cCB7ICBcbiAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7ICBcbiAgICAgIG5hbWU6JycsICBcbiAgICB9KSAgXG4gIH0gIFxuXG4gIGFkZENhdGVnb3J5KCkgeyAgXG4gICAgdGhpcy5jYXRlZ29yaWVzKCkucHVzaCh0aGlzLm5ld0NhdGVnb3JpZXMoKSk7ICBcbiAgfSAgXG4gICAgIFxuICByZW1vdmVDYXRlZ29yeShpOm51bWJlcikgeyAgXG4gICAgdGhpcy5jYXRlZ29yaWVzKCkucmVtb3ZlQXQoaSk7ICBcbiAgICB0aGlzLnJlbW92ZUNhdGVnb3JpZXMuZW1pdChpKVxuICB9ICBcblxuICBpbml0Q2F0ZWdvcnlGb3JtKCl7XG4gICAgZm9yKHZhciBjYXQgb2YgdGhpcy50YXhvbm9teUluZm8pe1xuICAgICAgdGhpcy5jYXRlZ29yaWVzKCkucHVzaChcbiAgICAgIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgIG5hbWU6Y2F0Lm5hbWVcbiAgICAgICAgfSlcbiAgICAgICk7ICBcbiAgICB9XG4gIH1cblxuICBzYXZlRm9ybSgpIHtcbiAgICB0aGlzLnVwZGF0ZUNhdGVnb3J5LmVtaXQodGhpcy5jcmVhdGVDYXRlZ29yaWVzRm9ybS52YWx1ZS5jYXRlZ29yaWVzKVxuICB9XG5cbiAgZW1pdENhdGVnb3J5KGV2ZW50OmFueSl7XG4gICAgdGhpcy51cGRhdGVDYXRlZ29yeS5lbWl0KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcbiAgICBpZiAoZXZlbnQucHJldmlvdXNDb250YWluZXIgPT09IGV2ZW50LmNvbnRhaW5lcikge1xuICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvbi5lbWl0KHtjdXI6ZXZlbnQuY3VycmVudEluZGV4LCBwcmV2OmV2ZW50LnByZXZpb3VzSW5kZXh9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0cmFuc2ZlckFycmF5SXRlbShcbiAgICAgICAgZXZlbnQucHJldmlvdXNDb250YWluZXIuZGF0YSxcbiAgICAgICAgZXZlbnQuY29udGFpbmVyLmRhdGEsXG4gICAgICAgIGV2ZW50LnByZXZpb3VzSW5kZXgsXG4gICAgICAgIGV2ZW50LmN1cnJlbnRJbmRleCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJmb3JtLXdyYXBcIj5cbiAgICA8aDE+e3thcHBfc3RyaW5ncy5jcmVhdGVDYXRlZ29yaWVzfX08L2gxPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiY3JlYXRlQ2F0ZWdvcmllc0Zvcm1cIiAobmdTdWJtaXQpPVwic2F2ZUZvcm0oKVwiIG5vdmFsaWRhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZF9fd3JhcFwiIGZvcm1BcnJheU5hbWU9XCJjYXRlZ29yaWVzXCIgY2RrRHJvcExpc3RHcm91cD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwiY2F0ZWdvcmllcygpLmNvbnRyb2xzXCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fY2F0ZWdvcnlcIiAqbmdGb3I9XCJsZXQgY2F0IG9mIGNhdGVnb3JpZXMoKS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIFtmb3JtR3JvdXBOYW1lXT1cImlcIiBjZGtEcmFnPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+e3thcHBfc3RyaW5ncy5jYXRlZ29yeX19IHt7aX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwie3thcHBfc3RyaW5ncy5jYXRlZ29yeU5hbWV9fVwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAoYmx1cik9XCJlbWl0Q2F0ZWdvcnkoJGV2ZW50KVwiPiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1IYW5kbGVcIiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRweFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMCA5aDRWNmgzbC01LTUtNSA1aDN2M3ptLTEgMUg2VjdsLTUgNSA1IDV2LTNoM3YtNHptMTQgMmwtNS01djNoLTN2NGgzdjNsNS01em0tOSAzaC00djNIN2w1IDUgNS01aC0zdi0zelwiPjwvcGF0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJyZW1vdmVDYXRlZ29yeShpKVwiPnt7YXBwX3N0cmluZ3MucmVtb3ZlQ2lyY2xlT3V0bGluZX19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZvb3Rlcj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiYWRkQ2F0ZWdvcnkoKVwiIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgIHt7YXBwX3N0cmluZ3MuYWRkIHwgdGl0bGVjYXNlfX1cbiAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9mb290ZXI+XG4gICAgPC9mb3JtPlxuPC9kaXY+XG4iXX0=