ng-web-share
Version:
This library helps to use native webshare framework in angular apps
185 lines (178 loc) • 6.35 kB
JavaScript
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