@xylabs/sdk-react 2.8.5 → 2.9.4

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 (100) hide show
  1. package/dist/components/BasePage/BasePage.js +2 -2
  2. package/dist/components/BasePage/BasePage.js.map +1 -1
  3. package/dist/components/BasePage/BasePage.stories.js +4 -0
  4. package/dist/components/BasePage/BasePage.stories.js.map +1 -1
  5. package/dist/components/BasePage/BasePageProps.d.ts +2 -0
  6. package/dist/components/Experiments/Experiment.d.ts +1 -0
  7. package/dist/components/Experiments/Experiment.js.map +1 -1
  8. package/dist/components/Experiments/Experiments.d.ts +3 -8
  9. package/dist/components/Experiments/Experiments.js +18 -2
  10. package/dist/components/Experiments/Experiments.js.map +1 -1
  11. package/dist/components/Experiments/Experiments.stories.d.ts +6 -0
  12. package/dist/components/Experiments/Experiments.stories.js +27 -0
  13. package/dist/components/Experiments/Experiments.stories.js.map +1 -0
  14. package/dist/components/Experiments/ExperimentsDebugger.d.ts +3 -0
  15. package/dist/components/Experiments/ExperimentsDebugger.js +37 -0
  16. package/dist/components/Experiments/ExperimentsDebugger.js.map +1 -0
  17. package/dist/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
  18. package/dist/components/Experiments/ExperimentsDebugger.stories.js +20 -0
  19. package/dist/components/Experiments/ExperimentsDebugger.stories.js.map +1 -0
  20. package/dist/components/Experiments/ExperimentsProps.d.ts +7 -0
  21. package/dist/components/Experiments/ExperimentsProps.js +2 -0
  22. package/dist/components/Experiments/ExperimentsProps.js.map +1 -0
  23. package/dist/components/Experiments/index.d.ts +2 -1
  24. package/dist/components/Experiments/index.js +2 -1
  25. package/dist/components/Experiments/index.js.map +1 -1
  26. package/dist/components/Experiments/models/index.d.ts +12 -0
  27. package/dist/components/Experiments/models/index.js +3 -0
  28. package/dist/components/Experiments/models/index.js.map +1 -0
  29. package/dist/esm2017/components/BasePage/BasePageProps.d.ts +2 -0
  30. package/dist/esm2017/components/Experiments/Experiment.d.ts +1 -0
  31. package/dist/esm2017/components/Experiments/Experiments.d.ts +3 -8
  32. package/dist/esm2017/components/Experiments/Experiments.stories.d.ts +6 -0
  33. package/dist/esm2017/components/Experiments/ExperimentsDebugger.d.ts +3 -0
  34. package/dist/esm2017/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
  35. package/dist/esm2017/components/Experiments/ExperimentsProps.d.ts +7 -0
  36. package/dist/esm2017/components/Experiments/index.d.ts +2 -1
  37. package/dist/esm2017/components/Experiments/models/index.d.ts +12 -0
  38. package/dist/esm2017/hooks/index.d.ts +1 -0
  39. package/dist/esm2017/hooks/useLocalStorage.d.ts +1 -0
  40. package/dist/esm2017/index.js +84 -6
  41. package/dist/esm2017/index.js.map +1 -1
  42. package/dist/esm5/components/BasePage/BasePageProps.d.ts +2 -0
  43. package/dist/esm5/components/Experiments/Experiment.d.ts +1 -0
  44. package/dist/esm5/components/Experiments/Experiments.d.ts +3 -8
  45. package/dist/esm5/components/Experiments/Experiments.stories.d.ts +6 -0
  46. package/dist/esm5/components/Experiments/ExperimentsDebugger.d.ts +3 -0
  47. package/dist/esm5/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
  48. package/dist/esm5/components/Experiments/ExperimentsProps.d.ts +7 -0
  49. package/dist/esm5/components/Experiments/index.d.ts +2 -1
  50. package/dist/esm5/components/Experiments/models/index.d.ts +12 -0
  51. package/dist/esm5/hooks/index.d.ts +1 -0
  52. package/dist/esm5/hooks/useLocalStorage.d.ts +1 -0
  53. package/dist/esm5/index.js +84 -6
  54. package/dist/esm5/index.js.map +1 -1
  55. package/dist/hooks/index.d.ts +1 -0
  56. package/dist/hooks/index.js +1 -0
  57. package/dist/hooks/index.js.map +1 -1
  58. package/dist/hooks/useLocalStorage.d.ts +1 -0
  59. package/dist/hooks/useLocalStorage.js +23 -0
  60. package/dist/hooks/useLocalStorage.js.map +1 -0
  61. package/dist/node/components/BasePage/BasePageProps.d.ts +2 -0
  62. package/dist/node/components/Experiments/Experiment.d.ts +1 -0
  63. package/dist/node/components/Experiments/Experiments.d.ts +3 -8
  64. package/dist/node/components/Experiments/Experiments.stories.d.ts +6 -0
  65. package/dist/node/components/Experiments/ExperimentsDebugger.d.ts +3 -0
  66. package/dist/node/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
  67. package/dist/node/components/Experiments/ExperimentsProps.d.ts +7 -0
  68. package/dist/node/components/Experiments/index.d.ts +2 -1
  69. package/dist/node/components/Experiments/models/index.d.ts +12 -0
  70. package/dist/node/hooks/index.d.ts +1 -0
  71. package/dist/node/hooks/useLocalStorage.d.ts +1 -0
  72. package/dist/node/index.js +84 -4
  73. package/dist/node/index.js.map +1 -1
  74. package/dist/node-esm/components/BasePage/BasePageProps.d.ts +2 -0
  75. package/dist/node-esm/components/Experiments/Experiment.d.ts +1 -0
  76. package/dist/node-esm/components/Experiments/Experiments.d.ts +3 -8
  77. package/dist/node-esm/components/Experiments/Experiments.stories.d.ts +6 -0
  78. package/dist/node-esm/components/Experiments/ExperimentsDebugger.d.ts +3 -0
  79. package/dist/node-esm/components/Experiments/ExperimentsDebugger.stories.d.ts +6 -0
  80. package/dist/node-esm/components/Experiments/ExperimentsProps.d.ts +7 -0
  81. package/dist/node-esm/components/Experiments/index.d.ts +2 -1
  82. package/dist/node-esm/components/Experiments/models/index.d.ts +12 -0
  83. package/dist/node-esm/hooks/index.d.ts +1 -0
  84. package/dist/node-esm/hooks/useLocalStorage.d.ts +1 -0
  85. package/dist/node-esm/index.js +84 -6
  86. package/dist/node-esm/index.js.map +1 -1
  87. package/package.json +1 -1
  88. package/src/components/BasePage/BasePage.stories.tsx +5 -0
  89. package/src/components/BasePage/BasePage.tsx +3 -0
  90. package/src/components/BasePage/BasePageProps.ts +2 -0
  91. package/src/components/Experiments/Experiment.tsx +1 -0
  92. package/src/components/Experiments/Experiments.stories.tsx +35 -0
  93. package/src/components/Experiments/Experiments.tsx +21 -10
  94. package/src/components/Experiments/ExperimentsDebugger.stories.tsx +24 -0
  95. package/src/components/Experiments/ExperimentsDebugger.tsx +71 -0
  96. package/src/components/Experiments/ExperimentsProps.ts +9 -0
  97. package/src/components/Experiments/index.tsx +2 -1
  98. package/src/components/Experiments/models/index.ts +8 -0
  99. package/src/hooks/index.ts +1 -0
  100. package/src/hooks/useLocalStorage.ts +24 -0
