UNPKG

ng-web-share

Version:

This library helps to use native webshare framework in angular apps

160 lines (153 loc) 4.93 kB
import { __awaiter } from 'tslib'; import { Injectable, ɵɵdefineInjectable, Component, NgModule } from '@angular/core'; /** * @fileoverview added by tsickle * Generated from: lib/web-share.service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ 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) => __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 = ɵɵ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; } /** * @fileoverview added by tsickle * Generated from: lib/web-share.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class WebShareComponent { constructor() { } /** * @return {?} */ ngOnInit() { } } WebShareComponent.decorators = [ { type: Component, args: [{ selector: 'lib-web-share', template: ` <p> web-share works! </p> ` }] } ]; /** @nocollapse */ WebShareComponent.ctorParameters = () => []; /** * @fileoverview added by tsickle * Generated from: lib/web-share.module.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class WebShareModule { } WebShareModule.decorators = [ { type: NgModule, args: [{ declarations: [WebShareComponent], imports: [], exports: [WebShareComponent], providers: [WebShareService] },] } ]; /** * @fileoverview added by tsickle * Generated from: public-api.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * Generated from: ng-web-share.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export { WebShareComponent, WebShareModule, WebShareService }; //# sourceMappingURL=ng-web-share.js.map