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,219 @@
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 TextareaCountdown : Content must be defined and set to a DOM selector or Node"]
21
+ }, {
22
+ setting: "countdownMax",
23
+ isRequired: false,
24
+ validate: "type",
25
+ possibleValues: ["number"],
26
+ errorMessage: ["GDK TextareaCountdown : countdownMax must be a number"]
27
+ }];
28
+ var TextareaCountdown = /*#__PURE__*/function () {
29
+ /**
30
+ * Refer to the design kit section of this component for JS examples and setting details.
31
+ * @param {string, Object} content
32
+ * A reference to the html textarea container node
33
+ *
34
+ * @param {number} [countdownMax=1000]
35
+ * The number of characters allowed in the textarea
36
+ *
37
+ */
38
+ function TextareaCountdown(options) {
39
+ _classCallCheck(this, TextareaCountdown);
40
+ this._internalVars = {
41
+ node: null,
42
+ //used for content item
43
+ geicoTextAreaCountdownContainerClass: "textarea-countdown-container",
44
+ geicoTextAreaCountdownClass: "textarea-countdown",
45
+ geicoTextAreaGoodClass: "textarea-countdown--good",
46
+ geicoTextAreaCloseClass: "textarea-countdown--close",
47
+ geicoTextAreaOverClass: "textarea-countdown--over",
48
+ geicoTextAreaCountdownInfoClass: "textarea-countdown-info",
49
+ geicoTextAreaCountdownInfoTextClass: "textarea-countdown-info-text",
50
+ geicoTextAreaCountdownInfoCounterClass: "textarea-countdown-info-counter",
51
+ geicoTextGoodCopy: "Good to go.",
52
+ geicoTextCloseCopy: "Near the edge.",
53
+ geicoTextOverCopy: "Over by",
54
+ closeNum: 10,
55
+ geicoTextAreaCountdownData: null,
56
+ count: null
57
+ };
58
+
59
+ //options with defaults set
60
+ this._defaults = {
61
+ countdownMax: 1000
62
+ };
63
+
64
+ // Create options by extending defaults with the passed in arugments
65
+ if (options && _typeof(options) === "object") {
66
+ this._options = _baseComponent["default"].extendDefaults(this._defaults, options);
67
+ }
68
+
69
+ //if the required options are valid set up the environment
70
+ if (_baseComponent["default"].validateSettings(this._options, validateSettings)) {
71
+ this._internalVars.contentType = _baseComponent["default"].getContentType(this);
72
+ setLocalVars.call(this);
73
+ setEvents.call(this);
74
+ }
75
+ }
76
+
77
+ //Public Methods
78
+
79
+ /**
80
+ * destroy()
81
+ * removes the node from the dom and any events attached
82
+ */
83
+ return _createClass(TextareaCountdown, [{
84
+ key: "destroy",
85
+ value: function destroy() {
86
+ removeEvents.call(this);
87
+ this._internalVars.node.parentNode.removeChild(this._internalVars.node);
88
+
89
+ //a little garbage collection
90
+ for (var variableKey in this) {
91
+ if (this.hasOwnProperty(variableKey)) {
92
+ delete this[variableKey];
93
+ }
94
+ }
95
+ }
96
+ }]);
97
+ }(); // Private Methods
98
+ /**
99
+ * setEvents()
100
+ * Sets all the events needed for the component
101
+ */
102
+ function setEvents() {
103
+ this._internalVars.textArea.addEventListener("change", this._internalVars.handler);
104
+ this._internalVars.textArea.addEventListener("keyup", this._internalVars.handler);
105
+ this._internalVars.textArea.addEventListener("keydown", this._internalVars.handler);
106
+ this._internalVars.textArea.addEventListener("blur", this._internalVars.handler);
107
+ this._internalVars.textArea.addEventListener("paste", pasteHandler);
108
+ }
109
+
110
+ /**
111
+ * removeEvents()
112
+ * removes all events from the component
113
+ */
114
+ function removeEvents() {
115
+ this._internalVars.textArea.removeEventListener("change", this._internalVars.handler);
116
+ this._internalVars.textArea.removeEventListener("keyup", this._internalVars.handler);
117
+ this._internalVars.textArea.removeEventListener("keydown", this._internalVars.handler);
118
+ this._internalVars.textArea.removeEventListener("blur", this._internalVars.handler);
119
+ this._internalVars.textArea.removeEventListener("paste", pasteHandler);
120
+ }
121
+
122
+ /**
123
+ * pasteHandler()
124
+ * triggers a keydown event on paste
125
+ */
126
+ function pasteHandler(evt) {
127
+ var _this = evt.currentTarget;
128
+ setTimeout(function () {
129
+ var event = document.createEvent('HTMLEvents');
130
+ event.initEvent('keydown', true, false);
131
+ _this.dispatchEvent(event);
132
+ }, 10);
133
+ }
134
+
135
+ /**
136
+ * updateCountdown()
137
+ * updates the countdown text and counter
138
+ */
139
+ function updateCountdown(evt) {
140
+ var _this = evt.currentTarget;
141
+ var container = _this.parentNode;
142
+ var text = _this.value;
143
+ var remaining = this._options.countdownMax - text.length;
144
+ if (remaining < 0) {
145
+ this._internalVars.countdownInfoText.textContent = this._internalVars.geicoTextOverCopy;
146
+ this._internalVars.countdownInfoTextCurrent = this._internalVars.geicoTextOverCopy;
147
+ container.classList.remove(this._internalVars.geicoTextAreaCloseClass);
148
+ container.classList.add(this._internalVars.geicoTextAreaOverClass);
149
+ } else if (remaining < 10) {
150
+ this._internalVars.countdownInfoText.textContent = this._internalVars.geicoTextCloseCopy;
151
+ this._internalVars.countdownInfoTextCurrent = this._internalVars.geicoTextCloseCopy;
152
+ container.classList.remove(this._internalVars.geicoTextAreaGoodClass);
153
+ container.classList.remove(this._internalVars.geicoTextAreaOverClass);
154
+ container.classList.add(this._internalVars.geicoTextAreaCloseClass);
155
+ } else if (this._internalVars.countdownInfoTextCurrent === this._internalVars.geicoTextCloseCopy || this._internalVars.countdownInfoTextCurrent === this._internalVars.geicoTextOverCopy) {
156
+ this._internalVars.countdownInfoText.textContent = this._internalVars.geicoTextGoodCopy;
157
+ this._internalVars.countdownInfoTextCurrent = this._internalVars.geicoTextGoodCopy;
158
+ container.classList.remove(this._internalVars.geicoTextAreaCloseClass);
159
+ container.classList.remove(this._internalVars.geicoTextAreaOverClass);
160
+ container.classList.add(this._internalVars.geicoTextAreaGoodClass);
161
+ }
162
+ updateRemaining.call(this, remaining, text.length, this._options.countdownMax, this._internalVars.countdownInfoCounter);
163
+ }
164
+
165
+ /**
166
+ * updateRemaining()
167
+ * updates the remaining characters left
168
+ */
169
+ function updateRemaining(remaining, tl, countdown, countdownInfoCounter) {
170
+ var val = remaining;
171
+ if (remaining === 0) val = 0;else if (remaining < 0) val = tl - countdown;
172
+ countdownInfoCounter.textContent = val;
173
+ }
174
+
175
+ /**
176
+ * setLocalVars()
177
+ * set all the local vars to passed in options
178
+ */
179
+ function setLocalVars() {
180
+ //determine the type of content passed in
181
+ if (this._internalVars.contentType === 'string') {
182
+ this._internalVars.node = document.querySelector(this._options.content);
183
+ } else if (this._internalVars.contentType === 'domNode') {
184
+ this._internalVars.node = this._options.content;
185
+ }
186
+
187
+ //node to hold status text
188
+ var infoText = document.createElement("SPAN");
189
+ infoText.classList.add(this._internalVars.geicoTextAreaCountdownInfoTextClass);
190
+
191
+ //node to hold count of characters left
192
+ var infoCounter = document.createElement("SPAN");
193
+ infoCounter.classList.add(this._internalVars.geicoTextAreaCountdownInfoCounterClass);
194
+
195
+ //node to hold count of characters left
196
+ var countdownInfo = document.createElement("DIV");
197
+ countdownInfo.classList.add(this._internalVars.geicoTextAreaCountdownInfoClass);
198
+ countdownInfo.setAttribute('aria-live', 'polite');
199
+ countdownInfo.setAttribute('aria-atomic', 'true');
200
+
201
+ //add the text and counter to the container
202
+ countdownInfo.appendChild(infoText);
203
+ countdownInfo.appendChild(infoCounter);
204
+
205
+ //append the container to the node
206
+ this._internalVars.node.appendChild(countdownInfo);
207
+ //set initial class for container
208
+ this._internalVars.node.classList.add(this._internalVars.geicoTextAreaGoodClass);
209
+
210
+ //get access to the textarea, counter and counter info for future reference
211
+ this._internalVars.textArea = this._internalVars.node.querySelector("." + this._internalVars.geicoTextAreaCountdownClass);
212
+ this._internalVars.countdownInfoText = this._internalVars.node.querySelector("." + this._internalVars.geicoTextAreaCountdownInfoTextClass);
213
+ this._internalVars.countdownInfoCounter = this._internalVars.node.querySelector("." + this._internalVars.geicoTextAreaCountdownInfoCounterClass);
214
+ this._internalVars.countdownInfoTextCurrent = this._internalVars.geicoTextGoodCopy;
215
+ this._internalVars.countdownInfoCounter.textContent = this._options.countdownMax;
216
+ this._internalVars.countdownInfoText.textContent = this._internalVars.countdownInfoTextCurrent;
217
+ this._internalVars.handler = updateCountdown.bind(this);
218
+ }
219
+ var _default = exports["default"] = TextareaCountdown;