@kameleoon/react-sdk 4.0.0 → 4.0.1

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 (160) hide show
  1. package/dist/Feature.d.ts +11 -0
  2. package/dist/Feature.js +26 -0
  3. package/dist/Feature.js.map +1 -0
  4. package/dist/KameleoonContext.d.ts +3 -0
  5. package/dist/KameleoonContext.js +6 -0
  6. package/dist/KameleoonContext.js.map +1 -0
  7. package/dist/KameleoonError.d.ts +5 -0
  8. package/dist/KameleoonError.js +31 -0
  9. package/dist/KameleoonError.js.map +1 -0
  10. package/dist/KameleoonProvider.d.ts +14 -0
  11. package/dist/KameleoonProvider.js +25 -0
  12. package/dist/KameleoonProvider.js.map +1 -0
  13. package/dist/ProviderError.d.ts +3 -0
  14. package/dist/ProviderError.js +29 -0
  15. package/dist/ProviderError.js.map +1 -0
  16. package/dist/compose.d.ts +8 -0
  17. package/dist/compose.js +58 -0
  18. package/dist/compose.js.map +1 -0
  19. package/dist/constants.d.ts +24 -0
  20. package/dist/constants.js +31 -0
  21. package/dist/constants.js.map +1 -0
  22. package/dist/getKameleoonException.d.ts +2 -0
  23. package/dist/getKameleoonException.js +34 -0
  24. package/dist/getKameleoonException.js.map +1 -0
  25. package/dist/index.d.ts +42 -0
  26. package/dist/index.js +106 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/kameleoonClient.d.ts +16 -0
  29. package/dist/kameleoonClient.js +17 -0
  30. package/dist/kameleoonClient.js.map +1 -0
  31. package/dist/stories/Form.d.ts +30 -0
  32. package/dist/stories/Form.js +215 -0
  33. package/dist/stories/Form.js.map +1 -0
  34. package/dist/stories/FormHOC.d.ts +2 -0
  35. package/dist/stories/FormHOC.js +41 -0
  36. package/dist/stories/FormHOC.js.map +1 -0
  37. package/dist/stories/FormHook.d.ts +2 -0
  38. package/dist/stories/FormHook.js +74 -0
  39. package/dist/stories/FormHook.js.map +1 -0
  40. package/dist/stories/FormRenderProps.d.ts +3 -0
  41. package/dist/stories/FormRenderProps.js +24 -0
  42. package/dist/stories/FormRenderProps.js.map +1 -0
  43. package/dist/stories/Radio.d.ts +8 -0
  44. package/dist/stories/Radio.js +9 -0
  45. package/dist/stories/Radio.js.map +1 -0
  46. package/dist/stories/constants.d.ts +16 -0
  47. package/dist/stories/constants.js +21 -0
  48. package/dist/stories/constants.js.map +1 -0
  49. package/dist/types.d.ts +37 -0
  50. package/dist/types.js +4 -0
  51. package/dist/types.js.map +1 -0
  52. package/dist/useActivateFeature.d.ts +14 -0
  53. package/dist/useActivateFeature.js +35 -0
  54. package/dist/useActivateFeature.js.map +1 -0
  55. package/dist/useAddData.d.ts +14 -0
  56. package/dist/useAddData.js +49 -0
  57. package/dist/useAddData.js.map +1 -0
  58. package/dist/useBrowser.d.ts +13 -0
  59. package/dist/useBrowser.js +22 -0
  60. package/dist/useBrowser.js.map +1 -0
  61. package/dist/useConversion.d.ts +14 -0
  62. package/dist/useConversion.js +18 -0
  63. package/dist/useConversion.js.map +1 -0
  64. package/dist/useCustomData.d.ts +13 -0
  65. package/dist/useCustomData.js +18 -0
  66. package/dist/useCustomData.js.map +1 -0
  67. package/dist/useDevice.d.ts +12 -0
  68. package/dist/useDevice.js +16 -0
  69. package/dist/useDevice.js.map +1 -0
  70. package/dist/useError.d.ts +7 -0
  71. package/dist/useError.js +34 -0
  72. package/dist/useError.js.map +1 -0
  73. package/dist/useErrors.d.ts +7 -0
  74. package/dist/useErrors.js +42 -0
  75. package/dist/useErrors.js.map +1 -0
  76. package/dist/useFeature.d.ts +5 -0
  77. package/dist/useFeature.js +104 -0
  78. package/dist/useFeature.js.map +1 -0
  79. package/dist/useFeatureVariable.d.ts +15 -0
  80. package/dist/useFeatureVariable.js +41 -0
  81. package/dist/useFeatureVariable.js.map +1 -0
  82. package/dist/useFlush.d.ts +11 -0
  83. package/dist/useFlush.js +19 -0
  84. package/dist/useFlush.js.map +1 -0
  85. package/dist/useKameleoon.d.ts +10 -0
  86. package/dist/useKameleoon.js +20 -0
  87. package/dist/useKameleoon.js.map +1 -0
  88. package/dist/usePageView.d.ts +14 -0
  89. package/dist/usePageView.js +18 -0
  90. package/dist/usePageView.js.map +1 -0
  91. package/dist/useRetrieveDataFromRemoteSource.d.ts +12 -0
  92. package/dist/useRetrieveDataFromRemoteSource.js +79 -0
  93. package/dist/useRetrieveDataFromRemoteSource.js.map +1 -0
  94. package/dist/useRunWhenReady.d.ts +14 -0
  95. package/dist/useRunWhenReady.js +23 -0
  96. package/dist/useRunWhenReady.js.map +1 -0
  97. package/dist/useTrackingConversion.d.ts +13 -0
  98. package/dist/useTrackingConversion.js +19 -0
  99. package/dist/useTrackingConversion.js.map +1 -0
  100. package/dist/useTriggerExperiment.d.ts +17 -0
  101. package/dist/useTriggerExperiment.js +32 -0
  102. package/dist/useTriggerExperiment.js.map +1 -0
  103. package/dist/useVariationAssociatedData.d.ts +16 -0
  104. package/dist/useVariationAssociatedData.js +30 -0
  105. package/dist/useVariationAssociatedData.js.map +1 -0
  106. package/dist/useVisitorCode.d.ts +12 -0
  107. package/dist/useVisitorCode.js +19 -0
  108. package/dist/useVisitorCode.js.map +1 -0
  109. package/dist/withActivateFeature.d.ts +17 -0
  110. package/dist/withActivateFeature.js +28 -0
  111. package/dist/withActivateFeature.js.map +1 -0
  112. package/dist/withAddData.d.ts +16 -0
  113. package/dist/withAddData.js +65 -0
  114. package/dist/withAddData.js.map +1 -0
  115. package/dist/withBrowser.d.ts +16 -0
  116. package/dist/withBrowser.js +35 -0
  117. package/dist/withBrowser.js.map +1 -0
  118. package/dist/withConversion.d.ts +17 -0
  119. package/dist/withConversion.js +31 -0
  120. package/dist/withConversion.js.map +1 -0
  121. package/dist/withCustomData.d.ts +16 -0
  122. package/dist/withCustomData.js +31 -0
  123. package/dist/withCustomData.js.map +1 -0
  124. package/dist/withDevice.d.ts +15 -0
  125. package/dist/withDevice.js +29 -0
  126. package/dist/withDevice.js.map +1 -0
  127. package/dist/withFeature.d.ts +6 -0
  128. package/dist/withFeature.js +31 -0
  129. package/dist/withFeature.js.map +1 -0
  130. package/dist/withFeatureVariable.d.ts +17 -0
  131. package/dist/withFeatureVariable.js +28 -0
  132. package/dist/withFeatureVariable.js.map +1 -0
  133. package/dist/withFlush.d.ts +14 -0
  134. package/dist/withFlush.js +36 -0
  135. package/dist/withFlush.js.map +1 -0
  136. package/dist/withKameleoon.d.ts +13 -0
  137. package/dist/withKameleoon.js +33 -0
  138. package/dist/withKameleoon.js.map +1 -0
  139. package/dist/withPageView.d.ts +17 -0
  140. package/dist/withPageView.js +31 -0
  141. package/dist/withPageView.js.map +1 -0
  142. package/dist/withRetrieveDataFromRemoteSource.d.ts +14 -0
  143. package/dist/withRetrieveDataFromRemoteSource.js +28 -0
  144. package/dist/withRetrieveDataFromRemoteSource.js.map +1 -0
  145. package/dist/withRunWhenReady.d.ts +16 -0
  146. package/dist/withRunWhenReady.js +28 -0
  147. package/dist/withRunWhenReady.js.map +1 -0
  148. package/dist/withTrackingConversion.d.ts +16 -0
  149. package/dist/withTrackingConversion.js +36 -0
  150. package/dist/withTrackingConversion.js.map +1 -0
  151. package/dist/withTriggerExperiment.d.ts +19 -0
  152. package/dist/withTriggerExperiment.js +30 -0
  153. package/dist/withTriggerExperiment.js.map +1 -0
  154. package/dist/withVariationAssociatedData.d.ts +18 -0
  155. package/dist/withVariationAssociatedData.js +30 -0
  156. package/dist/withVariationAssociatedData.js.map +1 -0
  157. package/dist/withVisitorCode.d.ts +15 -0
  158. package/dist/withVisitorCode.js +36 -0
  159. package/dist/withVisitorCode.js.map +1 -0
  160. package/package.json +1 -1
