@agorapulse/ui-components 2.5.1 → 13.0.2

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.
Files changed (180) hide show
  1. package/agorapulse-ui-components-13.0.2.tgz +0 -0
  2. package/agorapulse-ui-components.d.ts +1 -6
  3. package/esm2020/agorapulse-ui-components.mjs +5 -0
  4. package/esm2020/index.mjs +58 -0
  5. package/esm2020/src/lib/add-comment/add-comment.component.mjs +62 -0
  6. package/esm2020/src/lib/agorapulse-ui-components.module.mjs +532 -0
  7. package/esm2020/src/lib/avatar/avatar.component.mjs +92 -0
  8. package/{esm2015/src/lib/confirm-modal/confirm-modal-texts.model.js → esm2020/src/lib/confirm-modal/confirm-modal-texts.model.mjs} +0 -0
  9. package/esm2020/src/lib/confirm-modal/confirm-modal.component.mjs +61 -0
  10. package/esm2020/src/lib/datepicker/datepicker.component.mjs +219 -0
  11. package/esm2020/src/lib/directives/autosize-textarea.directive.mjs +43 -0
  12. package/esm2020/src/lib/directives/default-image.directive.mjs +29 -0
  13. package/esm2020/src/lib/directives/ellipsis.directive.mjs +87 -0
  14. package/esm2020/src/lib/directives/equal-validator.directive.mjs +64 -0
  15. package/esm2020/src/lib/directives/frozen-gif.directive.mjs +116 -0
  16. package/esm2020/src/lib/directives/multi-style-text.directive.mjs +101 -0
  17. package/esm2020/src/lib/directives/truncate-tooltip.directive.mjs +33 -0
  18. package/esm2020/src/lib/dots-stepper/dots-stepper.component.mjs +43 -0
  19. package/esm2020/src/lib/edit-tag-modal/edit-tags-modal.component.mjs +147 -0
  20. package/{esm2015/src/lib/edit-tag-modal/model/edit-tags-modal.model.js → esm2020/src/lib/edit-tag-modal/model/edit-tags-modal.model.mjs} +0 -0
  21. package/esm2020/src/lib/feature-onboarding/feature-onboarding.component.mjs +35 -0
  22. package/esm2020/src/lib/image-carousel/image-carousel.component.mjs +152 -0
  23. package/{esm2015/src/lib/lead-modal/lead-info.model.js → esm2020/src/lib/lead-modal/lead-info.model.mjs} +0 -0
  24. package/esm2020/src/lib/lead-modal/lead-modal.component.mjs +49 -0
  25. package/esm2020/src/lib/media-display-overlay/media-display-overlay-dialog.component.mjs +87 -0
  26. package/esm2020/src/lib/modal/modal.component.mjs +96 -0
  27. package/esm2020/src/lib/neo-timepicker/neo-timepicker.component.mjs +388 -0
  28. package/esm2020/src/lib/notification/notification.component.mjs +17 -0
  29. package/esm2020/src/lib/overlay/overlay-dialog-service.component.mjs +61 -0
  30. package/esm2020/src/lib/overlay/overlay-dialog.component.mjs +33 -0
  31. package/esm2020/src/lib/overlay-in-div/overlay-in-div.component.mjs +27 -0
  32. package/esm2020/src/lib/paginator/paginator-button/paginator-button.component.mjs +23 -0
  33. package/esm2020/src/lib/paginator/paginator.component.mjs +54 -0
  34. package/esm2020/src/lib/password-input/password-input.component.mjs +68 -0
  35. package/esm2020/src/lib/password-strength-bar/password-strength-bar.component.mjs +83 -0
  36. package/esm2020/src/lib/password-strength-display-bar/password-strength-display-bar.component.mjs +45 -0
  37. package/esm2020/src/lib/phone-number-input/phone-number-input.component.mjs +144 -0
  38. package/esm2020/src/lib/places/place-list.component.mjs +11 -0
  39. package/esm2020/src/lib/places/place.component.mjs +14 -0
  40. package/{esm2015/src/lib/popmenu/options.js → esm2020/src/lib/popmenu/options.mjs} +0 -0
  41. package/{esm2015/src/lib/popmenu/popmenu-options.interface.js → esm2020/src/lib/popmenu/popmenu-options.interface.mjs} +0 -0
  42. package/{esm2015/src/lib/popmenu/popmenu-options.service.js → esm2020/src/lib/popmenu/popmenu-options.service.mjs} +0 -0
  43. package/esm2020/src/lib/popmenu/popmenu.component.mjs +344 -0
  44. package/esm2020/src/lib/popmenu/popmenu.directive.mjs +235 -0
  45. package/esm2020/src/lib/popmenu/popmenu.module.mjs +45 -0
  46. package/esm2020/src/lib/slide-toggle/slide-toggle.component.mjs +66 -0
  47. package/esm2020/src/lib/snackbar/snackbar.component.mjs +21 -0
  48. package/esm2020/src/lib/snackbars-thread/component/snackbars-thread.component.mjs +70 -0
  49. package/{esm2015/src/lib/snackbars-thread/model/snackbars-thread.model.js → esm2020/src/lib/snackbars-thread/model/snackbars-thread.model.mjs} +0 -0
  50. package/esm2020/src/lib/snackbars-thread/service/snackbars-thread.service.mjs +41 -0
  51. package/{esm2015/src/lib/snackbars-thread/utils/const/snackbars-thread.const.js → esm2020/src/lib/snackbars-thread/utils/const/snackbars-thread.const.mjs} +0 -0
  52. package/esm2020/src/lib/splashscreen/splashscreen.component.mjs +43 -0
  53. package/esm2020/src/lib/star-rating/star-rating.component.mjs +43 -0
  54. package/{esm2015/src/lib/stepper/step.model.js → esm2020/src/lib/stepper/step.model.mjs} +0 -0
  55. package/esm2020/src/lib/stepper/stepper.component.mjs +36 -0
  56. package/esm2020/src/lib/tags/tag-list.component.mjs +11 -0
  57. package/esm2020/src/lib/tags/tag.component.mjs +20 -0
  58. package/esm2020/src/lib/tags-selector/tags-selector.component.mjs +81 -0
  59. package/esm2020/src/lib/timepicker/timepicker.component.mjs +383 -0
  60. package/esm2020/src/lib/tooltip-neo/tooltip-neo.component.mjs +49 -0
  61. package/{esm2015/src/lib/tooltip-neo/tooltip-neo.const.js → esm2020/src/lib/tooltip-neo/tooltip-neo.const.mjs} +0 -0
  62. package/esm2020/src/lib/tooltip-neo/tooltip-neo.directive.mjs +114 -0
  63. package/{esm2015/src/lib/tooltip-neo/tooltip-neo.model.js → esm2020/src/lib/tooltip-neo/tooltip-neo.model.mjs} +0 -0
  64. package/esm2020/src/lib/tooltip-neo/tooltip-neo.service.mjs +17 -0
  65. package/{esm2015/src/lib/try-popup/try-popup-texts.model.js → esm2020/src/lib/try-popup/try-popup-texts.model.mjs} +0 -0
  66. package/esm2020/src/lib/try-popup/try-popup.component.mjs +37 -0
  67. package/fesm2015/agorapulse-ui-components.mjs +4581 -0
  68. package/fesm2015/agorapulse-ui-components.mjs.map +1 -0
  69. package/fesm2020/agorapulse-ui-components.mjs +4554 -0
  70. package/fesm2020/agorapulse-ui-components.mjs.map +1 -0
  71. package/index.d.ts +1 -0
  72. package/package.json +31 -20
  73. package/src/lib/add-comment/add-comment.component.d.ts +3 -0
  74. package/src/lib/agorapulse-ui-components.module.d.ts +80 -0
  75. package/src/lib/avatar/avatar.component.d.ts +3 -0
  76. package/src/lib/confirm-modal/confirm-modal.component.d.ts +3 -0
  77. package/src/lib/datepicker/datepicker.component.d.ts +3 -0
  78. package/src/lib/directives/autosize-textarea.directive.d.ts +3 -0
  79. package/src/lib/directives/default-image.directive.d.ts +3 -0
  80. package/src/lib/directives/ellipsis.directive.d.ts +3 -0
  81. package/src/lib/directives/equal-validator.directive.d.ts +3 -0
  82. package/src/lib/directives/frozen-gif.directive.d.ts +3 -0
  83. package/src/lib/directives/multi-style-text.directive.d.ts +3 -0
  84. package/src/lib/directives/truncate-tooltip.directive.d.ts +3 -0
  85. package/src/lib/dots-stepper/dots-stepper.component.d.ts +3 -0
  86. package/src/lib/edit-tag-modal/edit-tags-modal.component.d.ts +3 -0
  87. package/src/lib/feature-onboarding/feature-onboarding.component.d.ts +3 -0
  88. package/src/lib/image-carousel/image-carousel.component.d.ts +3 -0
  89. package/src/lib/lead-modal/lead-modal.component.d.ts +3 -0
  90. package/src/lib/media-display-overlay/media-display-overlay-dialog.component.d.ts +3 -0
  91. package/src/lib/modal/modal.component.d.ts +3 -0
  92. package/src/lib/neo-timepicker/neo-timepicker.component.d.ts +3 -0
  93. package/src/lib/notification/notification.component.d.ts +3 -0
  94. package/src/lib/overlay/overlay-dialog-service.component.d.ts +3 -0
  95. package/src/lib/overlay/overlay-dialog.component.d.ts +3 -0
  96. package/src/lib/overlay-in-div/overlay-in-div.component.d.ts +3 -0
  97. package/src/lib/paginator/paginator-button/paginator-button.component.d.ts +3 -0
  98. package/src/lib/paginator/paginator.component.d.ts +3 -0
  99. package/src/lib/password-input/password-input.component.d.ts +3 -0
  100. package/src/lib/password-strength-bar/password-strength-bar.component.d.ts +3 -0
  101. package/src/lib/password-strength-display-bar/password-strength-display-bar.component.d.ts +3 -0
  102. package/src/lib/phone-number-input/phone-number-input.component.d.ts +3 -0
  103. package/src/lib/places/place-list.component.d.ts +3 -0
  104. package/src/lib/places/place.component.d.ts +3 -0
  105. package/src/lib/popmenu/popmenu.component.d.ts +3 -0
  106. package/src/lib/popmenu/popmenu.directive.d.ts +3 -0
  107. package/src/lib/popmenu/popmenu.module.d.ts +8 -0
  108. package/src/lib/slide-toggle/slide-toggle.component.d.ts +3 -0
  109. package/src/lib/snackbar/snackbar.component.d.ts +3 -0
  110. package/src/lib/snackbars-thread/component/snackbars-thread.component.d.ts +3 -0
  111. package/src/lib/snackbars-thread/service/snackbars-thread.service.d.ts +3 -0
  112. package/src/lib/splashscreen/splashscreen.component.d.ts +3 -0
  113. package/src/lib/star-rating/star-rating.component.d.ts +3 -0
  114. package/src/lib/stepper/stepper.component.d.ts +3 -0
  115. package/src/lib/tags/tag-list.component.d.ts +3 -0
  116. package/src/lib/tags/tag.component.d.ts +3 -0
  117. package/src/lib/tags-selector/tags-selector.component.d.ts +3 -0
  118. package/src/lib/timepicker/timepicker.component.d.ts +3 -0
  119. package/src/lib/tooltip-neo/tooltip-neo.component.d.ts +3 -0
  120. package/src/lib/tooltip-neo/tooltip-neo.directive.d.ts +20 -17
  121. package/src/lib/tooltip-neo/tooltip-neo.service.d.ts +3 -0
  122. package/src/lib/try-popup/try-popup.component.d.ts +3 -0
  123. package/agorapulse-ui-components-2.5.1.tgz +0 -0
  124. package/agorapulse-ui-components.metadata.json +0 -1
  125. package/bundles/agorapulse-ui-components.umd.js +0 -4825
  126. package/bundles/agorapulse-ui-components.umd.js.map +0 -1
  127. package/esm2015/agorapulse-ui-components.js +0 -11
  128. package/esm2015/index.js +0 -57
  129. package/esm2015/src/lib/add-comment/add-comment.component.js +0 -54
  130. package/esm2015/src/lib/agorapulse-ui-components.module.js +0 -285
  131. package/esm2015/src/lib/avatar/avatar.component.js +0 -82
  132. package/esm2015/src/lib/confirm-modal/confirm-modal.component.js +0 -59
  133. package/esm2015/src/lib/datepicker/datepicker.component.js +0 -213
  134. package/esm2015/src/lib/directives/autosize-textarea.directive.js +0 -43
  135. package/esm2015/src/lib/directives/default-image.directive.js +0 -25
  136. package/esm2015/src/lib/directives/ellipsis.directive.js +0 -82
  137. package/esm2015/src/lib/directives/equal-validator.directive.js +0 -53
  138. package/esm2015/src/lib/directives/frozen-gif.directive.js +0 -113
  139. package/esm2015/src/lib/directives/multi-style-text.directive.js +0 -103
  140. package/esm2015/src/lib/directives/truncate-tooltip.directive.js +0 -36
  141. package/esm2015/src/lib/dots-stepper/dots-stepper.component.js +0 -41
  142. package/esm2015/src/lib/edit-tag-modal/edit-tags-modal.component.js +0 -129
  143. package/esm2015/src/lib/feature-onboarding/feature-onboarding.component.js +0 -35
  144. package/esm2015/src/lib/image-carousel/image-carousel.component.js +0 -143
  145. package/esm2015/src/lib/lead-modal/lead-modal.component.js +0 -47
  146. package/esm2015/src/lib/media-display-overlay/media-display-overlay-dialog.component.js +0 -87
  147. package/esm2015/src/lib/modal/modal.component.js +0 -88
  148. package/esm2015/src/lib/neo-timepicker/neo-timepicker.component.js +0 -371
  149. package/esm2015/src/lib/notification/notification.component.js +0 -18
  150. package/esm2015/src/lib/overlay/overlay-dialog-service.component.js +0 -62
  151. package/esm2015/src/lib/overlay/overlay-dialog.component.js +0 -33
  152. package/esm2015/src/lib/overlay-in-div/overlay-in-div.component.js +0 -23
  153. package/esm2015/src/lib/paginator/paginator-button/paginator-button.component.js +0 -22
  154. package/esm2015/src/lib/paginator/paginator.component.js +0 -47
  155. package/esm2015/src/lib/password-input/password-input.component.js +0 -65
  156. package/esm2015/src/lib/password-strength-bar/password-strength-bar.component.js +0 -82
  157. package/esm2015/src/lib/password-strength-display-bar/password-strength-display-bar.component.js +0 -41
  158. package/esm2015/src/lib/phone-number-input/phone-number-input.component.js +0 -123
  159. package/esm2015/src/lib/places/place-list.component.js +0 -12
  160. package/esm2015/src/lib/places/place.component.js +0 -15
  161. package/esm2015/src/lib/popmenu/popmenu.component.js +0 -322
  162. package/esm2015/src/lib/popmenu/popmenu.directive.js +0 -215
  163. package/esm2015/src/lib/popmenu/popmenu.module.js +0 -38
  164. package/esm2015/src/lib/slide-toggle/slide-toggle.component.js +0 -59
  165. package/esm2015/src/lib/snackbar/snackbar.component.js +0 -22
  166. package/esm2015/src/lib/snackbars-thread/component/snackbars-thread.component.js +0 -50
  167. package/esm2015/src/lib/snackbars-thread/service/snackbars-thread.service.js +0 -44
  168. package/esm2015/src/lib/splashscreen/splashscreen.component.js +0 -37
  169. package/esm2015/src/lib/star-rating/star-rating.component.js +0 -38
  170. package/esm2015/src/lib/stepper/stepper.component.js +0 -37
  171. package/esm2015/src/lib/tags/tag-list.component.js +0 -12
  172. package/esm2015/src/lib/tags/tag.component.js +0 -20
  173. package/esm2015/src/lib/tags-selector/tags-selector.component.js +0 -73
  174. package/esm2015/src/lib/timepicker/timepicker.component.js +0 -375
  175. package/esm2015/src/lib/tooltip-neo/tooltip-neo.component.js +0 -46
  176. package/esm2015/src/lib/tooltip-neo/tooltip-neo.directive.js +0 -107
  177. package/esm2015/src/lib/tooltip-neo/tooltip-neo.service.js +0 -15
  178. package/esm2015/src/lib/try-popup/try-popup.component.js +0 -33
  179. package/fesm2015/agorapulse-ui-components.js +0 -4176
  180. package/fesm2015/agorapulse-ui-components.js.map +0 -1
