@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,239 @@
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
14
|
+
if (k2 === undefined) k2 = k;
|
15
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
16
|
+
}) : (function(o, m, k, k2) {
|
17
|
+
if (k2 === undefined) k2 = k;
|
18
|
+
o[k2] = m[k];
|
19
|
+
}));
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
22
|
+
}) : function(o, v) {
|
23
|
+
o["default"] = v;
|
24
|
+
});
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
26
|
+
if (mod && mod.__esModule) return mod;
|
27
|
+
var result = {};
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
29
|
+
__setModuleDefault(result, mod);
|
30
|
+
return result;
|
31
|
+
};
|
32
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
33
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
34
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
35
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
36
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
37
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
38
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
39
|
+
});
|
40
|
+
};
|
41
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
42
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
43
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
44
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
45
|
+
function step(op) {
|
46
|
+
if (f) throw new TypeError("Generator is already executing.");
|
47
|
+
while (_) try {
|
48
|
+
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;
|
49
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
50
|
+
switch (op[0]) {
|
51
|
+
case 0: case 1: t = op; break;
|
52
|
+
case 4: _.label++; return { value: op[1], done: false };
|
53
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
54
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
55
|
+
default:
|
56
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
57
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
58
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
59
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
60
|
+
if (t[2]) _.ops.pop();
|
61
|
+
_.trys.pop(); continue;
|
62
|
+
}
|
63
|
+
op = body.call(thisArg, _);
|
64
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
65
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
66
|
+
}
|
67
|
+
};
|
68
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
69
|
+
var t = {};
|
70
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
71
|
+
t[p] = s[p];
|
72
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
73
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
74
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
75
|
+
t[p[i]] = s[p[i]];
|
76
|
+
}
|
77
|
+
return t;
|
78
|
+
};
|
79
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
80
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
81
|
+
};
|
82
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
83
|
+
exports.AuthProvider = exports.useAuth = exports.AuthContext = void 0;
|
84
|
+
var query_string_1 = __importDefault(require("query-string"));
|
85
|
+
var react_router_1 = require("react-router");
|
86
|
+
var use_http_1 = __importStar(require("use-http"));
|
87
|
+
var useMount_1 = __importDefault(require("react-use/lib/useMount"));
|
88
|
+
var useCookie_1 = __importDefault(require("react-use/lib/useCookie"));
|
89
|
+
var react_1 = __importStar(require("react"));
|
90
|
+
var env_1 = require("../helpers/env");
|
91
|
+
var wildcardToRegEx_1 = require("../helpers/wildcardToRegEx");
|
92
|
+
var AuthUser_model_1 = require("../models/AuthUser.model");
|
93
|
+
var Outlet_model_1 = require("../models/Outlet.model");
|
94
|
+
var MicroApp_provider_1 = require("./MicroApp.provider");
|
95
|
+
var cookies_1 = require("../helpers/cookies");
|
96
|
+
var LoadingModule_1 = require("../components/LoadingModule");
|
97
|
+
var PubsubEvents_1 = require("../constants/PubsubEvents");
|
98
|
+
exports.AuthContext = react_1.createContext({});
|
99
|
+
exports.useAuth = function () { return react_1.useContext(exports.AuthContext); };
|
100
|
+
exports.AuthProvider = function (props) {
|
101
|
+
var _a;
|
102
|
+
var authErrorScreen = props.authErrorScreen, onAuthError = props.onAuthError, asMicroApp = props.asMicroApp, others = __rest(props, ["authErrorScreen", "onAuthError", "asMicroApp"]);
|
103
|
+
var _b = react_router_1.useHistory(), replace = _b.replace, location = _b.location;
|
104
|
+
var resolveUrl = MicroApp_provider_1.useMicroApp().resolveUrl;
|
105
|
+
var _c = useCookie_1.default("access_token"), accessTokenCookie = _c[0], setAccessTokenCookie = _c[1];
|
106
|
+
var queryParams = query_string_1.default.parse(window.location.search);
|
107
|
+
var accessTokenFromQuery = (queryParams.access_token ||
|
108
|
+
queryParams.token);
|
109
|
+
/**
|
110
|
+
* access token read priority:
|
111
|
+
* - URL params ?access_token=xxx
|
112
|
+
* - URL params ?token=xxx
|
113
|
+
* - cookie
|
114
|
+
*/
|
115
|
+
var token = (_a = accessTokenFromQuery !== null && accessTokenFromQuery !== void 0 ? accessTokenFromQuery : accessTokenCookie) !== null && _a !== void 0 ? _a : "";
|
116
|
+
var _d = react_1.useState(false), authorized = _d[0], setAuthorized = _d[1];
|
117
|
+
var _e = react_1.useState(true), initialLoading = _e[0], setInitialLoading = _e[1];
|
118
|
+
var _f = react_1.useState({}), config = _f[0], setConfig = _f[1];
|
119
|
+
var _g = react_1.useState(new AuthUser_model_1.AuthUser()), authUser = _g[0], setAuthUser = _g[1];
|
120
|
+
var _h = react_1.useState(new Outlet_model_1.Outlet()), defaultOutlet = _h[0], setDefaultOutlet = _h[1];
|
121
|
+
var headers = {
|
122
|
+
authorization: "Bearer " + token,
|
123
|
+
"Authentication-Type": "go-id",
|
124
|
+
};
|
125
|
+
var _j = use_http_1.default(env_1.env("REACT_APP_MARS_API_HOST") + "/goresto/v4/public/users/config", {
|
126
|
+
cachePolicy: use_http_1.CachePolicies.NO_CACHE,
|
127
|
+
headers: headers,
|
128
|
+
}), getConfig = _j.get, configResponse = _j.response, configError = _j.error;
|
129
|
+
var _k = use_http_1.default(env_1.env("REACT_APP_MARS_API_HOST") + "/v1/users/me", {
|
130
|
+
cachePolicy: use_http_1.CachePolicies.NO_CACHE,
|
131
|
+
headers: headers,
|
132
|
+
}), getHermesUser = _k.get, hermesResponse = _k.response, hermesError = _k.error;
|
133
|
+
var _l = use_http_1.default(env_1.env("REACT_APP_MARS_API_HOST") + "/v1/merchants", {
|
134
|
+
cachePolicy: use_http_1.CachePolicies.NO_CACHE,
|
135
|
+
headers: headers,
|
136
|
+
}), getOutletByID = _l.get, outletResponse = _l.response, outletError = _l.error;
|
137
|
+
var fetchConfig = function () { return __awaiter(void 0, void 0, void 0, function () {
|
138
|
+
var _authUser, requestError;
|
139
|
+
return __generator(this, function (_a) {
|
140
|
+
switch (_a.label) {
|
141
|
+
case 0: return [4 /*yield*/, getConfig()];
|
142
|
+
case 1:
|
143
|
+
_a.sent();
|
144
|
+
return [4 /*yield*/, getHermesUser()];
|
145
|
+
case 2:
|
146
|
+
_a.sent();
|
147
|
+
if (!(hermesResponse.ok && configResponse.ok && configResponse.data)) return [3 /*break*/, 4];
|
148
|
+
cookies_1.CookieConfig.userId = Number(configResponse === null || configResponse === void 0 ? void 0 : configResponse.data.user.id);
|
149
|
+
setConfig(configResponse.data);
|
150
|
+
_authUser = AuthUser_model_1.AuthUser.fromJSON(configResponse.data.user, hermesResponse.data.user);
|
151
|
+
setAuthUser(_authUser);
|
152
|
+
return [4 /*yield*/, getOutletByID(hermesResponse.data.user.merchant_id)];
|
153
|
+
case 3:
|
154
|
+
_a.sent();
|
155
|
+
if (outletResponse.ok && outletResponse.data) {
|
156
|
+
setDefaultOutlet(Outlet_model_1.Outlet.fromJSON(outletResponse.data));
|
157
|
+
}
|
158
|
+
else if (outletError) {
|
159
|
+
onAuthError === null || onAuthError === void 0 ? void 0 : onAuthError(outletError);
|
160
|
+
}
|
161
|
+
_a.label = 4;
|
162
|
+
case 4:
|
163
|
+
requestError = configError || hermesError;
|
164
|
+
if (requestError) {
|
165
|
+
onAuthError === null || onAuthError === void 0 ? void 0 : onAuthError(requestError);
|
166
|
+
}
|
167
|
+
return [2 /*return*/];
|
168
|
+
}
|
169
|
+
});
|
170
|
+
}); };
|
171
|
+
var isPermitted = function (access, actions) {
|
172
|
+
var userPermissions = authUser.permissions || {};
|
173
|
+
var actualKey = Object.keys(userPermissions).find(function (permission) {
|
174
|
+
return wildcardToRegEx_1.wildcardTest(permission, access);
|
175
|
+
});
|
176
|
+
return (!!actualKey &&
|
177
|
+
[]
|
178
|
+
.concat(actions)
|
179
|
+
.every(function (value) { return userPermissions[actualKey].includes(value); }));
|
180
|
+
};
|
181
|
+
var onPubSubEvent = function (data) {
|
182
|
+
setConfig(data.config);
|
183
|
+
setAuthUser(data.authUser);
|
184
|
+
setDefaultOutlet(data.outlet);
|
185
|
+
};
|
186
|
+
react_1.useEffect(function () {
|
187
|
+
var _a, _b;
|
188
|
+
if (!asMicroApp)
|
189
|
+
return;
|
190
|
+
(_a = window.$pubsubSubscribe) === null || _a === void 0 ? void 0 : _a.call(window, PubsubEvents_1.AUTH_MF, onPubSubEvent);
|
191
|
+
setAuthorized(true);
|
192
|
+
setInitialLoading(false);
|
193
|
+
(_b = window.$pubsubPublish) === null || _b === void 0 ? void 0 : _b.call(window, PubsubEvents_1.AUTH_PF, { hasSubscribed: true });
|
194
|
+
return function () {
|
195
|
+
var _a;
|
196
|
+
(_a = window.$pubsubUnsubscribe) === null || _a === void 0 ? void 0 : _a.call(window, PubsubEvents_1.AUTH_MF, onPubSubEvent);
|
197
|
+
};
|
198
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
199
|
+
}, []);
|
200
|
+
useMount_1.default(function () { return __awaiter(void 0, void 0, void 0, function () {
|
201
|
+
var params, newParams;
|
202
|
+
return __generator(this, function (_a) {
|
203
|
+
switch (_a.label) {
|
204
|
+
case 0:
|
205
|
+
if (asMicroApp)
|
206
|
+
return [2 /*return*/];
|
207
|
+
setAccessTokenCookie(token);
|
208
|
+
if (accessTokenFromQuery) {
|
209
|
+
params = __assign(__assign({}, queryParams), { access_token: undefined, token: undefined });
|
210
|
+
newParams = query_string_1.default.stringify(params);
|
211
|
+
// const routePrefix = env("REACT_APP_ROUTE_PREFIX")
|
212
|
+
replace(resolveUrl(location.pathname + "?" + newParams));
|
213
|
+
}
|
214
|
+
return [4 /*yield*/, fetchConfig()];
|
215
|
+
case 1:
|
216
|
+
_a.sent();
|
217
|
+
setAuthorized(configResponse.status !== 401);
|
218
|
+
setInitialLoading(false);
|
219
|
+
return [2 /*return*/];
|
220
|
+
}
|
221
|
+
});
|
222
|
+
}); });
|
223
|
+
if (initialLoading) {
|
224
|
+
return react_1.default.createElement(LoadingModule_1.LoadingModule, null);
|
225
|
+
}
|
226
|
+
if (!authorized) {
|
227
|
+
return authErrorScreen !== null && authErrorScreen !== void 0 ? authErrorScreen : react_1.default.createElement("p", null, "Unauthorized");
|
228
|
+
}
|
229
|
+
var context = {
|
230
|
+
accessToken: token,
|
231
|
+
config: config,
|
232
|
+
authUser: authUser,
|
233
|
+
defaultOutlet: defaultOutlet,
|
234
|
+
refreshConfig: fetchConfig,
|
235
|
+
isPermitted: isPermitted,
|
236
|
+
};
|
237
|
+
return (react_1.default.createElement(use_http_1.Provider, { options: { headers: headers } },
|
238
|
+
react_1.default.createElement(exports.AuthContext.Provider, __assign({}, others, { value: context }))));
|
239
|
+
};
|
@@ -0,0 +1,117 @@
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
14
|
+
if (k2 === undefined) k2 = k;
|
15
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
16
|
+
}) : (function(o, m, k, k2) {
|
17
|
+
if (k2 === undefined) k2 = k;
|
18
|
+
o[k2] = m[k];
|
19
|
+
}));
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
22
|
+
}) : function(o, v) {
|
23
|
+
o["default"] = v;
|
24
|
+
});
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
26
|
+
if (mod && mod.__esModule) return mod;
|
27
|
+
var result = {};
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
29
|
+
__setModuleDefault(result, mod);
|
30
|
+
return result;
|
31
|
+
};
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
33
|
+
exports.ClevertapProvider = exports.useClevertap = void 0;
|
34
|
+
var react_1 = __importStar(require("react"));
|
35
|
+
var Auth_provider_1 = require("./Auth.provider");
|
36
|
+
var logger_1 = require("../helpers/logger");
|
37
|
+
var jsCtEventPusher = function (event, properties) {
|
38
|
+
clevertap.event.push(event, properties);
|
39
|
+
};
|
40
|
+
var androidCtEventPusher = function (event, properties) {
|
41
|
+
// Android JS Interface expect properties in stringify json
|
42
|
+
AndroidClevertap.ctInstance().pushEvent(event, JSON.stringify(properties));
|
43
|
+
};
|
44
|
+
window.clevertap = {
|
45
|
+
event: [],
|
46
|
+
profile: [],
|
47
|
+
account: [],
|
48
|
+
onUserLogin: [],
|
49
|
+
notifications: [],
|
50
|
+
privacy: [{ optOut: false }, { useIP: false }],
|
51
|
+
};
|
52
|
+
var androidCtPresent = window.AndroidClevertap !== undefined &&
|
53
|
+
typeof window.AndroidClevertap.ctInstance === "function";
|
54
|
+
var activeCtPusher = androidCtPresent
|
55
|
+
? androidCtEventPusher
|
56
|
+
: jsCtEventPusher;
|
57
|
+
var ClevertapContext = react_1.createContext({
|
58
|
+
sendCtEvent: function () { },
|
59
|
+
});
|
60
|
+
exports.useClevertap = function () { return react_1.useContext(ClevertapContext); };
|
61
|
+
// State of CT script so it's only loaded once in the browser
|
62
|
+
var clevertapLoaded = false;
|
63
|
+
exports.ClevertapProvider = function (_a) {
|
64
|
+
var _b;
|
65
|
+
var apiKey = _a.apiKey, children = _a.children, _c = _a.appType, appType = _c === void 0 ? "POS" : _c, pristine = _a.pristine;
|
66
|
+
var _d = Auth_provider_1.useAuth(), authUser = _d.authUser, config = _d.config;
|
67
|
+
var commonProperties = pristine
|
68
|
+
? {}
|
69
|
+
: {
|
70
|
+
AppType: appType,
|
71
|
+
Country: authUser.country,
|
72
|
+
SaudagarId: config.merchants[0].saudagar_id,
|
73
|
+
UserId: (_b = authUser.id) === null || _b === void 0 ? void 0 : _b.toString(),
|
74
|
+
UserPhone: authUser.phone,
|
75
|
+
};
|
76
|
+
react_1.useEffect(function () {
|
77
|
+
if (clevertapLoaded) {
|
78
|
+
// Only load and initialise CT once
|
79
|
+
return;
|
80
|
+
}
|
81
|
+
clevertapLoaded = true;
|
82
|
+
// Only initiate if there is no Clevertap Instance from Android
|
83
|
+
if (!androidCtPresent) {
|
84
|
+
(function () {
|
85
|
+
var wzrk = document.createElement("script");
|
86
|
+
wzrk.type = "text/javascript";
|
87
|
+
wzrk.async = true;
|
88
|
+
wzrk.src =
|
89
|
+
("https:" === document.location.protocol
|
90
|
+
? "https://d2r1yp2w7bby2u.cloudfront.net"
|
91
|
+
: "http://static.clevertap.com") + "/js/a.js";
|
92
|
+
var s = document.getElementsByTagName("script")[0];
|
93
|
+
s.parentNode.insertBefore(wzrk, s);
|
94
|
+
})();
|
95
|
+
// Initialise CT API and CT user
|
96
|
+
clevertap.account.push({ id: apiKey });
|
97
|
+
!pristine &&
|
98
|
+
clevertap.profile.push({
|
99
|
+
Site: {
|
100
|
+
Identity: authUser.id,
|
101
|
+
},
|
102
|
+
});
|
103
|
+
}
|
104
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
105
|
+
}, []);
|
106
|
+
var context = {
|
107
|
+
sendCtEvent: function (event, properties) {
|
108
|
+
if (properties === void 0) { properties = {}; }
|
109
|
+
if (!apiKey) {
|
110
|
+
return logger_1.Logger.warn("This module does not have a Clevertap API set up");
|
111
|
+
}
|
112
|
+
var combinedProperties = __assign(__assign({}, commonProperties), properties);
|
113
|
+
activeCtPusher === null || activeCtPusher === void 0 ? void 0 : activeCtPusher(event, combinedProperties);
|
114
|
+
},
|
115
|
+
};
|
116
|
+
return (react_1.default.createElement(ClevertapContext.Provider, { value: context }, children));
|
117
|
+
};
|
@@ -0,0 +1,113 @@
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
11
|
+
}) : function(o, v) {
|
12
|
+
o["default"] = v;
|
13
|
+
});
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
15
|
+
if (mod && mod.__esModule) return mod;
|
16
|
+
var result = {};
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
18
|
+
__setModuleDefault(result, mod);
|
19
|
+
return result;
|
20
|
+
};
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
22
|
+
exports.GoogleAnalyticsProvider = exports.useGoogleAnalytics = exports.GoogleAnalyticsContext = exports.sendToGoogleAnalytics = void 0;
|
23
|
+
var react_1 = __importStar(require("react"));
|
24
|
+
var react_router_dom_1 = require("react-router-dom");
|
25
|
+
var ReactGA = __importStar(require("react-ga"));
|
26
|
+
var web_vitals_1 = require("web-vitals");
|
27
|
+
var logger_1 = require("../helpers/logger");
|
28
|
+
exports.sendToGoogleAnalytics = function (_a) {
|
29
|
+
var name = _a.name, delta = _a.delta, id = _a.id;
|
30
|
+
ReactGA.event({
|
31
|
+
category: "Web Vitals",
|
32
|
+
action: name,
|
33
|
+
label: id,
|
34
|
+
value: Math.round(name === "CLS" ? delta * 1000 : delta),
|
35
|
+
nonInteraction: true,
|
36
|
+
transport: "beacon",
|
37
|
+
});
|
38
|
+
};
|
39
|
+
exports.GoogleAnalyticsContext = react_1.createContext({
|
40
|
+
gaKey: "",
|
41
|
+
dimensions: {},
|
42
|
+
sendEvent: function () { },
|
43
|
+
sendCustomEvent: function () { },
|
44
|
+
overrideCategory: function () { },
|
45
|
+
});
|
46
|
+
exports.useGoogleAnalytics = function () { return react_1.useContext(exports.GoogleAnalyticsContext); };
|
47
|
+
exports.GoogleAnalyticsProvider = function (props) {
|
48
|
+
var _a = react_router_dom_1.useHistory(), location = _a.location, listen = _a.listen;
|
49
|
+
var parentContext = exports.useGoogleAnalytics();
|
50
|
+
var _b = props.gaKey, gaKey = _b === void 0 ? parentContext.gaKey : _b, _category = props.category, _c = props.trackPages, trackPages = _c === void 0 ? parentContext.trackPages : _c, _d = props.dimensions, dimensions = _d === void 0 ? parentContext.dimensions : _d, _e = props.sendWebVitals, sendWebVitals = _e === void 0 ? parentContext.sendWebVitals : _e, children = props.children;
|
51
|
+
var _f = react_1.useState(_category), category = _f[0], setCategory = _f[1];
|
52
|
+
var _g = react_1.useState(false), initiated = _g[0], setInitiated = _g[1];
|
53
|
+
react_1.useEffect(function () {
|
54
|
+
if (gaKey) {
|
55
|
+
ReactGA.initialize(gaKey);
|
56
|
+
if (typeof dimensions === "object" && Object.keys(dimensions).length) {
|
57
|
+
ReactGA.set(dimensions);
|
58
|
+
}
|
59
|
+
if (trackPages) {
|
60
|
+
ReactGA.pageview(location.pathname);
|
61
|
+
}
|
62
|
+
if (sendWebVitals) {
|
63
|
+
web_vitals_1.getCLS(exports.sendToGoogleAnalytics);
|
64
|
+
web_vitals_1.getFID(exports.sendToGoogleAnalytics);
|
65
|
+
web_vitals_1.getLCP(exports.sendToGoogleAnalytics);
|
66
|
+
}
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
logger_1.Logger.warn("Google Analytics key is missing, so it will be disabled");
|
70
|
+
}
|
71
|
+
setInitiated(true);
|
72
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
73
|
+
}, []);
|
74
|
+
var onLocationChange = function (location) {
|
75
|
+
var page = location.pathname;
|
76
|
+
var track = gaKey && initiated && trackPages;
|
77
|
+
if (track) {
|
78
|
+
ReactGA.set({ page: page });
|
79
|
+
ReactGA.pageview(page);
|
80
|
+
}
|
81
|
+
};
|
82
|
+
react_1.useEffect(function () {
|
83
|
+
return listen(onLocationChange);
|
84
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
85
|
+
}, [location.pathname, initiated]);
|
86
|
+
if (!initiated) {
|
87
|
+
return null;
|
88
|
+
}
|
89
|
+
var context = {
|
90
|
+
gaKey: gaKey,
|
91
|
+
category: category,
|
92
|
+
trackPages: trackPages,
|
93
|
+
dimensions: dimensions,
|
94
|
+
sendEvent: function (action, label) {
|
95
|
+
if (label === void 0) { label = ""; }
|
96
|
+
ReactGA.event({
|
97
|
+
category: category,
|
98
|
+
action: action,
|
99
|
+
label: label,
|
100
|
+
});
|
101
|
+
},
|
102
|
+
sendCustomEvent: function (category, action, label) {
|
103
|
+
if (label === void 0) { label = ""; }
|
104
|
+
ReactGA.event({
|
105
|
+
category: category,
|
106
|
+
action: action,
|
107
|
+
label: label,
|
108
|
+
});
|
109
|
+
},
|
110
|
+
overrideCategory: function (category) { return setCategory(category); },
|
111
|
+
};
|
112
|
+
return (react_1.default.createElement(exports.GoogleAnalyticsContext.Provider, { value: context }, children));
|
113
|
+
};
|
@@ -0,0 +1,71 @@
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
14
|
+
if (k2 === undefined) k2 = k;
|
15
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
16
|
+
}) : (function(o, m, k, k2) {
|
17
|
+
if (k2 === undefined) k2 = k;
|
18
|
+
o[k2] = m[k];
|
19
|
+
}));
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
22
|
+
}) : function(o, v) {
|
23
|
+
o["default"] = v;
|
24
|
+
});
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
26
|
+
if (mod && mod.__esModule) return mod;
|
27
|
+
var result = {};
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
29
|
+
__setModuleDefault(result, mod);
|
30
|
+
return result;
|
31
|
+
};
|
32
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
33
|
+
var t = {};
|
34
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
35
|
+
t[p] = s[p];
|
36
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
37
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
38
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
39
|
+
t[p[i]] = s[p[i]];
|
40
|
+
}
|
41
|
+
return t;
|
42
|
+
};
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
44
|
+
exports.HostProvider = exports.useHost = exports.HostContext = void 0;
|
45
|
+
var react_1 = __importStar(require("react"));
|
46
|
+
var env_1 = require("../helpers/env");
|
47
|
+
var _1 = require(".");
|
48
|
+
exports.HostContext = react_1.createContext({});
|
49
|
+
exports.useHost = function () { return react_1.useContext(exports.HostContext); };
|
50
|
+
exports.HostProvider = function (props) {
|
51
|
+
var auth = _1.useAuth();
|
52
|
+
var _a = props.authUser, authUser = _a === void 0 ? auth.authUser : _a, other = __rest(props, ["authUser"]);
|
53
|
+
var country = authUser.country;
|
54
|
+
var getApiHost = function (countryCode) {
|
55
|
+
return countryCode.toLowerCase() === "id"
|
56
|
+
? env_1.env("REACT_APP_MARS_API_HOST")
|
57
|
+
: env_1.env("REACT_APP_GOBIZ_API_HOST");
|
58
|
+
};
|
59
|
+
// TODO: adjust host config by country if there is different config between id and vietnam
|
60
|
+
var getCosmoHost = function (countryCode) {
|
61
|
+
return countryCode.toLowerCase() === "id"
|
62
|
+
? env_1.env("REACT_APP_COSMO_HOST")
|
63
|
+
: env_1.env("REACT_APP_COSMO_HOST");
|
64
|
+
};
|
65
|
+
var contextValue = {
|
66
|
+
getApiHost: getApiHost,
|
67
|
+
cosmoHost: getCosmoHost(country),
|
68
|
+
apiHost: getApiHost(country),
|
69
|
+
};
|
70
|
+
return react_1.default.createElement(exports.HostContext.Provider, __assign({ value: contextValue }, other));
|
71
|
+
};
|
@@ -0,0 +1,127 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
4
|
+
return cooked;
|
5
|
+
};
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
7
|
+
__assign = Object.assign || function(t) {
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
9
|
+
s = arguments[i];
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
11
|
+
t[p] = s[p];
|
12
|
+
}
|
13
|
+
return t;
|
14
|
+
};
|
15
|
+
return __assign.apply(this, arguments);
|
16
|
+
};
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
18
|
+
if (k2 === undefined) k2 = k;
|
19
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
20
|
+
}) : (function(o, m, k, k2) {
|
21
|
+
if (k2 === undefined) k2 = k;
|
22
|
+
o[k2] = m[k];
|
23
|
+
}));
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
26
|
+
}) : function(o, v) {
|
27
|
+
o["default"] = v;
|
28
|
+
});
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
30
|
+
if (mod && mod.__esModule) return mod;
|
31
|
+
var result = {};
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
33
|
+
__setModuleDefault(result, mod);
|
34
|
+
return result;
|
35
|
+
};
|
36
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
37
|
+
var t = {};
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
39
|
+
t[p] = s[p];
|
40
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
41
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
43
|
+
t[p[i]] = s[p[i]];
|
44
|
+
}
|
45
|
+
return t;
|
46
|
+
};
|
47
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
48
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
49
|
+
};
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
51
|
+
exports.LanguageProvider = exports.useLanguage = exports.LanguageContext = exports.COUNTRY_TO_LANGUAGE = exports.LANGUAGE_LABEL = void 0;
|
52
|
+
var react_1 = __importStar(require("react"));
|
53
|
+
var moment_1 = __importDefault(require("moment"));
|
54
|
+
require("moment/locale/id");
|
55
|
+
require("moment/locale/vi");
|
56
|
+
var query_string_1 = __importDefault(require("query-string"));
|
57
|
+
var useCookie_1 = __importDefault(require("react-use/lib/useCookie"));
|
58
|
+
var styled_components_1 = require("styled-components");
|
59
|
+
var cookies_1 = require("../constants/cookies");
|
60
|
+
exports.LANGUAGE_LABEL = {
|
61
|
+
en: "English",
|
62
|
+
id: "Bahasa Indonesia",
|
63
|
+
vi: "Vietnamese",
|
64
|
+
};
|
65
|
+
exports.COUNTRY_TO_LANGUAGE = {
|
66
|
+
ID: ["id", "en"],
|
67
|
+
VN: ["vi", "en"],
|
68
|
+
};
|
69
|
+
exports.LanguageContext = react_1.createContext({});
|
70
|
+
exports.useLanguage = function () { return react_1.useContext(exports.LanguageContext); };
|
71
|
+
var flattenLanguage = Object.keys(exports.COUNTRY_TO_LANGUAGE)
|
72
|
+
.map(function (country) { return exports.COUNTRY_TO_LANGUAGE[country]; })
|
73
|
+
.flat();
|
74
|
+
var isValidLanguageCode = function (lang) {
|
75
|
+
return flattenLanguage.includes(lang);
|
76
|
+
};
|
77
|
+
var NotoSansStyle = styled_components_1.createGlobalStyle(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n * {\n font-family: \"Noto Sans\", sans-serif !important;\n }\n"], ["\n * {\n font-family: \"Noto Sans\", sans-serif !important;\n }\n"])));
|
78
|
+
exports.LanguageProvider = function (_a) {
|
79
|
+
var _b = _a.asMicroApp, asMicroApp = _b === void 0 ? false : _b, _c = _a.defaultLanguage, fallbackLanguage = _c === void 0 ? "en" : _c, others = __rest(_a, ["asMicroApp", "defaultLanguage"]);
|
80
|
+
var _d = useCookie_1.default(cookies_1.CookieNames.Language), languageCookie = _d[0], setLanguageCookie = _d[1];
|
81
|
+
var queryParams = query_string_1.default.parse(window.location.search);
|
82
|
+
var fromQueryOrCookie = (queryParams.language ||
|
83
|
+
languageCookie);
|
84
|
+
var defaultLanguage = isValidLanguageCode(fromQueryOrCookie)
|
85
|
+
? fromQueryOrCookie
|
86
|
+
: fallbackLanguage;
|
87
|
+
var _e = react_1.useState(defaultLanguage), language = _e[0], setLanguage = _e[1];
|
88
|
+
var _setLanguage = function (language) {
|
89
|
+
setLanguageCookie(language);
|
90
|
+
setLanguage(language);
|
91
|
+
};
|
92
|
+
var onPubSubEvent = function (data) {
|
93
|
+
if (isValidLanguageCode(data.language)) {
|
94
|
+
_setLanguage(data.language);
|
95
|
+
}
|
96
|
+
};
|
97
|
+
var getCountryLanguage = function (country) {
|
98
|
+
if (country === void 0) { country = "ID"; }
|
99
|
+
var languages = exports.COUNTRY_TO_LANGUAGE[country === null || country === void 0 ? void 0 : country.toUpperCase()];
|
100
|
+
return languages === null || languages === void 0 ? void 0 : languages.map(function (language) { return ({
|
101
|
+
value: language,
|
102
|
+
label: exports.LANGUAGE_LABEL[language],
|
103
|
+
}); });
|
104
|
+
};
|
105
|
+
react_1.useEffect(function () {
|
106
|
+
var _a;
|
107
|
+
if (asMicroApp) {
|
108
|
+
(_a = window.$pubsubSubscribe) === null || _a === void 0 ? void 0 : _a.call(window, "$__pubsub", onPubSubEvent);
|
109
|
+
return function () { var _a; return (_a = window.$pubsubUnsubscribe) === null || _a === void 0 ? void 0 : _a.call(window, "$__pubsub", onPubSubEvent); };
|
110
|
+
}
|
111
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
112
|
+
}, []);
|
113
|
+
react_1.useEffect(function () {
|
114
|
+
if (!!language)
|
115
|
+
moment_1.default.locale(language);
|
116
|
+
}, [language]);
|
117
|
+
var context = {
|
118
|
+
language: language,
|
119
|
+
setLanguage: _setLanguage,
|
120
|
+
languageLabel: exports.LANGUAGE_LABEL[language],
|
121
|
+
getCountryLanguage: getCountryLanguage,
|
122
|
+
};
|
123
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
124
|
+
language === "vi" && react_1.default.createElement(NotoSansStyle, null),
|
125
|
+
react_1.default.createElement(exports.LanguageContext.Provider, __assign({}, others, { value: context }))));
|
126
|
+
};
|
127
|
+
var templateObject_1;
|