myrta-ui 1.1.35 → 1.1.38

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 (33) hide show
  1. package/esm2020/lib/components/form/checkbox-group/checkbox-group.component.mjs +63 -38
  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/radio-group/components/radio-group-item/radio-group-item.component.mjs +3 -3
  13. package/esm2020/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.mjs +4 -3
  14. package/esm2020/lib/services/mrx-form-validator/validations/max-length.validation.mjs +6 -2
  15. package/esm2020/lib/services/mrx-form-validator/validations/max-value.validation.mjs +1 -1
  16. package/esm2020/lib/services/mrx-form-validator/validations/min-length.validation.mjs +6 -2
  17. package/esm2020/lib/services/mrx-form-validator/validations/required.validation.mjs +1 -1
  18. package/fesm2015/myrta-ui.mjs +176 -99
  19. package/fesm2015/myrta-ui.mjs.map +1 -1
  20. package/fesm2020/myrta-ui.mjs +175 -99
  21. package/fesm2020/myrta-ui.mjs.map +1 -1
  22. package/lib/components/form/checkbox-group/checkbox-group.component.d.ts +22 -15
  23. package/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.d.ts +13 -9
  24. package/lib/components/form/checkbox-group/helpers/change-group-value.d.ts +3 -3
  25. package/lib/components/form/checkbox-group/helpers/change-item-value.d.ts +3 -3
  26. package/lib/components/form/checkbox-group/helpers/filter-search-group.d.ts +2 -2
  27. package/lib/components/form/checkbox-group/helpers/get-checked-items.d.ts +2 -2
  28. package/lib/components/form/checkbox-group/helpers/get-inner-list.helper.d.ts +2 -0
  29. package/lib/components/form/checkbox-group/helpers/get-item-by-id.d.ts +2 -2
  30. package/lib/components/form/checkbox-group/helpers/get-sorted-list.d.ts +2 -2
  31. package/lib/components/form/checkbox-group/models/checkbox-group.model.d.ts +7 -2
  32. package/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.d.ts +1 -1
  33. 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
  }
@@ -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,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13099
13152
  }] } });
13100
13153
 
