@acorex/components 3.0.45 → 3.0.50

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 (45) hide show
  1. package/acorex-components.metadata.json +1 -1
  2. package/bundles/acorex-components.umd.js +164 -76
  3. package/bundles/acorex-components.umd.js.map +1 -1
  4. package/bundles/acorex-components.umd.min.js +1 -1
  5. package/bundles/acorex-components.umd.min.js.map +1 -1
  6. package/esm2015/lib/calendar/calendar-box/calendar-box.component.js +6 -6
  7. package/esm2015/lib/property-editor/editors/color-editor/color.editor.js +2 -2
  8. package/esm2015/lib/property-editor/editors/column-editor/column.editor.js +2 -2
  9. package/esm2015/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.js +2 -2
  10. package/esm2015/lib/property-editor/editors/date-editor/date.editor.js +2 -2
  11. package/esm2015/lib/property-editor/editors/number-editor/number.editor.js +2 -2
  12. package/esm2015/lib/property-editor/editors/range-editor/range.editor.js +2 -2
  13. package/esm2015/lib/property-editor/editors/selectbox-editor/selectbox.editor.js +22 -12
  14. package/esm2015/lib/property-editor/editors/switch-editor/number.editor.js +2 -2
  15. package/esm2015/lib/property-editor/editors/text-editor/text.editor.js +2 -2
  16. package/esm2015/lib/property-editor/editors/time-editor/time.editor.js +2 -2
  17. package/esm2015/lib/property-editor/property-editor-renderer.directive.js +83 -37
  18. package/esm2015/lib/property-editor/property-editor.class.js +18 -4
  19. package/esm2015/lib/selectbox/selectbox.component.js +6 -3
  20. package/esm2015/lib/selection-list/selection-list.component.js +6 -7
  21. package/esm2015/lib/tab-strip/tab-strip.component.js +11 -9
  22. package/esm5/lib/calendar/calendar-box/calendar-box.component.js +6 -6
  23. package/esm5/lib/property-editor/editors/color-editor/color.editor.js +2 -2
  24. package/esm5/lib/property-editor/editors/column-editor/column.editor.js +2 -2
  25. package/esm5/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.js +2 -2
  26. package/esm5/lib/property-editor/editors/date-editor/date.editor.js +2 -2
  27. package/esm5/lib/property-editor/editors/number-editor/number.editor.js +2 -2
  28. package/esm5/lib/property-editor/editors/range-editor/range.editor.js +2 -2
  29. package/esm5/lib/property-editor/editors/selectbox-editor/selectbox.editor.js +26 -12
  30. package/esm5/lib/property-editor/editors/switch-editor/number.editor.js +2 -2
  31. package/esm5/lib/property-editor/editors/text-editor/text.editor.js +2 -2
  32. package/esm5/lib/property-editor/editors/time-editor/time.editor.js +2 -2
  33. package/esm5/lib/property-editor/property-editor-renderer.directive.js +89 -39
  34. package/esm5/lib/property-editor/property-editor.class.js +24 -4
  35. package/esm5/lib/selectbox/selectbox.component.js +6 -3
  36. package/esm5/lib/selection-list/selection-list.component.js +3 -4
  37. package/esm5/lib/tab-strip/tab-strip.component.js +11 -9
  38. package/fesm2015/acorex-components.js +152 -78
  39. package/fesm2015/acorex-components.js.map +1 -1
  40. package/fesm5/acorex-components.js +165 -77
  41. package/fesm5/acorex-components.js.map +1 -1
  42. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +7 -4
  43. package/lib/property-editor/property-editor-renderer.directive.d.ts +5 -3
  44. package/lib/property-editor/property-editor.class.d.ts +4 -2
  45. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata, __extends, __spread, __param, __assign, __awaiter, __generator, __asyncValues } from 'tslib';
2
2
  import { Input, Component, EventEmitter, ContentChildren, QueryList, Output, ViewChild, ContentChild, ElementRef, ɵɵdefineInjectable, ɵɵinject, Injectable, ComponentFactoryResolver, Injector, NgZone, Inject, RendererFactory2, INJECTOR, TemplateRef, ApplicationRef, ChangeDetectorRef, HostListener, ViewEncapsulation, NgModule, ChangeDetectionStrategy, Attribute, Directive, ViewContainerRef, Renderer2, ViewChildren } from '@angular/core';
3
- import { AXTranslator, AXHtmlUtil, AXRenderService, AXConfig, AXDateTime, AXDateTimeRange, AXCoreModule, AXMenuItem, AXTranslatorModule, AXObjectUtil, AXScrollModule, getPropByPath, AXColorUtil } from '@acorex/core';
3
+ import { AXTranslator, AXHtmlUtil, AXRenderService, AXConfig, AXDateTime, AXDateTimeRange, AXCoreModule, AXMenuItem, AXTranslatorModule, AXObjectUtil, AXScrollModule, setPropByPath, AXEventService, AXColorUtil } from '@acorex/core';
4
4
  import { OverlayContainer, ScrollStrategyOptions, OverlayPositionBuilder, OverlayKeyboardDispatcher, Overlay, OverlayModule } from '@angular/cdk/overlay';
