{"version":3,"file":"mobicloud-core-components.mjs","sources":["../../components/mobicloud-components.service.ts","../../components/directives/material-elevation.directive.ts","../../components/main-nav/main-nav.component.ts","../../components/main-nav/main-nav.component.html","../../components/group-box/group-box.component.ts","../../components/group-box/group-box.component.html","../../components/subscription-box/subscription-box.component.ts","../../components/subscription-box/subscription-box.component.html","../../components/loading-container/loading-container.component.ts","../../components/loading-container/loading-container.component.html","../../components/message-box/message-box-dialog.component.ts","../../components/message-box/message-box-dialog.component.html","../../components/content-toolbar/content-toolbar.component.ts","../../components/content-toolbar/content-toolbar.component.html","../../components/message-box/message-box.ts","../../components/system-user/system-user-profile/system-user-profile.component.ts","../../components/system-user/system-user-profile/system-user-profile.component.html","../../components/profile/profile-page-system-user/profile-page-system-user.component.ts","../../components/profile/profile-page-system-user/profile-page-system-user.component.html","../../components/employee/employee-address/employee-address.component.ts","../../components/employee/employee-address/employee-address.component.html","../../components/employee/employee-profile/employee-profile.component.ts","../../components/employee/employee-profile/employee-profile.component.html","../../components/camera-dialog-edit/camera-dialog-edit.component.ts","../../components/camera-dialog-edit/camera-dialog-edit.component.html","../../components/image-edit/image-edit.component.ts","../../components/image-edit/image-edit.component.html","../../components/employee/employee-profile-image/employee-profile-image.component.ts","../../components/employee/employee-profile-image/employee-profile-image.component.html","../../components/employee/employee-user-info/employee-user-info.component.ts","../../components/employee/employee-user-info/employee-user-info.component.html","../../components/employee/employee-checkin-info/employee-checkin-info.component.ts","../../components/employee/employee-checkin-info/employee-checkin-info.component.html","../../components/profile/profile-page-employee/profile-page-employee.component.ts","../../components/profile/profile-page-employee/profile-page-employee.component.html","../../components/customer-user/customer-user-address/customer-user-address.component.ts","../../components/customer-user/customer-user-address/customer-user-address.component.html","../../components/customer-user/customer-user-details/customer-user-details.component.ts","../../components/customer-user/customer-user-details/customer-user-details.component.html","../../components/customer-user/customer-user-general/customer-user-general.component.ts","../../components/customer-user/customer-user-general/customer-user-general.component.html","../../components/customer-user/customer-user-image/customer-user-image.component.ts","../../components/customer-user/customer-user-image/customer-user-image.component.html","../../components/profile/profile-page-customer-user/profile-page-customer-user.component.ts","../../components/profile/profile-page-customer-user/profile-page-customer-user.component.html","../../components/profile/profile-page-vendor-user/profile-page-vendor-user.component.ts","../../components/profile/profile-page-vendor-user/profile-page-vendor-user.component.html","../../components/profile/profile-page/profile-page.component.ts","../../components/profile/profile-page/profile-page.component.html","../../components/oidc-callbacks/signin-callback/signin-callback.component.ts","../../components/oidc-callbacks/signin-callback/signin-callback.component.html","../../components/oidc-callbacks/signin-silent-callback/signin-silent-callback.component.ts","../../components/oidc-callbacks/signin-silent-callback/signin-silent-callback.component.html","../../components/oidc-callbacks/signout-callback/signout-callback.component.ts","../../components/oidc-callbacks/signout-callback/signout-callback.component.html","../../components/vendor-user/vendor-user-address/vendor-user-address.component.ts","../../components/vendor-user/vendor-user-address/vendor-user-address.component.html","../../components/vendor-user/vendor-user-details/vendor-user-details.component.ts","../../components/vendor-user/vendor-user-details/vendor-user-details.component.html","../../components/vendor-user/vendor-user-general/vendor-user-general.component.ts","../../components/vendor-user/vendor-user-general/vendor-user-general.component.html","../../components/vendor-user/vendor-user-image/vendor-user-image.component.ts","../../components/vendor-user/vendor-user-image/vendor-user-image.component.html","../../components/pickinglist/pickinglist-add-new-shipment/pickinglist-add-new-shipment.component.ts","../../components/pickinglist/pickinglist-add-new-shipment/pickinglist-add-new-shipment.component.html","../../components/print-dialog/print-dialog.component.ts","../../components/print-dialog/print-dialog.component.html","../../components/dimension/dimension-group-box/dimension-group-box.component.ts","../../components/dimension/dimension-group-box/dimension-group-box.component.html","../../components/dimension/dimension-groups/dimension-groups.component.ts","../../components/dimension/dimension-groups/dimension-groups.component.html","../../components/project/project-description/project-description.component.ts","../../components/project/project-description/project-description.component.html","../../components/project/project-finance/project-finance.component.ts","../../components/project/project-finance/project-finance.component.html","../../components/project/project-general/project-general.component.ts","../../components/project/project-general/project-general.component.html","../../components/project/project-location/project-location.component.ts","../../components/project/project-location/project-location.component.html","../../components/project/project-time/project-time.component.ts","../../components/project/project-time/project-time.component.html","../../components/project/project-variant-config/project-variant-config.component.ts","../../components/project/project-variant-config/project-variant-config.component.html","../../components/service-object/service-object-general/service-object-general.component.ts","../../components/service-object/service-object-general/service-object-general.component.html","../../components/service-object/service-object-model/service-object-model.component.ts","../../components/service-object/service-object-model/service-object-model.component.html","../../components/service-object/service-object-image/service-object-image.component.ts","../../components/service-object/service-object-image/service-object-image.component.html","../../components/service-object/service-object-inventory/service-object-inventory.component.ts","../../components/service-object/service-object-inventory/service-object-inventory.component.html","../../components/service-object/service-object-location/service-object-location.component.ts","../../components/service-object/service-object-location/service-object-location.component.html","../../components/service-object/service-object-service/service-object-service.component.ts","../../components/service-object/service-object-service/service-object-service.component.html","../../components/document/document-catalog/document-catalog.component.ts","../../components/document/document-catalog/document-catalog.component.html","../../components/document/document-catalog-dialog/document-catalog-dialog.component.ts","../../components/document/document-catalog-dialog/document-catalog-dialog.component.html","../../components/mobicloud-components.module.ts"],"sourcesContent":["import { Injectable, signal, effect, untracked } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { MobicloudCoreService, OrganizationInfo, LanguageInfo, getProfileImageUrl } from \"mobicloud-core\";\nimport { Customer, Vendor } from 'mobicloud-core/api';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MobiCloudComponentsService {\n  USER_PARTYTYPE: string | undefined;\n  USER_PARTYID: string | undefined;\n  USER_IMAGEURL: string | undefined;\n  USER_FULLNAME: string | undefined;\n  USERNAME: string | undefined;\n  USER_ORGANIZATION_NAME: string | undefined;\n  USER_ORGANIZATION_ACCOUNTNUM: string | undefined;\n  IS_ORGANIZATION_USER: boolean | undefined = false;\n  IS_ORGANIZATION_ADMIN: boolean | undefined = false;\n  IS_EMPLOYEE_USER: boolean | undefined = false;\n  IS_EMPLOYEE_MASTER_USER: boolean | undefined = false;\n  IS_CUSTOMER_USER: boolean | undefined = false;\n  IS_VENDOR_USER: boolean | undefined = false;\n  IS_MASTER_USER: boolean | undefined = false;\n  IS_MASTER_ADMIN: boolean | undefined = false;\n  APPDETAIL_OWNER_ORGANIZATION_ID: string|undefined;\n  APPDETAIL_OWNER_ORGANIZATION_NAME: string|undefined;\n  APPDETAIL_OWNER_ORGANIZATION_ACCOUNTNO: string|undefined;\n  APPDETAIL_ALLOW_SUBORGANIZATIONS: boolean = false;\n  ENABLE_MYPROFILE:boolean = true;\n  ALLOW_SUBORGANIZATIONS: boolean = false;\n\n  ORGANIZATIONS_DATASTORE!: ODataStore;\n  ORGANIZATIONS_DATASOURCE!: DataSource;  \n  ORGANIZATION_NAME: string | undefined;\n  ORGANIZATION_ACCOUNTNUM: string | undefined;\n  \n  SELECTED_ORGANIZATION_ID = signal<string|null>(null);\n\n  ORGANIZATION_DROPDOWN_OPENED: boolean|undefined = false;\n  IS_MASTER_ORGANIZATION: boolean|undefined = false;\n\n  CUSTOMERS_DATASTORE!: ODataStore;\n  CUSTOMERS_DATASOURCE!: DataSource; \n  SELECTED_CUSTOMER_ID = signal<string|null>(null);\n  CUSTOMER_DROPDOWN_OPENED: boolean|undefined = false;\n\n  VENDORS_DATASTORE!: ODataStore;\n  VENDORS_DATASOURCE!: DataSource; \n\n  SELECTED_VENDOR_ID = signal<string|null>(null);\n  VENDOR_DROPDOWN_OPENED: boolean|undefined = false;\n\n  CURRENT_LOCALE_ID: string | undefined;\n  CURRENT_LANGUAGE_NAME: string | undefined;  \n  SUPPORTED_LANGUAGES: LanguageInfo[];\n\n\n  constructor(protected httpClient: HttpClient, public coreService: MobicloudCoreService, protected _router: Router) \n  {\n    this.USER_IMAGEURL = getProfileImageUrl(undefined, undefined, undefined);\n\n    effect(() => {\n      const p = this.coreService.mobiUserProfile();\n      const profileDetails = this.coreService.profileDetails();\n      \n      this.USERNAME = p?.user_username;\n      this.USER_FULLNAME = p?.user_name;\n      this.USER_PARTYTYPE = p?.user_partytype;\n      this.USER_PARTYID = p?.user_partyid;\n      this.IS_ORGANIZATION_USER = p?.isOrganizationUser;\n      this.IS_ORGANIZATION_ADMIN = p?.isOrganizationAdmin;\n      this.IS_EMPLOYEE_USER = p?.isEmployeeUser;\n      this.IS_EMPLOYEE_MASTER_USER = p?.isEmployeeMasterUser;\n      this.IS_CUSTOMER_USER = p?.isCustomerUser;\n      this.IS_VENDOR_USER = p?.isVendorUser;\n      this.IS_MASTER_USER = p?.isMasterUser;\n      this.IS_MASTER_ADMIN = p?.isMasterAdmin;\n      if((p?.isMasterAdmin || p?.isMasterUser) && !p.isEmployeeMasterUser){\n        this.USER_ORGANIZATION_NAME = \"MASTER\";   \n        this.USER_ORGANIZATION_ACCOUNTNUM = \"••••••\";\n      }\n      else{\n        this.USER_ORGANIZATION_NAME = p?.user_partyname;\n        this.USER_ORGANIZATION_ACCOUNTNUM = p?.user_accountnumber;\n      }\n\n      if(profileDetails){\n        this.USER_IMAGEURL = getProfileImageUrl(profileDetails.Image?.StorageAccountName, profileDetails.Image?.BlobContainerName, profileDetails.Image?.BlobName);\n      }\n      \n      untracked(() => {\n        this.CREATE_MASTER_DATASOURCES();\n      });\n    });\n\n    effect(() => {\n      const app = this.coreService.applicationDetails();\n\n      this.ORGANIZATION_NAME = app?.OrganizationName;\n      this.ORGANIZATION_ACCOUNTNUM = app?.OrganizationAccountNumber;\n      this.IS_MASTER_ORGANIZATION = app?.IsMasterOrganization;\n      this.APPDETAIL_ALLOW_SUBORGANIZATIONS = app?.AllowSubOrganizations ?? false;\n      this.APPDETAIL_OWNER_ORGANIZATION_ID = app?.OwnerOrganizationId?.toLowerCase();\n      this.APPDETAIL_OWNER_ORGANIZATION_NAME = app?.OwnerOrganizationName;\n      this.APPDETAIL_OWNER_ORGANIZATION_ACCOUNTNO = app?.OwnerOrganizationAccountNumber;\n\n      untracked(() => {\n        this.CREATE_MASTER_DATASOURCES();\n      });\n    });\n\n    effect(() => {\n      this.CURRENT_LOCALE_ID = this.coreService.configService.currentLocaleId();\n    });\n    effect(() => {\n      this.CURRENT_LANGUAGE_NAME = this.coreService.configService.languageName();\n    });\n\n    this.SUPPORTED_LANGUAGES = this.coreService.configService.getSupportedLanguages();    \n  }\n\n  CREATE_MASTER_DATASOURCES(){\n    if(this.USER_PARTYTYPE == \"organization\" && this.USER_PARTYID && this.APPDETAIL_OWNER_ORGANIZATION_ID == this.USER_PARTYID.toLowerCase()){\n      this.ORGANIZATION_NAME = this.APPDETAIL_OWNER_ORGANIZATION_NAME;\n      this.ORGANIZATION_ACCOUNTNUM = this.APPDETAIL_OWNER_ORGANIZATION_ACCOUNTNO;\n      this.ENABLE_MYPROFILE = false;\n    }\n    else{\n      this.ENABLE_MYPROFILE = true;\n    }\n\n    this.ALLOW_SUBORGANIZATIONS = this.APPDETAIL_ALLOW_SUBORGANIZATIONS || (this.USER_PARTYTYPE == \"organization\" && (this.APPDETAIL_OWNER_ORGANIZATION_ID != undefined && this.USER_PARTYID != undefined) && this.APPDETAIL_OWNER_ORGANIZATION_ID == this.USER_PARTYID.toLowerCase());\n    \n    if(this.coreService.isMasterUserAuthenticated()){\n      this.CREATE_ORGANIZATIONS_DATASOURCE();\n      if(this.coreService.hasMasterOrganization()){\n        this.SELECTED_ORGANIZATION_ID.set(this.coreService.getMasterOrganization());                    \n      }\n      if(this.coreService.require_Customer){\n        this.CREATE_CUSTOMERS_DATASOURCE();\n        if(this.coreService.hasMasterCustomer()){            \n          this.SELECTED_CUSTOMER_ID.set(this.coreService.getMasterCustomer());\n        }\n      }\n      if(this.coreService.require_Vendor){\n        this.CREATE_VENDORS_DATASOURCE();\n        if(this.coreService.hasMasterVendor()){\n          this.SELECTED_VENDOR_ID.set(this.coreService.getMasterVendor());\n        }\n      }\n    }\n    else if(this.coreService.isOrganizationAuthenticated()){\n      if(this.ALLOW_SUBORGANIZATIONS){\n        this.CREATE_ORGANIZATIONS_DATASOURCE();\n        if(this.coreService.hasMasterOrganization()){\n          this.SELECTED_ORGANIZATION_ID.set(this.coreService.getMasterOrganization());                    \n        }\n      }\n      if(this.coreService.require_Customer){\n        this.CREATE_CUSTOMERS_DATASOURCE();\n        if(this.coreService.hasMasterCustomer()){            \n          this.SELECTED_CUSTOMER_ID.set(this.coreService.getMasterCustomer());\n        }\n      }\n      if(this.coreService.require_Vendor){\n        this.CREATE_VENDORS_DATASOURCE();\n        if(this.coreService.hasMasterVendor()){\n          this.SELECTED_VENDOR_ID.set(this.coreService.getMasterVendor());\n        }\n      }\n    }\n  } \n\n  async CREATE_ORGANIZATIONS_DATASOURCE(){\n    this.ORGANIZATIONS_DATASTORE = new ODataStore({\n      url: `${this.coreService.configService.getMobiManagementDataUrl()}OrganizationInfo/GetAll()`,\n      withCredentials: true, \n      key: \"OrganizationId\",\n      keyType: \"Guid\",\n      version: 4,\n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"GET\") {\n          var regex = (/\\)\\(([^)]+)\\)/).exec(e.url ?? '');\n          if(regex && regex[1]){\n            var orgId = regex[1];\n              e.url = `${this.coreService.configService.getMobiManagementDataUrl()}OrganizationInfo(${orgId})`;       \n          }             \n          if(!e.params?.$orderby){\n            e.params.$orderby = \"Name\";\n          }\n          if(e.params?.$filter){\n            e.params.$filter = e.params.$filter + \" and Active eq true or Active eq null\";\n          }\n          else{\n            e.params.$filter = \"Active eq true or Active eq null\";\n          }\n          e.params.$select = \"OrganizationId,Name,AccountNumber\";\n        }   \n      }           \n    });\n\n    this.ORGANIZATIONS_DATASOURCE = new DataSource({\n      store: this.ORGANIZATIONS_DATASTORE,\n      requireTotalCount: true,\n      map: (dataItem) => {       \n        // console.log(dataItem); \n        return Object.assign(new OrganizationInfo(), dataItem);\n      }          \n    });\n  }   \n  \n  ORGANIZATION_DROPDOWN_SELECTION_CHANGED(args:any) {\n    this.SELECTED_ORGANIZATION_ID.set(args.selectedRowsData?.length > 0 ? args.selectedRowsData[0]?.OrganizationId : null);\n  }   \n  \n  ORGANIZATION_DROPDOWN_VALUE_CHANGED(e:any){\n    this.ORGANIZATIONID_CHANGED(e.value);\n  }  \n  \n  ORGANIZATIONID_CHANGED(organizationId:any) {\n    if(organizationId){\n      // console.log(\"has value:\",organizationId.toString());      \n      this.coreService.setMasterOrganization(organizationId.toString()).then(() =>\n      {   \n        this.SELECTED_ORGANIZATION_ID.set(organizationId);\n        this.coreService.removeMasterCustomer();\n        this.SELECTED_CUSTOMER_ID.set(null);\n        this.coreService.removeMasterVendor();    \n        this.SELECTED_VENDOR_ID.set(null); \n        // console.log(\"Organization changed\");\n        // location.reload();\n        this._router.navigateByUrl(`/`).then((res) =>{\n          location.reload();\n        });  \n      }).catch((res) =>\n      {\n        console.error(\"Failed changing organization:\", res);\n      });\n    }\n    else{\n      // console.log(\"no value:\",organizationId);\n      this.coreService.removeMasterOrganization();\n      this.SELECTED_ORGANIZATION_ID.set(null);\n      this.coreService.removeMasterCustomer();\n      this.SELECTED_CUSTOMER_ID.set(null);\n      this.coreService.removeMasterVendor();\n      this.SELECTED_VENDOR_ID.set(null);\n      this._router.navigateByUrl(`/`).then((res) =>{\n        location.reload();\n      });      \n    }\n  }  \n\n  //-- Customer\n\n  async CREATE_CUSTOMERS_DATASOURCE(){\n    var masterOrganization:string|null = this.coreService.getMasterOrganization();\n    if(masterOrganization){\n      this.CUSTOMERS_DATASTORE = new ODataStore({\n        url: `${this.coreService.configService.getMobiManagementDataUrl()}Customer`,\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,\n        beforeSend: (e) => { \n          if(e.method?.toUpperCase() == \"GET\") {          \n            if(!e.params?.$orderby){\n              e.params.$orderby = \"Name\";\n            }\n            e.params.$select = \"Id,Name,AccountNumber\";\n          }   \n        }           \n      });\n\n      if(this.CUSTOMERS_DATASOURCE)\n        this.CUSTOMERS_DATASOURCE.dispose();\n\n      this.CUSTOMERS_DATASOURCE = new DataSource({\n        store: this.CUSTOMERS_DATASTORE,\n        requireTotalCount: true,\n        map: (dataItem) => {       \n          // console.log(dataItem); \n          return Object.assign(new Customer(), dataItem);\n        }          \n      });  \n    }\n  }  \n\n  CUSTOMER_DROPDOWN_SELECTION_CHANGED(args:any) {\n    this.SELECTED_CUSTOMER_ID.set(args.selectedRowsData?.length > 0 ? args.selectedRowsData[0]?.Id : null);\n  }   \n\n  CUSTOMER_DROPDOWN_VALUE_CHANGED(e:any){       \n    this.CUSTOMER_CHANGED(e.value);\n\n  }  \n  \n  CUSTOMER_CHANGED(customerId:any) {\n    if(customerId){\n      // console.log(\"has value:\",customerId.toString());\n      this.coreService.setMasterCustomer(customerId.toString());\n      this.SELECTED_CUSTOMER_ID.set(customerId.toString());\n      // console.log(\"Customer changed\");\n      location.reload();\n    }\n    else{\n      // console.log(\"no value:\",customerId);\n      this.coreService.removeMasterCustomer();\n      this.SELECTED_CUSTOMER_ID.set(null);\n      this._router.navigateByUrl(`/`).then((res) =>{\n        location.reload();\n      });      \n    }\n  }\n\n  //-- Vendor\n\n  async CREATE_VENDORS_DATASOURCE(){\n    var masterOrganization:string|null = this.coreService.getMasterOrganization();\n    if(masterOrganization){\n      this.VENDORS_DATASTORE = new ODataStore({\n        url: `${this.coreService.configService.getMobiManagementDataUrl()}Vendor`,\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,\n        beforeSend: (e) => { \n          if(e.method?.toUpperCase() == \"GET\") {          \n            if(!e.params?.$orderby){\n              e.params.$orderby = \"Name\";\n            }\n            e.params.$select = \"Id,Name,VendorId\";\n          }   \n        }           \n      });\n\n      if(this.VENDORS_DATASOURCE)\n        this.VENDORS_DATASOURCE.dispose();\n\n      this.VENDORS_DATASOURCE = new DataSource({\n        store: this.VENDORS_DATASTORE,\n        requireTotalCount: true,\n        map: (dataItem) => {       \n          // console.log(dataItem); \n          return Object.assign(new Vendor(), dataItem);\n        }          \n      });  \n    }\n  }  \n\n  VENDOR_DROPDOWN_SELECTION_CHANGED(args:any) {\n    this.SELECTED_VENDOR_ID.set(args.selectedRowsData?.length > 0 ? args.selectedRowsData[0]?.Id : null);\n  }   \n\n  VENDOR_DROPDOWN_VALUE_CHANGED(e:any){  \n    this.VENDOR_CHANGED(e.value);     \n  }\n\n  VENDOR_CHANGED(vendorId:any) {\n    if(vendorId){\n      // console.log(\"has value:\",vendorId.toString());\n      this.coreService.setMasterVendor(vendorId.toString());\n      this.SELECTED_VENDOR_ID.set(vendorId);\n      location.reload();\n    }\n    else{\n      // console.log(\"no value:\",vendorId);\n      this.coreService.removeMasterVendor();\n      this.SELECTED_VENDOR_ID.set(null);\n      this._router.navigateByUrl(`/`).then((res) =>{\n        location.reload();\n      });      \n    }      \n  }\n\n  CHANGE_LANGUAGE(localeId: string){\n    if(this.CURRENT_LOCALE_ID != localeId){\n      var newHostUrl: string;\n      if(localeId == \"en-US\"){   \n        newHostUrl =  this.coreService.configService.host_url_en;\n      }\n      else{\n        newHostUrl =  this.coreService.configService.host_url;\n      }\n\n      var newUrl: string;\n      if(location.pathname.startsWith('/')){\n        newUrl = newHostUrl + location.pathname.substring(1);\n      }\n      else{\n        newUrl = newHostUrl + location.pathname;\n      }\n      window.location.href = newUrl;\n    }    \n  }\n\n}\n","import { Directive, ElementRef, HostListener, Input, Renderer2, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n  selector: '[appMaterialElevation]'\n})\n\nexport class MaterialElevationDirective implements OnChanges {\n\n  @Input()\n  defaultElevation = 0;\n\n  @Input()\n  raisedElevation = 8;\n\n  constructor(\n    private element: ElementRef,\n    private renderer: Renderer2\n  ) {\n    this.setElevation(this.defaultElevation);\n  }\n\n  ngOnChanges(_changes: SimpleChanges) {\n    this.setElevation(this.defaultElevation);\n  }\n\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.setElevation(this.raisedElevation);\n  }\n\n  @HostListener('mouseleave')\n  onMouseLeave() {\n    this.setElevation(this.defaultElevation);\n  }\n\n  setElevation(amount: number) {\n    // remove all elevation classes\n    const classesToRemove = Array.from((<HTMLElement>this.element.nativeElement).classList).filter(c => c.startsWith('mat-elevation-z'));\n    classesToRemove.forEach((c) => {\n      this.renderer.removeClass(this.element.nativeElement, c);\n    });\n\n    // add the given elevation class\n    const newClass = `mat-elevation-z${amount}`;\n    this.renderer.addClass(this.element.nativeElement, newClass);\n  }\n}","import { Component, Input, EventEmitter, TemplateRef } from '@angular/core';\nimport { VERSION } from '@angular/core';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\n\nimport { MobicloudCoreService, OrganizationInfo, getProfileImageUrl, IMenuNode, IToolbarItem, LanguageInfo, ThemeInfo } from \"mobicloud-core\";\nimport { Customer, Vendor } from 'mobicloud-core/api';\n\nimport { MobiCloudComponentsService } from \"../mobicloud-components.service\";\n\n@Component({\n  selector: 'mobicloud-main-nav',\n  templateUrl: './main-nav.component.html',\n  styleUrls: ['./main-nav.component.scss']\n})\nexport class MainNavComponent {\n  angularVersion = VERSION.major + '.' + VERSION.minor + '.' + VERSION.patch;\n  angularVersion_Full = VERSION.full;\n\n  @Input() appLogoTemplate: TemplateRef<HTMLElement>|undefined; \n  @Input() appTitleTemplate: TemplateRef<HTMLElement>|undefined; \n\n  @Input() organizationSelectorTemplate: TemplateRef<HTMLElement>|undefined; \n  @Input() customerSelectorTemplate: TemplateRef<HTMLElement>|undefined; \n  @Input() vendorSelectorTemplate: TemplateRef<HTMLElement>|undefined; \n\n  @Input() profileMenuTemplate: TemplateRef<HTMLElement>|undefined; \n\n  @Input() menuNodes:  IMenuNode[]|undefined;  \n  @Input() toolbarItems: IToolbarItem[]|undefined;\n  @Input() title: string|undefined;\n  @Input() showMainHeader: boolean = false;\n  @Input() showMainSidebar: boolean = false;\n  @Input() showMainFooter: boolean = false;\n\n  public ToolbarItemClick: EventEmitter<{name: string, parameters: any[]}> = new EventEmitter<{name: string, parameters: any[]}>();\n\n  isHandset$!: Observable<boolean>;\n\n  // isHandset$: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset)\n  //   .pipe(\n  //     map(result => {\n  //       return result.matches;\n  //     }),\n  //     shareReplay()\n  //   );\n\n  constructor(protected breakpointObserver: BreakpointObserver, protected _router: Router, public coreService:MobicloudCoreService, public componentsService:MobiCloudComponentsService) {     \n    this.isHandset$ = this.breakpointObserver.observe(Breakpoints.Handset)\n    .pipe(\n      map(result => {\n        return result.matches;\n      }),\n      shareReplay()\n    );\n  }\n\n  sidebarOpened:boolean = true;\n  openedChangeSidenav(opened:boolean){\n    this.sidebarOpened = opened;\n    // console.log(\"openedChangeSidenav\",opened);\n  }\n\n  onToolbarItemClick(name: string, parameters: any[]){\n    this.ToolbarItemClick.emit({name, parameters});\n  }    \n\n  signout(){\n    this.coreService.signout();\n  }\n\n  displayVersion(){\n    console.log(`${this.coreService._appTitle ?? this.coreService._appName} v${this.coreService._appVersion}`);\n    console.log(`Angular version: ${this.angularVersion_Full}`);\n    \n    // import(\"../../package.json\").then((result) => {\n    //   console.log(`DevExtreme version: ${result.dependencies['devextreme'] }`);\n    //   console.log(`@angular/material version: ${result.dependencies['@angular/material'] }`);\n    //   console.log(`centrifuge version: ${result.dependencies['centrifuge'] }`);\n    // });\n\n    \n  }\n\n}\n\n","<mat-sidenav-container class=\"sidenav-container\" fullscreen>\n\n  <mat-sidenav #drawer class=\"sidenav\" fixedInViewport [attr.role]=\"(isHandset$ | async) ? 'dialog' : 'navigation'\"\n    [mode]=\"(isHandset$ | async) ? 'over' : 'side'\" [opened]=\"((isHandset$ | async) === false) && showMainSidebar\" (openedChange)=\"openedChangeSidenav($event)\">\n\n    <mat-toolbar class=\"menu-toolbar\">\n      <mat-toolbar-row>\n        <div class=\"menu-toolbar-content\">\n          <div class=\"menu-toolbar-logo-container\" routerLink=\"/\">\n            <ng-container [ngTemplateOutlet]=\"appLogoTemplate\" [ngTemplateOutletContext]=\"{data: {}}\" *ngIf=\"appLogoTemplate\"></ng-container>\n            <svg-icon *ngIf=\"!appLogoTemplate\" name=\"mobicloud_logo\" class=\"menu-toolbar-logo-icon\"></svg-icon>\n          </div>          \n          <div class=\"menu-toolbar-app-tittle-container\">\n            <div class=\"menu-toolbar-app-burgermenu\">\n              <button type=\"button\" class=\"toolbar-menu-button toolbar-menu-button-inmenu\" aria-label=\"Toggle sidenav\"  mat-button (click)=\"drawer.toggle()\" matTooltip=\"Hide menu\" *ngIf=\"showMainSidebar\">\n                <mat-icon aria-label=\"menu icon\" class=\"toolbar-menu-button-icon\">menu</mat-icon>\n              </button> \n            </div>\n            <span class=\"menu-toolbar-app-divider\"></span>            \n                        \n            <div class=\"menu-toolbar-app-tittle-wrapper\">\n              <ng-container [ngTemplateOutlet]=\"appTitleTemplate\" [ngTemplateOutletContext]=\"{data: {}}\" *ngIf=\"appTitleTemplate\"></ng-container>              \n              <div *ngIf=\"!appTitleTemplate\" class=\"menu-toolbar-app-tittle\">{{title}}</div>\n            </div>\n          </div>\n      </div>\n      </mat-toolbar-row>\n    </mat-toolbar>\n\n    <mat-nav-list>\n      <ng-container *ngFor=\"let menuNode1 of menuNodes\">\n          <ng-container *ngIf=\"!menuNode1.children; else hasChildren1\">\n          <!-- LEVEL 1 FLAT -->\n          <a mat-list-item [routerLink]=\"menuNode1.link\" [state]=\"menuNode1.linkstate\" class=\"navitem-level1\" [routerLinkActive]=\"['navitem-level1-active']\" routerLinkActive #rla1_flat=\"routerLinkActive\">\n            <mat-icon svgIcon=\"{{menuNode1.svg}}\" [ngClass]=\"{'inactive': !rla1_flat.isActive,'active': rla1_flat.isActive}\"></mat-icon>\n            <span>{{ menuNode1.caption }}</span>\n          </a>\n        </ng-container>\n        <ng-template #hasChildren1>\n          <!-- LEVEL 1 EXPAND -->\n          <mat-expansion-panel class=\"mat-elevation-z0 expansion-panel-level1\" routerLinkActive #rla1_expand=\"routerLinkActive\" [expanded]=\"rla1_expand.isActive\" [@.disabled]=\"true\">\n            <!-- <mat-expansion-panel class=\"mat-elevation-z0 expansion-panel-level1\" routerLinkActive #rla1_expand=\"routerLinkActive\" [expanded]=\"true\">    -->\n            <mat-expansion-panel-header [ngClass]=\"{'expansion-panel-header-level1': !rla1_expand.isActive,'expansion-panel-header-level1-active': rla1_expand.isActive}\">       \n              <mat-panel-title [ngClass]=\"{'expansion-panel-header-title-level1': !rla1_expand.isActive, 'expansion-panel-header-title-level1-active': rla1_expand.isActive}\">\n                <mat-icon svgIcon=\"{{menuNode1.svg}}\" [ngClass]=\"{'inactive': !rla1_expand.isActive,'active': rla1_expand.isActive}\"></mat-icon>\n                <span>{{ menuNode1.caption }}</span>\n              </mat-panel-title>\n            </mat-expansion-panel-header>\n            <ng-container *ngFor=\"let menuNode2 of menuNode1.children\">\n              <!-- LEVEL 2 -->\n              <ng-container *ngIf=\"!menuNode2.children; else hasChildren2\">\n                <!-- LEVEL 2 FLAT -->\n                <a mat-list-item [routerLink]=\"menuNode2.link\" [state]=\"menuNode2.linkstate\" class=\"navitem-level2-flat\" [routerLinkActive]=\"['navitem-level2-active-flat']\" routerLinkActive #rla2_flat=\"routerLinkActive\">\n                  <mat-icon svgIcon=\"{{menuNode2.svg}}\" [ngClass]=\"{'inactive': !rla2_flat.isActive,'active': rla2_flat.isActive}\"></mat-icon>\n                  <span>{{ menuNode2.caption }}</span>\n                </a>                \n              </ng-container>\n              <ng-template #hasChildren2>\n                <!-- LEVEL 2 EXPAND -->\n                <mat-expansion-panel class=\"mat-elevation-z0 expansion-panel-level2\" routerLinkActive #rla2_expand=\"routerLinkActive\" [expanded]=\"rla2_expand.isActive\" [@.disabled]=\"true\">        \n                  <mat-expansion-panel-header [ngClass]=\"{'expansion-panel-header-level2': !rla2_expand.isActive,'expansion-panel-header-level2-active': rla2_expand.isActive}\">       \n                    <mat-panel-title [ngClass]=\"{'expansion-panel-header-title-level2': !rla2_expand.isActive, 'expansion-panel-header-title-level2-active': rla2_expand.isActive}\">\n                      <mat-icon svgIcon=\"{{menuNode2.svg}}\" [ngClass]=\"{'inactive': !rla2_expand.isActive,'active': rla2_expand.isActive}\"></mat-icon>\n                      <span>{{ menuNode2.caption }}</span>\n                    </mat-panel-title>\n                  </mat-expansion-panel-header>\n                  <ng-container *ngFor=\"let menuNode3 of menuNode2.children\">\n                    <!-- LEVEL 3 FLAT -->\n                    <a mat-list-item [routerLink]=\"menuNode3.link\" [state]=\"menuNode3.linkstate\" class=\"navitem-level3-flat\" [routerLinkActive]=\"['navitem-level3-active-flat']\" routerLinkActive #rla3_flat=\"routerLinkActive\">\n                      <mat-icon svgIcon=\"{{menuNode3.svg}}\" [ngClass]=\"{'inactive': !rla3_flat.isActive,'active': rla3_flat.isActive}\"></mat-icon>\n                      <span>{{ menuNode3.caption }}</span>\n                    </a>\n                  </ng-container>\n                </mat-expansion-panel>                \n              </ng-template>\n            </ng-container>\n          </mat-expansion-panel>                      \n        </ng-template>\n      </ng-container> \n\n    </mat-nav-list>\n\n  </mat-sidenav>\n\n  <!-- *ngIf=\"showMainSidebar\" -->\n\n  <mat-sidenav-content class=\"sidenav-maincontent\">\n    <mat-toolbar *ngIf=\"showMainHeader\">\n      <mat-toolbar-row>\n      <!-- <button type=\"button\" aria-label=\"Toggle sidenav\" mat-icon-button (click)=\"drawer.toggle()\"\n        *ngIf=\"(isHandset$ | async) && showMainSidebar\">\n        <mat-icon aria-label=\"menu icon\" class=\"toolbar-menu-button-icon\">menu</mat-icon>\n      </button>      -->\n      <button type=\"button\" class=\"toolbar-menu-button toolbar-menu-button-outmenu\" aria-label=\"Toggle sidenav\" mat-button (click)=\"drawer.toggle()\" matTooltip=\"Open menu\" *ngIf=\"showMainSidebar && !sidebarOpened\">\n        <mat-icon aria-label=\"menu icon\" class=\"toolbar-menu-button-icon\">menu</mat-icon>\n      </button>        \n\n      <div class=\"organization-select-container\" *ngIf=\"((componentsService.IS_MASTER_USER || componentsService.IS_MASTER_ADMIN) || (componentsService.ALLOW_SUBORGANIZATIONS)) && coreService.require_Organization\">\n        <ng-container [ngTemplateOutlet]=\"organizationSelectorTemplate\" [ngTemplateOutletContext]=\"{data: {}}\" *ngIf=\"organizationSelectorTemplate\">\n        </ng-container> \n        \n        \n        <dx-drop-down-box *ngIf=\"!organizationSelectorTemplate\" stylingMode=\"outlined\" width=\"260px\" placeholder=\"Select Organization\" [showClearButton]=\"true\" [dataSource]=\"componentsService.ORGANIZATIONS_DATASOURCE\" [(value)]=\"componentsService.SELECTED_ORGANIZATION_ID\" valueExpr=\"OrganizationId\" displayExpr=\"Name\" [(opened)]=\"componentsService.ORGANIZATION_DROPDOWN_OPENED\" (onValueChanged)=\"componentsService.ORGANIZATION_DROPDOWN_VALUE_CHANGED($event)\">\n          <dxo-drop-down-options title=\"Organizations\" i18n-title=\"@@FieldCaption-Organizations\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\" width=\"360px\"></dxo-drop-down-options>\n          <div *dxTemplate=\"let data of 'content'\">\n            <dx-data-grid [focusedRowKey]=\"componentsService.SELECTED_ORGANIZATION_ID\" class=\"lookup-select-datagrid\" [dataSource]=\"componentsService.ORGANIZATIONS_DATASOURCE\" [hoverStateEnabled]=\"true\" height=\"100%\" (onSelectionChanged)=\"componentsService.ORGANIZATION_DROPDOWN_SELECTION_CHANGED($event)\" (onRowClick)=\"componentsService.ORGANIZATION_DROPDOWN_OPENED = false\">\n              <dxo-search-panel [visible]=\"true\" width=\"260px\" [highlightSearchText]=\"true\" [searchVisibleColumnsOnly]=\"false\" i18n-placeholder=\"@@Placeholder-Search\" placeholder=\"Search...\"></dxo-search-panel>     \n              <dxi-column dataField=\"OrganizationId\" [allowSearch]=\"false\" i18n-caption=\"@@GridColumn-Id\" caption=\"Id\" [visible]=\"false\"></dxi-column>\n              <dxi-column dataField=\"AccountNumber\" [allowSearch]=\"true\" i18n-caption=\"@@GridColumn-AccountNumber\" caption=\"Account no.\" width=\"100px\"></dxi-column>\n              <dxi-column dataField=\"Name\" [allowSearch]=\"true\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n              <dxo-selection mode=\"single\"></dxo-selection>\n              <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n              <dxo-scrolling mode=\"virtual\"></dxo-scrolling>\n              <dxo-paging [enabled]=\"true\" [pageSize]=\"20\"></dxo-paging>\n            </dx-data-grid>\n          </div>          \n        </dx-drop-down-box>\n      </div>\n\n      <div class=\"customer-select-container\" *ngIf=\"(componentsService.IS_MASTER_USER || componentsService.IS_MASTER_ADMIN || componentsService.IS_ORGANIZATION_USER || componentsService.IS_EMPLOYEE_USER) && (coreService.require_Organization && coreService.require_Customer)\">\n        <ng-container [ngTemplateOutlet]=\"customerSelectorTemplate\" [ngTemplateOutletContext]=\"{data: {}}\" *ngIf=\"customerSelectorTemplate\">\n        </ng-container> \n\n        <dx-drop-down-box *ngIf=\"!customerSelectorTemplate\" stylingMode=\"outlined\" width=\"260px\" placeholder=\"Select Customer\" [showClearButton]=\"true\" [dataSource]=\"componentsService.CUSTOMERS_DATASOURCE\" [(value)]=\"componentsService.SELECTED_CUSTOMER_ID\" valueExpr=\"Id\" displayExpr=\"Name\" [(opened)]=\"componentsService.CUSTOMER_DROPDOWN_OPENED\" (onValueChanged)=\"componentsService.CUSTOMER_DROPDOWN_VALUE_CHANGED($event)\">\n          <dxo-drop-down-options title=\"Customers\" i18n-title=\"@@FieldCaption-Customers\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\" width=\"360px\"></dxo-drop-down-options>\n          <div *dxTemplate=\"let data of 'content'\">\n            <dx-data-grid [focusedRowKey]=\"componentsService.SELECTED_CUSTOMER_ID\" class=\"lookup-select-datagrid\" [dataSource]=\"componentsService.CUSTOMERS_DATASOURCE\" [hoverStateEnabled]=\"true\" height=\"100%\" (onSelectionChanged)=\"componentsService.CUSTOMER_DROPDOWN_SELECTION_CHANGED($event)\" (onRowClick)=\"componentsService.CUSTOMER_DROPDOWN_OPENED = false\">\n              <dxo-search-panel [visible]=\"true\" width=\"260px\" [highlightSearchText]=\"true\" [searchVisibleColumnsOnly]=\"false\" i18n-placeholder=\"@@Placeholder-Search\" placeholder=\"Search...\"></dxo-search-panel>     \n              <dxi-column dataField=\"Id\" [allowSearch]=\"false\" i18n-caption=\"@@GridColumn-Id\" caption=\"Id\" [visible]=\"false\"></dxi-column>\n              <dxi-column dataField=\"AccountNumber\" [allowSearch]=\"true\" i18n-caption=\"@@GridColumn-AccountNumber\" caption=\"Account no.\" width=\"100px\"></dxi-column>\n              <dxi-column dataField=\"Name\" [allowSearch]=\"true\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n              <dxo-selection mode=\"single\"></dxo-selection>\n              <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n              <dxo-scrolling mode=\"virtual\"></dxo-scrolling>\n              <dxo-paging [enabled]=\"true\" [pageSize]=\"20\"></dxo-paging>\n            </dx-data-grid>\n          </div>          \n        </dx-drop-down-box>\n      </div>      \n     \n      <div class=\"vendor-select-container\" *ngIf=\"(componentsService.IS_MASTER_USER || componentsService.IS_MASTER_ADMIN || componentsService.IS_ORGANIZATION_USER || componentsService.IS_EMPLOYEE_USER) && (coreService.require_Organization && coreService.require_Vendor)\">\n        <ng-container [ngTemplateOutlet]=\"vendorSelectorTemplate\" [ngTemplateOutletContext]=\"{data: {}}\" *ngIf=\"vendorSelectorTemplate\">\n        </ng-container> \n\n        <dx-drop-down-box *ngIf=\"!vendorSelectorTemplate\" stylingMode=\"outlined\" width=\"260px\" placeholder=\"Select Vendor\" [showClearButton]=\"true\" [dataSource]=\"componentsService.VENDORS_DATASOURCE\" [(value)]=\"componentsService.SELECTED_VENDOR_ID\" valueExpr=\"Id\" displayExpr=\"Name\" [(opened)]=\"componentsService.VENDOR_DROPDOWN_OPENED\" (onValueChanged)=\"componentsService.VENDOR_DROPDOWN_VALUE_CHANGED($event)\">\n          <dxo-drop-down-options title=\"Vendors\" i18n-title=\"@@FieldCaption-Vendors\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\" width=\"360px\"></dxo-drop-down-options>\n          <div *dxTemplate=\"let data of 'content'\">\n            <dx-data-grid [focusedRowKey]=\"componentsService.SELECTED_VENDOR_ID\" class=\"lookup-select-datagrid\" [dataSource]=\"componentsService.VENDORS_DATASOURCE\" [hoverStateEnabled]=\"true\" height=\"100%\" (onSelectionChanged)=\"componentsService.VENDOR_DROPDOWN_SELECTION_CHANGED($event)\" (onRowClick)=\"componentsService.VENDOR_DROPDOWN_OPENED = false\">\n              <dxo-search-panel [visible]=\"true\" width=\"260px\" [highlightSearchText]=\"true\" [searchVisibleColumnsOnly]=\"false\" i18n-placeholder=\"@@Placeholder-Search\" placeholder=\"Search...\"></dxo-search-panel>     \n              <dxi-column dataField=\"Id\" [allowSearch]=\"false\" i18n-caption=\"@@GridColumn-Id\" caption=\"Id\" [visible]=\"false\"></dxi-column>\n              <dxi-column dataField=\"VendorId\" [allowSearch]=\"true\" i18n-caption=\"@@GridColumn-VendorId\" caption=\"Vendor id\" width=\"100px\"></dxi-column>\n              <dxi-column dataField=\"Name\" [allowSearch]=\"true\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n              <dxo-selection mode=\"single\"></dxo-selection>\n              <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n              <dxo-scrolling mode=\"virtual\"></dxo-scrolling>\n              <dxo-paging [enabled]=\"true\" [pageSize]=\"20\"></dxo-paging>\n            </dx-data-grid>\n          </div>          \n        </dx-drop-down-box>\n      </div>  \n\n      <span class=\"toolbar-divider\"></span>      \n          \n      <ng-container *ngIf=\"toolbarItems\">            \n        <ng-container *ngFor=\"let toolbarItem of toolbarItems\">\n            <button *ngIf=\"(toolbarItem.itemtype===undefined) || toolbarItem.itemtype=='' || toolbarItem.itemtype=='button'\" aria-label=\"Button\" mat-raised-button appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" [state]=\"toolbarItem.linkstate\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" [class]=\"toolbarItem.cssClass_Icon ? ('menu-toolbar-button ' + toolbarItem.cssClass) : 'menu-toolbar-button'\" matTooltip=\"{{toolbarItem.caption}}\">\n              <div class=\"menu-toolbar-button-content\">\n                <svg-icon [name]=\"toolbarItem.svg\" [svgClass]=\"toolbarItem.cssClass_Icon ? ('menu-toolbar-button-icon ' + toolbarItem.cssClass_Icon) : 'menu-toolbar-button-icon'\"></svg-icon>\n              </div>            \n            </button>   \n            <button *ngIf=\"toolbarItem.itemtype=='round_button'\" aria-label=\"Button\" mat-fab appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" [state]=\"toolbarItem.linkstate\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" [class]=\"toolbarItem.cssClass_Icon ? ('menu-toolbar-button ' + toolbarItem.cssClass) : 'menu-toolbar-button'\" matTooltip=\"{{toolbarItem.caption}}\">\n              <div class=\"menu-toolbar-button-content\">\n                <svg-icon [name]=\"toolbarItem.svg\" [svgClass]=\"toolbarItem.cssClass_Icon ? ('menu-toolbar-button-icon ' + toolbarItem.cssClass_Icon) : 'menu-toolbar-button-icon'\"></svg-icon>\n              </div>            \n            </button>                                      \n        </ng-container>\n        <!-- <mat-divider vertical style=\"height:100%\"></mat-divider> -->\n      </ng-container>\n\n      <ng-container [ngTemplateOutlet]=\"profileMenuTemplate\" [ngTemplateOutletContext]=\"{data: {}}\" *ngIf=\"profileMenuTemplate\">\n      </ng-container> \n      \n      <div class=\"menu-toolbar-profile-container\" *ngIf=\"!profileMenuTemplate\">\n        <button mat-raised-button *ngIf=\"componentsService.USERNAME\"  [matMenuTriggerFor]=\"profileMenu\" appMaterialElevation [matTooltip]=\"componentsService.USER_FULLNAME\" aria-label=\"Profile\" i18n-aria-label=\"@@Action-Profile\" class=\"menu-toolbar-button menu-toolbar-button-profile\">\n          <!-- <svg-icon name=\"mobicloud_profile\" svgClass=\"menu-toolbar-button-icon menu-toolbar-button-icon-small\"></svg-icon> -->\n          <div class=\"menu-toolbar-button-content menu-toolbar-button-content-user\">\n            <img alt=\"\"alt=\"\" [src]=\"componentsService.USER_IMAGEURL\" class=\"menu-toolbar-button-profileImage\">\n            <div class=\"profile-text-container\">\n              <div class=\"profile-text-accountname\">{{componentsService.USER_ORGANIZATION_NAME}}</div>\n              <div class=\"profile-text-accountdetails\">\n                <div class=\"profile-text-accountnumber\">{{componentsService.USER_ORGANIZATION_ACCOUNTNUM}}</div>\n                <div class=\"profile-text-username\">\n                  <svg-icon name=\"mobicloud_employee\" svgClass=\"username-icon\" *ngIf=\"componentsService.IS_EMPLOYEE_USER && !componentsService.IS_EMPLOYEE_MASTER_USER\"></svg-icon>\n                  <svg-icon name=\"mobicloud_system_user\" svgClass=\"username-icon\" *ngIf=\"componentsService.IS_ORGANIZATION_USER\"></svg-icon>\n                  <svg-icon name=\"mobicloud_customer\" svgClass=\"username-icon\" *ngIf=\"componentsService.IS_CUSTOMER_USER\"></svg-icon>\n                  <svg-icon name=\"mobicloud_vendor\" svgClass=\"username-icon\" *ngIf=\"componentsService.IS_VENDOR_USER\"></svg-icon>\n                  <svg-icon name=\"mobicloud_master_user\" svgClass=\"username-icon username-icon-master\" *ngIf=\"componentsService.IS_MASTER_USER && !componentsService.IS_MASTER_ADMIN\"></svg-icon>\n                  <svg-icon name=\"mobicloud_master_admin\" svgClass=\"username-icon username-icon-master\" *ngIf=\"componentsService.IS_MASTER_ADMIN\"></svg-icon>\n                  <span [ngClass]=\"{'username-label-admin':(componentsService.IS_ORGANIZATION_ADMIN || componentsService.IS_MASTER_ADMIN), 'username-label':!(componentsService.IS_ORGANIZATION_ADMIN || componentsService.IS_MASTER_ADMIN)}\">{{componentsService.USERNAME}}</span>\n                </div>\n              </div>\n            </div>\n            <div class=\"profile-expand-container\">\n              <svg-icon name=\"mobicloud_expand\" svgClass=\"expand-icon\"></svg-icon>\n            </div>\n          </div>\n        </button>  \n      </div>\n\n      <mat-menu #profileMenu class=\"profileMenu\">\n        <button aria-label=\"language\" mat-menu-item [matMenuTriggerFor]=\"languages\">\n          <mat-icon svgIcon=\"mobicloud_language\" class=\"menu-item-icon\"></mat-icon>\n          <span i18n=\"@@Button-Language\" class=\"menu-item-text\">Language</span><span class=\"menu-item-text\"> ({{componentsService.CURRENT_LANGUAGE_NAME}})</span>\n        </button>              \n       \n        <button aria-label=\"profile\" mat-menu-item routerLink=\"/management/profile\" *ngIf=\"(!componentsService.IS_MASTER_USER && !componentsService.IS_MASTER_ADMIN)\" [disabled]=\"!componentsService.ENABLE_MYPROFILE\">\n          <mat-icon svgIcon=\"mobicloud_myprofile\"  [ngClass]=\"{'menu-item-icon':componentsService.ENABLE_MYPROFILE, 'menu-item-icon-disabled':!componentsService.ENABLE_MYPROFILE}\"></mat-icon>\n          <span i18n=\"@@Button-MyProfile\" [ngClass]=\"{'menu-item-text':componentsService.ENABLE_MYPROFILE, 'menu-item-text-disabled':!componentsService.ENABLE_MYPROFILE}\">My profile</span>\n        </button>\n        \n        <button aria-label=\"signout\" mat-menu-item (click)=\"signout()\">\n          <mat-icon svgIcon=\"mobicloud_logout\" class=\"menu-item-icon\"></mat-icon>\n          <span i18n=\"@@Button-SignOut\" class=\"menu-item-text\">Sign out</span>\n        </button>\n        <button aria-label=\"default theme\" mat-menu-item (click)=\"displayVersion()\">\n          <mat-icon svgIcon=\"mobicloud_theme_default\" class=\"menu-item-icon\"></mat-icon>\n          <span class=\"menu-item-text\">{{coreService._appTitle ?? coreService._appName}} v{{coreService._appVersion}}</span>\n        </button>\n      </mat-menu>\n\n      <mat-menu #languages>\n        <button aria-label=\"supported languages\" mat-menu-item *ngFor=\"let language of componentsService.SUPPORTED_LANGUAGES\" [disabled]=\"componentsService.CURRENT_LOCALE_ID == language.LocaleId\" (click)=\"componentsService.CHANGE_LANGUAGE(language.LocaleId)\">\n          <div class=\"flex_div\">\n            <img alt=\"\"alt=\"\" class=\"language-icon\" src=\"./assets/languages/language_{{language.FlagCode | lowercase}}.png\">\n            <span class=\"language-text\" class=\"menu-item-text\">{{language.LanguageName}}</span>\n          </div>\n        </button>\n      </mat-menu>    \n      \n      </mat-toolbar-row>\n    </mat-toolbar>\n\n    <ng-container *ngIf=\"!showMainHeader && showMainSidebar\">\n      <button aria-label=\"toggle\" type=\"button\" aria-label=\"Toggle sidenav\" mat-icon-button (click)=\"drawer.toggle()\"\n        *ngIf=\"(isHandset$ | async)\">\n        <mat-icon aria-label=\"menu icon\">menu</mat-icon>\n      </button>\n    </ng-container>\n\n    <!-- Add Content Here -->\n    <div class=\"sidenav-innercontent\">\n      <ng-content></ng-content>\n    </div>\n      \n  </mat-sidenav-content>\n</mat-sidenav-container>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'mobicloud-group-box',\n  templateUrl: './group-box.component.html',\n  styleUrls: ['./group-box.component.scss']\n})\nexport class GroupBoxComponent implements OnInit {\n\n  constructor() {\n    this.width = 400;\n    this.contentheight = 400;\n    this.title = \"General\";\n  }\n\n  _width:  any;\n  @Input('width')\n  set width(w: any) {\n    var s: string = w.toString();\n    if(!s.endsWith('%')){\n      var n = Number(s.replace('px',''));\n      if(n >  (window.screen.width - 47)){\n        n=window.screen.width-47;\n      }\n      this._width = n + \"px\";\n      // console.log(\"width:\", this._width);\n    }\n    else{\n      this._width = w; \n    }\n  }  \n  // set width(w: any) {\n  //   const s: string = w.toString();\n  //   if(!s.endsWith('px') && !s.endsWith('%')){\n  //     this._width = s + \"px\";\n  //   }\n  //   else{\n  //     this._width = w;\n  //   }\n    \n  // }\n  get width(): any {\n    return this._width;\n  }\n  \n  _contentheight:  any;\n  @Input('contentheight')\n  set contentheight(w: any) {\n    const s: string = w.toString();\n    if(!s.endsWith('px') && !s.endsWith('%')){\n      this._contentheight = s + \"px\";\n    }\n    else{\n      this._contentheight = w;\n    }\n    \n  }\n  get contentheight(): any {\n    return this._contentheight;\n  }\n  \n  @Input() noBackgroundHeader = false;\n\n  @Input() title:  string;\n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string = \"Loading ...\";\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorCaption:  string = \"Error\";\n  @Input() errorText:  string|undefined= \"\";\n  @Input() enableRetryOnError = true;\n\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Output() Edit_Click = new EventEmitter();\n  @Output() Save_Click = new EventEmitter();\n  @Output() CancelEdit_Click = new EventEmitter();\n  @Output() Retry_Click = new EventEmitter();\n\n  ngOnInit(): void {\n    // this.width = 400;\n  }\n\n  onEditClick(){\n    this.Edit_Click.emit();\n  }\n\n  onSaveClick(){\n    this.Save_Click.emit();\n  }\n\n  onCancelEditClick(){\n    this.CancelEdit_Click.emit();\n  }\n  \n  onRetryClick(){\n    this.Retry_Click.emit();\n  }   \n}\n","\n<mat-card class=\"groupbox-card flex flex-col\" appMaterialElevation defaultElevation=\"1\" [ngStyle]=\"{width: _width,'min-height': _contentheight}\">\n  <mat-card-header class=\"groupbox-card-header justify-start\" [class.groupbox-card-header-nobg]=\"noBackgroundHeader\">\n    <mat-card-title class=\"groupbox-card-title\">{{title}}</mat-card-title>\n    <div class=\"groupbox-toolbar-divider\"></div>\n    <button mat-raised-button appMaterialElevation matTooltip=\"Edit\" i18n-matTooltip=\"@@Action-Edit\" aria-label=\"Edit\" i18n-aria-label=\"@@Action-Edit\" class=\"groupbox-toolbar-button\" *ngIf=\"editAllowed && !inEditMode && !hasErrors\" (click)=\"onEditClick()\" [disabled]=\"isLoadingData\">\n      <svg-icon name=\"mobicloud_edit\" svgClass=\"groupbox-toolbar-button-icon\"></svg-icon>\n    </button>\n    <button mat-raised-button appMaterialElevation matTooltip=\"Save changes\" i18n-matTooltip=\"@@Action-SaveChanges\" aria-label=\"Save changes\" i18n-aria-label=\"@@Action-SaveChanges\" class=\"groupbox-toolbar-button\" *ngIf=\"editAllowed && inEditMode && !hasErrors\" (click)=\"onSaveClick()\" [disabled]=\"isLoadingData\">\n      <svg-icon name=\"mobicloud_check_mark\" svgClass=\"groupbox-toolbar-button-icon\"></svg-icon>\n    </button>\n    <button mat-raised-button appMaterialElevation matTooltip=\"Cancel edit\" i18n-matTooltip=\"@@Action-CancelEdit\" aria-label=\"Cancel edit\" i18n-aria-label=\"@@Action-CancelEdit\" class=\"groupbox-toolbar-button\" *ngIf=\"editAllowed && inEditMode && !hasErrors\" (click)=\"onCancelEditClick()\" [disabled]=\"isLoadingData\">\n      <svg-icon name=\"mobicloud_close\" svgClass=\"groupbox-toolbar-button-icon\"></svg-icon>\n    </button>               \n  </mat-card-header>\n  <mat-card-content class=\"groupbox-card-content\"  [ngStyle]=\"{'min-height': _contentheight}\">\n    <div class=\"loading-wrapper\">\n      <div class=\"loading-overlay\" *ngIf=\"isLoadingData || hasErrors\" [class.loading-overlay-error]=\"!isLoadingData && hasErrors\">\n        <div class=\"loading-spinner-wrapper\">\n          <mat-spinner diameter=\"50\" *ngIf=\"isLoadingData\"></mat-spinner>\n        </div>\n        <div class=\"loading-spinner-text\" *ngIf=\"isLoadingData\">{{loadingText}}</div>\n        <div class=\"error-info\">\n          <div class=\"error-caption\" *ngIf=\"hasErrors && !isLoadingData && errorCaption!=''\">\n            {{errorCaption}}\n          </div>                    \n          <div class=\"error-text\" *ngIf=\"hasErrors && !isLoadingData && errorText!=''\">\n            {{errorText}}\n          </div>\n          <button class=\"error-retry-button\" mat-button color=\"primary\" (click)=\"onRetryClick()\" *ngIf=\"!isLoadingData && enableRetryOnError\" i18n=\"@@Button-Retry\">retry</button>\n        </div>          \n      </div>      \n      <div class=\"loaded-content\" [class.blurred]=\"isLoadingData || hasErrors\">\n        <ng-content></ng-content>\n      </div>\n    </div>\n  </mat-card-content>\n</mat-card>","import { Component, OnInit, Input } from '@angular/core';\nimport { Injectable, Optional } from '@angular/core';\n\nimport { ISubscriptionBox,IRoutelinkInfo } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-subscription-box',\n  templateUrl: './subscription-box.component.html',\n  styleUrls: ['./subscription-box.component.scss'],\n})\nexport class SubscriptionBoxComponent implements OnInit {\n\n  @Input() subscription:  ISubscriptionBox|undefined;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onClickRouteLink(link: any){\n    // console.log(\"routelink:\",link);\n    if(link?.externalLink){\n      window.open(link.externalLink, \"_blank\");\n    }\n  }\n\n}\n\n\n","<mat-card class=\"app-card\" appMaterialElevation defaultElevation=\"1\">\n    <div class=\"app-card-img-container justify-center\">\n      <!-- <mat-icon svgIcon=\"{{subscription.svgName}}\" inline=\"true\"></mat-icon> -->\n      <svg-icon name=\"{{subscription?.svgName}}\" svgClass=\"app-card-img-icon\"></svg-icon>\n      <div></div>\n    </div>\n    <mat-card-header class=\"app-card-header justify-center\">\n      <mat-card-title class=\"app-card-title justify-center\">{{subscription?.caption}}</mat-card-title>\n      <mat-card-subtitle *ngIf=\"subscription && subscription.highlightText\" class=\"app-card-highlightText justify-center\">{{subscription?.highlightText}}</mat-card-subtitle>\n    </mat-card-header>\n    <mat-card-content class=\"app-card-content\" *ngIf=\"subscription && subscription.keyBullets\">\n      <mat-list-item>\n        <mat-list-item>\n          <div class=\"app-card-listitem flex flex-row\" *ngFor=\"let keyBullet of subscription.keyBullets\">\n            <!-- <mat-icon svgIcon=\"mobicloud_check_rounded\" mat-list-icon class=\"app-card-listitem-icon\"></mat-icon> -->\n            <svg-icon name=\"mobicloud_check_rounded\" svgClass=\"app-card-listitem-icon\"></svg-icon>\n            <div mat-line class=\"app-card-listitem-text\">{{keyBullet}}</div>\n          </div>\n        </mat-list-item>\n      </mat-list-item>\n    </mat-card-content>\n    <ng-container *ngFor=\"let link of subscription?.links; index as i\">\n        <mat-card-actions class=\"app-card-actions justify-center items-end\" *ngIf=\"i%2 == 0\">\n          <div class=\"col\" class=\"app-card-action-btn-container\">\n            <button mat-raised-button *ngIf=\"subscription\" [color]=\"subscription.color ? subscription.color : 'primary'\" class=\"app-card-action-btn\" [routerLink]=\"subscription?.links[i]?.routelink\" (click)=\"onClickRouteLink(subscription?.links[i]);\">{{subscription.links[i]?.caption}}</button>\n          </div>\n          <div class=\"col\" class=\"app-card-action-btn-container\" *ngIf=\"subscription && subscription.links && ((i+1) < subscription.links.length)\">\n            <button mat-raised-button *ngIf=\"subscription\" [color]=\"subscription.color ? subscription.color : 'primary'\" class=\"app-card-action-btn\" [routerLink]=\"subscription?.links[i+1]?.routelink\" (click)=\"onClickRouteLink(subscription?.links[i+1]);\">{{subscription.links[i+1]?.caption}}</button>\n          </div>      \n        </mat-card-actions>\n  </ng-container>\n  </mat-card>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n  selector: 'mobicloud-loading-container',\n  templateUrl: './loading-container.component.html',\n  styleUrls: ['./loading-container.component.scss']\n})\nexport class LoadingContainerComponent implements OnInit {\n  @Input() loadingHeightPxSubstract = 38;\n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string = `Loading ...`;;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorCaption:  string = \"Error\";\n  @Input() errorText:  string|undefined= \"\";\n  @Input() enableRetryOnError = false;\n  @Input() retryButtonText:  string = \"Retry\";\n\n  @Output() Retry_Click = new EventEmitter();\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onRetryClick(){\n    this.Retry_Click.emit();\n  } \n}\n","<div class=\"mobi-loader\">\n  <div class=\"mobi-loader-overlay\" *ngIf=\"isLoadingData || hasErrors\" [class.loading-page-overlay-error]=\"!isLoadingData && hasErrors\">\n    <div class=\"spinner\" *ngIf=\"isLoadingData\">\n      <svg class=\"spinner_svg\" viewBox=\"25 25 50 50\">\n        <circle class=\"spinner_circle\" cx=\"50\" cy=\"50\" r=\"20\" fill=\"none\" stroke-width=\"2.8\" stroke-miterlimit=\"10\"/>\n      </svg> \n      <svg class=\"logo_svg\">\n        <path fill-rule=\"nonzero\" d=\"M22.5376485,22.9944117 L12.077758,22.9944117 C8.85296405,22.9944117 7.69574135,21.0975616 7.69574135,19.3189149 C7.69574135,17.7759756 8.77651721,16.480634 10.2823094,16.1211278 C10.1294157,15.6322272 10.0641905,15.1195461 10.093647,14.6012696 C10.229007,12.3987692 12.2018964,10.5956425 14.4756637,10.5781568 L14.5114324,10.5781568 C16.3594819,10.5781568 17.9957247,11.6979419 18.6451721,13.3234137 C19.3184653,12.7925475 20.1930451,12.5337589 21.0851586,12.6162915 C22.3482847,12.7337955 23.4536078,13.570312 23.8961578,14.7607393 C24.0911323,15.2846113 24.1437333,15.8203735 24.0490514,16.3624306 C25.2076768,16.9100831 25.9693398,18.0585447 25.9693398,19.3252098 C25.9693398,21.0975616 24.5869847,22.9944117 22.5376485,22.9944117 M16.8321899,0 C7.53583421,0 -0.000140269418,7.51535935 -0.000140269418,16.7862843 C-0.000140269418,26.0572092 7.53583421,33.5725685 16.8321899,33.5725685 C26.1285456,33.5725685 33.66452,26.0572092 33.66452,16.7862843 C33.66452,7.51535935 26.1285456,0 16.8321899,0\"/>\n      </svg>   \n    </div> \n    <div class=\"spinner-text\" *ngIf=\"isLoadingData\">{{loadingText}}</div>\n    <div class=\"mobi-loader-error-info\" *ngIf=\"hasErrors\">\n      <div class=\"error-caption\" *ngIf=\"hasErrors && !isLoadingData && errorCaption!=''\">\n        {{errorCaption}}\n      </div>                    \n      <div class=\"error-text\" *ngIf=\"hasErrors && !isLoadingData && errorText!=''\">\n        {{errorText}}\n      </div>\n      <button class=\"error-retry-button\" mat-raised-button color=\"warn\" (click)=\"onRetryClick()\" *ngIf=\"!isLoadingData && enableRetryOnError\">{{retryButtonText}}</button>\n    </div>       \n  </div>\n  <ng-content></ng-content>\n</div>","import { Component, ViewEncapsulation, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\n@Component({\n  selector: 'mobicloud-message-box-dialog',\n  templateUrl: './message-box-dialog.component.html',\n  styleUrls: ['./message-box-dialog.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class MessageBoxDialogComponent implements OnInit {\n  style: number;\n  caption: string;\n  message: string;\n  title: string;\n  isError: boolean;\n  isWarning: boolean;\n  button: number;\n  // allow_outside_click: boolean;\n  // caption_cssClass = \"caption\";\n\n\n\n  ngOnInit(): void {\n  }\n  // constructor() { }\n  constructor(public dialogRef: MatDialogRef<MessageBoxDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any) { \n    // console.log(data);\n    this.style = data.style || 0;\n    this.caption = data.caption;\n    this.message = data.message;\n    this.title = data.title;\n    this.isError = data.isError;\n    this.isWarning = data.isWarning;\n    this.button = data.button;\n    this.dialogRef.disableClose = !data.allow_outside_click || false;\n  }\n  \n  onOk() {\n    // this.dialogRef.close({result: \"ok\"});\n    this.dialogRef.close({result: 1});\n  }\n  onCancel() {\n    // this.dialogRef.close({result: \"cancel\"});\n    this.dialogRef.close({result: 2});\n  }\n  onYes() {\n    // this.dialogRef.close({result: \"yes\"});\n    this.dialogRef.close({result: 5});\n  }\n  onNo() {\n    // this.dialogRef.close({result: \"no\"});\n    this.dialogRef.close({result: 6});\n  }\n  onAccept() {\n    // this.dialogRef.close({result: \"accept\"});\n    this.dialogRef.close({result: 3});\n  }\n  onReject() {\n    // this.dialogRef.close({result: \"reject\"});\n    this.dialogRef.close({result: 4});\n  }  \n\n\n  get ToolbarClass(){\n    var classList='';\n    if(this.isError){\n       classList = 'mat-elevation-z2 caption_error'; \n    }else if (this.isWarning){\n        classList = 'mat-elevation-z2 caption_warning';\n    }else{\n        classList = 'mat-elevation-z2 caption';\n    }\n    return classList;\n  }\n\n  get ButtonClass_Primary(){\n    var classList='';\n    if(this.isError){\n       classList = 'dialog-button dialog-button-accent'; \n    }else if (this.isWarning){\n        classList = 'dialog-button dialog-button-accent';\n    }else{\n        classList = 'dialog-button dialog-button-primary';\n    }\n    return classList;\n  }\n\n}\n\n","<div mat-dialog-container class=\"simple-dialog-container\">\n    <mat-toolbar *ngIf=\"style==1\" [ngClass]=\"ToolbarClass\">\n      {{caption}}\n    </mat-toolbar>\n    <div class=\"title\" *ngIf=\"title!==''\">\n      <p>\n        {{title}}\n      </p>\n    </div>\n    <div class=\"message\" *ngIf=\"message!==''\">\n      <p>{{message}}</p>\n    </div>\n    <div class=\"dialog-button-container\">\n      <div *ngIf=\"button==0\">\n        <button mat-flat-button (click)=\"onOk()\" tabindex=\"-1\" [ngClass]=\"ButtonClass_Primary\" i18n=\"@@Button-Ok\">Ok</button>\n      </div>\n      <div *ngIf=\"button==1\">\n        <button mat-flat-button (click)=\"onOk()\" tabindex=\"-1\" [ngClass]=\"ButtonClass_Primary\" i18n=\"@@Button-Ok\">Ok</button>\n        <button mat-flat-button (click)=\"onCancel()\" tabindex=\"-1\" class=\"dialog-button dialog-button-accent\" i18n=\"@@Button-Cancel\">Cancel</button>\n      </div>\n      <div *ngIf=\"button==2\">\n        <button mat-flat-button (click)=\"onYes()\" tabindex=\"-1\" [ngClass]=\"ButtonClass_Primary\" i18n=\"@@Button-Yes\">Yes</button>\n        <button mat-flat-button (click)=\"onNo()\" tabindex=\"-1\" class=\"dialog-button dialog-button-accent\" i18n=\"@@Button-No\">No</button>\n      </div>\n      <div *ngIf=\"button==3\">\n        <button mat-flat-button (click)=\"onAccept()\" tabindex=\"-1\" [ngClass]=\"ButtonClass_Primary\" i18n=\"@@Button-Accept\">Accept</button>\n        <button mat-flat-button (click)=\"onReject()\" tabindex=\"-1\" class=\"dialog-button dialog-button-accent\" i18n=\"@@Button-Reject\">Reject</button>\n      </div>\n      <div *ngIf=\"button==4\">\n        <button mat-flat-button (click)=\"onYes()\" tabindex=\"-1\" [ngClass]=\"ButtonClass_Primary\" i18n=\"@@Button-Yes\">Yes</button>\n        <button mat-flat-button (click)=\"onNo()\" tabindex=\"-1\" class=\"dialog-button dialog-button-accent\" i18n=\"@@Button-No\">No</button>\n        <button mat-flat-button (click)=\"onCancel()\" tabindex=\"-1\" class=\"dialog-button dialog-button-accent\" i18n=\"@@Button-Cancel\">Cancel</button>\n      </div>      \n    </div>\n  </div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { IToolbarItem } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-content-toolbar',\n  templateUrl: './content-toolbar.component.html',\n  styleUrls: ['./content-toolbar.component.scss']\n})\nexport class ContentToolbarComponent implements OnInit {\n  @Input() toobarEnabled: boolean|undefined = true;\n  @Input() preToolbarItems: IToolbarItem[]|undefined;\n  @Input() toobarTitleIcon: string|undefined = \"\";\n  @Input() toobarTitle: string|undefined = \"\";\n  @Input() toolbarItems: IToolbarItem[]|undefined;\n\n  @Output() ToolbarItemClick: EventEmitter<{name: string, parameters: any[]}> = new EventEmitter<{name: string, parameters: any[]}>();\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  onToolbarItemClick(name: string, parameters: any[]){\n    this.ToolbarItemClick.emit({name: name, parameters: parameters});\n  }\n\n}\n","<mat-toolbar class=\"content-toolbar\" *ngIf=\"toobarEnabled\">\n  <mat-toolbar-row class=\"content-toolbar-row\">\n    <ng-container *ngIf=\"preToolbarItems\">            \n      <ng-container *ngFor=\"let toolbarItem of preToolbarItems\">\n          <button aria-label=\"button\" mat-raised-button appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" class=\"content-pre-toolbar-button\" matTooltip=\"{{toolbarItem.caption}}\">\n              <mat-icon svgIcon=\"{{toolbarItem.svg}}\" class=\"content-pre-toolbar-button-icon\"></mat-icon>\n          </button>\n      </ng-container>\n      <!-- <mat-divider vertical style=\"height:100%\"></mat-divider> -->\n    </ng-container>              \n      <div class=\"content-toolbar-title\">\n        <!-- <mat-icon svgIcon=\"{{toobarTitleIcon}}\" class=\"content-toolbar-title-icon\" *ngIf=\"toobarTitleIcon\"></mat-icon> -->\n        <svg-icon [name]=\"toobarTitleIcon\" svgClass=\"content-toolbar-title-icon\" *ngIf=\"toobarTitleIcon\"></svg-icon>\n        {{toobarTitle}}\n      </div>\n      \n      <ng-content></ng-content>\n    <span class=\"content-toolbar-divider\"></span>\n    \n    <ng-container *ngIf=\"toolbarItems\">            \n      <ng-container *ngFor=\"let toolbarItem of toolbarItems\">\n        \n        <ng-container *ngIf=\"toolbarItem.children\">\n          <button aria-label=\"Button\" [matMenuTriggerFor]=\"toolbarChildMenu\" mat-raised-button appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" class=\"content-toolbar-button\"  matTooltip=\"{{toolbarItem.caption}}\">\n            <svg-icon name=\"{{toolbarItem.svg}}\" svgClass=\"content-toolbar-button-icon\" viewBox=\"0 0 48 48\"></svg-icon>\n          </button>\n          <mat-menu #toolbarChildMenu>\n            <ng-container *ngFor=\"let childToolbarItem of toolbarItem.children\">\n              <button aria-label=\"button\" mat-menu-item [routerLink]=\"childToolbarItem.link ? childToolbarItem.link : null\" (click)=\"[childToolbarItem.click ? onToolbarItemClick(childToolbarItem.click, childToolbarItem.click_paramters) : null]\">\n                <mat-icon [svgIcon]=\"childToolbarItem.svg\" class=\"content-toolbar-menu-item-icon\"></mat-icon>\n                <span>{{childToolbarItem.caption}}</span>\n              </button>\n            </ng-container>\n          </mat-menu>\n        </ng-container>\n\n        <ng-container *ngIf=\"!toolbarItem.children\">\n          <button aria-label=\"button\" mat-raised-button appMaterialElevation [routerLink]=\"toolbarItem.link ? toolbarItem.link : null\" (click)=\"[toolbarItem.click ? onToolbarItemClick(toolbarItem.click, toolbarItem.click_paramters) : null]\" class=\"content-toolbar-button\" matTooltip=\"{{toolbarItem.caption}}\">\n            <svg-icon name=\"{{toolbarItem.svg}}\" svgClass=\"content-toolbar-button-icon\" viewBox=\"0 0 48 48\"></svg-icon>\n          </button>\n        </ng-container>\n\n      </ng-container>\n      <!-- <mat-divider vertical style=\"height:100%\"></mat-divider> -->\n    </ng-container>\n  </mat-toolbar-row>\n</mat-toolbar> ","import { MatDialog } from \"@angular/material/dialog\";\nimport { Observable } from \"rxjs\";\nimport { map } from 'rxjs/operators';\nimport { MessageBoxDialogComponent } from \"./message-box-dialog.component\";\n\nexport class MessageBox {\n    static showMessageBox({ matDialog, title, caption = \"Info\", message = \"\", button = 0, allow_outside_click = false, style = 0, width = \"200px\", isError=false, isWarning=false }: { matDialog: MatDialog; title: string; caption?: string; message?: string; button?: number; allow_outside_click?: boolean; style?: number; width?: string; isError?: boolean; isWarning?: boolean; }) : Observable<MessageResult>{\n        const dialogRef = matDialog.open( MessageBoxDialogComponent, {\n            data: {\n                caption: caption || \"Alert\",\n                title: title,\n                message: message,\n                button: button || 0,\n                style: style || 0,\n                isError: isError,\n                isWarning: isWarning,\n                allow_outside_click: allow_outside_click || false\n            },\n            width: width\n            });    \n        return dialogRef.afterClosed()\n        .pipe(map(result => ((result === undefined) ? 0 : result.result)))\n        // .pipe(result => {return result.result;});     \n    }\n    static show({caption=\"\", message=\"\", buttons= MessageBoxButton.Ok, title=\"\",width = \"300px\", dialog=true}, matDialog: MatDialog) : Observable<MessageResult>{\n        return MessageBox.showMessageBox({ matDialog: matDialog, caption: caption, title: title, message: message, button: buttons, allow_outside_click: !dialog, style: MessageBoxStyle.Full, width: width, isError: false, isWarning: false });\n    }\n\n    static showError({caption=\"Error\", message=\"\", buttons= MessageBoxButton.Ok, title=\"\",width = \"300px\", dialog=false}, matDialog: MatDialog) : Observable<MessageResult>{\n        return MessageBox.showMessageBox({ matDialog: matDialog, caption: caption, title: title, message: message, button: buttons, allow_outside_click: !dialog, style: MessageBoxStyle.Full, width: width, isError: true, isWarning: false });\n    }\n    \n    static showWarning({caption=\"Warning\", message=\"\", buttons= MessageBoxButton.Ok, title=\"\",width = \"300px\", dialog=false}, matDialog: MatDialog) : Observable<MessageResult>{\n        return MessageBox.showMessageBox({ matDialog: matDialog, caption: caption, title: title, message: message, button: buttons, allow_outside_click: !dialog, style: MessageBoxStyle.Full, width: width, isError: false, isWarning: true });\n    }    \n}\n\nexport  enum MessageBoxButton {\n    Ok = 0,\n    OkCancel = 1,\n    YesNo = 2,\n    AcceptReject = 3,\n    YesNoCancel = 4,\n}\n\nexport  enum MessageBoxStyle {\n    Simple = 0,\n    Full = 1\n};\n\nexport  enum MessageResult {\n    None = 0,\n    Ok = 1,\n    Cancel = 2,\n    Accept = 3,\n    Reject = 4,\n    Yes = 5,\n    No = 6\n}","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { SystemUser } from \"mobicloud-core/api\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { UsernameValidator, EmployeeSecurityRoleType } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-system-user-profile',\n  templateUrl: './system-user-profile.component.html',\n  styleUrls: ['./system-user-profile.component.scss']\n})\nexport class SystemUserProfileComponent implements OnInit, OnChanges {\n  @Input() systemUser: SystemUser|undefined;\n  formSystemUser: SystemUser|undefined;\n  @Input() systemUser_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() systemUserChanged = new EventEmitter<SystemUser>();  \n\n  systemUser_store: ODataStore|undefined;\n  passwordButtonOptions: any;\n  passwordToggleMode: string;\n  passwordToogleIcon: string;\n\n  // hashedPasswords: boolean|undefined = true;\n  certificateLogin: boolean | undefined = false;\n\n  @ViewChild('form') form! :  DxFormComponent;\n\n\n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog, public usernameValidator: UsernameValidator) {  \n    this.usernameValidation = this.usernameValidation.bind(this);\n    \n    this.passwordToogleIcon = \"mobicloud_password_visibility_off\";\n    this.passwordToggleMode = 'password';\n    \n    this.passwordButtonOptions = {\n      template: 'pwd_buttonTemplate',\n      type: \"back\",\n      onClick: () => {\n          this.passwordToggleMode = this.passwordToggleMode === \"text\" ? \"password\" : \"text\";\n          this.passwordToogleIcon = this.passwordToggleMode === \"password\" ? \"mobicloud_password_visibility_off\" : \"mobicloud_password_visibility\";\n      }\n    };   \n\n    effect(() => {\n      const app = this.coreService.applicationDetails();\n      this.certificateLogin = app?.CertificateLogin;\n    });\n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){\n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid || userProfile?.user_id == this.systemUser?.Id;   \n          this.fullEditAllowed = valid;       \n        }, EmployeeSecurityRoleType.Admin);\n      }      \n    });\n  }\n\n  ngOnInit(): void { \n    this.systemUser_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"SystemUser\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['systemUser']?.currentValue && changes['systemUser'].currentValue != this.formSystemUser) {\n      this.formSystemUser = this.systemUser;      \n      this.onSystemUserChanged(this.formSystemUser); \n    }    \n  }\n\n  onSystemUserChanged(cust: SystemUser|undefined){    \n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }\n  }\n\n  getSystemUser() {\n    if(this.systemUser?.Id && this.systemUser_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-SystemUser:Loading system user...`;\n      this.systemUser_store.byKey(this.systemUser.Id, { expand: this.systemUser_expands }).then(\n        (dataItem) => { \n          this.formSystemUser = Object.assign(new SystemUser(), dataItem[0]);          \n          if(this.formSystemUser && !this.formSystemUser.Active){\n            this.formSystemUser.Active = false;\n          }\n          if(this.formSystemUser && !this.formSystemUser.Admin){\n            this.formSystemUser.Admin = false;\n          }          \n          this.systemUser = this.formSystemUser;\n          this.onSystemUserChanged(this.systemUser);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.systemUserChanged.emit(this.systemUser);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getSystemUser();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Active\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveSystemUser();\n    }\n  }\n\n  saveSystemUser(){\n    if(this.systemUser?.Id && this.systemUser_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-SystemUser:Updating system user...`;\n      let update_values: any = {  \n        Name: this.formSystemUser?.Name,\n        Email: this.formSystemUser?.Email\n      };\n\n      if(this.fullEditAllowed){\n        update_values.Admin = this.formSystemUser?.Admin;\n        update_values.Active = this.formSystemUser?.Active;\n      }\n\n      if(!(this.coreService.applicationDetails()?.CertificateLogin === true)){\n        update_values.Username = this.formSystemUser?.Username;\n      }\n\n      // console.log(update_values);\n      this.systemUser_store.update(this.systemUser.Id, update_values)\n        .then(\n            (dataObj) => \n            { \n              this.getSystemUser();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-SystemUser:System user update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getSystemUser();    \n    this.inEditMode = false;\n  }\n  \n\n  usernameValidation(params:any) : Promise<void>{\n    return this.usernameValidator.usernameValidation_devextreme(params.value ?? '', this.systemUser?.Id ?? '')\n  }  \n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>; \n    status_ds: any[] = [  \n      { id: false, description: $localize`:@@@FieldValue-InActive:Inactive` }, \n      { id: true, description: $localize`:@@@FieldValue-Active:Active` }\n    ]\n\n    loginType_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-SystemUser-Regular:Regular` }, \n      { id: true, description: $localize`:@@FieldValue-SystemUser-Admin: Admin` }\n    ]  \n\n    boolean_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-No:No` }, \n      { id: true, description: $localize`:@@FieldValue-Yes:Yes` }\n    ]    \n}\n\n\n\n\n\n\n\n\n\n","<mobicloud-group-box title=\"Profile\" i18n-title=\"@@CaptionHeader-Profile\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"systemUserProfileForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n    <form>\n    <dx-form #form id=\"form\"\n        [formData]=\"formSystemUser\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formSystemUserData_Profile\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Active\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: status_ds, valueExpr: 'id', displayExpr: 'description', readOnly: !fullEditAllowed }\">\n                <dxo-label text=\"Status\" i18n-text=\"@@FieldCaption-Status\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"Admin\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: loginType_ds, valueExpr: 'id', displayExpr: 'description', readOnly: !fullEditAllowed }\">\n                <dxo-label text=\"Type\" i18n-text=\"@@FieldCaption-Type\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"Username\" [colSpan]=\"2\" *ngIf=\"!certificateLogin\">\n                <dxo-label text=\"Username\" i18n-text=\"@@FieldCaption-Username\"></dxo-label>\n                <dxi-validation-rule type=\"required\" message=\"Username is required\" i18n-message=\"@@ValidationText-Username-Required\" *ngIf=\"inEditMode\"></dxi-validation-rule>\n                <dxi-validation-rule *ngIf=\"inEditMode\" \n                type=\"async\" \n                [validationCallback]=\"usernameValidation\">\n                </dxi-validation-rule>                \n            </dxi-item>\n\n            <!-- <dxi-item dataField=\"Password\" *ngIf=\"!hashedPasswords\">\n                <dxo-label text=\"Password\" i18n-text=\"@@FieldCaption-Password\"></dxo-label>\n                <div *dxTemplate=\"let data of 'content'\">\n                    <dx-text-box [(value)]=\"formSystemUser.Password\" [(mode)]=\"passwordToggleMode\" placeholder=\"\">\n                        <dxi-button name=\"password_toggle\" location=\"after\" [options]=\"passwordButtonOptions\" *ngIf=\"inEditMode\"></dxi-button>\n                        <div *dxTemplate=\"let data of 'pwd_buttonTemplate'\">\n                            <svg-icon [name]=\"passwordToogleIcon\" svgClass=\"password-button-icon\"></svg-icon>\n                        </div>                     \n                    </dx-text-box>                    \n                </div>\n            </dxi-item> -->\n            <dxi-item dataField=\"Name\" [colSpan]=\"2\">\n                <dxo-label text=\"Name\" i18n-text=\"@@FieldCaption-Name\"></dxo-label>                \n            </dxi-item>                      \n\n            <dxi-item dataField=\"Email\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n                <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label>     \n                <dxi-validation-rule type=\"required\" message=\"Email is required\" i18n-message=\"@@ValidationText-Email-Required\"></dxi-validation-rule>\n                <dxi-validation-rule type=\"email\" message=\"Email is invalid\" i18n-message=\"@@ValidationText-Email-Invalid\"></dxi-validation-rule>                           \n            </dxi-item>\n\n        </dxi-item>       \n        \n    </dx-form>\n    </form>\n</mobicloud-group-box>","import { Component, OnInit, Input, Output, effect } from '@angular/core';\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport {Location} from '@angular/common'; \nimport {  map } from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\nimport notify from 'devextreme/ui/notify';\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { IToolbarItem } from \"mobicloud-core\";\n\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { SystemUser } from \"mobicloud-core/api\";\n\n\n@Component({\n  selector: 'mobicloud-profile-page-system-user',\n  templateUrl: './profile-page-system-user.component.html',\n  styleUrls: ['./profile-page-system-user.component.scss']\n})\nexport class ProfilePageSystemUserComponent implements OnInit {\n  profileCaption: string = $localize`:@@MyProfileCaption-Text:My Profile`;\n  organizationCaption: string = $localize`:@@Organization-SubCaption-Text:Organization`;\n  organizationName: string | undefined;\n  accountNumberCaption: string|undefined = $localize`:@@AccountNumber-SubCaption-Text:Account no.`;\n  accountNumber: string | undefined;\n\n  toolbarItems: IToolbarItem[]|undefined;\n\n  systemUserId: string | undefined;\n  @Output() systemUser: SystemUser | undefined;\n  selectedTabIndex: number = 0;\n\n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading ...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorCaption:  string = $localize`:@@CaptionHeader-Error:Error`;\n  @Input() errorText:  string|undefined= \"\";\n  @Input() enableRetryOnError = false;\n\n  private toolbarItemClick_Subscription: Subscription | undefined;\n\n  constructor(private route: ActivatedRoute, public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, public router : Router, private location: Location) {\n    this.isLoadingData = true;\n    this.hasErrors = false;\n    this.errorText = \"\";\n    this.loadingText = $localize`:@@LoadingProfile-Text:Loading profile ...`; \n\n    effect(() => {\n      const p = this.coreService.mobiUserProfile();\n      this.organizationName = (p?.user_partyname);\n      this.accountNumber = (p?.user_accountnumber);\n    });\n    effect(() => {\n      const user = this.coreService.user();\n      this.systemUserId = user?.profile?.sub;\n    });\n  }\n\n  ngOnInit(): void {\n\n    if(this.systemUserId){\n      this.getSystemUser(this.systemUserId);\n    }\n    else{\n      this.isLoadingData = false;\n      this.hasErrors = true;\n      this.errorText = \"Invalid profile\";\n    }\n    \n  }\n  \n  updateToolbarItems(){\n\n    this.toolbarItems = [];\n    this.toolbarItems.push({ caption: $localize`:@@Action-ResetProfile:Reset profile`, svg: \"mobicloud_delete\", click: \"SYSTEMUSER_DETAILS_RESETPROFILE\", link: \"\", click_paramters: [] });\n    this.toolbarItems.push({ caption: $localize`:@@Action-ResetPasswords:Reset password`, svg: \"mobicloud_password_reset\", click: \"SYSTEMUSER_DETAILS_RESETPASSWORD\", link: \"\", click_paramters: [] });\n    this.toolbarItems.push({ caption: $localize`:@@Action-Refresh:Refresh`, svg: \"mobicloud_refresh\", click: \"SYSTEMUSER_DETAILS_REFRESH\", link: \"\", click_paramters: [] });\n  }  \n\n  async onToolbarItemClick(e: {name: string, parameters: any[]}){\n    if(e.name ==\"SYSTEMUSER_DETAILS_REFRESH\"){\n      console.log(\"SYSTEMUSER_DETAILS_REFRESH\");\n      this.refreshSystemUser();\n    }     \n    else if(e.name ==\"SYSTEMUSER_DETAILS_RESETPASSWORD\"){\n      console.log(\"SYSTEMUSER_DETAILS_RESETPASSWORD\");\n      this.resetPassword();\n    }  \n    else if(e.name ==\"SYSTEMUSER_DETAILS_RESETPROFILE\"){\n      // console.log(\"EMPLOYEE_DETAILS_RESETPROFILE\");\n      this.resetProfile();\n    }           \n  }  \n  \n  refreshSystemUser() {\n    if(this.systemUser?.Id)\n      this.getSystemUser(this.systemUser.Id);\n  }\n  \n  resetPassword() {  \n    if(this.systemUser?.Id)\n      this.resetSystemUserPassword(this.systemUser.Id);\n  } \n\n  resetProfile() {  \n    // console.log(\"Resetting password\", this.employee);\n    if(this.systemUser?.Id)\n      this.resetSystemUserProfile(this.systemUser.Id);\n  } \n\n  getSystemUser(userId: string) {\n    this.isLoadingData = true;\n\n    // console.log(\"getting system user: \" + userId);\n    this.cloudDataService.getEntity<SystemUser>(\"systemuser\",userId)\n    .then(response =>\n    {\n      response.subscribe((result) => {\n        var systemUser = Object.assign(new SystemUser(), result);\n        // console.log(\"SystemUser loaded:\", systemUser);\n        this.onSystemUserLoaded(systemUser);        \n        this.isLoadingData = false;\n      },\n      (err: any) => \n      {        \n        console.error(err);\n        this.isLoadingData = false;\n        this.hasErrors = true;\n        this.errorText = err;\n        this.onSystemUserLoaded(undefined);  \n              \n      }\n      );         \n      \n    }); \n  }\n\n  resetSystemUserPassword(userId: string) {\n    this.isLoadingData = true;\n\n    this.cloudDataService.getEntity<SystemUser>(\"systemuser\",userId,`/ResetPassword()`)\n    .then(response =>\n    {\n      response.subscribe((result) => {\n        var sysuser = Object.assign(new SystemUser(), result);\n        this.onSystemUserLoaded(this.systemUser);\n        this.isLoadingData = false;\n        notify($localize`:@@Notify-Text-PasswordResetSuccess-SystemUser:Password reset complete. Email has been sent to user`, \"success\", 5000);\n      },\n      (err: any) => \n      {        \n        console.error(err);\n        this.isLoadingData = false;\n        this.hasErrors = true;\n        this.errorText = err;\n        this.onSystemUserLoaded(undefined);  \n        notify($localize`:@@Notify-Text-PasswordResetError-SystemUser:Password reset failed` + ': ' + err, \"error\", 5000);      \n      }\n      );         \n      \n    }); \n  }\n\n  resetSystemUserProfile(userId: string) {\n    this.isLoadingData = true;\n\n    this.cloudDataService.getEntity<SystemUser>(\"systemuser\",userId,`/ResetProfile()`)\n    .then(response =>\n    {\n      response.subscribe((result) => {\n        var sysuser = Object.assign(new SystemUser(), result);\n        this.onSystemUserLoaded(this.systemUser);\n        this.isLoadingData = false;\n        notify($localize`:@@Notify-Text-ProfileResetSuccess-SystemUser:Profile reset complete`, \"success\", 5000);\n      },\n      (err: any) => \n      {        \n        console.error(err);\n        this.isLoadingData = false;\n        this.hasErrors = true;\n        this.errorText = err;\n        this.onSystemUserLoaded(undefined);  \n        notify($localize`:@@Notify-Text-ProfileResetError-SystemUser:Profile reset failed` + ': ' + err, \"error\", 5000);      \n      }\n      );         \n      \n    }); \n  }\n\n\n  onSystemUserLoaded(user: SystemUser | undefined){\n    if(user && !user.Active){\n      user.Active = false;\n    }\n    if(user && !user.Admin){\n      user.Admin = false;\n    }\n    this.systemUser = user;\n    if(!this.systemUser){\n      this.hasErrors = true;\n      this.errorText = \"Invalid profile\";\n      this.toolbarItems = [];\n    }\n    else{\n      this.updateToolbarItems();\n    }\n  }\n\n  systemUserChanged(user: SystemUser | undefined) {  \n    this.onSystemUserLoaded(user) ;\n  } \n\n  ngOnDestroy() {\n    if (this.toolbarItemClick_Subscription) {\n      this.toolbarItemClick_Subscription.unsubscribe();\n      this.toolbarItemClick_Subscription =  undefined;\n    }    \n  }\n\n}\n","<div class=\"profile-container\">    \n    <mobicloud-content-toolbar [toobarEnabled]=\"true\" toobarTitleIcon=\"mobicloud_profile\" [toobarTitle]=\"profileCaption\" [toolbarItems]=\"toolbarItems\" (ToolbarItemClick)=\"onToolbarItemClick($event)\"></mobicloud-content-toolbar>\n    <div class=\"page-subheader\">\n        <div class=\"page-subheader-item\">\n                <span class=\"page-subheader-caption\">{{organizationCaption}}:</span>\n                <span class=\"page-subheader-text\">{{organizationName}}</span>\n        </div>                                              \n        <div class=\"page-subheader-item\">\n                <span class=\"page-subheader-caption\">{{accountNumberCaption}}:</span>\n                <span class=\"page-subheader-text\">{{accountNumber}}</span>\n        </div> \n    </div>\n    <mobicloud-loading-container [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" [hasErrors]=\"hasErrors\" [errorCaption]=\"errorCaption\" [errorText]=\"errorText\" [enableRetryOnError]=\"enableRetryOnError\" [loadingHeightPxSubstract]=\"146\">\n        <div class=\"inner-content-fullheight\">\n          <dx-tab-panel [selectedIndex]=\"selectedTabIndex\" [loop]=\"false\" [animationEnabled]=\"true\" [swipeEnabled]=\"false\" [showNavButtons]=\"true\" [focusStateEnabled]=\"false\" height=\"100%\">\n            <dxi-item title=\"Details\" i18n-title=\"@@TabHeader-Details\">\n                <div class=\"tabpanel-item\">\n    \n                    <div class=\"systemuserbox-card-container flex flex-row gap-8\">                    \n                        <div class=\"systemuserbox-card\">\n                            <div class=\"systemuserbox-card-inner\">\n                                <mobicloud-system-user-profile #systeUserProfile class=\"systemuserbox-card\" [systemUser]=\"systemUser\" [width]=\"460\" [contentheight]=\"400\" (systemUserChanged)=\"systemUserChanged($event)\" *ngIf=\"systemUser\"></mobicloud-system-user-profile>\n                            </div>\n                        </div>\n                    </div>\n    \n                </div>\n            </dxi-item>     \n          </dx-tab-panel>\n        </div>    \n    </mobicloud-loading-container>    \n\n</div>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Country, EmployeeSecurityRoleType } from \"mobicloud-core\";\nimport { Employee } from \"mobicloud-core/api\";\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-employee-address',\n  templateUrl: './employee-address.component.html',\n  styleUrls: ['./employee-address.component.scss']\n})\nexport class EmployeeAddressComponent implements OnInit, OnChanges {\n  @Input() employee: Employee | undefined;\n  formEmployee: Employee | undefined;\n  @Input() employee_expands: string[]|undefined;\n  @Input() editAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() employeeChanged = new EventEmitter<Employee>();  \n\n  employee_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {  \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){\n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = (valid || userProfile?.user_id == this.employee?.Id);\n        }, EmployeeSecurityRoleType.Admin);\n      }\n    });   \n  }\n\n  ngOnInit(): void {    \n    this.employee_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Employee\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n\n    this.createCountryDataSource();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['employee']?.currentValue && changes['employee'].currentValue != this.formEmployee) {\n      this.formEmployee = this.employee;      \n      this.onEmployeeChanged(this.formEmployee); \n    }    \n  }\n\n  onEmployeeChanged(cust: Employee | undefined){\n    this._countryId = this.formEmployee?.Country?.toString();\n  }\n\n  getEmployee() {\n    if(this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Employee:Loading employee...`;\n      this.employee_store.byKey(this.employee.Id, { expand: this.employee_expands }).then(\n        (dataItem) => { \n          this.formEmployee = Object.assign(new Employee(), dataItem[0]);\n          this.employee = this.formEmployee;\n          \n          this.onEmployeeChanged(this.employee);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.employeeChanged.emit(this.employee);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getEmployee();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Street\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveEmployee();\n    }\n  }\n\n  saveEmployee(){\n    if(this.formEmployee && this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-Employee:Updating employee...`;\n      const data:any = {\n        Street: this.formEmployee.Street,\n        ZipCode: this.formEmployee.ZipCode,\n        City: this.formEmployee.City,\n        Country: this._countryId,\n        State: this.formEmployee.State,\n        Phone: this.formEmployee.Phone\n      };\n      this.employee_store.update(this.employee.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getEmployee();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Employee:Employee update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getEmployee();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n\n  //--- CountryDataSource\n\n  country_ds: DataSource|undefined;\n  _countryId: string | undefined = undefined;\n  _selectedCountry: Country | undefined = undefined;\n  _countryOpened: boolean|undefined = false;\n\n  createCountryDataSource(){\n    this.country_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Country\"),\n        withCredentials: true, \n        key: \"Code2\",\n        keyType: \"String\",\n        // key: \"Id\",\n        // keyType: \"Int32\",\n        version: 4,        \n      }),\n      sort: [\n          { selector: \"Name\", desc: false }\n      ],\n      filter: [ \"Enabled\", \"=\", true ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Country(), dataItem);\n      }            \n    });  \n  }\n\n  countryChanged(args:any) {\n    this._selectedCountry= args.selectedRowsData?.length > 0 ? args.selectedRowsData[0] : null;\n    this._countryId = this._selectedCountry?.Code2;\n    if(this.formEmployee)\n      this.formEmployee.Country = this._countryId;\n    \n  }\n  \n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"Address\" i18n-title=\"@@CaptionHeader-Address\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeAddressForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formEmployee\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formEmployeeData_Address\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Street\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n                <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"ZipCode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n                <dxo-label text=\"Zip code\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n                <dxo-label text=\"City\"  i18n-text=\"@@FieldCaption-City\"></dxo-label>\n            </dxi-item>\n            \n            <dxi-item dataField=\"Country\">\n                <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label>  \n                <div *dxTemplate=\"let data of 'content'\">\n                    <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"!inEditMode\" fieldTemplate=\"fieldTemplate\"\n                        [dataSource]=\"country_ds\"                   \n                        [(value)]=\"_countryId\"\n                        valueExpr=\"Code2\"                \n                        displayExpr=\"LocalName\"                                    \n                        [(opened)]=\"_countryOpened\"> \n                        <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n                    </dxo-drop-down-options>                                       \n                        <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n                            [dataSource]=\"country_ds\"\n                            [(selectedRowKeys)]=\"_countryId\"\n                            (onSelectionChanged)=\"countryChanged($event)\"\n                            (onRowClick)=\"_countryOpened = false\">\n                            <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n                            <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n                            <dxo-paging [enabled]=\"false\"></dxo-paging>\n                            <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n                                <img alt=\"\"alt=\"\" src=\"{{cloudDataService.FlagUrl}}/{{data.value}}-32.png\"/>\n                            </div>\n                        </dx-data-grid>\n                        <div *dxTemplate=\"let data of 'fieldTemplate'\">\n                            <div class=\"country-edit-item\">\n                                <div class=\"country-edit-image\"><img alt=\"\"alt=\"\" src=\"{{cloudDataService.FlagUrl}}/{{_selectedCountry?.Code2}}-32.png\" *ngIf=\"_selectedCountry?.Code2\"></div>\n                                <div class=\"country-edit-text\">\n                                    <dx-text-box stylingMode=\"filled\" [value]=\"_selectedCountry?.LocalName\" [readOnly]=\"true\"></dx-text-box>\n                                </div>\n                            </div>\n                        </div>\n                    </dx-drop-down-box>\n                </div>   \n                <!-- <dxi-validation-rule type=\"required\" message=\"Country is required\"></dxi-validation-rule>    -->\n            </dxi-item> \n                        \n            <dxi-item dataField=\"State\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level1'} }\">\n                <dxo-label text=\"State\" i18n-text=\"@@FieldCaption-State\"></dxo-label>                \n            </dxi-item>\n            <dxi-item dataField=\"Phone\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n                <dxo-label text=\"Phone\" i18n-text=\"@@FieldCaption-Phone\"></dxo-label>                \n            </dxi-item>\n        </dxi-item>       \n        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect, untracked } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { catchError, map, timeout } from 'rxjs/operators';\nimport { firstValueFrom } from 'rxjs';\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { EmployeeSecurityRoleType, fullNameFilterExpression_Employee } from \"mobicloud-core\";\n\nimport { Employee,GenderType,Department, Location, InventLocation, PayrollInterval, EmployeeGroup, Beacon, Project, PayrollCategory } from \"mobicloud-core/api\";\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-employee-profile',\n  templateUrl: './employee-profile.component.html',\n  styleUrls: ['./employee-profile.component.scss']\n})\nexport class EmployeeProfileComponent implements OnInit, OnChanges {\n  @Input() employee: Employee|undefined;\n  formEmployee: Employee|undefined;\n  @Input() employee_expands: string[]|undefined;\n  @Input() editAllowed:boolean | undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n  fullEditAllowed:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n  @Output() employeeChanged = new EventEmitter<Employee>();  \n\n  employee_store: ODataStore|undefined;\n\n  @ViewChild('form') form! :  DxFormComponent;\n  constructor(protected httpClient: HttpClient, public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {      \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){\n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = (valid || userProfile?.user_id == this.employee?.Id);\n        });\n        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = valid;          \n        }, EmployeeSecurityRoleType.Admin);\n      }\n\n      untracked(() => {\n        this.initializeDataSources();\n        this.form.instance?.getEditor('SupervisorId')?.option('dataSource', this.supervisor_ds);          \n        this.form.instance?.getEditor('PayrollIntervalId')?.option('dataSource', this.payrollInterval_ds);\n        this.form.instance?.getEditor('EmployeeGroupId')?.option('dataSource', this.employeegroup_ds);\n        this.form.instance?.getEditor('BeaconId')?.option('dataSource', this.beacon_ds);     \n        this.form.instance?.getEditor('DefaultProjectId')?.option('dataSource', this.project_ds);  \n        this.form.instance?.getEditor('DefaultOvertimeCategoryId')?.option('dataSource', this.payrollCategory_ds);\n      });\n\n      if(this.fullEditAllowed){\n        untracked(() => {         \n          this.form.instance?.getEditor('PayrollNumber')?.option('dataSource', this.payrollEmployeeNumbers);\n        });           \n      } \n    });\n  }\n\n  setEditorsEnabled(enabled:boolean){\n    this.form.instance?.getEditor('SupervisorId')?.option('readOnly', !enabled);\n    this.form.instance?.getEditor('PayrollIntervalId')?.option('readOnly', !enabled);\n    this.form.instance?.getEditor('PayrollNumber')?.option('readOnly', !enabled);\n    this.form.instance?.getEditor('EmployeeGroupId')?.option('readOnly', !enabled);\n    this.form.instance?.getEditor('BeaconId')?.option('readOnly', !enabled);  \n    this.form.instance?.getEditor('DefaultProjectId')?.option('readOnly', !enabled);\n    this.form.instance?.getEditor('DefaultOvertimeCategoryId')?.option('readOnly', !enabled);\n  }\n\n  payrollEmployeeNumbers: any[] = [];\n\n  async loadPayrollEmployees() {\n    const url = `${this.cloudDataService.getMobiManagementApiUrl('PayrollApi/PayrollEmployees')}`;\n    \n    try {\n      const payroll_employees = await this.httpGet<any>(url);\n      this.payrollEmployeeNumbers = payroll_employees || [];\n    } catch (error) {\n      console.log(error);\n      this.payrollEmployeeNumbers = [];\n    }\n  }\n\n  async httpGet<T>(url: string, requestTimeout: number = 30000): Promise<T[]> {\n    const httpHeaderValues = await this.cloudDataService.httpHeaderValues_Json();\n    const httpHeaders = new HttpHeaders(httpHeaderValues);\n    \n    return firstValueFrom(\n      this.httpClient.get<T[]>(url, { headers: httpHeaders }).pipe(\n        timeout(requestTimeout),\n        catchError(this.cloudDataService.handleError)\n      )\n    );\n  }\n\n\n  ngOnInit(): void {\n  }\n\n\n  initializeDataSources(){\n    this.employee_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Employee\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n\n    this.createDepartmentDataSource();\n    this.createInventLocationDataSource();\n    this.createLocationDataSource();\n    this.createSupervisorDataSource();\n    this.createPayrollIntervalDataSource();\n    this.createEmployeeGroupDataSource();\n    this.createBeaconDataSource();\n    this.createProjectDataSource();\n    this.createPayrollCategoryDataSource();\n    this.loadPayrollEmployees(); \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['employee']?.currentValue && changes['employee'].currentValue != this.formEmployee) {\n      this.formEmployee = this.employee;      \n      this.onEmployeeChanged(this.formEmployee); \n    }    \n  }\n\n  onEmployeeChanged(cust: Employee|undefined){\n  }\n\n  getEmployee() {\n    if(this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Employee:Loading employee...`;\n      this.employee_store.byKey(this.employee.Id, { expand: this.employee_expands }).then(\n        (dataItem) => { \n          this.formEmployee = Object.assign(new Employee(), dataItem[0]);\n          this.employee = this.formEmployee;\n          \n          this.onEmployeeChanged(this.employee);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.employeeChanged.emit(this.employee);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getEmployee();\n    this.inEditMode = false;\n    this.setEditorsEnabled(false);\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"FirstName\")?.focus();\n    this.inEditMode = true;\n    this.setEditorsEnabled(true);\n  }\n  \n  onCancelEditClick(){\n    this.getEmployee();    \n    this.inEditMode = false;\n    this.setEditorsEnabled(true);\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveEmployee();\n    }\n  }\n\n  saveEmployee(){\n    if(this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-Employee:Updating employee...`;\n      \n      let update_values: any = {    \n        FirstName: this.formEmployee?.FirstName,\n        LastName: this.formEmployee?.LastName,        \n        Gender: this.formEmployee?.Gender, \n        Initials: this.formEmployee?.Initials\n      };\n      if(this.fullEditAllowed){\n        update_values.DepartmentId = this.formEmployee?.DepartmentId;\n        update_values.LocationId = this.formEmployee?.LocationId;\n        update_values.InventLocationId = this.formEmployee?.InventLocationId;\n        update_values.SupervisorId = this.formEmployee?.SupervisorId;\n        update_values.PayrollNumber = this.formEmployee?.PayrollNumber;\n        update_values.PayrollIntervalId = this.formEmployee?.PayrollIntervalId;\n        update_values.EmployeeGroupId = this.formEmployee?.EmployeeGroupId;\n        update_values.BeaconId = this.formEmployee?.BeaconId;\n        update_values.DefaultProjectId = this.formEmployee?.DefaultProjectId;\n        update_values.DefaultOvertimeCategoryId = this.formEmployee?.DefaultOvertimeCategoryId;        \n      }\n      \n      this.employee_store.update(this.employee.Id,update_values)\n        .then(\n            (dataObj) => \n            { \n              this.getEmployee();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.setEditorsEnabled(false);\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Employee:Employee update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n\n  \n  \n\n  // *** DataSources ******************\n\n  //--- Gender\n  genderType_ds: any[] = [  \n    { id: GenderType.Unknown, description: $localize`:@@EnumValue-Unknown:Unknown` }, \n    { id: GenderType.Male, description: $localize`:@@EnumValue-Male:Male` },  \n    { id: GenderType.Female, description: $localize`:@@EnumValue-Female:Female` },  \n    { id: GenderType.Other, description: $localize`:@@EnumValue-Other:Other` }\n  ]\n  \n  \n  //--- DepartmentDataSource\n\n  department_ds: DataSource|undefined;\n\n  createDepartmentDataSource(){\n    this.department_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Department\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Department(), dataItem);\n      }            \n    });  \n  }\n\n  //--- LocationDataSource\n\n  location_ds: DataSource|undefined;\n\n  createLocationDataSource(){\n    this.location_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Location\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Location(), dataItem);\n      }            \n    });  \n  }\n\n  //--- InventLocationDataSource\n\n  inventLocation_ds: DataSource|undefined;\n\n  createInventLocationDataSource(){\n    this.inventLocation_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"InventLocation\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {       \n        return Object.assign(new InventLocation(), dataItem);\n      }            \n    });  \n  }\n\n  //--- SupervisorDataSource\n  // --- FullName\n    \n  fullNameSortOrder: string = \"asc\";\n  get fullNameSortExpression(){  \n    return `FirstName ${this.fullNameSortOrder}, LastName`;\n  }\n\n  fullNameFilterExpression(filterValue:any, selectedFilterOperation:any) {\n    return fullNameFilterExpression_Employee(filterValue, selectedFilterOperation, undefined);  \n  } \n\n  supervisor_ds: DataSource|undefined;\n\n  createSupervisorDataSource(){\n    this.supervisor_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Employee\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Employee(), dataItem);\n      }            \n    });  \n  }\n\n  //--- PayrollIntervalDataSource\n  payrollInterval_ds: DataSource|undefined;\n\n  async createPayrollIntervalDataSource(){\n    this.payrollInterval_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"PayrollInterval\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new PayrollInterval(), dataItem);\n      }            \n    });  \n  }     \n\n  //--- EmployeeGroupDataSource\n  employeegroup_ds: DataSource|undefined;\n\n  async createEmployeeGroupDataSource(){\n    this.employeegroup_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"EmployeeGroup\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new EmployeeGroup(), dataItem);\n      }            \n    });  \n  }    \n\n  //--- BeaconDataSource\n  beacon_ds: DataSource|undefined;\n\n  async createBeaconDataSource(){\n    this.beacon_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Beacon\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Beacon(), dataItem);\n      }            \n    });  \n  }  \n\n    //--- ProjectDataSource\n    project_ds: DataSource|undefined;\n\n    async createProjectDataSource(){\n      this.project_ds = new DataSource({\n        store: new ODataStore({\n          url: this.cloudDataService.getMobiManagementODataUrl(\"Project\"),\n          withCredentials: true, \n          key: \"Id\",\n          keyType: \"Guid\",\n          version: 4,        \n        }),\n        requireTotalCount: true,\n        map: (dataItem) => {        \n          return Object.assign(new Project(), dataItem);\n        }            \n      });  \n    }  \n\n    //--- PayrollCategoryDataSource\n    payrollCategory_ds: DataSource|undefined;\n\n    async createPayrollCategoryDataSource(){\n      this.payrollCategory_ds = new DataSource({\n        store: new ODataStore({\n          url: this.cloudDataService.getMobiManagementODataUrl(\"PayrollCategory\"),\n          withCredentials: true, \n          key: \"Id\",\n          keyType: \"Guid\",\n          version: 4,        \n        }),\n        requireTotalCount: true,\n        map: (dataItem) => {        \n          return Object.assign(new PayrollCategory(), dataItem);\n        }            \n      });  \n    }      \n\n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"Profile\" i18n-title=\"@@CaptionHeader-Profile\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeProfileForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formEmployee\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formEmployeeData_Profile\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"FirstName\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n                <dxo-label text=\"First name\" i18n-text=\"@@FieldCaption-FirstName\"></dxo-label>        \n                <dxi-validation-rule type=\"required\" message=\"First name is required\" i18n-message=\"@@ValidationText-FirstName-Required\"></dxi-validation-rule>        \n            </dxi-item>\n            <dxi-item dataField=\"LastName\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'family-name'} }\">\n                <dxo-label text=\"Last name\" i18n-text=\"@@FieldCaption-LastName\"></dxo-label>   \n                <dxi-validation-rule type=\"required\" message=\"Last name is required\" i18n-message=\"@@ValidationText-LastName-Required\"></dxi-validation-rule>             \n            </dxi-item>\n                        \n            <dxi-item dataField=\"Initials\">\n                <dxo-label text=\"Initials\" i18n-text=\"@@FieldCaption-Initials\"></dxo-label>                \n            </dxi-item>\n\n            <dxi-item dataField=\"Gender\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: genderType_ds, valueExpr: 'id', displayExpr: 'description' }\">\n                <dxo-label text=\"Gender\" i18n-text=\"@@FieldCaption-Gender\"></dxo-label>\n            </dxi-item> \n\n            <dxi-item dataField=\"DepartmentId\" editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'department_itemTemplate', fieldTemplate: 'department_fieldTemplate', dataSource: department_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['Name'], showClearButton: true }\">\n                <dxo-label text=\"Department\" i18n-text=\"@@FieldCaption-Department\"></dxo-label> \n            </dxi-item> \n\n            <dxi-item dataField=\"LocationId\" editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'location_itemTemplate', fieldTemplate: 'location_fieldTemplate', dataSource: location_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['Name'], showClearButton: true }\">\n                <dxo-label text=\"Location\" i18n-text=\"@@FieldCaption-Location\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"InventLocationId\" editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'inventLocation_itemTemplate', fieldTemplate: 'inventLocation_fieldTemplate', dataSource: inventLocation_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['InventLocationId','Name'], showClearButton: true }\">\n                <dxo-label text=\"InventLocation\" i18n-text=\"@@FieldCaption-InventLocation\"></dxo-label>\n            </dxi-item>          \n\n            <dxi-item dataField=\"SupervisorId\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ readOnly: true, itemTemplate:'employee_itemTemplate', fieldTemplate: 'employee_fieldTemplate', valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['EmployeeNumber','Name'], showClearButton: true }\">\n                <dxo-label text=\"Supervisor\" i18n-text=\"@@FieldCaption-Supervisor\"></dxo-label> \n            </dxi-item>  \n\n            <dxi-item dataField=\"PayrollNumber\" editorType=\"dxAutocomplete\" [editorOptions]=\"{ readOnly: true, showClearButton: true, minSearchLength: 0, maxItemCount: 200, openOnFieldClick: true, itemTemplate: 'payrollEmplTemplate', valueExpr: 'EmployeeNumber', searchExpr: ['EmployeeId', 'EmployeeNumber','Name'] }\">\n                <dxo-label text=\"Payroll no.\" i18n-text=\"@@FieldCaption-PayrollNumber\"></dxo-label>                                    \n            </dxi-item> \n\n            <dxi-item dataField=\"PayrollIntervalId\" editorType=\"dxLookup\" [editorOptions]=\"{ readOnly: true, itemTemplate:'payrollInterval_itemTemplate', fieldTemplate: 'payrollInterval_fieldTemplate', valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['IntervalId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Payroll interval\" i18n-text=\"@@FieldCaption-PayrollInterval\"></dxo-label> \n            </dxi-item>    \n            \n            <dxi-item dataField=\"EmployeeGroupId\" editorType=\"dxLookup\" [editorOptions]=\"{ readOnly: true, itemTemplate:'employeegroup_itemTemplate', fieldTemplate: 'employeegroup_fieldTemplate', valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['GroupId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Employee group\" i18n-text=\"@@FieldCaption-EmployeeGroup\"></dxo-label> \n            </dxi-item>   \n            \n            <dxi-item dataField=\"BeaconId\" editorType=\"dxLookup\" [editorOptions]=\"{ readOnly: true, itemTemplate:'beacon_itemTemplate', fieldTemplate: 'beacon_fieldTemplate', valueExpr: 'Id', displayExpr: 'BeaconId', searchEnabled: true, searchExpr: ['BeaconId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Beacon\" i18n-text=\"@@FieldCaption-Beacon\"></dxo-label> \n            </dxi-item>      \n            \n            \n            <dxi-item dataField=\"DefaultProjectId\" editorType=\"dxLookup\" [editorOptions]=\"{ readOnly: true, itemTemplate:'project_itemTemplate', fieldTemplate: 'project_fieldTemplate', valueExpr: 'Id', displayExpr: 'ProjectId', searchEnabled: true, searchExpr: ['ProjectId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Project\" i18n-text=\"@@FieldCaption-Project\"></dxo-label> \n            </dxi-item>   \n            \n            <dxi-item dataField=\"DefaultOvertimeCategoryId\" editorType=\"dxLookup\" [editorOptions]=\"{ readOnly: true, itemTemplate:'payroll_itemTemplate', fieldTemplate: 'payroll_fieldTemplate', valueExpr: 'Id', displayExpr: 'CategoryId', searchEnabled: true, searchExpr: ['CategoryId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Overtime category\" i18n-text=\"@@FieldCaption-OvertimeCategory\"></dxo-label> \n            </dxi-item>  \n\n\n        </dxi-item>       \n       \n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'department_itemTemplate'\">\n            {{ item?.Name }}\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'department_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}}\n        </div>         \n        <div *dxTemplate=\"let item of 'location_itemTemplate'\">\n            {{ item?.Name }}\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'location_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}}\n        </div> \n        <div *dxTemplate=\"let item of 'inventLocation_itemTemplate'\">\n            {{item?.Name}} {{ item?.InventLocationId ? ('(' + item.InventLocationId + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'inventLocation_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.InventLocationId ? ('(' + item.InventLocationId + ')') : ('') }}\n        </div>         \n        <div *dxTemplate=\"let item of 'employee_itemTemplate'\">\n            {{item?.Name}} {{ item?.EmployeeNumber ? ('(' + item.EmployeeNumber + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'employee_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.EmployeeNumber ? ('(' + item.EmployeeNumber + ')') : ('') }}\n        </div> \n        <div class=\"payrollno-dropdown\" *dxTemplate=\"let empl of 'payrollEmplTemplate'\">\n            <div class=\"payrollno-dropdown-emplno\">{{empl.EmployeeNumber}}</div><div class=\"payrollno-dropdown-emplname\">{{empl.Name}}</div>\n        </div>  \n        \n        <div *dxTemplate=\"let fieldData of 'payrollInterval_itemTemplate'\">\n            {{fieldData?.Name}}\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'payrollInterval_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}} {{ fieldData?.IntervalId ? ('(' + fieldData?.IntervalId + ')') : ('') }}\n        </div>\n\n        <div *dxTemplate=\"let item of 'employeegroup_itemTemplate'\">\n            {{ item?.Name }}\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'employeegroup_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}}\n        </div> \n        \n        <div *dxTemplate=\"let fieldData of 'beacon_itemTemplate'\">\n            {{fieldData?.BeaconId}}\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'beacon_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.BeaconId}} {{ fieldData?.Name ? ('(' + fieldData?.Name + ')') : ('') }}\n        </div>        \n\n\n        <div *dxTemplate=\"let item of 'project_itemTemplate'\">\n            {{item?.Name}} {{ item?.ProjectId ? ('(' + item.ProjectId + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'project_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.ProjectId ? ('(' + item.ProjectId + ')') : ('') }}\n        </div>           \n        \n        <div *dxTemplate=\"let item of 'payroll_itemTemplate'\">\n            {{item?.Name}} {{ item?.CategoryId ? ('(' + item.CategoryId + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'payroll_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.CategoryId ? ('(' + item.CategoryId + ')') : ('') }}\n        </div>  \n        \n        \n    </dx-form>\n</mobicloud-group-box>","import { Component, OnInit, Inject,AfterViewInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\n\nimport {WebcamImage} from 'ngx-webcam';\nimport {Subject, Observable} from 'rxjs';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageResult } from \"../message-box/message-box\";\n\n\n\n@Component({\n  selector: 'mobicloud-camera-dialog-edit',\n  templateUrl: './camera-dialog-edit.component.html',\n  styleUrls: ['./camera-dialog-edit.component.scss']\n})\nexport class CameraDialogEditComponent implements OnInit,AfterViewInit {\n width:  number|undefined;\n  height:  number;\n\n  cameraNotFound: boolean|undefined = false;\n  cameraNotAllowed: boolean|undefined = false;\n  cameraNotReadonly: boolean|undefined = false;\n\n  allowTakePhoto: boolean|undefined = true;\n  // allowDeletePhoto: boolean|undefined = false;\n  // allowUsePhoto: boolean|undefined = false;\n\n  constructor(public dialogRef: MatDialogRef<CameraDialogEditComponent>, @Inject(MAT_DIALOG_DATA) public data: any, private matDialog: MatDialog) { \n    // console.log(dialogRef, data, matDialog);\n    if(this.data && this.data[\"height\"]){\n      this.height = this.data[\"height\"];           \n    }\n    else{\n      this.height = 400;\n    }\n    if(this.data && this.data[\"width\"]){\n      this.width = this.data[\"width\"];           \n    }\n    else{\n      this.width = 400;\n    }    \n  }\n\n  ngAfterViewInit() {    \n  }\n\n  ngOnInit(): void {   \n  }\n\n  cameraError(error:any){\n    if (error?.mediaStreamError && error?.mediaStreamError.name === \"NotFoundError\") {\n      this.cameraNotFound = true;\n      this.allowTakePhoto = false;\n      // this.allowDeletePhoto = false;\n      // this.allowUsePhoto = false;\n      console.warn(\"No camera was found!\");\n    }\n    else if (error?.mediaStreamError && error?.mediaStreamError.name === \"NotAllowedError\") {\n      this.cameraNotAllowed = true;\n      this.allowTakePhoto = false;\n      // this.allowDeletePhoto = false;\n      // this.allowUsePhoto = false;\n      console.warn(\"Camera access was not allowed by user!\");\n    } \n    else if (error?.mediaStreamError && error?.mediaStreamError.name === \"NotReadableError\") {\n      this.cameraNotReadonly = true;\n      this.allowTakePhoto = false;\n      console.warn(\"Camera was not readable.\");\n    }     \n    console.error(error);   \n  }\n\n  image_capture_url: string | undefined;\n  public webcamImage: WebcamImage | undefined =  undefined;\n  \n  // webcam snapshot trigger\n  private trigger: Subject<void> = new Subject<void>();\n\n  takePhoto(): void {\n    this.trigger.next();\n  }\n  \n  handleImage(webcamImage: WebcamImage | undefined): void {\n   console.info('received webcam image', webcamImage);\n   this.webcamImage = webcamImage;\n   this.image_capture_url = webcamImage?.imageAsDataUrl;\n  }\n \n  public get triggerObservable(): Observable<void> {\n   return this.trigger.asObservable();\n  }  \n\n  clearPhoto(): void {\n    this.webcamImage = undefined;\n  }\n\n  usePhoto(): void {\n    this.onClose();\n  }\n\n  onClose() {\n    // this.dialogRef.close({result: {id: \"\", dialogResult: MessageResult.Ok}});\n    this.dialogRef.close({result: {webcamImage: this.webcamImage, dialogResult: MessageResult.Ok}});\n  }\n\n  onCancel() {\n    this.dialogRef.close({result: {id: \"\", dialogResult: MessageResult.Cancel}});\n  }\n\n\n\n\n  \n\n   \n  \n}\n","<div mat-dialog-container class=\"dialog-container\">\n    <mat-toolbar color=\"primary\" class=\"mat-elevation-z2 dialog-caption\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\n        <mat-card-header i18n=\"@@FieldCaption-Camera\">Camera</mat-card-header>\n        <span class=\"dialog-caption-spacer\"></span>\n        <button mat-raised-button appMaterialElevation matTooltip=\"Close\" i18n-matTooltip=\"@@Action-Close\" aria-label=\"Close\" i18n-aria-label=\"@@Action-Close\" class=\"dialog-toolbar-button\" (click)=\"onCancel()\">\n          <svg-icon name=\"mobicloud_close\" svgClass=\"dialog-toolbar-button-icon\"></svg-icon>\n        </button>        \n    </mat-toolbar>\n\n    <div class=\"camera-edit-container flex flex-col\">\n        <div class=\"webcam-container justify-center items-center\" [ngStyle]=\"{height: height + 'px'}\" *ngIf=\"!cameraNotFound && allowTakePhoto\">\n            <webcam class=\"webcam\" [height]=\"height\" [width]=\"width\" [trigger]=\"triggerObservable\" (imageCapture)=\"handleImage($event)\" [allowCameraSwitch]=\"true\" (initError)=\"cameraError($event)\" *ngIf=\"!webcamImage\"></webcam>\n            <img alt=\"\"alt=\"\" class=\"photo\" [width]=\"width\" [src]=\"image_capture_url\" *ngIf=\"webcamImage\"/>\n        </div>\n        <div class=\"webcam-container-error justify-center items-center\" [ngStyle]=\"{height: height + 'px'}\" *ngIf=\"cameraNotFound || cameraNotAllowed || cameraNotReadonly\">\n            <div *ngIf=\"cameraNotFound\" i18n=\"@@ErrorText-NoCameraFound\">No camera was found</div>\n            <div *ngIf=\"cameraNotAllowed\" i18n=\"@@ErrorText-CameraNotAllowed\">Your browser has denied access to your camera</div>\n            <div *ngIf=\"cameraNotReadonly\" i18n=\"@@ErrorText-CameraNotReadble\">Could not access your camera. It migth be used by another application?</div>\n        </div>        \n        <div class=\"buttons-container justify-center items-center\">\n            <dx-button class=\"takephoto-button\" icon=\"photo\" text=\"Take Photo\" i18n-text=\"@@Action-TakePhoto\" hint=\"Take photo\" i18n-hint=\"@@Action-TakePhoto\" [visible]=\"allowTakePhoto && !webcamImage\" (onClick)=\"takePhoto();\">                \n            </dx-button>\n            <dx-button class=\"usephoto-button\" [disabled]=\"webcamImage == undefined\" icon=\"todo\" text=\"Use Photo\" i18n-text=\"@@Action-UsePhoto\" hint=\"Use photo\" i18n-hint=\"@@Action-UsePhoto\" [visible]=\"webcamImage\" (onClick)=\"usePhoto();\">                \n            </dx-button>            \n            <dx-button class=\"clear-button\" icon=\"clear\" text=\"Clear Photo\" i18n-text=\"@@Action-ClearPhoto\" hint=\"Clear photo\" i18n-hint=\"@@Action-ClearPhoto\" [visible]=\"webcamImage\" (onClick)=\"clearPhoto();\">                \n            </dx-button>          \n            <!-- <button class=\"actionBtn\" (click)=\"triggerSnapshot();\">Take A Snapshot</button> -->\n        </div>\n        <div class=\"snapshot\" *ngIf=\"webcamImage\"></div>\n\n        <!-- <div class=\"snapshot\" *ngIf=\"webcamImage\">    \n            <h2>Take your image or get another</h2>\n            <img alt=\"\"[src]=\"image_capture_url\"/>\n        </div> -->\n    </div>\n    \n  </div>","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from \"@angular/material/dialog\";\nimport {map } from 'rxjs/operators';\n\nimport { DxFileUploaderComponent } from 'devextreme-angular';\n\nimport { MessageResult } from \"../message-box/message-box\";\nimport { CameraDialogEditComponent } from \"../camera-dialog-edit/camera-dialog-edit.component\";\n\nimport {formatDate } from '@angular/common';\n@Component({\n  selector: 'mobicloud-image-edit',\n  templateUrl: './image-edit.component.html',\n  styleUrls: ['./image-edit.component.scss']\n})\nexport class ImageEditComponent implements OnInit {\n  @ViewChild('fileUploader') fileUploader! :  DxFileUploaderComponent;  \n  _width:  number=0;\n  @Input('width')\n  set width(value: number) {\n    this._width = value;\n    this.height=(this._width/(4/3));\n  }\n  get width(): number {\n    return this._width;\n  }  \n  height:  number;\n  currentImageHeight: number;\n  fileUploaderHeight: number;\n  \n  @Input() imageNamePrefix: string = \"profile\";\n  @Input() enableCamera: boolean|undefined = true;\n  @Input() enableSelectFile: boolean|undefined = true;\n\n  @Input() containerElementId: string = \"dropzone-image-edit\";\n  dropZoneElementId: string | undefined;\n  @Input() uploadUrl: string | undefined;\n  \n  @Input('imageUrl')\n  set imageUrl(value: string | undefined) {\n    this.initialImageUrl = value;\n    this.currentImageUrl = value;\n    this.textVisible = !value;\n  }\n\n  get imageUrl(): string | undefined {\n    return this.currentImageUrl;\n  }  \n\n  initialImageUrl: string | undefined;\n  currentImageUrl: string | undefined;\n\n  @Input('inEditMode')\n  set inEditMode(value: boolean|undefined) {\n    this._inEditMode = value;\n    if(this._inEditMode){\n      this.currentImageHeight = this.height - this.fileUploaderHeight;\n      this.dropZoneElementId = \"#\" + this.containerElementId;\n    }\n    else{\n      this.currentImageHeight = this.height; \n      this.dropZoneElementId = undefined; \n      if(!this.isUploaded){\n        this.currentImageUrl = this.initialImageUrl;\n      }\n    }\n  }\n  get inEditMode(): boolean|undefined {\n    return this._inEditMode;\n  } \n  _inEditMode: boolean|undefined = false;\n  @Output() inEditModeChange = new EventEmitter<boolean>();\n\n  @Input() isUploading: boolean|undefined = false;\n  @Output() isUploadingChange = new EventEmitter<boolean>();\n  @Input() isUploaded: boolean|undefined = false;\n  @Output() isUploadedChange = new EventEmitter<boolean>();\n\n  @Input() uploadError: boolean|undefined = false;\n  @Output() uploadErrorChange = new EventEmitter<boolean>();\n  @Input() uploadErrorMessage: string | undefined = undefined;\n  @Output() uploadErrorMessageChange = new EventEmitter<string>();\n\n  isDropZoneActive = false;\n  textVisible = true;\n\n  @Input() nativeImages: any = [];\n\n\n  constructor(private dialog: MatDialog) {\n    this.width = 256;\n    this.height = 256;\n    this.currentImageHeight = this.height;\n    this.fileUploaderHeight = 60;\n    this.onDropZoneEnter = this.onDropZoneEnter.bind(this);\n    this.onDropZoneLeave = this.onDropZoneLeave.bind(this);    \n    this.onUploadImageChanged= this.onUploadImageChanged.bind(this);\n    this.openCameraClick = this.openCameraClick.bind(this);    \n  }\n\n  ngOnInit(): void {\n  }\n\n  openCameraClick() : void{\n    this.openCameraDialog([]);\n  }\n  onDropZoneEnter(e:any) {\n    if(e.dropZoneElement.id === \"dropzone-external\")\n        this.isDropZoneActive = true;\n  }\n\n  onDropZoneLeave(e:any) {\n      if(e.dropZoneElement.id === \"dropzone-external\")\n          this.isDropZoneActive = false;\n  }\n\n  onUploadImageChanged(args:any){\n    // console.log(args);\n\n    if(args.value.length > 0){\n      this.nativeImages = args.value;\n      var reader = new FileReader();\n      reader.onload = (e:any) => {\n        // this.nativeImage = reader.result;\n        this.currentImageUrl = reader.result?.toString();\n        this.textVisible = !this.currentImageUrl;\n        // console.log(\"loaded currentImageUrl\", this.currentImageUrl);\n      };\n      reader.readAsDataURL(this.nativeImages[0]);\n    }\n    else{\n      this.currentImageUrl = this.initialImageUrl;\n      this.textVisible = !this.currentImageUrl;\n    }    \n\n  }\n\n  upload(){\n    this.uploadErrorMessage = undefined;\n    this.uploadErrorMessageChange.emit(undefined);\n    this.uploadError = false;\n    this.uploadErrorChange.emit(false);\n    this.isUploading = true;\n    this.isUploadingChange.emit(true);    \n    this.fileUploader.instance.upload();\n  }\n\n  onFilesUploaded(args:any){\n    // console.log(args);\n    this.isUploading = false;\n    this.isUploadingChange.emit(false); \n    this.isUploaded = true;\n    this.isUploadedChange.emit(true);       \n    this.inEditMode = false;\n    this.inEditModeChange.emit(this.inEditMode);\n    // console.log(\"onFilesUploaded\", args);\n    this.initialImageUrl = this.currentImageUrl;\n    this.fileUploader.instance.removeFile(0);\n\n    \n    this.currentImageHeight = this.height;\n  }\n\n  onUploadError(args:any){    \n    this.isUploading = false;\n    this.isUploadingChange.emit(false);\n    this.uploadErrorMessage = args?.message;\n    this.uploadErrorMessageChange.emit(this.uploadErrorMessage);    \n    this.uploadError = true;\n    this.uploadErrorChange.emit(true);    \n    console.error(\"onUploadError\",args);\n  }\n  //---------------------------------------------\n    openCameraDialog(parameters: any[]) : void{\n    // console.log(\"openCameraDialog, \" + parameters);\n    const dialogConfig = new MatDialogConfig();\n    dialogConfig.disableClose = true;\n    dialogConfig.autoFocus = true;\n    dialogConfig.width = \"440px\";\n    dialogConfig.height = \"410px\";\n    dialogConfig.data = {\"height\": 320, \"width\": 400};\n    const dialogRef = this.dialog.open(CameraDialogEditComponent, dialogConfig);\n    dialogRef.afterClosed()\n        .pipe(map(r => (r.result))).subscribe( result => \n          {\n            // console.log(result);\n            if(result?.dialogResult == MessageResult.Ok){\n              if(result.webcamImage){            \n                // console.log(`Dialog result (ok)- webCam:`, result.webcamImage);\n                var blob =this.dataURItoBlob(result.webcamImage.imageAsBase64);\n                const filename = this.imageNamePrefix + \"_\" + formatDate(new Date(Date.now()), \"yyyy_MM_dd_HH_mm\", \"en-US\") + \".jpeg\";\n                var file = new File([blob], filename, {type: blob.type});\n                this.nativeImages = [file];\n              }\n            }\n            else{\n              // console.log(`Dialog result (cancelled): ${result.dialogResult}`);\n            }\n          });    \n  } \n  \n  dataURItoBlob(dataURI:any) {\n    const byteString = window.atob(dataURI);\n    const arrayBuffer = new ArrayBuffer(byteString.length);\n    const int8Array = new Uint8Array(arrayBuffer);\n    for (let i = 0; i < byteString.length; i++) {\n      int8Array[i] = byteString.charCodeAt(i);\n    }\n    const blob = new Blob([int8Array], { type: 'image/png' });    \n    return blob;\n }  \n}\n","\n<div class=\"image-edit-container\" [ngStyle]=\"{width: width + 'px',height: height + 'px'}\">\n    <div [id]=\"containerElementId\" class=\"image-wrapper\" [ngClass]=\"isDropZoneActive ? ['dx-theme-accent-as-border-color', 'dropzone-active'] : ['dx-theme-border-color']\" [ngStyle]=\"{width: width + 'px',height: (currentImageHeight) + 'px'}\">\n            <img alt=\"\"class=\"image\"\n                id=\"dropzone-image\"\n                [src]=\"currentImageUrl\"\n                *ngIf=\"currentImageUrl\"\n                alt=\"\" [ngStyle]=\"{width: width + 'px',height: (currentImageHeight) + 'px'}\"\n            />\n            <div class=\"dropzone-text\" *ngIf=\"textVisible\">\n                <!-- <span>Drag & Drop the desired file</span>\n                <span>…or click to browse for a file instead.</span> -->\n            </div>\n    </div>\n    <div class=\"buttons-container flex flex-row justify-center items-start\">\n        <div class=\"camera-button-container justify-center items-center\" *ngIf=\"inEditMode && enableCamera\" [ngStyle]=\"{width: (width/2) + 'px'}\">\n            <dx-button\n                class=\"camera-button\"\n                icon=\"photo\"\n                text=\"Camera\" i18n-text=\"@@Action-Camera\" hint=\"Take photo\" i18n-hint=\"@@Action-TakePhoto\"\n                [disabled]=\"false\" (onClick)=\"openCameraClick()\">\n            </dx-button>\n        </div>\n        <dx-file-uploader #fileUploader id=\"fileUploader\" [visible]=\"inEditMode && enableSelectFile\" class=\"fileUploader\" [uploadUrl]=\"uploadUrl\" [multiple]=\"false\" accept=\"*\" [(value)]=\"nativeImages\" uploadMode=\"useButtons\" (onValueChanged)=\"onUploadImageChanged($event)\" (onFilesUploaded)=\"onFilesUploaded($event)\" (onUploadError)=\"onUploadError($event)\"\n        labelText=\"\" [readOnly]=\"false\" [showFileList]=\"false\"[allowedFileExtensions]=\"['.jpg', '.jpeg', '.gif', '.png']\" dialogTrigger=\"{{dropZoneElementId}}\" dropZone=\"{{dropZoneElementId}}\" (onDropZoneEnter)=\"onDropZoneEnter($event)\" (onDropZoneLeave)=\"onDropZoneLeave($event)\">\n        </dx-file-uploader>\n    </div>\n</div>\n\n     ","import { Component, OnInit, Input, ViewChild, effect } from '@angular/core';\n\nimport { Employee } from \"mobicloud-core/api\";\nimport { getProfileImageUrl } from \"mobicloud-core/api\";\n\nimport { EmployeeSecurityRoleType, MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { ImageEditComponent } from \"../../image-edit/image-edit.component\";\n\n@Component({\n  selector: 'mobicloud-employee-profile-image',\n  templateUrl: './employee-profile-image.component.html',\n  styleUrls: ['./employee-profile-image.component.scss']\n})\nexport class EmployeeProfileImageComponent implements OnInit {\n  @ViewChild('imageEdit') imageEdit! :  ImageEditComponent;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()  width!:  number;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@UploadingLoading-Image-Text:Uploading image...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n  @Input() employee: Employee|undefined;\n  @Input() employee_expands: string[]|undefined;\n\n  uploadUrl:  string | undefined = undefined;\n  isUploaded: boolean|undefined = false;\n  \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService) {     \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){\n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = (valid || userProfile?.user_id == this.employee?.Id);\n        }, EmployeeSecurityRoleType.Admin);\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.uploadUrl = this.cloudDataService.getMobiManagementODataUrl(`Employee(${this.employee?.Id})/UploadProfileImage`);\n  }\n\n  getProfileImageUrl() : string | undefined{\n    if(this.employee)\n      return getProfileImageUrl(this.employee.Image);\n    return undefined;\n  }\n\n  onEditClick(){\n    this.inEditMode = true;\n  }\n\n  onCancelEditClick(){\n    this.inEditMode = false;\n  }\n\n  onSaveClick(){\n    this.imageEdit.upload();\n  }\n\n  onRetryClick(){\n    this.imageEdit.upload();\n  } \n\n  isUploadedChange(success:boolean){\n    this.coreService.getProfileDetails();\n  }\n}\n","<mobicloud-group-box title=\"Profile Image\" i18n-title=\"@@CaptionHeader-ProfileImage\" [width]=\"[width]\" [contentheight]=\"0\" class=\"employeeProfileImageForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <mobicloud-image-edit #imageEdit id=\"imageEdit\" [uploadUrl]=\"uploadUrl\" [imageUrl]=\"getProfileImageUrl()\" [width]=\"width - 20\" \n  [(inEditMode)]=\"inEditMode\" [(isUploading)]=\"isLoadingData\" [(isUploaded)]=\"isUploaded\" [(uploadError)]=\"hasErrors\" [(uploadErrorMessage)]=\"errorText\" (isUploadedChange)=\"isUploadedChange($event)\"></mobicloud-image-edit>\n\n  <!-- <p>url: {{uploadUrl}}</p>\n  <p>inEditMode: {{inEditMode}}</p>\n  <p>isLoadingData: {{isLoadingData}}</p>\n  <p>isUploaded: {{isUploaded}}</p>\n  <p>hasErrors: {{hasErrors}}</p>\n  <p>errorText: {{errorText}}</p>   -->\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Employee, ConsignmentEmployeeValidation, EmployeeRecognitionType, PickingEmployeeValidation } from \"mobicloud-core/api\";\nimport { MobicloudCoreService, EmployeeSecurityRoleType } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { UsernameValidator } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-employee-user-info',\n  templateUrl: './employee-user-info.component.html',\n  styleUrls: ['./employee-user-info.component.scss']\n})\nexport class EmployeeUserInfoComponent implements OnInit, OnChanges {\n  @Input() employee: Employee|undefined;\n  formEmployee: Employee|undefined;\n  @Input() employee_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n  fullEditAllowed:boolean = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() employeeChanged = new EventEmitter<Employee>();  \n\n  employee_store: ODataStore|undefined;\n  passwordButtonOptions: any;\n  passwordToggleMode: string;\n  passwordToogleIcon: string;\n\n  // hashedPasswords: boolean|undefined = true;\n  certificateLogin: boolean | undefined = false;\n  \n  @ViewChild('form') form! :  DxFormComponent;\n\n  editorOptions_Status:any|undefined;\n  editorOptions_AppLogin:any|undefined;\n  editorOptions_Substitute:any|undefined;\n  editorOptions_EmployeeNumber:any|undefined;\n  editorOptions_QA_Consignment_Validation:any|undefined;\n  editorOptions_Picking_Validation:any|undefined;\n\n  editorOptions_RecognitionType:any|undefined;\n  editorOptions_Pincode:any|undefined;\n\n  editorOptions_SecurityRole:any|undefined;\n  isOrganizationAdmin: boolean | undefined = false;\n  hasSecurityRole_Administrator: boolean | undefined = false;\n\n  editorOptions_MasterUser:any|undefined;\n  isMasterOrganization: boolean | undefined = false;\n  isMasterUser: boolean | undefined = false;\n  isEmployeeMasterUser: boolean | undefined = false;\n  isPureMasterUser: boolean | undefined = false;\n\n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog, public usernameValidator: UsernameValidator) {  \n    this.editorOptions_Status = { dataSource: this.status_ds, valueExpr: 'id', displayExpr: 'description', readOnly: true };\n    this.editorOptions_AppLogin = { dataSource: this.loginType_ds, valueExpr: 'id', displayExpr: 'description', readOnly: true };\n    this.editorOptions_Substitute = { dataSource: this.boolean_ds, valueExpr: 'id', displayExpr: 'description', readOnly: true };\n    this.editorOptions_EmployeeNumber = { readOnly: true };\n    this.editorOptions_QA_Consignment_Validation = { dataSource: this.consignmentValidation_ds, valueExpr: 'value', displayExpr: 'text', readOnly: true };\n    this.editorOptions_Picking_Validation = { dataSource: this.pickingValidation_ds, valueExpr: 'value', displayExpr: 'text', readOnly: true };\n\n    this.editorOptions_RecognitionType = { dataSource: this.employeeRecognitionType_ds, valueExpr: 'value', displayExpr: 'text' };\n    this.editorOptions_Pincode = { mode: \"password\", showClearButton:\"true\" };\n\n    this.editorOptions_SecurityRole = { dataSource: this.securityrole_ds, valueExpr: 'value', displayExpr: 'text', readOnly: true };\n    this.editorOptions_MasterUser = { dataSource: this.masteruser_ds, valueExpr: 'value', displayExpr: 'text', readOnly: true };\n    \n    this.usernameValidation = this.usernameValidation.bind(this);\n    \n    this.passwordToogleIcon = \"mobicloud_password_visibility_off\";\n    this.passwordToggleMode = 'password';\n    \n    this.passwordButtonOptions = {\n      template: 'pwd_buttonTemplate',\n      type: \"back\",\n      onClick: () => {\n          this.passwordToggleMode = this.passwordToggleMode === \"text\" ? \"password\" : \"text\";\n          this.passwordToogleIcon = this.passwordToggleMode === \"password\" ? \"mobicloud_password_visibility_off\" : \"mobicloud_password_visibility\";\n      }\n    };   \n\n    effect(() => {\n      const app = this.coreService.applicationDetails();\n      this.certificateLogin = app?.CertificateLogin;\n      this.isMasterOrganization = app?.IsMasterOrganization;\n      if(this.isMasterUser && this.isMasterOrganization){\n        delete this.editorOptions_MasterUser.readOnly;\n      }\n    });\n\n    effect(() => {\n      const p = this.coreService.mobiUserProfile();\n      if(p?.isEmployeeMasterUser || p?.isMasterUser || p?.isMasterAdmin){\n        this.isMasterUser = true;\n        this.isOrganizationAdmin = true;          \n        if(!p?.isEmployeeMasterUser){\n          this.isEmployeeMasterUser = false;\n          this.hasSecurityRole_Administrator = false;  \n          this.isPureMasterUser = true;          \n        }\n        else{\n          this.isEmployeeMasterUser = true;\n          this.isPureMasterUser = false;\n          let securityRole = this.coreService.securityRole();\n          if(securityRole == EmployeeSecurityRoleType.Admin){\n            this.hasSecurityRole_Administrator = true;\n          }\n          else{\n            this.hasSecurityRole_Administrator = false;\n          }\n        }                    \n      }\n      else{\n        this.isMasterUser = false;\n\n        if(p?.isOrganizationAdmin || p?.isOrganizationUser){\n          this.isOrganizationAdmin = true;\n        }\n        else if(p?.isEmployeeUser){\n          let securityRole = this.coreService.securityRole();\n          if(securityRole == EmployeeSecurityRoleType.Admin){\n            this.isOrganizationAdmin = true;\n            this.hasSecurityRole_Administrator = true;\n          }\n          else{\n            this.isOrganizationAdmin = false;\n          }\n        }\n        else{\n          this.isOrganizationAdmin = false;\n        }          \n      }\n\n      if(this.isMasterUser && this.isMasterOrganization){\n        delete this.editorOptions_MasterUser.readOnly;\n      }\n      \n      this.fullEditAllowed = (this.isMasterUser || this.isOrganizationAdmin);\n      if(this.fullEditAllowed){\n        delete this.editorOptions_Status.readOnly;\n        delete this.editorOptions_AppLogin.readOnly;\n        delete this.editorOptions_QA_Consignment_Validation.readOnly;\n        delete this.editorOptions_Picking_Validation.readOnly;\n        delete this.editorOptions_Substitute.readOnly;          \n        delete this.editorOptions_EmployeeNumber.readOnly;\n        delete this.editorOptions_SecurityRole.readOnly;\n      }\n\n      this.editAllowed = (this.isMasterUser || this.isOrganizationAdmin || p?.user_id == this.employee?.Id);\n    });\n\n  }\n\n  \n  ngOnInit(): void {        \n      this.employee_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Employee\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['employee']?.currentValue && changes['employee'].currentValue != this.formEmployee) {\n      this.formEmployee = this.employee;      \n      this.onEmployeeChanged(this.formEmployee); \n    }    \n  }\n\n  onEmployeeChanged(cust: Employee|undefined){    \n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }\n  }\n\n  getEmployee() {\n    if(this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Employee:Loading employee...`;\n      this.employee_store.byKey(this.employee.Id, { expand: this.employee_expands }).then(\n        (dataItem) => { \n          this.formEmployee = Object.assign(new Employee(), dataItem[0]);\n          if(this.formEmployee?.Supervisor){\n            this.formEmployee.Supervisor=Object.assign(new Employee(), this.formEmployee.Supervisor);\n          } \n          if(this.formEmployee && this.formEmployee.Active === undefined) {\n            this.formEmployee.Active = false;\n          }\n          if(this.formEmployee && this.formEmployee.LoginInfo_AppLogin === undefined) {\n            this.formEmployee.LoginInfo_AppLogin = false;\n          }\n          if(this.formEmployee && this.formEmployee.Substitute === undefined) {\n            this.formEmployee.Substitute = false;\n          }    \n          if(this.isMasterOrganization && this.isMasterUser && this.formEmployee && this.formEmployee.VariantConfig5 === undefined) {\n            this.formEmployee.VariantConfig5 = \"\";\n          }          \n          this.employee = this.formEmployee;\n          \n          this.onEmployeeChanged(this.employee);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.employeeChanged.emit(this.employee);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getEmployee();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Active\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveEmployee();\n    }\n  }\n\n  saveEmployee(){\n    if(this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-Employee:Updating employee...`;\n\n      let update_values: any = {     \n        Email: this.formEmployee?.Email,\n        ResourceColor: this.formEmployee?.ResourceColor\n      };\n      if(this.fullEditAllowed){\n        update_values.Active = this.formEmployee?.Active;\n        update_values.Substitute = this.formEmployee?.Substitute;\n        update_values.EmployeeNumber = this.formEmployee?.EmployeeNumber;\n        update_values.LoginInfo_AppLogin = this.formEmployee?.LoginInfo_AppLogin;\n        update_values.QA_Consignment_Validation = this.formEmployee?.QA_Consignment_Validation;\n        update_values.PickingValidation = this.formEmployee?.PickingValidation;\n        update_values.RecognitionType = this.formEmployee?.RecognitionType;\n        update_values.Pincode = this.formEmployee?.Pincode;\n      }\n      if(this.formEmployee?.LoginInfo_AppLogin){     \n        if(!(this.coreService.applicationDetails()?.CertificateLogin === true)){\n          update_values.LoginInfo_Username = this.formEmployee.LoginInfo_Username;\n        }      \n      }\n\n      if(this.isOrganizationAdmin){\n        update_values.SecurityRole = this.formEmployee?.SecurityRole;             \n      }\n\n      if(this.isMasterOrganization && this.isMasterUser){\n        update_values.VariantConfig5 = this.formEmployee?.VariantConfig5;\n      }\n\n      this.employee_store.update(this.employee.Id, update_values)\n        .then(\n            (dataObj) => \n            { \n              this.getEmployee();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Employee:Employee update failed`, message: error },this.matDialog)\n              .subscribe( (result:any) => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getEmployee();    \n    this.inEditMode = false;\n  }\n  \n\n  usernameValidation(params:any) : Promise<void>{\n    return this.usernameValidator.usernameValidation_devextreme(params.value ?? '', this.employee?.Id ?? '')\n  }  \n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>; \n    status_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-InActive:Inactive` }, \n      { id: true, description: $localize`:@@FieldValue-Active:Active` }\n    ]\n\n    loginType_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-AppLogin-Regular:Regular` }, \n      { id: true, description: $localize`:@@FieldValue-AppLogin-AppUser: App user` }\n    ]  \n\n    boolean_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-No:No` }, \n      { id: true, description: $localize`:@@FieldValue-Yes:Yes` }\n    ] \n    \n    consignmentValidation_ds: any[] = [  \n      { value: ConsignmentEmployeeValidation.None, text: $localize`:@@EnumValue-ConsignmentEmployeeValidation-None:None` }, \n      { value: ConsignmentEmployeeValidation.ConfirmAll, text: $localize`:@@EnumValue-ConsignmentEmployeeValidation-ConfirmAll: Confirm all` }\n    ]  \n\n    employeeRecognitionType_ds: any[] = [  \n      { value: EmployeeRecognitionType.None, text: $localize`:@@EnumValue-EmployeeRecognitionType-None:None` }, \n      { value: EmployeeRecognitionType.Pincode, text: $localize`:@@EnumValue-EmployeeRecognitionType-Pincode: Pin code` },\n      { value: EmployeeRecognitionType.Image, text: $localize`:@@EnumValue-EmployeeRecognitionType-Image: Image` }\n    ]     \n    \n    pickingValidation_ds: any[] = [  \n      { value: PickingEmployeeValidation.None, text: $localize`:@@EnumValue-PickingEmployeeValidation-None:None` }, \n      { value: PickingEmployeeValidation.ConfirmLines, text: $localize`:@@EnumValue-PickingEmployeeValidation-ConfirmLines: Confirm lines` },\n      { value: PickingEmployeeValidation.ConfirmLinesQty, text: $localize`:@@EnumValue-PickingEmployeeValidation-ConfirmLinesQty: Confirm quantity` }\n    ]  \n    \n    masteruser_ds: any[] = [  \n      { value: \"\", text: $localize`:@@FieldValue-No:No` }, \n      { value: \"master\", text: $localize`:@@FieldValue-Yes:Yes` }\n    ] \n\n    //securityrole_ds\n    securityrole_ds: any[] = [  \n      { value: EmployeeSecurityRoleType.None, text: $localize`:@@EnumValue-EmployeeSecurityRoleType-None:Ingen` }, \n      { value: EmployeeSecurityRoleType.SuperUser, text: $localize`:@@EnumValue-EmployeeSecurityRoleType-SuperUser: Super user` },\n      { value: EmployeeSecurityRoleType.Accountant, text: $localize`:@@EnumValue-EmployeeSecurityRoleType-Accountant: Accountant` },\n      { value: EmployeeSecurityRoleType.Admin, text: $localize`:@@EnumValue-EmployeeSecurityRoleType-Admin: Admin` }\n    ]  \n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"User Info\" i18n-title=\"@@CaptionHeader-UserInfo\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeUserInfoForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <form>\n    <dx-form #form id=\"form\"\n        [formData]=\"formEmployee\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formEmployeeData_UserInfo\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Active\" editorType=\"dxSelectBox\" [editorOptions]=\"editorOptions_Status\">\n                <dxo-label text=\"Status\" i18n-text=\"@@FieldCaption-Status\"></dxo-label>\n            </dxi-item>                \n            <dxi-item dataField=\"LoginInfo_AppLogin\" editorType=\"dxSelectBox\" [editorOptions]=\"editorOptions_AppLogin\">\n                <dxo-label text=\"Type\" i18n-text=\"@@FieldCaption-Type\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"LoginInfo_Username\" *ngIf=\"(formEmployee && formEmployee.LoginInfo_AppLogin) && !certificateLogin\">\n                <dxo-label text=\"Username\" i18n-text=\"@@FieldCaption-Username\"></dxo-label>\n                <dxi-validation-rule type=\"required\" message=\"Username is required\" i18n-message=\"@@ValidationText-Username-Required\" *ngIf=\"inEditMode\"></dxi-validation-rule>\n                <dxi-validation-rule *ngIf=\"inEditMode\" \n                type=\"async\" \n                [validationCallback]=\"usernameValidation\">\n                </dxi-validation-rule>                \n            </dxi-item>\n\n            <dxi-item dataField=\"EmployeeNumber\" [editorOptions]=\"editorOptions_EmployeeNumber\">\n                <dxo-label text=\"Employee no.\" i18n-text=\"@@FieldCaption-EmployeeNumber\"></dxo-label>                \n            </dxi-item>\n\n            <dxi-item dataField=\"Substitute\" editorType=\"dxSelectBox\" [editorOptions]=\"editorOptions_Substitute\">\n                <dxo-label text=\"Substitute\" i18n-text=\"@@FieldCaption-Substitute\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"ResourceColor\" [colSpan]=\"certificateLogin ? 2 : 1\" editorType=\"dxColorBox\">\n                <dxo-label text=\"Color\" i18n-text=\"@@FieldCaption-Color\"></dxo-label>\n            </dxi-item>                                   \n\n            <dxi-item dataField=\"Email\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n                <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label>     \n                <dxi-validation-rule type=\"required\" message=\"Email is required\" i18n-message=\"@@ValidationText-Email-Required\" *ngIf=\"inEditMode && (formEmployee && formEmployee.LoginInfo_AppLogin)\"></dxi-validation-rule>\n                <dxi-validation-rule type=\"email\" message=\"Email is invalid\" i18n-message=\"@@ValidationText-Email-Invalid\"></dxi-validation-rule>                           \n            </dxi-item> \n\n            <dxi-item dataField=\"RecognitionType\" editorType=\"dxSelectBox\" [editorOptions]=\"editorOptions_RecognitionType\">\n                <dxo-label text=\"Recognition type\" i18n-text=\"@@FieldCaption-RecognitionType\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"Pincode\" editorType=\"dxTextBox\" [editorOptions]=\"editorOptions_Pincode\">\n                <dxo-label text=\"Pin code\" i18n-text=\"@@FieldCaption-Pincode\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"QA_Consignment_Validation\" editorType=\"dxSelectBox\" [editorOptions]=\"editorOptions_QA_Consignment_Validation\">\n                <dxo-label text=\"Consignment validation\" i18n-text=\"@@FieldCaption-ConsignmentValidation\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"PickingValidation\" editorType=\"dxSelectBox\" [editorOptions]=\"editorOptions_Picking_Validation\">\n                <dxo-label text=\"Picking validation\" i18n-text=\"@@FieldCaption-PickingValidation\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"SecurityRole\" editorType=\"dxSelectBox\" [editorOptions]=\"editorOptions_SecurityRole\" *ngIf=\"(!isMasterOrganization && isOrganizationAdmin) || (isMasterOrganization && (isPureMasterUser || (isEmployeeMasterUser && hasSecurityRole_Administrator)))\">\n                <dxo-label text=\"Security Role\" i18n-text=\"@@FieldCaption-SecurityRole\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"VariantConfig5\" editorType=\"dxSelectBox\" [editorOptions]=\"editorOptions_MasterUser\" *ngIf=\"isMasterOrganization && (isPureMasterUser || (isEmployeeMasterUser && hasSecurityRole_Administrator))\">\n                <dxo-label text=\"Master User\" i18n-text=\"@@FieldCaption-MasterUser\"></dxo-label>\n            </dxi-item>  \n\n        </dxi-item>       \n        \n    </dx-form>\n    </form>\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect, untracked } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { Employee, Beacon } from \"mobicloud-core/api\";\nimport { EmployeeSecurityRoleType, MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { UsernameValidator } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-employee-checkin-info',\n  templateUrl: './employee-checkin-info.component.html',\n  styleUrls: ['./employee-checkin-info.component.scss']\n})\nexport class EmployeeCheckinInfoComponent implements OnInit, OnChanges {\n  @Input() employee: Employee|undefined;\n  formEmployee: Employee|undefined;\n  @Input() employee_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n  \n  @Output() employeeChanged = new EventEmitter<Employee>();  \n\n  employee_store: ODataStore|undefined;\n  \n  @ViewChild('form') form! :  DxFormComponent;\n\n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog, public usernameValidator: UsernameValidator) {  \n\n    this.resetCheckin = this.resetCheckin.bind(this);\n    this.createButtonOptions_ResetCheckin(true);  \n\n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){\n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = (valid || userProfile?.user_id == this.employee?.Id);\n        }, EmployeeSecurityRoleType.Admin);\n      }\n\n      untracked(() => {\n        this.initializeDataSources();\n      });\n\n    });\n  }\n\n  setEditorsEnabled(enabled:boolean){\n    this.form.instance?.getEditor('CheckinInfo_CheckedIn')?.option('readOnly', !enabled);\n    this.form.instance?.getEditor('CheckinInfo_CheckedInProject')?.option('readOnly', !enabled);\n    this.form.instance?.getEditor('Checkin_BeaconId')?.option('readOnly', !enabled);\n\n  }\n\n  \n  ngOnInit(): void {        \n    this.initializeDataSources();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['employee']?.currentValue && changes['employee'].currentValue != this.formEmployee) {\n      this.formEmployee = this.employee;      \n      this.onEmployeeChanged(this.formEmployee); \n    }    \n  }\n\n  initializeDataSources(){\n    this.employee_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Employee\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n\n    this.createBeaconDataSource();\n  }\n\n    //--- BeaconDataSource\n    beacon_ds: DataSource|undefined;\n\n    async createBeaconDataSource(){\n      this.beacon_ds = new DataSource({\n        store: new ODataStore({\n          url: this.cloudDataService.getMobiManagementODataUrl(\"Beacon\"),\n          withCredentials: true, \n          key: \"Id\",\n          keyType: \"Guid\",\n          version: 4,        \n        }),\n        requireTotalCount: true,\n        map: (dataItem) => {        \n          return Object.assign(new Beacon(), dataItem);\n        }            \n      });  \n    }  \n  \n\n  onEmployeeChanged(cust: Employee|undefined){    \n  }\n\n  getEmployee() {\n    if(this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Employee:Loading employee...`;\n      this.employee_store.byKey(this.employee.Id, { expand: this.employee_expands }).then(\n        (dataItem) => { \n          this.formEmployee = Object.assign(new Employee(), dataItem[0]);\n\n          if(this.formEmployee && this.formEmployee.CheckinInfo_CheckedIn === undefined) {\n            this.formEmployee.CheckinInfo_CheckedIn = false;\n          }\n          if(this.formEmployee && this.formEmployee.CheckinInfo_CheckedInProject === undefined) {\n            this.formEmployee.CheckinInfo_CheckedInProject = false;\n          }          \n          this.employee = this.formEmployee;\n          \n          this.onEmployeeChanged(this.employee);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.employeeChanged.emit(this.employee);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getEmployee();\n    this.inEditMode = false;\n    this.setEditorsEnabled(false);\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"CheckinInfo_CheckedIn\")?.focus();\n    this.inEditMode = true;\n    this.setEditorsEnabled(true);\n  }\n\n  onCancelEditClick(){\n    this.getEmployee();    \n    this.inEditMode = false;\n    this.setEditorsEnabled(true);\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveEmployee();\n    }\n  }\n\n  saveEmployee(){\n    if(this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-Employee:Updating employee...`;\n\n      let update_values: any = {     \n        CheckinInfo_CheckedIn: this.formEmployee?.CheckinInfo_CheckedIn,\n        CheckinInfo_Time: this.formEmployee?.CheckinInfo_Time,\n        CheckinInfo_Location: this.formEmployee?.CheckinInfo_Location,\n        CheckinInfo_CheckedInProject: this.formEmployee?.CheckinInfo_CheckedInProject,\n        CheckinInfo_ProjectTime: this.formEmployee?.CheckinInfo_ProjectTime,\n        CheckinInfo_ProjectId: this.formEmployee?.CheckinInfo_ProjectId,\n        CheckinInfo_ProjectLocation: this.formEmployee?.CheckinInfo_ProjectLocation,\n        Checkin_BeaconId: this.formEmployee?.Checkin_BeaconId,\n      };\n\n      this.employee_store.update(this.employee.Id, update_values)\n        .then(\n            (dataObj) => \n            { \n              this.getEmployee();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.setEditorsEnabled(false);\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Employee:Employee update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n  \n  buttonOptions_resetcheckin!:any;\n\n  createButtonOptions_ResetCheckin(enabled:boolean){\n    this.buttonOptions_resetcheckin = \n    {\n      text: $localize`:@@Button-Reset:Reset`,\n      type: \"default\",\n      disabled: !enabled,\n      icon: \"fa mobicloud_undo\",\n      onClick: this.resetCheckin\n    };\n  }\n\n  resetCheckin(){\n    if(this.employee?.Id && this.employee_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-ResettingCheckin:Resetting checkin...`;\n      const data:any = {\n        CheckinInfo_CheckedIn: null,\n        CheckinInfo_Time: null,\n        CheckinInfo_Location: null,\n        CheckinInfo_CheckedInProject: null,\n        CheckinInfo_ProjectTime: null,\n        CheckinInfo_ProjectId: null,\n        CheckinInfo_ProjectLocation: null\n      };      \n      this.employee_store.update(this.employee.Id, data).then(\n        (dataItem) => { \n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.getEmployee();\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );  \n    }  \n  }  \n\n  // *** DataSources ******************\n\n\n    boolean_ds: any[] = [  \n      { value: false, text: $localize`:@@FieldValue-No:No` }, \n      { value: true, text: $localize`:@@FieldValue-Yes:Yes` }\n    ]    \n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"Checkin Info\" i18n-title=\"@@CaptionHeader-CheckInInfo\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeCheckInfoForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <form>\n    <dx-form #form id=\"form\"\n        [formData]=\"formEmployee\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formEmployeeData_CheckInfo\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n\n            <dxi-item dataField=\"CheckinInfo_CheckedIn\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: this.boolean_ds, valueExpr: 'value', displayExpr: 'text', readOnly: true }\">\n                <dxo-label text=\"Checked In\" i18n-text=\"@@FieldCaption-CheckedIn\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"CheckinInfo_Time\"  editorType=\"dxDateBox\" [editorOptions]=\"{type: 'datetime', showClearButton:false, calendarOptions:{}}\">\n                <dxo-label text=\"Time\" i18n-text=\"@@FieldCaption-Time\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"CheckinInfo_Location\">\n                <dxo-label text=\"Location\" i18n-text=\"@@FieldCaption-Location\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"CheckinInfo_CheckedInProject\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: this.boolean_ds, valueExpr: 'value', displayExpr: 'text', readOnly: true }\">\n                <dxo-label text=\"Project\" i18n-text=\"@@FieldCaption-Project\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"CheckinInfo_ProjectTime\"  editorType=\"dxDateBox\" [editorOptions]=\"{type: 'datetime', showClearButton:false, calendarOptions:{}}\">\n                <dxo-label text=\"Time (Project)\" i18n-text=\"@@FieldCaption-Project-Time\"></dxo-label>\n            </dxi-item>                                  \n\n            <dxi-item dataField=\"CheckinInfo_ProjectId\">\n                <dxo-label text=\"Project id\" i18n-text=\"@@FieldCaption-ProjectId\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"CheckinInfo_ProjectLocation\">\n                <dxo-label text=\"Location (Project)\" i18n-text=\"@@FieldCaption-Project-Location\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"Checkin_BeaconId\" editorType=\"dxLookup\" [editorOptions]=\"{ dataSource: beacon_ds, readOnly: true, itemTemplate:'beacon_itemTemplate', fieldTemplate: 'beacon_fieldTemplate', valueExpr: 'Id', displayExpr: 'BeaconId', searchEnabled: true, searchExpr: ['BeaconId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Beacon\" i18n-text=\"@@FieldCaption-Beacon\"></dxo-label> \n            </dxi-item>   \n\n        </dxi-item>\n        <dxi-item itemType=\"button\" [buttonOptions]=\"buttonOptions_resetcheckin\">\n        </dxi-item>\n\n        <div *dxTemplate=\"let fieldData of 'beacon_itemTemplate'\">\n            {{fieldData?.BeaconId}}\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'beacon_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.BeaconId}} {{ fieldData?.Name ? ('(' + fieldData?.Name + ')') : ('') }}\n        </div>             \n    </dx-form>\n    </form>\n</mobicloud-group-box>","import { Component, OnInit, Input, Output, effect } from '@angular/core';\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport {Location} from '@angular/common'; \nimport {  map } from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\nimport notify from 'devextreme/ui/notify';\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { IToolbarItem } from \"mobicloud-core\";\n\nimport { MobiCloudDataService } from \"mobicloud-core/api\";;\nimport { Employee } from \"mobicloud-core/api\";;\n\n@Component({\n  selector: 'mobicloud-profile-page-employee',\n  templateUrl: './profile-page-employee.component.html',\n  styleUrls: ['./profile-page-employee.component.scss']\n})\nexport class ProfilePageEmployeeComponent implements OnInit {\n  employee_expands: string[]= [\"Department\",\"InventLocation\",\"Supervisor\",\"Image($select=StorageAccountName,BlobContainerName,BlobName)\"];\n\n  profileCaption: string = $localize`:@@MyProfileCaption-Text:My Profile`; \n  organizationCaption: string = $localize`:@@Organization-SubCaption-Text:Organization`;\n  organizationName: string | undefined;\n  accountNumberCaption: string = $localize`:@@AccountNumber-SubCaption-Text:Account no.`;\n  accountNumber: string | undefined;\n\n  toolbarItems: IToolbarItem[]|undefined;\n\n  employeeId: string | undefined;\n  @Output() employee: Employee | undefined;\n  selectedTabIndex: number = 0;\n\n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading ...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorCaption:  string = $localize`:@@CaptionHeader-Error:Error`;\n  @Input() errorText:  string|undefined= \"\";\n  @Input() enableRetryOnError = false;\n\n  private toolbarItemClick_Subscription: Subscription | undefined;\n\n  constructor(private route: ActivatedRoute, public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, public router : Router, private location: Location) {\n    this.isLoadingData = true;\n    this.hasErrors = false;\n    this.errorText = \"\";\n    this.loadingText = $localize`:@@LoadingProfile-Text:Loading profile ...`; \n\n    effect(() => {\n      const p = this.coreService.mobiUserProfile();\n      this.organizationName = (p?.user_partyname);\n      this.accountNumber = (p?.user_accountnumber);\n    });\n    effect(() => {\n      const user = this.coreService.user();\n      this.employeeId = user?.profile?.sub;\n    });\n  }\n\n  ngOnInit(): void {\n    if(this.employeeId){\n      this.getEmployee(this.employeeId);\n    }\n    else{\n      this.isLoadingData = false;\n      this.hasErrors = true;\n      this.errorText = \"Invalid profile\";\n    }\n    \n  }\n  \n  updateToolbarItems(){\n\n    this.toolbarItems = [];\n    this.toolbarItems.push({ caption: $localize`:@@Action-ResetProfile:Reset profile`, svg: \"mobicloud_delete\", click: \"EMPLOYEE_DETAILS_RESETPROFILE\", link: \"\", click_paramters: [] });\n    this.toolbarItems.push({ caption: $localize`:@@Action-ResetPasswords:Reset password`, svg: \"mobicloud_password_reset\", click: \"EMPLOYEE_DETAILS_RESETPASSWORD\", link: \"\", click_paramters: [] });\n    this.toolbarItems.push({ caption: $localize`:@@Action-Refresh:Refresh`, svg: \"mobicloud_refresh\", click: \"EMPLOYEE_DETAILS_REFRESH\", link: \"\", click_paramters: [] });\n  }  \n\n  async onToolbarItemClick(e: {name: string, parameters: any[]}){\n    if(e.name ==\"EMPLOYEE_DETAILS_REFRESH\"){\n      // console.log(\"EMPLOYEE_DETAILS_REFRESH\");\n      this.refreshEmployee();\n    } \n    else if(e.name ==\"EMPLOYEE_DETAILS_RESETPASSWORD\"){\n      // console.log(\"EMPLOYEE_DETAILS_RESETPASSWORD\");\n      this.resetPassword();\n    }    \n    else if(e.name ==\"EMPLOYEE_DETAILS_RESETPROFILE\"){\n      // console.log(\"EMPLOYEE_DETAILS_RESETPROFILE\");\n      this.resetProfile();\n    }   \n  }  \n  \n  refreshEmployee() {\n    if(this.employee?.Id)\n      this.getEmployee(this.employee.Id);\n  }  \n\n  getEmployee(employeeId: string) : Promise<void> {\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Loading-Text-Employee:Loading employee...`;\n\n    // console.log(\"getting employee: \" + employeeId);\n    return this.cloudDataService.getEntity<Employee>(\"employee\",employeeId,`?$expand=${this.employee_expands.toString()}`)\n    .then(response =>\n    {\n      response.subscribe((result) => {\n        let empl = Object.assign(new Employee(), result);\n        if(empl.Supervisor){\n          empl.Supervisor=Object.assign(new Employee(), empl.Supervisor);\n        }  \n        this.onEmployeeLoaded(empl);\n        this.isLoadingData = false;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;       \n      },\n      (err: any) => \n      {        \n        console.error(err);\n        this.isLoadingData = false;\n        this.hasErrors = true;\n        this.errorText = err;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;\n        this.onEmployeeLoaded(undefined);        \n      }\n      );         \n      \n    }); \n  }\n\n  resetEmployeePassword(employeeId: string) : Promise<void> {\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Loading-Text-ResettingPassword:Resetting password...`;\n\n    // console.log(\"getting employee: \" + employeeId);\n    return this.cloudDataService.getEntity<Employee>(\"employee\",employeeId,`/ResetPassword()?$expand=${this.employee_expands.toString()}`)\n    .then(response =>\n    {\n      response.subscribe((result) => {\n        let empl = Object.assign(new Employee(), result);        \n        if(empl.Supervisor){\n          empl.Supervisor=Object.assign(new Employee(), empl.Supervisor);\n        }  \n        this.onEmployeeLoaded(empl);\n        this.isLoadingData = false;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;    \n        notify($localize`:@@Notify-Text-PasswordResetSuccess-Employee:Password reset complete. Email has been sent to employee`, \"success\", 5000);   \n      },\n      (err: any) => \n      {        \n        console.error(err);\n        this.isLoadingData = false;\n        this.hasErrors = true;\n        this.errorText = err;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;\n        this.onEmployeeLoaded(undefined); \n        notify($localize`:@@Notify-Text-PasswordResetError-Employee:Password reset failed` + ': ' + err, \"error\", 5000);          \n      }\n      );         \n      \n    }); \n  }\n\n  resetEmployeeProfile(employeeId: string) : Promise<void> {\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Loading-Text-ResettingProfile:Resetting profile...`;\n\n    // console.log(\"getting employee: \" + employeeId);\n    return this.cloudDataService.getEntity<Employee>(\"employee\",employeeId,`/ResetProfile()?$expand=${this.employee_expands.toString()}`)\n    .then(response =>\n    {\n      response.subscribe((result) => {\n        let empl = Object.assign(new Employee(), result);        \n        if(empl.Supervisor){\n          empl.Supervisor=Object.assign(new Employee(), empl.Supervisor);\n        }  \n        this.onEmployeeLoaded(empl);\n        this.isLoadingData = false;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;    \n        notify($localize`:@@Notify-Text-ProfileResetSuccess-Employee:Profile reset complete`, \"success\", 5000);   \n      },\n      (err: any) => \n      {        \n        console.error(err);\n        this.isLoadingData = false;\n        this.hasErrors = true;\n        this.errorText = err;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;\n        this.onEmployeeLoaded(undefined); \n        notify($localize`:@@Notify-Text-ProfileResetError-Employee:Profile reset failed` + ': ' + err, \"error\", 5000);          \n      }\n      );         \n      \n    }); \n  }\n\n  onEmployeeLoaded(empl: Employee | undefined){\n    this.employee = empl;\n    // console.log(this.employee);\n    if(this.employee){\n      this.updateToolbarItems();\n    }\n    else{\n      this.hasErrors = true;\n      this.errorText = $localize`:@@EmployeeNotFound-Text:Employee was not found`;\n      this.toolbarItems = [];\n    }\n    \n  }\n\n  employeeChanged(empl: Employee | undefined) {  \n    this.onEmployeeLoaded(empl) ;\n  } \n\n  resetPassword() {  \n    // console.log(\"Resetting password\", this.employee);\n    if(this.employee?.Id)\n      this.resetEmployeePassword(this.employee.Id);\n  } \n\n  resetProfile() {  \n    // console.log(\"Resetting password\", this.employee);\n    if(this.employee?.Id)\n      this.resetEmployeeProfile(this.employee.Id);\n  } \n\n  ngOnDestroy() {\n    if (this.toolbarItemClick_Subscription) {\n      this.toolbarItemClick_Subscription.unsubscribe();\n      this.toolbarItemClick_Subscription = undefined;\n    }    \n  }\n\n}\n","<div class=\"profile-container\">    \n    <mobicloud-content-toolbar [toobarEnabled]=\"true\" toobarTitleIcon=\"mobicloud_profile\" [toobarTitle]=\"profileCaption\" [toolbarItems]=\"toolbarItems\" (ToolbarItemClick)=\"onToolbarItemClick($event)\"></mobicloud-content-toolbar>\n    <div class=\"page-subheader\">\n        <div class=\"page-subheader-item\">\n                <span class=\"page-subheader-caption\">{{organizationCaption}}:</span>\n                <span class=\"page-subheader-text\">{{organizationName}}</span>\n        </div>                     \n        <!-- <div class=\"page-subheader-item\">\n                <span class=\"page-subheader-caption\">Customer:</span>\n                <span class=\"page-subheader-text\">Visionware ApS</span>\n        </div>                             -->\n        <div class=\"page-subheader-item\">\n                <span class=\"page-subheader-caption\">{{accountNumberCaption}}:</span>\n                <span class=\"page-subheader-text\">{{accountNumber}}</span>\n        </div> \n    </div>\n    <mobicloud-loading-container [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" [hasErrors]=\"hasErrors\" [errorCaption]=\"errorCaption\" [errorText]=\"errorText\" [enableRetryOnError]=\"enableRetryOnError\" [loadingHeightPxSubstract]=\"146\">\n        <div class=\"inner-content-fullheight\">\n          <dx-tab-panel [selectedIndex]=\"selectedTabIndex\" [loop]=\"false\" [animationEnabled]=\"true\" [swipeEnabled]=\"false\" [showNavButtons]=\"true\" [focusStateEnabled]=\"false\" height=\"100%\">\n            <dxi-item title=\"Details\" i18n-title=\"@@TabHeader-Details\">\n                <div class=\"tabpanel-item\">\n    \n                    <div class=\"employeebox-card-container flex flex-row gap-8\">                    \n                        <div class=\"employeebox-card\">\n                                <div class=\"employeebox-card-inner\">\n                                        <mobicloud-employee-profile class=\"employeebox-card\" [employee]=\"employee\" [employee_expands]=\"employee_expands\" [width]=\"460\" [contentheight]=\"340\" (employeeChanged)=\"employeeChanged($event)\" *ngIf=\"employee\"></mobicloud-employee-profile>                        \n                                </div>\n                                <div class=\"employeebox-card-inner\">\n                                        <mobicloud-employee-user-info class=\"employeebox-card\" [employee]=\"employee\" [employee_expands]=\"employee_expands\" [width]=\"460\" [contentheight]=\"340\" (employeeChanged)=\"employeeChanged($event)\" *ngIf=\"employee\"></mobicloud-employee-user-info>\n                                </div>\n                        </div>\n                        <div class=\"employeebox-card\">\n                                <div class=\"employeebox-card-inner\">\n                                        <mobicloud-employee-profile-image class=\"employeebox-card\" [employee]=\"employee\" [employee_expands]=\"employee_expands\" [width]=\"460\" [contentheight]=\"340\" *ngIf=\"employee\"></mobicloud-employee-profile-image>\n                                </div>                    \n                                <div class=\"employeebox-card-inner\">\n                                        <mobicloud-employee-address class=\"employeebox-card\" [employee]=\"employee\" [employee_expands]=\"employee_expands\" [width]=\"460\" [contentheight]=\"340\" (employeeChanged)=\"employeeChanged($event)\" *ngIf=\"employee\"></mobicloud-employee-address>        \n                                </div>                    \n                        </div>\n                        <div class=\"employeebox-card\">\n                                <div class=\"employeebox-card-inner\">\n                                        <mobicloud-employee-checkin-info class=\"employeebox-card\" [employee]=\"employee\" [employee_expands]=\"employee_expands\" [width]=\"460\" [contentheight]=\"340\" (employeeChanged)=\"employeeChanged($event)\" *ngIf=\"employee\"></mobicloud-employee-checkin-info>\n                                </div>\n                        </div>                        \n                    </div>\n    \n                </div>\n            </dxi-item>     \n          </dx-tab-panel>\n        </div>\n             \n    </mobicloud-loading-container>    \n\n</div>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Country } from \"mobicloud-core\";\nimport { CustomerUser } from \"mobicloud-core/api\";\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-customer-user-address',\n  templateUrl: './customer-user-address.component.html',\n  styleUrls: ['./customer-user-address.component.scss']\n})\nexport class CustomerUserAddressComponent implements OnInit, OnChanges {\n  @Input() user: CustomerUser|undefined;\n  formUser: CustomerUser|undefined;\n  @Input() user_expands: string[] = ['Customer'];\n  @Input() editAllowed:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() userChanged = new EventEmitter<CustomerUser>();  \n\n  user_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {     \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = (valid || userProfile?.user_id == this.user?.Id);\n        });\n      }\n    });\n  }\n\n  ngOnInit(): void {    \n    this.user_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"CustomerUser\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n\n    this.createCountryDataSource();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['user']?.currentValue && changes['user'].currentValue != this.formUser) {\n      this.formUser = this.user;      \n      this.onUserChanged(this.formUser); \n    }    \n  }\n\n  onUserChanged(cust: CustomerUser|undefined){\n    this._countryId = this.formUser?.Country?.toString();\n    \n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }\n  }\n\n  getUser() {\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-CustomerUser:Loading user...`;\n      this.user_store.byKey(this.user.Id, { expand: this.user_expands }).then(\n        (dataItem) => { \n          this.formUser = Object.assign(new CustomerUser(), dataItem[0]);\n          this.user = this.formUser;\n          \n          this.onUserChanged(this.user);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.userChanged.emit(this.user);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getUser();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Street\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveUser();\n    }\n  }\n\n  saveUser(){\n    if(this.user?.Id && this.user_store){\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Updating-Text-CustomerUser:Updating user...`;\n      const data:any = {\n          Street: this.formUser?.Street,\n          ZipCode: this.formUser?.ZipCode,\n          City: this.formUser?.City,\n          Country: this._countryId,\n          State: this.formUser?.State,\n        Phone: this.formUser?.Phone\n      };\n    this.user_store.update(this.user.Id, data)\n      .then(\n          (dataObj) => \n          { \n            this.getUser();\n            this.isLoadingData = false;\n            this.inEditMode = false;\n            this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          },\n          (error) => \n          { \n            console.log(error);\n            this.isLoadingData = false;\n            this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            MessageBox.showError({title: $localize`:@@Failed-Text-CustomerUser:User update failed`, message: error },this.matDialog)\n            .subscribe( result => \n              {\n                // console.log(`Dialog result : ${result}`);\n              });\n          }\n      );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getUser();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>; \n\n  //--- CountryDataSource\n\n  country_ds: DataSource|undefined;\n  _countryId: string | undefined = undefined;\n  _selectedCountry: Country | undefined = undefined;\n  _countryOpened: boolean|undefined = false;\n\n  createCountryDataSource(){\n    this.country_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Country\"),\n        withCredentials: true, \n        key: \"Code2\",\n        keyType: \"String\",\n        // key: \"Id\",\n        // keyType: \"Int32\",\n        version: 4,        \n      }),\n      sort: [\n          { selector: \"Name\", desc: false }\n      ],\n      filter: [ \"Enabled\", \"=\", true ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Country(), dataItem);\n      }            \n    });  \n  }\n\n  countryChanged(args:any) {\n    this._selectedCountry= args.selectedRowsData?.length > 0 ? args.selectedRowsData[0] :  undefined;\n    this._countryId = this._selectedCountry?.Code2;\n    if(this.formUser)\n      this.formUser.Country = this._countryId;\n    \n  }\n  \n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"Address\" i18n-title=\"@@CaptionHeader-Address\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeAddressForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formUser\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formUserData_Address\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Street\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n                <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"ZipCode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n                <dxo-label text=\"Zip code\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n                <dxo-label text=\"City\"  i18n-text=\"@@FieldCaption-City\"></dxo-label>\n            </dxi-item>\n            \n            <dxi-item dataField=\"Country\">\n                <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label>  \n                <div *dxTemplate=\"let data of 'content'\">\n                    <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"!inEditMode\" fieldTemplate=\"fieldTemplate\"\n                        [dataSource]=\"country_ds\"                   \n                        [(value)]=\"_countryId\"\n                        valueExpr=\"Code2\"                \n                        displayExpr=\"LocalName\"                                    \n                        [(opened)]=\"_countryOpened\"> \n                        <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n                    </dxo-drop-down-options>                                       \n                        <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n                            [dataSource]=\"country_ds\"\n                            [(selectedRowKeys)]=\"_countryId\"\n                            (onSelectionChanged)=\"countryChanged($event)\"\n                            (onRowClick)=\"_countryOpened = false\">\n                            <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n                            <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n                            <dxo-paging [enabled]=\"false\"></dxo-paging>\n                            <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n                                <img alt=\"\"src=\"{{cloudDataService.FlagUrl}}/{{data.value}}-32.png\"/>\n                            </div>\n                        </dx-data-grid>\n                        <div *dxTemplate=\"let data of 'fieldTemplate'\">\n                            <div class=\"country-edit-item\">\n                                <div class=\"country-edit-image\"><img alt=\"\"src=\"{{cloudDataService.FlagUrl}}/{{_selectedCountry?.Code2}}-32.png\" *ngIf=\"_selectedCountry?.Code2\"></div>\n                                <div class=\"country-edit-text\">\n                                    <dx-text-box stylingMode=\"filled\" [value]=\"_selectedCountry?.LocalName\" [readOnly]=\"true\"></dx-text-box>\n                                </div>\n                            </div>\n                        </div>\n                    </dx-drop-down-box>\n                </div>   \n                <!-- <dxi-validation-rule type=\"required\" message=\"Country is required\"></dxi-validation-rule>    -->\n            </dxi-item> \n                        \n            <dxi-item dataField=\"State\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level1'} }\">\n                <dxo-label text=\"State\" i18n-text=\"@@FieldCaption-State\"></dxo-label>                \n            </dxi-item>\n            <dxi-item dataField=\"Phone\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n                <dxo-label text=\"Phone\" i18n-text=\"@@FieldCaption-Phone\"></dxo-label>                \n            </dxi-item>\n        </dxi-item>       \n        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { CustomerUser } from \"mobicloud-core/api\";\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { UsernameValidator } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-customer-user-details',\n  templateUrl: './customer-user-details.component.html',\n  styleUrls: ['./customer-user-details.component.scss']\n})\nexport class CustomerUserDetailsComponent implements OnInit, OnChanges {\n  @Input() user: CustomerUser|undefined;\n  formUser: CustomerUser|undefined;\n  @Input() user_expands: string[] = ['Customer'];\n  @Input() editAllowed:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() userChanged = new EventEmitter<CustomerUser>();  \n\n  user_store: ODataStore|undefined;\n\n  \n  @ViewChild('form') form! :  DxFormComponent;\n\n\n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog, public usernameValidator: UsernameValidator) {  \n    this.usernameValidation = this.usernameValidation.bind(this);\n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = (valid || userProfile?.user_id == this.user?.Id);\n        });\n      }\n    });\n  }\n\n  ngOnInit(): void {    \n    this.user_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"CustomerUser\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['user']?.currentValue && changes['user'].currentValue != this.formUser) {\n      this.formUser = this.user;      \n      this.onUserChanged(this.formUser); \n    }    \n  }\n\n  onUserChanged(cust: CustomerUser|undefined){    \n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }\n  }\n\n  getUser() {\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-CustomerUser:Loading user...`;\n      this.user_store.byKey(this.user.Id, { expand: this.user_expands }).then(\n        (dataItem) => { \n          this.formUser = Object.assign(new CustomerUser(), dataItem[0]);\n          this.user = this.formUser;\n          \n          this.onUserChanged(this.user);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.userChanged.emit(this.user);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getUser();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Active\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveUser();\n    }\n  }\n\n  saveUser(){\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-CustomerUser:Updating user...`;\n      let update_values: any = {    \n        Email: this.formUser?.Email,\n        ResourceColor: this.formUser?.ResourceColor\n      };\n      if(this.fullEditAllowed){\n        update_values.Active = this.formUser?.Active;\n        update_values.Substitute = this.formUser?.Substitute;\n      }\n      update_values.Username = this.formUser?.Username;\n\n      this.user_store.update(this.user.Id, update_values)\n        .then(\n            (dataObj) => \n            { \n              this.getUser();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-CustomerUser:User update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getUser();    \n    this.inEditMode = false;\n  }\n  \n\n  usernameValidation(params: any) : Promise<void>{\n    if(this.user?.Customer?.Id)\n      return this.usernameValidator.usernameValidation_customer_devextreme(this.user.Customer.Id, params?.value, this.user.Id);\n    return Promise.resolve();\n  }  \n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>; \n    status_ds: any[] = [  \n      { id: false, description: $localize`:@@@FieldValue-InActive:Inactive` }, \n      { id: true, description: $localize`:@@@FieldValue-Active:Active` }\n    ]\n\n    loginType_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-AppLogin-Regular:Regular` }, \n      { id: true, description: $localize`:@@FieldValue-AppLogin-AppUser: App user` }\n    ]  \n\n    boolean_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-No:No` }, \n      { id: true, description: $localize`:@@FieldValue-Yes:Yes` }\n    ]    \n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"User Info\" i18n-title=\"@@CaptionHeader-UserInfo\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeUserInfoForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n    \n    <form>\n    <dx-form #form id=\"form\"\n        [formData]=\"formUser\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formUserData_UserInfo\">\n        \n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Active\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: status_ds, valueExpr: 'id', displayExpr: 'description', readOnly: !fullEditAllowed }\">\n                <dxo-label text=\"Status\" i18n-text=\"@@FieldCaption-Status\"></dxo-label>\n            </dxi-item>\n\n\n            <dxi-item dataField=\"Username\">\n                <dxo-label text=\"Username\" i18n-text=\"@@FieldCaption-Username\"></dxo-label>\n                <dxi-validation-rule type=\"required\" message=\"Username is required\" i18n-message=\"@@ValidationText-Username-Required\" *ngIf=\"inEditMode\"></dxi-validation-rule>\n                <dxi-validation-rule *ngIf=\"inEditMode\" \n                type=\"async\" \n                [validationCallback]=\"usernameValidation\">\n                </dxi-validation-rule>                \n            </dxi-item>\n\n            <dxi-item dataField=\"Substitute\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: boolean_ds, valueExpr: 'id', displayExpr: 'description', readOnly: !fullEditAllowed }\">\n                <dxo-label text=\"Substitute\" i18n-text=\"@@FieldCaption-Substitute\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"ResourceColor\"  editorType=\"dxColorBox\">\n                <dxo-label text=\"Color\" i18n-text=\"@@FieldCaption-Color\"></dxo-label>\n            </dxi-item>                                   \n\n            <dxi-item dataField=\"Email\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n                <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label>     \n                <dxi-validation-rule type=\"required\" message=\"Email is required\" i18n-message=\"@@ValidationText-Email-Required\"></dxi-validation-rule>\n                <dxi-validation-rule type=\"email\" message=\"Email is invalid\" i18n-message=\"@@ValidationText-Email-Invalid\"></dxi-validation-rule>                           \n            </dxi-item> \n\n        </dxi-item>       \n        \n    </dx-form>\n    </form>\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Country } from \"mobicloud-core\";\nimport { CustomerUser,GenderType, Location } from \"mobicloud-core/api\";\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-customer-user-general',\n  templateUrl: './customer-user-general.component.html',\n  styleUrls: ['./customer-user-general.component.scss']\n})\nexport class CustomerUserGeneralComponent implements OnInit, OnChanges {\n  @Input() user: CustomerUser|undefined;\n  formUser: CustomerUser|undefined;\n  @Input() user_expands: string[] = ['Customer'];\n  @Input() editAllowed:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() userChanged = new EventEmitter<CustomerUser>();  \n\n  user_store: ODataStore|undefined;\n\n  @ViewChild('form') form! :  DxFormComponent;\n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {  \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = (valid || userProfile?.user_id == this.user?.Id);\n        });\n      }\n    });   \n  }\n\n  ngOnInit(): void {\n    this.initializeDataSources();\n\n  }\n\n  initializeDataSources(){\n    this.user_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"CustomerUser\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n\n    this.createCountryDataSource();\n    this.createLocationDataSource();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['user']?.currentValue && changes['user'].currentValue != this.formUser) {\n      this.formUser = this.user;      \n      this.onUserChanged(this.formUser); \n    }    \n  }\n\n  onUserChanged(cust: CustomerUser|undefined){\n    this._countryId = this.formUser?.Country?.toString();\n    this._locationId = this.formUser?.LocationId;\n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }\n  }\n\n  getUser() {\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-CustomerUser:Loading user...`;\n      this.user_store.byKey(this.user.Id, { expand: this.user_expands }).then(\n        (dataItem) => { \n          this.formUser = Object.assign(new CustomerUser(), dataItem[0]);\n          this.user = this.formUser;\n          \n          this.onUserChanged(this.user);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.userChanged.emit(this.user);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getUser();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"FirstName\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveUser();\n    }\n  }\n\n  saveUser(){\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-CustomerUser:Updating user...`;\n      \n      let update_values: any = {    \n        FirstName: this.formUser?.FirstName,\n        LastName: this.formUser?.LastName,        \n        Gender: this.formUser?.Gender,\n        Initials: this.formUser?.Initials\n      };\n      if(this.fullEditAllowed){\n        update_values.LocationId = this.formUser?.LocationId;\n      }\n      \n      this.user_store.update(this.user.Id, update_values)\n        .then(\n            (dataObj) => \n            { \n              this.getUser();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-CustomerUser:User update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getUser();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>;\n    //--- Gender\n  genderType_ds: any[] = [  \n    { id: GenderType.Unknown, description: $localize`:@@EnumValue-Unknown:Unknown` }, \n    { id: GenderType.Male, description: $localize`:@@EnumValue-Male:Male` },  \n    { id: GenderType.Female, description: $localize`:@@EnumValue-Female:Female` },  \n    { id: GenderType.Other, description: $localize`:@@EnumValue-Other:Other` }\n  ]\n\n  //--- CountryDataSource\n\n  country_ds: DataSource|undefined;\n  _countryId: string | undefined = undefined;\n  _selectedCountry: Country | undefined = undefined;\n  _countryOpened: boolean | undefined = false;\n\n  createCountryDataSource(){\n    this.country_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Country\"),\n        withCredentials: true, \n        key: \"Code2\",\n        keyType: \"String\",\n        // key: \"Id\",\n        // keyType: \"Int32\",\n        version: 4,        \n      }),\n      sort: [\n          { selector: \"Name\", desc: false }\n      ],\n      filter: [ \"Enabled\", \"=\", true ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Country(), dataItem);\n      }            \n    });  \n  }\n\n  countryChanged(args:any) {\n    this._selectedCountry= args.selectedRowsData?.length > 0 ? args.selectedRowsData[0] : undefined;\n    this._countryId = this._selectedCountry?.Code2;\n    if(this.formUser)\n      this.formUser.Country = this._countryId;    \n  }\n  \n  \n\n  //--- LocationDataSource\n\n  location_ds: DataSource|undefined;\n  _locationId: any = undefined;\n  _locationOpened: boolean|undefined = false;\n\n  createLocationDataSource(){\n    this.location_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Location\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {    \n        var loc = Object.assign(new Location(), dataItem);\n        // console.log(\"Location:\", loc);    \n        return loc;\n      }            \n    });  \n  }\n\n  locationChanged(args:any) {\n    this._locationId = args.selectedRowsData?.length > 0 ? args.selectedRowsData[0]?.Id : null;\n    if(this.formUser)\n      this.formUser.LocationId = this._locationId;\n  }  \n\n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"Profile\" i18n-title=\"@@CaptionHeader-Profile\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeProfileForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formUser\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formUserData_Profile\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"FirstName\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n                <dxo-label text=\"First name\" i18n-text=\"@@FieldCaption-FirstName\"></dxo-label>        \n                <dxi-validation-rule type=\"required\" message=\"First name is required\" i18n-message=\"@@ValidationText-FirstName-Required\"></dxi-validation-rule>        \n            </dxi-item>\n            <dxi-item dataField=\"LastName\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'family-name'} }\">\n                <dxo-label text=\"Last name\" i18n-text=\"@@FieldCaption-LastName\"></dxo-label>   \n                <dxi-validation-rule type=\"required\" message=\"Last name is required\" i18n-message=\"@@ValidationText-LastName-Required\"></dxi-validation-rule>             \n            </dxi-item>\n                        \n            <dxi-item dataField=\"Initials\">\n                <dxo-label text=\"Initials\" i18n-text=\"@@FieldCaption-Initials\"></dxo-label>                \n            </dxi-item>\n\n            <dxi-item dataField=\"Gender\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: genderType_ds, valueExpr: 'id', displayExpr: 'description' }\">\n                <dxo-label text=\"Gender\" i18n-text=\"@@FieldCaption-Gender\"></dxo-label>\n            </dxi-item> \n\n            <dxi-item dataField=\"LocationId\" #customer editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'location_itemTemplate', fieldTemplate: 'location_fieldTemplate', dataSource: location_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['Name'], showClearButton: true }\">\n                <dxo-label text=\"Location\" i18n-text=\"@@FieldCaption-Location\"></dxo-label>\n            </dxi-item>                        \n\n        </dxi-item>       \n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'location_itemTemplate'\">\n            {{ item?.Name }}\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'location_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}}\n        </div> \n    </dx-form>\n</mobicloud-group-box>","import { Component, OnInit, Input, ViewChild, effect } from '@angular/core';\n\nimport { CustomerUser,StorageAccountImage } from \"mobicloud-core/api\";\nimport { getProfileImageUrl } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { ImageEditComponent } from \"../../image-edit/image-edit.component\";\n\n@Component({\n  selector: 'mobicloud-customer-user-image',\n  templateUrl: './customer-user-image.component.html',\n  styleUrls: ['./customer-user-image.component.scss']\n})\nexport class CustomerUserImageComponent implements OnInit {\n  @ViewChild('imageEdit') imageEdit! :  ImageEditComponent;\n  @Input() editAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n\n  @Input() width!:  number;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@UploadingLoading-Image-Text:Uploading image...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n  @Input() user: CustomerUser|undefined;\n  @Input() user_expands: string[]|undefined;\n\n  uploadUrl:  string | undefined = undefined;\n  isUploaded: boolean | undefined = false;\n  \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService) {    \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = (valid || userProfile?.user_id == this.user?.Id);\n        });\n      }\n    }); \n  }\n\n  ngOnInit(): void {\n    this.uploadUrl = this.cloudDataService.getMobiManagementODataUrl(`customeruser(${this.user?.Id})/UploadProfileImage`);\n  }\n\n  getProfileImageUrl() : string | undefined{\n    return getProfileImageUrl(this.user?.Image);\n  }\n\n  onEditClick(){\n    this.inEditMode = true;\n  }\n\n  onCancelEditClick(){\n    this.inEditMode = false;\n  }\n\n  onSaveClick(){\n    this.imageEdit.upload();\n  }\n\n  onRetryClick(){\n    this.imageEdit.upload();\n  } \n\n  isUploadedChange(success:boolean){\n    this.coreService.getProfileDetails();\n  }\n}\n","<mobicloud-group-box title=\"Profile Image\" i18n-title=\"@@CaptionHeader-ProfileImage\" [width]=\"[width]\" [contentheight]=\"0\" class=\"customerUserProfileImageForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <mobicloud-image-edit #imageEdit id=\"imageEdit\" [uploadUrl]=\"uploadUrl\" [imageUrl]=\"getProfileImageUrl()\" [width]=\"width - 20\" \n  [(inEditMode)]=\"inEditMode\" [(isUploading)]=\"isLoadingData\" [(isUploaded)]=\"isUploaded\" [(uploadError)]=\"hasErrors\" [(uploadErrorMessage)]=\"errorText\" (isUploadedChange)=\"isUploadedChange($event)\"></mobicloud-image-edit>\n\n  <!-- <p>url: {{uploadUrl}}</p>\n  <p>inEditMode: {{inEditMode}}</p>\n  <p>isLoadingData: {{isLoadingData}}</p>\n  <p>isUploaded: {{isUploaded}}</p>\n  <p>hasErrors: {{hasErrors}}</p>\n  <p>errorText: {{errorText}}</p>   -->\n</mobicloud-group-box>","import { Component, OnInit, Input, Output, effect } from '@angular/core';\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport {Location} from '@angular/common'; \nimport {  map } from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\nimport notify from 'devextreme/ui/notify';\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { IToolbarItem } from \"mobicloud-core\";\n\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { Customer, CustomerUser } from \"mobicloud-core/api\";\n\n\n@Component({\n  selector: 'mobicloud-profile-page-customer-user',\n  templateUrl: './profile-page-customer-user.component.html',\n  styleUrls: ['./profile-page-customer-user.component.scss']\n})\nexport class ProfilePageCustomerUserComponent implements OnInit {\n  user_expands: string[]= [\"Customer\", \"Image\"];\n\n  profileCaption: string = $localize`:@@MyProfileCaption-Text:My Profile`; \n  organizationCaption: string = $localize`:@@Organization-SubCaption-Text:Organization`;\n  organizationName: string | undefined;\n  customerCaption: string = $localize`:@@Customer-SubCaption-Text:Customer`;\n  customerName: string | undefined;  \n  accountNumberCaption: string = $localize`:@@AccountNumber-SubCaption-Text:Account no.`;\n  accountNumber: string | undefined;\n\n  toolbarItems: IToolbarItem[]|undefined;\n\n  userId: string | undefined;\n  @Output() user: CustomerUser | undefined;\n  selectedTabIndex: number = 0;\n\n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading ...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorCaption:  string = $localize`:@@CaptionHeader-Error:Error`;\n  @Input() errorText:  string|undefined= \"\";\n  @Input() enableRetryOnError = false;\n\n  private toolbarItemClick_Subscription: Subscription | undefined;\n\n  constructor(private route: ActivatedRoute, public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, public router : Router, private location: Location) {\n    this.isLoadingData = true;\n    this.hasErrors = false;\n    this.errorText = \"\";\n    this.loadingText = $localize`:@@LoadingProfile-Text:Loading profile ...`; \n\n    effect(() => {\n      const p = this.coreService.mobiUserProfile();\n      this.organizationName = (p?.user_partyname);\n      this.customerName = (p?.user_customer_name);\n      this.accountNumber = (p?.user_customer_accountnumber);\n    });\n    effect(() => {\n      const user = this.coreService.user();\n      this.userId = user?.profile?.sub;\n    });\n  }\n\n  ngOnInit(): void {\n    if(this.userId){\n      this.getUser(this.userId);\n    }\n    else{\n      this.isLoadingData = false;\n      this.hasErrors = true;\n      this.errorText = \"Invalid profile\";\n    }\n    \n  }\n  \n  updateToolbarItems(){\n\n    this.toolbarItems = [];\n    this.toolbarItems.push({ caption: $localize`:@@Action-ResetPasswords:Reset password`, svg: \"mobicloud_password_reset\", click: \"CUSTOMERUSER_DETAILS_RESETPASSWORD\", link: \"\", click_paramters: [] });\n    this.toolbarItems.push({ caption: $localize`:@@Action-Refresh:Refresh`, svg: \"mobicloud_refresh\", click: \"CUSTOMERUSER_DETAILS_REFRESH\", link: \"\", click_paramters: [] });\n  }  \n\n  async onToolbarItemClick(e: {name: string, parameters: any[]}){\n    if(e.name ==\"CUSTOMERUSER_DETAILS_REFRESH\"){\n      this.refreshUser();\n    } \n    else if(e.name ==\"CUSTOMERUSER_DETAILS_RESETPASSWORD\"){\n      if(this.user?.Id)\n        this.resetUserPassword(this.user.Id);\n    }      \n  }  \n  \n  refreshUser() {\n    if(this.user?.Id)\n      this.getUser(this.user.Id);\n  }  \n\n  getUser(userId: string) : Promise<void> {\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Loading-Text-CustomerUser:Loading user...`;\n\n    // console.log(\"getting user: \" + userId);\n    return this.cloudDataService.getEntity<CustomerUser>(\"CustomerUser\",userId,`?$expand=${this.user_expands.toString()}`)\n    .then(response =>\n    {\n      response.subscribe((result) => {\n        let usr = Object.assign(new CustomerUser(), result);\n        if(usr.Customer){\n          usr.Customer=Object.assign(new Customer(), usr.Customer);\n        }  \n        this.onUserLoaded(usr);\n        this.isLoadingData = false;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;\n        this.hasErrors = false;       \n      },\n      (err: any) => \n      {        \n        console.error(err);\n        this.isLoadingData = false;\n        this.hasErrors = true;\n        this.errorText = err;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;\n        this.onUserLoaded(undefined);        \n      }\n      );         \n      \n    }); \n  }\n\n  resetUserPassword(userId: string) : Promise<void> {\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Loading-Text-ResettingPassword:Resetting password...`;\n\n    return this.cloudDataService.getEntity<CustomerUser>(\"customeruser\",userId,`/ResetPassword()?$expand=${this.user_expands.toString()}`)\n    .then(response =>\n    {\n      response.subscribe((result) => {\n        let empl = Object.assign(new CustomerUser(), result);        \n        if(empl.Customer){\n          empl.Customer=Object.assign(new Customer(), empl.Customer);\n        }  \n        this.onUserLoaded(empl);\n        this.isLoadingData = false;\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;    \n        notify($localize`:@@Notify-Text-PasswordResetSuccess-CustomerUser:Password reset complete. Email has been sent to user`, \"success\", 5000);   \n      },\n      (err: any) => \n      {        \n        console.error(err);\n        this.isLoadingData = false;\n        this.hasErrors = true;\n        this.errorText = err?.message?.value ?? (err?.message ?? err);\n        this.loadingText = $localize`:@@Processing-Text:Processing...`;\n        notify($localize`:@@Notify-Text-PasswordResetError-CustomerUser:Password reset failed` + ': ' + this.errorText, \"error\", 5000);          \n      }\n      );         \n      \n    }); \n  }\n\n  onUserLoaded(usr: CustomerUser | undefined){\n    this.user = usr;\n    if(this.user){\n      this.updateToolbarItems();\n    }\n    else{\n      this.hasErrors = true;\n      this.errorText = $localize`:@@CustomerUserNotFound-Text:User was not found`;\n      this.toolbarItems = [];\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.toolbarItemClick_Subscription) {\n      this.toolbarItemClick_Subscription.unsubscribe();\n      this.toolbarItemClick_Subscription =  undefined;\n    }    \n  }\n\n}\n","<div class=\"profile-container\">    \n    <mobicloud-content-toolbar [toobarEnabled]=\"true\" toobarTitleIcon=\"mobicloud_profile\" [toobarTitle]=\"profileCaption\" [toolbarItems]=\"toolbarItems\" (ToolbarItemClick)=\"onToolbarItemClick($event)\"></mobicloud-content-toolbar>\n    <div class=\"page-subheader\">\n        <div class=\"page-subheader-item\">\n                <span class=\"page-subheader-caption\">{{organizationCaption}}:</span>\n                <span class=\"page-subheader-text\">{{organizationName}}</span>\n        </div>                     \n        <div class=\"page-subheader-item\">\n                <span class=\"page-subheader-caption\">{{customerCaption}}:</span>\n                <span class=\"page-subheader-text\">{{customerName}}</span>\n        </div>                            \n        <div class=\"page-subheader-item\">\n                <span class=\"page-subheader-caption\">{{accountNumberCaption}}:</span>\n                <span class=\"page-subheader-text\">{{accountNumber}}</span>\n        </div> \n    </div>\n    <mobicloud-loading-container [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" [hasErrors]=\"hasErrors\" [errorCaption]=\"errorCaption\" [errorText]=\"errorText\" [enableRetryOnError]=\"enableRetryOnError\" [loadingHeightPxSubstract]=\"146\">\n        <div class=\"inner-content-fullheight\">\n          <dx-tab-panel [selectedIndex]=\"selectedTabIndex\" [loop]=\"false\" [animationEnabled]=\"true\" [swipeEnabled]=\"false\" [showNavButtons]=\"true\" [focusStateEnabled]=\"false\" height=\"100%\">\n            <dxi-item title=\"Details\" i18n-title=\"@@TabHeader-Details\">\n                <div class=\"tabpanel-item\">\n    \n                    <div class=\"userbox-card-container flex flex-row gap-8\">                    \n                        <div class=\"userbox-card\">\n                            <div class=\"userbox-card-inner\">\n                                    <mobicloud-customer-user-general class=\"userbox-card\" [user]=\"user\" [user_expands]=\"user_expands\" [width]=\"460\" [contentheight]=\"340\" *ngIf=\"user\"></mobicloud-customer-user-general>                        \n                            </div>\n                        </div>\n                        <div class=\"userbox-card\">\n                            <div class=\"userbox-card-inner\">\n                                    <mobicloud-customer-user-details class=\"userbox-card\" [user]=\"user\" [user_expands]=\"user_expands\" [width]=\"460\" [contentheight]=\"340\" *ngIf=\"user\"></mobicloud-customer-user-details>                        \n                            </div>                 \n                        </div>\n                        <div class=\"userbox-card\">\n                            <div class=\"userbox-card-inner\">\n                                    <mobicloud-customer-user-address class=\"userbox-card\" [user]=\"user\" [user_expands]=\"user_expands\" [width]=\"460\" [contentheight]=\"340\" *ngIf=\"user\"></mobicloud-customer-user-address>                        \n                            </div>                 \n                        </div>  \n                        \n                        <div class=\"userbox-card\">\n                            <div class=\"userbox-card-inner\">\n                                    <mobicloud-customer-user-image class=\"userbox-card\" [user]=\"user\" [user_expands]=\"user_expands\" [width]=\"460\" [contentheight]=\"340\" *ngIf=\"user\"></mobicloud-customer-user-image>                     \n                            </div>                 \n                        </div>                        \n                    </div>\n    \n                </div>\n            </dxi-item>     \n          </dx-tab-panel>\n        </div>    \n    </mobicloud-loading-container>    \n\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'mobicloud-profile-page-vendor-user',\n  templateUrl: './profile-page-vendor-user.component.html',\n  styleUrls: ['./profile-page-vendor-user.component.scss']\n})\nexport class ProfilePageVendorUserComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>profile-page-vendor-user works!</p>\n","import { Component, OnInit, effect } from '@angular/core';\nimport { MobicloudCoreService } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-profile-page',\n  templateUrl: './profile-page.component.html',\n  styleUrls: ['./profile-page.component.scss']\n})\nexport class ProfilePageComponent implements OnInit {    \n\n  isSystemUser:boolean | undefined = false;\n  isEmployee:boolean | undefined = false;\n  isCustomerUser:boolean | undefined = false;\n  isVendorUser:boolean | undefined = false;\n\n  constructor(public coreService:MobicloudCoreService) { \n    effect(() => {\n      const p = this.coreService.mobiUserProfile();\n      this.isSystemUser = p?.isOrganizationUser;\n      this.isEmployee = p?.isEmployeeUser;\n      this.isCustomerUser = p?.isCustomerUser;\n      this.isVendorUser = p?.isVendorUser;\n    });\n  }\n\n  ngOnInit(): void {\n  }\n\n}","<div class=\"profile-container\">    \n\n    <mobicloud-profile-page-system-user *ngIf=\"isSystemUser\"></mobicloud-profile-page-system-user>\n    <mobicloud-profile-page-employee *ngIf=\"isEmployee\"></mobicloud-profile-page-employee>\n    <mobicloud-profile-page-customer-user *ngIf=\"isCustomerUser\"></mobicloud-profile-page-customer-user>\n    <mobicloud-profile-page-vendor-user *ngIf=\"isVendorUser\"></mobicloud-profile-page-vendor-user>\n\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-signin-callback',\n  templateUrl: './signin-callback.component.html',\n  styleUrls: ['./signin-callback.component.scss']\n})\nexport class SigninCallbackComponent implements OnInit {\n\n  isLoading: boolean|undefined = true;\n  loadingText: string = \"Signing in ...\";\n\n  errorCaption: string = \"Error\";\n  errorText: string|undefined = \"\";\n  enableRetryOnError: boolean|undefined = true;\n\n  hasErrors: boolean|undefined = false;\n\n  constructor(private coreService: MobicloudCoreService, private router: Router, private route: ActivatedRoute) { }\n\n  async ngOnInit() {\n    // check for error\n        \n    if (this.route.snapshot.fragment && this.route.snapshot.fragment?.indexOf('error') >= 0) {      \n      this.hasErrors = true;\n      this.errorCaption = \"Error in authentication callback\";\n      this.errorText = this.route.snapshot.fragment!;\n      this.isLoading = false;\n      return;\n    }\n\n    try{\n      await this.coreService.completeSignIn();\n\n      let redirectUrl = this.coreService.redirectUrl();\n      if (redirectUrl)\n        this.router.navigate([redirectUrl])\n      else\n        this.router.navigate(['/']);\n    }\n    catch(error:any){\n      console.log(\"signin callback error: \", error)\n      this.hasErrors = true;\n      this.errorCaption = \"Error in authentication callback\";\n      this.errorText = error?.message;\n      this.isLoading = false;      \n      return;\n    }\n  }\n\n  onRetryClick(){    \n    let redirectUrl = this.coreService.redirectUrl();\n    // console.log(\"Retrying...\", redirectUrl);\n    if (redirectUrl)\n      this.router.navigate([redirectUrl])\n    else\n      this.router.navigate(['/']);    \n  } \n}\n","<mobicloud-loading-container [isLoadingData]=\"isLoading\" [loadingText]=\"loadingText\" [hasErrors]=\"hasErrors\" [errorCaption]=\"errorCaption\" [errorText]=\"errorText\" [enableRetryOnError]=\"enableRetryOnError\" (Retry_Click)=\"onRetryClick()\">\n    <div class=\"callback_content\">\n\n    </div>   \n</mobicloud-loading-container>","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-signin-silent-callback',\n  templateUrl: './signin-silent-callback.component.html',\n  styleUrls: ['./signin-silent-callback.component.css']\n})\nexport class SigninSilentCallbackComponent implements OnInit {\n  \n  isLoading: boolean|undefined = true;\n  loadingText: string = \"Signing in (silent) ...\";\n\n  errorCaption: string|undefined = \"Error\";\n  errorText: string|undefined = \"\";\n  enableRetryOnError: boolean|undefined = false;\n\n  hasErrors: boolean|undefined = false;\n\n  constructor(private coreService: MobicloudCoreService, private router: Router, private route: ActivatedRoute) { }\n\n  async ngOnInit() {\n    // check for error\n    if (this.route.snapshot.fragment && this.route.snapshot.fragment?.indexOf('error') >= 0) {\n      this.hasErrors = true;\n      return;\n    }\n\n    try{\n      await this.coreService.completeSilentSignIn();\n    }\n    catch(error:any){\n      console.log(\"signin (silent) callback error: \", error)\n      this.hasErrors = true;\n      this.errorCaption = \"Error in authentication callback (silent)\";\n      this.errorText = error?.message;\n      this.isLoading = false;      \n      return;\n    }\n  }\n\n}\n","<mobicloud-loading-container [isLoadingData]=\"isLoading\" [loadingText]=\"loadingText\" [hasErrors]=\"hasErrors\" [errorCaption]=\"errorCaption\" [errorText]=\"errorText\" [enableRetryOnError]=\"enableRetryOnError\">\n    <div class=\"callback_content\">\n\n    </div>   \n</mobicloud-loading-container>","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-signout-callback',\n  templateUrl: './signout-callback.component.html',\n  styleUrls: ['./signout-callback.component.scss']\n})\nexport class SignoutCallbackComponent implements OnInit {\n\n  isLoading: boolean|undefined = true;\n  loadingText: string = \"Signing out ...\";\n\n  errorCaption: string = \"Error\";\n  errorText: string = \"\";\n  enableRetryOnError: boolean|undefined = true;\n\n  hasErrors: boolean|undefined = false;\n  constructor(private coreService: MobicloudCoreService, private router: Router, private route: ActivatedRoute) {\n\n  }\n\n  async ngOnInit() {\n    try{\n      await this.coreService.completeSignout();\n      this.router.navigate(['/signup']);\n    }\n    catch(error:any){\n      console.log(\"signout callback error: \", error)\n      this.hasErrors = true;\n      this.errorCaption = \"Error in signout callback\";\n      this.errorText = error?.message;\n      this.isLoading = false;      \n      return;\n    }    \n  }\n\n  onRetryClick(){    \n    let redirectUrl = this.coreService.redirectUrl();\n    // console.log(\"Retrying...\", redirectUrl);\n    if (redirectUrl)\n      this.router.navigate([redirectUrl])\n    else\n      this.router.navigate(['/']);    \n  } \n}\n","<mobicloud-loading-container [isLoadingData]=\"isLoading\" [loadingText]=\"loadingText\" [hasErrors]=\"hasErrors\" [errorCaption]=\"errorCaption\" [errorText]=\"errorText\" [enableRetryOnError]=\"enableRetryOnError\" (Retry_Click)=\"onRetryClick()\">\n    <div class=\"callback_content\">\n\n    </div>   \n</mobicloud-loading-container>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Country } from \"mobicloud-core\";\nimport { VendorUser } from \"mobicloud-core/api\";\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-vendor-user-address',\n  templateUrl: './vendor-user-address.component.html',\n  styleUrls: ['./vendor-user-address.component.scss']\n})\nexport class VendorUserAddressComponent implements OnInit, OnChanges {\n  @Input() user: VendorUser|undefined;\n  formUser: VendorUser|undefined;\n  @Input() user_expands: string[] = ['Vendor'];\n  @Input() editAllowed:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() userChanged = new EventEmitter<VendorUser>();  \n\n  user_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {     \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = (valid || userProfile?.user_id == this.user?.Id);\n        });\n      }\n    }); \n  }\n\n  ngOnInit(): void {    \n    this.user_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"VendorUser\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n\n    this.createCountryDataSource();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['user']?.currentValue && changes['user'].currentValue != this.formUser) {\n      this.formUser = this.user;      \n      this.onUserChanged(this.formUser); \n    }    \n  }\n\n  onUserChanged(vend: VendorUser|undefined){\n    this._countryId = this.formUser?.Country?.toString();\n    \n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }\n  }\n\n  getUser() {\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-VendorUser:Loading user...`;\n      this.user_store.byKey(this.user.Id, { expand: this.user_expands }).then(\n        (dataItem) => { \n          this.formUser = Object.assign(new VendorUser(), dataItem[0]);\n          this.user = this.formUser;\n          \n          this.onUserChanged(this.user);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.userChanged.emit(this.user);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getUser();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Street\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveUser();\n    }\n  }\n\n  saveUser(){\n    if(this.user?.Id && this.user_store){\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Updating-Text-VendorUser:Updating user...`;\n      const data:any = {\n        Street: this.formUser?.Street,\n        ZipCode: this.formUser?.ZipCode,\n        City: this.formUser?.City,\n        Country: this._countryId,\n        State: this.formUser?.State,\n        Phone: this.formUser?.Phone\n      };\n    this.user_store.update(this.user.Id, data)\n      .then(\n          (dataObj) => \n          { \n            this.getUser();\n            this.isLoadingData = false;\n            this.inEditMode = false;\n            this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          },\n          (error) => \n          { \n            console.log(error);\n            this.isLoadingData = false;\n            this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            MessageBox.showError({title: $localize`:@@Failed-Text-VendorUser:User update failed`, message: error },this.matDialog)\n            .subscribe( result => \n              {\n                // console.log(`Dialog result : ${result}`);\n              });\n          }\n      );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getUser();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>; \n\n  //--- CountryDataSource\n\n  country_ds: DataSource|undefined;\n  _countryId: string | undefined = undefined;\n  _selectedCountry: Country | undefined = undefined;\n  _countryOpened: boolean|undefined = false;\n\n  createCountryDataSource(){\n    this.country_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Country\"),\n        withCredentials: true, \n        key: \"Code2\",\n        keyType: \"String\",\n        // key: \"Id\",\n        // keyType: \"Int32\",\n        version: 4,        \n      }),\n      filter: [ \"Enabled\", \"=\", true ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Country(), dataItem);\n      }            \n    });  \n  }\n\n  countryChanged(args:any) {\n    this._selectedCountry= args.selectedRowsData?.length > 0 ? args.selectedRowsData[0] :  undefined;\n    this._countryId = this._selectedCountry?.Code2;\n    if(this.formUser)\n      this.formUser.Country = this._countryId;\n    \n  }\n  \n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"Address\" i18n-title=\"@@CaptionHeader-Address\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeAddressForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formUser\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formUserData_Address\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Street\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n                <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"ZipCode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n                <dxo-label text=\"Zip code\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n                <dxo-label text=\"City\"  i18n-text=\"@@FieldCaption-City\"></dxo-label>\n            </dxi-item>\n            \n            <dxi-item dataField=\"Country\">\n                <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label>  \n                <div *dxTemplate=\"let data of 'content'\">\n                    <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"!inEditMode\" fieldTemplate=\"fieldTemplate\"\n                        [dataSource]=\"country_ds\"                   \n                        [(value)]=\"_countryId\"\n                        valueExpr=\"Code2\"                \n                        displayExpr=\"LocalName\"                                    \n                        [(opened)]=\"_countryOpened\"> \n                        <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n                    </dxo-drop-down-options>                                       \n                        <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n                            [dataSource]=\"country_ds\"\n                            [(selectedRowKeys)]=\"_countryId\"\n                            (onSelectionChanged)=\"countryChanged($event)\"\n                            (onRowClick)=\"_countryOpened = false\">\n                            <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n                            <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n                            <dxo-paging [enabled]=\"false\"></dxo-paging>\n                            <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n                                <img alt=\"\"src=\"{{cloudDataService.FlagUrl}}/{{data.value}}-32.png\"/>\n                            </div>\n                        </dx-data-grid>\n                        <div *dxTemplate=\"let data of 'fieldTemplate'\">\n                            <div class=\"country-edit-item\">\n                                <div class=\"country-edit-image\"><img alt=\"\"src=\"{{cloudDataService.FlagUrl}}/{{_selectedCountry?.Code2}}-32.png\" *ngIf=\"_selectedCountry?.Code2\"></div>\n                                <div class=\"country-edit-text\">\n                                    <dx-text-box stylingMode=\"filled\" [value]=\"_selectedCountry?.LocalName\" [readOnly]=\"true\"></dx-text-box>\n                                </div>\n                            </div>\n                        </div>\n                    </dx-drop-down-box>\n                </div>   \n                <!-- <dxi-validation-rule type=\"required\" message=\"Country is required\"></dxi-validation-rule>    -->\n            </dxi-item> \n                        \n            <dxi-item dataField=\"State\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level1'} }\">\n                <dxo-label text=\"State\" i18n-text=\"@@FieldCaption-State\"></dxo-label>                \n            </dxi-item>\n            <dxi-item dataField=\"Phone\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n                <dxo-label text=\"Phone\" i18n-text=\"@@FieldCaption-Phone\"></dxo-label>                \n            </dxi-item>\n        </dxi-item>       \n        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { VendorUser } from \"mobicloud-core/api\";\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { UsernameValidator } from \"mobicloud-core\";\n\n@Component({\n  selector: 'mobicloud-vendor-user-details',\n  templateUrl: './vendor-user-details.component.html',\n  styleUrls: ['./vendor-user-details.component.scss']\n})\nexport class VendorUserDetailsComponent implements OnInit, OnChanges {\n  @Input() user: VendorUser|undefined;\n  formUser: VendorUser|undefined;\n  @Input() user_expands: string[] = ['Vendor'];\n  @Input() editAllowed:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() userChanged = new EventEmitter<VendorUser>();  \n\n  user_store: ODataStore|undefined;\n\n  \n  @ViewChild('form') form! :  DxFormComponent;\n\n\n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog, public usernameValidator: UsernameValidator) {  \n    this.usernameValidation = this.usernameValidation.bind(this);\n\n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = (valid || userProfile?.user_id == this.user?.Id);\n        });\n      }\n    }); \n  }\n\n  ngOnInit(): void {    \n    this.user_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"VendorUser\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['user']?.currentValue && changes['user'].currentValue != this.formUser) {\n      this.formUser = this.user;      \n      this.onUserChanged(this.formUser); \n    }    \n  }\n\n  onUserChanged(cust: VendorUser|undefined){    \n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }\n  }\n\n  getUser() {\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-VendorUser:Loading user...`;\n      this.user_store.byKey(this.user.Id, { expand: this.user_expands }).then(\n        (dataItem) => { \n          this.formUser = Object.assign(new VendorUser(), dataItem[0]);\n          this.user = this.formUser;\n          \n          this.onUserChanged(this.user);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.userChanged.emit(this.user);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getUser();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Active\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveUser();\n    }\n  }\n\n  saveUser(){\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-VendorUser:Updating user...`;\n      let update_values: any = {    \n        Email: this.formUser?.Email,\n        ResourceColor: this.formUser?.ResourceColor\n      };\n      if(this.fullEditAllowed){\n        update_values.Active = this.formUser?.Active;\n        update_values.Substitute = this.formUser?.Substitute;\n      }\n      update_values.Username = this.formUser?.Username;\n\n      this.user_store.update(this.user.Id, update_values)\n        .then(\n            (dataObj) => \n            { \n              this.getUser();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-VendorUser:User update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getUser();    \n    this.inEditMode = false;\n  }\n  \n\n  usernameValidation(params: any) : Promise<void>{\n    if(this.user?.Vendor?.Id)\n      return this.usernameValidator.usernameValidation_vendor_devextreme(this.user.Vendor.Id, params?.value, this.user.Id);\n    return Promise.resolve();\n  }  \n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>; \n    status_ds: any[] = [  \n      { id: false, description: $localize`:@@@FieldValue-InActive:Inactive` }, \n      { id: true, description: $localize`:@@@FieldValue-Active:Active` }\n    ]\n\n    loginType_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-AppLogin-Regular:Regular` }, \n      { id: true, description: $localize`:@@FieldValue-AppLogin-AppUser: App user` }\n    ]  \n\n    boolean_ds: any[] = [  \n      { id: false, description: $localize`:@@FieldValue-No:No` }, \n      { id: true, description: $localize`:@@FieldValue-Yes:Yes` }\n    ]    \n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"User Info\" i18n-title=\"@@CaptionHeader-UserInfo\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeUserInfoForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n    \n    <form>\n    <dx-form #form id=\"form\"\n        [formData]=\"formUser\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formUserData_UserInfo\">\n        \n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Active\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: status_ds, valueExpr: 'id', displayExpr: 'description', readOnly: !fullEditAllowed }\">\n                <dxo-label text=\"Status\" i18n-text=\"@@FieldCaption-Status\"></dxo-label>\n            </dxi-item>\n\n\n            <dxi-item dataField=\"Username\">\n                <dxo-label text=\"Username\" i18n-text=\"@@FieldCaption-Username\"></dxo-label>\n                <dxi-validation-rule type=\"required\" message=\"Username is required\" i18n-message=\"@@ValidationText-Username-Required\" *ngIf=\"inEditMode\"></dxi-validation-rule>\n                <dxi-validation-rule *ngIf=\"inEditMode\" \n                type=\"async\" \n                [validationCallback]=\"usernameValidation\">\n                </dxi-validation-rule>                \n            </dxi-item>\n\n            <dxi-item dataField=\"Substitute\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: boolean_ds, valueExpr: 'id', displayExpr: 'description', readOnly: !fullEditAllowed }\">\n                <dxo-label text=\"Substitute\" i18n-text=\"@@FieldCaption-Substitute\"></dxo-label>\n            </dxi-item>  \n\n            <dxi-item dataField=\"ResourceColor\"  editorType=\"dxColorBox\">\n                <dxo-label text=\"Color\" i18n-text=\"@@FieldCaption-Color\"></dxo-label>\n            </dxi-item>                                   \n\n            <dxi-item dataField=\"Email\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n                <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label>     \n                <dxi-validation-rule type=\"required\" message=\"Email is required\" i18n-message=\"@@ValidationText-Email-Required\"></dxi-validation-rule>\n                <dxi-validation-rule type=\"email\" message=\"Email is invalid\" i18n-message=\"@@ValidationText-Email-Invalid\"></dxi-validation-rule>                           \n            </dxi-item> \n\n        </dxi-item>       \n        \n    </dx-form>\n    </form>\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\n\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Country } from \"mobicloud-core\";\nimport { VendorUser,GenderType, Location } from \"mobicloud-core/api\";\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-vendor-user-general',\n  templateUrl: './vendor-user-general.component.html',\n  styleUrls: ['./vendor-user-general.component.scss']\n})\nexport class VendorUserGeneralComponent implements OnInit, OnChanges {\n  @Input() user: VendorUser|undefined;\n  formUser: VendorUser|undefined;\n  @Input() user_expands: string[] = ['Vendor'];\n  @Input() editAllowed:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() userChanged = new EventEmitter<VendorUser>();  \n\n  user_store: ODataStore|undefined;\n\n  @ViewChild('form') form! :  DxFormComponent;\n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {    \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = (valid || userProfile?.user_id == this.user?.Id);\n        });\n      }\n    });  \n  }\n\n  ngOnInit(): void {    \n    this.initializeDataSources();\n\n  }\n\n  initializeDataSources(){\n    this.user_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"VendorUser\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n\n    this.createCountryDataSource();\n    this.createLocationDataSource();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['user']?.currentValue && changes['user'].currentValue != this.formUser) {\n      this.formUser = this.user;      \n      this.onUserChanged(this.formUser); \n    }    \n  }\n\n  onUserChanged(cust: VendorUser|undefined){\n    this._countryId = this.formUser?.Country?.toString();\n    this._locationId = this.formUser?.LocationId;\n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }\n  }\n\n  getUser() {\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-VendorUser:Loading user...`;\n      this.user_store.byKey(this.user.Id, { expand: this.user_expands }).then(\n        (dataItem) => { \n          this.formUser = Object.assign(new VendorUser(), dataItem[0]);\n          this.user = this.formUser;\n          \n          this.onUserChanged(this.user);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.userChanged.emit(this.user);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onRetryClick(){\n    this.getUser();\n    this.inEditMode = false;\n  } \n\n  onEditClick(){\n    this.form.instance?.getEditor(\"FirstName\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveUser();\n    }\n  }\n\n  saveUser(){\n    if(this.user?.Id && this.user_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-VendorUser:Updating user...`;\n      \n      let update_values: any = {    \n        FirstName: this.formUser?.FirstName,\n        LastName: this.formUser?.LastName,        \n        Gender: this.formUser?.Gender,\n        Initials: this.formUser?.Initials\n      };\n      if(this.fullEditAllowed){\n        update_values.LocationId = this.formUser?.LocationId;\n      }\n      \n      this.user_store.update(this.user.Id, update_values)\n        .then(\n            (dataObj) => \n            { \n              this.getUser();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-VendorUser:User update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getUser();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>;\n    //--- Gender\n  genderType_ds: any[] = [  \n    { id: GenderType.Unknown, description: $localize`:@@EnumValue-Unknown:Unknown` }, \n    { id: GenderType.Male, description: $localize`:@@EnumValue-Male:Male` },  \n    { id: GenderType.Female, description: $localize`:@@EnumValue-Female:Female` },  \n    { id: GenderType.Other, description: $localize`:@@EnumValue-Other:Other` }\n  ]\n\n  //--- CountryDataSource\n\n  country_ds: DataSource|undefined;\n  _countryId: string | undefined = undefined;\n  _selectedCountry: Country | undefined = undefined;\n  _countryOpened: boolean | undefined = false;\n\n  createCountryDataSource(){\n    this.country_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Country\"),\n        withCredentials: true, \n        key: \"Code2\",\n        keyType: \"String\",\n        // key: \"Id\",\n        // keyType: \"Int32\",\n        version: 4,        \n      }),\n      filter: [ \"Enabled\", \"=\", true ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Country(), dataItem);\n      }            \n    });  \n  }\n\n  countryChanged(args:any) {\n    this._selectedCountry= args.selectedRowsData?.length > 0 ? args.selectedRowsData[0] : undefined;\n    this._countryId = this._selectedCountry?.Code2;\n    if(this.formUser)\n      this.formUser.Country = this._countryId;    \n  }\n  \n  \n\n  //--- LocationDataSource\n\n  location_ds: DataSource|undefined;\n  _locationId: any = undefined;\n  _locationOpened: boolean|undefined = false;\n\n  createLocationDataSource(){\n    this.location_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Location\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {    \n        var loc = Object.assign(new Location(), dataItem);\n        // console.log(\"Location:\", loc);    \n        return loc;\n      }            \n    });  \n  }\n\n  locationChanged(args:any) {\n    this._locationId = args.selectedRowsData?.length > 0 ? args.selectedRowsData[0]?.Id : null;\n    if(this.formUser)\n      this.formUser.LocationId = this._locationId;\n  }  \n\n}\n\n\n\n\n\n\n","<mobicloud-group-box title=\"Profile\" i18n-title=\"@@CaptionHeader-Profile\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"employeeProfileForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formUser\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formUserData_Profile\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"FirstName\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n                <dxo-label text=\"First name\" i18n-text=\"@@FieldCaption-FirstName\"></dxo-label>        \n                <dxi-validation-rule type=\"required\" message=\"First name is required\" i18n-message=\"@@ValidationText-FirstName-Required\"></dxi-validation-rule>        \n            </dxi-item>\n            <dxi-item dataField=\"LastName\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'family-name'} }\">\n                <dxo-label text=\"Last name\" i18n-text=\"@@FieldCaption-LastName\"></dxo-label>   \n                <dxi-validation-rule type=\"required\" message=\"Last name is required\" i18n-message=\"@@ValidationText-LastName-Required\"></dxi-validation-rule>             \n            </dxi-item>\n                        \n            <dxi-item dataField=\"Initials\">\n                <dxo-label text=\"Initials\" i18n-text=\"@@FieldCaption-Initials\"></dxo-label>                \n            </dxi-item>\n\n            <dxi-item dataField=\"Gender\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: genderType_ds, valueExpr: 'id', displayExpr: 'description' }\">\n                <dxo-label text=\"Gender\" i18n-text=\"@@FieldCaption-Gender\"></dxo-label>\n            </dxi-item> \n\n            <dxi-item dataField=\"LocationId\" #customer editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'location_itemTemplate', fieldTemplate: 'location_fieldTemplate', dataSource: location_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['Name'], showClearButton: true }\">\n                <dxo-label text=\"Location\" i18n-text=\"@@FieldCaption-Location\"></dxo-label>\n            </dxi-item>                        \n\n        </dxi-item>       \n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'location_itemTemplate'\">\n            {{ item?.Name }}\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'location_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}}\n        </div> \n    </dx-form>\n</mobicloud-group-box>","import { Component, OnInit, Input, ViewChild, effect } from '@angular/core';\n\nimport { VendorUser,StorageAccountImage } from \"mobicloud-core/api\";\nimport { getProfileImageUrl } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { ImageEditComponent } from \"../../image-edit/image-edit.component\";\n\n@Component({\n  selector: 'mobicloud-vendor-user-image',\n  templateUrl: './vendor-user-image.component.html',\n  styleUrls: ['./vendor-user-image.component.scss']\n})\nexport class VendorUserImageComponent implements OnInit {\n  @ViewChild('imageEdit') imageEdit! :  ImageEditComponent;\n  @Input() editAllowed:boolean | undefined = false;\n  @Input() inEditMode:boolean | undefined = false;\n  fullEditAllowed:boolean | undefined = false;\n\n  @Input() width!:  number;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@UploadingLoading-Image-Text:Uploading image...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n  @Input() user: VendorUser|undefined;\n  @Input() user_expands: string[]|undefined;\n\n  uploadUrl:  string | undefined = undefined;\n  isUploaded: boolean | undefined = false;\n  \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService) {   \n    effect(() => {\n      const userProfile = this.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.fullEditAllowed = (valid || userProfile?.user_id == this.user?.Id);\n        });\n      }\n    });  \n  }\n\n  ngOnInit(): void {\n    this.uploadUrl = this.cloudDataService.getMobiManagementODataUrl(`vendoruser(${this.user?.Id})/UploadProfileImage`);\n  }\n\n  getProfileImageUrl() : string | undefined{\n    return getProfileImageUrl(this.user?.Image);\n  }\n\n  onEditClick(){\n    this.inEditMode = true;\n  }\n\n  onCancelEditClick(){\n    this.inEditMode = false;\n  }\n\n  onSaveClick(){\n    this.imageEdit.upload();\n  }\n\n  onRetryClick(){\n    this.imageEdit.upload();\n  } \n\n  isUploadedChange(success:boolean){\n    this.coreService.getProfileDetails();\n  }  \n}\n","<mobicloud-group-box title=\"Profile Image\" i18n-title=\"@@CaptionHeader-ProfileImage\" [width]=\"[width]\" [contentheight]=\"0\" class=\"vendorUserProfileImageForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <mobicloud-image-edit #imageEdit id=\"imageEdit\" [uploadUrl]=\"uploadUrl\" [imageUrl]=\"getProfileImageUrl()\" [width]=\"width - 20\" \n  [(inEditMode)]=\"inEditMode\" [(isUploading)]=\"isLoadingData\" [(isUploaded)]=\"isUploaded\" [(uploadError)]=\"hasErrors\" [(uploadErrorMessage)]=\"errorText\" (isUploadedChange)=\"isUploadedChange($event)\"></mobicloud-image-edit>\n\n  <!-- <p>url: {{uploadUrl}}</p>\n  <p>inEditMode: {{inEditMode}}</p>\n  <p>isLoadingData: {{isLoadingData}}</p>\n  <p>isUploaded: {{isUploaded}}</p>\n  <p>hasErrors: {{hasErrors}}</p>\n  <p>errorText: {{errorText}}</p>   -->\n</mobicloud-group-box>","import { Component, ViewEncapsulation, OnInit, Inject,Input, ViewChild,AfterViewInit, ElementRef } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { MatStepper } from '@angular/material/stepper';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { map } from 'rxjs/operators';\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\nimport ArrayStore from \"devextreme/data/array_store\";\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\n\nimport  \"devextreme/ui/validation_engine\";\nimport Guid from \"devextreme/core/guid\"\nimport validationEngine from 'devextreme/ui/validation_engine';\n\n// import { MessageBox, MessageResult } from \"mobicloud-core/components\";\nimport { MessageBox, MessageResult } from \"../../message-box/message-box\";\n\nimport { Country, CountryState } from \"mobicloud-core\";\nimport { MobiCloudDataService, CompanyInfo, Shipment, PickingList, PickingLine, InventLocation, PackagingBox,PackagingBoxType, ShipmentProviderType, SalesOrder, Product } from \"mobicloud-core/api\";\nimport { Observable } from 'rxjs';\n\n@Component({\n  selector: 'mobicloud-pickinglist-add-new-shipment',\n  templateUrl: './pickinglist-add-new-shipment.component.html',\n  styleUrls: ['./pickinglist-add-new-shipment.component.scss']\n})\nexport class PickinglistAddNewShipment implements OnInit, AfterViewInit {\n\n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@CreatingShipment-Text:Creating shipment ...`;\n  @Input() createCompleted:  boolean = false;\n  @Input() createCompletedText:  string = $localize`:@@ShipmentCreated-Text:Shipment successfully created`;\n  @Input() createError:  boolean = false;\n  @Input() createErrorText:  string = \"\";\n\n  @ViewChild(MatStepper) stepper!: MatStepper;\n\n  @ViewChild('form_Sender') form_Sender! : DxFormComponent;\n  @ViewChild('form_Receiver') form_Receiver! : DxFormComponent;\n  @ViewChild('form_ShippingInfo') form_ShippingInfo! : DxFormComponent;\n  @ViewChild('selectedBoxesList') selectedBoxesList! :  DxDataGridComponent;\n\n  async_call:  boolean= true;\n  \n  showLoadIndicator:  boolean|undefined= true;\n\n  company_store!: ODataStore;\n  company: CompanyInfo|undefined;\n  shipmentProviderType: ShipmentProviderType|undefined;\n  shipmentVendor_Name: string|undefined;\n\n  salesOrder_store!: ODataStore;\n  pickingList_store!: ODataStore;\n  pickingLine_store!: ODataStore;\n  pickingList!: PickingList;\n  pickingLines: PickingLine[]|undefined;\n  selectedPickingLinesKeys: any[] = [];\n  allowSelectPickingLines:boolean = false;\n\n  packagingBox_store!: ODataStore;\n  packagingBoxes: PackagingBox[] = [];\n\n  selectedBoxes: PackagingBoxEntry[] = [];\n\n  disableCarrierProducts:boolean = false;\n  showCarriers:boolean = false;\n  shipmentCarriers:Shipping_Carrier[] = [];\n  selectedCarrierId: string|undefined;\n  shipmentProducts:Shipping_CarrierProduct[] = [];\n  selectedShipmentProducts: any[] = [];\n  selectedShippingProduct:Shipping_CarrierProduct|undefined;\n  servicePointRequired:boolean = false;\n  servicePointAvailable:boolean = false;\n\n  servicePoints:Shipping_ServicePoint[] = [];\n  selectedServicePoint:Shipping_ServicePoint|undefined;\n\n  printer_store: ODataStore|undefined;\n  selectedPrinterId: string|undefined;\n  createPackageList:boolean = false;\n\n  formInstanceShipment!: Shipment;\n  formReceiver_FirstName: string|undefined;\n  formReceiver_LastName: string|undefined;\n\n  internationalShipping:boolean = false;\n  internationalShipping_forceProductInBoxes:boolean = false;\n\n  inventLocationId: string|undefined;\n  pickingListId: string|undefined;\n\n  returnLabelsEnabled:boolean = false;\n\n  skipLinesTab:boolean = false;\n  skipSenderTab:boolean = false;\n  skipReceiverTab:boolean = false;\n\n  \n  webshopOrderId:string|undefined;\n  isWebshopOrder:boolean = false;\n\n  constructor(public dialogRef: MatDialogRef<PickinglistAddNewShipment>, @Inject(MAT_DIALOG_DATA) public data: any, public cloudDataService: MobiCloudDataService, private matDialog: MatDialog) { \n    this.setCellValue_BoxType = this.setCellValue_BoxType.bind(this);\n    this.onShipmentProductSelectionChanged = this.onShipmentProductSelectionChanged.bind(this);\n\n    // this.cloudDataService.coreService.applicationDetails.\n\n    if(data?.pickingListId){\n      this.pickingListId = data.pickingListId;\n    }\n    if(data?.inventLocationId){\n      this.inventLocationId = data.inventLocationId;\n    }\n    if(data?.allowSelectPickingLines){\n      this.allowSelectPickingLines = data.allowSelectPickingLines;\n    }  \n    if(data?.printerId){\n      this.selectedPrinterId = data.printerId;\n    }   \n    if(data?.skipLinesTab){\n      this.skipLinesTab = data.skipLinesTab;\n    } \n    if(data?.skipSenderTab){\n      this.skipSenderTab = data.skipSenderTab;\n    }   \n    if(data?.skipReceiverTab){\n      this.skipReceiverTab = data.skipReceiverTab;\n    }             \n    this.formInstanceShipment = Object.assign(new Shipment(), {}); \n    this.formInstanceShipment.ShippingDate = new Date();\n\n    // console.log(\"Test\");\n  }\n\n  ngOnInit(): void {  \n    this.createCompanyStore();\n    this.createPickingListStore();\n    this.createSalesOrderStore();\n    this.company_store.load().then(\n      (companies) => {           \n        this.company = companies[0];        \n        if(this.company?.ShipmentVendor){\n          this.shipmentVendor_Name = this.company.ShipmentVendor.Name;\n          this.shipmentProviderType = this.company.ShipmentVendor.ShipmentProvider;\n          this.showCarriers = this.shipmentProviderType == 'Webshipper' && (this.company.ShipmentVendor.ProductChannel == undefined || this.company.ShipmentVendor.ProductChannel == \"\");\n          // console.log(\"this.company\", this.company, this.showCarriers);\n          this.loadPickingList();\n        }\n        else{\n          this.showLoadIndicator = false;\n          console.error(\"Shipment vendor is not found/configured in company\", this.company);\n          MessageBox.showError({title: $localize`:@@CaptionHeader-Error:Error`, message: $localize`:@@Failed-Text-ShipmentVendorNotFoundInCompany:Shipment vendor is not found/configured in company` },this.matDialog);\n          this.onCancel();\n        }        \n      },\n      (error) => { \n        this.showLoadIndicator = false;\n        console.error(error);\n        MessageBox.showError({title: $localize`:@@Failed-Text-CouldNotLoadCompany:Could not load company`, message: error },this.matDialog);\n        this.onCancel();\n      }\n    );    \n  }\n\n  getProductsBoxheight() : number{\n    var height:number = 178;\n    if(this.showCarriers){\n      height = 138;\n    }\n    // console.log(this.showCarriers, height);\n    return height;\n  }\n\n  returnCheckBoxChanged(args:any) {\n    // console.log(\"returnCheckBoxChanged\", this.returnLabelsEnabled);\n    this.loadPickingLines();\n  }  \n\n  async loadPickingList() : Promise<void>{\n    this.pickingList_store.load().then(\n      (pickingLists) => {           \n        var picking_list = pickingLists[0];\n        if(picking_list){\n          this.initializePickingList(picking_list);\n        }\n        else{\n          this.showLoadIndicator = false;\n          MessageBox.showError({title: $localize`:@@Failed-Text-InvalidPickingList:Invalid picking list`, message: $localize`:@@Failed-Text-InvalidPickingListForShipment:Picking list is not valid for shipment` },this.matDialog);\n        }\n      },\n      (error) => { \n        this.showLoadIndicator = false;\n        console.error(error);\n        MessageBox.showError({title: $localize`:@@Failed-Text-InvalidPickingList:Invalid picking list`, message: error },this.matDialog);\n        this.onCancel();\n      }\n    );\n  }\n\n\n  async initializePickingList(picking_list:PickingList){\n    this.pickingList = picking_list;\n\n    // console.log(\"pickingList:\", this.pickingList);\n\n    // if(this.pickingList.ExternalId){\n    //   this.formInstanceShipment.Reference = this.pickingList.ExternalId;\n    //   if(this.pickingList.SalesOrder?.SalesId){\n    //     this.formInstanceShipment.Reference = `${this.formInstanceShipment.Reference}/${this.pickingList.SalesOrder.SalesId}`;\n    //   }\n    // }    \n    // else if(this.pickingList.SalesOrder?.SalesId){\n    //   this.formInstanceShipment.Reference = this.pickingList.SalesOrder.SalesId;\n    // }\n\n    this.webshopOrderId = this.pickingList.SalesOrder?.Webshop_Order_Id;\n    // console.log(\"webshopOrderId:\", this.webshopOrderId);\n    if(this.webshopOrderId){\n      this.isWebshopOrder = true;\n    }\n    else{\n      this.isWebshopOrder = false;\n    }\n\n    if(this.pickingList.SalesOrder?.ShipmentProductCode){\n      this.disableCarrierProducts = true;\n    }\n    else{\n      this.disableCarrierProducts = false;\n    }\n    this.selectedPickingLinesKeys = [];\n\n    this.createPickingLineStore();\n    this.createPackagingBoxStore();\n    this.loadPickingLines();\n  }\n\n  async loadPickingLines() : Promise<void>{\n    return this.pickingLine_store.load().then(\n      (picking_Lines) => {                     \n        this.showLoadIndicator = false;\n        this.pickingLines = picking_Lines;        \n        if(this.pickingLines?.length > 0){\n          // console.log(\"pickingLine:\", this.pickingLines);\n          if(this.allowSelectPickingLines){\n            for (let i = 0; i < this.pickingLines.length; i++) {\n              this.selectedPickingLinesKeys.push(this.pickingLines[i].Id);\n            }            \n          } \n          if(this.pickingList.SalesOrder){         \n            if(this.pickingList.SalesOrder.ContactPerson){\n              // console.log(\"salesOrder_store NO load\");\n              this.onPickingListInitialized();\n            }\n            else{\n              return this.salesOrder_store.byKey(this.pickingList.SalesOrder.Id).then((salesOrder:SalesOrder[]) => \n              {\n                if(this.pickingList?.SalesOrder){\n                  this.pickingList.SalesOrder.ContactPerson = salesOrder[0]?.ContactPerson;\n                  // console.log(\"salesOrder_store load\", this.pickingList.SalesOrder);\n                  this.onPickingListInitialized();\n                }\n              });\n            }\n          }\n          else{\n            this.onPickingListInitialized();\n          }\n        }\n        else{\n          // MessageBox.showError({title: $localize`:@@Failed-Text-NoPickingLines:No picking lines`, message: $localize`:@@Failed-Text-NoPickingLinesOnPickingList:No shipable picking lines were found on picking list` },this.matDialog);\n          // this.onCancel();\n        }\n      },\n      (error) => { \n        this.showLoadIndicator = false;\n        this.pickingLines = undefined;\n        console.error(error);\n        MessageBox.showError({title: $localize`:@@Failed-Text-InvalidPickingLines:Not able to load picking lines`, message: error },this.matDialog);\n        this.onCancel();\n      }\n    );  \n  }\n\n  \n  ngAfterViewInit() {  \n    this.stepper.steps.last._displayDefaultIndicatorType=false;\n    this.stepper.steps.last.editable=false;\n    this.stepper.steps.last._completedOverride=false;    \n  }\n\n  onPickingListInitialized(){\n    this.createLocationStore();\n    this.createInventLocationStore();\n    this.createCountryDataSource();\n    this.createPrinterStore();\n    if(this.inventLocation_store && this.inventLocationId){\n      this.inventLocation_store.load().then(\n        (inventLocations : InventLocation[]) => {           \n          var inventLoc = inventLocations[0];\n          if(inventLoc){\n            if(!this.selectedPrinterId){\n              this.selectedPrinterId = inventLoc.Location?.ShipmentPrinterId;\n            }\n            this.updateSenderFields(inventLoc);\n            this.updateReceiverFields();\n            this.skipSteps();\n          }\n          else{\n            this.updateReceiverFields();\n            this.checkForInternationalShipping();\n            this.skipSteps();\n          }\n        },\n        (error) => { \n          console.error(error);\n          this.updateReceiverFields();\n        }\n      ); \n    }\n    else{      \n      this.updateSenderFields_Company();\n      this.updateReceiverFields();\n      this.skipSteps();\n    }    \n  }\n\n  skipSteps(){\n    if(this.skipLinesTab){\n      if(this.onClick_Lines()){              \n        if(this.skipSenderTab){\n          var senderTabValid: boolean = (this.formInstanceShipment.Sender_Name != undefined && this.formInstanceShipment.Sender_Address1 != undefined && this.formInstanceShipment.Sender_Zipcode != undefined && this.formInstanceShipment.Sender_City != undefined && this.formInstanceShipment.Sender_CountryCode != undefined && this.formInstanceShipment.Sender_Email != undefined && this.formInstanceShipment.Sender_Mobile != undefined);            \n          if(senderTabValid && this._senderCountryRequireState){\n            senderTabValid = this.formInstanceShipment.Sender_State != undefined && this.formInstanceShipment.Sender_State != \"\";\n          }\n          if(senderTabValid){\n            this.stepper.next();\n            if(this.skipReceiverTab){\n              var receiverTabValid: boolean = (this.formInstanceShipment.Receiver_Attention != undefined && this.formInstanceShipment.Receiver_Telephone != undefined && this.formInstanceShipment.Receiver_Address1 != undefined && this.formInstanceShipment.Receiver_Zipcode != undefined && this.formInstanceShipment.Receiver_City != undefined && this.formInstanceShipment.Receiver_CountryCode != undefined && this.formInstanceShipment.Receiver_Email != undefined && this.formInstanceShipment.Receiver_Mobile != undefined);\n              if(receiverTabValid && this._receiverCountryRequireState){\n                receiverTabValid = this.formInstanceShipment.Receiver_State != undefined && this.formInstanceShipment.Receiver_State != \"\";\n              }\n              if(receiverTabValid){\n                this.checkForInternationalShipping();\n                if(!this.isWebshopOrder){\n                  this.stepper.next();\n                }\n              }\n            }\n          }\n        }\n      }\n    }    \n  }\n\n  senderSelectbox_onValueChanged(e:any){   \n    // console.log(e);\n    if(e.event){\n      if(e.value){\n        this.updateSenderFields(e.value);\n      }\n      else{\n        this.updateSenderFields_Company();\n      }\n    }\n  }\n\n  updateSenderFields(inventLoc:InventLocation|undefined|null){\n    if(this.company?.Name){\n      this.formInstanceShipment.Sender_Name = this.company.Name;\n      this.formInstanceShipment.Sender_Attention = inventLoc?.Location?.Name;\n    }\n    else{\n      this.formInstanceShipment.Sender_Name = inventLoc?.Location?.Name;\n    }\n    this.formInstanceShipment.Sender_Address1 = inventLoc?.Location?.Street;\n    this.formInstanceShipment.Sender_Zipcode = inventLoc?.Location?.ZipCode;\n    this.formInstanceShipment.Sender_City = inventLoc?.Location?.City;\n    this.formInstanceShipment.Sender_State = inventLoc?.Location?.State;\n    this.formInstanceShipment.Sender_CountryCode = inventLoc?.Location?.Country;\n    this.formInstanceShipment.Sender_Email = inventLoc?.Location?.Email;\n    this.formInstanceShipment.Sender_Telephone = inventLoc?.Location?.Phone;\n    this.formInstanceShipment.Sender_Mobile = inventLoc?.Location?.Phone;   \n    \n    this.onSenderCountry_Updated(this.formInstanceShipment?.Sender_CountryCode)\n  }\n\n  updateSenderFields_Company(){\n    if(this.company){\n      this.formInstanceShipment.Sender_Name = this.company.Name;    \n      this.formInstanceShipment.Sender_Attention = undefined;\n      this.formInstanceShipment.Sender_Address1 = this.company.Street;\n      this.formInstanceShipment.Sender_Zipcode = this.company.ZipCode;\n      this.formInstanceShipment.Sender_City = this.company.City;\n      this.formInstanceShipment.Sender_State = this.company.State;\n      this.formInstanceShipment.Sender_CountryCode = this.company.Country;\n      this.formInstanceShipment.Sender_Email = this.company.Email;\n      this.formInstanceShipment.Sender_Telephone = this.company.Phone;\n      this.formInstanceShipment.Sender_Mobile = this.company.Phone;\n      this.onSenderCountry_Updated(this.formInstanceShipment?.Sender_CountryCode)\n    }\n  }\n\n  updateReceiverFields(){\n    var attention_name:string|undefined;\n\n    this.formInstanceShipment.Receiver_Name = this.pickingList.SalesOrder?.Customer?.Name; \n    \n    if(this.pickingList.SalesOrder){\n        if(this.pickingList.SalesOrder.DeliveryName){\n          this.formInstanceShipment.Receiver_Name = this.pickingList.SalesOrder?.DeliveryName; \n          if(this.pickingList.SalesOrder?.DeliveryContact){\n            attention_name = this.pickingList.SalesOrder.DeliveryContact;\n          }\n          else{\n            attention_name = this.pickingList.SalesOrder.DeliveryName;\n          }          \n          this.formInstanceShipment.Receiver_Address1 = this.pickingList.SalesOrder.DeliveryStreet;\n          this.formInstanceShipment.Receiver_Zipcode = this.pickingList.SalesOrder.DeliveryZipCode;\n          this.formInstanceShipment.Receiver_City = this.pickingList.SalesOrder.DeliveryCity;\n          this.formInstanceShipment.Receiver_State = this.pickingList.SalesOrder.DeliveryState;\n          this.formInstanceShipment.Receiver_CountryCode = this.pickingList.SalesOrder.DeliveryCountry;\n          this.formInstanceShipment.Receiver_Email = this.pickingList.SalesOrder.DeliveryEmail;    \n          this.formInstanceShipment.Receiver_Mobile = this.pickingList.SalesOrder.DeliveryPhone;          \n      }\n      else if(this.pickingList.SalesOrder.Customer){\n        this.formInstanceShipment.Receiver_Address1 = this.pickingList.SalesOrder?.Customer?.Street;\n        this.formInstanceShipment.Receiver_Zipcode = this.pickingList.SalesOrder?.Customer?.ZipCode;\n        this.formInstanceShipment.Receiver_City = this.pickingList.SalesOrder?.Customer?.City;\n        this.formInstanceShipment.Receiver_State = this.pickingList.SalesOrder?.Customer?.State;\n        this.formInstanceShipment.Receiver_CountryCode = this.pickingList.SalesOrder?.Customer?.Country;\n        this.formInstanceShipment.Receiver_Email = this.pickingList.SalesOrder.Customer.Email;    \n        this.formInstanceShipment.Receiver_Mobile = this.pickingList.SalesOrder.Customer.Phone;\n      }\n      if(!attention_name){\n        if(this.pickingList.SalesOrder.ContactPerson?.Name){\n          attention_name = this.pickingList.SalesOrder.ContactPerson.Name;\n          if(this.pickingList.SalesOrder.ContactPerson.Email)\n            this.formInstanceShipment.Receiver_Email = this.pickingList.SalesOrder.ContactPerson.Email;  \n          if(this.pickingList.SalesOrder.ContactPerson.CellPhone)  \n            this.formInstanceShipment.Receiver_Mobile = this.pickingList.SalesOrder.ContactPerson.CellPhone;\n        }\n        else if(this.pickingList.SalesOrder?.Customer?.ContactPerson?.Name){\n          attention_name = this.pickingList.SalesOrder?.Customer?.ContactPerson?.Name;\n          if(this.pickingList.SalesOrder.Customer.ContactPerson.Email)\n            this.formInstanceShipment.Receiver_Email = this.pickingList.SalesOrder.Customer.ContactPerson.Email;  \n          if(this.pickingList.SalesOrder.Customer.ContactPerson.Phone)  \n            this.formInstanceShipment.Receiver_Mobile = this.pickingList.SalesOrder.Customer.ContactPerson.Phone;\n        }  \n      }    \n    }\n\n    if(attention_name){\n      let attention_names = attention_name.split(\" \");\n      if(attention_names.length > 1){\n        this.formInstanceShipment.Receiver_Attention = attention_names[0]; //First name\n        this.formInstanceShipment.Receiver_Telephone = attention_names.slice(1).join(\" \");//Last name\n      }\n      else{\n        this.formInstanceShipment.Receiver_Attention = attention_name;\n        this.formInstanceShipment.Receiver_Telephone = undefined;\n      }      \n    }\n    else{\n      this.formInstanceShipment.Receiver_Attention = undefined;\n      this.formInstanceShipment.Receiver_Telephone = undefined;      \n    }\n\n    this.onReceiverCountry_Updated(this.formInstanceShipment?.Receiver_CountryCode)    \n  }\n\n  setFocus() {\n    if(this.stepper.selectedIndex == 0){      \n      // this.accountNumberElement?.instance?.focus();\n    }\n    else if(this.stepper.selectedIndex == 1){\n      this.form_Sender.instance?.getEditor(\"Sender_Name\")?.focus();\n    }\n    else if(this.stepper.selectedIndex == 2){\n      this.form_Receiver.instance?.getEditor(\"Receiver_Name\")?.focus();\n    }\n    else if(this.stepper.selectedIndex == 3){\n      // this.priceListElement?.instance?.focus();\n    }\n  }\n\n  pickingLinesSelectionValid: boolean = true;\n  onClick_Lines() : boolean{    \n    var res = false;\n    if(this.allowSelectPickingLines){\n      if(this.selectedPickingLinesKeys.length > 0){\n        this.pickingLinesSelectionValid = true;\n        this.stepper.next();\n        res = true;\n      }\n      else{\n        //No selected picking lines to ship\n        this.pickingLinesSelectionValid = false;\n      }\n    }\n    else if(this.pickingLines && this.pickingLines?.length > 0){\n      if(this.pickingLines && this.pickingLines?.length > 0){\n        this.pickingLinesSelectionValid = true;\n        this.stepper.next();\n        res = true;\n      }\n      else{\n        //No selected picking lines to ship\n        this.pickingLinesSelectionValid = false;\n      }\n    }\n\n    return res;\n  }\n\n  onClick_Sender(){    \n    const validateResult = validationEngine.validateGroup(\"formSender\");\n    if(validateResult?.isValid){\n      this.stepper.next();\n      // this.getLocation();\n      // this.getInventLocation();\n      // this.getPickingList();\n      // this.getPickingLines();\n    } \n  }\n  \n  onClick_Receiver(){    \n    const validateResult = validationEngine.validateGroup(\"formReceiver\");\n    // console.log(this.formInstanceShipment.Receiver_Attention, this.formInstanceShipment.Receiver_Telephone);\n    if(validateResult?.isValid){\n      this.checkForInternationalShipping();\n      this.stepper.next();\n      // if(this.isWebshopOrder){\n      //   this.stepper.next();\n      // }\n    }  \n  }\n\n  checkForInternationalShipping(){\n    this.internationalShipping = false;\n    if(this.formInstanceShipment.Receiver_CountryCode){\n      if(this.cloudDataService.coreService.countries()?.has(this.formInstanceShipment.Receiver_CountryCode.toUpperCase())){\n        var country = this.cloudDataService.coreService.countries()?.get(this.formInstanceShipment.Receiver_CountryCode.toUpperCase());\n        if(country && country.TradeArea != \"EU\"){\n          this.internationalShipping = true;\n          // console.log(\"InternationalShiiping:\", country);\n        }\n      }\n    }\n  }\n\n  calculateProductAndBoxesQty(): {[key: string]:  {qty:number; pickqty: number, product:Product|undefined}}{\n    var pickingLinesSum:{[key: string]:  {qty:number; pickqty: number, product:Product|undefined}} = {};\n\n    var pickingLines:PickingLine[]|undefined;\n    if(this.allowSelectPickingLines){\n      pickingLines = this.pickingLines?.filter(p => (this.selectedPickingLinesKeys.filter(f => f == p.Id?.toString())).length > 0 );        \n    }\n    else if(this.pickingLines){\n      pickingLines = this.pickingLines;\n    }\n    if(pickingLines){\n      \n      for (let i = 0; i < pickingLines.length; i++) {\n        var line:PickingLine = pickingLines[i];\n        const productId:string = line.ProductId?.toString() ?? '';\n        if(productId){\n          if(!pickingLinesSum[productId]){\n            pickingLinesSum[productId] = { qty: 0, pickqty: 0, product: line.Product };\n          }\n          pickingLinesSum[productId].qty += line.QtyPick ?? 0;\n        }     \n      }            \n\n      for (let i = 0; i < this.selectedBoxes.length; i++) {\n        var boxEntry:PackagingBoxEntry = this.selectedBoxes[i];\n        if(boxEntry.Lines){ \n          for (let q = 0; q < boxEntry.Lines.length; q++) {\n            var boxEntryLine:PackagingBoxEntryLine = boxEntry.Lines[q];\n            const productId:string|undefined = boxEntryLine?.PickingLine?.ProductId?.toString() ?? '';\n            if(boxEntryLine && productId){\n              if(!pickingLinesSum[productId]){\n                pickingLinesSum[productId] = { qty: 0, pickqty: 0, product: boxEntryLine?.PickingLine?.Product };\n              }\n              pickingLinesSum[productId].pickqty += boxEntryLine.ParcelLine?.Quantity ?? 0;\n            }            \n          }                  \n        }\n      }        \n    }\n\n    \n\n    return pickingLinesSum;\n  }\n\n  validateProductBoxesQuantity() : boolean{\n    var result: boolean = true;\n    var pickingLinesSum:{[key: string]:  {qty:number; pickqty: number, product:Product|undefined}} = this.calculateProductAndBoxesQty();\n\n    var keys:string[] = Object.keys(pickingLinesSum);\n\n    if(keys.length > 0){\n      for(let productId of keys) {\n        // console.log(\"productId\", pickingLinesSum[productId]);\n        if(pickingLinesSum[productId].qty != pickingLinesSum[productId].pickqty){\n          result = false;\n          break;\n        }\n      }\n    }\n    else{\n      result = false;\n    }\n\n    //console.log(\"pickingLinesSum2\", Object.keys(pickingLinesSum));\n\n    return result;\n  }\n\n  boxesSelectionValid: boolean = true;\n  productBoxesQuantityValid: boolean = true;\n  onClick_Packages(){ \n    this.selectedBoxesList.instance.saveEditData();\n    this.boxesSelectionValid = this.selectedBoxes.length > 0;    \n    if(this.isWebshopOrder || this.boxesSelectionValid){\n      // console.log(\"selectedBoxes\", this.selectedBoxes);      \n\n      if(this.internationalShipping && this.internationalShipping_forceProductInBoxes){\n        this.productBoxesQuantityValid = this.validateProductBoxesQuantity();\n      }\n      else{\n        this.productBoxesQuantityValid = true;\n      }\n\n      if(this.productBoxesQuantityValid){\n        if(!this.disableCarrierProducts){\n          if(this.showCarriers){\n            this.onClick_Packages_CarriersEnabled();\n          }\n          else{\n            this.onClick_Packages_Default();\n          }\n        }\n        else{\n          this.stepper.next();\n        }\n      }\n    }\n  }\n\n  onClick_Packages_Default(){\n    this.fetchShipmentProducts().then(() => \n    {\n      this.stepper.next();\n    });\n  }\n\n  onClick_Packages_CarriersEnabled(){\n    // console.log(\"onClick_Packages_Webshipper\", this.selectedBoxes);\n    this.showLoadIndicator = true;\n    this.loadShipmentCarriers()\n    .then(response =>\n    {\n      response.subscribe((shipment_carriers) => {\n        this.shipmentCarriers = shipment_carriers;\n        if(!this.selectedCarrierId && this.shipmentCarriers?.length > 0){\n          this.selectedCarrierId = this.shipmentCarriers[0].id;\n        }\n        // console.log(this.shipmentCarriers);\n        this.stepper.next();\n        this.showLoadIndicator = false;\n      },\n      (error: any) => \n      {\n        this.showLoadIndicator = false;\n        console.error(error);\n        MessageBox.showError({title: $localize`:@@Failed-Text-Error-LoadingShipmentCarriers:Error loading shipment carriers`, message: error },this.matDialog);\n      });\n    }); \n  }  \n\n  // : Promise<Observable<Shipping_CarrierProduct[]>>\n  fetchShipmentProducts() : Promise<void>{\n    this.showLoadIndicator = true;\n    return this.loadShipmentProducts()\n    .then(response =>\n    {\n      response.subscribe((shipment_products) => {  \n        this.showLoadIndicator = false;\n\n        if(shipment_products){      \n          this.shipmentProducts = shipment_products.map(val => \n            {\n              var shipment_product = Object.assign(new Shipping_CarrierProduct(), val);\n              if(!shipment_product.transit_time && shipment_product.estimated_delivery_date_to){\n                shipment_product.transit_time = new Date(shipment_product.estimated_delivery_date_to).toDateString();\n              }\n              return shipment_product;\n            });\n          if(this.shipmentProducts && this.shipmentProducts.length > 0){\n            if(this.shipmentProducts[0].product_code){\n              this.selectedShipmentProducts= [this.shipmentProducts[0].product_code];\n            }\n          }\n        }\n        else{\n          // console.log(\"shipmentProducts is empty\"); \n        }\n        // console.log(\"shipmentProducts\", this.shipmentProducts, this.selectedShipmentProducts);        \n      },\n      (error: any) => \n      {\n        this.showLoadIndicator = false;\n        console.error(error);\n        MessageBox.showError({title: $localize`:@@Failed-Text-Error-LoadingShipmentProducts:Error loading shipment products`, message: error },this.matDialog);\n      });\n    }); \n  }\n\n  onCarrierSelectionChanged(e:any){    \n    if(e.selectedItem){\n      // console.log(\"onCarrierSelectionChanged\", e.selectedItem);\n      this.selectedCarrierId = e.selectedItem.id;      \n      this.fetchShipmentProducts();\n    }\n  }\n\n  packagingBoxInitEntity: PackagingBox|undefined;\n\n  onAddBoxButtonClick(e:any){\n    // console.log(e);\n    this.packagingBoxInitEntity = e.itemData;\n    this.selectedBoxesList.instance.addRow();\n    this.selectedBoxesList.instance.saveEditData(); \n  }\n\n  async onInitNewRow_Boxes(e:any){\n    var packageBoxEntry:PackagingBoxEntry = Object.assign(new PackagingBoxEntry(), e.data);     \n    packageBoxEntry.Id = new Guid().toString();   \n    packageBoxEntry.Quantity = 1;\n\n    if(this.packagingBoxInitEntity){\n      packageBoxEntry.Length_InCm = this.packagingBoxInitEntity.Length_InCm;\n      packageBoxEntry.Width_InCm = this.packagingBoxInitEntity.Width_InCm;\n      packageBoxEntry.Height_InCm = this.packagingBoxInitEntity.Height_InCm;\n      packageBoxEntry.Weight_InKg = this.packagingBoxInitEntity.Weight_InKg;\n      if(this.packagingBoxInitEntity.BoxType){\n        // console.log(this.packagingBoxInitEntity.BoxType);\n        packageBoxEntry.BoxType = PackagingBoxType[this.packagingBoxInitEntity.BoxType];\n      }\n      packageBoxEntry.BoxId =  this.packagingBoxInitEntity.BoxId;\n    }\n    if(!packageBoxEntry.BoxType){\n      packageBoxEntry.BoxType = PackagingBoxType[PackagingBoxType.CustomSize];\n    }\n    \n    this.packagingBoxInitEntity = undefined;    \n    e.data = packageBoxEntry;\n\n    // console.log(this.selectedPickingLinesKeys, this.pickingLines);\n\n    if(this.internationalShipping && this.internationalShipping_forceProductInBoxes){\n      var pickingLineIds:any[] = [];\n\n      if(this.allowSelectPickingLines){\n        pickingLineIds = this.selectedPickingLinesKeys;\n      }\n      else if(this.pickingLines){\n        for (let i = 0; i < this.pickingLines.length; i++) {\n          const pickLineId:string|undefined = this.pickingLines[i].Id;\n          if(pickLineId){\n            pickingLineIds.push(pickLineId);\n          }\n        }\n      }\n\n      var pickingLinesSum:{[key: string]:  {qty:number; pickqty: number, product:Product|undefined}} = this.calculateProductAndBoxesQty();\n      // console.log(pickingLinesSum);\n\n      packageBoxEntry.Lines = [];\n      if(pickingLineIds.length > 0){\n        for (let i = 0; i < pickingLineIds.length; i++) {\n          var pickingLine = this.pickingLines?.filter(p => p.Id == pickingLineIds[i])[0];\n          if(pickingLine && pickingLine.ProductId && pickingLine.Product){\n            var productSum = pickingLinesSum[pickingLine.ProductId];\n            if(productSum && (productSum.pickqty < productSum.qty)){\n              var packageBoxEntryLine:PackagingBoxEntryLine = Object.assign(new PackagingBoxEntryLine(), {});\n              packageBoxEntryLine.PickingLine = pickingLine;        \n              packageBoxEntryLine.ParcelLine = Object.assign(new Shipping_ParcelLine(), {});\n              packageBoxEntryLine.ParcelLine.PickingListLinesId = pickingLine.Id;\n              packageBoxEntryLine.ParcelLine.Quantity = (productSum.qty - productSum.pickqty);\n              \n              packageBoxEntry.Lines.push(packageBoxEntryLine);\n            }\n            // console.log(\"pickingLine:\", pickingLine);\n          }\n        }\n      }    \n    }\n    // console.log(\"onInitNewRow_Boxes\", e.data);\n  }\n\n  async setCellValue_BoxType  (newData:any, value:any, currentRowData:any) {    \n    newData.BoxType = value;\n    var packagingType: PackagingBoxType = value;\n    // console.log(packagingType);\n    switch (packagingType) {\n      case PackagingBoxType.CustomSize:\n        {\n          if(currentRowData.Length_InCm)\n            newData.Length_InCm =  null;\n          if(currentRowData.Width_InCm)\n            newData.Width_InCm =  null;\n          if(currentRowData.Height_InCm)\n            newData.Height_InCm =  null;\n          if(currentRowData.Weight_InKg)\n            newData.Weight_InKg =  null;             \n            break;\n        }      \n      case PackagingBoxType.EURPallet:\n        {\n          newData.Length_InCm =  120;\n          newData.Width_InCm =  80;\n          if(currentRowData.Height_InCm)\n            newData.Height_InCm =  null;\n          if(currentRowData.Weight_InKg)\n            newData.Weight_InKg =  null;                        \n            break;\n        }\n      case PackagingBoxType.HalfPallet:\n        {\n          newData.Length_InCm =  80;\n          newData.Width_InCm =  60;\n          if(currentRowData.Height_InCm)\n            newData.Height_InCm =  null;\n          if(currentRowData.Weight_InKg)\n            newData.Weight_InKg =  null;              \n            break;\n        }  \n      case PackagingBoxType.QuarterPallet:\n        {\n            newData.Length_InCm =  60;\n            newData.Width_InCm =  40;\n            if(currentRowData.Height_InCm)\n              newData.Height_InCm =  null;\n            if(currentRowData.Weight_InKg)\n              newData.Weight_InKg =  null;                           \n            break;\n        }  \n      case PackagingBoxType.OceanPallet:\n        {\n            newData.Length_InCm =  120;\n            newData.Width_InCm =  100;\n            if(currentRowData.Height_InCm)\n              newData.Height_InCm =  null;\n            if(currentRowData.Weight_InKg)\n              newData.Weight_InKg =  null;\n            break;\n        }   \n      case PackagingBoxType.Documents:\n        {\n            newData.Length_InCm =  1;\n            newData.Width_InCm =  1;\n            newData.Height_InCm =  1;\n            if(currentRowData.Weight_InKg)\n              newData.Weight_InKg =  null;\n            break;\n        } \n      case PackagingBoxType.Envelope:\n        {\n            newData.Length_InCm =  1;\n            newData.Width_InCm =  1;\n            newData.Height_InCm =  1;\n            newData.Weight_InKg =  0.5;\n            break;\n        }                                                  \n    \n      default:\n        break;\n    }\n  }  \n\n  loadShipmentCarriers() : Promise<Observable<Shipping_Carrier[]>>{\n    var url:string = `${this.cloudDataService.getMobiManagementApiUrl('ShippingApi/Carriers')}`;\n    return this.cloudDataService.getAll<Shipping_Carrier>(url);\n  }\n\n  loadShipmentProducts() : Promise<Observable<Shipping_CarrierProduct[]>>{\n    var url:string = `${this.cloudDataService.getMobiManagementApiUrl('ShippingApi/ProcuctPrices')}`;\n\n    var body:ShipmentPriceRequest = Object.assign(new ShipmentPriceRequest(), {});\n    if(this.showCarriers){\n      body.Carrier_Id = this.selectedCarrierId;\n    }    \n    body.Sender=this.create_Shipment_Sender();\n    body.Receiver = this.create_Shipment_Receiver();\n    body.Packages = this.create_Shipping_Parcels();\n    body.IsReturn = this.returnLabelsEnabled;\n\n    // console.log(\"loadShipmentProducts\", body);\n    return this.cloudDataService.post<Shipping_CarrierProduct[]>(url, body);\n\n  }\n\n  create_Shipment_Sender() : Shipment_Sender{\n    var sender:Shipment_Sender = Object.assign(new Shipment_Sender(), {});\n    sender.address1 = this.formInstanceShipment.Sender_Address1;\n    sender.attention = this.formInstanceShipment.Sender_Attention;\n    sender.city = this.formInstanceShipment.Sender_City;\n    sender.country_code = this.formInstanceShipment.Sender_CountryCode;\n    sender.email = this.formInstanceShipment.Sender_Email;\n    sender.mobile_phone = this.formInstanceShipment.Sender_Mobile;\n    sender.name = this.formInstanceShipment.Sender_Name;\n    sender.zipcode = this.formInstanceShipment.Sender_Zipcode;\n    return sender;\n  }\n\n  create_Shipment_Receiver() : Shipment_Receiver{\n    var receiver:Shipment_Receiver = Object.assign(new Shipment_Receiver(), {});\n    receiver.address1 = this.formInstanceShipment.Receiver_Address1;\n    receiver.attention = this.formInstanceShipment.Receiver_Attention + ' ' + this.formInstanceShipment.Receiver_Telephone;\n    receiver.city = this.formInstanceShipment.Receiver_City;\n    receiver.country_code = this.formInstanceShipment.Receiver_CountryCode;\n    receiver.email = this.formInstanceShipment.Receiver_Email;\n    receiver.instruction = this.formInstanceShipment.Receiver_Instruction;\n    receiver.mobile_phone = this.formInstanceShipment.Receiver_Mobile;\n    receiver.name = this.formInstanceShipment.Receiver_Name;\n    receiver.zipcode = this.formInstanceShipment.Receiver_Zipcode;\n    return receiver;\n  }\n\n  create_Shipping_Parcels() : Shipping_Parcel[]{\n    var parcels:Shipping_Parcel[] = [];\n    if(this.selectedBoxes?.length > 0){\n      for (let i = 0; i < this.selectedBoxes.length; i++) {\n        var parcel:Shipping_Parcel = Object.assign(new Shipping_Parcel(), {});\n        parcel.quantity = 1;\n        parcel.length = this.selectedBoxes[i].Length_InCm;\n        parcel.width = this.selectedBoxes[i].Width_InCm;\n        parcel.height = this.selectedBoxes[i].Height_InCm;\n        parcel.weight = this.selectedBoxes[i].Weight_InKg;\n        parcel.boxtype = this.selectedBoxes[i].BoxType;\n        parcels.push(parcel);\n      }      \n    }\n    return parcels;\n  }  \n  \n  onShipmentProductSelectionChanged(e:any){\n    // console.log(\"onShipmentProductSelectionChanged\",e);\n    this.servicePoints = [];\n    this.selectedServicePoint = undefined;\n    if(e.addedItems?.length > 0){\n      this.selectedShippingProduct = e.addedItems[0];\n      // if(this.selectedCarrierId == undefined || this.selectedCarrierId == \"\"){\n      //   this.selectedCarrierId =   this.selectedShippingProduct?.carrier_id;\n      //   // console.log(\"changed\",this.selectedCarrierId);\n      // } \n      this.selectedCarrierId =   this.selectedShippingProduct?.carrier_id;\n      // console.log(\"changed\",this.selectedCarrierId,this.selectedShippingProduct);\n      if(this.selectedShippingProduct?.service_point_required)\n        this.servicePointRequired = true;\n      else\n        this.servicePointRequired = false;\n      if(this.selectedShippingProduct?.service_point_available)\n        this.servicePointAvailable = true;\n      else\n        this.servicePointAvailable = false;        \n    }\n    else{\n      this.selectedShippingProduct = undefined;   \n      this.servicePointRequired = false;   \n      this.servicePointAvailable = false;\n    }\n    if(this.servicePointRequired || this.servicePointAvailable){\n      this.showLoadIndicator = true;\n      this.loadServicePoints()\n      .then(response =>\n      {\n        response.subscribe((service_points) => {   \n          this.servicePoints = service_points;       \n          // console.log(this.servicePoints);\n          this.showLoadIndicator = false;\n        },\n        (error: any) => \n        {\n          this.showLoadIndicator = false;\n          console.error(error);\n          MessageBox.showError({title: $localize`:@@Failed-Text-Error loadingServicePoints:Error loading service points`, message: error },this.matDialog);\n        });\n      }); \n    }\n    this.productCodeValid = validationEngine.validateGroup(\"ProductCode\")?.isValid;\n  }\n\n  validationConfig_ProductCode = {\n    getValue: () => {    \n      return this.selectedShipmentProducts?.length > 0;\n    }\n  };\n\n  loadServicePoints() : Promise<Observable<Shipping_ServicePoint[]>>{\n    // api/ShippingApi/ServicePoints?productCode=glsb_test&addressLine=&zipcode=8520&city=&countryCode=dk&quantity=20\n    var address: string  = this.formInstanceShipment.Receiver_Address1 ?? '';\n    var zipcode: string  = this.formInstanceShipment.Receiver_Zipcode ?? '';\n    var city: string  = this.formInstanceShipment.Receiver_City ?? '';\n    var country: string  = this.formInstanceShipment.Receiver_CountryCode ?? '';\n    var max: number = 20;\n    var urlQuerystring: string = `?productCode='${this.selectedShippingProduct?.product_code}'&addressLine='${address}'&zipcode='${zipcode}'&city=${city}&countryCode=${country}&quantity=${max}`;\n    \n    if(this.shipmentProviderType == ShipmentProviderType.Webshipper || this.shipmentProviderType == ShipmentProviderType.Shipmondo){\n      urlQuerystring += `&carrierCode=${this.selectedCarrierId}`;\n    }   \n    // console.log(urlQuerystring, this.selectedShippingProduct);\n    var url:string = `${this.cloudDataService.getMobiManagementApiUrl('ShippingApi/ServicePoints')}${urlQuerystring}`;\n\n    return this.cloudDataService.getAll<Shipping_ServicePoint>(url);\n\n  }\n\n  onServicePointSelectionChanged(e:any){\n    this.servicePointValid = validationEngine.validateGroup(\"ServicePoint\")?.isValid;\n  }\n\n  validationConfig_ServicePoint = {\n    getValue: () => {    \n      return this.selectedServicePoint;\n    }\n  };\n\n  productCodeValid:boolean|undefined;\n  servicePointValid:boolean|undefined = true;\n  shippingInfoValid:boolean|undefined;\n\n  validateShipment(){\n    if(!this.disableCarrierProducts)\n      this.productCodeValid = validationEngine.validateGroup(\"ProductCode\")?.isValid;\n    else\n      this.productCodeValid = true;\n    \n    if(!this.disableCarrierProducts && this.servicePointRequired){    \n      this.servicePointValid = validationEngine.validateGroup(\"ServicePoint\")?.isValid;\n    }\n    else{\n      this.servicePointValid = true;\n    }\n    \n    this.shippingInfoValid = validationEngine.validateGroup(\"formShippingInfo\")?.isValid;\n  }\n\n  onCreateShipmentClick(){\n    this.validateShipment();\n\n    if(this.productCodeValid && this.shippingInfoValid && this.servicePointValid){\n      this.stepper.next();\n      this.createShipment();\n    }     \n  }\n\n  onClose() {\n    this.dialogRef.close({result: {id: \"\", dialogResult: MessageResult.Ok}});\n  }\n  \n  onCancelClick() {\n    this.onCancel();\n  }\n\n  onCancel() {\n    this.dialogRef.close({result: {id: \"\", dialogResult: MessageResult.Cancel}});\n  }\n\n  createShipment() {\n    // this.isLoadingData = true;\n\n    var request:CreateShipmentRequest = Object.assign(new CreateShipmentRequest(), {});\n    request.PickingListId = this.pickingList.Id;\n    request.Sender = Object.assign(new Shipment_Sender(), {});\n    request.Receiver = Object.assign(new Shipment_Receiver(), {});\n    if(!this.returnLabelsEnabled){\n      request.Sender.name = this.formInstanceShipment.Sender_Name;\n      request.Sender.attention = this.formInstanceShipment.Sender_Attention;\n      request.Sender.address1 = this.formInstanceShipment.Sender_Address1;\n      request.Sender.zipcode = this.formInstanceShipment.Sender_Zipcode;\n      request.Sender.city = this.formInstanceShipment.Sender_City;\n      request.Sender.state_code = this.formInstanceShipment.Sender_State;\n      request.Sender.country_code = this.formInstanceShipment.Sender_CountryCode;\n      request.Sender.email = this.formInstanceShipment.Sender_Email;\n      request.Sender.mobile_phone = this.formInstanceShipment.Sender_Mobile;\n\n      request.Receiver.name = this.formInstanceShipment.Receiver_Name;\n      request.Receiver.attention = this.formInstanceShipment.Receiver_Attention + ' ' + this.formInstanceShipment.Receiver_Telephone;\n      request.Receiver.address1 = this.formInstanceShipment.Receiver_Address1;\n      request.Receiver.zipcode = this.formInstanceShipment.Receiver_Zipcode;\n      request.Receiver.city = this.formInstanceShipment.Receiver_City;\n      request.Receiver.state_code = this.formInstanceShipment.Receiver_State;\n      request.Receiver.country_code = this.formInstanceShipment.Receiver_CountryCode;\n      request.Receiver.email = this.formInstanceShipment.Receiver_Email;\n      request.Receiver.mobile_phone = this.formInstanceShipment.Receiver_Mobile;    \n      request.Receiver.instruction = this.formInstanceShipment.Receiver_Instruction;    \n    }\n    else{\n      request.Receiver.name = this.formInstanceShipment.Sender_Name;\n      request.Receiver.attention = this.formInstanceShipment.Sender_Attention;\n      request.Receiver.address1 = this.formInstanceShipment.Sender_Address1;\n      request.Receiver.zipcode = this.formInstanceShipment.Sender_Zipcode;\n      request.Receiver.city = this.formInstanceShipment.Sender_City;\n      request.Receiver.state_code = this.formInstanceShipment.Sender_State;\n      request.Receiver.country_code = this.formInstanceShipment.Sender_CountryCode;\n      request.Receiver.email = this.formInstanceShipment.Sender_Email;\n      request.Receiver.mobile_phone = this.formInstanceShipment.Sender_Mobile;\n\n      request.Sender.name = this.formInstanceShipment.Receiver_Name;\n      request.Sender.attention = this.formInstanceShipment.Receiver_Attention + ' ' + this.formInstanceShipment.Receiver_Telephone;\n      request.Sender.address1 = this.formInstanceShipment.Receiver_Address1;\n      request.Sender.zipcode = this.formInstanceShipment.Receiver_Zipcode;\n      request.Sender.city = this.formInstanceShipment.Receiver_City;\n      request.Sender.state_code = this.formInstanceShipment.Receiver_State;\n      request.Sender.country_code = this.formInstanceShipment.Receiver_CountryCode;\n      request.Sender.email = this.formInstanceShipment.Receiver_Email;\n      request.Sender.mobile_phone = this.formInstanceShipment.Receiver_Mobile;\n    }\n\n    if(this.selectedBoxes.length > 0){\n      // console.log(\"selectedBoxes\", this.selectedBoxes);\n\n      var selectedPickingLines:PickingLine[] = [];\n\n      if(this.pickingLines){\n        if(this.allowSelectPickingLines){\n          selectedPickingLines = this.pickingLines?.filter(p => (this.selectedPickingLinesKeys.filter(f => f == p.Id?.toString())).length > 0 );        \n        }\n        else if(this.pickingLines){\n          selectedPickingLines = this.pickingLines;\n        }\n      }\n\n      request.Packages = [];\n      for (let i = 0; i < this.selectedBoxes.length; i++) {\n        var packageBoxEntry = this.selectedBoxes[i];\n        if(this.internationalShipping && this.internationalShipping_forceProductInBoxes){\n          var lineCount:number = (packageBoxEntry.Lines?.length) ?? 0;\n          if(packageBoxEntry && lineCount > 0){\n            var parcel:Shipping_Parcel = Object.assign(new Shipping_Parcel(), {});\n            parcel.boxtype = packageBoxEntry.BoxType;\n            parcel.height = packageBoxEntry.Height_InCm;\n            parcel.length = packageBoxEntry.Length_InCm;\n            parcel.weight = packageBoxEntry.Weight_InKg;\n            parcel.width = packageBoxEntry.Width_InCm;\n            parcel.quantity = 1;\n\n            \n            if(packageBoxEntry.Lines){\n              parcel.Lines = [];          \n              for (let q = 0; q < lineCount; q++) {\n                var entryLine:PackagingBoxEntryLine|undefined = packageBoxEntry.Lines[q];\n                if(entryLine.ParcelLine){\n                  var parcelLine:Shipping_ParcelLine = Object.assign(new Shipping_ParcelLine(), {});\n                  parcelLine.PickingListLinesId = entryLine.ParcelLine.PickingListLinesId;\n                  parcelLine.Quantity = entryLine.ParcelLine.Quantity;\n                  parcel.Lines.push(parcelLine);\n                }\n              }\n            }\n            request.Packages.push(parcel);\n          }\n        }\n        else{\n          var parcel:Shipping_Parcel = Object.assign(new Shipping_Parcel(), {});\n          parcel.boxtype = packageBoxEntry.BoxType;\n          parcel.height = packageBoxEntry.Height_InCm;\n          parcel.length = packageBoxEntry.Length_InCm;\n          parcel.weight = packageBoxEntry.Weight_InKg;\n          parcel.width = packageBoxEntry.Width_InCm;\n          parcel.quantity = packageBoxEntry.Quantity;\n          request.Packages.push(parcel);\n          parcel.Lines = [];\n          \n          for (let q = 0; q < selectedPickingLines.length; q++) {\n            var parcelLine:Shipping_ParcelLine = Object.assign(new Shipping_ParcelLine(), {});\n            parcelLine.PickingListLinesId = selectedPickingLines[q].Id;\n            parcelLine.Quantity = selectedPickingLines[q].QtyPick;\n            parcel.Lines.push(parcelLine);\n          }\n\n        }\n      }\n    }\n    else if(this.isWebshopOrder){\n      // console.log(\"No BOXES selected: web order\");\n      if(this.pickingLines){\n      var pickLines:PickingLine[]|undefined;\n        if(this.allowSelectPickingLines){\n          pickLines = this.pickingLines?.filter(p => (this.selectedPickingLinesKeys.filter(f => f == p.Id?.toString())).length > 0 );        \n        }\n        else{\n          pickLines = this.pickingLines;\n        }\n        request.PickinglineIds_NoPackages = pickLines.map(val => \n          {\n            return val.Id?.toString() ?? '';\n          });\n        // console.log(\"No BOXES selected: web order\", request);\n      }\n    }\n    // console.log(\"BOXES\", this.selectedBoxes, this.isWebshopOrder);\n\n    if(this.selectedServicePoint){\n      request.ServicePoint = this.selectedServicePoint;\n    }\n\n    if(!this.disableCarrierProducts){\n      if(this.selectedCarrierId){\n        request.CarrierCode = this.selectedCarrierId;\n      }\n      else{\n        request.CarrierCode = this.pickingList.SalesOrder?.ShipmentCarrierCode;\n      }\n    }\n    else{\n      request.CarrierCode = this.pickingList.SalesOrder?.ShipmentCarrierCode;\n    }\n\n    if(this.selectedCarrierId){\n      request.CarrierCode = this.selectedCarrierId;\n    }\n    else{\n      request.CarrierCode = this.pickingList.SalesOrder?.ShipmentCarrierCode;\n    }\n\n    if(this.selectedShippingProduct){\n      request.ProductCode = this.selectedShippingProduct.product_code;\n      if(!this.selectedCarrierId && this.selectedShippingProduct.carrier_id){\n        request.CarrierCode = this.selectedShippingProduct.carrier_id;\n      }\n      if(this.returnLabelsEnabled)\n        request.ReturnLabel = this.selectedShippingProduct.is_return;\n      else\n        request.ReturnLabel = false;\n    }\n    else{\n      request.ProductCode = this.pickingList.SalesOrder?.ShipmentProductCode;\n      if(this.pickingList.SalesOrder?.ParcelshopId){\n        request.ServicePoint = Object.assign(new Shipping_ServicePoint(), {});\n        request.ServicePoint.id = this.pickingList.SalesOrder.ParcelshopId;\n        request.ServicePoint.name = this.pickingList.SalesOrder.ParcelshopName;\n        request.ServicePoint.address_line = this.pickingList.SalesOrder.ParcelshopStreet;\n        request.ServicePoint.address_line2 = this.pickingList.SalesOrder.ParcelshopStreet2;\n        request.ServicePoint.city = this.pickingList.SalesOrder.ParcelshopCity;\n        request.ServicePoint.zip_code = this.pickingList.SalesOrder.ParcelshopZip;\n        request.ServicePoint.country_code = this.pickingList.SalesOrder.ParcelshopCountry;\n      }\n      request.ReturnLabel = this.returnLabelsEnabled;\n    }\n\n    request.ShippingDate = this.formInstanceShipment.ShippingDate;\n    request.Reference = this.formInstanceShipment.Reference;\n    request.CreatePackageList = this.createPackageList;\n    request.Remarks = this.formInstanceShipment.Remarks;\n    if(this.selectedPrinterId){\n      request.PrintLabels = true;\n      request.PrinterId = this.selectedPrinterId;\n    } \n    else{\n      request.PrintLabels = false;\n    }   \n      \n    \n    \n    var postUrl:string = this.cloudDataService.getMobiManagementApiUrl(`mobimanagement/PickingList(${this.pickingList.Id})/CreateShipment`);\n    // console.log(\"request\", request, this.selectedCarrierId, this.selectedShipmentProducts);\n    // console.log(\"json request\", request);\n\n    this.isLoadingData = true;\n\n    this.cloudDataService.post<Shipping_CarrierProduct[]>(postUrl, {request: request, async: this.async_call}, 60000)\n    .then(response =>\n    {\n      response.subscribe((createShipment_response) => {\n        // console.log(createShipment_response);\n        this.isLoadingData = false;\n        this.createCompleted = true;\n        this.createError = false;\n        this.createErrorText = \"\";\n      },\n      (error: any) => \n      {\n        console.error(error);\n        this.isLoadingData = false;\n        this.createCompleted = false;\n        this.createError = true; \n        this.createErrorText = error?.message ?? error?.error ?? error;\n      });\n    });  \n  }\n\n   // *** Company DataSource ******************\n \n   createCompanyStore(){\n     this.company_store = new ODataStore({\n       url: this.cloudDataService.getMobiManagementODataUrl(\"companyinfo/main()\"), \n       beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"GET\"){          \n          var expandValues : string[] = ['ShipmentVendor($select=Name,ShipmentProvider,ProductChannel)'];\n          if(expandValues?.length > 0){\n            e.params.$expand = expandValues.toString();          \n          }        \n        }          \n      },            \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4               \n     });    \n   } \n\n   // *** PickingList DataSource ******************\n\n  odatastore_pickingList_filter:  string|undefined;\n\n  applyPickingListStoreFilter(){  \n    this.odatastore_pickingList_filter = `Id  eq ${this.pickingListId}`; \n  }  \n\n  createPickingListStore(){\n    this.pickingList_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"PickingList\"),\n      beforeSend: (e) => { \n        this.applyPickingListStoreFilter();\n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.params.$orderby = \"PickingListId desc\";\n          }\n          e.params.$filter = this.odatastore_pickingList_filter;\n          var expandValues : string[] = ['SalesOrder($expand=Customer($expand=ContactPerson($select=Name,Email)))'];\n          // var expandValues : string[] = ['SalesOrder($expand=Customer,ContactPerson($select=Name,Email))'];\n          if(expandValues?.length > 0){\n            e.params.$expand = expandValues.toString();          \n          }        \n        }          \n      },      \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,\n      fieldTypes: {\n        CustomerId: \"Guid\"\n      }                \n    });    \n  } \n\n  createSalesOrderStore(){\n    this.salesOrder_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"SalesOrder\"),\n      beforeSend: (e) => { \n        this.applyPickingListStoreFilter();\n        if(e.method?.toUpperCase() == \"GET\"){\n          var expandValues : string[] = ['ContactPerson($select=Name,Email)'];\n          if(expandValues?.length > 0){\n            e.params.$expand = expandValues.toString();          \n          }        \n        }          \n      },      \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,\n      fieldTypes: {\n        CustomerId: \"Guid\"\n      }                \n    });       \n  }\n\n  // *** PickingLine DataSource ******************\n  odatastore_pickingLine_filter:  string|undefined;\n\n  applyPickingLineStoreFilter(){  \n    if(!this.returnLabelsEnabled)\n    {\n      this.odatastore_pickingLine_filter = `PickingListId  eq ${this.pickingListId} and QtyPick gt 0 and QtyPick eq Qty and (ShipmentId eq null or Shipment/InternalStatus eq 'Cancelled' or Shipment/InternalStatus eq 'Error')`;\n    }\n    else\n    {\n      this.odatastore_pickingLine_filter = `PickingListId  eq ${this.pickingListId} and (Shipment/InternalStatus eq 'Booked' or Shipment/InternalStatus eq 'PartiallyDispatched' or Shipment/InternalStatus eq 'Dispatched' or Shipment/InternalStatus eq 'PartiallyDelivered' or Shipment/InternalStatus eq 'Delivered')`;\n    }\n    // this.odatastore_pickingLine_filter = `PickingListId  eq ${this.pickingListId} and QtyPick gt 0 and Product/any(o: o/SKU eq '23496')`;\n  }  \n\n  createPickingLineStore(){\n    this.pickingLine_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"PickingLine\"),\n      beforeSend: (e) => { \n        this.applyPickingLineStoreFilter();\n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.params.$orderby = \"Index asc\";\n          }\n          e.params.$filter = this.odatastore_pickingLine_filter;\n          // console.log(e.params.$filter);\n          var expandValues : string[] = ['Product($select=ProductId,Name,SKU),Color($select=Code,Name),Size($select=Code,Name),Config($select=Code,Name)'];\n          if(expandValues?.length > 0){\n            e.params.$expand = expandValues.toString();          \n          }        \n        }          \n      },      \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,\n      fieldTypes: {\n        CustomerId: \"Guid\"\n      }                \n    });    \n  }\n  \n  // *** Location DataSource ******************\n\n  location_store: ODataStore|undefined;\n  odatastore_location_filter:  string|undefined;\n\n  applyLocationStoreFilter(){  \n    this.odatastore_location_filter = `Id  eq fff1236c-1d20-473c-9f53-4c95fdd00dcb`; \n  }  \n\n  async createLocationStore(){     \n\n    this.location_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Location\"),\n      beforeSend: (e) => { \n        this.applyLocationStoreFilter();\n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.params.$orderby = \"Name\";\n          }\n          e.params.$filter = this.odatastore_location_filter;\n          var expandValues : string[] = [\"ShipmentPrinter\"];\n          if(expandValues?.length > 0){\n            e.params.$expand = expandValues.toString();                      \n          }        \n        }          \n      },\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4\n    });  \n  }  \n\n  async getLocation() {\n    if(this.location_store){\n      \n      this.location_store.load().then(\n        (locations) => {           \n          var location = locations[0];\n          // console.log(\"location:\", location);\n        },\n        (error) => { \n          console.error(error);\n        }\n      );\n\n    }\n  }\n     \n  // *** InventLocation DataSource ******************\n\n  inventLocation_store: ODataStore|undefined;\n  inventLocation_ds: DataSource|undefined;\n  odatastore_inventLocation_filter:  string|undefined;  \n  \n  applyInventLocationStoreFilter(){  \n    if(this.inventLocationId){\n      this.odatastore_inventLocation_filter = `Id  eq ${this.inventLocationId}`; \n    }\n    else{\n      this.odatastore_inventLocation_filter = `1 eq 2`; \n    }\n    \n  }  \n\n  async createInventLocationStore(){     \n    this.inventLocation_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"InventLocation\"),\n      beforeSend: (e) => { \n        this.applyInventLocationStoreFilter();\n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.params.$orderby = \"Name\";\n          }\n          e.params.$filter = this.odatastore_inventLocation_filter;\n          var expandValues : string[] = [\"Location($expand=ShipmentPrinter)\"];\n          if(expandValues?.length > 0){\n            e.params.$expand = expandValues.toString();                      \n          }        \n        }          \n      },\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4\n    });   \n\n    this.inventLocation_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"InventLocation\"),\n        beforeSend: (e) => { \n          if(e.method?.toUpperCase() == \"GET\"){\n            if(!e.params?.$orderby){\n              e.params.$orderby = \"Name\";\n            }\n            var expandValues : string[] = [\"Location($expand=ShipmentPrinter)\"];\n            if(expandValues?.length > 0){\n              e.params.$expand = expandValues.toString();                      \n            }        \n          }          \n        },\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4\n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new InventLocation(), dataItem);\n      }            \n    });      \n  }\n\n  // *** InventLocation DataSource ******************\n\n  async createPrinterStore(){     \n    this.printer_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"GatewayPrinter\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });   \n  }\n\n  // *** PackagingBox DataSource ******************\n\n  async createPackagingBoxStore(){\n    this.packagingBox_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"PackagingBox\"),\n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.params.$orderby = \"Name asc\";\n          }\n          var expandValues : string[] = [];\n          if(expandValues?.length > 0){\n            e.params.$expand = expandValues.toString();          \n          }        \n        }          \n      },      \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4               \n    }); \n    \n    this.packagingBox_store.load().then(\n      (packaging_boxes) => {                             \n        this.packagingBoxes = packaging_boxes;        \n      },\n      (error) => { \n        console.error(error);\n      }\n    );     \n  } \n\n  //--- PackagingBoxType\n  packagingBoxType_ds: any[] = [  \n    { value: PackagingBoxType.CustomSize, text: $localize`:@@EnumValue-PackagingBoxType-CustomSize:Custom size` }, \n    { value: PackagingBoxType.EURPallet, text: $localize`:@@EnumValue-PackagingBoxType-EURPallet:EUR pallet` }, \n    { value: PackagingBoxType.HalfPallet, text: $localize`:@@EnumValue-PackagingBoxType-HalfPallet:Half pallet` },\n    { value: PackagingBoxType.QuarterPallet, text: $localize`:@@EnumValue-PackagingBoxType-QuarterPallet:Quarter pallet` }, \n    { value: PackagingBoxType.OceanPallet, text: $localize`:@@EnumValue-PackagingBoxType-OceanPallet:Ocean pallet` }, \n    { value: PackagingBoxType.Documents, text: $localize`:@@EnumValue-PackagingBoxType-Documents:Documents` }, \n    { value: PackagingBoxType.Envelope, text: $localize`:@@EnumValue-PackagingBoxType-Envelope:Envelope` }, \n  ]  \n\n  //--- CountryDataSource\n\n  sender_country_ds: ArrayStore<Country>|undefined;\n  receiver_country_ds: ArrayStore<Country>|undefined;\n\n  createCountryDataSource(){\n    this.sender_country_ds = new ArrayStore<Country>({key: 'Code2', data: Array.from(this.cloudDataService.coreService.countries()?.values() ?? [])}); \n    this.receiver_country_ds = new ArrayStore<Country>({key: 'Code2', data: Array.from(this.cloudDataService.coreService.countries()?.values() ?? [])}); \n  }\n  \n  onValueChanged_SenderCountry(e:any, data:any) {\n    // console.log(\"onValueChanged_SenderCountry\", e.value);\n    this.onSenderCountry_Updated(e.value);\n  }\n\n  _senderCountryRequireState: boolean|undefined = false;\n  onSenderCountry_Updated(countryCode:string|undefined){\n    this.createSenderStateDataSource(countryCode);\n    if(countryCode){\n      let country = this.sender_country_ds?.byKey(countryCode).then((data:Country) => \n      {\n        if(data.Shipping_Require_State){\n          this._senderCountryRequireState = data.Shipping_Require_State;\n        }\n        else{\n          this._senderCountryRequireState = false;\n        }\n        // console.log(\"onSenderCountry_Updated1\", countryCode, this._senderCountryRequireState, data);\n      });\n    }\n    else{\n      this._senderCountryRequireState = false;\n      // console.log(\"onSenderCountry_Updated2\", countryCode, this._senderCountryRequireState);\n    }    \n  }\n\n  sender_state_ds: DataSource|undefined;\n  createSenderStateDataSource(countryCode:string|undefined){   \n    if(countryCode){\n      this.sender_state_ds = new DataSource({\n        store: new ODataStore({\n          url: this.cloudDataService.getMobiManagementODataUrl(\"CountryState\"),\n          beforeSend: (e) => { \n            if(e.method?.toUpperCase() == \"GET\"){\n              if(!e.params?.$orderby){\n                e.params.$orderby = \"Name\";\n              }\n              if(e.params.$filter){\n                e.params.$filter = `(${e.params.$filter}) and (CountryCode eq '${countryCode}') and (Type eq 'county' or Type eq null)`;        \n              }\n              else{\n                e.params.$filter = `CountryCode eq '${countryCode}' and (Type eq 'county' or Type eq null)`; \n              }              \n              // console.log(e);    \n            }\n          },        \n          withCredentials: true, \n          key: \"Id\",\n          keyType: \"Int32\",\n          version: 4,        \n        }),\n        requireTotalCount: false,\n        pageSize: 200,\n        select: [\"Id\", \"Name\", \"Name_Native\", \"StateCode\", \"CountryId\", \"CountryCode\", \"CountryName\", \"CountryLocalName\"],\n        map: (dataItem:any) => {        \n          return Object.assign(new CountryState(), dataItem);\n        }            \n      });  \n    }\n  }\n  \n  receiver_state_ds: DataSource|undefined;\n  onValueChanged_ReceiverCountry(e:any, data:any) {\n    // console.log(\"onValueChanged_ReceiverCountry\", e.value);\n    this.onReceiverCountry_Updated(e.value);\n  }\n\n  _receiverCountryRequireState: boolean|undefined = false;\n  onReceiverCountry_Updated(countryCode:string|undefined){\n    this.createReceiverStateDataSource(countryCode);\n    if(countryCode){\n      let country = this.receiver_country_ds?.byKey(countryCode).then((data:Country) => \n      {\n        if(data.Shipping_Require_State){\n          this._receiverCountryRequireState = data.Shipping_Require_State;\n        }\n        else{\n          this._receiverCountryRequireState = false;\n        }\n        // console.log(\"onReceiverCountry_Updated1\", countryCode, this._receiverCountryRequireState, data);\n      });\n    }\n    else{\n      this._receiverCountryRequireState = false;\n      // console.log(\"onReceiverCountry_Updated2\", countryCode, this._receiverCountryRequireState);\n    }     \n  }\n\n  createReceiverStateDataSource(countryCode:string|undefined){    \n    if(countryCode){\n      this.receiver_state_ds = new DataSource({\n        store: new ODataStore({\n          url: this.cloudDataService.getMobiManagementODataUrl(\"CountryState\"),\n          beforeSend: (e) => { \n            if(e.method?.toUpperCase() == \"GET\"){\n              if(!e.params?.$orderby){\n                e.params.$orderby = \"Name\";\n              }\n              if(e.params.$filter){\n                e.params.$filter = `(${e.params.$filter}) and (CountryCode eq '${countryCode}') and (Type eq 'county' or Type eq null)`;        \n              }\n              else{\n                e.params.$filter = `CountryCode eq '${countryCode}' and (Type eq 'county' or Type eq null)`; \n              }              \n              // console.log(e);    \n            }\n          },        \n          withCredentials: true, \n          key: \"Id\",\n          keyType: \"Int32\",\n          version: 4,        \n        }),\n        requireTotalCount: false,\n        pageSize: 200,\n        select: [\"Id\", \"Name\", \"Name_Native\", \"StateCode\", \"CountryId\", \"CountryCode\", \"CountryName\", \"CountryLocalName\"],\n        map: (dataItem:any) => {        \n          return Object.assign(new CountryState(), dataItem);\n        }            \n      });  \n    }\n  }  \n\n}\n\nexport class PackagingBoxEntry extends PackagingBox {\n  Quantity?: number|undefined;\n  Lines?:  PackagingBoxEntryLine[];\n}\n\nexport class PackagingBoxEntryLine\n{\n    PickingLine?: PickingLine|undefined;\n    ParcelLine?: Shipping_ParcelLine|undefined;    \n}\n\nexport class Shipping_Carrier\n{\n\tid?: string|undefined;\n\tname?: string|undefined;\n\tcode?: string|undefined;\n}\n\nexport class Shipping_CarrierProduct\n{\n\tid?: string|undefined;\n\tname?: string|undefined;\n  carrier_id?: string|undefined;\n\tproduct_name?: string|undefined;\n\tproduct_code?: string|undefined;\n\ttransit_time?: string|undefined;\n\tprice_amount?: string|undefined;\n\tprice_currency?: string|undefined;\n\tservice_point_required?: boolean|undefined;\n\tservice_point_available?: boolean|undefined;\n\n  estimated_delivery_date_from?: Date|undefined;\n  estimated_delivery_date_to?: Date|undefined;\n\n  is_return?: boolean|undefined;\n\n  parameters?: Shipping_CarrierProductParameter[]|undefined;\n}\n\nexport class Shipping_CarrierProductParameter\n{\n\tattr_type?: string|undefined;\n\tattr_name?: string|undefined;\n\tattr_key?: string|undefined;\n\tadd_on_dependency?: string|undefined;\n\tenum?: any;\n}\n\nexport class Shipping_ServicePoint\n{\n\tid?: string|undefined;\n\tname?: string|undefined;\n\tdistance?: number|undefined;\n\taddress_line?: string|undefined;\n\taddress_line2?: string|undefined;\n\tzip_code?: string|undefined;\n\tcity?: string|undefined;\n\tcountry_code?: string|undefined;\n\tstate?: string|undefined;\n\tlatitude?: number|undefined;\n\tlongitude?: number|undefined;\n}\n\nexport class Shipment_Receiver\n{\n    name?: string|undefined;\n    attention?: string|undefined;\n    address1?: string|undefined;\n    address2?: string|undefined;\n    zipcode?: string|undefined;\n    city?: string|undefined;\n    country_code?: string|undefined;\n    state_code?: string|undefined;\n    email?: string|undefined;\n    mobile_phone?: string|undefined;\n    instruction?: string|undefined;\n    residential?: boolean|undefined;\n}\n\nexport class Shipment_Sender\n{\n    name?: string|undefined;\n    attention?: string|undefined;\n    address1?: string|undefined;\n    address2?: string|undefined;\n    zipcode?: string|undefined;\n    city?: string|undefined;\n    country_code?: string|undefined;\n    state_code?: string|undefined;\n    email?: string|undefined;\n    mobile_phone?: string|undefined;\n}\n\nexport class Shipping_Parcel\n{\n    quantity?: number|undefined;\n    height?: number|undefined;\n    length?: number|undefined;\n    width?: number|undefined;\n    weight?: number|undefined;\n    volume?: number|undefined;\n    id?: string|undefined;\n    boxtype?: PackagingBoxType|undefined;\n\n    Lines?: Shipping_ParcelLine[];\n}\n\nexport class Shipping_ParcelLine\n{\n    PickingListLinesId?: string|undefined;\n    Quantity?: number|undefined;    \n}\n\nexport class ShipmentPriceRequest\n{\n  Carrier_Id?: string|undefined;\n\tShipmentType?: string|undefined;\n\tSender?: Shipment_Sender|undefined;\n\tReceiver?: Shipment_Receiver|undefined;\n\tPackages?: Shipping_Parcel[]|undefined;\n  IsReturn?: boolean|undefined;\n}\n\nexport class CreateShipmentRequest\n{\n  ShipmentVendorId?: string|undefined;\n  ShipmentId?: string|undefined;\n  PickingListId?: string|undefined;\n\n\t// PickingListLinesIds?: string[]|undefined;\n\t\n  Sender?: Shipment_Sender|undefined;\n\tReceiver?: Shipment_Receiver|undefined;\n  ReturnAddress?: Shipment_Sender|undefined;\n\n\tPackages?: Shipping_Parcel[]|undefined;\n  PickinglineIds_NoPackages?: string[]|undefined;\n\n  ReturnLabel?: boolean|undefined;\n  CarrierCode?: string|undefined;\n  ProductCode?: string|undefined;\n  \n  ServicePoint?: Shipping_ServicePoint|undefined;\n\n  ShippingDate?: Date|undefined;\n  Remarks?: string|undefined;\n  Description?: string|undefined;\n\n  PrintLabels?: boolean|undefined;\n  PrinterId?: string|undefined;\n\n  Duitable?: boolean|undefined;\n  Reference?: string|undefined;\n\n  ShipmentDescription?: string|undefined;\n\n  CreatePackageList?: boolean|undefined;\n}\n\nexport class CreateShipmentResponse\n{\n  ShipmentId?: string|undefined;\n  ShipmentId_Provider?: string|undefined;\n  Status_Provider?: string|undefined;\n  RequestId_Provider?: string|undefined;\n\n  ShipmentVendorId?: string|undefined;\n  ShipmentProvider?: string|undefined;\n}","<div mat-dialog-container class=\"shipment-dialog-container\">\n    <mat-toolbar color=\"primary\" class=\"mat-elevation-z2 shipment-dialog-caption\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\n        <mat-card-header>            \n            <div class=\"shipment-toolbar-header-text-container\">\n                <div class=\"dialog-caption-icon-container\"><svg-icon name=\"mobicloud_shipment\" svgClass=\"shipment-dialog-caption-icon\"></svg-icon></div> \n                <div i18n=\"@@FieldCaption-CreateShipment\" class=\"shipment-toolbar-header-text\">Create shipment</div>               \n            </div>                           \n        </mat-card-header>         \n\n        <span class=\"shipment-dialog-caption-spacer\"></span>\n        <span class=\"shipment-toolbar-header-text-vendorname\">{{shipmentVendor_Name}}</span>  \n        <button mat-raised-button appMaterialElevation matTooltip=\"Close\" i18n-matTooltip=\"@@Action-Close\" aria-label=\"Close\" i18n-aria-label=\"@@Action-Close\" class=\"shipment-dialog-toolbar-button\" (click)=\"onCancel()\">\n            <svg-icon name=\"mobicloud_close\" svgClass=\"shipment-dialog-toolbar-button-icon\"></svg-icon>\n          </button>       \n    </mat-toolbar>      \n\n    <div #shipment_dialog_container id=\"shipment_dialog_container\" class=\"shipment-dialog-wizard-steps-container\">\n        <mat-stepper orientation=\"horizontal\" [linear]=\"true\" #stepper class=\"shipment-dialog-wizard-steps\" (animationDone)=\"setFocus()\" labelPosition='bottom'>\n            <mat-step label=\"Lines\" i18n-label=\"@@CaptionHeader-Lines\" [editable]=\"!createCompleted\">\n                <div class=\"shipment-dialog-form-content flex flex-col\">                           \n                    <div class=\"shipment-dialog-input-container flex flex-col\">\n                        <div class=\"lines-invalid-message\" *ngIf=\"!pickingLinesSelectionValid\" i18n=\"@@ValidationText-NoShipmentPickingLinesSelected\">No lines has been selected for shipping</div>\n                        <dx-data-grid keyExpr=\"Id\" #datagrid_pickinglines id=\"datagrid_pickinglines\" [(selectedRowKeys)]=\"selectedPickingLinesKeys\" class=\"devex-grid-lb\" height=\"100%\" [dataSource]=\"pickingLines\" [remoteOperations]=\"false\" [showBorders]=\"false\" [showColumnLines]=\"false\" [showRowLines]=\"true\" [allowColumnReordering]=\"true\" [allowColumnResizing]=\"true\" [rowAlternationEnabled]=\"true\">\n                            <!-- <dxo-editing mode=\"batch\" refreshMode=\"full\" [selectTextOnEditStart]=\"true\" startEditAction=\"click\" [allowAdding]=\"false\" [allowUpdating]=\"false\" [allowDeleting]=\"false\" [confirmDelete]=\"true\"></dxo-editing> -->\n                            <dxo-column-chooser [enabled]=\"true\" mode=\"select\" title=\"Choose columns\" i18n-title=\"@@CaptionHeader-ColumnChooser\"></dxo-column-chooser>        \n                            <dxo-filter-row [visible]=\"true\"></dxo-filter-row> \n                            <dxo-header-filter [visible]=\"true\"></dxo-header-filter>\n                            <dxo-group-panel [visible]=\"false\" emptyPanelText=\"\"></dxo-group-panel>  \n                            <dxo-sorting mode=\"multiple\"></dxo-sorting>\n                            <dxo-selection [allowSelectAll]=\"true\" showCheckBoxesMode=\"always\" [mode]=\"allowSelectPickingLines ? 'multiple' : 'none'\"></dxo-selection>                            \n\n                            <dxo-toolbar>                \n                                <dxi-item location=\"after\">\n                                  <div *dxTemplate class=\"gridtoolbar-item-container\">\n                                    <dx-check-box [(value)]=\"returnLabelsEnabled\" [rtlEnabled]=\"false\" text=\"Return label\" i18n-text=\"@@FieldCaption-ReturnLabel\" (onValueChanged)=\"returnCheckBoxChanged($event)\" labelMode=\"static\" stylingMode=\"outlined\"></dx-check-box>\n                                  </div>\n                                </dxi-item>\n                \n                                <dxi-item name=\"columnChooserButton\"></dxi-item>\n                              </dxo-toolbar>                                 \n\n                            <dxi-column dataField=\"Index\" [width]=\"40\" [visible]=\"true\" hidingPriority=\"99\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-LineNumber\" caption=\"#\" dataType=\"number\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n                            <dxi-column dataField=\"LineId\" [visible]=\"true\" hidingPriority=\"20\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-LineId\" caption=\"Line id\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"SalesLine.LineId\" hidingPriority=\"92\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SalesLineId\" caption=\"Sales line id\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"ProductId\" hidingPriority=\"58\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductUId\" caption=\"Product uid\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Product\" hidingPriority=\"68\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Product\" caption=\"Product\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Product.ProductId\" [fixed]=\"true\" fixedPosition=\"left\" hidingPriority=\"100\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductId\" caption=\"Product id\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Product.Name\" hidingPriority=\"94\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ProductName\" caption=\"Product name\" dataType=\"string\"></dxi-column>        \n                            <dxi-column dataField=\"Product.SKU\" hidingPriority=\"54\" [visible]=\"true\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SKU\" caption=\"SKU\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Color\" hidingPriority=\"84\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Color\" caption=\"Color\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"ColorId\" hidingPriority=\"48\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ColorUId\" caption=\"Color uid\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Color.Code\" hidingPriority=\"82\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Color\" caption=\"Color\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Color.Name\" hidingPriority=\"46\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ColorName\" caption=\"Color name\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Size\" hidingPriority=\"78\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Size\" caption=\"Size\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"SizeId\" hidingPriority=\"44\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SizeUId\" caption=\"Size uid\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Size.Code\" hidingPriority=\"76\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Size\" caption=\"Size\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Size.Name\" hidingPriority=\"42\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SizeName\" caption=\"Size name\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Config\" hidingPriority=\"74\" [visible]=\"false\" [showInColumnChooser]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Config\" caption=\"Config\" dataType=\"string\"></dxi-column>    \n                            <dxi-column dataField=\"ConfigId\" hidingPriority=\"40\" [visible]=\"false\" [showInColumnChooser]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ConfigUId\" caption=\"Config uid\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Config.Code\" hidingPriority=\"72\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Config\" caption=\"Config\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Config.Name\" hidingPriority=\"38\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-ConfigName\" caption=\"Config name\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Qty\" hidingPriority=\"74\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Qty\" caption=\"Quantity\" dataType=\"number\"></dxi-column>\n                            <dxi-column dataField=\"QtyPick\" hidingPriority=\"96\" [visible]=\"true\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-QtyPick\" caption=\"Quantity pick\" dataType=\"number\"></dxi-column>\n                            <dxi-column dataField=\"Note\" hidingPriority=\"28\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-Note\" caption=\"Note\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"SortCode\" hidingPriority=\"26\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-SortCode\" caption=\"Sort code\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"WMSZone\" hidingPriority=\"24\" [visible]=\"false\" [allowHeaderFiltering]=\"false\" i18n-caption=\"@@GridColumn-WMSZone\" caption=\"WMS zone\" dataType=\"string\"></dxi-column>\n                            <dxi-column dataField=\"Created\" hidingPriority=\"10\" [visible]=\"false\" [allowHeaderFiltering]=\"true\" i18n-caption=\"@@GridColumn-Created\" caption=\"Created\" dataType=\"date\"></dxi-column>\n                            <dxo-summary>\n                                <dxi-total-item column=\"Index\" summaryType=\"count\" displayFormat=\"{0}\"></dxi-total-item>\n                                <dxi-total-item column=\"Qty\" summaryType=\"sum\" displayFormat=\"{0}\"></dxi-total-item>\n                                <dxi-total-item column=\"QtyPick\" summaryType=\"sum\" displayFormat=\"{0}\"></dxi-total-item>\n                            </dxo-summary>                \n                            <dxi-column type=\"buttons\" [allowHiding]=\"false\" [fixed]=\"true\" fixedPosition=\"right\">\n                            </dxi-column>\n                            <!-- <dxi-column type=\"adaptive\" [allowHiding]=\"false\" cellTemplate=\"adaptiveCellTemplate\" [fixed]=\"true\" fixedPosition=\"right\"></dxi-column> -->\n                        \n                            <!-- Templates -->\n                        \n                            <div *dxTemplate=\"let column of 'adaptiveCellTemplate'\">\n                              <button aria-label=\"Collapse/Expand\" mat-icon-button (click)=\"column.component.isAdaptiveDetailRowExpanded(column.row.key) ? column.component.collapseAdaptiveDetailRow() : column.component.expandAdaptiveDetailRow(column.row.key);\">\n                                <mat-icon *ngIf=\"!column.component.isAdaptiveDetailRowExpanded(column.row.key)\" svgIcon=\"mobicloud_expand_arrows\" class=\"expand_gridrow\"></mat-icon>\n                                <mat-icon *ngIf=\"column.component.isAdaptiveDetailRowExpanded(column.row.key)\" svgIcon=\"mobicloud_collapse_arrows\" class=\"collapse_gridrow\"></mat-icon>\n                              </button>      \n                            </div>\n                         \n                            <dxo-paging [enabled]=\"false\"></dxo-paging>\n                        </dx-data-grid>                        \n                    </div>                                                                                                 \n                </div>\n                <div class=\"flex flex-row basis-[100%] items-stretch justify-end items-end\">\n                    <div class=\"shipment-dialog-button-row flex flex-row basis-[100%] justify-end items-center\">\n                        <button mat-flat-button color=\"accent\" (click)=\"onCancel()\" class=\"shipment-button1\" i18n=\"@@Button-Cancel\">Cancel</button>\n                        <button mat-flat-button color=\"primary\" (click)=\"onClick_Lines()\" class=\"shipment-button2\" i18n=\"@@Button-Next\">Next</button>\n                    </div>                                   \n                </div>                 \n            </mat-step>\n            <mat-step label=\"Sender\" i18n-label=\"@@CaptionHeader-Sender\" [editable]=\"!createCompleted\">\n                <div class=\"shipment-dialog-form-content flex flex-col\">\n                    <div class=\"shipment-dialog-input-container flex flex-col\">\n                        <dx-select-box id=\"custom-templates\" class=\"sender-location-selectbox\" [dataSource]=\"inventLocation_ds\" displayExpr=\"Name\" [value]=\"inventLocationId\" [showClearButton]=\"true\" (onValueChanged)=\"senderSelectbox_onValueChanged($event)\">\n                            <div *dxTemplate=\"let data of 'item'\">\n                            <div class=\"custom-item\">\n                                <!-- <img src=\"{{ data.ImageSrc }}\" /> -->\n                                <div>\n                                {{ data.Name }}\n                                </div>\n                            </div>\n                            </div>\n                        </dx-select-box>                        \n                        <fieldset class=\"shipment-fieldset-default shipment-fieldset-sender-address\">\n                            <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-Sender\">Sender</legend>\n                            <dx-form #form_Sender id=\"form_Sender\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" class=\"compact-form\" validationGroup=\"formSender\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\" [elementAttr]=\"{ autocomplete: 'off' }\">\n                                <dxo-col-count-by-screen [lg]=\"2\" [md]=\"2\" [sm]=\"2\" [xs]=\"2\"></dxo-col-count-by-screen>\n                                <dxi-item dataField=\"Sender_Name\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'organization'} }\">                        \n                                    <dxo-label text=\"Name\" i18n-text=\"@@FieldCaption-Name\"></dxo-label>\n                                    <dxi-validation-rule type=\"required\" message=\"Name is required\" i18n-text=\"@@ValidationText-Name-Required\"></dxi-validation-rule>                \n                                </dxi-item>\n                                <dxi-item dataField=\"Sender_Attention\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n                                    <dxo-label text=\"Attention\" i18n-text=\"@@FieldCaption-Attention\"></dxo-label>\n                                </dxi-item> \n                                <dxi-item dataField=\"Sender_Address1\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n                                    <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n                                    <dxi-validation-rule type=\"required\" message=\"Address is required\" i18n-text=\"@@ValidationText-Address-Required\"></dxi-validation-rule>                \n                                </dxi-item>                                  \n                                <dxi-item dataField=\"Sender_Zipcode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n                                    <dxo-label text=\"ZipCode\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label> \n                                    <dxi-validation-rule type=\"required\" message=\"Zip code is required\" i18n-text=\"@@ValidationText-ZipCode-Required\"></dxi-validation-rule>               \n                                </dxi-item> \n                                <dxi-item dataField=\"Sender_City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n                                    <dxo-label text=\"City\" i18n-text=\"@@FieldCaption-City\"></dxo-label> \n                                    <dxi-validation-rule type=\"required\" message=\"City is required\" i18n-text=\"@@ValidationText-City-Required\"></dxi-validation-rule>               \n                                </dxi-item>                                  \n                                <dxi-item dataField=\"Sender_CountryCode\">\n                                    <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label>  \n                                    <div *dxTemplate=\"let data of 'content'\">\n                                        <dx-select-box valueExpr=\"Code2\" displayExpr=\"LocalName\" [(value)]=\"formInstanceShipment.Sender_CountryCode\" [dataSource]=\"sender_country_ds\" itemTemplate=\"country_itemTemplate\" fieldTemplate=\"country_fieldTemplate\" (onValueChanged)=\"onValueChanged_SenderCountry($event, data)\"\n                                        [showClearButton]=\"true\" [searchEnabled]=\"true\" searchMode=\"contains\" [searchExpr]=\"['Code2','Name','LocalName']\" [inputAttr]=\"{ 'aria-label': 'Country' }\" label=\"Country\" i18n-label=\"@@FieldCaption-Country\" labelMode=\"static\">\n                                        <div *dxTemplate=\"let data of 'country_itemTemplate'\">\n                                        <div class=\"country-dropdown-item\">\n                                           <div class=\"country-dropdown-item-image\"><img alt=\"\"src=\"{{cloudDataService.Flag2Url}}/w40/{{data?.Code2?.toLowerCase()}}.png\" *ngIf=\"data?.Code2\"></div>\n                                           <div class=\"country-dropdown-item-text\">\n                                               {{data.LocalName}}\n                                           </div>\n                                        </div>   \n                                        </div>\n                                        <div *dxTemplate=\"let data of 'country_fieldTemplate'\">\n                                        <div class=\"country-edit-item\">\n                                           <div class=\"country-edit-image\"><img alt=\"\"src=\"{{cloudDataService.Flag2Url}}/w40/{{data?.Code2?.toLowerCase()}}.png\" *ngIf=\"data?.Code2\"></div>\n                                           <div class=\"country-edit-text\">\n                                               <dx-text-box [value]=\"data && data.LocalName\" [inputAttr]=\"{ 'aria-label': 'Country' }\"></dx-text-box>\n                                           </div>\n                                        </div>\n                                        </div>                        \n                                        </dx-select-box>                                        \n                                    </div>   \n                                    <dxi-validation-rule type=\"required\" message=\"Country is required\" i18n-text=\"@@ValidationText-Country-Required\"></dxi-validation-rule>\n                                </dxi-item> \n                                <dxi-item dataField=\"Sender_State\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level1'} }\">\n                                    <dxo-label text=\"State\" i18n-text=\"@@FieldCaption-State\"></dxo-label> \n                                    <div *dxTemplate=\"let data of 'content'\">\n                                        <dx-autocomplete placeholder=\"\" [inputAttr]=\"{'autocomplete': 'off'}\" [dropDownOptions]=\"{ minWidth: 220, resizeEnabled: true }\"\n                                            [(value)]=\"formInstanceShipment.Sender_State\" [dataSource]=\"sender_state_ds\" valueExpr=\"Name_Native\" displayExpr=\"Name_Native\" [showClearButton]=\"true\" [searchExpr]=\"['Name_Native']\" \n                                            [minSearchLength]=\"0\" [maxItemCount]=\"200\" [openOnFieldClick]=\"true\" label=\"State\" i18n-label=\"@@FieldCaption-State\" labelMode=\"static\">\n                                        </dx-autocomplete>\n                                    </div>                                    \n                                    <dxi-validation-rule *ngIf=\"_senderCountryRequireState\" type=\"required\" message=\"State is required\" i18n-text=\"@@ValidationText-State-Required\"></dxi-validation-rule>\n                                </dxi-item>                                   \n                                <dxi-item dataField=\"Sender_Mobile\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n                                    <dxo-label text=\"Mobile phone\" i18n-text=\"@@FieldCaption-MobilePhone\"></dxo-label> \n                                    <dxi-validation-rule type=\"required\" message=\"Phone is required\" i18n-message=\"@@ValidationText-Phone-Required\"></dxi-validation-rule>\n                                </dxi-item>                               \n                                <dxi-item dataField=\"Sender_Email\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n                                    <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label>        \n                                    <dxi-validation-rule type=\"required\" message=\"Email is required\" i18n-message=\"@@ValidationText-Email-Required\"></dxi-validation-rule>\n                                    <dxi-validation-rule type=\"email\" message=\"Email is invalid\" i18n-message=\"@@ValidationText-Email-Invalid\"></dxi-validation-rule>                                                                       \n                                </dxi-item>                                                                                      \n                            </dx-form>                            \n                        </fieldset>                       \n                    </div>                                                                    \n                </div>\n                <div class=\"flex flex-row basis-[100%] items-stretch justify-end items-end\">\n                    <div class=\"shipment-dialog-button-row flex flex-row basis-[100%] justify-end items-center\">\n                        <button mat-flat-button matStepperPrevious color=\"accent\" class=\"shipment-button1\" i18n=\"@@Button-Back\">Back</button>\n                        <!-- <button mat-flat-button color=\"accent\" (click)=\"onCancel()\" class=\"shipment-button1\" i18n=\"@@Button-Cancel\">Cancel</button> -->\n                        <button mat-flat-button color=\"primary\" (click)=\"onClick_Sender()\" class=\"shipment-button2\" i18n=\"@@Button-Next\">Next</button>                            \n                    </div>                                   \n                </div>                \n            </mat-step>\n            <mat-step label=\"Receiver\" i18n-label=\"@@CaptionHeader-Receiver\" [editable]=\"!createCompleted\">\n                <div class=\"shipment-dialog-form-content flex flex-col\">\n                    <div class=\"shipment-dialog-input-container flex flex-col\">\n                        <fieldset class=\"shipment-fieldset-default shipment-fieldset-receiver-address\">\n                            <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-Receiver\">Receiver</legend>\n                            <dx-form #form_Receiver id=\"form_Receiver\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" validationGroup=\"formReceiver\" class=\"compact-form\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\" [elementAttr]=\"{ autocomplete: 'off' }\">\n                                <dxo-col-count-by-screen [lg]=\"2\" [md]=\"2\" [sm]=\"2\" [xs]=\"2\"></dxo-col-count-by-screen>\n                                <dxi-item dataField=\"Receiver_Name\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'organization'} }\">                        \n                                    <dxo-label text=\"Company\" i18n-text=\"@@FieldCaption-Company\"></dxo-label>\n                                    <!-- <dxi-validation-rule type=\"required\" message=\"Name is required\" i18n-text=\"@@ValidationText-Name-Required\"></dxi-validation-rule> -->\n                                </dxi-item>\n                                <dxi-item dataField=\"Receiver_Attention\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'given-name'} }\">\n                                    <dxo-label text=\"First name\" i18n-text=\"@@FieldCaption-Firstname\"></dxo-label>\n                                    <dxi-validation-rule type=\"required\" message=\"First name is required\" i18n-text=\"@@ValidationText-FirstName-Required\"></dxi-validation-rule>\n                                </dxi-item>  \n                                <dxi-item dataField=\"Receiver_Telephone\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'family-name'} }\">\n                                    <dxo-label text=\"Last name\" i18n-text=\"@@FieldCaption-Lastname\"></dxo-label>\n                                    <dxi-validation-rule type=\"required\" message=\"Last name is required\" i18n-text=\"@@ValidationText-LastName-Required\"></dxi-validation-rule>\n                                </dxi-item> \n                                <dxi-item dataField=\"Receiver_Address1\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-line1'} }\">\n                                    <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n                                    <dxi-validation-rule type=\"required\" message=\"Address is required\" i18n-text=\"@@ValidationText-Address-Required\"></dxi-validation-rule>                \n                                </dxi-item>                                  \n                                <dxi-item dataField=\"Receiver_Zipcode\" [editorOptions]=\"{ elementAttr: {autocomplete: 'postal-code'} }\">\n                                    <dxo-label text=\"ZipCode\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label> \n                                    <dxi-validation-rule type=\"required\" message=\"Zip code is required\" i18n-text=\"@@ValidationText-ZipCode-Required\"></dxi-validation-rule>               \n                                </dxi-item> \n                                <dxi-item dataField=\"Receiver_City\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level2'} }\">\n                                    <dxo-label text=\"City\" i18n-text=\"@@FieldCaption-City\"></dxo-label> \n                                    <dxi-validation-rule type=\"required\" message=\"City is required\" i18n-text=\"@@ValidationText-City-Required\"></dxi-validation-rule>               \n                                </dxi-item> \n                                <dxi-item dataField=\"Receiver_CountryCode\">\n                                    <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label>  \n                                    <div *dxTemplate=\"let data of 'content'\">\n                                        <dx-select-box valueExpr=\"Code2\" displayExpr=\"LocalName\" [(value)]=\"formInstanceShipment.Receiver_CountryCode\" [dataSource]=\"receiver_country_ds\" itemTemplate=\"country_itemTemplate\" fieldTemplate=\"country_fieldTemplate\" (onValueChanged)=\"onValueChanged_ReceiverCountry($event, data)\"\n                                        [showClearButton]=\"true\" [searchEnabled]=\"true\" searchMode=\"contains\" [searchExpr]=\"['Code2','Name','LocalName']\" [inputAttr]=\"{ 'aria-label': 'Country' }\" label=\"Country\" i18n-label=\"@@FieldCaption-Country\" labelMode=\"static\">\n                                        <div *dxTemplate=\"let data of 'country_itemTemplate'\">\n                                        <div class=\"country-dropdown-item\">\n                                           <div class=\"country-dropdown-item-image\"><img alt=\"\"src=\"{{cloudDataService.Flag2Url}}/w40/{{data?.Code2?.toLowerCase()}}.png\" *ngIf=\"data?.Code2\"></div>\n                                           <div class=\"country-dropdown-item-text\">\n                                               {{data.LocalName}}\n                                           </div>\n                                        </div>   \n                                        </div>\n                                        <div *dxTemplate=\"let data of 'country_fieldTemplate'\">\n                                        <div class=\"country-edit-item\">\n                                           <div class=\"country-edit-image\"><img alt=\"\"src=\"{{cloudDataService.Flag2Url}}/w40/{{data?.Code2?.toLowerCase()}}.png\" *ngIf=\"data?.Code2\"></div>\n                                           <div class=\"country-edit-text\">\n                                               <dx-text-box [value]=\"data && data.LocalName\" [inputAttr]=\"{ 'aria-label': 'Country' }\"></dx-text-box>\n                                           </div>\n                                        </div>\n                                        </div>                        \n                                        </dx-select-box>\n                                    </div>   \n                                    <dxi-validation-rule type=\"required\" message=\"Country is required\" i18n-text=\"@@ValidationText-Country-Required\"></dxi-validation-rule>\n                                </dxi-item>   \n                                <dxi-item dataField=\"Receiver_State\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'address-level1'} }\">\n                                    <dxo-label text=\"State\" i18n-text=\"@@FieldCaption-State\"></dxo-label> \n                                    <div *dxTemplate=\"let data of 'content'\">\n                                        <dx-autocomplete placeholder=\"\" [inputAttr]=\"{'autocomplete': 'off'}\" [dropDownOptions]=\"{ minWidth: 220, resizeEnabled: true }\"\n                                            [(value)]=\"formInstanceShipment.Receiver_State\" [dataSource]=\"receiver_state_ds\" valueExpr=\"Name_Native\" displayExpr=\"Name_Native\" [showClearButton]=\"true\" [searchExpr]=\"['Name_Native']\" \n                                            [minSearchLength]=\"0\" [maxItemCount]=\"200\" [openOnFieldClick]=\"true\" label=\"State\" i18n-label=\"@@FieldCaption-State\" labelMode=\"static\">\n                                        </dx-autocomplete>\n                                    </div>                                       \n                                    <dxi-validation-rule *ngIf=\"_receiverCountryRequireState\" type=\"required\" message=\"State is required\" i18n-text=\"@@ValidationText-State-Required\"></dxi-validation-rule>\n                                </dxi-item>  \n                                <dxi-item dataField=\"Receiver_Mobile\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'tel'} }\">\n                                    <dxo-label text=\"Mobile phone\" i18n-text=\"@@FieldCaption-MobilePhone\"></dxo-label> \n                                    <dxi-validation-rule type=\"required\" message=\"Phone is required\" i18n-message=\"@@ValidationText-Phone-Required\"></dxi-validation-rule>\n                                </dxi-item>                                                                 \n                                <dxi-item dataField=\"Receiver_Email\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n                                    <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label> \n                                    <dxi-validation-rule type=\"required\" message=\"Email is required\" i18n-message=\"@@ValidationText-Email-Required\"></dxi-validation-rule>\n                                    <dxi-validation-rule type=\"email\" message=\"Email is invalid\" i18n-message=\"@@ValidationText-Email-Invalid\"></dxi-validation-rule>                                                                              \n                                </dxi-item>                                                                                                                   \n                            </dx-form>                               \n                        </fieldset>                         \n                    </div>                                                                    \n                </div>\n                <div class=\"flex flex-row basis-[100%] items-stretch justify-end items-end\">\n                    <div class=\"shipment-dialog-button-row flex flex-row basis-[100%] justify-end items-center\">\n                        <button mat-flat-button matStepperPrevious color=\"accent\" class=\"shipment-button1\" i18n=\"@@Button-Back\">Back</button>\n                        <button mat-flat-button color=\"primary\" (click)=\"onClick_Receiver()\" class=\"shipment-button2\" i18n=\"@@Button-Next\">Next</button>                            \n                    </div>                                   \n                </div>                \n            </mat-step>            \n            <mat-step label=\"Packages\" i18n-label=\"@@CaptionHeader-Packages\" [editable]=\"!createCompleted\" *ngIf=\"!isWebshopOrder\">\n                <div class=\"shipment-dialog-form-content flex flex-col\">\n                    <div class=\"shipment-dialog-input-container flex flex-col\">\n                        <div class=\"packages-invalid-message\" *ngIf=\"!boxesSelectionValid\" i18n=\"@@ValidationText-NoShipmentBoxesSelected\">No boxes has been selected for shipping</div>\n                        <div class=\"packages-invalid-message\" *ngIf=\"!productBoxesQuantityValid\" i18n=\"@@ValidationText-ProductBoxesQuantityInvalid\">Product quantities in the boxes is invalid</div>\n                        <dx-data-grid #selectedBoxesList id=\"selectedBoxesList\" keyExpr=\"Id\" class=\"devex-grid-lb\" height=\"100%\" [dataSource]=\"selectedBoxes\" [remoteOperations]=\"false\" [showBorders]=\"false\" [showColumnLines]=\"false\" [showRowLines]=\"true\" [allowColumnReordering]=\"true\" [allowColumnResizing]=\"true\" [rowAlternationEnabled]=\"true\" (onInitNewRow)=\"onInitNewRow_Boxes($event)\">\n                            <dxo-column-fixing [enabled]=\"true\"></dxo-column-fixing>\n                            <dxo-paging [enabled]=\"false\"></dxo-paging>\n                            <dxo-editing mode=\"cell\" [allowUpdating]=\"true\" [allowAdding]=\"true\" [allowDeleting]=\"true\" [selectTextOnEditStart]=\"true\">\n                            </dxo-editing>\n                            <dxo-toolbar>\n                                <dxi-item location=\"before\">\n                                    <dx-drop-down-button text=\"Add box\" i18n-text=\"@@Button-AddBox\" icon=\"box\" [items]=\"packagingBoxes\" displayExpr=\"Name\" (onItemClick)=\"onAddBoxButtonClick($event)\"></dx-drop-down-button>  \n                                </dxi-item>                            \n                                <dxi-item name=\"addRowButton\" cssClass=\"action-button\"></dxi-item>\n                                <dxi-item name=\"revertButton\" cssClass=\"action-button\"></dxi-item>\n                              </dxo-toolbar>\n\n                            <dxo-master-detail [enabled]=\"true\" template=\"detail\" [autoExpandAll]=\"true\" *ngIf=\"internationalShipping && internationalShipping_forceProductInBoxes\"></dxo-master-detail>\n                            <div *dxTemplate=\"let row of 'detail'\">        \n                                <fieldset class=\"detailsgrid-fieldset-default\"> \n                                  <legend class=\"detailsgrid-legend-default\" i18n=\"@@FieldCaption-Products\">Products</legend>\n\n                                  <dx-data-grid keyExpr=\"PickingLine.Id\" class=\"devex-grid-lb\" height=\"100%\" [dataSource]=\"row.data.Lines\" [showBorders]=\"false\" [showColumnLines]=\"false\" [showRowLines]=\"true\" [allowColumnReordering]=\"true\" [allowColumnResizing]=\"true\" [rowAlternationEnabled]=\"true\">\n                                    <dxo-paging [enabled]=\"false\"></dxo-paging>\n                                    <dxo-editing mode=\"cell\" [allowUpdating]=\"true\" [allowAdding]=\"false\" [allowDeleting]=\"true\" [selectTextOnEditStart]=\"true\">\n                                    </dxo-editing>\n                                    \n                                    <dxi-column dataField=\"PickingLine.Product.ProductId\" caption=\"Product id\" hidingPriority=\"100\" [allowEditing]=\"false\" i18n-caption=\"@@GridColumn-ProductId\" dataType=\"string\" [fixed]=\"true\" fixedPosition=\"left\"></dxi-column>\n                                    <dxi-column dataField=\"ParcelLine.Quantity\" caption=\"Quantity\" [allowEditing]=\"true\" hidingPriority=\"90\" i18n-caption=\"@@GridColumn-Quantity\" dataType=\"number\" format=\"#\" [editorOptions]=\"{ format: '#' }\" [fixed]=\"true\" fixedPosition=\"right\"></dxi-column>\n\n                                  </dx-data-grid>\n                                </fieldset>        \n                            </div>\n\n                            <dxi-column [fixed]=\"true\" dataField=\"Quantity\" [visible]=\"!internationalShipping_forceProductInBoxes\" [showInColumnChooser]=\"!internationalShipping_forceProductInBoxes\" caption=\"Quantity\" hidingPriority=\"100\" i18n-caption=\"@@GridColumn-Quantity\" dataType=\"number\" format=\"#\" [editorOptions]=\"{ format: '#' }\" fixedPosition=\"left\"></dxi-column>\n                            <dxi-column [fixed]=\"true\" dataField=\"BoxType\" [setCellValue]=\"setCellValue_BoxType\" caption=\"Box type\" hidingPriority=\"90\" i18n-caption=\"@@GridColumn-BoxType\" dataType=\"string\" fixedPosition=\"left\">\n                                <dxo-lookup\n                                    [dataSource]=\"packagingBoxType_ds\"\n                                    displayExpr=\"text\"\n                                    valueExpr=\"value\">\n                                </dxo-lookup>          \n                                <dxo-header-filter\n                                      [dataSource]=\"packagingBoxType_ds\">\n                                </dxo-header-filter>    \n                                <dxi-validation-rule type=\"required\" message=\"Box type is required\" i18n-message=\"@@ValidationText-BoxType-Required\"></dxi-validation-rule>  \n                            </dxi-column>   \n                            <dxi-column [fixed]=\"true\" dataField=\"Weight_InKg\" hidingPriority=\"95\" i18n-caption=\"@@GridColumn-Weight_KG\" caption=\"Weight (kg)\" dataType=\"number\" format=\"#\" [editorOptions]=\"{ format: '#' }\">\n                                <dxi-validation-rule type=\"required\" message=\"Weight is required\" i18n-message=\"@@ValidationText-Weight-Required\"></dxi-validation-rule>\n                            </dxi-column>                                                     \n                            <dxi-column [fixed]=\"true\" dataField=\"Length_InCm\" hidingPriority=\"80\" i18n-caption=\"@@GridColumn-Length_CM\" caption=\"Length (cm)\" dataType=\"number\" format=\"#\" [editorOptions]=\"{ format: '#' }\">\n                                <dxi-validation-rule type=\"required\" message=\"Length is required\" i18n-message=\"@@ValidationText-Length-Required\"></dxi-validation-rule>\n                            </dxi-column>\n                            <dxi-column [fixed]=\"true\" dataField=\"Width_InCm\" hidingPriority=\"70\" i18n-caption=\"@@GridColumn-Width_CM\" caption=\"Width (cm)\" dataType=\"number\" format=\"#\" [editorOptions]=\"{ format: '#' }\">\n                                <dxi-validation-rule type=\"required\" message=\"Width is required\" i18n-message=\"@@ValidationText-Width-Required\"></dxi-validation-rule>\n                            </dxi-column>\n                            <dxi-column [fixed]=\"true\" dataField=\"Height_InCm\" hidingPriority=\"60\" i18n-caption=\"@@GridColumn-Height_CM\" caption=\"Height (cm)\" dataType=\"number\" format=\"#\" [editorOptions]=\"{ format: '#' }\"></dxi-column>\n                            \n                            <dxo-summary>\n                                <dxi-total-item column=\"Quantity\" summaryType=\"sum\" displayFormat=\"{0}\"></dxi-total-item>\n                            </dxo-summary>                              \n                        </dx-data-grid>                       \n                    </div> \n                </div>\n                <div class=\"shipment-dialog-button-row flex flex-row\">\n                    <button mat-flat-button matStepperPrevious color=\"accent\" class=\"shipment-button1\" i18n=\"@@Button-Back\">Back</button>\n                    <button mat-flat-button color=\"primary\" (click)=\"onClick_Packages()\" class=\"shipment-button2\" i18n=\"@@Button-Next\">Next</button>                        \n                </div>                 \n            </mat-step>                          \n            <mat-step label=\"Carrier\" i18n-label=\"@@CaptionHeader-Carrier\" [optional]=\"false\" [editable]=\"!createCompleted\">\n                <div class=\"shipment-dialog-form-content flex flex-col\">   \n                    <div class=\"shipment-dialog-input-container flex flex-col\">\n                        <div class=\"carrier-info\" *ngIf=\"showCarriers && !disableCarrierProducts\">\n                            <div class=\"carrier\">\n                                <dx-select-box id=\"carrierSelectbox\" [dataSource]=\"shipmentCarriers\" label=\"Carrier\" i18n-label=\"@@FieldCaption-Carrier\" labelMode=\"static\" displayExpr=\"name\" valueExpr=\"id\" [(value)]=\"selectedCarrierId\" (onSelectionChanged)=\"onCarrierSelectionChanged($event)\">\n                                    <div *dxTemplate=\"let data of 'item'\">\n                                        <div class=\"carrier-item\">\n                                            <div class=\"carrier-name\">\n                                                {{data?.name}}\n                                            </div>\n                                        </div>\n                                    </div>                                        \n                                </dx-select-box> \n                            </div>                            \n                        </div>                        \n\n                        <div class=\"shipment-products-container flex flex-row\">\n                            <fieldset [ngClass]=\"{'shipment-fieldset-default shipment-fieldset-shipment-products':!servicePointRequired, 'shipment-fieldset-default shipment-fieldset-shipment-products-withservice':servicePointRequired}\" [ngStyle]=\"{'height': getProductsBoxheight() + 'px'}\">\n                                <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-CarrierProducts\">Carrier products</legend>\n                                <dx-validation-summary validationGroup=\"ProductCode\"></dx-validation-summary>\n                                <dx-list *ngIf=\"!disableCarrierProducts\" #shipmentProducList keyExpr=\"product_code\" [dataSource]=\"shipmentProducts\" selectionMode=\"single\" showScrollbar=\"always\" [showSelectionControls]=\"true\" [(selectedItemKeys)]=\"selectedShipmentProducts\" (onSelectionChanged)=\"onShipmentProductSelectionChanged($event)\">\n                                    <div *dxTemplate=\"let item of 'item'\">\n                                        <div class=\"shipment-product-item\">                                  \n                                            <div class=\"shipment-product-item-name\">{{ item.name }}</div>\n                                            <div class=\"shipment-product-item-info\">\n                                                <div class=\"shipment-product-item-price\">\n                                                    <!-- <span class=\"item-caption\">Price</span><span class=\"item-caption-colon\">:</span><div class=\"item-value\">{{item.price_amount | currency:item.price_currency:\"symbol\"}}</div> -->\n                                                    <span class=\"item-caption\">Price</span><span class=\"item-caption-colon\">:</span><div class=\"item-value\">{{item.price_currency}} {{item.price_amount}}</div>\n                                                </div>\n                                                <div class=\"shipment-product-item-transit\">\n                                                    <span class=\"item-caption\">Transit time</span><span class=\"item-caption-colon\">:</span><span class=\"item-value\">{{ item.transit_time }}</span>                                                    \n                                                </div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                    <dx-validator [adapter]=\"validationConfig_ProductCode\" validationGroup=\"ProductCode\">\n                                        <dxi-validation-rule type=\"required\" message=\"Carrier product is required\" i18n-message=\"@@ValidationText-CarrierProduct-Required\"></dxi-validation-rule>\n                                    </dx-validator>\n                                </dx-list>\n                                <div *ngIf=\"disableCarrierProducts\">\n                                    Carrier product has been pre-selected\n                                </div>                                 \n                            </fieldset>\n                            <fieldset class=\"shipment-fieldset-default shipment-fieldset-shipment-servicepoint\" [ngStyle]=\"{'height': getProductsBoxheight() + 'px'}\" *ngIf=\"selectedShippingProduct?.service_point_required || selectedShippingProduct?.service_point_available\">\n                                <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-ParcelShop\">Parcel shop</legend>\n                                    <dx-validation-summary validationGroup=\"ServicePoint\"></dx-validation-summary>\n                                    <dx-select-box id=\"servicePointsSelectbox\" [dataSource]=\"servicePoints\" displayExpr=\"name\" [(value)]=\"selectedServicePoint\" (onSelectionChanged)=\"onServicePointSelectionChanged($event)\">\n                                        <div *dxTemplate=\"let data of 'item'\">\n                                            <div class=\"servicepoint-item\">\n                                                <div class=\"servicepoint-name\">\n                                                {{ data.name }} <span>{{data.id ? ('(' + data.id + ') ') : ':'}} {{(data.distance | meterToKilometer) | number : '1.0-1'}}</span><span> km</span>\n                                                </div>\n                                            </div>\n                                        </div>\n                                        <dx-validator [adapter]=\"validationConfig_ServicePoint\" validationGroup=\"ServicePoint\">\n                                            <dxi-validation-rule type=\"required\" message=\"Parcel shop is required for this carrier product\" i18n-message=\"@@ValidationText-ParcelShop-Required\"></dxi-validation-rule>\n                                        </dx-validator>                                        \n                                    </dx-select-box>                                      \n                                    <div class=\"dx-fieldset selected-service-point\">\n                                        <div class=\"field\">\n                                            <!-- <div class=\"field-label\" i18n=\"@@FieldCaption-Name\">Name:</div> -->\n                                            <div class=\"field-value\">\n                                            {{selectedServicePoint?.name}} {{selectedServicePoint?.id ? ('(' + selectedServicePoint?.id + ')') : ''}}\n                                            </div>\n                                        </div>\n                                        <div class=\"field\">\n                                            <!-- <div class=\"field-label\" i18n=\"@@FieldCaption-Address\">Address:</div> -->\n                                            <div class=\"field-value\">\n                                            {{selectedServicePoint?.address_line}}\n                                            </div>\n                                        </div> \n                                        <div class=\"field\">\n                                            <!-- <div class=\"field-label\" i18n=\"@@FieldCaption-ZipCode\">Zip code:</div> -->\n                                            <div class=\"field-value\">\n                                            {{selectedServicePoint?.zip_code}} {{selectedServicePoint?.city}}\n                                            </div>\n                                        </div>    \n                                        <!-- <div class=\"field\">\n                                            <div class=\"field-label\" i18n=\"@@FieldCaption-City\">City:</div>\n                                            <div class=\"field-value\">\n                                            {{selectedServicePoint?.city}}\n                                            </div>\n                                        </div>                                                                       -->\n                                        <div class=\"field\">\n                                            <!-- <div class=\"field-label\" i18n=\"@@FieldCaption-Country\">Country:</div> -->\n                                            <div class=\"field-value\">\n                                            {{selectedServicePoint?.country_code | countryCodeToName}}\n                                            </div>\n                                        </div>  \n                                        <div class=\"field\">\n                                            <!-- <div class=\"field-label\" i18n=\"@@FieldCaption-Distance\">Distance:</div> -->\n                                            <div class=\"field-value\">\n                                                <span *ngIf=\"selectedServicePoint?.distance\">{{(selectedServicePoint?.distance | meterToKilometer) | number : '1.0-1'}}</span><span *ngIf=\"selectedServicePoint?.distance\"> km</span>\n                                            </div>\n                                        </div>                                                                                                          \n                                    </div>                              \n                            </fieldset>\n                        </div> \n                        <fieldset class=\"shipment-fieldset-default shipment-fieldset-shipment-info\">\n                            <legend class=\"shipment-legend-default\" i18n=\"@@FieldCaption-ShippingInfo\">Shipping information</legend>\n                            <dx-form #form_ShippingInfo id=\"form_ShippingInfo\" [colCount]=\"2\" [formData]=\"formInstanceShipment\" class=\"compact-form\" validationGroup=\"formShippingInfo\" [showColonAfterLabel]=\"false\" labelMode=\"static\" labelLocation=\"top\" [showValidationSummary]=\"false\" [showRequiredMark] = \"false\">\n                                <dxo-col-count-by-screen [xs]=\"2\" [sm]=\"2\" [md]=\"2\" [lg]=\"2\"></dxo-col-count-by-screen>                                      \n                                <dxi-item [colSpan]=\"2\">\n                                    <div *dxTemplate=\"let data of 'content'\">\n                                        <dx-select-box id=\"printerSelectbox\" [dataSource]=\"printer_store\" label=\"Printer\" i18n-label=\"@@FieldCaption-Printer\" labelMode=\"static\" displayExpr=\"PrinterName\" valueExpr=\"Id\" [(value)]=\"selectedPrinterId\">\n                                            <div *dxTemplate=\"let data of 'item'\">\n                                                <div class=\"printer-item\">\n                                                    <div class=\"printer-name\">\n                                                        {{data?.PrinterName}} {{ data?.GatewayInstallationName ? ('(' + data.GatewayInstallationName + ')') : ('') }}\n                                                    </div>\n                                                </div>\n                                            </div>                                        \n                                        </dx-select-box> \n                                    </div>\n                                </dxi-item> \n                                <dxi-item dataField=\"Reference\">\n                                    <dxo-label text=\"Reference\" i18n-text=\"@@FieldCaption-Reference\"></dxo-label> \n                                </dxi-item>\n                                <dxi-item>\n                                    <div *dxTemplate=\"let data of 'content'\">\n                                        <dx-check-box [value]=\"true\" text=\"Package list\" i18n-text=\"@@FieldCaption-PackageList\" [(value)]=\"createPackageList\"></dx-check-box>\n                                    </div>                                    \n                                </dxi-item>                                 \n                            </dx-form>                             \n                        </fieldset>\n                    </div>                                                                    \n                </div>\n                <div class=\"flex flex-row basis-[100%] items-stretch justify-end items-end\">\n                    <div class=\"shipment-dialog-button-row flex flex-row basis-[100%] justify-end items-center\">\n                        <button mat-flat-button matStepperPrevious color=\"accent\" class=\"shipment-button1\" i18n=\"@@Button-Back\">Back</button>\n                        <button mat-flat-button color=\"primary\" (click)=\"onCreateShipmentClick()\" class=\"shipment-button2\" i18n=\"@@Button-CreateShipment\">Create shipment</button>                            \n                    </div>                                   \n                </div>                 \n            </mat-step>\n            <mat-step state=\"\">\n                <div class=\"shipment-dialog-form-content flex flex-col\">\n                    <div class=\"shipment-dialog-input-container flex flex-col\">\n                        <div class=\"dialog-loading-shade\" *ngIf=\"isLoadingData\">\n                            <mat-spinner  diameter=\"50\" *ngIf=\"isLoadingData\"></mat-spinner>            \n                        </div>\n                        <div class=\"dialog-loading-spinner-text\" *ngIf=\"isLoadingData\">{{loadingText}}</div>\n                        <div class=\"dialog-complete-text\" *ngIf=\"!isLoadingData && createCompleted && !createError\">{{createCompletedText}}</div>\n                        <div class=\"dialog-error-caption\" *ngIf=\"!isLoadingData && createError\" i18n=\"@@ShipmentCreateFailed-Text\">Shipment create failed</div>\n                        <div class=\"dialog-error-text\" *ngIf=\"!isLoadingData && createError\">{{createErrorText}}</div>\n                    </div>                     \n                </div>\n                <div class=\"flex flex-row basis-[100%] items-stretch justify-end items-end\">\n                    <div class=\"shipment-dialog-button-row flex flex-row basis-[100%] justify-end items-center\">                            \n                        <button mat-flat-button matStepperPrevious color=\"accent\" class=\"shipment-button1\" [disabled]=\"isLoadingData || createCompleted\" i18n=\"@@Button-Back\">Back</button>\n                        <button mat-flat-button matStepperNext color=\"warn\" class=\"shipment-button2\" *ngIf=\"!isLoadingData && createError\" [disabled]=\"isLoadingData\" (click)=\"onCreateShipmentClick()\" i18n=\"@@Button-Retry\">Retry</button>\n                        <button mat-flat-button matStepperNext color=\"primary\" class=\"shipment-button2\" [disabled]=\"isLoadingData\" (click)=\"onClose()\" i18n=\"@@Button-Close\">Close</button>                            \n                    </div>                                   \n                </div>                 \n            </mat-step>                        \n        </mat-stepper>        \n    </div>    \n  </div>\n\n  <dx-load-panel\n    #loadPanelMainContent\n    container=\"#shipment_dialog_container\"\n    [position]=\"{ of: '#shipment_dialog_container' }\"\n    [(visible)]=\"showLoadIndicator\"\n    [showIndicator]=\"true\"\n    [showPane]=\"true\"\n    [shading]=\"true\"    \n    [hideOnOutsideClick]=\"false\"></dx-load-panel>","import { Component, ViewEncapsulation, OnInit, Inject,Input, ViewChild,AfterViewInit, ElementRef } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { MatDialog } from \"@angular/material/dialog\";\n\nimport ODataStore from \"devextreme/data/odata/store\";\n\nimport  \"devextreme/ui/validation_engine\";\n\nimport { MessageResult } from \"../message-box/message-box\";\n\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n\n@Component({\n  selector: 'mobicloud-print-dialog',\n  templateUrl: './print-dialog.component.html',\n  styleUrls: ['./print-dialog.component.scss']\n})\nexport class PrintDialog implements OnInit, AfterViewInit {\n\n  showLoadIndicator:  boolean|undefined= false;\n\n  printer_store: ODataStore|undefined;\n  selectedPrinterId: string|undefined;\n  \n\n  constructor(public dialogRef: MatDialogRef<PrintDialog>, @Inject(MAT_DIALOG_DATA) public data: any, public cloudDataService: MobiCloudDataService, private matDialog: MatDialog) {     \n    if(data?.printerId){\n      this.selectedPrinterId = data.printerId;\n    }          \n  }\n\n  ngOnInit(): void {  \n    this.createPrinterStore();\n  }\n\n  async createPrinterStore(){     \n    this.printer_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"GatewayPrinter\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });   \n  }\n\n  \n  ngAfterViewInit() {  \n  }\n\n  \n  onClose() {\n    this.dialogRef.close({result: {id: this.selectedPrinterId, dialogResult: MessageResult.Ok}});\n  }\n  \n  onCancelClick() {\n    this.onCancel();\n  }\n\n  onCancel() {\n    this.dialogRef.close({result: {id: \"\", dialogResult: MessageResult.Cancel}});\n  } \n\n}\n\n","<div mat-dialog-container class=\"dialog-container\">\n    <mat-toolbar color=\"primary\" class=\"mat-elevation-z2 dialog-caption\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\" cdkDragHandle>\n        <mat-card-header>\n            <div class=\"toolbar-header-text-container\">\n                <svg-icon name=\"mobicloud_printer\" svgClass=\"dialog-caption-icon\"></svg-icon><div i18n=\"@@FieldCaption-SelectPrinter\" class=\"toolbar-header-text\">Select printer</div>\n            </div>            \n        </mat-card-header>\n        <span class=\"dialog-caption-spacer\"></span>\n        <button mat-raised-button appMaterialElevation matTooltip=\"Close\" i18n-matTooltip=\"@@Action-Close\" aria-label=\"Close\" i18n-aria-label=\"@@Action-Close\" class=\"dialog-toolbar-button\" (click)=\"onCancel()\">\n          <svg-icon name=\"mobicloud_close\" svgClass=\"dialog-toolbar-button-icon\"></svg-icon>\n        </button>        \n    </mat-toolbar>    \n    <div class=\"dialog-content\">\n        <div class=\"printer\">\n            <dx-select-box id=\"printerSelectbox\" [dataSource]=\"printer_store\" label=\"Printer\" i18n-label=\"@@FieldCaption-Printer\" labelMode=\"static\" displayExpr=\"PrinterName\" valueExpr=\"Id\" [(value)]=\"selectedPrinterId\">\n                <div *dxTemplate=\"let data of 'item'\">\n                    <div class=\"printer-item\">\n                        <div class=\"printer-name\">\n                            {{data?.PrinterName}} {{ data?.GatewayInstallationName ? ('(' + data.GatewayInstallationName + ')') : ('') }}\n                        </div>\n                    </div>\n                </div>                                        \n            </dx-select-box> \n        </div>\n\n        <div>\n            <div class=\"dialog-button-row flex flex-row basis-[100%] justify-end items-center\">                            \n                <button mat-flat-button color=\"accent\" class=\"button1\" [disabled]=\"showLoadIndicator\" (click)=\"onCancelClick()\" i18n=\"@@Button-Cancel\">Cancel</button>                \n                <button mat-flat-button color=\"primary\" class=\"button2\" [disabled]=\"showLoadIndicator || !selectedPrinterId\" (click)=\"onClose()\" i18n=\"@@Button-OK\">OK</button>                            \n            </div>                                   \n        </div>          \n    </div>\n    <!-- <div #dialog-content id=\"dialog-content\" class=\"dialog-content\">\n     here we go\n    </div>     -->\n</div>\n\n  <dx-load-panel\n    #loadPanelMainContent\n    container=\"#dialog-content\"\n    [position]=\"{ of: '#dialog-content' }\"\n    [(visible)]=\"showLoadIndicator\"\n    [showIndicator]=\"true\"\n    [showPane]=\"true\"\n    [shading]=\"true\"    \n    [hideOnOutsideClick]=\"false\"></dx-load-panel>","import { Component, OnInit, Input, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { MessageBox } from \"../../message-box/message-box\";\nimport { MobiCloudDataService, DimensionType, DimensionFieldType, DimensionField, DomainObject } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-dimension-group-box',\n  templateUrl: './dimension-group-box.component.html',\n  styleUrls: ['./dimension-group-box.component.scss']\n})\nexport class DimensionGroupBoxComponent implements OnInit {\n  @Input() domainObject: DomainObject|undefined;\n\n  _entityGroup:  any;\n  @Input('entityGroup')\n  set entityGroup(e: any) {\n    this.formEntity = {};\n    this.formEntity_state = {};\n    this.formEntityInit(e);\n    this._entityGroup = e;    \n  }\n\n  get entityGroup(): any {\n    return this._entityGroup;\n  }\n\n  extractEntityName(dataSourceName: string) : string{\n    return dataSourceName.substring(dataSourceName.lastIndexOf('.')+ 1);\n  }\n\n  @Input() dimensionType: DimensionType|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode:boolean|undefined = false;\n\n  @Input() width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n  dimensionType_store!: ODataStore;\n  dimensionField_store!: ODataStore;\n  odatastore_dimensionField_filter:  string|undefined;\n\n  //Form\n  formEntity: any;\n  formEntity_state: any;\n  \n  @ViewChild(\"form\") form!: DxFormComponent; \n\n  constructor(private cloudDataService:MobiCloudDataService, private matDialog: MatDialog) { \n    this.itemtemplete_value = this.itemtemplete_value.bind(this);    \n    this.fieldtemplete_value = this.fieldtemplete_value.bind(this); \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });    \n  }\n\n\n  itemtemplete_value(fieldInfo:any, item:any) : string{\n    return this.fieldtemplete_value(fieldInfo, item);\n  }\n\n  fieldtemplete_value(fieldInfo:any, item:any) : string{\n    let value:string = \"\";\n    // console.log(fieldInfo, item);\n\n    if(item && fieldInfo?.fieldType?.Name){\n      var columns:string[] = this.formEntity_state[fieldInfo.fieldType.Name + '_ds_columns'];\n      if(columns && columns.length > 0){\n        const values = Object.entries<any>(item).filter(\n            ([key, val])=>columns.includes(key)\n          );\n        const length:number = values.length;\n        for (let i = 0; i < length; i++) {\n          if(i == 0){\n            value = values[i][1].toString();\n          }\n          if(i == 1)\n            value += ' (';\n\n          if(i > 0){\n            if(i > 1){\n              value += ', ';\n            }            \n            value += values[i][1].toString();\n          }\n\n          if(i == (length -1) && (length -1) > 0)\n            value += ')';\n        }\n        // console.log(values);\n      }\n      else{\n        value = item?.Name;\n      }\n    }\n    return value;\n  }\n\n  get caption() {\n    return this.entityGroup?.name ?? $localize`:@@CaptionHeader-DimensionFields:Dimension fields`;;\n  }\n\n  ngOnInit(): void {\n    this.initializeDataStore();  \n  }\n\n  async initializeDataStore(){  \n    this.dimensionType_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"DimensionType\"),    \n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"POST\") {          \n          e.url = this.cloudDataService.getMobiManagementODataUrl(\"DimensionType(\" + this.dimensionType?.Id + \")/UpdateFieldsValues\");\n          e.payload = {fieldsUpdate: e.payload};\n        }                             \n      },      \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n\n    this.dimensionField_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"DimensionField\"),\n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"GET\"){\n          if(this.entityGroup.name)\n            e.params.$filter = `ObjectExtensionId  eq ${this.domainObject?.ExtensionId} and FieldType/GroupName eq '${this.entityGroup.name}'`;  \n          else\n            e.params.$filter = `ObjectExtensionId  eq ${this.domainObject?.ExtensionId} and (FieldType/GroupName eq null or FieldType/GroupName eq '')`; \n          // console.log(\"filter:\", e.params.$filter); \n          e.params.$expand = \"FieldType($expand=DataSourceColumns)\";\n        }          \n      },            \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4\n    });  \n  }\n\n  formEntityInit(entitygroup: any){\n    if(entitygroup.fields?.length > 0){\n      // console.log(\"formEntityInit:\", entitygroup.fields);\n      for(let i = 0; i < entitygroup.fields.length; i++) { \n        if(entitygroup.fields[i].fieldType.TypeName == \"System.DateTime\"){\n          if(entitygroup.fields[i].field){\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= entitygroup.fields[i].field.Value_DateTime;\n          }\n          else{\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= undefined;\n          }\n          this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_editortype'] = \"dxDateBox\";\n        }\n        else if(entitygroup.fields[i].fieldType.TypeName == \"System.Double\"){\n          if(entitygroup.fields[i].field){\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= entitygroup.fields[i].field.Value_Number;\n          }\n          else{\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= undefined;\n          }\n          this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_editortype'] = \"dxNumberBox\";\n        }\n        else if(entitygroup.fields[i].fieldType.TypeName == \"System.Boolean\"){\n          if(entitygroup.fields[i].field){\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= entitygroup.fields[i].field.Value_Boolean;\n          }\n          else{\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= undefined;\n          }  \n          this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_editortype'] = \"dxCheckBox\";\n        }\n        else if(entitygroup.fields[i].fieldType.TypeName == \"System.Guid\"){\n          if(entitygroup.fields[i].field){\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= entitygroup.fields[i].field.Value_DataSourceObjectId;\n          }\n          else{            \n            this.formEntity[entitygroup.fields[i].fieldType.Name]= undefined;\n          }\n          // console.log(\"DS GUID:\", this.formEntity[entitygroup.fields[i].fieldType.Name]);\n          var datasourceEntityName = this.extractEntityName(entitygroup.fields[i].fieldType.DataSourceName);\n          if(this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds']){\n            this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds'].dispose();\n          }\n          var sortColumn: string = \"Name\";\n          if(entitygroup.fields[i].fieldType.DataSourceColumns?.length > 0) {\n            this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds_columns'] = [];\n            for(let q = 0; q < entitygroup.fields[i].fieldType.DataSourceColumns.length; q++) {\n              // this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds_columns'].push({dataField: entitygroup.fields[i].fieldType.DataSourceColumns[q].FieldName, caption: entitygroup.fields[i].fieldType.DataSourceColumns[q].Caption});\n              if(q == 0)\n                sortColumn = entitygroup.fields[i].fieldType.DataSourceColumns[q].FieldName;\n              this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds_columns'].push(entitygroup.fields[i].fieldType.DataSourceColumns[q].FieldName);\n            }\n          }\n          else{\n            // this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds_columns'] = [{dataField: \"Id\", caption: $localize`:@@GridColumn-Id:Id`}, {dataField: \"Name\", caption: $localize`:@@GridColumn-Name:Name`}];\n            this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds_columns'] = ['Name'];\n          }\n          this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_ds'] = this.createDatasourceItem_DataSource(datasourceEntityName, sortColumn);\n        }\n        else{\n          if(entitygroup.fields[i].field){\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= entitygroup.fields[i].field.Value_String;\n          }\n          else{\n            this.formEntity[entitygroup.fields[i].fieldType.Name]= undefined;\n          } \n          this.formEntity_state[entitygroup.fields[i].fieldType.Name + '_editortype'] = \"dxTextBox\";             \n        }                        \n      }\n    }\n  }  \n\n  getEntityGroup() {\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Loading-Text-DimensionField:Loading fields...`;\n    // console.log(\"getEntityGroup\", this.domainObject?.ExtensionId);\n    if(this.domainObject?.ExtensionId){\n      this.dimensionField_store.load().then(\n        (dataItem) => { \n          var groupEntry:any;        \n\n          if(dataItem?.length > 0){\n            // console.log(\"dataItem:\", dataItem);\n            groupEntry = {\"name\": dataItem[0].FieldType?.GroupName ?? '', \"fields\": []};\n            \n            for(let q = 0; q < dataItem.length; q++) {\n              var field = dataItem[q];            \n              groupEntry.fields.push({\"fieldType\": Object.assign(new DimensionFieldType(), field.FieldType), \"field\": Object.assign(new DimensionField(), field)});                \n            }\n          }\n          else{                    \n            groupEntry = {\"name\": this.entityGroup.name, \"fields\": []};  \n            for(let q = 0; q < this.entityGroup.fields.length; q++) {\n              var field = this.entityGroup.fields[q]; \n              groupEntry.fields.push({\"fieldType\": Object.assign(new DimensionFieldType(), field.fieldType), \"field\": Object.assign(new DimensionField(), {FieldTypeId: field.fieldType.Id, FieldType: field.fieldType})});                \n            }                            \n          }\n\n          // console.log(\"form1:\", groupEntry, dataItem);\n          this.formEntityInit(groupEntry);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n    }\n    else{\n      var groupEntry:any = {\"name\": this.entityGroup.fields[0].fieldType.GroupName, \"fields\": []};\n      \n      for(let i = 0; i < this.entityGroup.fields.length; i++) {\n        var field = this.entityGroup.fields[i]; \n        groupEntry.fields.push({\"fieldType\": Object.assign(new DimensionFieldType(), field.fieldType), \"field\": Object.assign(new DimensionField(), {FieldTypeId: field.fieldType.Id, FieldType: field.fieldType})});                \n      }\n      // console.log(\"form2:\", groupEntry);\n      this.formEntityInit(groupEntry);\n\n      this.isLoadingData = false;\n      this.hasErrors = false;\n      this.errorText = \"\";\n      this.loadingText = $localize`:@@Loading-Text:Loading...`;\n    }\n  }\n\n  saveEntityGroup(){\n    // console.log(\"saveEntityGroup\", this.entityGroup);  \n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Updating-Text-Fields:Updating fields...`;\n\n    var fields:any[] = [];\n    var body = {\"domainObjectId\": this.domainObject?.Id, \"fields\": fields};\n\n    var formEntries = Object.entries(this.formEntity);\n    // console.log(\"entries\", formEntries);\n    for(let i = 0; i < formEntries.length; i++) {\n      var fieldName:string = formEntries[i][0];\n      var fieldValue:any = formEntries[i][1];\n      var fieldEntry = this.entityGroup.fields?.filter((f: { fieldType: { Name: string; }; }) => f.fieldType.Name == fieldName)[0];\n\n      var body_line:any = {};\n\n      if(fieldEntry.field?.Id){\n        body_line[\"Id\"] = fieldEntry.field.Id;\n      }\n      body_line[\"FieldTypeId\"] = fieldEntry.fieldType.Id;\n      if(fieldEntry.fieldType.TypeName == \"System.DateTime\"){\n        body_line[\"Value_DateTime\"] = fieldValue;\n        body.fields.push(body_line);\n      }\n      else if(fieldEntry.fieldType.TypeName == \"System.Double\"){\n        body_line[\"Value_Number\"] = fieldValue;\n        body.fields.push(body_line);\n      }\n      else if(fieldEntry.fieldType.TypeName == \"System.Boolean\"){  \n        body_line[\"Value_Boolean\"] = fieldValue; \n        body.fields.push(body_line);     \n      }\n      else if(fieldEntry.fieldType.TypeName == \"System.Guid\"){\n        body_line[\"Value_DataSourceObjectId\"] = fieldValue;\n        body.fields.push(body_line);\n      }\n      else if(fieldEntry.fieldType.TypeName == \"System.String\"){\n        body_line[\"Value_String\"] = fieldValue;   \n        body.fields.push(body_line);         \n      }\n    }    \n    // console.log(\"body\", body);\n\n    this.dimensionType_store.insert(body)\n      .then(\n          (dataObj) => \n          { \n            // console.log(\"saveEntityGroup:\", dataObj);\n            if(this.domainObject && !this.domainObject.ExtensionId)\n              this.domainObject.ExtensionId = dataObj[0]?.ObjectExtensionId;\n            this.getEntityGroup();\n            this.isLoadingData = false;\n            this.inEditMode = false;\n            this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          },\n          (error) => \n          { \n            console.log(error);\n            this.isLoadingData = false;\n            this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            MessageBox.showError({title: $localize`:@@Failed-Text-FieldsUpdate:Fields update failed`, message: error },this.matDialog)\n            .subscribe( result => \n              {\n                // console.log(`Dialog result : ${result}`);\n              });\n          }\n      );\n  }\n\n  onEditClick(){    \n    // console.log(\"onEditClick\");\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveEntityGroup();\n    }    \n  }\n\n  onRetryClick(){\n    this.getEntityGroup(); \n    this.inEditMode = false;\n  } \n\n  onCancelEditClick(){\n    this.getEntityGroup();   \n    this.inEditMode = false;\n  }\n\n  //--- DatasourceItem_DataSource  \n\n  // createDatasourceItem_DataSource(entityName: string) : ODataStore{\n  createDatasourceItem_DataSource(entityName: string, sortColumn: string) : DataSource{\n    // console.log(\"sort on: \", sortColumn);\n    var store:ODataStore = new ODataStore({ url: this.cloudDataService.getMobiManagementODataUrl(entityName),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n\n    var ds:DataSource;  \n\n    if(sortColumn){\n      ds =new DataSource({\n        store: store,\n        requireTotalCount: true,\n        sort: [{ selector: sortColumn, desc: false }],\n        map: (dataItem) => {        \n          return dataItem;\n        }            \n      });\n    }\n    else{\n      ds =new DataSource({\n        store: store,\n        requireTotalCount: true,\n        map: (dataItem) => {        \n          return dataItem;\n        }            \n      });\n    }    \n\n    return ds;\n  }\n\n  datasourceItemChanged(fieldName:any, args:any) {\n    this.formEntity_state[fieldName + '_selectedid'] = args.selectedRowsData?.length > 0 ? args.selectedRowsData[0]?.Id : undefined;\n    this.formEntity[fieldName] = this.formEntity_state[fieldName + '_selectedid'];\n  }\n}\n","<mobicloud-group-box [title]=\"caption\" [width]=\"width\" [contentheight]=[contentheight] class=\"dimensionTypeForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\" *ngIf=\"domainObject && entityGroup && dimensionType?.EntityType\">\n\n    <ng-container *ngIf=\"entityGroup.fields?.length > 0\">\n\n            <dx-form #form id=\"form\"\n            [formData]=\"formEntity\"\n            [readOnly]=\"!inEditMode\"\n            [showColonAfterLabel]=\"true\"\n            labelLocation=\"top\"\n            [showValidationSummary]=\"false\" \n            [showRequiredMark] = \"false\"\n            validationGroup=\"formDimensionFields_General\">\n    \n                <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" *ngIf=\"formEntity\">\n                    <ng-container *ngFor=\"let fieldInfo of entityGroup.fields\">\n                        <dxi-item [dataField]=\"fieldInfo.fieldType.Name\" [colSpan]=\"2\" *ngIf=\"fieldInfo.fieldType.TypeName != 'System.Guid'\" [editorType]=\"formEntity_state[fieldInfo.fieldType.Name + '_editortype']\">\n                            <dxo-label [text]=\"fieldInfo.fieldType.Caption\"></dxo-label>\n                        </dxi-item> \n\n                        <dxi-item [dataField]=\"fieldInfo.fieldType.Name\" [colSpan]=\"2\" editorType=\"dxLookup\"  *ngIf=\"fieldInfo.fieldType.TypeName == 'System.Guid'\"\n                            [editorOptions]=\"{ itemTemplate: fieldInfo.fieldType.Name +'_itemTemplate', fieldTemplate: fieldInfo.fieldType.Name + '_fieldTemplate', dataSource: formEntity_state[fieldInfo.fieldType.Name + '_ds'], valueExpr: 'Id', searchEnabled: true, searchExpr: ['Name'], showClearButton: true }\">\n                            <dxo-label [text]=\"fieldInfo.fieldType.Caption\"></dxo-label>\n                        </dxi-item>\n                    </ng-container>\n                </dxi-item>\n            \n                <ng-container *ngFor=\"let fieldInfo of entityGroup.fields\">          \n                    <div *dxTemplate=\"let item of (fieldInfo.fieldType.Name + '_itemTemplate')\">\n                        {{itemtemplete_value(fieldInfo, item)}} \n                    </div>        \n                    <div *dxTemplate=\"let item of (fieldInfo.fieldType.Name + '_fieldTemplate')\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n                        {{fieldtemplete_value(fieldInfo, item)}}  \n                    </div>  \n                </ng-container>               \n            </dx-form>            \n\n\n    </ng-container>\n\n</mobicloud-group-box>","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport ODataStore from \"devextreme/data/odata/store\";\n\nimport { MobiCloudDataService, DimensionType, DimensionField, DimensionFieldType, DomainObject } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-dimension-groups',\n  templateUrl: './dimension-groups.component.html',\n  styleUrls: ['./dimension-groups.component.scss']\n})\nexport class DimensionGroupsComponent implements OnInit {\n  isLoadingData:  boolean|undefined= false;\n  hasErrors :  boolean|undefined= false;\n  errorText:  string = \"\";\n\n  @Input() domainObject: DomainObject|undefined;\n  @Input() entityType: string|undefined; \n  @Input() width: any;\n  @Input() contentheight: any|undefined;\n  @Input() groupboxClassName: string|undefined;\n\n  dimensionType_store: ODataStore|undefined;\n  dimensionField_store: ODataStore|undefined;\n  odatastore_dimensionType_filter:  string|undefined;\n  odatastore_dimensionField_filter:  string|undefined;\n\n  dimensionType: DimensionType|undefined;\n  groups: any[]|undefined = [];\n  // groups: string[] = ['Group 1','Group 2'];\n\n  get className(){\n    return `${this.groupboxClassName ?? ''} gap-8`;\n  }\n\n  constructor(private cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {\n  }\n\n  ngOnInit(): void {    \n    this.initializeDataStore();\n    this.getDimensionType();\n  }\n\n  async initializeDataStore(){     \n\n    this.dimensionType_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"DimensionType\"),\n      beforeSend: (e) => { \n        this.applyDimensionTypeFilter();\n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.url = this.cloudDataService.getMobiManagementODataUrl(\"DimensionType?$orderby=Name\");\n          }\n          e.params.$filter = this.odatastore_dimensionType_filter;\n          var expandValues : string[] = [\"FieldTypes($orderby=GroupName,Index;$expand=DataSourceColumns)\"];\n          if(expandValues?.length > 0){\n            e.params.$expand = expandValues.toString();                      \n          }        \n        }          \n      },\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4\n    });\n    //(this.domainObject.ExtensionId)\n    this.dimensionField_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"DimensionField\"),\n      beforeSend: (e) => { \n        this.applyDimensionFieldFilter();\n        if(e.method?.toUpperCase() == \"GET\"){\n          e.params.$filter = this.odatastore_dimensionField_filter;  \n          // console.log(\"filter:\", e.params.$filter);   \n        }          \n      },            \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4\n    });    \n  }\n\n  applyDimensionTypeFilter(){  \n    this.odatastore_dimensionType_filter = `EntityType  eq '${this.entityType}'`; \n  }  \n\n  applyDimensionFieldFilter(){  \n    this.odatastore_dimensionField_filter = `ObjectExtensionId  eq ${this.domainObject?.ExtensionId}`; \n  }    \n\n  async getDimensionType() {\n    if(this.entityType && this.dimensionType_store && this.dimensionField_store){\n      this.isLoadingData = true;\n      \n      this.dimensionType_store.load().then(\n        (dataItem_dimtype) => {           \n          this.dimensionType = dataItem_dimtype[0];\n          // console.log(\"dimensionType:\", this.dimensionType);\n          if(this.dimensionType?.FieldTypes && this.dimensionType?.FieldTypes?.length > 0 && this.dimensionField_store){\n            if(this.domainObject?.ExtensionId){\n              this.dimensionField_store.load().then(\n                (dataItem_dimfields) => {                   \n\n                  this.processGroups(dataItem_dimfields);\n                  \n                  this.isLoadingData = false;\n                  this.hasErrors = false;\n                  this.errorText = \"\";\n                },\n                (error) => { \n                  console.log(error);\n                  this.isLoadingData = false;\n                  this.hasErrors = true;\n                  this.errorText = error;\n                }\n              ); \n            }\n            else{\n              this.processGroups(undefined);\n              this.isLoadingData = false;\n              this.hasErrors = false;\n              this.errorText = \"\";\n            }            \n          }\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n        }\n      );\n\n    }\n  }\n\n  processGroups(dataItem_dimfields: any){\n    const result = this.groupBy(this.dimensionType?.FieldTypes, (f:any) => f.GroupName);\n    const entries = Object.entries(result);\n    \n    for(let i = 0; i < entries.length; i++) { \n      const groupName:string|undefined = entries[i][0];\n      var fieldTypes: any = entries[i][1];\n      \n      // var groupEntry =  {\"name\": groupName, \"fields\": []};\n      var groupEntry: { name: string|undefined; fields: DimensionField[] } = {name: groupName, fields: []};\n\n      for(let q = 0; q < fieldTypes.length; q++) {\n        var field = dataItem_dimfields?.filter((f: { FieldTypeId: any; }) => f.FieldTypeId == fieldTypes[q].Id.toString())[0];\n        if(field){\n          let f_entry:never = {\"fieldType\": Object.assign(new DimensionFieldType(), fieldTypes[q]), \"field\": Object.assign(new DimensionField(), field)} as never;\n          groupEntry.fields.push(f_entry);\n        }\n        else{\n          let f_entry:never = {\"fieldType\": Object.assign(new DimensionFieldType(), fieldTypes[q]), \"field\": Object.assign(new DimensionField(), {FieldTypeId: fieldTypes[q].Id, FieldType: fieldTypes[q]})} as never;\n          groupEntry.fields.push(f_entry);\n        }                 \n      }\n      if(!groupEntry.name || groupEntry.name == 'undefined'){\n        groupEntry.name = undefined;\n      }\n      // console.log(\"groups:\", groupEntry);\n      this.groups?.push(groupEntry);\n    }\n  }\n\n  groupBy(xs:any[]|undefined, f:any|undefined) {\n    return xs?.reduce((r, v, i, a, k = f(v)) => ((r[k] || (r[k] = [])).push(v), r), {});\n  }\n\n}\n","<ng-container *ngIf=\"dimensionType && groups?.length > 0\">\n    <ng-container *ngFor=\"let group of groups\">\n        <div [class]=\"className\">\n            <mobicloud-dimension-group-box [entityGroup]=\"group\" [dimensionType]=\"dimensionType\" [width]=\"width\" [contentheight]=\"contentheight\" [domainObject]=\"domainObject\"></mobicloud-dimension-group-box>          \n        </div>\n    </ng-container>\n</ng-container>\n\n","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { Project } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-project-description',\n  templateUrl: './project-description.component.html',\n  styleUrls: ['./project-description.component.scss']\n})\nexport class ProjectDescriptionComponent implements OnInit, OnChanges {\n  @Input() project: Project|undefined;\n  formProject: Project|undefined;\n  @Input() project_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() projectChanged = new EventEmitter<Project>();  \n\n  project_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {     \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });\n  }\n\n  ngOnInit(): void {      \n    this.initializeDataSource();\n  }\n\n  async initializeDataSource(){\n    this.project_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Project\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });     \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['project']?.currentValue && changes['project'].currentValue != this.formProject) {\n      this.formProject = this.project;      \n      this.onProjectChanged(this.formProject); \n    }    \n  }\n\n  onProjectChanged(sales_order: Project|undefined){   \n  }\n\n  getProject() {\n    if(this.project?.Id && this.project_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Project:Loading project...`;\n      this.project_store.byKey(this.project.Id, { expand: this.project_expands }).then(\n        (dataItem) => { \n          this.formProject = Object.assign(new Project(), dataItem[0]);\n          this.project = this.formProject;\n          \n          this.onProjectChanged(this.project);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.projectChanged.emit(this.project);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"StartDate\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveProject();\n    }\n  }\n\n  saveProject(){\n    if(this.project?.Id && this.project_store && this.formProject){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-Project:Updating project...`;\n      const data:any = {\n        Description: this.formProject.Description\n      };\n      this.project_store.update(this.project.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getProject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Project:Project update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onRetryClick(){\n    this.getProject();\n    this.inEditMode = false;\n  } \n\n  onCancelEditClick(){\n    this.getProject();    \n    this.inEditMode = false;\n  }\n\n\n}\n","<mobicloud-group-box title=\"Note\" i18n-title=\"@@CaptionHeader-Note\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"projectDescriptionForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formProject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formProjectData_Description\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"1\">\n            <!-- <dxi-item dataField=\"Description\" editorType=\"dxTextArea\" [editorOptions]=\"{ height: 216, autoResizeEnabled: true }\"> -->\n            <dxi-item dataField=\"Description\" editorType=\"dxTextArea\" [editorOptions]=\"{ height: 96, autoResizeEnabled: true }\">\n                <dxo-label text=\"Note\" i18n-text=\"@@CaptionHeader-Note\" [visible]=\"false\"></dxo-label>\n              </dxi-item> \n        </dxi-item>\n        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Project, Customer, ProjectFinancialType, FinancialStatus } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-project-finance',\n  templateUrl: './project-finance.component.html',\n  styleUrls: ['./project-finance.component.scss']\n})\nexport class ProjectFinanceComponent implements OnInit, OnChanges {\n  @Input() project: Project|undefined;\n  formProject: Project|undefined;\n  @Input() project_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() projectChanged = new EventEmitter<Project>();  \n\n  project_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {   \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });  \n  }\n\n  ngOnInit(): void { \n    this.initializeDataSource();\n    this.createCustomerDataSource();\n  }\n\n  async initializeDataSource(){\n    this.project_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Project\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });     \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['project']?.currentValue && changes['project'].currentValue != this.formProject) {\n      this.formProject = this.project;      \n      this.onProjectChanged(this.formProject); \n    }    \n  }\n\n  onProjectChanged(proj: Project|undefined){\n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }     \n  }\n\n  getProject() {\n    if(this.project?.Id && this.project_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Project:Loading project...`;\n      this.project_store.byKey(this.project.Id, { expand: this.project_expands }).then(\n        (dataItem) => { \n          this.formProject = Object.assign(new Project(), dataItem[0]);\n          this.project = this.formProject;\n          \n          this.onProjectChanged(this.project);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.projectChanged.emit(this.project);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"FinancialType\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveProject();\n    }\n  }\n\n  saveProject(){\n    if(this.project?.Id && this.formProject && this.project_store){\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Updating-Text-Project:Updating sales project...`;\n      const data:any = {\n        FinancialType: this.formProject.FinancialType,\n        FinancialStatus: this.formProject.FinancialStatus,\n        CustomerId: this.formProject?.CustomerId\n      };\n    this.project_store.update(this.project.Id, data)\n      .then(\n          (dataObj) => \n          { \n            this.getProject();\n            this.isLoadingData = false;\n            this.inEditMode = false;\n            this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          },\n          (error) => \n          { \n            console.log(error);\n            this.isLoadingData = false;\n            this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            MessageBox.showError({title: $localize`:@@Failed-Text-Project:Project update failed`, message: error },this.matDialog)\n            .subscribe( result => \n              {\n                // console.log(`Dialog result : ${result}`);\n              });\n          }\n      );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getProject();    \n    this.inEditMode = false;\n  }\n  \n  onRetryClick(){\n    this.getProject();\n    this.inEditMode = false;\n  } \n\n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>;\n\n   //--- FiinancialType\n   financialtype_ds: any[] = [  \n    { id: ProjectFinancialType.None, description: $localize`:@@EnumValue-ProjectFinancialType-None:None` }, \n    { id: ProjectFinancialType.Internal, description: $localize`:@@EnumValue-ProjectFinancialType-Internal:Internal` },  \n    { id: ProjectFinancialType.Fixed, description: $localize`:@@EnumValue-ProjectFinancialType-Fixed:Fixed` },  \n    { id: ProjectFinancialType.Invoice, description: $localize`:@@EnumValue-ProjectFinancialType-Invoice:Invoice` },\n    { id: ProjectFinancialType.NoInvoice, description: $localize`:@@EnumValue-ProjectFinancialType-NoInvoice:No invoice` }\n  ]     \n\n   //--- FiinancialStatus\n   financialstatus_ds: any[] = [  \n    { id: FinancialStatus.None, description: $localize`:@@EnumValue-FinancialStatus-None:None` }, \n    { id: FinancialStatus.Open, description: $localize`:@@EnumValue-FinancialStatus-Open:Open` },  \n    { id: FinancialStatus.ClosePending, description: $localize`:@@EnumValue-FinancialStatus-ClosePending:Close pending` },  \n    { id: FinancialStatus.Closed, description: $localize`:@@EnumValue-FinancialStatus-Closed:Closed` }\n  ]     \n\n  //--- CustomerDataSource\n  customer_store: ODataStore|undefined;\n  customer_ds: DataSource|undefined;\n\n  async createCustomerDataSource(){\n\n    this.customer_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Customer\"),     \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n\n    this.customer_ds = new DataSource({\n      store: this.customer_store,\n      sort: [\n          { selector: \"Name\", desc: false }\n      ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Customer(), dataItem);\n      }            \n    });  \n  }  \n}\n\n","<mobicloud-group-box title=\"Finance\" i18n-title=\"@@CaptionHeader-Finance\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"projectFinanceForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formProject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formProjectData_Finance\">\n\n        <dxi-item itemType=\"group\" caption=\"\">\n\n\n            <dxi-item dataField=\"FinancialType\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: financialtype_ds, valueExpr: 'id', displayExpr: 'description' }\">\n                <dxo-label text=\"Financial type\" i18n-text=\"@@FieldCaption-FinancialType\"></dxo-label>\n            </dxi-item>     \n                        \n            <dxi-item dataField=\"FinancialStatus\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: financialstatus_ds, valueExpr: 'id', displayExpr: 'description' }\">\n                <dxo-label text=\"Financial status\" i18n-text=\"@@FieldCaption-FinancialStatus\"></dxo-label>\n            </dxi-item> \n\n            <dxi-item dataField=\"CustomerId\" #customer editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'customer_itemTemplate', fieldTemplate: 'customer_fieldTemplate', dataSource: customer_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['AccountNumber','Name'], showClearButton: true }\">\n                <dxo-label text=\"Customer\" i18n-text=\"@@FieldCaption-Customer\"></dxo-label> \n            </dxi-item>\n\n        </dxi-item>\n\n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'customer_itemTemplate'\">\n            {{ item?.Name }} ({{ item?.AccountNumber }})\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'customer_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}} ({{ fieldData?.AccountNumber }})            \n        </div> \n\n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { Project, TaskStatus, Employee, ProjectType, TaskType, Beacon } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-project-general',\n  templateUrl: './project-general.component.html',\n  styleUrls: ['./project-general.component.scss']\n})\nexport class ProjectGeneralComponent implements OnInit, OnChanges {\n  @Input() project: Project|undefined;\n  formProject: Project|undefined;\n  @Input() project_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  \n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() projectChanged = new EventEmitter<Project|undefined>();  \n\n  project_store: ODataStore|undefined;\n  employee_store: ODataStore|undefined;\n  beacon_store: ODataStore|undefined;\n  tasktype_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) { \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });      \n  }\n\n  ngOnInit(): void {    \n    this.initializeDataSource();\n    this.createResponsibleDataSource();\n    this.createSalesResponsibleDataSource();\n    this.createImplementationResponsibleDataSource();\n    this.createBeaconDataSource();\n    this.createTaskTypeDataSource();\n  }\n\n  async initializeDataSource(){\n    this.project_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Project\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });  \n    \n    this.employee_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Employee\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n\n    this.beacon_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Beacon\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n\n    this.tasktype_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"TaskType\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });    \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['project']?.currentValue && changes['project'].currentValue != this.formProject) {\n      this.formProject = this.project;      \n      this.onProjectChanged(this.formProject); \n    }    \n  }\n\n  onProjectChanged(proj: Project|undefined){   \n    \n  }\n\n  getProject() {\n    if(this.project?.Id && this.project_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Project:Loading project...`;\n      this.project_store.byKey(this.project.Id, { expand: this.project_expands }).then(\n        (dataItem) => { \n          this.formProject = Object.assign(new Project(), dataItem[0]);\n          this.project = this.formProject;\n          \n          this.onProjectChanged(this.project);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.projectChanged.emit(this.project);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"ProjectId\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveProject();\n    }\n  }\n\n  saveProject(){\n    if(this.project_store && this.project && this.formProject){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-Project:Updating project...`;\n      const data:any = {\n        Status: this.formProject.Status,\n        ProjectId: this.formProject.ProjectId,\n        Name: this.formProject.Name,\n        ProjectType: this.formProject.ProjectType,\n        Planable: this.formProject.Planable,\n        IsHeaderProject: this.formProject.IsHeaderProject,\n        BeaconId: this.formProject.BeaconId,\n        TaskTypeId: this.formProject.TaskTypeId,\n        ResponsibleId: this.formProject.ResponsibleId,\n        SalesResponsibleId: this.formProject.SalesResponsibleId,\n        ImplementationResponsibleId: this.formProject.ImplementationResponsibleId,\n        RequireSignature: this.formProject.RequireSignature,\n        ExternalId: this.formProject.ExternalId,        \n      };\n      this.project_store.update(this.project.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getProject();           \n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Project:Project update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getProject();    \n    this.inEditMode = false;\n  }\n  \n  onRetryClick(){\n    this.getProject();\n    this.inEditMode = false;\n  } \n\n  // *** DataSources ******************\n\n\n   //--- taskStatus\n   status_ds: any[] = [  \n    { value: TaskStatus.None, text: $localize`:@@EnumValue-TaskStatus-None:None` }, \n    { value: TaskStatus.InPlanning, text: $localize`:@@EnumValue-TaskStatus-InPlanning:In planning` },  \n    { value: TaskStatus.PartiallyPlanned, text: $localize`:@@EnumValue-TaskStatus-PartiallyPlanned:Partially planned` },\n    { value: TaskStatus.Planned, text: $localize`:@@EnumValue-TaskStatus-Planned:Planned` },\n    { value: TaskStatus.Executing, text: $localize`:@@EnumValue-TaskStatus-Executing:Executing` },  \n    { value: TaskStatus.Executed, text: $localize`:@@EnumValue-TaskStatus-Executed:Executed` },  \n    { value: TaskStatus.Cancelled, text: $localize`:@@EnumValue-TaskStatus-Cancelled:Cancelled` },\n    { value: TaskStatus.Closed, text: $localize`:@@EnumValue-TaskStatus-Closed:Closed` }  \n  ]    \n  \n   //--- projectTypes\n   projecttype_ds: any[] = [  \n    { id: ProjectType.None, description: $localize`:@@EnumValue-ProjectType-None:None` }, \n    { id: ProjectType.ServiceOrder, description: $localize`:@@EnumValue-ProjectType-ServiceOrder:Service order` },\n    { id: ProjectType.InventLoading, description: $localize`:@@EnumValue-ProjectType-InventLoading:Inventory loading` },\n    { id: ProjectType.InventUnLoading, description: $localize`:@@EnumValue-ProjectType-InventUnLoading:Inventory unloading` }\n  ]   \n  \n    //--- boolean\n    boolean_ds: any[] = [  \n    { id: false, description: $localize`:@@FieldValue-No:No` }, \n    { id: true, description: $localize`:@@FieldValue-Yes:Yes` }\n  ]   \n\n  //--- EmployeeDataSource\n  responsible_ds: DataSource|undefined;\n  salesResponsible_ds: DataSource|undefined;\n  implementationResponsible_ds: DataSource|undefined;\n  beacon_ds: DataSource|undefined;\n  tasktype_ds: DataSource|undefined;\n\n  async createResponsibleDataSource(){\n    this.responsible_ds = new DataSource({\n      store: this.employee_store,\n      sort: [\n        { selector: \"Name\", desc: false }\n      ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Employee(), dataItem);\n      }            \n    });  \n  }\n\n  async createSalesResponsibleDataSource(){\n    this.salesResponsible_ds = new DataSource({\n      store: this.employee_store,\n      sort: [\n        { selector: \"Name\", desc: false }\n      ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Employee(), dataItem);\n      }            \n    });  \n  }\n\n  async createImplementationResponsibleDataSource(){\n    this.implementationResponsible_ds = new DataSource({\n      store: this.employee_store,\n      sort: [\n        { selector: \"Name\", desc: false }\n      ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Employee(), dataItem);\n      }            \n    });  \n  }\n\n  async createBeaconDataSource(){\n    this.beacon_ds = new DataSource({\n      store: this.beacon_store,\n      sort: [\n        { selector: \"Name\", desc: false }\n      ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Beacon(), dataItem);\n      }            \n    });  \n  }\n\n  async createTaskTypeDataSource(){\n    this.tasktype_ds = new DataSource({\n      store: this.tasktype_store,\n      sort: [\n        { selector: \"Name\", desc: false }\n      ],\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new TaskType(), dataItem);\n      }            \n    });  \n  }\n}\n\n","<mobicloud-group-box title=\"General\" i18n-title=\"@@CaptionHeader-General\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"projectGeneralForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formProject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        \n        validationGroup=\"formProjectData_General\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"ProjectId\">\n                <dxo-label text=\"Project id\"  i18n-text=\"@@FieldCaption-ProjectId\"></dxo-label>\n                <dxi-validation-rule type=\"required\" message=\"Project id is required\" i18n-message=\"@@ValidationText-ProjectId-Required\"></dxi-validation-rule>\n            </dxi-item> \n            \n            <dxi-item dataField=\"Status\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: status_ds, valueExpr: 'value', displayExpr: 'text' }\">\n                <dxo-label text=\"Status\" i18n-text=\"@@FieldCaption-Status\"></dxo-label>\n            </dxi-item>   \n\n            <dxi-item dataField=\"Name\">\n                <dxo-label text=\"Name\" i18n-text=\"@@FieldCaption-Name\"></dxo-label>\n                <dxi-validation-rule type=\"required\" message=\"Name is required\" i18n-message=\"@@ValidationText-Name-Required\"></dxi-validation-rule>\n            </dxi-item>\n            <dxi-item dataField=\"ProjectType\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: projecttype_ds, valueExpr: 'id', displayExpr: 'description' }\">\n                <dxo-label text=\"Project type\" i18n-text=\"@@FieldCaption-ProjectType\"></dxo-label>\n            </dxi-item>  \n\n\n            <dxi-item dataField=\"BeaconId\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'beacon_itemTemplate', fieldTemplate: 'beacon_fieldTemplate', dataSource: beacon_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['BeaconId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Beacon\" i18n-text=\"@@FieldCaption-Beacon\"></dxo-label>\n            </dxi-item> \n\n            <dxi-item dataField=\"TaskTypeId\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'tasktype_itemTemplate', fieldTemplate: 'tasktype_fieldTemplate', dataSource: tasktype_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['TaskTypeId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Task type\" i18n-text=\"@@FieldCaption-TaskType\"></dxo-label>\n            </dxi-item> \n\n\n            <dxi-item dataField=\"ResponsibleId\" [colSpan]=\"2\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'employee_itemTemplate', fieldTemplate: 'employee_fieldTemplate', dataSource: responsible_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['EmployeeNumber','Name'], showClearButton: true }\">\n                <dxo-label text=\"Responsible\" i18n-text=\"@@FieldCaption-Responsible\"></dxo-label>\n            </dxi-item>            \n            \n            <dxi-item dataField=\"SalesResponsibleId\" [colSpan]=\"2\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'employee_itemTemplate', fieldTemplate: 'employee_fieldTemplate', dataSource: salesResponsible_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['EmployeeNumber','Name'], showClearButton: true }\">\n                <dxo-label text=\"Responsible (Sales)\" i18n-text=\"@@FieldCaption-SalesResponsible\"></dxo-label>  \n            </dxi-item>   \n\n            <dxi-item dataField=\"ImplementationResponsibleId\" [colSpan]=\"2\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'employee_itemTemplate', fieldTemplate: 'employee_fieldTemplate', dataSource: implementationResponsible_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['EmployeeNumber','Name'], showClearButton: true }\">\n                <dxo-label text=\"Responsible (Implementation)\" i18n-text=\"@@FieldCaption-ImplementationResponsible\"></dxo-label>  \n            </dxi-item>\n                                                            \n            <dxi-item dataField=\"Planable\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: boolean_ds, valueExpr: 'id', displayExpr: 'description', placeholder: '' }\">\n                <dxo-label text=\"Planable\" i18n-text=\"@@FieldCaption-Planable\"></dxo-label>\n            </dxi-item>\n            \n            <dxi-item dataField=\"IsHeaderProject\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: boolean_ds, valueExpr: 'id', displayExpr: 'description', placeholder: '' }\">\n                <dxo-label text=\"Header project\" i18n-text=\"@@FieldCaption-HeaderProject\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"RequireSignature\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: boolean_ds, valueExpr: 'id', displayExpr: 'description', placeholder: '' }\">\n                <dxo-label text=\"Require signature\" i18n-text=\"@@FieldCaption-RequireSignature\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"ExternalId\">\n                <dxo-label text=\"External id\" i18n-text=\"@@FieldCaption-ExternalId\"></dxo-label>\n            </dxi-item>\n        </dxi-item>\n        \n        \n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'employee_itemTemplate'\">\n            {{item?.Name}} {{ item?.EmployeeNumber ? ('(' + item.EmployeeNumber + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'employee_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.EmployeeNumber ? ('(' + item.EmployeeNumber + ')') : ('') }}\n        </div>   \n        \n        <div *dxTemplate=\"let item of 'tasktype_itemTemplate'\">\n            {{item?.Name}}\n        </div>        \n        <div *dxTemplate=\"let item of 'tasktype_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}}\n        </div>\n\n        <div *dxTemplate=\"let item of 'beacon_itemTemplate'\">\n            {{item?.Name}} {{ item?.BeaconId ? ('(' + item.BeaconId + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'beacon_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.BeaconId ? ('(' + item.BeaconId + ')') : ('') }}\n        </div>        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport ODataStore from \"devextreme/data/odata/store\";\n\nimport ArrayStore from \"devextreme/data/array_store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Country } from \"mobicloud-core\";\nimport { Project, ProjectLocation } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-project-location',\n  templateUrl: './project-location.component.html',\n  styleUrls: ['./project-location.component.scss']\n})\nexport class ProjectLocationComponent implements OnInit, OnChanges {\n  @Input() project: Project|undefined;\n  formProject: Project|undefined;\n  @Input() project_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() projectChanged = new EventEmitter<Project>();  \n\n  project_store: ODataStore|undefined;\n  projectlocation_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {\n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });         \n  }\n\n  ngOnInit(): void {\n    this.initializeDataSource();\n    this.createCountryDataSource();\n  }\n\n  async initializeDataSource(){\n    this.project_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Project\"),    \n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"POST\") {\n          e.url = this.cloudDataService.getMobiManagementODataUrl(\"Project(\" + this.project?.Id + \")/UpdateLocation\");\n          e.payload = {location: e.payload};\n        }                             \n      },      \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n    this.projectlocation_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"ProjectLocation\"),    \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });         \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['project']?.currentValue && changes['project'].currentValue != this.formProject) {\n      this.formProject = this.project;      \n      this.onProjectChanged(this.formProject); \n    }    \n  }\n\n  onProjectChanged(proj: Project|undefined){\n    this._countryId = this.formProject?.Location?.Country?.toString();\n\n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }     \n  }\n\n  getProject() {\n    if(this.project?.Id && this.project_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Project:Loading project...`;\n      this.project_store.byKey(this.project.Id, { expand: this.project_expands }).then(\n        (dataItem) => { \n          this.formProject = Object.assign(new Project(), dataItem[0]);\n          this.project = this.formProject;\n          \n          this.onProjectChanged(this.project);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.projectChanged.emit(this.project);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"ProjectId\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveProjectLocation();\n    }\n  }\n\n  saveProjectLocation(){\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Updating-Text-Location:Updating location...`;\n    if(this.project?.Location?.Id && this.projectlocation_store && this.formProject){\n      const data:any = {\n          Street: this.formProject.Location?.Street,\n          ZipCode: this.formProject.Location?.ZipCode,\n          City: this.formProject.Location?.City,\n          Country: this._countryId,\n          Phone: this.formProject.Location?.Phone,\n          Email: this.formProject.Location?.Email,\n          ContactPerson: this.formProject.Location?.ContactPerson,\n      };\n      this.projectlocation_store.update(this.project.Location.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getProject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Location:Location update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );        \n    }\n    else if(this.project_store && this.formProject){\n        this.project_store.insert( \n          {\n              Street: this.formProject.Location?.Street,\n              ZipCode: this.formProject.Location?.ZipCode,\n              City: this.formProject.Location?.City,\n              Country: this._countryId\n          })\n          .then(\n              (dataObj) => \n              { \n                this.getProject();\n                this.isLoadingData = false;\n                this.inEditMode = false;\n                this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              },\n              (error) => \n              { \n                console.log(error);\n                this.isLoadingData = false;\n                this.loadingText = $localize`:@@Loading-Text:Loading...`;\n                MessageBox.showError({title: $localize`:@@Failed-Text-Location:Location update failed`, message: error },this.matDialog)\n                .subscribe( result => \n                  {\n                    // console.log(`Dialog result : ${result}`);\n                  });\n              }\n          );\n      }\n  }\n\n  onCancelEditClick(){\n    this.getProject();    \n    this.inEditMode = false;\n  }\n  \n  onRetryClick(){\n    this.getProject();\n    this.inEditMode = false;\n  } \n\n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>;\n\n  //--- CountryDataSource\n  country_ds: ArrayStore<Country>|undefined;\n  _countryId: string|undefined;\n  _selectedCountry: Country |undefined;\n  _countryOpened: boolean|undefined = false;\n\n  createCountryDataSource(){\n    this.country_ds = new ArrayStore<Country>({key: 'Code2', data: Array.from(this.coreService.countries()?.values() ?? [])});\n    // console.log(\"Countries\", this.country_ds);     \n  }\n\n  countryChanged(args:any) {\n    this._selectedCountry= args.selectedRowsData?.length > 0 ? args.selectedRowsData[0] : undefined;\n    this._countryId = this._selectedCountry?.Code2;\n    if(this.formProject){\n      if(!this.formProject.Location){\n        this.formProject.Location = new ProjectLocation();\n      }\n      if(this.formProject.Location)\n        this.formProject.Location.Country = this._countryId;\n    }\n  }  \n}\n\n","<mobicloud-group-box title=\"Location\" i18n-title=\"@@CaptionHeader-Location\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"projectLocationForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formProject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formProjectData_Location\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Location.Street\" [colSpan]=\"2\">\n                <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"Location.ZipCode\">\n                <dxo-label text=\"Zip code\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"Location.City\">\n                <dxo-label text=\"City\"  i18n-text=\"@@FieldCaption-City\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"Location.Country\" [colSpan]=\"2\">\n                <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label>  \n                <div *dxTemplate=\"let data of 'content'\">\n                    <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"!inEditMode\" fieldTemplate=\"fieldTemplate\"\n                        [dataSource]=\"country_ds\"                   \n                        [(value)]=\"_countryId\"\n                        valueExpr=\"Code2\"                \n                        displayExpr=\"LocalName\"                                    \n                        [(opened)]=\"_countryOpened\"> \n                        <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n                    </dxo-drop-down-options>                                       \n                        <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n                            [dataSource]=\"country_ds\"\n                            [(selectedRowKeys)]=\"_countryId\"\n                            (onSelectionChanged)=\"countryChanged($event)\"\n                            (onRowClick)=\"_countryOpened = false\">\n                            <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n                            <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n                            <dxo-paging [enabled]=\"false\"></dxo-paging>\n                            <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n                                <img alt=\"\"src=\"{{cloudDataService.FlagUrl}}/{{data.value}}-32.png\"/>\n                            </div>\n                        </dx-data-grid>\n                        <div *dxTemplate=\"let data of 'fieldTemplate'\">\n                            <div class=\"country-edit-item\">\n                                <div class=\"country-edit-image\"><img alt=\"\" src=\"{{cloudDataService.FlagUrl}}/{{_selectedCountry?.Code2}}-32.png\" *ngIf=\"_selectedCountry?.Code2\"></div>\n                                <div class=\"country-edit-text\">\n                                    <dx-text-box stylingMode=\"filled\" [value]=\"_selectedCountry?.LocalName\" [readOnly]=\"true\"></dx-text-box>\n                                </div>\n                            </div>\n                        </div>\n                    </dx-drop-down-box>\n                </div>   \n                <!-- <dxi-validation-rule type=\"required\" message=\"Country is required\"></dxi-validation-rule>    -->\n            </dxi-item>\n            <dxi-item dataField=\"Location.ContactPerson\">\n                <dxo-label text=\"Contact person\" i18n-text=\"@@FieldCaption-ContactPerson\"></dxo-label>\n            </dxi-item>  \n            <dxi-item dataField=\"Location.Phone\">\n                <dxo-label text=\"Phone\" i18n-text=\"@@FieldCaption-Phone\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"Location.Email\" [colSpan]=\"2\" [editorOptions]=\"{ inputAttr: {'autocomplete': 'email'} }\">\n                <dxo-label text=\"Email\" i18n-text=\"@@FieldCaption-Email\"></dxo-label>     \n                <dxi-validation-rule type=\"email\" message=\"Email is invalid\" i18n-message=\"@@ValidationText-Email-Invalid\"></dxi-validation-rule>                           \n            </dxi-item>             \n \n        </dxi-item>\n        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { Project } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-project-time',\n  templateUrl: './project-time.component.html',\n  styleUrls: ['./project-time.component.scss']\n})\nexport class ProjectTimeComponent implements OnInit, OnChanges {\n  @Input() project: Project|undefined;\n  formProject: Project|undefined;\n  @Input() project_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() projectChanged = new EventEmitter<Project>();  \n\n  project_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) { \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });     \n  }\n\n  ngOnInit(): void {\n    this.initializeDataSource();\n  }\n\n  async initializeDataSource(){\n    this.project_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Project\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });     \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['project']?.currentValue && changes['project'].currentValue != this.formProject) {\n      this.formProject = this.project;      \n      this.onProjectChanged(this.formProject); \n    }    \n  }\n\n  onProjectChanged(sales_order: Project|undefined){   \n  }\n\n  getProject() {\n    if(this.project?.Id && this.project_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Project:Loading project...`;\n      this.project_store.byKey(this.project.Id, { expand: this.project_expands }).then(\n        (dataItem) => { \n          this.formProject = Object.assign(new Project(), dataItem[0]);\n          this.project = this.formProject;\n          \n          this.onProjectChanged(this.project);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.projectChanged.emit(this.project);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"StartDate\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveProject();\n    }\n  }\n\n  saveProject(){\n    if(this.project?.Id && this.project_store && this.formProject){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-Project:Updating project...`;\n      const data:any = {\n        StartDate: this.formProject.StartDate,\n        EndDate: this.formProject.EndDate\n      };\n      this.project_store.update(this.project.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getProject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Project:Project update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onRetryClick(){\n    this.getProject();\n    this.inEditMode = false;\n  } \n\n  onCancelEditClick(){\n    this.getProject();    \n    this.inEditMode = false;\n  }\n\n\n}\n","<mobicloud-group-box title=\"Time\" i18n-title=\"@@CaptionHeader-Time\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"projectTimeForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formProject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formProjectData_Time\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"StartDate\"editorType=\"dxDateBox\" [editorOptions]=\"{type: 'date', showClearButton:true}\">\n                <dxo-label text=\"From\" i18n-text=\"@@FieldCaption-From\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"EndDate\"editorType=\"dxDateBox\" [editorOptions]=\"{type: 'date', showClearButton:true}\">\n                <dxo-label text=\"To\" i18n-text=\"@@FieldCaption-To\"></dxo-label>\n            </dxi-item>\n\n        </dxi-item>\n        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\n\nimport { MessageBox } from \"../../message-box/message-box\";\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { Project, SchemaType } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-project-variant-config',\n  templateUrl: './project-variant-config.component.html',\n  styleUrls: ['./project-variant-config.component.scss']\n})\nexport class ProjectVariantConfigComponent implements OnInit, OnChanges {\n  @Input() project: Project|undefined;\n  formProject: Project|undefined;\n  @Input() project_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() projectChanged = new EventEmitter<Project>();  \n\n  project_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {   \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });       \n  }\n\n  ngOnInit(): void {\n    this.initializeDataSource();\n    this.createSchemaTypeDataSource();\n  }\n\n  async initializeDataSource(){\n    this.project_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Project\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });     \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['project']?.currentValue && changes['project'].currentValue != this.formProject) {\n      this.formProject = this.project;      \n      this.onProjectChanged(this.formProject); \n    }    \n  }\n\n  onProjectChanged(proj: Project|undefined){   \n  }\n\n  getProject() {\n    if(this.project?.Id && this.project_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-Project:Loading project...`;\n      this.project_store.byKey(this.project.Id, { expand: this.project_expands }).then(\n        (dataItem) => { \n          this.formProject = Object.assign(new Project(), dataItem[0]);\n          this.project = this.formProject;\n          \n          this.onProjectChanged(this.project);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.projectChanged.emit(this.project);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"VariantConfig1_Enabled\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveProject();\n    }\n  }\n\n  saveProject(){\n    if(this.project?.Id && this.project_store && this.formProject){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-Project:Updating project...`;\n      const data:any = {\n        SchemaTypeId: this.formProject.SchemaTypeId,\n        VariantConfig1_Enabled: this.formProject.VariantConfig1_Enabled,\n        VariantConfig2_Enabled: this.formProject.VariantConfig2_Enabled,\n        VariantConfig3_Enabled: this.formProject.VariantConfig3_Enabled\n      };\n      this.project_store.update(this.project.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getProject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Project:Project update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onRetryClick(){\n    this.getProject();\n    this.inEditMode = false;\n  } \n\n  onCancelEditClick(){\n    this.getProject();    \n    this.inEditMode = false;\n  }\n\n  //--- boolean\n  boolean_ds: any[] = [  \n    { id: false, description: $localize`:@@FieldValue-No:No` }, \n    { id: true, description: $localize`:@@FieldValue-Yes:Yes` }\n  ] \n\n  //--- SchemaTypeDataSource\n  schemaType_store: ODataStore|undefined;\n  schemaType_ds: DataSource|undefined;\n\n  async createSchemaTypeDataSource(){\n\n    this.schemaType_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"SchemaType\"),\n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.params.$orderby = \"Name asc\";\n          }\n          e.params.$filter = `EntityType  eq 'Project'`;        \n        }          \n      },            \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });\n\n    this.schemaType_ds = new DataSource({\n      store: this.schemaType_store,\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new SchemaType(), dataItem);\n      }            \n    });  \n  }    \n}\n","<mobicloud-group-box title=\"Config\" i18n-title=\"@@CaptionHeader-VariantConfig\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"projectVariantConfigForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formProject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formProjectData_VariantConfig\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\" cssClass=\"group_caption\">\n            <dxi-item dataField=\"SchemaTypeId\" #schemaType [colSpan]=\"2\" editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'schemaType_itemTemplate', fieldTemplate: 'schemaType_fieldTemplate', dataSource: schemaType_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['Name'], showClearButton: true }\">\n                <dxo-label text=\"Schema type\" location=\"top\" i18n-text=\"@@FieldCaption-SchemaType\"></dxo-label> \n            </dxi-item>  \n                        \n            <dxi-item dataField=\"VariantConfig1_Enabled\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: boolean_ds, valueExpr: 'id', displayExpr: 'description', placeholder: '' }\">\n                <dxo-label text=\"Variant 1\" location=\"top\" i18n-text=\"@@FieldCaption-Variant1_Enabled\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"VariantConfig2_Enabled\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: boolean_ds, valueExpr: 'id', displayExpr: 'description', placeholder: '' }\">\n                <dxo-label text=\"Variant 2\" location=\"top\" i18n-text=\"@@FieldCaption-Variant2_Enabled\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"VariantConfig3_Enabled\" editorType=\"dxSelectBox\" [editorOptions]=\"{ dataSource: boolean_ds, valueExpr: 'id', displayExpr: 'description', placeholder: '' }\">\n                <dxo-label text=\"Variant 3\" location=\"top\" i18n-text=\"@@FieldCaption-Variant3_Enabled\"></dxo-label>\n            </dxi-item> \n            <dxi-item itemType=\"empty\"></dxi-item>\n          \n        </dxi-item>\n        \n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'schemaType_itemTemplate'\">\n            {{item?.EntityType}} {{ item?.Name ? ('(' + item.Name + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'schemaType_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.EntityType}} {{ item?.Name ? ('(' + item.Name + ')') : ('') }}\n        </div>         \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { ServiceObject, Customer, Beacon } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-service-object-general',\n  templateUrl: './service-object-general.component.html',\n  styleUrls: ['./service-object-general.component.scss']\n})\nexport class ServiceObjectGeneralComponent implements OnInit, OnChanges {\n  @Input() serviceObject: ServiceObject|undefined;\n  formserviceObject: ServiceObject|undefined;\n  @Input() serviceObject_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() serviceObjectChanged = new EventEmitter<ServiceObject>();  \n\n  serviceObject_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {   \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });       \n  }\n\n  ngOnInit(): void { \n    this.initializeDataSource();\n\n    this.createCustomerDataSource(); \n    this.createBeaconDataSource(); \n  }\n\n  async initializeDataSource(){\n    this.serviceObject_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"ServiceObject\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });     \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['serviceObject']?.currentValue && changes['serviceObject'].currentValue != this.formserviceObject) {\n      this.formserviceObject = this.serviceObject;      \n      this.onServiceObjectChanged(this.formserviceObject); \n    }    \n  }\n\n  onServiceObjectChanged(sales_order: ServiceObject|undefined){  \n  }\n\n  getServiceObject() {\n    if(this.serviceObject?.Id && this.formserviceObject && this.serviceObject_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-ServiceObject:Loading service object...`;\n      this.serviceObject_store.byKey(this.serviceObject.Id, { expand: this.serviceObject_expands }).then(\n        (dataItem) => { \n          this.formserviceObject = Object.assign(new ServiceObject(), dataItem[0]);\n          this.serviceObject = this.formserviceObject;\n          \n          this.onServiceObjectChanged(this.serviceObject);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.serviceObjectChanged.emit(this.serviceObject);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Name\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveServiceObject();\n    }\n  }\n\n  saveServiceObject(){\n    if(this.formserviceObject && this.serviceObject?.Id && this.serviceObject_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-ServiceObject:Updating service object...`;\n      const data:any = {\n        ServiceObjectId: this.formserviceObject.ServiceObjectId,\n        Name: this.formserviceObject.Name,\n        Serialnumber: this.formserviceObject.Serialnumber,\n        OrderReference: this.formserviceObject.OrderReference,        \n        CustomerId: this.formserviceObject?.CustomerId,\n        BeaconId: this.formserviceObject?.BeaconId,\n        InitialDate: this.formserviceObject.InitialDate,\n        ExpireDate: this.formserviceObject.ExpireDate,\n        ExternalId: this.formserviceObject.ExternalId,\n      };\n      this.serviceObject_store.update(this.serviceObject.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getServiceObject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-ServiceObject:Service object update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }  \n  }\n\n  onRetryClick(){\n    this.getServiceObject();\n    this.inEditMode = false;\n  } \n\n  onCancelEditClick(){\n    this.getServiceObject();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n\n//--- CustomerDataSource\n  customer_ds: DataSource|undefined;\n\n  async createCustomerDataSource(){\n    this.customer_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Customer\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      // expand: [\"ContactPerson($select=ContactPersonId,Name)\"],   \n      map: (dataItem) => {        \n        return Object.assign(new Customer(), dataItem);\n      }            \n    });  \n  }\n\n  //--- BeaconDataSource\n  beacon_ds: DataSource|undefined;\n\n  async createBeaconDataSource(){\n    this.beacon_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"Beacon\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {        \n        return Object.assign(new Beacon(), dataItem);\n      }            \n    });  \n  }\n\n}\n","<mobicloud-group-box title=\"General\" i18n-title=\"@@CaptionHeader-General\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"serviceObjectGeneralForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formserviceObject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formServiceObjectData_General\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"ServiceObjectId\">\n                <dxo-label text=\"Service Object id\"  i18n-text=\"@@FieldCaption-ServiceObjectId\"></dxo-label>\n                <dxi-validation-rule type=\"required\" message=\"Service Object id is required\" i18n-message=\"@@ValidationText-ServiceObjectId-Required\"></dxi-validation-rule>\n            </dxi-item> \n            <dxi-item dataField=\"Name\" [colSpan]=\"2\">\n                <dxo-label text=\"Name\" i18n-text=\"@@FieldCaption-Name\"></dxo-label>\n                <dxi-validation-rule type=\"required\" message=\"Name is required\" i18n-message=\"@@ValidationText-Name-Required\"></dxi-validation-rule>\n            </dxi-item>\n\n            <dxi-item dataField=\"Serialnumber\">\n                <dxo-label text=\"Serialnumber\" i18n-text=\"@@FieldCaption-Serialnumber\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"OrderReference\">\n                <dxo-label text=\"Order ref.\" i18n-text=\"@@FieldCaption-OrderReference\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"ExternalId\" [colSpan]=\"2\">\n                <dxo-label text=\"External id\" i18n-text=\"@@FieldCaption-ExternalId\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"CustomerId\" #customer [colSpan]=\"2\" editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'customer_itemTemplate', fieldTemplate: 'customer_fieldTemplate', dataSource: customer_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['AccountNumber','Name'], showClearButton: true }\">\n                <dxo-label text=\"Customer\" i18n-text=\"@@FieldCaption-Customer\"></dxo-label> \n            </dxi-item>\n\n            <dxi-item dataField=\"BeaconId\" #customer [colSpan]=\"2\" editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'beacon_itemTemplate', fieldTemplate: 'beacon_fieldTemplate', dataSource: beacon_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['BeaconId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Beacon\" i18n-text=\"@@FieldCaption-Beacon\"></dxo-label>\n            </dxi-item>\n            \n            <dxi-item dataField=\"InitialDate\" editorType=\"dxDateBox\">\n                <dxo-label text=\"Initial date\" i18n-text=\"@@FieldCaption-InitialDate\"></dxo-label>\n            </dxi-item>            \n            <dxi-item dataField=\"ExpireDate\" editorType=\"dxDateBox\">\n                <dxo-label text=\"Expire date\" i18n-text=\"@@FieldCaption-ExpireDate\"></dxo-label>\n            </dxi-item>  \n\n        </dxi-item>\n        \n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'customer_itemTemplate'\">\n            {{ item?.Name }} ({{ item?.AccountNumber }})\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'customer_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}} ({{ fieldData?.AccountNumber }})\n        </div>  \n        \n        <div *dxTemplate=\"let item of 'beacon_itemTemplate'\">\n            {{ item?.Name }} ({{ item?.BeaconId }})\n        </div>        \n        <div *dxTemplate=\"let fieldData of 'beacon_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{fieldData?.Name}} ({{ fieldData?.BeaconId }})\n        </div>         \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { ServiceObject } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-service-object-model',\n  templateUrl: './service-object-model.component.html',\n  styleUrls: ['./service-object-model.component.scss']\n})\nexport class ServiceObjectModelComponent implements OnInit, OnChanges {\n  @Input() serviceObject: ServiceObject|undefined;\n  formserviceObject: ServiceObject|undefined;\n  @Input() serviceObject_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() serviceObjectChanged = new EventEmitter<ServiceObject>();  \n\n  serviceObject_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {  \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });     \n  }\n\n  ngOnInit(): void {\n    this.initializeDataSource();\n  }\n\n  async initializeDataSource(){\n    this.serviceObject_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"ServiceObject\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });     \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['serviceObject']?.currentValue && changes['serviceObject'].currentValue != this.formserviceObject) {\n      this.formserviceObject = this.serviceObject;      \n      this.onServiceObjectChanged(this.formserviceObject); \n    }    \n  }\n\n  onServiceObjectChanged(serviceOb: ServiceObject|undefined){ \n  }\n\n  getServiceObject() {\n    if(this.serviceObject_store && this.serviceObject?.Id){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-ServiceObject:Loading service object...`;\n      this.serviceObject_store.byKey(this.serviceObject.Id, { expand: this.serviceObject_expands }).then(\n        (dataItem) => { \n          this.formserviceObject = Object.assign(new ServiceObject(), dataItem[0]);\n          this.serviceObject = this.formserviceObject;\n          \n          this.onServiceObjectChanged(this.serviceObject);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.serviceObjectChanged.emit(this.serviceObject);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Type\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveServiceObject();\n    }\n  }\n\n  saveServiceObject(){\n    if(this.serviceObject_store && this.serviceObject && this.formserviceObject){\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Updating-Text-ServiceObject:Updating service object...`;\n      const data:any = {\n        Type: this.formserviceObject.Type,\n        Category: this.formserviceObject.Category,\n        Brand: this.formserviceObject.Brand,\n        Model: this.formserviceObject.Model,\n        ModelYear: this.formserviceObject.ModelYear,\n        Version: this.formserviceObject.Version,\n        Weight: this.formserviceObject.Weight,\n        Height: this.formserviceObject.Height,\n        Depth: this.formserviceObject.Depth,\n        Length: this.formserviceObject.Length,\n      };\n      this.serviceObject_store.update(this.serviceObject.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getServiceObject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-ServiceObject:Service object update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onRetryClick(){\n    this.getServiceObject();\n    this.inEditMode = false;\n  } \n\n  onCancelEditClick(){\n    this.getServiceObject();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n\n}\n","<mobicloud-group-box title=\"Service\" i18n-title=\"@@CaptionHeader-Service\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"serviceObjectServiceForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formserviceObject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formServiceObjectData_Service\">\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Type\">\n                <dxo-label text=\"Type\" i18n-text=\"@@FieldCaption-Type\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"Category\">\n                <dxo-label text=\"Category\" i18n-text=\"@@FieldCaption-Category\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"Brand\">\n                <dxo-label text=\"Brand\" i18n-text=\"@@FieldCaption-Brand\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"Model\">\n                <dxo-label text=\"Model\" i18n-text=\"@@FieldCaption-Model\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"ModelYear\" editorType=\"dxNumberBox\">\n                <dxo-label text=\"Model (Year)\" i18n-text=\"@@FieldCaption-ModelYear\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"Version\">\n                <dxo-label text=\"Version\" i18n-text=\"@@FieldCaption-Version\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"Weight\" editorType=\"dxNumberBox\">\n                <dxo-label text=\"Weight\" i18n-text=\"@@FieldCaption-Weight\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"Height\" editorType=\"dxNumberBox\">\n                <dxo-label text=\"Height\" i18n-text=\"@@FieldCaption-Height\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"Depth\" editorType=\"dxNumberBox\">\n                <dxo-label text=\"Depth\" i18n-text=\"@@FieldCaption-Depth\"></dxo-label>                \n            </dxi-item> \n\n            <dxi-item dataField=\"Length\" editorType=\"dxNumberBox\">\n                <dxo-label text=\"Length\" i18n-text=\"@@FieldCaption-Length\"></dxo-label>                \n            </dxi-item> \n        \n        </dxi-item>\n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, Input, EventEmitter, ViewChild, effect } from '@angular/core';\n\nimport { ServiceObject } from \"mobicloud-core/api\";\nimport { getBlobUrl } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport { ImageEditComponent } from \"../../image-edit/image-edit.component\";\n\n@Component({\n  selector: 'mobicloud-service-object-image',\n  templateUrl: './service-object-image.component.html',\n  styleUrls: ['./service-object-image.component.scss']\n})\nexport class ServiceObjectImageComponent implements OnInit {\n  @ViewChild('imageEdit') imageEdit! :  ImageEditComponent;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input() width!:  number;\n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@UploadingLoading-Image-Text:Uploading image...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n  @Input() serviceObject: ServiceObject|undefined;\n\n  @Output() refreshServiceObject = new EventEmitter();\n  @Output() serviceObjectChanged = new EventEmitter<ServiceObject>(); \n\n  uploadUrl:  string|undefined;\n  isUploaded: boolean|undefined = false;\n  \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService) {   \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });  \n  }\n\n  ngOnInit(): void {\n    this.uploadUrl = this.cloudDataService.getMobiManagementODataUrl(`ServiceObject(${this.serviceObject?.Id})/UploadImage`);\n    // console.log(\"url:\", this.uploadUrl);\n  }\n\n  getLogoUrl() : string|undefined{\n    // console.log(\"LOGO:\", this.serviceObject.LogoImage);\n    if(this.serviceObject?.Image){\n      return `${getBlobUrl(this.serviceObject.Image.StorageAccountName ?? '', this.serviceObject.Image.BlobContainerName ?? '')}${this.serviceObject.Image.BlobName}`;\n    }\n    return undefined;\n  }\n\n  onEditClick(){\n    this.inEditMode = true;\n  }\n\n  onCancelEditClick(){\n    this.inEditMode = false;\n  }\n\n  onSaveClick(){\n    this.imageEdit.upload();\n  }\n\n  onRetryClick(){\n    this.imageEdit.upload();\n  } \n\n  refresh(){\n    this.refreshServiceObject.emit();\n  }\n}\n","<mobicloud-group-box title=\"Image\" i18n-title=\"@@CaptionHeader-Image\" [width]=\"[width]\" [contentheight]=\"0\" class=\"serviceObjectImageForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n  <mobicloud-image-edit #imageEdit id=\"imageEdit\" [uploadUrl]=\"uploadUrl\" [imageUrl]=\"getLogoUrl()\" [width]=\"(width - 20)\" [enableCamera]=\"true\"\n  [(inEditMode)]=\"inEditMode\" [(isUploading)]=\"isLoadingData\" [(isUploaded)]=\"isUploaded\" [(uploadError)]=\"hasErrors\" [(uploadErrorMessage)]=\"errorText\"></mobicloud-image-edit>\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { ServiceObject, InventLocation, WMSLocation, Asset } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-service-object-inventory',\n  templateUrl: './service-object-inventory.component.html',\n  styleUrls: ['./service-object-inventory.component.scss']\n})\nexport class ServiceObjectInventoryComponent implements OnInit, OnChanges {\n  @Input() serviceObject: ServiceObject|undefined;\n  formserviceObject: ServiceObject|undefined;\n  @Input() serviceObject_expands: string[]|undefined;  \n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() serviceObjectChanged = new EventEmitter<ServiceObject>();  \n\n  serviceObject_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {   \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });       \n  }\n\n  ngOnInit(): void {\n    this.initializeDataSource();\n\n    this.createInventLocationDataSource(); \n    this.createWMSLocationDataSource(); \n    this.createAssetDataSource();\n  }\n\n  async initializeDataSource(){\n    this.serviceObject_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"ServiceObject\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });     \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['serviceObject']?.currentValue && changes['serviceObject'].currentValue != this.formserviceObject) {\n      this.formserviceObject = this.serviceObject;      \n      this.onServiceObjectChanged(this.formserviceObject); \n    }    \n  }\n\n  onServiceObjectChanged(sales_order: ServiceObject|undefined){\n  }\n\n  getServiceObject() {\n    if(this.serviceObject?.Id && this.formserviceObject && this.serviceObject_store){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-ServiceObject:Loading service object...`;\n      this.serviceObject_store.byKey(this.serviceObject.Id, { expand: this.serviceObject_expands }).then(\n        (dataItem) => { \n          this.formserviceObject = Object.assign(new ServiceObject(), dataItem[0]);\n          this.serviceObject = this.formserviceObject;\n          \n          this.onServiceObjectChanged(this.serviceObject);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.serviceObjectChanged.emit(this.serviceObject);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Name\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveServiceObject();\n    }\n  }\n\n  saveServiceObject(){\n    if(this.serviceObject_store && this.serviceObject){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Updating-Text-ServiceObject:Updating service object...`;\n      const data:any = {\n        InventLocationId: this.formserviceObject?.InventLocationId,\n        WMSLocationId: this.formserviceObject?.WMSLocationId,\n        AssetId: this.formserviceObject?.AssetId\n      };\n      this.serviceObject_store.update(this.serviceObject.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getServiceObject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-ServiceObject:Service object update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onRetryClick(){\n    this.getServiceObject();\n    this.inEditMode = false;\n  } \n\n  onCancelEditClick(){\n    this.getServiceObject();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n\n  //--- InventLocationDataSource\n\n  inventLocation_ds: DataSource|undefined;\n\n  createInventLocationDataSource(){\n    this.inventLocation_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"InventLocation\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {       \n        return Object.assign(new InventLocation(), dataItem);\n      }            \n    });  \n  }    \n\n  //--- WMSLocationDataSource\n\n  wmsLocation_ds: DataSource|undefined;\n\n  createWMSLocationDataSource(){\n    this.wmsLocation_ds = new DataSource({\n      store: new ODataStore({\n        url: this.cloudDataService.getMobiManagementODataUrl(\"WMSLocation\"),\n        withCredentials: true, \n        key: \"Id\",\n        keyType: \"Guid\",\n        version: 4,        \n      }),\n      requireTotalCount: true,\n      map: (dataItem) => {       \n        return Object.assign(new WMSLocation(), dataItem);\n      }            \n    });  \n  }   \n  \n  \n    //--- WMSLocationDataSource\n\n    asset_ds: DataSource|undefined;\n\n    createAssetDataSource(){\n      this.asset_ds = new DataSource({\n        store: new ODataStore({\n          url: this.cloudDataService.getMobiManagementODataUrl(\"Asset\"),\n          withCredentials: true, \n          key: \"Id\",\n          keyType: \"Guid\",\n          version: 4,        \n        }),\n        requireTotalCount: true,\n        map: (dataItem) => {       \n          return Object.assign(new Asset(), dataItem);\n        }            \n      });  \n    }   \n}\n","<mobicloud-group-box title=\"Inventory\" i18n-title=\"@@CaptionHeader-Inventory\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"serviceObjectInventoryForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formserviceObject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formServiceObjectData_Inventory\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"1\">\n\n            <dxi-item dataField=\"InventLocationId\" [colSpan]=\"2\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'inventLocation_itemTemplate', fieldTemplate: 'inventLocation_fieldTemplate', dataSource: inventLocation_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['InventLocationId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Invent location\" i18n-text=\"@@FieldCaption-InventLocation\"></dxo-label> \n            </dxi-item>                                 \n           \n            <dxi-item dataField=\"WMSLocationId\" [colSpan]=\"2\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'wmsLocation_itemTemplate', fieldTemplate: 'wmsLocation_fieldTemplate', dataSource: wmsLocation_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['WMSLocationId','Name'], showClearButton: true }\">\n                <dxo-label text=\"WMS location\" i18n-text=\"@@FieldCaption-WMSLocation\"></dxo-label> \n            </dxi-item>             \n                     \n            <dxi-item dataField=\"AssetId\" [colSpan]=\"2\" #responsible editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'asset_itemTemplate', fieldTemplate: 'asset_fieldTemplate', dataSource:asset_ds, valueExpr: 'Id', displayExpr: 'AssetId', searchEnabled: true, searchExpr: ['AssetId','Name'], showClearButton: true }\">\n                <dxo-label text=\"Asset\" i18n-text=\"@@FieldCaption-Asset\"></dxo-label> \n            </dxi-item>               \n        </dxi-item>      \n\n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'inventLocation_itemTemplate'\">\n            {{item?.Name}} {{ item?.InventLocationId ? ('(' + item.InventLocationId + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'inventLocation_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.InventLocationId ? ('(' + item.InventLocationId + ')') : ('') }}\n        </div> \n        \n        <div *dxTemplate=\"let item of 'wmsLocation_itemTemplate'\">\n            {{item?.Name}} {{ item?.WMSLocationId ? ('(' + item.WMSLocationId + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'wmsLocation_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.WMSLocationId ? ('(' + item.WMSLocationId + ')') : ('') }}\n        </div> \n\n        <div *dxTemplate=\"let item of 'asset_itemTemplate'\">\n            {{item?.Name}} {{ item?.AssetId ? ('(' + item.AssetId + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'asset_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.Name}} {{ item?.AssetId ? ('(' + item.AssetId + ')') : ('') }}\n        </div>        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChildren, QueryList, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport ODataStore from \"devextreme/data/odata/store\";\nimport ArrayStore from \"devextreme/data/array_store\";\nimport { DxFormComponent, DxDataGridComponent } from 'devextreme-angular';\n\nimport { Country } from \"mobicloud-core\";\nimport { ServiceObject, ProjectLocation } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-service-object-location',\n  templateUrl: './service-object-location.component.html',\n  styleUrls: ['./service-object-location.component.scss']\n})\nexport class ServiceObjectLocationComponent implements OnInit, OnChanges {\n  @Input() serviceObject: ServiceObject|undefined;\n  formserviceObject: ServiceObject|undefined;\n  @Input() serviceObject_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() serviceObjectChanged = new EventEmitter<ServiceObject>();  \n\n  serviceObject_store: ODataStore|undefined;\n  projectLocation_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {    \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    }); \n  }\n\n  ngOnInit(): void {\n    this.initializeDataSource();\n    this.createCountryDataSource();\n  }\n\n  async initializeDataSource(){\n    this.serviceObject_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"ServiceObject\"),    \n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"POST\") {\n          e.url = this.cloudDataService.getMobiManagementODataUrl(\"ServiceObject(\" + this.serviceObject?.Id + \")/UpdateLocation\");\n          e.payload = {location: e.payload};\n        }                             \n      },      \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    }); \n    this.projectLocation_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"ProjectLocation\"),    \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });         \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['serviceObject']?.currentValue && changes['serviceObject'].currentValue != this.formserviceObject) {\n      this.formserviceObject = this.serviceObject;      \n      this.onServiceObjectChanged(this.formserviceObject); \n    }    \n  }\n\n  onServiceObjectChanged(proj: ServiceObject|undefined){\n    this._countryId = this.formserviceObject?.Location?.Country?.toString();\n\n    if(this.datagrids){      \n      this.datagrids.forEach(function(dataGrid) {\n        dataGrid.instance?.refresh();  \n      });       \n    }     \n  }\n\n  getServiceObject() {    \n    if(this.serviceObject?.Id && this.serviceObject_store && this.serviceObject){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-ServiceObject:Loading serviceObject...`;\n      this.serviceObject_store.byKey(this.serviceObject.Id, { expand: this.serviceObject_expands }).then(\n        (dataItem) => { \n          this.formserviceObject = Object.assign(new ServiceObject(), dataItem[0]);\n          this.serviceObject = this.formserviceObject;\n          // console.log(this.serviceObject);\n          this.onServiceObjectChanged(this.serviceObject);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.serviceObjectChanged.emit(this.serviceObject);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"Location.Street\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveProjectLocation();\n    }\n  }\n\n  saveProjectLocation(){\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Updating-Text-Location:Updating location...`;\n    if(this.serviceObject?.Location?.Id && this.projectLocation_store && this.formserviceObject){\n      const data:any = {\n          Street: this.formserviceObject.Location?.Street,\n          ZipCode: this.formserviceObject.Location?.ZipCode,\n          City: this.formserviceObject.Location?.City,\n          Country: this._countryId\n      };\n      this.projectLocation_store.update(this.serviceObject.Location.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getServiceObject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Location:Location update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );        \n      }\n    else if(this.serviceObject_store && this.formserviceObject){\n      this.serviceObject_store.insert( \n        {\n            Street: this.formserviceObject.Location?.Street,\n            ZipCode: this.formserviceObject.Location?.ZipCode,\n            City: this.formserviceObject.Location?.City,\n            Country: this._countryId\n        })\n        .then(\n            (dataObj) => \n            { \n              this.getServiceObject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-Location:Location update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onCancelEditClick(){\n    this.getServiceObject();    \n    this.inEditMode = false;\n  }\n  \n  onRetryClick(){\n    this.getServiceObject();\n    this.inEditMode = false;\n  } \n\n  // *** DataSources ******************\n\n  @ViewChildren(DxDataGridComponent) datagrids!: QueryList<DxDataGridComponent>;\n\n  //--- CountryDataSource\n\n  country_ds: ArrayStore<Country>|undefined;\n  _countryId: string|undefined;\n  _selectedCountry: Country |undefined;\n  _countryOpened: boolean|undefined = false;\n\n  createCountryDataSource(){\n    this.country_ds = new ArrayStore<Country>({key: 'Code2', data: Array.from(this.coreService.countries()?.values() ?? [])});\n  }\n\n  countryChanged(args:any) {\n    this._selectedCountry= args.selectedRowsData?.length > 0 ? args.selectedRowsData[0] : undefined;\n    this._countryId = this._selectedCountry?.Code2;\n    if(this.formserviceObject){\n      if(!this.formserviceObject.Location){\n        this.formserviceObject.Location = new ProjectLocation();\n      }\n      if(this.formserviceObject.Location){\n        this.formserviceObject.Location.Country = this._countryId;\n      }\n    }\n    \n  }  \n}\n\n","<mobicloud-group-box title=\"Location\" i18n-title=\"@@CaptionHeader-Location\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"serviceObjectLocationForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formserviceObject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formServiceObjectData_Location\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"Location.Street\" [colSpan]=\"2\">\n                <dxo-label text=\"Address\" i18n-text=\"@@FieldCaption-Address\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"Location.ZipCode\">\n                <dxo-label text=\"Zip code\" i18n-text=\"@@FieldCaption-ZipCode\"></dxo-label>\n            </dxi-item>\n            <dxi-item dataField=\"Location.City\">\n                <dxo-label text=\"City\"  i18n-text=\"@@FieldCaption-City\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"Location.Country\" [colSpan]=\"2\">\n                <dxo-label text=\"Country\" i18n-text=\"@@FieldCaption-Country\"></dxo-label>  \n                <div *dxTemplate=\"let data of 'content'\">\n                    <dx-drop-down-box [deferRendering]=\"true\" [showClearButton]=\"true\" [readOnly]=\"!inEditMode\" fieldTemplate=\"fieldTemplate\"\n                        [dataSource]=\"country_ds\"                   \n                        [(value)]=\"_countryId\"\n                        valueExpr=\"Code2\"                \n                        displayExpr=\"LocalName\"                                    \n                        [(opened)]=\"_countryOpened\"> \n                        <dxo-drop-down-options title=\"Countries\" i18n-title=\"@@FieldCaption-Countries\" [showTitle]=\"true\" [fullScreen]=\"false\" [showCloseButton]=\"true\">\n                    </dxo-drop-down-options>                                       \n                        <dx-data-grid [filterRow]=\"{ visible: true }\" [scrolling]=\"{ mode: 'standard' }\" [selection]=\"{ mode: 'single' }\" height=\"100%\" [hoverStateEnabled]=\"true\"\n                            [dataSource]=\"country_ds\"\n                            [(selectedRowKeys)]=\"_countryId\"\n                            (onSelectionChanged)=\"countryChanged($event)\"\n                            (onRowClick)=\"_countryOpened = false\">\n                            <dxi-column dataField=\"Code2\" [allowFiltering]=\"false\" [allowSorting]=\"false\" cellTemplate=\"imgCellTemplate\" all [width]=\"50\" caption=\"\"></dxi-column>\n                            <dxi-column dataField=\"LocalName\" i18n-caption=\"@@GridColumn-Name\" caption=\"Name\"></dxi-column>\n                            <dxo-paging [enabled]=\"false\"></dxo-paging>\n                            <div *dxTemplate=\"let data of 'imgCellTemplate'\">\n                                <img alt=\"\"src=\"{{cloudDataService.FlagUrl}}/{{data.value}}-32.png\"/>\n                            </div>\n                        </dx-data-grid>\n                        <div *dxTemplate=\"let data of 'fieldTemplate'\">\n                            <div class=\"country-edit-item\">\n                                <div class=\"country-edit-image\"><img alt=\"\"src=\"{{cloudDataService.FlagUrl}}/{{_selectedCountry?.Code2}}-32.png\" *ngIf=\"_selectedCountry?.Code2\"></div>\n                                <div class=\"country-edit-text\">\n                                    <dx-text-box stylingMode=\"filled\" [value]=\"_selectedCountry?.LocalName\" [readOnly]=\"true\"></dx-text-box>\n                                </div>\n                            </div>\n                        </div>\n                    </dx-drop-down-box>\n                </div>   \n                <!-- <dxi-validation-rule type=\"required\" message=\"Country is required\"></dxi-validation-rule>    -->\n            </dxi-item>\n\n\n                     \n        </dxi-item>\n        \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Output, OnChanges, SimpleChanges , Input, EventEmitter, ViewChild, effect } from '@angular/core';\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { MessageBox } from \"../../message-box/message-box\";\n\nimport DataSource from \"devextreme/data/data_source\";\nimport ODataStore from \"devextreme/data/odata/store\";\nimport { DxFormComponent } from 'devextreme-angular';\n\nimport { ServiceObject, SchemaType } from \"mobicloud-core/api\";\n\nimport { MobicloudCoreService } from \"mobicloud-core\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-service-object-service',\n  templateUrl: './service-object-service.component.html',\n  styleUrls: ['./service-object-service.component.scss']\n})\nexport class ServiceObjectServiceComponent implements OnInit, OnChanges {\n  @Input() serviceObject: ServiceObject|undefined;\n  formserviceObject: ServiceObject|undefined;\n  @Input() serviceObject_expands: string[]|undefined;\n  @Input() editAllowed:boolean|undefined = false;\n  @Input() inEditMode : boolean|undefined=false;\n\n  @Input()width:  number|undefined;\n  @Input() contentheight:  number|undefined;  \n  @Input() isLoadingData:  boolean|undefined= false;\n  @Input() loadingText:  string|undefined = $localize`:@@Loading-Text:Loading...`;\n  @Input() hasErrors :  boolean|undefined= false;\n  @Input() errorText:  string|undefined= \"\";\n\n\n  \n  @Output() serviceObjectChanged = new EventEmitter<ServiceObject>();  \n\n  serviceObject_store: ODataStore|undefined;\n\n  @ViewChild('form') form!: DxFormComponent; \n  constructor(public coreService:MobicloudCoreService, public cloudDataService:MobiCloudDataService, private matDialog: MatDialog) {    \n    effect(() => {\n      const userProfile = this.cloudDataService.coreService.mobiUserProfile();\n      if(userProfile){        \n        this.cloudDataService.coreService.requireEmployeePermission(userProfile, (valid:boolean) => {\n          this.editAllowed = valid;\n        });\n      }\n    });  \n  }\n\n  ngOnInit(): void {\n    this.initializeDataSource();\n    this.createSchemaTypeDataSource();\n  }\n\n  async initializeDataSource(){\n    this.serviceObject_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"ServiceObject\"),\n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4,        \n    });     \n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['serviceObject']?.currentValue && changes['serviceObject'].currentValue != this.formserviceObject) {\n      this.formserviceObject = this.serviceObject;      \n      this.onServiceObjectChanged(this.formserviceObject); \n    }    \n  }\n\n  onServiceObjectChanged(serviceOb: ServiceObject|undefined){ \n  }\n\n  getServiceObject() {\n    if(this.serviceObject_store && this.serviceObject?.Id){\n      this.isLoadingData = true;\n      this.loadingText = $localize`:@@Loading-Text-ServiceObject:Loading service object...`;\n      this.serviceObject_store.byKey(this.serviceObject.Id, { expand: this.serviceObject_expands }).then(\n        (dataItem) => { \n          this.formserviceObject = Object.assign(new ServiceObject(), dataItem[0]);\n          this.serviceObject = this.formserviceObject;\n          \n          this.onServiceObjectChanged(this.serviceObject);\n\n          this.isLoadingData = false;\n          this.hasErrors = false;\n          this.errorText = \"\";\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n          this.serviceObjectChanged.emit(this.serviceObject);\n        },\n        (error) => { \n          console.log(error);\n          this.isLoadingData = false;\n          this.hasErrors = true;\n          this.errorText = error;\n          this.loadingText = $localize`:@@Loading-Text:Loading...`;\n        }\n      );\n\n    }\n  }\n\n\n  onEditClick(){\n    this.form.instance?.getEditor(\"DigitalId\")?.focus();\n    this.inEditMode = true;\n  }\n\n  onSaveClick(){\n    const validateResult = this.form.instance.validate();\n    if(validateResult?.isValid){\n      this.saveServiceObject();\n    }\n  }\n\n  saveServiceObject(){\n    if(this.serviceObject_store && this.serviceObject && this.formserviceObject){\n    this.isLoadingData = true;\n    this.loadingText = $localize`:@@Updating-Text-ServiceObject:Updating service object...`;\n      const data:any = {\n        LastServiceDate: this.formserviceObject.LastServiceDate,\n        NextServiceDate: this.formserviceObject.NextServiceDate,\n        Placement: this.formserviceObject.Placement,\n        SchemaTypeId: this.formserviceObject.SchemaTypeId,\n        DigitalId: this.formserviceObject.DigitalId\n      };\n      this.serviceObject_store.update(this.serviceObject.Id, data)\n        .then(\n            (dataObj) => \n            { \n              this.getServiceObject();\n              this.isLoadingData = false;\n              this.inEditMode = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n            },\n            (error) => \n            { \n              console.log(error);\n              this.isLoadingData = false;\n              this.loadingText = $localize`:@@Loading-Text:Loading...`;\n              MessageBox.showError({title: $localize`:@@Failed-Text-ServiceObject:Service object update failed`, message: error },this.matDialog)\n              .subscribe( result => \n                {\n                  // console.log(`Dialog result : ${result}`);\n                });\n            }\n        );\n    }\n  }\n\n  onRetryClick(){\n    this.getServiceObject();\n    this.inEditMode = false;\n  } \n\n  onCancelEditClick(){\n    this.getServiceObject();    \n    this.inEditMode = false;\n  }\n  \n  \n\n  // *** DataSources ******************\n   //--- SchemaTypeDataSource\n   schemaType_store: ODataStore|undefined;\n   schemaType_ds: DataSource|undefined;\n \n   async createSchemaTypeDataSource(){\n \n     this.schemaType_store = new ODataStore({\n       url: this.cloudDataService.getMobiManagementODataUrl(\"SchemaType\"),\n       beforeSend: (e) => { \n         if(e.method?.toUpperCase() == \"GET\"){\n           if(!e.params?.$orderby){\n             e.params.$orderby = \"Name asc\";\n           }\n           e.params.$filter = `EntityType  eq 'ServiceObject'`;        \n         }          \n       },            \n       withCredentials: true, \n       key: \"Id\",\n       keyType: \"Guid\",\n       version: 4,        \n     });\n \n     this.schemaType_ds = new DataSource({\n       store: this.schemaType_store,\n       requireTotalCount: true,\n       map: (dataItem) => {        \n         return Object.assign(new SchemaType(), dataItem);\n       }            \n     });  \n   } \n\n}\n","<mobicloud-group-box title=\"Service\" i18n-title=\"@@CaptionHeader-Service\" [width]=\"[width]\" [contentheight]=[contentheight] class=\"serviceObjectServiceForm\" [isLoadingData]=\"isLoadingData\" [loadingText]=\"loadingText\" \n   [editAllowed]=\"editAllowed\" [inEditMode]=\"inEditMode\" [hasErrors]=\"hasErrors\" errorCaption=\"Error\" i18n-errorCaption=\"@@CaptionHeader-Error\" [errorText]=\"errorText\" [enableRetryOnError]=\"true\"\n    (Edit_Click)=\"onEditClick()\" (Save_Click)=\"onSaveClick()\" (CancelEdit_Click)=\"onCancelEditClick()\" (Retry_Click)=\"onRetryClick()\">\n\n    <dx-form #form id=\"form\"\n        [formData]=\"formserviceObject\"\n        [readOnly]=\"!inEditMode\"\n        [showColonAfterLabel]=\"true\"\n        labelLocation=\"top\"\n        [showValidationSummary]=\"false\" \n        [showRequiredMark] = \"false\"\n        validationGroup=\"formServiceObjectData_Service\">\n\n        <dxi-item itemType=\"group\" caption=\"\" [colCount]=\"2\">\n            <dxi-item dataField=\"LastServiceDate\" editorType=\"dxDateBox\">\n                <dxo-label text=\"Last service date\" i18n-text=\"@@FieldCaption-LastServiceDate\"></dxo-label>\n            </dxi-item>\n\n            <dxi-item dataField=\"NextServiceDate\" editorType=\"dxDateBox\">\n                <dxo-label text=\"Next service date\" i18n-text=\"@@FieldCaption-NextServiceDate\"></dxo-label>\n            </dxi-item>\n            \n            \n            <dxi-item dataField=\"Placement\" [colSpan]=\"2\">\n                <dxo-label text=\"Placement\" i18n-text=\"@@FieldCaption-Placement\"></dxo-label>\n            </dxi-item>            \n        </dxi-item>\n\n        <dxi-item dataField=\"SchemaTypeId\" #schemaType [colSpan]=\"2\" editorType=\"dxLookup\" [editorOptions]=\"{ itemTemplate:'schemaType_itemTemplate', fieldTemplate: 'schemaType_fieldTemplate', dataSource: schemaType_ds, valueExpr: 'Id', displayExpr: 'Name', searchEnabled: true, searchExpr: ['Name'], showClearButton: true }\">\n            <dxo-label text=\"Schema type\" location=\"top\" i18n-text=\"@@FieldCaption-SchemaType\"></dxo-label> \n        </dxi-item>   \n        \n        <dxi-item dataField=\"DigitalId\">\n            <dxo-label text=\"Digital id\" i18n-text=\"@@FieldCaption-DigitalId\"></dxo-label>                \n        </dxi-item> \n        \n        <!-- Templates -->\n        <div *dxTemplate=\"let item of 'schemaType_itemTemplate'\">\n            {{item?.EntityType}} {{ item?.Name ? ('(' + item.Name + ')') : ('') }}\n        </div>        \n        <div *dxTemplate=\"let item of 'schemaType_fieldTemplate'\" [ngClass]=\"{'lookup-field-template-container':!inEditMode, 'lookup-field-template-container-readonly':!inEditMode}\">\n            {{item?.EntityType}} {{ item?.Name ? ('(' + item.Name + ')') : ('') }}\n        </div>         \n    </dx-form>\n\n</mobicloud-group-box>","import { Component, OnInit, Inject, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport {Location} from '@angular/common'; \nimport { HttpClient } from '@angular/common/http';\n\nimport { SecurityFlag } from \"mobicloud-core/api\";\n\nimport { DxFileManagerComponent } from 'devextreme-angular';\n\nimport { saveAs } from \"file-saver\";\n\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\nimport RemoteFileSystemProvider from 'devextreme/file_management/remote_provider';\n\nimport ODataStore from \"devextreme/data/odata/store\";\n\n@Component({\n  selector: 'mobicloud-document-catalog',\n  templateUrl: './document-catalog.component.html',\n  styleUrls: ['./document-catalog.component.scss']\n})\nexport class DocumentCatalogComponent implements OnInit {\n  @ViewChild('fileManager') fileManager! :  DxFileManagerComponent;\n  @Input() endpointUrl:  string|undefined;\n  @Input() height:  string|undefined;\n  @Output() selectedItemIdChanged = new EventEmitter<string>();\n  @Output() selectedDocumentChanged = new EventEmitter<any>();\n  @Output() onFileManagerContentReady = new EventEmitter<any>();\n  remoteProvider: RemoteFileSystemProvider|undefined;\n  categories:any|undefined;\n  document_types:any|undefined;\n  document_store: ODataStore|undefined;\n  securityFlags:any[]|undefined;\n  documentSasToken:  string|undefined;\n\n  @Input() editAllowed:  boolean|undefined;\n  @Input() downloadAllowed:  boolean|undefined;\n  @Input() entityname:  string|undefined;\n  @Input() entityid:  string|undefined;\n\n  @Input() manageSecurity:  boolean|undefined;\n\n  constructor(private route: ActivatedRoute, protected cloudDataService: MobiCloudDataService, public router : Router, private location: Location, protected httpClient: HttpClient, ) {    \n    this.cloudDataService.getDocumentSasToken(this.httpClient).then((sasToken:string) => { this.documentSasToken = sasToken;});\n    this.beforeSubmit = this.beforeSubmit.bind(this);\n  }\n\n  ngOnInit(): void {\n    if(this.entityname && this.entityid){\n      this.endpointUrl = this.cloudDataService.getMobiManagementApiUrl(`DocumentCatalogManager?entity=${this.entityname}&id=${this.entityid}`);\n    }\n    else{\n      this.endpointUrl = this.cloudDataService.getMobiManagementApiUrl(`DocumentCatalogManager`);    \n    }\n    \n    this.remoteProvider = new RemoteFileSystemProvider({\n      endpointUrl: this.endpointUrl,\n      beforeSubmit: this.beforeSubmit    \n    });\n    this.initializeDataSource();\n  }\n\n  beforeSubmit(options: { formData?: any}) : void{\n    options.formData.Authorization = \"Bearer \" + this.cloudDataService?.coreService?.user()?.access_token;\n  }\n\n  initializeDataSource(){\n\n    this.document_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"Document\"), \n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.url = this.cloudDataService.getMobiManagementODataUrl(\"Document?$orderby=DocumentId\");\n          }    \n        }\n      },\n      onUpdating: function (key, values) {\n      },\n      onInserting: function (values) { \n      },\n      onRemoving: function (key) {\n      },            \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4       \n    }); \n\n    //Categories\n    var category_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"DocumentCategory\"), \n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.url = this.cloudDataService.getMobiManagementODataUrl(\"DocumentCategory?$orderby=CategoryId\");\n          }      \n        }\n      },            \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4       \n    }); \n    \n    category_store.load().then(val => \n      {\n        this.categories = val;        \n      });\n\n    //DocumentTypes\n    var document_types_store = new ODataStore({\n      url: this.cloudDataService.getMobiManagementODataUrl(\"DocumentType\"), \n      beforeSend: (e) => { \n        if(e.method?.toUpperCase() == \"GET\"){\n          if(!e.params?.$orderby){\n            e.url = this.cloudDataService.getMobiManagementODataUrl(\"DocumentType?$orderby=TypeId\");\n          }       \n        }\n      },            \n      withCredentials: true, \n      key: \"Id\",\n      keyType: \"Guid\",\n      version: 4       \n    }); \n    \n    document_types_store.load().then(val => \n      {\n        this.document_types = val;        \n      });   \n      \n    this.securityFlags = [  \n        { value: SecurityFlag.None, text: $localize`:@@EnumValue-SecurityFlag-None:None` }, \n        { value: SecurityFlag.OrganizationUser, text: $localize`:@@EnumValue-SecurityFlag-OrganizationUser:OrganizationUser` }, \n        { value: SecurityFlag.Employee, text: $localize`:@@EnumValue-SecurityFlag-Employee:Employee` },\n        { value: SecurityFlag.Vendor, text: $localize`:@@EnumValue-SecurityFlag-Vendor:Vendor` },\n        { value: SecurityFlag.Customer, text: $localize`:@@EnumValue-SecurityFlag-Customer:Customer` }\n      ]        \n  }  \n\n  refresh(){\n    this.fileManager?.instance?.refresh();\n  }  \n\n\n  async onSelectionChanged(e:any) {    \n    // console.log(e);\n    if(e.selectedItems[0]?.dataItem?.key){\n      if(e.selectedItems[0].dataItem.isDirectory == true){\n        this.selectedItemIdChanged.emit(undefined);\n        this.selectedDocumentChanged.emit(e.selectedItems[0].dataItem);\n      }\n      else{        \n        this.selectedItemIdChanged.emit(e.selectedItems[0].dataItem.key);\n        this.selectedDocumentChanged.emit(e.selectedItems[0].dataItem);\n      }\n    }\n    else{\n      this.selectedItemIdChanged.emit(undefined);\n      this.selectedDocumentChanged.emit(undefined);\n    }\n  }\n\n  onContextMenuShowing(e:any) {\n    // console.log(e);\n    if(this.editAllowed){\n      let items:any = [{name: 'create'}, {name: 'upload'}, {name: 'rename'}, {name: 'move'}, {name: 'copy'}, {name: 'delete'}, {name: 'refresh'}, {name: 'download'}];\n      if(!e.fileSystemItem?.isDirectory){\n\n        if(this.categories){\n          // console.log(\"categories:\",this.categories);\n          let category_item:any = {text: 'Category', icon: 'tags', beginGroup: true, items: []};\n          for(let i = 0; i < this.categories.length; i++) { \n            category_item.items.push({text: this.categories[i].Name, icon: 'tags', uid: this.categories[i].Id, tag: 'category'});\n          }\n          items.push(category_item);\n        }\n\n        if(this.document_types){\n          let document_type_item:any = {text: 'Types', icon: 'tags', beginGroup: false, items: []};\n          for(let i = 0; i < this.document_types.length; i++) { \n            document_type_item.items.push({text: this.document_types[i].Name, icon: 'tags', uid: this.document_types[i].Id, tag: 'type'});\n          }\n          items.push(document_type_item);\n        }\n\n        if(this.manageSecurity && this.securityFlags){          \n          var securityVisibility:string = e.fileSystemItem?.dataItem?.SecurityVisibility ?? '';\n          // console.log(\"Security:\",securityVisibility, 'test:' ,this.securityFlags[3].value);\n          let security_item:any = {text: 'Security', icon: 'link', beginGroup: true, items: []};\n          for(let i = 2; i < this.securityFlags.length; i++) { \n            const value:string = this.securityFlags[i].value;\n            const isEnabled = securityVisibility.indexOf(value) >= 0;   \n            var icon = isEnabled ? 'minus' : 'plus';\n            security_item.items.push({text: this.securityFlags[i].text, icon: icon, value: value, tag: 'security', enable: !isEnabled});\n          }\n          items.push(security_item);\n        }\n\n        e.component.option('contextMenu.items', items);\n      }\n      else{\n        e.component.option('contextMenu.items', items);\n      }\n    }\n  } \n  \n  onContextMenuItemClick(args:{ itemData:any, viewArea:any, fileSystemItem:any }) {\n    if(this.document_store && args.itemData?.tag == 'category'){\n      // console.log(\"cat\",itemData, fileSystemItem );\n      if(args.fileSystemItem?.dataItem?.key){\n        this.document_store.update(args.fileSystemItem.dataItem.DocumentId ?? args.fileSystemItem.dataItem.key, {MainCategoryId: args.itemData.uid.toString()}).then(val => \n          {\n            // console.log(\"cat updated\",val );\n            this.refresh();\n          });\n      }\n    }\n    else if(args.itemData?.tag == 'type'){\n      if(this.document_store && args.fileSystemItem?.dataItem?.key){\n        this.document_store.update(args.fileSystemItem.dataItem.DocumentId ?? args.fileSystemItem.dataItem.key, {DocumentTypeId: args.itemData.uid.toString()}).then(val => \n          {\n            // console.log(\"type updated\",val );\n            this.refresh();\n          });\n      }\n    }\n    else if(this.manageSecurity && (args.itemData?.tag == 'security')){      \n      if(this.document_store && args.fileSystemItem?.dataItem?.key){\n        const securityFlags_selected:string = args.itemData.value?.toString();\n        const securityFlags_Str:string = args.fileSystemItem.dataItem.SecurityVisibility;\n        var securityFlags:string[] = securityFlags_Str.replace(' ','').split(',');\n        // console.log(\"selected\",securityFlags_selected); \n        // console.log(\"before\",securityFlags); \n        if(args.itemData?.enable){\n          securityFlags.push(securityFlags_selected);\n        }\n        else{\n          var securityFlags_tmp:string[] = [];\n          for (let i = 0; i < securityFlags.length; i++) {\n            if(securityFlags[i] != securityFlags_selected){\n              securityFlags_tmp.push(securityFlags[i]);  \n              // console.log(\"added\",`'${securityFlags[i]}'`, `'${securityFlags_selected}'`);           \n            }\n          }\n          securityFlags = securityFlags_tmp;\n          if(securityFlags.length == 0){\n            securityFlags.push(SecurityFlag.None);\n          }\n        }\n        // console.log(\"after\",securityFlags);   \n        \n        const securityFlags_Str_Updated:string = securityFlags.join(', ');\n        // console.log(\"update\",securityFlags_Str_Updated);\n        this.document_store.update(args.fileSystemItem.dataItem.DocumentId ?? args.fileSystemItem.dataItem.key, {SecurityVisibility: securityFlags_Str_Updated}).then(val => \n          {\n            // console.log(\"security updated\",val );\n            this.refresh();\n          });\n      }      \n    }\n  }    \n  \n  async onSelectedFileOpened(e:any) { \n    if(this.downloadAllowed){\n      if(e.file?.dataItem){\n        const filename:string = e.file.dataItem?.BlobFullName?.toLowerCase() ?? '';\n        if(filename.endsWith('.jpg') || filename.endsWith('.jpeg') || filename.endsWith('.gif') || filename.endsWith('.png')){\n          this.openImageViewer(e);\n        }\n        else{\n          // const selectedItems = this.fileManager.instance.getSelectedItems();\n          // this.remoteProvider?.downloadItems(selectedItems);\n          // console.log(e, selectedItems);\n          this.openDocument(e);\n        }\n      }\n    }\n  }\n\n  async openImageViewer(e:any) {\n    // console.log(e);\n    const imgUrl: string = `${this.cloudDataService.getDocumentBlobUrl(e.file.dataItem?.StorageAccountName, e.file.dataItem?.BlobFullName)}?${this.documentSasToken}`;\n    this.cloudDataService.openImageViewer(imgUrl, e.file?.name);\n  } \n  \n  async openDocument(e:any) {\n    const docUrl: string = `${this.cloudDataService.getDocumentBlobUrl(e.file.dataItem?.StorageAccountName, e.file.dataItem?.BlobFullName)}?${this.documentSasToken}`;\n    const filename:string = e.file.dataItem?.Name ?? \"document.tmp\";\n    // saveAs(docUrl, filename) ;\n    this.downloadDocument(docUrl,filename);\n  }\n\n  async downloadDocument(docUrl:string, filename:string|undefined) {\n    saveAs(docUrl, filename ?? \"document.tmp\") ;\n  }\n\n  async onErrorOccurred(e:any) {    \n    console.log(\"Error:\", e);\n  }  \n\n  onContentReady(e:any) {\n    this.onFileManagerContentReady.emit(e);\n    // let treeView = e.component?._filesTreeView?._filesTreeView;\n    // if(treeView){\n    //   treeView.option(\"scrollDirection\", \"both\");\n    // }\n  }  \n\n}\n","<dx-file-manager #fileManager id=\"fileManager\"\n    [fileSystemProvider]=\"remoteProvider\" selectionMode=\"single\" (onErrorOccurred)=\"onErrorOccurred($event)\" (onContentReady)=\"onContentReady($event)\"\n    rootFolderName=\"Documents\"  i18n-rootFolderName=\"@@DocumentsFolderName-Text\" (onSelectionChanged)=\"onSelectionChanged($event)\"(onSelectedFileOpened)=\"onSelectedFileOpened($event)\" (onContextMenuShowing)=\"onContextMenuShowing($event)\" (onContextMenuItemClick)=\"onContextMenuItemClick($event)\" [height]=\"height\">\n\n    <dxo-permissions \n        [create]=\"editAllowed\"\n        [copy]=\"editAllowed\"\n        [move]=\"editAllowed\"\n        [delete]=\"editAllowed\"\n        [rename]=\"editAllowed\"\n        [upload]=\"editAllowed\"\n        [download]=\"downloadAllowed\">\n    </dxo-permissions>\n    \n    <dxo-item-view [showParentFolder]=\"false\">\n        <dxo-details>\n            <dxi-column dataField=\"thumbnail\" hidingPriority=\"100\"></dxi-column>\n            <dxi-column dataField=\"name\" hidingPriority=\"90\"></dxi-column>\n            <dxi-column dataField=\"CategoryName\" caption=\"Category\" hidingPriority=\"80\"></dxi-column>\n            <dxi-column dataField=\"TypeName\" caption=\"Type\" hidingPriority=\"70\"></dxi-column>                        \n            <dxi-column dataField=\"dateModified\" hidingPriority=\"60\"></dxi-column>\n            <!-- <dxi-column dataField=\"IsSystem\" caption=\"System\" [visible]=\"true\"></dxi-column> -->            \n            <dxi-column dataField=\"SecurityVisibility\" caption=\"Security\" hidingPriority=\"50\" [visible]=\"true\" *ngIf=\"manageSecurity\"></dxi-column>\n            <dxi-column dataField=\"BlobFullName\" caption=\"Blob name\" hidingPriority=\"40\" [visible]=\"true\" *ngIf=\"editAllowed\"></dxi-column>            \n            <!-- <dxi-column dataField=\"size\"></dxi-column>             -->\n        </dxo-details>\n    </dxo-item-view>\n    <!-- <dxo-upload [chunkSize]=\"500000\"></dxo-upload> -->\n\n    <dxo-context-menu>\n        <!-- <dxi-item name=\"create\"></dxi-item>\n        <dxi-item name=\"upload\"></dxi-item>\n        <dxi-item name=\"rename\"></dxi-item>\n        <dxi-item name=\"move\"></dxi-item>        \n        <dxi-item name=\"copy\"></dxi-item>                        \n        <dxi-item name=\"delete\"></dxi-item>   \n        <dxi-item text=\"Category\" icon=\"tags\" beginGroup=\"true\">\n            <dxi-item text=\"Work\" [options]=\"{ category: 'Work' }\"></dxi-item>\n            <dxi-item text=\"Important\" [options]=\"{ category: 'Important' }\"></dxi-item>\n            <dxi-item text=\"Home\" [options]=\"{ category: 'Home' }\"></dxi-item>\n            <dxi-item text=\"None\" [options]=\"{ category: '' }\"></dxi-item>\n        </dxi-item>                             \n        <dxi-item name=\"refresh\" beginGroup=\"true\"></dxi-item>\n        <dxi-item name=\"download\"></dxi-item> -->\n        \n\n    </dxo-context-menu>    \n</dx-file-manager>","import { Component, OnInit, Inject, Input, Output, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport {Location} from '@angular/common'; \n\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\nimport { MatDialog } from \"@angular/material/dialog\";\n\n// import { MessageResult } from \"mobicloud-core/components\";\nimport { MessageResult } from \"../../message-box/message-box\";\nimport { MobiCloudDataService } from \"mobicloud-core/api\";\n\n@Component({\n  selector: 'mobicloud-document-catalog-dialog',\n  templateUrl: './document-catalog-dialog.component.html',\n  styleUrls: ['./document-catalog-dialog.component.scss']\n})\nexport class DocumentCatalogDialogComponent implements OnInit {\n\n  selectedItemId: string|undefined;\n  selectedDocument: any = undefined;\n  height:  string = \"100%\";\n  constructor(public dialogRef: MatDialogRef<DocumentCatalogDialogComponent>, @Inject(MAT_DIALOG_DATA) public data: any, protected cloudDataService: MobiCloudDataService, private matDialog: MatDialog) { \n    if(data?.height) {\n      this.height = data.height;\n    }\n  }\n\n  ngOnInit(): void {\n  }\n\n  selectedItemIdChanged(key: string) {\n    this.selectedItemId = key;\n  }\n\n  selectedDocumentChanged(document: any) {\n    this.selectedDocument = document;\n  }\n\n  onClose() {\n    this.dialogRef.close({result: {id: this.selectedItemId, image: this.selectedDocument, dialogResult: MessageResult.Ok}});\n  }\n  \n  onCancelClick() {\n    this.onCancel();\n  }\n\n  onCancel() {\n    this.dialogRef.close({result: {id: \"\", document: undefined, dialogResult: MessageResult.Cancel}});\n  }  \n}\n","<div class=\"filemanager-container\">\n    <mobicloud-document-catalog (selectedItemIdChanged)=\"selectedItemIdChanged($event)\" (selectedDocumentChanged)=\"selectedDocumentChanged($event)\" [height]=\"height\"></mobicloud-document-catalog>\n    <div class=\"buttonpanel flex flex-row justify-end items-start\">\n        <button mat-flat-button color=\"primary\" class=\"button1\" [disabled]=\"!selectedItemId\" (click)=\"onClose()\" i18n=\"@@Button-Select\">Select</button>\n        <button mat-flat-button color=\"accent\" class=\"button2\" (click)=\"onCancelClick()\" i18n=\"@@Button-Cancel\">Cancel</button>        \n    </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\n// import { FlexLayoutModule } from \"@angular/flex-layout\";\nimport { MatSidenavModule} from '@angular/material/sidenav';\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatExpansionModule} from '@angular/material/expansion';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatStepperModule} from '@angular/material/stepper';\n\nimport { DxButtonModule, DxDataGridModule,DxTemplateModule, DxGanttModule,DxFormModule,DxSelectBoxModule, DxDropDownBoxModule, DxLookupModule,DxCheckBoxModule,DxNumberBoxModule, \n  DxTextBoxModule,DxTextAreaModule,DxLoadPanelModule, DxTabsModule, DxTabPanelModule, DxAccordionModule, DxHtmlEditorModule, DxListModule, DxFileManagerModule, DxFileUploaderModule,\n  DxPopupModule, DevExtremeModule, DxSchedulerModule, DxDraggableModule, DxScrollViewModule,DxDrawerModule, DxToolbarModule } from 'devextreme-angular';\nimport { DxoAppointmentDraggingModule } from 'devextreme-angular/ui/nested';\n\nimport {WebcamModule} from 'ngx-webcam';\n\nimport { MobiCloudIconsModule } from \"mobicloud-core/icons\";\nimport { MainNavComponent } from \"./main-nav/main-nav.component\";\nimport { GroupBoxComponent } from \"./group-box/group-box.component\";\nimport { SubscriptionBoxComponent } from \"./subscription-box/subscription-box.component\";\nimport { LoadingContainerComponent } from \"./loading-container/loading-container.component\";\nimport { MessageBoxDialogComponent } from \"./message-box/message-box-dialog.component\";\nimport { ContentToolbarComponent } from \"./content-toolbar/content-toolbar.component\";\nimport { MaterialElevationDirective } from './directives/material-elevation.directive';\n\nimport { ProfilePageComponent } from \"./profile/profile-page/profile-page.component\";\nimport { ProfilePageSystemUserComponent } from \"./profile/profile-page-system-user/profile-page-system-user.component\";\nimport { ProfilePageEmployeeComponent } from \"./profile/profile-page-employee/profile-page-employee.component\";\nimport { ProfilePageCustomerUserComponent } from \"./profile/profile-page-customer-user/profile-page-customer-user.component\";\nimport { ProfilePageVendorUserComponent } from \"./profile/profile-page-vendor-user/profile-page-vendor-user.component\";\n\nimport { SigninCallbackComponent } from \"./oidc-callbacks/signin-callback/signin-callback.component\";\nimport { SigninSilentCallbackComponent } from \"./oidc-callbacks/signin-silent-callback/signin-silent-callback.component\";\nimport { SignoutCallbackComponent } from \"./oidc-callbacks/signout-callback/signout-callback.component\";\n\nimport { EmployeeAddressComponent } from \"./employee/employee-address/employee-address.component\";\nimport { EmployeeProfileComponent } from \"./employee/employee-profile/employee-profile.component\";\nimport { EmployeeProfileImageComponent } from \"./employee/employee-profile-image/employee-profile-image.component\";\nimport { EmployeeUserInfoComponent } from \"./employee/employee-user-info/employee-user-info.component\";\nimport { EmployeeCheckinInfoComponent } from \"./employee/employee-checkin-info/employee-checkin-info.component\";\n\nimport { SystemUserProfileComponent } from \"./system-user/system-user-profile/system-user-profile.component\";\n\nimport { CustomerUserAddressComponent } from \"./customer-user/customer-user-address/customer-user-address.component\";\nimport { CustomerUserDetailsComponent } from \"./customer-user/customer-user-details/customer-user-details.component\";\nimport { CustomerUserGeneralComponent } from \"./customer-user/customer-user-general/customer-user-general.component\";\nimport { CustomerUserImageComponent } from \"./customer-user/customer-user-image/customer-user-image.component\";\n\nimport { VendorUserAddressComponent } from \"./vendor-user/vendor-user-address/vendor-user-address.component\";\nimport { VendorUserDetailsComponent } from \"./vendor-user/vendor-user-details/vendor-user-details.component\";\nimport { VendorUserGeneralComponent } from \"./vendor-user/vendor-user-general/vendor-user-general.component\";\nimport { VendorUserImageComponent } from \"./vendor-user/vendor-user-image/vendor-user-image.component\";\n\nimport { CameraDialogEditComponent } from \"./camera-dialog-edit/camera-dialog-edit.component\";\nimport { ImageEditComponent } from \"./image-edit/image-edit.component\";\n\nimport { PickinglistAddNewShipment } from \"./pickinglist/pickinglist-add-new-shipment/pickinglist-add-new-shipment.component\";\nimport { PrintDialog } from \"./print-dialog/print-dialog.component\";\nimport { DimensionGroupBoxComponent } from \"./dimension/dimension-group-box/dimension-group-box.component\";\nimport { DimensionGroupsComponent } from \"./dimension/dimension-groups/dimension-groups.component\";\n\nimport { ProjectDescriptionComponent } from \"./project/project-description/project-description.component\";\nimport { ProjectFinanceComponent } from \"./project/project-finance/project-finance.component\";\nimport { ProjectGeneralComponent } from \"./project/project-general/project-general.component\";\nimport { ProjectLocationComponent } from \"./project/project-location/project-location.component\";\nimport { ProjectTimeComponent } from \"./project/project-time/project-time.component\";\nimport { ProjectVariantConfigComponent } from \"./project/project-variant-config/project-variant-config.component\";\n\nimport { ServiceObjectGeneralComponent } from \"./service-object/service-object-general/service-object-general.component\";\nimport { ServiceObjectModelComponent } from \"./service-object/service-object-model/service-object-model.component\";\nimport { ServiceObjectImageComponent } from \"./service-object/service-object-image/service-object-image.component\";\nimport { ServiceObjectInventoryComponent } from \"./service-object/service-object-inventory/service-object-inventory.component\";\nimport { ServiceObjectLocationComponent } from \"./service-object/service-object-location/service-object-location.component\";\nimport { ServiceObjectServiceComponent } from \"./service-object/service-object-service/service-object-service.component\";\n\nimport { DocumentCatalogComponent } from \"./document/document-catalog/document-catalog.component\";\nimport { DocumentCatalogDialogComponent } from \"./document/document-catalog-dialog/document-catalog-dialog.component\";\n\nimport {  MobiCloudApiModule } from \"mobicloud-core/api\";\n\n\n\n@NgModule({\n  declarations: [SigninCallbackComponent, SigninSilentCallbackComponent, SignoutCallbackComponent, MainNavComponent, ContentToolbarComponent, GroupBoxComponent, SubscriptionBoxComponent, LoadingContainerComponent, MessageBoxDialogComponent, MaterialElevationDirective\n  ,ProfilePageComponent,ProfilePageSystemUserComponent,ProfilePageEmployeeComponent,ProfilePageCustomerUserComponent,ProfilePageVendorUserComponent, CameraDialogEditComponent, ImageEditComponent, \n  EmployeeAddressComponent, EmployeeProfileComponent, EmployeeProfileImageComponent, EmployeeUserInfoComponent, EmployeeCheckinInfoComponent, SystemUserProfileComponent, CustomerUserAddressComponent, CustomerUserDetailsComponent, CustomerUserGeneralComponent, CustomerUserImageComponent,VendorUserAddressComponent, VendorUserDetailsComponent, VendorUserGeneralComponent, VendorUserImageComponent\n  ,PickinglistAddNewShipment, PrintDialog, DimensionGroupBoxComponent, DimensionGroupsComponent\n  ,ProjectDescriptionComponent,ProjectFinanceComponent,ProjectGeneralComponent,ProjectLocationComponent,ProjectTimeComponent,ProjectVariantConfigComponent\n  ,ServiceObjectGeneralComponent,ServiceObjectModelComponent,ServiceObjectImageComponent,ServiceObjectInventoryComponent,ServiceObjectLocationComponent,ServiceObjectServiceComponent, DocumentCatalogComponent, DocumentCatalogDialogComponent\n  ],\n  imports: [\n    CommonModule, RouterModule, MobiCloudIconsModule, \n    // FlexLayoutModule, \n    MatSidenavModule, MatButtonModule, MatIconModule, MatExpansionModule, MatListModule, MatMenuModule, MatTooltipModule, MatToolbarModule, MatCardModule, MatProgressSpinnerModule, MatSlideToggleModule,MatStepperModule,\n    DxButtonModule,DxSelectBoxModule,DxCheckBoxModule,DxNumberBoxModule,DxTextBoxModule,DxTextAreaModule,DxLookupModule,DxDropDownBoxModule, DxTabsModule,DxTabPanelModule, \n    DxLoadPanelModule, DxHtmlEditorModule, DxListModule, DxAccordionModule, DxFileManagerModule, DxFileUploaderModule,DxPopupModule,DevExtremeModule, DxFormModule,\n    DxDataGridModule,\n    DxTemplateModule,\n    DxGanttModule, DxSchedulerModule, DxDraggableModule, DxScrollViewModule, DxDrawerModule, DxToolbarModule,\n    WebcamModule,\n    MobiCloudApiModule\n  ],\n  exports: [\n    MaterialElevationDirective, SigninCallbackComponent, SigninSilentCallbackComponent, SignoutCallbackComponent, MainNavComponent, ContentToolbarComponent, GroupBoxComponent, SubscriptionBoxComponent, LoadingContainerComponent, MessageBoxDialogComponent,\n    ProfilePageComponent,ProfilePageSystemUserComponent,ProfilePageEmployeeComponent,ProfilePageCustomerUserComponent,ProfilePageVendorUserComponent, CameraDialogEditComponent, ImageEditComponent, \n    EmployeeAddressComponent, EmployeeProfileComponent, EmployeeProfileImageComponent, EmployeeUserInfoComponent, EmployeeCheckinInfoComponent, SystemUserProfileComponent, CustomerUserAddressComponent, CustomerUserDetailsComponent, CustomerUserGeneralComponent, CustomerUserImageComponent,VendorUserAddressComponent, VendorUserDetailsComponent, VendorUserGeneralComponent, VendorUserImageComponent\n    ,PickinglistAddNewShipment,PrintDialog, DimensionGroupBoxComponent, DimensionGroupsComponent,ProjectDescriptionComponent,ProjectFinanceComponent,ProjectGeneralComponent,ProjectLocationComponent,ProjectTimeComponent,ProjectVariantConfigComponent\n    ,ServiceObjectGeneralComponent,ServiceObjectModelComponent, ServiceObjectImageComponent,ServiceObjectInventoryComponent,ServiceObjectLocationComponent,ServiceObjectServiceComponent, DocumentCatalogComponent, DocumentCatalogDialogComponent\n  ]\n})\nexport class MobiCloudComponentsModule { }\n"],"names":["i2","i3","i1","i4.MobiCloudComponentsService","i5","i6","i8","i13","i14","i15","i16","i17","i18","i19.MaterialElevationDirective","i4","i7.MaterialElevationDirective","i7","i9.MaterialElevationDirective","i7.GroupBoxComponent","i7.ContentToolbarComponent","i8.LoadingContainerComponent","i9.SystemUserProfileComponent","i9","i10.GroupBoxComponent","i9.GroupBoxComponent","i10.MaterialElevationDirective","getProfileImageUrl","i3.GroupBoxComponent","i4.ImageEditComponent","i8.GroupBoxComponent","i9.EmployeeAddressComponent","i10.EmployeeProfileComponent","i11.EmployeeProfileImageComponent","i12.EmployeeUserInfoComponent","i13.EmployeeCheckinInfoComponent","i9.CustomerUserAddressComponent","i10.CustomerUserDetailsComponent","i11.CustomerUserGeneralComponent","i12.CustomerUserImageComponent","i3.ProfilePageSystemUserComponent","i4.ProfilePageEmployeeComponent","i5.ProfilePageCustomerUserComponent","i6.ProfilePageVendorUserComponent","i3.LoadingContainerComponent","i10","i11","i12","i21.MaterialElevationDirective","i4.DimensionGroupBoxComponent","i6.GroupBoxComponent","i4.DocumentCatalogComponent"],"mappings":"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"}