@kms-ngx-ui/presentational 0.0.24 → 13.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 (175) 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/{esm2015/lib/kms-ngx-ui-presentational.component.js → esm2020/lib/kms-ngx-ui-presentational.component.mjs} +26 -26
  10. package/{esm2015/lib/kms-ngx-ui-presentational.module.js → esm2020/lib/kms-ngx-ui-presentational.module.mjs} +217 -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/{esm2015/lib/pipes/decode-uri.pipe.js → esm2020/lib/pipes/decode-uri.pipe.mjs} +19 -19
  25. package/{esm2015/lib/pipes/encode-uri.pipe.js → esm2020/lib/pipes/encode-uri.pipe.mjs} +19 -19
  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 +3019 -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} +2879 -3087
  63. package/fesm2020/kms-ngx-ui-presentational.mjs.map +1 -0
  64. package/kms-ngx-ui-presentational.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 +69 -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 +25 -12
  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/models/address.model.js +0 -6
  145. package/esm2015/lib/parent-components/colorable.component.js +0 -35
  146. package/esm2015/lib/parent-components/form-control.component.js +0 -76
  147. package/esm2015/lib/parent-components/form.component.js +0 -99
  148. package/esm2015/lib/services/viewport.service.js +0 -242
  149. package/esm2015/lib/ui/back-to-top/back-to-top.component.js +0 -52
  150. package/esm2015/lib/ui/button-with-confirm-dialog/button-with-confirm-dialog.component.js +0 -62
  151. package/esm2015/lib/ui/checkbox/checkbox.component.js +0 -76
  152. package/esm2015/lib/ui/color-input/color-input.component.js +0 -81
  153. package/esm2015/lib/ui/dropdown-from-data/dropdown-from-data.component.js +0 -169
  154. package/esm2015/lib/ui/enum-radiogroup/enum-radiogroup.component.js +0 -57
  155. package/esm2015/lib/ui/file-input/file-input.component.js +0 -237
  156. package/esm2015/lib/ui/flyout/flyout.component.js +0 -125
  157. package/esm2015/lib/ui/generic-dialog/generic-dialog.component.js +0 -58
  158. package/esm2015/lib/ui/icon/icon.component.js +0 -55
  159. package/esm2015/lib/ui/icon/iconSize.enum.js +0 -28
  160. package/esm2015/lib/ui/image-slider/image-slider.component.js +0 -193
  161. package/esm2015/lib/ui/kms-accordion-item/kms-accordion-item.component.js +0 -44
  162. package/esm2015/lib/ui/loader/loader.component.js +0 -25
  163. package/esm2015/lib/ui/map/map.component.js +0 -120
  164. package/esm2015/lib/ui/radiobutton/radiobutton.component.js +0 -82
  165. package/esm2015/lib/ui/salutation-dropdown/salutation-dropdown.component.js +0 -59
  166. package/esm2015/lib/ui/salutation-radiogroup/salutation-radiogroup.component.js +0 -53
  167. package/esm2015/lib/ui/time-input/time-input.component.js +0 -88
  168. package/esm2015/lib/ui/tooltip/tooltip.component.js +0 -20
  169. package/esm2015/lib/ui/tooltip-icon/tooltip-icon.component.js +0 -40
  170. package/esm2015/lib/ui/yes-no-radiogroup/yes-no-radiogroup.component.js +0 -86
  171. package/esm2015/public-api.js +0 -50
  172. package/fesm2015/kms-ngx-ui-presentational.js.map +0 -1
  173. package/lib/directives/size.directive.d.ts +0 -10
  174. package/lib/parent-components/colorable.component.d.ts +0 -10
  175. package/src/styles/animations.scss +0 -47
