@gobizweb/core 0.0.7

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 (211) hide show
  1. package/README.md +56 -0
  2. package/assets/icons/arrow_left.svg +1 -0
  3. package/assets/icons/right_pointing.svg +1 -0
  4. package/assets/icons/thumb-up.svg +1 -0
  5. package/assets/images/server_error_dino.svg +1 -0
  6. package/assets/images/spot_hero_empty_list.svg +1 -0
  7. package/lib/bootstrap.js +39 -0
  8. package/lib/components/AccordionSelect/AccordionSelect.component.js +131 -0
  9. package/lib/components/AccordionSelect/AccordionSelect.styled.js +18 -0
  10. package/lib/components/AccordionSelect/index.js +13 -0
  11. package/lib/components/AlertBox/AlertBox.component.js +54 -0
  12. package/lib/components/AlertBox/AlertBox.styled.js +32 -0
  13. package/lib/components/AlertBox/index.js +13 -0
  14. package/lib/components/AlertDialog/AlertDialog.js +66 -0
  15. package/lib/components/AlertDialog/AlertDialog.styled.js +13 -0
  16. package/lib/components/AlertDialog/index.js +13 -0
  17. package/lib/components/Asphalt/Input.component.js +59 -0
  18. package/lib/components/Asphalt/index.js +13 -0
  19. package/lib/components/AsphaltPolyfill/AsphaltPolyfill.component.js +26 -0
  20. package/lib/components/AsphaltPolyfill/AsphaltPolyfill.loader.js +8 -0
  21. package/lib/components/AsphaltPolyfill/index.js +13 -0
  22. package/lib/components/Box/index.js +51 -0
  23. package/lib/components/Breakpoint/Breakpoint.component.js +63 -0
  24. package/lib/components/Breakpoint/index.js +13 -0
  25. package/lib/components/Button/Button.js +109 -0
  26. package/lib/components/Button/index.js +13 -0
  27. package/lib/components/Card/Card.js +75 -0
  28. package/lib/components/Card/Card.styled.js +60 -0
  29. package/lib/components/Card/index.js +13 -0
  30. package/lib/components/CardList/CardList.component.js +55 -0
  31. package/lib/components/CardList/index.js +13 -0
  32. package/lib/components/Checkbox/Checkbox.js +60 -0
  33. package/lib/components/Checkbox/index.js +13 -0
  34. package/lib/components/Container/Container.js +74 -0
  35. package/lib/components/Container/index.js +13 -0
  36. package/lib/components/DatePicker/Datepicker.component.js +57 -0
  37. package/lib/components/DatePicker/index.js +13 -0
  38. package/lib/components/Dropdown/Dropdown.component.js +63 -0
  39. package/lib/components/Dropdown/index.js +13 -0
  40. package/lib/components/EmptyState/EmptyState.component.js +47 -0
  41. package/lib/components/EmptyState/index.js +13 -0
  42. package/lib/components/ErrorModal/ErrorModal.component.js +41 -0
  43. package/lib/components/ErrorModal/ErrorModal.store.js +43 -0
  44. package/lib/components/ErrorModal/index.js +14 -0
  45. package/lib/components/ErrorScreen/ErrorScreen.js +19 -0
  46. package/lib/components/ErrorScreen/index.js +13 -0
  47. package/lib/components/FilterModal/FilterModal.js +41 -0
  48. package/lib/components/FilterModal/FilterModal.state.js +139 -0
  49. package/lib/components/FilterModal/index.js +13 -0
  50. package/lib/components/GlobalFilter/GlobalFilter.component.js +32 -0
  51. package/lib/components/GlobalFilter/GlobalFilter.component.state.js +116 -0
  52. package/lib/components/GlobalFilter/GlobalFilter.constant.js +17 -0
  53. package/lib/components/GlobalFilter/GlobalFilter.date.component.js +34 -0
  54. package/lib/components/GlobalFilter/GlobalFilter.interface.js +2 -0
  55. package/lib/components/GlobalFilter/GlobalFilter.provider.js +169 -0
  56. package/lib/components/GlobalFilter/GlobalFilter.styled.js +16 -0
  57. package/lib/components/GlobalFilter/index.js +16 -0
  58. package/lib/components/Guard/Guard.component.js +18 -0
  59. package/lib/components/Guard/index.js +13 -0
  60. package/lib/components/IframeLoader/IframeLoader.js +47 -0
  61. package/lib/components/IframeLoader/index.js +13 -0
  62. package/lib/components/Input/Input.component.js +167 -0
  63. package/lib/components/Input/index.js +13 -0
  64. package/lib/components/LanguageSwitcher/LanguageSwitcher.component.js +78 -0
  65. package/lib/components/LanguageSwitcher/LanguageSwitcher.state.js +20 -0
  66. package/lib/components/LanguageSwitcher/LanguageSwitcher.styled.js +40 -0
  67. package/lib/components/LanguageSwitcher/index.js +13 -0
  68. package/lib/components/List/List.js +46 -0
  69. package/lib/components/List/index.js +13 -0
  70. package/lib/components/ListSelector/ListSelector.component.js +22 -0
  71. package/lib/components/ListSelector/ListSelector.state.js +11 -0
  72. package/lib/components/ListSelector/ListSelector.styled.js +15 -0
  73. package/lib/components/ListSelector/index.js +13 -0
  74. package/lib/components/Loading/Loading.js +52 -0
  75. package/lib/components/Loading/Loading.styled.js +45 -0
  76. package/lib/components/Loading/index.js +13 -0
  77. package/lib/components/LoadingModule/LoadingModule.component.js +49 -0
  78. package/lib/components/LoadingModule/index.js +13 -0
  79. package/lib/components/MobileAppBar/MobileAppBar.js +90 -0
  80. package/lib/components/MobileAppBar/MobileAppBar.styled.js +36 -0
  81. package/lib/components/MobileAppBar/WithMobileAppBar.js +43 -0
  82. package/lib/components/MobileAppBar/index.js +14 -0
  83. package/lib/components/Modal/Modal.js +149 -0
  84. package/lib/components/Modal/ModalManager.context.js +6 -0
  85. package/lib/components/Modal/ModalManager.js +118 -0
  86. package/lib/components/Modal/index.js +15 -0
  87. package/lib/components/Navigation/Navigation.component.js +25 -0
  88. package/lib/components/Navigation/Navigation.provider.js +69 -0
  89. package/lib/components/Navigation/Navigation.styled.js +33 -0
  90. package/lib/components/Navigation/index.js +14 -0
  91. package/lib/components/PageTitle/PageTitle.component.js +47 -0
  92. package/lib/components/PageTitle/index.js +13 -0
  93. package/lib/components/Pagination/Pagination.component.js +49 -0
  94. package/lib/components/Pagination/index.js +13 -0
  95. package/lib/components/Radio/Radio.component.js +69 -0
  96. package/lib/components/Radio/Radio.styled.js +44 -0
  97. package/lib/components/Radio/RadioGroup.component.js +24 -0
  98. package/lib/components/Radio/RadioGroup.context.js +6 -0
  99. package/lib/components/Radio/index.js +15 -0
  100. package/lib/components/Separator/Separator.component.js +59 -0
  101. package/lib/components/Separator/index.js +13 -0
  102. package/lib/components/Skeleton/SkeletonApp.component.js +90 -0
  103. package/lib/components/Skeleton/SkeletonTable.component.js +36 -0
  104. package/lib/components/Skeleton/SkeletonText.component.js +62 -0
  105. package/lib/components/Skeleton/SkeletonWrapper.component.js +46 -0
  106. package/lib/components/Skeleton/index.js +16 -0
  107. package/lib/components/Stepper/Stepper.component.js +126 -0
  108. package/lib/components/Stepper/WithStepper.js +65 -0
  109. package/lib/components/Stepper/index.js +16 -0
  110. package/lib/components/Table/Table.component.js +71 -0
  111. package/lib/components/Table/Table.styled.js +51 -0
  112. package/lib/components/Table/index.js +13 -0
  113. package/lib/components/TableContainer/TableContainer.js +32 -0
  114. package/lib/components/TableContainer/index.js +13 -0
  115. package/lib/components/Text/Text.component.js +90 -0
  116. package/lib/components/Text/index.js +13 -0
  117. package/lib/components/Toast/Toast.component.js +65 -0
  118. package/lib/components/Toast/Toast.interface.js +2 -0
  119. package/lib/components/Toast/Toast.manager.js +61 -0
  120. package/lib/components/Toast/Toast.provider.js +85 -0
  121. package/lib/components/Toast/Toast.styled.js +18 -0
  122. package/lib/components/Toast/index.js +15 -0
  123. package/lib/components/Tours/index.js +100 -0
  124. package/lib/components/index.js +51 -0
  125. package/lib/constants/AndroidVersions.js +6 -0
  126. package/lib/constants/AppNames.js +10 -0
  127. package/lib/constants/AsphaltTheme.js +43 -0
  128. package/lib/constants/GobizApp.js +11 -0
  129. package/lib/constants/MediaQueries.js +30 -0
  130. package/lib/constants/PostalCodes.js +8382 -0
  131. package/lib/constants/PubsubEvents.js +12 -0
  132. package/lib/constants/TnCFiles.js +77 -0
  133. package/lib/constants/ValidationRegex.js +6 -0
  134. package/lib/constants/cookies.js +38 -0
  135. package/lib/constants/datetime.js +103 -0
  136. package/lib/constants/index.js +24 -0
  137. package/lib/constants/roles.js +17 -0
  138. package/lib/contexts/AppTheme.js +221 -0
  139. package/lib/decorators/utility-classes.js +78 -0
  140. package/lib/decorators/withStyles.js +73 -0
  141. package/lib/helpers/BrowserEnvironment.js +22 -0
  142. package/lib/helpers/ESQuery.js +98 -0
  143. package/lib/helpers/chart.js +251 -0
  144. package/lib/helpers/cleanObject.js +15 -0
  145. package/lib/helpers/conversion.js +4 -0
  146. package/lib/helpers/cookies.js +54 -0
  147. package/lib/helpers/copywrite.js +15 -0
  148. package/lib/helpers/currency.js +73 -0
  149. package/lib/helpers/dateFormat.js +47 -0
  150. package/lib/helpers/datePresets.js +77 -0
  151. package/lib/helpers/debounce.js +31 -0
  152. package/lib/helpers/deepMerge.js +81 -0
  153. package/lib/helpers/downloadURL.js +11 -0
  154. package/lib/helpers/enumReverseMap.js +12 -0
  155. package/lib/helpers/env.js +18 -0
  156. package/lib/helpers/fileDownloader.js +33 -0
  157. package/lib/helpers/formatNumber.js +10 -0
  158. package/lib/helpers/formatPercentage.js +13 -0
  159. package/lib/helpers/gobizApp.js +27 -0
  160. package/lib/helpers/identityValidator.js +6 -0
  161. package/lib/helpers/index.js +50 -0
  162. package/lib/helpers/json.js +17 -0
  163. package/lib/helpers/logger.js +93 -0
  164. package/lib/helpers/maskAccount.js +26 -0
  165. package/lib/helpers/numbers.js +6 -0
  166. package/lib/helpers/path.js +27 -0
  167. package/lib/helpers/paymentTypeHuman.js +62 -0
  168. package/lib/helpers/refreshConfig.js +12 -0
  169. package/lib/helpers/refreshToken.js +108 -0
  170. package/lib/helpers/safeParse.js +31 -0
  171. package/lib/helpers/scrollToTop.js +9 -0
  172. package/lib/helpers/shortID.js +17 -0
  173. package/lib/helpers/textParser.js +10 -0
  174. package/lib/helpers/time.js +54 -0
  175. package/lib/helpers/tour.js +38 -0
  176. package/lib/helpers/transform.js +24 -0
  177. package/lib/helpers/url.js +30 -0
  178. package/lib/helpers/wildcardToRegEx.js +15 -0
  179. package/lib/hooks/index.js +26 -0
  180. package/lib/hooks/useBreakpoint.js +35 -0
  181. package/lib/hooks/useCurrency.js +27 -0
  182. package/lib/hooks/useDatesFromTimeRange.js +40 -0
  183. package/lib/hooks/useEventListener.js +24 -0
  184. package/lib/hooks/useFormValidator.js +38 -0
  185. package/lib/hooks/useHttpOptions.js +104 -0
  186. package/lib/hooks/useLogger.js +57 -0
  187. package/lib/hooks/useNavigation.js +16 -0
  188. package/lib/hooks/usePhone.js +14 -0
  189. package/lib/hooks/useQueryInit.js +21 -0
  190. package/lib/hooks/useQueryParams.js +95 -0
  191. package/lib/hooks/useShowGlobalFilter.js +101 -0
  192. package/lib/hooks/useWebview.js +48 -0
  193. package/lib/hooks/useWindow.js +19 -0
  194. package/lib/models/AuthUser.model.js +159 -0
  195. package/lib/models/Outlet.model.js +274 -0
  196. package/lib/models/User.model.js +106 -0
  197. package/lib/models/index.js +15 -0
  198. package/lib/providers/Alert.provider.js +65 -0
  199. package/lib/providers/AppTheme.provider.js +75 -0
  200. package/lib/providers/Auth.provider.js +239 -0
  201. package/lib/providers/Clevertap.provider.js +117 -0
  202. package/lib/providers/GoogleAnalytics.provider.js +113 -0
  203. package/lib/providers/Host.provider.js +71 -0
  204. package/lib/providers/Language.provider.js +127 -0
  205. package/lib/providers/Logger.provider.js +32 -0
  206. package/lib/providers/MicroApp.provider.js +63 -0
  207. package/lib/providers/Outlets.provider.js +180 -0
  208. package/lib/providers/Token.provider.js +101 -0
  209. package/lib/providers/Translation.provider.js +56 -0
  210. package/lib/providers/index.js +24 -0
  211. 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,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateKtp = void 0;
4
+ exports.validateKtp = function (idCardNumber) {
5
+ return /[\d]{16}/.test(idCardNumber);
6
+ };
@@ -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,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.randomNumberBetween = void 0;
4
+ exports.randomNumberBetween = function (min, max) {
5
+ return Math.floor(Math.random() * (max - min + 1) + min);
6
+ };
@@ -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
+ };