mmhglobal-dynamicform 2.0.0-beta.40 → 2.0.0-beta.42

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 (29) hide show
  1. package/README.md +17 -0
  2. package/esm2020/lib/components/inputfieldbase.component.mjs +12 -8
  3. package/esm2020/lib/embed-components/input-field-addons/input-field-addons.component.mjs +16 -14
  4. package/esm2020/lib/services/main.service.mjs +4 -1
  5. package/esm2020/lib/uipage/uipage.component.mjs +5 -2
  6. package/esm2020/lib/zbuttons/zbuttons.component.mjs +16 -24
  7. package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +27 -4
  8. package/esm2020/lib/zgrid/zgrid.component.mjs +70 -45
  9. package/esm2020/lib/zinput-container/zinput-container.component.mjs +34 -13
  10. package/esm2020/lib/zinput-container/zinput-container.pipe.mjs +8 -6
  11. package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +3 -3
  12. package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +13 -49
  13. package/esm2020/lib/ztree/ztree.component.mjs +19 -14
  14. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +13 -8
  15. package/fesm2015/mmhglobal-dynamicform.mjs +245 -196
  16. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
  17. package/fesm2020/mmhglobal-dynamicform.mjs +245 -196
  18. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
  19. package/lib/components/inputfieldbase.component.d.ts +4 -1
  20. package/lib/embed-components/input-field-addons/input-field-addons.component.d.ts +4 -4
  21. package/lib/zbuttons/zbuttons.component.d.ts +2 -2
  22. package/lib/zgrid/zgrid.binding.directive.d.ts +1 -0
  23. package/lib/zgrid/zgrid.component.d.ts +4 -0
  24. package/lib/zinput-container/zinput-container.component.d.ts +12 -3
  25. package/lib/zinput-container/zinput-container.pipe.d.ts +1 -0
  26. package/lib/ztexteditor/ztexteditor.component.d.ts +7 -22
  27. package/lib/ztree/ztree.component.d.ts +2 -1
  28. package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +1 -0
  29. package/package.json +1 -1
package/README.md CHANGED
@@ -3,6 +3,23 @@
3
3
  This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.13.
4
4
 
5
5
  ## Changelog
6
+ `2.42beta`<br/>
7
+ [ztree] - update handleFilter.<br/>
8
+ [ztree] - added clearFilter.<br/>
9
+ [mainservice] - fix page keep loading if formHeader not set by the project.<br/>
10
+ [uipage] - set page action default as new if currentparam did not indicate is new or edit.
11
+ [zgrid] - fix grid inline issue: not working on setColumns function.<br/>
12
+ [zinput-container] - build function to set AddOns.<br/>
13
+ [ztexteditor] - Added texteditor to zinput container
14
+ [buttons] - Added DisableTrigger property to enable/disable record processing spinner
15
+ [zselectmultiple] - Default turn off combobox virtualization to fix bug on fixed drop-down-item's height
16
+ [addon] - Fix icon onclick event, enhance button list style
17
+ [ztree] - Added Class property for custom class styling
18
+
19
+ `2.41beta`<br/>
20
+ [zgrid] - added event AfterDataBinded.<br/>
21
+ [zgrid] - added attribute handling for FilterWithoutBracket. by default valuexpression column, will have round bracket prefix for the value filtering.<br/>
22
+
6
23
  `2.40beta`<br/>
7
24
  [zdatetime] - fix bug: Unable to delete datetime value.<br/>
8
25
  [ztree] - enhance to allow pre-set original value setting in the group.orignalvalue.<br/>
@@ -1,4 +1,4 @@
1
- import { Component } from "@angular/core";
1
+ import { Component, EventEmitter, Output } from "@angular/core";
2
2
  import { ZComponentHelper } from "mmhglobal-zcore";
3
3
  import { FieldBase } from "./fieldbase.component";
4
4
  import * as i0 from "@angular/core";
