ent-unified-logon-template 0.0.1-security → 3.14.5

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.

Potentially problematic release.


This version of ent-unified-logon-template might be problematic. Click here for more details.

Files changed (46) hide show
  1. package/lib/common/components/body-wrapper.js +116 -0
  2. package/lib/common/components/disclosure.js +192 -0
  3. package/lib/common/components/exit-dialog-trigger.js +180 -0
  4. package/lib/common/components/footer/disclosure-list.js +119 -0
  5. package/lib/common/components/footer/footer.js +132 -0
  6. package/lib/common/components/footer/footnote-list.js +93 -0
  7. package/lib/common/components/footnote.js +179 -0
  8. package/lib/common/components/page-header/skip-to-content.js +115 -0
  9. package/lib/common/components/printer-wrapper.js +98 -0
  10. package/lib/common/components/prodqa-banner.js +89 -0
  11. package/lib/common/components/render-watcher.js +66 -0
  12. package/lib/common/components/screen-share.js +219 -0
  13. package/lib/common/components/session-storage-error.js +39 -0
  14. package/lib/common/components/wcm-display.js +416 -0
  15. package/lib/common/redux/disclosures/disclosures-actions.js +27 -0
  16. package/lib/common/redux/disclosures/disclosures-reducer.js +112 -0
  17. package/lib/common/redux/footnotes/footnotes-actions.js +38 -0
  18. package/lib/common/redux/footnotes/footnotes-reducer.js +107 -0
  19. package/lib/common/redux/get-create-store.js +83 -0
  20. package/lib/common/redux/profile.js +50 -0
  21. package/lib/common/redux/template-connect.js +24 -0
  22. package/lib/common/usaa-template-common-hoc.js +80 -0
  23. package/lib/common/usaa-template-common.js +178 -0
  24. package/lib/common/util/a11y.js +45 -0
  25. package/lib/common/util/check-storage-availability.js +37 -0
  26. package/lib/common/util/ecid.js +66 -0
  27. package/lib/common/util/get-profile-analytics.js +186 -0
  28. package/lib/common/util/get-profile-base-data.js +44 -0
  29. package/lib/common/util/load-utag.js +46 -0
  30. package/lib/common/util/main-content-id.js +9 -0
  31. package/lib/common/util/parse-wcm-xml.js +125 -0
  32. package/lib/common/util/screenshare-iframe.js +90 -0
  33. package/lib/common/util/string-utils.js +25 -0
  34. package/lib/common/util/wcm-retriever.js +44 -0
  35. package/lib/common/wcm-component-loaders.js +30 -0
  36. package/lib/index.js +28 -0
  37. package/lib/transactional/components/Link.js +79 -0
  38. package/lib/transactional/components/Logo.js +35 -0
  39. package/lib/transactional/components/header.js +159 -0
  40. package/lib/transactional/components/native-underhang.js +73 -0
  41. package/lib/transactional/index.js +20 -0
  42. package/lib/transactional/usaa-template-transactional.js +288 -0
  43. package/lib/transactional/utils/component-constants.js +26 -0
  44. package/lib/transactional/utils/getBaseURL.js +39 -0
  45. package/package.json +24 -4
  46. package/README.md +0 -5
