myrta-ui 17.2.7 → 17.2.8

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.
@@ -14911,10 +14911,6 @@ class CheckboxGroupComponent {
14911
14911
  customClasses = '';
14912
14912
  expandable = false;
14913
14913
  isExpanded = false;
14914
- minSelected = null; // минимальное количество выбранных
14915
- maxSelected = null; // максимальное количество выбранных
14916
- minSelectedMessage = 'Выберите минимум {count} вариант(ов)';
14917
- maxSelectedMessage = 'Выберите максимум {count} вариант(ов)';
14918
14914
  // TOOLTIP
14919
14915
  tooltip = '';
14920
14916
  // LABEL
@@ -14946,33 +14942,10 @@ class CheckboxGroupComponent {
14946
14942
  return this.list.some((item) => item.items?.length);
14947
14943
  }
14948
14944
  get getInvalid() {
14949
- // Проверяем базовую валидацию
14950
- if (this.invalid) {
14951
- return true;
14952
- }
14953
- // Проверяем минимальное количество
14954
- if (this.minSelected !== null && this.checkedList.length < this.minSelected) {
14955
- return true;
14956
- }
14957
- // Проверяем максимальное количество
14958
- if (this.maxSelected !== null && this.checkedList.length > this.maxSelected) {
14959
- return true;
14960
- }
14961
- return false;
14945
+ return this.invalid;
14962
14946
  }
14963
14947
  get getInvalidMessage() {
14964
- // Если есть пользовательское сообщение об ошибке, используем его
14965
- if (this.invalidMessage) {
14966
- return this.invalidMessage;
14967
- }
14968
- // Генерируем сообщение на основе нарушенного ограничения
14969
- if (this.minSelected !== null && this.checkedList.length < this.minSelected) {
14970
- return this.minSelectedMessage.replace('{count}', this.minSelected.toString());
14971
- }
14972
- if (this.maxSelected !== null && this.checkedList.length > this.maxSelected) {
14973
- return this.maxSelectedMessage.replace('{count}', this.maxSelected.toString());
14974
- }
14975
- return '';
14948
+ return this.invalidMessage;
14976
14949
  }
14977
14950
  get getClasses() {
14978
14951
  return `${this.customClasses}`;
@@ -15010,22 +14983,6 @@ class CheckboxGroupComponent {
15010
14983
  const findItem = getItemInnerById(cloneList, item.id);
15011
14984
  let changedItem = null;
15012
14985
  if (findItem) {
15013
- // Проверяем ограничение на максимальное количество при попытке выбрать
15014
- if (value === true && this.maxSelected !== null) {
15015
- const currentCheckedCount = getCheckedItems(cloneList).length;
15016
- if (currentCheckedCount >= this.maxSelected) {
15017
- // Не позволяем выбрать больше максимума
15018
- return;
15019
- }
15020
- }
15021
- // Проверяем ограничение на минимальное количество при попытке снять выбор
15022
- if (value === false && this.minSelected !== null) {
15023
- const currentCheckedCount = getCheckedItems(cloneList).length;
15024
- if (currentCheckedCount <= this.minSelected && this.isItemChecked(findItem)) {
15025
- // Не позволяем снять выбор, если будет меньше минимума
15026
- return;
15027
- }
15028
- }
15029
14986
  changedItem = changeItemValue(findItem, value);
15030
14987
  changeGroupValue(cloneList, item.parentId, value);
15031
14988
  getSortedList(cloneList, this.sortable);
@@ -15039,30 +14996,7 @@ class CheckboxGroupComponent {
15039
14996
  }
15040
14997
  this._detector.detectChanges();
15041
14998
  }
15042
- isItemChecked(item) {
15043
- return item.value === true;
15044
- }
15045
- checkAll() {
15046
- if (this.maxSelected !== null && this.innerList.length > this.maxSelected) {
15047
- // Если максимум меньше общего количества, выводим ошибку
15048
- console.warn(`Cannot select all items. Max selected is ${this.maxSelected}, total items is ${this.innerList.length}`);
15049
- return;
15050
- }
15051
- const cloneList = cloneDeep(this.innerList);
15052
- changeListValue(cloneList, true);
15053
- getSortedList(cloneList, this.sortable);
15054
- this.innerList = cloneList;
15055
- this.filteredList = filterSearchGroup$1(this.innerList, this._searchValue);
15056
- this.checkedList = getCheckedItems(cloneList);
15057
- this.updateValue([], this.checkedList);
15058
- this._detector.detectChanges();
15059
- }
15060
14999
  clearFilters() {
15061
- if (this.minSelected !== null && this.minSelected > 0) {
15062
- // Если есть минимальное ограничение, не позволяем очистить все
15063
- console.warn(`Cannot clear all items. Min selected is ${this.minSelected}`);
15064
- return;
15065
- }
15066
15000
  const cloneList = cloneDeep(this.filteredList);
15067
15001
  changeListValue(cloneList, false);
15068
15002
  getSortedList(cloneList, this.sortable);
@@ -15092,7 +15026,7 @@ class CheckboxGroupComponent {
15092
15026
  }
15093
15027
  }
15094
15028
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
15095
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", 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", expandable: "expandable", isExpanded: "isExpanded", minSelected: "minSelected", maxSelected: "maxSelected", minSelectedMessage: "minSelectedMessage", maxSelectedMessage: "maxSelectedMessage", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", invalid: "invalid", invalidMessage: "invalidMessage", items: "items" }, outputs: { changed: "changed", modelChange: "modelChange", changedInner: "changedInner", modelChangeInner: "modelChangeInner", modelItemChange: "modelItemChange" }, providers: [
15029
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", 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", expandable: "expandable", isExpanded: "isExpanded", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", invalid: "invalid", invalidMessage: "invalidMessage", items: "items" }, outputs: { changed: "changed", modelChange: "modelChange", changedInner: "changedInner", modelChangeInner: "modelChangeInner", modelItemChange: "modelItemChange" }, providers: [
15096
15030
  {
15097
15031
  provide: NG_VALUE_ACCESSOR,
15098
15032
  useExisting: forwardRef(() => CheckboxGroupComponent),
@@ -15139,14 +15073,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
15139
15073
  type: Input
15140
15074
  }], isExpanded: [{
15141
15075
  type: Input
15142
- }], minSelected: [{
15143
- type: Input
15144
- }], maxSelected: [{
15145
- type: Input
15146
- }], minSelectedMessage: [{
15147
- type: Input
15148
- }], maxSelectedMessage: [{
15149
- type: Input
15150
15076
  }], tooltip: [{
15151
15077
  type: Input
15152
15078
  }], labelText: [{
@@ -15225,6 +15151,7 @@ class RadioComponent {
15225
15151
  placeholder = '';
15226
15152
  label = '';
15227
15153
  customClasses = '';
15154
+ id = '';
15228
15155
  invalid = false;
15229
15156
  _value;
15230
15157
  get value() {
@@ -15257,13 +15184,13 @@ class RadioComponent {
15257
15184
  this.onChange(this.modelValue);
15258
15185
  }
15259
15186
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15260
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RadioComponent, selector: "mrx-radio", inputs: { required: "required", type: "type", name: "name", boldLabel: "boldLabel", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", label: "label", customClasses: "customClasses", invalid: "invalid", _value: ["value", "_value"] }, providers: [
15187
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RadioComponent, selector: "mrx-radio", inputs: { required: "required", type: "type", name: "name", boldLabel: "boldLabel", disabled: "disabled", readonly: "readonly", placeholder: "placeholder", label: "label", customClasses: "customClasses", id: "id", invalid: "invalid", _value: ["value", "_value"] }, providers: [
15261
15188
  {
15262
15189
  provide: NG_VALUE_ACCESSOR,
15263
15190
  useExisting: forwardRef(() => RadioComponent),
15264
15191
  multi: true,
15265
15192
  },
15266
- ], ngImport: i0, template: "<div class=\"mrx-radio__wrapper\">\r\n <label\r\n class=\"mrx-radio\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [(ngModel)]=\"modelValue\"\r\n [disabled]=\"disabled || readonly\"\r\n [readonly]=\"readonly\"\r\n (change)=\"valueChanged(value)\"\r\n />\r\n\r\n <span class=\"mrx-radio__mark\"><span class=\"mrx-radio__mark__inner\"></span></span>\r\n\r\n <span class=\"ml-1\" [class]=\"boldLabel ? 'mrx-radio__label--bold' : 'mrx-radio__label'\">\r\n {{label}}\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required && !disabled\" class=\"required-active\">*</span>\r\n </span>\r\n </label>\r\n</div>\r\n", styles: [".mrx-radio.mrx-radio{display:flex!important;align-items:center;min-height:auto!important;margin-bottom:0!important;overflow:visible;background-color:transparent;cursor:pointer;box-sizing:border-box;position:relative}.mrx-radio input[type=radio]{position:absolute;z-index:-1;opacity:0;width:0;height:0;margin:0}.mrx-radio.mrx-radio.mrx-radio-default .mrx-radio__mark{display:flex;align-items:center;justify-content:center;height:var(--sizing-4);width:var(--sizing-4);min-width:var(--sizing-4);border:var(--border-width-checkbox) solid var(--neutral-bg-stroke-default, #DBDFE5);border-radius:50%;transition:border .2s;position:relative}.mrx-radio.mrx-radio.mrx-radio-default .mrx-radio__mark .mrx-radio__mark__inner{display:block;width:6px;height:6px;border-radius:50%;background:var(--brand-bg-primary-default, #2A6AB8);opacity:0;transition:opacity .2s}.mrx-radio.mrx-radio.mrx-radio-default:hover .mrx-radio__mark{border-color:var(--neutral-bg-stroke-hover, #0F54AA)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:checked+.mrx-radio__mark{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:checked+.mrx-radio__mark .mrx-radio__mark__inner{opacity:1}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:not(:checked):disabled+.mrx-radio__mark{background:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:disabled+.mrx-radio__mark{border-color:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:disabled+.mrx-radio__mark .mrx-radio__mark__inner{background:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-input-error.mrx-radio-default .mrx-radio__mark{border-color:var(--system-bg-controls-negative-default, #B83B15)}.mrx-radio.mrx-radio .mrx-radio__label{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:400;line-height:var(--body-md-line-height)}.mrx-radio.mrx-radio .mrx-radio__label--bold{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:700;line-height:var(--body-md-line-height)}.mrx-radio.mrx-radio .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative, #C65836);margin-left:var(--spacing-1);position:relative;display:inline-block}.mrx-radio__wrapper.mrx-radio__wrapper{display:flex;align-items:center;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15193
+ ], ngImport: i0, template: "<div class=\"mrx-radio__wrapper\">\r\n <label\r\n class=\"mrx-radio\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [id]=\"id\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [(ngModel)]=\"modelValue\"\r\n [disabled]=\"disabled || readonly\"\r\n [readonly]=\"readonly\"\r\n (change)=\"valueChanged(value)\"\r\n />\r\n\r\n <span class=\"mrx-radio__mark\"><span class=\"mrx-radio__mark__inner\"></span></span>\r\n\r\n <span class=\"ml-1\" [class]=\"boldLabel ? 'mrx-radio__label--bold' : 'mrx-radio__label'\">\r\n {{label}}\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required && !disabled\" class=\"required-active\">*</span>\r\n </span>\r\n </label>\r\n</div>\r\n", styles: [".mrx-radio.mrx-radio{display:flex!important;align-items:center;min-height:auto!important;margin-bottom:0!important;overflow:visible;background-color:transparent;cursor:pointer;box-sizing:border-box;position:relative}.mrx-radio input[type=radio]{position:absolute;z-index:-1;opacity:0;width:0;height:0;margin:0}.mrx-radio.mrx-radio.mrx-radio-default .mrx-radio__mark{display:flex;align-items:center;justify-content:center;height:var(--sizing-4);width:var(--sizing-4);min-width:var(--sizing-4);border:var(--border-width-checkbox) solid var(--neutral-bg-stroke-default, #DBDFE5);border-radius:50%;transition:border .2s;position:relative}.mrx-radio.mrx-radio.mrx-radio-default .mrx-radio__mark .mrx-radio__mark__inner{display:block;width:6px;height:6px;border-radius:50%;background:var(--brand-bg-primary-default, #2A6AB8);opacity:0;transition:opacity .2s}.mrx-radio.mrx-radio.mrx-radio-default:hover .mrx-radio__mark{border-color:var(--neutral-bg-stroke-hover, #0F54AA)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:checked+.mrx-radio__mark{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:checked+.mrx-radio__mark .mrx-radio__mark__inner{opacity:1}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:not(:checked):disabled+.mrx-radio__mark{background:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:disabled+.mrx-radio__mark{border-color:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:disabled+.mrx-radio__mark .mrx-radio__mark__inner{background:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-input-error.mrx-radio-default .mrx-radio__mark{border-color:var(--system-bg-controls-negative-default, #B83B15)}.mrx-radio.mrx-radio .mrx-radio__label{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:400;line-height:var(--body-md-line-height)}.mrx-radio.mrx-radio .mrx-radio__label--bold{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:700;line-height:var(--body-md-line-height)}.mrx-radio.mrx-radio .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative, #C65836);margin-left:var(--spacing-1);position:relative;display:inline-block}.mrx-radio__wrapper.mrx-radio__wrapper{display:flex;align-items:center;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15267
15194
  }
15268
15195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioComponent, decorators: [{
15269
15196
  type: Component,
@@ -15273,7 +15200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
15273
15200
  useExisting: forwardRef(() => RadioComponent),
15274
15201
  multi: true,
15275
15202
  },
15276
- ], template: "<div class=\"mrx-radio__wrapper\">\r\n <label\r\n class=\"mrx-radio\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [(ngModel)]=\"modelValue\"\r\n [disabled]=\"disabled || readonly\"\r\n [readonly]=\"readonly\"\r\n (change)=\"valueChanged(value)\"\r\n />\r\n\r\n <span class=\"mrx-radio__mark\"><span class=\"mrx-radio__mark__inner\"></span></span>\r\n\r\n <span class=\"ml-1\" [class]=\"boldLabel ? 'mrx-radio__label--bold' : 'mrx-radio__label'\">\r\n {{label}}\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required && !disabled\" class=\"required-active\">*</span>\r\n </span>\r\n </label>\r\n</div>\r\n", styles: [".mrx-radio.mrx-radio{display:flex!important;align-items:center;min-height:auto!important;margin-bottom:0!important;overflow:visible;background-color:transparent;cursor:pointer;box-sizing:border-box;position:relative}.mrx-radio input[type=radio]{position:absolute;z-index:-1;opacity:0;width:0;height:0;margin:0}.mrx-radio.mrx-radio.mrx-radio-default .mrx-radio__mark{display:flex;align-items:center;justify-content:center;height:var(--sizing-4);width:var(--sizing-4);min-width:var(--sizing-4);border:var(--border-width-checkbox) solid var(--neutral-bg-stroke-default, #DBDFE5);border-radius:50%;transition:border .2s;position:relative}.mrx-radio.mrx-radio.mrx-radio-default .mrx-radio__mark .mrx-radio__mark__inner{display:block;width:6px;height:6px;border-radius:50%;background:var(--brand-bg-primary-default, #2A6AB8);opacity:0;transition:opacity .2s}.mrx-radio.mrx-radio.mrx-radio-default:hover .mrx-radio__mark{border-color:var(--neutral-bg-stroke-hover, #0F54AA)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:checked+.mrx-radio__mark{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:checked+.mrx-radio__mark .mrx-radio__mark__inner{opacity:1}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:not(:checked):disabled+.mrx-radio__mark{background:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:disabled+.mrx-radio__mark{border-color:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:disabled+.mrx-radio__mark .mrx-radio__mark__inner{background:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-input-error.mrx-radio-default .mrx-radio__mark{border-color:var(--system-bg-controls-negative-default, #B83B15)}.mrx-radio.mrx-radio .mrx-radio__label{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:400;line-height:var(--body-md-line-height)}.mrx-radio.mrx-radio .mrx-radio__label--bold{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:700;line-height:var(--body-md-line-height)}.mrx-radio.mrx-radio .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative, #C65836);margin-left:var(--spacing-1);position:relative;display:inline-block}.mrx-radio__wrapper.mrx-radio__wrapper{display:flex;align-items:center;justify-content:flex-start}\n"] }]
15203
+ ], template: "<div class=\"mrx-radio__wrapper\">\r\n <label\r\n class=\"mrx-radio\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [id]=\"id\"\r\n [name]=\"name\"\r\n [value]=\"value\"\r\n [(ngModel)]=\"modelValue\"\r\n [disabled]=\"disabled || readonly\"\r\n [readonly]=\"readonly\"\r\n (change)=\"valueChanged(value)\"\r\n />\r\n\r\n <span class=\"mrx-radio__mark\"><span class=\"mrx-radio__mark__inner\"></span></span>\r\n\r\n <span class=\"ml-1\" [class]=\"boldLabel ? 'mrx-radio__label--bold' : 'mrx-radio__label'\">\r\n {{label}}\r\n <ng-content></ng-content>\r\n <span *ngIf=\"required && !disabled\" class=\"required-active\">*</span>\r\n </span>\r\n </label>\r\n</div>\r\n", styles: [".mrx-radio.mrx-radio{display:flex!important;align-items:center;min-height:auto!important;margin-bottom:0!important;overflow:visible;background-color:transparent;cursor:pointer;box-sizing:border-box;position:relative}.mrx-radio input[type=radio]{position:absolute;z-index:-1;opacity:0;width:0;height:0;margin:0}.mrx-radio.mrx-radio.mrx-radio-default .mrx-radio__mark{display:flex;align-items:center;justify-content:center;height:var(--sizing-4);width:var(--sizing-4);min-width:var(--sizing-4);border:var(--border-width-checkbox) solid var(--neutral-bg-stroke-default, #DBDFE5);border-radius:50%;transition:border .2s;position:relative}.mrx-radio.mrx-radio.mrx-radio-default .mrx-radio__mark .mrx-radio__mark__inner{display:block;width:6px;height:6px;border-radius:50%;background:var(--brand-bg-primary-default, #2A6AB8);opacity:0;transition:opacity .2s}.mrx-radio.mrx-radio.mrx-radio-default:hover .mrx-radio__mark{border-color:var(--neutral-bg-stroke-hover, #0F54AA)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:checked+.mrx-radio__mark{border-color:var(--brand-bg-primary-default, #2A6AB8)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:checked+.mrx-radio__mark .mrx-radio__mark__inner{opacity:1}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:not(:checked):disabled+.mrx-radio__mark{background:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:disabled+.mrx-radio__mark{border-color:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-radio-default input[type=radio]:disabled+.mrx-radio__mark .mrx-radio__mark__inner{background:var(--neutral-control-bg-accent-disabled, #71767E)}.mrx-radio.mrx-radio.mrx-input-error.mrx-radio-default .mrx-radio__mark{border-color:var(--system-bg-controls-negative-default, #B83B15)}.mrx-radio.mrx-radio .mrx-radio__label{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:400;line-height:var(--body-md-line-height)}.mrx-radio.mrx-radio .mrx-radio__label--bold{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:700;line-height:var(--body-md-line-height)}.mrx-radio.mrx-radio .required-active{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--system-icon-negative, #C65836);margin-left:var(--spacing-1);position:relative;display:inline-block}.mrx-radio__wrapper.mrx-radio__wrapper{display:flex;align-items:center;justify-content:flex-start}\n"] }]
15277
15204
  }], propDecorators: { required: [{
15278
15205
  type: Input
15279
15206
  }], type: [{
@@ -15292,6 +15219,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
15292
15219
  type: Input
15293
15220
  }], customClasses: [{
15294
15221
  type: Input
15222
+ }], id: [{
15223
+ type: Input
15295
15224
  }], invalid: [{
15296
15225
  type: Input
15297
15226
  }], _value: [{
@@ -15409,7 +15338,7 @@ class RadioGroupItemComponent {
15409
15338
  this.detector.detectChanges();
15410
15339
  }
15411
15340
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioGroupItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
15412
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", 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: { radioChanged: "radioChanged" }, ngImport: i0, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n @if (item.items.length && level < 10) {\r\n <div class=\"mrx-radio-group__item--array\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\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 @for (child of item.items; track child.id) {\r\n <mrx-radio-group-item\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 }\r\n </div>\r\n </div>\r\n } @else {\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 }\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"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioComponent, selector: "mrx-radio", inputs: ["required", "type", "name", "boldLabel", "disabled", "readonly", "placeholder", "label", "customClasses", "invalid", "value"] }, { kind: "component", type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: ["invalid", "name", "selectedValue", "item", "displaced", "level", "bold", "animationTrigger", "isLast", "disabled", "readonly"], outputs: ["radioChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15341
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", 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: { radioChanged: "radioChanged" }, ngImport: i0, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n @if (item.items.length && level < 10) {\r\n <div class=\"mrx-radio-group__item--array\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\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 @for (child of item.items; track child.id) {\r\n <mrx-radio-group-item\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 }\r\n </div>\r\n </div>\r\n } @else {\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 }\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"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioComponent, selector: "mrx-radio", inputs: ["required", "type", "name", "boldLabel", "disabled", "readonly", "placeholder", "label", "customClasses", "id", "invalid", "value"] }, { kind: "component", type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: ["invalid", "name", "selectedValue", "item", "displaced", "level", "bold", "animationTrigger", "isLast", "disabled", "readonly"], outputs: ["radioChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15413
15342
  }
15414
15343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioGroupItemComponent, decorators: [{
15415
15344
  type: Component,
@@ -15492,7 +15421,7 @@ class RadioGroupComponent {
15492
15421
  uuid = v4();
15493
15422
  fields = [];
15494
15423
  searchSize = 'medium';
15495
- name = '';
15424
+ name = `radio-group-${v4()}`;
15496
15425
  scrollMaxHeight = 200;
15497
15426
  searchable = false;
15498
15427
  bold = false;