@beacon-interactive-systems-llc/beacon-platform-ui 17.0.1 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2020/beacon-interactive-systems-llc-beacon-platform-ui.mjs +5 -0
  2. package/esm2020/lib/device-detector.service.mjs +77 -0
  3. package/esm2020/lib/network-connection.service.mjs +32 -0
  4. package/esm2020/lib/platform-ui.component.mjs +22 -0
  5. package/esm2020/lib/platform-ui.module.mjs +21 -0
  6. package/esm2020/lib/platform-ui.service.mjs +14 -0
  7. package/esm2020/public-api.mjs +7 -0
  8. package/fesm2015/beacon-interactive-systems-llc-beacon-platform-ui.mjs +164 -0
  9. package/fesm2015/beacon-interactive-systems-llc-beacon-platform-ui.mjs.map +1 -0
  10. package/fesm2020/beacon-interactive-systems-llc-beacon-platform-ui.mjs +164 -0
  11. package/fesm2020/beacon-interactive-systems-llc-beacon-platform-ui.mjs.map +1 -0
  12. package/index.d.ts +5 -0
  13. package/lib/device-detector.service.d.ts +11 -0
  14. package/lib/network-connection.service.d.ts +12 -0
  15. package/lib/platform-ui.component.d.ts +8 -0
  16. package/lib/platform-ui.module.d.ts +7 -0
  17. package/lib/platform-ui.service.d.ts +6 -0
  18. package/package.json +44 -24
  19. package/{src/public-api.ts → public-api.d.ts} +0 -2
  20. package/styles/_layout.scss +58 -29
  21. package/styles/_leftnav.scss +63 -26
  22. package/README--internal-dev.md +0 -49
  23. package/karma.conf.js +0 -44
  24. package/ng-package.json +0 -8
  25. package/src/lib/device-detector.service.ts +0 -46
  26. package/src/lib/network-connection.service.ts +0 -31
  27. package/src/lib/platform-ui.component.spec.ts +0 -23
  28. package/src/lib/platform-ui.component.ts +0 -20
  29. package/src/lib/platform-ui.module.ts +0 -16
  30. package/src/lib/platform-ui.service.spec.ts +0 -16
  31. package/src/lib/platform-ui.service.ts +0 -9
  32. package/src/test.ts +0 -27
  33. package/tsconfig.lib.json +0 -15
  34. package/tsconfig.lib.prod.json +0 -10
  35. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhY29uLWludGVyYWN0aXZlLXN5c3RlbXMtbGxjLWJlYWNvbi1wbGF0Zm9ybS11aS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3BsYXRmb3JtLXVpL3NyYy9iZWFjb24taW50ZXJhY3RpdmUtc3lzdGVtcy1sbGMtYmVhY29uLXBsYXRmb3JtLXVpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,77 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const CUTOFFS = {
4
+ mobile: 767,
5
+ tablet: 1200
6
+ };
7
+ export class DeviceDetectorService {
8
+ get isMobile() { return window.screen.width <= CUTOFFS.mobile; }
9
+ get isTablet() {
10
+ return window.screen.width >= CUTOFFS.mobile && window.screen.width <= CUTOFFS.tablet;
11
+ }
12
+ // assume desktop is anything > 1200
13
+ get isDesktop() { return window.screen.width > CUTOFFS.tablet; }
14
+ getBrowser() {
15
+ if (!!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edg/)) {
16
+ return "Chrome";
17
+ }
18
+ else if (!!navigator.userAgent.match(/Opera/) || !!navigator.userAgent.match(/OPR/)) {
19
+ return "Opera";
20
+ }
21
+ else if (!!navigator.userAgent.match(/Firefox/) && !navigator.userAgent.match(/Safari/)) {
22
+ return "Firefox";
23
+ }
24
+ else if (!!navigator.userAgent.match(/Safari/) && !navigator.userAgent.match(/Edg/)) {
25
+ return "Safari";
26
+ }
27
+ else if (!!navigator.userAgent.match(/MSIE/)) {
28
+ return "IE";
29
+ }
30
+ else if (!!navigator.userAgent.match(/Edg/)) {
31
+ return "Microsoft Edge";
32
+ }
33
+ else {
34
+ return "Unknown";
35
+ }
36
+ }
37
+ getOperatingSystem() {
38
+ if (!!navigator.userAgent.match(/Win/)) {
39
+ return "Windows OS";
40
+ }
41
+ else if (!!navigator.userAgent.match(/Mac/)) {
42
+ return "MacOS";
43
+ }
44
+ else if (!!navigator.userAgent.match(/X11/)) {
45
+ return "UNIX OS";
46
+ }
47
+ else if (!!navigator.userAgent.match(/Linux/)) {
48
+ return "Linux OS";
49
+ }
50
+ else {
51
+ return "Unknown";
52
+ }
53
+ }
54
+ getDeviceType() {
55
+ if (this.isDesktop) {
56
+ return "Desktop";
57
+ }
58
+ else if (this.isMobile) {
59
+ return "Mobile";
60
+ }
61
+ else if (this.isTablet) {
62
+ return "Tablet";
63
+ }
64
+ else {
65
+ return "Unknown";
66
+ }
67
+ }
68
+ }
69
+ DeviceDetectorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
70
+ DeviceDetectorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, providedIn: 'root' });
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, decorators: [{
72
+ type: Injectable,
73
+ args: [{
74
+ providedIn: 'root'
75
+ }]
76
+ }] });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWRldGVjdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wbGF0Zm9ybS11aS9zcmMvbGliL2RldmljZS1kZXRlY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQU0sT0FBTyxHQUFHO0lBQ2QsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUE7QUFLRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLElBQUksUUFBUSxLQUFLLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQSxDQUFDLENBQUM7SUFFL0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDdkYsQ0FBQztJQUVGLG9DQUFvQztJQUNwQyxJQUFJLFNBQVMsS0FBSyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFDO0lBRy9ELFVBQVU7UUFDUixJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxRQUFRLENBQUM7U0FBRTthQUMvRixJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLE9BQU8sQ0FBQztTQUFFO2FBQ25HLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFBRSxPQUFPLFNBQVMsQ0FBQztTQUFFO2FBQ3pHLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLFFBQVEsQ0FBQztTQUFFO2FBQ3BHLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7U0FBRTthQUN6RCxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUFFLE9BQU8sZ0JBQWdCLENBQUM7U0FBRTthQUNwRTtZQUFFLE9BQU8sU0FBUyxDQUFBO1NBQUU7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUFFLE9BQU8sWUFBWSxDQUFDO1NBQUU7YUFDM0QsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLE9BQU8sQ0FBQztTQUFFO2FBQzNELElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUM7U0FBRTthQUM3RCxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUFFLE9BQU8sVUFBVSxDQUFDO1NBQUU7YUFDaEU7WUFBRSxPQUFPLFNBQVMsQ0FBQztTQUFFO0lBQzVCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUM7U0FBRTthQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPLFFBQVEsQ0FBQztTQUFFO2FBQ3ZDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU8sUUFBUSxDQUFDO1NBQUU7YUFDdkM7WUFBRSxPQUFPLFNBQVMsQ0FBQztTQUFFO0lBQzVCLENBQUM7O21IQWxDVSxxQkFBcUI7dUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5jb25zdCBDVVRPRkZTID0ge1xyXG4gIG1vYmlsZTogNzY3LFxyXG4gIHRhYmxldDogMTIwMFxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEZXZpY2VEZXRlY3RvclNlcnZpY2Uge1xyXG4gIGdldCBpc01vYmlsZSgpIHsgcmV0dXJuIHdpbmRvdy5zY3JlZW4ud2lkdGggPD0gQ1VUT0ZGUy5tb2JpbGUgfVxyXG5cclxuICBnZXQgaXNUYWJsZXQoKSB7XHJcbiAgICByZXR1cm4gd2luZG93LnNjcmVlbi53aWR0aCA+PSBDVVRPRkZTLm1vYmlsZSAmJiB3aW5kb3cuc2NyZWVuLndpZHRoIDw9IENVVE9GRlMudGFibGV0O1xyXG4gICB9XHJcblxyXG4gIC8vIGFzc3VtZSBkZXNrdG9wIGlzIGFueXRoaW5nID4gMTIwMFxyXG4gIGdldCBpc0Rlc2t0b3AoKSB7IHJldHVybiB3aW5kb3cuc2NyZWVuLndpZHRoID4gQ1VUT0ZGUy50YWJsZXQgfVxyXG5cclxuXHJcbiAgZ2V0QnJvd3NlcigpIHtcclxuICAgIGlmICghIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0Nocm9tZS8pICYmICFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9FZGcvKSkgeyByZXR1cm4gXCJDaHJvbWVcIjsgfVxyXG4gICAgZWxzZSBpZiAoISFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9PcGVyYS8pIHx8ICEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvT1BSLykpIHsgcmV0dXJuIFwiT3BlcmFcIjsgfVxyXG4gICAgZWxzZSBpZiAoISFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9GaXJlZm94LykgJiYgIW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1NhZmFyaS8pKSB7IHJldHVybiBcIkZpcmVmb3hcIjsgfVxyXG4gICAgZWxzZSBpZiAoISFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9TYWZhcmkvKSAmJiAhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRWRnLykpIHsgcmV0dXJuIFwiU2FmYXJpXCI7IH1cclxuICAgIGVsc2UgaWYgKCEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvTVNJRS8pKSB7IHJldHVybiBcIklFXCI7IH1cclxuICAgIGVsc2UgaWYgKCEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRWRnLykpIHsgcmV0dXJuIFwiTWljcm9zb2Z0IEVkZ2VcIjsgfVxyXG4gICAgZWxzZSB7IHJldHVybiBcIlVua25vd25cIiB9XHJcbiAgfVxyXG5cclxuICBnZXRPcGVyYXRpbmdTeXN0ZW0oKSB7XHJcbiAgICBpZiAoISFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XaW4vKSkgeyByZXR1cm4gXCJXaW5kb3dzIE9TXCI7IH1cclxuICAgIGVsc2UgaWYgKCEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvTWFjLykpIHsgcmV0dXJuIFwiTWFjT1NcIjsgfVxyXG4gICAgZWxzZSBpZiAoISFuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9YMTEvKSkgeyByZXR1cm4gXCJVTklYIE9TXCI7IH1cclxuICAgIGVsc2UgaWYgKCEhbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvTGludXgvKSkgeyByZXR1cm4gXCJMaW51eCBPU1wiOyB9XHJcbiAgICBlbHNlIHsgcmV0dXJuIFwiVW5rbm93blwiOyB9XHJcbiAgfVxyXG5cclxuICBnZXREZXZpY2VUeXBlKCkge1xyXG4gICAgaWYgKHRoaXMuaXNEZXNrdG9wKSB7IHJldHVybiBcIkRlc2t0b3BcIjsgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5pc01vYmlsZSkgeyByZXR1cm4gXCJNb2JpbGVcIjsgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5pc1RhYmxldCkgeyByZXR1cm4gXCJUYWJsZXRcIjsgfVxyXG4gICAgZWxzZSB7IHJldHVybiBcIlVua25vd25cIjsgfVxyXG4gIH1cclxufSJdfQ==
@@ -0,0 +1,32 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class NetworkConnectionService {
5
+ constructor() {
6
+ this.networkConnectionChange = new Subject();
7
+ this.connectionChanged$ = this.networkConnectionChange.asObservable();
8
+ this.lastOnlineAt = new Date();
9
+ window.addEventListener('online', () => this.updateOnlineStatus());
10
+ window.addEventListener('offline', () => this.updateOnlineStatus());
11
+ }
12
+ get isOnline() {
13
+ return !!window.navigator.onLine;
14
+ }
15
+ get isOffline() {
16
+ return !this.isOnline;
17
+ }
18
+ updateOnlineStatus() {
19
+ this.networkConnectionChange.next(window.navigator.onLine);
20
+ if (window.navigator.offLine)
21
+ this.lastOnlineAt = new Date();
22
+ }
23
+ }
24
+ NetworkConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
+ NetworkConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, providedIn: 'root' });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, decorators: [{
27
+ type: Injectable,
28
+ args: [{
29
+ providedIn: 'root'
30
+ }]
31
+ }], ctorParameters: function () { return []; } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1jb25uZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wbGF0Zm9ybS11aS9zcmMvbGliL25ldHdvcmstY29ubmVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPL0IsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQztRQUtRLDRCQUF1QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDbEQsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2pFLGlCQUFZLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQU5yQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDbkUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFNRCxJQUFJLFFBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDL0QsQ0FBQzs7c0hBckJVLHdCQUF3QjswSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ldHdvcmtDb25uZWN0aW9uU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgKCkgPT4gdGhpcy51cGRhdGVPbmxpbmVTdGF0dXMoKSk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsICgpID0+IHRoaXMudXBkYXRlT25saW5lU3RhdHVzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuZXR3b3JrQ29ubmVjdGlvbkNoYW5nZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgcHVibGljIGNvbm5lY3Rpb25DaGFuZ2VkJCA9IHRoaXMubmV0d29ya0Nvbm5lY3Rpb25DaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHVibGljIGxhc3RPbmxpbmVBdDogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gIGdldCBpc09ubGluZSgpIHtcclxuICAgIHJldHVybiAhIXdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzT2ZmbGluZSgpIHtcclxuICAgIHJldHVybiAhdGhpcy5pc09ubGluZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlT25saW5lU3RhdHVzKCkge1xyXG4gICAgdGhpcy5uZXR3b3JrQ29ubmVjdGlvbkNoYW5nZS5uZXh0KHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKTtcclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9mZkxpbmUpIHRoaXMubGFzdE9ubGluZUF0ID0gbmV3IERhdGUoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,22 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PlatformUiComponent {
4
+ constructor() { }
5
+ ngOnInit() {
6
+ }
7
+ }
8
+ PlatformUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ PlatformUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: PlatformUiComponent, selector: "lib-platform-ui", ngImport: i0, template: `
10
+ <p>
11
+ platform-ui works!
12
+ </p>
13
+ `, isInline: true });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'lib-platform-ui', template: `
17
+ <p>
18
+ platform-ui works!
19
+ </p>
20
+ ` }]
21
+ }], ctorParameters: function () { return []; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0tdWkvc3JjL2xpYi9wbGF0Zm9ybS11aS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7aUhBTFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsdURBUnBCOzs7O0dBSVQ7NEZBSVUsbUJBQW1CO2tCQVYvQixTQUFTOytCQUNFLGlCQUFpQixZQUNqQjs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXBsYXRmb3JtLXVpJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHA+XHJcbiAgICAgIHBsYXRmb3JtLXVpIHdvcmtzIVxyXG4gICAgPC9wPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGxhdGZvcm1VaUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { PlatformUiComponent } from './platform-ui.component';
3
+ import * as i0 from "@angular/core";
4
+ export class PlatformUiModule {
5
+ }
6
+ PlatformUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ PlatformUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, declarations: [PlatformUiComponent], exports: [PlatformUiComponent] });
8
+ PlatformUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [
13
+ PlatformUiComponent
14
+ ],
15
+ imports: [],
16
+ exports: [
17
+ PlatformUiComponent
18
+ ]
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tdWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGxhdGZvcm0tdWkvc3JjL2xpYi9wbGF0Zm9ybS11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFjOUQsTUFBTSxPQUFPLGdCQUFnQjs7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQVJ6QixtQkFBbUIsYUFLbkIsbUJBQW1COytHQUdWLGdCQUFnQjs0RkFBaEIsZ0JBQWdCO2tCQVY1QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxFQUNSO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7cUJBQ3BCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGxhdGZvcm1VaUNvbXBvbmVudCB9IGZyb20gJy4vcGxhdGZvcm0tdWkuY29tcG9uZW50JztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFBsYXRmb3JtVWlDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFBsYXRmb3JtVWlDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybVVpTW9kdWxlIHsgfVxyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PlatformUiService {
4
+ constructor() { }
5
+ }
6
+ PlatformUiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ PlatformUiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, providedIn: 'root' });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tdWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3BsYXRmb3JtLXVpL3NyYy9saWIvcGxhdGZvcm0tdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLGdCQUFnQixDQUFDOzsrR0FGTixpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybVVpU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './lib/network-connection.service';
2
+ export * from './lib/device-detector.service';
3
+ // defaults
4
+ export * from './lib/platform-ui.service';
5
+ export * from './lib/platform-ui.component';
6
+ export * from './lib/platform-ui.module';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3BsYXRmb3JtLXVpL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxXQUFXO0FBQ1gsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9uZXR3b3JrLWNvbm5lY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RldmljZS1kZXRlY3Rvci5zZXJ2aWNlJztcclxuXHJcbi8vIGRlZmF1bHRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsYXRmb3JtLXVpLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbGF0Zm9ybS11aS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wbGF0Zm9ybS11aS5tb2R1bGUnO1xyXG4iXX0=
@@ -0,0 +1,164 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, NgModule } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+
5
+ class NetworkConnectionService {
6
+ constructor() {
7
+ this.networkConnectionChange = new Subject();
8
+ this.connectionChanged$ = this.networkConnectionChange.asObservable();
9
+ this.lastOnlineAt = new Date();
10
+ window.addEventListener('online', () => this.updateOnlineStatus());
11
+ window.addEventListener('offline', () => this.updateOnlineStatus());
12
+ }
13
+ get isOnline() {
14
+ return !!window.navigator.onLine;
15
+ }
16
+ get isOffline() {
17
+ return !this.isOnline;
18
+ }
19
+ updateOnlineStatus() {
20
+ this.networkConnectionChange.next(window.navigator.onLine);
21
+ if (window.navigator.offLine)
22
+ this.lastOnlineAt = new Date();
23
+ }
24
+ }
25
+ NetworkConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
+ NetworkConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, providedIn: 'root' });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root'
31
+ }]
32
+ }], ctorParameters: function () { return []; } });
33
+
34
+ const CUTOFFS = {
35
+ mobile: 767,
36
+ tablet: 1200
37
+ };
38
+ class DeviceDetectorService {
39
+ get isMobile() { return window.screen.width <= CUTOFFS.mobile; }
40
+ get isTablet() {
41
+ return window.screen.width >= CUTOFFS.mobile && window.screen.width <= CUTOFFS.tablet;
42
+ }
43
+ // assume desktop is anything > 1200
44
+ get isDesktop() { return window.screen.width > CUTOFFS.tablet; }
45
+ getBrowser() {
46
+ if (!!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edg/)) {
47
+ return "Chrome";
48
+ }
49
+ else if (!!navigator.userAgent.match(/Opera/) || !!navigator.userAgent.match(/OPR/)) {
50
+ return "Opera";
51
+ }
52
+ else if (!!navigator.userAgent.match(/Firefox/) && !navigator.userAgent.match(/Safari/)) {
53
+ return "Firefox";
54
+ }
55
+ else if (!!navigator.userAgent.match(/Safari/) && !navigator.userAgent.match(/Edg/)) {
56
+ return "Safari";
57
+ }
58
+ else if (!!navigator.userAgent.match(/MSIE/)) {
59
+ return "IE";
60
+ }
61
+ else if (!!navigator.userAgent.match(/Edg/)) {
62
+ return "Microsoft Edge";
63
+ }
64
+ else {
65
+ return "Unknown";
66
+ }
67
+ }
68
+ getOperatingSystem() {
69
+ if (!!navigator.userAgent.match(/Win/)) {
70
+ return "Windows OS";
71
+ }
72
+ else if (!!navigator.userAgent.match(/Mac/)) {
73
+ return "MacOS";
74
+ }
75
+ else if (!!navigator.userAgent.match(/X11/)) {
76
+ return "UNIX OS";
77
+ }
78
+ else if (!!navigator.userAgent.match(/Linux/)) {
79
+ return "Linux OS";
80
+ }
81
+ else {
82
+ return "Unknown";
83
+ }
84
+ }
85
+ getDeviceType() {
86
+ if (this.isDesktop) {
87
+ return "Desktop";
88
+ }
89
+ else if (this.isMobile) {
90
+ return "Mobile";
91
+ }
92
+ else if (this.isTablet) {
93
+ return "Tablet";
94
+ }
95
+ else {
96
+ return "Unknown";
97
+ }
98
+ }
99
+ }
100
+ DeviceDetectorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
101
+ DeviceDetectorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, providedIn: 'root' });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, decorators: [{
103
+ type: Injectable,
104
+ args: [{
105
+ providedIn: 'root'
106
+ }]
107
+ }] });
108
+
109
+ class PlatformUiService {
110
+ constructor() { }
111
+ }
112
+ PlatformUiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
113
+ PlatformUiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, providedIn: 'root' });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, decorators: [{
115
+ type: Injectable,
116
+ args: [{
117
+ providedIn: 'root'
118
+ }]
119
+ }], ctorParameters: function () { return []; } });
120
+
121
+ class PlatformUiComponent {
122
+ constructor() { }
123
+ ngOnInit() {
124
+ }
125
+ }
126
+ PlatformUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
127
+ PlatformUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: PlatformUiComponent, selector: "lib-platform-ui", ngImport: i0, template: `
128
+ <p>
129
+ platform-ui works!
130
+ </p>
131
+ `, isInline: true });
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiComponent, decorators: [{
133
+ type: Component,
134
+ args: [{ selector: 'lib-platform-ui', template: `
135
+ <p>
136
+ platform-ui works!
137
+ </p>
138
+ ` }]
139
+ }], ctorParameters: function () { return []; } });
140
+
141
+ class PlatformUiModule {
142
+ }
143
+ PlatformUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
144
+ PlatformUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, declarations: [PlatformUiComponent], exports: [PlatformUiComponent] });
145
+ PlatformUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, decorators: [{
147
+ type: NgModule,
148
+ args: [{
149
+ declarations: [
150
+ PlatformUiComponent
151
+ ],
152
+ imports: [],
153
+ exports: [
154
+ PlatformUiComponent
155
+ ]
156
+ }]
157
+ }] });
158
+
159
+ /**
160
+ * Generated bundle index. Do not edit.
161
+ */
162
+
163
+ export { DeviceDetectorService, NetworkConnectionService, PlatformUiComponent, PlatformUiModule, PlatformUiService };
164
+ //# sourceMappingURL=beacon-interactive-systems-llc-beacon-platform-ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beacon-interactive-systems-llc-beacon-platform-ui.mjs","sources":["../../../projects/platform-ui/src/lib/network-connection.service.ts","../../../projects/platform-ui/src/lib/device-detector.service.ts","../../../projects/platform-ui/src/lib/platform-ui.service.ts","../../../projects/platform-ui/src/lib/platform-ui.component.ts","../../../projects/platform-ui/src/lib/platform-ui.module.ts","../../../projects/platform-ui/src/beacon-interactive-systems-llc-beacon-platform-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\ndeclare const window: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetworkConnectionService {\r\n constructor() {\r\n window.addEventListener('online', () => this.updateOnlineStatus());\r\n window.addEventListener('offline', () => this.updateOnlineStatus());\r\n }\r\n\r\n private networkConnectionChange = new Subject<boolean>();\r\n public connectionChanged$ = this.networkConnectionChange.asObservable();\r\n public lastOnlineAt: Date = new Date();\r\n\r\n get isOnline() {\r\n return !!window.navigator.onLine;\r\n }\r\n\r\n get isOffline() {\r\n return !this.isOnline;\r\n }\r\n\r\n private updateOnlineStatus() {\r\n this.networkConnectionChange.next(window.navigator.onLine);\r\n if (window.navigator.offLine) this.lastOnlineAt = new Date();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nconst CUTOFFS = {\r\n mobile: 767,\r\n tablet: 1200\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceDetectorService {\r\n get isMobile() { return window.screen.width <= CUTOFFS.mobile }\r\n\r\n get isTablet() {\r\n return window.screen.width >= CUTOFFS.mobile && window.screen.width <= CUTOFFS.tablet;\r\n }\r\n\r\n // assume desktop is anything > 1200\r\n get isDesktop() { return window.screen.width > CUTOFFS.tablet }\r\n\r\n\r\n getBrowser() {\r\n if (!!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edg/)) { return \"Chrome\"; }\r\n else if (!!navigator.userAgent.match(/Opera/) || !!navigator.userAgent.match(/OPR/)) { return \"Opera\"; }\r\n else if (!!navigator.userAgent.match(/Firefox/) && !navigator.userAgent.match(/Safari/)) { return \"Firefox\"; }\r\n else if (!!navigator.userAgent.match(/Safari/) && !navigator.userAgent.match(/Edg/)) { return \"Safari\"; }\r\n else if (!!navigator.userAgent.match(/MSIE/)) { return \"IE\"; }\r\n else if (!!navigator.userAgent.match(/Edg/)) { return \"Microsoft Edge\"; }\r\n else { return \"Unknown\" }\r\n }\r\n\r\n getOperatingSystem() {\r\n if (!!navigator.userAgent.match(/Win/)) { return \"Windows OS\"; }\r\n else if (!!navigator.userAgent.match(/Mac/)) { return \"MacOS\"; }\r\n else if (!!navigator.userAgent.match(/X11/)) { return \"UNIX OS\"; }\r\n else if (!!navigator.userAgent.match(/Linux/)) { return \"Linux OS\"; }\r\n else { return \"Unknown\"; }\r\n }\r\n\r\n getDeviceType() {\r\n if (this.isDesktop) { return \"Desktop\"; }\r\n else if (this.isMobile) { return \"Mobile\"; }\r\n else if (this.isTablet) { return \"Tablet\"; }\r\n else { return \"Unknown\"; }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PlatformUiService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-platform-ui',\r\n template: `\r\n <p>\r\n platform-ui works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class PlatformUiComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PlatformUiComponent } from './platform-ui.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PlatformUiComponent\r\n ],\r\n imports: [\r\n ],\r\n exports: [\r\n PlatformUiComponent\r\n ]\r\n})\r\nexport class PlatformUiModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Component, NgModule } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+
5
+ class NetworkConnectionService {
6
+ constructor() {
7
+ this.networkConnectionChange = new Subject();
8
+ this.connectionChanged$ = this.networkConnectionChange.asObservable();
9
+ this.lastOnlineAt = new Date();
10
+ window.addEventListener('online', () => this.updateOnlineStatus());
11
+ window.addEventListener('offline', () => this.updateOnlineStatus());
12
+ }
13
+ get isOnline() {
14
+ return !!window.navigator.onLine;
15
+ }
16
+ get isOffline() {
17
+ return !this.isOnline;
18
+ }
19
+ updateOnlineStatus() {
20
+ this.networkConnectionChange.next(window.navigator.onLine);
21
+ if (window.navigator.offLine)
22
+ this.lastOnlineAt = new Date();
23
+ }
24
+ }
25
+ NetworkConnectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
26
+ NetworkConnectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, providedIn: 'root' });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NetworkConnectionService, decorators: [{
28
+ type: Injectable,
29
+ args: [{
30
+ providedIn: 'root'
31
+ }]
32
+ }], ctorParameters: function () { return []; } });
33
+
34
+ const CUTOFFS = {
35
+ mobile: 767,
36
+ tablet: 1200
37
+ };
38
+ class DeviceDetectorService {
39
+ get isMobile() { return window.screen.width <= CUTOFFS.mobile; }
40
+ get isTablet() {
41
+ return window.screen.width >= CUTOFFS.mobile && window.screen.width <= CUTOFFS.tablet;
42
+ }
43
+ // assume desktop is anything > 1200
44
+ get isDesktop() { return window.screen.width > CUTOFFS.tablet; }
45
+ getBrowser() {
46
+ if (!!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edg/)) {
47
+ return "Chrome";
48
+ }
49
+ else if (!!navigator.userAgent.match(/Opera/) || !!navigator.userAgent.match(/OPR/)) {
50
+ return "Opera";
51
+ }
52
+ else if (!!navigator.userAgent.match(/Firefox/) && !navigator.userAgent.match(/Safari/)) {
53
+ return "Firefox";
54
+ }
55
+ else if (!!navigator.userAgent.match(/Safari/) && !navigator.userAgent.match(/Edg/)) {
56
+ return "Safari";
57
+ }
58
+ else if (!!navigator.userAgent.match(/MSIE/)) {
59
+ return "IE";
60
+ }
61
+ else if (!!navigator.userAgent.match(/Edg/)) {
62
+ return "Microsoft Edge";
63
+ }
64
+ else {
65
+ return "Unknown";
66
+ }
67
+ }
68
+ getOperatingSystem() {
69
+ if (!!navigator.userAgent.match(/Win/)) {
70
+ return "Windows OS";
71
+ }
72
+ else if (!!navigator.userAgent.match(/Mac/)) {
73
+ return "MacOS";
74
+ }
75
+ else if (!!navigator.userAgent.match(/X11/)) {
76
+ return "UNIX OS";
77
+ }
78
+ else if (!!navigator.userAgent.match(/Linux/)) {
79
+ return "Linux OS";
80
+ }
81
+ else {
82
+ return "Unknown";
83
+ }
84
+ }
85
+ getDeviceType() {
86
+ if (this.isDesktop) {
87
+ return "Desktop";
88
+ }
89
+ else if (this.isMobile) {
90
+ return "Mobile";
91
+ }
92
+ else if (this.isTablet) {
93
+ return "Tablet";
94
+ }
95
+ else {
96
+ return "Unknown";
97
+ }
98
+ }
99
+ }
100
+ DeviceDetectorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
101
+ DeviceDetectorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, providedIn: 'root' });
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DeviceDetectorService, decorators: [{
103
+ type: Injectable,
104
+ args: [{
105
+ providedIn: 'root'
106
+ }]
107
+ }] });
108
+
109
+ class PlatformUiService {
110
+ constructor() { }
111
+ }
112
+ PlatformUiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
113
+ PlatformUiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, providedIn: 'root' });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiService, decorators: [{
115
+ type: Injectable,
116
+ args: [{
117
+ providedIn: 'root'
118
+ }]
119
+ }], ctorParameters: function () { return []; } });
120
+
121
+ class PlatformUiComponent {
122
+ constructor() { }
123
+ ngOnInit() {
124
+ }
125
+ }
126
+ PlatformUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
127
+ PlatformUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: PlatformUiComponent, selector: "lib-platform-ui", ngImport: i0, template: `
128
+ <p>
129
+ platform-ui works!
130
+ </p>
131
+ `, isInline: true });
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiComponent, decorators: [{
133
+ type: Component,
134
+ args: [{ selector: 'lib-platform-ui', template: `
135
+ <p>
136
+ platform-ui works!
137
+ </p>
138
+ ` }]
139
+ }], ctorParameters: function () { return []; } });
140
+
141
+ class PlatformUiModule {
142
+ }
143
+ PlatformUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
144
+ PlatformUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, declarations: [PlatformUiComponent], exports: [PlatformUiComponent] });
145
+ PlatformUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: PlatformUiModule, decorators: [{
147
+ type: NgModule,
148
+ args: [{
149
+ declarations: [
150
+ PlatformUiComponent
151
+ ],
152
+ imports: [],
153
+ exports: [
154
+ PlatformUiComponent
155
+ ]
156
+ }]
157
+ }] });
158
+
159
+ /**
160
+ * Generated bundle index. Do not edit.
161
+ */
162
+
163
+ export { DeviceDetectorService, NetworkConnectionService, PlatformUiComponent, PlatformUiModule, PlatformUiService };
164
+ //# sourceMappingURL=beacon-interactive-systems-llc-beacon-platform-ui.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beacon-interactive-systems-llc-beacon-platform-ui.mjs","sources":["../../../projects/platform-ui/src/lib/network-connection.service.ts","../../../projects/platform-ui/src/lib/device-detector.service.ts","../../../projects/platform-ui/src/lib/platform-ui.service.ts","../../../projects/platform-ui/src/lib/platform-ui.component.ts","../../../projects/platform-ui/src/lib/platform-ui.module.ts","../../../projects/platform-ui/src/beacon-interactive-systems-llc-beacon-platform-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\ndeclare const window: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetworkConnectionService {\r\n constructor() {\r\n window.addEventListener('online', () => this.updateOnlineStatus());\r\n window.addEventListener('offline', () => this.updateOnlineStatus());\r\n }\r\n\r\n private networkConnectionChange = new Subject<boolean>();\r\n public connectionChanged$ = this.networkConnectionChange.asObservable();\r\n public lastOnlineAt: Date = new Date();\r\n\r\n get isOnline() {\r\n return !!window.navigator.onLine;\r\n }\r\n\r\n get isOffline() {\r\n return !this.isOnline;\r\n }\r\n\r\n private updateOnlineStatus() {\r\n this.networkConnectionChange.next(window.navigator.onLine);\r\n if (window.navigator.offLine) this.lastOnlineAt = new Date();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nconst CUTOFFS = {\r\n mobile: 767,\r\n tablet: 1200\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceDetectorService {\r\n get isMobile() { return window.screen.width <= CUTOFFS.mobile }\r\n\r\n get isTablet() {\r\n return window.screen.width >= CUTOFFS.mobile && window.screen.width <= CUTOFFS.tablet;\r\n }\r\n\r\n // assume desktop is anything > 1200\r\n get isDesktop() { return window.screen.width > CUTOFFS.tablet }\r\n\r\n\r\n getBrowser() {\r\n if (!!navigator.userAgent.match(/Chrome/) && !navigator.userAgent.match(/Edg/)) { return \"Chrome\"; }\r\n else if (!!navigator.userAgent.match(/Opera/) || !!navigator.userAgent.match(/OPR/)) { return \"Opera\"; }\r\n else if (!!navigator.userAgent.match(/Firefox/) && !navigator.userAgent.match(/Safari/)) { return \"Firefox\"; }\r\n else if (!!navigator.userAgent.match(/Safari/) && !navigator.userAgent.match(/Edg/)) { return \"Safari\"; }\r\n else if (!!navigator.userAgent.match(/MSIE/)) { return \"IE\"; }\r\n else if (!!navigator.userAgent.match(/Edg/)) { return \"Microsoft Edge\"; }\r\n else { return \"Unknown\" }\r\n }\r\n\r\n getOperatingSystem() {\r\n if (!!navigator.userAgent.match(/Win/)) { return \"Windows OS\"; }\r\n else if (!!navigator.userAgent.match(/Mac/)) { return \"MacOS\"; }\r\n else if (!!navigator.userAgent.match(/X11/)) { return \"UNIX OS\"; }\r\n else if (!!navigator.userAgent.match(/Linux/)) { return \"Linux OS\"; }\r\n else { return \"Unknown\"; }\r\n }\r\n\r\n getDeviceType() {\r\n if (this.isDesktop) { return \"Desktop\"; }\r\n else if (this.isMobile) { return \"Mobile\"; }\r\n else if (this.isTablet) { return \"Tablet\"; }\r\n else { return \"Unknown\"; }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PlatformUiService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-platform-ui',\r\n template: `\r\n <p>\r\n platform-ui works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class PlatformUiComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { PlatformUiComponent } from './platform-ui.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PlatformUiComponent\r\n ],\r\n imports: [\r\n ],\r\n exports: [\r\n PlatformUiComponent\r\n ]\r\n})\r\nexport class PlatformUiModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@beacon-interactive-systems-llc/beacon-platform-ui" />
5
+ export * from './public-api';
@@ -0,0 +1,11 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class DeviceDetectorService {
3
+ get isMobile(): boolean;
4
+ get isTablet(): boolean;
5
+ get isDesktop(): boolean;
6
+ getBrowser(): "Chrome" | "Opera" | "Firefox" | "Safari" | "IE" | "Microsoft Edge" | "Unknown";
7
+ getOperatingSystem(): "Unknown" | "Windows OS" | "MacOS" | "UNIX OS" | "Linux OS";
8
+ getDeviceType(): "Unknown" | "Desktop" | "Mobile" | "Tablet";
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<DeviceDetectorService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<DeviceDetectorService>;
11
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class NetworkConnectionService {
3
+ constructor();
4
+ private networkConnectionChange;
5
+ connectionChanged$: import("rxjs").Observable<boolean>;
6
+ lastOnlineAt: Date;
7
+ get isOnline(): boolean;
8
+ get isOffline(): boolean;
9
+ private updateOnlineStatus;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<NetworkConnectionService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<NetworkConnectionService>;
12
+ }
@@ -0,0 +1,8 @@
1
+ import { OnInit } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class PlatformUiComponent implements OnInit {
4
+ constructor();
5
+ ngOnInit(): void;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<PlatformUiComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<PlatformUiComponent, "lib-platform-ui", never, {}, {}, never, never, false>;
8
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./platform-ui.component";
3
+ export declare class PlatformUiModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<PlatformUiModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PlatformUiModule, [typeof i1.PlatformUiComponent], never, [typeof i1.PlatformUiComponent]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<PlatformUiModule>;
7
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class PlatformUiService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<PlatformUiService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<PlatformUiService>;
6
+ }