@christianriedl/utils 1.0.113 → 1.0.115
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.
- package/dist/localStorage.js +4 -1
- package/dist/localStorage.js.map +1 -1
- package/package.json +3 -3
- package/src/views/SettingsPage.vue +0 -1
- package/dist/logger/src/iLogger.d.ts +0 -62
- package/dist/logger/src/iLogger.js +0 -10
- package/dist/logger/src/iLogger.js.map +0 -1
- package/dist/useSpeechRecognition.d.ts +0 -104
- package/dist/useSpeechRecognition.js +0 -79
- package/dist/useSpeechRecognition.js.map +0 -1
- package/dist/useSpeechSynthesis.d.ts +0 -49
- package/dist/useSpeechSynthesis.js +0 -96
- package/dist/useSpeechSynthesis.js.map +0 -1
- package/dist/utils/src/helper.d.ts +0 -28
- package/dist/utils/src/helper.js +0 -144
- package/dist/utils/src/helper.js.map +0 -1
- package/dist/utils/src/iLocalStorage.d.ts +0 -7
- package/dist/utils/src/iLocalStorage.js +0 -2
- package/dist/utils/src/iLocalStorage.js.map +0 -1
- package/dist/utils/src/index.d.ts +0 -4
- package/dist/utils/src/index.js +0 -5
- package/dist/utils/src/index.js.map +0 -1
- package/dist/utils/src/localStorage.d.ts +0 -20
- package/dist/utils/src/localStorage.js +0 -57
- package/dist/utils/src/localStorage.js.map +0 -1
- package/dist/utils/src/reactiveStorage.d.ts +0 -18
- package/dist/utils/src/reactiveStorage.js +0 -49
- package/dist/utils/src/reactiveStorage.js.map +0 -1
- package/dist/utils/src/registerServiceWorker.d.ts +0 -31
- package/dist/utils/src/registerServiceWorker.js +0 -251
- package/dist/utils/src/registerServiceWorker.js.map +0 -1
package/dist/localStorage.js
CHANGED
|
@@ -30,7 +30,10 @@ export class LocalStorage {
|
|
|
30
30
|
return str === "true";
|
|
31
31
|
}
|
|
32
32
|
setItem(name, value) {
|
|
33
|
-
|
|
33
|
+
if (value === null)
|
|
34
|
+
window.localStorage.removeItem(this.prefix + name);
|
|
35
|
+
else
|
|
36
|
+
window.localStorage.setItem(this.prefix + name, value.toString());
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
39
|
//# sourceMappingURL=localStorage.js.map
|
package/dist/localStorage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../src/localStorage.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAEhC,MAAM,OAAO,YAAY;IACrB,MAAM,GAAG,EAAE,CAAC;IACZ,YAAY,MAAc;QACtB,IAAI,MAAM;YACN,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,IAAY;QAChB,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,GAAY;QACpC,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,IAAI,GAAG;gBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,GAAY;QACpC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI;YACZ,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,cAAc,CAAC,IAAY,EAAE,GAAa;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI;YACZ,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7B,OAAO,GAAG,KAAK,MAAM,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,KAAuC;QACzD,MAAM,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../src/localStorage.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAEhC,MAAM,OAAO,YAAY;IACrB,MAAM,GAAG,EAAE,CAAC;IACZ,YAAY,MAAc;QACtB,IAAI,MAAM;YACN,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,IAAY;QAChB,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,GAAY;QACpC,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,IAAI,GAAG;gBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,GAAY;QACpC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI;YACZ,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,cAAc,CAAC,IAAY,EAAE,GAAa;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI;YACZ,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7B,OAAO,GAAG,KAAK,MAAM,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,KAAuC;QACzD,IAAI,KAAK,KAAK,IAAI;YACd,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;;YAEnD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;CACJ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@christianriedl/utils",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.115",
|
|
4
4
|
"description": "Interfaces, local storage, service worker, configuration, application state",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
"author": "Christian Riedl",
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"vue": "^3.
|
|
19
|
+
"vue": "^3.5.16"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@types/node": "^
|
|
22
|
+
"@types/node": "^22.15.30",
|
|
23
23
|
"typescript": "^5.5.2",
|
|
24
24
|
"@babel/types": "^7.24.9"
|
|
25
25
|
}
|
|
@@ -28,7 +28,6 @@
|
|
|
28
28
|
|
|
29
29
|
async function saveConfiguration(): Promise<boolean> {
|
|
30
30
|
if (changed) {
|
|
31
|
-
const useServerWait = appConfig.items['smartHomeUseServerWait'].value;
|
|
32
31
|
appConfig.save();
|
|
33
32
|
if (appConfig.subscribePush && subscribePushNotifications && subscribePushNotifications.value != wasSubscribed) {
|
|
34
33
|
console.log(`Subscribe changed to ${subscribePushNotifications.value}`)
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export declare enum LogLevel {
|
|
2
|
-
Trace = 0,
|
|
3
|
-
Debug = 1,
|
|
4
|
-
Information = 2,
|
|
5
|
-
Warning = 3,
|
|
6
|
-
Error = 4,
|
|
7
|
-
Critical = 5
|
|
8
|
-
}
|
|
9
|
-
export interface ILoggerEntry {
|
|
10
|
-
uniqueId: number;
|
|
11
|
-
logLevel: LogLevel;
|
|
12
|
-
now: Date;
|
|
13
|
-
categoryName: string;
|
|
14
|
-
message: string;
|
|
15
|
-
}
|
|
16
|
-
export interface ILoggerEntryEx extends ILoggerEntry {
|
|
17
|
-
timeAsc: string;
|
|
18
|
-
severityAsc: string;
|
|
19
|
-
styleObject: any;
|
|
20
|
-
}
|
|
21
|
-
export interface ILoggerInfo {
|
|
22
|
-
name: string;
|
|
23
|
-
countAll: number;
|
|
24
|
-
countEnabled: number;
|
|
25
|
-
minLogLevel: LogLevel;
|
|
26
|
-
}
|
|
27
|
-
export interface ILogger extends ILoggerInfo {
|
|
28
|
-
trace(msg: string): void;
|
|
29
|
-
info(msg: string): void;
|
|
30
|
-
warning(msg: string): void;
|
|
31
|
-
error(msg: string): void;
|
|
32
|
-
log(severity: LogLevel, msg: string): void;
|
|
33
|
-
startPerformance(): void;
|
|
34
|
-
performance(msg: string): void;
|
|
35
|
-
}
|
|
36
|
-
export interface IProviderInfo extends ILoggerInfo {
|
|
37
|
-
info: string;
|
|
38
|
-
}
|
|
39
|
-
export interface ILoggerProvider extends IProviderInfo {
|
|
40
|
-
log(logEntry: ILoggerEntry, formatedMessage: string): void;
|
|
41
|
-
}
|
|
42
|
-
export interface ILoggerQueueEntries {
|
|
43
|
-
lastUniqueId: number;
|
|
44
|
-
readPointerStart: number;
|
|
45
|
-
readPointerNext: number;
|
|
46
|
-
writePointer: number;
|
|
47
|
-
size: number;
|
|
48
|
-
firstTime: Date;
|
|
49
|
-
lastTime: Date;
|
|
50
|
-
minLogLevel: LogLevel;
|
|
51
|
-
entries: ILoggerEntry[];
|
|
52
|
-
}
|
|
53
|
-
export interface ILoggerService {
|
|
54
|
-
name: string;
|
|
55
|
-
getLoggers(): Promise<ILoggerInfo[]>;
|
|
56
|
-
getProviders(): Promise<IProviderInfo[]>;
|
|
57
|
-
setLoggerLevel(logger: string, level: LogLevel): Promise<boolean>;
|
|
58
|
-
setProviderLevel(provider: string, level: LogLevel): Promise<boolean>;
|
|
59
|
-
getQueuedLogs(minLogLevel: LogLevel, maxCount: number, maxMinutes: number, reverse: boolean, trimCategory: boolean, readPointer: number): Promise<ILoggerQueueEntries>;
|
|
60
|
-
clearCounter(): Promise<boolean>;
|
|
61
|
-
clearQueue(): Promise<boolean>;
|
|
62
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export var LogLevel;
|
|
2
|
-
(function (LogLevel) {
|
|
3
|
-
LogLevel[LogLevel["Trace"] = 0] = "Trace";
|
|
4
|
-
LogLevel[LogLevel["Debug"] = 1] = "Debug";
|
|
5
|
-
LogLevel[LogLevel["Information"] = 2] = "Information";
|
|
6
|
-
LogLevel[LogLevel["Warning"] = 3] = "Warning";
|
|
7
|
-
LogLevel[LogLevel["Error"] = 4] = "Error";
|
|
8
|
-
LogLevel[LogLevel["Critical"] = 5] = "Critical";
|
|
9
|
-
})(LogLevel || (LogLevel = {}));
|
|
10
|
-
//# sourceMappingURL=iLogger.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iLogger.js","sourceRoot":"","sources":["../../../../logger/src/iLogger.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,yCAAS,CAAA;IACT,yCAAS,CAAA;IACT,qDAAe,CAAA;IACf,6CAAW,CAAA;IACX,yCAAS,CAAA;IACT,+CAAY,CAAA;AAChB,CAAC,EAPW,QAAQ,KAAR,QAAQ,QAOnB"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
export type SpeechRecognitionErrorCode = 'aborted' | 'audio-capture' | 'bad-grammar' | 'language-not-supported' | 'network' | 'no-speech' | 'not-allowed' | 'service-not-allowed';
|
|
3
|
-
interface SpeechGrammar {
|
|
4
|
-
src: string;
|
|
5
|
-
weight: number;
|
|
6
|
-
}
|
|
7
|
-
interface SpeechGrammarList {
|
|
8
|
-
readonly length: number;
|
|
9
|
-
addFromString: (string: string, weight?: number) => void;
|
|
10
|
-
addFromURI: (src: string, weight?: number) => void;
|
|
11
|
-
item: (index: number) => SpeechGrammar;
|
|
12
|
-
[index: number]: SpeechGrammar;
|
|
13
|
-
}
|
|
14
|
-
export interface SpeechRecognitionErrorEvent extends Event {
|
|
15
|
-
readonly error: SpeechRecognitionErrorCode;
|
|
16
|
-
readonly message: string;
|
|
17
|
-
}
|
|
18
|
-
interface SpeechRecognitionEvent extends Event {
|
|
19
|
-
readonly resultIndex: number;
|
|
20
|
-
readonly results: SpeechRecognitionResultList;
|
|
21
|
-
}
|
|
22
|
-
interface SpeechRecognitionEventMap {
|
|
23
|
-
audioend: Event;
|
|
24
|
-
audiostart: Event;
|
|
25
|
-
end: Event;
|
|
26
|
-
error: SpeechRecognitionErrorEvent;
|
|
27
|
-
nomatch: SpeechRecognitionEvent;
|
|
28
|
-
result: SpeechRecognitionEvent;
|
|
29
|
-
soundend: Event;
|
|
30
|
-
soundstart: Event;
|
|
31
|
-
speechend: Event;
|
|
32
|
-
speechstart: Event;
|
|
33
|
-
start: Event;
|
|
34
|
-
}
|
|
35
|
-
export interface SpeechRecognition extends EventTarget {
|
|
36
|
-
continuous: boolean;
|
|
37
|
-
grammars: SpeechGrammarList;
|
|
38
|
-
interimResults: boolean;
|
|
39
|
-
lang: string;
|
|
40
|
-
maxAlternatives: number;
|
|
41
|
-
onaudioend: ((this: SpeechRecognition, ev: Event) => any) | null;
|
|
42
|
-
onaudiostart: ((this: SpeechRecognition, ev: Event) => any) | null;
|
|
43
|
-
onend: ((this: SpeechRecognition, ev: Event) => any) | null;
|
|
44
|
-
onerror: ((this: SpeechRecognition, ev: SpeechRecognitionErrorEvent) => any) | null;
|
|
45
|
-
onnomatch: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => any) | null;
|
|
46
|
-
onresult: ((this: SpeechRecognition, ev: SpeechRecognitionEvent) => any) | null;
|
|
47
|
-
onsoundend: ((this: SpeechRecognition, ev: Event) => any) | null;
|
|
48
|
-
onsoundstart: ((this: SpeechRecognition, ev: Event) => any) | null;
|
|
49
|
-
onspeechend: ((this: SpeechRecognition, ev: Event) => any) | null;
|
|
50
|
-
onspeechstart: ((this: SpeechRecognition, ev: Event) => any) | null;
|
|
51
|
-
onstart: ((this: SpeechRecognition, ev: Event) => any) | null;
|
|
52
|
-
abort: () => void;
|
|
53
|
-
start: () => void;
|
|
54
|
-
stop: () => void;
|
|
55
|
-
addEventListener: (<K extends keyof SpeechRecognitionEventMap>(type: K, listener: (this: SpeechRecognition, ev: SpeechRecognitionEventMap[K]) => any, options?: boolean | AddEventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);
|
|
56
|
-
removeEventListener: (<K extends keyof SpeechRecognitionEventMap>(type: K, listener: (this: SpeechRecognition, ev: SpeechRecognitionEventMap[K]) => any, options?: boolean | EventListenerOptions) => void) & ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void);
|
|
57
|
-
}
|
|
58
|
-
export interface UseSpeechRecognitionOptions {
|
|
59
|
-
/**
|
|
60
|
-
* Controls whether continuous results are returned for each recognition, or only a single result.
|
|
61
|
-
*
|
|
62
|
-
* @default true
|
|
63
|
-
*/
|
|
64
|
-
continuous?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Controls whether interim results should be returned (true) or not (false.) Interim results are results that are not yet final
|
|
67
|
-
*
|
|
68
|
-
* @default true
|
|
69
|
-
*/
|
|
70
|
-
interimResults?: boolean;
|
|
71
|
-
/**
|
|
72
|
-
* Language for SpeechRecognition
|
|
73
|
-
*
|
|
74
|
-
* @default 'en-US'
|
|
75
|
-
*/
|
|
76
|
-
lang?: Ref<string>;
|
|
77
|
-
/**
|
|
78
|
-
* A number representing the maximum returned alternatives for each result.
|
|
79
|
-
*
|
|
80
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/maxAlternatives
|
|
81
|
-
* @default 1
|
|
82
|
-
*/
|
|
83
|
-
maxAlternatives?: number;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Reactive SpeechRecognition.
|
|
87
|
-
*
|
|
88
|
-
* @see https://vueuse.org/useSpeechRecognition
|
|
89
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition SpeechRecognition
|
|
90
|
-
* @param options
|
|
91
|
-
*/
|
|
92
|
-
export declare function useSpeechRecognition(options?: UseSpeechRecognitionOptions): {
|
|
93
|
-
isSupported: boolean;
|
|
94
|
-
isListening: Ref<boolean>;
|
|
95
|
-
isFinal: Ref<boolean>;
|
|
96
|
-
recognition: SpeechRecognition;
|
|
97
|
-
result: Ref<string>;
|
|
98
|
-
error: Ref<SpeechRecognitionErrorEvent>;
|
|
99
|
-
toggle: (value?: boolean) => void;
|
|
100
|
-
start: () => void;
|
|
101
|
-
stop: () => void;
|
|
102
|
-
};
|
|
103
|
-
export type UseSpeechRecognitionReturn = ReturnType<typeof useSpeechRecognition>;
|
|
104
|
-
export {};
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { toRef, toValue, ref, shallowRef, watch } from 'vue';
|
|
2
|
-
/**
|
|
3
|
-
* Reactive SpeechRecognition.
|
|
4
|
-
*
|
|
5
|
-
* @see https://vueuse.org/useSpeechRecognition
|
|
6
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition SpeechRecognition
|
|
7
|
-
* @param options
|
|
8
|
-
*/
|
|
9
|
-
export function useSpeechRecognition(options = {}) {
|
|
10
|
-
const { interimResults = true, continuous = true, maxAlternatives = 1 } = options;
|
|
11
|
-
const lang = toRef(options.lang || 'en-US');
|
|
12
|
-
const isListening = ref(false);
|
|
13
|
-
const isFinal = ref(false);
|
|
14
|
-
const result = ref('');
|
|
15
|
-
const error = shallowRef(undefined);
|
|
16
|
-
const toggle = (value = !isListening.value) => {
|
|
17
|
-
isListening.value = value;
|
|
18
|
-
};
|
|
19
|
-
const start = () => {
|
|
20
|
-
isListening.value = true;
|
|
21
|
-
};
|
|
22
|
-
const stop = () => {
|
|
23
|
-
isListening.value = false;
|
|
24
|
-
};
|
|
25
|
-
const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);
|
|
26
|
-
const isSupported = !!SpeechRecognition;
|
|
27
|
-
let recognition;
|
|
28
|
-
if (isSupported) {
|
|
29
|
-
recognition = new SpeechRecognition();
|
|
30
|
-
recognition.continuous = continuous;
|
|
31
|
-
recognition.interimResults = interimResults;
|
|
32
|
-
recognition.lang = toValue(lang);
|
|
33
|
-
recognition.maxAlternatives = maxAlternatives;
|
|
34
|
-
recognition.onstart = () => {
|
|
35
|
-
isFinal.value = false;
|
|
36
|
-
};
|
|
37
|
-
watch(lang, (lang) => {
|
|
38
|
-
if (recognition && !isListening.value)
|
|
39
|
-
recognition.lang = lang;
|
|
40
|
-
});
|
|
41
|
-
recognition.onresult = (event) => {
|
|
42
|
-
const currentResult = event.results[event.resultIndex];
|
|
43
|
-
const { transcript } = currentResult[0];
|
|
44
|
-
isFinal.value = currentResult.isFinal;
|
|
45
|
-
result.value = transcript;
|
|
46
|
-
error.value = undefined;
|
|
47
|
-
};
|
|
48
|
-
recognition.onerror = (event) => {
|
|
49
|
-
error.value = event;
|
|
50
|
-
};
|
|
51
|
-
recognition.onend = () => {
|
|
52
|
-
isListening.value = false;
|
|
53
|
-
recognition.lang = toValue(lang);
|
|
54
|
-
};
|
|
55
|
-
watch(isListening, () => {
|
|
56
|
-
if (isListening.value)
|
|
57
|
-
recognition.start();
|
|
58
|
-
else
|
|
59
|
-
recognition.stop();
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
/*
|
|
63
|
-
tryOnScopeDispose(() => {
|
|
64
|
-
isListening.value = false
|
|
65
|
-
})
|
|
66
|
-
*/
|
|
67
|
-
return {
|
|
68
|
-
isSupported,
|
|
69
|
-
isListening,
|
|
70
|
-
isFinal,
|
|
71
|
-
recognition,
|
|
72
|
-
result,
|
|
73
|
-
error,
|
|
74
|
-
toggle,
|
|
75
|
-
start,
|
|
76
|
-
stop,
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=useSpeechRecognition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSpeechRecognition.js","sourceRoot":"","sources":["../src/useSpeechRecognition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
2
|
-
export type UseSpeechSynthesisStatus = 'init' | 'play' | 'pause' | 'end';
|
|
3
|
-
export interface UseSpeechSynthesisOptions {
|
|
4
|
-
/**
|
|
5
|
-
* Language for SpeechSynthesis
|
|
6
|
-
*
|
|
7
|
-
* @default 'en-US'
|
|
8
|
-
*/
|
|
9
|
-
lang?: Ref<string>;
|
|
10
|
-
/**
|
|
11
|
-
* Gets and sets the pitch at which the utterance will be spoken at.
|
|
12
|
-
*
|
|
13
|
-
* @default 1
|
|
14
|
-
*/
|
|
15
|
-
pitch?: Ref<SpeechSynthesisUtterance['pitch']>;
|
|
16
|
-
/**
|
|
17
|
-
* Gets and sets the speed at which the utterance will be spoken at.
|
|
18
|
-
*
|
|
19
|
-
* @default 1
|
|
20
|
-
*/
|
|
21
|
-
rate?: Ref<SpeechSynthesisUtterance['rate']>;
|
|
22
|
-
/**
|
|
23
|
-
* Gets and sets the voice that will be used to speak the utterance.
|
|
24
|
-
*/
|
|
25
|
-
voice?: Ref<SpeechSynthesisVoice>;
|
|
26
|
-
/**
|
|
27
|
-
* Gets and sets the volume that the utterance will be spoken at.
|
|
28
|
-
*
|
|
29
|
-
* @default 1
|
|
30
|
-
*/
|
|
31
|
-
volume?: SpeechSynthesisUtterance['volume'];
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Reactive SpeechSynthesis.
|
|
35
|
-
*
|
|
36
|
-
* @see https://vueuse.org/useSpeechSynthesis
|
|
37
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis SpeechSynthesis
|
|
38
|
-
*/
|
|
39
|
-
export declare function useSpeechSynthesis(text: Ref<string>, options?: UseSpeechSynthesisOptions): {
|
|
40
|
-
isSupported: boolean;
|
|
41
|
-
isPlaying: Ref<boolean>;
|
|
42
|
-
status: Ref<UseSpeechSynthesisStatus>;
|
|
43
|
-
utterance: import("vue").ComputedRef<SpeechSynthesisUtterance>;
|
|
44
|
-
error: Ref<SpeechSynthesisErrorEvent>;
|
|
45
|
-
stop: () => void;
|
|
46
|
-
toggle: (value?: boolean) => void;
|
|
47
|
-
speak: () => void;
|
|
48
|
-
};
|
|
49
|
-
export type UseSpeechSynthesisReturn = ReturnType<typeof useSpeechSynthesis>;
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { computed, ref, shallowRef, watch, toRef, toValue } from 'vue';
|
|
2
|
-
/**
|
|
3
|
-
* Reactive SpeechSynthesis.
|
|
4
|
-
*
|
|
5
|
-
* @see https://vueuse.org/useSpeechSynthesis
|
|
6
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis SpeechSynthesis
|
|
7
|
-
*/
|
|
8
|
-
export function useSpeechSynthesis(text, options = {}) {
|
|
9
|
-
const { pitch = 1, rate = 1, volume = 1 } = options;
|
|
10
|
-
const synth = window && window.speechSynthesis;
|
|
11
|
-
const isSupported = !!synth;
|
|
12
|
-
const isPlaying = ref(false);
|
|
13
|
-
const status = ref('init');
|
|
14
|
-
const spokenText = toRef(text || '');
|
|
15
|
-
const lang = toRef(options.lang || 'en-US');
|
|
16
|
-
const error = shallowRef(undefined);
|
|
17
|
-
const toggle = (value = !isPlaying.value) => {
|
|
18
|
-
isPlaying.value = value;
|
|
19
|
-
};
|
|
20
|
-
const bindEventsForUtterance = (utterance) => {
|
|
21
|
-
utterance.lang = toValue(lang);
|
|
22
|
-
utterance.voice = toValue(options.voice) || null;
|
|
23
|
-
utterance.pitch = toValue(pitch);
|
|
24
|
-
utterance.rate = toValue(rate);
|
|
25
|
-
utterance.volume = volume;
|
|
26
|
-
utterance.onstart = () => {
|
|
27
|
-
isPlaying.value = true;
|
|
28
|
-
status.value = 'play';
|
|
29
|
-
};
|
|
30
|
-
utterance.onpause = () => {
|
|
31
|
-
isPlaying.value = false;
|
|
32
|
-
status.value = 'pause';
|
|
33
|
-
};
|
|
34
|
-
utterance.onresume = () => {
|
|
35
|
-
isPlaying.value = true;
|
|
36
|
-
status.value = 'play';
|
|
37
|
-
};
|
|
38
|
-
utterance.onend = () => {
|
|
39
|
-
isPlaying.value = false;
|
|
40
|
-
status.value = 'end';
|
|
41
|
-
};
|
|
42
|
-
utterance.onerror = (event) => {
|
|
43
|
-
error.value = event;
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
const utterance = computed(() => {
|
|
47
|
-
isPlaying.value = false;
|
|
48
|
-
status.value = 'init';
|
|
49
|
-
const newUtterance = new SpeechSynthesisUtterance(spokenText.value);
|
|
50
|
-
bindEventsForUtterance(newUtterance);
|
|
51
|
-
return newUtterance;
|
|
52
|
-
});
|
|
53
|
-
const speak = () => {
|
|
54
|
-
synth.cancel();
|
|
55
|
-
if (utterance)
|
|
56
|
-
synth.speak(utterance.value);
|
|
57
|
-
};
|
|
58
|
-
const stop = () => {
|
|
59
|
-
synth.cancel();
|
|
60
|
-
isPlaying.value = false;
|
|
61
|
-
};
|
|
62
|
-
if (isSupported) {
|
|
63
|
-
bindEventsForUtterance(utterance.value);
|
|
64
|
-
watch(lang, (lang) => {
|
|
65
|
-
if (utterance.value && !isPlaying.value)
|
|
66
|
-
utterance.value.lang = lang;
|
|
67
|
-
});
|
|
68
|
-
if (options.voice) {
|
|
69
|
-
watch(options.voice, () => {
|
|
70
|
-
synth.cancel();
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
watch(isPlaying, () => {
|
|
74
|
-
if (isPlaying.value)
|
|
75
|
-
synth.resume();
|
|
76
|
-
else
|
|
77
|
-
synth.pause();
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
/*
|
|
81
|
-
tryOnScopeDispose(() => {
|
|
82
|
-
isPlaying.value = false
|
|
83
|
-
})
|
|
84
|
-
*/
|
|
85
|
-
return {
|
|
86
|
-
isSupported,
|
|
87
|
-
isPlaying,
|
|
88
|
-
status,
|
|
89
|
-
utterance,
|
|
90
|
-
error,
|
|
91
|
-
stop,
|
|
92
|
-
toggle,
|
|
93
|
-
speak,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=useSpeechSynthesis.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSpeechSynthesis.js","sourceRoot":"","sources":["../src/useSpeechSynthesis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export declare type Dictionary<T> = {
|
|
2
|
-
[key: string]: T;
|
|
3
|
-
};
|
|
4
|
-
export interface IValueText {
|
|
5
|
-
value: number;
|
|
6
|
-
text: string;
|
|
7
|
-
}
|
|
8
|
-
export declare class Helper {
|
|
9
|
-
static fromMilliseconds1970(ms: number): Date;
|
|
10
|
-
static toTicks(dt: Date): number;
|
|
11
|
-
static toUnixTime(dt: Date): number;
|
|
12
|
-
static fromTicks(ticks: number): Date;
|
|
13
|
-
static fromUnixTime(unixTime: number): Date;
|
|
14
|
-
static toUTC(dt: Date): Date;
|
|
15
|
-
static toLocal(dt: Date): Date;
|
|
16
|
-
static round(value: number, digits: number | undefined): string;
|
|
17
|
-
static formatTime(dt: Date, withSeconds?: boolean): string;
|
|
18
|
-
static formatDayTime(dt: Date, withSeconds?: boolean): string;
|
|
19
|
-
private static padNumber2;
|
|
20
|
-
static toColor(red: number, green: number, blue: number): string;
|
|
21
|
-
static generateUUID(): string;
|
|
22
|
-
static deepCompare(o: any, p: any): boolean;
|
|
23
|
-
static isMobileDevice(): boolean;
|
|
24
|
-
static wait(ms: number): Promise<void>;
|
|
25
|
-
static enumToString(en: any, value: unknown): string;
|
|
26
|
-
static stringToEnum(en: any, value: unknown): number;
|
|
27
|
-
static getEnumOptions(en: any): IValueText[];
|
|
28
|
-
}
|
package/dist/utils/src/helper.js
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
const dec = [1, 10, 100, 1000, 10000, 100000, 1000000];
|
|
2
|
-
const ms1970m1d1 = 62135596800000;
|
|
3
|
-
export class Helper {
|
|
4
|
-
static fromMilliseconds1970(ms) {
|
|
5
|
-
ms = ms - ms1970m1d1;
|
|
6
|
-
return new Date(ms); // 1.1.1970 utc in ms
|
|
7
|
-
}
|
|
8
|
-
static toTicks(dt) {
|
|
9
|
-
return ((dt.getTime() * 10000) + 621355968000000000);
|
|
10
|
-
}
|
|
11
|
-
static toUnixTime(dt) {
|
|
12
|
-
return Math.round(dt.getTime() / 1000);
|
|
13
|
-
}
|
|
14
|
-
static fromTicks(ticks) {
|
|
15
|
-
return new Date((ticks - 621355968000000000) / 1000);
|
|
16
|
-
}
|
|
17
|
-
static fromUnixTime(unixTime) {
|
|
18
|
-
return new Date(unixTime * 1000);
|
|
19
|
-
}
|
|
20
|
-
static toUTC(dt) {
|
|
21
|
-
return new Date(dt.getUTCFullYear(), dt.getUTCMonth(), dt.getUTCDate(), dt.getUTCHours(), dt.getUTCMinutes(), dt.getUTCSeconds());
|
|
22
|
-
}
|
|
23
|
-
static toLocal(dt) {
|
|
24
|
-
let d = dt.getTime() - dt.getTimezoneOffset() * 60000;
|
|
25
|
-
return new Date(d);
|
|
26
|
-
}
|
|
27
|
-
static round(value, digits) {
|
|
28
|
-
if (!digits) {
|
|
29
|
-
digits = 0;
|
|
30
|
-
}
|
|
31
|
-
value = Math.round(value * dec[digits]) / dec[digits];
|
|
32
|
-
return value.toString();
|
|
33
|
-
}
|
|
34
|
-
static formatTime(dt, withSeconds) {
|
|
35
|
-
let s = Helper.padNumber2(dt.getHours()) + ':' + Helper.padNumber2(dt.getMinutes());
|
|
36
|
-
if (withSeconds) {
|
|
37
|
-
s = s + ':' + this.padNumber2(dt.getSeconds());
|
|
38
|
-
}
|
|
39
|
-
return s;
|
|
40
|
-
}
|
|
41
|
-
static formatDayTime(dt, withSeconds) {
|
|
42
|
-
let s = dt.getDate() + ' ' + Helper.padNumber2(dt.getHours()) + ':' + Helper.padNumber2(dt.getMinutes());
|
|
43
|
-
if (withSeconds) {
|
|
44
|
-
s = s + ':' + this.padNumber2(dt.getSeconds());
|
|
45
|
-
}
|
|
46
|
-
return s;
|
|
47
|
-
}
|
|
48
|
-
static padNumber2(num, radix) {
|
|
49
|
-
let s = num.toString(radix);
|
|
50
|
-
if (s.length < 2)
|
|
51
|
-
s = '0' + s;
|
|
52
|
-
return s;
|
|
53
|
-
}
|
|
54
|
-
static toColor(red, green, blue) {
|
|
55
|
-
return '#' + Helper.padNumber2(red, 16) + Helper.padNumber2(green, 16) + Helper.padNumber2(blue, 16);
|
|
56
|
-
}
|
|
57
|
-
static generateUUID() {
|
|
58
|
-
var d = new Date().getTime();
|
|
59
|
-
d += performance.now(); //use high-precision timer if available
|
|
60
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
61
|
-
var r = (d + Math.random() * 16) % 16 | 0;
|
|
62
|
-
d = Math.floor(d / 16);
|
|
63
|
-
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
static deepCompare(o, p) {
|
|
67
|
-
if (typeof o == 'undefined' || typeof p == 'undefined') {
|
|
68
|
-
return typeof o == typeof p;
|
|
69
|
-
}
|
|
70
|
-
var i, keysO = Object.keys(o).sort(), keysP = Object.keys(p).sort();
|
|
71
|
-
if (keysO.length !== keysP.length)
|
|
72
|
-
return false; //not the same nr of keys
|
|
73
|
-
if (keysO.join('') !== keysP.join(''))
|
|
74
|
-
return false; //different keys
|
|
75
|
-
for (i = 0; i < keysO.length; ++i) {
|
|
76
|
-
if (o[keysO[i]] instanceof Array) {
|
|
77
|
-
if (!(p[keysO[i]] instanceof Array))
|
|
78
|
-
return false;
|
|
79
|
-
//if (compareObjects(o[keysO[i]], p[keysO[i]] === false) return false
|
|
80
|
-
//would work, too, and perhaps is a better fit, still, this is easy, too
|
|
81
|
-
if (p[keysO[i]].sort().join('') !== o[keysO[i]].sort().join(''))
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
else if (o[keysO[i]] instanceof Date) {
|
|
85
|
-
if (!(p[keysO[i]] instanceof Date))
|
|
86
|
-
return false;
|
|
87
|
-
if (('' + o[keysO[i]]) !== ('' + p[keysO[i]]))
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
else if (o[keysO[i]] instanceof Function) {
|
|
91
|
-
if (!(p[keysO[i]] instanceof Function))
|
|
92
|
-
return false;
|
|
93
|
-
//ignore functions, or check them regardless?
|
|
94
|
-
}
|
|
95
|
-
else if (o[keysO[i]] instanceof Object) {
|
|
96
|
-
if (!(p[keysO[i]] instanceof Object))
|
|
97
|
-
return false;
|
|
98
|
-
if (o[keysO[i]] === o) { //self reference?
|
|
99
|
-
if (p[keysO[i]] !== p)
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
else if (Helper.deepCompare(o[keysO[i]], p[keysO[i]]) === false)
|
|
103
|
-
return false; //WARNING: does not deal with circular refs other than ^^
|
|
104
|
-
}
|
|
105
|
-
else if (o[keysO[i]] !== p[keysO[i]]) //change !== to != for loose comparison
|
|
106
|
-
return false; //not the same value
|
|
107
|
-
}
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
110
|
-
static isMobileDevice() {
|
|
111
|
-
return (typeof window.orientation !== "undefined");
|
|
112
|
-
}
|
|
113
|
-
static wait(ms) {
|
|
114
|
-
return new Promise(r => setTimeout(r, ms));
|
|
115
|
-
}
|
|
116
|
-
static enumToString(en, value) {
|
|
117
|
-
if (typeof value === 'string')
|
|
118
|
-
return value;
|
|
119
|
-
if (typeof value === 'number')
|
|
120
|
-
return en[value];
|
|
121
|
-
return '';
|
|
122
|
-
}
|
|
123
|
-
static stringToEnum(en, value) {
|
|
124
|
-
if (typeof value === 'string') {
|
|
125
|
-
return en[value];
|
|
126
|
-
//const e = en as { [key: string]: number };
|
|
127
|
-
//return e[value];
|
|
128
|
-
}
|
|
129
|
-
if (typeof value === 'number')
|
|
130
|
-
return value;
|
|
131
|
-
return -1;
|
|
132
|
-
}
|
|
133
|
-
static getEnumOptions(en) {
|
|
134
|
-
const options = [];
|
|
135
|
-
for (const key in en) {
|
|
136
|
-
const val = en[key];
|
|
137
|
-
if (typeof val === 'number') {
|
|
138
|
-
options.push({ value: val, text: key });
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return options;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=helper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../src/helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export interface ILocalStorage {
|
|
2
|
-
getItem(name: string): string | null;
|
|
3
|
-
getItemString(name: string, def?: string): string;
|
|
4
|
-
getItemNumber(name: string, def?: number): number;
|
|
5
|
-
getItemBoolean(name: string, def?: boolean): boolean;
|
|
6
|
-
setItem(name: string, value: string | number | boolean | null): void;
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"iLocalStorage.js","sourceRoot":"","sources":["../../../src/iLocalStorage.ts"],"names":[],"mappings":""}
|
package/dist/utils/src/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ILocalStorage } from './iLocalStorage';
|
|
2
|
-
export * from './iLocalStorage';
|
|
3
|
-
export declare class LocalStorageDummy implements ILocalStorage {
|
|
4
|
-
prefix: string;
|
|
5
|
-
constructor(prefix: string);
|
|
6
|
-
getItem(name: string): string | null;
|
|
7
|
-
getItemString(name: string, def?: string): string;
|
|
8
|
-
getItemNumber(name: string, def?: number): number;
|
|
9
|
-
getItemBoolean(name: string, def?: boolean): boolean;
|
|
10
|
-
setItem(name: string, value: string | number | boolean | null): void;
|
|
11
|
-
}
|
|
12
|
-
export declare class LocalStorage implements ILocalStorage {
|
|
13
|
-
prefix: string;
|
|
14
|
-
constructor(prefix: string);
|
|
15
|
-
getItem(name: string): string | null;
|
|
16
|
-
getItemString(name: string, def?: string): string;
|
|
17
|
-
getItemNumber(name: string, def?: number): number;
|
|
18
|
-
getItemBoolean(name: string, def?: boolean): boolean;
|
|
19
|
-
setItem(name: string, value: string | number | boolean | null): void;
|
|
20
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export * from './iLocalStorage';
|
|
2
|
-
export class LocalStorageDummy {
|
|
3
|
-
prefix = "";
|
|
4
|
-
constructor(prefix) {
|
|
5
|
-
if (prefix)
|
|
6
|
-
this.prefix = prefix + '_';
|
|
7
|
-
}
|
|
8
|
-
getItem(name) {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
getItemString(name, def) {
|
|
12
|
-
return def ? def : "";
|
|
13
|
-
}
|
|
14
|
-
getItemNumber(name, def) {
|
|
15
|
-
return def ? def : 0;
|
|
16
|
-
}
|
|
17
|
-
getItemBoolean(name, def) {
|
|
18
|
-
return def ? def : false;
|
|
19
|
-
}
|
|
20
|
-
setItem(name, value) {
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export class LocalStorage {
|
|
24
|
-
prefix = "";
|
|
25
|
-
constructor(prefix) {
|
|
26
|
-
if (prefix)
|
|
27
|
-
this.prefix = prefix + '_';
|
|
28
|
-
}
|
|
29
|
-
getItem(name) {
|
|
30
|
-
return window.localStorage.getItem(this.prefix + name);
|
|
31
|
-
}
|
|
32
|
-
getItemString(name, def) {
|
|
33
|
-
let str = window.localStorage.getItem(this.prefix + name);
|
|
34
|
-
if (str === null) {
|
|
35
|
-
if (def)
|
|
36
|
-
this.setItem(name, def);
|
|
37
|
-
str = def ? def : "";
|
|
38
|
-
}
|
|
39
|
-
return str;
|
|
40
|
-
}
|
|
41
|
-
getItemNumber(name, def) {
|
|
42
|
-
const str = window.localStorage.getItem(this.prefix + name);
|
|
43
|
-
if (str === null)
|
|
44
|
-
return def ? def : 0;
|
|
45
|
-
return Number(str);
|
|
46
|
-
}
|
|
47
|
-
getItemBoolean(name, def) {
|
|
48
|
-
const str = window.localStorage.getItem(this.prefix + name);
|
|
49
|
-
if (str === null)
|
|
50
|
-
return def ? def : false;
|
|
51
|
-
return str === "true";
|
|
52
|
-
}
|
|
53
|
-
setItem(name, value) {
|
|
54
|
-
window.localStorage.setItem(this.prefix + name, (value ? value.toString() : null));
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=localStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../../../src/localStorage.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAEhC,MAAM,OAAO,iBAAiB;IAC1B,MAAM,GAAG,EAAE,CAAC;IACZ,YAAY,MAAc;QACtB,IAAI,MAAM;YACN,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,IAAY;QAChB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,GAAY;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,GAAY;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,cAAc,CAAC,IAAY,EAAE,GAAa;QACtC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,KAAuC;IAC7D,CAAC;CACJ;AACD,MAAM,OAAO,YAAY;IACrB,MAAM,GAAG,EAAE,CAAC;IACZ,YAAY,MAAc;QACtB,IAAI,MAAM;YACN,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,IAAY;QAChB,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,GAAY;QACpC,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC1D,IAAI,GAAG,KAAK,IAAI,EAAE;YACd,IAAI,GAAG;gBACH,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;SACxB;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IACD,aAAa,CAAC,IAAY,EAAE,GAAY;QACpC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI;YACZ,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,cAAc,CAAC,IAAY,EAAE,GAAa;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5D,IAAI,GAAG,KAAK,IAAI;YACZ,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC7B,OAAO,GAAG,KAAK,MAAM,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,IAAY,EAAE,KAAuC;QACzD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAW,CAAC,CAAC;IACjG,CAAC;CACJ"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ILocalStorage } from './iLocalStorage';
|
|
2
|
-
declare type Dictionary<T> = {
|
|
3
|
-
[key: string]: T;
|
|
4
|
-
};
|
|
5
|
-
export declare class ReactiveStorageItem {
|
|
6
|
-
storage: ILocalStorage;
|
|
7
|
-
name: string;
|
|
8
|
-
value: import("vue").Ref<string | number | boolean>;
|
|
9
|
-
constructor(localStorage: ILocalStorage, name: string, val: string | number | boolean);
|
|
10
|
-
}
|
|
11
|
-
export declare class ReactiveStorage {
|
|
12
|
-
storage: ILocalStorage;
|
|
13
|
-
items: Dictionary<ReactiveStorageItem>;
|
|
14
|
-
constructor(localStorage: ILocalStorage);
|
|
15
|
-
setItem(name: string, val: string | number | boolean): void;
|
|
16
|
-
getItem(name: string): string | number | boolean | undefined;
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { ref, watchEffect } from 'vue';
|
|
2
|
-
export class ReactiveStorageItem {
|
|
3
|
-
storage;
|
|
4
|
-
name;
|
|
5
|
-
value = ref(null);
|
|
6
|
-
constructor(localStorage, name, val) {
|
|
7
|
-
this.storage = localStorage;
|
|
8
|
-
this.name = name;
|
|
9
|
-
const existingValue = localStorage.getItem(name);
|
|
10
|
-
if (existingValue == null) {
|
|
11
|
-
this.value.value = val;
|
|
12
|
-
localStorage.setItem(name, val);
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
if (typeof val === 'string')
|
|
16
|
-
this.value.value = localStorage.getItemString(name);
|
|
17
|
-
if (typeof val === 'number')
|
|
18
|
-
this.value.value = localStorage.getItemNumber(name);
|
|
19
|
-
if (typeof val === 'boolean')
|
|
20
|
-
this.value.value = localStorage.getItemBoolean(name);
|
|
21
|
-
}
|
|
22
|
-
watchEffect(() => {
|
|
23
|
-
this.storage.setItem(this.name, this.value.value);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export class ReactiveStorage {
|
|
28
|
-
storage;
|
|
29
|
-
items = {};
|
|
30
|
-
constructor(localStorage) {
|
|
31
|
-
this.storage = localStorage;
|
|
32
|
-
}
|
|
33
|
-
setItem(name, val) {
|
|
34
|
-
let item = this.items[name];
|
|
35
|
-
if (item) {
|
|
36
|
-
item.value.value = val;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
item = new ReactiveStorageItem(this.storage, name, val);
|
|
40
|
-
this.items[name] = item;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
getItem(name) {
|
|
44
|
-
let item = this.items[name];
|
|
45
|
-
if (item)
|
|
46
|
-
return item.value.value;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=reactiveStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reactiveStorage.js","sourceRoot":"","sources":["../../../src/reactiveStorage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAIvC,MAAM,OAAO,mBAAmB;IAC5B,OAAO,CAAgB;IACvB,IAAI,CAAS;IACb,KAAK,GAAG,GAAG,CAA4B,IAAI,CAAC,CAAC;IAE7C,YAAY,YAA2B,EAAE,IAAY,EAAE,GAA8B;QACjF,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAE,IAAI,CAAC,CAAC;QAClD,IAAI,aAAa,IAAI,IAAI,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;YACvB,YAAY,CAAC,OAAO,CAAE,IAAI,EAAE,GAAG,CAAC,CAAC;SACpC;aACI;YACD,IAAI,OAAO,GAAG,KAAK,QAAQ;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,OAAO,GAAG,KAAK,QAAQ;gBACvB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,OAAO,GAAG,KAAK,SAAS;gBACxB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC5D;QACD,WAAW,CAAE,GAAG,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,MAAM,OAAO,eAAe;IACxB,OAAO,CAAgB;IACvB,KAAK,GAAoC,EAAE,CAAC;IAE5C,YAAY,YAA2B;QACnC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;IAChC,CAAC;IAED,OAAO,CAAE,IAAY,EAAE,GAA8B;QACjD,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;SAC1B;aACI;YACD,IAAI,GAAG,IAAI,mBAAmB,CAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;SAC3B;IACL,CAAC;IACD,OAAO,CAAE,IAAY;QACjB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAChC,CAAC;CACJ"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { ILogger } from '../../logger/src/iLogger';
|
|
2
|
-
export interface IHook {
|
|
3
|
-
log: ILogger;
|
|
4
|
-
online(value: boolean): void;
|
|
5
|
-
ready(): void;
|
|
6
|
-
updated(): void;
|
|
7
|
-
cached(): void;
|
|
8
|
-
registered(): void;
|
|
9
|
-
error(reason: any): void;
|
|
10
|
-
subscribed?(isSubscribed: boolean): void;
|
|
11
|
-
}
|
|
12
|
-
export declare class RegisterServiceWorker {
|
|
13
|
-
applicationServerPublicKey: string | undefined;
|
|
14
|
-
isOnline: boolean;
|
|
15
|
-
isSubscribed?: boolean;
|
|
16
|
-
static instance: RegisterServiceWorker;
|
|
17
|
-
private _rsw;
|
|
18
|
-
private _hook;
|
|
19
|
-
constructor(hook: IHook, applicationServerPublicKey?: string);
|
|
20
|
-
get registration(): ServiceWorkerRegistration;
|
|
21
|
-
register(swUrl: string, scope?: string): void;
|
|
22
|
-
private registerValidSW;
|
|
23
|
-
private processMessage;
|
|
24
|
-
notify(msg: any): void;
|
|
25
|
-
private checkValidServiceWorker;
|
|
26
|
-
unregister(): void;
|
|
27
|
-
getSubscription(): Promise<PushSubscription | null>;
|
|
28
|
-
subscribeUser(): Promise<PushSubscription>;
|
|
29
|
-
unsubscribeUser(): Promise<PushSubscription>;
|
|
30
|
-
private static urlB64ToUint8Array;
|
|
31
|
-
}
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
// Register a service worker to serve assets from local cache.
|
|
2
|
-
// This lets the app load faster on subsequent visits in production, and gives
|
|
3
|
-
// it offline capabilities. However, it also means that developers (and users)
|
|
4
|
-
// will only see deployed updates on the "N+1" visit to a page, since previously
|
|
5
|
-
// cached resources are updated in the background.
|
|
6
|
-
const isLocalhost = Boolean(window.location.hostname === 'localhost' ||
|
|
7
|
-
// [::1] is the IPv6 localhost address.
|
|
8
|
-
window.location.hostname === '[::1]' ||
|
|
9
|
-
// 127.0.0.1/8 is considered localhost for IPv4.
|
|
10
|
-
window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));
|
|
11
|
-
export class RegisterServiceWorker {
|
|
12
|
-
applicationServerPublicKey;
|
|
13
|
-
isOnline;
|
|
14
|
-
isSubscribed;
|
|
15
|
-
static instance;
|
|
16
|
-
_rsw = null;
|
|
17
|
-
_hook;
|
|
18
|
-
constructor(hook, applicationServerPublicKey) {
|
|
19
|
-
RegisterServiceWorker.instance = this;
|
|
20
|
-
this._hook = hook;
|
|
21
|
-
this.isOnline = navigator.onLine;
|
|
22
|
-
this.applicationServerPublicKey = applicationServerPublicKey;
|
|
23
|
-
this._hook.online(this.isOnline);
|
|
24
|
-
window.ononline = (ev) => {
|
|
25
|
-
this._hook.online(true);
|
|
26
|
-
this.isOnline = true;
|
|
27
|
-
};
|
|
28
|
-
window.onoffline = (ev) => {
|
|
29
|
-
this._hook.online(false);
|
|
30
|
-
this.isOnline = false;
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
get registration() {
|
|
34
|
-
return this._rsw;
|
|
35
|
-
}
|
|
36
|
-
register(swUrl, scope) {
|
|
37
|
-
const self = this;
|
|
38
|
-
if ('serviceWorker' in navigator) {
|
|
39
|
-
this._hook.log.info('Register service worker');
|
|
40
|
-
window.addEventListener('load', () => {
|
|
41
|
-
if (isLocalhost) {
|
|
42
|
-
// This is running on localhost. Lets check if a service worker still exists or not.
|
|
43
|
-
self.checkValidServiceWorker(swUrl);
|
|
44
|
-
navigator.serviceWorker.ready
|
|
45
|
-
.then(() => {
|
|
46
|
-
this._hook.ready();
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
// Is not local host. Just register service worker
|
|
51
|
-
self.registerValidSW(swUrl, scope);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
registerValidSW(swUrl, scope) {
|
|
57
|
-
const self = this;
|
|
58
|
-
navigator.serviceWorker
|
|
59
|
-
.register(swUrl, { scope: scope })
|
|
60
|
-
.then(registration => {
|
|
61
|
-
self._rsw = registration;
|
|
62
|
-
if (navigator.serviceWorker.onmessage != null) {
|
|
63
|
-
navigator.serviceWorker.addEventListener('message', (swevent) => {
|
|
64
|
-
const reply = self.processMessage(swevent.data);
|
|
65
|
-
if (swevent.ports !== null)
|
|
66
|
-
swevent.ports[0].postMessage(reply);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
registration.onupdatefound = () => {
|
|
70
|
-
const installingWorker = registration.installing;
|
|
71
|
-
self._hook.log.info('Update found');
|
|
72
|
-
if (installingWorker !== null) {
|
|
73
|
-
installingWorker.onstatechange = () => {
|
|
74
|
-
if (installingWorker) {
|
|
75
|
-
self._hook.log.info('State changed ' + installingWorker.state);
|
|
76
|
-
if (installingWorker.state === 'installed') {
|
|
77
|
-
if (navigator.serviceWorker.controller) {
|
|
78
|
-
// At this point, the old content will have been purged and
|
|
79
|
-
// the fresh content will have been added to the cache.
|
|
80
|
-
// It's the perfect time to display a "New content is
|
|
81
|
-
// available; please refresh." message in your web app.
|
|
82
|
-
self._hook.updated();
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
// At this point, everything has been precached.
|
|
86
|
-
// It's the perfect time to display a
|
|
87
|
-
// "Content is cached for offline use." message.
|
|
88
|
-
self._hook.cached();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
self._hook.log.info('Registered at scope ' + registration.scope);
|
|
96
|
-
self._hook.registered();
|
|
97
|
-
})
|
|
98
|
-
.catch(error => {
|
|
99
|
-
self._hook.error(error);
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
processMessage(msgObj) {
|
|
103
|
-
try {
|
|
104
|
-
this._hook.log.info("Message " + JSON.stringify(msgObj));
|
|
105
|
-
if (msgObj.type === 1) {
|
|
106
|
-
this.notify(msgObj.message);
|
|
107
|
-
return "received";
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
this._hook.log.warning("Message " + JSON.stringify(err));
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
notify(msg) {
|
|
115
|
-
if (!("Notification" in window)) {
|
|
116
|
-
alert("This browser does not support desktop notification");
|
|
117
|
-
}
|
|
118
|
-
else if (Notification.permission === "granted") {
|
|
119
|
-
// If it's okay let's create a notification
|
|
120
|
-
const notification = new Notification(msg);
|
|
121
|
-
}
|
|
122
|
-
else if (Notification.permission !== "denied") {
|
|
123
|
-
Notification.requestPermission(function (permission) {
|
|
124
|
-
// If the user accepts, let's create a notification
|
|
125
|
-
if (permission === "granted") {
|
|
126
|
-
const notification = new Notification(msg);
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
checkValidServiceWorker(swUrl) {
|
|
132
|
-
// Check if the service worker can be found.
|
|
133
|
-
const self = this;
|
|
134
|
-
fetch(swUrl)
|
|
135
|
-
.then(response => {
|
|
136
|
-
// Ensure service worker exists, and that we really are getting a JS file.
|
|
137
|
-
if (response.status === 404 || response.headers.get('content-type').indexOf('javascript') === -1) {
|
|
138
|
-
// No service worker found.
|
|
139
|
-
self._hook.error(`Service worker not found at ${swUrl}`);
|
|
140
|
-
self.unregister();
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
// Service worker found. Proceed as normal.
|
|
144
|
-
this.registerValidSW(swUrl);
|
|
145
|
-
}
|
|
146
|
-
})
|
|
147
|
-
.catch(error => {
|
|
148
|
-
if (!navigator.onLine) {
|
|
149
|
-
self._hook.online(false);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
self._hook.error(error);
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
unregister() {
|
|
157
|
-
if ('serviceWorker' in navigator) {
|
|
158
|
-
this._hook.log.info('Unregister service worker');
|
|
159
|
-
navigator.serviceWorker.ready
|
|
160
|
-
.then(registration => registration.unregister());
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
getSubscription() {
|
|
164
|
-
this._hook.log.trace('get subscription');
|
|
165
|
-
const self = this;
|
|
166
|
-
const promise = new Promise(function (resolve, reject) {
|
|
167
|
-
if (self._rsw === null) {
|
|
168
|
-
reject(new Error('No service worker registered'));
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
self.registration.pushManager.getSubscription()
|
|
172
|
-
.then(subscription => {
|
|
173
|
-
resolve(subscription);
|
|
174
|
-
self.isSubscribed = subscription !== null;
|
|
175
|
-
if (self._hook.subscribed)
|
|
176
|
-
self._hook.subscribed(self.isSubscribed);
|
|
177
|
-
})
|
|
178
|
-
.catch(error => reject(error));
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
return promise;
|
|
182
|
-
}
|
|
183
|
-
subscribeUser() {
|
|
184
|
-
this._hook.log.info('subscribe user');
|
|
185
|
-
const self = this;
|
|
186
|
-
const promise = new Promise(function (resolve, reject) {
|
|
187
|
-
if (!self.applicationServerPublicKey) {
|
|
188
|
-
reject(new Error("Application server public key missing"));
|
|
189
|
-
return;
|
|
190
|
-
}
|
|
191
|
-
const applicationServerKey = RegisterServiceWorker.urlB64ToUint8Array(self.applicationServerPublicKey);
|
|
192
|
-
if (self._rsw === null) {
|
|
193
|
-
reject(new Error('No service worker registered'));
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
const options = {
|
|
197
|
-
userVisibleOnly: true,
|
|
198
|
-
applicationServerKey: applicationServerKey
|
|
199
|
-
};
|
|
200
|
-
self.registration.pushManager.subscribe(options)
|
|
201
|
-
.then(subscription => {
|
|
202
|
-
resolve(subscription);
|
|
203
|
-
self.isSubscribed = subscription !== null;
|
|
204
|
-
if (self._hook.subscribed)
|
|
205
|
-
self._hook.subscribed(self.isSubscribed);
|
|
206
|
-
})
|
|
207
|
-
.catch(err => reject(err));
|
|
208
|
-
});
|
|
209
|
-
return promise;
|
|
210
|
-
}
|
|
211
|
-
unsubscribeUser() {
|
|
212
|
-
this._hook.log.info('unsubscribe user');
|
|
213
|
-
const self = this;
|
|
214
|
-
const promise = new Promise(function (resolve, reject) {
|
|
215
|
-
if (self._rsw === null) {
|
|
216
|
-
reject(new Error('No service worker registered'));
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
self.registration.pushManager.getSubscription()
|
|
220
|
-
.then(subscription => {
|
|
221
|
-
if (subscription !== null) {
|
|
222
|
-
subscription.unsubscribe()
|
|
223
|
-
.then((res) => {
|
|
224
|
-
resolve(subscription);
|
|
225
|
-
if (res) {
|
|
226
|
-
self.isSubscribed = false;
|
|
227
|
-
if (self._hook.subscribed)
|
|
228
|
-
self._hook.subscribed(self.isSubscribed);
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
})
|
|
233
|
-
.catch(error => reject(error));
|
|
234
|
-
}
|
|
235
|
-
});
|
|
236
|
-
return promise;
|
|
237
|
-
}
|
|
238
|
-
static urlB64ToUint8Array(base64String) {
|
|
239
|
-
const padding = '='.repeat((4 - base64String.length % 4) % 4);
|
|
240
|
-
const base64 = (base64String + padding)
|
|
241
|
-
.replace(/\-/g, '+')
|
|
242
|
-
.replace(/_/g, '/');
|
|
243
|
-
const rawData = window.atob(base64);
|
|
244
|
-
const outputArray = new Uint8Array(rawData.length);
|
|
245
|
-
for (let i = 0; i < rawData.length; ++i) {
|
|
246
|
-
outputArray[i] = rawData.charCodeAt(i);
|
|
247
|
-
}
|
|
248
|
-
return outputArray;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
//# sourceMappingURL=registerServiceWorker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registerServiceWorker.js","sourceRoot":"","sources":["../../../src/registerServiceWorker.ts"],"names":[],"mappings":"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"}
|