UNPKG

ng-navigator-share

Version:

Lightweight Angular wrapper on Web Share API to share PWA apps, Text, URL.

62 lines 7.35 kB
import { __awaiter, __decorate, __metadata } from "tslib"; import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; let NgNavigatorShareService = class NgNavigatorShareService { constructor() { this.webNavigator = null; this.webNavigator = window.navigator; } canShare() { return this.webNavigator !== null && this.webNavigator.share !== undefined; } canShareFile(file) { return this.webNavigator !== null && this.webNavigator.share !== undefined && this.webNavigator.canShare({ files: file }); } share({ title, text, url, files }) { return new Promise((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 { const shareObject = { title, text, url }; if (files && files.length !== 0) { shareObject.files = files; } 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` }); } })); } }; NgNavigatorShareService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NgNavigatorShareService_Factory() { return new NgNavigatorShareService(); }, token: NgNavigatorShareService, providedIn: "root" }); NgNavigatorShareService = __decorate([ Injectable({ providedIn: 'root' }), __metadata("design:paramtypes", []) ], NgNavigatorShareService); export { NgNavigatorShareService }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbmF2aWdhdG9yLXNoYXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1uYXZpZ2F0b3Itc2hhcmUvIiwic291cmNlcyI6WyJsaWIvbmctbmF2aWdhdG9yLXNoYXJlL25nLW5hdmlnYXRvci1zaGFyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtJQUVsQztRQURBLGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQzdFLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBUTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVILENBQUM7SUFFRCxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWlFO1FBQzlGLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBTyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQ3ZFLElBQ0UsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUM7b0JBQ3JDLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLEVBQ25DO29CQUNBLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUVBQXVFLENBQUMsQ0FBQztpQkFDdkY7cUJBQU07b0JBQ0wsSUFBSTt3QkFDRixNQUFNLFdBQVcsR0FBZ0I7NEJBQzdCLEtBQUs7NEJBQ0wsSUFBSTs0QkFDSixHQUFHO3lCQUNOLENBQUM7d0JBQ0YsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQzdCLFdBQVcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO3lCQUM3Qjt3QkFDRCxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO3dCQUM1RCxPQUFPLENBQUM7NEJBQ04sTUFBTSxFQUFFLElBQUk7eUJBQ2IsQ0FBQyxDQUFDO3FCQUNKO29CQUFDLE9BQU8sS0FBSyxFQUFFO3dCQUNkLE1BQU0sQ0FBQzs0QkFDTCxNQUFNLEVBQUUsS0FBSzs0QkFDYixLQUFLO3lCQUNOLENBQUMsQ0FBQztxQkFDSjtpQkFDRjthQUNGO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQztvQkFDTCxNQUFNLEVBQUUsS0FBSztvQkFDYixLQUFLLEVBQUUsbURBQW1EO2lCQUMzRCxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQTs7QUFuRFksdUJBQXVCO0lBSG5DLFVBQVUsQ0FBQztRQUNWLFVBQVUsRUFBRSxNQUFNO0tBQ25CLENBQUM7O0dBQ1csdUJBQXVCLENBbURuQztTQW5EWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ05hdmlnYXRvclNoYXJlU2VydmljZSB7XHJcbiAgd2ViTmF2aWdhdG9yOiBhbnkgPSBudWxsO1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy53ZWJOYXZpZ2F0b3IgPSB3aW5kb3cubmF2aWdhdG9yO1xyXG4gIH1cclxuXHJcbiAgY2FuU2hhcmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy53ZWJOYXZpZ2F0b3IgIT09IG51bGwgJiYgdGhpcy53ZWJOYXZpZ2F0b3Iuc2hhcmUgIT09IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGNhblNoYXJlRmlsZShmaWxlOiBbXSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMud2ViTmF2aWdhdG9yICE9PSBudWxsICYmIHRoaXMud2ViTmF2aWdhdG9yLnNoYXJlICE9PSB1bmRlZmluZWQgJiYgdGhpcy53ZWJOYXZpZ2F0b3IuY2FuU2hhcmUoeyBmaWxlczogZmlsZSB9KTtcclxuICB9XHJcblxyXG4gIHNoYXJlKHsgdGl0bGUsIHRleHQsIHVybCwgZmlsZXMgfTogeyB0aXRsZTogc3RyaW5nLCB0ZXh0Pzogc3RyaW5nLCB1cmw/OiBzdHJpbmcsIGZpbGVzPzogYW55W10gfSkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgaWYgKHRoaXMud2ViTmF2aWdhdG9yICE9PSBudWxsICYmIHRoaXMud2ViTmF2aWdhdG9yLnNoYXJlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAodGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQgPT09IG51bGwpICYmXHJcbiAgICAgICAgICAodXJsID09PSB1bmRlZmluZWQgfHwgdXJsID09PSBudWxsKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKGB0ZXh0IGFuZCB1cmwgYm90aCBjYW4ndCBiZSBlbXB0eSwgYXQgbGVhc3QgcHJvdmlkZSBlaXRoZXIgdGV4dCBvciB1cmxgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgY29uc3Qgc2hhcmVPYmplY3Q6IFNoYXJlT2JqZWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgICAgICAgICB0ZXh0LFxyXG4gICAgICAgICAgICAgICAgdXJsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGlmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHNoYXJlT2JqZWN0LmZpbGVzID0gZmlsZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgaXNTaGFyZWQgPSBhd2FpdCB0aGlzLndlYk5hdmlnYXRvci5zaGFyZShzaGFyZU9iamVjdCk7XHJcbiAgICAgICAgICAgIHJlc29sdmUoe1xyXG4gICAgICAgICAgICAgIHNoYXJlZDogdHJ1ZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJlamVjdCh7XHJcbiAgICAgICAgICAgICAgc2hhcmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICBlcnJvclxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVqZWN0KHtcclxuICAgICAgICAgIHNoYXJlZDogZmFsc2UsXHJcbiAgICAgICAgICBlcnJvcjogYFRoaXMgc2VydmljZS9hcGkgaXMgbm90IHN1cHBvcnRlZCBpbiB5b3VyIEJyb3dzZXJgXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIFNoYXJlT2JqZWN0IHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHRleHQ6IHN0cmluZztcclxuICB1cmw6IHN0cmluZztcclxuICBmaWxlcz86IGFueVtdO1xyXG59XHJcbiJdfQ==