@gobizweb/core 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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
+ };