@@ -8,10 +8,10 @@ import { FlexCol, FlexRow } from '../FlexBox';
8
8
  import { InvertableThemeProvider } from '../InvertableThemeProvider';
9
9
  import { ScrollToTopButton } from '../ScrollToTopButton';
10
10
  var BasePage = function (_a) {
11
- var disableGutters = _a.disableGutters, children = _a.children, beta = _a.beta, container = _a.container, hideFooter = _a.hideFooter, appFooter = _a.appFooter, appBar = _a.appBar, cookieConsent = _a.cookieConsent, hideAppBar = _a.hideAppBar, _b = _a.noindex, noindex = _b === void 0 ? false : _b, _c = _a.scrollToTopButton, scrollToTopButton = _c === void 0 ? false : _c, title = _a.title, props = __rest(_a, ["disableGutters", "children", "beta", "container", "hideFooter", "appFooter", "appBar", "cookieConsent", "hideAppBar", "noindex", "scrollToTopButton", "title"]);
11
+ var disableGutters = _a.disableGutters, children = _a.children, beta = _a.beta, container = _a.container, hideFooter = _a.hideFooter, appFooter = _a.appFooter, appBar = _a.appBar, cookieConsent = _a.cookieConsent, filterBar = _a.filterBar, hideAppBar = _a.hideAppBar, hideFilterBar = _a.hideFilterBar, _b = _a.noindex, noindex = _b === void 0 ? false : _b, _c = _a.scrollToTopButton, scrollToTopButton = _c === void 0 ? false : _c, title = _a.title, props = __rest(_a, ["disableGutters", "children", "beta", "container", "hideFooter", "appFooter", "appBar", "cookieConsent", "filterBar", "hideAppBar", "hideFilterBar", "noindex", "scrollToTopButton", "title"]);
12
12
  var theme = useTheme();
13
13
  var scrollToTopAnchorId = 'scroll-to-top-anchor';
14
- return (_jsxs(FlexCol, __assign({ justifyContent: "flex-start", color: theme.palette.text.primary, alignItems: "stretch", width: "100%", maxWidth: "100vw", minHeight: "100vh" }, props, { children: [_jsx(Helmet, __assign({ title: title }, { children: noindex ? _jsx("meta", { content: "noindex", name: "robots" }, void 0) : null }), void 0), scrollToTopButton ? _jsx("div", { id: scrollToTopAnchorId }, void 0) : null, hideAppBar ? null : appBar, beta ? (_jsx(FlexRow, __assign({ margin: 1, position: "absolute", top: 0, left: 0, bgcolor: "#cccccc88", paddingX: 1, style: { opacity: 0.5 } }, { children: _jsx(Typography, __assign({ variant: "body2" }, { children: "Important: This page is a Beta page. It is possible that some information may not be correct." }), void 0) }), void 0)) : null, container ? (_jsx(Container, __assign({ style: { alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1 }, maxWidth: container, disableGutters: disableGutters }, { children: children }), void 0)) : (children), hideFooter ? null : _jsx("footer", { children: appFooter }, void 0), cookieConsent !== null && cookieConsent !== void 0 ? cookieConsent : (_jsx(ScopedCssBaseline, { children: _jsx(InvertableThemeProvider, __assign({ invert: true }, { children: _jsx(CookieConsent, { borderRadius: 0 }, void 0) }), void 0) }, void 0)), scrollToTopButton ? (_jsx(ScrollToTopButton, __assign({ anchorId: scrollToTopAnchorId }, { children: _jsx(Fab, __assign({ "aria-label": "scroll to top", color: "secondary", size: "small" }, { children: _jsx(KeyboardArrowUpIcon, {}, void 0) }), void 0) }), void 0)) : null] }), void 0));
14
+ return (_jsxs(FlexCol, __assign({ justifyContent: "flex-start", color: theme.palette.text.primary, alignItems: "stretch", width: "100%", maxWidth: "100vw", minHeight: "100vh" }, props, { children: [_jsx(Helmet, __assign({ title: title }, { children: noindex ? _jsx("meta", { content: "noindex", name: "robots" }, void 0) : null }), void 0), scrollToTopButton ? _jsx("div", { id: scrollToTopAnchorId }, void 0) : null, hideAppBar ? null : appBar, hideFilterBar ? null : filterBar, beta ? (_jsx(FlexRow, __assign({ margin: 1, position: "absolute", top: 0, left: 0, bgcolor: "#cccccc88", paddingX: 1, style: { opacity: 0.5 } }, { children: _jsx(Typography, __assign({ variant: "body2" }, { children: "Important: This page is a Beta page. It is possible that some information may not be correct." }), void 0) }), void 0)) : null, container ? (_jsx(Container, __assign({ style: { alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1 }, maxWidth: container, disableGutters: disableGutters }, { children: children }), void 0)) : (children), hideFooter ? null : _jsx("footer", { children: appFooter }, void 0), cookieConsent !== null && cookieConsent !== void 0 ? cookieConsent : (_jsx(ScopedCssBaseline, { children: _jsx(InvertableThemeProvider, __assign({ invert: true }, { children: _jsx(CookieConsent, { borderRadius: 0 }, void 0) }), void 0) }, void 0)), scrollToTopButton ? (_jsx(ScrollToTopButton, __assign({ anchorId: scrollToTopAnchorId }, { children: _jsx(Fab, __assign({ "aria-label": "scroll to top", color: "secondary", size: "small" }, { children: _jsx(KeyboardArrowUpIcon, {}, void 0) }), void 0) }), void 0)) : null] }), void 0));
15
15
  };
