geico-design-kit 7.0.0

Sign up to get free protection for your applications and to get access to all the features.

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,498 @@
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 _UserAgentService = _interopRequireDefault(require("../../src/services/UserAgentService"));
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); } //Module Imports
16
+ var interactjs = require('interact.js');
17
+ var validateSettings = [{
18
+ setting: "content",
19
+ isRequired: true,
20
+ validate: "type",
21
+ possibleValues: ["string", "object"],
22
+ errorMessage: ["GDK Time Input : Time Input must be defined and set to a DOM selector or Node"]
23
+ }, {
24
+ setting: "segmentedControlVar",
25
+ isRequired: true,
26
+ validate: "type",
27
+ possibleValues: ["string"],
28
+ errorMessage: ["GDK Time Input : segmentedControlVar must be defined as a string"]
29
+ }, {
30
+ setting: "callBackOnTimeChange",
31
+ isRequired: false,
32
+ validate: "type",
33
+ possibleValues: ["function"],
34
+ errorMessage: ["GDK Time Input : callBackOnTimeChange must be a defined and set function"]
35
+ }, {
36
+ setting: "setInitialTime",
37
+ isRequired: false,
38
+ validate: "type",
39
+ possibleValues: ["string"],
40
+ errorMessage: ["GDK Time Input : setInitialTime must be defined as a string"]
41
+ }];
42
+
43
+ /**
44
+ * TimeInput Class
45
+ */
46
+ var TimeInput = /*#__PURE__*/function () {
47
+ /**
48
+ * Refer to the design kit section of this component for JS examples and setting details.
49
+ * @param {string|Object} content
50
+ * A reference to the time input component node
51
+ *
52
+ *
53
+ * @param {string} segmentedControlVar
54
+ * A name for the segmented control GDK Object
55
+ *
56
+ *
57
+ * @param {function} [callBackOnTimeChange]
58
+ * A callback function triggered when the time has changed
59
+ *
60
+ * @param {string} [setInitialTime]
61
+ * A string that will populate the time input field and adjust the segmented control if necessary
62
+ *
63
+ *
64
+ */
65
+ function TimeInput(options) {
66
+ _classCallCheck(this, TimeInput);
67
+ this._internalVars = {};
68
+
69
+ //options with defaults set
70
+ this._defaults = {};
71
+
72
+ // Create options by extending defaults with the passed in arguments
73
+ if (options && _typeof(options) === "object") {
74
+ this._options = _baseComponent["default"].extendDefaults(this._defaults, options);
75
+ }
76
+
77
+ //if the required options are valid set up the environment
78
+ if (_baseComponent["default"].validateSettings(this._options, validateSettings)) {
79
+ this._internalVars.contentType = _baseComponent["default"].getContentType(this);
80
+ setLocalVars.call(this);
81
+ initSegmentedControl.call(this);
82
+ setEvents.call(this);
83
+ setValue.call(this);
84
+ initMask.call(this);
85
+ }
86
+ }
87
+
88
+ //Public Methods
89
+
90
+ /**
91
+ * returns the time entered in a 24hr format
92
+ * @return {{time: (string)}}
93
+ */
94
+ return _createClass(TimeInput, [{
95
+ key: "getTime",
96
+ value: function getTime() {
97
+ this._internalVars.publicMethodUsed = true;
98
+ getValue.call(this);
99
+ return this._internalVars.timeInputFieldValue;
100
+ }
101
+
102
+ /**
103
+ * sets the time value
104
+ * @param {string} time String containing the 24hr time format
105
+ */
106
+ }, {
107
+ key: "setTime",
108
+ value: function setTime(time) {
109
+ this._internalVars.publicMethodUsed = true;
110
+ getCurrentValue.call(this);
111
+ setValue.call(this, time);
112
+ getValue.call(this);
113
+ }
114
+
115
+ /**
116
+ * removes the node from the dom and any events attached
117
+ */
118
+ }, {
119
+ key: "destroy",
120
+ value: function destroy() {
121
+ removeEvents.call(this);
122
+ this._internalVars.node.parentNode.removeChild(this._internalVars.node);
123
+
124
+ //a little garbage collection
125
+ for (var variableKey in this) {
126
+ if (this.hasOwnProperty(variableKey)) {
127
+ delete this[variableKey];
128
+ }
129
+ }
130
+ }
131
+ }]);
132
+ }(); // Private Methods
133
+ /**
134
+ * setEvents()
135
+ * Sets all the events needed for the component
136
+ */
137
+ function setEvents() {
138
+ var _this = this;
139
+ this._internalVars.timeInputField.addEventListener('focus', getCurrentValue.bind(this));
140
+ this._internalVars.timeInputField.addEventListener('keyup', checkKey.bind(this));
141
+ this._internalVars.timeInputField.addEventListener('blur', getValue.bind(this));
142
+ var eventName = _UserAgentService["default"]._clickEventName();
143
+ Array.prototype.forEach.call(this._internalVars.dropZoneObject, function (element) {
144
+ element.addEventListener(eventName, setSegmentValue.bind(_this));
145
+ interactjs(element).dropzone({
146
+ ondrop: segmentChange.bind(_this)
147
+ });
148
+ });
149
+ }
150
+
151
+ /**
152
+ * removeEvents()
153
+ * removes all events from the component
154
+ */
155
+ function removeEvents() {
156
+ var _this2 = this;
157
+ this._internalVars.timeInputField.removeEventListener('focus', getCurrentValue.bind(this));
158
+ this._internalVars.timeInputField.removeEventListener('keyup', checkKey.bind(this));
159
+ this._internalVars.timeInputField.removeEventListener('blur', getValue.bind(this));
160
+ var eventName = _UserAgentService["default"]._clickEventName();
161
+ Array.prototype.forEach.call(this._internalVars.dropZoneObject, function (element) {
162
+ element.removeEventListener(eventName, setSegmentValue.bind(_this2));
163
+ });
164
+ }
165
+
166
+ /**
167
+ * initMask()
168
+ * instantiates the input field mask
169
+ */
170
+ function initMask() {
171
+ $(this._internalVars.timeInputField).mask("99:99", {});
172
+ }
173
+
174
+ /**
175
+ * initSegmentedControl()
176
+ * instantiates the segmented control component
177
+ */
178
+ function initSegmentedControl() {
179
+ this[this._options.segmentedControlVar] = new GDK.SegmentedControl({
180
+ "content": this._internalVars.segmentedControlObject
181
+ });
182
+ }
183
+
184
+ /**
185
+ * setValue()
186
+ * populates the input field value and calls a function to adjust the segmented control
187
+ */
188
+ function setValue(time) {
189
+ var entry;
190
+ if (time) {
191
+ entry = time;
192
+ } else if (this._options.setInitialTime) {
193
+ entry = this._options.setInitialTime;
194
+ } else {
195
+ entry = ':';
196
+ }
197
+ if (entry.indexOf(":") > 0) {
198
+ var minutes = entry.substring(entry.indexOf(":") + 1),
199
+ hour = entry.substring(0, entry.indexOf(":"));
200
+ if (minutes.length == 2 && hour.length < 3 && hour.length > 0) {
201
+ if (hour < 24 && minutes < 60) {
202
+ var numHour = parseInt(hour),
203
+ userEntry = false,
204
+ segmentVars = setChangeSegmentVars(numHour, userEntry);
205
+ updatePeriod.call(this, segmentVars.period, segmentVars.changeSegment);
206
+ var convertedTime = convertTo12hrFormat.call(this, numHour, minutes, segmentVars.changeSegment);
207
+ if (entry === time) {
208
+ $(this._internalVars.timeInputField).mask("", {});
209
+ this._internalVars.timeInputField.setAttribute('value', convertedTime);
210
+ this._internalVars.timeInputField.value = convertedTime;
211
+ $(this._internalVars.timeInputField).mask("99:99", {});
212
+ } else {
213
+ this._internalVars.timeInputField.setAttribute('value', convertedTime);
214
+ }
215
+ }
216
+ }
217
+ }
218
+ }
219
+
220
+ /**
221
+ * setChangeSegmentVars(numHour, userEntry)
222
+ * @param numHour
223
+ * @param userEntry
224
+ * @returns {{period: string, changeSegment: boolean}}
225
+ * returns an object storing the time period and boolean indicating if the segmented control should be changed
226
+ */
227
+ function setChangeSegmentVars(numHour, userEntry) {
228
+ if (numHour > 12 && numHour < 24) {
229
+ return {
230
+ "period": "PM",
231
+ "changeSegment": true
232
+ };
233
+ } else if (numHour < 1) {
234
+ return {
235
+ "period": "AM",
236
+ "changeSegment": true
237
+ };
238
+ } else {
239
+ if (userEntry === false) {
240
+ return {
241
+ "period": "AM",
242
+ "changeSegment": true
243
+ };
244
+ } else {
245
+ return {
246
+ "period": "AM",
247
+ "changeSegment": false
248
+ };
249
+ }
250
+ }
251
+ }
252
+
253
+ /**
254
+ * convertTo12hrFormat(numHour, minutes)
255
+ * @param numHour
256
+ * @param minutes
257
+ * @returns {string}
258
+ * returns a string converting a 24hr time format to a 12hr format
259
+ */
260
+ function convertTo12hrFormat(numHour, minutes) {
261
+ if (numHour > 12) {
262
+ numHour = numHour - 12;
263
+ } else if (numHour < 1) {
264
+ numHour = numHour + 12;
265
+ }
266
+ var newHour = numHour.toString();
267
+ if (newHour.length < 2) {
268
+ newHour = "0" + newHour;
269
+ }
270
+ return newHour + minutes;
271
+ }
272
+
273
+ /**
274
+ * convertTo24hrFormat(activeSegment, hour, minutes)
275
+ * @param activeSegment
276
+ * @param hour
277
+ * @param minutes
278
+ * @returns {string}
279
+ * returns a string converting a 12hr time format to a 24hr format
280
+ */
281
+ function convertTo24hrFormat(activeSegment, hour, minutes) {
282
+ var newHour = parseInt(hour);
283
+ if (activeSegment === 'PM') {
284
+ hour = newHour + 12;
285
+ if (hour === 24) {
286
+ hour = hour - 12;
287
+ }
288
+ } else {
289
+ if (newHour === 12) {
290
+ hour = newHour - 12 + "0";
291
+ }
292
+ }
293
+ return hour + ":" + minutes;
294
+ }
295
+
296
+ /**
297
+ * parseInputValue()
298
+ * Takes the time value and returns hours, minutes and the current segment
299
+ * @returns {{hours: string, minutes: string, segment: string}}
300
+ */
301
+ function parseInputValue() {
302
+ this._internalVars.timeInputSegmentSelection = this._internalVars.timeInputObject.querySelector('.' + this._internalVars.activeClass);
303
+ var activeElementText = this._internalVars.timeInputSegmentSelection.innerHTML,
304
+ minutes = this._internalVars.timeInputField.value.slice(-2),
305
+ hours = this._internalVars.timeInputField.value.substring(0, 2);
306
+ return {
307
+ "hours": hours,
308
+ "minutes": minutes,
309
+ "segment": activeElementText
310
+ };
311
+ }
312
+
313
+ /**
314
+ * getCurrentValue()
315
+ * Set a local variable and stores the current time
316
+ */
317
+ function getCurrentValue() {
318
+ var timeEntry = parseInputValue.call(this);
319
+ if (timeEntry.hours.length !== 0 && timeEntry.minutes.length !== 0) {
320
+ this._internalVars.timeInputFieldCurrentValue = convertTo24hrFormat.call(this, timeEntry.segment, timeEntry.hours, timeEntry.minutes);
321
+ } else {
322
+ this._internalVars.timeInputFieldCurrentValue = '__:__';
323
+ }
324
+ this._internalVars.timeInputCompare = true;
325
+ }
326
+
327
+ /**
328
+ * setSegmentValue()
329
+ * Sets a new value for the segmented control when the user changes the segment manually
330
+ */
331
+ function setSegmentValue() {
332
+ var timeEntry = parseInputValue.call(this);
333
+ if (timeEntry.hours.length !== 0 && timeEntry.minutes.length !== 0) {
334
+ if (timeEntry.segment === "AM") {
335
+ timeEntry.segment = "PM";
336
+ } else {
337
+ timeEntry.segment = "AM";
338
+ }
339
+ this._internalVars.timeInputFieldCurrentValue = convertTo24hrFormat.call(this, timeEntry.segment, timeEntry.hours, timeEntry.minutes);
340
+ this._internalVars.timeInputCompare = true;
341
+ getValue.call(this);
342
+ }
343
+ }
344
+
345
+ /**
346
+ * checkKey(event)
347
+ * @param event
348
+ * check if numbers or backspace was pressed
349
+ */
350
+ function checkKey(event) {
351
+ //Check the key pressed to trigger function (keys 0-9 and 'backspace')
352
+
353
+ if (event.which > 47 && event.which < 58 || event.which === 8 || event.which > 95 && event.which < 106 || event.which == 229) {
354
+ setTimePeriodVar.call(this);
355
+ }
356
+ }
357
+
358
+ /**
359
+ * setTimePeriodVar()
360
+ * set an AM or PM variable and evaluate if the segment should change
361
+ */
362
+ function setTimePeriodVar() {
363
+ var hour,
364
+ userEntry = true;
365
+
366
+ //Desktops/iOS recognize the input mask as a value when checking the length, Android does not
367
+ if (this._internalVars.timeInputField.value.length > 3) {
368
+ hour = this._internalVars.timeInputField.value.substring(2, 0);
369
+ }
370
+ if (this._internalVars.timeInputField.value.length === 3) {
371
+ hour = this._internalVars.timeInputField.value.substring(1, 0);
372
+ }
373
+ var segmentVars = setChangeSegmentVars(hour, userEntry);
374
+ updatePeriod.call(this, segmentVars.period, segmentVars.changeSegment);
375
+ }
376
+
377
+ /**
378
+ * updatePeriod(period, changeSegment)
379
+ * @param period
380
+ * @param changeSegment
381
+ * changes the segmented control to AM or PM
382
+ */
383
+ function updatePeriod(period, changeSegment) {
384
+ var activeIndex;
385
+ if (period === 'AM') {
386
+ activeIndex = 0;
387
+ } else {
388
+ activeIndex = 1;
389
+ }
390
+ this._internalVars.timeInputSegmentSelection = this._internalVars.timeInputObject.querySelector('.' + this._internalVars.activeClass);
391
+ if (period !== this._internalVars.timeInputSegmentSelection.innerHTML && changeSegment === true) {
392
+ var delay = setTimeout(setNewSegmentValue.bind(this), 350);
393
+ if (this._internalVars.timeInputSegmentSelection) {
394
+ this._internalVars.timeInputSegmentSelection.classList.remove(this._internalVars.activeClass);
395
+ this._internalVars.timeInputSegmentSelection.setAttribute('aria-checked', 'false');
396
+ }
397
+ this._internalVars.dropZoneObject[activeIndex].classList.add(this._internalVars.activeClass);
398
+ this._internalVars.dropZoneObject[activeIndex].setAttribute('aria-checked', 'true');
399
+ this._internalVars.draggableObject.classList.add(this._internalVars.animateClass);
400
+ this._internalVars.draggableObject.classList.add(this._internalVars.activeDragClass);
401
+ this._internalVars.draggableObject.innerText = '';
402
+ this._internalVars.draggableObject.style.zIndex = 1;
403
+ this._internalVars.timeInputSegmentSelection = this._internalVars.timeInputObject.querySelector('.' + this._internalVars.activeClass);
404
+ var activeElementLeft = this._internalVars.timeInputSegmentSelection.offsetLeft;
405
+ this._internalVars.draggableObject.style.left = activeElementLeft + 'px';
406
+ this._internalVars.draggableObject.setAttribute('data-x', activeElementLeft);
407
+ this._internalVars.timeInputSegmentChangeOnly = true;
408
+ }
409
+ }
410
+
411
+ /**
412
+ * setNewSegmentValue()
413
+ * sets values of element after animation
414
+ */
415
+ function setNewSegmentValue() {
416
+ this._internalVars.timeInputSegmentSelection = this._internalVars.timeInputObject.querySelector('.' + this._internalVars.activeClass);
417
+ var activeElementContent = this._internalVars.timeInputSegmentSelection.innerHTML;
418
+ this._internalVars.draggableObject.innerHTML = activeElementContent;
419
+ this._internalVars.draggableObject.style.zIndex = 2;
420
+ this._internalVars.draggableObject.classList.remove(this._internalVars.animateClass);
421
+ this._internalVars.draggableObject.classList.remove(this._internalVars.activeDragClass);
422
+ }
423
+
424
+ /**
425
+ * segmentChange(event)
426
+ * @param event
427
+ * updates the segment visually when the user drops the segment selector
428
+ */
429
+ function segmentChange(event) {
430
+ var period = event.target.innerHTML,
431
+ changeSegment = true,
432
+ timeEntry = parseInputValue.call(this);
433
+ updatePeriod.call(this, period, changeSegment);
434
+ if (timeEntry.hours.length !== 0 && timeEntry.minutes.length !== 0) {
435
+ getValue.call(this);
436
+ }
437
+ }
438
+
439
+ /**
440
+ * getValue()
441
+ * gets the value of the input field and segmented control selection
442
+ */
443
+ function getValue() {
444
+ var timeEntry = parseInputValue.call(this);
445
+ if (timeEntry.hours < 24 && timeEntry.minutes < 60) {
446
+ if (timeEntry.hours < 13) {
447
+ this._internalVars.timeInputFieldValue = convertTo24hrFormat.call(this, timeEntry.segment, timeEntry.hours, timeEntry.minutes);
448
+ } else {
449
+ this._internalVars.timeInputFieldValue = timeEntry.hours + ":" + timeEntry.minutes;
450
+ }
451
+ } else if (timeEntry.hours >= 24 || timeEntry.minutes >= 60) {
452
+ this._internalVars.timeInputFieldValue = timeEntry.hours + ":" + timeEntry.minutes;
453
+ } else {
454
+ this._internalVars.timeInputFieldValue = "";
455
+ }
456
+ if (this._options.callBackOnTimeChange && this._internalVars.publicMethodUsed === false) {
457
+ if (this._internalVars.timeInputFieldCurrentValue === '__:__' || this._internalVars.timeInputFieldValue !== this._internalVars.timeInputFieldCurrentValue && this._internalVars.timeInputCompare === true) {
458
+ this._options.callBackOnTimeChange(this._internalVars.timeInputFieldValue);
459
+ this._internalVars.timeInputCompare = false;
460
+ } else if (this._internalVars.timeInputSegmentChangeOnly === true) {
461
+ this._options.callBackOnTimeChange(this._internalVars.timeInputFieldValue);
462
+ this._internalVars.timeInputSegmentChangeOnly = false;
463
+ }
464
+ }
465
+ this._internalVars.publicMethodUsed = false;
466
+ }
467
+
468
+ /**
469
+ * setLocalVars()
470
+ * set all the local vars to passed in options
471
+ */
472
+ function setLocalVars() {
473
+ //determine the type of content passed in
474
+ if (this._internalVars.contentType === 'string') {
475
+ this._internalVars.node = document.querySelector(this._options.content);
476
+ } else if (this._internalVars.contentType === 'domNode') {
477
+ this._internalVars.node = this._options.content;
478
+ }
479
+ this._internalVars.timeInputObject = this._internalVars.node;
480
+ this._internalVars.timeInputFieldClass = 'time-input';
481
+ this._internalVars.segmentedControlClass = 'segmented-control-component';
482
+ this._internalVars.activeClass = 'active';
483
+ this._internalVars.dropZoneClass = '.dropzone';
484
+ this._internalVars.draggableClass = '.sc-draggable';
485
+ this._internalVars.activeDragClass = 'active-drag';
486
+ this._internalVars.animateClass = 'animate-drop';
487
+ this._internalVars.segmentedControlObject = this._internalVars.timeInputObject.querySelector('.' + this._internalVars.segmentedControlClass);
488
+ this._internalVars.timeInputField = this._internalVars.timeInputObject.querySelector('.' + this._internalVars.timeInputFieldClass);
489
+ this._internalVars.dropZoneObject = this._internalVars.timeInputObject.querySelectorAll(this._internalVars.dropZoneClass);
490
+ this._internalVars.draggableObject = this._internalVars.timeInputObject.querySelector(this._internalVars.draggableClass);
491
+ this._internalVars.timeInputFieldValue = this._internalVars.timeInputField.value;
492
+ this._internalVars.timeInputFieldCurrentValue = null;
493
+ this._internalVars.timeInputSegmentSelection = null;
494
+ this._internalVars.timeInputCompare = false;
495
+ this._internalVars.timeInputSegmentChangeOnly = null;
496
+ this._internalVars.publicMethodUsed = false;
497
+ }
498
+ var _default = exports["default"] = TimeInput;