@aclymatepackages/modules 1.0.0

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 (45) hide show
  1. package/README.md +43 -0
  2. package/babel.config.json +18 -0
  3. package/dist/components/CompaniesAutocomplete.js +126 -0
  4. package/dist/components/CompanyOnboardingInput.js +116 -0
  5. package/dist/components/ComparisonChart.js +200 -0
  6. package/dist/components/CustomTooltipDisplayRow.js +59 -0
  7. package/dist/components/EmissionsChart.js +467 -0
  8. package/dist/components/EmissionsCustomTooltip.js +181 -0
  9. package/dist/components/EmissionsPieChart.js +130 -0
  10. package/dist/components/EmissionsReductionGraph.js +118 -0
  11. package/dist/components/FootprintEquivalencies.js +181 -0
  12. package/dist/components/FootprintVideo.js +262 -0
  13. package/dist/components/FuelTypesSelect.js +36 -0
  14. package/dist/components/IndustryAutocomplete.js +58 -0
  15. package/dist/components/PlacesAutocomplete.js +173 -0
  16. package/dist/components/StripeElements.js +95 -0
  17. package/dist/components/YesNoQuestion.js +88 -0
  18. package/dist/components/stripeInput.js +293 -0
  19. package/dist/components/useChartWarningLabels.js +143 -0
  20. package/dist/index.js +118 -0
  21. package/package.json +74 -0
  22. package/public/favicon.ico +0 -0
  23. package/public/index.html +43 -0
  24. package/public/logo192.png +0 -0
  25. package/public/logo512.png +0 -0
  26. package/public/manifest.json +25 -0
  27. package/public/robots.txt +3 -0
  28. package/src/components/CompaniesAutocomplete.js +125 -0
  29. package/src/components/CompanyOnboardingInput.js +113 -0
  30. package/src/components/ComparisonChart.js +236 -0
  31. package/src/components/CustomTooltipDisplayRow.js +41 -0
  32. package/src/components/EmissionsChart.js +579 -0
  33. package/src/components/EmissionsCustomTooltip.js +146 -0
  34. package/src/components/EmissionsPieChart.js +120 -0
  35. package/src/components/EmissionsReductionGraph.js +107 -0
  36. package/src/components/FootprintEquivalencies.js +203 -0
  37. package/src/components/FootprintVideo.js +328 -0
  38. package/src/components/FuelTypesSelect.js +29 -0
  39. package/src/components/IndustryAutocomplete.js +56 -0
  40. package/src/components/PlacesAutocomplete.js +174 -0
  41. package/src/components/StripeElements.js +95 -0
  42. package/src/components/YesNoQuestion.js +68 -0
  43. package/src/components/stripeInput.js +288 -0
  44. package/src/components/useChartWarningLabels.js +139 -0
  45. package/src/index.js +35 -0
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.assign.js");
4
+ require("core-js/modules/es.weak-map.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
+ require("core-js/modules/es.array.reduce.js");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _reactCountup = _interopRequireDefault(require("react-countup"));
13
+ var _typewriterEffect = _interopRequireDefault(require("typewriter-effect"));
14
+ var _styles = require("@mui/material/styles");
15
+ var _material = require("@mui/material");
16
+ var _atoms = require("@aclymatepackages/atoms");
17
+ var _arrayImmutabilityHelpers = require("@aclymatepackages/array-immutability-helpers");
18
+ var _themes = require("@aclymatepackages/themes");
19
+ var _converters = require("@aclymatepackages/converters");
20
+ var _formatters = require("@aclymatepackages/formatters");
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
+ const OnboardingFootprintLayout = _ref => {
26
+ let {
27
+ children
28
+ } = _ref;
29
+ const [backgroundFade, setBackgroundFade] = (0, _react.useState)(false);
30
+ (0, _react.useEffect)(() => {
31
+ const fadeBackground = setTimeout(() => setBackgroundFade(true), 1500);
32
+ return () => clearTimeout(fadeBackground);
33
+ }, []);
34
+ return /*#__PURE__*/_react.default.createElement(_material.Box, {
35
+ style: {
36
+ position: "absolute",
37
+ top: 0,
38
+ left: 0,
39
+ bottom: 0,
40
+ right: 0,
41
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
42
+ opacity: backgroundFade ? 1 : 0,
43
+ transition: "opacity 1s"
44
+ },
45
+ display: "flex",
46
+ alignItems: "center",
47
+ justifyContent: "center",
48
+ p: 4
49
+ }, backgroundFade && /*#__PURE__*/_react.default.createElement(_styles.ThemeProvider, {
50
+ theme: _themes.mergeDarkTheme
51
+ }, children));
52
+ };
53
+ const VideoFootprintDisplay = _ref2 => {
54
+ let {
55
+ monthlyFootprintTons,
56
+ onAdvanceSlide
57
+ } = _ref2;
58
+ const [showCaption, setShowCaption] = (0, _react.useState)(false);
59
+ (0, _react.useEffect)(() => {
60
+ const advanceSlide = setTimeout(onAdvanceSlide, 8500);
61
+ return () => clearTimeout(advanceSlide);
62
+ }, [onAdvanceSlide]);
63
+ return /*#__PURE__*/_react.default.createElement(OnboardingFootprintLayout, null, /*#__PURE__*/_react.default.createElement(_material.Grid, {
64
+ container: true,
65
+ direction: "column",
66
+ spacing: 2
67
+ }, /*#__PURE__*/_react.default.createElement(_material.Grid, {
68
+ item: true
69
+ }, /*#__PURE__*/_react.default.createElement(_reactCountup.default, {
70
+ delay: 0,
71
+ start: 0,
72
+ startOnMount: true,
73
+ end: Math.round((0, _converters.tonsToLbs)(monthlyFootprintTons)),
74
+ separator: ",",
75
+ decimal: ".",
76
+ suffix: " lbs.",
77
+ duration: 1.5,
78
+ onEnd: () => setShowCaption(true)
79
+ }, _ref3 => {
80
+ let {
81
+ countUpRef
82
+ } = _ref3;
83
+ return /*#__PURE__*/_react.default.createElement(_material.Typography, {
84
+ ref: countUpRef,
85
+ variant: "h2",
86
+ align: "center",
87
+ color: "textPrimary"
88
+ });
89
+ })), showCaption && /*#__PURE__*/_react.default.createElement(_material.Grid, {
90
+ item: true
91
+ }, /*#__PURE__*/_react.default.createElement(_material.Typography, {
92
+ variant: "h5",
93
+ align: "center",
94
+ color: "textSecondary"
95
+ }, /*#__PURE__*/_react.default.createElement(_typewriterEffect.default, {
96
+ options: {
97
+ strings: ["This is our preliminary estimate of your company's monthly carbon emissions."],
98
+ autoStart: true,
99
+ delay: 50,
100
+ deleteSpeed: 100000
101
+ }
102
+ })))));
103
+ };
104
+ const FootprintVideoIntermediateStep = _ref4 => {
105
+ let {
106
+ label,
107
+ onAdvanceSlide
108
+ } = _ref4;
109
+ (0, _react.useEffect)(() => {
110
+ const advanceSlide = setTimeout(onAdvanceSlide, 8000);
111
+ return () => clearTimeout(advanceSlide);
112
+ }, [onAdvanceSlide]);
113
+ return /*#__PURE__*/_react.default.createElement(OnboardingFootprintLayout, {
114
+ video: "logging"
115
+ }, /*#__PURE__*/_react.default.createElement(_material.Typography, {
116
+ variant: "h5",
117
+ align: "center",
118
+ color: "textSecondary"
119
+ }, /*#__PURE__*/_react.default.createElement(_typewriterEffect.default, {
120
+ options: {
121
+ strings: [label],
122
+ autoStart: true,
123
+ delay: 50,
124
+ deleteSpeed: 100000
125
+ }
126
+ })));
127
+ };
128
+ const FootprintVideoFinal = _ref5 => {
129
+ let {
130
+ actionButton,
131
+ onVideoEnd
132
+ } = _ref5;
133
+ const [showButton, setShowButton] = (0, _react.useState)(false);
134
+ (0, _react.useEffect)(() => {
135
+ const onShowButton = setTimeout(() => {
136
+ setShowButton(true);
137
+ if (onVideoEnd) {
138
+ onVideoEnd();
139
+ }
140
+ }, 9000);
141
+ return () => clearTimeout(onShowButton);
142
+ }, [onVideoEnd]);
143
+ return /*#__PURE__*/_react.default.createElement(OnboardingFootprintLayout, null, /*#__PURE__*/_react.default.createElement(_material.Grid, {
144
+ container: true,
145
+ direction: "column",
146
+ spacing: 2,
147
+ alignItems: "center"
148
+ }, /*#__PURE__*/_react.default.createElement(_material.Grid, {
149
+ item: true
150
+ }, /*#__PURE__*/_react.default.createElement(_material.Typography, {
151
+ variant: "h5",
152
+ align: "center",
153
+ color: "textSecondary"
154
+ }, /*#__PURE__*/_react.default.createElement(_typewriterEffect.default, {
155
+ onInit: typewriter => typewriter.changeDelay(50).typeString("But all of that ends now.").pauseFor(1500).typeString(" Welcome to your climate journey.").start()
156
+ }))), /*#__PURE__*/_react.default.createElement(_material.Fade, {
157
+ in: showButton
158
+ }, /*#__PURE__*/_react.default.createElement(_material.Grid, {
159
+ item: true
160
+ }, actionButton))));
161
+ };
162
+ const FootprintVideo = _ref6 => {
163
+ let {
164
+ monthlyFootprintTons,
165
+ footprintLoading,
166
+ actionButton,
167
+ onVideoEnd
168
+ } = _ref6;
169
+ const [videoStep, setVideoStep] = (0, _react.useState)(0);
170
+ const [loadedVideos, setLoadedVideos] = (0, _react.useState)({
171
+ pollution: false,
172
+ driving: false,
173
+ logging: false,
174
+ glacier: false,
175
+ monthly: false,
176
+ mountains: false
177
+ });
178
+ const [showVideos, setShowVideos] = (0, _react.useState)(false);
179
+ const onVideoLoaded = video => (0, _arrayImmutabilityHelpers.editObjectData)(setLoadedVideos, video, true);
180
+ const pollutionVideoRef = (0, _react.useRef)();
181
+ const drivingVideoRef = (0, _react.useRef)();
182
+ const loggingVideoRef = (0, _react.useRef)();
183
+ const glacierVideoRef = (0, _react.useRef)();
184
+ const monthlyVideoRef = (0, _react.useRef)();
185
+ const mountainsVideoRef = (0, _react.useRef)();
186
+ const videoRefsArray = [pollutionVideoRef, drivingVideoRef, loggingVideoRef, glacierVideoRef, monthlyVideoRef, mountainsVideoRef];
187
+ (0, _react.useEffect)(() => {
188
+ const areAllVideosLoaded = Object.values(loadedVideos).reduce((acc, isLoaded) => isLoaded && acc, true);
189
+ if (areAllVideosLoaded && !footprintLoading) {
190
+ setShowVideos(true);
191
+ }
192
+ }, [loadedVideos, footprintLoading]);
193
+ (0, _react.useEffect)(() => {
194
+ if (pollutionVideoRef.current && loggingVideoRef.current && glacierVideoRef.current && drivingVideoRef.current && monthlyVideoRef.current && mountainsVideoRef.current && showVideos) {
195
+ var _videoRefsArray$video;
196
+ (_videoRefsArray$video = videoRefsArray[videoStep]) === null || _videoRefsArray$video === void 0 || (_videoRefsArray$video = _videoRefsArray$video.current) === null || _videoRefsArray$video === void 0 || _videoRefsArray$video.play();
197
+ }
198
+ // eslint-disable-next-line
199
+ }, [videoStep, showVideos]);
200
+ const onAdvanceSlide = () => setVideoStep(currentStep => currentStep + 1);
201
+ const intermediateStepLabels = ["That's as much carbon as driving ".concat((0, _converters.convertFootprintToDriving)(monthlyFootprintTons), " miles."), "Or cutting down more than ".concat((0, _converters.convertFootprintToTrees)(monthlyFootprintTons), " 50-year-old tree").concat((0, _formatters.letterSBoolean)((0, _converters.convertFootprintToTrees)(monthlyFootprintTons)), "."), "It's enough to melt more than ".concat(formatDecimal((0, _converters.convertFootprintToIce)(monthlyFootprintTons)), " square feet of Arctic sea ice that will never come back."), "And your company emits this much carbon every single month."];
202
+ const onboardingFootprintSteps = [/*#__PURE__*/_react.default.createElement(VideoFootprintDisplay, {
203
+ monthlyFootprintTons: monthlyFootprintTons,
204
+ onAdvanceSlide: onAdvanceSlide
205
+ }), ...intermediateStepLabels.map((label, idx) => /*#__PURE__*/_react.default.createElement(FootprintVideoIntermediateStep, {
206
+ label: label,
207
+ onAdvanceSlide: onAdvanceSlide,
208
+ key: "video-intermediate-step-".concat(idx)
209
+ })), /*#__PURE__*/_react.default.createElement(FootprintVideoFinal, {
210
+ actionButton: actionButton,
211
+ onVideoEnd: onVideoEnd
212
+ })];
213
+ const buildVideoProps = idx => ({
214
+ autoPlay: !idx,
215
+ style: {
216
+ position: "absolute",
217
+ top: 0,
218
+ objectFit: "cover",
219
+ objectPosition: "center center",
220
+ opacity: showVideos && idx === videoStep ? 1 : 0,
221
+ transition: "opacity 1s",
222
+ marginBottom: "-10px",
223
+ width: "100%"
224
+ }
225
+ });
226
+ const buildSrcProps = video => ({
227
+ src: "/videos/".concat(video, ".mp4"),
228
+ type: "video/mp4"
229
+ });
230
+ const videos = ["pollution", "driving", "logging", "glacier", "monthly", "mountains"];
231
+ return /*#__PURE__*/_react.default.createElement(_material.Container, {
232
+ maxWidth: "md"
233
+ }, /*#__PURE__*/_react.default.createElement(_material.Paper, {
234
+ style: {
235
+ overflow: "hidden"
236
+ }
237
+ }, /*#__PURE__*/_react.default.createElement("div", {
238
+ style: {
239
+ position: "relative",
240
+ paddingTop: "56.25%"
241
+ }
242
+ }, !showVideos && /*#__PURE__*/_react.default.createElement(_material.Box, {
243
+ display: "flex",
244
+ alignItems: "center",
245
+ justifyContent: "center",
246
+ style: {
247
+ position: "absolute",
248
+ top: 0,
249
+ left: 0,
250
+ bottom: 0,
251
+ right: 0
252
+ }
253
+ }, /*#__PURE__*/_react.default.createElement(_atoms.AnimatedLogo, null)), videos.map((video, idx) => /*#__PURE__*/_react.default.createElement("video", _extends({
254
+ key: "footprint-video-".concat(idx),
255
+ muted: true
256
+ }, buildVideoProps(idx), {
257
+ ref: videoRefsArray[idx],
258
+ onLoadedData: () => onVideoLoaded(video)
259
+ }), /*#__PURE__*/_react.default.createElement("source", buildSrcProps(video)))), onboardingFootprintSteps[videoStep])));
260
+ };
261
+ var _default = FootprintVideo;
262
+ exports.default = _default;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _atoms = require("@aclymatepackages/atoms");
9
+ var _formatters = require("@aclymatepackages/formatters");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ const FuelTypesSelect = _ref => {
12
+ let {
13
+ fuelType,
14
+ editVehicle,
15
+ availableFuelTypes,
16
+ id,
17
+ smallFont,
18
+ variant,
19
+ noLabel
20
+ } = _ref;
21
+ return /*#__PURE__*/_react.default.createElement(_atoms.Select, {
22
+ id: id,
23
+ size: "small",
24
+ label: noLabel || "Fuel Type",
25
+ value: fuelType || "",
26
+ editValue: editVehicle,
27
+ options: availableFuelTypes.map(option => ({
28
+ label: (0, _formatters.ucFirstLetters)(option),
29
+ value: option
30
+ })),
31
+ smallFont: smallFont,
32
+ variant: variant
33
+ });
34
+ };
35
+ var _default = FuelTypesSelect;
36
+ exports.default = _default;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.weak-map.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ require("core-js/modules/web.dom-collections.iterator.js");
9
+ require("core-js/modules/es.object.assign.js");
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _Autocomplete = _interopRequireDefault(require("@mui/lab/Autocomplete"));
12
+ var _material = require("@mui/material");
13
+ var _lists = require("@aclymatepackages/lists");
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
18
+ const CustomPopper = props => /*#__PURE__*/_react.default.createElement(_material.Popper, _extends({}, props, {
19
+ style: {
20
+ width: "fit-content"
21
+ }
22
+ }));
23
+ const IndustryAutocomplete = _ref => {
24
+ let {
25
+ industry,
26
+ setIndustry,
27
+ style,
28
+ variant = "outlined",
29
+ label,
30
+ helperText,
31
+ textFieldProps
32
+ } = _ref;
33
+ const [inputValue, setInputValue] = (0, _react.useState)("");
34
+ return /*#__PURE__*/_react.default.createElement("div", {
35
+ onClick: e => e.stopPropagation(),
36
+ onFocus: e => e.stopPropagation()
37
+ }, /*#__PURE__*/_react.default.createElement(_Autocomplete.default, {
38
+ id: "company-industry-autocomplete",
39
+ options: _lists.industriesList,
40
+ getOptionLabel: option => typeof option === "string" ? option : option.label,
41
+ renderInput: params => /*#__PURE__*/_react.default.createElement(_material.TextField, _extends({}, params, {
42
+ label: label || "Company Industry",
43
+ fullWidth: true,
44
+ size: "small",
45
+ variant: variant,
46
+ style: style,
47
+ helperText: helperText
48
+ }, textFieldProps)),
49
+ inputValue: inputValue,
50
+ onInputChange: (e, newInputValue) => setInputValue(newInputValue),
51
+ onChange: (event, newValue) => setIndustry(newValue || null),
52
+ value: industry !== null && industry !== void 0 ? industry : null,
53
+ getOptionSelected: (option, value) => option.label === value.label,
54
+ PopperComponent: CustomPopper
55
+ }));
56
+ };
57
+ var _default = IndustryAutocomplete;
58
+ exports.default = _default;
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.assign.js");
4
+ require("core-js/modules/es.weak-map.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
+ require("core-js/modules/es.promise.js");
11
+ require("core-js/modules/es.regexp.exec.js");
12
+ require("core-js/modules/es.string.replace.js");
13
+ require("core-js/modules/esnext.string.replace-all.js");
14
+ require("core-js/modules/es.json.stringify.js");
15
+ require("core-js/modules/es.symbol.description.js");
16
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _parse = _interopRequireDefault(require("autosuggest-highlight/parse"));
18
+ var _Autocomplete = _interopRequireDefault(require("@mui/lab/Autocomplete"));
19
+ var _material = require("@mui/material");
20
+ var _fetchAclymateApi = _interopRequireDefault(require("@aclymatepackages/fetch-aclymate-api"));
21
+ var _reactFontawesome = require("@fortawesome/react-fontawesome");
22
+ var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
23
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
28
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
29
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
30
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
31
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
32
+ const PlacesAutocomplete = _ref => {
33
+ let {
34
+ place,
35
+ editPlace,
36
+ label,
37
+ errorMsg,
38
+ variant = "outlined",
39
+ size = "medium",
40
+ disabled,
41
+ helperText,
42
+ error,
43
+ id,
44
+ style,
45
+ textFieldProps,
46
+ coordinates
47
+ } = _ref;
48
+ const [inputValue, setInputValue] = (0, _react.useState)("");
49
+ const [options, setOptions] = (0, _react.useState)([]);
50
+ const [previousCharacterCount, setPreviousCharacterCount] = (0, _react.useState)(0);
51
+ const fetchPlaces = (0, _react.useCallback)(async _ref2 => {
52
+ let {
53
+ value,
54
+ signal
55
+ } = _ref2;
56
+ const formattedPlaceValue = (value || inputValue).replaceAll(/#|\?/gm, "");
57
+ const placeObj = {
58
+ place: formattedPlaceValue
59
+ };
60
+ const coordinatesObj = coordinates ? {
61
+ coordinates
62
+ } : {};
63
+ const dataString = JSON.stringify(_objectSpread(_objectSpread({}, placeObj), coordinatesObj));
64
+ const placesFetchCallback = data => {
65
+ setOptions(data.predictions || []);
66
+ return data.predictions;
67
+ };
68
+ return await (0, _fetchAclymateApi.default)({
69
+ path: "/google-maps/autocomplete/".concat(dataString),
70
+ method: "GET",
71
+ signal,
72
+ callback: placesFetchCallback
73
+ });
74
+ }, [inputValue, coordinates]);
75
+ (0, _react.useEffect)(() => {
76
+ if (inputValue === "") {
77
+ setOptions(place ? [place] : []);
78
+ return undefined;
79
+ }
80
+ const controller = new AbortController();
81
+ const {
82
+ signal
83
+ } = controller;
84
+ fetchPlaces({
85
+ signal
86
+ });
87
+ return () => {
88
+ controller.abort();
89
+ };
90
+ }, [inputValue, place, fetchPlaces]);
91
+ return /*#__PURE__*/_react.default.createElement(_Autocomplete.default, {
92
+ id: id || "places1-autocomplete",
93
+ options: options,
94
+ getOptionLabel: option => typeof option === "string" ? option : option.description || option.address || "",
95
+ filterOptions: x => x,
96
+ autoComplete: true,
97
+ filterSelectedOptions: true,
98
+ includeInputInList: true,
99
+ disabled: disabled,
100
+ renderInput: params => /*#__PURE__*/_react.default.createElement(_material.TextField, _extends({
101
+ id: "places-autocomplete-input"
102
+ }, params, {
103
+ label: label,
104
+ variant: variant,
105
+ error: errorMsg && !place || error,
106
+ size: size,
107
+ autoComplete: "off",
108
+ helperText: helperText,
109
+ style: style
110
+ }, textFieldProps)),
111
+ getOptionSelected: (option, value) => {
112
+ return option === "" || option.description === value.description || option === value;
113
+ },
114
+ value: place || "",
115
+ onChange: (event, newValue) => {
116
+ setOptions(newValue ? [newValue, ...options] : options);
117
+ editPlace(newValue);
118
+ },
119
+ onInputChange: (event, newInputValue) => {
120
+ setInputValue(newInputValue);
121
+ if (newInputValue && Math.abs(previousCharacterCount - newInputValue.length) > 1 && newInputValue !== (place === null || place === void 0 ? void 0 : place.description)) {
122
+ fetchPlaces({
123
+ value: newInputValue
124
+ }).then(function () {
125
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
126
+ const firstOption = options[0];
127
+ if (firstOption) {
128
+ const {
129
+ place_id,
130
+ description
131
+ } = firstOption;
132
+ setInputValue(description);
133
+ editPlace({
134
+ place_id,
135
+ description
136
+ });
137
+ }
138
+ });
139
+ }
140
+ setPreviousCharacterCount(newInputValue.length);
141
+ },
142
+ renderOption: (props, option) => {
143
+ if (option.description) {
144
+ var _option$structured_fo, _option$structured_fo2, _option$structured_fo3;
145
+ const matches = option === null || option === void 0 || (_option$structured_fo = option.structured_formatting) === null || _option$structured_fo === void 0 ? void 0 : _option$structured_fo.main_text_matched_substrings;
146
+ const parts = !!(matches !== null && matches !== void 0 && matches.length) ? (0, _parse.default)(option === null || option === void 0 || (_option$structured_fo2 = option.structured_formatting) === null || _option$structured_fo2 === void 0 ? void 0 : _option$structured_fo2.main_text, matches.map(match => [match.offset, match.offset + match.length])) : [];
147
+ return /*#__PURE__*/_react.default.createElement("li", props, /*#__PURE__*/_react.default.createElement(_material.Grid, {
148
+ container: true,
149
+ alignItems: "center",
150
+ spacing: 2
151
+ }, /*#__PURE__*/_react.default.createElement(_material.Grid, {
152
+ item: true
153
+ }, /*#__PURE__*/_react.default.createElement(_reactFontawesome.FontAwesomeIcon, {
154
+ icon: _freeSolidSvgIcons.faMapMarkerAlt
155
+ })), /*#__PURE__*/_react.default.createElement(_material.Grid, {
156
+ item: true,
157
+ xs: true
158
+ }, parts.length ? parts.map((part, index) => /*#__PURE__*/_react.default.createElement("span", {
159
+ key: index,
160
+ style: {
161
+ fontWeight: part.highlight ? 700 : 400
162
+ }
163
+ }, part.text)) : "", /*#__PURE__*/_react.default.createElement(_material.Typography, {
164
+ variant: "body2",
165
+ color: "textSecondary"
166
+ }, option === null || option === void 0 || (_option$structured_fo3 = option.structured_formatting) === null || _option$structured_fo3 === void 0 ? void 0 : _option$structured_fo3.secondary_text))));
167
+ }
168
+ return /*#__PURE__*/_react.default.createElement("li", props, option);
169
+ }
170
+ });
171
+ };
172
+ var _default = PlacesAutocomplete;
173
+ exports.default = _default;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.assign.js");
4
+ require("core-js/modules/es.weak-map.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
+ require("core-js/modules/es.promise.js");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _reactStripeJs = require("@stripe/react-stripe-js");
13
+ var _stripeJs = require("@stripe/stripe-js");
14
+ var _material = require("@mui/material");
15
+ var _fetchAclymateApi = _interopRequireDefault(require("@aclymatepackages/fetch-aclymate-api"));
16
+ const _excluded = ["stripePublishableKey", "children"];
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
22
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
+ const StripeElementsWrapper = _ref => {
24
+ let {
25
+ accountData,
26
+ accountCollection,
27
+ loadingComponent,
28
+ baseFetchHost,
29
+ stripePromise,
30
+ children
31
+ } = _ref;
32
+ const [stripeClientSecret, setStripeClientSecret] = (0, _react.useState)("");
33
+ const {
34
+ id: accountId,
35
+ stripeCustomerId: accountDataCustomerId,
36
+ billing = {}
37
+ } = accountData;
38
+ const {
39
+ stripeCustomerId: billingObjStripeCustomerId
40
+ } = billing;
41
+ (0, _react.useEffect)(() => {
42
+ const getStripeClientSecret = async () => {
43
+ const {
44
+ clientSecret
45
+ } = await (0, _fetchAclymateApi.default)({
46
+ path: "/stripe/create-setup-intent",
47
+ method: "POST",
48
+ data: {
49
+ accountId,
50
+ accountType: accountCollection,
51
+ customerId: billingObjStripeCustomerId || accountDataCustomerId
52
+ },
53
+ callback: response => response,
54
+ baseFetchHost
55
+ });
56
+ setStripeClientSecret(clientSecret);
57
+ };
58
+ if (!stripeClientSecret) {
59
+ getStripeClientSecret();
60
+ }
61
+ }, [stripeClientSecret, accountDataCustomerId, accountId, billingObjStripeCustomerId, accountCollection, baseFetchHost]);
62
+ const appearance = {
63
+ theme: "stripe",
64
+ variables: {
65
+ colorPrimary: "#27aae1",
66
+ colorBackground: "fafafa"
67
+ }
68
+ };
69
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !stripeClientSecret ? loadingComponent ? /*#__PURE__*/_react.default.createElement(_material.Grid, {
70
+ container: true,
71
+ justifyContent: "center",
72
+ spacing: 2
73
+ }, /*#__PURE__*/_react.default.createElement(_material.Grid, {
74
+ item: true
75
+ }, loadingComponent)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null) : /*#__PURE__*/_react.default.createElement(_reactStripeJs.Elements, {
76
+ stripe: stripePromise,
77
+ options: {
78
+ clientSecret: stripeClientSecret,
79
+ appearance
80
+ }
81
+ }, children));
82
+ };
83
+ const StripeElements = _ref2 => {
84
+ let {
85
+ stripePublishableKey,
86
+ children
87
+ } = _ref2,
88
+ otherProps = _objectWithoutProperties(_ref2, _excluded);
89
+ const stripePromise = (0, _stripeJs.loadStripe)(stripePublishableKey);
90
+ return /*#__PURE__*/_react.default.createElement(StripeElementsWrapper, _extends({
91
+ stripePromise: stripePromise
92
+ }, otherProps), children);
93
+ };
94
+ var _default = StripeElements;
95
+ exports.default = _default;