@wavemaker/app-ng-runtime 11.4.2-rc.5378 → 11.4.2-rc.5379

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 (44) hide show
  1. app-ng-runtime/components/input/calendar/bundles/index.umd.js +11 -1
  2. app-ng-runtime/components/input/calendar/bundles/index.umd.js.map +1 -1
  3. app-ng-runtime/components/input/calendar/calendar.component.d.ts +4 -2
  4. app-ng-runtime/components/input/calendar/esm2015/calendar.component.js +12 -2
  5. app-ng-runtime/components/input/calendar/fesm2015/index.js +11 -1
  6. app-ng-runtime/components/input/calendar/fesm2015/index.js.map +1 -1
  7. app-ng-runtime/components/input/calendar/index.metadata.json +1 -1
  8. app-ng-runtime/components/input/default/bundles/index.umd.js +8 -0
  9. app-ng-runtime/components/input/default/bundles/index.umd.js.map +1 -1
  10. app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -2
  11. app-ng-runtime/components/input/default/esm2015/dataset-aware-form.component.js +9 -1
  12. app-ng-runtime/components/input/default/fesm2015/index.js +8 -0
  13. app-ng-runtime/components/input/default/fesm2015/index.js.map +1 -1
  14. app-ng-runtime/components/input/default/index.metadata.json +1 -1
  15. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -0
  16. app-ng-runtime/components/input/epoch/bundles/index.umd.js +21 -23
  17. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  18. app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +17 -19
  19. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +2 -2
  20. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time-picker.component.js +10 -10
  21. app-ng-runtime/components/input/epoch/esm2015/date-time/date-time.component.js +2 -2
  22. app-ng-runtime/components/input/epoch/esm2015/time/time.component.js +2 -2
  23. app-ng-runtime/components/input/epoch/fesm2015/index.js +28 -30
  24. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  25. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  26. app-ng-runtime/core/bundles/index.umd.js +1 -1
  27. app-ng-runtime/core/bundles/index.umd.js.map +1 -1
  28. app-ng-runtime/core/esm2015/utils/utils.js +2 -2
  29. app-ng-runtime/core/fesm2015/index.js +1 -1
  30. app-ng-runtime/core/fesm2015/index.js.map +1 -1
  31. app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +1 -1
  32. app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js.map +1 -1
  33. app-ng-runtime/mobile/components/basic/default/esm2015/image-cache/image-cache.directive.js +2 -2
  34. app-ng-runtime/mobile/components/basic/default/fesm2015/index.js +1 -1
  35. app-ng-runtime/mobile/components/basic/default/fesm2015/index.js.map +1 -1
  36. app-ng-runtime/mobile/components/basic/default/index.metadata.json +1 -1
  37. app-ng-runtime/package.json +1 -1
  38. app-ng-runtime/runtime/base/bundles/index.umd.js +35 -2
  39. app-ng-runtime/runtime/base/bundles/index.umd.js.map +1 -1
  40. app-ng-runtime/runtime/base/esm2015/services/i18n.service.js +35 -3
  41. app-ng-runtime/runtime/base/fesm2015/index.js +34 -2
  42. app-ng-runtime/runtime/base/fesm2015/index.js.map +1 -1
  43. app-ng-runtime/runtime/base/index.metadata.json +1 -1
  44. app-ng-runtime/runtime/base/services/i18n.service.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../projects/mobile/components/basic/default/src/anchor/anchor.directive.ts","../../../../../../projects/mobile/components/basic/default/src/app-update/app-update.component.ts","../../../../../../projects/mobile/components/basic/default/src/file-browser/file-browser.component.ts","../../../../../../projects/mobile/components/basic/default/src/file-browser/file-selector.service.ts","../../../../../../projects/mobile/components/basic/default/src/image-cache/image-cache.directive.ts","../../../../../../projects/mobile/components/basic/default/src/network-info-toaster/network-info-toaster.props.ts","../../../../../../projects/mobile/components/basic/default/src/network-info-toaster/network-info-toaster.component.ts","../../../../../../projects/mobile/components/basic/default/src/process-manager/process-manager.component.ts","../../../../../../projects/mobile/components/basic/default/src/process-manager/process-management.service.ts","../../../../../../projects/mobile/components/basic/default/src/basic.module.ts","../../../../../../projects/mobile/components/basic/default/src/index.ts"],"sourcesContent":["import { Directive, HostListener, Inject } from '@angular/core';\n\nimport { WidgetRef } from '@wm/components/base';\n\ndeclare const _;\ndeclare const cordova;\n\n@Directive({\n selector: '[wmAnchor]'\n})\nexport class AnchorDirective {\n\n constructor(@Inject(WidgetRef) private widget: any) { }\n\n @HostListener('click')\n onClick () {\n let href = this.widget.hyperlink;\n if (href) {\n if (href.indexOf(':') >= 0 && !(_.startsWith(href, 'http://') || _.startsWith(href, 'https://'))) {\n return;\n } else if (_.startsWith(href, '#')) {\n window.location.href = window.location.origin + window.location.pathname + href;\n return;\n } else if (_.startsWith(href, '//')) {\n href = 'https:' + href;\n }\n if (window['cordova']) {\n window.open(href, this.widget.target);\n }\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, ElementRef } from '@angular/core';\n\nimport { File } from '@awesome-cordova-plugins/file/ngx';\nimport { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';\n\nimport { addClass, hasCordova, noop, removeClass, setCSS } from '@wm/core';\nimport { DeviceFileDownloadService, DeviceService } from '@wm/mobile/core';\n\ndeclare const cordova;\n\nconst DEFAULT_CLS = 'app-update-dialog modal fade in hidden';\n\nconst AUTO_UPDATE_FILENAME = 'app-auto-update.apk';\n\n@Component({\n selector: '[wmAppUpdate]',\n templateUrl: './app-update.component.html'\n})\nexport class AppUpdateComponent {\n\n public downloadProgress = 0;\n public downloading = false;\n public message = 'There is an update available. Would you like to update the app?';\n\n private _buildMeta: any;\n\n constructor(\n private deviceService: DeviceService,\n private fileDownloadService: DeviceFileDownloadService,\n private elRef: ElementRef,\n private file: File,\n private fileOpener: FileOpener,\n private http: HttpClient\n ) {\n\n addClass(this.elRef.nativeElement, DEFAULT_CLS);\n setCSS(this.elRef.nativeElement, 'display', 'block');\n if (hasCordova()) {\n this.getBuildMeta().then(buildMeta => {\n if (buildMeta && buildMeta.buildMode === 'DEVELOPMENT_MODE') {\n this.file.removeFile(cordova.file.externalApplicationStorageDirectory, AUTO_UPDATE_FILENAME).catch(noop);\n this.checkForUpdate()\n .then(this.getUserConfirmation.bind(this), noop);\n }\n });\n }\n }\n\n public cancel() {\n addClass(this.elRef.nativeElement, 'hidden');\n }\n\n public installLatestVersion() {\n const apkFile = cordova.file.externalApplicationStorageDirectory + AUTO_UPDATE_FILENAME,\n downloadLink = `${this._buildMeta.host}/appBuild/rest/mobileBuilds/android/download?token=${this._buildMeta.token}&buildNumber=${this._buildMeta.latestBuildNumber}&fileName=${AUTO_UPDATE_FILENAME}&releaseVersion=${this._buildMeta.platformVersion}`,\n progressObserver = { next: e => { this.downloadProgress = (e.loaded / e.total) * 100; }, error: null, complete: null};\n this.fileDownloadService.download(\n downloadLink,\n false,\n cordova.file.externalApplicationStorageDirectory,\n AUTO_UPDATE_FILENAME,\n progressObserver).then(() => {\n this.fileOpener.open(apkFile, 'application/vnd.android.package-archive');\n }, function () {\n this.message = 'Failed to download latest version.';\n });\n this.message = `Downloading the latest version [${this._buildMeta.latestVersion}].`;\n this.downloading = true;\n }\n\n private checkForUpdate() {\n return new Promise((resolve, reject) => {\n this.http.get(`${this._buildMeta.host}/appBuild/rest/mobileBuilds/latest_build?token=${this._buildMeta.token}&releaseVersion=${this._buildMeta.platformVersion}`)\n .toPromise()\n .then((response: any) => {\n const latestBuildNumber = response.success.body.buildNumber,\n latestVersion = response.success.body.version;\n if (this._buildMeta.buildNumber < latestBuildNumber) {\n this._buildMeta.latestBuildNumber = latestBuildNumber;\n this._buildMeta.latestVersion = latestVersion;\n resolve(latestBuildNumber);\n } else {\n reject();\n }\n }, reject);\n });\n }\n\n private getBuildMeta() {\n if (!this._buildMeta) {\n return this.file.readAsText(cordova.file.applicationDirectory + 'www/', 'build_meta.json')\n .then(data => {\n this._buildMeta = JSON.parse(data);\n return this._buildMeta;\n }, noop);\n }\n return Promise.resolve(this._buildMeta);\n }\n\n private getUserConfirmation() {\n this.downloadProgress = 0;\n this.downloading = false;\n this.message = 'There is an update available. Would you like to update the app?';\n removeClass(this.elRef.nativeElement, 'hidden');\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\n\nimport { $appDigest, isIos } from '@wm/core';\nimport { DeviceService } from '@wm/mobile/core';\n\ndeclare const _;\ndeclare const cordova;\ndeclare const resolveLocalFileSystemURL;\n\nexport interface File {\n name: string;\n size: number;\n isSelected: boolean;\n file: (success: (navtiveFileObject: any) => void, failure: (message: any) => any) => void;\n}\n\nexport interface Folder {\n name: string;\n files: File[];\n folders: Folder[];\n parent: Folder;\n}\n\n@Component({\n selector: '[wmMobileFileBrowser]',\n templateUrl: './file-browser.component.html'\n})\nexport class FileBrowserComponent implements OnDestroy {\n\n public currentFolder: Folder;\n @Input() public fileTypeToSelect: string;\n @Input() public multiple: boolean;\n public selectedFiles: File[] = [];\n @Output('submit') submitEmitter = new EventEmitter();\n public isVisible: boolean;\n\n private backButtonListenerDeregister: any;\n\n constructor(private deviceService: DeviceService) {}\n\n\n public getFileExtension(fileName: string): string {\n const extIndex = fileName ? fileName.lastIndexOf('.') : -1;\n if (extIndex > 0) {\n return fileName.substring(extIndex + 1);\n }\n return '';\n }\n\n public ngOnDestroy() {\n if (this.backButtonListenerDeregister) {\n this.backButtonListenerDeregister();\n }\n }\n\n public onFileClick(file): void {\n if (file.isFile) {\n if (file.isSelected) {\n this.deselectFile(file);\n } else {\n this.selectFile(file);\n }\n } else {\n this.goToFolder(file);\n }\n }\n\n public set show(flag: boolean) {\n let rootDir = cordova.file.externalRootDirectory;\n this.isVisible = flag;\n if (flag) {\n if (!this.currentFolder) {\n if (isIos()) {\n rootDir = cordova.file.documentsDirectory;\n }\n resolveLocalFileSystemURL(rootDir, root => this.goToFolder(root));\n }\n this.backButtonListenerDeregister = this.deviceService.onBackButtonTap(() => {\n if (this.isVisible) {\n if (this.currentFolder.parent) {\n this.onFileClick(this.currentFolder.parent);\n } else {\n this.isVisible = false;\n }\n $appDigest();\n return false;\n }\n });\n } else if (this.backButtonListenerDeregister) {\n this.backButtonListenerDeregister();\n }\n }\n\n public submit() {\n const files = [];\n this.loadFileSize(this.selectedFiles).then(() => {\n _.forEach(this.selectedFiles, function (f) {\n f.isSelected = false;\n files.push({ path: f.nativeURL,\n name: f.name,\n size : f.size});\n });\n this.selectedFiles = [];\n this.isVisible = false;\n this.submitEmitter.next({files: files});\n });\n }\n\n private deselectFile(file: File): void {\n _.remove(this.selectedFiles, file);\n file.isSelected = false;\n }\n\n private goToFolder(folder: Folder): void {\n if (!folder.files) {\n this.loadFolder(folder, this.fileTypeToSelect)\n .then(files => {\n folder.files = files;\n folder.parent = this.currentFolder;\n this.currentFolder = folder;\n });\n } else {\n this.currentFolder = folder;\n }\n }\n\n private loadFileSize(files: File[]): Promise<void[]> {\n return Promise.all(files.map(f => {\n return new Promise<void>((resolve, reject) => {\n f.file(o => {\n f.size = o.size;\n resolve();\n }, reject);\n });\n }));\n }\n\n private loadFolder(folder: any, fileTypeToSelect: string): Promise<File[]> {\n return new Promise((resolve, reject) => {\n let fileTypeToShow;\n folder.createReader().readEntries((entries: File[]) => {\n if (!_.isEmpty(fileTypeToSelect)) {\n fileTypeToShow = _.split(fileTypeToSelect, ',');\n entries = _.filter(entries, e => {\n return !e.isFile || _.findIndex(fileTypeToShow, ext => _.endsWith(e.name, '.' + ext)) >= 0;\n });\n }\n resolve(_.sortBy(entries, e => (e.isFile ? '1_' : '0_') + e.name.toLowerCase()));\n }, reject);\n });\n }\n\n\n private refreshFolder(): Promise<any> {\n return this.loadFolder(this.currentFolder, this.fileTypeToSelect)\n .then(files => this.currentFolder.files = files);\n }\n\n private selectFile(file): void {\n if (!this.multiple && this.selectedFiles.length > 0) {\n this.selectedFiles[0].isSelected = false;\n this.selectedFiles = [];\n }\n this.selectedFiles.push(file);\n file.isSelected = true;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { convertToBlob, AbstractSpinnerService } from '@wm/core';\nimport { FileBrowserComponent } from './file-browser.component';\n\ndeclare const _;\ndeclare const window, cordova;\n\nexport interface FileContent {\n name: string;\n path: string;\n blob: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FileSelectorService {\n static readonly SERVICE_NAME = 'FileSelectorService';\n\n private fileBrowserComponent: FileBrowserComponent;\n\n public constructor(private spinnerService: AbstractSpinnerService) {}\n\n public selectAudio(multiple = false): Promise<any> {\n var spinnerId = this.spinnerService.show(\"\");\n return new Promise<string[]>((resolve, reject) => {\n cordova.wavemaker.filePicker.selectAudio(multiple, resolve, reject);\n }).then(files => this.getFiles(files))\n .then((paths) => {\n this.spinnerService.hide(spinnerId);\n return paths;\n });\n }\n\n public setFileBrowser(f: FileBrowserComponent) {\n this.fileBrowserComponent = f;\n }\n\n public selectFiles(multiple = false, fileTypeToSelect?: string): Promise<FileContent[]> {\n var spinnerId = this.spinnerService.show(\"\");\n return new Promise<string[]>((resolve, reject) => {\n cordova.wavemaker.filePicker.selectFiles(multiple, resolve, reject);\n }).then(files => this.getFiles(files))\n .then((paths) => {\n this.spinnerService.hide(spinnerId);\n return paths;\n });\n }\n\n public selectImages(multiple = false): Promise<FileContent[]> {\n var spinnerId = this.spinnerService.show(\"\");\n return new Promise<string[]>((resolve, reject) => {\n cordova.wavemaker.filePicker.selectImage(multiple, resolve, reject);\n }).then(files => this.getFiles(files))\n .then((paths) => {\n this.spinnerService.hide(spinnerId);\n return paths;\n });\n }\n\n public selectVideos(multiple = false): Promise<FileContent[]> {\n var spinnerId = this.spinnerService.show(\"\");\n return new Promise<string[]>((resolve, reject) => {\n cordova.wavemaker.filePicker.selectVideo(multiple, resolve, reject);\n }).then(files => this.getFiles(files))\n .then((paths) => {\n this.spinnerService.hide(spinnerId);\n return paths;\n });\n\n }\n\n /**\n * Converts the file to blob using filepath\n * @param filePaths, array of file paths\n * @returns fileObj having name, path, content\n */\n private getFiles(filePaths: string[]): Promise<FileContent[]> {\n return Promise.all(_.map(filePaths, filePath => {\n if (filePath.indexOf('://') < 0) {\n filePath = 'file://' + filePath;\n }\n return convertToBlob(filePath)\n })).then(filesList => {\n return _.map(filesList, fileObj => {\n const path = fileObj.filepath;\n return {\n name: path.split('/').pop(),\n path: path,\n content: fileObj.blob,\n size: fileObj.blob.size\n };\n });\n });\n }\n}\n","import { Directive, DoCheck, Inject, Input, Self } from '@angular/core';\n\nimport { File } from '@awesome-cordova-plugins/file/ngx';\n\nimport { WidgetRef } from '@wm/components/base';\nimport { hasCordova, noop, transformFileURI } from '@wm/core';\nimport { DeviceFileCacheService } from '@wm/mobile/core';\n\nconst DEFAULT_IMAGE = 'resources/images/imagelists/default-image.png';\n\n@Directive({\n selector: '[wmImageCache]'\n})\nexport class ImageCacheDirective implements DoCheck {\n\n private _cacheUrl;\n private _isEnabled = false;\n private _lastUrl = '';\n\n constructor(\n @Self() @Inject(WidgetRef) private componentInstance,\n private deviceFileCacheService: DeviceFileCacheService,\n private file: File\n\n ) {}\n\n public ngDoCheck() {\n if (this.componentInstance.imgSource\n && this.componentInstance.imgSource.startsWith('http')) {\n if (this._lastUrl !== this.componentInstance.imgSource) {\n this._lastUrl = this.componentInstance.imgSource;\n this.componentInstance.imgSource = DEFAULT_IMAGE;\n this.getLocalPath(this._lastUrl).then((localPath) => {\n this._cacheUrl = transformFileURI(localPath);\n this.componentInstance.imgSource = this._cacheUrl;\n });\n } else if (this._cacheUrl) {\n this.componentInstance.imgSource = this._cacheUrl;\n }\n }\n }\n\n @Input()\n set wmImageCache(val: string) {\n this._isEnabled = (hasCordova() && val === 'true');\n }\n\n private getLocalPath(val: string) {\n if (hasCordova() && val && val.indexOf('{{') < 0 && val.startsWith('http')) {\n return this.deviceFileCacheService.getLocalPath(val, true, true, !this._isEnabled)\n .catch(noop);\n }\n return Promise.resolve(val);\n }\n}\n","import { register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-network-info-toaster',\n new Map(\n []\n )\n );\n};\n","import { Component, Injector, OnDestroy } from '@angular/core';\n\nimport { IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './network-info-toaster.props';\nimport { $appDigest, App } from '@wm/core';\nimport { NetworkService } from '@wm/mobile/core';\n\nconst DEFAULT_CLS = 'network-info-toaster';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-network-info-toaster', hostClass: DEFAULT_CLS};\n\nexport enum NetworkState {\n CONNECTED = 1,\n CONNECTING = 0,\n SERVICE_AVAILABLE_BUT_NOT_CONNECTED = -1,\n NETWORK_AVAIABLE_BUT_SERVICE_NOT_AVAILABLE = -2,\n NETWORK_NOT_AVAIABLE = -3\n}\n\n\n@Component({\n selector: '[wmNetworkInfoToaster]',\n templateUrl: './network-info-toaster.component.html',\n providers: [\n provideAsWidgetRef(NetworkInfoToasterComponent)\n ]\n})\nexport class NetworkInfoToasterComponent extends StylableComponent implements OnDestroy {\n static initializeProps = registerProps();\n\n public showMessage = false;\n public isServiceConnected = false;\n public isServiceAvailable = false;\n public networkState: NetworkState;\n\n private _listenerDestroyer;\n\n constructor(private networkService: NetworkService, app: App, inj: Injector) {\n super(inj, WIDGET_CONFIG);\n styler(this.$element, this);\n this.isServiceAvailable = <boolean> this.networkService.isAvailable();\n this.isServiceConnected = this.networkService.isConnected();\n this._listenerDestroyer = app.subscribe('onNetworkStateChange', (data) => {\n this.renderMessage(data);\n });\n this.renderMessage();\n }\n\n private renderMessage(data?) {\n data = data || this.networkService.getState();\n const oldState = this.networkState;\n let autoHide = false;\n if (data.noServiceRequired) {\n return false;\n }\n if (data.isConnected) {\n this.networkState = NetworkState.CONNECTED;\n autoHide = true;\n } else if (data.isConnecting) {\n this.networkState = NetworkState.CONNECTING;\n } else if (data.isServiceAvailable) {\n this.networkState = NetworkState.SERVICE_AVAILABLE_BUT_NOT_CONNECTED;\n } else if (data.isNetworkAvailable && !data.isServiceAvailable) {\n this.networkState = NetworkState.NETWORK_AVAIABLE_BUT_SERVICE_NOT_AVAILABLE;\n } else {\n this.networkState = NetworkState.NETWORK_NOT_AVAIABLE;\n }\n this.showMessage = (!(oldState === undefined && data.isConnected) && oldState !== this.networkState);\n if (autoHide && this.showMessage) {\n setTimeout(() => {\n this.showMessage = false;\n $appDigest();\n }, 5000);\n }\n }\n\n public connect() {\n this.networkService.connect();\n }\n\n public hideMessage() {\n this.showMessage = false;\n }\n\n public ngOnDestroy() {\n this._listenerDestroyer();\n super.ngOnDestroy();\n }\n}\n","import { Component, DoCheck, ElementRef } from '@angular/core';\n\nimport { addClass, removeAttr, setAttr } from '@wm/core';\nimport { provideAsWidgetRef } from '@wm/components/base';\n\ndeclare const _;\n\nexport interface Process {\n max: number;\n min: number;\n name: string;\n onStop: () => void;\n progressLabel: string;\n show: boolean;\n stopButtonLabel: string;\n value: number;\n}\n\nexport interface ProcessApi {\n destroy: () => Promise<void>;\n get: (propertyName: string) => string;\n set: (propertyName: string, propertyValue: any) => void;\n}\n\nconst MAX_PROCESS = 3;\n\n@Component({\n selector: '[wmProcessManager]',\n templateUrl: './process-manager.component.html',\n providers: [\n provideAsWidgetRef(ProcessManagerComponent)\n ]\n})\nexport class ProcessManagerComponent implements DoCheck {\n\n private isVisible = true;\n\n public instances: Process[] = [];\n public queue = [];\n\n constructor(private el: ElementRef) {\n addClass(this.el.nativeElement, 'app-global-progress-bar modal default');\n }\n\n public createInstance(name: string, min = 0, max = 100): Promise<ProcessApi> {\n const instance: Process = {\n max: max,\n min: min,\n name: name,\n onStop: null,\n progressLabel: '',\n show: min !== max,\n stopButtonLabel : 'Cancel',\n value: 0\n };\n const api = {\n get: (propertyName) => instance[propertyName],\n set: (propertyName, propertyValue) => this.setInstaceProperty(instance, propertyName, propertyValue),\n destroy: () => this.removeInstance(instance)\n };\n return this.addToQueue(instance).then(() => api);\n }\n\n public getVisibleInstances() {\n return this.instances.filter(i => i.show);\n }\n\n public ngDoCheck() {\n const hasInstancesToShow = !!this.instances.find(i => i.show);\n if (this.isVisible && !hasInstancesToShow) {\n setAttr(this.el.nativeElement, 'hidden', 'true');\n this.isVisible = false;\n } else if (!this.isVisible && hasInstancesToShow) {\n removeAttr(this.el.nativeElement, 'hidden');\n this.isVisible = true;\n }\n }\n\n private addToQueue(instance): Promise<void> {\n return new Promise( resolve => {\n this.queue.push(() => {\n if (this.instances.length < MAX_PROCESS) {\n this.instances.push(instance);\n resolve(instance);\n } else {\n return false;\n }\n });\n this.flushQueue();\n });\n }\n\n private flushQueue() {\n if (this.queue.length > 0 && this.queue[0]() !== false) {\n this.queue.shift();\n this.flushQueue();\n }\n }\n\n private removeInstance(instance: Process): Promise<void> {\n return new Promise( resolve => {\n setTimeout(() => {\n _.remove(this.instances, instance);\n this.flushQueue();\n resolve();\n }, 1000);\n });\n }\n\n private setInstaceProperty(instance: Process, propertyName: string, propertyValue: any) {\n if (propertyName === 'value') {\n if (instance.value >= instance.max) {\n propertyValue = instance.max;\n }\n instance.value = propertyValue;\n instance.progressLabel = instance.value + '/' + instance.max;\n } else if (propertyName === 'onStop' && _.isFunction(propertyValue)) {\n instance.onStop = () => {\n propertyValue();\n return this.removeInstance(instance);\n };\n } else {\n instance[propertyName] = propertyValue;\n }\n instance.show = instance.min !== instance.max;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ProcessManagerComponent, ProcessApi } from './process-manager.component';\n\n@Injectable({ providedIn: 'root' })\nexport class ProcessManagementService {\n static readonly SERVICE_NAME = 'ProcessManagementService';\n\n private processManagerComponent: ProcessManagerComponent;\n\n setUIComponent(processManagerComponent: ProcessManagerComponent) {\n this.processManagerComponent = processManagerComponent;\n }\n\n /**\n * Returns a promise that will be resolved when an instance is available. At max, 3 instances can only run\n * in parallel and rest has to wait till a process is completed.\n *\n * A progress instance has the following properties.\n *\n * 1) min {number} minimum value, default value is 0 </br>\n * 2) max {number} maximum value, default value is 100 </br>\n * 3) value {number} progress value </br>\n * 4) progressLabel {string} process name </br>\n * 5) stopButtonLabel {string} label for stop button, default value is 'Cancel' </br>\n * 6) onStop {function} function to invoke when stop button is clicked. </br>\n *\n * A progress instance has 3 methods </br>\n * 1) set(property, value) -- sets value to the corresponding property </br>\n * 2) get(property) -- returns property value </br>\n * 3) destroy() -- closes the instance. </br>\n *\n * A progress instance will get auto closed when value and max are equal or when destroy method is called.\n *\n * @param {string} name name of the process whose progress is going to be shown\n * @param {number} min minimum value\n * @param {number} max maximum value\n *\n * @returns {object} a promise\n */\n public createInstance(name: string, min?: number, max?: number): Promise<ProcessApi> {\n if (!this.processManagerComponent) {\n return Promise.reject('ProcessManagerComponent is missing');\n }\n return this.processManagerComponent.createInstance(name, min, max);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { ProgressModule } from '@wm/components/basic/progress';\n\nimport { AnchorDirective } from './anchor/anchor.directive';\nimport { AppUpdateComponent } from './app-update/app-update.component';\nimport { FileBrowserComponent } from './file-browser/file-browser.component';\nimport { ImageCacheDirective } from './image-cache/image-cache.directive';\nimport { NetworkInfoToasterComponent } from './network-info-toaster/network-info-toaster.component';\nimport { ProcessManagerComponent } from './process-manager/process-manager.component';\n\nconst components = [\n AnchorDirective,\n AppUpdateComponent,\n FileBrowserComponent,\n ImageCacheDirective,\n NetworkInfoToasterComponent,\n ProcessManagerComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ProgressModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components],\n entryComponents: []\n})\nexport class BasicModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {registerProps as ɵa} from './network-info-toaster/network-info-toaster.props';"],"names":["DEFAULT_CLS"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../projects/mobile/components/basic/default/src/anchor/anchor.directive.ts","../../../../../../projects/mobile/components/basic/default/src/app-update/app-update.component.ts","../../../../../../projects/mobile/components/basic/default/src/file-browser/file-browser.component.ts","../../../../../../projects/mobile/components/basic/default/src/file-browser/file-selector.service.ts","../../../../../../projects/mobile/components/basic/default/src/image-cache/image-cache.directive.ts","../../../../../../projects/mobile/components/basic/default/src/network-info-toaster/network-info-toaster.props.ts","../../../../../../projects/mobile/components/basic/default/src/network-info-toaster/network-info-toaster.component.ts","../../../../../../projects/mobile/components/basic/default/src/process-manager/process-manager.component.ts","../../../../../../projects/mobile/components/basic/default/src/process-manager/process-management.service.ts","../../../../../../projects/mobile/components/basic/default/src/basic.module.ts","../../../../../../projects/mobile/components/basic/default/src/index.ts"],"sourcesContent":["import { Directive, HostListener, Inject } from '@angular/core';\n\nimport { WidgetRef } from '@wm/components/base';\n\ndeclare const _;\ndeclare const cordova;\n\n@Directive({\n selector: '[wmAnchor]'\n})\nexport class AnchorDirective {\n\n constructor(@Inject(WidgetRef) private widget: any) { }\n\n @HostListener('click')\n onClick () {\n let href = this.widget.hyperlink;\n if (href) {\n if (href.indexOf(':') >= 0 && !(_.startsWith(href, 'http://') || _.startsWith(href, 'https://'))) {\n return;\n } else if (_.startsWith(href, '#')) {\n window.location.href = window.location.origin + window.location.pathname + href;\n return;\n } else if (_.startsWith(href, '//')) {\n href = 'https:' + href;\n }\n if (window['cordova']) {\n window.open(href, this.widget.target);\n }\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Component, ElementRef } from '@angular/core';\n\nimport { File } from '@awesome-cordova-plugins/file/ngx';\nimport { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';\n\nimport { addClass, hasCordova, noop, removeClass, setCSS } from '@wm/core';\nimport { DeviceFileDownloadService, DeviceService } from '@wm/mobile/core';\n\ndeclare const cordova;\n\nconst DEFAULT_CLS = 'app-update-dialog modal fade in hidden';\n\nconst AUTO_UPDATE_FILENAME = 'app-auto-update.apk';\n\n@Component({\n selector: '[wmAppUpdate]',\n templateUrl: './app-update.component.html'\n})\nexport class AppUpdateComponent {\n\n public downloadProgress = 0;\n public downloading = false;\n public message = 'There is an update available. Would you like to update the app?';\n\n private _buildMeta: any;\n\n constructor(\n private deviceService: DeviceService,\n private fileDownloadService: DeviceFileDownloadService,\n private elRef: ElementRef,\n private file: File,\n private fileOpener: FileOpener,\n private http: HttpClient\n ) {\n\n addClass(this.elRef.nativeElement, DEFAULT_CLS);\n setCSS(this.elRef.nativeElement, 'display', 'block');\n if (hasCordova()) {\n this.getBuildMeta().then(buildMeta => {\n if (buildMeta && buildMeta.buildMode === 'DEVELOPMENT_MODE') {\n this.file.removeFile(cordova.file.externalApplicationStorageDirectory, AUTO_UPDATE_FILENAME).catch(noop);\n this.checkForUpdate()\n .then(this.getUserConfirmation.bind(this), noop);\n }\n });\n }\n }\n\n public cancel() {\n addClass(this.elRef.nativeElement, 'hidden');\n }\n\n public installLatestVersion() {\n const apkFile = cordova.file.externalApplicationStorageDirectory + AUTO_UPDATE_FILENAME,\n downloadLink = `${this._buildMeta.host}/appBuild/rest/mobileBuilds/android/download?token=${this._buildMeta.token}&buildNumber=${this._buildMeta.latestBuildNumber}&fileName=${AUTO_UPDATE_FILENAME}&releaseVersion=${this._buildMeta.platformVersion}`,\n progressObserver = { next: e => { this.downloadProgress = (e.loaded / e.total) * 100; }, error: null, complete: null};\n this.fileDownloadService.download(\n downloadLink,\n false,\n cordova.file.externalApplicationStorageDirectory,\n AUTO_UPDATE_FILENAME,\n progressObserver).then(() => {\n this.fileOpener.open(apkFile, 'application/vnd.android.package-archive');\n }, function () {\n this.message = 'Failed to download latest version.';\n });\n this.message = `Downloading the latest version [${this._buildMeta.latestVersion}].`;\n this.downloading = true;\n }\n\n private checkForUpdate() {\n return new Promise((resolve, reject) => {\n this.http.get(`${this._buildMeta.host}/appBuild/rest/mobileBuilds/latest_build?token=${this._buildMeta.token}&releaseVersion=${this._buildMeta.platformVersion}`)\n .toPromise()\n .then((response: any) => {\n const latestBuildNumber = response.success.body.buildNumber,\n latestVersion = response.success.body.version;\n if (this._buildMeta.buildNumber < latestBuildNumber) {\n this._buildMeta.latestBuildNumber = latestBuildNumber;\n this._buildMeta.latestVersion = latestVersion;\n resolve(latestBuildNumber);\n } else {\n reject();\n }\n }, reject);\n });\n }\n\n private getBuildMeta() {\n if (!this._buildMeta) {\n return this.file.readAsText(cordova.file.applicationDirectory + 'www/', 'build_meta.json')\n .then(data => {\n this._buildMeta = JSON.parse(data);\n return this._buildMeta;\n }, noop);\n }\n return Promise.resolve(this._buildMeta);\n }\n\n private getUserConfirmation() {\n this.downloadProgress = 0;\n this.downloading = false;\n this.message = 'There is an update available. Would you like to update the app?';\n removeClass(this.elRef.nativeElement, 'hidden');\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\n\nimport { $appDigest, isIos } from '@wm/core';\nimport { DeviceService } from '@wm/mobile/core';\n\ndeclare const _;\ndeclare const cordova;\ndeclare const resolveLocalFileSystemURL;\n\nexport interface File {\n name: string;\n size: number;\n isSelected: boolean;\n file: (success: (navtiveFileObject: any) => void, failure: (message: any) => any) => void;\n}\n\nexport interface Folder {\n name: string;\n files: File[];\n folders: Folder[];\n parent: Folder;\n}\n\n@Component({\n selector: '[wmMobileFileBrowser]',\n templateUrl: './file-browser.component.html'\n})\nexport class FileBrowserComponent implements OnDestroy {\n\n public currentFolder: Folder;\n @Input() public fileTypeToSelect: string;\n @Input() public multiple: boolean;\n public selectedFiles: File[] = [];\n @Output('submit') submitEmitter = new EventEmitter();\n public isVisible: boolean;\n\n private backButtonListenerDeregister: any;\n\n constructor(private deviceService: DeviceService) {}\n\n\n public getFileExtension(fileName: string): string {\n const extIndex = fileName ? fileName.lastIndexOf('.') : -1;\n if (extIndex > 0) {\n return fileName.substring(extIndex + 1);\n }\n return '';\n }\n\n public ngOnDestroy() {\n if (this.backButtonListenerDeregister) {\n this.backButtonListenerDeregister();\n }\n }\n\n public onFileClick(file): void {\n if (file.isFile) {\n if (file.isSelected) {\n this.deselectFile(file);\n } else {\n this.selectFile(file);\n }\n } else {\n this.goToFolder(file);\n }\n }\n\n public set show(flag: boolean) {\n let rootDir = cordova.file.externalRootDirectory;\n this.isVisible = flag;\n if (flag) {\n if (!this.currentFolder) {\n if (isIos()) {\n rootDir = cordova.file.documentsDirectory;\n }\n resolveLocalFileSystemURL(rootDir, root => this.goToFolder(root));\n }\n this.backButtonListenerDeregister = this.deviceService.onBackButtonTap(() => {\n if (this.isVisible) {\n if (this.currentFolder.parent) {\n this.onFileClick(this.currentFolder.parent);\n } else {\n this.isVisible = false;\n }\n $appDigest();\n return false;\n }\n });\n } else if (this.backButtonListenerDeregister) {\n this.backButtonListenerDeregister();\n }\n }\n\n public submit() {\n const files = [];\n this.loadFileSize(this.selectedFiles).then(() => {\n _.forEach(this.selectedFiles, function (f) {\n f.isSelected = false;\n files.push({ path: f.nativeURL,\n name: f.name,\n size : f.size});\n });\n this.selectedFiles = [];\n this.isVisible = false;\n this.submitEmitter.next({files: files});\n });\n }\n\n private deselectFile(file: File): void {\n _.remove(this.selectedFiles, file);\n file.isSelected = false;\n }\n\n private goToFolder(folder: Folder): void {\n if (!folder.files) {\n this.loadFolder(folder, this.fileTypeToSelect)\n .then(files => {\n folder.files = files;\n folder.parent = this.currentFolder;\n this.currentFolder = folder;\n });\n } else {\n this.currentFolder = folder;\n }\n }\n\n private loadFileSize(files: File[]): Promise<void[]> {\n return Promise.all(files.map(f => {\n return new Promise<void>((resolve, reject) => {\n f.file(o => {\n f.size = o.size;\n resolve();\n }, reject);\n });\n }));\n }\n\n private loadFolder(folder: any, fileTypeToSelect: string): Promise<File[]> {\n return new Promise((resolve, reject) => {\n let fileTypeToShow;\n folder.createReader().readEntries((entries: File[]) => {\n if (!_.isEmpty(fileTypeToSelect)) {\n fileTypeToShow = _.split(fileTypeToSelect, ',');\n entries = _.filter(entries, e => {\n return !e.isFile || _.findIndex(fileTypeToShow, ext => _.endsWith(e.name, '.' + ext)) >= 0;\n });\n }\n resolve(_.sortBy(entries, e => (e.isFile ? '1_' : '0_') + e.name.toLowerCase()));\n }, reject);\n });\n }\n\n\n private refreshFolder(): Promise<any> {\n return this.loadFolder(this.currentFolder, this.fileTypeToSelect)\n .then(files => this.currentFolder.files = files);\n }\n\n private selectFile(file): void {\n if (!this.multiple && this.selectedFiles.length > 0) {\n this.selectedFiles[0].isSelected = false;\n this.selectedFiles = [];\n }\n this.selectedFiles.push(file);\n file.isSelected = true;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { convertToBlob, AbstractSpinnerService } from '@wm/core';\nimport { FileBrowserComponent } from './file-browser.component';\n\ndeclare const _;\ndeclare const window, cordova;\n\nexport interface FileContent {\n name: string;\n path: string;\n blob: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FileSelectorService {\n static readonly SERVICE_NAME = 'FileSelectorService';\n\n private fileBrowserComponent: FileBrowserComponent;\n\n public constructor(private spinnerService: AbstractSpinnerService) {}\n\n public selectAudio(multiple = false): Promise<any> {\n var spinnerId = this.spinnerService.show(\"\");\n return new Promise<string[]>((resolve, reject) => {\n cordova.wavemaker.filePicker.selectAudio(multiple, resolve, reject);\n }).then(files => this.getFiles(files))\n .then((paths) => {\n this.spinnerService.hide(spinnerId);\n return paths;\n });\n }\n\n public setFileBrowser(f: FileBrowserComponent) {\n this.fileBrowserComponent = f;\n }\n\n public selectFiles(multiple = false, fileTypeToSelect?: string): Promise<FileContent[]> {\n var spinnerId = this.spinnerService.show(\"\");\n return new Promise<string[]>((resolve, reject) => {\n cordova.wavemaker.filePicker.selectFiles(multiple, resolve, reject);\n }).then(files => this.getFiles(files))\n .then((paths) => {\n this.spinnerService.hide(spinnerId);\n return paths;\n });\n }\n\n public selectImages(multiple = false): Promise<FileContent[]> {\n var spinnerId = this.spinnerService.show(\"\");\n return new Promise<string[]>((resolve, reject) => {\n cordova.wavemaker.filePicker.selectImage(multiple, resolve, reject);\n }).then(files => this.getFiles(files))\n .then((paths) => {\n this.spinnerService.hide(spinnerId);\n return paths;\n });\n }\n\n public selectVideos(multiple = false): Promise<FileContent[]> {\n var spinnerId = this.spinnerService.show(\"\");\n return new Promise<string[]>((resolve, reject) => {\n cordova.wavemaker.filePicker.selectVideo(multiple, resolve, reject);\n }).then(files => this.getFiles(files))\n .then((paths) => {\n this.spinnerService.hide(spinnerId);\n return paths;\n });\n\n }\n\n /**\n * Converts the file to blob using filepath\n * @param filePaths, array of file paths\n * @returns fileObj having name, path, content\n */\n private getFiles(filePaths: string[]): Promise<FileContent[]> {\n return Promise.all(_.map(filePaths, filePath => {\n if (filePath.indexOf('://') < 0) {\n filePath = 'file://' + filePath;\n }\n return convertToBlob(filePath)\n })).then(filesList => {\n return _.map(filesList, fileObj => {\n const path = fileObj.filepath;\n return {\n name: path.split('/').pop(),\n path: path,\n content: fileObj.blob,\n size: fileObj.blob.size\n };\n });\n });\n }\n}\n","import { Directive, DoCheck, Inject, Input, Self } from '@angular/core';\n\nimport { File } from '@awesome-cordova-plugins/file/ngx';\n\nimport { WidgetRef } from '@wm/components/base';\nimport { hasCordova, noop, transformFileURI } from '@wm/core';\nimport { DeviceFileCacheService } from '@wm/mobile/core';\n\ndeclare const _;\nconst DEFAULT_IMAGE = 'resources/images/imagelists/default-image.png';\n\n@Directive({\n selector: '[wmImageCache]'\n})\nexport class ImageCacheDirective implements DoCheck {\n\n private _cacheUrl;\n private _isEnabled = false;\n private _lastUrl = '';\n\n constructor(\n @Self() @Inject(WidgetRef) private componentInstance,\n private deviceFileCacheService: DeviceFileCacheService,\n private file: File\n\n ) {}\n\n public ngDoCheck() {\n if (_.isString(this.componentInstance.imgSource)\n && this.componentInstance.imgSource.startsWith('http')) {\n if (this._lastUrl !== this.componentInstance.imgSource) {\n this._lastUrl = this.componentInstance.imgSource;\n this.componentInstance.imgSource = DEFAULT_IMAGE;\n this.getLocalPath(this._lastUrl).then((localPath) => {\n this._cacheUrl = transformFileURI(localPath);\n this.componentInstance.imgSource = this._cacheUrl;\n });\n } else if (this._cacheUrl) {\n this.componentInstance.imgSource = this._cacheUrl;\n }\n }\n }\n\n @Input()\n set wmImageCache(val: string) {\n this._isEnabled = (hasCordova() && val === 'true');\n }\n\n private getLocalPath(val: string) {\n if (hasCordova() && val && val.indexOf('{{') < 0 && val.startsWith('http')) {\n return this.deviceFileCacheService.getLocalPath(val, true, true, !this._isEnabled)\n .catch(noop);\n }\n return Promise.resolve(val);\n }\n}\n","import { register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-network-info-toaster',\n new Map(\n []\n )\n );\n};\n","import { Component, Injector, OnDestroy } from '@angular/core';\n\nimport { IWidgetConfig, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './network-info-toaster.props';\nimport { $appDigest, App } from '@wm/core';\nimport { NetworkService } from '@wm/mobile/core';\n\nconst DEFAULT_CLS = 'network-info-toaster';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-network-info-toaster', hostClass: DEFAULT_CLS};\n\nexport enum NetworkState {\n CONNECTED = 1,\n CONNECTING = 0,\n SERVICE_AVAILABLE_BUT_NOT_CONNECTED = -1,\n NETWORK_AVAIABLE_BUT_SERVICE_NOT_AVAILABLE = -2,\n NETWORK_NOT_AVAIABLE = -3\n}\n\n\n@Component({\n selector: '[wmNetworkInfoToaster]',\n templateUrl: './network-info-toaster.component.html',\n providers: [\n provideAsWidgetRef(NetworkInfoToasterComponent)\n ]\n})\nexport class NetworkInfoToasterComponent extends StylableComponent implements OnDestroy {\n static initializeProps = registerProps();\n\n public showMessage = false;\n public isServiceConnected = false;\n public isServiceAvailable = false;\n public networkState: NetworkState;\n\n private _listenerDestroyer;\n\n constructor(private networkService: NetworkService, app: App, inj: Injector) {\n super(inj, WIDGET_CONFIG);\n styler(this.$element, this);\n this.isServiceAvailable = <boolean> this.networkService.isAvailable();\n this.isServiceConnected = this.networkService.isConnected();\n this._listenerDestroyer = app.subscribe('onNetworkStateChange', (data) => {\n this.renderMessage(data);\n });\n this.renderMessage();\n }\n\n private renderMessage(data?) {\n data = data || this.networkService.getState();\n const oldState = this.networkState;\n let autoHide = false;\n if (data.noServiceRequired) {\n return false;\n }\n if (data.isConnected) {\n this.networkState = NetworkState.CONNECTED;\n autoHide = true;\n } else if (data.isConnecting) {\n this.networkState = NetworkState.CONNECTING;\n } else if (data.isServiceAvailable) {\n this.networkState = NetworkState.SERVICE_AVAILABLE_BUT_NOT_CONNECTED;\n } else if (data.isNetworkAvailable && !data.isServiceAvailable) {\n this.networkState = NetworkState.NETWORK_AVAIABLE_BUT_SERVICE_NOT_AVAILABLE;\n } else {\n this.networkState = NetworkState.NETWORK_NOT_AVAIABLE;\n }\n this.showMessage = (!(oldState === undefined && data.isConnected) && oldState !== this.networkState);\n if (autoHide && this.showMessage) {\n setTimeout(() => {\n this.showMessage = false;\n $appDigest();\n }, 5000);\n }\n }\n\n public connect() {\n this.networkService.connect();\n }\n\n public hideMessage() {\n this.showMessage = false;\n }\n\n public ngOnDestroy() {\n this._listenerDestroyer();\n super.ngOnDestroy();\n }\n}\n","import { Component, DoCheck, ElementRef } from '@angular/core';\n\nimport { addClass, removeAttr, setAttr } from '@wm/core';\nimport { provideAsWidgetRef } from '@wm/components/base';\n\ndeclare const _;\n\nexport interface Process {\n max: number;\n min: number;\n name: string;\n onStop: () => void;\n progressLabel: string;\n show: boolean;\n stopButtonLabel: string;\n value: number;\n}\n\nexport interface ProcessApi {\n destroy: () => Promise<void>;\n get: (propertyName: string) => string;\n set: (propertyName: string, propertyValue: any) => void;\n}\n\nconst MAX_PROCESS = 3;\n\n@Component({\n selector: '[wmProcessManager]',\n templateUrl: './process-manager.component.html',\n providers: [\n provideAsWidgetRef(ProcessManagerComponent)\n ]\n})\nexport class ProcessManagerComponent implements DoCheck {\n\n private isVisible = true;\n\n public instances: Process[] = [];\n public queue = [];\n\n constructor(private el: ElementRef) {\n addClass(this.el.nativeElement, 'app-global-progress-bar modal default');\n }\n\n public createInstance(name: string, min = 0, max = 100): Promise<ProcessApi> {\n const instance: Process = {\n max: max,\n min: min,\n name: name,\n onStop: null,\n progressLabel: '',\n show: min !== max,\n stopButtonLabel : 'Cancel',\n value: 0\n };\n const api = {\n get: (propertyName) => instance[propertyName],\n set: (propertyName, propertyValue) => this.setInstaceProperty(instance, propertyName, propertyValue),\n destroy: () => this.removeInstance(instance)\n };\n return this.addToQueue(instance).then(() => api);\n }\n\n public getVisibleInstances() {\n return this.instances.filter(i => i.show);\n }\n\n public ngDoCheck() {\n const hasInstancesToShow = !!this.instances.find(i => i.show);\n if (this.isVisible && !hasInstancesToShow) {\n setAttr(this.el.nativeElement, 'hidden', 'true');\n this.isVisible = false;\n } else if (!this.isVisible && hasInstancesToShow) {\n removeAttr(this.el.nativeElement, 'hidden');\n this.isVisible = true;\n }\n }\n\n private addToQueue(instance): Promise<void> {\n return new Promise( resolve => {\n this.queue.push(() => {\n if (this.instances.length < MAX_PROCESS) {\n this.instances.push(instance);\n resolve(instance);\n } else {\n return false;\n }\n });\n this.flushQueue();\n });\n }\n\n private flushQueue() {\n if (this.queue.length > 0 && this.queue[0]() !== false) {\n this.queue.shift();\n this.flushQueue();\n }\n }\n\n private removeInstance(instance: Process): Promise<void> {\n return new Promise( resolve => {\n setTimeout(() => {\n _.remove(this.instances, instance);\n this.flushQueue();\n resolve();\n }, 1000);\n });\n }\n\n private setInstaceProperty(instance: Process, propertyName: string, propertyValue: any) {\n if (propertyName === 'value') {\n if (instance.value >= instance.max) {\n propertyValue = instance.max;\n }\n instance.value = propertyValue;\n instance.progressLabel = instance.value + '/' + instance.max;\n } else if (propertyName === 'onStop' && _.isFunction(propertyValue)) {\n instance.onStop = () => {\n propertyValue();\n return this.removeInstance(instance);\n };\n } else {\n instance[propertyName] = propertyValue;\n }\n instance.show = instance.min !== instance.max;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ProcessManagerComponent, ProcessApi } from './process-manager.component';\n\n@Injectable({ providedIn: 'root' })\nexport class ProcessManagementService {\n static readonly SERVICE_NAME = 'ProcessManagementService';\n\n private processManagerComponent: ProcessManagerComponent;\n\n setUIComponent(processManagerComponent: ProcessManagerComponent) {\n this.processManagerComponent = processManagerComponent;\n }\n\n /**\n * Returns a promise that will be resolved when an instance is available. At max, 3 instances can only run\n * in parallel and rest has to wait till a process is completed.\n *\n * A progress instance has the following properties.\n *\n * 1) min {number} minimum value, default value is 0 </br>\n * 2) max {number} maximum value, default value is 100 </br>\n * 3) value {number} progress value </br>\n * 4) progressLabel {string} process name </br>\n * 5) stopButtonLabel {string} label for stop button, default value is 'Cancel' </br>\n * 6) onStop {function} function to invoke when stop button is clicked. </br>\n *\n * A progress instance has 3 methods </br>\n * 1) set(property, value) -- sets value to the corresponding property </br>\n * 2) get(property) -- returns property value </br>\n * 3) destroy() -- closes the instance. </br>\n *\n * A progress instance will get auto closed when value and max are equal or when destroy method is called.\n *\n * @param {string} name name of the process whose progress is going to be shown\n * @param {number} min minimum value\n * @param {number} max maximum value\n *\n * @returns {object} a promise\n */\n public createInstance(name: string, min?: number, max?: number): Promise<ProcessApi> {\n if (!this.processManagerComponent) {\n return Promise.reject('ProcessManagerComponent is missing');\n }\n return this.processManagerComponent.createInstance(name, min, max);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { ProgressModule } from '@wm/components/basic/progress';\n\nimport { AnchorDirective } from './anchor/anchor.directive';\nimport { AppUpdateComponent } from './app-update/app-update.component';\nimport { FileBrowserComponent } from './file-browser/file-browser.component';\nimport { ImageCacheDirective } from './image-cache/image-cache.directive';\nimport { NetworkInfoToasterComponent } from './network-info-toaster/network-info-toaster.component';\nimport { ProcessManagerComponent } from './process-manager/process-manager.component';\n\nconst components = [\n AnchorDirective,\n AppUpdateComponent,\n FileBrowserComponent,\n ImageCacheDirective,\n NetworkInfoToasterComponent,\n ProcessManagerComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n ProgressModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components],\n entryComponents: []\n})\nexport class BasicModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {registerProps as ɵa} from './network-info-toaster/network-info-toaster.props';"],"names":["DEFAULT_CLS"],"mappings":"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"}
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"AnchorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[wmAnchor]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":17},"arguments":[{"__symbolic":"reference","module":"@wm/components/base","name":"WidgetRef","line":12,"character":24}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":14,"character":5},"arguments":["click"]}]}]}},"AppUpdateComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"[wmAppUpdate]","template":"<div class=\"modal-dialog\">\n <div class=\"modal-content\"> \n <div class=\"modal-body\"> \n <span [textContent]=\"message\"></span>\n <div class=\"progress\" [hidden]=\"!downloading\">\n <div class=\"progress-bar\" [style.width.%]=\"downloadProgress\"></div>\n </div>\n </div>\n <div class=\"modal-footer\"> \n <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\" (click)=\"cancel()\">Skip update</button>\n <button type=\"button\" class=\"btn btn-primary\" [hidden]=\"downloading\" (click)=\"installLatestVersion()\">Update</button>\n </div>\n </div>\n</div>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@wm/mobile/core","name":"DeviceService","line":28,"character":31},{"__symbolic":"reference","module":"@wm/mobile/core","name":"DeviceFileDownloadService","line":29,"character":37},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":30,"character":23},{"__symbolic":"reference","module":"@awesome-cordova-plugins/file/ngx","name":"File","line":31,"character":22},{"__symbolic":"reference","module":"@awesome-cordova-plugins/file-opener/ngx","name":"FileOpener","line":32,"character":28},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":33,"character":22}]}],"cancel":[{"__symbolic":"method"}],"installLatestVersion":[{"__symbolic":"method"}],"checkForUpdate":[{"__symbolic":"method"}],"getBuildMeta":[{"__symbolic":"method"}],"getUserConfirmation":[{"__symbolic":"method"}]}},"File":{"__symbolic":"interface"},"Folder":{"__symbolic":"interface"},"FileBrowserComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"[wmMobileFileBrowser]","template":"<div class=\"app-file-browser\" *ngIf=\"isVisible && currentFolder\">\n <div class=\"modal-backdrop fade\" [class.in]=\"isVisible\"></div>\n <div class=\"modal fade\" style=\"display: block;\" [class.in]=\"isVisible\" >\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header clearfix\">\n <h4 class=\"modal-title pull-left\">\n <span (click)=\"onFileClick(currentFolder.parent)\" [hidden]=\"!!!currentFolder.parent\">\n <i class=\"wi wi-long-arrow-left\"></i>\n </span>\n {{currentFolder.name}}\n </h4>\n <div class=\"selected-file-button pull-right\" (click)=\"refreshFolder()\">\n <i class=\"wi wi-refresh\"></i>\n </div>\n </div>\n <div class=\"modal-body\">\n <div class=\"file-info-box\" *ngFor=\"let file of currentFolder.files\">\n <div class=\"file-info\" [class.bg-primary]=\"file.isSelected\" (click)=\"onFileClick(file)\">\n <i class=\"file-icon wi wi-folder\" *ngIf=\"!file.isFile\"></i>\n <i class=\"file-icon wi wi-file {{getFileExtension(file.name)}}\" *ngIf=\"file.isFile\"></i>\n <span class=\"file-name\">{{file.name}}</span>\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary\" *ngIf=\"selectedFiles && selectedFiles.length > 0\" (click)=\"submit()\">\n Done <span class=\"badge badge-light\">{{selectedFiles.length}}</span>\n </button>\n <button type=\"button\" class=\"btn btn-default\" (click)=\"show = false;\">Close</button>\n </div>\n </div>\n </div>\n </div>\n</div>"}]}],"members":{"fileTypeToSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":5}}]}],"submitEmitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":33,"character":5},"arguments":["submit"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@wm/mobile/core","name":"DeviceService","line":38,"character":39}]}],"getFileExtension":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onFileClick":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"deselectFile":[{"__symbolic":"method"}],"goToFolder":[{"__symbolic":"method"}],"loadFileSize":[{"__symbolic":"method"}],"loadFolder":[{"__symbolic":"method"}],"refreshFolder":[{"__symbolic":"method"}],"selectFile":[{"__symbolic":"method"}]}},"FileContent":{"__symbolic":"interface"},"FileSelectorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@wm/core","name":"AbstractSpinnerService","line":20,"character":47}]}],"selectAudio":[{"__symbolic":"method"}],"setFileBrowser":[{"__symbolic":"method"}],"selectFiles":[{"__symbolic":"method"}],"selectImages":[{"__symbolic":"method"}],"selectVideos":[{"__symbolic":"method"}],"getFiles":[{"__symbolic":"method"}]},"statics":{"SERVICE_NAME":"FileSelectorService","ɵprov":{}}},"ImageCacheDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":10,"character":1},"arguments":[{"selector":"[wmImageCache]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":20,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":17},"arguments":[{"__symbolic":"reference","module":"@wm/components/base","name":"WidgetRef","line":20,"character":24}]}],null,null],"parameters":[null,{"__symbolic":"reference","module":"@wm/mobile/core","name":"DeviceFileCacheService","line":21,"character":40},{"__symbolic":"reference","module":"@awesome-cordova-plugins/file/ngx","name":"File","line":22,"character":22}]}],"ngDoCheck":[{"__symbolic":"method"}],"wmImageCache":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":5}}]}],"getLocalPath":[{"__symbolic":"method"}]}},"NetworkState":{"CONNECTED":1,"CONNECTING":0,"SERVICE_AVAILABLE_BUT_NOT_CONNECTED":-1,"NETWORK_AVAIABLE_BUT_SERVICE_NOT_AVAILABLE":-2,"NETWORK_NOT_AVAIABLE":-3},"NetworkInfoToasterComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@wm/components/base","name":"StylableComponent","line":27,"character":49},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"[wmNetworkInfoToaster]","providers":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@wm/components/base","name":"provideAsWidgetRef","line":24,"character":8},"arguments":[{"__symbolic":"reference","name":"NetworkInfoToasterComponent"}]}],"template":"<div class=\"network-info-toaster-content\" [ngSwitch]=\"networkState\" *ngIf=\"showMessage\">\n <div class=\"info\" *ngSwitchCase=\"-3\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_NETWORK_NOT_AVAILABLE\"></label>\n <button class=\"btn btn-default hide-btn\" (click)=\"hideMessage()\" [textContent]=\"appLocale.LABEL_HIDE_NETWORK_INFO\"></button>\n </div>\n <div class=\"info\" *ngSwitchCase=\"-2\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_SERVICE_NOT_AVAILABLE\"></label>\n <button class=\"btn btn-default hide-btn\" (click)=\"hideMessage()\" [textContent]=\"appLocale.LABEL_HIDE_NETWORK_INFO\"></button>\n </div>\n <div class=\"info\" *ngSwitchCase=\"-1\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_SERVICE_AVAILABLE\"></label>\n <button class=\"btn btn-default hide-btn\" (click)=\"hideMessage()\" [textContent]=\"appLocale.LABEL_HIDE_NETWORK_INFO\"></button>\n <button class=\"btn btn-primary connect-btn\" (click)=\"connect()\" [textContent]=\"appLocale.LABEL_CONNECT_TO_SERVICE\"></button>\n </div>\n <div class=\"info\" *ngSwitchCase=\"0\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_SERVICE_CONNECTING\"></label>\n </div>\n <div class=\"info\" *ngSwitchCase=\"1\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_SERVICE_CONNECTED\"></label>\n </div>\n</div>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@wm/mobile/core","name":"NetworkService","line":37,"character":40},{"__symbolic":"reference","module":"@wm/core","name":"App","line":37,"character":61},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":37,"character":71}]}],"renderMessage":[{"__symbolic":"method"}],"connect":[{"__symbolic":"method"}],"hideMessage":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]},"statics":{"initializeProps":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵa"}}}},"Process":{"__symbolic":"interface"},"ProcessApi":{"__symbolic":"interface"},"ProcessManagerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"[wmProcessManager]","providers":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@wm/components/base","name":"provideAsWidgetRef","line":30,"character":8},"arguments":[{"__symbolic":"reference","name":"ProcessManagerComponent"}]}],"template":"<ng-container *ngIf=\"instances.length > 0\">\n <div class=\"modal-dialog app-dialog\">\n <div class=\"modal-content\">\n <ul class=\"instance-list list-unstyled\">\n <li *ngFor=\"let instance of getVisibleInstances(instances); index as i\" class=\"instance-list-item\">\n <div class=\"row\">\n <div class=\"col-xs-8\">\n <label class=\"app-global-progress-bar-name h6\">{{instance.name}}</label>\n </div>\n <div class=\"col-xs-4 app-global-progress-bar-progress-label-col\">\n <label class=\"app-global-progress-bar-progress-label h6\">\n {{instance.progressLabel}}</label>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"progressTemplate\" [ngTemplateOutletContext]=\"{instance: instance}\"></ng-template>\n <button class=\"btn btn-secondary pull-right stop-btn\" *ngIf=\"instance.onStop\" (click)=\"instance.onStop();\">\n {{instance.stopButtonLabel}}\n </button>\n <div style=\"clear: both;\"></div>\n </li>\n <li class=\"instance-list-item\" *ngIf=\"queue.length > 0\">\n <label class=\"global-progress-bar-ui-primary-label h6\">\n ({{queue.length}}) queued\n </label>\n </li>\n </ul>\n </div>\n </div>\n</ng-container>\n<ng-template #progressTemplate let-instance=\"instance\">\n <div wmProgressBar minvalue.bind=\"instance.min\" maxvalue.bind=\"instance.max\" datavalue.bind=\"instance.value\"></div>\n</ng-template>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":40,"character":28}]}],"createInstance":[{"__symbolic":"method"}],"getVisibleInstances":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"addToQueue":[{"__symbolic":"method"}],"flushQueue":[{"__symbolic":"method"}],"removeInstance":[{"__symbolic":"method"}],"setInstaceProperty":[{"__symbolic":"method"}]}},"ProcessManagementService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"setUIComponent":[{"__symbolic":"method"}],"createInstance":[{"__symbolic":"method"}]},"statics":{"SERVICE_NAME":"ProcessManagementService","ɵprov":{}}},"BasicModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":24,"character":8},{"__symbolic":"reference","module":"@wm/components/basic/progress","name":"ProgressModule","line":25,"character":8},{"__symbolic":"reference","module":"@wm/components/base","name":"WmComponentsModule","line":26,"character":8}],"declarations":[{"__symbolic":"reference","name":"AnchorDirective"},{"__symbolic":"reference","name":"AppUpdateComponent"},{"__symbolic":"reference","name":"FileBrowserComponent"},{"__symbolic":"reference","name":"ImageCacheDirective"},{"__symbolic":"reference","name":"NetworkInfoToasterComponent"},{"__symbolic":"reference","name":"ProcessManagerComponent"}],"exports":[{"__symbolic":"reference","name":"AnchorDirective"},{"__symbolic":"reference","name":"AppUpdateComponent"},{"__symbolic":"reference","name":"FileBrowserComponent"},{"__symbolic":"reference","name":"ImageCacheDirective"},{"__symbolic":"reference","name":"NetworkInfoToasterComponent"},{"__symbolic":"reference","name":"ProcessManagerComponent"}],"entryComponents":[]}]}],"members":{}},"ɵa":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":29,"module":"./network-info-toaster/network-info-toaster.props"}},"origins":{"AnchorDirective":"./anchor/anchor.directive","AppUpdateComponent":"./app-update/app-update.component","File":"./file-browser/file-browser.component","Folder":"./file-browser/file-browser.component","FileBrowserComponent":"./file-browser/file-browser.component","FileContent":"./file-browser/file-selector.service","FileSelectorService":"./file-browser/file-selector.service","ImageCacheDirective":"./image-cache/image-cache.directive","NetworkState":"./network-info-toaster/network-info-toaster.component","NetworkInfoToasterComponent":"./network-info-toaster/network-info-toaster.component","Process":"./process-manager/process-manager.component","ProcessApi":"./process-manager/process-manager.component","ProcessManagerComponent":"./process-manager/process-manager.component","ProcessManagementService":"./process-manager/process-management.service","BasicModule":"./basic.module","ɵa":"./network-info-toaster/network-info-toaster.props"},"importAs":"@wm/mobile/components/basic"}
1
+ {"__symbolic":"module","version":4,"metadata":{"AnchorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[wmAnchor]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":17},"arguments":[{"__symbolic":"reference","module":"@wm/components/base","name":"WidgetRef","line":12,"character":24}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":14,"character":5},"arguments":["click"]}]}]}},"AppUpdateComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"[wmAppUpdate]","template":"<div class=\"modal-dialog\">\n <div class=\"modal-content\"> \n <div class=\"modal-body\"> \n <span [textContent]=\"message\"></span>\n <div class=\"progress\" [hidden]=\"!downloading\">\n <div class=\"progress-bar\" [style.width.%]=\"downloadProgress\"></div>\n </div>\n </div>\n <div class=\"modal-footer\"> \n <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\" (click)=\"cancel()\">Skip update</button>\n <button type=\"button\" class=\"btn btn-primary\" [hidden]=\"downloading\" (click)=\"installLatestVersion()\">Update</button>\n </div>\n </div>\n</div>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@wm/mobile/core","name":"DeviceService","line":28,"character":31},{"__symbolic":"reference","module":"@wm/mobile/core","name":"DeviceFileDownloadService","line":29,"character":37},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":30,"character":23},{"__symbolic":"reference","module":"@awesome-cordova-plugins/file/ngx","name":"File","line":31,"character":22},{"__symbolic":"reference","module":"@awesome-cordova-plugins/file-opener/ngx","name":"FileOpener","line":32,"character":28},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":33,"character":22}]}],"cancel":[{"__symbolic":"method"}],"installLatestVersion":[{"__symbolic":"method"}],"checkForUpdate":[{"__symbolic":"method"}],"getBuildMeta":[{"__symbolic":"method"}],"getUserConfirmation":[{"__symbolic":"method"}]}},"File":{"__symbolic":"interface"},"Folder":{"__symbolic":"interface"},"FileBrowserComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"[wmMobileFileBrowser]","template":"<div class=\"app-file-browser\" *ngIf=\"isVisible && currentFolder\">\n <div class=\"modal-backdrop fade\" [class.in]=\"isVisible\"></div>\n <div class=\"modal fade\" style=\"display: block;\" [class.in]=\"isVisible\" >\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n <div class=\"modal-header clearfix\">\n <h4 class=\"modal-title pull-left\">\n <span (click)=\"onFileClick(currentFolder.parent)\" [hidden]=\"!!!currentFolder.parent\">\n <i class=\"wi wi-long-arrow-left\"></i>\n </span>\n {{currentFolder.name}}\n </h4>\n <div class=\"selected-file-button pull-right\" (click)=\"refreshFolder()\">\n <i class=\"wi wi-refresh\"></i>\n </div>\n </div>\n <div class=\"modal-body\">\n <div class=\"file-info-box\" *ngFor=\"let file of currentFolder.files\">\n <div class=\"file-info\" [class.bg-primary]=\"file.isSelected\" (click)=\"onFileClick(file)\">\n <i class=\"file-icon wi wi-folder\" *ngIf=\"!file.isFile\"></i>\n <i class=\"file-icon wi wi-file {{getFileExtension(file.name)}}\" *ngIf=\"file.isFile\"></i>\n <span class=\"file-name\">{{file.name}}</span>\n </div>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary\" *ngIf=\"selectedFiles && selectedFiles.length > 0\" (click)=\"submit()\">\n Done <span class=\"badge badge-light\">{{selectedFiles.length}}</span>\n </button>\n <button type=\"button\" class=\"btn btn-default\" (click)=\"show = false;\">Close</button>\n </div>\n </div>\n </div>\n </div>\n</div>"}]}],"members":{"fileTypeToSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":5}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":5}}]}],"submitEmitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":33,"character":5},"arguments":["submit"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@wm/mobile/core","name":"DeviceService","line":38,"character":39}]}],"getFileExtension":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onFileClick":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"deselectFile":[{"__symbolic":"method"}],"goToFolder":[{"__symbolic":"method"}],"loadFileSize":[{"__symbolic":"method"}],"loadFolder":[{"__symbolic":"method"}],"refreshFolder":[{"__symbolic":"method"}],"selectFile":[{"__symbolic":"method"}]}},"FileContent":{"__symbolic":"interface"},"FileSelectorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@wm/core","name":"AbstractSpinnerService","line":20,"character":47}]}],"selectAudio":[{"__symbolic":"method"}],"setFileBrowser":[{"__symbolic":"method"}],"selectFiles":[{"__symbolic":"method"}],"selectImages":[{"__symbolic":"method"}],"selectVideos":[{"__symbolic":"method"}],"getFiles":[{"__symbolic":"method"}]},"statics":{"SERVICE_NAME":"FileSelectorService","ɵprov":{}}},"ImageCacheDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":11,"character":1},"arguments":[{"selector":"[wmImageCache]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Self","line":21,"character":9}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":21,"character":17},"arguments":[{"__symbolic":"reference","module":"@wm/components/base","name":"WidgetRef","line":21,"character":24}]}],null,null],"parameters":[null,{"__symbolic":"reference","module":"@wm/mobile/core","name":"DeviceFileCacheService","line":22,"character":40},{"__symbolic":"reference","module":"@awesome-cordova-plugins/file/ngx","name":"File","line":23,"character":22}]}],"ngDoCheck":[{"__symbolic":"method"}],"wmImageCache":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"getLocalPath":[{"__symbolic":"method"}]}},"NetworkState":{"CONNECTED":1,"CONNECTING":0,"SERVICE_AVAILABLE_BUT_NOT_CONNECTED":-1,"NETWORK_AVAIABLE_BUT_SERVICE_NOT_AVAILABLE":-2,"NETWORK_NOT_AVAIABLE":-3},"NetworkInfoToasterComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@wm/components/base","name":"StylableComponent","line":27,"character":49},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"[wmNetworkInfoToaster]","providers":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@wm/components/base","name":"provideAsWidgetRef","line":24,"character":8},"arguments":[{"__symbolic":"reference","name":"NetworkInfoToasterComponent"}]}],"template":"<div class=\"network-info-toaster-content\" [ngSwitch]=\"networkState\" *ngIf=\"showMessage\">\n <div class=\"info\" *ngSwitchCase=\"-3\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_NETWORK_NOT_AVAILABLE\"></label>\n <button class=\"btn btn-default hide-btn\" (click)=\"hideMessage()\" [textContent]=\"appLocale.LABEL_HIDE_NETWORK_INFO\"></button>\n </div>\n <div class=\"info\" *ngSwitchCase=\"-2\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_SERVICE_NOT_AVAILABLE\"></label>\n <button class=\"btn btn-default hide-btn\" (click)=\"hideMessage()\" [textContent]=\"appLocale.LABEL_HIDE_NETWORK_INFO\"></button>\n </div>\n <div class=\"info\" *ngSwitchCase=\"-1\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_SERVICE_AVAILABLE\"></label>\n <button class=\"btn btn-default hide-btn\" (click)=\"hideMessage()\" [textContent]=\"appLocale.LABEL_HIDE_NETWORK_INFO\"></button>\n <button class=\"btn btn-primary connect-btn\" (click)=\"connect()\" [textContent]=\"appLocale.LABEL_CONNECT_TO_SERVICE\"></button>\n </div>\n <div class=\"info\" *ngSwitchCase=\"0\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_SERVICE_CONNECTING\"></label>\n </div>\n <div class=\"info\" *ngSwitchCase=\"1\">\n <label class=\"message\" [textContent]=\"appLocale.MESSAGE_SERVICE_CONNECTED\"></label>\n </div>\n</div>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@wm/mobile/core","name":"NetworkService","line":37,"character":40},{"__symbolic":"reference","module":"@wm/core","name":"App","line":37,"character":61},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":37,"character":71}]}],"renderMessage":[{"__symbolic":"method"}],"connect":[{"__symbolic":"method"}],"hideMessage":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]},"statics":{"initializeProps":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵa"}}}},"Process":{"__symbolic":"interface"},"ProcessApi":{"__symbolic":"interface"},"ProcessManagerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"[wmProcessManager]","providers":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@wm/components/base","name":"provideAsWidgetRef","line":30,"character":8},"arguments":[{"__symbolic":"reference","name":"ProcessManagerComponent"}]}],"template":"<ng-container *ngIf=\"instances.length > 0\">\n <div class=\"modal-dialog app-dialog\">\n <div class=\"modal-content\">\n <ul class=\"instance-list list-unstyled\">\n <li *ngFor=\"let instance of getVisibleInstances(instances); index as i\" class=\"instance-list-item\">\n <div class=\"row\">\n <div class=\"col-xs-8\">\n <label class=\"app-global-progress-bar-name h6\">{{instance.name}}</label>\n </div>\n <div class=\"col-xs-4 app-global-progress-bar-progress-label-col\">\n <label class=\"app-global-progress-bar-progress-label h6\">\n {{instance.progressLabel}}</label>\n </div>\n </div>\n <ng-template [ngTemplateOutlet]=\"progressTemplate\" [ngTemplateOutletContext]=\"{instance: instance}\"></ng-template>\n <button class=\"btn btn-secondary pull-right stop-btn\" *ngIf=\"instance.onStop\" (click)=\"instance.onStop();\">\n {{instance.stopButtonLabel}}\n </button>\n <div style=\"clear: both;\"></div>\n </li>\n <li class=\"instance-list-item\" *ngIf=\"queue.length > 0\">\n <label class=\"global-progress-bar-ui-primary-label h6\">\n ({{queue.length}}) queued\n </label>\n </li>\n </ul>\n </div>\n </div>\n</ng-container>\n<ng-template #progressTemplate let-instance=\"instance\">\n <div wmProgressBar minvalue.bind=\"instance.min\" maxvalue.bind=\"instance.max\" datavalue.bind=\"instance.value\"></div>\n</ng-template>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":40,"character":28}]}],"createInstance":[{"__symbolic":"method"}],"getVisibleInstances":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"addToQueue":[{"__symbolic":"method"}],"flushQueue":[{"__symbolic":"method"}],"removeInstance":[{"__symbolic":"method"}],"setInstaceProperty":[{"__symbolic":"method"}]}},"ProcessManagementService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"setUIComponent":[{"__symbolic":"method"}],"createInstance":[{"__symbolic":"method"}]},"statics":{"SERVICE_NAME":"ProcessManagementService","ɵprov":{}}},"BasicModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":24,"character":8},{"__symbolic":"reference","module":"@wm/components/basic/progress","name":"ProgressModule","line":25,"character":8},{"__symbolic":"reference","module":"@wm/components/base","name":"WmComponentsModule","line":26,"character":8}],"declarations":[{"__symbolic":"reference","name":"AnchorDirective"},{"__symbolic":"reference","name":"AppUpdateComponent"},{"__symbolic":"reference","name":"FileBrowserComponent"},{"__symbolic":"reference","name":"ImageCacheDirective"},{"__symbolic":"reference","name":"NetworkInfoToasterComponent"},{"__symbolic":"reference","name":"ProcessManagerComponent"}],"exports":[{"__symbolic":"reference","name":"AnchorDirective"},{"__symbolic":"reference","name":"AppUpdateComponent"},{"__symbolic":"reference","name":"FileBrowserComponent"},{"__symbolic":"reference","name":"ImageCacheDirective"},{"__symbolic":"reference","name":"NetworkInfoToasterComponent"},{"__symbolic":"reference","name":"ProcessManagerComponent"}],"entryComponents":[]}]}],"members":{}},"ɵa":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":29,"module":"./network-info-toaster/network-info-toaster.props"}},"origins":{"AnchorDirective":"./anchor/anchor.directive","AppUpdateComponent":"./app-update/app-update.component","File":"./file-browser/file-browser.component","Folder":"./file-browser/file-browser.component","FileBrowserComponent":"./file-browser/file-browser.component","FileContent":"./file-browser/file-selector.service","FileSelectorService":"./file-browser/file-selector.service","ImageCacheDirective":"./image-cache/image-cache.directive","NetworkState":"./network-info-toaster/network-info-toaster.component","NetworkInfoToasterComponent":"./network-info-toaster/network-info-toaster.component","Process":"./process-manager/process-manager.component","ProcessApi":"./process-manager/process-manager.component","ProcessManagerComponent":"./process-manager/process-manager.component","ProcessManagementService":"./process-manager/process-management.service","BasicModule":"./basic.module","ɵa":"./network-info-toaster/network-info-toaster.props"},"importAs":"@wm/mobile/components/basic"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-ng-runtime",
3
- "version": "11.4.2-rc.5378",
3
+ "version": "11.4.2-rc.5379",
4
4
  "description": "All modules required for a wavemaker application.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -3070,6 +3070,7 @@
