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,489 @@
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); }
16
+ var PromiseIE = require('es6-promise-polyfill').Promise;
17
+ // get the correct click event
18
+ var clickEventName = _UserAgentService["default"]._clickEventName();
19
+ var validateSettings = [{
20
+ setting: "content",
21
+ isRequired: true,
22
+ validate: "type",
23
+ possibleValues: ["string", "object"],
24
+ errorMessage: ["GDK Consolidated Summary : Content must be defined and set to a DOM selector or Node"]
25
+ }, {
26
+ setting: "autoLoad",
27
+ isRequired: false,
28
+ validate: "type",
29
+ possibleValues: ["boolean"],
30
+ errorMessage: ["GDK Consolidated Summary : autoLoad must be a boolean"]
31
+ }, {
32
+ setting: "loadPlog",
33
+ isRequired: false,
34
+ validate: "type",
35
+ possibleValues: ["function"],
36
+ errorMessage: ["GDK Consolidated Summary : loadPlog must be a function"]
37
+ }];
38
+
39
+ /**
40
+ * Consolidated Summary Component: This is integrated informative component for GEICO Counselors. Main purpose is to ease counselors
41
+ * work by displaying various information on selected policy holder.
42
+ */
43
+ var ConsolidatedSummary = /*#__PURE__*/function () {
44
+ /**
45
+ *
46
+ * @param options
47
+ */
48
+ function ConsolidatedSummary(options) {
49
+ _classCallCheck(this, ConsolidatedSummary);
50
+ this._internalVars = {
51
+ node: null,
52
+ //used for the current node
53
+ consolidatedSummary: null //holds reference to the consolidated Summary node;
54
+ };
55
+ this._defaults = {
56
+ initialTabOpen: 1,
57
+ autoLoad: true,
58
+ loadPlog: function loadPlog() {
59
+ //Return an empty promise
60
+ return new PromiseIE(function (resolve, reject) {
61
+ resolve();
62
+ });
63
+ }
64
+ };
65
+ if (options && _typeof(options) === "object") {
66
+ this._options = _baseComponent["default"].extendDefaults(this._defaults, options);
67
+ }
68
+ if (_baseComponent["default"].validateSettings(this._options, validateSettings)) {
69
+ this._internalVars.contentType = _baseComponent["default"].getContentType(this);
70
+ setLocalVars.call(this);
71
+ setEvents.call(this);
72
+ init.call(this);
73
+ }
74
+ }
75
+
76
+ /**
77
+ * This method cleans up all Consolidated Summary tracks in the DOM, but does NOT destroy
78
+ * the Consolidated Summary Object.
79
+ */
80
+ return _createClass(ConsolidatedSummary, [{
81
+ key: "hide",
82
+ value: function hide() {
83
+ hideComponent.call(this);
84
+ }
85
+
86
+ /**
87
+ * This global method displays consolodated summary.
88
+ * @param initFix
89
+ */
90
+ }, {
91
+ key: "show",
92
+ value: function show(initFix) {
93
+ var node = this._internalVars.node;
94
+ if (initFix) {
95
+ this._internalVars.pageWrapper.classList.add('consolidated-summary-enabled');
96
+ if (this._internalVars.toTop !== null) {
97
+ this._internalVars.toTop.classList.add('consolidated-summary-enabled');
98
+ }
99
+ } else {
100
+ displayComponent.call(this);
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Destroy the Consolidated Summary component.
106
+ */
107
+ }, {
108
+ key: "destroy",
109
+ value: function destroy() {
110
+ removeEvents.call(this);
111
+ delete this._internalVars;
112
+ }
113
+ }]);
114
+ }();
115
+ /**
116
+ * Initializing method
117
+ */
118
+ function init() {
119
+ // make sure the #wrapper don't have the .pinned-consolidated-summary class;
120
+ this._internalVars.csWrapper.classList.remove('pinned-consolidated-summary');
121
+ if (this._options.autoLoad && this._internalVars.node.classList.contains('hidden')) {
122
+ this.show();
123
+ } else if (!this._options.autoLoad && !this._internalVars.node.classList.contains('hidden')) {
124
+ this.hide();
125
+ } else if (this._options.autoLoad && !this._internalVars.node.classList.contains('hidden')) {
126
+ this.show(true);
127
+ }
128
+ this._internalVars.node.classList.remove('extended');
129
+ if (this._internalVars.plogComponent && (!this._internalVars.plogComponent.classList || !this._internalVars.plogComponent.classList.contains('extended'))) {
130
+ this._internalVars.plogComponent.classList.add('hidden');
131
+ }
132
+
133
+ /* Instantiate the tabs */
134
+ openInitialTab.call(this);
135
+ }
136
+
137
+ /**
138
+ * method to set events for the component
139
+ */
140
+ function setEvents() {
141
+ /* Tabs */
142
+ var tabs = this._internalVars.verticalTabs.querySelectorAll('.tab');
143
+ var plogBtn, plogResizeBtn, plogMinimizeBtn;
144
+
145
+ /* PLOG Controls */
146
+ if (this._internalVars.plogComponent !== null && this._internalVars.plogBtn !== null) {
147
+ plogBtn = this._internalVars.plogBtn;
148
+ /*PLOG Window Controls */
149
+ plogResizeBtn = this._internalVars.plogComponent.querySelector(".plogResizeBtn");
150
+ plogMinimizeBtn = this._internalVars.plogComponent.querySelector(".plogMinimizeBtn");
151
+ }
152
+
153
+ // On mouse click behavior
154
+ this._internalVars.csWrapper.addEventListener(clickEventName, extendCSHandler.bind(this));
155
+ // this._internalVars.csWrapper.addEventListener(clickEventName, function () {
156
+ // console.log("opa opa");
157
+ // });
158
+ // On mouse leave behavior
159
+ // this._internalVars.csWrapper.addEventListener("mouseleave", retractCSHandler.call(this));
160
+ this._internalVars.csWrapper.addEventListener("mouseleave", retractCSHandler.bind(this));
161
+
162
+ // implement "pinned" functionality
163
+ this._internalVars.node.querySelector(".consolidated-summary-pin").addEventListener(clickEventName, pinHandler.bind(this));
164
+ Array.prototype.map.call(tabs, function (element) {
165
+ element.addEventListener(clickEventName, tabClickHandler.bind(this));
166
+ }.bind(this));
167
+ if (plogBtn) {
168
+ plogBtn.addEventListener(clickEventName, pLogToggleHandler.bind(this));
169
+ }
170
+ if (plogMinimizeBtn) {
171
+ plogMinimizeBtn.addEventListener(clickEventName, minimizePlogHandler.bind(this));
172
+ }
173
+ if (plogResizeBtn) {
174
+ plogResizeBtn.addEventListener(clickEventName, resizePlogHandler.bind(this));
175
+ }
176
+ if (this._internalVars.delete_switch !== null) {
177
+ this._internalVars.delete_switch.addEventListener(clickEventName, toggleNotesDeleteButtons.bind(this));
178
+ }
179
+ }
180
+
181
+ /**
182
+ * method to remove events for the component
183
+ */
184
+ function removeEvents() {
185
+ /* Tabs */
186
+ var tabs = this._internalVars.verticalTabs.querySelectorAll('.tab');
187
+ var plogBtn, plogResizeBtn, plogMinimizeBtn;
188
+
189
+ /* PLOG Controls */
190
+ if (this._internalVars.plogComponent !== null && this._internalVars.plogBtn !== null) {
191
+ plogBtn = this._internalVars.plogBtn;
192
+ /*PLOG Window Controls */
193
+ plogResizeBtn = this._internalVars.plogComponent.querySelector(".plogResizeBtn");
194
+ plogMinimizeBtn = this._internalVars.plogComponent.querySelector(".plogMinimizeBtn");
195
+ }
196
+
197
+ // On mouse click behavior
198
+ this._internalVars.csWrapper.removeEventListener(clickEventName, extendCSHandler.bind(this));
199
+ // On mouse leave behavior
200
+ this._internalVars.csWrapper.removeEventListener("mouseleave", retractCSHandler.bind(this));
201
+ // implement "pinned" functionality
202
+ this._internalVars.node.querySelector(".consolidated-summary-pin").removeEventListener(clickEventName, pinHandler.bind(this));
203
+ Array.prototype.map.call(tabs, function (element) {
204
+ element.removeEventListener(clickEventName, tabClickHandler.bind(this));
205
+ }.bind(this));
206
+ if (plogBtn) {
207
+ plogBtn.removeEventListener(clickEventName, pLogToggleHandler.bind(this));
208
+ }
209
+ if (plogMinimizeBtn) {
210
+ plogMinimizeBtn.removeEventListener(clickEventName, minimizePlogHandler.bind(this));
211
+ }
212
+ if (plogResizeBtn) {
213
+ plogResizeBtn.removeEventListener(clickEventName, resizePlogHandler.bind(this));
214
+ }
215
+ }
216
+ function extendCSHandler() {
217
+ console.log('Wrapper is clicked');
218
+ this._internalVars.node.classList.add("extended");
219
+ if (this._internalVars.toTop !== null) {
220
+ this._internalVars.toTop.classList.add('consolidated-summary-extended');
221
+ }
222
+ }
223
+ function retractCSHandler() {
224
+ this._internalVars.node.classList.remove("extended");
225
+ if (this._internalVars.toTop !== null) {
226
+ this._internalVars.toTop.classList.remove('consolidated-summary-extended');
227
+ }
228
+ }
229
+ function pinHandler() {
230
+ if (!this._internalVars.node.classList.contains("pinned")) {
231
+ this._internalVars.pageWrapper.classList.add('pinned-consolidated-summary');
232
+ if (this._internalVars.toTop !== null) {
233
+ this._internalVars.toTop.classList.add('consolidated-summary-pinned');
234
+ }
235
+ if (this._internalVars.drtMessage !== null) {
236
+ var dockedMsgArray = document.querySelectorAll('.docked-real-time-message-wrapper');
237
+ Array.prototype.forEach.call(dockedMsgArray, function (element) {
238
+ if (!element.classList.contains('con-sum-pinned')) {
239
+ if (element.hasAttribute('id')) {
240
+ element.classList.add('con-sum-three-hundred-fix');
241
+ }
242
+ element.classList.add('con-sum-pinned');
243
+ }
244
+ });
245
+ }
246
+ this._internalVars.node.classList.add("pinned");
247
+ } else {
248
+ this._internalVars.pageWrapper.classList.remove('pinned-consolidated-summary');
249
+ if (this._internalVars.toTop !== null) {
250
+ if (this._internalVars.toTop.classList.contains('consolidated-summary-pinned')) {
251
+ this._internalVars.toTop.classList.remove('consolidated-summary-pinned');
252
+ }
253
+ }
254
+ if (this._internalVars.drtMessage !== null) {
255
+ var _dockedMsgArray = document.querySelectorAll('.docked-real-time-message-wrapper');
256
+ Array.prototype.forEach.call(_dockedMsgArray, function (element) {
257
+ if (element.classList.contains('con-sum-pinned')) {
258
+ if (element.hasAttribute('id')) {
259
+ element.classList.remove('con-sum-three-hundred-fix');
260
+ }
261
+ element.classList.remove('con-sum-pinned');
262
+ }
263
+ });
264
+ }
265
+ this._internalVars.node.classList.remove("pinned");
266
+ }
267
+ }
268
+ function pLogToggleHandler() {
269
+ this._options.loadPlog().then(plogToggle.call(this));
270
+ function plogToggle() {
271
+ // hide Policy Notes
272
+ if (!this._internalVars.plogComponent.classList.contains("hidden")) {
273
+ this._internalVars.plogComponent.classList.add("hidden");
274
+ if (this._internalVars.toTop !== null) {
275
+ this._internalVars.toTop.classList.remove('plog-enabled');
276
+ }
277
+ } else {
278
+ // Display Policy Notes
279
+ this._internalVars.plogComponent.classList.remove("hidden");
280
+ if (this._internalVars.toTop !== null) {
281
+ this._internalVars.toTop.classList.add('plog-enabled');
282
+ }
283
+ }
284
+ }
285
+ }
286
+ function toggleNotesDeleteButtons(e) {
287
+ e.target.parentElement.parentElement.parentElement.classList.add('admin-on');
288
+ var notes = this._internalVars.plogComponent.querySelectorAll('.policy-note>.note-details>.delete-note');
289
+ for (var note in notes) {
290
+ if (_typeof(notes[note]) === 'object') {
291
+ notes[note].classList.remove('hidden');
292
+ }
293
+ }
294
+ }
295
+ function minimizePlogHandler() {
296
+ if (!this._internalVars.plogComponent.classList.contains("hidden")) {
297
+ this._internalVars.plogComponent.classList.remove("maximized");
298
+ if (this._internalVars.toTop !== null) {
299
+ if (!this._internalVars.node.classList.contains('extended') && this._internalVars.toTop.classList.contains('consolidated-summary-extended')) {
300
+ this._internalVars.toTop.classList.remove('consolidated-summary-extended');
301
+ }
302
+ if (!this._internalVars.node.classList.contains("pinned") && this._internalVars.toTop.classList.contains('consolidated-summary-pinned')) {
303
+ this._internalVars.toTop.classList.remove('consolidated-summary-pinned');
304
+ }
305
+ this._internalVars.toTop.classList.remove('plog-enabled');
306
+ }
307
+ this._internalVars.plogComponent.classList.add("hidden");
308
+ } else {
309
+ this._internalVars.plogComponent.classList.remove("hidden");
310
+ }
311
+ }
312
+ function resizePlogHandler() {
313
+ if (!this._internalVars.plogComponent.classList.contains("maximized")) {
314
+ if (this._internalVars.node.classList && this._internalVars.node.classList.contains("extended")) {
315
+ this._internalVars.node.classList.remove("extended");
316
+ }
317
+ if (this._internalVars.node.classList && this._internalVars.node.classList.contains("pinned")) {
318
+ this._internalVars.pageWrapper.classList.remove('pinned-consolidated-summary');
319
+ this._internalVars.node.classList.remove("pinned");
320
+ }
321
+ this._internalVars.plogComponent.classList.add("maximized");
322
+ } else {
323
+ this._internalVars.plogComponent.classList.remove("maximized");
324
+ }
325
+ }
326
+
327
+ /* Tabs Methods */
328
+
329
+ /**
330
+ * tabClickHandler()
331
+ * Opens tab content for clicked tab and hides the rest
332
+ */
333
+ function tabClickHandler(element) {
334
+ var _this = this;
335
+ var currentNode = element.currentTarget;
336
+ //get index of clicked tab
337
+ var index = [].indexOf.call(this._internalVars.tabs, currentNode);
338
+ if (this._options.tabClicked) if (this._options.tabClicked(currentNode) === false) return false;
339
+ Array.prototype.map.call(this._internalVars.tabs, function (element) {
340
+ if (element === currentNode) {
341
+ element.classList.add("active");
342
+ } else {
343
+ element.classList.remove("active");
344
+ }
345
+ });
346
+ Array.prototype.map.call(this._internalVars.panels, function (element, i) {
347
+ if (i === index) {
348
+ openPanel.call(_this, element);
349
+ } else {
350
+ closePanel.call(_this, element);
351
+ }
352
+ });
353
+ }
354
+
355
+ /**
356
+ * openInitialTab()
357
+ * Opens tab content for tab set by initialTabOpen
358
+ */
359
+ function openInitialTab() {
360
+ var _this2 = this;
361
+ var tabIndex = this._options.initialTabOpen - 1;
362
+ Array.prototype.map.call(this._internalVars.tabs, function (element, i) {
363
+ if (i === tabIndex) {
364
+ element.classList.add("active");
365
+ } else {
366
+ element.classList.remove("active");
367
+ }
368
+ });
369
+ Array.prototype.map.call(this._internalVars.panels, function (element, i) {
370
+ if (i === tabIndex) {
371
+ openPanel.call(_this2, element);
372
+ } else {
373
+ closePanel.call(_this2, element);
374
+ }
375
+ });
376
+ }
377
+
378
+ /**
379
+ * openPanel()
380
+ * Opens panel at the same index as the clicked tab and hides the other panels
381
+ */
382
+ function openPanel(element) {
383
+ element.classList.add("active");
384
+ }
385
+
386
+ /**
387
+ * closePanel()
388
+ * closes the past in panel
389
+ */
390
+ function closePanel(element) {
391
+ element.classList.remove("active");
392
+ }
393
+
394
+ /**
395
+ * Displays the component (display).
396
+ */
397
+ function displayComponent() {
398
+ var node = this._internalVars.node;
399
+ /* con-sum-on */
400
+ if (this._internalVars.node.classList) {
401
+ if (this._internalVars.node.classList.contains('hidden')) {
402
+ this._internalVars.node.classList.remove("hidden");
403
+ if (!this._internalVars.pageWrapper.classList.contains('consolidated-summary-enabled')) {
404
+ this._internalVars.pageWrapper.classList.add('consolidated-summary-enabled');
405
+ }
406
+ if (this._internalVars.toTop !== null) {
407
+ if (!this._internalVars.toTop.classList.contains('consolidated-summary-enabled')) {
408
+ this._internalVars.toTop.classList.add('consolidated-summary-enabled');
409
+ }
410
+ }
411
+ if (this._internalVars.drtMessage !== null) {
412
+ var dockedMsgArray = document.querySelectorAll('.docked-real-time-message-wrapper');
413
+ Array.prototype.forEach.call(dockedMsgArray, function (element) {
414
+ if (!element.classList.contains('con-sum-on')) {
415
+ if (element.hasAttribute('id')) {
416
+ element.classList.add('con-sum-fifty-fix');
417
+ }
418
+ element.classList.add('con-sum-on');
419
+ }
420
+ });
421
+ }
422
+ }
423
+ }
424
+ }
425
+
426
+ /**
427
+ * Hides the component (hide)
428
+ */
429
+ function hideComponent() {
430
+ var node = this._internalVars.node;
431
+ // Hide Consolidated Summary if exists on the DOM
432
+ if (this._internalVars.node.classList.contains('extended')) {
433
+ this._internalVars.node.classList.remove('extended');
434
+ }
435
+ if (this._internalVars.node.classList.contains('pinned')) {
436
+ this._internalVars.node.classList.remove('pinned');
437
+ }
438
+ if (!this._internalVars.node.classList.contains('hidden')) {
439
+ this._internalVars.node.classList.add('hidden');
440
+ }
441
+
442
+ // Clean up any Docked Real Time Message classes
443
+ // const drtMessage = document.querySelector('.docked-real-time-message-wrapper') || null;
444
+ if (this._internalVars.drtMessage !== null) {
445
+ var dockedMsgArray = document.querySelectorAll('.docked-real-time-message-wrapper');
446
+ Array.prototype.forEach.call(dockedMsgArray, function (element) {
447
+ if (element.classList.contains('con-sum-pinned')) {
448
+ if (element.hasAttribute('id')) {
449
+ element.classList.remove('con-sum-three-hundred-fix');
450
+ }
451
+ element.classList.remove('con-sum-pinned');
452
+ }
453
+ });
454
+ }
455
+ // Remove classes of the HTML DOM elements #wrapper and #to-top
456
+ this._internalVars.pageWrapper.classList.remove('consolidated-summary-enabled');
457
+ this._internalVars.pageWrapper.classList.remove('pinned-consolidated-summary');
458
+ this._internalVars.node.classList.remove('pinned');
459
+ if (this._internalVars.toTop !== null) {
460
+ this._internalVars.toTop.classList.remove('consolidated-summary-enabled');
461
+ this._internalVars.toTop.classList.remove('consolidated-summary-pinned');
462
+ }
463
+ }
464
+
465
+ /**
466
+ * Method to set local variables.
467
+ */
468
+ function setLocalVars() {
469
+ if (this._internalVars.contentType === 'string') {
470
+ this._internalVars.node = document.querySelector(this._options.content);
471
+ } else if (this._internalVars.contentType === 'domNode') {
472
+ this._internalVars.node = this._options.content;
473
+ }
474
+ this._internalVars.csWrapper = this._internalVars.node.querySelector(".consolidated-summary-wrapper");
475
+ this._internalVars.verticalTabs = this._internalVars.node.querySelector('.consolidated-summary-content-tabs');
476
+ this._internalVars.tabs = this._internalVars.verticalTabs.querySelectorAll('.tab');
477
+ this._internalVars.panels = this._internalVars.verticalTabs.querySelectorAll('.panel');
478
+ // Check if Policy Log exists, then create local vars;
479
+ this._internalVars.plogComponent = this._internalVars.node.querySelector(".plog") || null;
480
+ this._internalVars.plogBtn = this._internalVars.node.querySelector(".plog-btn") || null;
481
+ this._internalVars.plogForm = this._internalVars.node.querySelector(".policy-note-input-form") || null;
482
+ this._internalVars.plogSendBtn = this._internalVars.node.querySelector(".plog-input-bar .send-btn") || null;
483
+ // External DOM Elements
484
+ this._internalVars.toTop = document.querySelector('#to-top') || null;
485
+ this._internalVars.pageWrapper = document.querySelector('#wrapper') || null;
486
+ this._internalVars.drtMessage = document.querySelector('.docked-real-time-message-wrapper') || null;
487
+ this._internalVars.delete_switch = document.querySelector('.admin-delete-switch') || null;
488
+ }
489
+ var _default = exports["default"] = ConsolidatedSummary;
@@ -0,0 +1,201 @@
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 Alert : Content must be defined and set to a DOM selector or Node']
21
+ }];
22
+ var CoverageGraph = /*#__PURE__*/function () {
23
+ /**
24
+ * These are settings for the instantiation. Refer to the design kit section of this component for JS setting examples.
25
+ * @param {string|Object} content
26
+ * A reference to the coverage graph node
27
+ */
28
+ function CoverageGraph(options) {
29
+ _classCallCheck(this, CoverageGraph);
30
+ this._internalVars = {
31
+ node: null,
32
+ //used for current node
33
+ breakdownNode: null,
34
+ legendNode: null,
35
+ labelArray: null,
36
+ costArray: null,
37
+ percentArray: [],
38
+ totalSum: 0,
39
+ percentSum: 0,
40
+ centerCircle: null
41
+ };
42
+
43
+ //options with defaults set
44
+ this._defaults = {};
45
+
46
+ // Create options by extending defaults with the passed in arugments
47
+ if (options && _typeof(options) === "object") {
48
+ this._options = _baseComponent["default"].extendDefaults(this._defaults, options);
49
+ }
50
+
51
+ //if the required options are valid set up the environment
52
+ if (_baseComponent["default"].validateSettings(this._options, validateSettings)) {
53
+ this._internalVars.contentType = _baseComponent["default"].getContentType(this);
54
+ setLocalVars.call(this);
55
+ setEvents.call(this);
56
+ appendCenterCost.call(this);
57
+ createSlices.call(this);
58
+ createLegend.call(this);
59
+ }
60
+ }
61
+
62
+ //Public Methods
63
+
64
+ /**
65
+ * destroy()
66
+ * removes the node from the dom and any events attached
67
+ */
68
+ return _createClass(CoverageGraph, [{
69
+ key: "destroy",
70
+ value: function destroy() {
71
+ $(this._internalVars.node).datepicker("destroy");
72
+ this._internalVars.node.parentNode.removeChild(this._internalVars.node);
73
+
74
+ //a little garbage collection
75
+ for (var variableKey in this) {
76
+ if (this.hasOwnProperty(variableKey)) {
77
+ delete this[variableKey];
78
+ }
79
+ }
80
+ }
81
+ }]);
82
+ }(); // Private Methods
83
+ function setLocalVars() {
84
+ if (this._internalVars.contentType === 'string') {
85
+ this._internalVars.node = document.querySelector(this._options.content);
86
+ } else if (this._internalVars.contentType === 'domNode') {
87
+ this._internalVars.node = this._options.content;
88
+ }
89
+ this._internalVars.breakdownNode = this._internalVars.node.querySelector('.coverage-graph-breakdown');
90
+ if (this._internalVars.breakdownNode.dataset !== undefined) {
91
+ this._internalVars.costArray = this._internalVars.breakdownNode.dataset.costbreakdown.split(" ");
92
+ this._internalVars.labelArray = this._internalVars.breakdownNode.dataset.labels.split(",");
93
+ } else {
94
+ this._internalVars.labelArray = this._internalVars.breakdownNode.getAttribute('data-labels').split(",");
95
+ this._internalVars.costArray = this._internalVars.breakdownNode.getAttribute('data-costbreakdown').split(" ");
96
+ }
97
+ this._internalVars.centerCircle = this._internalVars.breakdownNode.querySelector('.circle');
98
+ this._internalVars.legendNode = this._internalVars.node.querySelector('.legend');
99
+ }
100
+
101
+ /**
102
+ * setEvents()
103
+ * Sets all the events needed for the component
104
+ */
105
+ function setEvents() {}
106
+ function appendCenterCost() {
107
+ var monetary = this._internalVars.centerCircle.querySelector('.monetary');
108
+ var sumText = getCostSum.call(this);
109
+ var costBreakdownArray = sumText.toString().split(".");
110
+ var textNodeSum = document.createTextNode(costBreakdownArray[0]);
111
+ monetary.appendChild(textNodeSum);
112
+ var supElement = document.createElement('SUP');
113
+ var textNodeSumDecimal = document.createTextNode("." + costBreakdownArray[1]);
114
+ supElement.appendChild(textNodeSumDecimal);
115
+ monetary.appendChild(supElement);
116
+ }
117
+ function createSlices() {
118
+ var percentarray = createPercentageArray.call(this);
119
+ var sheet = function () {
120
+ var style = document.createElement('STYLE');
121
+ style.appendChild(document.createTextNode(""));
122
+ document.head.appendChild(style);
123
+ return style.sheet;
124
+ }();
125
+ for (var j = 0; j < percentarray.length; j++) {
126
+ var newDiv = document.createElement('DIV');
127
+ this._internalVars.breakdownNode.appendChild(newDiv);
128
+ if (percentarray[j] >= 180) {
129
+ newDiv.setAttribute('class', 'pie big');
130
+ } else {
131
+ newDiv.setAttribute('class', 'pie');
132
+ }
133
+ newDiv.setAttribute('data-start', this._internalVars.percentSum.toFixed(1));
134
+ if (j !== 0) {
135
+ setPrefixes(newDiv, "Transform", "rotate(" + this._internalVars.percentSum + "deg)");
136
+ sheet.insertRule(insertDataStartCSS(this._internalVars.percentSum), 0);
137
+ }
138
+ this._internalVars.percentSum += parseFloat(percentarray[j]);
139
+ newDiv.setAttribute('data-value', percentarray[j]);
140
+ sheet.insertRule(insertDataValueCSS(percentarray[j], percentarray.length, j), 0);
141
+ }
142
+ }
143
+ function insertDataValueCSS(degree, length, index) {
144
+ degree = parseFloat(degree);
145
+ var degree1 = degree;
146
+ if (index != length - 1) {
147
+ degree1 = parseFloat(degree + 1);
148
+ }
149
+ var cssString = ".pie[data-value='" + degree + "']:BEFORE { -moz-transform: rotate(" + degree1 + "deg); -ms-transform: rotate(" + degree1 + "deg); -webkit-transform: rotate(" + degree1 + "deg); -o-transform: rotate(" + degree1 + "deg); transform:rotate(" + degree1 + "deg);}";
150
+ return cssString;
151
+ }
152
+ function insertDataStartCSS(degree) {
153
+ degree = parseFloat(degree).toFixed(1);
154
+ var cssString = ".pie[data-start='" + degree + "'] { -moz-transform: rotate(" + degree + "deg); /* Firefox */ -ms-transform: rotate(" + degree + "deg); /* IE */ -webkit-transform: rotate(" + degree + "deg); /* Safari and Chrome */ -o-transform: rotate(" + degree + "deg); /* Opera */transform:rotate(" + degree + "deg);}";
155
+ return cssString;
156
+ }
157
+ function setPrefixes(element, property, value) {
158
+ element.style["webkit" + property] = value;
159
+ element.style["moz" + property] = value;
160
+ element.style["ms" + property] = value;
161
+ element.style["o" + property] = value;
162
+ }
163
+ function getCostSum() {
164
+ var costArray = this._internalVars.costArray;
165
+ var sum = this._internalVars.totalSum;
166
+ for (var i = 0; i < costArray.length; i++) {
167
+ sum += parseFloat(costArray[i]);
168
+ }
169
+ sum = sum.toFixed(2);
170
+ return sum;
171
+ }
172
+ function createLegend() {
173
+ var costArray = this._internalVars.costArray;
174
+ var labelArray = this._internalVars.labelArray;
175
+ for (var i = 0; i < costArray.length; i++) {
176
+ this._internalVars.legendNode.querySelector('ul').appendChild(createLi(labelArray[i], parseFloat(costArray[i])));
177
+ }
178
+ }
179
+ function createPercentageArray() {
180
+ var costArray = this._internalVars.costArray;
181
+ var costSum = getCostSum.call(this);
182
+ for (var j = 0; j < costArray.length; j++) {
183
+ this._internalVars.percentArray.push(costToPercentage(costArray[j], costSum));
184
+ }
185
+ return this._internalVars.percentArray;
186
+ }
187
+ function costToPercentage(cost, sum) {
188
+ var percent = cost / sum * 360;
189
+ return percent;
190
+ }
191
+ function createLi(item, cost) {
192
+ var liEl = document.createElement("LI");
193
+ var divEl = document.createElement("DIV");
194
+ divEl.setAttribute('class', 'legend-item');
195
+ liEl.appendChild(divEl);
196
+ var labelString = item + " ($" + cost.toFixed(2) + ")";
197
+ var hello = document.createTextNode(labelString);
198
+ liEl.appendChild(hello);
199
+ return liEl;
200
+ }
201
+ var _default = exports["default"] = CoverageGraph;