mirror of
https://github.com/danielsogl/awesome-cordova-plugins.git
synced 2026-06-08 00:00:19 +08:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ba105be55f | |||
| 92d26eab94 | |||
| ce6e412788 | |||
| 7243ed3960 | |||
| 264670211d | |||
| 847147a5fa | |||
| 4639bf9a94 | |||
| abb77e3e08 | |||
| 975f08b7b5 | |||
| 773722b767 | |||
| 447aa56e3c | |||
| 8d22798278 | |||
| 30297fb81d | |||
| ac777fca40 | |||
| 43b70a12b5 | |||
| ef28078815 | |||
| e304ce0e53 | |||
| 247efa656a |
+38
-4
@@ -1,5 +1,40 @@
|
||||
<a name="4.3.3"></a>
|
||||
## [4.3.3](https://github.com/ionic-team/ionic-native/compare/4.3.2...v4.3.3) (2017-11-01)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **google-maps:** HtmlInfoWindow should extend BaseClass [#2034](https://github.com/ionic-team/ionic-native/issues/2034) ([#2035](https://github.com/ionic-team/ionic-native/issues/2035)) ([ce6e412](https://github.com/ionic-team/ionic-native/commit/ce6e412))
|
||||
|
||||
|
||||
|
||||
<a name="4.3.2"></a>
|
||||
## [4.3.2](https://github.com/ionic-team/ionic-native/compare/4.3.1...4.3.2) (2017-10-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **google-maps:** remove type from GoogleMapsEvent constant ([4639bf9](https://github.com/ionic-team/ionic-native/commit/4639bf9))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **pro:** support corova-plugin-ionic v2.0.0 ([975f08b](https://github.com/ionic-team/ionic-native/commit/975f08b))
|
||||
|
||||
|
||||
|
||||
<a name="4.3.1"></a>
|
||||
## [4.3.2](https://github.com/ionic-team/ionic-native/compare/v4.3.0...v4.3.2) (2017-10-06)
|
||||
## [4.3.1](https://github.com/ionic-team/ionic-native/compare/v4.3.1...4.3.1) (2017-10-06)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **pro:** Add support for Ionic Pro by incorporating cordova-plugin-ionic ([465d551](https://github.com/ionic-team/ionic-native/commit/465d551))
|
||||
|
||||
|
||||
|
||||
<a name="4.3.1"></a>
|
||||
## [4.3.1](https://github.com/ionic-team/ionic-native/compare/v4.3.0...v4.3.1) (2017-10-06)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
@@ -11,7 +46,6 @@
|
||||
|
||||
### Features
|
||||
|
||||
* **pro:** Add support for Ionic Pro by incorporating cordova-plugin-ionic ([465d551](https://github.com/ionic-team/ionic-native/commit/465d551))
|
||||
* **regula-document-reader:** separate initialization and scanning, add android ([#2013](https://github.com/ionic-team/ionic-native/issues/2013)) ([2179699](https://github.com/ionic-team/ionic-native/commit/2179699))
|
||||
|
||||
|
||||
@@ -1798,13 +1832,13 @@ The whole implementation has changed now. You must update your code.
|
||||
* **geolocation:** call correct clearFunction ([9e86a40](https://github.com/ionic-team/ionic-native/commit/9e86a40))
|
||||
* **plugin:** return originalMethod return value ([240f0f8](https://github.com/ionic-team/ionic-native/commit/240f0f8))
|
||||
* **plugin:** use call for id based clearFunction ([c2fdf39](https://github.com/ionic-team/ionic-native/commit/c2fdf39))
|
||||
* datepicker plugin, pluginref, and @Cordova wrapper ([499ead3](https://github.com/ionic-team/ionic-native/commit/499ead3))
|
||||
* datepicker plugin, pluginref, and [@Cordova](https://github.com/Cordova) wrapper ([499ead3](https://github.com/ionic-team/ionic-native/commit/499ead3))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **DatePicker:** Added DatePicker ([5afa58f](https://github.com/ionic-team/ionic-native/commit/5afa58f))
|
||||
* **plugin:** add sync option to @Cordova for sync functions ([17e3827](https://github.com/ionic-team/ionic-native/commit/17e3827))
|
||||
* **plugin:** add sync option to [@Cordova](https://github.com/Cordova) for sync functions ([17e3827](https://github.com/ionic-team/ionic-native/commit/17e3827))
|
||||
* **plugin:** call clearFunction with original fn args ([8f27fc9](https://github.com/ionic-team/ionic-native/commit/8f27fc9))
|
||||
* add app version plugin ([20cb01f](https://github.com/ionic-team/ionic-native/commit/20cb01f))
|
||||
* add app version plugin ([8b78521](https://github.com/ionic-team/ionic-native/commit/8b78521))
|
||||
|
||||
@@ -209,4 +209,13 @@ Example:
|
||||
someMethod(): Promise<any> {
|
||||
// anything here will only run if the plugin is available
|
||||
}
|
||||
```
|
||||
|
||||
#### CordovaFunctionOverride
|
||||
Wrap a stub function in a call to a Cordova plugin, checking if both Cordova and the required plugin are installed.
|
||||
|
||||
Example:
|
||||
```ts
|
||||
@CordovaFunctionOverride()
|
||||
someMethod(): Observable<any> { return; }
|
||||
```
|
||||
Generated
+5
-8
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ionic-native",
|
||||
"version": "4.3.1",
|
||||
"version": "4.3.3",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -6202,13 +6202,10 @@
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.0.tgz",
|
||||
"integrity": "sha1-p9sUqxV/nXqsalbmVeejhg05vyY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"symbol-observable": "1.0.4"
|
||||
}
|
||||
"version": "5.4.2",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.2.tgz",
|
||||
"integrity": "sha1-KjI2/L8D31e64G/Wly/ZnlwI/Pc=",
|
||||
"dev": true
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
|
||||
|
||||
+7
-7
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"name": "ionic-native",
|
||||
"version": "4.3.1",
|
||||
"version": "4.3.3",
|
||||
"description": "Native plugin wrappers for Cordova and Ionic with TypeScript, ES6+, Promise and Observable support",
|
||||
"homepage": "https://ionicframework.com/",
|
||||
"author": "Ionic Team <hi@ionic.io> (https://ionic.io)",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@angular/compiler": "4.1.3",
|
||||
"@angular/compiler-cli": "4.1.3",
|
||||
"@angular/core": "4.1.3",
|
||||
"@angular/compiler": "4.4.4",
|
||||
"@angular/compiler-cli": "4.4.4",
|
||||
"@angular/core": "4.4.4",
|
||||
"@types/cordova": "0.0.34",
|
||||
"@types/jasmine": "^2.5.51",
|
||||
"@types/node": "^7.0.27",
|
||||
@@ -39,12 +39,12 @@
|
||||
"q": "1.5.0",
|
||||
"queue": "4.2.1",
|
||||
"rimraf": "2.6.1",
|
||||
"rxjs": "5.4.0",
|
||||
"rxjs": "5.4.3",
|
||||
"semver": "5.3.0",
|
||||
"tslint": "3.15.1",
|
||||
"tslint-ionic-rules": "0.0.8",
|
||||
"typescript": "2.3.3",
|
||||
"zone.js": "0.8.12"
|
||||
"typescript": "2.3.4",
|
||||
"zone.js": "0.8.18"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "npm run test:watch",
|
||||
|
||||
@@ -41,7 +41,7 @@ module.exports = currentVersion => {
|
||||
docTypes: ['class'],
|
||||
getOutputPath: doc => doc.originalModule.replace(config.pluginDir + '/', '')
|
||||
.replace('/plugins', '')
|
||||
.replace('/index', '/README.md')
|
||||
.replace(/\/index$/, '/README.md')
|
||||
}];
|
||||
|
||||
})
|
||||
|
||||
@@ -375,6 +375,7 @@ export interface PolygonOptions {
|
||||
visible?: boolean;
|
||||
zIndex?: number;
|
||||
addHole?: Array<Array<ILatLng>>;
|
||||
clickable?: boolean;
|
||||
}
|
||||
|
||||
export interface PolylineOptions {
|
||||
@@ -384,6 +385,7 @@ export interface PolylineOptions {
|
||||
color?: string;
|
||||
width?: number;
|
||||
zIndex?: number;
|
||||
clickable?: boolean;
|
||||
}
|
||||
|
||||
export interface TileOverlayOptions {
|
||||
@@ -443,7 +445,7 @@ export class VisibleRegion implements ILatLngBounds {
|
||||
* @hidden
|
||||
* You can listen to these events where appropriate
|
||||
*/
|
||||
export const GoogleMapsEvent: { [eventName: string]: string; } = {
|
||||
export const GoogleMapsEvent = {
|
||||
MAP_READY: 'map_ready',
|
||||
MAP_LOADED: 'map_loaded',
|
||||
MAP_CLICK: 'map_click',
|
||||
@@ -517,7 +519,6 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = {
|
||||
* })
|
||||
* export class HomePage {
|
||||
* map: GoogleMap;
|
||||
* mapElement: HTMLElement;
|
||||
* constructor(private googleMaps: GoogleMaps) { }
|
||||
*
|
||||
* ionViewDidLoad() {
|
||||
@@ -525,7 +526,6 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = {
|
||||
* }
|
||||
*
|
||||
* loadMap() {
|
||||
* this.mapElement = document.getElementById('map');
|
||||
*
|
||||
* let mapOptions: GoogleMapOptions = {
|
||||
* camera: {
|
||||
@@ -538,7 +538,7 @@ export const GoogleMapsMapTypeId: { [mapType: string]: MapType; } = {
|
||||
* }
|
||||
* };
|
||||
*
|
||||
* this.map = this.googleMaps.create(this.mapElement, mapOptions);
|
||||
* this.map = this.googleMaps.create('map_canvas', mapOptions);
|
||||
*
|
||||
* // Wait the MAP_READY before using any methods.
|
||||
* this.map.one(GoogleMapsEvent.MAP_READY)
|
||||
@@ -623,9 +623,18 @@ export class GoogleMaps extends IonicNativePlugin {
|
||||
* @param options {any} Options
|
||||
* @return {GoogleMap}
|
||||
*/
|
||||
create(element: string | HTMLElement, options?: GoogleMapOptions): GoogleMap {
|
||||
let googleMap: GoogleMap = new GoogleMap(element, options);
|
||||
googleMap.set('_overlays', new BaseArrayClass());
|
||||
create(element: string | HTMLElement | GoogleMapOptions, options?: GoogleMapOptions): GoogleMap {
|
||||
if (element instanceof HTMLElement) {
|
||||
if (element.getAttribute('__pluginMapId')) {
|
||||
console.error('GoogleMaps', element.tagName + '[__pluginMapId=\'' + element.getAttribute('__pluginMapId') + '\'] has already map.');
|
||||
return;
|
||||
}
|
||||
} else if (typeof element === 'object') {
|
||||
options = <GoogleMapOptions>element;
|
||||
element = null;
|
||||
}
|
||||
let googleMap: GoogleMap = new GoogleMap(<HTMLElement>element, options);
|
||||
googleMap.set('_overlays', {});
|
||||
return googleMap;
|
||||
}
|
||||
|
||||
@@ -660,19 +669,17 @@ export class BaseClass {
|
||||
let overlay: Marker = this.get(args[args.length - 1].getId());
|
||||
if (!overlay) {
|
||||
let markerJS: any = args[args.length - 1];
|
||||
let markerId: string = markerJS.getId();
|
||||
let markerCluster: MarkerCluster = <MarkerCluster>this;
|
||||
overlay = new Marker(markerCluster.getMap(), markerJS);
|
||||
this.get('_overlays').push(markerJS.getId());
|
||||
this.set(markerJS.getId(), overlay);
|
||||
this.get('_overlays')[markerId] = overlay;
|
||||
markerJS.one(markerJS.getId() + '_remove', () => {
|
||||
let idx = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(markerJS.getId(), undefined);
|
||||
this.get('_overlays')[markerId] = null;
|
||||
});
|
||||
}
|
||||
args[args.length - 1] = overlay;
|
||||
} else {
|
||||
args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId());
|
||||
args[args.length - 1] = this._objectInstance.getMap().get('_overlays')[args[args.length - 1].getId()];
|
||||
}
|
||||
}
|
||||
observer.next(args);
|
||||
@@ -696,19 +703,17 @@ export class BaseClass {
|
||||
let overlay: Marker = this.get(args[args.length - 1].getId());
|
||||
if (!overlay) {
|
||||
let markerJS: any = args[args.length - 1];
|
||||
let markerId: string = markerJS.getId();
|
||||
let markerCluster: MarkerCluster = <MarkerCluster>this;
|
||||
overlay = new Marker(markerCluster.getMap(), markerJS);
|
||||
this.get('_overlays').push(markerJS.getId());
|
||||
this.set(markerJS.getId(), overlay);
|
||||
this.get('_overlays')[markerId] = overlay;
|
||||
markerJS.one(markerJS.getId() + '_remove', () => {
|
||||
let idx = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(markerJS.getId(), undefined);
|
||||
this.get('_overlays')[markerId] = null;
|
||||
});
|
||||
}
|
||||
args[args.length - 1] = overlay;
|
||||
} else {
|
||||
args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId());
|
||||
args[args.length - 1] = this._objectInstance.getMap().get('_overlays')[args[args.length - 1].getId()];
|
||||
}
|
||||
}
|
||||
resolve(args);
|
||||
@@ -757,19 +762,17 @@ export class BaseClass {
|
||||
let overlay: Marker = this.get(args[args.length - 1].getId());
|
||||
if (!overlay) {
|
||||
let markerJS: any = args[args.length - 1];
|
||||
let markerId: string = markerJS.getId();
|
||||
let markerCluster: MarkerCluster = <MarkerCluster>this;
|
||||
overlay = new Marker(markerCluster.getMap(), markerJS);
|
||||
this.get('_overlays').push(markerJS.getId());
|
||||
this.set(markerJS.getId(), overlay);
|
||||
this.get('_overlays')[markerId] = overlay;
|
||||
markerJS.one(markerJS.getId() + '_remove', () => {
|
||||
let idx = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(markerJS.getId(), undefined);
|
||||
this.get('_overlays')[markerId] = null;
|
||||
});
|
||||
}
|
||||
args[args.length - 1] = overlay;
|
||||
} else {
|
||||
args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId());
|
||||
args[args.length - 1] = this._objectInstance.getMap().get('_overlays')[args[args.length - 1].getId()];
|
||||
}
|
||||
}
|
||||
observer.next(args);
|
||||
@@ -793,19 +796,17 @@ export class BaseClass {
|
||||
let overlay: Marker = this.get(args[args.length - 1].getId());
|
||||
if (!overlay) {
|
||||
let markerJS: any = args[args.length - 1];
|
||||
let markerId: string = markerJS.getId();
|
||||
let markerCluster: MarkerCluster = <MarkerCluster>this;
|
||||
overlay = new Marker(markerCluster.getMap(), markerJS);
|
||||
this.get('_overlays').push(markerJS.getId());
|
||||
this.set(markerJS.getId(), overlay);
|
||||
this.get('_overlays')[markerId] = overlay;
|
||||
markerJS.one(markerJS.getId() + '_remove', () => {
|
||||
let idx = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(markerJS.getId(), undefined);
|
||||
this.get('_overlays')[markerId] = null;
|
||||
});
|
||||
}
|
||||
args[args.length - 1] = overlay;
|
||||
} else {
|
||||
args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId());
|
||||
args[args.length - 1] = this._objectInstance.getMap().get('_overlays')[args[args.length - 1].getId()];
|
||||
}
|
||||
}
|
||||
resolve(args);
|
||||
@@ -833,7 +834,7 @@ export class BaseClass {
|
||||
destroy(): void {
|
||||
let map: GoogleMap = this._objectInstance.getMap();
|
||||
if (map) {
|
||||
map.get('_overlays').set(this._objectInstance.getId(), undefined);
|
||||
delete this._objectInstance.getMap().get('_overlays')[this._objectInstance.getId()];
|
||||
}
|
||||
this._objectInstance.remove();
|
||||
}
|
||||
@@ -873,26 +874,65 @@ export class BaseArrayClass<T> extends BaseClass {
|
||||
* @param callback? {Function}
|
||||
*/
|
||||
@CordovaInstance({ sync: true })
|
||||
forEach(fn: ((element: T, index?: number) => void) | ((element: T, callback: () => void) => void), callback?: () => void): void {}
|
||||
forEach(fn: (element: T, index?: number) => void): void {}
|
||||
|
||||
/**
|
||||
* Iterate over each element, calling the provided callback.
|
||||
* @param fn {Function}
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@CordovaCheck()
|
||||
forEachAsync(fn: ((element: T, callback: () => void) => void)): Promise<void> {
|
||||
return new Promise<void>((resolve) => {
|
||||
this._objectInstance.forEach(fn, resolve);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterate over each element, then return a new value.
|
||||
* Then you can get the results of each callback.
|
||||
* @param fn {Function}
|
||||
* @param callback? {Function}
|
||||
* @return {Array<Object>} returns a new array with the results
|
||||
*/
|
||||
@CordovaInstance({ sync: true })
|
||||
map(fn: Function, callback?: ((element: T, index: number) => T) | ((element: T, callback: (newElement: T) => void) => void)): T[] { return; }
|
||||
map(fn: (element: T, index: number) => any): any[] { return; }
|
||||
|
||||
/**
|
||||
* Iterate over each element, calling the provided callback.
|
||||
* Then you can get the results of each callback.
|
||||
* @param fn {Function}
|
||||
* @param callback? {Function}
|
||||
* @return {Promise<any>} returns a new array with the results
|
||||
*/
|
||||
@CordovaCheck()
|
||||
mapAsync(fn: ((element: T, callback: (newElement: any) => void) => void)): Promise<any[]> {
|
||||
return new Promise<any[]>((resolve) => {
|
||||
this._objectInstance.map(fn, resolve);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* The filter() method creates a new array with all elements that pass the test implemented by the provided function.
|
||||
* @param fn {Function}
|
||||
* @param callback? {Function}
|
||||
* @return {Array<Object>} returns a new array with the results
|
||||
* @return {Array<Object>} returns a new filtered array
|
||||
*/
|
||||
@CordovaInstance({ sync: true })
|
||||
filter(fn: Function, callback?: ((element: T, index: number) => T) | ((element: T, callback: (newElement: T) => void) => void)): T[] { return; }
|
||||
filter(fn: (element: T, index: number) => boolean): T[] { return; }
|
||||
|
||||
/**
|
||||
* The filterAsync() method creates a new array with all elements that pass the test implemented by the provided function.
|
||||
* @param fn {Function}
|
||||
* @param callback? {Function}
|
||||
* @return {Promise<any>} returns a new filtered array
|
||||
*/
|
||||
@CordovaCheck()
|
||||
filterAsync(fn: (element: T, callback: (result: boolean) => void) => void): Promise<T[]> {
|
||||
return new Promise<any[]>((resolve) => {
|
||||
this._objectInstance.filter(fn, resolve);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a reference to the underlying Array.
|
||||
@@ -1349,10 +1389,69 @@ export class GoogleMap extends BaseClass {
|
||||
constructor(element: string | HTMLElement, options?: GoogleMapOptions) {
|
||||
super();
|
||||
if (checkAvailability(GoogleMaps.getPluginRef(), null, GoogleMaps.getPluginName()) === true) {
|
||||
if (typeof element === 'string') {
|
||||
element = document.getElementById(<string>element);
|
||||
if (element instanceof HTMLElement) {
|
||||
this._objectInstance = GoogleMaps.getPlugin().Map.getMap(element, options);
|
||||
} else if (typeof element === 'string') {
|
||||
let dummyObj: any = new (GoogleMaps.getPlugin().BaseClass)();
|
||||
this._objectInstance = dummyObj;
|
||||
let onListeners: any[] = [];
|
||||
let oneListeners: any[] = [];
|
||||
let _origAddEventListener: any = this._objectInstance.addEventListener;
|
||||
let _origAddEventListenerOnce: any = this._objectInstance.addEventListenerOnce;
|
||||
this._objectInstance.addEventListener = (eventName: string, fn: () => void) => {
|
||||
if (eventName === GoogleMapsEvent.MAP_READY) {
|
||||
_origAddEventListener.call(dummyObj, eventName, fn);
|
||||
} else {
|
||||
onListeners.push([dummyObj, fn]);
|
||||
}
|
||||
};
|
||||
this._objectInstance.on = this._objectInstance.addEventListener;
|
||||
|
||||
this._objectInstance.addEventListenerOnce = (eventName: string, fn: () => void) => {
|
||||
if (eventName === GoogleMapsEvent.MAP_READY) {
|
||||
_origAddEventListenerOnce.call(dummyObj, eventName, fn);
|
||||
} else {
|
||||
oneListeners.push([dummyObj, fn]);
|
||||
}
|
||||
};
|
||||
this._objectInstance.one = this._objectInstance.addEventListenerOnce;
|
||||
(new Promise<any>((resolve, reject) => {
|
||||
let count: number = 0;
|
||||
let timer: any = setInterval(() => {
|
||||
let target = document.querySelector('.show-page #' + element);
|
||||
if (target) {
|
||||
clearInterval(timer);
|
||||
resolve(target);
|
||||
} else {
|
||||
if (count++ < 20) {
|
||||
return;
|
||||
}
|
||||
clearInterval(timer);
|
||||
this._objectInstance.remove();
|
||||
console.error('Can not find the element [#' + element + ']');
|
||||
reject();
|
||||
}
|
||||
}, 100);
|
||||
}))
|
||||
.then((target: any) => {
|
||||
this._objectInstance = GoogleMaps.getPlugin().Map.getMap(target, options);
|
||||
this._objectInstance.one(GoogleMapsEvent.MAP_READY, () => {
|
||||
this.set('_overlays', {});
|
||||
onListeners.forEach((args) => {
|
||||
this.on.apply(this, args);
|
||||
});
|
||||
oneListeners.forEach((args) => {
|
||||
this.one.apply(this, args);
|
||||
});
|
||||
dummyObj.trigger(GoogleMapsEvent.MAP_READY);
|
||||
});
|
||||
})
|
||||
.catch(() => {
|
||||
this._objectInstance = null;
|
||||
});
|
||||
} else if (element === null && options) {
|
||||
this._objectInstance = GoogleMaps.getPlugin().Map.getMap(null, options);
|
||||
}
|
||||
this._objectInstance = GoogleMaps.getPlugin().Map.getMap(element, options);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1360,8 +1459,14 @@ export class GoogleMap extends BaseClass {
|
||||
* Changes the map div
|
||||
* @param domNode
|
||||
*/
|
||||
@CordovaInstance({ sync: true })
|
||||
setDiv(domNode?: HTMLElement): void { }
|
||||
@InstanceCheck()
|
||||
setDiv(domNode?: HTMLElement | string): void {
|
||||
if (typeof domNode === 'string') {
|
||||
this._objectInstance.setDiv(document.querySelector('.show-page #' + domNode));
|
||||
} else {
|
||||
this._objectInstance.setDiv(domNode);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the map HTML element
|
||||
@@ -1517,9 +1622,12 @@ export class GoogleMap extends BaseClass {
|
||||
*/
|
||||
@CordovaInstance()
|
||||
remove(): Promise<any> {
|
||||
this.get('_overlays').forEach((overlayId: string) => this.set(overlayId, null));
|
||||
this.get('_overlays').empty();
|
||||
this.set('_overlays', undefined);
|
||||
if (this.get('_overlays')) {
|
||||
Object.keys(this.get('_overlays')).forEach((overlayId: string) => {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
delete this.get('_overlays')[overlayId];
|
||||
});
|
||||
}
|
||||
return new Promise<any>((resolve) => {
|
||||
this._objectInstance.remove(() => resolve());
|
||||
});
|
||||
@@ -1531,8 +1639,12 @@ export class GoogleMap extends BaseClass {
|
||||
*/
|
||||
@InstanceCheck()
|
||||
clear(): Promise<any> {
|
||||
this.get('_overlays').forEach((overlayId: string) => this.set(overlayId, null));
|
||||
this.get('_overlays').empty();
|
||||
if (this.get('_overlays')) {
|
||||
Object.keys(this.get('_overlays')).forEach((overlayId: string) => {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
delete this.get('_overlays')[overlayId];
|
||||
});
|
||||
}
|
||||
return new Promise<any>((resolve) => {
|
||||
this._objectInstance.clear(() => resolve());
|
||||
});
|
||||
@@ -1627,14 +1739,14 @@ export class GoogleMap extends BaseClass {
|
||||
return new Promise<Marker>((resolve, reject) => {
|
||||
this._objectInstance.addMarker(options, (marker: any) => {
|
||||
if (marker) {
|
||||
let markerId: string = marker.getId();
|
||||
let overlayId: string = marker.getId();
|
||||
const overlay: Marker = new Marker(this, marker);
|
||||
this.get('_overlays').push(markerId);
|
||||
this.set(markerId, overlay);
|
||||
marker.one(markerId + '_remove', () => {
|
||||
let idx: number = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(markerId, undefined);
|
||||
this.get('_overlays')[overlayId] = overlay;
|
||||
marker.one(overlayId + '_remove', () => {
|
||||
if (this.get('_overlays')) {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
overlay.destroy();
|
||||
}
|
||||
});
|
||||
resolve(overlay);
|
||||
} else {
|
||||
@@ -1649,13 +1761,14 @@ export class GoogleMap extends BaseClass {
|
||||
return new Promise<MarkerCluster>((resolve, reject) => {
|
||||
this._objectInstance.addMarkerCluster(options, (markerCluster: any) => {
|
||||
if (markerCluster) {
|
||||
let overlayId = markerCluster.getId();
|
||||
const overlay = new MarkerCluster(this, markerCluster);
|
||||
this.get('_overlays').push(markerCluster.getId());
|
||||
this.set(markerCluster.getId(), overlay);
|
||||
this.get('_overlays')[overlayId] = overlay;
|
||||
markerCluster.one('remove', () => {
|
||||
let idx: number = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(markerCluster.getId(), undefined);
|
||||
if (this.get('_overlays')) {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
overlay.destroy();
|
||||
}
|
||||
});
|
||||
markerCluster.set('_overlays', new BaseArrayClass());
|
||||
resolve(overlay);
|
||||
@@ -1675,14 +1788,14 @@ export class GoogleMap extends BaseClass {
|
||||
return new Promise<Circle>((resolve, reject) => {
|
||||
this._objectInstance.addCircle(options, (circle: any) => {
|
||||
if (circle) {
|
||||
let circleId: string = circle.getId();
|
||||
let overlayId: string = circle.getId();
|
||||
const overlay = new Circle(this, circle);
|
||||
this.get('_overlays').push(circleId);
|
||||
this.set(circleId, overlay);
|
||||
circle.one(circleId + '_remove', () => {
|
||||
let idx: number = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(circleId, undefined);
|
||||
this.get('_overlays')[overlayId] = overlay;
|
||||
circle.one(overlayId + '_remove', () => {
|
||||
if (this.get('_overlays')) {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
overlay.destroy();
|
||||
}
|
||||
});
|
||||
resolve(overlay);
|
||||
} else {
|
||||
@@ -1701,14 +1814,14 @@ export class GoogleMap extends BaseClass {
|
||||
return new Promise<Polygon>((resolve, reject) => {
|
||||
this._objectInstance.addPolygon(options, (polygon: any) => {
|
||||
if (polygon) {
|
||||
let polygonId: string = polygon.getId();
|
||||
let overlayId: string = polygon.getId();
|
||||
const overlay = new Polygon(this, polygon);
|
||||
this.get('_overlays').push(polygonId);
|
||||
this.set(polygonId, overlay);
|
||||
polygon.one(polygonId + '_remove', () => {
|
||||
let idx: number = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(polygonId, undefined);
|
||||
this.get('_overlays')[overlayId] = overlay;
|
||||
polygon.one(overlayId + '_remove', () => {
|
||||
if (this.get('_overlays')) {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
overlay.destroy();
|
||||
}
|
||||
});
|
||||
resolve(overlay);
|
||||
} else {
|
||||
@@ -1727,14 +1840,14 @@ export class GoogleMap extends BaseClass {
|
||||
return new Promise<Polyline>((resolve, reject) => {
|
||||
this._objectInstance.addPolyline(options, (polyline: any) => {
|
||||
if (polyline) {
|
||||
let polylineId: string = polyline.getId();
|
||||
let overlayId: string = polyline.getId();
|
||||
const overlay = new Polyline(this, polyline);
|
||||
this.get('_overlays').push(polylineId);
|
||||
this.set(polylineId, overlay);
|
||||
polyline.one(polylineId + '_remove', () => {
|
||||
let idx: number = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(polylineId, undefined);
|
||||
this.get('_overlays')[overlayId] = overlay;
|
||||
polyline.one(overlayId + '_remove', () => {
|
||||
if (this.get('_overlays')) {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
overlay.destroy();
|
||||
}
|
||||
});
|
||||
resolve(overlay);
|
||||
} else {
|
||||
@@ -1752,14 +1865,14 @@ export class GoogleMap extends BaseClass {
|
||||
return new Promise<TileOverlay>((resolve, reject) => {
|
||||
this._objectInstance.addTileOverlay(options, (tileOverlay: any) => {
|
||||
if (tileOverlay) {
|
||||
let tileOverlayId: string = tileOverlay.getId();
|
||||
let overlayId: string = tileOverlay.getId();
|
||||
const overlay = new TileOverlay(this, tileOverlay);
|
||||
this.get('_overlays').push(tileOverlayId);
|
||||
this.set(tileOverlayId, overlay);
|
||||
tileOverlay.one(tileOverlayId + '_remove', () => {
|
||||
let idx: number = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(tileOverlayId, undefined);
|
||||
this.get('_overlays')[overlayId] = overlay;
|
||||
tileOverlay.one(overlayId + '_remove', () => {
|
||||
if (this.get('_overlays')) {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
overlay.destroy();
|
||||
}
|
||||
});
|
||||
resolve(overlay);
|
||||
} else {
|
||||
@@ -1777,14 +1890,14 @@ export class GoogleMap extends BaseClass {
|
||||
return new Promise<GroundOverlay>((resolve, reject) => {
|
||||
this._objectInstance.addGroundOverlay(options, (groundOverlay: any) => {
|
||||
if (groundOverlay) {
|
||||
let groundOverlayId: string = groundOverlay.getId();
|
||||
let overlayId: string = groundOverlay.getId();
|
||||
const overlay = new GroundOverlay(this, groundOverlay);
|
||||
this.get('_overlays').push(groundOverlayId);
|
||||
this.set(groundOverlayId, overlay);
|
||||
groundOverlay.one(groundOverlayId + '_remove', () => {
|
||||
let idx: number = this.get('_overlays').indexOf(overlay);
|
||||
this.get('_overlays').removeAt(idx);
|
||||
this.set(groundOverlayId, undefined);
|
||||
this.get('_overlays')[overlayId] = overlay;
|
||||
groundOverlay.one(overlayId + '_remove', () => {
|
||||
if (this.get('_overlays')) {
|
||||
this.get('_overlays')[overlayId] = null;
|
||||
overlay.destroy();
|
||||
}
|
||||
});
|
||||
resolve(overlay);
|
||||
} else {
|
||||
@@ -1822,6 +1935,7 @@ export class GoogleMap extends BaseClass {
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1938,7 +2052,7 @@ export class GroundOverlay extends BaseClass {
|
||||
*/
|
||||
@CordovaCheck()
|
||||
remove(): void {
|
||||
this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined);
|
||||
delete this._objectInstance.getMap().get('_overlays')[this.getId()];
|
||||
this._objectInstance.remove();
|
||||
this.destroy();
|
||||
}
|
||||
@@ -1953,18 +2067,11 @@ export class GroundOverlay extends BaseClass {
|
||||
pluginRef: 'plugin.google.maps.HtmlInfoWindow',
|
||||
repo: ''
|
||||
})
|
||||
export class HtmlInfoWindow<T> extends IonicNativePlugin {
|
||||
private _objectInstance: any;
|
||||
export class HtmlInfoWindow extends BaseClass {
|
||||
|
||||
constructor(initialData?: any) {
|
||||
constructor() {
|
||||
super();
|
||||
if (checkAvailability(HtmlInfoWindow.getPluginRef(), null, HtmlInfoWindow.getPluginName()) === true) {
|
||||
if (initialData instanceof GoogleMaps.getPlugin().HtmlInfoWindow) {
|
||||
this._objectInstance = initialData;
|
||||
} else {
|
||||
this._objectInstance = new (HtmlInfoWindow.getPlugin())();
|
||||
}
|
||||
}
|
||||
this._objectInstance = new (GoogleMaps.getPlugin().HtmlInfoWindow)();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1977,9 +2084,10 @@ export class HtmlInfoWindow<T> extends IonicNativePlugin {
|
||||
/**
|
||||
* Set your HTML contents.
|
||||
* @param content {any} String containing text or HTML element
|
||||
* @param cssOptions? {any} CSS styles for the container element of HTMLInfoWindow
|
||||
*/
|
||||
@CordovaInstance()
|
||||
setContent(content: string | Element): void {}
|
||||
setContent(content: string | Element, cssOptions?: any): void {}
|
||||
|
||||
/**
|
||||
* Open the htmlInfoWindow
|
||||
@@ -2122,7 +2230,7 @@ export class Marker extends BaseClass {
|
||||
*/
|
||||
@CordovaCheck()
|
||||
remove(): void {
|
||||
this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined);
|
||||
delete this._objectInstance.getMap().get('_overlays')[this.getId()];
|
||||
this._objectInstance.remove();
|
||||
this.destroy();
|
||||
}
|
||||
@@ -2244,7 +2352,7 @@ export class MarkerCluster extends BaseClass {
|
||||
@InstanceCheck()
|
||||
remove(): void {
|
||||
this._objectInstance.set('_overlays', undefined);
|
||||
this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined);
|
||||
delete this._objectInstance.getMap().get('_overlays')[this.getId()];
|
||||
this._objectInstance.remove();
|
||||
this.destroy();
|
||||
}
|
||||
@@ -2295,8 +2403,10 @@ export class Polygon extends BaseClass {
|
||||
* You can modify the points.
|
||||
* @return {BaseArrayClass<ILatLng>}
|
||||
*/
|
||||
@CordovaInstance({ sync: true })
|
||||
getPoints(): BaseArrayClass<ILatLng> { return; }
|
||||
@CordovaCheck()
|
||||
getPoints(): BaseArrayClass<ILatLng> {
|
||||
return new BaseArrayClass<ILatLng>(this._objectInstance.getPoints());
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the polygon holes.
|
||||
@@ -2310,8 +2420,15 @@ export class Polygon extends BaseClass {
|
||||
* You can modify the holes.
|
||||
* @return {BaseArrayClass<ILatLng[]>}
|
||||
*/
|
||||
@CordovaInstance({ sync: true })
|
||||
getHoles(): BaseArrayClass<ILatLng[]> { return; }
|
||||
@CordovaCheck()
|
||||
getHoles(): BaseArrayClass<ILatLng[]> {
|
||||
let holes: ILatLng[][] = this._objectInstance.getPoints();
|
||||
let results: BaseArrayClass<ILatLng[]> = new BaseArrayClass<ILatLng[]>();
|
||||
holes.forEach((hole: ILatLng[]) => {
|
||||
results.push(hole);
|
||||
});
|
||||
return results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the filling color (inner color)
|
||||
@@ -2387,7 +2504,7 @@ export class Polygon extends BaseClass {
|
||||
*/
|
||||
@InstanceCheck()
|
||||
remove(): void {
|
||||
this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined);
|
||||
delete this._objectInstance.getMap().get('_overlays')[this.getId()];
|
||||
this._objectInstance.remove();
|
||||
this.destroy();
|
||||
}
|
||||
@@ -2456,9 +2573,12 @@ export class Polyline extends BaseClass {
|
||||
/**
|
||||
* Return an instance of the BaseArrayClass
|
||||
* You can modify the points.
|
||||
* @return {BaseArrayClass<ILatLng>}
|
||||
*/
|
||||
@CordovaInstance({ sync: true })
|
||||
getPoints(): BaseArrayClass<ILatLng> { return; }
|
||||
@CordovaCheck()
|
||||
getPoints(): BaseArrayClass<ILatLng> {
|
||||
return new BaseArrayClass<ILatLng>(this._objectInstance.getPoints());
|
||||
}
|
||||
|
||||
/**
|
||||
* When true, edges of the polyline are interpreted as geodesic and will follow the curvature of the Earth.
|
||||
@@ -2548,7 +2668,7 @@ export class Polyline extends BaseClass {
|
||||
*/
|
||||
@InstanceCheck()
|
||||
remove(): void {
|
||||
this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined);
|
||||
delete this._objectInstance.getMap().get('_overlays')[this.getId()];
|
||||
this._objectInstance.remove();
|
||||
this.destroy();
|
||||
}
|
||||
@@ -2647,7 +2767,7 @@ export class TileOverlay extends BaseClass {
|
||||
*/
|
||||
@CordovaCheck()
|
||||
remove(): void {
|
||||
this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined);
|
||||
delete this._objectInstance.getMap().get('_overlays')[this.getId()];
|
||||
this._objectInstance.remove();
|
||||
this.destroy();
|
||||
}
|
||||
|
||||
@@ -301,7 +301,8 @@ export enum OSActionType {
|
||||
* The OneSignal plugin is an client implementation for using the [OneSignal](https://onesignal.com/) Service.
|
||||
* OneSignal is a simple implementation for delivering push notifications.
|
||||
*
|
||||
* Requires Cordova plugin: `onesignal-cordova-plugin`. For more info, please see the [OneSignal Cordova Docs](https://documentation.onesignal.com/docs/phonegap-sdk-installation).
|
||||
* Please view the official [OneSignal Ionic SDK Installation](https://documentation.onesignal.com/docs/ionic-sdk-setup) guide
|
||||
* for more information.
|
||||
*
|
||||
* #### Icons
|
||||
* If you want to use generated icons with command `ionic cordova resources`:
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Plugin, Cordova, CordovaInstance, IonicNativePlugin } from '@ionic-native/core';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
|
||||
/**
|
||||
* Information about the currently running app
|
||||
@@ -21,6 +22,15 @@ export interface DeployInfo {
|
||||
binary_version: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Object for manually configuring deploy
|
||||
*/
|
||||
export interface DeployConfig {
|
||||
appId?: string;
|
||||
host?: string;
|
||||
channel?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hidden
|
||||
*/
|
||||
@@ -30,68 +40,61 @@ export class ProDeploy {
|
||||
|
||||
/**
|
||||
* Re-initialize Deploy plugin with a new App ID and host. Not used in most cases.
|
||||
* @param appId An Ionic Pro app ID
|
||||
* @param host An Ionic Pro live update API
|
||||
* @param config A valid Deploy config object
|
||||
*/
|
||||
@CordovaInstance()
|
||||
init(appId: string, host: string): Promise<any> { return; }
|
||||
|
||||
@CordovaInstance()
|
||||
debug(): Promise<any> { return; }
|
||||
|
||||
@CordovaInstance()
|
||||
clearDebug(): Promise<any> { return; }
|
||||
init(config: DeployConfig): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Check a channel for an available update
|
||||
* @param appId An Ionic Pro app ID
|
||||
* @param channelName An Ionic Pro channel name
|
||||
* @return {Promise<string>} Resolves with 'true' or 'false', or rejects with an error.
|
||||
*/
|
||||
@CordovaInstance()
|
||||
check(appId: string, channelName: string): Promise<any> { return; }
|
||||
@CordovaInstance({
|
||||
observable: true
|
||||
})
|
||||
check(): Promise<string> { return; }
|
||||
|
||||
/**
|
||||
* Download an available version
|
||||
* @param appId An Ionic Pro app ID
|
||||
* @return {Observable<any>} Updates with percent completion, or errors with a message.
|
||||
*/
|
||||
@CordovaInstance()
|
||||
download(appId: string): Promise<any> { return; }
|
||||
@CordovaInstance({
|
||||
observable: true
|
||||
})
|
||||
download(): Observable<any> { return; }
|
||||
|
||||
/**
|
||||
* Unzip the latest downloaded version
|
||||
* @param appId An Ionic Pro app ID
|
||||
* @return {Observable<any>} Updates with percent completion, or errors with a message.
|
||||
*/
|
||||
@CordovaInstance()
|
||||
extract(appId: string): Promise<any> { return; }
|
||||
extract(): Observable<any> { return; }
|
||||
|
||||
/**
|
||||
* Reload app with the deployed version
|
||||
* @param appId An Ionic Pro app ID
|
||||
*/
|
||||
@CordovaInstance()
|
||||
redirect(appId: string): Promise<any> { return; }
|
||||
redirect(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Get info about the version running on the device
|
||||
* @param appId An Ionic Pro app ID
|
||||
* @return {Promise<DeployInfo>} Information about the current version running on the app.
|
||||
*/
|
||||
@CordovaInstance()
|
||||
info(appId: string): Promise<DeployInfo> { return; }
|
||||
info(): Promise<DeployInfo> { return; }
|
||||
|
||||
/**
|
||||
* List versions stored on the device
|
||||
* @param appId An Ionic Pro app ID
|
||||
*/
|
||||
@CordovaInstance()
|
||||
getVersions(appId: string): Promise<any> { return; }
|
||||
getVersions(): Promise<any> { return; }
|
||||
|
||||
/**
|
||||
* Delete a version stored on the device by UUID
|
||||
* @param appId An Ionic Pro app ID
|
||||
* @param version A version UUID
|
||||
*/
|
||||
@CordovaInstance()
|
||||
deleteVersion(appId: string, version: string): Promise<any> { return; }
|
||||
deleteVersion(version: string): Promise<any> { return; }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user