3070
3070
  _this.defaultSupportedLocale = 'en';
3071
3071
  _this._isAngularLocaleLoaded = false;
3072
3072
  _this.formatsByLocale = { 'timezone': '', 'number': '' };
3073
+ _this.bundleLoaded = {};
3073
3074
  _this.appLocale = {};
3074
3075
  _this.prefabLocale = new Map();
3075
3076
  return _this;
@@ -3138,6 +3139,8 @@
3138
3139
  _this.extendMessages(bundle.messages);
3139
3140
  _this.extendPrefabMessages(bundle);
3140
3141
  _this.appDefaults.setFormats(bundle.formats);
3142
+ _this.bundleLoaded.app = true;
3143
+ _this.notifyLocaleChanged();
3141
3144
  });
3142
3145
  };
3143
3146
  I18nServiceImpl.prototype.loadMomentLocaleBundle = function (momentLocale) {
@@ -3156,6 +3159,8 @@
3156
3159
  _config = _config && _config._config;
3157
3160
  chronos.defineLocale(_this.selectedLocale, _config);
3158
3161
  _this.bsLocaleService.use(_this.getSelectedLocale() || _this.defaultSupportedLocale);
3162
+ _this.bundleLoaded.moment = true;
3163
+ _this.notifyLocaleChanged();
3159
3164
  });
