UNPKG

ng-web-share

Version:

This library helps to use native webshare framework in angular apps

103 lines 7.92 kB
/** * @fileoverview added by tsickle * Generated from: lib/web-share.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; export class WebShareService { constructor() { this.webNavigator = null; this.webNavigator = window.navigator; } /** * @return {?} */ canShare() { return this.webNavigator !== null && this.webNavigator.share !== undefined; } /** * @param {?} file * @return {?} */ canShareFile(file) { return this.webNavigator !== null && this.webNavigator.share !== undefined && this.webNavigator.canShare({ files: file }); } /** * @param {?} __0 * @return {?} */ share({ title, text, url, files }) { return new Promise((/** * @param {?} resolve * @param {?} reject * @return {?} */ (resolve, reject) => tslib_1.__awaiter(this, void 0, void 0, function* () { if (this.webNavigator !== null && this.webNavigator.share !== undefined) { if ((text === undefined || text === null) && (url === undefined || url === null)) { console.warn(`text and url both can't be empty, at least provide either text or url`); } else { try { /** @type {?} */ const shareObject = { title, text, url }; if (files && files.length !== 0) { shareObject.files = files; } /** @type {?} */ const isShared = yield this.webNavigator.share(shareObject); resolve({ shared: true }); } catch (error) { reject({ shared: false, error }); } } } else { reject({ shared: false, error: `This service/api is not supported in your Browser` }); } }))); } } WebShareService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ WebShareService.ctorParameters = () => []; /** @nocollapse */ WebShareService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function WebShareService_Factory() { return new WebShareService(); }, token: WebShareService, providedIn: "root" }); if (false) { /** @type {?} */ WebShareService.prototype.webNavigator; } /** * @record */ function ShareObject() { } if (false) { /** @type {?} */ ShareObject.prototype.title; /** @type {?} */ ShareObject.prototype.text; /** @type {?} */ ShareObject.prototype.url; /** @type {?|undefined} */ ShareObject.prototype.files; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNoYXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy13ZWItc2hhcmUvIiwic291cmNlcyI6WyJsaWIvd2ViLXNoYXJlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGVBQWU7SUFFMUI7UUFEQSxpQkFBWSxHQUFRLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFDdkMsQ0FBQzs7OztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQztJQUM3RSxDQUFDOzs7OztJQUVELFlBQVksQ0FBQyxJQUFRO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUgsQ0FBQzs7Ozs7SUFFRCxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWlFO1FBQzlGLE9BQU8sSUFBSSxPQUFPOzs7OztRQUFDLENBQU8sT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO2dCQUN2RSxJQUNFLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDO29CQUNyQyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQyxFQUNuQztvQkFDQSxPQUFPLENBQUMsSUFBSSxDQUFDLHVFQUF1RSxDQUFDLENBQUM7aUJBQ3ZGO3FCQUFNO29CQUNMLElBQUk7OzhCQUNJLFdBQVcsR0FBZ0I7NEJBQzdCLEtBQUs7NEJBQ0wsSUFBSTs0QkFDSixHQUFHO3lCQUNOO3dCQUNELElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFOzRCQUM3QixXQUFXLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzt5QkFDN0I7OzhCQUNLLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQzt3QkFDM0QsT0FBTyxDQUFDOzRCQUNOLE1BQU0sRUFBRSxJQUFJO3lCQUNiLENBQUMsQ0FBQztxQkFDSjtvQkFBQyxPQUFPLEtBQUssRUFBRTt3QkFDZCxNQUFNLENBQUM7NEJBQ0wsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsS0FBSzt5QkFDTixDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxNQUFNLENBQUM7b0JBQ0wsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsS0FBSyxFQUFFLG1EQUFtRDtpQkFDM0QsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUEsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBckRGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7OztJQUVDLHVDQUF5Qjs7Ozs7QUFvRDNCLDBCQUtDOzs7SUFKQyw0QkFBYzs7SUFDZCwyQkFBYTs7SUFDYiwwQkFBWTs7SUFDWiw0QkFBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2ViU2hhcmVTZXJ2aWNlIHtcbiAgd2ViTmF2aWdhdG9yOiBhbnkgPSBudWxsO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLndlYk5hdmlnYXRvciA9IHdpbmRvdy5uYXZpZ2F0b3I7XG4gIH1cblxuICBjYW5TaGFyZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53ZWJOYXZpZ2F0b3IgIT09IG51bGwgJiYgdGhpcy53ZWJOYXZpZ2F0b3Iuc2hhcmUgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNhblNoYXJlRmlsZShmaWxlOiBbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndlYk5hdmlnYXRvciAhPT0gbnVsbCAmJiB0aGlzLndlYk5hdmlnYXRvci5zaGFyZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMud2ViTmF2aWdhdG9yLmNhblNoYXJlKHsgZmlsZXM6IGZpbGUgfSk7XG4gIH1cblxuICBzaGFyZSh7IHRpdGxlLCB0ZXh0LCB1cmwsIGZpbGVzIH06IHsgdGl0bGU6IHN0cmluZywgdGV4dD86IHN0cmluZywgdXJsPzogc3RyaW5nLCBmaWxlcz86IGFueVtdIH0pIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMud2ViTmF2aWdhdG9yICE9PSBudWxsICYmIHRoaXMud2ViTmF2aWdhdG9yLnNoYXJlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0ZXh0ID09PSB1bmRlZmluZWQgfHwgdGV4dCA9PT0gbnVsbCkgJiZcbiAgICAgICAgICAodXJsID09PSB1bmRlZmluZWQgfHwgdXJsID09PSBudWxsKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYHRleHQgYW5kIHVybCBib3RoIGNhbid0IGJlIGVtcHR5LCBhdCBsZWFzdCBwcm92aWRlIGVpdGhlciB0ZXh0IG9yIHVybGApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzaGFyZU9iamVjdDogU2hhcmVPYmplY3QgPSB7XG4gICAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB1cmxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgc2hhcmVPYmplY3QuZmlsZXMgPSBmaWxlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkID0gYXdhaXQgdGhpcy53ZWJOYXZpZ2F0b3Iuc2hhcmUoc2hhcmVPYmplY3QpO1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIHNoYXJlZDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICAgIHNoYXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgc2hhcmVkOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogYFRoaXMgc2VydmljZS9hcGkgaXMgbm90IHN1cHBvcnRlZCBpbiB5b3VyIEJyb3dzZXJgXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmludGVyZmFjZSBTaGFyZU9iamVjdCB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGZpbGVzPzogYW55W107XG59XG4iXX0=