myrta-ui 1.1.35 → 1.1.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/form/checkbox-group/checkbox-group.component.mjs +60 -37
- package/esm2020/lib/components/form/checkbox-group/components/checkbox-group-header/checkbox-group-header.component.mjs +4 -4
- package/esm2020/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.mjs +42 -43
- package/esm2020/lib/components/form/checkbox-group/helpers/change-group-value.mjs +7 -8
- package/esm2020/lib/components/form/checkbox-group/helpers/change-item-value.mjs +2 -2
- package/esm2020/lib/components/form/checkbox-group/helpers/filter-search-group.mjs +5 -5
- package/esm2020/lib/components/form/checkbox-group/helpers/get-checked-items.mjs +2 -2
- package/esm2020/lib/components/form/checkbox-group/helpers/get-inner-list.helper.mjs +46 -0
- package/esm2020/lib/components/form/checkbox-group/helpers/get-item-by-id.mjs +4 -4
- package/esm2020/lib/components/form/checkbox-group/helpers/get-sorted-list.mjs +2 -2
- package/esm2020/lib/components/form/checkbox-group/models/checkbox-group.model.mjs +1 -1
- package/esm2020/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.mjs +3 -3
- package/esm2020/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.mjs +4 -3
- package/esm2020/lib/services/mrx-form-validator/validations/max-length.validation.mjs +6 -2
- package/esm2020/lib/services/mrx-form-validator/validations/max-value.validation.mjs +1 -1
- package/esm2020/lib/services/mrx-form-validator/validations/min-length.validation.mjs +6 -2
- package/esm2020/lib/services/mrx-form-validator/validations/required.validation.mjs +1 -1
- package/fesm2015/myrta-ui.mjs +173 -98
- package/fesm2015/myrta-ui.mjs.map +1 -1
- package/fesm2020/myrta-ui.mjs +172 -98
- package/fesm2020/myrta-ui.mjs.map +1 -1
- package/lib/components/form/checkbox-group/checkbox-group.component.d.ts +21 -14
- package/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.d.ts +13 -9
- package/lib/components/form/checkbox-group/helpers/change-group-value.d.ts +3 -3
- package/lib/components/form/checkbox-group/helpers/change-item-value.d.ts +3 -3
- package/lib/components/form/checkbox-group/helpers/filter-search-group.d.ts +2 -2
- package/lib/components/form/checkbox-group/helpers/get-checked-items.d.ts +2 -2
- package/lib/components/form/checkbox-group/helpers/get-inner-list.helper.d.ts +2 -0
- package/lib/components/form/checkbox-group/helpers/get-item-by-id.d.ts +2 -2
- package/lib/components/form/checkbox-group/helpers/get-sorted-list.d.ts +2 -2
- package/lib/components/form/checkbox-group/models/checkbox-group.model.d.ts +7 -2
- package/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.d.ts +1 -1
- package/package.json +1 -1
package/fesm2020/myrta-ui.mjs
CHANGED
|
@@ -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 (
|
|
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 (
|
|
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 = '
|
|
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.
|
|
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.
|
|
12869
|
-
searchArray.push({ ...item,
|
|
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.
|
|
12878
|
-
newArray.length && searchArray.push({ ...item,
|
|
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
|
|
12896
|
+
const getItemInnerById = (list, itemId) => {
|
|
12888
12897
|
const findById = (acc, el) => {
|
|
12889
12898
|
if (el?.id === itemId)
|
|
12890
12899
|
return el;
|
|
12891
|
-
if (el?.
|
|
12892
|
-
return el.
|
|
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.
|
|
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.
|
|
12925
|
+
return checkUnderArrayValue(x.items, value);
|
|
12917
12926
|
}
|
|
12918
12927
|
return x.value !== value;
|
|
12919
12928
|
});
|
|
12920
12929
|
};
|
|
12921
|
-
const changeGroupValue = (list,
|
|
12922
|
-
if (!
|
|
12930
|
+
const changeGroupValue = (list, parentId, value) => {
|
|
12931
|
+
if (!parentId) {
|
|
12923
12932
|
return;
|
|
12924
12933
|
}
|
|
12925
|
-
const parent =
|
|
12934
|
+
const parent = getItemInnerById(list, parentId);
|
|
12926
12935
|
if (parent) {
|
|
12927
|
-
parent.value = checkUnderArrayValue(parent.
|
|
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.
|
|
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(
|
|
12997
|
-
this.
|
|
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.
|
|
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.
|
|
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.
|
|
13085
|
+
this._detector.detectChanges();
|
|
13027
13086
|
}
|
|
13028
13087
|
ngOnChanges(changes) {
|
|
13029
13088
|
if (changes['item'] && (changes['item'].currentValue.value === null)) {
|
|
13030
|
-
this.
|
|
13089
|
+
this.isOpen = true;
|
|
13031
13090
|
}
|
|
13032
13091
|
else {
|
|
13033
|
-
|
|
13034
|
-
this.animationState = 'open';
|
|
13035
|
-
}
|
|
13036
|
-
else {
|
|
13037
|
-
this.animationState = 'close';
|
|
13038
|
-
}
|
|
13092
|
+
this.isOpen = !!this.animationTrigger;
|
|
13039
13093
|
}
|
|
13040
|
-
this.
|
|
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: {
|
|
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('
|
|
13052
|
-
|
|
13053
|
-
|
|
13054
|
-
|
|
13055
|
-
|
|
13056
|
-
|
|
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('
|
|
13070
|
-
|
|
13071
|
-
|
|
13072
|
-
|
|
13073
|
-
|
|
13074
|
-
|
|
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.
|
|
13081
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: {
|
|
13082
|
-
type: Input
|
|
13083
|
-
}], displaced: [{
|
|
13131
|
+
], template: "<div class=\"mrx-checkbox-group__item\" [class.mrx-checkbox-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-checkbox-group__item--array\" *ngIf=\"item.items?.length && level < 10; else singleCheckboxTemplate\">\r\n <div class=\"mrx-checkbox-group__item--array-head\">\r\n <div class=\"mrx-checkbox-group__item--head-icon mr-1\">\r\n <span\r\n class=\"mrx-icon icon-chevron-down icon-font-16 cursor-pointer\"\r\n (click)=\"toggleList(item)\"\r\n [style.transform]=\"translateChevron\"\r\n ></span>\r\n </div>\r\n\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"isIndeterminate\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n\r\n <div class=\"mrx-checkbox-group__item--array-list\" [@openList]=\"isOpen ? 'open' : 'close'\" (@openList.done)=\"onAnimationEvent()\">\r\n <ng-container>\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of item.items; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [item]=\"item\"\r\n [displaced]=\"true\"\r\n [animationTrigger]=\"animationTrigger\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (checkboxChanged)=\"checkboxChanged.emit($event)\"\r\n ></mrx-checkbox-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleCheckboxTemplate>\r\n <div class=\"mrx-checkbox-group__item--single\" [class.item-displaced]=\"displaced\">\r\n <mrx-checkbox\r\n [ngModel]=\"item.value\"\r\n [indeterminate]=\"false\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (ngModelChange)=\"checkboxChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-checkbox>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-checkbox-group__item--single.item-displaced{margin-left:20px}.mrx-checkbox-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-checkbox-group__item--array-list{padding-left:20px}.mrx-checkbox-group__item--buttom-ident{margin-bottom:12px}\n"] }]
|
|
13132
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { displaced: [{
|
|
13084
13133
|
type: Input
|
|
13085
13134
|
}], level: [{
|
|
13086
13135
|
type: Input
|
|
@@ -13092,6 +13141,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
13092
13141
|
type: Input
|
|
13093
13142
|
}], readonly: [{
|
|
13094
13143
|
type: Input
|
|
13144
|
+
}], invalid: [{
|
|
13145
|
+
type: Input
|
|
13146
|
+
}], item: [{
|
|
13147
|
+
type: Input
|
|
13095
13148
|
}], animationEnd: [{
|
|
13096
13149
|
type: Output
|
|
13097
13150
|
}], checkboxChanged: [{
|
|
@@ -13099,17 +13152,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
13099
13152
|
}] } });
|
|
13100
13153
|
|
|
13101
13154
|
class CheckboxGroupComponent {
|
|
13102
|
-
constructor() {
|
|
13155
|
+
constructor(_detector) {
|
|
13156
|
+
this._detector = _detector;
|
|
13103
13157
|
this._isInit = false;
|
|
13104
13158
|
this._groupItemsWrapperHeight = 0;
|
|
13105
13159
|
this._searchValue = '';
|
|
13106
13160
|
this.list = [];
|
|
13107
|
-
this.
|
|
13161
|
+
this.innerList = [];
|
|
13108
13162
|
this.checkedList = [];
|
|
13163
|
+
this.filteredList = [];
|
|
13109
13164
|
// SAVE STATE
|
|
13110
13165
|
this.uuid = v4();
|
|
13111
13166
|
this.fields = [];
|
|
13112
|
-
this.items = [];
|
|
13113
13167
|
this.scrollMaxHeight = 200;
|
|
13114
13168
|
this.searchable = false;
|
|
13115
13169
|
this.scrollable = false;
|
|
@@ -13124,19 +13178,34 @@ class CheckboxGroupComponent {
|
|
|
13124
13178
|
// LABEL
|
|
13125
13179
|
this.labelText = '';
|
|
13126
13180
|
this.linkText = '';
|
|
13181
|
+
// VALIDATE
|
|
13182
|
+
this.invalid = false;
|
|
13183
|
+
this.invalidMessage = '';
|
|
13127
13184
|
this.changed = new EventEmitter();
|
|
13128
13185
|
this.changeChecked = new EventEmitter();
|
|
13129
13186
|
this.modelChange = new EventEmitter();
|
|
13130
|
-
this.
|
|
13187
|
+
this.modelChangeInner = new EventEmitter();
|
|
13131
13188
|
this.modelItemChange = new EventEmitter();
|
|
13132
13189
|
this.onChange = (value) => { };
|
|
13133
13190
|
this.onTouched = () => { };
|
|
13134
13191
|
}
|
|
13192
|
+
set items(list) {
|
|
13193
|
+
this.list = list;
|
|
13194
|
+
}
|
|
13195
|
+
get items() {
|
|
13196
|
+
return this.filteredList;
|
|
13197
|
+
}
|
|
13135
13198
|
get isSearchValue() {
|
|
13136
13199
|
return this._searchValue;
|
|
13137
13200
|
}
|
|
13138
13201
|
get displaced() {
|
|
13139
|
-
return this.list.some((item) => item.
|
|
13202
|
+
return this.list.some((item) => item.items?.length);
|
|
13203
|
+
}
|
|
13204
|
+
get getInvalid() {
|
|
13205
|
+
return this.invalid;
|
|
13206
|
+
}
|
|
13207
|
+
get getInvalidMessage() {
|
|
13208
|
+
return this.invalidMessage;
|
|
13140
13209
|
}
|
|
13141
13210
|
get getClasses() {
|
|
13142
13211
|
return `${this.customClasses}`;
|
|
@@ -13147,38 +13216,24 @@ class CheckboxGroupComponent {
|
|
|
13147
13216
|
trackByFn(index, item) {
|
|
13148
13217
|
return item.id;
|
|
13149
13218
|
}
|
|
13150
|
-
writeValue(
|
|
13151
|
-
if (
|
|
13152
|
-
this.
|
|
13153
|
-
this.
|
|
13154
|
-
this.
|
|
13219
|
+
writeValue(selectedValue) {
|
|
13220
|
+
if (selectedValue !== null) {
|
|
13221
|
+
this.checkedList = selectedValue;
|
|
13222
|
+
this.innerList = getInnerList(this.list, this.checkedList);
|
|
13223
|
+
this.filteredList = getSortedList(this.innerList, this.sortable);
|
|
13155
13224
|
this._isInit = true;
|
|
13156
13225
|
}
|
|
13157
13226
|
}
|
|
13158
|
-
registerOnChange(fn) {
|
|
13159
|
-
this.onChange = fn;
|
|
13160
|
-
}
|
|
13161
|
-
registerOnTouched(fn) {
|
|
13162
|
-
this.onTouched = fn;
|
|
13163
|
-
}
|
|
13164
|
-
updateValue(list, checkedList) {
|
|
13165
|
-
this.changed.emit(list);
|
|
13166
|
-
this.changeChecked.emit();
|
|
13167
|
-
this.modelChange.emit({ value: list, id: this.uuid });
|
|
13168
|
-
this.modelCheckedChange.emit({ value: checkedList, id: this.uuid });
|
|
13169
|
-
this.onChange(list);
|
|
13170
|
-
this.onTouched();
|
|
13171
|
-
}
|
|
13172
13227
|
checkHeightGroupWrapper() {
|
|
13173
13228
|
this._groupItemsWrapperHeight = this.groupItemsWrapper.nativeElement.scrollHeight;
|
|
13174
13229
|
}
|
|
13175
13230
|
updateCheckboxGroupSearchValue(searchValue) {
|
|
13176
13231
|
this._searchValue = searchValue;
|
|
13177
|
-
this.filteredList = filterSearchGroup$1(this.
|
|
13232
|
+
this.filteredList = filterSearchGroup$1(this.innerList, this._searchValue);
|
|
13178
13233
|
}
|
|
13179
13234
|
checkboxChanged({ value, item }) {
|
|
13180
13235
|
const cloneList = cloneDeep(this.filteredList);
|
|
13181
|
-
const findItem =
|
|
13236
|
+
const findItem = getItemInnerById(cloneList, item.id);
|
|
13182
13237
|
let changedItem = null;
|
|
13183
13238
|
if (findItem) {
|
|
13184
13239
|
changedItem = changeItemValue(findItem, value);
|
|
@@ -13191,6 +13246,7 @@ class CheckboxGroupComponent {
|
|
|
13191
13246
|
if (changedItem) {
|
|
13192
13247
|
this.modelItemChange.emit(changedItem);
|
|
13193
13248
|
}
|
|
13249
|
+
this._detector.detectChanges();
|
|
13194
13250
|
}
|
|
13195
13251
|
clearFilters() {
|
|
13196
13252
|
const cloneList = cloneDeep(this.filteredList);
|
|
@@ -13200,15 +13256,29 @@ class CheckboxGroupComponent {
|
|
|
13200
13256
|
this.checkedList = getCheckedItems(cloneList);
|
|
13201
13257
|
this.updateValue(this.filteredList, this.checkedList);
|
|
13202
13258
|
}
|
|
13259
|
+
registerOnChange(fn) {
|
|
13260
|
+
this.onChange = fn;
|
|
13261
|
+
}
|
|
13262
|
+
registerOnTouched(fn) {
|
|
13263
|
+
this.onTouched = fn;
|
|
13264
|
+
}
|
|
13265
|
+
updateValue(list, checkedList) {
|
|
13266
|
+
this.changed.emit(checkedList);
|
|
13267
|
+
this.changeChecked.emit();
|
|
13268
|
+
this.modelChange.emit({ value: checkedList, id: this.uuid });
|
|
13269
|
+
this.modelChangeInner.emit({ value: this.innerList, id: this.uuid });
|
|
13270
|
+
this.onChange(checkedList);
|
|
13271
|
+
this.onTouched();
|
|
13272
|
+
}
|
|
13203
13273
|
}
|
|
13204
|
-
CheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13205
|
-
CheckboxGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CheckboxGroupComponent, selector: "mrx-checkbox-group", inputs: { fields: "fields",
|
|
13274
|
+
CheckboxGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
13275
|
+
CheckboxGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: CheckboxGroupComponent, selector: "mrx-checkbox-group", inputs: { fields: "fields", scrollMaxHeight: "scrollMaxHeight", searchable: "searchable", scrollable: "scrollable", sortable: "sortable", disabled: "disabled", readonly: "readonly", enableMessage: "enableMessage", searchPlaceholder: "searchPlaceholder", customClasses: "customClasses", tooltip: "tooltip", labelText: "labelText", linkText: "linkText", invalid: "invalid", invalidMessage: "invalidMessage", items: "items" }, outputs: { changed: "changed", changeChecked: "changeChecked", modelChange: "modelChange", modelChangeInner: "modelChangeInner", modelItemChange: "modelItemChange" }, providers: [
|
|
13206
13276
|
{
|
|
13207
13277
|
provide: NG_VALUE_ACCESSOR,
|
|
13208
13278
|
useExisting: forwardRef(() => CheckboxGroupComponent),
|
|
13209
13279
|
multi: true,
|
|
13210
13280
|
},
|
|
13211
|
-
], viewQueries: [{ propertyName: "groupItemsWrapper", first: true, predicate: ["groupItemsWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"], components: [{ type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { type: CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: ["searchable", "searchPlaceholder", "tooltip", "labelText", "linkText", "checkedItemsCount"], outputs: ["updateCheckboxGroupSearchValue", "clearFilters"] }, { type: CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: ["
|
|
13281
|
+
], viewQueries: [{ propertyName: "groupItemsWrapper", first: true, predicate: ["groupItemsWrapper"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; trackBy: trackByFn; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getInvalidMessage\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n ></mrx-error-message>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"], components: [{ type: SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { type: CheckboxGroupHeaderComponent, selector: "mrx-checkbox-group-header", inputs: ["searchable", "searchPlaceholder", "tooltip", "labelText", "linkText", "checkedItemsCount"], outputs: ["updateCheckboxGroupSearchValue", "clearFilters"] }, { type: CheckboxGroupItemComponent, selector: "mrx-checkbox-group-item", inputs: ["displaced", "level", "animationTrigger", "isLast", "disabled", "readonly", "invalid", "item"], outputs: ["animationEnd", "checkboxChanged"] }, { type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13212
13282
|
CheckboxGroupComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, providedIn: CheckboxGroupComponent });
|
|
13213
13283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
|
|
13214
13284
|
type: Injectable,
|
|
@@ -13223,10 +13293,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
13223
13293
|
useExisting: forwardRef(() => CheckboxGroupComponent),
|
|
13224
13294
|
multi: true,
|
|
13225
13295
|
},
|
|
13226
|
-
], template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"] }]
|
|
13227
|
-
}], ctorParameters: function () { return []; }, propDecorators: { fields: [{
|
|
13228
|
-
type: Input
|
|
13229
|
-
}], items: [{
|
|
13296
|
+
], template: "<div class=\"mrx-checkbox-group\" [class]=\"getClasses\">\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\" type=\"checkboxGroup\"></mrx-save-state>\r\n\r\n <mrx-checkbox-group-header\r\n [searchable]=\"searchable\"\r\n [searchPlaceholder]=\"searchPlaceholder\"\r\n [tooltip]=\"tooltip\"\r\n [labelText]=\"labelText\"\r\n [linkText]=\"linkText\"\r\n [checkedItemsCount]=\"checkedList.length\"\r\n (updateCheckboxGroupSearchValue)=\"updateCheckboxGroupSearchValue($event)\"\r\n (clearFilters)=\"clearFilters()\"\r\n ></mrx-checkbox-group-header>\r\n\r\n <div\r\n #groupItemsWrapper\r\n *ngIf=\"filteredList?.length; else enableMessageTemplate\"\r\n class=\"mrx-checkbox-group-wrapper\"\r\n [class.mrx-checkbox-group-wrapper--scrollable]=\"scrollable\"\r\n [class.--active]=\"getShowScroll\"\r\n [style.max-height]=\"scrollable ? scrollMaxHeight + 'px' : 'auto'\"\r\n >\r\n <mrx-checkbox-group-item\r\n *ngFor=\"let item of filteredList; trackBy: trackByFn; let last = last\"\r\n [displaced]=\"displaced || false\"\r\n [item]=\"item\"\r\n [isLast]=\"last\"\r\n [animationTrigger]=\"!!isSearchValue\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [invalid]=\"invalid\"\r\n (animationEnd)=\"checkHeightGroupWrapper()\"\r\n (checkboxChanged)=\"checkboxChanged($event)\"\r\n ></mrx-checkbox-group-item>\r\n </div>\r\n\r\n <ng-template #enableMessageTemplate>\r\n <p class=\"mrx-checkbox-group__empty-message\">{{ enableMessage }}</p>\r\n </ng-template>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getInvalidMessage\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n ></mrx-error-message>\r\n</div>\r\n", styles: [".mrx-checkbox-group{position:relative}.mrx-checkbox-group-wrapper--scrollable{overflow-y:auto;border-width:1px 0 1px 0;border-style:solid;border-color:transparent;padding-top:0;padding-bottom:0;transition:boder-color .2s,padding-top .2s,padding-bottom .2s}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar{width:8px;height:8px}.mrx-checkbox-group-wrapper--scrollable::-webkit-scrollbar-thumb{background:var(--neutral-bg-stroke-default);border-radius:8px}.mrx-checkbox-group-wrapper--scrollable.--active{padding-top:12px;padding-bottom:12px;border-color:var(--neutral-bg-divider)}.mrx-checkbox-group__empty-message{padding-top:12px;padding-bottom:12px}\n"] }]
|
|
13297
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { fields: [{
|
|
13230
13298
|
type: Input
|
|
13231
13299
|
}], scrollMaxHeight: [{
|
|
13232
13300
|
type: Input
|
|
@@ -13252,6 +13320,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
13252
13320
|
type: Input
|
|
13253
13321
|
}], linkText: [{
|
|
13254
13322
|
type: Input
|
|
13323
|
+
}], invalid: [{
|
|
13324
|
+
type: Input
|
|
13325
|
+
}], invalidMessage: [{
|
|
13326
|
+
type: Input
|
|
13327
|
+
}], items: [{
|
|
13328
|
+
type: Input
|
|
13255
13329
|
}], groupItemsWrapper: [{
|
|
13256
13330
|
type: ViewChild,
|
|
13257
13331
|
args: ['groupItemsWrapper']
|
|
@@ -13261,7 +13335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
13261
13335
|
type: Output
|
|
13262
13336
|
}], modelChange: [{
|
|
13263
13337
|
type: Output
|
|
13264
|
-
}],
|
|
13338
|
+
}], modelChangeInner: [{
|
|
13265
13339
|
type: Output
|
|
13266
13340
|
}], modelItemChange: [{
|
|
13267
13341
|
type: Output
|
|
@@ -13549,10 +13623,10 @@ class RadioGroupItemComponent {
|
|
|
13549
13623
|
}
|
|
13550
13624
|
}
|
|
13551
13625
|
RadioGroupItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RadioGroupItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
13552
|
-
RadioGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: { invalid: "invalid", name: "name", selectedValue: "selectedValue", item: "item", displaced: "displaced", level: "level", bold: "bold", animationTrigger: "animationTrigger", isLast: "isLast", disabled: "disabled", readonly: "readonly" }, outputs: { animationEnd: "animationEnd", radioChanged: "radioChanged" }, ngImport: i0, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-radio-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleradioTemplate\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\r\n\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [value]=\"item.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [invalid]=\"invalid\"\r\n
|
|
13626
|
+
RadioGroupItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: { invalid: "invalid", name: "name", selectedValue: "selectedValue", item: "item", displaced: "displaced", level: "level", bold: "bold", animationTrigger: "animationTrigger", isLast: "isLast", disabled: "disabled", readonly: "readonly" }, outputs: { animationEnd: "animationEnd", radioChanged: "radioChanged" }, ngImport: i0, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-radio-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleradioTemplate\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\r\n\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [value]=\"item.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [invalid]=\"invalid\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n\r\n <div class=\"mrx-radio-group__item--array-list\">\r\n <ng-container>\r\n <mrx-radio-group-item\r\n *ngFor=\"let child of item.array; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [selectedValue]=\"selectedValue\"\r\n [item]=\"child\"\r\n [invalid]=\"invalid\"\r\n [bold]=\"bold\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [animationTrigger]=\"animationTrigger\"\r\n (radioChanged)=\"radioChanged.emit($event)\"\r\n ></mrx-radio-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleradioTemplate>\r\n <div class=\"mrx-radio-group__item--single\">\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [type]=\"'default'\"\r\n [value]=\"item.id\"\r\n [invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-radio-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-radio-group__item--array-list{padding-left:20px}.mrx-radio-group__item--buttom-ident{margin-bottom:12px}\n"], components: [{ type: RadioComponent, selector: "mrx-radio", inputs: ["required", "type", "name", "boldLabel", "disabled", "readonly", "placeholder", "label", "customClasses", "invalid", "value"] }, { type: RadioGroupItemComponent, selector: "mrx-radio-group-item", inputs: ["invalid", "name", "selectedValue", "item", "displaced", "level", "bold", "animationTrigger", "isLast", "disabled", "readonly"], outputs: ["animationEnd", "radioChanged"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13553
13627
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RadioGroupItemComponent, decorators: [{
|
|
13554
13628
|
type: Component,
|
|
13555
|
-
args: [{ selector: 'mrx-radio-group-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-radio-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleradioTemplate\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\r\n\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [value]=\"item.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [invalid]=\"invalid\"\r\n
|
|
13629
|
+
args: [{ selector: 'mrx-radio-group-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mrx-radio-group__item\" [class.mrx-radio-group__item--buttom-ident]=\"!isLast\">\r\n <div class=\"mrx-radio-group__item--array\" *ngIf=\"item.array.length && level < 10; else singleradioTemplate\">\r\n <div class=\"mrx-radio-group__item--array-head mb-12px\">\r\n\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [value]=\"item.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [invalid]=\"invalid\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n\r\n <div class=\"mrx-radio-group__item--array-list\">\r\n <ng-container>\r\n <mrx-radio-group-item\r\n *ngFor=\"let child of item.array; trackBy: trackByFn\"\r\n [level]=\"level + 1\"\r\n [selectedValue]=\"selectedValue\"\r\n [item]=\"child\"\r\n [invalid]=\"invalid\"\r\n [bold]=\"bold\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [animationTrigger]=\"animationTrigger\"\r\n (radioChanged)=\"radioChanged.emit($event)\"\r\n ></mrx-radio-group-item>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-template #singleradioTemplate>\r\n <div class=\"mrx-radio-group__item--single\">\r\n <mrx-radio\r\n [ngModel]=\"selectedValue?.id\"\r\n [name]=\"name\"\r\n [boldLabel]=\"bold\"\r\n [type]=\"'default'\"\r\n [value]=\"item.id\"\r\n [invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n (ngModelChange)=\"radioChangeModel($event, item)\"\r\n >{{ item.text }}</mrx-radio>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n\r\n", styles: [".mrx-radio-group__item--array-head{display:flex;justify-content:flex-start;align-items:center}.mrx-radio-group__item--array-list{padding-left:20px}.mrx-radio-group__item--buttom-ident{margin-bottom:12px}\n"] }]
|
|
13556
13630
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { invalid: [{
|
|
13557
13631
|
type: Input
|
|
13558
13632
|
}], name: [{
|