ng-web-share
Version:
This library helps to use native webshare framework in angular apps
125 lines • 9.09 kB
JavaScript
/**
* @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";
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 tslib_1.__awaiter(_this, void 0, void 0, function () {
var shareObject, isShared, error_1;
return tslib_1.__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 = i0.ɵɵdefineInjectable({ factory: function WebShareService_Factory() { return new WebShareService(); }, token: WebShareService, providedIn: "root" });
return WebShareService;
}());
export { 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;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNoYXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy13ZWItc2hhcmUvIiwic291cmNlcyI6WyJsaWIvd2ViLXNoYXJlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7SUFLRTtRQURBLGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUN2QyxDQUFDOzs7O0lBRUQsa0NBQVE7OztJQUFSO1FBQ0UsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7SUFDN0UsQ0FBQzs7Ozs7SUFFRCxzQ0FBWTs7OztJQUFaLFVBQWEsSUFBUTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVILENBQUM7Ozs7O0lBRUQsK0JBQUs7Ozs7SUFBTCxVQUFNLEVBQTBGO1FBQWhHLGlCQW9DQztZQXBDTyxnQkFBSyxFQUFFLGNBQUksRUFBRSxZQUFHLEVBQUUsZ0JBQUs7UUFDN0IsT0FBTyxJQUFJLE9BQU87Ozs7O1FBQUMsVUFBTyxPQUFPLEVBQUUsTUFBTTs7Ozs7NkJBQ25DLENBQUEsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFBLEVBQW5FLHdCQUFtRTs2QkFFbkUsQ0FBQSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQzs0QkFDckMsQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQSxFQURuQyx3QkFDbUM7d0JBRW5DLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUVBQXVFLENBQUMsQ0FBQzs7Ozt3QkFHOUUsV0FBVyxHQUFnQjs0QkFDN0IsS0FBSyxPQUFBOzRCQUNMLElBQUksTUFBQTs0QkFDSixHQUFHLEtBQUE7eUJBQ047d0JBQ0QsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQzdCLFdBQVcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO3lCQUM3Qjt3QkFDZ0IscUJBQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUE7O3dCQUFyRCxRQUFRLEdBQUcsU0FBMEM7d0JBQzNELE9BQU8sQ0FBQzs0QkFDTixNQUFNLEVBQUUsSUFBSTt5QkFDYixDQUFDLENBQUM7Ozs7d0JBRUgsTUFBTSxDQUFDOzRCQUNMLE1BQU0sRUFBRSxLQUFLOzRCQUNiLEtBQUssU0FBQTt5QkFDTixDQUFDLENBQUM7Ozs7d0JBSVAsTUFBTSxDQUFDOzRCQUNMLE1BQU0sRUFBRSxLQUFLOzRCQUNiLEtBQUssRUFBRSxtREFBbUQ7eUJBQzNELENBQUMsQ0FBQzs7Ozs7YUFFTixFQUFDLENBQUM7SUFDTCxDQUFDOztnQkFyREYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7MEJBSkQ7Q0F3REMsQUF0REQsSUFzREM7U0FuRFksZUFBZTs7O0lBQzFCLHVDQUF5Qjs7Ozs7QUFvRDNCLDBCQUtDOzs7SUFKQyw0QkFBYzs7SUFDZCwyQkFBYTs7SUFDYiwwQkFBWTs7SUFDWiw0QkFBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2ViU2hhcmVTZXJ2aWNlIHtcbiAgd2ViTmF2aWdhdG9yOiBhbnkgPSBudWxsO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLndlYk5hdmlnYXRvciA9IHdpbmRvdy5uYXZpZ2F0b3I7XG4gIH1cblxuICBjYW5TaGFyZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53ZWJOYXZpZ2F0b3IgIT09IG51bGwgJiYgdGhpcy53ZWJOYXZpZ2F0b3Iuc2hhcmUgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNhblNoYXJlRmlsZShmaWxlOiBbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndlYk5hdmlnYXRvciAhPT0gbnVsbCAmJiB0aGlzLndlYk5hdmlnYXRvci5zaGFyZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMud2ViTmF2aWdhdG9yLmNhblNoYXJlKHsgZmlsZXM6IGZpbGUgfSk7XG4gIH1cblxuICBzaGFyZSh7IHRpdGxlLCB0ZXh0LCB1cmwsIGZpbGVzIH06IHsgdGl0bGU6IHN0cmluZywgdGV4dD86IHN0cmluZywgdXJsPzogc3RyaW5nLCBmaWxlcz86IGFueVtdIH0pIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMud2ViTmF2aWdhdG9yICE9PSBudWxsICYmIHRoaXMud2ViTmF2aWdhdG9yLnNoYXJlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICh0ZXh0ID09PSB1bmRlZmluZWQgfHwgdGV4dCA9PT0gbnVsbCkgJiZcbiAgICAgICAgICAodXJsID09PSB1bmRlZmluZWQgfHwgdXJsID09PSBudWxsKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYHRleHQgYW5kIHVybCBib3RoIGNhbid0IGJlIGVtcHR5LCBhdCBsZWFzdCBwcm92aWRlIGVpdGhlciB0ZXh0IG9yIHVybGApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzaGFyZU9iamVjdDogU2hhcmVPYmplY3QgPSB7XG4gICAgICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB1cmxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgc2hhcmVPYmplY3QuZmlsZXMgPSBmaWxlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkID0gYXdhaXQgdGhpcy53ZWJOYXZpZ2F0b3Iuc2hhcmUoc2hhcmVPYmplY3QpO1xuICAgICAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgICAgIHNoYXJlZDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICAgIHNoYXJlZDogZmFsc2UsXG4gICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgc2hhcmVkOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogYFRoaXMgc2VydmljZS9hcGkgaXMgbm90IHN1cHBvcnRlZCBpbiB5b3VyIEJyb3dzZXJgXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbmludGVyZmFjZSBTaGFyZU9iamVjdCB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGZpbGVzPzogYW55W107XG59XG4iXX0=