@wavemaker/app-ng-runtime 11.10.0-next.47263 → 11.10.0-next.47267

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. app-ng-runtime/build-task/fesm2022/index.mjs +1 -1
  2. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  3. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  4. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  5. app-ng-runtime/components/advanced/login/fesm2022/index.mjs +1 -1
  6. app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
  7. app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs +1 -1
  8. app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  9. app-ng-runtime/components/base/fesm2022/index.mjs +2 -2
  10. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  11. app-ng-runtime/components/basic/default/fesm2022/index.mjs +1 -1
  12. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  13. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +1 -1
  14. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  15. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +1 -1
  16. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  17. app-ng-runtime/components/basic/search/fesm2022/index.mjs +1 -1
  18. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  19. app-ng-runtime/components/basic/tree/fesm2022/index.mjs +1 -1
  20. app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
  21. app-ng-runtime/components/chart/fesm2022/index.mjs +2 -2
  22. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  23. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +2 -2
  24. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  25. app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs +1 -1
  26. app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  27. app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs +1 -1
  28. app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  29. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +1 -1
  30. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  31. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +2 -2
  32. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  33. app-ng-runtime/components/containers/tile/fesm2022/index.mjs +1 -1
  34. app-ng-runtime/components/containers/tile/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +1 -1
  36. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  37. app-ng-runtime/components/data/card/fesm2022/index.mjs +1 -1
  38. app-ng-runtime/components/data/card/fesm2022/index.mjs.map +1 -1
  39. app-ng-runtime/components/data/form/fesm2022/index.mjs +2 -2
  40. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/data/list/fesm2022/index.mjs +1 -1
  42. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  43. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +1 -1
  44. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  45. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +1 -1
  46. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  47. app-ng-runtime/components/data/table/fesm2022/index.mjs +2 -2
  48. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  49. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +1 -1
  50. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  51. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +1 -1
  52. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  53. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +1 -1
  54. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  55. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +1 -1
  56. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  57. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +1 -1
  58. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  59. app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  60. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +1 -1
  61. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  62. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -2
  63. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  64. app-ng-runtime/components/input/chips/fesm2022/index.mjs +1 -1
  65. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  66. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  67. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  68. app-ng-runtime/components/input/default/fesm2022/index.mjs +5 -5
  69. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  70. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +1 -1
  71. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  72. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +1 -1
  73. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  74. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  75. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  76. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +1 -1
  77. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  78. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +2 -2
  79. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  80. app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs +1 -1
  81. app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  82. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +1 -1
  83. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  84. app-ng-runtime/components/page/default/fesm2022/index.mjs +1 -1
  85. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  86. app-ng-runtime/components/page/footer/fesm2022/index.mjs +1 -1
  87. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  88. app-ng-runtime/components/page/header/fesm2022/index.mjs +1 -1
  89. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  90. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +1 -1
  91. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  92. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +1 -1
  93. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  94. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +1 -1
  95. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  96. app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
  97. app-ng-runtime/core/fesm2022/index.mjs +2 -2
  98. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  99. app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
  100. app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +1 -1
  101. app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  102. app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
  103. app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +1 -1
  104. app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  105. app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +1 -1
  106. app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +1 -1
  108. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  109. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +1 -1
  110. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  111. app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  112. app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
  113. app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  114. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  115. app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +1 -1
  116. app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  117. app-ng-runtime/mobile/core/fesm2022/index.mjs +1 -1
  118. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  119. app-ng-runtime/mobile/offline/fesm2022/index.mjs +2 -2
  120. app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
  121. app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
  122. app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  123. app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
  124. app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  125. app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
  126. app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
  127. app-ng-runtime/package.json +1 -1
  128. app-ng-runtime/runtime/base/fesm2022/index.mjs +3 -3
  129. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  130. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +2 -2
  131. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  132. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -2
  133. app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
  134. app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
  135. app-ng-runtime/transpiler/fesm2022/index.mjs +1 -1
  136. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  137. app-ng-runtime/variables/fesm2022/index.mjs +1 -1
  138. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../projects/mobile/variables/src/services/calendar-service.ts","../../../../projects/mobile/variables/src/services/camera-service.ts","../../../../projects/mobile/variables/src/services/file-service.ts","../../../../projects/mobile/variables/src/services/datasync-service.ts","../../../../projects/mobile/variables/src/services/device-service/location-service.ts","../../../../projects/mobile/variables/src/services/device-service/device-service.ts","../../../../projects/mobile/variables/src/services/contacts-service.ts","../../../../projects/mobile/variables/src/services/scan-service.ts","../../../../projects/mobile/variables/src/variables.module.ts","../../../../projects/mobile/variables/src/index.ts"],"sourcesContent":["import { Calendar } from '@awesome-cordova-plugins/calendar/ngx';\n\nimport { DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\n\nconst DEFAULT_TIME = new Date().getTime();\n/*3 months timestamp value*/\nconst DELTA_VALUE_DATE = (3 * 30 * 24 * 60 * 60 * 1000);\nconst DEFAULT_START_DATE = (DEFAULT_TIME - DELTA_VALUE_DATE);\nconst DEFAULT_END_DATE = (DEFAULT_TIME + DELTA_VALUE_DATE);\nconst EVENT_META = {\n title: '',\n message: '',\n location: '',\n startDate: new Date(),\n endDate: new Date()\n};\n\n/**\n * this file contains all calendar operations under 'calendar' service.\n */\nexport class CalendarService extends DeviceVariableService {\n public readonly name = 'calendar';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor(calendar: Calendar) {\n super();\n this.operations.push(new CreateEventOperation(calendar),\n new DeleteEventOperation(calendar),\n new GetEventsOperation(calendar));\n }\n}\n\nclass CreateEventOperation implements IDeviceVariableOperation {\n public readonly name = 'createEvent';\n public readonly properties = [\n {target: 'eventTitle', type: 'string', dataBinding: true},\n {target: 'eventNotes', type: 'string', dataBinding: true},\n {target: 'eventLocation', type: 'string', dataBinding: true},\n {target: 'eventStart', type: 'datetime', dataBinding: true},\n {target: 'eventEnd', type: 'datetime', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CALENDAR'];\n\n constructor(private calendar: Calendar) {\n\n }\n\n public invoke(variable: any, options: any, eventInfo: Map<string, any>): Promise<any> {\n return this.calendar.createEvent(\n eventInfo.get('eventTitle'),\n eventInfo.get('eventLocation'),\n eventInfo.get('eventNotes'),\n new Date(eventInfo.get('eventStart') || 0),\n new Date(eventInfo.get('eventEnd') || 0));\n }\n}\n\nclass DeleteEventOperation implements IDeviceVariableOperation {\n public readonly name = 'deleteEvent';\n public readonly properties = [\n {target: 'eventTitle', type: 'string', dataBinding: true},\n {target: 'eventNotes', type: 'string', dataBinding: true},\n {target: 'eventLocation', type: 'string', dataBinding: true},\n {target: 'eventStart', type: 'datetime', dataBinding: true},\n {target: 'eventEnd', type: 'datetime', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CALENDAR'];\n\n constructor(private calendar: Calendar) {\n\n }\n\n public invoke(variable: any, options: any, eventInfo: Map<string, any>): Promise<any> {\n return this.calendar.deleteEvent(\n eventInfo.get('eventTitle'),\n eventInfo.get('eventLocation'),\n eventInfo.get('eventNotes'),\n new Date(eventInfo.get('eventStart') || DEFAULT_START_DATE),\n new Date(eventInfo.get('eventEnd') || DEFAULT_END_DATE));\n }\n}\n\nclass GetEventsOperation implements IDeviceVariableOperation {\n public readonly name = 'getEvents';\n public readonly model = [EVENT_META];\n public readonly properties = [\n {target: 'eventTitle', type: 'string', dataBinding: true},\n {target: 'eventNotes', type: 'string', dataBinding: true},\n {target: 'eventLocation', type: 'string', dataBinding: true},\n {target: 'eventStart', type: 'datetime', dataBinding: true},\n {target: 'eventEnd', type: 'datetime', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CALENDAR'];\n\n constructor(private calendar: Calendar) {\n\n }\n\n public invoke(variable: any, options: any, eventInfo: Map<string, any>): Promise<any> {\n return this.calendar.findEvent(\n eventInfo.get('eventTitle'),\n eventInfo.get('eventLocation'),\n eventInfo.get('eventNotes'),\n new Date(eventInfo.get('eventStart') || DEFAULT_START_DATE),\n new Date(eventInfo.get('eventEnd') || DEFAULT_END_DATE));\n }\n}\n","import { Camera } from '@awesome-cordova-plugins/camera/ngx';\nimport { MediaCapture } from '@awesome-cordova-plugins/media-capture/ngx';\n\nimport {isNumber} from 'lodash-es';\nimport { DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\n\nexport class CameraService extends DeviceVariableService {\n public readonly name = 'camera';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor(camera: Camera, mediaCapture: MediaCapture) {\n super();\n this.operations.push(new CaptureImageOperation(camera),\n new CaptureVideoOperation(mediaCapture));\n }\n}\n\nclass CaptureImageOperation implements IDeviceVariableOperation {\n public readonly name = 'captureImage';\n public readonly model = {\n imagePath: 'resources/images/imagelists/default-image.png'\n };\n public readonly properties = [\n {target: 'allowImageEdit', type: 'boolean', value: false, dataBinding: true},\n {target: 'imageQuality', type: 'number', value: 80, dataBinding: true},\n {target: 'imageEncodingType', type: 'list', options: {'0': 'JPEG', '1': 'PNG'}, value: '0', dataBinding: true},\n {target: 'correctOrientation', type: 'boolean', value: true, dataBinding: true},\n {target: 'imageTargetWidth', type: 'number', dataBinding: true},\n {target: 'imageTargetHeight', type: 'number', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CAMERA', 'CAPTURE'];\n\n constructor(private camera: Camera) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const imageTargetWidth = dataBindings.get('imageTargetWidth'),\n imageTargetHeight = dataBindings.get('imageTargetHeight');\n let imageEncodingType = parseInt(dataBindings.get('imageEncodingType'), 10),\n cameraOptions;\n if (isNaN(imageEncodingType)) {\n imageEncodingType = (dataBindings.get('imageEncodingType') === 'JPEG' ? 0 : 1);\n }\n cameraOptions = {\n quality : dataBindings.get('imageQuality'),\n destinationType : 1, // only file url\n sourceType : 1, // camera\n allowEdit : dataBindings.get('allowImageEdit'),\n encodingType : imageEncodingType,\n mediaType : 0, // always picture\n correctOrientation: dataBindings.get('correctOrientation'),\n targetWidth : isNumber(imageTargetWidth) ? imageTargetWidth : undefined,\n targetHeight : isNumber(imageTargetHeight) ? imageTargetHeight : undefined,\n };\n return this.camera.getPicture(cameraOptions).then( data => {\n return {imagePath: data};\n });\n }\n}\n\nclass CaptureVideoOperation implements IDeviceVariableOperation {\n public readonly name = 'captureVideo';\n public readonly model = {\n videoPath: ''\n };\n public readonly properties = [];\n public readonly requiredCordovaPlugins = ['CAMERA', 'CAPTURE'];\n\n constructor(private mediaCapture: MediaCapture) {\n\n }\n\n public invoke(variable: any, options: any): Promise<any> {\n return this.mediaCapture.captureVideo({\n limit : 1\n }).then( data => {\n let path = data[0].fullPath;\n path = (path.startsWith('file://') ? '' : 'file://') + path;\n return {videoPath: path};\n });\n }\n}\n","import { isValidWebURL } from '@wm/core';\nimport { DeviceFileOpenerService, DeviceFileUploadService } from '@wm/mobile/core';\nimport { $rootScope, DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\nimport {assignIn, mapValues} from \"lodash-es\";\n\nexport class FileService extends DeviceVariableService {\n name = 'file';\n operations: IDeviceVariableOperation[] = [];\n\n constructor(fileOpener: DeviceFileOpenerService, fileUploader: DeviceFileUploadService) {\n super();\n this.operations.push(new OpenFileOperation(fileOpener),\n new UploadFileOperation(fileUploader));\n }\n}\n\nclass OpenFileOperation implements IDeviceVariableOperation {\n\n private _defaultFileTypesToOpen = {\n 'doc' : {'label' : 'Microsoft Office Word Document', 'mimeType' : 'application/msword', 'extension' : 'doc'},\n 'pdf' : {'label' : 'PDF Document', 'mimeType' : 'application/pdf', 'extension' : 'pdf'},\n 'ppt' : {'label' : 'Microsoft Office Powerpoint', 'mimeType' : 'application/vnd.ms-powerpoint', 'extension' : 'ppt'},\n 'xls' : {'label' : 'Microsoft Office Excel', 'mimeType' : 'application/vnd.ms-excel', 'extension' : 'xls'}\n };\n\n public readonly name = 'openFile';\n public readonly model = {};\n public readonly properties = [\n {target: 'filePath', type: 'string', value: '', dataBinding: true},\n {\n target: 'fileType',\n type: 'list',\n options: mapValues(this._defaultFileTypesToOpen, 'label'),\n value: 'pdf',\n dataBinding: true,\n hide: true\n },\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = [];\n\n constructor(private fileOpener: DeviceFileOpenerService) {}\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const fileType = this._defaultFileTypesToOpen[dataBindings.get('fileType')];\n let filePath = dataBindings.get('filePath');\n // if relative path is given, then append url with deployedUrl, to access files in resources.\n if (!isValidWebURL(filePath)) {\n filePath = $rootScope.project.deployedUrl + filePath;\n }\n return this.fileOpener.openRemoteFile(filePath, fileType.extension);\n }\n}\n\nclass UploadFileOperation implements IDeviceVariableOperation {\n\n public readonly name = 'upload';\n public readonly model = {\n fileName : '',\n path : '',\n length : 0,\n success : false,\n inlinePath : '',\n errorMessage: '',\n inProgress : false,\n loaded : 0\n };\n public readonly properties = [\n {target: 'localFile', type: 'string', value: '', dataBinding: true},\n {target: 'remoteFolder', type: 'string', value: '', dataBinding: true},\n {target: 'onProgress', hide : false},\n {target: 'spinnerContext', hide : false},\n {target: 'spinnerMessage', hide : false}\n ];\n public readonly requiredCordovaPlugins = [];\n\n constructor(private fileUploader: DeviceFileUploadService) {}\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const serverUrl = $rootScope.project.deployedUrl + 'services/file/uploadFile?relativePath=' + (dataBindings.get('remoteFolder') || ''),\n filePath = dataBindings.get('localFile'),\n fileName = filePath.split('/').pop(),\n data = {\n fileName : fileName,\n fileSize : 0,\n inProgress : true,\n length : 0,\n loaded : 0\n };\n return this.fileUploader.upload(serverUrl, 'files', filePath, fileName)\n .then(uploadResponse => {\n assignIn(data, JSON.parse(uploadResponse.text)[0]);\n data.loaded = data.length;\n return data;\n });\n }\n}\n","import { Observer } from 'rxjs';\n\nimport { App, noop, toPromise } from '@wm/core';\nimport { NetworkService } from '@wm/mobile/core';\nimport { FileSelectorService, ProcessApi, ProcessManagementService } from '@wm/mobile/components/basic';\nimport { Change, ChangeLogService, LocalDBManagementService, LocalDBDataPullService, PushInfo, PullInfo } from '@wm/mobile/offline';\nimport { DeviceVariableService, IDeviceVariableOperation, initiateCallback, VARIABLE_CONSTANTS } from '@wm/variables';\nimport { SecurityService } from '@wm/security';\nimport {clone, filter} from \"lodash-es\";\n\nconst APP_IS_OFFLINE = 'App is offline.';\nconst OFFLINE_PLUGIN_NOT_FOUND = 'Offline DB Plugin is required, but missing.';\nconst ON_BEFORE_BLOCKED = 'onBefore callback returned false.';\nconst REQUIRED_PLUGINS = ['OFFLINE_DB', 'NETWORK'];\n\nexport class DatasyncService extends DeviceVariableService {\n public readonly name = 'datasync';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor(app: App,\n changeLogService: ChangeLogService,\n fileSelectorService: FileSelectorService,\n localDBManagementService: LocalDBManagementService,\n localDBDataPullService: LocalDBDataPullService,\n processManagementService: ProcessManagementService,\n securityService: SecurityService,\n networkService: NetworkService) {\n super();\n this.operations.push(new ExportDBOperation(localDBManagementService));\n this.operations.push(new GetOfflineChangesOperation(changeLogService));\n this.operations.push(new ImportDBOperation(fileSelectorService, localDBManagementService));\n this.operations.push(new LastPullInfoOperation(localDBDataPullService));\n this.operations.push(new LastPushInfoOperation(changeLogService));\n this.operations.push(new PullOperation(app, processManagementService, networkService, securityService, localDBDataPullService));\n this.operations.push(new PushOperation(app, changeLogService, processManagementService, networkService, securityService));\n }\n}\n\nclass ExportDBOperation implements IDeviceVariableOperation {\n public readonly name = 'exportDB';\n public readonly model = {path: ''};\n public readonly properties = [\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private localDBManagementService: LocalDBManagementService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return this.localDBManagementService.exportDB();\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\n\nclass GetOfflineChangesOperation implements IDeviceVariableOperation {\n private static DATA_CHANGE_TEMPLATE = {\n service: 'DatabaseService',\n operation: 'operation',\n params: {\n data: {},\n dataModelName: 'dataModelName',\n entityName: 'entityName'\n },\n hasError: 0,\n errorMessage: ''\n };\n private static CHANGE_LOG_SET = {\n total: 0,\n database: {\n create: [GetOfflineChangesOperation.DATA_CHANGE_TEMPLATE],\n update: [GetOfflineChangesOperation.DATA_CHANGE_TEMPLATE],\n delete: [GetOfflineChangesOperation.DATA_CHANGE_TEMPLATE]\n },\n uploads: [{\n service: 'OfflineFileUploadService',\n operation: 'uploadToServer',\n params: {\n file: 'localFilePath',\n serverUrl: 'serverUrl',\n ftOptions: {}\n },\n hasError: 0,\n errorMessage: ''\n }]\n };\n public readonly name = 'getOfflineChanges';\n public readonly model = {\n total: 0,\n pendingToSync: GetOfflineChangesOperation.CHANGE_LOG_SET,\n failedToSync: GetOfflineChangesOperation.CHANGE_LOG_SET\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true},\n {target: 'autoUpdate', type: 'boolean', value: true, hide: true}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private changeLogService: ChangeLogService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return getOfflineChanges(this.changeLogService);\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\nclass LastPullInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'lastPullInfo';\n public readonly model = {\n databases : [{\n name : 'datbaseName',\n entities: [{\n entityName: 'entityName',\n pulledRecordCount: 0\n }],\n pulledRecordCount: 0\n }],\n totalPulledRecordCount: 0,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON()\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true},\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private localDBDataPullService: LocalDBDataPullService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return this.localDBDataPullService.getLastPullInfo();\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\nclass LastPushInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'lastPushInfo';\n public readonly model = {\n successfulTaskCount: 0,\n failedTaskCount: 0,\n completedTaskCount: 0,\n totalTaskCount: 0,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON()\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true},\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private changeLogService: ChangeLogService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return this.changeLogService.getLastPushInfo();\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\nclass ImportDBOperation implements IDeviceVariableOperation {\n public readonly name = 'importDB';\n public readonly model = {};\n public readonly properties = [\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(\n private fileSelectorService: FileSelectorService,\n private localDBManagementService: LocalDBManagementService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return this.fileSelectorService.selectFiles(false, 'zip')\n .then(files => {\n if (files && files.length) {\n return this.localDBManagementService.importDB(files[0].path, true);\n }\n });\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\nclass PullOperation implements IDeviceVariableOperation {\n public readonly name = 'pull';\n public readonly model = {\n totalTaskCount: 0,\n completedTaskCount: 0,\n inProgress: false\n };\n public readonly properties = [\n {target: 'clearData', type: 'boolean', widgettype: 'boolean-inputfirst', value: true, group: 'properties', subGroup: 'behavior'},\n {target: 'startUpdate', type: 'boolean', hide: false},\n {target: 'onBefore', hide: false},\n {target: 'onProgress', hide: false},\n {target: 'showProgress', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(\n private app: App,\n private processManagementService: ProcessManagementService,\n private networkService: NetworkService,\n private securityService: SecurityService,\n private localDBDataPullService: LocalDBDataPullService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n let progressInstance;\n return canExecute(variable, this.networkService, this.securityService)\n .then(() => {\n if (variable.showProgress) {\n return this.processManagementService.createInstance(this.app.appLocale.LABEL_DATA_PULL_PROGRESS, 0, 0);\n }\n return null;\n }).then((instance: ProcessApi) => {\n const progressObserver: Observer<PullInfo> = {\n next: (pullInfo: PullInfo) => {\n // variable.dataSet = progress; Todo: progress\n initiateCallback('onProgress', variable, pullInfo);\n if (progressInstance) {\n progressInstance.set('max', pullInfo.totalRecordsToPull);\n progressInstance.set('value', pullInfo.totalPulledRecordCount);\n }\n }, error: noop, complete: noop};\n\n const clearData = variable.clearData === 'true' || variable.clearData === true,\n pullPromise = this.localDBDataPullService.pullAllDbData(clearData, progressObserver);\n if (instance) {\n progressInstance = instance;\n progressInstance.set('stopButtonLabel', this.app.appLocale.LABEL_DATA_PULL_PROGRESS_STOP_BTN);\n progressInstance.set('onStop', () => {\n this.localDBDataPullService.cancel(pullPromise);\n });\n }\n return pullPromise;\n }).catch(pullInfo => pullInfo)\n .then(pullInfo => {\n if (progressInstance) {\n progressInstance.destroy();\n }\n return pullInfo;\n });\n }\n}\n\nclass PushOperation implements IDeviceVariableOperation {\n public readonly name = 'push';\n public readonly model = {\n successfulTaskCount: 0,\n failedTaskCount: 0,\n completedTaskCount: 0,\n totalTaskCount: 0,\n inProgress: false\n };\n public readonly properties = [\n {target: 'onBefore', hide: false},\n {target: 'onProgress', hide: false},\n {target: 'showProgress', 'hide': false, 'value': true}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private app: App,\n private changeLogService: ChangeLogService,\n private processManagementService: ProcessManagementService,\n private networkService: NetworkService,\n private securityService: SecurityService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n let progressInstance;\n if (this.changeLogService.isFlushInProgress()) {\n return Promise.resolve();\n }\n return canExecute(variable, this.networkService, this.securityService)\n .then(() => getOfflineChanges(this.changeLogService))\n .then(changes => {\n if (changes.pendingToSync.total <= 0) {\n return Promise.reject(clone(this.model));\n }\n }).then(() => {\n if (variable.showProgress) {\n return this.processManagementService.createInstance(this.app.appLocale.LABEL_DATA_PUSH_PROGRESS, 0, 0);\n }\n return null;\n }).then((instance: ProcessApi) => {\n const progressObserver: Observer<PushInfo> = {\n next: (pushInfo: PushInfo) => {\n pushInfo = addOldPropertiesForPushData(pushInfo);\n initiateCallback('onProgress', variable, pushInfo);\n if (progressInstance) {\n progressInstance.set('max', pushInfo.totalTaskCount);\n progressInstance.set('value', pushInfo.completedTaskCount);\n }\n }, error: noop, complete: noop};\n const pushPromise = this.changeLogService.flush(progressObserver);\n if (instance) {\n progressInstance = instance;\n progressInstance.set('stopButtonLabel', this.app.appLocale.LABEL_DATA_PUSH_PROGRESS_STOP_BTN);\n progressInstance.set('onStop', () => this.changeLogService.stop());\n }\n return pushPromise;\n })\n .catch(pushInfo => pushInfo)\n .then(pushInfo => {\n if (progressInstance) {\n progressInstance.destroy();\n }\n if (pushInfo && pushInfo.totalTaskCount !== undefined) {\n pushInfo = addOldPropertiesForPushData(pushInfo);\n if (pushInfo.failedTaskCount !== 0) {\n return Promise.reject(pushInfo);\n }\n return pushInfo;\n }\n return Promise.reject(pushInfo);\n });\n }\n}\n\n/**\n * This function adds the old properties to the push dataSet to support old projects.\n * @param data\n * @returns {*}\n */\nconst addOldPropertiesForPushData = data => {\n const result = clone(data);\n result.success = data.successfulTaskCount;\n result.error = data.failedTaskCount;\n result.completed = data.completedTaskCount;\n result.total = data.totalTaskCount;\n return result;\n};\n\nconst canExecute = (variable: any, networkService: NetworkService, securityService: SecurityService) => {\n if (!window['SQLitePlugin']) {\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n if (!networkService.isConnected()) {\n return Promise.reject(APP_IS_OFFLINE);\n }\n return toPromise(initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE, variable, null))\n .then(proceed => {\n if (proceed === false) {\n return Promise.reject(ON_BEFORE_BLOCKED);\n }\n // If user is authenticated and online, then start the data pull process.\n return securityService.onUserLogin();\n });\n};\n\nconst generateChangeSet = (changes: Change[]) => {\n const createChanges = filter(changes, c => {\n return c.service === 'DatabaseService' &&\n (c.operation === 'insertTableData'\n || c.operation === 'insertMultiPartTableData');\n }), updateChanges = filter(changes, c => {\n return c.service === 'DatabaseService' &&\n (c.operation === 'updateTableData'\n || c.operation === 'updateMultiPartTableData');\n });\n return {\n total: changes ? changes.length : 0,\n database: {\n create: createChanges,\n update: updateChanges,\n delete: filter(changes, {service: 'DatabaseService', operation: 'deleteTableData'})\n },\n uploads: filter(changes, {service: 'OfflineFileUploadService', operation: 'uploadToServer'})\n };\n};\n\nconst getOfflineChanges = (changeLogService: ChangeLogService) => {\n return changeLogService.getChanges().then(changes => {\n return {\n 'total' : changes ? changes.length : 0,\n 'pendingToSync': generateChangeSet(filter(changes, {'hasError': 0})),\n 'failedToSync': generateChangeSet(filter(changes, {'hasError': 1}))\n };\n });\n};\n","import { LocationAccuracy } from '@awesome-cordova-plugins/location-accuracy/ngx';\nimport { Geolocation, GeolocationOptions } from '@awesome-cordova-plugins/geolocation/ngx';\nimport { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';\n\nimport { IDeviceVariableOperation } from '@wm/variables';\nimport { $appDigest, App, isAndroid, isIos, getAndroidVersion} from '@wm/core';\n\ndeclare const cordova;\nconst PERMISSION_DENIED_ONCE = \"DENIED_ONCE\";\n\n/**\n * This class handles 'getCurrentGeoPosition' device operation.\n */\nexport class CurrentGeoPositionOperation implements IDeviceVariableOperation {\n public readonly name = 'getCurrentGeoPosition';\n public readonly model = {\n coords: {\n latitude: 0,\n longitude: 0,\n altitude: 0,\n accuracy: 0,\n altitudeAccuracy: 0,\n heading: 0,\n speed: 0\n },\n timestamp: 0\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide : true},\n {target: 'autoUpdate', type: 'boolean', value: true, hide : true},\n {target: 'geolocationHighAccuracy', type: 'boolean', value: true, dataBinding: true},\n {target: 'geolocationMaximumAge', type: 'number', value: 3, dataBinding: true},\n {target: 'geolocationTimeout', type: 'number', value: 5, dataBinding: true},\n ];\n public readonly requiredCordovaPlugins = ['GEOLOCATION'];\n\n private lastKnownPosition;\n private waitingQueue = [];\n private watchId;\n private locationRequestedAlready = false;\n \n private previousPermissionStatus;\n private currentPermissionStatus;\n\n private options = {\n maximumAge: 3000,\n timeout: (2 * 60) * 1000,\n enableHighAccuracy: true\n };\n\n constructor (private app: App, private geoLocation: Geolocation, private locationAccuracyService: LocationAccuracy, private diagnosticService: Diagnostic) {}\n\n private watchPosition() {\n if (this.watchId) {\n navigator.geolocation.clearWatch(this.watchId);\n this.watchId = null;\n }\n const options = window['WM_GEO_LOCATION_OPTIONS'] || this.options;\n this.watchId = navigator.geolocation.watchPosition(position => {\n this.lastKnownPosition = {\n coords: {\n latitude: position.coords.latitude,\n longitude: position.coords.longitude,\n altitude: position.coords.altitude,\n accuracy: position.coords.accuracy,\n altitudeAccuracy: position.coords.altitudeAccuracy,\n heading: position.coords.heading,\n speed: position.coords.speed\n },\n timestamp: position.timestamp\n };\n if (this.waitingQueue.length > 0) {\n this.waitingQueue.forEach(fn => fn(this.lastKnownPosition));\n this.waitingQueue.length = 0;\n }\n $(document).off('touchend.usergesture');\n }, () => {\n this.watchId = null;\n }, options);\n }\n\n private geoLocationService(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (!this.watchId || !this.lastKnownPosition) {\n this.watchPosition();\n $(document).on('touchend.usergesture', () => this.watchPosition());\n }\n const geoLocationOptions: GeolocationOptions = {\n maximumAge: dataBindings.get('geolocationMaximumAge') * 1000,\n timeout: dataBindings.get('geolocationTimeout') * 1000,\n enableHighAccuracy: dataBindings.get('geolocationHighAccuracy')\n };\n if (this.lastKnownPosition) {\n return Promise.resolve(this.lastKnownPosition);\n }\n return new Promise(resolve => {\n const c = position => {\n resolve(position);\n };\n setTimeout(() => {\n const index = this.waitingQueue.indexOf(c);\n if (index > -1) {\n this.waitingQueue.splice(index, 1);\n resolve(this.model);\n }\n }, this.options.timeout);\n this.waitingQueue.push(c);\n }); \n }\n\n private requestLocationService(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n return this.locationAccuracyService.canRequest()\n .then((canRequest: boolean) => {\n if(canRequest && !this.locationRequestedAlready) {\n //In iOS, Only once location service request can be made, Repeated access will be blocked by OS \n //https://github.com/dpa99c/cordova-plugin-request-location-accuracy#ios-cancel-button-caveat\n this.locationRequestedAlready = isIos();\n return this.locationAccuracyService.request(this.locationAccuracyService.REQUEST_PRIORITY_HIGH_ACCURACY)\n }else {\n if(isIos() && confirm(this.app.appLocale.MESSAGE_REQUEST_LOCATION_PERMISSION)){\n this.diagnosticService.switchToSettings();\n return Promise.reject();\n }\n return Promise.resolve();\n } \n })\n .then(() => { \n return this.geoLocationService(variable, options, dataBindings) \n })\n .catch((e) => { \n if (e && e.code \n && e.code !== this.locationAccuracyService.ERROR_USER_DISAGREED\n && e.code !== this.locationAccuracyService.ERROR_CANNOT_CHANGE_ACCURACY) {\n if(confirm(this.app.appLocale.MESSAGE_REQUEST_LOCATION_PERMISSION)){\n this.diagnosticService.switchToSettings();\n }\n } \n return Promise.resolve(this.lastKnownPosition ? this.lastKnownPosition : this.model); \n });\n }\n\n private handleLocationAuthorizationStatus(variable: any, options: any, dataBindings: Map<string, any>, permissionStatus: string): Promise<any> { \n this.previousPermissionStatus = this.currentPermissionStatus;\n this.currentPermissionStatus = permissionStatus;\n switch(permissionStatus){ \n case this.diagnosticService.permissionStatus.GRANTED_WHEN_IN_USE:\n case this.diagnosticService.permissionStatus.GRANTED:{\n return this.onLocationGranted(variable, options, dataBindings); \n }\n case PERMISSION_DENIED_ONCE:{\n return this.requestLocationService(variable, options, dataBindings);\n }\n case this.diagnosticService.permissionStatus.DENIED_ALWAYS:{\n if(isIos()){\n //iOS Location Service Turned Off returns DENIED_ALWAYS\n return this.requestLocationService(variable, options, dataBindings);\n }else{\n if(confirm(this.app.appLocale.MESSAGE_REQUEST_LOCATION_PERMISSION)){\n this.diagnosticService.switchToSettings();\n }\n return Promise.resolve(this.model);\n }\n }\n case this.diagnosticService.permissionStatus.NOT_REQUESTED: {\n return this.requestLocationAuthorization(variable, options, dataBindings);\n } \n }\n }\n\n private requestLocationAuthorization(variable: any, options: any, dataBindings: Map<string, any>): Promise<any>{\n return this.diagnosticService.requestLocationAuthorization()\n .then((permissionStatus) => {\n return this.handleLocationAuthorizationStatus(variable, options, dataBindings, permissionStatus)\n })\n }\n\n private requestLocationAccuracy(variable: any, options: any, dataBindings: Map<string, any>): Promise<any>{\n return this.diagnosticService.getLocationAuthorizationStatus()\n .then((permissionStatus) => {\n return this.handleLocationAuthorizationStatus(variable, options, dataBindings, permissionStatus) \n })\n .catch((e) => { \n //In case of device older than Android 6, Due to absence of Permission Check API.\n return this.geoLocationService(variable, options, dataBindings);\n });\n }\n\n private onLocationGranted(variable: any, options: any, dataBindings: Map<string, any>): Promise<any>{\n //iOS updates 'Granted' Only if Location service is turned On\n //Android updates 'Granted' even if Location service is turned Off\n if(isIos()){\n return this.geoLocationService(variable, options, dataBindings) \n }else if(isAndroid() \n && parseInt(getAndroidVersion(), 10) <= 10 \n && this.previousPermissionStatus === PERMISSION_DENIED_ONCE \n && this.currentPermissionStatus === this.diagnosticService.permissionStatus.GRANTED_WHEN_IN_USE\n && !this.lastKnownPosition){\n //Below Android 11, Chrome webview of Cordova is not updating the permission status from \"denied\" to \"allowed\" and throwing the below message\n //\"application does not have sufficient geolocation permissions\" For navigator.geolocation.watchPosition method\n //Hence we are reloading the webview manually\n location.reload(); \n }else{\n return this.requestLocationService(variable, options, dataBindings);\n }\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if(cordova['plugins'] && cordova['plugins']['locationAccuracy']){\n return this.requestLocationAccuracy(variable, options, dataBindings);\n }else{\n return this.geoLocationService(variable, options, dataBindings); \n }\n }\n}","import { AppVersion } from '@awesome-cordova-plugins/app-version/ngx';\nimport { Device } from '@awesome-cordova-plugins/device/ngx';\nimport { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';\nimport { LocationAccuracy } from '@awesome-cordova-plugins/location-accuracy/ngx';\nimport { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';\nimport { Vibration } from '@awesome-cordova-plugins/vibration/ngx';\n\nimport { $appDigest, App } from '@wm/core';\nimport { NetworkService } from '@wm/mobile/core';\nimport { DeviceVariableService, IDeviceVariableOperation, initiateCallback } from '@wm/variables';\nimport { CurrentGeoPositionOperation } from './location-service';\n\ndeclare const navigator, $;\n/**\n * this file contains all device operations under 'device' service.\n */\nexport class DeviceService extends DeviceVariableService {\n public readonly name = 'device';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor(app: App,\n appVersion: AppVersion,\n device: Device,\n geoLocation: Geolocation,\n networkService: NetworkService,\n vibrateService: Vibration,\n locationAccuracyService: LocationAccuracy,\n diagnosticService: Diagnostic\n ) {\n super();\n this.operations.push(new AppInfoOperation(device, appVersion),\n new CurrentGeoPositionOperation(app, geoLocation, locationAccuracyService, diagnosticService),\n new DeviceInfoOperation(device),\n new GetNetworkInfoOperation(app, networkService),\n new GoOfflineOperation(networkService),\n new GoOnlineOperation(networkService),\n new VibrateOperation(vibrateService));\n app.subscribe('onNetworkStateChange', data => {\n app.networkStatus = data;\n $appDigest();\n });\n app.networkStatus = {\n isConnecting : false,\n isConnected : true,\n isNetworkAvailable : true,\n isServiceAvailable : true\n };\n }\n}\n\n\n/**\n * This class handles 'getAppInfo' device operation.\n */\nclass AppInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'getAppInfo';\n public readonly model = {\n appversion: 'X.X.X',\n cordovaversion: 'X.X.X'\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true}\n ];\n\n constructor (private device: Device, private appVersion: AppVersion) {\n\n }\n\n public invoke(variable: any, options: any): Promise<any> {\n const cordovaVersion = this.device.cordova;\n return this.appVersion.getVersionNumber().then(appVersion => {\n return {\n appversion: appVersion,\n cordovaversion: cordovaVersion\n };\n });\n }\n}\n\n/**\n * This class handles 'getDeviceInfo' device operation.\n */\nclass DeviceInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'getDeviceInfo';\n public readonly model = {\n deviceModel: 'DEVICEMODEL',\n os: 'DEVICEOS',\n osVersion: 'X.X.X',\n deviceUUID: 'DEVICEUUID'\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true}\n ];\n\n constructor (private device: Device) {\n\n }\n\n public invoke(variable: any, options: any): Promise<any> {\n const response = {\n 'deviceModel': this.device.model,\n 'os': this.device.platform,\n 'osVersion': this.device.version,\n 'deviceUUID': this.device.uuid\n };\n return Promise.resolve(response);\n }\n}\n\nclass GetNetworkInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'getNetworkInfo';\n public readonly model = {\n connectionType: 'NONE',\n isConnecting: false,\n isNetworkAvailable: true,\n isOnline: true,\n isOffline: false\n };\n public readonly properties = [\n {target: 'autoUpdate', type: 'boolean', value: true, hide : true},\n {target: 'startUpdate', type: 'boolean', value: true, hide : true},\n {target: 'networkStatus', type: 'object', value: 'bind:App.networkStatus', dataBinding: true, hide: true},\n {target: 'onOnline', hide : false},\n {target: 'onOffline', hide : false}\n ];\n public readonly requiredCordovaPlugins = ['NETWORK'];\n\n constructor (private app: App, private networkService: NetworkService) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const data = {\n connectionType: navigator.connection.type,\n isConnecting: this.app.networkStatus.isConnecting,\n isNetworkAvailable: this.app.networkStatus.isNetworkAvailable,\n isOnline: this.app.networkStatus.isConnected,\n isOffline: !this.app.networkStatus.isConnected\n };\n if (this.networkService.isConnected()) {\n initiateCallback('onOnline', variable, data);\n } else {\n initiateCallback('onOffline', variable, data);\n }\n return Promise.resolve(data);\n }\n}\n\nclass GoOfflineOperation implements IDeviceVariableOperation {\n public readonly name = 'goOffline';\n public readonly model = {};\n public readonly properties = [];\n public readonly requiredCordovaPlugins = ['NETWORK'];\n\n constructor (private networkService: NetworkService) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n return this.networkService.disconnect();\n }\n}\n\nclass GoOnlineOperation implements IDeviceVariableOperation {\n public readonly name = 'goOnline';\n public readonly model = {};\n public readonly properties = [];\n public readonly requiredCordovaPlugins = ['NETWORK'];\n\n constructor (private networkService: NetworkService) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n return this.networkService.connect();\n }\n}\n\n/**\n * This class handles 'vibrate' device operation.\n */\nclass VibrateOperation implements IDeviceVariableOperation {\n public readonly name = 'vibrate';\n public readonly model = {\n appversion: 'X.X.X',\n cordovaversion: 'X.X.X'\n };\n public readonly properties = [\n {target: 'vibrationtime', type: 'number', value: 2, dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['VIBRATE'];\n\n constructor (private vibrationService: Vibration) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n this.vibrationService.vibrate(dataBindings.get('vibrationtime') * 1000);\n return Promise.resolve();\n }\n}\n","import { DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\n\ndeclare const navigator;\n\nexport class ContactsService extends DeviceVariableService {\n public readonly name = 'contacts';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor() {\n super();\n this.operations.push(new GetContactsOperation());\n }\n}\n\nclass GetContactsOperation implements IDeviceVariableOperation {\n public readonly name = 'getContacts';\n public readonly model = {\n id : '',\n displayName : '',\n phoneNumbers : [{value: ''}]\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean'},\n {target: 'autoUpdate', type: 'boolean'},\n {target: 'contactFilter', type: 'string', value: '', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CONTACTS'];\n\n public waitingCalls: (() => void)[] = [];\n\n private extractDisplayName(c: any): string {\n const name = c.displayName;\n // In IOS, displayName is undefined, so using the formatted name.\n if (!name || name === '') {\n if (c.name.formatted) {\n return c.name.formatted;\n }\n }\n return name;\n }\n\n private processNextCall() {\n if (this.waitingCalls.length > 0) {\n this.waitingCalls[0]();\n }\n }\n\n private findContacts(requiredFields, findOptions): Promise<any> {\n return new Promise<any>((resolve, reject) => {\n // Contacts plugin is not processing two simultaneous calls. It is anwsering to only call.\n this.waitingCalls.push(() => {\n new Promise((resolve: Function, reject: Function) => {\n navigator.contacts.find(requiredFields, resolve, reject, findOptions);\n }).then((data: any[]) => {\n if (data != null) {\n const contacts = data.filter(c => {\n c.displayName = this.extractDisplayName(c);\n return c.phoneNumbers && c.phoneNumbers.length > 0;\n });\n resolve(contacts);\n }\n }, reject).then(() => {\n this.waitingCalls.shift();\n this.processNextCall();\n });\n });\n if (this.waitingCalls.length === 1) {\n this.processNextCall();\n }\n });\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const requiredFields = ['displayName', 'name'];\n const findOptions = {\n filter : dataBindings.get('contactFilter'),\n multiple : true\n };\n return this.findContacts(requiredFields, findOptions);\n }\n}\n","import { BarcodeScanner } from '@awesome-cordova-plugins/barcode-scanner/ngx';\n\nimport { DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\n\nconst barcodeFormatOptions = {\n 'ALL' : 'ALL',\n 'CODABAR' : 'CODABAR (not supported in iOS)',\n 'CODE_39' : 'CODE_39',\n 'CODE_93' : 'CODE_93 (not supported in iOS)',\n 'CODE_128' : 'CODE_128',\n 'DATA_MATRIX' : 'DATA_MATRIX',\n 'EAN_8' : 'EAN_8',\n 'EAN_13' : 'EAN_13',\n 'ITF' : 'ITF',\n 'PDF_417' : 'PDF_417 (not supported in iOS)',\n 'QR_CODE' : 'QR_CODE',\n 'RSS14' : 'RSS14 (not supported in iOS)',\n 'RSS_EXPANDED' : 'RSS_EXPANDED (not supported in iOS)',\n 'UPC_E' : 'UPC_E',\n 'UPC_A' : 'UPC_A'\n};\n\nexport class ScanService extends DeviceVariableService {\n name = 'scan';\n operations: IDeviceVariableOperation[] = [];\n\n constructor(barcodeScanner: BarcodeScanner) {\n super();\n this.operations.push(new ScanOperation(barcodeScanner));\n }\n}\n\nclass ScanOperation implements IDeviceVariableOperation {\n public readonly name = 'scanBarCode';\n public readonly model = {\n text : 'BAR CODE',\n format : 'TEXT',\n cancelled : false\n };\n public readonly properties = [\n {\n target : 'barcodeFormat',\n type : 'list',\n options : barcodeFormatOptions,\n value : 'ALL',\n group : 'properties',\n subGroup : 'behavior',\n hide : false\n }\n ];\n public readonly requiredCordovaPlugins = ['BARCODE_SCANNER'];\n\n constructor(private barcodeScanner: BarcodeScanner) {\n\n }\n\n public invoke(variable: any, options: any): Promise<any> {\n let scanOptions = {\n showFlipCameraButton : true,\n showTorchButton : true\n } as any;\n if (variable.barcodeFormat && variable.barcodeFormat !== 'ALL') {\n scanOptions.formats = variable.barcodeFormat;\n }\n return this.barcodeScanner.scan(scanOptions);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { AppVersion } from '@awesome-cordova-plugins/app-version/ngx';\nimport { BarcodeScanner } from '@awesome-cordova-plugins/barcode-scanner/ngx';\nimport { Calendar } from '@awesome-cordova-plugins/calendar/ngx';\nimport { Camera } from '@awesome-cordova-plugins/camera/ngx';\nimport { Device } from '@awesome-cordova-plugins/device/ngx';\nimport { MediaCapture } from '@awesome-cordova-plugins/media-capture/ngx';\nimport { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';\nimport { Vibration } from '@awesome-cordova-plugins/vibration/ngx';\nimport { LocationAccuracy } from '@awesome-cordova-plugins/location-accuracy/ngx';\nimport { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';\n\nimport { App } from '@wm/core';\nimport { DeviceFileOpenerService, DeviceFileUploadService, NetworkService } from '@wm/mobile/core';\nimport { ChangeLogService, LocalDBManagementService, LocalDBDataPullService, OfflineModule } from '@wm/mobile/offline';\nimport { SecurityService } from '@wm/security';\nimport { DeviceVariableManager, VARIABLE_CONSTANTS, VariableManagerFactory } from '@wm/variables';\n\nimport { CalendarService } from './services/calendar-service';\nimport { CameraService } from './services/camera-service';\nimport { FileService } from './services/file-service';\nimport { DatasyncService } from './services/datasync-service';\nimport { DeviceService } from './services/device-service/device-service';\nimport { ContactsService } from './services/contacts-service';\nimport { ScanService } from './services/scan-service';\nimport { FileSelectorService, ProcessManagementService } from '@wm/mobile/components/basic';\n\n@NgModule({\n imports: [\n OfflineModule\n ],\n declarations: [],\n providers: [\n // add providers to mobile-runtime module.\n ]\n})\nexport class VariablesModule {\n\n private static initialized = false;\n // Device variable services have to be added only once in the app life-cycle.\n private static initialize(app: App,\n appVersion: AppVersion,\n barcodeScanner: BarcodeScanner,\n changeLogService: ChangeLogService,\n calendar: Calendar,\n camera: Camera,\n fileOpener: DeviceFileOpenerService,\n fileSelectorService: FileSelectorService,\n fileUploader: DeviceFileUploadService,\n device: Device,\n geoLocation: Geolocation,\n localDBDataPullService: LocalDBDataPullService,\n localDBManagementService: LocalDBManagementService,\n mediaCapture: MediaCapture,\n processManagementService: ProcessManagementService,\n securityService: SecurityService,\n networkService: NetworkService,\n vibrateService: Vibration,\n locationAccuracyService: LocationAccuracy,\n diagnosticService: Diagnostic) {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n const deviceVariableManager = VariableManagerFactory.get(VARIABLE_CONSTANTS.CATEGORY.DEVICE) as DeviceVariableManager;\n deviceVariableManager.registerService(new CameraService(camera, mediaCapture));\n deviceVariableManager.registerService(new CalendarService(calendar));\n deviceVariableManager.registerService(new FileService(fileOpener, fileUploader));\n deviceVariableManager.registerService(new ContactsService());\n deviceVariableManager.registerService(new DatasyncService(app, changeLogService, fileSelectorService, localDBManagementService, localDBDataPullService, processManagementService, securityService, networkService));\n deviceVariableManager.registerService(new DeviceService(app, appVersion, device, geoLocation, networkService, vibrateService, locationAccuracyService, diagnosticService));\n deviceVariableManager.registerService(new ScanService(barcodeScanner));\n }\n\n constructor(\n app: App,\n appVersion: AppVersion,\n barcodeScanner: BarcodeScanner,\n changeLogService: ChangeLogService,\n calendar: Calendar,\n camera: Camera,\n fileOpener: DeviceFileOpenerService,\n fileSelectorService: FileSelectorService,\n fileUploader: DeviceFileUploadService,\n device: Device,\n geoLocation: Geolocation,\n localDBDataPullService: LocalDBDataPullService,\n localDBManagementService: LocalDBManagementService,\n mediaCapture: MediaCapture,\n processManagementService: ProcessManagementService,\n securityService: SecurityService,\n networkService: NetworkService,\n vibrateService: Vibration,\n locationAccuracyService: LocationAccuracy,\n diagnosticService: Diagnostic\n ) {\n VariablesModule.initialize(app,\n appVersion,\n barcodeScanner,\n changeLogService,\n calendar,\n camera,\n fileOpener,\n fileSelectorService,\n fileUploader,\n device,\n geoLocation,\n localDBDataPullService,\n localDBManagementService,\n mediaCapture,\n processManagementService,\n securityService,\n networkService,\n vibrateService,\n locationAccuracyService,\n diagnosticService);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../projects/mobile/variables/src/services/calendar-service.ts","../../../../projects/mobile/variables/src/services/camera-service.ts","../../../../projects/mobile/variables/src/services/file-service.ts","../../../../projects/mobile/variables/src/services/datasync-service.ts","../../../../projects/mobile/variables/src/services/device-service/location-service.ts","../../../../projects/mobile/variables/src/services/device-service/device-service.ts","../../../../projects/mobile/variables/src/services/contacts-service.ts","../../../../projects/mobile/variables/src/services/scan-service.ts","../../../../projects/mobile/variables/src/variables.module.ts","../../../../projects/mobile/variables/src/index.ts"],"sourcesContent":["import { Calendar } from '@awesome-cordova-plugins/calendar/ngx';\n\nimport { DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\n\nconst DEFAULT_TIME = new Date().getTime();\n/*3 months timestamp value*/\nconst DELTA_VALUE_DATE = (3 * 30 * 24 * 60 * 60 * 1000);\nconst DEFAULT_START_DATE = (DEFAULT_TIME - DELTA_VALUE_DATE);\nconst DEFAULT_END_DATE = (DEFAULT_TIME + DELTA_VALUE_DATE);\nconst EVENT_META = {\n title: '',\n message: '',\n location: '',\n startDate: new Date(),\n endDate: new Date()\n};\n\n/**\n * this file contains all calendar operations under 'calendar' service.\n */\nexport class CalendarService extends DeviceVariableService {\n public readonly name = 'calendar';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor(calendar: Calendar) {\n super();\n this.operations.push(new CreateEventOperation(calendar),\n new DeleteEventOperation(calendar),\n new GetEventsOperation(calendar));\n }\n}\n\nclass CreateEventOperation implements IDeviceVariableOperation {\n public readonly name = 'createEvent';\n public readonly properties = [\n {target: 'eventTitle', type: 'string', dataBinding: true},\n {target: 'eventNotes', type: 'string', dataBinding: true},\n {target: 'eventLocation', type: 'string', dataBinding: true},\n {target: 'eventStart', type: 'datetime', dataBinding: true},\n {target: 'eventEnd', type: 'datetime', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CALENDAR'];\n\n constructor(private calendar: Calendar) {\n\n }\n\n public invoke(variable: any, options: any, eventInfo: Map<string, any>): Promise<any> {\n return this.calendar.createEvent(\n eventInfo.get('eventTitle'),\n eventInfo.get('eventLocation'),\n eventInfo.get('eventNotes'),\n new Date(eventInfo.get('eventStart') || 0),\n new Date(eventInfo.get('eventEnd') || 0));\n }\n}\n\nclass DeleteEventOperation implements IDeviceVariableOperation {\n public readonly name = 'deleteEvent';\n public readonly properties = [\n {target: 'eventTitle', type: 'string', dataBinding: true},\n {target: 'eventNotes', type: 'string', dataBinding: true},\n {target: 'eventLocation', type: 'string', dataBinding: true},\n {target: 'eventStart', type: 'datetime', dataBinding: true},\n {target: 'eventEnd', type: 'datetime', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CALENDAR'];\n\n constructor(private calendar: Calendar) {\n\n }\n\n public invoke(variable: any, options: any, eventInfo: Map<string, any>): Promise<any> {\n return this.calendar.deleteEvent(\n eventInfo.get('eventTitle'),\n eventInfo.get('eventLocation'),\n eventInfo.get('eventNotes'),\n new Date(eventInfo.get('eventStart') || DEFAULT_START_DATE),\n new Date(eventInfo.get('eventEnd') || DEFAULT_END_DATE));\n }\n}\n\nclass GetEventsOperation implements IDeviceVariableOperation {\n public readonly name = 'getEvents';\n public readonly model = [EVENT_META];\n public readonly properties = [\n {target: 'eventTitle', type: 'string', dataBinding: true},\n {target: 'eventNotes', type: 'string', dataBinding: true},\n {target: 'eventLocation', type: 'string', dataBinding: true},\n {target: 'eventStart', type: 'datetime', dataBinding: true},\n {target: 'eventEnd', type: 'datetime', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CALENDAR'];\n\n constructor(private calendar: Calendar) {\n\n }\n\n public invoke(variable: any, options: any, eventInfo: Map<string, any>): Promise<any> {\n return this.calendar.findEvent(\n eventInfo.get('eventTitle'),\n eventInfo.get('eventLocation'),\n eventInfo.get('eventNotes'),\n new Date(eventInfo.get('eventStart') || DEFAULT_START_DATE),\n new Date(eventInfo.get('eventEnd') || DEFAULT_END_DATE));\n }\n}\n","import { Camera } from '@awesome-cordova-plugins/camera/ngx';\nimport { MediaCapture } from '@awesome-cordova-plugins/media-capture/ngx';\n\nimport {isNumber} from 'lodash-es';\nimport { DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\n\nexport class CameraService extends DeviceVariableService {\n public readonly name = 'camera';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor(camera: Camera, mediaCapture: MediaCapture) {\n super();\n this.operations.push(new CaptureImageOperation(camera),\n new CaptureVideoOperation(mediaCapture));\n }\n}\n\nclass CaptureImageOperation implements IDeviceVariableOperation {\n public readonly name = 'captureImage';\n public readonly model = {\n imagePath: 'resources/images/imagelists/default-image.png'\n };\n public readonly properties = [\n {target: 'allowImageEdit', type: 'boolean', value: false, dataBinding: true},\n {target: 'imageQuality', type: 'number', value: 80, dataBinding: true},\n {target: 'imageEncodingType', type: 'list', options: {'0': 'JPEG', '1': 'PNG'}, value: '0', dataBinding: true},\n {target: 'correctOrientation', type: 'boolean', value: true, dataBinding: true},\n {target: 'imageTargetWidth', type: 'number', dataBinding: true},\n {target: 'imageTargetHeight', type: 'number', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CAMERA', 'CAPTURE'];\n\n constructor(private camera: Camera) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const imageTargetWidth = dataBindings.get('imageTargetWidth'),\n imageTargetHeight = dataBindings.get('imageTargetHeight');\n let imageEncodingType = parseInt(dataBindings.get('imageEncodingType'), 10),\n cameraOptions;\n if (isNaN(imageEncodingType)) {\n imageEncodingType = (dataBindings.get('imageEncodingType') === 'JPEG' ? 0 : 1);\n }\n cameraOptions = {\n quality : dataBindings.get('imageQuality'),\n destinationType : 1, // only file url\n sourceType : 1, // camera\n allowEdit : dataBindings.get('allowImageEdit'),\n encodingType : imageEncodingType,\n mediaType : 0, // always picture\n correctOrientation: dataBindings.get('correctOrientation'),\n targetWidth : isNumber(imageTargetWidth) ? imageTargetWidth : undefined,\n targetHeight : isNumber(imageTargetHeight) ? imageTargetHeight : undefined,\n };\n return this.camera.getPicture(cameraOptions).then( data => {\n return {imagePath: data};\n });\n }\n}\n\nclass CaptureVideoOperation implements IDeviceVariableOperation {\n public readonly name = 'captureVideo';\n public readonly model = {\n videoPath: ''\n };\n public readonly properties = [];\n public readonly requiredCordovaPlugins = ['CAMERA', 'CAPTURE'];\n\n constructor(private mediaCapture: MediaCapture) {\n\n }\n\n public invoke(variable: any, options: any): Promise<any> {\n return this.mediaCapture.captureVideo({\n limit : 1\n }).then( data => {\n let path = data[0].fullPath;\n path = (path.startsWith('file://') ? '' : 'file://') + path;\n return {videoPath: path};\n });\n }\n}\n","import { isValidWebURL } from '@wm/core';\nimport { DeviceFileOpenerService, DeviceFileUploadService } from '@wm/mobile/core';\nimport { $rootScope, DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\nimport {assignIn, mapValues} from \"lodash-es\";\n\nexport class FileService extends DeviceVariableService {\n name = 'file';\n operations: IDeviceVariableOperation[] = [];\n\n constructor(fileOpener: DeviceFileOpenerService, fileUploader: DeviceFileUploadService) {\n super();\n this.operations.push(new OpenFileOperation(fileOpener),\n new UploadFileOperation(fileUploader));\n }\n}\n\nclass OpenFileOperation implements IDeviceVariableOperation {\n\n private _defaultFileTypesToOpen = {\n 'doc' : {'label' : 'Microsoft Office Word Document', 'mimeType' : 'application/msword', 'extension' : 'doc'},\n 'pdf' : {'label' : 'PDF Document', 'mimeType' : 'application/pdf', 'extension' : 'pdf'},\n 'ppt' : {'label' : 'Microsoft Office Powerpoint', 'mimeType' : 'application/vnd.ms-powerpoint', 'extension' : 'ppt'},\n 'xls' : {'label' : 'Microsoft Office Excel', 'mimeType' : 'application/vnd.ms-excel', 'extension' : 'xls'}\n };\n\n public readonly name = 'openFile';\n public readonly model = {};\n public readonly properties = [\n {target: 'filePath', type: 'string', value: '', dataBinding: true},\n {\n target: 'fileType',\n type: 'list',\n options: mapValues(this._defaultFileTypesToOpen, 'label'),\n value: 'pdf',\n dataBinding: true,\n hide: true\n },\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = [];\n\n constructor(private fileOpener: DeviceFileOpenerService) {}\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const fileType = this._defaultFileTypesToOpen[dataBindings.get('fileType')];\n let filePath = dataBindings.get('filePath');\n // if relative path is given, then append url with deployedUrl, to access files in resources.\n if (!isValidWebURL(filePath)) {\n filePath = $rootScope.project.deployedUrl + filePath;\n }\n return this.fileOpener.openRemoteFile(filePath, fileType.extension);\n }\n}\n\nclass UploadFileOperation implements IDeviceVariableOperation {\n\n public readonly name = 'upload';\n public readonly model = {\n fileName : '',\n path : '',\n length : 0,\n success : false,\n inlinePath : '',\n errorMessage: '',\n inProgress : false,\n loaded : 0\n };\n public readonly properties = [\n {target: 'localFile', type: 'string', value: '', dataBinding: true},\n {target: 'remoteFolder', type: 'string', value: '', dataBinding: true},\n {target: 'onProgress', hide : false},\n {target: 'spinnerContext', hide : false},\n {target: 'spinnerMessage', hide : false}\n ];\n public readonly requiredCordovaPlugins = [];\n\n constructor(private fileUploader: DeviceFileUploadService) {}\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const serverUrl = $rootScope.project.deployedUrl + 'services/file/uploadFile?relativePath=' + (dataBindings.get('remoteFolder') || ''),\n filePath = dataBindings.get('localFile'),\n fileName = filePath.split('/').pop(),\n data = {\n fileName : fileName,\n fileSize : 0,\n inProgress : true,\n length : 0,\n loaded : 0\n };\n return this.fileUploader.upload(serverUrl, 'files', filePath, fileName)\n .then(uploadResponse => {\n assignIn(data, JSON.parse(uploadResponse.text)[0]);\n data.loaded = data.length;\n return data;\n });\n }\n}\n","import { Observer } from 'rxjs';\n\nimport { App, noop, toPromise } from '@wm/core';\nimport { NetworkService } from '@wm/mobile/core';\nimport { FileSelectorService, ProcessApi, ProcessManagementService } from '@wm/mobile/components/basic';\nimport { Change, ChangeLogService, LocalDBManagementService, LocalDBDataPullService, PushInfo, PullInfo } from '@wm/mobile/offline';\nimport { DeviceVariableService, IDeviceVariableOperation, initiateCallback, VARIABLE_CONSTANTS } from '@wm/variables';\nimport { SecurityService } from '@wm/security';\nimport {clone, filter} from \"lodash-es\";\n\nconst APP_IS_OFFLINE = 'App is offline.';\nconst OFFLINE_PLUGIN_NOT_FOUND = 'Offline DB Plugin is required, but missing.';\nconst ON_BEFORE_BLOCKED = 'onBefore callback returned false.';\nconst REQUIRED_PLUGINS = ['OFFLINE_DB', 'NETWORK'];\n\nexport class DatasyncService extends DeviceVariableService {\n public readonly name = 'datasync';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor(app: App,\n changeLogService: ChangeLogService,\n fileSelectorService: FileSelectorService,\n localDBManagementService: LocalDBManagementService,\n localDBDataPullService: LocalDBDataPullService,\n processManagementService: ProcessManagementService,\n securityService: SecurityService,\n networkService: NetworkService) {\n super();\n this.operations.push(new ExportDBOperation(localDBManagementService));\n this.operations.push(new GetOfflineChangesOperation(changeLogService));\n this.operations.push(new ImportDBOperation(fileSelectorService, localDBManagementService));\n this.operations.push(new LastPullInfoOperation(localDBDataPullService));\n this.operations.push(new LastPushInfoOperation(changeLogService));\n this.operations.push(new PullOperation(app, processManagementService, networkService, securityService, localDBDataPullService));\n this.operations.push(new PushOperation(app, changeLogService, processManagementService, networkService, securityService));\n }\n}\n\nclass ExportDBOperation implements IDeviceVariableOperation {\n public readonly name = 'exportDB';\n public readonly model = {path: ''};\n public readonly properties = [\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private localDBManagementService: LocalDBManagementService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return this.localDBManagementService.exportDB();\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\n\nclass GetOfflineChangesOperation implements IDeviceVariableOperation {\n private static DATA_CHANGE_TEMPLATE = {\n service: 'DatabaseService',\n operation: 'operation',\n params: {\n data: {},\n dataModelName: 'dataModelName',\n entityName: 'entityName'\n },\n hasError: 0,\n errorMessage: ''\n };\n private static CHANGE_LOG_SET = {\n total: 0,\n database: {\n create: [GetOfflineChangesOperation.DATA_CHANGE_TEMPLATE],\n update: [GetOfflineChangesOperation.DATA_CHANGE_TEMPLATE],\n delete: [GetOfflineChangesOperation.DATA_CHANGE_TEMPLATE]\n },\n uploads: [{\n service: 'OfflineFileUploadService',\n operation: 'uploadToServer',\n params: {\n file: 'localFilePath',\n serverUrl: 'serverUrl',\n ftOptions: {}\n },\n hasError: 0,\n errorMessage: ''\n }]\n };\n public readonly name = 'getOfflineChanges';\n public readonly model = {\n total: 0,\n pendingToSync: GetOfflineChangesOperation.CHANGE_LOG_SET,\n failedToSync: GetOfflineChangesOperation.CHANGE_LOG_SET\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true},\n {target: 'autoUpdate', type: 'boolean', value: true, hide: true}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private changeLogService: ChangeLogService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return getOfflineChanges(this.changeLogService);\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\nclass LastPullInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'lastPullInfo';\n public readonly model = {\n databases : [{\n name : 'datbaseName',\n entities: [{\n entityName: 'entityName',\n pulledRecordCount: 0\n }],\n pulledRecordCount: 0\n }],\n totalPulledRecordCount: 0,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON()\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true},\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private localDBDataPullService: LocalDBDataPullService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return this.localDBDataPullService.getLastPullInfo();\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\nclass LastPushInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'lastPushInfo';\n public readonly model = {\n successfulTaskCount: 0,\n failedTaskCount: 0,\n completedTaskCount: 0,\n totalTaskCount: 0,\n startTime: new Date().toJSON(),\n endTime: new Date().toJSON()\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true},\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private changeLogService: ChangeLogService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return this.changeLogService.getLastPushInfo();\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\nclass ImportDBOperation implements IDeviceVariableOperation {\n public readonly name = 'importDB';\n public readonly model = {};\n public readonly properties = [\n {target: 'spinnerContext', hide: false},\n {target: 'spinnerMessage', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(\n private fileSelectorService: FileSelectorService,\n private localDBManagementService: LocalDBManagementService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (window['SQLitePlugin']) {\n return this.fileSelectorService.selectFiles(false, 'zip')\n .then(files => {\n if (files && files.length) {\n return this.localDBManagementService.importDB(files[0].path, true);\n }\n });\n }\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n}\n\nclass PullOperation implements IDeviceVariableOperation {\n public readonly name = 'pull';\n public readonly model = {\n totalTaskCount: 0,\n completedTaskCount: 0,\n inProgress: false\n };\n public readonly properties = [\n {target: 'clearData', type: 'boolean', widgettype: 'boolean-inputfirst', value: true, group: 'properties', subGroup: 'behavior'},\n {target: 'startUpdate', type: 'boolean', hide: false},\n {target: 'onBefore', hide: false},\n {target: 'onProgress', hide: false},\n {target: 'showProgress', hide: false}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(\n private app: App,\n private processManagementService: ProcessManagementService,\n private networkService: NetworkService,\n private securityService: SecurityService,\n private localDBDataPullService: LocalDBDataPullService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n let progressInstance;\n return canExecute(variable, this.networkService, this.securityService)\n .then(() => {\n if (variable.showProgress) {\n return this.processManagementService.createInstance(this.app.appLocale.LABEL_DATA_PULL_PROGRESS, 0, 0);\n }\n return null;\n }).then((instance: ProcessApi) => {\n const progressObserver: Observer<PullInfo> = {\n next: (pullInfo: PullInfo) => {\n // variable.dataSet = progress; Todo: progress\n initiateCallback('onProgress', variable, pullInfo);\n if (progressInstance) {\n progressInstance.set('max', pullInfo.totalRecordsToPull);\n progressInstance.set('value', pullInfo.totalPulledRecordCount);\n }\n }, error: noop, complete: noop};\n\n const clearData = variable.clearData === 'true' || variable.clearData === true,\n pullPromise = this.localDBDataPullService.pullAllDbData(clearData, progressObserver);\n if (instance) {\n progressInstance = instance;\n progressInstance.set('stopButtonLabel', this.app.appLocale.LABEL_DATA_PULL_PROGRESS_STOP_BTN);\n progressInstance.set('onStop', () => {\n this.localDBDataPullService.cancel(pullPromise);\n });\n }\n return pullPromise;\n }).catch(pullInfo => pullInfo)\n .then(pullInfo => {\n if (progressInstance) {\n progressInstance.destroy();\n }\n return pullInfo;\n });\n }\n}\n\nclass PushOperation implements IDeviceVariableOperation {\n public readonly name = 'push';\n public readonly model = {\n successfulTaskCount: 0,\n failedTaskCount: 0,\n completedTaskCount: 0,\n totalTaskCount: 0,\n inProgress: false\n };\n public readonly properties = [\n {target: 'onBefore', hide: false},\n {target: 'onProgress', hide: false},\n {target: 'showProgress', 'hide': false, 'value': true}\n ];\n public readonly requiredCordovaPlugins = REQUIRED_PLUGINS;\n\n constructor(private app: App,\n private changeLogService: ChangeLogService,\n private processManagementService: ProcessManagementService,\n private networkService: NetworkService,\n private securityService: SecurityService) {\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n let progressInstance;\n if (this.changeLogService.isFlushInProgress()) {\n return Promise.resolve();\n }\n return canExecute(variable, this.networkService, this.securityService)\n .then(() => getOfflineChanges(this.changeLogService))\n .then(changes => {\n if (changes.pendingToSync.total <= 0) {\n return Promise.reject(clone(this.model));\n }\n }).then(() => {\n if (variable.showProgress) {\n return this.processManagementService.createInstance(this.app.appLocale.LABEL_DATA_PUSH_PROGRESS, 0, 0);\n }\n return null;\n }).then((instance: ProcessApi) => {\n const progressObserver: Observer<PushInfo> = {\n next: (pushInfo: PushInfo) => {\n pushInfo = addOldPropertiesForPushData(pushInfo);\n initiateCallback('onProgress', variable, pushInfo);\n if (progressInstance) {\n progressInstance.set('max', pushInfo.totalTaskCount);\n progressInstance.set('value', pushInfo.completedTaskCount);\n }\n }, error: noop, complete: noop};\n const pushPromise = this.changeLogService.flush(progressObserver);\n if (instance) {\n progressInstance = instance;\n progressInstance.set('stopButtonLabel', this.app.appLocale.LABEL_DATA_PUSH_PROGRESS_STOP_BTN);\n progressInstance.set('onStop', () => this.changeLogService.stop());\n }\n return pushPromise;\n })\n .catch(pushInfo => pushInfo)\n .then(pushInfo => {\n if (progressInstance) {\n progressInstance.destroy();\n }\n if (pushInfo && pushInfo.totalTaskCount !== undefined) {\n pushInfo = addOldPropertiesForPushData(pushInfo);\n if (pushInfo.failedTaskCount !== 0) {\n return Promise.reject(pushInfo);\n }\n return pushInfo;\n }\n return Promise.reject(pushInfo);\n });\n }\n}\n\n/**\n * This function adds the old properties to the push dataSet to support old projects.\n * @param data\n * @returns {*}\n */\nconst addOldPropertiesForPushData = data => {\n const result = clone(data);\n result.success = data.successfulTaskCount;\n result.error = data.failedTaskCount;\n result.completed = data.completedTaskCount;\n result.total = data.totalTaskCount;\n return result;\n};\n\nconst canExecute = (variable: any, networkService: NetworkService, securityService: SecurityService) => {\n if (!window['SQLitePlugin']) {\n return Promise.reject(OFFLINE_PLUGIN_NOT_FOUND);\n }\n if (!networkService.isConnected()) {\n return Promise.reject(APP_IS_OFFLINE);\n }\n return toPromise(initiateCallback(VARIABLE_CONSTANTS.EVENT.BEFORE, variable, null))\n .then(proceed => {\n if (proceed === false) {\n return Promise.reject(ON_BEFORE_BLOCKED);\n }\n // If user is authenticated and online, then start the data pull process.\n return securityService.onUserLogin();\n });\n};\n\nconst generateChangeSet = (changes: Change[]) => {\n const createChanges = filter(changes, c => {\n return c.service === 'DatabaseService' &&\n (c.operation === 'insertTableData'\n || c.operation === 'insertMultiPartTableData');\n }), updateChanges = filter(changes, c => {\n return c.service === 'DatabaseService' &&\n (c.operation === 'updateTableData'\n || c.operation === 'updateMultiPartTableData');\n });\n return {\n total: changes ? changes.length : 0,\n database: {\n create: createChanges,\n update: updateChanges,\n delete: filter(changes, {service: 'DatabaseService', operation: 'deleteTableData'})\n },\n uploads: filter(changes, {service: 'OfflineFileUploadService', operation: 'uploadToServer'})\n };\n};\n\nconst getOfflineChanges = (changeLogService: ChangeLogService) => {\n return changeLogService.getChanges().then(changes => {\n return {\n 'total' : changes ? changes.length : 0,\n 'pendingToSync': generateChangeSet(filter(changes, {'hasError': 0})),\n 'failedToSync': generateChangeSet(filter(changes, {'hasError': 1}))\n };\n });\n};\n","import { LocationAccuracy } from '@awesome-cordova-plugins/location-accuracy/ngx';\nimport { Geolocation, GeolocationOptions } from '@awesome-cordova-plugins/geolocation/ngx';\nimport { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';\n\nimport { IDeviceVariableOperation } from '@wm/variables';\nimport { $appDigest, App, isAndroid, isIos, getAndroidVersion} from '@wm/core';\n\ndeclare const cordova;\nconst PERMISSION_DENIED_ONCE = \"DENIED_ONCE\";\n\n/**\n * This class handles 'getCurrentGeoPosition' device operation.\n */\nexport class CurrentGeoPositionOperation implements IDeviceVariableOperation {\n public readonly name = 'getCurrentGeoPosition';\n public readonly model = {\n coords: {\n latitude: 0,\n longitude: 0,\n altitude: 0,\n accuracy: 0,\n altitudeAccuracy: 0,\n heading: 0,\n speed: 0\n },\n timestamp: 0\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide : true},\n {target: 'autoUpdate', type: 'boolean', value: true, hide : true},\n {target: 'geolocationHighAccuracy', type: 'boolean', value: true, dataBinding: true},\n {target: 'geolocationMaximumAge', type: 'number', value: 3, dataBinding: true},\n {target: 'geolocationTimeout', type: 'number', value: 5, dataBinding: true},\n ];\n public readonly requiredCordovaPlugins = ['GEOLOCATION'];\n\n private lastKnownPosition;\n private waitingQueue = [];\n private watchId;\n private locationRequestedAlready = false;\n \n private previousPermissionStatus;\n private currentPermissionStatus;\n\n private options = {\n maximumAge: 3000,\n timeout: (2 * 60) * 1000,\n enableHighAccuracy: true\n };\n\n constructor (private app: App, private geoLocation: Geolocation, private locationAccuracyService: LocationAccuracy, private diagnosticService: Diagnostic) {}\n\n private watchPosition() {\n if (this.watchId) {\n navigator.geolocation.clearWatch(this.watchId);\n this.watchId = null;\n }\n const options = window['WM_GEO_LOCATION_OPTIONS'] || this.options;\n this.watchId = navigator.geolocation.watchPosition(position => {\n this.lastKnownPosition = {\n coords: {\n latitude: position.coords.latitude,\n longitude: position.coords.longitude,\n altitude: position.coords.altitude,\n accuracy: position.coords.accuracy,\n altitudeAccuracy: position.coords.altitudeAccuracy,\n heading: position.coords.heading,\n speed: position.coords.speed\n },\n timestamp: position.timestamp\n };\n if (this.waitingQueue.length > 0) {\n this.waitingQueue.forEach(fn => fn(this.lastKnownPosition));\n this.waitingQueue.length = 0;\n }\n $(document).off('touchend.usergesture');\n }, () => {\n this.watchId = null;\n }, options);\n }\n\n private geoLocationService(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if (!this.watchId || !this.lastKnownPosition) {\n this.watchPosition();\n $(document).on('touchend.usergesture', () => this.watchPosition());\n }\n const geoLocationOptions: GeolocationOptions = {\n maximumAge: dataBindings.get('geolocationMaximumAge') * 1000,\n timeout: dataBindings.get('geolocationTimeout') * 1000,\n enableHighAccuracy: dataBindings.get('geolocationHighAccuracy')\n };\n if (this.lastKnownPosition) {\n return Promise.resolve(this.lastKnownPosition);\n }\n return new Promise(resolve => {\n const c = position => {\n resolve(position);\n };\n setTimeout(() => {\n const index = this.waitingQueue.indexOf(c);\n if (index > -1) {\n this.waitingQueue.splice(index, 1);\n resolve(this.model);\n }\n }, this.options.timeout);\n this.waitingQueue.push(c);\n }); \n }\n\n private requestLocationService(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n return this.locationAccuracyService.canRequest()\n .then((canRequest: boolean) => {\n if(canRequest && !this.locationRequestedAlready) {\n //In iOS, Only once location service request can be made, Repeated access will be blocked by OS \n //https://github.com/dpa99c/cordova-plugin-request-location-accuracy#ios-cancel-button-caveat\n this.locationRequestedAlready = isIos();\n return this.locationAccuracyService.request(this.locationAccuracyService.REQUEST_PRIORITY_HIGH_ACCURACY)\n }else {\n if(isIos() && confirm(this.app.appLocale.MESSAGE_REQUEST_LOCATION_PERMISSION)){\n this.diagnosticService.switchToSettings();\n return Promise.reject();\n }\n return Promise.resolve();\n } \n })\n .then(() => { \n return this.geoLocationService(variable, options, dataBindings) \n })\n .catch((e) => { \n if (e && e.code \n && e.code !== this.locationAccuracyService.ERROR_USER_DISAGREED\n && e.code !== this.locationAccuracyService.ERROR_CANNOT_CHANGE_ACCURACY) {\n if(confirm(this.app.appLocale.MESSAGE_REQUEST_LOCATION_PERMISSION)){\n this.diagnosticService.switchToSettings();\n }\n } \n return Promise.resolve(this.lastKnownPosition ? this.lastKnownPosition : this.model); \n });\n }\n\n private handleLocationAuthorizationStatus(variable: any, options: any, dataBindings: Map<string, any>, permissionStatus: string): Promise<any> { \n this.previousPermissionStatus = this.currentPermissionStatus;\n this.currentPermissionStatus = permissionStatus;\n switch(permissionStatus){ \n case this.diagnosticService.permissionStatus.GRANTED_WHEN_IN_USE:\n case this.diagnosticService.permissionStatus.GRANTED:{\n return this.onLocationGranted(variable, options, dataBindings); \n }\n case PERMISSION_DENIED_ONCE:{\n return this.requestLocationService(variable, options, dataBindings);\n }\n case this.diagnosticService.permissionStatus.DENIED_ALWAYS:{\n if(isIos()){\n //iOS Location Service Turned Off returns DENIED_ALWAYS\n return this.requestLocationService(variable, options, dataBindings);\n }else{\n if(confirm(this.app.appLocale.MESSAGE_REQUEST_LOCATION_PERMISSION)){\n this.diagnosticService.switchToSettings();\n }\n return Promise.resolve(this.model);\n }\n }\n case this.diagnosticService.permissionStatus.NOT_REQUESTED: {\n return this.requestLocationAuthorization(variable, options, dataBindings);\n } \n }\n }\n\n private requestLocationAuthorization(variable: any, options: any, dataBindings: Map<string, any>): Promise<any>{\n return this.diagnosticService.requestLocationAuthorization()\n .then((permissionStatus) => {\n return this.handleLocationAuthorizationStatus(variable, options, dataBindings, permissionStatus)\n })\n }\n\n private requestLocationAccuracy(variable: any, options: any, dataBindings: Map<string, any>): Promise<any>{\n return this.diagnosticService.getLocationAuthorizationStatus()\n .then((permissionStatus) => {\n return this.handleLocationAuthorizationStatus(variable, options, dataBindings, permissionStatus) \n })\n .catch((e) => { \n //In case of device older than Android 6, Due to absence of Permission Check API.\n return this.geoLocationService(variable, options, dataBindings);\n });\n }\n\n private onLocationGranted(variable: any, options: any, dataBindings: Map<string, any>): Promise<any>{\n //iOS updates 'Granted' Only if Location service is turned On\n //Android updates 'Granted' even if Location service is turned Off\n if(isIos()){\n return this.geoLocationService(variable, options, dataBindings) \n }else if(isAndroid() \n && parseInt(getAndroidVersion(), 10) <= 10 \n && this.previousPermissionStatus === PERMISSION_DENIED_ONCE \n && this.currentPermissionStatus === this.diagnosticService.permissionStatus.GRANTED_WHEN_IN_USE\n && !this.lastKnownPosition){\n //Below Android 11, Chrome webview of Cordova is not updating the permission status from \"denied\" to \"allowed\" and throwing the below message\n //\"application does not have sufficient geolocation permissions\" For navigator.geolocation.watchPosition method\n //Hence we are reloading the webview manually\n location.reload(); \n }else{\n return this.requestLocationService(variable, options, dataBindings);\n }\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n if(cordova['plugins'] && cordova['plugins']['locationAccuracy']){\n return this.requestLocationAccuracy(variable, options, dataBindings);\n }else{\n return this.geoLocationService(variable, options, dataBindings); \n }\n }\n}","import { AppVersion } from '@awesome-cordova-plugins/app-version/ngx';\nimport { Device } from '@awesome-cordova-plugins/device/ngx';\nimport { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';\nimport { LocationAccuracy } from '@awesome-cordova-plugins/location-accuracy/ngx';\nimport { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';\nimport { Vibration } from '@awesome-cordova-plugins/vibration/ngx';\n\nimport { $appDigest, App } from '@wm/core';\nimport { NetworkService } from '@wm/mobile/core';\nimport { DeviceVariableService, IDeviceVariableOperation, initiateCallback } from '@wm/variables';\nimport { CurrentGeoPositionOperation } from './location-service';\n\ndeclare const navigator, $;\n/**\n * this file contains all device operations under 'device' service.\n */\nexport class DeviceService extends DeviceVariableService {\n public readonly name = 'device';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor(app: App,\n appVersion: AppVersion,\n device: Device,\n geoLocation: Geolocation,\n networkService: NetworkService,\n vibrateService: Vibration,\n locationAccuracyService: LocationAccuracy,\n diagnosticService: Diagnostic\n ) {\n super();\n this.operations.push(new AppInfoOperation(device, appVersion),\n new CurrentGeoPositionOperation(app, geoLocation, locationAccuracyService, diagnosticService),\n new DeviceInfoOperation(device),\n new GetNetworkInfoOperation(app, networkService),\n new GoOfflineOperation(networkService),\n new GoOnlineOperation(networkService),\n new VibrateOperation(vibrateService));\n app.subscribe('onNetworkStateChange', data => {\n app.networkStatus = data;\n $appDigest();\n });\n app.networkStatus = {\n isConnecting : false,\n isConnected : true,\n isNetworkAvailable : true,\n isServiceAvailable : true\n };\n }\n}\n\n\n/**\n * This class handles 'getAppInfo' device operation.\n */\nclass AppInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'getAppInfo';\n public readonly model = {\n appversion: 'X.X.X',\n cordovaversion: 'X.X.X'\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true}\n ];\n\n constructor (private device: Device, private appVersion: AppVersion) {\n\n }\n\n public invoke(variable: any, options: any): Promise<any> {\n const cordovaVersion = this.device.cordova;\n return this.appVersion.getVersionNumber().then(appVersion => {\n return {\n appversion: appVersion,\n cordovaversion: cordovaVersion\n };\n });\n }\n}\n\n/**\n * This class handles 'getDeviceInfo' device operation.\n */\nclass DeviceInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'getDeviceInfo';\n public readonly model = {\n deviceModel: 'DEVICEMODEL',\n os: 'DEVICEOS',\n osVersion: 'X.X.X',\n deviceUUID: 'DEVICEUUID'\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean', value: true, hide: true}\n ];\n\n constructor (private device: Device) {\n\n }\n\n public invoke(variable: any, options: any): Promise<any> {\n const response = {\n 'deviceModel': this.device.model,\n 'os': this.device.platform,\n 'osVersion': this.device.version,\n 'deviceUUID': this.device.uuid\n };\n return Promise.resolve(response);\n }\n}\n\nclass GetNetworkInfoOperation implements IDeviceVariableOperation {\n public readonly name = 'getNetworkInfo';\n public readonly model = {\n connectionType: 'NONE',\n isConnecting: false,\n isNetworkAvailable: true,\n isOnline: true,\n isOffline: false\n };\n public readonly properties = [\n {target: 'autoUpdate', type: 'boolean', value: true, hide : true},\n {target: 'startUpdate', type: 'boolean', value: true, hide : true},\n {target: 'networkStatus', type: 'object', value: 'bind:App.networkStatus', dataBinding: true, hide: true},\n {target: 'onOnline', hide : false},\n {target: 'onOffline', hide : false}\n ];\n public readonly requiredCordovaPlugins = ['NETWORK'];\n\n constructor (private app: App, private networkService: NetworkService) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const data = {\n connectionType: navigator.connection.type,\n isConnecting: this.app.networkStatus.isConnecting,\n isNetworkAvailable: this.app.networkStatus.isNetworkAvailable,\n isOnline: this.app.networkStatus.isConnected,\n isOffline: !this.app.networkStatus.isConnected\n };\n if (this.networkService.isConnected()) {\n initiateCallback('onOnline', variable, data);\n } else {\n initiateCallback('onOffline', variable, data);\n }\n return Promise.resolve(data);\n }\n}\n\nclass GoOfflineOperation implements IDeviceVariableOperation {\n public readonly name = 'goOffline';\n public readonly model = {};\n public readonly properties = [];\n public readonly requiredCordovaPlugins = ['NETWORK'];\n\n constructor (private networkService: NetworkService) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n return this.networkService.disconnect();\n }\n}\n\nclass GoOnlineOperation implements IDeviceVariableOperation {\n public readonly name = 'goOnline';\n public readonly model = {};\n public readonly properties = [];\n public readonly requiredCordovaPlugins = ['NETWORK'];\n\n constructor (private networkService: NetworkService) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n return this.networkService.connect();\n }\n}\n\n/**\n * This class handles 'vibrate' device operation.\n */\nclass VibrateOperation implements IDeviceVariableOperation {\n public readonly name = 'vibrate';\n public readonly model = {\n appversion: 'X.X.X',\n cordovaversion: 'X.X.X'\n };\n public readonly properties = [\n {target: 'vibrationtime', type: 'number', value: 2, dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['VIBRATE'];\n\n constructor (private vibrationService: Vibration) {\n\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n this.vibrationService.vibrate(dataBindings.get('vibrationtime') * 1000);\n return Promise.resolve();\n }\n}\n","import { DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\n\ndeclare const navigator;\n\nexport class ContactsService extends DeviceVariableService {\n public readonly name = 'contacts';\n public readonly operations: IDeviceVariableOperation[] = [];\n\n constructor() {\n super();\n this.operations.push(new GetContactsOperation());\n }\n}\n\nclass GetContactsOperation implements IDeviceVariableOperation {\n public readonly name = 'getContacts';\n public readonly model = {\n id : '',\n displayName : '',\n phoneNumbers : [{value: ''}]\n };\n public readonly properties = [\n {target: 'startUpdate', type: 'boolean'},\n {target: 'autoUpdate', type: 'boolean'},\n {target: 'contactFilter', type: 'string', value: '', dataBinding: true}\n ];\n public readonly requiredCordovaPlugins = ['CONTACTS'];\n\n public waitingCalls: (() => void)[] = [];\n\n private extractDisplayName(c: any): string {\n const name = c.displayName;\n // In IOS, displayName is undefined, so using the formatted name.\n if (!name || name === '') {\n if (c.name.formatted) {\n return c.name.formatted;\n }\n }\n return name;\n }\n\n private processNextCall() {\n if (this.waitingCalls.length > 0) {\n this.waitingCalls[0]();\n }\n }\n\n private findContacts(requiredFields, findOptions): Promise<any> {\n return new Promise<any>((resolve, reject) => {\n // Contacts plugin is not processing two simultaneous calls. It is anwsering to only call.\n this.waitingCalls.push(() => {\n new Promise((resolve: Function, reject: Function) => {\n navigator.contacts.find(requiredFields, resolve, reject, findOptions);\n }).then((data: any[]) => {\n if (data != null) {\n const contacts = data.filter(c => {\n c.displayName = this.extractDisplayName(c);\n return c.phoneNumbers && c.phoneNumbers.length > 0;\n });\n resolve(contacts);\n }\n }, reject).then(() => {\n this.waitingCalls.shift();\n this.processNextCall();\n });\n });\n if (this.waitingCalls.length === 1) {\n this.processNextCall();\n }\n });\n }\n\n public invoke(variable: any, options: any, dataBindings: Map<string, any>): Promise<any> {\n const requiredFields = ['displayName', 'name'];\n const findOptions = {\n filter : dataBindings.get('contactFilter'),\n multiple : true\n };\n return this.findContacts(requiredFields, findOptions);\n }\n}\n","import { BarcodeScanner } from '@awesome-cordova-plugins/barcode-scanner/ngx';\n\nimport { DeviceVariableService, IDeviceVariableOperation } from '@wm/variables';\n\nconst barcodeFormatOptions = {\n 'ALL' : 'ALL',\n 'CODABAR' : 'CODABAR (not supported in iOS)',\n 'CODE_39' : 'CODE_39',\n 'CODE_93' : 'CODE_93 (not supported in iOS)',\n 'CODE_128' : 'CODE_128',\n 'DATA_MATRIX' : 'DATA_MATRIX',\n 'EAN_8' : 'EAN_8',\n 'EAN_13' : 'EAN_13',\n 'ITF' : 'ITF',\n 'PDF_417' : 'PDF_417 (not supported in iOS)',\n 'QR_CODE' : 'QR_CODE',\n 'RSS14' : 'RSS14 (not supported in iOS)',\n 'RSS_EXPANDED' : 'RSS_EXPANDED (not supported in iOS)',\n 'UPC_E' : 'UPC_E',\n 'UPC_A' : 'UPC_A'\n};\n\nexport class ScanService extends DeviceVariableService {\n name = 'scan';\n operations: IDeviceVariableOperation[] = [];\n\n constructor(barcodeScanner: BarcodeScanner) {\n super();\n this.operations.push(new ScanOperation(barcodeScanner));\n }\n}\n\nclass ScanOperation implements IDeviceVariableOperation {\n public readonly name = 'scanBarCode';\n public readonly model = {\n text : 'BAR CODE',\n format : 'TEXT',\n cancelled : false\n };\n public readonly properties = [\n {\n target : 'barcodeFormat',\n type : 'list',\n options : barcodeFormatOptions,\n value : 'ALL',\n group : 'properties',\n subGroup : 'behavior',\n hide : false\n }\n ];\n public readonly requiredCordovaPlugins = ['BARCODE_SCANNER'];\n\n constructor(private barcodeScanner: BarcodeScanner) {\n\n }\n\n public invoke(variable: any, options: any): Promise<any> {\n let scanOptions = {\n showFlipCameraButton : true,\n showTorchButton : true\n } as any;\n if (variable.barcodeFormat && variable.barcodeFormat !== 'ALL') {\n scanOptions.formats = variable.barcodeFormat;\n }\n return this.barcodeScanner.scan(scanOptions);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { AppVersion } from '@awesome-cordova-plugins/app-version/ngx';\nimport { BarcodeScanner } from '@awesome-cordova-plugins/barcode-scanner/ngx';\nimport { Calendar } from '@awesome-cordova-plugins/calendar/ngx';\nimport { Camera } from '@awesome-cordova-plugins/camera/ngx';\nimport { Device } from '@awesome-cordova-plugins/device/ngx';\nimport { MediaCapture } from '@awesome-cordova-plugins/media-capture/ngx';\nimport { Geolocation } from '@awesome-cordova-plugins/geolocation/ngx';\nimport { Vibration } from '@awesome-cordova-plugins/vibration/ngx';\nimport { LocationAccuracy } from '@awesome-cordova-plugins/location-accuracy/ngx';\nimport { Diagnostic } from '@awesome-cordova-plugins/diagnostic/ngx';\n\nimport { App } from '@wm/core';\nimport { DeviceFileOpenerService, DeviceFileUploadService, NetworkService } from '@wm/mobile/core';\nimport { ChangeLogService, LocalDBManagementService, LocalDBDataPullService, OfflineModule } from '@wm/mobile/offline';\nimport { SecurityService } from '@wm/security';\nimport { DeviceVariableManager, VARIABLE_CONSTANTS, VariableManagerFactory } from '@wm/variables';\n\nimport { CalendarService } from './services/calendar-service';\nimport { CameraService } from './services/camera-service';\nimport { FileService } from './services/file-service';\nimport { DatasyncService } from './services/datasync-service';\nimport { DeviceService } from './services/device-service/device-service';\nimport { ContactsService } from './services/contacts-service';\nimport { ScanService } from './services/scan-service';\nimport { FileSelectorService, ProcessManagementService } from '@wm/mobile/components/basic';\n\n@NgModule({\n imports: [\n OfflineModule\n ],\n declarations: [],\n providers: [\n // add providers to mobile-runtime module.\n ]\n})\nexport class VariablesModule {\n\n private static initialized = false;\n // Device variable services have to be added only once in the app life-cycle.\n private static initialize(app: App,\n appVersion: AppVersion,\n barcodeScanner: BarcodeScanner,\n changeLogService: ChangeLogService,\n calendar: Calendar,\n camera: Camera,\n fileOpener: DeviceFileOpenerService,\n fileSelectorService: FileSelectorService,\n fileUploader: DeviceFileUploadService,\n device: Device,\n geoLocation: Geolocation,\n localDBDataPullService: LocalDBDataPullService,\n localDBManagementService: LocalDBManagementService,\n mediaCapture: MediaCapture,\n processManagementService: ProcessManagementService,\n securityService: SecurityService,\n networkService: NetworkService,\n vibrateService: Vibration,\n locationAccuracyService: LocationAccuracy,\n diagnosticService: Diagnostic) {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n const deviceVariableManager = VariableManagerFactory.get(VARIABLE_CONSTANTS.CATEGORY.DEVICE) as DeviceVariableManager;\n deviceVariableManager.registerService(new CameraService(camera, mediaCapture));\n deviceVariableManager.registerService(new CalendarService(calendar));\n deviceVariableManager.registerService(new FileService(fileOpener, fileUploader));\n deviceVariableManager.registerService(new ContactsService());\n deviceVariableManager.registerService(new DatasyncService(app, changeLogService, fileSelectorService, localDBManagementService, localDBDataPullService, processManagementService, securityService, networkService));\n deviceVariableManager.registerService(new DeviceService(app, appVersion, device, geoLocation, networkService, vibrateService, locationAccuracyService, diagnosticService));\n deviceVariableManager.registerService(new ScanService(barcodeScanner));\n }\n\n constructor(\n app: App,\n appVersion: AppVersion,\n barcodeScanner: BarcodeScanner,\n changeLogService: ChangeLogService,\n calendar: Calendar,\n camera: Camera,\n fileOpener: DeviceFileOpenerService,\n fileSelectorService: FileSelectorService,\n fileUploader: DeviceFileUploadService,\n device: Device,\n geoLocation: Geolocation,\n localDBDataPullService: LocalDBDataPullService,\n localDBManagementService: LocalDBManagementService,\n mediaCapture: MediaCapture,\n processManagementService: ProcessManagementService,\n securityService: SecurityService,\n networkService: NetworkService,\n vibrateService: Vibration,\n locationAccuracyService: LocationAccuracy,\n diagnosticService: Diagnostic\n ) {\n VariablesModule.initialize(app,\n appVersion,\n barcodeScanner,\n changeLogService,\n calendar,\n camera,\n fileOpener,\n fileSelectorService,\n fileUploader,\n device,\n geoLocation,\n localDBDataPullService,\n localDBManagementService,\n mediaCapture,\n processManagementService,\n securityService,\n networkService,\n vibrateService,\n locationAccuracyService,\n diagnosticService);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}