@kms-ngx-ui/presentational 0.0.24 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/README.md +28 -28
  2. package/{esm2015/kms-ngx-ui-presentational.js → esm2020/kms-ngx-ui-presentational.mjs} +4 -4
  3. package/esm2020/lib/directives/directives.module.mjs +40 -0
  4. package/{esm2015/lib/directives/mousewheel.directive.js → esm2020/lib/directives/mousewheel.directive.mjs} +56 -56
  5. package/{esm2015/lib/directives/sum-of-height.directive.js → esm2020/lib/directives/sum-of-height.directive.mjs} +74 -74
  6. package/{esm2015/lib/directives/swipe.directive.js → esm2020/lib/directives/swipe.directive.mjs} +183 -183
  7. package/esm2020/lib/directives/swipe.model.mjs +5 -0
  8. package/{esm2015/lib/directives/tooltip.directive.js → esm2020/lib/directives/tooltip.directive.mjs} +144 -144
  9. package/esm2020/lib/kms-ngx-ui-presentational.component.mjs +22 -0
  10. package/{esm2015/lib/kms-ngx-ui-presentational.module.js → esm2020/lib/kms-ngx-ui-presentational.module.mjs} +215 -217
  11. package/{esm2015/lib/kms-ngx-ui-presentational.service.js → esm2020/lib/kms-ngx-ui-presentational.service.mjs} +14 -14
  12. package/esm2020/lib/models/address.model.mjs +6 -0
  13. package/{esm2015/lib/models/iconSize.enum.js → esm2020/lib/models/iconSize.enum.mjs} +17 -17
  14. package/{esm2015/lib/models/image-snippet.model.js → esm2020/lib/models/image-snippet.model.mjs} +18 -18
  15. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +5 -5
  16. package/{esm2015/lib/models/is-value.function.js → esm2020/lib/models/is-value.function.mjs} +17 -17
  17. package/{esm2015/lib/models/salutation.enum.js → esm2020/lib/models/salutation.enum.mjs} +8 -8
  18. package/{esm2015/lib/models/types/attached-file-dto.model.js → esm2020/lib/models/types/attached-file-dto.model.mjs} +6 -6
  19. package/{esm2015/lib/models/types/nullable.type.js → esm2020/lib/models/types/nullable.type.mjs} +5 -5
  20. package/{esm2015/lib/parent-components/actions.component.js → esm2020/lib/parent-components/actions.component.mjs} +56 -56
  21. package/esm2020/lib/parent-components/form-control.component.mjs +75 -0
  22. package/esm2020/lib/parent-components/form.component.mjs +78 -0
  23. package/{esm2015/lib/pipes/custom-pipes.module.js → esm2020/lib/pipes/custom-pipes.module.mjs} +71 -71
  24. package/esm2020/lib/pipes/decode-uri.pipe.mjs +19 -0
  25. package/esm2020/lib/pipes/encode-uri.pipe.mjs +19 -0
  26. package/{esm2015/lib/pipes/integer-currency.pipe.js → esm2020/lib/pipes/integer-currency.pipe.mjs} +27 -27
  27. package/{esm2015/lib/pipes/safe-html.pipe.js → esm2020/lib/pipes/safe-html.pipe.mjs} +23 -23
  28. package/{esm2015/lib/pipes/safe-resource-url.pipe.js → esm2020/lib/pipes/safe-resource-url.pipe.mjs} +23 -23
  29. package/{esm2015/lib/pipes/safe-style.pipe.js → esm2020/lib/pipes/safe-style.pipe.mjs} +23 -23
  30. package/{esm2015/lib/pipes/safe-url.pipe.js → esm2020/lib/pipes/safe-url.pipe.mjs} +23 -23
  31. package/{esm2015/lib/pipes/to-number.pipe.js → esm2020/lib/pipes/to-number.pipe.mjs} +23 -23
  32. package/{esm2015/lib/pipes/trim.pipe.js → esm2020/lib/pipes/trim.pipe.mjs} +20 -20
  33. package/{esm2015/lib/pipes/typeof.pipe.js → esm2020/lib/pipes/typeof.pipe.mjs} +16 -16
  34. package/esm2020/lib/services/viewport.service.mjs +216 -0
  35. package/esm2020/lib/ui/back-to-top/back-to-top.component.mjs +49 -0
  36. package/{esm2015/lib/ui/button-with-confirm-dialog/button-response-types.enum.js → esm2020/lib/ui/button-with-confirm-dialog/button-response-types.enum.mjs} +6 -6
  37. package/esm2020/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.mjs +58 -0
  38. package/{esm2015/lib/ui/button-with-confirm-dialog/dialog-data.model.js → esm2020/lib/ui/button-with-confirm-dialog/dialog-data.model.mjs} +2 -2
  39. package/esm2020/lib/ui/checkbox/checkbox.component.mjs +71 -0
  40. package/esm2020/lib/ui/color-input/color-input.component.mjs +76 -0
  41. package/esm2020/lib/ui/dropdown-from-data/dropdown-from-data.component.mjs +165 -0
  42. package/esm2020/lib/ui/enum-radiogroup/enum-radiogroup.component.mjs +53 -0
  43. package/esm2020/lib/ui/file-input/file-input.component.mjs +232 -0
  44. package/esm2020/lib/ui/flyout/flyout.component.mjs +119 -0
  45. package/esm2020/lib/ui/generic-dialog/generic-dialog.component.mjs +54 -0
  46. package/esm2020/lib/ui/icon/icon.component.mjs +48 -0
  47. package/esm2020/lib/ui/icon/iconSize.enum.mjs +17 -0
  48. package/esm2020/lib/ui/image-slider/image-slider.component.mjs +189 -0
  49. package/esm2020/lib/ui/kms-accordion-item/kms-accordion-item.component.mjs +40 -0
  50. package/esm2020/lib/ui/loader/loader.component.mjs +21 -0
  51. package/esm2020/lib/ui/map/map.component.mjs +116 -0
  52. package/esm2020/lib/ui/radiobutton/radiobutton.component.mjs +73 -0
  53. package/esm2020/lib/ui/salutation-dropdown/salutation-dropdown.component.mjs +55 -0
  54. package/esm2020/lib/ui/salutation-radiogroup/salutation-radiogroup.component.mjs +49 -0
  55. package/esm2020/lib/ui/time-input/time-input.component.mjs +83 -0
  56. package/esm2020/lib/ui/tooltip/tooltip.component.mjs +16 -0
  57. package/esm2020/lib/ui/tooltip-icon/tooltip-icon.component.mjs +35 -0
  58. package/esm2020/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.mjs +82 -0
  59. package/esm2020/public-api.mjs +49 -0
  60. package/fesm2015/kms-ngx-ui-presentational.mjs +3013 -0
  61. package/fesm2015/kms-ngx-ui-presentational.mjs.map +1 -0
  62. package/{fesm2015/kms-ngx-ui-presentational.js → fesm2020/kms-ngx-ui-presentational.mjs} +2894 -3108
  63. package/fesm2020/kms-ngx-ui-presentational.mjs.map +1 -0
  64. package/{kms-ngx-ui-presentational.d.ts → index.d.ts} +5 -5
  65. package/lib/directives/directives.module.d.ts +11 -13
  66. package/lib/directives/mousewheel.directive.d.ts +15 -15
  67. package/lib/directives/sum-of-height.directive.d.ts +31 -31
  68. package/lib/directives/swipe.directive.d.ts +45 -45
  69. package/lib/directives/swipe.model.d.ts +49 -49
  70. package/lib/directives/tooltip.directive.d.ts +29 -29
  71. package/lib/kms-ngx-ui-presentational.component.d.ts +8 -8
  72. package/lib/kms-ngx-ui-presentational.module.d.ts +47 -47
  73. package/lib/kms-ngx-ui-presentational.service.d.ts +6 -6
  74. package/lib/models/address.model.d.ts +14 -14
  75. package/lib/models/iconSize.enum.d.ts +15 -15
  76. package/lib/models/image-snippet.model.d.ts +15 -15
  77. package/lib/models/index.d.ts +4 -4
  78. package/lib/models/is-value.function.d.ts +9 -9
  79. package/lib/models/salutation.enum.d.ts +5 -5
  80. package/lib/models/types/attached-file-dto.model.d.ts +11 -11
  81. package/lib/models/types/nullable.type.d.ts +4 -4
  82. package/lib/parent-components/actions.component.d.ts +31 -31
  83. package/lib/parent-components/form-control.component.d.ts +27 -27
  84. package/lib/parent-components/form.component.d.ts +34 -40
  85. package/lib/pipes/custom-pipes.module.d.ts +17 -17
  86. package/lib/pipes/decode-uri.pipe.d.ts +10 -10
  87. package/lib/pipes/encode-uri.pipe.d.ts +10 -10
  88. package/lib/pipes/integer-currency.pipe.d.ts +13 -13
  89. package/lib/pipes/safe-html.pipe.d.ts +13 -13
  90. package/lib/pipes/safe-resource-url.pipe.d.ts +13 -13
  91. package/lib/pipes/safe-style.pipe.d.ts +13 -13
  92. package/lib/pipes/safe-url.pipe.d.ts +13 -13
  93. package/lib/pipes/to-number.pipe.d.ts +10 -10
  94. package/lib/pipes/trim.pipe.d.ts +10 -10
  95. package/lib/pipes/typeof.pipe.d.ts +7 -7
  96. package/lib/services/viewport.service.d.ts +74 -83
  97. package/lib/ui/back-to-top/back-to-top.component.d.ts +10 -10
  98. package/lib/ui/button-with-confirm-dialog/button-response-types.enum.d.ts +4 -4
  99. package/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.d.ts +19 -19
  100. package/lib/ui/button-with-confirm-dialog/dialog-data.model.d.ts +9 -9
  101. package/lib/ui/checkbox/checkbox.component.d.ts +31 -31
  102. package/lib/ui/color-input/color-input.component.d.ts +19 -19
  103. package/lib/ui/dropdown-from-data/dropdown-from-data.component.d.ts +55 -55
  104. package/lib/ui/enum-radiogroup/enum-radiogroup.component.d.ts +17 -17
  105. package/lib/ui/file-input/file-input.component.d.ts +89 -89
  106. package/lib/ui/flyout/flyout.component.d.ts +32 -32
  107. package/lib/ui/generic-dialog/generic-dialog.component.d.ts +26 -26
  108. package/lib/ui/icon/icon.component.d.ts +42 -48
  109. package/lib/ui/icon/iconSize.enum.d.ts +15 -25
  110. package/lib/ui/image-slider/image-slider.component.d.ts +62 -62
  111. package/lib/ui/kms-accordion-item/kms-accordion-item.component.d.ts +22 -22
  112. package/lib/ui/loader/loader.component.d.ts +9 -9
  113. package/lib/ui/map/map.component.d.ts +70 -69
  114. package/lib/ui/radiobutton/radiobutton.component.d.ts +26 -27
  115. package/lib/ui/salutation-dropdown/salutation-dropdown.component.d.ts +17 -17
  116. package/lib/ui/salutation-radiogroup/salutation-radiogroup.component.d.ts +15 -15
  117. package/lib/ui/time-input/time-input.component.d.ts +22 -22
  118. package/lib/ui/tooltip/tooltip.component.d.ts +6 -6
  119. package/lib/ui/tooltip-icon/tooltip-icon.component.d.ts +13 -13
  120. package/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.d.ts +27 -27
  121. package/package.json +27 -14
  122. package/public-api.d.ts +45 -46
  123. package/src/lib/ui/back-to-top/back-to-top.component.scss +46 -45
  124. package/src/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.scss +2 -2
  125. package/src/lib/ui/checkbox/checkbox.component.scss +48 -48
  126. package/src/lib/ui/color-input/color-input.component.scss +38 -38
  127. package/src/lib/ui/file-input/file-input.component.scss +2 -2
  128. package/src/lib/ui/flyout/flyout.component.scss +34 -34
  129. package/src/lib/ui/generic-dialog/generic-dialog.component.scss +59 -59
  130. package/src/lib/ui/icon/icon.component.scss +148 -114
  131. package/src/lib/ui/image-slider/image-slider.component.scss +219 -219
  132. package/src/lib/ui/kms-accordion-item/kms-accordion-item.component.scss +95 -95
  133. package/src/lib/ui/radiobutton/radiobutton.component.scss +31 -31
  134. package/src/lib/ui/time-input/time-input.component.scss +10 -10
  135. package/src/lib/ui/tooltip/tooltip.component.scss +26 -26
  136. package/src/lib/ui/tooltip-icon/tooltip-icon.component.scss +2 -2
  137. package/src/styles/mixins.scss +8 -8
  138. package/src/styles/styles.scss +30 -31
  139. package/bundles/kms-ngx-ui-presentational.umd.js +0 -3751
  140. package/bundles/kms-ngx-ui-presentational.umd.js.map +0 -1
  141. package/esm2015/lib/directives/directives.module.js +0 -45
  142. package/esm2015/lib/directives/size.directive.js +0 -21
  143. package/esm2015/lib/directives/swipe.model.js +0 -5
  144. package/esm2015/lib/kms-ngx-ui-presentational.component.js +0 -26
  145. package/esm2015/lib/models/address.model.js +0 -6
  146. package/esm2015/lib/parent-components/colorable.component.js +0 -35
  147. package/esm2015/lib/parent-components/form-control.component.js +0 -76
  148. package/esm2015/lib/parent-components/form.component.js +0 -99
  149. package/esm2015/lib/pipes/decode-uri.pipe.js +0 -19
  150. package/esm2015/lib/pipes/encode-uri.pipe.js +0 -19
  151. package/esm2015/lib/services/viewport.service.js +0 -242
  152. package/esm2015/lib/ui/back-to-top/back-to-top.component.js +0 -52
  153. package/esm2015/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.js +0 -62
  154. package/esm2015/lib/ui/checkbox/checkbox.component.js +0 -76
  155. package/esm2015/lib/ui/color-input/color-input.component.js +0 -81
  156. package/esm2015/lib/ui/dropdown-from-data/dropdown-from-data.component.js +0 -169
  157. package/esm2015/lib/ui/enum-radiogroup/enum-radiogroup.component.js +0 -57
  158. package/esm2015/lib/ui/file-input/file-input.component.js +0 -237
  159. package/esm2015/lib/ui/flyout/flyout.component.js +0 -125
  160. package/esm2015/lib/ui/generic-dialog/generic-dialog.component.js +0 -58
  161. package/esm2015/lib/ui/icon/icon.component.js +0 -55
  162. package/esm2015/lib/ui/icon/iconSize.enum.js +0 -28
  163. package/esm2015/lib/ui/image-slider/image-slider.component.js +0 -193
  164. package/esm2015/lib/ui/kms-accordion-item/kms-accordion-item.component.js +0 -44
  165. package/esm2015/lib/ui/loader/loader.component.js +0 -25
  166. package/esm2015/lib/ui/map/map.component.js +0 -120
  167. package/esm2015/lib/ui/radiobutton/radiobutton.component.js +0 -82
  168. package/esm2015/lib/ui/salutation-dropdown/salutation-dropdown.component.js +0 -59
  169. package/esm2015/lib/ui/salutation-radiogroup/salutation-radiogroup.component.js +0 -53
  170. package/esm2015/lib/ui/time-input/time-input.component.js +0 -88
  171. package/esm2015/lib/ui/tooltip/tooltip.component.js +0 -20
  172. package/esm2015/lib/ui/tooltip-icon/tooltip-icon.component.js +0 -40
  173. package/esm2015/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.js +0 -86
  174. package/esm2015/public-api.js +0 -50
  175. package/fesm2015/kms-ngx-ui-presentational.js.map +0 -1
  176. package/lib/directives/size.directive.d.ts +0 -10
  177. package/lib/parent-components/colorable.component.d.ts +0 -10
  178. package/src/styles/animations.scss +0 -47
