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
@@ -4306,7 +4306,11 @@ const patternValidation = (value, validations, key, invalidMessages) => {
4306
4306
 
4307
4307
  const maxLengthValidation = (value, validations, key, invalidMessages) => {
4308
4308
  const result = { isValid: true, message: null };
4309
- if (String(value).length > Number(validations[key])) {
4309
+ if (Array.isArray(value) && validations.type === 'single' && value.length > Number(validations[key])) {
4310
+ result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4311
+ result.isValid = false;
4312
+ }
4313
+ else if (!Array.isArray(value) && String(value).length > Number(validations[key])) {
4310
4314
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4311
4315
  result.isValid = false;
4312
4316
  }
@@ -4315,7 +4319,11 @@ const maxLengthValidation = (value, validations, key, invalidMessages) => {
4315
4319
 
4316
4320
  const minLengthValidation = (value, validations, key, invalidMessages) => {
4317
4321
  const result = { isValid: true, message: null };
4318
- if (String(value).length < Number(validations[key]) && !!validations[ValidationTypesEnum.Required]) {
4322
+ if (Array.isArray(value) && validations.type === 'single' && value.length < Number(validations[key])) {
4323
+ result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4324
+ result.isValid = false;
4325
+ }
4326
+ else if (!Array.isArray(value) && String(value).length < Number(validations[key]) && !!validations[ValidationTypesEnum.Required]) {
4319
4327
  result.message = getErrorMessageHelper(key, invalidMessages, validations.messages, Number(validations[key]));
4320
4328
  result.isValid = false;
4321
4329
  }
@@ -4383,7 +4391,8 @@ const getSortingValidationsHelper = (validation) => {
4383
4391
  }
4384
4392
  else {
4385
4393
  if (key === 'type') {
4386
- validation.type = 'multi';
4394
+ validation.type = 'single';
4395
+ sortedValidators.type = 'single';
4387
4396
  }
4388
4397
  }
4389
4398
  }
@@ -5487,7 +5496,7 @@ class InputTextComponent {
5487
5496
  return this.maxlength > ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length);
5488
5497
  }
5489
5498
  formatValue(value) {
5490
- return value.length === this.maskPrefix.length ? '' : value;
5499
+ return value ? value.length === this.maskPrefix.length ? '' : value : '';
5491
5500
  }
5492
5501
  insertPositionText(tagText) {
5493
5502
  if (this.selectionStart && this.selectionEnd) {
@@ -12808,7 +12817,7 @@ const getSortedList = (list, sortable) => {
12808
12817
  const sortedList = list.sort(sortedFunc);
12809
12818
  sortedList.forEach((item) => {
12810
12819
  if (item.type === 'array') {
12811
- getSortedListInner(item.array);
12820
+ getSortedListInner(item.items);
12812
12821
  }
12813
12822
  });
12814
12823
  return sortedList;
@@ -12824,8 +12833,8 @@ const filterSearchGroup$1 = (list, searchValue) => {
12824
12833
  array.forEach((item) => {
12825
12834
  if (item.text.toLowerCase().includes(searchValue.toLowerCase())) {
12826
12835
  if (item.type === 'array') {
12827
- const newArray = getIntersectionsFromString(item.array);
12828
- searchArray.push(Object.assign(Object.assign({}, item), { array: newArray }));
12836
+ const newArray = getIntersectionsFromString(item.items || []);
12837
+ searchArray.push(Object.assign(Object.assign({}, item), { items: newArray }));
12829
12838
  }
12830
12839
  else {
12831
12840
  searchArray.push(item);
@@ -12833,8 +12842,8 @@ const filterSearchGroup$1 = (list, searchValue) => {
12833
12842
  }
12834
12843
  else {
12835
12844
  if (item.type === 'array') {
12836
- const newArray = getIntersectionsFromString(item.array);
12837
- newArray.length && searchArray.push(Object.assign(Object.assign({}, item), { array: newArray }));
12845
+ const newArray = getIntersectionsFromString(item.items || []);
12846
+ newArray.length && searchArray.push(Object.assign(Object.assign({}, item), { items: newArray }));
12838
12847
  }
12839
12848
  }
12840
12849
  });
@@ -12843,21 +12852,22 @@ const filterSearchGroup$1 = (list, searchValue) => {
12843
12852
  return getIntersectionsFromString(list);
12844
12853
  };
12845
12854
 
12846
- const getItemById$1 = (list, itemId) => {
12855
+ const getItemInnerById = (list, itemId) => {
12847
12856
  const findById = (acc, el) => {
12848
12857
  if ((el === null || el === void 0 ? void 0 : el.id) === itemId)
12849
12858
  return el;
12850
- if (el === null || el === void 0 ? void 0 : el.array)
12851
- return el.array.reduce(findById, acc);
12859
+ if (el === null || el === void 0 ? void 0 : el.items)
12860
+ return el.items.reduce(findById, acc);
12852
12861
  return acc;
12853
12862
  };
12854
12863
  return list.reduce(findById, null);
12855
12864
  };
12856
12865
 
12857
12866
  const changeItemValue = (item, value) => {
12867
+ var _a;
12858
12868
  item.value = value;
12859
12869
  if (item.type === 'array') {
12860
- item.array.forEach((item) => {
12870
+ (_a = item.items) === null || _a === void 0 ? void 0 : _a.forEach((item) => {
12861
12871
  changeItemValue(item, value);
12862
12872
  });
12863
12873
  }
@@ -12872,19 +12882,18 @@ const changeListValue = (list, value) => {
12872
12882
  const checkUnderArrayValue = (array, value) => {
12873
12883
  return array.some((x) => {
12874
12884
  if (x.type === 'array') {
12875
- return checkUnderArrayValue(x.array, value);
12885
+ return checkUnderArrayValue(x.items, value);
12876
12886
  }
12877
12887
  return x.value !== value;
12878
12888
  });
12879
12889
  };
12880
- const changeGroupValue = (list, itemId, value) => {
12881
- if (!itemId) {
12890
+ const changeGroupValue = (list, parentId, value) => {
12891
+ if (!parentId) {
12882
12892
  return;
12883
12893
  }
12884
- const parent = getItemById$1(list, itemId);
12894
+ const parent = getItemInnerById(list, parentId);
12885
12895
  if (parent) {
12886
- parent.value = checkUnderArrayValue(parent.array, value) ? null : value;
12887
- changeGroupValue(list, parent.parentId, value);
12896
+ parent.value = checkUnderArrayValue(parent.items, value) ? null : value;
12888
12897
  }
12889
12898
  };
12890
12899
 
@@ -12895,7 +12904,7 @@ const getCheckedItems = (list) => {
12895
12904
  const getCheckedItemsFromArray = (list) => {
12896
12905
  list.forEach((item) => {
12897
12906
  if (item.type === 'array') {
12898
- getCheckedItemsFromArray(item.array);
12907
+ getCheckedItemsFromArray(item.items || []);
12899
12908
  }
12900
12909
  else {
12901
12910
  if (item.value) {
@@ -12908,6 +12917,52 @@ const getCheckedItems = (list) => {
12908
12917
  return checkedItems;
12909
12918
  };
12910
12919
 
12920
+ const getInnerList = (list, checkedList) => {
12921
+ const getItemValue = (item) => {
12922
+ if (item.items) {
12923
+ let value = false;
12924
+ let count = 0;
12925
+ item.items.forEach((i, idx, array) => {
12926
+ if (i.items) {
12927
+ if (value === false) {
12928
+ value = getItemValue(i);
12929
+ }
12930
+ }
12931
+ else {
12932
+ if (checkedList.find(c => c.id === i.id)) {
12933
+ count++;
12934
+ if (value === false) {
12935
+ value = null;
12936
+ }
12937
+ }
12938
+ }
12939
+ if (idx === array.length - 1) {
12940
+ if (count === array.length) {
12941
+ value = true;
12942
+ }
12943
+ }
12944
+ });
12945
+ return value;
12946
+ }
12947
+ else {
12948
+ return !!checkedList.find(c => c.id === item.id);
12949
+ }
12950
+ };
12951
+ const getModifiedList = (items, parentId = null) => {
12952
+ return items.map((item, idx, array) => {
12953
+ return {
12954
+ id: item.id,
12955
+ text: item.text,
12956
+ value: getItemValue(item),
12957
+ parentId: parentId,
12958
+ type: item.items ? 'array' : 'single',
12959
+ items: item.items ? getModifiedList(item.items, item.id) : []
12960
+ };
12961
+ });
12962
+ };
12963
+ return getModifiedList(list);
12964
+ };
12965
+
12911
12966
  class CheckboxGroupHeaderComponent {
12912
12967
  constructor() {
12913
12968
  this.searchValue = '';
@@ -12929,10 +12984,10 @@ class CheckboxGroupHeaderComponent {
12929
12984
  }
12930
12985
  }
12931
12986
  CheckboxGroupHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12932
- 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"] }] });
12987
+ 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 });
12933
12988
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupHeaderComponent, decorators: [{
12934
12989
  type: Component,
12935
- 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"] }]
12990
+ 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"] }]
12936
12991
  }], ctorParameters: function () { return []; }, propDecorators: { searchable: [{
12937
12992
  type: Input
12938
12993
  }], searchPlaceholder: [{
@@ -12952,28 +13007,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12952
13007
  }] } });
12953
13008
 
12954
13009
  class CheckboxGroupItemComponent {
12955
- constructor(detector) {
12956
- this.detector = detector;
13010
+ constructor(_detector) {
13011
+ this._detector = _detector;
12957
13012
  this.animationState = 'close';
13013
+ this.isOpen = false;
12958
13014
  this.displaced = false;
12959
13015
  this.level = 0;
12960
13016
  this.animationTrigger = null;
12961
13017
  this.disabled = false;
12962
13018
  this.readonly = false;
13019
+ this.invalid = false;
12963
13020
  this.animationEnd = new EventEmitter();
12964
13021
  this.checkboxChanged = new EventEmitter();
12965
13022
  }
13023
+ set item(value) {
13024
+ this._item = value;
13025
+ }
13026
+ get item() {
13027
+ return this._item;
13028
+ }
12966
13029
  get isIndeterminate() {
12967
13030
  return this.item.value === null;
12968
13031
  }
12969
13032
  get translateChevron() {
12970
- return this.animationState === 'close' ? 'rotate(-90deg)' : 'rotate(0deg)';
12971
- }
12972
- trackByFn(index, item) {
12973
- return item.id;
13033
+ return this.isOpen ? 'rotate(0deg)' : 'rotate(-90deg)';
12974
13034
  }
12975
13035
  toggleList(item) {
12976
- this.animationState = this.animationState === 'close' ? 'open' : 'close';
13036
+ this.isOpen = !this.isOpen;
12977
13037
  }
12978
13038
  checkboxChangeModel(value, item) {
12979
13039
  if (this.isIndeterminate) {
@@ -12982,64 +13042,54 @@ class CheckboxGroupItemComponent {
12982
13042
  else {
12983
13043
  this.checkboxChanged.emit({ value: value, item });
12984
13044
  }
12985
- this.detector.detectChanges();
13045
+ this._detector.detectChanges();
12986
13046
  }
12987
13047
  ngOnChanges(changes) {
12988
13048
  if (changes['item'] && (changes['item'].currentValue.value === null)) {
12989
- this.animationState = 'open';
13049
+ this.isOpen = true;
12990
13050
  }
12991
13051
  else {
12992
- if (this.animationTrigger) {
12993
- this.animationState = 'open';
12994
- }
12995
- else {
12996
- this.animationState = 'close';
12997
- }
13052
+ this.isOpen = !!this.animationTrigger;
12998
13053
  }
12999
- this.detector.detectChanges();
13054
+ this._detector.detectChanges();
13000
13055
  }
13001
13056
  onAnimationEvent() {
13002
13057
  this.animationEnd.emit();
13003
13058
  }
13059
+ trackByFn(index, item) {
13060
+ return item.id;
13061
+ }
13004
13062
  }
13005
13063
  CheckboxGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13006
- 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: [
13064
+ 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: [
13007
13065
  trigger('openList', [
13066
+ state('*', style({ height: '0', opacity: '0', visibility: 'hidden', marginTop: '0', overflow: 'hidden' })),
13008
13067
  state('open', style({ height: '*', opacity: '1', visibility: 'visible', marginTop: '12px' })),
13009
13068
  state('close', style({ height: '0', opacity: '0', visibility: 'hidden', marginTop: '0', overflow: 'hidden' })),
13010
- transition('open => close', [group([
13011
- animate('200ms ease-in-out', style({ opacity: '0' })),
13012
- animate('200ms ease-in-out', style({ height: '0px', marginTop: '0' })),
13013
- animate('200ms ease-in-out', style({ visibility: 'hidden' }))
13014
- ])]),
13015
- transition('close => open', [group([
13016
- animate('200ms ease-in-out', style({ visibility: 'visible' })),
13017
- animate('200ms ease-in-out', style({ height: '*', marginTop: '12px' })),
13018
- animate('200ms ease-in-out', style({ opacity: '1' }))
13019
- ])])
13069
+ transition('* => open', [
13070
+ animate(200)
13071
+ ]),
13072
+ transition('* => close', [
13073
+ animate(200)
13074
+ ]),
13020
13075
  ])
13021
13076
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13022
13077
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupItemComponent, decorators: [{
13023
13078
  type: Component,
13024
13079
  args: [{ selector: 'mrx-checkbox-group-item', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
13025
13080
  trigger('openList', [
13081
+ state('*', style({ height: '0', opacity: '0', visibility: 'hidden', marginTop: '0', overflow: 'hidden' })),
13026
13082
  state('open', style({ height: '*', opacity: '1', visibility: 'visible', marginTop: '12px' })),
13027
13083
  state('close', style({ height: '0', opacity: '0', visibility: 'hidden', marginTop: '0', overflow: 'hidden' })),
13028
- transition('open => close', [group([
13029
- animate('200ms ease-in-out', style({ opacity: '0' })),
13030
- animate('200ms ease-in-out', style({ height: '0px', marginTop: '0' })),
13031
- animate('200ms ease-in-out', style({ visibility: 'hidden' }))
13032
- ])]),
13033
- transition('close => open', [group([
13034
- animate('200ms ease-in-out', style({ visibility: 'visible' })),
13035
- animate('200ms ease-in-out', style({ height: '*', marginTop: '12px' })),
13036
- animate('200ms ease-in-out', style({ opacity: '1' }))
13037
- ])])
13084
+ transition('* => open', [
13085
+ animate(200)
13086
+ ]),
13087
+ transition('* => close', [
13088
+ animate(200)
13089
+ ]),
13038
13090
  ])
13039
- ], 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"] }]
13040
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
13041
- type: Input
13042
- }], displaced: [{
13091
+ ], 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"] }]
13092
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { displaced: [{
13043
13093
  type: Input
13044
13094
  }], level: [{
13045
13095
  type: Input
@@ -13051,6 +13101,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13051
13101
  type: Input
13052
13102
  }], readonly: [{
13053
13103
  type: Input
13104
+ }], invalid: [{
13105
+ type: Input
13106
+ }], item: [{
13107
+ type: Input
13054
13108
  }], animationEnd: [{
13055
13109
  type: Output
13056
13110
  }], checkboxChanged: [{
@@ -13058,17 +13112,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13058
13112
  }] } });
13059
13113
 
13060
13114
  class CheckboxGroupComponent {
13061
- constructor() {
13115
+ constructor(_detector) {
13116
+ this._detector = _detector;
13062
13117
  this._isInit = false;
13063
13118
  this._groupItemsWrapperHeight = 0;
13064
13119
  this._searchValue = '';
13065
13120
  this.list = [];
13066
- this.filteredList = [];
13121
+ this.innerList = [];
13067
13122
  this.checkedList = [];
13123
+ this.filteredList = [];
13068
13124
  // SAVE STATE
13069
13125
  this.uuid = v4();
13070
13126
  this.fields = [];
13071
- this.items = [];
13072
13127
  this.scrollMaxHeight = 200;
13073
13128
  this.searchable = false;
13074
13129
  this.scrollable = false;
@@ -13083,19 +13138,34 @@ class CheckboxGroupComponent {
13083
13138
  // LABEL
13084
13139
  this.labelText = '';
13085
13140
  this.linkText = '';
13141
+ // VALIDATE
13142
+ this.invalid = false;
13143
+ this.invalidMessage = '';
13086
13144
  this.changed = new EventEmitter();
13087
13145
  this.changeChecked = new EventEmitter();
13088
13146
  this.modelChange = new EventEmitter();
13089
- this.modelCheckedChange = new EventEmitter();
13147
+ this.modelChangeInner = new EventEmitter();
13090
13148
  this.modelItemChange = new EventEmitter();
13091
13149
  this.onChange = (value) => { };
13092
13150
  this.onTouched = () => { };
13093
13151
  }
13152
+ set items(list) {
13153
+ this.list = list;
13154
+ }
13155
+ get items() {
13156
+ return this.filteredList;
13157
+ }
13094
13158
  get isSearchValue() {
13095
13159
  return this._searchValue;
13096
13160
  }
13097
13161
  get displaced() {
13098
- return this.list.some((item) => item.array.length);
13162
+ return this.list.some((item) => { var _a; return (_a = item.items) === null || _a === void 0 ? void 0 : _a.length; });
13163
+ }
13164
+ get getInvalid() {
13165
+ return this.invalid;
13166
+ }
13167
+ get getInvalidMessage() {
13168
+ return this.invalidMessage;
13099
13169
  }
13100
13170
  get getClasses() {
13101
13171
  return `${this.customClasses}`;
@@ -13106,38 +13176,24 @@ class CheckboxGroupComponent {
13106
13176
  trackByFn(index, item) {
13107
13177
  return item.id;
13108
13178
  }
13109
- writeValue(list) {
13110
- if (list) {
13111
- this.list = list;
13112
- this.filteredList = getSortedList(list, this.sortable);
13113
- this.checkedList = getCheckedItems(list);
13179
+ writeValue(selectedValue) {
13180
+ if (selectedValue !== null) {
13181
+ this.checkedList = selectedValue;
13182
+ this.innerList = getInnerList(this.list, this.checkedList);
13183
+ this.filteredList = getSortedList(this.innerList, this.sortable);
13114
13184
  this._isInit = true;
13115
13185
  }
13116
13186
  }
13117
- registerOnChange(fn) {
13118
- this.onChange = fn;
13119
- }
13120
- registerOnTouched(fn) {
13121
- this.onTouched = fn;
13122
- }
13123
- updateValue(list, checkedList) {
13124
- this.changed.emit(list);
13125
- this.changeChecked.emit();
13126
- this.modelChange.emit({ value: list, id: this.uuid });
13127
- this.modelCheckedChange.emit({ value: checkedList, id: this.uuid });
13128
- this.onChange(list);
13129
- this.onTouched();
13130
- }
13131
13187
  checkHeightGroupWrapper() {
13132
13188
  this._groupItemsWrapperHeight = this.groupItemsWrapper.nativeElement.scrollHeight;
13133
13189
  }
13134
13190
  updateCheckboxGroupSearchValue(searchValue) {
13135
13191
  this._searchValue = searchValue;
13136
- this.filteredList = filterSearchGroup$1(this.list, this._searchValue);
13192
+ this.filteredList = filterSearchGroup$1(this.innerList, this._searchValue);
13137
13193
  }
13138
13194
  checkboxChanged({ value, item }) {
13139
13195
  const cloneList = cloneDeep(this.filteredList);
13140
- const findItem = getItemById$1(cloneList, item.id);
13196
+ const findItem = getItemInnerById(cloneList, item.id);
13141
13197
  let changedItem = null;
13142
13198
  if (findItem) {
13143
13199
  changedItem = changeItemValue(findItem, value);
@@ -13150,6 +13206,7 @@ class CheckboxGroupComponent {
13150
13206
  if (changedItem) {
13151
13207
  this.modelItemChange.emit(changedItem);
13152
13208
  }
13209
+ this._detector.detectChanges();
13153
13210
  }
13154
13211
  clearFilters() {
13155
13212
  const cloneList = cloneDeep(this.filteredList);
@@ -13159,15 +13216,29 @@ class CheckboxGroupComponent {
13159
13216
  this.checkedList = getCheckedItems(cloneList);
13160
13217
  this.updateValue(this.filteredList, this.checkedList);
13161
13218
  }
13219
+ registerOnChange(fn) {
13220
+ this.onChange = fn;
13221
+ }
13222
+ registerOnTouched(fn) {
13223
+ this.onTouched = fn;
13224
+ }
13225
+ updateValue(list, checkedList) {
13226
+ this.changed.emit(checkedList);
13227
+ this.changeChecked.emit();
13228
+ this.modelChange.emit({ value: checkedList, id: this.uuid });
13229
+ this.modelChangeInner.emit({ value: this.innerList, id: this.uuid });
13230
+ this.onChange(checkedList);
13231
+ this.onTouched();
13232
+ }
13162
13233
  }
13163
- CheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13164
- 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: [
13234
+ CheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13235
+ 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: [
13165
13236
  {
13166
13237
  provide: NG_VALUE_ACCESSOR,
13167
13238
  useExisting: forwardRef(() => CheckboxGroupComponent),
13168
13239
  multi: true,
13169
13240
  },
13170
- ], 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 });
13241
+ ], 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 });
13171
13242
  CheckboxGroupComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, providedIn: CheckboxGroupComponent });
13172
13243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
13173
13244
  type: Injectable,
@@ -13182,10 +13253,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13182
13253
  useExisting: forwardRef(() => CheckboxGroupComponent),
13183
13254
  multi: true,
13184
13255
  },
13185
- ], 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"] }]
13186
- }], ctorParameters: function () { return []; }, propDecorators: { fields: [{
13187
- type: Input
13188
- }], items: [{
13256
+ ], 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"] }]
13257
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { fields: [{
13189
13258
  type: Input
13190
13259
  }], scrollMaxHeight: [{
13191
13260
  type: Input
@@ -13211,6 +13280,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13211
13280
  type: Input
13212
13281
  }], linkText: [{
13213
13282
  type: Input
13283
+ }], invalid: [{
13284
+ type: Input
13285
+ }], invalidMessage: [{
13286
+ type: Input
13287
+ }], items: [{
13288
+ type: Input
13214
13289
  }], groupItemsWrapper: [{
13215
13290
  type: ViewChild,
13216
13291
  args: ['groupItemsWrapper']
@@ -13220,7 +13295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13220
13295
  type: Output
13221
13296
  }], modelChange: [{
13222
13297
  type: Output
13223
- }], modelCheckedChange: [{
13298
+ }], modelChangeInner: [{
13224
13299
  type: Output
13225
13300
  }], modelItemChange: [{
13226
13301
  type: Output
@@ -13509,10 +13584,10 @@ class RadioGroupItemComponent {
13509
13584
  }
13510
13585
  }
13511
13586
  RadioGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RadioGroupItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13512
- 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 });
13587
+ 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 });
13513
13588
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RadioGroupItemComponent, decorators: [{
13514
13589
  type: Component,
13515
- 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"] }]
13590
+ 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"] }]
13516
13591
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { invalid: [{
13517
13592
  type: Input
13518
13593
  }], name: [{
@@ -17480,7 +17555,8 @@ class FormulaEditorComponent {
17480
17555
  }
17481
17556
  onFocus(event) {
17482
17557
  this.isFocused = true;
17483
- this._detector.markForCheck();
17558
+ this._detector.detectChanges();
17559
+ this._placeCaretAtEnd();
17484
17560
  }
17485
17561
  onClear() {
17486
17562
  this.updateValue('');