myrta-ui 1.1.34 → 1.1.37

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 (35) hide show
  1. package/esm2020/lib/components/form/checkbox-group/checkbox-group.component.mjs +60 -37
  2. package/esm2020/lib/components/form/checkbox-group/components/checkbox-group-header/checkbox-group-header.component.mjs +4 -4
  3. package/esm2020/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.mjs +42 -43
  4. package/esm2020/lib/components/form/checkbox-group/helpers/change-group-value.mjs +7 -8
  5. package/esm2020/lib/components/form/checkbox-group/helpers/change-item-value.mjs +2 -2
  6. package/esm2020/lib/components/form/checkbox-group/helpers/filter-search-group.mjs +5 -5
  7. package/esm2020/lib/components/form/checkbox-group/helpers/get-checked-items.mjs +2 -2
  8. package/esm2020/lib/components/form/checkbox-group/helpers/get-inner-list.helper.mjs +46 -0
  9. package/esm2020/lib/components/form/checkbox-group/helpers/get-item-by-id.mjs +4 -4
  10. package/esm2020/lib/components/form/checkbox-group/helpers/get-sorted-list.mjs +2 -2
  11. package/esm2020/lib/components/form/checkbox-group/models/checkbox-group.model.mjs +1 -1
  12. package/esm2020/lib/components/form/formula-editor/formula-editor.component.mjs +3 -2
  13. package/esm2020/lib/components/form/input-text/input-text.component.mjs +2 -2
  14. package/esm2020/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.mjs +3 -3
  15. package/esm2020/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.mjs +4 -3
  16. package/esm2020/lib/services/mrx-form-validator/validations/max-length.validation.mjs +6 -2
  17. package/esm2020/lib/services/mrx-form-validator/validations/max-value.validation.mjs +1 -1
  18. package/esm2020/lib/services/mrx-form-validator/validations/min-length.validation.mjs +6 -2
  19. package/esm2020/lib/services/mrx-form-validator/validations/required.validation.mjs +1 -1
  20. package/fesm2015/myrta-ui.mjs +176 -100
  21. package/fesm2015/myrta-ui.mjs.map +1 -1
  22. package/fesm2020/myrta-ui.mjs +175 -100
  23. package/fesm2020/myrta-ui.mjs.map +1 -1
  24. package/lib/components/form/checkbox-group/checkbox-group.component.d.ts +21 -14
  25. package/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.d.ts +13 -9
  26. package/lib/components/form/checkbox-group/helpers/change-group-value.d.ts +3 -3
  27. package/lib/components/form/checkbox-group/helpers/change-item-value.d.ts +3 -3
  28. package/lib/components/form/checkbox-group/helpers/filter-search-group.d.ts +2 -2
  29. package/lib/components/form/checkbox-group/helpers/get-checked-items.d.ts +2 -2
  30. package/lib/components/form/checkbox-group/helpers/get-inner-list.helper.d.ts +2 -0
  31. package/lib/components/form/checkbox-group/helpers/get-item-by-id.d.ts +2 -2
  32. package/lib/components/form/checkbox-group/helpers/get-sorted-list.d.ts +2 -2
  33. package/lib/components/form/checkbox-group/models/checkbox-group.model.d.ts +7 -2
  34. package/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.d.ts +1 -1
  35. package/package.json +1 -1