@@ -1,242 +0,0 @@
1
- /**
2
- * @copyright KMS GmbH
3
- */
4
- import { DOCUMENT, isPlatformBrowser } from '@angular/common';
5
- import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
6
- import { Subject } from 'rxjs';
7
- import * as i0 from "@angular/core";
8
- /**
9
- * Service to get viewport
10
- */
11
- export class ViewportService {
12
- constructor(platformId, document) {
13
- this.platformId = platformId;
14
- this.document = document;
15
- this.viewports = [
16
- {
17
- name: 'xs',
18
- low: 360,
19
- high: 990,
20
- },
21
- {
22
- name: 's',
23
- low: 991,
24
- high: 1024,
25
- },
26
- {
27
- name: 'm',
28
- low: 1025,
29
- high: 1200,
30
- },
31
- {
32
- name: 'l',
33
- low: 1201,
34
- high: 1400,
35
- },
36
- {
37
- name: 'xl',
38
- low: 1401,
39
- high: 1600,
40
- },
41
- {
42
- name: 'xxl',
43
- low: 1601,
44
- high: 1920,
45
- },
46
- {
47
- name: 'xxxl',
48
- low: 1921,
49
- high: 99999,
50
- },
51
- ];
52
- this.viewportChangedSubscriber = new Subject();
53
- this.viewportResizedSubscriber = new Subject();
54
- this.isBrowser = false;
55
- if (isPlatformBrowser(this.platformId)) {
56
- window.addEventListener('resize', this.documentSizeChanged.bind(this), { passive: true });
57
- this.isBrowser = true;
58
- }
59
- }
60
- /**
61
- * Get window height
62
- */
63
- getDocumentHeight() {
64
- return this.isBrowser ? document.body.clientHeight : 1200;
65
- }
66
- /**
67
- * Get window width
68
- */
69
- getDocumentWidth() {
70
- return this.isBrowser ? document.body.clientWidth : 1200;
71
- }
72
- /**
73
- * Get window height
74
- */
75
- getWindowHeight() {
76
- return this.isBrowser ? window.innerHeight : 1200;
77
- }
78
- /**
79
- * Get window width
80
- */
81
- getWindowWidth() {
82
- return this.isBrowser ? window.innerWidth : 1200;
83
- }
84
- /**
85
- * Returns the current viewport MQ as string
86
- * @returns string
87
- */
88
- getCurrentViewPort() {
89
- const currentWidth = this.isBrowser ? document.body.clientWidth : 1200;
90
- this.currentViewport = this.convertWidthToMediaQuery(currentWidth);
91
- return this.currentViewport;
92
- }
93
- /**
94
- * Returns the current viewport MQ as string
95
- * @returns string
96
- */
97
- getCurrentViewPortNumber() {
98
- return this.isBrowser ? document.body.clientWidth : 1200;
99
- }
100
- /**
101
- * Provides mq´s as string
102
- */
103
- getViewportChangedObserver() {
104
- return this.viewportChangedSubscriber.asObservable();
105
- }
106
- /**
107
- * Provides the current window width as number
108
- */
109
- getViewportResizedObserver() {
110
- return this.viewportResizedSubscriber.asObservable();
111
- }
112
- scrollToElementId(el, alignCenter = false) {
113
- if (this.isBrowser) {
114
- this.scrollToElement(document.querySelector('#' + el), alignCenter);
115
- }
116
- }
117
- /**
118
- * Helper function that scrolls to the given markup element.
119
- * @param el - nativeElement from markup
120
- * @param alignCenter - defines if the element needs to be centered on window
121
- */
122
- scrollToElement(el, alignCenter = false) {
123
- if (this.isBrowser) {
124
- let extraScrollTop = 0;
125
- if (alignCenter) {
126
- extraScrollTop = (window.innerHeight - el.clientHeight) / 2;
127
- }
128
- let offsetLeft = 0;
129
- let offsetTop = 0;
130
- let elTemp = el;
131
- while (elTemp) {
132
- offsetLeft += elTemp.offsetLeft;
133
- offsetTop += elTemp.offsetTop;
134
- elTemp = elTemp.parentElement ? elTemp.parentElement : null;
135
- }
136
- window.scrollTo({ left: offsetLeft, top: offsetTop - extraScrollTop, behavior: 'smooth' });
137
- }
138
- }
139
- /**
140
- * Scroll to the top position
141
- * @param top - top position value
142
- */
143
- scrollTop(top) {
144
- if (this.isBrowser) {
145
- window.scrollTo({ left: 0, top: top, behavior: 'smooth' });
146
- }
147
- }
148
- isPortrait() {
149
- if (this.isBrowser)
150
- return window.innerHeight > window.innerWidth;
151
- else
152
- return;
153
- }
154
- isLandscape() {
155
- if (this.isBrowser) {
156
- const isLandscape = window.orientation === 90 || window.orientation === -90;
157
- return isLandscape;
158
- }
159
- else {
160
- return;
161
- }
162
- }
163
- isMobile() {
164
- return this.getCurrentViewPortNumber() < this.viewports[2].low;
165
- }
166
- calculateFullscreenElementsheight(id, defaultheight, extra) {
167
- if (!this.isBrowser || this.isMobile()) {
168
- return defaultheight;
169
- }
170
- else {
171
- const map = this.document.getElementById(id);
172
- const footer = this.document.getElementsByTagName('footer')[0];
173
- if (map && footer) {
174
- return `${window.innerHeight - map.offsetTop - footer.offsetHeight - extra}px`;
175
- }
176
- else {
177
- console.warn('could not calculate map height');
178
- return defaultheight;
179
- }
180
- }
181
- }
182
- /**
183
- * If viewport changed
184
- * @event
185
- */
186
- documentSizeChanged(event) {
187
- const currentWindowWidth = event.target.innerWidth;
188
- // inform who´s interested
189
- this.viewportResizedSubscriber.next(currentWindowWidth);
190
- if (currentWindowWidth > 0) {
191
- for (const mqs of this.viewports) {
192
- if (currentWindowWidth > mqs.high) {
193
- continue;
194
- }
195
- else if ((currentWindowWidth >= mqs.low || currentWindowWidth <= mqs.high) &&
196
- this.currentViewport !== mqs.name) {
197
- this.currentViewport = mqs.name;
198
- // inform who´s interested
199
- this.viewportChangedSubscriber.next(mqs.name);
200
- break;
201
- }
202
- else if (this.currentViewport === mqs.name) {
203
- break;
204
- }
205
- else {
206
- console.error('ERROR');
207
- }
208
- }
209
- }
210
- }
211
- /**
212
- * Get the Media Query for the given width
213
- * @param width Width to get the according MQ for
214
- */
215
- convertWidthToMediaQuery(width) {
216
- let currentViewport = '';
217
- for (const mqs of this.viewports) {
218
- if (width <= mqs.high && width >= mqs.low) {
219
- currentViewport = mqs.name;
220
- break;
221
- }
222
- }
223
- return currentViewport;
224
- }
225
- ngOnDestroy() {
226
- if (this.isBrowser) {
227
- window.removeEventListener('resize', this.documentSizeChanged);
228
- }
229
- }
230
- }
231
- ViewportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ViewportService, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
232
- ViewportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ViewportService });
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ViewportService, decorators: [{
234
- type: Injectable
235
- }], ctorParameters: function () { return [{ type: Object, decorators: [{
236
- type: Inject,
237
- args: [PLATFORM_ID]
238
- }] }, { type: Document, decorators: [{
239
- type: Inject,
240
- args: [DOCUMENT]
241
- }] }]; } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi9zZXJ2aWNlcy92aWV3cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU0zQzs7R0FFRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBNEN4QixZQUF5QyxVQUFrQixFQUEyQixRQUFrQjtRQUEvRCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQTJCLGFBQVEsR0FBUixRQUFRLENBQVU7UUEzQ3hGLGNBQVMsR0FBRztZQUN4QjtnQkFDSSxJQUFJLEVBQUUsSUFBSTtnQkFDVixHQUFHLEVBQUUsR0FBRztnQkFDUixJQUFJLEVBQUUsR0FBRzthQUNaO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsSUFBSSxFQUFFLElBQUk7YUFDYjtZQUNEO2dCQUNJLElBQUksRUFBRSxHQUFHO2dCQUNULEdBQUcsRUFBRSxJQUFJO2dCQUNULElBQUksRUFBRSxJQUFJO2FBQ2I7WUFDRDtnQkFDSSxJQUFJLEVBQUUsR0FBRztnQkFDVCxHQUFHLEVBQUUsSUFBSTtnQkFDVCxJQUFJLEVBQUUsSUFBSTthQUNiO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLElBQUk7Z0JBQ1YsR0FBRyxFQUFFLElBQUk7Z0JBQ1QsSUFBSSxFQUFFLElBQUk7YUFDYjtZQUNEO2dCQUNJLElBQUksRUFBRSxLQUFLO2dCQUNYLEdBQUcsRUFBRSxJQUFJO2dC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TTsyQkFBQyxXQUFXOzhCQUFpRSxRQUFROzBCQUExQyxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGNvcHlyaWdodCBLTVMgR21iSFxyXG4gKi9cclxuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTnVsbEFibGUgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IGFueTtcclxuZGVjbGFyZSBjb25zdCBkb2N1bWVudDogYW55O1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgdG8gZ2V0IHZpZXdwb3J0XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBWaWV3cG9ydFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHZpZXdwb3J0cyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICd4cycsXHJcbiAgICAgICAgICAgIGxvdzogMzYwLFxyXG4gICAgICAgICAgICBoaWdoOiA5OTAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdzJyxcclxuICAgICAgICAgICAgbG93OiA5OTEsXHJcbiAgICAgICAgICAgIGhpZ2g6IDEwMjQsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdtJyxcclxuICAgICAgICAgICAgbG93OiAxMDI1LFxyXG4gICAgICAgICAgICBoaWdoOiAxMjAwLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAnbCcsXHJcbiAgICAgICAgICAgIGxvdzogMTIwMSxcclxuICAgICAgICAgICAgaGlnaDogMTQwMCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ3hsJyxcclxuICAgICAgICAgICAgbG93OiAxNDAxLFxyXG4gICAgICAgICAgICBoaWdoOiAxNjAwLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAneHhsJyxcclxuICAgICAgICAgICAgbG93OiAxNjAxLFxyXG4gICAgICAgICAgICBoaWdoOiAxOTIwLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAneHh4bCcsXHJcbiAgICAgICAgICAgIGxvdzogMTkyMSxcclxuICAgICAgICAgICAgaGlnaDogOTk5OTksXHJcbiAgICAgICAgfSxcclxuICAgIF07XHJcblxyXG4gICAgcHJpdmF0ZSB2aWV3cG9ydENoYW5nZWRTdWJzY3JpYmVyOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgICBwcml2YXRlIHZpZXdwb3J0UmVzaXplZFN1YnNjcmliZXI6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICAgIHByaXZhdGUgY3VycmVudFZpZXdwb3J0ITogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBpc0Jyb3dzZXIgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCwgQEluamVjdChET0NVTUVOVCkgcHVibGljIGRvY3VtZW50OiBEb2N1bWVudCkge1xyXG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmRvY3VtZW50U2l6ZUNoYW5nZWQuYmluZCh0aGlzKSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmlzQnJvd3NlciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHdpbmRvdyBoZWlnaHRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERvY3VtZW50SGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNCcm93c2VyID8gZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgOiAxMjAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHdpbmRvdyB3aWR0aFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RG9jdW1lbnRXaWR0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzQnJvd3NlciA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiAxMjAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHdpbmRvdyBoZWlnaHRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFdpbmRvd0hlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzQnJvd3NlciA/IHdpbmRvdy5pbm5lckhlaWdodCA6IDEyMDA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgd2luZG93IHdpZHRoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRXaW5kb3dXaWR0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzQnJvd3NlciA/IHdpbmRvdy5pbm5lcldpZHRoIDogMTIwMDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmlld3BvcnQgTVEgYXMgc3RyaW5nXHJcbiAgICAgKiBAcmV0dXJucyBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEN1cnJlbnRWaWV3UG9ydCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRXaWR0aDogbnVtYmVyID0gdGhpcy5pc0Jyb3dzZXIgPyBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIDogMTIwMDtcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3cG9ydCA9IHRoaXMuY29udmVydFdpZHRoVG9NZWRpYVF1ZXJ5KGN1cnJlbnRXaWR0aCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRWaWV3cG9ydDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdmlld3BvcnQgTVEgYXMgc3RyaW5nXHJcbiAgICAgKiBAcmV0dXJucyBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEN1cnJlbnRWaWV3UG9ydE51bWJlcigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzQnJvd3NlciA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiAxMjAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvdmlkZXMgbXHCtHMgYXMgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRWaWV3cG9ydENoYW5nZWRPYnNlcnZlcigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdwb3J0Q2hhbmdlZFN1YnNjcmliZXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCB3aW5kb3cgd2lkdGggYXMgbnVtYmVyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRWaWV3cG9ydFJlc2l6ZWRPYnNlcnZlcigpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdwb3J0UmVzaXplZFN1YnNjcmliZXIuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNjcm9sbFRvRWxlbWVudElkKGVsOiBzdHJpbmcsIGFsaWduQ2VudGVyID0gZmFsc2UpIHtcclxuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0VsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignIycgKyBlbCksIGFsaWduQ2VudGVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBzY3JvbGxzIHRvIHRoZSBnaXZlbiBtYXJrdXAgZWxlbWVudC5cclxuICAgICAqIEBwYXJhbSBlbCAtIG5hdGl2ZUVsZW1lbnQgZnJvbSBtYXJrdXBcclxuICAgICAqIEBwYXJhbSBhbGlnbkNlbnRlciAtIGRlZmluZXMgaWYgdGhlIGVsZW1lbnQgbmVlZHMgdG8gYmUgY2VudGVyZWQgb24gd2luZG93XHJcbiAgICAgKi9cclxuXHJcbiAgICBwdWJsaWMgc2Nyb2xsVG9FbGVtZW50KGVsOiBIVE1MRWxlbWVudCwgYWxpZ25DZW50ZXIgPSBmYWxzZSkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xyXG4gICAgICAgICAgICBsZXQgZXh0cmFTY3JvbGxUb3AgPSAwO1xyXG5cclxuICAgICAgICAgICAgaWYgKGFsaWduQ2VudGVyKSB7XHJcbiAgICAgICAgICAgICAgICBleHRyYVNjcm9sbFRvcCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgLSBlbC5jbGllbnRIZWlnaHQpIC8gMjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IG9mZnNldExlZnQgPSAwO1xyXG4gICAgICAgICAgICBsZXQgb2Zmc2V0VG9wID0gMDtcclxuXHJcbiAgICAgICAgICAgIGxldCBlbFRlbXA6IE51bGxBYmxlPEhUTUxFbGVtZW50PiA9IGVsO1xyXG5cclxuICAgICAgICAgICAgd2hpbGUgKGVsVGVtcCkge1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0TGVmdCArPSBlbFRlbXAub2Zmc2V0TGVmdDtcclxuICAgICAgICAgICAgICAgIG9mZnNldFRvcCArPSBlbFRlbXAub2Zmc2V0VG9wO1xyXG4gICAgICAgICAgICAgICAgZWxUZW1wID0gZWxUZW1wLnBhcmVudEVsZW1lbnQgPyBlbFRlbXAucGFyZW50RWxlbWVudCA6IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IGxlZnQ6IG9mZnNldExlZnQsIHRvcDogb2Zmc2V0VG9wIC0gZXh0cmFTY3JvbGxUb3AsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY3JvbGwgdG8gdGhlIHRvcCBwb3NpdGlvblxyXG4gICAgICogQHBhcmFtIHRvcCAtIHRvcCBwb3NpdGlvbiB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2Nyb2xsVG9wKHRvcDogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IGxlZnQ6IDAsIHRvcDogdG9wLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1BvcnRyYWl0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzQnJvd3NlcikgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodCA+IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgICAgIGVsc2UgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc0xhbmRzY2FwZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgY29uc3QgaXNMYW5kc2NhcGUgPSB3aW5kb3cub3JpZW50YXRpb24gPT09IDkwIHx8IHdpbmRvdy5vcmllbnRhdGlvbiA9PT0gLTkwO1xyXG4gICAgICAgICAgICByZXR1cm4gaXNMYW5kc2NhcGU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNNb2JpbGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q3VycmVudFZpZXdQb3J0TnVtYmVyKCkgPCB0aGlzLnZpZXdwb3J0c1syXS5sb3c7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNhbGN1bGF0ZUZ1bGxzY3JlZW5FbGVtZW50c2hlaWdodChpZDogc3RyaW5nLCBkZWZhdWx0aGVpZ2h0OiBzdHJpbmcsIGV4dHJhOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNCcm93c2VyIHx8IHRoaXMuaXNNb2JpbGUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdGhlaWdodDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBtYXAgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgICAgICAgICAgY29uc3QgZm9vdGVyID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZm9vdGVyJylbMF07XHJcbiAgICAgICAgICAgIGlmIChtYXAgJiYgZm9vdGVyKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7d2luZG93LmlubmVySGVpZ2h0IC0gbWFwLm9mZnNldFRvcCAtIGZvb3Rlci5vZmZzZXRIZWlnaHQgLSBleHRyYX1weGA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ2NvdWxkIG5vdCBjYWxjdWxhdGUgbWFwIGhlaWdodCcpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRoZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB2aWV3cG9ydCBjaGFuZ2VkXHJcbiAgICAgKiBAZXZlbnRcclxuICAgICAqL1xyXG5cclxuICAgIHByaXZhdGUgZG9jdW1lbnRTaXplQ2hhbmdlZChldmVudDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFdpbmRvd1dpZHRoOiBudW1iZXIgPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcclxuICAgICAgICAvLyBpbmZvcm0gd2hvwrRzIGludGVyZXN0ZWRcclxuICAgICAgICB0aGlzLnZpZXdwb3J0UmVzaXplZFN1YnNjcmliZXIubmV4dChjdXJyZW50V2luZG93V2lkdGgpO1xyXG5cclxuICAgICAgICBpZiAoY3VycmVudFdpbmRvd1dpZHRoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1xcyBvZiB0aGlzLnZpZXdwb3J0cykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRXaW5kb3dXaWR0aCA+IG1xcy5oaWdoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChjdXJyZW50V2luZG93V2lkdGggPj0gbXFzLmxvdyB8fCBjdXJyZW50V2luZG93V2lkdGggPD0gbXFzLmhpZ2gpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50Vmlld3BvcnQgIT09IG1xcy5uYW1lXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRWaWV3cG9ydCA9IG1xcy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGluZm9ybSB3aG/CtHMgaW50ZXJlc3RlZFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlld3BvcnRDaGFuZ2VkU3Vic2NyaWJlci5uZXh0KG1xcy5uYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50Vmlld3BvcnQgPT09IG1xcy5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0VSUk9SJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIE1lZGlhIFF1ZXJ5IGZvciB0aGUgZ2l2ZW4gd2lkdGhcclxuICAgICAqIEBwYXJhbSB3aWR0aCBXaWR0aCB0byBnZXQgdGhlIGFjY29yZGluZyBNUSBmb3JcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBjb252ZXJ0V2lkdGhUb01lZGlhUXVlcnkod2lkdGg6IG51bWJlcikge1xyXG4gICAgICAgIGxldCBjdXJyZW50Vmlld3BvcnQgPSAnJztcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBtcXMgb2YgdGhpcy52aWV3cG9ydHMpIHtcclxuICAgICAgICAgICAgaWYgKHdpZHRoIDw9IG1xcy5oaWdoICYmIHdpZHRoID49IG1xcy5sb3cpIHtcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRWaWV3cG9ydCA9IG1xcy5uYW1lO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjdXJyZW50Vmlld3BvcnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmRvY3VtZW50U2l6ZUNoYW5nZWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,52 +0,0 @@
1
- /**
2
- * @copyright KMS GmbH
3
- */
4
- import { Component, HostListener, Inject, PLATFORM_ID } from '@angular/core';
5
- import { isPlatformBrowser } from '@angular/common';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../icon/icon.component";
8
- import * as i2 from "@angular/common";
9
- export class BackToTopComponent {
10
- constructor(platformId) {
11
- this.platformId = platformId;
12
- }
13
- onWindowScroll() {
14
- if (isPlatformBrowser(this.platformId)) {
15
- if (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop > 100) {
16
- this.windowScrolled = true;
17
- }
18
- else if ((this.windowScrolled && window.pageYOffset) ||
19
- document.documentElement.scrollTop ||
20
- document.body.scrollTop < 10) {
21
- this.windowScrolled = false;
22
- }
23
- }
24
- }
25
- scrollToTop() {
26
- if (isPlatformBrowser(this.platformId)) {
27
- (function smoothscroll() {
28
- const currentScroll = document.documentElement.scrollTop || document.body.scrollTop;
29
- if (currentScroll > 0) {
30
- window.requestAnimationFrame(smoothscroll);
31
- window.scrollTo(0, currentScroll - currentScroll / 8);
32
- }
33
- })();
34
- }
35
- }
36
- }
37
- BackToTopComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BackToTopComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });
38
- BackToTopComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: BackToTopComponent, selector: "kms-back-to-top", host: { listeners: { "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<div class=\"scrollToTop\"\r\n [ngClass]=\"{'show': windowScrolled}\"\r\n (click)=\"scrollToTop()\">\r\n <div class=\"scrollToTop-inner\">\r\n <kms-icon icon=\"floating_button_clear\" iconClass=\"color-white\"></kms-icon>\r\n </div>\r\n</div>", components: [{ type: i1.IconComponent, selector: "kms-icon", inputs: ["icon", "iconClass", "iconStyle", "iconSize", "size", "dontUseSprite"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BackToTopComponent, decorators: [{
40
- type: Component,
41
- args: [{
42
- selector: 'kms-back-to-top',
43
- templateUrl: './back-to-top.component.html',
44
- }]
45
- }], ctorParameters: function () { return [{ type: Object, decorators: [{
46
- type: Inject,
47
- args: [PLATFORM_ID]
48
- }] }]; }, propDecorators: { onWindowScroll: [{
49
- type: HostListener,
50
- args: ['window:scroll', []]
51
- }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay10by10b3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva21zLW5neC11aS1wcmVzZW50YXRpb25hbC9zcmMvbGliL3VpL2JhY2stdG8tdG9wL2JhY2stdG8tdG9wLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9iYWNrLXRvLXRvcC9iYWNrLXRvLXRvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFNcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUczQixZQUF3QyxVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO0lBQUcsQ0FBQztJQUc5RCxjQUFjO1FBQ1YsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDM0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7YUFDOUI7aUJBQU0sSUFDSCxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDM0MsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTO2dCQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLEVBQzlCO2dCQUNFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2FBQy9CO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BDLENBQUMsU0FBUyxZQUFZO2dCQUNsQixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDcEYsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFO29CQUNuQixNQUFNLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGFBQWEsR0FBRyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3pEO1lBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNSO0lBQ0wsQ0FBQzs7Z0hBOUJRLGtCQUFrQixrQkFHUCxXQUFXO29HQUh0QixrQkFBa0IscUhDWC9CLG1SQU1NOzRGREtPLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsOEJBQThCO2lCQUM5QzswREFJdUQsTUFBTTswQkFBN0MsTUFBTTsyQkFBQyxXQUFXOzRDQUcvQixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGNvcHlyaWdodCBLTVMgR21iSFxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdrbXMtYmFjay10by10b3AnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhY2stdG8tdG9wLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhY2tUb1RvcENvbXBvbmVudCB7XHJcbiAgICB3aW5kb3dTY3JvbGxlZD86IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHVibGljIHBsYXRmb3JtSWQ6IE9iamVjdCkge31cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pXHJcbiAgICBvbldpbmRvd1Njcm9sbCgpIHtcclxuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICAgICAgICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPiAxMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud2luZG93U2Nyb2xsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgICAgKHRoaXMud2luZG93U2Nyb2xsZWQgJiYgd2luZG93LnBhZ2VZT2Zmc2V0KSB8fFxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fFxyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPCAxMFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud2luZG93U2Nyb2xsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzY3JvbGxUb1RvcCgpIHtcclxuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICAgICAgICAoZnVuY3Rpb24gc21vb3Roc2Nyb2xsKCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNjcm9sbCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFNjcm9sbCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNtb290aHNjcm9sbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIGN1cnJlbnRTY3JvbGwgLSBjdXJyZW50U2Nyb2xsIC8gOCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzY3JvbGxUb1RvcFwiXHJcbiAgICBbbmdDbGFzc109XCJ7J3Nob3cnOiB3aW5kb3dTY3JvbGxlZH1cIlxyXG4gICAgKGNsaWNrKT1cInNjcm9sbFRvVG9wKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsVG9Ub3AtaW5uZXJcIj5cclxuICAgICAgICAgICAgPGttcy1pY29uIGljb249XCJmbG9hdGluZ19idXR0b25fY2xlYXJcIiBpY29uQ2xhc3M9XCJjb2xvci13aGl0ZVwiPjwva21zLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -1,62 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { SubSink } from 'subsink';
3
- import { GenericDialogComponent } from '../generic-dialog/generic-dialog.component';
4
- import { ButtonResponseType } from './button-response-types.enum';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/dialog";
7
- import * as i2 from "@angular/material/button";
8
- export class ButtonWithConfirmDialogComponent {
9
- // eslint-disable-next-line @typescript-eslint/no-empty-function
10
- constructor(dialog) {
11
- this.dialog = dialog;
12
- // Outputs when dialogue was closed. Returns true, if yes was clicked, false otherwise
13
- this.onConfirmClosed = new EventEmitter();
14
- this.subs = new SubSink();
15
- }
16
- // eslint-disable-next-line @typescript-eslint/no-empty-function
17
- ngOnInit() { }
18
- start() {
19
- const data = {
20
- title: this.confirmTitle,
21
- buttons: {
22
- primary: this.confirmTextYes,
23
- secondary: this.confirmTextNo,
24
- }
25
- };
26
- const dialogRef = this.dialog.open(GenericDialogComponent, {
27
- data: data,
28
- });
29
- this.subs.sink = dialogRef.afterClosed().subscribe(result => {
30
- if (result === ButtonResponseType.primary) {
31
- this.onConfirmClosed.emit(true);
32
- }
33
- else {
34
- this.onConfirmClosed.emit(false);
35
- }
36
- dialogRef.close();
37
- });
38
- }
39
- }
40
- ButtonWithConfirmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ButtonWithConfirmDialogComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
41
- ButtonWithConfirmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ButtonWithConfirmDialogComponent, selector: "kms-button-with-confirm-dialog", inputs: { disabled: "disabled", buttonText: "buttonText", confirmTitle: "confirmTitle", confirmTextYes: "confirmTextYes", confirmTextNo: "confirmTextNo" }, outputs: { onConfirmClosed: "onConfirmClosed" }, ngImport: i0, template: "<button\r\n type=\"button\"\r\n (click)=\"start()\"\r\n mat-stroked-button\r\n [disabled]=\"disabled\"\r\n>\r\n {{ buttonText }}\r\n</button>\r\n", styles: [""], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ButtonWithConfirmDialogComponent, decorators: [{
43
- type: Component,
44
- args: [{
45
- selector: 'kms-button-with-confirm-dialog',
46
- templateUrl: './button-with-confirm-dialog.component.html',
47
- styleUrls: ['./button-with-confirm-dialog.component.scss'],
48
- }]
49
- }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { disabled: [{
50
- type: Input
51
- }], buttonText: [{
52
- type: Input
53
- }], confirmTitle: [{
54
- type: Input
55
- }], confirmTextYes: [{
56
- type: Input
57
- }], confirmTextNo: [{
58
- type: Input
59
- }], onConfirmClosed: [{
60
- type: Output
61
- }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXdpdGgtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva21zLW5neC11aS1wcmVzZW50YXRpb25hbC9zcmMvbGliL3VpL2J1dHRvbi13aXRoLWNvbmZpcm0tZGlhbG9nL2J1dHRvbi13aXRoLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy9idXR0b24td2l0aC1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFRbEUsTUFBTSxPQUFPLGdDQUFnQztJQVl6QyxnRUFBZ0U7SUFDaEUsWUFDVyxNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBUDVCLHNGQUFzRjtRQUM1RSxvQkFBZSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlELFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSzFCLENBQUM7SUFFSixnRUFBZ0U7SUFDaEUsUUFBUSxLQUFJLENBQUM7SUFFYixLQUFLO1FBQ0QsTUFBTSxJQUFJLEdBQWU7WUFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLE9BQU8sRUFBQztnQkFDSixPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWM7Z0JBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNoQztTQUNKLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUN2RCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxNQUFNLEtBQUssa0JBQWtCLENBQUMsT0FBTyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQztpQkFBSTtnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQztZQUNELFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzhIQXhDUSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQyxtUkNiN0Msa0tBUUE7NEZES2EsZ0NBQWdDO2tCQUw1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLFdBQVcsRUFBRSw2Q0FBNkM7b0JBQzFELFNBQVMsRUFBRSxDQUFDLDZDQUE2QyxDQUFDO2lCQUM3RDtnR0FFWSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3ViU2luayB9IGZyb20gJ3N1YnNpbmsnO1xyXG5pbXBvcnQgeyBOdWxsQWJsZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEdlbmVyaWNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmljLWRpYWxvZy9nZW5lcmljLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25SZXNwb25zZVR5cGUgfSBmcm9tICcuL2J1dHRvbi1yZXNwb25zZS10eXBlcy5lbnVtJztcclxuaW1wb3J0IHsgRGlhbG9nRGF0YSB9IGZyb20gJy4vZGlhbG9nLWRhdGEubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2ttcy1idXR0b24td2l0aC1jb25maXJtLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLXdpdGgtY29uZmlybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLXdpdGgtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1dHRvbldpdGhDb25maXJtRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBOdWxsQWJsZTxib29sZWFuPjtcclxuICAgIEBJbnB1dCgpIGJ1dHRvblRleHQ6IE51bGxBYmxlPHN0cmluZz47XHJcbiAgICBASW5wdXQoKSBjb25maXJtVGl0bGU6IE51bGxBYmxlPHN0cmluZz47XHJcbiAgICBASW5wdXQoKSBjb25maXJtVGV4dFllczogTnVsbEFibGU8c3RyaW5nPjtcclxuICAgIEBJbnB1dCgpIGNvbmZpcm1UZXh0Tm86IE51bGxBYmxlPHN0cmluZz47XHJcblxyXG4gICAgLy8gT3V0cHV0cyB3aGVuIGRpYWxvZ3VlIHdhcyBjbG9zZWQuIFJldHVybnMgdHJ1ZSwgaWYgeWVzIHdhcyBjbGlja2VkLCBmYWxzZSBvdGhlcndpc2VcclxuICAgIEBPdXRwdXQoKSBvbkNvbmZpcm1DbG9zZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBwcml2YXRlIHN1YnMgPSBuZXcgU3ViU2luaygpO1xyXG4gICAgXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICApIHt9XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxyXG4gICAgbmdPbkluaXQoKSB7fVxyXG5cclxuICAgIHN0YXJ0KCl7XHJcbiAgICAgICAgY29uc3QgZGF0YTogRGlhbG9nRGF0YSA9IHtcclxuICAgICAgICAgICAgdGl0bGU6IHRoaXMuY29uZmlybVRpdGxlLFxyXG4gICAgICAgICAgICBidXR0b25zOntcclxuICAgICAgICAgICAgICAgIHByaW1hcnk6IHRoaXMuY29uZmlybVRleHRZZXMsXHJcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnk6IHRoaXMuY29uZmlybVRleHRObyxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihHZW5lcmljRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vicy5zaW5rID0gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IEJ1dHRvblJlc3BvbnNlVHlwZS5wcmltYXJ5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ29uZmlybUNsb3NlZC5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIHRoaXMub25Db25maXJtQ2xvc2VkLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgKGNsaWNrKT1cInN0YXJ0KClcIlxyXG4gICAgbWF0LXN0cm9rZWQtYnV0dG9uXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4+XHJcbiAgICB7eyBidXR0b25UZXh0IH19XHJcbjwvYnV0dG9uPlxyXG4iXX0=
@@ -1,76 +0,0 @@
1
- /*!
2
- * @copyright FLYACTS GmbH 2019
3
- */
4
- import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';
5
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
- import { ActionsParentComponent } from '../../parent-components/actions.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/checkbox";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "@angular/common";
11
- export class CheckboxComponent extends ActionsParentComponent {
12
- constructor() {
13
- super();
14
- /**
15
- * Internal description name. All checkboxes with the same name belong to the same group.
16
- * User can select none, one or all checkboxes with the same name.
17
- */
18
- this.name = '';
19
- this.select = new EventEmitter();
20
- // eslint-disable-next-line @typescript-eslint/no-empty-function
21
- this.onChange = () => { };
22
- // eslint-disable-next-line @typescript-eslint/no-empty-function
23
- this.onTouch = () => { };
24
- }
25
- selectAction(id) {
26
- this.select.emit(id);
27
- this.checked = !this.checked;
28
- }
29
- get value() {
30
- return this.checked;
31
- }
32
- set value(value) {
33
- this.checked = value;
34
- this.onChange(value);
35
- this.onTouch(value);
36
- }
37
- writeValue(value) {
38
- this.value = value;
39
- }
40
- registerOnChange(fn) {
41
- this.onChange = fn;
42
- }
43
- registerOnTouched(fn) {
44
- this.onTouch = fn;
45
- }
46
- }
47
- CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CheckboxComponent, selector: "kms-checkbox", inputs: { infoText: "infoText", name: "name" }, outputs: { select: "select" }, providers: [
49
- {
50
- provide: NG_VALUE_ACCESSOR,
51
- useExisting: forwardRef(() => CheckboxComponent),
52
- multi: true,
53
- },
54
- ], usesInheritance: true, ngImport: i0, template: "<!-- <label class=\"wrapper ui-copy-text\"\r\n [ngClass]=\"{'disabled' : disabled}\">{{label}}\r\n <input type=\"checkbox\" \r\n [checked]=\"checked\"\r\n [value]=\"value\"\r\n [name]=\"name\"\r\n [disabled]=\"disabled\"\r\n (change)=\"selectAction($event)\">\r\n\r\n</label> -->\r\n<mat-checkbox class=\"example-margin\" [disabled]=\"disabled\" [name]=\"name\" [(ngModel)]=\"checked\"></mat-checkbox>\r\n<span *ngIf=\"infoText && infoText.length > 0\" \r\n class=\"\"\r\n [ngClass]=\"{'disabled' : disabled}\">{{infoText}}\r\n</span>", styles: [""], components: [{ type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CheckboxComponent, decorators: [{
56
- type: Component,
57
- args: [{
58
- selector: 'kms-checkbox',
59
- templateUrl: './checkbox.component.html',
60
- styleUrls: ['./checkbox.component.scss'],
61
- providers: [
62
- {
63
- provide: NG_VALUE_ACCESSOR,
64
- useExisting: forwardRef(() => CheckboxComponent),
65
- multi: true,
66
- },
67
- ],
68
- }]
69
- }], ctorParameters: function () { return []; }, propDecorators: { infoText: [{
70
- type: Input
71
- }], name: [{
72
- type: Input
73
- }], select: [{
74
- type: Output
75
- }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva21zLW5neC11aS1wcmVzZW50YXRpb25hbC9zcmMvbGliL3VpL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7QUFlbkYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHNCQUFzQjtJQW9CekQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWJaOzs7V0FHRztRQUNNLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVV0QyxnRUFBZ0U7UUFDaEUsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV6QixnRUFBZ0U7UUFDaEUsWUFBTyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQU54QixDQUFDO0lBUEcsWUFBWSxDQUFDLEVBQVU7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQVlELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBYztRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OytHQWxEUSxpQkFBaUI7bUdBQWpCLGlCQUFpQixzSEFSZjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJO1NBQ2Q7S0FDSixpRENyQkwsNmxCQWNPOzRGRFNNLGlCQUFpQjtrQkFaN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3hDLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0o7MEVBT1ksUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXHJcbiAqIEBjb3B5cmlnaHQgRkxZQUNUUyBHbWJIIDIwMTlcclxuICovXHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE51bGxBYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuXHJcbmltcG9ydCB7IEFjdGlvbnNQYXJlbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXJlbnQtY29tcG9uZW50cy9hY3Rpb25zLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2ttcy1jaGVja2JveCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94Q29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCBleHRlbmRzIEFjdGlvbnNQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkaXRpb25hbCBkZXNjcmlwdGlvbiB0ZXh0IHRoYXQgd2lsbCBiZSBzaG93biBiZWxvdyB0aGUgY2hlY2tib3guXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIGluZm9UZXh0OiBOdWxsQWJsZTxzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJuYWwgZGVzY3JpcHRpb24gbmFtZS4gQWxsIGNoZWNrYm94ZXMgd2l0aCB0aGUgc2FtZSBuYW1lIGJlbG9uZyB0byB0aGUgc2FtZSBncm91cC5cclxuICAgICAqIFVzZXIgY2FuIHNlbGVjdCBub25lLCBvbmUgb3IgYWxsIGNoZWNrYm94ZXMgd2l0aCB0aGUgc2FtZSBuYW1lLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBuYW1lID0gJyc7XHJcblxyXG4gICAgQE91dHB1dCgpIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgICAgICBzZWxlY3RBY3Rpb24oaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0LmVtaXQoaWQpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZCA9ICF0aGlzLmNoZWNrZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxyXG4gICAgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gICAgZ2V0IHZhbHVlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tIDxsYWJlbCBjbGFzcz1cIndyYXBwZXIgdWktY29weS10ZXh0XCJcclxuICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnIDogZGlzYWJsZWR9XCI+e3tsYWJlbH19XHJcbiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgXHJcbiAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXHJcbiAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0QWN0aW9uKCRldmVudClcIj5cclxuXHJcbjwvbGFiZWw+IC0tPlxyXG48bWF0LWNoZWNrYm94IGNsYXNzPVwiZXhhbXBsZS1tYXJnaW5cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbbmFtZV09XCJuYW1lXCIgWyhuZ01vZGVsKV09XCJjaGVja2VkXCI+PC9tYXQtY2hlY2tib3g+XHJcbjxzcGFuICpuZ0lmPVwiaW5mb1RleHQgJiYgaW5mb1RleHQubGVuZ3RoID4gMFwiIFxyXG4gICAgICBjbGFzcz1cIlwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnIDogZGlzYWJsZWR9XCI+e3tpbmZvVGV4dH19XHJcbjwvc3Bhbj4iXX0=
@@ -1,81 +0,0 @@
1
- import { Component, forwardRef, Input } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { FormControlParentComponent } from './../../parent-components/form-control.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "@angular/material/form-field";
7
- import * as i3 from "../tooltip-icon/tooltip-icon.component";
8
- import * as i4 from "@angular/common";
9
- import * as i5 from "@angular/material/input";
10
- export class ColorInputComponent extends FormControlParentComponent {
11
- constructor(formBuilder, renderer) {
12
- super(formBuilder, renderer);
13
- this.formBuilder = formBuilder;
14
- this.renderer = renderer;
15
- this.label = '';
16
- this.tooltipText = '';
17
- this.placeholder = '';
18
- }
19
- ngOnInit() {
20
- this.form = this.formBuilder.group({
21
- color: '',
22
- });
23
- super.ngOnInit();
24
- this.formInitialized = true;
25
- this.form.valueChanges.subscribe((value) => {
26
- this.internalValue = value.color;
27
- this.onChange(value.color);
28
- });
29
- }
30
- validate(_) {
31
- // TODO fix to validate complete form
32
- this.valid = this.matchesHex(this.form.value) ? null : false;
33
- return this.valid && {
34
- invalid: !this.valid
35
- };
36
- }
37
- matchesHex(match) {
38
- if (match) {
39
- const ret = match.match(/^#[0-9a-f]{6}$/i);
40
- this.valid = ret && ret.length > 0;
41
- return ret;
42
- }
43
- return false;
44
- }
45
- updateSelectedColor(value) {
46
- const color = value.target.value;
47
- this.value = color;
48
- this.internalValue = color;
49
- this.change(color);
50
- }
51
- }
52
- ColorInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ColorInputComponent, deps: [{ token: i1.FormBuilder }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
53
- ColorInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ColorInputComponent, selector: "kms-color-input", inputs: { label: "label", tooltipText: "tooltipText", placeholder: "placeholder" }, providers: [
54
- {
55
- provide: NG_VALUE_ACCESSOR,
56
- useExisting: forwardRef(() => ColorInputComponent),
57
- multi: true,
58
- },
59
- ], usesInheritance: true, ngImport: i0, template: "\r\n<form [formGroup]=\"form\" *ngIf=\"formInitialized\">\r\n <div>\r\n <mat-form-field class=\"colorInput\">\r\n <kms-tooltip-icon [tooltipText]=\"tooltipText\" *ngIf=\"tooltipText\"></kms-tooltip-icon>\r\n <mat-label>{{ label }}</mat-label>\r\n <input type=\"text\" [(ngModel)]=\"value\" matInput formControlName=\"color\" [placeholder]=\"placeholder\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\r\n <input type=\"color\" [value]=\"value && matchesHex(value) ? value : '#ffffff'\" (change)=\"updateSelectedColor($event)\" [ngClass]=\"{'my-inValid': !matchesHex(value)}\" />\r\n </mat-form-field>\r\n </div>\r\n</form>", styles: [""], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3.TooltipIconComponent, selector: "kms-tooltip-icon", inputs: ["tooltipTitle", "tooltipText", "tooltipLinkText", "tooltipLinkUrl", "placement", "delay"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ColorInputComponent, decorators: [{
61
- type: Component,
62
- args: [{
63
- selector: 'kms-color-input',
64
- templateUrl: './color-input.component.html',
65
- styleUrls: ['./color-input.component.scss'],
66
- providers: [
67
- {
68
- provide: NG_VALUE_ACCESSOR,
69
- useExisting: forwardRef(() => ColorInputComponent),
70
- multi: true,
71
- },
72
- ],
73
- }]
74
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.Renderer2 }]; }, propDecorators: { label: [{
75
- type: Input
76
- }], tooltipText: [{
77
- type: Input
78
- }], placeholder: [{
79
- type: Input
80
- }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva21zLW5neC11aS1wcmVzZW50YXRpb25hbC9zcmMvbGliL3VpL2NvbG9yLWlucHV0L2NvbG9yLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi91aS9jb2xvci1pbnB1dC9jb2xvci1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBa0QsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7Ozs7OztBQWM5RixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsMEJBQTBCO0lBTy9ELFlBQW1CLFdBQXdCLEVBQVMsUUFBbUI7UUFDbkUsS0FBSyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQURkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUw5RCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFLMUIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQy9CLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRTVCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUVQLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBYztRQUNuQixxQ0FBcUM7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSTtZQUNqQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSztTQUN2QixDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFjO1FBQ3JCLElBQUcsS0FBSyxFQUFDO1lBQ0wsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sR0FBRyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBVTtRQUMxQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O2lIQWpEUSxtQkFBbUI7cUdBQW5CLG1CQUFtQiw4SEFSakI7UUFDUDtZQUNJLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNsRCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osaURDZEwsc3JCQVVPOzRGRE1NLG1CQUFtQjtrQkFaL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDM0MsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjtpQkFDSjswSEFHWSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sUGFyZW50Q29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9wYXJlbnQtY29tcG9uZW50cy9mb3JtLWNvbnRyb2wuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdrbXMtY29sb3ItaW5wdXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvbG9yLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2xvcklucHV0Q29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2xvcklucHV0Q29tcG9uZW50IGV4dGVuZHMgRm9ybUNvbnRyb2xQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xyXG4gICAgQElucHV0KCkgdG9vbHRpcFRleHQgPSAnJztcclxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgICB2YWxpZDogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICAgICAgICBzdXBlcihmb3JtQnVpbGRlciwgcmVuZGVyZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgICAgICBjb2xvcjogJycsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmZvcm1Jbml0aWFsaXplZCA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB2YWx1ZS5jb2xvcjtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZS5jb2xvcik7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKF86IEZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgLy8gVE9ETyBmaXggdG8gdmFsaWRhdGUgY29tcGxldGUgZm9ybVxyXG4gICAgICAgIHRoaXMudmFsaWQgPSB0aGlzLm1hdGNoZXNIZXgodGhpcy5mb3JtLnZhbHVlKSA/IG51bGwgOiBmYWxzZTtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZCAmJiB7XHJcbiAgICAgICAgICAgIGludmFsaWQ6ICF0aGlzLnZhbGlkXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBtYXRjaGVzSGV4KG1hdGNoPzogc3RyaW5nKXtcclxuICAgICAgICBpZihtYXRjaCl7XHJcbiAgICAgICAgICAgIGNvbnN0IHJldCA9IG1hdGNoLm1hdGNoKC9eI1swLTlhLWZdezZ9JC9pKTtcclxuICAgICAgICAgICAgdGhpcy52YWxpZCA9IHJldCAmJiByZXQubGVuZ3RoPjA7XHJcbiAgICAgICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVTZWxlY3RlZENvbG9yKHZhbHVlOiBhbnkpe1xyXG4gICAgICAgIGNvbnN0IGNvbG9yID0gdmFsdWUudGFyZ2V0LnZhbHVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBjb2xvcjtcclxuICAgICAgICB0aGlzLmludGVybmFsVmFsdWUgPSBjb2xvcjtcclxuICAgICAgICB0aGlzLmNoYW5nZShjb2xvcik7XHJcbiAgICB9XHJcbn1cclxuIiwiXHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiICpuZ0lmPVwiZm9ybUluaXRpYWxpemVkXCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImNvbG9ySW5wdXRcIj5cclxuICAgICAgICAgICAgPGttcy10b29sdGlwLWljb24gW3Rvb2x0aXBUZXh0XT1cInRvb2x0aXBUZXh0XCIgKm5nSWY9XCJ0b29sdGlwVGV4dFwiPjwva21zLXRvb2x0aXAtaWNvbj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY29sb3JcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbbmdDbGFzc109XCJ7J215LWluVmFsaWQnOiAhbWF0Y2hlc0hleCh2YWx1ZSl9XCIgLz5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiIFt2YWx1ZV09XCJ2YWx1ZSAmJiBtYXRjaGVzSGV4KHZhbHVlKSA/IHZhbHVlIDogJyNmZmZmZmYnXCIgKGNoYW5nZSk9XCJ1cGRhdGVTZWxlY3RlZENvbG9yKCRldmVudClcIiBbbmdDbGFzc109XCJ7J215LWluVmFsaWQnOiAhbWF0Y2hlc0hleCh2YWx1ZSl9XCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT4iXX0=