5
5
  import { TemplatePortal, ComponentPortal, CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';
6
6
  import { merge, Subject, Observable } from 'rxjs';
@@ -1171,7 +1171,7 @@ var AXCalendarBoxComponent = /** @class */ (function () {
1171
1171
  configurable: true
1172
1172
  });
1173
1173
  AXCalendarBoxComponent.prototype.findDay = function (date) {
1174
- if (this.dayStyle.find(function (c) { return c.date == date.toISOString().split('T')[0]; })) {
1174
+ if (this.dayStyle.find(function (c) { return c.date.split('T')[0] == date.toISOString().split('T')[0]; })) {
1175
1175
  return true;
1176
1176
  }
1177
1177
  else {
@@ -1179,16 +1179,16 @@ var AXCalendarBoxComponent = /** @class */ (function () {
1179
1179
  }
1180
1180
  };
1181
1181
  AXCalendarBoxComponent.prototype.getStyle = function (date) {
1182
- if (this.dayStyle.find(function (c) { return c.date == date.toISOString().split('T')[0]; })) {
1183
- return this.dayStyle.find(function (c) { return c.date == date.toISOString().split('T')[0]; }).style;
1182
+ if (this.dayStyle.find(function (c) { return c.date.split('T')[0] == date.toISOString().split('T')[0]; })) {
1183
+ return this.dayStyle.find(function (c) { return c.date.split('T')[0] == date.toISOString().split('T')[0]; }).style;
1184
1184
  }
1185
1185
  else {
1186
1186
  return '';
1187
1187
  }
1188
1188
  };
1189
1189
  AXCalendarBoxComponent.prototype.getTitle = function (date) {
1190
- if (this.dayStyle.find(function (c) { return c.date == date.toISOString().split('T')[0]; })) {
1191
- return this.dayStyle.find(function (c) { return c.date == date.toISOString().split('T')[0]; }).text;
1190
+ if (this.dayStyle.find(function (c) { return c.date.split('T')[0] == date.toISOString().split('T')[0]; })) {
1191
+ return this.dayStyle.find(function (c) { return c.date.split('T')[0] == date.toISOString().split('T')[0]; }).text;
1192
1192
  }
1193
1193
  else {
1194
1194
  return '';
@@ -4019,8 +4019,7 @@ var AXSelectionListComponent = /** @class */ (function (_super) {
4019
4019
  }
4020
4020
  }
4021
4021
  };
4022
- AXSelectionListComponent.prototype.focus = function () {
4023
- };
4022
+ AXSelectionListComponent.prototype.focus = function () { };
4024
4023
  AXSelectionListComponent.prototype.onvalueChanged = function (e) {
4025
4024
  if (!this.disabled) {
4026
4025
  this.selectedItemsChange.emit([e]);
@@ -4086,7 +4085,7 @@ var AXSelectionListComponent = /** @class */ (function (_super) {
4086
4085
  AXSelectionListComponent = __decorate([
4087
4086
  Component({
4088
4087
  selector: 'ax-selection-list',
4089
- template: "<ng-container *ngIf=\" mode == 'multiple'; then checkboxList; else radioButtonList\"></ng-container>\r\n<ng-template #checkboxList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <ax-check-box label=\"{{item[textField]}}\" *ngFor=\"let item of items\" [disabled]=\"disabled\" [readonly]=\"disabled\"\r\n [value]=\"selectedValues.indexOf(item[valueField])>-1\"\r\n (onValueChanged)=\"onCheckValueChange(item[valueField],$event.value)\">\r\n </ax-check-box>\r\n </div>\r\n</ng-template>\r\n<ng-template #radioButtonList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <label class=\"ax radio\" for=\"{{uid}}\" [class.disabled]=\"disabled\" [class.readonly]=\"disabled\"\r\n *ngFor=\"let item of items\" (click)=\"onvalueChanged(item)\">\r\n {{ item[textField] }}\r\n <input type=\"radio\" (change)=\"onCheckValueChange(item[valueField],true)\" [value]=\"item[valueField]\"\r\n [checked]=\"selectedValues==item[valueField]\" [name]=\"uid\" [disabled]=\"disabled\" [readonly]=\"readonly\" />\r\n <span class=\"checkmark\"></span>\r\n </label>\r\n </div>\r\n</ng-template>",
4088
+ template: "<ng-container *ngIf=\" mode == 'multiple'; then checkboxList; else radioButtonList\"></ng-container>\r\n<ng-template #checkboxList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <ax-check-box label=\"{{item[textField]}}\" *ngFor=\"let item of items\" [disabled]=\"item.disable || disabled\"\r\n [readonly]=\"item.readonly || readonly\" [value]=\"selectedValues.indexOf(item[valueField])>-1\"\r\n (onValueChanged)=\"onCheckValueChange(item[valueField],$event.value)\">\r\n </ax-check-box>\r\n </div>\r\n</ng-template>\r\n<ng-template #radioButtonList>\r\n <div class=\"ax selection-list {{size}}\" [ngClass]=\"direction\">\r\n <label class=\"ax radio\" for=\"{{uid}}\" [class.disabled]=\"disabled\" [class.readonly]=\"disabled\"\r\n *ngFor=\"let item of items\" (click)=\"onvalueChanged(item)\">\r\n {{ item[textField] }}\r\n <input type=\"radio\" (change)=\"onCheckValueChange(item[valueField],true)\" [value]=\"item[valueField]\"\r\n [checked]=\"selectedValues==item[valueField]\" [name]=\"uid\" [disabled]=\"item.disable || disabled\"\r\n [readonly]=\"item.readonly || readonly\" />\r\n <span class=\"checkmark\"></span>\r\n </label>\r\n </div>\r\n</ng-template>",
4090
4089
  encapsulation: ViewEncapsulation.None,
4091
4090
  changeDetection: ChangeDetectionStrategy.OnPush
4092
4091
  }),
@@ -8514,7 +8513,10 @@ var AXSelectBoxComponent = /** @class */ (function (_super) {
8514
8513
  v = [];
8515
8514
  }
8516
8515
  // const old = this.selectedItems;
8517
- if (JSON.stringify(old) !== JSON.stringify(v)) {
8516
+ var f = differenceBy(old, v, this.valueField);
8517
+ var s = differenceBy(v, old, this.valueField);
8518
+ // if (JSON.stringify(old) !== JSON.stringify(v)) {
8519
+ if (f.length != 0 || s.length != 0) {
8518
8520
  this._selectedItems = this.mode == 'single' ? v.slice(0, 1) : __spread(new Set(v)); //[...new Set(v[0])] : [...new Set(v)];
8519
8521
  this._selectedItems.forEach(function (c) { return (c.selected = true); });
8520
8522
  this.selectedItemsChange.emit(this._selectedItems);
@@ -9421,7 +9423,7 @@ var AXSelectBoxComponent = /** @class */ (function (_super) {
9421
9423
  AXSelectBoxComponent = AXSelectBoxComponent_1 = __decorate([
9422
9424
  Component({
9423
9425
  selector: 'ax-select-box',
9424
- template: "<ax-drop-down [size]=\"size\" [rtl]=\"rtl\" [showDropDownButton]=\"showDropDownButton\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" #d (dropdownToggle)=\"dropdownToggleSelecBox($event)\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\" [horizontalScroll]=\"40\">\r\n <div class=\"chips\" [class.chips-blank]=\"mode === 'single'\" [title]=\"item[textField]\"\r\n *ngFor=\"let item of selectedItems\">\r\n <span class=\"chips-text\">\r\n {{item[textField]}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\"\r\n *ngIf=\"(readonly!=true || itemRemove ==true)&& disabled!=true && (allowNull==true || (selectedItems.length > 1))\">\r\n <i class=\"far fa-times-circle close\"></i>\r\n </span>\r\n </div>\r\n <div class=\"search-wrapper\" (click)=\"onTextBoxClick($event)\">\r\n <ax-text-box #textBoxSelectBox [textAlign]=\"textAlign\"\r\n [placeholder]=\"selectedItems.length == 0 ? placeholder : ''\" [readonly]=\"readonly\"\r\n [disabled]=\"disabled\" (onkey)=\"handleKeyEvent($event)\" [size]=\"size\"\r\n (onFocus)=\"onFocusTextBox($event)\">\r\n </ax-text-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n\r\n <ng-container panel>\r\n <div *ngIf=\"allowSearch\" class=\"search-wrapper\" style=\"padding: 0.7em;\">\r\n <ax-search-box #serchBox [(value)]=\"text\" (onkey)=\"handleKeyEventSearch($event)\"\r\n (textChanged)=\"textChanged($event)\" (onButtonClick)=\"textChanged($event)\">\r\n </ax-search-box>\r\n </div>\r\n <div class=\"ax list-container\">\r\n <div #listContainer style=\"max-height: 300px;overflow-y: auto;width: 100%;\" (scroll)=\"scrolled($event)\">\r\n <ng-container *ngIf=\"getItems().length>0; then thenTemplate; else elseTemplate\"></ng-container>\r\n <ng-template #thenTemplate>\r\n <div class=\"list-item\" *ngFor=\"let item of getItems();let i = index\"\r\n [class.focused]=\"i==currentfocusedIndex\" [class.selected]=\"isItemSelected(item)\"\r\n (click)=\"handleItemClick($event,item)\">\r\n <div style=\"display: flex;\">\r\n <ax-check-box *ngIf=\"showCheckBox\" [size]=\"size\" [value]=\"isItemSelected(item)\"\r\n [disabled]=\"!allowNull && selectedItems.length === 1 && isItemSelected(item)\">\r\n </ax-check-box>\r\n <ng-container *ngIf=\"rowTemplate; else elseTemplate\">\r\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\r\n [title]=\"item[textField]\"\r\n [ngStyle]=\"(showCheckBox) ? {'padding-inline-start': '0.5rem'}:''\">\r\n <ng-container *ngTemplateOutlet=\"rowTemplate; context:{ $implicit: item }\">\r\n </ng-container>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\r\n [title]=\"item[textField]\"\r\n [ngStyle]=\"(showCheckBox) ? {'padding-inline-start': '0.5rem'}:''\">\r\n {{ item[textField] }}\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </ng-template>\r\n <div *ngIf=\"showLoading\" class=\"ax-pad-sm\" style=\"text-align: center;\">\r\n <i class=\"far fa-spinner-third fa-pulse fa-2x\" style=\"color: var(--ax-primary-color);\"></i>\r\n\r\n </div>\r\n <!-- <ax-loading-indicator ></ax-loading-indicator> -->\r\n <ng-template #elseTemplate>\r\n <ng-container *ngIf=\"showLoading == true; then searchTemplate else noDataTemplate\"></ng-container>\r\n <ng-template #searchTemplate>\r\n <div class=\"list-item\">\r\n {{'common.searching' | trans}}\r\n </div>\r\n </ng-template>\r\n <ng-template #noDataTemplate>\r\n <div class=\"list-item\">\r\n {{'common.noDataFound' | trans}}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n</ax-drop-down>",
9426
+ template: "<ax-drop-down [size]=\"size\" [rtl]=\"rtl\" [showDropDownButton]=\"showDropDownButton\" [disabled]=\"disabled\"\r\n [readonly]=\"readonly\" #d (dropdownToggle)=\"dropdownToggleSelecBox($event)\">\r\n <ng-container start>\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </ng-container>\r\n <ng-container header>\r\n <div class=\"ax chips-container\" [horizontalScroll]=\"40\">\r\n <div class=\"chips\" [class.chips-blank]=\"mode === 'single'\" [title]=\"item[textField]\"\r\n *ngFor=\"let item of selectedItems\">\r\n <span class=\"chips-text\">\r\n {{item[textField]}}\r\n </span>\r\n <span class=\"close-icon\" (click)=\"handleItemRemoveClick(item)\"\r\n *ngIf=\"(readonly!=true || itemRemove ==true)&& disabled!=true && (allowNull==true || (selectedItems.length > 1))\">\r\n <i class=\"far fa-times-circle close\"></i>\r\n </span>\r\n </div>\r\n <div class=\"search-wrapper\" (click)=\"onTextBoxClick($event)\">\r\n <ax-text-box #textBoxSelectBox [textAlign]=\"textAlign\"\r\n [placeholder]=\"selectedItems.length == 0 ? placeholder : ''\" [readonly]=\"readonly\"\r\n [disabled]=\"disabled\" (onkey)=\"handleKeyEvent($event)\" [size]=\"size\"\r\n (onFocus)=\"onFocusTextBox($event)\">\r\n </ax-text-box>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container end>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </ng-container>\r\n\r\n <ng-container panel>\r\n <div *ngIf=\"allowSearch\" class=\"search-wrapper\" style=\"padding: 0.7em;\">\r\n <ax-search-box #serchBox [(value)]=\"text\" (onkey)=\"handleKeyEventSearch($event)\"\r\n (textChanged)=\"textChanged($event)\" (onButtonClick)=\"textChanged($event)\">\r\n </ax-search-box>\r\n </div>\r\n <div class=\"ax list-container\">\r\n <div #listContainer style=\"max-height: 300px;overflow-y: auto;width: 100%;\" (scroll)=\"scrolled($event)\">\r\n <ng-container *ngIf=\"getItems().length>0; then thenTemplate; else elseTemplate\"></ng-container>\r\n <ng-template #thenTemplate>\r\n <div class=\"list-item\" *ngFor=\"let item of getItems();let i = index\"\r\n [class.focused]=\"i==currentfocusedIndex\" [class.selected]=\"isItemSelected(item)\"\r\n (click)=\"handleItemClick($event,item)\">\r\n <div style=\"display: flex;\">\r\n <ax-check-box *ngIf=\"showCheckBox\" [size]=\"size\" [value]=\"isItemSelected(item)\"\r\n [disabled]=\"!allowNull && selectedItems.length === 1 && isItemSelected(item)\"\r\n (onClick)=\"handleItemClick($event,item)\">\r\n </ax-check-box>\r\n <ng-container *ngIf=\"rowTemplate; else elseTemplate\">\r\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\r\n [title]=\"item[textField]\"\r\n [ngStyle]=\"(showCheckBox) ? {'padding-inline-start': '0.5rem'}:''\">\r\n <ng-container *ngTemplateOutlet=\"rowTemplate; context:{ $implicit: item }\">\r\n </ng-container>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <div style=\"white-space: nowrap;text-overflow: ellipsis;overflow: hidden;\"\r\n [title]=\"item[textField]\"\r\n [ngStyle]=\"(showCheckBox) ? {'padding-inline-start': '0.5rem'}:''\">\r\n {{ item[textField] }}\r\n </div>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </ng-template>\r\n <div *ngIf=\"showLoading\" class=\"ax-pad-sm\" style=\"text-align: center;\">\r\n <i class=\"far fa-spinner-third fa-pulse fa-2x\" style=\"color: var(--ax-primary-color);\"></i>\r\n\r\n </div>\r\n <!-- <ax-loading-indicator ></ax-loading-indicator> -->\r\n <ng-template #elseTemplate>\r\n <ng-container *ngIf=\"showLoading == true; then searchTemplate else noDataTemplate\"></ng-container>\r\n <ng-template #searchTemplate>\r\n <div class=\"list-item\">\r\n {{'common.searching' | trans}}\r\n </div>\r\n </ng-template>\r\n <ng-template #noDataTemplate>\r\n <div class=\"list-item\">\r\n {{'common.noDataFound' | trans}}\r\n </div>\r\n </ng-template>\r\n\r\n </ng-template>\r\n\r\n </div>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n</ax-drop-down>",
9425
9427
  encapsulation: ViewEncapsulation.None,
9426
9428
  changeDetection: ChangeDetectionStrategy.OnPush,
9427
9429
  host: { style: 'width: 100%' },
@@ -11637,13 +11639,15 @@ var AXTabStripComponent = /** @class */ (function () {
11637
11639
  }
11638
11640
  AXTabStripComponent.prototype.ngOnInit = function () { };
11639
11641
  AXTabStripComponent.prototype.handleClick = function (i) {
11640
- this.items.forEach(function (c) { return (c.active = false); });
11641
- i.active = true;
11642
- this.onTabChanged.emit({
11643
- component: this,
11644
- seledtedTab: i,
11645
- htmlElement: this.ref.nativeElement
11646
- });
11642
+ if (!i.disable) {
11643
+ this.items.forEach(function (c) { return (c.active = false); });
11644
+ i.active = true;
11645
+ this.onTabChanged.emit({
11646
+ component: this,
11647
+ seledtedTab: i,
11648
+ htmlElement: this.ref.nativeElement
11649
+ });
11650
+ }
11647
11651
  };
11648
11652
  AXTabStripComponent.ctorParameters = function () { return [
11649
11653
  { type: ElementRef }
@@ -11659,7 +11663,7 @@ var AXTabStripComponent = /** @class */ (function () {
11659
11663
  AXTabStripComponent = __decorate([
11660
11664
  Component({
11661
11665
  selector: 'ax-tab-strip',
11662
- template: "<ul class=\"tab-strip-container\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li [class.active]=\"item.active\" (click)=\"handleClick(item)\">{{item.text}}</li>\r\n </ng-container>\r\n</ul>"
11666
+ template: "<ul class=\"tab-strip-container\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <li *ngIf=\"!!item.visible || item.visible == undefined\" [class.active]=\"item.active\"\r\n [class.disabled]=\"item.disable\" (click)=\"handleClick(item)\">{{item.text}}</li>\r\n </ng-container>\r\n</ul>"
11663
11667
  }),
11664
11668
  __metadata("design:paramtypes", [ElementRef])
11665
11669
  ], AXTabStripComponent);
@@ -14764,12 +14768,25 @@ var AXAccordionModule = /** @class */ (function () {
14764
14768
 
14765
14769
  var AXProperyEditorComponent = /** @class */ (function () {
14766
14770
  function AXProperyEditorComponent(cdr) {
14771
+ var _this = this;
14767
14772
  this.cdr = cdr;
14768
14773
  this.readonly = false;
14769
- this.initiated = false;
14774
+ this._initiated = false;
14775
+ this._valueBound = false;
14770
14776
  this.validatableComponentRegistered = new Subject();
14771
14777
  this.valueChange = new EventEmitter();
14778
+ this.onRenderCompleted = new EventEmitter();
14779
+ this.onRenderCompleted.subscribe(function () {
14780
+ _this._initiated = true;
14781
+ });
14772
14782
  }
14783
+ Object.defineProperty(AXProperyEditorComponent.prototype, "initiated", {
14784
+ get: function () {
14785
+ return this._initiated && this._valueBound;
14786
+ },
14787
+ enumerable: true,
14788
+ configurable: true
14789
+ });
14773
14790
  AXProperyEditorComponent.prototype.registerForValidationForm = function (component) {
14774
14791
  this.validatableComponentRegistered.next(component);
14775
14792
  };
@@ -14778,10 +14795,15 @@ var AXProperyEditorComponent = /** @class */ (function () {
14778
14795
  return this._value;
14779
14796
  },
14780
14797
  set: function (v) {
14798
+ var _this = this;
14781
14799
  if (v !== this._value) {
14782
14800
  this._value = v;
14783
14801
  this.valueChange.emit(v);
14784
14802
  this.cdr.detectChanges();
14803
+ //TODO: find better solution
14804
+ setTimeout(function () {
14805
+ _this._valueBound = true;
14806
+ }, 100);
14785
14807
  }
14786
14808
  },
14787
14809
  enumerable: true,
@@ -14790,12 +14812,14 @@ var AXProperyEditorComponent = /** @class */ (function () {
14790
14812
  AXProperyEditorComponent.prototype.handleValueChange = function (v) {
14791
14813
  this.value = v;
14792
14814
  };
14793
- AXProperyEditorComponent.prototype.initiat = function () {
14794
- };
14795
14815
  __decorate([
14796
14816
  Output(),
14797
14817
  __metadata("design:type", EventEmitter)
14798
14818
  ], AXProperyEditorComponent.prototype, "valueChange", void 0);
14819
+ __decorate([
14820
+ Output(),
14821
+ __metadata("design:type", EventEmitter)
14822
+ ], AXProperyEditorComponent.prototype, "onRenderCompleted", void 0);
14799
14823
  __decorate([
14800
14824
  Input(),
14801
14825
  __metadata("design:type", Object),
@@ -14858,11 +14882,12 @@ function propertyEditor(options) {
14858
14882
  }
14859
14883
 
14860
14884
  var AXPropertyEditorRendererDirective = /** @class */ (function () {
14861
- function AXPropertyEditorRendererDirective(target, componentFactoryResolver, renderService) {
14885
+ function AXPropertyEditorRendererDirective(target, componentFactoryResolver, renderService, eventService) {
14862
14886
  this.target = target;
14863
14887
  this.componentFactoryResolver = componentFactoryResolver;
14864
14888
  this.renderService = renderService;
14865
- this.readonly = false;
14889
+ this.eventService = eventService;
14890
+ this._context = {};
14866
14891
  this.onValueChange = new EventEmitter();
14867
14892
  }
14868
14893
  Object.defineProperty(AXPropertyEditorRendererDirective.prototype, "context", {
@@ -14871,9 +14896,6 @@ var AXPropertyEditorRendererDirective = /** @class */ (function () {
14871
14896
  },
14872
14897
  set: function (v) {
14873
14898
  this._context = v;
14874
- if (v && this.instance) {
14875
- this.assignProps();
14876
- }
14877
14899
  },
14878
14900
  enumerable: true,
14879
14901
  configurable: true
@@ -14892,60 +14914,110 @@ var AXPropertyEditorRendererDirective = /** @class */ (function () {
14892
14914
  var cmpRef = _this.target.createComponent(factory);
14893
14915
  _this.instance = cmpRef.instance;
14894
14916
  _this.subscription = _this.instance.valueChange.subscribe(function (value) {
14895
- if (_this.instance.initiated === true) {
14896
- _this.property.value = value;
14897
- _this.onValueChange.emit(_this.property);
14917
+ var _a, _b;
14918
+ _this.property.value = value;
14919
+ _this.onValueChange.emit(_this.property);
14920
+ if ((_b = (_a = _this.property) === null || _a === void 0 ? void 0 : _a.property) === null || _b === void 0 ? void 0 : _b.name) {
14921
+ setTimeout(function () {
14922
+ _this.eventService.broadcast("props-" + _this.groupId + "-" + _this.property.property.name, _this.property);
14923
+ }, 0);
14898
14924
  }
14899
14925
  });
14900
- //
14926
+ _this.watchChanges();
14927
+ _this.assignProps();
14928
+ _this.instance.value = _this.property.value;
14929
+ // this.instance.onRenderCompleted.subscribe(() => {
14930
+ // });
14901
14931
  if (_this.validationForm) {
14902
14932
  _this.instance.validatableComponentRegistered.subscribe(function (v) {
14903
14933
  _this.validationForm.addWidget(v);
14904
14934
  });
14905
14935
  }
14906
- //
14907
- //setTimeout(() => {
14908
- _this.instance.readonly = _this.readonly;
14909
- _this.assignProps();
14910
- _this.instance.value = _this.property.value;
14911
- _this.instance.initiat();
14912
- cmpRef.changeDetectorRef.markForCheck();
14913
- //});
14914
14936
  }
14915
14937
  });
14916
14938
  };
14917
- AXPropertyEditorRendererDirective.prototype.assignProps = function () {
14939
+ AXPropertyEditorRendererDirective.prototype.watchChanges = function () {
14918
14940
  var _this = this;
14941
+ var _a, _b;
14942
+ var varsRegx = /((\$\{[a-zA-Z_0-9]+\})+)/gm;
14943
+ var varNameRegx = /[a-zA-Z_0-9]+/gm;
14919
14944
  var options = this.property.property.editorOptions;
14920
14945
  if (!options) {
14921
14946
  return;
14922
14947
  }
14923
14948
  var _loop_1 = function (p) {
14949
+ if (options.hasOwnProperty(p)) {
14950
+ var opt_1 = options[p];
14951
+ var vars_1 = typeof opt_1 === 'string' ? (_a = opt_1) === null || _a === void 0 ? void 0 : _a.match(varsRegx) : [];
14952
+ // bind the props
14953
+ if ((_b = vars_1) === null || _b === void 0 ? void 0 : _b.length) {
14954
+ vars_1.forEach(function (v) {
14955
+ var _a;
14956
+ var path = ((_a = v.match(varNameRegx)) === null || _a === void 0 ? void 0 : _a.length) ? v.match(varNameRegx)[0] : null;
14957
+ if (path) {
14958
+ _this.eventService.on("props-" + _this.groupId + "-" + path, function (e) {
14959
+ var execCode = opt_1.slice();
14960
+ var params = {};
14961
+ vars_1.forEach(function (vv) {
14962
+ var _a;
14963
+ var p2 = ((_a = vv.match(varNameRegx)) === null || _a === void 0 ? void 0 : _a.length) ? vv.match(varNameRegx)[0] : null;
14964
+ params[p2] = AXObjectUtil.deepCopy(_this.context[p2]) || null;
14965
+ execCode = execCode.replace(vv, "__params__." + p2);
14966
+ });
14967
+ var func = new Function('__params__', "try { return " + execCode + "} catch(e){ console.log(e); return null; }");
14968
+ var val = func(params);
14969
+ var keys = p.split('.');
14970
+ var prop = Object.assign({}, _this.instance[keys[0]]);
14971
+ if (keys.length > 1) {
14972
+ _this.instance[keys[0]] = setPropByPath(prop, p, val);
14973
+ }
14974
+ else {
14975
+ setPropByPath(_this.instance, p, val);
14976
+ }
14977
+ });
14978
+ }
14979
+ });
14980
+ }
14981
+ // else {
14982
+ // this.assignProps();
14983
+ // }
14984
+ }
14985
+ };
14986
+ for (var p in options) {
14987
+ _loop_1(p);
14988
+ }
14989
+ };
14990
+ AXPropertyEditorRendererDirective.prototype.assignProps = function () {
14991
+ var _this = this;
14992
+ var _a, _b;
14993
+ var options = this.property.property.editorOptions;
14994
+ if (!options) {
14995
+ return;
14996
+ }
14997
+ var varsRegx = /((\$\{[a-zA-Z_0-9]+\})+)/gm;
14998
+ var _loop_2 = function (p) {
14924
14999
  if (options.hasOwnProperty(p)) {
14925
15000
  var opt = options[p];
14926
- if (typeof opt === 'string' && opt.startsWith('$$')) {
14927
- var key = opt.substring(2);
14928
- var val = getPropByPath(this_1.context, key);
14929
- if (val) {
14930
- this_1.instance[p] = typeof val === 'function' ? val({ data: this_1.context, host: this_1.host }, this_1.property) : val;
14931
- }
15001
+ var vars = typeof opt === 'string' ? (_a = opt) === null || _a === void 0 ? void 0 : _a.match(varsRegx) : [];
15002
+ if ((_b = vars) === null || _b === void 0 ? void 0 : _b.length) {
15003
+ return "continue";
14932
15004
  }
14933
15005
  else {
14934
- var res = typeof opt === 'function' ? opt({ data: this_1.context, host: this_1.host }, this_1.property) : opt;
14935
- if (res instanceof Promise) {
14936
- res.then(function (v) {
14937
- _this.instance[p] = v;
15006
+ var val_1 = typeof opt === 'function' ? opt({ data: this_1.context, host: this_1.host }, this_1.property) : opt;
15007
+ if (val_1 instanceof Promise) {
15008
+ val_1.then(function (v) {
15009
+ setPropByPath(_this.instance, p, val_1);
14938
15010
  });
14939
15011
  }
14940
15012
  else {
14941
- this_1.instance[p] = res;
15013
+ setPropByPath(this_1.instance, p, val_1);
14942
15014
  }
14943
15015
  }
14944
15016
  }
14945
15017
  };
14946
15018
  var this_1 = this;
14947
15019
  for (var p in options) {
14948
- _loop_1(p);
15020
+ _loop_2(p);
14949
15021
  }
14950
15022
  };
14951
15023
  AXPropertyEditorRendererDirective.prototype.ngOnDestroy = function () {
@@ -14956,16 +15028,13 @@ var AXPropertyEditorRendererDirective = /** @class */ (function () {
14956
15028
  AXPropertyEditorRendererDirective.ctorParameters = function () { return [
14957
15029
  { type: ViewContainerRef },
14958
15030
  { type: ComponentFactoryResolver },
14959
- { type: AXRenderService }
15031
+ { type: AXRenderService },
15032
+ { type: AXEventService }
14960
15033
  ]; };
14961
15034
  __decorate([
14962
15035
  Input(),
14963
15036
  __metadata("design:type", Object)
14964
15037
  ], AXPropertyEditorRendererDirective.prototype, "property", void 0);
14965
- __decorate([
14966
- Input(),
14967
- __metadata("design:type", Boolean)
14968
- ], AXPropertyEditorRendererDirective.prototype, "readonly", void 0);
14969
15038
  __decorate([
14970
15039
  Input(),
14971
15040
  __metadata("design:type", AXValidationFormComponent)
@@ -14979,6 +15048,10 @@ var AXPropertyEditorRendererDirective = /** @class */ (function () {
14979
15048
  Input(),
14980
15049
  __metadata("design:type", Object)
14981
15050
  ], AXPropertyEditorRendererDirective.prototype, "host", void 0);
15051
+ __decorate([
15052
+ Input(),
15053
+ __metadata("design:type", Object)
15054
+ ], AXPropertyEditorRendererDirective.prototype, "groupId", void 0);
14982
15055
  __decorate([
14983
15056
  Output(),
14984
15057
  __metadata("design:type", EventEmitter)
@@ -14989,7 +15062,8 @@ var AXPropertyEditorRendererDirective = /** @class */ (function () {
14989
15062
  }),
14990
15063
  __metadata("design:paramtypes", [ViewContainerRef,
14991
15064
  ComponentFactoryResolver,
14992
- AXRenderService])
15065
+ AXRenderService,
15066
+ AXEventService])
14993
15067
  ], AXPropertyEditorRendererDirective);
14994
15068
  return AXPropertyEditorRendererDirective;
14995
15069
  }());
@@ -15007,7 +15081,7 @@ var AXTextPropertyEditorComponent = /** @class */ (function (_super) {
15007
15081
  };
15008
15082
  AXTextPropertyEditorComponent.prototype.ngAfterViewInit = function () {
15009
15083
  this.registerForValidationForm(this.textBox);
15010
- this.initiated = true;
15084
+ this.onRenderCompleted.emit();
15011
15085
  };
15012
15086
  AXTextPropertyEditorComponent.ctorParameters = function () { return [
15013
15087
  { type: ChangeDetectorRef }
@@ -15057,8 +15131,8 @@ var AXNumberBoxPropertyEditorComponent = /** @class */ (function (_super) {
15057
15131
  _super.prototype.handleValueChange.call(this, e.value);
15058
15132
  };
15059
15133
  AXNumberBoxPropertyEditorComponent.prototype.ngAfterViewInit = function () {
15060
- this.initiated = true;
15061
15134
  this.registerForValidationForm(this.textBox);
15135
+ this.onRenderCompleted.emit();
15062
15136
  };
15063
15137
  AXNumberBoxPropertyEditorComponent.ctorParameters = function () { return [
15064
15138
  { type: ChangeDetectorRef }
@@ -15103,16 +15177,18 @@ var AXSelectBoxPropertyEditorComponent = /** @class */ (function (_super) {
15103
15177
  _this.selectionDataMode = 'value';
15104
15178
  _this.allowSearch = true;
15105
15179
  _this.allowNull = false;
15180
+ _this.disabled = false;
15106
15181
  _this.items = [];
15107
15182
  _this.remoteOperation = false;
15108
15183
  _this.provideData = function (e) {
15109
15184
  return new Promise(function (resolve) {
15110
15185
  var func = function () {
15111
15186
  if (Array.isArray(_this.items)) {
15112
- resolve(_this.items);
15187
+ resolve(_this.items.slice());
15113
15188
  }
15114
15189
  else if (typeof _this.items === 'function') {
15115
- resolve(_this.items(e));
15190
+ var a = Object.assign(e, { sender: _this });
15191
+ resolve(_this.items(a));
15116
15192
  }
15117
15193
  else {
15118
15194
  resolve([]);
@@ -15128,26 +15204,38 @@ var AXSelectBoxPropertyEditorComponent = /** @class */ (function (_super) {
15128
15204
  };
15129
15205
  return _this;
15130
15206
  }
15207
+ Object.defineProperty(AXSelectBoxPropertyEditorComponent.prototype, "filter", {
15208
+ get: function () {
15209
+ return this._filter;
15210
+ },
15211
+ set: function (v) {
15212
+ var _a;
15213
+ this._filter = v;
15214
+ if (this.value && this.initiated) {
15215
+ this.value = null;
15216
+ (_a = this.selectBox) === null || _a === void 0 ? void 0 : _a.refresh();
15217
+ }
15218
+ },
15219
+ enumerable: true,
15220
+ configurable: true
15221
+ });
15131
15222
  AXSelectBoxPropertyEditorComponent.prototype.handleValueChange = function (e) {
15132
- _super.prototype.handleValueChange.call(this, e.value);
15223
+ _super.prototype.handleValueChange.call(this, e.selectedValues);
15133
15224
  };
15134
15225
  AXSelectBoxPropertyEditorComponent.prototype.ngAfterViewInit = function () {
15135
- this.selectBox.refresh();
15136
15226
  this.registerForValidationForm(this.selectBox);
15137
- };
15138
- AXSelectBoxPropertyEditorComponent.prototype.initiat = function () {
15139
- this.initiated = true;
15227
+ this.onRenderCompleted.emit();
15140
15228
  };
15141
15229
  AXSelectBoxPropertyEditorComponent.ctorParameters = function () { return [
15142
15230
  { type: ChangeDetectorRef }
15143
15231
  ]; };
15144
15232
  __decorate([
15145
- ViewChild(AXSelectBox2Component, { static: true }),
15146
- __metadata("design:type", AXSelectBox2Component)
15233
+ ViewChild(AXSelectBoxComponent, { static: true }),
15234
+ __metadata("design:type", AXSelectBoxComponent)
15147
15235
  ], AXSelectBoxPropertyEditorComponent.prototype, "selectBox", void 0);
15148
15236
  AXSelectBoxPropertyEditorComponent = __decorate([
15149
15237
  Component({
15150
- template: "<ax-select-box2 [selectionMode]=\"selectionMode\"\r\n [selectionDataMode]=\"selectionDataMode\" \r\n [textField]=\"textField\" \r\n [valueField]=\"valueField\" \r\n [value]=\"value\" \r\n [remoteOperation]=\"remoteOperation\"\r\n [allowSearch]=\"allowSearch\" \r\n [allowNull]=\"allowNull\"\r\n (onValueChanged)=\"handleValueChange($event)\">\r\n <ax-data-source [provideData]=\"provideData\">\r\n </ax-data-source>\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n</ax-select-box2>"
15238
+ template: "<ax-select-box [mode]=\"selectionMode\"\r\n [textField]=\"textField\" \r\n [valueField]=\"valueField\" \r\n [selectedValues]=\"value\" \r\n [remoteOperation]=\"remoteOperation\"\r\n [allowSearch]=\"allowSearch\" \r\n [allowNull]=\"allowNull\"\r\n [readonly]=\"readonly\"\r\n [disabled]=\"disabled\"\r\n (selectionChanged)=\"handleValueChange($event)\">\r\n <ax-data-source [provideData]=\"provideData\">\r\n </ax-data-source>\r\n <ax-validation [rules]=\"validation?.rules\">\r\n </ax-validation>\r\n</ax-select-box>"
15151
15239
  }),
15152
15240
  __metadata("design:paramtypes", [ChangeDetectorRef])
15153
15241
  ], AXSelectBoxPropertyEditorComponent);
@@ -15186,7 +15274,7 @@ var AXRangePropertyEditorComponent = /** @class */ (function (_super) {
15186
15274
  this.cdr.detectChanges();
15187
15275
  };
15188
15276
  AXRangePropertyEditorComponent.prototype.ngAfterViewInit = function () {
15189
- this.initiated = true;
15277
+ this.onRenderCompleted.emit();
15190
15278
  };
15191
15279
  // getRanges() {
15192
15280
  // return this.ranges.sort((a, b) => a.minValue - b.minValue);
@@ -15892,7 +15980,7 @@ var AXColorPropertyEditorComponent = /** @class */ (function (_super) {
15892
15980
  }
15893
15981
  AXColorPropertyEditorComponent.prototype.ngAfterViewInit = function () {
15894
15982
  this.registerForValidationForm(this.textBox);
15895
- this.initiated = true;
15983
+ this.onRenderCompleted.emit();
15896
15984
  };
15897
15985
  AXColorPropertyEditorComponent.ctorParameters = function () { return [
15898
15986
  { type: ChangeDetectorRef }
@@ -15950,7 +16038,7 @@ var ColumnPropertyEditorComponent = /** @class */ (function (_super) {
15950
16038
  this.columns = this.value ? JSON.parse(JSON.stringify(this.value)) : [];
15951
16039
  };
15952
16040
  ColumnPropertyEditorComponent.prototype.ngAfterViewInit = function () {
15953
- this.initiated = true;
16041
+ this.onRenderCompleted.emit();
15954
16042
  };
15955
16043
  ColumnPropertyEditorComponent.prototype.drop = function (event) {
15956
16044
  moveItemInArray(this.columns, event.previousIndex, event.currentIndex);
@@ -16110,8 +16198,8 @@ var AXConditionalColorPropertyEditorComponent = /** @class */ (function (_super)
16110
16198
  ].filter(function (c) { return c.dataTypes == null || c.dataTypes.includes(_this.dataType); });
16111
16199
  };
16112
16200
  AXConditionalColorPropertyEditorComponent.prototype.ngAfterViewInit = function () {
16113
- this.initiated = true;
16114
16201
  this.cdr.detectChanges();
16202
+ this.onRenderCompleted.emit();
16115
16203
  };
16116
16204
  AXConditionalColorPropertyEditorComponent.prototype.handleEditClick = function (item) {
16117
16205
  var _this = this;
@@ -16310,7 +16398,7 @@ var AXSwitchPropertyEditorComponent = /** @class */ (function (_super) {
16310
16398
  _super.prototype.handleValueChange.call(this, e.value);
16311
16399
  };
16312
16400
  AXSwitchPropertyEditorComponent.prototype.ngAfterViewInit = function () {
16313
- this.initiated = true;
16401
+ this.onRenderCompleted.emit();
16314
16402
  };
16315
16403
  AXSwitchPropertyEditorComponent.ctorParameters = function () { return [
16316
16404
  { type: ChangeDetectorRef }
@@ -16359,8 +16447,8 @@ var AXDatePropertyEditorComponent = /** @class */ (function (_super) {
16359
16447
  _super.prototype.handleValueChange.call(this, e.value);
16360
16448
  };
16361
16449
  AXDatePropertyEditorComponent.prototype.ngAfterViewInit = function () {
16362
- this.initiated = true;
16363
16450
  this.registerForValidationForm(this.date);
16451
+ this.onRenderCompleted.emit();
16364
16452
  };
16365
16453
  AXDatePropertyEditorComponent.ctorParameters = function () { return [
16366
16454
  { type: ChangeDetectorRef }
@@ -16408,8 +16496,8 @@ var AXTimePropertyEditorComponent = /** @class */ (function (_super) {
16408
16496
  _super.prototype.handleValueChange.call(this, (_a = e.value) === null || _a === void 0 ? void 0 : _a.time);
16409
16497
  };
16410
16498
  AXTimePropertyEditorComponent.prototype.ngAfterViewInit = function () {
16411
- this.initiated = true;
16412
16499
  this.registerForValidationForm(this.time);
16500
+ this.onRenderCompleted.emit();
16413
16501
  };
16414
16502
  AXTimePropertyEditorComponent.ctorParameters = function () { return [
16415
16503
  { type: ChangeDetectorRef }