@koine/browser 2.0.0-beta.8 → 2.0.0-beta.80
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/README.md +1 -1
- package/createStorage.cjs.d.ts +2 -0
- package/createStorage.cjs.default.js +1 -0
- package/createStorage.cjs.js +101 -0
- package/createStorage.cjs.mjs +2 -0
- package/createStorage.d.ts +1 -43
- package/createStorage.esm.js +96 -0
- package/getZonedDate.cjs.d.ts +2 -0
- package/getZonedDate.cjs.default.js +1 -0
- package/getZonedDate.cjs.js +29 -0
- package/getZonedDate.cjs.mjs +2 -0
- package/getZonedDate.d.ts +1 -15
- package/getZonedDate.esm.js +24 -0
- package/gtag.cjs.d.ts +2 -0
- package/gtag.cjs.default.js +1 -0
- package/gtag.cjs.js +15 -0
- package/gtag.cjs.mjs +2 -0
- package/gtag.d.ts +2 -0
- package/gtag.esm.js +10 -0
- package/gtagPageview.cjs.d.ts +2 -0
- package/gtagPageview.cjs.default.js +1 -0
- package/gtagPageview.cjs.js +15 -0
- package/gtagPageview.cjs.mjs +2 -0
- package/gtagPageview.d.ts +1 -4
- package/gtagPageview.esm.js +10 -0
- package/index.cjs.d.ts +1 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +45 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +4 -1
- package/index.esm.js +20 -0
- package/isIE.cjs.d.ts +2 -0
- package/isIE.cjs.default.js +1 -0
- package/isIE.cjs.js +19 -0
- package/isIE.cjs.mjs +2 -0
- package/isIE.d.ts +1 -6
- package/isIE.esm.js +14 -0
- package/isMobile.cjs.d.ts +2 -0
- package/isMobile.cjs.default.js +1 -0
- package/isMobile.cjs.js +13 -0
- package/isMobile.cjs.mjs +2 -0
- package/isMobile.d.ts +1 -6
- package/isMobile.esm.js +8 -0
- package/listenUrlSearch.cjs.d.ts +2 -0
- package/listenUrlSearch.cjs.default.js +1 -0
- package/listenUrlSearch.cjs.js +46 -0
- package/listenUrlSearch.cjs.mjs +2 -0
- package/listenUrlSearch.d.ts +3 -0
- package/listenUrlSearch.esm.js +41 -0
- package/listenUrlSearchParams.cjs.d.ts +2 -0
- package/listenUrlSearchParams.cjs.default.js +1 -0
- package/listenUrlSearchParams.cjs.js +19 -0
- package/listenUrlSearchParams.cjs.mjs +2 -0
- package/listenUrlSearchParams.d.ts +2 -0
- package/listenUrlSearchParams.esm.js +14 -0
- package/navigateToHash.cjs.d.ts +2 -0
- package/navigateToHash.cjs.default.js +1 -0
- package/navigateToHash.cjs.js +13 -0
- package/navigateToHash.cjs.mjs +2 -0
- package/navigateToHash.d.ts +1 -7
- package/navigateToHash.esm.js +8 -0
- package/navigateToHashParams.cjs.d.ts +2 -0
- package/navigateToHashParams.cjs.default.js +1 -0
- package/navigateToHashParams.cjs.js +20 -0
- package/navigateToHashParams.cjs.mjs +2 -0
- package/navigateToHashParams.d.ts +2 -8
- package/navigateToHashParams.esm.js +15 -0
- package/navigateToMergedHashParams.cjs.d.ts +2 -0
- package/navigateToMergedHashParams.cjs.default.js +1 -0
- package/navigateToMergedHashParams.cjs.js +11 -0
- package/navigateToMergedHashParams.cjs.mjs +2 -0
- package/navigateToMergedHashParams.d.ts +2 -7
- package/navigateToMergedHashParams.esm.js +6 -0
- package/navigateToMergedParams.cjs.d.ts +2 -0
- package/navigateToMergedParams.cjs.default.js +1 -0
- package/navigateToMergedParams.cjs.js +12 -0
- package/navigateToMergedParams.cjs.mjs +2 -0
- package/navigateToMergedParams.d.ts +2 -8
- package/navigateToMergedParams.esm.js +7 -0
- package/navigateToParams.cjs.d.ts +2 -0
- package/navigateToParams.cjs.default.js +1 -0
- package/navigateToParams.cjs.js +17 -0
- package/navigateToParams.cjs.mjs +2 -0
- package/navigateToParams.d.ts +2 -9
- package/navigateToParams.esm.js +12 -0
- package/navigateToUrl.cjs.d.ts +2 -0
- package/navigateToUrl.cjs.default.js +1 -0
- package/navigateToUrl.cjs.js +12 -0
- package/navigateToUrl.cjs.mjs +2 -0
- package/navigateToUrl.d.ts +1 -6
- package/navigateToUrl.esm.js +7 -0
- package/navigateWithoutUrlParam.cjs.d.ts +2 -0
- package/navigateWithoutUrlParam.cjs.default.js +1 -0
- package/navigateWithoutUrlParam.cjs.js +21 -0
- package/navigateWithoutUrlParam.cjs.mjs +2 -0
- package/navigateWithoutUrlParam.d.ts +1 -7
- package/navigateWithoutUrlParam.esm.js +16 -0
- package/package.json +108 -10
- package/redirectTo.cjs.d.ts +2 -0
- package/redirectTo.cjs.default.js +1 -0
- package/redirectTo.cjs.js +15 -0
- package/redirectTo.cjs.mjs +2 -0
- package/redirectTo.d.ts +2 -8
- package/redirectTo.esm.js +10 -0
- package/storage.cjs.d.ts +2 -0
- package/storage.cjs.default.js +1 -0
- package/storage.cjs.js +14 -0
- package/storage.cjs.mjs +2 -0
- package/storage.d.ts +1 -4
- package/storage.esm.js +9 -0
- package/storageClient.cjs.d.ts +2 -0
- package/storageClient.cjs.default.js +1 -0
- package/storageClient.cjs.js +98 -0
- package/storageClient.cjs.mjs +2 -0
- package/storageClient.d.ts +1 -4
- package/{storageClient.mjs → storageClient.esm.js} +32 -34
- package/createStorage.js +0 -146
- package/createStorage.mjs +0 -130
- package/getZonedDate.js +0 -37
- package/getZonedDate.mjs +0 -31
- package/gtagPageview.js +0 -41
- package/gtagPageview.mjs +0 -23
- package/index.js +0 -72
- package/index.mjs +0 -15
- package/isIE.js +0 -31
- package/isIE.mjs +0 -16
- package/isMobile.js +0 -29
- package/isMobile.mjs +0 -14
- package/navigateToHash.js +0 -25
- package/navigateToHash.mjs +0 -11
- package/navigateToHashParams.js +0 -33
- package/navigateToHashParams.mjs +0 -19
- package/navigateToMergedHashParams.js +0 -26
- package/navigateToMergedHashParams.mjs +0 -11
- package/navigateToMergedParams.js +0 -26
- package/navigateToMergedParams.mjs +0 -12
- package/navigateToParams.js +0 -30
- package/navigateToParams.mjs +0 -17
- package/navigateToUrl.js +0 -28
- package/navigateToUrl.mjs +0 -10
- package/navigateWithoutUrlParam.js +0 -32
- package/navigateWithoutUrlParam.mjs +0 -18
- package/redirectTo.js +0 -28
- package/redirectTo.mjs +0 -14
- package/storage.js +0 -25
- package/storage.mjs +0 -8
- package/storageClient.js +0 -112
- package/typings.d.ts +0 -12
package/README.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
# @koine/
|
|
1
|
+
# @koine/i18n
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./createStorage.cjs.js').default;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
var dom = require('@koine/dom');
|
|
7
|
+
var storage = require('./storage.cjs.js');
|
|
8
|
+
require('./storageClient.cjs.js');
|
|
9
|
+
|
|
10
|
+
let createStorage = (config, useSessionStorage) => {
|
|
11
|
+
const client = useSessionStorage ? storage.storage.s : storage.storage.l;
|
|
12
|
+
const keys = Object.keys(config).reduce((map, key) => ({ ...map, [key]: utils.encode(key) }), {});
|
|
13
|
+
return {
|
|
14
|
+
get(key, defaultValue) {
|
|
15
|
+
return client.get(keys[key], utils.decode, defaultValue);
|
|
16
|
+
},
|
|
17
|
+
getAll(defaultValues) {
|
|
18
|
+
if (!utils.isBrowser) {
|
|
19
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
20
|
+
console.log(`[@koine/utils:createStorage] attempt to use 'getAll' outside of browser.`);
|
|
21
|
+
}
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
const all = {};
|
|
25
|
+
for (const key in keys) {
|
|
26
|
+
const value = this.get(key);
|
|
27
|
+
const defaultValue = defaultValues?.[key];
|
|
28
|
+
if (!utils.isNullOrUndefined(value)) {
|
|
29
|
+
all[key] = value;
|
|
30
|
+
}
|
|
31
|
+
else if (defaultValue) {
|
|
32
|
+
all[key] = defaultValue;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return all;
|
|
36
|
+
},
|
|
37
|
+
set(key, value) {
|
|
38
|
+
client.set(keys[key], value, utils.encode);
|
|
39
|
+
},
|
|
40
|
+
setMany(newValues) {
|
|
41
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
42
|
+
if (!utils.isBrowser) {
|
|
43
|
+
console.log(`[@koine/utils:createStorage] attempt to use 'setMany' outside of browser.`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (utils.isBrowser) {
|
|
47
|
+
for (const key in newValues) {
|
|
48
|
+
const value = newValues[key];
|
|
49
|
+
if (!utils.isNullOrUndefined(value)) {
|
|
50
|
+
this.set(key, value);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.remove(key);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
has(key) {
|
|
59
|
+
return client.has(keys[key]);
|
|
60
|
+
},
|
|
61
|
+
remove(key) {
|
|
62
|
+
client.remove(keys[key]);
|
|
63
|
+
},
|
|
64
|
+
clear() {
|
|
65
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
66
|
+
if (!utils.isBrowser) {
|
|
67
|
+
console.log(`[@koine/utils:createStorage] attempt to use 'clear' outside of browser.`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (utils.isBrowser) {
|
|
71
|
+
for (const key in keys) {
|
|
72
|
+
client.remove(keys[key]);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
watch: (keyToWatch, onRemoved, onAdded) => {
|
|
77
|
+
if (!utils.isBrowser) {
|
|
78
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
79
|
+
console.log(`[@koine/utils:createStorage] attempt to use 'watch' outside of browser.`);
|
|
80
|
+
}
|
|
81
|
+
return utils.noop;
|
|
82
|
+
}
|
|
83
|
+
const handler = (event) => {
|
|
84
|
+
const { key, oldValue, newValue } = event;
|
|
85
|
+
if (key === keys[keyToWatch]) {
|
|
86
|
+
if (oldValue && !newValue) {
|
|
87
|
+
onRemoved?.();
|
|
88
|
+
}
|
|
89
|
+
else if (!oldValue && newValue) {
|
|
90
|
+
onAdded?.();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const listener = dom.on(window, "storage", handler);
|
|
95
|
+
return listener;
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
exports.createStorage = createStorage;
|
|
101
|
+
exports["default"] = createStorage;
|
package/createStorage.d.ts
CHANGED
|
@@ -1,54 +1,12 @@
|
|
|
1
1
|
export type CreateStorageConfig = Record<string, any>;
|
|
2
|
-
|
|
3
|
-
* Utility to create a storage instance to interact with `localStorage` using
|
|
4
|
-
* encrypted (encoded) key/values.
|
|
5
|
-
*/
|
|
6
|
-
export declare const createStorage: <T extends CreateStorageConfig>(config: Partial<T>, useSessionStorage?: boolean) => {
|
|
7
|
-
/**
|
|
8
|
-
* Get all storage value (it uses `localStorage.get()`).
|
|
9
|
-
*
|
|
10
|
-
* Unparseable values with `JSON.parse()` return their value as it is.
|
|
11
|
-
* On ssr or if the given `key` argument is not found `defaultValue` is
|
|
12
|
-
* returned, otherwise `null`.
|
|
13
|
-
*/
|
|
2
|
+
export declare let createStorage: <T extends CreateStorageConfig>(config: Partial<T>, useSessionStorage?: boolean) => {
|
|
14
3
|
get<TKey extends Extract<keyof T, string>>(key: TKey, defaultValue?: T[TKey] | null | undefined): T[TKey] | null;
|
|
15
|
-
/**
|
|
16
|
-
* Get all storage values (it uses `localStorage.get()`).
|
|
17
|
-
*
|
|
18
|
-
* `undefined` and `null` values are not returned.
|
|
19
|
-
*/
|
|
20
4
|
getAll(defaultValues?: Partial<T> | undefined): T;
|
|
21
|
-
/**
|
|
22
|
-
* Set a storage value (it uses `localStorage.set()`).
|
|
23
|
-
*
|
|
24
|
-
* Non-string values are stringified with `JSON.stringify()`
|
|
25
|
-
*/
|
|
26
5
|
set<TKey_1 extends Extract<keyof T, string>>(key: TKey_1, value?: T[TKey_1] | undefined): void;
|
|
27
|
-
/**
|
|
28
|
-
* Set all given storage values (it uses `localStorage.set()`).
|
|
29
|
-
*
|
|
30
|
-
* Non-string values are stringified with `JSON.stringify()`, `undefined`
|
|
31
|
-
* and `null` values are removed from the storage
|
|
32
|
-
*/
|
|
33
6
|
setMany(newValues: Partial<T>): void;
|
|
34
|
-
/**
|
|
35
|
-
* Check if a storage value is _truthy_ (it uses `localStorage.get()`).
|
|
36
|
-
*/
|
|
37
7
|
has<TKey_2 extends Extract<keyof T, string>>(key: TKey_2): any;
|
|
38
|
-
/**
|
|
39
|
-
* Remove a storage value (it uses `localStorage.remove()`).
|
|
40
|
-
*/
|
|
41
8
|
remove<TKey_3 extends Extract<keyof T, string>>(key: TKey_3): void;
|
|
42
|
-
/**
|
|
43
|
-
* Clear all storage values (it uses `localStorage.remove()`).
|
|
44
|
-
*/
|
|
45
9
|
clear(): void;
|
|
46
|
-
/**
|
|
47
|
-
* Watch a storage value changes, this needs to be executed only in browser
|
|
48
|
-
* context (it uses `window.addEventListener("storage")`).
|
|
49
|
-
*
|
|
50
|
-
* Inspiration from [Multi Tab Logout in React — Redux](https://medium.com/front-end-weekly/multi-tab-logout-in-react-redux-4715f071c7fa)
|
|
51
|
-
*/
|
|
52
10
|
watch: <TKey_4 extends keyof T>(keyToWatch: TKey_4, onRemoved?: () => void, onAdded?: () => void) => () => void | undefined;
|
|
53
11
|
};
|
|
54
12
|
export default createStorage;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { encode, decode, isBrowser, isNullOrUndefined, noop } from '@koine/utils';
|
|
2
|
+
import { on } from '@koine/dom';
|
|
3
|
+
import { storage } from './storage.esm.js';
|
|
4
|
+
import './storageClient.esm.js';
|
|
5
|
+
|
|
6
|
+
let createStorage = (config, useSessionStorage) => {
|
|
7
|
+
const client = useSessionStorage ? storage.s : storage.l;
|
|
8
|
+
const keys = Object.keys(config).reduce((map, key) => ({ ...map, [key]: encode(key) }), {});
|
|
9
|
+
return {
|
|
10
|
+
get(key, defaultValue) {
|
|
11
|
+
return client.get(keys[key], decode, defaultValue);
|
|
12
|
+
},
|
|
13
|
+
getAll(defaultValues) {
|
|
14
|
+
if (!isBrowser) {
|
|
15
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
16
|
+
console.log(`[@koine/utils:createStorage] attempt to use 'getAll' outside of browser.`);
|
|
17
|
+
}
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
const all = {};
|
|
21
|
+
for (const key in keys) {
|
|
22
|
+
const value = this.get(key);
|
|
23
|
+
const defaultValue = defaultValues?.[key];
|
|
24
|
+
if (!isNullOrUndefined(value)) {
|
|
25
|
+
all[key] = value;
|
|
26
|
+
}
|
|
27
|
+
else if (defaultValue) {
|
|
28
|
+
all[key] = defaultValue;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return all;
|
|
32
|
+
},
|
|
33
|
+
set(key, value) {
|
|
34
|
+
client.set(keys[key], value, encode);
|
|
35
|
+
},
|
|
36
|
+
setMany(newValues) {
|
|
37
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
38
|
+
if (!isBrowser) {
|
|
39
|
+
console.log(`[@koine/utils:createStorage] attempt to use 'setMany' outside of browser.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (isBrowser) {
|
|
43
|
+
for (const key in newValues) {
|
|
44
|
+
const value = newValues[key];
|
|
45
|
+
if (!isNullOrUndefined(value)) {
|
|
46
|
+
this.set(key, value);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.remove(key);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
has(key) {
|
|
55
|
+
return client.has(keys[key]);
|
|
56
|
+
},
|
|
57
|
+
remove(key) {
|
|
58
|
+
client.remove(keys[key]);
|
|
59
|
+
},
|
|
60
|
+
clear() {
|
|
61
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
62
|
+
if (!isBrowser) {
|
|
63
|
+
console.log(`[@koine/utils:createStorage] attempt to use 'clear' outside of browser.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (isBrowser) {
|
|
67
|
+
for (const key in keys) {
|
|
68
|
+
client.remove(keys[key]);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
watch: (keyToWatch, onRemoved, onAdded) => {
|
|
73
|
+
if (!isBrowser) {
|
|
74
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
75
|
+
console.log(`[@koine/utils:createStorage] attempt to use 'watch' outside of browser.`);
|
|
76
|
+
}
|
|
77
|
+
return noop;
|
|
78
|
+
}
|
|
79
|
+
const handler = (event) => {
|
|
80
|
+
const { key, oldValue, newValue } = event;
|
|
81
|
+
if (key === keys[keyToWatch]) {
|
|
82
|
+
if (oldValue && !newValue) {
|
|
83
|
+
onRemoved?.();
|
|
84
|
+
}
|
|
85
|
+
else if (!oldValue && newValue) {
|
|
86
|
+
onAdded?.();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const listener = on(window, "storage", handler);
|
|
91
|
+
return listener;
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export { createStorage, createStorage as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./getZonedDate.cjs.js').default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
const utcToZonedTime = (date, _tz) => {
|
|
8
|
+
return date;
|
|
9
|
+
};
|
|
10
|
+
let getZonedDate = (dateString = "", timeZone) => {
|
|
11
|
+
if (!dateString.endsWith("Z"))
|
|
12
|
+
dateString += "Z";
|
|
13
|
+
if (!timeZone && utils.isBrowser) {
|
|
14
|
+
try {
|
|
15
|
+
timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
19
|
+
console.warn("[@koine/browser:getZonedDate] failed reading timeZone, error", e);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return timeZone
|
|
24
|
+
? utcToZonedTime(new Date(dateString))
|
|
25
|
+
: new Date(dateString);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports["default"] = getZonedDate;
|
|
29
|
+
exports.getZonedDate = getZonedDate;
|
package/getZonedDate.d.ts
CHANGED
|
@@ -1,16 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* It returns a `Date` object from a date `string` adjusted on the user timeZone,
|
|
3
|
-
* if a timeZone is not provided we try getting it from the `Intl` browwser native
|
|
4
|
-
* API. It gracefully falls back returning a _non-timezone-based_ `Date`.
|
|
5
|
-
*
|
|
6
|
-
* @category date
|
|
7
|
-
*
|
|
8
|
-
* @resources
|
|
9
|
-
* - to get the timeZone client side see [this article](https://attacomsian.com/blog/javascript-current-timezone)
|
|
10
|
-
* - for converting the date based on the time zone [date-fns docs](https://date-fns.org/v2.27.0/docs/Time-Zones) and [date-fns-tz docs](https://github.com/marnusw/date-fns-tz)
|
|
11
|
-
*
|
|
12
|
-
* @param dateString A parseable date as string, `Z` is automatically suffixed if not present to correctly get time zone based time from a UTC date.
|
|
13
|
-
* @param timeZone Optionally pass a timeZone (e.g. from user preference or from the server), it falls back trying to read it from the `Intl` browwser native API.
|
|
14
|
-
*/
|
|
15
|
-
export declare function getZonedDate(dateString?: string, timeZone?: string): Date;
|
|
1
|
+
export declare let getZonedDate: (dateString?: string, timeZone?: string) => Date;
|
|
16
2
|
export default getZonedDate;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { isBrowser } from '@koine/utils';
|
|
2
|
+
|
|
3
|
+
const utcToZonedTime = (date, _tz) => {
|
|
4
|
+
return date;
|
|
5
|
+
};
|
|
6
|
+
let getZonedDate = (dateString = "", timeZone) => {
|
|
7
|
+
if (!dateString.endsWith("Z"))
|
|
8
|
+
dateString += "Z";
|
|
9
|
+
if (!timeZone && isBrowser) {
|
|
10
|
+
try {
|
|
11
|
+
timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
if (process.env["NODE_ENV"] === "development") {
|
|
15
|
+
console.warn("[@koine/browser:getZonedDate] failed reading timeZone, error", e);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return timeZone
|
|
20
|
+
? utcToZonedTime(new Date(dateString))
|
|
21
|
+
: new Date(dateString);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { getZonedDate as default, getZonedDate };
|
package/gtag.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./gtag.cjs.js').default;
|
package/gtag.cjs.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
let gtag = (...args) => {
|
|
8
|
+
!utils.isUndefined(window) && !utils.isUndefined(window.gtag)
|
|
9
|
+
?
|
|
10
|
+
window.gtag(...args)
|
|
11
|
+
: utils.noop();
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports["default"] = gtag;
|
|
15
|
+
exports.gtag = gtag;
|
package/gtag.cjs.mjs
ADDED
package/gtag.d.ts
ADDED
package/gtag.esm.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./gtagPageview.cjs.js').default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var gtag = require('./gtag.cjs.js');
|
|
6
|
+
require('@koine/utils');
|
|
7
|
+
|
|
8
|
+
let gtagPageview = (...args) => gtag.gtag("event", "page_view", {
|
|
9
|
+
page_path: args[0] || location.pathname,
|
|
10
|
+
page_title: args[1] || document.title,
|
|
11
|
+
page_location: args[2] || location.href,
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
exports["default"] = gtagPageview;
|
|
15
|
+
exports.gtagPageview = gtagPageview;
|
package/gtagPageview.d.ts
CHANGED
|
@@ -3,8 +3,5 @@ export type GtmPageviewArgs = [
|
|
|
3
3
|
page_title?: string,
|
|
4
4
|
page_location?: string
|
|
5
5
|
];
|
|
6
|
-
|
|
7
|
-
* @category analytics-google
|
|
8
|
-
*/
|
|
9
|
-
export declare const gtagPageview: (page_path?: string | undefined, page_title?: string | undefined, page_location?: string | undefined) => void;
|
|
6
|
+
export declare let gtagPageview: (page_path?: string | undefined, page_title?: string | undefined, page_location?: string | undefined) => void;
|
|
10
7
|
export default gtagPageview;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { gtag } from './gtag.esm.js';
|
|
2
|
+
import '@koine/utils';
|
|
3
|
+
|
|
4
|
+
let gtagPageview = (...args) => gtag("event", "page_view", {
|
|
5
|
+
page_path: args[0] || location.pathname,
|
|
6
|
+
page_title: args[1] || document.title,
|
|
7
|
+
page_location: args[2] || location.href,
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export { gtagPageview as default, gtagPageview };
|
package/index.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./index";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./index.cjs.js').default;
|
package/index.cjs.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var createStorage = require('./createStorage.cjs.js');
|
|
6
|
+
var getZonedDate = require('./getZonedDate.cjs.js');
|
|
7
|
+
var gtag = require('./gtag.cjs.js');
|
|
8
|
+
var gtagPageview = require('./gtagPageview.cjs.js');
|
|
9
|
+
var isIE = require('./isIE.cjs.js');
|
|
10
|
+
var isMobile = require('./isMobile.cjs.js');
|
|
11
|
+
var listenUrlSearch = require('./listenUrlSearch.cjs.js');
|
|
12
|
+
var listenUrlSearchParams = require('./listenUrlSearchParams.cjs.js');
|
|
13
|
+
var navigateToHash = require('./navigateToHash.cjs.js');
|
|
14
|
+
var navigateToHashParams = require('./navigateToHashParams.cjs.js');
|
|
15
|
+
var navigateToMergedHashParams = require('./navigateToMergedHashParams.cjs.js');
|
|
16
|
+
var navigateToMergedParams = require('./navigateToMergedParams.cjs.js');
|
|
17
|
+
var navigateToParams = require('./navigateToParams.cjs.js');
|
|
18
|
+
var navigateToUrl = require('./navigateToUrl.cjs.js');
|
|
19
|
+
var navigateWithoutUrlParam = require('./navigateWithoutUrlParam.cjs.js');
|
|
20
|
+
var storage = require('./storage.cjs.js');
|
|
21
|
+
var redirectTo = require('./redirectTo.cjs.js');
|
|
22
|
+
var storageClient = require('./storageClient.cjs.js');
|
|
23
|
+
require('@koine/utils');
|
|
24
|
+
require('@koine/dom');
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
exports.createStorage = createStorage.createStorage;
|
|
29
|
+
exports.getZonedDate = getZonedDate.getZonedDate;
|
|
30
|
+
exports.gtag = gtag.gtag;
|
|
31
|
+
exports.gtagPageview = gtagPageview.gtagPageview;
|
|
32
|
+
exports.isIE = isIE.isIE;
|
|
33
|
+
exports.isMobile = isMobile.isMobile;
|
|
34
|
+
exports.listenUrlSearch = listenUrlSearch.listenUrlSearch;
|
|
35
|
+
exports.listenUrlSearchParams = listenUrlSearchParams.listenUrlSearchParams;
|
|
36
|
+
exports.navigateToHash = navigateToHash.navigateToHash;
|
|
37
|
+
exports.navigateToHashParams = navigateToHashParams.navigateToHashParams;
|
|
38
|
+
exports.navigateToMergedHashParams = navigateToMergedHashParams.navigateToMergedHashParams;
|
|
39
|
+
exports.navigateToMergedParams = navigateToMergedParams.navigateToMergedParams;
|
|
40
|
+
exports.navigateToParams = navigateToParams.navigateToParams;
|
|
41
|
+
exports.navigateToUrl = navigateToUrl.navigateToUrl;
|
|
42
|
+
exports.navigateWithoutUrlParam = navigateWithoutUrlParam.navigateWithoutUrlParam;
|
|
43
|
+
exports.storage = storage.storage;
|
|
44
|
+
exports.redirectTo = redirectTo.redirectTo;
|
|
45
|
+
exports.storageClient = storageClient.storageClient;
|
package/index.cjs.mjs
ADDED
package/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export { createStorage, type CreateStorageConfig } from "./createStorage";
|
|
2
2
|
export { getZonedDate } from "./getZonedDate";
|
|
3
|
+
export { gtag } from "./gtag";
|
|
3
4
|
export { gtagPageview, type GtmPageviewArgs } from "./gtagPageview";
|
|
4
5
|
export { isIE } from "./isIE";
|
|
5
6
|
export { isMobile } from "./isMobile";
|
|
7
|
+
export { listenUrlSearch } from "./listenUrlSearch";
|
|
8
|
+
export { listenUrlSearchParams } from "./listenUrlSearchParams";
|
|
6
9
|
export { navigateToHash } from "./navigateToHash";
|
|
7
10
|
export { navigateToHashParams } from "./navigateToHashParams";
|
|
8
11
|
export { navigateToMergedHashParams } from "./navigateToMergedHashParams";
|
|
@@ -10,6 +13,6 @@ export { navigateToMergedParams } from "./navigateToMergedParams";
|
|
|
10
13
|
export { navigateToParams } from "./navigateToParams";
|
|
11
14
|
export { navigateToUrl } from "./navigateToUrl";
|
|
12
15
|
export { navigateWithoutUrlParam } from "./navigateWithoutUrlParam";
|
|
13
|
-
export { redirectTo } from "./redirectTo";
|
|
14
16
|
export { storage } from "./storage";
|
|
17
|
+
export { redirectTo } from "./redirectTo";
|
|
15
18
|
export { storageClient, type StorageClientConfig } from "./storageClient";
|
package/index.esm.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { createStorage } from './createStorage.esm.js';
|
|
2
|
+
export { getZonedDate } from './getZonedDate.esm.js';
|
|
3
|
+
export { gtag } from './gtag.esm.js';
|
|
4
|
+
export { gtagPageview } from './gtagPageview.esm.js';
|
|
5
|
+
export { isIE } from './isIE.esm.js';
|
|
6
|
+
export { isMobile } from './isMobile.esm.js';
|
|
7
|
+
export { listenUrlSearch } from './listenUrlSearch.esm.js';
|
|
8
|
+
export { listenUrlSearchParams } from './listenUrlSearchParams.esm.js';
|
|
9
|
+
export { navigateToHash } from './navigateToHash.esm.js';
|
|
10
|
+
export { navigateToHashParams } from './navigateToHashParams.esm.js';
|
|
11
|
+
export { navigateToMergedHashParams } from './navigateToMergedHashParams.esm.js';
|
|
12
|
+
export { navigateToMergedParams } from './navigateToMergedParams.esm.js';
|
|
13
|
+
export { navigateToParams } from './navigateToParams.esm.js';
|
|
14
|
+
export { navigateToUrl } from './navigateToUrl.esm.js';
|
|
15
|
+
export { navigateWithoutUrlParam } from './navigateWithoutUrlParam.esm.js';
|
|
16
|
+
export { storage } from './storage.esm.js';
|
|
17
|
+
export { redirectTo } from './redirectTo.esm.js';
|
|
18
|
+
export { storageClient } from './storageClient.esm.js';
|
|
19
|
+
import '@koine/utils';
|
|
20
|
+
import '@koine/dom';
|
package/isIE.cjs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./isIE.cjs.js').default;
|
package/isIE.cjs.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
let isIE = (ssrValue = true) => {
|
|
8
|
+
if (utils.isServer) {
|
|
9
|
+
return ssrValue;
|
|
10
|
+
}
|
|
11
|
+
const ua = window.navigator.userAgent;
|
|
12
|
+
if (ua.indexOf("MSIE ") > 0 || ua.indexOf("Trident/") > 0) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports["default"] = isIE;
|
|
19
|
+
exports.isIE = isIE;
|
package/isIE.cjs.mjs
ADDED
package/isIE.d.ts
CHANGED
package/isIE.esm.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { isServer } from '@koine/utils';
|
|
2
|
+
|
|
3
|
+
let isIE = (ssrValue = true) => {
|
|
4
|
+
if (isServer) {
|
|
5
|
+
return ssrValue;
|
|
6
|
+
}
|
|
7
|
+
const ua = window.navigator.userAgent;
|
|
8
|
+
if (ua.indexOf("MSIE ") > 0 || ua.indexOf("Trident/") > 0) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return false;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { isIE as default, isIE };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports._default = require('./isMobile.cjs.js').default;
|
package/isMobile.cjs.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('@koine/utils');
|
|
6
|
+
|
|
7
|
+
let isMobile = (ssrValue = true) => utils.isServer
|
|
8
|
+
? ssrValue
|
|
9
|
+
:
|
|
10
|
+
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);
|
|
11
|
+
|
|
12
|
+
exports["default"] = isMobile;
|
|
13
|
+
exports.isMobile = isMobile;
|
package/isMobile.cjs.mjs
ADDED
package/isMobile.d.ts
CHANGED
package/isMobile.esm.js
ADDED