@christianriedl/utils 1.0.166 → 1.0.168

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/dist/appConfig.d.ts +3 -0
  2. package/dist/appConfig.js +20 -4
  3. package/dist/appConfig.js.map +1 -1
  4. package/dist/logger/src/iLogger.d.ts +62 -0
  5. package/dist/logger/src/iLogger.js +10 -0
  6. package/dist/logger/src/iLogger.js.map +1 -0
  7. package/dist/types.d.ts +4 -0
  8. package/dist/useSpeechRecognition.d.ts +104 -0
  9. package/dist/useSpeechRecognition.js +79 -0
  10. package/dist/useSpeechRecognition.js.map +1 -0
  11. package/dist/useSpeechSynthesis.d.ts +49 -0
  12. package/dist/useSpeechSynthesis.js +96 -0
  13. package/dist/useSpeechSynthesis.js.map +1 -0
  14. package/dist/utils/src/helper.d.ts +28 -0
  15. package/dist/utils/src/helper.js +144 -0
  16. package/dist/utils/src/helper.js.map +1 -0
  17. package/dist/utils/src/iLocalStorage.d.ts +7 -0
  18. package/dist/utils/src/iLocalStorage.js +2 -0
  19. package/dist/utils/src/iLocalStorage.js.map +1 -0
  20. package/dist/utils/src/index.d.ts +4 -0
  21. package/dist/utils/src/index.js +5 -0
  22. package/dist/utils/src/index.js.map +1 -0
  23. package/dist/utils/src/localStorage.d.ts +20 -0
  24. package/dist/utils/src/localStorage.js +57 -0
  25. package/dist/utils/src/localStorage.js.map +1 -0
  26. package/dist/utils/src/reactiveStorage.d.ts +18 -0
  27. package/dist/utils/src/reactiveStorage.js +49 -0
  28. package/dist/utils/src/reactiveStorage.js.map +1 -0
  29. package/dist/utils/src/registerServiceWorker.d.ts +31 -0
  30. package/dist/utils/src/registerServiceWorker.js +251 -0
  31. package/dist/utils/src/registerServiceWorker.js.map +1 -0
  32. package/package.json +1 -1
  33. package/src/components/SettingsLine.vue +6 -5
  34. package/src/components/ThemeSettings.vue +13 -3
  35. package/src/views/SettingsPage.vue +3 -1
@@ -9,6 +9,7 @@ export declare class AppConfig implements IAppConfig {
9
9
  add<T>(name: string, description: string, value: ItemType, doNotChange: boolean, scopes: EScope, values?: string[]): void;
10
10
  load(): void;
11
11
  saveItem(item: IConfigItem): void;
12
+ clearItem(item: IConfigItem): void;
12
13
  save(): void;
13
14
  restoreDefaults(): void;
14
15
  log(logger: ILogger, logLevel: LogLevel): void;
@@ -25,4 +26,6 @@ export declare class AppConfig implements IAppConfig {
25
26
  get loggerQueueSize(): number;
26
27
  get theme(): string;
27
28
  set theme(value: string);
29
+ get isLocal(): boolean;
30
+ set isLocal(value: boolean);
28
31
  }
package/dist/appConfig.js CHANGED
@@ -13,15 +13,17 @@ export class AppConfig {
13
13
  load() {
14
14
  for (const key in this.items) {
15
15
  const item = this.items[key];
16
+ const strValue = this.localStorage.getItem(item.name);
17
+ item.loaded = strValue != null;
16
18
  switch (typeof item.default) {
17
19
  case "string":
18
- item.value = this.localStorage.getItemString(item.name, item.default);
20
+ item.value = strValue ?? item.default ?? "";
19
21
  break;
20
22
  case "number":
21
- item.value = this.localStorage.getItemNumber(item.name, item.default);
23
+ item.value = strValue ? Number(strValue) : (item.default ?? 0);
22
24
  break;
23
25
  case "boolean":
24
- item.value = this.localStorage.getItemBoolean(item.name, item.default);
26
+ item.value = strValue ? (strValue == 'true') : (item.default ?? false);
25
27
  break;
26
28
  }
27
29
  }
@@ -29,10 +31,17 @@ export class AppConfig {
29
31
  saveItem(item) {
30
32
  this.localStorage.setItem(item.name, item.value);
31
33
  }
34
+ clearItem(item) {
35
+ this.localStorage.setItem(item.name, null);
36
+ item.value = item.default;
37
+ }
32
38
  save() {
33
39
  for (const key in this.items) {
34
40
  const item = this.items[key];
35
- this.saveItem(item);
41
+ if (item.value != item.default)
42
+ this.saveItem(item);
43
+ else if (item.loaded)
44
+ this.clearItem(item);
36
45
  }
37
46
  }
38
47
  restoreDefaults() {
@@ -89,5 +98,12 @@ export class AppConfig {
89
98
  this.items['theme'].value = value;
90
99
  this.saveItem(this.items['theme']);
91
100
  }
101
+ get isLocal() {
102
+ return this.items['isLocal'].value;
103
+ }
104
+ set isLocal(value) {
105
+ this.items['isLocal'].value = value;
106
+ this.saveItem(this.items['isLocal']);
107
+ }
92
108
  }
93
109
  //# sourceMappingURL=appConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appConfig.js","sourceRoot":"","sources":["../src/appConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"appConfig.js","sourceRoot":"","sources":["../src/appConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
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
+ }
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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"}
package/dist/types.d.ts CHANGED
@@ -119,6 +119,7 @@ export interface IConfigItem extends IDataItem {
119
119
  description: string;
120
120
  doNotChange: boolean;
121
121
  scopes: EScope;
122
+ loaded?: boolean;
122
123
  }
123
124
  export interface IAppConfig {
124
125
  localStorage: ILocalStorage;
@@ -126,6 +127,8 @@ export interface IAppConfig {
126
127
  subscribePush?: ISubscribePushNotification;
127
128
  add(name: string, description: string, value: ItemType, doNotChange: boolean, scopes: EScope, values?: string[]): void;
128
129
  load(): void;
130
+ saveItem(item: IConfigItem): void;
131
+ clearItem(item: IConfigItem): void;
129
132
  save(): void;
130
133
  restoreDefaults(): void;
131
134
  log(logger: ILogger, logLevel: LogLevel): void;
@@ -139,6 +142,7 @@ export interface IAppConfig {
139
142
  useRemoteLog: boolean;
140
143
  loggerQueueSize: number;
141
144
  logDescending: boolean;
145
+ isLocal: boolean;
142
146
  }
143
147
  export type IdType = string | number;
144
148
  export interface IEntity {
@@ -0,0 +1,104 @@
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 {};
@@ -0,0 +1,79 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSpeechRecognition.js","sourceRoot":"","sources":["../src/useSpeechRecognition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
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>;
@@ -0,0 +1,96 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSpeechSynthesis.js","sourceRoot":"","sources":["../src/useSpeechSynthesis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
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
+ }