UNPKG

ng-web-share

Version:

This library helps to use native webshare framework in angular apps

185 lines (178 loc) 6.35 kB
import { __awaiter, __generator } 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 */ var WebShareService = /** @class */ (function () { function WebShareService() { this.webNavigator = null; this.webNavigator = window.navigator; } /** * @return {?} */ WebShareService.prototype.canShare = /** * @return {?} */ function () { return this.webNavigator !== null && this.webNavigator.share !== undefined; }; /** * @param {?} file * @return {?} */ WebShareService.prototype.canShareFile = /** * @param {?} file * @return {?} */ function (file) { return this.webNavigator !== null && this.webNavigator.share !== undefined && this.webNavigator.canShare({ files: file }); }; /** * @param {?} __0 * @return {?} */ WebShareService.prototype.share = /** * @param {?} __0 * @return {?} */ function (_a) { var _this = this; var title = _a.title, text = _a.text, url = _a.url, files = _a.files; return new Promise((/** * @param {?} resolve * @param {?} reject * @return {?} */ function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () { var shareObject, isShared, error_1; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!(this.webNavigator !== null && this.webNavigator.share !== undefined)) return [3 /*break*/, 5]; if (!((text === undefined || text === null) && (url === undefined || url === null))) return [3 /*break*/, 1]; console.warn("text and url both can't be empty, at least provide either text or url"); return [3 /*break*/, 4]; case 1: _a.trys.push([1, 3, , 4]); shareObject = { title: title, text: text, url: url }; if (files && files.length !== 0) { shareObject.files = files; } return [4 /*yield*/, this.webNavigator.share(shareObject)]; case 2: isShared = _a.sent(); resolve({ shared: true }); return [3 /*break*/, 4]; case 3: error_1 = _a.sent(); reject({ shared: false, error: error_1 }); return [3 /*break*/, 4]; case 4: return [3 /*break*/, 6]; case 5: reject({ shared: false, error: "This service/api is not supported in your Browser" }); _a.label = 6; case 6: return [2 /*return*/]; } }); }); })); }; WebShareService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ WebShareService.ctorParameters = function () { return []; }; /** @nocollapse */ WebShareService.ngInjectableDef = ɵɵdefineInjectable({ factory: function WebShareService_Factory() { return new WebShareService(); }, token: WebShareService, providedIn: "root" }); return WebShareService; }()); 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 */ var WebShareComponent = /** @class */ (function () { function WebShareComponent() { } /** * @return {?} */ WebShareComponent.prototype.ngOnInit = /** * @return {?} */ function () { }; WebShareComponent.decorators = [ { type: Component, args: [{ selector: 'lib-web-share', template: "\n <p>\n web-share works!\n </p>\n " }] } ]; /** @nocollapse */ WebShareComponent.ctorParameters = function () { return []; }; return WebShareComponent; }()); /** * @fileoverview added by tsickle * Generated from: lib/web-share.module.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var WebShareModule = /** @class */ (function () { function WebShareModule() { } WebShareModule.decorators = [ { type: NgModule, args: [{ declarations: [WebShareComponent], imports: [], exports: [WebShareComponent], providers: [WebShareService] },] } ]; return WebShareModule; }()); /** * @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