@@ -1,45 +0,0 @@
1
- /**
2
- * @copyright KMS GmbH
3
- */
4
- import { CommonModule } from '@angular/common';
5
- import { NgModule } from '@angular/core';
6
- import { MouseWheelDirective } from './mousewheel.directive';
7
- import { GetMaxHeightDirective } from './sum-of-height.directive';
8
- import { SwipeDirective } from './swipe.directive';
9
- import { TooltipDirective } from './tooltip.directive';
10
- import { SizeDirective } from './size.directive';
11
- import * as i0 from "@angular/core";
12
- export class DirectivesModule {
13
- }
14
- DirectivesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- DirectivesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DirectivesModule, declarations: [SwipeDirective,
16
- MouseWheelDirective,
17
- GetMaxHeightDirective,
18
- TooltipDirective,
19
- SizeDirective], imports: [CommonModule], exports: [SwipeDirective,
20
- MouseWheelDirective,
21
- GetMaxHeightDirective,
22
- TooltipDirective,
23
- SizeDirective] });
24
- DirectivesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DirectivesModule, imports: [[CommonModule]] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DirectivesModule, decorators: [{
26
- type: NgModule,
27
- args: [{
28
- declarations: [
29
- SwipeDirective,
30
- MouseWheelDirective,
31
- GetMaxHeightDirective,
32
- TooltipDirective,
33
- SizeDirective,
34
- ],
35
- imports: [CommonModule],
36
- exports: [
37
- SwipeDirective,
38
- MouseWheelDirective,
39
- GetMaxHeightDirective,
40
- TooltipDirective,
41
- SizeDirective,
42
- ],
43
- }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbXMtbmd4LXVpLXByZXNlbnRhdGlvbmFsL3NyYy9saWIvZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBbUJqRCxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBZnpCLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIscUJBQXFCO1FBQ3JCLGdCQUFnQjtRQUNoQixhQUFhLGFBRUwsWUFBWSxhQUVwQixjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLHFCQUFxQjtRQUNyQixnQkFBZ0I7UUFDaEIsYUFBYTsrR0FHSixnQkFBZ0IsWUFUbEIsQ0FBQyxZQUFZLENBQUM7NEZBU1osZ0JBQWdCO2tCQWpCNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFO3dCQUNQLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAY29weXJpZ2h0IEtNUyBHbWJIXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1vdXNlV2hlZWxEaXJlY3RpdmUgfSBmcm9tICcuL21vdXNld2hlZWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgR2V0TWF4SGVpZ2h0RGlyZWN0aXZlIH0gZnJvbSAnLi9zdW0tb2YtaGVpZ2h0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN3aXBlRGlyZWN0aXZlIH0gZnJvbSAnLi9zd2lwZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpemVEaXJlY3RpdmUgfSBmcm9tICcuL3NpemUuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTd2lwZURpcmVjdGl2ZSxcclxuICAgIE1vdXNlV2hlZWxEaXJlY3RpdmUsXHJcbiAgICBHZXRNYXhIZWlnaHREaXJlY3RpdmUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgU2l6ZURpcmVjdGl2ZSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFN3aXBlRGlyZWN0aXZlLFxyXG4gICAgTW91c2VXaGVlbERpcmVjdGl2ZSxcclxuICAgIEdldE1heEhlaWdodERpcmVjdGl2ZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBTaXplRGlyZWN0aXZlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3RpdmVzTW9kdWxlIHtTaXplRGlyZWN0aXZlfVxyXG4iXX0=
@@ -1,21 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SizeDirective {
4
- constructor(elementRef) {
5
- this.elementRef = elementRef;
6
- this.size = '';
7
- }
8
- ngOnInit() {
9
- this.elementRef.nativeElement.style.width(this.size + 'px');
10
- this.elementRef.nativeElement.style.height(this.size + 'px');
11
- }
12
- }
13
- SizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SizeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14
- SizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SizeDirective, selector: "[size]", inputs: { size: "size" }, ngImport: i0 });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SizeDirective, decorators: [{
16
- type: Directive,
17
- args: [{ selector: '[size]' }]
18
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { size: [{
19
- type: Input
20
- }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbXMtbmd4LXVpLXByZXNlbnRhdGlvbmFsL3NyYy9saWIvZGlyZWN0aXZlcy9zaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLGFBQWE7SUFFdEIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQURqQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ21CLENBQUM7SUFFL0MsUUFBUTtRQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7MkdBUFEsYUFBYTsrRkFBYixhQUFhOzRGQUFiLGFBQWE7a0JBRHpCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO2lHQUVwQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc2l6ZV0nIH0pXHJcbmV4cG9ydCBjbGFzcyBTaXplRGlyZWN0aXZlIHtcclxuICAgIEBJbnB1dCgpIHNpemU6IHN0cmluZyA9ICcnO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCh0aGlzLnNpemUgKyAncHgnKTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQodGhpcy5zaXplICsgJ3B4Jyk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -1,5 +0,0 @@
1
- /*!
2
- * @copyright FLYACTS GmbH 2019
3
- */
4
- export {};
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbXMtbmd4LXVpLXByZXNlbnRhdGlvbmFsL3NyYy9saWIvZGlyZWN0aXZlcy9zd2lwZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxyXG4gKiBAY29weXJpZ2h0IEZMWUFDVFMgR21iSCAyMDE5XHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIElucHV0IGJlaGF2aW91ciBvcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN3aXBlT3B0aW9ucyB7XHJcbiAgICAvKipcclxuICAgICAqIFZhbHVlIGZvciB0aGUgc3dpcGVUaHJlc2hvbGRUeXBlLlxyXG4gICAgICogRXhhbXBsZTogNTAwcHggb3IgMTAlIChkZXBlbmRzIG9uIHN3aXBlVGhyZXNob2xkVHlwZSlcclxuICAgICAqL1xyXG4gICAgc3dpcGVUaHJlc2hvbGQ6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsbG93ZWQgdmFsdWVzOiAnJScgb3IgJ3B4J1xyXG4gICAgICogRGVmaW5lcyB0b2dldGhlciB3aXRoIHRoZSB2YWx1ZSBvZiBzd2lwZVRocmVzaG9sZCB0aGUgd2F5IGhvdyB0aGUgdGhyZXNob2xkIGlzIGNhbGN1bGF0ZWQ6XHJcbiAgICAgKiBJZiBhIGNlcnRhaW4gYW1vdW50IG9mIHBpeGVscyBvciBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHBhcmVudCBjb250YWluZXIgd2FzIHBhc3NlZC5cclxuICAgICAqIFB1cnBvc2U6XHJcbiAgICAgKiBUaHJlc2hvbGQgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIGlmIHN0aC4gc2hvdWxkIGhhcHBlbiB3aGVuIHRoZSB1c2VyIG92ZXIgc3dpcGVzIHRoZSBnaXZlbiB2YWx1ZXMsXHJcbiAgICAgKiBmb3IgaW5zdGFuY2Ugc2tpcCB0byBuZXh0IHNsaWRlLlxyXG4gICAgICovXHJcbiAgICBzd2lwZVRocmVzaG9sZFR5cGU6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIG5vdGU6IERlZmluZXMgaWYgdGhlIGxvY2FsIHBvc2l0aW9uIG9mIHRoZSBlbGVtZW50IHNob3VsZCBiZSB1c2VkIGZvciBjYWxjdWxhdGlvbiBvciB0aGUgZ2xvYmFsLlxyXG4gICAgICogRm9yIGEgc2xpZGVyIHRoZSBnbG9iYWwgaXMgbmVlZGVkLlxyXG4gICAgICovXHJcbiAgICBzd2lwZUxvY2FsUG9zaXRpb246IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTd2lwZSBtb3ZlIGV2ZW50IGluZm9ybWF0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN3aXBlTW92ZUV2ZW50IHtcclxuICAgIHBvc2l0aW9uOiBudW1iZXI7XHJcbiAgICBvZmZzZXRQZXJGcmFtZTogbnVtYmVyO1xyXG4gICAgc3dpcGVEaXN0YW5jZVRvdGFsOiBudW1iZXI7XHJcbiAgICBzd2lwZURpc3RhbmNlUGVyY2VudGFnZTogbnVtYmVyO1xyXG4gICAgZGlyZWN0aW9uOiBudW1iZXI7XHJcbiAgICBzcGVlZDogbnVtYmVyO1xyXG4gICAgdGhyZXNob2xkV2FzUmVhY2hlZDogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFN3aXBlIHJlbGVhc2UgZXZlbnQgaW5mb3JtYXRpb25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3dpcGVSZWxlYXNlRXZlbnQge1xyXG4gICAgdGhyZXNob2xkV2FzUmVhY2hlZDogYm9vbGVhbjtcclxuICAgIGRpcmVjdGlvbjogbnVtYmVyO1xyXG4gICAgc3BlZWQ6IG51bWJlcjtcclxuICAgIGVhc2luZ1R5cGU6IHN0cmluZztcclxuICAgIFxyXG4gICAgdGFyZ2V0OiBhbnk7XHJcbn1cclxuIl19
@@ -1,6 +0,0 @@
1
- /**
2
- * Typical basic address data
3
- */
4
- export class Address {
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi9tb2RlbHMvYWRkcmVzcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQTs7R0FFRztBQUNILE1BQU0sT0FBTyxPQUFPO0NBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBjb3B5cmlnaHQgS01TIEdtYkhcclxuICovXHJcbmltcG9ydCB7IE51bGxBYmxlIH0gZnJvbSBcIi4vdHlwZXMvbnVsbGFibGUudHlwZVwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBUeXBpY2FsIGJhc2ljIGFkZHJlc3MgZGF0YVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFkZHJlc3Mge1xyXG4gICAgcHVibGljIENpdHk6IE51bGxBYmxlPHN0cmluZz47XHJcbiAgICBwdWJsaWMgTmFtZTE6IE51bGxBYmxlPHN0cmluZz47XHJcbiAgICBwdWJsaWMgTmFtZTI6IE51bGxBYmxlPHN0cmluZz47XHJcbiAgICBwdWJsaWMgU3RyZWV0OiBOdWxsQWJsZTxzdHJpbmc+O1xyXG4gICAgcHVibGljIFppcDogTnVsbEFibGU8c3RyaW5nPjtcclxufVxyXG4iXX0=
@@ -1,35 +0,0 @@
1
- /*!
2
- * @copyright FLYACTS GmbH 2019
3
- */
4
- import { Component, Input } from '@angular/core';
5
- import * as i0 from "@angular/core";
6
- export class ColorableParentComponent {
7
- setupColors(elementRef) {
8
- if (this.color) {
9
- let color1;
10
- let color2;
11
- if (this.color === 'primary' || this.color === 'accent') {
12
- color1 = 'var(--' + this.color + 'Color)';
13
- color2 = 'var(--' + this.color + 'ColorHover)';
14
- }
15
- else {
16
- color1 = this.color;
17
- color2 = this.color;
18
- }
19
- elementRef.style.setProperty('--componentColor', color1);
20
- elementRef.style.setProperty('--componentColorHover', color2);
21
- }
22
- }
23
- }
24
- ColorableParentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ColorableParentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- ColorableParentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ColorableParentComponent, selector: "ng-component", inputs: { color: "color" }, ngImport: i0, template: '', isInline: true });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ColorableParentComponent, decorators: [{
27
- type: Component,
28
- args: [{
29
- selector: '',
30
- template: '',
31
- }]
32
- }], propDecorators: { color: [{
33
- type: Input
34
- }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3JhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi9wYXJlbnQtY29tcG9uZW50cy9jb2xvcmFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTWpELE1BQU0sT0FBTyx3QkFBd0I7SUFNakMsV0FBVyxDQUFDLFVBQXVCO1FBQy9CLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQUksTUFBTSxDQUFDO1lBQ1gsSUFBSSxNQUFNLENBQUM7WUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUNyRCxNQUFNLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dCQUMxQyxNQUFNLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNILE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNwQixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN2QjtZQUNELFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELFVBQVUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ2pFO0lBQ0wsQ0FBQzs7c0hBcEJRLHdCQUF3QjswR0FBeEIsd0JBQXdCLGdGQUZ2QixFQUFFOzRGQUVILHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsRUFBRTtvQkFDWixRQUFRLEVBQUUsRUFBRTtpQkFDZjs4QkFLWSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcclxuICogQGNvcHlyaWdodCBGTFlBQ1RTIEdtYkggMjAxOVxyXG4gKi9cclxuXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICcnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sb3JhYmxlUGFyZW50Q29tcG9uZW50IHtcclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5lcyB0aGUgY29sb3IgcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgY29sb3I/OiBzdHJpbmc7XHJcblxyXG4gICAgc2V0dXBDb2xvcnMoZWxlbWVudFJlZjogSFRNTEVsZW1lbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5jb2xvcikge1xyXG4gICAgICAgICAgICBsZXQgY29sb3IxO1xyXG4gICAgICAgICAgICBsZXQgY29sb3IyO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb2xvciA9PT0gJ3ByaW1hcnknIHx8IHRoaXMuY29sb3IgPT09ICdhY2NlbnQnKSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjEgPSAndmFyKC0tJyArIHRoaXMuY29sb3IgKyAnQ29sb3IpJztcclxuICAgICAgICAgICAgICAgIGNvbG9yMiA9ICd2YXIoLS0nICsgdGhpcy5jb2xvciArICdDb2xvckhvdmVyKSc7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjEgPSB0aGlzLmNvbG9yO1xyXG4gICAgICAgICAgICAgICAgY29sb3IyID0gdGhpcy5jb2xvcjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbGVtZW50UmVmLnN0eWxlLnNldFByb3BlcnR5KCctLWNvbXBvbmVudENvbG9yJywgY29sb3IxKTtcclxuICAgICAgICAgICAgZWxlbWVudFJlZi5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jb21wb25lbnRDb2xvckhvdmVyJywgY29sb3IyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,76 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { FormParentComponent } from './form.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- export class FormControlParentComponent extends FormParentComponent {
6
- constructor(formBuilder, renderer) {
7
- super(formBuilder);
8
- this.formBuilder = formBuilder;
9
- this.renderer = renderer;
10
- this.defaultDataOverride = ''; // when we have NO form around, get default via input to set it manually
11
- this.onSelectItemEmitter = new EventEmitter();
12
- this.internalValue = '';
13
- // eslint-disable-next-line @typescript-eslint/no-empty-function
14
- this.onChange = () => { };
15
- // eslint-disable-next-line @typescript-eslint/no-empty-function
16
- this.onTouch = () => { };
17
- // eslint-disable-next-line @typescript-eslint/no-empty-function
18
- this.onTouched = () => { };
19
- }
20
- ngOnInit() {
21
- super.ngOnInit();
22
- }
23
- change(value) {
24
- this.onChange(value);
25
- this.onTouched();
26
- }
27
- get value() {
28
- return this.internalValue;
29
- }
30
- set value(value) {
31
- this.internalValue = value;
32
- if (value !== undefined && this.internalValue !== value) {
33
- if (!this.internalValue && this.defaultDataOverride) {
34
- this.internalValue = this.defaultDataOverride;
35
- }
36
- this.onChange(value);
37
- this.onTouch(value);
38
- }
39
- }
40
- writeValue(value) {
41
- this.internalValue = value;
42
- this.value = value;
43
- }
44
- registerOnChange(fn) {
45
- this.onChange = fn;
46
- }
47
- registerOnTouched(fn) {
48
- this.onTouch = fn;
49
- }
50
- setDisabledState(isDisabled) {
51
- var _a;
52
- if ((_a = this.child) === null || _a === void 0 ? void 0 : _a.nativeElement) {
53
- this.renderer.setProperty(this.child.nativeElement, 'disabled', isDisabled);
54
- }
55
- }
56
- validate(_) {
57
- return this.form.valid ? null : false;
58
- }
59
- }
60
- FormControlParentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormControlParentComponent, deps: [{ token: i1.FormBuilder }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
61
- FormControlParentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FormControlParentComponent, selector: "kms-formControlParent", inputs: { defaultDataOverride: "defaultDataOverride" }, outputs: { onSelectItemEmitter: "onSelectItemEmitter" }, viewQueries: [{ propertyName: "child", first: true, predicate: ["child"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormControlParentComponent, decorators: [{
63
- type: Component,
64
- args: [{
65
- selector: 'kms-formControlParent',
66
- template: '',
67
- }]
68
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.Renderer2 }]; }, propDecorators: { defaultDataOverride: [{
69
- type: Input
70
- }], onSelectItemEmitter: [{
71
- type: Output
72
- }], child: [{
73
- type: ViewChild,
74
- args: ['child']
75
- }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ttcy1uZ3gtdWktcHJlc2VudGF0aW9uYWwvc3JjL2xpYi9wYXJlbnQtY29tcG9uZW50cy9mb3JtLWNvbnRyb2wuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFNdkQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG1CQUFtQjtJQVEvRCxZQUFtQixXQUF3QixFQUFTLFFBQW1CO1FBQ25FLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQURKLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVA5RCx3QkFBbUIsR0FBRyxFQUFFLENBQUMsQ0FBQyx3RUFBd0U7UUFDakcsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUlwRCxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQWUxQixnRUFBZ0U7UUFDekQsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUVoQyxnRUFBZ0U7UUFDaEUsWUFBTyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV4QixnRUFBZ0U7UUFDaEUsY0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQWxCMUIsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFXRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFO1lBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7YUFDakQ7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1COztRQUNqQyxJQUFJLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsYUFBYSxFQUFFO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUMvRTtJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsQ0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDOzt3SEFsRVEsMEJBQTBCOzRHQUExQiwwQkFBMEIscVNBRnpCLEVBQUU7NEZBRUgsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzBIQUVZLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBRW9CLEtBQUs7c0JBQS9CLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1QYXJlbnRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdrbXMtZm9ybUNvbnRyb2xQYXJlbnQnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xQYXJlbnRDb21wb25lbnQgZXh0ZW5kcyBGb3JtUGFyZW50Q29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGRlZmF1bHREYXRhT3ZlcnJpZGUgPSAnJzsgLy8gd2hlbiB3ZSBoYXZlIE5PIGZvcm0gYXJvdW5kLCBnZXQgZGVmYXVsdCB2aWEgaW5wdXQgdG8gc2V0IGl0IG1hbnVhbGx5XHJcbiAgICBAT3V0cHV0KCkgb25TZWxlY3RJdGVtRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2NoaWxkJykgcHVibGljIGNoaWxkPzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgICBwdWJsaWMgaW50ZXJuYWxWYWx1ZSA9ICcnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyKSB7XHJcbiAgICAgICAgc3VwZXIoZm9ybUJ1aWxkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cclxuICAgIHB1YmxpYyBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxyXG4gICAgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxyXG4gICAgb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcclxuXHJcbiAgICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5pbnRlcm5hbFZhbHVlICE9PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaW50ZXJuYWxWYWx1ZSAmJiB0aGlzLmRlZmF1bHREYXRhT3ZlcnJpZGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZSA9IHRoaXMuZGVmYXVsdERhdGFPdmVycmlkZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5vblRvdWNoKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICh0aGlzLmNoaWxkPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5jaGlsZC5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCBpc0Rpc2FibGVkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmFsaWRhdGUoXzogRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkID8gbnVsbCA6IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,99 +0,0 @@
1
- /*!
2
- * @copyright FLYACTS GmbH 2019
3
- */
4
- import { Component, EventEmitter, Input, Output } from '@angular/core';
5
- import { SubSink } from 'subsink';
6
- import { ColorableParentComponent } from './colorable.component';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- export class FormParentComponent extends ColorableParentComponent {
10
- constructor(formBuilder) {
11
- super();
12
- this.formBuilder = formBuilder;
13
- this.disabled = false;
14
- this.showRequired = false;
15
- this.formInitialized = false;
16
- this.allowedCharsOnlyNumbers = new Set('0123456789'.split('').map((c) => c.charCodeAt(0)));
17
- this.subs = new SubSink();
18
- this.formDataChanged = new EventEmitter();
19
- }
20
- // TODO make a service or make own component etc.
21
- /**
22
- * Returns if a number was pressed
23
- * @param e
24
- * @returns
25
- */
26
- checkIfKeyWasNumber(e, allowDelete = true, allowArrows = true, allowCutCopyPaste = true) {
27
- // returns if keycode of numbers-row or numberpad. Or if parameter set, allow delete/backspace key
28
- const isNumberRow = e.keyCode >= 48 && e.keyCode <= 57;
29
- const isNumberPad = e.keyCode >= 96 && e.keyCode <= 105;
30
- const isArrows = e.keyCode >= 37 && e.keyCode <= 40;
31
- const isDelete = e.keyCode == 8 || e.keyCode == 46;
32
- const isCutCopyOrPaste = (e.ctrlKey || e.metaKey) && (e.keyCode == 86 || e.keyCode == 88 || e.keyCode == 67);
33
- const isTab = 9;
34
- return (isNumberRow ||
35
- isNumberPad ||
36
- isTab ||
37
- (allowDelete && isDelete) ||
38
- (allowArrows && isArrows) ||
39
- (allowCutCopyPaste && isCutCopyOrPaste));
40
- }
41
- // TODO make a service or make own component etc.
42
- /**
43
- * Prevents to input other chars than numbers in input
44
- * @param event
45
- */
46
- removeNumbersOnType(event) {
47
- // only allow keydown from numbers-row or numberpad of keybard and block other chars than numbers
48
- if (!this.checkIfKeyWasNumber(event) && !this.allowedCharsOnlyNumbers.has(event.keyCode)) {
49
- event.preventDefault();
50
- }
51
- }
52
- // TODO make a service or make own component etc.
53
- /**
54
- * Prevents input when pasting which is not number
55
- * @param event
56
- */
57
- removeNumbersOnPaste(event) {
58
- const clipboardData = event.clipboardData;
59
- if (clipboardData) {
60
- const pastedText = clipboardData.getData('text');
61
- if (pastedText) {
62
- const isnum = /^\d+$/.test(pastedText);
63
- if (!isnum) {
64
- event.preventDefault();
65
- }
66
- }
67
- }
68
- }
69
- ngOnInit() {
70
- this.initFormEvent();
71
- }
72
- ngOnDestroy() {
73
- this.subs.unsubscribe();
74
- }
75
- initFormEvent() {
76
- if (this.form) {
77
- this.formDataChanged.emit(this.form);
78
- this.form.valueChanges.subscribe(() => {
79
- this.formDataChanged.emit(this.form);
80
- });
81
- }
82
- }
83
- }
84
- FormParentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormParentComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
85
- FormParentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FormParentComponent, selector: "kms-form", inputs: { disabled: "disabled", showRequired: "showRequired" }, outputs: { formDataChanged: "formDataChanged" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FormParentComponent, decorators: [{
87
- type: Component,
88
- args: [{
89
- selector: 'kms-form',
90
- template: '',
91
- }]
92
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; }, propDecorators: { disabled: [{
93
- type: Input
94
- }], showRequired: [{
95
- type: Input
96
- }], formDataChanged: [{
97
- type: Output
98
- }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbXMtbmd4LXVpLXByZXNlbnRhdGlvbmFsL3NyYy9saWIvcGFyZW50LWNvbXBvbmVudHMvZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFNakUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHdCQUF3QjtJQVk3RCxZQUFtQixXQUF3QjtRQUN2QyxLQUFLLEVBQUUsQ0FBQztRQURPLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBWGxDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHdkIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDdkIsNEJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZGLFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRWxCLG9CQUFlLEdBQTRCLElBQUksWUFBWSxFQUFFLENBQUM7SUFJeEUsQ0FBQztJQUVELGlEQUFpRDtJQUNqRDs7OztPQUlHO0lBQ0gsbUJBQW1CLENBQUMsQ0FBZ0IsRUFBRSxXQUFXLEdBQUcsSUFBSSxFQUFFLFdBQVcsR0FBRyxJQUFJLEVBQUUsaUJBQWlCLEdBQUcsSUFBSTtRQUNsRyxrR0FBa0c7UUFD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bnRlbnQiOlsiLyohXHJcbiAqIEBjb3B5cmlnaHQgRkxZQUNUUyBHbWJIIDIwMTlcclxuICovXHJcblxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViU2luayB9IGZyb20gJ3N1YnNpbmsnO1xyXG5pbXBvcnQgeyBDb2xvcmFibGVQYXJlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbG9yYWJsZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2ttcy1mb3JtJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1QYXJlbnRDb21wb25lbnQgZXh0ZW5kcyBDb2xvcmFibGVQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2hvd1JlcXVpcmVkID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgICBwdWJsaWMgZm9ybUluaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGFsbG93ZWRDaGFyc09ubHlOdW1iZXJzID0gbmV3IFNldCgnMDEyMzQ1Njc4OScuc3BsaXQoJycpLm1hcCgoYykgPT4gYy5jaGFyQ29kZUF0KDApKSk7XHJcblxyXG4gICAgcHVibGljIHN1YnMgPSBuZXcgU3ViU2luaygpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBmb3JtRGF0YUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRPRE8gbWFrZSBhIHNlcnZpY2Ugb3IgbWFrZSBvd24gY29tcG9uZW50IGV0Yy5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBpZiBhIG51bWJlciB3YXMgcHJlc3NlZFxyXG4gICAgICogQHBhcmFtIGVcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIGNoZWNrSWZLZXlXYXNOdW1iZXIoZTogS2V5Ym9hcmRFdmVudCwgYWxsb3dEZWxldGUgPSB0cnVlLCBhbGxvd0Fycm93cyA9IHRydWUsIGFsbG93Q3V0Q29weVBhc3RlID0gdHJ1ZSkge1xyXG4gICAgICAgIC8vIHJldHVybnMgaWYga2V5Y29kZSBvZiBudW1iZXJzLXJvdyBvciBudW1iZXJwYWQuIE9yIGlmIHBhcmFtZXRlciBzZXQsIGFsbG93IGRlbGV0ZS9iYWNrc3BhY2Uga2V5XHJcbiAgICAgICAgY29uc3QgaXNOdW1iZXJSb3cgPSBlLmtleUNvZGUgPj0gNDggJiYgZS5rZXlDb2RlIDw9IDU3O1xyXG4gICAgICAgIGNvbnN0IGlzTnVtYmVyUGFkID0gZS5rZXlDb2RlID49IDk2ICYmIGUua2V5Q29kZSA8PSAxMDU7XHJcbiAgICAgICAgY29uc3QgaXNBcnJvd3MgPSBlLmtleUNvZGUgPj0gMzcgJiYgZS5rZXlDb2RlIDw9IDQwO1xyXG4gICAgICAgIGNvbnN0IGlzRGVsZXRlID0gZS5rZXlDb2RlID09IDggfHwgZS5rZXlDb2RlID09IDQ2O1xyXG4gICAgICAgIGNvbnN0IGlzQ3V0Q29weU9yUGFzdGUgPSAoZS5jdHJsS2V5IHx8IGUubWV0YUtleSkgJiYgKGUua2V5Q29kZSA9PSA4NiB8fCBlLmtleUNvZGUgPT0gODggfHwgZS5rZXlDb2RlID09IDY3KTtcclxuICAgICAgICBjb25zdCBpc1RhYiA9IDk7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgaXNOdW1iZXJSb3cgfHxcclxuICAgICAgICAgICAgaXNOdW1iZXJQYWQgfHxcclxuICAgICAgICAgICAgaXNUYWIgfHxcclxuICAgICAgICAgICAgKGFsbG93RGVsZXRlICYmIGlzRGVsZXRlKSB8fFxyXG4gICAgICAgICAgICAoYWxsb3dBcnJvd3MgJiYgaXNBcnJvd3MpIHx8XHJcbiAgICAgICAgICAgIChhbGxvd0N1dENvcHlQYXN0ZSAmJiBpc0N1dENvcHlPclBhc3RlKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ETyBtYWtlIGEgc2VydmljZSBvciBtYWtlIG93biBjb21wb25lbnQgZXRjLlxyXG4gICAgLyoqXHJcbiAgICAgKiBQcmV2ZW50cyB0byBpbnB1dCBvdGhlciBjaGFycyB0aGFuIG51bWJlcnMgaW4gaW5wdXRcclxuICAgICAqIEBwYXJhbSBldmVudFxyXG4gICAgICovXHJcbiAgICByZW1vdmVOdW1iZXJzT25UeXBlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgLy8gb25seSBhbGxvdyBrZXlkb3duIGZyb20gbnVtYmVycy1yb3cgb3IgbnVtYmVycGFkIG9mIGtleWJhcmQgYW5kIGJsb2NrIG90aGVyIGNoYXJzIHRoYW4gbnVtYmVyc1xyXG4gICAgICAgIGlmICghdGhpcy5jaGVja0lmS2V5V2FzTnVtYmVyKGV2ZW50KSAmJiAhdGhpcy5hbGxvd2VkQ2hhcnNPbmx5TnVtYmVycy5oYXMoZXZlbnQua2V5Q29kZSkpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVE9ETyBtYWtlIGEgc2VydmljZSBvciBtYWtlIG93biBjb21wb25lbnQgZXRjLlxyXG4gICAgLyoqXHJcbiAgICAgKiBQcmV2ZW50cyBpbnB1dCB3aGVuIHBhc3Rpbmcgd2hpY2ggaXMgbm90IG51bWJlclxyXG4gICAgICogQHBhcmFtIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIHJlbW92ZU51bWJlcnNPblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkge1xyXG4gICAgICAgIGNvbnN0IGNsaXBib2FyZERhdGEgPSBldmVudC5jbGlwYm9hcmREYXRhO1xyXG4gICAgICAgIGlmIChjbGlwYm9hcmREYXRhKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhc3RlZFRleHQgPSBjbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQnKTtcclxuICAgICAgICAgICAgaWYgKHBhc3RlZFRleHQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzbnVtID0gL15cXGQrJC8udGVzdChwYXN0ZWRUZXh0KTtcclxuICAgICAgICAgICAgICAgIGlmICghaXNudW0pIHtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuaW5pdEZvcm1FdmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRGb3JtRXZlbnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybSkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1EYXRhQ2hhbmdlZC5lbWl0KHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybURhdGFDaGFuZ2VkLmVtaXQodGhpcy5mb3JtKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -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=