13101
13154
  class CheckboxGroupComponent {
13102
- constructor() {
13103
- this._isInit = false;
13155
+ constructor(_detector) {
13156
+ this._detector = _detector;
13104
13157
  this._groupItemsWrapperHeight = 0;
13105
13158
  this._searchValue = '';
13106
13159
  this.list = [];
13107
- this.filteredList = [];
13160
+ this.innerList = [];
13108
13161
  this.checkedList = [];
13162
+ this.filteredList = [];
13109
13163
  // SAVE STATE
13110
13164
  this.uuid = v4();
13111
13165
  this.fields = [];
13112
- this.items = [];
13113
13166
  this.scrollMaxHeight = 200;
13114
13167
  this.searchable = false;
13115
13168
  this.scrollable = false;
@@ -13124,19 +13177,35 @@ class CheckboxGroupComponent {
13124
13177
  // LABEL
13125
13178
  this.labelText = '';
13126
13179
  this.linkText = '';
13180
+ // VALIDATE
13181
+ this.invalid = false;
13182
+ this.invalidMessage = '';
13127
13183
  this.changed = new EventEmitter();
13128
13184
  this.changeChecked = new EventEmitter();
13129
13185
  this.modelChange = new EventEmitter();
13130
- this.modelCheckedChange = new EventEmitter();
13186
+ this.modelChangeInner = new EventEmitter();
13131
13187
  this.modelItemChange = new EventEmitter();
13132
13188
  this.onChange = (value) => { };
13133
13189
  this.onTouched = () => { };
13134
13190
  }
13191
+ set items(list) {
13192
+ this.list = list;
13193
+ this._updateModifiedList();
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,26 @@ 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);
13155
- this._isInit = true;
13219
+ writeValue(selectedValue) {
13220
+ if (selectedValue !== null) {
13221
+ this.checkedList = selectedValue;
13222
+ this._updateModifiedList();
13156
13223
  }
13157
13224
  }
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();
13225
+ _updateModifiedList() {
13226
+ this.innerList = getInnerList(this.list, this.checkedList);
13227
+ this.filteredList = getSortedList(this.innerList, this.sortable);
13171
13228
  }
13172
13229
  checkHeightGroupWrapper() {
13173
13230
  this._groupItemsWrapperHeight = this.groupItemsWrapper.nativeElement.scrollHeight;
13174
13231
  }
13175
13232
  updateCheckboxGroupSearchValue(searchValue) {
13176
13233
  this._searchValue = searchValue;
13177
- this.filteredList = filterSearchGroup$1(this.list, this._searchValue);
13234
+ this.filteredList = filterSearchGroup$1(this.innerList, this._searchValue);
13178
13235
  }
13179
13236
  checkboxChanged({ value, item }) {
13180
13237
  const cloneList = cloneDeep(this.filteredList);
13181
- const findItem = getItemById$1(cloneList, item.id);
13238
+ const findItem = getItemInnerById(cloneList, item.id);
13182
13239
  let changedItem = null;
13183
13240
  if (findItem) {
13184
13241
  changedItem = changeItemValue(findItem, value);
@@ -13191,6 +13248,7 @@ class CheckboxGroupComponent {
13191
13248
  if (changedItem) {
13192
13249
  this.modelItemChange.emit(changedItem);
13193
13250
  }
13251
+ this._detector.detectChanges();
13194
13252
  }
13195
13253
  clearFilters() {
13196
13254
  const cloneList = cloneDeep(this.filteredList);
@@ -13200,15 +13258,29 @@ class CheckboxGroupComponent {
13200
13258
  this.checkedList = getCheckedItems(cloneList);
13201
13259
  this.updateValue(this.filteredList, this.checkedList);
13202
13260
  }
13261
+ registerOnChange(fn) {
13262
+ this.onChange = fn;
13263
+ }
13264
+ registerOnTouched(fn) {
13265
+ this.onTouched = fn;
13266
+ }
13267
+ updateValue(list, checkedList) {
13268
+ this.changed.emit(checkedList);
13269
+ this.changeChecked.emit();
13270
+ this.modelChange.emit({ value: checkedList, id: this.uuid });
13271
+ this.modelChangeInner.emit({ value: this.innerList, id: this.uuid });
13272
+ this.onChange(checkedList);
13273
+ this.onTouched();
13274
+ }
13203
13275
  }
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: [
13276
+ CheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
13277
+ 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
13278
  {
13207
13279
  provide: NG_VALUE_ACCESSOR,
13208
13280
  useExisting: forwardRef(() => CheckboxGroupComponent),
13209
13281
  multi: true,
13210
13282
  },
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 });
13283
+ ], 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
13284
  CheckboxGroupComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, providedIn: CheckboxGroupComponent });
13213
13285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
13214
13286
  type: Injectable,
@@ -13223,10 +13295,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13223
13295
  useExisting: forwardRef(() => CheckboxGroupComponent),
13224
13296
  multi: true,
13225
13297
  },
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: [{
13298
+ ], 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"] }]
13299
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { fields: [{
13230
13300
  type: Input
13231
13301
  }], scrollMaxHeight: [{
13232
13302
  type: Input
@@ -13252,6 +13322,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13252
13322
  type: Input
13253
13323
  }], linkText: [{
13254
13324
  type: Input
13325
+ }], invalid: [{
13326
+ type: Input
13327
+ }], invalidMessage: [{
13328
+ type: Input
13329
+ }], items: [{
13330
+ type: Input
13255
13331
  }], groupItemsWrapper: [{
13256
13332
  type: ViewChild,
13257
13333
  args: ['groupItemsWrapper']
@@ -13261,7 +13337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
13261
13337
  type: Output
13262
13338
  }], modelChange: [{
13263
13339
  type: Output
13264
- }], modelCheckedChange: [{
13340
+ }], modelChangeInner: [{
13265
13341
  type: Output
13266
13342
  }], modelItemChange: [{
13267
13343
  type: Output
@@ -13549,10 +13625,10 @@ class RadioGroupItemComponent {
13549
13625
  }
13550
13626
  }
13551
13627
  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 });
13628
+ 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
13629
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RadioGroupItemComponent, decorators: [{
13554
13630
  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"] }]
13631
+ 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
13632
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { invalid: [{
13557
13633
  type: Input
13558
13634
  }], name: [{