mmhglobal-dynamicform 2.25.0 → 2.27.0

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.
@@ -1780,9 +1780,6 @@ class MainService {
1780
1780
  this.signalrService.joinGroup(firstProjectCode);
1781
1781
  }
1782
1782
  }
1783
- else {
1784
- console.warn('signalR not enabled.');
1785
- }
1786
1783
  }
1787
1784
  handleSignalRModificationAlert(formId) {
1788
1785
  if (this.signalrService.signalREnabled() && this.environment.enableFormPageModificationAlert) {
@@ -4457,7 +4454,7 @@ class ButtonFieldBase extends FieldBase {
4457
4454
  return isVisible;
4458
4455
  }
4459
4456
  getButtonLabel(button) {
4460
- let labelResult = button.Label || '';
4457
+ let labelResult = button.Label || button.Name || '';
4461
4458
  let labelExpr = labelResult.match(/^{{.*}}$/gi);
4462
4459
  if (labelExpr) {
4463
4460
  labelExpr = labelExpr[0].slice(2, -2);
@@ -8275,7 +8272,7 @@ class ZuploadComponent extends InputFieldBase {
8275
8272
  // DivClass: "col-md-12 col-md-6",
8276
8273
  // Visible: true
8277
8274
  // }];
8278
- constructor(componentService, authService, compressImage, zcoreService, ngZone, sharePointService) {
8275
+ constructor(componentService, authService, compressImage, zcoreService, ngZone, sharePointService, alertService) {
8279
8276
  super(componentService);
8280
8277
  this.componentService = componentService;
8281
8278
  this.authService = authService;
@@ -8283,6 +8280,7 @@ class ZuploadComponent extends InputFieldBase {
8283
8280
  this.zcoreService = zcoreService;
8284
8281
  this.ngZone = ngZone;
8285
8282
  this.sharePointService = sharePointService;
8283
+ this.alertService = alertService;
8286
8284
  this.uploadAttachmentUrl = null;
8287
8285
  this.uploadSaveUrl = "/Attachment/Chunk_Upload_Save"; // should represent an actual API endpoint
8288
8286
  this.uploadRemoveUrl = "/Attachment/Chunk_Upload_Remove"; // should represent an actual API endpoint
@@ -8343,6 +8341,9 @@ class ZuploadComponent extends InputFieldBase {
8343
8341
  if (this.data.Multiple) {
8344
8342
  this.isMultiple = this.data.Multiple;
8345
8343
  }
8344
+ if (this.data.AllowedFileExtension) {
8345
+ this.restrictions.allowedExtensions = this.restrictions.allowedExtensions.concat(this.data.AllowedFileExtension);
8346
+ }
8346
8347
  this.componentProperties.style.style6 = this.componentProperties.style.style6 || "margin: 5px; border: 1px solid gray;";
8347
8348
  }
8348
8349
  onSuccess(e) {
@@ -8438,18 +8439,24 @@ class ZuploadComponent extends InputFieldBase {
8438
8439
  // Image Preview
8439
8440
  const me = this;
8440
8441
  e.files.forEach((file) => {
8441
- if (file.rawFile && file.rawFile.type.includes("image")) {
8442
- if (!file.validationErrors) {
8443
- const reader = new FileReader();
8444
- reader.onload = function (ev) {
8445
- if (me.data.EnableImagePreview) {
8446
- if (!me.uid.includes(file.uid)) {
8447
- me.uid.push(file.uid);
8448
- me.imagePreviews.push(Object.assign(Object.assign({}, file), { src: reader.result }));
8442
+ if (!me.isValidUploadedFile(me, file)) {
8443
+ e.preventDefault();
8444
+ return;
8445
+ }
8446
+ else {
8447
+ if (file.rawFile && file.rawFile.type.includes("image")) {
8448
+ if (!file.validationErrors) {
8449
+ const reader = new FileReader();
8450
+ reader.onload = function (ev) {
8451
+ if (me.data.EnableImagePreview) {
8452
+ if (!me.uid.includes(file.uid)) {
8453
+ me.uid.push(file.uid);
8454
+ me.imagePreviews.push(Object.assign(Object.assign({}, file), { src: reader.result }));
8455
+ }
8449
8456
  }
8450
- }
8451
- };
8452
- reader.readAsDataURL(file.rawFile);
8457
+ };
8458
+ reader.readAsDataURL(file.rawFile);
8459
+ }
8453
8460
  }
8454
8461
  }
8455
8462
  });
@@ -8513,38 +8520,60 @@ class ZuploadComponent extends InputFieldBase {
8513
8520
  });
8514
8521
  }
8515
8522
  }
8523
+ isValidUploadedFile(me, file) {
8524
+ const fileSize = file.rawFile.size;
8525
+ const fileExtension = file.rawFile.name.split('.').pop().toLowerCase();
8526
+ // Check if file size and extension are valid
8527
+ if (fileSize > me.restrictions.maxFileSize || !me.restrictions.allowedExtensions.includes(fileExtension)) {
8528
+ let errorMessage = 'Error: ';
8529
+ if (!me.restrictions.allowedExtensions.includes(fileExtension)) {
8530
+ errorMessage = `Invalid file type. Allowed types are: ${me.restrictions.allowedExtensions.join(', ')}.`;
8531
+ }
8532
+ else if (fileSize > me.restrictions.maxFileSize) {
8533
+ errorMessage = `File size cannot exceeds ${me.formatFileSize(me.restrictions.maxFileSize)}.`;
8534
+ }
8535
+ me.alertService.showOkay('Failed to upload', errorMessage, ['col-4']);
8536
+ return false;
8537
+ }
8538
+ return true;
8539
+ }
8516
8540
  selectEventHandler(e) {
8517
8541
  const me = this;
8518
- /****** sharepoint ******/
8542
+ //#region sharepoint
8519
8543
  const attachmentInfo = this.sharePointService.getAttachmentInfo(this.data["DownloadFileConfig"]);
8520
- //change uploadSaveUrl
8544
+ // Change uploadSaveUrl if saving to SharePoint
8521
8545
  if (attachmentInfo && attachmentInfo.isSaveToSharePoint && attachmentInfo.siteName) {
8522
8546
  const attachmentSourceUrl = this.zcoreService.getEnvironment().attachmentSourceUrl;
8523
8547
  this.uploadSaveUrl = attachmentSourceUrl + '/Chunk_Upload_Save';
8524
8548
  }
8525
- /****** sharepoint ******/
8549
+ //#endregion
8526
8550
  if (this.data['SelectFileOnly']) {
8527
- // append all file to component memory
8551
+ // Append all files to component memory
8528
8552
  e.files.forEach((file) => __awaiter(this, void 0, void 0, function* () {
8529
- if (file.rawFile) {
8530
- const reader = new FileReader();
8531
- reader.onload = function (ev) {
8532
- // clone the data and also add the readed file to the object
8533
- const fileData = Object.assign({}, file);
8534
- fileData['file'] = ev.target["result"];
8535
- // push to component fileList
8536
- me.fileList.push(fileData);
8537
- me.group['zupload_' + me.data.Value] = me.fileList;
8538
- if (me.data['FileSelectedEvent']) {
8539
- // call the project event
8540
- me.group.subject.next({
8541
- type: "zupload-fileSelectedEvent",
8542
- target: me.data['FileSelectedEvent'],
8543
- data: me.fileList
8544
- });
8545
- }
8546
- };
8547
- yield reader.readAsDataURL(file.rawFile);
8553
+ if (me.isValidUploadedFile(me, file)) {
8554
+ if (file.rawFile) {
8555
+ const reader = new FileReader();
8556
+ reader.onload = function (ev) {
8557
+ // Clone the data and also add the read file to the object
8558
+ const fileData = Object.assign({}, file);
8559
+ fileData['file'] = ev.target["result"];
8560
+ // Push to component fileList
8561
+ me.fileList.push(fileData);
8562
+ me.group['zupload_' + me.data.Value] = me.fileList;
8563
+ if (me.data['FileSelectedEvent']) {
8564
+ // Call the project event
8565
+ me.group.subject.next({
8566
+ type: "zupload-fileSelectedEvent",
8567
+ target: me.data['FileSelectedEvent'],
8568
+ data: me.fileList
8569
+ });
8570
+ }
8571
+ };
8572
+ yield reader.readAsDataURL(file.rawFile);
8573
+ }
8574
+ }
8575
+ else {
8576
+ e.preventDefault();
8548
8577
  }
8549
8578
  }));
8550
8579
  }
@@ -8556,29 +8585,32 @@ class ZuploadComponent extends InputFieldBase {
8556
8585
  //Check if Image Compression is enabled.
8557
8586
  if (imageCompressionEnabled === true) {
8558
8587
  e.files.forEach((file) => {
8559
- // Compress only if it is an image file
8560
- if (file.rawFile && file.rawFile.type.includes("image")) {
8561
- if (!file.validationErrors) {
8562
- const imgConfig = this.compressionConfigHandler(this.data.Compression);
8563
- if (file.size > imgConfig.FileSizeMinSizeByte) {
8564
- me.compressImage.compress(file.rawFile, imgConfig) //Pass in parameter to set the Compression Options
8565
- .pipe(take(1))
8566
- .subscribe(compressFile => {
8567
- this.ngZone.run(() => {
8568
- file.rawFile = compressFile;
8569
- file.size = compressFile.size;
8570
- // clone the data and also add the readed file to the object
8571
- const fileData = Object.assign({}, file);
8572
- // push to component fileList
8573
- me.fileList.push(fileData);
8574
- const reader = new FileReader();
8575
- reader.readAsDataURL(file.rawFile);
8588
+ if (me.isValidUploadedFile(me, file)) {
8589
+ // Compress only if it is an image file
8590
+ if (file.rawFile && file.rawFile.type.includes("image")) {
8591
+ if (!file.validationErrors) {
8592
+ const imgConfig = this.compressionConfigHandler(this.data.Compression);
8593
+ if (file.size > imgConfig.FileSizeMinSizeByte) {
8594
+ me.compressImage.compress(file.rawFile, imgConfig) //Pass in parameter to set the Compression Options
8595
+ .pipe(take(1))
8596
+ .subscribe(compressFile => {
8597
+ this.ngZone.run(() => {
8598
+ file.rawFile = compressFile;
8599
+ file.size = compressFile.size;
8600
+ // Push to component fileList
8601
+ me.fileList.push(Object.assign({}, file));
8602
+ const reader = new FileReader();
8603
+ reader.readAsDataURL(file.rawFile);
8604
+ });
8605
+ console.log(`Compressed file size: ${(file.rawFile.size / 1024).toFixed(2)}KB`);
8576
8606
  });
8577
- console.log(`Compressed file size: ${(file.rawFile.size / 1024).toFixed(2)}KB`);
8578
- });
8579
- } // file size check
8580
- } // validationErrors check
8581
- } // file type check
8607
+ } // file size check
8608
+ } // validationErrors check
8609
+ } // file type check
8610
+ }
8611
+ else {
8612
+ e.preventDefault();
8613
+ }
8582
8614
  }); // loop each file
8583
8615
  } // imagecompression check
8584
8616
  // add to group scope
@@ -8590,13 +8622,20 @@ class ZuploadComponent extends InputFieldBase {
8590
8622
  this.uploadComponent.clearFiles();
8591
8623
  this.group['zupload_' + this.data.Value] = this.fileList;
8592
8624
  }
8625
+ formatFileSize(bytes) {
8626
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
8627
+ if (bytes === 0)
8628
+ return '0 Byte';
8629
+ const i = Math.floor(Math.log(bytes) / Math.log(1024));
8630
+ return parseFloat((bytes / Math.pow(1024, i)).toFixed(2)) + sizes[i];
8631
+ }
8593
8632
  }
8594
- ZuploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZuploadComponent, deps: [{ token: ZComponentService }, { token: i2.AuthService }, { token: i2.CompressImageService }, { token: i2.ZCoreService }, { token: i0.NgZone }, { token: i2.SharePointService }], target: i0.ɵɵFactoryTarget.Component });
8595
- ZuploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZuploadComponent, selector: "app-zupload", viewQueries: [{ propertyName: "uploadComponent", first: true, predicate: ["uploadComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"zupload-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <kendo-upload #uploadComponent *ngIf=\"!data.SelectFileOnly\" [id]=\"data.Value\" [autoUpload]=\"isAutoUpload\"\r\n [saveUrl]=\"uploadSaveUrl\" [removeUrl]=\"uploadRemoveUrl\" [restrictions]=\"restrictions\"\r\n [multiple]=\"isMultiple\" [chunkable]=\"chunkSettings\" [showFileList]=\"showFileList\"\r\n (select)=\"selectEventHandler($event)\" (remove)=\"onRemove($event)\" (success)=\"onSuccess($event)\"\r\n (upload)=\"uploadEventHandler($event)\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </kendo-upload>\r\n\r\n <kendo-fileselect #uploadComponent *ngIf=\"data.SelectFileOnly\" [id]=\"data.Value\" (select)=\"selectEventHandler($event)\"\r\n (remove)=\"onRemove($event)\" [formControlName]=\"data.Value\" (valueChange)=\"onChange($event)\" [restrictions]=\"restrictions\"\r\n [style]=\"componentProperties.style.style1\" class=e1tag-style1>\r\n </kendo-fileselect>\r\n\r\n <div *ngIf=\"imagePreviews.length\" class=\"image-preview-container e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n <div class=\"label-container e1tag-style3\" [style]=\"componentProperties.style.style3\">\r\n Image Preview:\r\n </div>\r\n <div class=\"image-container e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <img *ngFor=\"let image of imagePreviews\" [src]=\"image.src\" alt=\"image preview\" height=\"100\" class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\" />\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".image-preview-container{border:1px solid rgba(0,0,0,.08)}.image-preview-container>.label-container{margin:5px}\n"], components: [{ type: i3$7.UploadComponent, selector: "kendo-upload", inputs: ["autoUpload", "batch", "withCredentials", "saveField", "saveHeaders", "saveMethod", "saveUrl", "responseType", "removeField", "removeHeaders", "removeMethod", "removeUrl", "chunkable", "concurrent", "multiple", "disabled", "showFileList", "tabindex", "zoneId", "tabIndex", "accept", "restrictions", "focusableId", "actionsLayout"], outputs: ["blur", "cancel", "clear", "complete", "error", "focus", "pause", "remove", "resume", "select", "success", "upload", "uploadProgress", "valueChange"], exportAs: ["kendoUpload"] }, { type: i3$7.FileSelectComponent, selector: "kendo-fileselect", inputs: ["accept", "disabled", "multiple", "name", "showFileList", "tabindex", "restrictions", "zoneId", "focusableId"], outputs: ["blur", "focus", "select", "remove", "valueChange"], exportAs: ["kendoFileSelect"] }], 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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
8633
+ ZuploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZuploadComponent, deps: [{ token: ZComponentService }, { token: i2.AuthService }, { token: i2.CompressImageService }, { token: i2.ZCoreService }, { token: i0.NgZone }, { token: i2.SharePointService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component });
8634
+ ZuploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZuploadComponent, selector: "app-zupload", viewQueries: [{ propertyName: "uploadComponent", first: true, predicate: ["uploadComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"form\" class=\"zupload-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <kendo-upload\r\n *ngIf=\"!data.SelectFileOnly\"\r\n #uploadComponent\r\n [id]=\"data.Value\"\r\n [autoUpload]=\"isAutoUpload\"\r\n [saveUrl]=\"uploadSaveUrl\"\r\n [removeUrl]=\"uploadRemoveUrl\"\r\n [restrictions]=\"restrictions\"\r\n [multiple]=\"isMultiple\"\r\n [chunkable]=\"chunkSettings\"\r\n [showFileList]=\"showFileList\"\r\n (select)=\"selectEventHandler($event)\"\r\n (remove)=\"onRemove($event)\"\r\n (success)=\"onSuccess($event)\"\r\n (upload)=\"uploadEventHandler($event)\"\r\n [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\">\r\n </kendo-upload>\r\n\r\n <kendo-fileselect\r\n *ngIf=\"data.SelectFileOnly\"\r\n #uploadComponent\r\n [id]=\"data.Value\"\r\n (select)=\"selectEventHandler($event)\"\r\n (remove)=\"onRemove($event)\"\r\n [formControlName]=\"data.Value\"\r\n (valueChange)=\"onChange($event)\" \r\n [restrictions]=\"restrictions\"\r\n [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\">\r\n </kendo-fileselect>\r\n\r\n <div\r\n *ngIf=\"imagePreviews.length\"\r\n class=\"image-preview-container e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n <div\r\n class=\"label-container e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n Image Preview:\r\n </div>\r\n <div\r\n class=\"image-container e1tag-style4\"\r\n [style]=\"componentProperties.style.style4\">\r\n <img\r\n *ngFor=\"let image of imagePreviews\"\r\n [src]=\"image.src\"\r\n alt=\"image preview\"\r\n height=\"100\"\r\n class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\" />\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".image-preview-container{border:1px solid rgba(0,0,0,.08)}.image-preview-container>.label-container{margin:5px}\n"], components: [{ type: i3$7.UploadComponent, selector: "kendo-upload", inputs: ["autoUpload", "batch", "withCredentials", "saveField", "saveHeaders", "saveMethod", "saveUrl", "responseType", "removeField", "removeHeaders", "removeMethod", "removeUrl", "chunkable", "concurrent", "multiple", "disabled", "showFileList", "tabindex", "zoneId", "tabIndex", "accept", "restrictions", "focusableId", "actionsLayout"], outputs: ["blur", "cancel", "clear", "complete", "error", "focus", "pause", "remove", "resume", "select", "success", "upload", "uploadProgress", "valueChange"], exportAs: ["kendoUpload"] }, { type: i3$7.FileSelectComponent, selector: "kendo-fileselect", inputs: ["accept", "disabled", "multiple", "name", "showFileList", "tabindex", "restrictions", "zoneId", "focusableId"], outputs: ["blur", "focus", "select", "remove", "valueChange"], exportAs: ["kendoFileSelect"] }], 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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
8596
8635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZuploadComponent, decorators: [{
8597
8636
  type: Component,
8598
- args: [{ selector: "app-zupload", template: "<div [formGroup]=\"form\" class=\"zupload-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <kendo-upload #uploadComponent *ngIf=\"!data.SelectFileOnly\" [id]=\"data.Value\" [autoUpload]=\"isAutoUpload\"\r\n [saveUrl]=\"uploadSaveUrl\" [removeUrl]=\"uploadRemoveUrl\" [restrictions]=\"restrictions\"\r\n [multiple]=\"isMultiple\" [chunkable]=\"chunkSettings\" [showFileList]=\"showFileList\"\r\n (select)=\"selectEventHandler($event)\" (remove)=\"onRemove($event)\" (success)=\"onSuccess($event)\"\r\n (upload)=\"uploadEventHandler($event)\" [style]=\"componentProperties.style.style1\" class=\"e1tag-style1\">\r\n </kendo-upload>\r\n\r\n <kendo-fileselect #uploadComponent *ngIf=\"data.SelectFileOnly\" [id]=\"data.Value\" (select)=\"selectEventHandler($event)\"\r\n (remove)=\"onRemove($event)\" [formControlName]=\"data.Value\" (valueChange)=\"onChange($event)\" [restrictions]=\"restrictions\"\r\n [style]=\"componentProperties.style.style1\" class=e1tag-style1>\r\n </kendo-fileselect>\r\n\r\n <div *ngIf=\"imagePreviews.length\" class=\"image-preview-container e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n <div class=\"label-container e1tag-style3\" [style]=\"componentProperties.style.style3\">\r\n Image Preview:\r\n </div>\r\n <div class=\"image-container e1tag-style4\" [style]=\"componentProperties.style.style4\">\r\n <img *ngFor=\"let image of imagePreviews\" [src]=\"image.src\" alt=\"image preview\" height=\"100\" class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\" />\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".image-preview-container{border:1px solid rgba(0,0,0,.08)}.image-preview-container>.label-container{margin:5px}\n"] }]
8599
- }], ctorParameters: function () { return [{ type: ZComponentService }, { type: i2.AuthService }, { type: i2.CompressImageService }, { type: i2.ZCoreService }, { type: i0.NgZone }, { type: i2.SharePointService }]; }, propDecorators: { uploadComponent: [{
8637
+ args: [{ selector: "app-zupload", template: "<div [formGroup]=\"form\" class=\"zupload-container e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <kendo-upload\r\n *ngIf=\"!data.SelectFileOnly\"\r\n #uploadComponent\r\n [id]=\"data.Value\"\r\n [autoUpload]=\"isAutoUpload\"\r\n [saveUrl]=\"uploadSaveUrl\"\r\n [removeUrl]=\"uploadRemoveUrl\"\r\n [restrictions]=\"restrictions\"\r\n [multiple]=\"isMultiple\"\r\n [chunkable]=\"chunkSettings\"\r\n [showFileList]=\"showFileList\"\r\n (select)=\"selectEventHandler($event)\"\r\n (remove)=\"onRemove($event)\"\r\n (success)=\"onSuccess($event)\"\r\n (upload)=\"uploadEventHandler($event)\"\r\n [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\">\r\n </kendo-upload>\r\n\r\n <kendo-fileselect\r\n *ngIf=\"data.SelectFileOnly\"\r\n #uploadComponent\r\n [id]=\"data.Value\"\r\n (select)=\"selectEventHandler($event)\"\r\n (remove)=\"onRemove($event)\"\r\n [formControlName]=\"data.Value\"\r\n (valueChange)=\"onChange($event)\" \r\n [restrictions]=\"restrictions\"\r\n [style]=\"componentProperties.style.style1\"\r\n class=\"e1tag-style1\">\r\n </kendo-fileselect>\r\n\r\n <div\r\n *ngIf=\"imagePreviews.length\"\r\n class=\"image-preview-container e1tag-style2\"\r\n [style]=\"componentProperties.style.style2\">\r\n <div\r\n class=\"label-container e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n Image Preview:\r\n </div>\r\n <div\r\n class=\"image-container e1tag-style4\"\r\n [style]=\"componentProperties.style.style4\">\r\n <img\r\n *ngFor=\"let image of imagePreviews\"\r\n [src]=\"image.src\"\r\n alt=\"image preview\"\r\n height=\"100\"\r\n class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\" />\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".image-preview-container{border:1px solid rgba(0,0,0,.08)}.image-preview-container>.label-container{margin:5px}\n"] }]
8638
+ }], ctorParameters: function () { return [{ type: ZComponentService }, { type: i2.AuthService }, { type: i2.CompressImageService }, { type: i2.ZCoreService }, { type: i0.NgZone }, { type: i2.SharePointService }, { type: i2.AlertService }]; }, propDecorators: { uploadComponent: [{
8600
8639
  type: ViewChild,
8601
8640
  args: ["uploadComponent"]
8602
8641
  }] } });
@@ -8827,7 +8866,7 @@ class InputFieldAddOnsComponent extends InputFieldBase {
8827
8866
  if (this.addOn.IconList) {
8828
8867
  this.addOn.IconList = this.addOn.IconList.filter(x => x);
8829
8868
  this.addOn.IconList.forEach((i) => {
8830
- if (i.ToolTipText == undefined || i.ToolTipText == null) {
8869
+ if (!i.ToolTipText) {
8831
8870
  i.ToolTipText = "";
8832
8871
  }
8833
8872
  else if (i.ToolTipText.indexOf("group.") !== -1) {
@@ -8859,7 +8898,7 @@ class InputFieldAddOnsComponent extends InputFieldBase {
8859
8898
  if (this.addOn.TextList) {
8860
8899
  this.addOn.TextList = this.addOn.TextList.filter(x => x);
8861
8900
  this.addOn.TextList.forEach((i) => {
8862
- if (i.ToolTipText == undefined || i.ToolTipText == null) {
8901
+ if (!i.ToolTipText) {
8863
8902
  i.ToolTipText = "";
8864
8903
  }
8865
8904
  else if (i.ToolTipText.indexOf("group.") !== -1) {
@@ -10068,9 +10107,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10068
10107
 
10069
10108
  /********** Angular **********/
10070
10109
  class ZmfbComponent extends ButtonFieldBase {
10071
- constructor(componentService, fieldService, resourceApiService, workflowService) {
10110
+ constructor(componentService, fontAweSomeService, fieldService, resourceApiService, workflowService) {
10072
10111
  super(componentService);
10073
10112
  this.componentService = componentService;
10113
+ this.fontAweSomeService = fontAweSomeService;
10074
10114
  this.fieldService = fieldService;
10075
10115
  this.resourceApiService = resourceApiService;
10076
10116
  this.workflowService = workflowService;
@@ -10254,12 +10294,12 @@ class ZmfbComponent extends ButtonFieldBase {
10254
10294
  }
10255
10295
  }
10256
10296
  }
10257
- ZmfbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZmfbComponent, deps: [{ token: ZComponentService }, { token: i2.FieldService }, { token: i2.ResourceApiService }, { token: i2.WorkflowService }], target: i0.ɵɵFactoryTarget.Component });
10258
- ZmfbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZmfbComponent, selector: "app-zmfb", usesInheritance: true, ngImport: i0, template: "<div class=\"zmfb-wrap e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"k-overlay e1tag-style1\"\r\n *ngIf=\"dialOpen\"\r\n [style]=\"componentProperties.style.style1\">\r\n </div>\r\n <kendo-floatingactionbutton buttonClass=\"custom-floating-button\"\r\n class=\"e1tag-style2\"\r\n dialClass=\"custom-floating-dial\"\r\n [positionMode]=\"positionMode\"\r\n [align]=\"align\"\r\n [dialItems]=\"items\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n (open)=\"onOpen($event)\"\r\n (close)=\"onClose($event)\"\r\n (click)=\"buttonClick(data)\"\r\n (dialItemClick)=\"onDialItemClick($event)\"\r\n [style]=\"componentProperties.style.style2\">\r\n <ng-template kendoFloatingActionButtonTemplate>\r\n <fa-icon [icon]=\"data.Icon ? data.Icon : 'plus'\"\r\n class=\"e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n </fa-icon>\r\n </ng-template>\r\n <ng-template kendoDialItemTemplate\r\n let-item\r\n let-isFocused=\"isFocused\">\r\n <span class=\"k-fab-item-text e1tag-style4\"\r\n [style]=\"componentProperties.style.style4\">\r\n <span>{{ item.label }}</span>\r\n </span>\r\n <kendo-avatar shape=\"circle\"\r\n [themeColor]=\"buttonColor\"\r\n class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\">\r\n <span class=\"k-icon k-i-{{ item.icon }}\"></span>\r\n </kendo-avatar>\r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-floatingactionbutton .custom-floating-button{background:var(--ion-color-primary);border:none!important;outline:none;height:55px;width:55px;z-index:999}:host ::ng-deep kendo-floatingactionbutton .custom-floating-button:hover{background:var(--ion-color-primary-tint)}.button-item{padding:8px 10px;width:100%;display:flex;align-items:center;background-color:#fff}.button-details{margin-left:8px;display:flex;flex-direction:column;align-items:flex-start}.custom-focused-class{box-shadow:inset 0 0 8px #0003}.zmfb-wrap{display:flex;justify-content:center;margin-top:60px}@media only screen and (max-device-width: 768px){.k-bottom-end,.k-pos-bottom-end{padding-bottom:16vh}}.k-top-end,.k-pos-top-end{padding-top:6.5vh;padding-right:1vw}\n"], components: [{ type: i3$3.FloatingActionButtonComponent, selector: "kendo-floatingactionbutton", inputs: ["themeColor", "size", "rounded", "disabled", "align", "offset", "positionMode", "icon", "iconClass", "buttonClass", "dialClass", "text", "dialItemAnimation", "tabIndex", "dialItems"], outputs: ["blur", "focus", "dialItemClick", "open", "close"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i2$5.AvatarComponent, selector: "kendo-avatar", inputs: ["shape", "size", "rounded", "themeColor", "fillMode", "fill", "border", "iconClass", "width", "height", "cssStyle", "initials", "icon", "imageSrc"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$3.FloatingActionButtonTemplateDirective, selector: "[kendoFloatingActionButtonTemplate]" }, { type: i3$3.DialItemTemplateDirective, selector: "[kendoDialItemTemplate]" }] });
10297
+ ZmfbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZmfbComponent, deps: [{ token: ZComponentService }, { token: i2.FontAweSomeService }, { token: i2.FieldService }, { token: i2.ResourceApiService }, { token: i2.WorkflowService }], target: i0.ɵɵFactoryTarget.Component });
10298
+ ZmfbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ZmfbComponent, selector: "app-zmfb", usesInheritance: true, ngImport: i0, template: "<div class=\"zmfb-wrap e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"k-overlay e1tag-style1\"\r\n *ngIf=\"dialOpen\"\r\n [style]=\"componentProperties.style.style1\">\r\n </div>\r\n <kendo-floatingactionbutton buttonClass=\"custom-floating-button\"\r\n class=\"e1tag-style2\"\r\n dialClass=\"custom-floating-dial\"\r\n [positionMode]=\"positionMode\"\r\n [align]=\"align\"\r\n [dialItems]=\"items\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n (open)=\"onOpen($event)\"\r\n (close)=\"onClose($event)\"\r\n (click)=\"buttonClick(data)\"\r\n (dialItemClick)=\"onDialItemClick($event)\"\r\n [style]=\"componentProperties.style.style2\">\r\n <ng-template kendoFloatingActionButtonTemplate>\r\n <fa-icon [icon]=\"data.Icon ? data.Icon : 'plus'\"\r\n size=\"2x\"\r\n class=\"e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n </fa-icon>\r\n </ng-template>\r\n <ng-template kendoDialItemTemplate\r\n let-item\r\n let-isFocused=\"isFocused\">\r\n <span class=\"k-fab-item-text e1tag-style4\"\r\n [style]=\"componentProperties.style.style4\">\r\n <span>{{ item.label }}</span>\r\n </span>\r\n <kendo-avatar shape=\"circle\"\r\n [themeColor]=\"buttonColor\"\r\n class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\">\r\n <fa-icon [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\" size=\"1x\"></fa-icon>\r\n </kendo-avatar>\r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-floatingactionbutton .custom-floating-button{background:var(--ion-color-primary);border:none!important;outline:none;height:55px;width:55px;z-index:999}:host ::ng-deep kendo-floatingactionbutton .custom-floating-button:hover{background:var(--ion-color-primary-tint)}.button-item{padding:8px 10px;width:100%;display:flex;align-items:center;background-color:#fff}.button-details{margin-left:8px;display:flex;flex-direction:column;align-items:flex-start}.custom-focused-class{box-shadow:inset 0 0 8px #0003}.zmfb-wrap{display:flex;justify-content:center;margin-top:60px}@media only screen and (max-device-width: 768px){.k-bottom-end,.k-pos-bottom-end{padding-bottom:16vh}}.k-top-end,.k-pos-top-end{padding-top:6.5vh;padding-right:1vw}\n"], components: [{ type: i3$3.FloatingActionButtonComponent, selector: "kendo-floatingactionbutton", inputs: ["themeColor", "size", "rounded", "disabled", "align", "offset", "positionMode", "icon", "iconClass", "buttonClass", "dialClass", "text", "dialItemAnimation", "tabIndex", "dialItems"], outputs: ["blur", "focus", "dialItemClick", "open", "close"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i2$5.AvatarComponent, selector: "kendo-avatar", inputs: ["shape", "size", "rounded", "themeColor", "fillMode", "fill", "border", "iconClass", "width", "height", "cssStyle", "initials", "icon", "imageSrc"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$3.FloatingActionButtonTemplateDirective, selector: "[kendoFloatingActionButtonTemplate]" }, { type: i3$3.DialItemTemplateDirective, selector: "[kendoDialItemTemplate]" }] });
10259
10299
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ZmfbComponent, decorators: [{
10260
10300
  type: Component,
10261
- args: [{ selector: 'app-zmfb', template: "<div class=\"zmfb-wrap e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"k-overlay e1tag-style1\"\r\n *ngIf=\"dialOpen\"\r\n [style]=\"componentProperties.style.style1\">\r\n </div>\r\n <kendo-floatingactionbutton buttonClass=\"custom-floating-button\"\r\n class=\"e1tag-style2\"\r\n dialClass=\"custom-floating-dial\"\r\n [positionMode]=\"positionMode\"\r\n [align]=\"align\"\r\n [dialItems]=\"items\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n (open)=\"onOpen($event)\"\r\n (close)=\"onClose($event)\"\r\n (click)=\"buttonClick(data)\"\r\n (dialItemClick)=\"onDialItemClick($event)\"\r\n [style]=\"componentProperties.style.style2\">\r\n <ng-template kendoFloatingActionButtonTemplate>\r\n <fa-icon [icon]=\"data.Icon ? data.Icon : 'plus'\"\r\n class=\"e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n </fa-icon>\r\n </ng-template>\r\n <ng-template kendoDialItemTemplate\r\n let-item\r\n let-isFocused=\"isFocused\">\r\n <span class=\"k-fab-item-text e1tag-style4\"\r\n [style]=\"componentProperties.style.style4\">\r\n <span>{{ item.label }}</span>\r\n </span>\r\n <kendo-avatar shape=\"circle\"\r\n [themeColor]=\"buttonColor\"\r\n class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\">\r\n <span class=\"k-icon k-i-{{ item.icon }}\"></span>\r\n </kendo-avatar>\r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-floatingactionbutton .custom-floating-button{background:var(--ion-color-primary);border:none!important;outline:none;height:55px;width:55px;z-index:999}:host ::ng-deep kendo-floatingactionbutton .custom-floating-button:hover{background:var(--ion-color-primary-tint)}.button-item{padding:8px 10px;width:100%;display:flex;align-items:center;background-color:#fff}.button-details{margin-left:8px;display:flex;flex-direction:column;align-items:flex-start}.custom-focused-class{box-shadow:inset 0 0 8px #0003}.zmfb-wrap{display:flex;justify-content:center;margin-top:60px}@media only screen and (max-device-width: 768px){.k-bottom-end,.k-pos-bottom-end{padding-bottom:16vh}}.k-top-end,.k-pos-top-end{padding-top:6.5vh;padding-right:1vw}\n"] }]
10262
- }], ctorParameters: function () { return [{ type: ZComponentService }, { type: i2.FieldService }, { type: i2.ResourceApiService }, { type: i2.WorkflowService }]; } });
10301
+ args: [{ selector: 'app-zmfb', template: "<div class=\"zmfb-wrap e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <div class=\"k-overlay e1tag-style1\"\r\n *ngIf=\"dialOpen\"\r\n [style]=\"componentProperties.style.style1\">\r\n </div>\r\n <kendo-floatingactionbutton buttonClass=\"custom-floating-button\"\r\n class=\"e1tag-style2\"\r\n dialClass=\"custom-floating-dial\"\r\n [positionMode]=\"positionMode\"\r\n [align]=\"align\"\r\n [dialItems]=\"items\"\r\n (blur)=\"onBlur()\"\r\n (focus)=\"onFocus()\"\r\n (open)=\"onOpen($event)\"\r\n (close)=\"onClose($event)\"\r\n (click)=\"buttonClick(data)\"\r\n (dialItemClick)=\"onDialItemClick($event)\"\r\n [style]=\"componentProperties.style.style2\">\r\n <ng-template kendoFloatingActionButtonTemplate>\r\n <fa-icon [icon]=\"data.Icon ? data.Icon : 'plus'\"\r\n size=\"2x\"\r\n class=\"e1tag-style3\"\r\n [style]=\"componentProperties.style.style3\">\r\n </fa-icon>\r\n </ng-template>\r\n <ng-template kendoDialItemTemplate\r\n let-item\r\n let-isFocused=\"isFocused\">\r\n <span class=\"k-fab-item-text e1tag-style4\"\r\n [style]=\"componentProperties.style.style4\">\r\n <span>{{ item.label }}</span>\r\n </span>\r\n <kendo-avatar shape=\"circle\"\r\n [themeColor]=\"buttonColor\"\r\n class=\"e1tag-style5\"\r\n [style]=\"componentProperties.style.style5\">\r\n <fa-icon [icon]=\"getFontAwesome(item.icon, fontAweSomeService)\" size=\"1x\"></fa-icon>\r\n </kendo-avatar>\r\n </ng-template>\r\n </kendo-floatingactionbutton>\r\n</div>\r\n", styles: [":host ::ng-deep kendo-floatingactionbutton .custom-floating-button{background:var(--ion-color-primary);border:none!important;outline:none;height:55px;width:55px;z-index:999}:host ::ng-deep kendo-floatingactionbutton .custom-floating-button:hover{background:var(--ion-color-primary-tint)}.button-item{padding:8px 10px;width:100%;display:flex;align-items:center;background-color:#fff}.button-details{margin-left:8px;display:flex;flex-direction:column;align-items:flex-start}.custom-focused-class{box-shadow:inset 0 0 8px #0003}.zmfb-wrap{display:flex;justify-content:center;margin-top:60px}@media only screen and (max-device-width: 768px){.k-bottom-end,.k-pos-bottom-end{padding-bottom:16vh}}.k-top-end,.k-pos-top-end{padding-top:6.5vh;padding-right:1vw}\n"] }]
10302
+ }], ctorParameters: function () { return [{ type: ZComponentService }, { type: i2.FontAweSomeService }, { type: i2.FieldService }, { type: i2.ResourceApiService }, { type: i2.WorkflowService }]; } });
10263
10303
 
10264
10304
  /********** Angular **********/
10265
10305
  class ZmodalComponent extends DialogContentBase {
@@ -12329,11 +12369,13 @@ class ZudfComponent extends ContainerFieldBase {
12329
12369
  if (this.data.Value == undefined && this.data.FieldElementCode) {
12330
12370
  const fieldName = ZComponentHelper.getGroupValue(this.data.FieldElementCode, this.group);
12331
12371
  const fieldFormType = ZComponentHelper.getGroupValue(this.data.FieldElementFormType, this.group);
12332
- if (fieldFormType && fieldFormType == FormType.listField) {
12333
- obs = this.fieldService.getListFieldByFieldElementName(fieldName);
12334
- }
12335
- else {
12336
- obs = this.fieldService.getFormFieldCode(fieldName, 'FormField', this, 'fields');
12372
+ if (fieldName) {
12373
+ if (fieldFormType && fieldFormType == FormType.listField) {
12374
+ obs = this.fieldService.getListFieldByFieldElementName(fieldName);
12375
+ }
12376
+ else {
12377
+ obs = this.fieldService.getFormFieldCode(fieldName, 'FormField', this, 'fields');
12378
+ }
12337
12379
  }
12338
12380
  }
12339
12381
  super.initComponent().pipe(switchMap(() => obs), switchMap((field) => {
@@ -14339,6 +14381,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
14339
14381
  args: [{ selector: "app-kscrollview", template: "<div class=\"kscrollview-container\" [style]=\"componentProperties.containerStyle.style\" class=\"e1tag-container-style\"\r\n *ngIf=\"!isLoading\">\r\n <kendo-scrollview [style]=\"componentProperties.containerStyle.style1\" class=\"e1tag-container-style1 scrollview\"\r\n [ngClass]=\"data.Class\" [data]=\"panelItems\" [arrows]=\"options.arrows\" [pageable]=\"options.pageAble\"\r\n [endless]=\"options.endless\">\r\n <ng-template let-item=\"item\">\r\n <div [style]=\"componentProperties.containerStyle.style2\" class=\"e1tag-container-style2\" (click)=\"onItemClick($event, item)\">\r\n <div [style]=\"componentProperties.containerStyle.style3\" class=\"e1tag-container-style3 kscrollview-title\">\r\n {{item.Label}}\r\n </div>\r\n <img [src]='item.SourceUrl' [alt]='item.Label' [style]=\"componentProperties.containerStyle.style4\"\r\n class=\"e1tag-container-style4\" draggable=\"true\" />\r\n </div>\r\n </ng-template>\r\n </kendo-scrollview>\r\n</div>\r\n", styles: [".k-scrollview-wrap{margin:0 auto}.kscrollview-title{position:absolute;top:0;left:0;right:0;margin:0;padding:8px 8px 10px;color:#fff;background:linear-gradient(rgba(0,0,0,.8),rgba(202,202,202,.4705882353));text-align:center;font-size:16px}.scrollview{height:400px}.title-bottom .kscrollview-title{top:unset;bottom:0;background:linear-gradient(rgba(202,202,202,.4705882353),rgba(0,0,0,.8));padding-bottom:15px;padding-top:10px}.show-title-when-hover .kscrollview-title{opacity:0;transition:opacity .5s}.show-title-when-hover:hover .kscrollview-title{opacity:1;transition:opacity .5s}\n"] }]
14340
14382
  }], ctorParameters: function () { return [{ type: ZComponentService }]; } });
14341
14383
 
14384
+ class FiconComponent {
14385
+ constructor(fontAweSomeService) {
14386
+ this.fontAweSomeService = fontAweSomeService;
14387
+ this.size = "large";
14388
+ this.rounded = "medium";
14389
+ this.fillMode = "solid";
14390
+ this.icons = [];
14391
+ this.filteredIcons = [];
14392
+ this.searchTerm = '';
14393
+ }
14394
+ ngOnInit() {
14395
+ this.icons = this.fontAweSomeService.getAllIcons().map(icon => (Object.assign(Object.assign({}, icon), { formattedName: this.toCamelCase(`${icon.name}`) })));
14396
+ this.filteredIcons = [...this.icons];
14397
+ ZComponentHelper.setComponentProperties(this);
14398
+ ZComponentHelper.registerComponent(this);
14399
+ }
14400
+ toCamelCase(str) {
14401
+ return str
14402
+ .split('-')
14403
+ .map((word, index) => index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1))
14404
+ .join('');
14405
+ }
14406
+ filterIcon(searchTerm) {
14407
+ this.searchTerm = searchTerm;
14408
+ this.filteredIcons = this.icons.filter(icon => icon.name.toLowerCase().includes(searchTerm.toLowerCase()));
14409
+ }
14410
+ }
14411
+ FiconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FiconComponent, deps: [{ token: i2.FontAweSomeService }], target: i0.ɵɵFactoryTarget.Component });
14412
+ FiconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FiconComponent, selector: "app-ficon", inputs: { data: "data", group: "group", form: "form" }, ngImport: i0, template: "<div> \r\n <div class=\"search-box\">\r\n <kendo-floatinglabel [labelCssClass]=\"'custom-label-class'\"\r\n text=\"Search icons\">\r\n <kendo-textbox [(ngModel)]=\"searchTerm\"\r\n (ngModelChange)=\"filterIcon(searchTerm)\"\r\n placeholder=\"Search icons\"\r\n [clearButton]=\"true\"\r\n [rounded]=\"rounded\"\r\n [style.width.px]=\"480\">\r\n </kendo-textbox>\r\n </kendo-floatinglabel> \r\n </div>\r\n\r\n <ul class=\"icons-wrapper\">\r\n <li *ngFor=\"let icon of filteredIcons\" class=\"icon-item\">\r\n <fa-icon [icon]=\"icon.definition\" size=\"3x\"></fa-icon>\r\n <div class=\"icon-name\" style=\"text-align:center\">{{ icon.formattedName }}</div>\r\n </li>\r\n </ul>\r\n</div>\r\n", styles: [".icons-wrapper{display:flex;flex-wrap:wrap;justify-content:center;list-style:none;padding:1em;margin:1em}.icon-item{display:flex;flex-direction:column;align-items:center;margin:0 8px 16px 0;width:150px;height:100px;text-align:center;font-size:12px;box-shadow:0 4px 8px #0000001a;border-radius:8px;padding:12px;background-color:#f5f5f5}.icon-item kendo-svgicon{margin-bottom:8px}.icon-name{word-spacing:100px;white-space:initial;max-width:150px;padding-top:1em}.k-icon{display:block;clear:both;margin:0 auto 10px;color:#656565;font-size:32px}.custom-label-class{margin-left:30px}.search-box{display:flex;justify-content:center;margin-top:30px;margin-bottom:20px}\n"], components: [{ type: i15.FloatingLabelComponent, selector: "kendo-floatinglabel", inputs: ["labelCssStyle", "labelCssClass", "id", "text", "optional"], outputs: ["positionChange"], exportAs: ["kendoFloatingLabel"] }, { type: i3$5.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "errorIcon", "clearButtonIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ 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: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
14413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FiconComponent, decorators: [{
14414
+ type: Component,
14415
+ args: [{ selector: 'app-ficon', template: "<div> \r\n <div class=\"search-box\">\r\n <kendo-floatinglabel [labelCssClass]=\"'custom-label-class'\"\r\n text=\"Search icons\">\r\n <kendo-textbox [(ngModel)]=\"searchTerm\"\r\n (ngModelChange)=\"filterIcon(searchTerm)\"\r\n placeholder=\"Search icons\"\r\n [clearButton]=\"true\"\r\n [rounded]=\"rounded\"\r\n [style.width.px]=\"480\">\r\n </kendo-textbox>\r\n </kendo-floatinglabel> \r\n </div>\r\n\r\n <ul class=\"icons-wrapper\">\r\n <li *ngFor=\"let icon of filteredIcons\" class=\"icon-item\">\r\n <fa-icon [icon]=\"icon.definition\" size=\"3x\"></fa-icon>\r\n <div class=\"icon-name\" style=\"text-align:center\">{{ icon.formattedName }}</div>\r\n </li>\r\n </ul>\r\n</div>\r\n", styles: [".icons-wrapper{display:flex;flex-wrap:wrap;justify-content:center;list-style:none;padding:1em;margin:1em}.icon-item{display:flex;flex-direction:column;align-items:center;margin:0 8px 16px 0;width:150px;height:100px;text-align:center;font-size:12px;box-shadow:0 4px 8px #0000001a;border-radius:8px;padding:12px;background-color:#f5f5f5}.icon-item kendo-svgicon{margin-bottom:8px}.icon-name{word-spacing:100px;white-space:initial;max-width:150px;padding-top:1em}.k-icon{display:block;clear:both;margin:0 auto 10px;color:#656565;font-size:32px}.custom-label-class{margin-left:30px}.search-box{display:flex;justify-content:center;margin-top:30px;margin-bottom:20px}\n"] }]
14416
+ }], ctorParameters: function () { return [{ type: i2.FontAweSomeService }]; }, propDecorators: { data: [{
14417
+ type: Input
14418
+ }], group: [{
14419
+ type: Input
14420
+ }], form: [{
14421
+ type: Input
14422
+ }] } });
14423
+
14342
14424
  /********** Angular **********/
14343
14425
  class MmhglobalDynamicformModule {
14344
14426
  }
@@ -14424,7 +14506,8 @@ MmhglobalDynamicformModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
14424
14506
  ZcolorpickerComponent,
14425
14507
  KmenuComponent,
14426
14508
  KScrollViewComponent,
14427
- ContextMenuComponent], imports: [IonicModule,
14509
+ ContextMenuComponent,
14510
+ FiconComponent], imports: [IonicModule,
14428
14511
  IonicSelectableModule,
14429
14512
  CommonModule,
14430
14513
  RouterModule,
@@ -14551,7 +14634,8 @@ MmhglobalDynamicformModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.
14551
14634
  VirtualScrollComponent,
14552
14635
  ZcolorpickerComponent,
14553
14636
  KmenuComponent,
14554
- KScrollViewComponent] });
14637
+ KScrollViewComponent,
14638
+ FiconComponent] });
14555
14639
  MmhglobalDynamicformModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: MmhglobalDynamicformModule, providers: [
14556
14640
  ModalService
14557
14641
  ], imports: [[
@@ -14690,7 +14774,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
14690
14774
  ZcolorpickerComponent,
14691
14775
  KmenuComponent,
14692
14776
  KScrollViewComponent,
14693
- ContextMenuComponent
14777
+ ContextMenuComponent,
14778
+ FiconComponent
14694
14779
  ],
14695
14780
  imports: [
14696
14781
  IonicModule,
@@ -14824,6 +14909,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
14824
14909
  ZcolorpickerComponent,
14825
14910
  KmenuComponent,
14826
14911
  KScrollViewComponent,
14912
+ FiconComponent
14827
14913
  ],
14828
14914
  providers: [
14829
14915
  ModalService
@@ -14840,5 +14926,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
14840
14926
  * Generated bundle index. Do not edit.
14841
14927
  */
14842
14928
 
14843
- export { ButtonFieldBase, ContainerFieldBase, ContextMenuComponent, DataListingFieldBase, DateIonicFormatParser, DateIonicMinMaxParser, DateKendoFormatParser, DateParserFilter, DateRangeFilterCellComponent, DivzLayout, EditorFilter, ElementContainerDirective, FieldBase, FieldElementDirective, HtmlSanitizePipe, InputErrorMessageComponent, InputFieldAddOnsComponent, InputFieldBase, KScrollViewComponent, KcardComponent, KmenuComponent, KsplitterComponent, MainService, MmhglobalDynamicformModule, MyFileInfo, OpenOnFocusDirective, PageLoaderComponent, PanelAreaFilter, ProcessingRecordLoaderComponent, ScrollbarThemeDirective, SfquerybuilderComponent, SpinnerComponent, TabFilter, UiactionbuttonComponent, UiappmenucontentComponent, UibulletinComponent, UicontainerComponent, UicontentComponent, UiheaderComponent, UimenubuttonComponent, UimenucontentComponent, UipageComponent, UivalidationmessageComponent, VirtualScrollComponent, ZBulletComponent, ZChipComponent, ZComponentService, ZGridBindingDirective, ZGridPopupAnchorDirective, ZInputContainerComponent, ZInputParser, ZNumericParser, ZSchedulerToolBarComponent, ZSelectTranslationParser, ZTreeListOptions, ZbuttonsComponent, ZcardComponent, ZchartComponent, ZcheckboxComponent, ZcodeeditorComponent, ZcolorpickerComponent, ZdaterangeComponent, ZdatetimeComponent, ZdivComponent, ZformComponent, ZformcontrolComponent, ZgaugeComponent, ZgridComponent, ZgridContainerComponent, ZimgComponent, ZlabelComponent, ZloopComponent, ZmfbComponent, ZmodalComponent, ZmodalMobileComponent, ZnumericComponent, ZpostselectinputComponent, ZprogressbarComponent, ZreportComponent, ZschedulerComponent, ZselectmultipleComponent, ZtabComponent, ZtextComponent, ZtextareaComponent, ZtexteditorComponent, ZtreeComponent, ZtreelistComponent, ZtrendcardComponent, ZudfComponent, ZunknownComponent, ZuploadComponent, ZworkflowbuttonsComponent, refreshGrid };
14929
+ export { ButtonFieldBase, ContainerFieldBase, ContextMenuComponent, DataListingFieldBase, DateIonicFormatParser, DateIonicMinMaxParser, DateKendoFormatParser, DateParserFilter, DateRangeFilterCellComponent, DivzLayout, EditorFilter, ElementContainerDirective, FiconComponent, FieldBase, FieldElementDirective, HtmlSanitizePipe, InputErrorMessageComponent, InputFieldAddOnsComponent, InputFieldBase, KScrollViewComponent, KcardComponent, KmenuComponent, KsplitterComponent, MainService, MmhglobalDynamicformModule, MyFileInfo, OpenOnFocusDirective, PageLoaderComponent, PanelAreaFilter, ProcessingRecordLoaderComponent, ScrollbarThemeDirective, SfquerybuilderComponent, SpinnerComponent, TabFilter, UiactionbuttonComponent, UiappmenucontentComponent, UibulletinComponent, UicontainerComponent, UicontentComponent, UiheaderComponent, UimenubuttonComponent, UimenucontentComponent, UipageComponent, UivalidationmessageComponent, VirtualScrollComponent, ZBulletComponent, ZChipComponent, ZComponentService, ZGridBindingDirective, ZGridPopupAnchorDirective, ZInputContainerComponent, ZInputParser, ZNumericParser, ZSchedulerToolBarComponent, ZSelectTranslationParser, ZTreeListOptions, ZbuttonsComponent, ZcardComponent, ZchartComponent, ZcheckboxComponent, ZcodeeditorComponent, ZcolorpickerComponent, ZdaterangeComponent, ZdatetimeComponent, ZdivComponent, ZformComponent, ZformcontrolComponent, ZgaugeComponent, ZgridComponent, ZgridContainerComponent, ZimgComponent, ZlabelComponent, ZloopComponent, ZmfbComponent, ZmodalComponent, ZmodalMobileComponent, ZnumericComponent, ZpostselectinputComponent, ZprogressbarComponent, ZreportComponent, ZschedulerComponent, ZselectmultipleComponent, ZtabComponent, ZtextComponent, ZtextareaComponent, ZtexteditorComponent, ZtreeComponent, ZtreelistComponent, ZtrendcardComponent, ZudfComponent, ZunknownComponent, ZuploadComponent, ZworkflowbuttonsComponent, refreshGrid };
14844
14930
  //# sourceMappingURL=mmhglobal-dynamicform.mjs.map