mmhglobal-dynamicform 2.0.3 → 2.0.5
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/README.md +10 -2
- package/esm2020/lib/components/inputfieldbase.component.mjs +2 -2
- package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +8 -8
- package/esm2020/lib/zudf/zudf.component.mjs +11 -5
- package/fesm2015/mmhglobal-dynamicform.mjs +15 -10
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +15 -9
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/zpostselectinput/zpostselectinput.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -5559,7 +5559,7 @@ class InputFieldBase extends FieldBase {
|
|
|
5559
5559
|
this.triggerEvent("inputfield-onClick", this.data.OnClick, event, fieldValue || event['OnClick']);
|
|
5560
5560
|
}
|
|
5561
5561
|
onChangeCC(event, fieldValue) {
|
|
5562
|
-
ZComponentHelper.
|
|
5562
|
+
ZComponentHelper.setModelValue(this.data.CCValue, this.getFieldValue(event, fieldValue), this.group);
|
|
5563
5563
|
this.triggerEvent("inputfield-onChangeCC", this.data.CCOnChange, event, fieldValue);
|
|
5564
5564
|
}
|
|
5565
5565
|
onChange(event, fieldValue) {
|
|
@@ -7250,8 +7250,8 @@ class ZpostselectinputComponent extends InputFieldBase {
|
|
|
7250
7250
|
}
|
|
7251
7251
|
console.warn(this.data.Name, ' - Invalid setting for OptionName: ', optionName);
|
|
7252
7252
|
}
|
|
7253
|
-
|
|
7254
|
-
super.
|
|
7253
|
+
onChangeCC_desktop(event) {
|
|
7254
|
+
super.onChangeCC(null, event);
|
|
7255
7255
|
this.handleInfiniteScrollOnChange(event);
|
|
7256
7256
|
}
|
|
7257
7257
|
onChange_mobile(event) {
|
|
@@ -7427,10 +7427,10 @@ class ZpostselectinputComponent extends InputFieldBase {
|
|
|
7427
7427
|
}
|
|
7428
7428
|
}
|
|
7429
7429
|
ZpostselectinputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZpostselectinputComponent, deps: [{ token: i2.ResourceApiService }, { token: i2.WebApiService }, { token: i2.CacheService }, { token: ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7430
|
-
ZpostselectinputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZpostselectinputComponent, selector: "app-zpostselectinput", viewQueries: [{ propertyName: "comboBox", first: true, predicate: ["comboBox"], descendants: true }, { propertyName: "selectComponent", first: true, predicate: ["selectComponent"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"zpostselectinput-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div *ngIf=\"isMobileScreen() && !isLoading\" style=\"display:flex; justify-content: space-between; width: 100%\" class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <span
|
|
7430
|
+
ZpostselectinputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZpostselectinputComponent, selector: "app-zpostselectinput", viewQueries: [{ propertyName: "comboBox", first: true, predicate: ["comboBox"], descendants: true }, { propertyName: "selectComponent", first: true, predicate: ["selectComponent"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"zpostselectinput-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div *ngIf=\"isMobileScreen() && !isLoading\" style=\"display:flex; justify-content: space-between; width: 100%\" class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <span class=\"ccinput-ccvalue-container e1tag-style2\" [style]=\"componentProperties.style.style2\">\r\n <ionic-selectable #selectComponent item-content [id]=\"data.CCValue\" headerColor=\"primary\" clearButtonText=\"Clear\"\r\n [canClear]=\"true\" searchFailText=\"Nothing found :(\" [canSearch]=\"!data['disable-search']\"\r\n [placeholder]=\"data.CCPlaceHolder\" [(ngModel)]=\"group.zModel[data.CCValue]\"\r\n [shouldFocusSearchbar]=\"!data['disable-search']\" [hasInfiniteScroll]=\"!!data.HasInfiniteScroll\"\r\n (onSearch)=\"onSearch($event)\" (onInfiniteScroll)=\"getInfiniteData($event)\" [isMultiple]=\"data.Multiple\"\r\n [isEnabled]=\"!(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [items]=\"getItemsData()\" [itemValueField]=\"itemValueField\" [itemTextField]=\"itemTextField\"\r\n [shouldStoreItemValue]=\"true\" [canAddItem]=\"!!data.OnAddItem\" (onAddItem)=\"onAddItem($event)\"\r\n (onChange)=\"onChange_mobile($event)\" [style]=\"componentProperties.style.style3\" class=\"e1tag-style3\">\r\n\r\n <ng-template ionicSelectableItemIconTemplate let-item=\"item\" let-isItemSelected=\"isItemSelected\">\r\n <fa-icon slot=\"start\" class=\"isItemSelected e1tag-style4\" [icon]=\"['far', isItemSelected ? 'check-circle': 'circle']\"\r\n size=\"sm\" [styles]=\"{'color': isItemSelected ? 'dodgerBlue' : 'lightGray'}\" [style]=\"componentProperties.style.style4\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableCloseButtonTemplate>\r\n <!-- <ion-icon name=\"close-circle\"></ion-icon> -->\r\n <fa-icon [icon]=\"'times-circle'\" size=\"md\" class=\"e1tag-style5\" [style]=\"componentProperties.style.style5\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableTitleTemplate>\r\n {{data.Label}}\r\n <ion-text\r\n *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\">*</ion-text>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableItemTemplate let-item=\"item\">\r\n {{ getItemTemplate(item, data, group, itemValueField, itemTextField) }}\r\n <!-- <ng-template zselectitemelement [item]=\"item\"></ng-template> -->\r\n </ng-template>\r\n </ionic-selectable>\r\n </span>\r\n <span [formGroup]=\"form\" class=\"ccinput-value-container e1tag-style7\" [style]=\"componentProperties.containerStyle.style7\">\r\n <ion-input [id]=\"data.Value\" [placeholder]=\"data.PlaceHolder\" [type]=\"'text'\" [formControlName]=\"data.Value\"\r\n [readonly]=\"data.ReadOnly\" [inputmode]=\"'text'\" [style]=\"componentProperties.style.style6\" class=\"e1tag-style6\"></ion-input>\r\n </span>\r\n <app-uivalidationmessage style=\"flex-basis: 5%;\" [group]=\"group\" [data]=\"data\" [form]=\"form\">\r\n </app-uivalidationmessage>\r\n </div>\r\n <div *ngIf=\"!isMobileScreen()\" style=\"display:flex; justify-content: space-between; width: 100%\" class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <span [style]=\"componentProperties.style.style2\" class=\"ccinput-ccvalue-container e1tag-style2\">\r\n <kendo-combobox [id]=\"data.CCValue\" [data]=\"getItemsData()\" [valueField]=\"itemValueField\"\r\n [textField]=\"itemTextField\" [formControlName]=\"data.CCValue\" [valuePrimitive]=\"true\"\r\n [placeholder]=\"data.CCPlaceHolder\" (valueChange)=\"onChangeCC_desktop($event)\" [filterable]=\"!!data.HasInfiniteScroll\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (filterChange)=\"handleFilter($event)\" (open)=\"handleOpen()\" (close)=\"handleClose()\" (blur)=\"handleBlur()\"\r\n class=\"input-field e1tag-style3\" [loading]=\"isLoading\" [style]=\"componentProperties.style.style3\"\r\n #comboBox>\r\n </kendo-combobox>\r\n </span>\r\n <span [formGroup]=\"form\" class=\"ccinput-value-container e1tag-style7\" [style]=\"componentProperties.containerStyle.style7\">\r\n <app-ztext [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style6\"\r\n [style]=\"componentProperties.containerStyle.style6\">\r\n </app-ztext>\r\n </span>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-combobox:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.ccinput-value-container{flex-basis:60%;margin-left:5px}.ccinput-ccvalue-container{flex-basis:35%}\n"], components: [{ type: i3$4.IonicSelectableComponent, selector: "ionic-selectable", inputs: ["items", "modalCssClass", "modalEnterAnimation", "modalLeaveAnimation", "isConfirmButtonEnabled", "itemValueField", "itemTextField", "groupValueField", "groupTextField", "canSearch", "hasInfiniteScroll", "hasVirtualScroll", "virtualScrollApproxItemHeight", "searchPlaceholder", "placeholder", "searchFailText", "clearButtonText", "addButtonText", "confirmButtonText", "closeButtonText", "shouldFocusSearchbar", "headerColor", "groupColor", "closeButtonSlot", "itemIconSlot", "searchDebounce", "disabledItems", "shouldStoreItemValue", "canSaveItem", "canDeleteItem", "virtualScrollHeaderFn", "isEnabled", "shouldBackdropClose", "hasConfirmButton", "isOnSearchEnabled", "canClear", "isMultiple", "canAddItem"], outputs: ["itemsChange", "onChange", "onSearch", "onSearchFail", "onSearchSuccess", "onInfiniteScroll", "onOpen", "onClose", "onSelect", "onClear", "onSaveItem", "onDeleteItem", "onAddItem"] }, { type: i5.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i2$1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { type: i2$1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "size", "spellcheck", "step", "type", "value"] }, { type: UivalidationmessageComponent, selector: "app-uivalidationmessage", inputs: ["group", "data", "form"] }, { type: i6$2.ComboBoxComponent, selector: "kendo-combobox", inputs: ["focusableId", "allowCustom", "data", "value", "textField", "valueField", "valuePrimitive", "valueNormalizer", "placeholder", "popupSettings", "listHeight", "iconClass", "loading", "suggest", "clearButton", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "selectionChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoComboBox"] }, { type: ZtextComponent, selector: "app-ztext" }], directives: [{ type: i4$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3$4.IonicSelectableItemIconTemplateDirective, selector: "[ionicSelectableItemIconTemplate]" }, { type: i3$4.IonicSelectableCloseButtonTemplateDirective, selector: "[ionicSelectableCloseButtonTemplate]" }, { type: i3$4.IonicSelectableTitleTemplateDirective, selector: "[ionicSelectableTitleTemplate]" }, { type: i3$4.IonicSelectableItemTemplateDirective, selector: "[ionicSelectableItemTemplate]" }, { type: i2$1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
7431
7431
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZpostselectinputComponent, decorators: [{
|
|
7432
7432
|
type: Component,
|
|
7433
|
-
args: [{ selector: "app-zpostselectinput", template: "<div [formGroup]=\"form\" class=\"zpostselectinput-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div *ngIf=\"isMobileScreen() && !isLoading\" style=\"display:flex; justify-content: space-between; width: 100%\" class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <span
|
|
7433
|
+
args: [{ selector: "app-zpostselectinput", template: "<div [formGroup]=\"form\" class=\"zpostselectinput-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div *ngIf=\"isMobileScreen() && !isLoading\" style=\"display:flex; justify-content: space-between; width: 100%\" class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <span class=\"ccinput-ccvalue-container e1tag-style2\" [style]=\"componentProperties.style.style2\">\r\n <ionic-selectable #selectComponent item-content [id]=\"data.CCValue\" headerColor=\"primary\" clearButtonText=\"Clear\"\r\n [canClear]=\"true\" searchFailText=\"Nothing found :(\" [canSearch]=\"!data['disable-search']\"\r\n [placeholder]=\"data.CCPlaceHolder\" [(ngModel)]=\"group.zModel[data.CCValue]\"\r\n [shouldFocusSearchbar]=\"!data['disable-search']\" [hasInfiniteScroll]=\"!!data.HasInfiniteScroll\"\r\n (onSearch)=\"onSearch($event)\" (onInfiniteScroll)=\"getInfiniteData($event)\" [isMultiple]=\"data.Multiple\"\r\n [isEnabled]=\"!(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n [items]=\"getItemsData()\" [itemValueField]=\"itemValueField\" [itemTextField]=\"itemTextField\"\r\n [shouldStoreItemValue]=\"true\" [canAddItem]=\"!!data.OnAddItem\" (onAddItem)=\"onAddItem($event)\"\r\n (onChange)=\"onChange_mobile($event)\" [style]=\"componentProperties.style.style3\" class=\"e1tag-style3\">\r\n\r\n <ng-template ionicSelectableItemIconTemplate let-item=\"item\" let-isItemSelected=\"isItemSelected\">\r\n <fa-icon slot=\"start\" class=\"isItemSelected e1tag-style4\" [icon]=\"['far', isItemSelected ? 'check-circle': 'circle']\"\r\n size=\"sm\" [styles]=\"{'color': isItemSelected ? 'dodgerBlue' : 'lightGray'}\" [style]=\"componentProperties.style.style4\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableCloseButtonTemplate>\r\n <!-- <ion-icon name=\"close-circle\"></ion-icon> -->\r\n <fa-icon [icon]=\"'times-circle'\" size=\"md\" class=\"e1tag-style5\" [style]=\"componentProperties.style.style5\"></fa-icon>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableTitleTemplate>\r\n {{data.Label}}\r\n <ion-text\r\n *ngIf=\"(!!componentProperties.isRequiredField ? group[componentProperties.isRequiredField] : componentProperties.isRequired)\"\r\n color=\"danger\">*</ion-text>\r\n </ng-template>\r\n\r\n <ng-template ionicSelectableItemTemplate let-item=\"item\">\r\n {{ getItemTemplate(item, data, group, itemValueField, itemTextField) }}\r\n <!-- <ng-template zselectitemelement [item]=\"item\"></ng-template> -->\r\n </ng-template>\r\n </ionic-selectable>\r\n </span>\r\n <span [formGroup]=\"form\" class=\"ccinput-value-container e1tag-style7\" [style]=\"componentProperties.containerStyle.style7\">\r\n <ion-input [id]=\"data.Value\" [placeholder]=\"data.PlaceHolder\" [type]=\"'text'\" [formControlName]=\"data.Value\"\r\n [readonly]=\"data.ReadOnly\" [inputmode]=\"'text'\" [style]=\"componentProperties.style.style6\" class=\"e1tag-style6\"></ion-input>\r\n </span>\r\n <app-uivalidationmessage style=\"flex-basis: 5%;\" [group]=\"group\" [data]=\"data\" [form]=\"form\">\r\n </app-uivalidationmessage>\r\n </div>\r\n <div *ngIf=\"!isMobileScreen()\" style=\"display:flex; justify-content: space-between; width: 100%\" class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <span [style]=\"componentProperties.style.style2\" class=\"ccinput-ccvalue-container e1tag-style2\">\r\n <kendo-combobox [id]=\"data.CCValue\" [data]=\"getItemsData()\" [valueField]=\"itemValueField\"\r\n [textField]=\"itemTextField\" [formControlName]=\"data.CCValue\" [valuePrimitive]=\"true\"\r\n [placeholder]=\"data.CCPlaceHolder\" (valueChange)=\"onChangeCC_desktop($event)\" [filterable]=\"!!data.HasInfiniteScroll\"\r\n [readonly]=\"(!!componentProperties.isReadOnlyField ? group[componentProperties.isReadOnlyField] : componentProperties.isReadOnly)\"\r\n (filterChange)=\"handleFilter($event)\" (open)=\"handleOpen()\" (close)=\"handleClose()\" (blur)=\"handleBlur()\"\r\n class=\"input-field e1tag-style3\" [loading]=\"isLoading\" [style]=\"componentProperties.style.style3\"\r\n #comboBox>\r\n </kendo-combobox>\r\n </span>\r\n <span [formGroup]=\"form\" class=\"ccinput-value-container e1tag-style7\" [style]=\"componentProperties.containerStyle.style7\">\r\n <app-ztext [data]=\"data\" [group]=\"group\" [form]=\"form\"\r\n [containerField]=\"containerField\" [componentProperties]=\"componentProperties\" class=\"e1tag-container-style6\"\r\n [style]=\"componentProperties.containerStyle.style6\">\r\n </app-ztext>\r\n </span>\r\n </div>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-combobox:focus-within{box-shadow:0 0 3px 1px var(--ion-color-primary)}.item.sc-ion-label-md-h,.item .sc-ion-label-md-h{font-weight:var(--z-label-weight);color:var(--z-label-color);text-shadow:var(--z-label-shadow)}.ccinput-value-container{flex-basis:60%;margin-left:5px}.ccinput-ccvalue-container{flex-basis:35%}\n"] }]
|
|
7434
7434
|
}], ctorParameters: function () { return [{ type: i2.ResourceApiService }, { type: i2.WebApiService }, { type: i2.CacheService }, { type: ZComponentService }]; }, propDecorators: { comboBox: [{
|
|
7435
7435
|
type: ViewChild,
|
|
7436
7436
|
args: ["comboBox"]
|
|
@@ -12272,18 +12272,24 @@ class ZudfComponent {
|
|
|
12272
12272
|
// Field is not inside a container, so we skip it
|
|
12273
12273
|
return;
|
|
12274
12274
|
}
|
|
12275
|
+
// no mvglist, direct return. dont need do anything.
|
|
12276
|
+
if (!this.group['mvglist']) {
|
|
12277
|
+
return;
|
|
12278
|
+
}
|
|
12275
12279
|
// if container but not multi value group = true, we skip it.
|
|
12276
12280
|
const container = [controlNameSegments[0], controlNameSegments[1], controlNameSegments[2]].join('_');
|
|
12277
|
-
if (this.group['mvglist']) {
|
|
12278
|
-
|
|
12279
|
-
return;
|
|
12280
|
-
}
|
|
12281
|
+
if (!this.group['mvglist'].includes(container)) {
|
|
12282
|
+
return;
|
|
12281
12283
|
}
|
|
12282
12284
|
const control = fg.get(key);
|
|
12283
12285
|
if (!control) {
|
|
12284
12286
|
// If the control is not inside a container, skip it.
|
|
12285
12287
|
return;
|
|
12286
12288
|
}
|
|
12289
|
+
// return if formcontrol is valid.
|
|
12290
|
+
if (control.status === 'VALID') {
|
|
12291
|
+
return;
|
|
12292
|
+
}
|
|
12287
12293
|
const controlErrors = control.errors;
|
|
12288
12294
|
if (controlErrors) {
|
|
12289
12295
|
// Set the control's errors to null.
|