3160
3165
  };
3161
3166
  I18nServiceImpl.prototype.loadAngularLocaleBundle = function (angLocale) {
@@ -3185,6 +3190,7 @@
3185
3190
  }
3186
3191
  // return in case of mobile app or if selected locale is default supported locale.
3187
3192
  if (!force && (i2.isMobile() || i2.isMobileApp() || this.selectedLocale === this.defaultSupportedLocale)) {
3193
+ this.bundleLoaded.fullCalendar = true;
3188
3194
  return;
3189
3195
  }
3190
3196
  // Call the script. In script, moment defines the loaded locale
@@ -3219,11 +3225,23 @@
3219
3225
  });
3220
3226
  };
3221
3227
  I18nServiceImpl.prototype.loadLocaleBundles = function (libLocale) {
3228
+ var _this = this;
3229
+ var _a;
3222
3230
  if (libLocale.moment) {
3223
3231
  this.loadMomentLocaleBundle(libLocale.moment);
3224
3232
  }
3233
+ else if (this.selectedLocale === this.defaultSupportedLocale) {
3234
+ this.bsLocaleService.use(this.getSelectedLocale() || this.defaultSupportedLocale);
3235
+ this.bundleLoaded.moment = true;
3236
+ }
3225
3237
  if (libLocale.fullCalendar && window['FullCalendar']) {
3226
- this.loadCalendarLocaleBundle(libLocale.fullCalendar);
3238
+ (_a = this.loadCalendarLocaleBundle(libLocale.fullCalendar)) === null || _a === void 0 ? void 0 : _a.then(function () {
3239
+ _this.bundleLoaded.fullCalendar = true;
3240
+ _this.notifyLocaleChanged();
3241
+ });
3242
+ }
3243
+ else {
3244
+ this.bundleLoaded.fullCalendar = true;
3227
3245
  }
3228
3246
  if (libLocale.angular) {
3229
3247
  this.loadAppLocaleBundle();
@@ -3267,8 +3285,17 @@
3267
3285
  this.selectedLocale = locale;
3268
3286
  // reset the localeData object
3269
3287
  this.init();
3288
+ this.bundleLoaded.moment = false;
3289
+ this.bundleLoaded.fullCalendar = false;
3290
+ this.bundleLoaded.app = false;
3291
+ this.bundleLoaded.angular = false;
3292
+ this.bundleLoaded.libLocale = libLocale;
3270
3293
  // load the locale bundles of the selected locale
3271
- return this.loadLocaleBundles(libLocale).then(function () { return _this.updateLocaleDirection(); });
3294
+ return this.loadLocaleBundles(libLocale).then(function () {
3295
+ _this.updateLocaleDirection();
3296
+ _this.bundleLoaded.angular = true;
3297
+ _this.notifyLocaleChanged();
3298
+ });
3272
3299
  };
3273
3300
  I18nServiceImpl.prototype.deduceAppLocale = function () {
3274
3301
  // computation to find app default locale
@@ -3310,6 +3337,7 @@
3310
3337
  return defaultLanguage;
3311
3338
  };
3312
3339
  I18nServiceImpl.prototype.loadDefaultLocale = function () {
3340
+ Date.prototype["month"] = Date.prototype.getMonth;
3313
3341
  var locale = this.deduceAppLocale();
3314
3342
  return this.setSelectedLocale(locale);
3315
3343
  };
@@ -3356,6 +3384,11 @@
3356
3384
  I18nServiceImpl.prototype.getwidgetLocale = function () {
3357
3385
  return this.formatsByLocale;
3358
3386
  };
3387
+ I18nServiceImpl.prototype.notifyLocaleChanged = function () {
3388
+ if (this.bundleLoaded.moment && this.bundleLoaded.fullCalendar && this.bundleLoaded.angular && this.bundleLoaded.app) {
3389
+ this.app.notify('locale-changed', this.bundleLoaded.libLocale);
3390
+ }
3391
+ };
3359
3392
  return I18nServiceImpl;
3360
3393
  }(i2.AbstractI18nService));
3361
3394
  I18nServiceImpl.decorators = [