@@ -0,0 +1,416 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.COMPONENT_ATTR = exports.COMPONENT_XML_ELEMENT = exports.WcmDisplayForTesting = exports.default = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _reactDom = _interopRequireDefault(require("react-dom"));
13
+
14
+ var _wcmRetriever = _interopRequireDefault(require("../util/wcm-retriever"));
15
+
16
+ var _templateConnect = _interopRequireDefault(require("../redux/template-connect"));
17
+
18
+ var disclosureActions = _interopRequireWildcard(require("../redux/disclosures/disclosures-actions"));
19
+
20
+ var footnoteActions = _interopRequireWildcard(require("../redux/footnotes/footnotes-actions"));
21
+
22
+ var _usaaLogger = _interopRequireDefault(require("usaa-logger"));
23
+
24
+ var _stringUtils = require("../util/string-utils");
25
+
26
+ var _parseWcmXml2 = _interopRequireDefault(require("../util/parse-wcm-xml"));
27
+
28
+ var _renderWatcher = require("./render-watcher");
29
+
30
+ var _wcmComponentLoaders = _interopRequireDefault(require("../wcm-component-loaders"));
31
+
32
+ var _shared = require("../../shared");
33
+
34
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
35
+
36
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
37
+
38
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
+
40
+ function _extends() { _extends = Object.assign || 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); }
41
+
42
+ 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; }
43
+
44
+ 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; }
45
+
46
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
47
+
48
+ 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); }
49
+
50
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
51
+
52
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
53
+
54
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
55
+
56
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
57
+
58
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
59
+
60
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
61
+
62
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
63
+
64
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
65
+
66
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
67
+
68
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
69
+
70
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
71
+
72
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
73
+
74
+ var COMPONENT_XML_ELEMENT = 'usaa-react-component';
75
+ exports.COMPONENT_XML_ELEMENT = COMPONENT_XML_ELEMENT;
76
+ var COMPONENT_ATTR = {
77
+ TYPE: 'component-name',
78
+ VERSION: 'component-version',
79
+ TARGET_ID: 'component-target-id'
80
+ };
81
+ exports.COMPONENT_ATTR = COMPONENT_ATTR;
82
+ var logger = new _usaaLogger.default();
83
+ var DEBUG_MSG = '(usaa-templates) common/components/wcm-display:';
84
+
85
+ var WcmDisplay = /*#__PURE__*/function (_React$Component) {
86
+ _inherits(WcmDisplay, _React$Component);
87
+
88
+ var _super = _createSuper(WcmDisplay);
89
+
90
+ function WcmDisplay() {
91
+ var _this;
92
+
93
+ _classCallCheck(this, WcmDisplay);
94
+
95
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
96
+ args[_key] = arguments[_key];
97
+ }
98
+
99
+ _this = _super.call.apply(_super, [this].concat(args));
100
+
101
+ _defineProperty(_assertThisInitialized(_this), "state", {
102
+ disclosureIds: [],
103
+ footnoteIds: [],
104
+ isLoggedIn: false,
105
+ markupString: ''
106
+ });
107
+
108
+ _defineProperty(_assertThisInitialized(_this), "getAndProcessWcmData", function (wcmKey, isLoggedIn, replacementMap) {
109
+ (0, _wcmRetriever.default)(wcmKey, isLoggedIn, replacementMap).then(_this.handleDataLoad, _this.handleFailure);
110
+ });
111
+
112
+ _defineProperty(_assertThisInitialized(_this), "handleDataLoad", function (response) {
113
+ var data = response || {};
114
+ var markup = data.mainContent;
115
+ var disclosuresBelowFootnotes = data.disclaimers.disclaimers;
116
+
117
+ if (!markup) {
118
+ _this.handleFailure(response.message || 'No markup returned');
119
+
120
+ return;
121
+ }
122
+
123
+ var _parseWcmXml = (0, _parseWcmXml2.default)(markup);
124
+
125
+ markup = _parseWcmXml.markup;
126
+ _this.components = _parseWcmXml.components;
127
+
128
+ var processedFootnotesAndMarkup = _this.processFootnotes(markup);
129
+
130
+ var addedDisclosureIds = _this.addDisclosures(disclosuresBelowFootnotes);
131
+
132
+ _this.setState({
133
+ disclosureIds: addedDisclosureIds,
134
+ footnoteIds: processedFootnotesAndMarkup.addedFootnoteIds,
135
+ markupString: processedFootnotesAndMarkup.processedMarkup
136
+ }, function () {
137
+ if (_this.props.onLoad) {
138
+ _this.props.onLoad(null, markup);
139
+ }
140
+ });
141
+ });
142
+
143
+ _defineProperty(_assertThisInitialized(_this), "addDisclosures", function (disclosuresToAdd) {
144
+ return disclosuresToAdd.map(function (disclosureText) {
145
+ var id = "WcmDisplayDisclosure-".concat((0, _stringUtils.hashCode)(disclosureText));
146
+
147
+ _this.props.dispatch(disclosureActions.addDisclosure({
148
+ id: id,
149
+ text: disclosureText
150
+ }));
151
+
152
+ return id;
153
+ });
154
+ });
155
+
156
+ _defineProperty(_assertThisInitialized(_this), "processFootnotes", function (markup) {
157
+ var markupFootnoteRegex = /<span class="footnote">(.+?)<\/span>/;
158
+ var footnoteNumber = _this.props.allFootnotes.length - _this.state.footnoteIds.length + 1;
159
+ var addedFootnoteIds = [];
160
+ var result = markupFootnoteRegex.exec(markup);
161
+
162
+ while (result) {
163
+ var footnoteText = result[1];
164
+ var id = "WcmDisplayFootnote-".concat((0, _stringUtils.hashCode)(footnoteText));
165
+ addedFootnoteIds.push(id);
166
+
167
+ _this.props.dispatch(footnoteActions.addFootnote({
168
+ id: id,
169
+ text: footnoteText
170
+ }));
171
+
172
+ markup = markup.replace(markupFootnoteRegex, "<sup data-footnote-id=\"".concat(id, "\">").concat(footnoteNumber++, "</sup>"));
173
+ result = markupFootnoteRegex.exec(markup);
174
+ }
175
+
176
+ return {
177
+ addedFootnoteIds: addedFootnoteIds,
178
+ processedMarkup: markup
179
+ };
180
+ });
181
+
182
+ _defineProperty(_assertThisInitialized(_this), "handleFailure", function (err) {
183
+ if (_typeof(err) === 'object' && err.message) {
184
+ err = err.message;
185
+ }
186
+
187
+ _this.setState({
188
+ markupString: ''
189
+ }, function () {
190
+ if (_this.props.onLoad) {
191
+ _this.props.onLoad(err);
192
+ }
193
+ });
194
+
195
+ logger.warn(DEBUG_MSG, "Error loading WCM object for key ".concat(_this.props.wcmKey, ": ").concat(err));
196
+ });
197
+
198
+ _defineProperty(_assertThisInitialized(_this), "renderComponentsIntoMarkup", function () {
199
+ _this.rendered = 0;
200
+
201
+ var renderCallback = function renderCallback() {
202
+ // callback to un-hide content when we're done rendering components
203
+ _this.rendered++;
204
+
205
+ if (_this.rendered === _this.components.length) {
206
+ _this.hiddenElementRef.style.display = '';
207
+ }
208
+ };
209
+
210
+ var _loop = function _loop(i) {
211
+ var component = _this.components[i];
212
+
213
+ var _component$props = component.props,
214
+ _COMPONENT_ATTR$TYPE = COMPONENT_ATTR.TYPE,
215
+ _COMPONENT_ATTR$VERSI = COMPONENT_ATTR.VERSION,
216
+ _COMPONENT_ATTR$TARGE = COMPONENT_ATTR.TARGET_ID,
217
+ compName = _component$props[_COMPONENT_ATTR$TYPE],
218
+ compVersion = _component$props[_COMPONENT_ATTR$VERSI],
219
+ compTargetId = _component$props[_COMPONENT_ATTR$TARGE],
220
+ otherProps = _objectWithoutProperties(_component$props, [_COMPONENT_ATTR$TYPE, _COMPONENT_ATTR$VERSI, _COMPONENT_ATTR$TARGE].map(_toPropertyKey));
221
+
222
+ if (!component || !compName || !compVersion || !compTargetId) {
223
+ logger.error(DEBUG_MSG, 'Invalid component.', component);
224
+ renderCallback();
225
+ return "continue";
226
+ }
227
+
228
+ var load = _this.props.mockLoaders || _wcmComponentLoaders.default;
229
+
230
+ if (!load || !load[compName] || !load[compName][compVersion] || !load[compName][compVersion].LOADER) {
231
+ logger.error(DEBUG_MSG, "Missing loader for '".concat(compName, "' version '").concat(compVersion, "'"));
232
+ renderCallback();
233
+ return "continue";
234
+ }
235
+
236
+ var compLoader = load[compName][compVersion].LOADER;
237
+ var compExport = load[compName][compVersion].EXPORT || 'default';
238
+ var El = _this.props.elementType;
239
+ compLoader(function (module) {
240
+ if (!module[compExport]) {
241
+ logger.error(DEBUG_MSG, "Missing '".concat(compName, "' version '").concat(compVersion, "' export '").concat(compExport, "'"));
242
+ renderCallback();
243
+ return;
244
+ }
245
+
246
+ var children = [];
247
+
248
+ if (component.innerHTML) {
249
+ children = /*#__PURE__*/_react.default.createElement(El, {
250
+ dangerouslySetInnerHTML: {
251
+ __html: component.innerHTML
252
+ }
253
+ });
254
+ }
255
+
256
+ var target = document.getElementById(compTargetId);
257
+
258
+ if (target) {
259
+ var Component = (0, _renderWatcher.withRenderWatcher)(module[compExport], renderCallback);
260
+
261
+ _reactDom.default.render( /*#__PURE__*/_react.default.createElement(Component, otherProps, children), target);
262
+ } else {
263
+ logger.error(DEBUG_MSG, "Error rendering '".concat(compName, "'. Target '").concat(compTargetId, "' does not exist."));
264
+ renderCallback();
265
+ }
266
+ });
267
+ };
268
+
269
+ for (var i in _this.components) {
270
+ var _ret = _loop(i);
271
+
272
+ if (_ret === "continue") continue;
273
+ }
274
+ });
275
+
276
+ return _this;
277
+ }
278
+
279
+ _createClass(WcmDisplay, [{
280
+ key: "componentDidMount",
281
+ value: function componentDidMount() {
282
+ var _this2 = this;
283
+
284
+ (0, _shared.getGuid)().then(function () {
285
+ _this2.getAndProcessWcmData(_this2.props.wcmKey, true, _this2.props.replacementMap);
286
+
287
+ _this2.setState({
288
+ isLoggedIn: true
289
+ });
290
+ }, function () {
291
+ _this2.getAndProcessWcmData(_this2.props.wcmKey, false, _this2.props.replacementMap);
292
+ });
293
+ }
294
+ }, {
295
+ key: "shouldComponentUpdate",
296
+ value: function shouldComponentUpdate(nextProps, nextState) {
297
+ if (nextState.markupString === '') {
298
+ return false;
299
+ }
300
+
301
+ return true;
302
+ }
303
+ }, {
304
+ key: "componentDidUpdate",
305
+ value: function componentDidUpdate(prevProps, prevState) {
306
+ var _this3 = this;
307
+
308
+ if (prevProps.wcmKey !== this.props.wcmKey) {
309
+ this.setState({
310
+ markupString: ''
311
+ }, function () {
312
+ _this3.getAndProcessWcmData(_this3.props.wcmKey, _this3.state.isLoggedIn, _this3.props.replacementMap);
313
+ });
314
+ } // check for parsed out react components in the wcm content which need rendered
315
+
316
+
317
+ if (this.components && this.components.length) {
318
+ this.renderComponentsIntoMarkup();
319
+ }
320
+ }
321
+ }, {
322
+ key: "componentWillUnmount",
323
+ value: function componentWillUnmount() {
324
+ var _this4 = this;
325
+
326
+ this.state.disclosureIds.forEach(function (id) {
327
+ _this4.props.dispatch(disclosureActions.removeDisclosure(id));
328
+ });
329
+ this.state.footnoteIds.forEach(function (id) {
330
+ _this4.props.dispatch(footnoteActions.removeFootnote(id));
331
+ });
332
+ }
333
+ }, {
334
+ key: "render",
335
+ value: function render() {
336
+ var _this5 = this;
337
+
338
+ var markup = this.state.markupString;
339
+ var footnoteIds = this.state.footnoteIds;
340
+
341
+ var _this$props = this.props,
342
+ mockLoaders = _this$props.mockLoaders,
343
+ wcmKey = _this$props.wcmKey,
344
+ dispatch = _this$props.dispatch,
345
+ allFootnotes = _this$props.allFootnotes,
346
+ El = _this$props.elementType,
347
+ otherProps = _objectWithoutProperties(_this$props, ["mockLoaders", "wcmKey", "dispatch", "allFootnotes", "elementType"]);
348
+
349
+ footnoteIds.forEach(function (footnoteId) {
350
+ var foundFootnoteIndex, footnoteReplacement;
351
+ var markupFootnoteRegex = new RegExp("<sup data-footnote-id=\"".concat(footnoteId, "\">(.*?)</sup>"));
352
+ var foundFootnote = allFootnotes.find(function (currentFootnote, index) {
353
+ foundFootnoteIndex = index;
354
+ return footnoteId === currentFootnote.id;
355
+ });
356
+
357
+ if (foundFootnote) {
358
+ footnoteReplacement = "<sup data-footnote-id=\"".concat(footnoteId, "\">").concat(foundFootnoteIndex + 1, "</sup>");
359
+ } else {
360
+ footnoteReplacement = '';
361
+ logger.warn(DEBUG_MSG, "Error locating footnote: ".concat(_this5.props.wcmKey));
362
+ }
363
+
364
+ markup = markup.replace(markupFootnoteRegex, footnoteReplacement);
365
+ });
366
+
367
+ if (this.components && this.components.length) {
368
+ // render our content hidden until components load
369
+ return /*#__PURE__*/_react.default.createElement(El, _extends({
370
+ ref: function ref(me) {
371
+ _this5.hiddenElementRef = me;
372
+ },
373
+ style: {
374
+ display: 'none'
375
+ },
376
+ dangerouslySetInnerHTML: {
377
+ __html: markup
378
+ }
379
+ }, otherProps));
380
+ } else {
381
+ return /*#__PURE__*/_react.default.createElement(El, _extends({
382
+ dangerouslySetInnerHTML: {
383
+ __html: markup
384
+ }
385
+ }, otherProps));
386
+ }
387
+ }
388
+ }]);
389
+
390
+ return WcmDisplay;
391
+ }(_react.default.Component);
392
+
393
+ exports.WcmDisplayForTesting = WcmDisplay;
394
+
395
+ _defineProperty(WcmDisplay, "propTypes", {
396
+ allFootnotes: _propTypes.default.array,
397
+ elementType: _propTypes.default.string,
398
+ mockLoaders: _propTypes.default.object,
399
+ onLoad: _propTypes.default.func,
400
+ replacementMap: _propTypes.default.object,
401
+ wcmKey: _propTypes.default.string.isRequired
402
+ });
403
+
404
+ _defineProperty(WcmDisplay, "defaultProps", {
405
+ elementType: 'div'
406
+ });
407
+
408
+ var _default = (0, _templateConnect.default)(function (state) {
409
+ return {
410
+ allFootnotes: state.template.footnotes
411
+ };
412
+ })(WcmDisplay); // export non-connected component for testing
413
+
414
+
415
+ exports.default = _default;
416
+ //# sourceMappingURL=wcm-display.js.map
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addDisclosure = addDisclosure;
7
+ exports.removeDisclosure = removeDisclosure;
8
+ exports.INF_REMOVE_DISCLOSURE = exports.INF_ADD_DISCLOSURE = void 0;
9
+ var INF_ADD_DISCLOSURE = 'INF_ADD_DISCLOSURE';
10
+ exports.INF_ADD_DISCLOSURE = INF_ADD_DISCLOSURE;
11
+ var INF_REMOVE_DISCLOSURE = 'INF_REMOVE_DISCLOSURE';
12
+ exports.INF_REMOVE_DISCLOSURE = INF_REMOVE_DISCLOSURE;
13
+
14
+ function addDisclosure(disclosure) {
15
+ return {
16
+ type: INF_ADD_DISCLOSURE,
17
+ disclosure: disclosure
18
+ };
19
+ }
20
+
21
+ function removeDisclosure(id) {
22
+ return {
23
+ type: INF_REMOVE_DISCLOSURE,
24
+ id: id
25
+ };
26
+ }
27
+ //# sourceMappingURL=disclosures-actions.js.map
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Disclosures;
7
+
8
+ var _disclosuresActions = require("./disclosures-actions");
9
+
10
+ var _disclosureList = require("../../components/footer/disclosure-list");
11
+
12
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
13
+
14
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
+
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+
18
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
19
+
20
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
21
+
22
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
23
+
24
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
25
+
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
27
+
28
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29
+
30
+ /*
31
+ [{
32
+ id: 'disclosureId1',
33
+ location: 'aboveNav',
34
+ text: 'Disclosure Text (can be markup),
35
+ usageCount: 1
36
+ }, {
37
+ id: 'disclosureId2',
38
+ location: 'aboveFootnotes',
39
+ text: 'Disclosure Text (can be markup),
40
+ usageCount: 1
41
+ }, {
42
+ id: 'disclosureId3',
43
+ location: 'belowFootnotes' //Default behavior if location not there,
44
+ text: 'Disclosure Text (can be markup),
45
+ usageCount: 1
46
+ }]
47
+ */
48
+ function Disclosures() {
49
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
50
+ var action = arguments.length > 1 ? arguments[1] : undefined;
51
+
52
+ switch (action.type) {
53
+ case _disclosuresActions.INF_ADD_DISCLOSURE:
54
+ {
55
+ var disclosureToAdd = action.disclosure;
56
+
57
+ if (!disclosureToAdd.location) {
58
+ disclosureToAdd.location = _disclosureList.BELOW_FOOTNOTES;
59
+ }
60
+
61
+ var existingDisclosure = state.find(function (item) {
62
+ return item.id === disclosureToAdd.id;
63
+ });
64
+
65
+ if (existingDisclosure) {
66
+ disclosureToAdd = _objectSpread(_objectSpread({}, disclosureToAdd), {}, {
67
+ usageCount: existingDisclosure.usageCount + 1
68
+ });
69
+
70
+ var nextState = _toConsumableArray(state);
71
+
72
+ nextState[nextState.indexOf(existingDisclosure)] = disclosureToAdd;
73
+ return nextState;
74
+ } else {
75
+ disclosureToAdd = _objectSpread(_objectSpread({}, disclosureToAdd), {}, {
76
+ usageCount: 1
77
+ });
78
+ return [].concat(_toConsumableArray(state), [disclosureToAdd]);
79
+ }
80
+ }
81
+
82
+ case _disclosuresActions.INF_REMOVE_DISCLOSURE:
83
+ {
84
+ var disclosureToRemove = state.find(function (item) {
85
+ return item.id === action.id;
86
+ });
87
+ var disclosureToRemoveIndex = state.indexOf(disclosureToRemove);
88
+
89
+ if (disclosureToRemove) {
90
+ var _nextState = _toConsumableArray(state);
91
+
92
+ if (disclosureToRemove.usageCount > 1) {
93
+ // uses remain - decrement the counter
94
+ _nextState[disclosureToRemoveIndex] = _objectSpread(_objectSpread({}, disclosureToRemove), {}, {
95
+ usageCount: disclosureToRemove.usageCount - 1
96
+ });
97
+ } else {
98
+ // no uses remain - remove the disclosure
99
+ _nextState = [].concat(_toConsumableArray(_nextState.slice(0, disclosureToRemoveIndex)), _toConsumableArray(_nextState.slice(disclosureToRemoveIndex + 1)));
100
+ }
101
+
102
+ return _nextState;
103
+ } else {
104
+ return state;
105
+ }
106
+ }
107
+
108
+ default:
109
+ return state;
110
+ }
111
+ }
112
+ //# sourceMappingURL=disclosures-reducer.js.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.addFootnote = addFootnote;
7
+ exports.updateFootnoteText = updateFootnoteText;
8
+ exports.removeFootnote = removeFootnote;
9
+ exports.INF_UPDATE_FOOTNOTE_TEXT = exports.INF_REMOVE_FOOTNOTE = exports.INF_ADD_FOOTNOTE = void 0;
10
+ var INF_ADD_FOOTNOTE = 'INF_ADD_FOOTNOTE';
11
+ exports.INF_ADD_FOOTNOTE = INF_ADD_FOOTNOTE;
12
+ var INF_REMOVE_FOOTNOTE = 'INF_REMOVE_FOOTNOTE';
13
+ exports.INF_REMOVE_FOOTNOTE = INF_REMOVE_FOOTNOTE;
14
+ var INF_UPDATE_FOOTNOTE_TEXT = 'INF_UPDATE_FOOTNOTE_TEXT';
15
+ exports.INF_UPDATE_FOOTNOTE_TEXT = INF_UPDATE_FOOTNOTE_TEXT;
16
+
17
+ function addFootnote(footnote) {
18
+ return {
19
+ type: INF_ADD_FOOTNOTE,
20
+ footnote: footnote
21
+ };
22
+ }
23
+
24
+ function updateFootnoteText(id, text) {
25
+ return {
26
+ type: INF_UPDATE_FOOTNOTE_TEXT,
27
+ id: id,
28
+ text: text
29
+ };
30
+ }
31
+
32
+ function removeFootnote(id) {
33
+ return {
34
+ type: INF_REMOVE_FOOTNOTE,
35
+ id: id
36
+ };
37
+ }
38
+ //# sourceMappingURL=footnotes-actions.js.map