@@ -4297,7 +4297,11 @@ const patternValidation = (value, validations, key, invalidMessages) => {
4297
4297
 
4298
4298
  const maxLengthValidation = (value, validations, key, invalidMessages) => {
4299
4299
  const result = { isValid: true, message: null };
4300
- if (String(value).length > Number(validations[key])) {
4300
+ if (Array.isArray(value) && validations.type === 'single' && value.length > Number(validations[key])) {
4301
+ result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4302
+ result.isValid = false;
4303
+ }
4304
+ else if (!Array.isArray(value) && String(value).length > Number(validations[key])) {
4301
4305
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4302
4306
  result.isValid = false;
4303
4307
  }
@@ -4306,7 +4310,11 @@ const maxLengthValidation = (value, validations, key, invalidMessages) => {
4306
4310
 
4307
4311
  const minLengthValidation = (value, validations, key, invalidMessages) => {
4308
4312
  const result = { isValid: true, message: null };
4309
- if (String(value).length < Number(validations[key]) && !!validations[ValidationTypesEnum.Required]) {
4313
+ if (Array.isArray(value) && validations.type === 'single' && value.length < Number(validations[key])) {
4314
+ result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4315
+ result.isValid = false;
4316
+ }
4317
+ else if (!Array.isArray(value) && String(value).length < Number(validations[key]) && !!validations[ValidationTypesEnum.Required]) {
4310
4318
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4311
4319
  result.isValid = false;
4312
4320
  }
@@ -4374,7 +4382,8 @@ const getSortingValidationsHelper = (validation) => {
4374
4382
  }
4375
4383
  else {
4376
4384
  if (key === 'type') {
4377
- validation.type = 'multi';
4385
+ validation.type = 'single';
4386
+ sortedValidators.type = 'single';
4378
4387
  }
4379
4388
  }
4380
4389
  }
@@ -5492,7 +5501,7 @@ class InputTextComponent {
5492
5501
  return this.maxlength > this.value?.length;
5493
5502
  }
5494
5503
  formatValue(value) {
5495
- return value.length === this.maskPrefix.length ? '' : value;
5504
+ return value ? value.length === this.maskPrefix.length ? '' : value : '';
5496
5505
  }
5497
5506
  insertPositionText(tagText) {
5498
5507
  if (this.selectionStart && this.selectionEnd) {
@@ -12849,7 +12858,7 @@ const getSortedList = (list, sortable) => {
12849
12858
  const sortedList = list.sort(sortedFunc);
12850
12859
  sortedList.forEach((item) => {
12851
12860
  if (item.type === 'array') {
12852
- getSortedListInner(item.array);
12861
+ getSortedListInner(item.items);
12853
12862
  }
12854
12863
  });
12855
12864
  return sortedList;
@@ -12865,8 +12874,8 @@ const filterSearchGroup$1 = (list, searchValue) => {
12865
12874
  array.forEach((item) => {
12866
12875
  if (item.text.toLowerCase().includes(searchValue.toLowerCase())) {
12867
12876
  if (item.type === 'array') {
12868
- const newArray = getIntersectionsFromString(item.array);
12869
- searchArray.push({ ...item, array: newArray });
12877
+ const newArray = getIntersectionsFromString(item.items || []);
12878
+ searchArray.push({ ...item, items: newArray });
12870
12879
  }
12871
12880
  else {
12872
12881
  searchArray.push(item);
@@ -12874,8 +12883,8 @@ const filterSearchGroup$1 = (list, searchValue) => {
12874
12883
  }
12875
12884
  else {
12876
12885
  if (item.type === 'array') {
12877
- const newArray = getIntersectionsFromString(item.array);
12878
- newArray.length && searchArray.push({ ...item, array: newArray });
12886
+ const newArray = getIntersectionsFromString(item.items || []);
12887
+ newArray.length && searchArray.push({ ...item, items: newArray });
12879
12888
  }
12880
12889
  }
12881
12890
  });
@@ -12884,12 +12893,12 @@ const filterSearchGroup$1 = (list, searchValue) => {
12884
12893
  return getIntersectionsFromString(list);
12885
12894
  };
12886
12895
 
12887
- const getItemById$1 = (list, itemId) => {
12896
+ const getItemInnerById = (list, itemId) => {
12888
12897
  const findById = (acc, el) => {
12889
12898
  if (el?.id === itemId)
12890
12899
  return el;
12891
- if (el?.array)
12892
- return el.array.reduce(findById, acc);
12900
+ if (el?.items)
12901
+ return el.items.reduce(findById, acc);
12893
12902
  return acc;
12894
12903
  };
12895
12904
  return list.reduce(findById, null);
@@ -12898,7 +12907,7 @@ const getItemById$1 = (list, itemId) => {
12898
12907
  const changeItemValue = (item, value) => {
12899
12908
  item.value = value;
12900
12909
  if (item.type === 'array') {
12901
- item.array.forEach((item) => {
12910
+ item.items?.forEach((item) => {
12902
12911
  changeItemValue(item, value);
12903
12912
  });
12904
12913
  }
@@ -12913,19 +12922,18 @@ const changeListValue = (list, value) => {
12913
12922
  const checkUnderArrayValue = (array, value) => {
12914
12923
  return array.some((x) => {
12915
12924
  if (x.type === 'array') {
12916
- return checkUnderArrayValue(x.array, value);
12925
+ return checkUnderArrayValue(x.items, value);
12917
12926
  }
12918
12927
  return x.value !== value;
12919
12928
  });
12920
12929
  };
12921
- const changeGroupValue = (list, itemId, value) => {
12922
- if (!itemId) {
12930
+ const changeGroupValue = (list, parentId, value) => {
12931
+ if (!parentId) {
12923
12932
  return;
12924
12933
  }
12925
- const parent = getItemById$1(list, itemId);
12934
+ const parent = getItemInnerById(list, parentId);
12926
12935
  if (parent) {
12927
- parent.value = checkUnderArrayValue(parent.array, value) ? null : value;
12928
- changeGroupValue(list, parent.parentId, value);
12936
+ parent.value = checkUnderArrayValue(parent.items, value) ? null : value;
12929
12937
  }
12930
12938
  };
12931
12939
 
@@ -12936,7 +12944,7 @@ const getCheckedItems = (list) => {
12936
12944
  const getCheckedItemsFromArray = (list) => {
12937
12945
  list.forEach((item) => {
12938
12946
  if (item.type === 'array') {
12939
- getCheckedItemsFromArray(item.array);
12947
+ getCheckedItemsFromArray(item.items || []);
12940
12948
  }
12941
12949
  else {
12942
12950
  if (item.value) {
@@ -12949,6 +12957,52 @@ const getCheckedItems = (list) => {
12949
12957
  return checkedItems;
12950
12958
  };
12951
12959
 
12960
+ const getInnerList = (list, checkedList) => {
12961
+ const getItemValue = (item) => {
12962
+ if (item.items) {
12963
+ let value = false;
12964
+ let count = 0;
12965
+ item.items.forEach((i, idx, array) => {
12966
+ if (i.items) {
12967
+ if (value === false) {
12968
+ value = getItemValue(i);
12969
+ }
12970
+ }
12971
+ else {
12972
+ if (checkedList.find(c => c.id === i.id)) {
12973
+ count++;
12974
+ if (value === false) {
12975
+ value = null;
12976
+ }
12977
+ }
12978
+ }
12979
+ if (idx === array.length - 1) {
12980
+ if (count === array.length) {
12981
+ value = true;
12982
+ }
12983
+ }
12984
+ });
12985
+ return value;
12986
+ }
12987
+ else {
12988
+ return !!checkedList.find(c => c.id === item.id);
12989
+ }
12990
+ };
12991
+ const getModifiedList = (items, parentId = null) => {
12992
+ return items.map((item, idx, array) => {
12993
+ return {
12994
+ id: item.id,
12995
+ text: item.text,
12996
+ value: getItemValue(item),
12997
+ parentId: parentId,
12998
+ type: item.items ? 'array' : 'single',
12999
+ items: item.items ? getModifiedList(item.items, item.id) : []
13000
+ };
13001
+ });
13002
+ };
13003
+ return getModifiedList(list);
13004
+ };
13005
+
12952
13006
  class CheckboxGroupHeaderComponent {
12953
13007
  constructor() {
12954
13008
  this.searchValue = '';
@@ -12970,10 +13024,10 @@ class CheckboxGroupHeaderComponent {
12970
13024
  }
12971
13025
  }
12972
13026
  CheckboxGroupHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12973
- CheckboxGroupHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: { searchable: "searchable", searchPlaceholder: "searchPlaceholder", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", checkedItemsCount: "checkedItemsCount" }, outputs: { updateCheckboxGroupSearchValue: "updateCheckboxGroupSearchValue", clearFilters: "clearFilters" }, ngImport: i0, template: "<mrx-label\r\n *ngIf=\"labelText\"\r\n [counter]=\"checkedItemsCount\"\r\n [linkText]=\"linkText\"\r\n [tooltip]=\"tooltip\"\r\n (clickedLink)=\"onClearFilters()\"\r\n>{{ labelText }}</mrx-label>\r\n\r\n<div class=\"mrx-checkbox-group-head--search\" *ngIf=\"searchable\">\r\n <mrx-input-search\r\n [ngModel]=\"searchValue\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (ngModelChange)=\"changeSearchValue($event)\"\r\n ></mrx-input-search>\r\n</div>\r\n", styles: [".mrx-checkbox-group-head--search{margin-bottom:12px}\n"], components: [{ type: LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeCheckboxValue", "clickedLink"] }, { type: InputSearchComponent, selector: "mrx-input-search", inputs: ["fields", "disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "mask", "size", "invalid", "invalidMessage", "checkInvalid", "restrictInput"], outputs: ["changed", "modelChange", "blurred", "cleared", "searched"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
13027
+ CheckboxGroupHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: { searchable: "searchable", searchPlaceholder: "searchPlaceholder", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", checkedItemsCount: "checkedItemsCount" }, outputs: { updateCheckboxGroupSearchValue: "updateCheckboxGroupSearchValue", clearFilters: "clearFilters" }, ngImport: i0, template: "<mrx-label\r\n *ngIf=\"labelText\"\r\n [counter]=\"checkedItemsCount\"\r\n [linkText]=\"linkText\"\r\n [tooltip]=\"tooltip\"\r\n (clickedLink)=\"onClearFilters()\"\r\n>{{ labelText }}</mrx-label>\r\n\r\n<div class=\"mrx-checkbox-group-head--search\" *ngIf=\"searchable\">\r\n <mrx-input-search\r\n [ngModel]=\"searchValue\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (ngModelChange)=\"changeSearchValue($event)\"\r\n ></mrx-input-search>\r\n</div>\r\n", styles: [".mrx-checkbox-group-head--search{margin-bottom:12px}\n"], components: [{ type: LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeCheckboxValue", "clickedLink"] }, { type: InputSearchComponent, selector: "mrx-input-search", inputs: ["fields", "disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "mask", "size", "invalid", "invalidMessage", "checkInvalid", "restrictInput"], outputs: ["changed", "modelChange", "blurred", "cleared", "searched"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12974
13028
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupHeaderComponent, decorators: [{
12975
13029
  type: Component,
12976
- args: [{ selector: 'mrx-checkbox-group-header', template: "<mrx-label\r\n *ngIf=\"labelText\"\r\n [counter]=\"checkedItemsCount\"\r\n [linkText]=\"linkText\"\r\n [tooltip]=\"tooltip\"\r\n (clickedLink)=\"onClearFilters()\"\r\n>{{ labelText }}</mrx-label>\r\n\r\n<div class=\"mrx-checkbox-group-head--search\" *ngIf=\"searchable\">\r\n <mrx-input-search\r\n [ngModel]=\"searchValue\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (ngModelChange)=\"changeSearchValue($event)\"\r\n ></mrx-input-search>\r\n</div>\r\n", styles: [".mrx-checkbox-group-head--search{margin-bottom:12px}\n"] }]
13030
+ args: [{ selector: 'mrx-checkbox-group-header', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mrx-label\r\n *ngIf=\"labelText\"\r\n [counter]=\"checkedItemsCount\"\r\n [linkText]=\"linkText\"\r\n [tooltip]=\"tooltip\"\r\n (clickedLink)=\"onClearFilters()\"\r\n>{{ labelText }}</mrx-label>\r\n\r\n<div class=\"mrx-checkbox-group-head--search\" *ngIf=\"searchable\">\r\n <mrx-input-search\r\n [ngModel]=\"searchValue\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (ngModelChange)=\"changeSearchValue($event)\"\r\n ></mrx-input-search>\r\n</div>\r\n", styles: [".mrx-checkbox-group-head--search{margin-bottom:12px}\n"] }]
12977
13031
  }], ctorParameters: function () { return []; }, propDecorators: { searchable: [{
12978
13032
  type: Input
12979
13033
  }], searchPlaceholder: [{
@@ -12993,28 +13047,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12993
13047
  }] } });
12994
13048
 
12995
13049
  class CheckboxGroupItemComponent {
12996
- constructor(detector) {
12997
- this.detector = detector;
13050
+ constructor(_detector) {
13051
+ this._detector = _detector;
12998
13052
  this.animationState = 'close';
13053
+ this.isOpen = false;
12999
13054
  this.displaced = false;
13000
13055
  this.level = 0;
13001
13056
  this.animationTrigger = null;
13002
13057
  this.disabled = false;
13003
13058
  this.readonly = false;
13059
+ this.invalid = false;
13004
13060
  this.animationEnd = new EventEmitter();
13005
13061
  this.checkboxChanged = new EventEmitter();
13006
13062
  }
13063
+ set item(value) {
13064
+ this._item = value;
13065
+ }
13066
+ get item() {
13067
+ return this._item;
13068
+ }
13007
13069
  get isIndeterminate() {
13008
13070
  return this.item.value === null;
13009
13071
  }
13010
13072
  get translateChevron() {
13011
- return this.animationState === 'close' ? 'rotate(-90deg)' : 'rotate(0deg)';
13012
- }
13013
- trackByFn(index, item) {
13014
- return item.id;
13073
+ return this.isOpen ? 'rotate(0deg)' : 'rotate(-90deg)';
13015
13074
  }
13016
13075
  toggleList(item) {
13017
- this.animationState = this.animationState === 'close' ? 'open' : 'close';
13076
+ this.isOpen = !this.isOpen;
13018
13077
  }
13019
13078
  checkboxChangeModel(value, item) {
13020
13079
  if (this.isIndeterminate) {
@@ -13023,64 +13082,54 @@ class CheckboxGroupItemComponent {
13023
13082
  else {
13024
13083
  this.checkboxChanged.emit({ value: value, item });
13025
13084
  }
13026
- this.detector.detectChanges();
13085
+ this._detector.detectChanges();
13027
13086
  }
13028
13087
  ngOnChanges(changes) {
13029
13088
  if (changes['item'] && (changes['item'].currentValue.value === null)) {
13030
- this.animationState = 'open';
13089
+ this.isOpen = true;
13031
13090
  }
13032
13091
  else {
13033
- if (this.animationTrigger) {
13034
- this.animationState = 'open';
13035
- }
13036
- else {
13037
- this.animationState = 'close';
13038
- }
13092
+ this.isOpen = !!this.animationTrigger;
13039
13093
  }
13040
- this.detector.detectChanges();
13094
+ this._detector.detectChanges();
13041
13095
  }
13042
13096
  onAnimationEvent() {
13043
13097
  this.animationEnd.emit();
13044
13098
  }
13099
+ trackByFn(index, item) {
13100
+ return item.id;
13101
+ }
13045
13102
  }
13046
13103
  CheckboxGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13047
- CheckboxGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: { item: "item", displaced: "displaced", level: "level", animationTrigger: "animationTrigger", isLast: "isLast", disabled: "disabled", readonly: "readonly" }, outputs: { animationEnd: "animationEnd", checkboxChanged: "checkboxChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"mrx-checkbox-group__item\" [class.mrx-checkbox-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-checkbox-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleCheckboxTemplate\">\r\n <div class=\"mrx-checkbox-group__item--array-head\">\r\n <div class=\"mrx-checkbox-group__item--head-icon mr-1\">\r\n <span\r\n class=\"mrx-icon icon-chevron-down icon-font-16 cursor-pointer\"\r\n (click)=\"toggleList(item)\"\r\n [style.transform]=\"translateChevron\"\r\n ></span>\r\n </div>\r\n\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"isIndeterminate\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n\r\n <div class=\"mrx-checkbox-group__item--array-list\" [@openList]=\"animationState\" (@openList.done)=\"onAnimationEvent()\">\r\n <ng-container>\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of item.array\"\r\n [level]=\"level + 1\"\r\n [item]=\"item\"\r\n [displaced]=\"true\"\r\n [animationTrigger]=\"animationTrigger\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (checkboxChanged)=\"checkboxChanged.emit($event)\"\r\n ></mrx-checkbox-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleCheckboxTemplate>\r\n <div class=\"mrx-checkbox-group__item--single\" [class.item-displaced]=\"displaced\">\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-checkbox-group__item--single.item-displaced{margin-left:20px}.mrx-checkbox-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-checkbox-group__item--array-list{padding-left:20px}.mrx-checkbox-group__item--buttom-ident{margin-bottom:12px}\n"], components: [{ type: CheckboxComponent, selector: "mrx-checkbox", inputs: ["fields", "required", "boldLabel", "indeterminate", "disabled", "readonly", "label", "customClasses", "customWrapperClasses", "invalid", "checkInvalid", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changed", "modelChange"] }, { type: CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: ["item", "displaced", "level", "animationTrigger", "isLast", "disabled", "readonly"], outputs: ["animationEnd", "checkboxChanged"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [
13104
+ CheckboxGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: { displaced: "displaced", level: "level", animationTrigger: "animationTrigger", isLast: "isLast", disabled: "disabled", readonly: "readonly", invalid: "invalid", item: "item" }, outputs: { animationEnd: "animationEnd", checkboxChanged: "checkboxChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"mrx-checkbox-group__item\" [class.mrx-checkbox-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-checkbox-group__item--array\" *ngIf=\"item.items?.length && level < 10; else singleCheckboxTemplate\">\r\n <div class=\"mrx-checkbox-group__item--array-head\">\r\n <div class=\"mrx-checkbox-group__item--head-icon mr-1\">\r\n <span\r\n class=\"mrx-icon icon-chevron-down icon-font-16 cursor-pointer\"\r\n (click)=\"toggleList(item)\"\r\n [style.transform]=\"translateChevron\"\r\n ></span>\r\n </div>\r\n\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"isIndeterminate\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n\r\n <div class=\"mrx-checkbox-group__item--array-list\" [@openList]=\"isOpen ? 'open' : 'close'\" (@openList.done)=\"onAnimationEvent()\">\r\n <ng-container>\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of item.items; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [item]=\"item\"\r\n [displaced]=\"true\"\r\n [animationTrigger]=\"animationTrigger\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (checkboxChanged)=\"checkboxChanged.emit($event)\"\r\n ></mrx-checkbox-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleCheckboxTemplate>\r\n <div class=\"mrx-checkbox-group__item--single\" [class.item-displaced]=\"displaced\">\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-checkbox-group__item--single.item-displaced{margin-left:20px}.mrx-checkbox-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-checkbox-group__item--array-list{padding-left:20px}.mrx-checkbox-group__item--buttom-ident{margin-bottom:12px}\n"], components: [{ type: CheckboxComponent, selector: "mrx-checkbox", inputs: ["fields", "required", "boldLabel", "indeterminate", "disabled", "readonly", "label", "customClasses", "customWrapperClasses", "invalid", "checkInvalid", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changed", "modelChange"] }, { type: CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: ["displaced", "level", "animationTrigger", "isLast", "disabled", "readonly", "invalid", "item"], outputs: ["animationEnd", "checkboxChanged"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [
13048
13105
  trigger('openList', [
13106
+ state('*', style({ height: '0', opacity: '0', visibility: 'hidden', marginTop: '0', overflow: 'hidden' })),
13049
13107
  state('open', style({ height: '*', opacity: '1', visibility: 'visible', marginTop: '12px' })),
13050
13108
  state('close', style({ height: '0', opacity: '0', visibility: 'hidden', marginTop: '0', overflow: 'hidden' })),
13051
- transition('open => close', [group([
13052
- animate('200ms ease-in-out', style({ opacity: '0' })),
13053
- animate('200ms ease-in-out', style({ height: '0px', marginTop: '0' })),
13054
- animate('200ms ease-in-out', style({ visibility: 'hidden' }))
13055
- ])]),
13056
- transition('close => open', [group([
13057
- animate('200ms ease-in-out', style({ visibility: 'visible' })),
13058
- animate('200ms ease-in-out', style({ height: '*', marginTop: '12px' })),
13059
- animate('200ms ease-in-out', style({ opacity: '1' }))
13060
- ])])
13109
+ transition('* => open', [
13110
+ animate(200)
13111
+ ]),
13112
+ transition('* => close', [
13113
+ animate(200)
13114
+ ]),
13061
13115
  ])
13062
13116
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13063
13117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupItemComponent, decorators: [{
13064
13118
  type: Component,
13065
13119
  args: [{ selector: 'mrx-checkbox-group-item', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
13066
13120
  trigger('openList', [
13121
+ state('*', style({ height: '0', opacity: '0', visibility: 'hidden', marginTop: '0', overflow: 'hidden' })),
13067
13122
  state('open', style({ height: '*', opacity: '1', visibility: 'visible', marginTop: '12px' })),
13068
13123
  state('close', style({ height: '0', opacity: '0', visibility: 'hidden', marginTop: '0', overflow: 'hidden' })),
13069
- transition('open => close', [group([
13070
- animate('200ms ease-in-out', style({ opacity: '0' })),
13071
- animate('200ms ease-in-out', style({ height: '0px', marginTop: '0' })),
13072
- animate('200ms ease-in-out', style({ visibility: 'hidden' }))
13073
- ])]),
13074
- transition('close => open', [group([
13075
- animate('200ms ease-in-out', style({ visibility: 'visible' })),
13076
- animate('200ms ease-in-out', style({ height: '*', marginTop: '12px' })),
13077
- animate('200ms ease-in-out', style({ opacity: '1' }))
13078
- ])])
13124
+ transition('* => open', [
13125
+ animate(200)
13126
+ ]),
13127
+ transition('* => close', [
13128
+ animate(200)
13129
+ ]),
13079
13130
  ])
13080
- ], template: "<div class=\"mrx-checkbox-group__item\" [class.mrx-checkbox-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-checkbox-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleCheckboxTemplate\">\r\n <div class=\"mrx-checkbox-group__item--array-head\">\r\n <div class=\"mrx-checkbox-group__item--head-icon mr-1\">\r\n <span\r\n class=\"mrx-icon icon-chevron-down icon-font-16 cursor-pointer\"\r\n (click)=\"toggleList(item)\"\r\n [style.transform]=\"translateChevron\"\r\n ></span>\r\n </div>\r\n\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"isIndeterminate\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n\r\n <div class=\"mrx-checkbox-group__item--array-list\" [@openList]=\"animationState\" (@openList.done)=\"onAnimationEvent()\">\r\n <ng-container>\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of item.array\"\r\n [level]=\"level + 1\"\r\n [item]=\"item\"\r\n [displaced]=\"true\"\r\n [animationTrigger]=\"animationTrigger\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (checkboxChanged)=\"checkboxChanged.emit($event)\"\r\n ></mrx-checkbox-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleCheckboxTemplate>\r\n <div class=\"mrx-checkbox-group__item--single\" [class.item-displaced]=\"displaced\">\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-checkbox-group__item--single.item-displaced{margin-left:20px}.mrx-checkbox-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-checkbox-group__item--array-list{padding-left:20px}.mrx-checkbox-group__item--buttom-ident{margin-bottom:12px}\n"] }]
13081
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
13082
- type: Input
13083
- }], displaced: [{
13131
+ ], template: "<div class=\"mrx-checkbox-group__item\" [class.mrx-checkbox-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-checkbox-group__item--array\" *ngIf=\"item.items?.length && level < 10; else singleCheckboxTemplate\">\r\n <div class=\"mrx-checkbox-group__item--array-head\">\r\n <div class=\"mrx-checkbox-group__item--head-icon mr-1\">\r\n <span\r\n class=\"mrx-icon icon-chevron-down icon-font-16 cursor-pointer\"\r\n (click)=\"toggleList(item)\"\r\n [style.transform]=\"translateChevron\"\r\n ></span>\r\n </div>\r\n\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"isIndeterminate\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n\r\n <div class=\"mrx-checkbox-group__item--array-list\" [@openList]=\"isOpen ? 'open' : 'close'\" (@openList.done)=\"onAnimationEvent()\">\r\n <ng-container>\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of item.items; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [item]=\"item\"\r\n [displaced]=\"true\"\r\n [animationTrigger]=\"animationTrigger\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (checkboxChanged)=\"checkboxChanged.emit($event)\"\r\n ></mrx-checkbox-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleCheckboxTemplate>\r\n <div class=\"mrx-checkbox-group__item--single\" [class.item-displaced]=\"displaced\">\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-checkbox-group__item--single.item-displaced{margin-left:20px}.mrx-checkbox-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-checkbox-group__item--array-list{padding-left:20px}.mrx-checkbox-group__item--buttom-ident{margin-bottom:12px}\n"] }]
13132
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { displaced: [{
13084
13133
  type: Input
13085
13134
  }], level: [{
13086
13135
  type: Input
@@ -13092,6 +13141,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13092
13141
  type: Input
13093
13142
  }], readonly: [{
13094
13143
  type: Input
13144
+ }], invalid: [{
13145
+ type: Input
13146
+ }], item: [{
13147
+ type: Input
13095
13148
  }], animationEnd: [{
13096
13149
  type: Output
13097
13150
  }], checkboxChanged: [{
@@ -13099,17 +13152,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13099
13152
  }] } });
13100
13153
 
13101
13154
  class CheckboxGroupComponent {
13102
- constructor() {
13155
+ constructor(_detector) {
13156
+ this._detector = _detector;
13103
13157
  this._isInit = false;
13104
13158
  this._groupItemsWrapperHeight = 0;
13105
13159
  this._searchValue = '';
13106
13160
  this.list = [];
13107
- this.filteredList = [];
13161
+ this.innerList = [];
13108
13162
  this.checkedList = [];
13163
+ this.filteredList = [];
13109
13164
  // SAVE STATE
13110
13165
  this.uuid = v4();
13111
13166
  this.fields = [];
13112
- this.items = [];
13113
13167
  this.scrollMaxHeight = 200;
13114
13168
  this.searchable = false;
13115
13169
  this.scrollable = false;
@@ -13124,19 +13178,34 @@ class CheckboxGroupComponent {
13124
13178
  // LABEL
13125
13179
  this.labelText = '';
13126
13180
  this.linkText = '';
13181
+ // VALIDATE
13182
+ this.invalid = false;
13183
+ this.invalidMessage = '';
13127
13184
  this.changed = new EventEmitter();
13128
13185
  this.changeChecked = new EventEmitter();
13129
13186
  this.modelChange = new EventEmitter();
13130
- this.modelCheckedChange = new EventEmitter();
13187
+ this.modelChangeInner = new EventEmitter();
13131
13188
  this.modelItemChange = new EventEmitter();
13132
13189
  this.onChange = (value) => { };
13133
13190
  this.onTouched = () => { };
13134
13191
  }
13192
+ set items(list) {
13193
+ this.list = list;
13194
+ }
13195
+ get items() {
13196
+ return this.filteredList;
13197
+ }
13135
13198
  get isSearchValue() {
13136
13199
  return this._searchValue;
13137
13200
  }
13138
13201
  get displaced() {
13139
- return this.list.some((item) => item.array.length);
13202
+ return this.list.some((item) => item.items?.length);
13203
+ }
13204
+ get getInvalid() {
13205
+ return this.invalid;
13206
+ }
13207
+ get getInvalidMessage() {
13208
+ return this.invalidMessage;
13140
13209
  }
13141
13210
  get getClasses() {
13142
13211
  return `${this.customClasses}`;
@@ -13147,38 +13216,24 @@ class CheckboxGroupComponent {
13147
13216
  trackByFn(index, item) {
13148
13217
  return item.id;
13149
13218
  }
13150
- writeValue(list) {
13151
- if (list) {
13152
- this.list = list;
13153
- this.filteredList = getSortedList(list, this.sortable);
13154
- this.checkedList = getCheckedItems(list);
13219
+ writeValue(selectedValue) {
13220
+ if (selectedValue !== null) {
13221
+ this.checkedList = selectedValue;
13222
+ this.innerList = getInnerList(this.list, this.checkedList);
13223
+ this.filteredList = getSortedList(this.innerList, this.sortable);
13155
13224
  this._isInit = true;
13156
13225
  }
13157
13226
  }
13158
- registerOnChange(fn) {
13159
- this.onChange = fn;
13160
- }
13161
- registerOnTouched(fn) {
13162
- this.onTouched = fn;
13163
- }
13164
- updateValue(list, checkedList) {
13165
- this.changed.emit(list);
13166
- this.changeChecked.emit();
13167
- this.modelChange.emit({ value: list, id: this.uuid });
13168
- this.modelCheckedChange.emit({ value: checkedList, id: this.uuid });
13169
- this.onChange(list);
13170
- this.onTouched();
13171
- }
13172
13227
  checkHeightGroupWrapper() {
13173
13228
  this._groupItemsWrapperHeight = this.groupItemsWrapper.nativeElement.scrollHeight;
13174
13229
  }
13175
13230
  updateCheckboxGroupSearchValue(searchValue) {
13176
13231
  this._searchValue = searchValue;
13177
- this.filteredList = filterSearchGroup$1(this.list, this._searchValue);
13232
+ this.filteredList = filterSearchGroup$1(this.innerList, this._searchValue);
13178
13233
  }
13179
13234
  checkboxChanged({ value, item }) {
13180
13235
  const cloneList = cloneDeep(this.filteredList);
13181
- const findItem = getItemById$1(cloneList, item.id);
13236
+ const findItem = getItemInnerById(cloneList, item.id);
13182
13237
  let changedItem = null;
13183
13238
  if (findItem) {
13184
13239
  changedItem = changeItemValue(findItem, value);
@@ -13191,6 +13246,7 @@ class CheckboxGroupComponent {
13191
13246
  if (changedItem) {
13192
13247
  this.modelItemChange.emit(changedItem);
13193
13248
  }
13249
+ this._detector.detectChanges();
13194
13250
  }
13195
13251
  clearFilters() {
13196
13252
  const cloneList = cloneDeep(this.filteredList);
@@ -13200,15 +13256,29 @@ class CheckboxGroupComponent {
13200
13256
  this.checkedList = getCheckedItems(cloneList);
13201
13257
  this.updateValue(this.filteredList, this.checkedList);
13202
13258
  }
13259
+ registerOnChange(fn) {
13260
+ this.onChange = fn;
13261
+ }
13262
+ registerOnTouched(fn) {
13263
+ this.onTouched = fn;
13264
+ }
13265
+ updateValue(list, checkedList) {
13266
+ this.changed.emit(checkedList);
13267
+ this.changeChecked.emit();
13268
+ this.modelChange.emit({ value: checkedList, id: this.uuid });
13269
+ this.modelChangeInner.emit({ value: this.innerList, id: this.uuid });
13270
+ this.onChange(checkedList);
13271
+ this.onTouched();
13272
+ }
13203
13273
  }
13204
- CheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13205
- CheckboxGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CheckboxGroupComponent, selector: "mrx-checkbox-group", inputs: { fields: "fields", items: "items", scrollMaxHeight: "scrollMaxHeight", searchable: "searchable", scrollable: "scrollable", sortable: "sortable", disabled: "disabled", readonly: "readonly", enableMessage: "enableMessage", searchPlaceholder: "searchPlaceholder", customClasses: "customClasses", tooltip: "tooltip", labelText: "labelText", linkText: "linkText" }, outputs: { changed: "changed", changeChecked: "changeChecked", modelChange: "modelChange", modelCheckedChange: "modelCheckedChange", modelItemChange: "modelItemChange" }, providers: [
13274
+ CheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13275
+ CheckboxGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CheckboxGroupComponent, selector: "mrx-checkbox-group", inputs: { fields: "fields", scrollMaxHeight: "scrollMaxHeight", searchable: "searchable", scrollable: "scrollable", sortable: "sortable", disabled: "disabled", readonly: "readonly", enableMessage: "enableMessage", searchPlaceholder: "searchPlaceholder", customClasses: "customClasses", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", invalid: "invalid", invalidMessage: "invalidMessage", items: "items" }, outputs: { changed: "changed", changeChecked: "changeChecked", modelChange: "modelChange", modelChangeInner: "modelChangeInner", modelItemChange: "modelItemChange" }, providers: [
13206
13276
  {
13207
13277
  provide: NG_VALUE_ACCESSOR,
13208
13278
  useExisting: forwardRef(() => CheckboxGroupComponent),
13209
13279
  multi: true,
13210
13280
  },
13211
- ], viewQueries: [{ propertyName: "groupItemsWrapper", first: true, predicate: ["groupItemsWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"], components: [{ type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { type: CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: ["searchable", "searchPlaceholder", "tooltip", "labelText", "linkText", "checkedItemsCount"], outputs: ["updateCheckboxGroupSearchValue", "clearFilters"] }, { type: CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: ["item", "displaced", "level", "animationTrigger", "isLast", "disabled", "readonly"], outputs: ["animationEnd", "checkboxChanged"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13281
+ ], viewQueries: [{ propertyName: "groupItemsWrapper", first: true, predicate: ["groupItemsWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; trackBy: trackByFn; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getInvalidMessage\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n ></mrx-error-message>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"], components: [{ type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { type: CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: ["searchable", "searchPlaceholder", "tooltip", "labelText", "linkText", "checkedItemsCount"], outputs: ["updateCheckboxGroupSearchValue", "clearFilters"] }, { type: CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: ["displaced", "level", "animationTrigger", "isLast", "disabled", "readonly", "invalid", "item"], outputs: ["animationEnd", "checkboxChanged"] }, { type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13212
13282
  CheckboxGroupComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, providedIn: CheckboxGroupComponent });
13213
13283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
13214
13284
  type: Injectable,
@@ -13223,10 +13293,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13223
13293
  useExisting: forwardRef(() => CheckboxGroupComponent),
13224
13294
  multi: true,
13225
13295
  },
13226
- ], template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"] }]
13227
- }], ctorParameters: function () { return []; }, propDecorators: { fields: [{
13228
- type: Input
13229
- }], items: [{
13296
+ ], template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; trackBy: trackByFn; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getInvalidMessage\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n ></mrx-error-message>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"] }]
13297
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { fields: [{
13230
13298
  type: Input
13231
13299
  }], scrollMaxHeight: [{
13232
13300
  type: Input
@@ -13252,6 +13320,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13252
13320
  type: Input
13253
13321
  }], linkText: [{
13254
13322
  type: Input
13323
+ }], invalid: [{
13324
+ type: Input
13325
+ }], invalidMessage: [{
13326
+ type: Input
13327
+ }], items: [{
13328
+ type: Input
13255
13329
  }], groupItemsWrapper: [{
13256
13330
  type: ViewChild,
13257
13331
  args: ['groupItemsWrapper']
@@ -13261,7 +13335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13261
13335
  type: Output
13262
13336
  }], modelChange: [{
13263
13337
  type: Output
13264
- }], modelCheckedChange: [{
13338
+ }], modelChangeInner: [{
13265
13339
  type: Output
13266
13340
  }], modelItemChange: [{
13267
13341
  type: Output
@@ -13549,10 +13623,10 @@ class RadioGroupItemComponent {
13549
13623
  }
13550
13624
  }
13551
13625
  RadioGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RadioGroupItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13552
- RadioGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: { invalid: "invalid", name: "name", selectedValue: "selectedValue", item: "item", displaced: "displaced", level: "level", bold: "bold", animationTrigger: "animationTrigger", isLast: "isLast", disabled: "disabled", readonly: "readonly" }, outputs: { animationEnd: "animationEnd", radioChanged: "radioChanged" }, ngImport: i0, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-radio-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleradioTemplate\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\r\n\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [value]=\"item.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [invalid]=\"invalid\"\r\n [indeterminate]=\"isIndeterminate\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n\r\n <div class=\"mrx-radio-group__item--array-list\">\r\n <ng-container>\r\n <mrx-radio-group-item\r\n *ngFor=\"let child of item.array; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [selectedValue]=\"selectedValue\"\r\n [item]=\"child\"\r\n [invalid]=\"invalid\"\r\n [bold]=\"bold\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [animationTrigger]=\"animationTrigger\"\r\n (radioChanged)=\"radioChanged.emit($event)\"\r\n ></mrx-radio-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleradioTemplate>\r\n <div class=\"mrx-radio-group__item--single\">\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [indeterminate]=\"false\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [type]=\"'default'\"\r\n [value]=\"item.id\"\r\n [invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-radio-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-radio-group__item--array-list{padding-left:20px}.mrx-radio-group__item--buttom-ident{margin-bottom:12px}\n"], components: [{ type: RadioComponent, selector: "mrx-radio", inputs: ["required", "type", "name", "boldLabel", "disabled", "readonly", "placeholder", "label", "customClasses", "invalid", "value"] }, { type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: ["invalid", "name", "selectedValue", "item", "displaced", "level", "bold", "animationTrigger", "isLast", "disabled", "readonly"], outputs: ["animationEnd", "radioChanged"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13626
+ RadioGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: { invalid: "invalid", name: "name", selectedValue: "selectedValue", item: "item", displaced: "displaced", level: "level", bold: "bold", animationTrigger: "animationTrigger", isLast: "isLast", disabled: "disabled", readonly: "readonly" }, outputs: { animationEnd: "animationEnd", radioChanged: "radioChanged" }, ngImport: i0, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-radio-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleradioTemplate\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\r\n\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [value]=\"item.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [invalid]=\"invalid\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n\r\n <div class=\"mrx-radio-group__item--array-list\">\r\n <ng-container>\r\n <mrx-radio-group-item\r\n *ngFor=\"let child of item.array; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [selectedValue]=\"selectedValue\"\r\n [item]=\"child\"\r\n [invalid]=\"invalid\"\r\n [bold]=\"bold\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [animationTrigger]=\"animationTrigger\"\r\n (radioChanged)=\"radioChanged.emit($event)\"\r\n ></mrx-radio-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleradioTemplate>\r\n <div class=\"mrx-radio-group__item--single\">\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [type]=\"'default'\"\r\n [value]=\"item.id\"\r\n [invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-radio-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-radio-group__item--array-list{padding-left:20px}.mrx-radio-group__item--buttom-ident{margin-bottom:12px}\n"], components: [{ type: RadioComponent, selector: "mrx-radio", inputs: ["required", "type", "name", "boldLabel", "disabled", "readonly", "placeholder", "label", "customClasses", "invalid", "value"] }, { type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: ["invalid", "name", "selectedValue", "item", "displaced", "level", "bold", "animationTrigger", "isLast", "disabled", "readonly"], outputs: ["animationEnd", "radioChanged"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13553
13627
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RadioGroupItemComponent, decorators: [{
13554
13628
  type: Component,
13555
- args: [{ selector: 'mrx-radio-group-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-radio-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleradioTemplate\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\r\n\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [value]=\"item.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [invalid]=\"invalid\"\r\n [indeterminate]=\"isIndeterminate\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n\r\n <div class=\"mrx-radio-group__item--array-list\">\r\n <ng-container>\r\n <mrx-radio-group-item\r\n *ngFor=\"let child of item.array; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [selectedValue]=\"selectedValue\"\r\n [item]=\"child\"\r\n [invalid]=\"invalid\"\r\n [bold]=\"bold\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [animationTrigger]=\"animationTrigger\"\r\n (radioChanged)=\"radioChanged.emit($event)\"\r\n ></mrx-radio-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleradioTemplate>\r\n <div class=\"mrx-radio-group__item--single\">\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [indeterminate]=\"false\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [type]=\"'default'\"\r\n [value]=\"item.id\"\r\n [invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-radio-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-radio-group__item--array-list{padding-left:20px}.mrx-radio-group__item--buttom-ident{margin-bottom:12px}\n"] }]
13629
+ args: [{ selector: 'mrx-radio-group-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-radio-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleradioTemplate\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\r\n\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [value]=\"item.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [invalid]=\"invalid\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n\r\n <div class=\"mrx-radio-group__item--array-list\">\r\n <ng-container>\r\n <mrx-radio-group-item\r\n *ngFor=\"let child of item.array; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [selectedValue]=\"selectedValue\"\r\n [item]=\"child\"\r\n [invalid]=\"invalid\"\r\n [bold]=\"bold\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [animationTrigger]=\"animationTrigger\"\r\n (radioChanged)=\"radioChanged.emit($event)\"\r\n ></mrx-radio-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleradioTemplate>\r\n <div class=\"mrx-radio-group__item--single\">\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [type]=\"'default'\"\r\n [value]=\"item.id\"\r\n [invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-radio-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-radio-group__item--array-list{padding-left:20px}.mrx-radio-group__item--buttom-ident{margin-bottom:12px}\n"] }]
13556
13630
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { invalid: [{
13557
13631
  type: Input
13558
13632
  }], name: [{
@@ -17513,7 +17587,8 @@ class FormulaEditorComponent {
17513
17587
  }
17514
17588
  onFocus(event) {
17515
17589
  this.isFocused = true;
17516
- this._detector.markForCheck();
17590
+ this._detector.detectChanges();
17591
+ this._placeCaretAtEnd();
17517
17592
  }
17518
17593
  onClear() {
17519
17594
  this.updateValue('');