@@ -0,0 +1,215 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __read = (this && this.__read) || function (o, n) {
50
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
51
+ if (!m) return o;
52
+ var i = m.call(o), r, ar = [], e;
53
+ try {
54
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55
+ }
56
+ catch (error) { e = { error: error }; }
57
+ finally {
58
+ try {
59
+ if (r && !r.done && (m = i["return"])) m.call(i);
60
+ }
61
+ finally { if (e) throw e.error; }
62
+ }
63
+ return ar;
64
+ };
65
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
66
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
67
+ if (ar || !(i in from)) {
68
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
69
+ ar[i] = from[i];
70
+ }
71
+ }
72
+ return to.concat(ar || Array.prototype.slice.call(from));
73
+ };
74
+ var __importDefault = (this && this.__importDefault) || function (mod) {
75
+ return (mod && mod.__esModule) ? mod : { "default": mod };
76
+ };
77
+ Object.defineProperty(exports, "__esModule", { value: true });
78
+ var jsx_runtime_1 = require("react/jsx-runtime");
79
+ var react_1 = require("react");
80
+ var Radio_1 = __importDefault(require("./Radio"));
81
+ var constants_1 = require("./constants");
82
+ var constants_2 = require("../constants");
83
+ var __1 = require("..");
84
+ var KameleoonError_1 = require("../KameleoonError");
85
+ var useErrors_1 = require("../useErrors");
86
+ function Form(_a) {
87
+ var _this = this;
88
+ var _b, _c, _d, _e, _f;
89
+ var variationAssociatedDataError = _a.variationAssociatedDataError, triggerExperimentError = _a.triggerExperimentError, activateFeatureError = _a.activateFeatureError, featureErrors = _a.featureErrors, client = _a.client, feature = _a.feature, isRenderProps = _a.isRenderProps, getVisitorCode = _a.getVisitorCode, hasFeature = _a.hasFeature, addData = _a.addData, addBrowser = _a.addBrowser, addPageView = _a.addPageView, addDevice = _a.addDevice, addConversion = _a.addConversion, getVariationAssociatedData = _a.getVariationAssociatedData, retrieveDataFromRemoteSource = _a.retrieveDataFromRemoteSource, getVariationId = _a.getVariationId, runWhenReady = _a.runWhenReady;
90
+ var _g = __read((0, react_1.useState)(''), 2), visitorCode = _g[0], setVisitorCode = _g[1];
91
+ var _h = __read((0, react_1.useState)(false), 2), featureFlag = _h[0], setFeatureFlag = _h[1];
92
+ var _j = __read((0, react_1.useState)([]), 2), featureVariables = _j[0], setFeatureVariables = _j[1];
93
+ var _k = __read((0, react_1.useState)([]), 2), customData = _k[0], setCustomData = _k[1];
94
+ var _l = __read((0, react_1.useState)(), 2), variationId = _l[0], setVariationId = _l[1];
95
+ var _m = __read((0, react_1.useState)(), 2), variationData = _m[0], setVariationData = _m[1];
96
+ var _o = __read((0, react_1.useState)(null), 2), remoteSourceData = _o[0], setRemoteSourceData = _o[1];
97
+ var _p = (0, useErrors_1.useErrors)(), errors = _p.errors, setErrors = _p.setErrors;
98
+ function displayCustomData() {
99
+ var kameleoonConfig = localStorage.getItem(constants_2.KAMELEOON_SDK_LOCAL_STORAGE_KEY);
100
+ if (kameleoonConfig && visitorCode) {
101
+ var data = JSON.parse(kameleoonConfig).kameleoonTargetingData[visitorCode];
102
+ setCustomData(data);
103
+ }
104
+ }
105
+ function handleAddBrowser(event) {
106
+ event.preventDefault();
107
+ if (visitorCode && addBrowser && addData) {
108
+ addData(visitorCode, addBrowser(__1.Browser.Chrome));
109
+ displayCustomData();
110
+ }
111
+ }
112
+ function handleAddPageView(event) {
113
+ event.preventDefault();
114
+ if (visitorCode && addData && addPageView) {
115
+ addData(visitorCode, addPageView(constants_1.KAMELEOON_URL, 'Page View'));
116
+ displayCustomData();
117
+ }
118
+ }
119
+ function handleAddDevice(event) {
120
+ event.preventDefault();
121
+ if (visitorCode && addData && addDevice) {
122
+ addData(visitorCode, addDevice(__1.DeviceType.Desktop));
123
+ displayCustomData();
124
+ }
125
+ }
126
+ function handleAddConversion(event) {
127
+ event.preventDefault();
128
+ if (visitorCode && addData && addConversion) {
129
+ addData(visitorCode, addConversion(constants_1.KAMELEOON_GOAL_ID));
130
+ displayCustomData();
131
+ }
132
+ }
133
+ var processRetrievedData = (0, react_1.useCallback)(function () { return __awaiter(_this, void 0, void 0, function () {
134
+ var _a, data, error;
135
+ return __generator(this, function (_b) {
136
+ switch (_b.label) {
137
+ case 0:
138
+ if (!retrieveDataFromRemoteSource) return [3 /*break*/, 2];
139
+ return [4 /*yield*/, retrieveDataFromRemoteSource(constants_1.KAMELEOON_VISITOR_KEY)];
140
+ case 1:
141
+ _a = _b.sent(), data = _a.data, error = _a.error;
142
+ if (data) {
143
+ setRemoteSourceData(data);
144
+ }
145
+ if (error) {
146
+ throw new KameleoonError_1.KameleoonError(error.type);
147
+ }
148
+ _b.label = 2;
149
+ case 2: return [2 /*return*/];
150
+ }
151
+ });
152
+ }); }, [retrieveDataFromRemoteSource]);
153
+ var getVariationSuccessCallback = (0, react_1.useCallback)(function () {
154
+ if (!isRenderProps && getVariationId) {
155
+ setVariationId(getVariationId(constants_1.USER_ID, constants_1.EXPERIMENT_ID));
156
+ }
157
+ }, [getVariationId, isRenderProps]);
158
+ var getVariationErrorCallback = (0, react_1.useCallback)(function () {
159
+ throw new Error("Couldn't get server configuration from HTTP request in a specified time");
160
+ }, []);
161
+ (0, react_1.useEffect)(function () {
162
+ if (runWhenReady) {
163
+ runWhenReady(getVariationSuccessCallback, getVariationErrorCallback, 1000);
164
+ }
165
+ }, [
166
+ getVariationErrorCallback,
167
+ getVariationId,
168
+ getVariationSuccessCallback,
169
+ isRenderProps,
170
+ runWhenReady,
171
+ ]);
172
+ (0, react_1.useEffect)(function () {
173
+ if (variationId && getVariationAssociatedData) {
174
+ setVariationData(getVariationAssociatedData(variationId));
175
+ }
176
+ }, [getVariationAssociatedData, variationId]);
177
+ (0, react_1.useEffect)(function () {
178
+ if (getVisitorCode) {
179
+ setVisitorCode(getVisitorCode(constants_1.KAMELEOON_URL));
180
+ }
181
+ }, [getVisitorCode]);
182
+ (0, react_1.useEffect)(function () {
183
+ if (hasFeature) {
184
+ setFeatureFlag(hasFeature(constants_1.FEATURE_KEY, constants_1.USER_ID));
185
+ }
186
+ }, [hasFeature]);
187
+ (0, react_1.useEffect)(function () {
188
+ if (feature.variables) {
189
+ setFeatureVariables(feature.variables);
190
+ }
191
+ }, [feature, isRenderProps]);
192
+ (0, react_1.useEffect)(function () {
193
+ processRetrievedData();
194
+ }, [processRetrievedData]);
195
+ (0, react_1.useEffect)(function () {
196
+ var newErrors = __spreadArray([
197
+ activateFeatureError === null || activateFeatureError === void 0 ? void 0 : activateFeatureError.type,
198
+ triggerExperimentError === null || triggerExperimentError === void 0 ? void 0 : triggerExperimentError.type,
199
+ variationAssociatedDataError === null || variationAssociatedDataError === void 0 ? void 0 : variationAssociatedDataError.type
200
+ ], __read(featureErrors), false);
201
+ setErrors(newErrors);
202
+ }, [
203
+ activateFeatureError,
204
+ featureErrors,
205
+ setErrors,
206
+ triggerExperimentError,
207
+ variationAssociatedDataError,
208
+ ]);
209
+ return ((0, jsx_runtime_1.jsxs)("form", { children: [(0, jsx_runtime_1.jsx)("h1", { children: "Feature flag activation test" }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Always active", isActive: true }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active only when feature flag is on", isActive: isRenderProps ? feature.isActive : featureFlag }, void 0), !isRenderProps && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active only when kameleoon client is connected", isActive: Boolean(client) }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active only when visitor code is present", isActive: Boolean(visitorCode) }, void 0)] }, void 0)), (0, jsx_runtime_1.jsx)("h1", { children: "Feature flag variables test" }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active when string variable is present", isActive: Boolean((_b = featureVariables[0]) === null || _b === void 0 ? void 0 : _b[constants_1.FeatureVariables.STRING]) }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active when boolean variable is present", isActive: Boolean((_c = featureVariables[1]) === null || _c === void 0 ? void 0 : _c[constants_1.FeatureVariables.BOOLEAN]) }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active when number variable is present", isActive: Boolean((_d = featureVariables[2]) === null || _d === void 0 ? void 0 : _d[constants_1.FeatureVariables.NUMBER]) }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active when JSON variable is present", isActive: Boolean((_e = featureVariables[3]) === null || _e === void 0 ? void 0 : _e[constants_1.FeatureVariables.JSON]) }, void 0), (0, jsx_runtime_1.jsx)("h1", { children: "Multi Environment test" }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active only when client environment option is set to value different from the default 'production' (variables above will become inactive), make sure to disable other stories and clear local storage, as for now client is not capable of handling several environments simultaneously", isActive: Boolean((_f = featureVariables[0]) === null || _f === void 0 ? void 0 : _f[constants_1.FeatureVariables.MULTI_ENVIRONMENT]) }, void 0), !isRenderProps && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h1", { children: "Remote Source Data test" }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active when data from the remote was received and it's not empty", isActive: Boolean(remoteSourceData) }, void 0)] }, void 0)), !isRenderProps && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("h1", { children: "Feature flag associated variation test" }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active when experiment is triggered", isActive: Boolean(variationId) }, void 0), (0, jsx_runtime_1.jsx)(Radio_1.default, { title: "Active when variationData is present", isActive: Boolean(variationData) }, void 0), (0, jsx_runtime_1.jsx)("h1", { children: "Feature flag custom data test" }, void 0), (0, jsx_runtime_1.jsx)("br", {}, void 0), (0, jsx_runtime_1.jsx)("button", __assign({ type: "button", onClick: handleAddBrowser }, { children: "Add browser data" }), void 0), (0, jsx_runtime_1.jsx)("button", __assign({ type: "button", onClick: handleAddPageView }, { children: "Add page view data" }), void 0), (0, jsx_runtime_1.jsx)("button", __assign({ type: "button", onClick: handleAddDevice }, { children: "Add device data" }), void 0), (0, jsx_runtime_1.jsx)("button", __assign({ type: "button", onClick: handleAddConversion }, { children: "Add conversion data" }), void 0), (0, jsx_runtime_1.jsx)("p", { children: "Custom data:" }, void 0), customData.map(function (item, index) {
210
+ // eslint-disable-next-line react/no-array-index-key
211
+ return (0, jsx_runtime_1.jsx)("p", { children: JSON.stringify(item.data) }, index);
212
+ })] }, void 0)), (0, jsx_runtime_1.jsx)("h1", { children: "Errors test" }, void 0), Boolean(errors === null || errors === void 0 ? void 0 : errors.length) && ((0, jsx_runtime_1.jsx)("ul", { children: errors === null || errors === void 0 ? void 0 : errors.map(function (error) { return ((0, jsx_runtime_1.jsx)("li", { children: error }, error)); }) }, void 0))] }, void 0));
213
+ }
214
+ exports.default = (0, react_1.memo)(Form);
215
+ //# sourceMappingURL=Form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.js","sourceRoot":"","sources":["../../src/stories/Form.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAsE;AAUtE,kDAA4B;AAC5B,yCAQqB;AACrB,0CAGsB;AACtB,wBAOY;AACZ,oDAAmD;AACnD,0CAAyC;AAsCzC,SAAS,IAAI,CAAC,EAmBD;IAnBb,iBAuQC;;QAtQC,4BAA4B,kCAAA,EAC5B,sBAAsB,4BAAA,EACtB,oBAAoB,0BAAA,EACpB,aAAa,mBAAA,EACb,MAAM,YAAA,EACN,OAAO,aAAA,EACP,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,UAAU,gBAAA,EACV,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,aAAa,mBAAA,EACb,0BAA0B,gCAAA,EAC1B,4BAA4B,kCAAA,EAC5B,cAAc,oBAAA,EACd,YAAY,kBAAA;IAEN,IAAA,KAAA,OAAgC,IAAA,gBAAQ,EAAS,EAAE,CAAC,IAAA,EAAnD,WAAW,QAAA,EAAE,cAAc,QAAwB,CAAC;IACrD,IAAA,KAAA,OAAgC,IAAA,gBAAQ,EAAU,KAAK,CAAC,IAAA,EAAvD,WAAW,QAAA,EAAE,cAAc,QAA4B,CAAC;IACzD,IAAA,KAAA,OAA0C,IAAA,gBAAQ,EAEtD,EAAE,CAAC,IAAA,EAFE,gBAAgB,QAAA,EAAE,mBAAmB,QAEvC,CAAC;IACA,IAAA,KAAA,OAA8B,IAAA,gBAAQ,EAA4B,EAAE,CAAC,IAAA,EAApE,UAAU,QAAA,EAAE,aAAa,QAA2C,CAAC;IACtE,IAAA,KAAA,OAAgC,IAAA,gBAAQ,GAAU,IAAA,EAAjD,WAAW,QAAA,EAAE,cAAc,QAAsB,CAAC;IACnD,IAAA,KAAA,OACJ,IAAA,gBAAQ,GAA+B,IAAA,EADlC,aAAa,QAAA,EAAE,gBAAgB,QACG,CAAC;IACpC,IAAA,KAAA,OACJ,IAAA,gBAAQ,EAA8B,IAAI,CAAC,IAAA,EADtC,gBAAgB,QAAA,EAAE,mBAAmB,QACC,CAAC;IACxC,IAAA,KAAwB,IAAA,qBAAS,GAAE,EAAjC,MAAM,YAAA,EAAE,SAAS,eAAgB,CAAC;IAE1C,SAAS,iBAAiB;QACxB,IAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAC1C,2CAA+B,CAChC,CAAC;QAEF,IAAI,eAAe,IAAI,WAAW,EAAE;YAClC,IAAM,IAAI,GACR,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAClE,aAAa,CAAC,IAAI,CAAC,CAAC;SACrB;IACH,CAAC;IAED,SAAS,gBAAgB,CAAC,KAAuB;QAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,WAAW,IAAI,UAAU,IAAI,OAAO,EAAE;YACxC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,WAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACjD,iBAAiB,EAAE,CAAC;SACrB;IACH,CAAC;IAED,SAAS,iBAAiB,CAAC,KAAuB;QAChD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,EAAE;YACzC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,yBAAa,EAAE,WAAW,CAAC,CAAC,CAAC;YAC9D,iBAAiB,EAAE,CAAC;SACrB;IACH,CAAC;IAED,SAAS,eAAe,CAAC,KAAuB;QAC9C,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,WAAW,IAAI,OAAO,IAAI,SAAS,EAAE;YACvC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,cAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YACpD,iBAAiB,EAAE,CAAC;SACrB;IACH,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAuB;QAClD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,WAAW,IAAI,OAAO,IAAI,aAAa,EAAE;YAC3C,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,6BAAiB,CAAC,CAAC,CAAC;YACvD,iBAAiB,EAAE,CAAC;SACrB;IACH,CAAC;IAED,IAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC;;;;;yBACnC,4BAA4B,EAA5B,wBAA4B;oBACN,qBAAM,4BAA4B,CACxD,iCAAqB,CACtB,EAAA;;oBAFK,KAAkB,SAEvB,EAFO,IAAI,UAAA,EAAE,KAAK,WAAA;oBAInB,IAAI,IAAI,EAAE;wBACR,mBAAmB,CAAC,IAAI,CAAC,CAAC;qBAC3B;oBAED,IAAI,KAAK,EAAE;wBACT,MAAM,IAAI,+BAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBACtC;;;;;SAEJ,EAAE,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEnC,IAAM,2BAA2B,GAAG,IAAA,mBAAW,EAAC;QAC9C,IAAI,CAAC,aAAa,IAAI,cAAc,EAAE;YACpC,cAAc,CAAC,cAAc,CAAC,mBAAO,EAAE,yBAAa,CAAC,CAAC,CAAC;SACxD;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAEpC,IAAM,yBAAyB,GAAG,IAAA,mBAAW,EAAC;QAC5C,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAA,iBAAS,EAAC;QACR,IAAI,YAAY,EAAE;YAChB,YAAY,CACV,2BAA2B,EAC3B,yBAAyB,EACzB,IAAI,CACL,CAAC;SACH;IACH,CAAC,EAAE;QACD,yBAAyB;QACzB,cAAc;QACd,2BAA2B;QAC3B,aAAa;QACb,YAAY;KACb,CAAC,CAAC;IAEH,IAAA,iBAAS,EAAC;QACR,IAAI,WAAW,IAAI,0BAA0B,EAAE;YAC7C,gBAAgB,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC,EAAE,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9C,IAAA,iBAAS,EAAC;QACR,IAAI,cAAc,EAAE;YAClB,cAAc,CAAC,cAAc,CAAC,yBAAa,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,IAAA,iBAAS,EAAC;QACR,IAAI,UAAU,EAAE;YACd,cAAc,CAAC,UAAU,CAAC,uBAAW,EAAE,mBAAO,CAAC,CAAC,CAAC;SAClD;IACH,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,IAAA,iBAAS,EAAC;QACR,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACxC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAE7B,IAAA,iBAAS,EAAC;QACR,oBAAoB,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,IAAA,iBAAS,EAAC;QACR,IAAM,SAAS;YACb,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,IAAI;YAC1B,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI;YAC5B,4BAA4B,aAA5B,4BAA4B,uBAA5B,4BAA4B,CAAE,IAAI;kBAC/B,aAAa,SACjB,CAAC;QAEF,SAAS,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC,EAAE;QACD,oBAAoB;QACpB,aAAa;QACb,SAAS;QACT,sBAAsB;QACtB,4BAA4B;KAC7B,CAAC,CAAC;IAEH,OAAO,CACL,6CACE,kFAAqC,EACrC,uBAAC,eAAK,IAAC,KAAK,EAAC,eAAe,EAAC,QAAQ,iBAAG,EACxC,uBAAC,eAAK,IACJ,KAAK,EAAC,qCAAqC,EAC3C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,WACxD,EACD,CAAC,aAAa,IAAI,CACjB,6DACE,uBAAC,eAAK,IACJ,KAAK,EAAC,gDAAgD,EACtD,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,WACzB,EACF,uBAAC,eAAK,IACJ,KAAK,EAAC,0CAA0C,EAChD,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,WAC9B,YACD,CACJ,EAED,iFAAoC,EACpC,uBAAC,eAAK,IACJ,KAAK,EAAC,wCAAwC,EAC9C,QAAQ,EAAE,OAAO,CAAC,MAAA,gBAAgB,CAAC,CAAC,CAAC,0CAAG,4BAAgB,CAAC,MAAM,CAAC,CAAC,WACjE,EACF,uBAAC,eAAK,IACJ,KAAK,EAAC,yCAAyC,EAC/C,QAAQ,EAAE,OAAO,CAAC,MAAA,gBAAgB,CAAC,CAAC,CAAC,0CAAG,4BAAgB,CAAC,OAAO,CAAC,CAAC,WAClE,EACF,uBAAC,eAAK,IACJ,KAAK,EAAC,wCAAwC,EAC9C,QAAQ,EAAE,OAAO,CAAC,MAAA,gBAAgB,CAAC,CAAC,CAAC,0CAAG,4BAAgB,CAAC,MAAM,CAAC,CAAC,WACjE,EACF,uBAAC,eAAK,IACJ,KAAK,EAAC,sCAAsC,EAC5C,QAAQ,EAAE,OAAO,CAAC,MAAA,gBAAgB,CAAC,CAAC,CAAC,0CAAG,4BAAgB,CAAC,IAAI,CAAC,CAAC,WAC/D,EACF,4EAA+B,EAC/B,uBAAC,eAAK,IACJ,KAAK,EAAC,yRAAyR,EAC/R,QAAQ,EAAE,OAAO,CACf,MAAA,gBAAgB,CAAC,CAAC,CAAC,0CAAG,4BAAgB,CAAC,iBAAiB,CAAC,CAC1D,WACD,EACD,CAAC,aAAa,IAAI,CACjB,6DACE,6EAAgC,EAChC,uBAAC,eAAK,IACJ,KAAK,EAAC,kEAAkE,EACxE,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,WACnC,YACD,CACJ,EACA,CAAC,aAAa,IAAI,CACjB,6DACE,4FAA+C,EAC/C,uBAAC,eAAK,IACJ,KAAK,EAAC,qCAAqC,EAC3C,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,WAC9B,EACF,uBAAC,eAAK,IACJ,KAAK,EAAC,sCAAsC,EAC5C,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,WAChC,EAEF,mFAAsC,EACtC,wCAAM,EACN,4CAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,gBAAgB,8CAEtC,EACT,4CAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,iBAAiB,gDAEvC,EACT,4CAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,eAAe,6CAErC,EACT,4CAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,mBAAmB,iDAEzC,EACT,iEAAmB,EAClB,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;wBAC1B,oDAAoD;wBACpD,OAAO,wCAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAjC,KAAK,CAAiC,CAAC;oBACxD,CAAC,CAAC,YACD,CACJ,EACD,iEAAoB,EACnB,OAAO,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,IAAI,CAC1B,yCACG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,CACtB,yCAAiB,KAAK,IAAb,KAAK,CAAc,CAC7B,EAFuB,CAEvB,CAAC,WACC,CACN,YACI,CACR,CAAC;AACJ,CAAC;AACD,kBAAe,IAAA,YAAI,EAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,41 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("react/jsx-runtime");
18
+ var compose_1 = __importDefault(require("../compose"));
19
+ var constants_1 = require("./constants");
20
+ var index_1 = require("../index");
21
+ var Form_1 = __importDefault(require("./Form"));
22
+ function FormHOC(props) {
23
+ return (0, jsx_runtime_1.jsx)(Form_1.default, __assign({}, props, { isRenderProps: false }), void 0);
24
+ }
25
+ var variableKeys = {
26
+ production: [
27
+ constants_1.FeatureVariables.STRING,
28
+ constants_1.FeatureVariables.BOOLEAN,
29
+ constants_1.FeatureVariables.NUMBER,
30
+ constants_1.FeatureVariables.JSON,
31
+ ],
32
+ development: constants_1.FeatureVariables.MULTI_ENVIRONMENT,
33
+ staging: constants_1.FeatureVariables.MULTI_ENVIRONMENT,
34
+ };
35
+ var withKameleoonHOCs = (0, compose_1.default)(index_1.withKameleoon, index_1.withVisitorCode, index_1.withActivateFeature, index_1.withAddData, index_1.withBrowser, index_1.withPageView, index_1.withDevice, index_1.withConversion, index_1.withTriggerExperiment, index_1.withRunWhenReady, index_1.withVariationAssociatedData, index_1.withRetrieveDataFromRemoteSource, (0, index_1.withFeature)({
36
+ featureKey: constants_1.FEATURE_KEY,
37
+ variableKeys: variableKeys,
38
+ visitorCode: constants_1.USER_ID,
39
+ }));
40
+ exports.default = withKameleoonHOCs(FormHOC);
41
+ //# sourceMappingURL=FormHOC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormHOC.js","sourceRoot":"","sources":["../../src/stories/FormHOC.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAiC;AACjC,yCAAqE;AACrE,kCAckB;AAClB,gDAA0C;AAE1C,SAAS,OAAO,CAAC,KAAiB;IAChC,OAAO,uBAAC,cAAI,eAAK,KAAK,IAAE,aAAa,EAAE,KAAK,YAAI,CAAC;AACnD,CAAC;AAED,IAAM,YAAY,GAAG;IACnB,UAAU,EAAE;QACV,4BAAgB,CAAC,MAAM;QACvB,4BAAgB,CAAC,OAAO;QACxB,4BAAgB,CAAC,MAAM;QACvB,4BAAgB,CAAC,IAAI;KACtB;IACD,WAAW,EAAE,4BAAgB,CAAC,iBAAiB;IAC/C,OAAO,EAAE,4BAAgB,CAAC,iBAAiB;CAC5C,CAAC;AAEF,IAAM,iBAAiB,GAAG,IAAA,iBAAO,EAC/B,qBAAa,EACb,uBAAe,EACf,2BAAmB,EACnB,mBAAW,EACX,mBAAW,EACX,oBAAY,EACZ,kBAAU,EACV,sBAAc,EACd,6BAAqB,EACrB,wBAAgB,EAChB,mCAA2B,EAC3B,wCAAgC,EAChC,IAAA,mBAAW,EAAC;IACV,UAAU,EAAE,uBAAW;IACvB,YAAY,cAAA;IACZ,WAAW,EAAE,mBAAO;CACrB,CAAC,CACH,CAAC;AAEF,kBAAe,iBAAiB,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function FormHook(): JSX.Element;
@@ -0,0 +1,74 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FormHook = void 0;
18
+ var jsx_runtime_1 = require("react/jsx-runtime");
19
+ var index_1 = require("../index");
20
+ var Form_1 = __importDefault(require("./Form"));
21
+ var constants_1 = require("./constants");
22
+ function FormHook() {
23
+ var client = (0, index_1.useKameleoon)().client;
24
+ var getVisitorCode = (0, index_1.useVisitorCode)().getVisitorCode;
25
+ var addData = (0, index_1.useAddData)().addData;
26
+ var addBrowser = (0, index_1.useBrowser)().addBrowser;
27
+ var addPageView = (0, index_1.usePageView)().addPageView;
28
+ var addDevice = (0, index_1.useDevice)().addDevice;
29
+ var addConversion = (0, index_1.useConversion)().addConversion;
30
+ var _a = (0, index_1.useVariationAssociatedData)(), getVariationAssociatedData = _a.getVariationAssociatedData, variationAssociatedDataError = _a.error;
31
+ var trackConversion = (0, index_1.useTrackingConversion)().trackConversion;
32
+ var _b = (0, index_1.useTriggerExperiment)(), getVariationId = _b.getVariationId, triggerExperimentError = _b.error;
33
+ var _c = (0, index_1.useActivateFeature)(), hasFeature = _c.hasFeature, activateFeatureError = _c.error;
34
+ var retrieveDataFromRemoteSource = (0, index_1.useRetrieveDataFromRemoteSource)().retrieveDataFromRemoteSource;
35
+ var runWhenReady = (0, index_1.useRunWhenReady)().runWhenReady;
36
+ var variableKeys = {
37
+ production: [
38
+ constants_1.FeatureVariables.STRING,
39
+ constants_1.FeatureVariables.BOOLEAN,
40
+ constants_1.FeatureVariables.NUMBER,
41
+ constants_1.FeatureVariables.JSON,
42
+ ],
43
+ development: constants_1.FeatureVariables.MULTI_ENVIRONMENT,
44
+ staging: constants_1.FeatureVariables.MULTI_ENVIRONMENT,
45
+ };
46
+ var _d = (0, index_1.useFeature)({
47
+ featureKey: constants_1.FEATURE_KEY,
48
+ variableKeys: variableKeys,
49
+ visitorCode: constants_1.USER_ID,
50
+ }), feature = _d.feature, featureErrors = _d.errors;
51
+ var props = {
52
+ variationAssociatedDataError: variationAssociatedDataError,
53
+ triggerExperimentError: triggerExperimentError,
54
+ activateFeatureError: activateFeatureError,
55
+ featureErrors: featureErrors,
56
+ client: client,
57
+ feature: feature,
58
+ getVisitorCode: getVisitorCode,
59
+ hasFeature: hasFeature,
60
+ addData: addData,
61
+ addBrowser: addBrowser,
62
+ addPageView: addPageView,
63
+ addDevice: addDevice,
64
+ addConversion: addConversion,
65
+ getVariationAssociatedData: getVariationAssociatedData,
66
+ retrieveDataFromRemoteSource: retrieveDataFromRemoteSource,
67
+ getVariationId: getVariationId,
68
+ trackConversion: trackConversion,
69
+ runWhenReady: runWhenReady,
70
+ };
71
+ return (0, jsx_runtime_1.jsx)(Form_1.default, __assign({}, props, { isRenderProps: false }), void 0);
72
+ }
73
+ exports.FormHook = FormHook;
74
+ //# sourceMappingURL=FormHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormHook.js","sourceRoot":"","sources":["../../src/stories/FormHook.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,kCAekB;AAClB,gDAA0B;AAC1B,yCAAqE;AAErE,SAAgB,QAAQ;IACd,IAAA,MAAM,GAAK,IAAA,oBAAY,GAAE,OAAnB,CAAoB;IAC1B,IAAA,cAAc,GAAK,IAAA,sBAAc,GAAE,eAArB,CAAsB;IACpC,IAAA,OAAO,GAAK,IAAA,kBAAU,GAAE,QAAjB,CAAkB;IACzB,IAAA,UAAU,GAAK,IAAA,kBAAU,GAAE,WAAjB,CAAkB;IAC5B,IAAA,WAAW,GAAK,IAAA,mBAAW,GAAE,YAAlB,CAAmB;IAC9B,IAAA,SAAS,GAAK,IAAA,iBAAS,GAAE,UAAhB,CAAiB;IAC1B,IAAA,aAAa,GAAK,IAAA,qBAAa,GAAE,cAApB,CAAqB;IACpC,IAAA,KACJ,IAAA,kCAA0B,GAAE,EADtB,0BAA0B,gCAAA,EAAS,4BAA4B,WACzC,CAAC;IACvB,IAAA,eAAe,GAAK,IAAA,6BAAqB,GAAE,gBAA5B,CAA6B;IAC9C,IAAA,KACJ,IAAA,4BAAoB,GAAE,EADhB,cAAc,oBAAA,EAAS,sBAAsB,WAC7B,CAAC;IACnB,IAAA,KAA8C,IAAA,0BAAkB,GAAE,EAAhE,UAAU,gBAAA,EAAS,oBAAoB,WAAyB,CAAC;IACjE,IAAA,4BAA4B,GAAK,IAAA,uCAA+B,GAAE,6BAAtC,CAAuC;IACnE,IAAA,YAAY,GAAK,IAAA,uBAAe,GAAE,aAAtB,CAAuB;IAE3C,IAAM,YAAY,GAAG;QACnB,UAAU,EAAE;YACV,4BAAgB,CAAC,MAAM;YACvB,4BAAgB,CAAC,OAAO;YACxB,4BAAgB,CAAC,MAAM;YACvB,4BAAgB,CAAC,IAAI;SACtB;QACD,WAAW,EAAE,4BAAgB,CAAC,iBAAiB;QAC/C,OAAO,EAAE,4BAAgB,CAAC,iBAAiB;KAC5C,CAAC;IAEI,IAAA,KAAqC,IAAA,kBAAU,EAAC;QACpD,UAAU,EAAE,uBAAW;QACvB,YAAY,cAAA;QACZ,WAAW,EAAE,mBAAO;KACrB,CAAC,EAJM,OAAO,aAAA,EAAU,aAAa,YAIpC,CAAC;IAEH,IAAM,KAAK,GAAG;QACZ,4BAA4B,8BAAA;QAC5B,sBAAsB,wBAAA;QACtB,oBAAoB,sBAAA;QACpB,aAAa,eAAA;QACb,MAAM,QAAA;QACN,OAAO,SAAA;QACP,cAAc,gBAAA;QACd,UAAU,YAAA;QACV,OAAO,SAAA;QACP,UAAU,YAAA;QACV,WAAW,aAAA;QACX,SAAS,WAAA;QACT,aAAa,eAAA;QACb,0BAA0B,4BAAA;QAC1B,4BAA4B,8BAAA;QAC5B,cAAc,gBAAA;QACd,eAAe,iBAAA;QACf,YAAY,cAAA;KACb,CAAC;IAEF,OAAO,uBAAC,cAAI,eAAK,KAAK,IAAE,aAAa,EAAE,KAAK,YAAI,CAAC;AACnD,CAAC;AAxDD,4BAwDC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { IFormProps } from './Form';
3
+ export declare function FormRenderProps(props: IFormProps): JSX.Element;
@@ -0,0 +1,24 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FormRenderProps = void 0;
18
+ var jsx_runtime_1 = require("react/jsx-runtime");
19
+ var Form_1 = __importDefault(require("./Form"));
20
+ function FormRenderProps(props) {
21
+ return (0, jsx_runtime_1.jsx)(Form_1.default, __assign({}, props, { isRenderProps: true }), void 0);
22
+ }
23
+ exports.FormRenderProps = FormRenderProps;
24
+ //# sourceMappingURL=FormRenderProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormRenderProps.js","sourceRoot":"","sources":["../../src/stories/FormRenderProps.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,gDAA0C;AAE1C,SAAgB,eAAe,CAAC,KAAiB;IAC/C,OAAO,uBAAC,cAAI,eAAK,KAAK,IAAE,aAAa,kBAAG,CAAC;AAC3C,CAAC;AAFD,0CAEC"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare type Props = {
3
+ title: string;
4
+ isActive: boolean;
5
+ };
6
+ declare function Radio(props: Props): JSX.Element;
7
+ declare const _default: import("react").MemoExoticComponent<typeof Radio>;
8
+ export default _default;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var jsx_runtime_1 = require("react/jsx-runtime");
4
+ var react_1 = require("react");
5
+ function Radio(props) {
6
+ return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)("label", { children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: "feature-radio", disabled: !props.isActive }, void 0), props.title] }, void 0) }, void 0));
7
+ }
8
+ exports.default = (0, react_1.memo)(Radio);
9
+ //# sourceMappingURL=Radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../src/stories/Radio.tsx"],"names":[],"mappings":";;;AAAA,+BAA6B;AAO7B,SAAS,KAAK,CAAC,KAAY;IACzB,OAAO,CACL,0CACE,8CACE,kCAAO,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,eAAe,EAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,WAAI,EACrE,KAAK,CAAC,KAAK,YACN,WACJ,CACP,CAAC;AACJ,CAAC;AACD,kBAAe,IAAA,YAAI,EAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ export declare const KAMELEOON_URL = "https://app.kameleoon.com";
2
+ export declare const KAMELEOON_SITE_CODE = "0fpmcg34lg";
3
+ export declare const KAMELEOON_VISITOR_KEY = "4rXwHd620g";
4
+ export declare const KAMELEOON_GOAL_ID = 238446;
5
+ export declare const FEATURE_KEY = "react_sdk_test";
6
+ export declare const USER_ID = "98983";
7
+ export declare const EXPERIMENT_ID = 143611;
8
+ export declare const GOAL_ID = 245023;
9
+ export declare const REFRESH_INTERVAL = 5;
10
+ export declare enum FeatureVariables {
11
+ STRING = "test_variable_one",
12
+ BOOLEAN = "test_variable_two",
13
+ NUMBER = "test_variable_three",
14
+ JSON = "test_variable_four",
15
+ MULTI_ENVIRONMENT = "test_variable_multi_environment"
16
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FeatureVariables = exports.REFRESH_INTERVAL = exports.GOAL_ID = exports.EXPERIMENT_ID = exports.USER_ID = exports.FEATURE_KEY = exports.KAMELEOON_GOAL_ID = exports.KAMELEOON_VISITOR_KEY = exports.KAMELEOON_SITE_CODE = exports.KAMELEOON_URL = void 0;
4
+ exports.KAMELEOON_URL = 'https://app.kameleoon.com';
5
+ exports.KAMELEOON_SITE_CODE = '0fpmcg34lg';
6
+ exports.KAMELEOON_VISITOR_KEY = '4rXwHd620g';
7
+ exports.KAMELEOON_GOAL_ID = 238446;
8
+ exports.FEATURE_KEY = 'react_sdk_test';
9
+ exports.USER_ID = '98983';
10
+ exports.EXPERIMENT_ID = 143611;
11
+ exports.GOAL_ID = 245023;
12
+ exports.REFRESH_INTERVAL = 5;
13
+ var FeatureVariables;
14
+ (function (FeatureVariables) {
15
+ FeatureVariables["STRING"] = "test_variable_one";
16
+ FeatureVariables["BOOLEAN"] = "test_variable_two";
17
+ FeatureVariables["NUMBER"] = "test_variable_three";
18
+ FeatureVariables["JSON"] = "test_variable_four";
19
+ FeatureVariables["MULTI_ENVIRONMENT"] = "test_variable_multi_environment";
20
+ })(FeatureVariables = exports.FeatureVariables || (exports.FeatureVariables = {}));
21
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/stories/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,2BAA2B,CAAC;AAC5C,QAAA,mBAAmB,GAAG,YAAY,CAAC;AACnC,QAAA,qBAAqB,GAAG,YAAY,CAAC;AACrC,QAAA,iBAAiB,GAAG,MAAM,CAAC;AAC3B,QAAA,WAAW,GAAG,gBAAgB,CAAC;AAC/B,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,aAAa,GAAG,MAAM,CAAC;AACvB,QAAA,OAAO,GAAG,MAAM,CAAC;AACjB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,gDAA4B,CAAA;IAC5B,iDAA6B,CAAA;IAC7B,kDAA8B,CAAA;IAC9B,+CAA2B,CAAA;IAC3B,yEAAqD,CAAA;AACvD,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B"}
@@ -0,0 +1,37 @@
1
+ import { FeatureResultField, KameleoonException } from './constants';
2
+ import { KameleoonError } from './KameleoonError';
3
+ export declare type Without<T, K> = Pick<T, Exclude<keyof T, K>>;
4
+ declare type JSONValue = string | number | boolean | {
5
+ [x: string]: JSONValue;
6
+ } | JSONValue[];
7
+ export declare type FeatureFlagVariableType = boolean | number | string | undefined;
8
+ export declare type FeatureVariableType = Record<string, FeatureFlagVariableType>;
9
+ export declare type UnknownPropsType = Record<string, unknown>;
10
+ export declare type VariableKeyType = string | string[];
11
+ export declare type VariableKeysType = {
12
+ [environment: string]: VariableKeyType;
13
+ };
14
+ export declare type RemoteSourceDataType = Record<string, JSONValue>;
15
+ export declare type VariationAssociatedDataType = Record<string | number | symbol, JSONValue> | null;
16
+ export declare type RemoteSourceResultType = {
17
+ data: RemoteSourceDataType | null;
18
+ error: KameleoonError | null;
19
+ };
20
+ export interface IFeature {
21
+ feature: {
22
+ /** Feature flag status */
23
+ [FeatureResultField.IsActive]: boolean;
24
+ /** Feature flag variables */
25
+ [FeatureResultField.Variables]: FeatureVariableType[];
26
+ };
27
+ errors: KameleoonException[];
28
+ }
29
+ export interface IFeatureParams {
30
+ /** Unique identifier or key of the feature you want to expose to a user */
31
+ featureKey: string | number;
32
+ /** Key of the variable */
33
+ variableKeys: VariableKeysType;
34
+ /** Unique identifier of the user */
35
+ visitorCode?: string;
36
+ }
37
+ export {};
package/dist/types.js ADDED
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var constants_1 = require("./constants");
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAAA,yCAAqE"}
@@ -0,0 +1,14 @@
1
+ import { KameleoonError } from './KameleoonError';
2
+ interface ActivateFeatureHookResult {
3
+ /**
4
+ * @param visitorCode - unique identifier of the user
5
+ * @param featureKey - unique identifier or key of the feature you want to expose to a user
6
+ */
7
+ hasFeature: (featureKey: string | number, visitorCode?: string) => boolean;
8
+ error: KameleoonError | null;
9
+ }
10
+ /**
11
+ * A React Hook that returns callback function which activates a feature toggle
12
+ */
13
+ export declare function useActivateFeature(): ActivateFeatureHookResult;
14
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useActivateFeature = void 0;
4
+ var react_1 = require("react");
5
+ var useKameleoon_1 = require("./useKameleoon");
6
+ var ProviderError_1 = require("./ProviderError");
7
+ var useError_1 = require("./useError");
8
+ var useVisitorCode_1 = require("./useVisitorCode");
9
+ /**
10
+ * A React Hook that returns callback function which activates a feature toggle
11
+ */
12
+ function useActivateFeature() {
13
+ var client = (0, useKameleoon_1.useKameleoon)().client;
14
+ var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
15
+ var getVisitorCode = (0, useVisitorCode_1.useVisitorCode)().getVisitorCode;
16
+ var hasFeature = (0, react_1.useCallback)(function (featureKey, visitorCode) {
17
+ try {
18
+ var userCode = visitorCode !== null && visitorCode !== void 0 ? visitorCode : getVisitorCode('');
19
+ return client.activateFeature(userCode, featureKey);
20
+ }
21
+ catch (unknownError) {
22
+ setError(unknownError);
23
+ return false;
24
+ }
25
+ }, [client, getVisitorCode, setError]);
26
+ if (!client) {
27
+ throw new ProviderError_1.ProviderError('useActivateFeature');
28
+ }
29
+ return {
30
+ hasFeature: hasFeature,
31
+ error: error,
32
+ };
33
+ }
34
+ exports.useActivateFeature = useActivateFeature;
35
+ //# sourceMappingURL=useActivateFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActivateFeature.js","sourceRoot":"","sources":["../src/useActivateFeature.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAC9C,iDAAgD;AAEhD,uCAAsC;AACtC,mDAAkD;AAWlD;;GAEG;AACH,SAAgB,kBAAkB;IACxB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAC/B,IAAA,cAAc,GAAK,IAAA,+BAAc,GAAE,eAArB,CAAsB;IAE5C,IAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,UAAC,UAA2B,EAAE,WAAoB;QAChD,IAAI;YACF,IAAM,QAAQ,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,cAAc,CAAC,EAAE,CAAC,CAAC;YAEnD,OAAO,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;SACrD;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,KAAK,CAAC;SACd;IACH,CAAC,EACD,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CACnC,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,6BAAa,CAAC,oBAAoB,CAAC,CAAC;KAC/C;IAED,OAAO;QACL,UAAU,YAAA;QACV,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AA5BD,gDA4BC"}
@@ -0,0 +1,14 @@
1
+ import { DataInterface as IData } from 'kameleoon-client-javascript/dist/interfaces/interfaces';
2
+ interface AddDataHookResult {
3
+ /**
4
+ * @param visitorCode - unique identifier of the user
5
+ * @param dataTypes - custom data types which may be passed separated by a comma
6
+ */
7
+ addData: (visitorCode: string, ...dataTypes: IData[]) => void;
8
+ }
9
+ /**
10
+ * A React Hook that returns callback function which adds various data
11
+ * to associate this data with the current user
12
+ */
13
+ export declare function useAddData(): AddDataHookResult;
14
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.useAddData = void 0;
29
+ var react_1 = require("react");
30
+ var useKameleoon_1 = require("./useKameleoon");
31
+ /**
32
+ * A React Hook that returns callback function which adds various data
33
+ * to associate this data with the current user
34
+ */
35
+ function useAddData() {
36
+ var client = (0, useKameleoon_1.useKameleoon)().client;
37
+ var addData = (0, react_1.useCallback)(function (visitorCode) {
38
+ var dataTypes = [];
39
+ for (var _i = 1; _i < arguments.length; _i++) {
40
+ dataTypes[_i - 1] = arguments[_i];
41
+ }
42
+ client.addData.apply(client, __spreadArray([visitorCode], __read(dataTypes), false));
43
+ }, [client]);
44
+ return {
45
+ addData: addData,
46
+ };
47
+ }
48
+ exports.useAddData = useAddData;
49
+ //# sourceMappingURL=useAddData.js.map