@gobizweb/core 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +56 -0
- package/assets/icons/arrow_left.svg +1 -0
- package/assets/icons/right_pointing.svg +1 -0
- package/assets/icons/thumb-up.svg +1 -0
- package/assets/images/server_error_dino.svg +1 -0
- package/assets/images/spot_hero_empty_list.svg +1 -0
- package/lib/bootstrap.js +39 -0
- package/lib/components/AccordionSelect/AccordionSelect.component.js +131 -0
- package/lib/components/AccordionSelect/AccordionSelect.styled.js +18 -0
- package/lib/components/AccordionSelect/index.js +13 -0
- package/lib/components/AlertBox/AlertBox.component.js +54 -0
- package/lib/components/AlertBox/AlertBox.styled.js +32 -0
- package/lib/components/AlertBox/index.js +13 -0
- package/lib/components/AlertDialog/AlertDialog.js +66 -0
- package/lib/components/AlertDialog/AlertDialog.styled.js +13 -0
- package/lib/components/AlertDialog/index.js +13 -0
- package/lib/components/Asphalt/Input.component.js +59 -0
- package/lib/components/Asphalt/index.js +13 -0
- package/lib/components/AsphaltPolyfill/AsphaltPolyfill.component.js +26 -0
- package/lib/components/AsphaltPolyfill/AsphaltPolyfill.loader.js +8 -0
- package/lib/components/AsphaltPolyfill/index.js +13 -0
- package/lib/components/Box/index.js +51 -0
- package/lib/components/Breakpoint/Breakpoint.component.js +63 -0
- package/lib/components/Breakpoint/index.js +13 -0
- package/lib/components/Button/Button.js +109 -0
- package/lib/components/Button/index.js +13 -0
- package/lib/components/Card/Card.js +75 -0
- package/lib/components/Card/Card.styled.js +60 -0
- package/lib/components/Card/index.js +13 -0
- package/lib/components/CardList/CardList.component.js +55 -0
- package/lib/components/CardList/index.js +13 -0
- package/lib/components/Checkbox/Checkbox.js +60 -0
- package/lib/components/Checkbox/index.js +13 -0
- package/lib/components/Container/Container.js +74 -0
- package/lib/components/Container/index.js +13 -0
- package/lib/components/DatePicker/Datepicker.component.js +57 -0
- package/lib/components/DatePicker/index.js +13 -0
- package/lib/components/Dropdown/Dropdown.component.js +63 -0
- package/lib/components/Dropdown/index.js +13 -0
- package/lib/components/EmptyState/EmptyState.component.js +47 -0
- package/lib/components/EmptyState/index.js +13 -0
- package/lib/components/ErrorModal/ErrorModal.component.js +41 -0
- package/lib/components/ErrorModal/ErrorModal.store.js +43 -0
- package/lib/components/ErrorModal/index.js +14 -0
- package/lib/components/ErrorScreen/ErrorScreen.js +19 -0
- package/lib/components/ErrorScreen/index.js +13 -0
- package/lib/components/FilterModal/FilterModal.js +41 -0
- package/lib/components/FilterModal/FilterModal.state.js +139 -0
- package/lib/components/FilterModal/index.js +13 -0
- package/lib/components/GlobalFilter/GlobalFilter.component.js +32 -0
- package/lib/components/GlobalFilter/GlobalFilter.component.state.js +116 -0
- package/lib/components/GlobalFilter/GlobalFilter.constant.js +17 -0
- package/lib/components/GlobalFilter/GlobalFilter.date.component.js +34 -0
- package/lib/components/GlobalFilter/GlobalFilter.interface.js +2 -0
- package/lib/components/GlobalFilter/GlobalFilter.provider.js +169 -0
- package/lib/components/GlobalFilter/GlobalFilter.styled.js +16 -0
- package/lib/components/GlobalFilter/index.js +16 -0
- package/lib/components/Guard/Guard.component.js +18 -0
- package/lib/components/Guard/index.js +13 -0
- package/lib/components/IframeLoader/IframeLoader.js +47 -0
- package/lib/components/IframeLoader/index.js +13 -0
- package/lib/components/Input/Input.component.js +167 -0
- package/lib/components/Input/index.js +13 -0
- package/lib/components/LanguageSwitcher/LanguageSwitcher.component.js +78 -0
- package/lib/components/LanguageSwitcher/LanguageSwitcher.state.js +20 -0
- package/lib/components/LanguageSwitcher/LanguageSwitcher.styled.js +40 -0
- package/lib/components/LanguageSwitcher/index.js +13 -0
- package/lib/components/List/List.js +46 -0
- package/lib/components/List/index.js +13 -0
- package/lib/components/ListSelector/ListSelector.component.js +22 -0
- package/lib/components/ListSelector/ListSelector.state.js +11 -0
- package/lib/components/ListSelector/ListSelector.styled.js +15 -0
- package/lib/components/ListSelector/index.js +13 -0
- package/lib/components/Loading/Loading.js +52 -0
- package/lib/components/Loading/Loading.styled.js +45 -0
- package/lib/components/Loading/index.js +13 -0
- package/lib/components/LoadingModule/LoadingModule.component.js +49 -0
- package/lib/components/LoadingModule/index.js +13 -0
- package/lib/components/MobileAppBar/MobileAppBar.js +90 -0
- package/lib/components/MobileAppBar/MobileAppBar.styled.js +36 -0
- package/lib/components/MobileAppBar/WithMobileAppBar.js +43 -0
- package/lib/components/MobileAppBar/index.js +14 -0
- package/lib/components/Modal/Modal.js +149 -0
- package/lib/components/Modal/ModalManager.context.js +6 -0
- package/lib/components/Modal/ModalManager.js +118 -0
- package/lib/components/Modal/index.js +15 -0
- package/lib/components/Navigation/Navigation.component.js +25 -0
- package/lib/components/Navigation/Navigation.provider.js +69 -0
- package/lib/components/Navigation/Navigation.styled.js +33 -0
- package/lib/components/Navigation/index.js +14 -0
- package/lib/components/PageTitle/PageTitle.component.js +47 -0
- package/lib/components/PageTitle/index.js +13 -0
- package/lib/components/Pagination/Pagination.component.js +49 -0
- package/lib/components/Pagination/index.js +13 -0
- package/lib/components/Radio/Radio.component.js +69 -0
- package/lib/components/Radio/Radio.styled.js +44 -0
- package/lib/components/Radio/RadioGroup.component.js +24 -0
- package/lib/components/Radio/RadioGroup.context.js +6 -0
- package/lib/components/Radio/index.js +15 -0
- package/lib/components/Separator/Separator.component.js +59 -0
- package/lib/components/Separator/index.js +13 -0
- package/lib/components/Skeleton/SkeletonApp.component.js +90 -0
- package/lib/components/Skeleton/SkeletonTable.component.js +36 -0
- package/lib/components/Skeleton/SkeletonText.component.js +62 -0
- package/lib/components/Skeleton/SkeletonWrapper.component.js +46 -0
- package/lib/components/Skeleton/index.js +16 -0
- package/lib/components/Stepper/Stepper.component.js +126 -0
- package/lib/components/Stepper/WithStepper.js +65 -0
- package/lib/components/Stepper/index.js +16 -0
- package/lib/components/Table/Table.component.js +71 -0
- package/lib/components/Table/Table.styled.js +51 -0
- package/lib/components/Table/index.js +13 -0
- package/lib/components/TableContainer/TableContainer.js +32 -0
- package/lib/components/TableContainer/index.js +13 -0
- package/lib/components/Text/Text.component.js +90 -0
- package/lib/components/Text/index.js +13 -0
- package/lib/components/Toast/Toast.component.js +65 -0
- package/lib/components/Toast/Toast.interface.js +2 -0
- package/lib/components/Toast/Toast.manager.js +61 -0
- package/lib/components/Toast/Toast.provider.js +85 -0
- package/lib/components/Toast/Toast.styled.js +18 -0
- package/lib/components/Toast/index.js +15 -0
- package/lib/components/Tours/index.js +100 -0
- package/lib/components/index.js +51 -0
- package/lib/constants/AndroidVersions.js +6 -0
- package/lib/constants/AppNames.js +10 -0
- package/lib/constants/AsphaltTheme.js +43 -0
- package/lib/constants/GobizApp.js +11 -0
- package/lib/constants/MediaQueries.js +30 -0
- package/lib/constants/PostalCodes.js +8382 -0
- package/lib/constants/PubsubEvents.js +12 -0
- package/lib/constants/TnCFiles.js +77 -0
- package/lib/constants/ValidationRegex.js +6 -0
- package/lib/constants/cookies.js +38 -0
- package/lib/constants/datetime.js +103 -0
- package/lib/constants/index.js +24 -0
- package/lib/constants/roles.js +17 -0
- package/lib/contexts/AppTheme.js +221 -0
- package/lib/decorators/utility-classes.js +78 -0
- package/lib/decorators/withStyles.js +73 -0
- package/lib/helpers/BrowserEnvironment.js +22 -0
- package/lib/helpers/ESQuery.js +98 -0
- package/lib/helpers/chart.js +251 -0
- package/lib/helpers/cleanObject.js +15 -0
- package/lib/helpers/conversion.js +4 -0
- package/lib/helpers/cookies.js +54 -0
- package/lib/helpers/copywrite.js +15 -0
- package/lib/helpers/currency.js +73 -0
- package/lib/helpers/dateFormat.js +47 -0
- package/lib/helpers/datePresets.js +77 -0
- package/lib/helpers/debounce.js +31 -0
- package/lib/helpers/deepMerge.js +81 -0
- package/lib/helpers/downloadURL.js +11 -0
- package/lib/helpers/enumReverseMap.js +12 -0
- package/lib/helpers/env.js +18 -0
- package/lib/helpers/fileDownloader.js +33 -0
- package/lib/helpers/formatNumber.js +10 -0
- package/lib/helpers/formatPercentage.js +13 -0
- package/lib/helpers/gobizApp.js +27 -0
- package/lib/helpers/identityValidator.js +6 -0
- package/lib/helpers/index.js +50 -0
- package/lib/helpers/json.js +17 -0
- package/lib/helpers/logger.js +93 -0
- package/lib/helpers/maskAccount.js +26 -0
- package/lib/helpers/numbers.js +6 -0
- package/lib/helpers/path.js +27 -0
- package/lib/helpers/paymentTypeHuman.js +62 -0
- package/lib/helpers/refreshConfig.js +12 -0
- package/lib/helpers/refreshToken.js +108 -0
- package/lib/helpers/safeParse.js +31 -0
- package/lib/helpers/scrollToTop.js +9 -0
- package/lib/helpers/shortID.js +17 -0
- package/lib/helpers/textParser.js +10 -0
- package/lib/helpers/time.js +54 -0
- package/lib/helpers/tour.js +38 -0
- package/lib/helpers/transform.js +24 -0
- package/lib/helpers/url.js +30 -0
- package/lib/helpers/wildcardToRegEx.js +15 -0
- package/lib/hooks/index.js +26 -0
- package/lib/hooks/useBreakpoint.js +35 -0
- package/lib/hooks/useCurrency.js +27 -0
- package/lib/hooks/useDatesFromTimeRange.js +40 -0
- package/lib/hooks/useEventListener.js +24 -0
- package/lib/hooks/useFormValidator.js +38 -0
- package/lib/hooks/useHttpOptions.js +104 -0
- package/lib/hooks/useLogger.js +57 -0
- package/lib/hooks/useNavigation.js +16 -0
- package/lib/hooks/usePhone.js +14 -0
- package/lib/hooks/useQueryInit.js +21 -0
- package/lib/hooks/useQueryParams.js +95 -0
- package/lib/hooks/useShowGlobalFilter.js +101 -0
- package/lib/hooks/useWebview.js +48 -0
- package/lib/hooks/useWindow.js +19 -0
- package/lib/models/AuthUser.model.js +159 -0
- package/lib/models/Outlet.model.js +274 -0
- package/lib/models/User.model.js +106 -0
- package/lib/models/index.js +15 -0
- package/lib/providers/Alert.provider.js +65 -0
- package/lib/providers/AppTheme.provider.js +75 -0
- package/lib/providers/Auth.provider.js +239 -0
- package/lib/providers/Clevertap.provider.js +117 -0
- package/lib/providers/GoogleAnalytics.provider.js +113 -0
- package/lib/providers/Host.provider.js +71 -0
- package/lib/providers/Language.provider.js +127 -0
- package/lib/providers/Logger.provider.js +32 -0
- package/lib/providers/MicroApp.provider.js +63 -0
- package/lib/providers/Outlets.provider.js +180 -0
- package/lib/providers/Token.provider.js +101 -0
- package/lib/providers/Translation.provider.js +56 -0
- package/lib/providers/index.js +24 -0
- package/package.json +47 -0
@@ -0,0 +1,81 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __spreadArrays = (this && this.__spreadArrays) || function () {
|
3
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
4
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
5
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
6
|
+
r[k] = a[j];
|
7
|
+
return r;
|
8
|
+
};
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
10
|
+
exports.deepMerge = exports.unsafe_deepMerge = exports.isObject = void 0;
|
11
|
+
/**
|
12
|
+
* Simple object check.
|
13
|
+
* @param item
|
14
|
+
* @returns {boolean}
|
15
|
+
*/
|
16
|
+
exports.isObject = function (item) {
|
17
|
+
return item && typeof item === "object" && !Array.isArray(item);
|
18
|
+
};
|
19
|
+
/**
|
20
|
+
* Deep merge two objects.
|
21
|
+
* @param target
|
22
|
+
* @param sources
|
23
|
+
* @deprecated - this function mutates the input, do not use this
|
24
|
+
*/
|
25
|
+
exports.unsafe_deepMerge = function (target) {
|
26
|
+
var _a, _b;
|
27
|
+
var sources = [];
|
28
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
29
|
+
sources[_i - 1] = arguments[_i];
|
30
|
+
}
|
31
|
+
if (!sources.length) {
|
32
|
+
return target;
|
33
|
+
}
|
34
|
+
var source = sources.shift();
|
35
|
+
// This line is already covered, but since it's recursive, jest will complain that it is not covered
|
36
|
+
/* istanbul ignore next */
|
37
|
+
if (exports.isObject(target) && exports.isObject(source)) {
|
38
|
+
for (var _key in source) {
|
39
|
+
var key = _key;
|
40
|
+
/* istanbul ignore next */
|
41
|
+
if (source.hasOwnProperty(key)) {
|
42
|
+
if (exports.isObject(source[key])) {
|
43
|
+
if (!target[key]) {
|
44
|
+
Object.assign(target, (_a = {}, _a[key] = {}, _a));
|
45
|
+
}
|
46
|
+
exports.unsafe_deepMerge(target[key], source[key]);
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
Object.assign(target, (_b = {}, _b[key] = source[key], _b));
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
return exports.unsafe_deepMerge.apply(void 0, __spreadArrays([target], sources));
|
55
|
+
};
|
56
|
+
/**
|
57
|
+
* Deep merges two objects without modifying the input
|
58
|
+
* @param target
|
59
|
+
* @param source
|
60
|
+
*/
|
61
|
+
exports.deepMerge = function (target, source) {
|
62
|
+
var output = Object.assign({}, target);
|
63
|
+
// This line is already covered, but since it's recursive, jest will complain that it is not covered
|
64
|
+
/* istanbul ignore next */
|
65
|
+
if (exports.isObject(target) && exports.isObject(source)) {
|
66
|
+
Object.keys(source).forEach(function (key) {
|
67
|
+
var _a, _b;
|
68
|
+
var _key = key;
|
69
|
+
if (exports.isObject(source[_key])) {
|
70
|
+
if (!(_key in target))
|
71
|
+
Object.assign(output, (_a = {}, _a[_key] = source[_key], _a));
|
72
|
+
else
|
73
|
+
output[_key] = exports.deepMerge(target[_key], source[_key]);
|
74
|
+
}
|
75
|
+
else {
|
76
|
+
Object.assign(output, (_b = {}, _b[_key] = source[_key], _b));
|
77
|
+
}
|
78
|
+
});
|
79
|
+
}
|
80
|
+
return output;
|
81
|
+
};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.downloadURL = void 0;
|
4
|
+
exports.downloadURL = function (dataUrl, fileName) {
|
5
|
+
var a = document.createElement("a");
|
6
|
+
a.setAttribute("href", dataUrl);
|
7
|
+
a.setAttribute("download", fileName);
|
8
|
+
document.body.appendChild(a);
|
9
|
+
a.click();
|
10
|
+
document.body.removeChild(a);
|
11
|
+
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.enumReverseMap = void 0;
|
4
|
+
var safeParse_1 = require("./safeParse");
|
5
|
+
exports.enumReverseMap = function (enumObj, value) {
|
6
|
+
for (var key in enumObj) {
|
7
|
+
if (enumObj[key] === value) {
|
8
|
+
return key;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
return safeParse_1.safeParse("string", value);
|
12
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.env = void 0;
|
4
|
+
/**
|
5
|
+
* In development, will attempt to retrieve environment variables from `process.env`, while on production, will return
|
6
|
+
* value from server injected variable `$_ENV`.
|
7
|
+
* @param variableName
|
8
|
+
*/
|
9
|
+
exports.env = function (variableName) {
|
10
|
+
var variable = process.env.NODE_ENV === "development" || process.env.NODE_ENV === "test"
|
11
|
+
? process.env[variableName]
|
12
|
+
: $_ENV[variableName];
|
13
|
+
if (typeof variable === "undefined") {
|
14
|
+
// Cannot use Logger.warn here since it would create a cyclic dependency
|
15
|
+
console.warn("Missing env variable " + variableName);
|
16
|
+
}
|
17
|
+
return variable;
|
18
|
+
};
|
@@ -0,0 +1,33 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.pdfDownloader = exports.fileDownloader = void 0;
|
4
|
+
var file_saver_1 = require("file-saver");
|
5
|
+
var logger_1 = require("./logger");
|
6
|
+
exports.fileDownloader = function (url, fileName, _a) {
|
7
|
+
var responseType = _a.responseType, fileType = _a.fileType, _b = _a.requestMethod, requestMethod = _b === void 0 ? "GET" : _b;
|
8
|
+
return new Promise(function (resolve, reject) {
|
9
|
+
var request = new XMLHttpRequest();
|
10
|
+
request.open(requestMethod, url, true);
|
11
|
+
request.responseType = responseType;
|
12
|
+
request.onload = function () {
|
13
|
+
var file = new Blob([request.response], {
|
14
|
+
type: fileType,
|
15
|
+
});
|
16
|
+
file_saver_1.saveAs(file, fileName);
|
17
|
+
resolve();
|
18
|
+
};
|
19
|
+
request.onerror = function () {
|
20
|
+
var errorText = this.status + " " + request.statusText;
|
21
|
+
var error = new Error(errorText);
|
22
|
+
logger_1.Logger.error(error);
|
23
|
+
reject();
|
24
|
+
};
|
25
|
+
request.send();
|
26
|
+
});
|
27
|
+
};
|
28
|
+
exports.pdfDownloader = function (url, fileName) {
|
29
|
+
return exports.fileDownloader(url, fileName, {
|
30
|
+
responseType: "blob",
|
31
|
+
fileType: "application/pdf",
|
32
|
+
});
|
33
|
+
};
|
@@ -0,0 +1,10 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.force2Digits = exports.formatNumber = void 0;
|
4
|
+
exports.formatNumber = function (num, precision) {
|
5
|
+
if (precision === void 0) { precision = 2; }
|
6
|
+
return num.toLocaleString("id", {
|
7
|
+
maximumFractionDigits: precision,
|
8
|
+
});
|
9
|
+
};
|
10
|
+
exports.force2Digits = function (num) { return ("0" + num).slice(-2); };
|
@@ -0,0 +1,13 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.formatPercentage = void 0;
|
4
|
+
var formatNumber_1 = require("./formatNumber");
|
5
|
+
var safeParse_1 = require("./safeParse");
|
6
|
+
exports.formatPercentage = function (num, total, precision) {
|
7
|
+
if (precision === void 0) { precision = 2; }
|
8
|
+
var percent = num !== 0 ? safeParse_1.safeParse("number", (num / total) * 100) : 0;
|
9
|
+
if (percent === Infinity) {
|
10
|
+
return "100%";
|
11
|
+
}
|
12
|
+
return formatNumber_1.formatNumber(percent, precision) + "%";
|
13
|
+
};
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isSupportedWebview = exports.isLollipopOrNewer = exports.isPlayStoreRelease = void 0;
|
4
|
+
var AndroidVersions_1 = require("../constants/AndroidVersions");
|
5
|
+
var cookies_1 = require("../constants/cookies");
|
6
|
+
var GobizApp_1 = require("../constants/GobizApp");
|
7
|
+
var BrowserEnvironment_1 = require("./BrowserEnvironment");
|
8
|
+
var cookies_2 = require("./cookies");
|
9
|
+
exports.isPlayStoreRelease = function () {
|
10
|
+
var regex = new RegExp("^" + GobizApp_1.GOBIZ_APP_ID.PlayStore, "i");
|
11
|
+
return regex.test(cookies_2.getCookie(cookies_1.CookieNames.AppId));
|
12
|
+
};
|
13
|
+
exports.isLollipopOrNewer = function () {
|
14
|
+
var apiLevel = parseInt(cookies_2.getCookie(cookies_1.CookieNames.ApiLevel) || "0", 10);
|
15
|
+
return apiLevel >= AndroidVersions_1.ANDROID_VERSIONS.Lollipop;
|
16
|
+
};
|
17
|
+
exports.isSupportedWebview = function () {
|
18
|
+
var versionCode = parseInt(cookies_2.getCookie(cookies_1.CookieNames.VersionCode), 10);
|
19
|
+
if (BrowserEnvironment_1.isWebView()) {
|
20
|
+
return (typeof versionCode === "number" &&
|
21
|
+
!isNaN(versionCode) &&
|
22
|
+
versionCode > GobizApp_1.GOBIZ_APP_VERSION["3.15.0"] &&
|
23
|
+
exports.isLollipopOrNewer() &&
|
24
|
+
exports.isPlayStoreRelease());
|
25
|
+
}
|
26
|
+
return !BrowserEnvironment_1.isJellybeanOrKitkat();
|
27
|
+
};
|
@@ -0,0 +1,50 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
5
|
+
}) : (function(o, m, k, k2) {
|
6
|
+
if (k2 === undefined) k2 = k;
|
7
|
+
o[k2] = m[k];
|
8
|
+
}));
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
11
|
+
};
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
13
|
+
__exportStar(require("./env"), exports);
|
14
|
+
__exportStar(require("./debounce"), exports);
|
15
|
+
__exportStar(require("./transform"), exports);
|
16
|
+
__exportStar(require("./path"), exports);
|
17
|
+
__exportStar(require("./cookies"), exports);
|
18
|
+
__exportStar(require("./wildcardToRegEx"), exports);
|
19
|
+
__exportStar(require("./deepMerge"), exports);
|
20
|
+
__exportStar(require("./maskAccount"), exports);
|
21
|
+
__exportStar(require("./safeParse"), exports);
|
22
|
+
__exportStar(require("./json"), exports);
|
23
|
+
__exportStar(require("./deepMerge"), exports);
|
24
|
+
__exportStar(require("./logger"), exports);
|
25
|
+
__exportStar(require("./cookies"), exports);
|
26
|
+
__exportStar(require("./textParser"), exports);
|
27
|
+
__exportStar(require("./numbers"), exports);
|
28
|
+
__exportStar(require("./shortID"), exports);
|
29
|
+
__exportStar(require("./datePresets"), exports);
|
30
|
+
__exportStar(require("./BrowserEnvironment"), exports);
|
31
|
+
__exportStar(require("./conversion"), exports);
|
32
|
+
__exportStar(require("./fileDownloader"), exports);
|
33
|
+
__exportStar(require("./gobizApp"), exports);
|
34
|
+
__exportStar(require("./identityValidator"), exports);
|
35
|
+
__exportStar(require("./refreshConfig"), exports);
|
36
|
+
__exportStar(require("./dateFormat"), exports);
|
37
|
+
__exportStar(require("./enumReverseMap"), exports);
|
38
|
+
__exportStar(require("./paymentTypeHuman"), exports);
|
39
|
+
__exportStar(require("./scrollToTop"), exports);
|
40
|
+
__exportStar(require("./time"), exports);
|
41
|
+
__exportStar(require("./copywrite"), exports);
|
42
|
+
__exportStar(require("./currency"), exports);
|
43
|
+
__exportStar(require("./tour"), exports);
|
44
|
+
__exportStar(require("./formatNumber"), exports);
|
45
|
+
__exportStar(require("./formatPercentage"), exports);
|
46
|
+
__exportStar(require("./chart"), exports);
|
47
|
+
__exportStar(require("./url"), exports);
|
48
|
+
__exportStar(require("./ESQuery"), exports);
|
49
|
+
__exportStar(require("./downloadURL"), exports);
|
50
|
+
__exportStar(require("./cleanObject"), exports);
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.JSONTry = void 0;
|
4
|
+
exports.JSONTry = function (source, path, defaultValue) {
|
5
|
+
var split = path.includes(".") ? path.split(".") : [path];
|
6
|
+
var target = split.reduce(function (final, current) {
|
7
|
+
// ensures falsy values are returned correctly [0, false, null]
|
8
|
+
if (typeof final === "undefined" || typeof final[current] === "undefined") {
|
9
|
+
return undefined;
|
10
|
+
}
|
11
|
+
return final[current];
|
12
|
+
}, source);
|
13
|
+
if (typeof target === "undefined") {
|
14
|
+
return defaultValue;
|
15
|
+
}
|
16
|
+
return target;
|
17
|
+
};
|
@@ -0,0 +1,93 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __spreadArrays = (this && this.__spreadArrays) || function () {
|
3
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
4
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
5
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
6
|
+
r[k] = a[j];
|
7
|
+
return r;
|
8
|
+
};
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
10
|
+
exports.Logger = exports.filterLoginData = void 0;
|
11
|
+
var BrowserEnvironment_1 = require("./BrowserEnvironment");
|
12
|
+
var env_1 = require("./env");
|
13
|
+
var rgApiKey = env_1.env("REACT_APP_RAYGUN_API_KEY");
|
14
|
+
exports.filterLoginData = function (payload) {
|
15
|
+
var breadcrumbs = payload["Details"]["Breadcrumbs"];
|
16
|
+
payload.Details.Breadcrumbs = breadcrumbs.map(function (crumb) {
|
17
|
+
var _a;
|
18
|
+
if (crumb && crumb.type === "request") {
|
19
|
+
try {
|
20
|
+
var customBody = JSON.parse(((_a = crumb === null || crumb === void 0 ? void 0 : crumb.CustomData) === null || _a === void 0 ? void 0 : _a.body) || "{}");
|
21
|
+
if (customBody === null || customBody === void 0 ? void 0 : customBody.data) {
|
22
|
+
if (customBody.data.email) {
|
23
|
+
customBody.data.email = "[Filtered]";
|
24
|
+
}
|
25
|
+
if (customBody.data.password) {
|
26
|
+
customBody.data.password = "[Filtered]";
|
27
|
+
}
|
28
|
+
}
|
29
|
+
if (customBody === null || customBody === void 0 ? void 0 : customBody.phone_number) {
|
30
|
+
customBody.phone_number = "[Filtered]";
|
31
|
+
}
|
32
|
+
crumb.CustomData.body = JSON.stringify(customBody);
|
33
|
+
}
|
34
|
+
catch (e) { }
|
35
|
+
}
|
36
|
+
return crumb;
|
37
|
+
});
|
38
|
+
return payload;
|
39
|
+
};
|
40
|
+
if (rgApiKey) {
|
41
|
+
var tags = ["v2"];
|
42
|
+
BrowserEnvironment_1.isWebView() && tags.push("webview");
|
43
|
+
BrowserEnvironment_1.isIFrame() && tags.push("iframe");
|
44
|
+
rg4js("apiKey", rgApiKey);
|
45
|
+
rg4js("setVersion", env_1.env("REACT_APP_DOCKER_IMAGE_TAG"));
|
46
|
+
rg4js("enableCrashReporting", true);
|
47
|
+
rg4js("withTags", tags);
|
48
|
+
rg4js("logContentsOfXhrCalls", true);
|
49
|
+
rg4js("disableAutoBreadcrumbsConsole");
|
50
|
+
rg4js("onBeforeSend", exports.filterLoginData);
|
51
|
+
rg4js("setFilterScope", "all");
|
52
|
+
rg4js("filterSensitiveData", ["email", "password", "phone"]);
|
53
|
+
}
|
54
|
+
var isDevOrTest = ["development", "test"].includes(process.env.NODE_ENV);
|
55
|
+
var Logger = /** @class */ (function () {
|
56
|
+
function Logger() {
|
57
|
+
}
|
58
|
+
Logger.initUser = function (userId) {
|
59
|
+
rg4js("setUser", {
|
60
|
+
identifier: userId,
|
61
|
+
isAnonymous: false,
|
62
|
+
});
|
63
|
+
};
|
64
|
+
Logger.info = function () {
|
65
|
+
var messages = [];
|
66
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
67
|
+
messages[_i] = arguments[_i];
|
68
|
+
}
|
69
|
+
if (isDevOrTest) {
|
70
|
+
console.log.apply(console, __spreadArrays(["Logger.info"], messages));
|
71
|
+
}
|
72
|
+
};
|
73
|
+
Logger.warn = function (content) {
|
74
|
+
if (isDevOrTest) {
|
75
|
+
var stack = new Error().stack;
|
76
|
+
console.warn("Logger.warn", { content: content, stack: stack });
|
77
|
+
}
|
78
|
+
if (!!rgApiKey) {
|
79
|
+
rg4js("send", { error: content, tags: ["warning"] });
|
80
|
+
}
|
81
|
+
};
|
82
|
+
Logger.error = function (error, tags) {
|
83
|
+
if (tags === void 0) { tags = []; }
|
84
|
+
if (isDevOrTest) {
|
85
|
+
console.error("Logger.error", error, tags);
|
86
|
+
}
|
87
|
+
if (!!rgApiKey) {
|
88
|
+
rg4js("send", { error: error, tags: __spreadArrays(["error"], tags) });
|
89
|
+
}
|
90
|
+
};
|
91
|
+
return Logger;
|
92
|
+
}());
|
93
|
+
exports.Logger = Logger;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.maskBankAccountNumber = exports.maskBankAccountName = void 0;
|
4
|
+
exports.maskBankAccountName = function (name) {
|
5
|
+
return ((name.length &&
|
6
|
+
name
|
7
|
+
.split(" ")
|
8
|
+
.map(function (piece) {
|
9
|
+
return piece
|
10
|
+
.split("")
|
11
|
+
.map(function (char, idx) {
|
12
|
+
var length = piece.length;
|
13
|
+
return !idx || (length > 1 && idx === length - 1)
|
14
|
+
? char.toUpperCase()
|
15
|
+
: "*";
|
16
|
+
})
|
17
|
+
.join("");
|
18
|
+
})
|
19
|
+
.join(" ")) ||
|
20
|
+
"");
|
21
|
+
};
|
22
|
+
exports.maskBankAccountNumber = function (num, last) {
|
23
|
+
if (last === void 0) { last = 4; }
|
24
|
+
return ((num.length && "x".repeat(num.length - last) + "-" + num.substr(-last)) ||
|
25
|
+
"");
|
26
|
+
};
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
3
|
+
__assign = Object.assign || function(t) {
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
5
|
+
s = arguments[i];
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
7
|
+
t[p] = s[p];
|
8
|
+
}
|
9
|
+
return t;
|
10
|
+
};
|
11
|
+
return __assign.apply(this, arguments);
|
12
|
+
};
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
14
|
+
exports.PATH = void 0;
|
15
|
+
var AppNames_1 = require("../constants/AppNames");
|
16
|
+
var env_1 = require("./env");
|
17
|
+
var routePrefix = env_1.env("REACT_APP_ROUTE_PREFIX");
|
18
|
+
var statePaths = {
|
19
|
+
finish: routePrefix + "/!finish",
|
20
|
+
error: routePrefix + "/!error",
|
21
|
+
forceClose: routePrefix + "/!force_close",
|
22
|
+
redirectClaimAdmin: routePrefix + "/!redirect?to=claim-admin",
|
23
|
+
};
|
24
|
+
exports.PATH = Object.keys(AppNames_1.APP_NAMES).reduce(function (all, appName) {
|
25
|
+
var _a;
|
26
|
+
return __assign(__assign({}, all), (_a = {}, _a[appName] = routePrefix + "/" + AppNames_1.APP_NAMES[appName], _a));
|
27
|
+
}, statePaths);
|
@@ -0,0 +1,62 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.paymentTypeHuman = exports.PAYMENT_TYPE = exports.PAYMENT_STATUS = void 0;
|
4
|
+
var PAYMENT_STATUS;
|
5
|
+
(function (PAYMENT_STATUS) {
|
6
|
+
// SUCCESS is not an actual PaymentStatus, but as present in rhea-client,
|
7
|
+
// it is used in some UI elements to determine states.
|
8
|
+
PAYMENT_STATUS["SUCCESS"] = "SUCCESS";
|
9
|
+
PAYMENT_STATUS["CAPTURE"] = "CAPTURE";
|
10
|
+
PAYMENT_STATUS["SETTLEMENT"] = "SETTLEMENT";
|
11
|
+
PAYMENT_STATUS["AUTHORIZE"] = "AUTHORIZE";
|
12
|
+
PAYMENT_STATUS["REFUND"] = "REFUND";
|
13
|
+
PAYMENT_STATUS["CHARGEBACK"] = "CHARGEBACK";
|
14
|
+
PAYMENT_STATUS["PARTIAL_CHARGEBACK"] = "PARTIAL_CHARGEBACK";
|
15
|
+
PAYMENT_STATUS["PARTIAL_REFUND"] = "PARTIAL_REFUND";
|
16
|
+
PAYMENT_STATUS["PARTIAL_SETTLEMENT"] = "PARTIAL_SETTLEMENT";
|
17
|
+
PAYMENT_STATUS["CANCEL"] = "CANCEL";
|
18
|
+
PAYMENT_STATUS["CHALLENGE"] = "CHALLENGE";
|
19
|
+
PAYMENT_STATUS["DENY"] = "DENY";
|
20
|
+
PAYMENT_STATUS["PENDING"] = "PENDING";
|
21
|
+
PAYMENT_STATUS["EXPIRE"] = "EXPIRE";
|
22
|
+
PAYMENT_STATUS["FAILURE"] = "FAILURE";
|
23
|
+
})(PAYMENT_STATUS = exports.PAYMENT_STATUS || (exports.PAYMENT_STATUS = {}));
|
24
|
+
var PAYMENT_TYPE;
|
25
|
+
(function (PAYMENT_TYPE) {
|
26
|
+
PAYMENT_TYPE["CREDIT_CARD"] = "CREDIT_CARD";
|
27
|
+
PAYMENT_TYPE["GOPAY"] = "GOPAY";
|
28
|
+
PAYMENT_TYPE["QRIS"] = "QRIS";
|
29
|
+
PAYMENT_TYPE["CASH"] = "CASH";
|
30
|
+
PAYMENT_TYPE["OFFLINE_OVO"] = "OFFLINE_OVO";
|
31
|
+
PAYMENT_TYPE["OFFLINE_TELKOMSEL_CASH"] = "OFFLINE_TELKOMSEL_CASH";
|
32
|
+
PAYMENT_TYPE["OFFLINE_CREDIT_CARD"] = "OFFLINE_CREDIT_CARD";
|
33
|
+
PAYMENT_TYPE["DEBIT_CARD"] = "DEBIT_CARD";
|
34
|
+
PAYMENT_TYPE["GRAB_FOOD"] = "GRAB_FOOD";
|
35
|
+
PAYMENT_TYPE["SHOPEE_FOOD"] = "SHOPEE_FOOD";
|
36
|
+
})(PAYMENT_TYPE = exports.PAYMENT_TYPE || (exports.PAYMENT_TYPE = {}));
|
37
|
+
exports.paymentTypeHuman = function (paymentType) {
|
38
|
+
if (paymentType === void 0) { paymentType = ""; }
|
39
|
+
switch (paymentType.toUpperCase()) {
|
40
|
+
case PAYMENT_TYPE.CREDIT_CARD:
|
41
|
+
case "CREDIT":
|
42
|
+
return "Credit Card";
|
43
|
+
case PAYMENT_TYPE.GOPAY:
|
44
|
+
return "GoPay";
|
45
|
+
case PAYMENT_TYPE.CASH:
|
46
|
+
return "Cash";
|
47
|
+
case PAYMENT_TYPE.OFFLINE_OVO:
|
48
|
+
return "OVO";
|
49
|
+
case PAYMENT_TYPE.OFFLINE_TELKOMSEL_CASH:
|
50
|
+
return "Link Aja";
|
51
|
+
case PAYMENT_TYPE.OFFLINE_CREDIT_CARD:
|
52
|
+
return "Offline Debit / Credit Card";
|
53
|
+
case PAYMENT_TYPE.DEBIT_CARD:
|
54
|
+
case "DEBIT":
|
55
|
+
return "Debit Card";
|
56
|
+
case PAYMENT_TYPE.GRAB_FOOD:
|
57
|
+
return "GrabFood";
|
58
|
+
case PAYMENT_TYPE.SHOPEE_FOOD:
|
59
|
+
return "ShopeeFood";
|
60
|
+
}
|
61
|
+
return paymentType.toUpperCase();
|
62
|
+
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.refreshConfig = void 0;
|
4
|
+
var cookies_1 = require("../constants/cookies");
|
5
|
+
var cookies_2 = require("./cookies");
|
6
|
+
/**
|
7
|
+
* Delete access token from cookie and reload to invoke token refresh flow
|
8
|
+
*/
|
9
|
+
exports.refreshConfig = function () {
|
10
|
+
cookies_2.deleteCookie(cookies_1.CookieNames.AccessToken);
|
11
|
+
window.location.reload();
|
12
|
+
};
|
@@ -0,0 +1,108 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (_) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
+
exports.refreshToken = void 0;
|
40
|
+
var providers_1 = require("../providers");
|
41
|
+
var logger_1 = require("./logger");
|
42
|
+
var BrowserEnvironment_1 = require("./BrowserEnvironment");
|
43
|
+
var path_1 = require("./path");
|
44
|
+
var cookies_1 = require("./cookies");
|
45
|
+
var constants_1 = require("../constants");
|
46
|
+
var env_1 = require("./env");
|
47
|
+
var _logout = function (error, clearTokens) {
|
48
|
+
logger_1.Logger.error(error);
|
49
|
+
clearTokens();
|
50
|
+
if (BrowserEnvironment_1.isWebView()) {
|
51
|
+
/**
|
52
|
+
* FIXME: Temporary solution for token expiry on WebView.
|
53
|
+
* Need to discuss a more reliable method with Biz App team.
|
54
|
+
* @date - 08/07/20
|
55
|
+
* @time - 18.40
|
56
|
+
*/
|
57
|
+
return (window.location.href = path_1.PATH["forceClose"]);
|
58
|
+
}
|
59
|
+
var fullPath = window.location.pathname + "?" + window.location.search;
|
60
|
+
cookies_1.setCookie(constants_1.CookieNames.DestinationBeforeLoggedOut, fullPath);
|
61
|
+
window.location.href = env_1.env("REACT_APP_HOST") + "/auth/login";
|
62
|
+
};
|
63
|
+
exports.refreshToken = function () { return __awaiter(void 0, void 0, void 0, function () {
|
64
|
+
var _a, setToken, setRefreshToken, clearTokens, refreshUrl, refreshToken, payload, tokenResponse, tokenData, err_1;
|
65
|
+
return __generator(this, function (_b) {
|
66
|
+
switch (_b.label) {
|
67
|
+
case 0:
|
68
|
+
_a = providers_1.useToken(), setToken = _a.setToken, setRefreshToken = _a.setRefreshToken, clearTokens = _a.clearTokens;
|
69
|
+
refreshUrl = env_1.env("REACT_APP_GOBIZ_API_HOST") + "/goid/token";
|
70
|
+
refreshToken = cookies_1.getCookie(constants_1.CookieNames.RefreshToken);
|
71
|
+
if (!refreshToken) {
|
72
|
+
_logout(new Error("No refresh token found"), clearTokens);
|
73
|
+
return [2 /*return*/, false];
|
74
|
+
}
|
75
|
+
payload = {
|
76
|
+
client_id: env_1.env("REACT_APP_GOID_CLIENT_ID"),
|
77
|
+
grant_type: "refresh_token",
|
78
|
+
data: {
|
79
|
+
refresh_token: refreshToken,
|
80
|
+
},
|
81
|
+
};
|
82
|
+
_b.label = 1;
|
83
|
+
case 1:
|
84
|
+
_b.trys.push([1, 4, , 5]);
|
85
|
+
return [4 /*yield*/, fetch(refreshUrl, {
|
86
|
+
method: "POST",
|
87
|
+
body: JSON.stringify(payload),
|
88
|
+
headers: {
|
89
|
+
"content-type": "application/json",
|
90
|
+
},
|
91
|
+
})];
|
92
|
+
case 2:
|
93
|
+
tokenResponse = _b.sent();
|
94
|
+
return [4 /*yield*/, tokenResponse.json()];
|
95
|
+
case 3:
|
96
|
+
tokenData = _b.sent();
|
97
|
+
// TODO: Remove after migrating to use-http
|
98
|
+
setToken(tokenData.access_token);
|
99
|
+
setRefreshToken(tokenData.refresh_token);
|
100
|
+
return [2 /*return*/, true];
|
101
|
+
case 4:
|
102
|
+
err_1 = _b.sent();
|
103
|
+
logger_1.Logger.error(err_1);
|
104
|
+
return [2 /*return*/, false];
|
105
|
+
case 5: return [2 /*return*/];
|
106
|
+
}
|
107
|
+
});
|
108
|
+
}); };
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.safeParse = void 0;
|
4
|
+
exports.safeParse = function (type, data, defaultValue) {
|
5
|
+
if (defaultValue === void 0) { defaultValue = null; }
|
6
|
+
if (type === "array") {
|
7
|
+
if (data && Array.isArray(data) && data.length) {
|
8
|
+
return data;
|
9
|
+
}
|
10
|
+
return defaultValue || [];
|
11
|
+
}
|
12
|
+
// Force transform NaN to number
|
13
|
+
if (type === "number") {
|
14
|
+
data = isNaN(data) ? null : data;
|
15
|
+
}
|
16
|
+
if (data === null || typeof data !== type) {
|
17
|
+
switch (type) {
|
18
|
+
case "string":
|
19
|
+
return defaultValue || "";
|
20
|
+
case "number":
|
21
|
+
return defaultValue || 0;
|
22
|
+
case "boolean":
|
23
|
+
return defaultValue || false;
|
24
|
+
case "object":
|
25
|
+
return defaultValue || {};
|
26
|
+
default:
|
27
|
+
return defaultValue || "";
|
28
|
+
}
|
29
|
+
}
|
30
|
+
return data;
|
31
|
+
};
|