geico-design-kit 7.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.

Potentially problematic release.


This version of geico-design-kit might be problematic. Click here for more details.

Files changed (107) hide show
  1. package/.babelrc +5 -0
  2. package/LICENSE +0 -0
  3. package/dist/analytics.js +119 -0
  4. package/dist/appState.js +56 -0
  5. package/dist/baseComponent.js +110 -0
  6. package/dist/components/Accordion.js +312 -0
  7. package/dist/components/AddressAutoComplete.js +220 -0
  8. package/dist/components/Alert.js +145 -0
  9. package/dist/components/BackgroundPattern.js +99 -0
  10. package/dist/components/BackgroundPatternPortfolio.js +242 -0
  11. package/dist/components/ButtonSwitch.js +236 -0
  12. package/dist/components/CardSelections.js +230 -0
  13. package/dist/components/CommonQuestionsSquares.js +169 -0
  14. package/dist/components/Confirmation.js +156 -0
  15. package/dist/components/ConsolidatedSummary.js +489 -0
  16. package/dist/components/CoverageGraph.js +201 -0
  17. package/dist/components/CreditCard.js +591 -0
  18. package/dist/components/CurrencyInput.js +302 -0
  19. package/dist/components/DatePicker.js +468 -0
  20. package/dist/components/DockedMessage.js +146 -0
  21. package/dist/components/DotNavigation.js +200 -0
  22. package/dist/components/EditComponent.js +128 -0
  23. package/dist/components/EditableTable.js +113 -0
  24. package/dist/components/InPageNavigation.js +360 -0
  25. package/dist/components/Loader.js +232 -0
  26. package/dist/components/MakePayment.js +361 -0
  27. package/dist/components/Modal.js +254 -0
  28. package/dist/components/MoreInfoButton.js +227 -0
  29. package/dist/components/MultipleSelectBox.js +217 -0
  30. package/dist/components/NavigationalBox.js +161 -0
  31. package/dist/components/Navigator.js +294 -0
  32. package/dist/components/PasswordMeter.js +201 -0
  33. package/dist/components/PayPlans.js +534 -0
  34. package/dist/components/SegmentedControl.js +327 -0
  35. package/dist/components/SortableTable.js +166 -0
  36. package/dist/components/Tabs.js +1 -0
  37. package/dist/components/TextAreaCountdown.js +219 -0
  38. package/dist/components/Timeline.js +498 -0
  39. package/dist/components/TimelineFilter.js +492 -0
  40. package/dist/components/ToTopArrow.js +153 -0
  41. package/dist/components/Tooltip.js +329 -0
  42. package/dist/components/Upsell.js +168 -0
  43. package/dist/components/VIN.js +271 -0
  44. package/dist/components/ValidateForm.js +938 -0
  45. package/dist/components/ViewMoreLess.js +191 -0
  46. package/dist/components/ZipCode.js +191 -0
  47. package/dist/components/portfolio.js +99 -0
  48. package/dist/geico-design-kit.js +141 -0
  49. package/dist/global/components.js +98 -0
  50. package/dist/global/footer.js +26 -0
  51. package/dist/global/nav.js +1257 -0
  52. package/dist/services/CharacterTypeService.js +106 -0
  53. package/dist/services/UserAgentService.js +73 -0
  54. package/dist/utils.js +79 -0
  55. package/package.json +32 -0
  56. package/src/analytics.js +82 -0
  57. package/src/appState.js +56 -0
  58. package/src/baseComponent.js +156 -0
  59. package/src/components/Accordion.js +336 -0
  60. package/src/components/AddressAutoComplete.js +236 -0
  61. package/src/components/Alert.js +135 -0
  62. package/src/components/BackgroundPattern.js +96 -0
  63. package/src/components/BackgroundPatternPortfolio.js +284 -0
  64. package/src/components/ButtonSwitch.js +241 -0
  65. package/src/components/CardSelections.js +240 -0
  66. package/src/components/CommonQuestionsSquares.js +179 -0
  67. package/src/components/Confirmation.js +160 -0
  68. package/src/components/ConsolidatedSummary.js +505 -0
  69. package/src/components/CoverageGraph.js +203 -0
  70. package/src/components/CreditCard.js +595 -0
  71. package/src/components/CurrencyInput.js +321 -0
  72. package/src/components/DatePicker.js +487 -0
  73. package/src/components/DockedMessage.js +142 -0
  74. package/src/components/DotNavigation.js +206 -0
  75. package/src/components/EditComponent.js +130 -0
  76. package/src/components/EditableTable.js +106 -0
  77. package/src/components/InPageNavigation.js +391 -0
  78. package/src/components/Loader.js +272 -0
  79. package/src/components/MakePayment.js +397 -0
  80. package/src/components/Modal.js +279 -0
  81. package/src/components/MoreInfoButton.js +243 -0
  82. package/src/components/MultipleSelectBox.js +211 -0
  83. package/src/components/NavigationalBox.js +163 -0
  84. package/src/components/Navigator.js +338 -0
  85. package/src/components/PasswordMeter.js +209 -0
  86. package/src/components/PayPlans.js +604 -0
  87. package/src/components/SegmentedControl.js +365 -0
  88. package/src/components/SortableTable.js +176 -0
  89. package/src/components/Tabs.js +0 -0
  90. package/src/components/TextAreaCountdown.js +231 -0
  91. package/src/components/Timeline.js +532 -0
  92. package/src/components/TimelineFilter.js +533 -0
  93. package/src/components/ToTopArrow.js +153 -0
  94. package/src/components/Tooltip.js +344 -0
  95. package/src/components/Upsell.js +196 -0
  96. package/src/components/VIN.js +289 -0
  97. package/src/components/ValidateForm.js +1030 -0
  98. package/src/components/ViewMoreLess.js +193 -0
  99. package/src/components/ZipCode.js +193 -0
  100. package/src/components/portfolio.js +106 -0
  101. package/src/geico-design-kit.js +144 -0
  102. package/src/global/components.js +92 -0
  103. package/src/global/footer.js +25 -0
  104. package/src/global/nav.js +1457 -0
  105. package/src/services/CharacterTypeService.js +107 -0
  106. package/src/services/UserAgentService.js +59 -0
  107. package/src/utils.js +82 -0
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _baseComponent = _interopRequireDefault(require("../../src/baseComponent"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
11
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
12
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ var validateSettings = [{
16
+ setting: "content",
17
+ isRequired: true,
18
+ validate: "type",
19
+ possibleValues: ["string", "object"],
20
+ errorMessage: ["GDK CardSelections : Content must be defined and set to a DOM selector or Node"]
21
+ }, {
22
+ setting: "initialActiveCard",
23
+ isRequired: false,
24
+ validate: "type",
25
+ possibleValues: ["number"],
26
+ errorMessage: ["GDK CardSelections : initialActiveCard must be set to a number"]
27
+ }, {
28
+ setting: "cardSelectionSet",
29
+ isRequired: false,
30
+ validate: "type",
31
+ possibleValues: ["function"],
32
+ errorMessage: ["GDK CardSelections : cardSelectionClick must be a function"]
33
+ }];
34
+ var CardSelections = /*#__PURE__*/function () {
35
+ /**
36
+ * These are settings for the instantiation. Refer to the design kit section of this component for JS setting examples.
37
+ * @param {string|Object} content
38
+ * A reference to the html More Background Pattern node
39
+ *
40
+ * @param {number} [initialActiveCard=1]
41
+ * The number of the item to set as the active card on initialization. Must be greater than 0 and equal to or less than the number of cards.
42
+ *
43
+ * @param {function} [cardSelectionSet]
44
+ * A callback function that is triggered when any card is set to active.
45
+ */
46
+ function CardSelections(options) {
47
+ _classCallCheck(this, CardSelections);
48
+ this._internalVars = {
49
+ node: null //used for content item
50
+ };
51
+
52
+ //options with defaults set
53
+ this._defaults = {
54
+ initialActiveCard: 1
55
+ };
56
+
57
+ // Create options by extending defaults with the passed in arugments
58
+ if (options && _typeof(options) === "object") {
59
+ this._options = _baseComponent["default"].extendDefaults(this._defaults, options);
60
+ }
61
+
62
+ //if the required options are valid set up the environment
63
+ if (_baseComponent["default"].validateSettings(this._options, validateSettings)) {
64
+ this._internalVars.contentType = _baseComponent["default"].getContentType(this);
65
+ setLocalVars.call(this);
66
+ setEvents.call(this);
67
+ init.call(this);
68
+ this._internalVars.cardSelectionSection.setAttribute('role', 'radiogroup');
69
+ Array.prototype.forEach.call(this._internalVars.cardSelectionsCards, function (element) {
70
+ if (!element.getAttribute('tabindex')) element.setAttribute('tabindex', '0');
71
+ if (!element.getElementsByTagName('input')[0].getAttribute('tabindex')) element.getElementsByTagName('input')[0].setAttribute('tabindex', '-1');
72
+ element.setAttribute('role', 'radio');
73
+ });
74
+ }
75
+ }
76
+
77
+ //Public Methods
78
+
79
+ /**
80
+ * Returns the active selected card
81
+ * @return {Element}
82
+ */
83
+ return _createClass(CardSelections, [{
84
+ key: "currentActiveCard",
85
+ value: function currentActiveCard() {
86
+ return this._internalVars.selectedCard;
87
+ }
88
+
89
+ /**
90
+ * sets the initial active card using an index parameter
91
+ * @param {Number} index Number indicating what the active card should be set to
92
+ */
93
+ }, {
94
+ key: "setActiveCard",
95
+ value: function setActiveCard(index) {
96
+ setInitialActiveCard.call(this, index);
97
+ }
98
+
99
+ /**
100
+ * removes the node from the dom and any events attached
101
+ */
102
+ }, {
103
+ key: "destroy",
104
+ value: function destroy() {
105
+ removeEvents.call(this);
106
+ this._internalVars.node.parentNode.removeChild(this._internalVars.node);
107
+
108
+ //a little garbage collection
109
+ for (var variableKey in this) {
110
+ if (this.hasOwnProperty(variableKey)) {
111
+ delete this[variableKey];
112
+ }
113
+ }
114
+ }
115
+ }]);
116
+ }(); // Private Methods
117
+ /**
118
+ * setEvents()
119
+ * Sets all the events needed for the component
120
+ */
121
+ function setEvents() {
122
+ var _this = this;
123
+ var eventName = "click";
124
+ Array.prototype.forEach.call(this._internalVars.cardSelectionsCards, function (element) {
125
+ element.addEventListener(eventName, _this._internalVars.handler);
126
+ element.addEventListener('keyup', _this._internalVars.handler);
127
+ });
128
+ }
129
+
130
+ /**
131
+ * removeEvents()
132
+ * removes all events from the component
133
+ */
134
+ function removeEvents() {
135
+ var _this2 = this;
136
+ var eventName = "click";
137
+ Array.prototype.forEach.call(this._internalVars.cardSelectionsCards, function (element) {
138
+ element.removeEventListener(eventName, _this2._internalVars.handler);
139
+ element.removeEventListener('keyup', _this2._internalVars.handler);
140
+ });
141
+ }
142
+
143
+ /**
144
+ * init()
145
+ * Sets the initial values
146
+ */
147
+ function init() {
148
+ var index = null;
149
+ if (this._options.initialActiveCard) {
150
+ index = this._options.initialActiveCard;
151
+ } else {
152
+ index = this._defaults.initialActiveCard;
153
+ }
154
+ setInitialActiveCard.call(this, index);
155
+ }
156
+
157
+ /**
158
+ * Removes the class and attributes identifying the card as selected
159
+ */
160
+ function resetSelected() {
161
+ var _this3 = this;
162
+ var selected = this._internalVars.cardSelectionsObject.querySelectorAll('.' + this._internalVars.cardSelectedClass);
163
+ if (selected) {
164
+ Array.prototype.forEach.call(selected, function (el) {
165
+ el.classList.remove(_this3._internalVars.cardSelectedClass);
166
+ el.getElementsByTagName('input')[0].checked = false;
167
+ el.setAttribute('aria-checked', 'false');
168
+ });
169
+ }
170
+ }
171
+
172
+ /**
173
+ * Adds attributes identifying the card as selected
174
+ */
175
+ function setActiveCardAttributes() {
176
+ this._internalVars.selectedCard = this._internalVars.cardSelectionsObject.querySelector('.' + this._internalVars.cardSelectedClass);
177
+ this._internalVars.selectedCard.getElementsByTagName('input')[0].checked = true;
178
+ this._internalVars.selectedCard.setAttribute('aria-checked', 'true');
179
+ if (this._options.cardSelectionSet) {
180
+ this._options.cardSelectionSet(this._internalVars.selectedCard);
181
+ }
182
+ }
183
+
184
+ /**
185
+ * setInitialActiveCard()
186
+ * Sets the initial active card
187
+ */
188
+ function setInitialActiveCard(index) {
189
+ resetSelected.call(this);
190
+ if (index <= this._internalVars.cardSelectionsCards.length && index > 0) {
191
+ this._internalVars.cardSelectionsCards[index - 1].classList.add(this._internalVars.cardSelectedClass);
192
+ } else {
193
+ this._internalVars.cardSelectionsCards[0].classList.add(this._internalVars.cardSelectedClass);
194
+ }
195
+ setActiveCardAttributes.call(this);
196
+ }
197
+
198
+ /**
199
+ * setActiveCard()
200
+ * Sets the active card
201
+ */
202
+ function setActiveCard(event) {
203
+ if (event.type == 'keypress' || event.type == 'keyup' && (event.keyCode || event.which) != 13) {} else {
204
+ resetSelected.call(this);
205
+ event.currentTarget.classList.add(this._internalVars.cardSelectedClass);
206
+ setActiveCardAttributes.call(this);
207
+ }
208
+ }
209
+
210
+ /**
211
+ * setLocalVars()
212
+ * set all the local vars to passed in options
213
+ */
214
+ function setLocalVars() {
215
+ //determine the type of content passed in
216
+ if (this._internalVars.contentType === 'string') {
217
+ this._internalVars.node = document.querySelector(this._options.content);
218
+ } else if (this._internalVars.contentType === 'domNode') {
219
+ this._internalVars.node = this._options.content;
220
+ }
221
+ this._internalVars.cardSelectionsObject = this._internalVars.node;
222
+ this._internalVars.cardSelectionSectionClass = 'card-selections';
223
+ this._internalVars.cardSelectedClass = 'card-selections-selected';
224
+ this._internalVars.cardSelectionsCardClass = 'card-selections-card';
225
+ this._internalVars.selectedCard = null;
226
+ this._internalVars.cardSelectionSection = this._internalVars.cardSelectionsObject.querySelector('.' + this._internalVars.cardSelectionSectionClass);
227
+ this._internalVars.cardSelectionsCards = this._internalVars.cardSelectionsObject.querySelectorAll('.' + this._internalVars.cardSelectionsCardClass);
228
+ this._internalVars.handler = setActiveCard.bind(this);
229
+ }
230
+ var _default = exports["default"] = CardSelections;
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _appState = _interopRequireDefault(require("../../src/appState"));
8
+ var _baseComponent = _interopRequireDefault(require("../../src/baseComponent"));
9
+ var _UserAgentService = _interopRequireDefault(require("../../src/services/UserAgentService"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
13
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
14
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
16
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
17
+ var validateSettings = [{
18
+ setting: "content",
19
+ isRequired: true,
20
+ validate: "type",
21
+ possibleValues: ["string", "object"],
22
+ errorMessage: ["GDK CommonQuestionsSquares : Content must be defined and set to a DOM selector or Node"]
23
+ }];
24
+ var CommonQuestionsSquares = /*#__PURE__*/function () {
25
+ /**
26
+ * These are settings for the instantiation. Refer to the design kit section of this component for JS setting examples.
27
+ * @param {string|Object} content
28
+ * A reference to the common questions squares node
29
+ */
30
+ function CommonQuestionsSquares(options) {
31
+ _classCallCheck(this, CommonQuestionsSquares);
32
+ this._internalVars = {
33
+ node: null,
34
+ //used for content item
35
+ individualBoxes: null
36
+ };
37
+
38
+ //options with defaults set
39
+ this._defaults = {};
40
+
41
+ // Create options by extending defaults with the passed in arugments
42
+ if (options && _typeof(options) === "object") {
43
+ this._options = _baseComponent["default"].extendDefaults(this._defaults, options);
44
+ }
45
+
46
+ //if the required options are valid set up the environment
47
+ if (_baseComponent["default"].validateSettings(this._options, validateSettings)) {
48
+ this._internalVars.contentType = _baseComponent["default"].getContentType(this);
49
+ setLocalVars.call(this);
50
+ setEvents.call(this);
51
+ var allSquares = this._internalVars.node.querySelectorAll('.square');
52
+ Array.prototype.forEach.call(allSquares, function (el, i) {
53
+ if (!el.classList.contains('square-link')) el.setAttribute('tabindex', '0');
54
+ });
55
+ }
56
+ }
57
+
58
+ //Public Methods
59
+
60
+ /**
61
+ * destroy()
62
+ * removes the node from the dom and any events attached
63
+ */
64
+ return _createClass(CommonQuestionsSquares, [{
65
+ key: "destroy",
66
+ value: function destroy() {
67
+ removeEvents.call(this);
68
+ this._internalVars.node.parentNode.removeChild(this._internalVars.node);
69
+
70
+ //a little garbage collection
71
+ for (var variableKey in this) {
72
+ if (this.hasOwnProperty(variableKey)) {
73
+ delete this[variableKey];
74
+ }
75
+ }
76
+ }
77
+ }]);
78
+ }(); // Private Methods
79
+ /**
80
+ * setEvents()
81
+ * Sets all the events needed for the component
82
+ */
83
+ function setEvents() {
84
+ var eventName = _UserAgentService["default"]._clickEventName();
85
+ console.log(this._internalVars.individualBoxes);
86
+ for (var j = 0; j < this._internalVars.individualBoxes.length - 1; j++) {
87
+ this._internalVars.individualBoxes[j].addEventListener('mouseover', removeStyleAttr.bind(this, this._internalVars.individualBoxes[j]));
88
+ this._internalVars.individualBoxes[j].addEventListener(eventName, openPanel.bind(this, this._internalVars.individualBoxes[j]));
89
+ }
90
+ for (var h = 0; h < this._internalVars.node.querySelectorAll('a').length; h++) {
91
+ this._internalVars.anchorArray[h].addEventListener('focus', linkFocus.bind(this, this._internalVars.anchorArray[h]));
92
+ this._internalVars.anchorArray[h].addEventListener('blur', linkUnfocus.bind(this, this._internalVars.anchorArray[h]));
93
+ }
94
+ }
95
+ function linkFocus(e) {
96
+ var squareParent = e.parentNode.parentNode;
97
+ squareParent.classList.add('flip-back');
98
+ squareParent.previousElementSibling.classList.add('flip-front');
99
+ }
100
+ function linkUnfocus(e) {
101
+ var squareParent = e.parentNode.parentNode;
102
+ squareParent.classList.remove('flip-back');
103
+ squareParent.previousElementSibling.classList.remove('flip-front');
104
+ }
105
+ function removeStyleAttr(e) {
106
+ if (_appState["default"].mode !== "mobile") {
107
+ var el = e.querySelector('.back');
108
+ el.removeAttribute('style');
109
+ }
110
+ }
111
+ function openPanel(e) {
112
+ var el = e.querySelector('.back');
113
+ if (_appState["default"].mode === "mobile") {
114
+ e.classList.toggle('open');
115
+ if (e.classList.contains('open')) {
116
+ el.style.display = "block";
117
+ var paragraph = el.querySelector("p");
118
+ el.style.maxHeight = outerHeight.call(this, paragraph) + "px";
119
+ } else {
120
+ el.removeAttribute('style');
121
+ el.style.display = "block";
122
+ el.style.maxHeight = "0px";
123
+ }
124
+ } else {
125
+ el.removeAttribute('style');
126
+ }
127
+ }
128
+
129
+ /**
130
+ * removeEvents()
131
+ * removes all events from the component
132
+ */
133
+ function removeEvents() {
134
+ var eventName = _UserAgentService["default"]._clickEventName();
135
+ for (var j = 0; j < this._internalVars.individualBoxes.length - 1; j++) {
136
+ this._internalVars.individualBoxes[j].removeEventListener('mouseover', removeStyleAttr.bind(this, this._internalVars.individualBoxes[j]));
137
+ this._internalVars.individualBoxes[j].removeEventListener(eventName, openPanel.bind(this, this._internalVars.individualBoxes[j]));
138
+ }
139
+ }
140
+
141
+ /**
142
+ * setLocalVars()
143
+ * set all the local vars to passed in options
144
+ */
145
+ function setLocalVars() {
146
+ //determine the type of content passed in
147
+ if (this._internalVars.contentType === 'string') {
148
+ this._internalVars.node = document.querySelector(this._options.content);
149
+ } else if (this._internalVars.contentType === 'domNode') {
150
+ this._internalVars.node = this._options.content;
151
+ }
152
+ this._internalVars.individualBoxes = this._internalVars.node.children;
153
+ this._internalVars.anchorArray = this._internalVars.node.querySelectorAll('a');
154
+ }
155
+
156
+ /**
157
+ * outerHeight()
158
+ * used to get the height of an element that is the same across all browsers
159
+ *
160
+ * @param {Object} node DOM node
161
+ * @return {number}
162
+ */
163
+ function outerHeight(el) {
164
+ var height = el.offsetHeight;
165
+ var style = getComputedStyle(el);
166
+ height += parseInt(style.marginTop) + parseInt(style.marginBottom);
167
+ return height;
168
+ }
169
+ var _default = exports["default"] = CommonQuestionsSquares;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _baseComponent = _interopRequireDefault(require("../../src/baseComponent"));
8
+ var _appState = _interopRequireDefault(require("../../src/appState"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
10
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
11
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
12
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
13
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
+ var validateSettings = [{
17
+ setting: "content",
18
+ isRequired: true,
19
+ validate: "type",
20
+ possibleValues: ["string", "object"],
21
+ errorMessage: ["GDK Confirmation : Content must be defined and set to a DOM selector or Node"]
22
+ }];
23
+ var Confirmation = /*#__PURE__*/function () {
24
+ /**
25
+ * These are settings for the instantiation. Refer to the design kit section of this component for JS setting examples.
26
+ * @param {string|Object} content
27
+ * A reference to the html accordion node
28
+ *
29
+ */
30
+ function Confirmation(options) {
31
+ _classCallCheck(this, Confirmation);
32
+ this._internalVars = {
33
+ node: null //used for content item
34
+ };
35
+
36
+ //options with defaults set
37
+ this._defaults = {
38
+ animateCheckmarkFunction: animateCheckmark.bind(this)
39
+ };
40
+
41
+ // Create options by extending defaults with the passed in arguments
42
+ if (options && _typeof(options) === "object") {
43
+ this._options = _baseComponent["default"].extendDefaults(this._defaults, options);
44
+ }
45
+
46
+ //if the required options are valid set up the environment
47
+ if (_baseComponent["default"].validateSettings(this._options, validateSettings)) {
48
+ this._internalVars.contentType = _baseComponent["default"].getContentType(this);
49
+ setLocalVars.call(this);
50
+ setEvents.call(this);
51
+ }
52
+ }
53
+
54
+ //Public Methods
55
+
56
+ /**
57
+ * animateCheckmarkConfirmation()
58
+ * animates the check mark icon
59
+ */
60
+ return _createClass(Confirmation, [{
61
+ key: "animateCheckmarkConfirmation",
62
+ value: function animateCheckmarkConfirmation() {
63
+ animateCheckmark.call(this);
64
+ }
65
+
66
+ /**
67
+ * destroy()
68
+ * removes the node from the dom and any events attached
69
+ */
70
+ }, {
71
+ key: "destroy",
72
+ value: function destroy() {
73
+ removeEvents.call(this);
74
+ this._internalVars.node.parentNode.removeChild(this._internalVars.node);
75
+
76
+ //a little garbage collection
77
+ for (var variableKey in this) {
78
+ if (this.hasOwnProperty(variableKey)) {
79
+ delete this[variableKey];
80
+ }
81
+ }
82
+ }
83
+ }]);
84
+ }();
85
+ /**
86
+ * setEvents()
87
+ * Sets all the events needed for the component
88
+ */
89
+ function setEvents() {
90
+ window.addEventListener("load", this._defaults.animateCheckmarkFunction);
91
+ }
92
+
93
+ /**
94
+ * removeEvents()
95
+ * removes all events from the component
96
+ */
97
+ function removeEvents() {
98
+ window.removeEventListener("load", this._defaults.animateCheckmarkFunction);
99
+ }
100
+ function animateCheckmark() {
101
+ if (this._internalVars.animationComplete !== true) {
102
+ setTimeout(svgAnim.bind(this), 2500);
103
+ this._internalVars.animationComplete = true;
104
+ }
105
+ }
106
+ var tick = 0;
107
+ function svgAnim() {
108
+ var svgToAnim = this._internalVars.node.querySelector("svg"),
109
+ circleWrapper = this._internalVars.node.querySelector(".confirmation-icon-wrapper"),
110
+ dashArrayComplete = 183,
111
+ //svg animation settings
112
+ tickSpeed = 3.5,
113
+ //svg animation settings
114
+ tickSpeedMobile = 5; //svg animation settings
115
+
116
+ if (_appState["default"].mode === "desktop") {
117
+ tick += tickSpeed;
118
+ } else {
119
+ tick += tickSpeedMobile;
120
+ }
121
+ if (!circleWrapper.classList.contains("circleConfirmation")) {
122
+ circleWrapper.classList.add("circleConfirmation");
123
+ }
124
+ var t = tick / 100;
125
+ var offsetStrokeDasharray = easeInQuad(t, 0, dashArrayComplete, 1);
126
+ svgToAnim.style.strokeDasharray = "".concat(offsetStrokeDasharray, " , ").concat(dashArrayComplete);
127
+ if (tick < 100) {
128
+ requestAnimationFrame(svgAnim.bind(this));
129
+ } else {
130
+ tick = 0;
131
+ }
132
+ }
133
+
134
+ /**
135
+ * easeInQuad()
136
+ * Quadratic easing
137
+ */
138
+ function easeInQuad(t, b, c, d) {
139
+ var ts = (t /= d) * t;
140
+ return b + c * ts;
141
+ }
142
+
143
+ /**
144
+ * setLocalVars()
145
+ * set all the local vars to passed in options
146
+ */
147
+ function setLocalVars() {
148
+ //determine the type of content passed in
149
+ if (this._internalVars.contentType === 'string') {
150
+ this._internalVars.node = document.querySelector(this._options.content);
151
+ } else if (this._internalVars.contentType === 'domNode') {
152
+ this._internalVars.node = this._options.content;
153
+ }
154
+ this._internalVars.animationComplete = false;
155
+ }
156
+ var _default = exports["default"] = Confirmation;