@@ -0,0 +1,383 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import moment from 'moment';
3
+ import { CdkVirtualScrollViewport } from "@angular/cdk/scrolling";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/overlay";
6
+ import * as i2 from "@angular/cdk/scrolling";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@angular/forms";
9
+ import * as i5 from "../popmenu/popmenu.directive";
10
+ import * as i6 from "../tooltip-neo/tooltip-neo.directive";
11
+ export var TimeFormat;
12
+ (function (TimeFormat) {
13
+ TimeFormat["Meridian"] = "Meridian";
14
+ TimeFormat["Default"] = "Default";
15
+ })(TimeFormat || (TimeFormat = {}));
16
+ export class TimepickerComponent {
17
+ constructor(changeDetectorRef, overlayContainer, renderer) {
18
+ this.changeDetectorRef = changeDetectorRef;
19
+ this.overlayContainer = overlayContainer;
20
+ this.renderer = renderer;
21
+ this.disabled = false;
22
+ this.format = TimeFormat.Default;
23
+ this.invalid = false;
24
+ this.period = 15;
25
+ this.placement = 'bottom';
26
+ this.timeModelChange = new EventEmitter();
27
+ this.closeMenu = false;
28
+ this.openedMenu = false;
29
+ this.position = null;
30
+ this.previousTime = null;
31
+ this.TimeFormat = TimeFormat;
32
+ this.timeFormat12 = /(^[01]?\d)(:)([0-5]\d)(am|pm)+?$/i;
33
+ this.timeFormat12anySeparator = /(^[01]?\d)([^0-9])([0-5]\d)(am|pm)+?$/i;
34
+ this.timeFormat12WithoutMinute = /(^[01]?\d)(am|pm)+?$/i;
35
+ this.timeFormat24 = /^([01]?[0-9]|2[0-3]):[0-5][0-9]$/;
36
+ this.timeFormat24anySeparator = /^([01]?[0-9]|2[0-3])([^0-9])([0-5][0-9])$/;
37
+ this.times = [];
38
+ this.validated = false;
39
+ this.listFocus = false;
40
+ this.validationStarted = false;
41
+ const disableAnimations = true;
42
+ // get overlay container to set property that disables animations
43
+ const overlayContainerElement = this.overlayContainer.getContainerElement();
44
+ // angular animations renderer hooks up the logic to disable animations into setProperty
45
+ this.renderer.setProperty(overlayContainerElement, "@.disabled", disableAnimations);
46
+ }
47
+ ngOnInit() {
48
+ this.generateTimeSlots();
49
+ }
50
+ ngOnChanges(changes) {
51
+ this.generateTimeSlots();
52
+ if (changes.placement && changes.placement.currentValue) {
53
+ if (changes.placement.currentValue === 'top') {
54
+ this.position = {
55
+ top: 179,
56
+ left: this.inputBox.nativeElement.getBoundingClientRect().left
57
+ };
58
+ }
59
+ else {
60
+ this.position = { top: this.inputBox.nativeElement.getBoundingClientRect().top +
61
+ this.inputBox.nativeElement.getBoundingClientRect().height,
62
+ left: this.inputBox.nativeElement.getBoundingClientRect().left };
63
+ }
64
+ setTimeout(() => {
65
+ this.changeDetectorRef.markForCheck();
66
+ }, 200);
67
+ }
68
+ }
69
+ emitChanges() {
70
+ const time24Format = this.format === TimeFormat.Default ? this.timeModel : TimepickerComponent.convert12To24(this.timeModel);
71
+ const time = {
72
+ hours: this.getHoursFrom24(time24Format),
73
+ minutes: this.getMinutesFrom24(time24Format),
74
+ best: false,
75
+ };
76
+ this.timeModelChange.emit(time);
77
+ this.closeMenu = true;
78
+ this.changeDetectorRef.detectChanges();
79
+ this.inputBox.nativeElement.focus();
80
+ }
81
+ getHoursFrom24(time24Format) {
82
+ return +(time24Format.split(':')[0]);
83
+ }
84
+ getMinutesFrom24(time24Format) {
85
+ return +(time24Format.split(':')[1]);
86
+ }
87
+ generateTimeSlots() {
88
+ this.changeDetectorRef.detectChanges();
89
+ this.times = Object.assign([], []);
90
+ if (!this.timeModel) {
91
+ this.timeModel = moment().format('HH:mm');
92
+ }
93
+ if (this.format === TimeFormat.Meridian) {
94
+ if (!this.timeModel.includes('am') && !this.timeModel.includes('pm')) {
95
+ this.timeModel = TimepickerComponent.convert24To12(this.timeModel);
96
+ }
97
+ }
98
+ else {
99
+ if (this.timeModel.includes('am') || this.timeModel.includes('pm')) {
100
+ this.timeModel = TimepickerComponent.convert12To24(this.timeModel);
101
+ }
102
+ }
103
+ for (let i = 0; i < 24; i++) {
104
+ let hour = i;
105
+ let meridian = '';
106
+ if (this.format === TimeFormat.Meridian) {
107
+ meridian = 'am';
108
+ if (hour >= 12) {
109
+ meridian = 'pm';
110
+ if (hour > 12) {
111
+ hour = hour - 12;
112
+ }
113
+ }
114
+ if (hour === 0) {
115
+ hour = 12;
116
+ }
117
+ }
118
+ for (let j = 0; j < 60; j += this.period) {
119
+ const time = hour + ':' + TimepickerComponent.toFixed(j, 10) + meridian;
120
+ this.times = [...this.times, time];
121
+ }
122
+ }
123
+ if (!this.timeModel) {
124
+ this.timeModel = moment().format('HH:mm');
125
+ if (this.format === TimeFormat.Meridian) {
126
+ this.timeModel = moment().format('hh:mma');
127
+ }
128
+ }
129
+ this.changeDetectorRef.detectChanges();
130
+ }
131
+ focusOnList(focusEnabled) {
132
+ this.listFocus = focusEnabled;
133
+ }
134
+ onMenuClosed() {
135
+ this.closeMenu = true;
136
+ this.openedMenu = false;
137
+ this.listFocus = false;
138
+ if (!this.validationStarted) {
139
+ this.validate(this.timeModel);
140
+ }
141
+ this.viewPort.setRenderedContentOffset(0);
142
+ this.viewPort.scrollToIndex(0);
143
+ this.validated = false;
144
+ this.validationStarted = false;
145
+ }
146
+ onModelChange(time) {
147
+ this.timeActive = null;
148
+ if (!this.validated) {
149
+ for (let i = 0; i < this.times.length; i++) {
150
+ const checkTime = this.checkTime(time, this.times[i]);
151
+ if (checkTime.match) {
152
+ this.scrollToIndex(i);
153
+ if (checkTime.exactMatch) {
154
+ this.timeActive = i;
155
+ }
156
+ break;
157
+ }
158
+ }
159
+ }
160
+ this.validated = false;
161
+ }
162
+ openTimePicker() {
163
+ this.previousTime = this.timeModel;
164
+ this.closeMenu = false;
165
+ if (this.placement === 'top') {
166
+ this.position = {
167
+ top: 179,
168
+ left: this.inputBox.nativeElement.getBoundingClientRect().left
169
+ };
170
+ }
171
+ else {
172
+ this.position = { top: (this.inputBox.nativeElement.getBoundingClientRect().top - 1),
173
+ left: this.inputBox.nativeElement.getBoundingClientRect().left };
174
+ }
175
+ if (!this.openedMenu && !this.validated) {
176
+ this.openedMenu = true;
177
+ setTimeout(() => {
178
+ this.onModelChange(this.timeModel);
179
+ this.inputTime?.nativeElement.focus();
180
+ this.inputTime?.nativeElement.select();
181
+ }, 50);
182
+ }
183
+ this.validated = false;
184
+ return false;
185
+ }
186
+ selectTime(time) {
187
+ this.timeModel = time;
188
+ this.emitChanges();
189
+ }
190
+ validate(time) {
191
+ this.validationStarted = true;
192
+ if (!this.listFocus) {
193
+ if (this.timeFormat24anySeparator.test(time)) {
194
+ time = time.replace(this.timeFormat24anySeparator, '$1:$3');
195
+ }
196
+ else if (this.timeFormat12anySeparator.test(time)) {
197
+ time = time.replace(this.timeFormat12anySeparator, '$1:$3$4');
198
+ }
199
+ this.validated = true;
200
+ let timeFound = false;
201
+ for (let i = 0; i < this.times.length; i++) {
202
+ const checkTime = this.checkTime(time, this.times[i]);
203
+ if (checkTime.match && checkTime.exactMatch) {
204
+ this.selectTime(this.times[i]);
205
+ timeFound = true;
206
+ break;
207
+ }
208
+ }
209
+ if (!timeFound) {
210
+ let validTime;
211
+ if (this.format === TimeFormat.Meridian) {
212
+ validTime = this.timeFormat12.test(time);
213
+ if (!validTime) {
214
+ validTime = this.timeFormat24.test(time);
215
+ if (validTime) {
216
+ time = TimepickerComponent.convert24To12(time);
217
+ }
218
+ else {
219
+ validTime = this.timeFormat12WithoutMinute.test(time);
220
+ if (validTime) {
221
+ time = time.replace(this.timeFormat12WithoutMinute, '$1:00$2');
222
+ }
223
+ }
224
+ }
225
+ }
226
+ else {
227
+ validTime = this.timeFormat24.test(time);
228
+ if (!validTime) {
229
+ validTime = this.timeFormat12.test(time);
230
+ if (validTime) {
231
+ time = TimepickerComponent.convert12To24(time);
232
+ }
233
+ }
234
+ }
235
+ if (validTime) {
236
+ this.selectTime(time);
237
+ }
238
+ else {
239
+ this.selectTime(this.previousTime);
240
+ }
241
+ }
242
+ }
243
+ }
244
+ scrollToIndex(i) {
245
+ this.viewPort.scrollToIndex(i, 'smooth');
246
+ }
247
+ static formatTime(time, format) {
248
+ let timeString = `${time.hours}` + ':' + `${time.minutes}`.padStart(2, '0');
249
+ if (format === TimeFormat.Meridian) {
250
+ timeString = TimepickerComponent.convert24To12(timeString);
251
+ }
252
+ return timeString;
253
+ }
254
+ checkTime(term, termToMatch) {
255
+ let exactMatch = true;
256
+ if (this.timeFormat24anySeparator.test(term)) {
257
+ term = term.replace(this.timeFormat24anySeparator, '$1:$3');
258
+ }
259
+ else if (this.timeFormat12anySeparator.test(term)) {
260
+ term = term.replace(this.timeFormat12anySeparator, '$1:$3$4');
261
+ }
262
+ if (term === '') {
263
+ return { match: false, exactMatch: false };
264
+ }
265
+ const terms = term.split(':');
266
+ if ((!isNaN(parseInt(terms[0]))) && terms[1]?.length >= 2 && !isNaN(parseInt(terms[1].substring(0, 2)))) {
267
+ const hour = parseInt(terms[0]);
268
+ let newHour = hour;
269
+ let newMinutes = terms[1].substring(0, 2);
270
+ const minutes = parseInt(newMinutes);
271
+ if (minutes !== 0) {
272
+ if (minutes <= 15) {
273
+ newMinutes = '15';
274
+ }
275
+ else if (minutes <= 30) {
276
+ newMinutes = '30';
277
+ }
278
+ else if (minutes <= 45) {
279
+ newMinutes = '45';
280
+ }
281
+ else {
282
+ newHour += 1;
283
+ newMinutes = '00';
284
+ }
285
+ }
286
+ if (parseInt(newMinutes) !== minutes || newHour !== hour) {
287
+ exactMatch = false;
288
+ }
289
+ term = newHour + ':' + newMinutes + terms[1].substring(2, terms[1].length);
290
+ }
291
+ let meridian = '';
292
+ if (this.format === TimeFormat.Meridian) {
293
+ if (terms[0]) {
294
+ if (!isNaN(parseInt(terms[0]))) {
295
+ let hour = parseInt(terms[0]);
296
+ if (hour > 12) {
297
+ hour = hour - 12;
298
+ term = hour + ':' + (terms[1] ? terms[1].substring(0, 2) : '00');
299
+ meridian = 'pm';
300
+ }
301
+ if (!term.endsWith('am') && !term.endsWith('pm')) {
302
+ term += meridian;
303
+ }
304
+ }
305
+ }
306
+ if (this.timeFormat12WithoutMinute.test(term)) {
307
+ term = term.substring(0, term.length - 2) + ':00' + term.substring(term.length - 2, term.length);
308
+ }
309
+ }
310
+ return { match: termToMatch.startsWith(term), exactMatch };
311
+ }
312
+ static convert12To24(time) {
313
+ const terms = time.split(':');
314
+ const minutes = terms[1].substring(0, 2);
315
+ const meridian = terms[1].substring(2, 4);
316
+ let hour = parseInt(terms[0]);
317
+ if (!isNaN(parseInt(terms[0]))) {
318
+ if (meridian === 'pm' && hour < 12) {
319
+ hour = hour + 12;
320
+ }
321
+ if (meridian === 'am' && hour === 12) {
322
+ hour = 0;
323
+ }
324
+ }
325
+ return hour + ':' + minutes;
326
+ }
327
+ static convert24To12(time) {
328
+ const terms = time.split(':');
329
+ let meridian = 'am';
330
+ let hour = parseInt(terms[0]);
331
+ if (!isNaN(parseInt(terms[0]))) {
332
+ if (hour >= 12) {
333
+ meridian = 'pm';
334
+ if (hour > 12) {
335
+ hour = hour - 12;
336
+ }
337
+ }
338
+ if (hour === 0) {
339
+ hour = 12;
340
+ }
341
+ }
342
+ return hour + ':' + terms[1] + meridian;
343
+ }
344
+ static toFixed(num, fix) {
345
+ let fixedNum = num;
346
+ if (num < fix) {
347
+ fixedNum = '0' + fixedNum;
348
+ }
349
+ return fixedNum;
350
+ }
351
+ }
352
+ /** @nocollapse */ /** @nocollapse */ TimepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TimepickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.OverlayContainer }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
353
+ /** @nocollapse */ /** @nocollapse */ TimepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TimepickerComponent, selector: "ap-timepicker", inputs: { disabled: "disabled", format: "format", invalid: "invalid", invalidationMessage: "invalidationMessage", period: "period", placement: "placement", timeModel: "timeModel" }, outputs: { timeModelChange: "timeModelChange" }, viewQueries: [{ propertyName: "inputBox", first: true, predicate: ["inputBox"], descendants: true }, { propertyName: "inputTime", first: true, predicate: ["inputTime"], descendants: true }, { propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"display-flex\" [class.meridian]=\"format === TimeFormat.Meridian\">\n <ng-template #timeOptionsTemplate >\n <input #inputTime\n *ngIf=\"placement == 'bottom'\"\n class=\"time-input menu\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"validate($event?.target?.value)\"\n (keydown.enter)=\"validate($event?.target?.value)\"\n (mouseenter)=\"focusOnList(false)\">\n <div class=\"time-options-container {{placement}}\"\n (mouseenter)=\"focusOnList(true)\"\n (mouseleave)=\"focusOnList(false)\">\n <cdk-virtual-scroll-viewport style=\"height: 100%\" itemSize=\"33\" class=\"scroll\" minBufferPx=\"200\" maxBufferPx=\"200\" autofocus>\n <div style=\"visibility: hidden;max-height: 0\">\u20AC</div>\n <div *cdkVirtualFor=\"let item of times;let i = index\" (click)=\"selectTime(item)\" id=\"_apTime_{{i}}\" class=\"time-line\" [class.selected]=\"timeActive === i\">\n <span class=\"hour\">{{item}}</span>\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n <input #inputTime\n *ngIf=\"placement == 'top'\"\n class=\"time-input menu\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"validate($event?.target?.value)\"\n (keydown.enter)=\"validate($event?.target?.value)\"\n (mouseenter)=\"focusOnList(false)\">\n\n </ng-template>\n\n <input #inputBox\n class=\"time-input\"\n [ngClass]=\"{'invalid': invalid}\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (click)=\"openTimePicker()\"\n [disabled]=\"disabled\"\n [apPopmenu]=\"timeOptionsTemplate\"\n [apTooltipNeo]=\"{content: invalidationMessage, display: invalidationMessage && invalid}\"\n [shadow]=\"false\"\n [apPopmenuBorder]=\"false\"\n [apPopmenuBackground]=\"false\"\n [hasBackdrop]=\"true\"\n [close]=\"closeMenu\"\n [pointer]=\"true\"\n [position]=\"position\"\n [placement]=\"placement\"\n [rounded]=\"true\"\n (menuClosed)=\"onMenuClosed()\"\n placement=\"bottom right\"\n color=\"secondary\"\n readonly>\n\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}.time-options-container{background-color:#fff;border-radius:4px;box-shadow:0 7px 50px #00000014;z-index:999999;pointer-events:all;height:173px;width:170px;overflow-y:hidden;text-align:left;color:#344563}.time-options-container.bottom{margin-top:5px}.time-options-container.top{margin-bottom:5px}.time-options-container .scroll{overflow-x:hidden}.time-options-container .time-line{height:33px;min-width:165px;cursor:pointer;display:flex;align-items:center}.time-options-container .time-line:hover,.time-options-container .time-line.selected{background-color:#e8f4ff!important;color:#178dfe}.time-options-container .time-line span{padding-left:16px}.hidden{display:none!important}.time-input{color:#344563;font-family:inherit;font-weight:400;height:36px;line-height:24px;margin:0;min-width:0;width:80px;outline:none;z-index:0;cursor:text;border-radius:4px;border:1px solid #d6dae0;text-align:center;padding:0}.time-input.invalid{border:1px solid #E81313;border-radius:4px}.time-input[disabled]{color:#aeb5c1}.time-input[disabled]:hover{cursor:auto!important}.time-input:hover:not([disabled]){cursor:text}.time-input:active:not([disabled]),.time-input:focus:not([disabled]),.time-input.menu{border:1px solid #178dfe}.time-input.menu.top{padding-bottom:0}\n"], components: [{ type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.PopmenuDirective, selector: "[apPopmenu]", inputs: ["apPopmenuBorder", "apPopmenuDisabled", "apPopmenuBackground", "arrow", "arrowOffset", "arrowPosition", "close", "hasBackdrop", "offset", "placement", "pointer", "apPopmenu", "position", "rounded", "shadow", "options"], outputs: ["menuClosed", "menuOpened"] }, { type: i6.TooltipNeoDirective, selector: "[apTooltipNeo]", inputs: ["apTooltipNeo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TimepickerComponent, decorators: [{
355
+ type: Component,
356
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-timepicker', template: "<div class=\"display-flex\" [class.meridian]=\"format === TimeFormat.Meridian\">\n <ng-template #timeOptionsTemplate >\n <input #inputTime\n *ngIf=\"placement == 'bottom'\"\n class=\"time-input menu\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"validate($event?.target?.value)\"\n (keydown.enter)=\"validate($event?.target?.value)\"\n (mouseenter)=\"focusOnList(false)\">\n <div class=\"time-options-container {{placement}}\"\n (mouseenter)=\"focusOnList(true)\"\n (mouseleave)=\"focusOnList(false)\">\n <cdk-virtual-scroll-viewport style=\"height: 100%\" itemSize=\"33\" class=\"scroll\" minBufferPx=\"200\" maxBufferPx=\"200\" autofocus>\n <div style=\"visibility: hidden;max-height: 0\">\u20AC</div>\n <div *cdkVirtualFor=\"let item of times;let i = index\" (click)=\"selectTime(item)\" id=\"_apTime_{{i}}\" class=\"time-line\" [class.selected]=\"timeActive === i\">\n <span class=\"hour\">{{item}}</span>\n </div>\n </cdk-virtual-scroll-viewport>\n </div>\n <input #inputTime\n *ngIf=\"placement == 'top'\"\n class=\"time-input menu\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"validate($event?.target?.value)\"\n (keydown.enter)=\"validate($event?.target?.value)\"\n (mouseenter)=\"focusOnList(false)\">\n\n </ng-template>\n\n <input #inputBox\n class=\"time-input\"\n [ngClass]=\"{'invalid': invalid}\"\n type=\"text\"\n [(ngModel)]=\"timeModel\"\n (click)=\"openTimePicker()\"\n [disabled]=\"disabled\"\n [apPopmenu]=\"timeOptionsTemplate\"\n [apTooltipNeo]=\"{content: invalidationMessage, display: invalidationMessage && invalid}\"\n [shadow]=\"false\"\n [apPopmenuBorder]=\"false\"\n [apPopmenuBackground]=\"false\"\n [hasBackdrop]=\"true\"\n [close]=\"closeMenu\"\n [pointer]=\"true\"\n [position]=\"position\"\n [placement]=\"placement\"\n [rounded]=\"true\"\n (menuClosed)=\"onMenuClosed()\"\n placement=\"bottom right\"\n color=\"secondary\"\n readonly>\n\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}.time-options-container{background-color:#fff;border-radius:4px;box-shadow:0 7px 50px #00000014;z-index:999999;pointer-events:all;height:173px;width:170px;overflow-y:hidden;text-align:left;color:#344563}.time-options-container.bottom{margin-top:5px}.time-options-container.top{margin-bottom:5px}.time-options-container .scroll{overflow-x:hidden}.time-options-container .time-line{height:33px;min-width:165px;cursor:pointer;display:flex;align-items:center}.time-options-container .time-line:hover,.time-options-container .time-line.selected{background-color:#e8f4ff!important;color:#178dfe}.time-options-container .time-line span{padding-left:16px}.hidden{display:none!important}.time-input{color:#344563;font-family:inherit;font-weight:400;height:36px;line-height:24px;margin:0;min-width:0;width:80px;outline:none;z-index:0;cursor:text;border-radius:4px;border:1px solid #d6dae0;text-align:center;padding:0}.time-input.invalid{border:1px solid #E81313;border-radius:4px}.time-input[disabled]{color:#aeb5c1}.time-input[disabled]:hover{cursor:auto!important}.time-input:hover:not([disabled]){cursor:text}.time-input:active:not([disabled]),.time-input:focus:not([disabled]),.time-input.menu{border:1px solid #178dfe}.time-input.menu.top{padding-bottom:0}\n"] }]
357
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.OverlayContainer }, { type: i0.Renderer2 }]; }, propDecorators: { inputBox: [{
358
+ type: ViewChild,
359
+ args: ['inputBox']
360
+ }], inputTime: [{
361
+ type: ViewChild,
362
+ args: ['inputTime']
363
+ }], viewPort: [{
364
+ type: ViewChild,
365
+ args: [CdkVirtualScrollViewport]
366
+ }], disabled: [{
367
+ type: Input
368
+ }], format: [{
369
+ type: Input
370
+ }], invalid: [{
371
+ type: Input
372
+ }], invalidationMessage: [{
373
+ type: Input
374
+ }], period: [{
375
+ type: Input
376
+ }], placement: [{
377
+ type: Input
378
+ }], timeModel: [{
379
+ type: Input
380
+ }], timeModelChange: [{
381
+ type: Output
382
+ }] } });
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi90aW1lcGlja2VyL3RpbWVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvdGltZXBpY2tlci90aW1lcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBV2hFLE1BQU0sQ0FBTixJQUFZLFVBR1g7QUFIRCxXQUFZLFVBQVU7SUFDbEIsbUNBQXFCLENBQUE7SUFDckIsaUNBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUhXLFVBQVUsS0FBVixVQUFVLFFBR3JCO0FBUUQsTUFBTSxPQUFPLG1CQUFtQjtJQThCNUIsWUFBbUIsaUJBQW9DLEVBQVUsZ0JBQWtDLEVBQVUsUUFBbUI7UUFBN0csc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBekJ2SCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFdBQU0sR0FBZSxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFekIsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUNwQixjQUFTLEdBQVcsUUFBUSxDQUFDO1FBRTVCLG9CQUFlLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekUsY0FBUyxHQUFZ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LE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge092ZXJsYXlDb250YWluZXJ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnR9IGZyb20gXCJAYW5ndWxhci9jZGsvc2Nyb2xsaW5nXCI7XG5cbi8qKlxuICogVGltZSBpbiAyNGggZm9ybWF0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGltZSB7XG4gICAgaG91cnM6IG51bWJlcjtcbiAgICBtaW51dGVzOiBudW1iZXI7XG4gICAgYmVzdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIFRpbWVGb3JtYXQge1xuICAgIE1lcmlkaWFuID0gJ01lcmlkaWFuJyxcbiAgICBEZWZhdWx0ID0gJ0RlZmF1bHQnXG59XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXAtdGltZXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWVwaWNrZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Qm94JykgaW5wdXRCb3g6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXRUaW1lJykgaW5wdXRUaW1lOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KSB2aWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBmb3JtYXQ6IFRpbWVGb3JtYXQgPSBUaW1lRm9ybWF0LkRlZmF1bHQ7XG4gICAgQElucHV0KCkgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGludmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbiAgICBASW5wdXQoKSBwZXJpb2Q6IG51bWJlciA9IDE1O1xuICAgIEBJbnB1dCgpIHBsYWNlbWVudDogc3RyaW5nID0gJ2JvdHRvbSc7XG4gICAgQElucHV0KCkgdGltZU1vZGVsOiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIHRpbWVNb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPFRpbWU+ID0gbmV3IEV2ZW50RW1pdHRlcjxUaW1lPigpO1xuXG4gICAgY2xvc2VNZW51OiBib29sZWFuID0gZmFsc2U7XG4gICAgb3BlbmVkTWVudTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHBvc2l0aW9uOiB7dG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlcn0gPSBudWxsO1xuICAgIHByZXZpb3VzVGltZTogc3RyaW5nID0gbnVsbDtcbiAgICB0aW1lQWN0aXZlO1xuICAgIFRpbWVGb3JtYXQgPSBUaW1lRm9ybWF0O1xuICAgIHRpbWVGb3JtYXQxMiA9IC8oXlswMV0/XFxkKSg6KShbMC01XVxcZCkoYW18cG0pKz8kL2k7XG4gICAgdGltZUZvcm1hdDEyYW55U2VwYXJhdG9yID0gLyheWzAxXT9cXGQpKFteMC05XSkoWzAtNV1cXGQpKGFtfHBtKSs/JC9pO1xuICAgIHRpbWVGb3JtYXQxMldpdGhvdXRNaW51dGUgPSAvKF5bMDFdP1xcZCkoYW18cG0pKz8kL2k7XG4gICAgdGltZUZvcm1hdDI0ID0gL14oWzAxXT9bMC05XXwyWzAtM10pOlswLTVdWzAtOV0kLztcbiAgICB0aW1lRm9ybWF0MjRhbnlTZXBhcmF0b3IgPSAvXihbMDFdP1swLTldfDJbMC0zXSkoW14wLTldKShbMC01XVswLTldKSQvO1xuICAgIHRpbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHZhbGlkYXRlZCA9IGZhbHNlO1xuICAgIGxpc3RGb2N1cyA9IGZhbHNlO1xuICAgIHZhbGlkYXRpb25TdGFydGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG92ZXJsYXlDb250YWluZXI6IE92ZXJsYXlDb250YWluZXIsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgICAgICBjb25zdCBkaXNhYmxlQW5pbWF0aW9uczogYm9vbGVhbiA9IHRydWU7XG4gICAgICAgIC8vIGdldCBvdmVybGF5IGNvbnRhaW5lciB0byBzZXQgcHJvcGVydHkgdGhhdCBkaXNhYmxlcyBhbmltYXRpb25zXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudCA9IHRoaXMub3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCk7XG4gICAgICAgIC8vIGFuZ3VsYXIgYW5pbWF0aW9ucyByZW5kZXJlciBob29rcyB1cCB0aGUgbG9naWMgdG8gZGlzYWJsZSBhbmltYXRpb25zIGludG8gc2V0UHJvcGVydHlcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSggb3ZlcmxheUNvbnRhaW5lckVsZW1lbnQsIFwiQC5kaXNhYmxlZFwiLCBkaXNhYmxlQW5pbWF0aW9ucyApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdlbmVyYXRlVGltZVNsb3RzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVUaW1lU2xvdHMoKTtcbiAgICAgICAgaWYgKGNoYW5nZXMucGxhY2VtZW50ICYmIGNoYW5nZXMucGxhY2VtZW50LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKGNoYW5nZXMucGxhY2VtZW50LmN1cnJlbnRWYWx1ZSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDE3OSwgLy8gaGVpZ2h0IG9mIHBpY2tlclxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB0aGlzLmlucHV0Qm94Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB7IHRvcDogdGhpcy5pbnB1dEJveC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRCb3gubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHRoaXMuaW5wdXRCb3gubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZW1pdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRpbWUyNEZvcm1hdCA9IHRoaXMuZm9ybWF0ID09PSBUaW1lRm9ybWF0LkRlZmF1bHQgPyB0aGlzLnRpbWVNb2RlbCA6IFRpbWVwaWNrZXJDb21wb25lbnQuY29udmVydDEyVG8yNCh0aGlzLnRpbWVNb2RlbCk7XG4gICAgICAgIGNvbnN0IHRpbWU6IFRpbWUgPSB7XG4gICAgICAgICAgICBob3VyczogdGhpcy5nZXRIb3Vyc0Zyb20yNCh0aW1lMjRGb3JtYXQpLFxuICAgICAgICAgICAgbWludXRlczogdGhpcy5nZXRNaW51dGVzRnJvbTI0KHRpbWUyNEZvcm1hdCksXG4gICAgICAgICAgICBiZXN0OiBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy50aW1lTW9kZWxDaGFuZ2UuZW1pdCh0aW1lKTtcbiAgICAgICAgdGhpcy5jbG9zZU1lbnUgPSB0cnVlO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pbnB1dEJveC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZ2V0SG91cnNGcm9tMjQodGltZTI0Rm9ybWF0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKyh0aW1lMjRGb3JtYXQuc3BsaXQoJzonKVswXSk7XG4gICAgfVxuXG4gICAgZ2V0TWludXRlc0Zyb20yNCh0aW1lMjRGb3JtYXQ6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiArKHRpbWUyNEZvcm1hdC5zcGxpdCgnOicpWzFdKTtcbiAgICB9XG5cbiAgICBnZW5lcmF0ZVRpbWVTbG90cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMudGltZXMgPSBPYmplY3QuYXNzaWduKFtdLCBbXSk7XG4gICAgICAgIGlmICghdGhpcy50aW1lTW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMudGltZU1vZGVsID0gbW9tZW50KCkuZm9ybWF0KCdISDptbScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gVGltZUZvcm1hdC5NZXJpZGlhbikge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRpbWVNb2RlbC5pbmNsdWRlcygnYW0nKSAmJiAhdGhpcy50aW1lTW9kZWwuaW5jbHVkZXMoJ3BtJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVNb2RlbCA9IFRpbWVwaWNrZXJDb21wb25lbnQuY29udmVydDI0VG8xMih0aGlzLnRpbWVNb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lTW9kZWwuaW5jbHVkZXMoJ2FtJykgfHwgdGhpcy50aW1lTW9kZWwuaW5jbHVkZXMoJ3BtJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVNb2RlbCA9IFRpbWVwaWNrZXJDb21wb25lbnQuY29udmVydDEyVG8yNCh0aGlzLnRpbWVNb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyNDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgaG91ciA9IGk7XG4gICAgICAgICAgICBsZXQgbWVyaWRpYW4gPSAnJztcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gVGltZUZvcm1hdC5NZXJpZGlhbikge1xuICAgICAgICAgICAgICAgIG1lcmlkaWFuID0gJ2FtJztcbiAgICAgICAgICAgICAgICBpZiAoaG91ciA+PSAxMikge1xuICAgICAgICAgICAgICAgICAgICBtZXJpZGlhbiA9ICdwbSc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChob3VyID4gMTIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgPSBob3VyIC0gMTI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhvdXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaG91ciA9IDEyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgNjA7IGogKz0gdGhpcy5wZXJpb2QpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aW1lID0gaG91ciArICc6JyArIFRpbWVwaWNrZXJDb21wb25lbnQudG9GaXhlZChqLCAxMCkgKyBtZXJpZGlhbjtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVzID0gWy4uLnRoaXMudGltZXMsIHRpbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnRpbWVNb2RlbCkge1xuICAgICAgICAgICAgdGhpcy50aW1lTW9kZWwgPSBtb21lbnQoKS5mb3JtYXQoJ0hIOm1tJyk7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09IFRpbWVGb3JtYXQuTWVyaWRpYW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVNb2RlbCA9IG1vbWVudCgpLmZvcm1hdCgnaGg6bW1hJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNPbkxpc3QoZm9jdXNFbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdEZvY3VzID0gZm9jdXNFbmFibGVkO1xuXG4gICAgfVxuXG4gICAgb25NZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlTWVudSA9IHRydWU7XG4gICAgICAgIHRoaXMub3BlbmVkTWVudSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxpc3RGb2N1cyA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGlvblN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUodGhpcy50aW1lTW9kZWwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlld1BvcnQuc2V0UmVuZGVyZWRDb250ZW50T2Zmc2V0KDApO1xuICAgICAgICB0aGlzLnZpZXdQb3J0LnNjcm9sbFRvSW5kZXgoMCk7XG4gICAgICAgIHRoaXMudmFsaWRhdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvblN0YXJ0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHRpbWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aW1lQWN0aXZlID0gbnVsbDtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlZCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRpbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tUaW1lID0gdGhpcy5jaGVja1RpbWUodGltZSwgdGhpcy50aW1lc1tpXSk7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrVGltZS5tYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvSW5kZXgoaSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVja1RpbWUuZXhhY3RNYXRjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lQWN0aXZlID0gaTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbGlkYXRlZCA9IGZhbHNlO1xuXG4gICAgfVxuXG4gICAgb3BlblRpbWVQaWNrZXIoKSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNUaW1lID0gdGhpcy50aW1lTW9kZWw7XG4gICAgICAgIHRoaXMuY2xvc2VNZW51ID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxNzksICAvLyBoZWlnaHQgb2YgcGlja2VyXG4gICAgICAgICAgICAgICAgbGVmdDogdGhpcy5pbnB1dEJveC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0geyB0b3A6ICh0aGlzLmlucHV0Qm94Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gMSkgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogdGhpcy5pbnB1dEJveC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMub3BlbmVkTWVudSAmJiAhdGhpcy52YWxpZGF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbmVkTWVudSA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy50aW1lTW9kZWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRUaW1lPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFRpbWU/Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgICAgICB9LCA1MCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWxpZGF0ZWQgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG5cbiAgICBzZWxlY3RUaW1lKHRpbWUpIHtcbiAgICAgICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUodGltZSkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLmxpc3RGb2N1cykge1xuICAgICAgICAgICAgaWYgKHRoaXMudGltZUZvcm1hdDI0YW55U2VwYXJhdG9yLnRlc3QodGltZSkpIHtcbiAgICAgICAgICAgICAgICB0aW1lID0gdGltZS5yZXBsYWNlKHRoaXMudGltZUZvcm1hdDI0YW55U2VwYXJhdG9yLCAnJDE6JDMnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50aW1lRm9ybWF0MTJhbnlTZXBhcmF0b3IudGVzdCh0aW1lKSkge1xuICAgICAgICAgICAgICAgIHRpbWUgPSB0aW1lLnJlcGxhY2UodGhpcy50aW1lRm9ybWF0MTJhbnlTZXBhcmF0b3IsICckMTokMyQ0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICBsZXQgdGltZUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGltZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja1RpbWUgPSB0aGlzLmNoZWNrVGltZSh0aW1lLCB0aGlzLnRpbWVzW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tUaW1lLm1hdGNoICYmIGNoZWNrVGltZS5leGFjdE1hdGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0VGltZSh0aGlzLnRpbWVzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgdGltZUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aW1lRm91bmQpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsaWRUaW1lOiBib29sZWFuO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gVGltZUZvcm1hdC5NZXJpZGlhbikge1xuICAgICAgICAgICAgICAgICAgICB2YWxpZFRpbWUgPSB0aGlzLnRpbWVGb3JtYXQxMi50ZXN0KHRpbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbGlkVGltZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRUaW1lID0gdGhpcy50aW1lRm9ybWF0MjQudGVzdCh0aW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lID0gVGltZXBpY2tlckNvbXBvbmVudC5jb252ZXJ0MjRUbzEyKHRpbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkVGltZSA9IHRoaXMudGltZUZvcm1hdDEyV2l0aG91dE1pbnV0ZS50ZXN0KHRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IHRpbWUucmVwbGFjZSh0aGlzLnRpbWVGb3JtYXQxMldpdGhvdXRNaW51dGUsICckMTowMCQyJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRUaW1lID0gdGhpcy50aW1lRm9ybWF0MjQudGVzdCh0aW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWxpZFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkVGltZSA9IHRoaXMudGltZUZvcm1hdDEyLnRlc3QodGltZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRUaW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSA9IFRpbWVwaWNrZXJDb21wb25lbnQuY29udmVydDEyVG8yNCh0aW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWxpZFRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RUaW1lKHRpbWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0VGltZSh0aGlzLnByZXZpb3VzVGltZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2Nyb2xsVG9JbmRleChpOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3UG9ydC5zY3JvbGxUb0luZGV4KCBpLCAnc21vb3RoJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvcm1hdFRpbWUodGltZTogVGltZSwgZm9ybWF0OiBUaW1lRm9ybWF0KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHRpbWVTdHJpbmcgPSBgJHt0aW1lLmhvdXJzfWAgKyAnOicgKyBgJHt0aW1lLm1pbnV0ZXN9YC5wYWRTdGFydCgyLCAnMCcpO1xuICAgICAgICBpZiAoZm9ybWF0ID09PSBUaW1lRm9ybWF0Lk1lcmlkaWFuKSB7XG4gICAgICAgICAgICB0aW1lU3RyaW5nID0gVGltZXBpY2tlckNvbXBvbmVudC5jb252ZXJ0MjRUbzEyKHRpbWVTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lU3RyaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tUaW1lKHRlcm06IHN0cmluZywgdGVybVRvTWF0Y2g6IHN0cmluZyk6IHsgbWF0Y2g6IGJvb2xlYW4sIGV4YWN0TWF0Y2g6IGJvb2xlYW4gfSB7XG4gICAgICAgIGxldCBleGFjdE1hdGNoID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMudGltZUZvcm1hdDI0YW55U2VwYXJhdG9yLnRlc3QodGVybSkpIHtcbiAgICAgICAgICAgIHRlcm0gPSB0ZXJtLnJlcGxhY2UodGhpcy50aW1lRm9ybWF0MjRhbnlTZXBhcmF0b3IsICckMTokMycpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudGltZUZvcm1hdDEyYW55U2VwYXJhdG9yLnRlc3QodGVybSkpIHtcbiAgICAgICAgICAgIHRlcm0gPSB0ZXJtLnJlcGxhY2UodGhpcy50aW1lRm9ybWF0MTJhbnlTZXBhcmF0b3IsICckMTokMyQ0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRlcm0gPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4geyBtYXRjaDogZmFsc2UsIGV4YWN0TWF0Y2g6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGVybXMgPSB0ZXJtLnNwbGl0KCc6Jyk7XG4gICAgICAgIGlmICgoIWlzTmFOKHBhcnNlSW50KHRlcm1zWzBdKSkpICYmIHRlcm1zWzFdPy5sZW5ndGggPj0gMiAmJiAhaXNOYU4ocGFyc2VJbnQodGVybXNbMV0uc3Vic3RyaW5nKDAsIDIpKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGhvdXIgPSBwYXJzZUludCh0ZXJtc1swXSk7XG4gICAgICAgICAgICBsZXQgbmV3SG91ciA9IGhvdXI7XG4gICAgICAgICAgICBsZXQgbmV3TWludXRlcyA9IHRlcm1zWzFdLnN1YnN0cmluZygwLCAyKTtcbiAgICAgICAgICAgIGNvbnN0IG1pbnV0ZXMgPSBwYXJzZUludChuZXdNaW51dGVzKTtcbiAgICAgICAgICAgIGlmIChtaW51dGVzICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1pbnV0ZXMgPD0gMTUpIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3TWludXRlcyA9ICcxNSc7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDMwKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld01pbnV0ZXMgPSAnMzAnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWludXRlcyA8PSA0NSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdNaW51dGVzID0gJzQ1JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXdIb3VyICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIG5ld01pbnV0ZXMgPSAnMDAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUludChuZXdNaW51dGVzKSAhPT0gbWludXRlcyB8fCBuZXdIb3VyICE9PSBob3VyKSB7XG4gICAgICAgICAgICAgICAgZXhhY3RNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGVybSA9IG5ld0hvdXIgKyAnOicgKyBuZXdNaW51dGVzICsgdGVybXNbMV0uc3Vic3RyaW5nKDIsIHRlcm1zWzFdLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1lcmlkaWFuID0gJyc7XG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gVGltZUZvcm1hdC5NZXJpZGlhbikge1xuICAgICAgICAgICAgaWYgKHRlcm1zWzBdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc05hTihwYXJzZUludCh0ZXJtc1swXSkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBob3VyID0gcGFyc2VJbnQodGVybXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaG91ciA+IDEyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBob3VyID0gaG91ciAtIDEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGVybSA9IGhvdXIgKyAnOicgKyAodGVybXNbMV0gPyB0ZXJtc1sxXS5zdWJzdHJpbmcoMCwgMikgOiAnMDAnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lcmlkaWFuID0gJ3BtJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRlcm0uZW5kc1dpdGgoJ2FtJykgJiYgIXRlcm0uZW5kc1dpdGgoJ3BtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRlcm0gKz0gbWVyaWRpYW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy50aW1lRm9ybWF0MTJXaXRob3V0TWludXRlLnRlc3QodGVybSkpe1xuICAgICAgICAgICAgICAgIHRlcm0gPSB0ZXJtLnN1YnN0cmluZygwLCB0ZXJtLmxlbmd0aCAtIDIpICsgJzowMCcgKyB0ZXJtLnN1YnN0cmluZyh0ZXJtLmxlbmd0aCAtIDIsIHRlcm0ubGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge21hdGNoIDogdGVybVRvTWF0Y2guc3RhcnRzV2l0aCh0ZXJtKSwgZXhhY3RNYXRjaH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29udmVydDEyVG8yNCh0aW1lKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdGVybXMgPSB0aW1lLnNwbGl0KCc6Jyk7XG4gICAgICAgIGNvbnN0IG1pbnV0ZXMgPSB0ZXJtc1sxXS5zdWJzdHJpbmcoMCwgMik7XG4gICAgICAgIGNvbnN0IG1lcmlkaWFuID0gdGVybXNbMV0uc3Vic3RyaW5nKDIsIDQpO1xuICAgICAgICBsZXQgaG91ciA9IHBhcnNlSW50KHRlcm1zWzBdKTtcbiAgICAgICAgaWYgKCFpc05hTihwYXJzZUludCh0ZXJtc1swXSkpKSB7XG4gICAgICAgICAgICBpZiAobWVyaWRpYW4gPT09ICdwbScgJiYgaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IGhvdXIgKyAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtZXJpZGlhbiA9PT0gJ2FtJyAmJiBob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBob3VyICsgJzonICsgbWludXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0MjRUbzEyKHRpbWUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0ZXJtcyA9IHRpbWUuc3BsaXQoJzonKTtcbiAgICAgICAgbGV0IG1lcmlkaWFuID0gJ2FtJztcbiAgICAgICAgbGV0IGhvdXIgPSBwYXJzZUludCh0ZXJtc1swXSk7XG4gICAgICAgIGlmICghaXNOYU4ocGFyc2VJbnQodGVybXNbMF0pKSkge1xuICAgICAgICAgICAgaWYgKGhvdXIgPj0gMTIpIHtcbiAgICAgICAgICAgICAgICBtZXJpZGlhbiA9ICdwbSc7XG4gICAgICAgICAgICAgICAgaWYgKGhvdXIgPiAxMikge1xuICAgICAgICAgICAgICAgICAgICBob3VyID0gaG91ciAtIDEyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChob3VyID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaG91ciA9IDEyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBob3VyICsgJzonICsgdGVybXNbMV0gKyBtZXJpZGlhblxuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHRvRml4ZWQobnVtLCBmaXgpOiBzdHJpbmcge1xuICAgICAgICBsZXQgZml4ZWROdW06IHN0cmluZyA9IG51bTtcbiAgICAgICAgaWYgKG51bSA8IGZpeCkge1xuICAgICAgICAgICAgZml4ZWROdW0gPSAnMCcgKyBmaXhlZE51bTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZml4ZWROdW07XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRpc3BsYXktZmxleFwiIFtjbGFzcy5tZXJpZGlhbl09XCJmb3JtYXQgPT09IFRpbWVGb3JtYXQuTWVyaWRpYW5cIj5cbiAgICA8bmctdGVtcGxhdGUgI3RpbWVPcHRpb25zVGVtcGxhdGUgPlxuICAgICAgICA8aW5wdXQgI2lucHV0VGltZVxuICAgICAgICAgICAgICAgKm5nSWY9XCJwbGFjZW1lbnQgPT0gJ2JvdHRvbSdcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWlucHV0IG1lbnVcIlxuICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0aW1lTW9kZWxcIlxuICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlKCRldmVudD8udGFyZ2V0Py52YWx1ZSlcIlxuICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwidmFsaWRhdGUoJGV2ZW50Py50YXJnZXQ/LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJmb2N1c09uTGlzdChmYWxzZSlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtb3B0aW9ucy1jb250YWluZXIge3twbGFjZW1lbnR9fVwiXG4gICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiZm9jdXNPbkxpc3QodHJ1ZSlcIlxuICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImZvY3VzT25MaXN0KGZhbHNlKVwiPlxuICAgICAgICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBzdHlsZT1cImhlaWdodDogMTAwJVwiIGl0ZW1TaXplPVwiMzNcIiBjbGFzcz1cInNjcm9sbFwiIG1pbkJ1ZmZlclB4PVwiMjAwXCIgbWF4QnVmZmVyUHg9XCIyMDBcIiBhdXRvZm9jdXM+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjttYXgtaGVpZ2h0OiAwXCI+4oKsPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIHRpbWVzO2xldCBpID0gaW5kZXhcIiAgKGNsaWNrKT1cInNlbGVjdFRpbWUoaXRlbSlcIiBpZD1cIl9hcFRpbWVfe3tpfX1cIiBjbGFzcz1cInRpbWUtbGluZVwiIFtjbGFzcy5zZWxlY3RlZF09XCJ0aW1lQWN0aXZlID09PSBpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG91clwiPnt7aXRlbX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aW5wdXQgI2lucHV0VGltZVxuICAgICAgICAgICAgICAgKm5nSWY9XCJwbGFjZW1lbnQgPT0gJ3RvcCdcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lLWlucHV0IG1lbnVcIlxuICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0aW1lTW9kZWxcIlxuICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChibHVyKT1cInZhbGlkYXRlKCRldmVudD8udGFyZ2V0Py52YWx1ZSlcIlxuICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwidmFsaWRhdGUoJGV2ZW50Py50YXJnZXQ/LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJmb2N1c09uTGlzdChmYWxzZSlcIj5cblxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8aW5wdXQgI2lucHV0Qm94XG4gICAgICAgICAgIGNsYXNzPVwidGltZS1pbnB1dFwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW52YWxpZCc6IGludmFsaWR9XCJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRpbWVNb2RlbFwiXG4gICAgICAgICAgIChjbGljayk9XCJvcGVuVGltZVBpY2tlcigpXCJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgW2FwUG9wbWVudV09XCJ0aW1lT3B0aW9uc1RlbXBsYXRlXCJcbiAgICAgICAgICAgW2FwVG9vbHRpcE5lb109XCJ7Y29udGVudDogaW52YWxpZGF0aW9uTWVzc2FnZSwgZGlzcGxheTogaW52YWxpZGF0aW9uTWVzc2FnZSAmJiBpbnZhbGlkfVwiXG4gICAgICAgICAgIFtzaGFkb3ddPVwiZmFsc2VcIlxuICAgICAgICAgICBbYXBQb3BtZW51Qm9yZGVyXT1cImZhbHNlXCJcbiAgICAgICAgICAgW2FwUG9wbWVudUJhY2tncm91bmRdPVwiZmFsc2VcIlxuICAgICAgICAgICBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiXG4gICAgICAgICAgIFtjbG9zZV09XCJjbG9zZU1lbnVcIlxuICAgICAgICAgICBbcG9pbnRlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgW3Bvc2l0aW9uXT1cInBvc2l0aW9uXCJcbiAgICAgICAgICAgW3BsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICAgICAgICAgICBbcm91bmRlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgKG1lbnVDbG9zZWQpPVwib25NZW51Q2xvc2VkKClcIlxuICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20gcmlnaHRcIlxuICAgICAgICAgICBjb2xvcj1cInNlY29uZGFyeVwiXG4gICAgICAgICAgIHJlYWRvbmx5PlxuXG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { Component, Input, ChangeDetectionStrategy, HostListener, } from '@angular/core';
2
+ import { animate, style, transition, trigger } from '@angular/animations';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./tooltip-neo.service";
5
+ import * as i2 from "@angular/common";
6
+ export class TooltipNeoComponent {
7
+ constructor(_elementRef, _tooltipNeoService) {
8
+ this._elementRef = _elementRef;
9
+ this._tooltipNeoService = _tooltipNeoService;
10
+ }
11
+ ngOnInit() {
12
+ this.params.borderColor
13
+ ? this.border = `solid 1px ${this.params.borderColor}`
14
+ : this.border = undefined;
15
+ }
16
+ onClickOutside(event) {
17
+ if (!this._elementRef.nativeElement.contains(event.target)) {
18
+ this._tooltipNeoService.clickOutside$.next();
19
+ }
20
+ }
21
+ }
22
+ /** @nocollapse */ /** @nocollapse */ TooltipNeoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TooltipNeoComponent, deps: [{ token: i0.ElementRef }, { token: i1.TooltipNeoService }], target: i0.ɵɵFactoryTarget.Component });
23
+ /** @nocollapse */ /** @nocollapse */ TooltipNeoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: TooltipNeoComponent, selector: "ap-tooltip-neo", inputs: { params: "params" }, host: { listeners: { "document:click": "onClickOutside($event)" } }, ngImport: i0, template: "<div @neoTooltip [ngSwitch]=\"params.contentType\"\n class=\"tooltip {{params.maxWidth}}\"\n [style.background]=\"params.backgroundColor\"\n [style.border]=\"border\"\n >\n <div *ngIf=\"params.displayArrow\"\n class=\"arrow-tooltip {{params.position}}\"\n [class.border]=\"!!params.borderColor\"\n [style.background]=\"params.backgroundColor\"\n [style.borderTop]=\"border\"\n [style.borderRight]=\"border\"\n ></div>\n <ng-container *ngIf=\"params.title\">\n <div class=\"text title\">{{params.title}}</div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <ng-container *ngIf=\"params.content\">\n <div class=\"text content\">{{params.content}}</div>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container *ngTemplateOutlet=\"params.content\">\n </ng-container>\n </ng-container>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}.tooltip{border-radius:8px;filter:drop-shadow(0px 0px 10px rgba(0,0,0,.08));position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:18px}.tooltip .arrow-tooltip{position:absolute;height:12px;width:12px;border-top-right-radius:2px}.tooltip .arrow-tooltip.topLeft{left:12px;top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.top{left:calc(50% - 6px);top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.topRight{right:12px;top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.left{top:calc(50% - 6px);transform:rotate(45deg)}.tooltip .arrow-tooltip.left:not(.border){right:-6px}.tooltip .arrow-tooltip.left.border{right:-7px}.tooltip .arrow-tooltip.right{top:calc(50% - 6px);transform:rotate(-135deg)}.tooltip .arrow-tooltip.right:not(.border){left:-6px}.tooltip .arrow-tooltip.right.border{left:-7px}.tooltip .arrow-tooltip.bottomLeft{left:12px;transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottomLeft:not(.border){top:-6px}.tooltip .arrow-tooltip.bottomLeft.border{top:-7px}.tooltip .arrow-tooltip.bottom{left:calc(50% - 6px);transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottom:not(.border){top:-6px}.tooltip .arrow-tooltip.bottom.border{top:-7px}.tooltip .arrow-tooltip.bottomRight{right:12px;transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottomRight:not(.border){top:-6px}.tooltip .arrow-tooltip.bottomRight.border{top:-7px}.tooltip.full{max-width:350px}.tooltip.medium{max-width:300px}.tooltip .text{font-size:14px;color:#212e44}.tooltip .title{align-items:flex-start;font-weight:700;margin:8px 16px 0}.tooltip .content{padding:8px 16px;overflow-wrap:anywhere}\n"], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
24
+ trigger('neoTooltip', [
25
+ transition(':enter', [
26
+ style({ opacity: 0 }),
27
+ animate(200, style({ opacity: 1 }))
28
+ ]),
29
+ transition(':leave', [animate(200, style({ opacity: 0 }))])
30
+ ])
31
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: TooltipNeoComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'ap-tooltip-neo', changeDetection: ChangeDetectionStrategy.OnPush, animations: [
35
+ trigger('neoTooltip', [
36
+ transition(':enter', [
37
+ style({ opacity: 0 }),
38
+ animate(200, style({ opacity: 1 }))
39
+ ]),
40
+ transition(':leave', [animate(200, style({ opacity: 0 }))])
41
+ ])
42
+ ], template: "<div @neoTooltip [ngSwitch]=\"params.contentType\"\n class=\"tooltip {{params.maxWidth}}\"\n [style.background]=\"params.backgroundColor\"\n [style.border]=\"border\"\n >\n <div *ngIf=\"params.displayArrow\"\n class=\"arrow-tooltip {{params.position}}\"\n [class.border]=\"!!params.borderColor\"\n [style.background]=\"params.backgroundColor\"\n [style.borderTop]=\"border\"\n [style.borderRight]=\"border\"\n ></div>\n <ng-container *ngIf=\"params.title\">\n <div class=\"text title\">{{params.title}}</div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <ng-container *ngIf=\"params.content\">\n <div class=\"text content\">{{params.content}}</div>\n </ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"'template'\">\n <ng-container *ngTemplateOutlet=\"params.content\">\n </ng-container>\n </ng-container>\n</div>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}.tooltip{border-radius:8px;filter:drop-shadow(0px 0px 10px rgba(0,0,0,.08));position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:18px}.tooltip .arrow-tooltip{position:absolute;height:12px;width:12px;border-top-right-radius:2px}.tooltip .arrow-tooltip.topLeft{left:12px;top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.top{left:calc(50% - 6px);top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.topRight{right:12px;top:calc(100% - 6px);transform:rotate(135deg)}.tooltip .arrow-tooltip.left{top:calc(50% - 6px);transform:rotate(45deg)}.tooltip .arrow-tooltip.left:not(.border){right:-6px}.tooltip .arrow-tooltip.left.border{right:-7px}.tooltip .arrow-tooltip.right{top:calc(50% - 6px);transform:rotate(-135deg)}.tooltip .arrow-tooltip.right:not(.border){left:-6px}.tooltip .arrow-tooltip.right.border{left:-7px}.tooltip .arrow-tooltip.bottomLeft{left:12px;transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottomLeft:not(.border){top:-6px}.tooltip .arrow-tooltip.bottomLeft.border{top:-7px}.tooltip .arrow-tooltip.bottom{left:calc(50% - 6px);transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottom:not(.border){top:-6px}.tooltip .arrow-tooltip.bottom.border{top:-7px}.tooltip .arrow-tooltip.bottomRight{right:12px;transform:rotate(-45deg)}.tooltip .arrow-tooltip.bottomRight:not(.border){top:-6px}.tooltip .arrow-tooltip.bottomRight.border{top:-7px}.tooltip.full{max-width:350px}.tooltip.medium{max-width:300px}.tooltip .text{font-size:14px;color:#212e44}.tooltip .title{align-items:flex-start;font-weight:700;margin:8px 16px 0}.tooltip .content{padding:8px 16px;overflow-wrap:anywhere}\n"] }]
43
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.TooltipNeoService }]; }, propDecorators: { params: [{
44
+ type: Input
45
+ }], onClickOutside: [{
46
+ type: HostListener,
47
+ args: ['document:click', ['$event']]
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1uZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvdG9vbHRpcC1uZW8vdG9vbHRpcC1uZW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvdG9vbHRpcC1uZW8vdG9vbHRpcC1uZW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLFlBQVksR0FHZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFtQjFFLE1BQU0sT0FBTyxtQkFBbUI7SUFLNUIsWUFDWSxXQUF1QixFQUN2QixrQkFBcUM7UUFEckMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtJQUVqRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVztZQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3RELENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQUs7UUFDaEIsSUFBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNoRDtJQUNMLENBQUM7O3NKQXRCUSxtQkFBbUI7MElBQW5CLG1CQUFtQix5SkMzQmhDLDg4QkF5QkEsNDZPRFJnQjtRQUNSLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNyQixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3RDLENBQUM7WUFDRixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUQsQ0FBQztLQUNMOzJGQUVRLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSxjQUduQzt3QkFDUixPQUFPLENBQUMsWUFBWSxFQUFFOzRCQUNsQixVQUFVLENBQUMsUUFBUSxFQUFFO2dDQUNqQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3JCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3RDLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUM5RCxDQUFDO3FCQUNMO2lJQUdRLE1BQU07c0JBQWQsS0FBSztnQkFpQk4sY0FBYztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBUb29sdGlwTmVvUGFyYW1zIH0gZnJvbSAnLi90b29sdGlwLW5lby5tb2RlbCc7XG5pbXBvcnQge1Rvb2x0aXBOZW9TZXJ2aWNlfSBmcm9tIFwiLi90b29sdGlwLW5lby5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXAtdG9vbHRpcC1uZW8nLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0eWxlVXJsczogWycuL3Rvb2x0aXAtbmVvLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2x0aXAtbmVvLmNvbXBvbmVudC5odG1sJyxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ25lb1Rvb2x0aXAnLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoMjAwLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFthbmltYXRlKDIwMCwgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKV0pXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwTmVvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBwYXJhbXM6IFRvb2x0aXBOZW9QYXJhbXM7XG5cbiAgICBib3JkZXI6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF90b29sdGlwTmVvU2VydmljZTogVG9vbHRpcE5lb1NlcnZpY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucGFyYW1zLmJvcmRlckNvbG9yXG4gICAgICAgICAgICA/IHRoaXMuYm9yZGVyID0gYHNvbGlkIDFweCAke3RoaXMucGFyYW1zLmJvcmRlckNvbG9yfWBcbiAgICAgICAgICAgIDogdGhpcy5ib3JkZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICAgIG9uQ2xpY2tPdXRzaWRlKGV2ZW50KSB7XG4gICAgICAgIGlmKCF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5fdG9vbHRpcE5lb1NlcnZpY2UuY2xpY2tPdXRzaWRlJC5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IEBuZW9Ub29sdGlwIFtuZ1N3aXRjaF09XCJwYXJhbXMuY29udGVudFR5cGVcIlxuICAgICBjbGFzcz1cInRvb2x0aXAge3twYXJhbXMubWF4V2lkdGh9fVwiXG4gICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInBhcmFtcy5iYWNrZ3JvdW5kQ29sb3JcIlxuICAgICBbc3R5bGUuYm9yZGVyXT1cImJvcmRlclwiXG4gICAgPlxuICAgIDxkaXYgKm5nSWY9XCJwYXJhbXMuZGlzcGxheUFycm93XCJcbiAgICAgICAgIGNsYXNzPVwiYXJyb3ctdG9vbHRpcCB7e3BhcmFtcy5wb3NpdGlvbn19XCJcbiAgICAgICAgIFtjbGFzcy5ib3JkZXJdPVwiISFwYXJhbXMuYm9yZGVyQ29sb3JcIlxuICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwicGFyYW1zLmJhY2tncm91bmRDb2xvclwiXG4gICAgICAgICBbc3R5bGUuYm9yZGVyVG9wXT1cImJvcmRlclwiXG4gICAgICAgICBbc3R5bGUuYm9yZGVyUmlnaHRdPVwiYm9yZGVyXCJcbiAgICA+PC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmFtcy50aXRsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCB0aXRsZVwiPnt7cGFyYW1zLnRpdGxlfX08L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcmFtcy5jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dCBjb250ZW50XCI+e3twYXJhbXMuY29udGVudH19PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZW1wbGF0ZSdcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhcmFtcy5jb250ZW50XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=