@@ -7,6 +7,7 @@ import * as i1 from "../services/zcomponent.service";
7
7
  export class InputFieldBase extends FieldBase {
8
8
  constructor(compService) {
9
9
  super(compService);
10
+ this.triggerContainerEvent = new EventEmitter();
10
11
  }
11
12
  onClick(event, fieldValue) {
12
13
  this.triggerEvent("inputfield-onClick", this.data.OnClick, event, fieldValue || event['OnClick']);
@@ -23,10 +24,7 @@ export class InputFieldBase extends FieldBase {
23
24
  this.triggerEvent("inputfield-onItemClick", this.data.OnItemClick, event, fieldValue);
24
25
  }
25
26
  onIconClick(clickActionExpr) {
26
- const clickActionValue = ZComponentHelper.getGroupEvalValue.call(this, clickActionExpr);
27
- if (clickActionValue) {
28
- this.triggerEvent("inputfield-onIconClick", clickActionValue, null, this.group.zModel[this.data.Value]);
29
- }
27
+ this.triggerEvent("inputfield-onIconClick", clickActionExpr, null, this.group.zModel[this.data.Value]);
30
28
  }
31
29
  getReadOnlyValue() {
32
30
  const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);
@@ -47,6 +45,9 @@ export class InputFieldBase extends FieldBase {
47
45
  setValue(value) {
48
46
  ZComponentHelper.setComponentModelValue(this.data, value, this.group);
49
47
  }
48
+ setAddOnValue(addOns) {
49
+ this.triggerContainerEvent.emit({ type: 'setAddOnValue', data: addOns });
50
+ }
50
51
  triggerEvent(type, target, event, fieldValue) {
51
52
  if (target) {
52
53
  this.group.subject.next({
@@ -65,11 +66,14 @@ export class InputFieldBase extends FieldBase {
65
66
  }
66
67
  }
67
68
  InputFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InputFieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
68
- InputFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: InputFieldBase, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
69
+ InputFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: InputFieldBase, selector: "ng-component", outputs: { triggerContainerEvent: "triggerContainerEvent" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true });
69
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InputFieldBase, decorators: [{
70
71
  type: Component,
71
72
  args: [{
72
73
  template: ``,
73
74
  }]
74
- }], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQXlCLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFPbEQsMklBQTJJO0FBQzNJLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUMzQyxZQUFZLFdBQThCO1FBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQVUsRUFBRSxVQUFnQjtRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFVLEVBQUUsVUFBZ0I7UUFDNUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFVLEVBQUUsVUFBZ0I7UUFDMUMsZ0JBQWdCLENBQUMsc0JBQXNC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QUFLLENBQUE7U0FDNUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzs0R0FyRVUsY0FBYztnR0FBZCxjQUFjLDJFQUpmLEVBQUU7NEZBSUQsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4vZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuXHJcbi8vIEZvcjogemNoZWNrYm94LCB6Y2hpcCwgemRhdGV0aW1lLCB6aW1nLCB6aW5wdXQtY29udGFpbmVyLCB6bGFiZWwsIHpudW1lcmljLCB6cG9zdHNlbGVjdGlucHV0LCB6c2VsZWN0bXVsdGlwbGUsIHp0ZXh0LCB6dGV4dGFyZWEsIHp1cGxvYWRcclxuZXhwb3J0IGNsYXNzIElucHV0RmllbGRCYXNlIGV4dGVuZHMgRmllbGRCYXNlIHtcclxuICBjb25zdHJ1Y3Rvcihjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNvbXBTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkNsaWNrXCIsIHRoaXMuZGF0YS5PbkNsaWNrLCBldmVudCwgZmllbGRWYWx1ZSB8fCBldmVudFsnT25DbGljayddKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZUNDKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSksIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uQ2hhbmdlQ0NcIiwgdGhpcy5kYXRhLkNDT25DaGFuZ2UsIGV2ZW50LCBmaWVsZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZShldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCB0aGlzLmdldEZpZWxkVmFsdWUoZXZlbnQsIGZpZWxkVmFsdWUpLCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkNoYW5nZVwiLCB0aGlzLmRhdGEuT25DaGFuZ2UsIGV2ZW50LCBmaWVsZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkl0ZW1DbGljayhldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25JdGVtQ2xpY2tcIiwgdGhpcy5kYXRhLk9uSXRlbUNsaWNrLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JY29uQ2xpY2soY2xpY2tBY3Rpb25FeHByOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGNsaWNrQWN0aW9uVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgY2xpY2tBY3Rpb25FeHByKTtcclxuICAgIGlmIChjbGlja0FjdGlvblZhbHVlKSB7XHJcbiAgICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkljb25DbGlja1wiLCBjbGlja0FjdGlvblZhbHVlLCBudWxsLCB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWFkT25seVZhbHVlKCkge1xyXG4gICAgY29uc3QgcmVhZE9ubHlWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuUmVhZE9ubHkpO1xyXG4gICAgaWYgKHR5cGVvZiByZWFkT25seVZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gcmVhZE9ubHlWYWx1ZS5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKHRoaXMuZ3JvdXApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlYWRPbmx5VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SXNSZXF1aXJlZFZhbHVlKCkge1xyXG4gICAgY29uc3QgSXNSZXF1aXJlZFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5Jc1JlcXVpcmVkKTtcclxuICAgIGlmICh0eXBlb2YgSXNSZXF1aXJlZFZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gSXNSZXF1aXJlZFZhbHVlLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXR1cm4gY2FsbEZ1bmModGhpcy5ncm91cCk7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIElzUmVxdWlyZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCB2YWx1ZSwgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJpZ2dlckV2ZW50KHR5cGU6IHN0cmluZywgdGFyZ2V0OiBhbnksIGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIGlmICh0YXJnZXQpIHtcclxuICAgICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgICAgICAgdGFyZ2V0OiB0YXJnZXQsXHJcbiAgICAgICAgZXZlbnQsXHJcbiAgICAgICAgZGF0YTogeyB2YWx1ZTogdGhpcy5nZXRGaWVsZFZhbHVlKGV2ZW50LCBmaWVsZFZhbHVlKSwgZmllbGQ6IHRoaXMuZGF0YSwgY29tcDogdGhpcyB9XHJcbiAgICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmllbGRWYWx1ZShldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBpZiAoZmllbGRWYWx1ZSA9PSBudWxsIHx8IGZpZWxkVmFsdWUgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiBldmVudD8udmFsdWUgfHwgZXZlbnQ/LnRhcmdldD8udmFsdWVcclxuICAgIH1cclxuICAgIHJldHVybiBmaWVsZFZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=
75
+ }], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { triggerContainerEvent: [{
76
+ type: Output,
77
+ args: ['triggerContainerEvent']
78
+ }] } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQU9sRCwySUFBMkk7QUFDM0ksTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBRTNDLFlBQVksV0FBOEI7UUFDeEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRlksMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFHL0YsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFVLEVBQUUsVUFBZ0I7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBVSxFQUFFLFVBQWdCO1FBQzVDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RGLENB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QVUsSUFBSSxTQUFTLEVBQUU7WUFDakQsT0FBTyxLQUFLLEVBQUUsS0FBSyxJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFBO1NBQzVDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7NEdBdkVVLGNBQWM7Z0dBQWQsY0FBYyx3SUFKZixFQUFFOzRGQUlELGNBQWM7a0JBTDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7d0dBSWtDLHFCQUFxQjtzQkFBckQsTUFBTTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50IH0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tIFwiLi9maWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBgLFxyXG59KVxyXG5cclxuLy8gRm9yOiB6Y2hlY2tib3gsIHpjaGlwLCB6ZGF0ZXRpbWUsIHppbWcsIHppbnB1dC1jb250YWluZXIsIHpsYWJlbCwgem51bWVyaWMsIHpwb3N0c2VsZWN0aW5wdXQsIHpzZWxlY3RtdWx0aXBsZSwgenRleHQsIHp0ZXh0YXJlYSwgenVwbG9hZFxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWVsZEJhc2UgZXh0ZW5kcyBGaWVsZEJhc2Uge1xyXG4gIEBPdXRwdXQoJ3RyaWdnZXJDb250YWluZXJFdmVudCcpIHRyaWdnZXJDb250YWluZXJFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY29uc3RydWN0b3IoY29tcFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihjb21wU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbGljayhldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25DbGlja1wiLCB0aGlzLmRhdGEuT25DbGljaywgZXZlbnQsIGZpZWxkVmFsdWUgfHwgZXZlbnRbJ09uQ2xpY2snXSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VDQyhldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCB0aGlzLmdldEZpZWxkVmFsdWUoZXZlbnQsIGZpZWxkVmFsdWUpLCB0aGlzLmdyb3VwKTtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkNoYW5nZUNDXCIsIHRoaXMuZGF0YS5DQ09uQ2hhbmdlLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRNb2RlbFZhbHVlKHRoaXMuZGF0YSwgdGhpcy5nZXRGaWVsZFZhbHVlKGV2ZW50LCBmaWVsZFZhbHVlKSwgdGhpcy5ncm91cCk7XHJcbiAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25DaGFuZ2VcIiwgdGhpcy5kYXRhLk9uQ2hhbmdlLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JdGVtQ2xpY2soZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uSXRlbUNsaWNrXCIsIHRoaXMuZGF0YS5Pbkl0ZW1DbGljaywgZXZlbnQsIGZpZWxkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSWNvbkNsaWNrKGNsaWNrQWN0aW9uRXhwcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25JY29uQ2xpY2tcIiwgY2xpY2tBY3Rpb25FeHByLCBudWxsLCB0aGlzLmdyb3VwLnpNb2RlbFt0aGlzLmRhdGEuVmFsdWVdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSZWFkT25seVZhbHVlKCkge1xyXG4gICAgY29uc3QgcmVhZE9ubHlWYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuUmVhZE9ubHkpO1xyXG4gICAgaWYgKHR5cGVvZiByZWFkT25seVZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gcmVhZE9ubHlWYWx1ZS5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKHRoaXMuZ3JvdXApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlYWRPbmx5VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SXNSZXF1aXJlZFZhbHVlKCkge1xyXG4gICAgY29uc3QgSXNSZXF1aXJlZFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5Jc1JlcXVpcmVkKTtcclxuICAgIGlmICh0eXBlb2YgSXNSZXF1aXJlZFZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gSXNSZXF1aXJlZFZhbHVlLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXR1cm4gY2FsbEZ1bmModGhpcy5ncm91cCk7XHJcblxyXG4gICAgfVxyXG4gICAgcmV0dXJuIElzUmVxdWlyZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudE1vZGVsVmFsdWUodGhpcy5kYXRhLCB2YWx1ZSwgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0QWRkT25WYWx1ZShhZGRPbnM/OiBhbnkpIHtcclxuICAgIHRoaXMudHJpZ2dlckNvbnRhaW5lckV2ZW50LmVtaXQoeyB0eXBlOiAnc2V0QWRkT25WYWx1ZScsIGRhdGE6IGFkZE9ucyB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmlnZ2VyRXZlbnQodHlwZTogc3RyaW5nLCB0YXJnZXQ6IGFueSwgZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICB0YXJnZXQ6IHRhcmdldCxcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBkYXRhOiB7IHZhbHVlOiB0aGlzLmdldEZpZWxkVmFsdWUoZXZlbnQsIGZpZWxkVmFsdWUpLCBmaWVsZDogdGhpcy5kYXRhLCBjb21wOiB0aGlzIH1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWVsZFZhbHVlKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIGlmIChmaWVsZFZhbHVlID09IG51bGwgfHwgZmllbGRWYWx1ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGV2ZW50Py52YWx1ZSB8fCBldmVudD8udGFyZ2V0Py52YWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkVmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -8,32 +8,26 @@ import * as i3 from "@fortawesome/angular-fontawesome";
8
8
  import * as i4 from "@ionic/angular";
9
9
  import * as i5 from "@angular/common";
10
10
  import * as i6 from "@progress/kendo-angular-tooltip";
11
+ import * as i7 from "@angular/flex-layout/extended";
11
12
  export class InputFieldAddOnsComponent extends InputFieldBase {
12
13
  constructor(compService, translationService) {
13
14
  super(compService);
14
15
  this.translationService = translationService;
15
16
  }
16
- // public iconList: ClickableIcons[];
17
- // public buttonList;
18
17
  ngOnInit() {
19
- this.position = this.position || 'top';
20
- this.setupAddOnValue();
18
+ }
19
+ ngOnChanges(changes) {
21
20
  if (this.addOn) {
21
+ this.position = this.position || 'top';
22
22
  this.setupIconList();
23
23
  this.setupButtonList();
24
24
  this.setupTextList();
25
25
  }
26
26
  }
27
- setupAddOnValue() {
28
- const inputFieldAddOnGroupValue = ZComponentHelper.getGroupValue(this.data.InputFieldAddOns, this.group);
29
- const addOnValue = inputFieldAddOnGroupValue || this.data.InputFieldAddOns;
30
- if (addOnValue && Array.isArray(addOnValue)) {
31
- this.addOn = addOnValue.find(i => i.Position === this.position);
32
- }
33
- }
34
27
  setupIconList() {
35
28
  // this.addOn.IconList = [{ Icon: "user", Click: null, Style: "color:blue;", ToolTipText: "text" }]; // For Testing
36
29
  if (this.addOn.IconList) {
30
+ this.addOn.IconList = this.addOn.IconList.filter(x => x);
37
31
  this.addOn.IconList.forEach((i) => {
38
32
  if (i.ToolTipText === undefined) {
39
33
  i.ToolTipText = "";
@@ -51,7 +45,12 @@ export class InputFieldAddOnsComponent extends InputFieldBase {
51
45
  setupButtonList() {
52
46
  // this.addOn.ButtonList = [{ Text: 'test', Icon: 'user', Style: '', Click: null }]; // For Testing
53
47
  if (this.addOn.ButtonList) {
48
+ this.addOn.ButtonList = this.addOn.ButtonList.filter(x => x);
54
49
  this.addOn.ButtonList.forEach(button => {
50
+ const isUseCustomClass = button.Color ? false : true;
51
+ button['color'] = isUseCustomClass ? '' : (button.Color || 'primary');
52
+ button['fill'] = isUseCustomClass ? '' : (button.Fill || 'solid');
53
+ button['class'] = isUseCustomClass ? `${button.Class} useCustomClass` : button.Class;
55
54
  button.Visible = ZComponentHelper.isNullUndefinedEmpty(button.Visible) ? 'true' : button.Visible;
56
55
  });
57
56
  this.translationService.$translateItemList(this.addOn.ButtonList, "Text", { elementName: this.group.fieldName, group: this.group }).subscribe();
@@ -60,6 +59,7 @@ export class InputFieldAddOnsComponent extends InputFieldBase {
60
59
  setupTextList() {
61
60
  // this.addOn.TextList = [{ Text: 'test', Style: '', TooltipText: 'test' }]; // For Testing
62
61
  if (this.addOn.TextList) {
62
+ this.addOn.TextList = this.addOn.TextList.filter(x => x);
63
63
  this.addOn.TextList.forEach((i) => {
64
64
  if (i.ToolTipText === undefined) {
65
65
  i.ToolTipText = "";
@@ -76,11 +76,13 @@ export class InputFieldAddOnsComponent extends InputFieldBase {
76
76
  }
77
77
  }
78
78
  InputFieldAddOnsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InputFieldAddOnsComponent, deps: [{ token: i1.ZComponentService }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
79
- InputFieldAddOnsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: InputFieldAddOnsComponent, selector: "app-input-field-addons", inputs: { position: "position" }, usesInheritance: true, ngImport: i0, template: "<div [class]=\"'addons-container ' + position\" *ngIf=\"addOn\">\r\n <div class=\"addons-icon\" *ngIf=\"addOn.IconList\">\r\n <div *ngFor=\"let item of addOn.IconList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span *ngIf=\"!!item \" (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n <fa-icon [icon]=\"item.Icon\">\r\n </fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-text\" *ngIf=\"addOn.TextList\">\r\n <div *ngFor=\"let item of addOn.TextList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span *ngIf=\"!!item \" (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n {{item.Text}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-buttons\" *ngIf=\"addOn.ButtonList\">\r\n <ion-button *ngFor=\"let button of addOn.ButtonList; let i = button\" [fill]=\"button.fill || 'outline'\"\r\n [color]=\"button.color || 'dark'\" [size]=\"button.size || 'small'\" strong=\"false\"\r\n (click)=\"onIconClick(button.Click)\" [hidden]=\"!button.Visible\" [disabled]=\"group.isTriggered || button.Disabled\"\r\n [style]=\"button.Style\">\r\n <fa-icon *ngIf=\"button.Icon\" [icon]=\"getFontAwesome(button.Icon)\"\r\n [style.padding-right]=\"button.Text ? '5px' : '0px'\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.Text }}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".addons-container{display:flex}.addons-container .addons-icon{display:flex;flex-direction:row}.addons-container .addons-icon fa-icon{padding:4px 6px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-buttons>ion-button{margin:0 0 0 5px;height:20px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-text{padding-left:6px;padding-top:3px;font-size:calc(var(--content-font-size) - 2px)}.addons-container.top .addons-buttons>ion-button{top:-3px;position:relative}.addons-container.left .addons-buttons>ion-button{margin:0 5px 0 0}\n"], components: [{ type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }] });
79
+ InputFieldAddOnsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: InputFieldAddOnsComponent, selector: "app-input-field-addons", inputs: { position: "position", addOn: "addOn" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [class]=\"'addons-container ' + position\" *ngIf=\"addOn\">\r\n <div class=\"addons-icon\" *ngIf=\"addOn.IconList\">\r\n <div *ngFor=\"let item of addOn.IconList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n <fa-icon [icon]=\"item.Icon\">\r\n </fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-text\" *ngIf=\"addOn.TextList\">\r\n <div *ngFor=\"let item of addOn.TextList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n {{item.Text}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-buttons\" *ngIf=\"addOn.ButtonList\">\r\n <ion-button *ngFor=\"let button of addOn.ButtonList; let i = button\" [fill]=\"button.fill\" [ngClass]=\"button.class\"\r\n [color]=\"button.color\" [size]=\"button.Size || 'small'\" strong=\"false\" (click)=\"onIconClick(button.Click)\"\r\n [hidden]=\"!button.Visible\" [disabled]=\"group.isTriggered || button.Disabled\" [style]=\"button.Style\">\r\n <fa-icon *ngIf=\"button.Icon\" [icon]=\"getFontAwesome(button.Icon)\"\r\n [style.padding-right]=\"button.Text ? '5px' : '0px'\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.Text }}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".addons-container{display:flex}.addons-container .addons-icon{display:flex;flex-direction:row}.addons-container .addons-icon fa-icon{padding:4px 6px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-buttons>ion-button{margin:0 0 0 5px;height:20px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-text{padding-left:6px;padding-top:3px;font-size:calc(var(--content-font-size) - 2px)}.addons-container.top .addons-buttons>ion-button{top:-3px;position:relative}.addons-container.left .addons-buttons>ion-button{margin:0 5px 0 0}.addons-buttons ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}.addons-buttons ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}.addons-buttons ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}.addons-buttons ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}.addons-buttons ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}.addons-buttons ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}.addons-buttons ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}.addons-buttons ion-button.no-shadow{--box-shadow: none}\n"], components: [{ type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
80
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InputFieldAddOnsComponent, decorators: [{
81
81
  type: Component,
82
- args: [{ selector: "app-input-field-addons", template: "<div [class]=\"'addons-container ' + position\" *ngIf=\"addOn\">\r\n <div class=\"addons-icon\" *ngIf=\"addOn.IconList\">\r\n <div *ngFor=\"let item of addOn.IconList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span *ngIf=\"!!item \" (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n <fa-icon [icon]=\"item.Icon\">\r\n </fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-text\" *ngIf=\"addOn.TextList\">\r\n <div *ngFor=\"let item of addOn.TextList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span *ngIf=\"!!item \" (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n {{item.Text}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-buttons\" *ngIf=\"addOn.ButtonList\">\r\n <ion-button *ngFor=\"let button of addOn.ButtonList; let i = button\" [fill]=\"button.fill || 'outline'\"\r\n [color]=\"button.color || 'dark'\" [size]=\"button.size || 'small'\" strong=\"false\"\r\n (click)=\"onIconClick(button.Click)\" [hidden]=\"!button.Visible\" [disabled]=\"group.isTriggered || button.Disabled\"\r\n [style]=\"button.Style\">\r\n <fa-icon *ngIf=\"button.Icon\" [icon]=\"getFontAwesome(button.Icon)\"\r\n [style.padding-right]=\"button.Text ? '5px' : '0px'\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.Text }}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".addons-container{display:flex}.addons-container .addons-icon{display:flex;flex-direction:row}.addons-container .addons-icon fa-icon{padding:4px 6px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-buttons>ion-button{margin:0 0 0 5px;height:20px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-text{padding-left:6px;padding-top:3px;font-size:calc(var(--content-font-size) - 2px)}.addons-container.top .addons-buttons>ion-button{top:-3px;position:relative}.addons-container.left .addons-buttons>ion-button{margin:0 5px 0 0}\n"] }]
82
+ args: [{ selector: "app-input-field-addons", template: "<div [class]=\"'addons-container ' + position\" *ngIf=\"addOn\">\r\n <div class=\"addons-icon\" *ngIf=\"addOn.IconList\">\r\n <div *ngFor=\"let item of addOn.IconList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n <fa-icon [icon]=\"item.Icon\">\r\n </fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-text\" *ngIf=\"addOn.TextList\">\r\n <div *ngFor=\"let item of addOn.TextList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n {{item.Text}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-buttons\" *ngIf=\"addOn.ButtonList\">\r\n <ion-button *ngFor=\"let button of addOn.ButtonList; let i = button\" [fill]=\"button.fill\" [ngClass]=\"button.class\"\r\n [color]=\"button.color\" [size]=\"button.Size || 'small'\" strong=\"false\" (click)=\"onIconClick(button.Click)\"\r\n [hidden]=\"!button.Visible\" [disabled]=\"group.isTriggered || button.Disabled\" [style]=\"button.Style\">\r\n <fa-icon *ngIf=\"button.Icon\" [icon]=\"getFontAwesome(button.Icon)\"\r\n [style.padding-right]=\"button.Text ? '5px' : '0px'\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.Text }}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".addons-container{display:flex}.addons-container .addons-icon{display:flex;flex-direction:row}.addons-container .addons-icon fa-icon{padding:4px 6px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-buttons>ion-button{margin:0 0 0 5px;height:20px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-text{padding-left:6px;padding-top:3px;font-size:calc(var(--content-font-size) - 2px)}.addons-container.top .addons-buttons>ion-button{top:-3px;position:relative}.addons-container.left .addons-buttons>ion-button{margin:0 5px 0 0}.addons-buttons ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}.addons-buttons ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}.addons-buttons ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}.addons-buttons ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}.addons-buttons ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}.addons-buttons ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}.addons-buttons ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}.addons-buttons ion-button.no-shadow{--box-shadow: none}\n"] }]
83
83
  }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.TranslationService }]; }, propDecorators: { position: [{
84
84
  type: Input
85
+ }], addOn: [{
86
+ type: Input
85
87
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL2VtYmVkLWNvbXBvbmVudHMvaW5wdXQtZmllbGQtYWRkb25zL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9lbWJlZC1jb21wb25lbnRzL2lucHV0LWZpZWxkLWFkZG9ucy9pbnB1dC1maWVsZC1hZGRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFvRCxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7Ozs7QUFRM0UsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGNBQWM7SUFFM0QsWUFBWSxXQUE4QixFQUFVLGtCQUFzQztRQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUE1RCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQXVCLENBQUM7SUFHbEgscUNBQXFDO0lBQ3JDLHFCQUFxQjtJQUVyQixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxD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L2NvcmVcIjtcclxuaW1wb3J0IHsgSW5wdXRGaWVsZEFkZE9ucywgVHJhbnNsYXRpb25TZXJ2aWNlLCBaQ29tcG9uZW50LCBaQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuaW1wb3J0IHsgSW5wdXRGaWVsZEJhc2UgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhcHAtaW5wdXQtZmllbGQtYWRkb25zXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbnB1dC1maWVsZC1hZGRvbnMuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudC5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEZpZWxkQWRkT25zQ29tcG9uZW50IGV4dGVuZHMgSW5wdXRGaWVsZEJhc2UgaW1wbGVtZW50cyBaQ29tcG9uZW50LCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHBvc2l0aW9uOiAndG9wJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAnYm90dG9tJzsgLy8gZGVmYXVsdCB0b3BcclxuICBjb25zdHJ1Y3Rvcihjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UpIHsgc3VwZXIoY29tcFNlcnZpY2UpIH1cclxuXHJcbiAgcHVibGljIGFkZE9uOiBJbnB1dEZpZWxkQWRkT25zO1xyXG4gIC8vIHB1YmxpYyBpY29uTGlzdDogQ2xpY2thYmxlSWNvbnNbXTtcclxuICAvLyBwdWJsaWMgYnV0dG9uTGlzdDtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbiB8fCAndG9wJztcclxuICAgIHRoaXMuc2V0dXBBZGRPblZhbHVlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuYWRkT24pIHtcclxuICAgICAgdGhpcy5zZXR1cEljb25MaXN0KCk7XHJcbiAgICAgIHRoaXMuc2V0dXBCdXR0b25MaXN0KCk7XHJcbiAgICAgIHRoaXMuc2V0dXBUZXh0TGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEFkZE9uVmFsdWUoKSB7XHJcbiAgICBjb25zdCBpbnB1dEZpZWxkQWRkT25Hcm91cFZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKHRoaXMuZGF0YS5JbnB1dEZpZWxkQWRkT25zIGFzIGFueSwgdGhpcy5ncm91cCk7XHJcbiAgICBjb25zdCBhZGRPblZhbHVlID0gaW5wdXRGaWVsZEFkZE9uR3JvdXBWYWx1ZSB8fCB0aGlzLmRhdGEuSW5wdXRGaWVsZEFkZE9ucztcclxuICAgIGlmIChhZGRPblZhbHVlICYmIEFycmF5LmlzQXJyYXkoYWRkT25WYWx1ZSkpIHtcclxuICAgICAgdGhpcy5hZGRPbiA9IGFkZE9uVmFsdWUuZmluZChpID0+IGkuUG9zaXRpb24gPT09IHRoaXMucG9zaXRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEljb25MaXN0KCkge1xyXG4gICAgLy8gdGhpcy5hZGRPbi5JY29uTGlzdCA9IFt7IEljb246IFwidXNlclwiLCBDbGljazogbnVsbCwgU3R5bGU6IFwiY29sb3I6Ymx1ZTtcIiwgVG9vbFRpcFRleHQ6IFwidGV4dFwiIH1dOyAvLyBGb3IgVGVzdGluZ1xyXG5cclxuICAgIGlmICh0aGlzLmFkZE9uLkljb25MaXN0KSB7XHJcbiAgICAgIHRoaXMuYWRkT24uSWNvbkxpc3QuZm9yRWFjaCgoaTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGkuVG9vbFRpcFRleHQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaS5Ub29sVGlwVGV4dCA9IFwiXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpLlRvb2xUaXBUZXh0LmluZGV4T2YoXCJncm91cC5cIikgIT09IC0xKSB7XHJcbiAgICAgICAgICBpLlRvb2xUaXBUZXh0ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGkuVG9vbFRpcFRleHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuJHRyYW5zbGF0ZVRleHQoaS5Ub29sVGlwVGV4dCwgeyBlbGVtZW50TmFtZTogdGhpcy5ncm91cC5maWVsZE5hbWUsIGdyb3VwOiB0aGlzLmdyb3VwIH0pLnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgICAvLyBEZWZhdWx0IHBvc2l0aW9uIHRvcC4gcmlnaHQgfCBib3R0b20gfCB0b3AgfCBsZWZ0XHJcbiAgICAgICAgaS5Qb3NpdGlvbiA9IGkuUG9zaXRpb24gfHwgXCJ0b3BcIjtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS4kdHJhbnNsYXRlSXRlbUxpc3QodGhpcy5hZGRPbi5JY29uTGlzdCwgXCJUb29sVGlwVGV4dFwiLCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwQnV0dG9uTGlzdCgpIHtcclxuICAgIC8vIHRoaXMuYWRkT24uQnV0dG9uTGlzdCA9IFt7IFRleHQ6ICd0ZXN0JywgSWNvbjogJ3VzZXInLCBTdHlsZTogJycsIENsaWNrOiBudWxsIH1dOyAgLy8gRm9yIFRlc3RpbmdcclxuXHJcbiAgICBpZiAodGhpcy5hZGRPbi5CdXR0b25MaXN0KSB7XHJcbiAgICAgIHRoaXMuYWRkT24uQnV0dG9uTGlzdC5mb3JFYWNoKGJ1dHRvbiA9PiB7XHJcbiAgICAgICAgYnV0dG9uLlZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmlzTnVsbFVuZGVmaW5lZEVtcHR5KGJ1dHRvbi5WaXNpYmxlKSA/ICd0cnVlJyA6IGJ1dHRvbi5WaXNpYmxlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdCh0aGlzLmFkZE9uLkJ1dHRvbkxpc3QsIFwiVGV4dFwiLCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwVGV4dExpc3QoKSB7XHJcbiAgICAvLyB0aGlzLmFkZE9uLlRleHRMaXN0ID0gW3sgVGV4dDogJ3Rlc3QnLCBTdHlsZTogJycsIFRvb2x0aXBUZXh0OiAndGVzdCcgfV07ICAvLyBGb3IgVGVzdGluZ1xyXG5cclxuICAgIGlmICh0aGlzLmFkZE9uLlRleHRMaXN0KSB7XHJcbiAgICAgIHRoaXMuYWRkT24uVGV4dExpc3QuZm9yRWFjaCgoaTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGkuVG9vbFRpcFRleHQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaS5Ub29sVGlwVGV4dCA9IFwiXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpLlRvb2xUaXBUZXh0LmluZGV4T2YoXCJncm91cC5cIikgIT09IC0xKSB7XHJcbiAgICAgICAgICBpLlRvb2xUaXBUZXh0ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGkuVG9vbFRpcFRleHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRGVmYXVsdCBwb3NpdGlvbiB0b3AuIHJpZ2h0IHwgYm90dG9tIHwgdG9wIHwgbGVmdFxyXG4gICAgICAgIGkuUG9zaXRpb24gPSBpLlBvc2l0aW9uIHx8IFwidG9wXCI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuJHRyYW5zbGF0ZUl0ZW1MaXN0KHRoaXMuYWRkT24uVGV4dExpc3QsIFwiVGV4dFwiLCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdCh0aGlzLmFkZE9uLlRleHRMaXN0LCBcIlRvb2xUaXBUZXh0XCIsIHsgZWxlbWVudE5hbWU6IHRoaXMuZ3JvdXAuZmllbGROYW1lLCBncm91cDogdGhpcy5ncm91cCB9KS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBbY2xhc3NdPVwiJ2FkZG9ucy1jb250YWluZXIgJyArIHBvc2l0aW9uXCIgKm5nSWY9XCJhZGRPblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJhZGRvbnMtaWNvblwiICpuZ0lmPVwiYWRkT24uSWNvbkxpc3RcIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWRkT24uSWNvbkxpc3RcIj5cclxuICAgICAgPGRpdiBrZW5kb1Rvb2x0aXAgY2xhc3M9XCJpY29uLWJ1dHRvblwiIHNob3dPbj1cImhvdmVyXCIgW3Rvb2x0aXBXaWR0aF09XCJpdGVtLldpZHRoXCIgW3Bvc2l0aW9uXT1cIml0ZW0uUG9zaXRpb25cIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiEhaXRlbSBcIiAoY2xpY2spPVwib25JY29uQ2xpY2soaXRlbS5DbGljaylcIiBbdGl0bGVdPVwiaXRlbS5Ub29sVGlwVGV4dFwiIFtzdHlsZV09XCJpdGVtLlN0eWxlXCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJpdGVtLkljb25cIj5cclxuICAgICAgICAgIDwvZmEtaWNvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJhZGRvbnMtdGV4dFwiICpuZ0lmPVwiYWRkT24uVGV4dExpc3RcIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYWRkT24uVGV4dExpc3RcIj5cclxuICAgICAgPGRpdiBrZW5kb1Rvb2x0aXAgY2xhc3M9XCJpY29uLWJ1dHRvblwiIHNob3dPbj1cImhvdmVyXCIgW3Rvb2x0aXBXaWR0aF09XCJpdGVtLldpZHRoXCIgW3Bvc2l0aW9uXT1cIml0ZW0uUG9zaXRpb25cIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cIiEhaXRlbSBcIiAoY2xpY2spPVwib25JY29uQ2xpY2soaXRlbS5DbGljaylcIiBbdGl0bGVdPVwiaXRlbS5Ub29sVGlwVGV4dFwiIFtzdHlsZV09XCJpdGVtLlN0eWxlXCI+XHJcbiAgICAgICAgICB7e2l0ZW0uVGV4dH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYWRkb25zLWJ1dHRvbnNcIiAqbmdJZj1cImFkZE9uLkJ1dHRvbkxpc3RcIj5cclxuICAgIDxpb24tYnV0dG9uICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYWRkT24uQnV0dG9uTGlzdDsgbGV0IGkgPSBidXR0b25cIiBbZmlsbF09XCJidXR0b24uZmlsbCB8fCAnb3V0bGluZSdcIlxyXG4gICAgICBbY29sb3JdPVwiYnV0dG9uLmNvbG9yIHx8ICdkYXJrJ1wiIFtzaXplXT1cImJ1dHRvbi5zaXplIHx8ICdzbWFsbCdcIiBzdHJvbmc9XCJmYWxzZVwiXHJcbiAgICAgIChjbGljayk9XCJvbkljb25DbGljayhidXR0b24uQ2xpY2spXCIgW2hpZGRlbl09XCIhYnV0dG9uLlZpc2libGVcIiBbZGlzYWJsZWRdPVwiZ3JvdXAuaXNUcmlnZ2VyZWQgfHwgYnV0dG9uLkRpc2FibGVkXCJcclxuICAgICAgW3N0eWxlXT1cImJ1dHRvbi5TdHlsZVwiPlxyXG4gICAgICA8ZmEtaWNvbiAqbmdJZj1cImJ1dHRvbi5JY29uXCIgW2ljb25dPVwiZ2V0Rm9udEF3ZXNvbWUoYnV0dG9uLkljb24pXCJcclxuICAgICAgICBbc3R5bGUucGFkZGluZy1yaWdodF09XCJidXR0b24uVGV4dCA/ICc1cHgnIDogJzBweCdcIj48L2ZhLWljb24+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaW9uLXRleHQtY2FwaXRhbGl6ZVwiPnt7IGJ1dHRvbi5UZXh0IH19PC9zcGFuPlxyXG4gICAgPC9pb24tYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL2VtYmVkLWNvbXBvbmVudHMvaW5wdXQtZmllbGQtYWRkb25zL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9lbWJlZC1jb21wb25lbnRzL2lucHV0LWZpZWxkLWFkZG9ucy9pbnB1dC1maWVsZC1hZGRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBb0QsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7OztBQVEzRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQUczRCxZQUFZLFdBQThCLEVBQVUsa0JBQXNDO1FBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQTVELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFBdUIsQ0FBQztJQUVsSCxRQUFRO0lBQ1IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVPLGFBQWE7UUFDbkIsbUhB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QUFDO1lBQzlJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3RKO0lBQ0gsQ0FBQzs7dUhBNUVVLHlCQUF5QjsyR0FBekIseUJBQXlCLDRKQ1Z0Qywwb0RBZ0NBOzRGRHRCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO3lJQUt6QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IElucHV0RmllbGRBZGRPbnMsIFRyYW5zbGF0aW9uU2VydmljZSwgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IElucHV0RmllbGRCYXNlIH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWlucHV0LWZpZWxkLWFkZG9uc1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWVsZEFkZE9uc0NvbXBvbmVudCBleHRlbmRzIElucHV0RmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBASW5wdXQoKSBwb3NpdGlvbjogJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdHRvbSc7IC8vIGRlZmF1bHQgdG9wXHJcbiAgQElucHV0KCkgYWRkT246IElucHV0RmllbGRBZGRPbnM7XHJcbiAgY29uc3RydWN0b3IoY29tcFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7IHN1cGVyKGNvbXBTZXJ2aWNlKSB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKHRoaXMuYWRkT24pIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb24gfHwgJ3RvcCc7XHJcbiAgICAgIHRoaXMuc2V0dXBJY29uTGlzdCgpO1xyXG4gICAgICB0aGlzLnNldHVwQnV0dG9uTGlzdCgpO1xyXG4gICAgICB0aGlzLnNldHVwVGV4dExpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBJY29uTGlzdCgpIHtcclxuICAgIC8vIHRoaXMuYWRkT24uSWNvbkxpc3QgPSBbeyBJY29uOiBcInVzZXJcIiwgQ2xpY2s6IG51bGwsIFN0eWxlOiBcImNvbG9yOmJsdWU7XCIsIFRvb2xUaXBUZXh0OiBcInRleHRcIiB9XTsgLy8gRm9yIFRlc3RpbmdcclxuXHJcbiAgICBpZiAodGhpcy5hZGRPbi5JY29uTGlzdCkge1xyXG4gICAgICB0aGlzLmFkZE9uLkljb25MaXN0ID0gdGhpcy5hZGRPbi5JY29uTGlzdC5maWx0ZXIoeCA9PiB4KTtcclxuICAgICAgdGhpcy5hZGRPbi5JY29uTGlzdC5mb3JFYWNoKChpOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaS5Ub29sVGlwVGV4dCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpLlRvb2xUaXBUZXh0ID0gXCJcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKGkuVG9vbFRpcFRleHQuaW5kZXhPZihcImdyb3VwLlwiKSAhPT0gLTEpIHtcclxuICAgICAgICAgIGkuVG9vbFRpcFRleHQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgaS5Ub29sVGlwVGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS4kdHJhbnNsYXRlVGV4dChpLlRvb2xUaXBUZXh0LCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIC8vIERlZmF1bHQgcG9zaXRpb24gdG9wLiByaWdodCB8IGJvdHRvbSB8IHRvcCB8IGxlZnRcclxuICAgICAgICBpLlBvc2l0aW9uID0gaS5Qb3NpdGlvbiB8fCBcInRvcFwiO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdCh0aGlzLmFkZE9uLkljb25MaXN0LCBcIlRvb2xUaXBUZXh0XCIsIHsgZWxlbWVudE5hbWU6IHRoaXMuZ3JvdXAuZmllbGROYW1lLCBncm91cDogdGhpcy5ncm91cCB9KS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBCdXR0b25MaXN0KCkge1xyXG4gICAgLy8gdGhpcy5hZGRPbi5CdXR0b25MaXN0ID0gW3sgVGV4dDogJ3Rlc3QnLCBJY29uOiAndXNlcicsIFN0eWxlOiAnJywgQ2xpY2s6IG51bGwgfV07ICAvLyBGb3IgVGVzdGluZ1xyXG5cclxuICAgIGlmICh0aGlzLmFkZE9uLkJ1dHRvbkxpc3QpIHtcclxuICAgICAgdGhpcy5hZGRPbi5CdXR0b25MaXN0ID0gdGhpcy5hZGRPbi5CdXR0b25MaXN0LmZpbHRlcih4ID0+IHgpO1xyXG4gICAgICB0aGlzLmFkZE9uLkJ1dHRvbkxpc3QuZm9yRWFjaChidXR0b24gPT4ge1xyXG4gICAgICAgIGNvbnN0IGlzVXNlQ3VzdG9tQ2xhc3MgPSBidXR0b24uQ29sb3IgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgICAgYnV0dG9uWydjb2xvciddID0gaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvbi5Db2xvciB8fCAncHJpbWFyeScpO1xyXG4gICAgICAgIGJ1dHRvblsnZmlsbCddID0gaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvbi5GaWxsIHx8ICdzb2xpZCcpO1xyXG4gICAgICAgIGJ1dHRvblsnY2xhc3MnXSA9IGlzVXNlQ3VzdG9tQ2xhc3MgPyBgJHtidXR0b24uQ2xhc3N9IHVzZUN1c3RvbUNsYXNzYCA6IGJ1dHRvbi5DbGFzcztcclxuXHJcbiAgICAgICAgYnV0dG9uLlZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmlzTnVsbFVuZGVmaW5lZEVtcHR5KGJ1dHRvbi5WaXNpYmxlKSA/ICd0cnVlJyA6IGJ1dHRvbi5WaXNpYmxlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdCh0aGlzLmFkZE9uLkJ1dHRvbkxpc3QsIFwiVGV4dFwiLCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwVGV4dExpc3QoKSB7XHJcbiAgICAvLyB0aGlzLmFkZE9uLlRleHRMaXN0ID0gW3sgVGV4dDogJ3Rlc3QnLCBTdHlsZTogJycsIFRvb2x0aXBUZXh0OiAndGVzdCcgfV07ICAvLyBGb3IgVGVzdGluZ1xyXG5cclxuICAgIGlmICh0aGlzLmFkZE9uLlRleHRMaXN0KSB7XHJcbiAgICAgIHRoaXMuYWRkT24uVGV4dExpc3QgPSB0aGlzLmFkZE9uLlRleHRMaXN0LmZpbHRlcih4ID0+IHgpO1xyXG4gICAgICB0aGlzLmFkZE9uLlRleHRMaXN0LmZvckVhY2goKGk6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpLlRvb2xUaXBUZXh0ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGkuVG9vbFRpcFRleHQgPSBcIlwiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaS5Ub29sVGlwVGV4dC5pbmRleE9mKFwiZ3JvdXAuXCIpICE9PSAtMSkge1xyXG4gICAgICAgICAgaS5Ub29sVGlwVGV4dCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBpLlRvb2xUaXBUZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERlZmF1bHQgcG9zaXRpb24gdG9wLiByaWdodCB8IGJvdHRvbSB8IHRvcCB8IGxlZnRcclxuICAgICAgICBpLlBvc2l0aW9uID0gaS5Qb3NpdGlvbiB8fCBcInRvcFwiO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdCh0aGlzLmFkZE9uLlRleHRMaXN0LCBcIlRleHRcIiwgeyBlbGVtZW50TmFtZTogdGhpcy5ncm91cC5maWVsZE5hbWUsIGdyb3VwOiB0aGlzLmdyb3VwIH0pLnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS4kdHJhbnNsYXRlSXRlbUxpc3QodGhpcy5hZGRPbi5UZXh0TGlzdCwgXCJUb29sVGlwVGV4dFwiLCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2NsYXNzXT1cIidhZGRvbnMtY29udGFpbmVyICcgKyBwb3NpdGlvblwiICpuZ0lmPVwiYWRkT25cIj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkb25zLWljb25cIiAqbmdJZj1cImFkZE9uLkljb25MaXN0XCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFkZE9uLkljb25MaXN0XCI+XHJcbiAgICAgIDxkaXYga2VuZG9Ub29sdGlwIGNsYXNzPVwiaWNvbi1idXR0b25cIiBzaG93T249XCJob3ZlclwiIFt0b29sdGlwV2lkdGhdPVwiaXRlbS5XaWR0aFwiIFtwb3NpdGlvbl09XCJpdGVtLlBvc2l0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGl0ZW0uQ2xpY2spXCIgW3RpdGxlXT1cIml0ZW0uVG9vbFRpcFRleHRcIiBbc3R5bGVdPVwiaXRlbS5TdHlsZVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXRlbS5JY29uXCI+XHJcbiAgICAgICAgICA8L2ZhLWljb24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYWRkb25zLXRleHRcIiAqbmdJZj1cImFkZE9uLlRleHRMaXN0XCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFkZE9uLlRleHRMaXN0XCI+XHJcbiAgICAgIDxkaXYga2VuZG9Ub29sdGlwIGNsYXNzPVwiaWNvbi1idXR0b25cIiBzaG93T249XCJob3ZlclwiIFt0b29sdGlwV2lkdGhdPVwiaXRlbS5XaWR0aFwiIFtwb3NpdGlvbl09XCJpdGVtLlBvc2l0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGl0ZW0uQ2xpY2spXCIgW3RpdGxlXT1cIml0ZW0uVG9vbFRpcFRleHRcIiBbc3R5bGVdPVwiaXRlbS5TdHlsZVwiPlxyXG4gICAgICAgICAge3tpdGVtLlRleHR9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImFkZG9ucy1idXR0b25zXCIgKm5nSWY9XCJhZGRPbi5CdXR0b25MaXN0XCI+XHJcbiAgICA8aW9uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFkZE9uLkJ1dHRvbkxpc3Q7IGxldCBpID0gYnV0dG9uXCIgW2ZpbGxdPVwiYnV0dG9uLmZpbGxcIiBbbmdDbGFzc109XCJidXR0b24uY2xhc3NcIlxyXG4gICAgICBbY29sb3JdPVwiYnV0dG9uLmNvbG9yXCIgW3NpemVdPVwiYnV0dG9uLlNpemUgfHwgJ3NtYWxsJ1wiIHN0cm9uZz1cImZhbHNlXCIgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGJ1dHRvbi5DbGljaylcIlxyXG4gICAgICBbaGlkZGVuXT1cIiFidXR0b24uVmlzaWJsZVwiIFtkaXNhYmxlZF09XCJncm91cC5pc1RyaWdnZXJlZCB8fCBidXR0b24uRGlzYWJsZWRcIiBbc3R5bGVdPVwiYnV0dG9uLlN0eWxlXCI+XHJcbiAgICAgIDxmYS1pY29uICpuZ0lmPVwiYnV0dG9uLkljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShidXR0b24uSWNvbilcIlxyXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cImJ1dHRvbi5UZXh0ID8gJzVweCcgOiAnMHB4J1wiPjwvZmEtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+e3sgYnV0dG9uLlRleHQgfX08L3NwYW4+XHJcbiAgICA8L2lvbi1idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=