@rosoftlab/ionic 1.0.1-alpha-5 → 1.0.1-alpha-7
Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rosoftlab-ionic.mjs","sources":["../../../../projects/rosoftlab/ionic/src/lib/ionic-dialog.service.ts","../../../../projects/rosoftlab/ionic/src/lib/translate.extension.ts","../../../../projects/rosoftlab/ionic/src/lib/wrappers/wrappers.module.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-sm-buttons/ionic-sm-buttons.component.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-sm-buttons/ionic-sm-buttons.component.html","../../../../projects/rosoftlab/ionic/src/lib/types/repeat-datatable/repeat-datatable.component.ts","../../../../projects/rosoftlab/ionic/src/lib/types/repeat-datatable/repeat-datatable.component.html","../../../../projects/rosoftlab/ionic/src/lib/types/repeat/repeat-section.type.ts","../../../../projects/rosoftlab/ionic/src/lib/types/repeat/repeat-section.html","../../../../projects/rosoftlab/ionic/src/lib/validators/must-match.ts","../../../../projects/rosoftlab/ionic/src/lib/wrappers/accordion-wrapper.component.ts","../../../../projects/rosoftlab/ionic/src/lib/wrappers/panel-wrapper.component.ts","../../../../projects/rosoftlab/ionic/src/lib/rsl-ionic-module.module.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.html","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.html","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.html","../../../../projects/rosoftlab/ionic/src/lib/decorators/ionic-datatable-layout.ts","../../../../projects/rosoftlab/ionic/src/lib/decorators/ionic-list.decorator.ts","../../../../projects/rosoftlab/ionic/src/public-api.ts","../../../../projects/rosoftlab/ionic/src/rosoftlab-ionic.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { AlertController } from '@ionic/angular';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IonicDialogService {\r\n\r\n constructor(private alertController: AlertController) { }\r\n async confirm(message?: string, title?: string,\r\n confirmButtonText: string = 'Delete',\r\n cancelButtonText: string = 'Cancel'): Promise<boolean> {\r\n let choice\r\n const alert = await this.alertController.create({\r\n header: title,\r\n subHeader: message,\r\n buttons: [{\r\n text: cancelButtonText,\r\n handler: () => {\r\n alert.dismiss(false)\r\n return false\r\n }\r\n }, {\r\n text: confirmButtonText,\r\n handler: () => {\r\n alert.dismiss(true);\r\n return true;\r\n }\r\n }]\r\n });\r\n\r\n await alert.present();\r\n await alert.onDidDismiss().then((data) => {\r\n choice = data\r\n })\r\n return choice\r\n\r\n }\r\n async showSaveMessage(message?: string, title?: string) {\r\n const alert = await this.alertController.create({\r\n header: title,\r\n subHeader: message,\r\n buttons: ['OK']\r\n });\r\n\r\n await alert.present();\r\n\r\n }\r\n\r\n}\r\n","import { FormlyExtension, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport class TranslateExtension implements FormlyExtension {\r\n constructor(private translate: TranslateService) { }\r\n prePopulate(field: FormlyFieldConfig) {\r\n const props = field.props || {};\r\n if (!props['translate'] || props['_translated']) {\r\n return;\r\n }\r\n\r\n props['_translated'] = true;\r\n field.expressions = {\r\n ...(field.expressions || {}),\r\n 'props.label': this.translate.stream(props.label),\r\n };\r\n if (props.placeholder) {\r\n field.expressions = {\r\n ...(field.expressions || {}),\r\n 'props.placeholder': this.translate.stream(props.placeholder)\r\n };\r\n }\r\n if (props.description) {\r\n field.expressions = {\r\n ...(field.expressions || {}),\r\n 'props.description': this.translate.stream(props.description)\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport function registerTranslateExtension(translate: TranslateService) {\r\n return {\r\n validationMessages: [\r\n {\r\n name: 'required',\r\n message(error: any, field: FormlyFieldConfig) {\r\n // console.log(field);\r\n return translate.stream('General.Field.Required', { field: field.props.label });\r\n },\r\n },\r\n ],\r\n extensions: [\r\n {\r\n name: 'translate',\r\n extension: new TranslateExtension(translate),\r\n }\r\n ],\r\n };\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { FORMLY_CONFIG, FormlyModule } from '@ngx-formly/core';\r\nimport { FormlyIonicModule } from '@ngx-formly/ionic';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { SmActionService } from '@rosoftlab/statemachine';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { registerTranslateExtension } from '../translate.extension';\r\n\r\nconst COMMON_MODULES = [\r\n CommonModule,\r\n IonicModule,\r\n ReactiveFormsModule,\r\n FormlyIonicModule,\r\n NgxDatatableModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n ...COMMON_MODULES,\r\n TranslateModule\r\n ],\r\n providers: [\r\n { provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },\r\n SmActionService\r\n ],\r\n exports: [\r\n ...COMMON_MODULES,\r\n FormlyModule,\r\n TranslateModule\r\n ],\r\n})\r\nexport class WrappersModule { }\r\n","import { Component, OnInit, Type } from '@angular/core';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyFieldProps } from '@ngx-formly/core';\r\nimport { FormlyFieldInput } from '@ngx-formly/ionic/input';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SmAction, SmActionService, State, StateService } from '@rosoftlab/statemachine';\r\nimport { Observable } from 'rxjs';\r\nimport { WrappersModule } from '../../wrappers/wrappers.module';\r\ninterface InputProps extends FormlyFieldProps { }\r\n\r\nexport interface FormlyInputFieldConfig extends FormlyFieldConfig<InputProps> {\r\n type: 'input' | Type<FormlyFieldInput>;\r\n}\r\n@Component({\n selector: 'app-ionic-sm-buttons',\n templateUrl: './ionic-sm-buttons.component.html',\n styleUrls: ['./ionic-sm-buttons.component.css'],\n imports: [\n WrappersModule\n ]\n})\r\nexport class RslIonicSmButtonsComponent extends FieldType<FieldTypeConfig<InputProps>> implements OnInit {\r\n smActions$: Observable<SmAction[]>\r\n currentState: State;\r\n\r\n objectType: string;\r\n objectId: string;\r\n constructor(\r\n public smActionService: SmActionService,\r\n private stateService: StateService,\r\n public translate: TranslateService) {\r\n super()\r\n }\r\n ngOnInit() {\r\n this.objectType = this.props.attributes['objectType'] as string\r\n this.objectId = this.field.parent.model.id\r\n this.loadCurrentState(this.field.model.currentStateId);\r\n this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType)\r\n // console.log(this.field)\r\n }\r\n executeAction(action: SmAction) {\r\n // this.currentState = null\r\n // this.smActions$ = null\r\n // console.log(action.actionID)\r\n this.smActionService.executeAction(this.objectId, this.objectType, action.actionID, \"\")\r\n .subscribe(\r\n response => {\r\n // console.log(response)\r\n if (this.field.props['onStateCahnged'])\r\n this.field.props['onStateCahnged']({ model: this.field.parent.model, response });\r\n this.model['currentStateId'] = response.currentStateId\r\n this.smActionService.getActions(this.objectId, this.objectType)\r\n\r\n this.options.resetModel()\r\n // this.field.formControl.updateValueAndValidity() \r\n this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType)\r\n // //this.smActions = []\r\n this.loadCurrentState(response.currentStateId);\r\n }\r\n )\r\n // console.log(action);\r\n }\r\n loadCurrentState(stateId: any) {\r\n this.stateService.get(stateId).subscribe(\r\n state => this.currentState = state\r\n )\r\n }\r\n getColor(action: SmAction) {\r\n if (action.props) {\r\n return action.props[\"Color\"] ? action.props[\"Color\"] : \"primary\";\r\n }\r\n return \"primary\"\r\n }\r\n getCurrentState() {\r\n return this.translate.instant('General.State.CurrentState', { field: this.currentState.name });\r\n }\r\n}\r\n","<!-- <ion-input [type]=\"props.type || 'text'\" [formControl]=\"formControl\" [ionFormlyAttributes]=\"field\"></ion-input> -->\r\n\r\n<!-- <p>Sync</p>\r\n<ion-list>\r\n <ion-button *ngFor=\"let action of smActions\" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\r\n {{action.buttonTranslationKey |translate}}\r\n </ion-button>\r\n</ion-list> -->\r\n<ion-label *ngIf=\"currentState\">{{ getCurrentState() }}</ion-label>\r\n<ion-list>\r\n <ion-button *ngFor=\"let action of smActions$ | async \" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\r\n {{action.buttonTranslationKey |translate}}\r\n <!-- - {{action.actionID}} -->\r\n </ion-button>\r\n</ion-list>","import { Component, ElementRef, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldArrayType, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ColumnMode, SelectionType, TableColumn } from '@swimlane/ngx-datatable';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport * as XLSX from 'xlsx';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { WrappersModule } from '../../wrappers/wrappers.module';\r\ninterface SearchProp {\r\n showSerach: boolean\r\n searchProp: string\r\n}\r\ninterface ExportDataProp {\r\n propertiesToExport: string[]\r\n sheetName: string;\r\n fileName: string;\r\n}\r\ninterface ImportDataProp {\r\n keyProp: string\r\n propertiesToImport: string[]\r\n}\r\n@Component({\n selector: 'app-repeat-datatable',\n templateUrl: './repeat-datatable.component.html',\n styleUrls: ['./repeat-datatable.component.scss'],\n imports: [\n WrappersModule\n ]\n})\r\nexport class RepeatDatatableComponent extends FieldArrayType implements OnInit {\r\n /**\r\n *\r\n */\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n @ViewChild('defaultColumn', { static: true }) public defaultColumn: TemplateRef<any>;\r\n @ViewChild('actionsTmpl', { static: true }) actionsTmpl: TemplateRef<any>;\r\n\r\n data: FormlyFieldConfig[] = null;\r\n serach: SearchProp = null;\r\n showSerach: boolean = false;\r\n deleteMessage: string\r\n deleteButton: string\r\n cancelButton: string\r\n filterValue: string = null;\r\n typeKey: string;\r\n importDataProp: ImportDataProp = null;\r\n exportDataProp: ExportDataProp = null;\r\n\r\n ColumnMode = ColumnMode;\r\n SelectionType = SelectionType;\r\n constructor(\r\n public dialogService: IonicDialogService,\r\n public translate: TranslateService,\r\n private fileSaverService: FileSaverService) {\r\n super();\r\n this.deleteMessage = this.translate.instant(\"General.Delete.Question\")\r\n this.deleteButton = this.translate.instant(\"General.Delete.Button\")\r\n this.cancelButton = this.translate.instant(\"General.Cancel.Button\")\r\n\r\n }\r\n override add(i?: number, initialModel?: any) {\r\n initialModel = {}\r\n this.props['columns'].forEach(column => initialModel[column.prop] = null)\r\n super.add(i, initialModel);\r\n }\r\n override remove(i: number, { markAsDirty } = { markAsDirty: true }) {\r\n this.dialogService.confirm(this.deleteMessage, null, this.deleteButton, this.cancelButton).then(\r\n (value: any) => {\r\n if (value.data) {\r\n var onDelete = this.field.props['onDelete'];\r\n if (onDelete) {\r\n onDelete(this.field.fieldGroup[i].model).subscribe(\r\n () => {\r\n super.remove(i);\r\n }\r\n )\r\n }\r\n super.remove(i);\r\n }\r\n }\r\n )\r\n }\r\n ngOnInit() {\r\n this.props['columns'].forEach(column => column.cellTemplate = this.defaultColumn);\r\n this.props['columns'].push({\r\n cellTemplate: this.actionsTmpl,\r\n name: '',\r\n cellClass: 'actions-cell',\r\n draggable: false,\r\n sortable: false,\r\n visible: true,\r\n width: 75,\r\n maxWidth: 75,\r\n minWidth: 75\r\n })\r\n this.typeKey = this.field.key as string\r\n this.serach = this.props['search']\r\n this.exportDataProp = this.props['export'] || null\r\n this.importDataProp = this.props['import'] || null\r\n if (this.serach) {\r\n this.showSerach = this.serach.showSerach\r\n }\r\n\r\n }\r\n getField(field: FormlyFieldConfig, column: TableColumn, rowIndex: number): FormlyFieldConfig {\r\n return field.fieldGroup[rowIndex].fieldGroup.find(f => f.key === column.prop);\r\n }\r\n postPopulate(field: any) {\r\n if (this.showSerach) {\r\n this.data = field.fieldGroup\r\n if (this.filterValue) {\r\n this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue))\r\n }\r\n }\r\n }\r\n handleChange(event) {\r\n if (this.showSerach) {\r\n if (this.data == null && this.field.fieldGroup !== null) {\r\n this.data = this.field.fieldGroup\r\n }\r\n this.filterValue = event.target.value.toLowerCase();\r\n this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue))\r\n }\r\n }\r\n importData() {\r\n this.fileInput.nativeElement.click();\r\n }\r\n async handleImportFile(event: any) {\r\n const file = event.target.files[0];\r\n\r\n if (file) {\r\n try {\r\n\r\n\r\n const fileContents = await this.readFileAsync(file);\r\n // Handle the file contents here (e.g., display or process the data)\r\n const wb: XLSX.WorkBook = XLSX.read(fileContents)//, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n const excelData = XLSX.utils.sheet_to_json(ws)//, { header: 1 });\r\n excelData.forEach(element => {\r\n const jsonX = this.getValueFromJsonData(element, this.importDataProp.keyProp)\r\n const idx = this.field.parent.model[this.typeKey].findIndex(f => f[this.importDataProp.keyProp] === jsonX)\r\n if (idx >= 0) {\r\n const existingdata = this.field.parent.model[this.typeKey][idx]\r\n for (const prop of this.importDataProp.propertiesToImport) {\r\n const jsonVal = this.getValueFromJsonData(element, prop)\r\n if (existingdata[prop] !== jsonVal) {\r\n var fieldControl = this.field.fieldGroup[idx].formControl as FormGroup\r\n fieldControl.controls[prop].setValue(jsonVal)\r\n }\r\n }\r\n } else {\r\n super.add(null, element)\r\n }\r\n });\r\n\r\n } catch (error) {\r\n console.error('Error reading the file:', error);\r\n }\r\n }\r\n }\r\n\r\n exportData() {\r\n\r\n // Filter the data to include only the specified properties\r\n const filteredData = this.field.parent.model[this.typeKey].map(item => {\r\n const filteredItem: any = {};\r\n for (const prop of this.exportDataProp.propertiesToExport) {\r\n filteredItem[prop] = item[prop];\r\n }\r\n return filteredItem;\r\n });\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(filteredData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, this.exportDataProp.sheetName);\r\n\r\n const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\r\n\r\n const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n this.fileSaverService.save(blob, this.exportDataProp.fileName);\r\n }\r\n\r\n getValueFromJsonData(jsonData: any, key: string): any {\r\n // Convert the key and all JSON keys to lowercase\r\n const lowercaseKey = key.toLowerCase();\r\n const lowercaseKeys = Object.keys(jsonData).map(k => k.toLowerCase());\r\n\r\n // Find the lowercase key in the lowercase keys array\r\n const index = lowercaseKeys.indexOf(lowercaseKey);\r\n\r\n // If found, use the original (proper case) key to access the value\r\n if (index !== -1) {\r\n const originalKey = Object.keys(jsonData)[index];\r\n return jsonData[originalKey];\r\n }\r\n\r\n // Key not found\r\n return undefined;\r\n }\r\n private readFileAsync(file: File): Promise<any> {\r\n return new Promise<any>((resolve, reject) => {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (event: any) => {\r\n resolve(event.target.result);\r\n };\r\n\r\n reader.onerror = (event: any) => {\r\n reject(event.target.error);\r\n };\r\n\r\n reader.readAsArrayBuffer(file);\r\n });\r\n }\r\n}","<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-left\">{{props.label}}</ion-title>\r\n\r\n <ion-button slot=\"end\" (click)=\"exportData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"exportDataProp\">\r\n <ion-icon name=\"cloud-download-outline\"></ion-icon>\r\n </ion-button>\r\n\r\n <ion-button slot=\"end\" (click)=\"importData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"importDataProp\">\r\n <ion-icon name=\"cloud-upload-outline\"></ion-icon>\r\n </ion-button>\r\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx,.xls,.csv\" (change)=\"handleImportFile($event)\">\r\n\r\n <ion-button slot=\"end\" (click)=\"add()\" fill=\"clear\" [disabled]=\"props.disabled\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n<ngx-datatable #table class=\"material fullscreen rls-server-scrolling\" [rows]=\"model\" [columns]=\"props['columns']\" [columnMode]=\"props['columnMode']\"\r\n [rowHeight]=\"props['rowHeight']\" [headerHeight]=\"props['headerHeight']\" [footerHeight]=\"props['footerHeight']\" [limit]=\"props['limit']\"\r\n [scrollbarH]=\"props['scrollbarH']\" [reorderable]=\"props['reorderable']\" [externalSorting]=\"true\">\r\n <ng-template #defaultColumn ngx-datatable-cell-template let-rowIndex=\"rowIndex\" let-value=\"value\" let-row=\"row\"\r\n let-column=\"column\">\r\n <formly-field class=\"formly-ion-list-item\" [field]=\"getField(field, column, rowIndex)\"></formly-field>\r\n </ng-template>\r\n</ngx-datatable>\r\n\r\n<ng-template #actionsTmpl let-row=\"row\" let-value=\"value\" let-rowIndex=\"rowIndex\">\r\n <ion-button style=\"height: 100%;\" fill=\"clear\"[disabled]=\"props.disabled\" (click)='remove(rowIndex)'>\r\n <ion-icon color=\"danger\" slot=\"icon-only\" name=\"trash\" (click)='remove(rowIndex)'></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>","import { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldArrayType, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { getValueFromJsonData, readFileAsync } from '@rosoftlab/core';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport * as XLSX from 'xlsx';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { WrappersModule } from '../../wrappers/wrappers.module';\r\n\r\ninterface SearchProp {\r\n showSerach: boolean\r\n searchProp: string\r\n}\r\ninterface ExportDataProp {\r\n propertiesToExport: string[]\r\n sheetName: string;\r\n fileName: string;\r\n}\r\ninterface ImportDataProp {\r\n keyProp: string\r\n propertiesToImport: string[]\r\n}\r\n@Component({\n selector: 'formly-repeat-section',\n templateUrl: './repeat-section.html',\n styleUrls: ['./repeat-section.scss'],\n imports: [\n WrappersModule\n ]\n})\r\nexport class RepeatTypeComponent extends FieldArrayType {\r\n /**\r\n *\r\n */\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n data: FormlyFieldConfig[] = null;\r\n serach: SearchProp = null;\r\n showSerach: boolean = false;\r\n deleteMessage: string\r\n deleteButton: string\r\n cancelButton: string\r\n filterValue: string = null;\r\n typeKey: string;\r\n importDataProp: ImportDataProp = null;\r\n exportDataProp: ExportDataProp = null;\r\n constructor(\r\n public dialogService: IonicDialogService,\r\n public translate: TranslateService,\r\n private fileSaverService: FileSaverService) {\r\n super();\r\n this.deleteMessage = this.translate.instant(\"General.Delete.Question\")\r\n this.deleteButton = this.translate.instant(\"General.Delete.Button\")\r\n this.cancelButton = this.translate.instant(\"General.Cancel.Button\")\r\n\r\n }\r\n override remove(i: number, { markAsDirty } = { markAsDirty: true }) {\r\n this.dialogService.confirm(this.deleteMessage, null, this.deleteButton, this.cancelButton).then(\r\n (value: any) => {\r\n if (value.data) {\r\n var onDelete = this.field.props['onDelete'];\r\n if (onDelete) {\r\n onDelete(this.field.fieldGroup[i].model).subscribe(\r\n () => {\r\n super.remove(i);\r\n }\r\n )\r\n }\r\n super.remove(i);\r\n }\r\n }\r\n )\r\n }\r\n ngOnInit() {\r\n this.typeKey = this.field.key as string\r\n this.serach = this.props['search']\r\n this.exportDataProp = this.props['export'] || null\r\n this.importDataProp = this.props['import'] || null\r\n if (this.serach) {\r\n this.showSerach = this.serach.showSerach\r\n }\r\n\r\n }\r\n postPopulate(field: any) {\r\n if (this.showSerach) {\r\n this.data = field.fieldGroup\r\n if (this.filterValue) {\r\n this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue))\r\n }\r\n }\r\n }\r\n handleChange(event) {\r\n if (this.showSerach) {\r\n if (this.data == null && this.field.fieldGroup !== null) {\r\n this.data = this.field.fieldGroup\r\n }\r\n this.filterValue = event.target.value.toLowerCase();\r\n this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue))\r\n }\r\n }\r\n importData() {\r\n this.fileInput.nativeElement.click();\r\n }\r\n async handleImportFile(event: any) {\r\n const file = event.target.files[0];\r\n\r\n if (file) {\r\n try {\r\n\r\n\r\n const fileContents = await readFileAsync(file);\r\n // Handle the file contents here (e.g., display or process the data)\r\n const wb: XLSX.WorkBook = XLSX.read(fileContents)//, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n const excelData = XLSX.utils.sheet_to_json(ws)//, { header: 1 });\r\n excelData.forEach(element => {\r\n const jsonX = getValueFromJsonData(element, this.importDataProp.keyProp)\r\n const idx = this.field.parent.model[this.typeKey].findIndex(f => f[this.importDataProp.keyProp] === jsonX)\r\n if (idx >= 0) {\r\n const existingdata = this.field.parent.model[this.typeKey][idx]\r\n for (const prop of this.importDataProp.propertiesToImport) {\r\n const jsonVal = getValueFromJsonData(element, prop)\r\n if (existingdata[prop] !== jsonVal) {\r\n var fieldControl = this.field.fieldGroup[idx].formControl as FormGroup\r\n fieldControl.controls[prop].setValue(jsonVal)\r\n }\r\n }\r\n } else {\r\n super.add(null, element)\r\n }\r\n });\r\n\r\n } catch (error) {\r\n console.error('Error reading the file:', error);\r\n }\r\n }\r\n }\r\n\r\n exportData() {\r\n\r\n // Filter the data to include only the specified properties\r\n const filteredData = this.field.parent.model[this.typeKey].map(item => {\r\n const filteredItem: any = {};\r\n for (const prop of this.exportDataProp.propertiesToExport) {\r\n filteredItem[prop] = item[prop];\r\n }\r\n return filteredItem;\r\n });\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(filteredData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, this.exportDataProp.sheetName);\r\n\r\n const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\r\n\r\n const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n this.fileSaverService.save(blob, this.exportDataProp.fileName);\r\n }\r\n\r\n // getValueFromJsonData(jsonData: any, key: string): any {\r\n // // Convert the key and all JSON keys to lowercase\r\n // const lowercaseKey = key.toLowerCase();\r\n // const lowercaseKeys = Object.keys(jsonData).map(k => k.toLowerCase());\r\n\r\n // // Find the lowercase key in the lowercase keys array\r\n // const index = lowercaseKeys.indexOf(lowercaseKey);\r\n\r\n // // If found, use the original (proper case) key to access the value\r\n // if (index !== -1) {\r\n // const originalKey = Object.keys(jsonData)[index];\r\n // return jsonData[originalKey];\r\n // }\r\n\r\n // // Key not found\r\n // return undefined;\r\n // }\r\n // private readFileAsync(file: File): Promise<any> {\r\n // return new Promise<any>((resolve, reject) => {\r\n // const reader = new FileReader();\r\n\r\n // reader.onload = (event: any) => {\r\n // resolve(event.target.result);\r\n // };\r\n\r\n // reader.onerror = (event: any) => {\r\n // reject(event.target.error);\r\n // };\r\n\r\n // reader.readAsArrayBuffer(file);\r\n // });\r\n // }\r\n}","<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-left\">{{props.label}}</ion-title>\r\n\r\n <ion-button slot=\"end\" (click)=\"exportData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"exportDataProp\">\r\n <ion-icon name=\"cloud-download-outline\"></ion-icon>\r\n </ion-button>\r\n\r\n <ion-button slot=\"end\" (click)=\"importData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"importDataProp\">\r\n <ion-icon name=\"cloud-upload-outline\"></ion-icon>\r\n </ion-button>\r\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx,.xls,.csv\" (change)=\"handleImportFile($event)\">\r\n\r\n <ion-button slot=\"end\" (click)=\"add()\" fill=\"clear\" [disabled]=\"props.disabled\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n\r\n<ion-list lines=\"full\">\r\n <ion-item *ngFor=\"let field of field.fieldGroup; let i = index\" class=\"row align-items-baseline\">\r\n <formly-field class=\"formly-ion-list-item\" [field]=\"field\"></formly-field>\r\n <ion-button [disabled]=\"props.disabled\" color=\"danger\" slot=\"end\" (click)='remove(i)'>\r\n <ion-icon slot=\"icon-only\" name=\"trash\"></ion-icon>\r\n </ion-button>\r\n </ion-item>\r\n</ion-list>\r\n\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>","import { AbstractControl } from '@angular/forms';\r\n\r\nexport function fieldMatchValidator(control: AbstractControl) {\r\n const { password, confirmPassword } = control.value;\r\n\r\n // avoid displaying the message error when values are empty\r\n if (!confirmPassword || !password) {\r\n return null;\r\n }\r\n\r\n if (confirmPassword === password) {\r\n return null;\r\n }\r\n\r\n return { fieldMatch: { message: 'Fields.Not.Matching' } };\r\n}","import { Component } from '@angular/core';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\nimport { WrappersModule } from './wrappers.module';\r\n\r\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'formly-accordion-panel',\n template: `\r\n\r\n <ion-accordion-group [value]=\"['first']\">\r\n <ion-accordion value=\"first\">\r\n <ion-item slot=\"header\">\r\n <ion-card-title>{{ props.label}}</ion-card-title>\r\n </ion-item>\r\n <div class=\"ion-padding\" slot=\"content\">\r\n <ng-container #fieldComponent></ng-container>\r\n </div>\r\n </ion-accordion>\r\n </ion-accordion-group>\r\n\r\n\r\n \r\n `,\n imports: [WrappersModule]\n})\r\nexport class AccordionWrapperComponent extends FieldWrapper { }\r\n","import { Component } from '@angular/core';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\nimport { WrappersModule } from './wrappers.module';\r\n\r\n@Component({\n selector: 'formly-wrapper-panel',\n template: `\r\n <ion-card>\r\n <ion-card-header>\r\n <ion-card-title>{{ props.label}}</ion-card-title>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <ng-container #fieldComponent></ng-container>\r\n </ion-card-content>\r\n </ion-card>\r\n `,\n imports: [WrappersModule]\n})\r\nexport class PanelWrapperComponent extends FieldWrapper { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { FORMLY_CONFIG, FormlyModule } from '@ngx-formly/core';\r\nimport { FormlyIonicModule } from '@ngx-formly/ionic';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { RslIonicSmButtonsComponent } from './components/rsl-ionic-sm-buttons/ionic-sm-buttons.component';\r\nimport { IonicDialogService } from './ionic-dialog.service';\r\nimport { registerTranslateExtension } from './translate.extension';\r\nimport { RepeatDatatableComponent } from './types/repeat-datatable/repeat-datatable.component';\r\nimport { RepeatTypeComponent } from './types/repeat/repeat-section.type';\r\nimport { fieldMatchValidator } from './validators/must-match';\r\nimport { AccordionWrapperComponent } from './wrappers/accordion-wrapper.component';\r\nimport { PanelWrapperComponent } from './wrappers/panel-wrapper.component';\r\nconst COMMON_MODULES = [\r\n CommonModule,\r\n IonicModule,\r\n ReactiveFormsModule,\r\n FormlyIonicModule,\r\n NgxDatatableModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n ...COMMON_MODULES,\r\n TranslateModule,\r\n FormlyModule.forRoot({\r\n types: [\r\n { name: 'repeat', component: RepeatTypeComponent },\r\n { name: 'repeat-data-table', component: RepeatDatatableComponent },\r\n { name: 'sm-buttons', component: RslIonicSmButtonsComponent }\r\n ],\r\n validators: [{ name: 'fieldMatch', validation: fieldMatchValidator }],\r\n wrappers: [\r\n { name: 'panel', component: PanelWrapperComponent },\r\n { name: 'accordion', component: AccordionWrapperComponent }],\r\n validationMessages: [\r\n { name: 'required', message: 'This field is required' },\r\n ],\r\n }),\r\n ],\r\n providers: [\r\n IonicDialogService,\r\n { provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },\r\n ],\r\n exports: [\r\n ...COMMON_MODULES,\r\n FormlyModule,\r\n TranslateModule\r\n ],\r\n})\r\nexport class RslIonicModuleModule { }\r\n","import { Location } from '@angular/common';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';\r\nimport { FormlyJsonschema } from '@ngx-formly/core/json-schema';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BaseModelFormly, BaseServiceFormly } from '@rosoftlab/formly';\r\nimport * as _ from 'lodash';\r\nimport { Observable, from } from 'rxjs';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { RslIonicModuleModule } from '../../rsl-ionic-module.module';\r\n@Component({\n selector: 'rslc-ionic-crud',\n templateUrl: './rsl-ionic-crud.component.html',\n styleUrls: ['./rsl-ionic-crud.component.css'],\n imports: [RslIonicModuleModule]\n})\r\nexport class GenericIonicCrudComponent<T extends BaseModelFormly, U extends BaseServiceFormly<T>> implements OnInit {\r\n baseForm: UntypedFormGroup;\r\n modelId: string;\r\n model: T;\r\n origModel: T;\r\n isEdit: boolean;\r\n isLoading = true;\r\n cancelRoute: string;\r\n editRoute: string;\r\n modelService: U\r\n public changeUrlRoute: boolean = true;\r\n public title: string;\r\n fields: FormlyFieldConfig[]\r\n options: FormlyFormOptions = {};\r\n //#region Dialog messages\r\n confirmQuestion: string\r\n confirmButton: string\r\n saveMessage: string\r\n //#endregion\r\n constructor(\r\n public fb: UntypedFormBuilder,\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public dialogService: IonicDialogService,\r\n public translate: TranslateService,\r\n public location: Location,\r\n private injector: Injector,\r\n private formlyJsonschema: FormlyJsonschema,\r\n ) {\r\n\r\n const SERVICE_TOKEN = route.snapshot.data['requiredService'];\r\n this.modelService = this.injector.get<U>(<any>SERVICE_TOKEN);\r\n\r\n this.modelService = this.injector.get<U>(<any>SERVICE_TOKEN);\r\n this.confirmQuestion = this.translate.instant('General.Discard.Question');\r\n this.confirmButton = this.translate.instant('General.Discard.ConfirmButton');\r\n this.saveMessage = this.translate.instant('General.Save.Message');\r\n }\r\n\r\n ionViewWillLeave() {\r\n this.options.resetModel()\r\n this.baseForm.reset();\r\n }\r\n\r\n public afterSave(model: T): Observable<T> {\r\n return new Observable((observer) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n\r\n public beforeSave(model: T): Observable<T> {\r\n return new Observable((observer) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n initForm(customInclude: string = '', newModelId: string = null, model: T = null) {\r\n if (model === null) {\r\n this.modelId = this.route.snapshot.paramMap.get('id') ?? newModelId;\r\n this.isEdit = false;\r\n if (this.modelId) {\r\n this.modelService.get(this.modelId, customInclude).subscribe((value: T) => {\r\n this.isEdit = true;\r\n this.generateForm(value)\r\n }\r\n );\r\n } else {\r\n if (this.changeUrlRoute) {\r\n const addUrl = this.router.createUrlTree([]).toString();\r\n this.editRoute = this.router.createUrlTree([addUrl.replace('add', 'edit')]).toString();\r\n }\r\n // }\r\n this.generateForm(this.modelService.newModel());\r\n }\r\n } else {\r\n this.modelId = model.id;\r\n this.isEdit = true;\r\n this.generateForm(model)\r\n }\r\n }\r\n generateForm(model?: T) {\r\n this.isLoading = false;\r\n this.modelId = model.id;\r\n this.model = model;\r\n this.origModel = _.cloneDeep(model);;\r\n this.title = this.model.modelConfig.formTitle\r\n this.baseForm = new UntypedFormGroup({});//= this.modelService.toFormGroup(this.fb, model);\r\n this.afterFormGenerated();\r\n this.fields = this.modelService.getFormlyFields(this.model)\r\n }\r\n public afterFormGenerated() {\r\n\r\n }\r\n private getFromGroup(formGroup: UntypedFormGroup | string = null): UntypedFormGroup {\r\n if (!formGroup)\r\n return this.baseForm;\r\n if (formGroup instanceof UntypedFormGroup)\r\n return formGroup;\r\n return this.baseForm.controls[formGroup] as UntypedFormGroup;\r\n }\r\n validateAllFormFields(formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n Object.keys(fg.controls).forEach(field => {\r\n // console.log(field);\r\n const control = fg.get(field);\r\n if (control instanceof UntypedFormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof UntypedFormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n isFieldValid(field: string, formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n const filedControl = fg.get(field)\r\n return !filedControl.valid && filedControl.touched;\r\n }\r\n\r\n isFieldValidFromArray(arrayIndex: number, field: string, arrayName: string = 'formArray') {\r\n const fieldControl = this.baseForm.get(arrayName).get([arrayIndex]).get(field)\r\n return !fieldControl.valid && fieldControl.touched;\r\n }\r\n\r\n displayFieldCss(field: string) {\r\n return {\r\n 'has-error': this.isFieldValid(field),\r\n 'has-feedback': this.isFieldValid(field)\r\n };\r\n }\r\n onCancel() {\r\n this.router.navigate([this.cancelRoute]);\r\n }\r\n onSave() {\r\n this.saveModel(this.baseForm)\r\n }\r\n onSubmit(model) {\r\n this.saveModel(this.baseForm)\r\n }\r\n\r\n saveModel(formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n const that = this;\r\n if (fg) {\r\n if (fg.valid) {\r\n this.beforeSave(this.model).subscribe(_ => {\r\n this.modelService.save(this.model, this.modelId, this.origModel).subscribe(\r\n (newModel: T) => {\r\n this.model = newModel;\r\n this.modelId = newModel.id;\r\n if (this.editRoute) {\r\n this.isEdit = true;\r\n if (this.changeUrlRoute) {\r\n const url = this.router.createUrlTree([this.editRoute, this.modelId]).toString();\r\n this.location.replaceState(url);\r\n }\r\n }\r\n this.afterSave(newModel).subscribe((val: T) => {\r\n from(this.dialogService.showSaveMessage(this.saveMessage)).subscribe(d => {\r\n this.options.updateInitialValue()\r\n fg.markAsPristine();\r\n });\r\n });\r\n },\r\n err => {\r\n this.serverErrors(err)\r\n });\r\n });\r\n } else {\r\n this.validateAllFormFields(formGroup);\r\n }\r\n }\r\n }\r\n serverErrors(err: any) {\r\n if (err.error) {\r\n if (err.error.errors) {\r\n const validationErrors = err.error.errors;\r\n if (Array.isArray(validationErrors)) {\r\n validationErrors.forEach(prop => {\r\n const formControl = this.baseForm.get(this.firstCharToLowerCase(prop));\r\n if (formControl) {\r\n // activate the error message\r\n formControl.setErrors({\r\n serverError: { message: validationErrors[prop].join('\\n') }\r\n });\r\n }\r\n });\r\n } else {\r\n const keys = Object.keys(validationErrors);\r\n keys.forEach(prop => {\r\n const formControl = this.baseForm.get(this.firstCharToLowerCase(prop));\r\n if (formControl) {\r\n // activate the error message\r\n formControl.setErrors({\r\n serverError: { message: validationErrors[prop].join('\\n') }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n private firstCharToLowerCase(str: string): string {\r\n if (str.length === 0) {\r\n return str; // Return an empty string if the input is empty\r\n }\r\n\r\n const firstChar = str.charAt(0).toLowerCase();\r\n const restOfString = str.slice(1);\r\n\r\n return firstChar + restOfString;\r\n }\r\n async canDeactivate(): Promise<boolean> {\r\n if (!this.baseForm.dirty) {\r\n return true;\r\n }\r\n var result = await this.dialogService.confirm(this.confirmQuestion, null, this.confirmButton)\r\n return result;\r\n }\r\n getFiledName(filedTranslationKey: string) {\r\n return { field: this.translate.instant(filedTranslationKey) };\r\n }\r\n getCustomErrorMessage(error: any, fieldLabel: string): string {\r\n return '';\r\n }\r\n getErrorMessageFromArray(arrayIndex: number, field: string, filedTranslationKey: string, arrayName: string = 'formArray'): string {\r\n const fieldControl = this.baseForm.get(arrayName).get([arrayIndex]).get(field)\r\n return this.getErrorMessageForField(fieldControl, filedTranslationKey)\r\n }\r\n getErrorMessage(field: string, filedTranslationKey: string, formGroup: UntypedFormGroup | string = null): string {\r\n const fg = this.getFromGroup(formGroup)\r\n return this.getErrorMessageForField(fg.get(field), filedTranslationKey)\r\n }\r\n getErrorMessageForField(fieldControl: any, filedTranslationKey: string): string {\r\n const error = fieldControl.errors;\r\n const fieldLabel = this.translate.instant(filedTranslationKey);\r\n let rvalue = '';\r\n if (error !== null) {\r\n if (error['required'] === true) {\r\n rvalue = this.translate.instant('General.Field.Required', { field: fieldLabel });\r\n }\r\n if (error['minlength']) {\r\n rvalue = this.translate.instant('General.Field.MinLength', { field: fieldLabel, requiredLength: error.minlength.requiredLength });\r\n }\r\n if (error['email'] === true) {\r\n rvalue = this.translate.instant('General.Field.InvalidEmail');\r\n }\r\n if (error['url'] === true) {\r\n rvalue = this.translate.instant('General.Field.InvalidUrl');\r\n }\r\n if (error['serverError']) {\r\n rvalue = error['serverError'];\r\n }\r\n if (rvalue === '') {\r\n rvalue = this.getCustomErrorMessage(error, fieldLabel);\r\n }\r\n }\r\n return rvalue;\r\n }\r\n}\r\n","<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button></ion-menu-button>\r\n <ion-back-button></ion-back-button>\r\n </ion-buttons>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content [fullscreen]=\"true\">\r\n <ng-container *ngIf=\"!isLoading\">\r\n <form [formGroup]=\"baseForm\" (ngSubmit)=\"onSubmit(model)\">\r\n <formly-form [form]=\"baseForm\" [fields]=\"fields\" [model]=\"model\" [options]=\"options\"></formly-form>\r\n </form>\r\n </ng-container>\r\n</ion-content>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\r\n <ion-button *ngIf=\"!isLoading\" slot=\"end\" fill=\"clear\" (click)=\"onSave()\"\r\n [disabled]=\"baseForm.invalid || !baseForm.dirty\">\r\n <ion-icon size=\"large\" name=\"save\"></ion-icon>\r\n </ion-button>\r\n</ng-template>","import { Location } from '@angular/common';\r\nimport { Component, ElementRef, Injector, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationStart, Router, UrlSegment } from '@angular/router';\r\nimport { NavController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BaseQueryData, BaseService, MetadataStorage, Rule } from '@rosoftlab/core';\r\nimport { BaseModelFormly } from '@rosoftlab/formly';\r\nimport { ColumnMode, SelectionType } from '@swimlane/ngx-datatable';\r\nimport * as jsonLogic from 'json-logic-js/logic.js';\r\nimport { IonicDataTableLayoutConfig } from '../../decorators/ionic-datatable-layout';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { RslIonicModuleModule } from '../../rsl-ionic-module.module';\r\nexport declare type SortDirection = 'asc' | 'desc' | '';\r\n@Component({\r\n selector: 'app-rsl-ionic-data-table',\r\n templateUrl: './rsl-ionic-data-table.component.html',\r\n styleUrls: ['./rsl-ionic-data-table.component.scss'],\r\n imports: [RslIonicModuleModule]\r\n})\r\nexport class RslIonicDataTableComponent<T extends BaseModelFormly, U extends BaseService<T>> implements OnInit {\r\n @ViewChild('actionsTmpl', { static: true }) actionsTmpl: TemplateRef<any>;\r\n public title: string;\r\n @Input() showSerach: boolean;\r\n @Input() searchFields: string;\r\n @Input() customInclude: string;\r\n @Input() defaultSort: string;\r\n @Input() defaultSortDirection: SortDirection;\r\n @Input() deletePropertyName: string;\r\n @Input() defaultFilter: string;\r\n @Input() showHeader: boolean;\r\n @Input() deleteDisableRule: Rule[];\r\n @Input() hasAdd: boolean;\r\n @Input() canDelete: boolean;\r\n @Input() canEdit: boolean;\r\n\r\n @Input() model: T;\r\n @Input() modelService: U\r\n\r\n data: any[] = [];\r\n pageIndex: number = 1;\r\n pageSize: number = 30\r\n\r\n basePath: string;\r\n\r\n columns = [];\r\n allColumns = [];\r\n ColumnMode = ColumnMode;\r\n SelectionType = SelectionType;\r\n\r\n readonly headerHeight = 50;\r\n readonly rowHeight = 50;\r\n isLoading: boolean;\r\n filterValue: string;\r\n oldOffsetY: number;\r\n constructor(\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public translate: TranslateService,\r\n public location: Location,\r\n private injector: Injector,\r\n private navCtrl: NavController,\r\n public dialogService: IonicDialogService,\r\n private el: ElementRef) {\r\n\r\n }\r\n ngOnInit() {\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'showSerach', false);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'searchFields', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'customInclude', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSort', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSortDirection', '');\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'deletePropertyName', 'name');\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultFilter', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'showHeader', true);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'deleteDisableRule', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'hasAdd', true);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'canDelete', true);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'canEdit', true);\r\n if (!this.modelService) {\r\n const SERVICE_TOKEN = this.route.snapshot.data['requiredService'];\r\n this.modelService = this.injector.get<U>(<any>SERVICE_TOKEN);\r\n }\r\n this.model = this.modelService.newModel()\r\n this.title = this.model.modelConfig.formTitle\r\n this.getListLayout()\r\n\r\n const currentUrlSegments: UrlSegment[] = this.router.url.split('/').map(segment => new UrlSegment(segment, {}));\r\n this.basePath = currentUrlSegments.map(segment => segment.path).join('/');\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n // Navigation to another page is about to occur\r\n this.data = [];\r\n this.pageIndex = 1\r\n // Perform actions or update component as needed\r\n }\r\n });\r\n // this.isLoading = true;\r\n // this.onScroll(0);\r\n }\r\n setValueFromSnapshot<T>(component: any, snapshot: ActivatedRouteSnapshot, key: string, defaultValue: T): void {\r\n if (component[key] === undefined) {\r\n let dataFromSnapshot = snapshot.data[key];\r\n if (dataFromSnapshot === null || dataFromSnapshot === undefined) {\r\n dataFromSnapshot = snapshot.params[key];\r\n }\r\n component[key] = dataFromSnapshot !== undefined ? dataFromSnapshot : defaultValue;\r\n }\r\n }\r\n onScroll(offsetY: number) {\r\n if (offsetY) {\r\n if (this.oldOffsetY !== offsetY) {\r\n this.oldOffsetY = offsetY;\r\n const viewHeight = this.el.nativeElement.getBoundingClientRect().height - this.headerHeight;\r\n if (!this.isLoading && offsetY + viewHeight >= this.data.length * this.rowHeight) {\r\n // total number of results to load\r\n let limit = this.pageSize;\r\n\r\n // check if we haven't fetched any results yet\r\n if (this.data.length === 0) {\r\n // calculate the number of rows that fit within viewport\r\n const pageSize = Math.ceil(viewHeight / this.rowHeight);\r\n\r\n // change the limit to pageSize such that we fill the first page entirely\r\n // (otherwise, we won't be able to scroll past it)\r\n limit = Math.max(pageSize, this.pageSize);\r\n }\r\n // this.pageIndex\r\n this.pageSize = limit\r\n this.loadData();\r\n // this.loadPage(limit);\r\n }\r\n }\r\n }\r\n }\r\n async ionViewWillEnter() {\r\n this.data = [];\r\n this.loadData();\r\n }\r\n async handleChange(event) {\r\n this.filterValue = event.target.value.toLowerCase();\r\n this.data = [];\r\n this.pageIndex = 1\r\n this.loadData();\r\n }\r\n loadData(event = null) {\r\n const filters = [];\r\n let sorts = '';\r\n this.isLoading = true;\r\n if (this.defaultSort) {\r\n if (this.defaultSortDirection === 'desc') {\r\n sorts = '-' + this.defaultSort;\r\n } else {\r\n sorts = this.defaultSort;\r\n }\r\n }\r\n if (this.showSerach) {\r\n if (this.filterValue) {\r\n const y = '(' + this.searchFields.replace(',', '|') + ')';\r\n filters.push(y + '@=*' + this.filterValue);\r\n }\r\n }\r\n if (this.defaultFilter) {\r\n filters.push(this.defaultFilter)\r\n }\r\n setTimeout(() => {\r\n const filtersValue = filters.join(', ');\r\n this.modelService.getAll(this.pageIndex, this.pageSize, sorts, filtersValue, this.customInclude).subscribe(\r\n (response: BaseQueryData<T>) => {\r\n if (this.pageIndex !== response.getMeta().meta.count) {\r\n this.pageIndex++\r\n } else {\r\n if (event) event.target.disabled = true;\r\n }\r\n // if (this.filterValue)\r\n // this.data = response.getModels();\r\n // else\r\n const rows = [...this.data, ...response.getModels()];\r\n this.data = rows;\r\n // this.data = this.data.concat();\r\n\r\n if (event) event.target.complete();\r\n this.isLoading = false;\r\n })\r\n }, 700);\r\n }\r\n async handleRefresh(event) {\r\n this.pageIndex = 1\r\n this.data = [];\r\n this.loadData();\r\n event.target.complete();\r\n }\r\n onAdd() {\r\n console.log(this.basePath)\r\n this.router.navigate([this.basePath + '/add'])\r\n // this.navCtrl.navigateForward(this.basePath + '/add');\r\n }\r\n editModel(model: BaseModelFormly) {\r\n if (this.canEdit)\r\n this.router.navigate([this.basePath + '/edit/', model.id]);\r\n // this.navCtrl.navigateForward(this.basePath + '/edit/' + model.id);\r\n }\r\n getListLayout() {\r\n if (!this.model) {\r\n this.model = this.modelService.newModel(); \r\n }\r\n this.allColumns=[];\r\n this.columns=[];\r\n this.allColumns = MetadataStorage.getMetadata('IonicDataTableLayout', this.model).map((item: IonicDataTableLayoutConfig) => {\r\n if (!item.isTranslated) {\r\n item.name = this.translate.instant(item.name);\r\n item.isTranslated = true\r\n }\r\n return item;\r\n });\r\n\r\n this.allColumns.sort((a, b) => a.order - b.order);\r\n\r\n if (this.canDelete || this.canEdit) {\r\n this.allColumns.push({\r\n cellTemplate: this.actionsTmpl,\r\n name: '',\r\n cellClass: 'actions-cell',\r\n draggable: false,\r\n sortable: false,\r\n visible: true\r\n // width: 100,\r\n // maxWidth: 100,\r\n // minWidth: 100\r\n })\r\n }\r\n this.columns = this.allColumns.filter((item: IonicDataTableLayoutConfig) => item.visible);\r\n // Sort the columns array by the order property\r\n\r\n }\r\n deleteModel(model) {\r\n const msg = 'Do you want to delete ' + model[this.deletePropertyName] + '?';\r\n this.dialogService.confirm(msg).then(\r\n (value: any) => {\r\n if (value.data) {\r\n this.modelService.delete(model.id).subscribe(() => {\r\n const tempData = [];\r\n // this.selectedObject.emit(null);\r\n this.data.map((item) => {\r\n if (item.id !== model.id) {\r\n tempData.push(item);\r\n }\r\n });\r\n this.data = tempData;\r\n });\r\n }\r\n }\r\n )\r\n }\r\n\r\n deleteEnabled(model: T) {\r\n if (this.canDelete) {\r\n if (this.deleteDisableRule) {\r\n return this.evaluateRule(this.deleteDisableRule, model);\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n private evaluateRule(rules: Rule[], model: T): boolean {\r\n let result = true;\r\n rules.forEach(rule => {\r\n let jsonRule: any;\r\n if (typeof rule.rule === 'string') {\r\n jsonRule = JSON.parse(rule.rule);\r\n } else {\r\n jsonRule = rule.rule;\r\n }\r\n if (rule.parameters) {\r\n const data = '{' + rule.parameters.map((item: string) => {\r\n return '\"' + item + '\":\"' + model[item] + '\"';\r\n }).join(',') + '}';\r\n result = jsonLogic.apply(jsonRule, JSON.parse(data));\r\n } else {\r\n result = jsonLogic.apply(jsonRule);\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n\r\n}\r\n","<ion-header *ngIf=\"showHeader\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button></ion-menu-button>\r\n <ion-back-button></ion-back-button>\r\n </ion-buttons>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ion-content [fullscreen]=\"true\">\r\n\r\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n\r\n <ngx-datatable class=\"material fullscreen rls-server-scrolling\" style=\"top: 115px\" [rows]=\"data\" [columns]=\"columns\"\r\n [columnMode]=\"ColumnMode.standard\" [headerHeight]=\"headerHeight\" [rowHeight]=\"rowHeight\" [scrollbarV]=\"true\"\r\n [loadingIndicator]=\"isLoading\" [scrollbarH]=\"true\" (scroll)=\"onScroll($event.offsetY)\"\r\n >\r\n </ngx-datatable>\r\n \r\n <ng-template #actionsTmpl let-row=\"row\" let-value=\"value\">\r\n <ion-button fill=\"clear\" *ngIf=\"canEdit\" (click)='editModel(row)'>\r\n <ion-icon slot=\"icon-only\" name=\"create\" (click)='editModel(row)'></ion-icon>\r\n </ion-button>\r\n <ion-button fill=\"clear\" *ngIf=\"deleteEnabled(row)\" (click)='deleteModel(row)'>\r\n <ion-icon color=\"danger\" slot=\"icon-only\" name=\"trash\" (click)='deleteModel(row)'></ion-icon>\r\n </ion-button>\r\n </ng-template>\r\n\r\n</ion-content>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-center\">{{title}}</ion-title>\r\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\" *ngIf=\"hasAdd\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>","import { DatePipe, DecimalPipe, Location, PercentPipe } from '@angular/common';\r\nimport { Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationStart, Router, UrlSegment } from '@angular/router';\r\nimport { LoadingController, NavController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BaseQueryData, BaseService, GridLayoutFormat, MetadataStorage, Rule } from '@rosoftlab/core';\r\nimport { BaseModelFormly } from '@rosoftlab/formly';\r\nimport * as jsonLogic from 'json-logic-js/logic.js';\r\nimport { IonicListLayoutConfig } from '../../interfaces';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { RslIonicModuleModule } from '../../rsl-ionic-module.module';\r\nexport declare type SortDirection = 'asc' | 'desc' | '';\r\n@Component({\r\n selector: 'rsl-ionic-grid',\r\n templateUrl: './rsl-ionic-grid.component.html',\r\n imports: [RslIonicModuleModule]\r\n})\r\nexport class RslIonicGridComponent<T extends BaseModelFormly, U extends BaseService<T>> implements OnInit {\r\n public title: string;\r\n @Input() showSerach: boolean;\r\n @Input() searchFields: string;\r\n @Input() customInclude: string;\r\n @Input() defaultSort: string;\r\n @Input() defaultSortDirection: SortDirection;\r\n @Input() deletePropertyName: string;\r\n @Input() defaultFilter: string;\r\n @Input() showHeader: boolean;\r\n @Input() deleteDisableRule: Rule[];\r\n @Input() model: T;\r\n @Input() modelService: U\r\n\r\n data: any[] = [];\r\n pageIndex: number = 1;\r\n pageSize: number = 30\r\n\r\n gridLayout: IonicListLayoutConfig[]\r\n basePath: string;\r\n constructor(\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public translate: TranslateService,\r\n public location: Location,\r\n private injector: Injector,\r\n private loadingCtrl: LoadingController,\r\n private navCtrl: NavController,\r\n public dialogService: IonicDialogService,\r\n private datePipe: DatePipe,\r\n private numberPipe: DecimalPipe,\r\n private percentPipe: PercentPipe) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'showSerach', false);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'searchFields', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'customInclude', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSort', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSortDirection', '');\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'deletePropertyName', 'name');\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultFilter', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'showHeader', true);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'deleteDisableRule', null);\r\n\r\n // this.showSerach = route.snapshot.data['showSerach'] || false;\r\n // this.searchFields = this.route.snapshot.data['searchFields'] || null;\r\n\r\n // this.customInclude = this.route.snapshot.data['customInclude'] || null;\r\n\r\n // this.defaultSort = this.route.snapshot.data['defaultSort'] || null;\r\n // this.defaultSortDirection = this.route.snapshot.data['defaultSortDirection'] || '';\r\n\r\n // this.deletePropertyName = this.route.snapshot.data['deletePropertyName'] || 'name';\r\n // this.defaultFilter = this.route.snapshot.data['defaultFilter'] || null;\r\n\r\n if (!this.modelService) {\r\n const SERVICE_TOKEN = this.route.snapshot.data['requiredService'];\r\n this.modelService = this.injector.get<U>(<any>SERVICE_TOKEN);\r\n }\r\n this.model = this.modelService.newModel()\r\n this.title = this.model.modelConfig.formTitle\r\n this.getListLayout()\r\n\r\n const currentUrlSegments: UrlSegment[] = this.router.url.split('/').map(segment => new UrlSegment(segment, {}));\r\n this.basePath = currentUrlSegments.map(segment => segment.path).join('/');\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n // Navigation to another page is about to occur\r\n this.data = [];\r\n this.pageIndex = 1\r\n // Perform actions or update component as needed\r\n }\r\n });\r\n }\r\n setValueFromSnapshot<T>(component: any, snapshot: ActivatedRouteSnapshot, key: string, defaultValue: T): void {\r\n if (component[key] === undefined) {\r\n let dataFromSnapshot = snapshot.data[key];\r\n if (!dataFromSnapshot)\r\n dataFromSnapshot = snapshot.params[key];\r\n component[key] = dataFromSnapshot !== undefined ? dataFromSnapshot : defaultValue;\r\n }\r\n }\r\n async ionViewWillEnter() {\r\n this.data = [];\r\n const loading = await this.loadingCtrl.create({\r\n message: this.translate.instant('General.Loading'),\r\n spinner: 'circles',\r\n });\r\n loading.present();\r\n this.loadData(null, null, loading);\r\n }\r\n async handleChange(event) {\r\n const loading = await this.loadingCtrl.create({\r\n message: this.translate.instant('General.Loading'),\r\n spinner: 'circles',\r\n });\r\n loading.present();\r\n const query = event.target.value.toLowerCase();\r\n this.pageIndex = 1\r\n this.loadData(null, query, loading);\r\n // this.results = this.data.filter((d) => d.toLowerCase().indexOf(query) > -1);\r\n }\r\n loadData(event = null, filterValue = undefined, loading = null) {\r\n const filters = [];\r\n let sorts = '';\r\n if (this.defaultSort) {\r\n if (this.defaultSortDirection === 'desc') {\r\n sorts = '-' + this.defaultSort;\r\n } else {\r\n sorts = this.defaultSort;\r\n }\r\n }\r\n if (this.showSerach) {\r\n if (filterValue) {\r\n const y = '(' + this.searchFields.replace(',', '|') + ')';\r\n filters.push(y + '@=*' + filterValue);\r\n }\r\n }\r\n if (this.defaultFilter) {\r\n filters.push(this.defaultFilter)\r\n }\r\n setTimeout(() => {\r\n const filtersValue = filters.join(', ');\r\n this.modelService.getAll(this.pageIndex, this.pageSize, sorts, filtersValue, this.customInclude).subscribe(\r\n (response: BaseQueryData<T>) => {\r\n if (this.pageIndex !== response.getMeta().meta.count) {\r\n this.pageIndex++\r\n } else {\r\n if (event) event.target.disabled = true;\r\n }\r\n if (filterValue || loading)\r\n this.data = response.getModels();\r\n else\r\n this.data = this.data.concat(response.getModels());\r\n\r\n if (event) event.target.complete();\r\n if (loading)\r\n loading.dismiss()\r\n })\r\n }, 700);\r\n }\r\n async handleRefresh(event) {\r\n const loading = await this.loadingCtrl.create({\r\n message: this.translate.instant('General.Loading'),\r\n spinner: 'circles',\r\n });\r\n loading.present();\r\n this.pageIndex = 1\r\n this.loadData(null, null, loading);\r\n event.target.complete();\r\n }\r\n onAdd() {\r\n console.log(this.basePath)\r\n this.navCtrl.navigateForward(this.basePath + '/add');\r\n }\r\n editModel(model: BaseModelFormly) {\r\n this.navCtrl.navigateForward(this.basePath + '/edit/' + model.id);\r\n }\r\n getListLayout() {\r\n if (!this.model) {\r\n this.model = this.modelService.newModel();\r\n }\r\n this.gridLayout = MetadataStorage.getMetadata('IonicListLayout', this.model);\r\n }\r\n deleteModel(model) {\r\n const msg = 'Do you want to delete ' + model[this.deletePropertyName] + '?';\r\n this.dialogService.confirm(msg).then(\r\n (value: any) => {\r\n if (value.data) {\r\n this.modelService.delete(model.id).subscribe(() => {\r\n const tempData = [];\r\n // this.selectedObject.emit(null);\r\n this.data.map((item) => {\r\n if (item.id !== model.id) {\r\n tempData.push(item);\r\n }\r\n });\r\n this.data = tempData;\r\n });\r\n }\r\n }\r\n )\r\n }\r\n getCelValue(row: any, propertyName: string): any {\r\n if (!row)\r\n return \"\";\r\n // if (propertyName == 'kompetenzenStdev')\r\n // console.log(propertyName);\r\n if (propertyName.indexOf('.') === -1) {\r\n var gridLayout = this.gridLayout.find(f => f.key.indexOf(propertyName) > -1);\r\n return this.getFormatedValue(gridLayout, row[propertyName]);\r\n } else {\r\n const prop = propertyName.split('.')[0];\r\n const subProp = propertyName.replace(prop + '.', '');\r\n return this.getCelValue(row[prop], subProp);\r\n }\r\n }\r\n private getFormatedValue(gridLayout: IonicListLayoutConfig, value: any) {\r\n\r\n if (gridLayout) {\r\n switch (gridLayout.formating) {\r\n case GridLayoutFormat.date:\r\n return this.datePipe.transform(value, gridLayout.customFormat);\r\n break;\r\n case GridLayoutFormat.number:\r\n return this.numberPipe.transform(value, gridLayout.customFormat);\r\n case GridLayoutFormat.percent:\r\n const valuePrc = value / 100;\r\n return this.percentPipe.transform(valuePrc, gridLayout.customFormat);\r\n default:\r\n return value;\r\n break;\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n deleteEnabled(model: T) {\r\n if (this.deleteDisableRule) {\r\n return this.evaluateRule(this.deleteDisableRule, model);\r\n } else {\r\n return true;\r\n }\r\n }\r\n private evaluateRule(rules: Rule[], model: T): boolean {\r\n let result = true;\r\n rules.forEach(rule => {\r\n let jsonRule: any;\r\n if (typeof rule.rule === 'string') {\r\n jsonRule = JSON.parse(rule.rule);\r\n } else {\r\n jsonRule = rule.rule;\r\n }\r\n if (rule.parameters) {\r\n const data = '{' + rule.parameters.map((item: string) => {\r\n return '\"' + item + '\":\"' + model[item] + '\"';\r\n }).join(',') + '}';\r\n result = jsonLogic.apply(jsonRule, JSON.parse(data));\r\n } else {\r\n result = jsonLogic.apply(jsonRule);\r\n }\r\n });\r\n return result;\r\n }\r\n}\r\n","<ion-header *ngIf=\"showHeader\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button></ion-menu-button>\r\n <ion-back-button></ion-back-button>\r\n </ion-buttons>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ion-content [fullscreen]=\"true\">\r\n\r\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n\r\n <ion-list>\r\n <ng-container *ngFor=\"let item of data\">\r\n <ion-item-sliding>\r\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\r\n <ion-item-options *ngIf=\"deleteEnabled(item)\" side=\"end\">\r\n <ion-item-option color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"trash\" (click)='deleteModel(item)'></ion-icon>\r\n </ion-item-option>\r\n </ion-item-options>\r\n </ion-item-sliding>\r\n </ng-container>\r\n </ion-list>\r\n <ion-infinite-scroll threshold=\"100px\" (ionInfinite)=\"loadData($event)\">\r\n <ion-infinite-scroll-content loadingSpinner=\"bubbles\" loadingText=\"Loading more data...\">\r\n </ion-infinite-scroll-content>\r\n </ion-infinite-scroll>\r\n\r\n</ion-content>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\r\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>\r\n\r\n<ng-template #listItem let-item='item'>\r\n <ion-item button (click)='editModel(item)'>\r\n <ion-label>\r\n <ng-container *ngFor=\"let row of gridLayout\">\r\n <h2 *ngIf=\"row.primary\"> {{getCelValue(item,row.key)}} </h2>\r\n <h3 *ngIf=\"!row.primary\">{{getCelValue(item,row.key)}} </h3>\r\n </ng-container>\r\n </ion-label>\r\n </ion-item>\r\n</ng-template>","\r\nimport { MetadataStorage } from '@rosoftlab/core';\r\nimport { TableColumn } from '@swimlane/ngx-datatable';\r\nexport interface IonicDataTableLayoutConfig extends TableColumn {\r\n order?: number;\r\n visible?: boolean;\r\n isTranslated?: boolean;\r\n}\r\nexport function IonicDataTableLayout(config: IonicDataTableLayoutConfig) {\r\n return (target: any, propertyName: string) => {\r\n const annotations = MetadataStorage.getMetadata('IonicDataTableLayout', target) || [];\r\n config.prop = propertyName;\r\n config.visible = config.visible === undefined ? true : config.visible;\r\n annotations.push(config);\r\n\r\n MetadataStorage.setMetadata('IonicDataTableLayout', annotations, target);\r\n };\r\n}\r\n","import { MetadataStorage } from '@rosoftlab/core';\r\nimport { IonicListLayoutConfig } from '../interfaces/ionic-list-layout-config';\r\nexport function IonicListLayout(config: IonicListLayoutConfig) {\r\n return (target: any, propertyName: string) => {\r\n const annotations = MetadataStorage.getMetadata('IonicListLayout', target) || [];\r\n config.key = propertyName;\r\n annotations.push(config);\r\n\r\n MetadataStorage.setMetadata('IonicListLayout', annotations, target);\r\n };\r\n}\r\n","/*\r\n * Public API Surface of ionic\r\n */\r\n\r\nexport * from './lib/components';\r\nexport * from './lib/decorators';\r\nexport * from './lib/interfaces';\r\nexport * from './lib/ionic-dialog.service';\r\nexport * from './lib/translate.extension';\r\nexport * from './lib/types';\r\nexport * from './lib/validators';\r\nexport * from './lib/wrappers';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","COMMON_MODULES","i1.IonicDialogService","i3","i4","i5","i6","i2","i3.IonicDialogService","i7","i8","i5.IonicDialogService"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"rosoftlab-ionic.mjs","sources":["../../../../projects/rosoftlab/ionic/src/lib/ionic-dialog.service.ts","../../../../projects/rosoftlab/ionic/src/lib/translate.extension.ts","../../../../projects/rosoftlab/ionic/src/lib/wrappers/wrappers.module.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-sm-buttons/ionic-sm-buttons.component.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-sm-buttons/ionic-sm-buttons.component.html","../../../../projects/rosoftlab/ionic/src/lib/types/repeat-datatable/repeat-datatable.component.ts","../../../../projects/rosoftlab/ionic/src/lib/types/repeat-datatable/repeat-datatable.component.html","../../../../projects/rosoftlab/ionic/src/lib/types/repeat/repeat-section.type.ts","../../../../projects/rosoftlab/ionic/src/lib/types/repeat/repeat-section.html","../../../../projects/rosoftlab/ionic/src/lib/validators/must-match.ts","../../../../projects/rosoftlab/ionic/src/lib/wrappers/accordion-wrapper.component.ts","../../../../projects/rosoftlab/ionic/src/lib/wrappers/panel-wrapper.component.ts","../../../../projects/rosoftlab/ionic/src/lib/rsl-ionic-module.module.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-crud.component/rsl-ionic-crud.component.html","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-data-table/rsl-ionic-data-table.component.html","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.ts","../../../../projects/rosoftlab/ionic/src/lib/components/rsl-ionic-grid/rsl-ionic-grid.component.html","../../../../projects/rosoftlab/ionic/src/lib/decorators/ionic-datatable-layout.ts","../../../../projects/rosoftlab/ionic/src/lib/decorators/ionic-list.decorator.ts","../../../../projects/rosoftlab/ionic/src/public-api.ts","../../../../projects/rosoftlab/ionic/src/rosoftlab-ionic.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { AlertController } from '@ionic/angular';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IonicDialogService {\r\n\r\n constructor(private alertController: AlertController) { }\r\n async confirm(message?: string, title?: string,\r\n confirmButtonText: string = 'Delete',\r\n cancelButtonText: string = 'Cancel'): Promise<boolean> {\r\n let choice\r\n const alert = await this.alertController.create({\r\n header: title,\r\n subHeader: message,\r\n buttons: [{\r\n text: cancelButtonText,\r\n handler: () => {\r\n alert.dismiss(false)\r\n return false\r\n }\r\n }, {\r\n text: confirmButtonText,\r\n handler: () => {\r\n alert.dismiss(true);\r\n return true;\r\n }\r\n }]\r\n });\r\n\r\n await alert.present();\r\n await alert.onDidDismiss().then((data) => {\r\n choice = data\r\n })\r\n return choice\r\n\r\n }\r\n async showSaveMessage(message?: string, title?: string) {\r\n const alert = await this.alertController.create({\r\n header: title,\r\n subHeader: message,\r\n buttons: ['OK']\r\n });\r\n\r\n await alert.present();\r\n\r\n }\r\n\r\n}\r\n","import { FormlyExtension, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport class TranslateExtension implements FormlyExtension {\r\n constructor(private translate: TranslateService) { }\r\n prePopulate(field: FormlyFieldConfig) {\r\n const props = field.props || {};\r\n if (!props['translate'] || props['_translated']) {\r\n return;\r\n }\r\n\r\n props['_translated'] = true;\r\n field.expressions = {\r\n ...(field.expressions || {}),\r\n 'props.label': this.translate.stream(props.label),\r\n };\r\n if (props.placeholder) {\r\n field.expressions = {\r\n ...(field.expressions || {}),\r\n 'props.placeholder': this.translate.stream(props.placeholder)\r\n };\r\n }\r\n if (props.description) {\r\n field.expressions = {\r\n ...(field.expressions || {}),\r\n 'props.description': this.translate.stream(props.description)\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport function registerTranslateExtension(translate: TranslateService) {\r\n return {\r\n validationMessages: [\r\n {\r\n name: 'required',\r\n message(error: any, field: FormlyFieldConfig) {\r\n // console.log(field);\r\n return translate.stream('General.Field.Required', { field: field.props.label });\r\n },\r\n },\r\n ],\r\n extensions: [\r\n {\r\n name: 'translate',\r\n extension: new TranslateExtension(translate),\r\n }\r\n ],\r\n };\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { FORMLY_CONFIG, FormlyModule } from '@ngx-formly/core';\r\nimport { FormlyIonicModule } from '@ngx-formly/ionic';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { SmActionService } from '@rosoftlab/statemachine';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { registerTranslateExtension } from '../translate.extension';\r\n\r\nconst COMMON_MODULES = [\r\n CommonModule,\r\n IonicModule,\r\n ReactiveFormsModule,\r\n FormlyIonicModule,\r\n NgxDatatableModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n ...COMMON_MODULES,\r\n TranslateModule\r\n ],\r\n providers: [\r\n { provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },\r\n SmActionService\r\n ],\r\n exports: [\r\n ...COMMON_MODULES,\r\n FormlyModule,\r\n TranslateModule\r\n ],\r\n})\r\nexport class WrappersModule { }\r\n","import { Component, OnInit, Type } from '@angular/core';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyFieldProps } from '@ngx-formly/core';\r\nimport { FormlyFieldInput } from '@ngx-formly/ionic/input';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { SmAction, SmActionService, State, StateService } from '@rosoftlab/statemachine';\r\nimport { Observable } from 'rxjs';\r\nimport { WrappersModule } from '../../wrappers/wrappers.module';\r\ninterface InputProps extends FormlyFieldProps { }\r\n\r\nexport interface FormlyInputFieldConfig extends FormlyFieldConfig<InputProps> {\r\n type: 'input' | Type<FormlyFieldInput>;\r\n}\r\n@Component({\r\n selector: 'app-ionic-sm-buttons',\r\n templateUrl: './ionic-sm-buttons.component.html',\r\n styleUrls: ['./ionic-sm-buttons.component.css'],\r\n imports: [\r\n WrappersModule\r\n ]\r\n})\r\nexport class RslIonicSmButtonsComponent extends FieldType<FieldTypeConfig<InputProps>> implements OnInit {\r\n smActions$: Observable<SmAction[]>\r\n currentState: State;\r\n\r\n objectType: string;\r\n objectId: string;\r\n constructor(\r\n public smActionService: SmActionService,\r\n private stateService: StateService,\r\n public translate: TranslateService) {\r\n super()\r\n }\r\n ngOnInit() {\r\n this.objectType = this.props.attributes['objectType'] as string\r\n this.objectId = this.field.parent.model.id\r\n this.loadCurrentState(this.field.model.currentStateId);\r\n this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType)\r\n // console.log(this.field)\r\n }\r\n executeAction(action: SmAction) {\r\n // this.currentState = null\r\n // this.smActions$ = null\r\n // console.log(action.actionID)\r\n this.smActionService.executeAction(this.objectId, this.objectType, action.actionID, \"\")\r\n .subscribe(\r\n response => {\r\n // console.log(response)\r\n if (this.field.props['onStateCahnged'])\r\n this.field.props['onStateCahnged']({ model: this.field.parent.model, response });\r\n this.model['currentStateId'] = response.currentStateId\r\n this.smActionService.getActions(this.objectId, this.objectType)\r\n\r\n this.options.resetModel()\r\n // this.field.formControl.updateValueAndValidity() \r\n this.smActions$ = this.smActionService.getActions(this.objectId, this.objectType)\r\n // //this.smActions = []\r\n this.loadCurrentState(response.currentStateId);\r\n }\r\n )\r\n // console.log(action);\r\n }\r\n loadCurrentState(stateId: any) {\r\n this.stateService.get(stateId).subscribe(\r\n state => this.currentState = state\r\n )\r\n }\r\n getColor(action: SmAction) {\r\n if (action.props) {\r\n return action.props[\"Color\"] ? action.props[\"Color\"] : \"primary\";\r\n }\r\n return \"primary\"\r\n }\r\n getCurrentState() {\r\n return this.translate.instant('General.State.CurrentState', { field: this.currentState.name });\r\n }\r\n}\r\n","<!-- <ion-input [type]=\"props.type || 'text'\" [formControl]=\"formControl\" [ionFormlyAttributes]=\"field\"></ion-input> -->\r\n\r\n<!-- <p>Sync</p>\r\n<ion-list>\r\n <ion-button *ngFor=\"let action of smActions\" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\r\n {{action.buttonTranslationKey |translate}}\r\n </ion-button>\r\n</ion-list> -->\r\n<ion-label *ngIf=\"currentState\">{{ getCurrentState() }}</ion-label>\r\n<ion-list>\r\n <ion-button *ngFor=\"let action of smActions$ | async \" color=\"{{getColor(action)}}\" (click)=\"executeAction(action)\">\r\n {{action.buttonTranslationKey |translate}}\r\n <!-- - {{action.actionID}} -->\r\n </ion-button>\r\n</ion-list>","import { Component, ElementRef, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldArrayType, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ColumnMode, SelectionType, TableColumn } from '@swimlane/ngx-datatable';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport * as XLSX from 'xlsx';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { WrappersModule } from '../../wrappers/wrappers.module';\r\ninterface SearchProp {\r\n showSerach: boolean\r\n searchProp: string\r\n}\r\ninterface ExportDataProp {\r\n propertiesToExport: string[]\r\n sheetName: string;\r\n fileName: string;\r\n}\r\ninterface ImportDataProp {\r\n keyProp: string\r\n propertiesToImport: string[]\r\n}\r\n@Component({\r\n selector: 'app-repeat-datatable',\r\n templateUrl: './repeat-datatable.component.html',\r\n styleUrls: ['./repeat-datatable.component.scss'],\r\n imports: [\r\n WrappersModule\r\n ]\r\n})\r\nexport class RepeatDatatableComponent extends FieldArrayType implements OnInit {\r\n /**\r\n *\r\n */\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n @ViewChild('defaultColumn', { static: true }) public defaultColumn: TemplateRef<any>;\r\n @ViewChild('actionsTmpl', { static: true }) actionsTmpl: TemplateRef<any>;\r\n\r\n data: FormlyFieldConfig[] = null;\r\n serach: SearchProp = null;\r\n showSerach: boolean = false;\r\n deleteMessage: string\r\n deleteButton: string\r\n cancelButton: string\r\n filterValue: string = null;\r\n typeKey: string;\r\n importDataProp: ImportDataProp = null;\r\n exportDataProp: ExportDataProp = null;\r\n\r\n ColumnMode = ColumnMode;\r\n SelectionType = SelectionType;\r\n constructor(\r\n public dialogService: IonicDialogService,\r\n public translate: TranslateService,\r\n private fileSaverService: FileSaverService) {\r\n super();\r\n this.deleteMessage = this.translate.instant(\"General.Delete.Question\")\r\n this.deleteButton = this.translate.instant(\"General.Delete.Button\")\r\n this.cancelButton = this.translate.instant(\"General.Cancel.Button\")\r\n\r\n }\r\n override add(i?: number, initialModel?: any) {\r\n initialModel = {}\r\n this.props['columns'].forEach(column => initialModel[column.prop] = null)\r\n super.add(i, initialModel);\r\n }\r\n override remove(i: number, { markAsDirty } = { markAsDirty: true }) {\r\n this.dialogService.confirm(this.deleteMessage, null, this.deleteButton, this.cancelButton).then(\r\n (value: any) => {\r\n if (value.data) {\r\n var onDelete = this.field.props['onDelete'];\r\n if (onDelete) {\r\n onDelete(this.field.fieldGroup[i].model).subscribe(\r\n () => {\r\n super.remove(i);\r\n }\r\n )\r\n }\r\n super.remove(i);\r\n }\r\n }\r\n )\r\n }\r\n ngOnInit() {\r\n this.props['columns'].forEach(column => column.cellTemplate = this.defaultColumn);\r\n this.props['columns'].push({\r\n cellTemplate: this.actionsTmpl,\r\n name: '',\r\n cellClass: 'actions-cell',\r\n draggable: false,\r\n sortable: false,\r\n visible: true,\r\n width: 75,\r\n maxWidth: 75,\r\n minWidth: 75\r\n })\r\n this.typeKey = this.field.key as string\r\n this.serach = this.props['search']\r\n this.exportDataProp = this.props['export'] || null\r\n this.importDataProp = this.props['import'] || null\r\n if (this.serach) {\r\n this.showSerach = this.serach.showSerach\r\n }\r\n\r\n }\r\n getField(field: FormlyFieldConfig, column: TableColumn, rowIndex: number): FormlyFieldConfig {\r\n return field.fieldGroup[rowIndex].fieldGroup.find(f => f.key === column.prop);\r\n }\r\n postPopulate(field: any) {\r\n if (this.showSerach) {\r\n this.data = field.fieldGroup\r\n if (this.filterValue) {\r\n this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue))\r\n }\r\n }\r\n }\r\n handleChange(event) {\r\n if (this.showSerach) {\r\n if (this.data == null && this.field.fieldGroup !== null) {\r\n this.data = this.field.fieldGroup\r\n }\r\n this.filterValue = event.target.value.toLowerCase();\r\n this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue))\r\n }\r\n }\r\n importData() {\r\n this.fileInput.nativeElement.click();\r\n }\r\n async handleImportFile(event: any) {\r\n const file = event.target.files[0];\r\n\r\n if (file) {\r\n try {\r\n\r\n\r\n const fileContents = await this.readFileAsync(file);\r\n // Handle the file contents here (e.g., display or process the data)\r\n const wb: XLSX.WorkBook = XLSX.read(fileContents)//, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n const excelData = XLSX.utils.sheet_to_json(ws)//, { header: 1 });\r\n excelData.forEach(element => {\r\n const jsonX = this.getValueFromJsonData(element, this.importDataProp.keyProp)\r\n const idx = this.field.parent.model[this.typeKey].findIndex(f => f[this.importDataProp.keyProp] === jsonX)\r\n if (idx >= 0) {\r\n const existingdata = this.field.parent.model[this.typeKey][idx]\r\n for (const prop of this.importDataProp.propertiesToImport) {\r\n const jsonVal = this.getValueFromJsonData(element, prop)\r\n if (existingdata[prop] !== jsonVal) {\r\n var fieldControl = this.field.fieldGroup[idx].formControl as FormGroup\r\n fieldControl.controls[prop].setValue(jsonVal)\r\n }\r\n }\r\n } else {\r\n super.add(null, element)\r\n }\r\n });\r\n\r\n } catch (error) {\r\n console.error('Error reading the file:', error);\r\n }\r\n }\r\n }\r\n\r\n exportData() {\r\n\r\n // Filter the data to include only the specified properties\r\n const filteredData = this.field.parent.model[this.typeKey].map(item => {\r\n const filteredItem: any = {};\r\n for (const prop of this.exportDataProp.propertiesToExport) {\r\n filteredItem[prop] = item[prop];\r\n }\r\n return filteredItem;\r\n });\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(filteredData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, this.exportDataProp.sheetName);\r\n\r\n const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\r\n\r\n const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n this.fileSaverService.save(blob, this.exportDataProp.fileName);\r\n }\r\n\r\n getValueFromJsonData(jsonData: any, key: string): any {\r\n // Convert the key and all JSON keys to lowercase\r\n const lowercaseKey = key.toLowerCase();\r\n const lowercaseKeys = Object.keys(jsonData).map(k => k.toLowerCase());\r\n\r\n // Find the lowercase key in the lowercase keys array\r\n const index = lowercaseKeys.indexOf(lowercaseKey);\r\n\r\n // If found, use the original (proper case) key to access the value\r\n if (index !== -1) {\r\n const originalKey = Object.keys(jsonData)[index];\r\n return jsonData[originalKey];\r\n }\r\n\r\n // Key not found\r\n return undefined;\r\n }\r\n private readFileAsync(file: File): Promise<any> {\r\n return new Promise<any>((resolve, reject) => {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (event: any) => {\r\n resolve(event.target.result);\r\n };\r\n\r\n reader.onerror = (event: any) => {\r\n reject(event.target.error);\r\n };\r\n\r\n reader.readAsArrayBuffer(file);\r\n });\r\n }\r\n}","<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-left\">{{props.label}}</ion-title>\r\n\r\n <ion-button slot=\"end\" (click)=\"exportData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"exportDataProp\">\r\n <ion-icon name=\"cloud-download-outline\"></ion-icon>\r\n </ion-button>\r\n\r\n <ion-button slot=\"end\" (click)=\"importData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"importDataProp\">\r\n <ion-icon name=\"cloud-upload-outline\"></ion-icon>\r\n </ion-button>\r\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx,.xls,.csv\" (change)=\"handleImportFile($event)\">\r\n\r\n <ion-button slot=\"end\" (click)=\"add()\" fill=\"clear\" [disabled]=\"props.disabled\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n<ngx-datatable #table class=\"material fullscreen rls-server-scrolling\" [rows]=\"model\" [columns]=\"props['columns']\" [columnMode]=\"props['columnMode']\"\r\n [rowHeight]=\"props['rowHeight']\" [headerHeight]=\"props['headerHeight']\" [footerHeight]=\"props['footerHeight']\" [limit]=\"props['limit']\"\r\n [scrollbarH]=\"props['scrollbarH']\" [reorderable]=\"props['reorderable']\" [externalSorting]=\"true\">\r\n <ng-template #defaultColumn ngx-datatable-cell-template let-rowIndex=\"rowIndex\" let-value=\"value\" let-row=\"row\"\r\n let-column=\"column\">\r\n <formly-field class=\"formly-ion-list-item\" [field]=\"getField(field, column, rowIndex)\"></formly-field>\r\n </ng-template>\r\n</ngx-datatable>\r\n\r\n<ng-template #actionsTmpl let-row=\"row\" let-value=\"value\" let-rowIndex=\"rowIndex\">\r\n <ion-button style=\"height: 100%;\" fill=\"clear\"[disabled]=\"props.disabled\" (click)='remove(rowIndex)'>\r\n <ion-icon color=\"danger\" slot=\"icon-only\" name=\"trash\" (click)='remove(rowIndex)'></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>","import { Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { FieldArrayType, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { getValueFromJsonData, readFileAsync } from '@rosoftlab/core';\r\nimport { FileSaverService } from 'ngx-filesaver';\r\nimport * as XLSX from 'xlsx';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { WrappersModule } from '../../wrappers/wrappers.module';\r\n\r\ninterface SearchProp {\r\n showSerach: boolean\r\n searchProp: string\r\n}\r\ninterface ExportDataProp {\r\n propertiesToExport: string[]\r\n sheetName: string;\r\n fileName: string;\r\n}\r\ninterface ImportDataProp {\r\n keyProp: string\r\n propertiesToImport: string[]\r\n}\r\n@Component({\r\n selector: 'formly-repeat-section',\r\n templateUrl: './repeat-section.html',\r\n styleUrls: ['./repeat-section.scss'],\r\n imports: [\r\n WrappersModule\r\n ]\r\n})\r\nexport class RepeatTypeComponent extends FieldArrayType {\r\n /**\r\n *\r\n */\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n data: FormlyFieldConfig[] = null;\r\n serach: SearchProp = null;\r\n showSerach: boolean = false;\r\n deleteMessage: string\r\n deleteButton: string\r\n cancelButton: string\r\n filterValue: string = null;\r\n typeKey: string;\r\n importDataProp: ImportDataProp = null;\r\n exportDataProp: ExportDataProp = null;\r\n constructor(\r\n public dialogService: IonicDialogService,\r\n public translate: TranslateService,\r\n private fileSaverService: FileSaverService) {\r\n super();\r\n this.deleteMessage = this.translate.instant(\"General.Delete.Question\")\r\n this.deleteButton = this.translate.instant(\"General.Delete.Button\")\r\n this.cancelButton = this.translate.instant(\"General.Cancel.Button\")\r\n\r\n }\r\n override remove(i: number, { markAsDirty } = { markAsDirty: true }) {\r\n this.dialogService.confirm(this.deleteMessage, null, this.deleteButton, this.cancelButton).then(\r\n (value: any) => {\r\n if (value.data) {\r\n var onDelete = this.field.props['onDelete'];\r\n if (onDelete) {\r\n onDelete(this.field.fieldGroup[i].model).subscribe(\r\n () => {\r\n super.remove(i);\r\n }\r\n )\r\n }\r\n super.remove(i);\r\n }\r\n }\r\n )\r\n }\r\n ngOnInit() {\r\n this.typeKey = this.field.key as string\r\n this.serach = this.props['search']\r\n this.exportDataProp = this.props['export'] || null\r\n this.importDataProp = this.props['import'] || null\r\n if (this.serach) {\r\n this.showSerach = this.serach.showSerach\r\n }\r\n\r\n }\r\n postPopulate(field: any) {\r\n if (this.showSerach) {\r\n this.data = field.fieldGroup\r\n if (this.filterValue) {\r\n this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue))\r\n }\r\n }\r\n }\r\n handleChange(event) {\r\n if (this.showSerach) {\r\n if (this.data == null && this.field.fieldGroup !== null) {\r\n this.data = this.field.fieldGroup\r\n }\r\n this.filterValue = event.target.value.toLowerCase();\r\n this.field.fieldGroup = this.data.filter(f => f.formControl.value[this.serach.searchProp].toLowerCase().includes(this.filterValue))\r\n }\r\n }\r\n importData() {\r\n this.fileInput.nativeElement.click();\r\n }\r\n async handleImportFile(event: any) {\r\n const file = event.target.files[0];\r\n\r\n if (file) {\r\n try {\r\n\r\n\r\n const fileContents = await readFileAsync(file);\r\n // Handle the file contents here (e.g., display or process the data)\r\n const wb: XLSX.WorkBook = XLSX.read(fileContents)//, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n const excelData = XLSX.utils.sheet_to_json(ws)//, { header: 1 });\r\n excelData.forEach(element => {\r\n const jsonX = getValueFromJsonData(element, this.importDataProp.keyProp)\r\n const idx = this.field.parent.model[this.typeKey].findIndex(f => f[this.importDataProp.keyProp] === jsonX)\r\n if (idx >= 0) {\r\n const existingdata = this.field.parent.model[this.typeKey][idx]\r\n for (const prop of this.importDataProp.propertiesToImport) {\r\n const jsonVal = getValueFromJsonData(element, prop)\r\n if (existingdata[prop] !== jsonVal) {\r\n var fieldControl = this.field.fieldGroup[idx].formControl as FormGroup\r\n fieldControl.controls[prop].setValue(jsonVal)\r\n }\r\n }\r\n } else {\r\n super.add(null, element)\r\n }\r\n });\r\n\r\n } catch (error) {\r\n console.error('Error reading the file:', error);\r\n }\r\n }\r\n }\r\n\r\n exportData() {\r\n\r\n // Filter the data to include only the specified properties\r\n const filteredData = this.field.parent.model[this.typeKey].map(item => {\r\n const filteredItem: any = {};\r\n for (const prop of this.exportDataProp.propertiesToExport) {\r\n filteredItem[prop] = item[prop];\r\n }\r\n return filteredItem;\r\n });\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(filteredData);\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, this.exportDataProp.sheetName);\r\n\r\n const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\r\n\r\n const blob = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n this.fileSaverService.save(blob, this.exportDataProp.fileName);\r\n }\r\n\r\n // getValueFromJsonData(jsonData: any, key: string): any {\r\n // // Convert the key and all JSON keys to lowercase\r\n // const lowercaseKey = key.toLowerCase();\r\n // const lowercaseKeys = Object.keys(jsonData).map(k => k.toLowerCase());\r\n\r\n // // Find the lowercase key in the lowercase keys array\r\n // const index = lowercaseKeys.indexOf(lowercaseKey);\r\n\r\n // // If found, use the original (proper case) key to access the value\r\n // if (index !== -1) {\r\n // const originalKey = Object.keys(jsonData)[index];\r\n // return jsonData[originalKey];\r\n // }\r\n\r\n // // Key not found\r\n // return undefined;\r\n // }\r\n // private readFileAsync(file: File): Promise<any> {\r\n // return new Promise<any>((resolve, reject) => {\r\n // const reader = new FileReader();\r\n\r\n // reader.onload = (event: any) => {\r\n // resolve(event.target.result);\r\n // };\r\n\r\n // reader.onerror = (event: any) => {\r\n // reject(event.target.error);\r\n // };\r\n\r\n // reader.readAsArrayBuffer(file);\r\n // });\r\n // }\r\n}","<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-left\">{{props.label}}</ion-title>\r\n\r\n <ion-button slot=\"end\" (click)=\"exportData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"exportDataProp\">\r\n <ion-icon name=\"cloud-download-outline\"></ion-icon>\r\n </ion-button>\r\n\r\n <ion-button slot=\"end\" (click)=\"importData()\" fill=\"clear\" [disabled]=\"props.disabled\" *ngIf=\"importDataProp\">\r\n <ion-icon name=\"cloud-upload-outline\"></ion-icon>\r\n </ion-button>\r\n <input #fileInput type=\"file\" style=\"display: none\" accept=\".xlsx,.xls,.csv\" (change)=\"handleImportFile($event)\">\r\n\r\n <ion-button slot=\"end\" (click)=\"add()\" fill=\"clear\" [disabled]=\"props.disabled\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n\r\n<ion-list lines=\"full\">\r\n <ion-item *ngFor=\"let field of field.fieldGroup; let i = index\" class=\"row align-items-baseline\">\r\n <formly-field class=\"formly-ion-list-item\" [field]=\"field\"></formly-field>\r\n <ion-button [disabled]=\"props.disabled\" color=\"danger\" slot=\"end\" (click)='remove(i)'>\r\n <ion-icon slot=\"icon-only\" name=\"trash\"></ion-icon>\r\n </ion-button>\r\n </ion-item>\r\n</ion-list>\r\n\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>","import { AbstractControl } from '@angular/forms';\r\n\r\nexport function fieldMatchValidator(control: AbstractControl) {\r\n const { password, confirmPassword } = control.value;\r\n\r\n // avoid displaying the message error when values are empty\r\n if (!confirmPassword || !password) {\r\n return null;\r\n }\r\n\r\n if (confirmPassword === password) {\r\n return null;\r\n }\r\n\r\n return { fieldMatch: { message: 'Fields.Not.Matching' } };\r\n}","import { Component } from '@angular/core';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\nimport { WrappersModule } from './wrappers.module';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'formly-accordion-panel',\r\n template: `\r\n\r\n <ion-accordion-group [value]=\"['first']\">\r\n <ion-accordion value=\"first\">\r\n <ion-item slot=\"header\">\r\n <ion-card-title>{{ props.label}}</ion-card-title>\r\n </ion-item>\r\n <div class=\"ion-padding\" slot=\"content\">\r\n <ng-container #fieldComponent></ng-container>\r\n </div>\r\n </ion-accordion>\r\n </ion-accordion-group>\r\n\r\n\r\n \r\n `,\r\n imports: [WrappersModule]\r\n})\r\nexport class AccordionWrapperComponent extends FieldWrapper { }\r\n","import { Component } from '@angular/core';\r\nimport { FieldWrapper } from '@ngx-formly/core';\r\nimport { WrappersModule } from './wrappers.module';\r\n\r\n@Component({\r\n selector: 'formly-wrapper-panel',\r\n template: `\r\n <ion-card>\r\n <ion-card-header>\r\n <ion-card-title>{{ props.label}}</ion-card-title>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <ng-container #fieldComponent></ng-container>\r\n </ion-card-content>\r\n </ion-card>\r\n `,\r\n imports: [WrappersModule]\r\n})\r\nexport class PanelWrapperComponent extends FieldWrapper { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { IonicModule } from '@ionic/angular';\r\nimport { FORMLY_CONFIG, FormlyModule } from '@ngx-formly/core';\r\nimport { FormlyIonicModule } from '@ngx-formly/ionic';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\r\nimport { RslIonicSmButtonsComponent } from './components/rsl-ionic-sm-buttons/ionic-sm-buttons.component';\r\nimport { IonicDialogService } from './ionic-dialog.service';\r\nimport { registerTranslateExtension } from './translate.extension';\r\nimport { RepeatDatatableComponent } from './types/repeat-datatable/repeat-datatable.component';\r\nimport { RepeatTypeComponent } from './types/repeat/repeat-section.type';\r\nimport { fieldMatchValidator } from './validators/must-match';\r\nimport { AccordionWrapperComponent } from './wrappers/accordion-wrapper.component';\r\nimport { PanelWrapperComponent } from './wrappers/panel-wrapper.component';\r\nconst COMMON_MODULES = [\r\n CommonModule,\r\n IonicModule,\r\n ReactiveFormsModule,\r\n FormlyIonicModule,\r\n NgxDatatableModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n ...COMMON_MODULES,\r\n TranslateModule,\r\n FormlyModule.forRoot({\r\n types: [\r\n { name: 'repeat', component: RepeatTypeComponent },\r\n { name: 'repeat-data-table', component: RepeatDatatableComponent },\r\n { name: 'sm-buttons', component: RslIonicSmButtonsComponent }\r\n ],\r\n validators: [{ name: 'fieldMatch', validation: fieldMatchValidator }],\r\n wrappers: [\r\n { name: 'panel', component: PanelWrapperComponent },\r\n { name: 'accordion', component: AccordionWrapperComponent }],\r\n validationMessages: [\r\n { name: 'required', message: 'This field is required' },\r\n ],\r\n }),\r\n ],\r\n providers: [\r\n IonicDialogService,\r\n { provide: FORMLY_CONFIG, multi: true, useFactory: registerTranslateExtension, deps: [TranslateService] },\r\n ],\r\n exports: [\r\n ...COMMON_MODULES,\r\n FormlyModule,\r\n TranslateModule\r\n ],\r\n})\r\nexport class RslIonicModuleModule { }\r\n","import { Location } from '@angular/common';\r\nimport { Component, Injector, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';\r\nimport { FormlyJsonschema } from '@ngx-formly/core/json-schema';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BaseModelFormly, BaseServiceFormly } from '@rosoftlab/formly';\r\nimport * as _ from 'lodash';\r\nimport { Observable, from } from 'rxjs';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { RslIonicModuleModule } from '../../rsl-ionic-module.module';\r\n@Component({\r\n selector: 'rslc-ionic-crud',\r\n templateUrl: './rsl-ionic-crud.component.html',\r\n styleUrls: ['./rsl-ionic-crud.component.css'],\r\n imports: [RslIonicModuleModule]\r\n})\r\nexport class GenericIonicCrudComponent<T extends BaseModelFormly, U extends BaseServiceFormly<T>> implements OnInit {\r\n baseForm: UntypedFormGroup;\r\n modelId: string;\r\n model: T;\r\n origModel: T;\r\n isEdit: boolean;\r\n isLoading = true;\r\n cancelRoute: string;\r\n editRoute: string;\r\n modelService: U\r\n public changeUrlRoute: boolean = true;\r\n public title: string;\r\n fields: FormlyFieldConfig[]\r\n options: FormlyFormOptions = {};\r\n //#region Dialog messages\r\n confirmQuestion: string\r\n confirmButton: string\r\n saveMessage: string\r\n //#endregion\r\n constructor(\r\n public fb: UntypedFormBuilder,\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public dialogService: IonicDialogService,\r\n public translate: TranslateService,\r\n public location: Location,\r\n private injector: Injector,\r\n private formlyJsonschema: FormlyJsonschema,\r\n ) {\r\n\r\n const SERVICE_TOKEN = route.snapshot.data['requiredService'];\r\n this.modelService = this.injector.get<U>(<any>SERVICE_TOKEN);\r\n\r\n this.modelService = this.injector.get<U>(<any>SERVICE_TOKEN);\r\n this.confirmQuestion = this.translate.instant('General.Discard.Question');\r\n this.confirmButton = this.translate.instant('General.Discard.ConfirmButton');\r\n this.saveMessage = this.translate.instant('General.Save.Message');\r\n }\r\n\r\n ionViewWillLeave() {\r\n this.options.resetModel()\r\n this.baseForm.reset();\r\n }\r\n\r\n public afterSave(model: T): Observable<T> {\r\n return new Observable((observer) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n\r\n public beforeSave(model: T): Observable<T> {\r\n return new Observable((observer) => {\r\n observer.next(model);\r\n observer.complete();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n }\r\n initForm(customInclude: string = '', newModelId: string = null, model: T = null) {\r\n if (model === null) {\r\n this.modelId = this.route.snapshot.paramMap.get('id') ?? newModelId;\r\n this.isEdit = false;\r\n if (this.modelId) {\r\n this.modelService.get(this.modelId, customInclude).subscribe((value: T) => {\r\n this.isEdit = true;\r\n this.generateForm(value)\r\n }\r\n );\r\n } else {\r\n if (this.changeUrlRoute) {\r\n const addUrl = this.router.createUrlTree([]).toString();\r\n this.editRoute = this.router.createUrlTree([addUrl.replace('add', 'edit')]).toString();\r\n }\r\n // }\r\n this.generateForm(this.modelService.newModel());\r\n }\r\n } else {\r\n this.modelId = model.id;\r\n this.isEdit = true;\r\n this.generateForm(model)\r\n }\r\n }\r\n generateForm(model?: T) {\r\n this.isLoading = false;\r\n this.modelId = model.id;\r\n this.model = model;\r\n this.origModel = _.cloneDeep(model);;\r\n this.title = this.model.modelConfig.formTitle\r\n this.baseForm = new UntypedFormGroup({});//= this.modelService.toFormGroup(this.fb, model);\r\n this.afterFormGenerated();\r\n this.fields = this.modelService.getFormlyFields(this.model)\r\n }\r\n public afterFormGenerated() {\r\n\r\n }\r\n private getFromGroup(formGroup: UntypedFormGroup | string = null): UntypedFormGroup {\r\n if (!formGroup)\r\n return this.baseForm;\r\n if (formGroup instanceof UntypedFormGroup)\r\n return formGroup;\r\n return this.baseForm.controls[formGroup] as UntypedFormGroup;\r\n }\r\n validateAllFormFields(formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n Object.keys(fg.controls).forEach(field => {\r\n // console.log(field);\r\n const control = fg.get(field);\r\n if (control instanceof UntypedFormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n } else if (control instanceof UntypedFormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n isFieldValid(field: string, formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n const filedControl = fg.get(field)\r\n return !filedControl.valid && filedControl.touched;\r\n }\r\n\r\n isFieldValidFromArray(arrayIndex: number, field: string, arrayName: string = 'formArray') {\r\n const fieldControl = this.baseForm.get(arrayName).get([arrayIndex]).get(field)\r\n return !fieldControl.valid && fieldControl.touched;\r\n }\r\n\r\n displayFieldCss(field: string) {\r\n return {\r\n 'has-error': this.isFieldValid(field),\r\n 'has-feedback': this.isFieldValid(field)\r\n };\r\n }\r\n onCancel() {\r\n this.router.navigate([this.cancelRoute]);\r\n }\r\n onSave() {\r\n this.saveModel(this.baseForm)\r\n }\r\n onSubmit(model) {\r\n this.saveModel(this.baseForm)\r\n }\r\n\r\n saveModel(formGroup: UntypedFormGroup | string = null) {\r\n const fg = this.getFromGroup(formGroup)\r\n const that = this;\r\n if (fg) {\r\n if (fg.valid) {\r\n this.beforeSave(this.model).subscribe(_ => {\r\n this.modelService.save(this.model, this.modelId, this.origModel).subscribe(\r\n (newModel: T) => {\r\n this.model = newModel;\r\n this.modelId = newModel.id;\r\n if (this.editRoute) {\r\n this.isEdit = true;\r\n if (this.changeUrlRoute) {\r\n const url = this.router.createUrlTree([this.editRoute, this.modelId]).toString();\r\n this.location.replaceState(url);\r\n }\r\n }\r\n this.afterSave(newModel).subscribe((val: T) => {\r\n from(this.dialogService.showSaveMessage(this.saveMessage)).subscribe(d => {\r\n this.options.updateInitialValue()\r\n fg.markAsPristine();\r\n });\r\n });\r\n },\r\n err => {\r\n this.serverErrors(err)\r\n });\r\n });\r\n } else {\r\n this.validateAllFormFields(formGroup);\r\n }\r\n }\r\n }\r\n serverErrors(err: any) {\r\n if (err.error) {\r\n if (err.error.errors) {\r\n const validationErrors = err.error.errors;\r\n if (Array.isArray(validationErrors)) {\r\n validationErrors.forEach(prop => {\r\n const formControl = this.baseForm.get(this.firstCharToLowerCase(prop));\r\n if (formControl) {\r\n // activate the error message\r\n formControl.setErrors({\r\n serverError: { message: validationErrors[prop].join('\\n') }\r\n });\r\n }\r\n });\r\n } else {\r\n const keys = Object.keys(validationErrors);\r\n keys.forEach(prop => {\r\n const formControl = this.baseForm.get(this.firstCharToLowerCase(prop));\r\n if (formControl) {\r\n // activate the error message\r\n formControl.setErrors({\r\n serverError: { message: validationErrors[prop].join('\\n') }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n private firstCharToLowerCase(str: string): string {\r\n if (str.length === 0) {\r\n return str; // Return an empty string if the input is empty\r\n }\r\n\r\n const firstChar = str.charAt(0).toLowerCase();\r\n const restOfString = str.slice(1);\r\n\r\n return firstChar + restOfString;\r\n }\r\n async canDeactivate(): Promise<boolean> {\r\n if (!this.baseForm.dirty) {\r\n return true;\r\n }\r\n var result = await this.dialogService.confirm(this.confirmQuestion, null, this.confirmButton)\r\n return result;\r\n }\r\n getFiledName(filedTranslationKey: string) {\r\n return { field: this.translate.instant(filedTranslationKey) };\r\n }\r\n getCustomErrorMessage(error: any, fieldLabel: string): string {\r\n return '';\r\n }\r\n getErrorMessageFromArray(arrayIndex: number, field: string, filedTranslationKey: string, arrayName: string = 'formArray'): string {\r\n const fieldControl = this.baseForm.get(arrayName).get([arrayIndex]).get(field)\r\n return this.getErrorMessageForField(fieldControl, filedTranslationKey)\r\n }\r\n getErrorMessage(field: string, filedTranslationKey: string, formGroup: UntypedFormGroup | string = null): string {\r\n const fg = this.getFromGroup(formGroup)\r\n return this.getErrorMessageForField(fg.get(field), filedTranslationKey)\r\n }\r\n getErrorMessageForField(fieldControl: any, filedTranslationKey: string): string {\r\n const error = fieldControl.errors;\r\n const fieldLabel = this.translate.instant(filedTranslationKey);\r\n let rvalue = '';\r\n if (error !== null) {\r\n if (error['required'] === true) {\r\n rvalue = this.translate.instant('General.Field.Required', { field: fieldLabel });\r\n }\r\n if (error['minlength']) {\r\n rvalue = this.translate.instant('General.Field.MinLength', { field: fieldLabel, requiredLength: error.minlength.requiredLength });\r\n }\r\n if (error['email'] === true) {\r\n rvalue = this.translate.instant('General.Field.InvalidEmail');\r\n }\r\n if (error['url'] === true) {\r\n rvalue = this.translate.instant('General.Field.InvalidUrl');\r\n }\r\n if (error['serverError']) {\r\n rvalue = error['serverError'];\r\n }\r\n if (rvalue === '') {\r\n rvalue = this.getCustomErrorMessage(error, fieldLabel);\r\n }\r\n }\r\n return rvalue;\r\n }\r\n}\r\n","<ion-header [translucent]=\"true\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button></ion-menu-button>\r\n <ion-back-button></ion-back-button>\r\n </ion-buttons>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n</ion-header>\r\n\r\n<ion-content [fullscreen]=\"true\">\r\n <ng-container *ngIf=\"!isLoading\">\r\n <form [formGroup]=\"baseForm\" (ngSubmit)=\"onSubmit(model)\">\r\n <formly-form [form]=\"baseForm\" [fields]=\"fields\" [model]=\"model\" [options]=\"options\"></formly-form>\r\n </form>\r\n </ng-container>\r\n</ion-content>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\r\n <ion-button *ngIf=\"!isLoading\" slot=\"end\" fill=\"clear\" (click)=\"onSave()\"\r\n [disabled]=\"baseForm.invalid || !baseForm.dirty\">\r\n <ion-icon size=\"large\" name=\"save\"></ion-icon>\r\n </ion-button>\r\n</ng-template>","import { Location } from '@angular/common';\r\nimport { Component, ElementRef, Injector, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationStart, Router, UrlSegment } from '@angular/router';\r\nimport { NavController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BaseQueryData, BaseService, MetadataStorage, Rule } from '@rosoftlab/core';\r\nimport { BaseModelFormly } from '@rosoftlab/formly';\r\nimport { ColumnMode, SelectionType } from '@swimlane/ngx-datatable';\r\nimport * as jsonLogic from 'json-logic-js/logic.js';\r\nimport { IonicDataTableLayoutConfig } from '../../decorators/ionic-datatable-layout';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { RslIonicModuleModule } from '../../rsl-ionic-module.module';\r\nexport declare type SortDirection = 'asc' | 'desc' | '';\r\n@Component({\r\n selector: 'app-rsl-ionic-data-table',\r\n templateUrl: './rsl-ionic-data-table.component.html',\r\n styleUrls: ['./rsl-ionic-data-table.component.scss'],\r\n imports: [RslIonicModuleModule]\r\n})\r\nexport class RslIonicDataTableComponent<T extends BaseModelFormly, U extends BaseService<T>> implements OnInit {\r\n @ViewChild('actionsTmpl', { static: true }) actionsTmpl: TemplateRef<any>;\r\n public title: string;\r\n @Input() showSerach: boolean;\r\n @Input() searchFields: string;\r\n @Input() customInclude: string;\r\n @Input() defaultSort: string;\r\n @Input() defaultSortDirection: SortDirection;\r\n @Input() deletePropertyName: string;\r\n @Input() defaultFilter: string;\r\n @Input() showHeader: boolean;\r\n @Input() deleteDisableRule: Rule[];\r\n @Input() hasAdd: boolean;\r\n @Input() canDelete: boolean;\r\n @Input() canEdit: boolean;\r\n\r\n @Input() model: T;\r\n @Input() modelService: U\r\n\r\n data: any[] = [];\r\n pageIndex: number = 1;\r\n pageSize: number = 30\r\n\r\n basePath: string;\r\n\r\n columns = [];\r\n allColumns = [];\r\n ColumnMode = ColumnMode;\r\n SelectionType = SelectionType;\r\n\r\n readonly headerHeight = 50;\r\n readonly rowHeight = 50;\r\n isLoading: boolean;\r\n filterValue: string;\r\n oldOffsetY: number;\r\n constructor(\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public translate: TranslateService,\r\n public location: Location,\r\n private injector: Injector,\r\n private navCtrl: NavController,\r\n public dialogService: IonicDialogService,\r\n private el: ElementRef) {\r\n\r\n }\r\n ngOnInit() {\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'showSerach', false);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'searchFields', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'customInclude', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSort', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSortDirection', '');\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'deletePropertyName', 'name');\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultFilter', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'showHeader', true);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'deleteDisableRule', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'hasAdd', true);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'canDelete', true);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'canEdit', true);\r\n if (!this.modelService) {\r\n const SERVICE_TOKEN = this.route.snapshot.data['requiredService'];\r\n this.modelService = this.injector.get<U>(<any>SERVICE_TOKEN);\r\n }\r\n this.model = this.modelService.newModel()\r\n this.title = this.model.modelConfig.formTitle\r\n this.getListLayout()\r\n\r\n const currentUrlSegments: UrlSegment[] = this.router.url.split('/').map(segment => new UrlSegment(segment, {}));\r\n this.basePath = currentUrlSegments.map(segment => segment.path).join('/');\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n // Navigation to another page is about to occur\r\n this.data = [];\r\n this.pageIndex = 1\r\n // Perform actions or update component as needed\r\n }\r\n });\r\n // this.isLoading = true;\r\n // this.onScroll(0);\r\n }\r\n setValueFromSnapshot<T>(component: any, snapshot: ActivatedRouteSnapshot, key: string, defaultValue: T): void {\r\n if (component[key] === undefined) {\r\n let dataFromSnapshot = snapshot.data[key];\r\n if (dataFromSnapshot === null || dataFromSnapshot === undefined) {\r\n dataFromSnapshot = snapshot.params[key];\r\n }\r\n component[key] = dataFromSnapshot !== undefined ? dataFromSnapshot : defaultValue;\r\n }\r\n }\r\n onScroll(offsetY: number) {\r\n if (offsetY) {\r\n if (this.oldOffsetY !== offsetY) {\r\n this.oldOffsetY = offsetY;\r\n const viewHeight = this.el.nativeElement.getBoundingClientRect().height - this.headerHeight;\r\n if (!this.isLoading && offsetY + viewHeight >= this.data.length * this.rowHeight) {\r\n // total number of results to load\r\n let limit = this.pageSize;\r\n\r\n // check if we haven't fetched any results yet\r\n if (this.data.length === 0) {\r\n // calculate the number of rows that fit within viewport\r\n const pageSize = Math.ceil(viewHeight / this.rowHeight);\r\n\r\n // change the limit to pageSize such that we fill the first page entirely\r\n // (otherwise, we won't be able to scroll past it)\r\n limit = Math.max(pageSize, this.pageSize);\r\n }\r\n // this.pageIndex\r\n this.pageSize = limit\r\n this.loadData();\r\n // this.loadPage(limit);\r\n }\r\n }\r\n }\r\n }\r\n async ionViewWillEnter() {\r\n this.data = [];\r\n this.loadData();\r\n }\r\n async handleChange(event) {\r\n this.filterValue = event.target.value.toLowerCase();\r\n this.data = [];\r\n this.pageIndex = 1\r\n this.loadData();\r\n }\r\n loadData(event = null) {\r\n const filters = [];\r\n let sorts = '';\r\n this.isLoading = true;\r\n if (this.defaultSort) {\r\n if (this.defaultSortDirection === 'desc') {\r\n sorts = '-' + this.defaultSort;\r\n } else {\r\n sorts = this.defaultSort;\r\n }\r\n }\r\n if (this.showSerach) {\r\n if (this.filterValue) {\r\n const y = '(' + this.searchFields.replace(',', '|') + ')';\r\n filters.push(y + '@=*' + this.filterValue);\r\n }\r\n }\r\n if (this.defaultFilter) {\r\n filters.push(this.defaultFilter)\r\n }\r\n setTimeout(() => {\r\n const filtersValue = filters.join(', ');\r\n this.modelService.getAll(this.pageIndex, this.pageSize, sorts, filtersValue, this.customInclude).subscribe(\r\n (response: BaseQueryData<T>) => {\r\n if (this.pageIndex !== response.getMeta().meta.count) {\r\n this.pageIndex++\r\n } else {\r\n if (event) event.target.disabled = true;\r\n }\r\n // if (this.filterValue)\r\n // this.data = response.getModels();\r\n // else\r\n const rows = [...this.data, ...response.getModels()];\r\n this.data = rows;\r\n // this.data = this.data.concat();\r\n\r\n if (event) event.target.complete();\r\n this.isLoading = false;\r\n })\r\n }, 700);\r\n }\r\n async handleRefresh(event) {\r\n this.pageIndex = 1\r\n this.data = [];\r\n this.loadData();\r\n event.target.complete();\r\n }\r\n onAdd() {\r\n console.log(this.basePath)\r\n this.router.navigate([this.basePath + '/add'])\r\n // this.navCtrl.navigateForward(this.basePath + '/add');\r\n }\r\n editModel(model: BaseModelFormly) {\r\n if (this.canEdit)\r\n this.router.navigate([this.basePath + '/edit/', model.id]);\r\n // this.navCtrl.navigateForward(this.basePath + '/edit/' + model.id);\r\n }\r\n getListLayout() {\r\n if (!this.model) {\r\n this.model = this.modelService.newModel(); \r\n }\r\n this.allColumns=[];\r\n this.columns=[];\r\n this.allColumns = MetadataStorage.getMetadata('IonicDataTableLayout', this.model).map((item: IonicDataTableLayoutConfig) => {\r\n if (!item.isTranslated) {\r\n item.name = this.translate.instant(item.name);\r\n item.isTranslated = true\r\n }\r\n return item;\r\n });\r\n\r\n this.allColumns.sort((a, b) => a.order - b.order);\r\n\r\n if (this.canDelete || this.canEdit) {\r\n this.allColumns.push({\r\n cellTemplate: this.actionsTmpl,\r\n name: '',\r\n cellClass: 'actions-cell',\r\n draggable: false,\r\n sortable: false,\r\n visible: true\r\n // width: 100,\r\n // maxWidth: 100,\r\n // minWidth: 100\r\n })\r\n }\r\n this.columns = this.allColumns.filter((item: IonicDataTableLayoutConfig) => item.visible);\r\n // Sort the columns array by the order property\r\n\r\n }\r\n deleteModel(model) {\r\n const msg = 'Do you want to delete ' + model[this.deletePropertyName] + '?';\r\n this.dialogService.confirm(msg).then(\r\n (value: any) => {\r\n if (value.data) {\r\n this.modelService.delete(model.id).subscribe(() => {\r\n const tempData = [];\r\n // this.selectedObject.emit(null);\r\n this.data.map((item) => {\r\n if (item.id !== model.id) {\r\n tempData.push(item);\r\n }\r\n });\r\n this.data = tempData;\r\n });\r\n }\r\n }\r\n )\r\n }\r\n\r\n deleteEnabled(model: T) {\r\n if (this.canDelete) {\r\n if (this.deleteDisableRule) {\r\n return this.evaluateRule(this.deleteDisableRule, model);\r\n } else {\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n private evaluateRule(rules: Rule[], model: T): boolean {\r\n let result = true;\r\n rules.forEach(rule => {\r\n let jsonRule: any;\r\n if (typeof rule.rule === 'string') {\r\n jsonRule = JSON.parse(rule.rule);\r\n } else {\r\n jsonRule = rule.rule;\r\n }\r\n if (rule.parameters) {\r\n const data = '{' + rule.parameters.map((item: string) => {\r\n return '\"' + item + '\":\"' + model[item] + '\"';\r\n }).join(',') + '}';\r\n result = jsonLogic.apply(jsonRule, JSON.parse(data));\r\n } else {\r\n result = jsonLogic.apply(jsonRule);\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n\r\n}\r\n","<ion-header *ngIf=\"showHeader\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button></ion-menu-button>\r\n <ion-back-button></ion-back-button>\r\n </ion-buttons>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ion-content [fullscreen]=\"true\">\r\n\r\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n\r\n <ngx-datatable class=\"material fullscreen rls-server-scrolling\" style=\"top: 115px\" [rows]=\"data\" [columns]=\"columns\"\r\n [columnMode]=\"ColumnMode.standard\" [headerHeight]=\"headerHeight\" [rowHeight]=\"rowHeight\" [scrollbarV]=\"true\"\r\n [loadingIndicator]=\"isLoading\" [scrollbarH]=\"true\" (scroll)=\"onScroll($event.offsetY)\"\r\n >\r\n </ngx-datatable>\r\n \r\n <ng-template #actionsTmpl let-row=\"row\" let-value=\"value\">\r\n <ion-button fill=\"clear\" *ngIf=\"canEdit\" (click)='editModel(row)'>\r\n <ion-icon slot=\"icon-only\" name=\"create\" (click)='editModel(row)'></ion-icon>\r\n </ion-button>\r\n <ion-button fill=\"clear\" *ngIf=\"deleteEnabled(row)\" (click)='deleteModel(row)'>\r\n <ion-icon color=\"danger\" slot=\"icon-only\" name=\"trash\" (click)='deleteModel(row)'></ion-icon>\r\n </ion-button>\r\n </ng-template>\r\n\r\n</ion-content>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-center\">{{title}}</ion-title>\r\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\" *ngIf=\"hasAdd\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>","import { DatePipe, DecimalPipe, Location, PercentPipe } from '@angular/common';\r\nimport { Component, Injector, Input, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, ActivatedRouteSnapshot, NavigationStart, Router, UrlSegment } from '@angular/router';\r\nimport { LoadingController, NavController } from '@ionic/angular';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BaseQueryData, BaseService, GridLayoutFormat, MetadataStorage, Rule } from '@rosoftlab/core';\r\nimport { BaseModelFormly } from '@rosoftlab/formly';\r\nimport * as jsonLogic from 'json-logic-js/logic.js';\r\nimport { IonicListLayoutConfig } from '../../interfaces';\r\nimport { IonicDialogService } from '../../ionic-dialog.service';\r\nimport { RslIonicModuleModule } from '../../rsl-ionic-module.module';\r\nexport declare type SortDirection = 'asc' | 'desc' | '';\r\n@Component({\r\n selector: 'rsl-ionic-grid',\r\n templateUrl: './rsl-ionic-grid.component.html',\r\n imports: [RslIonicModuleModule]\r\n})\r\nexport class RslIonicGridComponent<T extends BaseModelFormly, U extends BaseService<T>> implements OnInit {\r\n public title: string;\r\n @Input() showSerach: boolean;\r\n @Input() searchFields: string;\r\n @Input() customInclude: string;\r\n @Input() defaultSort: string;\r\n @Input() defaultSortDirection: SortDirection;\r\n @Input() deletePropertyName: string;\r\n @Input() defaultFilter: string;\r\n @Input() showHeader: boolean;\r\n @Input() deleteDisableRule: Rule[];\r\n @Input() model: T;\r\n @Input() modelService: U\r\n\r\n data: any[] = [];\r\n pageIndex: number = 1;\r\n pageSize: number = 30\r\n\r\n gridLayout: IonicListLayoutConfig[]\r\n basePath: string;\r\n constructor(\r\n public router: Router,\r\n public route: ActivatedRoute,\r\n public translate: TranslateService,\r\n public location: Location,\r\n private injector: Injector,\r\n private loadingCtrl: LoadingController,\r\n private navCtrl: NavController,\r\n public dialogService: IonicDialogService,\r\n private datePipe: DatePipe,\r\n private numberPipe: DecimalPipe,\r\n private percentPipe: PercentPipe) {\r\n }\r\n\r\n ngOnInit() {\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'showSerach', false);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'searchFields', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'customInclude', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSort', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultSortDirection', '');\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'deletePropertyName', 'name');\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'defaultFilter', null);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'showHeader', true);\r\n this.setValueFromSnapshot(this, this.route.snapshot, 'deleteDisableRule', null);\r\n\r\n // this.showSerach = route.snapshot.data['showSerach'] || false;\r\n // this.searchFields = this.route.snapshot.data['searchFields'] || null;\r\n\r\n // this.customInclude = this.route.snapshot.data['customInclude'] || null;\r\n\r\n // this.defaultSort = this.route.snapshot.data['defaultSort'] || null;\r\n // this.defaultSortDirection = this.route.snapshot.data['defaultSortDirection'] || '';\r\n\r\n // this.deletePropertyName = this.route.snapshot.data['deletePropertyName'] || 'name';\r\n // this.defaultFilter = this.route.snapshot.data['defaultFilter'] || null;\r\n\r\n if (!this.modelService) {\r\n const SERVICE_TOKEN = this.route.snapshot.data['requiredService'];\r\n this.modelService = this.injector.get<U>(<any>SERVICE_TOKEN);\r\n }\r\n this.model = this.modelService.newModel()\r\n this.title = this.model.modelConfig.formTitle\r\n this.getListLayout()\r\n\r\n const currentUrlSegments: UrlSegment[] = this.router.url.split('/').map(segment => new UrlSegment(segment, {}));\r\n this.basePath = currentUrlSegments.map(segment => segment.path).join('/');\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n // Navigation to another page is about to occur\r\n this.data = [];\r\n this.pageIndex = 1\r\n // Perform actions or update component as needed\r\n }\r\n });\r\n }\r\n setValueFromSnapshot<T>(component: any, snapshot: ActivatedRouteSnapshot, key: string, defaultValue: T): void {\r\n if (component[key] === undefined) {\r\n let dataFromSnapshot = snapshot.data[key];\r\n if (!dataFromSnapshot)\r\n dataFromSnapshot = snapshot.params[key];\r\n component[key] = dataFromSnapshot !== undefined ? dataFromSnapshot : defaultValue;\r\n }\r\n }\r\n async ionViewWillEnter() {\r\n this.data = [];\r\n const loading = await this.loadingCtrl.create({\r\n message: this.translate.instant('General.Loading'),\r\n spinner: 'circles',\r\n });\r\n loading.present();\r\n this.loadData(null, null, loading);\r\n }\r\n async handleChange(event) {\r\n const loading = await this.loadingCtrl.create({\r\n message: this.translate.instant('General.Loading'),\r\n spinner: 'circles',\r\n });\r\n loading.present();\r\n const query = event.target.value.toLowerCase();\r\n this.pageIndex = 1\r\n this.loadData(null, query, loading);\r\n // this.results = this.data.filter((d) => d.toLowerCase().indexOf(query) > -1);\r\n }\r\n loadData(event = null, filterValue = undefined, loading = null) {\r\n const filters = [];\r\n let sorts = '';\r\n if (this.defaultSort) {\r\n if (this.defaultSortDirection === 'desc') {\r\n sorts = '-' + this.defaultSort;\r\n } else {\r\n sorts = this.defaultSort;\r\n }\r\n }\r\n if (this.showSerach) {\r\n if (filterValue) {\r\n const y = '(' + this.searchFields.replace(',', '|') + ')';\r\n filters.push(y + '@=*' + filterValue);\r\n }\r\n }\r\n if (this.defaultFilter) {\r\n filters.push(this.defaultFilter)\r\n }\r\n setTimeout(() => {\r\n const filtersValue = filters.join(', ');\r\n this.modelService.getAll(this.pageIndex, this.pageSize, sorts, filtersValue, this.customInclude).subscribe(\r\n (response: BaseQueryData<T>) => {\r\n if (this.pageIndex !== response.getMeta().meta.count) {\r\n this.pageIndex++\r\n } else {\r\n if (event) event.target.disabled = true;\r\n }\r\n if (filterValue || loading)\r\n this.data = response.getModels();\r\n else\r\n this.data = this.data.concat(response.getModels());\r\n\r\n if (event) event.target.complete();\r\n if (loading)\r\n loading.dismiss()\r\n })\r\n }, 700);\r\n }\r\n async handleRefresh(event) {\r\n const loading = await this.loadingCtrl.create({\r\n message: this.translate.instant('General.Loading'),\r\n spinner: 'circles',\r\n });\r\n loading.present();\r\n this.pageIndex = 1\r\n this.loadData(null, null, loading);\r\n event.target.complete();\r\n }\r\n onAdd() {\r\n console.log(this.basePath)\r\n this.navCtrl.navigateForward(this.basePath + '/add');\r\n }\r\n editModel(model: BaseModelFormly) {\r\n this.navCtrl.navigateForward(this.basePath + '/edit/' + model.id);\r\n }\r\n getListLayout() {\r\n if (!this.model) {\r\n this.model = this.modelService.newModel();\r\n }\r\n this.gridLayout = MetadataStorage.getMetadata('IonicListLayout', this.model);\r\n }\r\n deleteModel(model) {\r\n const msg = 'Do you want to delete ' + model[this.deletePropertyName] + '?';\r\n this.dialogService.confirm(msg).then(\r\n (value: any) => {\r\n if (value.data) {\r\n this.modelService.delete(model.id).subscribe(() => {\r\n const tempData = [];\r\n // this.selectedObject.emit(null);\r\n this.data.map((item) => {\r\n if (item.id !== model.id) {\r\n tempData.push(item);\r\n }\r\n });\r\n this.data = tempData;\r\n });\r\n }\r\n }\r\n )\r\n }\r\n getCelValue(row: any, propertyName: string): any {\r\n if (!row)\r\n return \"\";\r\n // if (propertyName == 'kompetenzenStdev')\r\n // console.log(propertyName);\r\n if (propertyName.indexOf('.') === -1) {\r\n var gridLayout = this.gridLayout.find(f => f.key.indexOf(propertyName) > -1);\r\n return this.getFormatedValue(gridLayout, row[propertyName]);\r\n } else {\r\n const prop = propertyName.split('.')[0];\r\n const subProp = propertyName.replace(prop + '.', '');\r\n return this.getCelValue(row[prop], subProp);\r\n }\r\n }\r\n private getFormatedValue(gridLayout: IonicListLayoutConfig, value: any) {\r\n\r\n if (gridLayout) {\r\n switch (gridLayout.formating) {\r\n case GridLayoutFormat.date:\r\n return this.datePipe.transform(value, gridLayout.customFormat);\r\n break;\r\n case GridLayoutFormat.number:\r\n return this.numberPipe.transform(value, gridLayout.customFormat);\r\n case GridLayoutFormat.percent:\r\n const valuePrc = value / 100;\r\n return this.percentPipe.transform(valuePrc, gridLayout.customFormat);\r\n default:\r\n return value;\r\n break;\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n deleteEnabled(model: T) {\r\n if (this.deleteDisableRule) {\r\n return this.evaluateRule(this.deleteDisableRule, model);\r\n } else {\r\n return true;\r\n }\r\n }\r\n private evaluateRule(rules: Rule[], model: T): boolean {\r\n let result = true;\r\n rules.forEach(rule => {\r\n let jsonRule: any;\r\n if (typeof rule.rule === 'string') {\r\n jsonRule = JSON.parse(rule.rule);\r\n } else {\r\n jsonRule = rule.rule;\r\n }\r\n if (rule.parameters) {\r\n const data = '{' + rule.parameters.map((item: string) => {\r\n return '\"' + item + '\":\"' + model[item] + '\"';\r\n }).join(',') + '}';\r\n result = jsonLogic.apply(jsonRule, JSON.parse(data));\r\n } else {\r\n result = jsonLogic.apply(jsonRule);\r\n }\r\n });\r\n return result;\r\n }\r\n}\r\n","<ion-header *ngIf=\"showHeader\">\r\n <ion-toolbar>\r\n <ion-buttons slot=\"start\">\r\n <ion-menu-button></ion-menu-button>\r\n <ion-back-button></ion-back-button>\r\n </ion-buttons>\r\n <ng-container [ngTemplateOutlet]=\"header\"></ng-container>\r\n </ion-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"search\"></ng-container>\r\n</ion-header>\r\n\r\n<ion-content [fullscreen]=\"true\">\r\n\r\n <ion-refresher slot=\"fixed\" (ionRefresh)=\"handleRefresh($event)\">\r\n <ion-refresher-content></ion-refresher-content>\r\n </ion-refresher>\r\n\r\n <ion-list>\r\n <ng-container *ngFor=\"let item of data\">\r\n <ion-item-sliding>\r\n <ng-container [ngTemplateOutlet]=\"listItem\" [ngTemplateOutletContext]=\"{item}\"></ng-container>\r\n <ion-item-options *ngIf=\"deleteEnabled(item)\" side=\"end\">\r\n <ion-item-option color=\"danger\">\r\n <ion-icon slot=\"icon-only\" name=\"trash\" (click)='deleteModel(item)'></ion-icon>\r\n </ion-item-option>\r\n </ion-item-options>\r\n </ion-item-sliding>\r\n </ng-container>\r\n </ion-list>\r\n <ion-infinite-scroll threshold=\"100px\" (ionInfinite)=\"loadData($event)\">\r\n <ion-infinite-scroll-content loadingSpinner=\"bubbles\" loadingText=\"Loading more data...\">\r\n </ion-infinite-scroll-content>\r\n </ion-infinite-scroll>\r\n\r\n</ion-content>\r\n\r\n<ng-template #header>\r\n <ion-title class=\"ion-text-center\">{{title |translate}}</ion-title>\r\n <ion-button slot=\"end\" (click)=\"onAdd()\" fill=\"clear\">\r\n <ion-icon size=\"large\" name=\"add\"></ion-icon>\r\n </ion-button>\r\n</ng-template>\r\n\r\n<ng-template #search>\r\n <ion-toolbar *ngIf=\"showSerach\">\r\n <ion-searchbar [debounce]=\"1000\" (ionChange)=\"handleChange($event)\"></ion-searchbar>\r\n </ion-toolbar>\r\n</ng-template>\r\n\r\n<ng-template #listItem let-item='item'>\r\n <ion-item button (click)='editModel(item)'>\r\n <ion-label>\r\n <ng-container *ngFor=\"let row of gridLayout\">\r\n <h2 *ngIf=\"row.primary\"> {{getCelValue(item,row.key)}} </h2>\r\n <h3 *ngIf=\"!row.primary\">{{getCelValue(item,row.key)}} </h3>\r\n </ng-container>\r\n </ion-label>\r\n </ion-item>\r\n</ng-template>","\r\nimport { MetadataStorage } from '@rosoftlab/core';\r\nimport { TableColumn } from '@swimlane/ngx-datatable';\r\nexport interface IonicDataTableLayoutConfig extends TableColumn {\r\n order?: number;\r\n visible?: boolean;\r\n isTranslated?: boolean;\r\n}\r\nexport function IonicDataTableLayout(config: IonicDataTableLayoutConfig) {\r\n return (target: any, propertyName: string) => {\r\n const annotations = MetadataStorage.getMetadata('IonicDataTableLayout', target) || [];\r\n config.prop = propertyName;\r\n config.visible = config.visible === undefined ? true : config.visible;\r\n annotations.push(config);\r\n\r\n MetadataStorage.setMetadata('IonicDataTableLayout', annotations, target);\r\n };\r\n}\r\n","import { MetadataStorage } from '@rosoftlab/core';\r\nimport { IonicListLayoutConfig } from '../interfaces/ionic-list-layout-config';\r\nexport function IonicListLayout(config: IonicListLayoutConfig) {\r\n return (target: any, propertyName: string) => {\r\n const annotations = MetadataStorage.getMetadata('IonicListLayout', target) || [];\r\n config.key = propertyName;\r\n annotations.push(config);\r\n\r\n MetadataStorage.setMetadata('IonicListLayout', annotations, target);\r\n };\r\n}\r\n","/*\r\n * Public API Surface of ionic\r\n */\r\n\r\nexport * from './lib/components';\r\nexport * from './lib/decorators';\r\nexport * from './lib/interfaces';\r\nexport * from './lib/ionic-dialog.service';\r\nexport * from './lib/translate.extension';\r\nexport * from './lib/types';\r\nexport * from './lib/validators';\r\nexport * from './lib/wrappers';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","COMMON_MODULES","i1.IonicDialogService","i3","i4","i5","i6","i2","i3.IonicDialogService","i7","i8","i5.IonicDialogService"],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "@rosoftlab/ionic",
|
3
|
-
"version": "1.0.1-alpha-
|
3
|
+
"version": "1.0.1-alpha-7",
|
4
4
|
"peerDependencies": {
|
5
5
|
"@angular/common": "^19.1.3",
|
6
6
|
"@angular/core": "^18.2.9",
|
7
7
|
"@ngx-formly/core": "^6.3.0",
|
8
8
|
"@ionic/angular": "7.7.1",
|
9
9
|
"@swimlane/ngx-datatable": "^20.1.0",
|
10
|
-
"@rosoftlab/core": "1.0.1-alpha-
|
11
|
-
"@rosoftlab/formly": "1.0.1-alpha-
|
12
|
-
"@rosoftlab/statemachine": "1.0.1-alpha-
|
10
|
+
"@rosoftlab/core": "1.0.1-alpha-7",
|
11
|
+
"@rosoftlab/formly": "1.0.1-alpha-7",
|
12
|
+
"@rosoftlab/statemachine": "1.0.1-alpha-7"
|
13
13
|
},
|
14
14
|
"dependencies": {
|
15
15
|
"tslib": "^2.6.2"
|