{"version":3,"file":"main.a5e9fdd2448bb57e.js","mappings":"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","sources":["./src/app/app.component.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/components/components.module.ts","./src/app/components/file-input/file-input.component.ts","./src/app/components/fixed-plugin/fixed-plugin.component.ts","./src/app/components/footer/footer.component.ts","./src/app/components/image-upload/image-upload.component.ts","./src/app/components/modal/modal.component.ts","./src/app/components/navbar/navbar.component.ts","./src/app/components/picture-upload/picture-upload.component.ts","./src/app/components/sidebar/sidebar.component.ts","./src/app/components/vector-map/vector-map.component.ts","./src/app/components/vector-map/vector-map.service.ts","./src/app/formdesigner/_formbuilder/formbuilder.ts","./src/app/formdesigner/_formrender/formrender.ts","./src/app/formdesigner/_partialcomponents/index.ts","./src/app/formdesigner/_partialcomponents/languagebutton/languagebutton.component.ts","./src/app/formdesigner/_partialcomponents/languagegrid/languagegrid.component.ts","./src/app/formdesigner/_partialcomponents/permission/permission.component.ts","./src/app/formdesigner/_partialcomponents/popootoolbox/popootoolbox.component.ts","./src/app/formdesigner/_partialcomponents/sqlcommand/sqlcommand.component.ts","./src/app/formdesigner/accordion/accordion.component.ts","./src/app/formdesigner/button/button.component.ts","./src/app/formdesigner/checkbox/checkbox.component.ts","./src/app/formdesigner/childform/childform.component.ts","./src/app/formdesigner/codeditor/codeditor.component.ts","./src/app/formdesigner/comment/comment.component.ts","./src/app/formdesigner/component.directive.ts","./src/app/formdesigner/component.item.ts","./src/app/formdesigner/component.service.ts","./src/app/formdesigner/customdatagrid/customdatagrid.component.ts","./src/app/formdesigner/dashboard/dashboard.component.ts","./src/app/formdesigner/datagridNew/datagrid.component.ts","./src/app/formdesigner/datagridselect/datagridselect.component.ts","./src/app/formdesigner/datalist/datalist.component.ts","./src/app/formdesigner/datasource/datasource.component.ts","./src/app/formdesigner/datebox/datebox.component.ts","./src/app/formdesigner/diagram/diagram.component.ts","./src/app/formdesigner/display/display.component.ts","./src/app/formdesigner/email/email.component.ts","./src/app/formdesigner/fileupload/fileupload.component.ts","./src/app/formdesigner/formresult/formresult.component.ts","./src/app/formdesigner/gallery/gallery.component.ts","./src/app/formdesigner/gantt/gantt.component.ts","./src/app/formdesigner/gantt/gantt.service.ts","./src/app/formdesigner/grid/grid.component.ts","./src/app/formdesigner/htmleditor/htmleditor.component.ts","./src/app/formdesigner/imageupload/imageupload.component.ts","./src/app/formdesigner/imageviewer/imageviewer.component.ts","./src/app/formdesigner/index.ts","./src/app/formdesigner/kanban/kanban.component.ts","./src/app/formdesigner/label/label.component.ts","./src/app/formdesigner/live/live.component.ts","./src/app/formdesigner/local-storage.service.ts","./src/app/formdesigner/map/map.component.ts","./src/app/formdesigner/menu/menu.component.ts","./src/app/formdesigner/multiselectbox/multiselectbox.component.ts","./src/app/formdesigner/number/number.component.ts","./src/app/formdesigner/password/password.component.ts","./src/app/formdesigner/payment/payment.component.ts","./src/app/formdesigner/pdfviewer/pdfviewer.component.ts","./src/app/formdesigner/phone/phone.component.ts","./src/app/formdesigner/picturebox/picturebox.component.ts","./src/app/formdesigner/printdesigner/printdesigner.component.ts","./src/app/formdesigner/radiogroup/radiogroup.component.ts","./src/app/formdesigner/render.component.ts","./src/app/formdesigner/riverform.module.ts","./src/app/formdesigner/safepipe.component .ts","./src/app/formdesigner/scheduler/scheduler.component.ts","./src/app/formdesigner/selectbox/selectbox.component.ts","./src/app/formdesigner/signature/signature.component.ts","./src/app/formdesigner/tabs/tabs.component.ts","./src/app/formdesigner/textarea/textarea.component.ts","./src/app/formdesigner/textbox/textbox.component.ts","./src/app/formdesigner/videoupload/videoupload.component.ts","./src/app/formdesigner/videoviewer/videoviewer.component.ts","./src/app/layouts/admin-layout/admin-layout.component.ts","./src/app/layouts/auth-layout/auth-layout.component.ts","./src/app/pages/admin/whitepageviewer/whitepageviewer.component.ts","./src/app/pages/reportdesigner/reportdesigner.component.ts","./src/app/shared/components/data-table-paginator/data-table-paginator.component.ts","./src/app/shared/components/data-table/data-table.component.ts","./src/app/shared/models/form-data-model.ts","./src/app/shared/models/form-model.ts","./src/app/shared/models/menu-node-model.ts","./src/app/shared/models/node-model.ts","./src/app/shared/models/report-model.ts","./src/app/shared/models/webmsg-model.ts","./src/app/shared/pipes/filter-pipe.pipe.ts","./src/app/shared/pipes/pagination-pipe.pipe.ts","./src/app/shared/pipes/sort-pipe.pipe.ts","./src/app/shared/services/app-info.service.ts","./src/app/shared/services/data/auth.service.ts","./src/app/shared/services/data/filemanagement.service.ts","./src/app/shared/services/data/form.service.ts","./src/app/shared/services/data/generic.service.ts","./src/app/shared/services/data/instance.service.ts","./src/app/shared/services/data/mail.service.ts","./src/app/shared/services/data/report.service.ts","./src/app/shared/services/data/task.service.ts","./src/app/shared/services/data/webmessage.service.ts","./src/app/shared/services/event-emitter.service.ts","./src/app/shared/services/global.service.ts","./src/app/shared/services/index.ts","./src/app/shared/services/screen.service.ts","./src/devextreme.module.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-root\",\r\n templateUrl: \"./app.component.html\",\r\n styleUrls: [\"./app.component.css\"]\r\n})\r\nexport class AppComponent {\r\n title = \"app\";\r\n}\r\n","import { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from \"@angular/core\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { ComponentsModule } from \"./components/components.module\";\r\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ToastrModule } from \"ngx-toastr\";\r\n\r\nimport { CurrencyPipe } from '@angular/common';\r\n import { BrowserModule } from '@angular/platform-browser'; \r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppComponent } from \"./app.component\";\r\nimport { AdminLayoutComponent } from \"./layouts/admin-layout/admin-layout.component\";\r\nimport { AuthLayoutComponent } from \"./layouts/auth-layout/auth-layout.component\";\r\nimport { AppInfoService, ScreenService, AuthService, AuthGuardService, FormbuilderGuardService, ReportingGuardService } from './shared/services';\r\nimport { RiverFormModule } from './formdesigner/riverform.module';\r\n\r\nimport { DevExtremeModule } from '../devextreme.module';\r\nimport { DxSelectBoxModule } from 'devextreme-angular';\r\nimport { ComponentService } from '../app/formdesigner/component.service';\r\nimport { AppRoutes } from \"./app.routing\";\r\nimport { MonacoEditorModule } from 'ngx-monaco-editor';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n import { ReportDesignerComponent } from \"./pages/reportdesigner/reportdesigner.component\";\r\n//import { CoreModule } from \"./core/core.module\";\r\n//import { MainSafePipe } from './safepipemain.component ';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n AdminLayoutComponent,\r\n ReportDesignerComponent,\r\n AuthLayoutComponent,\r\n /*, MainSafePipe*/],\r\n imports: [ BrowserModule, \r\n BrowserAnimationsModule,\r\n // CoreModule,\r\n //ComponentService,\r\n // ComponentService,\r\n // FormsModule,\r\n // ReactiveFormsModule,\r\n // MonacoEditorModule.forRoot(),\r\n DxSelectBoxModule,\r\n DevExtremeModule,\r\n RiverFormModule,\r\n RouterModule.forRoot(AppRoutes, { relativeLinkResolution: 'legacy' }),\r\n NgbModule,\r\n ToastrModule.forRoot(), // ToastrModule added\r\n ComponentsModule\r\n ], \r\n providers: [AuthGuardService, FormbuilderGuardService, ReportingGuardService, AppInfoService, ScreenService, AuthService, ComponentService, CurrencyPipe],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Routes } from \"@angular/router\";\r\n\r\nimport { AdminLayoutComponent } from \"./layouts/admin-layout/admin-layout.component\";\r\nimport { AuthLayoutComponent } from \"./layouts/auth-layout/auth-layout.component\";\r\nimport { AuthGuardService, FormbuilderGuardService } from \"./shared/services\";\r\n\r\nexport const AppRoutes: Routes = [\r\n {\r\n path: \"\",\r\n redirectTo: \"home\",\r\n pathMatch: \"full\"\r\n },\r\n {\r\n path: \"\",\r\n component: AdminLayoutComponent,\r\n canActivate: [AuthGuardService],\r\n children: [\r\n {\r\n path: \"\",\r\n loadChildren: () => import('./pages/home/home.module').then(m => m.HomeModule),\r\n canActivate: [AuthGuardService],\r\n runGuardsAndResolvers:\"always\"\r\n },\r\n {\r\n path: \"report\",\r\n loadChildren: () => import('./pages/report/report.module').then(m => m.ReportModule),\r\n canActivate: [AuthGuardService],\r\n pathMatch: \"full\",\r\n runGuardsAndResolvers: \"always\"\r\n },\r\n {\r\n path: \"profile\",\r\n loadChildren: () => import('./pages/profile/profile.module').then(m => m.ProfileModule),\r\n canActivate: [AuthGuardService],\r\n pathMatch: \"full\",\r\n runGuardsAndResolvers: \"always\"\r\n },\r\n {\r\n path: \"menu/:id/:formId/:schemaId\",\r\n loadChildren: () => import('./pages/menu/menu.module').then(m => m.MenuModule),\r\n canActivate: [AuthGuardService],\r\n pathMatch: \"full\",\r\n runGuardsAndResolvers: \"always\"\r\n },\r\n {\r\n path: \"history/:id\",\r\n loadChildren: () => import('./pages/history/history.module').then(m => m.HistoryModule),\r\n canActivate: [AuthGuardService],\r\n pathMatch: \"full\",\r\n runGuardsAndResolvers: \"always\"\r\n }, {\r\n path: \"filemanager\",\r\n loadChildren: () => import('./pages/filemanagement/filemanagement.module').then(m => m.FileManagementModule),\r\n canActivate: [AuthGuardService],\r\n pathMatch: \"full\",\r\n runGuardsAndResolvers: \"always\"\r\n },\r\n {\r\n //schemaId\r\n //keyword\r\n //status \r\n //userId \r\n //start1 \r\n //start2 \r\n //end1 \r\n //end2 \r\n path: \"search/:schemaId/:keyword/:status/:userId/:start1/:start2/:end1/:end2/:insideSearch\",\r\n loadChildren: () => import('./pages/search/search.module').then(m => m.SearchModule),\r\n canActivate: [AuthGuardService],\r\n pathMatch: \"full\"\r\n },\r\n //{\r\n // path: \"reportdesigner\",\r\n // loadChildren: \"./pages/reportdesigner/reportdesigner.module#ReportDesignerModule\",\r\n // canActivate: [ AuthGuardService ]\r\n //}\r\n // ,\r\n // {//http://localhost:4200/#/formbuilder\r\n // path: \"formbuilder\",\r\n // loadChildren:\r\n // \"./shared/components/formbuilder/formbuilder.module#FormbuilderModule\"\r\n // }\r\n //,\r\n //{\r\n // path: \"components\",\r\n // loadChildren:\r\n // \"./pages/components/components.module#ComponentsPageModule\"\r\n //},\r\n //{\r\n // path: \"forms\",\r\n // loadChildren: \"./pages/forms/forms.module#Forms\"\r\n //},\r\n //{\r\n // path: \"tables\",\r\n // loadChildren: \"./pages/tables/tables.module#TablesModule\"\r\n //},\r\n //{\r\n // path: \"maps\",\r\n // loadChildren: \"./pages/maps/maps.module#MapsModule\"\r\n //},\r\n //{\r\n // path: \"widgets\",\r\n // loadChildren: \"./pages/widgets/widgets.module#WidgetsModule\"\r\n //},\r\n //{\r\n // path: \"charts\",\r\n // loadChildren: \"./pages/charts/charts.module#ChartsModule\"\r\n //},\r\n //{\r\n // path: \"calendar\",\r\n // loadChildren: \"./pages/calendar/calendar.module#CalendarModulee\"\r\n //},\r\n //{\r\n // path: \"\",\r\n // loadChildren:\r\n // \"./pages/pages/user-profile/user-profile.module#UserModule\"\r\n //},\r\n //{\r\n // path: \"\",\r\n // loadChildren: \"./pages/pages/timeline/timeline.module#TimelineModule\"\r\n //}\r\n ]\r\n },\r\n {\r\n path: \"\",\r\n children: [\r\n {\r\n path: \"\",\r\n loadChildren: () => import('./shared/components/components.module').then(m => m.ComponentsModule)\r\n\r\n }\r\n ]\r\n },\r\n //{\r\n // path: \"\",\r\n // children: [ \r\n // {\r\n // path: \"reportdesigner\",\r\n // loadChildren: \"./pages/admin/designer/reportdesigner.component\",\r\n // canActivate: [FormbuilderGuardService ]\r\n // }\r\n // ]\r\n //},\r\n //{\r\n // path: \"\",\r\n // component: AuthLayoutComponent,\r\n // children: [\r\n // // ,\r\n // // {//http://localhost:4200/#/formbuilder\r\n // // path: \"formbuilder\",\r\n // // loadChildren:\r\n // // \"./shared/components/formbuilder/formbuilder.module#FormbuilderModule\"\r\n // // }\r\n // // {\r\n // // path: \"formbuilder\",\r\n // // loadChildren: \"./shared/components/components.module#ComponentsModule\"\r\n // // }\r\n // ]\r\n //}\r\n];\r\n\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { DxVectorMapModule,DxColorBoxModule } from \"devextreme-angular\";\r\nimport { JwBootstrapSwitchNg2Module } from \"jw-bootstrap-switch-ng2\";\r\n\r\nimport { NavbarComponent } from \"./navbar/navbar.component\";\r\nimport { FooterComponent } from \"./footer/footer.component\";\r\nimport { SidebarComponent } from \"./sidebar/sidebar.component\";\r\nimport { VectorMapComponent1 } from \"./vector-map/vector-map.component\";\r\nimport { NgbdModalBasic } from \"./modal/modal.component\";\r\nimport { ImageUploadComponent } from \"./image-upload/image-upload.component\";\r\nimport { FileInputComponent } from \"./file-input/file-input.component\";\r\nimport { PictureUploadComponent } from './picture-upload/picture-upload.component';\r\nimport { FixedPluginComponent } from './fixed-plugin/fixed-plugin.component';\r\n\r\nimport { DevExtremeModule } from '../../devextreme.module';\r\nimport {MonacoEditorModule } from 'ngx-monaco-editor';\r\nimport { ReportComponent } from \"src/app/pages/report/report.component\";\r\nimport { DataGridDesignerComponent } from \"../pages/admin/griddesigner/griddesigner.component\";\r\n\r\n@NgModule({\r\n imports: [CommonModule,HttpClientModule, RouterModule, FormsModule, JwBootstrapSwitchNg2Module, \r\n NgbModule, DxVectorMapModule,DxColorBoxModule,DevExtremeModule, \r\n MonacoEditorModule],\r\n declarations: [\r\n NavbarComponent,\r\n FooterComponent,\r\n SidebarComponent,\r\n VectorMapComponent1,\r\n NgbdModalBasic,\r\n ImageUploadComponent,\r\n FileInputComponent,\r\n PictureUploadComponent,\r\n FixedPluginComponent\r\n ],\r\n exports: [ \r\n NavbarComponent,\r\n FooterComponent,\r\n SidebarComponent,\r\n VectorMapComponent1,\r\n NgbdModalBasic,\r\n ImageUploadComponent,\r\n PictureUploadComponent,\r\n FileInputComponent,\r\n FixedPluginComponent\r\n ]\r\n})\r\nexport class ComponentsModule {}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-file-input\",\r\n templateUrl: \"./file-input.component.html\",\r\n styleUrls: [\"./file-input.component.css\"]\r\n})\r\nexport class FileInputComponent implements OnInit {\r\n private state: any = {};\r\n\r\n @Input() multiple: boolean;\r\n @ViewChild(\"input\") input: ElementRef;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n onFocus(e) {\r\n this.input.nativeElement.click(e);\r\n }\r\n handleSubmit(e) {\r\n e.preventDefault();\r\n // this.state.file is the file/image uploaded\r\n // in this function you can save the image (this.state.file) on form submit\r\n // you have to call it yourself\r\n }\r\n addFile(e) {\r\n let fileNames = \"\";\r\n let files = e.target.files;\r\n for (let i = 0; i < e.target.files.length; i++) {\r\n fileNames = fileNames + e.target.files[i].name;\r\n if (i !== e.target.files.length - 1) {\r\n fileNames = fileNames + \", \";\r\n }\r\n }\r\n this.state.fileNames = fileNames;\r\n this.state.files = files;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbDropdownConfig } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrService } from \"ngx-toastr\";\r\n\r\n@Component({\r\n selector: 'app-fixed-plugin',\r\n templateUrl: './fixed-plugin.component.html',\r\n styleUrls: ['./fixed-plugin.component.css']\r\n})\r\nexport class FixedPluginComponent implements OnInit {\r\n\r\n public sidebarColor: string = \"red\";\r\n public state: boolean = true;\r\n\r\n constructor(config: NgbDropdownConfig, public toastr: ToastrService) {\r\n // customize default values of dropdowns used by this component tree\r\n config.placement = 'bottom-left';\r\n config.autoClose = false;\r\n }\r\n\r\n changeSidebarColor(color){\r\n var sidebar = document.querySelector('.sidebar');\r\n\r\n this.sidebarColor = color;\r\n if(sidebar != undefined){\r\n sidebar.setAttribute('data-color',color);\r\n }\r\n }\r\n showSidebarMessage(message){\r\n this.toastr.show(\r\n '', message,\r\n {\r\n timeOut: 4000,\r\n closeButton: true,\r\n enableHtml: true,\r\n toastClass: \"alert alert-danger alert-with-icon\",\r\n positionClass: \"toast-top-right\"\r\n }\r\n );\r\n }\r\n onChange(event){\r\n const body = document.getElementsByTagName('body')[0];\r\n if (this.state === true) {\r\n body.classList.remove('sidebar-mini');\r\n this.showSidebarMessage('Sidebar mini deactivated...');\r\n } else {\r\n body.classList.add('sidebar-mini');\r\n this.showSidebarMessage('Sidebar mini activated...');\r\n }\r\n // we simulate the window Resize so the charts will get updated in realtime.\r\n var simulateWindowResize = setInterval(function(){\r\n window.dispatchEvent(new Event('resize'));\r\n },180);\r\n\r\n // we stop the simulation of Window Resize after the animations are completed\r\n setTimeout(function(){\r\n clearInterval(simulateWindowResize);\r\n },1000);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { environment } from \"../../../environments/environment\";\r\n\r\n@Component({\r\n selector: \"app-footer\",\r\n templateUrl: \"./footer.component.html\",\r\n styleUrls: [\"./footer.component.css\"]\r\n})\r\nexport class FooterComponent implements OnInit {\r\n test: Date = new Date();\r\n currentApplicationVersion = environment.appVersion;\r\n\r\n constructor() {\r\n this.test=new Date(2020,4,14);\r\n }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-image-upload\",\r\n templateUrl: \"./image-upload.component.html\",\r\n styleUrls: [\"./image-upload.component.scss\"]\r\n})\r\nexport class ImageUploadComponent implements OnInit {\r\n @Input() isRound: boolean = false;\r\n @Input() image: string;\r\n state: any = {};\r\n @ViewChild(\"input\") input: ElementRef;\r\n constructor() {\r\n this.handleImageChange = this.handleImageChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleClick = this.handleClick.bind(this);\r\n this.handleRemove = this.handleRemove.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n this.state = {\r\n file: null,\r\n imagePreviewUrl:\r\n this.image !== undefined\r\n ? this.image\r\n : this.isRound\r\n ? \"assets/img/placeholder.jpg\"\r\n : \"assets/img/image_placeholder.jpg\"\r\n };\r\n }\r\n ngAfterViewInit() {\r\n this.input.nativeElement.children[2].onchange = this.handleImageChange;\r\n }\r\n handleImageChange(e) {\r\n e.preventDefault();\r\n let reader = new FileReader();\r\n let file = e.target.files[0];\r\n reader.onloadend = () => {\r\n this.state.file = file;\r\n this.state.imagePreviewUrl = reader.result;\r\n // this.state.imagePreviewUrl1 = reader.result;\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n handleSubmit(e) {\r\n e.preventDefault();\r\n // this.state.file is the file/image uploaded\r\n // in this function you can save the image (this.state.file) on form submit\r\n // you have to call it yourself\r\n }\r\n handleClick() {\r\n this.input.nativeElement.children[2].click();\r\n }\r\n handleRemove() {\r\n this.state.file = null;\r\n this.state.imagePreviewUrl =\r\n this.image !== undefined\r\n ? this.image\r\n : this.isRound\r\n ? \"assets/img/placeholder.jpg\"\r\n : \"assets/img/image_placeholder.jpg\";\r\n }\r\n}\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { NgbModal, ModalDismissReasons } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\n@Component({\r\n selector: \"ngbd-modal-component\",\r\n templateUrl: \"./modal.component.html\"\r\n})\r\nexport class NgbdModalBasic {\r\n closeResult: string;\r\n\r\n constructor(private modalService: NgbModal) {}\r\n\r\n open(content, type, modalDimension) {\r\n if (modalDimension === \"sm\" && type === \"modal_mini\") {\r\n this.modalService\r\n .open(content, { windowClass: \"modal-mini modal-primary\", size: \"sm\" })\r\n .result.then(\r\n result => {\r\n this.closeResult = `Closed with: ${result}`;\r\n },\r\n reason => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n }\r\n );\r\n } else if (modalDimension == undefined && type === \"Login\") {\r\n this.modalService\r\n .open(content, { windowClass: \"modal-login modal-primary\" })\r\n .result.then(\r\n result => {\r\n this.closeResult = `Closed with: ${result}`;\r\n },\r\n reason => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n }\r\n );\r\n } else {\r\n this.modalService.open(content).result.then(\r\n result => {\r\n this.closeResult = `Closed with: ${result}`;\r\n },\r\n reason => {\r\n this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;\r\n }\r\n );\r\n }\r\n }\r\n\r\n private getDismissReason(reason: any): string {\r\n if (reason === ModalDismissReasons.ESC) {\r\n return \"by pressing ESC\";\r\n } else if (reason === ModalDismissReasons.BACKDROP_CLICK) {\r\n return \"by clicking on a backdrop\";\r\n } else {\r\n return `with: ${reason}`;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef, ChangeDetectorRef, NgZone, ViewChild, OnDestroy } from '@angular/core';\r\nimport { ROUTES } from '../sidebar/sidebar.component';\r\nimport { Location, LocationStrategy, PathLocationStrategy } from '@angular/common';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { AuthService, TaskService, EventEmitterService, AppInfoService, GenericService, FormService } from 'src/app/shared/services';\r\nimport { ComponentService } from 'src/app/formdesigner/component.service';\r\nimport { WebmsgModel } from '../../shared/models/webmsg-model';\r\nimport { WebMessageService } from '../../shared/services/data/webmessage.service';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { DataRefreshModel } from '../../shared/models/datarefresh-model';\r\nimport { NgbDropdown } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ReOpenFormModel, ReOpenMenuModel } from '../../shared/models/reopenform-model';\r\nimport { OpenLoadingModel } from '../../shared/models/openloading-model';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ChatMessageModel } from '../../shared/models/chatmessage-model';\r\n\r\n\r\n\r\nimport { locale, loadMessages, formatMessage } from 'devextreme/localization';\r\n\r\n@Component({\r\n selector: \"app-navbar\",\r\n templateUrl: \"./navbar.component.html\",\r\n styleUrls: [\"./navbar.component.scss\"]\r\n})\r\nexport class NavbarComponent implements OnInit, OnDestroy {\r\n public isCollapsed = false;\r\n private listTitles: any[];\r\n public location: Location;\r\n private sidebarVisible: boolean;\r\n private mobile_menu_visible: any = 0;\r\n private toggleButton: any;\r\n\r\n favoriteMenuItems = [];\r\n\r\n schemaList: any = [];\r\n\r\n languageLocal: any = \"\";\r\n\r\n selectedFlag: any = \"ENEN\";\r\n\r\n isDesigner: any = false;\r\n isDmsPermission: any = false;\r\n\r\n filter: any = {\r\n schemaId: 0,\r\n keyword: \"\",\r\n\r\n start1: null,\r\n start2: null,\r\n end1: null,\r\n end2: null,\r\n status: 0,\r\n userId: 0,\r\n insideSearch: false\r\n }\r\n\r\n module: any = {\r\n home: 1,\r\n menu: 2\r\n }\r\n\r\n\r\n userList: any = [];\r\n\r\n completionStatusItems = [];\r\n\r\n constructor(location: Location, private authService: AuthService, private element: ElementRef, private router: Router,\r\n public taskService: TaskService, public formService: FormService, public componentService: ComponentService, private eventEmitterService: EventEmitterService,\r\n private route: ActivatedRoute, public changeDetectorRef: ChangeDetectorRef, private webMessageService: WebMessageService,\r\n private _ngZone: NgZone, public appInfo: AppInfoService,\r\n private domSanitizer: DomSanitizer,\r\n private genericService: GenericService) {\r\n this.location = location;\r\n this.sidebarVisible = false;\r\n\r\n this.signalRFunctions();\r\n\r\n this.selectedFlag = this.appInfo.currentUser.deflang.replace(/-/gi, '').toUpperCase();\r\n\r\n\r\n this.initMessages();\r\n\r\n this.onSelectedFlag(this.selectedFlag, \"\");\r\n\r\n this.completionStatusItems = [\r\n { id: 0, name: this.componentService.languageSource.all },\r\n { id: 1, name: this.componentService.languageSource.completions },\r\n { id: 2, name: this.componentService.languageSource.ongoing }\r\n ];\r\n }\r\n invokeSearchSetDataLocal: any;\r\n invokeColorSetDataLocal: any;\r\n ngOnDestroy() {\r\n try {\r\n\r\n this.invokeSearchSetDataLocal.unsubscribe();\r\n this.invokeColorSetDataLocal.unsubscribe();\r\n } catch (ex) {\r\n\r\n }\r\n }\r\n\r\n @ViewChild('myDropdown', { static: true }) myDropdown: NgbDropdown;\r\n languageSourceObject: any;\r\n localeLang: string;\r\n async onSelectedFlag(Code, Key) {\r\n\r\n this.selectedFlag = Code;\r\n this.languageSourceObject = JSON.parse(localStorage.getItem(\"languageSourceStorage\"));\r\n if (Key != \"\") {\r\n await this.genericService.setUserLanguage(this.appInfo.currentUser.id, Key).subscribe((result: any) => {\r\n this.getLanguageFunc(Code);\r\n\r\n let entityLocalStorage = JSON.parse(localStorage.getItem(\"localUserSession\"));\r\n entityLocalStorage.currentUser.deflang = this.componentService.countryFlags.find(x => x.Code == Code).Key;\r\n localStorage.setItem(\"localUserSession\", JSON.stringify(entityLocalStorage));\r\n\r\n this.localeLangGetAndSet(Key);\r\n });\r\n }\r\n else {\r\n this.getLanguageFunc(Code);\r\n this.localeLangGetAndSet(Key);\r\n }\r\n\r\n }\r\n localeLangGetAndSet(Key) {\r\n this.localeLang = this.getLocaleLang();\r\n locale(this.localeLang);\r\n if (Key != \"\")\r\n parent.document.location.reload();\r\n }\r\n getLocaleLang() {\r\n let locale = this.appInfo.currentUser.deflang;\r\n return locale != null && locale != \"\" && locale.indexOf(\"-\") > -1 ? locale.split(\"-\")[0] : \"tr\";\r\n }\r\n getLanguageFunc(Code) {\r\n\r\n if (localStorage.getItem(\"languageSourceStorage\") && this.languageSourceObject && this.selectedFlag == this.languageSourceObject.languageCode) {\r\n\r\n //this.componentService.languageSource = this.languageSourceObject.langSource;\r\n this.componentService.setLanguageSource(this.languageSourceObject.langSource);\r\n this.setCompletionStatusAndUser();\r\n }\r\n else {\r\n this.genericService.getlogininit(Code, \"dictionary\").subscribe((result: any) => {\r\n localStorage.setItem(\"languageSourceStorage\", JSON.stringify(result.languages));\r\n this.languageSourceObject = JSON.parse(localStorage.getItem(\"languageSourceStorage\"));\r\n //this.componentService.languageSource = this.languageSourceObject.langSource;\r\n this.componentService.setLanguageSource(this.languageSourceObject.langSource);\r\n this.setCompletionStatusAndUser();\r\n\r\n });\r\n }\r\n try {\r\n this.myDropdown.close();\r\n } catch { }\r\n\r\n }\r\n\r\n setCompletionStatusAndUser() {\r\n this.completionStatusItems = [\r\n { id: 0, name: this.componentService.languageSource.all },\r\n { id: 1, name: this.componentService.languageSource.completions },\r\n { id: 2, name: this.componentService.languageSource.ongoing }\r\n ];\r\n\r\n\r\n this.userList = this.appInfo.RiverEntity.users;\r\n var userListIndex = this.userList.findIndex(x => x.id == 0);\r\n if (userListIndex > -1)\r\n this.userList.splice(userListIndex, 1);\r\n //var _index = this.userList.indexOf(x => x.id == 0);\r\n //this.userList.splice(_index, 1);\r\n this.userList.unshift({ id: 0, fullName: this.componentService.languageSource.all });\r\n //if (!this.userList.find(x => x.id == 0))\r\n\r\n //else\r\n // this.userList.find(x => x.id == 0).fullName = this.componentService.languageSource.all;//.unshift({ id: 0, fullName: this.componentService.languageSource.all });\r\n\r\n this.eventEmitterService.setLanguageFunc(this.languageSourceObject.langSource);\r\n }\r\n signalRFunctions() {\r\n this.messageSubscribeToEvents();\r\n this.dataRefreshToEvents();\r\n this.reOpenFormEvents();\r\n this.reOpenMenuEvents();\r\n this.openLoadingEvents();\r\n this.getSignalRMessage();\r\n }\r\n\r\n canChat: any = false;\r\n groupDefaultImage: any;\r\n chatUserList: any = [];\r\n chatUserListTemp: any = [];\r\n chatGroupAllUsers = [];\r\n ngOnInit() {\r\n this.chatGroupAllUsers = this.appInfo.RiverEntity.users.filter(x => x.id != this.appInfo.currentUser.id && x.canChat);\r\n\r\n this.canChat = this.appInfo.RiverEntity.users.find(x => x.id == this.appInfo.currentUser.id).canChat;\r\n this.canChat = typeof this.canChat != \"undefined\" ? this.canChat : false;\r\n\r\n this.checkDesigner();\r\n this.listTitles = ROUTES.filter(listTitle => listTitle);\r\n const navbar: HTMLElement = this.element.nativeElement;\r\n this.toggleButton = navbar.getElementsByClassName('navbar-toggler')[0];\r\n this.router.events.subscribe((event) => {\r\n this.sidebarClose();\r\n var $layer: any = document.getElementById('bodyClick');\r\n if ($layer) {\r\n $layer.remove();\r\n this.mobile_menu_visible = 0;\r\n }\r\n });\r\n\r\n this.fillFavorite();\r\n\r\n this.eventEmitterService.invokeFavoriteChangeEvent.subscribe(sub => {\r\n this.favoriteMenuItems = sub.data;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n //\r\n\r\n this.userList = this.appInfo.RiverEntity.users;\r\n var userListIndex = this.userList.findIndex(x => x.id == 0);\r\n if (userListIndex > -1)\r\n this.userList.splice(userListIndex, 1);\r\n this.userList.unshift({ id: 0, fullName: this.componentService.languageSource.all });\r\n //if (!this.userList.find(x => x.id == 0))\r\n // this.userList.unshift({ id: 0, fullName: this.componentService.languageSource.all });\r\n //else {\r\n // this.userList.find(x => x.id == 0).fullName = this.componentService.languageSource.all;//.unshift({ id: 0, fullName: this.componentService.languageSource.all });\r\n // this.changeDetectorRef.detectChanges();\r\n //} // this.userList.forEach(f => { f.isChecked = false });\r\n\r\n this.getSchemaList();\r\n\r\n this.invokeSearchSetDataLocal = this.eventEmitterService.invokeSearchSetDataEvent.subscribe(sub => {\r\n this.filter = sub.data;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n //let _this = this;\r\n //setTimeout(function () {\r\n // \r\n // _this.filter = _this.componentService.taskListFilter;\r\n //}, 8000);\r\n this.invokeColorSetDataLocal = this.eventEmitterService.invokeColorSetDataEvent.subscribe(sub => {\r\n this.chatColors(true);\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n\r\n this.getChatPanelUserList();\r\n\r\n this.chatColors(false);\r\n\r\n\r\n let _thisPage = this;\r\n let promise = this.getBase64Image(\"/assets/img/group2.png\");\r\n promise.then(function (dataURL) {\r\n _thisPage.groupDefaultImage = dataURL\r\n });\r\n\r\n // let defLang = this.appInfo.currentUser.deflang;\r\n\r\n //let gMApi = atob(typeof localStorage.getItem(\"GMAPI\") != \"undefined\" ? localStorage.getItem(\"GMAPI\") : '');\r\n //var script = document.createElement(\"script\");\r\n //script.setAttribute(\"src\", \"https://maps.googleapis.com/maps/api/js?libraries=places&key=\" + gMApi);\r\n //document.getElementsByTagName(\"head\")[0].appendChild(script);\r\n\r\n this.getChatUserStatus();\r\n\r\n if (this.languageLocal == \"\") {\r\n let languageSourceObject = JSON.parse(localStorage.getItem(\"languageSourceStorage\"));\r\n this.languageLocal = languageSourceObject.langSource;\r\n this.componentService.setLanguageSource(this.languageLocal);\r\n }\r\n // console.log(this.languageLocal)\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n chatUserListImage: any = [];\r\n chatUnReadGlobal = 0;\r\n getChatPanelUserList() {\r\n let loginUserId = this.appInfo.currentUser.id;\r\n this.genericService.getChatUserList(loginUserId).subscribe((result: any) => {\r\n this.chatUserList = result;\r\n this.chatUserListTemp = result;\r\n\r\n this.chatUnReadGlobal = 0;\r\n this.chatUserList.forEach(f => {\r\n this.chatUnReadGlobal = this.chatUnReadGlobal + f.unReadCount;\r\n let _image = { id: f.id, photo: f.photo };\r\n this.chatUserListImage.push(_image);\r\n //f.photo = \"\";\r\n });\r\n\r\n this.chatUserListSearch(null);\r\n let _this = this;\r\n setTimeout(function () {\r\n _this.userListColor();\r\n }, 1000);\r\n\r\n });\r\n }\r\n chatUserListSearchModel = \"\";\r\n chatUserListSearch(event) {\r\n this.chatUserListTemp = this.chatUserList.filter(o => o.name.toLowerCase().indexOf(this.chatUserListSearchModel.toLowerCase()) > -1);\r\n }\r\n isChatOpen: any = false;\r\n chatOpenChange() {\r\n this.isChatOpen = this.isChatOpen ? false : true;\r\n }\r\n\r\n isChatMessageOpen: any = true;\r\n chatMessageOpenChange() {\r\n this.isChatMessageOpen = this.isChatMessageOpen ? false : true;\r\n }\r\n chatMessageCloseChange(chatUserSelected) {\r\n if (typeof chatUserSelected == \"undefined\") {\r\n this.appInfo.chatBoxMessageOpen = this.appInfo.chatBoxMessageOpen ? false : true;\r\n if (!this.appInfo.chatBoxMessageOpen)\r\n this.appInfo.chatSelectedUserGlobal = null;\r\n this.chatMessageText = \"\";\r\n this.chatMessageFileRemove();\r\n } else {\r\n this.appInfo.chatSelectedUserGlobal = chatUserSelected;\r\n //if (this.appInfo.chatSelectedUserGlobal && chatUserSelected.id == this.appInfo.chatSelectedUserGlobal.id)\r\n this.messageWithPage(0);\r\n\r\n //this.getSignalRMessage();\r\n\r\n this.appInfo.chatBoxMessageOpen = true;\r\n }\r\n }\r\n\r\n @ViewChild('scrollMe') private myScrollContainer: ElementRef;\r\n @ViewChild('chatMessageInput') private chatMessageInput: ElementRef;\r\n @ViewChild('downloadMessageFile') private downloadMessageFile: ElementRef;\r\n chatMessageboxImage: any = [];\r\n chatMessageAll: any = [];\r\n chatMessageText: any;\r\n sendFileLoading = false;\r\n chatMessageSend() {\r\n if (this.sendFileLoading == false) {\r\n this.sendFileLoading = true;\r\n let chatMessage = {\r\n UserId: this.appInfo.currentUser.id,\r\n ReceiverId: this.appInfo.chatSelectedUserGlobal.id,\r\n Message: this.chatMessageText,\r\n FileId: 0,\r\n UserType: this.appInfo.chatSelectedUserGlobal.type\r\n };\r\n if (this.chatMessageSelectedFile != null) {\r\n this.getDocument(this.chatMessageSelectedFile).then(document => {\r\n let fileData = document;\r\n let fileName = this.chatMessageSelectedFile.name;\r\n let fileExtension = this.chatMessageSelectedFile.name.split(\".\").pop();\r\n let fileType = this.chatMessageSelectedFile.type;\r\n let fileIsImage = this.componentService.isImage(fileExtension);\r\n let fileSize = this.chatMessageSelectedFile.size;\r\n let chatMessageFile = {\r\n fileData: fileData,\r\n fileName: fileName,\r\n fileExtension: fileExtension,\r\n fileType: fileType,\r\n fileIsImage: fileIsImage,\r\n fileSize: fileSize\r\n };\r\n this.genericService.chatMessageFileSend(chatMessageFile).subscribe((result: any) => {\r\n chatMessage.FileId = result;\r\n this.chatMessageSendApi(chatMessage);\r\n });\r\n });\r\n }\r\n else {\r\n this.chatMessageSendApi(chatMessage);\r\n }\r\n }\r\n }\r\n downloadLoading = false;\r\n chatMessageFileDownload(_id) {\r\n if (this.downloadLoading == false) {\r\n this.downloadLoading = true;\r\n this.genericService.chatMessageFileDownload(_id).subscribe((result: any) => {\r\n if (result) {\r\n this.downloadMessageFile.nativeElement.href = \"data:\" + result.type + \";base64,\" + result.fileData; //Image Base64 Goes here\r\n this.downloadMessageFile.nativeElement.download = result.fileName; //File name Here\r\n this.downloadMessageFile.nativeElement.click();\r\n this.downloadLoading = false;\r\n }\r\n });\r\n }\r\n }\r\n chatMessageSendApi(chatMessage) {\r\n this.genericService.chatMessageSend(chatMessage).subscribe((result: any) => {\r\n this.chatMessageText = \"\";\r\n this.getChatPanelUserList();\r\n\r\n if (result != null)\r\n this.appInfo.chatSelectedUserGlobal = result;\r\n if (this.appInfo.chatBoxMessageOpen && this.appInfo.chatSelectedUserGlobal && chatMessage.ReceiverId == this.appInfo.chatSelectedUserGlobal.id)\r\n this.messageWithPage(0);\r\n this.sendFileLoading = false;\r\n this.chatMessageFileRemove();\r\n });\r\n }\r\n getChatFileIcon(_fileExtension) {\r\n //webm mkv flv vob ogv ogg avi mov wmv 3gp mp4\r\n _fileExtension = _fileExtension.toLowerCase();\r\n if (this.componentService.isImage(_fileExtension)) {\r\n return \"assets/img/chat/image.svg\";\r\n }\r\n else if (_fileExtension == \"txt\" || _fileExtension == \"doc\" || _fileExtension == \"docx\" || _fileExtension == \"xls\" || _fileExtension == \"xlsx\") {\r\n return \"assets/img/chat/doc.svg\";\r\n }\r\n else if (_fileExtension == \"m4a\" || _fileExtension == \"flac\" || _fileExtension == \"mp3\" || _fileExtension == \"wav\" || _fileExtension == \"wma\" || _fileExtension == \"aac\") {\r\n return \"assets/img/chat/music.svg\";\r\n }\r\n else if (_fileExtension == \"pdf\") {\r\n return \"assets/img/chat/pdf.svg\";\r\n }\r\n else if (_fileExtension == \"zip\" || _fileExtension == \"rar\") {\r\n return \"assets/img/chat/zip.svg\";\r\n }\r\n else {\r\n return \"assets/img/chat/file.svg\";\r\n }\r\n }\r\n getChatFileFormatSize(bytes, decimalPoint) {\r\n if (bytes == 0) return '0 Bytes';\r\n var k = 1000,\r\n dm = decimalPoint || 2,\r\n sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'],\r\n i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n }\r\n messageWithPage(page): void {\r\n if (this.appInfo.chatSelectedUserGlobal.type != this.appInfo.chatMessageEnum.NotChat) {\r\n this.genericService.getMessageWithPage(this.appInfo.currentUser.id, this.appInfo.chatSelectedUserGlobal.id, page).subscribe((result: any) => {\r\n this.chatMessageAll = result;\r\n this.chatMessageAll.forEach(f => {\r\n this.chatUnReadGlobal = this.chatUnReadGlobal + f.unReadCount;\r\n let _image = { id: f.userId, photo: f.photo };\r\n this.chatMessageboxImage.push(_image);\r\n f.photo = \"\";\r\n });\r\n\r\n this.scrollToBottom();\r\n this.getChatPanelUserList();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n }\r\n else {\r\n this.chatMessageAll = [];\r\n this.scrollToBottom();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n\r\n scrollToBottom(): void {\r\n try {\r\n let _thisPage = this;\r\n setTimeout(function () {\r\n _thisPage.myScrollContainer.nativeElement.scrollTop = _thisPage.myScrollContainer.nativeElement.scrollHeight;\r\n }, 100);\r\n\r\n } catch (err) { }\r\n }\r\n\r\n chatOnlineUsers = [];\r\n getChatUserStatus(): void {\r\n\r\n let _thisPage = this;\r\n try {\r\n setInterval(function () {\r\n _thisPage.chatOnlineUsers.forEach(f => {\r\n let _d = f.date;\r\n let date = /*this.componentService.cloneModel()*/_d.setSeconds(f.date.getSeconds());\r\n let _dNow = new Date();\r\n let dateNow = (_dNow).setSeconds(_dNow.getSeconds() - 7);\r\n if (date < dateNow) {\r\n let _i = _thisPage.chatOnlineUsers.findIndex(x => x.id == f.id);\r\n _thisPage.chatOnlineUsers.splice(_i);\r\n }\r\n });\r\n }, 2000);\r\n } catch (err) { }\r\n\r\n try {\r\n setInterval(function () {\r\n _thisPage.webMessageService.sendChatUserId();\r\n }, 5000);\r\n\r\n } catch (err) { }\r\n\r\n\r\n try {\r\n this.webMessageService.chatUserStatus.subscribe((s) => {\r\n let _i = this.chatOnlineUsers.findIndex(x => x.id == s);\r\n if (_i == -1)\r\n this.chatOnlineUsers.push({ id: s, date: new Date() });\r\n else\r\n this.chatOnlineUsers[_i].date = new Date();\r\n });\r\n\r\n } catch (err) { }\r\n\r\n }\r\n\r\n userStatusClass(_groupId, _type) {\r\n /*_userId*/\r\n let _fAll = this.chatUserListTemp.find(x => x.id == _groupId && x.type == _type);// (\",\" + x.UserIds + \",\").indexOf(\",\" + _userId + \",\")); \r\n let _f = _fAll.userIds;\r\n //let _fArray = _f.split(\",\");\r\n if (_type != 2) {\r\n let fClear1 = \",\" + _f + \",\";\r\n let fClear2 = \",\" + this.appInfo.currentUser.id + \",\";\r\n let _fClear = fClear1.replace(fClear2, \",\");\r\n return this.chatOnlineUsers.findIndex(x => _fClear.indexOf(\",\" + x.id + \",\") != -1) == -1 ? \" offline \" : \" online \";\r\n }\r\n else {\r\n return this.chatOnlineUsers.findIndex(x => x.id == _groupId) == -1 ? \" offline \" : \" online \";\r\n }\r\n }\r\n\r\n @ViewChild('fileSelectInputDialog') fileSelectInputDialog: ElementRef;\r\n public OpenAddFilesDialog() {\r\n const e: HTMLElement = this.fileSelectInputDialog.nativeElement;\r\n e.click();\r\n }\r\n\r\n chatMessageFileUploadSuccess = false;\r\n chatMessageSelectedFile = null;\r\n chatMessageSelectedFileObj = { icon: \"\", name: \"\", size: \"\" };\r\n chatMessageImportFile(e) {\r\n this.chatMessageSelectedFileObj = { icon: \"\", name: \"\", size: \"\" };\r\n var file = e.target.files[0];\r\n this.chatMessageSelectedFile = file;\r\n\r\n this.chatMessageFileUploadSuccess = true;\r\n\r\n this.chatMessageSelectedFileObj.name = file.name;\r\n let fileExtensionArray = file.name.split(\".\");\r\n this.chatMessageSelectedFileObj.icon = this.getChatFileIcon(fileExtensionArray[fileExtensionArray.length - 1]);\r\n this.chatMessageSelectedFileObj.size = this.getChatFileFormatSize(file.size, 1);\r\n\r\n //var fileSize = file.size;\r\n }\r\n chatMessageFileRemove() {\r\n if (this.sendFileLoading == false) {\r\n this.chatMessageSelectedFile = null;\r\n this.chatMessageFileUploadSuccess = false;\r\n this.fileSelectInputDialog.nativeElement.value = '';\r\n this.chatMessageSelectedFileObj = { icon: \"\", name: \"\", size: \"\" };\r\n }\r\n }\r\n allEmoji = [\"😀\", \"😁\", \"😂\", \"😄\", \"😅\", \"😆\", \"😇\", \"😈\", \"😉\", \"😊\", \"😋\", \"😌\", \"😍\", \"😎\", \"😏\",\r\n \"😐\", \"😑\", \"😒\", \"😓\", \"😕\", \"😘\", \"😠\", \"😢\", \"😤\", \"😫\"];\r\n emojiChatPopoverOpen = false;\r\n toggleWithEmojiChat() {\r\n this.emojiChatPopoverOpen = !this.emojiChatPopoverOpen;\r\n }\r\n chatMessageBlur() {\r\n\r\n }\r\n\r\n chatMessageInputStartPos = null;\r\n chatMessageInputEndPos = null;\r\n chatMessageFocus() {\r\n let _thisPage = this;\r\n setTimeout(function () {\r\n let myField = _thisPage.chatMessageInput.nativeElement;\r\n _thisPage.chatMessageInputStartPos = myField.selectionStart;\r\n _thisPage.chatMessageInputEndPos = myField.selectionEnd;\r\n }, 500);\r\n\r\n }\r\n chatMessageSetEmoji(_emoji) {\r\n let myField = this.chatMessageInput.nativeElement;\r\n if (!(this.chatMessageInputStartPos)) {\r\n this.chatMessageInputStartPos = myField.selectionStart;\r\n this.chatMessageInputEndPos = myField.selectionEnd;\r\n }\r\n let myValueClear = this.insertAtCursor(_emoji);\r\n this.chatMessageText = myValueClear;\r\n }\r\n hideEmojiPopoper(e) {\r\n //this.chatMessageInputStartPos = null;\r\n //this.chatMessageInputEndPos = null;\r\n let myField = this.chatMessageInput.nativeElement;\r\n if (!(this.chatMessageInputStartPos)) {\r\n myField.selectionStart = this.chatMessageInputStartPos;\r\n myField.selectionEnd = this.chatMessageInputEndPos;\r\n }\r\n myField.focus();\r\n }\r\n insertAtCursor(myValue) {\r\n ////IE support\r\n //if (document.selection) {\r\n // myField.focus();\r\n // sel = document.selection.createRange();\r\n // sel.text = myValue;\r\n //}\r\n ////MOZILLA and others\r\n //else\r\n //: HTMLElement \r\n var txtValueEl = document.createElement('textarea');\r\n txtValueEl.innerHTML = myValue;\r\n\r\n let myField = this.chatMessageInput.nativeElement;\r\n if (this.chatMessageInputStartPos || this.chatMessageInputStartPos == '0') {\r\n myField.value = myField.value.substring(0, this.chatMessageInputStartPos)\r\n + txtValueEl.value\r\n + myField.value.substring(this.chatMessageInputEndPos, myField.value.length);\r\n } else {\r\n myField.value += txtValueEl.value;\r\n }\r\n return myField.value;\r\n }\r\n //notificationNew: any = false;\r\n private getSignalRMessage(): void {\r\n // if (this.appInfo.chatSelectedUserGlobal) {\r\n let loginUserId = this.appInfo.currentUser.id;\r\n //let receiver = this.appInfo.chatSelectedUserGlobal.id;\r\n this.webMessageService.chatMessageGetAll.subscribe((message: ChatMessageModel) => {\r\n this._ngZone.run(() => {\r\n //&& this.module.home\r\n if (message.groupUserIds.split(\",\").indexOf(loginUserId.toString()) > -1) {\r\n\r\n\r\n if (message.userId != loginUserId) {\r\n this.playAudio();\r\n // this.notificationNew = true;\r\n }\r\n //let _thisPage = this;\r\n //setTimeout(function () {\r\n // _thisPage.notificationNew = false;\r\n //}, 500);\r\n\r\n if (this.appInfo.chatBoxMessageOpen && this.appInfo.chatSelectedUserGlobal && message.receiverId == this.appInfo.chatSelectedUserGlobal.id)\r\n this.messageWithPage(0);\r\n\r\n this.getChatPanelUserList();\r\n }\r\n });\r\n });\r\n // }\r\n }\r\n\r\n playAudio() {\r\n let audio = new Audio();\r\n audio.src = \"/assets/others/chat_notification.mp3\";\r\n audio.loop = false;\r\n audio.load();\r\n audio.play();\r\n }\r\n searchPanelPopoverOpen = false;\r\n toggleSearchPanel() {\r\n this.searchPanelPopoverOpen = !this.searchPanelPopoverOpen;\r\n }\r\n userListSelectSearch(_e) { this.searchSelectboxAriaOwns(_e); }\r\n schemaListSelectSearch(_e) { this.searchSelectboxAriaOwns(_e); }\r\n start2DateSearch(_e) { this.searchSelectboxAriaOwns(_e); }\r\n start1DateSearch(_e) { this.searchSelectboxAriaOwns(_e); }\r\n end1DateSearch(_e) { this.searchSelectboxAriaOwns(_e); }\r\n end2DateSearch(_e) { this.searchSelectboxAriaOwns(_e); }\r\n completionStatusItemsSelectSearch(_e) { this.searchSelectboxAriaOwns(_e); }\r\n searchSelectboxAriaOwns(_e) {\r\n let _ariaOwns = _e.currentTarget.attributes.getNamedItem(\"aria-owns\");//.find(x => x.name == \"aria-owns\");\r\n if (_ariaOwns) {\r\n let _ariaOwnsHtml = document.getElementById(_ariaOwns.nodeValue);\r\n if (_ariaOwnsHtml) {\r\n let _parentHtml = _ariaOwnsHtml.parentNode;\r\n if (_parentHtml) {\r\n let _parent2Html = _parentHtml.parentNode;\r\n if (_parent2Html) {\r\n (_parent2Html).style.zIndex = \"100000000000\";\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n groupChatPopoverOpen = false;\r\n toggleWithGroupChat() {\r\n this.groupAddName = \"\";\r\n this.groupAddUsers = [];\r\n this.groupAddImage = \"\";\r\n this.groupChatPopoverOpen = !this.groupChatPopoverOpen;\r\n }\r\n groupAddName: any = \"\";\r\n groupAddUsers: any = [];\r\n uploadedFilesGroupAdd: any = [];\r\n imgUpVisibleGroupAdd = false;\r\n onBlurGroupAdd() {\r\n this.imgUpVisibleGroupAdd = false;\r\n }\r\n onFocusGroupAdd() {\r\n this.imgUpVisibleGroupAdd = true;\r\n }\r\n\r\n\r\n groupAdd() {\r\n\r\n let chatGroupAdd = {\r\n CreatedUserId: this.appInfo.currentUser.id,\r\n Name: this.groupAddName,\r\n Users: this.groupAddUsers.toString(),\r\n File: this.groupAddImage || this.groupAddImage == \"\" ? this.groupDefaultImage : this.groupAddImage\r\n };\r\n this.genericService.chatGroupAddService(chatGroupAdd).subscribe((result: any) => {\r\n if (result) {\r\n this.getChatPanelUserList();\r\n }\r\n });\r\n }\r\n\r\n\r\n getBase64Image(url) {\r\n var promise = new Promise(function (resolve, reject) {\r\n\r\n var img = new Image();\r\n // To prevent: \"Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.\"\r\n img.crossOrigin = \"Anonymous\";\r\n img.onload = function () {\r\n var canvas = document.createElement(\"canvas\");\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n var ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0);\r\n var dataURL = canvas.toDataURL(\"image/png\");\r\n resolve(dataURL.replace(/^data:image\\/(png|jpg|jpeg|pdf);base64,/, \"\"));\r\n };\r\n img.src = url;\r\n });\r\n\r\n return promise;\r\n }\r\n\r\n bodyColor: any = \"#e56744\";\r\n searchColor: any = \"#f18567\";\r\n searchTextColor: any = \"#3f1c13\";\r\n headerColor: any = \"#DB2F00\";\r\n otherBackground: any = \"#ffb5a0\";\r\n\r\n chatColors(isListLoaded) {\r\n // this.appInfo.currentUser.color\r\n // var _localUserSession = JSON.parse(localStorage.getItem(\"localUserSession\"));\r\n // _localUserSession.currentUser.color\r\n\r\n let color = this.appInfo.currentUser.color;\r\n this.bodyColor =\r\n color == \"yellow\" ? \"#c0aa71\" : (color == \"blue\" ? \"#429bc4\" : (color == \"orange\" ? \"#e56744\" :\r\n (color == \"red\" ? \"#a14850\" : (color == \"green\" ? \"#35ae65\" : (color == \"black\" ? \"#565656\" : \"#e56744\")))));\r\n\r\n this.searchColor =\r\n color == \"yellow\" ? \"#d5c396\" : (color == \"blue\" ? \"#a3ccdf\" : (color == \"orange\" ? \"#f18567\" :\r\n (color == \"red\" ? \"#d78f8f\" : (color == \"green\" ? \"#8fdfaf\" : (color == \"black\" ? \"#a3a3a3\" : \"#f18567\")))));\r\n\r\n this.searchTextColor =\r\n color == \"yellow\" ? \"#493d20\" : (color == \"blue\" ? \"#2b7395\" : (color == \"orange\" ? \"#3f1c13\" :\r\n (color == \"red\" ? \"#301515\" : (color == \"green\" ? \"#315540\" : (color == \"black\" ? \"#070606\" : \"#3f1c13\")))));\r\n\r\n this.headerColor =\r\n color == \"yellow\" ? \"#A7925B\" : (color == \"blue\" ? \"#0D87C0\" : (color == \"orange\" ? \"#DB2F00\" :\r\n (color == \"red\" ? \"#87222C\" : (color == \"green\" ? \"#097735\" : (color == \"black\" ? \"#292929\" : \"#DB2F00\")))));\r\n\r\n this.otherBackground =\r\n color == \"yellow\" ? \"#feefc9\" : (color == \"blue\" ? \"#c3ecff\" : (color == \"orange\" ? \"#ffb5a0\" :\r\n (color == \"red\" ? \"#ffc6c6\" : (color == \"green\" ? \"#c5ffdc\" : (color == \"black\" ? \"#d2d6de\" : \"#ffb5a0\")))));\r\n\r\n\r\n\r\n this.scssSetVariable('.chat-all-panels', \" --chat-search-color: \" + this.searchColor + \"; --chat-search-text-color: \" + this.searchTextColor +\r\n \"; --chat-panel-color: \" + this.headerColor + \"; --chat-body-color: \" + this.bodyColor + \"; --chat-other-color: \" + this.otherBackground + \";\");\r\n //this.scssSetVariable('.chat-panel', \" --chat-panel-color: \" + this.headerColor);\r\n //this.scssSetVariable('.friends-search-bar', \" --chat-search-color: \" + this.searchColor + \"; --chat-search-text-color: \" + this.searchTextColor);\r\n //this.scssSetVariable('.chat-body', \" --chat-body-color: \" + this.bodyColor);\r\n //this.scssSetVariable('.chat-users', \" --chat-search-color: \" + this.searchColor + \"; --chat-search-text-color: \" + this.searchTextColor + \"; --chat-panel-color: \" + this.headerColor);\r\n\r\n /*\r\n this.scssSetVariable('.box-header', \" --chat-panel-color: \" + this.headerColor);\r\n this.scssSetVariable('.chat-send-button', \" --chat-panel-color: \" + this.headerColor);\r\n */\r\n\r\n //this.scssSetVariable('.direct-chat-primary', \" --chat-search-color: \" + this.searchColor + \"; --chat-search-text-color: \" + this.searchTextColor +\r\n // \"; --chat-panel-color: \" + this.headerColor);\r\n\r\n\r\n\r\n\r\n\r\n\r\n //var chatPanel = document.querySelector('.chat-panel');\r\n //if (chatPanel != undefined) {\r\n // chatPanel.setAttribute('data-color', this.headerColor);\r\n // chatPanel.setAttribute('style', \" --chat-panel-color: \" + this.headerColor);\r\n //}\r\n\r\n //var searchBar = document.querySelector('.friends-search-bar');\r\n //if (searchBar != undefined) {\r\n // searchBar.setAttribute('data-color', this.searchColor);\r\n // searchBar.setAttribute('style', \" --chat-search-color: \" + this.searchColor + \"; --chat-search-text-color: \" + this.searchTextColor);\r\n //}\r\n\r\n //var chatBody = document.querySelector('.chat-body');\r\n //if (chatBody != undefined) {\r\n // chatBody.setAttribute('data-color', this.bodyColor);\r\n // chatBody.setAttribute('style', \" --chat-body-color: \" + this.bodyColor);\r\n //}\r\n\r\n if (isListLoaded) {\r\n this.userListColor()\r\n }\r\n\r\n }\r\n scssSetVariable(selector, style) {\r\n var _element = document.querySelector(selector);\r\n if (_element != undefined) {\r\n _element.setAttribute('style', style);\r\n }\r\n }\r\n userListColor() {\r\n var listItems = document.querySelectorAll('.friends-list-item');\r\n if (listItems != undefined) {\r\n listItems.forEach(e => {\r\n let listItem = e;\r\n listItem.setAttribute('data-color', this.searchColor);\r\n listItem.setAttribute('style', \" --chat-search-color: \" + this.searchColor + \"; --chat-search-text-color: \" + this.searchTextColor);\r\n })\r\n }\r\n }\r\n photoAll = [];\r\n makeTrustedImage(type, photoOrId, _default = 'team2.jpg') {\r\n\r\n if (type == \"message-box-header\" || type == \"group-add\") {\r\n let item = (photoOrId && photoOrId != null &&\r\n photoOrId != \"\" &&\r\n photoOrId != \"ZABhAHQAYQA6AGkAbQBhAGcAZQAvAHAAbgBnADsAYgBhAHMAZQA2ADQALABpAFYAQgA=\" ?\r\n 'data:image/png;base64,' + photoOrId :\r\n \"/assets/img/\" + _default);\r\n let imageString = JSON.stringify(item).replace(/\\\\n/g, '');\r\n let _style = 'url(' + imageString + ')';\r\n return this.domSanitizer.bypassSecurityTrustStyle(_style);\r\n }\r\n\r\n let _photo;\r\n if (type == \"user-list\") {\r\n\r\n _photo = this.chatUserListImage.find(x => x.id == photoOrId).photo;\r\n }\r\n else if (type == \"message-box\") {\r\n _photo = this.chatMessageboxImage.find(x => x.id == photoOrId).photo;\r\n }\r\n\r\n _photo = (_photo && _photo != null &&\r\n _photo != \"\" &&\r\n _photo != \"ZABhAHQAYQA6AGkAbQBhAGcAZQAvAHAAbgBnADsAYgBhAHMAZQA2ADQALABpAFYAQgA=\" ?\r\n 'data:image/png;base64,' + _photo :\r\n \"/assets/img/\" + _default);\r\n\r\n let photoCssVar = \"--photo_\" + type + \"_\" + photoOrId;\r\n let photoTemp = this.photoAll.find(x => x.name == photoCssVar);\r\n if (!photoTemp) {\r\n this.photoAll.push({ name: photoCssVar, b64: _photo });\r\n let imageString = JSON.stringify(_photo).replace(/\\\\n/g, '');\r\n let photo = photoCssVar + \":\" + 'url(' + imageString + ');';\r\n\r\n var _element = document.querySelector(\".chat-all-panels\");\r\n if (_element != undefined) {\r\n let f = _element.getAttribute('style');\r\n _element.setAttribute('style', f + photo);\r\n }\r\n }\r\n return \"var(\" + photoCssVar + \")\";\r\n //else {\r\n // let imageString = JSON.stringify(_photo).replace(/\\\\n/g, '');\r\n // photo = photoCssVar + \":\" + 'url(' + imageString + ');';\r\n //}\r\n\r\n //let item = (photo && photo != null &&\r\n // photo != \"\" &&\r\n // photo != \"ZABhAHQAYQA6AGkAbQBhAGcAZQAvAHAAbgBnADsAYgBhAHMAZQA2ADQALABpAFYAQgA=\" ?\r\n // 'data:image/png;base64,' + photo :\r\n // \"/assets/img/\" + _default);\r\n //const _style = photo;\r\n //this.domSanitizer.bypassSecurityTrustStyle(_style);\r\n }\r\n\r\n getImageStyle(type, photoId, other) {\r\n\r\n let myStyles = {\r\n 'background-size': \"cover\",\r\n 'background-color': '#fff',\r\n 'background-repeat': 'no-repeat',\r\n 'position': \"relative\",\r\n 'width': \"30px\",\r\n 'height': \"30px\",\r\n \"margin-right\": \"5px\",\r\n \"background-image\": photoId ? this.makeTrustedImage(type, photoId) : (type == 'group-add' ? 'group2.png' : 'team2.jpg')\r\n };\r\n\r\n if (other) {\r\n let otherArr = other.split(\";\");\r\n otherArr.forEach(e => {\r\n let otherParse = e.split(\":\");\r\n myStyles[otherParse[0]] = otherParse[1];//.push({ name: otherParse[0], value: otherParse[1] });\r\n });\r\n }\r\n\r\n return myStyles;\r\n }\r\n\r\n groupAddImage: any;\r\n onValChngFileGroupAdd = (e: any): void => {\r\n let errors = [];\r\n if (e.value.length) {\r\n let checkSum = e.value[0].size;\r\n if (checkSum > (2 * 1000000)) {\r\n let msg = e.value[0].name + \" yüklenemedi.\"\r\n errors.push(msg);\r\n return;\r\n }\r\n\r\n this.getDocument(e.value[0]).then(document => {\r\n this.groupAddImage = document;\r\n });\r\n }\r\n }\r\n getDocument(file) {\r\n return new Promise(resolve => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n let base64BlobData: any = args.target.result.split(',').pop();\r\n resolve(base64BlobData);\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n private messageNotification(message): void {\r\n\r\n if (message.message_title == null || message.message_title == \"\") {\r\n notify({\r\n message: message.message\r\n }, message.message_type, 3000);\r\n }\r\n else {\r\n notify({\r\n contentTemplate: function () {\r\n return $(\"

\").html((\"\" + message.message_title + \"

\" + message.message + \"
\"))\r\n .attr(\"style\", \"margin-top: -44px;margin-left: 49px;margin-bottom: 0px;\");\r\n }\r\n }, message.message_type, 3000);\r\n }\r\n }\r\n private webMessagePopupClick(): void {\r\n this.isShowWebMessagePopup = false;\r\n }\r\n message_screen = new WebmsgModel();\r\n isShowWebMessagePopup: boolean = false;\r\n private messageSubscribeToEvents(): void {\r\n let loginUserId = this.appInfo.currentUser.id;\r\n this.webMessageService.messageReceived.subscribe((message: WebmsgModel) => {\r\n this._ngZone.run(() => {\r\n if (message.user_id.split(\",\").indexOf(loginUserId.toString()) > -1/*message.clientuniqueid !== this.uniqueID && message.senduniqueid == this.uniqueID*/) {\r\n // 0: pop-up 1:bildirim 2: ikisi birden \r\n if (message.msg_show_type == 0) {\r\n this.isShowWebMessagePopup = true;\r\n\r\n //let result = alert(message.message, \"Favori Eklenecek!\");\r\n //result.then((dialogResult) => {\r\n\r\n //});\r\n //// alert(\"POPUP - \" +message.message);\r\n\r\n }\r\n else if (message.msg_show_type == 1) {\r\n this.messageNotification(message);\r\n // alert(\"BİLDİRİM - \" + message.message);\r\n }\r\n else {\r\n this.isShowWebMessagePopup = true;\r\n // message.message_type = \"received\";\r\n // alert(\"İKİSİBİRDEN - \" + message.message);\r\n this.messageNotification(message);\r\n }\r\n\r\n this.message_screen = message;\r\n\r\n this.webMessageService.saveMessageInfo(message).subscribe((r: any) => {\r\n\r\n });\r\n\r\n }\r\n });\r\n });\r\n }\r\n\r\n private dataRefreshToEvents(): void {\r\n let loginUserId = this.appInfo.currentUser.id;\r\n this.webMessageService.changeModule.subscribe((message: DataRefreshModel) => {\r\n this._ngZone.run(() => {\r\n //&& this.module.home\r\n if (message.user_Id == loginUserId) {\r\n let data_scheme = {\r\n module: message.module\r\n };\r\n this.eventEmitterService.refreshGrid(data_scheme);\r\n\r\n //if (this.router.url.toLowerCase() == \"/home\") {\r\n\r\n //}\r\n //else {\r\n\r\n //}\r\n\r\n\r\n }\r\n });\r\n });\r\n }\r\n\r\n private reOpenFormEvents(): void {\r\n\r\n let loginUserId = this.appInfo.currentUser.id;\r\n this.webMessageService.reOpenForm.subscribe((message: ReOpenFormModel) => {\r\n this._ngZone.run(() => {\r\n if (message.userId == loginUserId) {\r\n\r\n if (this.router.url.toLowerCase() == \"/home\") {\r\n let data_scheme = {\r\n instanceId: message.instanceId,\r\n processFormId: message.processFormId,\r\n schemeId: message.schemeId\r\n };\r\n this.eventEmitterService.openForm(data_scheme);\r\n }\r\n else {\r\n this.router.navigate(['home'], { state: { id: message.schemeId, instanceId: message.instanceId, processFormsId: message.processFormId } });\r\n }\r\n\r\n }\r\n });\r\n });\r\n }\r\n private reOpenMenuEvents(): void {\r\n\r\n let loginUserId = this.appInfo.currentUser.id;\r\n this.webMessageService.reOpenMenu.subscribe((message: ReOpenMenuModel) => {\r\n this._ngZone.run(() => {\r\n if (message.userId == loginUserId) {\r\n\r\n let data_menu = {\r\n menuFormGuid: message.menuFormGuid,\r\n name: message.name,\r\n schemeId: message.schemeId,\r\n formId: 0\r\n };\r\n this.formService.getMenuFormId(message.menuFormGuid).subscribe((result: any) => {\r\n if (result) {\r\n data_menu.formId = result;\r\n this.eventEmitterService.openMenu(data_menu);\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n private openLoadingEvents(): void {\r\n\r\n let loginUserId = this.appInfo.currentUser.id;\r\n this.webMessageService.openLoading.subscribe((message: OpenLoadingModel) => {\r\n this._ngZone.run(() => {\r\n if (message.userId == loginUserId) {\r\n\r\n if (this.router.url.toLowerCase() == \"/home\") {\r\n let data_ = {\r\n isShow: message.isShow,\r\n text: message.text\r\n };\r\n this.eventEmitterService.setHomePopupVisibleFunc(data_);\r\n }\r\n\r\n }\r\n });\r\n });\r\n }\r\n\r\n\r\n search() {\r\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n return false;\r\n }\r\n //this.minimizeSidebar(); \r\n // d\r\n\r\n\r\n let start1 = \"\", start2 = \"\", end1 = \"\", end2 = \"\", insideSearch = \"\";\r\n start1 = this.filter.start1 != null && this.filter.start1 != \"null\" ? this.filter.start1.getDate() + \"-\" + (this.filter.start1.getMonth() + 1) + \"-\" + this.filter.start1.getFullYear() : null;\r\n start2 = this.filter.start2 != null && this.filter.start2 != \"null\" ? this.filter.start2.getDate() + \"-\" + (this.filter.start2.getMonth() + 1) + \"-\" + this.filter.start2.getFullYear() : null;\r\n end1 = this.filter.end1 != null && this.filter.end1 != \"null\" ? this.filter.end1.getDate() + \"-\" + (this.filter.end1.getMonth() + 1) + \"-\" + this.filter.end1.getFullYear() : null;\r\n end2 = this.filter.end2 != null && this.filter.end2 != \"null\" ? this.filter.end2.getDate() + \"-\" + (this.filter.end2.getMonth() + 1) + \"-\" + this.filter.end2.getFullYear() : null;\r\n\r\n insideSearch = this.filter.insideSearch != null && this.filter.insideSearch != \"null\" && typeof this.filter.insideSearch != 'undefined' ? this.filter.insideSearch : false;\r\n\r\n this.filter.keyword = this.filter.keyword == \"\" ? null : this.filter.keyword;\r\n\r\n let _filterKeyDateControl = this.filter.keyword;\r\n try {\r\n let _dSlash = _filterKeyDateControl.split('/').length == 3;\r\n let _dDot = _filterKeyDateControl.split('.').length == 3;\r\n if (_dSlash || _dDot) {\r\n let _dHours = \"\";\r\n if (_filterKeyDateControl.split(':').length == 2 && _filterKeyDateControl.indexOf(' ') > -1) {\r\n _dHours = _filterKeyDateControl.split(' ')[1];\r\n }\r\n let splitSep = _dSlash ? \"/\" : \".\";\r\n let splitDate = _filterKeyDateControl.replace(_dHours, \"\").split(splitSep);\r\n\r\n let _dDateSplit = splitDate[2].trim() + \"-\" + splitDate[1] + \"-\" + splitDate[0] +\r\n (_dHours == \"\" ? \"\" : \" \" + _dHours)\r\n\r\n if (_dHours != \"\")\r\n _filterKeyDateControl = new Date(_dDateSplit).toISOString().replace(\":00.000Z\", \"\");\r\n else\r\n _filterKeyDateControl = new Date(_dDateSplit).toISOString().replace(\":00.000Z\", \"\").replace(\"T00:00\",\"\");\r\n\r\n }\r\n }\r\n catch {\r\n }\r\n\r\n let _routerUrl = '/search/' +\r\n this.filter.schemaId + \"/\" +\r\n _filterKeyDateControl + \"@@\" + this.filter.keyword.replace(/\\//gi, '__') + \"/\" +\r\n this.filter.status + \"/\" +\r\n this.filter.userId + \"/\" +\r\n\r\n start1 + \"/\" +\r\n start2 + \"/\" +\r\n end1 + \"/\" +\r\n end2 + \"/\" +\r\n insideSearch;\r\n debugger;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([\r\n _routerUrl\r\n ], { state: { formName: name } });\r\n //let _filter = JSON.stringify(this.filter);\r\n //this.taskService.getTaskList(_filter).subscribe(result => {\r\n\r\n // \r\n\r\n //});\r\n }\r\n\r\n async getSchemaList() {\r\n await this.taskService.getSchemeList().subscribe(result => {\r\n //let resultSchema = this.componentService.allSchemaList;\r\n let resultSchema = [];\r\n resultSchema = result;\r\n // this.componentService.allSchemaList = resultSchema;\r\n\r\n this.eventEmitterService.getAllSchemaList(resultSchema);\r\n\r\n //isScheme: true\r\n resultSchema.forEach(item => {\r\n\r\n if (!item.isScheme) {\r\n this.filterSchemaList(item.items);\r\n }\r\n else {\r\n this.schemaList.push(item);\r\n }\r\n });\r\n // this.schemaList = resultSchema.map(x => x.items);\r\n });\r\n }\r\n filterSchemaList(items) {\r\n items.forEach(item => {\r\n if (!item.isScheme) {\r\n this.filterSchemaList(item.items);\r\n }\r\n else {\r\n this.schemaList.push(item);\r\n }\r\n });\r\n }\r\n onClickFavorite(id, name) {\r\n let data_favorite_scheme = {\r\n id: id,\r\n name: name\r\n };\r\n this.eventEmitterService.createTaskAndStartForm(data_favorite_scheme);\r\n // this.createTask();\r\n }\r\n\r\n fillFavorite() {\r\n this.taskService.GetFavoriteList().subscribe((r: any) => {\r\n this.favoriteMenuItems = r;\r\n }, error => {\r\n // this.componentService.showAlert(\"Üzgünüz, beklenmedik bir hata oluştu,\", \"error\", 2000);\r\n });\r\n }\r\n checkDesigner() {\r\n\r\n if (this.appInfo.currentUser.tabs.search(\"4\") == -1) {\r\n this.isDesigner = false;\r\n } else {\r\n this.isDesigner = true;\r\n }\r\n\r\n if (this.appInfo.currentUser.tabs.search(\"5\") != -1) {\r\n this.isDmsPermission = true;\r\n } else {\r\n this.isDmsPermission = false;\r\n }\r\n\r\n }\r\n getTitle() {\r\n\r\n var titlee = this.location.prepareExternalUrl(this.location.path());\r\n if (titlee.charAt(0) === '#') {\r\n titlee = titlee.slice(1);\r\n }\r\n for (let i = 0; i < this.listTitles.length; i++) {\r\n if (this.listTitles[i].type === \"link\" && this.listTitles[i].path === titlee) {\r\n return this.listTitles[i].title;\r\n } else if (this.listTitles[i].type === \"sub\") {\r\n for (let j = 0; j < this.listTitles[i].children.length; j++) {\r\n let subtitle = this.listTitles[i].path + '/' + this.listTitles[i].children[j].path;\r\n\r\n if (subtitle === titlee) {\r\n return this.listTitles[i].children[j].title;\r\n }\r\n }\r\n }\r\n }\r\n return '';\r\n }\r\n collapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n const navbar = document.getElementsByTagName('nav')[0];\r\n if (this.isCollapsed) {\r\n navbar.classList.remove('navbar-transparent');\r\n navbar.classList.add('bg-white');\r\n } else {\r\n navbar.classList.add('navbar-transparent');\r\n navbar.classList.remove('bg-white');\r\n }\r\n\r\n }\r\n sidebarOpen() {\r\n const toggleButton = this.toggleButton;\r\n const mainPanel = document.getElementsByClassName('main-panel')[0];\r\n const html = document.getElementsByTagName('html')[0];\r\n\r\n setTimeout(function () {\r\n toggleButton.classList.add('toggled');\r\n }, 500);\r\n\r\n html.classList.add('nav-open');\r\n\r\n this.sidebarVisible = true;\r\n };\r\n sidebarClose() {\r\n const html = document.getElementsByTagName('html')[0];\r\n this.toggleButton.classList.remove('toggled');\r\n const mainPanel = document.getElementsByClassName('main-panel')[0];\r\n\r\n this.sidebarVisible = false;\r\n html.classList.remove('nav-open');\r\n };\r\n sidebarToggle() {\r\n // const toggleButton = this.toggleButton;\r\n // const html = document.getElementsByTagName('html')[0];\r\n var $toggle = document.getElementsByClassName('navbar-toggler')[0];\r\n\r\n if (this.sidebarVisible === false) {\r\n this.sidebarOpen();\r\n } else {\r\n this.sidebarClose();\r\n }\r\n const html = document.getElementsByTagName('html')[0];\r\n\r\n if (this.mobile_menu_visible == 1) {\r\n // $('html').removeClass('nav-open');\r\n html.classList.remove('nav-open');\r\n if ($layer) {\r\n $layer.remove();\r\n }\r\n setTimeout(function () {\r\n $toggle.classList.remove('toggled');\r\n }, 400);\r\n\r\n this.mobile_menu_visible = 0;\r\n } else {\r\n setTimeout(function () {\r\n $toggle.classList.add('toggled');\r\n }, 430);\r\n\r\n var $layer = document.createElement('div');\r\n $layer.setAttribute('id', 'bodyClick');\r\n\r\n\r\n if (html.getElementsByTagName('body')) {\r\n document.getElementsByTagName('body')[0].appendChild($layer);\r\n }\r\n\r\n $layer.onclick = function () { //asign a function\r\n html.classList.remove('nav-open');\r\n this.mobile_menu_visible = 0;\r\n setTimeout(function () {\r\n $layer.remove();\r\n $toggle.classList.remove('toggled');\r\n }, 400);\r\n const mainPanel = document.getElementsByClassName('main-panel')[0];\r\n\r\n if (window.innerWidth < 991) {\r\n setTimeout(function () {\r\n mainPanel.style.position = '';\r\n }, 500);\r\n }\r\n }.bind(this);\r\n\r\n html.classList.add('nav-open');\r\n this.mobile_menu_visible = 1;\r\n\r\n }\r\n };\r\n\r\n\r\n\r\n initMessages() {\r\n //loadMessages(deMessages);\r\n //loadMessages(ruMessages);\r\n loadMessages({\r\n 'en': {\r\n \"dxList-selectAll\": \"Select All\",\r\n \"dxDataGrid-ariaSelectAll\": \"Select All\",\r\n Yes: \"Yes\",\r\n No: \"No\",\r\n Cancel: \"Cancel\",\r\n Clear: \"Clear\",\r\n Done: \"Done\",\r\n Loading: \"Loading...\",\r\n Select: \"Select...\",\r\n Search: \"Search\",\r\n Back: \"Back\",\r\n OK: \"OK\",\r\n \"dxPager-infoText\": \"Page {0} of {1} ({2} items)\",\r\n \"dxDataGrid-headerFilterOK\": \"OK\",\r\n \"dxDataGrid-headerFilterCancel\": \"Cancel\",\r\n\r\n \"dxDataGrid-editingEditRow\": \"Edit\",\r\n \"dxDataGrid-editingSaveRowChanges\": \"Save\",\r\n \"dxDataGrid-editingCancelRowChanges\": \"Cancel\",\r\n \"dxDataGrid-editingDeleteRow\": \"Delete\",\r\n \"dxDataGrid-editingUndeleteRow\": \"Undelete\",\r\n \"dxDataGrid-editingConfirmDeleteMessage\": \"Are you sure you want to delete this record?\",\r\n \"dxDataGrid-validationCancelChanges\": \"Cancel changes\",\r\n \"dxDiagram-dialogButtonOK\": \"OK\",\r\n \"dxDiagram-dialogButtonCancel\": \"Cancel\",\r\n \"dxDataGrid-exportTo\": \"Export\",\r\n \"dxDataGrid-exportToExcel\": \"Export to Excel file\",\r\n \"dxDataGrid-exporting\": \"Exporting...\",\r\n \"dxDataGrid-excelFormat\": \"Excel file\",\r\n \"dxDataGrid-selectedRows\": \"Selected rows\",\r\n \"dxDataGrid-exportSelectedRows\": \"Export selected rows\",\r\n //\"dxDataGrid-exportAll\": \"Export all data\",\r\n \"dxDataGrid-searchPanelPlaceholder\": \"Search...\",\r\n \"dxDataGrid-noDataText\": \"No data\",\r\n\r\n\r\n \"dxScheduler-editorLabelTitle\": \"Subject\",\r\n \"dxScheduler-editorLabelStartDate\": \"Start Date\",\r\n \"dxScheduler-editorLabelEndDate\": \"End Date\",\r\n \"dxScheduler-editorLabelDescription\": \"Description\",\r\n \"dxScheduler-editorLabelRecurrence\": \"Repeat\",\r\n \"dxScheduler-openAppointment\": \"Open appointment\",\r\n \"dxScheduler-recurrenceNever\": \"Never\",\r\n \"dxScheduler-recurrenceMinutely\": \"Every minute\",\r\n \"dxScheduler-recurrenceHourly\": \"Hourly\",\r\n \"dxScheduler-recurrenceDaily\": \"Daily\",\r\n \"dxScheduler-recurrenceWeekly\": \"Weekly\",\r\n \"dxScheduler-recurrenceMonthly\": \"Monthly\",\r\n \"dxScheduler-recurrenceYearly\": \"Yearly\",\r\n \"dxScheduler-recurrenceRepeatEvery\": \"Repeat Every\",\r\n \"dxScheduler-recurrenceRepeatOn\": \"Repeat On\",\r\n \"dxScheduler-recurrenceEnd\": \"End repeat\",\r\n \"dxScheduler-recurrenceAfter\": \"After\",\r\n \"dxScheduler-recurrenceOn\": \"On\",\r\n \"dxScheduler-recurrenceRepeatMinutely\": \"minute(s)\",\r\n \"dxScheduler-recurrenceRepeatHourly\": \"hour(s)\",\r\n \"dxScheduler-recurrenceRepeatDaily\": \"day(s)\",\r\n \"dxScheduler-recurrenceRepeatWeekly\": \"week(s)\",\r\n \"dxScheduler-recurrenceRepeatMonthly\": \"month(s)\",\r\n \"dxScheduler-recurrenceRepeatYearly\": \"year(s)\",\r\n \"dxScheduler-switcherDay\": \"Day\",\r\n \"dxScheduler-switcherWeek\": \"Week\",\r\n \"dxScheduler-switcherWorkWeek\": \"Work Week\",\r\n \"dxScheduler-switcherMonth\": \"Month\",\r\n \"dxScheduler-switcherAgenda\": \"Agenda\",\r\n \"dxScheduler-switcherTimelineDay\": \"Timeline Day\",\r\n \"dxScheduler-switcherTimelineWeek\": \"Timeline Week\",\r\n \"dxScheduler-switcherTimelineWorkWeek\": \"Timeline Work Week\",\r\n \"dxScheduler-switcherTimelineMonth\": \"Timeline Month\",\r\n \"dxScheduler-recurrenceRepeatOnDate\": \"on date\",\r\n \"dxScheduler-recurrenceRepeatCount\": \"occurrence(s)\",\r\n \"dxScheduler-allDay\": \"All day\",\r\n \"dxScheduler-confirmRecurrenceEditMessage\": \"Do you want to edit only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceDeleteMessage\": \"Do you want to delete only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceEditSeries\": \"Edit series\",\r\n \"dxScheduler-confirmRecurrenceDeleteSeries\": \"Delete series\",\r\n \"dxScheduler-confirmRecurrenceEditOccurrence\": \"Edit appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteOccurrence\": \"Delete appointment\",\r\n \"dxScheduler-noTimezoneTitle\": \"No timezone\",\r\n \"dxScheduler-moreAppointments\": \"{0} more\",\r\n\r\n },\r\n 'tr': {\r\n \"dxList-selectAll\": \"Tümünü Seç\",\r\n \"dxDataGrid-ariaSelectAll\": \"Tümünü Seç\",\r\n Yes: \"Evet\",\r\n No: \"Hayır\",\r\n Cancel: \"İptal\",\r\n Clear: \"Temizle\",\r\n Done: \"Tamam\",\r\n Loading: \"Yükleniyor...\",\r\n Select: \"Seç...\",\r\n Search: \"Ara\",\r\n Back: \"Geri\",\r\n OK: \"Tamam\",\r\n \"dxPager-infoText\": \"Toplam {1} sayfadan {0}. gösteriliyor ({2} kayıt)\",\r\n \"dxDataGrid-headerFilterOK\": \"Tamam\",\r\n \"dxDataGrid-headerFilterCancel\": \"İptal\",\r\n \"dxDataGrid-editingEditRow\": \"Düzenle\",\r\n \"dxDataGrid-editingSaveRowChanges\": \"Kaydet\",\r\n \"dxDataGrid-editingCancelRowChanges\": \"İptal\",\r\n \"dxDataGrid-editingDeleteRow\": \"Sil\",\r\n \"dxDataGrid-editingUndeleteRow\": \"Silmeyi geri al\",\r\n \"dxDataGrid-editingConfirmDeleteMessage\": \"Bu kaydı silmek istediğinize emin misiniz?\",\r\n \"dxDataGrid-validationCancelChanges\": \"Değişiklikleri İptal Et\",\r\n \"dxDiagram-dialogButtonOK\": \"Tamam\",\r\n \"dxDiagram-dialogButtonCancel\": \"İptal\",\r\n \"dxDataGrid-exportTo\": \"Dışa Aktar\",\r\n \"dxDataGrid-exportToExcel\": \"Excel Dosyasını Dışa Aktar\",\r\n \"dxDataGrid-exporting\": \"Dışa Aktarılıyor...\",\r\n \"dxDataGrid-excelFormat\": \"Excel Dosyası\",\r\n \"dxDataGrid-selectedRows\": \"Seçili Kolonlar\",\r\n \"dxDataGrid-exportSelectedRows\": \"Seçili Kolonları Dışa Aktar\",\r\n //\"dxDataGrid-exportAll\": \"Bütün Kayıtları Dışa Aktar\",\r\n \"dxDataGrid-searchPanelPlaceholder\": \"Ara...\",\r\n \"dxDataGrid-noDataText\": \"Veri Yok\",\r\n\r\n\r\n\r\n \"dxScheduler-editorLabelTitle\": \"Konu\",\r\n \"dxScheduler-editorLabelStartDate\": \"Başlangıç Tarihi\",\r\n \"dxScheduler-editorLabelEndDate\": \"Bitiş Tarihi\",\r\n \"dxScheduler-editorLabelDescription\": \"Açıklama\",\r\n \"dxScheduler-editorLabelRecurrence\": \"Tekrar\",\r\n \"dxScheduler-openAppointment\": \"Randevu Aç\",\r\n \"dxScheduler-recurrenceNever\": \"Asla\",\r\n \"dxScheduler-recurrenceMinutely\": \"Minutely\",\r\n \"dxScheduler-recurrenceHourly\": \"Hourly\",\r\n \"dxScheduler-recurrenceDaily\": \"Günlük\",\r\n \"dxScheduler-recurrenceWeekly\": \"Haftalık\",\r\n \"dxScheduler-recurrenceMonthly\": \"Aylık\",\r\n \"dxScheduler-recurrenceYearly\": \"Yıllık\",\r\n \"dxScheduler-recurrenceRepeatEvery\": \"Her tekrarla\",\r\n \"dxScheduler-recurrenceRepeatOn\": \"Tekrarla\",\r\n \"dxScheduler-recurrenceEnd\": \"Tekrarı bitir\",\r\n \"dxScheduler-recurrenceAfter\": \"Sonra\",\r\n \"dxScheduler-recurrenceOn\": \"İle\",\r\n \"dxScheduler-recurrenceRepeatMinutely\": \"minute(s)\",\r\n \"dxScheduler-recurrenceRepeatHourly\": \"hour(s)\",\r\n \"dxScheduler-recurrenceRepeatDaily\": \"günler\",\r\n \"dxScheduler-recurrenceRepeatWeekly\": \"haftalar\",\r\n \"dxScheduler-recurrenceRepeatMonthly\": \"aylar\",\r\n \"dxScheduler-recurrenceRepeatYearly\": \"yıllar\",\r\n \"dxScheduler-switcherDay\": \"Gün\",\r\n \"dxScheduler-switcherWeek\": \"Hafta\",\r\n \"dxScheduler-switcherWorkWeek\": \"Çalışma Haftası\",\r\n \"dxScheduler-switcherMonth\": \"Ay\",\r\n \"dxScheduler-switcherAgenda\": \"Ajanda\",\r\n \"dxScheduler-switcherTimelineDay\": \"Zaman Çizelgesi Günü\",\r\n \"dxScheduler-switcherTimelineWeek\": \"Zaman Çizelgesi Haftası\",\r\n \"dxScheduler-switcherTimelineWorkWeek\": \"Zaman Çizelgesi Çalışma Haftası\",\r\n \"dxScheduler-switcherTimelineMonth\": \"TZaman Çizelgesi Çalışma Ayı\",\r\n \"dxScheduler-recurrenceRepeatOnDate\": \"tarihinde\",\r\n \"dxScheduler-recurrenceRepeatCount\": \"olaylar\",\r\n \"dxScheduler-allDay\": \"Tüm gün\",\r\n \"dxScheduler-confirmRecurrenceEditMessage\": \"Yalnızca bu randevuyu veya tüm diziyi düzenlemek ister misiniz?\",\r\n \"dxScheduler-confirmRecurrenceDeleteMessage\": \"Yalnızca bu randevuyu veya tüm diziyi silmek istiyor musunuz?\",\r\n \"dxScheduler-confirmRecurrenceEditSeries\": \"Serileri düzenle\",\r\n \"dxScheduler-confirmRecurrenceDeleteSeries\": \"Serileri sil\",\r\n \"dxScheduler-confirmRecurrenceEditOccurrence\": \"Randevuyu düzenle\",\r\n \"dxScheduler-confirmRecurrenceDeleteOccurrence\": \"Randevuyu sil\",\r\n \"dxScheduler-noTimezoneTitle\": \"Saat dilimi yok\",\r\n \"dxScheduler-moreAppointments\": \"{0} daha\",\r\n }\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'app-picture-upload',\r\n templateUrl: './picture-upload.component.html',\r\n styleUrls: ['./picture-upload.component.css']\r\n})\r\nexport class PictureUploadComponent implements OnInit {\r\n @Input() image: string;\r\n state: any = {};\r\n constructor() {\r\n this.handleImageChange = this.handleImageChange.bind(this);\r\n }\r\n\r\n ngOnInit() {\r\n this.state = {\r\n file: null,\r\n imagePreviewUrl: \"assets/img/default-avatar.png\"\r\n };\r\n }\r\n handleImageChange($event) {\r\n $event.preventDefault();\r\n let reader = new FileReader();\r\n let file = $event.target.files[0];\r\n reader.onloadend = () => {\r\n this.state.file = file;\r\n this.state.imagePreviewUrl = reader.result;\r\n // this.state.imagePreviewUrl1 = reader.result;\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n handleSubmit($event) {\r\n $event.preventDefault();\r\n // this.state.file is the file/image uploaded\r\n // in this function you can save the image (this.state.file) on form submit\r\n // you have to call it yourself\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectorRef } from \"@angular/core\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { EventEmitterService, AppInfoService, TaskService, ReportService, AuthService, GenericService } from \"../../shared/services\";\r\nimport { InstanceService } from \"../../shared/services/data/instance.service\";\r\nimport { TaskModel } from \"../../shared/models/task-model\";\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { ComponentService } from \"../../formdesigner/component.service\";\r\nimport { userInfo } from \"os\";\r\nimport { NodeModel } from \"src/app/shared/models/node-model\";\r\nimport { ReportModel } from \"src/app/shared/models/report-model\";\r\nimport { parseBool } from \"devexpress-dashboard/model/index.metadata\";\r\n\r\nvar misc: any = {\r\n sidebar_mini_active: true\r\n}\r\n\r\nexport interface RouteInfo {\r\n path: string;\r\n title: string;\r\n type: string;\r\n icontype: string;\r\n collapse?: string;\r\n isCollapsed?: boolean;\r\n isCollapsedProcess?: boolean;\r\n isCollapsedReport?: boolean;\r\n isCollapsing?: any;\r\n children?: ChildrenItems[];\r\n}\r\n\r\nexport interface ChildrenItems {\r\n path: string;\r\n title: string;\r\n ab: string;\r\n type?: string;\r\n}\r\n\r\n//Menu Items\r\nexport const ROUTES: RouteInfo[] = [\r\n {\r\n path: \"/report\",\r\n title: \"Rapor\",\r\n type: \"link\",\r\n icontype: \"\"\r\n },\r\n {\r\n path: \"/reportdesigner\",\r\n title: \"Rapor Tasarım\",\r\n type: \"link\",\r\n icontype: \"\"\r\n },\r\n {\r\n path: \"/calendar\",\r\n title: \"Takvim\",\r\n type: \"link\",\r\n icontype: \"\"\r\n },\r\n {\r\n path: \"/home\",\r\n title: \"\",\r\n type: \"link\",\r\n icontype: \"\"\r\n },\r\n\r\n //{\r\n // path: \"/pages\",\r\n // title: \"Pages\",\r\n // type: \"sub\",\r\n // icontype: \"design_image\",\r\n // collapse: \"pages\",\r\n // isCollapsed: true,\r\n // children: [\r\n // { path: \"pricing\", title: \"Pricing Page\", ab: \"PP\" },\r\n // { path: \"timeline\", title: \"Timeline Page\", ab: \"TP\" },\r\n // { path: \"login\", title: \"Login Page\", ab: \"LP\" },\r\n // { path: \"register\", title: \"Register Page\", ab: \"RP\" },\r\n // { path: \"lock\", title: \"Lock Screen Page\", ab: \"LSP\" },\r\n // { path: \"user\", title: \"User Page\", ab: \"UP\" }\r\n // ]\r\n //}\r\n //{\r\n // path: \"/calendar\",\r\n // title: \"Calendar\",\r\n // type: \"link\",\r\n // icontype: \"media-1_album\"\r\n //}\r\n];\r\n\r\n\r\n@Component({\r\n selector: \"app-sidebar\",\r\n templateUrl: \"./sidebar.component.html\",\r\n styleUrls: [\"./sidebar.component.scss\"]\r\n})\r\nexport class SidebarComponent implements OnInit {\r\n public menuItems: any[];\r\n reportModel: ReportModel;\r\n public isCollapsed = true;\r\n public isCollapsedProcess = true;\r\n public isCollapsedReport = true;\r\n nodeModel: NodeModel;\r\n\r\n selectedTask: any;\r\n selectedSchemaId: number;\r\n\r\n curerentInstanceId: any;\r\n showFormPopup: boolean = false;\r\n showNodeFormPopop: boolean = false;\r\n selectedForm: any;\r\n sqlParseParametersValues: any = [];\r\n\r\n selectedReportId: any = 0;\r\n selectedReportName: string = \"Rapor Seçilmedi\";\r\n showReportFilterPopup: any = false;\r\n showReportTypePopup: any = false;\r\n selectedReportType: number = 0;\r\n selectedReportTypeName: string = \"Rapor Tipi Seçilmedi\";\r\n reportTypes = {\r\n grid: 1,\r\n pivot: 2,\r\n white: 3,\r\n dashboard: 4\r\n }\r\n connections: any = [];\r\n\r\n designerMenuList: any = [];\r\n designerMenuList1: any[] = [\r\n\r\n {\r\n id: 1,\r\n isCollapsed: true,\r\n name: \"Menu 1\",\r\n items: [\r\n {\r\n id: 1,\r\n name: \"Alt Kırılım 1\",\r\n isBrowser: false,\r\n isCollapsed: true,\r\n items: [\r\n {\r\n id: \"10631366-b211-4d40-8ea7-8615920b2637\",\r\n formId: 66,\r\n name: \"Browser 1\",\r\n isBrowser: true\r\n },\r\n {\r\n id: 2,\r\n name: \"Browser 2\",\r\n isBrowser: true\r\n }\r\n ]\r\n },\r\n\r\n {\r\n id: 2,\r\n name: \"Alt Kırılım 2\",\r\n isBrowser: false,\r\n isCollapsed: true,\r\n items: [\r\n {\r\n id: 1,\r\n name: \"Browser 3\",\r\n isBrowser: true\r\n },\r\n {\r\n id: 2,\r\n name: \"Browser 4\",\r\n isBrowser: true\r\n }\r\n ]\r\n },\r\n\r\n\r\n\r\n\r\n ]\r\n\r\n }\r\n\r\n ];\r\n\r\n\r\n constructor(private toastr: ToastrService, public taskService: TaskService,\r\n public instanceService: InstanceService, public authService: AuthService,\r\n private reportingService: ReportService,\r\n public appInfo: AppInfoService,\r\n private genericService: GenericService,\r\n private eventEmitterService: EventEmitterService,\r\n private router: Router,\r\n private spinner: NgxSpinnerService,\r\n private componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef) {\r\n\r\n this.reportModel = new ReportModel();\r\n this.reportModel.useInWeb = true;\r\n this.reportModel.useInMobile = true;\r\n\r\n this.nodeModel = new NodeModel();\r\n this.nodeModel.orderNo = 1;\r\n }\r\n\r\n schemeList: any = [];\r\n reports: any = [];\r\n sidebarLogoImage: any = \"\";\r\n profileImageLink: any;\r\n ngOnInit() {\r\n let userSession = localStorage.getItem(\"localUserSession\");\r\n let entity = JSON.parse(userSession);\r\n\r\n this.sidebarLogoImage = entity.systemInfos.CompanyLogo == null || entity.systemInfos.CompanyLogo == \"null\" || entity.systemInfos.CompanyLogo == \"\" ? \"./assets/img/logo/river_logo.svg\" : entity.systemInfos.CompanyLogo;\r\n this.connections = entity.connections;\r\n this.reportModel.connectionId = this.connections ? this.connections[0].id : 0;\r\n\r\n this.changeSidebarColor(this.appInfo.currentUser.color, false)\r\n\r\n this.sidebarSizeStatu();\r\n\r\n this.getReportList();\r\n this.getMenuList();\r\n\r\n this.eventEmitterService.invokeGetAllSchemaListEvent.subscribe(sub => {\r\n this.getSchemaList(sub.data);\r\n setTimeout(() => {\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n } catch { }\r\n }, 300);\r\n });\r\n\r\n this.eventEmitterService.subsStartInstance = this.eventEmitterService.invokeStartMenuFunction.subscribe(sub => {\r\n this.selectItemDesignerMenu(null, sub.data.menuFormGuid, sub.data.name, sub.data.formId, true, sub.data.schemeId, true);\r\n });\r\n\r\n // this.invokeFunctions();\r\n this.fillFavorite();\r\n }\r\n getFormStyle() {\r\n let myStyles = {\r\n 'background': \"url(\" + (this.appInfo.currentUser.photo != null &&\r\n this.appInfo.currentUser.photo != \"\" &&\r\n this.appInfo.currentUser.photo != \"ZABhAHQAYQA6AGkAbQBhAGcAZQAvAHAAbgBnADsAYgBhAHMAZQA2ADQALABpAFYAQgA=\" ?\r\n 'data:image/png;base64,' + this.appInfo.currentUser.photo :\r\n \"/assets/img/team2.jpg\") + \") no-repeat #fff\",\r\n 'background-size': \"cover\"\r\n };\r\n return myStyles;\r\n }\r\n mouseEnterProcess(itemIndex, menuId) {\r\n // \r\n var display = this.schemeList.find(x => x.id == menuId).items[itemIndex].isDisplay;\r\n this.schemeList.find(x => x.id == menuId).items[itemIndex].isDisplay = true;\r\n }\r\n\r\n mouseLeaveProcess(itemIndex, menuId) {\r\n // \r\n var display = this.schemeList.find(x => x.id == menuId).items[itemIndex].isDisplay;\r\n this.schemeList.find(x => x.id == menuId).items[itemIndex].isDisplay = false;\r\n }\r\n\r\n getClassByValue(itemIndex, menuId, isFav) {\r\n //\r\n var display = this.schemeList.find(x => x.id == menuId).items[itemIndex].isDisplay;\r\n if (isFav) {\r\n return \"star-display-show\"\r\n }\r\n else {\r\n if (typeof display === \"undefined\" || !display) {\r\n return \"star-display-hide\"\r\n }\r\n else {\r\n return \"star-display-show\"\r\n }\r\n }\r\n\r\n }\r\n\r\n getMenuList() {\r\n this.taskService.getSidebarMenu().subscribe(data => {\r\n\r\n this.designerMenuList = [];\r\n for (var i = 0; i < data.length; i++) {\r\n //this.designerMenuList = data;\r\n let _obj = { schemaId: data[i].schemaId, data: JSON.parse(data[i].sidebarJson) };\r\n this.designerMenuList.push(_obj);\r\n }\r\n });\r\n }\r\n\r\n getReportList() {\r\n this.reportingService.getReports().subscribe(data => {\r\n\r\n this.reports = data;\r\n for (var i = 0; i < this.reports.length; i++) {\r\n this.reports[i].isCollapsed = true;\r\n }\r\n });\r\n }\r\n\r\n getSchemaList(allSchemaList) {\r\n //this.schemeList = this.componentService.allSchemaList;\r\n\r\n this.schemeList = allSchemaList;\r\n\r\n this.schemeList = this.schemeList.filter(x => x.isMenu == false);\r\n for (var i = 0; i < this.schemeList.length; i++) {\r\n this.schemeList[i].isCollapsed = true;\r\n\r\n if (this.schemeList[i].items.length > 0) {\r\n //isMenu \r\n this.schemeList[i].items.forEach(function (item, index, object) {\r\n if (item.isMenu == true) {\r\n object.splice(index, 1);\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n favoriteMenuItems: any;\r\n fillFavorite() {\r\n\r\n this.taskService.GetFavoriteList().subscribe((r: any) => {\r\n this.favoriteMenuItems = r;\r\n }, error => {\r\n // this.componentService.showAlert(\"Üzgünüz, beklenmedik bir hata oluştu,\", \"error\", 2000);\r\n });\r\n }\r\n\r\n selectItem(e, id, name, isScheme) {\r\n\r\n\r\n var isStarElement = e.target.className.indexOf(\"star-element\") > -1;\r\n var unStarElementClick = e.target.className.indexOf(\"fa-star star-element\") > -1;\r\n if (isStarElement /*&& e.itemData.isScheme*/) {\r\n\r\n // this.starChange(e);\r\n\r\n if (this.favoriteMenuItems.length > 2 && !unStarElementClick) {\r\n let msg = \" En fazla üç tane favori ekleyebilirsiniz. İlk favoriyi silmek istiyor musunuz?\"\r\n let result = confirm(msg, \"Favori Eklenecek!\");\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.starChange(id, true);\r\n }\r\n });\r\n }\r\n else\r\n this.starChange(id, false);\r\n\r\n } else if (isScheme) {\r\n this.selectedTask = name;\r\n this.selectedSchemaId = parseInt(id);\r\n this.componentService.selectedSchemaId = this.selectedSchemaId;\r\n if (this.router.url.toLowerCase() == \"/home\") {\r\n let data_scheme = {\r\n id: id,\r\n name: name\r\n };\r\n this.eventEmitterService.createTaskAndStartForm(data_scheme);\r\n\r\n } else {\r\n this.router.navigate(['home'], { state: { id: id, name: name, isScheme: isScheme } });\r\n }\r\n\r\n // this.createTask();\r\n }\r\n }\r\n //firstFavorite: any;\r\n starChange(id, deleteFirstFavorite) {\r\n var _this = this;\r\n this.selectedSchemaId = parseInt(id);\r\n this.componentService.selectedSchemaId = this.selectedSchemaId;\r\n this.taskService.SetFavorite(this.selectedSchemaId).subscribe((k: any) => {\r\n var r = k.list;\r\n this.eventEmitterService.updateFavoriteChange(r);\r\n\r\n //this.getSchemaLis t();\r\n\r\n if (deleteFirstFavorite) {\r\n var firstFavorite = r[0].id;\r\n\r\n //var firstFavorite = -1;\r\n //for (var i = 0; i <.length; i++) {\r\n // for (var k = 0; k < r.length; k++) {\r\n // var itemNo = _this.favoriteMenuItems[i].items.findIndex(x => x.id == r[k].id);\r\n // if (itemNo > -1) {\r\n // firstFavorite = _this.favoriteMenuItems[i];\r\n // }\r\n // }\r\n //}\r\n\r\n // var objIndex = _this.schemeList[0].items.findIndex((x => x.id == firstFavorite));\r\n\r\n /*\r\n var objIndex = _this.schemeList.findIndex((obj => obj.items.findIndex(x => x.id == firstFavorite)));\r\n var itemIndex = _this.schemeList[objIndex].items.findIndex(x => x.id == firstFavorite);\r\n */\r\n var objItem = 0;\r\n var indexItem = 0;\r\n for (var i = 0; i < this.schemeList.length; i++) {\r\n\r\n var itemNo = this.schemeList[i].items.findIndex(x => x.id == k.remove);\r\n if (itemNo > -1) {\r\n _this.schemeList[i].items[itemNo].isFavorite = false;\r\n break;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n // var objIndex = _this.schemeList.findIndex(this.checkSchemeList);\r\n // var itemIndex = _this.schemeList[objIndex].items.findIndex(x => x.id == this.firstFavorite);\r\n // _this.schemeList[objIndex].items[itemIndex].isFavorite = false;\r\n //this.firstFavorite = -1;\r\n }\r\n\r\n for (var i = 0; i < this.schemeList.length; i++) {\r\n\r\n var itemNo = this.schemeList[i].items.findIndex(x => x.id == this.selectedSchemaId);\r\n if (itemNo > -1) {\r\n var selectedScheme = r.find(x => x.id === _this.selectedSchemaId);\r\n this.schemeList[i].items[itemNo].isFavorite = (typeof selectedScheme !== \"undefined\" && selectedScheme !== null);\r\n //break;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n //var selectedScheme = r.find(x => x.id === _this.selectedSchemeI d);\r\n _this.favoriteMenuItems = r;\r\n //// this.schemeList = r.filter(x => x.id === this.selectedSchemeI d);\r\n //e.event.target.className = selectedScheme ? \"fas fa-star star-element\" : \"fas fa-star unstar-element\";\r\n\r\n\r\n }, error => {\r\n this.componentService.showAlert(\"Üzgünüz, beklenmedik bir hata oluştu,\", \"error\", 2000);\r\n });\r\n\r\n }\r\n //createTask() {\r\n // //this.showCreateTaskPopup = true;\r\n // let msg = \"Yeni talep oluşturulacak. Devam edilsin mi?\"\r\n // let result = confirm(msg, \"Talep Oluşturulacak!\");\r\n // result.then((dialogResult) => {\r\n // if (dialogResult) {\r\n // this.startTask();\r\n // }\r\n // });\r\n\r\n //}\r\n\r\n\r\n //startTask() {\r\n // this.spinner.show(\"mainspinner\");\r\n // let model = new TaskModel();\r\n // model.UserId = this.appInfo.currentUser.id;\r\n // model.SchemeId = this.selectedSchemeI d;\r\n // this.instanceService.startInstance(model).subscribe((instanceId: any) => {\r\n // if (instanceId > 0) {\r\n // this.curerentInstanceId = instanceId;\r\n // let requestCount = 1;\r\n // let requestInterval = setInterval(f => {\r\n // requestCount++;\r\n // this.instanceService.getCurrentForm(instanceId, 0, false).subscribe((form: any) => {\r\n // //this.spinner.hide(\"mainspinner\");\r\n // if (form.hasForm) {\r\n // this.selectedForm = form;\r\n // this.selectedForm.readonly = false;\r\n // \r\n // this.componentService.isSentFormToDb = false;\r\n // this.showFormPopup = true;\r\n // this.spinner.hide(\"mainspinner\");\r\n // clearInterval(requestInterval);\r\n // }\r\n // }, error => {\r\n // \r\n // //this.spinner.hide(\"mainspinner\");\r\n // this.componentService.showAlert(\"Üzgünüz, beklenmedik bir hata oluştu,\", \"error\", 2000);\r\n // });\r\n\r\n // if (requestCount >= 30) {\r\n // this.spinner.hide(\"mainspinner\");\r\n // this.componentService.showAlert(\"Süreç başlatıldı. Görev listenizden takip edebilirsiniz,\", \"success\", 2000);\r\n // clearInterval(requestInterval);\r\n // }\r\n // }, 500);\r\n // //this.showForm();\r\n // }\r\n // else {\r\n // this.componentService.showAlert(\"Süreç başlatılırken bir hata oluştu,\", \"error\", 2000);\r\n // this.spinner.hide(\"mainspinner\");\r\n // }\r\n // }, error => {\r\n // this.spinner.hide(\"mainspinner\");\r\n // this.componentService.showAlert(\"Üzgünüz, beklenmedik bir hata oluştu,\", \"error\", 2000);\r\n // });\r\n //}\r\n\r\n\r\n convertBinaryToBase64() {\r\n let TYPED_ARRAY = new Uint8Array(this.appInfo.currentUser.photoByte); //binary data gelecek\r\n const STRING_CHAR = String.fromCharCode.apply(null, TYPED_ARRAY);\r\n let base64String = btoa(STRING_CHAR);\r\n return 'data:image/jpg;base64,' + this.appInfo.currentUser.photo; //this.sanitizer.bypassSecurityTrustUrl('data:image/png;base64,' + base64String);\r\n /*const STRING_CHAR = TYPED_ARRAY.reduce((data, byte)=> {\r\n return data + String.fromCharCode(byte);\r\n }, ''));*/\r\n }\r\n\r\n\r\n ///////////////////////////\r\n ////////// MENU /////////\r\n /////////////////////////\r\n selectItemDesignerMenu(event, id, name, formId, isBrowser, schemaId, isOpenForm = false) {\r\n \r\n if (isBrowser) {\r\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n return false;\r\n }\r\n this.sidebarSizeStatu();\r\n this.router.onSameUrlNavigation = 'reload';\r\n // this.router.runGuardsAndResolvers= 'always'\r\n this.router.navigate(['/menu/' + id + \"/\" + formId + \"/\" + schemaId], { state: { formName: name, isOpenForm: isOpenForm } });\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n ///////////////////////////\r\n ////////// RAPOR /////////\r\n /////////////////////////\r\n\r\n selectItemReport(event, id, name, isReport) {\r\n\r\n\r\n if (this.router.url.toLowerCase() == \"/report\") {\r\n let r = {\r\n event: event, id: id, name: name, isReport: isReport\r\n };\r\n this.eventEmitterService.pageWithRouteChange(r);\r\n } else {\r\n this.router.navigate(['report'], { state: { id: id, name: name, isReport: isReport } });\r\n }\r\n\r\n // this.eventEmitterService.updateReportClickChang e(r);\r\n //this.router.navigateByUrl('/reportdesigner'); \r\n // this.router.navigateByUrl('/reportdesigner'); \r\n // this.reportDesignerComponent.selectIte mReport(event, id, name, isReport);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n ///////////////////////////\r\n /// Tema Fonksiyonları ///\r\n /////////////////////////\r\n\r\n\r\n sleep(milliseconds) {\r\n var start = new Date().getTime();\r\n for (var i = 0; i < 1e7; i++) {\r\n if (new Date().getTime() - start > milliseconds) {\r\n break;\r\n }\r\n }\r\n }\r\n handleValueChange(e) {\r\n this.changeSidebarColor(e.value, true)\r\n // Event handling commands go here\r\n }\r\n currentColor: string = \"#fffffff\";\r\n public sidebarColor: string = \"red\";\r\n changeSidebarColor(color, userColorService = true) {\r\n\r\n let dataColor =//color;#A7925B\r\n color == \"yellow\" ? \"#A7925B\" : (color == \"blue\" ? \"#0D87C0\" : (color == \"orange\" ? \"#DB2F00\" :\r\n (color == \"red\" ? \"#87222C\" : (color == \"green\" ? \"#097735\" : (color == \"black\" ? \"#292929\" : \"#DB2F00\")))));\r\n\r\n this.currentColor = color;\r\n\r\n //color=\"#4CAF50\";\r\n var sidebar = document.querySelector('.sidebar');\r\n\r\n if (sidebar != undefined) {\r\n if (userColorService) {//updateColor\r\n let model = { id: this.appInfo.currentUser.id, color: color };\r\n\r\n this.authService.updateColor(model).subscribe((result: any) => {\r\n\r\n if (result) {\r\n this.appInfo.currentUser.color = color;\r\n this.sidebarColor = color;\r\n sidebar.setAttribute('data-color', dataColor);\r\n sidebar.setAttribute('style', \" --tooltip-color: \" + dataColor);\r\n\r\n let entity = JSON.parse(localStorage.getItem(\"localUserSession\"));\r\n entity.currentUser.color = color;\r\n localStorage.setItem(\"localUserSession\", JSON.stringify(entity));\r\n }\r\n else {\r\n this.sidebarColor = color;\r\n sidebar.setAttribute('data-color', dataColor);\r\n sidebar.setAttribute('style', \" --tooltip-color: \" + dataColor);\r\n }\r\n this.eventEmitterService.colorSetData(null);\r\n });\r\n\r\n }\r\n else {\r\n this.sidebarColor = color;\r\n sidebar.setAttribute('data-color', dataColor);\r\n sidebar.setAttribute('style', \" --tooltip-color: \" + dataColor);\r\n this.eventEmitterService.colorSetData(null);\r\n }\r\n }\r\n else\r\n this.eventEmitterService.colorSetData(null);\r\n }\r\n\r\n myFunc(event, menuitem) {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.sleep(10);\r\n //let f = 0;\r\n if (menuitem)\r\n if (menuitem.isCollapsing === undefined) {\r\n menuitem.isCollapsing = true;\r\n\r\n menuitem.isCollapsed = typeof menuitem.isCollapsed === \"undefined\" ? true : !menuitem.isCollapsed;\r\n\r\n var element = event.target;\r\n while (\r\n element.getAttribute(\"data-toggle\") != \"collapse\" &&\r\n element != document.getElementsByTagName(\"html\")[0]\r\n ) {\r\n element = element.parentNode;\r\n }\r\n element = element.parentNode.children[1];\r\n\r\n if (\r\n element.classList.contains(\"collapse\") &&\r\n !element.classList.contains(\"show\")\r\n ) {\r\n element.classList = \"before-collapsing\";\r\n var style = element.scrollHeight;\r\n\r\n element.classList = \"collapsing\";\r\n setTimeout(function () {\r\n element.setAttribute(\"style\", \"height:\" + style + \"px\");\r\n }, 1);\r\n setTimeout(function () {\r\n element.classList = \"collapse show\";\r\n element.removeAttribute(\"style\");\r\n menuitem.isCollapsing = undefined;\r\n }, 350);\r\n } else {\r\n var style = element.scrollHeight;\r\n setTimeout(function () {\r\n element.setAttribute(\"style\", \"height:\" + (style + 20) + \"px\");\r\n }, 3);\r\n setTimeout(function () {\r\n element.classList = \"collapsing\";\r\n }, 3);\r\n setTimeout(function () {\r\n element.removeAttribute(\"style\");\r\n }, 20);\r\n setTimeout(function () {\r\n element.classList = \"collapse\";\r\n menuitem.isCollapsing = undefined;\r\n }, 400);\r\n }\r\n }\r\n }\r\n\r\n logoMiniDisplay: any = false;\r\n sidebarSizeStatu() {\r\n const body = document.getElementsByTagName('body')[0];\r\n let sidebarMinimize = sessionStorage.getItem(\"sessionSidebarMinimize\");\r\n if (sidebarMinimize == null) {\r\n this.minimizeSidebar();\r\n } else {\r\n misc.sidebar_mini_active = (sessionStorage.getItem(\"sessionSidebarMinimize\") == \"true\");\r\n this.logoMiniDisplay = (sessionStorage.getItem(\"sessionSidebarMinimize\") == \"true\");\r\n if (misc.sidebar_mini_active)\r\n body.classList.add('sidebar-mini');\r\n else\r\n body.classList.remove('sidebar-mini');\r\n }\r\n }\r\n\r\n minimizeSidebar() {\r\n\r\n const body = document.getElementsByTagName('body')[0];\r\n if (body.classList.contains('sidebar-mini')) {\r\n misc.sidebar_mini_active = true\r\n } else {\r\n misc.sidebar_mini_active = false;\r\n }\r\n if (misc.sidebar_mini_active === true) {\r\n body.classList.remove('sidebar-mini');\r\n misc.sidebar_mini_active = false;\r\n this.logoMiniDisplay = false;\r\n // this.showSidebarMessage('Sidebar mini deactivated...');\r\n } else {\r\n body.classList.add('sidebar-mini');\r\n // this.showSidebarMessage('Sidebar mini activated...');\r\n misc.sidebar_mini_active = true;\r\n this.logoMiniDisplay = true;\r\n }\r\n\r\n sessionStorage.setItem(\"sessionSidebarMinimize\", misc.sidebar_mini_active);\r\n\r\n // we simulate the window Resize so the charts will get updated in realtime.\r\n const simulateWindowResize = setInterval(function () {\r\n window.dispatchEvent(new Event('resize'));\r\n }, 180);\r\n\r\n // we stop the simulation of Window Resize after the animations are completed\r\n setTimeout(function () {\r\n clearInterval(simulateWindowResize);\r\n }, 1000);\r\n }\r\n\r\n showSidebarMessage(message) {\r\n this.toastr.show(\r\n '', message,\r\n {\r\n timeOut: 4000,\r\n closeButton: true,\r\n enableHtml: true,\r\n toastClass: \"alert alert-danger alert-with-icon\",\r\n positionClass: \"toast-top-right\"\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport * as mapsData from \"devextreme/dist/js/vectormap-data/world.js\";\r\nimport { Countries, Service } from \"./vector-map.service\";\r\n\r\n@Component({\r\n selector: \"app-vector-map-component\",\r\n templateUrl: \"./vector-map.component.html\",\r\n providers: [Service],\r\n styleUrls: [\"./vector-map.component.css\"]\r\n})\r\nexport class VectorMapComponent1 {\r\n worldMap: any = mapsData.world;\r\n countries: Countries;\r\n\r\n constructor(service: Service) {\r\n this.countries = service.getCountries();\r\n this.customizeTooltip = this.customizeTooltip.bind(this);\r\n this.customizeLayers = this.customizeLayers.bind(this);\r\n this.click = this.click.bind(this);\r\n }\r\n\r\n customizeTooltip(arg) {\r\n let name = arg.attribute(\"name\");\r\n return {\r\n text: name,\r\n color: \"#FFFFFF\",\r\n fontColor: \"#000\"\r\n };\r\n }\r\n\r\n customizeLayers(elements) {\r\n elements.forEach(element => {\r\n let country = this.countries[element.attribute(\"name\")];\r\n if (country) {\r\n element.applySettings({\r\n color: country.color,\r\n hoveredColor: country.color,\r\n selectedColor: country.color\r\n });\r\n } else {\r\n element.applySettings({\r\n color: \"#e4e4e4\",\r\n hoveredColor: \"#e4e4e4\",\r\n selectedColor: \"#e4e4e4\"\r\n });\r\n }\r\n });\r\n }\r\n\r\n click(e) {\r\n let target = e.target;\r\n if (target && this.countries[target.attribute(\"name\")]) {\r\n target.selected(!target.selected());\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { scaleLinear } from \"d3-scale\";\r\n\r\nconst popScale = scaleLinear()\r\n .domain([100, 3000])\r\n .range([\"#AAAAAA\", \"#444444\"]);\r\n\r\nexport class Country {\r\n color: string;\r\n}\r\n\r\nexport class Countries {\r\n Russia: Country;\r\n Canada: Country;\r\n China: Country;\r\n \"United States\": Country;\r\n Brazil: Country;\r\n Australia: Country;\r\n India: Country;\r\n Argentina: Country;\r\n Romania: Country;\r\n Algeria: Country;\r\n}\r\n\r\nlet countries: Countries = {\r\n Russia: { color: popScale(300) },\r\n Canada: { color: popScale(120) },\r\n China: { color: popScale(1300) },\r\n \"United States\": { color: popScale(2920) },\r\n Brazil: { color: popScale(550) },\r\n Australia: { color: popScale(760) },\r\n India: { color: popScale(200) },\r\n Argentina: { color: popScale(240) },\r\n Romania: { color: popScale(600) },\r\n Algeria: { color: popScale(540) }\r\n};\r\n\r\n@Injectable()\r\nexport class Service {\r\n getCountries(): Countries {\r\n return countries;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnInit, ViewChild, AfterViewChecked, Input, ElementRef } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { DndDropEvent, DropEffect } from 'ngx-drag-drop';\r\nimport { ComponentService } from \"../component.service\";\r\nimport { CdkDragDrop, CdkDragStart, CdkDragMove, CdkDragEnd, moveItemInArray, copyArrayItem, transferArrayItem } from '@angular/cdk/drag-drop';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\nimport { FormModel } from '../../shared/models/form-model';\r\nimport { AuthService, EventEmitterService, AppInfoService, FormService, TaskService, GenericService, GlobalService } from '../../shared/services';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DxDrawerComponent } from 'devextreme-angular';\r\nimport { environment } from '../../../environments/environment';\r\nimport { MailService } from '../../shared/services/data/mail.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n\r\n@Component({\r\n selector: 'dx-builder',\r\n templateUrl: './formbuilder.html',\r\n styleUrls: ['./formbuilder.css'],\r\n preserveWhitespaces: true\r\n})\r\n\r\nexport class FormBuilder implements OnInit, AfterViewChecked {\r\n currentApplicationVersion = environment.appVersion;\r\n //@ViewChild(\"HadiLan\", { read: ElementRef, static: false }) child: ElementRef;\r\n @ViewChild(DxDrawerComponent, { static: false }) drawer: DxDrawerComponent;\r\n @Input() lang: any;\r\n // languageCode: any;\r\n componentList: any[];\r\n history: any = [];\r\n currentIndex: number = 0;\r\n\r\n showSavePopup: boolean = false;\r\n\r\n renderData: any = [];\r\n isRender: boolean = false;\r\n languageLocal: any = \"\";\r\n selectedFormLanguage: any;\r\n formList: any;\r\n\r\n // liveWebButton: any;\r\n\r\n keyPress(event: any) {\r\n\r\n const pattern = /[A-Za-z0-9_]/;\r\n const inputChar = String.fromCharCode((event as KeyboardEvent).charCode);\r\n if (!pattern.test(inputChar)) {\r\n // invalid character, prevent input\r\n event.preventDefault();\r\n }\r\n }\r\n onDragClass: string = \"\";\r\n\r\n actions = [\r\n {\r\n icon: \"edit\",\r\n alignment: \"left\",\r\n hint: \"Edit\",\r\n action: \"edit\"\r\n },\r\n {\r\n icon: \"trash\",\r\n alignment: \"right\",\r\n hint: \"Delete\",\r\n action: \"delete\"\r\n },\r\n ];\r\n\r\n formColor: any = \"#ffffff\";\r\n formBackground = null;\r\n formBackgroundExtension = null;\r\n\r\n isEdit: boolean = false;\r\n currentField: any = {};\r\n toolbarContent = [];\r\n\r\n category = { parent: 0, sub: 0, isGeneric: true };\r\n categoryList: any = [];\r\n subCategoryList: any = [];\r\n connections: any[] = []\r\n languagePopup: boolean = false;\r\n\r\n constructor(private route: ActivatedRoute,\r\n private appInfo: AppInfoService,\r\n private authService: AuthService,\r\n private componentService: ComponentService,\r\n public formService: FormService,\r\n public taskService: TaskService,\r\n private eventEmitterService: EventEmitterService,\r\n private http: HttpClient,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n private router: Router,\r\n private genericService: GenericService,\r\n private globalService: GlobalService,\r\n public _sanitizationService: DomSanitizer,\r\n private mailService: MailService) {\r\n this.authService.isFormBuilder = true;\r\n this.route.queryParams.subscribe(params => {\r\n let localLang = \"TRTR\"\r\n console.log(params)\r\n if (typeof params.languageCode != \"undefined\" && params.languageCode != \"\") {\r\n localLang = params.languageCode\r\n }\r\n this.genericService.getlogininit(localLang, \"dictionary\").subscribe(data => {\r\n this.componentService.setLanguageSource(data.languages.langSource)\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n //this.componentService.setLanguageSource(data)\r\n })\r\n\r\n this.lang = localLang;\r\n this.checkUser(params.username, params.password);\r\n });\r\n debugger;\r\n this.componentService.createCdkList(0);\r\n\r\n // console.log(this.languageLocal);\r\n this.setToolbarContext();\r\n\r\n }\r\n\r\n getDbName() {\r\n if (!!this.connections && this.connections.length > 0) {\r\n let test = this.connections.find(value => value.isMainConn == \"True\")\r\n return test.databaseName\r\n }\r\n return \"\"\r\n }\r\n\r\n\r\n prefGlobal = { formOpenedEvents: [], formOpenedMultiElementEvents: [] };\r\n formOpenedEvent: { connectionId: 0, elementId: \"\", query: \"\" };\r\n formOpenedMultiElementEvent: { connectionId: 0, query: \"\" };\r\n formElements = [];\r\n showPrefPopup = false;\r\n isMonacoLoaded = false;\r\n updateIndex = -1;\r\n multpileElementUpdateIndex = -1;\r\n getPreferences() {//preferences\r\n debugger;\r\n this.clearPrefPopup();\r\n this.formElements = this.componentService.getComponentList(this.componentService.currentForm.components, 0).map(m => m.id);\r\n if (this.componentService.currentForm.preferences != null)\r\n this.prefGlobal = this.componentService.currentForm.preferences;\r\n else\r\n this.prefGlobal = { formOpenedEvents: [], formOpenedMultiElementEvents: [] };\r\n this.showPrefPopup = true;\r\n }\r\n clearPrefPopup() {\r\n this.updateIndex = -1;\r\n this.multpileElementUpdateIndex = -1;\r\n this.formOpenedEvent = { connectionId: 0, elementId: \"\", query: \"\" };\r\n this.formOpenedMultiElementEvent = { connectionId: 0, query: \"\" };\r\n }\r\n closePrefPopup() {\r\n this.componentService.currentForm.preferences = this.prefGlobal;\r\n this.clearPrefPopup();\r\n }\r\n saveFormOpenSqlScript() {\r\n if (this.updateIndex == -1) {\r\n this.prefGlobal.formOpenedEvents.push(this.formOpenedEvent);\r\n } else {\r\n this.prefGlobal.formOpenedEvents[this.updateIndex] = this.formOpenedEvent;\r\n }\r\n this.clearPrefPopup();\r\n }\r\n saveFormOpenMultiElementSqlScript() {\r\n this.prefGlobal.formOpenedMultiElementEvents = typeof this.prefGlobal.formOpenedMultiElementEvents != 'undefined' ? this.prefGlobal.formOpenedMultiElementEvents : [];\r\n if (this.multpileElementUpdateIndex == -1) {\r\n this.prefGlobal.formOpenedMultiElementEvents.push(this.formOpenedMultiElementEvent);\r\n } else {\r\n this.prefGlobal.formOpenedMultiElementEvents[this.multpileElementUpdateIndex] = this.formOpenedMultiElementEvent;\r\n }\r\n this.clearPrefPopup();\r\n }\r\n updateFormOpenedScript(i) {\r\n this.updateIndex = i;\r\n this.formOpenedEvent = this.componentService.cloneModel(this.prefGlobal.formOpenedEvents[i]);\r\n }\r\n deleteFormOpenedScript(i) {\r\n this.prefGlobal.formOpenedEvents.splice(i, 1);\r\n }\r\n updateFormOpenedMultiElementScript(i) {\r\n this.multpileElementUpdateIndex = i;\r\n this.formOpenedMultiElementEvent = this.componentService.cloneModel(this.prefGlobal.formOpenedMultiElementEvents[i]);\r\n }\r\n deleteFormOpenedMultiElementScript(i) {\r\n this.prefGlobal.formOpenedMultiElementEvents.splice(i, 1);\r\n }\r\n\r\n monacoOnInit() {\r\n this.isMonacoLoaded = true;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n registeredLanguage: any;\r\n setCustomKeywords(monaco) {\r\n if (this.registeredLanguage)\r\n this.registeredLanguage.dispose();\r\n\r\n this.registeredLanguage = monaco.languages.registerCompletionItemProvider('plaintext', {\r\n provideCompletionItems: () => {\r\n var suggestions = [];\r\n let elements = this.componentService.getComponentList(this.componentService.currentForm.components, 0).map(m => m.id);\r\n for (let i = 0; i < elements.length; i++) {\r\n suggestions.push({\r\n label: elements[i],\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"\" + elements[i] + \"\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n })\r\n }\r\n return { suggestions: suggestions };\r\n }\r\n });\r\n }\r\n\r\n getDbVisible() {\r\n if (!!this.connections && this.connections.length > 0) {\r\n let test = this.connections.find(value => value.isMainConn == \"True\")\r\n if (test.databaseName != \"\" && test.databaseName != null && !!test.databaseName) {\r\n return true\r\n }\r\n return false\r\n }\r\n return false\r\n }\r\n\r\n menuButtonOptions: any;\r\n preferencesButtonOptions: any;\r\n plusButtonOptions: any;\r\n saveButtonOptions: any;\r\n undoButtonOptions: any;\r\n trashButtonOptions: any;\r\n copyButtonOptions: any;\r\n exportImportButtonOptions: any;\r\n videoButtonOptions: any;\r\n blackquoteButtonOptions: any;\r\n databaseButtonOptions: any;\r\n formBackgroundFileUploadButtonOptions: any;\r\n\r\n setToolbarContext() {\r\n this.formColor = this.formColor ? this.formColor : \"#ffffff\";\r\n let _this = this;\r\n\r\n\r\n this.menuButtonOptions = {\r\n icon: 'menu',\r\n onClick: () => this.drawer.instance.toggle()\r\n }\r\n\r\n this.preferencesButtonOptions = {\r\n icon: 'preferences',\r\n text: this.languageLocal.events, //languagelocal DB'den tr ing ceviri \r\n onClick: () => this.getPreferences()\r\n }\r\n\r\n this.plusButtonOptions = {\r\n icon: 'plus',\r\n text: this.languageLocal.new,\r\n onClick: () => this.createForm()\r\n }\r\n\r\n this.saveButtonOptions = {\r\n icon: 'save',\r\n text: this.languageLocal.save,\r\n onClick: () => this.openSavePopup()\r\n }\r\n\r\n this.undoButtonOptions = {\r\n icon: 'undo',\r\n text: this.languageLocal.undo,\r\n disabled: () => this.disableUndo(),\r\n onClick: () => this.undo()\r\n }\r\n\r\n this.trashButtonOptions = {\r\n icon: 'trash',\r\n text: this.languageLocal.delete,\r\n onClick: () => this.deleteForm()\r\n }\r\n\r\n this.copyButtonOptions = {\r\n icon: 'copy',\r\n text: this.languageLocal.copy,\r\n onClick: () => this.copyFormPopup()\r\n }\r\n\r\n this.exportImportButtonOptions = {\r\n icon: 'sorted',\r\n text: this.languageLocal.exportImport,\r\n onClick: () => this.exportImportForm()\r\n }\r\n\r\n this.videoButtonOptions = {\r\n icon: 'video',\r\n text: this.languageLocal.preview,\r\n onClick: () => this.openPreviewPopup()\r\n }\r\n\r\n this.blackquoteButtonOptions = {\r\n icon: 'blockquote',\r\n text: \"JSON\",\r\n onClick: () => this.openJsonPopup()\r\n }\r\n\r\n this.formBackgroundFileUploadButtonOptions = {\r\n icon: 'upload',\r\n text: this.languageLocal.uploadBg,\r\n onClick: () => this.openShowFormBackgroundFileUploadPopup()\r\n }\r\n\r\n this.databaseButtonOptions = {\r\n icon: 'info',\r\n visible: this.getDbVisible(),\r\n disabled: true,\r\n text: this.getDbName() + \" - \" + this.currentApplicationVersion,\r\n }\r\n\r\n /*\r\n this.toolbarContent = [{\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'menu',\r\n onClick: () => this.drawer.instance.toggle()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'preferences',\r\n text: 'Preferences',\r\n onClick: () => this.getPreferences()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'plus',\r\n text: \"New\",\r\n onClick: () => this.createForm()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'save',\r\n text: \"Save\",\r\n onClick: () => this.openSavePopup()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'undo',\r\n text: \"Undo\",\r\n disabled: () => this.disableUndo(),\r\n onClick: () => this.undo()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'trash',\r\n text: \"Delete\",\r\n onClick: () => this.deleteForm()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'copy',\r\n text: \"Copy\",\r\n onClick: () => this.copyFormPopup()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'video',\r\n text: \"Overview\",\r\n onClick: () => this.openPreviewPopup()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'before',\r\n options: {\r\n icon: 'blockquote',\r\n text: \"JSON\",\r\n onClick: () => this.openJsonPopup()\r\n }\r\n },\r\n {\r\n widget: 'dxButton',\r\n location: 'after',\r\n visible: this.getDbVisible(),\r\n options: {\r\n visible: this.getDbVisible(),\r\n disabled: true,\r\n text: this.getDbName() + \" - \" + this.currentApplicationVersion,\r\n }\r\n },\r\n /*,\r\n {\r\n widget: 'dxColorBox',\r\n location: 'after',\r\n options: {\r\n value: this.formColor,\r\n onValueChanged(args) {\r\n\r\n if (args.value) {\r\n _this.formColor = args.value;\r\n }\r\n // else {\r\n // this.formColor = \"#ffffff\";\r\n //} \r\n }\r\n }\r\n }\r\n ];\r\n */\r\n }\r\n clearCopyPopup() {\r\n this.copyForm.name = \"\";\r\n this.copyForm.description = \"\";\r\n this.copyForm.variableName = \"\";\r\n this.copyForm.category.parent = 0;\r\n this.copyForm.category.sub = 0;\r\n }\r\n CopyPopupTitle = \"\";\r\n showCopyPopup = false;\r\n emailValue: any = \"\";\r\n copyForm = {\r\n name: \"\",\r\n description: \"\",\r\n variableName: \"\",\r\n category: { parent: 0, sub: 0, isGeneric: true }\r\n };\r\n copyFormPopup() {\r\n this.CopyPopupTitle = this.componentService.currentForm.name != \"\" ? this.languageLocal.formCopy + ' \"' + this.componentService.currentForm.name + '\"' : this.languageLocal.formCopy;\r\n this.taskService.getCategoryList().subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n this.categoryList = result;\r\n if (this.componentService.currentForm.formId > 0) {\r\n if (this.componentService.currentForm.categoryId > 0) {\r\n let cat = result.find(f => f.id == this.componentService.currentForm.categoryId);\r\n if (cat) {\r\n this.copyForm.category.parent = this.componentService.currentForm.categoryId;\r\n }\r\n else {\r\n for (let i = 0; i < result.length; i++) {\r\n var item = result[i].items.find(f => f.id == this.componentService.currentForm.categoryId);\r\n if (item) {\r\n this.copyForm.category.parent = this.componentService.currentForm.categoryId;\r\n this.subCategoryList = result[i].items;\r\n this.copyForm.category.sub = item.id;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.copyForm.category.isGeneric = false;\r\n }\r\n else {\r\n this.copyForm.category.isGeneric = true;\r\n }\r\n }\r\n else {\r\n this.copyForm.category.parent = 0;\r\n this.subCategoryList = [];\r\n this.copyForm.category.sub = 0;\r\n this.copyForm.category.isGeneric = false;\r\n }\r\n }\r\n else {\r\n this.copyForm.category.parent = 0;\r\n this.subCategoryList = [];\r\n this.copyForm.category.sub = 0;\r\n this.copyForm.category.isGeneric = false;\r\n }\r\n\r\n this.showCopyPopup = true;\r\n });\r\n }\r\n\r\n ExportImportPopupTitle = \"\";\r\n formExportTextError = \"\";\r\n formImportTextError = \"\";\r\n exportImportFormPopup = false;\r\n exportButtonDisable = true;\r\n exportFileStr = \"\";\r\n exportFormFileName = \"\";\r\n exportImportForm() {\r\n debugger;\r\n if (this.componentService.currentForm.components.length <= 0 || this.componentService.currentForm.formId <= 0)\r\n this.formExportTextError = \"
Forma eklenen komponent yok ya da form kaydedilmemiş. İşlemin hatalı çalışmaması için lütfen bu sorunu düzeltiniz.
\";\r\n else\r\n this.formExportTextError = \"\";\r\n\r\n //this.formImportTextError = \"
UYARI: Yüklemek istediğiniz satır sayısının fazla olması durumunda, internet tarayıcınızda (BEKLE) uyarısı gelebilir. Bu durumda ekranı kapatmayınız ve lütfen bekleyiniz.
\";\r\n\r\n this.ExportImportPopupTitle = this.componentService.currentForm.name != \"\" ? (\"Form\" + this.languageLocal.export + \" / \" + this.languageLocal.import) + ' \"' + this.componentService.currentForm.name + '\"' : (\"Form\" + this.languageLocal.export + \" / \" + this.languageLocal.import);\r\n\r\n let currentFormJsonStr = JSON.stringify(this.componentService.currentForm);\r\n this.exportImportFormPopup = true;\r\n\r\n this.formService.formExport(currentFormJsonStr).subscribe((result: any) => {\r\n debugger;\r\n if (result && result.fileData) {\r\n //let textFile = null,\r\n // makeTextFile = function (text) {\r\n // var data = new Blob([text], { type: 'text/plain' });\r\n // if (textFile !== null) {\r\n // window.URL.revokeObjectURL(textFile);\r\n // }\r\n\r\n // textFile = window.URL.createObjectURL(data);\r\n\r\n // return textFile;\r\n // };\r\n\r\n //makeTextFile(result);\r\n\r\n var dataBlob = new Blob([result.fileData], { type: 'text/plain' });\r\n this.exportFileStr = window.URL.createObjectURL(dataBlob);\r\n this.exportFormFileName = (this.componentService.currentForm.name != \"\" ? this.componentService.currentForm.name : \"empty\") + \".rfe\";\r\n this.exportButtonDisable = false;\r\n }\r\n else {\r\n this.exportButtonDisable = true;\r\n this.exportFileStr = \"\";\r\n }\r\n }, err => {\r\n debugger;\r\n this.exportFileStr = \"\";\r\n this.exportButtonDisable = true;\r\n console.log(err);\r\n });\r\n //let reg = new RegExp(/\"connectionId\":\\d/gm)\r\n //let regexResults = currentFormJsonStr.match(reg);\r\n //let connections = [];\r\n //regexResults.forEach(regexResult => {\r\n // if (connections.indexOf(regexResult.replace(\"\\\"connectionId\\\":\", \"\")) == -1)\r\n // connections.push(regexResult.replace(\"\\\"connectionId\\\":\", \"\"));\r\n //});\r\n //let connectionsStr = connections.join(\",\");\r\n\r\n //console.log(connectionsStr);\r\n //this.exportImportFormPopup = true;\r\n\r\n\r\n }\r\n downloadExportButtonDisable() {\r\n let myStyles = {\r\n 'cursor': 'not-allowed',//this.minPopopWidth,\r\n 'opacity': '0.5',\r\n 'text-decoration': 'none',\r\n 'pointer-events': 'none'\r\n };\r\n return this.exportButtonDisable ? myStyles : {};\r\n }\r\n\r\n @ViewChild(\"importFormFileElement\") importFormFileElement: ElementRef;\r\n importFormFile() {\r\n this.importFormFileElement.nativeElement.value = '';\r\n this.importFormFileElement.nativeElement.click();\r\n }\r\n\r\n formImportJson;\r\n connectionImportJson;\r\n connectionImportSelected = [];\r\n importFormFileElementChange(e) {\r\n\r\n let fr = new FileReader();\r\n let _this = this;\r\n fr.onload = function () {\r\n let formFile = fr.result;\r\n debugger;\r\n _this.formService.formFileControl(formFile).subscribe((result: any) => {\r\n debugger;\r\n if (result && result.success) {\r\n _this.connectionImportJson = JSON.parse(result.connectionJson);\r\n _this.formImportJson = result.formJson;\r\n _this.connectionImportSelected = [];\r\n for (let _i = 0; _i < _this.connectionImportJson.length; _i++) {\r\n _this.connectionImportSelected.push({ importId: _this.connectionImportJson[_i].id, currentId: \"\" });\r\n }\r\n try {\r\n let importMainConnIndex = _this.connectionImportJson.findIndex(x => x.main == \"True\");\r\n _this.connectionImportSelected[importMainConnIndex].currentId = _this.appInfo.RiverEntity.connections.find(x => x.isMainConn == \"True\").id\r\n } catch (ex) { };\r\n }\r\n else {\r\n }\r\n }, err => {\r\n debugger;\r\n });\r\n\r\n }\r\n\r\n fr.readAsText(e.target.files[0]);\r\n\r\n }\r\n\r\n importFormFileConfirm() {\r\n let msg = \"\" + this.languageLocal.messageNeworupdate + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n\r\n this.resetCurrentForm();\r\n this.isEdit = false;\r\n\r\n let changeForm = this.formImportJson;\r\n debugger;\r\n this.connectionImportSelected.forEach(connectionImport => {\r\n changeForm = this.componentService.replaceAll(changeForm, '\"connectionId\":' + connectionImport.importId, '\"connectionId\":' + connectionImport.currentId);\r\n });\r\n let formLast = JSON.parse(changeForm);//.components;\r\n let comps = this.userAuthorizationClear(formLast.components);\r\n formLast.components = comps;\r\n\r\n debugger;\r\n this.componentService.currentForm.name = formLast.name;\r\n this.componentService.currentForm.description = formLast.description;\r\n this.componentService.currentForm.variableName = formLast.variableName;\r\n\r\n if (typeof formLast.category == \"undefined\") formLast.category = { parent: 0, sub: 0, isGeneric: true };\r\n if (this.componentService.currentForm.categoryId > 0) {\r\n this.category.parent = formLast.category.parent;\r\n this.category.sub = formLast.category.sub;\r\n }\r\n else {\r\n this.category = { parent: 0, sub: 0, isGeneric: true };\r\n }\r\n\r\n this.componentService.currentForm = formLast;\r\n this.componentService.usedForms = [];\r\n this.componentService.menuFormNodeOptions = [];\r\n\r\n this.saveForm(this.saveFormType.import);\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n userAuthorizationClear(components) {\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].permissions) {\r\n components[i].permissions = { readonlyGroup: [], readonlyUsers: [], hideGroup: [], hideUsers: [] };//readonlyGroup hideGroup readonlyUsers hideUsers\r\n }\r\n if (components[i].type == \"grid\" || components[i].type == \"gallery\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n components[i].rows[j].permissions = { readonlyGroup: [], readonlyUsers: [], hideGroup: [], hideUsers: [] };\r\n if (components[i].type == \"grid\") {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.userAuthorizationClear(components[i].rows[j].cols[k].components);\r\n }\r\n }\r\n }\r\n }\r\n else if (components[i].type == \"panel\" || components[i].type == \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n components[i].items[j].permissions = { readonlyGroup: [], readonlyUsers: [], hideGroup: [], hideUsers: [] };\r\n this.userAuthorizationClear(components[i].items[j].components);\r\n }\r\n }\r\n //else if (components[i].type == \"menu\" && currentFormSelected.menuComponents) {\r\n // for (let m = 0; m < currentFormSelected.menuComponents.length; m++) {\r\n // this.createComponentList(currentFormSelected.menuComponents[m], anotherPopupId);\r\n // if (currentFormSelected.menuComponents[m].type == \"grid\") {\r\n // for (let j = 0; j < currentFormSelected.menuComponents[m].rows.length; j++) {\r\n // for (let k = 0; k < currentFormSelected.menuComponents[m].rows[j].cols.length; k++) {\r\n // this.createComponentList(currentFormSelected.menuComponents[m].rows[j].cols[k].components, anotherPopupId);\r\n // }\r\n // }\r\n // }\r\n // else if (currentFormSelected.menuComponents[m].type == \"panel\" || currentFormSelected.menuComponents[m].type == \"tabs\") {\r\n // for (let j = 0; j < this.currentForm.menuComponents[m].items.length; j++) {\r\n // this.createComponentList(currentFormSelected.menuComponents[m].items[j].components, anotherPopupId);\r\n // }\r\n // }\r\n // }\r\n //}\r\n }\r\n return components;\r\n }\r\n\r\n showPreviewPopup: boolean = false;\r\n showJsonPopup: boolean = false;\r\n\r\n showFormBackgroundFileUploadPopup: boolean = false;\r\n uploadedFiles: any = [];\r\n\r\n openJsonPopup() {\r\n this.showJsonPopup = true;\r\n }\r\n\r\n closeJsonPopup() {\r\n this.showJsonPopup = false;\r\n }\r\n\r\n openPreviewPopup() {\r\n this.previewFormStyle = this.getPreviewFormStyle()\r\n this.showPreviewPopup = true;\r\n this.render();\r\n }\r\n\r\n closePreviewPopup() {\r\n this.previewFormStyle = {\r\n 'background': this.formColor,\r\n 'padding': '20px'\r\n };\r\n this.showPreviewPopup = false;\r\n this.reset();\r\n }\r\n\r\n openShowFormBackgroundFileUploadPopup() {\r\n this.previewFormStyle = this.getPreviewFormStyle()\r\n this.showFormBackgroundFileUploadPopup = true;\r\n }\r\n\r\n closeShowFormBackgroundFileUploadPopup() {\r\n this.showFormBackgroundFileUploadPopup = false;\r\n }\r\n\r\n previewFormStyle: any = {\r\n 'background': this.formColor,\r\n 'padding': '20px'\r\n };\r\n\r\n copyFormSave() {\r\n this.componentService.currentForm.name = this.copyForm.name;\r\n this.componentService.currentForm.description = this.copyForm.description;\r\n this.componentService.currentForm.variableName = this.copyForm.variableName;\r\n this.category.parent = this.copyForm.category.parent;\r\n this.category.sub = this.copyForm.category.sub;\r\n\r\n this.saveForm(this.saveFormType.copy);\r\n }\r\n onKeyPress(e) {\r\n\r\n let keyCode = e.event.key;\r\n this.componentService.currentForm.variableName = \"\";\r\n this.emailValue = \"\";\r\n }\r\n\r\n public arrayColors: any = {\r\n color1: '#2883e9',\r\n color2: '#e920e9',\r\n color3: 'rgb(255,245,0)',\r\n color4: 'rgb(236,64,64)',\r\n color5: 'rgba(45,208,45,1)'\r\n };\r\n\r\n public selectedColor: string = '#2889e9';\r\n\r\n public color1: string = '#2889e9';\r\n public color2: string = '#e920e9';\r\n\r\n ngOnInit() {\r\n this.authService.isFormBuilder = true;\r\n // this.languageCode = this.componentService.languageCode;\r\n //this.lang = this.componentService.languageCode;\r\n this.componentList = this.componentService.componentList;\r\n this.componentList.unshift({ group: \"Form\" })\r\n this.getFormList();\r\n this.invokeFunctions();\r\n this.pushHistory(this.componentService.currentForm);\r\n debugger\r\n this.setToolbarContext();\r\n console.log(this.componentService.currentForm.language)\r\n console.log(this.componentService.currentForm)\r\n\r\n if (typeof this.componentService.currentForm.language == \"undefined\") {\r\n this.componentService.currentForm.language = {\r\n \"ENEN\": \"\",\r\n \"TRTR\": \"\",\r\n }\r\n } else {\r\n let find = this.componentService.currentForm.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n // console.log(find+\"--\"+find.name+\"--\"+find.Title)\r\n // find.title = find.Title\r\n // console.log(find + \"--\" + find.name + \"--\" + find.Title)\r\n\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n ngAfterViewChecked() {\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n } catch (ex) {\r\n console.log(\"River Error : \" + ex.toString())\r\n }\r\n }\r\n\r\n getFormStyle() {\r\n if (this.formBackgroundExtension && this.formBackground) {\r\n let mimetype = this.globalService.getMimeType(this.formBackgroundExtension)\r\n let val = \"data:\" + mimetype + \";base64,\" + this.formBackground;\r\n //console.log(val)\r\n let myStyles = {\r\n 'min-height': \"calc(100vh - 100px)\",\r\n 'background-image': \"url(\" + val + \")\",\r\n 'background-size': \"cover\",\r\n 'background-repeat': \"no-repeat\",\r\n 'background-position': \"center\",\r\n 'background-color': this.formColor\r\n };\r\n return myStyles;\r\n }\r\n let myStyles = {\r\n 'min-height': \"calc(100vh - 100px)\",\r\n 'background': this.formColor,\r\n };\r\n return myStyles;\r\n }\r\n\r\n getPreviewFormStyle() {\r\n if (this.formBackgroundExtension && this.formBackground) {\r\n let mimetype = this.globalService.getMimeType(this.formBackgroundExtension)\r\n let val = \"data:\" + mimetype + \";base64,\" + this.formBackground;\r\n //console.log(val)\r\n let myStyles = {\r\n 'background-image': \"url(\" + val + \")\",\r\n 'background-size': \"cover\",\r\n 'background-repeat': \"no-repeat\",\r\n 'background-position': \"center\",\r\n 'background-color': this.formColor,\r\n 'padding': '20px',\r\n };\r\n return myStyles;\r\n }\r\n let myStyles = {\r\n 'min-height': \"calc(100vh - 100px)\",\r\n 'background': this.formColor,\r\n 'padding': '20px',\r\n };\r\n return myStyles;\r\n }\r\n\r\n invokeFunctions() {\r\n this.eventEmitterService.invokeHistoryFunction.subscribe(sub => {\r\n if (sub.action === this.componentService.historyActions.save) {\r\n\r\n this.pushHistory(this.componentService.currentForm);\r\n }\r\n else if (sub.action === this.componentService.historyActions.undo) {\r\n this.undo();\r\n }\r\n });\r\n this.eventEmitterService.invokeFormChangesFunction.subscribe((name: string) => {\r\n this.componentService.evulateExpretion(this.componentService.currentForm.Expretion);\r\n });\r\n this.eventEmitterService.invokeLayoutChangeFunction.subscribe((name: string) => {\r\n debugger;\r\n //this.getCdkList();\r\n });\r\n }\r\n\r\n //changeFormColor(args) {\r\n // \r\n // this.formColor = args.value;\r\n //}\r\n\r\n createForm() {\r\n //let msg = \"Var olan form üzerinde yaptığınız değişiklikler silenecektir. Devam edilsin mi? \";\r\n let msg = \"\" + this.languageLocal.messageNeworupdate + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.resetCurrentForm();\r\n this.isEdit = false;\r\n }\r\n });\r\n }\r\n\r\n itemClickAccordion(e) {\r\n console.log(e)\r\n if (!(e.component.shouldNotStop)) {\r\n e.component.shouldNotStop = true;\r\n e.component.option(\"selectedItem\", this.componentList);\r\n e.removedItems = [];\r\n e.component.shouldNotStop = false;\r\n }\r\n };\r\n\r\n editForm(e) {\r\n\r\n if (e.itemData.isScheme) {\r\n if (this.componentService.currentForm && this.componentService.currentForm.components.length > 0) {\r\n //let msg = \"Var olan form üzerinde yaptığınız değişiklikler silenecektir. Devam edilsin mi? \";\r\n let msg = \"\" + this.languageLocal.messageNeworupdate + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.removeCustomStyle();\r\n this.formService.getSingleForm(e.itemData.id).subscribe((result: any) => {\r\n\r\n this.componentService.currentForm = JSON.parse(result.forM_JSON);\r\n this.componentService.currentForm.formId = result.id;\r\n this.componentService.currentForm.categoryId = result.categorY_ID;\r\n this.pushHistory(this.componentService.currentForm);\r\n\r\n this.formColor = result.formcolor;\r\n this.formBackground = result.forM_BACKGROUND_FILE\r\n this.formBackgroundExtension = result.forM_BACKGROUND_FILE_EXTENSION\r\n\r\n\r\n this.setToolbarContext();\r\n\r\n this.componentService.currentSystemInfo = [];\r\n\r\n if (typeof result.usedforms != \"undefined\")\r\n this.componentService.usedForms = result.usedforms != null ? result.usedforms.split(\",\") : [];\r\n else if (typeof result.usedForms != \"undefined\")\r\n this.componentService.usedForms = result.usedforms != null ? result.usedForms.split(\",\") : [];\r\n\r\n if (typeof this.componentService.currentForm.language == \"undefined\") {\r\n this.componentService.currentForm.language = [{ \"Code\": \"trTR\", \"Title\": this.componentService.currentForm.name }]\r\n } else {\r\n let find = this.componentService.currentForm.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n // find.title = find.Title\r\n }\r\n }\r\n });\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n }\r\n else {\r\n this.removeCustomStyle();\r\n this.formService.getSingleForm(e.itemData.id).subscribe((result: any) => {\r\n\r\n this.componentService.currentForm = JSON.parse(result.forM_JSON);\r\n this.formColor = result.formcolor;\r\n this.formBackground = result.forM_BACKGROUND_FILE\r\n this.formBackgroundExtension = result.forM_BACKGROUND_FILE_EXTENSION\r\n\r\n\r\n this.setToolbarContext();\r\n\r\n this.componentService.currentForm.formId = result.id;\r\n this.componentService.currentForm.categoryId = result.categorY_ID;\r\n this.pushHistory(this.componentService.currentForm);\r\n\r\n\r\n this.componentService.currentSystemInfo = [];\r\n\r\n if (typeof result.usedforms != \"undefined\")\r\n this.componentService.usedForms = result.usedforms != null ? result.usedforms.split(\",\") : [];\r\n else if (typeof result.usedForms != \"undefined\")\r\n this.componentService.usedForms = result.usedforms != null ? result.usedForms.split(\",\") : [];\r\n\r\n if (typeof this.componentService.currentForm.language == \"undefined\") {\r\n this.componentService.currentForm.language = [{ \"Code\": \"trTR\", \"Title\": this.componentService.currentForm.name }]\r\n } else {\r\n let find = this.componentService.currentForm.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n //find.name = find.Title\r\n }\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n deleteForm() {\r\n if (this.componentService.currentForm.components.length > 0) {\r\n let result = confirm(\"\" + this.languageLocal.messageDelete + \"\", this.languageLocal.confirmChanges);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n if (this.componentService.currentForm.formId > 0) {\r\n this.formService.deleteForm(this.componentService.currentForm.formId).subscribe(result => {\r\n if (result) {\r\n this.showToast(this.languageLocal.toastDeleted, \"success\");\r\n this.getFormList();\r\n this.resetCurrentForm();\r\n } else {\r\n this.showToast(this.languageLocal.toastError, \"error\");\r\n }\r\n\r\n }, err => this.errorHandler(err));\r\n }\r\n else {\r\n this.resetCurrentForm();\r\n }\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n tabPrefSelectG = \"formOpen\";\r\n tabFormPrefSelectChanged(event) {\r\n debugger;\r\n this.tabPrefSelectG = event.addedItems[0].name;\r\n }\r\n checkUser(userName: string, password: string) {\r\n console.log(this.appInfo.currentUser)\r\n let params = new HttpParams().set(\"userName\", userName).set(\"password\", password);\r\n this.http.get(this.appInfo.appUrl + \"api/auth/login\", { params: params }).subscribe((entity: any) => {\r\n\r\n if (entity.isConnect && entity.currentUser.isDesigner) {\r\n console.log(entity)\r\n this.connections = entity.connections\r\n this.setToolbarContext();\r\n this.appInfo.RiverEntity = entity;\r\n this.appInfo.currentUser = entity.currentUser;\r\n } else if (entity.isConnect && !entity.isDesigner) {\r\n this.router.navigateByUrl('/');\r\n this.showToast(this.languageLocal.toastUserpermission, \"warning\");\r\n } else {\r\n this.router.navigateByUrl('/');\r\n this.showToast(entity.message, \"warning\");\r\n }\r\n });\r\n }\r\n\r\n getFormList() {\r\n this.formService.getGroupedForms().subscribe(forms => {\r\n console.log(forms);\r\n this.formList = forms;\r\n this.formList.forEach(list => {\r\n list.items.forEach(el => {\r\n if (typeof el.languages != \"undefined\" && el.languages != \"\") {\r\n let languages = JSON.parse(el.languages)\r\n let find = languages.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n el.name = find.Title\r\n }\r\n }\r\n })\r\n })\r\n\r\n })\r\n }\r\n\r\n openSavePopup() {\r\n this.taskService.getCategoryList().subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n this.categoryList = result;\r\n if (this.componentService.currentForm.formId > 0) {\r\n if (this.componentService.currentForm.categoryId > 0) {\r\n let cat = result.find(f => f.id == this.componentService.currentForm.categoryId);\r\n if (cat) {\r\n this.category.parent = this.componentService.currentForm.categoryId;\r\n }\r\n else {\r\n for (let i = 0; i < result.length; i++) {\r\n var item = result[i].items.find(f => f.id == this.componentService.currentForm.categoryId);\r\n if (item) {\r\n this.category.parent = this.componentService.currentForm.categoryId;\r\n this.subCategoryList = result[i].items;\r\n this.category.sub = item.id;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.category.isGeneric = false;\r\n }\r\n else {\r\n this.category.isGeneric = true;\r\n }\r\n }\r\n else {\r\n this.category.parent = 0;\r\n this.subCategoryList = [];\r\n this.category.sub = 0;\r\n this.category.isGeneric = false;\r\n }\r\n }\r\n else {\r\n this.category.parent = 0;\r\n this.subCategoryList = [];\r\n this.category.sub = 0;\r\n this.category.isGeneric = false;\r\n }\r\n let find = this.componentService.currentForm.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n this.componentService.currentForm.name = find.Title\r\n }\r\n this.showSavePopup = true;\r\n });\r\n }\r\n\r\n onCategoryValueChanged(id) {\r\n let category = this.categoryList.find(f => f.id == id);\r\n if (category) this.subCategoryList = category.items;\r\n else this.subCategoryList = [];\r\n }\r\n\r\n dragStart(field) {\r\n this.onDragClass = \"active\";\r\n localStorage.setItem(\"currentField\", JSON.stringify(field));\r\n }\r\n\r\n onDragEnded(event: CdkDragEnd): void {\r\n debugger;\r\n this.onDragClass = \"\";\r\n }\r\n\r\n cdkDrop(event: CdkDragDrop) {\r\n debugger;\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n }\r\n else {\r\n let type = event.previousContainer.element.nativeElement.dataset.type;\r\n if (type && type == \"copy\") {\r\n let currentField: any = JSON.parse(localStorage.getItem(\"currentField\"));\r\n //localStorage.removeItem(key);localStorage.clear();\r\n currentField.id = this.componentService.createId(currentField.type, this.componentService.currentForm.components, 0);\r\n if (currentField.type == \"codeditor\") {\r\n if (currentField.id == \"codeditor1\") this.componentService.currentForm.components.splice(this.componentService.currentForm.components.length, 0, currentField);\r\n else this.showToast(this.languageLocal.toastCodeeditor, \"warning\");\r\n }\r\n else this.componentService.currentForm.components.splice(event.currentIndex, 0, currentField);\r\n\r\n if (currentField.type == \"grid\" || currentField.type == \"panel\" || currentField.type == \"tabs\") {\r\n this.componentService.createCdkList(0);\r\n }\r\n localStorage.removeItem(\"currentField\");\r\n\r\n /*copyArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex);*/\r\n }\r\n else {\r\n transferArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex);\r\n }\r\n this.onDragClass = \"\";\r\n }\r\n\r\n this.pushHistory(this.componentService.currentForm);\r\n }\r\n\r\n\r\n itemClick(e, item) {\r\n if (e.itemData.action == \"edit\") {\r\n this.eventEmitterService.showPopop(item.uuid);\r\n //item.showEditPop = true;\r\n }\r\n else if (e.itemData.action == \"delete\") {\r\n let msg = item.type == \"grid\" || item.type == \"panel\" ? \"\" + this.languageLocal.messageDeletesure + \"\" : \"\" + this.languageLocal.messageSure + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) this.removeField(item);\r\n });\r\n }\r\n }\r\n\r\n removeField(item) {\r\n this.componentService.currentForm.components.splice(this.componentService.currentForm.components.indexOf(item), 1);\r\n this.pushHistory(this.componentService.currentForm);\r\n this.showToast(this.languageLocal.toastDeleted, \"success\");\r\n }\r\n toggleValue(item) {\r\n item.selected = !item.selected;\r\n }\r\n\r\n pushHistory(data) {\r\n let cloneData = this.componentService.cloneModel(data);\r\n this.history.push(cloneData);\r\n\r\n }\r\n\r\n disableUndo(): boolean {\r\n return this.history.length < 2;\r\n }\r\n\r\n undo() {\r\n if (this.history.length > 1) {\r\n this.history.splice(this.history.length - 1, 1);\r\n this.componentService.currentForm = {};\r\n this.componentService.currentForm = this.history[this.history.length - 1];// this.componentService.cloneModel(this.history[this.history.length -1]);\r\n\r\n }\r\n else {\r\n this.resetCurrentForm();\r\n this.history[0] = this.componentService.currentForm;\r\n }\r\n }\r\n saveFormType = { \r\n normal: 0,\r\n copy: 1,\r\n import: 2 \r\n }\r\n saveForm(/*isCopy = false,isImport=false*/_type = this.saveFormType.normal) {\r\n const pattern = /[A-Za-z_]/;\r\n debugger;\r\n if (this.componentService.currentForm.components.length <= 0) {\r\n this.showToast(this.languageLocal.toastEmptyFormMessage, \"warning\");\r\n }\r\n else if (this.componentService.currentForm.name == \"\") {\r\n this.showToast(this.languageLocal.toastGiveName, \"warning\");\r\n }\r\n else if (this.componentService.currentForm.variableName == \"\") {\r\n this.showToast(this.languageLocal.toastGiveVariableName, \"warning\");\r\n }\r\n //ustteki ile ayni oldugundan comment satirina aldim\r\n // else if (this.componentService.currentForm.variableName == \"\") {\r\n // this.showToast(\"Lütfen formonuza bir değişken adı veriniz\", this.languageLocal.warning); }\r\n else if (!pattern.test(this.componentService.currentForm.variableName[0])) {\r\n this.showToast(this.languageLocal.toastVariableNameNumberWarning, \"warning\");\r\n }\r\n else {\r\n\r\n this.componentService.currentForm.data = [];\r\n this.createValuesData(this.componentService.currentForm.components);\r\n let formData = new FormModel();\r\n if (_type == this.saveFormType.copy || _type == this.saveFormType.import)\r\n formData.ID = 0;\r\n else\r\n formData.ID = this.componentService.currentForm.formId;\r\n formData.USER = this.appInfo.currentUser.id;\r\n formData.NAME = this.componentService.currentForm.name;\r\n formData.DESCRIPTION = this.componentService.currentForm.description;\r\n\r\n let curentFormFiles = this.componentService.getFilesComponentList(this.componentService.currentForm.components, 0);\r\n\r\n // PictureBox\r\n let pictureBoxComp = curentFormFiles.filter(x => x.type == \"picturebox\");\r\n let pictureBoxTemp = [];\r\n pictureBoxComp.forEach(pict => {\r\n let objPict = {\r\n valueTemp: pict.valueTemp,\r\n id: pict.id\r\n };\r\n pictureBoxTemp.push(objPict);\r\n pict.valueTemp = \"\";\r\n });\r\n\r\n formData.FORM_JSON = JSON.stringify(this.componentService.currentForm, null, 4);\r\n formData.FORM_VARIABLE = JSON.stringify(this.componentService.currentForm.data, null, 4);\r\n\r\n pictureBoxTemp.forEach(pict => {\r\n let pictureBoxCompTemp = curentFormFiles.find(x => x.id == pict.id);\r\n pictureBoxCompTemp.valueTemp = pict.valueTemp;\r\n });\r\n\r\n // Signature\r\n let signatureComp = curentFormFiles.filter(x => x.type == \"signature\");\r\n let signatureTemp = [];\r\n signatureComp.forEach(pict => {\r\n let objPict = {\r\n valueTemp: pict.valueTemp,\r\n id: pict.id\r\n };\r\n signatureTemp.push(objPict);\r\n pict.valueTemp = \"\";\r\n });\r\n\r\n signatureTemp.forEach(pict => {\r\n let signatureCompTemp = curentFormFiles.find(x => x.id == pict.id);\r\n signatureCompTemp.valueTemp = pict.valueTemp;\r\n });\r\n\r\n\r\n formData.ISMENU = this.componentService.currentForm.components.filter(x => x.type == \"menu\").length > 0;\r\n\r\n formData.USEDFORMS = this.componentService.usedForms.toString();\r\n\r\n\r\n formData.MENUOPTIONS = JSON.stringify(this.componentService.menuFormNodeOptions);\r\n formData.FORMCOLOR = this.formColor;\r\n formData.FORM_BACKGROUND_FILE = (this.formBackground && this.formBackgroundExtension) ? this.formBackground.replace(/^data:image\\/[a-z]+;base64,/, \"\") : null;;\r\n formData.FORM_BACKGROUND_FILE_EXTENSION = (this.formBackground && this.formBackgroundExtension) ? this.formBackgroundExtension : null;\r\n\r\n\r\n if (this.category.isGeneric) formData.CATEGORY_ID = 0;\r\n else if (this.category.sub && this.category.sub > 0) formData.CATEGORY_ID = this.category.sub;\r\n else if (this.category.parent && this.category.parent > 0) formData.CATEGORY_ID = this.category.parent;\r\n else formData.CATEGORY_ID = 0;\r\n\r\n\r\n if (this.componentService.currentForm.formId > 0 && _type == this.saveFormType.normal) {\r\n this.formService.updateForm(formData, this.appInfo.currentUser.id).subscribe((result: any) => {\r\n\r\n if (result > 0) {\r\n this.showToast(this.languageLocal.toastFormupdate, \"success\");\r\n this.showSavePopup = false;\r\n this.getFormList();\r\n } else {\r\n this.showToast(this.languageLocal.toastMistake, \"error\");\r\n }\r\n\r\n }, err => this.errorHandler(err));\r\n }\r\n else {\r\n formData.ID = 0;\r\n this.formService.saveForm(formData).subscribe((result: any) => {\r\n\r\n if (result > 0) {\r\n this.resetCurrentForm();\r\n //this.componentService.currentForm.id = result;\r\n if (_type == this.saveFormType.copy ) {\r\n this.showToast(this.languageLocal.toastCopied, \"success\");\r\n this.showCopyPopup = false;\r\n } else if (_type == this.saveFormType.import) {\r\n this.showToast(this.languageLocal.toastImport, \"success\");\r\n this.exportImportFormPopup = false;\r\n } else {\r\n this.showToast(this.languageLocal.toastSaved, \"success\");\r\n this.showSavePopup = false;\r\n }\r\n this.getFormList();\r\n } else {\r\n this.showToast(this.languageLocal.toastMistake, \"error\");\r\n }\r\n\r\n }, err => this.errorHandler(err));\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n createValuesData(components) {\r\n debugger;\r\n //console.log(this.componentService.currentSystemInfo);\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].isInput == true\r\n || components[i].inputType == \"datagrid\"\r\n || components[i].inputType == \"file\"\r\n || components[i].inputType == \"menu\"\r\n || components[i].inputType == \"map\"\r\n || components[i].type == \"gallery\"\r\n || components[i].type == \"codeeditor\"\r\n || components[i].type == \"htmleditor\"\r\n || components[i].type == \"comment\") {\r\n var obj: any = {};\r\n obj[\"key\"] = components[i].id;\r\n obj[\"value\"] = components[i].value;\r\n obj[\"type\"] = components[i].inputType;\r\n obj[\"componentType\"] = components[i].type;\r\n\r\n obj[\"isAuto\"] = components[i].isAuto;\r\n obj[\"autoText\"] = components[i].autoText;\r\n\r\n\r\n\r\n if (components[i].type == \"livestream\") {\r\n\r\n obj[\"meetingType\"] = components[i].meetingType;\r\n }\r\n if (components[i].type == \"button\") {\r\n\r\n // let selectedButton = components[i];//.find(x => x.property.name == this.buttonNameGlobal);\r\n obj[\"name\"] = components[i].nameValue;\r\n //obj[\"isLiveWeb\"] = false;// selectedButton.isLiveWeb;\r\n //obj[\"liveWeb\"] = { isCreateLiveWeb: true, urlHost: \"\", urlParticipant: \"\" };//selectedButton.liveWeb;\r\n }\r\n if (components[i].type == \"textbox\") {\r\n\r\n let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == obj[\"key\"]);\r\n obj[\"isSystemInfo\"] = components[i].systemInfoId != 0 ? true : false;\r\n console.log(systemInfoTemp);\r\n try { obj[\"value\"] = components[i].systemInfoId != 0 ? systemInfoTemp.value.value : obj[\"value\"]; } catch (ex){}\r\n }\r\n\r\n\r\n if (components[i].inputType == \"datagrid\") {\r\n\r\n var gridVal = [] //components[i].value;\r\n components[i].value = []\r\n var lastId = gridVal.length > 0 ? gridVal[gridVal.length - 1].ID : 0;\r\n obj[\"lastid\"] = lastId;\r\n\r\n var headerAndType = this.getGridHeaders(components[i]);\r\n obj[\"headers\"] = headerAndType.headers;\r\n obj[\"headerTypes\"] = headerAndType.headerTypes;\r\n obj[\"rowCount\"] = components[i].value.length;\r\n obj[\"selectedRowCount\"] = components[i].selectedRows;\r\n obj[\"userChangeColumns\"] = components[i].userChangeColumns;\r\n }\r\n else if (components[i].type == \"map\") {\r\n obj[\"markers\"] = components[i].markers;\r\n }\r\n else {\r\n obj[\"markers\"] = [];\r\n obj[\"headers\"] = \"\";\r\n obj[\"headerTypes\"] = \"\";\r\n obj[\"rowCount\"] = 0;\r\n obj[\"selectedRowCount\"] = 0;\r\n obj[\"userChangeColumns\"] = [];\r\n }\r\n this.componentService.currentForm.data.push(obj);\r\n }\r\n else if (components[i].type == \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.createValuesData(components[i].rows[j].cols[k].components);\r\n }\r\n }\r\n }\r\n else if (components[i].type == \"panel\" || components[i].type == \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.createValuesData(components[i].items[j].components);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getGridHeaders(grid) {\r\n let headers = [];\r\n let headerTypes = [];\r\n\r\n grid.headers.forEach(header => {\r\n\r\n var obj: any = {};\r\n //if (header.type != \"file\") {\r\n headers.push(header.field);\r\n headerTypes.push(header.type);\r\n //}\r\n });\r\n return { headers: headers.join(\",\"), headerTypes: headerTypes.join(\",\") };\r\n }\r\n\r\n\r\n resetCurrentForm() {\r\n this.componentService.currentForm = {\r\n formId: 0,\r\n user: '',\r\n name: '',\r\n description: '',\r\n permitions: '',\r\n expretion: '',\r\n components: [],\r\n data: [],\r\n preferences: { formOpenedEvents: [], formOpenedMultiElementEvents: [] },\r\n language: [\r\n { \"Code\": \"trTR\", \"Title\": \"Form Adı\" }\r\n ],\r\n };\r\n this.currentIndex = 0;\r\n this.history = [];\r\n this.uploadedFiles = [];\r\n this.formBackground = null;\r\n this.formBackgroundExtension = null\r\n\r\n this.removeCustomStyle();\r\n\r\n this.componentService.currentSystemInfo = [];\r\n }\r\n\r\n removeCustomStyle() {\r\n document.querySelectorAll(\".style-dynamic\").forEach(_doc => {\r\n try {\r\n _doc.remove();\r\n } catch (ex) { }\r\n });\r\n }\r\n\r\n minPopopWidth = \"90%\";\r\n render() {\r\n localStorage.setItem(\"renderFormComponents\", JSON.stringify(this.componentService.currentForm.components));\r\n this.renderData = JSON.parse(localStorage.getItem(\"renderFormComponents\"));\r\n this.componentService.checkUserAuthorization(false, this.renderData, this.appInfo.currentUser.id, 0)\r\n this.isRender = true;\r\n }\r\n\r\n reset() {\r\n this.isRender = false;\r\n this.renderData = [];\r\n localStorage.removeItem(\"renderFormComponents\");\r\n this.eventEmitterService.setColumnSumToComponent(\"sys_re_set_val\", 0);\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n errorMessage = error.error instanceof ErrorEvent ? error.error.message : 'Error Code: ${error.status}\\nMessage: ${error.message}';\r\n console.log(errorMessage);\r\n this.showToast(errorMessage, \"error\");\r\n }\r\n\r\n valueChangedVariableName($event) {\r\n this.componentService.currentForm.variableName = this.replaceSpecialChars(this.componentService.currentForm.variableName);\r\n }\r\n\r\n replaceSpecialChars(str) {\r\n //if (typeof str == \"undefined\") return \"\"\r\n var specialChars = [\r\n [\"ş\", \"s\"],\r\n [\"ğ\", \"g\"],\r\n [\"ü\", \"u\"],\r\n [\"ı\", \"i\"],\r\n [\"ö\", \"o\"],\r\n [\"Ş\", \"S\"],\r\n [\"Ğ\", \"G\"],\r\n [\"Ç\", \"C\"],\r\n [\"ç\", \"c\"],\r\n [\"Ü\", \"U\"],\r\n [\"İ\", \"I\"],\r\n [\"Ö\", \"O\"],\r\n //[\"_\", \"-\"],\r\n ];\r\n if (typeof str != \"undefined\" && str) {\r\n for (var i = 0; i < specialChars.length; i++) {\r\n str = str.replace(specialChars[i][0], specialChars[i][1]);\r\n }\r\n }\r\n return str;\r\n }\r\n\r\n onValueChangeFormBackgroundFile($event) {\r\n debugger;\r\n let e = $event\r\n const file = e.value[0];\r\n const fileReader = new FileReader();\r\n\r\n var re = /(?:\\.([^.]+))?$/;\r\n\r\n var ext = re.exec(file.name)[1];\r\n\r\n fileReader.onload = () => {\r\n\r\n if (!!ext) {\r\n let base64 = fileReader.result as string;\r\n console.log(this.formBackground)\r\n var reg = new RegExp('(?<=base64,)(.*$)')\r\n var RegexResult = reg.exec(base64); //base64.replace(/^.*base64,(?=\\/)/, \"\");\r\n this.formBackground = RegexResult[0]\r\n this.formBackgroundExtension = ext;\r\n this.previewFormStyle = this.getPreviewFormStyle()\r\n }\r\n\r\n };\r\n\r\n fileReader.readAsDataURL(file);\r\n\r\n }\r\n\r\n clearFormBackgroundButton() {\r\n this.uploadedFiles = [];\r\n this.formBackground = null;\r\n this.formBackgroundExtension = null;\r\n this.previewFormStyle = this.getPreviewFormStyle()\r\n }\r\n\r\n getFormBackgroundForPopup() {\r\n if (this.formBackgroundExtension && this.formBackground) {\r\n let mimetype = this.globalService.getMimeType(this.formBackgroundExtension)\r\n let val = \"data:\" + mimetype + \";base64,\" + this.formBackground;\r\n return val;\r\n }\r\n else {\r\n return null\r\n }\r\n }\r\n\r\n\r\n addLanguage(panel) {\r\n\r\n this.languagePopup = true;\r\n }\r\n saveLanguagePopup() {\r\n this.languagePopup = false;\r\n let find = this.componentService.currentForm.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n this.componentService.currentForm.name = find.Title\r\n }\r\n }\r\n formNameModelChange(value) {\r\n console.log(value); //Changed Value\r\n let find = this.componentService.currentForm.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n find.Title = value\r\n }\r\n \r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { FormModel } from '../../shared/models/form-model';\r\nimport { ComponentService } from \"../component.service\";\r\nimport { AppInfoService, FormService, GenericService, TaskService } from '../../shared/services';\r\nimport { CurrentFormDataModel } from '../../shared/models/form-data-model';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\nenum FormType {\r\n Default = 1,\r\n Menu = 2\r\n}\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'dx-render',\r\n templateUrl: './formrender.html',\r\n styleUrls: ['./formrender.css']\r\n})\r\nexport class FormRender implements OnInit, OnDestroy {\r\n @Input() form: any;\r\n @Input() isEdit: boolean;\r\n @Input() isStarted: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n @Input() formType: any = FormType.Default;\r\n\r\n\r\n // @Input() selectedSchemaId: boolean;\r\n\r\n /*formStatus =\r\n {\r\n Processing : 1, //while yes\r\n SaveAndSend : 2, //while break\r\n Approve : 3, // while break\r\n Disapprove : 4, //while break\r\n Returned : 5, //while yes\r\n Cancelled : 6 // while break\r\n }*/\r\n\r\n\r\n languageCode: string;\r\n forms: any;\r\n\r\n colCountByScreen: Object;\r\n currentFormData = [];\r\n buttonActions: any = [];\r\n selectedstatus: number = 1;\r\n\r\n currentFormStatus: any;\r\n\r\n\r\n isFormEditable: boolean = false;\r\n currentProcessFormId: number = 0;\r\n prevUserId: number = 0;\r\n\r\n //rejectReason: string;\r\n //showRejectReasonPopup: boolean = false;\r\n isMenuForm: boolean = false;\r\n constructor(public formService: FormService,\r\n private appInfo: AppInfoService,\r\n private componentService: ComponentService,\r\n private eventEmitterService: EventEmitterService,\r\n public taskService: TaskService,\r\n public genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public instanceService: InstanceService) {\r\n //this.isSendForm = false;\r\n if (typeof this.eventEmitterService.subsSendForm == \"undefined\") {\r\n this.eventEmitterService.subsSendForm = this.eventEmitterService.invokeSendFormFunction.subscribe(sub => {\r\n this.sendFormData(sub.status, sub.name, sub.reason, sub.anotherPopupIdLocal);\r\n });\r\n }\r\n\r\n }\r\n deletedFileIds: any = [];\r\n invokeChangeEventLocal: Subscription;\r\n invokeFileDeleteLocal: Subscription;\r\n currentFormSelectedGlobal;\r\n\r\n ngOnInit() {\r\n if (typeof this.form != \"undefined\") {\r\n\r\n if (this.appInfo.currentUser.deflang) this.languageCode = this.appInfo.currentUser.deflang.replace(/-/gi, '');\r\n else this.languageCode = \"trTR\";\r\n\r\n this.currentProcessFormId = this.form.processFormId;\r\n\r\n this.renderForm();\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeColumnSumFunction.subscribe(sub => {\r\n try {\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentForm = this.currentFormSelectedGlobal.find(x => x.id == sub.id);\r\n if (curentForm || sub.id == \"sys_re_set_val\") {\r\n curentForm.value = sub.sum;\r\n }\r\n\r\n } catch (e) {\r\n\r\n }\r\n });\r\n\r\n this.invokeFileDeleteLocal = this.eventEmitterService.invokeDeletedFileIdsFunction.subscribe(sub => {\r\n try {\r\n this.deletedFileIds = sub\r\n } catch (e) {\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n console.log(\"render DESTROYED\")\r\n try { this.invokeChangeEventLocal.unsubscribe(); } catch (e) { }\r\n //this.invokeFileDeleteLocal.unsubscribe();\r\n try { this.eventEmitterService.clearDeleteFileIds(); } catch (e) { }\r\n }\r\n\r\n locationButtons: any = [];\r\n paymentButtons: any = [];\r\n zoomButtons: any = [];\r\n //liveWebButton: any;\r\n\r\n renderForm() {\r\n\r\n if (typeof this.form.formJson !== \"undefined\") {\r\n this.prevUserId = this.form.prevUserId;\r\n let formJson = JSON.parse(this.form.formJson);\r\n let formData = JSON.parse(this.form.formValues);\r\n\r\n this.componentService.checkUserAuthorization(this.form.readonly, formJson.components, this.appInfo.currentUser.id, this.anotherPopupId);\r\n\r\n // this.componentServi ce.hideComponent List(formJson.components);\r\n //formJson.components = formJson.components.filter(f => !f.hide);\r\n\r\n let currentFormSelected;\r\n if (this.anotherPopupId == 0) {\r\n this.componentService.currentProcessFormId = this.form.processFormId;\r\n this.componentService.currentForm = formJson;\r\n this.componentService.currentForm.isReadonly = this.form.readonly;\r\n this.componentService.currentForm.formNo = this.form.formNo || 0;\r\n currentFormSelected = this.componentService.currentForm;\r\n } else {\r\n let childObj = this.componentService.childPopups.find(x => x.id == this.anotherPopupId);\r\n childObj.currentForm = formJson;\r\n childObj.isReadonly = this.form.readonly;\r\n childObj.formNo = this.form.formNo || 0;\r\n childObj.currentProcessFormId = this.form.processFormId;\r\n currentFormSelected = childObj.currentForm;\r\n }\r\n\r\n this.componentService.currentUserStaus = this.form.userStatus || 0;\r\n this.setStatus(this.form.userStatus);\r\n this.componentService.userHasApprove = this.form.userStatus == this.componentService.userStatus.FinalApprove || this.form.userStatus == this.componentService.userStatus.InterimApprove;\r\n this.componentService.setFormValues(currentFormSelected.components, formData, this.anotherPopupId);\r\n this.executeExp(this.anotherPopupId);\r\n this.invokeFunctions();\r\n\r\n let menus = this.componentService.getComponentsByType(\"menu\", this.anotherPopupId);\r\n if (menus && menus.length > 0) {\r\n this.isMenuForm = true;\r\n }\r\n else {\r\n this.isMenuForm = false;\r\n }\r\n\r\n let curentFormFiles = this.componentService.getFilesComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let _idArray = [];\r\n curentFormFiles.forEach(file => {\r\n try {\r\n file.value.forEach(fileVal => {\r\n try {\r\n let compSend = {\r\n id: fileVal,\r\n componentId: file.id,\r\n type: file.type,\r\n row: -1,\r\n column: \"-1\"\r\n };\r\n _idArray.push(compSend);\r\n } catch (ex) { }// src: 'data:' + fileType + ';base64,' + base64BlobDat a,\r\n });\r\n } catch (ex) { }\r\n });\r\n\r\n let datagridComps = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n if (this.currentProcessFormId != 0) {\r\n\r\n let datagridCompsFilter = datagridComps.filter(x => x.type == \"datagrid\");\r\n if (datagridCompsFilter.length > 0) {\r\n datagridCompsFilter.forEach(_dataGrid => {\r\n let _row = 0;\r\n let datagridHeaderFiles = _dataGrid.headers.filter(x => x.type == \"file\" || x.type == \"picturebox\");\r\n\r\n _dataGrid.value.forEach(_dataGridValue => {\r\n datagridHeaderFiles.forEach(_headerFile => {\r\n\r\n let IdArrayLast = [];\r\n let _column = _headerFile.field;\r\n let valArray = _dataGridValue[_column];\r\n if (typeof valArray != \"undefined\" && valArray != \"\") {\r\n\r\n valArray.forEach(valId => {\r\n IdArrayLast.push(valId);\r\n });\r\n\r\n let compSend = {\r\n id: IdArrayLast,\r\n componentId: _dataGrid.id,\r\n type: _dataGrid.type,\r\n row: _row,\r\n column: _column//\"-1\"\r\n };\r\n\r\n //if (_dataFile.file.size != -1)\r\n _idArray.push(compSend);\r\n\r\n }\r\n else if (_headerFile.type == \"picturebox\")\r\n this.datagridPicturebox(datagridComps, _dataGrid, _column, _row);\r\n\r\n });\r\n _row++;\r\n });\r\n\r\n });\r\n }\r\n\r\n if (_idArray.length > 0) {\r\n let _idArrayInt = _idArray.map(ele => ele.id);\r\n let _idIntLast = [];\r\n _idArrayInt.forEach(_idObj => {\r\n if (Array.isArray(_idObj)) {\r\n _idObj.forEach(_idObjTemp => {\r\n _idIntLast.push(_idObjTemp);\r\n });\r\n }\r\n else\r\n _idIntLast.push(_idObj);\r\n });\r\n if (this.formType == FormType.Default) {\r\n this.getFormFilesService(_idIntLast, datagridComps);\r\n } else {\r\n this.getFormFilesServiceMenu(_idIntLast, datagridComps);\r\n }\r\n\r\n\r\n }\r\n }\r\n else {\r\n\r\n if (_idArray.length > 0) {\r\n let _idArrayInt = _idArray.map(ele => ele.id);\r\n let _idIntLast = [];\r\n _idArrayInt.forEach(_idObj => {\r\n if (Array.isArray(_idObj)) {\r\n _idObj.forEach(_idObjTemp => {\r\n _idIntLast.push(_idObjTemp);\r\n });\r\n }\r\n else\r\n _idIntLast.push(_idObj);\r\n });\r\n\r\n if (this.formType == FormType.Default) {\r\n this.getFormFilesService(_idIntLast, datagridComps);\r\n } else {\r\n this.getFormFilesServiceMenu(_idIntLast, datagridComps);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n let curentFormButtons = this.componentService.getButtonComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n this.locationButtons = [];\r\n curentFormButtons.forEach(obj => {\r\n\r\n obj.buttons.forEach(objChild => {\r\n\r\n if (objChild.isLocation)\r\n this.locationButtons.push({ buttonCompId: obj.id, button: objChild });\r\n });\r\n });\r\n\r\n if (this.locationButtons.length > 0)\r\n this.getGeoLocation();\r\n\r\n\r\n this.getFormPreferences(currentFormSelected, formData);\r\n\r\n }\r\n }\r\n\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n\r\n datagridPicturebox(datagridComps, _dataGrid, _column, _row) {\r\n // _dataGrid.value\r\n\r\n\r\n let _dataValue = _dataGrid.value[_row];\r\n let _header = _dataGrid.headers.find(f => f.field == _column);\r\n let _pictureboxChangeHeader = _dataGrid.sqlExpressions.find(x => x.field == _column);\r\n let _connectionStringId = 0\r\n if (_pictureboxChangeHeader.connectionStringId) _connectionStringId = _pictureboxChangeHeader.connectionStringId;\r\n\r\n let replacedQuery = this.componentService.cloneModel(_pictureboxChangeHeader.query);\r\n let fields = Object.keys(_dataValue);\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = _dataValue[f];\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n });\r\n\r\n\r\n // this.outOfDatagridGetSql(replacedQuery, /*rowInde x,*/ exp.connectionStringId, exp.field, /*newRow,*/ field, data);\r\n\r\n let sqlExpressionTagControl = replacedQuery.match(/\\{(\\w)+\\}/ig);\r\n //let ifControl = false;\r\n if (replacedQuery != \"\" && _connectionStringId != 0 && (sqlExpressionTagControl == null || typeof sqlExpressionTagControl == \"undefined\" || sqlExpressionTagControl.length == 0 || (\r\n (sqlExpressionTagControl.length == 1 && sqlExpressionTagControl[0] == \"{CURRENTUSERID}\")\r\n ))\r\n ) {\r\n this.genericService.executeQuerySecurited(replacedQuery, _connectionStringId).subscribe((result: any) => {\r\n if (result && result.length) {\r\n let _value = \"\";\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n let finalData = [];\r\n keys.forEach(f => {\r\n finalData.push(result[0][f]);\r\n });\r\n _value = finalData.join(\",\");\r\n }\r\n\r\n // let headerGeneral = _dataGrid.headers.find(f => f.field == fieldGeneral);\r\n // let generalName = headerGeneral ? headerGeneral.caption : \"\";\r\n let doc: any = {};\r\n let document: any = {\r\n base64BlobData: _value,\r\n name: \"\",\r\n fileType: \"image/png\",\r\n extension: \"png\",\r\n size: -1,\r\n isImg: true\r\n };\r\n doc.row = _dataValue.ID;\r\n doc.file = document;\r\n\r\n let docsIndex = _header.files.findIndex(f => f.row == _dataValue.ID);\r\n if (docsIndex != -1)\r\n _header.files[docsIndex] = doc;\r\n else\r\n _header.files.push(doc);\r\n\r\n }\r\n });\r\n }\r\n //datagridComps \r\n //header.dataGridSettings.query, /*row.rowInde x,*/ header.dataGridSettings.connectionStringId\r\n }\r\n\r\n getFormPreferences(currentFormSelected, formData) {\r\n\r\n let dataGridEventList = []\r\n let preferencesMultiElementFinish = 0;\r\n let preferencesFinish = 0;\r\n if ((this.anotherPopupId == 0 && currentFormSelected.formNo == 0) || (this.anotherPopupId != 0)) {\r\n\r\n\r\n let preferencesForm = currentFormSelected.preferences;\r\n\r\n if (typeof preferencesForm == \"undefined\")\r\n preferencesForm = { formOpenedEvents: [], formOpenedMultiElementEvents: [] };\r\n\r\n preferencesForm.formOpenedEvents = preferencesForm.formOpenedEvents && Array.isArray(preferencesForm.formOpenedEvents) ? preferencesForm.formOpenedEvents : [];\r\n preferencesForm.formOpenedMultiElementEvents = preferencesForm.formOpenedMultiElementEvents && Array.isArray(preferencesForm.formOpenedMultiElementEvents) ? preferencesForm.formOpenedMultiElementEvents : [];\r\n\r\n if (preferencesForm) {\r\n if (preferencesForm.formOpenedEvents.length > 0) {\r\n\r\n let preferencesArray = [];\r\n preferencesForm.formOpenedEvents.forEach(_formOpenedEvent => {\r\n let sqlExpressionTagControl = _formOpenedEvent.query.match(/\\{(\\w)+\\}/ig);\r\n\r\n if (_formOpenedEvent.query != \"\" && (sqlExpressionTagControl == null || typeof sqlExpressionTagControl == \"undefined\" || sqlExpressionTagControl.length == 0 || (\r\n (sqlExpressionTagControl.length == 1 && sqlExpressionTagControl[0] == \"{CURRENTUSERID}\")\r\n ))\r\n ) {\r\n this.genericService.executeQuerySecurited(_formOpenedEvent.query, _formOpenedEvent.connectionId).subscribe((result: any) => {\r\n\r\n if (result && result.length) {\r\n\r\n let keys = Object.keys(result[0]);\r\n let formDataTemp = formData.find(x => x[\"key\"] == _formOpenedEvent.elementId);\r\n if (formDataTemp.componentType == \"selectbox\") {\r\n formDataTemp.value = result[0][keys[0]];\r\n }\r\n else if (formDataTemp.componentType == \"datagrid\") {\r\n\r\n dataGridEventList.push({ elementId: _formOpenedEvent.elementId, data: result })\r\n\r\n }\r\n else {\r\n let finalData = [];\r\n if (keys.length > 0) {\r\n keys.forEach(_f => {\r\n finalData.push(result[0][_f]);\r\n });\r\n }\r\n formDataTemp.value = finalData.join(\", \");\r\n }\r\n\r\n }\r\n preferencesFinish = preferencesFinish + 1;\r\n });\r\n }\r\n else\r\n preferencesFinish = preferencesFinish + 1;\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n if (preferencesForm.formOpenedMultiElementEvents.length > 0) {\r\n\r\n let preferencesArray = [];\r\n preferencesForm.formOpenedMultiElementEvents.forEach(_formOpenedMultiElementEvent => {\r\n let sqlExpressionTagControl = _formOpenedMultiElementEvent.query.match(/\\{(\\w)+\\}/ig);\r\n\r\n if (_formOpenedMultiElementEvent.query != \"\" && (sqlExpressionTagControl == null || typeof sqlExpressionTagControl == \"undefined\" || sqlExpressionTagControl.length == 0 || (\r\n (sqlExpressionTagControl.length == 1 && sqlExpressionTagControl[0] == \"{CURRENTUSERID}\")\r\n ))\r\n ) {\r\n this.genericService.executeQuerySecurited(_formOpenedMultiElementEvent.query, _formOpenedMultiElementEvent.connectionId).subscribe((result: any) => {\r\n\r\n if (result && result.length) {\r\n\r\n let keys = Object.keys(result[0]);\r\n\r\n keys.forEach((keyEL: any) => {\r\n let formDataTemp = formData.find(x => x[\"key\"] == keyEL);\r\n if (formDataTemp.componentType == \"selectbox\") {\r\n formDataTemp.value = result[0][keyEL];\r\n }\r\n else if (formDataTemp.componentType == \"datagrid\") {\r\n\r\n dataGridEventList.push({ elementId: keyEL, data: [result[0][keyEL]] })\r\n }\r\n else {\r\n formDataTemp.value = result[0][keyEL];\r\n }\r\n\r\n });\r\n\r\n\r\n }\r\n preferencesMultiElementFinish = preferencesMultiElementFinish + 1;\r\n });\r\n }\r\n else\r\n preferencesMultiElementFinish = preferencesMultiElementFinish + 1;\r\n });\r\n\r\n }\r\n\r\n\r\n if (preferencesForm.formOpenedMultiElementEvents.length > 0 || preferencesForm.formOpenedEvents.length > 0) {\r\n let tThis = this;\r\n\r\n let checkPrefExist = setInterval(function () {\r\n if (preferencesFinish == preferencesForm.formOpenedEvents.length && (preferencesMultiElementFinish == preferencesForm.formOpenedMultiElementEvents.length)) {\r\n clearInterval(checkPrefExist);\r\n tThis.componentService.setFormValues(currentFormSelected.components, formData, tThis.anotherPopupId);\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n\r\n // selectboxChangeEvent 'ın Open event setFormValues metodu ile datagrid value değerini doldurduktan sonra çalışması için yapıldı.\r\n dataGridEventList.forEach((el: any) => {\r\n tThis.eventEmitterService.selectboxChangeEvent(\"\", el.elementId, \"\", el.data, false);\r\n })\r\n\r\n }\r\n }, 300);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n getFormFilesService(_idIntLast, datagridComps) {\r\n\r\n this.instanceService.getFormFilesData(_idIntLast).subscribe((s: any) => {\r\n let currentComp;\r\n\r\n let componentTempIds = [];\r\n if (s.files.length > 0) {\r\n s.files.forEach(currentCompReturned => {\r\n\r\n currentComp = datagridComps.find(x => x.id == currentCompReturned.componentId);\r\n let componentType = currentComp.type;\r\n\r\n if (componentType == \"datagrid\") {\r\n\r\n let currentCompHeaderColumn = currentComp.headers.find(x => x.field == currentCompReturned.columnId);\r\n\r\n let document: any = {\r\n id: currentCompReturned.id,\r\n base64BlobData: currentCompReturned.fileData,\r\n name: currentCompReturned.fileName,\r\n fileType: currentCompReturned.fileType,\r\n extension: currentCompReturned.fileExtension,\r\n size: currentCompReturned.fileSize,\r\n isImg: currentCompReturned.isImg,\r\n description: currentCompReturned.description,\r\n dmsPath: currentCompReturned.dmsPath\r\n };\r\n\r\n if (typeof document.description == \"undefined\") {\r\n document.description = \"\"\r\n }\r\n\r\n let doc: any = {};\r\n doc.row = currentCompReturned.rowId;\r\n doc.file = document;\r\n currentCompHeaderColumn.files.push(doc);\r\n\r\n }\r\n else {\r\n\r\n if (componentTempIds.indexOf(currentCompReturned.componentId) == -1) {\r\n currentComp.valueTemp = [];\r\n componentTempIds.push(currentCompReturned.componentId);\r\n }\r\n\r\n let document: any = {\r\n id: currentCompReturned.id,\r\n base64BlobData: currentCompReturned.fileData,\r\n name: currentCompReturned.fileName,\r\n fileType: currentCompReturned.fileType,\r\n extension: currentCompReturned.fileExtension,\r\n size: currentCompReturned.fileSize,\r\n isImg: currentCompReturned.isImg,\r\n description: currentCompReturned.description,\r\n dmsPath: currentCompReturned.dmsPath\r\n };\r\n\r\n if (typeof document.description == \"undefined\") {\r\n document.description = \"\"\r\n }\r\n\r\n if (componentType == \"picturebox\") {\r\n if (document.base64BlobData && document.base64BlobData != \"\")\r\n document.src = 'data:' + document.fileType + ';base64,' + document.base64BlobData;\r\n else\r\n document.src = '/assets/img/default-placeholder.png';\r\n }\r\n\r\n if (componentType == \"signature\") {\r\n document.src = 'data:' + document.fileType + ';base64,' + document.base64BlobData;\r\n }\r\n\r\n currentComp.valueTemp.push(document);\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n this.changeDetectorRef.detectChanges();\r\n\r\n });\r\n }\r\n\r\n getFormFilesServiceMenu(_idIntLast, datagridComps) {\r\n\r\n this.formService.getFormFilesData(_idIntLast).subscribe((s: any) => {\r\n let currentComp;\r\n\r\n let componentTempIds = [];\r\n if (s.files.length > 0) {\r\n s.files.forEach(currentCompReturned => {\r\n\r\n currentComp = datagridComps.find(x => x.id == currentCompReturned.componentId);\r\n let componentType = currentComp.type;\r\n\r\n if (componentType == \"datagrid\") {\r\n\r\n let currentCompHeaderColumn = currentComp.headers.find(x => x.field == currentCompReturned.columnId);\r\n\r\n let document: any = {\r\n id: currentCompReturned.id,\r\n base64BlobData: currentCompReturned.fileData,\r\n name: currentCompReturned.fileName,\r\n fileType: currentCompReturned.fileType,\r\n extension: currentCompReturned.fileExtension,\r\n size: currentCompReturned.fileSize,\r\n isImg: currentCompReturned.isImg,\r\n description: currentCompReturned.description\r\n };\r\n\r\n if (typeof document.description == \"undefined\") {\r\n document.description = \"\"\r\n }\r\n\r\n let doc: any = {};\r\n doc.row = currentCompReturned.rowId;\r\n doc.file = document;\r\n currentCompHeaderColumn.files.push(doc);\r\n\r\n }\r\n else {\r\n\r\n if (componentTempIds.indexOf(currentCompReturned.componentId) == -1) {\r\n currentComp.valueTemp = [];\r\n componentTempIds.push(currentCompReturned.componentId);\r\n }\r\n\r\n let document: any = {\r\n id: currentCompReturned.id,\r\n base64BlobData: currentCompReturned.fileData,\r\n name: currentCompReturned.fileName,\r\n fileType: currentCompReturned.fileType,\r\n extension: currentCompReturned.fileExtension,\r\n size: currentCompReturned.fileSize,\r\n isImg: currentCompReturned.isImg,\r\n description: currentCompReturned.description\r\n };\r\n\r\n if (typeof document.description == \"undefined\") {\r\n document.description = \"\"\r\n }\r\n\r\n if (componentType == \"picturebox\") {\r\n if (document.base64BlobData && document.base64BlobData != \"\")\r\n document.src = 'data:' + document.fileType + ';base64,' + document.base64BlobData;\r\n else\r\n document.src = '/assets/img/default-placeholder.png';\r\n }\r\n\r\n if (componentType == \"signature\") {\r\n document.src = 'data:' + document.fileType + ';base64,' + document.base64BlobData;\r\n }\r\n\r\n currentComp.valueTemp.push(document);\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n this.changeDetectorRef.detectChanges();\r\n\r\n });\r\n }\r\n\r\n invokeFunctions() {\r\n\r\n if (typeof this.eventEmitterService.subsFormChange == \"undefined\") {\r\n this.eventEmitterService.invokeFormChangesFunction.subscribe((s) => {\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(s.anotherPopupIdLocal);\r\n this.executeExp(s.anotherPopupIdLocal);\r\n this.componentService.evulateExpretion(this.currentFormSelectedGlobal.expretion);\r\n });\r\n }\r\n //if (typeof this.eventEmitterService.subsMenuSubmit == \"undefined\") {\r\n // this.eventEmitterService.subsMenuSubmit = this.eventEmitterService.invokeMenuSubmitFunction.subscribe((sub: any) => {\r\n // this.sendFormData(sub.status, sub.name, \"\");\r\n // });\r\n //}\r\n\r\n }\r\n\r\n setStatus(userStatus) {\r\n if (userStatus == this.componentService.userStatus.DefaultStatus) {\r\n this.buttonActions = [\r\n { \"status\": this.componentService.formStatus.Processing, \"text\": \"Kaydet\", \"type\": \"default\" },\r\n { \"status\": this.componentService.formStatus.SaveAndSend, \"text\": \"Kaydet ve Gönder\", \"type\": \"success\" }\r\n ];\r\n }\r\n else if (userStatus == this.componentService.userStatus.InterimApprove) {\r\n this.buttonActions = [\r\n { \"status\": this.componentService.formStatus.Processing, \"text\": \"Kaydet\", \"type\": \"default\" },\r\n { \"status\": this.componentService.formStatus.SaveAndSend, \"text\": \"Kaydet ve Gönder\", \"type\": \"success\" },\r\n //{ \"status\": this.componentService.formStatus.Returned, \"text\": \"Geri Gönder\", \"type\": \"danger\" },\r\n { \"status\": this.componentService.formStatus.Disapprove, \"text\": \"Reddet\", \"type\": \"danger\" },\r\n { \"status\": this.componentService.formStatus.DisapproveTerminate, \"text\": \"Reddet ve Bitir\", \"type\": \"danger\" }\r\n ];\r\n }\r\n else if (userStatus == this.componentService.userStatus.FinalApprove) {\r\n this.buttonActions = [\r\n { \"status\": this.componentService.formStatus.Processing, \"text\": \"Kaydet\", \"type\": \"default\" },\r\n { \"status\": this.componentService.formStatus.Approve, \"text\": \"Onayla\", \"type\": \"success\" },\r\n { \"status\": this.componentService.formStatus.Disapprove, \"text\": \"Reddet\", \"type\": \"danger\" }\r\n ];\r\n }\r\n else if (userStatus == this.componentService.userStatus.Completed) {\r\n this.buttonActions = [\r\n { \"status\": this.componentService.formStatus.Processing, \"text\": \"Kaydet\", \"type\": \"default\" },\r\n { \"status\": this.componentService.formStatus.Completed, \"text\": \"Bitir\", \"type\": \"success\" }\r\n ];\r\n }\r\n else {\r\n this.buttonActions = [\r\n { \"status\": this.componentService.formStatus.Processing, \"text\": \"Kaydet\", \"type\": \"default\" },\r\n { \"status\": this.componentService.formStatus.SaveAndSend, \"text\": \"Kaydet ve Gönder\", \"type\": \"success\" }\r\n ];\r\n }\r\n }\r\n\r\n screen(width) {\r\n return width < 720 ? \"sm\" : \"md\";\r\n }\r\n\r\n executeExp(anotherPopupIdLocal) {\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(anotherPopupIdLocal);\r\n if (this.currentFormSelectedGlobal.expression) eval(this.currentFormSelectedGlobal.expression)\r\n }\r\n\r\n getById(id, anotherPopupIdLocal) {\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(anotherPopupIdLocal);\r\n return this.componentService.getById(id, this.currentFormSelectedGlobal.components, anotherPopupIdLocal);\r\n }\r\n\r\n colSum(id, colm, anotherPopupIdLocal) {\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(anotherPopupIdLocal);\r\n\r\n return this.componentService.colSum(id, colm, this.currentFormSelectedGlobal.components, anotherPopupIdLocal);\r\n }\r\n\r\n\r\n setValue(selectboxId, elementId, key, anotherPopupIdLocal) {\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(anotherPopupIdLocal);\r\n\r\n return this.componentService.setValue(selectboxId, elementId, key, this.currentFormSelectedGlobal.components, anotherPopupIdLocal);\r\n }\r\n\r\n buttonNameGlobal: any = \"\";\r\n\r\n sendFormData(status, name, reason, anotherPopupIdLocal) {\r\n\r\n this.eventEmitterService.setHomePopupVisibleFunc({ isShow: true });\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(anotherPopupIdLocal);\r\n let curentFormButtons = this.componentService.getButtonComponentList(this.currentFormSelectedGlobal.components, anotherPopupIdLocal);\r\n\r\n this.locationButtons = [];\r\n curentFormButtons.forEach(obj => {\r\n\r\n obj.buttons.forEach(objChild => {\r\n\r\n if (objChild.isLocation)\r\n this.locationButtons.push({ buttonCompId: obj.id, button: objChild });\r\n\r\n if (objChild.isPayment)\r\n this.paymentButtons.push({ buttonCompId: obj.id, button: objChild });\r\n\r\n if (objChild.isZoom)\r\n this.zoomButtons.push({ buttonCompId: obj.id, button: objChild });\r\n\r\n\r\n });\r\n\r\n });\r\n\r\n\r\n this.currentFormSelectedGlobal.components.forEach(el => {\r\n this.eventEmitterService.saveSystemInfoEvent(el.id, el.value);\r\n });\r\n\r\n this.currentFormData = [];\r\n this.buttonNameGlobal = name;\r\n this.createValuesData(this.currentFormSelectedGlobal.components);\r\n\r\n let datagridComps = this.componentService.getComponentList(this.currentFormSelectedGlobal.components, anotherPopupIdLocal);\r\n\r\n let curentFormFiles = this.componentService.getFilesComponentList(this.currentFormSelectedGlobal.components, anotherPopupIdLocal);\r\n let objArray = [];\r\n\r\n let descriptionUpdate = [];\r\n curentFormFiles.forEach(file => {\r\n if (typeof file.valueTemp != \"undefined\" && file.valueTemp != \"\") {\r\n\r\n file.valueTemp.forEach(fileVal => {\r\n //value array içine gir\r\n //base64BlobDat a\r\n //extension \r\n if (typeof fileVal.id == \"undefined\" || fileVal.id == 0) {\r\n let obj: any = {\r\n fileId: 0,\r\n componentId: file.id,\r\n rowId: \"-1\",\r\n columnId: \"-1\",\r\n fileData: fileVal.base64BlobData,\r\n fileExtension: fileVal.extension,\r\n fileType: fileVal.fileType,\r\n isImage: fileVal.isImg,\r\n name: fileVal.name,\r\n size: fileVal.size,\r\n description: fileVal.description,\r\n dmsPath: fileVal.dmsPath\r\n };\r\n\r\n if (typeof obj.description == \"undefined\") {\r\n obj.description = \"\"\r\n }\r\n\r\n objArray.push(obj);\r\n }\r\n else {\r\n let obj: any = {\r\n fileId: fileVal.id,\r\n componentId: \"\",\r\n rowId: \"\",\r\n columnId: \"\",\r\n fileData: \"\",\r\n fileExtension: \"\",\r\n fileType: \"\",\r\n isImage: false,\r\n name: \"\",\r\n size: 0,\r\n description: fileVal.description,\r\n dmsPath: fileVal.dmsPath\r\n };\r\n\r\n if (typeof obj.description == \"undefined\") {\r\n obj.description = \"\"\r\n }\r\n\r\n objArray.push(obj);\r\n }\r\n\r\n });\r\n }\r\n file.valueTemp = [];\r\n });\r\n\r\n let validationDatagrid = [];\r\n let deleteFiles = [];\r\n let datagridCompsFilter = datagridComps.filter(x => x.type == \"datagrid\" && x.hide == false && x.show == true && (typeof x.outsideVisible == \"undefined\" || x.outsideVisible == true));\r\n if (datagridCompsFilter.length > 0) {\r\n debugger;\r\n datagridCompsFilter.forEach(_dataGrid => {\r\n\r\n let datagridRequired = [];\r\n let datagridReqI = 0;\r\n let datagridReqIValidationFalse = 0;\r\n //let datagridReqIValidation = true; \r\n _dataGrid.headers.forEach(_dgridH => {\r\n if (_dgridH.properties.required == true) {\r\n datagridRequired.push({ name: _dgridH.field, type: _dgridH.type, hide: _dgridH.hide });\r\n }\r\n\r\n if (_dataGrid.value.length == 1 &&\r\n (typeof _dataGrid.value[0][_dgridH.field] == \"undefined\" ||\r\n (\r\n (_dgridH.type == \"int\" && (_dataGrid.value[0][_dgridH.field] == \"\" || _dataGrid.value[0][_dgridH.field] == \"0\")) ||\r\n (_dgridH.type == \"double\" && (_dataGrid.value[0][_dgridH.field] == \"\" || _dataGrid.value[0][_dgridH.field] == \"0\")) ||\r\n (_dgridH.type == \"text\" && _dataGrid.value[0][_dgridH.field] == \"\") ||\r\n (_dgridH.type == \"date\" && _dataGrid.value[0][_dgridH.field] == null) ||\r\n (_dgridH.type == \"datetime\" && _dataGrid.value[0][_dgridH.field] == null) ||\r\n (_dgridH.type == \"datagrid\" && _dataGrid.value[0][_dgridH.field] == \"\") ||\r\n (_dgridH.type == \"combobox\" && _dataGrid.value[0][_dgridH.field] == \"\") ||\r\n (_dgridH.type == \"file\" && (_dataGrid.value[0][_dgridH.field] == \"\" || _dataGrid.value[0][_dgridH.field] == []))\r\n )\r\n )\r\n ) {\r\n datagridReqIValidationFalse = datagridReqIValidationFalse + 1;\r\n }\r\n\r\n datagridReqI = datagridReqI + 1;\r\n });\r\n // \"text\" \"double\" \"int\" \"date\" \"datetime\" \"datagrid\" \"combobox\"\r\n debugger;\r\n if (datagridReqIValidationFalse != datagridReqI || _dataGrid.value.length > 1) {\r\n\r\n _dataGrid.value.forEach(_dgridV => {\r\n // if (typeof _dgridV.DefaultColumn != \"undefined\" && _dgridV.DefaultColumn != 1) {\r\n\r\n datagridRequired.forEach(_dgridReq => {\r\n if (typeof _dgridV[_dgridReq.name] == \"undefined\" ||\r\n (\r\n (_dgridReq.type == \"int\" && (_dgridV[_dgridReq.name] == \"\" || _dgridV[_dgridReq.name] == \"0\")) ||\r\n (_dgridReq.type == \"double\" && (_dgridV[_dgridReq.name] == \"\" || _dgridV[_dgridReq.name] == \"0\")) ||\r\n (_dgridReq.type == \"text\" && _dgridV[_dgridReq.name] == \"\") ||\r\n (_dgridReq.type == \"date\" && _dgridV[_dgridReq.name] == null) ||\r\n (_dgridReq.type == \"datetime\" && _dgridV[_dgridReq.name] == null) ||\r\n (_dgridReq.type == \"datagrid\" && _dgridV[_dgridReq.name] == \"\") ||\r\n (_dgridReq.type == \"combobox\" && _dgridV[_dgridReq.name] == \"\") ||\r\n (_dgridReq.type == \"file\" && (_dataGrid.value[0][_dgridReq.field] == \"\" || _dataGrid.value[0][_dgridReq.field] == []))\r\n )\r\n ) {\r\n let headerFind = _dataGrid.headers.find(x => x.field == _dgridReq.name);\r\n if (headerFind && (typeof _dgridReq.hide != \"undefined\" && _dgridReq.hide == false)) {\r\n let headerFindCaption = headerFind.caption;\r\n if (headerFindCaption)\r\n validationDatagrid.push(headerFindCaption);\r\n }\r\n }\r\n });\r\n // }\r\n });\r\n // }\r\n }\r\n\r\n\r\n\r\n let datagridHeader = _dataGrid.headers.filter(x => x.type == \"file\" || x.type == \"picturebox\");\r\n datagridHeader.forEach(_datagridHeader => {\r\n\r\n let dataFiles = _datagridHeader.files;\r\n let columnId = _datagridHeader.field;\r\n dataFiles.forEach(_dataFile => {\r\n if (typeof _dataFile.file.id == \"undefined\" || _dataFile.file.id == 0) {\r\n let obj: any = {\r\n fileId: _dataFile.file.id,\r\n componentId: _dataGrid.id,\r\n rowId: _dataFile.row.toString(),\r\n columnId: columnId.toString(),\r\n fileData: _dataFile.file.base64BlobData,\r\n fileExtension: _dataFile.file.extension,\r\n fileType: _dataFile.file.fileType,\r\n isImage: _dataFile.file.isImg,\r\n name: _dataFile.file.name,\r\n size: _dataFile.file.size,\r\n description: _dataFile.file.description,\r\n dmsPath: _dataFile.file.dmsPath\r\n };\r\n\r\n if (typeof obj.description == \"undefined\") {\r\n obj.description = \"\"\r\n }\r\n\r\n if (_dataFile.file.size != -1)\r\n objArray.push(obj);\r\n }\r\n //else if (_datagridHeader.type == \"picturebox\") {\r\n if (_datagridHeader.type == \"picturebox\" && _dataFile.file.size != -1) {\r\n\r\n deleteFiles = this.componentService.datagridFilePicturebox.filter(x => x.anotherPopupId == this.anotherPopupId).map(ele => ele.id);//.push({ : , id: header.files[pictureboxRowsValueTempIndex].file.id });\r\n this.componentService.datagridFilePicturebox = this.componentService.datagridFilePicturebox.filter(x => x.anotherPopupId != this.anotherPopupId);\r\n // deleteFiles.push(_dataFile.file.id);\r\n }\r\n //else {\r\n // let obj: any = {\r\n // fileId: _dataFile.file.id,\r\n // componentId: \"\",\r\n // rowId: \"\",\r\n // columnId:\"\",\r\n // fileData:\"\",\r\n // fileExtension: \"\",\r\n // fileType: \"\",\r\n // isImage: false,\r\n // name: \"\",\r\n // size:\"\",\r\n // description: _dataFile.file.description\r\n // };\r\n // objArray.push(obj);\r\n //}\r\n });\r\n });\r\n });\r\n\r\n }\r\n\r\n if (validationDatagrid.length > 0) {\r\n this.eventEmitterService.setHomePopupVisibleFunc({ isShow: false });\r\n this.componentService.showAlert(validationDatagrid.join(', ') + \" Kolonları zorunlu alanlardır. Lütfen Doldurunuz.\", \"error\", 15000);\r\n return false;\r\n }\r\n\r\n let filesIds = [];\r\n\r\n if (objArray.length > 0) {\r\n let _processFormId = 0;\r\n if (anotherPopupIdLocal == 0) {\r\n _processFormId = this.componentService.currentProcessFormId;\r\n }\r\n else {\r\n let childObj = this.componentService.childPopups.find(x => x.id == anotherPopupIdLocal);\r\n if (childObj)\r\n _processFormId = childObj.currentProcessFormId;\r\n }\r\n this.instanceService.saveFormFilesData(objArray, _processFormId, deleteFiles).subscribe((s: any) => {\r\n if (s.status == true) {\r\n if (s.files.length > 0) {\r\n filesIds = s.files.map(ele => ele.Id);\r\n let _thisLocal = this;\r\n\r\n _thisLocal.currentFormData.forEach(formData => {\r\n\r\n let _fileVal = s.files.filter(x => x.ComponentId == formData.key);\r\n if (_fileVal != null && typeof _fileVal != \"undefined\" && _fileVal.length > 0) {\r\n if (formData.type == \"datagrid\") {\r\n\r\n _fileVal.forEach(_fileValObj => {\r\n let _tempData = formData.value.find(x => x.ID == parseInt(_fileValObj.RowId));\r\n if (_tempData)\r\n _tempData[_fileValObj.ColumnId] = _fileVal.filter(z => z.RowId == _fileValObj.RowId && z.ColumnId == _fileValObj.ColumnId).map(ele => ele.Id);\r\n });\r\n\r\n }\r\n else\r\n formData.value = _fileVal.map(ele => ele.Id);\r\n }\r\n\r\n });\r\n }\r\n\r\n this.callSaveFormData(status, reason, name, filesIds, anotherPopupIdLocal);\r\n }\r\n\r\n });\r\n\r\n } else {\r\n this.callSaveFormData(status, reason, name, filesIds, anotherPopupIdLocal);\r\n }\r\n\r\n }\r\n\r\n callSaveFormData(status, reason, name, filesIds, anotherPopupIdLocal) {\r\n let _processFormId = 0;\r\n let _selectedSchemaId = 0;\r\n if (anotherPopupIdLocal == 0) {\r\n _processFormId = this.componentService.currentProcessFormId;\r\n _selectedSchemaId = this.componentService.selectedSchemaId;\r\n }\r\n else {\r\n let childObj = this.componentService.childPopups.find(x => x.id == anotherPopupIdLocal);\r\n if (childObj) {\r\n _processFormId = childObj.currentProcessFormId;\r\n _selectedSchemaId = childObj.selectedSchemaId;\r\n }\r\n }\r\n let fData = new CurrentFormDataModel();\r\n fData.FromUserId = this.appInfo.currentUser.id;\r\n fData.ToUserId = this.appInfo.currentUser.id;\r\n fData.ProcessFormId = _processFormId;\r\n\r\n fData.FormVariable = JSON.stringify(this.currentFormData, null, 4);\r\n fData.Description = this.getStatusText(status) + \" (\" + this.appInfo.currentUser.name + \")\";\r\n fData.Status = status; //this.selectedstatus;\r\n fData.UserStatus = this.componentService.currentUserStaus;\r\n fData.RejectionReason = reason;\r\n fData.Users = this.form.users;\r\n fData.FilesIds = filesIds;\r\n fData.DeletedFilesIds = [];\r\n\r\n fData.DeletedFilesIds = this.deletedFileIds;\r\n\r\n let locationButton = this.locationButtons.find(x => x.button.property.name == name && x.button.property.status == status);\r\n\r\n if (typeof locationButton != \"undefined\" && this.locationGlobal != null)\r\n fData.GeoLocation = JSON.stringify({ lat: this.locationGlobal.latitude, lng: this.locationGlobal.longitude });\r\n\r\n let paymentButton = this.paymentButtons.find(x => x.button.property.name == name && x.button.property.status == status);\r\n let curentCustomer = \"0\";\r\n let curentPrice = \"0\";\r\n let curentHirePurchase = \"0\";\r\n let curentPaymentDescription = \"\";\r\n let paymentProvider = \"0\";\r\n let curentCustomerFormId = \"0\";\r\n let customerButton = {};\r\n if (typeof paymentButton != \"undefined\") {\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(anotherPopupIdLocal);\r\n\r\n let curentComponents = this.componentService.getComponentList(this.currentFormSelectedGlobal.components, anotherPopupIdLocal);\r\n curentCustomer = curentComponents.find(x => x.id == paymentButton.button.customerId).value;\r\n if (paymentButton.button.priceComponent && paymentButton.button.priceComponent != \"\")\r\n curentPrice = curentComponents.find(x => x.id == paymentButton.button.priceComponent).value;\r\n if (paymentButton.button.hirePurchaseComponent && paymentButton.button.hirePurchaseComponent != \"\")\r\n curentHirePurchase = curentComponents.find(x => x.id == paymentButton.button.hirePurchaseComponent).value;\r\n if (paymentButton.button.descriptionComponent && paymentButton.button.descriptionComponent != \"\")\r\n curentPaymentDescription = curentComponents.find(x => x.id == paymentButton.button.descriptionComponent).value;\r\n customerButton = paymentButton.button.customer;\r\n paymentProvider = paymentButton.button.paymentProvider;\r\n if (paymentButton.button.customerFormId && paymentButton.button.customerFormId != \"\")\r\n curentCustomerFormId = paymentButton.button.customerFormId;\r\n\r\n }\r\n\r\n this.instanceService.saveFormData(fData, _selectedSchemaId, curentCustomerFormId, customerButton, curentCustomer, curentPrice, curentHirePurchase, curentPaymentDescription, paymentProvider).subscribe((s: any) => {\r\n\r\n if (s != null) {\r\n\r\n let schedulerChangeData_I = 0;\r\n let schedulerChangeData_ITotal = 0;\r\n let schedulerChangeDataKeys = [];\r\n\r\n try {\r\n schedulerChangeDataKeys = Object.keys(this.componentService.schedulerChangeData);\r\n schedulerChangeDataKeys.forEach(_key => {\r\n if (this.componentService.schedulerChangeData[_key].length > 0) {\r\n schedulerChangeData_ITotal = schedulerChangeData_ITotal + this.componentService.schedulerChangeData[_key].length;\r\n this.formService.updateJustMenuData(this.componentService.schedulerChangeData[_key]).subscribe((result: any) => {\r\n this.componentService.schedulerChangeData[_key] = [];\r\n schedulerChangeData_I = schedulerChangeData_I + 1;\r\n });\r\n }\r\n });\r\n } catch (ex) { }\r\n\r\n let tThis = this;\r\n let schedulerChangeDataInterval;\r\n try {\r\n schedulerChangeDataInterval = setInterval(function () {\r\n if (schedulerChangeData_ITotal == 0 || (schedulerChangeData_ITotal - 1 == schedulerChangeData_I)) {\r\n clearInterval(schedulerChangeDataInterval);\r\n tThis.componentService.schedulerChangeData = undefined;\r\n }\r\n }, 300);\r\n }\r\n catch (ex) {\r\n if (schedulerChangeDataInterval)\r\n clearInterval(schedulerChangeDataInterval);\r\n }\r\n\r\n var jsonReturn = JSON.parse(s);\r\n\r\n this.eventEmitterService.updateTasks(anotherPopupIdLocal);\r\n this.componentService.isSentFormToDb = true;\r\n\r\n let localRuntimeSelectboxDatasource = [];\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n this.componentService.runtimeSelectboxDatasource.forEach(runtimeSelectbox => {\r\n let _c = curentComponents.find(x => x.id == runtimeSelectbox.componentId);\r\n if (_c && _c.isSelectboxInsertManualData) {\r\n localRuntimeSelectboxDatasource.push(runtimeSelectbox);\r\n }\r\n });\r\n\r\n if (localRuntimeSelectboxDatasource.length > 0) {\r\n this.eventEmitterService.setHomePopupVisibleFunc({ isShow: true });\r\n this.runtimeSelectboxDatasource(anotherPopupIdLocal, paymentButton, jsonReturn, localRuntimeSelectboxDatasource);\r\n }\r\n else {\r\n this.homePopupClear(anotherPopupIdLocal, paymentButton, jsonReturn);\r\n }\r\n\r\n }\r\n });\r\n }\r\n runtimeSelectboxDatasource(anotherPopupIdLocal, paymentButton, jsonReturn, localRuntimeSelectboxDatasource) {\r\n try {\r\n this.instanceService.getProcessFormWithDataId(jsonReturn.id).subscribe((_pForm: any) => {\r\n let pFormJson = JSON.parse(_pForm.formJson);\r\n localRuntimeSelectboxDatasource.forEach(localRuntimeSelectbox => {\r\n pFormJson.components = this.componentService.changeComponentListObject(pFormJson.components, localRuntimeSelectbox.componentId, \"dataSource\", localRuntimeSelectbox.dataSource);\r\n });\r\n _pForm.formJson = JSON.stringify(pFormJson);\r\n this.instanceService.setProcessFormJson(_pForm).subscribe((_pFormJson: any) => {\r\n this.componentService.runtimeSelectboxDatasource = [];\r\n this.homePopupClear(anotherPopupIdLocal, paymentButton, jsonReturn);\r\n //this.componentService.runtimeSelectboxDatasource\r\n });\r\n });\r\n } catch (ex) {\r\n this.eventEmitterService.setHomePopupVisibleFunc({ isShow: false });\r\n\r\n }\r\n }\r\n homePopupClear(anotherPopupIdLocal, paymentButton, jsonReturn) {\r\n if (anotherPopupIdLocal == 0) {\r\n this.componentService.currentProcessFormId = 0;\r\n }\r\n else {\r\n let childObj = this.componentService.childPopups.find(x => x.id == anotherPopupIdLocal);\r\n if (childObj)\r\n childObj.currentProcessFormId = 0;\r\n }\r\n\r\n this.showToast(\"Form Başarıyla Gönderildi\", \"success\");\r\n\r\n if (typeof paymentButton != \"undefined\") {\r\n let _domain = window.location.protocol + \"//\" + window.location.host + \"/\" + jsonReturn.url;\r\n window.open(_domain, \"_blank\");\r\n }\r\n this.eventEmitterService.setHomePopupVisibleFunc({ isShow: false });\r\n }\r\n\r\n\r\n\r\n locationGlobal: any;\r\n getCurrentPosition(options = {}) {\r\n return new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition(resolve, reject, options);\r\n });\r\n }\r\n\r\n async getGeoLocation() {\r\n\r\n if (window.navigator && window.navigator.geolocation) {\r\n await window.navigator.geolocation.getCurrentPosition(\r\n position => {\r\n this.locationGlobal = position.coords;\r\n },\r\n error => {\r\n switch (error.code) {\r\n case 1:\r\n this.locationGlobal = null;\r\n break;\r\n case 2:\r\n this.locationGlobal = null;\r\n break;\r\n case 3:\r\n this.locationGlobal = null;\r\n break;\r\n }\r\n }\r\n );\r\n };\r\n }\r\n\r\n //süreç iptal edilecek\r\n cancelInstance(anotherPopupIdLocal) {\r\n let msg = \"İşlemi onaylıyor musunuz?\"\r\n let result = confirm(msg, \"Süreç İptal Edilecek!\");\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n let _processFormId = 0;\r\n if (anotherPopupIdLocal == 0) {\r\n _processFormId = this.componentService.currentProcessFormId;\r\n }\r\n else {\r\n let childObj = this.componentService.childPopups.find(x => x.id == anotherPopupIdLocal);\r\n if (childObj)\r\n _processFormId = childObj.currentProcessFormId;\r\n }\r\n\r\n this.currentFormData = [];\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(anotherPopupIdLocal);\r\n\r\n this.createValuesData(this.currentFormSelectedGlobal.components);\r\n let fData = new CurrentFormDataModel();\r\n fData.FromUserId = this.appInfo.currentUser.id;\r\n fData.ToUserId = this.appInfo.currentUser.id;\r\n fData.ProcessFormId = _processFormId;\r\n fData.FormVariable = JSON.stringify(this.currentFormData, null, 4);\r\n fData.Description = \"Süreç, kullanıcı tarafından iptal edildi\";\r\n fData.Status = this.componentService.formStatus.Cancelled;\r\n fData.RejectionReason = \"\";\r\n fData.IsAvalible = true;\r\n this.instanceService.saveFormData(fData, 0, \"0\", {}, \"0\", \"0\", \"1\", \"\", \"\").subscribe((s: any) => {\r\n if (s != null) {\r\n this.eventEmitterService.submitForm();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n getStatusText(status) {\r\n let ststu = \"\";\r\n if (status == this.componentService.formStatus.Approve) ststu = \"Onayladı\";\r\n else if (status == this.componentService.formStatus.Disapprove) ststu = \"Reddedildi\";\r\n else if (status == this.componentService.formStatus.SaveAndSend) ststu = \"Gönderildi\";\r\n else if (status == this.componentService.formStatus.Returned) ststu = \"Geri Gönderildi\";\r\n else if (status == this.componentService.formStatus.Cancelled) ststu = \"İptal Edildi\";\r\n else if (status == this.componentService.formStatus.DisapproveTerminate) ststu = \"Reddedildi ve Süreç Bitirildi\";\r\n else if (status == this.componentService.formStatus.Processing) ststu = \"Kaydedildi\";\r\n\r\n return ststu;\r\n }\r\n\r\n createValuesData(components) {\r\n\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].isInput == true\r\n || components[i].inputType == \"datagrid\"\r\n || components[i].inputType == \"file\"\r\n || components[i].inputType == \"map\"\r\n || components[i].inputType == \"menu\"\r\n || components[i].type == \"gallery\"\r\n || components[i].type == \"codeeditor\"\r\n || components[i].type == \"htmleditor\"\r\n || components[i].type == \"comment\") {\r\n var obj: any = {};\r\n obj[\"key\"] = components[i].id;\r\n obj[\"value\"] = components[i].value;\r\n obj[\"type\"] = components[i].inputType;\r\n obj[\"componentType\"] = components[i].type;\r\n obj[\"isAuto\"] = components[i].isAuto;\r\n obj[\"autoText\"] = components[i].autoText;\r\n obj[\"isUserChange\"] = components[i].isUserChange;\r\n if (components[i].isInput) {\r\n components[i].isUserChange = typeof components[i].isUserChange == \"undefined\" ? false : components[i].isUserChange\r\n }\r\n if (components[i].type == \"livestream\") {\r\n obj[\"meetingType\"] = components[i].meetingType;\r\n }\r\n if (components[i].type == \"button\") {\r\n\r\n // let selectedButton = components[i];//.find(x => x.property.name == this.buttonNameGlobal);\r\n obj[\"name\"] = this.buttonNameGlobal;// components[i].nameValue;\r\n // obj[\"isLiveWeb\"] = selectedButton.isLiveWeb;\r\n // obj[\"liveWeb\"] = selectedButton.liveWeb;\r\n }\r\n\r\n if (components[i].inputType == \"datagrid\") {\r\n\r\n var gridVal = components[i].value;\r\n var lastId = gridVal.length > 0 ? gridVal[gridVal.length - 1].ID : 0;\r\n obj[\"lastid\"] = lastId;\r\n\r\n var headerAndType = this.getGridHeaders(components[i]);\r\n obj[\"headers\"] = headerAndType.headers;\r\n obj[\"headerTypes\"] = headerAndType.headerTypes;\r\n obj[\"rowCount\"] = components[i].value.length;\r\n obj[\"selectedRowCount\"] = components[i].selectedRows;\r\n obj[\"userChangeColumns\"] = components[i].userChangeColumns;\r\n }\r\n else if (components[i].type == \"map\") {\r\n\r\n obj[\"markers\"] = components[i].markers;\r\n }\r\n else {\r\n obj[\"markers\"] = [];\r\n obj[\"headers\"] = \"\";\r\n obj[\"headerTypes\"] = \"\";\r\n obj[\"rowCount\"] = 0;\r\n obj[\"selectedRowCount\"] = 0;\r\n obj[\"userChangeColumns\"] = [];\r\n }\r\n this.currentFormData.push(obj);\r\n }\r\n else if (components[i].type == \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.createValuesData(components[i].rows[j].cols[k].components);\r\n }\r\n }\r\n }\r\n else if (components[i].type == \"panel\" || components[i].type == \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.createValuesData(components[i].items[j].components);\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n getGridHeaders(grid) {\r\n let headers = [];\r\n let headerTypes = [];\r\n grid.headers.forEach(header => {\r\n var obj: any = {};\r\n //if (header.type != \"file\") {\r\n\r\n headers.push(header.field);\r\n headerTypes.push(header.type);\r\n //}\r\n });\r\n return { headers: headers.join(\",\"), headerTypes: headerTypes.join(\",\") };\r\n }\r\n\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n errorMessage = error.error instanceof ErrorEvent ? error.error.message : 'Error Code: ${error.status}\\nMessage: ${error.message}';\r\n console.log(errorMessage);\r\n this.showToast(errorMessage, \"error\");\r\n }\r\n\r\n changeStatus(event) {\r\n\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n}\r\n","export * from './languagegrid/languagegrid.component';\r\nexport * from './languagebutton/languagebutton.component';\r\nexport * from './sqlcommand/sqlcommand.component';\r\nexport * from './permission/permission.component';\r\nexport * from './popootoolbox/popootoolbox.component';\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { ComponentService } from '../../component.service';\r\n\r\n@Component({\r\n selector: 'languagebutton-component',\r\n templateUrl: './languagebutton.component.html'\r\n})\r\nexport class DxLanguageButtonComponent implements OnInit {\r\n @Input() dataSource: any;\r\n\r\n languageCodes = []\r\n\r\n buttonCols: any = [];\r\n languageLocal: any = \"\";\r\n\r\n\r\n constructor(private componentService: ComponentService) {\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.languageCodes = this.componentService.getlanguageCodes();\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.buttonCols = Object.keys(this.dataSource[0]);\r\n const index_Code = this.buttonCols.findIndex(item => item === \"Code\");\r\n if (index_Code != -1)\r\n this.buttonCols.splice(index_Code, 1);\r\n const button_Id = this.buttonCols.findIndex(item => item === \"buttonId\");\r\n if (button_Id != -1)\r\n this.buttonCols.splice(button_Id, 1);\r\n const index_DefaultLabel = this.buttonCols.findIndex(item => item === \"DefaultLabel\");\r\n if (index_DefaultLabel != -1)\r\n this.buttonCols.splice(index_DefaultLabel, 1);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { ComponentService } from '../../component.service';\r\n\r\n@Component({\r\n selector: 'languagegrid-component',\r\n templateUrl: './languagegrid.component.html'\r\n})\r\nexport class DxLanguageGridComponent implements OnInit {\r\n @Input() dataSource: any;\r\n\r\n languageCodes = []\r\n languageLocal: any = \"\";\r\n\r\n gridCols: any = [];\r\n\r\n constructor(private componentService: ComponentService) {\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.languageCodes = this.componentService.getlanguageCodes();\r\n }\r\n\r\n ngOnInit() {\r\n this.gridCols = Object.keys(this.dataSource[0]);\r\n const index = this.gridCols.findIndex(item => item === \"Code\");\r\n this.gridCols.splice(index, 1);\r\n\r\n //this.buttonCols = Object.keys(this.dataSource[0]);\r\n //const index_Code = this.buttonCols.findIndex(item => item === \"Code\");\r\n //if (index_Code != -1)\r\n // this.buttonCols.splice(index_Code, 1);\r\n\r\n\r\n //const indexNameLabel = this.gridCols.findIndex(item => item === \"NameLabel\");\r\n\r\n ////NameLabel \r\n ////CardNoLabel \r\n ////ExpiresLabel\r\n ////MonthLabel \r\n ////YearLabel \r\n ////CvvCvcLabel \r\n\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { AppInfoService } from '../../../shared/services';\r\nimport { ComponentService } from '../../component.service';\r\nimport { DxTreeViewComponent } from 'devextreme-angular';\r\n\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\n\r\n@Component({\r\n selector: 'permission-component',\r\n templateUrl: './permission.component.html',\r\n styleUrls: ['./permission.component.css']\r\n})\r\nexport class DxPermissionComponent implements OnInit, OnDestroy {\r\n @ViewChild(DxTreeViewComponent, { static: false }) treeView;\r\n @Input() permissions: any;\r\n @Input() componenttype: any;\r\n languageLocal: any = \"\"; \r\n groups: any = [];\r\n users: any = [];\r\n constructor(public appInfo: AppInfoService, private componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef) {\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n}\r\n\r\n hideDeleteButtonPermission = true;\r\n ngOnInit() {\r\n debugger;\r\n if (this.componenttype == \"imageupload\" || this.componenttype == \"picturebox\" || this.componenttype == \"videoupload\" || this.componenttype == \"fileupload\")\r\n this.hideDeleteButtonPermission = false; \r\n if (typeof this.permissions.deleteHideGroup == \"undefined\") this.permissions.deleteHideGroup = [];\r\n if (typeof this.permissions.deleteHideUsers == \"undefined\") this.permissions.deleteHideUsers = [];\r\n\r\n this.groups = this.appInfo.RiverEntity.userGroups;\r\n this.users = this.appInfo.RiverEntity.users;\r\n this.checkUserAndGroup();\r\n }\r\n\r\n ngOnDestroy() { \r\n }\r\n\r\n checkUserAndGroup() {\r\n this.users.forEach(user => {\r\n user.readonly = this.permissions.readonlyUsers.indexOf(user.id) !== -1;\r\n user.hide = this.permissions.hideUsers.indexOf(user.id) !== -1;\r\n user.deleteHide = this.permissions.deleteHideUsers.indexOf(user.id) !== -1;\r\n }); \r\n\r\n this.groups.forEach(group => {\r\n let rGroup = this.permissions.readonlyGroup.find(f => f.id == group.id);\r\n let hGroup = this.permissions.hideGroup.find(f => f.id == group.id);\r\n let dhGroup = this.permissions.deleteHideGroup.find(f => f.id == group.id);\r\n group.readonly = typeof (rGroup) != \"undefined\" && rGroup.id > 0;\r\n group.hide = typeof (hGroup) != \"undefined\" && hGroup.id > 0;\r\n group.deleteHide = typeof (dhGroup) != \"undefined\" && dhGroup.id > 0;\r\n });\r\n }\r\n\r\n checkSelections() {\r\n for (let i = 0; i < this.users.length; i++) {\r\n let rUsersIndex = this.permissions.readonlyUsers.indexOf(this.users[i].id);\r\n let hUsersIndex = this.permissions.hideUsers.indexOf(this.users[i].id);\r\n //this.users[i].hide = hGroupIndex != -1 || hUsersIndex != -1;\r\n //this.users[i].readonly = rGroupIndex != -1 || rUsersIndex != -1;\r\n }\r\n }\r\n\r\n changeReadonly(isChecked, id, isGroup) {\r\n if (isChecked) {\r\n this.addReadonlyList(id, isGroup);\r\n }\r\n else {\r\n this.removeReadonlyList(id, isGroup);\r\n }\r\n \r\n }\r\n\r\n changeHide(isChecked, id, isGroup) {\r\n if (isChecked) {\r\n this.addHideList(id, isGroup);\r\n }\r\n else {\r\n this.removeHideList(id, isGroup);\r\n }\r\n }\r\n\r\n changeDeleteButtonHide(isChecked, id, isGroup) {\r\n if (isChecked) {\r\n this.addDeleteButtonHideList(id, isGroup);\r\n }\r\n else {\r\n this.removeDeleteButtonHideList(id, isGroup);\r\n }\r\n }\r\n\r\n deleteButtonHideGroupAll = false;\r\n deleteButtonHideUserAll = false;\r\n readonlyGroupAll = false;\r\n hidingGroupAll = false;\r\n readonlyUserAll = false;\r\n hidingUserAll = false;\r\n readonlyChangeAll(isChecked, isGroup) {\r\n\r\n if (isGroup) {\r\n this.groups.forEach(group => {\r\n if (isChecked) {\r\n this.readonlyGroupAll = true;\r\n this.addReadonlyList(group.id, true);\r\n }\r\n else {\r\n this.readonlyGroupAll = false;\r\n this.removeReadonlyList(group.id, true);\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (e) { }\r\n });\r\n }\r\n else {\r\n this.users.forEach(user => {\r\n if (isChecked) {\r\n this.readonlyUserAll = true;\r\n this.addReadonlyList(user.id, false);\r\n }\r\n else {\r\n this.readonlyUserAll = false;\r\n this.removeReadonlyList(user.id, false);\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (e) { }\r\n });\r\n }\r\n\r\n this.checkUserAndGroup();\r\n // try { this.changeDetectorRef.detectChanges(); } catch (e) { }\r\n \r\n }\r\n \r\n deleteButtonHideChangeAll(isChecked, isGroup) {\r\n \r\n if (isGroup) {\r\n this.groups.forEach(group => {\r\n if (isChecked) {\r\n this.deleteButtonHideGroupAll = true;\r\n this.addDeleteButtonHideList(group.id, true);\r\n } \r\n else {\r\n this.deleteButtonHideGroupAll = false;\r\n this.removeDeleteButtonHideList(group.id, true);\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (e) { }\r\n });\r\n }\r\n else {\r\n this.users.forEach(user => {\r\n if (isChecked) {\r\n this.deleteButtonHideUserAll = true;\r\n this.addDeleteButtonHideList(user.id, false);\r\n }\r\n else {\r\n this.deleteButtonHideUserAll = false;\r\n this.removeDeleteButtonHideList(user.id, false);\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (e) { }\r\n });\r\n }\r\n\r\n this.checkUserAndGroup();\r\n }\r\n hidingChangeAll(isChecked, isGroup) {\r\n if (isGroup) {\r\n this.groups.forEach(group => {\r\n if (isChecked) {\r\n this.hidingGroupAll = true;\r\n this.addHideList(group.id, true);\r\n }\r\n else {\r\n this.hidingGroupAll = false;\r\n this.removeHideList(group.id, true);\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (e) { }\r\n });\r\n }\r\n else {\r\n this.users.forEach(user => {\r\n if (isChecked) {\r\n this.hidingUserAll = true;\r\n this.addHideList(user.id, false);\r\n }\r\n else {\r\n this.hidingUserAll = false;\r\n this.removeHideList(user.id, false);\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (e) { }\r\n });\r\n }\r\n\r\n this.checkUserAndGroup();\r\n }\r\n\r\n addReadonlyList(id, isGroup) {\r\n if (isGroup) {\r\n let extGroup = this.permissions.readonlyGroup.find(f => f.id == id);\r\n let group = this.groups.find(f => f.id == id);\r\n if (group && !extGroup) {\r\n let grp: any = {};\r\n grp.id = id;\r\n grp.users = [];\r\n if (group.users && group.users.length > 0) {\r\n let sp = group.users.split(\",\");\r\n sp.forEach(f => {\r\n if (f) grp.users.push(parseInt(f));\r\n });\r\n }\r\n this.permissions.readonlyGroup.push(grp);\r\n }\r\n }\r\n else {\r\n let extUser = this.permissions.readonlyUsers.find(f => f == id);\r\n if (!extUser)\r\n this.permissions.readonlyUsers.push(id);\r\n }\r\n }\r\n\r\n removeReadonlyList(id, isGroup) {\r\n if (isGroup && this.permissions.readonlyGroup.length) {\r\n let extGroup = this.permissions.readonlyGroup.find(f => f.id == id);\r\n if (extGroup) {\r\n this.permissions.readonlyGroup.splice(this.permissions.readonlyGroup.indexOf(extGroup), 1);\r\n }\r\n }\r\n else if (this.permissions.readonlyUsers.length) {\r\n let _in = this.permissions.readonlyUsers.indexOf(id);\r\n if (_in != -1)\r\n this.permissions.readonlyUsers.splice(_in, 1);\r\n }\r\n }\r\n\r\n addDeleteButtonHideList(id, isGroup) {\r\n if (isGroup) {\r\n let extGroup = this.permissions.deleteHideGroup.find(f => f.id == id);\r\n let group = this.groups.find(f => f.id == id);\r\n if (group && !extGroup) {\r\n let grp: any = {};\r\n grp.id = id;\r\n grp.users = [];\r\n if (group.users && group.users.length > 0) {\r\n let sp = group.users.split(\",\");\r\n sp.forEach(f => {\r\n if (f) grp.users.push(parseInt(f));\r\n });\r\n }\r\n this.permissions.deleteHideGroup.push(grp);\r\n }\r\n }\r\n else {\r\n let extUser = this.permissions.deleteHideUsers.find(f => f == id);\r\n if (!extUser)\r\n this.permissions.deleteHideUsers.push(id);\r\n }\r\n }\r\n\r\n removeDeleteButtonHideList(id, isGroup) {\r\n if (isGroup && this.permissions.deleteHideGroup.length) {\r\n let extGroup = this.permissions.deleteHideGroup.find(f => f.id == id);\r\n if (extGroup) {\r\n this.permissions.deleteHideGroup.splice(this.permissions.deleteHideGroup.indexOf(extGroup), 1);\r\n }\r\n }\r\n else if (this.permissions.deleteHideUsers.length) {\r\n let _in = this.permissions.deleteHideUsers.indexOf(id);\r\n if (_in != -1)\r\n this.permissions.deleteHideUsers.splice(_in, 1);\r\n }\r\n }\r\n\r\n addHideList(id, isGroup) {\r\n if (isGroup) {\r\n let extGroup = this.permissions.hideGroup.find(f => f.id == id);\r\n let group = this.groups.find(f => f.id == id);\r\n if (group && !extGroup) {\r\n let grp: any = {};\r\n grp.id = id;\r\n grp.users = [];\r\n if (group.users && group.users.length > 0) {\r\n let sp = group.users.split(\",\");\r\n sp.forEach(f => {\r\n if (f) grp.users.push(parseInt(f));\r\n });\r\n }\r\n this.permissions.hideGroup.push(grp);\r\n }\r\n }\r\n else {\r\n let extUser = this.permissions.hideUsers.find(f => f == id);\r\n if (!extUser)\r\n this.permissions.hideUsers.push(id);\r\n }\r\n }\r\n\r\n removeHideList(id, isGroup) {\r\n if (isGroup && this.permissions.hideGroup.length) {\r\n let extGroup = this.permissions.hideGroup.find(f => f.id == id);\r\n if (extGroup) {\r\n this.permissions.hideGroup.splice(this.permissions.hideGroup.indexOf(extGroup), 1);\r\n }\r\n }\r\n else if (this.permissions.hideUsers.length) {\r\n let _in = this.permissions.hideUsers.indexOf(id);\r\n if (_in != -1)\r\n this.permissions.hideUsers.splice(_in, 1);\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { AppInfoService, EventEmitterService } from '../../../shared/services';\r\nimport { ComponentService } from '../../component.service';\r\n\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport { LocalStorageService } from '../../local-storage.service';\r\n\r\n@Component({\r\n selector: 'popootoolbox-component',\r\n templateUrl: './popootoolbox.component.html',\r\n styleUrls: ['./popootoolbox.component.css']\r\n})\r\nexport class DxPopootoolboxComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() showSettingPopup: boolean;\r\n\r\n historyActions = { save: 1, undo: 2, redo: 3 };\r\n constructor(public appInfo: AppInfoService,\r\n public componentService: ComponentService,\r\n public storage : LocalStorageService,\r\n private eventEmitterService: EventEmitterService) { }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n saveSetting() {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.historyActions.save);\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.historyActions.undo);\r\n }\r\n\r\n undoSetting() {\r\n this.eventEmitterService.applyHistory(this.historyActions.undo);\r\n //this.data.showEditPop = true;\r\n //this.model = JSON.parse(this.storage.get(this.model.uuid));\r\n }\r\n\r\n\r\n \r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ComponentParameters } from '../../component.parameters';\r\nimport { ComponentService } from '../../component.service';\r\nimport { GenericService, AppInfoService } from '../../../shared/services';\r\n//declare var myfunction: any;\r\nimport notify from \"devextreme/ui/notify\";\r\n\r\n@Component({\r\n selector: 'sqlcommand-component',\r\n templateUrl: './sqlcommand.component.html',\r\n styleUrls: ['./sqlcommand.component.css']\r\n})\r\nexport class DxSqlcommandComponent implements OnInit {\r\n @Input() item: any;\r\n\r\n selectedConnection: any;\r\n editorOptions = { theme: 'vs', language: 'sql' };\r\n connections: any = [];\r\n constructor(public appInfo: AppInfoService, private componentService: ComponentService, private genericService: GenericService) { }\r\n\r\n ngOnInit() {\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n this.selectedConnection = this.connections ? this.connections[0].id : 0;\r\n this.item.connectionString = this.createConnectionString();\r\n // this.ismonocoActive = true;\r\n //setTimeout(f => {\r\n // this.ismonocoActive = true;\r\n //}, 1000);\r\n }\r\n\r\n onInit(editor) {\r\n //setTimeout(f => {\r\n // this.ismonocoActive = true;\r\n //}, 1000);\r\n }\r\n\r\n onValueChanged(event) {\r\n this.selectedConnection = event.value;\r\n this.item.connectionString = this.createConnectionString();\r\n }\r\n\r\n executeScript() {\r\n if (this.selectedConnection && this.item.query) {\r\n let connectionString = this.createConnectionString();\r\n this.genericService.getDataTable(this.item.query, connectionString).subscribe(result => {\r\n \r\n if (result && result.length > 0) {\r\n notify(\"Bağlantı başarılı. İşlenecek veri sayısı: \" + result.length, \"success\", 4000);\r\n }\r\n else {\r\n notify(\"Veri bulunamadı! Lütfen bağlantınızı ve sql komutunuzu kontrol ediniz\", \"warning\", 4000);\r\n }\r\n }, err => {\r\n notify(\"Bağlantı sağlanamadı! Lütfen bağlantınızı ve sql komutunuzu kontrol ediniz\", \"warning\", 4000);\r\n });\r\n }\r\n else {\r\n notify(\"Lütfen bağlantınızı ve sql komutunuzu doldurunuz\", \"warning\", 4000);\r\n }\r\n\r\n }\r\n\r\n createConnectionString() {\r\n if (this.selectedConnection > 0) {\r\n let conn = this.connections.find(x => x.id === this.selectedConnection);\r\n let connectionString =\r\n \"Server=\" + conn.serverName\r\n + \";Database=\" + conn.databaseName\r\n + \";user ID=\" + conn.userName\r\n + \";Password=\" + conn.password + \";\";\r\n return connectionString;\r\n }\r\n\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { DndDropEvent, DropEffect } from 'ngx-drag-drop';\r\nimport { CdkDragDrop, CdkDragStart, CdkDragEnd, moveItemInArray, copyArrayItem, transferArrayItem } from '@angular/cdk/drag-drop';\r\n\r\nimport { ComponentService } from '../component.service';\r\nimport { EventEmitterService, AppInfoService } from '../../shared/services';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n@Component({\r\n selector: 'app-accordion',\r\n templateUrl: './accordion.component.html',\r\n styleUrls: ['./accordion.component.scss']\r\n})\r\nexport class DxAccordionComponent implements ComponentParameters {\r\n @Input() data: any;\r\n @Input() lang: any;\r\n @Input() isEdit: any;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n showDisplay: any = \"block\";\r\n\r\n onGridDragClass: string = \"active\";\r\n actions = [\r\n {\r\n icon: \"edit\",\r\n alignment: \"center\",\r\n hint: \"Center\",\r\n action: \"edit\"\r\n },\r\n {\r\n icon: \"trash\",\r\n alignment: \"right\",\r\n hint: \"Delete\",\r\n action: \"delete\"\r\n },\r\n ];\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n panelPopup: boolean = false;\r\n panelPermissionPopup: boolean = false;\r\n selectedPanelPermission: any;\r\n languageLocal: any = \"\";\r\n\r\n constructor(private componentService: ComponentService, private eventEmitterService: EventEmitterService, public appInfo: AppInfoService, public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n\r\n }\r\n\r\n //outsideDisabled: any = false;\r\n //outsideVisible: any = true;\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n if (!this.isEdit) this.checkUserAuthorization();\r\n\r\n this.data.options = this.data.options ? this.data.options : { \"bgColor\": \"rgba(255, 255, 255, 1)\", \"color\": \"rgb(0, 0, 0)\" };\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n //\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n\r\n checkUserAuthorization() {\r\n for (let i = 0; i < this.data.items.length; i++) {\r\n let userId = this.appInfo.currentUser.id;\r\n let rGroupIndex = this.data.items[i].permissions.readonlyGroup.indexOf(userId);\r\n let rUsersIndex = this.data.items[i].permissions.readonlyUsers.indexOf(userId);\r\n let hGroupIndex = this.data.items[i].permissions.hideGroup.indexOf(userId);\r\n let hUsersIndex = this.data.items[i].permissions.hideUsers.indexOf(userId);\r\n\r\n let isHide = hGroupIndex != -1 || hUsersIndex != -1;\r\n let isReadonly = rGroupIndex != -1 || rUsersIndex != -1;\r\n\r\n if (isHide) this.data.items[i].hide = true;\r\n else this.data.items[i].hide = false;\r\n if (isReadonly) this.data.items[i].readonly = true;\r\n else this.data.items[i].readonly = false;\r\n }\r\n }\r\n\r\n itemClick(e, item, list) {\r\n if (e.itemData.action == \"edit\") {\r\n this.eventEmitterService.showPopop(item.uuid);\r\n //item.showEditPop = true;\r\n }\r\n else if (e.itemData.action == \"delete\") {\r\n let msg = item.type == \"grid\" || item.type == \"panel\" ? \"\" + this.languageLocal.theseComponentElementsDeleted + \"\" : \"\" + this.languageLocal.messageSure + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) this.removeField(item, list);\r\n });\r\n }\r\n }\r\n\r\n\r\n dragStart() {\r\n this.onGridDragClass = \"active\";\r\n }\r\n\r\n\r\n onDragEnded(event: CdkDragEnd): void {\r\n\r\n //event.source._dragRef.reset();\r\n }\r\n cdkGridDrop(event: CdkDragDrop, list?: any[]) {\r\n\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n } else {\r\n let type = event.previousContainer.element.nativeElement.dataset.type;\r\n if (type && type == \"copy\") {\r\n let field: any = event.previousContainer.data[event.previousIndex];\r\n if (field.type != \"panel\") {\r\n localStorage.setItem(\"currentFieldPanel\", JSON.stringify(event.previousContainer.data[event.previousIndex]));\r\n let currentFieldPanel: any = JSON.parse(localStorage.getItem(\"currentFieldPanel\"));\r\n localStorage.removeItem(\"currentFieldPanel\");\r\n //localStorage.removeItem(key);localStorage.clear();\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n currentFieldPanel.id = this.componentService.createId(currentFieldPanel.type, currentFormSelected.components, this.anotherPopupId);\r\n list.splice(event.currentIndex, 0, currentFieldPanel);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.invalidTarget, \"warning\", 300);\r\n }\r\n\r\n /*copyArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex);*/\r\n }\r\n else {\r\n transferArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex);\r\n }\r\n }\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n this.onGridDragClass = \"\";\r\n }\r\n\r\n removeField(item, list) {\r\n list.splice(list.indexOf(item), 1);\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n this.componentService.showAlert(this.languageLocal.deleted, \"success\", 300);\r\n }\r\n\r\n\r\n addPanel() {\r\n var panel = {\r\n title: this.languageLocal.title,\r\n permissions: {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n components: []\r\n }\r\n this.data.items.push(panel);\r\n this.componentService.createCdkList(this.anotherPopupId);\r\n }\r\n\r\n\r\n deletePanel(index) {\r\n this.data.items.splice(index, 1);\r\n }\r\n\r\n addPermission(panel) {\r\n this.selectedPanelPermission = panel.permissions;\r\n this.panelPermissionPopup = true;\r\n }\r\n\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n setLanguageToDatas() {\r\n this.actions = [\r\n {\r\n icon: \"edit\",\r\n alignment: \"center\",\r\n hint: this.languageLocal.center/*\"Center\"*/,\r\n action: \"edit\"\r\n },\r\n {\r\n icon: \"trash\",\r\n alignment: \"right\",\r\n hint: this.languageLocal.delete/*\"Delete\"*/,\r\n action: \"delete\"\r\n },\r\n ];\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { AppInfoService, FormService, GenericService } from '../../shared/services';\r\nimport { Subscription } from 'rxjs';\r\n//import { DomSanitizationService } from '@angular/platform-browser/esm5/src/security/dom_sanitization_service';\r\n\r\n\r\ndeclare var globalIpAddress: any;\r\n\r\n@Component({\r\n selector: 'button-component',\r\n templateUrl: './button.component.html',\r\n styleUrls: ['./button.component.css']\r\n})\r\n\r\nexport class DxButtonComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: any;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n\r\n buttonTypeEnum = {\r\n Kaydet: 1,\r\n // KaydetGönder: 2,\r\n Onayla: 2,\r\n Reddet: 3,\r\n // GeriGönder: 5,\r\n İptalEt: 4,\r\n ReddetBitir: 5,\r\n // Tamamla: 8\r\n }\r\n\r\n buttonActions = [\r\n { \"text\": \"Kaydet\", \"value\": 1 },\r\n // { \"text\": \"Kaydet ve Gönder\", \"value\": 2 },\r\n { \"text\": \"Onayla\", \"value\": 2 },\r\n { \"text\": \"Reddet\", \"value\": 3 },\r\n //{ \"text\": \"Geri Gönder\", \"value\": 5 },\r\n { \"text\": \"İptal Et\", \"value\": 4 },\r\n { \"text\": \"Reddet ve Bitir\", \"value\": 5 },\r\n //{ \"text\": \"Tamamla\", \"value\": 8 }\r\n ];\r\n\r\n buttonTypes = [\r\n { \"text\": \"Mavi\", \"value\": \"default\" },\r\n { \"text\": \"Gri\", \"value\": \"normal\" },\r\n { \"text\": \"Yeşil\", \"value\": \"success\" },\r\n { \"text\": \"Kırmızı\", \"value\": \"danger\" }\r\n ];\r\n possitions = [\r\n { \"text\": \"Sol\", \"value\": \"left\" },\r\n { \"text\": \"Sağ\", \"value\": \"right\" }\r\n ];\r\n\r\n buttonModel = {\r\n //\"text\": \"Kaydet\",selectedButton.priceComponen t\r\n \"name\": \"Kaydet\",\r\n \"status\": 1,\r\n \"type\": \"default\",\r\n \"possition\": \"left\",\r\n \"language\": [\r\n {\r\n \"buttonId\": \"0\",\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Kaydet\",\r\n \"DefaultLabel\": \"Kaydet\",\r\n }\r\n ]\r\n }\r\n\r\n\r\n textComponentList: any = [];\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n usersAndGroupsPopup: boolean = false;\r\n buttonSettingPopup: boolean = false;\r\n buttonsPopup: boolean = false;\r\n showRejectReasonPopup: boolean = false;\r\n\r\n userPermissionAll: boolean = false;\r\n groupPermissionAll: boolean = false;\r\n\r\n rejectReason: string = \"\";\r\n\r\n users = [];\r\n groups = [];\r\n\r\n invokeChangeEventLocal: Subscription;\r\n\r\n userButtons = [];\r\n customerIp = \"1.0.0.0\";\r\n currentFormSelectedGlobal;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n hideButtonList = [];\r\n languageLocal: any = \"\";\r\n\r\n constructor(public appInfo: AppInfoService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n private eventEmitterService: EventEmitterService,\r\n private genericService: GenericService,\r\n public formService: FormService,\r\n //public _sanitizer: DomSanitizationService,\r\n public componentService: ComponentService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n\r\n\r\n //let fff = this.componentService.currentFor m;\r\n\r\n\r\n this.textComponentList = this.componentService.getInputComponentList(this.componentService.currentForm.components, this.anotherPopupId);\r\n\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == \"isReadonly\") {\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n if (sub.data) this.currentFormSelectedGlobal.isReadonly = sub.data;\r\n else this.currentFormSelectedGlobal.isReadonly = false;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n this.getFormList();\r\n\r\n this.customerIp = globalIpAddress;\r\n //this.genericService.getIPAddress().subscribe((result: any) => {\r\n // this.customerIp = result.ip;\r\n //});\r\n }\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n allButtonIcons = [];\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n\r\n this.allButtonIcons = this.componentService.getAllIcons();\r\n\r\n this.loadUserButtons();\r\n // this.defaultLanguag e = this.componentService.getLang(this.lang, this.data.languag e);\r\n if (this.isEdit) {\r\n this.groups = this.appInfo.RiverEntity.userGroups;\r\n this.users = this.appInfo.RiverEntity.users;\r\n }\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n this.data.showBorder = typeof this.data.showBorder == \"undefined\" ? true : this.data.showBorder;\r\n\r\n this.data.maxPaymentHour = typeof this.data.maxPaymentHour == \"undefined\" ? null : this.data.maxPaymentHour;\r\n this.data.minPaymentHour = typeof this.data.minPaymentHour == \"undefined\" ? null : this.data.minPaymentHour;\r\n \r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.hideButtonList = sub.data.hideButtonList\r\n }\r\n });\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n }\r\n\r\n checkShow(val) {\r\n let bool = true;\r\n if (typeof this.hideButtonList != \"undefined\" && this.hideButtonList.length > 0) {\r\n if (this.hideButtonList.includes(val.property.name)) {\r\n bool = false;\r\n } else {\r\n bool = true;\r\n }\r\n } else {\r\n\r\n }\r\n return bool\r\n\r\n }\r\n\r\n formList\r\n getFormList() {\r\n this.formService.getAllForms().subscribe(forms => {\r\n //this.formList = ;\r\n this.formList = forms;\r\n })\r\n }\r\n formComponentList\r\n customerFormOnChange() {\r\n //\r\n\r\n let form = this.formList.find(x => x.id == this.selectedButton.customerFormId);\r\n if (form && form.forM_JSON) {\r\n let formjson = JSON.parse(form.forM_JSON);\r\n formjson.components = formjson.components.filter(f => !f.hide);\r\n this.formComponentList = this.componentService.getInputComponentList(formjson.components, this.anotherPopupId);\r\n\r\n }\r\n }\r\n\r\n loadUserButtons() {\r\n if (this.isEdit) {\r\n this.userButtons = this.data.buttons;\r\n }\r\n else {\r\n this.data.buttons.forEach(btn => {\r\n let userId = this.appInfo.currentUser.id;\r\n\r\n if (btn.users.length <= 0 && btn.groups.length <= 0) {\r\n this.userButtons.push(btn);\r\n }\r\n else {\r\n let isGroupUser = false;\r\n if (btn.groups) {\r\n btn.groups.forEach(g => {\r\n if (g.users.indexOf(userId) >= 0) {\r\n isGroupUser = true;\r\n }\r\n });\r\n }\r\n if (btn.users.indexOf(userId) >= 0 || isGroupUser) {\r\n this.userButtons.push(btn);\r\n }\r\n }\r\n\r\n\r\n\r\n //else if (btn.users.indexOf(userId) >= 0) {\r\n // this.userButtons.push(btn);\r\n //}\r\n //else if (btn.groups) {\r\n // btn.groups.forEach(g => {\r\n // if (g.users.indexOf(userId) >= 0) {\r\n // this.userButtons.push(btn);\r\n // }\r\n // });\r\n //}\r\n\r\n\r\n\r\n\r\n\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n selectedColLanguage: any;\r\n addButtonLanguage(button, i) {\r\n //\r\n //this.componentService.getLang(this.lang, button.property.language);\r\n\r\n let j = 0;\r\n for (j = 0; j < button.property.language.length; j++) {\r\n button.property.language[j].buttonId = i;\r\n }\r\n\r\n this.selectedColLanguage = button.property.language;\r\n this.languagePopup = true;\r\n }\r\n getTextValue(btn) {\r\n let _text = \"\";\r\n if (typeof btn.property.language === \"undefined\") {\r\n _text = btn.property.text;\r\n }\r\n else {\r\n let index = btn.property.language.findIndex(item => item.Code === this.lang);\r\n\r\n if (index > -1) {\r\n if (btn.property.language[index] && btn.property.language[index].Label)\r\n _text = btn.property.language ? btn.property.language[index].Label : '-';\r\n\r\n else\r\n _text = '-';\r\n\r\n }\r\n else\r\n _text = btn.property.language ? btn.property.language[0].Label : '-';\r\n }\r\n return _text;\r\n }\r\n statusOnChange(button, index) {\r\n\r\n\r\n let statusText = this.buttonActions.find(f => f.value == button.property.status).text;\r\n if (typeof button.property.language[0].Label === \"undefined\" || button.property.language[0].Label == \"\" || button.property.language[0].Label == button.property.language[0].DefaultLabel) {\r\n button.property.language[0].Label = statusText;\r\n button.property.language[0].DefaultLabel = statusText;\r\n } // button.property.name = this.buttonActions.find(f => f.value == button.property.status).text;\r\n\r\n }\r\n\r\n //replaceTurkish(str) {\r\n // ı ğ ş ü\r\n // Ö Ç İ Ğ Ş Ü\r\n // 'ö': 'o', 'ç': 'c', 'ö': 'o', 'ö': 'o', 'ö': 'o', 'ö': 'o',\r\n // 'ö': 'o', 'ö': 'o', 'ö': 'o', 'ö': 'o', 'ö': 'o', 'ö': 'o',\r\n // for (var x in { 'ö': 'o', 'b': 'o' }) {\r\n // str = str.replace(new RegExp(\"ö\", \"gm\"), \"o\");\r\n // retStr = retStr.replace(new RegExp(x, 'g'), obj[x]);\r\n // }\r\n\r\n\r\n // return \r\n //}\r\n\r\n onEditPopopShown() {\r\n this.textComponentList = this.componentService.getInputComponentList(this.componentService.currentForm.components, this.anotherPopupId);\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n defaultCustomerObj = { id: 0, name: \"\", surname: \"\", identityNumber: \"\", country: \"\", city: \"\", email: \"\", address: \"\", ip: this.customerIp };\r\n paymentProviders = [{ name: \"IYZICO\" }, { name: \"YAPIKREDI\" }, { name: \"HPM\" }];\r\n addNewButton() {\r\n let btn: any = {};\r\n btn.users = [];\r\n btn.groups = [];\r\n btn.isLocation = false;\r\n btn.isRequiredNotCheck = false;\r\n btn.isPayment = false;\r\n btn.isZoom = false;\r\n btn.zoomUrl = \"\";\r\n btn.isLiveWeb = false;\r\n btn.liveWeb = { isCreateLiveWeb: true, urlHost: \"\", urlParticipant: \"\" };\r\n this.defaultCustomerObj.ip = this.customerIp;\r\n btn.customer = this.defaultCustomerObj;\r\n btn.priceComponent = \"\";\r\n btn.hirePurchaseComponent = \"\";\r\n btn.descriptionComponent = \"\";\r\n btn.paymentProvider = \"\";\r\n btn.property = this.componentService.cloneModel(this.buttonModel);\r\n this.data.buttons.push(btn);\r\n }\r\n\r\n deleteButton(index) {\r\n let msg = \"\" + this.languageLocal.messageButtonDelete + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.data.buttons.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n saveButtons() {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.buttonsPopup = false;\r\n }\r\n\r\n selectedButton: any;\r\n openUsersAndGroupPermissionPopup(btn) {\r\n this.selectedButton = btn;\r\n this.users.forEach(user => {\r\n if (btn.users.indexOf(user.id) != -1) {\r\n user.hasPermission = true;\r\n }\r\n else {\r\n user.hasPermission = false;\r\n }\r\n });\r\n\r\n this.groups.forEach(group => {\r\n let extGroup = btn.groups.find(f => f.id == group.id);\r\n if (extGroup) {\r\n group.hasPermission = true;\r\n }\r\n else {\r\n group.hasPermission = false;\r\n }\r\n });\r\n\r\n this.usersAndGroupsPopup = true;\r\n }\r\n\r\n openButtonSettingPopup(btn) {\r\n\r\n this.selectedButton = btn;\r\n this.selectedButton.isLocation = typeof this.selectedButton.isLocation == \"undefined\" ? false : this.selectedButton.isLocation;\r\n this.selectedButton.isRequiredNotCheck = typeof this.selectedButton.isRequiredNotCheck == \"undefined\" ? false : this.selectedButton.isRequiredNotCheck;\r\n this.selectedButton.isPayment = typeof this.selectedButton.isPayment == \"undefined\" ? false : this.selectedButton.isPayment;\r\n this.selectedButton.isZoom = typeof this.selectedButton.isZoom == \"undefined\" ? false : this.selectedButton.isZoom;\r\n this.selectedButton.isLiveWeb = typeof this.selectedButton.isLiveWeb == \"undefined\" ? false : this.selectedButton.isLiveWeb;\r\n this.selectedButton.liveWeb = typeof this.selectedButton.liveWeb == \"undefined\" ? { isCreateLiveWeb: true, urlHost: \"\", urlParticipant: \"\" } : this.selectedButton.liveWeb;\r\n this.selectedButton.zoomUrl = typeof this.selectedButton.zoomUrl == \"undefined\" ? \"\" : this.selectedButton.zoomUrl;\r\n this.selectedButton.priceComponent = typeof this.selectedButton.priceComponent == \"undefined\" ? \"\" : this.selectedButton.priceComponent;\r\n this.selectedButton.hirePurchaseComponent = typeof this.selectedButton.hirePurchaseComponent == \"undefined\" ? \"\" : this.selectedButton.hirePurchaseComponent;\r\n this.selectedButton.descriptionComponent = typeof this.selectedButton.descriptionComponent == \"undefined\" ? \"\" : this.selectedButton.descriptionComponent;\r\n this.selectedButton.paymentProvider = typeof this.selectedButton.paymentProvider == \"undefined\" ? \"IYZICO\" : this.selectedButton.paymentProvider;\r\n this.defaultCustomerObj.ip = this.customerIp;\r\n this.selectedButton.customer = typeof this.selectedButton.customer == \"undefined\" ? this.defaultCustomerObj : this.selectedButton.customer;\r\n this.buttonSettingPopup = true;\r\n }\r\n\r\n saveButtonSetting() {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.buttonSettingPopup = false;\r\n }\r\n\r\n /* onStatusValueChanged(val, btn) {\r\n let status = this.buttonActions.find(f => f.value == val);\r\n if (status && (btn.property.text==\"\" || btn.property.text==null || typeof(btn.property.text) == \"undefined\")) {btn.property.text = status.text;}\r\n } */\r\n userPermissionChangeAll(isChecked) {\r\n this.users.forEach(user => {\r\n if (isChecked) {\r\n if (this.selectedButton.users.indexOf(user.id) == -1) {\r\n this.selectedButton.users.push(user.id);\r\n }\r\n }\r\n else {\r\n if (this.selectedButton.users.indexOf(user.id) != -1) {\r\n this.selectedButton.users.splice(this.selectedButton.users.indexOf(user.id), 1);\r\n }\r\n }\r\n });\r\n this.openUsersAndGroupPermissionPopup(this.selectedButton);\r\n }\r\n changeUserPermission(isChecked, id) {\r\n if (isChecked) {\r\n if (this.selectedButton.users.indexOf(id) == -1) {\r\n this.selectedButton.users.push(id);\r\n }\r\n }\r\n else {\r\n if (this.selectedButton.users.indexOf(id) != -1) {\r\n this.selectedButton.users.splice(this.selectedButton.users.indexOf(id), 1);\r\n }\r\n }\r\n\r\n }\r\n\r\n groupPermissionChangeAll(isChecked) {\r\n this.groups.forEach(group => {\r\n if (isChecked) {\r\n let extGroup = this.selectedButton.groups.find(f => f.id == group.id);\r\n if (!extGroup) {\r\n let grp: any = {};\r\n grp.id = group.id;\r\n grp.users = [];\r\n let _group = this.groups.find(f => f.id == group.id);\r\n if (_group.users && _group.users.length > 0) {\r\n let sp = _group.users.split(\",\");\r\n sp.forEach(f => {\r\n if (f) grp.users.push(parseInt(f));\r\n });\r\n }\r\n this.selectedButton.groups.push(grp);\r\n }\r\n }\r\n else {\r\n let extGroup = this.selectedButton.groups.find(f => f.id == group.id);\r\n if (extGroup) {\r\n this.selectedButton.groups.splice(this.selectedButton.groups.indexOf(extGroup), 1);\r\n }\r\n }\r\n });\r\n this.openUsersAndGroupPermissionPopup(this.selectedButton);\r\n }\r\n\r\n changeGroupPermission(isChecked, id, users) {\r\n if (isChecked) {\r\n let extGroup = this.selectedButton.groups.find(f => f.id == id);\r\n if (!extGroup) {\r\n let grp: any = {};\r\n grp.id = id;\r\n grp.users = [];\r\n if (users && users.length > 0) {\r\n let sp = users.split(\",\");\r\n sp.forEach(f => {\r\n if (f) grp.users.push(parseInt(f));\r\n });\r\n }\r\n this.selectedButton.groups.push(grp);\r\n }\r\n }\r\n else {\r\n let extGroup = this.selectedButton.groups.find(f => f.id == id);\r\n if (extGroup) {\r\n this.selectedButton.groups.splice(this.selectedButton.groups.indexOf(extGroup), 1);\r\n }\r\n }\r\n }\r\n\r\n selectedFormStatus: number;\r\n selectedButtonName: any;\r\n submitForm(args, status, name, isRequiredNotCheck = false, button = null) {\r\n debugger;\r\n if (!args.validationGroup.validate().isValid && status != 1 && isRequiredNotCheck == false) {\r\n this.componentService.showAlert(this.languageLocal.alertFillRequiredFields, \"error\", 5000)\r\n return;\r\n }\r\n\r\n let currentTime = new Date()\r\n let currentTimestr = currentTime.getHours() + \":\" + currentTime.getMinutes() + \":00\"\r\n\r\n if (button.minPaymentHour != null) {\r\n let date = new Date(button.minPaymentHour)\r\n let str = date.getHours() + \":\" + date.getMinutes() + \":00\"\r\n if (new Date('1/1/1999 ' + currentTimestr) < new Date('1/1/1999 ' + str)) { this.componentService.showAlert(this.languageLocal.paymentHourWarning, \"error\", 5000); return; }\r\n }\r\n\r\n if (button.maxPaymentHour != null) {\r\n let date = new Date(button.maxPaymentHour)\r\n let str = date.getHours() + \":\" + date.getMinutes() + \":00\"\r\n if (new Date('1/1/1999 ' + currentTimestr) > new Date('1/1/1999 ' + str)) { this.componentService.showAlert(this.languageLocal.paymentHourWarning, \"error\", 5000); return; }\r\n }\r\n\r\n\r\n this.eventEmitterService.buttonClickChangeEvent(null);\r\n let stop = false;\r\n let requiredFiles = []\r\n setTimeout(() => {\r\n let CheckRequiredComponents = this.componentService.getFilesComponentList(this.currentFormSelectedGlobal.components, this.anotherPopupId).filter(x => x.type == \"signature\" || x.type == \"fileupload\" || x.type == \"picturebox\" || x.type == \"videoupload\" || x.type == \"imageupload\");\r\n if (CheckRequiredComponents.length > 0 && status != 1) {\r\n CheckRequiredComponents.forEach(component => {\r\n if (component.required && component.outsideVisible) {\r\n console.log(component)\r\n if (component.valueTemp.length == 0) {\r\n stop = true;\r\n requiredFiles.push(component.id)\r\n } else {\r\n stop == true ? stop = true : stop = false;\r\n }\r\n }\r\n });\r\n }\r\n if (stop && status != 1) {\r\n this.eventEmitterService.warningChangeEvent({ requiredFiles: requiredFiles });\r\n this.componentService.showAlert(this.languageLocal.alertFillRequiredFields, \"error\", 5000)\r\n return;\r\n };\r\n //let resu,lt = custom({\r\n // title: \"!\", messageHtml: msg, buttons: [\r\n // { text: \"Evet\", onClick: (e) => { return true; } },\r\n // { text: \"Hayır\", onClick: (e) => { return false; } }\r\n // ]\r\n //}).show();\r\n this.selectedFormStatus = status;\r\n this.selectedButtonName = name;\r\n let msg = \"\" + this.languageLocal.messageApproveTransaction + \"\"\r\n let result = confirm(msg, \"!\");\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n if (status == this.componentService.formStatus.Disapprove) {\r\n this.showRejectReasonPopup = true;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n else {\r\n this.sendFormData();\r\n }\r\n }\r\n });\r\n }, 100);\r\n\r\n }\r\n\r\n sendFormData(type?) {\r\n\r\n\r\n if (typeof type != \"undefined\") {\r\n if (type == this.buttonTypeEnum.Reddet) {\r\n if (this.rejectReason == \"\") {\r\n this.componentService.showAlert(this.languageLocal.alertFillRequiredFields, \"error\", 5000)\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (typeof this.componentService.isMenuForm != \"undefined\" && this.componentService.isMenuForm == true)\r\n this.eventEmitterService.submitMenu(this.selectedFormStatus, this.selectedButtonName, \"\");\r\n else\r\n this.eventEmitterService.sendForm(this.selectedFormStatus, this.selectedButtonName, this.rejectReason, this.anotherPopupId);\r\n }\r\n\r\n buttonIconPopoverOpen = false;\r\n hideEmojiPopoper(e) {\r\n //this.chatMessageInputStartPos = null;\r\n //this.chatMessageInputEndPos = null;\r\n //let myField = this.chatMessageInput.nativeElement;\r\n //if (!(this.chatMessageInputStartPos)) {\r\n // myField.selectionStart = this.chatMessageInputStartPos;\r\n // myField.selectionEnd = this.chatMessageInputEndPos;\r\n //}\r\n //myField.focus();\r\n }\r\n toggleIconPanel(btn) {\r\n debugger;\r\n this.selectedButton = btn;\r\n this.buttonIconPopoverOpen = !this.buttonIconPopoverOpen;\r\n }\r\n setButtonIcon(_icon) {\r\n debugger;\r\n if (_icon && _icon != \"\") {\r\n this.selectedButton.property.icon = _icon.icon;\r\n }\r\n else {\r\n this.selectedButton.property.icon = '';\r\n }\r\n this.buttonIconPopoverOpen = !this.buttonIconPopoverOpen;\r\n //let myField = this.chatMessageInput.nativeElement;\r\n //if (!(this.chatMessageInputStartPos)) {\r\n // this.chatMessageInputStartPos = myField.selectionStart;\r\n // this.chatMessageInputEndPos = myField.selectionEnd;\r\n //}\r\n //let myValueClear = this.insertAtCursor(_icon);\r\n //this.chatMessageText = myValueClear;\r\n }\r\n getButtonIconClass(btn) {\r\n if (typeof btn == 'undefined')\r\n return \"icon-setting-button-delete\";\r\n\r\n return typeof btn.property.icon == 'undefined' || btn.property.icon == '' ? 'icon-setting-button-empty' : 'icon-setting-button';\r\n }\r\n\r\n getButtonGeneralCss(btn) {\r\n let _myStyle = {};\r\n if (btn.property.height)\r\n _myStyle[\"height\"] = btn.property.height + (this.componentService.isInteger(btn.property.height) ? \"px\" : \"\");\r\n if (btn.property.width)\r\n _myStyle[\"width\"] = btn.property.width + (this.componentService.isInteger(btn.property.width) ? \"px\" : \"\");\r\n\r\n return _myStyle;\r\n }\r\n\r\n getButtonGeneralCssText(btn, type) {\r\n // font-size: 103px;\r\n //width: 103px;\r\n //height: 18px;\r\n /*\r\n 14 18\r\n 20 x\r\n 20*18/14\r\n */\r\n let _myStyle = {};\r\n if (btn.property.fontSize) {\r\n if (type == \"i\")\r\n _myStyle[\"font-size\"] = btn.property.fontSize + (this.componentService.isInteger(btn.property.fontSize) ? \"px\" : \"\");\r\n else\r\n _myStyle[\"font-size\"] = this.componentService.isInteger(btn.property.fontSize) ? ((btn.property.fontSize - 3) + \"px\") : (\"calc(\" + btn.property.fontSize + \" - 3px)\");\r\n\r\n //btn.property.fontSize +( this.componentService.isInteger(btn.property.fontSize) ? \"px\" : \"\");\r\n\r\n _myStyle[\"width\"] = btn.property.fontSize + (this.componentService.isInteger(btn.property.fontSize) ? \"px\" : \"\");\r\n } else {\r\n if (type == \"i\")\r\n _myStyle[\"font-size\"] = \"17px\";\r\n else\r\n _myStyle[\"font-size\"] = \"14px\";\r\n\r\n _myStyle[\"width\"] = \"18px\";\r\n }\r\n _myStyle[\"height\"] = \"18px\";\r\n\r\n return _myStyle;\r\n }\r\n\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n setLanguageToDatas() {\r\n this.buttonActions = [\r\n { \"text\": this.languageLocal.save /*\"Kaydet\"*/, \"value\": 1 },\r\n { \"text\": this.languageLocal.saveandSend /*\"Kaydet ve Gönder\"*/, \"value\": 2 },\r\n { \"text\": this.languageLocal.approve /*\"Onayla\"*/, \"value\": 3 },\r\n { \"text\": this.languageLocal.reject /* \"Reddet\"*/, \"value\": 4 },\r\n //{ \"text\": this.languageLocal.sendBack /* \"Geri Gönder\"*/, \"value\": 5 },\r\n { \"text\": this.languageLocal.cancel /*\"İptal Et\"*/, \"value\": 5 },\r\n { \"text\": this.languageLocal.deslineAndEnd /*\"Reddet ve Bitir\"*/, \"value\": 6 },\r\n //{ \"text\": this.languageLocal.complete /*\"Tamamla\"*/, \"value\": 8 }\r\n ];\r\n\r\n this.buttonTypes = [\r\n { \"text\": this.languageLocal.blue /*\"Mavi\"*/, \"value\": \"default\" },\r\n { \"text\": this.languageLocal.grey /*\"Gri\"*/, \"value\": \"normal\" },\r\n { \"text\": this.languageLocal.green /*\"Yeşil\"*/, \"value\": \"success\" },\r\n { \"text\": this.languageLocal.red /*\"Kırmızı\"*/, \"value\": \"danger\" }\r\n ];\r\n\r\n this.possitions = [\r\n { \"text\": this.languageLocal.left /*\"Sol\"*/, \"value\": \"left\" },\r\n { \"text\": this.languageLocal.right /*\"Sağ\"*/, \"value\": \"right\" }\r\n ];\r\n\r\n this.buttonModel = {\r\n //\"text\": \"Kaydet\",selectedButton.priceComponen t\r\n \"name\": this.languageLocal.save /*\"Kaydet\"*/,\r\n \"status\": 1,\r\n \"type\": \"default\",\r\n \"possition\": \"left\",\r\n \"language\": [\r\n {\r\n \"buttonId\": \"0\",\r\n \"Code\": \"trTR\",\r\n \"Label\": this.languageLocal.save /*\"Kaydet\"*/,\r\n \"DefaultLabel\": this.languageLocal.save /* \"Kaydet\"*/,\r\n }\r\n ]\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { AppInfoService, GenericService } from '../../shared/services';\r\n\r\nexport class SqlScriptCheckBoxModel {\r\n id: number;\r\n connectionId: number;\r\n elementId: string;\r\n query: string;\r\n}\r\n\r\n@Component({\r\n selector: 'checkbox-component',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss']\r\n})\r\nexport class DxCheckboxComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n showEditorPopup: boolean = false;\r\n showTextArea: boolean = false; // onEditorPopup\r\n // Monaco\r\n editorOptions = { theme: 'vs-dark', language: 'dummy' };\r\n registeredLanguage: any;\r\n tempMonacoText: string = \"\"\r\n\r\n activeCase = \"\"\r\n activeStatus = \"\"\r\n status = {\r\n active: {\r\n enable: { count: 0 , value: \"\"},\r\n disable: { count: 0, value: \"\" },\r\n invisible: { count: 0, value: \"\" },\r\n visible: { count: 0, value: \"\" },\r\n },\r\n passive: {\r\n enable: { count: 0, value: \"\" },\r\n disable: { count: 0, value: \"\" },\r\n invisible: { count: 0, value: \"\" },\r\n visible: { count: 0, value: \"\" },\r\n }\r\n }\r\n languageLocal: any = \"\";\r\n\r\n formElements: any;\r\n sqlScriptModel: SqlScriptCheckBoxModel;\r\n showChangeEventPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n connections: any = [];\r\n \r\n\r\n constructor(\r\n private eventEmitterService: EventEmitterService,\r\n public componentService: ComponentService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n private appInfoService: AppInfoService,\r\n private genericService: GenericService ) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.connections = this.appInfoService.RiverEntity.connections;\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.data.sqlScripts = typeof this.data.sqlScripts == \"undefined\" ? [] : this.data.sqlScripts;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n if (typeof this.data.status != \"undefined\" && this.data.status.length > 0) {\r\n let activeData = this.data.status.find(val => val.text.toLowerCase() == \"active\")\r\n let passiveData = this.data.status.find(val => val.text.toLowerCase() == \"passive\")\r\n\r\n if (typeof activeData != \"undefined\") {\r\n Object.keys(activeData).forEach(key => {\r\n \r\n if (key != \"text\") {\r\n this.status.active[key].value = activeData[key]\r\n if (activeData[key] != \"\") {\r\n let array: any[] = activeData[key].split(\",\")\r\n this.status.active[key].count = array.length\r\n }\r\n }\r\n \r\n })\r\n }\r\n\r\n if (typeof passiveData != \"undefined\") {\r\n Object.keys(passiveData).forEach(key => {\r\n\r\n if (key != \"text\") {\r\n this.status.passive[key].value = passiveData[key]\r\n if (passiveData[key] != \"\") {\r\n let array: any[] = passiveData[key].split(\",\")\r\n this.status.passive[key].count = array.length\r\n }\r\n }\r\n\r\n })\r\n }\r\n }\r\n }\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n\r\n if (typeof this.data.status == \"undefined\") {\r\n this.shouldCreate('active');\r\n this.shouldCreate('passive');\r\n } else {\r\n\r\n if (this.data.status.length > 0) {\r\n\r\n let activeData = this.data.status.find(val => val.text.toLowerCase() == \"active\")\r\n let passiveData = this.data.status.find(val => val.text.toLowerCase() == \"passive\")\r\n\r\n if (typeof activeData == \"undefined\") {\r\n this.shouldCreate('active');\r\n } else {\r\n console.log(\"find active and update\")\r\n this.updateItems('active')\r\n }\r\n\r\n if (typeof passiveData == \"undefined\") {\r\n this.shouldCreate(\"passive\")\r\n } else {\r\n this.updateItems('passive')\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n //value : 'active' || 'passive'\r\n shouldCreate(_value) {\r\n let _shouldCreate = false;\r\n Object.keys(this.status[_value]).forEach(key => {\r\n if (this.status[_value][key].value != \"\") {\r\n _shouldCreate = true\r\n console.log(\"should create\" + _value)\r\n }\r\n })\r\n\r\n if (_shouldCreate) {\r\n let obj = { text: _value }\r\n Object.keys(this.status[_value]).forEach(key => {\r\n obj[key] = this.status[_value][key].value\r\n })\r\n if (typeof this.data.status == \"undefined\") {\r\n this.data.status = []\r\n } \r\n this.data.status.push(obj)\r\n console.log(this.data.status)\r\n }\r\n \r\n }\r\n\r\n updateItems(value) {\r\n this.data.status.forEach(element => {\r\n if (element.text.toLowerCase() == value) {\r\n Object.keys(this.status[value]).forEach(key => {\r\n element[key] = this.status[value][key].value\r\n })\r\n }\r\n })\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n counter = 0;\r\n onValueChanged(e) {\r\n\r\n this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", \"clean_element\", null);\r\n this.executeScripts();\r\n // If any status exist to\r\n if (typeof this.data.status != \"undefined\" && this.data.status.length > 0) {\r\n this.emitStatusEventHandler(e);\r\n }\r\n \r\n }\r\n\r\n emitStatusEventHandler(e) {\r\n if (e.value == true) {\r\n let activeData = this.data.status.find(val => val.text.toLowerCase() == \"active\")\r\n if (typeof activeData != \"undefined\" && activeData != null) {\r\n this.emitStatusEvent(activeData)\r\n }\r\n } else {\r\n let passiveData = this.data.status.find(val => val.text.toLowerCase() == \"passive\")\r\n if (typeof passiveData != \"undefined\" && passiveData != null) {\r\n this.emitStatusEvent(passiveData)\r\n }\r\n }\r\n }\r\n\r\n emitStatusEvent(e) {\r\n\r\n //let componentList = this.componentService.formComponentList;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let componentList = this.componentService.getAllComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n // On Disable\r\n if (typeof e.disable != \"undefined\" && e.disable != \"\") {\r\n e.disable.split(\",\").forEach(f => {\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (typeof _k != \"undefined\") {\r\n _k.outsideDisabled = true;\r\n //let _sub = { key: _k.uuid, outsideDisabled: true };\r\n //this.eventEmitterService.ChangeDisableAndVisible(_sub);\r\n }\r\n });\r\n }\r\n\r\n // On Enable\r\n if (typeof e.enable != \"undefined\" && e.enable != \"\") {////\r\n e.enable.split(\",\").forEach(f => {\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (typeof _k != \"undefined\") {\r\n _k.outsideDisabled = false;\r\n //let _sub = { key: _k.uuid, outsideDisabled: false };\r\n //this.eventEmitterService.ChangeDisableAndVisible(_sub);\r\n }\r\n });\r\n }\r\n\r\n // On Visible\r\n if (typeof e.visible != \"undefined\" && e.visible != \"\") {//////\r\n e.visible.split(\",\").forEach(f => {\r\n f = f.replace(\"{\", \"\").replace(\"}\", \"\")\r\n let button = [] // Button name list\r\n if (f.includes(\";\")) {\r\n\r\n let temp = f.split(\";\")[1]\r\n if (temp.includes(\":\")) {\r\n button = temp.split(\":\")\r\n } else {\r\n button.push(temp)\r\n }\r\n f = f.split(\";\")[0]\r\n }\r\n\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (typeof _k != \"undefined\") {\r\n _k.outsideVisible = true;\r\n let _sub = { key: _k.uuid, outsideVisible: true, hideButtonList: [] };\r\n this.eventEmitterService.ChangeVisible(_sub);\r\n }\r\n });\r\n }\r\n\r\n // On Invisible\r\n if (typeof e.invisible != \"undefined\" && e.invisible != \"\") {\r\n \r\n e.invisible.split(\",\").forEach(f => {\r\n \r\n f = f.replace(\"{\", \"\").replace(\"}\", \"\")\r\n let button = [] // Button name list\r\n if (f.includes(\";\")) {\r\n\r\n let temp = f.split(\";\")[1]\r\n if (temp.includes(\":\")) {\r\n button = temp.split(\":\")\r\n } else {\r\n button.push(temp)\r\n }\r\n f = f.split(\";\")[0]\r\n }\r\n\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (typeof _k != \"undefined\") {\r\n _k.outsideVisible = false;\r\n let _sub = { key: _k.uuid, outsideVisible: false };\r\n if (button.length > 0) {\r\n _sub.outsideVisible = true\r\n _sub[\"hideButtonList\"] = button\r\n }\r\n\r\n this.eventEmitterService.ChangeVisible(_sub);\r\n }\r\n });\r\n } \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n // status : ('active' || 'passive' )\r\n onSelectCase(_value, _status) {\r\n this.showEditorPopup = true\r\n this.activeCase = _value;\r\n this.activeStatus = _status;\r\n this.tempMonacoText = this.status[_status][_value].value\r\n }\r\n\r\n monacoOnInit(e) {\r\n this.isMonacoLoaded = true;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n\r\n setCustomKeywords(monaco) {\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n //console.log(this.componentService.getComponentListWithButton(currentFormSelected.components, this.anotherPopupId))\r\n let elements = this.componentService.getComponentListWithButton(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n\r\n if (this.registeredLanguage)\r\n this.registeredLanguage.dispose();\r\n\r\n this.registeredLanguage = monaco.languages.registerCompletionItemProvider('plaintext', {\r\n provideCompletionItems: () => {\r\n var suggestions = [];\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n suggestions.push({\r\n label: elements[i],\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"{\" + elements[i] + \"}\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet\r\n })\r\n }\r\n\r\n return { suggestions: suggestions };\r\n }\r\n });\r\n\r\n }\r\n\r\n saveMonaco(_value) {\r\n let _array: any[] = _value.split(\",\")\r\n //_array.forEach(element => { console.log(element) })\r\n\r\n this.status[this.activeStatus][this.activeCase].value = _value\r\n this.status[this.activeStatus][this.activeCase].count = _array.length\r\n\r\n this.showEditorPopup = false;\r\n this.activeCase = \"\"\r\n this.activeStatus = \"\";\r\n }\r\n\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n exitMonaco() {\r\n this.tempMonacoText = \"\"\r\n this.showEditorPopup = false;\r\n this.activeCase = \"\"\r\n this.activeStatus = \"\";\r\n }\r\n\r\n openChangeEventPopup() {\r\n debugger;\r\n this.isMonacoLoaded = false;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n this.formElements = elements.filter(f => f != this.data.id);\r\n this.sqlScriptModel = new SqlScriptCheckBoxModel();\r\n this.sqlScriptModel.query = \"SELECT * FROM TABLE WHERE KEY='{\" + this.data.id + \"}'\";\r\n this.showChangeEventPopup = true;\r\n }\r\n\r\n saveSqlScript() {\r\n let model = this.componentService.cloneModel(this.sqlScriptModel);\r\n\r\n if (model.id > 0) {\r\n let scr = this.data.sqlScripts.find(f => f.id == model.id);\r\n scr.connectionId = model.connectionId;\r\n scr.elementId = model.elementId;\r\n scr.query = model.query;\r\n }\r\n else {\r\n model.id = this.data.sqlScripts.length + 1;\r\n this.data.sqlScripts.push(model);\r\n }\r\n\r\n this.sqlScriptModel = new SqlScriptCheckBoxModel();\r\n this.sqlScriptModel.query = \"SELECT * FROM TABLE WHERE KEY='{\" + this.data.id + \"}'\";\r\n }\r\n\r\n updateSqlScript(i) {\r\n let scr = this.data.sqlScripts[i];\r\n this.sqlScriptModel = new SqlScriptCheckBoxModel();\r\n this.sqlScriptModel.id = scr.id;\r\n this.sqlScriptModel.connectionId = scr.connectionId;\r\n this.sqlScriptModel.elementId = scr.elementId;\r\n this.sqlScriptModel.query = scr.query;\r\n }\r\n\r\n deleteSqlScript(i) {\r\n this.data.sqlScripts.splice(i, 1);\r\n }\r\n\r\n executeScripts() {\r\n if (!this.isEdit) {\r\n this.data.sqlScripts.forEach(s => {\r\n\r\n let pref = \"{\" + this.data.id + \"}\";\r\n let value = this.data.value;\r\n let query = this.componentService.replaceAllUsingType(s.query, pref, value); // s.query.replace(pref, value);\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let currentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId)\r\n\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(query)) {\r\n let _match = query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = currentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value);//query.replace(f, _value);\r\n }\r\n });\r\n }\r\n //query = this.genericService.cleanSqlSyntax(query.replace(pattern, \"\"))\r\n }\r\n\r\n this.genericService.executeQuerySecurited(query, s.connectionId).subscribe((result: any) => {\r\n\r\n if (result) {\r\n let element = this.componentService.getById(s.elementId, currentComponents, this.anotherPopupId);\r\n if (element.type) {\r\n\r\n if (element.component == \"DxDatagridSelectComponent\" || element.type == \"datalist\" || element.type == \"selectbox\" || element.type == \"gallery\" || element.type == \"datagrid\" || element.type == \"multiselectbox\") {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, this.data.value, result);\r\n }\r\n else {\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n let finalData = [];\r\n keys.forEach(f => {\r\n finalData.push(result[0][f]);\r\n });\r\n let dataText = finalData.join(\",\");\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, this.data.value, dataText);\r\n }\r\n }\r\n }\r\n } else {\r\n console.log(\"empty\")\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { AppInfoService, TaskService } from '../../shared/services';\r\n@Component({\r\n selector: 'childform-component',\r\n templateUrl: 'childform.component.html',\r\n styleUrls: ['./childform.component.css']\r\n})\r\nexport class DxChildFormComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n\r\n pageComponentList: any = [];\r\n\r\n processList: any = [];\r\n\r\n invokeChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n\r\n // processFormIdGlobal: any = 0;\r\n\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public componentService: ComponentService,\r\n public appInfo: AppInfoService,\r\n public taskService: TaskService,\r\n public instanceService: InstanceService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n if (sub.data) this.data.value = sub.data;\r\n else this.data.value = \"\";\r\n\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n\r\n allButtonIcons = [];\r\n changedValueProcess = \"\";\r\n ngOnInit() {\r\n this.getSchemaList();\r\n\r\n this.data.isFormSaveAndClose = typeof this.data.isFormSaveAndClose === \"undefined\" ? false : this.data.isFormSaveAndClose;\r\n\r\n this.data.processId = typeof this.data.processId === \"undefined\" ? 0 : this.data.processId;\r\n\r\n this.allButtonIcons = this.componentService.getAllIcons();\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n \r\n if (typeof this.data.property === \"undefined\") {\r\n this.data.property = { icon: \"\", width: \"\", height: \"\", fontSize: \"\", backgroundColor: '#ffffff', fontColor: '#000000' };\r\n }\r\n this.setPageStyle(this.data.property.fontColor, this.data.property.backgroundColor);\r\n\r\n if (typeof this.data.property.backgroundColor === \"undefined\" || typeof this.data.property.fontColor === \"undefined\") {\r\n if (typeof this.data.property.backgroundColor === \"undefined\")\r\n this.data.property.backgroundColor = '#ffffff';\r\n if (typeof this.data.property.fontColor === \"undefined\")\r\n this.data.property.fontColor = '#000000';\r\n }\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n } catch (ex) { }\r\n }\r\n });\r\n this.changedValueProcess = this.data.processId;\r\n // this.onProcessChanged({ value: this.data.processId });\r\n }\r\n\r\n setPageStyle(_color, _backgroundColor) {\r\n try {\r\n let _el = document.getElementById(\"styleDynamic_\" + this.data.id);\r\n _el.remove();\r\n } catch (ex) { }\r\n //85\r\n let styles = ` \r\n#`+ this.data.id + ` { \r\n color: `+ _color + `;\r\n background-color: `+ _backgroundColor + `;\r\n} \r\n\r\n#`+ this.data.id + `.dx-state-hover { \r\n background-color: `+ _backgroundColor + `c2; \r\n color: `+ _color + `; \r\n} \r\n\r\n#`+ this.data.id + `.dx-state-active { \r\n background-color: `+ _backgroundColor + `c2; \r\n color: `+ _color + `; \r\n} `;\r\n let styleSheet = document.createElement(\"style\");\r\n styleSheet.type = \"text/css\";\r\n styleSheet.innerText = styles;\r\n styleSheet.id = \"styleDynamic_\" + this.data.id;\r\n styleSheet.className = \"style-dynamic\";\r\n document.head.appendChild(styleSheet);\r\n }\r\n\r\n //firstLoad = true;\r\n selectedFormComponentList = [];\r\n onProcessChanged(event) {\r\n if (event.value) {\r\n\r\n // if (!this.firstLoad) {\r\n if (this.data.processId != this.changedValueProcess) {\r\n this.data.addedComponents = [];\r\n this.data.addedComponents.push({ pageComponent: \"-1\", selectedFormComponent: \"-1\" });\r\n }\r\n this.changedValueProcess = this.data.processId;\r\n // this.firstLoad = false;\r\n // }\r\n this.selectedFormComponentList = [];\r\n if (this.data.processId) {\r\n this.instanceService.getSchemaForm(this.data.processId, false).subscribe(_form => {\r\n let _formObj: any;\r\n _formObj = _form;\r\n let formJson = JSON.parse(_formObj.formJson);\r\n this.selectedFormComponentList = this.componentService.getComponentList(formJson.components, this.anotherPopupId);\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n onComponentList(event) {\r\n this.data.addedComponents = typeof this.data.addedComponents == \"undefined\" ? [] : this.data.addedComponents;\r\n\r\n let addedComponentsEmptyOrNull = this.data.addedComponents.filter(x =>\r\n (x.pageComponent == \"-1\" || x.pageComponent == \"\" || x.pageComponent == null) &&\r\n (x.selectedFormComponent == \"-1\" || x.selectedFormComponent == \"\" || x.selectedFormComponent == null)\r\n );\r\n if (addedComponentsEmptyOrNull.length > 1) {\r\n for (let i = 0; i < this.data.addedComponents.length; i++) {\r\n if (this.data.addedComponents[i].pageComponent == \"-1\" || this.data.addedComponents[i].pageComponent == \"\" || this.data.addedComponents[i].pageComponent == null) {\r\n if (this.data.addedComponents[i].selectedFormComponent == \"-1\" || this.data.addedComponents[i].selectedFormComponent == \"\" || this.data.addedComponents[i].selectedFormComponent == null) {\r\n this.data.addedComponents.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n let addedComponentsEmpty = this.data.addedComponents.find(x => x.pageComponent == \"-1\" && x.selectedFormComponent == \"-1\");\r\n if (typeof addedComponentsEmpty == \"undefined\") {\r\n this.data.addedComponents.push({ pageComponent: \"-1\", selectedFormComponent: \"-1\" });\r\n }\r\n\r\n //let addedComponentsEmptyArray = this.data.addedComponents.filter(x => x.pageComponent == \"-1\" && x.selectedFormComponent == \"-1\");\r\n //if (addedComponentsEmptyArray.length > 1) {\r\n // this.data.addedComponents.push({ pageComponent: \"-1\", selectedFormComponent: \"-1\" });\r\n //}\r\n //if (event.value) {\r\n // \r\n // this.data.addedComponents = typeof this.data.addedComponents == \"undefined\" ? [] : this.data.addedComponents;\r\n // //this.data.addedComponents.forEach(item => {\r\n // // if ((item.pageComponent == \"\" || item.pageComponent == 0) && (item.selectedFormComponent == \"\" || item.selectedFormComponent == 0))\r\n\r\n // //});\r\n\r\n // let addedComponentsEmpty = this.data.addedComponents.filter(x => x.pageComponent != \"-1\" || x.selectedFormComponent != \"-1\");\r\n // this.data.addedComponents = [];\r\n // this.data.addedComponents = addedComponentsEmpty;\r\n\r\n // this.data.addedComponents.push({ pageComponent: \"-1\", selectedFormComponent: \"-1\" });\r\n //}\r\n //else { \r\n // let addedComponentsEmpty = this.data.addedComponents.find(x => x.pageComponent == \"-1\" && x.selectedFormComponent == \"-1\");\r\n // if (typeof addedComponentsEmpty == \"undefined\") { \r\n // this.data.addedComponents.push({ pageComponent: \"-1\", selectedFormComponent: \"-1\" });\r\n // }\r\n //}\r\n }\r\n\r\n async getSchemaList() {\r\n\r\n await this.taskService.getJustSchemeList().subscribe(result => {\r\n this.processList = result;\r\n //resultSchema.forEach(item => {\r\n\r\n // if (!item.isScheme) {\r\n // this.processList(item.items);\r\n // }\r\n // else {\r\n // this.processList.push(item);\r\n // }\r\n //});\r\n });\r\n }\r\n openChildForm(args) {\r\n if (!args.validationGroup.validate().isValid) {\r\n this.componentService.showAlert(this.languageLocal.alertFillRequiredFields, \"error\", 5000)\r\n return;\r\n }\r\n\r\n if (typeof this.data.isFormSaveAndClose == \"undefined\")\r\n this.data.isFormSaveAndClose = false;\r\n\r\n let _data = {\r\n processId: this.data.processId,\r\n isFormSaveAndClose: this.data.isFormSaveAndClose,\r\n addedComponents: this.data.addedComponents\r\n }\r\n\r\n this.eventEmitterService.openChildForm(_data);\r\n\r\n //let nameRoom = componentLst.find(x => x.id == this.data.meetingRoomName);\r\n //let startDateRoom = componentLst.find(x => x.id == this.data.startDate);\r\n //let localProcessFormId = this.componentService.currentProcessFormId;\r\n //this.instanceService.liveOpen(nameRoom.value, startDateRoom.value, this.data.hostUrl, this.data.participantUrl, this.data.meetingType, localProcessFormId).subscribe((s: any) => {\r\n // if (s.success) {\r\n // if ( localProcessFormId == 0) {\r\n // this.data.value = JSON.stringify({ participantUrl: s.participantUrl, hostUrl: s.hostUrl });\r\n // this.showToast(s.message, \"success\");\r\n // }\r\n // else {\r\n\r\n // let _domain = window.location.protocol + \"//\" + window.location.host + \"/\" + s.liveUrl.replace(\"{{USERNAME}}\", this.appInfo.currentUser.name);\r\n // window.open(_domain, \"_blank\");\r\n // this.showToast(s.message, \"success\");\r\n // this.eventEmitterService.updateTasks();\r\n // }\r\n // }\r\n // else { \r\n // this.showToast(s.message, \"error\");\r\n // }\r\n //});\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n\r\n onEditPopopShown() {\r\n\r\n this.pageComponentList = this.componentService.getComponentList(this.componentService.currentForm.components, this.anotherPopupId);\r\n\r\n if (typeof this.data.addedComponents == \"undefined\") {\r\n this.data.addedComponents = [];\r\n }\r\n\r\n let addedComponentsEmpty = this.data.addedComponents.find(x => x.pageComponent == \"-1\" && x.selectedFormComponent == \"-1\");\r\n if (typeof addedComponentsEmpty == \"undefined\") {\r\n this.data.addedComponents.push({ pageComponent: \"-1\", selectedFormComponent: \"-1\" });\r\n }\r\n\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n getFormComponent() {\r\n\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n\r\n }\r\n });\r\n }\r\n\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n buttonIconPopoverOpen = false;\r\n hideEmojiPopoper(e) {\r\n //this.chatMessageInputStartPos = null;\r\n //this.chatMessageInputEndPos = null;\r\n //let myField = this.chatMessageInput.nativeElement;\r\n //if (!(this.chatMessageInputStartPos)) {\r\n // myField.selectionStart = this.chatMessageInputStartPos;\r\n // myField.selectionEnd = this.chatMessageInputEndPos;\r\n //}\r\n //myField.focus();\r\n }\r\n\r\n toggleIconPanel() {\r\n debugger;\r\n this.buttonIconPopoverOpen = !this.buttonIconPopoverOpen;\r\n }\r\n setButtonIcon(_icon) {\r\n debugger;\r\n if (_icon && _icon != \"\") {\r\n this.data.property.icon = _icon.icon;\r\n }\r\n else {\r\n this.data.property.icon = '';\r\n }\r\n this.buttonIconPopoverOpen = !this.buttonIconPopoverOpen;\r\n //let myField = this.chatMessageInput.nativeElement;\r\n //if (!(this.chatMessageInputStartPos)) {\r\n // this.chatMessageInputStartPos = myField.selectionStart;\r\n // this.chatMessageInputEndPos = myField.selectionEnd;\r\n //}\r\n //let myValueClear = this.insertAtCursor(_icon);\r\n //this.chatMessageText = myValueClear;\r\n }\r\n getButtonIconClass(_type) {\r\n if (typeof _type == 'undefined')\r\n return \"icon-setting-button-delete\";\r\n\r\n return typeof this.data.property.icon == 'undefined' || this.data.property.icon == '' ? 'icon-setting-button-empty' : 'icon-setting-button';\r\n }\r\n\r\n fontColorValueChange(_e) {\r\n let newValue = _e.value;\r\n if (this.data.property) {\r\n this.data.property.fontColor = newValue;\r\n }\r\n else {\r\n this.data.property = { icon: \"\", width: \"\", height: \"\", fontSize: \"\", backgroundColor: '#ffffff', fontColor: '#000000' };\r\n }\r\n this.setPageStyle(this.data.property.fontColor, this.data.property.backgroundColor);\r\n }\r\n\r\n backgroundValueChange(_e) {\r\n let newValue = _e.value;\r\n if (this.data.property) {\r\n this.data.property.backgroundColor = newValue;\r\n }\r\n else {\r\n this.data.property = { icon: \"\", width: \"\", height: \"\", fontSize: \"\", backgroundColor: '#ffffff', fontColor: '#000000' };\r\n }\r\n this.setPageStyle(this.data.property.fontColor, this.data.property.backgroundColor);\r\n }\r\n\r\n getButtonGeneralCss() {\r\n let _myStyle = {};\r\n if (this.data.property.height)\r\n _myStyle[\"height\"] = this.data.property.height + (this.componentService.isInteger(this.data.property.height) ? \"px\" : \"\");\r\n if (this.data.property.width)\r\n _myStyle[\"width\"] = this.data.property.width + (this.componentService.isInteger(this.data.property.width) ? \"px\" : \"\");\r\n\r\n return _myStyle;\r\n }\r\n\r\n getButtonGeneralCssText(type) {\r\n // font-size: 103px;\r\n //width: 103px;\r\n //height: 18px;\r\n /*\r\n 14 18\r\n 20 x\r\n 20*18/14\r\n */\r\n let _myStyle = {};\r\n if (this.data.property.fontSize) {\r\n if (type == \"i\")\r\n _myStyle[\"font-size\"] = this.data.property.fontSize + (this.componentService.isInteger(this.data.property.fontSize) ? \"px\" : \"\");\r\n else\r\n _myStyle[\"font-size\"] = this.componentService.isInteger(this.data.property.fontSize) ? ((this.data.property.fontSize - 3) + \"px\") : (\"calc(\" + this.data.property.fontSize + \" - 3px)\");\r\n\r\n\r\n //this.data.property.fontSize + this.componentService.isInteger(this.data.property.fontSize) ? \"px\" : \"\";\r\n\r\n _myStyle[\"width\"] = this.data.property.fontSize + (this.componentService.isInteger(this.data.property.fontSize) ? \"px\" : \"\");\r\n } else {\r\n if (type == \"i\")\r\n _myStyle[\"font-size\"] = \"17px\";\r\n else\r\n _myStyle[\"font-size\"] = \"14px\";\r\n\r\n _myStyle[\"width\"] = \"18px\";\r\n }\r\n _myStyle[\"height\"] = \"18px\";\r\n\r\n return _myStyle;\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from \"../component.service\";\r\nimport { EventEmitterService } from '../../shared/services';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n//declare var myfunction: any;\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { Subscription } from 'rxjs';\r\n@Component({\r\n selector: 'codeditor-component',\r\n templateUrl: './codeditor.component.html',\r\n styleUrls: ['./codeditor.component.css']\r\n})\r\nexport class DxCodeditorComponent implements OnInit {\r\n @Input() form: any;\r\n @Input() item: any; //item, data yerine item olarak geliyor\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n invokeChangeEventLocal: Subscription;\r\n permissionPopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n loadingPopup: boolean = true;\r\n isConfigured: boolean = false;\r\n editorOptions = { theme: 'vs-dark', language: 'typescript' };\r\n inputComponents: any = [];\r\n themes = [{\r\n \"name\": \"Dark\",\r\n \"code\": \"vs-dark\",\r\n }, {\r\n \"name\": \"White\",\r\n \"code\": \"vs\",\r\n }, {\r\n \"name\": \"Hight Black\",\r\n \"code\": \"hc-black\",\r\n }];\r\n languages = [{\r\n \"name\": \"Javascript\",\r\n \"code\": \"javascript\",\r\n }, {\r\n \"name\": \"Typescript\",\r\n \"code\": \"typescript\",\r\n }, {\r\n \"name\": \"SQL\",\r\n \"code\": \"sql\",\r\n }];\r\n languageLocal: any = \"\";\r\n constructor(private componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef, private eventEmitterService: EventEmitterService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.item.uuid) { \r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.item.uuid = this.componentService.createuuid();\r\n\r\n if (typeof this.item.show === \"undefined\")\r\n this.item.show = true;\r\n\r\n this.item.outsideDisabled = typeof this.item.outsideDisabled == \"undefined\" ? false : this.item.outsideDisabled;\r\n this.item.outsideVisible = typeof this.item.outsideVisible == \"undefined\" ? true : this.item.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.item.show && !this.item.hide && this.item.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.item.show && !this.item.hide && this.item.outsideVisible ? true : false) : true;\r\n\r\n // this.item.width = typeof this.item.width == \"undefined\" ? \"100%\" : this.item.width;\r\n // this.item.height = typeof this.item.height == \"undefined\" ? \"350px\" : this.item.height;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.item.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.item.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.item.show && !this.item.hide && this.item.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.item.show && !this.item.hide && this.item.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n if (typeof this.form.components == \"undefined\") this.form.components = JSON.parse(this.form.formJson)\r\n }\r\n\r\n onInit(editor) {\r\n this.loadingPopup = false;\r\n if (!this.componentService.isCreateditorDict) {\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n this.componentService.isCreateditorDict = true;\r\n }\r\n\r\n //if(!this.isEdit && this.form.expression && this.form.expression.length > 0) this.execute();\r\n }\r\n\r\n execute() {\r\n eval(this.form.expression);\r\n }\r\n\r\n setCustomKeywords(monaco) {\r\n monaco.languages.registerCompletionItemProvider('typescript', {\r\n provideCompletionItems: () => {\r\n var suggestions = this.createDependencyProposals(monaco) || [];\r\n let componentslist = this.componentService.getComponentList(this.form.components, this.anotherPopupId);\r\n for (let i = 0; i < componentslist.length; i++) {\r\n suggestions.push({\r\n label: componentslist[i].id,\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"var \" + componentslist[i].id + ' = ' + 'this.getById(\"' + componentslist[i].id + '\");',\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n })\r\n }\r\n return { suggestions: suggestions };\r\n }\r\n });\r\n }\r\n\r\n createDependencyProposals(monaco) {\r\n return [{\r\n label: 'form',\r\n kind: monaco.languages.CompletionItemKind.Keyword,\r\n insertText: 'form',\r\n }, {\r\n label: 'components',\r\n kind: monaco.languages.CompletionItemKind.Keyword,\r\n insertText: 'components[]',\r\n }, {\r\n label: 'value',\r\n kind: monaco.languages.CompletionItemKind.Keyword,\r\n insertText: 'value',\r\n }, {\r\n label: 'data',\r\n kind: monaco.languages.CompletionItemKind.Keyword,\r\n insertText: 'data',\r\n }, {\r\n label: 'ifelse',\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: [\r\n 'if () {',\r\n '\\t$0',\r\n '} else {',\r\n '\\t',\r\n '}'\r\n ].join('\\n'),\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'If-Else Statement'\r\n }, {\r\n label: 'forEach',\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: [\r\n 'this.form.components.forEach(component => {',\r\n '\\t console.log(component);',\r\n '});'\r\n ].join('\\n'),\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'forEach Statement'\r\n },\r\n {\r\n label: 'getById',\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: 'this.getById(\"id\")',\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n },\r\n {\r\n label: 'colSum',\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: 'this.colSum(\"Grid Id\", kolon_index)',\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n },\r\n {\r\n label: 'setValue',\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: 'this.setValue(\"selectboxId\",\"elementId\",\"key\")',\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n }\r\n ];\r\n }\r\n\r\n getById(id) {\r\n return this.componentService.getById(id, this.form.components, this.anotherPopupId);\r\n }\r\n setValue(selectboxId, elementId, key) {\r\n this.componentService.setValue(selectboxId, elementId, key, this.form.components, this.anotherPopupId);\r\n }\r\n\r\n colSum(id, colm) {\r\n return this.componentService.colSum(id, colm, this.form.components, this.anotherPopupId);\r\n /*if (this.isNumeric(colm)) {\r\n let result = this.componentService.colSum(id, colm, this.form.components);\r\n if (this.isNumeric(result)) return result;\r\n else {\r\n this.showToast(\"Hatalı kolon indexi girildi!\",\"warning\");\r\n return 0;\r\n }\r\n \r\n }\r\n else {\r\n this.showToast(\"Hatalı kolon indexi girildi!\",\"warning\");\r\n return 0;\r\n }*/\r\n }\r\n\r\n isNumeric(val: any): boolean {\r\n return !(val instanceof Array) && (val - parseFloat(val) + 1) >= 0;\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.item.id, this.item.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.item.show && !this.item.hide && this.item.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.item.show && !this.item.hide && this.item.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n disableElements() {\r\n return typeof this.item.disabled != \"undefined\" ? (this.item.disabled == false ? this.item.outsideDisabled : this.item.disabled) : false;\r\n }\r\n\r\n onValueChanged(e) {\r\n this.eventEmitterService.onValueChangeEvent(this.item.id, \"clean_element\", e.value, null);\r\n }\r\n\r\n setLanguageToDatas() {\r\n this.themes = [{\r\n \"name\": this.languageLocal.dark/* \"Dark\" */,\r\n \"code\": \"vs-dark\",\r\n }, {\r\n \"name\": this.languageLocal.white /*\"White\"*/,\r\n \"code\": \"vs\",\r\n }, {\r\n \"name\": this.languageLocal.hightBlack /* \"Hight Black\"*/,\r\n \"code\": \"hc-black\",\r\n }];\r\n }\r\n \r\n \r\n}\r\n","import { Component, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { AppInfoService, EventEmitterService } from '../../shared/services';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-comment',\r\n templateUrl: './comment.component.html',\r\n styleUrls: ['./comment.component.css'],\r\n providers: [DatePipe]\r\n})\r\nexport class DxCommentComponent implements ComponentParameters {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n defaultLanguage: any = {};\r\n\r\n currentObj = { \"id\": 0, \"userId\": 0, \"userFullName\": \"\", \"date\": \"\", \"comment\": \"\", \"lastUpdate\": \"\" }\r\n sizeTypes = [\"%\", \"px\"];\r\n\r\n accordion: any = [{\"id\":1,\"name\":\"\"}];\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n invokeChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n isShowComments: boolean = true;\r\n showHeight = \"\";\r\n tempArray = [];\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public componentService: ComponentService, private datePipe: DatePipe, private appInfoService: AppInfoService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n if (sub.elementId == this.data.id) {\r\n\r\n if (sub.data != null && typeof sub.data != \"undefined\") this.data.value = sub.data;\r\n else if (sub.elementId == \"clean_element\" || sub.value == \"clean_element\") this.data.value = \"\";\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n \r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n console.log(this.componentService)\r\n console.log(this.appInfoService)\r\n this.data.uuid = this.componentService.createuuid();\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n console.log(sub)\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n this.data.width = typeof this.data.width == \"undefined\" ? \"40%\" : this.data.width;\r\n this.data.height = typeof this.data.height == \"undefined\" ? \"250px\" : this.data.height;\r\n this.showHeight = typeof this.data.height == \"undefined\" ? \"250px\" : this.data.height;\r\n\r\n //Kullan�c� ismi de�i�mi� ise alg�lamak i�in\r\n this.setUsernamesToDatas();\r\n\r\n console.log(this.data)\r\n }\r\n\r\n setUsernamesToDatas() {\r\n if (this.data.value != null && this.data.value.length > 0) {\r\n this.data.value.forEach(data => {\r\n let findUser = this.appInfoService.RiverEntity.users.find(user => user.id == data.userId)\r\n if (typeof findUser != \"undefined\") {\r\n data.userFullName = findUser.fullName\r\n } else {\r\n data.userFullName = \"Unknown User\"\r\n }\r\n })\r\n }\r\n }\r\n\r\n myDate = new Date();\r\n saveComment() {\r\n\r\n let data = JSON.parse(JSON.stringify(this.currentObj))\r\n if (data.comment == '') return;\r\n let newDate = new Date()\r\n data.date = this.datePipe.transform(newDate, ' hh:mm dd-MM-yyyy')\r\n data.userId = this.appInfoService.currentUser.id;\r\n data.userFullName = this.appInfoService.currentUser.fullName;\r\n if (data.id != 0) {\r\n let updateIndex = this.data.value.findIndex(f => f.id == data.id)\r\n if (typeof updateIndex != \"undefined\") {\r\n this.data.value[updateIndex] = data\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n } else {\r\n if (this.data.value.length == 0)\r\n data.id = 1\r\n else if (this.data.value.length > 0)\r\n data.id = this.data.value[this.data.value.length - 1].id + 1\r\n \r\n this.data.value.push(data)\r\n this.tempArray.push(data.id)\r\n }\r\n \r\n \r\n this.currentObj = { \"id\": 0, \"userId\": 0, \"userFullName\":\"\", \"date\": \"\", \"comment\": \"\", \"lastUpdate\": \"\" }\r\n console.log(this.currentObj.userFullName)\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n\r\n showComments() {\r\n this.isShowComments = !this.isShowComments\r\n if (this.isShowComments) {\r\n this.showHeight = this.data.height;\r\n } else {\r\n this.showHeight = \"100\";\r\n }\r\n this.changeDetectorRef.detectChanges();\r\n \r\n }\r\n /*\r\n createId() {\r\n let array = [{ id: 3 }, { id: 2 }, { id: 6}]\r\n let test = array.map(e => e.id)\r\n console.log(test)\r\n }*/\r\n\r\n editComUser(val) {\r\n\r\n this.currentObj = val;\r\n\r\n }\r\n\r\n deleteComUser(val) {\r\n let index = this.data.value.findIndex(e => e.id == val.id)\r\n this.data.value.splice(index,1)\r\n \r\n\r\n }\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[component-host]',\r\n})\r\nexport class ComponentDirective {\r\n constructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","import { Type } from '@angular/core';\r\n\r\nexport class ComponentItem {\r\n constructor(public component: Type, public name: string) {}\r\n}\r\n","/*/*/// */*/\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { v4 as uuid } from 'uuid';\r\nimport * as _ from \"lodash\";\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { Subject } from 'rxjs';\r\nimport { EventEmitterService } from '../shared/services/event-emitter.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ComponentService {\r\n\r\n isSentFormToDb: boolean = false;\r\n\r\n userHasApprove: boolean = false;\r\n currentUserStaus: number = 0;\r\n currentProcessFormId: number = 0;\r\n currentInstanceId: number = 0;\r\n\r\n\r\n selectedSchemaId: number = 0;\r\n\r\n tempDatagridPopupComponent = { components: [] };\r\n\r\n runtimeSelectboxDatasource = [];\r\n\r\n datagridColumnHasUserChanges = {};\r\n\r\n isNewSchemaPopup: any = null;\r\n\r\n\r\n AnotherPopup: any = {\r\n\r\n\r\n schemaId: 0,\r\n keyword: \"\",\r\n start1: null,\r\n start2: null,\r\n end1: null,\r\n end2: null,\r\n status: 0,\r\n userId: 0\r\n }\r\n\r\n menuSaveFinish: any = true;\r\n\r\n schemaId: number = 0;\r\n\r\n datagridFilePicturebox = [];\r\n\r\n languageSourceObject: any;\r\n languageSource: any = {};\r\n\r\n elementsOutOfDatagrid: any = [];\r\n\r\n taskListFilter: any = {\r\n schemaId: 0,\r\n keyword: \"\",\r\n\r\n start1: null,\r\n start2: null,\r\n end1: null,\r\n end2: null,\r\n status: 0,\r\n userId: 0\r\n };\r\n\r\n systemInfoElements: any = [\r\n { id: 0, text: \"Seçiniz\", value: \"\" },\r\n { id: 1, text: \"Başlatan Adı\", value: \"{|STARTED-USER-NAME|}\" },\r\n { id: 2, text: \"Başlatan ID\", value: \"{|STARTED-USER-ID|}\" },\r\n { id: 3, text: \"Başlama Tarihi\", value: \"{|START-DATE|}\" },\r\n { id: 4, text: \"Süreç Numarası\", value: \"{|PROCESS-INSTANCE-ID|}\" },\r\n { id: 5, text: \"Form ID\", value: \"{|FORM-ID|}\" }\r\n ];\r\n\r\n languageCodes = [\r\n {\r\n \"code\": \"trTR\",\r\n \"name\": \"Türkçe\",\r\n },\r\n {\r\n \"code\": \"enEN\",\r\n \"name\": \"English\",\r\n },\r\n {\r\n \"code\": \"deDE\",\r\n \"name\": \"Deutsche\",\r\n },\r\n {\r\n \"code\": \"esES\",\r\n \"name\": \"Español\",\r\n },\r\n {\r\n \"code\": \"frFR\",\r\n \"name\": \"French\",\r\n },\r\n {\r\n \"code\": \"caES\",\r\n \"name\": \"Catalan\",\r\n },\r\n {\r\n \"code\": \"roRO\",\r\n \"name\": \"Romanian\",\r\n },//Alttakiler bileşenlerde vardı. Veritabanı langSource tablomuzda karşılığı yok. Kullanıldıysa sorun olmasın diye kaldırılmadı.\r\n {\r\n \"code\": \"srRS\",\r\n \"name\": \"Српски\",\r\n },\r\n {\r\n \"code\": \"zhhansCN\",\r\n \"name\": \"中文\",\r\n },\r\n ]\r\n\r\n countryFlags: any = [\r\n { Code: \"TRTR\", Key: \"tr-TR\" },\r\n { Code: \"ENEN\", Key: \"en-EN\" },\r\n { Code: \"DEDE\", Key: \"de-DE\" },\r\n { Code: \"ESES\", Key: \"es-ES\" },\r\n { Code: \"FRFR\", Key: \"fr-FR\" },\r\n { Code: \"CAES\", Key: \"ca-ES\" },\r\n { Code: \"RORO\", Key: \"ro-RO\" }\r\n ];\r\n\r\n currentSystemInfo: any = [];//{ id: 0, text: \"\", value: \"\" }\r\n\r\n isMenuForm: any = false;\r\n usedForms: any = [];\r\n menuFormNodeOptions: any = [];\r\n historyActions = { save: 1, undo: 2, redo: 3 };\r\n currentForm: any = {\r\n formId: 0,\r\n categoryId: 0,\r\n formNo: 1,\r\n isReadonly: false,\r\n user: '',\r\n name: '',\r\n variableName: '',\r\n isGeneric: false,\r\n description: '',\r\n permissions: '',\r\n expression: '',\r\n components: [],\r\n data: [],\r\n preferences: {\r\n formOpenedEvents: [], formOpenedMultiElementEvents: [],\r\n\r\n },\r\n language: [\r\n { \"Code\": \"trTR\", \"Title\": \"Form Adı\" }\r\n ],\r\n\r\n };\r\n\r\n currentForm_POPUP1: any = {\r\n formId: 0,\r\n categoryId: 0,\r\n formNo: 1,\r\n isReadonly: false,\r\n user: '',\r\n name: '',\r\n variableName: '',\r\n isGeneric: false,\r\n description: '',\r\n permissions: '',\r\n expression: '',\r\n components: [],\r\n data: [],\r\n language: [\r\n { \"Code\": \"trTR\", \"Title\": \"Form Adı\" }\r\n ],\r\n };\r\n\r\n childPopupObj = {\r\n id: 0,\r\n currentForm: this.currentForm_POPUP1,\r\n currentProcessFormId: 0,\r\n currentInstanceId: 0,\r\n selectedSchemaId: 0,\r\n isNewSchemaPopup: null,\r\n isSentFormToDb: false\r\n };\r\n\r\n childPopups = [];\r\n childPopupsClosed = [];\r\n\r\n\r\n languageSourceChange: Subject = new Subject();\r\n setLanguageSource(_langSource) {\r\n //this.languageSource = _langSource;\r\n this.languageSourceChange.next(_langSource);\r\n }\r\n\r\n getLanguageSource() {\r\n return this.languageSource;\r\n }\r\n\r\n //cdkListIds: any;\r\n formStatus =\r\n {\r\n Processing: 1, //while yes\r\n SaveAndSend: 2, //while break\r\n Approve: 3, // while break\r\n Disapprove: 4, //while break\r\n Returned: 5, //while yes\r\n Cancelled: 6, // while break\r\n DisapproveTerminate: 7, // Terminate WF\r\n Completed: 8\r\n }\r\n\r\n userStatus = {\r\n DefaultStatus: 0,\r\n InterimApprove: 1,\r\n FinalApprove: 2,\r\n Completed: 3,\r\n }\r\n\r\n //datagridFilterOutType = {\r\n // SetElement: 0,\r\n // SetFilter: 1 \r\n //}\r\n\r\n cdkListIds = ['cdkListItems', 'cdkListMain'];\r\n currentFormComponents: any;\r\n languageCode = \"enEN\";\r\n\r\n componentList = [\r\n {\r\n \"group\": \"Temel\",\r\n \"components\": [\r\n {\r\n \"component\": \"DxLabelComponent\",\r\n \"uuid\": \"\",\r\n \"id\": \"\",\r\n \"name\": \"Label\",\r\n \"type\": \"label\",\r\n \"isInput\": false,\r\n \"inputType\": \"\",\r\n \"value\": \"Label\",\r\n \"fontSize\": \"12\",\r\n \"fontStyle\": \"normal\",\r\n \"fontWeight\": \"normal\",\r\n \"color\": \"#000000\",\r\n \"underline\": false,\r\n \"showEditPop\": false,\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Etiket Yazısı\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxTextboxComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Text Box\",\r\n \"labelpossition\": \"top\",\r\n \"id\": \"\",\r\n \"type\": \"textbox\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"showClearButton\": true,\r\n \"value\": \"\",\r\n \"required\": false,\r\n \"showEditPop\": false,\r\n \"width\": \"\",\r\n \"maxLength\": 500,\r\n \"isAuto\": false,\r\n \"autoText\": \"\",\r\n \"systemInfoId\": 0,\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Metin Kutusu\",\r\n \"Placeholder\": \"Text\",\r\n \"Hint\": \"Metin Kutusu\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxPasswordComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Password\",\r\n \"id\": \"\",\r\n \"type\": \"password\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"showClearButton\": true,\r\n \"showEditPop\": false,\r\n \"value\": \"\",\r\n \"required\": false,\r\n \"width\": \"\",\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Password\",\r\n \"Placeholder\": \"Password\",\r\n \"Hint\": \"Password\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxNumberComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Number\",\r\n \"id\": \"\",\r\n \"type\": \"number\",\r\n \"isInput\": true,\r\n \"inputType\": \"decimal\",\r\n \"format\": \"#,##0.00\",\r\n \"showSpinButtons\": false,\r\n \"showClearButton\": false,\r\n \"showEditPop\": false,\r\n \"showMinMaxInfo\": false,\r\n \"min\": null,\r\n \"max\": null,\r\n \"value\": 0,\r\n \"required\": false,\r\n \"width\": \"\",\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Sayı\",\r\n \"Placeholder\": \"Sayı\",\r\n \"Hint\": \"Sayı\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxPhoneComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Phone\",\r\n \"id\": \"\",\r\n \"type\": \"phone\",\r\n \"isInput\": true,\r\n \"width\": \"\",\r\n \"inputType\": \"string\",\r\n \"showClearButton\": true,\r\n \"mask\": \"+90 (000) 000-0000\",\r\n \"value\": \"\",\r\n \"required\": false,\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Telefon\",\r\n \"Placeholder\": \"Telefon\",\r\n \"Hint\": \"Telefon\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxEmailComponent\",\r\n \"name\": \"Email\",\r\n \"id\": \"\",\r\n \"type\": \"email\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"showClearButton\": true,\r\n \"value\": \"\",\r\n \"required\": false,\r\n \"showEditPop\": false,\r\n \"width\": \"\",\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Email\",\r\n \"Placeholder\": \"Email\",\r\n \"Hint\": \"Email\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxTextareaComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Text Area\",\r\n \"id\": \"\",\r\n \"type\": \"textarea\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"showClearButton\": true,\r\n \"maxLength\": 500,\r\n \"value\": \"\",\r\n \"required\": false,\r\n \"showEditPop\": false,\r\n \"width\": \"\",\r\n \"height\": 90,\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Metin\",\r\n \"Placeholder\": \"Text\",\r\n \"Hint\": \"Metin\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxSelectboxComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Select Box\",\r\n \"id\": \"\",\r\n \"type\": \"selectbox\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"width\": \"\",\r\n \"required\": false,\r\n \"showClearButton\": true,\r\n \"isManual\": false,\r\n \"valueExpr\": \"value\",\r\n \"displayExpr\": \"text\",\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"sqlScripts\": [],\r\n \"dataStorage\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\"\r\n },\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Seçim\",\r\n \"Placeholder\": \"Seçiniz\",\r\n \"Hint\": \"Seçim\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxDatagridSelectComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Lookup\",\r\n \"id\": \"\",\r\n \"type\": \"selectbox\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"width\": \"\",\r\n \"required\": false,\r\n \"showClearButton\": true,\r\n \"isManual\": false,\r\n \"valueExpr\": \"value\",\r\n \"displayExpr\": \"text\",\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"sqlScripts\": [],\r\n \"dataStorage\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\"\r\n },\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Seçim\",\r\n \"Placeholder\": \"Seçiniz\",\r\n \"Hint\": \"Seçim\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxDateboxComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Date Box\",\r\n \"id\": \"\",\r\n \"type\": \"datebox\",\r\n \"isInput\": true,\r\n \"inputType\": \"datetime\",\r\n \"datetype\": \"date\",\r\n \"displayFormat\": \"dd/MM/yyyy HH:mm\",\r\n \"width\": \"\",\r\n \"showEditPop\": false,\r\n \"value\": null,\r\n \"required\": false,\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Tarih\",\r\n \"Placeholder\": \"...\",\r\n \"Hint\": \"Tarih\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxCheckboxComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Check Box\",\r\n \"id\": \"\",\r\n \"type\": \"checkbox\",\r\n \"isInput\": true,\r\n \"inputType\": \"bool\",\r\n \"width\": 130,\r\n \"showEditPop\": false,\r\n \"value\": false,\r\n \"required\": false,\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Check Box\",\r\n \"Hint\": \"Check Box\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxRadiogroupComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Radio Group\",\r\n \"id\": \"\",\r\n \"type\": \"radiogroup\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"label\": \"Radio Group\",\r\n \"showEditPop\": false,\r\n \"layout\": \"horizontal\",\r\n \"value\": \"\",\r\n \"required\": false,\r\n \"width\": \"\",\r\n \"items\": [\r\n {\r\n \"text\": \"Radio Button 1\",\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Title\": \"\"\r\n }\r\n ],\r\n }\r\n ],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Radio Group\",\r\n \"Hint\": \"Radio Group\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxButtonComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Buttons\",\r\n \"nameValue\": \"\",\r\n \"id\": \"\",\r\n \"type\": \"button\",\r\n \"label\": \"Button\",\r\n \"value\": 1,\r\n \"isInput\": true,\r\n \"inputType\": \"int\",\r\n \"style\": \"default\",\r\n \"showEditPop\": false,\r\n \"width\": \"\",\r\n \"buttons\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Buton\",\r\n \"Hint\": \"Buton\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxMultiSelectBoxComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"MultiSelectBox\",\r\n \"id\": \"\",\r\n \"type\": \"multiselectbox\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"width\": \"\",\r\n \"required\": false,\r\n \"showClearButton\": true,\r\n \"isManual\": false,\r\n \"valueExpr\": \"value\",\r\n \"displayExpr\": \"text\",\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"sqlScripts\": [],\r\n \"dataStorage\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\"\r\n },\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Seçim\",\r\n \"Placeholder\": \"Seçiniz\",\r\n \"Hint\": \"Seçim\"\r\n }\r\n ]\r\n },\r\n\r\n //,\r\n //{\r\n // \"component\": \"DxPaymentComponent\",\r\n // \"uuid\": \"\",\r\n // \"name\": \"Payment\",\r\n // \"labelpossition\": \"top\",\r\n // \"id\": \"\",\r\n // \"type\": \"payment\",\r\n // \"isInput\": true,\r\n // \"inputType\": \"string\",\r\n // \"showClearButton\": true,\r\n // \"value\": \"\",\r\n // \"required\": false,\r\n // \"showEditPop\": false,\r\n // \"width\": \"\",\r\n // \"maxLength\": 500,\r\n // \"isAuto\": false,\r\n // \"autoText\": \"\",\r\n // \"systemInfoId\": 0,\r\n // \"permissions\": {\r\n // \"readonlyGroup\": [],\r\n // \"readonlyUsers\": [],\r\n // \"hideGroup\": [],\r\n // \"hideUsers\": []\r\n // },\r\n // \"language\": [\r\n // {\r\n // \"Code\": \"trTR\",\r\n // \"Name\": \"Adı Soyadı\",\r\n // \"CardNo\": \"Kart Numarası\",\r\n // \"Expires\": \"Tarih\", \r\n // \"CvvCvc\": \"CVV / CVC\"\r\n // }\r\n // ]\r\n //}\r\n ]\r\n },\r\n {\r\n \"group\": \"Özel\",\r\n \"components\": [\r\n {\r\n \"component\": \"DxMapComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Map\",\r\n \"id\": \"\",\r\n \"type\": \"map\",\r\n \"isInput\": false,\r\n \"inputType\": \"map\",\r\n \"showEditPop\": false,\r\n \"required\": false,\r\n \"draggable\": true,\r\n \"userChangeDraggable\": false,\r\n \"isAddMultipleMarker\": true,\r\n \"maxMarkerLimit\": 0,\r\n \"value\": [],\r\n \"markers\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Harita\",\r\n \"Hint\": \"Harita\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxLiveComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Live Stream\",\r\n \"labelpossition\": \"top\",\r\n \"id\": \"\",\r\n \"type\": \"livestream\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"showEditPop\": false,\r\n \"width\": \"\",\r\n \"maxLength\": 500,\r\n \"systemInfoId\": 0,\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Canlı Yayın\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxSignatureComponent\",\r\n \"uuid\": \"\",\r\n \"id\": \"\",\r\n \"name\": \"Signature\",\r\n \"type\": \"signature\",\r\n \"isInput\": false,\r\n \"inputType\": \"file\",\r\n \"showEditPop\": false,\r\n \"required\": false,\r\n \"maxFileSize\": 5,\r\n \"value\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Elektronik Imza\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxPdfViewerComponent\",\r\n \"uuid\": \"\",\r\n \"id\": \"\",\r\n \"name\": \"PdfViewer\",\r\n \"type\": \"pdfviewer\",\r\n \"width\": \"100%\",\r\n \"height\": \"100px\",\r\n \"isInput\": false,\r\n \"inputType\": \"file\",\r\n \"showEditPop\": false,\r\n \"required\": false,\r\n \"maxFileSize\": 5,\r\n \"value\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Pdf Göster\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxCommentComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Comment\",\r\n \"id\": \"\",\r\n \"type\": \"comment\",\r\n \"isInput\": false,\r\n \"inputType\": \"comment\",\r\n \"value\": [],\r\n \"width\": \"30\",\r\n \"height\": \"400\",\r\n \"required\": false,\r\n \"showClearButton\": true,\r\n \"isManual\": false,\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"sizeTypeWidth\": \"%\",\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Seçim\",\r\n \"Placeholder\": \"Seçiniz\",\r\n \"Hint\": \"Seçim\"\r\n }\r\n ]\r\n },\r\n\r\n ]\r\n },\r\n\r\n\r\n {\r\n \"group\": \"Data\",\r\n \"components\": [\r\n {\r\n \"component\": \"DxDataGridComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Data Grid\",\r\n \"id\": \"\",\r\n \"type\": \"datagrid\",\r\n \"isInput\": false,\r\n \"inputType\": \"datagrid\",\r\n \"label\": \"Data Grid\",\r\n \"text\": \"Data Grid\",\r\n \"showEditPop\": true,\r\n \"headers\": [],\r\n\r\n \"dataSource\": [],\r\n \"value\": [],\r\n \"keyExpr\": \"ID\",\r\n \"summaryCol\": \"\",\r\n \"selectedRows\": [],\r\n \"sqlExpressions\": [],\r\n \"colorExpressions\": [],\r\n \"total\": 0,\r\n \"filter\": {\r\n \"users\": [],\r\n \"field\": \"\",\r\n \"operator\": \"\",\r\n \"value\": 0,\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Data Grid\",\r\n \"Hint\": \"Data Grid\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxDataListComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"DataList\",\r\n \"id\": \"\",\r\n \"type\": \"datalist\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"width\": \"\",\r\n \"required\": false,\r\n \"showClearButton\": true,\r\n \"isManual\": false,\r\n \"valueExpr\": \"value\",\r\n \"displayExpr\": \"text\",\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"sqlScripts\": [],\r\n \"dataStorage\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\"\r\n },\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n }\r\n ,\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"DataList\",\r\n \"Placeholder\": \"DataList\",\r\n \"Hint\": \"DataList\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxDatasourceComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Data Source\",\r\n \"id\": \"\",\r\n \"type\": \"datasource\",\r\n \"isInput\": false,\r\n \"inputType\": \"\",\r\n \"value\": \"\",\r\n \"valueExpr\": \"\",\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"query\": \"\",\r\n \"connectionString\": \"\",\r\n \"dataSource\": [],\r\n },\r\n {\r\n \"component\": \"DxFormResultComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Kolon Toplam\",\r\n \"id\": \"\",\r\n \"type\": \"number\",\r\n \"isInput\": true,\r\n \"inputType\": \"decimal\",\r\n \"format\": \"#,##0.00\",\r\n \"possition\": \"right\",\r\n \"showEditPop\": false,\r\n \"value\": 0,\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Toplam\",\r\n \"Placeholder\": \"Toplam\",\r\n \"Hint\": \"Toplam\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxDisplayComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Display Text\",\r\n \"labelpossition\": \"top\",\r\n \"id\": \"\",\r\n \"type\": \"display\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"width\": 0,\r\n \"showClearButton\": true,\r\n \"value\": \"Display\",\r\n \"keyExpr\": \"ID\",\r\n \"index\": -1,\r\n \"showEditPop\": false,\r\n \"showImage\": false,\r\n \"imgSrc\": \"\",\r\n \"showVideo\": false,\r\n \"imgCol\": false,\r\n \"videoCol\": false,\r\n \"videoSrc\": \"\",\r\n \"validations\": [],\r\n \"dataSource\": [],\r\n \"dataSourceCol\": \"\",\r\n \"dataSourceKey\": \"\",\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Display\",\r\n \"Placeholder\": \"Text\",\r\n \"Hint\": \"Display\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxGalleryComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Galeri\",\r\n \"id\": \"gallery\",\r\n \"type\": \"gallery\",\r\n \"isInput\": false,\r\n \"inputType\": \"gallery\",\r\n \"showEditPop\": false,\r\n \"dashboardId\": 0,\r\n \"headers\": \"\",\r\n \"isPriceEditable\": false,\r\n \"isVideoGallery\": false,\r\n \"value\": [],\r\n \"category\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\",\r\n \"valueCol\": \"\",\r\n \"displayCol\": \"\",\r\n \"filterType\": 1\r\n },\r\n \"storage\": {\r\n \"connectionStringId\": 0,\r\n \"query\": \"\",\r\n \"keyColumn\": \"\",\r\n \"categoryColumn\": \"\",\r\n \"photoColumn\": \"\",\r\n \"videoColumn\": \"\",\r\n \"titleColumn\": \"\",\r\n \"priceColumn\": \"\",\r\n \"totalColumn\": \"\",\r\n \"totalColumnElement\": \"\",\r\n \"imageFormat\": \"2\",\r\n \"unitConnectionId\": 0,\r\n \"unitQuery\": \"\"\r\n },\r\n \"options\": {\r\n \"layout\": 1,\r\n \"cols\": \"3\",\r\n \"borderColor\": \"\",\r\n \"borderSize\": \"\",\r\n \"infoPossition\": \"bottom\",\r\n \"imgHeight\": 144,\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"rows\": [\r\n {\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"cols\": [\r\n {\r\n \"size\": 6,\r\n \"components\": []\r\n },\r\n {\r\n \"size\": 6,\r\n \"components\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxDashboardComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Dashboard\",\r\n \"id\": \"\",\r\n \"type\": \"dashboard\",\r\n \"isInput\": false,\r\n \"inputType\": \"dashboard\",\r\n \"label\": \"Dashboard\",\r\n \"text\": \"Dashboard\",\r\n \"showEditPop\": true,\r\n \"dashboardId\": 0,\r\n \"components\": [],\r\n \"sizeTypeWidth\": \"%\",\r\n \"sizes\": {\r\n \"width\": \"100\",\r\n \"height\": \"300\",\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Dashboard\",\r\n \"Placeholder\": \"Dashboard seçiniz\",\r\n \"Hint\": \"Dashboard\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxPrintDesignerComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Print Designer\",\r\n \"id\": \"\",\r\n \"type\": \"printdesigner\",\r\n \"isInput\": false,\r\n \"inputType\": \"printdesigner\",\r\n \"label\": \"PrintDesigner\",\r\n \"text\": \"PrintDesigner\",\r\n \"showEditPop\": true,\r\n \"sizeTypeWidth\": \"%\",\r\n \"sizes\": {\r\n \"width\": \"100\",\r\n \"height\": \"500\",\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Beyaz Sayfa Raporu\",\r\n \"Placeholder\": \"Beyaz Sayfa raporu seçiniz\",\r\n \"Hint\": \"Beyaz Sayfa Raporu\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"group\": \"Business\",\r\n \"components\": [\r\n {\r\n \"component\": \"DxSchedulerComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Scheduler\",\r\n \"id\": \"\",\r\n \"type\": \"scheduler\",\r\n \"isInput\": false,\r\n \"inputType\": \"scheduler\",\r\n \"showEditPop\": false,\r\n \"required\": false,\r\n \"width\": 500,\r\n \"height\": 600,\r\n \"viewTypes\": [],\r\n \"startTime\": 8,\r\n \"endTime\": 18,\r\n \"weekdayColor\": \"rgba(51, 122, 183, 0.1)\",\r\n \"weekendColor\": \"rgba(51, 122, 183, 0.2)\",\r\n \"eventColor\": \"#327dbf\",\r\n \"canUserChange\": true,\r\n \"isChangeDefaultColor\": false,\r\n \"value\": [],\r\n \"menuData\": {\r\n \"menuNodeKey\": \"\",\r\n \"subMenuNodeKey\": \"\",\r\n \"menuBrowserNode\": \"\"\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Planlayıcı\",\r\n \"Hint\": \"Planlayıcı\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxKanbanComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Kanban\",\r\n \"id\": \"\",\r\n \"type\": \"kanban\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"width\": \"\",\r\n \"height\": \"500\",\r\n \"required\": false,\r\n \"showClearButton\": true,\r\n \"isManual\": false,\r\n \"valueExpr\": \"value\",\r\n \"displayExpr\": \"text\",\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"sqlScripts\": [],\r\n \"dataStorage\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\"\r\n },\r\n \"groupSql\": \"\",\r\n \"assignedColumnName\": \"\",\r\n \"groupColumnName\": \"\",\r\n \"taskPriorityColumnName\": \"\",\r\n \"taskSubjectColumnName\": \"\",\r\n \"taskDetailColumnName\": \"\",\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n }\r\n ,\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Kanban\",\r\n \"Placeholder\": \"Kanban\",\r\n \"Hint\": \"Kanban\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxGanttComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Gantt\",\r\n \"id\": \"\",\r\n \"type\": \"gantt\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"width\": \"\",\r\n \"required\": false,\r\n \"showClearButton\": true,\r\n \"isManual\": false,\r\n \"valueExpr\": \"value\",\r\n \"displayExpr\": \"text\",\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"sqlScripts\": [],\r\n \"dataStorage\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\"\r\n },\r\n \"task\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\",\r\n \"keyExpr\": \"\",\r\n \"titleExpr\": \"\",\r\n \"startExpr\": \"\",\r\n \"endExpr\": \"\",\r\n \"parentIdExpr\": \"\",\r\n \"progressExpr\": \"\",\r\n \"colorExpr\": \"\",\r\n },\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n }\r\n ,\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Gantt\",\r\n \"Placeholder\": \"Gantt\",\r\n \"Hint\": \"Gantt\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxEtrDiagramComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Diagram\",\r\n \"id\": \"\",\r\n \"type\": \"diagram\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"width\": \"\",\r\n \"required\": false,\r\n \"isManual\": false,\r\n \"valueExpr\": \"value\",\r\n \"displayExpr\": \"text\",\r\n \"showEditPop\": false,\r\n \"validations\": [],\r\n \"sqlScripts\": [],\r\n \"dataStorage\": {\r\n \"connectionId\": 0,\r\n \"query\": \"\"\r\n },\r\n \"customShapes\": [],\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n }\r\n ,\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Gantt\",\r\n \"Placeholder\": \"Gantt\",\r\n \"Hint\": \"Gantt\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"group\": \"Dosya\",\r\n \"components\": [\r\n {\r\n \"component\": \"DxImageuploadComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Image Upload\",\r\n \"id\": \"\",\r\n \"type\": \"imageupload\",\r\n \"isInput\": false,\r\n \"inputType\": \"file\",\r\n \"showEditPop\": false,\r\n \"required\": false,\r\n \"maxFileSize\": 5,\r\n \"value\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Fotoğraf Yükle\",\r\n \"Hint\": \"Fotoğraf Yükle\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxPictureBoxComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Picture Box\",\r\n \"id\": \"\",\r\n \"type\": \"picturebox\",\r\n \"isInput\": false,\r\n \"inputType\": \"file\",\r\n \"showEditPop\": false,\r\n \"required\": false,\r\n \"maxFileSize\": 5,\r\n \"value\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Fotoğraf Yükle\",\r\n \"Hint\": \"Fotoğraf Yükle\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxVideouploadComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Video Upload\",\r\n \"id\": \"\",\r\n \"type\": \"videoupload\",\r\n \"isInput\": false,\r\n \"inputType\": \"file\",\r\n \"showEditPop\": false,\r\n \"value\": [],\r\n \"required\": false,\r\n \"maxFileSize\": 10,\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Video Yükle\",\r\n \"Hint\": \"Video Yükle\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxFileuploadComponent\",\r\n \"uuid\": \"\",\r\n \"id\": \"\",\r\n \"type\": \"fileupload\",\r\n \"name\": \"File Upload\",\r\n \"isInput\": false,\r\n \"inputType\": \"file\",\r\n \"showEditPop\": false,\r\n \"value\": [],\r\n \"files\": [],\r\n \"required\": false,\r\n \"maxFileSize\": 5,\r\n \"validations\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Dosya Yükle\",\r\n \"Hint\": \"Dosya Yükle\"\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"group\": \"Layout\",\r\n \"components\": [\r\n {\r\n \"component\": \"DxMenuComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Menu\",\r\n \"id\": \"\",\r\n \"type\": \"menu\",\r\n \"isInput\": false,\r\n \"inputType\": \"menu\",\r\n \"label\": \"Menu\",\r\n \"showEditPop\": false,\r\n \"nodes\": [],\r\n \"value\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n { \"Code\": \"trTR\", \"Title\": \"Form Adı\" }\r\n ],\r\n\r\n },\r\n {\r\n \"component\": \"DxGridComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Grid\",\r\n \"id\": \"grid\",\r\n \"type\": \"grid\",\r\n \"isInput\": false,\r\n \"inputType\": \"\",\r\n \"showEditPop\": false,\r\n \"options\": {\r\n \"showBorder\": true,\r\n \"borderType\": \"dashed\",\r\n \"borderColor\": \"#9f9f9f\",\r\n \"borderSize\": \"1\",\r\n \"marginTop\": \"0\",\r\n \"bgColor\": \"rgba(0, 0, 0, 0)\",\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"rows\": [\r\n {\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"cols\": [\r\n {\r\n \"size\": 12,\r\n \"components\": []\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxAccordionComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Panel\",\r\n \"id\": \"accordion\",\r\n \"type\": \"panel\",\r\n \"isInput\": false,\r\n \"inputType\": \"\",\r\n \"showEditPop\": false,\r\n \"options\": {\r\n \"bgColor\": \"rgba(255, 255, 255, 1)\",\r\n \"color\": \"rgb(0, 0, 0)\"\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"items\": [\r\n {\r\n \"title\": \"Panel 1\",\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"components\": []\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxTabsComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Tab\",\r\n \"id\": \"tabs\",\r\n \"type\": \"tabs\",\r\n \"isInput\": false,\r\n \"inputType\": \"\",\r\n \"showEditPop\": false,\r\n \"options\": {\r\n \"bgColor\": \"rgba(255, 255, 255, 1)\",\r\n \"color\": \"rgb(0, 0, 0)\"\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"items\": [\r\n {\r\n \"title\": \"Tab 1\",\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"components\": []\r\n }\r\n ],\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Tabs\"\r\n }\r\n ]\r\n },\r\n {\r\n \"component\": \"DxChildFormComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Child Form\",\r\n \"labelpossition\": \"top\",\r\n \"id\": \"\",\r\n \"type\": \"childform\",\r\n \"isInput\": true,\r\n \"inputType\": \"string\",\r\n \"value\": \"\",\r\n \"showEditPop\": false,\r\n \"width\": \"\",\r\n \"maxLength\": 500,\r\n \"systemInfoId\": 0,\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Form Aç\"\r\n }\r\n ]\r\n },\r\n ]\r\n },\r\n {\r\n \"group\": \"Editorler\",\r\n \"components\": [\r\n {\r\n \"component\": \"DxHtmleditorComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"HTML Editor\",\r\n \"id\": \"\",\r\n \"type\": \"htmleditor\",\r\n \"isInput\": false,\r\n \"inputType\": \"htmleditor\",\r\n \"value\": \"\",\r\n \"height\": \"350px\",\r\n \"showEditPop\": false,\r\n \"labels\": [],\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n },\r\n {\r\n \"component\": \"DxCodeditorComponent\",\r\n \"uuid\": \"\",\r\n \"name\": \"Code Editor\",\r\n \"id\": \"\",\r\n \"type\": \"codeditor\",\r\n \"isInput\": false,\r\n \"inputType\": \"codeeditor\",\r\n \"value\": \"\",\r\n \"height\": \"350px\",\r\n \"label\": \"Kod Editor\",\r\n \"showEditPop\": false,\r\n \"labels\": [],\r\n \"expretion\": \"\"\r\n }\r\n ]\r\n }\r\n\r\n ]\r\n\r\n inputComponents: any = [];\r\n isCreateditorDict: boolean = false;\r\n\r\n formComponentList: any = [];\r\n\r\n formComponentTempList: any = [];\r\n schedulerChangeData: any;\r\n constructor(private eventEmitterService: EventEmitterService) {\r\n debugger;\r\n this.languageSourceChange.subscribe((value) => {\r\n this.languageSource = value\r\n });\r\n }\r\n\r\n createuuid() {\r\n return uuid();\r\n }\r\n\r\n //changeDisableAndVisible(_sub) {\r\n // this.eventEmitterService.ChangeDisableAndVisible(_sub);\r\n //}\r\n //for undo and redo\r\n public cloneModel(oldData: T): T {\r\n return _.cloneDeep(oldData);\r\n }\r\n\r\n isIdAvalible(id, uuid, anotherPopupId) {\r\n let currentFormSelected = this.currentFormSelected(anotherPopupId);\r\n this.formComponentList = [];\r\n this.createComponentList(currentFormSelected.components, anotherPopupId);\r\n let elm = this.formComponentList.find(x => x.id === id && x.uuid != uuid);\r\n return typeof (elm) == \"undefined\";\r\n }\r\n\r\n checkUserAuthorization(isReadonly, components, userId, anotherPopupId) {\r\n\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n for (let component of this.formComponentList) {\r\n\r\n if (component.permissions) {\r\n let rUser = component.permissions.readonlyUsers.indexOf(userId) !== -1;\r\n let hUser = component.permissions.hideUsers.indexOf(userId) !== -1;\r\n let dhUser = component.permissions.deleteHideUsers ? component.permissions.deleteHideUsers.indexOf(userId) !== -1 : false;\r\n\r\n let rGroup: boolean = false;\r\n let hGroup: boolean = false;\r\n let dhGroup: boolean = false;\r\n component.permissions.readonlyGroup.forEach(group => {\r\n if (group.users && group.users.indexOf(userId) !== -1) rGroup = true;\r\n });\r\n component.permissions.hideGroup.forEach(group => {\r\n if (group.users && group.users.indexOf(userId) !== -1) hGroup = true;\r\n });\r\n if (component.permissions.deleteHideGroup)\r\n component.permissions.deleteHideGroup.forEach(group => {\r\n if (group.users && group.users.indexOf(userId) !== -1) dhGroup = true;\r\n });\r\n\r\n component.disabled = isReadonly || rUser || rGroup;\r\n component.hide = hUser || hGroup;\r\n component.deleteHide = dhUser || dhGroup;\r\n }\r\n else {\r\n component.hide = false;\r\n component.disabled = false;\r\n component.deleteHide = false;\r\n }\r\n }\r\n }\r\n\r\n hideComponentList(components, anotherPopupId) {\r\n let currentFormSelected = this.currentFormSelected(anotherPopupId);\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].type == \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.hideComponentList(components[i].rows[j].cols[k].components, anotherPopupId);\r\n }\r\n }\r\n }\r\n else if (components[i].type == \"panel\" || components[i].type == \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.hideComponentList(components[i].items[j].components, anotherPopupId);\r\n }\r\n }\r\n else if (components[i].type == \"menu\" && currentFormSelected.menuComponents) {\r\n for (let m = 0; m < currentFormSelected.menuComponents.length; m++) {\r\n this.hideComponentList(currentFormSelected.menuComponents[m], anotherPopupId);\r\n if (currentFormSelected.menuComponents[m].type == \"grid\") {\r\n for (let j = 0; j < currentFormSelected.menuComponents[m].rows.length; j++) {\r\n for (let k = 0; k < currentFormSelected.menuComponents[m].rows[j].cols.length; k++) {\r\n this.hideComponentList(currentFormSelected.menuComponents[m].rows[j].cols[k].components, anotherPopupId);\r\n }\r\n }\r\n }\r\n else if (currentFormSelected.menuComponents[m].type == \"panel\" || currentFormSelected.menuComponents[m].type == \"tabs\") {\r\n for (let j = 0; j < currentFormSelected.menuComponents[m].items.length; j++) {\r\n this.hideComponentList(currentFormSelected.menuComponents[m].items[j].components, anotherPopupId);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (components[i].hide) {\r\n components.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n evulateExpretion(expretion) {\r\n eval(expretion);\r\n }\r\n\r\n setFormValues(components, formValues, anotherPopupId) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n for (let i = 0; i < formValues.length; i++) {\r\n let com = this.formComponentList.find(x => x.id == formValues[i].key);\r\n if (typeof com != \"undefined\") {\r\n com.value = formValues[i].value;\r\n if (com.isInput) {\r\n com.isUserChange = typeof formValues[i].isUserChange == \"undefined\" ? false : formValues[i].isUserChange;\r\n }\r\n if (com.inputType == \"datagrid\") {\r\n if (com.value == \"[]\") com.value = []\r\n if (com.value.length > 0) {\r\n com.value = this.fixDataGridHeadersAndValues(com.value, formValues[i].headers, formValues[i].headerTypes)\r\n }\r\n com.selectedRows = formValues[i].selectedRowCount;\r\n com.userChangeColumns = formValues[i].userChangeColumns;\r\n }\r\n if (com.inputType == \"map\") {\r\n com.markers = formValues[i].markers;\r\n }\r\n if (com.inputType == \"datetime\") {\r\n com.isTodaySelected = typeof com.isTodaySelected == \"undefined\" ? true : com.isTodaySelected;\r\n if (com.isTodaySelected && (typeof com.value == \"undefined\" || com.value == null || com.value == \"\")) {\r\n com.value = new Date();\r\n }\r\n }\r\n\r\n //if (com.type == \"button\") { \r\n // com.isLiveWeb = formValues[i].isLiveWeb;\r\n // com.liveWeb = formValues[i].liveWeb;\r\n //} \r\n }\r\n }\r\n }\r\n\r\n fixDataGridHeadersAndValues(compVal, headers, headerTypes) {\r\n // Datagrid valuelarının tanımsız gelme sorununu düzeltmek için yazıldı.\r\n // Aynı zamanda header type için default değer ile ilgili bir sorun yaşanırsa kullanılabilir.\r\n const headersList = headers.split(',')\r\n const headersTypeList = headerTypes.split(',')\r\n if (compVal.length > 0) {\r\n compVal.forEach(data => {\r\n\r\n for (var i = 0; i < headersList.length; i++) {\r\n if (typeof data[headersList[i]] == \"undefined\") {\r\n\r\n if (headersTypeList[i] == \"file\"\r\n || headersTypeList[i] == \"map\"\r\n || headersTypeList[i] == \"picturebox\"\r\n || headersTypeList[i] == \"fileviewer\") {\r\n\r\n data[headersList[i]] = []\r\n } else if (headersTypeList[i] == \"int\" || headersTypeList[i] == \"double\") {\r\n data[headersList[i]] = 0\r\n } else if (headersTypeList[i] == \"checkbox\") {\r\n data[headersList[i]] = false\r\n } else if (headersTypeList[i] == \"date\" || headersTypeList[i] == \"datetime\") {\r\n data[headersList[i]] = null\r\n } else {\r\n data[headersList[i]] = \"\"\r\n }\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n\r\n return compVal\r\n }\r\n\r\n createCdkList(anotherPopupId) {\r\n this.cdkListIds = [];\r\n let grids: any[] = this.getComponentsByType(\"grid\", anotherPopupId);\r\n let panels: any[] = this.getComponentsByType(\"panel\", anotherPopupId);\r\n let tabs: any[] = this.getComponentsByType(\"tabs\", anotherPopupId);\r\n\r\n for (let i = 0; i < grids.length; i++) {\r\n for (let j = 0; j < grids[i].rows.length; j++) {\r\n for (let k = 0; k < grids[i].rows[j].cols.length; k++) {\r\n let gridId = \"cdkListGrid\" + grids[i].id + \"\" + j + \"\" + k;\r\n this.cdkListIds.push(gridId);\r\n }\r\n }\r\n }\r\n for (let i = 0; i < panels.length; i++) {\r\n for (let j = 0; j < panels[i].items.length; j++) {\r\n let panelId = \"cdkListPanel\" + panels[i].id + j;\r\n this.cdkListIds.push(panelId);\r\n }\r\n }\r\n for (let i = 0; i < tabs.length; i++) {\r\n for (let j = 0; j < tabs[i].items.length; j++) {\r\n let tabId = \"cdkListTab\" + tabs[i].id + j;\r\n this.cdkListIds.push(tabId);\r\n }\r\n }\r\n }\r\n\r\n setComponent(components, selectBoxId, elementId, key, anotherPopupId) {\r\n let selectBox = this.getById(selectBoxId, components, anotherPopupId);\r\n let el = this.getById(elementId, components, anotherPopupId);\r\n if (selectBox.dataSource) {\r\n let item = selectBox.dataSource.find(x => x[selectBox.valueExpr] === selectBox.value);\r\n if (item) el.value = item[key];\r\n }\r\n }\r\n\r\n createId(type, components, anotherPopupId) {\r\n if (components) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n let items = this.formComponentList.filter(x => x.type == type);\r\n let i = 1;\r\n let itemId = \"\";\r\n\r\n for (i = 1; i < (this.formComponentList.length + 100); i++) {\r\n itemId = type + (items.length + i);\r\n if (typeof this.formComponentList.find(x => x.id == itemId) == \"undefined\")\r\n break;\r\n }\r\n itemId = itemId == \"\" ? type + (items.length + 1) : itemId;\r\n\r\n return itemId;//type + (items.length + 1);\r\n }\r\n }\r\n\r\n getAllComponentList(components, anotherPopupId) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n let items = this.formComponentList;\r\n return items;\r\n }\r\n\r\n getComponentList(components, anotherPopupId) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n let items = this.formComponentList.filter(x => (x.isInput == true && x.type != \"button\") || x.type == \"datagrid\" || x.type == \"gallery\" || x.type == \"picturebox\" || x.type == \"signature\" || x.type == \"imageupload\" || x.type == \"videoupload\" || x.type == \"fileupload\" || x.type == \"map\" || x.type == \"comment\");\r\n return items;\r\n }\r\n\r\n getComponentListWithButton(components, anotherPopupId) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n let items = this.formComponentList.filter(x => (x.isInput == true) || x.type == \"datagrid\" || x.type == \"gallery\" || x.type == \"picturebox\" || x.type == \"map\" || x.type == \"signature\" || x.type == \"comment\");\r\n return items;\r\n }\r\n\r\n getButtonComponentList(components, anotherPopupId) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n let items = this.formComponentList.filter(x => (x.isInput == true && x.type == \"button\"));\r\n return items;\r\n }\r\n\r\n getFilesComponentList(components, anotherPopupId) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n let items = this.formComponentList.filter(x => x.inputType == \"file\");\r\n return items;\r\n }\r\n\r\n\r\n getInputComponentList(components, anotherPopupId) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n let items = this.formComponentList.filter(x => (x.isInput == true && x.type != \"button\") && x.type != \"datagrid\" && x.type != \"gallery\" && x.type != \"picturebox\" && x.type != \"map\" && x.type != \"signature\");\r\n return items;\r\n }\r\n\r\n componentListObjectTemp(components) {\r\n for (let i = 0; i < components.length; i++) {\r\n this.formComponentTempList.push(components[i]);\r\n if (components[i].type == \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.componentListObjectTemp(components[i].rows[j].cols[k].components);\r\n }\r\n }\r\n }\r\n else if (components[i].type == \"panel\" || components[i].type == \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.componentListObjectTemp(components[i].items[j].components);\r\n }\r\n }\r\n }\r\n }\r\n\r\n changeComponentListObject(components, changedComponent, changedObject, changedValue) {\r\n\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].type == \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.changeComponentListObject(components[i].rows[j].cols[k].components, changedComponent, changedObject, changedValue);\r\n }\r\n }\r\n }\r\n else if (components[i].type == \"panel\" || components[i].type == \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.changeComponentListObject(components[i].items[j].components, changedComponent, changedObject, changedValue);\r\n }\r\n }\r\n else {\r\n if (components[i].id == changedComponent) {\r\n components[i][changedObject] = changedValue;\r\n return components;\r\n }\r\n }\r\n //else if (components[i].type == \"menu\" && currentFormSelected.menuComponents) {\r\n // for (let m = 0; m < currentFormSelected.menuComponents.length; m++) {\r\n // this.createComponentList(currentFormSelected.menuComponents[m], anotherPopupId);\r\n // if (currentFormSelected.menuComponents[m].type == \"grid\") {\r\n // for (let j = 0; j < currentFormSelected.menuComponents[m].rows.length; j++) {\r\n // for (let k = 0; k < currentFormSelected.menuComponents[m].rows[j].cols.length; k++) {\r\n // this.createComponentList(currentFormSelected.menuComponents[m].rows[j].cols[k].components, anotherPopupId);\r\n // }\r\n // }\r\n // }\r\n // else if (currentFormSelected.menuComponents[m].type == \"panel\" || currentFormSelected.menuComponents[m].type == \"tabs\") {\r\n // for (let j = 0; j < this.currentForm.menuComponents[m].items.length; j++) {\r\n // this.createComponentList(currentFormSelected.menuComponents[m].items[j].components, anotherPopupId);\r\n // }\r\n // }\r\n // }\r\n //}\r\n\r\n }\r\n return components;\r\n }\r\n\r\n createComponentList(components, anotherPopupId) {\r\n let currentFormSelected = this.currentFormSelected(anotherPopupId);\r\n for (let i = 0; i < components.length; i++) {\r\n this.formComponentList.push(components[i]);\r\n if (components[i].type == \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.createComponentList(components[i].rows[j].cols[k].components, anotherPopupId);\r\n }\r\n }\r\n }\r\n else if (components[i].type == \"panel\" || components[i].type == \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.createComponentList(components[i].items[j].components, anotherPopupId);\r\n }\r\n }\r\n else if (components[i].type == \"menu\" && currentFormSelected.menuComponents) {\r\n for (let m = 0; m < currentFormSelected.menuComponents.length; m++) {\r\n this.createComponentList(currentFormSelected.menuComponents[m], anotherPopupId);\r\n if (currentFormSelected.menuComponents[m].type == \"grid\") {\r\n for (let j = 0; j < currentFormSelected.menuComponents[m].rows.length; j++) {\r\n for (let k = 0; k < currentFormSelected.menuComponents[m].rows[j].cols.length; k++) {\r\n this.createComponentList(currentFormSelected.menuComponents[m].rows[j].cols[k].components, anotherPopupId);\r\n }\r\n }\r\n }\r\n else if (currentFormSelected.menuComponents[m].type == \"panel\" || currentFormSelected.menuComponents[m].type == \"tabs\") {\r\n for (let j = 0; j < this.currentForm.menuComponents[m].items.length; j++) {\r\n this.createComponentList(currentFormSelected.menuComponents[m].items[j].components, anotherPopupId);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n getInputComponents(components, anotherPopupId) {\r\n let currentFormSelected = this.currentFormSelected(anotherPopupId);\r\n const list = [];\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].isInput === true) {\r\n const obj = {};\r\n obj[\"key\"] = components[i].id;\r\n obj[\"value\"] = components[i].value;\r\n list.push(obj);\r\n }\r\n else if (components[i].type === \"map\") {\r\n const obj = {};\r\n obj[\"key\"] = components[i].id;\r\n obj[\"value\"] = components[i].value;\r\n obj[\"markers\"] = components[i].markers;\r\n list.push(obj);\r\n }\r\n else if (components[i].type === \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.getInputComponents(components[i].rows[j].cols[k].components, anotherPopupId);\r\n }\r\n }\r\n }\r\n else if (components[i].type === \"panel\" || components[i].type === \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.getInputComponents(components[i].items[j].components, anotherPopupId);\r\n }\r\n }\r\n else if (components[i].type === \"menu\" && currentFormSelected.menuComponents) {\r\n for (let k = 0; k < currentFormSelected.menuComponents.length; k++) {\r\n this.createComponentList(currentFormSelected.menuComponents[k], anotherPopupId);\r\n }\r\n }\r\n }\r\n\r\n return list;\r\n }\r\n\r\n getInputComponentsByReturnArray(components, list: any, anotherPopupId) {\r\n let currentFormSelected = this.currentFormSelected(anotherPopupId);\r\n\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].isInput === true) {\r\n const obj = {};\r\n obj[\"key\"] = components[i].id;\r\n obj[\"value\"] = components[i].value;\r\n list.push(obj);\r\n }\r\n else if (components[i].type === \"map\") {\r\n const obj = {};\r\n obj[\"key\"] = components[i].id;\r\n obj[\"value\"] = components[i].value;\r\n obj[\"markers\"] = components[i].markers;\r\n list.push(obj);\r\n }\r\n else if (components[i].type === \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.getInputComponentsByReturnArray(components[i].rows[j].cols[k].components, list, anotherPopupId);\r\n }\r\n }\r\n }\r\n else if (components[i].type === \"panel\" || components[i].type === \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.getInputComponentsByReturnArray(components[i].items[j].components, list, anotherPopupId);\r\n }\r\n }\r\n else if (components[i].type === \"menu\" && currentFormSelected.menuComponents) {\r\n for (let k = 0; k < currentFormSelected.menuComponents.length; k++) {\r\n this.getInputComponentsByReturnArray(currentFormSelected.menuComponents[k], list, anotherPopupId);\r\n }\r\n }\r\n }\r\n\r\n return list;\r\n }\r\n\r\n\r\n getById(id, components, anotherPopupId) {\r\n this.formComponentList = [];\r\n this.createComponentList(components, anotherPopupId);\r\n return this.formComponentList.find(x => x.id === id) || {};\r\n }\r\n\r\n getComponentsByType(key, anotherPopupId) {\r\n let currentFormSelected = this.currentFormSelected(anotherPopupId);\r\n this.formComponentList = [];\r\n this.createComponentList(currentFormSelected.components, anotherPopupId);\r\n return this.formComponentList.filter(f => f.type == key);\r\n }\r\n\r\n getComponentsByComponentName(name, anotherPopupId) {\r\n let currentFormSelected = this.currentFormSelected(anotherPopupId);\r\n this.formComponentList = [];\r\n this.createComponentList(currentFormSelected.components, anotherPopupId);\r\n return this.formComponentList.filter(f => f.component == name);\r\n }\r\n\r\n getFileComponents(anotherPopupId) {\r\n let currentFormSelected = this.currentFormSelected(anotherPopupId);\r\n this.formComponentList = [];\r\n this.createComponentList(currentFormSelected.components, anotherPopupId);\r\n return this.formComponentList.filter(f => { f.type == \"fileupload\" || f.type == \"imageupload\" || f.type == \"picturebox\" || f.type == \"videoupload\" || f.type == \"signature\" });\r\n }\r\n\r\n getDataSourceByKey(key, anotherPopupId) {\r\n return this.getById(key, this.currentForm.components, anotherPopupId)\r\n }\r\n\r\n getLocaleLang(locale) {\r\n return locale != null && locale != \"\" && locale.indexOf(\"-\") > -1 ? locale.split(\"-\")[0] : \"tr\";\r\n }\r\n\r\n sum(id, columnName, components, anotherPopupId) {\r\n let grid = this.getById(id, components, anotherPopupId);\r\n if (grid) {\r\n let total = 0;\r\n for (let i = 0; i < grid.dataSource.length; i++) {\r\n total += parseInt(grid.dataSource[i][columnName]);\r\n }\r\n return total;\r\n }\r\n return 0;\r\n }\r\n\r\n getLang(code, languages) {\r\n try {\r\n for (let i = 0; i < languages.length; i++) {\r\n if (languages[i].Code == code) {\r\n return languages[i];\r\n }\r\n }\r\n }\r\n catch {\r\n }\r\n return this.getDefLang(languages);\r\n }\r\n\r\n getDefLang(languages) {\r\n try { return languages.find(f => f.Code == \"trTR\"); }\r\n catch {\r\n }\r\n }\r\n\r\n getFile(fileData) {\r\n return new Promise(resolve => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(fileData);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n let fileName = fileData.name;\r\n let fileType: string = fileData.type;\r\n let base64BlobData: any = args.target.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n let fileSize = fileData.size;\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: fileType,\r\n extension: fileExtension,\r\n size: fileSize,\r\n isImg: this.isImage(fileExtension)\r\n };\r\n resolve(document);\r\n }\r\n }\r\n });\r\n }\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n replaceAllUsingType(query, find, replace, type = null) {\r\n if (replace != null && typeof replace != \"undefined\" && typeof replace.getMonth === 'function') {\r\n replace = replace.getFullYear() + \"-\" + (replace.getMonth() + 1) + \"-\" + replace.getDate() + \" \" + replace.getHours() + \":\" + replace.getMinutes();\r\n }\r\n query = this.replaceAll(query, find, replace);\r\n return query;\r\n }\r\n\r\n isImage(extension) {\r\n let ext = extension.toLowerCase();\r\n if (ext == \"png\"\r\n || ext == \"jpg\"\r\n || ext == \"jpeg\"\r\n || ext == \"jfif\"\r\n || ext == \"gif\"\r\n || ext == \"tif\"\r\n || ext == \"tiff\") return true;\r\n else return false;\r\n }\r\n\r\n //code editor functions\r\n colSum(id, colm, components, anotherPopupId) {\r\n let dataGridValue = this.getById(id, components, anotherPopupId).value;\r\n if (dataGridValue) {\r\n let total = 0;\r\n for (let j = 0; j < dataGridValue.length; j++) {\r\n total += dataGridValue[j][colm];\r\n }\r\n return total;\r\n }\r\n }\r\n\r\n setValue(selectboxId, elementId, key, components, anotherPopupId) {\r\n let selectBox = this.getById(selectboxId, components, anotherPopupId);\r\n let el = this.getById(elementId, components, anotherPopupId);\r\n let item = selectBox.dataSource.find(x => x[selectBox.valueExpr] === selectBox.value);\r\n el.value = item[key];\r\n }\r\n\r\n showAlert(message, status, time) {\r\n notify(message, status, time);\r\n }\r\n\r\n setColSumToElement(elementId, field, gridData, components) {\r\n\r\n let sum = 0;\r\n for (let i = 0; i < gridData.length; i++) {\r\n let gridVal = parseFloat(gridData[i][field]);\r\n sum += (typeof gridVal === \"undefined\" || isNaN(gridVal) ? 0 : gridVal);\r\n }\r\n return sum;\r\n /* \r\n let elm = this.getById(elementId, components);\r\n elm.value = sum;*/\r\n }\r\n\r\n\r\n currentFormSelected(anotherPopupId) {\r\n let currentFormSelected;\r\n // try {\r\n if (anotherPopupId == 0) {\r\n currentFormSelected = this.currentForm;\r\n } else {\r\n\r\n let childObj = this.childPopups.find(x => x.id == anotherPopupId);\r\n if (childObj) {\r\n currentFormSelected = childObj.currentForm;\r\n }\r\n else {\r\n let childClosedObj = this.childPopupsClosed.find(x => x.id == anotherPopupId);\r\n\r\n //console.log(\"--------------------------------------------------------------\");\r\n //console.log(this.childPopupsClosed);\r\n //console.log(\"++++++++++++++++++++\");\r\n //console.log(anotherPopupId); \r\n\r\n currentFormSelected = childClosedObj.currentForm;\r\n }\r\n\r\n }\r\n //}\r\n //catch (ex) {\r\n // console.warn(\"River Error: \");\r\n // console.warn(ex);\r\n //}\r\n return currentFormSelected;\r\n }\r\n\r\n\r\n getAllIcons() {\r\n let _return = [];\r\n this.allIcons.forEach(_icon => {\r\n _return.push({ icon: _icon, html: \"\" });\r\n });\r\n return _return;\r\n }\r\n\r\n\r\n isInteger(str) {\r\n if (typeof str != \"undefined\" && str != null) {\r\n str = (str + \"\").trim();\r\n if (!str) {\r\n return false;\r\n }\r\n str = str.replace(/^0+/, \"\") || \"0\";\r\n var n = Math.floor(Number(str));\r\n return String(n) === str && n >= 0;\r\n }\r\n else\r\n return false;\r\n }\r\n\r\n getlanguageCodes() {\r\n return this.languageCodes;\r\n }\r\n\r\n allIcons = [\r\n \"dx-icon dx-icon-add\",\r\n \"dx-icon dx-icon-airplane\",\r\n \"dx-icon dx-icon-bookmark\",\r\n \"dx-icon dx-icon-box\",\r\n \"dx-icon dx-icon-car\",\r\n \"dx-icon dx-icon-card\",\r\n \"dx-icon dx-icon-cart\",\r\n \"dx-icon dx-icon-chart\",\r\n \"dx-icon dx-icon-check\",\r\n \"dx-icon dx-icon-clear\",\r\n \"dx-icon dx-icon-clock\",\r\n \"dx-icon dx-icon-close\",\r\n \"dx-icon dx-icon-coffee\",\r\n \"dx-icon dx-icon-comment\",\r\n \"dx-icon dx-icon-doc\",\r\n \"dx-icon dx-icon-download\",\r\n \"dx-icon dx-icon-dragvertical\",\r\n \"dx-icon dx-icon-edit\",\r\n \"dx-icon dx-icon-event\",\r\n \"dx-icon dx-icon-favorites\",\r\n \"dx-icon dx-icon-find\",\r\n \"dx-icon dx-icon-filter\",\r\n \"dx-icon dx-icon-folder\",\r\n \"dx-icon dx-icon-activefolder\",\r\n \"dx-icon dx-icon-food\",\r\n \"dx-icon dx-icon-gift\",\r\n \"dx-icon dx-icon-globe\",\r\n \"dx-icon dx-icon-group\",\r\n \"dx-icon dx-icon-help\",\r\n \"dx-icon dx-icon-home\",\r\n \"dx-icon dx-icon-image\",\r\n \"dx-icon dx-icon-info\",\r\n \"dx-icon dx-icon-key\",\r\n \"dx-icon dx-icon-like\",\r\n \"dx-icon dx-icon-map\",\r\n \"dx-icon dx-icon-menu\",\r\n \"dx-icon dx-icon-message\",\r\n \"dx-icon dx-icon-money\",\r\n \"dx-icon dx-icon-music\",\r\n \"dx-icon dx-icon-overflow\",\r\n \"dx-icon dx-icon-percent\",\r\n \"dx-icon dx-icon-photo\",\r\n \"dx-icon dx-icon-plus\",\r\n \"dx-icon dx-icon-minus\",\r\n \"dx-icon dx-icon-preferences\",\r\n \"dx-icon dx-icon-product\",\r\n \"dx-icon dx-icon-pulldown\",\r\n \"dx-icon dx-icon-refresh\",\r\n \"dx-icon dx-icon-remove\",\r\n \"dx-icon dx-icon-revert\",\r\n \"dx-icon dx-icon-runner\",\r\n \"dx-icon dx-icon-save\",\r\n \"dx-icon dx-icon-search\",\r\n \"dx-icon dx-icon-tags\",\r\n \"dx-icon dx-icon-tel\",\r\n \"dx-icon dx-icon-tips\",\r\n \"dx-icon dx-icon-todo\",\r\n \"dx-icon dx-icon-toolbox\",\r\n \"dx-icon dx-icon-trash\",\r\n \"dx-icon dx-icon-user\",\r\n \"dx-icon dx-icon-upload\",\r\n \"dx-icon dx-icon-floppy\",\r\n \"dx-icon dx-icon-arrowleft\",\r\n \"dx-icon dx-icon-arrowdown\",\r\n \"dx-icon dx-icon-arrowright\",\r\n \"dx-icon dx-icon-arrowup\",\r\n \"dx-icon dx-icon-spinleft\",\r\n \"dx-icon dx-icon-spinprev\",\r\n \"dx-icon dx-icon-spinright\",\r\n \"dx-icon dx-icon-spinnext\",\r\n \"dx-icon dx-icon-spindown\",\r\n \"dx-icon dx-icon-spinup\",\r\n \"dx-icon dx-icon-chevronleft\",\r\n \"dx-icon dx-icon-chevronprev\",\r\n \"dx-icon dx-icon-back\",\r\n \"dx-icon dx-icon-chevronright\",\r\n \"dx-icon dx-icon-chevronnext\",\r\n \"dx-icon dx-icon-chevrondown\",\r\n \"dx-icon dx-icon-chevronup\",\r\n \"dx-icon dx-icon-chevrondoubleleft\",\r\n \"dx-icon dx-icon-chevrondoubleright\",\r\n \"dx-icon dx-icon-equal\",\r\n \"dx-icon dx-icon-notequal\",\r\n \"dx-icon dx-icon-less\",\r\n \"dx-icon dx-icon-greater\",\r\n \"dx-icon dx-icon-lessorequal\",\r\n \"dx-icon dx-icon-greaterorequal\",\r\n \"dx-icon dx-icon-isblank\",\r\n \"dx-icon dx-icon-isnotblank\",\r\n \"dx-icon dx-icon-sortup\",\r\n \"dx-icon dx-icon-sortdown\",\r\n \"dx-icon dx-icon-sortuptext\",\r\n \"dx-icon dx-icon-sortdowntext\",\r\n \"dx-icon dx-icon-sorted\",\r\n \"dx-icon dx-icon-expand\",\r\n \"dx-icon dx-icon-collapse\",\r\n \"dx-icon dx-icon-columnfield\",\r\n \"dx-icon dx-icon-rowfield\",\r\n \"dx-icon dx-icon-datafield\",\r\n \"dx-icon dx-icon-fields\",\r\n \"dx-icon dx-icon-fieldchooser\",\r\n \"dx-icon dx-icon-columnchooser\",\r\n \"dx-icon dx-icon-pin\",\r\n \"dx-icon dx-icon-unpin\",\r\n \"dx-icon dx-icon-pinleft\",\r\n \"dx-icon dx-icon-pinright\",\r\n \"dx-icon dx-icon-contains\",\r\n \"dx-icon dx-icon-startswith\",\r\n \"dx-icon dx-icon-endswith\",\r\n \"dx-icon dx-icon-doesnotcontain\",\r\n \"dx-icon dx-icon-range\",\r\n \"dx-icon dx-icon-export\",\r\n \"dx-icon dx-icon-exportxlsx\",\r\n \"dx-icon dx-icon-exportpdf\",\r\n \"dx-icon dx-icon-exportselected\",\r\n \"dx-icon dx-icon-warning\",\r\n \"dx-icon dx-icon-more\",\r\n \"dx-icon dx-icon-square\",\r\n \"dx-icon dx-icon-clearsquare\",\r\n \"dx-icon dx-icon-repeat\",\r\n \"dx-icon dx-icon-selectall\",\r\n \"dx-icon dx-icon-unselectall\",\r\n \"dx-icon dx-icon-print\",\r\n \"dx-icon dx-icon-bold\",\r\n \"dx-icon dx-icon-italic\",\r\n \"dx-icon dx-icon-underline\",\r\n \"dx-icon dx-icon-strike\",\r\n \"dx-icon dx-icon-indent\",\r\n \"dx-icon dx-icon-increaselinespacing\",\r\n \"dx-icon dx-icon-font\",\r\n \"dx-icon dx-icon-fontsize\",\r\n \"dx-icon dx-icon-shrinkfont\",\r\n \"dx-icon dx-icon-growfont\",\r\n \"dx-icon dx-icon-color\",\r\n \"dx-icon dx-icon-background\",\r\n \"dx-icon dx-icon-fill\",\r\n \"dx-icon dx-icon-palette\",\r\n \"dx-icon dx-icon-superscript\",\r\n \"dx-icon dx-icon-subscript\",\r\n \"dx-icon dx-icon-header\",\r\n \"dx-icon dx-icon-blockquote\",\r\n \"dx-icon dx-icon-formula\",\r\n \"dx-icon dx-icon-codeblock\",\r\n \"dx-icon dx-icon-orderedlist\",\r\n \"dx-icon dx-icon-bulletlist\",\r\n \"dx-icon dx-icon-increaseindent\",\r\n \"dx-icon dx-icon-decreaseindent\",\r\n \"dx-icon dx-icon-decreaselinespacing\",\r\n \"dx-icon dx-icon-alignleft\",\r\n \"dx-icon dx-icon-alignright\",\r\n \"dx-icon dx-icon-aligncenter\",\r\n \"dx-icon dx-icon-alignjustify\",\r\n \"dx-icon dx-icon-link\",\r\n \"dx-icon dx-icon-video\",\r\n \"dx-icon dx-icon-mention\",\r\n \"dx-icon dx-icon-variable\",\r\n \"dx-icon dx-icon-clearformat\",\r\n \"dx-icon dx-icon-fullscreen\",\r\n \"dx-icon dx-icon-hierarchy\",\r\n \"dx-icon dx-icon-docfile\",\r\n \"dx-icon dx-icon-docxfile\",\r\n \"dx-icon dx-icon-pdffile\",\r\n \"dx-icon dx-icon-pptfile\",\r\n \"dx-icon dx-icon-pptxfile\",\r\n \"dx-icon dx-icon-rtffile\",\r\n \"dx-icon dx-icon-txtfile\",\r\n \"dx-icon dx-icon-xlsfile\",\r\n \"dx-icon dx-icon-xlsxfile\",\r\n \"dx-icon dx-icon-copy\",\r\n \"dx-icon dx-icon-cut\",\r\n \"dx-icon dx-icon-paste\",\r\n \"dx-icon dx-icon-share\",\r\n \"dx-icon dx-icon-inactivefolder\",\r\n \"dx-icon dx-icon-newfolder\",\r\n \"dx-icon dx-icon-movetofolder\",\r\n \"dx-icon dx-icon-parentfolder\",\r\n \"dx-icon dx-icon-rename\",\r\n \"dx-icon dx-icon-detailslayout\",\r\n \"dx-icon dx-icon-contentlayout\",\r\n \"dx-icon dx-icon-smalliconslayout\",\r\n \"dx-icon dx-icon-mediumiconslayout\",\r\n \"dx-icon dx-icon-undo\",\r\n \"dx-icon dx-icon-redo\",\r\n \"dx-icon dx-icon-hidepanel\",\r\n \"dx-icon dx-icon-showpanel\",\r\n \"dx-icon dx-icon-checklist\",\r\n \"dx-icon dx-icon-verticalaligntop\",\r\n \"dx-icon dx-icon-verticalaligncenter\",\r\n \"dx-icon dx-icon-verticalalignbottom\",\r\n \"dx-icon dx-icon-rowproperties\",\r\n \"dx-icon dx-icon-columnproperties\",\r\n \"dx-icon dx-icon-cellproperties\",\r\n \"dx-icon dx-icon-tableproperties\",\r\n \"dx-icon dx-icon-splitcells\",\r\n \"dx-icon dx-icon-mergecells\",\r\n \"dx-icon dx-icon-deleterow\",\r\n \"dx-icon dx-icon-deletecolumn\",\r\n \"dx-icon dx-icon-insertrowabove\",\r\n \"dx-icon dx-icon-insertrowbelow\",\r\n \"dx-icon dx-icon-insertcolumnleft\",\r\n \"dx-icon dx-icon-insertcolumnright\",\r\n \"dx-icon dx-icon-inserttable\",\r\n \"dx-icon dx-icon-deletetable\",\r\n //\"icon dx-icon-edittableheader\",\r\n //\"icon dx-icon-addtableheader\",\r\n //\"icon dx-icon-pasteplaintext\",\r\n //\"icon dx-icon-importselected\",\r\n //\"icon dx-icon-import\",\r\n //\"icon dx-icon-textdocument\",\r\n //\"icon dx-icon-jpgfile\",\r\n //\"icon dx-icon-bmpfile\",\r\n //\"icon dx-icon-svgfile\",\r\n //\"icon dx-icon-attach\",\r\n //\"icon dx-icon-return\",\r\n //\"icon dx-icon-indeterminatestate\"\r\n ];\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { HttpClient} from '@angular/common/http';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\n\r\nimport { formatDate } from 'devextreme/localization';\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { GenericService } from '../../shared/services';\r\nimport { AppInfoService } from '../../shared/services';\r\nimport { ComponentService } from '../component.service';\r\n\r\n//import 'devextreme/localization/globalize/date';\r\n\r\n@Component({\r\n selector: 'customdatagrid-component',\r\n templateUrl: './customdatagrid.component.html',\r\n styleUrls: ['./customdatagrid.component.css']\r\n})\r\nexport class DxCustomDataGridComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n \r\n fieldTypes: any[] = [\r\n {\"value\":\"text\", \"name\":\"Text\"},\r\n {\"value\":\"number\", \"name\":\"Sayı\"},\r\n {\"value\":\"date\", \"name\":\"Tarih\"},\r\n {\"value\":\"checkbox\", \"name\":\"Checkbox\"},\r\n {\"value\":\"combobox\", \"name\":\"Combobox\"},\r\n {\"value\":\"selection\", \"name\":\"Selection Text\"}];\r\n\r\n headers = {\r\n \"name\":\"\",\r\n \"type\":\"\",\r\n \"dataSourceKey\":\"\",\r\n \"dataSource\":[],\r\n \"displayKey\":\"\",\r\n \"valueKey\":\"\",\r\n \"width\":1\r\n };\r\n\r\n dataGridColumn:any = [];\r\n dataSourcePopup:boolean=false;\r\n dataSources:any=[];\r\n selectedType: any = {};\r\n dataGridSource:any=[];\r\n gridBoxValue: number[];\r\n permissionPopup : boolean=false;\r\n\r\n dataGridPopup: boolean = false;\r\n selectedCellRow:number;\r\n selectedCellCol:number;\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public genericService: GenericService,\r\n public appInfo: AppInfoService,\r\n private componentService:ComponentService) {\r\n \r\n }\r\n \r\n ngOnInit() {\r\n this.getDataSources();\r\n }\r\n\r\n getDataSources() {\r\n this.dataSources = this.componentService.getComponentsByType(\"datasource\", this.anotherPopupId);\r\n if (!this.isEdit) {\r\n setTimeout(() => {\r\n this.setDataSource();\r\n }, 1000);\r\n }\r\n }\r\n\r\n setDataSource() {\r\n for (let i = 0; i < this.data.headers.length; i++) {\r\n if ((this.data.headers[i].type == \"combobox\" || this.data.headers[i].type == \"selection\") && this.data.headers[i].dataSourceKey !=\"\") {\r\n let source = this.dataSources.find(f => f.id == this.data.headers[i].dataSourceKey);\r\n this.data.headers[i].dataSource = source.dataSource;\r\n }\r\n }\r\n }\r\n\r\n addHeader() {\r\n localStorage.setItem(\"dataGridHeader\", JSON.stringify(this.headers));\r\n let header: any = JSON.parse(localStorage.getItem(\"dataGridHeader\"));\r\n localStorage.removeItem(\"dataGridHeader\");\r\n this.data.headers.push(header);\r\n this.showToast(\"Eklendi\",\"success\");\r\n this.resetHeaderObject();\r\n }\r\n\r\n resetHeaderObject() {\r\n this.headers = {\r\n \"name\":\"\",\r\n \"type\":\"\",\r\n \"dataSourceKey\":\"\",\r\n \"dataSource\":[],\r\n \"displayKey\":\"\",\r\n \"valueKey\":\"\",\r\n \"width\":1\r\n };\r\n }\r\n\r\n deleteHeader(index) {\r\n let result = confirm(\"Emin misiniz?\", \"Kolon Silinecek!\");\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.data.headers.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n addRow() {\r\n let row: any = {};\r\n row.isEditable= true;\r\n row.cols = [];\r\n for (let i = 0; i < this.data.headers.length; i++) {\r\n let col = {\r\n type:this.data.headers[i].type,\r\n label:\"\",\r\n value:\"\",\r\n width:this.data.headers[i].width\r\n };\r\n row.cols.push(col);\r\n }\r\n this.data.value.push(row);\r\n }\r\n\r\n deleteRow(index) {\r\n let result = confirm(\"Emin misiniz?\", \"Satır Silinecek!\");\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.data.value.splice(index, 1);\r\n this.executeExp();\r\n }\r\n });\r\n }\r\n\r\n onValueChanged(event) {\r\n if (event.value == \"selection\" || event.value == \"combobox\") {\r\n this.dataSources = this.componentService.getComponentsByType(\"datasource\", this.anotherPopupId);\r\n }\r\n }\r\n\r\n openDataGrid(dataSource, i, j) {\r\n this.selectedCellRow = i;\r\n this.selectedCellCol = j;\r\n this.dataGridSource = dataSource;\r\n this.dataGridPopup = true;\r\n }\r\n\r\n gridDataClick(data) {\r\n let index = data.rowIndex;\r\n let val = this.data.headers[this.selectedCellCol].dataSource[index][this.data.headers[this.selectedCellCol].displayKey];\r\n this.data.value[this.selectedCellRow].cols[this.selectedCellCol].value = val;\r\n this.dataGridSource = [];\r\n this.dataGridPopup = false;\r\n }\r\n\r\n openPermissionPopup() {\r\n this.permissionPopup = true;\r\n }\r\n\r\n executeExp() { \r\n this.eventEmitterService.executeExpretion(this.anotherPopupId);\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, Input, ElementRef, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService, FormService, GenericService, AppInfoService, ReportService } from '../../shared/services';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { EditorComponent } from 'ngx-monaco-editor';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { locale } from 'devextreme/localization';\r\nimport { DashboardControl, ResourceManager } from 'devexpress-dashboard';\r\n\r\n@Component({\r\n selector: 'dashboard-component',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.css']\r\n})\r\nexport class DxDashboardComponent implements ComponentParameters, OnInit, OnDestroy {\r\n \r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n permissionPopup = false;\r\n languagePopup = false;\r\n showSettingPopup = false;\r\n languageCodes = []\r\n \r\n systemInfoPage: any;\r\n systemValTemp: any = \"\";\r\n systemValTempActive: any = false;\r\n\r\n \r\n private dashboardControl!: DashboardControl;\r\n languageLocal: any = \"\";\r\n\r\n dashboards: any = [];\r\n formComponents = [];\r\n selectedComponentId: string;\r\n sizeTypes = [\"%\", \"px\"];\r\n constructor(public appInfo: AppInfoService,\r\n private element: ElementRef,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public reportService: ReportService) {\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.languageCodes = this.componentService.getlanguageCodes();\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n \r\n let _locale = this.appInfo.currentUser.deflang;\r\n locale(componentService.getLocaleLang(_locale));\r\n ResourceManager.embedBundledResources();\r\n }\r\n\r\n \r\n ngOnInit() {\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.getDashboards();\r\n this.loadComponents();\r\n if (!this.isEdit) {\r\n this.eventEmitterService.invokeOnValueChageEvent.subscribe(sub => {\r\n if (sub && sub.id) {\r\n const comp = this.data.components.find(f => f.id == sub.id);\r\n if (comp) {\r\n comp.value = sub.value;\r\n this.loadDashboard();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isEdit && this.data.value !== \"0\") {\r\n this.loadDashboard();\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.dashboardControl && this.dashboardControl.dispose();\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n loadComponents() {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n const componentList = this.componentService.getInputComponentsByReturnArray(currentFormSelected.components, [], this.anotherPopupId);\r\n this.formComponents = componentList.map(m => { return {id : m.key, value : m.value }});\r\n }\r\n\r\n getParams() {\r\n const params = [];\r\n this.data.components.forEach(item => {\r\n if (item.value) {\r\n const param = \"{\"+item.id+\"}\" + \"|\" + item.value;\r\n params.push(param);\r\n }\r\n });\r\n return params.join(\"-\");\r\n }\r\n\r\n loadDashboard() {\r\n const params = this.getParams();\r\n let initialDashboardId = this.data.dashboardId + \"_\" + this.appInfo.currentUser.id;\r\n if (params && params !== \"\")\r\n initialDashboardId += \"_\" + params;\r\n\r\n if (this.dashboardControl) {\r\n this.dashboardControl = new DashboardControl(this.element.nativeElement.querySelector(\".dashboard-container\"), {\r\n // Specifies a URL of the Web Dashboard's server.\r\n endpoint: this.appInfo.appUrl + \"api/dashboard\",\r\n initialDashboardId: initialDashboardId,\r\n workingMode: \"Viewer\",\r\n });\r\n this.dashboardControl.refresh();\r\n }\r\n else {\r\n this.dashboardControl = new DashboardControl(this.element.nativeElement.querySelector(\".dashboard-container\"), {\r\n // Specifies a URL of the Web Dashboard's server.\r\n endpoint: this.appInfo.appUrl + \"api/dashboard\",\r\n initialDashboardId: initialDashboardId,\r\n workingMode: \"Viewer\",\r\n });\r\n this.dashboardControl.render();\r\n }\r\n \r\n\r\n //this.dashboardControl.render();\r\n }\r\n\r\n getDashboards() {\r\n this.reportService.getReportWithoutCategory().subscribe(result => {\r\n this.dashboards = result;\r\n });\r\n }\r\n\r\n\r\n addComponent() {\r\n const comp = this.formComponents.find(f => f.id === this.selectedComponentId);\r\n const obj: any = {};\r\n obj.id = this.selectedComponentId;\r\n obj.value = \"\";\r\n const index = this.data.components.indexOf(obj);\r\n if (index < 0) {\r\n this.data.components.push(obj);\r\n }\r\n }\r\n removeComponent(index) {\r\n this.data.components.splice(index, 1);\r\n }\r\n\r\n saveSetting() {\r\n const isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n /*const systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n if (systemInfoTemp)\r\n this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n else\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });*/\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n if (systemInfoTemp)\r\n this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n else\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n // this.componentService.currentSystemInfo = { id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) };//this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n }\r\n });\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n}\r\n","import { HostListener, Component, OnInit, Input, ViewChild, AfterViewInit, ChangeDetectorRef, ElementRef, Inject, OnDestroy, ComponentFactoryResolver, ViewContainerRef, EmbeddedViewRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { DxFormResultComponent } from \"../formresult/formresult.component\";\r\nimport DataSource from \"devextreme/data/data_source\";\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { GenericService, TaskService } from '../../shared/services';\r\nimport { AppInfoService } from '../../shared/services';\r\nimport { ComponentService } from '../component.service';\r\nimport { DxProgressBarComponent, DxDataGridComponent } from 'devextreme-angular';\r\n//import { error } from '@angular/compiler/src/util';\r\nimport { Subscription } from 'rxjs';\r\nimport { MouseEvent, MapsAPILoader } from '@agm/core';\r\nimport { marker } from '../../shared/models/map-marker';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\n\r\nimport Popup from \"devextreme/ui/popup\";\r\nimport Button from \"devextreme/ui/button\";\r\nimport ScrollView from \"devextreme/ui/scroll_view\";\r\nimport { formatNumber } from \"devextreme/localization\";\r\nimport { FormRender } from '../../formdesigner/_formrender/formrender';\r\nimport { dataSource, expression } from 'devexpress-dashboard/model/index.metadata';\r\nimport { auto } from '@popperjs/core';\r\nimport { debug } from 'console';\r\nimport { CellInfo } from 'devexpress-richedit/lib/core/layout-formatter/table/info/cell-info';\r\n//import { setInterval, clearInterval } from 'timers';\r\nexport class HeaderExpression {\r\n code: string;\r\n export: boolean;\r\n element: string;\r\n influenceAllRelatedRows: boolean;\r\n influenceAllRelatedRowsColumn = [];\r\n}\r\n\r\n@Component({\r\n selector: 'datagrid-component',\r\n templateUrl: './datagrid.component.html',\r\n styleUrls: ['./datagrid.component.scss']\r\n})\r\nexport class DxEtrDataGridComponent implements ComponentParameters, OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild(\"dataGridEtr\", { static: false }) dataGridEtr: DxDataGridComponent;\r\n @ViewChild(\"gridContainerPopup\", { static: false }) gridContainerPopup: DxDataGridComponent;\r\n @ViewChild(DxFormResultComponent, { static: false }) formResultComponent: DxFormResultComponent;\r\n @ViewChild('focusDiv') focusDiv: ElementRef;\r\n @ViewChild(\"uploaderExcel\") uploaderExcel: ElementRef;\r\n @ViewChild(\"progressBarExcel\", { static: false }) progressBarExcel: DxProgressBarComponent;\r\n\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n\r\n\r\n\r\n // #region DEFINITIONS\r\n /////////\r\n /// DEFINITIONS\r\n ////////\r\n productsDataSource: DataSource; //COMBOBOX DENEME\r\n\r\n showDisplay: any = \"flex\";\r\n\r\n dbQueryTypes = { \"insert\": 1, \"update\": 2, \"delete\": 3, \"recursiveRelatedRowEvent\": -1 };\r\n\r\n fieldTypes: any[] = [\r\n { \"type\": \"text\", \"value\": \"text\", \"name\": \"Text\" },\r\n { \"value\": \"double\", \"name\": \"Ondalık Sayı\" },\r\n { \"value\": \"int\", \"name\": \"Tam Sayı\" },\r\n { \"value\": \"checkbox\", \"name\": \"Checkbox\" },\r\n { \"value\": \"date\", \"name\": \"Date\" },\r\n { \"value\": \"datetime\", \"name\": \"DateTime\" },\r\n { \"value\": \"datagrid\", \"name\": \"Data Grid\" },\r\n { \"value\": \"combobox\", \"name\": \"Combobox\" },\r\n { \"value\": \"customableCombobox\", \"name\": \"Customable Combobox\" },\r\n { \"value\": \"file\", \"name\": \"File\" },\r\n { \"value\": \"map\", \"name\": \"Map\" },\r\n { \"value\": \"picturebox\", \"name\": \"Picturebox\" },\r\n { \"value\": \"fileviewer\", \"name\": \"File Viewer\" }\r\n ];\r\n\r\n numberRoundTypes: any[] = [\r\n { id: \"ceil\", value: \"Her Zaman Üste Yuvarla\" },\r\n { id: \"floor\", value: \"Her Zaman Alta Yuvarla\" },\r\n { id: \"round\", value: \"Varsayılan\" }\r\n ];\r\n\r\n headers: any = {\r\n \"name\": \"\",\r\n \"caption\": \"\",\r\n \"field\": \"\",\r\n \"type\": \"text\",\r\n \"format\": \"#,##0.00\",\r\n \"properties\": {\r\n \"barcode\": false, \"required\": false, \"isUserUpload\": false, \"autoText\": { isAuto: false, autoPreText: \"\" }, \"roundType\": \"round\", \"dateMinMax\": { minToday: false, maxToday: false, dateRange: null }, \"color\": \"\", \"backgroundColor\": \"\", \"fontweight\": \"\", \"rowBackgroundColor\": \"\"\r\n },\r\n \"template\": \"\",\r\n \"width\": 150,\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"displayKey\": \"\",\r\n \"valueKey\": \"\",\r\n \"funcParam\": {},\r\n \"files\": [],\r\n \"changeEvents\": [],\r\n \"expression\": {},\r\n \"dataGridSettings\": {\r\n \"connectionStringId\": 0,\r\n \"query\": \"\",\r\n \"key\": \"ID\",\r\n \"table\": \"\",\r\n \"formFields\": []\r\n },\r\n \"sqlColumnSettings\": {\r\n \"connectionStringId\": 0,\r\n \"query\": \"\",\r\n \"fileFields\": {\r\n \"name\": \"\",\r\n \"file\": \"\",\r\n \"fileName\": \"\",\r\n \"extension\": \"\"\r\n }\r\n },\r\n\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": \"Başlık\"\r\n }\r\n ]\r\n };\r\n\r\n sqlExpression = {\r\n \"field\": \"\",\r\n \"connectionStringId\": 0,\r\n \"query\": \"\"\r\n }\r\n\r\n dataSources: any = [];\r\n fontWeightTypes = [{ value: \"normal\", text: \"Normal\" }, { value: \"bold\", text: \"Bold\" }]\r\n filterOperators = [\"=\", \"!=\", \"<\", \">\", \"<=\", \">=\"];\r\n operators = [\"+\", \"-\", \"*\", \"/\"];\r\n sqlOperators = [\"=\", \">\", \"<\", \">=\", \"<=\"];\r\n filterOperatorsColor = {\r\n \"string\": [{ type: \"like\" }, { type: \"startsWith\" }, { type: \"endsWith\" }, { type: \"equals\" }, { type: \"notIncludes\" }],\r\n \"number\": [{ type: \"=\" }, { type: \"!=\" }, { type: \"<\" }, { type: \">\" }, { type: \"<=\" }, { type: \">=\" }],\r\n \"object\": [{ type: \"=\" }, { type: \"equals\" }]\r\n }\r\n\r\n\r\n\r\n funcParam = {\r\n \"blockoperator\": \"\",\r\n \"exp\": \"\",\r\n \"params\": {\r\n \"param1\": \"\",\r\n \"param2\": \"\",\r\n \"operator\": \"\"\r\n }\r\n }\r\n\r\n //\r\n funcParamData = {\r\n \"export\": false,\r\n \"element\": \"\",\r\n \"formula\": [],\r\n \"influenceAllRelatedRows\": false,\r\n \"influenceAllRelatedRowsColumn\": []\r\n }\r\n\r\n outOfGridComponent: any;\r\n showDatagridPopup: any = false;\r\n connections: any;\r\n cellInfoGlobal: any;\r\n users: any = [];\r\n\r\n formulaCommands = [\r\n //\".dg_count\"\r\n //\".dg_sum\",\r\n //\".dg_avg\"\r\n { id: \".dg_count\", example: \"{xyz.dg_count}\", operation: \"[count]\" },\r\n { id: \".dg_sum\", example: \"{xyz.dg_sum}\", operation: \"[sum]\" },\r\n { id: \".dg_avg\", example: \"{xyz.dg_avg}\", operation: \"[sum]/[count]\" },\r\n { id: \".dg_max\", example: \"{xyz.dg_max}\", operation: \"[max]\" },\r\n { id: \".dg_min\", example: \"{xyz.dg_min}\", operation: \"[min]\" }\r\n ];\r\n //formulaCommandsExamples = [\"{xyz.dg_count}\", \"{xyz.dg_sum}\", \"{xyz.dg_avg}\"];\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n filterPopup: boolean = false;\r\n showGridColPopop: boolean = false;\r\n showFuncPopup: boolean = false;\r\n showFormatPopup: boolean = false;\r\n showSqlExpressioPopup: boolean = false;\r\n showChanEventParamsPopup: boolean = false;\r\n\r\n selectedGridForm: any;\r\n\r\n selectionGridDataSource = [];\r\n dataGridSettingsPopop: boolean = false;\r\n allowCopy: boolean = true;\r\n isCalcCellFormula: boolean = false;\r\n\r\n colPermissionPopup: boolean = false;\r\n colLanguagePopup: boolean = false;\r\n selectedColPermission: any;\r\n perCol: string;\r\n selectedColLanguage: any;\r\n selectedConnection: number = 0;\r\n\r\n selectedHeader: any;\r\n selectedHeaderIndex: number = -1;\r\n selectedFuncIndex: number = -1;\r\n selectedFormatIndex: number = -1;\r\n\r\n formatHeaderType: any = \"\";\r\n registeredLanguage: any;\r\n outOfGridComponentDatas: any;\r\n tableList: any = [];\r\n\r\n headerExpression: HeaderExpression;\r\n isMonacoLoaded: boolean = false;\r\n\r\n loadingVisible = false;\r\n Visible = false;\r\n loadPanelText = \"Loading...\";\r\n\r\n showPreviewFilesPopup: boolean = false;\r\n uploadedFiles: any = [];\r\n\r\n checkBoxesMode: string;\r\n allMode: string;\r\n isLoadingDatasource = true;\r\n countFirstLoad = 0;\r\n dataGridEtrDatasorce: DataSource;\r\n isContentReadyInterval = false;\r\n contentReadyEvent;\r\n isLoadingNotHide = false;\r\n focusedRowKey;\r\n newRowShortcut = { isActive: false, index: -1/*, page: -1*/ };\r\n\r\n deleteFileButtonVisible: boolean = false;\r\n // #endregion DEFINITIONS\r\n languageLocal: any = \"\";\r\n\r\n\r\n formulaCommandsExampleStr = \"\";\r\n // #region SYSTEM CODE\r\n /////////\r\n /// SYSTEMS\r\n ////////\r\n windowGlobal;\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public taskService: TaskService,\r\n public genericService: GenericService,\r\n public appInfo: AppInfoService,\r\n private componentService: ComponentService,\r\n public instanceService: InstanceService,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private location: ViewContainerRef,\r\n\r\n @Inject(DOCUMENT) private document: Document,\r\n //@Inject(FormRender) private formRender: FormRender,\r\n public changeDetectorRef: ChangeDetectorRef, private elementHtml: ElementRef) {\r\n this.windowGlobal = this.document.defaultView;\r\n this.headerExpression = new HeaderExpression();\r\n // this.dropDownOptions = { width: 500 };\r\n this.users = this.appInfo.RiverEntity.users;\r\n this.users.forEach(f => { f.isChecked = false });\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);//\r\n let currentComps = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let currentCompDatagrids = currentComps.filter(x => x.type == \"datagrid\");\r\n this.allDatagridComponents = currentCompDatagrids.map(m => m.id);\r\n\r\n this.showSettingPopup = true;\r\n }\r\n\r\n });\r\n\r\n\r\n if (this.componentService.currentProcessFormId != 0) {\r\n this.taskService.GetProcessStarterId(this.componentService.currentProcessFormId).subscribe((r: any) => {\r\n if (r == this.appInfo.currentUser.id)\r\n this.deleteFileButtonVisible = true;\r\n }, error => {\r\n });\r\n }\r\n else\r\n this.deleteFileButtonVisible = true;\r\n\r\n this.formulaCommandsExampleStr = this.formulaCommands.map((it) => {\r\n return \"  \" + it.example.replace(\"xyz\", \"\").replace(\"{\", \"\").replace(\"}\", \"\") + \"  \";\r\n }).join(' - ');\r\n\r\n //this.formulaCommandsExampleStr = this.formulaCommands.map(it => it.example).join(' - ');\r\n //.map(it => it.example.replace(\"xyz\", \"\").replace(\"{\", \"\").replace(\"}\", \"\")).join(' - ');\r\n\r\n this.allMode = 'allPages';\r\n this.checkBoxesMode = 'onClick';\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n }\r\n\r\n //filteredDatagridElementSelectedRows = [];\r\n filteredColumnDatagrid = undefined;\r\n classDatagridContainer = \"\";\r\n datagridErrorFilterOut = \"\";\r\n invokeChangeEventLocal: Subscription;\r\n isShowComfirmShown = false;\r\n ngOnInit() {\r\n //proddo debug gerekirse diye eklendi.\r\n this.data.uuid = this.componentService.createuuid();\r\n\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n for (let i = 0; i < this.data.headers.length; i++) {\r\n try {\r\n let exp = this.data.headers[i].expression;\r\n if (exp && typeof (exp.code) != \"undefined\" && exp.code != '' && !Array.isArray(exp.influenceAllRelatedRowsColumn)) {\r\n if (exp.influenceAllRelatedRowsColumn != \"\" && exp.influenceAllRelatedRowsColumn != null && typeof exp.influenceAllRelatedRowsColumn != \"undefined\") {\r\n exp.influenceAllRelatedRowsColumn = [exp.influenceAllRelatedRowsColumn];\r\n }\r\n else {\r\n exp.influenceAllRelatedRowsColumn = [];\r\n }\r\n }\r\n } catch { }\r\n }\r\n\r\n\r\n //currentDatagridFormGlobal\r\n //this.data.editablePopup = true;\r\n\r\n if (typeof this.data.show === \"undefined\") this.data.show = true;\r\n if (typeof this.data.editablePopup === \"undefined\") this.data.editablePopup = false;\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.data.colorExpressions = typeof this.data.colorExpressions == \"undefined\" ? [] : this.data.colorExpressions;\r\n this.data.outsideElementShouldDisabled = typeof this.data.outsideElementShouldDisabled == \"undefined\" ? true : this.data.outsideElementShouldDisabled;\r\n\r\n //showIdColumn shopCopyButton showDeleteButton\r\n this.data.showIdColumn = typeof this.data.showIdColumn == \"undefined\" ? true : this.data.showIdColumn;\r\n this.data.shopCopyButton = typeof this.data.shopCopyButton == \"undefined\" ? true : this.data.shopCopyButton;\r\n this.data.showDeleteButton = typeof this.data.showDeleteButton == \"undefined\" ? true : this.data.showDeleteButton;\r\n this.data.showAddButton = typeof this.data.showAddButton == \"undefined\" ? true : this.data.showAddButton;\r\n\r\n this.data.filterVisible = typeof this.data.filterVisible == \"undefined\" ? true : this.data.filterVisible;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.changeDetectorRef.detectChanges();\r\n\r\n }\r\n });\r\n\r\n this.data.selectedDatagrid = Array.isArray(this.data.selectedDatagrid) ? this.data.selectedDatagrid : [];\r\n if (this.data.selectedDatagrid.length > 0 && (typeof this.data.selectedDatagrid[0].sourceField == \"undefined\" || this.data.selectedDatagrid[0].sourceField == \"\")) {\r\n this.data.selectedDatagrid.forEach(_dSd => {\r\n if (typeof _dSd.sourceField == \"undefined\" || _dSd.sourceField == \"\")\r\n _dSd.sourceField = \"ID\";\r\n });\r\n }\r\n\r\n this.eventEmitterService.invokeChangeFilterOutElement.subscribe(sub => {\r\n if (sub.data.isDelete && sub.data.filteredElement == this.data.id) {\r\n //value filteredColumn\r\n debugger;\r\n try {\r\n let _indices = [];\r\n if (Array.isArray(sub.data.filteredColumn)) {\r\n let tempData = this.componentService.cloneModel(this.data.value);\r\n sub.data.filteredColumn.forEach(function (f, _iF) {\r\n let _ind = tempData.reduce((r, v, i) => r.concat(v[f] == sub.data.value[_iF] ? i : []), []);\r\n var c = _indices.concat(_ind);\r\n _indices = c.filter((item, pos) => c.indexOf(item) !== pos);\r\n });\r\n }\r\n else {\r\n _indices = this.data.value.reduce((r, v, i) => r.concat(v[sub.data.filteredColumn] == sub.data.value ? i : []), []);\r\n }\r\n for (let _ii = _indices.length - 1; _ii >= 0; _ii--)\r\n this.data.value.splice(_indices[_ii], 1);\r\n } catch {\r\n debugger;\r\n }\r\n }\r\n else if (sub.data.element && sub.data.filteredElement == this.data.id) {\r\n //value filteredColumn \r\n this.classDatagridContainer = typeof sub.data.value != \"undefined\" && sub.data.value != null && sub.data.value != \"\" ? \"\" : \"disabled-datagrid-container\";\r\n this.datagridErrorFilterOut = typeof sub.data.value != \"undefined\" && sub.data.value != null && sub.data.value != \"\" ? \"\" : '(Bu Datagrid \"' + sub.data.elementLabel + '\" elementine bağlıdır.)';\r\n this.filteredColumnDatagrid = sub.data.filteredColumn;\r\n\r\n this.filterOutElement(sub.data.element, sub.data.value, sub.data.filteredColumn, sub.data.isSqlExecute == true);\r\n\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n //if (sub.elementId == this.data.id) {\r\n\r\n if (this.data.id != sub.id && sub.elementId == this.data.id) {\r\n\r\n if (sub.isShowComfirm) {\r\n let msg = \"\";\r\n if (this.defaultLanguage && this.defaultLanguage.Label)\r\n msg = '\"' + this.defaultLanguage.Label + '\" tablosuna ait eski veriler silinsin mi?';\r\n else\r\n msg = this.languageLocal.deleteOldData;\r\n\r\n\r\n if (this.isShowComfirmShown == false) {\r\n let result = confirm(msg, this.languageLocal.warning);\r\n this.isShowComfirmShown = true;\r\n result.then((dialogResult) => {\r\n //if (dialogResult) {\r\n // //this.data.value = [];\r\n // //this.changeDetectorRef.detectChanges();\r\n // this.changeInvokeOutOfGridFill(sub);\r\n //}\r\n //else\r\n this.isShowComfirmShown = false;\r\n this.changeInvokeOutOfGridFill(sub, dialogResult);\r\n });\r\n }\r\n\r\n }\r\n else\r\n this.changeInvokeOutOfGridFill(sub, true);\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n // }\r\n });\r\n\r\n //this.eventEmitterService.invokeDatagridOpenEditRowPopupEvent.subscribe(sub => {\r\n // let _tempRow = { row: { data: { ID: sub.data.id } } };\r\n // this.editRow(_tempRow, sub.data.isPopupOpen);\r\n //});\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.outOfGridComponent = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);//.filter(x => x.type !== \"datagrid\");\r\n\r\n this.closeSqlExpressioPopup();\r\n\r\n\r\n \r\n }\r\n\r\n changeInvokeOutOfGridFill(sub, allDataDelete) {\r\n\r\n if (sub.data && sub.data.length > 0) {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let arraySubMultiSelect = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).filter(x => x.id == sub.id && x.type === \"multiselectbox\");\r\n if (typeof arraySubMultiSelect != \"undefined\" && arraySubMultiSelect.length > 0) {\r\n if (allDataDelete == false) {\r\n let dataValueArray: any[] = JSON.parse(JSON.stringify(this.data.value))\r\n dataValueArray.forEach(e => {\r\n delete e.ID\r\n delete e.DefaultColumn\r\n sub.data.forEach((ell, index) => {\r\n if (JSON.stringify(ell) == JSON.stringify(e)) {\r\n sub.data.splice(index, 1);\r\n }\r\n })\r\n })\r\n }\r\n }\r\n\r\n this.outOfGridFill(sub.data, 0, allDataDelete);\r\n\r\n let dataCols = this.data.headers.filter(f => f.type == \"combobox\" || f.type == \"datagrid\");//\r\n if (dataCols && dataCols.length > 0) {\r\n this.prepareDataGridColumn(dataCols, 0, false);\r\n }\r\n this.forceRefreshDatagrid();\r\n\r\n }\r\n else if (sub.elementId == \"clean_element\") {\r\n\r\n this.data.dataSource = [];\r\n this.data.value = [];\r\n this.changeDetectorRef.detectChanges();\r\n this.dataGridEtr.instance.refresh();\r\n }\r\n }\r\n\r\n isFirstItemZero = false;\r\n outOfGridFill(_dataTemp, iDataTemp, allDataDelete) {\r\n let _obj = {};\r\n\r\n //if (allDataDelete) {\r\n // this.data.value = [];\r\n\r\n // this.isFirstItemZero = true;\r\n // this.isFirstLoad = true;\r\n // this.loadedCompCount = 0;\r\n // this.ngAfterViewInit();\r\n //}\r\n if (allDataDelete) {\r\n var _Id = 0\r\n let zeroTemp = this.data.value.find(x => x.ID == _Id);\r\n if (typeof zeroTemp == \"undefined\") {\r\n var clonedItem = Object.assign({}, {}, { ID: _Id, DefaultColumn: 1 });\r\n this.data.value.splice(this.data.value.length, 0, clonedItem);\r\n this.data.value.sort((a, b) => a.ID - b.ID);\r\n }\r\n this.data.value = this.data.value.filter(x => x.ID == 0 && x.DefaultColumn == 1/*values.indexOf(item) === -1*/);\r\n this.data.userChangeColumns = [];\r\n this.getDatasourcePageItem();\r\n this.forceRefreshDatagrid();\r\n }\r\n\r\n var _ID = this.data.value.length == 0 ? 1 : (this.data.value[this.data.value.length - 1].ID) + 1;\r\n\r\n this.data.headers.forEach(f => {\r\n if (f.type == \"double\") {\r\n _obj[f.field] = parseFloat(_dataTemp[iDataTemp][f.field]);\r\n }\r\n else if (f.type == \"int\") {\r\n _obj[f.field] = parseInt(_dataTemp[iDataTemp][f.field]);\r\n }\r\n else if (f.type == \"checkbox\") {\r\n _obj[f.field] = _dataTemp[iDataTemp][f.field] == true || _dataTemp[iDataTemp][f.field] == \"true\" ? true : false;\r\n }\r\n else if (f.type == \"map\") {\r\n _obj[f.field] = JSON.parse(\"{\" + _dataTemp[iDataTemp][f.field] + \"}\");\r\n }\r\n else if (f.type == \"combobox\") {\r\n var _dataSource = this.selectionGridDataSource.find(f => f.id == _ID && f.field == f.field);\r\n var _dataSourceLast = typeof _dataSource == \"undefined\" ? f.dataSource : _dataSource.data;\r\n\r\n let fieldsValue = _dataSourceLast.find(x => x[f.valueKey] == _dataTemp[iDataTemp][f.field]);\r\n let _val = _dataTemp[iDataTemp][f.field];\r\n if (fieldsValue) {\r\n _val = fieldsValue[f.valueKey];\r\n }\r\n\r\n _obj[f.field] = _val;\r\n }\r\n else if (f.type == \"customableCombobox\") {\r\n var _dataSource = this.selectionGridDataSource.find(f => f.id == _ID && f.field == f.field);\r\n var _dataSourceLast = typeof _dataSource == \"undefined\" ? f.dataSource : _dataSource.data;\r\n\r\n let fieldsValue = _dataSourceLast.find(x => x[f.valueKey] == _dataTemp[iDataTemp][f.field]);\r\n let _val = _dataTemp[iDataTemp][f.field];\r\n if (fieldsValue) {\r\n _val = fieldsValue[f.valueKey];\r\n }\r\n\r\n _obj[f.field] = _val;\r\n }\r\n else {\r\n _obj[f.field] = _dataTemp[iDataTemp][f.field];\r\n }\r\n\r\n });\r\n\r\n this.addNewRowOrClone(/*_rowIndex,*/ _obj, null);\r\n\r\n if (iDataTemp == 0) {\r\n allDataDelete = false;\r\n let zeroIdIndex = this.data.value.findIndex(x => x.ID == 0);\r\n if (zeroIdIndex != -1)\r\n this.data.value.splice(zeroIdIndex, 1);\r\n }\r\n //if (iDataTemp == 0) {\r\n // allDataDelete = false;\r\n // let zeroIdIndex = this.data.value.findIndex(x => x.ID == 0 && x.DefaultColumn == 1);\r\n // if (zeroIdIndex != -1)\r\n // this.data.value.splice(zeroIdIndex, 1);\r\n\r\n //}\r\n\r\n iDataTemp = iDataTemp + 1;\r\n if (iDataTemp < _dataTemp.length) {\r\n setTimeout(() => { this.outOfGridFill(_dataTemp, iDataTemp, false); }, 1);\r\n }\r\n else {\r\n if (this.data.selectedDatagrid && Array.isArray(this.data.selectedDatagrid) && this.data.selectedDatagrid.length > 0) {\r\n try {\r\n this.getDatasourcePageItem();\r\n this.forceRefreshDatagrid();\r\n }\r\n catch { }\r\n\r\n if (this.data.selectedRows.length == 0) {\r\n\r\n if (this.data.value.length > 0) {\r\n this.data.selectedRows = [];\r\n let firstDataValueId = this.data.value[0];\r\n if (firstDataValueId && firstDataValueId.ID && firstDataValueId.ID != 0) {\r\n\r\n this.data.selectedRows.push(firstDataValueId.ID);\r\n this.focusedRowKey = firstDataValueId.ID;\r\n }\r\n }\r\n }\r\n else\r\n this.focusedRowKey = this.data.selectedRows[0];\r\n\r\n if (this.data.value.length > 0)\r\n this.selectedDatagridChangeFilter(this.data.value[0]);\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n if (!this.isEdit) {\r\n //this.isSqlQuery = true;\r\n //this.showLoadPane l();\r\n\r\n\r\n this.showLoadPanel();\r\n let dataCols = this.data.headers.filter(f => f.type == \"combobox\" || f.type == \"datagrid\" || f.type == \"customableCombobox\");//\r\n\r\n this.totalCompCount = dataCols.length + 1 + (this.data.value.length == 0 ? (1 + this.data.sqlExpressions.length) : 0); // combobox ve datagrid sayısı + CreateDatagridColumns + addNewRowOrClone + outOfDatagridGetSq l\r\n\r\n if (dataCols && dataCols.length > 0) {\r\n this.prepareDataGridColumn(dataCols, 0, true);\r\n }\r\n else {\r\n this.CreateDatagridColumns();\r\n }\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n\r\n this.getDatasourcePageItem();\r\n\r\n //let dataDatagridCols = this.data.headers.filter(f => f.type == \"datagrid \");\r\n //if (dataDatagridCols && dataDatagridCols.length > 0) {\r\n\r\n\r\n\r\n\r\n\r\n //}\r\n\r\n };\r\n }\r\n\r\n //@HostListener('window:keydown', ['$event'])\r\n //onKeyDown(event) {\r\n\r\n // if (event.ctrlKey) {\r\n // let datagridInstance = this.dataGridEtr.instance;\r\n // if (event.shiftKey) { // CTRL + SHIFT => NEW ROW \r\n\r\n // if (this.loadingVisible == false) {\r\n // this. addNewRowFunctio n();\r\n // }\r\n\r\n // }\r\n // else if (event.altKey) {// CTRL + ALT => SAVE ROW \r\n\r\n // datagridInstance.saveEditData();\r\n // this.forceRefreshDatagrid();\r\n // datagridInstance.clearSelection();\r\n // datagridInstance.option(\"focusedRowIndex\", -1);\r\n\r\n // }\r\n\r\n // }\r\n //}\r\n\r\n\r\n isFirstLoadTemp = true;\r\n isFirstLoad = true;\r\n totalCompCount = 0;\r\n loadedCompCount = 0;\r\n getDatasourcePageItem() {\r\n this.dataGridEtrDatasorce = new DataSource({\r\n store: {\r\n type: \"array\",\r\n key: \"ID\",\r\n data: this.data.value\r\n }\r\n //, onLoadingChanged: (isLoading) => {\r\n // if (isLoading /*&& this.isFirstLoadTemp*/) {\r\n // // this.dddddddd();\r\n // this.showLoadPanel();\r\n // }\r\n // this.countFirstLoad++;\r\n // //if (this.countFirstLoad == 0) \r\n // this.isLoadingDatasource = isLoading; \r\n // let tThis = this; \r\n // if (this.isFirstLoad) { \r\n // this.firstLoadingIntervalFunction(tThis); \r\n // }\r\n // else {\r\n // if (tThis.contentReadyEvent) {\r\n // setTimeout(() => {\r\n // if (!tThis.isLoadingDatasource) { \r\n // if (tThis.contentReadyEvent.component._controllers.data._dataSource != null) {\r\n // let _intervalTotal = tThis.contentReadyEvent.component._controllers.data._dataSource.totalCount();\r\n // let _intervalLoading = tThis.contentReadyEvent.component._controllers.data._dataSource._isLoading; \r\n // if (_intervalTotal != -1 && !_intervalLoading /*&& this.countFirstLoad > 3*/) {\r\n // // this.dddddddd1 = true;\r\n // tThis.hideLoadPanel();\r\n // tThis.isFirstLoadTemp = false;\r\n // }\r\n // }\r\n // }\r\n\r\n // }, 500); \r\n // }\r\n // } \r\n //}\r\n });\r\n\r\n\r\n\r\n }\r\n //dddddddd1 = false;\r\n //dddddddd2 = 0;\r\n //dddddddd() {\r\n // let ggg = this;\r\n // var x = setInterval(function () {\r\n // ggg.dddddddd2++;\r\n // if (ggg.dddddddd1) {\r\n // clearInterval(x);\r\n // \r\n // }\r\n // }, 200);//5*200=1000\r\n //}\r\n\r\n addNewRowFunction() {\r\n let datagridInstance = this.dataGridEtr.instance;\r\n this.forceRefreshDatagrid();\r\n var _rowIndex = this.data.value.length;\r\n this.newRowShortcut.isActive = true;\r\n this.newRowShortcut.index = _rowIndex;\r\n\r\n var _data = this.addNewRowOrClone(/*_rowInde x,*/null, null);\r\n if (!this.isFirstLoad)\r\n this.focusDiv.nativeElement.focus();\r\n var _event = { data: _data };\r\n this.onInitNewRow(_event);\r\n let _thisPage = this;\r\n\r\n setTimeout(() => {\r\n datagridInstance.saveEditData();\r\n if (_thisPage.data.selectedRows.length == 0) {\r\n\r\n if (_thisPage.data.value.length > 0) {\r\n _thisPage.data.selectedRows = [];\r\n let lastDataValueId = _thisPage.data.value[_thisPage.data.value.length - 1];\r\n\r\n if (lastDataValueId && lastDataValueId.ID && lastDataValueId.ID != 0) {\r\n _thisPage.data.selectedRows.push(lastDataValueId.ID);\r\n this.focusedRowKey = lastDataValueId.ID;\r\n }\r\n }\r\n }\r\n\r\n\r\n }, 1000);\r\n\r\n }\r\n\r\n onContentReady(e) {\r\n\r\n let tThis = this;\r\n this.contentReadyEvent = e;\r\n if (this.newRowShortcut.isActive) {\r\n if (e.component._controllers.data._dataSource != null) {\r\n let _indexDatagridTotalCount = e.component._controllers.data._dataSource.totalCount();\r\n if ((_indexDatagridTotalCount - 1) == this.newRowShortcut.index) {\r\n let datagridInstance = this.dataGridEtr.instance;\r\n\r\n let newRowShortcutIndex = this.newRowShortcut.index % datagridInstance.pageSize();\r\n this.newRowShortcut = { isActive: false, index: -1 };\r\n let _pageCount = datagridInstance.pageCount();\r\n //let _asdasdasdasd111 = datagridInstance.pageIndex();\r\n datagridInstance.pageIndex(_pageCount - 1);\r\n let _asdasdasdasd = datagridInstance.pageIndex();\r\n\r\n let headerFirst = this.data.headers[0];\r\n this.propertiesUndefinedControl(headerFirst);\r\n\r\n if (headerFirst.properties.autoText.isAuto != true && !this.isFirstLoad) {\r\n var cellObject = datagridInstance.getCellElement(newRowShortcutIndex, headerFirst.field);\r\n datagridInstance.focus(cellObject);\r\n datagridInstance.editCell(newRowShortcutIndex, headerFirst.field);\r\n }\r\n\r\n this.firstLoadingIntervalFunction(tThis);\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n firstLoadingIntervalFunction(tThis) {\r\n if (this.isFirstLoad) {\r\n\r\n var _firstLoadingInterval = setInterval(function () {\r\n if (tThis.totalCompCount <= tThis.loadedCompCount) {\r\n clearInterval(_firstLoadingInterval);\r\n tThis.isFirstLoad = false;\r\n tThis.hideLoadPanel();\r\n }\r\n }, 200);\r\n\r\n }\r\n else\r\n tThis.hideLoadPanel();\r\n }\r\n addFilterDatagrid() {\r\n this.data.selectedDatagrid = Array.isArray(this.data.selectedDatagrid) ? this.data.selectedDatagrid : [];\r\n this.data.selectedDatagrid.push({ sourceField: \"\", id: \"\", field: \"\" });\r\n }\r\n removeFilterDatagrid(_index) {\r\n this.data.selectedDatagrid.splice(_index, 1);\r\n }\r\n selectedRowsDataOnchange = { ID: 0 };\r\n onGridSelectionChanged(e) {\r\n\r\n if (this.data.selectedDatagrid.length > 0) {\r\n this.selectedRowsDataOnchange = e.selectedRowsData[0];\r\n\r\n this.selectedDatagridChangeFilter(this.selectedRowsDataOnchange);\r\n }\r\n\r\n //if (this.data.selectedDatagrid && Array.isArray(this.data.selectedDatagrid) && this.data.selectedDatagrid.length > 0) {\r\n // let _thisPage = this;\r\n // this.data.selectedDatagrid.forEach(function (_item) {\r\n // if (_item.id && _item.id != \"\") {\r\n // let itemField = _item.field == null || _item.field == \"\" ? undefined : _item.field ;\r\n // //let _sourceField = _item.sourceField == null || _item.sourceField == \"\" ? undefined : _item.sourceField;\r\n // let dataVal = _item.sourceField == null || _item.sourceField == \"\" || typeof _item.sourceField == \"undefined\" ? e.selectedRowKeys[0] :\r\n // e.selectedRowsData[0][_item.sourceField];\r\n // let _data = { element: _thisPage.data.id, value: dataVal, elementLabel: _thisPage.defaultLanguage.Label, filteredElement: _item.id, filteredColumn: itemField, isDelete: false };\r\n // _thisPage.eventEmitterService.ChangeFilterOutElemen t (_data);\r\n // }\r\n // });\r\n //}\r\n\r\n\r\n }\r\n\r\n closeFormatPopup() {\r\n this.formatHeaderType = \"\";\r\n this.selectedFormatIndex = -1;\r\n this.showFormatPopup = false;\r\n }\r\n\r\n cloneRow(e) {\r\n\r\n var tThis = this;\r\n var _Id = (this.data.value.length == 0 ? 1 : (this.data.value[this.data.value.length - 1].ID + 1));\r\n let currArray = this.selectionGridDataSource.filter(f => f.id == e.row.data.ID);\r\n currArray.forEach(function (item) {\r\n let arr: any = {};\r\n arr.field = item.field;\r\n arr.id = _Id;\r\n arr.colIndex = item.colIndex;\r\n arr.data = item.data;\r\n tThis.selectionGridDataSource.push(arr);\r\n });\r\n\r\n let cloneItemTemp = this.addNewRowOrClone(/*e.rowInde x,*/ e.row.data, _Id);\r\n\r\n\r\n let _thisPage2 = this;\r\n setTimeout(() => {\r\n _thisPage2.executeExp({ data: cloneItemTemp }, _thisPage2.dbQueryTypes.recursiveRelatedRowEvent);\r\n }, 1);\r\n }\r\n\r\n selectedDatagridRowId = 0;\r\n showEditablePopup = false;\r\n languageCodeEditPopup = \"trTR\";\r\n currentDatagridFormGlobal = { components: [] };\r\n hideEditablePopup(e) {\r\n this.selectedDatagridRowId = 0;\r\n this.currentDatagridFormGlobal = { components: [] };\r\n }\r\n shownEditablePopup() {\r\n\r\n let fields = Object.keys(this.componentService.datagridColumnHasUserChanges);\r\n setTimeout(() => {\r\n fields.forEach(field => {\r\n this.componentService.datagridColumnHasUserChanges[field] = false;\r\n });\r\n }, 1000);\r\n // this.componentService.datagridColumnHasUserChanges[f.elementId] = false;\r\n }\r\n saveDatagridForm(args) {\r\n\r\n if (!args.validationGroup.validate().isValid) {\r\n this.componentService.showAlert(this.languageLocal.pleaseFillFields, \"error\", 5000)\r\n return;\r\n }\r\n\r\n let _valData = this.data.value.find(x => x.ID == this.selectedDatagridRowId);\r\n\r\n this.currentDatagridFormGlobal.components.forEach(headerComp => {\r\n let columnName = headerComp.id.split(\"_\")[2];\r\n let columnValue = headerComp.value;\r\n\r\n if (headerComp.id.split(\"_\")[1] == \"combobox\" || headerComp.id.split(\"_\")[1] == \"customableCombobox\") {\r\n //var _dataSource = this.selectionGridDataSource.find(f => f.id == _ID && f.field == f.field);\r\n //var _dataSourceLast = typeof _dataSource == \"undefined\" ? f.dataSource : _dataSource.data;\r\n\r\n //let fieldsValue = _dataSourceLast.find(x => x[f.valueKey] == _dataTemp[iDataTemp][f.field]);\r\n //let _val = _dataTemp[iDataTemp][f.field];\r\n //if (fieldsValue) {\r\n // _val = fieldsValue[f.valueKey];\r\n //} \r\n _valData[columnName] = columnValue + \"\";\r\n }\r\n else\r\n _valData[columnName] = columnValue;\r\n });\r\n\r\n this.forceRefreshDatagrid();\r\n this.componentService.datagridColumnHasUserChanges = {};\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n for (let i = 0; i < this.data.headers.length; i++) {\r\n let exp = this.data.headers[i].expression;\r\n if (exp.export === true && typeof (exp.element) != \"undefined\") {\r\n let sum = this.componentService.setColSumToElement(exp.element, this.data.headers[i].field, this.data.value, currentFormSelected.components);\r\n this.eventEmitterService.setColumnSumToComponent(exp.element, sum);\r\n }\r\n }\r\n\r\n this.showEditablePopup = false;\r\n }\r\n editRow(e, isPopupOpen = true) {\r\n //let _id = e.row.data.ID;\r\n this.selectedDatagridRowId = e.row.data.ID;\r\n let _valData = this.data.value.find(x => x.ID == this.selectedDatagridRowId);\r\n if (this.appInfo.currentUser.deflang) this.languageCodeEditPopup = this.appInfo.currentUser.deflang.replace(/-/gi, '');\r\n else this.languageCodeEditPopup = \"trTR\";\r\n\r\n // this.currentDatagridFormGlobal = { components: [] };\r\n this.componentService.tempDatagridPopupComponent = { components: [] };\r\n this.data.headers.forEach(header => {\r\n if (header.hide == false) {\r\n let headerFormComp = this.onEditPopupForm(header, _valData[header.field]);\r\n this.currentDatagridFormGlobal.components.push(headerFormComp);\r\n }\r\n });\r\n this.componentService.tempDatagridPopupComponent = this.currentDatagridFormGlobal;\r\n\r\n this.showEditablePopup = true;\r\n\r\n // let _tThis = this;\r\n // setTimeout(() => { _tThis.showEditablePopup = isPopupOpen; }, 400);\r\n\r\n //var tThis = this;\r\n //var _Id = (this.data.value.length == 0 ? 1 : (this.data.value[this.data.value.length - 1].ID + 1));\r\n //let currArray = this.selectionGridDataSource.filter(f => f.id == e.row.data.ID);\r\n //currArray.forEach(function (item) {\r\n // let arr: any = {};\r\n // arr.field = item.field;\r\n // arr.id = _Id;\r\n // arr.colIndex = item.colIndex;\r\n // arr.data = item.data;\r\n // tThis.selectionGridDataSource.push(arr);\r\n //});\r\n\r\n //this.addNewRowOrClon e(/*e.rowInde x,*/ e.row.data, _Id);\r\n\r\n }\r\n onEditPopupForm(_header, valDataResult) {\r\n //date\" || header.type == \"datetime\"\r\n //f.type == \"double\" f.type == \"int\" f.type == \"combobox\" f.type == \"datagrid \"\r\n\r\n let _temel = this.componentService.cloneModel(this.componentService.componentList.find(x => x.group == \"Temel\"));\r\n let formComp = [];\r\n formComp = this.componentService.cloneModel(_temel.components);\r\n let _returnComp;//\r\n // \r\n\r\n if (_header.type == \"text\") {\r\n _returnComp = this.componentService.cloneModel(formComp.find(x => x.type == \"textbox\"));\r\n _returnComp.value = \"\";\r\n _returnComp.isAuto = false;\r\n _returnComp.autoText = \"\";\r\n }\r\n else if (_header.type == \"double\") {\r\n _returnComp = this.componentService.cloneModel(formComp.find(x => x.type == \"number\"));\r\n _returnComp.value = 0;\r\n _returnComp.format = _header.format;// \"#,##0.00\"; \r\n _returnComp.inputType = \"int\";\r\n //_returnComp.hasUserChange = true;\r\n _returnComp.functionScripts = [];\r\n _returnComp.functionScripts = this.datagridPanelJsScriptsCreate(_header);\r\n }\r\n else if (_header.type == \"int\") {\r\n\r\n _returnComp = this.componentService.cloneModel(formComp.find(x => x.type == \"number\"));\r\n _returnComp.value = 0;\r\n _returnComp.format = \"#0\";\r\n _returnComp.inputType = \"decimal\";\r\n //_returnComp.hasUserChange = true;\r\n _returnComp.functionScripts = [];\r\n _returnComp.functionScripts = this.datagridPanelJsScriptsCreate(_header);\r\n }\r\n else if (_header.type == \"date\" || _header.type == \"datetime\") {\r\n let _defaultFormat = _header.type == \"date\" ? \"dd/MM/yyyy\" : \"dd/MM/yyyy HH:mm\";\r\n let _format = _header.format && _header.format != \"\" && _header.format != \"#,##0.00\" ? _header.format : _defaultFormat;\r\n _returnComp = this.componentService.cloneModel(formComp.find(x => x.type == \"datebox\"));\r\n _returnComp.value = \"\";\r\n _returnComp.displayFormat = _format;\r\n _returnComp.inputType = _header.type;\r\n }\r\n else if (_header.type == \"datagrid\") { //datagrid \r\n _returnComp = this.componentService.cloneModel(formComp.find(x => x.name == \"Lookup\"));\r\n _returnComp.value = \"\";\r\n\r\n _returnComp.dataStorage = { connectionId: _header.dataGridSettings.connectionStringId, query: _header.dataGridSettings.query };\r\n _returnComp.displayExpr = _header.displayKey;\r\n _returnComp.valueExpr = _header.valueKey;\r\n\r\n _returnComp.sqlScripts = [];\r\n _returnComp.sqlScripts = this.datagridPanelSqlScriptsCreate(_header);\r\n\r\n\r\n } else if (_header.type == \"combobox\") { // combobox \r\n _returnComp = this.componentService.cloneModel(formComp.find(x => x.type == \"selectbox\"));\r\n _returnComp.value = \"\";\r\n\r\n _returnComp.dataStorage = { connectionId: _header.dataGridSettings.connectionStringId, query: _header.dataGridSettings.query };\r\n _returnComp.displayExpr = _header.displayKey;\r\n _returnComp.valueExpr = _header.valueKey;\r\n\r\n _returnComp.sqlScripts = [];\r\n _returnComp.sqlScripts = this.datagridPanelSqlScriptsCreate(_header);\r\n\r\n }\r\n else if (_header.type == \"customableCombobox\") { // customableCombobox\r\n _returnComp = this.componentService.cloneModel(formComp.find(x => x.type == \"selectbox\"));\r\n _returnComp.value = \"\";\r\n\r\n _returnComp.dataStorage = { connectionId: _header.dataGridSettings.connectionStringId, query: _header.dataGridSettings.query };\r\n _returnComp.displayExpr = _header.displayKey;\r\n _returnComp.valueExpr = _header.valueKey;\r\n\r\n _returnComp.sqlScripts = [];\r\n _returnComp.sqlScripts = this.datagridPanelSqlScriptsCreate(_header);\r\n\r\n }\r\n\r\n _returnComp.language = _header.language;\r\n for (let _i = 0; _i < _returnComp.language.length; _i++) {\r\n let lang = _header.language.find(x => x.Code == _returnComp.language[_i].Code);\r\n _returnComp.language[_i].Placeholder = lang.Label;\r\n _returnComp.language[_i].Hint = lang.Label;\r\n }\r\n\r\n //\"language\": [\r\n // {\r\n // \"Code\": \"trTR\",\r\n // \"Label\": \"Seçim\",\r\n // \"Placeholder\": \"Seçiniz\",\r\n // \"Hint\": \"Seçim\"\r\n // }\r\n //];\r\n if (valDataResult) {\r\n this.componentService.isNewSchemaPopup = false;\r\n _returnComp.value = valDataResult;\r\n }\r\n else\r\n this.componentService.isNewSchemaPopup = false;\r\n _returnComp.isDefaultFirstValue = typeof _header.isDefaultFirstValue == \"undefined\" || _header.isDefaultFirstValue == null ? false : _header.isDefaultFirstValue;\r\n _returnComp.required = _header.properties.required;\r\n _returnComp.disabled = _header.editable == false;\r\n _returnComp.id = \"datagridheader_\" + _header.type + \"_\" + _header.field;\r\n\r\n if (valDataResult)\r\n this.componentService.datagridColumnHasUserChanges[_returnComp.id] = true;\r\n else\r\n this.componentService.datagridColumnHasUserChanges[_returnComp.id] = false;\r\n\r\n return _returnComp;\r\n }\r\n\r\n datagridPanelJsScriptsCreate(_header) { //onchange olduğunda bir alan değişecek\r\n let _jsScripts = [];\r\n\r\n let headerColumnJs = this.data.headers.filter(x => x.expression.code && x.expression.code.search(\"{\" + _header.field + \"}\") > -1);\r\n headerColumnJs.forEach(_headerFor => { // değiştirilecek komponent\r\n\r\n let jsExpression = _headerFor.expression;\r\n if (jsExpression && jsExpression.code) {\r\n let replacedExpression = this.componentService.cloneModel(jsExpression);\r\n let datagridElementId = \"datagridheader_\" + _headerFor.type + \"_\" + _headerFor.field;\r\n _jsScripts.push({ \"code\": replacedExpression.code, \"elementId\": datagridElementId, \"column\": \"\" });\r\n }\r\n });\r\n\r\n if (headerColumnJs.length == 0 && _header.expression.code && _header.expression.code.indexOf(\"{\") == -1 && _header.expression.code.indexOf(\"}\") == -1) {\r\n let datagridElementId = \"datagridheader_\" + _header.type + \"_\" + _header.field;\r\n _jsScripts.push({ \"code\": _header.expression.code, \"elementId\": datagridElementId, \"column\": \"\" });\r\n }\r\n\r\n let allColumns = this.data.headers.map(m => m.field);\r\n _jsScripts.forEach(jsScript => {\r\n allColumns.forEach(_column => {\r\n let headerColumnNewElement = this.data.headers.find(x => x.field == _column);\r\n let datagridColumnElementId = \"datagridheader_\" + headerColumnNewElement.type + \"_\" + headerColumnNewElement.field;\r\n jsScript.code = this.replaceAll(jsScript.code, \"{\" + _column + \"}\", \"{\" + datagridColumnElementId + \"}\");\r\n });\r\n });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //let jsExpression = _header.expression;\r\n //let replacedExpression = this.componentService.cloneModel(jsExpression);\r\n //if (replacedExpression && replacedExpression.code) {\r\n // let allColumns = this.data.headers.map(m => m.field);\r\n\r\n // let datagridElementId = \"datagridheader_\" + _header.type + \"_\" + _header.field;\r\n\r\n // _jsScripts.push({ \"code\": replacedExpression.code, \"elementId\": datagridElementId, \"column\": \"\" });\r\n\r\n // //allColumns.forEach(_column => {\r\n // // let headerColumnNewElement = this.data.headers.find(x => x.field == _column);\r\n // // if (headerColumnNewElement.expression.code && headerColumnNewElement.expression.code.search(\"{\" + _header.field + \"}\") > -1) {\r\n // // let datagridColumnElementId = \"datagridheader_\" + headerColumnNewElement.type + \"_\" + headerColumnNewElement.field;\r\n // // _jsScripts.push({ \"code\": headerColumnNewElement.expression.code, \"elementId\": datagridColumnElementId, \"column\": \"\" });\r\n // // }\r\n // //});\r\n\r\n // _jsScripts.forEach(jsScript => {\r\n // allColumns.forEach(_column => {\r\n // let headerColumnNewElement = this.data.headers.find(x => x.field == _column);\r\n // let datagridColumnElementId = \"datagridheader_\" + headerColumnNewElement.type + \"_\" + headerColumnNewElement.field;\r\n // jsScript.code = this.replaceAll(jsScript.code, \"{\" + _column + \"}\", \"{\" + datagridColumnElementId + \"}\");\r\n // });\r\n // });\r\n\r\n //}\r\n return _jsScripts;\r\n }\r\n\r\n datagridPanelSqlScriptsCreate(_header) {\r\n let _sqlScripts = [];\r\n let allColumns = this.data.headers.map(m => m.field);\r\n let sqlExpressionsFilter = this.data.sqlExpressions.filter(x => x.query.search(\"{\" + _header.field + \"}\") > -1);\r\n\r\n let _iSql = 0;\r\n sqlExpressionsFilter.forEach(exp => {\r\n _iSql = _iSql + 1;\r\n\r\n let replacedQuery = this.componentService.cloneModel(exp.query);\r\n let headerElement = this.data.headers.find(x => x.field == exp.field);\r\n let datagridElementId = \"datagridheader_\" + headerElement.type + \"_\" + exp.field;\r\n allColumns.forEach(_column => {\r\n let headerColumnNewElement = this.data.headers.find(x => x.field == _column);\r\n let datagridElementId = \"datagridheader_\" + headerColumnNewElement.type + \"_\" + headerColumnNewElement.field;\r\n replacedQuery = this.componentService.replaceAllUsingType(replacedQuery, \"{\" + _column + \"}\", \"{\" + datagridElementId + \"}\");// exp.query.replace();\r\n });\r\n\r\n _sqlScripts.push({ \"query\": replacedQuery, \"connectionId\": exp.connectionStringId, \"elementId\": datagridElementId, \"id\": _iSql });\r\n\r\n });\r\n return _sqlScripts;\r\n }\r\n addNewRowOrClone(/*rowInde x,*/ data, _ID) {\r\n let firstIdTemp = 1;\r\n if (this.isFirstItemZero) {\r\n firstIdTemp = 0;\r\n this.isFirstItemZero = false;\r\n }\r\n\r\n let _DefaultColumn = 0;\r\n if (this.data.value.length == 0) {\r\n _DefaultColumn = 1;\r\n }\r\n\r\n var _Id = _ID;\r\n if (_ID == null)\r\n _Id = (this.data.value.length == 0 ? firstIdTemp : (this.data.value[this.data.value.length - 1].ID + 1));\r\n\r\n let currArray = this.selectionGridDataSource.filter(f => f.id == _Id);\r\n var _this = this;\r\n var newRow = false; //typeof e.row.isNewRow == \"undefined\" ? false : e.row.isNewRow;\r\n\r\n currArray.forEach(function (item) {\r\n let arr: any = {};\r\n arr.field = item.field;\r\n arr.id = _Id;\r\n arr.colIndex = item.colIndex;\r\n arr.data = item.data;\r\n _this.selectionGridDataSource.push(arr);\r\n });\r\n var clonedItem = Object.assign({}, (data ? data : {}), { ID: _Id, DefaultColumn: _DefaultColumn });\r\n\r\n let currentFormSelected1 = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let outFilterDatagrid1 = this.componentService.getComponentList(currentFormSelected1.components, this.anotherPopupId);\r\n if (outFilterDatagrid1 && (typeof this.filteredColumnDatagrid == \"undefined\" || (Array.isArray(this.filteredColumnDatagrid) && this.filteredColumnDatagrid.length == 0))) {\r\n //let selectedDatagridElements1 = outFilterDatagrid1.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" && x.selectedDatagrid == this.data.id);\r\n let selectedDatagridElements1 = outFilterDatagrid1.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" &&\r\n ((Array.isArray(x.selectedDatagrid) && typeof x.selectedDatagrid.find(y => y.id == this.data.id) != undefined) ||\r\n (!Array.isArray(x.selectedDatagrid) && x.selectedDatagrid == this.data.id)));\r\n\r\n selectedDatagridElements1.forEach(_sde => {\r\n if (_sde.type != \"datagrid\") {\r\n let _filtCol = \"filtercolumnsystem_\" + _sde.id;\r\n let outFilterDatagridFind1 = outFilterDatagrid1.find(xx => xx.id == _sde.id);\r\n clonedItem[_filtCol] = outFilterDatagridFind1 ? outFilterDatagridFind1.value : \"\";\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n this.data.value.splice(this.data.value.length, 0, clonedItem);\r\n\r\n for (let i = 0; i < this.data.headers.length; i++) {\r\n let exp = this.data.headers[i].expression;\r\n if (exp.export === true && typeof (exp.element) != \"undefined\") {\r\n let sum = this.componentService.setColSumToElement(exp.element, this.data.headers[i].field, this.data.value, currentFormSelected1.components);\r\n this.eventEmitterService.setColumnSumToComponent(exp.element, sum);\r\n }\r\n }\r\n\r\n\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n this.forceRefreshDatagrid();\r\n return clonedItem;\r\n }\r\n defaultDatagridValue = {};\r\n CreateDatagridColumns() {\r\n if (this.data.headers.length) {\r\n // this.dataGridEtr.instance.addColumn({ name: \"DefaultColumn\", dataField: \"DefaultColumn\", caption: \"DefaultColumn\", dataType: \"number\", width: 50, alignment: 'left', allowEditing: false, visible: false });\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let outFilterDatagrid = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n if (outFilterDatagrid && (typeof this.filteredColumnDatagrid == \"undefined\" || (Array.isArray(this.filteredColumnDatagrid) && this.filteredColumnDatagrid.length == 0))) {\r\n //let selectedDatagridElements = outFilterDatagrid.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" && x.selectedDatagrid == this.data.id);\r\n let selectedDatagridElements = outFilterDatagrid.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" &&\r\n ((Array.isArray(x.selectedDatagrid) && typeof x.selectedDatagrid.find(y => y.id == this.data.id) != undefined) ||\r\n (!Array.isArray(x.selectedDatagrid) && x.selectedDatagrid == this.data.id)));\r\n\r\n selectedDatagridElements.forEach(_sde => {\r\n //\" filtercolumnsystem_\" + element\r\n if (_sde.type != \"datagrid\") {\r\n let _filtCol = \"filtercolumnsystem_\" + _sde.id;\r\n this.dataGridEtr.instance.addColumn({ name: _filtCol, dataField: _filtCol, caption: _filtCol, dataType: \"string\", width: 0, alignment: 'left', allowEditing: false, visible: false });\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n let _editableDisable = !this.data.disabled && !this.data.outsideDisabled;\r\n try {\r\n this.dataGridEtr.instance.option('columns', []);\r\n this.dataGridEtr.columns = []\r\n } catch (e) {\r\n console.log(e)\r\n this.dataGridEtr.columns = []\r\n }\r\n this.dataGridEtr.instance.addColumn({ name: \"ID\", dataField: \"ID\", caption: \"ID\", dataType: \"number\", width: 50, alignment: 'left', allowEditing: false, visible: this.data.showIdColumn });\r\n this.dataGridEtr.instance.addColumn({ name: \"DefaultColumn\", dataField: \"DefaultColumn\", caption: \"DefaultColumn\", dataType: \"number\", width: 50, alignment: 'left', allowEditing: false, visible: false });\r\n\r\n this.defaultDatagridValue = {};\r\n this.data.headers.forEach(header => {\r\n //let _header_editableDisable = header.editable && _editableDisable;\r\n this.propertiesUndefinedControl(header);\r\n\r\n this.checkUserAuthorization(header);\r\n if (!header.hide) {\r\n header.caption = this.componentService.getLang(this.lang, header.language).Label;\r\n header.caption = header.properties.required == true ? header.caption + \" (*)\" : header.caption;\r\n\r\n let _required = [];//header.properties.required == true ? [{ type: \"required\" }] : [];\r\n if (header.type == \"text\") {\r\n this.defaultDatagridValue[header.field] = \"\";\r\n\r\n if (header.properties.autoText && header.properties.autoText.isAuto) {\r\n header.editable = false;// data.headers[selectedFormatIndex].properties.autoText.autoPreText isAuto\r\n }\r\n\r\n this.dataGridEtr.instance.addColumn({\r\n name: header.name,\r\n dataField: header.field,\r\n caption: header.caption,\r\n cellTemplate: \"textTemplate\",\r\n width: header.width,\r\n allowEditing: header.editable && _editableDisable && !this.data.editablePopup,\r\n //backgroundColor: header.properties.backgroundColor,\r\n //color: header.properties.color,\r\n // fontWeight: header.properties.fontWeight\r\n /* validationRules: _required*/\r\n });\r\n }\r\n else if (header.type == \"double\") {\r\n this.defaultDatagridValue[header.field] = 0;\r\n let params = header.expression;\r\n if (params && typeof (params.code) != \"undefined\" && params.code != \"\") {\r\n // header.editable = false;\r\n }\r\n //r-invalid\r\n this.dataGridEtr.instance.addColumn(\r\n {\r\n name: header.name,\r\n dataField: header.field,\r\n caption: header.caption,\r\n dataType: \"number\",\r\n //cellTemplate: \"doubleTemplate\",\r\n //editCellTemplate: \"doubleEditTemplate\",\r\n format: header.format,\r\n /*validationRules: _required,*/\r\n width: header.width,\r\n //backgroundColor: header.properties.backgroundColor,\r\n // color: header.properties.color,\r\n // fontWeight: header.properties.fontWeight,\r\n allowEditing: header.editable && _editableDisable && !this.data.editablePopup\r\n });\r\n }\r\n else if (header.type == \"int\") {\r\n this.defaultDatagridValue[header.field] = 0;\r\n let params = header.expression;\r\n if (params && typeof (params.code) != \"undefined\" && params.code != \"\") {\r\n }\r\n\r\n this.dataGridEtr.instance.addColumn(\r\n {\r\n name: header.name,\r\n dataField: header.field,\r\n caption: header.caption,\r\n //cellTemplate: \"intTemplate\",\r\n //editCellTemplate: \"intEditTemplate\",\r\n dataType: \"number\",\r\n /*validationRules: _required,*/\r\n format: \"#,##0\",\r\n width: header.width,\r\n allowEditing: header.editable && _editableDisable && !this.data.editablePopup,\r\n //backgroundColor: header.properties.backgroundColor,\r\n // color: header.properties.color,\r\n // fontWeight: header.properties.fontWeight\r\n });\r\n }\r\n else if (header.type == \"date\" || header.type == \"datetime\") {\r\n this.defaultDatagridValue[header.field] = null;\r\n let defaultFormat = header.type == \"date\" ? \"dd/MM/yyyy\" : \"dd/MM/yyyy HH:mm\";\r\n let _format = header.format && header.format != \"\" && header.format != \"#,##0.00\" ? header.format : defaultFormat;\r\n header.format = _format;\r\n this.dataGridEtr.instance.addColumn({\r\n name: header.name, dataField: header.field, caption: header.caption, dataType: header.type, format: _format, width: header.width, cellTemplate: \"dateTemplate\", allowEditing: header.editable && _editableDisable && !this.data.editablePopup,\r\n //backgroundColor: header.properties.backgroundColor,\r\n // color: header.properties.color,\r\n // fontWeight: header.properties.fontWeight\r\n /*, validationRules: _required*/\r\n });\r\n }\r\n else if (header.type == \"checkbox\") {\r\n this.defaultDatagridValue[header.field] = false;\r\n this.dataGridEtr.instance.addColumn({\r\n name: header.name, dataField: header.field, caption: header.caption, width: header.width, cellTemplate: \"checkboxTemplate\", headerCellTemplate: \"checkboxHeaderTemplate\", showEditorAlways: true, allowEditing: header.editable && _editableDisable && !this.data.editablePopup,\r\n //backgroundColor: header.properties.backgroundColor,\r\n // color: header.properties.color,\r\n // fontWeight: header.properties.fontWeight\r\n });\r\n }\r\n else if (header.type == \"file\") {\r\n this.defaultDatagridValue[header.field] = {};\r\n this.dataGridEtr.instance.addColumn({\r\n name: header.name, dataField: header.field, caption: header.caption, width: header.width, cellTemplate: \"fileTemplate\", editCellTemplate: \"fileTemplate\", allowEditing: header.editable && _editableDisable && !this.data.editablePopup,\r\n //backgroundColor: header.properties.backgroundColor,\r\n // color: header.properties.color,\r\n // fontWeight: header.properties.fontWeight\r\n });\r\n }\r\n else if (header.type == \"picturebox\") {\r\n this.defaultDatagridValue[header.field] = {};\r\n this.dataGridEtr.instance.addColumn({\r\n name: header.name, dataField: header.field, alignment: 'center', caption: header.caption, showEditorAlways: true, width: header.width, editCellTemplate: \"pictureboxTemplate\", allowEditing: ((header.editable && _editableDisable && !this.data.editablePopup) || true),\r\n //backgroundColor: header.properties.backgroundColor,\r\n //color: header.properties.color,\r\n //fontWeight: header.properties.fontWeight\r\n });\r\n }\r\n else if (header.type == \"fileviewer\") {\r\n this.defaultDatagridValue[header.field] = {};\r\n this.dataGridEtr.instance.addColumn({\r\n name: header.name, dataField: header.field, alignment: 'center', caption: header.caption, showEditorAlways: true, width: header.width, editCellTemplate: \"fileviewerTemplate\", allowEditing: ((header.editable && _editableDisable && !this.data.editablePopup) || true),\r\n //backgroundColor: header.properties.backgroundColor,\r\n //color: header.properties.color,\r\n //fontWeight: header.properties.fontWeight\r\n });\r\n }\r\n else if (header.type == \"map\") {\r\n\r\n if (typeof header.isAddMultipleMarker == \"undefined\")\r\n header.isAddMultipleMarker = false;\r\n if (typeof header.maxMarkerLimit == \"undefined\")\r\n header.maxMarkerLimit = 0;\r\n\r\n this.defaultDatagridValue[header.field] = {};\r\n this.dataGridEtr.instance.addColumn({\r\n name: header.name, dataField: header.field, alignment: 'center', caption: header.caption, showEditorAlways: true, width: header.width, editCellTemplate: \"mapTemplate\", allowEditing: ((header.editable && _editableDisable && !this.data.editablePopup) || true),\r\n //backgroundColor: header.properties.backgroundColor,\r\n //color: header.properties.color,\r\n //fontWeight: header.properties.fontWeight\r\n });\r\n }\r\n else if (header.type == \"datagrid\") {\r\n var _this = this;\r\n this.defaultDatagridValue[header.field] = -1;\r\n this.dataGridEtr.instance.addColumn(\r\n {\r\n name: header.name,\r\n caption: header.caption,\r\n dataField: header.field,\r\n allowEditing: (header.editable && _editableDisable && !this.data.editablePopup) || true,\r\n dataType: 'string',\r\n alignment: 'left',\r\n width: header.width,\r\n showEditorAlways: true,\r\n /* validationRules: _required,*/\r\n editCellTemplate: \"dropDownBoxEditor\",\r\n //backgroundColor: header.properties.backgroundColor,\r\n //color: header.properties.color,\r\n //fontWeight: header.properties.fontWeight\r\n }\r\n );\r\n }\r\n else if (header.type == \"combobox\") {\r\n\r\n this.defaultDatagridValue[header.field] = null;\r\n var _this = this;\r\n this.dataGridEtr.instance.addColumn(\r\n {\r\n name: header.name,\r\n caption: header.caption,\r\n dataField: header.field,\r\n allowEditing: header.editable && _editableDisable && !this.data.editablePopup,\r\n dataType: 'string',\r\n //editCellTemplate: \"comboboxTemplate\",\r\n alignment: 'left',\r\n showEditorAlways: true,\r\n width: header.width,\r\n // backgroundColor: header.properties.backgroundColor,\r\n // color: header.properties.color,\r\n // fontWeight: header.properties.fontWeight,\r\n\r\n /* validationRules: _required,*/\r\n\r\n lookup: {\r\n //disabled: (header.editable == true && _editableDisable == true && this.data.editablePopup!=true),\r\n allowClearing: header.clearButton,\r\n dataSource: function (options) {\r\n //var totalCount = _this.dataGridEtr.instance.totalCount();\r\n if (options.data) {\r\n //var rowInde x = typeof options.rowInde x == \"undefined\" || options.isNewRow ? totalCount : options.rowInde x;\r\n\r\n var _dataSource = _this.selectionGridDataSource.find(f => /*f.index == rowInde x*/f.id == options.data.ID && f.field == header.field);\r\n\r\n let dataSourceConfiguration = {\r\n store: {\r\n type: \"array\",\r\n key: header.valueKey,\r\n data: typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data\r\n }\r\n //store: typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data\r\n };\r\n return typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data;//dataSourceConfiguration;\r\n }\r\n else {\r\n let dataSourceConfiguration = {\r\n store: {\r\n type: \"array\",\r\n key: header.valueKey,\r\n data: []\r\n }\r\n //store: typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data\r\n };\r\n return [];//dataSourceConfiguration;\r\n }\r\n },\r\n displayExpr: \"displayText\",//header.displayKey,\r\n valueExpr: header.valueKey\r\n\r\n }\r\n\r\n }\r\n );\r\n }\r\n else if (header.type == \"customableCombobox\") {\r\n\r\n this.defaultDatagridValue[header.field] = null;\r\n var _this = this;\r\n this.dataGridEtr.instance.addColumn(\r\n {\r\n name: header.name,\r\n caption: header.caption,\r\n dataField: header.field,\r\n allowEditing: header.editable && _editableDisable && !this.data.editablePopup || true,\r\n dataType: 'string',\r\n //editCellTemplate: \"comboboxTemplate\",\r\n alignment: 'left',\r\n showEditorAlways: true,\r\n width: header.width,\r\n editCellTemplate: \"comboboxCustomTemplate\",\r\n valueKey : header.valueKey\r\n // backgroundColor: header.properties.backgroundColor,\r\n // color: header.properties.color,\r\n // fontWeight: header.properties.fontWeight,\r\n\r\n /* validationRules: _required,*/\r\n /*\r\n lookup: {\r\n //disabled: (header.editable == true && _editableDisable == true && this.data.editablePopup!=true),\r\n allowClearing: header.clearButton,\r\n dataSource: function (options) {\r\n //var totalCount = _this.dataGridEtr.instance.totalCount();\r\n if (options.data) {\r\n //var rowInde x = typeof options.rowInde x == \"undefined\" || options.isNewRow ? totalCount : options.rowInde x;\r\n\r\n var _dataSource = _this.selectionGridDataSource.find(f => /*f.index == rowInde x*//*f.id == options.data.ID && f.field == header.field);\r\n\r\n let dataSourceConfiguration = {\r\n store: {\r\n type: \"array\",\r\n key: header.valueKey,\r\n data: typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data\r\n }\r\n //store: typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data\r\n };\r\n return typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data;//dataSourceConfiguration;\r\n }\r\n else {\r\n let dataSourceConfiguration = {\r\n store: {\r\n type: \"array\",\r\n key: header.valueKey,\r\n data: []\r\n }\r\n //store: typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data\r\n };\r\n return [];//dataSourceConfiguration;\r\n }\r\n},\r\ndisplayExpr: \"displayText\",//header.displayKey,\r\nvalueExpr: header.valueKey\r\n\r\n}\r\n*/\r\n }as any\r\n );\r\n }\r\n }\r\n });\r\n\r\n this.hideLoadPanel();\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n this.dataGridEtr.instance.addColumn({ caption: \"\", allowEditing: false });\r\n\r\n this.dataGridEtr.instance.addColumn({ caption: \"*\", width: 50, cellTemplate: \"cloneButton\", allowFixing: false, fixed: false, fixedPosition: \"right\", visible: this.data.shopCopyButton });\r\n\r\n if (this.data.editablePopup)\r\n this.dataGridEtr.instance.addColumn({ caption: \"*\", width: 50, cellTemplate: \"editButton\", allowFixing: true, fixed: true, fixedPosition: \"right\" });\r\n\r\n this.applyFilter();\r\n\r\n this.dataGridEtr.instance.refresh();\r\n\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n }\r\n\r\n\r\n if (this.data.value.length == 0) {\r\n this.addNewRowFunction();\r\n }\r\n else {\r\n //if (this.data.selectedDatagrid && Array.isArray(this.data.selectedDatagrid) && this.data.selectedDatagrid.length > 0) {\r\n let _varThis = this;\r\n setTimeout(() => {\r\n if (_varThis.data.selectedRows.length == 0) {\r\n\r\n if (_varThis.data.value.length > 0) {\r\n _varThis.data.selectedRows = [];\r\n let firstDataValueId = _varThis.data.value[0];\r\n if (firstDataValueId && firstDataValueId.ID && firstDataValueId.ID != 0) {\r\n\r\n _varThis.data.selectedRows.push(firstDataValueId.ID);\r\n _varThis.focusedRowKey = firstDataValueId.ID;\r\n }\r\n }\r\n }\r\n else\r\n _varThis.focusedRowKey = _varThis.data.selectedRows[0];\r\n\r\n this.forceRefreshDatagrid()\r\n }, 500);\r\n //} \r\n }\r\n\r\n }\r\n\r\n\r\n getCellTheme(cell) {\r\n let header = this.data.headers.find(el => el.field == cell.column.dataField);\r\n const styles = {\r\n 'background-color': cell.column.backgroundColor ? cell.column.backgroundColor : header.properties.backgroundColor,//cell.column.backgroundColor,\r\n 'color': cell.column.backgroundColor ? cell.column.color : header.properties.color,// cell.column.color,\r\n 'font-weight': cell.column.fontWeight\r\n };\r\n //if (_type == \"Preview\") {\r\n // if (headerObj.properties.isUserUpload) {\r\n // styles[\"left\"] = \"calc(50% - 29px)\";\r\n // styles[\"top\"] = \"calc(50% - 10px)\";\r\n // }\r\n // else {\r\n // styles[\"left\"] = \"calc(50% - 16px)\";\r\n // styles[\"top\"] = \"calc(50% - 12px)\";\r\n // }\r\n //}\r\n return styles;\r\n\r\n }\r\n getCellValue(cell) {\r\n\r\n let header = this.data.headers.find(el => el.field == cell.column.dataField);\r\n let data = this.data.value.find(el => el.ID == cell.row.data.ID)\r\n let number: number = 0;\r\n let val = formatNumber(data[cell.column.dataField], header.format)\r\n return val\r\n }\r\n\r\n applyFilter() {\r\n if (\r\n this.data.filter.field\r\n && this.data.filter.field != \"\"\r\n && this.data.filter.users.length > 0\r\n && this.data.filter.operator != \"\"\r\n ) {\r\n if (this.isUserExistInFilter(this.data.filter.users)) {\r\n this.dataGridEtr.instance.filter([this.data.filter.field, this.data.filter.operator, this.data.filter.value]);\r\n }\r\n }\r\n }\r\n\r\n isUserExistInFilter(userList) {\r\n for (var i = 0; i < userList.length; i++) {\r\n if (userList[i] == this.appInfo.currentUser.id) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n checkUserAuthorization(header) {\r\n if (!this.isEdit) {\r\n let userId = this.appInfo.currentUser.id;\r\n let rGroupIndex = header.permissions.readonlyGroup.map(m => m.users.indexOf(userId) > -1).findIndex(x => x);\r\n let rUsersIndex = header.permissions.readonlyUsers.indexOf(userId);\r\n let hGroupIndex = header.permissions.hideGroup.map(m => m.users.indexOf(userId) > -1).findIndex(x => x);\r\n let hUsersIndex = header.permissions.hideUsers.indexOf(userId);\r\n\r\n let isHide = hGroupIndex != -1 || hUsersIndex != -1;\r\n let isReadonly = rGroupIndex != -1 || rUsersIndex != -1;\r\n\r\n if (isHide) header.hide = true;\r\n else header.hide = false;\r\n\r\n if (isReadonly) header.editable = false;\r\n else header.editable = true;\r\n }\r\n else {\r\n header.hide = false;\r\n header.editable = true;\r\n }\r\n }\r\n onColumnSettingPopopShow() {\r\n this.data.headers.filter(x => x.type == \"fileviewer\").forEach(_fileViewer => {\r\n if (typeof _fileViewer.sqlColumnSettings == \"undefined\") {\r\n _fileViewer.sqlColumnSettings = {\r\n \"connectionStringId\": 0,\r\n \"query\": \"\",\r\n \"fileFields\": {\r\n \"name\": \"\",\r\n \"file\": \"\",\r\n \"fileName\": \"\",\r\n \"extension\": \"\"\r\n }\r\n };\r\n }\r\n });\r\n\r\n\r\n\r\n //\t\"sqlColumnSettings\": {\r\n // \"connectionStringId\": 0,\r\n // \"query\": \"\",\r\n // \"fileFields\": {\r\n // \"name\": \"\",\r\n // \"file\": \"\",\r\n // \"fileName\": \"\",\r\n // \"extension\": \"\" \r\n // }\r\n //}\r\n }\r\n\r\n addCustomItem(data, cellInfo) {\r\n debugger;\r\n if (!data.text) {\r\n data.customItem = null;\r\n return;\r\n }\r\n var valueKey = this.data.headers.valueKey\r\n var customdataSource = this.data.headers.find(el => el.field == cellInfo.column.dataField)\r\n var obj = { customValue: true }\r\n obj[cellInfo.column.valueKey] = data.text\r\n customdataSource.dataSource.push(obj)\r\n console.log(cellInfo)\r\n var rowDataIndex = this.data.value.findIndex(f => f.ID == cellInfo.row.data[\"ID\"])\r\n this.data.value[rowDataIndex][cellInfo.column.dataField] = data.text;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n\r\n\r\n saveColumnSettings() {\r\n let _control = true;\r\n const pattern = /[A-Za-z_]/;\r\n this.data.headers.forEach(f => {\r\n if (!pattern.test(f.field[0]))\r\n _control = false;\r\n });\r\n if (_control) {\r\n this.showGridColPopop = false;\r\n }\r\n else\r\n this.showToast(this.languageLocal.toastColumnNameNumber, \"warning\");\r\n }\r\n onHidingColumnPopup(event: any) {\r\n let _control = true;\r\n const pattern = /[A-Za-z_]/;\r\n this.data.headers.forEach(f => {\r\n if (!pattern.test(f.field[0]))\r\n _control = false;\r\n });\r\n if (_control) {\r\n event.cancel = false;\r\n this.showGridColPopop = false;\r\n }\r\n else {\r\n event.cancel = true;\r\n this.showToast(this.languageLocal.toastColumnNameNumber, \"warning\");\r\n }\r\n }\r\n\r\n fieldTypesValueChanged = (e: any, header: any): void => {\r\n\r\n if (e.value.length && typeof e.event != \"undefined\") {\r\n\r\n let headerDefault = this.componentService.cloneModel(this.headers);\r\n header.dataGridSettings = headerDefault.dataGridSettings;\r\n header.properties = headerDefault.properties;\r\n header.dataSource = headerDefault.dataSource;\r\n header.dataSourceKey = headerDefault.dataSourceKey;\r\n header.valueKey = headerDefault.valueKey;\r\n header.funcParam = headerDefault.funcParam;\r\n header.format = headerDefault.format;\r\n header.files = headerDefault.files;\r\n header.changeEvents = headerDefault.changeEvents;\r\n header.sqlColumnSettings = headerDefault.sqlColumnSettings;\r\n\r\n if (e.value == \"datetime\")\r\n header.format = \"dd/MM/yyyy HH:mm\";\r\n else if (e.value == \"date\")\r\n header.format = \"dd/MM/yyyy\";\r\n else if (e.value == \"double\" || e.value == \"int\")\r\n header.format = \"#,##0.00\";\r\n else if (e.value == \"file\")\r\n header.width = \"200\";\r\n }\r\n }\r\n\r\n keyPressVariables(event: any) {\r\n\r\n const pattern = /[A-Za-z0-9_]/;\r\n const inputChar = String.fromCharCode((event as KeyboardEvent).charCode);\r\n if (!pattern.test(inputChar)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n\r\n filterOutElement(element, _val, filteredColumn, isSqlExecute) {\r\n //this.dataGrid.instance.filter([\r\n // [ \"Cost\", \">\", 1000 ],\r\n // \"and\",\r\n // [ \"Cost\", \"<=\", 2000 ]\r\n //]);\r\n if (element && element != \"\") {\r\n\r\n let _control = false;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let outFilterDatagrid = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n if (outFilterDatagrid) {\r\n let selectedDatagridElements = outFilterDatagrid.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" &&\r\n ((Array.isArray(x.selectedDatagrid) && typeof x.selectedDatagrid.find(y => y.id == this.data.id) != undefined) ||\r\n (!Array.isArray(x.selectedDatagrid) && x.selectedDatagrid == this.data.id)));\r\n _control = selectedDatagridElements.length > 0;\r\n\r\n //selectedDatagridElements.forEach(_sde => {\r\n // let _filtCol = \"filtercolumnsystem _\" + _sde.id;\r\n // this.data.value.forEach(_sdeVal => {\r\n // let outFilterDatagridFind = outFilterDatagrid.find(xx => xx.id == _sde.id);\r\n // _sdeVal[_filtCol] = outFilterDatagridFind ? outFilterDatagridFind.value : \"\";\r\n // });\r\n // _control = true;\r\n //});\r\n\r\n }\r\n\r\n\r\n let _filterChangeTemp = { col: undefined, val: undefined };\r\n if (_control) {\r\n this.forceRefreshDatagrid();\r\n\r\n if (typeof filteredColumn == \"undefined\" || (Array.isArray(filteredColumn) && filteredColumn.length == 0)) {\r\n this.dataGridEtr.instance.filter([\"filtercolumnsystem_\" + element, \"=\", _val]);\r\n _filterChangeTemp.col = \"filtercolumnsystem_\" + element;\r\n _filterChangeTemp.val = _val;\r\n }\r\n else {\r\n if (Array.isArray(filteredColumn)) {\r\n let _cols = [];\r\n let _vals = [];\r\n let datagridFilterArr = [];\r\n filteredColumn.forEach((_e, _i) => {\r\n _cols.push(_e);\r\n _vals.push(_val[_i]);\r\n datagridFilterArr.push([_e, '=', _val[_i]]);\r\n if (filteredColumn.length - 1 > _i)\r\n datagridFilterArr.push('and');\r\n });\r\n //[['ID','=',2],'or',['ID','=', 3]]\r\n this.dataGridEtr.instance.filter(datagridFilterArr);\r\n\r\n _filterChangeTemp = { col: _cols, val: _vals };\r\n }\r\n else {\r\n this.dataGridEtr.instance.filter([filteredColumn, \"=\", _val]);\r\n _filterChangeTemp = { col: filteredColumn, val: _val };\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //if (filteredColumn) {\r\n // this.dataGridEtr.instance.filter([filteredColumn, \"=\", _val]);\r\n // _filterChangeTemp.col = filteredColumn;\r\n //} else {\r\n // this.dataGridEtr.instance.filter([\"filtercolumnsystem_\" + element, \"=\", _val]);\r\n // _filterChangeTemp.col = \"filtercolumnsystem_\" + element;\r\n //}\r\n //_filterChangeTemp.val = _val;\r\n }\r\n\r\n if (isSqlExecute) {\r\n\r\n this.filterChangeSqlExecute(_filterChangeTemp);\r\n }\r\n }\r\n }\r\n\r\n\r\n filterChangeSqlExecute(_filterChangeTemp) {\r\n let thisDataValueFilter = [];\r\n if (_filterChangeTemp && _filterChangeTemp.col != \"\" || (Array.isArray(_filterChangeTemp.col) && _filterChangeTemp.col.length > 0)) {\r\n //_filterChangeTemp = { col: undefined, val: undefined }\r\n if (Array.isArray(_filterChangeTemp.col)) {\r\n debugger;\r\n let _indices = [];\r\n let tempData = this.componentService.cloneModel(this.data.value);\r\n _filterChangeTemp.col.forEach(function (fC, _iFC) {\r\n let _ind = tempData.reduce((r, v, i) => r.concat(v[fC] == _filterChangeTemp.val[_iFC] ? i : []), []);\r\n var c = _indices.concat(_ind);\r\n _indices = c.filter((item, pos) => c.indexOf(item) !== pos);\r\n });\r\n\r\n _indices.forEach(_in => {\r\n thisDataValueFilter.push(this.data.value[_in]);\r\n });\r\n }\r\n else\r\n thisDataValueFilter = this.data.value.filter(x => x[_filterChangeTemp.col] == _filterChangeTemp.val);\r\n }\r\n else\r\n thisDataValueFilter = this.data.value;\r\n\r\n\r\n thisDataValueFilter.forEach(valEl => {\r\n let dataHeaderControl = 0;\r\n this.data.headers.forEach(el => {\r\n let replacedQuery = this.componentService.cloneModel(el.dataGridSettings.query);\r\n\r\n let fields = Object.keys(valEl);\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = valEl[f];\r\n if (value != null && typeof value != \"undefined\" && typeof value.getMonth === 'function') {\r\n value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n }\r\n else\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n });\r\n\r\n this.outOfDatagridGetSql(replacedQuery, /*rowInde x,*/ el.dataGridSettings.connectionStringId, el.field, /*true,*/ \"\", valEl).then(val => {\r\n dataHeaderControl++;\r\n if (this.data.headers.length == dataHeaderControl) {\r\n\r\n this.onInitNewRowBegin({ data: valEl });\r\n }\r\n else {\r\n /* console.log(\"\");*/\r\n }\r\n });\r\n });\r\n\r\n\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n // #endregion SYSTEM CODE\r\n\r\n\r\n\r\n\r\n // #region DATAGRID IN DATAGRID COLUMN\r\n /////////\r\n /// DATAGRID IN DATAGRID COLUMN\r\n ////////\r\n visibileDatagridInDatagridOkButton(cellInfo) {\r\n if (cellInfo) {\r\n let header = this.data.headers.find(x => x.field == cellInfo.column.dataField);\r\n if (header && header.isMultipleSelect == true)\r\n return true;\r\n else\r\n return false;\r\n }\r\n else\r\n return false;\r\n }\r\n getSelectionMode(cellInfoGlobal) {\r\n let selectionMode = 'single';\r\n if (typeof cellInfoGlobal != \"undefined\") {\r\n let headerObj = this.data.headers.find(x => x.field == cellInfoGlobal.column.dataField);//this.data.headers[cellInfoGlobal.rowInde x].isMultipleSelect;\r\n if (typeof headerObj != \"undefined\" && headerObj.isMultipleSelect == true)\r\n selectionMode = 'multiple';\r\n }\r\n return selectionMode;\r\n }\r\n getDatagridSourceNew(cellInfo) {\r\n if (cellInfo) {\r\n var _dataSource = this.selectionGridDataSource.find(f => /*f.index == rowInde x*/f.id == cellInfo.data.ID && f.field == cellInfo.column.dataField);\r\n let header = this.data.headers.find(x => x.field == cellInfo.column.dataField);\r\n\r\n var dataSourceConfiguration = {\r\n // store: typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data\r\n store: {\r\n type: \"array\",\r\n key: header.valueKey,\r\n data: typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data\r\n }\r\n };\r\n\r\n\r\n let headerImageKey = \"\"\r\n if (typeof header.imageKeys != \"undefined\") {\r\n headerImageKey = header.imageKeys\r\n }\r\n\r\n this.gridHeaders = []\r\n if (dataSourceConfiguration.store.data.length > 0) {\r\n\r\n for (let i = 0; i < dataSourceConfiguration.store.data.length; i++) {\r\n\r\n let shouldChange = Object.keys(dataSourceConfiguration.store.data[i]).includes(headerImageKey) ? (true) : (false);\r\n\r\n if (dataSourceConfiguration.store.data[i][headerImageKey] == null) continue;\r\n\r\n if (shouldChange && !dataSourceConfiguration.store.data[i][headerImageKey].includes('data:'))\r\n dataSourceConfiguration.store.data[i][headerImageKey] = 'data:image/png;base64,' + dataSourceConfiguration.store.data[i][headerImageKey]\r\n //else if (shouldChange && dataSourceConfiguration.store.data[i][headerImageKey].includes('data:'))\r\n // dataSourceConfiguration.store.data[i][headerImageKey] = dataSourceConfiguration.store.data[i][headerImageKey]\r\n }\r\n\r\n Object.keys(dataSourceConfiguration.store.data[0]).forEach(el => {\r\n\r\n if (headerImageKey == el) {\r\n\r\n this.gridHeaders.push({ name: el, isImage: true, type: \"image\", key: header.valueKey })\r\n\r\n } else {\r\n\r\n this.gridHeaders.push({ name: el, isImage: false, type: \"text\", key: header.valueKey })\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n return dataSourceConfiguration;\r\n }\r\n }\r\n\r\n customComboBoxData = []\r\n onOpenedComboBoxTemplate(e, cellInfo) {\r\n this.getData(cellInfo)\r\n }\r\n\r\n getData(cellInfo) {\r\n debugger\r\n var customdataSource = this.data.headers.find(el => el.field == cellInfo.column.dataField)\r\n var cds = JSON.parse(JSON.stringify(customdataSource.dataSource))\r\n var filterData = cds.filter(f => f.customValue == false || (f[customdataSource.valueKey] == cellInfo.row.data[cellInfo.column.dataField] && f.customValue == true))\r\n this.customComboBoxData = filterData//customdataSource.dataSource\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n onEditorPreDatagridPopup(_e) {\r\n if (_e.parentType == 'filterRow') {\r\n\r\n // if (_e.dataField === \"CustomerInfo.StoreCity\") {\r\n //let oldHandler = _e.editorOptions.onValueChanged;\r\n //_e.editorOptions.onValueChanged = function (arg) {\r\n // oldHandler.apply(arg.component, arguments);\r\n // _e.element.find('.dx-apply-button').trigger('dxclick');\r\n //}\r\n // }\r\n\r\n\r\n //_e.editorOptions.onEnterKey = function (arg) {\r\n // _e.element.find('.dx-apply-button').trigger('dxclick');\r\n //}\r\n\r\n\r\n //return false;\r\n }\r\n return false;\r\n }\r\n\r\n onSelectionConfirmButton(selectedRowKeys, cellInfo) {\r\n\r\n if (cellInfo) {\r\n\r\n let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n if (header) this.selectedGridForm = header.dataGridSettings.formFields;\r\n let addRows = []\r\n let emptyRows = []\r\n let dataIdTemp = [];\r\n if (header.isMultipleSelect == true) {\r\n\r\n let isSelectAsRow = typeof header.isSelectAsRow == \"undefined\" ? (false) : (header.isSelectAsRow)\r\n\r\n if (!isSelectAsRow) {\r\n\r\n this.arraySelectedDatagridInDatagrid = selectedRowKeys;\r\n // let data = dataArray.find(f => f[header.valueKey] == selectedRowKeys[0][header.valueKey]);\r\n let isSelectAsRow = typeof header.isSelectAsRow == \"undefined\" ? (false) : (header.isSelectAsRow)\r\n if (!isSelectAsRow) {\r\n if (selectedRowKeys.length > 0) {\r\n let selectIds = selectedRowKeys //.map(m => m[header.valueKey]);\r\n if (selectIds.length > 0 && typeof selectIds[0] == \"undefined\") { selectIds = selectedRowKeys; }\r\n this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[header.field] = selectIds.toString();\r\n this.forceRefreshDatagrid();\r\n this.executeSqlExpression(header.field, this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)/*, this.cellInfoGlobal.data.ID, false*/);\r\n this.elementOutOfDatagrid();\r\n //this.showDatagridPopupClose();\r\n //this.cellInfoGlobal = undefined;\r\n }\r\n }\r\n\r\n } else if (isSelectAsRow) {\r\n\r\n // #region CheckAndFill\r\n // Bu alandaki kod seçili Id'den sonraki boş satırları tarıyor. Değişiklik yapılmayan satırlar çoklu seçim ile dolduruluyor.\r\n\r\n let values: any[] = this.data.value.filter(e => e.ID >= cellInfo.data[\"ID\"]).map(e => e.ID)\r\n values.forEach(el => {\r\n if (this.checkIsRowEmpty(el)) emptyRows.push(el);\r\n })\r\n\r\n let lastId = this.data.value[this.data.value.length - 1].ID\r\n for (let i = emptyRows.length; i < selectedRowKeys.length; i++) {\r\n lastId++;\r\n addRows.push(lastId)\r\n }\r\n\r\n\r\n let index = 0;\r\n for (let i = 0; i < emptyRows.length; i++) {\r\n let currentItem = selectedRowKeys[index];\r\n if (typeof currentItem == \"undefined\") { break; }\r\n else {\r\n let updateIndex = this.data.value.findIndex(el => el.ID == emptyRows[i])\r\n this.data.value[updateIndex][header.field] = JSON.parse(JSON.stringify(currentItem))\r\n dataIdTemp.push(this.data.value[updateIndex]);\r\n index++;\r\n\r\n }\r\n\r\n }\r\n\r\n for (let i = 0; i < addRows.length; i++) {\r\n\r\n let currentItem = selectedRowKeys[index];\r\n if (typeof currentItem == \"undefined\") { break; }\r\n else {\r\n\r\n let dataTemplate = JSON.parse(JSON.stringify(cellInfo.data))\r\n\r\n Object.keys(dataTemplate).forEach(key => {\r\n\r\n if (key != \"ID\" && key != \"DefaultColumn\" /*&& key != header.field*/) {\r\n dataTemplate[key] = cellInfo.data[key]\r\n }\r\n });\r\n\r\n if (typeof dataTemplate != \"undefined\") {\r\n dataTemplate[header.field] = currentItem\r\n var _data = this.addNewRowOrClone(dataTemplate, null)\r\n\r\n var _event = { data: _data };\r\n this.onInitNewRow(_event);\r\n dataIdTemp.push(this.data.value[this.data.value.length - 1]);\r\n }\r\n index++;\r\n\r\n }\r\n\r\n }\r\n // #endregion\r\n\r\n\r\n addRows.forEach(el => {\r\n this.executeSqlExpression(header.field, this.data.value.find(x => x.ID == el))\r\n })\r\n\r\n emptyRows.forEach(el => {\r\n this.executeSqlExpression(header.field, this.data.value.find(x => x.ID == el))\r\n })\r\n\r\n //this.executeSqlExpression(header.field, this.data.value.find(x => x.ID == cellInfo.data.ID)/*, this.cellInfoGlobal.data.ID, false*/);\r\n\r\n\r\n\r\n\r\n var selectedRowAllDatasource = this.selectionGridDataSource.filter(x => x.id == cellInfo.data.ID)\r\n\r\n dataIdTemp.filter(x => x.ID != cellInfo.data.ID).forEach(dataIdTempItem => {\r\n selectedRowAllDatasource.forEach(selectedRowAllDatasourceItem => {\r\n let curr = this.selectionGridDataSource.find(f => /*f.index == rowInde x*/f.id == dataIdTempItem.ID && f.field == selectedRowAllDatasourceItem.field);\r\n if (curr) {\r\n curr.data = [];\r\n //let find = selectedRowAllDatasource.find(x => x.field == selectedRowAllDatasourceItem.field)?.data; // selectedRowAllDatasource[selectedRowAllDatasourceItem.field];\r\n curr.data = selectedRowAllDatasource[selectedRowAllDatasourceItem.field];\r\n }\r\n else {\r\n let _tempSRAD = selectedRowAllDatasource.find(x => x.field == selectedRowAllDatasourceItem.field);\r\n let arr: any = {};\r\n arr.field = selectedRowAllDatasourceItem.field;\r\n arr.id = dataIdTempItem.ID;\r\n arr.data = _tempSRAD ? _tempSRAD.data : [];\r\n this.selectionGridDataSource.push(arr);\r\n }\r\n });\r\n });\r\n\r\n // #region Eski kod 18.05.2022 aradan zaman geçtiyse ve hata için geri dönüş olmadıysa silinebilir. - Buğra Moğol\r\n //f (selectedRowKeys.length > 0) {\r\n // let selectIds: any[] = selectedRowKeys\r\n //\r\n // var firstChanged = false;\r\n // let dataIdTemp = [];\r\n // selectIds.forEach(el => {\r\n // \r\n // if (this.checkIsDataGridEmpty()) {\r\n // let dataTemplateFirstRow = (cellInfo.data)\r\n // dataTemplateFirstRow[header.field] = el\r\n // firstChanged = true\r\n // var _data = dataTemplateFirstRow\r\n //\r\n // var _event = { data: _data };\r\n // this.onInitNewRow(_event);\r\n // dataIdTemp.push(this.data.value[this.data.value.length - 1]);\r\n // } else {\r\n // let dataTemplate = JSON.parse(JSON.stringify(cellInfo.data))\r\n // Object.keys(dataTemplate).forEach(key => {\r\n //\r\n // if (key != \"ID\" && key != \"DefaultColumn\" /*&& key != header.field*/) {\r\n // dataTemplate[key] = cellInfo.data[key]\r\n // }\r\n // });\r\n //\r\n // if (typeof dataTemplate != \"undefined\") {\r\n // dataTemplate[header.field] = el\r\n // var _data = this.addNewRowOrClon e(dataTemplate, null)\r\n //\r\n // var _event = { data: _data };\r\n // this.onInitNewRow(_event);\r\n // dataIdTemp.push(this.data.value[this.data.value.length - 1]);\r\n // }\r\n //\r\n // }\r\n //\r\n //\r\n // })\r\n //\r\n // //this.executeSqlExpression(header.field, this.data.value.find(x => x.ID == cellInfo.data.ID)/*, this.cellInfoGlobal.data.ID, false*/);\r\n // //\r\n // //var selectedRowAllDatasource = this.selectionGridDataSource.filter(x => x.id == cellInfo.data.ID)\r\n // //\r\n // //dataIdTemp.filter(x => x.ID != cellInfo.data.ID).forEach(dataIdTempItem => {\r\n // // selectedRowAllDatasource.forEach(selectedRowAllDatasourceItem => {\r\n // // let curr = this.selectionGridDataSource.find(f => /*f.index == rowInde x*/f.id == dataIdTempItem.ID && f.field == selectedRowAllDatasourceItem.field);\r\n // // if (curr) {\r\n // // curr.data = [];\r\n // // let find = selectedRowAllDatasource.find(x => x.field == selectedRowAllDatasourceItem.field)?.data; // selectedRowAllDatasource[selectedRowAllDatasourceItem.field];\r\n // // curr.data = selectedRowAllDatasource[selectedRowAllDatasourceItem.field];\r\n // // }\r\n // // else {\r\n // // let arr: any = {};\r\n // // arr.field = selectedRowAllDatasourceItem.field;\r\n // // //arr.index = rowInde x;\r\n // // arr.id = dataIdTempItem.ID;\r\n // // //arr.colIndex = columnIndex;\r\n // // arr.data = selectedRowAllDatasource.find(x => x.field == selectedRowAllDatasourceItem.field)?.data;\r\n // // this.selectionGridDataSource.push(arr);\r\n // // }\r\n // // });\r\n // //});\r\n //\r\n //\r\n //\r\n //\r\n // //let thisDataValues = this.componentService.cloneModel(this.data.value);\r\n // //thisDataValues.filter(x=>x)\r\n //\r\n // //let dataCols = this.data.headers.filter(f => f.type == \"combobox\" || f.type == \"datagrid \");\r\n // //if (dataCols && dataCols.length > 0)\r\n // // this.data.value.filter(x => x.ID > cellInfo.data.ID).forEach(elVal => {\r\n // // dataCols.forEach(elField => {\r\n //\r\n //\r\n // // let query = elField.dataGridSettings.query;\r\n // // //let queryClear = query.toLowerCase().replace(/(\\r\\n|\\n|\\r|\\t)/gm, \"\").replace(\" \", \"\");\r\n // // let _type = elField.type;\r\n // // let connectionStringId = elField.dataGridSettings.connectionStringId;\r\n //\r\n // // let replacedQuery = this.componentService.cloneModel(query);\r\n // // let fields = Object.keys(elVal);\r\n // // fields.forEach(f => {\r\n // // let pref = \"{\" + f + \"}\";\r\n // // let value = elVal[f];\r\n // // if (value != null && typeof value != \"undefined\" && typeof value.getMonth === 'function') {\r\n // // value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n // // replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n // // }\r\n // // else\r\n // // replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n // // });\r\n //\r\n // // this. outOfDatagridGetSq l(replacedQuery, /*rowInde x,*/ connectionStringId, elField.field, \"\", elVal);\r\n // // ///this.executeSqlExpression(elField.field, elVal);\r\n // // })\r\n // // })\r\n //\r\n // //let dataCols = this.data.headers.filter(f => f.type == \"combobox\" || f.type == \"datagrid \");//\r\n // //if (dataCols && dataCols.length > 0) {\r\n // // tThis.prepareDataGridColumn(dataCols, 0, false);\r\n // //}\r\n //\r\n // #endregion\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n this.showDatagridPopupClose();\r\n\r\n }\r\n\r\n onSelectionChanged(selectedRowKeys, cellInfo) {\r\n\r\n if (cellInfo) {\r\n\r\n\r\n let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n if (header) this.selectedGridForm = header.dataGridSettings.formFields;\r\n // let rowInde xSelected = cellInfo.row.rowInde x;\r\n this.cellInfoGlobal.isLoading = true;\r\n if (header.isMultipleSelect == true) {\r\n this.arraySelectedDatagridInDatagrid = selectedRowKeys\r\n }\r\n else {\r\n if (selectedRowKeys.length > 0) {\r\n\r\n let dataObj = this.selectionGridDataSource.find(f => /*f.index == cellInfo.rowInde x*/f.id == this.cellInfoGlobal.data.ID && f.field == header.field);\r\n let dataArray = typeof dataObj != \"undefined\" ? dataObj.data : null;\r\n let data = dataArray.find(f => f[header.valueKey] == selectedRowKeys[0][header.valueKey]);\r\n if (typeof data == \"undefined\")\r\n data = dataArray.find(f => f[header.valueKey] == selectedRowKeys[0]);\r\n\r\n if (data) {\r\n let display = data[header.valueKey];\r\n\r\n this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[header.field] = display;\r\n this.forceRefreshDatagrid();\r\n this.executeSqlExpression(header.field, this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)/*, this.cellInfoGlobal.data.ID, false*/);\r\n this.elementOutOfDatagrid();\r\n }\r\n\r\n this.showDatagridPopupClose();\r\n this.cellInfoGlobal = undefined;\r\n }\r\n\r\n //this.showDatagridPopup = false;\r\n }\r\n\r\n }\r\n }\r\n\r\n getDatagridkeyExpr(cellInfo) {\r\n if (cellInfo) {\r\n let _header = this.data.headers.find(x => x.field == cellInfo.column.dataField);\r\n return _header.valueKey;\r\n }\r\n }\r\n\r\n arraySelectedDatagridInDatagrid = [];\r\n getDatagridSelectRowKey(cellInfo) {\r\n let arraySelected = [];\r\n if (cellInfo) {\r\n //let header = this.data.headers.find(f => f.field == cellInfo.column.dataField);\r\n //if (header.isMultipleSelect == true) {\r\n // arraySelected = cellInfo.data[cellInfo.column.dataField].split(\",\");\r\n //}\r\n //else if (cellInfo.value != null && cellInfo.value != \"\" && typeof cellInfo.value != \"undefined\") {\r\n // arraySelected.push(cellInfo.value);\r\n //}\r\n arraySelected.push(cellInfo.value);\r\n }\r\n return arraySelected;\r\n }\r\n //details\r\n getDatagridSourceGetValue(cellInfo) {\r\n if (cellInfo/* && cellInfo.column.lookup.items.length>0*/ && cellInfo.data) {\r\n let _header = this.data.headers.find(x => x.field == cellInfo.column.dataField);//header.dataSource /*-----*/\r\n let _items = this.selectionGridDataSource.find(f => f.id == cellInfo.data.ID && f.field == _header.field);\r\n let _item = typeof _items != \"undefined\" && typeof _items.data != \"undefined\" ? _items.data : _header.dataSource;//cellInfo.column.lookup.items.find(x => x[cellInfo.column.lookup.valueExpr] == cellInfo.value);\r\n\r\n let _itemObj;\r\n if (_item.length > 0) {\r\n //var _dataSource = this.selectionGridDataSource.find(f => f.id == cellInfo.data.ID && f.field == cellInfo.column.dataField);\r\n //let dataSourceDatas = typeof _dataSource == \"undefined\" ? _header.dataSource : _dataSource.data; \r\n if (_header.isMultipleSelect) {\r\n let cellInfoValueSplit = typeof cellInfo.value != \"undefined\" ? cellInfo.value.toString().split(',') : [];\r\n let fieldsValues = _item.filter(x => cellInfoValueSplit.indexOf(x[_header.valueKey] + \"\") > -1);\r\n _itemObj = fieldsValues.length > 0 ? fieldsValues : null;\r\n }\r\n else\r\n _itemObj = _item.find(x => x[_header.valueKey] == cellInfo.value);\r\n }\r\n //if (_header.isMultipleSelect /*&& _item.length > 0*/) {\r\n // var _dataSource = this.selectionGridDataSource.find(f => f.id == cellInfo.data.ID && f.field == cellInfo.column.dataField);\r\n // let dataSourceDatas = typeof _dataSource == \"undefined\" ? _header.dataSource : _dataSource.data;\r\n\r\n // let cellInfoValueSplit = typeof cellInfo.value != \"undefined\" ? cellInfo.value.split(',') : [];\r\n\r\n // let fieldsValues = dataSourceDatas.filter(x => cellInfoValueSplit.indexOf(x[_header.valueKey] + \"\") > -1);\r\n // _itemObj = fieldsValues.length > 0 ? fieldsValues : null;\r\n //}\r\n //else {\r\n // _itemObj = _item.find(x => x[_header.valueKey] == cellInfo.value);\r\n //} \r\n let returnval;\r\n // let datagridInDatagridSelect = this.datagridInDatagridSelects.find(x => x.column == _header.field && x.id == cellInfo.data.ID /*x.rowInde x == cellInfo.rowInde x*/);\r\n if (_itemObj) {\r\n if (_header.isMultipleSelect)\r\n returnval = _itemObj.map(m => m[_header.displayKey]).join(\", \");\r\n else\r\n returnval = _itemObj[_header.displayKey];\r\n }\r\n //else if (datagridInDatagridSelect) {\r\n // returnval = datagridInDatagridSelect.valuetext;\r\n // returnval = returnval == \"\" || typeof returnval == \"undefined\" ? \" \" : returnval;\r\n //}\r\n else if (cellInfo.value && cellInfo.value != \"\")\r\n returnval = cellInfo.value;\r\n else\r\n returnval = \" \";\r\n\r\n return returnval;\r\n }\r\n }\r\n popoverDatagridInDatagridObj = {};\r\n togglePopoverDatagridInDatagrid(cellInfo) {\r\n if (cellInfo && cellInfo.data) {\r\n\r\n let _togglePopoverDatagridInDatagrid = this.popoverDatagridInDatagridObj[cellInfo.column.dataField + \"_\" + cellInfo.data.ID];\r\n if (typeof _togglePopoverDatagridInDatagrid != \"undefined\" && _togglePopoverDatagridInDatagrid != null)\r\n this.popoverDatagridInDatagridObj[cellInfo.column.dataField + \"_\" + cellInfo.data.ID] = !_togglePopoverDatagridInDatagrid;\r\n else {\r\n this.popoverDatagridInDatagridObj[cellInfo.column.dataField + \"_\" + cellInfo.data.ID] = true;\r\n } //this.defaultVisible = !this.defaultVisible;\r\n }\r\n }\r\n //popoverDatagridInDatagridVisible(cellInfo) {\r\n // let _togglePopoverDatagridInDatagrid = this.popoverDatagridInDatagridArray.find(x => x.id == cellInfo.data.ID && x.field == cellInfo.column.dataField);\r\n // if (_togglePopoverDatagridInDatagrid)\r\n // return _togglePopoverDatagridInDatagrid.visible;\r\n // else\r\n // return _togglePopoverDatagridInDatagrid.visible = true;\r\n //}\r\n getPopoverLinkId(cellInfo, _pre) {\r\n if (typeof cellInfo != \"undefined\" && cellInfo.data) {\r\n return _pre + \"_\" + cellInfo.column.dataField + \"_\" + cellInfo.data.ID;\r\n }\r\n }\r\n selectionModeDatagridInDatagrid = \"single\";\r\n //outOfDatagridGetSq lOpenPopupFinish = true;\r\n gridHeaders = []\r\n showDatagridPopupLoading = false;\r\n\r\n isLoading(cellInfo) {\r\n if (this.dataGridPopupLoading) return this.dataGridPopupLoading\r\n\r\n if (typeof cellInfo != \"undefined\" && this.isLoadingElements.length > 0) {\r\n let findElement = this.isLoadingElements.find(f => f.id == cellInfo.data.ID && f.field == cellInfo.column.dataField)\r\n if (!!findElement) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n\r\n dataGridPopupLoading = false;\r\n openDatagridPopup(cellInfo) {\r\n if (typeof cellInfo != \"undefined\") {\r\n\r\n let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n this.cellInfoGlobal = cellInfo;\r\n this.dataGridPopupLoading = true;\r\n this.showDatagridPopup = true;\r\n\r\n if (header) {\r\n if (header.isMultipleSelect == true) {\r\n let isSelectAsRow = typeof header.isSelectAsRow == \"undefined\" ? (false) : (header.isSelectAsRow)\r\n if (isSelectAsRow) {\r\n this.arraySelectedDatagridInDatagrid = []\r\n } else {\r\n this.arraySelectedDatagridInDatagrid = cellInfo.data[cellInfo.column.dataField].replace(\" \", \"\").split(',')\r\n }\r\n } else {\r\n this.arraySelectedDatagridInDatagrid = []\r\n }\r\n let replacedQuery = this.componentService.cloneModel(header.dataGridSettings.query);\r\n let fields = Object.keys(cellInfo.data);\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = cellInfo.data[f];\r\n if (value != null && typeof value != \"undefined\" && typeof value.getMonth === 'function') {\r\n value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n }\r\n else\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n });\r\n\r\n //this.outOfDatagridGetSq lOpenPopupFinish = false;\r\n //var newRow = typeof row.row.isNewRow == \"undefined\" ? false : row.row.isNewRow;\r\n\r\n this.outOfDatagridGetSql(replacedQuery, /*row.rowInde x,*/ header.dataGridSettings.connectionStringId, header.field, /*newRow,*/ \"\", cellInfo).then(val => {\r\n if (val) {\r\n\r\n\r\n this.dataGridOpenDataEvent(cellInfo)\r\n\r\n } else {\r\n\r\n let findElement = this.isLoadingElements.findIndex(f => f.id == cellInfo.data.ID && f.field == cellInfo.column.dataField)\r\n if (!!findElement && findElement != -1) {\r\n this.isLoadingElements.splice(findElement, 1);\r\n }\r\n\r\n this.dataGridOpenDataEvent(cellInfo)\r\n\r\n }\r\n\r\n this.dataGridPopupLoading = false;\r\n\r\n // }\r\n\r\n //}, 300);\r\n });\r\n //this.executeSqlExpressio n(, row.row.data,, newRow);\r\n }\r\n\r\n //setTimeout(() => {\r\n // // \r\n // if (cellInfo.value && cellInfo.value.indexOf(\",\") > -1) {\r\n\r\n // var _dataSource = this.selectionGridDataSource.find(f => f.id == cellInfo.data.ID && f.field == cellInfo.column.dataField);\r\n // let dataSourceDatas = typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data;\r\n\r\n // let cellInfoValueSplit = typeof cellInfo.value != \"undefined\" ? cellInfo.value.split(',') : [];\r\n\r\n // let fieldsValues = dataSourceDatas.filter(x => cellInfoValueSplit.indexOf(x[header.valueKey] + \"\") > -1);\r\n // /* this.arraySelectedDatagridInDatagrid*/\r\n // this.gridContainerPopup.selectedRowKeys = fieldsValues;\r\n // }\r\n // else\r\n // this.gridContainerPopup.selectedRowKeys = [];\r\n\r\n // try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // try { this.gridContainerPopup.instance.refresh(); } catch (ex) { }\r\n // try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n //}, 700);\r\n }\r\n }\r\n\r\n dataGridOpenDataEvent(cellInfo) {\r\n \r\n let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n let selectionMode = 'single';\r\n let headerObj = this.data.headers.find(x => x.field == cellInfo.column.dataField);\r\n if (typeof headerObj != \"undefined\" && headerObj.isMultipleSelect == true)\r\n selectionMode = 'multiple';\r\n this.selectionModeDatagridInDatagrid = selectionMode;\r\n this.getDataSourcePromise().then(resp => {\r\n\r\n if (!!this.gridContainerPopup && !!this.gridContainerPopup.instance)\r\n this.gridContainerPopup.instance.option(\"paging.pageIndex\", 0);\r\n\r\n let tThis = this;\r\n //let checkExistOutOfDatagrid = setInterval(function () {\r\n //if (tThis.outOfDatagridGetSq lOpenPopupFinish) {\r\n //clearInterval(checkExistOutOfDatagrid);\r\n //tThis.outOfDatagridGetSq lOpenPopupFinish = false;\r\n\r\n //if (cellInfo.value && cellInfo.value.indexOf(\",\") > -1) {\r\n if (cellInfo.value && header.isMultipleSelect) {\r\n\r\n var _dataSource = tThis.selectionGridDataSource.find(f => f.id == cellInfo.data.ID && f.field == cellInfo.column.dataField);\r\n let dataSourceDatas = typeof _dataSource == \"undefined\" ? header.dataSource : _dataSource.data;\r\n\r\n let cellInfoValueSplit = typeof cellInfo.value != \"undefined\" ? cellInfo.value.toString().split(',') : [];\r\n\r\n //let fieldsValues = dataSourceDatas.filter(x => cellInfoValueSplit.indexOf(x[header.valueKey] + \"\") > -1);\r\n\r\n if (!!this.gridContainerPopup && !!this.gridContainerPopup.selectedRowKeys) tThis.gridContainerPopup.selectedRowKeys = cellInfoValueSplit;\r\n //tThis.arraySelectedDatagridInDatagrid = cellInfoValueSplit;\r\n }\r\n else\r\n if (!!this.gridContainerPopup && !!this.gridContainerPopup.selectedRowKeys) tThis.gridContainerPopup.selectedRowKeys = [];\r\n\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n try { tThis.gridContainerPopup.instance.refresh(); } catch (ex) { }\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n })\r\n }\r\n\r\n storageKeyDatagridInDatagrid(cellInfoGlobal) {\r\n if (typeof cellInfoGlobal != \"undefined\") {\r\n //let _rowInde x = cellInfoGlobal.rowInde x\r\n let _header = this.data.headers.find(f => f.name == cellInfoGlobal.column.name);\r\n if (_header)\r\n return \"storage_\" + _header.field;\r\n else\r\n return \"storage_\";\r\n }\r\n return \"storage_\";\r\n }\r\n\r\n // #endregion DATAGRID IN DATAGRID COLUMN\r\n\r\n\r\n\r\n\r\n // #region COMBOBOX COLUMN\r\n /////////\r\n /// COMBOBOX COLUMN\r\n ////////\r\n // datagridInDatagridSelects = [];\r\n dataValTemp = {};\r\n prepareDataGridColumn(cols, index, isCreateHeader) {\r\n //valueKey displayKey type: \"datagrid\"\r\n debugger\r\n let query = cols[index].dataGridSettings.query;\r\n let queryClear = query.toLowerCase().replace(/(\\r\\n|\\n|\\r|\\t)/gm, \"\").replace(\" \", \"\");\r\n let _type = cols[index].type;\r\n let connectionStringId = cols[index].dataGridSettings.connectionStringId;\r\n if (query != \"\" && connectionStringId > 0) {\r\n query = this.editSqlByFormData(query);\r\n if (_type == \"datagrid\" && cols[index].valueKey == cols[index].displayKey) {\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n if (index == cols.length - 1) {\r\n if (isCreateHeader)\r\n this.CreateDatagridColumns();\r\n return;\r\n }\r\n else {\r\n this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n }\r\n }\r\n else if (_type == \"datagrid\" && cols[index].valueKey != cols[index].displayKey && !queryClear.startsWith('exec') && !queryClear.startsWith('execute') &&\r\n queryClear.indexOf('order by') == -1) {\r\n\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n if (this.data.value.length > 0 || cols[index].isDefaultFirstValue == true) {\r\n\r\n //if (this.dataValTemp[cols[index].field]) {\r\n // this.dataValTemp[cols[index].field].push();\r\n //}\r\n\r\n //fields.forEach(f => {\r\n // if (f != cols[index].valueKey) {\r\n // displayList.push(item[f]);\r\n // }\r\n //});\r\n this.datagridInDatagridSqlSelect(cols, index,/* 0, */query, connectionStringId, isCreateHeader);\r\n }\r\n else {\r\n if (index == cols.length - 1) {\r\n if (isCreateHeader)\r\n this.CreateDatagridColumns();\r\n return;\r\n }\r\n else {\r\n\r\n this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n }\r\n }\r\n\r\n }\r\n else {\r\n if ((_type == \"datagrid\" && (this.data.value.length > 1 || (this.data.value.length == 1 && this.data.value[0][cols[index].field] != \"\"))) || _type == \"combobox\" || _type == \"customableCombobox\") {/*-----*/\r\n this.genericService.executeQuerySecurited(query, connectionStringId).subscribe((result: any) => {\r\n\r\n let fields = result.length > 0 ? Object.keys(result[0]) : undefined;\r\n if (fields && _type == \"combobox\") {\r\n result.forEach(item => {\r\n if (fields.length == 1) {\r\n item.displayText = item[fields[0]];\r\n }\r\n else {\r\n let displayList = [];\r\n fields.forEach(f => {\r\n if (f != cols[index].valueKey) {\r\n displayList.push(item[f]);\r\n }\r\n });\r\n item[cols[index].valueKey] = item[cols[index].valueKey].toString();\r\n item.displayText = displayList.join(\",\");\r\n }\r\n });\r\n\r\n }\r\n if (fields && _type == \"customableCombobox\") {\r\n debugger\r\n result.forEach(item => {\r\n debugger\r\n if (fields.length == 1) {\r\n item.displayText = item[fields[0]];\r\n item.customValue = false\r\n }\r\n else {\r\n let displayList = [];\r\n fields.forEach(f => {\r\n if (f != cols[index].valueKey) {\r\n displayList.push(item[f]);\r\n }\r\n });\r\n item[cols[index].valueKey] = item[cols[index].valueKey].toString();\r\n item.displayText = displayList.join(\",\");\r\n item.customValue = false\r\n\r\n }\r\n \r\n });\r\n\r\n if (this.data.value.length > 0) {\r\n this.data.value.forEach(el => {\r\n if (el[cols[index].field] != \"\") {\r\n var findElRes = result.filter(f => f[cols[index].valueKey] == el[cols[index].field])\r\n if (findElRes.length == 0) {\r\n var obj = { customValue: true };\r\n obj[cols[index].valueKey] = el[cols[index].field]\r\n result.push(obj)\r\n }\r\n \r\n }\r\n \r\n })\r\n }\r\n \r\n\r\n }\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n cols[index].dataSource = result;\r\n if (index == cols.length - 1) {\r\n if (isCreateHeader)\r\n this.CreateDatagridColumns();\r\n return;\r\n }\r\n else {\r\n\r\n this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n }\r\n\r\n }, error => {\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n });\r\n }\r\n else {\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n if (index == cols.length - 1) {\r\n if (isCreateHeader)\r\n this.CreateDatagridColumns();\r\n return;\r\n }\r\n else {\r\n\r\n this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n else {\r\n\r\n\r\n let sqlExpressionColumn = this.data.sqlExpressions.find(x => x.field == cols[index].field)\r\n if (sqlExpressionColumn/* && cols[index].type == \"combobox\"*/) {\r\n\r\n // query = this.editSqlByFormData(query);\r\n this.data.value.forEach(f16 => {\r\n try {\r\n if (cols[index].type == \"combobox\" || cols[index].type == \"customableCombobox\")\r\n f16[cols[index].field] = f16[cols[index].field].toString();\r\n } catch (ex) { }\r\n\r\n try { this.executeSqlExpression(/*cols[index].field,*/\"\", f16); } catch (ex) { }\r\n });\r\n //this.datagridInDatagridSqlSelect(cols, index,/* 0, */sqlExpressionColumn.query, sqlExpressionColumn.connectionStringId, isCreateHeader);\r\n }\r\n\r\n this.loadedCompCount = this.loadedCompCount + 1;\r\n\r\n if (index == cols.length - 1) {\r\n if (isCreateHeader)\r\n this.CreateDatagridColumns();\r\n return;\r\n }\r\n else {\r\n\r\n this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n }\r\n\r\n }\r\n }\r\n\r\n datagridInDatagridSqlSelect(cols, index/*, rowIndex */, query, connectionStringId, isCreateHeader) {\r\n\r\n\r\n let _fieldVals = this.data.value.map(x => x[cols[index].field]).toString();\r\n let date = new Date();\r\n let timestamp = date.getTime();\r\n // let _valObj = this.data.value[rowIndex][cols[index].field];\r\n let _sqlcolumn = \"\";\r\n let _header = this.data.headers.find(f => f.field == cols[index].field);\r\n if (typeof _fieldVals != \"undefined\" && _fieldVals != \"\") {/*-----*/\r\n\r\n _sqlcolumn = \"SELECT * FROM (\" + query + \") [IMAGES \" + timestamp + \"] WHERE \" + cols[index].valueKey;\r\n //if (_header.isMultipleSelect)\r\n _sqlcolumn = _sqlcolumn + \" IN ('\" + this.replaceAll(_fieldVals, \",\", \"','\") + \"')\"\r\n //else\r\n // _sqlcolumn = _sqlcolumn + \"='\" + _valObj + \"'\"\r\n }\r\n\r\n if (_sqlcolumn == \"\" && cols[index].isDefaultFirstValue == true)\r\n _sqlcolumn = query;\r\n\r\n if (_sqlcolumn != \"\") {\r\n this.genericService.executeQuerySecurited(_sqlcolumn, connectionStringId).subscribe((result: any) => {\r\n //let _valDisplayKey;\r\n //if (_header.isMultipleSelect) {\r\n // _valDisplayKey = result.map(m => m[_header.displayKey]).join(\", \");//[0][cols[index].displayKey]\r\n //}\r\n //else\r\n // _valDisplayKey = result[0][cols[index].displayKey];\r\n _header.dataSource = result;\r\n // this.datagridInDatagridSelects.push({ column: cols[index].field, rowIndex: rowIndex, id: this.data.value[rowIndex].ID, valuetext: _valDisplayKey });\r\n //cols[index].dataSource = result;\r\n //rowIndex++;\r\n //if (this.data.value.length > rowIndex) {\r\n // this.datagridInDatagridSqlSelect (cols, index, rowIndex, query, connectionStringId, isCreateHeader);\r\n //}\r\n //else {\r\n\r\n if (index == cols.length - 1) {\r\n if (isCreateHeader)\r\n this.CreateDatagridColumns();\r\n return;\r\n }\r\n else {\r\n\r\n this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n }\r\n // }\r\n });\r\n }\r\n else {\r\n // rowIndex++;\r\n //if (this.data.value.length > rowIndex) {\r\n // this.datagridInDatagridSqlSelect (cols, index, rowIndex, query, connectionStringId, isCreateHeader);\r\n //}\r\n //else {\r\n if (index == cols.length - 1) {\r\n if (isCreateHeader)\r\n this.CreateDatagridColumns();\r\n return;\r\n }\r\n else {\r\n this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n }\r\n }\r\n //} \r\n }\r\n //datagridInDatagridSqlSelect(cols, index, rowIndex, query, connectionStringId, isCreateHeader) {\r\n\r\n // let date = new Date();\r\n // let timestamp = date.getTime();\r\n // let _valObj = this.data.value[rowIndex][cols[index].field];\r\n // if (typeof _valObj != \"undefined\" && _valObj != \"\") {/*-----*/\r\n\r\n // let _sqlcolumn = \"SELECT \" + cols[index].displayKey + \" FROM (\" + query + \") [IMAGES \" + timestamp + \"] WHERE \" + cols[index].valueKey;\r\n // let _header = this.data.headers.find(f => f.field == cols[index].field);\r\n // if (_header.isMultipleSelect)\r\n // _sqlcolumn = _sqlcolumn + \" IN ('\" + this.replaceAll(_valObj, \",\", \"','\") + \"')\"\r\n // else\r\n // _sqlcolumn = _sqlcolumn + \"='\" + _valObj + \"'\"\r\n\r\n // this.genericService.executeQuerySecurited(_sqlcolumn, connectionStringId).subscribe((result: any) => {\r\n // //let _valDisplayKey;\r\n // //if (_header.isMultipleSelect) {\r\n // // _valDisplayKey = result.map(m => m[_header.displayKey]).join(\", \");//[0][cols[index].displayKey]\r\n // //}\r\n // //else\r\n // // _valDisplayKey = result[0][cols[index].displayKey];\r\n // _header.dataSource = result;\r\n // // this.datagridInDatagridSelects.push({ column: cols[index].field, rowIndex: rowIndex, id: this.data.value[rowIndex].ID, valuetext: _valDisplayKey });\r\n // //cols[index].dataSource = result;\r\n // //rowIndex++;\r\n // //if (this.data.value.length > rowIndex) {\r\n // // this.datagridInDatagridSqlSelect(cols, index, rowIndex, query, connectionStringId, isCreateHeader);\r\n // //}\r\n // //else {\r\n\r\n // if (index == cols.length - 1) {\r\n // if (isCreateHeader)\r\n // this.CreateDatagridColumns();\r\n // return;\r\n // }\r\n // else {\r\n\r\n // this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n // }\r\n // // }\r\n // });\r\n // }\r\n // else {\r\n // // rowIndex++;\r\n // //if (this.data.value.length > rowIndex) {\r\n // // this.datagridInDatagridSqlSelect(cols, index, rowIndex, query, connectionStringId, isCreateHeader);\r\n // //}\r\n // //else {\r\n // if (index == cols.length - 1) {\r\n // if (isCreateHeader)\r\n // this.CreateDatagridColumns();\r\n // return;\r\n // }\r\n // else {\r\n // this.prepareDataGridColumn(cols, ++index, isCreateHeader);\r\n // }\r\n // }\r\n // //} \r\n //}\r\n\r\n editSqlByFormData(query) {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let componentList = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n var pattern = /( and | or | where |)\\{[a-zA-Z0-9 _\\[\\],'=ıİöÖçÇğĞ()üÜşŞ%]+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(query)) {\r\n let _match = query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value);\r\n }\r\n });\r\n }\r\n }\r\n return query;\r\n }\r\n\r\n\r\n // #endregion COMBOBOX COLUMN\r\n\r\n\r\n\r\n\r\n // #region MAP COLUMN\r\n /////////\r\n /// MAP COLUMN\r\n ////////\r\n\r\n markerOptionPopup = false;\r\n zoom: number = 8;\r\n mapMarkerLocal = {\r\n id: 0\r\n }\r\n mapMarkerSelectedImage = \"\";\r\n // initial center position for the map\r\n lat: number = 39.925533;\r\n lng: number = 32.866287;\r\n map;\r\n public mapReady(map) {\r\n this.map = map;\r\n //this.map.addListener(\"dragend\", function () {\r\n // try { document.querySelector('div[style*=\"color: rgb(0, 0, 0); font-size: 14px; font-family: Roboto, Arial, sans-serif;\"]').className = \"marker-cls\"; } catch (ex) { }\r\n //});\r\n //this.map.addListener(\"mouseup\", function () {\r\n // try { document.querySelector('div[style*=\"color: rgb(0, 0, 0); font-size: 14px; font-family: Roboto, Arial, sans-serif;\"]').className = \"marker-cls\"; } catch (ex) { }\r\n //});\r\n }\r\n\r\n markerDragEnd(m: marker, $event: MouseEvent) {\r\n if (!this.selectedMapHeader.disabled) {\r\n let _id = m.id;\r\n\r\n let _val = this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[this.cellInfoGlobal.column.dataField];\r\n\r\n let indexDataMarker = _val.markers.findIndex(x => x.id == _id);\r\n m.lat = $event.coords.lat;\r\n m.lng = $event.coords.lng;\r\n _val.markers[indexDataMarker] = m;\r\n }\r\n this.setClassMarker();\r\n }\r\n\r\n clickedMarker(label: string, index: number, id: number) {\r\n //this.mapMarkerSelectedImage = \"\";\r\n if (!this.selectedMapHeader.disabled) {\r\n let _val = this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[this.cellInfoGlobal.column.dataField];\r\n\r\n this.mapMarkerLocal = _val.markers.find(x => x.id == id);\r\n }\r\n\r\n this.setClassMarker();\r\n }\r\n mapClicked($event: MouseEvent) {\r\n if (this.cellInfoGlobal) {\r\n\r\n let _val = this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[this.cellInfoGlobal.column.dataField];\r\n\r\n let _header = this.data.headers.find(f => f.name == this.cellInfoGlobal.column.name);\r\n\r\n let ismarkerMulti = (_header.isAddMultipleMarker && (_header.maxMarkerLimit > _val.markers.length || _header.maxMarkerLimit == 0)) ||\r\n (!_header.isAddMultipleMarker && _val.markers.length == 0);\r\n\r\n if (ismarkerMulti) {\r\n let _id = _val.markers.length > 0 ? _val.markers[_val.markers.length - 1].id + 1 : 1;\r\n _val.markers.push({\r\n lat: $event.coords.lat,\r\n lng: $event.coords.lng,\r\n label: \"\",\r\n uploadedFiles: [],\r\n id: _id,\r\n draggable: _header.draggable\r\n });\r\n }\r\n\r\n this.selectedMap = typeof _val == \"undefined\" || typeof _val == \"undefined\" ? [] : _val;\r\n this.selectedMapHeader = this.data.headers.find(f => f.name == this.cellInfoGlobal.column.name);\r\n\r\n }\r\n this.setClassMarker();\r\n }\r\n\r\n //badgeMapMarkersCount = 0;\r\n getBadgeMapMarkers(cellInfo) {\r\n if (cellInfo && cellInfo.data) {\r\n if (this.data.value.find(x => x.ID == cellInfo.data.ID)) {\r\n\r\n let _val = this.data.value.find(x => x.ID == cellInfo.data.ID)[cellInfo.column.dataField];\r\n if (_val && _val != \"\" && _val.markers) {\r\n // this.badgeMapMarkersCount = _val.markers.length;\r\n return _val.markers.length;\r\n }\r\n else {\r\n // this.badgeMapMarkersCount = 0;\r\n return 0;\r\n }\r\n }\r\n }\r\n }\r\n clickMarkerAddInfo(markerLocal: any, index: number, id: number) {\r\n if (!this.selectedMapHeader.disabled) {\r\n this.markerOptionPopup = true;\r\n }\r\n this.setClassMarker();\r\n }\r\n\r\n clickMarkerDelete(markerLocal: any, index: number, id: number) {\r\n if (!this.selectedMapHeader.disabled) {\r\n let _id = this.mapMarkerLocal.id;\r\n let _val = this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[this.cellInfoGlobal.column.dataField];\r\n let indexDataMarker = _val.markers.findIndex(x => x.id == _id);\r\n this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[this.cellInfoGlobal.column.dataField].markers.splice(indexDataMarker, 1);\r\n }\r\n this.setClassMarker();\r\n }\r\n\r\n cancelMarkerOption() {\r\n this.markerOptionPopup = false;\r\n let _id = this.mapMarkerLocal.id;\r\n\r\n let _val = this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[this.cellInfoGlobal.column.dataField];\r\n\r\n this.mapMarkerLocal = _val.markers.find(x => x.id == _id);\r\n this.setClassMarker();\r\n }\r\n\r\n saveMarkerOption() {\r\n this.markerOptionPopup = false;\r\n let _id = this.mapMarkerLocal.id;\r\n\r\n let _val = this.data.value.find(x => x.ID == this.cellInfoGlobal.data.ID)[this.cellInfoGlobal.column.dataField];\r\n\r\n let indexDataMarker = _val.markers.findIndex(x => x.id == _id);\r\n _val.markers[indexDataMarker] = this.mapMarkerLocal;\r\n this.setClassMarker();\r\n }\r\n\r\n setClassMarker() {\r\n try {\r\n document.querySelector('div[style*=\"color: rgb(0, 0, 0); font-size: 14px; font-family: Roboto, Arial, sans-serif;\"]').className = \"marker-cls\";\r\n } catch (ex) { }\r\n }\r\n\r\n selectedMap = {};\r\n selectedMapHeader = { disabled: false };\r\n mapVisiblePopup = false;\r\n mapIntervalCheck = true;\r\n toggleMapPopup(cellInfo) {\r\n if (cellInfo) {\r\n\r\n this.cellInfoGlobal = cellInfo;\r\n let _val = this.data.value.find(x => x.ID == cellInfo.data.ID)[cellInfo.column.dataField];\r\n this.selectedMapHeader = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n this.selectedMapHeader.disabled = typeof this.selectedMapHeader.disabled == \"undefined\" ? false : this.selectedMapHeader.disabled;\r\n\r\n if (typeof _val == \"undefined\" || _val == null || _val == \"\") {\r\n this.data.value.find(x => x.ID == cellInfo.data.ID)[cellInfo.column.dataField] = { markers: [] };\r\n _val = { markers: [] };\r\n }\r\n else if (typeof _val.markers == \"undefined\")\r\n _val.markers = [];\r\n\r\n this.selectedMap = _val;\r\n\r\n this.mapIntervalCheck = false;\r\n let tThis = this;\r\n let mapInterval = setInterval(function () {\r\n if (tThis.mapIntervalCheck)\r\n clearInterval(mapInterval);\r\n try {\r\n document.querySelector('div[style*=\"color: rgb(0, 0, 0); font-size: 14px; font-family: Roboto, Arial, sans-serif;\"]').className = \"marker-cls\";\r\n } catch (ex) { }\r\n\r\n }, 5);\r\n\r\n this.mapVisiblePopup = true;\r\n }\r\n }\r\n\r\n onHidingMapPopup(e) {\r\n //this.cellInfoGlobal = null;\r\n this.selectedMap = {};\r\n this.mapIntervalCheck = true;\r\n this.selectedMapHeader = { disabled: false };\r\n this.zoom = 8;\r\n this.mapMarkerLocal = {\r\n id: 0\r\n }\r\n }\r\n\r\n // #endregion MAP COLUMN\r\n\r\n\r\n\r\n\r\n\r\n // #region FILEVIEWER COMPONENT COLUMN\r\n /////////\r\n /// FILEVIEWER COMPONENT COLUMN\r\n ////////\r\n showFileViewerPopup = false;\r\n popupSelectedImageValue = [];\r\n fileViewerDatasource = [];\r\n showFileViewerPanel(e, cellInfo) {\r\n this.popupSelectedImageValue = [];\r\n this.showFileViewerPopup = true;\r\n this.fileViewerDatasource = [];\r\n //name extension src isImg fileType this.replaceAll(_exReplaced.toLowerCase(), \".\", \"\");size\r\n //this.genericService.executeQuerySecurited(replacedQuery, connectionStringId).subscribe((result: any) => {\r\n\r\n // if (result && result.length) {\r\n\r\n // }\r\n //});\r\n\r\n //header.dataGridSettings.quer y header.dataGridSettings.connectionStringId header.field\r\n let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n\r\n let replacedQuery = this.componentService.cloneModel(header.sqlColumnSettings.query);\r\n let fields = Object.keys(cellInfo.data);\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = cellInfo.data[f];\r\n if (value != null && typeof value != \"undefined\" && typeof value.getMonth === 'function') {\r\n value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n }\r\n else\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n });\r\n replacedQuery = this.outOfDatagridGetSqlReplace(replacedQuery)\r\n\r\n this.genericService.executeQuerySecurited(replacedQuery, header.sqlColumnSettings.connectionStringId).subscribe((result: any) => {\r\n if (result && result.length) {\r\n // \"sqlColumnSettings\": {\r\n // \"connectionStringId\": 0,\r\n // \"query\": \"\", \r\n // \"fileFields\": {\r\n // \"name\": \"\",\r\n // \"file\": \"\",\r\n // \"fileName\": \"\",\r\n // \"extension\": \"\" \r\n // }\r\n //},\r\n result.forEach(_resultRow => {\r\n //tif tiff bmp jpg jpeg gif png application/pdf\r\n let _isImg = false;\r\n let _size = 0;\r\n let _fileType = \"\";\r\n let _extension = \"\";\r\n let _value = _resultRow[header.sqlColumnSettings.fileFields.file];\r\n let _exReplaced = header.sqlColumnSettings.fileFields.extension != \"\" ? _resultRow[header.sqlColumnSettings.fileFields.extension] :\r\n (header.sqlColumnSettings.fileFields.fileName != \"\" ? _resultRow[header.sqlColumnSettings.fileFields.fileName].split(\".\").pop() : \"\")\r\n\r\n if (_exReplaced != \"\") {\r\n _exReplaced = _exReplaced.toLowerCase().split('.').join('');\r\n if (\",tif,tiff,bmp,jpg,jpeg,gif,png,\".indexOf(\",\" + _exReplaced + \",\") > -1)\r\n _isImg = true;\r\n _size = _value.length * (3 / 4);\r\n\r\n if (_isImg) _fileType = \"image/\" + _exReplaced;\r\n else if (_exReplaced == \"pdf\") _fileType = \"application/pdf\";\r\n\r\n _extension = _exReplaced;\r\n }\r\n\r\n let document: any = {\r\n base64BlobData: _value,\r\n name: _resultRow[header.sqlColumnSettings.fileFields.name],\r\n fileType: _fileType,\r\n extension: _extension,\r\n size: _size,\r\n isImg: _isImg,\r\n src: 'data:' + _fileType + ';base64,' + _value\r\n };\r\n this.fileViewerDatasource.push(document);\r\n\r\n });\r\n\r\n this.changeDetectorRef.detectChanges();\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n createBlob(file) {\r\n return new Promise(resolve => {\r\n fetch(file.src)\r\n .then(res => res.blob())\r\n .then(blob => { resolve(blob) })\r\n .catch(err => { console.log(err) })\r\n });\r\n }\r\n previewFile(file, type) {\r\n\r\n var a: any = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n\r\n this.createBlob(file).then(\r\n (res: any) => {\r\n if (!!res) {\r\n const fileURL = window.URL.createObjectURL(res);\r\n\r\n a.href = fileURL;\r\n if (type == 'preview' && file.fileType == \"application/pdf\") {\r\n a.target = \"_blank\"\r\n } else {\r\n a.download = file.name;\r\n }\r\n a.click();\r\n window.URL.revokeObjectURL(fileURL);\r\n }\r\n\r\n }\r\n );\r\n\r\n //this.previewFileSrc = file.src;\r\n //this.showPreviewFilesPopup = true;\r\n }\r\n\r\n popupSelectedImage = \"\";\r\n imageZoomPopup = false;\r\n showImageFile(_src) {\r\n this.popupSelectedImage = _src;\r\n this.imageZoomPopup = true;\r\n }\r\n\r\n\r\n\r\n\r\n // #endregion FILEVIEWER COLUMN\r\n\r\n\r\n\r\n\r\n // #region PICTUREBOX COMPONENT COLUMN\r\n /////////\r\n /// PICTUREBOX COMPONENT COLUMN\r\n ////////\r\n\r\n pictureboxImageUploadVisibleObj = {};\r\n pictureboxUploaderStyleFunc(cellInfo, _type) {\r\n let headerObj = this.data.headers.find(x => x.field == cellInfo.column.dataField);\r\n var _block = cellInfo && this.pictureboxImageUploadVisibleObj[cellInfo.column.dataField + '_' + cellInfo.data.ID] && ((_type != \"Preview\" && headerObj.properties.isUserUpload) || _type == \"Preview\") ? 'block' : 'none';\r\n const styles = { 'display': _block };\r\n if (_type == \"Preview\") {\r\n if (headerObj.properties.isUserUpload) {\r\n styles[\"left\"] = \"calc(50% - 29px)\";\r\n styles[\"top\"] = \"calc(50% - 10px)\";\r\n }\r\n else {\r\n styles[\"left\"] = \"calc(50% - 16px)\";\r\n styles[\"top\"] = \"calc(50% - 12px)\";\r\n }\r\n }\r\n return styles;\r\n // return this.pictureboxImageUploadVisibleObj[cellInfo.column.dataField + '_' + cellInfo.data.ID] && cellInfo.column.properties.isUserUpload; //pictureboxTemplate\r\n }\r\n onBlurPicturebox(cellInfo) {\r\n if (cellInfo && cellInfo.data) {\r\n this.pictureboxImageUploadVisibleObj[cellInfo.column.dataField + \"_\" + cellInfo.data.ID] = false;\r\n }\r\n }\r\n\r\n onClickPicturebox(cellInfo) {\r\n this.popupSelectedImage = \"\";\r\n if (cellInfo) {\r\n let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n let docs = header.files.filter(f => f.row == cellInfo.data.ID);\r\n if (docs.length > 0) {\r\n\r\n let _docsTemp = docs[0];\r\n let ss = _docsTemp.file;\r\n if (_docsTemp.file.base64BlobData && _docsTemp.file.base64BlobData != \"\") {\r\n this.showImageFile('data:' + _docsTemp.file.fileType + ';base64,' + _docsTemp.file.base64BlobData);\r\n }\r\n }\r\n //else if (cellInfo.value && cellInfo.value !=\"\" && ){\r\n\r\n //}\r\n //let pictureboxRowsValueTemp = this.pictureboxRowsValue.find(x => x.rowId == cellInfo.data.ID && x.columnId == cellInfo.column.dataField);\r\n //if (pictureboxRowsValueTemp)\r\n // return pictureboxRowsValueTemp.src; \r\n }\r\n }\r\n onFocusPicturebox(cellInfo) {\r\n if (cellInfo && cellInfo.data) {\r\n this.pictureboxImageUploadVisibleObj[cellInfo.column.dataField + \"_\" + cellInfo.data.ID] = true;\r\n }\r\n }\r\n\r\n pictureboxDivStyleFunc() {\r\n var width = '60px';// this.data.width > 0 ? this.data.width + 'px' : '50px';\r\n var height = '62px';//this.data.height > 0 ? this.data.height + 'px' : '52px';\r\n const styles = { 'width': width, 'height': height, 'display': this.showDisplay, 'position': 'relative' };\r\n return styles;\r\n }\r\n\r\n pictureboxStyleFunc() {\r\n var width = '60px';//this.data.width > 0 ? this.data.width + 'px' : '50px';\r\n var height = '60px';// this.data.height > 0 ? (this.data.height - 2) + 'px' : '50px';\r\n const styles = { 'width': width, 'height': height, 'display': this.showDisplay };\r\n return styles;\r\n }\r\n\r\n pictureboxShowImage(cellInfo) {\r\n if (cellInfo) {\r\n let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n let docs = header.files.filter(f => f.row == cellInfo.data.ID);\r\n if (docs.length > 0) {\r\n let _docsTemp = docs[0];\r\n let ss = _docsTemp.file;\r\n if (_docsTemp.file.base64BlobData && _docsTemp.file.base64BlobData != \"\")\r\n return 'data:' + _docsTemp.file.fileType + ';base64,' + _docsTemp.file.base64BlobData;\r\n else\r\n return '/assets/img/default-placeholder.png';\r\n\r\n }\r\n //else if (cellInfo.value && cellInfo.value !=\"\" && ){\r\n\r\n //}\r\n //let pictureboxRowsValueTemp = this.pictureboxRowsValue.find(x => x.rowId == cellInfo.data.ID && x.columnId == cellInfo.column.dataField);\r\n //if (pictureboxRowsValueTemp)\r\n // return pictureboxRowsValueTemp.src; \r\n }\r\n\r\n return '/assets/img/default-placeholder.png';\r\n }\r\n\r\n pictureboxRowsValue = [];\r\n onPictureboxValueChanged = (e: any, cellInfo: any): void => {\r\n //let errors = [];\r\n //this.data.valueTemp = [];\r\n if (e.value.length) {\r\n //this.data.valu e = [];\r\n //this.totalSize = 0;\r\n //this.uploadResult.isShow = true;\r\n //this.uploadResult.status = \"primary\";\r\n //this.uploadResult.message = \"Dosyalar yükleniyor...\";\r\n //// for (let i = 0; i < .length; i++) {\r\n //let checkSum = this.totalSize + e.value[0].size;\r\n //if (checkSum > (this.data.maxFileSize * 1000000)) {\r\n // let msg = e.value[0].name + \" yüklenemedi.\"\r\n // errors.push(msg);\r\n // return;\r\n //}\r\n\r\n this.getDocument(e.value[0]).then((document: any) => {\r\n let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n let doc: any = {};\r\n doc.row = cellInfo.data.ID;\r\n doc.file = document;\r\n\r\n let pictureboxRowsValueTempIndex = header.files.findIndex(x => x.row == cellInfo.data.ID);\r\n if (pictureboxRowsValueTempIndex == -1)\r\n header.files.push(doc);\r\n else {\r\n this.componentService.datagridFilePicturebox.push({ anotherPopupId: this.anotherPopupId, id: header.files[pictureboxRowsValueTempIndex].file.id });\r\n header.files[pictureboxRowsValueTempIndex] = doc;\r\n }\r\n\r\n //let pictureboxRowsValueTempIndex = this.pictureboxRowsValue.findIndex(x => x.rowId == cellInfo.data.ID && x.columnId == cellInfo.column.dataField);\r\n //if (pictureboxRowsValueTempIndex == -1)\r\n // this.pictureboxRowsValue.push(document);\r\n //else\r\n // this.pictureboxRowsValue[pictureboxRowsValueTempIndex] = document;\r\n\r\n\r\n\r\n\r\n\r\n //this.totalSize += e.value[0].size;\r\n //if (i === (e.value.length - 1)) {\r\n //if (errors.length) {\r\n // this.uploadResult.status = \"danger\";\r\n // this.uploadResult.message = \"Dosya boyutu aşıldı: \" + errors.join(\", \");\r\n //}\r\n //else {\r\n // this.uploadResult.status = \"success\";\r\n // this.uploadResult.message = \"Dosyalar yüklendi\";\r\n //}\r\n\r\n //if (this.isEdit) {\r\n\r\n // let objArray = [];\r\n // let obj: any = {\r\n // componentId: this.data.id,\r\n // rowId: \"-1 ,\r\n // columnId: \"-1 ,\r\n // fileData: this.data.valueTemp[0].base64BlobData,\r\n // fileExtension: this.data.valueTemp[0].extension,\r\n // fileType: this.data.valueTemp[0].fileType,\r\n // isImage: this.data.valueTemp[0].isImg,\r\n // name: this.data.valueTemp[0].name,\r\n // size: this.data.valueTemp[0].size,\r\n // description: \"\"\r\n // };\r\n\r\n // objArray.push(obj);\r\n\r\n // this.instanceService.saveFormFilesData(objArray, 0, this.dat a.value).subscribe((s: any) => {\r\n\r\n // let _fileVal = s.files.filter(x => x.ComponentId == this.data.id);\r\n // if (_fileVal != null && typeof _fileVal != \"undefined\" && _fileVal.length > 0) {\r\n // this.data.value = _fileVal.map(ele => ele.Id);\r\n\r\n // }\r\n\r\n // });\r\n\r\n //}\r\n\r\n this.changeDetectorRef.detectChanges();\r\n // }\r\n });\r\n\r\n // }\r\n }\r\n }\r\n\r\n // #endregion PICTUREBOX COLUMN\r\n\r\n\r\n\r\n\r\n // #region FILE COMPONENT COLUMN\r\n /////////\r\n /// FILE COMPONENT COLUMN\r\n ////////\r\n\r\n onValueChanged = (e: any, row): void => {\r\n //row.column.name\r\n if (e.value.length) {\r\n let header = this.data.headers.find(f => f.name == row.column.name);\r\n e.value.forEach(f => {\r\n this.getDocument(f).then(document => {\r\n\r\n let doc: any = {};\r\n doc.row = row.data.ID;\r\n doc.file = document;\r\n header.files.push(doc);\r\n\r\n });\r\n });\r\n }\r\n }\r\n getDocument(file) {\r\n return new Promise(resolve => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n let fileName = file.name;\r\n let fileType: string = file.type;\r\n let base64BlobData: any = args.target.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n let fileSize = file.size;\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: fileType,\r\n extension: fileExtension,\r\n size: fileSize,\r\n isImg: this.componentService.isImage(fileExtension)\r\n };\r\n resolve(document);\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n fileUploaderDisabled(row) {\r\n return !row.isEditing || (typeof row == 'undefined' || typeof row.data == 'undefined' || typeof row.data.ID == 'undefined' || row.data.ID == 0);\r\n }\r\n\r\n datagridHeaderFiles: any = []\r\n //datagridValueFiles: any = []\r\n showFile(row) {\r\n this.datagridHeaderFiles = []\r\n //this.datagridValueFiles = []\r\n let header = this.data.headers.find(f => f.name == row.column.name);\r\n let docs = header.files.filter(f => f.row == row.data.ID);\r\n if (docs.length > 0) {\r\n docs.forEach(f => {\r\n f.file.src = 'data:' + f.file.fileType + ';base64,' + f.file.base64BlobData;\r\n this.datagridHeaderFiles.push(f.file);\r\n });\r\n }\r\n\r\n this.showPreviewFilesPopup = true;\r\n }\r\n\r\n getFileCount(row) {\r\n let header = this.data.headers.find(f => f.name == row.column.name);\r\n let docs = header.files.filter(f => f.row == row.data.ID);\r\n let returnCount = docs.length;\r\n return returnCount == 0 ? \"\" : \"(\" + returnCount + \")\"\r\n }\r\n\r\n\r\n deleteFiles() {\r\n let result = confirm(\"\" + this.languageLocal.filesSureDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.uploadedFiles = [];\r\n\r\n let datagridHeader = this.data.headers.filter(x => x.type == \"file\");\r\n datagridHeader.forEach(_datagridHeader => {\r\n _datagridHeader.files = [];\r\n let dataFiles = _datagridHeader.files;\r\n let columnId = _datagridHeader.field;\r\n dataFiles.forEach(_dataFile => {\r\n /*[parseInt()]*/\r\n this.data.value.find(x => x.ID == _dataFile.row)[columnId] = [];\r\n });\r\n });\r\n this.datagridHeaderFiles = [];\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n deleteFile(_id, _base64BlobData, _name) {\r\n let result = confirm(\"\" + this.languageLocal.fileDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.deleteFileConfirm(_id, _base64BlobData, _name);\r\n }\r\n });\r\n\r\n }\r\n\r\n deleteFileConfirm(_id, _base64BlobData, _name) {\r\n if (typeof _id != \"undefined\") {\r\n let datagridHeader = this.data.headers.filter(x => x.type == \"file\");\r\n datagridHeader.forEach(_datagridHeader => {\r\n\r\n let dataFiles = _datagridHeader.files;\r\n let columnId = _datagridHeader.field;\r\n dataFiles.forEach(_dataFile => {\r\n let _indexTemp = this.data.value.find(x => x.ID == parseInt(_dataFile.row));\r\n if (_indexTemp) {\r\n let _indexVal = _indexTemp[columnId].findIndex(x => x == _id);\r\n if (_indexVal != -1) {\r\n _indexTemp[columnId].splice(_indexVal, 1);\r\n }\r\n }\r\n\r\n });\r\n\r\n let _index = _datagridHeader.files.findIndex(x => x.file.id == _id);\r\n if (_index != -1)\r\n _datagridHeader.files.splice(_index, 1);\r\n\r\n this.eventEmitterService.setDeletedFileIds(_id);\r\n });\r\n\r\n let _indexShowFiles = this.datagridHeaderFiles.findIndex(x => x.id == _id);\r\n if (_indexShowFiles != -1)\r\n this.datagridHeaderFiles.splice(_indexShowFiles, 1);\r\n }\r\n else {\r\n try {\r\n let datagridHeader = this.data.headers.filter(x => x.type == \"file\");\r\n datagridHeader.forEach(_datagridHeader => {\r\n let _index = _datagridHeader.files.findIndex(x => x.file.base64BlobData == _base64BlobData && x.file.name == _name);\r\n if (_index != -1)\r\n _datagridHeader.files.splice(_index, 1);\r\n //_base64BlobData, _name\r\n });\r\n let _indexShowFiles = this.datagridHeaderFiles.findIndex(x => x.base64BlobData == _base64BlobData && x.name == _name);\r\n if (_indexShowFiles != -1)\r\n this.datagridHeaderFiles.splice(_indexShowFiles, 1);\r\n } catch (ex) { }\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n\r\n // #endregion FILE COMPONENT COLUMN\r\n\r\n\r\n\r\n\r\n // #region DATAGRID CHANGE EVENTS ( ADD ROW - UPDATE ROW - DELETE ROW - ONCHANGE CELL )\r\n /////////\r\n /// DATAGRID CHANGE EVENTS ( ADD ROW - UPDATE ROW - DELETE ROW - ONCHANGE CELL )\r\n ////////\r\n\r\n onEditorPreparing(e) {\r\n\r\n if (e.parentType === \"dataRow\" && !this.isCalcCellFormula) {\r\n e.editorOptions.onKeyDown = args => {\r\n if (args.event.ctrlKey) {\r\n if (args.event.keyCode == 46/*.keyCode == 13*/) {// CTRL + DELETE => DELETE ROW \r\n\r\n let dataIndex = this.data.value.findIndex(x => x.ID == this.focusedRowKey);\r\n if (dataIndex != -1)\r\n this.dataGridEtr.instance.deleteRow(dataIndex); // this.focusedRowKey \r\n\r\n }\r\n else if (args.event.keyCode == 16) { // CTRL + SHIFT => NEW ROW \r\n //let datagridInstance = this.dataGridEtr.instance;\r\n if (this.loadingVisible == false) {\r\n this.addNewRowFunction();\r\n }\r\n }\r\n }\r\n\r\n };\r\n\r\n if (e.row.data.ID != this.selectedRowsDataOnchange.ID && (e.row.isNewRow == true || e.row.isEditing == true)) {\r\n\r\n this.selectedRowsDataOnchange = e.row.data;\r\n this.data.selectedRows = [];\r\n this.data.selectedRows.push(this.selectedRowsDataOnchange.ID);\r\n this.focusedRowKey = this.selectedRowsDataOnchange.ID;\r\n //this.selectedDatagridChangeFilter (this.selectedRowsDataOnchange);\r\n } //if (this.data.selectedDatagrid && Array.isArray(this.data.selectedDatagrid) && this.data.selectedDatagrid.length > 0) {\r\n // let _thisPage = this;\r\n // this.data.selectedDatagrid.forEach(function (_item) {\r\n // if (_item.id && _item.id != \"\") {\r\n // let itemField = _item.field == null || _item.field == \"\" ? undefined : _item.field ;\r\n // let dataVal = _item.sourceField == null || _item.sourceField == \"\" || typeof _item.sourceField == \"undefined\" ? e.row.data.ID:\r\n // e.row.data[_item.sourceField];\r\n // //this.data.selectedDatagridFilterField = this.data.selectedDatagridFilterField == null ? undefined : this.data.selectedDatagridFilterField;\r\n // let _data = { element: _thisPage.data.id, value: dataVal, elementLabel: _thisPage.defaultLanguage.Label, filteredElement: _item.id, filteredColumn: itemField, isDelete: false, isSqlExecute: true };\r\n // _thisPage.eventEmitterService.ChangeFilterOutElemen t (_data);\r\n // }\r\n // });\r\n //}\r\n\r\n e.editorOptions.onFocusIn = (args: any) => {\r\n var input = args.element.querySelector('.dx-texteditor-input[inputmode=\"decimal\"]');\r\n\r\n if (input != null) {\r\n input.select();\r\n }\r\n // this.isGridSelection = true;\r\n };\r\n\r\n //e.editorOptions.onFocusOut = (args: any) => { \r\n // this.isGridSelection = true;\r\n //};\r\n\r\n this.dateTimeMinMaxFormat(e);\r\n\r\n e.editorOptions.onValueChanged = args => {\r\n\r\n let _val = args.value;//dataField: \"talepmiktari\"\r\n let _datagridHeader = this.data.headers.find(x => x.field == e.dataField);\r\n if (_datagridHeader.type == \"int\") {\r\n //if (Math.round(val) === -0) {\r\n // Math.floor( ceil round\r\n //e.component.option(\"value\", 0)\r\n if (_datagridHeader.properties.roundType == \"ceil\")\r\n _val = Math.ceil(_val);\r\n else if (_datagridHeader.properties.roundType == \"floor\")\r\n _val = Math.floor(_val);\r\n else\r\n _val = Math.round(_val);\r\n }\r\n\r\n e.setValue(_val);\r\n\r\n this.forceRefreshDatagrid();\r\n setTimeout(() => {\r\n //this.dataGridEtr.instance.saveEditData(); \r\n }, 50);\r\n //, \r\n if (typeof this.data.userChangeColumns == \"undefined\")\r\n this.data.userChangeColumns = [];\r\n let _userChange = this.data.userChangeColumns.find(x => x.header == e.dataField && x.ID == e.row.data.ID);\r\n if (typeof _userChange == \"undefined\") {\r\n\r\n let changeSystemField = [];\r\n if (this.data.sqlExpressions.length > 0)\r\n changeSystemField = this.data.sqlExpressions.map(m => m.field);\r\n\r\n this.data.headers.forEach(f => {\r\n if (typeof f.expression.code != \"undefined\")\r\n changeSystemField.push(f.field);\r\n });\r\n\r\n if (typeof changeSystemField.find(x => x == e.dataField) != \"undefined\") {\r\n\r\n this.data.userChangeColumns.push({ header: e.dataField, ID: e.row.data.ID });\r\n }\r\n }\r\n\r\n\r\n var newRow = false;// typeof e.row.isNewRow == \"undefined\" ? false : e.row.isNewRow;\r\n this.executeSqlExpression(e.dataField, e.row.data/*, e.row.rowInde x, newRow*/);\r\n\r\n\r\n };\r\n\r\n }\r\n\r\n }\r\n\r\n onNumberFieldValueChanged(e: any, cellInfo) {\r\n\r\n if (e.value) {\r\n\r\n let _val: number = e.value\r\n\r\n let _datagridHeader = this.data.headers.find(x => x.field == cellInfo.column.dataField);\r\n if (_datagridHeader.type == \"int\") {\r\n //if (Math.round(val) === -0) {\r\n // Math.floor( ceil round\r\n //e.component.option(\"value\", 0)\r\n if (_datagridHeader.properties.roundType == \"ceil\")\r\n _val = Math.ceil(_val);\r\n else if (_datagridHeader.properties.roundType == \"floor\")\r\n _val = Math.floor(_val);\r\n else\r\n _val = Math.round(_val);\r\n }\r\n\r\n cellInfo.setValue(_val);\r\n\r\n this.forceRefreshDatagrid();\r\n setTimeout(() => {\r\n //this.dataGridEtr.instance.saveEditData(); \r\n }, 50);\r\n //, \r\n if (typeof this.data.userChangeColumns == \"undefined\")\r\n this.data.userChangeColumns = [];\r\n let _userChange = this.data.userChangeColumns.find(x => x.header == cellInfo.column.dataField && x.ID == cellInfo.row.data.ID);\r\n if (typeof _userChange == \"undefined\") {\r\n\r\n let changeSystemField = [];\r\n if (this.data.sqlExpressions.length > 0)\r\n changeSystemField = this.data.sqlExpressions.map(m => m.field);\r\n\r\n this.data.headers.forEach(f => {\r\n if (typeof f.expression.code != \"undefined\")\r\n changeSystemField.push(f.field);\r\n });\r\n\r\n if (typeof changeSystemField.find(x => x == cellInfo.column.dataField) != \"undefined\") {\r\n\r\n this.data.userChangeColumns.push({ header: cellInfo.column.dataField, ID: cellInfo.row.data.ID });\r\n }\r\n }\r\n\r\n\r\n var newRow = false;// typeof e.row.isNewRow == \"undefined\" ? false : e.row.isNewRow;\r\n this.executeSqlExpression(cellInfo.column.dataField, cellInfo.row.data/*, e.row.rowInde x, newRow*/);\r\n }\r\n\r\n\r\n }\r\n\r\n dateTimeMinMaxFormat(_e) {\r\n //this.data.headers[selectedFormatIndex].properties.dateMinMax.\r\n let _datagridHeader = this.data.headers.find(x => x.field == _e.dataField);\r\n if (_datagridHeader.type == \"date\" || _datagridHeader.type == \"datetime\") {\r\n\r\n let minDateTemp: Date = null;\r\n let maxDateTemp: Date = null;\r\n\r\n _datagridHeader.properties.dateMinMax.minToday = typeof _datagridHeader.properties.dateMinMax.minToday == \"undefined\" ? false : _datagridHeader.properties.dateMinMax.minToday;\r\n _datagridHeader.properties.dateMinMax.maxToday = typeof _datagridHeader.properties.dateMinMax.maxToday == \"undefined\" ? false : _datagridHeader.properties.dateMinMax.maxToday;\r\n _datagridHeader.properties.dateMinMax.dateRange = typeof _datagridHeader.properties.dateMinMax.dateRange == \"undefined\" ? null : _datagridHeader.properties.dateMinMax.dateRange;\r\n\r\n if (_datagridHeader.properties.dateMinMax.maxToday && _datagridHeader.properties.dateMinMax.minToday) {\r\n minDateTemp = new Date(new Date().setHours(0, 0, 0, 0));\r\n maxDateTemp = new Date(new Date().setHours(23, 59, 59, 0));\r\n\r\n } else {\r\n\r\n if (_datagridHeader.properties.dateMinMax.minToday) {\r\n minDateTemp = new Date();\r\n if (_datagridHeader.properties.dateMinMax.dateRange != null && _datagridHeader.properties.dateMinMax.dateRange != 0) {\r\n let range: Date = new Date(minDateTemp.getTime() + ((1000 * 60 * 60 * 24) * _datagridHeader.properties.dateMinMax.dateRange));\r\n range = new Date(new Date(range).setHours(23, 59, 59, 0)); // Okunurluk düzeltmesi yap\r\n maxDateTemp = range\r\n } else {\r\n maxDateTemp = null\r\n }\r\n }\r\n\r\n if (_datagridHeader.properties.dateMinMax.maxToday) {\r\n maxDateTemp = new Date(new Date().setHours(23, 59, 59, 0));\r\n if (_datagridHeader.properties.dateMinMax.dateRange != null && _datagridHeader.properties.dateMinMax.dateRange != 0) {\r\n let range: Date = new Date(maxDateTemp.getTime() - ((1000 * 60 * 60 * 24) * _datagridHeader.properties.dateMinMax.dateRange));\r\n range = new Date(new Date(range).setHours(0, 0, 0, 0)); // Okunurluk düzeltmesi yap\r\n minDateTemp = range\r\n } else {\r\n minDateTemp = null\r\n }\r\n }\r\n }\r\n\r\n _e.editorOptions.min = minDateTemp;\r\n _e.editorOptions.max = maxDateTemp;\r\n\r\n }\r\n\r\n }\r\n\r\n isLoadingElements = []\r\n\r\n executeSqlExpression(field, data/* ,rowIndex = null, newRow*/) {\r\n //this.outOfDatagridGetSq lFinish = true;\r\n\r\n let dataCols = this.data.headers.filter(f => f.type == \"combobox\" || f.type == \"datagrid\" || f.type == \"customableCombobox\");\r\n if (this.data.sqlExpressions.length > 0) {\r\n\r\n this.data.sqlExpressions.forEach(exp => {\r\n\r\n\r\n if (exp.query.includes(\"{\" + field + \"}\")) {\r\n let _data = { id: data.ID, field: exp.field, from: field, isLoading: true }\r\n\r\n if (this.isLoadingElements.filter(f => f.id == _data.id && f.field == _data.field).length == 0) {\r\n //console.log(\"eklenen eleman\", _data)\r\n this.isLoadingElements.push(_data)\r\n }\r\n }\r\n\r\n })\r\n\r\n\r\n this.data.sqlExpressions.forEach(exp => {\r\n\r\n let tThis = this;\r\n //let checkExist = setInterval(function () {\r\n // if (tThis.outOfDatagridGetSq lFinish) {\r\n // clearInterval(checkExist);\r\n // tThis.outOfDatagridGetSq lFinish = false;\r\n let replacedQuery = tThis.componentService.cloneModel(exp.query);\r\n let fields = Object.keys(data);\r\n\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = data[f];\r\n if (value != null && typeof value != \"undefined\" && typeof value.getMonth === 'function') {\r\n value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n replacedQuery = tThis.replaceAll(replacedQuery, pref, value);\r\n }\r\n else\r\n replacedQuery = tThis.replaceAll(replacedQuery, pref, value);\r\n });\r\n\r\n\r\n this.outOfDatagridGetSql(replacedQuery, /*rowInde x,*/ exp.connectionStringId, exp.field, /*newRow,*/ field, data).then(val => {\r\n\r\n let findElement = this.isLoadingElements.findIndex(f => f.id == data.ID && f.field == exp.field)\r\n if (typeof findElement != \"undefined\" && findElement != -1) {\r\n this.isLoadingElements.splice(findElement, 1);\r\n }\r\n if (typeof this.cellInfoGlobal != \"undefined\")\r\n this.dataGridOpenDataEvent(this.cellInfoGlobal)\r\n\r\n\r\n });\r\n // }\r\n\r\n //}, 300);\r\n\r\n\r\n\r\n\r\n });\r\n\r\n\r\n\r\n }\r\n }\r\n disabledRowsIDs = []\r\n alertRowsIDs = []\r\n onRowPrepared(event) {\r\n if (event.rowType === \"data\" && this.data.colorExpressions.length > 0) {\r\n // console.log(event)\r\n \r\n this.data.colorExpressions.forEach(expression => {\r\n\r\n let replacedQuery = expression.conditionText\r\n replacedQuery = this.componentService.cloneModel(expression.conditionText);\r\n let fields = Object.keys(event.data);\r\n\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = event.data[f];\r\n if (value != null && typeof value != \"undefined\" && typeof value.getMonth === 'function') {\r\n value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n }\r\n else\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n });\r\n\r\n\r\n let currentExpression = expression.expression\r\n // console.log(expression.pointerEvent)\r\n\r\n if (expression.expression == \"=\") { currentExpression = \"==\" }\r\n let query = event.data[expression.fieldName] + \" \" + currentExpression + \" \" + replacedQuery\r\n if (expression.fieldType == \"number\") {\r\n let functionn = \"if(\" + query.replace(/[\\u200B-\\u200D\\uFEFF]/g, '') + \")\" + \"{return true;} else { return false; }\";\r\n let result = eval('(function() {' + functionn + '}())');\r\n if (result == true) {\r\n //boya\r\n\r\n try {\r\n if (expression.backgroundColor) event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n if (expression.fontColor) event.rowElement.style.color = expression.fontColor;\r\n\r\n if (expression.alert) {\r\n if (this.alertRowsIDs.includes(event.data.ID)) {\r\n }\r\n else {\r\n this.componentService.showAlert(expression.alert, \"error\", 2500)\r\n this.alertRowsIDs.push(event.data.ID)\r\n console.log(event.data.ID)\r\n }\r\n }\r\n if (expression.pointerEvent == \"undefined\" || expression.pointerEvent == false) {\r\n console.log(event.rowElement)\r\n event.rowElement.style.pointerEvents = \"all\";\r\n } else {\r\n console.log(event.rowElement)\r\n\r\n event.rowElement.style.pointerEvents = \"none\";\r\n // console.log(expression.pointerEvent)\r\n this.disabledRowsIDs.push(event.data.ID)\r\n }\r\n //alerti burada verdim ancak asagıda cıkıyor popup gibi isteniyorsa burayı düzeltmelisin.\r\n } catch (err) {\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n if (expression.fieldType == \"string\") {\r\n\r\n if (expression.expression == \"like\") {\r\n if (event.data[expression.fieldName].includes(replacedQuery)) {\r\n if (expression.backgroundColor) event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n if (expression.fontColor) event.rowElement.style.color = expression.fontColor;\r\n if (expression.alert) {\r\n if (this.alertRowsIDs.includes(event.data.ID)) {\r\n }\r\n else {\r\n this.componentService.showAlert(expression.alert, \"error\", 2500)\r\n this.alertRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n if (expression.pointerEvent == false) {\r\n event.rowElement.style.pointerEvents = \"all\";\r\n } else {\r\n event.rowElement.style.pointerEvents = \"none\"; this.disabledRowsIDs.push(event.data.ID);\r\n }\r\n }\r\n }\r\n if (expression.expression == \"startsWith\") {\r\n if (event.data[expression.fieldName].startsWith(replacedQuery)) {\r\n if (expression.backgroundColor) event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n if (expression.fontColor) event.rowElement.style.color = expression.fontColor;\r\n if (expression.alert) {\r\n if (this.alertRowsIDs.includes(event.data.ID)) {\r\n }\r\n else {\r\n this.componentService.showAlert(expression.alert, \"error\", 2500)\r\n this.alertRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n if (expression.pointerEvent == false) {\r\n event.rowElement.style.pointerEvents = \"all\";\r\n } else {\r\n event.rowElement.style.pointerEvents = \"none\"; this.disabledRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n }\r\n if (expression.expression == \"notIncludes\") {\r\n if (!event.data[expression.fieldName].includes(replacedQuery)) {\r\n if (expression.backgroundColor) event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n if (expression.fontColor) event.rowElement.style.color = expression.fontColor;\r\n if (expression.alert) {\r\n if (this.alertRowsIDs.includes(event.data.ID)) {\r\n }\r\n else {\r\n this.componentService.showAlert(expression.alert, \"error\", 2500)\r\n this.alertRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n if (expression.pointerEvent == false) {\r\n event.rowElement.style.pointerEvents = \"all\";\r\n } else {\r\n event.rowElement.style.pointerEvents = \"none\"; this.disabledRowsIDs.push(event.data.ID);\r\n }\r\n }\r\n }\r\n\r\n if (expression.expression == \"endsWith\") {\r\n if (event.data[expression.fieldName].endsWith(replacedQuery)) {\r\n if (expression.backgroundColor) event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n if (expression.fontColor) event.rowElement.style.color = expression.fontColor;\r\n if (expression.alert) {\r\n if (this.alertRowsIDs.includes(event.data.ID)) {\r\n }\r\n else {\r\n this.componentService.showAlert(expression.alert, \"error\", 2500)\r\n this.alertRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n if (expression.pointerEvent == false) {\r\n event.rowElement.style.pointerEvents = \"all\";\r\n } else {\r\n event.rowElement.style.pointerEvents = \"none\"; this.disabledRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n }\r\n if (expression.expression == \"equals\") {\r\n if (event.data[expression.fieldName] == replacedQuery) {\r\n if (expression.backgroundColor) event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n if (expression.fontColor) event.rowElement.style.color = expression.fontColor;\r\n if (expression.alert) {\r\n if (this.alertRowsIDs.includes(event.data.ID)) {\r\n }\r\n else {\r\n this.componentService.showAlert(expression.alert, \"error\", 2500)\r\n this.alertRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n if (expression.pointerEvent == false) {\r\n event.rowElement.style.pointerEvents = \"all\";\r\n } else {\r\n event.rowElement.style.pointerEvents = \"none\"; this.disabledRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n if (expression.fieldType == \"object\") {\r\n if (expression.expression == \"equals\") {\r\n if (event.data[expression.fieldName].toString() == replacedQuery) {\r\n if (expression.backgroundColor) event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n if (expression.fontColor) event.rowElement.style.color = expression.fontColor;\r\n if (expression.alert) {\r\n if (this.alertRowsIDs.includes(event.data.ID)) {\r\n }\r\n else {\r\n this.componentService.showAlert(expression.alert, \"error\", 2500)\r\n this.alertRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n if (expression.pointerEvent == false) {\r\n event.rowElement.style.pointerEvents = \"all\";\r\n } else {\r\n event.rowElement.style.pointerEvents = \"none\"; this.disabledRowsIDs.push(event.data.ID)\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n onInitNewRowBegin(event) {\r\n if (this.data.sqlExpressions.length > 0) {\r\n\r\n this.data.sqlExpressions.forEach(exp => {\r\n\r\n let tThis = this;\r\n\r\n tThis.loadedCompCount = tThis.loadedCompCount + 1;\r\n let replacedQuery = tThis.componentService.cloneModel(exp.query);\r\n\r\n let fields = Object.keys(event.data);\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = event.data[f];\r\n if (value != null && typeof value != \"undefined\" && typeof value.getMonth === 'function') {\r\n value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n replacedQuery = tThis.replaceAll(replacedQuery, pref, value);\r\n }\r\n else\r\n replacedQuery = tThis.replaceAll(replacedQuery, pref, value);\r\n });\r\n\r\n\r\n if ((typeof event.data.ID == \"undefined\" || event.data.ID == \"\") && event.data.ID != 0) {\r\n let firstIdTemp = 1;\r\n if (this.isFirstItemZero) {\r\n firstIdTemp = 0;\r\n this.isFirstItemZero = false;\r\n }\r\n event.data.ID = this.data.value.length === 0 ? firstIdTemp : this.data.value[this.data.value.length - 1].ID + 1;\r\n }\r\n\r\n tThis.outOfDatagridGetSql(replacedQuery, /*rowInde x,*/ exp.connectionStringId, exp.field, /*true,*/ \"\", event.data, false).then(val => {\r\n //let ffffff = event;\r\n //this.onInitRowBottom(event, false);\r\n //let selectedIndex = this.data.value.findIndex(x => x.ID == event.data.ID);\r\n //if (selectedIndex != -1) {\r\n // this.data.value[selectedIndex] = event.data;\r\n //}\r\n //else {\r\n // this.data.value.push(event.data);\r\n //} \r\n });\r\n\r\n\r\n\r\n });\r\n }\r\n }\r\n onInitNewRow(event) {\r\n\r\n //this.showLoadPane l();\r\n\r\n if (event && event.data) {\r\n\r\n if (this.data.selectedDatagrid.length == 0)\r\n this.onInitNewRowBegin(event);\r\n //else {\r\n // //if ((typeof event.data.ID == \"undefined\" || event.data.ID == \"\") && event.data.ID != 0) {\r\n // // let firstIdTemp = 1;\r\n // // if (this.isFirstItemZero) {\r\n // // firstIdTemp = 0;\r\n // // this.isFirstItemZero = false;\r\n // // }\r\n // // event.data.ID = this.data.value.length === 0 ? firstIdTemp : this.data.value[this.data.value.length - 1].ID + 1;\r\n // //}\r\n // //this.onInitRowBottom(event, true);\r\n //}\r\n\r\n\r\n var elemVal_AllHeader = this.data.headers\r\n for (var j = 0; j < elemVal_AllHeader.length; j++) {\r\n\r\n if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && (elemVal_AllHeader[j].type == \"number\" || elemVal_AllHeader[j].type == \"int\" || elemVal_AllHeader[j].type == \"double\")) {\r\n if (!event.data[elemVal_AllHeader[j].field] || event.data[elemVal_AllHeader[j].field] == \"\")\r\n event.data[elemVal_AllHeader[j].field] = 0;\r\n }\r\n else if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"text\") {\r\n if (!event.data[elemVal_AllHeader[j].field] || event.data[elemVal_AllHeader[j].field] == \"\") {\r\n if (elemVal_AllHeader[j].properties && elemVal_AllHeader[j].properties.autoText && elemVal_AllHeader[j].properties.autoText.isAuto) {\r\n\r\n event.data[elemVal_AllHeader[j].field] = elemVal_AllHeader[j].properties.autoText.autoPreText + event.data[\"ID\"];\r\n }\r\n }\r\n }\r\n else if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"checkbox\") {\r\n event.data[elemVal_AllHeader[j].field] = false;\r\n }\r\n else if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"datetime\" || elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"date\") {\r\n event.data[elemVal_AllHeader[j].field] = null;\r\n }\r\n\r\n if ((typeof event.data.ID == \"undefined\" || event.data.ID == \"\") && event.data.ID != 0) {\r\n let firstIdTemp = 1;\r\n if (this.isFirstItemZero) {\r\n firstIdTemp = 0;\r\n this.isFirstItemZero = false;\r\n }\r\n event.data.ID = this.data.value.length === 0 ? firstIdTemp : this.data.value[this.data.value.length - 1].ID + 1;\r\n }\r\n\r\n event.data[elemVal_AllHeader[j].field] = this.getDataGridSelectValue(elemVal_AllHeader[j].field, event.data[elemVal_AllHeader[j].field]);\r\n\r\n }\r\n\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let outFilterDatagrid = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n if (outFilterDatagrid) {\r\n let selectedDatagridElements = outFilterDatagrid.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" &&\r\n ((Array.isArray(x.selectedDatagrid) && typeof x.selectedDatagrid.find(y => y.id == this.data.id) != undefined) ||\r\n (!Array.isArray(x.selectedDatagrid) && x.selectedDatagrid == this.data.id)));\r\n\r\n selectedDatagridElements.forEach(_sde => {\r\n if (typeof this.filteredColumnDatagrid == \"undefined\" || (Array.isArray(this.filteredColumnDatagrid) && this.filteredColumnDatagrid.length == 0)) {\r\n if (_sde.type != \"datagrid\") {\r\n let _filtCol = \"filtercolumnsystem_\" + _sde.id;\r\n let outFilterDatagridFind = outFilterDatagrid.find(xx => xx.id == _sde.id);\r\n event.data[_filtCol] = outFilterDatagridFind ? outFilterDatagridFind.value : \"\";\r\n }\r\n }\r\n else if (_sde.type == \"datagrid\" || _sde.type == \"datalist\") {\r\n if (_sde.selectedRows > 0) {\r\n let sourceCompCols = _sde.selectedDatagrid.filter(x => x.id == this.data.id);\r\n let sourceValue = _sde.value.find(x => x.ID == _sde.selectedRows[0]);\r\n sourceCompCols.forEach(_scc => {\r\n event.data[_scc.field] = sourceValue[_scc.sourceField];\r\n let _dataIndex = this.data.value.findIndex(x => x.ID == event.data.ID);\r\n if (_dataIndex > -1) {\r\n this.data.value[_dataIndex][_scc.field] = sourceValue[_scc.sourceField];\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n }\r\n }\r\n\r\n //onInitRowBottom(event, isInsertId) {\r\n // var elemVal_AllHeader = this.data.headers\r\n // for (var j = 0; j < elemVal_AllHeader.length; j++) {\r\n\r\n // if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && (elemVal_AllHeader[j].type == \"number\" || elemVal_AllHeader[j].type == \"int\" || elemVal_AllHeader[j].type == \"double\")) {\r\n // if (!event.data[elemVal_AllHeader[j].field] || event.data[elemVal_AllHeader[j].field] == \"\")\r\n // event.data[elemVal_AllHeader[j].field] = 0;\r\n // }\r\n // else if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"text\") {\r\n // if (!event.data[elemVal_AllHeader[j].field] || event.data[elemVal_AllHeader[j].field] == \"\") {\r\n // if (elemVal_AllHeader[j].properties && elemVal_AllHeader[j].properties.autoText && elemVal_AllHeader[j].properties.autoText.isAuto) {\r\n\r\n // event.data[elemVal_AllHeader[j].field] = elemVal_AllHeader[j].properties.autoText.autoPreText + event.data[\"ID\"];\r\n // }\r\n // }\r\n // }\r\n // else if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"checkbox\") {\r\n // event.data[elemVal_AllHeader[j].field] = false;\r\n // }\r\n // else if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"datetime\" || elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"date\") {\r\n // event.data[elemVal_AllHeader[j].field] = null;\r\n // }\r\n\r\n // if ((typeof event.data.ID == \"undefined\" || event.data.ID == \"\") && event.data.ID != 0) {\r\n // let firstIdTemp = 1;\r\n // if (this.isFirstItemZero) {\r\n // firstIdTemp = 0;\r\n // this.isFirstItemZero = false;\r\n // }\r\n // event.data.ID = this.data.value.length === 0 ? firstIdTemp : this.data.value[this.data.value.length - 1].ID + 1;\r\n // }\r\n\r\n // event.data[elemVal_AllHeader[j].field] = this.getDataGridSelectValue(elemVal_AllHeader[j].field, event.data[elemVal_AllHeader[j].field]);\r\n\r\n // }\r\n //}\r\n\r\n\r\n outOfDatagridGetSqlReplace(replacedQuery) {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.outOfGridComponentDatas = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n //this.outOfGridComponentDatas = this.componentService.formComponentList;\r\n if (this.outOfGridComponent.length > 0) {\r\n\r\n let sqlExpressionTag = replacedQuery.match(/\\{(\\w|\\.)+\\}/ig);\r\n if (sqlExpressionTag != null && typeof sqlExpressionTag != \"undefined\" && sqlExpressionTag.length > 0) {\r\n\r\n for (let _kk = 0; _kk < sqlExpressionTag.length; _kk++) {\r\n\r\n sqlExpressionTag[_kk] = sqlExpressionTag[_kk].replace(\"{\", \"\").replace(\"}\", \"\");\r\n let isActive;\r\n let isActiveColumnValue = null;\r\n if (sqlExpressionTag[_kk].indexOf(\".\") != -1) {\r\n isActive = this.outOfGridComponentDatas.filter(x => x.id == sqlExpressionTag[_kk].split(\".\")[0]);\r\n if (isActive.length > 0) {//sqlExpressionTag[_kk].split(\".\")[1]\r\n let isActiveTempValue = isActive[0].value.find(x => x.ID == isActive[0].selectedRows[0]);\r\n if (isActiveTempValue)\r\n isActiveColumnValue = isActiveTempValue[sqlExpressionTag[_kk].split(\".\")[1]];\r\n }\r\n //sqlExpressionTag[_kk].split(\".\")[1] \r\n //isActiveColumnValue = this.outOfGridComponentDatas.find(x => x.id == isActive[0].id).value.find(x => x[]==);\r\n }\r\n else\r\n isActive = this.outOfGridComponent.filter(x => x.id == sqlExpressionTag[_kk]);\r\n //let isActive = this.outOfGridComponent.filter(x => x.id == sqlExpressionTag[_kk]);\r\n if (isActive.length > 0) {\r\n //let pref = \"{\" + isActive[0].id + \"}\";\r\n let pref = \"{\" + sqlExpressionTag[_kk] + \"}\";\r\n let value;\r\n if (isActiveColumnValue != null) {\r\n value = isActiveColumnValue;\r\n }\r\n else\r\n value = this.outOfGridComponentDatas.find(x => x.id == isActive[0].id).value;\r\n //let value = this.outOfGridComponentDatas.find(x => x.id == isActive[0].id).value;\r\n if (value != null && typeof value != \"undefined\" && value != \"\") {//true\r\n if (typeof value.getMonth === 'function') {\r\n value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n }\r\n else if (typeof value.match === 'function' && value.match(/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z?/gm)) {\r\n value = value.split(\"T\")[0];\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n }\r\n else\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n }\r\n else {\r\n replacedQuery = \"\";\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n let parametersAll = this.appInfo.RiverEntity.parameters;\r\n Object.keys(parametersAll).forEach(f => {\r\n replacedQuery = this.replaceAll(replacedQuery, f, parametersAll[f]);\r\n });\r\n\r\n return replacedQuery;\r\n }\r\n\r\n outOfDatagridGetSql(replacedQuery, /*rowInde x,*/ connectionStringId, field, /*newRow,*/ fieldGeneral, dataSelected, isExecuteExp = true) {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n let dataSelectedData = dataSelected;\r\n if (typeof dataSelectedData.ID == \"undefined\")\r\n dataSelectedData = dataSelected.data;\r\n //let fullOutComponentValue = []; \r\n\r\n replacedQuery = this.outOfDatagridGetSqlReplace(replacedQuery);\r\n\r\n let sqlExpressionTagControl = replacedQuery.match(/\\{(\\w|\\.)+\\}/ig);;\r\n //let ifControl = false;\r\n if (replacedQuery != \"\" && (sqlExpressionTagControl == null || typeof sqlExpressionTagControl == \"undefined\" || sqlExpressionTagControl.length == 0 || (\r\n (sqlExpressionTagControl.length == 1 && sqlExpressionTagControl[0] == \"{CURRENTUSERID}\")\r\n ))\r\n ) {\r\n // this.isSqlQuery = true;\r\n //this.showLoadPane l();\r\n this.genericService.executeQuerySecurited(replacedQuery, connectionStringId).subscribe((result: any) => {\r\n console.log(result)\r\n if (result && result.length) {\r\n\r\n\r\n let header = this.data.headers.find(f => f.field == field);\r\n if (header.type == \"combobox\" || header.type == \"datagrid\" || header.type == \"customableCombobox\") {\r\n let fields = Object.keys(result[0]);\r\n if (fields && header.type == \"combobox\" || fields && header.type == \"customableCombobox\") {\r\n result.forEach(item => {\r\n if (fields.length == 1) {\r\n item.displayText = item[fields[0]];\r\n }\r\n else {\r\n let displayList = [];\r\n fields.forEach(f => {\r\n if (f != header.valueKey) {\r\n displayList.push(item[f]);\r\n }\r\n });\r\n item.displayText = displayList.join(\",\");\r\n }\r\n item[header.valueKey] = item[header.valueKey].toString();\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n //this.forceRefreshDatagrid();\r\n\r\n if (fieldGeneral != field) {\r\n\r\n let curr = this.selectionGridDataSource.find(f => /*f.index == rowInde x*/f.id == dataSelectedData.ID && f.field == field);\r\n if (curr) {\r\n curr.data = [];\r\n curr.data = result;\r\n }\r\n else {\r\n let arr: any = {};\r\n arr.field = field;\r\n //arr.index = rowInde x;\r\n arr.id = dataSelectedData.ID;\r\n //arr.colIndex = columnIndex;\r\n arr.data = result;\r\n this.selectionGridDataSource.push(arr);\r\n curr = arr;\r\n }\r\n\r\n /* if (newRow && dataSelecte d != null && typeof dataSelecte d.ID != \"undefined\") {\r\n rowInde x = this.data.value.findIndex(x => x.ID == dataSelecte d.ID);\r\n newRow = false;\r\n }*/\r\n // rowInde x = newRow ? this.dataGridEtr.instance.totalCount() : rowInde x;\r\n\r\n //if (rowInde x == -1) {\r\n // let selectedIndex = rowInde x;\r\n // if (newRow && dataSelecte d != null && typeof dataSelecte d.ID != \"undefined\") {\r\n // selectedIndex = this.data.value.findIndex(x => x.ID == dataSelecte d.ID);\r\n // newRow = false;\r\n // }\r\n // if (selectedIndex == -1)\r\n // selectedIndex = 0;\r\n // rowInde x = selectedIndex;\r\n //}\r\n\r\n //var cellObject = this.dataGridEtr.instance.getCellElement(rowInde x, field);\r\n\r\n // if (typeof cellObject != \"undefined\") {\r\n\r\n //var columnIndex = cellObject[\"cellIndex\"];\r\n\r\n //rowInde x = newRow ? 0 : rowInde x;\r\n let _ifConControl = false;\r\n var selectedValue = dataSelectedData[field];//dataSelected this.dataGridEtr.instance.cellValue(rowInde x, field);\r\n if ((typeof selectedValue == \"undefined\" || selectedValue == null || selectedValue == \"\")) {\r\n\r\n this.data.value.find(x => x.ID == dataSelectedData.ID)[field] = \"\";\r\n this.forceRefreshDatagrid();\r\n _ifConControl = true;\r\n }\r\n\r\n var selectedValueFirstVal = this.getDataGridSelectValueWithDataSource(field, result);\r\n\r\n let _userChange = undefined;\r\n if (typeof this.data.userChangeColumns != \"undefined\") {\r\n let _id = dataSelectedData != null && typeof dataSelectedData.ID != \"undefined\" ? dataSelectedData.ID : 1;\r\n _userChange = this.data.userChangeColumns.find(x => x.header == field && x.ID == _id);\r\n }\r\n if (typeof _userChange == \"undefined\") {\r\n\r\n if ((typeof selectedValue == \"undefined\" || selectedValue == null || selectedValue == \"\") && !(typeof selectedValueFirstVal == \"undefined\" || selectedValueFirstVal == null || selectedValueFirstVal == \"\")) {\r\n this.data.value.find(x => x.ID == dataSelectedData.ID)[field] = selectedValueFirstVal;\r\n if (dataSelectedData)\r\n dataSelectedData[field] = selectedValueFirstVal;\r\n\r\n this.forceRefreshDatagrid();\r\n _ifConControl = true;\r\n }\r\n else if (!(typeof selectedValueFirstVal == \"undefined\" || selectedValueFirstVal == null || selectedValueFirstVal == \"\")) {\r\n let selectedIndex = this.data.value.findIndex(x => x.ID == dataSelectedData.ID);\r\n if (selectedIndex != -1) {\r\n this.data.value[selectedIndex][field] = selectedValueFirstVal;\r\n if (dataSelectedData) {\r\n dataSelectedData[field] = selectedValueFirstVal;\r\n }\r\n this.forceRefreshDatagrid();\r\n _ifConControl = true;\r\n }\r\n }\r\n\r\n if (_ifConControl == false)\r\n this.forceRefreshDatagrid();\r\n\r\n }\r\n\r\n\r\n // }\r\n\r\n }\r\n\r\n }\r\n //if (header.type == \"fileviewer\") {\r\n // let fields = Object.keys(result[0]);\r\n\r\n // if (fieldGeneral != field) {\r\n\r\n // //let curr = this.selectionGridDataSource.find(f => f.id == dataSelectedData.ID && f.field == field);\r\n // //if (curr) {\r\n // // curr.data = [];\r\n // // curr.data = result;\r\n // //}\r\n // //else {\r\n // // let arr: any = {};\r\n // // arr.field = field; \r\n // // arr.id = dataSelectedData.ID; \r\n // // arr.data = result;\r\n // // this.selectionGridDataSource.push(arr);\r\n // // curr = arr;\r\n // //}\r\n\r\n // \r\n // }\r\n\r\n //}\r\n else {\r\n let _userChange = undefined;\r\n if (typeof this.data.userChangeColumns != \"undefined\") {\r\n let _id = dataSelectedData != null && typeof dataSelectedData.ID != \"undefined\" ? dataSelectedData.ID : 1;\r\n _userChange = this.data.userChangeColumns.find(x => x.header == field && x.ID == _id);\r\n }\r\n if (typeof _userChange == \"undefined\") {\r\n\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n let finalData = [];\r\n keys.forEach(f => {\r\n finalData.push(result[0][f]);\r\n });\r\n let value = finalData.join(\",\");\r\n\r\n // let rowInde xSelected = rowInde x;\r\n // let selectedIndex = -2;\r\n /* if (newRow && dataSelecte d != null && typeof dataSelecte d.ID != \"undefined\") {\r\n selectedIndex = this.data.value.findIndex(x => x.ID == dataSelecte d.ID);\r\n rowInde xSelected = selectedIndex != -1 ? selectedIndex : rowInde x;\r\n }\r\n else if (dataSelecte d != null && typeof dataSelecte d.ID != \"undefined\") {\r\n selectedIndex = this.data.value.findIndex(x => x.ID == dataSelecte d.ID);\r\n }*/\r\n\r\n\r\n let header = this.data.headers.find(f => f.field == field);\r\n if (header.type == \"picturebox\") {\r\n //let header = this.data.headers.find(f => f.field == field);\r\n //let docs = header.files.filter(f => f.row == dataSelectedData.ID);\r\n\r\n let headerGeneral = this.data.headers.find(f => f.field == fieldGeneral);\r\n let generalName = headerGeneral ? headerGeneral.caption : \"\";\r\n let doc: any = {};\r\n let document: any = {\r\n base64BlobData: value,\r\n name: generalName,\r\n fileType: \"image/png\",\r\n extension: \"png\",\r\n size: -1,\r\n isImg: true\r\n };\r\n doc.row = dataSelectedData.ID;\r\n doc.file = document;\r\n\r\n let docsIndex = header.files.findIndex(f => f.row == dataSelectedData.ID);\r\n if (docsIndex != -1)\r\n header.files[docsIndex] = doc;\r\n else\r\n header.files.push(doc);\r\n //value = doc;\r\n }\r\n else {\r\n if (typeof dataSelectedData != \"undefined\" && typeof dataSelectedData.ID != \"undefined\") {\r\n let selectedIndex = this.data.value.findIndex(x => x.ID == dataSelectedData.ID);\r\n if (selectedIndex != -1) {\r\n this.data.value[selectedIndex][field] = value;\r\n }\r\n //else { \r\n // this.dataGridEtr.instance.cellValue(selectedIndex, field, value);\r\n\r\n // // var cellObject = this.dataGridEtr.instance.getCellElement(rowInde x, field);\r\n //} \r\n\r\n }\r\n\r\n if (dataSelectedData)\r\n dataSelectedData[field] = value;\r\n }\r\n\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n try { this.changeDetectorRef.markForCheck(); } catch (ex) { }\r\n try { this.dataGridEtr.instance.refresh(); } catch (ex) { }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n let _evt = { data: {} };\r\n\r\n if (typeof dataSelectedData != \"undefined\" && typeof dataSelectedData.ID != \"undefined\") {\r\n let _tempValIndex = this.data.value.findIndex(x => x.ID == dataSelectedData.ID);\r\n if (this.data.value[_tempValIndex]) {\r\n _evt.data = this.data.value[_tempValIndex];\r\n if (_evt && _evt.data && isExecuteExp)\r\n this.executeExp(_evt, this.dbQueryTypes['update']);\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n this.changeDetectorRef.detectChanges();\r\n resolve(result)\r\n // this.hideLoadPane l(); \r\n //this.outOfDatagridGetSq lFinish = true;\r\n //this.outOfDatagridGetSq lOpenPopupFinish = true;\r\n\r\n }, error => {\r\n\r\n this.changeDetectorRef.detectChanges();\r\n resolve(null)\r\n //this.outOfDatagridGetSq lFinish = true;\r\n //this.outOfDatagridGetSq lOpenPopupFinish = true;\r\n console.log(error);\r\n // this.hideLoadPane l();\r\n });\r\n }\r\n else {\r\n\r\n this.changeDetectorRef.detectChanges();\r\n resolve(null)\r\n //this.outOfDatagridGetSq lFinish = true;\r\n //this.outOfDatagridGetSq lOpenPopupFinish = true;\r\n // this.hideLoadPane l();\r\n }\r\n })\r\n\r\n }\r\n\r\n dataValRelated = [];\r\n executeExp(event, process_type) {\r\n try {\r\n if (process_type != this.dbQueryTypes.recursiveRelatedRowEvent) {\r\n\r\n this.dataValRelated = [];\r\n\r\n if (!(typeof this.filteredColumnDatagrid == \"undefined\" || (Array.isArray(this.filteredColumnDatagrid) && this.filteredColumnDatagrid.length == 0))) {\r\n\r\n let _filterChangeTemp;\r\n if (Array.isArray(this.filteredColumnDatagrid)) {\r\n let _cols = [];\r\n let _vals = [];\r\n this.filteredColumnDatagrid.forEach(_e => {\r\n _cols.push(_e);\r\n _vals.push(event.data[_e]);\r\n });\r\n _filterChangeTemp = { col: _cols, val: _vals };\r\n }\r\n else {\r\n _filterChangeTemp = { col: this.filteredColumnDatagrid, val: event.data[this.filteredColumnDatagrid] };\r\n }\r\n this.filterOutElement(this.data.id, _filterChangeTemp.val, _filterChangeTemp.col, true)\r\n /* this.filterChangeSqlExecute(_filterChangeTemp);*/\r\n }\r\n\r\n var elemVal_AllHeader = this.data.headers\r\n for (var j = 0; j < elemVal_AllHeader.length; j++) {\r\n if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && (elemVal_AllHeader[j].type == \"number\" || elemVal_AllHeader[j].type == \"int\" || elemVal_AllHeader[j].type == \"double\")) {\r\n if (!event.data[elemVal_AllHeader[j].field] || event.data[elemVal_AllHeader[j].field] == \"\")\r\n event.data[elemVal_AllHeader[j].field] = 0;\r\n }\r\n else if (elemVal_AllHeader[j] && elemVal_AllHeader[j].type && elemVal_AllHeader[j].type == \"text\") {\r\n if (!event.data[elemVal_AllHeader[j].field] || event.data[elemVal_AllHeader[j].field] == \"\") {\r\n if (elemVal_AllHeader[j].properties && elemVal_AllHeader[j].properties.autoText && elemVal_AllHeader[j].properties.autoText.isAuto) {\r\n\r\n event.data[elemVal_AllHeader[j].field] = elemVal_AllHeader[j].properties.autoText.autoPreText + event.data[\"ID\"];\r\n }\r\n }\r\n }\r\n }\r\n //if (process_type == this.dbQueryTypes.delete) {\r\n\r\n //} \r\n this.elementOutOfDatagrid();\r\n }\r\n\r\n this.allowCopy = true;\r\n\r\n if (this.data.showAddButton) {\r\n let elements = this.elementHtml.nativeElement.querySelectorAll('.dx-datagrid-addrow-button');\r\n elements[0].classList.remove(\"dx-state-disabled\");\r\n }\r\n\r\n\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.outOfGridComponentDatas = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n for (let i = 0; i < this.data.headers.length; i++) {\r\n let exp = this.data.headers[i].expression;\r\n\r\n if (exp && typeof (exp.code) != \"undefined\" && exp.code != '') {\r\n\r\n let _userChange = undefined;\r\n if (typeof this.data.userChangeColumns != \"undefined\") {\r\n\r\n _userChange = this.data.userChangeColumns.find(x => x.header == this.data.headers[i].field && x.ID == event.data.ID);\r\n }\r\n if (typeof _userChange == \"undefined\") {\r\n\r\n let thisDataVals = [];\r\n let func = this.componentService.cloneModel(exp.code);\r\n let fields = Object.keys(event.data);\r\n\r\n if (exp.influenceAllRelatedRows) {\r\n\r\n let _iARRC = exp.influenceAllRelatedRowsColumn;\r\n\r\n thisDataVals = _iARRC != \"\" && typeof _iARRC != \"undefined\" && Array.isArray(_iARRC) ?\r\n this.data.value.filter(\r\n function (x) {\r\n let xControl = true;\r\n _iARRC.forEach(x_iARRC => {\r\n xControl = xControl != false ? x[x_iARRC] == event.data[x_iARRC] : false;\r\n });\r\n return xControl;\r\n }\r\n ) : this.data.value;\r\n\r\n\r\n if (thisDataVals.length != this.data.value.length) {\r\n if (process_type != this.dbQueryTypes.recursiveRelatedRowEvent)\r\n this.dataValRelated = this.data.value;\r\n\r\n this.dataValRelated = this.dataValRelated.filter(function (x) {\r\n return !(thisDataVals.map(y => y.ID).indexOf(x.ID) > -1)\r\n });\r\n }\r\n else\r\n this.dataValRelated = [];\r\n\r\n var patternFuncOp = /\\{[a-zA-Z0-9_,'=ıİöÖçÇğĞ()üÜşŞ%\\.]+\\}/ig;\r\n //var pattFuncOp = new RegExp(patternFuncOp);\r\n if ((new RegExp(patternFuncOp)).test(func)) {\r\n func.match(patternFuncOp).forEach(pattF => {\r\n\r\n let patFTemp = pattF.replace(\"{\", \"\").replace(\"}\", \"\");\r\n patFTemp = patFTemp.split(\".\");\r\n let resCalc;\r\n if (patFTemp.length > 1) {\r\n resCalc = this.componentService.cloneModel(this.formulaCommands.find(x => x.id == \".\" + patFTemp[1]).operation);\r\n resCalc = this.replaceAll(resCalc, \"\\\\[count\\\\]\", thisDataVals.length);\r\n resCalc = this.replaceAll(resCalc, \"\\\\[sum\\\\]\", thisDataVals.map(item => item[patFTemp[0]]).reduce((prev, next) => prev + next));\r\n\r\n resCalc = this.replaceAll(resCalc, \"\\\\[max\\\\]\", thisDataVals.map(item => item[patFTemp[0]]).reduce((prev, next) => (prev < next ? next : prev)));\r\n resCalc = this.replaceAll(resCalc, \"\\\\[min\\\\]\", thisDataVals.map(item => item[patFTemp[0]]).reduce((prev, next) => (prev > next ? next : prev)));\r\n //dg_max dg_min\r\n\r\n resCalc = eval(resCalc);\r\n }\r\n else\r\n resCalc = event.data[patFTemp[0]];\r\n\r\n func = this.replaceAll(func, \"{\" + patFTemp.join('.') + \"}\", resCalc);\r\n });\r\n }\r\n\r\n\r\n }\r\n else {\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = event.data[f];\r\n func = this.replaceAll(func, pref, value);\r\n });\r\n }\r\n // });\r\n\r\n this.outOfGridComponent.forEach(f => {\r\n let pref = \"{\" + f.id + \"}\";\r\n let value = this.outOfGridComponentDatas.find(x => x.id == f.id).value;//f.value;//event.data[f];\r\n func = this.replaceAll(func, pref, value)\r\n });\r\n\r\n var pattern = /\\{[a-zA-Z0-9_,'=ıİöÖçÇğĞ()üÜşŞ%]+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n\r\n if (patt.test(func)) {\r\n // \r\n var res_pattern = func.match(pattern);\r\n for (var j = 0; j < res_pattern.length; j++) {\r\n var elem = res_pattern[j];\r\n var elemVal = this.data.headers.find(x => x.field === elem.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (!elemVal) {\r\n elemVal = this.outOfGridComponent.find(x => x.id == elem.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n }\r\n\r\n if (elemVal && elemVal.type && (elemVal.type == \"number\" || elemVal.type == \"int\" || elemVal.type == \"double\")) {\r\n\r\n func = this.replaceAll(func, elem, \"0\");\r\n event.data[elem.replace(\"{\", \"\").replace(\"}\", \"\")] = 0;\r\n }\r\n else if (elemVal && elemVal.type && elemVal.type == \"text\") {\r\n func = this.replaceAll(func, elem, \"\");\r\n event.data[elem.replace(\"{\", \"\").replace(\"}\", \"\")] = \"\";\r\n }\r\n\r\n }\r\n }\r\n\r\n try {\r\n let result = eval(func.replace(/[\\u200B-\\u200D\\uFEFF]/g, ''));\r\n if (exp.influenceAllRelatedRows) {\r\n thisDataVals.forEach(_dV => {\r\n _dV[this.data.headers[i].field] = result;\r\n });\r\n this.forceRefreshDatagrid();\r\n }\r\n else\r\n event.data[this.data.headers[i].field] = result;\r\n } catch (ex) {\r\n console.log(\"River Result ERROR: \" + ex);\r\n // console.error(\"River Result ERROR: \" + ex);\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (exp.export === true && typeof (exp.element) != \"undefined\" && process_type != this.dbQueryTypes.recursiveRelatedRowEvent) {\r\n\r\n let sum = this.componentService.setColSumToElement(exp.element, this.data.headers[i].field, this.data.value, currentFormSelected.components);\r\n this.eventEmitterService.setColumnSumToComponent(exp.element, sum);\r\n }\r\n\r\n\r\n }\r\n\r\n if (this.dataValRelated.length > 0)\r\n this.executeExp({ data: this.dataValRelated[0] }, this.dbQueryTypes.recursiveRelatedRowEvent);\r\n\r\n } catch (_ex_) {\r\n console.error(_ex_.message);\r\n console.error(_ex_.stack);\r\n }\r\n\r\n }\r\n\r\n getDataGridSelectValueWithDataSource(columnField, dataSource) { //cellInfo.column.dataField\r\n let header = this.data.headers.find(x => x.field == columnField);\r\n return header.isDefaultFirstValue && header.isDefaultFirstValue == true && dataSource.length > 0 ? dataSource[0][header.valueKey] : \"\";\r\n }\r\n\r\n getDataGridSelectValue(columnField, _val) { //cellInfo.column.dataField\r\n ///////////////////////////////////////////////////////////////////////////////////////////// \r\n let header = this.data.headers.find(x => x.field == columnField);\r\n //if (header.dataSource.length > 0) {\r\n _val = typeof _val == \"undefined\" || _val == null ? \"\" : _val;\r\n return header.isDefaultFirstValue && header.isDefaultFirstValue == true && header.dataSource.length > 0 ? header.dataSource[0][header.valueKey] : (header.type == \"date\" || header.type == \"datetime\" ? null : _val);\r\n //}\r\n //else {\r\n // let dataCols = this.data.headers.filter(f => f.type == \"combobox\" || f.type == \"datagrid \");\r\n // if (dataCols && dataCols.length > 0) {\r\n // this.prepareDataGridColumn(dataCols, 0, false);\r\n // }\r\n //}\r\n /////////////////////////////////////////////////////////////////////////////////////////////\r\n }\r\n\r\n elementOutOfDatagrid(allEnable = false) {\r\n let elementsOutOfDatagrid = this.componentService.elementsOutOfDatagrid;\r\n if (this.outOfGridComponent.length > 0 && elementsOutOfDatagrid.length > 0) {\r\n this.outOfGridComponent.forEach(f => {\r\n if (elementsOutOfDatagrid.filter(x => x == f.id).length > 0) {\r\n if ((this.data.value.length > 0 && !allEnable) && this.data.outsideElementShouldDisabled) {\r\n f.disabled = true;\r\n } else {\r\n f.disabled = false;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onRowInserting(e) {\r\n\r\n //let selectedDatagridElements = outFilterDatagrid.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" &&\r\n // ((Array.isArray(x.selectedDatagrid) && typeof x.selectedDatagrid.find(y => y.id == this.data.id) != undefined) ||\r\n // (!Array.isArray(x.selectedDatagrid) && typeof x.selectedDatagrid == this.data.i d))) ;\r\n\r\n //let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n //let outFilterDatagrid = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n //if (outFilterDatagrid) {\r\n // let selectedDatagridElements = outFilterDatagrid.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" &&\r\n // ((Array.isArray(x.selectedDatagrid) && typeof x.selectedDatagrid.find(y => y.id == this.data.id) != undefined) ||\r\n // (!Array.isArray(x.selectedDatagrid) && x.selectedDatagrid == this.data.id)));\r\n\r\n // //let selectedDatagridElements = outFilterDatagrid.filter(x => typeof x.selectedDatagrid != \"undefined\" && x.selectedDatagrid != null && x.selectedDatagrid != \"\" && x.selectedDatagrid == this.data.id);\r\n\r\n // selectedDatagridElements.forEach(_sde => {\r\n // //let header = this.data.headers.find(f => f.field == field);\r\n // // if (header.type == \"combobox\" || header.type == \"datagrid \") \r\n // if (typeof this.filteredColumnDatagrid == \"undefined\" || (Array.isArray(this.filteredColumnDatagrid) && this.filteredColumnDatagrid.length == 0)) {\r\n // if (_sde.type != \"datagrid\") {\r\n // let _filtCol = \"filtercolumnsystem_\" + _sde.id;\r\n // let outFilterDatagridFind = outFilterDatagrid.find(xx => xx.id == _sde.id);\r\n // e.data[_filtCol] = outFilterDatagridFind ? outFilterDatagridFind.value : \"\";\r\n // }\r\n // }\r\n // //!(typeof this.filteredColumnDatagrid == \"undefined\" || (Array.isArray(this.filteredColumnDatagrid) && this.filteredColumnDatagrid.length == 0)) &&\r\n // else if (_sde.type == \"datagrid\" || _sde.type == \"datalist\") {\r\n // if (_sde.selectedRows > 0) {\r\n // let sourceCompCols = _sde.selectedDatagrid.filter(x => x.id == this.data.id);\r\n // let sourceValue = _sde.value.find(x => x.ID == _sde.selectedRows[0]);\r\n // sourceCompCols.forEach(_scc => {\r\n // e.data[_scc.field] = sourceValue[_scc.sourceField];\r\n // let _dataIndex = this.data.value.findIndex(x => x.ID == e.data.ID);\r\n // if (_dataIndex > -1) {\r\n // this.data.value[_dataIndex][_scc.field] = sourceValue[_scc.sourceField];\r\n // }\r\n // });\r\n // //field: \"datagridID\"\r\n // //id: \"datagrid2\"\r\n // //sourceField: \"ID\"\r\n\r\n // //1. datagridde seçilen değer\r\n\r\n\r\n // }\r\n\r\n\r\n // }\r\n // });\r\n\r\n //}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n //e.data.ID = e.data.ID;// this.data.value.length === 0 ? 1 : this.data.value[this.data.value.length - 1].ID + 1;\r\n\r\n //let elements = this.elementHtml.nativeElement.querySelectorAll('.dx-datagrid-addrow-button');\r\n //elements[0].classList.remove(\"dx-state-disabled\");\r\n //e.component.refresh(true);\r\n\r\n }\r\n\r\n rowRemoving(event) {\r\n\r\n if (this.data.value.length == 1) {\r\n event.cancel = true;\r\n //this.data.value = [{ ID: 1 }];\r\n //this.forceRefreshDatagrid();\r\n\r\n var _Id = 0\r\n let zeroTemp = this.data.value.find(x => x.ID == _Id);\r\n if (typeof zeroTemp == \"undefined\") {\r\n var clonedItem = Object.assign({}, {}, { ID: _Id, DefaultColumn: 1 });\r\n this.data.value.splice(this.data.value.length, 0, clonedItem);\r\n this.data.value.sort((a, b) => a.ID - b.ID);\r\n }\r\n this.data.value = this.data.value.filter(x => x.ID == 0 && x.DefaultColumn == 1/*values.indexOf(item) === -1*/);\r\n this.getDatasourcePageItem();\r\n this.data.value[0].ID = 1;\r\n this.forceRefreshDatagrid();\r\n\r\n this.elementOutOfDatagrid(true);\r\n }\r\n\r\n this.selectedDatagridChangeFilter(this.data.value[0]);\r\n\r\n\r\n\r\n\r\n //if (this.data.selectedDatagrid && Array.isArray(this.data.selectedDatagrid) && this.data.selectedDatagrid.length > 0) {\r\n // let _thisPage = this;\r\n // this.data.selectedDatagrid.forEach(function (_item) {\r\n // if (_item.id && _item.id != \"\") {\r\n // let itemField = _item.field == null || _item.field == \"\" ? undefined : _item.field ;\r\n // let dataVal = _item.sourceField == null || _item.sourceField == \"\" || typeof _item.sourceField == \"undefined\" ? _thisPage.data.selectedRows[0] :\r\n // _thisPage.data.value[0][_item.sourceField];\r\n // //this.data.selectedDatagridFilterField = this.data.selectedDatagridFilterField == null ? undefined : this.data.selectedDatagridFilterField;\r\n // let _data = { element: _thisPage.data.id, value: dataVal, elementLabel: _thisPage.defaultLanguage.Label, filteredElement: _item.id, filteredColumn: itemField, isDelete: true };\r\n // _thisPage.eventEmitterService.ChangeFilterOutElemen t (_data);\r\n // }\r\n // });\r\n //}\r\n\r\n let _thisPage2 = this;\r\n setTimeout(() => {\r\n _thisPage2.executeExp({ data: event.data }, _thisPage2.dbQueryTypes.recursiveRelatedRowEvent);\r\n\r\n // Satır silindiğinde toplamın tekrar hesaplanması için\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n for (let i = 0; i < this.data.headers.length; i++) {\r\n let exp = this.data.headers[i].expression;\r\n if (exp.export === true && typeof (exp.element) != \"undefined\") {\r\n let sum = this.componentService.setColSumToElement(exp.element, this.data.headers[i].field, this.data.value, currentFormSelected.components);\r\n this.eventEmitterService.setColumnSumToComponent(exp.element, sum);\r\n }\r\n }\r\n\r\n }, 1);\r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n onEditingStart(e) {\r\n\r\n //this.datagridColsSql();\r\n\r\n var added = typeof e.key == \"undefined\" ? true : false;\r\n if (added) {\r\n this.allowCopy = false;\r\n let elements = this.elementHtml.nativeElement.querySelectorAll('.dx-datagrid-addrow-button');\r\n elements[0].classList.add(\"dx-state-disabled\");\r\n\r\n let datagridInstance = this.dataGridEtr.instance;\r\n datagridInstance.saveEditData();\r\n\r\n var _rowIndex = this.data.value.length - 1;\r\n this.newRowShortcut.isActive = true;\r\n this.newRowShortcut.index = _rowIndex;\r\n\r\n //datagridInstance.clearSelection();\r\n //datagridInstance.option(\"focusedRowInde x\", -1); \r\n\r\n\r\n }\r\n else {\r\n\r\n //let selRow = this.data.selectedRows.find(x => x == e.key);\r\n //if (typeof selRow == \"undefined\") {\r\n // this.data.selectedRows = [];\r\n // \r\n // this.data.selectedRows.push(e.key);\r\n //}\r\n }\r\n\r\n\r\n //else\r\n // this.isGridSelection = true;\r\n }\r\n\r\n onCheckboxFieldValueChanged(event, cell) {\r\n if (event.value) {\r\n\r\n cell.setValue(event.value);\r\n this.data.selectedRows = [];\r\n //this.data.selectedRows.pus h(e.key);\r\n }\r\n }\r\n\r\n selectedDatagridChangeFilter(rowData) {\r\n if (this.data.selectedDatagrid && Array.isArray(this.data.selectedDatagrid) && this.data.selectedDatagrid.length > 0) {\r\n\r\n var dataValItems = [];\r\n this.data.selectedDatagrid.forEach(_item => {\r\n if (typeof rowData != \"undefined\") {\r\n let itemField = _item.field == null || _item.field == \"\" ? undefined : _item.field;\r\n let dataVal = _item.sourceField == null || _item.sourceField == \"\" || typeof _item.sourceField == \"undefined\" ? rowData.ID :\r\n rowData[_item.sourceField];\r\n var findDataValItems = dataValItems.find(x => x.filteredElement == _item.id);\r\n if (findDataValItems) {\r\n findDataValItems.value.push(dataVal);\r\n findDataValItems.filteredColumn.push(itemField);\r\n }\r\n else\r\n dataValItems.push({ filteredElement: _item.id, value: [dataVal], filteredColumn: [itemField] });\r\n }\r\n });\r\n\r\n dataValItems.forEach(_item => {\r\n let _data = { element: this.data.id, value: _item.value, elementLabel: this.defaultLanguage.Label, filteredElement: _item.filteredElement, filteredColumn: _item.filteredColumn, isDelete: false, isSqlExecute: true };\r\n this.eventEmitterService.ChangeFilterOutElement(_data);\r\n });\r\n\r\n\r\n\r\n //let _data = { element: this.data.id, value: dataVal, elementLabel: this.defaultLanguage.Label, filteredElement: _item.id, filteredColumn: itemField, isDelete: false, isSqlExecute: true };\r\n //this.eventEmitterService.ChangeFilterOutElemen t (_data);\r\n\r\n\r\n //this.data.selectedDatagrid.forEach(_item => {\r\n // if (_item.id && _item.id != \"\") {\r\n // let itemField = _item.field == null || _item.field == \"\" ? undefined : _item.field;\r\n // let dataVal = _item.sourceField == null || _item.sourceField == \"\" || typeof _item.sourceField == \"undefined\" ? rowData.ID :\r\n // rowData[_item.sourceField];\r\n // //this.data.selectedDatagridFilterField = this.data.selectedDatagridFilterField == null ? undefined : this.data.selectedDatagridFilterField;\r\n // let _data = { element: this.data.id, value: dataVal **, elementLabel: this.defaultLanguage.Label, filteredElement: _item.id, filteredColumn: itemField **, isDelete: false, isSqlExecute: true };\r\n // this.eventEmitterService.ChangeFilterOutElemen t (_data);\r\n // }\r\n //});\r\n }\r\n }\r\n\r\n\r\n // #endregion DATAGRID CHANGE EVENTS ( ADD ROW - UPDATE ROW - DELETE ROW - ONCHANGE CELL )\r\n\r\n\r\n\r\n\r\n // #region DESIGNER\r\n /////////\r\n /// DESIGNER\r\n ////////\r\n\r\n propertiesUndefinedControl(_headerTemp) {\r\n if (typeof _headerTemp.properties == \"undefined\") {\r\n _headerTemp.properties = { \"barcode\": false, \"required\": false, \"isUserUpload\": false, \"autoText\": { isAuto: false, autoPreText: \"\" }, \"roundType\": \"round\", \"dateMinMax\": { minToday: false, maxToday: false, dateRange: null } };\r\n }\r\n\r\n if (typeof _headerTemp.properties.autoText == \"undefined\") {\r\n _headerTemp.properties.autoText = { isAuto: false, autoPreText: \"\" };\r\n }\r\n\r\n if (typeof _headerTemp.properties.dateMinMax == \"undefined\") {\r\n _headerTemp.properties.dateMinMax = { minToday: false, maxToday: false, dateRange: null };\r\n }\r\n\r\n if (typeof _headerTemp.properties.roundType == \"undefined\") {\r\n _headerTemp.properties.roundType = \"round\";\r\n }\r\n\r\n if (typeof _headerTemp.properties.backgroundColor == \"undefined\") {\r\n _headerTemp.properties.backgroundColor = \"\";\r\n }\r\n\r\n if (typeof _headerTemp.properties.color == \"undefined\") {\r\n _headerTemp.properties.color = \"\";\r\n }\r\n\r\n if (typeof _headerTemp.properties.fontWeight == \"undefined\") {\r\n _headerTemp.properties.fontWeight = \"\";\r\n }\r\n\r\n\r\n\r\n\r\n\r\n }\r\n\r\n addEmptyHeader() {\r\n this.headers.name = this.componentService.createuuid();\r\n let header = this.componentService.cloneModel(this.headers);\r\n this.data.headers.push(header);\r\n //this.resetHeaderObject();\r\n }\r\n addHeader() {\r\n localStorage.setItem(\"dataGridHeader\", JSON.stringify(this.headers));\r\n let header: any = JSON.parse(localStorage.getItem(\"dataGridHeader\"));\r\n localStorage.removeItem(\"dataGridHeader\");\r\n this.data.headers.push(header);\r\n this.showToast(\"Eklendi\", \"success\");\r\n //this.resetHeaderObject();\r\n }\r\n deleteAllHeaders() {\r\n let result = confirm(\"\" + this.languageLocal.areYouSure + \"\", this.languageLocal.allColumnDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.data.headers = [];\r\n this.dataGridEtr.instance.option('columns', []);\r\n }\r\n });\r\n }\r\n\r\n deleteHeader(index) {\r\n let hasSqlScriptArr = this.data.sqlExpressions.filter(el => this.data.headers[index].field == el.field)\r\n if (hasSqlScriptArr.length > 0) {\r\n this.showToast(\"Sql Scripti mevcut lütfen önce script'i siliniz\", \"warning\");\r\n return;\r\n }\r\n let result = confirm(\"\" + this.languageLocal.areYouSure + \"\", this.languageLocal.columnDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.data.headers.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n addColPermission(header) {\r\n this.selectedColPermission = header.permissions;\r\n this.perCol = header.field;\r\n this.colPermissionPopup = true;\r\n }\r\n\r\n addColLanguage(header) {\r\n this.selectedColLanguage = header.language;\r\n this.colLanguagePopup = true;\r\n }\r\n\r\n selectedHeaderType = \"\";\r\n dataGridSettings(index) {\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n\r\n this.selectedHeaderType = this.data.headers[index].type;\r\n\r\n if (this.data.headers[index].type == 'fileviewer') {\r\n this.selectedConnection = this.data.headers[index].sqlColumnSettings.connectionStringId || 0;\r\n this.data.headers[index].sqlColumnSettings.connectionStringId = this.selectedConnection;\r\n }\r\n else {\r\n this.selectedConnection = this.data.headers[index].dataGridSettings.connectionStringId || 0;\r\n this.data.headers[index].dataGridSettings.connectionStringId = this.selectedConnection;\r\n }\r\n\r\n this.selectedHeaderIndex = index;\r\n this.dataGridSettingsPopop = true;\r\n }\r\n\r\n mapSettingsPopop = false;\r\n mapSetting(index) {\r\n this.selectedHeaderIndex = index;\r\n // userChangeDraggable \r\n this.data.headers[this.selectedHeaderIndex].draggable = typeof this.data.headers[this.selectedHeaderIndex].draggable != \"undefined\" ? this.data.headers[this.selectedHeaderIndex].draggable : false;\r\n this.data.headers[this.selectedHeaderIndex].isAddMultipleMarker = typeof this.data.headers[this.selectedHeaderIndex].isAddMultipleMarker != \"undefined\" ? this.data.headers[this.selectedHeaderIndex].isAddMultipleMarker : false;\r\n this.data.headers[this.selectedHeaderIndex].userChangeDraggable = typeof this.data.headers[this.selectedHeaderIndex].userChangeDraggable != \"undefined\" ? this.data.headers[this.selectedHeaderIndex].userChangeDraggable : true;\r\n this.data.headers[this.selectedHeaderIndex].maxMarkerLimit = typeof this.data.headers[this.selectedHeaderIndex].maxMarkerLimit != \"undefined\" ? this.data.headers[this.selectedHeaderIndex].maxMarkerLimit : 0;\r\n this.mapSettingsPopop = true;\r\n }\r\n openFormatPopup(i) {\r\n\r\n this.selectedFormatIndex = i;\r\n let _header = this.data.headers[i];\r\n\r\n this.propertiesUndefinedControl(_header);\r\n\r\n this.formatHeaderType = _header.type;\r\n if (_header.type == \"date\" || _header.type == \"datetime\") {\r\n\r\n let defaultFormat = _header.type == \"date\" ? \"dd/MM/yyyy\" : \"dd/MM/yyyy HH:mm\";\r\n let _format = _header.format && _header.format != \"\" && _header.format != \"#,##0.00\" ? _header.format : defaultFormat;\r\n this.data.headers[i].format = _format;\r\n }\r\n else {\r\n if (typeof this.data.headers[i].format == \"undefined\" || this.data.headers[i].format == \"\" || this.data.headers[i].format.indexOf(\"##\") == -1)\r\n this.data.headers[i].format = \"#,##0.00\";\r\n }\r\n this.showFormatPopup = true;\r\n }\r\n openFuncPopup(i) {\r\n\r\n this.isMonacoLoaded = false;\r\n this.selectedFuncIndex = i;\r\n let exp = this.data.headers[i].expression;\r\n this.headerExpression.code = exp.code;\r\n this.headerExpression.export = exp.export;\r\n this.headerExpression.element = exp.element;\r\n\r\n this.headerExpression.influenceAllRelatedRows = typeof exp.influenceAllRelatedRows == \"undefined\" ? false : exp.influenceAllRelatedRows;\r\n this.headerExpression.influenceAllRelatedRowsColumn = typeof exp.influenceAllRelatedRowsColumn == \"undefined\" || exp.influenceAllRelatedRowsColumn == \"\" ? [] : exp.influenceAllRelatedRowsColumn;\r\n\r\n this.showFuncPopup = true;\r\n setTimeout(() => { this.isMonacoLoaded = true; }, 1000);\r\n }\r\n\r\n saveFuncParam() {\r\n let exp: any = {};\r\n exp.code = this.headerExpression.code;\r\n exp.export = this.headerExpression.export;\r\n exp.element = this.headerExpression.element;\r\n exp.influenceAllRelatedRows = this.headerExpression.influenceAllRelatedRows;\r\n exp.influenceAllRelatedRowsColumn = this.headerExpression.influenceAllRelatedRowsColumn;\r\n this.data.headers[this.selectedFuncIndex].expression = exp;\r\n this.selectedFuncIndex = -1;\r\n this.headerExpression = new HeaderExpression();\r\n this.showFuncPopup = false;\r\n }\r\n\r\n monacoOnInit(e, isOutOfGridComponent, monacolanguage) {\r\n this.isMonacoLoaded = true;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco, isOutOfGridComponent, monacolanguage);\r\n }\r\n\r\n setCustomKeywords(monaco, isOutOfGridComponent, monacolanguage) {\r\n\r\n if (this.registeredLanguage)\r\n this.registeredLanguage.dispose();\r\n\r\n this.registeredLanguage = monaco.languages.registerCompletionItemProvider(monacolanguage, {\r\n provideCompletionItems: () => {\r\n var suggestions = [];\r\n\r\n for (let i = 0; i < this.data.headers.length; i++) {\r\n suggestions.push({\r\n label: this.data.headers[i].field,\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"{\" + this.data.headers[i].field + \"}\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n })\r\n }\r\n\r\n if (isOutOfGridComponent) {\r\n for (let i = 0; i < this.outOfGridComponent.length; i++) {\r\n suggestions.push({\r\n label: this.outOfGridComponent[i].id,\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"{\" + this.outOfGridComponent[i].id + \"}\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n })\r\n }\r\n }\r\n\r\n if (this.headerExpression.influenceAllRelatedRows) {\r\n for (let i = 0; i < this.formulaCommands.length; i++) {\r\n suggestions.push({\r\n label: this.formulaCommands[i].id,\r\n kind: monaco.languages.CompletionItemKind.Property,\r\n insertText: \"\" + this.formulaCommands[i].id.replace(\".\", \"\") + \"\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'property'\r\n })\r\n }\r\n }\r\n return { suggestions: suggestions };\r\n },\r\n triggerCharacters: [\".\"]\r\n });\r\n }\r\n\r\n connectionListValueChanged(event) {\r\n this.selectedConnection = event.value;\r\n //let connectionStr = this.createConnectionString();\r\n if (event.value > 0) {\r\n if (this.selectedHeaderType == 'fileviewer')\r\n this.data.headers[this.selectedHeaderIndex].sqlColumnSettings.connectionStringId = event.value;\r\n else\r\n this.data.headers[this.selectedHeaderIndex].dataGridSettings.connectionStringId = event.value;\r\n\r\n this.genericService.getTables(event.value).subscribe((result: any) => {\r\n this.tableList = result;\r\n });\r\n }\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n\r\n let _control = true;\r\n const pattern = /[A-Za-z_]/;\r\n if (!pattern.test(this.data.id[0]))\r\n _control = false;\r\n if (_control) {\r\n this.showSettingPopup = false;\r\n\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n // this.applyHeadersToDataGrid();\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n\r\n this.headers.dataGridSettings.key = \"\";\r\n this.headers.dataGridSettings.formFields = [];\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n }\r\n else\r\n this.showToast(this.languageLocal.idCantStartNumber, \"warning\");\r\n\r\n }\r\n cancelSetting() {\r\n\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n this.CreateDatagridColumns();\r\n }\r\n });\r\n\r\n }\r\n\r\n colShorting(event: CdkDragDrop) {\r\n moveItemInArray(this.data.headers, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n colShortingChangeEvent(event: CdkDragDrop) {\r\n\r\n moveItemInArray(this.data.sqlExpressions, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n showMonacoEditorColumnSqlScript = false;\r\n openSqlExpressioPopup() {\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n this.showSqlExpressioPopup = true;\r\n setTimeout(() => { this.showMonacoEditorColumnSqlScript = true; }, 1000);\r\n }\r\n\r\n addSqlExpression() {\r\n\r\n let evt = this.data.sqlExpressions.find(f => f.field == this.sqlExpression.field);\r\n if (typeof evt == \"undefined\" && this.sqlExpression.field != \"\") {\r\n this.data.sqlExpressions.push(this.componentService.cloneModel(this.sqlExpression));\r\n }\r\n }\r\n\r\n deleteSqlExpressions(i) {\r\n this.data.sqlExpressions.splice(i, 1);\r\n }\r\n\r\n closeSqlExpressioPopup() {\r\n this.showSqlExpressioPopup = false;\r\n this.showMonacoEditorColumnSqlScript = false;\r\n this.componentService.elementsOutOfDatagrid = [];\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let componentList = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n if (typeof this.data.sqlExpressions != \"undefined\" && this.data.sqlExpressions != null && typeof this.data.sqlExpressions.length != \"undefined\") {\r\n for (let i = 0; i < this.data.sqlExpressions.length; i++) {\r\n\r\n let sqlExpressionTag = this.data.sqlExpressions[i].query.match(/\\{(\\w)+\\}/ig);;\r\n if (typeof sqlExpressionTag != \"undefined\" && sqlExpressionTag != null) {\r\n for (let j = 0; j < sqlExpressionTag.length; j++) {\r\n if (sqlExpressionTag != null && typeof sqlExpressionTag != \"undefined\" && sqlExpressionTag.length > 0) {\r\n sqlExpressionTag[j] = sqlExpressionTag[j].replace(\"{\", \"\").replace(\"}\", \"\");\r\n let isActive;\r\n if (sqlExpressionTag[j].indexOf(\".\") != -1) {\r\n isActive = this.outOfGridComponentDatas.filter(x => x.id == sqlExpressionTag[j].split(\".\")[0]);\r\n }\r\n else\r\n isActive = componentList.filter(x => x.id == sqlExpressionTag[j]);\r\n\r\n //let isActive = componentList.filter(x => x.id == sqlExpressionTag[j]);\r\n if (isActive.length > 0)\r\n this.componentService.elementsOutOfDatagrid.push(sqlExpressionTag[j]);\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n exportElements = [];\r\n exportChange(val) {\r\n\r\n if (val) {\r\n this.exportElements = this.componentService.getComponentsByComponentName(\"DxFormResultComponent\", this.anotherPopupId).map(m => m.id);\r\n }\r\n else {\r\n this.funcParamData.element = \"\";\r\n this.funcParamData.export = false;\r\n this.exportElements = [];\r\n }\r\n }\r\n influenceAllRelatedRowsElements = [];\r\n influenceAllRelatedRowsChange(val) {\r\n\r\n if (val) {\r\n this.influenceAllRelatedRowsElements = this.data.headers.map(m => m.field);\r\n }\r\n else {\r\n this.funcParamData.influenceAllRelatedRowsColumn = [];\r\n this.funcParamData.influenceAllRelatedRows = false;\r\n this.influenceAllRelatedRowsElements = [];\r\n }\r\n }\r\n\r\n // #endregion DESIGNER\r\n\r\n\r\n excelExport() {\r\n this.excelTemplateDownloadHtml = \"\";\r\n let _headerHtml = \"\";\r\n this.data.headers.forEach(f => {\r\n _headerHtml = _headerHtml + \"\" + f.caption + \"\";\r\n });\r\n _headerHtml = \"\" + \"ID\" + _headerHtml + \"\";\r\n\r\n let _rowHtml = \"\";\r\n if (this.data.value.length > 0) {\r\n this.data.value.forEach(fVal => {\r\n let _fVal = this.componentService.cloneModel(fVal);\r\n let _cellsHtml = \"\";\r\n this.data.headers.forEach(f => {\r\n let _val = _fVal[f.field];\r\n if (typeof _val == \"undefined\" || _val == null) {\r\n if (f.type == \"int\" || f.type == \"double\")\r\n _val = \"0\";\r\n else\r\n _val = \"\";\r\n }\r\n else if (f.type == \"date\" || f.type == \"datetime\") {\r\n if (_val != null && typeof _val != \"undefined\" && _val != \"\") {\r\n let _timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n if (typeof _val.getMonth !== 'function')\r\n _val = new Date(_val);\r\n if (typeof _val.getMonth === 'function') {\r\n _val = _val.toLocaleString('tr-TR', { timeZone: _timeZone })\r\n if (f.type == \"date\")\r\n _val = _val.split(\" \")[0];\r\n }\r\n else\r\n _val = _fVal[f.field];\r\n }\r\n }\r\n else if (f.type == \"combobox\" || f.type == \"datagrid\") {\r\n let _valArray = this.selectionGridDataSource.find(x => x.id == fVal.ID && x.field == f.field);\r\n _valArray = typeof _valArray == \"undefined\" ? f.dataSource : _valArray.data;\r\n\r\n if (_valArray) {\r\n let _valData = _valArray.find(x => x[f.valueKey] == _val);\r\n if (_valData) {\r\n if (f.type == \"combobox\")\r\n _val = _valData.displayText;\r\n else\r\n _val = _valData[f.displayKey];\r\n }\r\n\r\n }\r\n }\r\n _cellsHtml = _cellsHtml + \"\" + _val + \"\"\r\n //let pref = \"{\" + f + \"}\";\r\n //let value = fVal[f];\r\n //func = this.replaceAll(func, pref, value);\r\n });\r\n\r\n _rowHtml = _rowHtml + \"\" + \"\" + _fVal.ID + \"\" + _cellsHtml + \"\";\r\n\r\n });\r\n }\r\n this.excelTemplateDownloadHtml = _headerHtml + _rowHtml;\r\n\r\n //_rowHtml = \"\" + _rowHtml + \"\";\r\n\r\n //this.excelTemplateDownloadHtml = _headerHtml + _rowHtml;\r\n\r\n setTimeout(() => {\r\n let XLSX = window[\"XLSX\"];//data-table-template-{{data.id}}, {raw:true}\r\n var elt = document.getElementById('data-table-template-' + this.data.id);\r\n elt.innerHTML = _headerHtml + _rowHtml\r\n var wb = XLSX.utils.table_to_book(elt, { sheet: \"Sheet JS\", raw: true });\r\n return XLSX.writeFile(wb, ((this.defaultLanguage ? this.defaultLanguage.Label : \"Datagrid\") + '.' + 'xlsx'));\r\n }, 1000);\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n // #region EXCEL IMPORT\r\n /////////\r\n /// EXCEL IMPORT\r\n ////////\r\n excelImportInputButtonDisabled = true;\r\n excelFileGlobal = null;\r\n json_ArrayExcel = [];\r\n excelImportCloseButton = true;\r\n excelImportPopupHeight = 510;\r\n _nExcelImportLoading = 0;\r\n _excelRowIndex = 0;\r\n _tickProcess = 0;\r\n excelTemplateDownloadHtml = \"\";\r\n excelImportText = \"
Dosya Seçiniz
\";\r\n excelImportTextError = \"
UYARI: Yüklemek istediğiniz satır sayısının fazla olması durumunda, internet tarayıcınızda (BEKLE) uyarısı gelebilir. Bu durumda ekranı kapatmayınız ve lütfen bekleyiniz.
\";\r\n excelImportPerformance = \"\";\r\n logExcelText = \"\";\r\n excelVisiblePopup = false;\r\n excelImport() {\r\n this.excelImportInputButtonDisabled = false;\r\n this._tickProcess = 0;\r\n this.excelImportText = \"
Dosya Seçiniz
\";\r\n this.excelImportTextError = \"
UYARI: Yüklemek istediğiniz satır sayısının fazla olması durumunda, internet tarayıcınızda (BEKLE) uyarısı gelebilir. Bu durumda ekranı kapatmayınız ve lütfen bekleyiniz.
\";\r\n this.excelImportPerformance = \"\";\r\n this.logExcelText = \"\";\r\n this.excelVisiblePopup = true;\r\n this.uploaderExcel.nativeElement.value = '';\r\n this._excelRowIndex = 0;\r\n this.excelImportCloseButton = true;\r\n this.excelImportPopupHeight = 510;\r\n this.json_ArrayExcel = [];\r\n this._nExcelImportLoading = 0;\r\n this.setLogExcelText(\"Excel Seçiliyor.\");\r\n this.excelFileGlobal = null;\r\n (document.querySelector('.dx-trackbar-range.dx-progressbar-range')).style.minWidth = '0px';\r\n\r\n this.uploaderExcel.nativeElement.click();\r\n }\r\n excelTemplateDownload() {\r\n this.excelTemplateDownloadHtml = \"\";\r\n let _headerHtml = \"\";\r\n let _rowHtml = \"\";\r\n this.data.headers.forEach(f => {\r\n _headerHtml = _headerHtml + \"\" + f.field + \"\";\r\n if (f.type == \"double\") {\r\n _rowHtml = _rowHtml + \"0\";\r\n }\r\n else if (f.type == \"int\") {\r\n _rowHtml = _rowHtml + \"0\";\r\n }\r\n else if (f.type == \"checkbox\") {\r\n _rowHtml = _rowHtml + \"false\";\r\n }\r\n else if (f.type == \"map\") {\r\n _rowHtml = _rowHtml + \"\";\r\n }\r\n else if (f.type == \"combobox\") {\r\n _rowHtml = _rowHtml + \"\";\r\n }\r\n else if (f.type == \"customableCombobox\") {\r\n _rowHtml = _rowHtml + \"\";\r\n }\r\n else {\r\n _rowHtml = _rowHtml + \"\";\r\n }\r\n });\r\n _headerHtml = \"\" + _headerHtml + \"\";\r\n _rowHtml = \"\" + _rowHtml + \"\";\r\n\r\n this.excelTemplateDownloadHtml = _headerHtml + _rowHtml;\r\n\r\n setTimeout(() => {\r\n let XLSX = window[\"XLSX\"];//data-table-template-{{data.id}}\r\n var elt = document.getElementById('data-table-template-' + this.data.id);\r\n elt.innerHTML = _headerHtml + _rowHtml;\r\n var wb = XLSX.utils.table_to_book(elt, { sheet: \"Sheet JS\" });\r\n return XLSX.writeFile(wb, ('Template.' + ('xlsx')));\r\n }, 1000);\r\n\r\n }\r\n excelImportFile(e) {\r\n\r\n this.excelImportInputButtonDisabled = true;\r\n this.excelImportCloseButton = false;\r\n var parts = [];\r\n var file = e.target.files[0];\r\n this.excelFileGlobal = file;\r\n var fileSize = file.size;\r\n var sliceSize = parseInt((fileSize / 15).toString());\r\n var count = Math.ceil(fileSize / sliceSize);\r\n var index = 0;\r\n\r\n this.excelImportText = \"
\" + file.name + \" isimli excel içeri aktarılıyor.
\";\r\n\r\n this.setLogExcelText(\"Excel Yükleniyor.\");\r\n\r\n this.excelLoadingChange(this, 1);\r\n this.chunkFile(index, sliceSize, file, parts, count);\r\n\r\n }\r\n\r\n // var start = window.performance.now();\r\n //var end = window.performance.now();\r\n //var time = end - start;\r\n millisToMinutesAndSeconds(millis) {\r\n var minutes = Math.floor(millis / 60000);\r\n var seconds = parseInt(((millis % 60000) / 1000).toFixed(0));\r\n seconds = seconds == 60 ? 59 : seconds;\r\n return (minutes == 0 ? \"\" : (minutes + \" dakika \")) + (seconds < 10 ? '0' : '') + seconds + \" saniye\";\r\n }\r\n excelPerformanceStart = 0;\r\n excelPerformanceEnd = 0;\r\n excelPerformanceTotal = 0;\r\n //excelImportPopupHeight = 510; //excelImportPerformance;45 excelImportTextError;64\r\n excelRowImport(tThis, deleteFirstColumn) {\r\n if (tThis.json_ArrayExcel.length > 0) {\r\n\r\n if (tThis._excelRowIndex == 0) {\r\n tThis.excelPerformanceStart = window.performance.now();\r\n }\r\n\r\n if (tThis._excelRowIndex == 100) {\r\n tThis.excelPerformanceEnd = window.performance.now();\r\n tThis.excelPerformanceTotal = tThis.excelPerformanceEnd - tThis.excelPerformanceStart;\r\n }\r\n\r\n if (tThis._excelRowIndex > 100) {\r\n tThis.excelImportPopupHeight = tThis.excelImportPopupHeight == 510 ? 555 : tThis.excelImportPopupHeight;\r\n let msTemp = tThis.excelPerformanceTotal * (tThis.json_ArrayExcel.length - tThis._excelRowIndex) / 100;\r\n tThis.excelImportPerformance = \"
Tahmini Süre: \" + tThis.millisToMinutesAndSeconds(msTemp) + \"
\";\r\n }\r\n\r\n let _obj = {};\r\n\r\n\r\n\r\n if (deleteFirstColumn && tThis.data.value.length == 1) {\r\n let firstIdIndex = this.data.value.findIndex(x => x.ID == 1);\r\n if (firstIdIndex != -1) {\r\n var _dataValueFirst = this.data.value[firstIdIndex];\r\n if (_dataValueFirst && _dataValueFirst.DefaultColumn == 1)\r\n this.data.value[firstIdIndex].ID = 0;\r\n }\r\n }\r\n\r\n var _ID = tThis.data.value.length == 0 ? 1 : (tThis.data.value[tThis.data.value.length - 1].ID) + 1;\r\n\r\n //let _rowIndex = tThis.data.value.length; \r\n tThis.data.headers.forEach(f => {\r\n if (f.type == \"double\") {\r\n _obj[f.field] = parseFloat(tThis.json_ArrayExcel[tThis._excelRowIndex][f.field]);\r\n }\r\n else if (f.type == \"int\") {\r\n _obj[f.field] = parseInt(tThis.json_ArrayExcel[tThis._excelRowIndex][f.field]);\r\n }\r\n else if (f.type == \"checkbox\") {\r\n _obj[f.field] = tThis.json_ArrayExcel[tThis._excelRowIndex][f.field] == true || tThis.json_ArrayExcel[tThis._excelRowIndex][f.field] == \"true\" ? true : false;\r\n }\r\n else if (f.type == \"map\") {\r\n _obj[f.field] = JSON.parse(\"{\" + tThis.json_ArrayExcel[tThis._excelRowIndex][f.field] + \"}\");\r\n }\r\n else if (f.type == \"combobox\") {\r\n var _dataSource = tThis.selectionGridDataSource.find(k => k.id == _ID && k.field == f.field);\r\n var _dataSourceLast = typeof _dataSource == \"undefined\" ? f.dataSource : _dataSource.data;\r\n\r\n let fieldsValue = _dataSourceLast.find(x => x.displayText == tThis.json_ArrayExcel[tThis._excelRowIndex][f.field]);\r\n let _val = tThis.json_ArrayExcel[tThis._excelRowIndex][f.field];\r\n if (fieldsValue) {\r\n _val = fieldsValue[f.valueKey];\r\n }\r\n\r\n _obj[f.field] = _val;\r\n }\r\n else if (f.type == \"customableCombobox\") {\r\n var _dataSource = tThis.selectionGridDataSource.find(k => k.id == _ID && k.field == f.field);\r\n var _dataSourceLast = typeof _dataSource == \"undefined\" ? f.dataSource : _dataSource.data;\r\n\r\n let fieldsValue = _dataSourceLast.find(x => x.displayText == tThis.json_ArrayExcel[tThis._excelRowIndex][f.field]);\r\n let _val = tThis.json_ArrayExcel[tThis._excelRowIndex][f.field];\r\n if (fieldsValue) {\r\n _val = fieldsValue[f.valueKey];\r\n }\r\n\r\n _obj[f.field] = _val;\r\n }\r\n else if (f.type == \"date\") { //header.type == \"date\" || header.type == \"datetime\" 2017-03-16T17:46:53.677 \r\n\r\n let _v = tThis.json_ArrayExcel[tThis._excelRowIndex][f.field]; // / . - dd/MM/yyyy HH:mm\r\n if (_v.indexOf(\"T\") > -1) {\r\n let _dateTemp = new Date(Date.parse(_v));\r\n _dateTemp.setHours(_dateTemp.getHours() + 1);\r\n\r\n let _day = _dateTemp.getDate() < 10 ? \"0\" + _dateTemp.getDate() : _dateTemp.getDate();\r\n let _mon = (_dateTemp.getMonth() + 1) < 10 ? \"0\" + (_dateTemp.getMonth() + 1) : (_dateTemp.getMonth() + 1);\r\n let _yer = _dateTemp.getFullYear();\r\n\r\n _obj[f.field] = _yer + \"-\" + _mon + \"-\" + _day + \"T00:00:00Z\"\r\n }\r\n else {\r\n let _format = f.format;\r\n\r\n let splitSeperant = \"/\";\r\n if (_format.length > 3) {\r\n splitSeperant = _format[2];\r\n let _date = _v.split(splitSeperant);\r\n let _dateFormat = _format.split(splitSeperant);\r\n // let _day = \"\", _mon = \"\", _yer = \"\"; \r\n // let _day = _dateFormat[0] == \"dd\" ? _date[0] : (_dateFormat[1] == \"dd\" ? _date[1] : (_dateFormat[2].indexOf(' ')>-1?(): _dateFormat[2] == \"dd\")); \r\n\r\n let _day = tThis.getDateParse(\"dd\", _dateFormat, _date, 0);\r\n let _mon = tThis.getDateParse(\"MM\", _dateFormat, _date, 0);\r\n let _yer = tThis.getDateParse(\"yyyy\", _dateFormat, _date, 0);\r\n\r\n //let _hor = \"\", _min = \"\";\r\n //if (_date[2].indexOf(' ') > -1) {\r\n // let sepDot = _date[2].split(' ')[0].split(':');\r\n // if (sepDot.length > 1) {\r\n // _hor = sepDot[0];\r\n // _min = sepDot[1];\r\n // }\r\n //} \r\n\r\n\r\n _obj[f.field] = _yer + \"-\" + _mon + \"-\" + _day + \"T00:00:00Z\" //2022-02-16T12:02:00Z;//tThis.json_ArrayExcel[tThis._excelRowIndex][f.field];\r\n }\r\n }\r\n }\r\n //else if (f.type == \"datetime\") { \r\n // \r\n // let _v = tThis.json_ArrayExcel[tThis._excelRowIndex][f.field]; // / . - dd/MM/yyyy HH:mm\r\n // let _format = f.format;\r\n\r\n // let splitSeperant = \"/\";\r\n // if (_format.length > 3) {\r\n // splitSeperant = _format[2];\r\n // let _date = _v.split(splitSeperant);\r\n // let _dateFormat = _format.split(splitSeperant);\r\n\r\n // \r\n // let _day = tThis.getDateParse(\"dd\", _dateFormat, _date, 0);\r\n // let _mon = tThis.getDateParse(\"MM\", _dateFormat, _date, 0);\r\n // let _yer = tThis.getDateParse(\"yyyy\", _dateFormat, _date, 0);\r\n\r\n // let _hor = \"\", _min = \"\";\r\n // if (_date[2].indexOf(' ') > -1) {\r\n // let sepDot = _date[2].split(' ')[0].split(':');\r\n // if (sepDot.length > 1) {\r\n // _hor = sepDot[0];\r\n // _min = sepDot[1];\r\n // }\r\n // } \r\n // console.log(_day + \" - \" + _mon + \" - \" + _yer /*+ \" - \" + _hor + \" - \" + _min*/);\r\n // \r\n\r\n // _obj[f.field] = _yer + \"-\" + _mon + \"-\" + _day + \"T00:00:00Z\" //2022-02-16T12:02:00Z;//tThis.json_ArrayExcel[tThis._excelRowIndex][f.field];\r\n // }\r\n //}\r\n else {\r\n _obj[f.field] = tThis.json_ArrayExcel[tThis._excelRowIndex][f.field];\r\n }\r\n\r\n });\r\n\r\n tThis.addNewRowOrClone(/*_rowIndex,*/ _obj, null);\r\n\r\n tThis.updateLogExcelText(/(\\d+) satır aktarıldı. \\(Toplam (\\d+) Satır\\)<\\/span>/g, \"\" + (tThis._excelRowIndex + 1) + \" satır aktarıldı. (Toplam \" + (tThis.json_ArrayExcel.length) + \" Satır)\");\r\n\r\n tThis.excelLoadingChange(tThis, tThis._nExcelImportLoading);\r\n\r\n\r\n if (tThis._excelRowIndex == 0) {\r\n deleteFirstColumn = false;\r\n let zeroIdIndex = this.data.value.findIndex(x => x.ID == 0);\r\n if (zeroIdIndex != -1)\r\n this.data.value.splice(zeroIdIndex, 1);\r\n }\r\n\r\n tThis._excelRowIndex = tThis._excelRowIndex + 1;\r\n if (tThis._excelRowIndex < tThis.json_ArrayExcel.length) {\r\n setTimeout(() => { tThis.excelRowImport(tThis, false); }, 1);\r\n }\r\n else {\r\n setTimeout(() => {\r\n tThis._tickProcess = 100;\r\n }, 1);\r\n tThis.excelImportPerformance = \"\";\r\n tThis.excelImportTextError = \"\";\r\n tThis.excelImportInputButtonDisabled = false;\r\n tThis.excelImportCloseButton = true;\r\n tThis.excelImportPopupHeight = 446;// this.excelImportPopupHeight == 510 ? 446 : ;//excelImportPerformance;45 excelImportTextError;64\r\n tThis.excelImportText = \"
\" + tThis.excelFileGlobal.name + \" isimli excel aktarımı tamamlandı.
\";\r\n tThis.setLogExcelText(\"Aktarım Tamamlandı.\");\r\n }\r\n }\r\n else {\r\n setTimeout(() => {\r\n tThis._tickProcess = 100;\r\n }, 1);\r\n tThis.excelImportPerformance = \"\";\r\n tThis.excelImportTextError = \"\";\r\n tThis.excelImportInputButtonDisabled = false;\r\n tThis.excelImportCloseButton = true;\r\n tThis.excelImportPopupHeight = 446;// this.excelImportPopupHeight == 510 ? 446 : ;//excelImportPerformance;45 excelImportTextError;64\r\n tThis.excelImportText = \"
\" + tThis.excelFileGlobal.name + \" isimli excel aktarımı tamamlandı.
\";\r\n tThis.setLogExcelText(\"Aktarım Tamamlandı.\");\r\n }\r\n }\r\n\r\n getDateParse(_type, _formatArr, _dateArr, _index) {\r\n //let _day = _dateFormat[0] == \"dd\" ? _date[0] : (_dateFormat[1] == \"dd\" ? _date[1] : (_dateFormat[2].indexOf(' ') > -1 ? (): _dateFormat[2] == \"dd\"));\r\n let _return = \"\";\r\n if (_formatArr[_index] == _type || (_index == 2 && _formatArr[_index].split(\" \")[0] == _type))\r\n _return = _dateArr[_index];\r\n else {\r\n _index++;\r\n _return = this.getDateParse(_type, _formatArr, _dateArr, _index);\r\n }\r\n return _return;\r\n }\r\n\r\n workbookG;\r\n chunkFileDone_Worker_1(parts, tThis) {\r\n tThis.excelLoadingChange(tThis, 1);\r\n let XLSX = window[\"XLSX\"];\r\n\r\n var tmpResult = new Uint8Array();\r\n for (let j = 0; j < parts.length; j++) {\r\n tmpResult = tThis.appendBuffer(tmpResult, parts[j]);\r\n tThis.excelLoadingChange(tThis, 1);\r\n }\r\n\r\n setTimeout(() => { tThis.XLSXFill(tThis, XLSX, tmpResult); }, 10);\r\n }\r\n\r\n async XLSXFill(tThis, XLSX, tmpResult) {\r\n tThis.excelLoadingChange(tThis, 1);\r\n tThis.workbookG = XLSX.read(tmpResult, {\r\n type: 'buffer', cellDates: true\r\n });\r\n tThis.setLogExcelText(\"Excel Yüklemesi Tamamlandı.\");\r\n setTimeout(() => { tThis.chunkFileDone_Worker_2(tThis, XLSX); }, 5);\r\n }\r\n\r\n chunkFileDone_Worker_2(tThis, XLSX) {\r\n let _headerDate = tThis.data.headers.find(x => x.type == \"date\" || x.type == \"datetime\");\r\n let _format = \"\";\r\n try { _format = _headerDate.format; } catch (ex) { }\r\n tThis.workbookG.SheetNames.forEach(function (sheetName) {\r\n var XL_row_object;\r\n try {\r\n XL_row_object = XLSX.utils.sheet_to_row_object_array(tThis.workbookG.Sheets[sheetName]/*, { raw: false }*/, { dateNF: _format });\r\n } catch (ex) {\r\n XL_row_object = XLSX.utils.sheet_to_row_object_array(tThis.workbookG.Sheets[sheetName], {});\r\n }\r\n var json_object = JSON.stringify(XL_row_object);\r\n tThis.json_ArrayExcel = JSON.parse(json_object);\r\n\r\n tThis.setLogExcelText(\"Veri Aktarımı Başladı.\");\r\n\r\n tThis._nExcelImportLoading = 65 / tThis.json_ArrayExcel.length;\r\n\r\n\r\n tThis.setLogExcelText(\"0 satır aktarıldı. (Toplam 0 Satır)\");\r\n\r\n if (tThis.checkIsDataGridEmpty()) {\r\n\r\n tThis.excelRowImport(tThis, true);\r\n\r\n let dataCols = tThis.data.headers.filter(f => f.type == \"combobox\" || f.type == \"datagrid\" || f.type == \"customableCombobox\");//\r\n if (dataCols && dataCols.length > 0) {\r\n tThis.prepareDataGridColumn(dataCols, 0, false);\r\n }\r\n\r\n tThis.forceRefreshDatagrid();\r\n\r\n } else {\r\n\r\n let msg = \"\";\r\n if (tThis.defaultLanguage && tThis.defaultLanguage.Label)\r\n msg = '\"' + tThis.defaultLanguage.Label + '\" tablosuna ait eski veriler silinsin mi?';\r\n else\r\n msg = tThis.languageLocal.deleteOldData;\r\n\r\n if (tThis.isShowComfirmShown == false) {\r\n let result = confirm(msg, tThis.languageLocal.warning);\r\n tThis.isShowComfirmShown = true;\r\n result.then((dialogResult) => {\r\n tThis.isShowComfirmShown = false;\r\n\r\n if (dialogResult) {\r\n var _Id = 0\r\n let zeroTemp = tThis.data.value.find(x => x.ID == _Id);\r\n if (typeof zeroTemp == \"undefined\") {\r\n var clonedItem = Object.assign({}, {}, { ID: _Id, DefaultColumn: 1 });\r\n tThis.data.value.splice(tThis.data.value.length, 0, clonedItem);\r\n tThis.data.value.sort((a, b) => a.ID - b.ID);\r\n }\r\n tThis.data.value = tThis.data.value.filter(x => x.ID == 0 && x.DefaultColumn == 1/*values.indexOf(item) === -1*/);\r\n tThis.getDatasourcePageItem();\r\n tThis.forceRefreshDatagrid();\r\n }\r\n\r\n tThis.excelRowImport(tThis, true);\r\n\r\n let dataCols = tThis.data.headers.filter(f => f.type == \"combobox\" || f.type == \"datagrid\" || f.type == \"customableCombobox\");//\r\n if (dataCols && dataCols.length > 0) {\r\n tThis.prepareDataGridColumn(dataCols, 0, false);\r\n }\r\n\r\n tThis.forceRefreshDatagrid();\r\n\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n })\r\n }\r\n\r\n // Datagrid boş ise true döner dolu ise false döner\r\n checkIsDataGridEmpty() {\r\n let isEmpty = true;\r\n\r\n for (let i = 0; i < this.data.value.length; i++) {\r\n let shouldBreak = false\r\n this.data.headers.forEach(_dgridH => {\r\n if (typeof this.data.value[i][_dgridH.field] != \"undefined\" &&\r\n (\r\n (_dgridH.type == \"int\" && (this.data.value[i][_dgridH.field] != \"\" || this.data.value[i][_dgridH.field] != \"0\")) ||\r\n (_dgridH.type == \"double\" && (this.data.value[i][_dgridH.field] != \"\" || this.data.value[i][_dgridH.field] != \"0\")) ||\r\n (_dgridH.type == \"text\" && this.data.value[i][_dgridH.field] != \"\") ||\r\n (_dgridH.type == \"date\" && this.data.value[i][_dgridH.field] != null) ||\r\n (_dgridH.type == \"datetime\" && this.data.value[i][_dgridH.field] != null) ||\r\n (_dgridH.type == \"datagrid\" && this.data.value[i][_dgridH.field] != \"\") ||\r\n (_dgridH.type == \"combobox\" && this.data.value[i][_dgridH.field] != \"\") ||\r\n (_dgridH.type == \"customableCombobox\" && this.data.value[i][_dgridH.field] != \"\")\r\n )) {\r\n\r\n isEmpty = false;\r\n shouldBreak = true;\r\n\r\n }\r\n })\r\n\r\n if (shouldBreak) break;\r\n\r\n }\r\n return isEmpty\r\n }\r\n\r\n checkIsRowEmpty(_rowDataID) {\r\n\r\n let isEmpty = true;\r\n\r\n if (_rowDataID != 0) {\r\n let rowData = this.data.value.find(f => f.ID == _rowDataID);\r\n\r\n if (typeof rowData != \"undefined\") {\r\n this.data.headers.forEach(_dgridH => {\r\n if (typeof rowData[_dgridH.field] != \"undefined\" &&\r\n (\r\n (_dgridH.type == \"int\" && (rowData[_dgridH.field] != \"\" || rowData[_dgridH.field] != \"0\")) ||\r\n (_dgridH.type == \"double\" && (rowData[_dgridH.field] != \"\" || rowData[_dgridH.field] != \"0\")) ||\r\n (_dgridH.type == \"text\" && rowData[_dgridH.field] != \"\") ||\r\n (_dgridH.type == \"date\" && rowData[_dgridH.field] != null) ||\r\n (_dgridH.type == \"datetime\" && rowData[_dgridH.field] != null) ||\r\n (_dgridH.type == \"datagrid\" && rowData[_dgridH.field] != \"\") ||\r\n (_dgridH.type == \"combobox\" && rowData[_dgridH.field] != \"\") ||\r\n (_dgridH.type == \"customableCombobox\" && rowData[_dgridH.field] != \"\")\r\n )) {\r\n\r\n isEmpty = false;\r\n\r\n }\r\n })\r\n }\r\n\r\n }\r\n return isEmpty\r\n\r\n }\r\n\r\n appendBuffer(buffer1, buffer2) {\r\n var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);\r\n tmp.set(new Uint8Array(buffer1), 0);\r\n tmp.set(new Uint8Array(buffer2), buffer1.byteLength);\r\n return tmp;\r\n };\r\n\r\n chunkFileDone(parts, tThis) {\r\n setTimeout(() => { tThis.chunkFileDone_Worker_1(parts, tThis); }, 5);\r\n\r\n }\r\n\r\n chunkFile(index, sliceSize, file, parts, count) {\r\n let tThis = this;\r\n var start = index * sliceSize;\r\n var end = Math.min(start + sliceSize, file.size);\r\n var slice = file.slice(start, end);\r\n var fr = new FileReader();\r\n\r\n this.excelLoadingChange(tThis, 1);\r\n fr.onload = function (e) {\r\n parts.push(this.result);\r\n index++;\r\n if (index < count) tThis.chunkFile(index, sliceSize, file, parts, count);\r\n else {\r\n setTimeout(() => { tThis.chunkFileDone(parts, tThis); }, 5);\r\n }\r\n };\r\n\r\n fr.readAsArrayBuffer(slice);\r\n\r\n }\r\n\r\n\r\n async excelLoadingChange(thisLoading, value) {\r\n setTimeout(() => {\r\n thisLoading._tickProcess = (thisLoading._tickProcess + value);\r\n\r\n let _progressbarRangeContainerWidth = document.querySelector('.dx-progressbar-range-container').clientWidth;\r\n let _progressbarRangeVal = _progressbarRangeContainerWidth * thisLoading._tickProcess / 100;\r\n (document.querySelector('.dx-trackbar-range.dx-progressbar-range')).style.minWidth = _progressbarRangeVal + 'px';\r\n\r\n try { thisLoading.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }, 5);\r\n }\r\n //async excelLoadingChangeFull(thisLoading) {\r\n // setTimeout(() => {\r\n // thisLoading._tickProcess = 100;\r\n\r\n // let _progressbarRangeContainerWidth = document.querySelector('.dx-progressbar-range-container').clientWidth; \r\n // (document.querySelector('.dx-trackbar-range.dx-progressbar-range')).style.minWidth = _progressbarRangeContainerWidth + 'px';\r\n\r\n // try { thisLoading.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // }, 5);\r\n //}\r\n sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n formatProcessExcel(value) {\r\n return 'Yükleniyor: %' + parseInt((value * 100).toString());\r\n }\r\n async setLogExcelText(value) {\r\n this.logExcelText = this.logExcelText + value + \"

\";\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n async updateLogExcelText(_value, _replace) {\r\n this.logExcelText = this.logExcelText.replace(_value, _replace);\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n // #endregion EXCEL IMPORT\r\n\r\n\r\n\r\n\r\n // #region OTHERS\r\n /////////\r\n /// OTHERS\r\n ////////\r\n\r\n forceRefreshDatagrid() {\r\n try { this.dataGridEtr.instance.getDataSource().reload(); } catch (ex) { }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n try { this.dataGridEtr.instance.refresh(); } catch (ex) { }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n elementColumnDisabled(cell) {\r\n try {\r\n let header;\r\n if (typeof cell.column.dataField != \"undefined\") {\r\n header = this.data.headers.find(f => f.field == cell.column.dataField);\r\n }\r\n else {\r\n header = this.data.headers.find(f => f.field == cell.column.name);\r\n }\r\n let v1 = !this.data.disabled && !this.data.outsideDisabled;//true;//cell.isEditing;\r\n let v2 = header.editable;\r\n let v3 = v1 && v2;\r\n let v4 = !(v3);\r\n return v4 || this.data.editablePopup;\r\n }\r\n catch (e) {\r\n }\r\n return false;\r\n }\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n showLoadPanel() {\r\n if (!this.isEdit)\r\n this.loadingVisible = true;\r\n }\r\n hideLoadPanel() {\r\n let _this = this;\r\n let myVarTimer = setTimeout(function () {\r\n clearTimeout(myVarTimer);\r\n\r\n _this.loadingVisible = false;\r\n try {\r\n _this.changeDetectorRef.detectChanges();\r\n }\r\n catch (ex) { }\r\n\r\n }, 500);\r\n }\r\n onShown() {\r\n //setTimeout(() => {\r\n // this.loadingVisible = false;\r\n //}, 3000);\r\n }\r\n\r\n onHidden() {\r\n }\r\n\r\n // Artık kullanılmıyor kontrol ediltikten sonra silinebilir\r\n getStyleCell(cell) {\r\n if (cell.column.dataField == \"test2\") console.log(cell);\r\n let val = this.data.headers.find(x => x.field == cell.column.dataField)\r\n\r\n let elements: any[] = this.elementHtml.nativeElement.querySelectorAll(\"td[aria-describedby='\" + cell.column.headerId + \"']\");\r\n\r\n if (!!val) {\r\n for (let i = 0; i < elements.length; i++) {\r\n if (!!val && !!val.properties && !!val.properties.backgroundColor || !!val.properties.color)\r\n try {\r\n (((document.querySelectorAll(\"td[aria-describedby='\" + cell.column.headerId + \"']\"))[i])).style.cssText = \"background-color:\" + val.properties.backgroundColor + \"; color: \" + val.properties.color;\r\n } catch (ex) { }\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n findDateFormat(datafield) {\r\n let header = this.data.headers.find(el => el.field == datafield)\r\n return header.format\r\n }\r\n\r\n // #endregion OTHERS\r\n\r\n allDatagridComponents: any = [];\r\n\r\n getDatagridSourceNewData = null\r\n getDatagridkeyExprData = null\r\n getDataSourcePromise() {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.getDatagridSourceNewData = this.getDatagridSourceNew(this.cellInfoGlobal)\r\n this.getDatagridkeyExprData = this.getDatagridkeyExpr(this.cellInfoGlobal)\r\n resolve(true)\r\n } catch (er) {\r\n reject()\r\n }\r\n\r\n })\r\n }\r\n\r\n showDatagridPopupClose() {\r\n this.showDatagridPopup = false;\r\n this.getDatagridSourceNewData = null;\r\n this.getDatagridkeyExprData = null;\r\n }\r\n\r\n currentColorExpression = { \"id\": 0, \"backgroundColor\": \"\", \"fontColor\": \"\", \"fieldName\": \"\", \"fieldType\": \"\", \"conditionText\": \"\", \"alert\": \"\", \"pointerEvent\": false }\r\n addColorExpressions() {\r\n\r\n let data = JSON.parse(JSON.stringify(this.currentColorExpression))\r\n if (data.fieldName == '') return\r\n data.fieldName = this.currentColorExpression.fieldName\r\n data.id = this.currentColorExpression.id\r\n data.backgroundColor = this.currentColorExpression.backgroundColor\r\n data.fontColor = this.currentColorExpression.fontColor\r\n data.fieldType = this.currentColorExpression.fieldType\r\n data.conditionText = this.currentColorExpression.conditionText\r\n data.alert = this.currentColorExpression.alert\r\n data.pointerEvent = this.currentColorExpression.pointerEvent;\r\n // if (data.pointerEvent = true) this.currentColorExpression.pointerEvent = \"none\"; else this.currentColorExpression.pointerEvent = \"auto\";\r\n // data.pointerEvent = this.currentColorExpression.pointerEvent;\r\n if (data.id != 0) {\r\n let updateIndex = this.data.colorExpressions.findIndex(f => f.id == data.id)\r\n if (typeof updateIndex != \"undefined\") {\r\n this.data.colorExpressions[updateIndex] = data\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n } else {\r\n if (this.data.colorExpressions.length == 0)\r\n data.id = 1\r\n else if (this.data.colorExpressions.length > 0)\r\n data.id = this.data.colorExpressions[this.data.colorExpressions.length - 1].id + 1\r\n\r\n this.data.colorExpressions.push(data)\r\n }\r\n\r\n this.currentColorExpression = { \"id\": 0, \"backgroundColor\": \"\", \"fontColor\": \"\", \"fieldName\": \"\", \"fieldType\": \"\", \"conditionText\": \"\", \"alert\": \"\", \"pointerEvent\": false }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n }\r\n deleteColorExpressions(i) {\r\n this.data.colorExpressions.splice(i, 1);\r\n }\r\n\r\n editRowcolor(colorExp) {\r\n this.currentColorExpression = colorExp\r\n }\r\n\r\n onValueChangeColorExpressionFieldSelect($event) {\r\n\r\n if (!!$event && !!$event.value) {\r\n if ($event.value == \"\") { this.currentColorExpression.fieldType = \"\"; return; }\r\n let typeObject = this.data.headers.find(el => el.field == $event.value)\r\n\r\n if (typeObject.type.toLowerCase() == \"text\") this.currentColorExpression.fieldType = \"string\"\r\n if (typeObject.type.toLowerCase() == \"double\") this.currentColorExpression.fieldType = \"number\"\r\n if (typeObject.type.toLowerCase() == \"int\") this.currentColorExpression.fieldType = \"number\"\r\n if (typeObject.type.toLowerCase() == \"checkbox\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"date\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"datetime\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"datagrid\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"combobox\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"customableCombobox\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"file\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"map\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"picturebox\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"fileviewer\") this.currentColorExpression.fieldType = \"object\"\r\n\r\n }\r\n }\r\n\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n checkAll($event) {\r\n\r\n this.data.headers.forEach(header => {\r\n if (header.type == \"checkbox\") {\r\n this.data.value.forEach(e => {\r\n if (!this.disabledRowsIDs.includes(e.ID)) {\r\n if (this.data.allCheck == true)\r\n e[header.field] = true;\r\n else\r\n e[header.field] = false;\r\n }\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n setLanguageToDatas() {\r\n this.numberRoundTypes = [\r\n { id: \"ceil\", value: this.languageLocal.alwaysRoundUp/*\"Her Zaman Üste Yuvarla\"*/ },\r\n { id: \"floor\", value: this.languageLocal.alwaysRoundBot/* \"Her Zaman Alta Yuvarla\"*/ },\r\n { id: \"round\", value: this.languageLocal.default/*\"Varsayılan\"*/ }\r\n ];\r\n this.fieldTypes = [\r\n { \"type\": \"text\", \"value\": \"text\", \"name\": \"Text\" },\r\n { \"value\": \"double\", \"name\": this.languageLocal.double /*\"Ondalık Sayı\" */ },\r\n { \"value\": \"int\", \"name\": this.languageLocal.integer /*\"Tam Sayı\"*/ },\r\n { \"value\": \"checkbox\", \"name\": \"Checkbox\" },\r\n { \"value\": \"date\", \"name\": \"Date\" },\r\n { \"value\": \"datetime\", \"name\": \"DateTime\" },\r\n { \"value\": \"datagrid\", \"name\": \"Data Grid\" },\r\n { \"value\": \"combobox\", \"name\": \"Combobox\" },\r\n { \"value\": \"customableCombobox\", \"name\": \"Customable Combobox\" },\r\n { \"value\": \"file\", \"name\": \"File\" },\r\n { \"value\": \"map\", \"name\": \"Map\" },\r\n { \"value\": \"picturebox\", \"name\": \"Picturebox\" },\r\n { \"value\": \"fileviewer\", \"name\": \"File Viewer\" }\r\n ];\r\n this.headers = {\r\n \"name\": \"\",\r\n \"caption\": \"\",\r\n \"field\": \"\",\r\n \"type\": \"text\",\r\n \"format\": \"#,##0.00\",\r\n \"properties\": { \"barcode\": false, \"required\": false, \"isUserUpload\": false, \"autoText\": { isAuto: false, autoPreText: \"\" }, \"roundType\": \"round\", \"dateMinMax\": { minToday: false, maxToday: false, dateRange: null }, \"color\": \"\", \"backgroundColor\": \"\", \"fontweight\": \"\", \"rowBackgroundColor\": \"\" },\r\n \"template\": \"\",\r\n \"width\": 150,\r\n \"dataSourceKey\": \"\",\r\n \"dataSource\": [],\r\n \"displayKey\": \"\",\r\n \"valueKey\": \"\",\r\n \"funcParam\": {},\r\n \"files\": [],\r\n \"changeEvents\": [],\r\n \"expression\": {},\r\n \"dataGridSettings\": {\r\n \"connectionStringId\": 0,\r\n \"query\": \"\",\r\n \"key\": \"ID\",\r\n \"table\": \"\",\r\n \"formFields\": []\r\n },\r\n \"sqlColumnSettings\": {\r\n \"connectionStringId\": 0,\r\n \"query\": \"\",\r\n \"fileFields\": {\r\n \"name\": \"\",\r\n \"file\": \"\",\r\n \"fileName\": \"\",\r\n \"extension\": \"\"\r\n }\r\n },\r\n \"permissions\": {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n \"language\": [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Label\": this.languageLocal.title\r\n }\r\n ]\r\n };\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ChangeDetectorRef, OnDestroy, AfterViewInit, ContentChild, ElementRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService, FormService, GenericService, AppInfoService } from '../../shared/services';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { EditorComponent } from 'ngx-monaco-editor';\r\nimport { Subscription } from 'rxjs';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\n\r\nexport class SqlScriptModelDatagrid {\r\n id: number;\r\n connectionId: number;\r\n elementId: string;\r\n query: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'datagridselect-component',\r\n templateUrl: './datagridselect.component.html',\r\n styleUrls: ['./datagridselect.component.css']\r\n})\r\nexport class DxDatagridSelectComponent implements ComponentParameters, OnInit, OnDestroy, AfterViewInit {\r\n //@ViewChild(\"gridContainer\", { static: false }) gridContainer: DxDataGridComponent;\r\n // @ContentChild('gridContainer') gridContainer: ElementRef\r\n @ViewChild(DxDataGridComponent, { static: false }) gridContainer;\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n dropDownOptions: object;\r\n\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n\r\n languageCodes = []\r\n\r\n designerDataSourceList: any;\r\n designerDatasourceModel: any;\r\n\r\n dataSources: any;\r\n dataSourcePopup: boolean = false;\r\n isFromDataSource: boolean;\r\n showSettingPopup: boolean = false;\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showChamgeEventPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n\r\n invokeChangeEventLocal: Subscription;\r\n // editorOptions = { theme: 'vs-dark', language: 'sql', automaticLayout: true };\r\n connections: any = [];\r\n selecboxComponents: any = [];\r\n\r\n sqlScriptModel: SqlScriptModelDatagrid;\r\n languageLocal: any = \"\";\r\n\r\n constructor(public appInfo: AppInfoService,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef) {\r\n\r\n this.languageCodes = this.componentService.getlanguageCodes();\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n if (sub.data) {\r\n\r\n //this.data.dataSource = sub.data;\r\n let result = sub.data;\r\n if (result && result.length > 0 && Array.isArray(result)) {\r\n //let cols = Object.keys(result[0]);\r\n //if (cols) {\r\n\r\n // result.forEach(item => {\r\n // if (!item.text) {\r\n\r\n // if (cols.length == 1) {\r\n // item.text = item[cols[0]];\r\n // }\r\n // else {\r\n // let displayList = [];\r\n // cols.forEach(f => {\r\n // if (f != this.data.valueExpr) {\r\n // displayList.push(item[f]);\r\n // }\r\n // });\r\n // item.text = displayList.join(\",\");\r\n // }\r\n // }\r\n // });\r\n\r\n //}\r\n this.datagridHeaderFill(result);\r\n this.data.dataSource = result;\r\n // this.data.value = (this.data.isDefaultFirstValue && this.data.dataSource.length > 0) || (this.data.value == \"\" && this.data.dataSource.length > 0) ? this.data.dataSource[0][this.data.valueExpr] : this.data.value;\r\n\r\n\r\n this.data.value = (this.data.isDefaultFirstValue && this.data.dataSource.length > 0 && this.data.value == \"\") ? this.data.dataSource[0][this.data.valueExpr] : this.data.value;\r\n\r\n // İlk değer seçili gelsin denildiğinde scriptlerin tetiklenmesi için yapıldı.\r\n let _event_ = [];\r\n _event_.push(this.data.value);\r\n this.onSelectionChanged(_event_);\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n else {\r\n this.data.value = result;\r\n }\r\n\r\n }\r\n else if (sub.elementId == \"clean_element\" || sub.value == \"clean_element\") {\r\n\r\n this.data.dataSource = [];\r\n this.data.value = \"\";\r\n\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n }\r\n });\r\n\r\n //this.dropDownOptions = { width: this.data.width };\r\n }\r\n getLookupContainerStyle() {\r\n let myStyles = {\r\n 'max-width': \" calc(100% + 30px)\", //max width ile aşım çözülüyor px ile calısıyor; %li verdikten sonra bozuluyor %100den fazla verilmemesi gerekiyor\r\n 'width': \"auto\",// (this.data.width && typeof this.data.width != \"undefined\" && this.data.width != null) ? (this.data.width + (this.componentService.isInteger(this.data.width) ? \"px\" : \"\")) : \"auto\",\r\n 'display': this.showDisplay,\r\n\r\n };\r\n return myStyles;\r\n }\r\n getLookupStyle() {\r\n let myStyles = {\r\n 'width': (this.data.width && typeof this.data.width != \"undefined\" && this.data.width != null) ? (this.data.width + (this.componentService.isInteger(this.data.width) ? \"px\" : \"\")) : \"100%\",\r\n 'max-width': \" calc(100% + 30px)\",\r\n };\r\n return myStyles;\r\n }\r\n\r\n getTextboxStylesFunc() {\r\n let paddingright = '34px'\r\n if (this.data.showClearButton && !!this.data.value) {\r\n paddingright = '64px'\r\n }\r\n if (this.data.width != null && this.data.width != \"\" && typeof this.data.width != \"undefined\")\r\n\r\n return { 'width': this.data.width, 'padding-left': '5px', 'padding-right': paddingright };\r\n else\r\n return { 'padding-left': '5px', 'padding-right': paddingright };\r\n //, 'opacity': '.5', '-webkit-user-select': 'none', '-moz-user-select': 'none', '-ms-user-select': 'none', 'user-select': 'none', '-webkit-touch-callout': 'none', 'cursor': 'default' \r\n\r\n }\r\n validateLookup(e) {\r\n return e.value != \"\"\r\n }\r\n getDatagridSourceGetValue() {\r\n let _item = this.data.dataSource.find(x => x[this.data.valueExpr] == this.data.value);\r\n return _item ? _item[this.data.displayExpr] : (this.defaultLanguage.Placeholder != \"\" && this.defaultLanguage.Placeholder != null && typeof this.defaultLanguage.Placeholder != \"undefined\" ? \"\" : \"\");\r\n }\r\n getDatagridSelectRowKey() {\r\n let arraySelected = [];\r\n if (typeof this.data != \"undefined\" && this.data.value != null && this.data.value != \"\") {\r\n arraySelected.push(this.data.value);\r\n }\r\n return arraySelected;\r\n }\r\n showDatagridPopup: any = false;\r\n openDatagridPopup() {\r\n this.showDatagridPopup = true;\r\n }\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n isFirstLoad = true;\r\n isOnChangeExecute = true;\r\n selectedGridForm = [];\r\n ngOnInit() {\r\n let fff111 = this.data.dataSource;\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n\r\n if (!this.isEdit) {\r\n this.executeScript();\r\n /*setTimeout(function () {\r\n this.executeScript();\r\n }.bind(this), 1000);*/\r\n let _thisVal = this.data.value;\r\n\r\n // İlk açılış kuralında eğer isDatagridSetChangeEvent true verirsek processformdata verisi açılırken yanlış gidiyor.\r\n let isDatagridSetChangeEvent = false\r\n if (this.componentService.currentProcessFormId == 0) {\r\n isDatagridSetChangeEvent = true;\r\n this.isOnChangeExecute = true;\r\n }\r\n else\r\n this.isOnChangeExecute = false;\r\n setTimeout(function () { this.isFirstLoad = true; this.sqlScriptExecute(_thisVal, isDatagridSetChangeEvent); }.bind(this), 1000);\r\n }\r\n else {\r\n\r\n this.fillDesignerDataSource();\r\n }\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n if (typeof this.data.isDefaultFirstValue === \"undefined\")\r\n this.data.isDefaultFirstValue = false;\r\n\r\n let fff = this.data;\r\n\r\n this.dropDownOptions = { width: this.data.width };\r\n }\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n datagridHeaderFill(_datasourceLocal) {\r\n this.selectedGridForm = [];\r\n if (_datasourceLocal.length > 0)\r\n this.selectedGridForm = Object.keys(_datasourceLocal[0]);\r\n }\r\n ngAfterViewInit() {\r\n if (!this.isEdit) {\r\n //let _this = this;\r\n // \r\n // this.gridContainer.instance.columnOption(\"ID\", \"visible\", \"false\");\r\n //setTimeout(() => { \r\n // \r\n //}, 1500);\r\n\r\n };\r\n }\r\n onSelectionChanged(event) {\r\n if (this.isOnChangeExecute == true) {\r\n this.clearScriptRecursive(this.data.id, false);\r\n if (event != \"\" && typeof event != \"undefined\" && event != null && event.length != 0) {\r\n this.data.value = event[0];\r\n this.sqlScriptExecute(event[0], true);\r\n }\r\n else {\r\n //this.eventEmitterService.selectboxChangeEvent (this.data.id, \"clean_element\", null, null);\r\n\r\n }\r\n this.showDatagridPopup = false;\r\n } else {\r\n this.isOnChangeExecute = true;\r\n }\r\n\r\n //selectedRowsData \r\n /* if (event.currentSelectedRowKeys.length > 0) {\r\n \r\n let _data = event.selectedRowsData;\r\n if (_data) {\r\n // let display = _data[0][this.data.valueExpr];\r\n this.data.value = _data[0][this.data.valueExpr];//_data[0][this.data.valueExpr];//_data[0];\r\n // cellInfo.setValue(display);\r\n //dropDownBoxComponent.close();\r\n this.showDatagridPopup = false;\r\n //let _thisLocal = this;\r\n this.sqlScriptExecut e(event.value);\r\n \r\n }\r\n else {\r\n this.eventEmitterService.selectboxChangeEvent (this.data.id, \"clean_element\", null, null);\r\n }\r\n \r\n }*/\r\n\r\n\r\n //let header = this.data.headers.find(f => f.name == cellInfo.column.name);\r\n //if (header) this.selectedGridForm = header.dataGridSettings.formFields;\r\n\r\n //if (selectedRowKeys.length > 0) {\r\n\r\n // let data = cellInfo.column.lookup.items.find(f => f[cellInfo.column.lookup.valueExpr] == selectedRowKeys[0][cellInfo.column.lookup.valueExpr]);\r\n // if (data) {\r\n // let display = data[cellInfo.column.lookup.valueExpr];\r\n // cellInfo.setValue(display);\r\n // dropDownBoxComponent.close();\r\n\r\n // // cellInfo.onValueChange d = args => {\r\n // // \r\n // // cellInfo.setValue(args.value);\r\n\r\n // var newRow = typeof cellInfo.row.isNewRow == \"undefined\" ? false : cellInfo.row.isNewRow;\r\n // if (header)\r\n // this.executeSqlExpression(header.field, cellInfo.row.data, cellInfo.row.rowIndex, newRow);\r\n // // };\r\n\r\n // }\r\n //}\r\n }\r\n\r\n sqlScriptExecute(_value, isDatagridSetChangeEvent) {\r\n let sqlScriptLength = 0;\r\n this.data.sqlScripts.forEach(s => {\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n let dataGrid = curentComponents.find(f => f.id == s.elementId)\r\n let isDataGrid = typeof dataGrid == \"undefined\" ? false : true;\r\n\r\n if (!this.isFirstLoad /*&& !isDataGrid*/) {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, \"clean_element\", null, false);\r\n }\r\n\r\n let pref = \"{\" + this.data.id + \"}\";\r\n let value = this.data.value;\r\n let query = this.componentService.replaceAllUsingType(s.query, pref, value);// s.query.replace(pref, value);\r\n\r\n\r\n\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(query)) {\r\n let _match = query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = curentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value);// query.replace(f, _value);\r\n }\r\n else if (this.componentService.tempDatagridPopupComponent.components.length > 0) {\r\n let _selectElement = this.componentService.tempDatagridPopupComponent.components.find(x => x.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_selectElement && _selectElement.type) {\r\n let _value = _selectElement.value == null ? \"\" : _selectElement.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value);// query.replace(f, _value);\r\n }\r\n }\r\n });\r\n }\r\n //query = this.genericService.cleanSqlSyntax(query.replace(pattern, \"\"))\r\n }\r\n\r\n this.genericService.executeQuerySecurited(query, s.connectionId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n //console.log(\"---------------------\" + this.anotherPopupId);\r\n //console.log(\"elementId: \" + s.elementId);\r\n //if (s.elementId == \"istektipi\") {\r\n // \r\n //}\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let element = this.componentService.getById(s.elementId, currentFormSelected.components, this.anotherPopupId);\r\n if (element && element.type) {\r\n this.sqlScriptExecuteResult(element, isDatagridSetChangeEvent, s, _value, result);\r\n }\r\n else if (this.componentService.tempDatagridPopupComponent.components.length > 0) {\r\n\r\n let _selectElement = this.componentService.tempDatagridPopupComponent.components.find(x => x.id == s.elementId);\r\n if (_selectElement && _selectElement.type) {\r\n this.sqlScriptExecuteResult(_selectElement, isDatagridSetChangeEvent, s, _value, result);\r\n }\r\n\r\n }\r\n\r\n sqlScriptLength = sqlScriptLength + 1;\r\n }\r\n });\r\n });\r\n\r\n if (this.isFirstLoad) {\r\n let _tThis = this;\r\n let checksqlScriptExist = setInterval(function () {\r\n if (sqlScriptLength == _tThis.data.sqlScripts.length) {\r\n clearInterval(checksqlScriptExist);\r\n _tThis.isFirstLoad = false;\r\n }\r\n }, 300);\r\n }\r\n }\r\n\r\n sqlScriptExecuteResult(element, isDatagridSetChangeEvent, s, _value, result) {\r\n if (element.component == \"DxDatagridSelectComponent\" || element.type == \"datalist\" || element.type == \"selectbox\" || element.type == \"gallery\" || element.type == \"datagrid\" || element.type == \"multiselectbox\") {\r\n if (element.type != \"datagrid\" || (element.type == \"datagrid\" && isDatagridSetChangeEvent)) {\r\n if (this.isFirstLoad) {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, _value, result, false);\r\n } else {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, _value, result, true);\r\n }\r\n }\r\n }\r\n else {\r\n if (!(this.componentService.datagridColumnHasUserChanges[s.elementId])) {\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n let finalData = [];\r\n keys.forEach(f => {\r\n finalData.push(result[0][f]);\r\n });\r\n let dataText = finalData.join(\",\");\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, _value, dataText);\r\n }\r\n }\r\n }\r\n }\r\n\r\n fillDesignerDataSource() {\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n\r\n this.genericService.fillDesignerDataSource().subscribe((result: any) => {\r\n\r\n this.designerDataSourceList = result;\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n if (this.data.desktopDatasource != null) {\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == this.data.desktopDatasource);\r\n\r\n if (typeof this.designerDatasourceModel.ID === \"undefined\")\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n }\r\n\r\n if (!this.isEdit) {\r\n\r\n this.genericServiceExecuteScript(this.designerDatasourceModel.SQLSTR, this.designerDatasourceModel.CONNID);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n\r\n this.data.desktopDatasource = this.designerDatasourceModel.ID;\r\n\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n /*if (this.data.dataSourceKey == \"\" && this.data.dataSource.length <= 0)\r\n this.componentService.showAlert(\"Uyarı! Henüz veri eklenmedi.\", \"warning\", 4000);*/\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n resetDataSource() {\r\n this.data.dataSource = [];\r\n this.data.dataSourceKey = \"\";\r\n }\r\n\r\n onChangeDatasourceValue(event) {\r\n if (event.value) {\r\n\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == event.value);\r\n\r\n // this.designerDatasourceModel = { ID: 0, NAME: \"\", SQLSTR: \"\" };\r\n\r\n }\r\n }\r\n\r\n\r\n onValueChanged(event) {\r\n\r\n //if (event.value) {\r\n // this.data.value = event.value;\r\n // this.data.sqlScripts.forEach(s => {\r\n // let pref = \"{\" + this.data.id + \"}\";\r\n // let value = event.value;\r\n // let query = s.query.replace(pref, value);\r\n // this.genericService.executeQuerySecurited(query, s.connectionId).subscribe((result: any) => {\r\n // \r\n // if (result) {\r\n // let element = this.componentService.getById(s.elementId, this.componentServi ce.currentF orm.components);\r\n // if (element.type) {\r\n // \r\n // if (element.type == \"datagridselect\" || element.type == \"gallery\") {\r\n // this.eventEmitterService.selectboxChangeEvent (this.data.id, s.elementId, event.value, result);\r\n // }\r\n // else {\r\n // let keys = Object.keys(result[0]);\r\n // if (keys.length > 0) {\r\n // let finalData = [];\r\n // keys.forEach(f => {\r\n // finalData.push(result[0][f]);\r\n // });\r\n // let dataText = finalData.join(\",\");\r\n // this.eventEmitterService.selectboxChangeEvent (this.data.id, s.elementId, event.value, dataText);\r\n // }\r\n // }\r\n // }\r\n // }\r\n // });\r\n // });\r\n //}\r\n //else {\r\n // this.eventEmitterService.selectboxChangeEvent (this.data.id, \"clean_element\", null, null);\r\n //}\r\n }\r\n\r\n onDataSourceValueChanged(event) {\r\n this.data.dataSourceKey = event.value\r\n }\r\n\r\n public executeScript() {\r\n\r\n if (this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n this.genericServiceExecuteScript(this.data.dataStorage.query, this.data.dataStorage.connectionId);\r\n }\r\n else if (this.data.dataSource && this.data.dataSource.length > 0) {\r\n\r\n this.data.dataSource.forEach(f => {\r\n delete f[\"__KEY__\"];\r\n delete f[\"lang\"];\r\n });\r\n\r\n this.datagridHeaderFill(this.data.dataSource);\r\n let filteredData = this.data.dataSource.filter(f => f.lang == this.lang);\r\n if (filteredData && filteredData.length > 0)\r\n this.data.dataSource = filteredData;\r\n\r\n this.data.value = this.data.isDefaultFirstValue && this.data.dataSource.length > 0 && this.data.value == \"\" ? this.data.dataSource[0][this.data.valueExpr] : this.data.value;\r\n //displayExpr\r\n }\r\n else if (this.data.desktopDatasource != null) {\r\n\r\n this.fillDesignerDataSource();\r\n\r\n }\r\n }\r\n\r\n public genericServiceExecuteScript(_Query, _ConnectionId) {\r\n this.genericService.executeQuerySecurited(_Query, _ConnectionId).subscribe((result: any) => {\r\n\r\n if (result && result.length > 0) {\r\n let cols = Object.keys(result[0]);\r\n if (cols) {\r\n //displayExpr\r\n ////result.forEach(item => {\r\n //// if (cols.length == 1) {\r\n //// item.text = item[cols[0]];\r\n //// }\r\n //// else {\r\n //// let displayList = [];\r\n //// cols.forEach(f => {\r\n //// if (f != this.data.valueExpr) {\r\n //// displayList.push(item[f]);\r\n //// }\r\n //// });\r\n //// item.text = displayList.join(\",\");\r\n //// }\r\n ////});\r\n //item.text = displayList.join(\",\");\r\n }\r\n this.datagridHeaderFill(result);\r\n this.data.dataSource = result;\r\n\r\n this.data.value = this.data.isDefaultFirstValue && this.data.dataSource.length > 0 && this.data.value == \"\" ? this.data.dataSource[0][this.data.valueExpr] : this.data.value;\r\n\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n catch (ex) { }\r\n }\r\n else {\r\n this.data.dataSource = [];\r\n }\r\n });\r\n }\r\n\r\n\r\n openDataPopup(type) {\r\n this.isFromDataSource = type == \"1\";\r\n if (this.isFromDataSource) {\r\n this.data.isManual = false;\r\n let selectboxes = this.componentService.getComponentsByType(\"selectbox\", this.anotherPopupId);\r\n this.selecboxComponents = [];\r\n if (selectboxes) {\r\n selectboxes.forEach(item => {\r\n if (item.id != this.data.id) {\r\n let element: any = {};\r\n element.id = item.id;\r\n element.name = this.componentService.getLang(this.lang, item.language).Label;\r\n this.selecboxComponents.push(element);\r\n }\r\n });\r\n }\r\n //this.dataSources = this.componentService.getComponentsByType(\"datasource\");\r\n }\r\n else {\r\n this.data.isManual = true;\r\n }\r\n\r\n this.dataSourcePopup = true;\r\n }\r\n\r\n saveDataSource() {\r\n if (this.data.isManual && this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n let msg = \"\" + this.languageLocal.messageSqlLinkDeleted + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n\r\n if (dialogResult) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.dataSourcePopup = false;\r\n this.data.valueExpr = \"value\";\r\n this.data.displayExpr = \"text\";\r\n }\r\n });\r\n }\r\n else {\r\n\r\n if (this.data.isManual) {\r\n this.data.valueExpr = \"value\";\r\n this.data.displayExpr = \"text\";\r\n }\r\n\r\n this.dataSourcePopup = false;\r\n }\r\n }\r\n\r\n resetDataSources() {\r\n this.data.dataSourceKey = \"\";\r\n this.data.dataSource = [];\r\n\r\n notify(this.languageLocal.notifyDataReset, \"success\", 3000);\r\n }\r\n\r\n apply() {\r\n this.executeScript();\r\n }\r\n\r\n prepareGrid() {\r\n new CustomStore({\r\n key: \"Id\",\r\n load: () => this.data.dataSource,\r\n insert: (values) => this.insert(JSON.stringify(values)),\r\n update: (key, values) => this.update(key, JSON.stringify(values)),\r\n remove: (key) => this.remove(key)\r\n });\r\n }\r\n\r\n executeExp() {\r\n //this.eventEmitterService.executeExpretion(this.anotherPopupId);\r\n }\r\n\r\n insert(values: any = {}): any {\r\n this.data.dataSource.push(values);\r\n }\r\n\r\n update(key, values: any = {}): any {\r\n const index = this.data.dataSource.findIndex(item => item.key === key);\r\n this.data.dataSource[index] = values;\r\n }\r\n\r\n remove(key): any {\r\n const index = this.data.dataSource.findIndex(item => item.key === key);\r\n this.data.dataSource.splice(index, 1);\r\n }\r\n\r\n monacoOnInit() {\r\n this.isMonacoLoaded = true;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n\r\n registeredLanguage: any;\r\n setCustomKeywords(monaco) {\r\n if (this.registeredLanguage)\r\n this.registeredLanguage.dispose();\r\n\r\n this.registeredLanguage = monaco.languages.registerCompletionItemProvider('plaintext', {\r\n provideCompletionItems: () => {\r\n var suggestions = [];\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n for (let i = 0; i < elements.length; i++) {\r\n suggestions.push({\r\n label: elements[i],\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"\" + elements[i] + \"\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n })\r\n }\r\n return { suggestions: suggestions };\r\n }\r\n });\r\n }\r\n\r\n formElements: any;\r\n openChamgeEventPopup() {\r\n this.isMonacoLoaded = false;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n this.formElements = elements.filter(f => f != this.data.id);\r\n this.sqlScriptModel = new SqlScriptModelDatagrid();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n this.showChamgeEventPopup = true;\r\n }\r\n\r\n saveSqlScript() {\r\n let model = this.componentService.cloneModel(this.sqlScriptModel);\r\n\r\n if (model.id > 0) {\r\n let scr = this.data.sqlScripts.find(f => f.id == model.id);\r\n scr.connectionId = model.connectionId;\r\n scr.elementId = model.elementId;\r\n scr.query = model.query;\r\n }\r\n else {\r\n model.id = this.data.sqlScripts.length + 1;\r\n this.data.sqlScripts.push(model);\r\n }\r\n\r\n this.sqlScriptModel = new SqlScriptModelDatagrid();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n }\r\n\r\n updateSqlScript(i) {\r\n let scr = this.data.sqlScripts[i];\r\n this.sqlScriptModel = new SqlScriptModelDatagrid();\r\n this.sqlScriptModel.id = scr.id;\r\n this.sqlScriptModel.connectionId = scr.connectionId;\r\n this.sqlScriptModel.elementId = scr.elementId;\r\n this.sqlScriptModel.query = scr.query;\r\n }\r\n\r\n deleteSqlScript(i) {\r\n this.data.sqlScripts.splice(i, 1);\r\n }\r\n\r\n calculateFilterExpression(filterValue, selectedFilterOperation, target) {\r\n\r\n const column = this as any;\r\n\r\n if (column.dataType = \"string\" && selectedFilterOperation == \"contains\") {\r\n /*\r\n if (filterValue.match(/[\\I]+/g)) {\r\n \r\n filterValue = filterValue.normalize('NFD').replace(/[\\I]+/g, \"ı\")\r\n }\r\n if (filterValue.match(/[\\İ]+/g)) {\r\n \r\n filterValue = filterValue.normalize('NFD').replace(/[\\İ]+/g, \"i\")\r\n }\r\n */\r\n var getter = function (data) {\r\n return data[column.dataField].normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\");\r\n };\r\n\r\n filterValue = filterValue.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\")\r\n\r\n return [getter, selectedFilterOperation || \"contains\", filterValue];\r\n }\r\n\r\n return column.defaultCalculateFilterExpression.apply(this, arguments);\r\n\r\n\r\n }\r\n\r\n clearScriptRecursive(componentId, isShowComfirm = true) {\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let currentComp = curentComponents.find(el => el.id == componentId)\r\n\r\n if (currentComp) {\r\n this.clearScriptCode(componentId, currentComp, isShowComfirm);\r\n }\r\n else if (this.componentService.tempDatagridPopupComponent.components.length > 0) {\r\n\r\n if (this.componentService.datagridColumnHasUserChanges[componentId] == false) {\r\n let _selectElement = this.componentService.tempDatagridPopupComponent.components.find(x => x.id == componentId);\r\n this.clearScriptCode(componentId, _selectElement, isShowComfirm);\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n }\r\n clearScriptCode(componentId, currentComp, isShowComfirm = true) {\r\n if (this.data.id != componentId) {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, componentId, \"clean_element\", null, isShowComfirm);\r\n }\r\n\r\n if (typeof currentComp.sqlScripts != \"undefined\" && typeof currentComp.sqlScripts.length != \"undefined\" && currentComp.sqlScripts.length > 0) {\r\n currentComp.sqlScripts.forEach(el => {\r\n this.clearScriptRecursive(el.elementId, isShowComfirm)\r\n })\r\n }\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n clearValue() {\r\n this.data.value = \"\";\r\n this.clearScriptRecursive(this.data.id);\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ChangeDetectorRef, OnDestroy, AfterViewInit, ContentChild, ElementRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService, FormService, GenericService, AppInfoService } from '../../shared/services';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { EditorComponent } from 'ngx-monaco-editor';\r\nimport { Subscription } from 'rxjs';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\n\r\nexport class SqlScriptModelListDatagrid {\r\n id: number;\r\n connectionId: number;\r\n elementId: string;\r\n query: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'datalist-component',\r\n templateUrl: './datalist.component.html',\r\n styleUrls: ['./datalist.component.css']\r\n})\r\nexport class DxDataListComponent implements ComponentParameters, OnInit, OnDestroy, AfterViewInit {\r\n\r\n\r\n @ViewChild(DxDataGridComponent, { static: false }) gridContainer;\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n //dropDownOptions: object;\r\n\r\n allMode: string;\r\n checkBoxesMode: string;\r\n\r\n fieldTypes: any[] = [\r\n { \"type\": \"text\", \"value\": \"text\", \"name\": \"Text\" },\r\n { \"value\": \"double\", \"name\": \"Ondalýk Sayý\" },\r\n { \"value\": \"int\", \"name\": \"Tam Sayý\" },\r\n { \"value\": \"checkbox\", \"name\": \"Checkbox\" },\r\n { \"value\": \"date\", \"name\": \"Date\" },\r\n { \"value\": \"datetime\", \"name\": \"DateTime\" },\r\n { \"value\": \"datagrid\", \"name\": \"Data Grid\" },\r\n { \"value\": \"combobox\", \"name\": \"Combobox\" },\r\n { \"value\": \"file\", \"name\": \"File\" },\r\n { \"value\": \"map\", \"name\": \"Map\" },\r\n { \"value\": \"picturebox\", \"name\": \"Picturebox\" },\r\n { \"value\": \"fileviewer\", \"name\": \"File Viewer\" }\r\n ];\r\n\r\n headers: any = {\r\n \"name\": \"\",\r\n \"width\": \"\",\r\n \"field\": \"\",\r\n \"type\": \"text\",\r\n \"expression\": {},\r\n }\r\n\r\n fontWeightTypes = [{ value: \"normal\", text: \"Normal\" }, { value: \"bold\", text: \"Bold\" }]\r\n filterOperatorsColor = {\r\n \"string\": [{ type: \"like\" }, { type: \"startsWith\" }, { type: \"endsWith\" }, { type: \"equals\" }],\r\n \"number\": [{ type: \"=\" }, { type: \"!=\" }, { type: \"<\" }, { type: \">\" }, { type: \"<=\" }, { type: \">=\" }],\r\n \"object\": [{ type: \"=\" }, { type: \"equals\" }]\r\n }\r\n showDisplay: any = \"flex\";\r\n\r\n\r\n languageCodes = []\r\n\r\n designerDataSourceList: any;\r\n designerDatasourceModel: any;\r\n\r\n dataSources: any;\r\n dataSourcePopup: boolean = false;\r\n isFromDataSource: boolean;\r\n showSettingPopup: boolean = false;\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showChamgeEventPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n\r\n invokeChangeEventLocal: Subscription;\r\n\r\n connections: any = [];\r\n selecboxComponents: any = [];\r\n\r\n datalistSelectionModes: any = [\"multiple\", \"single\"];\r\n\r\n sqlScriptModel: SqlScriptModelListDatagrid;\r\n languageLocal: any = \"\";\r\n\r\n @ViewChild(\"gridContainer\", { static: false }) datalistItem: DxDataGridComponent;\r\n\r\n constructor(public appInfo: AppInfoService,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef) {\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.languageCodes = this.componentService.getlanguageCodes();\r\n this.setLanguageToDatas()\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);//\r\n let currentComps = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let currentCompDatagrids = currentComps.filter(x => x.type == \"datagrid\");\r\n this.allDatagridComponents = currentCompDatagrids.map(m => m.id);\r\n\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (this.data.id != sub.id && sub.elementId == this.data.id) {\r\n if (sub.data) {\r\n\r\n let result = sub.data;\r\n if (result && result.length > 0 && Array.isArray(result)) {\r\n let cols = Object.keys(result[0]);\r\n this.showHeaders = [];\r\n if (cols) {\r\n cols.forEach(el => {\r\n this.showHeaders.push({ field: el, width: 150 })\r\n })\r\n this.data.headers.forEach(el => {\r\n let foundedHeaderIndex = this.showHeaders.findIndex(f => f.field == el.field)\r\n this.showHeaders[foundedHeaderIndex].width = el.width\r\n })\r\n }\r\n this.data.dataSource = result;\r\n let tThis = this;\r\n setTimeout(() => {\r\n let _dataVal = tThis.datasourceValChange(tThis.data.dataSource, tThis.data.value, tThis);\r\n\r\n tThis.data.value = tThis.data.isDefaultFirstValue && tThis.data.dataSource.length > 0 && tThis.data.value == \"\" ? tThis.data.dataSource[0][tThis.data.valueExpr] : _dataVal;\r\n\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n let _event_ = { selectedRowKeys: [tThis.data.value] };\r\n tThis.onSelectionChanged(_event_);\r\n }, 1000);\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n else {\r\n this.data.value = result;\r\n this.data.dataSource = [];\r\n this.showHeaders = []\r\n }\r\n\r\n }\r\n else if (sub.elementId == \"clean_element\" || sub.value == \"clean_element\") this.data.dataSource = [];\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n this.allMode = 'allPages';\r\n this.checkBoxesMode = 'onClick';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n\r\n currentFormSelectedGlobal;\r\n allDatagridComponents: any = [];\r\n ngOnInit() {\r\n \r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n \r\n //if (typeof this.functionScript == \"undefined\")\r\n // this.functionScript = { code: \"\", elementId: \"\", column: \"\" };\r\n \r\n if (typeof this.data.isSelectInsertManualData == \"undefined\")\r\n this.data.isSelectInsertManualData = false;\r\n\r\n if (typeof this.data.selectionMode == \"undefined\")\r\n this.data.selectionMode = \"multiple\";\r\n\r\n if (!this.isEdit) {\r\n this.executeScript();\r\n\r\n if (this.data.isSelectInsertManualData) {\r\n this.setRuntimeDataSource();\r\n }\r\n }\r\n else {\r\n\r\n this.fillDesignerDataSource();\r\n }\r\n\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.width = typeof this.data.width == \"undefined\" ? \"100%\" : this.data.width;\r\n this.data.height = typeof this.data.height == \"undefined\" ? \"350px\" : this.data.height;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n if (typeof this.data.isDefaultFirstValue === \"undefined\")\r\n this.data.isDefaultFirstValue = false;\r\n\r\n let fff = this.data;\r\n // this.dropDownOptions = { width: this.data.width };\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n\r\n this.data.headers = typeof this.data.headers == \"undefined\" ? [] : this.data.headers;\r\n this.data.colorExpressions = typeof this.data.colorExpressions == \"undefined\" ? [] : this.data.colorExpressions ;\r\n\r\n }\r\n\r\n addEmptyHeader() {\r\n this.headers.name = this.componentService.createuuid();\r\n let header = this.componentService.cloneModel(this.headers);\r\n this.data.headers.push(header);\r\n //this.resetHeaderObject();\r\n }\r\n deleteHeader(index) {\r\n let result = confirm(\"\" + this.languageLocal.areYouSure + \"\", this.languageLocal.columnDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.data.headers.splice(index, 1);\r\n }\r\n });\r\n }\r\n\r\n saveColumnSettings($event) {\r\n let _control = true;\r\n const pattern = /[A-Za-z_]/;\r\n this.data.headers.forEach(f => {\r\n if (!pattern.test(f.field[0]))\r\n _control = false;\r\n });\r\n if (_control) {\r\n this.showGridColPopup = false;\r\n }\r\n else\r\n this.showToast(this.languageLocal.toastColumnNameNumber, \"warning\");\r\n }\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n datagridAllColumns = [];\r\n onChangeSelectedDatagrid(event) {\r\n if (event.value) {\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(this.currentFormSelectedGlobal.components, this.anotherPopupId);\r\n let selDg = curentComponents.filter(x => x.id == this.data.selectedDatagrid);\r\n this.data.selectionMode = \"single\";//\r\n this.datagridAllColumns = selDg[0] ? selDg[0].headers.map(m => m.field) : [];\r\n }\r\n }\r\n\r\n runtimeDatasourcePopup = false;\r\n saveRuntimeDataSource() {\r\n this.data.valueExpr = \"value\";\r\n this.data.displayExpr = \"text\";\r\n this.runtimeDatasourcePopup = false;\r\n\r\n this.datalistItem.instance.getDataSource().reload();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.setRuntimeDataSource();\r\n }\r\n selectInsertManualDataPopup() {\r\n this.data.isManual = true;\r\n this.runtimeDatasourcePopup = true;\r\n }\r\n setRuntimeDataSource() {\r\n\r\n let runtimeSelectbox = this.componentService.runtimeSelectboxDatasource.find(x => x.componentId == this.data.id);\r\n if (runtimeSelectbox) {\r\n runtimeSelectbox.dataSource = this.data.dataSource;\r\n }\r\n else {\r\n this.componentService.runtimeSelectboxDatasource.push({ componentId: this.data.id, dataSource: this.data.dataSource });\r\n }\r\n }\r\n selectInsertManualData(eVal) {\r\n if (this.data.isSelectInsertManualData) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.data.desktopDatasource = null;\r\n this.data.isManual = true;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (!this.isEdit) {\r\n\r\n };\r\n }\r\n onSelectionChanged(event) {\r\n\r\n this.data.value = event.selectedRowKeys;\r\n\r\n if (this.data.selectedDatagrid && this.data.selectedDatagrid != \"\") {\r\n let _datalistFilterColumnValue = \"\";\r\n if (typeof this.data.datalistFilterColumn != \"undefined\" && this.data.datalistFilterColumn != null && this.data.datalistFilterColumn != \"\") {\r\n let _dataDataSourceFind = this.data.dataSource.find(x => x[this.data.valueExpr] == this.data.value[0]);\r\n _datalistFilterColumnValue = typeof _dataDataSourceFind != \"undefined\" ? _dataDataSourceFind[this.data.datalistFilterColumn] : \"\";\r\n }\r\n else\r\n _datalistFilterColumnValue = this.data.value[0];\r\n \r\n this.data.selectedDatagridColumn = this.data.selectedDatagridColumn == 0 || this.data.selectedDatagridColumn == -1 || this.data.selectedDatagridColumn == null ? undefined : this.data.selectedDatagridColumn;\r\n let _data = { element: this.data.id, value: _datalistFilterColumnValue, elementLabel: this.defaultLanguage.Label, filteredElement: this.data.selectedDatagrid, filteredColumn: this.data.selectedDatagridColumn };\r\n this.eventEmitterService.ChangeFilterOutElement(_data);\r\n }\r\n\r\n //if (event.currentSelectedRowKeys.length > 0) {\r\n\r\n // let _data = event.selectedRowsData;\r\n // if (_data) { \r\n // this.data.value = _data[0][this.data.valueExpr]; \r\n // dropDow nBoxComponent.close();\r\n\r\n // this.data.sqlScripts.forEach(s => {\r\n // let pref = \"{\" + this.data.id + \"}\";\r\n // let value = this.data.value;\r\n // let query = s.query.replace(pref, value);\r\n // this.genericService.executeQuerySecurited(query, s.connectionId).subscribe((result: any) => {\r\n // \r\n // if (result) {\r\n // let element = this.componentService.getById(s.elementId, this.componentServi ce.current Form.components);\r\n // if (element.type) {\r\n // \r\n // if (element.component == \"DxDatagridSelectComponent\" || element.type == \"gallery\") {\r\n // this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, event.value, result);\r\n // }\r\n // else {\r\n // let keys = Object.keys(result[0]);\r\n // if (keys.length > 0) {\r\n // let finalData = [];\r\n // keys.forEach(f => {\r\n // finalData.push(result[0][f]);\r\n // });\r\n // let dataText = finalData.join(\",\");\r\n // this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, event.value, dataText);\r\n // }\r\n // }\r\n // }\r\n // }\r\n // });\r\n // });\r\n\r\n\r\n // }\r\n // else {\r\n // this.eventEmitterService.selectboxChangeEvent(this.data.id, \"clean_element\", null, null);\r\n // }\r\n\r\n //}\r\n\r\n }\r\n\r\n fillDesignerDataSource() {\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n\r\n this.genericService.fillDesignerDataSource().subscribe((result: any) => {\r\n\r\n this.designerDataSourceList = result;\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n if (this.data.desktopDatasource != null) {\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == this.data.desktopDatasource);\r\n\r\n if (typeof this.designerDatasourceModel.ID === \"undefined\")\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n }\r\n\r\n if (!this.isEdit) {\r\n\r\n this.genericServiceExecuteScript(this.designerDatasourceModel.SQLSTR, this.designerDatasourceModel.CONNID);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n\r\n this.data.desktopDatasource = this.designerDatasourceModel.ID;\r\n\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n resetDataSource() {\r\n this.data.dataSource = [];\r\n this.data.dataSourceKey = \"\";\r\n }\r\n\r\n onChangeDatasourceValue(event) {\r\n if (event.value) {\r\n\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == event.value);\r\n\r\n }\r\n }\r\n\r\n\r\n onValueChanged(event) {\r\n\r\n }\r\n\r\n onDataSourceValueChanged(event) {\r\n this.data.dataSourceKey = event.value\r\n }\r\n\r\n public executeScript() {\r\n\r\n if (this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n this.genericServiceExecuteScript(this.data.dataStorage.query, this.data.dataStorage.connectionId);\r\n }\r\n else if (this.data.dataSource && this.data.dataSource.length > 0) {\r\n\r\n let filteredData = this.data.dataSource.filter(f => f.lang == this.lang);\r\n if (filteredData && filteredData.length > 0)\r\n this.data.dataSource = filteredData;\r\n\r\n\r\n let tThis = this;\r\n setTimeout(() => {\r\n let _dataVal = tThis.datasourceValChange(tThis.data.dataSource, tThis.data.value, tThis);\r\n tThis.data.value = tThis.data.isDefaultFirstValue && tThis.data.dataSource.length > 0 && tThis.data.value == \"\" ? tThis.data.dataSource[0][tThis.data.valueExpr] : _dataVal;\r\n\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n\r\n let _event_ = { selectedRowKeys: [tThis.data.value] };\r\n tThis.onSelectionChanged(_event_);\r\n\r\n }, 1000);\r\n\r\n }\r\n else if (this.data.desktopDatasource != null) {\r\n\r\n this.fillDesignerDataSource();\r\n\r\n }\r\n }\r\n showGridColPopup = false;\r\n showGridColPopupLoading = false;\r\n openshowGridColPopup() {\r\n this.showGridColPopup = true;\r\n this.showGridColPopupLoading = true;\r\n }\r\n getDatalistContainerStyle() {\r\n let myStyles = {\r\n 'width': (this.data.width && typeof this.data.width != \"undefined\" && this.data.width != null) ? (this.data.width + (this.componentService.isInteger(this.data.width) ? \"px\" : \"\")) : \"100%\",\r\n 'height': (this.data.height && typeof this.data.height != \"undefined\" && this.data.height != null) ? (this.data.height + (this.componentService.isInteger(this.data.height) ? \"px\" : \"\")) : \"350px\",\r\n 'min-width': (this.data.width && typeof this.data.width != \"undefined\" && this.data.width != null) ? (this.data.width + (this.componentService.isInteger(this.data.width) ? \"px\" : \"\")) : \"100%\"\r\n //'display':this.showDisplay\r\n };\r\n return myStyles;\r\n\r\n }\r\n\r\n showHeaders = []\r\n public genericServiceExecuteScript(_Query, _ConnectionId) {\r\n\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(this.currentFormSelectedGlobal.components, this.anotherPopupId);\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(_Query)) {\r\n let _match = _Query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = curentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n _Query = this.componentService.replaceAllUsingType(_Query, f, _value); // _Query = _Query.replace(f, _value);\r\n }\r\n });\r\n }\r\n //query = this.genericService.cleanSqlSyntax(query.replace(pattern, \"\"))\r\n }\r\n\r\n\r\n this.genericService.executeQuerySecurited(_Query, _ConnectionId).subscribe((result: any) => {\r\n \r\n if (result && result.length > 0) {\r\n let cols = Object.keys(result[0]);\r\n if (cols) {\r\n cols.forEach(el => {\r\n this.showHeaders.push({ field: el , width : 150 })\r\n })\r\n this.data.headers.forEach(el => {\r\n let foundedHeaderIndex = this.showHeaders.findIndex(f => f.field == el.field)\r\n this.showHeaders[foundedHeaderIndex].width = el.width\r\n })\r\n }\r\n this.data.dataSource = result;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n let tThis = this;\r\n setTimeout(() => {\r\n let _dataVal = tThis.datasourceValChange(tThis.data.dataSource, tThis.data.value, tThis);\r\n tThis.data.value = tThis.data.isDefaultFirstValue && tThis.data.dataSource.length > 0 && tThis.data.value == \"\" ? tThis.data.dataSource[0][tThis.data.valueExpr] : _dataVal;\r\n\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n\r\n let _event_ = { selectedRowKeys: [tThis.data.value] };\r\n tThis.onSelectionChanged(_event_);\r\n }, 1000);\r\n\r\n\r\n }\r\n else {\r\n this.data.dataSource = [];\r\n }\r\n });\r\n }\r\n\r\n datasourceValChange(_datasource, _val, tThis) {\r\n let _valReturn = _val;\r\n if (_datasource.length > 0) {\r\n let _valFind = _datasource.find(x => x[tThis.data.valueExpr] == _val);\r\n if (_valFind)\r\n _valReturn = _valFind[tThis.data.valueExpr];\r\n }\r\n return _valReturn;\r\n }\r\n\r\n openDataPopup(type) {\r\n this.isFromDataSource = type == \"1\";\r\n if (this.isFromDataSource) {\r\n this.data.isManual = false;\r\n let selectboxes = this.componentService.getComponentsByType(\"selectbox\", this.anotherPopupId);\r\n this.selecboxComponents = [];\r\n if (selectboxes) {\r\n selectboxes.forEach(item => {\r\n if (item.id != this.data.id) {\r\n let element: any = {};\r\n element.id = item.id;\r\n element.name = this.componentService.getLang(this.lang, item.language).Label;\r\n this.selecboxComponents.push(element);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.data.isManual = true;\r\n }\r\n\r\n this.dataSourcePopup = true;\r\n }\r\n\r\n saveDataSource() {\r\n if (this.data.isManual && this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n let msg = \"\" + this.languageLocal.messageSqlLinkDeleted + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n\r\n if (dialogResult) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.dataSourcePopup = false;\r\n this.data.valueExpr = \"value\";\r\n //this.data.displayExpr = \"text\";\r\n }\r\n });\r\n }\r\n else {\r\n\r\n if (this.data.isManual) {\r\n this.data.valueExpr = \"value\";\r\n //this.data.displayExpr = \"text\";\r\n }\r\n\r\n this.dataSourcePopup = false;\r\n }\r\n }\r\n\r\n resetDataSources() {\r\n this.data.dataSourceKey = \"\";\r\n this.data.dataSource = [];\r\n\r\n notify(this.languageLocal.notifyDataReset, \"success\", 3000);\r\n }\r\n\r\n apply() {\r\n this.executeScript();\r\n }\r\n\r\n prepareGrid() {\r\n new CustomStore({\r\n key: \"Id\",\r\n load: () => this.data.dataSource,\r\n insert: (values) => this.insert(JSON.stringify(values)),\r\n update: (key, values) => this.update(key, JSON.stringify(values)),\r\n remove: (key) => this.remove(key)\r\n });\r\n }\r\n\r\n executeExp() {\r\n this.eventEmitterService.executeExpretion(this.anotherPopupId);\r\n }\r\n\r\n insert(values: any = {}): any {\r\n this.data.dataSource.push(values);\r\n }\r\n\r\n update(key, values: any = {}): any {\r\n const index = this.data.dataSource.findIndex(item => item.key === key);\r\n this.data.dataSource[index] = values;\r\n }\r\n\r\n remove(key): any {\r\n const index = this.data.dataSource.findIndex(item => item.key === key);\r\n this.data.dataSource.splice(index, 1);\r\n }\r\n\r\n monacoOnInit() {\r\n this.isMonacoLoaded = true;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n\r\n registeredLanguage: any;\r\n setCustomKeywords(monaco) {\r\n if (this.registeredLanguage)\r\n this.registeredLanguage.dispose();\r\n\r\n this.registeredLanguage = monaco.languages.registerCompletionItemProvider('plaintext', {\r\n provideCompletionItems: () => {\r\n var suggestions = [];\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(this.currentFormSelectedGlobal.components, this.anotherPopupId).map(m => m.id);\r\n for (let i = 0; i < elements.length; i++) {\r\n suggestions.push({\r\n label: elements[i],\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"\" + elements[i] + \"\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n })\r\n }\r\n return { suggestions: suggestions };\r\n }\r\n });\r\n }\r\n\r\n formElements: any;\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n onRowPrepared(event) {\r\n \r\n \r\n if (event.rowType === \"data\" && this.data.colorExpressions.length > 0) {\r\n\r\n this.data.colorExpressions.forEach(expression => {\r\n\r\n let replacedQuery = expression.conditionText\r\n\r\n replacedQuery = this.componentService.cloneModel(expression.conditionText);\r\n let fields = Object.keys(event.data);\r\n\r\n fields.forEach(f => {\r\n let pref = \"{\" + f + \"}\";\r\n let value = event.data[f];\r\n if (value != null && typeof value != \"undefined\" && typeof value.getMonth === 'function') {\r\n value = value.getFullYear() + \"-\" + (value.getMonth() + 1) + \"-\" + value.getDate();\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n }\r\n else\r\n replacedQuery = this.replaceAll(replacedQuery, pref, value);\r\n });\r\n\r\n let currentExpression = expression.expression\r\n if (expression.expression == \"=\") { currentExpression = \"==\" }\r\n let query = event.data[expression.fieldName] + \" \" + currentExpression + \" \" + replacedQuery\r\n if (expression.fieldType == \"number\") {\r\n let functionn = \"if(\" + query.replace(/[\\u200B-\\u200D\\uFEFF]/g, '') + \")\" + \"{return true;} else { return false; }\";\r\n let result = eval('(function() {' + functionn + '}())');\r\n if (result == true) {\r\n //boya\r\n\r\n try {\r\n\r\n event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n event.rowElement.style.color = expression.fontColor;\r\n } catch (err) {\r\n\r\n }\r\n\r\n\r\n }\r\n }\r\n if (expression.fieldType == \"string\") {\r\n\r\n if (expression.expression == \"like\") {\r\n if (event.data[expression.fieldName].toString().includes(replacedQuery)) {\r\n event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n event.rowElement.style.color = expression.fontColor;\r\n }\r\n }\r\n if (expression.expression == \"startsWith\") {\r\n if (event.data[expression.fieldName].startsWith(replacedQuery)) {\r\n event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n event.rowElement.style.color = expression.fontColor;\r\n }\r\n }\r\n if (expression.expression == \"endsWith\") {\r\n if (event.data[expression.fieldName].endsWith(replacedQuery)) {\r\n event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n event.rowElement.style.color = expression.fontColor;\r\n }\r\n }\r\n if (expression.expression == \"equals\") {\r\n if (event.data[expression.fieldName] == replacedQuery) {\r\n event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n event.rowElement.style.color = expression.fontColor;\r\n }\r\n }\r\n\r\n }\r\n\r\n if (expression.fieldType == \"object\") {\r\n if (expression.expression == \"equals\") {\r\n if (event.data[expression.fieldName].toString() == replacedQuery) {\r\n event.rowElement.style.backgroundColor = expression.backgroundColor;\r\n event.rowElement.style.color = expression.fontColor;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n currentColorExpression = { \"id\": 0, \"backgroundColor\": \"\", \"fontColor\": \"\", \"fieldName\": \"\", \"fieldType\": \"\", \"conditionText\": \"\" }\r\n addColorExpressions() {\r\n\r\n let data = JSON.parse(JSON.stringify(this.currentColorExpression))\r\n if (data.fieldName == '') return\r\n data.fieldName = this.currentColorExpression.fieldName\r\n data.id = this.currentColorExpression.id\r\n data.backgroundColor = this.currentColorExpression.backgroundColor\r\n data.fontColor = this.currentColorExpression.fontColor\r\n data.fieldType = this.currentColorExpression.fieldType\r\n data.conditionText = this.currentColorExpression.conditionText\r\n\r\n if (data.id != 0) {\r\n let updateIndex = this.data.colorExpressions.findIndex(f => f.id == data.id)\r\n if (typeof updateIndex != \"undefined\") {\r\n this.data.colorExpressions[updateIndex] = data\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n } else {\r\n if (this.data.colorExpressions.length == 0)\r\n data.id = 1\r\n else if (this.data.colorExpressions.length > 0)\r\n data.id = this.data.colorExpressions[this.data.colorExpressions.length - 1].id + 1\r\n\r\n this.data.colorExpressions.push(data)\r\n }\r\n this.currentColorExpression = { \"id\": 0, \"backgroundColor\": \"\", \"fontColor\": \"\", \"fieldName\": \"\", \"fieldType\": \"\", \"conditionText\": \"\" }\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n\r\n }\r\n deleteColorExpressions(i) {\r\n this.data.colorExpressions.splice(i, 1);\r\n }\r\n\r\n editRowcolor(colorExp) {\r\n this.currentColorExpression = colorExp\r\n }\r\n\r\n fieldTypesValueChanged = (e: any, header: any): void => {\r\n\r\n if (e.value.length && typeof e.event != \"undefined\") {\r\n if (e.value == \"datetime\")\r\n header.format = \"dd/MM/yyyy HH:mm\";\r\n else if (e.value == \"date\")\r\n header.format = \"dd/MM/yyyy\";\r\n else if (e.value == \"double\" || e.value == \"int\")\r\n header.format = \"#,##0.00\";\r\n else if (e.value == \"file\")\r\n header.width = \"200\";\r\n }\r\n }\r\n\r\n onValueChangeColorExpressionFieldSelect($event) {\r\n \r\n if (!!$event && !!$event.value) {\r\n if ($event.value == \"\") { this.currentColorExpression.fieldType = \"\"; return; }\r\n let typeObject = this.data.headers.find(el => el.field == $event.value)\r\n\r\n if (typeObject.type.toLowerCase() == \"text\") this.currentColorExpression.fieldType = \"string\"\r\n if (typeObject.type.toLowerCase() == \"double\") this.currentColorExpression.fieldType = \"number\"\r\n if (typeObject.type.toLowerCase() == \"int\") this.currentColorExpression.fieldType = \"number\"\r\n if (typeObject.type.toLowerCase() == \"checkbox\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"date\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"datetime\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"datagrid\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"combobox\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"file\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"map\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"picturebox\") this.currentColorExpression.fieldType = \"object\"\r\n if (typeObject.type.toLowerCase() == \"fileviewer\") this.currentColorExpression.fieldType = \"object\"\r\n\r\n }\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n setLanguageToDatas() {\r\n this.fieldTypes = [\r\n { \"type\": \"text\", \"value\": \"text\", \"name\": \"Text\" },\r\n { \"value\": \"double\", \"name\": this.languageLocal.double /*\"Ondalýk Sayý\" */ },\r\n { \"value\": \"int\", \"name\": this.languageLocal.integer /*\"Tam Sayý\"*/ },\r\n { \"value\": \"checkbox\", \"name\": \"Checkbox\" },\r\n { \"value\": \"date\", \"name\": \"Date\" },\r\n { \"value\": \"datetime\", \"name\": \"DateTime\" },\r\n { \"value\": \"datagrid\", \"name\": \"Data Grid\" },\r\n { \"value\": \"combobox\", \"name\": \"Combobox\" },\r\n { \"value\": \"file\", \"name\": \"File\" },\r\n { \"value\": \"map\", \"name\": \"Map\" },\r\n { \"value\": \"picturebox\", \"name\": \"Picturebox\" },\r\n { \"value\": \"fileviewer\", \"name\": \"File Viewer\" }\r\n ];\r\n }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { GenericService } from '../../shared/services';\r\n\r\n@Component({\r\n selector: 'app-datasource',\r\n templateUrl: './datasource.component.html',\r\n styleUrls: ['./datasource.component.scss']\r\n})\r\nexport class DxDatasourceComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n \r\n ismonocoActive: any = false;\r\n languageLocal: any = \"\";\r\n\r\n showSettingPopup: boolean = false;\r\n constructor(private eventEmitterService: EventEmitterService, private genericService: GenericService, public componentService: ComponentService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n setTimeout(f => {\r\n this.ismonocoActive = true;\r\n }, 1000);\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n //if(!this.isEdit) this.executeScript();\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.ismonocoActive = false; \r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.ismonocoActive = false; \r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n\r\n openSettings() {\r\n this.data.showEditPop = true;\r\n }\r\n\r\n onValueChanged(event) {\r\n this.data.value = event.value;\r\n this.eventEmitterService.executeExpretion(this.anotherPopupId);\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n executeScript() {\r\n if (this.data.query != \"\" && this.data.connectionString != \"\") {\r\n this.genericService.getDataTable(this.data.query, this.data.connectionString).subscribe(result => {\r\n this.data.dataSource = result;\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy, AfterViewInit } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport config from \"devextreme/core/config\";\r\n\r\n@Component({\r\n selector: 'datebox-component',\r\n templateUrl: './datebox.component.html',\r\n styleUrls: ['./datebox.component.css']\r\n\r\n})\r\nexport class DxDateboxComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n invokeChangeEventLocal: Subscription;\r\n\r\n minDate: Date = null;\r\n maxDate: Date = null;\r\n languageLocal: any = \"\";\r\n\r\n constructor(private eventEmitterService: EventEmitterService, public changeDetectorRef: ChangeDetectorRef, public componentService: ComponentService) {\r\n\r\n config({ forceIsoDateParsing: true });\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n if (sub.elementId == this.data.id) {\r\n if (sub.data) this.data.value = sub.data;\r\n else if (sub.value == \"clean_element\") this.data.value = null;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n debugger;\r\n this.data.isTodaySelected = typeof this.data.isTodaySelected == \"undefined\" ? true : this.data.isTodaySelected;\r\n this.data.isTodayTimeSelected = typeof this.data.isTodayTimeSelected == \"undefined\" ? true : this.data.isTodayTimeSelected;\r\n if (!this.isEdit && this.data.isTodaySelected == true) {\r\n if (this.componentService.isNewSchemaPopup == true || this.data.value == null) {\r\n if (this.data.isTodayTimeSelected == true)\r\n this.data.value = new Date();\r\n else\r\n this.data.value = new Date(new Date().setHours(0, 0, 0, 0));//.setHours(0, 0, 0);\r\n }\r\n }\r\n\r\n\r\n this.data.isTimeOption = typeof this.data.isTimeOption == \"undefined\" ? false : this.data.isTimeOption;\r\n\r\n this.data.minToday = typeof this.data.minToday == \"undefined\" ? false : this.data.minToday;\r\n this.data.maxToday = typeof this.data.maxToday == \"undefined\" ? false : this.data.maxToday;\r\n this.data.dateRange = typeof this.data.dateRange == \"undefined\" ? null : this.data.dateRange;\r\n\r\n if (this.data.maxToday && this.data.minToday) {\r\n this.minDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n this.maxDate = new Date(new Date().setHours(23, 59, 59, 0));\r\n\r\n } else {\r\n\r\n if (this.data.minToday) {\r\n this.minDate = new Date();\r\n if (this.data.dateRange != null && this.data.dateRange != 0) {\r\n let range: Date = new Date(this.minDate.getTime() + ((1000 * 60 * 60 * 24) * this.data.dateRange));\r\n range = new Date(new Date(range).setHours(23, 59, 59, 0)); // Okunurluk düzeltmesi yap\r\n this.maxDate = range\r\n } else {\r\n this.maxDate = null\r\n }\r\n }\r\n\r\n if (this.data.maxToday) {\r\n this.maxDate = new Date(new Date().setHours(23, 59, 59, 0));\r\n if (this.data.dateRange != null && this.data.dateRange != 0) {\r\n let range: Date = new Date(this.maxDate.getTime() - ((1000 * 60 * 60 * 24) * this.data.dateRange));\r\n range = new Date(new Date(range).setHours(0, 0, 0, 0)); // Okunurluk düzeltmesi yap\r\n this.minDate = range\r\n } else {\r\n this.minDate = null\r\n }\r\n }\r\n }\r\n }\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n customValidation(e) {\r\n if ((!!e.value) && (e.event != null && e.value != e.previousValue)) {\r\n let checkDate = new Date(e.value)\r\n if (!!this.minDate && this.maxDate == null) {\r\n if (checkDate >= this.minDate) {\r\n this.data.value = checkDate\r\n } else {\r\n this.data.value = new Date();\r\n }\r\n\r\n } else if ((!!this.maxDate) && (this.minDate == null)) {\r\n if (checkDate <= this.maxDate) {\r\n this.data.value = checkDate\r\n } else {\r\n this.data.value = new Date();\r\n }\r\n\r\n } else if (!!this.maxDate && !!this.minDate) {\r\n if ((checkDate >= this.minDate) && (checkDate <= this.maxDate)) {\r\n this.data.value = checkDate\r\n } else {\r\n this.data.value = new Date();\r\n }\r\n\r\n }\r\n }\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n onValueChanged(e) {\r\n\r\n if (this.data.maxToday == true || this.data.minToday == true) {\r\n this.customValidation(e);\r\n }\r\n else {\r\n debugger;\r\n if (typeof e.event == \"undefined\") {\r\n this.data.isTodaySelected = typeof this.data.isTodaySelected == \"undefined\" ? true : this.data.isTodaySelected;\r\n this.data.isTodayTimeSelected = typeof this.data.isTodayTimeSelected == \"undefined\" ? true : this.data.isTodayTimeSelected;\r\n if (!this.isEdit && this.data.isTodaySelected == true) {\r\n if (this.componentService.isNewSchemaPopup == true || this.data.value == null) {\r\n if (this.data.isTodayTimeSelected == true)\r\n e.value = new Date();\r\n else\r\n e.value = new Date(new Date().setHours(0, 0, 0, 0));//.setHours(0, 0, 0);\r\n }\r\n }\r\n }\r\n this.data.value = e.value;\r\n }\r\n //this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", \"clean_element\", null);\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { AppInfoService, EventEmitterService, GenericService } from '../../shared/services';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { DxDiagramComponent } from 'devextreme-angular';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'diagram-component',\r\n templateUrl: './diagram.component.html',\r\n styleUrls: ['./diagram.component.css']\r\n})\r\nexport class DxEtrDiagramComponent implements OnInit, AfterViewInit {\r\n @ViewChild(\"diagramEtr\", { static: false }) diagram: DxDiagramComponent;\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n invokeButtonClickChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n\r\n constructor(public appInfo: AppInfoService,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeButtonClickChangeEventLocal = this.eventEmitterService.invokeButtonClick.subscribe(sub => {\r\n this.saveChanges();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n\r\n diagramData = {\r\n \"page\": {\r\n \"width\": 8391,\r\n \"height\": 11907,\r\n \"pageWidth\": 8391,\r\n \"pageHeight\": 11906,\r\n \"pageLandscape\": false,\r\n \"gridSize\": 180,\r\n \"snapToGrid\": true\r\n },\r\n \"connectors\": [{\r\n \"key\": \"116\",\r\n \"points\": [{\r\n \"x\": 2160,\r\n \"y\": 1800\r\n }, {\r\n \"x\": 2160,\r\n \"y\": 2340\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"beginItemKey\": \"107\",\r\n \"beginConnectionPointIndex\": 2,\r\n \"endItemKey\": \"108\",\r\n \"endConnectionPointIndex\": 0\r\n }, {\r\n \"key\": \"117\",\r\n \"points\": [{\r\n \"x\": 2160,\r\n \"y\": 3420\r\n }, {\r\n \"x\": 2160,\r\n \"y\": 3960\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"beginItemKey\": \"108\",\r\n \"beginConnectionPointIndex\": 2,\r\n \"endItemKey\": \"118\",\r\n \"endConnectionPointIndex\": 0\r\n }, {\r\n \"key\": \"122\",\r\n \"points\": [{\r\n \"x\": 3420,\r\n \"y\": 4680\r\n }, {\r\n \"x\": 5760,\r\n \"y\": 4680\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"texts\": {\r\n \"0.45\": \"No\"\r\n },\r\n \"beginItemKey\": \"118\",\r\n \"beginConnectionPointIndex\": 1,\r\n \"endItemKey\": \"121\",\r\n \"endConnectionPointIndex\": 3\r\n }, {\r\n \"key\": \"123\",\r\n \"points\": [{\r\n \"x\": 6840,\r\n \"y\": 4140\r\n }, {\r\n \"x\": 3420,\r\n \"y\": 2880\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"beginItemKey\": \"121\",\r\n \"beginConnectionPointIndex\": 0,\r\n \"endItemKey\": \"108\",\r\n \"endConnectionPointIndex\": 1\r\n }, {\r\n \"key\": \"126\",\r\n \"points\": [{\r\n \"x\": 3780,\r\n \"y\": 9180\r\n }, {\r\n \"x\": 2880,\r\n \"y\": 10440\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"texts\": {\r\n \"0.78\": \"A popular scenario?\"\r\n },\r\n \"beginItemKey\": \"120\",\r\n \"beginConnectionPointIndex\": 3,\r\n \"endItemKey\": \"125\",\r\n \"endConnectionPointIndex\": 0\r\n }, {\r\n \"key\": \"130\",\r\n \"points\": [{\r\n \"x\": 5220,\r\n \"y\": 9180\r\n }, {\r\n \"x\": 6120,\r\n \"y\": 10440\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"texts\": {\r\n \"0.77\": \"Missing info in\\nthe documentation?\"\r\n },\r\n \"beginItemKey\": \"120\",\r\n \"beginConnectionPointIndex\": 1,\r\n \"endItemKey\": \"127\",\r\n \"endConnectionPointIndex\": 0\r\n }, {\r\n \"key\": \"132\",\r\n \"points\": [{\r\n \"x\": 2160,\r\n \"y\": 5400\r\n }, {\r\n \"x\": 2160,\r\n \"y\": 6120\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"texts\": {\r\n \"0.47\": \"Yes\"\r\n },\r\n \"beginItemKey\": \"118\",\r\n \"beginConnectionPointIndex\": 2,\r\n \"endItemKey\": \"131\",\r\n \"endConnectionPointIndex\": 0\r\n }, {\r\n \"key\": \"124\",\r\n \"points\": [{\r\n \"x\": 2160,\r\n \"y\": 7200\r\n }, {\r\n \"x\": 4500,\r\n \"y\": 8820\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"beginItemKey\": \"131\",\r\n \"beginConnectionPointIndex\": 2,\r\n \"endItemKey\": \"120\",\r\n \"endConnectionPointIndex\": 0\r\n }, {\r\n \"key\": \"134\",\r\n \"points\": [{\r\n \"x\": 3420,\r\n \"y\": 6660\r\n }, {\r\n \"x\": 5760,\r\n \"y\": 6660\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"texts\": {\r\n \"0.5\": \"Need developer\\nassistance?\"\r\n },\r\n \"beginItemKey\": \"131\",\r\n \"beginConnectionPointIndex\": 1,\r\n \"endItemKey\": \"133\",\r\n \"endConnectionPointIndex\": 3\r\n }, {\r\n \"key\": \"135\",\r\n \"points\": [{\r\n \"x\": 6840,\r\n \"y\": 7200\r\n }, {\r\n \"x\": 4500,\r\n \"y\": 8820\r\n }\r\n ],\r\n \"zIndex\": 0,\r\n \"beginItemKey\": \"133\",\r\n \"beginConnectionPointIndex\": 2,\r\n \"endItemKey\": \"120\",\r\n \"endConnectionPointIndex\": 0\r\n }\r\n ],\r\n \"shapes\": [\r\n {\r\n \"key\": \"107\",\r\n \"type\": \"terminator\",\r\n \"text\": \"A new ticket\",\r\n \"x\": 1440,\r\n \"y\": 1080,\r\n \"width\": 1440,\r\n \"height\": 720,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"108\",\r\n \"type\": \"process\",\r\n \"text\": \"Analyze\\nthe issue\",\r\n \"x\": 900,\r\n \"y\": 2340,\r\n \"width\": 2520,\r\n \"height\": 1080,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"118\",\r\n \"type\": \"decision\",\r\n \"text\": \"Do we have all\\ninformation to\\nwork with?\",\r\n \"x\": 900,\r\n \"y\": 3960,\r\n \"width\": 2520,\r\n \"height\": 1440,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"120\",\r\n \"type\": \"terminator\",\r\n \"text\": \"Answered\",\r\n \"x\": 3780,\r\n \"y\": 8640,\r\n \"width\": 1440,\r\n \"height\": 720,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"121\",\r\n \"type\": \"process\",\r\n \"text\": \"Request additional\\ninformation or clarify\\nthe scenario\",\r\n \"x\": 5760,\r\n \"y\": 4140,\r\n \"width\": 2160,\r\n \"height\": 1080,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"125\",\r\n \"type\": \"process\",\r\n \"text\": \"Prepare an example in\\nCode Central\",\r\n \"x\": 1620,\r\n \"y\": 10440,\r\n \"width\": 2520,\r\n \"height\": 1080,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"127\",\r\n \"type\": \"process\",\r\n \"text\": \"Update the\\ndocumentation\",\r\n \"x\": 4860,\r\n \"y\": 10440,\r\n \"width\": 2520,\r\n \"height\": 1080,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"131\",\r\n \"type\": \"process\",\r\n \"text\": \"Process the\\nticket\",\r\n \"x\": 900,\r\n \"y\": 6120,\r\n \"width\": 2520,\r\n \"height\": 1080,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"133\",\r\n \"type\": \"process\",\r\n \"text\": \"Work with the\\nR&D team\",\r\n \"x\": 5760,\r\n \"y\": 6120,\r\n \"width\": 2160,\r\n \"height\": 1080,\r\n \"zIndex\": 0\r\n },\r\n {\r\n \"key\": \"136\",\r\n \"type\": \"text\",\r\n \"locked\": true,\r\n \"text\": \"Ticket Processing Flow\",\r\n \"x\": 360,\r\n \"y\": 360,\r\n \"width\": 7740,\r\n \"height\": 360,\r\n \"zIndex\": 0,\r\n \"styleText\": {\r\n \"font-size\": \"14pt\",\r\n \"font-weight\": \"bold\"\r\n }\r\n }\r\n ]\r\n }\r\n height = 500\r\n defaultLanguage: any = {};\r\n connections: any = [];\r\n\r\n dataSources: any;\r\n dataSourcePopup: boolean = false;\r\n isFromDataSource: boolean;\r\n showSettingPopup: boolean = false;\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showChamgeEventPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n showDisplay: any = \"flex\";\r\n designerDataSourceList: any;\r\n designerDatasourceModel: any;\r\n users = []\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.users = this.appInfo.RiverEntity.users\r\n\r\n if (!this.isEdit) {\r\n this.executeScript();\r\n }\r\n else {\r\n this.fillDesignerDataSource();\r\n }\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n this.height = typeof this.data.height == \"undefined\" ? 500 : this.data.height;\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n if (!this.isEdit) {\r\n this.data.customShapes.forEach(el => {\r\n debugger;\r\n this.genericService.executeQuerySecurited(el.Sql, el.connectionId).subscribe(data => {\r\n el.result = data\r\n this.changeDetectorRef.detectChanges()\r\n })\r\n\r\n })\r\n }\r\n \r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.data.customShapes.forEach(el => {\r\n this.diagram.toolbox.groups.push({ title: el.name, category: el.name, displayMode: 'texts' })\r\n this.diagram.customShapes.push()\r\n })\r\n setTimeout(el => {\r\n\r\n if (this.data.value) {\r\n console.log(this.data.value)\r\n this.diagram.instance.import(this.data.value)\r\n }\r\n\r\n console.log(this.diagram)\r\n\r\n this.diagram.instance._refresh()\r\n\r\n this.changeDetectorRef.detectChanges()\r\n\r\n }, 100)\r\n \r\n }\r\n\r\n saveChanges() {\r\n var exportData = this.diagram.instance.export();\r\n this.data.value = exportData;\r\n }\r\n\r\n activeShapes: any = { id: 0, text: \"\", name: \"\", columnName: \"\", connectionId : 0 ,Sql: \"\" }\r\n\r\n onEditShape(data) {\r\n this.activeShapes = data\r\n }\r\n\r\n saveCustomShape(val) {\r\n debugger;\r\n if (this.data.customShapes.length == 0) {\r\n this.activeShapes.id = 1;\r\n this.data.customShapes.push(val)\r\n } else {\r\n if (val.id == 0) {\r\n const lastItem = this.data.customShapes[this.data.customShapes.length - 1]\r\n this.activeShapes.id = lastItem.id + 1;\r\n this.data.customShapes.push(this.activeShapes)\r\n } else {\r\n let index = this.data.customShapes.findIndex(el => el.id == val.id)\r\n this.data.customShapes[index] = val\r\n }\r\n }\r\n this.activeShapes = { id: 0, text: \"\", name: \"\", columnName: \"\", connectionId: 0, Sql: \"\" }\r\n\r\n }\r\n\r\n onCustomCommand(e) {\r\n if (e.name === 'clear') {\r\n const result = confirm(this.languageLocal.diagramClear, 'Warning');\r\n result.then(\r\n (dialogResult) => {\r\n if (dialogResult) {\r\n e.component.import('');\r\n }\r\n },\r\n );\r\n }\r\n }\r\n\r\n currentFormSelectedGlobal;\r\n public genericServiceExecuteScript(_Query, _ConnectionId) {\r\n debugger;\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(this.currentFormSelectedGlobal.components, this.anotherPopupId);\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(_Query)) {\r\n let _match = _Query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = curentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n _Query = _Query.replace(f, _value);\r\n }\r\n });\r\n }\r\n //query = this.genericService.cleanSqlSyntax(query.replace(pattern, \"\"))\r\n }\r\n\r\n this.genericService.executeQuerySecurited(_Query, _ConnectionId).subscribe((result: any) => {\r\n debugger;\r\n if (result && result.length > 0) {\r\n let cols = Object.keys(result[0]);\r\n if (cols) {\r\n\r\n }\r\n this.data.dataSource = result;\r\n this.tasks = result;\r\n\r\n this.tasks.forEach(el => {\r\n let user: any = this.users.filter((e: any) => e.id.toString() === el[this.data.assignedColumnName])\r\n if (!!user[0] && !!user[0].fullName)\r\n el[this.data.assignedColumnName] = user[0].fullName\r\n else\r\n el[this.data.assignedColumnName] = \"\"\r\n })\r\n\r\n this.genericService.executeQuerySecurited(this.data.groupSql, this.data.dataStorage.connectionId).subscribe((res: any) => {\r\n debugger;\r\n if (res && res.length > 0) {\r\n res.forEach(el => {\r\n this.statuses.push(el[this.data.groupColumnName])\r\n })\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n this.statuses.forEach((status) => {\r\n this.lists.push(this.tasks.filter((task) => task[this.data.groupColumnName] === status));\r\n });\r\n\r\n\r\n }\r\n else {\r\n this.data.dataSource = [];\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n else {\r\n this.data.dataSource = [];\r\n }\r\n });\r\n\r\n }\r\n\r\n public executeScript() {\r\n debugger;\r\n if (this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n this.genericServiceExecuteScript(this.data.dataStorage.query, this.data.dataStorage.connectionId);\r\n }\r\n else if (this.data.dataSource && this.data.dataSource.length > 0) {\r\n\r\n let filteredData = this.data.dataSource.filter(f => f.lang == this.lang);\r\n if (filteredData && filteredData.length > 0)\r\n this.data.dataSource = filteredData;\r\n\r\n }\r\n else if (this.data.desktopDatasource != null) {\r\n\r\n this.fillDesignerDataSource();\r\n\r\n }\r\n }\r\n\r\n selecboxComponents: any = [];\r\n\r\n openDataPopup(type) {\r\n this.isFromDataSource = type == \"1\";\r\n if (this.isFromDataSource) {\r\n this.data.isManual = false;\r\n let selectboxes = this.componentService.getComponentsByType(\"selectbox\", this.anotherPopupId);\r\n this.selecboxComponents = [];\r\n if (selectboxes) {\r\n selectboxes.forEach(item => {\r\n if (item.id != this.data.id) {\r\n let element: any = {};\r\n element.id = item.id;\r\n element.name = this.componentService.getLang(this.lang, item.language).Label;\r\n this.selecboxComponents.push(element);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.data.isManual = true;\r\n }\r\n\r\n this.dataSourcePopup = true;\r\n }\r\n\r\n saveSetting() {\r\n\r\n this.data.desktopDatasource = this.designerDatasourceModel.ID;\r\n\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n onChangeDatasourceValue(event) {\r\n if (event.value) {\r\n\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == event.value);\r\n\r\n }\r\n }\r\n\r\n saveDataSource() {\r\n if (this.data.isManual && this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n let msg = \"\" + this.languageLocal.messageSqlLinkDeleted + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n\r\n if (dialogResult) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.dataSourcePopup = false;\r\n this.data.valueExpr = \"value\";\r\n //this.data.displayExpr = \"text\";\r\n }\r\n });\r\n }\r\n else {\r\n\r\n if (this.data.isManual) {\r\n this.data.valueExpr = \"value\";\r\n //this.data.displayExpr = \"text\";\r\n }\r\n\r\n this.dataSourcePopup = false;\r\n }\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n fillDesignerDataSource() {\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n\r\n this.genericService.fillDesignerDataSource().subscribe((result: any) => {\r\n\r\n this.designerDataSourceList = result;\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n if (this.data.desktopDatasource != null) {\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == this.data.desktopDatasource);\r\n\r\n if (typeof this.designerDatasourceModel.ID === \"undefined\")\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n tasks = []\r\n\r\n\r\n lists: any[] = [];\r\n\r\n statuses: string[] = [];\r\n\r\n onListReorder(e) {\r\n const list = this.lists.splice(e.fromIndex, 1)[0];\r\n this.lists.splice(e.toIndex, 0, list);\r\n\r\n const status = this.statuses.splice(e.fromIndex, 1)[0];\r\n this.statuses.splice(e.toIndex, 0, status);\r\n }\r\n\r\n onTaskDragStart(e) {\r\n e.itemData = e.fromData[e.fromIndex];\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n onTaskDrop(e) {\r\n e.fromData.splice(e.fromIndex, 1);\r\n e.toData.splice(e.toIndex, 0, e.itemData);\r\n }\r\n \r\n}\r\n","import { Component, OnInit, Input, ViewChild, ChangeDetectorRef } from '@angular/core';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { GenericService } from '../../shared/services';\r\n\r\n@Component({\r\n selector: 'app-display',\r\n templateUrl: './display.component.html',\r\n styleUrls: ['./display.component.scss']\r\n})\r\nexport class DxDisplayComponent implements OnInit {\r\n @ViewChild('gridContainer', { static: false }) dataGrid: DxDataGridComponent;\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n showDisplay: any = \"flex\";\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n\r\n editButtonOptions: any;\r\n popupVisible = false;\r\n\r\n\r\n poVisible: boolean = false;\r\n\r\n startEditAction: string = \"click\";\r\n selectTextOnEditStart: boolean = true;\r\n\r\n gridData: any = [];\r\n btnSettings = {\r\n icon: \"more\",\r\n type: \"default\",\r\n onClick: () => {\r\n this.openDataPopup();\r\n }\r\n };\r\n\r\n dataSources: any;\r\n dataGridPopup: boolean = false;\r\n\r\n selectedImageSrc: any;\r\n selectedVideoSrc: any;\r\n showImage: boolean = false;\r\n showVideo: boolean = false;\r\n languageLocal: any = \"\";\r\n\r\n constructor(private eventEmitterService: EventEmitterService,\r\n private sanitizer: DomSanitizer,\r\n private genericService: GenericService,\r\n private componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.getDataSources();\r\n if (!this.isEdit) {\r\n this.setData();\r\n }\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n setData() {\r\n if (this.data.dataSourceKey) {\r\n let ds = this.componentService.getDataSourceByKey(this.data.dataSourceKey, this.anotherPopupId);\r\n if (ds && ds.query != \"\" && ds.connectionString != \"\") {\r\n this.genericService.getDataTable(ds.query, ds.connectionString).subscribe(result => {\r\n this.data.dataSource = result;\r\n \r\n this.setValue(this.data.index);\r\n });\r\n }\r\n }\r\n }\r\n\r\n onChange() {\r\n this.eventEmitterService.executeExpretion(this.anotherPopupId);\r\n }\r\n\r\n openDataPopup() {\r\n /*let ds = this.componentService.getDataSourceByKey(this.data.dataSourceKey);\r\n this.data.dataSource = ds.dataSource;*/\r\n this.dataGridPopup = true;\r\n }\r\n\r\n getDataSources() {\r\n this.dataSources = this.componentService.getComponentsByType(\"datasource\", this.anotherPopupId);\r\n }\r\n\r\n selectedData(data) {\r\n let index = data.rowIndex;\r\n this.data.index = index;\r\n this.setValue(index);\r\n }\r\n\r\n setValue(index) {\r\n var cdata = this.data.dataSource[index];\r\n if (cdata) {\r\n this.data.value = cdata[this.data.dataSourceCol];\r\n this.data.imgSrc = cdata[this.data.imgCol];\r\n this.data.videoSrc = cdata[this.data.videoCol];\r\n this.dataGridPopup = false;\r\n }\r\n }\r\n\r\n\r\n showImagePopup(src) {\r\n this.selectedImageSrc = src;\r\n this.showImage = true;\r\n }\r\n\r\n showVideoPopup(src) {\r\n this.selectedVideoSrc = src;\r\n this.showVideo = true;\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n convertBinaryToBase64(imgByte) {\r\n let TYPED_ARRAY = new Uint8Array(imgByte); //binary data gelecek\r\n const STRING_CHAR = String.fromCharCode.apply(null, TYPED_ARRAY);\r\n let base64String = btoa(STRING_CHAR);\r\n return 'data:image/png;base64,' + base64String; //this.sanitizer.bypassSecurityTrustUrl('data:image/png;base64,' + base64String);\r\n /*const STRING_CHAR = TYPED_ARRAY.reduce((data, byte)=> {\r\n return data + String.fromCharCode(byte);\r\n }, ''));*/\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-email',\r\n templateUrl: './email.component.html',\r\n styleUrls: ['./email.component.css']\r\n})\r\nexport class DxEmailComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n invokeChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n constructor(private eventEmitterService: EventEmitterService, public changeDetectorRef: ChangeDetectorRef,public componentService: ComponentService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n // \r\n if (sub.data) this.data.value = sub.data;\r\n else this.data.value = \"\";\r\n //setTimeout(() => {\r\n // try {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // } catch{ }\r\n //}, 300);\r\n\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n }\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n onValueChanged(e) {\r\n this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", e.value, null);\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { AppInfoService, TaskService } from '../../shared/services';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-fileupload',\r\n templateUrl: './fileupload.component.html',\r\n styleUrls: ['./fileupload.component.css']\r\n})\r\nexport class DxFileuploadComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showFilesPopup: boolean = false;\r\n showPreviewFilesPopup: boolean = false;\r\n previewFileSrc: any;\r\n\r\n uploadedFiles: any = [];\r\n uploadResult = { isShow: false, status: \"success\", message: \"\" };\r\n totalSize: any = 0;\r\n\r\n showDisplay: any = \"flex\";\r\n languageLocal: any = \"\";\r\n invokeWarningChangeEventLocal: Subscription;\r\n\r\n borderColor = \"#dedede\"\r\n\r\n constructor(public taskService: TaskService, public appInfo: AppInfoService, private eventEmitterService: EventEmitterService, public componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n this.invokeWarningChangeEventLocal = this.eventEmitterService.invokeWarningChangeEvent.subscribe(sub => {\r\n if (!!sub.data && !!sub.data.requiredFiles) {\r\n if (sub.data.requiredFiles.includes(this.data.id)){\r\n this.changeToWarningColor()\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n deleteButtonVisible = false;\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n\r\n if (typeof this.data.valueTemp == \"undefined\")\r\n this.data.valueTemp = [];\r\n\r\n if (typeof this.data.dmsPath == \"undefined\")\r\n this.data.dmsPath = null;\r\n\r\n if (typeof this.componentService.currentProcessFormId != \"undefined\" && this.componentService.currentProcessFormId != 0) {\r\n this.taskService.GetProcessStarterId(this.componentService.currentProcessFormId).subscribe((r: any) => {\r\n if (r == this.appInfo.currentUser.id)\r\n this.deleteButtonVisible = true;\r\n }, error => {\r\n });\r\n }\r\n else\r\n this.deleteButtonVisible = true;\r\n\r\n }\r\n\r\n\r\n\r\n isExcludingComponent = false;\r\n selectExcludingComponent() {\r\n this.isExcludingComponent = true;\r\n }\r\n\r\n popupSelectedImageValue = [];\r\n popupSelectedImage: any;\r\n\r\n onFileSelectionChanged(e) {\r\n \r\n if (e.addedItems.length > 0 && this.isExcludingComponent != true) {\r\n this.popupSelectedImage = \"assets/img/default-placeholder.png\";\r\n this.popupSelectedImageValue = [];\r\n if (e.addedItems[0].fileType.indexOf(\"image/\") > -1) {\r\n let valueTempClone = this.componentService.cloneModel(e.addedItems[0]);\r\n this.popupSelectedImage = valueTempClone.src;\r\n this.popupSelectedImageValue.push(valueTempClone);\r\n //this.imageZoomPopup = true;\r\n }\r\n }\r\n else\r\n this.isExcludingComponent = false;\r\n \r\n }\r\n\r\n imageZoomPopup = false;\r\n showImageFile(i) {\r\n this.imageZoomPopup = true;\r\n }\r\n\r\n onZoomPopupHidden(e) {\r\n this.imageZoomPopup = false;\r\n }\r\n\r\n filesPopupHide(e) {\r\n this.popupSelectedImage = \"assets/img/default-placeholder.png\";\r\n this.popupSelectedImageValue = [];\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n\r\n onValueChanged = (e: any): void => {\r\n let errors = [];\r\n if (e.value.length) {\r\n this.changeToDefaultColor();\r\n //this.data.valu e = [];\r\n this.totalSize = 0;\r\n this.uploadResult.isShow = true;\r\n this.uploadResult.status = \"primary\";\r\n this.uploadResult.message = this.languageLocal.filesLoading;\r\n for (let i = 0; i < e.value.length; i++) {\r\n let checkSum = this.totalSize + e.value[i].size;\r\n if (checkSum > (this.data.maxFileSize * 1024 * 1024)) {\r\n let msg = e.value[i].name + \" (\" + Math.round(checkSum / 1024) + this.languageLocal.couldnotbeLoaded;\r\n errors.push(msg);\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\" \") + (this.languageLocal.fileSizeLimit + this.data.maxFileSize * 1024 + \" KB )\");\r\n continue;\r\n }\r\n\r\n\r\n\r\n this.getDocument(e.value[i]).then(document => {\r\n\r\n this.data.valueTemp.push(document);\r\n this.totalSize += e.value[i].size;\r\n if (i === (e.value.length - 1)) {\r\n if (errors.length) {\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\" \") + (this.languageLocal.fileSizeLimit + this.data.maxFileSize * 1024 + \" KB )\");\r\n }\r\n else {\r\n this.uploadResult.status = \"success\";\r\n this.uploadResult.message = this.languageLocal.filesUploaded;\r\n }\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n getDocument(file) {\r\n return new Promise(resolve => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n let fileName = file.name;\r\n let fileType: string = file.type;\r\n let base64BlobData: any = args.target.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n let fileSize = file.size;\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: fileType,\r\n extension: fileExtension,\r\n size: fileSize,\r\n isImg: this.componentService.isImage(fileExtension),\r\n dmsPath: this.data.dmsPath != null ? (this.generateDmsPath()) : (null)\r\n };\r\n resolve(document);\r\n\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n generateDmsPath() {\r\n debugger;\r\n let path = \"\"\r\n let words = this.data.dmsPath.split('/')\r\n words.forEach(el => {\r\n debugger;\r\n let regex = /\\{(.*?)\\}/g\r\n let regexResponse = regex.exec(el) //Index 0 = \"{example1}\", Index 1 = \"example1\"\r\n if (regexResponse != null) {\r\n let response = this.findAndReplaceBrackets(el)\r\n path += response + \"/\"\r\n } else {\r\n path += el + \"/\";\r\n }\r\n\r\n })\r\n\r\n if (path.charAt(path.length - 1) == \"/\") path = path.substring(0, path.length - 1)\r\n\r\n return path;\r\n \r\n }\r\n\r\n findAndReplaceBrackets(word: any) {\r\n\r\n if (word.includes('{') || word.includes('}')) {\r\n let regex = /\\{(.*?)\\}/g\r\n let regexResponse = regex.exec(word)\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let formComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let component = formComponents.find(f => f.id == regexResponse[1])\r\n word = word.replace(regexResponse[0], component.value)\r\n this.findAndReplaceBrackets(word)\r\n } else {\r\n return word\r\n }\r\n\r\n }\r\n\r\n showFiles() {\r\n this.popupSelectedImage = \"assets/img/default-placeholder.png\";\r\n this.popupSelectedImageValue = [];\r\n for (let i = 0; i < this.data.valueTemp.length; i++) {\r\n this.data.valueTemp[i].src = 'data:' + this.data.valueTemp[i].fileType + ';base64,' + this.data.valueTemp[i].base64BlobData;\r\n }\r\n this.showFilesPopup = true;\r\n }\r\n\r\n deleteFiles() {\r\n let result = confirm(\"\" + this.languageLocal.filesSureDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.uploadedFiles = [];\r\n for (let i = 0; i < this.data.valueTemp.length; i++) {\r\n this.eventEmitterService.setDeletedFileIds(this.data.valueTemp[i].id);\r\n }\r\n this.data.valueTemp = [];\r\n this.data.value = []\r\n this.uploadResult.isShow = false;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n }\r\n\r\n deleteFile(i) {\r\n let result = confirm(\"\" + this.languageLocal.fileDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n if (this.data.valueTemp && this.data.valueTemp.length > 0 && this.data.valueTemp[i])\r\n this.eventEmitterService.setDeletedFileIds(this.data.valueTemp[i].id);\r\n this.data.valueTemp.splice(i, 1);\r\n this.data.value.splice(i, 1);\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.showFiles();\r\n }\r\n });\r\n\r\n }\r\n\r\n createBlob(file) {\r\n return new Promise(resolve => {\r\n fetch(file.src)\r\n .then(res => res.blob())\r\n .then(blob => { resolve(blob) })\r\n .catch(err => { console.log(err) })\r\n });\r\n }\r\n\r\n // type = 'download' or 'preview'\r\n previewFile(file,type) {\r\n \r\n\r\n var a : any = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.style = \"display: none\";\r\n \r\n this.createBlob(file).then(\r\n (res : any) => {\r\n \r\n if (!!res) {\r\n const fileURL = window.URL.createObjectURL(res);\r\n\r\n a.href = fileURL;\r\n if (type == 'preview' && file.fileType == \"application/pdf\") {\r\n a.target = \"_blank\"\r\n } else {\r\n a.download = file.name;\r\n }\r\n a.click();\r\n window.URL.revokeObjectURL(fileURL);\r\n }\r\n \r\n }\r\n );\r\n \r\n //this.previewFileSrc = file.src;\r\n //this.showPreviewFilesPopup = true;\r\n }\r\n\r\n openPermissionPopup() {\r\n this.permissionPopup = true;\r\n }\r\n\r\n changeToWarningColor() {\r\n if (this.data.required) {\r\n this.borderColor = \"#d9534f\"\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n changeToDefaultColor() {\r\n this.borderColor = \"#dedede\"\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n}\r\n","import { Component, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n@Component({\r\n selector: 'formresult-component',\r\n templateUrl: './formresult.component.html',\r\n styleUrls: ['./formresult.component.css']\r\n})\r\nexport class DxFormResultComponent implements ComponentParameters {\r\n @Input() data: any;\r\n @Input() lang: any;\r\n @Input() isEdit: any;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n showDisplay: any = \"flex\";\r\n\r\n dataTypes = [{ \"name\": \"Decimal\", \"format\": \"#,##0.00\", \"type\": \"int\" }, { \"name\": \"Number\", \"format\": \"#\", \"type\": \"decimal\" }];\r\n possitions = [{ \"name\": \"Sol\", \"pos\": \"left\" }, { \"name\": \"Sağ\", \"pos\": \"right\" }];\r\n isFormatDisabled: boolean = false;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n languageLocal: any = \"\";\r\n\r\n constructor(private eventEmitterService: EventEmitterService, public componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n \r\n this.eventEmitterService.invokeColumnSumFunction.subscribe(sub => {\r\n \r\n if (sub.id === this.data.id || sub.id == \"sys_re_set_val\") {\r\n this.data.value = sub.sum;\r\n try { \r\n this.changeDetectorRef.detectChanges();\r\n } catch (ex) { }\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n\r\n update(): void {\r\n this.data.value = this.data.value;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n onChange() {\r\n //this.eventEmitterService.executeExpretion();\r\n }\r\n\r\n onValueChanged(event) {\r\n this.isFormatDisabled = event.value == \"#\";\r\n if (this.isFormatDisabled) this.data.inputType = \"int\";\r\n else this.data.inputType = \"decimal\";\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n setLanguageToDatas() {\r\n \r\n this.possitions = [\r\n { \"name\": this.languageLocal.left /*\"Sol\"*/, \"pos\": \"left\" },\r\n { \"name\": this.languageLocal.right /*\"Sağ\"*/, \"pos\": \"right\" }\r\n ];\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { GenericService, AppInfoService, ReportService } from '../../shared/services';\r\nimport { DashboardControl, ResourceManager } from 'devexpress-dashboard';\r\nimport { Subscription } from 'rxjs';\r\nimport { debug } from 'console';\r\n\r\n@Component({\r\n selector: 'app-gallery',\r\n templateUrl: './gallery.component.html',\r\n styleUrls: ['./gallery.component.css']\r\n})\r\nexport class DxGalleryComponent implements ComponentParameters, OnInit, AfterViewInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n showDisplay: any = \"block\";\r\n\r\n ismonacoActive: any = false;\r\n invokeChangeEventLocal: Subscription;\r\n invokeGalleryChangeEventLocal: Subscription;\r\n\r\n layoutEnum = { tile: 1, slider: 2, list: 3 };\r\n imageFormatEnum = { base64: 1, binary: 2 };\r\n\r\n\r\n imageFormats = [{ \"format\": \"1\", \"name\": \"Base64\" }, { \"format\": \"2\", \"name\": \"Binary\" }];\r\n layouts = [{ \"value\": 1, \"name\": \"Galeri\" }, { \"value\": 2, \"name\": \"Slider\" }, { \"value\": 3, \"name\": \"List\" }];\r\n currencyAll = [{ \"value\": '₺', \"name\": \"TL\" }, { \"value\": '$', \"name\": \"Dolar\" }, { \"value\": '€', \"name\": \"Euro\" }, { \"value\": '£', \"name\": \"Sterlin\" }, { \"value\": '₽', \"name\": \"Ruble\" }];\r\n //gridCols = [\"1\", \"2\", \"3\", \"4\", \"6\", \"12\"];\r\n\r\n filterTypeEnum = {\r\n \"showAll\": 1,\r\n \"showByCategory\": 2,\r\n \"showSelected\": 3,\r\n \"showBySearch\": 4,\r\n \"showByStock\": 5\r\n }\r\n //filterTypes = [\r\n // { \"value\": 1, \"name\": \"Tümünü Göster\" },\r\n // { \"value\": 2, \"name\": \"Kategoriye Göre Göster\" },\r\n // { \"value\": 3, \"name\": \"Seçilenleri Göster\" }\r\n //];\r\n gridCols = [\r\n { \"value\": \"2\", \"name\": \"6\" },\r\n { \"value\": \"3\", \"name\": \"4\" },\r\n { \"value\": \"4\", \"name\": \"3\" },\r\n { \"value\": \"6\", \"name\": \"2\" },\r\n { \"value\": \"12\", \"name\": \"1\" }\r\n ];\r\n itemPossition = [{ \"value\": \"bottom\", \"name\": \"Fotoğrafın Altı\" }, { \"value\": \"top\", \"name\": \"Fotoğrafın Üstü\" }];\r\n\r\n categories = [];\r\n allData: any = [];\r\n galeryData: any = [];\r\n selectedCategory: any;\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n quantityPermissionPopup: boolean = false;\r\n pricePermissionPopup: boolean = false;\r\n photosPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n imageZoomPopup: boolean = false;\r\n imageVariantZoomPopup: boolean = false;\r\n isThumbtack: boolean = true;\r\n\r\n selectedItemSrc: any;\r\n selectedCategoryId: number;\r\n\r\n connections: any = [];\r\n tableList: any = [];\r\n columnList: any = [];\r\n selectedTable = \"\";\r\n\r\n formElements: any;\r\n headerText = \"Tümü\";\r\n dashboards: any = []\r\n\r\n galleryChangeColumn = [];\r\n languageLocal: any = \"\";\r\n\r\n private dashboardControl!: DashboardControl;\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public appInfo: AppInfoService,\r\n private element: ElementRef,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public reportService: ReportService,\r\n public componentService: ComponentService,\r\n private genericService: GenericService) {\r\n ResourceManager.embedBundledResources();\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.formElements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n if (sub.elementId == this.data.id) {\r\n\r\n this.applyImagesToModel(sub.data, true, true);\r\n /*setTimeout(f => {\r\n this.changeDetectorRef.detectChanges();\r\n }, 300);*/\r\n }\r\n });\r\n\r\n\r\n this.invokeGalleryChangeEventLocal = this.eventEmitterService.invokeGalleryChangeEvent.subscribe(sub => {\r\n if (this.data.id != sub.id && sub.elementId == this.data.id) {\r\n\r\n if (sub.data) {\r\n if (this.galeryData.length != 0) {\r\n this.galleryChangeColumn = sub.data;\r\n if (this.selectedCategory == null)\r\n this.onFilterValueChanged(this.filterTypeEnum.showAll);\r\n else\r\n this.onFilterValueChanged(this.filterTypeEnum.showByCategory);\r\n // this.onSearchChange(this.gallerySearch);\r\n }\r\n else\r\n this.galleryChangeColumn = sub.data;\r\n\r\n this.calculateTotal();\r\n //if (this.galeryData.length != 0) {\r\n // for (let i = 0; i < this.galeryData.length; i++) {\r\n // sub.data.forEach(val => {\r\n // this.galeryData[i][val.column] = val.value;\r\n // });\r\n // }\r\n // this.galleryChangeColumn = sub.data;\r\n //}\r\n //else {\r\n // this.galleryChangeColumn = sub.data;\r\n //}\r\n }\r\n }\r\n });\r\n\r\n\r\n }\r\n changeAllCheckbox(e) {\r\n //showGridHeader\r\n this.data.storage.sqlHideColumns.forEach(field => {\r\n field.showGridHeader = e.value;\r\n });\r\n }\r\n getMaxQuantityColumnVisible(_data) {\r\n return _data.storage.maxQuantityColumn != '' && typeof _data.storage.maxQuantityColumn != 'undefined';\r\n }\r\n changeStorageColumns() {\r\n // this.data.storage.sqlHideColumns = [];\r\n //let keysSearch = this.allColumnsSql.filter(f =>\r\n // f != this.data.storage.keyColumn &&\r\n // f != this.data.storage.categoryColumn &&\r\n // f != this.data.storage.maxQuantityColumn &&\r\n // f != this.data.storage.photoColumn &&\r\n // f != this.data.storage.priceColumn &&\r\n // f != this.data.storage.videoColumn &&\r\n // f != this.data.storage.titleColumn);\r\n\r\n // keysSearch.forEach(item => {\r\n // let _t: any = {};\r\n // _t.name = item;\r\n // _t.hideColumn = false;\r\n // this.data.storage.sqlHideColumns.push(_t);\r\n // });\r\n }\r\n defaultHideColumn = false;\r\n allColumnsSql = [];\r\n sqlValueSetAll() {\r\n this.data.storage.sqlHideColumns = [];\r\n if (this.data.storage.query != \"\" && this.data.storage.connectionStringId > 0) {\r\n this.genericService.executeQuerySecurited(this.data.storage.query, this.data.storage.connectionStringId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n\r\n this.allColumnsSql = Object.keys(result[0]);\r\n let keysSearch = [];\r\n keysSearch = this.allColumnsSql.filter(f =>\r\n f != this.data.storage.keyColumn &&\r\n f != this.data.storage.categoryColumn &&\r\n f != this.data.storage.maxQuantityColumn &&\r\n f != this.data.storage.photoColumn &&\r\n f != this.data.storage.priceColumn &&\r\n f != this.data.storage.videoColumn &&\r\n f != this.data.storage.titleColumn);\r\n\r\n keysSearch.forEach(item => {\r\n let _t: any = {};\r\n _t.name = item;\r\n _t.hideColumn = false;\r\n _t.showOnDetail = false;\r\n this.data.storage.sqlHideColumns.push(_t);\r\n });\r\n //try {\r\n // this.changeDetectorRef.detectChanges();\r\n //} catch (ex) { }\r\n\r\n\r\n //result.forEach(item => {\r\n // let cat: any = {};\r\n // cat.name = item[this.data.category.valueCol]; \r\n // this.categories.push(cat);\r\n //});\r\n //try {\r\n // this.changeDetectorRef.detectChanges();\r\n //} catch (ex) { }\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n tabSelectionChanged(event) {\r\n this.ismonacoActive = false;\r\n this.isMonacoLoaded = false;\r\n setTimeout(f => { this.ismonacoActive = true; this.isMonacoLoaded = true; }, 800);\r\n }\r\n photosPopupOpen() {\r\n this.photosPopup = true;\r\n setTimeout(f => { this.ismonacoActive = true; }, 1000);\r\n }\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n this.invokeGalleryChangeEventLocal.unsubscribe();\r\n }\r\n ngOnInit() {\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n\r\n if (this.isEdit) this.getDashboards();\r\n\r\n\r\n //componentService.currentProcessFormId currentProcessFormId\r\n if (!this.isEdit) {\r\n this.loadCategories();\r\n // this.prepareImages();\r\n }\r\n //data.maxQuantity\r\n this.data.isQuantityEditable = typeof this.data.isQuantityEditable == \"undefined\" ? false : this.data.isQuantityEditable;\r\n this.data.showVariant = typeof this.data.isQuantityEditable == \"undefined\" ? false : this.data.showVariant;\r\n this.data.options.QuantityCategoryDisable = typeof this.data.options.QuantityCategoryDisable == \"undefined\" ? false : this.data.options.QuantityCategoryDisable;\r\n this.data.options.ProductImageHide = typeof this.data.options.ProductImageHide == \"undefined\" ? false : this.data.options.ProductImageHide;\r\n this.data.options.ProductImageHide = typeof this.data.options.ProductImageHide == \"undefined\" ? false : this.data.options.ProductImageHide;\r\n this.data.pagingSize = typeof this.data.pagingSize == \"undefined\" ? 12 : this.data.pagingSize;\r\n this.data.disableQuantityTextbox = typeof this.data.disableQuantityTextbox == \"undefined\" ? false : this.data.disableQuantityTextbox;\r\n this.pageLength = this.data.pagingSize;\r\n\r\n this.data.images = typeof this.data.images == \"undefined\" ? { connectionId: 0 } : this.data.images;\r\n\r\n this.data.variants = typeof this.data.variants == \"undefined\" ? { connectionId: 0 } : this.data.variants;\r\n\r\n this.data.variants.images = typeof this.data.variants.images == \"undefined\" ? { connectionId: 0 } : this.data.variants.images;\r\n\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n this.data.showVariant = typeof this.data.showVariant == \"undefined\" ? true : this.data.showVariant;\r\n\r\n\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n this.data.storage.totalColumnElements = typeof this.data.storage.totalColumnElements == \"undefined\" ? {} : this.data.storage.totalColumnElements;\r\n this.data.storage.multiplesOfQuantity = typeof this.data.storage.multiplesOfQuantity == \"undefined\" ? 1 : this.data.storage.multiplesOfQuantity;\r\n this.data.storage.queryPrice = typeof this.data.storage.queryPrice == \"undefined\" ? \"\" : this.data.storage.queryPrice;\r\n this.data.storage.queryQuantity = typeof this.data.storage.queryQuantity == \"undefined\" ? \"\" : this.data.storage.queryQuantity;\r\n try {\r\n this.data.storage.sqlHideColumns.forEach(element => {\r\n element.showOnDetail = typeof element.showOnDetail == \"undefined\" ? false : element.showOnDetail;\r\n });\r\n } catch { }\r\n this.data.storage.pricePermissions = typeof this.data.storage.pricePermissions == \"undefined\" ? { \"readonlyGroup\": [], \"readonlyUsers\": [], \"hideGroup\": [], \"hideUsers\": [] } : this.data.storage.pricePermissions;\r\n this.data.storage.quantityPermissions = typeof this.data.storage.quantityPermissions == \"undefined\" ? { \"readonlyGroup\": [], \"readonlyUsers\": [], \"hideGroup\": [], \"hideUsers\": [] } : this.data.storage.quantityPermissions;\r\n\r\n if (!this.isEdit) this.checkUserAuthorization();\r\n }\r\n\r\n checkUserAuthorization() {\r\n\r\n let userId = this.appInfo.currentUser.id;\r\n\r\n if (typeof this.data.storage.pricePermissions != \"undefined\") {\r\n //let price_rGroupIndex = this.data.storage.pricePermissions.readonlyGroup.indexOf(userId);\r\n //let price_rUsersIndex = this.data.storage.pricePermissions.readonlyUsers.indexOf(userId);\r\n let price_hGroupIndex = this.data.storage.pricePermissions.hideGroup.indexOf(userId);\r\n let price_hUsersIndex = this.data.storage.pricePermissions.hideUsers.indexOf(userId);\r\n\r\n if (price_hGroupIndex !== -1 || price_hUsersIndex !== -1) {\r\n this.data.isPriceEditable = false;\r\n }\r\n }\r\n\r\n if (typeof this.data.storage.quantityPermissions != \"undefined\") {\r\n\r\n //let quantity_rGroupIndex = this.data.storage.pricePermissions.readonlyGroup.indexOf(userId);\r\n //let quantity_rUsersIndex = this.data.storage.pricePermissions.readonlyUsers.indexOf(userId);\r\n let quantity_hGroupIndex = this.data.storage.quantityPermissions.hideGroup.indexOf(userId);\r\n let quantity_hUsersIndex = this.data.storage.quantityPermissions.hideUsers.indexOf(userId);\r\n\r\n if (quantity_hGroupIndex !== -1 || quantity_hUsersIndex !== -1) {\r\n this.data.isQuantityEditable = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isEdit && this.data.dashboardId > 0) {\r\n this.dashboardControl = new DashboardControl(this.element.nativeElement.querySelector(\".gallery-dashboard-container\"), {\r\n endpoint: this.appInfo.appUrl + \"api/dashboard\",//\"http://localhost:51857/api/dashboard/\",\r\n initialDashboardId: this.data.dashboardId + \"_\" + this.appInfo.currentUser.id,\r\n workingMode: \"Viewer\",\r\n });\r\n this.dashboardControl.render();\r\n }\r\n }\r\n\r\n getDashboards() {\r\n this.reportService.getReportWithoutCategory().subscribe(result => {\r\n this.dashboards = result;\r\n });\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n loadCategories() {\r\n\r\n if (this.data.category.query != \"\" && this.data.category.connectionId > 0) {\r\n this.genericService.executeQuerySecurited(this.data.category.query, this.data.category.connectionId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n result.forEach(item => {\r\n let cat: any = {};\r\n cat.value = item[this.data.category.valueCol];\r\n cat.name = item[this.data.category.displayCol];\r\n this.categories.push(cat);\r\n });\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n } catch (ex) { }\r\n }\r\n\r\n this.prepareImagesPageLoad();\r\n\r\n });\r\n }\r\n }\r\n\r\n changeThumbtack() {\r\n this.isThumbtack = !this.isThumbtack;\r\n }\r\n //onCategoryItemClick(e) {\r\n // this.selectedCategory = e.itemData;\r\n // this.headerText = e.itemData.name;\r\n // let val = e.itemData.valu e;\r\n // let filteredData = this.allData.filter(f => f[this.data.storage.categoryColumn]==val);\r\n // this.applyImagesToModel(filteredData, false);\r\n // this.data.category.filterType = this.filterTypeEnum.showByCategory;\r\n //}\r\n\r\n filterByCategory(category) {\r\n this.gallerySearch = \"\";\r\n this.selectedCategory = category;\r\n this.headerText = category.name;\r\n let filteredData = this.allData.filter(f => f[this.data.storage.categoryColumn] == category.value);\r\n this.applyImagesToModel(filteredData, true, true);\r\n this.data.category.filterType = this.filterTypeEnum.showByCategory;\r\n }\r\n\r\n gallerySearch = \"\";\r\n\r\n onEnterKey(e) {\r\n this.onSearchChange(this.gallerySearch);\r\n }\r\n onSearchChange(searchValue: string): void {\r\n\r\n let category = this.selectedCategory;\r\n // this.gallerySearch = searchValue;\r\n //let ggg = this.selectedCategory;\r\n // this.filterTypeEnum.showSelected\r\n let filteredTemp = this.allData.filter(f => typeof this.selectedCategory == \"undefined\" || this.selectedCategory == null || f[this.data.storage.categoryColumn] == category.value);\r\n //let filteredTemp;\r\n //if (this.filterType == this.filterTypeEnum.showByCategory)\r\n // filteredTemp = this.allData.filter(f => typeof this.selectedCategory == \"undefined\" || this.selectedCategory == null || f[this.data.storage.categoryColumn] == category.value);\r\n //else if (this.filterType == this.filterTypeEnum.showAll)\r\n // filteredTemp = this.allData;\r\n //else if (this.filterType == this.filterTypeEnum.showAll)\r\n // filteredTemp = this.allData.filter(f => f[this.data.storage.maxQuantityColumn] > 0);\r\n\r\n\r\n let keysTemp = Object.keys(this.allData[0]);\r\n let keysSearch = [];\r\n keysSearch = keysTemp.filter(f =>\r\n f != this.data.storage.keyColumn &&\r\n f != this.data.storage.categoryColumn &&\r\n f != this.data.storage.maxQuantityColumn &&\r\n f != this.data.storage.photoColumn &&\r\n f != this.data.storage.priceColumn &&\r\n f != this.data.storage.videoColumn);\r\n\r\n\r\n\r\n let filteredData = filteredTemp.filter(function (currentElement) {\r\n let returnVal = false;\r\n keysSearch.forEach(f => {\r\n if (!returnVal && currentElement[f] != null && typeof currentElement[f] != \"undefined\") {\r\n try {\r\n returnVal = currentElement[f].toString().toLowerCase().indexOf(searchValue.toLowerCase()) != -1;\r\n } catch (ex) {\r\n returnVal = currentElement[f].indexOf(searchValue.toLowerCase()) != -1;\r\n }\r\n }\r\n });\r\n return returnVal;\r\n });\r\n\r\n\r\n // let filteredData = this.allData.filter(f => f[this.data.storage.titleColumn].toLowerCase().indexOf(this.gallerySearch.toLowerCase()) > -1 && (typeof this.selectedCategory == \"undefined\" || f[this.data.storage.categoryColumn] == category.value));\r\n this.applyImagesToModel(filteredData, true, true);\r\n this.data.category.filterType = this.filterTypeEnum.showBySearch;\r\n\r\n }\r\n\r\n //filterMultiple(_obj) { \r\n\r\n //}\r\n\r\n //flexFilter = function (data,info) {\r\n\r\n // // Set our variables\r\n // var matchesFilter, matches = [], count = 0;\r\n\r\n // /***********\r\n // Helper function to loop through the filter criteria to find \r\n // matching values.\r\n // Each filter criteria is treated as \"AND\". So each item must \r\n // match all the filter criteria to be considered a match.\r\n // Multiple filter values in a filter field are treated as \"OR\"\r\n // i.e. [\"Blue\", \"Green\"] will yield items matching a value \r\n // of Blue OR Green.\r\n // ************/\r\n // matchesFilter = function (item) {\r\n // for (var n = 0; n < info.length; n++) {\r\n // if (info[n][\"Values\"].indexOf(item[info[n][\"Field\"]]) > -1) {\r\n // count++;\r\n // }\r\n // }\r\n // // If TRUE, then the current item in the array meets \r\n // // all the filter criteria\r\n // return count == info.length;\r\n // }\r\n\r\n // // Loop through each item in the array\r\n // for (var i = 0; i < data.length; i++) {\r\n\r\n // // Determine if the current item matches the filter criteria\r\n // if (matchesFilter(data[i])) {\r\n // matches.push(data[i]);\r\n // }\r\n\r\n // }\r\n\r\n // // Give us a new array containing the objects matching the filter criteria\r\n // return matches;\r\n // }\r\n\r\n\r\n prepareImagesPageLoad() {\r\n if (this.data.storage.query != \"\" && this.data.storage.connectionStringId > 0) {\r\n this.genericService.executeQuerySecurited(this.data.storage.query, this.data.storage.connectionStringId).subscribe(result => {\r\n if (result && result.length > 0) {\r\n this.allData = result;\r\n\r\n if (this.componentService.currentProcessFormId != 0) {\r\n this.onFilterValueChanged(3);\r\n }\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n prepareImages() {\r\n if (this.data.storage.query != \"\" && this.data.storage.connectionStringId > 0) {\r\n this.genericService.executeQuerySecurited(this.data.storage.query, this.data.storage.connectionStringId).subscribe(result => {\r\n if (result && result.length > 0) {\r\n this.allData = result;\r\n\r\n if (this.componentService.currentProcessFormId != 0) {\r\n this.onFilterValueChanged(3);\r\n }\r\n else\r\n this.applyImagesToModel(result, true, true);\r\n\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n filterType = this.filterTypeEnum.showAll;\r\n onFilterValueChanged(_val) {\r\n this.filterType = _val;\r\n this.galeryData = [];\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n let filteredData = [];\r\n if (_val == this.filterTypeEnum.showAll) {\r\n filteredData = this.allData;\r\n this.headerText = this.languageLocal.all;\r\n this.selectedCategory = null;\r\n }\r\n else if (_val == this.filterTypeEnum.showByCategory) {\r\n if (this.selectedCategory) {\r\n this.headerText = this.selectedCategory.name;\r\n filteredData = this.allData.filter(f => f[this.data.storage.categoryColumn] == this.selectedCategory.value);\r\n }\r\n else {\r\n this.headerText = \"\";\r\n }\r\n }\r\n else if (_val == this.filterTypeEnum.showSelected) {\r\n this.headerText = this.languageLocal.selected;\r\n this.selectedCategory = null;\r\n this.allData.forEach(f => {\r\n let item = this.data.value.find(k => k.galleryKey == f[this.data.storage.keyColumn]);\r\n\r\n if (item) {\r\n f.quantity = item.galleryQuantity;\r\n f.unit = item.galleryUnit;\r\n filteredData.push(f);\r\n }\r\n });\r\n\r\n if (filteredData.length <= 0) this.galeryData = [];\r\n }\r\n else if (_val == this.filterTypeEnum.showByStock) {\r\n this.headerText = this.languageLocal.inStock;\r\n //this.selectedCategory = null;\r\n if (this.selectedCategory == null) {\r\n filteredData = this.allData.filter(f => f[this.data.storage.maxQuantityColumn] > 0);\r\n } else {\r\n filteredData = this.allData.filter(f => f[this.data.storage.maxQuantityColumn] > 0 && f[this.data.storage.categoryColumn] == this.selectedCategory.value);\r\n }\r\n\r\n\r\n if (filteredData.length <= 0) this.galeryData = [];\r\n }\r\n \r\n this.applyImagesToModel(filteredData, true, true);\r\n }\r\n\r\n imageHeightFunc(_cols) {\r\n //background: #CCCCCC;width: 100%;display: flex;\r\n var height = _cols == '12' ? '70vw' : _cols == '6' ? '35vw' : _cols == '3' ? '15vw' : _cols == '2' ? '9vw' : '15vw';\r\n const styles = { 'height': height, 'background': '#CCCCCC', 'width': '100%', 'display': 'flex' };\r\n return styles;\r\n }\r\n\r\n listImageTableStyle(hideImage) {\r\n //background: #CCCCCC;width: 100%;display: flex;\r\n var width = hideImage ? '23px' : \"57px\";\r\n const styles = { 'height': '57px', 'width': width, 'max-width': width, 'padding': '4px' };\r\n return styles;\r\n }\r\n\r\n onChangePage(e) {//: Array\r\n\r\n this.htmlDomChange();\r\n\r\n // ((document.getElementsByClassName(\"page-item first-item\")).children)[0].innerHTML = \"\";\r\n\r\n if (e.length > 0) {\r\n let _position = (e[0].ID / this.pageLength) + 1;//(e[0].ID == 0 ? 1 : (e[0].ID - this.pageLength + 2));\r\n if (this.currentPageNumber != _position) {\r\n this.currentPageNumber = _position;\r\n this.applyImagesToModel(this.fullTotalData, true, false);\r\n }\r\n }\r\n }\r\n\r\n htmlDomChange() {\r\n\r\n try { (((document.querySelectorAll(\".page-item.first-item > a.page-link\"))[0])).innerHTML = \"<<\"; } catch (ex) { }\r\n try { (((document.querySelectorAll(\".page-item.previous-item > a.page-link\"))[0])).innerHTML = \"<\"; } catch (ex) { }\r\n try { (((document.querySelectorAll(\".page-item.last-item > a.page-link\"))[0])).innerHTML = \">>\"; } catch (ex) { }\r\n try { (((document.querySelectorAll(\".page-item.next-item > a.page-link\"))[0])).innerHTML = \">\"; } catch (ex) { }\r\n try { (((document.querySelectorAll(\"jw-pagination > ul.pagination\"))[0])).style.cssText = \"justify-content: center; margin-top: 10px;\"; } catch (ex) { }\r\n\r\n }\r\n\r\n\r\n currentPageNumber = 1;\r\n totalPageAll = 0;\r\n pageLength = 0;\r\n emptyTotalData = [];\r\n fullTotalData = [];\r\n //fillAllGaleryCategory\r\n applyImagesToModel(imagesData, applyDetect, currentPageClear) {\r\n\r\n this.totalPageAll = imagesData.length;\r\n\r\n if (currentPageClear) {\r\n this.currentPageNumber = 1;\r\n this.emptyTotalData = [];\r\n for (let i = 0; i < imagesData.length; i++) {\r\n this.emptyTotalData.push({ ID: i, NAME: \"\" });\r\n }\r\n // if (applyDetect) {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // }\r\n\r\n }\r\n //this.emptyTotalData = imagesData;\r\n //if (applyDetect) \r\n // this.changeDetectorRef.detectChanges();\r\n\r\n this.fullTotalData = imagesData;\r\n this.galeryData = [];\r\n if (imagesData && imagesData.length > 0) {\r\n let columns = Object.keys(imagesData[0]); //Kolon isimleri(ilk data kolon ismi tüm datalar için aynı)\r\n\r\n let _i = (this.currentPageNumber - 1) * this.pageLength;\r\n let forTwo = (this.pageLength * this.currentPageNumber) > imagesData.length ? imagesData.length : (this.pageLength * this.currentPageNumber); // (imagesData.length - (_i * this.currentPageNumber)) > (this.pageLength + 8) ? this.pageLength : imagesData.length; //(imagesData.length - (_i * this.currentPageNumber));\r\n\r\n\r\n // this.emptyTotalData = \r\n for (let i = _i; i < forTwo; i++) {\r\n let data: any = {};\r\n data.fields = [];\r\n let src = imagesData[i][this.data.storage.photoColumn]; //fotoğraf \r\n let str = src ? src.substring(0, 5) : \"\";\r\n if (str && str == \"data:\") data.src = src; // fotoğraf data tipi mime type varsa\r\n else data.src = 'data:image/jpg;base64,' + src;\r\n data.title = this.galleryChangeColumns(imagesData[i], this.data.storage.titleColumn, imagesData[i][this.data.storage.titleColumn]);\r\n data.price = this.galleryChangeColumns(imagesData[i], this.data.storage.priceColumn, imagesData[i][this.data.storage.priceColumn]);\r\n\r\n if (this.data.storage.maxQuantityColumn != null && typeof this.data.storage.maxQuantityColumn != \"undefined\" && this.data.storage.maxQuantityColumn != \"\") {\r\n data.maxQuantity = this.galleryChangeColumns(imagesData[i], this.data.storage.maxQuantityColumn, imagesData[i][this.data.storage.maxQuantityColumn]);\r\n }\r\n else {\r\n data.maxQuantity = 99999999;\r\n }\r\n data.key = imagesData[i][this.data.storage.keyColumn];\r\n //data.imageheight = this.data.options.cols == '4' ? '15vw' : this.data.options.cols == '6' ? '9vw' : '15vw'\r\n\r\n //Check if column hided or show on detail \r\n let dataStorageSqlHideColumns = this.data.storage.sqlHideColumns.filter(x => x.hideColumn == true || x.showOnDetail == true).map(m => m.name);\r\n\r\n data.columns = columns.filter(f =>\r\n f != this.data.storage.photoColumn\r\n && f != this.data.storage.keyColumn\r\n && f != this.data.storage.videoColumn\r\n && f != this.data.storage.titleColumn\r\n && f != this.data.storage.priceColumn\r\n && f != this.data.storage.maxQuantityColumn\r\n && dataStorageSqlHideColumns.indexOf(f) == -1);\r\n\r\n //check if column is not hidden and show on detail\r\n debugger;\r\n let dataStorageSqlDetailColumns = this.data.storage.sqlHideColumns.filter(x => x.hideColumn == false && x.showOnDetail == true).map(m => m.name);\r\n\r\n data.showOnDetailColumns = columns.filter(f =>\r\n f != this.data.storage.photoColumn\r\n && f != this.data.storage.keyColumn\r\n && f != this.data.storage.videoColumn\r\n && f != this.data.storage.titleColumn\r\n && f != this.data.storage.priceColumn\r\n && f != this.data.storage.maxQuantityColumn\r\n && f != this.data.storage.categoryColumn\r\n && dataStorageSqlDetailColumns.includes(f) == true);\r\n\r\n data.showDetail = false;\r\n\r\n data.isEditable = false;\r\n data.isEditableQuantity = false;\r\n data.videoUrl = imagesData[i][this.data.storage.videoColumn];\r\n let item = this.data.value.find(f => f.galleryKey == data.key);\r\n if (item) {\r\n data.quantity = item.galleryQuantity;\r\n data.unit = item.galleryUnit;\r\n data.price = this.galleryChangeColumns(imagesData[i], this.data.storage.priceColumn, item.galleryPrice)// item.galleryPrice;\r\n data.variantName = item.variantName;\r\n data.variantId = item.variantId;\r\n }\r\n else {\r\n data.quantity = 0;\r\n data.unit = \"\";\r\n }\r\n\r\n //sorgudan gelen kolon isim ve değerleri alınıyor\r\n let obj: any = {};\r\n columns.forEach(f => {\r\n if (f != this.data.storage.photoColumn\r\n && f != this.data.storage.keyColumn\r\n && f != this.data.storage.videoColumn\r\n && f != this.data.storage.titleColumn\r\n && f != this.data.storage.priceColumn) {\r\n obj[f] = imagesData[i][f];\r\n }\r\n });\r\n data.fields = obj;\r\n\r\n\r\n //Birimler için tanımlanmış sql script çalıştırılıyor\r\n data.unitItems = [];\r\n if (this.data.storage.unitQuery != \"\" && this.data.storage.unitConnectionId > 0) {\r\n let query = this.data.storage.unitQuery;\r\n columns.forEach(f => {\r\n if (f != this.data.storage.photoColumn) {\r\n let pref = \"{\" + f + \"}\";\r\n let value = imagesData[i][f];\r\n query = this.componentService.replaceAllUsingType(query, pref, value);//query.replace(pref, value);\r\n }\r\n });\r\n this.genericService.executeQuerySecurited(query, this.data.storage.unitConnectionId).subscribe(result => {\r\n if (result && result.length > 0) {\r\n let keys = Object.keys(result[0]);\r\n for (let i = 0; i < result.length; i++) {\r\n if (keys.length > 0) {\r\n let finalData = [];\r\n keys.forEach(f => {\r\n finalData.push(result[i][f]);\r\n });\r\n let unitText = finalData.join(\",\");\r\n data.unitItems.push(unitText);\r\n }\r\n }\r\n }\r\n let galleryDataLocal = this.componentService.cloneModel(data);\r\n galleryDataLocal.unit = galleryDataLocal.unitItems.length > 0 ? galleryDataLocal.unitItems[0] : \"\";\r\n this.galeryData.push(galleryDataLocal);\r\n\r\n this.categoryDisabled = this.galeryData.filter(f => f.quantity > 0).length > 0;\r\n\r\n if (applyDetect && this.galeryData.length == (forTwo - _i)) {\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n }\r\n else {\r\n\r\n let galleryDataLocal = this.componentService.cloneModel(data);\r\n galleryDataLocal.unit = galleryDataLocal.unitItems.length > 0 ? galleryDataLocal.unitItems[0] : \"\";\r\n\r\n this.galeryData.push(galleryDataLocal);\r\n\r\n this.categoryDisabled = this.galeryData.filter(f => f.quantity > 0).length > 0;\r\n\r\n if (applyDetect && this.galeryData.length == (forTwo - _i)) {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n\r\n galleryChangeColumns(galleryVal, column, defaultVal) {\r\n if (typeof this.galleryChangeColumn.find(x => x.column == column) != \"undefined\") {\r\n let _valTemp;\r\n let _val = this.galleryChangeColumn.find(x => x.column == column).value;\r\n var pattern = /\\[(\\w)+\\]/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(_val)) {\r\n let _match = _val.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n\r\n _valTemp = _val.replace(f, galleryVal[f.replace(\"[\", \"\").replace(\"]\", \"\")].toString());\r\n });\r\n }\r\n else\r\n _valTemp = _val;\r\n }\r\n else\r\n _valTemp = _val;\r\n\r\n if (typeof _valTemp != \"undefined\" && _valTemp != \"\") {\r\n try {\r\n _valTemp = eval(_valTemp);\r\n } catch (e) {\r\n _valTemp = _valTemp;\r\n }\r\n }\r\n else\r\n _valTemp = \"\";\r\n\r\n return _valTemp;\r\n //_val.replaceAll();\r\n //galleryVal[]\r\n }\r\n else\r\n return defaultVal\r\n }\r\n\r\n variantsData: any = [];\r\n variantsGaleryData: any = [];\r\n variantGalerySelect: any = 0;\r\n variantsPopup: any = false;\r\n openVariantPopup(galery) {\r\n\r\n this.variantsPopup = true;\r\n\r\n if (this.data.variants.query != \"\" && this.data.variants.connectionId > 0) {\r\n var date = new Date();\r\n var timestamp = date.getTime();\r\n\r\n this.variantGalerySelect = galery.key;\r\n\r\n let _query = \"SELECT * FROM(\" + this.data.variants.query + \") [IMAGES \" + timestamp + \"] WHERE \" + this.data.variants.joinColumn + \"='\" + galery.key + \"'\";\r\n this.genericService.executeQuerySecurited(_query, this.data.category.connectionId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n\r\n result.forEach(item => {\r\n let _var: any = {};\r\n\r\n let _src = item[this.data.variants.image];\r\n let str = _src ? _src.substring(0, 5) : \"\";\r\n if (str && str == \"data:\") _var.src = _src; // fotoğraf data tipi mime type varsa\r\n else _var.src = 'data:image/jpg;base64,' + _src;\r\n\r\n _var.title = item[this.data.variants.name];\r\n _var.id = item[this.data.variants.id];\r\n this.variantsData.push(_var);\r\n });\r\n\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n } catch (ex) { }\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n selectVariant(_id, _title) {\r\n\r\n this.variantsData = [];\r\n this.variantsPopup = false;\r\n\r\n let _gal = this.galeryData.find(x => x.key == this.variantGalerySelect);\r\n if (_gal) {\r\n _gal.variantName = _title;\r\n _gal.variantId = _id;\r\n }\r\n\r\n let item = this.data.value.find(f => f.galleryKey == this.variantGalerySelect);\r\n if (item) {\r\n item.variantName = _title;\r\n item.variantId = _id;\r\n }\r\n\r\n let itemVariants = this.variantsGaleryData.find(f => f.id == this.variantGalerySelect);\r\n if (itemVariants) {\r\n itemVariants.variantName = _title;\r\n itemVariants.variantId = _id;\r\n itemVariants.id = this.variantGalerySelect;\r\n }\r\n else {\r\n let itemVariantObj = { variantName: \"\", variantId: 0, id: 0 };\r\n itemVariantObj.variantName = _title;\r\n itemVariantObj.variantId = _id;\r\n itemVariantObj.id = this.variantGalerySelect;\r\n this.variantsGaleryData.push(itemVariantObj);\r\n }\r\n\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n } catch (ex) { }\r\n }\r\n\r\n onVariantsPopupHidden() {\r\n this.variantsData = [];\r\n }\r\n\r\n convertBinaryToBase64(imgByte) {\r\n let TYPED_ARRAY = new Uint8Array(imgByte); //binary data gelecek\r\n const STRING_CHAR = String.fromCharCode.apply(null, TYPED_ARRAY);\r\n let base64String = btoa(STRING_CHAR);\r\n return 'data:image/jpg;base64,' + base64String; //this.sanitizer.bypassSecurityTrustUrl('data:image/png;base64,' + base64String);\r\n /*const STRING_CHAR = TYPED_ARRAY.reduce((data, byte)=> {\r\n return data + String.fromCharCode(byte);\r\n }, ''));*/\r\n }\r\n\r\n connectionListValueChanged(event) {\r\n if (event.value > 0) {\r\n this.genericService.getTables(event.value).subscribe((result: any) => {\r\n this.tableList = result;\r\n });\r\n }\r\n }\r\n\r\n\r\n tablesValueChanged() {\r\n this.data.storage.query = \"SELECT * FROM \" + this.selectedTable;\r\n /*if (this.data.storage.connectionStringId > 0 && this.selectedTable != \"\") {\r\n this.genericService.getTableColumns(this.selectedTable, this.data.storage.connectionStringId).subscribe((result: any) => {\r\n this.columnList = result;\r\n });\r\n }*/\r\n }\r\n\r\n monacoOnInit() {\r\n this.isMonacoLoaded = true;\r\n }\r\n\r\n setVariantsSelected(key) {\r\n let itemWithVariant = this.data.value.find(f => f.galleryKey == key);\r\n let _variant = this.variantsGaleryData.find(f => f.id == key);\r\n if (typeof itemWithVariant != \"undefined\" && typeof _variant != \"undefined\") {//typeof this.selectedCategory == \"undefined\"\r\n itemWithVariant.variantName = _variant.variantName;\r\n itemWithVariant.variantId = _variant.variantId;\r\n }\r\n }\r\n\r\n increase(key) {\r\n this.data.storage.multiplesOfQuantity = typeof this.data.storage.multiplesOfQuantity == \"undefined\" ? 1 : this.data.storage.multiplesOfQuantity;\r\n let data_local = this.galeryData.find(f => f.key == key);\r\n let item = this.data.value.find(f => f.galleryKey == key);\r\n if (data_local.quantity < data_local.maxQuantity) {\r\n data_local.quantity = data_local.quantity + this.data.storage.multiplesOfQuantity;\r\n\r\n if (item) {\r\n item.galleryQuantity = data_local.quantity;\r\n }\r\n else {\r\n let val: any = data_local.fields;\r\n val.galleryKey = data_local.key;\r\n val.galleryTitle = data_local.title;\r\n val.galleryPrice = data_local.price;\r\n val.galleryQuantity = data_local.quantity;\r\n val.galleryUnit = data_local.unit;\r\n this.data.value.push(val);\r\n }\r\n\r\n }\r\n\r\n this.setVariantsSelected(key);\r\n\r\n this.categoryDisabled = this.galeryData.filter(f => f.quantity > 0).length > 0;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // try { this.calculateTotal(); } catch (ex) { }\r\n }\r\n\r\n decrease(key) {\r\n this.data.storage.multiplesOfQuantity = typeof this.data.storage.multiplesOfQuantity == \"undefined\" ? 1 : this.data.storage.multiplesOfQuantity;\r\n\r\n let data_local = this.galeryData.find(f => f.key == key);\r\n let item = this.data.value.find(f => f.galleryKey == key);\r\n //let item = this.data.value[this.data.value.indexOf(data)];\r\n if (data_local.quantity > 0) {\r\n data_local.quantity = data_local.quantity - this.data.storage.multiplesOfQuantity;\r\n item.galleryQuantity = data_local.quantity;// item.galleryQuantity - 1;\r\n if (item.galleryQuantity <= 0) {\r\n this.data.value.splice(this.data.value.indexOf(item), 1);\r\n }\r\n\r\n }\r\n\r\n this.setVariantsSelected(key);\r\n\r\n this.categoryDisabled = this.galeryData.filter(f => f.quantity > 0).length > 0;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // try { this.calculateTotal(); } catch (ex) { }\r\n\r\n }\r\n\r\n categoryDisabled = false;\r\n onQuantityChange(e, key) {\r\n this.data.storage.multiplesOfQuantity = typeof this.data.storage.multiplesOfQuantity == \"undefined\" ? 1 : this.data.storage.multiplesOfQuantity;\r\n let data_local = this.galeryData.find(f => f.key == key);\r\n let item = this.data.value.find(f => f.galleryKey == key);\r\n if (item) {\r\n if (data_local.quantity > 0) {\r\n if (data_local.quantity <= data_local.maxQuantity) {\r\n item.galleryQuantity = data_local.quantity;\r\n }\r\n else {\r\n item.galleryQuantity = data_local.maxQuantity;\r\n }\r\n }\r\n else {\r\n this.data.value.splice(this.data.value.indexOf(item), 1);\r\n }\r\n }\r\n else if (data_local.quantity > 0) {\r\n let val: any = data_local.fields;\r\n val.galleryKey = data_local.key;\r\n val.galleryTitle = data_local.title;\r\n val.galleryPrice = data_local.price;\r\n val.galleryQuantity = data_local.quantity <= data_local.maxQuantity ? data_local.quantity : data_local.maxQuantity;\r\n val.galleryUnit = data_local.unit;\r\n this.data.value.push(val);\r\n }\r\n\r\n this.setVariantsSelected(key);\r\n\r\n this.categoryDisabled = this.galeryData.filter(f => f.quantity > 0).length > 0;\r\n\r\n this.calculateTotal();\r\n }\r\n\r\n categoryAHrefClasses(catVal) {\r\n return this.categoryDisabled && this.data.options.QuantityCategoryDisable ? \"gallery-menu-items disable-anchor-tag\" : \"gallery-menu-items\";\r\n }\r\n\r\n categoryLiClasses(catVal) {\r\n let classActive = this.selectedCategory && this.selectedCategory.value == catVal ? \"active\" : \"\";\r\n let classDisable = this.categoryDisabled && this.data.options.QuantityCategoryDisable ? \" disable-anchor-tag\" : \"\";\r\n return classDisable + classActive;\r\n }\r\n\r\n calculateTotal() {\r\n\r\n if ((this.data.storage.totalColumn || !this.data.isVideoGallery) && this.data.storage.totalColumnElement) {\r\n let total = 0;\r\n this.data.value.forEach(item => {\r\n let priceNewObj = this.allData.find(f => f[this.data.storage.keyColumn] == item.galleryKey);\r\n if (priceNewObj) {\r\n let newPrice = this.galleryChangeColumns(priceNewObj, this.data.storage.priceColumn, item.galleryPrice)\r\n let subElement = newPrice;// item.galleryPrice;\r\n if (subElement) {\r\n total += item.galleryQuantity * subElement;\r\n }\r\n }\r\n });\r\n this.eventEmitterService.setColumnSumToComponent(this.data.storage.totalColumnElement, total);\r\n }\r\n\r\n if (typeof this.data.storage.totalColumnElements != \"undefined\" /*&& Array.isArray(this.data.storage.totalColumnElements)*/) {\r\n Object.keys(this.data.storage.totalColumnElements).forEach(val => {\r\n\r\n let total = 0;\r\n this.data.value.forEach(item => {\r\n let subElement = item[val];\r\n if (subElement) {\r\n total += item.galleryQuantity * subElement;\r\n }\r\n });\r\n this.eventEmitterService.setColumnSumToComponent(this.data.storage.totalColumnElements[val], total);\r\n\r\n });\r\n }\r\n }\r\n\r\n onUnitValueChanged(value, key) {\r\n let item = this.data.value.find(f => f.galleryKey == key);\r\n if (item) {\r\n item.galleryUnit = value;\r\n }\r\n }\r\n\r\n editPrice(item) {\r\n\r\n item.isEditable = true;\r\n }\r\n\r\n editQuantity(item) {\r\n console.log(\"editQuantity\");\r\n //console.log(item);\r\n item.isEditableQuantity = true;\r\n }\r\n\r\n changeEditPriceMode(item) {\r\n item.isEditable = false;\r\n\r\n if (this.data.isPriceEditable && this.data.storage.queryPrice != null && this.data.storage.queryPrice != \"\") {\r\n let msg = \"\" + this.languageLocal.messageSave + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n\r\n let _queryPrice: string = this.data.storage.queryPrice;\r\n const _query = _queryPrice.replace(\"{fiyat}\", item.price).replace(\"{id}\", item.key)\r\n\r\n this.genericService.executeQuerySecurited(_query, this.data.images.connectionId).subscribe(result => {\r\n //console.log(_query);\r\n //console.log(result);\r\n })\r\n\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n changeEditQuantityMode(item) {\r\n item.isEditableQuantity = false;\r\n\r\n if (this.data.isQuantityEditable && this.data.storage.queryQuantity != null && this.data.storage.queryQuantity != \"\") {\r\n let msg = \"\" + this.languageLocal.messageSave + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n\r\n let _queryQuantity: string = this.data.storage.queryQuantity;\r\n const _query = _queryQuantity.replace(\"{miktar}\", item.maxQuantity).replace(\"{id}\", item.key)\r\n\r\n this.genericService.executeQuerySecurited(_query, this.data.images.connectionId).subscribe(result => {\r\n //console.log(_query);\r\n //console.log(result);\r\n })\r\n\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n popupImagesItem = [];\r\n imageZoomPopupGallery = false;\r\n openZoomPopup(src, key) {\r\n //connectionId\r\n\r\n if (this.data.images.connectionId > 0 && this.data.images.query && this.data.images.query != \"\") {\r\n var date = new Date();\r\n var timestamp = date.getTime();\r\n let _query = \"SELECT * FROM(\" + this.data.images.query + \") [IMAGES \" + timestamp + \"] WHERE \" + this.data.images.itemValueCol + \"='\" + key + \"'\";\r\n this.genericService.executeQuerySecurited(_query, this.data.images.connectionId).subscribe(result => {\r\n if (result && result.length > 0) {\r\n\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n src = this.strtoBasePre(src);\r\n this.popupImagesItem.push(src);\r\n for (let i = 0; i < result.length; i++) {\r\n let _src = this.strtoBasePre(result[i][this.data.images.displayCol]);\r\n this.popupImagesItem.push(_src);\r\n }\r\n\r\n if (this.popupImagesItem.length > 1) {\r\n this.selectedItemSrc = null;\r\n this.imageZoomPopup = true;\r\n this.imageZoomPopupGallery = true;\r\n }\r\n else\r\n this.videoAndImageFirst(src, key);\r\n }\r\n else\r\n this.videoAndImageFirst(src, key);\r\n }\r\n else\r\n this.videoAndImageFirst(src, key);\r\n });\r\n\r\n }\r\n else\r\n this.videoAndImageFirst(src, key);\r\n\r\n }\r\n\r\n imageVariantZoomPopupGallery = false;\r\n popupVariantImagesItem = [];\r\n openVariantZoomPopup(src, key) {\r\n if (this.data.variants.images.connectionId > 0 && this.data.variants.images.query && this.data.variants.images.query != \"\") {\r\n var date = new Date();\r\n var timestamp = date.getTime();\r\n let _query = \"SELECT * FROM(\" + this.data.variants.images.query + \") [IMAGES \" + timestamp + \"] WHERE \" + this.data.variants.images.itemValueCol + \"='\" + key + \"'\";\r\n this.genericService.executeQuerySecurited(_query, this.data.variants.images.connectionId).subscribe(result => {\r\n if (result && result.length > 0) {\r\n\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n src = this.strtoBasePre(src);\r\n this.popupVariantImagesItem.push(src);\r\n for (let i = 0; i < result.length; i++) {\r\n let _src = this.strtoBasePre(result[i][this.data.variants.images.displayCol]);\r\n this.popupVariantImagesItem.push(_src);\r\n }\r\n\r\n\r\n this.imageVariantZoomPopup = true;\r\n this.imageVariantZoomPopupGallery = true;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n else {\r\n src = this.strtoBasePre(src);\r\n this.popupVariantImagesItem.push(src);\r\n this.imageVariantZoomPopup = true;\r\n this.imageVariantZoomPopupGallery = true;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n });\r\n\r\n }\r\n else {\r\n src = this.strtoBasePre(src);\r\n this.popupVariantImagesItem.push(src);\r\n this.imageVariantZoomPopup = true;\r\n this.imageVariantZoomPopupGallery = true;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n }\r\n\r\n strtoBasePre(_imageData) {\r\n let str = _imageData ? _imageData.substring(0, 5) : \"\";\r\n if (str && str == \"data:\") _imageData = _imageData; // fotoğraf data tipi mime type varsa\r\n else _imageData = 'data:image/jpg;base64,' + _imageData;\r\n return _imageData;\r\n }\r\n videoAndImageFirst(src, key) {\r\n\r\n if (this.data.isVideoGallery) {\r\n let galery = this.galeryData.find(f => f.key == key);\r\n if (galery) {\r\n this.selectedItemSrc = galery.videoUrl;\r\n if (!this.selectedItemSrc || this.selectedItemSrc == \"\")\r\n this.selectedItemSrc = src;\r\n }\r\n else {\r\n this.selectedItemSrc = src;\r\n }\r\n }\r\n else {\r\n this.selectedItemSrc = src;\r\n }\r\n this.imageZoomPopup = true;\r\n }\r\n\r\n onZoomPopupHidden() {\r\n this.selectedItemSrc = null;\r\n this.popupImagesItem = [];\r\n this.imageZoomPopupGallery = false;\r\n }\r\n\r\n onVariantZoomPopupHidden() {\r\n this.popupVariantImagesItem = [];\r\n this.imageVariantZoomPopupGallery = false;\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n setLanguageToDatas() {\r\n this.layouts = [\r\n { \"value\": 1, \"name\": this.languageLocal.gallery/*\"Galeri\"*/ },\r\n { \"value\": 2, \"name\": \"Slider\" },\r\n { \"value\": 3, \"name\": \"List\" }\r\n ];\r\n this.currencyAll = [\r\n { \"value\": '₺', \"name\": \"TL\" },\r\n { \"value\": '$', \"name\": this.languageLocal.dollar/*\"Dolar\"*/ },\r\n { \"value\": '€', \"name\": \"Euro\" },\r\n { \"value\": '£', \"name\": this.languageLocal.sterling/*\"Sterlin\"*/ },\r\n { \"value\": '₽', \"name\": \"Ruble\" }\r\n ];\r\n\r\n\r\n this.itemPossition = [\r\n { \"value\": \"bottom\", \"name\": this.languageLocal.underPhoto/*\"Fotoğrafın Altı\"*/ },\r\n { \"value\": \"top\", \"name\": this.languageLocal.topPhoto/*\"Fotoğrafın Üstü\"*/ }\r\n ];\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { AppInfoService, EventEmitterService, GenericService } from '../../shared/services';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Dependency, Resource, ResourceAssignment, Task, GanttDemoService } from './gantt.service';\r\n\r\n@Component({\r\n selector: 'gantt-component',\r\n templateUrl: './gantt.component.html',\r\n styleUrls: ['./gantt.component.css']\r\n})\r\nexport class DxGanttComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n tasks: Task[];\r\n dependencies: Dependency[];\r\n resources: Resource[];\r\n resourceAssignments: ResourceAssignment[];\r\n languageLocal: any = \"\";\r\n\r\n constructor(public appInfo: AppInfoService,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n private GanttDemoService: GanttDemoService ) {\r\n\r\n this.dependencies = GanttDemoService.getDependencies();\r\n this.resources = GanttDemoService.getResources();\r\n this.resourceAssignments = GanttDemoService.getResourceAssignments();\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n\r\n height = 500\r\n defaultLanguage: any = {};\r\n connections: any = [];\r\n\r\n dataSources: any;\r\n dataSourcePopup: boolean = false;\r\n isFromDataSource: boolean;\r\n showSettingPopup: boolean = false;\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showChamgeEventPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n showDisplay: any = \"flex\";\r\n designerDataSourceList: any;\r\n designerDatasourceModel: any;\r\n\r\n ngOnInit() {\r\n\r\n if (!this.isEdit) {\r\n this.genericServiceExecuteScript(this.data.task.query, this.data.task.connectionId);\r\n }\r\n else {\r\n this.fillDesignerDataSource();\r\n }\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n this.height = typeof this.data.height == \"undefined\" ? 500 : this.data.height;\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n\r\n currentFormSelectedGlobal;\r\n public genericServiceExecuteScript(_Query, _ConnectionId) {\r\n debugger;\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(this.currentFormSelectedGlobal.components, this.anotherPopupId);\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(_Query)) {\r\n let _match = _Query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = curentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n _Query = _Query.replace(f, _value);\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.genericService.executeQuerySecurited(_Query, _ConnectionId).subscribe((result: any) => {\r\n debugger;\r\n if (result && result.length > 0) {\r\n let cols = Object.keys(result[0]);\r\n if (cols) {\r\n\r\n }\r\n this.data.dataSource = result;\r\n\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n else {\r\n this.data.dataSource = [];\r\n }\r\n });\r\n\r\n }\r\n\r\n public executeScript() {\r\n debugger;\r\n if (this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n this.genericServiceExecuteScript(this.data.dataStorage.query, this.data.dataStorage.connectionId);\r\n }\r\n else if (this.data.dataSource && this.data.dataSource.length > 0) {\r\n\r\n let filteredData = this.data.dataSource.filter(f => f.lang == this.lang);\r\n if (filteredData && filteredData.length > 0)\r\n this.data.dataSource = filteredData;\r\n\r\n }\r\n else if (this.data.desktopDatasource != null) {\r\n\r\n this.fillDesignerDataSource();\r\n\r\n }\r\n }\r\n\r\n\r\n selecboxComponents: any = [];\r\n\r\n kanbanGroupsPopup: boolean = false;\r\n\r\n openDataPopup(type) {\r\n this.isFromDataSource = type == \"1\";\r\n if (this.isFromDataSource) {\r\n this.data.isManual = false;\r\n let selectboxes = this.componentService.getComponentsByType(\"selectbox\", this.anotherPopupId);\r\n this.selecboxComponents = [];\r\n if (selectboxes) {\r\n selectboxes.forEach(item => {\r\n if (item.id != this.data.id) {\r\n let element: any = {};\r\n element.id = item.id;\r\n element.name = this.componentService.getLang(this.lang, item.language).Label;\r\n this.selecboxComponents.push(element);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.data.isManual = true;\r\n }\r\n\r\n this.dataSourcePopup = true;\r\n }\r\n\r\n saveSetting() {\r\n\r\n this.data.desktopDatasource = this.designerDatasourceModel.ID;\r\n\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n onChangeDatasourceValue(event) {\r\n if (event.value) {\r\n\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == event.value);\r\n\r\n }\r\n }\r\n\r\n saveDataSource() {\r\n if (this.data.isManual && this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n let msg = \"\" + this.languageLocal.messageSqlLinkDeleted + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n\r\n if (dialogResult) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.dataSourcePopup = false;\r\n this.data.valueExpr = \"value\";\r\n //this.data.displayExpr = \"text\";\r\n }\r\n });\r\n }\r\n else {\r\n\r\n if (this.data.isManual) {\r\n this.data.valueExpr = \"value\";\r\n //this.data.displayExpr = \"text\";\r\n }\r\n\r\n this.dataSourcePopup = false;\r\n }\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n fillDesignerDataSource() {\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n\r\n this.genericService.fillDesignerDataSource().subscribe((result: any) => {\r\n\r\n this.designerDataSourceList = result;\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n if (this.data.desktopDatasource != null) {\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == this.data.desktopDatasource);\r\n\r\n if (typeof this.designerDatasourceModel.ID === \"undefined\")\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core'; \r\n\r\nexport class Task {\r\n id: number;\r\n\r\n parentId: number;\r\n\r\n title: string;\r\n\r\n start: Date;\r\n\r\n end: Date;\r\n\r\n progress: number;\r\n\r\n \r\n}\r\n\r\nexport class Dependency {\r\n id: number;\r\n\r\n predecessorId: number;\r\n\r\n successorId: number;\r\n\r\n type: number;\r\n}\r\n\r\nexport class Resource {\r\n id: number;\r\n\r\n text: string;\r\n}\r\n\r\nexport class ResourceAssignment {\r\n id: number;\r\n\r\n taskId: number;\r\n\r\n resourceId: number;\r\n}\r\n\r\nconst tasks: Task[] = [];\r\n\r\nconst dependencies: Dependency[] = [];\r\n\r\nconst resources: Resource[] = [{\r\n id: 1,\r\n text: 'Management',\r\n}, {\r\n id: 2,\r\n text: 'Project Manager',\r\n}, {\r\n id: 3,\r\n text: 'Analyst',\r\n}, {\r\n id: 4,\r\n text: 'Developer',\r\n}, {\r\n id: 5,\r\n text: 'Testers',\r\n}, {\r\n id: 6,\r\n text: 'Trainers',\r\n}, {\r\n id: 7,\r\n text: 'Technical Communicators',\r\n}, {\r\n id: 8,\r\n text: 'Deployment Team',\r\n}];\r\n\r\nconst resourceAssignments: ResourceAssignment[] = [];\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GanttDemoService {\r\n\r\n constructor() { } \r\n\r\n getTasks(): Task[] {\r\n return tasks;\r\n }\r\n\r\n getDependencies(): Dependency[] {\r\n return dependencies;\r\n }\r\n\r\n getResources(): Resource[] {\r\n return resources;\r\n }\r\n\r\n getResourceAssignments(): ResourceAssignment[] {\r\n return resourceAssignments;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { DndDropEvent, DropEffect } from 'ngx-drag-drop';\r\nimport { CdkDragDrop, CdkDragStart, CdkDragEnd, moveItemInArray, copyArrayItem, transferArrayItem } from '@angular/cdk/drag-drop';\r\n\r\nimport { ComponentService } from '../component.service';\r\nimport { EventEmitterService, AppInfoService } from '../../shared/services';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n@Component({\r\n selector: 'grid-component',\r\n templateUrl: './grid.component.html',\r\n styleUrls: ['./grid.component.css']\r\n})\r\nexport class DxGridComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n borderTypes = [{ \"name\": \"Düz Çizgi\", \"value\": \"ridge\" }, { \"name\": \"Nokta\", \"value\": \"dotted\" }, { \"name\": \"Çizgili\", \"value\": \"dashed\" }]\r\n\r\n showDisplay: any = \"block\";\r\n\r\n onGridDragClass: string = \"active\";\r\n actions = [\r\n {\r\n icon: \"edit\",\r\n alignment: \"left\",\r\n hint: \"Edit\",\r\n action: \"edit\"\r\n },\r\n {\r\n icon: \"trash\",\r\n alignment: \"right\",\r\n hint: \"Delete\",\r\n action: \"delete\"\r\n },\r\n ];\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n rowsPopup: boolean = false;\r\n rowsPermissionPopup: boolean = false;\r\n selectedRowsPermission: any;\r\n languageLocal: any = \"\";\r\n\r\n gridStyle = { \"marginTop\": \"\", \"border\": \"\" };\r\n constructor(private componentService: ComponentService, private eventEmitterService: EventEmitterService, public appInfo: AppInfoService, public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n\r\n this.componentService.createCdkList(this.anotherPopupId);\r\n }\r\n //\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n if (!this.isEdit) this.checkUserAuthorization();\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n checkUserAuthorization() {\r\n for (let i = 0; i < this.data.rows.length; i++) {\r\n let userId = this.appInfo.currentUser.id;\r\n let rGroupIndex = this.data.rows[i].permissions.readonlyGroup.indexOf(userId);\r\n let rUsersIndex = this.data.rows[i].permissions.readonlyUsers.indexOf(userId);\r\n let hGroupIndex = this.data.rows[i].permissions.hideGroup.indexOf(userId);\r\n let hUsersIndex = this.data.rows[i].permissions.hideUsers.indexOf(userId);\r\n\r\n let isHide = hGroupIndex != -1 || hUsersIndex != -1;\r\n let isReadonly = rGroupIndex != -1 || rUsersIndex != -1;\r\n\r\n if (isHide) this.data.rows[i].hide = true;\r\n else this.data.rows[i].hide = false;\r\n if (isReadonly) this.data.rows[i].readonly = true;\r\n else this.data.rows[i].readonly = false;\r\n }\r\n }\r\n\r\n\r\n itemClick(e, item, list) {\r\n if (e.itemData.action == \"edit\") {\r\n this.eventEmitterService.showPopop(item.uuid);\r\n //item.showEditPop = true;\r\n }\r\n else if (e.itemData.action == \"delete\") {\r\n let msg = item.type == \"grid\" || item.type == \"panel\" ? \"\" + this.languageLocal.theseComponentElementsDeleted + \"\" : \"\" + this.languageLocal.messageSure+\"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) this.removeField(item, list);\r\n });\r\n }\r\n }\r\n\r\n\r\n removeField(item, list) {\r\n list.splice(list.indexOf(item), 1);\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n this.showToast(this.languageLocal.deleted, \"success\");\r\n }\r\n\r\n\r\n dragStart() {\r\n this.onGridDragClass = \"active\";\r\n }\r\n\r\n onDragEnded(event: CdkDragEnd): void {\r\n\r\n //event.source._dragRef.reset();\r\n }\r\n cdkGridDrop(event: CdkDragDrop, list?: any[]) {\r\n\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n } else {\r\n\r\n let type = event.previousContainer.element.nativeElement.dataset.type;\r\n if (type && type == \"copy\") {\r\n let field: any = event.previousContainer.data[event.previousIndex];\r\n if (field.type != \"grid\") {\r\n localStorage.setItem(\"currentFieldGrid\", JSON.stringify(event.previousContainer.data[event.previousIndex]));\r\n let currentFieldGrid: any = JSON.parse(localStorage.getItem(\"currentFieldGrid\"));\r\n localStorage.removeItem(\"currentFieldGrid\");\r\n //localStorage.removeItem(key);localStorage.clear();\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n currentFieldGrid.id = this.componentService.createId(currentFieldGrid.type, currentFormSelected.components, this.anotherPopupId);\r\n list.splice(event.currentIndex, 0, currentFieldGrid);\r\n }\r\n else {\r\n this.showToast(this.languageLocal.invalidTarget, \"warning\");\r\n }\r\n\r\n /*copyArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex);*/\r\n }\r\n else {\r\n transferArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex);\r\n }\r\n }\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n this.componentService.createCdkList(this.anotherPopupId);\r\n this.onGridDragClass = \"\";\r\n }\r\n\r\n\r\n addRow(count) { \r\n let cols = [];\r\n for (let i = 0; i < count; i++) {\r\n var col = {\r\n size: 1,\r\n components: []\r\n }\r\n cols.push(col)\r\n }\r\n let permission = { \"readonlyGroup\": [], \"readonlyUsers\": [], \"hideGroup\": [], \"hideUsers\": [] }\r\n let row = { permissions: permission, cols: cols };\r\n this.data.rows.push(row);\r\n this.componentService.createCdkList(this.anotherPopupId);\r\n //this.eventEmitterService.layoutChange();\r\n }\r\n\r\n deleteRow(index) {\r\n if (index > 0) this.data.rows.splice(index, 1);\r\n }\r\n\r\n addCol(row) {\r\n var col = {\r\n size: 1,\r\n components: []\r\n }\r\n row.cols.push(col);\r\n this.componentService.createCdkList( this.anotherPopupId);\r\n //this.eventEmitterService.layoutChange();\r\n }\r\n\r\n deleteCol(row, index) {\r\n row.cols.splice(index, 1);\r\n }\r\n\r\n addPermission(row) {\r\n this.selectedRowsPermission = row.permissions;\r\n this.rowsPermissionPopup = true;\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n setLanguageToDatas() {\r\n this.borderTypes = [\r\n { \"name\": this.languageLocal.ridge/* \"Düz Çizgi\"*/, \"value\": \"ridge\" },\r\n { \"name\": this.languageLocal.dotted/*\"Nokta\"*/, \"value\": \"dotted\" },\r\n { \"name\": this.languageLocal.dashed/*\"Çizgili\"*/, \"value\": \"dashed\" }\r\n ];\r\n this.actions = [\r\n {\r\n icon: \"edit\",\r\n alignment: \"left\",\r\n hint: this.languageLocal.edit /*\"Edit\"*/,\r\n action: \"edit\"\r\n },\r\n {\r\n icon: \"trash\",\r\n alignment: \"right\",\r\n hint: this.languageLocal.delete /* \"Delete\"*/,\r\n action: \"delete\"\r\n },\r\n ];\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { confirm, custom } from 'devextreme/ui/dialog';\r\n\r\n@Component({\r\n selector: 'app-htmleditor',\r\n templateUrl: './htmleditor.component.html',\r\n styleUrls: ['./htmleditor.component.scss']\r\n})\r\nexport class DxHtmleditorComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() isEdit: boolean;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n invokeChangeEventLocal: Subscription;\r\n permissionPopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n languageLocal: any = \"\";\r\n valueContent: string;\r\n\r\n constructor(private eventEmitterService: EventEmitterService, public changeDetectorRef: ChangeDetectorRef,private componentService: ComponentService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n // \r\n if (sub.data) this.data.value = sub.data;\r\n else this.data.value = \"\";\r\n //setTimeout(() => {\r\n // try {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // } catch{ }\r\n //}, 300);\r\n\r\n }\r\n });\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n }\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n this.data.width = typeof this.data.width == \"undefined\" ? \"100%\" : this.data.width;\r\n this.data.height = typeof this.data.height == \"undefined\" ? \"350px\" : this.data.height;\r\n }\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n \r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n onValueChanged(e) {\r\n this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", e.value, null);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { AppInfoService, EventEmitterService, TaskService } from '../../shared/services';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-imageupload',\r\n templateUrl: './imageupload.component.html',\r\n styleUrls: ['./imageupload.component.css']\r\n})\r\nexport class DxImageuploadComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n showFilesPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n\r\n uploadedFiles: any = [];\r\n uploadResult = { isShow: false, status: \"success\", message: \"\" };\r\n totalSize: any = 0;\r\n languageLocal: any = \"\";\r\n invokeWarningChangeEventLocal: Subscription;\r\n\r\n borderColor = \"#dedede\"\r\n //@ViewChild(DxDataGridComponent, { static: false }) dataGrid: DxDataGridComponent;\r\n\r\n constructor(public taskService: TaskService, public appInfo: AppInfoService, private eventEmitterService: EventEmitterService, private componentService: ComponentService,\r\n public instanceService: InstanceService, public changeDetectorRef: ChangeDetectorRef) {\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeWarningChangeEventLocal = this.eventEmitterService.invokeWarningChangeEvent.subscribe(sub => {\r\n if (!!sub.data && !!sub.data.requiredFiles) {\r\n if (sub.data.requiredFiles.includes(this.data.id)) {\r\n this.changeToWarningColor()\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n deleteButtonVisible = false;\r\n ngOnInit() {\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n //this.componentService.currentProcessFormId\r\n\r\n //data.valueTemp[i].base64BlobData\r\n\r\n if (typeof this.data.valueTemp == \"undefined\")\r\n this.data.valueTemp = [];\r\n\r\n if (this.componentService.currentProcessFormId != 0) {\r\n this.taskService.GetProcessStarterId(this.componentService.currentProcessFormId).subscribe((r: any) => {\r\n if (r == this.appInfo.currentUser.id)\r\n this.deleteButtonVisible = true; \r\n }, error => {\r\n });\r\n }\r\n else\r\n this.deleteButtonVisible = true;\r\n\r\n }\r\n\r\n isExcludingComponent = false;\r\n selectExcludingComponent() {\r\n this.isExcludingComponent = true;\r\n }\r\n\r\n popupSelectedImageValue = [];\r\n popupSelectedImage: any;\r\n onFileSelectionChanged(e) {\r\n \r\n if (e.addedItems.length > 0 && this.isExcludingComponent != true) {\r\n this.popupSelectedImage = \"assets/img/default-placeholder.png\";\r\n this.popupSelectedImageValue = [];\r\n let valueTempClone = this.componentService.cloneModel(e.addedItems[0]);\r\n this.popupSelectedImage = valueTempClone.src;\r\n this.popupSelectedImageValue.push(valueTempClone);\r\n this.imageZoomPopup = true;\r\n }\r\n else\r\n this.isExcludingComponent = false;\r\n }\r\n\r\n\r\n imageZoomPopup = false;\r\n showFile(i) {\r\n this.imageZoomPopup = true;\r\n }\r\n\r\n onZoomPopupHidden() {\r\n this.imageZoomPopup = false;\r\n }\r\n\r\n filesPopupHide(e) {\r\n this.popupSelectedImage = \"assets/img/default-placeholder.png\";\r\n this.popupSelectedImageValue = [];\r\n }\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n openPermissionPopup() {\r\n this.permissionPopup = true;\r\n }\r\n\r\n onValueChanged = (e: any): void => {\r\n let errors = [];\r\n if (e.value.length) {\r\n this.changeToDefaultColor();\r\n this.totalSize = 0;\r\n this.uploadResult.isShow = true;\r\n this.uploadResult.status = \"primary\";\r\n this.uploadResult.message = this.languageLocal.filesLoading;\r\n for (let i = 0; i < e.value.length; i++) {\r\n let checkSum = this.totalSize + e.value[i].size;\r\n if (checkSum > (this.data.maxFileSize * 1024 * 1024)) {\r\n let msg = e.value[i].name + \" (\" + Math.round(checkSum / 1024) + this.languageLocal.couldnotbeLoaded\r\n errors.push(msg);\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\" \") + (this.languageLocal.fileSizeLimit + this.data.maxFileSize * 1024 + \" KB )\");\r\n continue;\r\n\r\n }\r\n\r\n this.getDocument(e.value[i]).then(document => {\r\n this.data.valueTemp.push(document);\r\n this.totalSize += e.value[i].size;\r\n if (i === (e.value.length - 1)) {\r\n if (errors.length) {\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\" \") + (this.languageLocal.fileSizeLimit + this.data.maxFileSize * 1024 + \" KB )\");\r\n }\r\n else {\r\n this.uploadResult.status = \"success\";\r\n this.uploadResult.message = this.languageLocal.filesUploaded;\r\n }\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n getDocument(file) {\r\n return new Promise(resolve => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n let fileName = file.name;\r\n let fileType: string = file.type;\r\n let base64BlobData: any = args.target.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n let fileSize = file.size;\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: fileType,\r\n extension: fileExtension,\r\n size: fileSize,\r\n isImg: true\r\n };\r\n resolve(document);\r\n\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n showFiles() {\r\n this.popupSelectedImage = \"assets/img/default-placeholder.png\";\r\n this.popupSelectedImageValue = [];\r\n for (let i = 0; i < this.data.valueTemp.length; i++) {\r\n this.data.valueTemp[i].src = 'data:' + this.data.valueTemp[i].fileType + ';base64,' + this.data.valueTemp[i].base64BlobData;\r\n }\r\n //if (this.data.valueTemp.length > 0) {\r\n // let valueTempClone = this.componentService.cloneModel(this.data.valueTemp[0]);\r\n // this.popupSelectedImage = valueTempClone.src;\r\n // this.popupSelectedImageValue.push(valueTempClone);\r\n //}\r\n this.showFilesPopup = true;\r\n }\r\n\r\n deleteFiles() {\r\n let result = confirm(\"\" + this.languageLocal.filesSureDelete+\"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.uploadedFiles = [];\r\n for (let i = 0; i < this.data.valueTemp.length; i++) {\r\n this.eventEmitterService.setDeletedFileIds(this.data.valueTemp[i].id);\r\n }\r\n this.data.valueTemp = [];\r\n this.data.value = []\r\n this.uploadResult.isShow = false;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n }\r\n\r\n deleteFile(i) {\r\n let result = confirm(\"\" + this.languageLocal.fileDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n\r\n if (this.data.valueTemp && this.data.valueTemp.length > 0 && this.data.valueTemp[i])\r\n this.eventEmitterService.setDeletedFileIds(this.data.valueTemp[i].id);\r\n this.data.valueTemp.splice(i, 1);\r\n this.data.value.splice(i, 1);\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.showFiles();\r\n }\r\n });\r\n\r\n }\r\n\r\n changeToWarningColor() {\r\n if (this.data.required) {\r\n this.borderColor = \"#d9534f\"\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n changeToDefaultColor() {\r\n this.borderColor = \"#dedede\"\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'imageviewer-component',\r\n templateUrl: './imageviewer.component.html',\r\n styleUrls: ['./imageviewer.component.css']\r\n})\r\nexport class DxImageviewerComponent implements OnInit {\r\n @Input() data: any; \r\n \r\n imgSrc: any;\r\n fileName: string = \"\";\r\n\r\n showImage: boolean = false;\r\n displayImgSrc: any;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n showImg(src) {\r\n this.displayImgSrc = src;\r\n this.showImage = true;\r\n }\r\n\r\n onValueChanged = (e: any): void => {\r\n if (e.value.length) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(e.value[0]);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n this.imgSrc = args.target.result;\r\n //let questionCode = dataField;\r\n let fileName: string = e.value[0].name;\r\n this.fileName = fileName;\r\n let fileType: string = e.value[0].type;\r\n let base64BlobData: any = \"\";//reader.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: fileType,\r\n extension: fileExtension\r\n };\r\n\r\n\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","export * from './label/label.component'\r\nexport * from './button/button.component';\r\nexport * from './checkbox/checkbox.component';\r\nexport * from './codeditor/codeditor.component';\r\nexport * from './datagridNew/datagrid.component';\r\nexport * from './customdatagrid/customdatagrid.component';\r\nexport * from './datebox/datebox.component';\r\nexport * from './email/email.component';\r\nexport * from './fileupload/fileupload.component';\r\nexport * from './imageupload/imageupload.component';\r\nexport * from './picturebox/picturebox.component';\r\nexport * from './map/map.component';\r\nexport * from './imageviewer/imageviewer.component';\r\nexport * from './videoupload/videoupload.component';\r\nexport * from './videoviewer/videoviewer.component';\r\nexport * from './grid/grid.component';\r\nexport * from './number/number.component';\r\nexport * from './password/password.component';\r\nexport * from './phone/phone.component';\r\nexport * from './radiogroup/radiogroup.component';\r\nexport * from './selectbox/selectbox.component';\r\nexport * from './datagridselect/datagridselect.component'; \r\nexport * from './datalist/datalist.component'; \r\nexport * from './textbox/textbox.component'; \r\nexport * from './payment/payment.component';\r\nexport * from './textarea/textarea.component';\r\nexport * from './accordion/accordion.component';\r\nexport * from './htmleditor/htmleditor.component';\r\nexport * from './datasource/datasource.component';\r\nexport * from './display/display.component'\r\nexport * from './formresult/formresult.component'\r\nexport * from './gallery/gallery.component'\r\nexport * from './menu/menu.component'\r\nexport * from './tabs/tabs.component'\r\nexport * from './live/live.component'\r\nexport * from './childform/childform.component'\r\nexport * from './dashboard/dashboard.component'\r\nexport * from './signature/signature.component'\r\nexport * from './pdfviewer/pdfviewer.component'\r\nexport * from './printdesigner/printdesigner.component'\r\nexport * from './multiselectbox/multiselectbox.component'\r\nexport * from './scheduler/scheduler.component'\r\nexport * from './kanban/kanban.component'\r\nexport * from './gantt/gantt.component'\r\nexport * from './diagram/diagram.component'\r\nexport * from './comment/comment.component'\r\n//export * from './component.directive';\r\n//export * from './component.service';\r\n//export * from './render.component';\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { AppInfoService, EventEmitterService, GenericService } from '../../shared/services';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n@Component({\r\n selector: 'kanban-component',\r\n templateUrl: './kanban.component.html',\r\n styleUrls: ['./kanban.component.css']\r\n})\r\nexport class DxKanbanComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n languageLocal: any = \"\";\r\n\r\n constructor(public appInfo: AppInfoService,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n\r\n height = 500\r\n defaultLanguage: any = {};\r\n connections: any = [];\r\n\r\n dataSources: any;\r\n dataSourcePopup: boolean = false;\r\n isFromDataSource: boolean;\r\n showSettingPopup: boolean = false;\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showChamgeEventPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n showDisplay: any = \"flex\";\r\n designerDataSourceList: any;\r\n designerDatasourceModel: any;\r\n users = []\r\n\r\n ngOnInit() {\r\n\r\n this.users = this.appInfo.RiverEntity.users\r\n\r\n if (!this.isEdit) {\r\n this.executeScript();\r\n }\r\n else {\r\n this.fillDesignerDataSource();\r\n }\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n this.height = typeof this.data.height == \"undefined\" ? 500 : this.data.height;\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n\r\n currentFormSelectedGlobal;\r\n public genericServiceExecuteScript(_Query, _ConnectionId) {\r\n debugger;\r\n this.currentFormSelectedGlobal = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(this.currentFormSelectedGlobal.components, this.anotherPopupId);\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(_Query)) {\r\n let _match = _Query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = curentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n _Query = _Query.replace(f, _value);\r\n }\r\n });\r\n }\r\n //query = this.genericService.cleanSqlSyntax(query.replace(pattern, \"\"))\r\n }\r\n\r\n this.genericService.executeQuerySecurited(_Query, _ConnectionId).subscribe((result: any) => {\r\n debugger;\r\n if (result && result.length > 0) {\r\n let cols = Object.keys(result[0]);\r\n if (cols) {\r\n\r\n }\r\n this.data.dataSource = result;\r\n this.tasks = result;\r\n\r\n this.tasks.forEach(el => {\r\n let user: any = this.users.filter((e: any) => e.id.toString() === el[this.data.assignedColumnName])\r\n if (!!user[0] && !!user[0].fullName)\r\n el[this.data.assignedColumnName] = user[0].fullName\r\n else\r\n el[this.data.assignedColumnName] = \"\"\r\n })\r\n\r\n this.genericService.executeQuerySecurited(this.data.groupSql, this.data.dataStorage.connectionId).subscribe((res: any) => {\r\n debugger;\r\n if (res && res.length > 0) {\r\n res.forEach(el => {\r\n this.statuses.push(el[this.data.groupColumnName])\r\n })\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n this.statuses.forEach((status) => {\r\n this.lists.push(this.tasks.filter((task) => task[this.data.groupColumnName] === status));\r\n });\r\n\r\n\r\n }\r\n else {\r\n this.data.dataSource = [];\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n else {\r\n this.data.dataSource = [];\r\n }\r\n });\r\n\r\n }\r\n\r\n public executeScript() {\r\n debugger;\r\n if (this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n this.genericServiceExecuteScript(this.data.dataStorage.query, this.data.dataStorage.connectionId);\r\n }\r\n else if (this.data.dataSource && this.data.dataSource.length > 0) {\r\n\r\n let filteredData = this.data.dataSource.filter(f => f.lang == this.lang);\r\n if (filteredData && filteredData.length > 0)\r\n this.data.dataSource = filteredData;\r\n\r\n }\r\n else if (this.data.desktopDatasource != null) {\r\n\r\n this.fillDesignerDataSource();\r\n\r\n }\r\n }\r\n\r\n selecboxComponents: any = [];\r\n\r\n openDataPopup(type) {\r\n this.isFromDataSource = type == \"1\";\r\n if (this.isFromDataSource) {\r\n this.data.isManual = false;\r\n let selectboxes = this.componentService.getComponentsByType(\"selectbox\", this.anotherPopupId);\r\n this.selecboxComponents = [];\r\n if (selectboxes) {\r\n selectboxes.forEach(item => {\r\n if (item.id != this.data.id) {\r\n let element: any = {};\r\n element.id = item.id;\r\n element.name = this.componentService.getLang(this.lang, item.language).Label;\r\n this.selecboxComponents.push(element);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.data.isManual = true;\r\n }\r\n\r\n this.dataSourcePopup = true;\r\n }\r\n\r\n saveSetting() {\r\n\r\n this.data.desktopDatasource = this.designerDatasourceModel.ID;\r\n\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n onChangeDatasourceValue(event) {\r\n if (event.value) {\r\n\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == event.value);\r\n\r\n }\r\n }\r\n\r\n saveDataSource() {\r\n if (this.data.isManual && this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n let msg = \"\" + this.languageLocal.messageSqlLinkDeleted + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n\r\n if (dialogResult) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.dataSourcePopup = false;\r\n this.data.valueExpr = \"value\";\r\n //this.data.displayExpr = \"text\";\r\n }\r\n });\r\n }\r\n else {\r\n\r\n if (this.data.isManual) {\r\n this.data.valueExpr = \"value\";\r\n //this.data.displayExpr = \"text\";\r\n }\r\n\r\n this.dataSourcePopup = false;\r\n }\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n fillDesignerDataSource() {\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n\r\n this.genericService.fillDesignerDataSource().subscribe((result: any) => {\r\n\r\n this.designerDataSourceList = result;\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n if (this.data.desktopDatasource != null) {\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == this.data.desktopDatasource);\r\n\r\n if (typeof this.designerDatasourceModel.ID === \"undefined\")\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n }\r\n\r\n\r\n });\r\n\r\n }\r\n\r\n tasks = []\r\n\r\n employees = []\r\n\r\n lists: any[] = [];\r\n\r\n statuses: string[] = [];\r\n\r\n onListReorder(e) {\r\n const list = this.lists.splice(e.fromIndex, 1)[0];\r\n this.lists.splice(e.toIndex, 0, list);\r\n\r\n const status = this.statuses.splice(e.fromIndex, 1)[0];\r\n this.statuses.splice(e.toIndex, 0, status);\r\n }\r\n\r\n onTaskDragStart(e) {\r\n e.itemData = e.fromData[e.fromIndex];\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n onTaskDrop(e) {\r\n e.fromData.splice(e.fromIndex, 1);\r\n e.toData.splice(e.toIndex, 0, e.itemData);\r\n }\r\n \r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { EventEmitterService } from '../../shared/services';\r\nimport { LocalStorageService } from '../local-storage.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n@Component({\r\n selector: 'app-label',\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.scss']\r\n})\r\nexport class DxLabelComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() disabled: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n fontStyles = [\"normal\", \"italic\"];\r\n fontWeights = [\"normal\", \"bold\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\"];\r\n widthTypes = [\"px\", \"%\"];\r\n alignments = [\"left\", \"center\", \"right\"]\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n languageLocal: any = \"\";\r\n showDisplay: any = \"block\";\r\n\r\n constructor(private eventEmitterService: EventEmitterService, private componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef) {\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n debugger;\r\n let fff = this.data.link;\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"inline-block\" : \"none\") : \"inline-block\";\r\n \r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"inline-block\" : \"none\") : \"inline-block\";\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n this.data.width = typeof this.data.width == \"undefined\" ? 100 : this.data.width;\r\n this.data.widthType = typeof this.data.widthType == \"undefined\" ? \"%\" : this.data.widthType;\r\n this.data.textAlign = typeof this.data.textAlign == \"undefined\" ? \"left\" : this.data.textAlign;\r\n\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid , this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000) //language \r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"inline-block\" : \"none\") :\"inline-block\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n //let msg = \"Yaptığınız değişikleri kaydetmeden çıkmak istediğinizden emin misiniz?\"\r\n\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n \r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { AppInfoService } from '../../shared/services';\r\n@Component({\r\n selector: 'live-component',\r\n templateUrl: 'live.component.html',\r\n styleUrls: ['./live.component.css']\r\n})\r\nexport class DxLiveComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n\r\n textComponentList: any = [];\r\n\r\n mettingTypeList: any = [{ id: \"Live Web\" }, { id: \"Zoom\" }];\r\n\r\n invokeChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n\r\n // processFormIdGlobal: any = 0;\r\n\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public componentService: ComponentService,\r\n public appInfo: AppInfoService,\r\n public instanceService: InstanceService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n if (sub.data) this.data.value = sub.data;\r\n else this.data.value = \"\";\r\n //setTimeout(() => {\r\n // try {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // } catch{ }\r\n //}, 300);\r\n\r\n }\r\n });\r\n //this.invokeGetProcessInfoLocal = this.eventEmitterService.invokeGetProcessInfo.subscribe(sub => {\r\n\r\n // if (sub.elementId == this.data.id) {\r\n // // \r\n // if (sub.data) this.processFormIdGlobal = sub.data.processFormId;\r\n // //else this.data.value = \"\";\r\n // //setTimeout(() => {\r\n // // try {\r\n // this.changeDetectorRef.detectChanges();\r\n // // } catch{ }\r\n // //}, 300);\r\n\r\n // }\r\n //});\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.textComponentList = this.componentService.getInputComponentList(currentFormSelected.components, this.anotherPopupId);\r\n }\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n ngOnInit() {\r\n //\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (this.data.isAuto) {\r\n this.data.disabled = true;\r\n }\r\n this.data.upperCaseLetter = this.data.upperCaseLetter == null ? false : this.data.upperCaseLetter;\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n\r\n this.data.meetingType = typeof this.data.meetingType == \"undefined\" ? \"LiveWeb\" : this.data.meetingType;\r\n //this.data.hostUrl = typeof this.data.hostUrl == \"undefined\" ? \"\" : this.data.hostUrl;\r\n //this.data.participantUrl = typeof this.data.participantUrl == \"undefined\" ? \"\" : this.data.participantUrl;\r\n\r\n if (this.data.value != \"\" && this.data.value != null && typeof this.data.value != \"undefined\") {\r\n\r\n let _urlLiveWeb = JSON.parse(this.data.value);\r\n this.data.hostUrl = _urlLiveWeb.hostUrl;\r\n this.data.participantUrl = _urlLiveWeb.participantUrl;\r\n }\r\n }\r\n\r\n isDisable = false;\r\n liveClick() {\r\n //let fff=this.data; \r\n\r\n this.isDisable = true;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let componentLst = this.componentService.getInputComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let nameRoom = componentLst.find(x => x.id == this.data.meetingRoomName);\r\n let startDateRoom = componentLst.find(x => x.id == this.data.startDate);\r\n let localProcessFormId = this.componentService.currentProcessFormId;\r\n this.instanceService.liveOpen(nameRoom.value, startDateRoom.value, this.data.hostUrl, this.data.participantUrl, this.data.meetingType, localProcessFormId).subscribe((s: any) => {\r\n if (s.success) {\r\n if (/*this.data.meetingType == \"LiveWeb\" &&*/ localProcessFormId == 0) {\r\n this.data.value = JSON.stringify({ participantUrl: s.participantUrl, hostUrl: s.hostUrl });\r\n this.showToast(s.message, \"success\");\r\n }\r\n else {\r\n\r\n let _domain = window.location.protocol + \"//\" + window.location.host + \"/\" + s.liveUrl.replace(\"{{USERNAME}}\", this.appInfo.currentUser.name);\r\n window.open(_domain, \"_blank\");\r\n this.showToast(s.message, \"success\");\r\n this.eventEmitterService.updateTasks(this.anotherPopupId );\r\n }\r\n }\r\n else {\r\n this.isDisable = false;\r\n this.showToast(s.message, \"error\");\r\n }\r\n });\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n\r\n onEditPopopShown() {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.textComponentList = this.componentService.getInputComponentList(currentFormSelected.components, this.anotherPopupId);\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n //let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n //if (systemInfoTemp)\r\n // this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n //else\r\n // this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n //getTextboxStyles() {//text-transform: uppercase\r\n\r\n // let myStyles = {\r\n // 'text-transform': this.data.upperCaseLetter != null && this.data.upperCaseLetter != false ? 'uppercase' : 'none'\r\n // };\r\n // return myStyles;\r\n //}\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n\r\n\r\n //let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n //if (systemInfoTemp)\r\n // this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n //else\r\n // this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n // this.componentService.currentSystemInfo = { id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) };//this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n\r\n constructor() { }\r\n\r\n save(key, data) {\r\n localStorage.setItem(key, data);\r\n }\r\n\r\n get(key) {\r\n return localStorage.getItem(key) || null;\r\n }\r\n\r\n delete(key) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n }\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { EventEmitterService } from '../../shared/services';\r\nimport { Subscription, Observable } from 'rxjs';\r\n\r\nimport { MouseEvent, MapsAPILoader } from '@agm/core';\r\n\r\nimport { marker } from '../../shared/models/map-marker';\r\n\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\n\r\ndeclare var google;\r\n\r\n@Component({\r\n selector: 'app-map',\r\n templateUrl: './map.component.html',\r\n styleUrls: ['./map.component.css']\r\n})\r\nexport class DxMapComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n markerOptionPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n languageLocal: any = \"\";\r\n\r\n //uploadResult = { isShow: false, status: \"success\", message: \"\" };\r\n //totalSize: any = 0;\r\n\r\n invokeChangeEventLocal: Subscription;\r\n\r\n constructor(private eventEmitterService: EventEmitterService, public changeDetectorRef: ChangeDetectorRef, private componentService: ComponentService,\r\n private mapsAPILoader: MapsAPILoader, private _sanitizationService: DomSanitizer) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n });\r\n \r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n let thisPageMapTimeout = this;\r\n setTimeout(function () {\r\n if (sub.data && sub.data != \"\") thisPageMapTimeout.data.markers = sub.data.markers;\r\n else thisPageMapTimeout.data.markers = [];\r\n\r\n thisPageMapTimeout.changeDetectorRef.detectChanges();\r\n }, 100);\r\n }\r\n });\r\n\r\n let thisPageMap = this;\r\n setTimeout(function () {\r\n thisPageMap.mapsAPILoader.load().then(() => {\r\n thisPageMap.autocompleteService = new google.maps.places.AutocompleteService();\r\n });\r\n }, 1500);\r\n\r\n this.setClassMarker();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n getImageImgTag(uFs) {\r\n\r\n try {\r\n return this._sanitizationService.bypassSecurityTrustUrl(uFs);\r\n } catch (ex) { }\r\n }\r\n\r\n getImageImgTagSelected() {\r\n try {\r\n return this._sanitizationService.bypassSecurityTrustUrl(this.mapMarkerSelectedImage);\r\n } catch (ex) { }\r\n }\r\n\r\n setClassMarker() {\r\n try {\r\n\r\n document.querySelector('div[style*=\"color: rgb(0, 0, 0); font-size: 14px; font-family: Roboto, Arial, sans-serif;\"]').className = \"deneme\";\r\n } catch (ex) { }\r\n }\r\n\r\n markerStyleGlobal = {\r\n text: \"some text\",\r\n background: \"white\"\r\n };\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.data.width = this.data.width > 0 ? this.data.width : 500;\r\n this.data.height = this.data.height > 0 ? this.data.height : 300;\r\n\r\n // this.data.imgalt = this.defaultLanguage\r\n\r\n\r\n //let ff = this.data.markers;\r\n this.data.disabled = typeof this.data.disabled == \"undefined\" ? false : this.data.disabled;\r\n\r\n\r\n this.setCurrentLocation();\r\n\r\n this.setClassMarker();\r\n }\r\n\r\n mapMarkerSelectedImage = \"\";\r\n private setCurrentLocation() {\r\n if ('geolocation' in navigator) {\r\n let _thisPage = this;\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n _thisPage.lat = position.coords.latitude;\r\n _thisPage.lng = position.coords.longitude;\r\n _thisPage.zoom = 15;\r\n try {\r\n _thisPage.changeDetectorRef.detectChanges();\r\n } catch (ex) { }\r\n });\r\n }\r\n }\r\n\r\n\r\n //async getGeoLocation() {\r\n\r\n // if (window.navigator && window.navigator.geolocation) {\r\n // await window.navigator.geolocation.getCurrentPosition(\r\n // position => {\r\n // this.lat = position.coords.latitude;\r\n // this.lng = position.coords.longitude;\r\n // this.zoom = 15;\r\n\r\n // try {\r\n // this.changeDetectorRef.detectChanges();\r\n // } catch (ex) { }\r\n\r\n // },\r\n // error => {\r\n // switch (error.code) {\r\n // case 1:\r\n // // this.locationGlobal = null;\r\n // break;\r\n // case 2:\r\n // // this.locationGlobal = null;\r\n // break;\r\n // case 3:\r\n // // this.locationGlobal = null;\r\n // break;\r\n // }\r\n // }\r\n // );\r\n // };\r\n //}\r\n\r\n searchTextGlobal = \"\";\r\n getCoorninateAddress(sRs) {\r\n\r\n this.showSearchResulPanel = \"none\";\r\n this.searchTextGlobal = sRs.description;\r\n this.getLatLong(sRs.place_id);\r\n // ;\r\n }\r\n\r\n searchResults = [];\r\n public autocompleteService: any;\r\n getPlacePredictions(term: string): Observable {\r\n //: GoogleResult[]\r\n this.showSearchResulPanel = \"block\";\r\n return this.autocompleteService.getPlacePredictions({ input: term }, (data) => {\r\n\r\n if (data) {\r\n this.searchResults = data;\r\n \r\n //this.data.next(data);\r\n }\r\n });\r\n }\r\n map;\r\n public mapReady(map) {\r\n\r\n this.map = map;\r\n }\r\n getLatLong(placeid: string) {\r\n let placeService = new google.maps.places.PlacesService(this.map);\r\n let _thisPage = this;\r\n placeService.getDetails({\r\n placeId: placeid\r\n }, function (result, status) {\r\n _thisPage.lat = result.geometry.location.lat();\r\n _thisPage.lng = result.geometry.location.lng();\r\n try {\r\n _thisPage.changeDetectorRef.detectChanges();\r\n } catch (ex) { }\r\n \r\n });\r\n }\r\n\r\n //getPlacePredictions(term: string): Observable {\r\n // return Observable.create(observer => {\r\n // // API Call\r\n\r\n // this.autocompleteService.getPlacePredictions({ input: term }, data => {\r\n // let previousData: Array;\r\n\r\n // // Data validation\r\n\r\n // if (data) {\r\n // \r\n // previousData = data;\r\n // observer.next(data);\r\n // observer.complete();\r\n // }\r\n\r\n // // If no data, emit previous data\r\n\r\n // if (!data) {\r\n // \r\n // observer.next(previousData);\r\n // observer.complete();\r\n\r\n // // Error Handling\r\n\r\n // } else {\r\n // observer.error(status);\r\n // }\r\n\r\n // });\r\n\r\n // });\r\n\r\n //}\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n openPermissionPopup() {\r\n this.permissionPopup = true;\r\n }\r\n\r\n\r\n\r\n mapDivStyleFunc() {\r\n\r\n var width = this.data.width > 0 ? this.data.width + 'px' : '500px';\r\n var height = this.data.height > 0 ? this.data.height + 'px' : '300px';\r\n const styles = { 'width': width, 'height': height, 'display': this.showDisplay, 'position': 'relative' };\r\n return styles;\r\n }\r\n\r\n showSearchResulPanel = \"none\";\r\n mapSearchStyleFunc() {\r\n const _styles = { 'background': 'rgba(255, 255, 255, .8)', 'padding': '5px', 'width': '100%', 'display': this.showSearchResulPanel, 'color': '#494949' };\r\n return _styles;\r\n }\r\n\r\n zoom: number = 8;\r\n\r\n // initial center position for the map\r\n lat: number = 39.925533;\r\n lng: number = 32.866287;\r\n\r\n mapMarkerLocal = {\r\n id: 0,\r\n uploadedFiles: []\r\n }\r\n clickedMarker(label: string, index: number, id: number) {\r\n this.mapMarkerSelectedImage = \"\";\r\n if (!this.data.disabled) {\r\n this.mapMarkerLocal = this.data.markers.find(x => x.id == id);\r\n if (this.mapMarkerLocal.uploadedFiles.length > 0)\r\n this.mapMarkerSelectedImage = this.mapMarkerLocal.uploadedFiles[0];\r\n }\r\n\r\n this.setClassMarker();\r\n }\r\n\r\n clickMarkerAddInfo(markerLocal: any, index: number, id: number) {\r\n if (!this.data.disabled) {\r\n this.markerOptionPopup = true;\r\n }\r\n this.setClassMarker();\r\n }\r\n\r\n markerDragEnd(m: marker, $event: MouseEvent) {\r\n if (!this.data.disabled) {\r\n let _id = m.id;\r\n let indexDataMarker = this.data.markers.findIndex(x => x.id == _id);\r\n m.lat = $event.coords.lat;\r\n m.lng = $event.coords.lng;\r\n this.data.markers[indexDataMarker] = m;\r\n }\r\n this.setClassMarker();\r\n }\r\n\r\n clickMarkerDelete(markerLocal: any, index: number, id: number) {\r\n if (!this.data.disabled) {\r\n let _id = this.mapMarkerLocal.id;\r\n let indexDataMarker = this.data.markers.findIndex(x => x.id == _id);\r\n this.data.markers.splice(indexDataMarker, 1);\r\n }\r\n this.setClassMarker();\r\n }\r\n\r\n mapClicked($event: MouseEvent) {\r\n //data.isAddMultipleMarker data.maxMarkerLimit\r\n\r\n if (typeof this.data.markers == \"undefined\")\r\n this.data.markers = [];\r\n\r\n let ismarkerMuti = (this.data.isAddMultipleMarker && (this.data.maxMarkerLimit > this.data.markers.length || this.data.maxMarkerLimit == 0)) ||\r\n (!this.data.isAddMultipleMarker && this.data.markers.length == 0);\r\n\r\n if (!this.data.disabled && ismarkerMuti) {\r\n let _id = this.data.markers.length > 0 ? this.data.markers[this.data.markers.length - 1].id + 1 : 1;\r\n this.data.markers.push({\r\n lat: $event.coords.lat,\r\n lng: $event.coords.lng,\r\n label: \"\",\r\n uploadedFiles: [],\r\n id: _id,\r\n draggable: this.data.draggable\r\n });\r\n }\r\n this.setClassMarker();\r\n }\r\n\r\n cancelMarkerOption() {\r\n this.markerOptionPopup = false;\r\n let _id = this.mapMarkerLocal.id;\r\n this.mapMarkerLocal = this.data.markers.find(x => x.id == _id);\r\n this.setClassMarker();\r\n }\r\n\r\n saveMarkerOption() {\r\n this.markerOptionPopup = false;\r\n let _id = this.mapMarkerLocal.id;\r\n let indexDataMarker = this.data.markers.findIndex(x => x.id == _id);\r\n this.data.markers[indexDataMarker] = this.mapMarkerLocal;\r\n this.setClassMarker();\r\n }\r\n\r\n totalSize = 0;\r\n onValueChanged = (e: any): void => {\r\n\r\n let errors = [];\r\n if (e.value.length) {\r\n\r\n this.totalSize = 0;\r\n for (let i = 0; i < e.value.length; i++) {\r\n let checkSum = this.totalSize + e.value[i].size;\r\n if (checkSum > (this.data.maxFileSize * 1000000)) {\r\n let msg = e.value[i].name + \" yüklenemedi.\"\r\n errors.push(msg);\r\n continue;\r\n }\r\n\r\n this.getDocument(e.value[i]).then(document => {\r\n this.mapMarkerLocal.uploadedFiles.push(document);\r\n this.totalSize += e.value[i].size;\r\n if (i === (e.value.length - 1)) {\r\n if (errors.length) {\r\n //this.uploadResult.status = \"danger\";\r\n //this.uploadResult.message = \"Dosya boyutu aşıldı: \" + errors.join(\", \");\r\n }\r\n else {\r\n //this.uploadResult.status = \"success\";\r\n //this.uploadResult.message = \"Dosyalar yüklendi\";\r\n }\r\n }\r\n });\r\n\r\n }\r\n }\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n getDocument(file) {\r\n return new Promise(resolve => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (args: any) => {\r\n\r\n resolve(args.target.result);\r\n\r\n //if (reader.result) {\r\n // let fileName = file.name;\r\n // let fileType: string = file.type;\r\n // let base64BlobData: any = args.target.result.split(',').pop();\r\n // let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n // let fileSize = file.size;\r\n // let document: any = {\r\n // base64BlobData: base64BlobData,\r\n // name: fileName,\r\n // fileType: fileType,\r\n // extension: fileExtension,\r\n // size: fileSize,\r\n // isImg: true\r\n // };\r\n // resolve(document);\r\n\r\n //}\r\n }\r\n\r\n });\r\n }\r\n\r\n //markers: marker[] = [\r\n // //{\r\n // // lat: 51.673858,\r\n // // lng: 7.815982,\r\n // // label: 'A',\r\n // // draggable: true\r\n // //},\r\n // //{\r\n // // lat: 51.373858,\r\n // // lng: 7.215982,\r\n // // label: 'B',\r\n // // draggable: false\r\n // //},\r\n // //{\r\n // // lat: 51.723858,\r\n // // lng: 7.895982,\r\n // // label: 'C',\r\n // // draggable: true\r\n // //}\r\n //]\r\n\r\n\r\n\r\n}\r\n\r\nexport interface GoogleResult {\r\n description: string;\r\n id: string;\r\n matched_substrings: Matchedsubstring[];\r\n place_id: string;\r\n reference: string;\r\n structured_formatting: Structuredformatting;\r\n terms: Term[];\r\n types: string[];\r\n}\r\n\r\ninterface Term {\r\n offset: number;\r\n value: string;\r\n}\r\n\r\ninterface Structuredformatting {\r\n main_text: string;\r\n main_text_matched_substrings: Matchedsubstring[];\r\n secondary_text: string;\r\n}\r\n\r\ninterface Matchedsubstring {\r\n length: number;\r\n offset: number;\r\n}\r\n\r\n","import { Component, OnInit, Input, ViewChild, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { EventEmitterService, FormService, AppInfoService } from '../../shared/services';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { DxDataGridComponent, DxTreeViewComponent, DxDrawerComponent } from 'devextreme-angular';\r\nimport { MenuNode } from '../../shared/models/menu-node-model';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Component({\r\n selector: 'app-label',\r\n templateUrl: './menu.component.html',\r\n styleUrls: ['./menu.component.css']\r\n})\r\nexport class DxMenuComponent implements ComponentParameters, OnInit {\r\n @ViewChild(\"browserDataGrid\", { static: false }) browserDataGrid: DxDataGridComponent;\r\n @ViewChild(\"menuDrawer\", { static: false }) menuDrawer: DxDrawerComponent;\r\n\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() disabled: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n\r\n formList: any;\r\n\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n connections: any = [];\r\n\r\n showTreePopup: boolean = false;\r\n showItemFormPopup: boolean = false;\r\n showFormPopup: boolean = false;\r\n showDataGridPopup: boolean = false;\r\n showFormRenderPopup: boolean = false;\r\n\r\n nodeData = {\r\n \"id\": \"\",\r\n \"parentId\": \"\",\r\n \"name\": \"\",\r\n \"desc\": \"\",\r\n \"browserName\": \"Browser\",\r\n \"formName\": \"Form\",\r\n \"isForm\": false,\r\n \"form\": { formId: 0, nodeId: \"\" },\r\n \"items\": []\r\n }\r\n\r\n selectedParentName: any;\r\n selectedNode: any = {};\r\n selectedForm: any = {};\r\n selectedFormComponents = [];\r\n selectedDataGridItem: any = {};\r\n selectedDataGridItemForm: any = {};\r\n selectedDataGridRowIndex: number = -1;\r\n\r\n menuButtonOptions: any;\r\n insertButtonOptions: any;\r\n\r\n formNodeOptions: any = [];\r\n\r\n currentFormData = [];\r\n isFormRenderReadonly: boolean = false;\r\n formPopupWidth = [\"30%\", \"50%\", \"80%\", \"90%\", \"100%\"];\r\n minPopopWidth = \"80%\";\r\n languageLocal: any = \"\";\r\n\r\n constructor(private spinner: NgxSpinnerService,\r\n private eventEmitterService: EventEmitterService,\r\n private appInfo: AppInfoService,\r\n public formService: FormService,\r\n private componentService: ComponentService,\r\n public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.getFormList();\r\n\r\n //if(this.isEdit) this.setDefaultNode();\r\n this.prepareToolbar();\r\n this.selectedDataGridItemForm.components = [];\r\n\r\n let userSession = localStorage.getItem(\"localUserSession\");\r\n let entity = JSON.parse(userSession);\r\n this.connections = entity.connections;\r\n console.log(this.lang)\r\n if (typeof this.data.language == \"undefined\") {\r\n this.data.language = {\r\n \"ENEN\": \"\",\r\n \"TRTR\": \"\",\r\n }\r\n } else {\r\n let find = this.data.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n this.nodeData.name = find.Title\r\n }\r\n }\r\n }\r\n changeAllCheckbox(e) {\r\n\r\n //showGridHeader\r\n this.selectedFormComponents.forEach(field => {\r\n field.showGridHeader = e.value;\r\n });\r\n }\r\n prepareToolbar() {\r\n this.menuButtonOptions = {\r\n icon: 'menu',\r\n onClick: () => {\r\n this.menuDrawer.instance.toggle();\r\n }\r\n };\r\n\r\n this.insertButtonOptions = {\r\n icon: 'plus',\r\n type: \"default\",\r\n onClick: () => {\r\n this.openFormRenderPopop();\r\n }\r\n };\r\n\r\n\r\n }\r\n\r\n\r\n setDefaultNode() {\r\n let defaultData: any = {};\r\n defaultData.id = this.componentService.createuuid();\r\n defaultData.name = this.languageLocal.general;\r\n defaultData.parentId = \"\";\r\n defaultData.desc = this.languageLocal.generalCategory;\r\n defaultData.isForm = false;\r\n defaultData.form = {};\r\n defaultData.items = [];\r\n this.data.nodes.push(defaultData);\r\n }\r\n\r\n getFormList() {\r\n this.formService.getAllForms().subscribe(forms => {\r\n this.formList = forms;\r\n });\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }// datebox\r\n inputTypeItemList = [\r\n { id: \"string\", name: \"string\" },\r\n { id: \"number\", name: \"number\" },\r\n { id: \"datetime\", name: \"datetime\" }\r\n ];\r\n addedSqlColumns = [];\r\n sqlStringPopupShow = false;\r\n sqlStringTemp = { name: \"\", id: \"\", inputType: \"String\", sql: \"\", connectionId: 0 };\r\n addSqlColumn() {\r\n this.addedSqlColumns.push({ name: \"\", id: \"\", inputType: \"String\", sql: \"\", connectionId: 0 });\r\n }\r\n sqlStringPopup(_sqlObj) {\r\n this.sqlStringPopupShow = true;\r\n this.sqlStringTemp = _sqlObj;\r\n }\r\n saveSqlColumnString() {//SELECT USERNAME FROM ETR_USERLIST ID={selectbox1}\r\n this.sqlStringPopupShow = false;\r\n let indexObj = this.addedSqlColumns.findIndex(x => x.id == this.sqlStringTemp.id);// = this.sqlStringTemp;\r\n this.addedSqlColumns[indexObj] = this.sqlStringTemp;\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n openNodeForm(node) {\r\n this.selectedNode = node;\r\n this.showItemFormPopup = true;\r\n }\r\n\r\n formOptionVariables: any = [];\r\n editNode(node) {\r\n debugger;\r\n //this.selectedNode = node;\r\n this.selectedFormComponents = [];\r\n this.nodeData = node;\r\n if (node.isForm) {\r\n\r\n let _formOptionVariable = this.formOptionVariables.find(x => x.formId == node.form.formId);\r\n if (!_formOptionVariable) {\r\n this.formService.getMenuForm(node.form.formId, node.form.nodeId, 0, this.appInfo.currentUser.id.toString()).subscribe((result: any) => {\r\n if (result) {\r\n if (result.menuOptions != null && result.menuOptions != \"\") {\r\n let resultoptions = JSON.parse(result.menuOptions);\r\n let variableVisibility = resultoptions.find(y => typeof y[\"visibility\"] != \"undefined\");\r\n variableVisibility = variableVisibility ? variableVisibility[\"visibility\"] : [];\r\n\r\n let variableSqlColumns = resultoptions.find(y => typeof y[\"sqlColumns\"] != \"undefined\")//[\"sqlColumns\"];//.find(y => y == );\r\n variableSqlColumns = variableSqlColumns ? variableSqlColumns[\"sqlColumns\"] : [];\r\n\r\n this.formOptionVariables.push({ formId: node.form.formId, nodeId: node.form.nodeId, visibility: variableVisibility, sqlColumns: variableSqlColumns });\r\n\r\n }\r\n this.showFormPopup = true;\r\n this.onFormsValueChanged(this.nodeData.form.formId);\r\n }\r\n });\r\n }\r\n else {\r\n this.showFormPopup = true;\r\n this.onFormsValueChanged(this.nodeData.form.formId);\r\n }\r\n\r\n }\r\n else\r\n this.showItemFormPopup = true;\r\n }\r\n\r\n openFormPopop(node) {\r\n\r\n this.formOptionVariables = [];\r\n\r\n this.selectedFormComponents = [];\r\n this.selectedNode = node;\r\n this.resetNodeData();\r\n this.showFormPopup = true;\r\n }\r\n\r\n onFormsValueChanged(id) {\r\n\r\n if (id && id > 0) {\r\n\r\n this.componentService.usedForms.push(id);\r\n\r\n this.formValueSetAll(id);\r\n\r\n }\r\n else {\r\n this.selectedFormComponents = [];\r\n }\r\n\r\n }\r\n\r\n formValueSetAll(id) {\r\n\r\n if (id && id > 0) {\r\n\r\n this.selectedForm = this.formList.find(f => f.id == id);\r\n let formJson = JSON.parse(this.selectedForm.forM_JSON);\r\n this.selectedFormComponents = this.componentService.getComponentList(formJson.components, this.anotherPopupId);\r\n\r\n let _variable = this.formOptionVariables.find(y => y.formId == this.nodeData.form.formId && y.nodeId == this.nodeData.form.nodeId);\r\n\r\n let variableVisibility = _variable ? _variable.visibility : null;\r\n this.addedSqlColumns = _variable ? _variable.sqlColumns : [];\r\n this.selectedFormComponents.forEach(field => {\r\n\r\n if (field.language)\r\n field.name = this.componentService.getLang(this.lang, field.language).Label;\r\n\r\n field.show = true;\r\n if (variableVisibility && variableVisibility.length > 0) {\r\n let _field = variableVisibility.indexOf(field.id);\r\n field.showGridHeader = _field != -1 ? true : false;\r\n }\r\n else {\r\n field.showGridHeader = true;\r\n }\r\n\r\n });\r\n\r\n }\r\n else {\r\n this.selectedFormComponents = [];\r\n }\r\n\r\n }\r\n addNode() {\r\n let clonedNodeData = this.componentService.cloneModel(this.nodeData);\r\n if (this.selectedNode) {\r\n if (clonedNodeData.id && clonedNodeData.id.length > 0) {\r\n let node = this.selectedNode.items.find(f => f.id == clonedNodeData.id);\r\n if (node) {\r\n node.name = clonedNodeData.name;\r\n node.desc = clonedNodeData.desc;\r\n }\r\n }\r\n else {\r\n clonedNodeData.id = this.componentService.createuuid();\r\n this.selectedNode.items.push(clonedNodeData);\r\n }\r\n }\r\n else {\r\n if (clonedNodeData.id && clonedNodeData.id.length > 0) {\r\n let node = this.data.nodes.find(f => f.id == clonedNodeData.id);\r\n node.name = clonedNodeData.name;\r\n node.desc = clonedNodeData.desc;\r\n }\r\n else {\r\n this.nodeData.id = this.componentService.createuuid();\r\n clonedNodeData.id = this.componentService.createuuid();\r\n this.data.nodes.push(clonedNodeData);\r\n }\r\n }\r\n this.refresTree();\r\n this.showItemFormPopup = false;\r\n this.resetNodeData();\r\n }\r\n\r\n saveForm() {\r\n let isFormEditNow = false;\r\n let isFormEditWithData = false;\r\n let clonedNodeData = this.componentService.cloneModel(this.nodeData);\r\n\r\n //let form = this.formList.find(f => f.id == this.selectedFormId);\r\n if (this.selectedForm && this.selectedForm.id > 0) {\r\n\r\n let node: any = {};\r\n\r\n if (clonedNodeData.id && clonedNodeData.id.length > 0) {\r\n // node = this.data.nodes.find(f => f.id == clonedNodeData.id); \r\n\r\n //this.data.nodes.forEach(_item => {\r\n // node = _item.items.find(f => f.id == clonedNodeData.id);\r\n // if (node) {\r\n // this.selectedNode = _item;\r\n // return false;\r\n // }\r\n //});\r\n\r\n for (let _item of this.data.nodes) {\r\n node = _item.items.find(f => f.id == clonedNodeData.id);\r\n if (node) {\r\n this.selectedNode = _item;\r\n break;\r\n }\r\n }\r\n\r\n if (node && node.id) {\r\n isFormEditNow = true;\r\n //isFormEditWithData = true;\r\n }\r\n else {\r\n node = {};\r\n node.id = this.componentService.createuuid();\r\n this.nodeData.id = node.id;\r\n clonedNodeData.id = node.id;\r\n }\r\n }\r\n else {\r\n node.id = this.componentService.createuuid();\r\n this.nodeData.id = node.id;\r\n clonedNodeData.id = node.id;\r\n }\r\n\r\n\r\n node.name = this.nodeData.browserName;\r\n node.parentId = \"\";\r\n node.browserName = this.nodeData.browserName;\r\n node.formName = this.nodeData.formName;\r\n node.desc = this.selectedForm.name;\r\n node.isForm = true;\r\n node.items = [];\r\n\r\n let gridData = {\r\n \"formId\": this.selectedForm.id,\r\n \"formJson\": JSON.parse(this.selectedForm.forM_JSON),\r\n \"nodeId\": node.id,\r\n //\"fields\": [],\r\n \"data\": []\r\n }\r\n\r\n\r\n let formVisibility = this.selectedFormComponents.filter(x => x.showGridHeader == true).map(y => y.id);\r\n\r\n this.setFormOption(node.id, \"visibility\", formVisibility);\r\n this.setFormOption(node.id, \"sqlColumns\", this.addedSqlColumns);\r\n\r\n\r\n\r\n let _variable = this.formOptionVariables.find(y => y.formId == this.nodeData.form.formId && y.nodeId == this.nodeData.form.nodeId);\r\n if (_variable) {\r\n _variable.visibility = formVisibility;\r\n _variable.sqlColumns = this.addedSqlColumns;\r\n }\r\n\r\n this.componentService.menuFormNodeOptions = this.formNodeOptions;\r\n\r\n node.form = gridData;\r\n\r\n if (!isFormEditNow) {\r\n //if (isFormEditWithData)\r\n // this.data.nodes.push(node);\r\n //else\r\n if (this.selectedNode)\r\n this.selectedNode.items.push(node);\r\n else\r\n this.data.nodes.push(node);\r\n }\r\n\r\n //this.data.value.push(gridData);\r\n\r\n this.refresTree();\r\n }\r\n\r\n this.selectedFormComponents = [];\r\n this.showFormPopup = false;\r\n this.resetNodeData();\r\n }\r\n\r\n setFormOption(nodeId, name, value) {\r\n\r\n let formOptionIndex = this.formNodeOptions.findIndex(x => x.form_id == this.selectedForm.id && x.node_key == nodeId);\r\n let formOption = this.formNodeOptions.find(x => x.form_id == this.selectedForm.id && x.node_key == nodeId);\r\n if (formOption) {\r\n formOption[name] = value;\r\n this.formNodeOptions[formOptionIndex] = formOption;\r\n }\r\n else {\r\n let formVisibilityOption = { node_key: nodeId, form_id: this.selectedForm.id };\r\n formVisibilityOption[name] = value;\r\n this.formNodeOptions.push(formVisibilityOption);\r\n }\r\n\r\n }\r\n refresTree() {\r\n let nodes = this.componentService.cloneModel(this.data.nodes);\r\n this.data.nodes = [];\r\n this.data.nodes = nodes;\r\n }\r\n\r\n resetNodeData() {\r\n this.nodeData = {\r\n \"id\": \"\",\r\n \"parentId\": \"\",\r\n \"name\": \"\",\r\n \"desc\": \"\",\r\n \"browserName\": \"Browser\",\r\n \"formName\": \"Form\",\r\n \"isForm\": false,\r\n \"form\": { formId: 0, nodeId: \"\" },\r\n \"items\": []\r\n }\r\n }\r\n\r\n deleteNode(id) {\r\n let msg = \"Kaydı silmek istediğinizden emin misiniz?\"\r\n let result = confirm(msg, \"Uyarı!\");\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n\r\n this.removeFromTree(this.data.nodes, id);\r\n this.refresTree();\r\n }\r\n });\r\n }\r\n\r\n removeFromTree(nodes, id) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n if (nodes[i].id == id) {\r\n if (nodes[i].isForm == true) {\r\n\r\n\r\n let _usedFormIndex = this.componentService.usedForms.findIndex(x => x == nodes[i].form.formId);\r\n this.componentService.usedForms.splice(_usedFormIndex, 1);\r\n }\r\n nodes.splice(i, 1);\r\n return;\r\n }\r\n else if (nodes[i].items.length > 0) {\r\n this.removeFromTree(nodes[i].items, id);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n isMonacoLoaded: any = false;\r\n monacoOnInit() {\r\n this.isMonacoLoaded = true;\r\n }\r\n\r\n openDataGridPopop(node) {\r\n this.selectedNode = node;\r\n this.selectedDataGridItem = node.form;\r\n //this.componentService.currentForm = node.form.formJson;\r\n this.componentService.currentForm.menuComponents = node.form.formJson.components;\r\n this.componentService.checkUserAuthorization(this.componentService.currentForm.isReadonly, node.form.formJson.components, this.appInfo.currentUser.id, this.anotherPopupId)\r\n node.form.formJson.components = node.form.formJson.components.filter(f => !f.hide);\r\n this.selectedDataGridItemForm = this.componentService.cloneModel(node.form.formJson);\r\n // this.selectedDataGridItem = this.data.value.find(f => f.nodeId == node.id);\r\n try {\r\n //this.spinner.show(\"mainspinner\");\r\n this.formService.getMenuForm(node.form.formId, node.form.nodeId, 0, this.appInfo.currentUser.id.toString()).subscribe((result: any) => {\r\n if (result && result.formId > 0) {\r\n this.selectedDataGridItem.data = JSON.parse(result.nodeData);\r\n if (this.componentService.currentUserStaus == this.componentService.userStatus.InterimApprove || this.componentService.currentUserStaus == this.componentService.userStatus.FinalApprove) {\r\n this.selectedDataGridItem.data.forEach(item => {\r\n if (item.IsChecked) {\r\n item.Disabled = false;\r\n }\r\n else {\r\n item.Disabled = true;\r\n }\r\n })\r\n }\r\n this.applyHeadersToDataGrid();\r\n }\r\n else {\r\n this.applyHeadersToDataGrid();\r\n }\r\n //this.spinner.hide(\"mainspinner\");\r\n }, err => {\r\n this.applyHeadersToDataGrid();\r\n //this.spinner.hide(\"mainspinner\");\r\n });\r\n }\r\n catch (err) {\r\n console.log(err);\r\n this.applyHeadersToDataGrid();\r\n this.spinner.hide(\"mainspinner\");\r\n }\r\n\r\n }\r\n\r\n\r\n applyHeadersToDataGrid() {\r\n this.browserDataGrid.instance.option('columns', []);\r\n this.browserDataGrid.instance.addColumn({ caption: \"*\", dataField: \"IsChecked\", width: 50, cellTemplate: \"checkboxTemplate\", allowEditing: false });\r\n this.browserDataGrid.instance.addColumn({ name: \"ID\", dataField: \"ID\", caption: \"ID\", dataType: \"number\", width: 50, alignment: 'left', allowEditing: false });\r\n\r\n let componentlist = this.componentService.getComponentList(this.selectedDataGridItemForm.components, this.anotherPopupId);\r\n componentlist.forEach(header => {\r\n //type: \"button\"\r\n //this.selectedDataGridItem.fields.forEach(header => {\r\n\r\n if ((header.show || typeof header.show === \"undefined\") && typeof header.showGridHeader) {\r\n if (header.type == \"button\") {\r\n\r\n }\r\n else if (header.type == \"grid\") {\r\n // this.gridGetDatagridHeader();\r\n }\r\n else if (header.type == \"number\") {\r\n this.browserDataGrid.instance.addColumn({ name: header.id, dataField: header.id, caption: header.name, dataType: \"number\", width: 150, alignment: 'left', allowEditing: false });\r\n }\r\n else if (header.type == \"datebox\") {\r\n this.browserDataGrid.instance.addColumn({ name: header.id, dataField: header.id, caption: header.name, dataType: \"date\", width: 150, format: header.displayFormat, allowEditing: false });\r\n }\r\n else {\r\n this.browserDataGrid.instance.addColumn({ name: header.id, dataField: header.id, caption: header.name, width: 150, allowEditing: false });\r\n }\r\n }\r\n });\r\n this.browserDataGrid.instance.addColumn({ caption: \"*\", width: 50, cellTemplate: \"cloneButton\", allowEditing: false });\r\n this.browserDataGrid.instance.addColumn({ caption: \"**\", width: 120, cellTemplate: \"actionsButton\", allowEditing: false });\r\n this.browserDataGrid.instance.addColumn({ caption: \"\", allowEditing: false });\r\n this.browserDataGrid.instance.refresh();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.showDataGridPopup = true;\r\n }\r\n\r\n cloneRow(e) {\r\n\r\n let Id = this.selectedDataGridItem.data.length == 0 ? 1 : (this.selectedDataGridItem.data[this.selectedDataGridItem.data.length - 1].ID + 1);\r\n var clonedItem = Object.assign({}, e.row.data, { ID: Id });\r\n clonedItem.IsChecked = false;\r\n clonedItem.Disabled = false;\r\n this.selectedDataGridItem.data.splice(this.selectedDataGridItem.data.length, 0, clonedItem);\r\n this.saveMenuTemp(JSON.stringify(clonedItem));\r\n }\r\n\r\n\r\n openFormRenderPopop() {\r\n\r\n this.selectedDataGridRowIndex = -1;\r\n this.selectedDataGridItemForm = this.componentService.cloneModel(this.selectedDataGridItem.formJson);\r\n this.selectedDataGridItemForm.components = this.selectedDataGridItemForm.components.filter(f => f.type != \"button\");\r\n this.isFormRenderReadonly = false;\r\n this.showFormRenderPopup = true;\r\n if (!this.isEdit) {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n\r\n saveFormData(args) {\r\n if (!args.validationGroup.validate().isValid) {\r\n return;\r\n }\r\n\r\n this.currentFormData = [];\r\n this.createValuesData(this.selectedDataGridItemForm.components);\r\n this.addDataToGrid();\r\n }\r\n\r\n createValuesData(components) {\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].isInput == true || components[i].inputType == \"datagrid\"\r\n || components[i].inputType == \"file\"\r\n || components[i].type == \"gallery\"\r\n || components[i].type == \"codeeditor\"\r\n || components[i].type == \"htmleditor\"\r\n || components[i].type == \"comment\") {\r\n var obj: any = {};\r\n obj[\"key\"] = components[i].id;\r\n obj[\"value\"] = components[i].value;\r\n obj[\"type\"] = components[i].inputType;\r\n obj[\"componentType\"] = components[i].type;\r\n\r\n obj[\"isAuto\"] = components[i].isAuto;\r\n obj[\"autoText\"] = components[i].autoText;\r\n\r\n if (components[i].type == \"button\")\r\n obj[\"name\"] = components[i].nameValue;\r\n\r\n if (components[i].inputType == \"datagrid\") {\r\n\r\n var gridVal = components[i].value;\r\n var lastId = gridVal.length > 0 ? gridVal[gridVal.length - 1].ID : 0;\r\n obj[\"lastid\"] = lastId;\r\n var headerAndType = this.getGridHeaders(components[i]);\r\n obj[\"headers\"] = headerAndType.headers;\r\n obj[\"headerTypes\"] = headerAndType.headerTypes;\r\n obj[\"rowCount\"] = components[i].value.length;\r\n obj[\"selectedRowCount\"] = components[i].selectedRows;\r\n obj[\"userChangeColumns\"] = components[i].userChangeColumns;\r\n }\r\n else {\r\n obj[\"headers\"] = \"\";\r\n obj[\"rowCount\"] = 0;\r\n obj[\"selectedRowCount\"] = 0;\r\n obj[\"userChangeColumns\"] = [];\r\n }\r\n this.currentFormData.push(obj);\r\n }\r\n else if (components[i].type == \"grid\") {\r\n for (let j = 0; j < components[i].rows.length; j++) {\r\n for (let k = 0; k < components[i].rows[j].cols.length; k++) {\r\n this.createValuesData(components[i].rows[j].cols[k].components);\r\n }\r\n }\r\n }\r\n else if (components[i].type == \"panel\" || components[i].type == \"tabs\") {\r\n for (let j = 0; j < components[i].items.length; j++) {\r\n this.createValuesData(components[i].items[j].components);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getGridHeaders(grid) {\r\n\r\n let headers = [];\r\n let headerTypes = [];\r\n grid.headers.forEach(header => {\r\n var obj: any = {};\r\n //if (header.type != \"file\") {\r\n headers.push(header.field);\r\n headerTypes.push(header.type);\r\n //}\r\n });\r\n return { headers: headers.join(\",\"), headerTypes: headerTypes.join(\",\") };\r\n }\r\n\r\n\r\n addDataToGrid() {\r\n let newData: any = {};\r\n for (let i = 0; i < this.currentFormData.length; i++) {\r\n let field = this.currentFormData[i];\r\n newData[field.key] = field.value;\r\n }\r\n\r\n if (this.selectedDataGridRowIndex >= 0) {\r\n newData.ID = this.selectedDataGridItem.data[this.selectedDataGridRowIndex].ID;\r\n newData.IsChecked = this.selectedDataGridItem.data[this.selectedDataGridRowIndex].IsChecked;\r\n newData.Disabled = this.selectedDataGridItem.data[this.selectedDataGridRowIndex].Disabled;\r\n this.selectedDataGridItem.data.splice(this.selectedDataGridRowIndex, 1, newData);\r\n }\r\n\r\n else {\r\n newData.ID = this.selectedDataGridItem.data.length == 0 ? 1 : (this.selectedDataGridItem.data[this.selectedDataGridItem.data.length - 1].ID + 1);\r\n newData.IsChecked = false;\r\n newData.Disabled = false;\r\n this.selectedDataGridItem.data.push(newData);\r\n }\r\n\r\n\r\n this.selectedDataGridRowIndex = -1;\r\n this.showFormRenderPopup = false;\r\n\r\n //let menuNode = new MenuNode();\r\n //menuNode.FormId = this.selectedDataGridItem.formId;\r\n //menuNode.NodeKey = this.selectedDataGridItem.nodeId;\r\n //menuNode.NodeData = JSON.stringify(newData);\r\n\r\n this.saveMenuTemp(JSON.stringify(newData));\r\n }\r\n\r\n\r\n //selectDataByEdit: any;\r\n //editPopupOpen(cellInfo, isReadonly) { \r\n\r\n // this.selectDataByEdit = cellInfo;\r\n // this.selectedDataGridRowIndex = cellInfo.rowIndex;\r\n // this.isFormRenderReadonly = isReadonly;\r\n // this.showFormRenderPopup = true; \r\n //}\r\n\r\n editData(cellInfo, isReadonly) {\r\n\r\n let components = this.componentService.getComponentList(this.selectedDataGridItemForm.components, this.anotherPopupId);\r\n for (let i = 0; i < components.length; i++) {\r\n if (cellInfo.data[components[i].id]) {\r\n components[i].value = cellInfo.data[components[i].id];\r\n }\r\n }\r\n\r\n this.selectedDataGridRowIndex = cellInfo.rowIndex;\r\n this.isFormRenderReadonly = isReadonly;\r\n this.showFormRenderPopup = true;\r\n // this.saveMenuTemp(cellInfo);\r\n }\r\n\r\n removeRow(row) {\r\n let msg = \"\" + this.languageLocal.removeRow+\"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n\r\n //this.saveMenuTemp();deleteMenuTemp\r\n this.selectedDataGridRowIndex = row.rowIndex;\r\n let menuNode = new MenuNode();\r\n menuNode.FormId = this.selectedDataGridItem.formId;\r\n menuNode.NodeKey = this.selectedDataGridItem.nodeId;\r\n menuNode.NodeData = JSON.stringify(row.data);\r\n\r\n this.formService.deleteMenuForm(menuNode, row.rowIndex).subscribe((result: any) => {\r\n\r\n this.selectedDataGridItem.data.splice(row.rowIndex, 1);\r\n // var clonedItem = Object.assign({}, row.data, { ID: this.selectedDataGridItem.data.length + 1 });\r\n });\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n submitMenu(status) {\r\n //this.eventEmitterService.subsMenuSubmit = undefined;\r\n //let isAD = status == this.componentService.formStatus.Approve || status == this.componentService.formStatus.Disapprove;\r\n //this.data.value = [];\r\n //if (isAD) {\r\n // this.selectedDataGridItem.data.forEach(item => {\r\n // if (item.IsChecked) {\r\n // item.Disabled = false;\r\n // this.data.value.push(item);\r\n // }\r\n // });\r\n //}\r\n //else {\r\n // this.selectedDataGridItem.data.forEach(item => {\r\n // if (item.IsChecked && !item.Disabled) {\r\n // item.Disabled = true;\r\n // this.data.value.push(item);\r\n // }\r\n // });\r\n //}\r\n\r\n //if (this.data.value.length > 0) {\r\n\r\n // let msg = \" \" + this.data.value.length + \" adet kayıt gönderilecek. Emin misiniz?\"\r\n // let result = confirm(msg, \"Uyarı!\");\r\n // result.then((dialogResult) => {\r\n // if (dialogResult) {\r\n // this.showDataGridPopup = false;\r\n\r\n // let menuNode = new MenuNode();\r\n // menuNode.FormId = this.selectedDataGridItem.formId;\r\n // menuNode.NodeKey = this.selectedDataGridItem.nodeId;\r\n // menuNode.NodeData = JSON.stringify(this.data.value);\r\n // this.formService.checkMenuForm(menuNode).subscribe((result: any) => {\r\n // \r\n // });\r\n\r\n // // this.saveMenuTemp(null);\r\n // this.eventEmitterService.submitMenu(status);\r\n // }\r\n // });\r\n //}\r\n //else {\r\n // this.componentService.showAlert(\"Lütfen göndereceğiniz kayıtları seçiniz\", \"warning\", 2000);\r\n //}\r\n }\r\n addLanguage() {\r\n this.languagePopup = true;\r\n console.log(this.lang)\r\n }\r\n\r\n saveLanguagePopup() {\r\n debugger;\r\n this.languagePopup = false;\r\n let find = this.data.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n this.nodeData.name= find.Title\r\n }\r\n }\r\n\r\n saveMenuTemp(rowData) {\r\n\r\n this.componentService.menuFormNodeOptions = this.formNodeOptions;\r\n\r\n let menuNode = new MenuNode();\r\n menuNode.FormId = this.selectedDataGridItem.formId;\r\n menuNode.NodeKey = this.selectedDataGridItem.nodeId;\r\n menuNode.NodeData = rowData;\r\n this.formService.saveMenuForm(menuNode).subscribe((result: any) => {\r\n\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { EventEmitterService, GenericService, AppInfoService } from '../../shared/services';\r\nimport { ComponentService } from '../component.service';\r\nimport { ComponentParameters } from '../component.parameters';\r\n\r\nexport class SqlScriptModelMultiSelect {\r\n id: number;\r\n connectionId: number;\r\n elementId: string;\r\n query: string;\r\n}\r\n\r\n@Component({\r\n selector: 'multiselectbox-component',\r\n templateUrl: './multiselectbox.component.html',\r\n styleUrls: ['./multiselectbox.component.css']\r\n})\r\nexport class DxMultiSelectBoxComponent implements ComponentParameters, OnInit, OnDestroy {\r\n\r\n // #region Definitions\r\n\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n languageCodes = []\r\n\r\n classFormComponent = \"col-md-12\";\r\n classFormElements = \"col-md-6 hidden-element\";\r\n\r\n designerDataSourceList: any;\r\n designerDatasourceModel: any;\r\n\r\n dataSources: any;\r\n dataSourcePopup: boolean = false;\r\n isFromDataSource: boolean;\r\n showSettingPopup: boolean = false;\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showChamgeEventPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n\r\n formComponentsScripts: any;\r\n formElementsScripts: any;\r\n\r\n invokeChangeEventLocal: Subscription;\r\n // editorOptions = { theme: 'vs-dark', language: 'sql', automaticLayout: true };\r\n connections: any = [];\r\n selecboxComponents: any = [];\r\n\r\n sqlScriptModel: SqlScriptModelMultiSelect;\r\n\r\n registeredLanguage: any;\r\n\r\n formElements: any;\r\n\r\n showFunctionSettingPopup: any = false;\r\n isMonacoFuncParentLoaded: any = false;\r\n functionScript = { code: \"\", elementId: \"\", column: \"\" };\r\n functionScriptIndex = -1;\r\n\r\n isMonacoFuncLoaded: any = false;\r\n languageLocal: any = \"\";\r\n myCustomButtonConfig = {\r\n onClick: (e) => {\r\n // ...\r\n },\r\n disabled: false\r\n };\r\n isGridBoxOpened = false;\r\n // #endregion\r\n\r\n // #region LifeCycles : Constructor, NgOnInıt , NgOnDestroy\r\n constructor(private appInfo: AppInfoService,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n private changeDetectorRef: ChangeDetectorRef) {\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.languageCodes = this.componentService.getlanguageCodes();\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n \r\n if (this.data.id != sub.id && sub.elementId == this.data.id) {\r\n\r\n if (sub.data) {\r\n\r\n let result = sub.data;\r\n if (result && result.length > 0 && Array.isArray(result)) {\r\n this.data.dataSource = result;\r\n\r\n let keys = Object.keys(this.data.dataSource[0]);\r\n this.data.displayColumnsExpr = keys\r\n\r\n let tempValue = this.data.isDefaultFirstValue && this.data.dataSource.length > 0 && this.data.value == \"\" ? this.data.dataSource[0][this.data.valueExpr] : this.data.value;\r\n tempValue.forEach(el => {\r\n if (!this.data.value.includes(el)) {\r\n\r\n this.data.value.push(tempValue)\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n })\r\n\r\n\r\n let _event_ = { value: this.data.value };\r\n this.onValueChanged(_event_);\r\n }\r\n else {\r\n this.data.value = result;\r\n }\r\n\r\n }\r\n else if (sub.value == \"clean_element\") { this.data.dataSource = []; this.data.value = [] }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (typeof this.functionScript == \"undefined\")\r\n this.functionScript = { code: \"\", elementId: \"\", column: \"\" };\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n if (!this.isEdit) {\r\n this.executeScript();\r\n } else {\r\n this.fillDesignerDataSource();\r\n }\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n if (typeof this.data.isDefaultFirstValue === \"undefined\")\r\n this.data.isDefaultFirstValue = false;\r\n\r\n if (this.componentService.currentInstanceId != 0 && this.data.value.length > 0) {\r\n this.onValueChange(this.data.value, true)\r\n }\r\n\r\n }\r\n\r\n // #endregion \r\n\r\n //#region Default Events\r\n\r\n /**\r\n * Return true if data.outsideDisabled\r\n */\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n // #endregion\r\n\r\n // #region Settings (Save and Cancel)\r\n saveSetting() {\r\n\r\n this.data.desktopDatasource = this.designerDatasourceModel.ID;\r\n\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n } else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n // #endregion\r\n\r\n // #region Datasource Events\r\n fillDesignerDataSource() {\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n\r\n this.genericService.fillDesignerDataSource().subscribe((result: any) => {\r\n\r\n this.designerDataSourceList = result;\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n if (this.data.desktopDatasource != null) {\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == this.data.desktopDatasource);\r\n\r\n if (typeof this.designerDatasourceModel.ID === \"undefined\")\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n }\r\n\r\n if (!this.isEdit) {\r\n this.genericServiceExecuteScript(this.designerDatasourceModel.SQLSTR, this.designerDatasourceModel.CONNID);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n resetDataSource() {\r\n this.data.dataSource = [];\r\n this.data.dataSourceKey = \"\";\r\n }\r\n\r\n onChangeDatasourceValue(event) {\r\n if (event.value) {\r\n\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == event.value);\r\n\r\n // this.designerDatasourceModel = { ID: 0, NAME: \"\", SQLSTR: \"\" };\r\n\r\n }\r\n }\r\n\r\n onDataSourceValueChanged(event) {\r\n this.data.dataSourceKey = event.value\r\n }\r\n // #endregion\r\n\r\n // #region onValueChange Events\r\n onValueChanged(event) {\r\n\r\n \r\n }\r\n\r\n onChangeformElementsScriptsValue(e) {\r\n if (e.value != \"\") {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let fCompms = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let fCompm = fCompms.find(x => x.id == e.value);\r\n if (fCompm.type == \"gallery\") {\r\n\r\n // = this.setFormElementsScripts(fCompm);// fCompm.storage.sqlHideColumns.map(m => m.name);\r\n this.setFormElementsScripts(fCompm);\r\n this.classFormComponent = \"col-md-6\";\r\n this.classFormElements = \"col-md-6\";\r\n }\r\n else {\r\n this.classFormComponent = \"col-md-12\";\r\n this.classFormElements = \"col-md-6 hidden-element\";\r\n }\r\n }\r\n }\r\n\r\n setFormElementsScripts(dataGallery) {\r\n let _return = [];\r\n if (dataGallery.storage.query != \"\" && dataGallery.storage.connectionStringId > 0) {\r\n this.genericService.executeQuerySecurited(dataGallery.storage.query, dataGallery.storage.connectionStringId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n\r\n let allColumnsSql = Object.keys(result[0]);\r\n let keysSearch = [];\r\n keysSearch = allColumnsSql.filter(f =>\r\n f != dataGallery.storage.keyColumn);\r\n\r\n keysSearch.forEach(item => {\r\n this.formElementsScripts.push(item);\r\n });\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n // #endregion\r\n\r\n\r\n onValueChange(eventValue,init = false) {\r\n debugger;\r\n if (eventValue && eventValue.length > 0) {\r\n //this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", event.value, null);\r\n this.data.value = eventValue;\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n \r\n if (typeof this.data.functionScripts != \"undefined\") {\r\n\r\n let galleryArray = [];\r\n\r\n \r\n\r\n this.data.functionScripts.forEach(f => {\r\n \r\n let fCode = f.code.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n console.log(this.data.value)\r\n fCode = this.replaceAll(fCode, \"{\" + this.data.id + \"}\", JSON.stringify(this.data.value) );\r\n curentComponents.forEach(c => {\r\n if (c.id != this.data.id) {\r\n let cId = \"{\" + c.id + \"}\";\r\n fCode = this.componentService.replaceAllUsingType(fCode, cId, c.value);// this.replaceAll(fCode, cId, c.value);\r\n }\r\n });\r\n\r\n let fCompm = curentComponents.find(x => x.id == f.elementId);\r\n if (fCompm.type == \"gallery\") {\r\n \r\n let result = null\r\n try {\r\n result = eval(fCode); //\"[IDs]*1\" \r\n } catch (ex) {\r\n console.log(ex)\r\n }\r\n \r\n let galArrayObj = galleryArray.find(l => l.element == f.elementId);\r\n if (galArrayObj) {\r\n galArrayObj.values.push({ value: result, column: f.column });\r\n }\r\n else {\r\n let resVal = { element: f.elementId, values: [] };\r\n resVal.values.push({ value: result, column: f.column });\r\n galleryArray.push(resVal);\r\n }\r\n\r\n }\r\n else {\r\n try {\r\n let result = eval(fCode);\r\n console.log(result)\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, f.elementId, result, result);\r\n } catch (ex) {\r\n console.log(ex)\r\n }\r\n }\r\n\r\n });\r\n\r\n galleryArray.forEach(f => {\r\n this.eventEmitterService.galleryChangeEvent(this.data.id, f.element, f.values);\r\n });\r\n\r\n }\r\n this.data.sqlScripts.forEach(s => {\r\n \r\n let pref = \"{\" + this.data.id + \"}\";\r\n let value = eventValue;\r\n let array = []\r\n value.forEach(el => {\r\n array.push(\"'\" + el +\"'\")\r\n })\r\n let query = this.componentService.replaceAllUsingType(s.query, pref, array); //s.query.replace(pref, array);\r\n\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(query)) {\r\n let _match = query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = curentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value);// query.replace(f, _value);\r\n }\r\n });\r\n }\r\n }\r\n console.log(query)\r\n this.genericService.executeQuerySecurited(query, s.connectionId).subscribe((result: any) => {\r\n \r\n console.log(result);\r\n if (result) {\r\n let element = this.componentService.getById(s.elementId, currentFormSelected.components, this.anotherPopupId);\r\n if (element.type) {\r\n if (element.type == \"datagrid\" && init) return;\r\n if (element.component == \"DxDatagridSelectComponent\" || element.type == \"datalist\" || element.type == \"selectbox\" || element.type == \"gallery\" || element.type == \"datagrid\" || element.type == \"multiselectbox\") {\r\n let isShowComfirm = true;\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, eventValue, result);\r\n }\r\n else {\r\n let finalData = [];\r\n if (result.length > 0) {\r\n for (let i = 0; i < result.length; i++) {\r\n let keys = Object.keys(result[i]);\r\n if (keys.length > 0) {\r\n keys.forEach(f => {\r\n \r\n finalData.push(result[i][f]);\r\n });\r\n }\r\n }\r\n }\r\n let dataText = finalData.join(\",\");\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, eventValue, dataText);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n this.clearScriptRecursive(this.data.id);\r\n }\r\n\r\n this.isGridBoxOpened = false;\r\n }\r\n // #region Open Popup Events\r\n openDataPopup(type) {\r\n this.isFromDataSource = type == \"1\";\r\n if (this.isFromDataSource) {\r\n this.data.isManual = false;\r\n let selectboxes = this.componentService.getComponentsByType(\"selectbox\", this.anotherPopupId);\r\n this.selecboxComponents = [];\r\n if (selectboxes) {\r\n selectboxes.forEach(item => {\r\n if (item.id != this.data.id) {\r\n let element: any = {};\r\n element.id = item.id;\r\n element.name = this.componentService.getLang(this.lang, item.language).Label;\r\n this.selecboxComponents.push(element);\r\n }\r\n });\r\n }\r\n //this.dataSources = this.componentService.getComponentsByType(\"datasource\");\r\n }\r\n else {\r\n this.data.isManual = true;\r\n }\r\n\r\n this.dataSourcePopup = true;\r\n }\r\n\r\n openChamgeEventPopup() {\r\n this.isMonacoLoaded = false;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n this.formElements = elements.filter(f => f != this.data.id);\r\n this.sqlScriptModel = new SqlScriptModelMultiSelect();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n this.showChamgeEventPopup = true;\r\n }\r\n\r\n openFunctionSettingPopup() {\r\n //this.functionScript.id = 0;\r\n this.functionScriptIndex = -1;\r\n this.functionScript.code = \"\";\r\n this.functionScript.elementId = \"\";\r\n this.functionScript.column = \"\";\r\n this.formElementsScripts = [];\r\n\r\n this.isMonacoFuncLoaded = true;\r\n this.showFunctionSettingPopup = true;\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.formComponentsScripts = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n\r\n\r\n setTimeout(() => { this.isMonacoFuncParentLoaded = true; }, 1000);\r\n }\r\n\r\n /** Save Data source on dataSourcePopup */\r\n saveDataSource() {\r\n if (this.data.isManual && this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n\r\n let msg = \"\" + this.languageLocal.messageSqlLinkDelete+\"\";\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.dataSourcePopup = false;\r\n this.data.valueExpr = \"value\";\r\n this.data.displayExpr = \"text\";\r\n }\r\n });\r\n\r\n } else {\r\n\r\n if (this.data.isManual) {\r\n this.data.valueExpr = \"value\";\r\n this.data.displayExpr = \"text\";\r\n }\r\n\r\n this.dataSourcePopup = false;\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Monaco Initialize and Keywords\r\n monacoOnInit() {\r\n this.isMonacoLoaded = true;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n\r\n monacoFunctionOnInit(e) {\r\n\r\n this.isMonacoFuncLoaded = false;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n\r\n setCustomKeywords(monaco) {\r\n if (this.registeredLanguage)\r\n this.registeredLanguage.dispose();\r\n\r\n this.registeredLanguage = monaco.languages.registerCompletionItemProvider('plaintext', {\r\n provideCompletionItems: () => {\r\n var suggestions = [];\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n for (let i = 0; i < elements.length; i++) {\r\n suggestions.push({\r\n label: elements[i],\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"\" + elements[i] + \"\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n })\r\n }\r\n return { suggestions: suggestions };\r\n }\r\n });\r\n }\r\n // #endregion\r\n\r\n // #region Formül CRUD and CDK\r\n\r\n saveFuncParam() {\r\n if (this.functionScript.code != \"\" && this.functionScript.elementId != \"\") {\r\n let functionScriptModel = this.componentService.cloneModel(this.functionScript);\r\n if (typeof this.data.functionScripts == \"undefined\") this.data.functionScripts = [];\r\n\r\n if (this.functionScriptIndex == -1) {\r\n this.data.functionScripts.push(functionScriptModel);\r\n }\r\n else {\r\n let dataFunctionScript = this.data.functionScripts[this.functionScriptIndex];\r\n dataFunctionScript.code = functionScriptModel.code;\r\n dataFunctionScript.elementId = functionScriptModel.elementId;\r\n dataFunctionScript.column = functionScriptModel.column;\r\n }\r\n this.functionScriptIndex = -1;\r\n this.functionScript.code = \"\";\r\n this.functionScript.elementId = \"\";\r\n this.functionScript.column = \"\";\r\n this.formElementsScripts = [];\r\n }\r\n }\r\n\r\n updateFunctionScript(index) {\r\n this.functionScriptIndex = index;\r\n let dataFunctionScript = this.data.functionScripts[this.functionScriptIndex];\r\n this.functionScript.code = dataFunctionScript.code;\r\n this.functionScript.elementId = dataFunctionScript.elementId;\r\n this.functionScript.column = dataFunctionScript.column;\r\n }\r\n\r\n deleteFunctionScript(index) {\r\n this.data.functionScripts.splice(index, 1);\r\n }\r\n\r\n //* Formül tablosunda sürükle bırak özelliğini sağlamaktadır. */\r\n colShorting(event: CdkDragDrop) {\r\n moveItemInArray(this.data.functionScripts, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n // #endregion\r\n \r\n // #region Sql Script CRUD\r\n saveSqlScript() {\r\n let model = this.componentService.cloneModel(this.sqlScriptModel);\r\n\r\n if (model.id > 0) {\r\n let scr = this.data.sqlScripts.find(f => f.id == model.id);\r\n scr.connectionId = model.connectionId;\r\n scr.elementId = model.elementId;\r\n scr.query = model.query;\r\n }\r\n else {\r\n model.id = this.data.sqlScripts.length + 1;\r\n this.data.sqlScripts.push(model);\r\n }\r\n\r\n this.sqlScriptModel = new SqlScriptModelMultiSelect();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n }\r\n\r\n updateSqlScript(i) {\r\n let scr = this.data.sqlScripts[i];\r\n this.sqlScriptModel = new SqlScriptModelMultiSelect();\r\n this.sqlScriptModel.id = scr.id;\r\n this.sqlScriptModel.connectionId = scr.connectionId;\r\n this.sqlScriptModel.elementId = scr.elementId;\r\n this.sqlScriptModel.query = scr.query;\r\n }\r\n\r\n deleteSqlScript(i) {\r\n this.data.sqlScripts.splice(i, 1);\r\n }\r\n // #endregion\r\n\r\n /**\r\n * If Connection Selected And Query is not empty Data will be loaded from Generic Service\r\n * Else\r\n * Else\r\n * \r\n */\r\n public executeScript() {\r\n\r\n if (this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n this.genericServiceExecuteScript(this.data.dataStorage.query, this.data.dataStorage.connectionId);\r\n\r\n } else if (this.data.dataSource && this.data.dataSource.length > 0) {\r\n\r\n let filteredData = this.data.dataSource.filter(f => f.lang == this.lang);\r\n if (filteredData && filteredData.length > 0) {\r\n this.data.dataSource = filteredData;\r\n let keys = Object.keys(this.data.dataSource[0]);\r\n this.data.displayColumnsExpr = keys\r\n //this.data.isDefaultFirstValue && this.data.dataSource.length > 0 && this.data.value == [] ? this.data.value.push(this.data.dataSource[0][this.data.valueExpr]) : this.data.value;\r\n\r\n let _event_ = { value: this.data.value };\r\n this.onValueChanged(_event_);\r\n }//displayExpr\r\n\r\n } else if (this.data.desktopDatasource != null) {\r\n\r\n this.fillDesignerDataSource();\r\n }\r\n }\r\n\r\n /**\r\n * Execute SQL Script with generic service.\r\n * @param _ConnectionId Connection id on TABLE_CONNECTIONS\r\n */\r\n public genericServiceExecuteScript(_Query, _ConnectionId) {\r\n\r\n this.genericService.executeQuerySecurited(_Query, _ConnectionId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n this.data.dataSource = result;\r\n\r\n let keys = Object.keys(this.data.dataSource[0]);\r\n this.data.displayColumnsExpr = keys\r\n\r\n //this.data.value = this.data.isDefaultFirstValue && this.data.dataSource.length > 0 && this.data.value == [] ? this.data.value.push(this.data.dataSource[0][this.data.valueExpr]) : this.data.value;\r\n try {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n } catch (ex) { }\r\n\r\n let _event_ = { value: this.data.value };\r\n this.onValueChanged(_event_);\r\n } else {\r\n this.data.dataSource = [];\r\n }\r\n });\r\n }\r\n\r\n\r\n clearScriptRecursive(componentId) {\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let currentComp = curentComponents.find(el => el.id == componentId)\r\n\r\n if (currentComp) {\r\n this.clearScriptCode(componentId, currentComp);\r\n }\r\n else if (this.componentService.tempDatagridPopupComponent.components.length > 0) {\r\n\r\n if (this.componentService.datagridColumnHasUserChanges[componentId] == false) {\r\n let _selectElement = this.componentService.tempDatagridPopupComponent.components.find(x => x.id == componentId);\r\n this.clearScriptCode(componentId, _selectElement);\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n clearScriptCode(componentId, currentComp) {\r\n if (this.data.id != componentId) {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, componentId, \"clean_element\", null);\r\n }\r\n\r\n if (typeof currentComp.sqlScripts != \"undefined\" && typeof currentComp.sqlScripts.length != \"undefined\" && currentComp.sqlScripts.length > 0) {\r\n currentComp.sqlScripts.forEach(el => {\r\n this.clearScriptRecursive(el.elementId)\r\n })\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { GenericService } from '../../shared/services';\r\n\r\n@Component({\r\n selector: 'number-component',\r\n templateUrl: './number.component.html',\r\n styleUrls: ['./number.component.css']\r\n\r\n})\r\nexport class DxNumberComponent implements ComponentParameters, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: any;\r\n @Input() isEdit: any;\r\n @Input() disabled: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n dataTypes = [{ \"name\": \"Ondalıklı Sayı\", \"format\": \"#,##0.00\", \"type\": \"decimal\" }, { \"name\": \"Rakam\", \"format\": \"#\", \"type\": \"int\" }];\r\n // leftOrRight = [{ \"value\": \"false\", \"name\": \"Sola Hizala\" }, { \"value\": \"true\", \"name\": \"Sağa Hizala\" }];\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n isFormatDisabled: boolean = false;\r\n languageLocal: any = \"\";\r\n invokeChangeEventLocal: Subscription;\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n private genericService: GenericService,\r\n public componentService: ComponentService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n if (sub.elementId == this.data.id) {\r\n if (!this.data.isUserChange) {\r\n sub.data = sub.data == \"\" ? 0 : sub.data;\r\n if (sub.data != null && typeof sub.data != \"undefined\") {\r\n // this.data.inputType format dataTypes .format==\"#\" else \"format\"\r\n if (this.data.format == \"#\")\r\n this.data.value = parseInt(sub.data);\r\n else\r\n this.data.value = parseFloat(sub.data);\r\n }\r\n else if (sub.value == \"clean_element\") this.data.value = \"\";\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n validationCallback(e) {\r\n let bool = true;\r\n if (typeof e.value == \"undefined\" || e.value == null || (e.value == 0)) {\r\n bool = false;\r\n }\r\n return bool;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n ngOnInit() {\r\n \r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\") this.data.show = true;\r\n if (typeof this.data.suffix === \"undefined\") this.data.suffix = \"\";\r\n if (typeof this.data.prefix === \"undefined\") this.data.prefix = \"\";\r\n if (typeof this.data.width === \"undefined\" || this.data.width == \"\") this.data.width = \"100%\";\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n this.componentService.datagridColumnHasUserChanges[this.data.id] = typeof this.componentService.datagridColumnHasUserChanges[this.data.id] == 'undefined' ? false : this.componentService.datagridColumnHasUserChanges[this.data.id];\r\n\r\n //if (typeof this.componentService.datagridColumnHasUserChanges[this.data.id] == \"undefined\") {\r\n // this.hasUserChange = false;\r\n //}\r\n //else {\r\n // this.hasUserChange = this.componentService.datagridColumnHasUserChanges[this.data.id];\r\n //}\r\n\r\n this.data.min = typeof this.data.min == \"undefined\" ? null : this.data.min;\r\n this.data.max = typeof this.data.max == \"undefined\" ? null : this.data.max;\r\n this.data.showMinMaxInfo = typeof this.data.showMinMaxInfo == \"undefined\" ? false : this.data.showMinMaxInfo;\r\n this.data.align = typeof this.data.align == \"undefined\" ? false : this.data.align;\r\n this.data.value = this.data.value == \"\" ? 0 : this.data.value;\r\n this.data.isUserChange = typeof this.data.isUserChange == \"undefined\" ? false : this.data.isUserChange;\r\n //console.log(this.data.isUserChange)\r\n // this.data.format = this.data.format == \"#0\" || this.data.format == \"#0\" ? \"#,##0\" : this.data.format;\r\n\r\n }\r\n getNumberContainerStyle() {\r\n let myStyles = {\r\n 'width': (this.data.width && typeof this.data.width != \"undefined\" && this.data.width != null) ? (this.data.width +( this.componentService.isInteger(this.data.width ) ? \"px\" : \"\")) : \"100%\",\r\n 'display': 'table'\r\n };\r\n return myStyles;\r\n }\r\n getNumberStyle() {\r\n //width: 100% !important; display: table-cell !important; border-right: 0px;\r\n let myStyles = {\r\n 'width': \"100% !important\",\r\n 'display': \"table-cell\", // display: table-cell; \r\n };\r\n\r\n if (this.data.suffix && this.data.suffix.length > 0) {\r\n myStyles[\"border-right\"] = \"0px\";\r\n myStyles[\"border-top-right-radius\"] = \"0px\";\r\n myStyles[\"border-bottom-right-radius\"] = \"0px\";\r\n }\r\n\r\n if (this.data.prefix && this.data.prefix.length > 0) {\r\n myStyles[\"border-left\"] = \"0px\";\r\n myStyles[\"border-top-left-radius\"] = \"0px\";\r\n myStyles[\"border-bottom-left-radius\"] = \"0px\";\r\n }\r\n\r\n return myStyles;\r\n }\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n onNumberValueChanged(e) {\r\n //debugger;\r\n if (this.data.upperCaseLetter) { this.data.value = this.data.value.toUpperCase(); }\r\n this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", e.value, null);\r\n // this.eventEmitterService.executeExpretion(this.anotherPopupId);\r\n\r\n if (typeof this.data.functionScripts != \"undefined\") {\r\n\r\n let galleryArray = [];\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n let iFuncScr = 0;\r\n this.data.functionScripts.forEach(f => {\r\n iFuncScr = iFuncScr + 1;\r\n let fCode = f.code.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n fCode = this.replaceAll(fCode, \"{\" + this.data.id + \"}\", this.data.value);\r\n curentComponents.forEach(c => {\r\n if (c.id != this.data.id) {\r\n let cId = \"{\" + c.id + \"}\";\r\n fCode = this.replaceAll(fCode, cId, c.value);\r\n }\r\n });\r\n\r\n let fCompm = curentComponents.find(x => x.id == f.elementId);\r\n if (fCompm) {\r\n this.jsScriptExecuteResult(fCompm, fCode, galleryArray, f);\r\n }\r\n else if (this.componentService.tempDatagridPopupComponent.components.length > 0) {\r\n\r\n //let hasUserChangeService = this.componentService.datagridColumnHasUserChanges[this.data.id];\r\n //if (typeof hasUserChangeService != 'undefined') {\r\n // this.hasUserChange = hasUserChangeService;\r\n // delete this.componentService.datagridColumnHasUserChanges[this.data.id];\r\n //}\r\n\r\n\r\n // if (this.hasUserChange == false) {\r\n if (this.componentService.datagridColumnHasUserChanges[f.elementId] == false) {\r\n let _selectElement = this.componentService.tempDatagridPopupComponent.components.find(x => x.id == f.elementId);\r\n fCode = f.code.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n fCode = this.replaceAll(fCode, \"{\" + this.data.id + \"}\", this.data.value);\r\n this.componentService.tempDatagridPopupComponent.components.forEach(c => {\r\n if (c.id != this.data.id) {\r\n let cId = \"{\" + c.id + \"}\";\r\n fCode = this.replaceAll(fCode, cId, c.value);\r\n }\r\n });\r\n if (_selectElement && _selectElement.type) {\r\n this.jsScriptExecuteResult(_selectElement, fCode, galleryArray, f);\r\n }\r\n }\r\n else {\r\n\r\n //setTimeout(() => { this.componentService.datagridColumnHasUserChanges[f.elementId] = false; }, 3000);\r\n\r\n //if (typeof this.componentService.datagridColumnHasUserChanges[this.data.id] == 'undefined')\r\n // this.hasUserChange = false;\r\n //else if (this.data.functionScripts.length == iFuncScr)\r\n // this.hasUserChange = false;\r\n }\r\n }\r\n\r\n });\r\n // try { delete this.componentService.datagridColumnHasUserChanges[this.data.id]; } catch (ex) { }\r\n\r\n galleryArray.forEach(f => {\r\n this.eventEmitterService.galleryChangeEvent(this.data.id, f.element, f.values);\r\n });\r\n\r\n }\r\n\r\n this.isUserChangeCheck();\r\n }\r\n\r\n hasUserChange = false;\r\n tempValue = undefined\r\n\r\n onKeydown(e) {\r\n //this.hasUserChange = true;\r\n this.tempValue = JSON.parse(JSON.stringify(this.data.value))\r\n this.componentService.datagridColumnHasUserChanges[this.data.id] = true;\r\n\r\n\r\n }\r\n\r\n jsScriptExecuteResult(fCompm, fCode, galleryArray, f) {\r\n if (fCompm.type == \"gallery\") {\r\n\r\n if (fCode.indexOf('\"[') > -1 || fCode.indexOf(\"'[\") > -1) {\r\n try {\r\n let result = eval(fCode);\r\n\r\n let galArrayObj = galleryArray.find(l => l.element == f.elementId);\r\n if (galArrayObj) {\r\n galArrayObj.values.push({ value: result, column: f.column });\r\n }\r\n else {\r\n let resVal = { element: f.elementId, values: [] };\r\n resVal.values.push({ value: result, column: f.column });\r\n galleryArray.push(resVal);\r\n }\r\n } catch (ex) { }\r\n\r\n }\r\n\r\n }\r\n else {\r\n try {\r\n let result = eval(fCode);\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, f.elementId, result, result);\r\n } catch (ex) { }\r\n }\r\n }\r\n\r\n /*onChange() {\r\n this.eventEmitterService.executeExpretion();\r\n }*/\r\n\r\n\r\n\r\n classFormComponent = \"col-md-12\";\r\n classFormElements = \"col-md-6 hidden-element\";\r\n\r\n formComponentsScripts: any;\r\n formElementsScripts: any;\r\n\r\n showFunctionSettingPopup: any = false;\r\n isMonacoFuncParentLoaded: any = false;\r\n functionScript = { code: \"\", elementId: \"\", column: \"\" };\r\n functionScriptIndex = -1;\r\n openFunctionSettingPopup() {\r\n //this.functionScript.id = 0;\r\n this.functionScriptIndex = -1;\r\n this.functionScript.code = \"\";\r\n this.functionScript.elementId = \"\";\r\n this.functionScript.column = \"\";\r\n this.formElementsScripts = [];\r\n\r\n this.isMonacoFuncLoaded = true;\r\n this.showFunctionSettingPopup = true;\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.formComponentsScripts = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n\r\n\r\n setTimeout(() => { this.isMonacoFuncParentLoaded = true; }, 1000);\r\n }\r\n saveFuncParam() {\r\n if (this.functionScript.code != \"\" && this.functionScript.elementId != \"\") {\r\n let functionScriptModel = this.componentService.cloneModel(this.functionScript);\r\n if (typeof this.data.functionScripts == \"undefined\") this.data.functionScripts = [];\r\n\r\n if (this.functionScriptIndex == -1) {\r\n this.data.functionScripts.push(functionScriptModel);\r\n }\r\n else {\r\n let dataFunctionScript = this.data.functionScripts[this.functionScriptIndex];\r\n dataFunctionScript.code = functionScriptModel.code;\r\n dataFunctionScript.elementId = functionScriptModel.elementId;\r\n dataFunctionScript.column = functionScriptModel.column;\r\n }\r\n this.functionScriptIndex = -1;\r\n this.functionScript.code = \"\";\r\n this.functionScript.elementId = \"\";\r\n this.functionScript.column = \"\";\r\n this.formElementsScripts = [];\r\n }\r\n }\r\n updateFunctionScript(index) {\r\n this.functionScriptIndex = index;\r\n let dataFunctionScript = this.data.functionScripts[this.functionScriptIndex];\r\n this.functionScript.code = dataFunctionScript.code;\r\n this.functionScript.elementId = dataFunctionScript.elementId;\r\n this.functionScript.column = dataFunctionScript.column;\r\n }\r\n deleteFunctionScript(index) {\r\n this.data.functionScripts.splice(index, 1);\r\n }\r\n isMonacoFuncLoaded: any = false;\r\n monacoFunctionOnInit(e) {\r\n\r\n this.isMonacoFuncLoaded = false;\r\n //let monaco = window['monaco'];\r\n //this.setCustomKeywords(monaco);\r\n }\r\n\r\n colShorting(event: CdkDragDrop) {\r\n moveItemInArray(this.data.functionScripts, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n onChangeformElementsScriptsValue(e) {\r\n if (e.value != \"\") {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let fCompms = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let fCompm = fCompms.find(x => x.id == e.value);\r\n if (fCompm.type == \"gallery\") {\r\n\r\n // = this.setFormElementsScripts(fCompm);// fCompm.storage.sqlHideColumns.map(m => m.name);\r\n this.setFormElementsScripts(fCompm);\r\n this.classFormComponent = \"col-md-6\";\r\n this.classFormElements = \"col-md-6\";\r\n }\r\n else {\r\n this.classFormComponent = \"col-md-12\";\r\n this.classFormElements = \"col-md-6 hidden-element\";\r\n }\r\n }\r\n }\r\n setFormElementsScripts(dataGallery) {\r\n let _return = [];\r\n if (dataGallery.storage.query != \"\" && dataGallery.storage.connectionStringId > 0) {\r\n this.genericService.executeQuerySecurited(dataGallery.storage.query, dataGallery.storage.connectionStringId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n\r\n let allColumnsSql = Object.keys(result[0]);\r\n let keysSearch = [];\r\n keysSearch = allColumnsSql.filter(f =>\r\n f != dataGallery.storage.keyColumn);\r\n\r\n keysSearch.forEach(item => {\r\n this.formElementsScripts.push(item);\r\n });\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n\r\n onValueChanged(event) {\r\n this.isFormatDisabled = event.value == \"#\";\r\n if (this.isFormatDisabled) this.data.inputType = \"int\";\r\n else this.data.inputType = \"decimal\";\r\n }\r\n /* onAlignChanged(event) {\r\n this.data.align = event.value;\r\n console.log(event.value);\r\n }*/\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n isUserChangeCheck() {\r\n if (this.data.value == \"\") { // UserChange sıfırlanmak istenirse\r\n //this.data.isUserChange = false;\r\n //this.tempValue = undefined;\r\n } else {\r\n if (typeof this.tempValue != \"undefined\" && this.tempValue != this.data.value) {\r\n this.data.isUserChange = true;\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n setLanguageToDatas() {\r\n this.dataTypes = [\r\n { \"name\": this.languageLocal.decimal /*\"Ondalıklı Sayı\"*/, \"format\": \"#,##0.00\", \"type\": \"decimal\" },\r\n { \"name\": this.languageLocal.integer /*\"Tam sayı\"*/, \"format\": \"#\", \"type\": \"int\" }\r\n ];\r\n // this.leftOrRight = [{ \"value\": \"false\", \"name\": this.languageLocal.alignLeft }, { \"value\": \"true\", \"name\": this.languageLocal.alignRight }];\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { EventEmitterService } from '../../shared/services';\r\n@Component({\r\n selector: 'password-component',\r\n templateUrl: './password.component.html',\r\n styleUrls: ['./password.component.css']\r\n\r\n})\r\nexport class DxPasswordComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() disabled: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n languageLocal: any = \"\";\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n constructor(private eventEmitterService: EventEmitterService, public componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource();\r\n }\r\n \r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID , \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n onValueChanged(e) {\r\n this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", e.value, null);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\n@Component({\r\n selector: 'payment-component',\r\n templateUrl: 'payment.component.html',\r\n styleUrls: ['./payment.component.css']\r\n})\r\nexport class DxPaymentComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n\r\n systemInfoPage: any;\r\n\r\n cardNoRules: any = { X: /[02-9]/ }\r\n monthRules: any = { X: /[0-1]/, Y: /[1-9]/ }\r\n yearRules: any = { X: /[2-3]/, Y: /[0-9]/ }\r\n cvvcvcRules: any = { X: /[0-9]/, Y: /[0-9]/, Z: /[0-9]/ }\r\n\r\n namePattern: any = /^[^0-9]+$/;\r\n\r\n invokeChangeEventLocal: Subscription;\r\n\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public componentService: ComponentService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n if (sub.data) this.data.value = sub.data;\r\n else this.data.value = \"\";\r\n //setTimeout(() => {\r\n // try {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // } catch{ }\r\n //}, 300);\r\n\r\n }\r\n });\r\n //this.componentService.systemInfo.currentSystem Info\r\n\r\n this.systemInfoPage = this.componentService.systemInfoElements;\r\n\r\n }\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n ngOnInit() {\r\n //\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (this.data.isAuto) {\r\n this.data.disabled = true;\r\n //this.data.value = this.data.autoText + this.componentService.currentForm.formNo;\r\n }\r\n this.data.upperCaseLetter = this.data.upperCaseLetter == null ? false : this.data.upperCaseLetter;\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n\r\n\r\n this.data.systemInfoId = typeof this.data.systemInfoId == \"undefined\" ? 0 : this.data.systemInfoId;\r\n\r\n if (this.isEdit) {\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n }\r\n\r\n }\r\n systemInfoChange() {\r\n }\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n if (systemInfoTemp)\r\n this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n else\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n }\r\n else {\r\n this.componentService.showAlert(\"Bu id başka bir yerde kullanılıyor, lütfen farklı bir id belirtiniz.\", \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n getTextboxStyles() {//text-transform: uppercase\r\n\r\n let myStyles = {\r\n 'text-transform': this.data.upperCaseLetter != null && this.data.upperCaseLetter != false ? 'uppercase' : 'none'\r\n };\r\n return myStyles;\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n cancelSetting() {\r\n let msg = \"Yaptığınız değişikleri kaydetmeden çıkmak istediğinizden emin misiniz?\"\r\n let result = confirm(msg, \"Uyarı!\");\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n\r\n\r\n let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n if (systemInfoTemp)\r\n this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n else\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n // this.componentService.currentSystemInfo = { id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) };//this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy, AfterViewInit } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport config from \"devextreme/core/config\";\r\n\r\n@Component({\r\n selector: 'pdfviewer-component',\r\n templateUrl: './pdfviewer.component.html',\r\n styleUrls: ['./pdfviewer.component.css']\r\n})\r\nexport class DxPdfViewerComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n previewFileSrc: any = \"\";\r\n previewPopupFileSrc: any = \"\";\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n invokeChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n\r\n constructor(private eventEmitterService: EventEmitterService, public changeDetectorRef: ChangeDetectorRef, public componentService: ComponentService) {\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n\r\n\r\n //this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n // if (sub.elementId == this.data.id) {\r\n // if (sub.data) this.data.value = sub.data;\r\n // else if (sub.elementId == \"clean_element\") this.data.value = null;\r\n // this.changeDetectorRef.detectChanges();\r\n // }\r\n //});\r\n }\r\n\r\n ngOnDestroy() {\r\n try { this.invokeChangeEventLocal.unsubscribe(); } catch (ex) { }\r\n }\r\n\r\n allButtonIcons = [];\r\n ngOnInit() {\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\") this.data.show = true;\r\n if (typeof this.data.isButton === \"undefined\") this.data.isButton = false;\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.allButtonIcons = this.componentService.getAllIcons();\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n if (!this.data.isButton) {\r\n this.previewFileSrc = \"/ProcessPdf/\" + this.changeFilePathAndName(this.data.path) + \"/\" + this.changeFilePathAndName(this.data.fileName) + \"-\" + this.componentService.currentInstanceId + \".pdf\";///process_pdfs/undefined/undefined\r\n } debugger;\r\n if (typeof this.data.property === \"undefined\") {\r\n this.data.property = { icon: \"\", fontSize: \"\", backgroundColor: '#ffffff', fontColor: '#000000' };\r\n }\r\n this.setPageStyle(this.data.property.fontColor, this.data.property.backgroundColor);\r\n\r\n if (typeof this.data.property.backgroundColor === \"undefined\" || typeof this.data.property.fontColor === \"undefined\") {\r\n if (typeof this.data.property.backgroundColor === \"undefined\")\r\n this.data.property.backgroundColor = '#ffffff';\r\n if (typeof this.data.property.fontColor === \"undefined\")\r\n this.data.property.fontColor = '#000000';\r\n }\r\n\r\n\r\n\r\n if (typeof this.data.height === \"undefined\" || this.data.height == \"\") this.data.height = \"100px\";\r\n if (typeof this.data.width === \"undefined\" || this.data.width == \"\") this.data.width = \"100%\";\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n changeFilePathAndName(_str) {\r\n try {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let fStr = _str.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n //fStr = this.replaceAll(fStr, \"{\" + this.data.id + \"}\", this.data.value);\r\n curentComponents.forEach(c => {\r\n if (c.id != this.data.id) {\r\n let cId = \"{\" + c.id + \"}\";\r\n fStr = this.componentService.replaceAll(fStr, cId, c.value);\r\n }\r\n });\r\n return fStr;\r\n } catch (_e) {\r\n return _str;\r\n }\r\n }\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n setPageStyle(_color, _backgroundColor) {\r\n try {\r\n let _el = document.getElementById(\"styleDynamic_\" + this.data.id);\r\n _el.remove();\r\n } catch (ex) { }\r\n //85\r\n let styles = ` \r\n#`+ this.data.id + ` { \r\n color: `+ _color + `;\r\n background-color: `+ _backgroundColor + `;\r\n} \r\n\r\n#`+ this.data.id + `.dx-state-hover { \r\n background-color: `+ _backgroundColor + `c2; \r\n color: `+ _color + `; \r\n} \r\n\r\n#`+ this.data.id + `.dx-state-active { \r\n background-color: `+ _backgroundColor + `c2; \r\n color: `+ _color + `; \r\n} `;\r\n let styleSheet = document.createElement(\"style\");\r\n styleSheet.type = \"text/css\";\r\n styleSheet.innerText = styles;\r\n styleSheet.id = \"styleDynamic_\" + this.data.id;\r\n styleSheet.className = \"style-dynamic\";\r\n document.head.appendChild(styleSheet);\r\n }\r\n\r\n buttonIconPopoverOpen = false;\r\n hideEmojiPopoper(e) {\r\n //this.chatMessageInputStartPos = null;\r\n //this.chatMessageInputEndPos = null;\r\n //let myField = this.chatMessageInput.nativeElement;\r\n //if (!(this.chatMessageInputStartPos)) {\r\n // myField.selectionStart = this.chatMessageInputStartPos;\r\n // myField.selectionEnd = this.chatMessageInputEndPos;\r\n //}\r\n //myField.focus();\r\n }\r\n\r\n toggleIconPanel() {\r\n debugger;\r\n this.buttonIconPopoverOpen = !this.buttonIconPopoverOpen;\r\n }\r\n setButtonIcon(_icon) {\r\n debugger;\r\n if (_icon && _icon != \"\") {\r\n this.data.property.icon = _icon.icon;\r\n }\r\n else {\r\n this.data.property.icon = '';\r\n }\r\n this.buttonIconPopoverOpen = !this.buttonIconPopoverOpen;\r\n //let myField = this.chatMessageInput.nativeElement;\r\n //if (!(this.chatMessageInputStartPos)) {\r\n // this.chatMessageInputStartPos = myField.selectionStart;\r\n // this.chatMessageInputEndPos = myField.selectionEnd;\r\n //}\r\n //let myValueClear = this.insertAtCursor(_icon);\r\n //this.chatMessageText = myValueClear;\r\n }\r\n getButtonIconClass(_type) {\r\n if (typeof _type == 'undefined')\r\n return \"icon-setting-button-delete\";\r\n\r\n return typeof this.data.property.icon == 'undefined' || this.data.property.icon == '' ? 'icon-setting-button-empty' : 'icon-setting-button';\r\n }\r\n showPdfPopup = false;\r\n openPdfViewer(_e) {\r\n this.showPdfPopup = true;\r\n debugger;\r\n this.previewPopupFileSrc = \"/ProcessPdf/\" + this.changeFilePathAndName(this.data.path) + \"/\" + this.changeFilePathAndName(this.data.fileName) + \"-\" + this.componentService.currentInstanceId + \".pdf\";\r\n }\r\n hidePdfPopup(_e) {\r\n this.previewPopupFileSrc = \"\";\r\n }\r\n fontColorValueChange(_e) {\r\n let newValue = _e.value;\r\n if (this.data.property) {\r\n this.data.property.fontColor = newValue;\r\n }\r\n else {\r\n this.data.property = { icon: \"\", fontSize: \"\", backgroundColor: '#ffffff', fontColor: '#000000' };\r\n }\r\n this.setPageStyle(this.data.property.fontColor, this.data.property.backgroundColor);\r\n }\r\n\r\n backgroundValueChange(_e) {\r\n let newValue = _e.value;\r\n if (this.data.property) {\r\n this.data.property.backgroundColor = newValue;\r\n }\r\n else {\r\n this.data.property = { icon: \"\", width: \"\", height: \"\", fontSize: \"\", backgroundColor: '#ffffff', fontColor: '#000000' };\r\n }\r\n this.setPageStyle(this.data.property.fontColor, this.data.property.backgroundColor);\r\n }\r\n\r\n getButtonGeneralCss() {\r\n let _myStyle = {};\r\n if (this.data.height)\r\n _myStyle[\"height\"] = this.data.property.height + (this.componentService.isInteger(this.data.property.height) ? \"px\" : \"\");\r\n if (this.data.width)\r\n _myStyle[\"width\"] = this.data.property.width + (this.componentService.isInteger(this.data.property.width) ? \"px\" : \"\");\r\n\r\n return _myStyle;\r\n }\r\n\r\n getButtonGeneralCssText(type) {\r\n // font-size: 103px;\r\n //width: 103px;\r\n //height: 18px;\r\n /*\r\n 14 18\r\n 20 x\r\n 20*18/14\r\n */\r\n let _myStyle = {};\r\n if (this.data.property.fontSize) {\r\n if (type == \"i\")\r\n _myStyle[\"font-size\"] = this.data.property.fontSize + (this.componentService.isInteger(this.data.property.fontSize) ? \"px\" : \"\");\r\n else\r\n _myStyle[\"font-size\"] = this.componentService.isInteger(this.data.property.fontSize) ? ((this.data.property.fontSize - 3) + \"px\") : (\"calc(\" + this.data.property.fontSize + \" - 3px)\");\r\n\r\n\r\n //this.data.property.fontSize + this.componentService.isInteger(this.data.property.fontSize) ? \"px\" : \"\";\r\n\r\n _myStyle[\"width\"] = this.data.property.fontSize + (this.componentService.isInteger(this.data.property.fontSize) ? \"px\" : \"\");\r\n } else {\r\n if (type == \"i\")\r\n _myStyle[\"font-size\"] = \"17px\";\r\n else\r\n _myStyle[\"font-size\"] = \"14px\";\r\n\r\n _myStyle[\"width\"] = \"18px\";\r\n }\r\n _myStyle[\"height\"] = \"18px\";\r\n\r\n return _myStyle;\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-phone',\r\n templateUrl: './phone.component.html',\r\n styleUrls: ['./phone.component.css']\r\n})\r\nexport class DxPhoneComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n showDisplay: any = \"flex\";\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false; \r\n invokeChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n\r\n constructor(private eventEmitterService: EventEmitterService, public changeDetectorRef: ChangeDetectorRef, public componentService: ComponentService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n // \r\n if (sub.data) this.data.value = sub.data;\r\n else this.data.value = \"\";\r\n //setTimeout(() => {\r\n // try {\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // } catch{ }\r\n //}, 300);\r\n\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n onValueChanged(e) {\r\n this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", e.value, null);\r\n }\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { EventEmitterService } from '../../shared/services';\r\nimport { Subscription } from 'rxjs';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\n\r\n@Component({\r\n selector: 'app-picturebox',\r\n templateUrl: './picturebox.component.html',\r\n styleUrls: ['./picturebox.component.css']\r\n})\r\nexport class DxPictureBoxComponent implements ComponentParameters, OnInit {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n showFilesPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n languageLocal: any = \"\";\r\n\r\n uploadedFiles: any = [];\r\n uploadResult = { isShow: false, status: \"success\", message: \"\" };\r\n totalSize: any = 0;\r\n positions = [{ label: \"Left\", value: \"flex-start\" }, { label: \"Center\", value: \"center\" }, { label: \"Right\", value: \"flex-end\" }]\r\n invokeChangeEventLocal: Subscription;\r\n invokeWarningChangeEventLocal: Subscription;\r\n\r\n borderColor = \"#dedede\"\r\n\r\n constructor(private eventEmitterService: EventEmitterService, public changeDetectorRef: ChangeDetectorRef, private componentService: ComponentService,\r\n public instanceService: InstanceService) {\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n this.setLanguageToDatas()\r\n\r\n if (sub.elementId == this.data.id) {\r\n\r\n if (sub.data) {\r\n this.data.valueTemp = [];\r\n let _document: any = {\r\n base64BlobData: sub.data,\r\n name: \"_\" + this.data.id,\r\n id: -1,\r\n fileType: \"image/png\",\r\n src: 'data:image/png;base64,' + sub.data,\r\n extension: \"png\",\r\n size: 0,\r\n isImg: true,\r\n description: \"\"\r\n };\r\n this.data.valueTemp.push(_document);\r\n }\r\n else this.data.valueTemp = [];\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n }\r\n });\r\n\r\n this.invokeWarningChangeEventLocal = this.eventEmitterService.invokeWarningChangeEvent.subscribe(sub => {\r\n if (!!sub.data && !!sub.data.requiredFiles) {\r\n if (sub.data.requiredFiles.includes(this.data.id)) {\r\n this.changeToWarningColor()\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n console.log(this.data)\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n this.data.width = this.data.width > 0 ? this.data.width : 90;\r\n this.data.height = this.data.height > 0 ? this.data.height : 90;\r\n this.data.editableAfterUpload = typeof this.data.editableAfterUpload == \"undefined\" ? true : this.data.editableAfterUpload;\r\n\r\n this.data.position = typeof this.data.position == \"undefined\" ? \"flex-start\" : this.data.position;\r\n if (typeof this.data.valueTemp == \"undefined\")\r\n this.data.valueTemp = [];\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n imageZoomPopup = false;\r\n popupSelectedImage = \"\";\r\n onClickPicturebox() {\r\n this.imageZoomPopup = true;\r\n this.popupSelectedImage = this.data.valueTemp != null && this.data.valueTemp.length > 0 ? this.data.valueTemp[0].src : ''\r\n }\r\n pictureboxUploaderStyleFunc() {\r\n //this.imageUploadVisible\r\n var _block = this.imageUploadVisible ? 'block' : 'none';\r\n const styles = { 'display': _block };\r\n if (this.data.editableAfterUpload || (!this.data.editableAfterUpload && this.data.value < 1)) {\r\n styles[\"left\"] = \"calc(50% - 37px)\";\r\n styles[\"top\"] = \"calc(50% - 14px)\";\r\n }\r\n else {\r\n styles[\"left\"] = \"calc(50% - 16px)\";\r\n styles[\"top\"] = \"calc(50% - 12px)\";\r\n }\r\n return styles;\r\n //let headerObj = this.data.headers.find(x => x.field == cellInfo.column.dataField);\r\n //var _block = cellInfo && this.pictureboxImageUploadVisibleObj[cellInfo.column.dataField + '_' + cellInfo.data.ID] && ((_type != \"Preview\" && headerObj.properties.isUserUpload) || _type == \"Preview\") ? 'block' : 'none';\r\n //const styles = { 'display': _block };\r\n //if (_type == \"Preview\") {\r\n // if (headerObj.properties.isUserUpload) {\r\n // styles[\"left\"] = \"calc(50% - 29px)\";\r\n // styles[\"top\"] = \"calc(50% - 10px)\";\r\n // }\r\n // else {\r\n // styles[\"left\"] = \"calc(50% - 16px)\";\r\n // styles[\"top\"] = \"calc(50% - 12px)\";\r\n // }\r\n //}\r\n //return styles;\r\n // return this.pictureboxImageUploadVisibleObj[cellInfo.column.dataField + '_' + cellInfo.data.ID] && cellInfo.column.properties.isUserUpload; //pictureboxTemplate\r\n }\r\n\r\n openPermissionPopup() {\r\n this.permissionPopup = true;\r\n }\r\n\r\n onValueChanged = (e: any): void => {\r\n let errors = [];\r\n this.data.valueTemp = [];\r\n if (e.value.length) {\r\n this.changeToDefaultColor();\r\n //this.data.valu e = [];\r\n this.totalSize = 0;\r\n this.uploadResult.isShow = true;\r\n this.uploadResult.status = \"primary\";\r\n this.uploadResult.message = this.languageLocal.filesLoading;\r\n // for (let i = 0; i < .length; i++) {\r\n let checkSum = this.totalSize + e.value[0].size;\r\n if (checkSum > (this.data.maxFileSize * 1024 * 1024)) {\r\n let msg = e.value[0].name + \" (\" + Math.round(checkSum / 1024) + this.languageLocal.couldnotbeLoaded;\r\n errors.push(msg);\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\" \") + (this.languageLocal.fileSizeLimit + this.data.maxFileSize * 1024 + \" KB )\");\r\n\r\n this.componentService.showAlert(this.uploadResult.message, \"warning\", 5000)\r\n return;\r\n }\r\n\r\n this.getDocument(e.value[0]).then(document => {\r\n this.data.value = []\r\n this.data.valueTemp = []\r\n this.data.valueTemp.push(document);//.push(document);\r\n this.totalSize += e.value[0].size;\r\n //if (i === (e.value.length - 1)) {\r\n if (errors.length) {\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\" \") + (this.languageLocal.fileSizeLimit + this.data.maxFileSize * 1024 + \" KB )\");\r\n }\r\n else {\r\n this.uploadResult.status = \"success\";\r\n this.uploadResult.message = this.languageLocal.filesUploaded;\r\n }\r\n\r\n if (this.isEdit) {\r\n\r\n let objArray = [];\r\n let obj: any = {\r\n componentId: this.data.id,\r\n rowId: \"-1\",\r\n columnId: \"-1\",\r\n fileData: this.data.valueTemp[0].base64BlobData,\r\n fileExtension: this.data.valueTemp[0].extension,\r\n fileType: this.data.valueTemp[0].fileType,\r\n isImage: this.data.valueTemp[0].isImg,\r\n name: this.data.valueTemp[0].name,\r\n size: this.data.valueTemp[0].size,\r\n description: \"\"\r\n };\r\n\r\n objArray.push(obj);\r\n\r\n this.instanceService.saveFormFilesData(objArray, 0, this.data.value).subscribe((s: any) => {\r\n\r\n let _fileVal = s.files.filter(x => x.ComponentId == this.data.id);\r\n if (_fileVal != null && typeof _fileVal != \"undefined\" && _fileVal.length > 0) {\r\n this.data.value = _fileVal.map(ele => ele.Id);\r\n\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // }\r\n });\r\n\r\n // }\r\n }\r\n }\r\n\r\n getDocument(file) {\r\n return new Promise(resolve => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n let fileName = file.name;\r\n let fileType: string = file.type;\r\n let base64BlobData: any = args.target.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n let fileSize = file.size;\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: fileType,\r\n src: 'data:' + fileType + ';base64,' + base64BlobData,\r\n extension: fileExtension,\r\n size: fileSize,\r\n isImg: true,\r\n description: \"\"\r\n };\r\n resolve(document);\r\n\r\n }\r\n }\r\n\r\n });\r\n }\r\n imageUploadVisible = false;\r\n onBlur() {\r\n this.imageUploadVisible = false;\r\n }\r\n onFocus() {\r\n this.imageUploadVisible = true;\r\n }\r\n imageDivStyleFunc() {\r\n\r\n var width = this.data.width > 0 ? this.data.width + 'px' : '90px';\r\n var height = this.data.height > 0 ? this.data.height + 'px' : '92px';\r\n const styles = { 'width': width, 'height': height, 'position': 'relative', 'border-color': this.borderColor };\r\n return styles;\r\n }\r\n imageStyleFunc() {\r\n\r\n var width = this.data.width > 0 ? this.data.width + 'px' : '90px';\r\n var height = this.data.height > 0 ? (this.data.height - 2) + 'px' : '88px';\r\n const styles = { 'width': width, 'height': height, 'display': this.showDisplay };\r\n return styles;\r\n }\r\n\r\n showFiles() {\r\n for (let i = 0; i < this.data.valueTemp.length; i++) {\r\n this.data.valueTemp[i].src = 'data:' + this.data.valueTemp[i].fileType + ';base64,' + this.data.valueTemp[i].base64BlobData;\r\n }\r\n this.showFilesPopup = true;\r\n }\r\n\r\n deleteFiles() {\r\n let result = confirm(\"\" + this.languageLocal.filesSureDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.uploadedFiles = [];\r\n for (let i = 0; i < this.data.valueTemp.length; i++) {\r\n this.eventEmitterService.setDeletedFileIds(this.data.valueTemp[i].id);\r\n }\r\n this.data.valueTemp = [];\r\n this.data.value = []\r\n this.uploadResult.isShow = false;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n }\r\n\r\n deleteFile(i) {\r\n let result = confirm(\"\" + this.languageLocal.fileDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n if (this.data.valueTemp && this.data.valueTemp.length > 0 && this.data.valueTemp[i])\r\n this.eventEmitterService.setDeletedFileIds(this.data.valueTemp[i].id);\r\n this.data.valueTemp.splice(i, 1);\r\n this.data.value.splice(i, 1);\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.showFiles();\r\n }\r\n });\r\n\r\n }\r\n\r\n setLanguageToDatas() {\r\n this.positions =\r\n [{ label: this.languageLocal.left/*\"Left\"*/, value: \"flex-start\" },\r\n { label: this.languageLocal.center/*\"Center\"*/, value: \"center\" },\r\n { label: this.languageLocal.right /*\"Right\"*/, value: \"flex-end\" }\r\n ];\r\n }\r\n\r\n changeToWarningColor() {\r\n if (this.data.required) {\r\n this.borderColor = \"#d9534f\"\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n changeToDefaultColor() {\r\n this.borderColor = \"#dedede\"\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ElementRef, ChangeDetectorRef, } from '@angular/core';\r\nimport { EventEmitterService, GenericService, AppInfoService, ReportService } from '../../shared/services';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport { confirm } from 'devextreme/ui/dialog';\r\n\r\n@Component({\r\n selector: 'printdesigner-component',\r\n templateUrl: './printdesigner.component.html',\r\n styleUrls: ['./printdesigner.component.css']\r\n})\r\nexport class DxPrintDesignerComponent implements OnInit {\r\n \r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n showDisplayBoolean: boolean = false;\r\n showDisplay: any = \"flex\";\r\n systemInfoPage: any;\r\n\r\n reportList: any[] = []\r\n sizeTypes = [\"%\", \"px\"];\r\n languageLocal: any = \"\";\r\n\r\n tempReportIdValue = null; // Rapor seçimi değiştirildiğinde mevcut viewer'ı kapatıp yeniden init etmek için kullanılıyor.\r\n languageCodes = [];\r\n\r\n constructor(public appInfo: AppInfoService,\r\n private element: ElementRef,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public reportService: ReportService) {\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.languageCodes = this.componentService.getlanguageCodes();\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n }\r\n\r\n \r\n ngOnInit() {\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n console.log(this.data);\r\n this.tempReportIdValue = this.data.reportId\r\n this.getReports();\r\n }\r\n\r\n getReports() {\r\n this.reportService.getReportWithoutCategory().subscribe((result: any) => {\r\n this.reportList = result;\r\n });\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n onValueChanged(e) {\r\n this.tempReportIdValue = null;\r\n\r\n setTimeout(() => {\r\n this.tempReportIdValue = e.value;\r\n }, 100)\r\n }\r\n\r\n saveSetting() {\r\n const isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n /*const systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n if (systemInfoTemp)\r\n this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n else\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });*/\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n if (systemInfoTemp)\r\n this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n else\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n // this.componentService.currentSystemInfo = { id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) };//this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, ViewChild } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { DxDataGridComponent, DxRadioGroupComponent } from 'devextreme-angular';\r\nimport { AppInfoService, GenericService } from '../../shared/services';\r\n\r\nexport class SqlScriptRadioGroupModel {\r\n id: number;\r\n connectionId: number;\r\n elementId: string;\r\n query: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-radiogroup',\r\n templateUrl: './radiogroup.component.html',\r\n styleUrls: ['./radiogroup.component.css']\r\n})\r\nexport class DxRadiogroupComponent implements ComponentParameters {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n @ViewChild(DxDataGridComponent, { static: false }) dataGrid: DxDataGridComponent;\r\n @ViewChild(\"RadioGroupComponent\", { static: false }) radioGroupEtr: DxRadioGroupComponent;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n layouts = [{ \"name\": \"Yatay\", \"value\": \"horizontal\" }, { \"name\": \"Dikey\", \"format\": \"vertical\" }];\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n showItemsPopup: boolean = false;\r\n languageLocal: any = \"\";\r\n selectedRowLanguage: any;\r\n editorOptions = { theme: 'vs-dark', language: 'dummy' };\r\n tempMonacoText = {\r\n enable: \"\",\r\n disable: \"\",\r\n invisible: \"\",\r\n visible: \"\"\r\n }\r\n showEditorPopup: boolean = false;\r\n registeredLanguage: any;\r\n isShow = false;\r\n languageTextPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n connections: any = [];\r\n\r\n valueExpressions = [{ value: \"text\", name: \"Text\" }, { value: \"value\", name: \"Value\" }]\r\n\r\n constructor(private eventEmitterService: EventEmitterService, public componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef, private appInfoService: AppInfoService, private genericService: GenericService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.setLanguageToDatas()\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.connections = this.appInfoService.RiverEntity.connections;\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.data.showLabel = typeof this.data.showLabel == \"undefined\" ? false : this.data.showLabel;\r\n this.data.valueExpr = typeof this.data.valueExpr == \"undefined\" ? \"text\" : this.data.valueExpr;\r\n\r\n this.data.sqlScripts = typeof this.data.sqlScripts == \"undefined\" ? [] : this.data.sqlScripts;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n \r\n if (sub.data.key === this.data.uuid) {\r\n console.log(sub)\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n let _val = this.data.value;\r\n if (_val) {\r\n //if (_val.__KEY__) {\r\n // this.data.value = this.data.items.find(x => x.__KEY__ == _val.__KEY__);\r\n //}\r\n //else {\r\n \r\n this.data.value = this.data.items.find(x => x[this.data.valueExpr] == _val[this.data.valueExpr]);\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n // }\r\n }\r\n if (typeof this.data.items.language == \"undefined\") {\r\n this.data.items.language = {\r\n \"ENEN\": \"\",\r\n \"TRTR\": \"\",\r\n }\r\n } else {\r\n this.data.items.forEach(el => {\r\n let find = el.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n this.data.items.id = \"\"\r\n this.data.items.text = find.Title\r\n }\r\n })\r\n }\r\n console.log(this.data.value)\r\n }\r\n\r\n ngAfterViewInit() {\r\n console.log(this.radioGroupEtr)\r\n }\r\n\r\n monacoOnInit() {\r\n this.isMonacoLoaded = true;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n\r\n formElements: any;\r\n sqlScriptModel: SqlScriptRadioGroupModel;\r\n showChangeEventPopup: boolean = false;\r\n\r\n openChangeEventPopup() {\r\n debugger;\r\n this.isMonacoLoaded = false;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n this.formElements = elements.filter(f => f != this.data.id);\r\n this.sqlScriptModel = new SqlScriptRadioGroupModel();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n this.showChangeEventPopup = true;\r\n }\r\n\r\n saveSqlScript() {\r\n let model = this.componentService.cloneModel(this.sqlScriptModel);\r\n\r\n if (model.id > 0) {\r\n let scr = this.data.sqlScripts.find(f => f.id == model.id);\r\n scr.connectionId = model.connectionId;\r\n scr.elementId = model.elementId;\r\n scr.query = model.query;\r\n }\r\n else {\r\n model.id = this.data.sqlScripts.length + 1;\r\n this.data.sqlScripts.push(model);\r\n }\r\n\r\n this.sqlScriptModel = new SqlScriptRadioGroupModel();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n }\r\n\r\n updateSqlScript(i) {\r\n let scr = this.data.sqlScripts[i];\r\n this.sqlScriptModel = new SqlScriptRadioGroupModel();\r\n this.sqlScriptModel.id = scr.id;\r\n this.sqlScriptModel.connectionId = scr.connectionId;\r\n this.sqlScriptModel.elementId = scr.elementId;\r\n this.sqlScriptModel.query = scr.query;\r\n }\r\n\r\n deleteSqlScript(i) {\r\n this.data.sqlScripts.splice(i, 1);\r\n }\r\n\r\n executeScripts() {\r\n if (!this.isEdit) {\r\n this.data.sqlScripts.forEach(s => {\r\n\r\n let pref = \"{\" + this.data.id + \"}\";\r\n let value = this.data.value[this.data.valueExpr];\r\n let query = this.componentService.replaceAllUsingType(s.query, pref, value); // s.query.replace(pref, value);\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let currentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId)\r\n\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(query)) {\r\n let _match = query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = currentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value);//query.replace(f, _value);\r\n }\r\n });\r\n }\r\n //query = this.genericService.cleanSqlSyntax(query.replace(pattern, \"\"))\r\n }\r\n console.log(query)\r\n this.genericService.executeQuerySecurited(query, s.connectionId).subscribe((result: any) => {\r\n\r\n if (result) {\r\n let element = this.componentService.getById(s.elementId, currentComponents, this.anotherPopupId);\r\n if (element.type) {\r\n\r\n if (element.component == \"DxDatagridSelectComponent\" || element.type == \"datalist\" || element.type == \"selectbox\" || element.type == \"gallery\" || element.type == \"datagrid\" || element.type == \"multiselectbox\") {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, this.data.value, result);\r\n }\r\n else {\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n let finalData = [];\r\n keys.forEach(f => {\r\n finalData.push(result[0][f]);\r\n });\r\n let dataText = finalData.join(\",\");\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, this.data.value, dataText);\r\n }\r\n }\r\n }\r\n } else {\r\n console.log(\"empty\")\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n onValueChanged(e) {\r\n if(e.value == null) e.value = \"\"\r\n if (e.value != \"\") {\r\n\r\n this.data.value = this.data.items.find(x => x[this.data.valueExpr] == (typeof e.value[this.data.valueExpr] == \"undefined\" ? (e.value) : (e.value[this.data.valueExpr])));\r\n\r\n this.executeScripts();\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let componentList = this.componentService.getAllComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n // On Disable\r\n if (typeof e.value.disable != \"undefined\" && e.value.disable != \"\") {\r\n e.value.disable.split(\",\").forEach(f => {\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (typeof _k != \"undefined\") {\r\n _k.outsideDisabled = true;\r\n //let _sub = { key: _k.uuid, outsideDisabled: true };\r\n //this.eventEmitterService.ChangeDisableAndVisible(_sub);\r\n }\r\n });\r\n }\r\n\r\n // On Enable\r\n if (typeof e.value.enable != \"undefined\" && e.value.enable != \"\") {////\r\n e.value.enable.split(\",\").forEach(f => {\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (typeof _k != \"undefined\") {\r\n _k.outsideDisabled = false;\r\n //let _sub = { key: _k.uuid, outsideDisabled: false };\r\n //this.eventEmitterService.ChangeDisableAndVisible(_sub);\r\n } \r\n });\r\n }\r\n\r\n // On Visible\r\n if (typeof e.value.visible != \"undefined\" && e.value.visible != \"\") {//////\r\n e.value.visible.split(\",\").forEach(f => {\r\n f = f.replace(\"{\", \"\").replace(\"}\", \"\")\r\n let button = [] // Button name list\r\n if (f.includes(\";\")) {\r\n\r\n let temp = f.split(\";\")[1]\r\n if (temp.includes(\":\")) {\r\n button = temp.split(\":\")\r\n } else {\r\n button.push(temp)\r\n }\r\n f = f.split(\";\")[0]\r\n }\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (typeof _k != \"undefined\") {\r\n _k.outsideVisible = true;\r\n let _sub = { key: _k.uuid, outsideVisible: true, hideButtonList: [] };\r\n this.eventEmitterService.ChangeVisible(_sub);\r\n } \r\n });\r\n }\r\n\r\n // On Invisible\r\n if (typeof e.value.invisible != \"undefined\" && e.value.invisible != \"\") {\r\n e.value.invisible.split(\",\").forEach(f => {\r\n f = f.replace(\"{\", \"\").replace(\"}\", \"\")\r\n let button = [] // Button name list\r\n if (f.includes(\";\")) {\r\n\r\n let temp = f.split(\";\")[1]\r\n if (temp.includes(\":\")) {\r\n button = temp.split(\":\")\r\n } else {\r\n button.push(temp)\r\n }\r\n f = f.split(\";\")[0]\r\n }\r\n\r\n let _k = componentList.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (typeof _k != \"undefined\") {\r\n _k.outsideVisible = false;\r\n let _sub = { key: _k.uuid, outsideVisible: false };\r\n if (button.length > 0) {\r\n _sub.outsideVisible = true\r\n _sub[\"hideButtonList\"] = button\r\n }\r\n\r\n this.eventEmitterService.ChangeVisible(_sub);\r\n } \r\n });\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n } \r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n \r\n }\r\n\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n setLanguageToDatas() {\r\n this.layouts = [\r\n { \"name\": this.languageLocal.horizontal /*\"Yatay\"*/, \"value\": \"horizontal\" },\r\n { \"name\": this.languageLocal.vertical /* \"Dikey\"*/, \"format\": \"vertical\" }\r\n ];\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n addLanguage(data) {\r\n this.selectedRowLanguage = data.row.data.language;\r\n this.languageTextPopup = true;\r\n console.log(\"selected\",this.selectedRowLanguage)\r\n console.log(\"data lang\",data)\r\n\r\n }\r\n\r\n saveLanguagePopup() {\r\n \r\n this.languageTextPopup = false;\r\n this.data.items.forEach(el => {\r\n let find = el.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n el.text = find.Title\r\n }\r\n })\r\n }\r\n\r\n addRow() {\r\n this.data.items.push({ text: \"New \" })\r\n if (this.data.items.length > 0) {\r\n this.data.items.forEach(el => {\r\n if (typeof el.text == \"undefined\") {\r\n el.text = el.Title\r\n }\r\n if (typeof el.language == \"undefined\") {\r\n el.language = [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Title\": el.text\r\n }\r\n ]\r\n }\r\n console.log(el)\r\n })\r\n this.data.items.forEach(el => {\r\n let find = el.language.find(f => f.Code == this.lang)\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n el.text = find.Title\r\n }\r\n })\r\n }\r\n }\r\n openAddRadioPopup() {\r\n \r\n this.showItemsPopup = true\r\n \r\n }\r\n tempKey = null;\r\n\r\n /* onSelectCase(buttonData, _field) {\r\n \r\n //console.log(\"button data: \"+buttonData)\r\n var finditem = this.data.items.find(el => el == buttonData.key)\r\n this.tempKey = buttonData.key\r\n console.log(finditem)\r\n this.showEditorPopup = true\r\n this.activeCase = _field;\r\n this.tempMonacoText['active'] = typeof finditem['active'] == \"undefined\" ? (\"\") : (finditem['active'])\r\n\r\n \r\n \r\n }*/\r\n\r\n resetRadioGroupValue() {\r\n this.radioGroupEtr.instance.reset();\r\n this.data.value = \"\";\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n setCustomKeywords(monaco) {\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentListWithButton(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n\r\n if (this.registeredLanguage)\r\n this.registeredLanguage.dispose();\r\n\r\n this.registeredLanguage = monaco.languages.registerCompletionItemProvider('plaintext', {\r\n provideCompletionItems: () => {\r\n var suggestions = [];\r\n\r\n for (let i = 0; i < elements.length; i++) {\r\n suggestions.push({\r\n label: elements[i],\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"{\" + elements[i] + \"}\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet\r\n })\r\n }\r\n\r\n return { suggestions: suggestions };\r\n }\r\n });\r\n\r\n }\r\n\r\n saveMonaco(_value) {\r\n\r\n debugger\r\n var finditemIndex = this.data.items.findIndex(el => el == this.tempKey)\r\n if (finditemIndex != -1) {\r\n this.data.items[finditemIndex]['enable'] = _value['enable'] == \"\" ? undefined : _value['enable']\r\n this.data.items[finditemIndex]['disable'] = _value['disable'] == \"\" ? undefined : _value['disable']\r\n this.data.items[finditemIndex]['invisible'] = _value['invisible'] == \"\" ? undefined : _value['invisible']\r\n this.data.items[finditemIndex]['visible'] = _value['visible'] == \"\" ? undefined : _value['visible']\r\n }\r\n \r\n this.showEditorPopup = false;\r\n this.tempMonacoText = {\r\n enable: \"\",\r\n disable: \"\",\r\n invisible: \"\",\r\n visible: \"\"\r\n };\r\n this.tempKey = null;\r\n }\r\n\r\n exitMonaco() {\r\n this.tempMonacoText = {\r\n enable: \"\",\r\n disable: \"\",\r\n invisible: \"\",\r\n visible: \"\"\r\n }\r\n this.showEditorPopup = false;\r\n }\r\n\r\n toggleDisplay(buttonData) {\r\n var finditem = this.data.items.find(el => el == buttonData.key)\r\n if (!!finditem) {\r\n this.tempKey = buttonData.key\r\n this.showEditorPopup = true;\r\n //this.tempMonacoText = nullde olur {}\r\n this.tempMonacoText['enable'] = typeof finditem['enable'] == \"undefined\" ? (\"\") : (finditem['enable'])\r\n this.tempMonacoText['disable'] = typeof finditem['disable'] == \"undefined\" ? (\"\") : (finditem['disable'])\r\n this.tempMonacoText['visible'] = typeof finditem['visible'] == \"undefined\" ? (\"\") : (finditem['visible'])\r\n this.tempMonacoText['invisible'] = typeof finditem['invisible'] == \"undefined\" ? (\"\") : (finditem['invisible'])\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, ViewChild, ComponentFactoryResolver, OnDestroy } from '@angular/core';\r\n\r\nimport { ComponentItem } from './component.item';\r\nimport { ComponentParameters } from './component.parameters';\r\n\r\nimport {\r\n DxLabelComponent,\r\n DxButtonComponent,\r\n DxCheckboxComponent,\r\n DxEtrDataGridComponent,\r\n DxCustomDataGridComponent,\r\n DxDateboxComponent,\r\n DxEmailComponent,\r\n DxFileuploadComponent,\r\n DxImageuploadComponent,\r\n DxPictureBoxComponent,\r\n DxMapComponent,\r\n DxVideouploadComponent,\r\n DxGridComponent,\r\n DxNumberComponent,\r\n DxPasswordComponent,\r\n DxPhoneComponent,\r\n DxRadiogroupComponent,\r\n DxSelectboxComponent,\r\n DxDatagridSelectComponent,\r\n DxDataListComponent,\r\n DxTextboxComponent,\r\n DxSchedulerComponent,\r\n DxLiveComponent,\r\n DxChildFormComponent,\r\n DxPaymentComponent,\r\n DxTextareaComponent,\r\n DxAccordionComponent,\r\n DxHtmleditorComponent,\r\n DxImageviewerComponent,\r\n DxVideoviewerComponent,\r\n DxDatasourceComponent,\r\n DxDisplayComponent,\r\n DxFormResultComponent,\r\n DxGalleryComponent,\r\n DxMenuComponent,\r\n DxTabsComponent,\r\n DxDashboardComponent,\r\n DxSignatureComponent,\r\n DxPdfViewerComponent,\r\n DxPrintDesignerComponent,\r\n DxMultiSelectBoxComponent,\r\n DxKanbanComponent,\r\n DxGanttComponent,\r\n DxEtrDiagramComponent,\r\n DxCommentComponent\r\n } from \"../formdesigner\"\r\nimport { ComponentDirective } from './component.directive';\r\n\r\n\r\n@Component({\r\n selector: 'render-component',\r\n template: ` `\r\n})\r\nexport class RenderComponent implements OnInit, OnDestroy {\r\n @Input() componentName: any;\r\n @Input() data: any;\r\n @Input() lang: any;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n @ViewChild(ComponentDirective, { static: true }) componentHost: ComponentDirective;\r\n interval: any;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver) { }\r\n\r\n ngOnInit() {\r\n \r\n this.loadComponent();\r\n }\r\n\r\n ngOnDestroy() { \r\n }\r\n\r\n loadComponent() {\r\n const currentComponent = this.getCurrent();\r\n if (currentComponent) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(currentComponent);\r\n const viewContainerRef = this.componentHost.viewContainerRef;\r\n viewContainerRef.clear();\r\n const componentRef = viewContainerRef.createComponent(componentFactory);\r\n (componentRef.instance).data = this.data;\r\n (componentRef.instance).lang = this.lang;\r\n (componentRef.instance).isEdit = this.isEdit; \r\n (componentRef.instance).anotherPopupId = this.anotherPopupId; \r\n }\r\n }\r\n\r\n getCurrent() {\r\n var components = this.getComponents();\r\n for (let i = 0; i < components.length; i++) {\r\n if (components[i].name == this.componentName) return components[i].component;\r\n }\r\n return null;\r\n }\r\n\r\n \r\n getComponents() {\r\n return [\r\n new ComponentItem(DxLabelComponent, \"DxLabelComponent\"),\r\n new ComponentItem(DxTextboxComponent, \"DxTextboxComponent\"),\r\n new ComponentItem(DxSchedulerComponent, \"DxSchedulerComponent\"),\r\n new ComponentItem(DxLiveComponent, \"DxLiveComponent\"),\r\n new ComponentItem(DxChildFormComponent, \"DxChildFormComponent\"),\r\n new ComponentItem(DxPaymentComponent, \"DxPaymentComponent\"),\r\n new ComponentItem(DxButtonComponent, \"DxButtonComponent\"),\r\n new ComponentItem(DxCheckboxComponent, \"DxCheckboxComponent\"),\r\n new ComponentItem(DxDateboxComponent, \"DxDateboxComponent\"),\r\n new ComponentItem(DxNumberComponent, \"DxNumberComponent\"),\r\n new ComponentItem(DxPasswordComponent, \"DxPasswordComponent\"),\r\n new ComponentItem(DxSelectboxComponent, \"DxSelectboxComponent\"), \r\n new ComponentItem(DxDatagridSelectComponent, \"DxDatagridSelectComponent\"),\r\n new ComponentItem(DxDataListComponent, \"DxDataListComponent\"),\r\n new ComponentItem(DxTextareaComponent, \"DxTextareaComponent\"),\r\n new ComponentItem(DxGridComponent, \"DxGridComponent\"),\r\n new ComponentItem(DxEtrDataGridComponent, \"DxDataGridComponent\"),\r\n new ComponentItem(DxCustomDataGridComponent, \"DxCustomDataGridComponent\"),\r\n new ComponentItem(DxRadiogroupComponent, \"DxRadiogroupComponent\"),\r\n new ComponentItem(DxFileuploadComponent, \"DxFileuploadComponent\"),\r\n new ComponentItem(DxPhoneComponent, \"DxPhoneComponent\"),\r\n new ComponentItem(DxEmailComponent, \"DxEmailComponent\"),\r\n new ComponentItem(DxHtmleditorComponent, \"DxHtmleditorComponent\"),\r\n new ComponentItem(DxAccordionComponent, \"DxAccordionComponent\"),\r\n new ComponentItem(DxImageuploadComponent, \"DxImageuploadComponent\"),\r\n new ComponentItem(DxPictureBoxComponent, \"DxPictureBoxComponent\"),\r\n new ComponentItem(DxMapComponent, \"DxMapComponent\"),\r\n new ComponentItem(DxVideouploadComponent, \"DxVideouploadComponent\"),\r\n new ComponentItem(DxImageviewerComponent, \"DxImageviewerComponent\"),\r\n new ComponentItem(DxVideoviewerComponent, \"DxVideoviewerComponent\"),\r\n new ComponentItem(DxDisplayComponent, \"DxDisplayComponent\"),\r\n new ComponentItem(DxDatasourceComponent, \"DxDatasourceComponent\"),\r\n new ComponentItem(DxFormResultComponent, \"DxFormResultComponent\"),\r\n new ComponentItem(DxGalleryComponent, \"DxGalleryComponent\"),\r\n new ComponentItem(DxMenuComponent, \"DxMenuComponent\"),\r\n new ComponentItem(DxTabsComponent, \"DxTabsComponent\"),\r\n new ComponentItem(DxDashboardComponent, \"DxDashboardComponent\"),\r\n new ComponentItem(DxSignatureComponent, \"DxSignatureComponent\"),\r\n new ComponentItem(DxPdfViewerComponent, \"DxPdfViewerComponent\"),\r\n new ComponentItem(DxPrintDesignerComponent, \"DxPrintDesignerComponent\"),\r\n new ComponentItem(DxMultiSelectBoxComponent, \"DxMultiSelectBoxComponent\"),\r\n new ComponentItem(DxKanbanComponent, \"DxKanbanComponent\"),\r\n new ComponentItem(DxGanttComponent, \"DxGanttComponent\"),\r\n new ComponentItem(DxEtrDiagramComponent, \"DxEtrDiagramComponent\"),\r\n new ComponentItem(DxCommentComponent, \"DxCommentComponent\")\r\n ];\r\n } \r\n \r\n}\r\n","import { Component, OnInit, NgModule,CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { MonacoEditorModule } from 'ngx-monaco-editor';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { DevExtremeModule } from '../../devextreme.module';\r\n\r\nimport { FormBuilder } from \"./_formbuilder/formbuilder\";\r\nimport { FormRender } from \"./_formrender/formrender\";\r\nimport { NgxCaptureModule } from 'ngx-capture';\r\nimport {\r\n DxLabelComponent,\r\n DxButtonComponent,\r\n DxCheckboxComponent,\r\n DxCodeditorComponent,\r\n DxEtrDataGridComponent,\r\n DxCustomDataGridComponent,\r\n DxDateboxComponent,\r\n DxEmailComponent,\r\n DxFileuploadComponent,\r\n DxImageuploadComponent,\r\n DxPictureBoxComponent,\r\n DxMapComponent,\r\n DxImageviewerComponent,\r\n DxVideoviewerComponent,\r\n DxVideouploadComponent,\r\n DxGridComponent,\r\n DxNumberComponent,\r\n DxPasswordComponent,\r\n DxPhoneComponent,\r\n DxRadiogroupComponent,\r\n DxSelectboxComponent,\r\n DxDatagridSelectComponent,\r\n DxDataListComponent,\r\n DxTextboxComponent,\r\n DxSchedulerComponent,\r\n DxLiveComponent,\r\n DxChildFormComponent,\r\n DxPaymentComponent,\r\n DxTextareaComponent,\r\n DxAccordionComponent,\r\n DxHtmleditorComponent,\r\n DxDatasourceComponent,\r\n DxDisplayComponent,\r\n DxFormResultComponent,\r\n DxGalleryComponent,\r\n DxMenuComponent,\r\n DxTabsComponent,\r\n DxDashboardComponent,\r\n DxSignatureComponent,\r\n DxPdfViewerComponent,\r\n DxPrintDesignerComponent,\r\n DxMultiSelectBoxComponent,\r\n DxKanbanComponent,\r\n DxGanttComponent,\r\n DxEtrDiagramComponent,\r\n DxCommentComponent,\r\n} from \".\"\r\n\r\nimport { DxLanguageGridComponent, DxSqlcommandComponent, DxPermissionComponent, DxPopootoolboxComponent, DxLanguageButtonComponent } from './_partialcomponents';\r\nimport { ComponentService } from './component.service';\r\nimport { RenderComponent } from './render.component';\r\nimport { ComponentDirective } from './component.directive';\r\nimport { SafePipe } from './safepipe.component ';\r\nimport { LocalStorageService } from './local-storage.service';\r\n\r\nimport { JwPaginationComponent } from 'jw-angular-pagination';\r\nimport { SearchFilterPipe } from '../shared/pipes/filter-pipe.pipe';\r\nimport { PaginationPipe } from '../shared/pipes/pagination-pipe.pipe';\r\nimport { SortByPipe } from '../shared/pipes/sort-pipe.pipe';\r\nimport { DataTable } from '../shared/components/data-table/data-table.component';\r\nimport { DataTablePaginator } from '../shared/components/data-table-paginator/data-table-paginator.component';\r\nimport { WhitePageViewer } from '../pages/admin/whitepageviewer/whitepageviewer.component';\r\nimport { DxReportViewerModule } from 'devexpress-reporting-angular';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\n\r\n@NgModule({\r\n imports: [\r\n MonacoEditorModule.forRoot(),\r\n AgmCoreModule.forRoot({\r\n // please get your own API key here:AIzaSyDXpgm5y_tUBAAAS7JMPmZgMQvjpUvjh4M\r\n // https://developers.google.com/maps/documentation/javascript/get-api-key?hl=en\r\n apiKey: atob(typeof localStorage.getItem(\"GMAPI\") != \"undefined\" ? localStorage.getItem(\"GMAPI\") : '') //'AIzaSyBfeMCzcIXRN-rBUA19hqwFgngihg99VwQ' QUl6YVN5QmZlTUN6Y0lYUk4tckJVQTE5aHF3RmduZ2loZzk5VndR\r\n ,\r\n libraries: [\"places\"]\r\n }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DragDropModule,\r\n DevExtremeModule,\r\n DxReportViewerModule,\r\n ColorPickerModule,\r\n NgxCaptureModule,\r\n ],\r\n declarations: [\r\n SafePipe,\r\n FormBuilder,\r\n FormRender,\r\n DxLabelComponent,\r\n DxButtonComponent,\r\n DxCheckboxComponent,\r\n DxDateboxComponent,\r\n DxNumberComponent,\r\n DxPasswordComponent,\r\n DxSelectboxComponent,\r\n DxDatagridSelectComponent,\r\n DxDataListComponent,\r\n DxTextareaComponent,\r\n DxTextboxComponent,\r\n DxSchedulerComponent,\r\n DxLiveComponent,\r\n DxChildFormComponent,\r\n DxPaymentComponent,\r\n DxGridComponent,\r\n RenderComponent,\r\n DxEtrDataGridComponent,\r\n DxCustomDataGridComponent,\r\n ComponentDirective,\r\n DxCodeditorComponent,\r\n DxRadiogroupComponent,\r\n DxFileuploadComponent,\r\n DxImageuploadComponent,\r\n DxPictureBoxComponent,\r\n DxMapComponent,\r\n DxVideouploadComponent,\r\n DxPhoneComponent,\r\n DxEmailComponent,\r\n DxAccordionComponent,\r\n DxHtmleditorComponent,\r\n DxLanguageGridComponent,\r\n DxLanguageButtonComponent,\r\n DxImageviewerComponent,\r\n DxVideoviewerComponent,\r\n DxSqlcommandComponent,\r\n DxPermissionComponent,\r\n DxPopootoolboxComponent,\r\n DxDatasourceComponent,\r\n DxDisplayComponent,\r\n DxFormResultComponent,\r\n DxGalleryComponent,\r\n DxMenuComponent,\r\n DxTabsComponent,\r\n JwPaginationComponent,\r\n DxDashboardComponent,\r\n DxSignatureComponent,\r\n DxPdfViewerComponent,\r\n PaginationPipe,\r\n SearchFilterPipe,\r\n SortByPipe,\r\n DataTable,\r\n DataTablePaginator,\r\n DxPrintDesignerComponent,\r\n WhitePageViewer,\r\n DxMultiSelectBoxComponent,\r\n DxKanbanComponent,\r\n DxGanttComponent,\r\n DxEtrDiagramComponent,\r\n DxCommentComponent\r\n ],\r\n providers: [ComponentService, LocalStorageService],\r\n exports: [FormBuilder, FormRender, DevExtremeModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class RiverFormModule { }","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer} from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'safe' })\r\nexport class SafePipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n transform(url) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n} \r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { AppInfoService, EventEmitterService, FormService, TaskService } from '../../shared/services';\r\nimport { Subscription, Observable } from 'rxjs';\r\n//import timeZoneUtils from 'devextreme/time_zone_utils';\r\n\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport { DxSchedulerComponent as DxSchedulerComponentDevxtreme } from 'devextreme-angular';\r\n\r\n@Component({\r\n selector: 'app-scheduler',\r\n templateUrl: './scheduler.component.html',\r\n styleUrls: ['./scheduler.component.css']\r\n})\r\nexport class DxSchedulerComponent implements ComponentParameters, OnInit, OnDestroy {\r\n //@ViewChild(\"schedulerEtr\", { static: false }) schedulerEtr: DxSchedulerComponentDevxtreme;\r\n\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n\r\n invokeChangeEventLocal: Subscription;\r\n\r\n\r\n currentDate: Date = new Date(Date.now());\r\n timezone: string;\r\n locations: string[];\r\n\r\n dataSource: any = [];\r\n resourcesDataSource: any = [];\r\n\r\n demoLocations: string[];\r\n\r\n designerMenuList: any = [];\r\n designerSubMenuList: any = [];\r\n designerMenuBrowserList: any = [];\r\n\r\n designerSubMenuListFilter: any = [];\r\n designerMenuBrowserListFilter: any = [];\r\n languageLocal: any = \"\";\r\n\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public taskService: TaskService,\r\n private formService: FormService,\r\n private appInfo: AppInfoService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n private componentService: ComponentService) {\r\n // this.demoLocations = this.getLocations(this.currentDate);\r\n\r\n this.timezone = 'Europe/London';\r\n this.currentDate = this.currentDate;\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n //let thisPageMap = this;\r\n //setTimeout(function () {\r\n // thisPageMap.mapsAPILoader.load().then(() => {\r\n // thisPageMap.autocompleteService = new google.maps.places.AutocompleteService();\r\n // });\r\n //}, 1500);\r\n\r\n //this.setClassMarker();\r\n }\r\n\r\n //getLocations = (date) => {\r\n // const timeZones = timeZoneUtils.getTimeZones(date);\r\n // return timeZones.filter((timeZone) => service.getLocations().indexOf(timeZone.id) !== -1);\r\n //};\r\n\r\n getGroupDatasource() {\r\n return [{\r\n text: this.defaultLanguage.Label,//this.data.,\r\n id: 1,\r\n color: this.data.eventColor,\r\n //avatar: 'images/gym/coach-man.png',\r\n //age: 27,\r\n //discipline: 'ABS, Fitball, StepFit',\r\n }\r\n //, {\r\n // text: 'Sandra Johnson',\r\n // id: 2,\r\n // color: '#ff9747',\r\n // avatar: 'images/gym/coach-woman.png',\r\n // age: 25,\r\n // discipline: 'ABS, Fitball, StepFit',\r\n //}\r\n ];\r\n }\r\n\r\n monthNamesEng = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\r\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\r\n ];\r\n monthNamesTr = [\"Ocak\", \"Şubat\", \"Mart\", \"Nisan\", \"Mayıs\", \"Haziran\",\r\n \"Temmuz\", \"Ağustos\", \"Eylül\", \"Ekim\", \"Kasım\", \"Aralık\"\r\n ];\r\n getDatasource() {\r\n //visibilityElement: any = []; selectedFormData\r\n // data.menuData.desc data.menuData.image\r\n // data.menuData.name data.menuData.beginDate data.menuData.endDate \r\n let returnDS = [];\r\n this.selectedFormData.forEach(frmData => {\r\n\r\n let _start = new Date(frmData[this.data.menuData.beginDate]);\r\n let _end = new Date(frmData[this.data.menuData.endDate]);\r\n let getH_start = _start.getHours() > 9 ? _start.getHours() : \"0\" + _start.getHours();\r\n let getM_start = _start.getMinutes() > 9 ? _start.getMinutes() : \"0\" + _start.getMinutes();\r\n let getH_end = _end.getHours() > 9 ? _end.getHours() : \"0\" + _end.getHours();\r\n let getM_end = _end.getMinutes() > 9 ? _end.getMinutes() : \"0\" + _end.getMinutes();\r\n let returnDSVal = {\r\n groupID: 1,\r\n ID: frmData.ID,\r\n text: frmData[this.data.menuData.name],\r\n image: this.data.menuData.image ? frmData[this.data.menuData.image] : \"\", //\"https://js.devexpress.com/Demos/WidgetsGallery/JSDemos/images/movies/HisGirlFriday.jpg\",//this.data.menuData.image ? frmData[this.data.menuData.image] : \"\",\r\n startDate: _start,\r\n endDate: _end,\r\n allDay: false,\r\n startDateStr: _start.getDate() + \" \" + this.monthNamesTr[_start.getMonth()] + \" \" + _start.getFullYear() + \" , \" + getH_start + \":\" + getM_start,\r\n endDateStr: _end.getDate() + \" \" + this.monthNamesTr[_end.getMonth()] + \" \" + _end.getFullYear() + \" , \" + getH_end + \":\" + getM_end,\r\n\r\n //,\r\n //recurrenceRule: 'FREQ=DAILY'\r\n };\r\n\r\n returnDS.push(returnDSVal);\r\n });\r\n\r\n return returnDS;\r\n /*[{\r\n text: 'Stand-up meeting',\r\n groupID: 1,\r\n startDate: '2021-04-26T15:30:00.000Z',\r\n endDate: '2021-04-26T15:45:00.000Z',\r\n recurrenceRule: 'FREQ=DAILY',\r\n }, {\r\n text: 'Book Flights to San Fran for Sales Trip',\r\n groupID: 1,\r\n startDate: '2021-04-28T18:00:00.000Z',\r\n endDate: '2021-04-28T19:00:00.000Z',\r\n }, {\r\n text: 'New Brochures',\r\n groupID: 1,\r\n startDate: '2021-04-30T18:30:00.000Z',\r\n endDate: '2021-04-30T18:45:00.000Z',\r\n }, {\r\n text: 'Website Re-Design Plan',\r\n groupID: 1,\r\n startDate: '2021-04-27T12:30:00.000Z',\r\n endDate: '2021-04-27T13:30:00.000Z',\r\n }, {\r\n text: 'Book Flights to San Fran for Sales Trip',\r\n groupID: 1,\r\n startDate: '2021-04-28T16:00:00.000Z',\r\n endDate: '2021-04-28T15:00:00.000Z',\r\n }, {\r\n text: 'Prepare 2021 Marketing Plan',\r\n groupID: 1,\r\n startDate: '2021-04-26T07:00:00.000Z',\r\n endDate: '2021-04-26T09:30:00.000Z',\r\n }, {\r\n text: 'Launch New Website',\r\n groupID: 1,\r\n startDate: '2021-04-28T08:00:00.000Z',\r\n endDate: '2021-04-28T10:00:00.000Z',\r\n }, {\r\n text: 'Submit New Website Design',\r\n groupID: 1,\r\n startDate: '2021-04-29T09:30:00.000Z',\r\n endDate: '2021-04-29T11:00:00.000Z',\r\n }, {\r\n text: 'Upgrade Server Hardware',\r\n groupID: 1,\r\n startDate: '2021-04-30T06:30:00.000Z',\r\n endDate: '2021-04-30T08:00:00.000Z',\r\n }, {\r\n text: 'Approve New Online Marketing Strategy',\r\n groupID: 1,\r\n startDate: '2021-04-30T11:00:00.000Z',\r\n endDate: '2021-04-30T12:30:00.000Z',\r\n }, {\r\n text: 'Final Budget Review',\r\n groupID: 1,\r\n startDate: '2021-04-27T09:00:00.000Z',\r\n endDate: '2021-04-27T10:35:00.000Z',\r\n }];*/\r\n }\r\n //onContentReady(e) {\r\n // let dxSchedulerDateTableCell = e.element.getElementsByClassName('dx-scheduler-date-table-cell');\r\n // for (let _i = 0; _i < dxSchedulerDateTableCell.length; _i++) {\r\n // dxSchedulerDateTableCell[_i].addEventListener('click', function (arg) {\r\n // arg.stopPropagation();\r\n // arg.preventDefault();\r\n // }, false);\r\n // }\r\n // //dxSchedulerDateTableCell.forEach(el => el.addEventListener('dxclick', arg => {\r\n // // arg.stopPropagation();\r\n // // arg.preventDefault();\r\n // //}));\r\n // //let _event = e;\r\n // ///* (*/e.element/*)*/.getElementsByClassName('dx-scheduler-date-table-cell').addEventListener(\"dxclick\", function (arg) {/*.on('dxclick', function (arg) {*/\r\n // // //.find('.dx-scheduler-date-table-cell').on('dxclick', function (arg) {\r\n // // arg.stopPropagation();\r\n // // arg.preventDefault();\r\n // // //let ff = _event;\r\n // // //\r\n // // });\r\n //}\r\n onValueChanged(e: any) {\r\n this.timezone = e.value;\r\n }\r\n onAppointmentFormCreated(event) {\r\n event.cancel = true\r\n }\r\n\r\n onAppointmentUpdating(event) {\r\n // this.menuFormGeneral\r\n let _nodeData = this.selectedFormData.find(x => x.ID == event.oldData.ID);\r\n _nodeData[this.data.menuData.beginDate] = event.newData.startDate;\r\n _nodeData[this.data.menuData.endDate] = event.newData.endDate;\r\n\r\n //_nodeData\r\n //this.menuFormGeneral.nodeData.find(x=>x.ID==);\r\n // let menuFormGeneralClone = this.componentService.cloneModel(this.menuFormGeneral);\r\n\r\n //this.selectedFormData = JSON.parse(this.menuFormGeneral.nodeData);\r\n //this.dataSource = this.getDatasource();\r\n //this.resourcesDataSource = this.getGroupDatasource();\r\n let _nodeDataStr = JSON.stringify(_nodeData);\r\n //let formJustData = {\r\n // formId: this.menuFormGeneral.formId,\r\n // nodeData: _nodeDataStr,\r\n // nodeKey: this.menuFormGeneral.nodeKey\r\n //};\r\n let _schedulerChangeData = undefined;\r\n if (this.componentService.schedulerChangeData) {\r\n if (this.componentService.schedulerChangeData[this.data.id])\r\n _schedulerChangeData = this.componentService.schedulerChangeData[this.data.id].find(x => x.id == event.oldData.ID);\r\n }\r\n\r\n if (_schedulerChangeData) {\r\n _schedulerChangeData.nodeData = _nodeDataStr;\r\n }\r\n else {\r\n this.componentService.schedulerChangeData = this.componentService.schedulerChangeData || {};\r\n this.componentService.schedulerChangeData[this.data.id] = this.componentService.schedulerChangeData[this.data.id] || [];\r\n this.componentService.schedulerChangeData[this.data.id].push({ id: event.oldData.ID, formId: this.menuFormGeneral.formId, nodeKey: this.menuFormGeneral.nodeKey, nodeData: _nodeDataStr });\r\n } //this.formService.updateJustMenuData(formJustData).subscribe((result: any) => {\r\n\r\n //});\r\n\r\n }\r\n\r\n //overrideDefaultPopup(event) {\r\n // if (event.appointmentData) {\r\n // event.cancel = true\r\n // let appt = event.appointmentData\r\n // //this.showCustomPopup(appt)\r\n // }\r\n //}\r\n onAppointmentFormOpening(e: any) {\r\n e.cancel = true\r\n //return false;\r\n //const form = e.form;\r\n\r\n //const startDateTimezoneEditor = form.getEditor('startDateTimeZone');\r\n //const endDateTimezoneEditor = form.getEditor('endDateTimeZone');\r\n //const startDateDataSource = startDateTimezoneEditor.option('dataSource');\r\n //const endDateDataSource = endDateTimezoneEditor.option('dataSource');\r\n\r\n //startDateDataSource.filter(['id', 'contains', 'Europe']);\r\n //endDateDataSource.filter(['id', 'contains', 'Europe']);\r\n\r\n //startDateDataSource.load();\r\n //endDateDataSource.load();\r\n }\r\n\r\n //onOptionChanged(e) {\r\n // //if (e.name === 'currentDate') {\r\n // // this.demoLocations = this.getLocations(e.value);\r\n // //}\r\n //}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n themePopup = false;\r\n\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n\r\n //showSchedulerVisible = false;\r\n ngOnInit() {\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.eventEmitterService.invokeSchedulerInit.subscribe(sub => {\r\n // if (sub.key === this.data.uuid) {\r\n // this.schedulerInitShow();\r\n // }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n //let thisPageMapTimeout = this;\r\n //setTimeout(function () {\r\n // if (sub.data && sub.data != \"\") thisPageMapTimeout.data.markers = sub.data.markers;\r\n // else thisPageMapTimeout.data.markers = [];\r\n\r\n // thisPageMapTimeout.changeDetectorRef.detectChanges();\r\n //}, 100);\r\n }\r\n });\r\n\r\n //this.dataSource = this.getDatasource();\r\n\r\n\r\n this.designerMenuList = [];\r\n this.designerSubMenuList = [];\r\n this.designerMenuBrowserList = [];\r\n this.taskService.getMenuList().subscribe(data => {\r\n\r\n this.designerMenuList = [];\r\n for (var i = 0; i < data.length; i++) {\r\n let jsonData = JSON.parse(data[i].sidebarJson);\r\n let _objMenu = { id: jsonData.id, name: jsonData.name };\r\n this.designerMenuList.push(_objMenu);\r\n\r\n for (var j = 0; j < jsonData.items.length; j++) {\r\n let jsonDataItems = jsonData.items[j];\r\n let _objSubMenu = { id: jsonDataItems.id, name: jsonDataItems.name, parentId: jsonData.id };\r\n this.designerSubMenuList.push(_objSubMenu);\r\n\r\n for (var k = 0; k < jsonDataItems.items.length; k++) {\r\n let jsonDataBrowserItems = jsonDataItems.items[k];\r\n let _objMenuBrowser = { id: jsonDataBrowserItems.id, name: jsonDataBrowserItems.name, parentId: jsonDataItems.id, formId: jsonDataBrowserItems.formId };\r\n this.designerMenuBrowserList.push(_objMenuBrowser);\r\n //\r\n }\r\n //\r\n }\r\n //\r\n }\r\n\r\n\r\n let _browser = this.designerMenuBrowserList.find(x => x.id == this.data.menuData.menuBrowserNode);\r\n if (this.isEdit) {\r\n this.designerSubMenuListFilter = [];\r\n this.designerMenuBrowserListFilter = [];\r\n this.visibilityElement = [];\r\n this.designerSubMenuListFilter = this.designerSubMenuList.filter(x => x.parentId == this.data.menuData.menuNodeKey);\r\n this.designerMenuBrowserListFilter = this.designerMenuBrowserList.filter(x => x.parentId == this.data.menuData.subMenuNodeKey);\r\n }\r\n if (_browser)\r\n this.getMenuForm(_browser);\r\n // if (!this.isEdit) {\r\n\r\n //if (_browser)\r\n // this.getMenuForm(_browser);\r\n // } \r\n\r\n });\r\n\r\n\r\n\r\n this.resourcesDataSource = this.getGroupDatasource();\r\n\r\n this.setDefaultProperties();\r\n //this.schedulerInitShow();\r\n\r\n\r\n }\r\n\r\n onMenuValueChanged(event) {\r\n //this. designerMenuList \r\n if (event.event) {\r\n this.designerSubMenuListFilter = [];\r\n this.data.menuData.subMenuNodeKey = \"\";\r\n this.data.menuData.menuBrowserNode = \"\";\r\n this.clearMiddleElement();\r\n this.designerSubMenuListFilter = this.designerSubMenuList.filter(x => x.parentId == event.value);\r\n }\r\n }\r\n\r\n onSubMenuValueChanged(event) {\r\n if (event.event) {\r\n this.clearMiddleElement();\r\n // this. designerSubMenuList \r\n this.designerMenuBrowserListFilter = this.designerMenuBrowserList.filter(x => x.parentId == event.value);\r\n }\r\n }\r\n\r\n clearMiddleElement() {\r\n this.designerMenuBrowserListFilter = [];\r\n this.visibilityElement = [];\r\n this.data.menuData.name = \"\";\r\n this.data.menuData.image = \"\";\r\n this.data.menuData.beginDate = \"\";\r\n this.data.menuData.endDate = \"\";\r\n }\r\n\r\n menuFormGeneral: any;\r\n visibilityElement: any = [];\r\n menuOptions = [];\r\n selectedForm: any;\r\n selectedFormData: any = [];\r\n onMenuBrowserValueChanged(event) {\r\n if (event.event) {\r\n this.visibilityElement = [];\r\n let _browser = this.designerMenuBrowserListFilter.find(x => x.id == event.value);\r\n if (_browser) {\r\n this.getMenuForm(_browser);\r\n }\r\n }\r\n }\r\n getDatasourceSch() {\r\n return this.dataSource;\r\n }\r\n getMenuForm(_browser) {\r\n this.formService.getMenuForm(_browser.formId, _browser.id, 0, this.appInfo.currentUser.id.toString()).subscribe((result: any) => {\r\n //this.taskService.getMenuList(data.menuData.menuBrowserNode).subscribe(data => { \r\n this.menuFormGeneral = result;\r\n this.menuOptions = JSON.parse(this.menuFormGeneral.menuOptions); //[{\"visibility\":[\"datebox1\",\"selectbox1\",\"selectbox2\",\"textarea1\"]},{\"sqlColumns\":[]}]\r\n this.visibilityElement = this.menuOptions[0].visibility;\r\n\r\n\r\n if (!this.isEdit) {\r\n this.selectedFormData = JSON.parse(this.menuFormGeneral.nodeData);\r\n this.selectedForm = JSON.parse(this.menuFormGeneral.formJson);\r\n this.componentService.formComponentTempList = [];\r\n this.componentService.componentListObjectTemp(this.selectedForm.components);\r\n\r\n this.dataSource = this.getDatasource();\r\n this.resourcesDataSource = this.getGroupDatasource();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n this.schedulerFiles();\r\n }\r\n\r\n });\r\n }\r\n schedulerFiles() {\r\n debugger;\r\n let dataImage = this.dataSource.map(x => x.image[0]);\r\n this.formService.getMenuFilesData(dataImage).subscribe((s: any) => {\r\n debugger;\r\n if (s) {\r\n\r\n this.dataSource.forEach(_dSource => {\r\n //fileData fileType id: 1\r\n let _fileData = s.files.find(x1 => x1.id == _dSource.image[0]);\r\n if (_fileData)\r\n _dSource.image = 'data:' + _fileData.fileType + ';base64,' + _fileData.fileData;\r\n //if (_dSource.base64BlobData && document.base64BlobData != \"\")\r\n // document.src = 'data:' + document.fileType + ';base64,' + document.base64BlobData;\r\n //else\r\n // document.src = '/assets/img/default-placeholder.png';\r\n //_dSource.image =\r\n });\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n }\r\n });\r\n }\r\n setDefaultProperties() {\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide ? \"flex\" : \"none\") : \"flex\";\r\n //this.data.width = this.data.width > 0 ? this.data.width : 500;\r\n this.data.height = this.data.height > 0 ? this.data.height : 600;\r\n this.data.disabled = typeof this.data.disabled == \"undefined\" ? false : this.data.disabled;\r\n\r\n\r\n this.data.weekendColor = this.data.weekendColor ? this.data.weekendColor : \"rgba(51, 122, 183, 0.2)\";\r\n this.data.eventColor = this.data.eventColor ? this.data.eventColor : \"#327dbf\";\r\n this.data.weekdayColor = this.data.weekdayColor ? this.data.weekdayColor : \"rgba(51, 122, 183, 0.1)\";\r\n this.data.isChangeDefaultColor = this.data.isChangeDefaultColor ? this.data.isChangeDefaultColor : false;\r\n this.data.canUserChange = this.data.canUserChange ? this.data.canUserChange : true;\r\n this.data.startTime = this.data.startTime ? this.data.startTime : 8;\r\n this.data.endTime = this.data.endTime ? this.data.endTime : 18;\r\n\r\n this.data.viewTypes = this.data.viewTypes ? this.data.viewTypes : [\"month\"];\r\n this.selectedViewTypes[\"month\"] = typeof this.data.viewTypes.find(x => x == \"month\") != \"undefined\";\r\n this.selectedViewTypes[\"agenda\"] = typeof this.data.viewTypes.find(x => x == \"agenda\") != \"undefined\";\r\n this.selectedViewTypes[\"day\"] = typeof this.data.viewTypes.find(x => x == \"day\") != \"undefined\";\r\n this.selectedViewTypes[\"week\"] = typeof this.data.viewTypes.find(x => x == \"workWeek\") != \"undefined\" || typeof this.data.viewTypes.find(x => x == \"week\") != \"undefined\";\r\n this.selectedViewTypes[\"weekend\"] = typeof this.data.viewTypes.find(x => x == \"workWeek\") != \"undefined\";\r\n //if (this.selectedViewTypes[\"month\"] == false && this.selectedViewTypes[\"day\"] == false && this.selectedViewTypes[\"agenda\"] == false && this.selectedViewTypes[\"week\"] == false && this.selectedViewTypes[\"weekend\"] == false) {\r\n\r\n // if (this.data.viewTypes.length == 0)\r\n // this.data.viewTypes.push(\"month\");\r\n //}\r\n this.selectedViewTypes[\"month\"] = true;\r\n\r\n\r\n //this.currenViewGlobal = \"TimelineWeek\";//this.data.viewTypes[0];\r\n //try {\r\n // let _elElement = document.getElementById(this.data.id);\r\n // let _elWrapper = _elElement.querySelector(\".dx-tabs-wrapper\");\r\n // let _elFirstTab = _elWrapper.querySelectorAll(\".dx-item\")[0];\r\n // (_elFirstTab).click();\r\n //}\r\n //catch (ex) { \r\n //}\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n //this.data.viewTypes.push('month'); = { \"month\": true, \"workWeek\": false, \"week\": false };\r\n }\r\n\r\n currenViewGlobal = \"month\";\r\n selectedViewTypes = { \"month\": true, \"week\": false, \"weekend\": false, \"day\": false, \"agenda\": false };\r\n changeViewType() {\r\n if (this.isEdit) {\r\n\r\n let _month = this.selectedViewTypes[\"month\"];\r\n let _week = this.selectedViewTypes[\"week\"];\r\n let _weekend = this.selectedViewTypes[\"weekend\"];\r\n\r\n let _agenda = this.selectedViewTypes[\"agenda\"];\r\n let _day = this.selectedViewTypes[\"day\"];\r\n\r\n this.data.viewTypes = [\"month\"];\r\n //if (_month == true)\r\n // this.data.viewTypes.push('month');\r\n if (_agenda == true)\r\n this.data.viewTypes.push('agenda');\r\n if (_day == true)\r\n this.data.viewTypes.push('day');\r\n\r\n if (_week == true) {\r\n if (_weekend == true)\r\n this.data.viewTypes.push('week');\r\n else\r\n this.data.viewTypes.push('workWeek');\r\n }\r\n else {\r\n this.selectedViewTypes[\"weekend\"] = false;\r\n }\r\n\r\n this.selectedViewTypes[\"month\"] = true;\r\n //if (_month == false && _week == false && _weekend == false && _agenda == false && _day == false) {\r\n // this.selectedViewTypes[\"month\"] = true;\r\n //}\r\n try {\r\n let _elElement = document.getElementById(this.data.id);\r\n let _elWrapper = _elElement.querySelector(\".dx-tabs-wrapper\");\r\n let _elFirstTab = _elWrapper.querySelectorAll(\".dx-item\")[0];\r\n (_elFirstTab).click();\r\n\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n catch (ex) { }\r\n }\r\n }\r\n\r\n schedulerInitShow() {\r\n try {\r\n // let _this = this;\r\n //setTimeout(function () {\r\n // debugger;\r\n // //_this.showSchedulerVisible = true;\r\n //}, 5000);\r\n } catch (ex) {\r\n /* this.showSchedulerVisible = true;*/\r\n }\r\n }\r\n changeDefaultColor(e) {\r\n if (e.value == false) {\r\n this.data.weekdayColor = \"rgba(51, 122, 183, 0.1)\";\r\n this.data.weekendColor = \"rgba(51, 122, 183, 0.2)\";\r\n this.data.eventColor = \"#327dbf\";\r\n }\r\n }\r\n markWeekEnd(_cellData) {\r\n const styles = {};\r\n let _day = _cellData.startDate.getDay();\r\n let _weekEnd = _day === 0 || _day === 6;\r\n\r\n if (_weekEnd) {\r\n this.data.weekendColor = this.data.weekendColor ? this.data.weekendColor : \"rgba(51, 122, 183, 0.2)\";\r\n styles[\"background-color\"] = this.data.weekendColor;\r\n }\r\n else {\r\n this.data.weekdayColor = this.data.weekdayColor ? this.data.weekdayColor : \"rgba(51, 122, 183, 0.1)\";\r\n styles[\"background-color\"] = this.data.weekdayColor;\r\n }\r\n\r\n this.data.eventColor = this.data.eventColor ? this.data.eventColor : \"#327dbf\";\r\n\r\n //background-color: rgba(86, 202, 133, 0.2);\r\n\r\n //if (_type == \"container\")\r\n // styles['display'] = this.showDisplay;\r\n //else\r\n // styles['display'] = \"block!important\";\r\n return styles;\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide ? \"flex\" : \"none\") : \"flex\";\r\n this.resourcesDataSource = this.getGroupDatasource();\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n openPermissionPopup() {\r\n this.permissionPopup = true;\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n schedulerDivStyleFunc(_type) {\r\n let width = (this.data.width && typeof this.data.width != \"undefined\" && this.data.width != null) ? (this.data.width + (this.componentService.isInteger(this.data.width) ? \"px\" : \"\")) : \"100%\";\r\n //this.data.width > 0 ? this.data.width + 'px' : '500px';\r\n let height = (this.data.height && typeof this.data.height != \"undefined\" && this.data.height != null) ? (this.data.height + (this.componentService.isInteger(this.data.height) ? \"px\" : \"\")) : \"100%\";\r\n //this.data.height > 0 ? this.data.height + 'px' : '600px';\r\n const styles = { 'width': width, 'height': height };\r\n if (_type == \"container\")\r\n styles['display'] = this.showDisplay;\r\n else\r\n styles['display'] = \"block!important\";\r\n\r\n return styles;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService, FormService, GenericService, AppInfoService } from '../../shared/services';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport { ComponentService } from '../component.service';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { EditorComponent } from 'ngx-monaco-editor';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\nimport { DxSelectBoxComponent } from 'devextreme-angular';\r\n\r\nexport class SqlScriptModel {\r\n id: number;\r\n connectionId: number;\r\n elementId: string;\r\n query: string;\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'selectbox-component',\r\n templateUrl: './selectbox.component.html',\r\n styleUrls: ['./selectbox.component.css']\r\n})\r\nexport class DxSelectboxComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() isEdit: any;\r\n @Input() lang: string;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n @ViewChild(\"selectBoxItem\", { static: false }) selectBoxItem: DxSelectBoxComponent;\r\n\r\n languageCodes = []\r\n // { id: 0, text: \"Türkçe\", val1: \"TR\", val2: \"tr\" },\r\n ////{ id: 1, text: \"USA\", val1: \"US\", val2: \"en\" },\r\n //{ id: 1, text: \"English\", val1: \"EN\", val2: \"en\" },\r\n //{ id: 2, text: \"Français\", val1: \"FR\", val2: \"fr\" },\r\n //{ id: 3, text: \"Deutsche\", val1: \"DE\", val2: \"de\" },\r\n //{ id: 4, text: \"Español\", val1: \"ES\", val2: \"es\" },\r\n //{ id: 5, text: \"Italiano\", val1: \"IT\", val2: \"it\" },\r\n //{ id: 6, text: \"Pусский\", val1: \"RU\", val2: \"ru\" },\r\n //{ id: 7, text: \"日本語\", val1: \"JP\", val2: \"ja\" },\r\n //{ id: 8, text: \"中文\", val1: \"CN\", val2: \"cmn-Hans\" },\r\n //{ id: 9, text: \"한국어\", val1: \"KR\", val2: \"ko\" },\r\n //{ id: 10, text: \"हिन्दी\", val1: \"IN\", val2: \"hi\" },\r\n //, almanca, sırpça, basitleştirilmiş çince, ispanyolca\r\n\r\n classFormComponent = \"col-md-12\";\r\n classFormElements = \"col-md-6 hidden-element\";\r\n\r\n designerDataSourceList: any;\r\n designerDatasourceModel: any;\r\n\r\n dataSources: any;\r\n dataSourcePopup: boolean = false;\r\n isFromDataSource: boolean;\r\n showSettingPopup: boolean = false;\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showChamgeEventPopup: boolean = false;\r\n isMonacoLoaded: boolean = false;\r\n\r\n invokeChangeEventLocal: Subscription;\r\n // editorOptions = { theme: 'vs-dark', language: 'sql', automaticLayout: true };\r\n connections: any = [];\r\n selecboxComponents: any = [];\r\n allDatagridComponents: any = [];\r\n sqlScriptModel: SqlScriptModel;\r\n languageLocal: any = \"\";\r\n\r\n constructor(public appInfo: AppInfoService,\r\n private eventEmitterService: EventEmitterService,\r\n private componentService: ComponentService,\r\n private genericService: GenericService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public instanceService: InstanceService) {\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n this.languageCodes = this.componentService.getlanguageCodes();\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);//\r\n let currentComps = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let currentCompDatagrids = currentComps.filter(x => x.type == \"datagrid\");\r\n this.allDatagridComponents = currentCompDatagrids.map(m => m.id);\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n if (sub.elementId == this.data.id) {\r\n\r\n if (sub.data) {\r\n\r\n\r\n let result = sub.data;\r\n if (result && result.length > 0 && Array.isArray(result)) {\r\n let cols = Object.keys(result[0]);\r\n if (cols) {\r\n result.forEach(item => {\r\n if (!item.text) {\r\n\r\n if (cols.length == 1) {\r\n item.text = item[cols[0]];\r\n }\r\n else {\r\n let displayList = [];\r\n cols.forEach(f => {\r\n if (f != this.data.valueExpr) {\r\n displayList.push(item[f]);\r\n }\r\n });\r\n item.text = displayList.join(\",\");\r\n }\r\n }\r\n });\r\n\r\n }\r\n this.data.dataSource = result;\r\n\r\n let tThis = this;\r\n setTimeout(() => {\r\n let _dataVal = tThis.datasourceValChange(tThis.data.dataSource, tThis.data.value, tThis);\r\n\r\n tThis.data.value = tThis.data.isDefaultFirstValue && tThis.data.dataSource.length > 0 && tThis.data.value == \"\" ? tThis.data.dataSource[0][tThis.data.valueExpr] : _dataVal;\r\n\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }, 1000);\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n let _event_ = { value: this.data.value };\r\n this.onValueChanged(_event_);\r\n }\r\n else {\r\n this.data.value = result;\r\n }\r\n\r\n }\r\n else if (sub.value == \"clean_element\") {\r\n\r\n this.data.dataSource = [];\r\n this.data.value = \"\";\r\n\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n\r\n });\r\n }\r\n datasourceValChange(_datasource, _val, tThis) {\r\n let _valReturn = _val;\r\n if (_datasource.length > 0) {\r\n let _valFind = _datasource.find(x => x[tThis.data.valueExpr] == _val);\r\n if (_valFind)\r\n _valReturn = _valFind[tThis.data.valueExpr];\r\n }\r\n return _valReturn;\r\n }\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n }\r\n formComponentsScripts: any;\r\n formElementsScripts: any;\r\n isFirstLoad = true;\r\n ngOnInit() {\r\n\r\n if (typeof this.functionScript == \"undefined\")\r\n this.functionScript = { code: \"\", elementId: \"\", column: \"\" };\r\n if (typeof this.data.isSelectboxInsertManualData == \"undefined\")\r\n this.data.isSelectboxInsertManualData = false;\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n\r\n if (!this.isEdit) {\r\n this.executeScript();\r\n /*setTimeout(function () {\r\n this.executeScript();\r\n }.bind(this), 1000);*/\r\n\r\n if (this.data.isSelectboxInsertManualData) {\r\n this.setRuntimeDataSource();\r\n }\r\n }\r\n else {\r\n\r\n this.fillDesignerDataSource();\r\n }\r\n\r\n\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n\r\n if (typeof this.data.isDefaultFirstValue === \"undefined\")\r\n this.data.isDefaultFirstValue = false;\r\n\r\n let fff = this.data;\r\n\r\n // İlk açılış kuralında eğer isDatagridSetChangeEvent true verirsek processformdata verisi açılırken yanlış gidiyor.\r\n let isDatagridSetChangeEvent = false\r\n if (this.componentService.currentProcessFormId == 0) {\r\n isDatagridSetChangeEvent = true;\r\n }\r\n //let _thisVal = this.data.value;\r\n setTimeout(function () { this.isFirstLoad = true; }.bind(this), 1000);\r\n\r\n }\r\n\r\n //changeDataFunctionScript() {\r\n // this.data.functionScripts.forEach(f => {\r\n // let result = eval(f.code.replace(/[\\u200B-\\u200D\\uFEFF]/g, ''));\r\n // this.eventEmitterService.selectboxChangeEvent (this.data.id, f.elementId, result, result); \r\n // });\r\n //}\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n fillDesignerDataSource() {\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n\r\n this.genericService.fillDesignerDataSource().subscribe((result: any) => {\r\n\r\n this.designerDataSourceList = result;\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n if (this.data.desktopDatasource != null) {\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == this.data.desktopDatasource);\r\n\r\n if (typeof this.designerDatasourceModel.ID === \"undefined\")\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n }\r\n\r\n if (!this.isEdit) {\r\n\r\n this.genericServiceExecuteScript(this.designerDatasourceModel.SQLSTR, this.designerDatasourceModel.CONNID);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n\r\n this.data.desktopDatasource = this.designerDatasourceModel.ID;\r\n\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n /*if (this.data.dataSourceKey == \"\" && this.data.dataSource.length <= 0)\r\n this.componentService.showAlert(\"Uyarı! Henüz veri eklenmedi.\", \"warning\", 4000);*/\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000) }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n resetDataSource() {\r\n this.data.dataSource = [];\r\n this.data.dataSourceKey = \"\";\r\n }\r\n\r\n onChangeDatasourceValue(event) {\r\n if (event.value) {\r\n\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == event.value);\r\n\r\n // this.designerDatasourceModel = { ID: 0, NAME: \"\", SQLSTR: \"\" };\r\n\r\n }\r\n }\r\n\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n onValueChanged(event) {\r\n let _data = { element: this.data.id, value: event.value, elementLabel: this.defaultLanguage.Label, filteredElement: this.data.selectedDatagrid, filteredColumn: undefined };\r\n if (event.value) {\r\n\r\n if (typeof event.previousValue != \"undefined\" && event.previousValue != null && event.previousValue != event.value) {\r\n this.clearScriptRecursive(this.data.id, false);\r\n }\r\n\r\n //this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", event.value, null);\r\n\r\n this.data.value = event.value;\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n\r\n if (this.data.selectedDatagrid && this.data.selectedDatagrid != \"\") {\r\n this.eventEmitterService.ChangeFilterOutElement(_data);\r\n }\r\n\r\n if (typeof this.data.functionScripts != \"undefined\") {\r\n\r\n let galleryArray = [];\r\n\r\n\r\n\r\n this.data.functionScripts.forEach(f => {\r\n let fCode = f.code.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n fCode = this.replaceAll(fCode, \"{\" + this.data.id + \"}\", this.data.value);\r\n curentComponents.forEach(c => {\r\n if (c.id != this.data.id) {\r\n let cId = \"{\" + c.id + \"}\";\r\n fCode = this.replaceAll(fCode, cId, c.value);\r\n }\r\n });\r\n\r\n let fCompm = curentComponents.find(x => x.id == f.elementId);\r\n if (fCompm.type == \"gallery\") {\r\n //f.column;\r\n if (fCode.indexOf('\"[') > -1 || fCode.indexOf(\"'[\") > -1) {\r\n\r\n let result = eval(fCode); //\"[IDs]*1\" \r\n\r\n let galArrayObj = galleryArray.find(l => l.element == f.elementId);\r\n if (galArrayObj) {\r\n galArrayObj.values.push({ value: result, column: f.column });\r\n }\r\n else {\r\n let resVal = { element: f.elementId, values: [] };\r\n resVal.values.push({ value: result, column: f.column });\r\n galleryArray.push(resVal);\r\n }\r\n\r\n //let resVal = { element: f.elementId, values: [] };//{ value: result, column: f.column}\r\n //galleryArray.push();\r\n\r\n }\r\n\r\n }\r\n else {\r\n let result = eval(fCode);\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, f.elementId, result, result);\r\n }\r\n\r\n });\r\n\r\n galleryArray.forEach(f => {\r\n this.eventEmitterService.galleryChangeEvent(this.data.id, f.element, f.values);\r\n });\r\n\r\n }\r\n\r\n this.data.sqlScripts.forEach(s => {\r\n let pref = \"{\" + this.data.id + \"}\";\r\n let value = event.value;\r\n let query = this.componentService.replaceAllUsingType(s.query, pref, value);// s.query.replace(pref, value);\r\n\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(query)) {\r\n let _match = query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = curentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value); // query.replace(f, _value);\r\n }\r\n else if (this.componentService.tempDatagridPopupComponent.components.length > 0) {\r\n let _selectElement = this.componentService.tempDatagridPopupComponent.components.find(x => x.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_selectElement && _selectElement.type) {\r\n let _value = _selectElement.value == null ? \"\" : _selectElement.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value);//query.replace(f, _value);\r\n }\r\n }\r\n });\r\n }\r\n //query = this.genericService.cleanSqlSyntax(query.replace(pattern, \"\"))\r\n }\r\n\r\n\r\n this.genericService.executeQuerySecurited(query, s.connectionId).subscribe((result: any) => {\r\n\r\n if (result) {\r\n let element = this.componentService.getById(s.elementId, currentFormSelected.components, this.anotherPopupId);\r\n //if (element.type) {\r\n\r\n // if (element.component == \"DxDatagridSelectComponent\" || element.type == \"datalist\" || element.type == \"selectbox\" || element.type == \"gallery\" || element.type == \"datagrid\" || element.type == \"multiselectbox\") {\r\n // if (element.type != \"datagrid\" || (element.type == \"datagrid\" && event.previousValue != null && (Object.keys(event).findIndex(x => x == \"event\") == -1 || typeof event.event != \"undefined\")))\r\n // this.eventEmitterService.selectboxChangeEvent (this.data.id, s.elementId, event.value, result);\r\n // }\r\n // else {\r\n // if (result[0] != null) {\r\n // let keys = Object.keys(result[0]);\r\n // if (keys.length > 0) {\r\n // let finalData = [];\r\n // keys.forEach(f => {\r\n // finalData.push(result[0][f]);\r\n // });\r\n // let dataText = finalData.join(\",\");\r\n // this.eventEmitterService.selectboxChangeEvent (this.data.id, s.elementId, event.value, dataText);\r\n // }\r\n // }\r\n // }\r\n //}\r\n\r\n if (element && element.type) {\r\n this.sqlScriptExecuteResult(element, event, s, result);\r\n }\r\n else if (this.componentService.tempDatagridPopupComponent.components.length > 0) {\r\n\r\n let _selectElement = this.componentService.tempDatagridPopupComponent.components.find(x => x.id == s.elementId);\r\n if (_selectElement && _selectElement.type) {\r\n this.sqlScriptExecuteResult(_selectElement, event, s, result);\r\n }\r\n\r\n }\r\n\r\n\r\n }\r\n });\r\n });\r\n\r\n //this.clearScriptRecursive (this.data.id);\r\n \r\n \r\n\r\n }\r\n else {\r\n this.data.value = \"\"\r\n if (this.data.selectedDatagrid && this.data.selectedDatagrid != \"\") {\r\n this.eventEmitterService.ChangeFilterOutElement(_data);\r\n }\r\n //this.eventEmitterService.selectboxChangeEvent (this.data.id, \"clean_element\", null, null);\r\n this.clearScriptRecursive(this.data.id);\r\n }\r\n\r\n }\r\n\r\n sqlScriptExecuteResult(element, event, s, result) {\r\n if (element.component == \"DxDatagridSelectComponent\" || element.type == \"datalist\" || element.type == \"selectbox\" || element.type == \"gallery\" || element.type == \"datagrid\" || element.type == \"multiselectbox\") {\r\n if (element.type != \"datagrid\" || (element.type == \"datagrid\" && event.previousValue != null && (Object.keys(event).findIndex(x => x == \"event\") == -1 || typeof event.event != \"undefined\")))\r\n if (this.isFirstLoad) {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, event.value, result, false);\r\n } else {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, event.value, result, true);\r\n }\r\n\r\n //\r\n }\r\n else {\r\n if (result[0] != null) {\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n let finalData = [];\r\n keys.forEach(f => {\r\n finalData.push(result[0][f]);\r\n });\r\n let dataText = finalData.join(\",\");\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, event.value, dataText);\r\n }\r\n }\r\n }\r\n }\r\n\r\n onDataSourceValueChanged(event) {\r\n this.data.dataSourceKey = event.value\r\n }\r\n\r\n public executeScript() {\r\n if (this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n this.genericServiceExecuteScript(this.data.dataStorage.query, this.data.dataStorage.connectionId);\r\n }\r\n else if (this.data.dataSource && this.data.dataSource.length > 0) {\r\n\r\n let filteredData = this.data.dataSource.filter(f => f.lang == this.lang);\r\n if (filteredData && filteredData.length > 0) {\r\n this.data.dataSource = filteredData;\r\n\r\n\r\n let tThis = this;\r\n setTimeout(() => {\r\n let _dataVal = tThis.datasourceValChange(tThis.data.dataSource, tThis.data.value, tThis);\r\n tThis.data.value = tThis.data.isDefaultFirstValue && tThis.data.dataSource.length > 0 && tThis.data.value == \"\" ? tThis.data.dataSource[0][tThis.data.valueExpr] : _dataVal;\r\n\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }, 1000);\r\n\r\n let _event_ = { value: this.data.value };\r\n this.onValueChanged(_event_);\r\n }//displayExpr\r\n }\r\n else if (this.data.desktopDatasource != null) {\r\n\r\n this.fillDesignerDataSource();\r\n\r\n }\r\n }\r\n\r\n public genericServiceExecuteScript(_Query, _ConnectionId) {\r\n this.genericService.executeQuerySecurited(_Query, _ConnectionId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n let cols = Object.keys(result[0]);\r\n if (cols) {\r\n result.forEach(item => {\r\n if (cols.length == 1) {\r\n item.text = item[cols[0]];\r\n }\r\n else {\r\n let displayList = [];\r\n cols.forEach(f => {\r\n if (f != this.data.valueExpr) {\r\n displayList.push(item[f]);\r\n }\r\n });\r\n item.text = displayList.join(\",\");\r\n }\r\n });\r\n }\r\n this.data.dataSource = result;\r\n\r\n let tThis = this;\r\n setTimeout(() => {\r\n let _dataVal = tThis.datasourceValChange(tThis.data.dataSource, tThis.data.value, tThis);\r\n tThis.data.value = tThis.data.isDefaultFirstValue && tThis.data.dataSource.length > 0 && tThis.data.value == \"\" ? tThis.data.dataSource[0][tThis.data.valueExpr] : _dataVal;\r\n\r\n try { tThis.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }, 1000);\r\n\r\n\r\n let _event_ = { value: this.data.value };\r\n this.onValueChanged(_event_);\r\n }\r\n else {\r\n this.data.dataSource = [];\r\n }\r\n });\r\n }\r\n\r\n getSelectboxStyle() {\r\n let myStyles = {};\r\n if (this.data.isSelectboxInsertManualData) {\r\n this.data.width = this.data.width == \"\" ? \"100%\" : this.data.width;\r\n myStyles = {\r\n 'width': \"100% !important\",\r\n 'display': \"table-cell\",\r\n };\r\n //myStyles[\"border-right\"] = \"0px\";\r\n // myStyles[\"display\"] = \"table-cell\";\r\n //myStyles[\"border-left\"] = \"0px\";\r\n //myStyles[\"border-top-left-radius\"] = \"0px\";\r\n //myStyles[\"border-bottom-left-radius\"] = \"0px\";\r\n // myStyles[\"width\"] = \"100% !important\";\r\n }\r\n //let myStyles = {\r\n // 'width': \"100% !important\",\r\n // 'display': \"table-cell\", \r\n //};\r\n\r\n //if (this.data.suffix && this.data.suffix.length > 0) {\r\n\r\n // myStyles[\"border-top-right-radius\"] = \"0px\";\r\n // myStyles[\"border-bottom-right-radius\"] = \"0px\";\r\n //}\r\n\r\n //if (this.data.prefix && this.data.prefix.length > 0) {\r\n // myStyles[\"border-left\"] = \"0px\";\r\n // myStyles[\"border-top-left-radius\"] = \"0px\";\r\n // myStyles[\"border-bottom-left-radius\"] = \"0px\";\r\n //}\r\n\r\n return myStyles;\r\n }\r\n\r\n runtimeDatasourcePopup = false;\r\n saveRuntimeDataSource() {\r\n this.data.valueExpr = \"value\";\r\n this.data.displayExpr = \"text\";\r\n this.runtimeDatasourcePopup = false;\r\n\r\n this.selectBoxItem.instance.getDataSource().reload();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.setRuntimeDataSource();\r\n }\r\n setRuntimeDataSource() {\r\n\r\n let runtimeSelectbox = this.componentService.runtimeSelectboxDatasource.find(x => x.componentId == this.data.id);\r\n if (runtimeSelectbox) {\r\n runtimeSelectbox.dataSource = this.data.dataSource;\r\n }\r\n else {\r\n this.componentService.runtimeSelectboxDatasource.push({ componentId: this.data.id, dataSource: this.data.dataSource });\r\n }\r\n }\r\n selectboxInsertManualData(eVal) {\r\n if (this.data.isSelectboxInsertManualData) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.data.desktopDatasource = null;\r\n this.data.isManual = true;\r\n }\r\n }\r\n selectboxInsertManualDataPopup() {\r\n this.data.isManual = true;\r\n this.runtimeDatasourcePopup = true;\r\n }\r\n openDataPopup(type) {\r\n this.isFromDataSource = type == \"1\";\r\n if (this.isFromDataSource) {\r\n this.data.isManual = false;\r\n let selectboxes = this.componentService.getComponentsByType(\"selectbox\", this.anotherPopupId);\r\n this.selecboxComponents = [];\r\n if (selectboxes) {\r\n selectboxes.forEach(item => {\r\n if (item.id != this.data.id) {\r\n let element: any = {};\r\n element.id = item.id;\r\n element.name = this.componentService.getLang(this.lang, item.language).Label;\r\n this.selecboxComponents.push(element);\r\n }\r\n });\r\n }\r\n //this.dataSources = this.componentService.getComponentsByType(\"datasource\");\r\n }\r\n else {\r\n this.data.isManual = true;\r\n }\r\n\r\n this.dataSourcePopup = true;\r\n }\r\n\r\n saveDataSource() {\r\n if (this.data.isManual && this.data.dataStorage.connectionId > 0 && this.data.dataStorage.query != \"\") {\r\n let msg = \"\" + this.languageLocal.messageSqlLinkDeleted + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.data.dataStorage.connectionId = 0;\r\n this.data.dataStorage.query = \"\";\r\n this.dataSourcePopup = false;\r\n this.data.valueExpr = \"value\";\r\n this.data.displayExpr = \"text\";\r\n }\r\n });\r\n }\r\n else {\r\n\r\n if (this.data.isManual) {\r\n this.data.valueExpr = \"value\";\r\n this.data.displayExpr = \"text\";\r\n }\r\n\r\n this.dataSourcePopup = false;\r\n }\r\n }\r\n\r\n resetDataSources() {\r\n this.data.dataSourceKey = \"\";\r\n this.data.dataSource = [];\r\n\r\n notify(this.languageLocal.notifyDataReset, \"success\", 3000);\r\n }\r\n\r\n apply() {\r\n this.executeScript();\r\n }\r\n\r\n prepareGrid() {\r\n new CustomStore({\r\n key: \"Id\",\r\n load: () => this.data.dataSource,\r\n insert: (values) => this.insert(JSON.stringify(values)),\r\n update: (key, values) => this.update(key, JSON.stringify(values)),\r\n remove: (key) => this.remove(key)\r\n });\r\n }\r\n\r\n executeExp() {\r\n this.eventEmitterService.executeExpretion(this.anotherPopupId);\r\n }\r\n\r\n insert(values: any = {}): any {\r\n this.data.dataSource.push(values);\r\n }\r\n\r\n update(key, values: any = {}): any {\r\n const index = this.data.dataSource.findIndex(item => item.key === key);\r\n this.data.dataSource[index] = values;\r\n }\r\n\r\n remove(key): any {\r\n const index = this.data.dataSource.findIndex(item => item.key === key);\r\n this.data.dataSource.splice(index, 1);\r\n }\r\n\r\n monacoOnInit() {\r\n this.isMonacoLoaded = true;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n\r\n registeredLanguage: any;\r\n setCustomKeywords(monaco) {\r\n if (this.registeredLanguage)\r\n this.registeredLanguage.dispose();\r\n\r\n this.registeredLanguage = monaco.languages.registerCompletionItemProvider('plaintext', {\r\n provideCompletionItems: () => {\r\n var suggestions = [];\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n for (let i = 0; i < elements.length; i++) {\r\n suggestions.push({\r\n label: elements[i],\r\n kind: monaco.languages.CompletionItemKind.Snippet,\r\n insertText: \"\" + elements[i] + \"\",\r\n insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\r\n documentation: 'method'\r\n })\r\n }\r\n return { suggestions: suggestions };\r\n }\r\n });\r\n }\r\n\r\n formElements: any;\r\n openChamgeEventPopup() {\r\n this.isMonacoLoaded = false;\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n this.formElements = elements.filter(f => f != this.data.id);\r\n this.sqlScriptModel = new SqlScriptModel();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n this.showChamgeEventPopup = true;\r\n }\r\n\r\n showFunctionSettingPopup: any = false;\r\n isMonacoFuncParentLoaded: any = false;\r\n functionScript = { code: \"\", elementId: \"\", column: \"\" };\r\n functionScriptIndex = -1;\r\n openFunctionSettingPopup() {\r\n //this.functionScript.id = 0;\r\n this.functionScriptIndex = -1;\r\n this.functionScript.code = \"\";\r\n this.functionScript.elementId = \"\";\r\n this.functionScript.column = \"\";\r\n this.formElementsScripts = [];\r\n\r\n this.isMonacoFuncLoaded = true;\r\n this.showFunctionSettingPopup = true;\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.formComponentsScripts = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n\r\n\r\n setTimeout(() => { this.isMonacoFuncParentLoaded = true; }, 1000);\r\n }\r\n saveFuncParam() {\r\n if (this.functionScript.code != \"\" && this.functionScript.elementId != \"\") {\r\n let functionScriptModel = this.componentService.cloneModel(this.functionScript);\r\n if (typeof this.data.functionScripts == \"undefined\") this.data.functionScripts = [];\r\n\r\n if (this.functionScriptIndex == -1) {\r\n this.data.functionScripts.push(functionScriptModel);\r\n }\r\n else {\r\n let dataFunctionScript = this.data.functionScripts[this.functionScriptIndex];\r\n dataFunctionScript.code = functionScriptModel.code;\r\n dataFunctionScript.elementId = functionScriptModel.elementId;\r\n dataFunctionScript.column = functionScriptModel.column;\r\n }\r\n this.functionScriptIndex = -1;\r\n this.functionScript.code = \"\";\r\n this.functionScript.elementId = \"\";\r\n this.functionScript.column = \"\";\r\n this.formElementsScripts = [];\r\n }\r\n }\r\n updateFunctionScript(index) {\r\n this.functionScriptIndex = index;\r\n let dataFunctionScript = this.data.functionScripts[this.functionScriptIndex];\r\n this.functionScript.code = dataFunctionScript.code;\r\n this.functionScript.elementId = dataFunctionScript.elementId;\r\n this.functionScript.column = dataFunctionScript.column;\r\n }\r\n deleteFunctionScript(index) {\r\n this.data.functionScripts.splice(index, 1);\r\n }\r\n isMonacoFuncLoaded: any = false;\r\n monacoFunctionOnInit(e) {\r\n\r\n this.isMonacoFuncLoaded = false;\r\n let monaco = window['monaco'];\r\n this.setCustomKeywords(monaco);\r\n }\r\n\r\n colShorting(event: CdkDragDrop) {\r\n moveItemInArray(this.data.functionScripts, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n onChangeformElementsScriptsValue(e) {\r\n if (e.value != \"\") {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let fCompms = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let fCompm = fCompms.find(x => x.id == e.value);\r\n if (fCompm.type == \"gallery\") {\r\n\r\n // = this.setFormElementsScripts(fCompm);// fCompm.storage.sqlHideColumns.map(m => m.name);\r\n this.setFormElementsScripts(fCompm);\r\n this.classFormComponent = \"col-md-6\";\r\n this.classFormElements = \"col-md-6\";\r\n }\r\n else {\r\n this.classFormComponent = \"col-md-12\";\r\n this.classFormElements = \"col-md-6 hidden-element\";\r\n }\r\n }\r\n }\r\n setFormElementsScripts(dataGallery) {\r\n let _return = [];\r\n if (dataGallery.storage.query != \"\" && dataGallery.storage.connectionStringId > 0) {\r\n this.genericService.executeQuerySecurited(dataGallery.storage.query, dataGallery.storage.connectionStringId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n\r\n let allColumnsSql = Object.keys(result[0]);\r\n let keysSearch = [];\r\n keysSearch = allColumnsSql.filter(f =>\r\n f != dataGallery.storage.keyColumn);\r\n\r\n keysSearch.forEach(item => {\r\n this.formElementsScripts.push(item);\r\n });\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n //isGalleryType = false;\r\n onChangeFormElementsValue(e) {\r\n // \r\n //this.isGalleryType = false;\r\n let _val = e.value;\r\n if (_val) {\r\n\r\n //let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n //let elements = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n //let _valType = elements.find(f => f.id == _val);\r\n //if (_valType && _valType.type == \"gallery\") {\r\n // this.isGalleryType = true;\r\n //}\r\n }\r\n }\r\n saveSqlScript() {\r\n let model = this.componentService.cloneModel(this.sqlScriptModel);\r\n\r\n if (model.id > 0) {\r\n let scr = this.data.sqlScripts.find(f => f.id == model.id);\r\n scr.connectionId = model.connectionId;\r\n scr.elementId = model.elementId;\r\n scr.query = model.query;\r\n }\r\n else {\r\n model.id = this.data.sqlScripts.length + 1;\r\n this.data.sqlScripts.push(model);\r\n }\r\n\r\n this.sqlScriptModel = new SqlScriptModel();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n }\r\n\r\n updateSqlScript(i) {\r\n let scr = this.data.sqlScripts[i];\r\n this.sqlScriptModel = new SqlScriptModel();\r\n this.sqlScriptModel.id = scr.id;\r\n this.sqlScriptModel.connectionId = scr.connectionId;\r\n this.sqlScriptModel.elementId = scr.elementId;\r\n this.sqlScriptModel.query = scr.query;\r\n }\r\n\r\n deleteSqlScript(i) {\r\n this.data.sqlScripts.splice(i, 1);\r\n }\r\n\r\n clearScriptRecursive(componentId, isShowComfirm = true) {\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let currentComp = curentComponents.find(el => el.id == componentId)\r\n\r\n if (currentComp) {\r\n this.clearScriptCode(componentId, currentComp, isShowComfirm);\r\n }\r\n else if (this.componentService.tempDatagridPopupComponent.components.length > 0) {\r\n\r\n if (this.componentService.datagridColumnHasUserChanges[componentId] == false) {\r\n let _selectElement = this.componentService.tempDatagridPopupComponent.components.find(x => x.id == componentId);\r\n this.clearScriptCode(componentId, _selectElement, isShowComfirm);\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n clearScriptCode(componentId, currentComp, isShowComfirm = true) {\r\n if (this.data.id != componentId) {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, componentId, \"clean_element\", null, isShowComfirm);\r\n }\r\n\r\n if (typeof currentComp.sqlScripts != \"undefined\" && typeof currentComp.sqlScripts.length != \"undefined\" && currentComp.sqlScripts.length > 0) {\r\n currentComp.sqlScripts.forEach(el => {\r\n this.clearScriptRecursive(el.elementId, isShowComfirm)\r\n })\r\n }\r\n }\r\n\r\n\r\n onChangeSelectedDatagrid(event) {\r\n\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, ViewChild, ElementRef, AfterViewInit, HostListener } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { ComponentService } from '../component.service';\r\nimport { EventEmitterService } from '../../shared/services';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-signature',\r\n templateUrl: './signature.component.html',\r\n styleUrls: ['./signature.component.css']\r\n})\r\nexport class DxSignatureComponent implements ComponentParameters, OnInit, AfterViewInit {\r\n // Default definitions\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() disabled: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showDisplay: any = \"block\";\r\n\r\n // Upload Variable\r\n uploadedFiles: any = [];\r\n uploadResult = { isShow: false, status: \"success\", message: \"\" };\r\n totalSize: any = 0;\r\n\r\n // EmptyPad is declared as clean pad to compare sigPad\r\n @ViewChild('emptyPad', { static: false }) emptyPad: ElementRef;\r\n @ViewChild('sigPad', { static: false }) sigPad: ElementRef;\r\n public context: CanvasRenderingContext2D;\r\n public emptyPadContext: CanvasRenderingContext2D;\r\n\r\n isDrawing = false; //Drawing something on mouseDown or mouseMove\r\n img = null; // Base64 value\r\n\r\n invokeChangeEventLocal: Subscription;\r\n invokeButtonClickChangeEventLocal: Subscription;\r\n invokeWarningChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n\r\n borderColor = \"#dedede\"\r\n\r\n constructor(private eventEmitterService: EventEmitterService, private componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef,\r\n public instanceService: InstanceService, private domSanitizer: DomSanitizer) {\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n\r\n if (sub.data) {\r\n this.data.valueTemp = [];\r\n this.data.valueTemp.push(sub.data);\r\n }\r\n else this.data.valueTemp = [];\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n }\r\n });\r\n\r\n this.invokeButtonClickChangeEventLocal = this.eventEmitterService.invokeButtonClick.subscribe(sub => {\r\n this.save();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n\r\n this.invokeWarningChangeEventLocal = this.eventEmitterService.invokeWarningChangeEvent.subscribe(sub => {\r\n this.changeToWarningColor()\r\n });\r\n\r\n }\r\n\r\n changeToWarningColor() {\r\n if (this.data.required && this.isPadEmpty()) {\r\n this.borderColor = \"#d9534f\"\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n changeToDefaultColor() {\r\n\r\n this.borderColor = \"#dedede\"\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n showImage = false\r\n ngOnInit() {\r\n this.clear()\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.data.width = this.data.width > 0 ? this.data.width : 90;\r\n this.data.height = this.data.height > 0 ? this.data.height : 90;\r\n\r\n if (typeof this.data.valueTemp == \"undefined\")\r\n this.data.valueTemp = [];\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n \r\n this.instanceService.getFormFilesData(this.data.value).subscribe((s: any) => {\r\n\r\n\r\n if (!!s && !!s.files && s.files.length > 0) {\r\n\r\n this.showImage = true\r\n\r\n s.files.forEach(data => {\r\n let document: any = {\r\n id: data.id,\r\n base64BlobData: data.fileData,\r\n name: data.fileName,\r\n fileType: data.fileType,\r\n extension: data.fileExtension,\r\n size: data.fileSize,\r\n isImg: data.isImg\r\n };\r\n document.src = 'data:image/jpeg;base64,' + document.base64BlobData;\r\n\r\n this.img = document.src\r\n\r\n this.getSafeUrl()\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n })\r\n }\r\n\r\n\r\n \r\n })\r\n\r\n }\r\n\r\n getSafeUrl() {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.img);\r\n }\r\n\r\n ngAfterViewInit() {\r\n var _this = this;\r\n setTimeout(() => {\r\n setTimeout(() => {\r\n this.clear()\r\n\r\n try { _this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }, 100);\r\n }, 100);\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n // Upload Events\r\n onValueChanged() {\r\n let errors = [];\r\n this.data.valueTemp = [];\r\n if (!this.isPadEmpty()) {\r\n //this.data.value = [];\r\n this.totalSize = 0;\r\n this.uploadResult.isShow = true;\r\n this.uploadResult.status = \"primary\";\r\n this.uploadResult.message = this.languageLocal.loadingFiles;\r\n\r\n this.createDocument().then(document => {\r\n this.data.valueTemp.push(document);\r\n this.data.isPadEmpty = this.isPadEmpty();\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n if (errors.length) {\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\", \");\r\n }\r\n else {\r\n this.uploadResult.status = \"success\";\r\n this.uploadResult.message = this.languageLocal.filesLoaded;\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n createDocument() {\r\n return new Promise(resolve => {\r\n fetch(this.img)\r\n .then(res => res.blob())\r\n .then(blob => {\r\n var date = new Date()\r\n var reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n let fileName = \"signature-\" + date.getFullYear() + \"-\" + (date.getMonth() + 1) + \"-\" + date.getDate() + \" \" + date.getHours() + \".\" + date.getMinutes() + '.' + date.getMilliseconds() + \".jpg\";\r\n let fileType: string = \"image/jpeg\";\r\n let base64BlobData: any = args.target.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n //let fileSize = file.size;\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: blob.type,\r\n src: 'data:' + fileType + ';base64,' + base64BlobData,\r\n extension: fileExtension,\r\n size: blob.size,\r\n isImg: true\r\n };\r\n resolve(document);\r\n\r\n }\r\n }\r\n })\r\n\r\n });\r\n }\r\n\r\n // Component Functions down below\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n onMouseUp(e) {\r\n this.isDrawing = false;\r\n }\r\n\r\n onTouchEnd(e) {\r\n this.isDrawing = false;\r\n }\r\n\r\n onMouseDown(e) {\r\n this.isDrawing = true;\r\n\r\n const coords = this.relativeCoords(e,'mouse');\r\n this.context.moveTo(coords.x, coords.y);\r\n }\r\n\r\n onTouchDown(e) {\r\n this.isDrawing = true;\r\n\r\n const coords = this.relativeCoords(e, 'touch');\r\n this.context.moveTo(coords.x, coords.y);\r\n }\r\n\r\n onMouseMove(e) {\r\n if (this.isDrawing) {\r\n const coords = this.relativeCoords(e,'mouse');\r\n this.context.lineTo(coords.x, coords.y);\r\n this.context.stroke();\r\n }\r\n }\r\n\r\n onTouchMove(e) {\r\n if (this.isDrawing) {\r\n const coords = this.relativeCoords(e,'touch');\r\n this.context.lineTo(coords.x, coords.y);\r\n this.context.stroke();\r\n }\r\n }\r\n\r\n // type is declared to understand touch or mouse event\r\n // type can be 'touch' or 'mouse'\r\n private relativeCoords(event, type) {\r\n const bounds = event.target.getBoundingClientRect();\r\n let x = null\r\n let y = null\r\n\r\n if (type == 'touch') {\r\n x = event.touches[0].clientX - bounds.left;\r\n y = event.touches[0].clientY - bounds.top;\r\n } else if (type == 'mouse') {\r\n x = event.clientX - bounds.left;\r\n y = event.clientY - bounds.top;\r\n }\r\n\r\n return { x: x, y: y };\r\n }\r\n\r\n isPadEmpty() {\r\n if (!!this.sigPad && !!this.emptyPad && !!this.sigPad.nativeElement && !!this.emptyPad.nativeElement) {\r\n const img = this.sigPad.nativeElement.toDataURL(\"image/jpg\");\r\n const empty = this.emptyPad.nativeElement.toDataURL(\"image/jpg\");\r\n if (img == empty) {\r\n this.data.valueTemp = []\r\n return true;\r\n }\r\n this.changeToDefaultColor()\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n clearButton() {\r\n this.showImage = false\r\n this.clear()\r\n }\r\n\r\n clear() {\r\n if (!!this.sigPad && !!this.emptyPad && !!this.sigPad.nativeElement && !!this.emptyPad.nativeElement) {\r\n this.data.valueTemp = []\r\n this.img = null\r\n\r\n this.context = this.sigPad.nativeElement.getContext('2d');\r\n this.context.clearRect(0, 0, this.sigPad.nativeElement.width, this.sigPad.nativeElement.height);\r\n this.context.beginPath();\r\n this.context.fillStyle = \"white\";\r\n this.context.fillRect(0, 0, this.sigPad.nativeElement.width, this.sigPad.nativeElement.height);\r\n\r\n this.emptyPadContext = this.emptyPad.nativeElement.getContext('2d');\r\n this.emptyPadContext.clearRect(0, 0, this.emptyPad.nativeElement.width, this.emptyPad.nativeElement.height);\r\n this.emptyPadContext.beginPath();\r\n this.emptyPadContext.fillStyle = \"white\";\r\n this.emptyPadContext.fillRect(0, 0, this.emptyPad.nativeElement.width, this.emptyPad.nativeElement.height);\r\n }\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n save() {\r\n if (!this.isPadEmpty()) {\r\n this.img = this.sigPad.nativeElement.toDataURL(\"image/jpg\");\r\n this.onValueChanged()\r\n } else {\r\n \r\n }\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { DndDropEvent, DropEffect } from 'ngx-drag-drop';\r\nimport { CdkDragDrop, CdkDragStart, CdkDragEnd, moveItemInArray, copyArrayItem, transferArrayItem } from '@angular/cdk/drag-drop';\r\n\r\nimport { ComponentService } from '../component.service';\r\nimport { EventEmitterService, AppInfoService } from '../../shared/services';\r\n\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { debug } from 'console';\r\n\r\n@Component({\r\n selector: 'app-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss']\r\n})\r\nexport class DxTabsComponent implements ComponentParameters {\r\n @Input() data: any;\r\n @Input() lang: any;\r\n @Input() isEdit: any;\r\n @Input() anotherPopupId: number = 0;\r\n queryArray = { hide: { key: \"hide\", value: \"false\", type: \"string\" } }\r\n query = JSON.stringify(this.queryArray)\r\n filterMetadata = { count: 0 };\r\n showDisplay: any = \"block\";\r\n\r\n onGridDragClass: string = \"active\";\r\n actions = [\r\n {\r\n icon: \"edit\",\r\n alignment: \"center\",\r\n hint: \"Center\",\r\n action: \"edit\"\r\n },\r\n {\r\n icon: \"trash\",\r\n alignment: \"right\",\r\n hint: \"Delete\",\r\n action: \"delete\"\r\n },\r\n ];\r\n\r\n // defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n panelPopup: boolean = false;\r\n panelPermissionPopup: boolean = false;\r\n selectedPanelPermission: any;\r\n selectedPanelLanguage: any;\r\n languageLocal: any = \"\";\r\n \r\n constructor(private componentService: ComponentService, private eventEmitterService: EventEmitterService, public appInfo: AppInfoService, public changeDetectorRef: ChangeDetectorRef) {\r\n\r\n this.onReorder = this.onReorder.bind(this);\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n //\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n if (!this.isEdit) this.checkUserAuthorization();\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n\r\n this.data.options = this.data.options ? this.data.options : { \"bgColor\": \"rgba(255, 255, 255, 1)\", \"color\": \"rgb(0, 0, 0)\" };\r\n\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n // this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n // debugger;\r\n console.log(this.data.items)\r\n if (this.data.items.length > 0) {\r\n this.data.items.forEach(el => {\r\n if (typeof el.id == \"undefined\") {\r\n el.id = el.title\r\n }\r\n if (typeof el.language == \"undefined\") {\r\n el.language = [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Title\": el.title\r\n }\r\n ]\r\n }\r\n console.log(el)\r\n })\r\n this.data.items.forEach(el => {\r\n let find = el.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n el.title = find.Title\r\n } else {\r\n el.title = el.id\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n tabSelectionChanged(event) {\r\n this.eventEmitterService.menuTabComponentChange(null);\r\n this.eventEmitterService.closeTextAreaMicEvent(null);\r\n }\r\n\r\n onEditPopopShown() {\r\n this.tempDataItems = this.data.items\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (!this.data.hide && this.data.outsideVisible ? \"block\" : \"none\") : \"block\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n\r\n checkUserAuthorization() {\r\n \r\n for (let i = 0; i < this.data.items.length; i++) {\r\n let userId = this.appInfo.currentUser.id;\r\n let rGroupIndex = this.data.items[i].permissions.readonlyGroup.map(m => m.users.indexOf(userId) > -1).findIndex(x => x);\r\n let rUsersIndex = this.data.items[i].permissions.readonlyUsers.indexOf(userId);\r\n let hGroupIndex = this.data.items[i].permissions.hideGroup.map(m => m.users.indexOf(userId) > -1).findIndex(x => x);\r\n let hUsersIndex = this.data.items[i].permissions.hideUsers.indexOf(userId);\r\n\r\n let isHide = hGroupIndex != -1 || hUsersIndex != -1;\r\n let isReadonly = rGroupIndex != -1 || rUsersIndex != -1;\r\n\r\n if (isHide) this.data.items[i].hide = true;\r\n else this.data.items[i].hide = false;\r\n if (isReadonly) this.data.items[i].readonly = true;\r\n else this.data.items[i].readonly = false;\r\n }\r\n }\r\n\r\n itemClick(e, item, list) {\r\n if (e.itemData.action == \"edit\") {\r\n this.eventEmitterService.showPopop(item.uuid);\r\n //item.showEditPop = true;\r\n }\r\n else if (e.itemData.action == \"delete\") {\r\n let msg = item.type == \"grid\" || item.type == \"panel\" ? \"\" + this.languageLocal.theseComponentElementsDeleted + \"\" : \"\" + this.languageLocal.messageSure + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) this.removeField(item, list);\r\n });\r\n }\r\n }\r\n\r\n\r\n dragStart() {\r\n this.onGridDragClass = \"active\";\r\n }\r\n\r\n\r\n onDragEnded(event: CdkDragEnd): void {\r\n\r\n //event.source._dragRef.reset();\r\n }\r\n cdkGridDrop(event: CdkDragDrop, list?: any[]) {\r\n\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n } else {\r\n let type = event.previousContainer.element.nativeElement.dataset.type;\r\n if (type && type == \"copy\") {\r\n let field: any = event.previousContainer.data[event.previousIndex];\r\n if (field.type != \"tabs\") {\r\n localStorage.setItem(\"currentFieldTabs\", JSON.stringify(event.previousContainer.data[event.previousIndex]));\r\n let currentFieldTab: any = JSON.parse(localStorage.getItem(\"currentFieldTabs\"));\r\n localStorage.removeItem(\"currentFieldTabs\");\r\n //localStorage.removeItem(key);localStorage.clear();\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n currentFieldTab.id = this.componentService.createId(currentFieldTab.type, currentFormSelected.components, this.anotherPopupId);\r\n list.splice(event.currentIndex, 0, currentFieldTab);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.invalidTarget, \"warning\", 300);\r\n }\r\n\r\n /*copyArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex);*/\r\n }\r\n else {\r\n transferArrayItem(event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex);\r\n }\r\n }\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n this.onGridDragClass = \"\";\r\n }\r\n\r\n removeField(item, list) {\r\n list.splice(list.indexOf(item), 1);\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n this.componentService.showAlert(this.languageLocal.deleted, \"success\", 300);\r\n }\r\n\r\n // tempDataItems : In case of tab order not saved do nothing\r\n tempDataItems = []\r\n onReorder(e) {\r\n try {\r\n\r\n let temp = this.data.items[e.fromIndex]\r\n\r\n this.tempDataItems = this.data.items;\r\n\r\n this.tempDataItems.splice(e.fromIndex, 1);\r\n\r\n this.tempDataItems.splice(e.toIndex, 0, temp);\r\n\r\n } catch (err) {\r\n console.log(err)\r\n }\r\n\r\n }\r\n\r\n onSaveTabs() {\r\n this.panelPopup = false\r\n let data = JSON.parse(JSON.stringify(this.data.items))\r\n this.data.items = data\r\n\r\n if (this.data.items.length > 0) {\r\n this.data.items.forEach(el => {\r\n if (typeof el.id == \"undefined\") {\r\n el.id = el.title\r\n }\r\n if (typeof el.language == \"undefined\") {\r\n el.language = [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Title\": el.title\r\n }\r\n ]\r\n }\r\n console.log(el)\r\n })\r\n this.data.items.forEach(el => {\r\n let find = el.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n el.title = find.Title\r\n } else {\r\n el.title = el.id\r\n }\r\n })\r\n }\r\n\r\n }\r\n\r\n addPanel() {\r\n //debugger\r\n var panel = {\r\n id: \"Tab\" + \" \" + (this.data.items.length + 1),\r\n title: \"Tab\" + \" \" + (this.data.items.length + 1),\r\n permissions: {\r\n \"readonlyGroup\": [],\r\n \"readonlyUsers\": [],\r\n \"hideGroup\": [],\r\n \"hideUsers\": []\r\n },\r\n language: [{\r\n \"Code\": \"trTR\",\r\n \"Title\": \"Tabs\"\r\n }],\r\n components: []\r\n }\r\n\r\n /*if (panel.id != 0) {\r\n let updateIndex = this.data.title.findIndex(f => f.id == panel.id)\r\n if (typeof updateIndex != \"undefined\") {\r\n this.data.items[updateIndex] = panel\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n } else {\r\n if (this.data.items.length == 0)\r\n panel.id = 1\r\n else if (this.data.items.length > 0)\r\n panel.id = this.data.items[this.data.items.length - 1].id + 1\r\n\r\n this.data.items.push(panel);\r\n console.log(panel)\r\n this.componentService.createCdkList(this.anotherPopupId);\r\n }*/\r\n\r\n let data = JSON.parse(JSON.stringify(this.data.items))\r\n data.push(panel);\r\n this.data.items = data;\r\n this.componentService.createCdkList(this.anotherPopupId);\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n\r\n }\r\n\r\n\r\n deletePanel(id) {\r\n //debugger;\r\n let index = this.data.items.findIndex(el => el.id == id)\r\n this.data.items.splice(index, 1);\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n\r\n addPermission(panel) {\r\n this.selectedPanelPermission = panel.permissions;\r\n this.panelPermissionPopup = true;\r\n }\r\n addLanguage(panel) {\r\n this.selectedPanelLanguage = panel.language;\r\n this.languagePopup = true;\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n saveLanguagePopup() {\r\n // debugger;\r\n this.data.items.forEach(el => {\r\n let find = el.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n el.title = find.Title\r\n } else {\r\n el.title = el.id\r\n }\r\n })\r\n this.languagePopup = false;\r\n }\r\n\r\n openAddTabPopup() {\r\n //S debugger;\r\n this.panelPopup = true\r\n if (this.data.items.length > 0) {\r\n this.data.items.forEach(el => {\r\n if (typeof el.id == \"undefined\") {\r\n el.id = el.title\r\n }\r\n if (typeof el.language == \"undefined\") {\r\n el.language = [\r\n {\r\n \"Code\": \"trTR\",\r\n \"Title\": el.title\r\n }\r\n ]\r\n }\r\n console.log(el)\r\n })\r\n this.data.items.forEach(el => {\r\n let find = el.language.find(f => f.Code.toLowerCase() == this.lang.toLowerCase())\r\n if (typeof find != \"undefined\" && typeof find.Title != \"undefined\" && find.Title != \"\") {\r\n el.title = find.Title\r\n } else {\r\n el.title = el.id\r\n }\r\n })\r\n }\r\n }\r\n\r\n}\r\n","\r\nimport { Component, OnInit, Input, ChangeDetectorRef, NgZone, HostListener, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { GenericService } from '../../shared/services/data/generic.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n//declare var MediaRecorder: any;\r\ndeclare var webkitSpeechRecognition: any;\r\ndeclare var webkitSpeechGrammarList: any;\r\ndeclare var webkitSpeechRecognitionEvent: any;\r\n\r\n\r\ndeclare var SpeechRecognition: any;\r\ndeclare var SpeechRecognitionEvent: any;\r\ndeclare var SpeechGrammarList: any;\r\n\r\ndeclare var SpeechRecognition: any;\r\ndeclare var SpeechGrammarList: any;\r\n\r\n@Component({\r\n selector: 'textarea-component',\r\n templateUrl: './textarea.component.html',\r\n styleUrls: ['./textarea.component.css']\r\n})\r\nexport class DxTextareaComponent implements ComponentParameters, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n invokeChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n getTextboxStyles: any;\r\n fontWeight = [{ value: \"normal\", text: \"Normal\" }, { value: \"bold\", text: \"Bold\" }]\r\n fontStyle = [{ value: \"normal\", text: \"Normal\" }, { value: \"italic\", text: \"Italic\" }]\r\n isTextAreaCaptureMod = true;\r\n tempValueCapture :any= \"\";\r\n constructor(private eventEmitterService: EventEmitterService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public componentService: ComponentService,\r\n private zone: NgZone,\r\n public genericService: GenericService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n if (sub.elementId == this.data.id) {\r\n this.getTextboxStyles = this.getTextboxStylesFunc();\r\n\r\n if (!this.data.isUserChange) {\r\n if (sub.data != null && typeof sub.data != \"undefined\") this.data.value = sub.data;\r\n else if (sub.elementId == \"clean_element\" || sub.value == \"clean_element\") this.data.value = \"\";\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n });\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n }\r\n \r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n this.stopRecognizing();\r\n }\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.stopRecognizing();\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n this.eventEmitterService.invokecloseTextAreaMicChageEvent.subscribe(sub => {\r\n this.stopRecognizing();\r\n });\r\n this.getTextboxStyles = this.getTextboxStylesFunc();\r\n\r\n this.data.fontWeight = typeof this.data.fontWeight == \"undefined\" ? \"normal\" : this.data.fontWeight;\r\n this.data.fontStyle = typeof this.data.fontStyle == \"undefined\" ? \"normal\" : this.data.fontStyle;\r\n\r\n this.eventEmitterService.invokechangeToCaptureModeTextAreaEvent.subscribe(sub => {\r\n debugger\r\n if (sub.data.type == \"textarea\") {\r\n\r\n if (sub.data.isCapture == true) {\r\n this.tempValueCapture = JSON.parse(JSON.stringify(this.data.value))\r\n this.tempValueCapture = this.replaceAll(this.tempValueCapture)\r\n this.isTextAreaCaptureMod = false;\r\n\r\n } else {\r\n this.tempValueCapture = \"\"\r\n this.isTextAreaCaptureMod = true;\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n \r\n\r\n });\r\n //invokeChangeCaptureMode subscribe ol\r\n // eğer capture mod true ise \r\n // tempValue replace et\r\n // b1 set et\r\n // eğer capture mod bittyse false ise\r\n // tempValue boşa al\r\n // B1 eski haline\r\n }\r\n\r\n disableElements() {\r\n return typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false;\r\n }\r\n\r\n convertBlobToBase64 = blob => new Promise((resolve, reject) => {\r\n const reader = new FileReader;\r\n reader.onerror = reject;\r\n reader.onload = () => {\r\n resolve(reader.result);\r\n };\r\n reader.readAsDataURL(blob);\r\n });\r\n replaceAll(text) {\r\n console.log(text);\r\n if (text.includes('\\n')) {\r\n text = text.replace('\\n', '
');\r\n text = this.replaceAll(text);\r\n }\r\n return text;\r\n }\r\n replaceAllBack(text) {\r\n if (text.includes('
')) {\r\n text = text.replace('
', '\\n');\r\n text = this.replaceAllBack(text);\r\n }\r\n console.log(text);\r\n return text;\r\n }\r\n getTextboxStylesFunc() {//text-transform: uppercase\r\n\r\n let myStyles = {\r\n 'text-transform': this.data.upperCaseLetter != null && this.data.upperCaseLetter != false ? 'uppercase' : 'none',\r\n 'font-weight': this.data.fontWeight,\r\n 'font-style': this.data.fontStyle,\r\n\r\n };\r\n //console.log(myStyles)\r\n return myStyles;\r\n }\r\n\r\n\r\n // deutschland\r\n globalLanguageList: any = [\r\n { id: 0, text: \"Türkçe\", val1: \"TR\", val2: \"tr\" },\r\n //{ id: 1, text: \"USA\", val1: \"US\", val2: \"en\" },\r\n { id: 1, text: \"English\", val1: \"EN\", val2: \"en\" },\r\n { id: 2, text: \"Français\", val1: \"FR\", val2: \"fr\" },\r\n { id: 3, text: \"Deutsche\", val1: \"DE\", val2: \"de\" },\r\n { id: 4, text: \"Español\", val1: \"ES\", val2: \"es\" },\r\n { id: 5, text: \"Italiano\", val1: \"IT\", val2: \"it\" },\r\n { id: 6, text: \"Pусский\", val1: \"RU\", val2: \"ru\" },\r\n { id: 7, text: \"日本語\", val1: \"JP\", val2: \"ja\" },\r\n { id: 8, text: \"中文\", val1: \"CN\", val2: \"cmn-Hans\" },\r\n { id: 9, text: \"한국어\", val1: \"KR\", val2: \"ko\" },\r\n { id: 10, text: \"हिन्दी\", val1: \"IN\", val2: \"hi\" },\r\n ];\r\n\r\n globalLanguageValue: any = 0;\r\n\r\n //onLanguageChange(event) {\r\n // \r\n // this.globalLanguageValue = this.globalLanguageValue;\r\n //}\r\n\r\n stopRecognizing() {\r\n if (this.recognizing) {\r\n this.selectedMic = null;\r\n this.recognition.onend = null;\r\n this.recognition.continuous = false;\r\n this.recognition.stop();\r\n this.recognizing = false;\r\n let fff = this.final_transcript;\r\n this.data.value = fff;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n @HostListener('window:sToTJS', ['$event'])\r\n speechToTextJSListener(event) {//\r\n if (this.selectedMic != null && this.selectedMic == this.data.id) {\r\n this.data.value = event.detail;\r\n }\r\n }\r\n @HostListener('window:sToTJSFinal', ['$event'])\r\n speechToTextJSFinalListener(event) {//\r\n if (this.selectedMic != null && this.selectedMic == this.data.id) {\r\n this.data.value = event.detail;\r\n }\r\n }\r\n\r\n final_transcript: any = '';\r\n interim_transcript: any = '';\r\n recognizing: any = false;\r\n recognition: any;\r\n selectedMic: any;\r\n speechToTextClick(id) {\r\n var _this = this;\r\n\r\n let _SpeechRecognition;\r\n let _SpeechGrammarList;\r\n let _SpeechRecognitionEvent;\r\n\r\n try {\r\n if (SpeechRecognition)\r\n _SpeechRecognition = SpeechRecognition\r\n else\r\n _SpeechRecognition = webkitSpeechRecognition\r\n\r\n if (SpeechGrammarList)\r\n _SpeechGrammarList = SpeechGrammarList\r\n else\r\n _SpeechGrammarList = webkitSpeechGrammarList\r\n\r\n }\r\n catch (e) {\r\n _SpeechRecognition = webkitSpeechRecognition\r\n _SpeechGrammarList = webkitSpeechGrammarList\r\n }\r\n\r\n\r\n if (this.recognizing) {\r\n this.stopRecognizing();\r\n }\r\n else {\r\n this.selectedMic = id\r\n this.recognition = new _SpeechRecognition();\r\n var speechRecognitionList = new _SpeechGrammarList();\r\n\r\n this.recognition.continuous = true;\r\n this.recognition.interimResults = true;\r\n this.recognition.lang = this.globalLanguageList[this.globalLanguageValue].val2 + \"-\" + this.globalLanguageList[this.globalLanguageValue].val1;\r\n //\"tr-TR\";\r\n\r\n this.recognition.start();\r\n\r\n //var grammar = '#JSGF V1.0 ISO8859-3;';\r\n //speechRecognitionList.addFromString(grammar, 1);\r\n //this.recognition.grammars = speechRecognitionList;\r\n\r\n this.recognition.onstart = function () {\r\n _this.recognizing = true;\r\n };\r\n\r\n this.recognition.onresult = function (event) {\r\n let interim_transcript = '';\r\n //if (typeof (event.results) == 'undefined') {\r\n // recognition.onend = null;\r\n // recognition.stop();\r\n\r\n // return;\r\n //}\r\n //if (!_this.recognizing) {\r\n // recognition.onend = null;\r\n // recognition.stop();\r\n // return;\r\n //}\r\n for (var i = event.resultIndex; i < event.results.length; ++i) {\r\n if (event.results[i].isFinal) {\r\n _this.final_transcript += event.results[i][0].transcript + \" \";\r\n } else {\r\n interim_transcript += event.results[i][0].transcript;\r\n }\r\n }\r\n\r\n // _this.data.value = interim_transcript ;\r\n if (interim_transcript) {\r\n window.dispatchEvent(new CustomEvent('sToTJS', { detail: interim_transcript }));\r\n }\r\n if (_this.final_transcript) {\r\n window.dispatchEvent(new CustomEvent('sToTJSFinal', { detail: _this.final_transcript }));\r\n }\r\n };\r\n\r\n }\r\n\r\n\r\n\r\n //this.zone.run(() => {\r\n\r\n // let _SpeechRecognition;\r\n // let _SpeechGrammarList;\r\n // let _SpeechRecognitionEvent;\r\n\r\n // try {\r\n // if (SpeechRecognition)\r\n // _SpeechRecognition = SpeechRecognition\r\n // else\r\n // _SpeechRecognition = webkitSpeechRecognition\r\n // }\r\n // catch (e) {\r\n // _SpeechRecognition = webkitSpeechRecognition\r\n // }\r\n\r\n // var recognition = new _SpeechRecognition();\r\n // recognition.continuous = true;\r\n // recognition.interimResults = true;\r\n // recognition.lang = \"tr-TR\";\r\n // recognition.start(); \r\n\r\n // //recognition.onstart = function () {\r\n // // this.recognizing = true;\r\n // //};\r\n\r\n // recognition.onresult = function (event) {\r\n // var interim_transcript = '';\r\n // if (typeof (event.results) == 'undefined') {\r\n // recognition.onend = null;\r\n // recognition.stop(); \r\n // return;\r\n // }\r\n // if (!this.recognizing) {\r\n // recognition.onend = null;\r\n // recognition.stop(); \r\n // return;\r\n // }\r\n // for (var i = event.resultIndex; i < event.results.length; ++i) {\r\n // if (event.results[i].isFinal) {\r\n // final_transcript += event.results[i][0].transcript;\r\n // } else {\r\n // interim_transcript += event.results[i][0].transcript;\r\n // }\r\n // }\r\n // final_transcript = capitalize(final_transcript);\r\n // final_span.innerHTML = linebreak(final_transcript);\r\n // interim_span.innerHTML = linebreak(interim_transcript);\r\n // if (final_transcript || interim_transcript) {\r\n // showButtons('inline-block');\r\n // }\r\n // };\r\n //}\r\n\r\n\r\n\r\n\r\n //});\r\n\r\n\r\n }\r\n\r\n tempValue = undefined\r\n onKeydown($event) {\r\n this.tempValue = JSON.parse(JSON.stringify(this.data.value))\r\n }\r\n\r\n\r\n isUserChangeCheck() {\r\n if (this.data.value == \"\") { // UserChange sıfırlanmak istenirse\r\n //this.data.isUserChange = false;\r\n //this.tempValue = undefined;\r\n } else {\r\n if (typeof this.tempValue != \"undefined\" && this.tempValue != this.data.value) {\r\n this.data.isUserChange = true;\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n\r\n onValueChanged(e) {\r\n this.isUserChangeCheck();\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport { AppInfoService, GenericService } from '../../shared/services';\r\nimport { debug } from 'console';\r\n\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\n\r\nexport class SqlScriptTextboxModel {\r\n id: number;\r\n connectionId: number;\r\n elementId: string;\r\n query: string;\r\n}\r\n\r\n@Component({\r\n selector: 'textbox-component',\r\n templateUrl: 'textbox.component.html',\r\n styleUrls: ['./textbox.component.css']\r\n})\r\nexport class DxTextboxComponent implements ComponentParameters, OnInit, OnDestroy {\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n\r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showDisplay: any = \"flex\";\r\n showDisplayBoolean = false;\r\n\r\n classFormComponent = \"col-md-12\";\r\n classFormElements = \"col-md-6 hidden-element\";\r\n\r\n systemInfoPage: any;\r\n systemValTemp: any = \"\";\r\n systemValTempActive: any = false;\r\n\r\n designerDataSourceList: any;\r\n designerDatasourceModel: any;\r\n getTextboxStyles: any;\r\n invokeChangeEventLocal: Subscription;\r\n invokeSaveSystemInfoEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n\r\n /* rules = {\r\n f: /[A-Za-z]/g, //yalnız harf\r\n g: /\\D/g, //harf ve sembol\r\n h: /[.*?\\d-$€'\"(){}&%#£!><|½^]/g, //numara ve sembol\r\n j:/./g, //hepsi\r\n } */\r\n\r\n stringInfo = [\r\n { value: \"all\", text: \"Hepsi\" },\r\n { value: \"letter\", text: \"Yalnız Harf\" },\r\n { value: \"number\", text: \"Yalnız Sayı\" },\r\n { value: \"letterandnumber\", text: \"Harf ve Numara\" },\r\n { value: \"letterandsymbol\", text: \"Harf ve Sembol\" },\r\n { value: \"numberandsymbol\", text: \"Numara ve Sembol\" },\r\n ];\r\n fontWeight = [{ value: \"normal\", text: \"Normal\" }, { value: \"bold\", text: \"Bold\" }]\r\n fontStyle = [{ value: \"normal\", text: \"Normal\" }, { value: \"italic\", text: \"Italic\" }]\r\n\r\n constructor(public appInfo: AppInfoService, private eventEmitterService: EventEmitterService,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n private genericService: GenericService,\r\n public componentService: ComponentService) {\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //component services'ten geliyor. Formbuilder set ediyorum.\r\n this.setLanguageToDatas()\r\n\r\n this.invokeChangeEventLocal = this.eventEmitterService.invokeChangeEvent.subscribe(sub => {\r\n\r\n if (sub.elementId == this.data.id) {\r\n if (!this.data.isUserChange) {\r\n if (sub.data) this.data.value = sub.data;\r\n else this.data.value = \"\";\r\n this.data.isUserChange = false;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n\r\n });\r\n \r\n this.invokeSaveSystemInfoEventLocal = this.eventEmitterService.invokeSaveSystemInfoEvent.subscribe(sub => {\r\n if (sub.elementId == this.data.id) {\r\n if (this.data.value == \"\" && this.systemValTemp != \"\") {\r\n \r\n this.data.value = this.systemValTemp;\r\n this.systemValTempActive = true;\r\n this.getTextboxStyles = this.getTextboxStylesFunc();\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n //else\r\n // this.systemValTempActive = false;\r\n }\r\n });\r\n\r\n this.systemInfoPage = this.componentService.systemInfoElements;\r\n\r\n }\r\n ngOnDestroy() {\r\n this.invokeChangeEventLocal.unsubscribe();\r\n this.invokeSaveSystemInfoEventLocal.unsubscribe();\r\n }\r\n\r\n connections: any = [];\r\n ngOnInit() {\r\n //\r\n if (typeof this.functionScript == \"undefined\")\r\n this.functionScript = { code: \"\", elementId: \"\", column: \"\" };\r\n\r\n this.data.isBarcode = typeof this.data.isBarcode === \"undefined\" ? false : this.data.isBarcode;\r\n\r\n this.connections = this.appInfo.RiverEntity.connections;\r\n\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (this.data.isAuto) {\r\n this.data.disabled = true;\r\n //this.data.value = this.data.autoText + this.componentService.currentForm.formNo;\r\n }\r\n this.data.upperCaseLetter = this.data.upperCaseLetter == null ? false : this.data.upperCaseLetter;\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n \r\n this.data.systemInfoId = typeof this.data.systemInfoId == \"undefined\" ? 0 : this.data.systemInfoId;\r\n if (this.data.value == \"{|STARTED-USER-NAME|}\" ||\r\n this.data.value == \"{|STARTED-USER-ID|}\" ||\r\n this.data.value == \"{|START-DATE|}\" ||\r\n this.data.value == \"{|PROCESS-INSTANCE-ID|}\" ||\r\n this.data.value == \"{|FORM-ID|}\") {\r\n this.data.value = \"\";\r\n this.systemValTemp = this.systemInfoPage.find(x => x.id == this.data.systemInfoId).value; \r\n }\r\n\r\n if (this.isEdit) {\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n }\r\n\r\n this.data.stringType = typeof this.data.stringType == \"undefined\" ? \"all\" : this.data.stringType;\r\n this.data.fontWeight = typeof this.data.fontWeight == \"undefined\" ? \"normal\" : this.data.fontWeight;\r\n this.data.fontStyle = typeof this.data.fontStyle == \"undefined\" ? \"normal\" : this.data.fontStyle;\r\n\r\n this.designerDatasourceModel = { ID: 0, NAME: \"\", SQLSTR: \"\" };\r\n this.fillDesignerDataSource();\r\n\r\n this.getTextboxStyles = this.getTextboxStylesFunc();\r\n\r\n let _this = this;\r\n setTimeout(() => {\r\n if (_this.data.systemInfoId != 0) {\r\n _this.onEnterKey(null);\r\n }\r\n }, 1500);\r\n\r\n this.data.isUserChange = typeof this.data.isUserChange == \"undefined\" ? false : this.data.isUserChange;\r\n // let length = this.data.maxLength;\r\n //this.data.mask.length = length;\r\n \r\n }\r\n\r\n showChamgeEventPopup: boolean = false;\r\n sqlScriptModel: SqlScriptTextboxModel;\r\n isMonacoLoaded: boolean = false;\r\n formElements: any;\r\n openChamgeEventPopup() {\r\n this.isMonacoLoaded = false;\r\n let elements = this.componentService.getComponentList(this.componentService.currentForm.components, this.anotherPopupId).map(m => m.id);\r\n this.formElements = elements.filter(f => f != this.data.id);\r\n this.sqlScriptModel = new SqlScriptTextboxModel();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n this.showChamgeEventPopup = true;\r\n }\r\n\r\n saveSqlScript() {\r\n let model = this.componentService.cloneModel(this.sqlScriptModel);\r\n\r\n if (model.id > 0) {\r\n let scr = this.data.sqlScripts.find(f => f.id == model.id);\r\n scr.connectionId = model.connectionId;\r\n scr.elementId = model.elementId;\r\n scr.query = model.query;\r\n }\r\n else {\r\n if (typeof this.data.sqlScripts == \"undefined\")\r\n this.data.sqlScripts = [];\r\n\r\n model.id = this.data.sqlScripts.length + 1;\r\n this.data.sqlScripts.push(model);\r\n }\r\n\r\n this.sqlScriptModel = new SqlScriptTextboxModel();\r\n this.sqlScriptModel.query = 'SELECT * FROM TABLE WHERE KEY={' + this.data.id + '}';\r\n }\r\n\r\n updateSqlScript(i) {\r\n let scr = this.data.sqlScripts[i];\r\n this.sqlScriptModel = new SqlScriptTextboxModel();\r\n this.sqlScriptModel.id = scr.id;\r\n this.sqlScriptModel.connectionId = scr.connectionId;\r\n this.sqlScriptModel.elementId = scr.elementId;\r\n this.sqlScriptModel.query = scr.query;\r\n }\r\n\r\n deleteSqlScript(i) {\r\n this.data.sqlScripts.splice(i, 1);\r\n }\r\n\r\n\r\n formComponentsScripts: any;\r\n formElementsScripts: any;\r\n\r\n showFunctionSettingPopup: any = false;\r\n isMonacoFuncParentLoaded: any = false;\r\n functionScript = { code: \"\", elementId: \"\", column: \"\" };\r\n functionScriptIndex = -1;\r\n openFunctionSettingPopup() {\r\n //this.functionScript.id = 0;\r\n this.functionScriptIndex = -1;\r\n this.functionScript.code = \"\";\r\n this.functionScript.elementId = \"\";\r\n this.functionScript.column = \"\";\r\n this.formElementsScripts = [];\r\n\r\n this.isMonacoFuncLoaded = true;\r\n this.showFunctionSettingPopup = true;\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n this.formComponentsScripts = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId).map(m => m.id);\r\n\r\n\r\n setTimeout(() => { this.isMonacoFuncParentLoaded = true; }, 1000);\r\n }\r\n saveFuncParam() {\r\n if (this.functionScript.code != \"\" && this.functionScript.elementId != \"\") {\r\n let functionScriptModel = this.componentService.cloneModel(this.functionScript);\r\n if (typeof this.data.functionScripts == \"undefined\") this.data.functionScripts = [];\r\n\r\n if (this.functionScriptIndex == -1) {\r\n this.data.functionScripts.push(functionScriptModel);\r\n }\r\n else {\r\n let dataFunctionScript = this.data.functionScripts[this.functionScriptIndex];\r\n dataFunctionScript.code = functionScriptModel.code;\r\n dataFunctionScript.elementId = functionScriptModel.elementId;\r\n dataFunctionScript.column = functionScriptModel.column;\r\n }\r\n this.functionScriptIndex = -1;\r\n this.functionScript.code = \"\";\r\n this.functionScript.elementId = \"\";\r\n this.functionScript.column = \"\";\r\n this.formElementsScripts = [];\r\n }\r\n }\r\n updateFunctionScript(index) {\r\n this.functionScriptIndex = index;\r\n let dataFunctionScript = this.data.functionScripts[this.functionScriptIndex];\r\n this.functionScript.code = dataFunctionScript.code;\r\n this.functionScript.elementId = dataFunctionScript.elementId;\r\n this.functionScript.column = dataFunctionScript.column;\r\n }\r\n deleteFunctionScript(index) {\r\n this.data.functionScripts.splice(index, 1);\r\n }\r\n isMonacoFuncLoaded: any = false;\r\n monacoFunctionOnInit(e) {\r\n\r\n this.isMonacoFuncLoaded = false;\r\n //let monaco = window['monaco'];\r\n //this.setCustomKeywords(monaco);\r\n }\r\n\r\n colShorting(event: CdkDragDrop) {\r\n moveItemInArray(this.data.functionScripts, event.previousIndex, event.currentIndex);\r\n }\r\n\r\n\r\n onChangeformElementsScriptsValue(e) {\r\n if (e.value != \"\") {\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let fCompms = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n let fCompm = fCompms.find(x => x.id == e.value);\r\n if (fCompm.type == \"gallery\") {\r\n\r\n // = this.setFormElementsScripts(fCompm);// fCompm.storage.sqlHideColumns.map(m => m.name);\r\n this.setFormElementsScripts(fCompm);\r\n this.classFormComponent = \"col-md-6\";\r\n this.classFormElements = \"col-md-6\";\r\n }\r\n else {\r\n this.classFormComponent = \"col-md-12\";\r\n this.classFormElements = \"col-md-6 hidden-element\";\r\n }\r\n }\r\n }\r\n\r\n setFormElementsScripts(dataGallery) {\r\n let _return = [];\r\n if (dataGallery.storage.query != \"\" && dataGallery.storage.connectionStringId > 0) {\r\n this.genericService.executeQuerySecurited(dataGallery.storage.query, dataGallery.storage.connectionStringId).subscribe((result: any) => {\r\n if (result && result.length > 0) {\r\n\r\n let allColumnsSql = Object.keys(result[0]);\r\n let keysSearch = [];\r\n keysSearch = allColumnsSql.filter(f =>\r\n f != dataGallery.storage.keyColumn);\r\n\r\n keysSearch.forEach(item => {\r\n this.formElementsScripts.push(item);\r\n });\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n onEnterKey(event) {\r\n if (this.data.value && this.data.sqlScripts) {\r\n if (this.data.upperCaseLetter) { this.data.value = this.data.value.toUpperCase() }\r\n //this.data.value = event.value;\r\n this.data.sqlScripts.forEach(s => {\r\n let pref = \"{\" + this.data.id + \"}\";\r\n let value = this.data.value;\r\n let query = this.componentService.replaceAllUsingType(s.query, pref, value); // s.query.replace(pref, value);\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let currentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId)\r\n\r\n var pattern = /\\{(\\w)+\\}/ig;\r\n var patt = new RegExp(pattern);\r\n if (patt.test(query)) {\r\n let _match = query.match(pattern);\r\n if (_match.length > 0) {\r\n _match.forEach(f => {\r\n let _k = currentComponents.find(k => k.id == f.replace(\"{\", \"\").replace(\"}\", \"\"));\r\n if (_k) {\r\n let _value = _k.value == null ? \"\" : _k.value;\r\n query = this.componentService.replaceAllUsingType(query, f, _value);//query.replace(f, _value);\r\n }\r\n });\r\n }\r\n //query = this.genericService.cleanSqlSyntax(query.replace(pattern, \"\"))\r\n }\r\n\r\n\r\n this.genericService.executeQuerySecurited(query, s.connectionId).subscribe((result: any) => {\r\n \r\n if (result) {\r\n let element = this.componentService.getById(s.elementId, currentComponents, this.anotherPopupId);\r\n if (element.type) {\r\n \r\n if (element.component == \"DxDatagridSelectComponent\" || element.type == \"datalist\" || element.type == \"selectbox\" || element.type == \"gallery\" || element.type == \"datagrid\" || element.type == \"multiselectbox\") {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, this.data.value, result);\r\n }\r\n else {\r\n let keys = Object.keys(result[0]);\r\n if (keys.length > 0) {\r\n let finalData = [];\r\n keys.forEach(f => {\r\n finalData.push(result[0][f]);\r\n });\r\n let dataText = finalData.join(\",\");\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, s.elementId, this.data.value, dataText);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, \"clean_element\", null, null);\r\n }\r\n }\r\n\r\n\r\n\r\n disableElements() {\r\n // data.systemInfoId != 0 \r\n return this.data.systemInfoId == 0 ? (typeof this.data.disabled != \"undefined\" ? (this.data.disabled == false ? this.data.outsideDisabled : this.data.disabled) : false) : true;\r\n }\r\n fillDesignerDataSource() {\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n\r\n this.genericService.fillDesignerDataSource().subscribe((result: any) => {\r\n\r\n this.designerDataSourceList = result;\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n if (this.data.desktopDatasource != null) {\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == this.data.desktopDatasource);\r\n\r\n if (typeof this.designerDatasourceModel.ID === \"undefined\")\r\n this.designerDatasourceModel = { ID: this.data.desktopDatasource, NAME: \"\", SQLSTR: \"\" };\r\n }\r\n\r\n if (!this.isEdit && this.componentService.currentProcessFormId == 0 && typeof this.data.desktopDatasource != \"undefined\"\r\n && this.designerDatasourceModel.SQLSTR != \"\") {\r\n\r\n this.genericServiceExecuteScript(this.designerDatasourceModel.SQLSTR, this.designerDatasourceModel.CONNID);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n public genericServiceExecuteScript(_Query, _ConnectionId) {\r\n this.genericService.executeQuerySecurited(_Query, _ConnectionId).subscribe((result: any) => {\r\n\r\n if (result && result.length > 0) {\r\n this.data.value = result[0][this.data.valueExpr];\r\n try {\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n catch (ex) { }\r\n }\r\n else {\r\n if (this.data.value != \"\") {\r\n this.data.value = \"\";\r\n this.data.dataSource = [];\r\n }\r\n }\r\n });\r\n }\r\n onChangeDatasourceValue(event) {\r\n if (event.value) {\r\n\r\n this.designerDatasourceModel = this.designerDataSourceList.find(x => x.ID == event.value);\r\n this.genericServiceExecuteScript(this.designerDatasourceModel.SQLSTR, this.designerDatasourceModel.CONNID);\r\n // this.designerDatasourceModel = { ID: 0, NAME: \"\", SQLSTR: \"\" };\r\n\r\n }\r\n }\r\n systemInfoChange() {\r\n }\r\n /*\r\n stringInfoChange($event) {\r\n let selected = $event.value;\r\n\r\n\r\n let a = \"\";\r\n \r\n this.data.mask = \"\";\r\n if (selected == \"Yalnız Harf\") {\r\n for (let i = 0; i < this.data.maxLength; i++) {\r\n a += \"C\"\r\n }\r\n }\r\n else if (selected == \"Harf ve Sembol\") { this.data.mask = \"g\"; }\r\n else if (selected == \"Numara ve Sembol\") { this.data.mask = \"h\"; }\r\n else if (selected == \"Hepsi\") { this.data.mask = \"j\"; }\r\n \r\n\r\n this.data.mask = a; \r\n\r\n } */\r\n /*\r\n rules = {\r\n f: /[A-Za-z]/g, //yalnız harf\r\n g: /\\D/g, //harf ve sembol\r\n h: /[.*?\\d-$€'\"(){}&%#£!><|½^]/g, //numara ve sembol\r\n j: /./g, //hepsi\r\n\r\n }\r\n stringInfo = [\r\n { value: \"all\", text: \"Hepsi\" },\r\n { value: \"letter\", text: \"Yalnız Harf\" },\r\n { value: \"letterandsymbol\", text: \"Harf ve Sembol\" },\r\n { value: \"letterandnumber\", text: \"Numara ve Sembol\" }\r\n ];\r\n \r\n */\r\n\r\n tempValue = undefined\r\n\r\n onKeyDown($event) {\r\n this.tempValue = JSON.parse(JSON.stringify(this.data.value))\r\n if (this.data.stringType != \"all\") {\r\n let keyCode = $event.event.keyCode;\r\n let str = [\";\", \"\"]\r\n // 8 backspace 13 enter 37-40 arrows\r\n if (keyCode == 8 || keyCode == 13 || (keyCode >= 37 && keyCode <= 40) ||(keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /./ // Her karakter kabul edilcek\r\n\r\n if (this.data.stringType == \"letter\") { regex = /[A-Za-z]/g }\r\n else if (this.data.stringType == \"letterandsymbol\") { regex = /\\D/g }\r\n else if (this.data.stringType == \"number\") { regex = /^\\d+$/ }\r\n else if (this.data.stringType == \"numberandsymbol\") { regex = /[.*?\\d-$€'\"(){}&%#£!><|½^]/g }\r\n else if (this.data.stringType == \"letterandnumber\") { regex = /[\\w\\d]/g }\r\n if (!(keyCode == 8 || keyCode == 13 || (keyCode >= 37 && keyCode <= 40))){\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n \r\n } \r\n }\r\n \r\n }\r\n\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // Tüm charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n/**/\r\n //\"Yalnız Harf\", \"Harf ve Sembol\", \"Numara ve Sembol\", \"Hepsi\"\r\n onEditPopopShown() {\r\n\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n this.data.desktopDatasource = this.designerDatasourceModel.ID;\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n\r\n let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n if (systemInfoTemp)\r\n this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n else\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000);\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n this.showDisplayBoolean = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? true : false) : true;\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n getTextboxStylesFunc() {//text-transform: uppercase\r\n\r\n let myStyles = {\r\n 'text-transform': this.data.upperCaseLetter != null && this.data.upperCaseLetter != false ? 'uppercase' : 'none',\r\n 'font-size': this.systemValTempActive ? \"0px\" : \"\",\r\n 'font-weight': this.data.fontWeight,\r\n 'font-style': this.data.fontStyle,\r\n };\r\n return myStyles;\r\n }\r\n cancelSetting() {\r\n // let msg = \"Yaptığınız değişikleri kaydetmeden çıkmak istediğinizden emin misiniz?\"\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n\r\n\r\n let systemInfoTemp = this.componentService.currentSystemInfo.find(x => x.id == this.data.id);\r\n if (systemInfoTemp)\r\n this.componentService.currentSystemInfo.find(x => x.id == this.data.id).value = this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n else\r\n this.componentService.currentSystemInfo.push({ id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) });\r\n // this.componentService.currentSystemInfo = { id: this.data.id, value: this.systemInfoPage.find(x => x.id == this.data.systemInfoId) };//this.systemInfoPage.find(x => x.id == this.data.systemInfoId);\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n\r\n onValueChanged(e) {\r\n\r\n if (this.data.upperCaseLetter) { this.data.value = this.data.value.toUpperCase();}\r\n\r\n this.eventEmitterService.onValueChangeEvent(this.data.id, \"clean_element\", e.value, null);\r\n\r\n this.onEnterKey(null);\r\n\r\n if (typeof this.data.functionScripts != \"undefined\") {\r\n\r\n let galleryArray = [];\r\n\r\n let currentFormSelected = this.componentService.currentFormSelected(this.anotherPopupId);\r\n let curentComponents = this.componentService.getComponentList(currentFormSelected.components, this.anotherPopupId);\r\n\r\n this.data.functionScripts.forEach(f => {\r\n let fCode = f.code.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n fCode = this.replaceAll(fCode, \"{\" + this.data.id + \"}\", this.data.value);\r\n curentComponents.forEach(c => {\r\n if (c.id != this.data.id) {\r\n let cId = \"{\" + c.id + \"}\";\r\n fCode = this.replaceAll(fCode, cId, c.value);\r\n }\r\n });\r\n\r\n let fCompm = curentComponents.find(x => x.id == f.elementId);\r\n if (fCompm.type == \"gallery\") {\r\n //f.column;\r\n if (fCode.indexOf('\"[') > -1 || fCode.indexOf(\"'[\") > -1) {\r\n try {\r\n let result = eval(fCode); //\"[IDs]*1\" \r\n\r\n let galArrayObj = galleryArray.find(l => l.element == f.elementId);\r\n if (galArrayObj) {\r\n galArrayObj.values.push({ value: result, column: f.column });\r\n }\r\n else {\r\n let resVal = { element: f.elementId, values: [] };\r\n resVal.values.push({ value: result, column: f.column });\r\n galleryArray.push(resVal);\r\n }\r\n } catch (ex) { }\r\n //let resVal = { element: f.elementId, values: [] };//{ value: result, column: f.column}\r\n //galleryArray.push();\r\n\r\n }\r\n\r\n }\r\n else {\r\n let result = eval(fCode);\r\n this.eventEmitterService.selectboxChangeEvent(this.data.id, f.elementId, result, result);\r\n }\r\n\r\n });\r\n\r\n galleryArray.forEach(f => {\r\n this.eventEmitterService.galleryChangeEvent(this.data.id, f.element, f.values);\r\n });\r\n\r\n }\r\n \r\n this.isUserChangeCheck();\r\n\r\n }\r\n\r\n isUserChangeCheck() {\r\n if (this.data.value == \"\") { // UserChange sıfırlanmak istenirse\r\n //this.data.isUserChange = false;\r\n //this.tempValue = undefined;\r\n } else {\r\n if (typeof this.tempValue != \"undefined\" && this.tempValue != this.data.value) {\r\n this.data.isUserChange = true;\r\n // console.log(\"textboxunki \"+this.data.isUserChange)\r\n\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n }\r\n setLanguageToDatas() {\r\n console.log(this.languageLocal)\r\n this.stringInfo = [\r\n { value: \"all\", text: this.languageLocal.allText /*\"Hepsi\"*/ },\r\n { value: \"letter\", text: this.languageLocal.letter /* \"Yalnız Harf\" */ },\r\n { value: \"number\", text: this.languageLocal.justnumber /* \"Yalnız Sayı\" */},\r\n { value: \"letterandnumber\", text: this.languageLocal.letterandnumber /*\"Harf ve Numara\" */ },\r\n { value: \"letterandsymbol\", text: this.languageLocal.letterandsymbol /*\"Harf ve Sembol\"*/ },\r\n { value: \"numberandsymbol\", text: this.languageLocal.numberandsymbol /*\"Numara ve Sembol\"*/ },\r\n ];\r\n\r\n\r\n }\r\n}\r\n ","import { Component, OnInit, Input, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core';\r\nimport { ComponentParameters } from '../component.parameters';\r\nimport { EventEmitterService } from \"../../shared/services/event-emitter.service\";\r\nimport { ComponentService } from '../component.service';\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { AppInfoService, TaskService } from '../../shared/services';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-videoupload',\r\n templateUrl: './videoupload.component.html',\r\n styleUrls: ['./videoupload.component.css']\r\n})\r\nexport class DxVideouploadComponent implements ComponentParameters, OnInit {\r\n @ViewChild('videoPlayer', { static: false }) videoPlayer: ElementRef;\r\n @Input() data: any;\r\n @Input() lang: string;\r\n @Input() isEdit: boolean;\r\n @Input() anotherPopupId: number = 0;\r\n \r\n defaultLanguage: any = {};\r\n permissionPopup: boolean = false;\r\n languagePopup: boolean = false;\r\n showSettingPopup: boolean = false;\r\n\r\n showFilesPopup: boolean = false;\r\n showPreviewFilesPopup: boolean = false;\r\n previewFileSrc: any;\r\n\r\n uploadedFiles: any = [];\r\n uploadResult = { isShow: false, status: \"success\", message: \"\" };\r\n totalSize: any = 0;\r\n\r\n showDisplay: any = \"flex\";\r\n invokeWarningChangeEventLocal: Subscription;\r\n languageLocal: any = \"\";\r\n\r\n borderColor = \"#dedede\"\r\n\r\n constructor(public taskService: TaskService, public appInfo: AppInfoService,private eventEmitterService: EventEmitterService, public componentService: ComponentService, public changeDetectorRef: ChangeDetectorRef) {\r\n\r\n this.languageLocal = this.componentService.getLanguageSource(); //language\r\n\r\n this.eventEmitterService.invokeShowPopopFunction.subscribe(sub => {\r\n if (sub.key === this.data.uuid) {\r\n this.showSettingPopup = true;\r\n }\r\n });\r\n\r\n this.invokeWarningChangeEventLocal = this.eventEmitterService.invokeWarningChangeEvent.subscribe(sub => {\r\n if (!!sub.data && !!sub.data.requiredFiles) {\r\n if (sub.data.requiredFiles.includes(this.data.id)) {\r\n this.changeToWarningColor()\r\n }\r\n }\r\n });\r\n }\r\n\r\n deleteButtonVisible = false;\r\n ngOnInit() {\r\n this.data.uuid = this.componentService.createuuid();\r\n this.defaultLanguage = this.componentService.getLang(this.lang, this.data.language);\r\n\r\n if (typeof this.data.show === \"undefined\")\r\n this.data.show = true;\r\n\r\n this.data.outsideDisabled = typeof this.data.outsideDisabled == \"undefined\" ? false : this.data.outsideDisabled;\r\n this.data.outsideVisible = typeof this.data.outsideVisible == \"undefined\" ? true : this.data.outsideVisible;\r\n\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n this.eventEmitterService.invokeChangeVisibleFunction.subscribe(sub => {\r\n if (sub.data.key === this.data.uuid) {\r\n if (typeof sub.data.outsideVisible != \"undefined\")\r\n this.data.outsideVisible = sub.data.outsideVisible;\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n \r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n\r\n\r\n if (typeof this.data.valueTemp == \"undefined\")\r\n this.data.valueTemp = [];\r\n\r\n if (this.componentService.currentProcessFormId != 0) {\r\n this.taskService.GetProcessStarterId(this.componentService.currentProcessFormId).subscribe((r: any) => {\r\n if (r == this.appInfo.currentUser.id)\r\n this.deleteButtonVisible = true;\r\n }, error => {\r\n });\r\n }\r\n else\r\n this.deleteButtonVisible = true;\r\n\r\n }\r\n\r\n onEditPopopShown() {\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n\r\n saveSetting() {\r\n let isAvalible = this.componentService.isIdAvalible(this.data.id, this.data.uuid, this.anotherPopupId);\r\n if (isAvalible) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.save);\r\n }\r\n else {\r\n this.componentService.showAlert(this.languageLocal.alertDifferentID, \"warning\", 5000)\r\n }\r\n this.showDisplay = !this.isEdit ? (this.data.show && !this.data.hide && this.data.outsideVisible ? \"flex\" : \"none\") : \"flex\";\r\n //this.storage.save(this.model.uuid, JSON.stringify(this.model));\r\n }\r\n\r\n cancelSetting() {\r\n let msg = \"\" + this.languageLocal.messageUnsaved + \"\"\r\n let result = confirm(msg, this.languageLocal.warning);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.showSettingPopup = false;\r\n this.eventEmitterService.applyHistory(this.componentService.historyActions.undo);\r\n }\r\n });\r\n }\r\n\r\n onValueChanged = (e: any): void => {\r\n\r\n let errors = [];\r\n if (e.value.length) {\r\n this.changeToDefaultColor();\r\n //this.data.valu e = [];\r\n this.totalSize = 0;\r\n this.uploadResult.isShow = true;\r\n this.uploadResult.status = \"primary\";\r\n this.uploadResult.message = this.languageLocal.filesLoading;\r\n for (let i = 0; i < e.value.length; i++) {\r\n \r\n let checkSum = this.totalSize + e.value[i].size;\r\n if (checkSum > (this.data.maxFileSize * 1024 * 1024)) {\r\n let msg = e.value[i].name + \" (\" + Math.round(checkSum / 1024) + this.languageLocal.couldnotbeLoaded;\r\n errors.push(msg);\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\" \") + (this.languageLocal.fileSizeLimit + this.data.maxFileSize * 1024 + \" KB )\");\r\n continue;\r\n }\r\n\r\n this.getDocument(e.value[i]).then(document => {\r\n this.data.valueTemp.push(document);\r\n this.totalSize += e.value[i].size;\r\n if (i === (e.value.length - 1)) {\r\n if (errors.length) {\r\n this.uploadResult.status = \"danger\";\r\n this.uploadResult.message = this.languageLocal.fileSizeExceeded + errors.join(\" \") + (this.languageLocal.fileSizeLimit + this.data.maxFileSize * 1024 + \" KB )\");\r\n }\r\n else {\r\n this.uploadResult.status = \"success\";\r\n this.uploadResult.message = this.languageLocal.filesUploaded;\r\n }\r\n }\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n });\r\n\r\n }\r\n }\r\n }\r\n\r\n getDocument(file) {\r\n return new Promise(resolve => {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n let fileName = file.name;\r\n let fileType: string = file.type;\r\n let base64BlobData: any = args.target.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n let fileSize = file.size;\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: fileType,\r\n extension: fileExtension,\r\n size: fileSize,\r\n isImg: false\r\n };\r\n resolve(document);\r\n\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n showFiles() {\r\n for (let i = 0; i < this.data.valueTemp.length; i++) {\r\n \r\n this.data.valueTemp[i].src = 'data:' + this.data.valueTemp[i].fileType + ';base64,' + this.data.valueTemp[i].base64BlobData;\r\n }\r\n this.showFilesPopup = true;\r\n }\r\n\r\n deleteFiles() {\r\n let result = confirm(\"\" + this.languageLocal.filesSureDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n this.uploadedFiles = [];\r\n for (let i = 0; i < this.data.valueTemp.length; i++) {\r\n this.eventEmitterService.setDeletedFileIds(this.data.valueTemp[i].id);\r\n } \r\n this.data.valueTemp = [];\r\n this.data.value = [];\r\n this.uploadResult.isShow = false;\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n });\r\n }\r\n\r\n deleteFile(i) {\r\n let result = confirm(\"\" + this.languageLocal.fileDelete + \"\", this.languageLocal.filesWillDeleted);\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n if (this.data.valueTemp && this.data.valueTemp.length > 0 && this.data.valueTemp[i])\r\n this.eventEmitterService.setDeletedFileIds(this.data.valueTemp[i].id);\r\n this.data.valueTemp.splice(i, 1);\r\n this.data.value.splice(i, 1);\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n this.showFiles();\r\n }\r\n });\r\n\r\n }\r\n\r\n previewFile(src) {\r\n this.previewFileSrc = src;\r\n this.showPreviewFilesPopup = true;\r\n }\r\n\r\n changeToWarningColor() {\r\n if (this.data.required) {\r\n this.borderColor = \"#d9534f\"\r\n }\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n onKeyDownObjectID($event) {\r\n let keyCode = $event.event.keyCode;\r\n if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 96 && keyCode <= 105) || (keyCode >= 186 && keyCode <= 226) || (keyCode >= 169 && keyCode <= 171) || (keyCode <= 173)) { // T�m charlar girecek\r\n let regex = /([A-Za-z0-9\\*\\_\\-\\&\\.\\+\\\"\\'\\!\\?\\,\\;\\%\\$\\#])/g\r\n let test = regex.test($event.event.key);\r\n if (!test) {\r\n $event.event.preventDefault();\r\n }\r\n }\r\n }\r\n changeToDefaultColor() {\r\n this.borderColor = \"#dedede\"\r\n\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild, ElementRef,Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'videoviewer-component',\r\n templateUrl: './videoviewer.component.html',\r\n styleUrls: ['./videoviewer.component.css']\r\n})\r\nexport class DxVideoviewerComponent implements OnInit {\r\n @ViewChild('videoPlayer', { static: false }) videoPlayer: ElementRef;\r\n @Input() data: any;\r\n videoSrc: any;\r\n fileName: string = \"\";\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onValueChanged = (e: any): void => {\r\n if (e.value.length) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(e.value[0]);\r\n reader.onload = (args: any) => {\r\n if (reader.result) {\r\n this.videoSrc = args.target.result;\r\n //this.loadVideo(args.target.result)\r\n \r\n //let questionCode = dataField;\r\n let fileName: string = e.value[0].name;\r\n this.fileName = fileName;\r\n let fileType: string = e.value[0].type;\r\n let base64BlobData: any = \"\";//reader.result.split(',').pop();\r\n let fileExtension = fileName.slice((fileName.lastIndexOf('.') - 1 >>> 0) + 2);\r\n let document: any = {\r\n base64BlobData: base64BlobData,\r\n name: fileName,\r\n fileType: fileType,\r\n extension: fileExtension\r\n };\r\n }\r\n }\r\n }\r\n }\r\n\r\n loadVideo(data: string) {\r\n this.videoPlayer.nativeElement.src = data;\r\n this.videoPlayer.nativeElement.load();\r\n //this.videoPlayer.nativeElement.play();\r\n }\r\n}\r\n","import { Component, OnInit, AfterViewInit } from \"@angular/core\";\r\nimport { Subscription } from 'rxjs-compat/Subscription';\r\nimport { Location, LocationStrategy, PathLocationStrategy, PopStateEvent } from '@angular/common';\r\n//import 'rxjs-compat/add/operator/filter';\r\nimport { NavbarComponent } from '../../components/navbar/navbar.component';\r\nimport { Router, NavigationEnd, NavigationStart } from '@angular/router';\r\n//import 'rxjs-compat/add/operator/filter';\r\n//import {filter } from 'rxjs/operators';\r\nimport PerfectScrollbar from 'perfect-scrollbar';\r\nimport { filter } from 'rxjs/operators';\r\n@Component({\r\n selector: \"app-admin-layout\",\r\n templateUrl: \"./admin-layout.component.html\",\r\n styleUrls: [\"./admin-layout.component.css\"]\r\n})\r\nexport class AdminLayoutComponent implements OnInit, AfterViewInit {\r\n public _router: Subscription;\r\n public lastPoppedUrl: string;\r\n public yScrollStack: number[] = [];\r\n\r\n constructor( public location: Location, public router: Router) {}\r\n\r\n ngOnInit() {\r\n const isWindows = navigator.platform.indexOf('Win') > -1 ? true : false;\r\n if (isWindows) {\r\n // if we are on windows OS we activate the perfectScrollbar function\r\n\r\n document.getElementsByTagName('html')[0].classList.add('perfect-scrollbar-on');\r\n } else {\r\n\r\n document.getElementsByTagName('html')[0].classList.remove('perfect-scrollbar-off');\r\n }\r\n const elemMainPanel = document.querySelector('.main-panel');\r\n const elemSidebar = document.querySelector('.sidebar .sidebar-wrapper');\r\n\r\n this.location.subscribe((ev:PopStateEvent) => {\r\n this.lastPoppedUrl = ev.url;\r\n });\r\n this.router.events.subscribe((event:any) => {\r\n if (event instanceof NavigationStart) {\r\n if (event.url != this.lastPoppedUrl)\r\n this.yScrollStack.push(window.scrollY);\r\n } else if (event instanceof NavigationEnd) {\r\n if (event.url == this.lastPoppedUrl) {\r\n this.lastPoppedUrl = undefined;\r\n window.scrollTo(0, this.yScrollStack.pop());\r\n } else\r\n window.scrollTo(0, 0);\r\n }\r\n });\r\n this._router = this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd)\r\n ).subscribe(() => {\r\n elemMainPanel.scrollTop = 0;\r\n elemSidebar.scrollTop = 0;\r\n });\r\n //this._router = this.router.events.filter(event => event instanceof NavigationEnd).subscribe((event: NavigationEnd) => {\r\n // elemMainPanel.scrollTop = 0;\r\n // elemSidebar.scrollTop = 0;\r\n //});\r\n if (window.matchMedia(`(min-width: 960px)`).matches && !this.isMac()) {\r\n let ps = new PerfectScrollbar(elemMainPanel);\r\n ps = new PerfectScrollbar(elemSidebar);\r\n }\r\n }\r\n runOnRouteChange(): void {\r\n if (window.matchMedia(`(min-width: 960px)`).matches && !this.isMac()) {\r\n const elemMainPanel = document.querySelector('.main-panel');\r\n const ps = new PerfectScrollbar(elemMainPanel);\r\n ps.update();\r\n }\r\n }\r\n isMac(): boolean {\r\n let bool = false;\r\n if (navigator.platform.toUpperCase().indexOf('MAC') >= 0 || navigator.platform.toUpperCase().indexOf('IPAD') >= 0) {\r\n bool = true;\r\n }\r\n return bool;\r\n }\r\n ngAfterViewInit() {\r\n this.runOnRouteChange();\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n Location,\r\n LocationStrategy,\r\n PathLocationStrategy\r\n} from \"@angular/common\";\r\nimport { ROUTES } from \"../../components/sidebar/sidebar.component\";\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: \"app-auth-layout\",\r\n templateUrl: \"./auth-layout.component.html\",\r\n styleUrls: [\"./auth-layout.component.css\"]\r\n})\r\nexport class AuthLayoutComponent implements OnInit {\r\n private listTitles: any[];\r\n public location: Location;\r\n public isCollapsed = false;\r\n\r\n constructor(location: Location, private router: Router) {\r\n this.location = location;\r\n }\r\n\r\n ngOnInit() {\r\n this.listTitles = ROUTES.filter(listTitle => listTitle);\r\n this.router.events.subscribe((event) => {\r\n this.isCollapsed = false;\r\n const navbar = document.getElementsByTagName('nav')[0];\r\n\r\n if (this.isCollapsed) {\r\n navbar.classList.remove('navbar-transparent');\r\n navbar.classList.add('bg-white');\r\n }else{\r\n navbar.classList.add('navbar-transparent');\r\n navbar.classList.remove('bg-white');\r\n }\r\n });\r\n }\r\n getTitle() {\r\n let titlee: any = this.location.prepareExternalUrl(this.location.path());\r\n for (let i = 0; i < this.listTitles.length; i++) {\r\n if (\r\n this.listTitles[i].type === \"link\" &&\r\n this.listTitles[i].path === titlee\r\n ) {\r\n return this.listTitles[i].title;\r\n } else if (this.listTitles[i].type === \"sub\") {\r\n for (let j = 0; j < this.listTitles[i].children.length; j++) {\r\n let subtitle =\r\n this.listTitles[i].path + \"/\" + this.listTitles[i].children[j].path;\r\n if (subtitle === titlee) {\r\n return this.listTitles[i].children[j].title;\r\n }\r\n }\r\n }\r\n }\r\n return \"River\";\r\n }\r\n collapse(){\r\n this.isCollapsed = !this.isCollapsed;\r\n const navbar = document.getElementsByTagName('nav')[0];\r\n if (this.isCollapsed) {\r\n navbar.classList.remove('navbar-transparent');\r\n navbar.classList.add('bg-white');\r\n }else{\r\n navbar.classList.add('navbar-transparent');\r\n navbar.classList.remove('bg-white');\r\n }\r\n\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport notify from \"devextreme/ui/notify\";\r\n\r\n@Component({\r\n selector: 'whitepageviewer-component',\r\n templateUrl: './whitepageviewer.component.html',\r\n styleUrls: ['./whitepageviewer.component.scss']\r\n})\r\nexport class WhitePageViewer implements OnInit {\r\n @Input() reportName;\r\n @Input() reportId;\r\n @Input() height;\r\n @Input() width;\r\n\r\n reportUrl = '';\r\n hostUrl = 'http://localhost:53007';\r\n invokeAction = \"/DXXRDV\";\r\n loading = true;\r\n _height = \"\";\r\n _width = \"\";\r\n sizeType = \"%\";\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n\r\n console.log(this.height + \",\" + this.width + \" \")\r\n this._height = this.height;\r\n this._width = this.width;\r\n let requestString = \"{\" + this.reportId + \"}\" + this.reportName;\r\n console.log(requestString)\r\n this.reportUrl = requestString;\r\n this.loading = false;\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n\r\n}\r\n","import { Component, ChangeDetectorRef, OnInit, ViewChild, Input, OnDestroy, ElementRef } from '@angular/core';\r\nimport { TaskService, AppInfoService, ReportService, EventEmitterService, GenericService } from '../../shared/services';\r\nimport { InstanceService } from '../../shared/services/data/instance.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport * as _ from \"lodash\";\r\nimport notify from \"devextreme/ui/notify\";\r\n\r\nimport { confirm } from 'devextreme/ui/dialog';\r\nimport { DxDataGridComponent } from 'devextreme-angular';\r\nimport { ComponentService } from '../../formdesigner/component.service';\r\n\r\nimport { DxTreeViewComponent, DxDrawerComponent } from 'devextreme-angular';\r\nimport { DashboardControl, ResourceManager } from 'devexpress-dashboard';\r\nimport { locale, loadMessages, formatMessage } from 'devextreme/localization';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { ReportModel } from '../../shared/models/report-model';\r\nimport { NodeModel } from '../../shared/models/node-model';\r\nimport { LocationStrategy, Location, PathLocationStrategy } from '@angular/common';\r\n\r\n// import themes from \"devextreme/ui/themes\";\r\n\r\n\r\n@Component({\r\n templateUrl: 'reportdesigner.component.html',\r\n styleUrls: ['./reportdesigner.component.scss'],\r\n providers: [Location, { provide: LocationStrategy, useClass: PathLocationStrategy }]\r\n})\r\n\r\nexport class ReportDesignerComponent implements OnInit {\r\n @Input() data: any;\r\n\r\n @ViewChild(DxDrawerComponent, { static: false }) drawer: DxDrawerComponent;\r\n\r\n\r\n reportModel: ReportModel;\r\n nodeModel: NodeModel;\r\n\r\n reportTypes = {\r\n grid: 1,\r\n pivot: 2,\r\n white: 3,\r\n dashboard: 4\r\n }\r\n\r\n localRules = [\r\n { value: 1, text: \"Türkiye\" },\r\n { value: 2, text: \"Diğer\" }\r\n ]\r\n localRule = 1;\r\n\r\n\r\n reports: any;\r\n\r\n reportUrl: string = '';\r\n hostUrl: string = '';\r\n invokeAction: string = ''\r\n\r\n selectedReportType: number = 0;\r\n selectedReportId: any = 0;\r\n selectedReportName: string = \"Rapor Seçilmedi\";\r\n selectedReportTypeName: string = \"Rapor Tipi Seçilmedi\";\r\n\r\n menuButtonOptions: any;\r\n backButtonOptions: any;\r\n refreshButtonOptions: any;\r\n userButtonOptions: any;\r\n gridButtonOptions: any;\r\n pivotButtonOptions: any;\r\n whitePaperButtonOptions: any;\r\n dashboardButtonOptions: any;\r\n\r\n connections: any = [];\r\n\r\n showReportTypePopup: boolean = false;\r\n showNodeFormPopop: boolean = false;\r\n showReportFormPopop: boolean = false;\r\n\r\n isAddingChild: boolean = false;\r\n\r\n processKey = {\r\n \"addParent\": \"parent\",\r\n \"addChild\": \"child\",\r\n \"addReport\": \"report\",\r\n \"update\": \"update\",\r\n \"delete\": \"delete\"\r\n }\r\n\r\n parentNodes = [];\r\n editorOptions = { theme: 'vs', language: 'sql', automaticLayout: true };\r\n\r\n dataStorage = {\r\n \"connectionStringId\": 0,\r\n \"query\": \"\",\r\n \"data\": [],\r\n \"storage\": {}\r\n }\r\n\r\n permissions = { \"groups\": [], \"users\": [] }\r\n groups: any = [];\r\n users: any = [];\r\n\r\n\r\n constructor(\r\n private router: Router,\r\n private appInfo: AppInfoService,\r\n private reportingService: ReportService,\r\n private genericService: GenericService,\r\n private eventEmitterService: EventEmitterService,\r\n private http: HttpClient,\r\n private _location: Location) {\r\n this.reportModel = new ReportModel();\r\n this.reportModel.useInWeb = true;\r\n this.reportModel.useInMobile = true;\r\n\r\n this.nodeModel = new NodeModel();\r\n this.nodeModel.orderNo = 1;\r\n \r\n // let routerState1 = this.router.getCurrentNavigation();\r\n // let routerState2 = this.router.getCurrentNavigation().extras;\r\n let _router = this.router.getCurrentNavigation();\r\n let routerState = null;\r\n if (_router)\r\n routerState = _router.extras.state;\r\n\r\n \r\n if (typeof routerState !== \"undefined\" && typeof routerState.id !== \"undefined\") {\r\n this.selectItemReport(routerState.id, routerState.name, routerState.isReport);\r\n }\r\n\r\n this.eventEmitterService.subsStartInstance = this.eventEmitterService.invokePageWithRouteChangeEvent.subscribe(sub => {\r\n \r\n if (routerState != null || typeof _router === \"undefined\" || typeof routerState === \"undefined\")\r\n this.selectItemReport(sub.data.id, sub.data.name, sub.data.isReport);\r\n });\r\n\r\n\r\n\r\n // this.route.paramMap.subscribe( params => {\r\n // \r\n // let idd=this.route.getCurrentNavigation().extras.state.example;\r\n // let id = params.get('id'); \r\n // let name = params.get('name'); \r\n // let isReport = params.get('isReport'); \r\n // this.selectItemReport(id, name, isReport); \r\n // });\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n let userSession = localStorage.getItem(\"localUserSession\");\r\n let entity = JSON.parse(userSession);\r\n this.appInfo.currentUser = entity.currentUser;\r\n this.appInfo.RiverEntity = entity;\r\n this.groups = entity.userGroups;\r\n this.users = entity.users;\r\n \r\n this.users.forEach(f => { f.selected = false; });\r\n this.groups.forEach(f => { f.selected = false; });\r\n\r\n this.connections = entity.connections;\r\n this.reportModel.connectionId = this.connections ? this.connections[0].id : 0;\r\n this.prepareToolbar();\r\n this.getReports();\r\n }\r\n\r\n getReports() {\r\n this.reportingService.getAllReports().subscribe(data => {\r\n this.reports = data;\r\n });\r\n\r\n this.reportingService.getParentNodes().subscribe((data: any) => {\r\n this.parentNodes = data;\r\n });\r\n }\r\n\r\n prepareToolbar() {\r\n this.menuButtonOptions = {\r\n icon: 'detailslayout',\r\n onClick: () => {\r\n this.drawer.instance.toggle();\r\n }\r\n };\r\n\r\n this.refreshButtonOptions = {\r\n icon: 'refresh',\r\n onClick: () => {\r\n notify('Yenilendi!');\r\n }\r\n };\r\n\r\n\r\n this.backButtonOptions = {\r\n icon: 'back',\r\n onClick: () => {\r\n this._location.back();\r\n }\r\n };\r\n\r\n\r\n this.userButtonOptions = {\r\n icon: 'user',\r\n text: this.appInfo.currentUser.name,\r\n onClick: () => {\r\n //notify('Add button has been clicked!');\r\n }\r\n };\r\n\r\n this.gridButtonOptions = {\r\n icon: 'edit',\r\n text: \"Grid\",\r\n onClick: () => {\r\n this.selectedReportType = this.reportTypes.grid;\r\n this.selectedReportTypeName = \"Grid\";\r\n }\r\n };\r\n\r\n this.pivotButtonOptions = {\r\n icon: 'edit',\r\n text: \"Pivot\",\r\n onClick: () => {\r\n this.selectedReportType = this.reportTypes.pivot;\r\n this.selectedReportTypeName = \"Pivot\";\r\n }\r\n };\r\n\r\n this.whitePaperButtonOptions = {\r\n icon: 'edit',\r\n text: \"Beyaz Sayfa\",\r\n onClick: () => {\r\n this.selectedReportType = this.reportTypes.white;\r\n this.selectedReportTypeName = \"Beyaz Sayfa Raporu\";\r\n }\r\n };\r\n\r\n this.dashboardButtonOptions = {\r\n icon: 'edit',\r\n text: \"Dashboard\",\r\n onClick: () => {\r\n this.selectedReportType = this.reportTypes.dashboard;\r\n this.selectedReportTypeName = \"Dashboard\";\r\n }\r\n };\r\n\r\n\r\n }\r\n\r\n\r\n selectItemReport(/*event,*/ id, name, isReport) {\r\n \r\n if (isReport) {\r\n this.selectedReportId = id;\r\n this.selectedReportName = name;\r\n //this.drawer.instance.toggle();\r\n this.showReportTypePopup = true;\r\n }\r\n\r\n /*setTimeout(f => {\r\n this.selectedReportId = event.itemData.id;\r\n }, 100);*/\r\n }\r\n\r\n\r\n\r\n\r\n selectItem(event) {\r\n if (event.itemData.isReport) {\r\n this.selectedReportId = event.itemData.id;\r\n this.selectedReportName = event.itemData.name;\r\n //this.drawer.instance.toggle();\r\n this.showReportTypePopup = true;\r\n }\r\n\r\n /*setTimeout(f => {\r\n this.selectedReportId = event.itemData.id;\r\n }, 100);*/\r\n }\r\n\r\n itemClick(key, data) {\r\n \r\n \r\n if (key == this.processKey.addParent) {\r\n this.nodeModel.parentId = 0;\r\n this.nodeModel.name = \"\";\r\n this.isAddingChild = false;\r\n this.showNodeFormPopop = true;\r\n }\r\n else if (key == this.processKey.addChild) {\r\n this.nodeModel.parentId = data.id;\r\n this.nodeModel.name = \"\";\r\n this.isAddingChild = true;\r\n this.showNodeFormPopop = true;\r\n }\r\n else if (key == this.processKey.addReport) {\r\n this.nodeModel.name = data.name;\r\n this.reportModel.nodeId = data.id;\r\n this.showReportFormPopop = true;\r\n }\r\n else if (key == this.processKey.update) {\r\n if (data.isReport) {\r\n this.reportingService.getReportById(data.id).subscribe((result: ReportModel) => {\r\n \r\n this.reportModel = result;\r\n let ids = result.users.split(',');\r\n if (ids && ids.length > 0) {\r\n this.users.forEach(f => {\r\n for (let i = 0; i < ids.length; i++) {\r\n if (ids[i] == f.id) {\r\n f.selected = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.showReportFormPopop = true;\r\n });\r\n }\r\n else {\r\n this.reportingService.getNodeById(data.id).subscribe((result: NodeModel) => {\r\n \r\n this.nodeModel = result;\r\n this.showNodeFormPopop = true;\r\n });\r\n }\r\n }\r\n else if (key == this.processKey.delete) {\r\n let msg = \"Kaydı silmek istediğinizden emin misiniz?\"\r\n let result = confirm(msg, \"Uyarı!\");\r\n result.then((dialogResult) => {\r\n if (dialogResult) {\r\n if (data.isReport) {\r\n this.reportingService.deleteReport(data.id).subscribe(result => {\r\n if (result) {\r\n this.getReports();\r\n this.nodeModel = new NodeModel();\r\n this.reportModel = new ReportModel();\r\n this.reportModel.useInWeb = true;\r\n this.reportModel.useInMobile = true;\r\n this.showToast(\"Rapor Silindi\", \"success\");\r\n }\r\n });\r\n }\r\n else {\r\n this.reportingService.deleteNode(data.id).subscribe(result => {\r\n if (result) {\r\n this.getReports();\r\n this.nodeModel = new NodeModel();\r\n this.reportModel = new ReportModel();\r\n this.reportModel.useInWeb = true;\r\n this.reportModel.useInMobile = true;\r\n this.showToast(\"Kırılım Silindi\", \"success\");\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n resetNodeModel() {\r\n this.nodeModel.id = 0;\r\n this.nodeModel.parentId = 0;\r\n this.nodeModel.name = \"\";\r\n this.nodeModel.orderNo = 1;\r\n }\r\n\r\n\r\n onConnectionValueChanged(event) {\r\n this.reportModel.connectionId = event.value;\r\n }\r\n\r\n changeUserPermission(isChecked, id) {\r\n if (isChecked) {\r\n let index = this.permissions.users.indexOf(id);\r\n if (index == -1)\r\n this.permissions.users.push(id);\r\n }\r\n else {\r\n let index = this.permissions.users.indexOf(id);\r\n if (index > -1)\r\n this.permissions.users.splice(index, 1);\r\n }\r\n }\r\n\r\n changeGrpoupPermission(isChecked, id) {\r\n if (isChecked) {\r\n let index = this.permissions.groups.indexOf(id);\r\n if (index == -1)\r\n this.permissions.groups.push(id);\r\n }\r\n else {\r\n let index = this.permissions.groups.indexOf(id);\r\n if (index > -1)\r\n this.permissions.groups.splice(index, 1);\r\n }\r\n }\r\n\r\n selectAllUser(isSelected) {\r\n this.permissions.users = [];\r\n if (isSelected) {\r\n this.users.forEach(f => {\r\n f.selected = true;\r\n this.permissions.users.push(f.id);\r\n });\r\n }\r\n else {\r\n this.users.forEach(f => {\r\n f.selected = false;\r\n });\r\n }\r\n }\r\n\r\n selectAllGroup(isSelected) {\r\n this.permissions.groups = [];\r\n if (isSelected) {\r\n this.groups.forEach(f => {\r\n f.selected = true;\r\n this.permissions.groups.push(f.id);\r\n });\r\n }\r\n else {\r\n this.groups.forEach(f => {\r\n f.selected = false;\r\n });\r\n }\r\n }\r\n\r\n saveNode() {\r\n if (this.nodeModel.name == null || this.nodeModel.name == \"\") {\r\n this.showToast(\"Lütfen kırılım adını giriniz\", \"warning\");\r\n }\r\n else {\r\n this.reportingService.saveNode(this.nodeModel).subscribe((result: any) => {\r\n if (result) {\r\n this.getReports();\r\n this.resetNodeModel();\r\n this.showNodeFormPopop = false;\r\n this.showToast(\"Kırılım Eklendi\", \"success\");\r\n }\r\n else this.showToast(\"Hata oluştu\", \"error\");\r\n });\r\n }\r\n\r\n }\r\n\r\n saveReport() {\r\n if (this.reportModel.connectionId <= 0) {\r\n this.showToast(\"Lütfen bağlantı adresi seçiniz\", \"warning\");\r\n }\r\n else if (this.reportModel.mainSql == null || this.reportModel.mainSql == \"\") {\r\n this.showToast(\"Lütfen sql script giriniz\", \"warning\");\r\n }\r\n else if (this.reportModel.name == null || this.reportModel.name == \"\") {\r\n this.showToast(\"Lütfen rapor adını giriniz\", \"warning\");\r\n }\r\n else {\r\n this.dataStorage.connectionStringId = this.reportModel.connectionId;\r\n this.dataStorage.query = this.reportModel.mainSql;\r\n this.reportModel.gridStorage = JSON.stringify(this.dataStorage);\r\n this.reportModel.pivotStorage = JSON.stringify(this.dataStorage);\r\n this.setPermissions();\r\n this.reportingService.saveReport(this.reportModel).subscribe((result: any) => {\r\n if (result) {\r\n this.getReports();\r\n this.reportModel = new ReportModel();\r\n this.reportModel.useInWeb = true;\r\n this.reportModel.useInMobile = true;\r\n this.users.forEach(f => { f.selected = false; })\r\n this.groups.forEach(f => { f.selected = false; })\r\n this.showReportFormPopop = false;\r\n this.showToast(\"Rapor Eklendi\", \"success\");\r\n }\r\n else this.showToast(\"Hata oluştu\", \"error\");\r\n });\r\n }\r\n\r\n }\r\n\r\n setPermissions() {\r\n if (this.permissions.users.length > 0) {\r\n this.reportModel.users = this.permissions.users.join(\",\");\r\n }\r\n else {\r\n this.reportModel.users = \"\";\r\n }\r\n if (this.permissions.groups.length > 0) {\r\n this.reportModel.groups = this.permissions.groups.join(\",\");\r\n }\r\n else {\r\n this.reportModel.groups = \"\";\r\n }\r\n }\r\n\r\n executeScript(isMain) {\r\n \r\n let query = \"\";\r\n if (isMain) query = this.reportModel.mainSql;\r\n else query = this.reportModel.preSql;\r\n var currentUserId = this.appInfo.currentUser.id;\r\n if (query != null && query != \"\" && this.reportModel.connectionId > 0) {\r\n this.genericService.executeQuerySecurited(query, this.reportModel.connectionId/*, currentUserId*/).subscribe(result => {\r\n if (result && result.length > 0) {\r\n notify(\"Bağlantı başarılı. İşlenecek veri sayısı: \" + result.length, \"success\", 3000);\r\n }\r\n else {\r\n notify(\"Veri bulunamadı! Lütfen bağlantınızı ve sql komutunuzu kontrol ediniz\", \"warning\", 3000);\r\n }\r\n }, err => {\r\n notify(\"Bağlantı sağlanamadı! Lütfen bağlantınızı ve sql komutunuzu kontrol ediniz\", \"warning\", 3000);\r\n });\r\n }\r\n else {\r\n notify(\"Lütfen bağlantınızı ve sql komutunuzu doldurunuz\", \"warning\", 3000);\r\n }\r\n\r\n }\r\n\r\n sqlParseParametersValues: any = [];\r\n showReportFilterPopup: boolean = false;\r\n\r\n saveReportFilter() {\r\n \r\n this.genericService.sqlParseParameters = this.sqlParseParametersValues;\r\n this.showReportFilterPopup = false;\r\n }\r\n openReport(type, name) {\r\n \r\n this.genericService.sqlParseParameters = this.sqlParseParametersValues;\r\n this.sqlParseParametersValues = [];\r\n this.selectedReportType = type;\r\n this.selectedReportTypeName = name;\r\n let selectedId = this.selectedReportId;\r\n this.selectedReportId = 0;\r\n setTimeout(f => {\r\n this.selectedReportId = selectedId;\r\n }, 100);\r\n this.showReportTypePopup = false;\r\n }\r\n\r\n openReportFilter() {\r\n this.sqlParseParametersValues = [];\r\n //left: \" where USERNAME like \"\r\n //right Name: \"Kullanıcı Adı\"\r\n //rightvalue: \"USERNAME\"\r\n //SingleQuote: true\r\n //PercentageMark: false\r\n //value: \" where {USERNAME like '[Kullanıcı Adı,USERNAME]'}\"\r\n this.reportingService.getReportStorage(this.selectedReportId, this.reportTypes.grid).subscribe((result: any) => {\r\n if (result && result.query != null && result.query != \"\") {\r\n var queryString = result.query;\r\n queryString = this.genericService.replaceAll(queryString, \"{CURRENTUSERID}\", this.appInfo.currentUser.id);\r\n queryString = this.genericService.cleanNewline(queryString, \" \");\r\n queryString = this.genericService.cleanSpaces(queryString, \" \");\r\n var parserSql = this.genericService.ParseSql(queryString);\r\n\r\n\r\n \r\n for (var i = 0; i < parserSql.length; i++) {\r\n\r\n // var _header = parserSql[i].rightName.indexOf(\"|||\") > -1 ? parserSql[i].rightName.split(\"|||\")\r\n if (parserSql[i].rightName.indexOf(\"||\") > -1) {\r\n var _headerSplit = parserSql[i].rightName.split(\"||\");\r\n var _valueSplit = parserSql[i].rightvalue.split(\"||\");\r\n for (var j = 0; j < _headerSplit.length; j++) {\r\n this.sqlParseParametersValues.push({\r\n header: _headerSplit[j],\r\n name: _valueSplit[j],\r\n value: \"\",\r\n singleQuote: parserSql[i].SingleQuote,\r\n percentageMark: parserSql[i].PercentageMark\r\n });\r\n }\r\n }\r\n else {\r\n this.sqlParseParametersValues.push({\r\n header: parserSql[i].rightName,\r\n name: parserSql[i].rightvalue,\r\n value: \"\",\r\n singleQuote: parserSql[i].SingleQuote,\r\n percentageMark: parserSql[i].PercentageMark\r\n });\r\n }\r\n } \r\n this.genericService.sqlParseParameters = this.sqlParseParametersValues;\r\n this.showReportFilterPopup = true;\r\n\r\n }\r\n });\r\n }\r\n showWhitePage() {\r\n this.reportUrl = 'TestReport';\r\n this.hostUrl = 'http://localhost:51857';\r\n this.invokeAction = \"/DXXRDV\";\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Component, Input, OnChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'data-table-paginator',\r\n templateUrl: './data-table-paginator.component.html',\r\n styleUrls: ['./data-table-paginator.component.scss']\r\n})\r\nexport class DataTablePaginator implements OnChanges{\r\n\r\n constructor() { }\r\n\r\n\r\n @Input() page: number;\r\n @Input() pageSize: number\r\n\r\n active = 1;\r\n pages; // \r\n showPages = [] //\r\n\r\n showNext = false;\r\n showPrevious = false;\r\n showLast = true;\r\n showFirst = true;\r\n\r\n changePageEvent(value, page?) {\r\n\r\n if (value == 'previous') {\r\n this.active = this.active - 1\r\n } else if (value == 'next') {\r\n this.active = this.active + 1\r\n } if (value == \"click\" && !!page) {\r\n this.active = page\r\n }\r\n\r\n this.createShowPages()\r\n\r\n }\r\n\r\n createShowPages() {\r\n if (this.pages.length <= 5) {\r\n this.showPages = this.pages\r\n this.showNext = false;\r\n this.showPrevious = false;\r\n this.showFirst = false;\r\n this.showLast = false;\r\n } else {\r\n if (this.pages.length > 1) {\r\n if (this.active == 1) {\r\n this.showPages = [this.active, this.active + 1, this.active + 2]\r\n this.showNext = true;\r\n this.showPrevious = false;\r\n this.showFirst = false;\r\n this.showLast = true;\r\n } else if (this.active == 2) {\r\n this.showPages = [this.active - 1, this.active, this.active + 1]\r\n this.showNext = true;\r\n this.showPrevious = false;\r\n this.showFirst = false;\r\n this.showLast = true;\r\n } else if (this.active == this.pages.length) {\r\n this.showPages = [this.active - 2, this.active - 1, this.active]\r\n this.showNext = false;\r\n this.showPrevious = true;\r\n this.showFirst = true;\r\n this.showLast = false;\r\n } else if (this.active == this.pages.length - 1) {\r\n this.showPages = [this.active - 1, this.active, this.active + 1]\r\n this.showNext = false\r\n this.showPrevious = true\r\n this.showFirst = true;\r\n this.showLast = false;\r\n } else {\r\n this.showPages = [this.active - 1, this.active, this.active + 1]\r\n this.showNext = true;\r\n this.showPrevious = true;\r\n this.showFirst = true;\r\n this.showLast = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n calculatePage(page) {\r\n\r\n let value1: number = this.page / this.pageSize\r\n let value2: number = Math.round(this.page / this.pageSize)\r\n\r\n let pageValue\r\n if (value1 > value2) {\r\n\r\n pageValue = Math.round(this.page / this.pageSize) + 2\r\n this.pages = Array(pageValue).fill(0).map((x, i) => i + 1);\r\n\r\n } else {\r\n\r\n pageValue = Math.round(this.page / this.pageSize) + 1\r\n this.pages = Array(pageValue).fill(0).map((x, i) => i + 1);\r\n\r\n }\r\n\r\n this.pages.pop();\r\n this.createShowPages()\r\n\r\n }\r\n\r\n ngOnChanges(changes: any) {\r\n this.calculatePage(changes.currentValue)\r\n this.active = 1\r\n this.createShowPages()\r\n }\r\n\r\n get currentPage() {\r\n return this.active;\r\n }\r\n\r\n}\r\n\r\n","import { Component, Input, ChangeDetectorRef, Output, EventEmitter, OnChanges} from '@angular/core';\r\nimport { ComponentService } from '../../../formdesigner/component.service';\r\n//import { isNumeric } from 'rxjs-compat/util/isNumeric';\r\n\r\n@Component({\r\n selector: 'data-table',\r\n templateUrl: './data-table.component.html',\r\n styleUrls: ['./data-table.component.scss']\r\n})\r\n\r\n\r\nexport class DataTable implements OnChanges {\r\n\r\n @Input() dataSource: any[];\r\n @Input() selectedRowKeys: any;\r\n @Input() keyExpr: any = \"\";\r\n\r\n @Output() onSelect = new EventEmitter();\r\n\r\n query = \"\" // queryArray JSON array as string\r\n page = 1; // Start CurrentPage as 1\r\n pageSize = 20; // Page Size \r\n queryArray = {}\r\n filterMetadata = { count: 0 }; // Filtered data's size\r\n sizes = [10, 20, 50] // Page Size options\r\n customColumn = [] \r\n calculated = false;\r\n\r\n sortType = \"asc\"\r\n sortField = \"\"\r\n\r\n constructor(public changeDetectorRef: ChangeDetectorRef, public componentService: ComponentService) { }\r\n\r\n ngOnChanges(changes) {\r\n this.page = 1;\r\n this.calculated = false;\r\n this.calculateHeaders()\r\n }\r\n\r\n calculateHeaders() {\r\n\r\n if (!this.calculated) {\r\n\r\n if (!!this.dataSource[0]) {\r\n\r\n let keys = Object.keys(this.dataSource[0])\r\n\r\n keys.forEach(element => {\r\n\r\n this.queryArray[element] = { key: element, value: \"\", type: \"string\" }\r\n\r\n })\r\n\r\n Object.keys(this.queryArray).forEach(key => {\r\n\r\n if (this.componentService.isInteger(this.dataSource[0][key])) {\r\n\r\n this.queryArray[key].type = \"numeric\"\r\n\r\n }\r\n\r\n })\r\n\r\n this.customColumn = keys\r\n\r\n this.calculated = true\r\n\r\n this.filterMetadata = { count: this.dataSource.length };\r\n\r\n }\r\n\r\n }\r\n\r\n return true\r\n\r\n }\r\n\r\n // Page Size Changed event\r\n onValueChangedSelectBox($event) {\r\n let event = $event\r\n this.pageSize = event.value\r\n }\r\n\r\n // On filter we update query as json string\r\n // Its json string because we need send array to filter pipe easily. \r\n // Parsing on filter pipe\r\n // And page cleared as first page after data filtered\r\n modelChanged() {\r\n this.query = JSON.stringify(this.queryArray)\r\n this.page = 1\r\n try { this.changeDetectorRef.detectChanges(); } catch (ex) { }\r\n }\r\n\r\n // Sort change event\r\n sortClick(value) {\r\n if (value != this.sortField) {\r\n this.sortField = value\r\n } else {\r\n if (this.sortType == \"asc\") {\r\n this.sortType = \"desc\"\r\n } else if (this.sortType == \"desc\") {\r\n this.sortType = \"asc\"\r\n }\r\n }\r\n }\r\n\r\n // Send data to parent with output emitter. \r\n // Dx use keys as array.\r\n onMyClick($event) {\r\n let event = $event\r\n let array = []\r\n array.push(event[this.keyExpr])\r\n this.onSelect.emit(array);\r\n }\r\n\r\n}\r\n\r\n","export class CurrentFormDataModel {\r\n ProcessFormId: number;\r\n FromUserId: number;\r\n ToUserId: number;\r\n FormVariable: string;\r\n Description: string;\r\n Status: number;\r\n UserStatus: number;\r\n RejectionReason: string;\r\n GeoLocation: string;\r\n Users: string;\r\n IsAvalible: boolean;\r\n\r\n CustomerFormId: string;\r\n CustomerFormComponent: string;\r\n Customer: string;\r\n Price: string;\r\n FilesIds: any;\r\n DeletedFilesIds: any;\r\n}\r\n","export class FormModel {\r\n ID: number;\r\n USER: string;\r\n NAME: string;\r\n DESCRIPTION: string;\r\n FORM_JSON: string;\r\n FORM_VARIABLE:string;\r\n CATEGORY_ID: number;\r\n ISMENU: boolean;\r\n USEDFORMS: string;\r\n MENUOPTIONS: string;\r\n FORMCOLOR: string;\r\n FORM_BACKGROUND_FILE: string;\r\n FORM_BACKGROUND_FILE_EXTENSION: string;\r\n}\r\n\r\n\r\n\r\n","export class MenuNode {\r\n FormId: number;\r\n NodeKey: string;\r\n NodeData: string;\r\n\r\n Status: number;\r\n ButtonName: string;\r\n UserId: number;\r\n SchemaId: number;\r\n FormJson: string;\r\n Name : string;\r\n}\r\n","export class NodeModel {\r\n id: number;\r\n parentId: number;\r\n name: string;\r\n orderNo:number;\r\n}\r\n","\r\nexport class ReportModel {\r\n id: number;\r\n nodeId: number;\r\n connectionId: number;\r\n name: string;\r\n description: string;\r\n preSql: string;\r\n preSqlDesc: string;\r\n preSqlIsActive: boolean;\r\n mainSql: string;\r\n useInWeb: boolean;\r\n useInMobile: boolean;\r\n users: string;\r\n groups: string;\r\n gridStorage: string;\r\n pivotStorage: string;\r\n reportType: number;\r\n addedUser: number;\r\n addedDate: Date\r\n}\r\n","export class WebmsgModel {\r\n id: number;\r\n user_id: string;\r\n message: string;\r\n message_title: string;\r\n message_type: string;\r\n is_read: boolean;\r\n msg_show_type: number;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'searchFilter'\r\n})\r\nexport class SearchFilterPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any, filterMetadata?: any): any {\r\n\r\n if (!value) return null;\r\n if (!args) return value;\r\n\r\n let returnList = value\r\n\r\n let queryObject = JSON.parse(args)\r\n let objectKeys = Object.keys(queryObject)\r\n\r\n objectKeys.forEach(key => {\r\n if (queryObject[key].value != \"\") {\r\n \r\n returnList = returnList.filter(function (data) {\r\n \r\n return returnList = JSON.stringify(data[key]).toString().toLowerCase().includes(queryObject[key].value.toLowerCase());\r\n });\r\n\r\n let AllArray = this.fixTurkishLetter(value,queryObject[key].value)\r\n AllArray.forEach(element => {\r\n if (!returnList.includes(element)) {\r\n returnList.push(element)\r\n }\r\n })\r\n\r\n return returnList\r\n \r\n }\r\n })\r\n\r\n filterMetadata.count = returnList.length;\r\n\r\n return returnList; \r\n \r\n }\r\n\r\n fixTurkishLetter(value,stringValue) {\r\n\r\n let AllArray = []\r\n\r\n // Big I\r\n if (stringValue.includes(\"I\")) {\r\n let turkish = stringValue.toLowerCase();\r\n\r\n turkish = turkish.replace(/[\\i]+/g, \"ı\")\r\n\r\n const turkishArray = value.filter(function (data) {\r\n return JSON.stringify(data).toString().toLowerCase().includes(turkish);\r\n });\r\n\r\n AllArray = AllArray.concat(turkishArray)\r\n }\r\n\r\n // Big İ char ignored\r\n if (stringValue.includes(\"İ\")) {\r\n let turkish2 = stringValue.toLowerCase();\r\n\r\n turkish2 = turkish2.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\")\r\n\r\n const turkishArray2 = value.filter(function (data) {\r\n return JSON.stringify(data).toString().toLowerCase().includes(turkish2);\r\n });\r\n\r\n AllArray = AllArray.concat(turkishArray2)\r\n }\r\n\r\n // Small ı gerekli mi kontrol et\r\n if (stringValue.includes(\"ı\")) {\r\n let turkish3 = stringValue.toLowerCase();\r\n \r\n turkish3 = turkish3.replace(/[\\ı]+/g, \"ı\")\r\n \r\n\r\n const turkishArray3 = value.filter(function (data) {\r\n return JSON.stringify(data).toString().toLowerCase().includes(turkish3);\r\n });\r\n\r\n AllArray = AllArray.concat(turkishArray3)\r\n }\r\n\r\n return AllArray\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'pagination' })\r\nexport class PaginationPipe implements PipeTransform {\r\n transform(value: any[], page, pageSize): any {\r\n page = page - 1;\r\n return [...value.slice(pageSize * page, pageSize * (page + 1))];\r\n }\r\n}\r\n","\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { orderBy } from 'lodash';\r\n\r\n@Pipe({ name: 'sortBy' })\r\nexport class SortByPipe implements PipeTransform {\r\n\r\n transform(value: any[], order = '', column: string = ''): any[] {\r\n if (!value || order === '' || !order) { return value; } // no array\r\n if (value.length <= 1) { return value; } // array with only one item\r\n if (!column || column === '') {\r\n if (order === 'asc') { return value.sort() }\r\n else { return value.sort().reverse(); }\r\n } // sort 1d array\r\n return orderBy(value, [column], [order]);\r\n }\r\n}\r\n\r\n// Copied by Medium\r\n// Credit: \"https://mdmoin07.medium.com/sort-pipe-in-angular-6-7-f22475cc4054\"\r\n// Credit: \"https://mdmoin07.medium.com/sort-orderby-pipe-in-angular-5-6-7-8-9-part-ii-30351d1c5f1f\"\r\n\r\n/* Example Usage\r\n *ngFor=\"let c of oneDimArray | sortBy:'asc'\"\r\n *ngFor=\"let c of arrayOfObjects | sortBy:'asc':'propertyName'\"\r\n*/","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { PlatformLocation } from '@angular/common';\r\n\r\n@Injectable()\r\nexport class AppInfoService {\r\n\r\n public RiverEntity: any = {};\r\n public currentUser: any = {\r\n id: 1,\r\n color: \"red\",\r\n subUsers: []\r\n };\r\n public homeTabs = {\r\n dashboard: \"1\",\r\n scheduler: \"2\",\r\n task: \"3\",\r\n report: \"4\",\r\n }\r\n\r\n public chatMessageEnum = {\r\n User: 0,\r\n Group: 1,\r\n NotChat: 2\r\n }\r\n\r\n public parameters: any;\r\n\r\n public chatBoxMessageOpen: any = false;\r\n public chatSelectedUserGlobal: any = null;\r\n\r\n constructor(private platformLocation: PlatformLocation) { }\r\n\r\n public get title() {\r\n return 'RIVER';\r\n }\r\n\r\n public get appUrl() {\r\n return/* \"http://localhost:53007/\";//\"http://localhost:53007/\";//*/(this.platformLocation as any).location.origin + \"/\";\r\n }\r\n\r\n public get httpOptions() {\r\n return {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8'\r\n })\r\n };\r\n }\r\n\r\n public get httpOptionsFile() {\r\n return {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'multipart/form-data'\r\n })\r\n };\r\n }\r\n\r\n\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { NgxSpinnerService } from \"ngx-spinner\";\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { AppInfoService } from '../app-info.service';\r\nimport notify from \"devextreme/ui/notify\";\r\nimport { ComponentService } from '../../../formdesigner/component.service';\r\n@Injectable()\r\nexport class AuthService {\r\n loggedIn = false;\r\n isFormBuilder = false;\r\n reportingPage = false;\r\n constructor(private router: Router, private componentService: ComponentService, public appInfo: AppInfoService, private http: HttpClient, private spinner: NgxSpinnerService) { }\r\n\r\n logInWithGuid(guid: string) {\r\n let params = new HttpParams().set(\"guid\", guid);\r\n this.http.get(this.appInfo.appUrl + \"api/auth/loginWithGuid\", { params: params }).subscribe((result: any) => {\r\n if (result.entity == null)\r\n this.logOut();\r\n else\r\n this.loginResult(result.entity, false, result.taskInfo);\r\n\r\n }, error => {\r\n });\r\n }\r\n logIn(userName: string, password: string, rememberMe: boolean, setLanguage: any) {\r\n\r\n this.spinner.show(\"mainspinner\");\r\n let params = new HttpParams().set(\"userName\", userName).set(\"password\", password).set(\"lang\", setLanguage);\r\n this.http.get(this.appInfo.appUrl + \"api/auth/login\", { params: params }).subscribe((entity: any) => {\r\n\r\n let taskInfo = { schemeId: entity.openFormId };\r\n taskInfo = entity.openFormId && entity.openFormId != 0 ? taskInfo : null;\r\n this.loginResult(entity, rememberMe, taskInfo);\r\n\r\n }, error => {\r\n this.spinner.hide(\"mainspinner\");\r\n this.showToast(\"Üzgünüz, işlem sırasında bir hata oluştu:(\", \"error\");\r\n console.log(error);\r\n });\r\n }\r\n loginResult(entity: any, rememberMe: boolean, taskInfo: any) {\r\n\r\n if (entity.isConnect) {\r\n\r\n let googleMapKey = entity.integrationApi.GOOGLEMAP;\r\n localStorage.setItem(\"GMAPI\", btoa(typeof googleMapKey != \"undefined\" && googleMapKey != null ? googleMapKey : \"\"));//AIzaSyBfeMCzcIXRN-rBUA19hqwFgngihg99VwQ\r\n\r\n entity.IntegrationApi = {};\r\n\r\n this.appInfo.RiverEntity = entity;\r\n this.appInfo.currentUser = entity.currentUser;\r\n\r\n this.appInfo.parameters = entity.parameters;\r\n\r\n debugger;\r\n localStorage.setItem(\"localUserSession\", JSON.stringify(entity));\r\n // sessionStorage.setItem(\"sessionUser\", \"true\");\r\n\r\n this.loggedIn = true;\r\n\r\n if (rememberMe) localStorage.setItem(\"rememberMe\", \"true\");\r\n else localStorage.setItem(\"rememberMe\", \"false\");\r\n\r\n this.spinner.hide(\"mainspinner\");\r\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n return false;\r\n }\r\n if (taskInfo == null) {\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.redirectTo('/');\r\n }\r\n else {\r\n this.router.navigate(['home'], { state: { id: taskInfo.schemeId, instanceId: taskInfo.instanceId, processFormsId: taskInfo.processFormsId } });\r\n }\r\n\r\n }\r\n else {\r\n this.spinner.hide(\"mainspinner\");\r\n this.showToast(entity.message, \"warning\");\r\n }\r\n }\r\n redirectTo(uri: string) {\r\n\r\n let _domain = window.location.protocol + \"//\" + window.location.host;\r\n window.open(_domain, \"_self\");\r\n //this.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n // this.router.navigate([uri], { state: { pageUuid: this.componentService.createuuid() } }));\r\n }\r\n updateColor(formData) {\r\n let params = new HttpParams().set(\"id\", formData.id).set(\"color\", formData.color);\r\n return this.http.get(this.appInfo.appUrl + \"api/auth/updatecolor\", { params: params });\r\n\r\n // this.spinner.show(\"mainspinner\");\r\n // let params = new HttpParams().set(\"userId\", formData.id).set(\"color\", formData.color);\r\n // this.http.get(this.appInfo.appUrl + \"api/auth/updatecolor\", { params: params }).subscribe((entity: boolean) => {\r\n // return entity;\r\n // }, error => {\r\n // this.spinner.hide(\"mainspinner\");\r\n // this.showToast(\"Üzgünüz, işlem sırasında bir hata oluştu:(\", \"error\");\r\n\r\n // }); \r\n }\r\n updateProfile(profileData): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/auth/updateprofile\", JSON.stringify(profileData), this.appInfo.httpOptions);\r\n }\r\n logOut() {\r\n debugger;\r\n this.loggedIn = false;\r\n localStorage.setItem(\"rememberMe\", \"false\");\r\n //sessionStorage.setItem(\"sessionUser\", \"false\");\r\n localStorage.removeItem(\"localUserSession\");\r\n localStorage.setItem(\"GMAPI\", \"\");\r\n this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n return false;\r\n }\r\n\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate(['/login'], { state: { pageUuid: this.componentService.createuuid() } });\r\n }\r\n\r\n get isLoggedIn() {\r\n return this.loggedIn;\r\n }\r\n\r\n showToast(message, status) {\r\n notify(message, status, 3000);\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n constructor(private router: Router, private authService: AuthService, private appInfo: AppInfoService) { }\r\n\r\n redirectTo(uri: string) {\r\n\r\n let _domain = window.location.protocol + \"//\" + window.location.host;\r\n window.open(_domain, \"_self\");\r\n //this.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n // this.router.navigate([uri]));\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): boolean {\r\n this.authService.isFormBuilder = false;\r\n this.authService.reportingPage = false;\r\n \r\n let rememberMe = localStorage.getItem(\"rememberMe\");\r\n let _localUserSession= localStorage.getItem(\"localUserSession\");\r\n // let sessionUser = sessionStorage.getItem(\"sessionUser\");\r\n // if ((rememberMe && rememberMe == \"true\") || (sessionUser && sessionUser == \"true\")) {\r\n if (_localUserSession && JSON.parse(_localUserSession).currentUser) {\r\n this.authService.loggedIn = true;\r\n let entity = JSON.parse(_localUserSession);\r\n this.appInfo.RiverEntity = entity;\r\n this.appInfo.currentUser = entity.currentUser;\r\n //this.router.navigate(['/']);\r\n return true;\r\n }\r\n else {\r\n this.router.navigate(['/login']);\r\n }\r\n //}\r\n //else {\r\n // const isLoggedIn = this.authService.isLoggedIn;\r\n // const isLoginForm = route.routeConfig.path === 'login';\r\n\r\n // if (isLoggedIn && isLoginForm) {\r\n // this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n // return false;\r\n // }\r\n // this.router.onSameUrlNavigation = 'reload';\r\n // // this.router.navigate(['/']);\r\n // this.redirectTo('/');\r\n // return false;\r\n // }\r\n\r\n // if (!isLoggedIn && !isLoginForm) {\r\n // this.router.navigate(['/login']);\r\n // }\r\n // return isLoggedIn || isLoginForm;\r\n //}\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class FormbuilderGuardService implements CanActivate {\r\n constructor(private router: Router, private authService: AuthService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): boolean {\r\n this.authService.isFormBuilder = true;\r\n return true;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class ReportingGuardService implements CanActivate {\r\n constructor(private router: Router, private authService: AuthService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot): boolean {\r\n this.authService.reportingPage = true;\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { AppInfoService } from '../app-info.service';\r\nimport FileSystemItem from 'devextreme/file_management/file_system_item';\r\nimport UploadInfo from 'devextreme/file_management/upload_info';\r\n\r\nenum Operation {\r\n Add = 1,\r\n Remove = 2,\r\n AddAll = 3,\r\n RemoveAll = 4\r\n}\r\n\r\nenum FileType {\r\n None = 0,\r\n Folder = 1,\r\n File = 2\r\n}\r\n\r\nenum UploadType {\r\n Cancel = 0,\r\n ChangeName = 1,\r\n NewVersion = 2\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileManagementService {\r\n\r\n\r\n\r\n constructor(public appInfo: AppInfoService, private http: HttpClient) {\r\n\r\n }\r\n\r\n getItems(item: any): Observable {\r\n let bodyObject = {}\r\n delete item.Permissions\r\n bodyObject[\"item\"] = item;\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/getitems\", body, this.appInfo.httpOptions);\r\n }\r\n\r\n renameItems(item: any, name: string): Observable {\r\n let bodyObject = {}\r\n delete item.Permissions\r\n bodyObject[\"item\"] = item;\r\n bodyObject[\"name\"] = name;\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/renameitems\", body ,this.appInfo.httpOptions);\r\n }\r\n\r\n copyItem(item: any, destinationDir: FileSystemItem): Observable {\r\n let bodyObject = {}\r\n delete item.Permissions\r\n bodyObject[\"item\"] = item;\r\n bodyObject[\"destinationDir\"] = destinationDir\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/copyitem\", body, this.appInfo.httpOptions);\r\n }\r\n\r\n moveItem(item: any, destinationDir: FileSystemItem): Observable {\r\n let bodyObject = {}\r\n delete item.Permissions\r\n bodyObject[\"item\"] = item;\r\n bodyObject[\"destinationDir\"] = destinationDir\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/moveitem\", body, this.appInfo.httpOptions);\r\n }\r\n\r\n deleteItem(item: any): Observable {\r\n let bodyObject = {}\r\n delete item.Permissions\r\n bodyObject[\"item\"] = item;\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/deleteitem\", body, this.appInfo.httpOptions);\r\n }\r\n\r\n createDirectory(parentDir: any, name: string): Observable {\r\n console.log(parentDir)\r\n let bodyObject = {}\r\n delete parentDir.Permissions\r\n bodyObject[\"parentDir\"] = parentDir;\r\n bodyObject[\"name\"] = name\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/createdirectory\", body, this.appInfo.httpOptions);\r\n }\r\n\r\n lastUpload = null;\r\n uploadFileChunk(fileData: File, chunksInfo: any, destinationDir: any, uploadType: any, fileobj: any = \"\") {\r\n\r\n const formData: FormData = new FormData();\r\n formData.append('file', fileData, fileData.name);\r\n\r\n let bodyObject = {}\r\n delete destinationDir.Permissions\r\n bodyObject[\"destinationDir\"] = destinationDir\r\n bodyObject[\"fileData\"] = fileobj\r\n bodyObject[\"chunksInfo\"] = chunksInfo\r\n bodyObject[\"uploadType\"] = uploadType\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n\r\n formData.append('info', JSON.stringify(bodyObject));\r\n\r\n const url = this.appInfo.appUrl + \"api/filemanagement/uploadfilechunky\"\r\n let headers = new HttpHeaders({\r\n 'Accept': '*/*',\r\n 'Access-Control-Allow-Origin': url,\r\n 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, PUT, PATCH, DELETE',\r\n 'Access-Control-Allow-Headers': 'origin,X-Requested-With,content-type,accept',\r\n 'Access-Control-Allow-Credentials': 'true'\r\n\r\n })\r\n\r\n return this.http.post(url, formData, { headers });\r\n \r\n }\r\n\r\n abortFileUpload(fileData: File, chunksInfo: UploadInfo, destinationDir: any) {\r\n let bodyObject = {}\r\n delete destinationDir.Permissions\r\n bodyObject[\"fileData\"] = fileData;\r\n bodyObject[\"chunkMetadata\"] = chunksInfo\r\n bodyObject[\"destinationDir\"] = destinationDir\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/abortFileUpload\", body, this.appInfo.httpOptions);\r\n }\r\n /*\r\n downloadItem(fileSystemItems: any) {\r\n\r\n let bodyObject = {}\r\n delete fileSystemItems.Permissions\r\n bodyObject[\"fileSystemItems\"] = fileSystemItems;\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n console.log(fileSystemItems)\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/downloadItem\", body, this.appInfo.httpOptions)\r\n\r\n }\r\n\r\n downloadVersion(fileId: any) {\r\n\r\n let bodyObject = {}\r\n bodyObject[\"fileDataId\"] = fileId;\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/downloadVersion\", body, this.appInfo.httpOptions)\r\n\r\n }*/\r\n\r\n savePermission(fileItem: any) {\r\n debugger;\r\n let bodyObject = {}\r\n \r\n bodyObject[\"permissionJsonString\"] = JSON.stringify(fileItem.Permissions)\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n delete fileItem.Permissions\r\n bodyObject[\"fileItem\"] = fileItem\r\n \r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/savefilepermission\", body, this.appInfo.httpOptions)\r\n }\r\n\r\n saveSettings(settings: any) {\r\n debugger;\r\n let bodyObject = {}\r\n bodyObject[\"fileManagementSettings\"] = settings\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/savefilemanagementsettings\", body, this.appInfo.httpOptions)\r\n }\r\n\r\n getFileManagementSettings() {\r\n return this.http.get(this.appInfo.appUrl + \"api/filemanagement/getfilemanagementsettings\", this.appInfo.httpOptions)\r\n }\r\n\r\n getUserPermissionsFromFileManagementSettings() {\r\n let bodyObject = {}\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/getUserPermissionsFromFileManagementSettings\", body, this.appInfo.httpOptions)\r\n }\r\n\r\n checkFileNameForNewVersionOrNewFileUpload(fileData: any, destinationDir: any) {\r\n console.log(fileData)\r\n let bodyObject = {}\r\n bodyObject[\"fileName\"] = fileData.name\r\n bodyObject[\"destinationDir\"] = destinationDir\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/checkFileNameForNewVersionOrNewFileUpload\", body, this.appInfo.httpOptions)\r\n }\r\n\r\n searchFile(search) {\r\n let bodyObject = {}\r\n bodyObject[\"search\"] = search;\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/searchFile\", body, this.appInfo.httpOptions)\r\n }\r\n\r\n downloadFileManagementDataVM(fileId,type) {\r\n let bodyObject = {}\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n bodyObject[\"type\"] = type\r\n bodyObject[\"fileDataId\"] = fileId\r\n const body = JSON.stringify(bodyObject)\r\n console.log(body)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/downloadFileManagementDataVM\", body, this.appInfo.httpOptions)\r\n }\r\n\r\n public saveFileManagementItemVM(fileItem, type) {\r\n let bodyObject = {}\r\n bodyObject[\"userId\"] = this.appInfo.currentUser.id\r\n bodyObject[\"type\"] = type\r\n bodyObject[\"fileItem\"] = fileItem\r\n const body = JSON.stringify(bodyObject)\r\n return this.http.post(this.appInfo.appUrl + \"api/filemanagement/saveFileManagementItemVM\", body, this.appInfo.httpOptions)\r\n }\r\n\r\n base64ToArrayBuffer(base64) {\r\n var binary_string = window.atob(base64);\r\n var len = binary_string.length;\r\n var bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n return bytes.buffer;\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { FormModel } from '../../../shared/models/form-model';\r\nimport { AppInfoService } from '../app-info.service';\r\nimport { MenuNode } from '../../models/menu-node-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormService {\r\n\r\n constructor(public appInfo: AppInfoService, private http: HttpClient) {\r\n\r\n }\r\n formExport(formData): Observable { \r\n return this.http.post(this.appInfo.appUrl + \"api/forms/formexport\", JSON.stringify(formData), this.appInfo.httpOptions);\r\n }\r\n formFileControl(formData): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/formfilecontrol\", JSON.stringify(formData), this.appInfo.httpOptions);\r\n }\r\n getAllForms() {\r\n return this.http.get(this.appInfo.appUrl + \"api/forms/getall\");\r\n }\r\n\r\n getGroupedForms(): Observable {\r\n return this.http.get(this.appInfo.appUrl + \"api/forms/getformsasgroup\");\r\n }\r\n\r\n getSingleForm(formId: string): Observable {\r\n let params = new HttpParams().set(\"id\", formId.toString());\r\n return this.http.get(this.appInfo.appUrl + \"api/forms/getsingle\", { params: params });\r\n }\r\n\r\n getMenuFormId(_guid: string): Observable {\r\n let params = new HttpParams().set(\"guid\", _guid);\r\n return this.http.get(this.appInfo.appUrl + \"api/forms/getmenuformid\", { params: params });\r\n }\r\n\r\n geFormField(formId: string): Observable {\r\n let params = new HttpParams().set(\"id\", formId.toString());\r\n return this.http.get(this.appInfo.appUrl + \"api/forms/getfield\", { params: params });\r\n }\r\n\r\n\r\n saveForm(formData): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/save\", JSON.stringify(formData), this.appInfo.httpOptions);\r\n }\r\n\r\n updateForm(formData,userId): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/update?userId=\" + userId, JSON.stringify(formData), this.appInfo.httpOptions);\r\n }\r\n\r\n updateFormFields(id, formData) {\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/updatefields\", { id: id, data: JSON.stringify(formData) }, this.appInfo.httpOptions);\r\n }\r\n\r\n deleteForm(formId: number): Observable {\r\n //let params = new HttpParams().set(\"id\", formId.toString()); \r\n return this.http.get(this.appInfo.appUrl + \"api/form/delete?id=\" + formId);\r\n }\r\n\r\n getFormFilesData(objArray): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/getmenufiledata\", JSON.stringify(objArray), this.appInfo.httpOptions);\r\n }\r\n\r\n saveMenuForm(formData, fileIds = []): Observable {\r\n\r\n let fileIdsStr = \"\";\r\n\r\n if (fileIds.length > 0) {\r\n fileIdsStr += \"&fileIds=\" + fileIds;\r\n }\r\n\r\n console.log(this.appInfo.appUrl + \"api/forms/savemenuform?isArray=false\" + fileIdsStr)\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/savemenuform?isArray=false\" + fileIdsStr, JSON.stringify(formData), this.appInfo.httpOptions);\r\n }\r\n\r\n updateJustMenuData(formJustDataArray): Observable { \r\n return this.http.post(this.appInfo.appUrl + \"api/forms/updatejustmenudata\", JSON.stringify(formJustDataArray), this.appInfo.httpOptions);\r\n }\r\n\r\n checkMenuForm(formData): Observable {\r\n\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/savemenuform?isArray=true\", JSON.stringify(formData), this.appInfo.httpOptions);\r\n }\r\n\r\n deleteMenuForm(formData, indexRow): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/deletemenuform\", JSON.stringify(formData), this.appInfo.httpOptions);\r\n }\r\n\r\n getMenuForm(formId: string, nodeKey: string, key: number, userId: string) {\r\n let params = new HttpParams().set(\"formId\", formId).set(\"nodeKey\", nodeKey).set(\"rowId\", key.toString()).set(\"userId\", userId);\r\n return this.http.get(this.appInfo.appUrl + \"api/forms/getmenuform\", { params: params });\r\n }\r\n\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ` + error.status + `\\nMessage: ` + error.message;\r\n }\r\n console.log(errorMessage);\r\n return throwError(errorMessage);\r\n }\r\n\r\n saveMenuFilesData(objArray, processFormId, deleteFileIds = []): Observable {\r\n\r\n let deleteFileIdsStr = \"\";\r\n if (deleteFileIds.length > 0)\r\n deleteFileIdsStr = \"&deleteFileIds=\" + deleteFileIds;\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/savemenufiledata?processFormId=\" + processFormId + deleteFileIdsStr, JSON.stringify(objArray), this.appInfo.httpOptions);\r\n }\r\n\r\n getMenuFilesData(objArray): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/forms/getmenufiledata\", JSON.stringify(objArray), this.appInfo.httpOptions);\r\n }\r\n\r\n //getMenuFilesDataMultiple(objArray): Observable {\r\n // return this.http.post(this.appInfo.appUrl + \"api/forms/getmenufiledatamultiple\", JSON.stringify(objArray), this.appInfo.httpOptions);\r\n //}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { AppInfoService } from '../app-info.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GenericService {\r\n sqlParseParameters: any = [];\r\n constructor(public appInfo: AppInfoService, private http: HttpClient) {\r\n\r\n }\r\n replaceAll(str, find, replace) {\r\n return str.replace(new RegExp(find, 'g'), replace).replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\r\n }\r\n cleanSpaces(str, replace) {\r\n str = this.replaceAll(str, \" \", replace);\r\n str = this.replaceAll(str, \" \", replace);\r\n return str;\r\n }\r\n cleanNewline(str, replace) {\r\n str = this.replaceAll(str, \"\\r\\n|\\r|\\n\", replace);\r\n return str;\r\n }\r\n executeQuerySecurited(queryString, connectionStringId/*, currentUserId*/): Observable {\r\n queryString = this.replaceAll(queryString, \"{CURRENTUSERID}\", this.appInfo.currentUser.id);\r\n let parametersAll = this.appInfo.RiverEntity.parameters;\r\n Object.keys(parametersAll).forEach(f => {\r\n queryString = this.replaceAll(queryString, f, parametersAll[f]);\r\n });\r\n let sqlParse = this.ParseSql(queryString);\r\n let sqlSpParse = this.ParseSpSql(queryString);\r\n if ((sqlParse && sqlParse.length > 0) || (sqlSpParse && sqlSpParse.length > 0)) {\r\n queryString = this.cleanNewline(queryString, \" \");\r\n queryString = this.cleanSpaces(queryString, \" \");\r\n queryString = this.ReplaceSqlParameters(queryString);\r\n }\r\n\r\n let queryStringEncode = encodeURIComponent(queryString);\r\n let params = new HttpParams().set(\"query\", queryStringEncode).set(\"id\", connectionStringId)/*.set(\"userId\", currentUserId)*/;\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/executequerysecurited\", { params: params });\r\n }\r\n\r\n executeQueryMenu(arraySqlColumns): Observable {\r\n let queryStringEncode = encodeURIComponent(JSON.stringify(arraySqlColumns));\r\n let params = new HttpParams().set(\"sqlColumns\", queryStringEncode)/*.set(\"userId\", currentUserId)*/;\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/executequerymenu\", { params: params });\r\n }\r\n\r\n fillDesignerDataSource(): Observable {\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/filldesignerdatasource\");\r\n }\r\n\r\n //getIPAddress() {\r\n // return this.http.get(\"https://api.ipify.org?format=jsonp\");\r\n //} \r\n\r\n getlogininit(languageCode, type): Observable {\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/getlogininit?lang=\" + languageCode + \"&type=\" + type);\r\n }\r\n\r\n getChatUserList(userId): Observable {\r\n return this.http.get(this.appInfo.appUrl + \"api/user/getchatuserlist?userId=\" + userId);\r\n }\r\n\r\n chatMessageSend(chatMessage): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/generic/sendmessage\", JSON.stringify(chatMessage), this.appInfo.httpOptions)\r\n }\r\n chatMessageFileDownload(_id): Observable { \r\n return this.http.get(this.appInfo.appUrl + \"api/generic/chatmessagefiledownload?id=\" + _id);\r\n }\r\n\r\n chatMessageFileSend(chatMessageFile): Observable {\r\n //fileData \r\n //fileName \r\n //fileExtension\r\n //fileType \r\n //fileIsImage \r\n //fileSize \r\n return this.http.post(this.appInfo.appUrl + \"api/generic/sendmessagefile\", JSON.stringify(chatMessageFile), this.appInfo.httpOptions)\r\n }\r\n\r\n chatGroupAddService(chatGroupAdd): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/generic/chatgroupadd\", JSON.stringify(chatGroupAdd), this.appInfo.httpOptions)\r\n }\r\n\r\n getMessageWithPage(userId, receiverId, page): Observable {\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/getmessagewithpage?receiverId=\" + receiverId + \"&page=\" + page + \"&userId=\" + userId)\r\n }\r\n\r\n sendPassword(pwChangeEmail): Observable {\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/sendpassword?email=\" + pwChangeEmail);\r\n }\r\n\r\n setUserLanguage(userid, lang): Observable {\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/setuserlang?userId=\" + userid + \"&lang=\" + lang);\r\n }\r\n\r\n ReplaceSqlParameters(queryString) {\r\n\r\n var queryStringClean = queryString;\r\n let sqlParse = this.ParseSql(queryString);\r\n\r\n var sqlParseParametersLocal = this.sqlParseParameters;\r\n if (sqlParseParametersLocal.length > 0) {\r\n\r\n for (var i = 0; i < sqlParseParametersLocal.length; i++) {\r\n\r\n if (sqlParseParametersLocal[i].value && sqlParseParametersLocal[i].value != \"\") {\r\n\r\n var header = sqlParseParametersLocal[i].header.toLowerCase();\r\n var name = sqlParseParametersLocal[i].name.toLowerCase();\r\n //if (name.indexOf(\"||\")) {\r\n // let headerSplit = header.split(\"||\");\r\n // let nameSplit = name.split(\"||\");\r\n // for (var j = 0; j < headerSplit.length; j++) {\r\n // let appendReplaceText = \"[\" + headerSplit[j] + \",\" + nameSplit[j] + \"]\";\r\n // queryStringClean = queryStringClean.toLowerCase().replace(appendReplaceText, sqlParseParametersLocal[i].value); \r\n // }\r\n //}\r\n //else {\r\n let appendReplaceText = \"[\" + header + \",\" + name + \"]\";\r\n queryStringClean = queryStringClean.toLowerCase().replace(appendReplaceText, sqlParseParametersLocal[i].value);\r\n if (queryStringClean.indexOf(\"{[\") > -1) {\r\n var _type = sqlParseParametersLocal[i].type.toLowerCase();\r\n let _appendReplaceText = \"[\" + header + \",\" + name + \",\" + _type + \"]\";\r\n let _value = sqlParseParametersLocal[i].value;\r\n if (_type == \"date\")\r\n _value = _value.getFullYear() + \"-\" + (_value.getMonth() + 1) + \"-\" + _value.getDate();\r\n queryStringClean = queryStringClean.toLowerCase().replace(_appendReplaceText, _value);\r\n }\r\n //}\r\n queryStringClean = this.cleanSpaces(queryStringClean, \" \");\r\n\r\n }\r\n else {\r\n queryStringClean = this.SqlParseItemEmpty(sqlParse[i], queryStringClean);\r\n }\r\n\r\n }\r\n\r\n } else {\r\n\r\n for (var i = 0; i < sqlParse.length; i++) {\r\n\r\n queryStringClean = this.SqlParseItemEmpty(sqlParse[i], queryStringClean);\r\n\r\n }\r\n\r\n }\r\n queryStringClean = this.replaceAll(queryStringClean, \"{\", \"\");\r\n queryStringClean = this.replaceAll(queryStringClean, \"}\", \"\");\r\n queryStringClean = this.cleanSqlSyntax(queryStringClean);\r\n return queryStringClean;\r\n\r\n }\r\n public SqlParseItemEmpty(sqlParseItem, queryString): any {\r\n var queryStringClean = queryString;\r\n\r\n var replacedSql = sqlParseItem.value;\r\n var whereControlFalseStr = \"\";\r\n if (replacedSql.indexOf(\" where \") > -1) {\r\n whereControlFalseStr = \"\";\r\n replacedSql = replacedSql.trim().toLowerCase().replace(\"where \", \"\");\r\n replacedSql = this.cleanSpaces(replacedSql.toLowerCase(), \" \");\r\n }\r\n else {\r\n whereControlFalseStr = \"\";\r\n if (replacedSql.trim().toLowerCase().startsWith(\"or \"))\r\n whereControlFalseStr = replacedSql.trim().replace(/^or /ig, '')\r\n else if (replacedSql.trim().toLowerCase().startsWith(\"and \"))\r\n whereControlFalseStr = replacedSql.trim().replace(/^and /ig, '')\r\n }\r\n queryStringClean = queryStringClean.toLowerCase().replace(replacedSql.toLowerCase(), \"\");\r\n var whereOrAnd = this.cleanSpaces(queryStringClean.toLowerCase(), \" \");\r\n if (whereControlFalseStr != \"\" && (whereOrAnd.indexOf(\"where or \") == -1 && whereOrAnd.indexOf(\"where and \") == -1))\r\n queryStringClean = queryStringClean.toLowerCase().replace(whereControlFalseStr.toLowerCase(), \"\");\r\n\r\n queryStringClean = this.cleanSqlSyntax(queryStringClean);\r\n\r\n if (queryStringClean.trim().toLowerCase().endsWith(' where'))\r\n queryStringClean = queryStringClean.trim().slice(0, -5);\r\n\r\n return queryStringClean;\r\n }\r\n cleanSqlSyntax(sqlText) {//\r\n sqlText = this.cleanSqlSyntaxPart(sqlText);\r\n sqlText = sqlText.toLowerCase().replace(\" where or \", \" where \").toLowerCase().replace(\" where and \", \" where \");\r\n sqlText = this.cleanSqlSyntaxPart(sqlText);\r\n return sqlText;\r\n }\r\n cleanSqlSyntaxPart(sqlText) {\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\" where )\", \" where \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\"where ( )\", \" where \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\"where ()\", \" where \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\" and ( )\", \" \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\" or ( )\", \" \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\" and ()\", \" \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\" or ()\", \" \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\" where ( or\", \" where ( \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n sqlText = sqlText.replace(\" where ( and\", \" where ( \");\r\n sqlText = this.cleanSpaces(sqlText.toLowerCase(), \" \");\r\n return sqlText;\r\n }\r\n public ParseSql(queryString): any {\r\n\r\n var pattern = /( and | or | where |)\\{[a-zA-Z0-9 _\\[\\],'=ıİöÖçÇğĞ()üÜşŞ%]+\\}/ig;\r\n //var res_pattern = queryString.match(pattern);\r\n var arrayResult = [];\r\n var patt = new RegExp(pattern);\r\n if (patt.test(queryString)) {\r\n //var str = \"select * from ETR_USERLIST where {USERNAME=[Kullanıcı Adı,USERNAME]} AND FULLNAME like '%a%'\";\r\n var res_pattern = queryString.match(pattern);//{USERNAME=[Kullanıcı Adı,USERNAME]}\r\n if (res_pattern && res_pattern.length) {\r\n for (var i = 0; i < res_pattern.length; i++) {\r\n var matchSecond = \"\";\r\n var whereChild = res_pattern[i];\r\n // whereChild = whereChild.replace(\"{\", \"\").replace(\"}\", \"\"); // USERNAME=[Kullanıcı Adı,USERNAME]\r\n\r\n var pattern_first = /( and | or | where |)[a-zA-Z0-9_]+(=| = |(\\slike\\s)|(\\sbetween\\s))/ig; // USERNAME\r\n var pattern_second = /(=|(\\slike\\s)|(\\sbetween\\s))[a-zA-Z0-9_, \\[\\]ıİöÖç'%ÇğĞ()üÜşŞ]+/ig; // =[Kullanıcı Adı,USERNAME] ya da like [Kullanıcı Adı,USERNAME] ya da between [Kullanıcı Adı,USERNAME]\r\n\r\n var whereChildClear = whereChild.replace(/{/ig, '').replace(/}/ig, '');\r\n\r\n let whereVariable = whereChildClear.match(pattern_second);\r\n if (whereVariable) {\r\n matchSecond = whereVariable[0];\r\n\r\n let equalityObject = \"=\";\r\n if (matchSecond.toLowerCase().indexOf(\" between '[\") > -1 || matchSecond.toLowerCase().indexOf(\" between [\") > -1 || matchSecond.toLowerCase().indexOf(\" between convert\") > -1) {\r\n equalityObject = \"between\";\r\n matchSecond = matchSecond.toLowerCase().replace(\" between \", \"\");\r\n } else if (matchSecond.toLowerCase().indexOf(\" like '[\") > -1 || matchSecond.toLowerCase().indexOf(\" like '%[\") > -1 || matchSecond.toLowerCase().indexOf(\" like [\") > -1) {\r\n equalityObject = \"like\";\r\n matchSecond = matchSecond.toLowerCase().replace(\" like \", \"\");\r\n }\r\n else {\r\n equalityObject = \"=\";\r\n matchSecond = matchSecond.toLowerCase().replace(\"=\", \"\");\r\n }\r\n //convert(datetime,başlangıç tarihi,bastarih]',103) and convert(datetime,bitiş tarihi,bittarih]',103)\r\n let secondHeader = \"\";\r\n let secondValue = \"\";\r\n let valSingleQuotes = false;\r\n let valPercentageMark = false;\r\n\r\n matchSecond = matchSecond.trim().replace(/^\\[|\\]$/ig, '');\r\n if (matchSecond.indexOf(\"'%[\") > -1 && matchSecond.indexOf(\"]%'\") > -1) {\r\n matchSecond = matchSecond.trim().replace(/'%\\[|\\]%'/ig, '');\r\n valSingleQuotes = true;\r\n valPercentageMark = true;\r\n }\r\n else if (matchSecond.indexOf(\"'[\") > -1 && matchSecond.indexOf(\"]'\") > -1) {\r\n matchSecond = matchSecond.trim().replace(/'\\[|\\]'/ig, '');\r\n valSingleQuotes = true;\r\n }\r\n\r\n if (equalityObject != \"between\") {\r\n\r\n var matchSecondSplit = matchSecond.split(\",\");\r\n\r\n if (matchSecondSplit.length == 1) {\r\n secondHeader = matchSecondSplit[0];\r\n secondValue = matchSecondSplit[0];\r\n }\r\n else {\r\n secondHeader = matchSecondSplit[matchSecondSplit.length - 2];\r\n secondValue = matchSecondSplit[matchSecondSplit.length - 1];\r\n }\r\n\r\n }\r\n else if (equalityObject == \"between\") {\r\n //convert(datetime,başlangıç tarihi,bastarih,103) and convert(datetime,bitiş tarihi,bittarih,103) // 1 2 4 5 \r\n\r\n //başlangıç tarihi,bastarih and bitiş tarihi,bittarih // 0 1.split(\" and \")[0] 1.split(\" and \")[1] 2\r\n\r\n //matchSecond\r\n var matchSecondBetweenSplit = matchSecond.split(\",\");\r\n if (matchSecond.toLowerCase().indexOf(\"convert\") > -1) {\r\n secondHeader = matchSecondBetweenSplit[1] + \"||\" + matchSecondBetweenSplit[4];\r\n secondValue = matchSecondBetweenSplit[2] + \"||\" + matchSecondBetweenSplit[5];\r\n }\r\n else {\r\n var matchSecondNotConvertSplit = matchSecond.split(\",\");\r\n secondHeader = matchSecondBetweenSplit[0] + \"||\" + matchSecondBetweenSplit[1].split(\" and \")[1];\r\n secondValue = matchSecondBetweenSplit[1].split(\" and \")[0] + \"||\" + matchSecondBetweenSplit[2];\r\n }\r\n\r\n }\r\n\r\n ////\"convert(datetime,başlangıç tarihi,bastarih,103) and convert(datetime,bitiş tarihi,bittarih,103)\"\r\n ////matchSecond\r\n //matchSecond.replace(\"\",\"\");\r\n\r\n\r\n\r\n\r\n //secondHeader = secondHeader.replace(\"[\", \"\").replace(\"]\", \"\").replace(/'/g, \"\"); \r\n //secondHeader = secondHeader.replace(\"[\", \"\").replace(\"]\", \"\").replace(/'/g, \"\");\r\n\r\n let first = \"\";\r\n first = whereChildClear.match(pattern_first)[0];\r\n arrayResult.push({ left: first, rightName: secondHeader, rightvalue: secondValue, SingleQuote: valSingleQuotes, PercentageMark: valPercentageMark, value: whereChild });\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n return arrayResult;\r\n\r\n }\r\n public ParseSpSql(spString): any {\r\n\r\n var pattern = /exec [a-zA-Z0-9_]* (\\{[a-zA-Z0-9 _\\[\\],'=ıİöÖçÇğĞ()üÜşŞ%]+\\},*)*/ig;\r\n //var res_pattern = queryString.match(pattern);\r\n var arrayResult = [];\r\n var patt = new RegExp(pattern);\r\n if (patt.test(spString)) {\r\n spString = this.cleanNewline(spString, \" \");\r\n spString = this.cleanSpaces(spString, \" \");\r\n spString = this.replaceAll(spString, \" , \", \",\");\r\n spString = this.replaceAll(spString, \", \", \",\");\r\n spString = this.replaceAll(spString, \" ,\", \",\");\r\n spString = spString.trim();\r\n\r\n //exec spuserlist 5,'ADMIN'\r\n var patternParameters = /(\\{[a-zA-Z0-9 _\\[\\],'=ıİöÖçÇğĞ()üÜşŞ%]+\\},*)/ig\r\n var res_pattern = spString.match(patternParameters);\r\n if (res_pattern && res_pattern.length) {\r\n for (var i = 0; i < res_pattern.length; i++) {\r\n let _temp = res_pattern[i];\r\n _temp = _temp.replace(\"{[\", \"\");\r\n _temp = _temp.replace(\"]}\", \"\");\r\n let _tempParse = _temp.split(\",\");\r\n arrayResult.push({ header: _tempParse[0], name: _tempParse[1], type: _tempParse[2] });\r\n }\r\n }\r\n }\r\n return arrayResult;\r\n }\r\n\r\n getDataTable(queryString, connectionString): Observable {\r\n let params = new HttpParams().set(\"query\", queryString).set(\"connectionString\", connectionString);\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/getquerydata\", { params: params });\r\n }\r\n\r\n executeQuery(queryString, connectionString): Observable {\r\n let params = new HttpParams().set(\"query\", queryString).set(\"connectionString\", connectionString);\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/executequery\", { params: params });\r\n }\r\n\r\n getTables(id): Observable {\r\n let params = new HttpParams().set(\"connectionStringId\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/gettables\", { params: params });\r\n }\r\n\r\n getTableColumns(tableName, id): Observable {\r\n let params = new HttpParams().set(\"tableName\", tableName).set(\"connectionStringId\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/gettablecolumns\", { params: params });\r\n }\r\n\r\n getSpeechToText(audioBase64): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/generic/getspeechtotext\", JSON.stringify(audioBase64), this.appInfo.httpOptions)\r\n }\r\n\r\n getConnection(id) {\r\n let params = new HttpParams().set(\"id\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/getconnection\", { params: params });\r\n }\r\n\r\n convertToBase64(data) {\r\n let params = new HttpParams().set(\"data\", data);\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/converttobase64\", { params: params });\r\n }\r\n\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n console.log(errorMessage);\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { AppInfoService } from '../app-info.service';\r\nimport { SchemeModel } from '../../../shared/models/scheme-model';\r\nimport { CurrentFormModel } from '../../models/current-form-model';\r\nimport { TaskModel } from '../../models/task-model';\r\nimport { CurrentFormDataModel } from '../../models/form-data-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InstanceService {\r\n\r\n constructor(public appInfo: AppInfoService, private http: HttpClient) {\r\n\r\n }\r\n\r\n startInstance(taskData, isForm = true): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/instance/startinstance?isForm=\" + isForm, JSON.stringify(taskData), this.appInfo.httpOptions);\r\n }\r\n\r\n getSchemaForm(schemaId, isReadonly) {\r\n let params = new HttpParams().set(\"schemaId\", schemaId).set(\"userId\", this.appInfo.currentUser.id).set(\"isReadonly\", isReadonly);\r\n return this.http.get(this.appInfo.appUrl + \"api/instance/getschemaform\", { params: params });\r\n }\r\n\r\n getCurrentForm(instanceId, processFormId, isReadonly) {\r\n let params = new HttpParams().set(\"instanceId\", instanceId).set(\"processFormId\", processFormId).set(\"userId\", this.appInfo.currentUser.id).set(\"isReadonly\", isReadonly);\r\n return this.http.get(this.appInfo.appUrl + \"api/instance/getcurrentform\", { params: params });\r\n }\r\n getHistoryCurrentForm(id, instanceId, processFormId, isReadonly) {\r\n let params = new HttpParams().set(\"id\", id).set(\"instanceId\", instanceId).set(\"processFormId\", processFormId).set(\"userId\", this.appInfo.currentUser.id).set(\"isReadonly\", isReadonly);\r\n return this.http.get(this.appInfo.appUrl + \"api/instance/gethistorycurrentform\", { params: params });\r\n }\r\n saveFormFilesData(objArray, processFormId, deleteFileIds = []): Observable {\r\n let deleteFileIdsStr = \"\";\r\n if (deleteFileIds.length > 0)\r\n deleteFileIdsStr = \"&deleteFileIds=\" + deleteFileIds;\r\n return this.http.post(this.appInfo.appUrl + \"api/instance/savefiledata?processFormId=\" + processFormId + deleteFileIdsStr, JSON.stringify(objArray), this.appInfo.httpOptions);\r\n }\r\n getFormFilesData(objArray): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/instance/getfiledata\", JSON.stringify(objArray), this.appInfo.httpOptions);\r\n }\r\n getProcessFormWithDataId(_id) {\r\n let params = new HttpParams().set(\"processformdataid\", _id);\r\n return this.http.get(this.appInfo.appUrl + \"api/instance/getprocessformwithdataid\", { params: params });\r\n }\r\n setProcessFormJson(_obj) {\r\n //setProcessForm(_pForm.id, _pForm.formJson)\r\n //let params = new HttpParams().set(\"processformid\", _id).set(\"fromJson\", formJson);\r\n //return this.http.get(this.appInfo.appUrl + \"api/instance/setprocessformjson\", { params: params });\r\n return this.http.post(this.appInfo.appUrl + \"api/instance/setprocessformjson\", JSON.stringify(_obj), this.appInfo.httpOptions);\r\n }\r\n saveFormData(data, schemaId, curentCustomerFormId, customerButton, curentCustomer, curentPrice, curentHirePurchase, curentPaymentDescription, paymentProvider): Observable {\r\n // curentCustomerFormId, customerButton, curentCustomer, curentPrice\r\n\r\n\r\n data.CustomerFormId = curentCustomerFormId.toString();\r\n data.CustomerFormComponent = JSON.stringify(customerButton);\r\n data.Customer = curentCustomer.toString();\r\n data.Price = curentPrice.toString();\r\n data.HirePurchase = curentHirePurchase.toString();\r\n data.PaymentProvider = paymentProvider.toString();\r\n data.PaymentDescription = curentPaymentDescription.toString();\r\n return this.http.post(this.appInfo.appUrl + \"api/instance/savedata?schemaId=\" + schemaId, JSON.stringify(data), this.appInfo.httpOptions);\r\n }\r\n\r\n\r\n liveOpen(meetingRoomName, startDate, hostUrl, participantUrl, meetingType, processFormId): Observable {\r\n // curentCustomerFormId, customerButton, curentCustomer, curentPrice\r\n\r\n let data = {\r\n MeetingRoomName: meetingRoomName,\r\n StartDate: startDate,\r\n HostUrl: hostUrl,\r\n ParticipantUrl: participantUrl,\r\n MeetingType: meetingType,\r\n UserId: parseInt(this.appInfo.currentUser.id),\r\n ProcessFormId: parseInt(processFormId)\r\n };\r\n return this.http.post(this.appInfo.appUrl + \"api/instance/liveopenandcreate\", JSON.stringify(data), this.appInfo.httpOptions);\r\n }\r\n\r\n getHistory(instanceId) {\r\n let params = new HttpParams().set(\"instanceId\", instanceId).set(\"userId\", this.appInfo.currentUser.id);\r\n return this.http.get(this.appInfo.appUrl + \"api/instance/gethistory\", { params: params });\r\n }\r\n\r\n changeFormAvability(formDataId, isAvalible) {\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id).set(\"formDataId\", formDataId).set(\"isAvalible\", isAvalible);\r\n return this.http.get(this.appInfo.appUrl + \"api/instance/changeformavability\", { params: params });\r\n }\r\n\r\n changeMenuFormAvability(formId, pageId, formDataId, isAvalible) {\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id).set(\"formId\", formId).set(\"nodeKey\", pageId).set(\"formDataId\", formDataId).set(\"isAvalible\", isAvalible);\r\n return this.http.get(this.appInfo.appUrl + \"api/instance/changemenuformavability\", { params: params });\r\n }\r\n\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n console.log(errorMessage);\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { AppInfoService } from '../app-info.service';\r\nimport { MailhtmlModel } from '../../models/mailhtml-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MailService {\r\n\r\n constructor(public appInfo: AppInfoService, private http: HttpClient) {\r\n\r\n }\r\n\r\n getHtmlBody(_guid: string): Observable {\r\n let params = new HttpParams().set(\"guid\", _guid);\r\n\r\n return this.http.get(this.appInfo.appUrl + \"api/mail/gethtmlbody\", { params: params });\r\n }\r\n\r\n postHtmlBody(model:any): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/mail/posthtmlbody\", JSON.stringify(model), this.appInfo.httpOptions);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { AppInfoService } from '../app-info.service';\r\nimport { ReportModel } from '../../models/report-model';\r\nimport { NodeModel } from '../../models/node-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReportService {\r\n\r\n constructor(public appInfo: AppInfoService, private http: HttpClient) {\r\n\r\n }\r\n\r\n\r\n saveNode(node): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/report/savereportnode\", JSON.stringify(node), this.appInfo.httpOptions);\r\n }\r\n\r\n getParentNodes() {\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getparentnodes\");\r\n }\r\n\r\n getDashboardChart(userId) {\r\n let params = new HttpParams().set(\"userId\", userId);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getdashboardchart\", { params: params });\r\n }\r\n\r\n getNodeById(id): Observable {\r\n let params = new HttpParams().set(\"id\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getnodebyid\", { params: params });\r\n }\r\n\r\n saveReport(report): Observable {\r\n return this.http.post(this.appInfo.appUrl + \"api/report/savereport\", JSON.stringify(report), this.appInfo.httpOptions);\r\n }\r\n\r\n\r\n getReportType(id): Observable {\r\n let params = new HttpParams().set(\"id\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getreporttype\", { params: params });\r\n }\r\n updateReportType(_reportId, _reportType, _reportTypeAll, _localeRule): Observable {\r\n let report = { reportId: _reportId, reportType: _reportType, reportTypeAll: _reportTypeAll, localeRule: _localeRule };\r\n return this.http.post(this.appInfo.appUrl + \"api/report/savereporttype\", JSON.stringify(report), this.appInfo.httpOptions);\r\n }\r\n\r\n getAllReports() {\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getallreports\");\r\n }\r\n\r\n\r\n getReportWithoutCategory() {\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getreportwithoutcategory\");\r\n }\r\n\r\n getReports() {\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getreports\", { params: params });\r\n }\r\n\r\n getReportById(id): Observable {\r\n let params = new HttpParams().set(\"id\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getreportbyid\", { params: params });\r\n }\r\n\r\n getReportStorage(reportId, reportType) {\r\n let params = new HttpParams().set(\"reportId\", reportId).set(\"reportType\", reportType);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getreportstorage\", { params: params });\r\n }\r\n\r\n getReportDataExtraColumns(reportId) {\r\n let params = new HttpParams().set(\"reportId\", reportId);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getreportdataextracolumns\", { params: params });\r\n }\r\n\r\n getReportDataFormat(reportId) {\r\n let params = new HttpParams().set(\"reportId\", reportId);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/getreportdataformat\", { params: params });\r\n }\r\n\r\n updateReportStorage(reportId, reportType, storage, datafilter, dataformat, sumColumn) {\r\n //let params = new HttpParams().set(\"reportId\", reportId).set(\"reportType\", reportType).set(\"storage\", storage).set(\"dataFilter\", datafilter)\r\n // .set(\"dataFormat\", dataformat).set(\"sumColumn\", sumColumn);\r\n\r\n let report = { reportId: reportId, reportType: reportType, storage: storage, dataFilter: datafilter, dataFormat: dataformat, sumColumn: sumColumn };\r\n return this.http.post(this.appInfo.appUrl + \"api/report/updatereportstorage\", JSON.stringify(report), this.appInfo.httpOptions);\r\n\r\n // return this.http.get(this.appInfo.appUrl + \"api/report/updatereportstorage\", { params: params });\r\n }\r\n\r\n deleteNode(id) {\r\n let params = new HttpParams().set(\"id\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/deletenode\", { params: params });\r\n }\r\n\r\n deleteReport(id) {\r\n let params = new HttpParams().set(\"id\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/deletereport\", { params: params });\r\n }\r\n\r\n updateEditMode(id) {\r\n let params = new HttpParams().set(\"id\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/report/updateeditmode\", { params: params });\r\n }\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n console.log(errorMessage);\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { AppInfoService } from '../app-info.service';\r\nimport { SchemeModel } from '../../../shared/models/scheme-model';\r\nimport { CurrentFormModel } from '../../models/current-form-model';\r\nimport { TaskModel } from '../../models/task-model';\r\nimport { CurrentFormDataModel } from '../../models/form-data-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TaskService {\r\n\r\n constructor(public appInfo: AppInfoService, private http: HttpClient) {\r\n\r\n }\r\n\r\n getCategoryList() {\r\n return this.http.get(this.appInfo.appUrl + \"api/task/getcategorylist\");\r\n }\r\n\r\n getSchemeList(): Observable {\r\n\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id);\r\n return this.http.get(this.appInfo.appUrl + \"api/task/getschemalist\", { params: params });\r\n }\r\n\r\n getJustSchemeList(): Observable {\r\n\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id);\r\n return this.http.get(this.appInfo.appUrl + \"api/task/getjustschemalist\", { params: params });\r\n }\r\n\r\n getSidebarMenu(): Observable {\r\n\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id);\r\n return this.http.get(this.appInfo.appUrl + \"api/task/getsidebarmenulist\", { params: params });\r\n }\r\n\r\n getMenuList(): Observable {\r\n return this.http.get(this.appInfo.appUrl + \"api/task/getmenulist\", {});\r\n }\r\n\r\n SetFavorite(schemeId): Observable {\r\n\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id).set(\"schemeId\", schemeId);\r\n return this.http.get(this.appInfo.appUrl + \"api/task/updatefavorite\", { params: params });\r\n }\r\n\r\n GetProcessStarterId(processFormId): Observable {\r\n\r\n let params = new HttpParams().set(\"processFormId\", processFormId);\r\n return this.http.get(this.appInfo.appUrl + \"api/task/getprocessstarterid\", { params: params });\r\n }\r\n\r\n GetFavoriteList(): Observable {\r\n\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id);\r\n return this.http.get(this.appInfo.appUrl + \"api/task/getfavoritelist\", { params: params });\r\n }\r\n\r\n getTaskList(userId, filter) {\r\n let params = new HttpParams().set(\"userId\", userId).set(\"filter\", filter);\r\n return this.http.get(this.appInfo.appUrl + \"api/task/gettasks\", { params: params });\r\n }\r\n\r\n getHistoryPage(id) {\r\n let params = new HttpParams().set(\"userId\", this.appInfo.currentUser.id).set(\"type\", id);\r\n return this.http.get(this.appInfo.appUrl + \"api/task/gethistorypage\", { params: params });\r\n }\r\n\r\n errorHandler(error) {\r\n let errorMessage = '';\r\n if (error.error instanceof ErrorEvent) {\r\n // Get client-side error\r\n errorMessage = error.error.message;\r\n } else {\r\n // Get server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n console.log(errorMessage);\r\n return throwError(errorMessage);\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { HubConnection, HubConnectionBuilder } from '@aspnet/signalr';\r\nimport { WebmsgModel } from '../../models/webmsg-model';\r\nimport { AppInfoService } from '../app-info.service';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpParams, HttpClient } from '@angular/common/http';\r\nimport { DataRefreshModel } from '../../models/datarefresh-model';\r\nimport { ReOpenFormModel, ReOpenMenuModel } from '../../models/reopenform-model';\r\nimport { OpenLoadingModel } from '../../models/openloading-model';\r\nimport { ChatMessageModel } from '../../models/chatmessage-model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WebMessageService {\r\n messageReceived = new EventEmitter();\r\n changeModule = new EventEmitter();\r\n reOpenForm = new EventEmitter();\r\n reOpenMenu = new EventEmitter();\r\n chatMessageGetAll = new EventEmitter();\r\n openLoading = new EventEmitter();\r\n connectionEstablished = new EventEmitter();\r\n chatUserStatus = new EventEmitter();\r\n\r\n private connectionIsEstablished = false;\r\n private _hubConnection: HubConnection;\r\n\r\n constructor(public appInfo: AppInfoService, private http: HttpClient) {\r\n this.createConnection();\r\n this.registerOnServerEvents();\r\n this.updateModule();\r\n this.reOpenFormEvent();\r\n this.reOpenMenuEvent();\r\n this.chatMessageGetAllEvent();\r\n this.openLoadingEvent();\r\n this.chatUserStatusEvent();\r\n this.startConnection();\r\n }\r\n\r\n sendMessage(message: WebmsgModel) {\r\n\r\n this._hubConnection.invoke('NewWebMessage', message);\r\n }\r\n\r\n saveMessageInfo(message: WebmsgModel): Observable {\r\n let params = new HttpParams().set(\"id\", message.id.toString())/*.set(\"userId\", message.user_id.toString()).set(\"isRead\", message.is_read.toString())*/;\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/saveMessageInfo\", { params: params });\r\n }\r\n\r\n\r\n sendMessageService(message: WebmsgModel): Observable {\r\n let params = new HttpParams().set(\"user_id\", message.user_id.toString()).set(\"msg_show_type\", message.msg_show_type.toString()).set(\"message_type\", message.message_type.toString())\r\n .set(\"message\", message.message.toString()).set(\"message_title\", message.message_title.toString()).set(\"is_read\", message.is_read.toString()).set(\"id\", message.id.toString());\r\n return this.http.get(this.appInfo.appUrl + \"api/generic/sendwebmessage\", { params: params });\r\n }\r\n\r\n\r\n private createConnection() {\r\n\r\n this._hubConnection = new HubConnectionBuilder()\r\n .withUrl(this.appInfo.appUrl + 'RiverHub')\r\n .build();\r\n\r\n this._hubConnection.onclose(() => {\r\n let _this = this;\r\n setTimeout(function () {\r\n _this.startConnection(), 5000\r\n })\r\n });\r\n\r\n }\r\n\r\n private startConnection(): void {\r\n this._hubConnection\r\n .start()\r\n .then(() => {\r\n this.connectionIsEstablished = true;\r\n this.connectionEstablished.emit(true);\r\n })\r\n .catch(err => {\r\n let _this = this;\r\n setTimeout(function () { _this.startConnection(); }, 5000);\r\n });\r\n\r\n }\r\n\r\n\r\n private registerOnServerEvents(): void {\r\n\r\n this._hubConnection.on('MessageReceived', (data: any) => {\r\n this.messageReceived.emit(data);\r\n });\r\n }\r\n\r\n private updateModule(): void {\r\n\r\n this._hubConnection.on('ChangeModule', (data: any) => {\r\n this.changeModule.emit(data);\r\n });\r\n }\r\n\r\n private reOpenFormEvent(): void {\r\n\r\n this._hubConnection.on('ReOpenForm', (data: any) => {\r\n this.reOpenForm.emit(data);\r\n });\r\n }\r\n\r\n private reOpenMenuEvent(): void {\r\n\r\n this._hubConnection.on('ReOpenMenu', (data: any) => {\r\n this.reOpenMenu.emit(data);\r\n });\r\n }\r\n\r\n private chatMessageGetAllEvent(): void {\r\n\r\n this._hubConnection.on('SendChatMessage', (data: any) => {\r\n this.chatMessageGetAll.emit(data);\r\n });\r\n }\r\n private openLoadingEvent(): void {\r\n\r\n this._hubConnection.on('OpenLoading', (data: any) => {\r\n\r\n this.openLoading.emit(data);\r\n });\r\n }\r\n private chatUserStatusEvent(): void {\r\n\r\n this._hubConnection.on('ChatUserStatus', (data: any) => {\r\n this.chatUserStatus.emit(data);\r\n });\r\n }\r\n\r\n sendChatUserId() {\r\n this._hubConnection.invoke('ChatUserStatus', this.appInfo.currentUser.id);\r\n }\r\n} \r\n","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EventEmitterService {\r\n\r\n invokeSendFormFunction = new EventEmitter();\r\n invokeHistoryFunction = new EventEmitter();\r\n invokeFormChangesFunction = new EventEmitter();\r\n invokeSubmitFormFunction = new EventEmitter();\r\n invokeLayoutChangeFunction = new EventEmitter();\r\n invokeShowPopopFunction = new EventEmitter();\r\n invokeSchedulerInit = new EventEmitter();\r\n invokeChangeVisibleFunction = new EventEmitter();\r\n invokeChangeFilterOutElement = new EventEmitter(); \r\n invokeColumnSumFunction = new EventEmitter();\r\n invokeDeletedFileIdsFunction = new EventEmitter();\r\n invokeMenuSubmitFunction = new EventEmitter();\r\n invokeNestedSelecboxFunction = new EventEmitter();\r\n invokeChangeEvent = new EventEmitter();\r\n invokeDatagridOpenEditRowPopupEvent = new EventEmitter();\r\n invokeGalleryChangeEvent = new EventEmitter();\r\n invokeButtonClick = new EventEmitter();\r\n invokeSaveSystemInfoEvent = new EventEmitter();\r\n invokeStartInstanceFunction = new EventEmitter();\r\n invokeStartMenuFunction = new EventEmitter();\r\n\r\n invokeGetAllComponentFunction = new EventEmitter();\r\n\r\n invokeUpdateTasksFuntion = new EventEmitter();\r\n invokeFavoriteChangeEvent = new EventEmitter();\r\n invokePageWithRouteChangeEvent = new EventEmitter();\r\n\r\n invokeChangeMenuTabComponentEvent = new EventEmitter();\r\n\r\n invokeCreateTaskAndStartFormEvent = new EventEmitter();\r\n\r\n invokeSetLanguageEvent = new EventEmitter();\r\n\r\n invokeSetHomePopupVisibleEvent = new EventEmitter();\r\n\r\n invokeGetProcessInfo = new EventEmitter();\r\n\r\n invokeSearchSetDataEvent = new EventEmitter();\r\n invokeColorSetDataEvent = new EventEmitter();\r\n invokeGetAllSchemaListEvent = new EventEmitter();\r\n\r\n invokeRefreshGridEvent = new EventEmitter();\r\n\r\n invokeHomeLoadingEvent = new EventEmitter();\r\n\r\n invokeProcessChageEvent = new EventEmitter();\r\n\r\n invokeOpenChildFormChageEvent = new EventEmitter();\r\n\r\n invokecloseTextAreaMicChageEvent = new EventEmitter();\r\n invokechangeToCaptureModeTextAreaEvent = new EventEmitter();\r\n\r\n // invokeTabClick = new EventEmitter();\r\n\r\n //tanju - 12.06.2021\r\n invokeOnValueChageEvent = new EventEmitter();\r\n\r\n //Used on signature to change color of box when its required but value is empty\r\n invokeWarningChangeEvent = new EventEmitter();\r\n\r\n subsSendForm: Subscription;\r\n subsFormChange: Subscription;\r\n subsFormElementChange: Subscription;\r\n subsSubmit: Subscription;\r\n subsLayoutChange: Subscription;\r\n subsMenuSubmit: Subscription;\r\n subsStartInstance: Subscription;\r\n\r\n deleteFileIdsArray: any[] = []\r\n\r\n\r\n\r\n constructor() { }\r\n\r\n applyHistory(act) {\r\n this.invokeHistoryFunction.emit({ action: act });\r\n }\r\n\r\n executeExpretion(anotherPopupIdLocal) {\r\n this.invokeFormChangesFunction.emit({ anotherPopupIdLocal: anotherPopupIdLocal });\r\n }\r\n\r\n sendForm(status, name, reason, anotherPopupIdLocal) {\r\n this.invokeSendFormFunction.emit({ status: status, name: name, reason: reason, anotherPopupIdLocal: anotherPopupIdLocal });\r\n }\r\n\r\n submitForm() {\r\n this.invokeSubmitFormFunction.emit();\r\n }\r\n\r\n updateFavoriteChange(data) {\r\n this.invokeFavoriteChangeEvent.emit({ data: data });\r\n }\r\n\r\n processChageEvent(data) {\r\n this.invokeFavoriteChangeEvent.emit({ data: data });\r\n }\r\n\r\n pageWithRouteChange(data) {\r\n this.invokePageWithRouteChangeEvent.emit({ data: data });\r\n }\r\n\r\n createTaskAndStartForm(data) {\r\n this.invokeCreateTaskAndStartFormEvent.emit({ data: data });\r\n }\r\n\r\n setLanguageFunc(data) {\r\n this.invokeSetLanguageEvent.emit({ data: data });\r\n }\r\n\r\n setHomePopupVisibleFunc(data) {\r\n this.invokeSetHomePopupVisibleEvent.emit({ data: data });\r\n }\r\n\r\n getProcessInfo(data) {\r\n this.invokeGetProcessInfo.emit({ data: data });\r\n }\r\n\r\n refreshGrid(data) {\r\n this.invokeRefreshGridEvent.emit({ data: data });\r\n }\r\n\r\n homeLoading(data) {\r\n this.invokeHomeLoadingEvent.emit({ data: data });\r\n }\r\n\r\n openChildForm(data) {\r\n this.invokeOpenChildFormChageEvent.emit({ data: data });\r\n }\r\n\r\n layoutChange() {\r\n this.invokeLayoutChangeFunction.emit();\r\n }\r\n\r\n showPopop(id) {\r\n this.invokeShowPopopFunction.emit({ key: id });\r\n }\r\n\r\n schedulerInit(id) {\r\n this.invokeSchedulerInit.emit({ key: id });\r\n }\r\n\r\n ChangeVisible(data) {\r\n this.invokeChangeVisibleFunction.emit({ data: data });\r\n }\r\n\r\n ChangeFilterOutElement(data) {\r\n //ChangeFilterOutElement element value\r\n this.invokeChangeFilterOutElement.emit({ data: data });\r\n }\r\n setColumnSumToComponent(id, sum) {\r\n this.invokeColumnSumFunction.emit({ id: id, sum: sum });\r\n }\r\n\r\n setDeletedFileIds(id) {\r\n this.deleteFileIdsArray.push(id)\r\n this.invokeDeletedFileIdsFunction.emit(this.deleteFileIdsArray)\r\n }\r\n\r\n clearDeleteFileIds() {\r\n this.deleteFileIdsArray = []\r\n this.invokeDeletedFileIdsFunction.emit(this.deleteFileIdsArray)\r\n }\r\n\r\n submitMenu(status, name, reason) {\r\n this.invokeMenuSubmitFunction.emit({ status: status, name: name, reason: reason });\r\n }\r\n\r\n colorSetData(data) {\r\n this.invokeColorSetDataEvent.emit({ data: data });\r\n }\r\n\r\n searchSetData(data) {\r\n this.invokeSearchSetDataEvent.emit({ data: data });\r\n }\r\n\r\n getAllSchemaList(data) {\r\n this.invokeGetAllSchemaListEvent.emit({ data: data });\r\n }\r\n\r\n applySelecboxData(id, data) {\r\n this.invokeNestedSelecboxFunction.emit({ id: id, data: data });\r\n }\r\n\r\n selectboxChangeEvent(id, elementId, value, data, isShowComfirm = true) {\r\n this.invokeChangeEvent.emit({ id: id, elementId: elementId, value: value, data: data, isShowComfirm: isShowComfirm });\r\n }\r\n\r\n datagridOpenEditRowPopup(data) {\r\n this.invokeDatagridOpenEditRowPopupEvent.emit({ data: data });\r\n }\r\n\r\n buttonClickChangeEvent(data) {\r\n this.invokeButtonClick.emit({ data: data });\r\n }\r\n\r\n warningChangeEvent(data) {\r\n this.invokeWarningChangeEvent.emit({ data: data });\r\n }\r\n\r\n galleryChangeEvent(id, elementId, data) {\r\n this.invokeGalleryChangeEvent.emit({ id: id, elementId: elementId, data: data });\r\n }\r\n\r\n saveSystemInfoEvent(elementId, data) {\r\n this.invokeSaveSystemInfoEvent.emit({ elementId: elementId, data: data });\r\n }\r\n\r\n menuTabComponentChange(data) {\r\n this.invokeChangeMenuTabComponentEvent.emit({ data: data });\r\n }\r\n\r\n openForm(data) {\r\n this.invokeStartInstanceFunction.emit({ data: data });\r\n }\r\n\r\n openMenu(data) {\r\n this.invokeStartMenuFunction.emit({ data: data });\r\n }\r\n\r\n getAllComponent(component) {\r\n this.invokeGetAllComponentFunction.emit({ component: component });\r\n }\r\n\r\n updateTasks(anotherPopupIdLocal = 0) {\r\n this.invokeUpdateTasksFuntion.emit({ anotherPopupIdLocal: anotherPopupIdLocal });\r\n }\r\n\r\n onValueChangeEvent(id, elementId, value, data) {\r\n this.invokeOnValueChageEvent.emit({ id: id, elementId: elementId, value: value, data: data });\r\n }\r\n\r\n closeTextAreaMicEvent(data) {\r\n this.invokecloseTextAreaMicChageEvent.emit({ data: data });\r\n }\r\n\r\n changeToCaptureModeTextAreaEvent(data) {\r\n this.invokechangeToCaptureModeTextAreaEvent.emit({data:data})\r\n }\r\n}\r\n","import { Injectable, EventEmitter } from '@angular/core'; \r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport * as mimes from '../../../assets/libs/mimetypes/mime-types.json'\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalService {\r\n\r\n currentFormComponents:any;\r\n constructor() { } \r\n\r\n getMimeType(extension) {\r\n return mimes[\"default\"][extension]\r\n }\r\n\r\n}\r\n","\r\nexport * from './app-info.service';\r\nexport * from './data/auth.service';\r\nexport * from './screen.service';\r\nexport * from './data/form.service';\r\nexport * from './data/report.service';\r\nexport * from './data/generic.service';\r\nexport * from './data/task.service';\r\nexport * from './event-emitter.service';\r\nexport * from './global.service';\r\nexport * from './data/filemanagement.service'\r\n","import { Output, Injectable, EventEmitter } from '@angular/core';\r\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\n\r\n@Injectable()\r\nexport class ScreenService {\r\n @Output() changed = new EventEmitter();\r\n\r\n constructor(private breakpointObserver: BreakpointObserver) {\r\n this.breakpointObserver\r\n .observe([Breakpoints.XSmall, Breakpoints.Small, Breakpoints.Medium, Breakpoints.Large])\r\n .subscribe(() => this.changed.next(null));\r\n }\r\n\r\n private isLargeScreen() {\r\n const isLarge = this.breakpointObserver.isMatched(Breakpoints.Large);\r\n const isXLarge = this.breakpointObserver.isMatched(Breakpoints.XLarge);\r\n\r\n return isLarge || isXLarge;\r\n }\r\n\r\n public get sizes() {\r\n return {\r\n 'screen-x-small': this.breakpointObserver.isMatched(Breakpoints.XSmall),\r\n 'screen-small': this.breakpointObserver.isMatched(Breakpoints.Small),\r\n 'screen-medium': this.breakpointObserver.isMatched(Breakpoints.Medium),\r\n 'screen-large': this.isLargeScreen(),\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport {\r\n DxPivotGridModule,\r\n DxChartModule,\r\n DxButtonModule,\r\n DxLoadPanelModule,\r\n DxTextBoxModule,\r\n DxNumberBoxModule,\r\n DxTextAreaModule,\r\n DxPopoverModule,\r\n DxSelectBoxModule, \r\n DxCheckBoxModule,\r\n DxDateBoxModule,\r\n DxNavBarModule,\r\n DxListModule,\r\n DxBoxModule,\r\n DxToolbarModule,\r\n DxPopupModule,\r\n DxContextMenuModule,\r\n DxButtonGroupModule,\r\n DxDataGridModule, \r\n DxProgressBarModule,\r\n DxTabPanelModule,\r\n DxFormModule,\r\n DxScrollViewModule,\r\n DxSchedulerModule,\r\n DxDraggableModule,\r\n DxAccordionModule,\r\n DxDrawerModule,\r\n DxRadioGroupModule,\r\n DxSwitchModule,\r\n DxDropDownBoxModule,\r\n DxTreeViewModule,\r\n DxTagBoxModule,\r\n DxValidatorModule,\r\n DxFileUploaderModule,\r\n DxHtmlEditorModule,\r\n DxLoadIndicatorModule,\r\n DxValidationGroupModule,\r\n DxTooltipModule,\r\n DxFileManagerModule,\r\n DxColorBoxModule,\r\n DxTileViewModule, \r\n DxGalleryModule,\r\n DxGanttModule,\r\n DxDiagramModule,\r\n DxSortableModule\r\n} from 'devextreme-angular';\r\n\r\n@NgModule({\r\n declarations: [],\r\n exports: [\r\n DxDataGridModule,\r\n DxFormModule,\r\n DxButtonModule,\r\n DxLoadPanelModule,\r\n DxTextBoxModule,\r\n DxNumberBoxModule,\r\n DxTextAreaModule,\r\n DxSelectBoxModule, \r\n DxCheckBoxModule,\r\n DxDateBoxModule,\r\n DxPopoverModule,\r\n DxNavBarModule,\r\n DxListModule,\r\n DxBoxModule,\r\n DxToolbarModule,\r\n DxPopupModule,\r\n DxContextMenuModule,\r\n DxButtonGroupModule,\r\n DxDataGridModule,\r\n DxTabPanelModule,\r\n DxProgressBarModule,\r\n DxFormModule,\r\n DxScrollViewModule,\r\n DxSchedulerModule,\r\n DxDraggableModule,\r\n DxAccordionModule,\r\n DxDrawerModule,\r\n DxRadioGroupModule,\r\n DxSwitchModule,\r\n DxDropDownBoxModule,\r\n DxTreeViewModule,\r\n DxTagBoxModule,\r\n DxValidatorModule,\r\n DxFileUploaderModule,\r\n DxHtmlEditorModule,\r\n DxPivotGridModule,\r\n DxChartModule,\r\n DxLoadIndicatorModule,\r\n DxValidationGroupModule,\r\n DxTooltipModule,\r\n DxFileManagerModule,\r\n DxColorBoxModule,\r\n DxTileViewModule,\r\n DxGalleryModule,\r\n DxGanttModule,\r\n DxDiagramModule,\r\n DxSortableModule,\r\n ],\r\n imports: [\r\n\r\n ],\r\n providers: [],\r\n bootstrap: []\r\n})\r\nexport class DevExtremeModule { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n appVersion: require('../../package.json').version,\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","/*!\r\n\r\n=========================================================\r\n* Now UI Dashboard Pro Angular - v1.1.0\r\n=========================================================\r\n\r\n* Product Page: https://www.creative-tim.com/product/now-ui-dashboard-pro-angular\r\n* Copyright 2019 Creative Tim (https://www.creative-tim.com)\r\n\r\n* Coded by Creative Tim\r\n\r\n=========================================================\r\n\r\n* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\r\n\r\n*/\r\nimport { enableProdMode } from \"@angular/core\";\r\nimport { platformBrowserDynamic } from \"@angular/platform-browser-dynamic\";\r\n\r\nimport { AppModule } from \"./app/app.module\";\r\nimport { environment } from \"./environments/environment\";\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n"],"names":["Component","ElementRef","ChangeDetectorRef","NgZone","ViewChild","ROUTES","Location","Router","ActivatedRoute","AuthService","TaskService","EventEmitterService","AppInfoService","GenericService","FormService","ComponentService","WebmsgModel","WebMessageService","notify","DomSanitizer","locale","loadMessages","NavbarComponent","authService","element","router","taskService","formService","componentService","eventEmitterService","route","changeDetectorRef","webMessageService","_ngZone","appInfo","domSanitizer","genericService","isCollapsed","listTitles","location","sidebarVisible","mobile_menu_visible","toggleButton","favoriteMenuItems","schemaList","languageLocal","selectedFlag","isDesigner","isDmsPermission","filter","schemaId","keyword","start1","start2","end1","end2","status","userId","insideSearch","module","home","menu","userList","completionStatusItems","constructor","signalRFunctions","currentUser","deflang","replace","toUpperCase","initMessages","onSelectedFlag","id","name","languageSource","all","completions","ongoing","invokeSearchSetDataLocal","invokeColorSetDataLocal","ngOnDestroy","unsubscribe","ex","myDropdown","languageSourceObject","localeLang","Code","Key","JSON","parse","localStorage","getItem","setUserLanguage","subscribe","result","getLanguageFunc","entityLocalStorage","countryFlags","find","x","setItem","stringify","localeLangGetAndSet","getLocaleLang","parent","document","reload","indexOf","split","languageCode","setLanguageSource","langSource","setCompletionStatusAndUser","getlogininit","languages","close","RiverEntity","users","userListIndex","findIndex","splice","unshift","fullName","setLanguageFunc","messageSubscribeToEvents","dataRefreshToEvents","reOpenFormEvents","reOpenMenuEvents","openLoadingEvents","getSignalRMessage","canChat","groupDefaultImage","chatUserList","chatUserListTemp","chatGroupAllUsers","ngOnInit","checkDesigner","listTitle","navbar","nativeElement","getElementsByClassName","events","event","sidebarClose","$layer","getElementById","remove","fillFavorite","invokeFavoriteChangeEvent","sub","data","detectChanges","getSchemaList","invokeSearchSetDataEvent","invokeColorSetDataEvent","chatColors","getChatPanelUserList","_thisPage","promise","getBase64Image","then","dataURL","getChatUserStatus","chatUserListImage","chatUnReadGlobal","loginUserId","getChatUserList","forEach","f","unReadCount","_image","photo","push","chatUserListSearch","_this","setTimeout","userListColor","chatUserListSearchModel","o","toLowerCase","isChatOpen","chatOpenChange","isChatMessageOpen","chatMessageOpenChange","chatMessageCloseChange","chatUserSelected","chatBoxMessageOpen","chatSelectedUserGlobal","chatMessageText","chatMessageFileRemove","messageWithPage","myScrollContainer","chatMessageInput","downloadMessageFile","chatMessageboxImage","chatMessageAll","sendFileLoading","chatMessageSend","chatMessage","UserId","ReceiverId","Message","FileId","UserType","type","chatMessageSelectedFile","getDocument","fileData","fileName","fileExtension","pop","fileType","fileIsImage","isImage","fileSize","size","chatMessageFile","chatMessageFileSend","chatMessageSendApi","downloadLoading","chatMessageFileDownload","_id","href","download","click","getChatFileIcon","_fileExtension","getChatFileFormatSize","bytes","decimalPoint","k","dm","sizes","i","Math","floor","log","parseFloat","pow","toFixed","page","chatMessageEnum","NotChat","getMessageWithPage","scrollToBottom","scrollTop","scrollHeight","err","chatOnlineUsers","setInterval","_d","date","setSeconds","getSeconds","_dNow","Date","dateNow","_i","sendChatUserId","chatUserStatus","s","userStatusClass","_groupId","_type","_fAll","_f","userIds","fClear1","fClear2","_fClear","fileSelectInputDialog","OpenAddFilesDialog","e","chatMessageFileUploadSuccess","chatMessageSelectedFileObj","icon","chatMessageImportFile","file","target","files","fileExtensionArray","length","value","allEmoji","emojiChatPopoverOpen","toggleWithEmojiChat","chatMessageBlur","chatMessageInputStartPos","chatMessageInputEndPos","chatMessageFocus","myField","selectionStart","selectionEnd","chatMessageSetEmoji","_emoji","myValueClear","insertAtCursor","hideEmojiPopoper","focus","myValue","txtValueEl","createElement","innerHTML","substring","chatMessageGetAll","message","run","groupUserIds","toString","playAudio","receiverId","audio","Audio","src","loop","load","play","searchPanelPopoverOpen","toggleSearchPanel","userListSelectSearch","_e","searchSelectboxAriaOwns","schemaListSelectSearch","start2DateSearch","start1DateSearch","end1DateSearch","end2DateSearch","completionStatusItemsSelectSearch","_ariaOwns","currentTarget","attributes","getNamedItem","_ariaOwnsHtml","nodeValue","_parentHtml","parentNode","_parent2Html","style","zIndex","groupChatPopoverOpen","toggleWithGroupChat","groupAddName","groupAddUsers","groupAddImage","uploadedFilesGroupAdd","imgUpVisibleGroupAdd","onBlurGroupAdd","onFocusGroupAdd","groupAdd","chatGroupAdd","CreatedUserId","Name","Users","File","chatGroupAddService","url","Promise","resolve","reject","img","Image","crossOrigin","onload","canvas","width","height","ctx","getContext","drawImage","toDataURL","bodyColor","searchColor","searchTextColor","headerColor","otherBackground","isListLoaded","color","scssSetVariable","selector","_element","querySelector","undefined","setAttribute","listItems","querySelectorAll","listItem","photoAll","makeTrustedImage","photoOrId","_default","item","imageString","_style","bypassSecurityTrustStyle","_photo","photoCssVar","photoTemp","b64","getAttribute","getImageStyle","photoId","other","myStyles","otherArr","otherParse","onValChngFileGroupAdd","errors","checkSum","msg","reader","FileReader","readAsDataURL","args","base64BlobData","messageNotification","message_title","message_type","contentTemplate","$","html","attr","webMessagePopupClick","isShowWebMessagePopup","message_screen","messageReceived","user_id","msg_show_type","saveMessageInfo","r","changeModule","user_Id","data_scheme","refreshGrid","reOpenForm","instanceId","processFormId","schemeId","openForm","navigate","state","processFormsId","reOpenMenu","data_menu","menuFormGuid","formId","getMenuFormId","openMenu","openLoading","data_","isShow","text","setHomePopupVisibleFunc","search","routeReuseStrategy","shouldReuseRoute","getDate","getMonth","getFullYear","_filterKeyDateControl","_dSlash","_dDot","_dHours","splitSep","splitDate","_dDateSplit","trim","toISOString","_routerUrl","onSameUrlNavigation","formName","getSchemeList","resultSchema","getAllSchemaList","isScheme","filterSchemaList","items","onClickFavorite","data_favorite_scheme","createTaskAndStartForm","GetFavoriteList","error","tabs","getTitle","titlee","prepareExternalUrl","path","charAt","slice","title","j","children","subtitle","collapse","getElementsByTagName","classList","add","sidebarOpen","mainPanel","sidebarToggle","$toggle","appendChild","onclick","window","innerWidth","position","bind","Yes","No","Cancel","Clear","Done","Loading","Select","Search","Back","OK","static","template","Input","ChangeDetectionStrategy","confirm","CurrentFormDataModel","InstanceService","FormType","FormRender","instanceService","form","isEdit","isStarted","anotherPopupId","formType","Default","forms","colCountByScreen","currentFormData","buttonActions","selectedstatus","currentFormStatus","isFormEditable","currentProcessFormId","prevUserId","isMenuForm","subsSendForm","invokeSendFormFunction","sendFormData","reason","anotherPopupIdLocal","deletedFileIds","invokeChangeEventLocal","invokeFileDeleteLocal","currentFormSelectedGlobal","renderForm","invokeColumnSumFunction","currentFormSelected","curentForm","sum","invokeDeletedFileIdsFunction","console","clearDeleteFileIds","locationButtons","paymentButtons","zoomButtons","formJson","formData","formValues","checkUserAuthorization","readonly","components","currentForm","isReadonly","formNo","childObj","childPopups","currentUserStaus","userStatus","setStatus","userHasApprove","FinalApprove","InterimApprove","setFormValues","executeExp","invokeFunctions","menus","getComponentsByType","curentFormFiles","getFilesComponentList","_idArray","fileVal","compSend","componentId","row","column","datagridComps","getComponentList","datagridCompsFilter","_dataGrid","_row","datagridHeaderFiles","headers","_dataGridValue","_headerFile","IdArrayLast","_column","field","valArray","valId","datagridPicturebox","_idArrayInt","map","ele","_idIntLast","_idObj","Array","isArray","_idObjTemp","getFormFilesService","getFormFilesServiceMenu","curentFormButtons","getButtonComponentList","obj","buttons","objChild","isLocation","buttonCompId","button","getGeoLocation","getFormPreferences","replaceAll","str","RegExp","_dataValue","_header","_pictureboxChangeHeader","sqlExpressions","_connectionStringId","connectionStringId","replacedQuery","cloneModel","query","fields","Object","keys","pref","sqlExpressionTagControl","match","executeQuerySecurited","_value","finalData","join","doc","extension","isImg","ID","docsIndex","dataGridEventList","preferencesMultiElementFinish","preferencesFinish","preferencesForm","preferences","formOpenedEvents","formOpenedMultiElementEvents","preferencesArray","_formOpenedEvent","connectionId","formDataTemp","elementId","componentType","_formOpenedMultiElementEvent","keyEL","tThis","checkPrefExist","clearInterval","el","selectboxChangeEvent","getFormFilesData","currentComp","componentTempIds","currentCompReturned","currentCompHeaderColumn","columnId","description","dmsPath","rowId","valueTemp","subsFormChange","invokeFormChangesFunction","evulateExpretion","expretion","DefaultStatus","formStatus","Processing","SaveAndSend","Disapprove","DisapproveTerminate","Approve","Completed","screen","expression","eval","getById","colSum","colm","setValue","selectboxId","key","buttonNameGlobal","isPayment","isZoom","saveSystemInfoEvent","createValuesData","objArray","descriptionUpdate","fileId","validationDatagrid","deleteFiles","hide","show","outsideVisible","datagridRequired","datagridReqI","datagridReqIValidationFalse","_dgridH","properties","required","_dgridV","_dgridReq","headerFind","headerFindCaption","caption","datagridHeader","_datagridHeader","dataFiles","_dataFile","datagridFilePicturebox","showAlert","filesIds","_processFormId","saveFormFilesData","Id","_thisLocal","_fileVal","ComponentId","_fileValObj","_tempData","parseInt","RowId","ColumnId","z","callSaveFormData","_selectedSchemaId","selectedSchemaId","fData","FromUserId","ToUserId","ProcessFormId","FormVariable","Description","getStatusText","Status","UserStatus","RejectionReason","FilesIds","DeletedFilesIds","locationButton","property","locationGlobal","GeoLocation","lat","latitude","lng","longitude","paymentButton","curentCustomer","curentPrice","curentHirePurchase","curentPaymentDescription","paymentProvider","curentCustomerFormId","customerButton","curentComponents","customerId","priceComponent","hirePurchaseComponent","descriptionComponent","customer","customerFormId","saveFormData","schedulerChangeData_I","schedulerChangeData_ITotal","schedulerChangeDataKeys","schedulerChangeData","_key","updateJustMenuData","schedulerChangeDataInterval","jsonReturn","updateTasks","isSentFormToDb","localRuntimeSelectboxDatasource","runtimeSelectboxDatasource","runtimeSelectbox","_c","isSelectboxInsertManualData","homePopupClear","getProcessFormWithDataId","_pForm","pFormJson","localRuntimeSelectbox","changeComponentListObject","dataSource","setProcessFormJson","_pFormJson","showToast","_domain","protocol","host","open","getCurrentPosition","options","navigator","geolocation","coords","code","cancelInstance","dialogResult","Cancelled","IsAvalible","submitForm","ststu","Returned","isInput","inputType","isAuto","autoText","isUserChange","meetingType","gridVal","lastId","headerAndType","getGridHeaders","headerTypes","selectedRows","userChangeColumns","markers","rows","cols","grid","header","errorHandler","errorMessage","ErrorEvent","changeStatus","changeDetection","OnPush","DxChildFormComponent","lang","defaultLanguage","permissionPopup","languagePopup","showSettingPopup","showDisplay","pageComponentList","processList","invokeShowPopopFunction","uuid","getLanguageSource","invokeChangeEvent","allButtonIcons","changedValueProcess","isFormSaveAndClose","processId","getAllIcons","createuuid","getLang","language","fontSize","backgroundColor","fontColor","setPageStyle","outsideDisabled","invokeChangeVisibleFunction","_color","_backgroundColor","_el","styles","styleSheet","innerText","className","head","selectedFormComponentList","onProcessChanged","addedComponents","pageComponent","selectedFormComponent","getSchemaForm","_form","_formObj","onComponentList","addedComponentsEmptyOrNull","addedComponentsEmpty","getJustSchemeList","openChildForm","validationGroup","validate","isValid","alertFillRequiredFields","_data","onEditPopopShown","applyHistory","historyActions","save","getFormComponent","saveSetting","isAvalible","isIdAvalible","alertDifferentID","cancelSetting","messageUnsaved","warning","undo","onKeyDownObjectID","$event","keyCode","regex","test","preventDefault","buttonIconPopoverOpen","toggleIconPanel","setButtonIcon","_icon","getButtonIconClass","fontColorValueChange","newValue","backgroundValueChange","getButtonGeneralCss","_myStyle","isInteger","getButtonGeneralCssText","Inject","ComponentFactoryResolver","ViewContainerRef","moveItemInArray","DxFormResultComponent","DataSource","DOCUMENT","formatNumber","HeaderExpression","export","influenceAllRelatedRows","influenceAllRelatedRowsColumn","DxEtrDataGridComponent","componentFactoryResolver","elementHtml","dataGridEtr","gridContainerPopup","formResultComponent","focusDiv","uploaderExcel","progressBarExcel","productsDataSource","dbQueryTypes","fieldTypes","numberRoundTypes","autoPreText","minToday","maxToday","dateRange","sqlExpression","dataSources","fontWeightTypes","filterOperators","operators","sqlOperators","filterOperatorsColor","funcParam","funcParamData","outOfGridComponent","showDatagridPopup","connections","cellInfoGlobal","formulaCommands","example","operation","filterPopup","showGridColPopop","showFuncPopup","showFormatPopup","showSqlExpressioPopup","showChanEventParamsPopup","selectedGridForm","selectionGridDataSource","dataGridSettingsPopop","allowCopy","isCalcCellFormula","colPermissionPopup","colLanguagePopup","selectedColPermission","perCol","selectedColLanguage","selectedConnection","selectedHeader","selectedHeaderIndex","selectedFuncIndex","selectedFormatIndex","formatHeaderType","registeredLanguage","outOfGridComponentDatas","tableList","headerExpression","isMonacoLoaded","loadingVisible","Visible","loadPanelText","showPreviewFilesPopup","uploadedFiles","checkBoxesMode","allMode","isLoadingDatasource","countFirstLoad","dataGridEtrDatasorce","isContentReadyInterval","contentReadyEvent","isLoadingNotHide","focusedRowKey","newRowShortcut","isActive","index","deleteFileButtonVisible","formulaCommandsExampleStr","windowGlobal","defaultView","isChecked","currentComps","currentCompDatagrids","allDatagridComponents","m","GetProcessStarterId","it","setLanguageToDatas","filteredColumnDatagrid","classDatagridContainer","datagridErrorFilterOut","isShowComfirmShown","exp","editablePopup","colorExpressions","outsideElementShouldDisabled","showIdColumn","shopCopyButton","showDeleteButton","showAddButton","filterVisible","selectedDatagrid","sourceField","_dSd","invokeChangeFilterOutElement","isDelete","filteredElement","_indices","filteredColumn","tempData","_iF","_ind","reduce","v","concat","c","pos","_ii","elementLabel","filterOutElement","isSqlExecute","isShowComfirm","Label","deleteOldData","changeInvokeOutOfGridFill","closeSqlExpressioPopup","allDataDelete","arraySubMultiSelect","dataValueArray","DefaultColumn","ell","outOfGridFill","dataCols","prepareDataGridColumn","forceRefreshDatagrid","instance","refresh","isFirstItemZero","_dataTemp","iDataTemp","_obj","_Id","zeroTemp","clonedItem","assign","sort","a","b","getDatasourcePageItem","_ID","_dataSource","_dataSourceLast","fieldsValue","valueKey","_val","addNewRowOrClone","zeroIdIndex","firstDataValueId","selectedDatagridChangeFilter","ngAfterViewInit","showLoadPanel","totalCompCount","CreateDatagridColumns","isFirstLoadTemp","isFirstLoad","loadedCompCount","store","addNewRowFunction","datagridInstance","_rowIndex","_event","onInitNewRow","saveEditData","lastDataValueId","onContentReady","component","_controllers","_indexDatagridTotalCount","totalCount","newRowShortcutIndex","pageSize","_pageCount","pageCount","pageIndex","_asdasdasdasd","headerFirst","propertiesUndefinedControl","cellObject","getCellElement","editCell","firstLoadingIntervalFunction","_firstLoadingInterval","hideLoadPanel","addFilterDatagrid","removeFilterDatagrid","_index","selectedRowsDataOnchange","onGridSelectionChanged","selectedRowsData","closeFormatPopup","cloneRow","currArray","arr","colIndex","cloneItemTemp","_thisPage2","recursiveRelatedRowEvent","selectedDatagridRowId","showEditablePopup","languageCodeEditPopup","currentDatagridFormGlobal","hideEditablePopup","shownEditablePopup","datagridColumnHasUserChanges","saveDatagridForm","pleaseFillFields","_valData","headerComp","columnName","columnValue","setColSumToElement","setColumnSumToComponent","editRow","isPopupOpen","tempDatagridPopupComponent","headerFormComp","onEditPopupForm","valDataResult","_temel","componentList","group","formComp","_returnComp","format","functionScripts","datagridPanelJsScriptsCreate","_defaultFormat","_format","displayFormat","dataStorage","dataGridSettings","displayExpr","displayKey","valueExpr","sqlScripts","datagridPanelSqlScriptsCreate","Placeholder","Hint","isNewSchemaPopup","isDefaultFirstValue","disabled","editable","_jsScripts","headerColumnJs","_headerFor","jsExpression","replacedExpression","datagridElementId","allColumns","jsScript","headerColumnNewElement","datagridColumnElementId","_sqlScripts","sqlExpressionsFilter","_iSql","headerElement","replaceAllUsingType","firstIdTemp","_DefaultColumn","newRow","currentFormSelected1","outFilterDatagrid1","selectedDatagridElements1","y","_sde","_filtCol","outFilterDatagridFind1","xx","defaultDatagridValue","outFilterDatagrid","selectedDatagridElements","addColumn","dataField","dataType","alignment","allowEditing","visible","_editableDisable","option","columns","_required","cellTemplate","params","defaultFormat","headerCellTemplate","showEditorAlways","editCellTemplate","isAddMultipleMarker","maxMarkerLimit","lookup","allowClearing","clearButton","dataSourceConfiguration","allowFixing","fixed","fixedPosition","applyFilter","_varThis","getCellTheme","cell","fontWeight","getCellValue","number","val","operator","isUserExistInFilter","rGroupIndex","permissions","readonlyGroup","rUsersIndex","readonlyUsers","hGroupIndex","hideGroup","hUsersIndex","hideUsers","isHide","onColumnSettingPopopShow","_fileViewer","sqlColumnSettings","addCustomItem","cellInfo","customItem","customdataSource","customValue","rowDataIndex","saveColumnSettings","_control","pattern","toastColumnNameNumber","onHidingColumnPopup","cancel","fieldTypesValueChanged","headerDefault","dataSourceKey","changeEvents","keyPressVariables","inputChar","String","fromCharCode","charCode","_filterChangeTemp","col","_cols","_vals","datagridFilterArr","filterChangeSqlExecute","thisDataValueFilter","fC","_iFC","_in","valEl","dataHeaderControl","outOfDatagridGetSql","onInitNewRowBegin","visibileDatagridInDatagridOkButton","isMultipleSelect","getSelectionMode","selectionMode","headerObj","getDatagridSourceNew","headerImageKey","imageKeys","gridHeaders","shouldChange","includes","customComboBoxData","onOpenedComboBoxTemplate","getData","cds","filterData","onEditorPreDatagridPopup","parentType","onSelectionConfirmButton","selectedRowKeys","formFields","addRows","emptyRows","dataIdTemp","isSelectAsRow","arraySelectedDatagridInDatagrid","selectIds","executeSqlExpression","elementOutOfDatagrid","values","checkIsRowEmpty","currentItem","updateIndex","dataTemplate","selectedRowAllDatasource","dataIdTempItem","selectedRowAllDatasourceItem","curr","_tempSRAD","showDatagridPopupClose","onSelectionChanged","isLoading","dataObj","dataArray","display","getDatagridkeyExpr","getDatagridSelectRowKey","arraySelected","getDatagridSourceGetValue","_items","_item","_itemObj","cellInfoValueSplit","fieldsValues","returnval","popoverDatagridInDatagridObj","togglePopoverDatagridInDatagrid","_togglePopoverDatagridInDatagrid","getPopoverLinkId","_pre","selectionModeDatagridInDatagrid","showDatagridPopupLoading","dataGridPopupLoading","isLoadingElements","findElement","openDatagridPopup","dataGridOpenDataEvent","getDataSourcePromise","resp","dataSourceDatas","storageKeyDatagridInDatagrid","dataValTemp","isCreateHeader","queryClear","editSqlByFormData","startsWith","datagridInDatagridSqlSelect","displayText","displayList","findElRes","sqlExpressionColumn","f16","_fieldVals","timestamp","getTime","_sqlcolumn","patt","_match","_k","markerOptionPopup","zoom","mapMarkerLocal","mapMarkerSelectedImage","mapReady","markerDragEnd","selectedMapHeader","indexDataMarker","setClassMarker","clickedMarker","label","mapClicked","ismarkerMulti","draggable","selectedMap","getBadgeMapMarkers","clickMarkerAddInfo","markerLocal","clickMarkerDelete","cancelMarkerOption","saveMarkerOption","mapVisiblePopup","mapIntervalCheck","toggleMapPopup","mapInterval","onHidingMapPopup","showFileViewerPopup","popupSelectedImageValue","fileViewerDatasource","showFileViewerPanel","outOfDatagridGetSqlReplace","_resultRow","_isImg","_size","_fileType","_extension","fileFields","_exReplaced","createBlob","fetch","res","blob","catch","previewFile","body","fileURL","URL","createObjectURL","revokeObjectURL","popupSelectedImage","imageZoomPopup","showImageFile","_src","pictureboxImageUploadVisibleObj","pictureboxUploaderStyleFunc","_block","isUserUpload","onBlurPicturebox","onClickPicturebox","docs","_docsTemp","ss","onFocusPicturebox","pictureboxDivStyleFunc","pictureboxStyleFunc","pictureboxShowImage","pictureboxRowsValue","onPictureboxValueChanged","pictureboxRowsValueTempIndex","onValueChanged","lastIndexOf","fileUploaderDisabled","isEditing","showFile","getFileCount","returnCount","filesSureDelete","filesWillDeleted","deleteFile","_base64BlobData","_name","fileDelete","deleteFileConfirm","_indexTemp","_indexVal","setDeletedFileIds","_indexShowFiles","onEditorPreparing","editorOptions","onKeyDown","ctrlKey","dataIndex","deleteRow","isNewRow","onFocusIn","input","select","dateTimeMinMaxFormat","roundType","ceil","round","_userChange","changeSystemField","onNumberFieldValueChanged","minDateTemp","maxDateTemp","dateMinMax","setHours","range","min","max","from","disabledRowsIDs","alertRowsIDs","onRowPrepared","rowType","conditionText","currentExpression","fieldName","fieldType","functionn","rowElement","alert","pointerEvent","pointerEvents","endsWith","elemVal_AllHeader","getDataGridSelectValue","outFilterDatagridFind","sourceCompCols","sourceValue","_scc","_dataIndex","sqlExpressionTag","_kk","isActiveColumnValue","isActiveTempValue","parametersAll","parameters","fieldGeneral","dataSelected","isExecuteExp","dataSelectedData","_ifConControl","selectedValue","selectedValueFirstVal","getDataGridSelectValueWithDataSource","selectedIndex","headerGeneral","generalName","markForCheck","_evt","_tempValIndex","dataValRelated","process_type","elements","thisDataVals","func","_iARRC","xControl","x_iARRC","patternFuncOp","pattF","patFTemp","resCalc","prev","next","res_pattern","elem","elemVal","_dV","_ex_","stack","columnField","allEnable","elementsOutOfDatagrid","onRowInserting","rowRemoving","onEditingStart","added","onCheckboxFieldValueChanged","rowData","dataValItems","itemField","dataVal","findDataValItems","ChangeFilterOutElement","_headerTemp","addEmptyHeader","addHeader","removeItem","deleteAllHeaders","areYouSure","allColumnDeleted","deleteHeader","hasSqlScriptArr","columnDeleted","addColPermission","addColLanguage","selectedHeaderType","mapSettingsPopop","mapSetting","userChangeDraggable","openFormatPopup","openFuncPopup","saveFuncParam","monacoOnInit","isOutOfGridComponent","monacolanguage","monaco","setCustomKeywords","dispose","registerCompletionItemProvider","provideCompletionItems","suggestions","kind","CompletionItemKind","Snippet","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","documentation","Property","triggerCharacters","connectionListValueChanged","getTables","idCantStartNumber","colShorting","previousIndex","currentIndex","colShortingChangeEvent","showMonacoEditorColumnSqlScript","openSqlExpressioPopup","addSqlExpression","evt","deleteSqlExpressions","exportElements","exportChange","getComponentsByComponentName","influenceAllRelatedRowsElements","influenceAllRelatedRowsChange","excelExport","excelTemplateDownloadHtml","_headerHtml","_rowHtml","fVal","_fVal","_cellsHtml","_timeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","toLocaleString","_valArray","XLSX","elt","wb","utils","table_to_book","sheet","raw","writeFile","excelImportInputButtonDisabled","excelFileGlobal","json_ArrayExcel","excelImportCloseButton","excelImportPopupHeight","_nExcelImportLoading","_excelRowIndex","_tickProcess","excelImportText","excelImportTextError","excelImportPerformance","logExcelText","excelVisiblePopup","excelImport","setLogExcelText","minWidth","excelTemplateDownload","excelImportFile","parts","sliceSize","count","excelLoadingChange","chunkFile","millisToMinutesAndSeconds","millis","minutes","seconds","excelPerformanceStart","excelPerformanceEnd","excelPerformanceTotal","excelRowImport","deleteFirstColumn","performance","now","msTemp","firstIdIndex","_dataValueFirst","_v","_dateTemp","getHours","_day","_mon","_yer","splitSeperant","_date","_dateFormat","getDateParse","updateLogExcelText","_formatArr","_dateArr","_return","workbookG","chunkFileDone_Worker_1","tmpResult","Uint8Array","appendBuffer","XLSXFill","read","cellDates","chunkFileDone_Worker_2","_headerDate","SheetNames","sheetName","XL_row_object","sheet_to_row_object_array","Sheets","dateNF","json_object","checkIsDataGridEmpty","isEmpty","shouldBreak","_rowDataID","buffer1","buffer2","tmp","byteLength","set","chunkFileDone","start","end","fr","readAsArrayBuffer","thisLoading","_progressbarRangeContainerWidth","clientWidth","_progressbarRangeVal","sleep","ms","formatProcessExcel","_replace","getDataSource","elementColumnDisabled","v1","v2","v3","v4","myVarTimer","clearTimeout","onShown","onHidden","getStyleCell","headerId","cssText","findDateFormat","datafield","getDatagridSourceNewData","getDatagridkeyExprData","er","currentColorExpression","addColorExpressions","deleteColorExpressions","editRowcolor","colorExp","onValueChangeColorExpressionFieldSelect","typeObject","checkAll","allCheck","alwaysRoundUp","alwaysRoundBot","default","double","integer","Document","decorators","MapsAPILoader","DxMapComponent","mapsAPILoader","_sanitizationService","thisPageMapTimeout","thisPageMap","autocompleteService","google","maps","places","AutocompleteService","getImageImgTag","uFs","bypassSecurityTrustUrl","getImageImgTagSelected","markerStyleGlobal","background","setCurrentLocation","searchTextGlobal","getCoorninateAddress","sRs","showSearchResulPanel","getLatLong","place_id","searchResults","getPlacePredictions","term","placeid","placeService","PlacesService","getDetails","placeId","geometry","openPermissionPopup","mapDivStyleFunc","mapSearchStyleFunc","_styles","ismarkerMuti","totalSize","maxFileSize"],"sourceRoot":"webpack:///"}