16
16
  export { BasePage };
17
17
  //# sourceMappingURL=BasePage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasePage.js","sourceRoot":"","sources":["../../../src/components/BasePage/BasePage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BasePage.js","sourceRoot":"","sources":["../../../src/components/BasePage/BasePage.tsx"],"names":[],"mappings":"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"}
@@ -12,8 +12,12 @@ var StorybookEntry = {
12
12
  title: 'Components/BasePage',
13
13
  };
14
14
  var Template = function (args) { return _jsx(BasePage, __assign({}, args), void 0); };
15
+ var AppBar = function () { return _jsx("div", { children: "AppBar" }, void 0); };
16
+ var FilterBar = function () { return _jsx("div", { children: "FilterBar" }, void 0); };
15
17
  var Default = Template.bind({});
16
18
  Default.args = {
19
+ appBar: _jsx(AppBar, {}, void 0),
20
+ filterBar: _jsx(FilterBar, {}, void 0),
17
21
  title: 'Default',
18
22
  };
19
23
  export { Default };
@@ -1 +1 @@
1
- {"version":3,"file":"BasePage.stories.js","sourceRoot":"","sources":["../../../src/components/BasePage/BasePage.stories.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,IAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI;SACX;KACF;IACD,KAAK,EAAE,qBAAqB;CACK,CAAA;AAEnC,IAAM,QAAQ,GAAoC,UAAC,IAAI,IAAK,OAAA,KAAC,QAAQ,eAAK,IAAI,UAAa,EAA/B,CAA+B,CAAA;AAE3F,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"BasePage.stories.js","sourceRoot":"","sources":["../../../src/components/BasePage/BasePage.stories.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,IAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI;SACX;KACF;IACD,KAAK,EAAE,qBAAqB;CACK,CAAA;AAEnC,IAAM,QAAQ,GAAoC,UAAC,IAAI,IAAK,OAAA,KAAC,QAAQ,eAAK,IAAI,UAAa,EAA/B,CAA+B,CAAA;AAE3F,IAAM,MAAM,GAAG,cAAM,OAAA,2CAAiB,EAAjB,CAAiB,CAAA;AACtC,IAAM,SAAS,GAAG,cAAM,OAAA,8CAAoB,EAApB,CAAoB,CAAA;AAE5C,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,IAAI,GAAG;IACb,MAAM,EAAE,KAAC,MAAM,aAAG;IAClB,SAAS,EAAE,KAAC,SAAS,aAAG;IACxB,KAAK,EAAE,SAAS;CACjB,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
@@ -7,7 +7,9 @@ interface BasePageProps extends BoxProps {
7
7
  beta?: boolean;
8
8
  container?: 'xl' | 'lg' | 'md' | 'sm' | 'xs';
9
9
  disableGutters?: boolean;
10
+ filterBar?: ReactElement;
10
11
  hideAppBar?: boolean;
12
+ hideFilterBar?: boolean;
11
13
  hideFooter?: boolean;
12
14
  noindex?: boolean;
13
15
  cookieConsent?: ReactNode;
@@ -1,6 +1,7 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
2
  export interface ExperimentProps {
3
3
  weight: number;
4
+ key: string;
4
5
  }
5
6
  declare const Experiment: React.FC<PropsWithChildren<ExperimentProps>>;
6
7
  export { Experiment };
@@ -1 +1 @@
1
- {"version":3,"file":"Experiment.js","sourceRoot":"","sources":["../../../src/components/Experiments/Experiment.tsx"],"names":[],"mappings":";AAMA,IAAM,UAAU,GAAiD,UAAC,KAAK;IAC7D,IAAA,QAAQ,GAAK,KAAK,SAAV,CAAU;IAC1B,OAAO,4BAAG,QAAQ,WAAI,CAAA;AACxB,CAAC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"Experiment.js","sourceRoot":"","sources":["../../../src/components/Experiments/Experiment.tsx"],"names":[],"mappings":";AAOA,IAAM,UAAU,GAAiD,UAAC,KAAK;IAC7D,IAAA,QAAQ,GAAK,KAAK,SAAV,CAAU;IAC1B,OAAO,4BAAG,QAAQ,WAAI,CAAA;AACxB,CAAC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -1,9 +1,4 @@
1
- import React, { ReactElement } from 'react';
2
- import { ExperimentProps } from './Experiment';
3
- declare type Props = {
4
- children: ReactElement<ExperimentProps>[] | ReactElement<ExperimentProps>;
5
- localStorageProp?: string | boolean;
6
- name: string;
7
- };
8
- declare const Experiments: React.FC<Props>;
1
+ import React from 'react';
2
+ import { ExperimentsProps } from './ExperimentsProps';
3
+ declare const Experiments: React.FC<ExperimentsProps>;
9
4
  export { Experiments };
@@ -3,14 +3,15 @@ import { forget } from '@xylabs/sdk-js';
3
3
  import { useContext } from 'react';
4
4
  import { UserEventsContext } from '../../contexts';
5
5
  import { getLocalStorageObject, setLocalStorageObject } from '../../lib';
6
+ import { ExperimentsLocalStorageKey, OutcomesLocalStorageKey } from './models';
6
7
  var defaultLocalStorageKey = 'testData';
7
8
  var experimentsTestData = {};
8
9
  var outcomes = {}; //prevent multi-outcome
9
10
  var saveOutcomes = function () {
10
- setLocalStorageObject('outcomes', outcomes);
11
+ setLocalStorageObject(OutcomesLocalStorageKey, outcomes);
11
12
  };
12
13
  var loadOutcomes = function () {
13
- outcomes = getLocalStorageObject('outcomes');
14
+ outcomes = getLocalStorageObject(OutcomesLocalStorageKey);
14
15
  };
15
16
  var mergeData = function (data, log) {
16
17
  var dataArray = [];
@@ -54,6 +55,20 @@ var calcTotalWeight = function (childList) {
54
55
  }
55
56
  return totalWeight;
56
57
  };
58
+ var saveExperimentDebugRanges = function (name, totalWeight, childList) {
59
+ var experiments = getLocalStorageObject(ExperimentsLocalStorageKey) || {};
60
+ experiments[name] = {
61
+ totalWeight: totalWeight,
62
+ variants: childList.map(function (child) {
63
+ var _a;
64
+ return ({
65
+ name: (_a = child.key) === null || _a === void 0 ? void 0 : _a.toString(),
66
+ weight: child.props.weight,
67
+ });
68
+ }),
69
+ };
70
+ setLocalStorageObject(ExperimentsLocalStorageKey, experiments);
71
+ };
57
72
  var Experiments = function (props) {
58
73
  var e_2, _a;
59
74
  var _b, _c;
@@ -64,6 +79,7 @@ var Experiments = function (props) {
64
79
  var localStorageKey = buildLocalStorageKey(localStorageProp);
65
80
  var childList = makeChildrenArray(children);
66
81
  var totalWeight = calcTotalWeight(childList);
82
+ saveExperimentDebugRanges(name, totalWeight, childList);
67
83
  var firstTime = outcomes[name] === undefined;
68
84
  var targetWeight = (_b = outcomes[name]) !== null && _b !== void 0 ? _b : Math.random() * totalWeight;
69
85
  outcomes[name] = targetWeight;
@@ -1 +1 @@
1
- {"version":3,"file":"Experiments.js","sourceRoot":"","sources":["../../../src/components/Experiments/Experiments.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Experiments.js","sourceRoot":"","sources":["../../../src/components/Experiments/Experiments.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { ComponentMeta, ComponentStory } from '@storybook/react';
3
+ declare const StorybookEntry: ComponentMeta<import("react").FC<import("./ExperimentsProps").ExperimentsProps>>;
4
+ declare const Default: ComponentStory<import("react").FC<import("./ExperimentsProps").ExperimentsProps>>;
5
+ export { Default };
6
+ export default StorybookEntry;
@@ -0,0 +1,27 @@
1
+ import { __assign } from "tslib";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Experiment } from './Experiment';
4
+ import { Experiments } from './Experiments';
5
+ var StorybookEntry = {
6
+ argTypes: {},
7
+ component: Experiments,
8
+ parameters: {
9
+ docs: {
10
+ page: null,
11
+ },
12
+ },
13
+ title: 'Components/Experiments',
14
+ };
15
+ var Template = function (args) { return _jsx(Experiments, __assign({}, args), void 0); };
16
+ var Default = Template.bind({});
17
+ Default.args = {
18
+ children: [
19
+ _jsx(Experiment, __assign({ weight: 50 }, { children: "True" }), 'true'),
20
+ _jsx(Experiment, __assign({ weight: 50 }, { children: "False" }), 'false'),
21
+ ],
22
+ name: 'StorybookAB',
23
+ };
24
+ export { Default };
25
+ // eslint-disable-next-line import/no-default-export
26
+ export default StorybookEntry;
27
+ //# sourceMappingURL=Experiments.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Experiments.stories.js","sourceRoot":"","sources":["../../../src/components/Experiments/Experiments.stories.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,IAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI;SACX;KACF;IACD,KAAK,EAAE,wBAAwB;CACK,CAAA;AAEtC,IAAM,QAAQ,GAAuC,UAAC,IAAI,IAAK,OAAA,KAAC,WAAW,eAAK,IAAI,UAAgB,EAArC,CAAqC,CAAA;AAEpG,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,IAAI,GAAG;IACb,QAAQ,EAAE;QACR,KAAC,UAAU,aAAC,MAAM,EAAE,EAAE,2BAAO,MAAM,CAEtB;QACb,KAAC,UAAU,aAAC,MAAM,EAAE,EAAE,4BAAO,OAAO,CAEvB;KACd;IACD,IAAI,EAAE,aAAa;CACpB,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ExperimentsDebugger: React.FC;
3
+ export { ExperimentsDebugger };
@@ -0,0 +1,37 @@
1
+ import { __assign, __read, __rest, __spreadArray } from "tslib";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Slider, Typography } from '@mui/material';
4
+ import { useLocalStorage } from '../../hooks';
5
+ import { FlexCol, FlexRow } from '../FlexBox';
6
+ import { ExperimentsLocalStorageKey, OutcomesLocalStorageKey, } from './models';
7
+ var ExperimentsDebugger = function (_a) {
8
+ var props = __rest(_a, []);
9
+ var _b = __read(useLocalStorage(ExperimentsLocalStorageKey, {}), 1), experiments = _b[0];
10
+ var _c = __read(useLocalStorage(OutcomesLocalStorageKey, {}), 2), outcomes = _c[0], setOutcomes = _c[1];
11
+ var sumUpVariants = function (items) { return items.reduce(function (acc, curr) { return acc + curr.weight; }, 0); };
12
+ var experimentEntries = Object.entries(experiments);
13
+ if (!experiments || !experimentEntries.length) {
14
+ return (_jsxs(FlexCol, __assign({ alignItems: "stretch" }, props, { children: [_jsx(Typography, __assign({ variant: "subtitle1" }, { children: "No Experiments loaded" }), void 0), _jsx(Typography, __assign({ variant: "subtitle2" }, { children: "Visit a page with an experiment to load the data" }), void 0)] }), void 0));
15
+ }
16
+ return (_jsx(FlexCol, __assign({ alignItems: "stretch" }, props, { children: Object.entries(experiments).map(function (data) {
17
+ var _a = __read(data, 2), name = _a[0], experiment = _a[1];
18
+ var outcome = (outcomes[name] || 0);
19
+ var marks = __spreadArray([
20
+ { label: "".concat(experiment.variants[0].name, " | ").concat(experiment.variants[0].weight), value: 0 }
21
+ ], __read(experiment.variants.map(function (_a, index) {
22
+ var weight = _a.weight;
23
+ return ({
24
+ label: index === experiment.variants.length - 1 ? 'End' : "".concat(experiment.variants[index + 1].name, " | ").concat(weight),
25
+ value: index === 0 ? weight : sumUpVariants(experiment.variants.slice(0, index + 1)),
26
+ });
27
+ })), false);
28
+ return (_jsxs(FlexCol, __assign({ alignItems: "stretch", paddingX: 4, marginBottom: 4 }, props, { children: [_jsxs(FlexRow, { children: [name, ":\u00A0", outcome] }, void 0), _jsx(FlexRow, { children: _jsx(Slider, { "aria-label": "Experiment ".concat(name), defaultValue: outcome, value: outcome, marks: marks, onChange: function (e, value) {
29
+ var truncated = Number((Array.isArray(value) ? value[0] : value).toFixed(2));
30
+ outcomes[name] = truncated;
31
+ // Spread operator triggers rerender
32
+ setOutcomes(__assign({}, outcomes));
33
+ } }, void 0) }, void 0)] }), "experiment-".concat(name)));
34
+ }) }), void 0));
35
+ };
36
+ export { ExperimentsDebugger };
37
+ //# sourceMappingURL=ExperimentsDebugger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExperimentsDebugger.js","sourceRoot":"","sources":["../../../src/components/Experiments/ExperimentsDebugger.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { ComponentMeta, ComponentStory } from '@storybook/react';
3
+ declare const StorybookEntry: ComponentMeta<import("react").FC<{}>>;
4
+ declare const Default: ComponentStory<import("react").FC<{}>>;
5
+ export { Default };
6
+ export default StorybookEntry;
@@ -0,0 +1,20 @@
1
+ import { __assign } from "tslib";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { ExperimentsDebugger } from './index';
4
+ var StorybookEntry = {
5
+ argTypes: {},
6
+ component: ExperimentsDebugger,
7
+ parameters: {
8
+ docs: {
9
+ page: null,
10
+ },
11
+ },
12
+ title: 'Components/ExperimentsDebugger',
13
+ };
14
+ var Template = function (args) { return _jsx(ExperimentsDebugger, __assign({}, args), void 0); };
15
+ var Default = Template.bind({});
16
+ Default.args = {};
17
+ export { Default };
18
+ // eslint-disable-next-line import/no-default-export
19
+ export default StorybookEntry;
20
+ //# sourceMappingURL=ExperimentsDebugger.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExperimentsDebugger.stories.js","sourceRoot":"","sources":["../../../src/components/Experiments/ExperimentsDebugger.stories.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C,IAAM,cAAc,GAAG;IACrB,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,mBAAmB;IAC9B,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI;SACX;KACF;IACD,KAAK,EAAE,gCAAgC;CACK,CAAA;AAE9C,IAAM,QAAQ,GAA+C,UAAC,IAAI,IAAK,OAAA,KAAC,mBAAmB,eAAK,IAAI,UAAI,EAAjC,CAAiC,CAAA;AAExG,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAA;AAEjB,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,oDAAoD;AACpD,eAAe,cAAc,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { ReactElement } from 'react';
2
+ import { ExperimentProps } from './Experiment';
3
+ export declare type ExperimentsProps = {
4
+ children: ReactElement<ExperimentProps>[] | ReactElement<ExperimentProps>;
5
+ localStorageProp?: string | boolean;
6
+ name: string;
7
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ExperimentsProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExperimentsProps.js","sourceRoot":"","sources":["../../../src/components/Experiments/ExperimentsProps.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
1
  import { Experiment } from './Experiment';
2
2
  import { Experiments } from './Experiments';
3
- export { Experiment, Experiments };
3
+ import { ExperimentsDebugger } from './ExperimentsDebugger';
4
+ export { Experiment, Experiments, ExperimentsDebugger };
@@ -1,4 +1,5 @@
1
1
  import { Experiment } from './Experiment';
2
2
  import { Experiments } from './Experiments';
3
- export { Experiment, Experiments };
3
+ import { ExperimentsDebugger } from './ExperimentsDebugger';
4
+ export { Experiment, Experiments, ExperimentsDebugger };
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Experiments/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Experiments/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
@@ -0,0 +1,12 @@
1
+ export declare const OutcomesLocalStorageKey = "outcomes";
2
+ export declare const ExperimentsLocalStorageKey = "experiments";
3
+ export declare type OutcomesData = Record<string, number>;
4
+ export declare type ExperimentsData = Record<string, ExperimentData>;
5
+ export declare type ExperimentData = {
6
+ totalWeight: number;
7
+ variants: VariantData[];
8
+ };
9
+ export declare type VariantData = {
10
+ weight: number;
11
+ name?: string;
12
+ };
@@ -0,0 +1,3 @@
1
+ export var OutcomesLocalStorageKey = 'outcomes';
2
+ export var ExperimentsLocalStorageKey = 'experiments';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Experiments/models/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAU,CAAA;AACjD,MAAM,CAAC,IAAM,0BAA0B,GAAG,aAAa,CAAA"}
@@ -7,7 +7,9 @@ interface BasePageProps extends BoxProps {
7
7
  beta?: boolean;
8
8
  container?: 'xl' | 'lg' | 'md' | 'sm' | 'xs';
9
9
  disableGutters?: boolean;
10
+ filterBar?: ReactElement;
10
11
  hideAppBar?: boolean;
12
+ hideFilterBar?: boolean;
11
13
  hideFooter?: boolean;
12
14
  noindex?: boolean;
13
15
  cookieConsent?: ReactNode;
@@ -1,6 +1,7 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
2
  export interface ExperimentProps {
3
3
  weight: number;
4
+ key: string;
4
5
  }
5
6
  declare const Experiment: React.FC<PropsWithChildren<ExperimentProps>>;
6
7
  export { Experiment };
@@ -1,9 +1,4 @@
1
- import React, { ReactElement } from 'react';
2
- import { ExperimentProps } from './Experiment';
3
- declare type Props = {
4
- children: ReactElement<ExperimentProps>[] | ReactElement<ExperimentProps>;
5
- localStorageProp?: string | boolean;
6
- name: string;
7
- };
8
- declare const Experiments: React.FC<Props>;
1
+ import React from 'react';
2
+ import { ExperimentsProps } from './ExperimentsProps';
3
+ declare const Experiments: React.FC<ExperimentsProps>;
9
4
  export { Experiments };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { ComponentMeta, ComponentStory } from '@storybook/react';
3
+ declare const StorybookEntry: ComponentMeta<import("react").FC<import("./ExperimentsProps").ExperimentsProps>>;
4
+ declare const Default: ComponentStory<import("react").FC<import("./ExperimentsProps").ExperimentsProps>>;
5
+ export { Default };
6
+ export default StorybookEntry;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ExperimentsDebugger: React.FC;
3
+ export { ExperimentsDebugger };
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { ComponentMeta, ComponentStory } from '@storybook/react';
3
+ declare const StorybookEntry: ComponentMeta<import("react").FC<{}>>;
4
+ declare const Default: ComponentStory<import("react").FC<{}>>;
5
+ export { Default };
6
+ export default StorybookEntry;
@@ -0,0 +1,7 @@
1
+ import { ReactElement } from 'react';
2
+ import { ExperimentProps } from './Experiment';
3
+ export declare type ExperimentsProps = {
4
+ children: ReactElement<ExperimentProps>[] | ReactElement<ExperimentProps>;
5
+ localStorageProp?: string | boolean;
6
+ name: string;
7
+ };
@@ -1,3 +1,4 @@
1
1
  import { Experiment } from './Experiment';
2
2
  import { Experiments } from './Experiments';
3
- export { Experiment, Experiments };
3
+ import { ExperimentsDebugger } from './ExperimentsDebugger';
4
+ export { Experiment, Experiments, ExperimentsDebugger };
@@ -0,0 +1,12 @@
1
+ export declare const OutcomesLocalStorageKey = "outcomes";
2
+ export declare const ExperimentsLocalStorageKey = "experiments";
3
+ export declare type OutcomesData = Record<string, number>;
4
+ export declare type ExperimentsData = Record<string, ExperimentData>;
5
+ export declare type ExperimentData = {
6
+ totalWeight: number;
7
+ variants: VariantData[];
8
+ };
9
+ export declare type VariantData = {
10
+ weight: number;
11
+ name?: string;
12
+ };
@@ -1,4 +1,5 @@
1
1
  export * from './useBreakpoint';
2
+ export * from './useLocalStorage';
2
3
  export * from './useMediaQuery';
3
4
  export * from './useMounted';
4
5
  export * from './useNavigateToEthAddress';
@@ -0,0 +1 @@
1
+ export declare const useLocalStorage: <T>(key: string, defaultValue: T) => [T, (value: T) => void];
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { useTheme, Box, alpha, CircularProgress, LinearProgress, Paper, Typography, IconButton, useScrollTrigger, Zoom, AppBar, Container, Toolbar, Button, Link, responsiveFontSizes, ScopedCssBaseline, ThemeProvider, Fab, Breadcrumbs, Dialog, DialogTitle, DialogContent, DialogActions, useMediaQuery } from '@mui/material';
2
+ import { useTheme, Box, alpha, CircularProgress, LinearProgress, Paper, Typography, IconButton, useScrollTrigger, Zoom, AppBar, Container, Toolbar, Button, Link, responsiveFontSizes, ScopedCssBaseline, ThemeProvider, Fab, Breadcrumbs, Dialog, DialogTitle, DialogContent, DialogActions, useMediaQuery, Slider } from '@mui/material';
3
3
  export { useMediaQuery } from '@mui/material';
4
4
  import { AiOutlineReload, AiOutlineQuestionCircle } from 'react-icons/ai';
5
5
  import { makeStyles, createStyles } from '@mui/styles';
@@ -135,6 +135,16 @@ function __read(o, n) {
135
135
  finally { if (e) throw e.error; }
136
136
  }
137
137
  return ar;
138
+ }
139
+
140
+ function __spreadArray(to, from, pack) {
141
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
142
+ if (ar || !(i in from)) {
143
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
144
+ ar[i] = from[i];
145
+ }
146
+ }
147
+ return to.concat(ar || Array.prototype.slice.call(from));
138
148
  }
139
149
 
140
150
  var BusyCircularProgress = function (_a) {
@@ -2146,10 +2156,10 @@ var InvertableThemeProvider = function (_a) {
2146
2156
  };
2147
2157
 
2148
2158
  var BasePage = function (_a) {
2149
- var disableGutters = _a.disableGutters, children = _a.children, beta = _a.beta, container = _a.container, hideFooter = _a.hideFooter, appFooter = _a.appFooter, appBar = _a.appBar, cookieConsent = _a.cookieConsent, hideAppBar = _a.hideAppBar, _b = _a.noindex, noindex = _b === void 0 ? false : _b, _c = _a.scrollToTopButton, scrollToTopButton = _c === void 0 ? false : _c, title = _a.title, props = __rest(_a, ["disableGutters", "children", "beta", "container", "hideFooter", "appFooter", "appBar", "cookieConsent", "hideAppBar", "noindex", "scrollToTopButton", "title"]);
2159
+ var disableGutters = _a.disableGutters, children = _a.children, beta = _a.beta, container = _a.container, hideFooter = _a.hideFooter, appFooter = _a.appFooter, appBar = _a.appBar, cookieConsent = _a.cookieConsent, filterBar = _a.filterBar, hideAppBar = _a.hideAppBar, hideFilterBar = _a.hideFilterBar, _b = _a.noindex, noindex = _b === void 0 ? false : _b, _c = _a.scrollToTopButton, scrollToTopButton = _c === void 0 ? false : _c, title = _a.title, props = __rest(_a, ["disableGutters", "children", "beta", "container", "hideFooter", "appFooter", "appBar", "cookieConsent", "filterBar", "hideAppBar", "hideFilterBar", "noindex", "scrollToTopButton", "title"]);
2150
2160
  var theme = useTheme();
2151
2161
  var scrollToTopAnchorId = 'scroll-to-top-anchor';
2152
- return (jsxs(FlexCol, __assign({ justifyContent: "flex-start", color: theme.palette.text.primary, alignItems: "stretch", width: "100%", maxWidth: "100vw", minHeight: "100vh" }, props, { children: [jsx(Helmet, __assign({ title: title }, { children: noindex ? jsx("meta", { content: "noindex", name: "robots" }, void 0) : null }), void 0), scrollToTopButton ? jsx("div", { id: scrollToTopAnchorId }, void 0) : null, hideAppBar ? null : appBar, beta ? (jsx(FlexRow, __assign({ margin: 1, position: "absolute", top: 0, left: 0, bgcolor: "#cccccc88", paddingX: 1, style: { opacity: 0.5 } }, { children: jsx(Typography, __assign({ variant: "body2" }, { children: "Important: This page is a Beta page. It is possible that some information may not be correct." }), void 0) }), void 0)) : null, container ? (jsx(Container, __assign({ style: { alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1 }, maxWidth: container, disableGutters: disableGutters }, { children: children }), void 0)) : (children), hideFooter ? null : jsx("footer", { children: appFooter }, void 0), cookieConsent !== null && cookieConsent !== void 0 ? cookieConsent : (jsx(ScopedCssBaseline, { children: jsx(InvertableThemeProvider, __assign({ invert: true }, { children: jsx(CookieConsent, { borderRadius: 0 }, void 0) }), void 0) }, void 0)), scrollToTopButton ? (jsx(ScrollToTopButton, __assign({ anchorId: scrollToTopAnchorId }, { children: jsx(Fab, __assign({ "aria-label": "scroll to top", color: "secondary", size: "small" }, { children: jsx(KeyboardArrowUp, {}, void 0) }), void 0) }), void 0)) : null] }), void 0));
2162
+ return (jsxs(FlexCol, __assign({ justifyContent: "flex-start", color: theme.palette.text.primary, alignItems: "stretch", width: "100%", maxWidth: "100vw", minHeight: "100vh" }, props, { children: [jsx(Helmet, __assign({ title: title }, { children: noindex ? jsx("meta", { content: "noindex", name: "robots" }, void 0) : null }), void 0), scrollToTopButton ? jsx("div", { id: scrollToTopAnchorId }, void 0) : null, hideAppBar ? null : appBar, hideFilterBar ? null : filterBar, beta ? (jsx(FlexRow, __assign({ margin: 1, position: "absolute", top: 0, left: 0, bgcolor: "#cccccc88", paddingX: 1, style: { opacity: 0.5 } }, { children: jsx(Typography, __assign({ variant: "body2" }, { children: "Important: This page is a Beta page. It is possible that some information may not be correct." }), void 0) }), void 0)) : null, container ? (jsx(Container, __assign({ style: { alignItems: 'stretch', display: 'flex', flexDirection: 'column', flexGrow: 1 }, maxWidth: container, disableGutters: disableGutters }, { children: children }), void 0)) : (children), hideFooter ? null : jsx("footer", { children: appFooter }, void 0), cookieConsent !== null && cookieConsent !== void 0 ? cookieConsent : (jsx(ScopedCssBaseline, { children: jsx(InvertableThemeProvider, __assign({ invert: true }, { children: jsx(CookieConsent, { borderRadius: 0 }, void 0) }), void 0) }, void 0)), scrollToTopButton ? (jsx(ScrollToTopButton, __assign({ anchorId: scrollToTopAnchorId }, { children: jsx(Fab, __assign({ "aria-label": "scroll to top", color: "secondary", size: "small" }, { children: jsx(KeyboardArrowUp, {}, void 0) }), void 0) }), void 0)) : null] }), void 0));
2153
2163
  };
2154
2164
 
2155
2165
  var getPartialPath = function (pathParts, index) {
@@ -2229,6 +2239,26 @@ var useBreakpoint = function () {
2229
2239
  }
2230
2240
  };
2231
2241
 
2242
+ var useLocalStorage = function (key, defaultValue) {
2243
+ var _a = __read(useState(function () {
2244
+ try {
2245
+ var item = getLocalStorageObject(key);
2246
+ return item || defaultValue;
2247
+ }
2248
+ catch (ex) {
2249
+ //Error is already logged
2250
+ return defaultValue;
2251
+ }
2252
+ }), 2), storedValue = _a[0], setStoredValue = _a[1];
2253
+ var setValue = function (value) {
2254
+ console.log('setValue', value);
2255
+ setStoredValue(value);
2256
+ setLocalStorageObject(key, value);
2257
+ console.log('getValue from ls', getLocalStorageObject(key));
2258
+ };
2259
+ return [storedValue, setValue];
2260
+ };
2261
+
2232
2262
  var useMounted = function () {
2233
2263
  var _a = __read(useState(true), 2), mounted = _a[0], setMounted = _a[1];
2234
2264
  useEffect(function () {
@@ -2352,14 +2382,17 @@ var Experiment = function (props) {
2352
2382
  return jsx(Fragment, { children: children }, void 0);
2353
2383
  };
2354
2384
 
2385
+ var OutcomesLocalStorageKey = 'outcomes';
2386
+ var ExperimentsLocalStorageKey = 'experiments';
2387
+
2355
2388
  var defaultLocalStorageKey = 'testData';
2356
2389
  var experimentsTestData = {};
2357
2390
  var outcomes = {}; //prevent multi-outcome
2358
2391
  var saveOutcomes = function () {
2359
- setLocalStorageObject('outcomes', outcomes);
2392
+ setLocalStorageObject(OutcomesLocalStorageKey, outcomes);
2360
2393
  };
2361
2394
  var loadOutcomes = function () {
2362
- outcomes = getLocalStorageObject('outcomes');
2395
+ outcomes = getLocalStorageObject(OutcomesLocalStorageKey);
2363
2396
  };
2364
2397
  var mergeData = function (data, log) {
2365
2398
  var dataArray = [];
@@ -2403,6 +2436,20 @@ var calcTotalWeight = function (childList) {
2403
2436
  }
2404
2437
  return totalWeight;
2405
2438
  };
2439
+ var saveExperimentDebugRanges = function (name, totalWeight, childList) {
2440
+ var experiments = getLocalStorageObject(ExperimentsLocalStorageKey) || {};
2441
+ experiments[name] = {
2442
+ totalWeight: totalWeight,
2443
+ variants: childList.map(function (child) {
2444
+ var _a;
2445
+ return ({
2446
+ name: (_a = child.key) === null || _a === void 0 ? void 0 : _a.toString(),
2447
+ weight: child.props.weight,
2448
+ });
2449
+ }),
2450
+ };
2451
+ setLocalStorageObject(ExperimentsLocalStorageKey, experiments);
2452
+ };
2406
2453
  var Experiments = function (props) {
2407
2454
  var e_2, _a;
2408
2455
  var _b, _c;
@@ -2413,6 +2460,7 @@ var Experiments = function (props) {
2413
2460
  var localStorageKey = buildLocalStorageKey(localStorageProp);
2414
2461
  var childList = makeChildrenArray(children);
2415
2462
  var totalWeight = calcTotalWeight(childList);
2463
+ saveExperimentDebugRanges(name, totalWeight, childList);
2416
2464
  var firstTime = outcomes[name] === undefined;
2417
2465
  var targetWeight = (_b = outcomes[name]) !== null && _b !== void 0 ? _b : Math.random() * totalWeight;
2418
2466
  outcomes[name] = targetWeight;
@@ -2448,6 +2496,36 @@ var Experiments = function (props) {
2448
2496
  throw new Error('Experiment Choice Failed');
2449
2497
  };
2450
2498
 
2499
+ var ExperimentsDebugger = function (_a) {
2500
+ var props = __rest(_a, []);
2501
+ var _b = __read(useLocalStorage(ExperimentsLocalStorageKey, {}), 1), experiments = _b[0];
2502
+ var _c = __read(useLocalStorage(OutcomesLocalStorageKey, {}), 2), outcomes = _c[0], setOutcomes = _c[1];
2503
+ var sumUpVariants = function (items) { return items.reduce(function (acc, curr) { return acc + curr.weight; }, 0); };
2504
+ var experimentEntries = Object.entries(experiments);
2505
+ if (!experiments || !experimentEntries.length) {
2506
+ return (jsxs(FlexCol, __assign({ alignItems: "stretch" }, props, { children: [jsx(Typography, __assign({ variant: "subtitle1" }, { children: "No Experiments loaded" }), void 0), jsx(Typography, __assign({ variant: "subtitle2" }, { children: "Visit a page with an experiment to load the data" }), void 0)] }), void 0));
2507
+ }
2508
+ return (jsx(FlexCol, __assign({ alignItems: "stretch" }, props, { children: Object.entries(experiments).map(function (data) {
2509
+ var _a = __read(data, 2), name = _a[0], experiment = _a[1];
2510
+ var outcome = (outcomes[name] || 0);
2511
+ var marks = __spreadArray([
2512
+ { label: "".concat(experiment.variants[0].name, " | ").concat(experiment.variants[0].weight), value: 0 }
2513
+ ], __read(experiment.variants.map(function (_a, index) {
2514
+ var weight = _a.weight;
2515
+ return ({
2516
+ label: index === experiment.variants.length - 1 ? 'End' : "".concat(experiment.variants[index + 1].name, " | ").concat(weight),
2517
+ value: index === 0 ? weight : sumUpVariants(experiment.variants.slice(0, index + 1)),
2518
+ });
2519
+ })), false);
2520
+ return (jsxs(FlexCol, __assign({ alignItems: "stretch", paddingX: 4, marginBottom: 4 }, props, { children: [jsxs(FlexRow, { children: [name, ":\u00A0", outcome] }, void 0), jsx(FlexRow, { children: jsx(Slider, { "aria-label": "Experiment ".concat(name), defaultValue: outcome, value: outcome, marks: marks, onChange: function (e, value) {
2521
+ var truncated = Number((Array.isArray(value) ? value[0] : value).toFixed(2));
2522
+ outcomes[name] = truncated;
2523
+ // Spread operator triggers rerender
2524
+ setOutcomes(__assign({}, outcomes));
2525
+ } }, void 0) }, void 0)] }), "experiment-".concat(name)));
2526
+ }) }), void 0));
2527
+ };
2528
+
2451
2529
  var LinkToEx = function (_a) {
2452
2530
  var to = _a.to, props = __rest(_a, ["to"]);
2453
2531
  return jsx(Link, __assign({ component: Link$1, to: to }, props), void 0);
@@ -2549,5 +2627,5 @@ var TokenAmount = function (_a) {
2549
2627
  return (jsx(ButtonEx, __assign({ style: __assign({ backgroundColor: statusColor }, style), variant: "outlined", onClick: onButtonClick }, props, { children: jsxs(FlexRow, __assign({ justifyContent: "space-between", width: "100%", busy: amount === undefined, busySize: 16 }, { children: [jsxs(FlexRow, { children: [logo ? jsx("img", { src: img, height: 24 }, void 0) : null, label ? (jsx(Typography, __assign({ marginRight: 1, marginLeft: logo ? 1 : 0, noWrap: true, fontFamily: textFontFamily, variant: "caption" }, { children: label }), void 0)) : null] }, void 0), jsx(Typography, __assign({ color: textColor, noWrap: true, fontFamily: textFontFamily, variant: "body1", style: { textTransform: 'none' } }, { children: amountString }), void 0)] }), void 0) }), void 0));
2550
2628
  };
2551
2629
 
2552
- export { ActionStatusType, AppBarEx, Background, BasePage, BreadcrumbsEx, BusyBox, ButtonEx, ContactPointOption, CookieConsent, CookieConsentBody, CookieConsentContext, CookieConsentLoader, CoverProgress, DripCustomEvent, DripStandardEvents, ErrorDialog, EthAccount, EthersContext, EthersLoader, Experiment, Experiments, FacebookCustomEvent, FacebookStandardEvents, Fbq, FlexCol, FlexGrowCol, FlexGrowRow, FlexRow, GoogleBaseEvent, GoogleCustomEvent, GoogleStandardEvents, GoogleUserEventHandler, Gtag, Gtm, HoverScale, Identicon, InvertableThemeProvider, ItemAvailability, LinkToEx, MapCategoryType, MessageDialog, NetworkSettingsContext, NetworkSettingsLoader, NumberStatus, QuickTipButton, Rdt, RedditCustomEvent, RedditStandardEvents, RedirectWithQuery, Referrer, RichResult, ScrollToTop, ScrollToTopButton, SnapTr, SnapchatStandardEvents, TiktokCustomEvent, TiktokStandardEvents, TokenAmount, Ttq, UserEventsContext, XyBaseEvent, XyCustomEvent, XyUserEventHandler, XyoUserEventHandler, enableProfileLogging, getApiStage, getLocalStorageObject, getSessionStorageObject, isLocalhost, profileBlock, profileResults, setLocalStorageObject, setSessionStorageObject, useAsyncEffect, useBreakpoint, useCookieConsent, useMounted, useNavigateToEthAddress, useSpacing, useWebP, useWindowSize };
2630
+ export { ActionStatusType, AppBarEx, Background, BasePage, BreadcrumbsEx, BusyBox, ButtonEx, ContactPointOption, CookieConsent, CookieConsentBody, CookieConsentContext, CookieConsentLoader, CoverProgress, DripCustomEvent, DripStandardEvents, ErrorDialog, EthAccount, EthersContext, EthersLoader, Experiment, Experiments, ExperimentsDebugger, FacebookCustomEvent, FacebookStandardEvents, Fbq, FlexCol, FlexGrowCol, FlexGrowRow, FlexRow, GoogleBaseEvent, GoogleCustomEvent, GoogleStandardEvents, GoogleUserEventHandler, Gtag, Gtm, HoverScale, Identicon, InvertableThemeProvider, ItemAvailability, LinkToEx, MapCategoryType, MessageDialog, NetworkSettingsContext, NetworkSettingsLoader, NumberStatus, QuickTipButton, Rdt, RedditCustomEvent, RedditStandardEvents, RedirectWithQuery, Referrer, RichResult, ScrollToTop, ScrollToTopButton, SnapTr, SnapchatStandardEvents, TiktokCustomEvent, TiktokStandardEvents, TokenAmount, Ttq, UserEventsContext, XyBaseEvent, XyCustomEvent, XyUserEventHandler, XyoUserEventHandler, enableProfileLogging, getApiStage, getLocalStorageObject, getSessionStorageObject, isLocalhost, profileBlock, profileResults, setLocalStorageObject, setSessionStorageObject, useAsyncEffect, useBreakpoint, useCookieConsent, useLocalStorage, useMounted, useNavigateToEthAddress, useSpacing, useWebP, useWindowSize };
2553
2631
  //# sourceMappingURL=index.js.map