vc-create-dashboard 3.1.0 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/esm2022/lib/configurations.mjs +7 -0
  2. package/esm2022/lib/create-dashboard-container/categories/categories-config.mjs +2 -0
  3. package/esm2022/lib/create-dashboard-container/categories/categories.component.mjs +212 -0
  4. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +350 -0
  5. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.mjs +2 -0
  6. package/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets.module.mjs +47 -0
  7. package/esm2022/lib/create-dashboard-container/constants/assets.constant.mjs +37 -0
  8. package/esm2022/lib/create-dashboard-container/create-dashboard-config.mjs +2 -0
  9. package/esm2022/lib/create-dashboard-container/create-dashboard.component.mjs +1601 -0
  10. package/esm2022/lib/create-dashboard-container/create-dashboard.module.mjs +127 -0
  11. package/esm2022/lib/create-dashboard-container/directives/directives.module.mjs +24 -0
  12. package/esm2022/lib/create-dashboard-container/directives/scroll-in-view.directive.mjs +36 -0
  13. package/esm2022/lib/create-dashboard-container/form-group/form-group.component.mjs +153 -0
  14. package/esm2022/lib/create-dashboard-container/frequency/frequency.component.mjs +309 -0
  15. package/esm2022/lib/create-dashboard-container/interfaces/widget-data-model.mjs +2 -0
  16. package/esm2022/lib/create-dashboard-container/pipes/filter.pipe.mjs +30 -0
  17. package/esm2022/lib/create-dashboard-container/pipes/search-program.pipe.mjs +37 -0
  18. package/esm2022/lib/create-dashboard-container/pipes/search.pipe.mjs +25 -0
  19. package/esm2022/lib/create-dashboard-container/pipes/text-count.pipe.mjs +18 -0
  20. package/esm2022/lib/create-dashboard-container/program-list/constant.mjs +31 -0
  21. package/esm2022/lib/create-dashboard-container/program-list/information-block/information-block.component.mjs +13 -0
  22. package/esm2022/lib/create-dashboard-container/program-list/interfaces/list-item.interface.mjs +2 -0
  23. package/esm2022/lib/create-dashboard-container/program-list/list-container/list-container.component.mjs +50 -0
  24. package/esm2022/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.mjs +23 -0
  25. package/esm2022/lib/create-dashboard-container/program-list/program-list/program-list.component.mjs +294 -0
  26. package/esm2022/lib/create-dashboard-container/program-list/program-list.module.mjs +60 -0
  27. package/esm2022/lib/create-dashboard-container/program-list/services/list-utils.service.mjs +27 -0
  28. package/esm2022/lib/create-dashboard-container/program-list/services/program-list-api.service.mjs +28 -0
  29. package/esm2022/lib/create-dashboard-container/responsibility-center/responsibility-center.component.mjs +239 -0
  30. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories-config.mjs +2 -0
  31. package/esm2022/lib/create-dashboard-container/risk-categories/risk-categories.component.mjs +206 -0
  32. package/esm2022/lib/create-dashboard-container/services/configure-widgets.service.mjs +233 -0
  33. package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +222 -0
  34. package/esm2022/lib/create-dashboard-container/services/pagination.service.mjs +28 -0
  35. package/esm2022/lib/create-dashboard-container/user-list/user-list.component.mjs +440 -0
  36. package/esm2022/lib/create-dashboard-container/user-list/user-list.config.mjs +2 -0
  37. package/esm2022/lib/create-dashboard-container/utils/dashboard-edit.utils.mjs +181 -0
  38. package/esm2022/lib/create-dashboard.service.mjs +14 -0
  39. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.mjs +52 -0
  40. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer-config.mjs +2 -0
  41. package/esm2022/lib/ui-kit/dashboard-footer/dashboard-footer.module.mjs +32 -0
  42. package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +7 -0
  43. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +17 -0
  44. package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
  45. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +96 -0
  46. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -0
  47. package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +56 -0
  48. package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +17 -0
  49. package/esm2022/lib/ui-kit/floating-bar/floating-bar.component.mjs +57 -0
  50. package/esm2022/lib/ui-kit/floating-bar/floating-bar.module.mjs +32 -0
  51. package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +30 -0
  52. package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +29 -0
  53. package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +34 -0
  54. package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
  55. package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +119 -0
  56. package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +39 -0
  57. package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +55 -0
  58. package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -0
  59. package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -0
  60. package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -0
  61. package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +18 -0
  62. package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +47 -0
  63. package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -0
  64. package/esm2022/lib/ui-kit/pagination/pagination.component.mjs +130 -0
  65. package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +18 -0
  66. package/esm2022/lib/ui-kit/popover/popover.component.mjs +129 -0
  67. package/esm2022/lib/ui-kit/popover/popover.directive.mjs +93 -0
  68. package/esm2022/lib/ui-kit/popover/popover.module.mjs +21 -0
  69. package/esm2022/lib/ui-kit/popover/popover.service.mjs +23 -0
  70. package/esm2022/lib/ui-kit/select/cs-option/cs-option.component.mjs +41 -0
  71. package/esm2022/lib/ui-kit/select/cs-select/cs-select.component.mjs +107 -0
  72. package/esm2022/lib/ui-kit/select/safe-html.pipe.mjs +21 -0
  73. package/esm2022/lib/ui-kit/select/select.module.mjs +21 -0
  74. package/esm2022/lib/ui-kit/services/cs-select.service.mjs +16 -0
  75. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +52 -0
  76. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -0
  77. package/esm2022/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +46 -0
  78. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
  79. package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +23 -0
  80. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +168 -0
  81. package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -0
  82. package/esm2022/lib/ui-kit/v-loader/loader/loader.component.mjs +24 -0
  83. package/esm2022/lib/ui-kit/v-loader/loader-inline/loader-inline.component.mjs +24 -0
  84. package/esm2022/lib/ui-kit/v-loader/v-loader.module.mjs +19 -0
  85. package/esm2022/public-api.mjs +10 -0
  86. package/esm2022/vc-create-dashboard.mjs +5 -0
  87. package/fesm2022/vc-create-dashboard.mjs +319 -331
  88. package/fesm2022/vc-create-dashboard.mjs.map +1 -1
  89. package/index.d.ts +5 -0
  90. package/lib/configurations.d.ts +4 -0
  91. package/lib/create-dashboard-container/categories/categories-config.d.ts +18 -0
  92. package/lib/create-dashboard-container/categories/categories.component.d.ts +66 -0
  93. package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +113 -0
  94. package/lib/create-dashboard-container/configure-widgets/configure-widgets/widget.interface.d.ts +9 -0
  95. package/lib/create-dashboard-container/configure-widgets/configure-widgets.module.d.ts +14 -0
  96. package/lib/create-dashboard-container/constants/assets.constant.d.ts +35 -0
  97. package/lib/create-dashboard-container/create-dashboard-config.d.ts +18 -0
  98. package/lib/create-dashboard-container/create-dashboard.component.d.ts +219 -0
  99. package/lib/create-dashboard-container/create-dashboard.module.d.ts +37 -0
  100. package/lib/create-dashboard-container/directives/directives.module.d.ts +8 -0
  101. package/lib/create-dashboard-container/directives/scroll-in-view.directive.d.ts +12 -0
  102. package/lib/create-dashboard-container/form-group/form-group.component.d.ts +48 -0
  103. package/lib/create-dashboard-container/frequency/frequency.component.d.ts +39 -0
  104. package/lib/create-dashboard-container/interfaces/widget-data-model.d.ts +8 -0
  105. package/lib/create-dashboard-container/pipes/filter.pipe.d.ts +7 -0
  106. package/lib/create-dashboard-container/pipes/search-program.pipe.d.ts +7 -0
  107. package/lib/create-dashboard-container/pipes/search.pipe.d.ts +7 -0
  108. package/lib/create-dashboard-container/pipes/text-count.pipe.d.ts +7 -0
  109. package/lib/create-dashboard-container/program-list/constant.d.ts +24 -0
  110. package/lib/create-dashboard-container/program-list/information-block/information-block.component.d.ts +6 -0
  111. package/lib/create-dashboard-container/program-list/interfaces/list-item.interface.d.ts +5 -0
  112. package/lib/create-dashboard-container/program-list/list-container/list-container.component.d.ts +9 -0
  113. package/lib/create-dashboard-container/program-list/pipes/check-selected-items.pipes.d.ts +7 -0
  114. package/lib/create-dashboard-container/program-list/program-list/program-list.component.d.ts +119 -0
  115. package/lib/create-dashboard-container/program-list/program-list.module.d.ts +17 -0
  116. package/lib/create-dashboard-container/program-list/services/list-utils.service.d.ts +7 -0
  117. package/lib/create-dashboard-container/program-list/services/program-list-api.service.d.ts +12 -0
  118. package/lib/create-dashboard-container/responsibility-center/responsibility-center.component.d.ts +72 -0
  119. package/lib/create-dashboard-container/risk-categories/risk-categories-config.d.ts +18 -0
  120. package/lib/create-dashboard-container/risk-categories/risk-categories.component.d.ts +66 -0
  121. package/lib/create-dashboard-container/services/configure-widgets.service.d.ts +21 -0
  122. package/lib/create-dashboard-container/services/create-dashboard.service.d.ts +80 -0
  123. package/lib/create-dashboard-container/services/pagination.service.d.ts +12 -0
  124. package/lib/create-dashboard-container/user-list/user-list.component.d.ts +123 -0
  125. package/lib/create-dashboard-container/user-list/user-list.config.d.ts +13 -0
  126. package/lib/create-dashboard-container/utils/dashboard-edit.utils.d.ts +16 -0
  127. package/lib/create-dashboard.service.d.ts +6 -0
  128. package/lib/ui-kit/dashboard-footer/dashboard-footer/dashboard-footer.component.d.ts +17 -0
  129. package/lib/ui-kit/dashboard-footer/dashboard-footer-config.d.ts +11 -0
  130. package/lib/ui-kit/dashboard-footer/dashboard-footer.module.d.ts +10 -0
  131. package/lib/ui-kit/dialog/dialog-config.d.ts +6 -0
  132. package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -0
  133. package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -0
  134. package/lib/ui-kit/dialog/dialog.component.d.ts +33 -0
  135. package/lib/ui-kit/dialog/dialog.module.d.ts +9 -0
  136. package/lib/ui-kit/dialog/dialog.service.d.ts +17 -0
  137. package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -0
  138. package/lib/ui-kit/floating-bar/floating-bar.component.d.ts +20 -0
  139. package/lib/ui-kit/floating-bar/floating-bar.module.d.ts +10 -0
  140. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +10 -0
  141. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +13 -0
  142. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +15 -0
  143. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +8 -0
  144. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +36 -0
  145. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +15 -0
  146. package/lib/ui-kit/formgroup/formgroup.module.d.ts +17 -0
  147. package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +7 -0
  148. package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +7 -0
  149. package/lib/ui-kit/loaders/loaders.module.d.ts +8 -0
  150. package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -0
  151. package/lib/ui-kit/no-data/no-data.component.d.ts +19 -0
  152. package/lib/ui-kit/no-data/no-data.module.d.ts +8 -0
  153. package/lib/ui-kit/pagination/pagination.component.d.ts +21 -0
  154. package/lib/ui-kit/pagination/pagination.module.d.ts +8 -0
  155. package/lib/ui-kit/popover/popover.component.d.ts +28 -0
  156. package/lib/ui-kit/popover/popover.directive.d.ts +17 -0
  157. package/lib/ui-kit/popover/popover.module.d.ts +9 -0
  158. package/lib/ui-kit/popover/popover.service.d.ts +13 -0
  159. package/lib/ui-kit/select/cs-option/cs-option.component.d.ts +16 -0
  160. package/lib/ui-kit/select/cs-select/cs-select.component.d.ts +32 -0
  161. package/lib/ui-kit/select/safe-html.pipe.d.ts +10 -0
  162. package/lib/ui-kit/select/select.module.d.ts +11 -0
  163. package/lib/ui-kit/services/cs-select.service.d.ts +7 -0
  164. package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +17 -0
  165. package/lib/ui-kit/smiley-dialog/smiley-dialog.module.d.ts +8 -0
  166. package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +17 -0
  167. package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -0
  168. package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +9 -0
  169. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +28 -0
  170. package/lib/ui-kit/tooltip/tooltip.module.d.ts +8 -0
  171. package/lib/ui-kit/v-loader/loader/loader.component.d.ts +11 -0
  172. package/lib/ui-kit/v-loader/loader-inline/loader-inline.component.d.ts +11 -0
  173. package/lib/ui-kit/v-loader/v-loader.module.d.ts +9 -0
  174. package/package.json +8 -7
  175. package/public-api.d.ts +3 -0
  176. package/types/vc-create-dashboard.d.ts +0 -1680
@@ -0,0 +1,129 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./popover.service";
4
+ import * as i2 from "@angular/common";
5
+ export class PopoverComponent {
6
+ popoverService;
7
+ dontCloseonClick = false;
8
+ popoverContainer = false;
9
+ popoverRatio;
10
+ popoverContent;
11
+ closedOnOverlay = new EventEmitter();
12
+ constructor(popoverService) {
13
+ this.popoverService = popoverService;
14
+ }
15
+ showPopover = false;
16
+ leftValue;
17
+ topValue;
18
+ popoverHeight;
19
+ popoverWidth;
20
+ positionX;
21
+ positionY;
22
+ ngOnInit() { }
23
+ popover() {
24
+ this.popoverContainer = false;
25
+ this.popoverContainer = true;
26
+ setTimeout(() => {
27
+ this.getPosition();
28
+ this.showPopover = true;
29
+ this.popoverService.stopScroll = true;
30
+ // document.body.style.overflow = 'hidden';
31
+ }, 10);
32
+ return false;
33
+ }
34
+ popoverEvent() {
35
+ this.popoverContainer = false;
36
+ this.popoverContainer = true;
37
+ setTimeout(() => {
38
+ // this.getPosition();
39
+ this.positionX = this.popoverService.positionX;
40
+ this.positionY = this.popoverService.positionY;
41
+ this.showPopover = true;
42
+ this.popoverService.stopScroll = true;
43
+ }, 10);
44
+ return false;
45
+ }
46
+ closePopover(top) {
47
+ if (!this.dontCloseonClick || top === 'top') {
48
+ this.popoverContainer = false;
49
+ this.showPopover = false;
50
+ this.popoverService.stopScroll = false;
51
+ // document.body.style.overflow = 'auto';
52
+ }
53
+ }
54
+ close() {
55
+ this.popoverContainer = false;
56
+ this.showPopover = false;
57
+ this.popoverService.stopScroll = false;
58
+ }
59
+ clickedPopover() {
60
+ this.getPosition();
61
+ }
62
+ getPosition() {
63
+ const elementPosition = this.popoverService?.elementPosition;
64
+ const direction = this.popoverService?.elementDirection;
65
+ if (!this.popoverRatio?.nativeElement) {
66
+ return;
67
+ }
68
+ this.popoverHeight = this.popoverRatio.nativeElement.offsetHeight;
69
+ this.popoverWidth = this.popoverRatio.nativeElement.offsetWidth;
70
+ const overflowsBottom = elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight - 200;
71
+ switch (direction) {
72
+ case 'left':
73
+ this.leftValue = elementPosition.left;
74
+ this.topValue = overflowsBottom
75
+ ? elementPosition.top - this.popoverHeight
76
+ : elementPosition.top + elementPosition.height;
77
+ break;
78
+ case 'right':
79
+ this.leftValue = elementPosition.left + elementPosition.width - this.popoverWidth;
80
+ this.topValue = overflowsBottom
81
+ ? elementPosition.top - this.popoverHeight
82
+ : elementPosition.top + elementPosition.height;
83
+ break;
84
+ case 'top':
85
+ this.leftValue = elementPosition.left + elementPosition.width;
86
+ this.topValue = elementPosition.top - this.popoverHeight;
87
+ break;
88
+ case 'bottom':
89
+ this.leftValue = elementPosition.left + elementPosition.width;
90
+ this.topValue = overflowsBottom
91
+ ? elementPosition.top - this.popoverHeight
92
+ : elementPosition.top + elementPosition.height;
93
+ break;
94
+ case 'self-position':
95
+ this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;
96
+ this.topValue = elementPosition.top - 15;
97
+ break;
98
+ case 'top-center':
99
+ this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;
100
+ this.topValue = (elementPosition.top + elementPosition.height + this.popoverHeight > window.outerHeight)
101
+ ? elementPosition.top + elementPosition.height
102
+ : elementPosition.top - this.popoverHeight;
103
+ break;
104
+ case 'center':
105
+ this.leftValue = elementPosition.left + elementPosition.width / 2 - this.popoverWidth / 2;
106
+ this.topValue = elementPosition.top + elementPosition.height;
107
+ break;
108
+ }
109
+ this.positionX = this.leftValue;
110
+ this.positionY = this.topValue;
111
+ }
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, deps: [{ token: i1.PopoverService }], target: i0.ɵɵFactoryTarget.Component });
113
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PopoverComponent, selector: "app-popover", inputs: { dontCloseonClick: "dontCloseonClick" }, outputs: { closedOnOverlay: "closedOnOverlay" }, viewQueries: [{ propertyName: "popoverRatio", first: true, predicate: ["popoverRatio"], descendants: true }, { propertyName: "popoverContent", first: true, predicate: ["popoverContent"], descendants: true }], ngImport: i0, template: "<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\n <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".action{position:fixed;z-index:13;display:inline-block;opacity:0}.action.active{opacity:1}.popover-overlay{z-index:12;cursor:initial;position:fixed;inset:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverComponent, decorators: [{
116
+ type: Component,
117
+ args: [{ selector: 'app-popover', template: "<div class=\"popover-overlay\" *ngIf=\"popoverContainer\" (click)=\"closePopover('top');this.closedOnOverlay.emit();\"></div>\n<div class=\"action\" [class.active]=\"showPopover\" *ngIf=\"popoverContainer\" [style.top.px]=\"positionY\" [style.left.px]=\"positionX\" #popoverRatio id=\"popoverRatio\">\n <div (click)=\"closePopover(); clickedPopover()\" #popoverContent>\n <ng-content></ng-content>\n </div>\n</div>\n", styles: [".action{position:fixed;z-index:13;display:inline-block;opacity:0}.action.active{opacity:1}.popover-overlay{z-index:12;cursor:initial;position:fixed;inset:0}\n"] }]
118
+ }], ctorParameters: function () { return [{ type: i1.PopoverService }]; }, propDecorators: { dontCloseonClick: [{
119
+ type: Input
120
+ }], popoverRatio: [{
121
+ type: ViewChild,
122
+ args: ['popoverRatio']
123
+ }], popoverContent: [{
124
+ type: ViewChild,
125
+ args: ['popoverContent']
126
+ }], closedOnOverlay: [{
127
+ type: Output
128
+ }] } });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF0RyxNQUFNLE9BQU8sZ0JBQWdCO0lBTVI7SUFMVixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ0UsWUFBWSxDQUFjO0lBQ3hCLGNBQWMsQ0FBYztJQUMvQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMvQyxZQUFtQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBSSxDQUFDO0lBQ3RELFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsU0FBUyxDQUFNO0lBQ2YsUUFBUSxDQUFNO0lBQ2QsYUFBYSxDQUFNO0lBQ25CLFlBQVksQ0FBTTtJQUNsQixTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLFFBQVEsS0FBVyxDQUFDO0lBQ3BCLE9BQU87UUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMs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QUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUM3QyxNQUFNO1lBRVIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLElBQUksR0FBRyxlQUFlLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7Z0JBQzdELE1BQU07U0FDVDtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQzt3R0FySFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsdVdDUjdCLHVhQU1BOzs0RkRFYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTtxR0FLZCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRXFCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDSSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDakIsZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuL3BvcG92ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wb3BvdmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wb3BvdmVyLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkb250Q2xvc2VvbkNsaWNrID0gZmFsc2U7XG4gIHBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlclJhdGlvJykgcG9wb3ZlclJhdGlvITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncG9wb3ZlckNvbnRlbnQnKSBwb3BvdmVyQ29udGVudCE6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBjbG9zZWRPbk92ZXJsYXkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwb3BvdmVyU2VydmljZTogUG9wb3ZlclNlcnZpY2UpIHsgfVxuICBzaG93UG9wb3ZlciA9IGZhbHNlO1xuICBsZWZ0VmFsdWU6IGFueTtcbiAgdG9wVmFsdWU6IGFueTtcbiAgcG9wb3ZlckhlaWdodDogYW55O1xuICBwb3BvdmVyV2lkdGg6IGFueTtcbiAgcG9zaXRpb25YITogbnVtYmVyO1xuICBwb3NpdGlvblkhOiBudW1iZXI7XG4gIG5nT25Jbml0KCk6IHZvaWQgeyB9XG4gIHBvcG92ZXIoKSB7XG4gICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gZmFsc2U7XG4gICAgdGhpcy5wb3BvdmVyQ29udGFpbmVyID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZ2V0UG9zaXRpb24oKTtcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIgPSB0cnVlO1xuICAgICAgdGhpcy5wb3BvdmVyU2VydmljZS5zdG9wU2Nyb2xsID0gdHJ1ZTtcbiAgICAgIC8vIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJztcbiAgICB9LCAxMCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHBvcG92ZXJFdmVudCgpIHtcbiAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcbiAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gdGhpcy5nZXRQb3NpdGlvbigpO1xuICAgICAgdGhpcy5wb3NpdGlvblggPSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvc2l0aW9uWDtcbiAgICAgIHRoaXMucG9zaXRpb25ZID0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3NpdGlvblk7XG4gICAgICB0aGlzLnNob3dQb3BvdmVyID0gdHJ1ZTtcbiAgICAgIHRoaXMucG9wb3ZlclNlcnZpY2Uuc3RvcFNjcm9sbCA9IHRydWU7XG5cbiAgICB9LCAxMCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGNsb3NlUG9wb3Zlcih0b3A/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZG9udENsb3Nlb25DbGljayB8fCB0b3AgPT09ICd0b3AnKSB7XG4gICAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd1BvcG92ZXIgPSBmYWxzZTtcbiAgICAgIHRoaXMucG9wb3ZlclNlcnZpY2Uuc3RvcFNjcm9sbCA9IGZhbHNlO1xuICAgICAgLy8gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJztcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnBvcG92ZXJDb250YWluZXIgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dQb3BvdmVyID0gZmFsc2U7XG4gICAgdGhpcy5wb3BvdmVyU2VydmljZS5zdG9wU2Nyb2xsID0gZmFsc2U7XG4gIH1cblxuICBjbGlja2VkUG9wb3ZlcigpIHtcbiAgICB0aGlzLmdldFBvc2l0aW9uKCk7XG4gIH1cbiAgZ2V0UG9zaXRpb24oKSB7XG4gICAgY29uc3QgZWxlbWVudFBvc2l0aW9uID0gdGhpcy5wb3BvdmVyU2VydmljZT8uZWxlbWVudFBvc2l0aW9uO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMucG9wb3ZlclNlcnZpY2U/LmVsZW1lbnREaXJlY3Rpb247XG5cbiAgICBpZiAoIXRoaXMucG9wb3ZlclJhdGlvPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wb3BvdmVySGVpZ2h0ID0gdGhpcy5wb3BvdmVyUmF0aW8ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgdGhpcy5wb3BvdmVyV2lkdGggPSB0aGlzLnBvcG92ZXJSYXRpby5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuXG4gICAgY29uc3Qgb3ZlcmZsb3dzQm90dG9tID0gZWxlbWVudFBvc2l0aW9uLnRvcCArIGVsZW1lbnRQb3NpdGlvbi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDA7XG5cbiAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9uLmxlZnQ7XG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBvdmVyZmxvd3NCb3R0b21cbiAgICAgICAgICA/IGVsZW1lbnRQb3NpdGlvbi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHRcbiAgICAgICAgICA6IGVsZW1lbnRQb3NpdGlvbi50b3AgKyBlbGVtZW50UG9zaXRpb24uaGVpZ2h0O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9uLndpZHRoIC0gdGhpcy5wb3BvdmVyV2lkdGg7XG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBvdmVyZmxvd3NCb3R0b21cbiAgICAgICAgICA/IGVsZW1lbnRQb3NpdGlvbi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHRcbiAgICAgICAgICA6IGVsZW1lbnRQb3NpdGlvbi50b3AgKyBlbGVtZW50UG9zaXRpb24uaGVpZ2h0O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRQb3NpdGlvbi53aWR0aDtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbi50b3AgLSB0aGlzLnBvcG92ZXJIZWlnaHQ7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9uLndpZHRoO1xuICAgICAgICB0aGlzLnRvcFZhbHVlID0gb3ZlcmZsb3dzQm90dG9tXG4gICAgICAgICAgPyBlbGVtZW50UG9zaXRpb24udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0XG4gICAgICAgICAgOiBlbGVtZW50UG9zaXRpb24udG9wICsgZWxlbWVudFBvc2l0aW9uLmhlaWdodDtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3NlbGYtcG9zaXRpb24nOlxuICAgICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlcldpZHRoIC8gMjtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbi50b3AgLSAxNTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3RvcC1jZW50ZXInOlxuICAgICAgICB0aGlzLmxlZnRWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlcldpZHRoIC8gMjtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IChlbGVtZW50UG9zaXRpb24udG9wICsgZWxlbWVudFBvc2l0aW9uLmhlaWdodCArIHRoaXMucG9wb3ZlckhlaWdodCA+IHdpbmRvdy5vdXRlckhlaWdodClcbiAgICAgICAgICA/IGVsZW1lbnRQb3NpdGlvbi50b3AgKyBlbGVtZW50UG9zaXRpb24uaGVpZ2h0XG4gICAgICAgICAgOiBlbGVtZW50UG9zaXRpb24udG9wIC0gdGhpcy5wb3BvdmVySGVpZ2h0O1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRQb3NpdGlvbi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJXaWR0aCAvIDI7XG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb24udG9wICsgZWxlbWVudFBvc2l0aW9uLmhlaWdodDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgdGhpcy5wb3NpdGlvblggPSB0aGlzLmxlZnRWYWx1ZTtcbiAgICB0aGlzLnBvc2l0aW9uWSA9IHRoaXMudG9wVmFsdWU7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwb3BvdmVyLW92ZXJsYXlcIiAqbmdJZj1cInBvcG92ZXJDb250YWluZXJcIiAoY2xpY2spPVwiY2xvc2VQb3BvdmVyKCd0b3AnKTt0aGlzLmNsb3NlZE9uT3ZlcmxheS5lbWl0KCk7XCI+PC9kaXY+XG48ZGl2IGNsYXNzPVwiYWN0aW9uXCIgW2NsYXNzLmFjdGl2ZV09XCJzaG93UG9wb3ZlclwiICpuZ0lmPVwicG9wb3ZlckNvbnRhaW5lclwiIFtzdHlsZS50b3AucHhdPVwicG9zaXRpb25ZXCIgW3N0eWxlLmxlZnQucHhdPVwicG9zaXRpb25YXCIgI3BvcG92ZXJSYXRpbyBpZD1cInBvcG92ZXJSYXRpb1wiPlxuICA8ZGl2IChjbGljayk9XCJjbG9zZVBvcG92ZXIoKTsgY2xpY2tlZFBvcG92ZXIoKVwiICNwb3BvdmVyQ29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,93 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./popover.service";
4
+ export class PopoverDirective {
5
+ elRef;
6
+ popoverService;
7
+ dynamicComponent;
8
+ refrence;
9
+ placement;
10
+ leftValue;
11
+ topValue;
12
+ constructor(elRef, popoverService) {
13
+ this.elRef = elRef;
14
+ this.popoverService = popoverService;
15
+ }
16
+ click() {
17
+ this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();
18
+ this.popoverService.elementDirection = this.placement;
19
+ // this.getPosition();
20
+ }
21
+ getPosition() {
22
+ setTimeout(() => {
23
+ // this.popoverService.elementPosition = this.elRef.nativeElement.getBoundingClientRect();
24
+ const elementPositionn = this.elRef.nativeElement.getBoundingClientRect();
25
+ if (this.placement === 'left') {
26
+ this.leftValue = elementPositionn.left;
27
+ if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
28
+ this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
29
+ }
30
+ else {
31
+ this.topValue = elementPositionn.top + elementPositionn.height;
32
+ }
33
+ }
34
+ if (this.placement === 'right') {
35
+ this.leftValue = elementPositionn.left + elementPositionn.width - this.popoverService.popoverWidth;
36
+ if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
37
+ this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
38
+ }
39
+ else {
40
+ this.topValue = elementPositionn.top + elementPositionn.height;
41
+ }
42
+ }
43
+ if (this.placement === 'top') {
44
+ this.leftValue = elementPositionn.left + elementPositionn.width;
45
+ if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
46
+ this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
47
+ }
48
+ else {
49
+ this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
50
+ }
51
+ }
52
+ if (this.placement === 'bottom') {
53
+ this.leftValue = elementPositionn.left + elementPositionn.width;
54
+ if (elementPositionn.top + elementPositionn.height + this.popoverService.popoverHeight > window.outerHeight - 200) {
55
+ this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
56
+ }
57
+ else {
58
+ this.topValue = elementPositionn.top + elementPositionn.height;
59
+ }
60
+ }
61
+ if (this.placement === 'self-position') {
62
+ this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
63
+ this.topValue = elementPositionn.top - 15;
64
+ }
65
+ if (this.placement === 'top-center') {
66
+ this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
67
+ this.topValue = elementPositionn.top - this.popoverService.popoverHeight;
68
+ }
69
+ if (this.placement === 'bottom-center') {
70
+ this.leftValue = elementPositionn.left + elementPositionn.width / 2 - this.popoverService.popoverWidth / 2;
71
+ this.topValue = elementPositionn.top + this.popoverService.popoverHeight;
72
+ }
73
+ this.popoverService.positionX = this.leftValue;
74
+ this.popoverService.positionY = this.topValue;
75
+ }, 10);
76
+ }
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverDirective, deps: [{ token: i0.ElementRef }, { token: i1.PopoverService }], target: i0.ɵɵFactoryTarget.Directive });
78
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PopoverDirective, selector: "[appPopover]", inputs: { refrence: "refrence", placement: "placement" }, host: { listeners: { "click": "click()" } }, ngImport: i0 });
79
+ }
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverDirective, decorators: [{
81
+ type: Directive,
82
+ args: [{
83
+ selector: '[appPopover]',
84
+ }]
85
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PopoverService }]; }, propDecorators: { refrence: [{
86
+ type: Input
87
+ }], placement: [{
88
+ type: Input
89
+ }], click: [{
90
+ type: HostListener,
91
+ args: ['click']
92
+ }] } });
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0UsTUFBTSxPQUFPLGdCQUFnQjtJQU1QO0lBQTJCO0lBTC9DLGdCQUFnQixDQUFNO0lBQ2IsUUFBUSxDQUFNO0lBQ2QsU0FBUyxDQUFVO0lBQzVCLFNBQVMsQ0FBTTtJQUNmLFFBQVEsQ0FBTTtJQUNkLFlBQW9CLEtBQWlCLEVBQVUsY0FBOEI7UUFBekQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFDMUQsS0FBSztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN0RCxzQkFBc0I7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsMEZBQTBGO1lBQzFGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMxRSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO2dCQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdkMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxj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LENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQzNHLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO2FBQzFFO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2hELENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7d0dBaEVVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUg1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs4SEFHVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBSWlCLEtBQUs7c0JBQTNCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9wb3ZlclNlcnZpY2UgfSBmcm9tICcuL3BvcG92ZXIuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thcHBQb3BvdmVyXScsXG59KVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJEaXJlY3RpdmUge1xuICBkeW5hbWljQ29tcG9uZW50OiBhbnk7XG4gIEBJbnB1dCgpIHJlZnJlbmNlOiBhbnk7XG4gIEBJbnB1dCgpIHBsYWNlbWVudCE6IHN0cmluZztcbiAgbGVmdFZhbHVlOiBhbnk7XG4gIHRvcFZhbHVlOiBhbnk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcG9wb3ZlclNlcnZpY2U6IFBvcG92ZXJTZXJ2aWNlKSB7fVxuICBASG9zdExpc3RlbmVyKCdjbGljaycpIGNsaWNrKCkge1xuICAgIHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudFBvc2l0aW9uID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMucG9wb3ZlclNlcnZpY2UuZWxlbWVudERpcmVjdGlvbiA9IHRoaXMucGxhY2VtZW50O1xuICAgIC8vIHRoaXMuZ2V0UG9zaXRpb24oKTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gdGhpcy5wb3BvdmVyU2VydmljZS5lbGVtZW50UG9zaXRpb24gPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBlbGVtZW50UG9zaXRpb25uID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnbGVmdCcpIHtcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQ7XG4gICAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wbGFjZW1lbnQgPT09ICdyaWdodCcpIHtcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVyV2lkdGg7XG4gICAgICAgIGlmIChlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0ICsgdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0ID4gd2luZG93Lm91dGVySGVpZ2h0IC0gMjAwKSB7XG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCArIGVsZW1lbnRQb3NpdGlvbm4uaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wbGFjZW1lbnQgPT09ICd0b3AnKSB7XG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aDtcbiAgICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcbiAgICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wbGFjZW1lbnQgPT09ICdib3R0b20nKSB7XG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aDtcbiAgICAgICAgaWYgKGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQgKyB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQgPiB3aW5kb3cub3V0ZXJIZWlnaHQgLSAyMDApIHtcbiAgICAgICAgICB0aGlzLnRvcFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi50b3AgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJIZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgZWxlbWVudFBvc2l0aW9ubi5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ3NlbGYtcG9zaXRpb24nKSB7XG4gICAgICAgIHRoaXMubGVmdFZhbHVlID0gZWxlbWVudFBvc2l0aW9ubi5sZWZ0ICsgZWxlbWVudFBvc2l0aW9ubi53aWR0aCAvIDIgLSB0aGlzLnBvcG92ZXJTZXJ2aWNlLnBvcG92ZXJXaWR0aCAvIDI7XG4gICAgICAgIHRoaXMudG9wVmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLnRvcCAtIDE1O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAndG9wLWNlbnRlcicpIHtcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlcldpZHRoIC8gMjtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wIC0gdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnYm90dG9tLWNlbnRlcicpIHtcbiAgICAgICAgdGhpcy5sZWZ0VmFsdWUgPSBlbGVtZW50UG9zaXRpb25uLmxlZnQgKyBlbGVtZW50UG9zaXRpb25uLndpZHRoIC8gMiAtIHRoaXMucG9wb3ZlclNlcnZpY2UucG9wb3ZlcldpZHRoIC8gMjtcbiAgICAgICAgdGhpcy50b3BWYWx1ZSA9IGVsZW1lbnRQb3NpdGlvbm4udG9wICsgdGhpcy5wb3BvdmVyU2VydmljZS5wb3BvdmVySGVpZ2h0O1xuICAgICAgfVxuICAgICAgdGhpcy5wb3BvdmVyU2VydmljZS5wb3NpdGlvblggPSB0aGlzLmxlZnRWYWx1ZTtcbiAgICAgIHRoaXMucG9wb3ZlclNlcnZpY2UucG9zaXRpb25ZID0gdGhpcy50b3BWYWx1ZTtcbiAgICB9LCAxMCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PopoverComponent } from './popover.component';
4
+ import { PopoverDirective } from './popover.directive';
5
+ import { PopoverService } from './popover.service';
6
+ import * as i0 from "@angular/core";
7
+ export class PopoverModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PopoverModule, declarations: [PopoverComponent, PopoverDirective], imports: [CommonModule], exports: [PopoverComponent, PopoverDirective] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverModule, providers: [PopoverService], imports: [CommonModule] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [PopoverComponent, PopoverDirective],
16
+ imports: [CommonModule],
17
+ exports: [PopoverComponent, PopoverDirective],
18
+ providers: [PopoverService],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQVFuRCxNQUFNLE9BQU8sYUFBYTt3R0FBYixhQUFhO3lHQUFiLGFBQWEsaUJBTFQsZ0JBQWdCLEVBQUUsZ0JBQWdCLGFBQ3ZDLFlBQVksYUFDWixnQkFBZ0IsRUFBRSxnQkFBZ0I7eUdBR2pDLGFBQWEsYUFGYixDQUFDLGNBQWMsQ0FBQyxZQUZqQixZQUFZOzs0RkFJWCxhQUFhO2tCQU56QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb3BvdmVyU2VydmljZSB9IGZyb20gJy4vcG9wb3Zlci5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUG9wb3ZlckNvbXBvbmVudCwgUG9wb3ZlckRpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbUG9wb3ZlckNvbXBvbmVudCwgUG9wb3ZlckRpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1BvcG92ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3Zlck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class PopoverService {
4
+ stopScroll = false;
5
+ positionX;
6
+ positionY;
7
+ popoverHeight;
8
+ popoverWidth;
9
+ elementPosition;
10
+ elementDirection;
11
+ constructor() {
12
+ console.log(this.popoverHeight);
13
+ }
14
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
15
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverService, providedIn: 'root' });
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PopoverService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root',
21
+ }]
22
+ }], ctorParameters: function () { return []; } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL3VpLWtpdC9wb3BvdmVyL3BvcG92ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sY0FBYztJQUN6QixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFNBQVMsQ0FBVTtJQUNuQixTQUFTLENBQVU7SUFDbkIsYUFBYSxDQUFNO0lBQ25CLFlBQVksQ0FBTTtJQUNsQixlQUFlLENBQU07SUFDckIsZ0JBQWdCLENBQU07SUFDdEI7UUFDRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsQyxDQUFDO3dHQVZVLGNBQWM7NEdBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlclNlcnZpY2Uge1xuICBzdG9wU2Nyb2xsID0gZmFsc2U7XG4gIHBvc2l0aW9uWCE6IG51bWJlcjtcbiAgcG9zaXRpb25ZITogbnVtYmVyO1xuICBwb3BvdmVySGVpZ2h0OiBhbnk7XG4gIHBvcG92ZXJXaWR0aDogYW55O1xuICBlbGVtZW50UG9zaXRpb246IGFueTtcbiAgZWxlbWVudERpcmVjdGlvbjogYW55O1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnBvcG92ZXJIZWlnaHQpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../cs-select/cs-select.component";
4
+ import * as i2 from "../../services/cs-select.service";
5
+ export class CsOptionComponent {
6
+ csSelect;
7
+ colorSelector;
8
+ value;
9
+ option;
10
+ color;
11
+ constructor(csSelect, colorSelector) {
12
+ this.csSelect = csSelect;
13
+ this.colorSelector = colorSelector;
14
+ this.value = '';
15
+ }
16
+ ngOnInit() { }
17
+ change(event) {
18
+ if (this.option) {
19
+ setTimeout(() => {
20
+ this.csSelect.valuePlaceholder = this.option.nativeElement.innerHTML;
21
+ this.colorSelector.color = this.color;
22
+ console.log(this.color);
23
+ }, 1);
24
+ }
25
+ this.csSelect.writeValue(this.value);
26
+ }
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsOptionComponent, deps: [{ token: i1.CsSelectComponent }, { token: i2.CsSelectService }], target: i0.ɵɵFactoryTarget.Component });
28
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CsOptionComponent, selector: "cs-option", inputs: { value: "value", color: "color" }, viewQueries: [{ propertyName: "option", first: true, predicate: ["options"], descendants: true }], ngImport: i0, template: "<div class=\"list\">\n <label>\n <input type=\"radio\" tabindex=\"0\" [value]=\"value\" [name]=\"csSelect.name\" (click)=\"change($event)\" [checked]=\"csSelect.val === this.value\" />\n <span class=\"value\" #options>\n <ng-content></ng-content>\n </span>\n </label>\n</div>\n", styles: [".list label{line-height:23px;font-size:13px;font-weight:400;border-radius:4px;display:flex;position:relative;margin:0;align-items:center}.list label input[type=radio]{position:absolute;margin:0;height:100%;width:100%;opacity:0;cursor:pointer}.list label input[type=radio]:checked+span,.list label input[type=radio]:hover+span{background:#dcdcdc}.list label span.value{color:#747576;font-size:14px;line-height:21px;font-weight:400;max-width:100%;white-space:nowrap;overflow:hidden;display:block;text-overflow:ellipsis;padding:5px 15px;width:100%;text-transform:none;cursor:pointer;text-align:left}\n"] });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsOptionComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'cs-option', template: "<div class=\"list\">\n <label>\n <input type=\"radio\" tabindex=\"0\" [value]=\"value\" [name]=\"csSelect.name\" (click)=\"change($event)\" [checked]=\"csSelect.val === this.value\" />\n <span class=\"value\" #options>\n <ng-content></ng-content>\n </span>\n </label>\n</div>\n", styles: [".list label{line-height:23px;font-size:13px;font-weight:400;border-radius:4px;display:flex;position:relative;margin:0;align-items:center}.list label input[type=radio]{position:absolute;margin:0;height:100%;width:100%;opacity:0;cursor:pointer}.list label input[type=radio]:checked+span,.list label input[type=radio]:hover+span{background:#dcdcdc}.list label span.value{color:#747576;font-size:14px;line-height:21px;font-weight:400;max-width:100%;white-space:nowrap;overflow:hidden;display:block;text-overflow:ellipsis;padding:5px 15px;width:100%;text-transform:none;cursor:pointer;text-align:left}\n"] }]
33
+ }], ctorParameters: function () { return [{ type: i1.CsSelectComponent }, { type: i2.CsSelectService }]; }, propDecorators: { value: [{
34
+ type: Input
35
+ }], option: [{
36
+ type: ViewChild,
37
+ args: ['options']
38
+ }], color: [{
39
+ type: Input
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Mtb3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi91aS1raXQvc2VsZWN0L2NzLW9wdGlvbi9jcy1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL3VpLWtpdC9zZWxlY3QvY3Mtb3B0aW9uL2NzLW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQTJCLE1BQU0sZUFBZSxDQUFDOzs7O0FBVXpHLE1BQU0sT0FBTyxpQkFBaUI7SUFJVDtJQUFvQztJQUg5QyxLQUFLLENBQVU7SUFDRixNQUFNLENBQWM7SUFDakMsS0FBSyxDQUFPO0lBQ3JCLFlBQW1CLFFBQTJCLEVBQVMsYUFBOEI7UUFBbEUsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFDbkYsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVEsS0FBVyxDQUFDO0lBRXBCLE1BQU0sQ0FBQyxLQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0FuQlUsaUJBQWlCOzRGQUFqQixpQkFBaUIsZ01DVjlCLHVTQVFBOzs0RkRFYSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBRUUsV0FBVztzSUFLWixLQUFLO3NCQUFiLEtBQUs7Z0JBQ2dCLE1BQU07c0JBQTNCLFNBQVM7dUJBQUMsU0FBUztnQkFDWCxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENzU2VsZWN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NzLXNlbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IENzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY3Mtc2VsZWN0L2NzLXNlbGVjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2NzLW9wdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcy1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcy1vcHRpb24uY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3NPcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB2YWx1ZSE6IHN0cmluZztcbiAgQFZpZXdDaGlsZCgnb3B0aW9ucycpIG9wdGlvbiE6IEVsZW1lbnRSZWY7XG4gIEBJbnB1dCgpIGNvbG9yITogYW55O1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgY3NTZWxlY3Q6IENzU2VsZWN0Q29tcG9uZW50LCBwdWJsaWMgY29sb3JTZWxlY3RvcjogQ3NTZWxlY3RTZXJ2aWNlKSB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICBjaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wdGlvbikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3NTZWxlY3QudmFsdWVQbGFjZWhvbGRlciA9IHRoaXMub3B0aW9uLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgICB0aGlzLmNvbG9yU2VsZWN0b3IuY29sb3IgPSB0aGlzLmNvbG9yO1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmNvbG9yKTtcbiAgICAgIH0sIDEpO1xuICAgIH1cbiAgICB0aGlzLmNzU2VsZWN0LndyaXRlVmFsdWUodGhpcy52YWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsaXN0XCI+XG4gIDxsYWJlbD5cbiAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgdGFiaW5kZXg9XCIwXCIgW3ZhbHVlXT1cInZhbHVlXCIgW25hbWVdPVwiY3NTZWxlY3QubmFtZVwiIChjbGljayk9XCJjaGFuZ2UoJGV2ZW50KVwiIFtjaGVja2VkXT1cImNzU2VsZWN0LnZhbCA9PT0gdGhpcy52YWx1ZVwiIC8+XG4gICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiICNvcHRpb25zPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,107 @@
1
+ import { Component, forwardRef, Input, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { nanoid } from 'nanoid';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "../safe-html.pipe";
7
+ // import { CsOptionComponent } from '../cs-option/cs-option.component';
8
+ export class CsSelectComponent {
9
+ dropdownLabel;
10
+ dropdownSubLabel;
11
+ isRequired;
12
+ placeholder;
13
+ // @ContentChildren(CsOptionComponent) op !: QueryList<CsOptionComponent>;
14
+ dropdownToggle;
15
+ positionReset;
16
+ getLeft;
17
+ getTop;
18
+ getWidth;
19
+ maxWidth;
20
+ valuePlaceholder;
21
+ optionList;
22
+ set content(content) {
23
+ if (content) {
24
+ // initially setter gets called with undefined
25
+ this.optionList = content;
26
+ }
27
+ }
28
+ name;
29
+ val;
30
+ showOptions;
31
+ constructor() {
32
+ this.name = nanoid();
33
+ this.valuePlaceholder = '';
34
+ }
35
+ ngOnInit() { }
36
+ onChange = () => { };
37
+ onTouch = () => { };
38
+ set RadioVal(val) {
39
+ if (val !== undefined && val !== null && this.val !== val) {
40
+ this.val = val;
41
+ console.log('VALUE', this.val);
42
+ this.onChange(val);
43
+ this.onTouch(val);
44
+ }
45
+ }
46
+ writeValue(value) {
47
+ if (value) {
48
+ this.RadioVal = value;
49
+ }
50
+ }
51
+ registerOnChange(fn) {
52
+ this.onChange = fn;
53
+ }
54
+ registerOnTouched(fn) {
55
+ this.onTouch = fn;
56
+ }
57
+ openDropdown(event) {
58
+ this.dropdownToggle = true;
59
+ setTimeout(() => {
60
+ const dropdown = event.target.getBoundingClientRect();
61
+ const selectOption = this.optionList.nativeElement.offsetHeight;
62
+ if (dropdown.top + selectOption * 2 > window.innerHeight) {
63
+ this.getTop = dropdown.top - selectOption;
64
+ }
65
+ else {
66
+ this.getTop = dropdown.top + dropdown.height;
67
+ }
68
+ this.getLeft = dropdown.left;
69
+ this.getWidth = dropdown.width;
70
+ this.maxWidth = dropdown.width * 1.25;
71
+ this.showOptions = true;
72
+ }, 10);
73
+ }
74
+ closeDropdown() {
75
+ this.dropdownToggle = false;
76
+ }
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
78
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CsSelectComponent, selector: "cs-select", inputs: { dropdownLabel: "dropdownLabel", dropdownSubLabel: "dropdownSubLabel", isRequired: "isRequired", placeholder: "placeholder" }, providers: [
79
+ {
80
+ provide: NG_VALUE_ACCESSOR,
81
+ useExisting: forwardRef(() => CsSelectComponent),
82
+ multi: true,
83
+ },
84
+ ], viewQueries: [{ propertyName: "content", first: true, predicate: ["optionList"], descendants: true }], ngImport: i0, template: "<div class=\"selection-wrap\">\n <label class=\"label\" *ngIf=\"dropdownLabel != undefined\">\n {{ dropdownLabel }}\n <span class=\"sub-label\">{{ dropdownSubLabel }}</span>\n <span class=\"required\" *ngIf=\"isRequired\">*</span>\n </label>\n <div class=\"input-group\">\n <span class=\"value\" (click)=\"openDropdown($event)\" (keyup.enter)=\"openDropdown($event)\" tabindex=\"0\" [attr.aria-placeholder]=\"placeholder\" [innerHTML]=\"valuePlaceholder | safeHtml\"></span>\n </div>\n <div class=\"overlay\" *ngIf=\"dropdownToggle === true\" (click)=\"closeDropdown()\"></div>\n <div class=\"select-options\" *ngIf=\"dropdownToggle === true\" #optionList (keyup.Escape)=\"closeDropdown()\"\n (keyup.enter)=\"closeDropdown()\" (click)=\"closeDropdown()\" [style.top.px]=\"getTop\" [style.left.px]=\"getLeft\"\n [style.width.px]=\"getWidth\" [class.active]=\"showOptions\">\n <ng-content select=\"cs-option\"></ng-content>\n </div>\n</div>", styles: ["::ng-deep .selection-wrap{display:block}::ng-deep .selection-wrap *{box-sizing:border-box}::ng-deep .selection-wrap label.label{font-size:11px;color:#161b2f;font-weight:500;line-height:16px;margin-bottom:5px;text-transform:uppercase;display:block}::ng-deep .selection-wrap label.label span.required{color:#eb2424;font-size:14px}::ng-deep .selection-wrap label.label span.sub-label{color:#747576;font-size:11px;font-weight:400;margin-left:3px}::ng-deep .selection-wrap .input-group{display:flex;position:relative}::ng-deep .selection-wrap .input-group .value{height:40px;line-height:16px;font-size:13px;color:#747576;font-weight:400;background:#fff;border:1px solid #dbdbdb;border-radius:4px;width:100%;padding:12px 20px 12px 13px;display:block;outline:none;cursor:pointer}::ng-deep .selection-wrap .input-group .value:empty:before{content:attr(aria-placeholder);line-height:16px;width:94%;display:block;pointer-events:none;position:absolute;top:calc(50% - 8px)}::ng-deep .selection-wrap .input-group .value *{pointer-events:none}::ng-deep .selection-wrap .input-group:after{content:\"\";border-top:4px solid #707070;border-right:4px solid transparent;border-left:4px solid transparent;position:absolute;right:16px;top:calc(50% - 2px)}::ng-deep .selection-wrap .overlay{position:fixed;inset:0;background:transparent;z-index:9}::ng-deep .selection-wrap .select-options{position:fixed;overflow:auto;max-height:200px;padding:0;margin:0;display:block;border:1px solid #dbdbdb;box-shadow:0 3px 6px #1e5dd333;z-index:2147483002;background:#fff;border-radius:2px;opacity:0}::ng-deep .selection-wrap .select-options.hidden{opacity:0}::ng-deep .selection-wrap .select-options.active{opacity:1}::ng-deep .selection-wrap .select-options.reset{top:inherit;bottom:100%;box-shadow:0 -3px 6px #1e5dd333}::ng-deep .selection-wrap .select-options cs-option .list label span.value span{display:flex;border-radius:2px;padding:0 12px;font-size:12px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.SafeHtmlPipe, name: "safeHtml" }] });
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsSelectComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ selector: 'cs-select', providers: [
89
+ {
90
+ provide: NG_VALUE_ACCESSOR,
91
+ useExisting: forwardRef(() => CsSelectComponent),
92
+ multi: true,
93
+ },
94
+ ], template: "<div class=\"selection-wrap\">\n <label class=\"label\" *ngIf=\"dropdownLabel != undefined\">\n {{ dropdownLabel }}\n <span class=\"sub-label\">{{ dropdownSubLabel }}</span>\n <span class=\"required\" *ngIf=\"isRequired\">*</span>\n </label>\n <div class=\"input-group\">\n <span class=\"value\" (click)=\"openDropdown($event)\" (keyup.enter)=\"openDropdown($event)\" tabindex=\"0\" [attr.aria-placeholder]=\"placeholder\" [innerHTML]=\"valuePlaceholder | safeHtml\"></span>\n </div>\n <div class=\"overlay\" *ngIf=\"dropdownToggle === true\" (click)=\"closeDropdown()\"></div>\n <div class=\"select-options\" *ngIf=\"dropdownToggle === true\" #optionList (keyup.Escape)=\"closeDropdown()\"\n (keyup.enter)=\"closeDropdown()\" (click)=\"closeDropdown()\" [style.top.px]=\"getTop\" [style.left.px]=\"getLeft\"\n [style.width.px]=\"getWidth\" [class.active]=\"showOptions\">\n <ng-content select=\"cs-option\"></ng-content>\n </div>\n</div>", styles: ["::ng-deep .selection-wrap{display:block}::ng-deep .selection-wrap *{box-sizing:border-box}::ng-deep .selection-wrap label.label{font-size:11px;color:#161b2f;font-weight:500;line-height:16px;margin-bottom:5px;text-transform:uppercase;display:block}::ng-deep .selection-wrap label.label span.required{color:#eb2424;font-size:14px}::ng-deep .selection-wrap label.label span.sub-label{color:#747576;font-size:11px;font-weight:400;margin-left:3px}::ng-deep .selection-wrap .input-group{display:flex;position:relative}::ng-deep .selection-wrap .input-group .value{height:40px;line-height:16px;font-size:13px;color:#747576;font-weight:400;background:#fff;border:1px solid #dbdbdb;border-radius:4px;width:100%;padding:12px 20px 12px 13px;display:block;outline:none;cursor:pointer}::ng-deep .selection-wrap .input-group .value:empty:before{content:attr(aria-placeholder);line-height:16px;width:94%;display:block;pointer-events:none;position:absolute;top:calc(50% - 8px)}::ng-deep .selection-wrap .input-group .value *{pointer-events:none}::ng-deep .selection-wrap .input-group:after{content:\"\";border-top:4px solid #707070;border-right:4px solid transparent;border-left:4px solid transparent;position:absolute;right:16px;top:calc(50% - 2px)}::ng-deep .selection-wrap .overlay{position:fixed;inset:0;background:transparent;z-index:9}::ng-deep .selection-wrap .select-options{position:fixed;overflow:auto;max-height:200px;padding:0;margin:0;display:block;border:1px solid #dbdbdb;box-shadow:0 3px 6px #1e5dd333;z-index:2147483002;background:#fff;border-radius:2px;opacity:0}::ng-deep .selection-wrap .select-options.hidden{opacity:0}::ng-deep .selection-wrap .select-options.active{opacity:1}::ng-deep .selection-wrap .select-options.reset{top:inherit;bottom:100%;box-shadow:0 -3px 6px #1e5dd333}::ng-deep .selection-wrap .select-options cs-option .list label span.value span{display:flex;border-radius:2px;padding:0 12px;font-size:12px}\n"] }]
95
+ }], ctorParameters: function () { return []; }, propDecorators: { dropdownLabel: [{
96
+ type: Input
97
+ }], dropdownSubLabel: [{
98
+ type: Input
99
+ }], isRequired: [{
100
+ type: Input
101
+ }], placeholder: [{
102
+ type: Input
103
+ }], content: [{
104
+ type: ViewChild,
105
+ args: ['optionList']
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Mtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi91aS1raXQvc2VsZWN0L2NzLXNlbGVjdC9jcy1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL3VpLWtpdC9zZWxlY3QvY3Mtc2VsZWN0L2NzLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7O0FBQ2hDLHdFQUF3RTtBQWV4RSxNQUFNLE9BQU8saUJBQWlCO0lBQ25CLGFBQWEsQ0FBVTtJQUN2QixnQkFBZ0IsQ0FBVTtJQUMxQixVQUFVLENBQVU7SUFDcEIsV0FBVyxDQUFVO0lBRTlCLDBFQUEwRTtJQUUxRSxjQUFjLENBQVc7SUFDekIsYUFBYSxDQUFXO0lBQ3hCLE9BQU8sQ0FBVTtJQUNqQixNQUFNLENBQVU7SUFDaEIsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsQ0FBVTtJQUVsQixnQkFBZ0IsQ0FBVTtJQUNsQixVQUFVLENBQWM7SUFFaEMsSUFBNkIsT0FBTyxDQUFDLE9BQW1CO1FBQ3RELElBQUksT0FBTyxFQUFFO1lBQ1gsOENBQThDO1lBQzlDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBVTtJQUNkLEdBQUcsQ0FBVTtJQUNiLFdBQVcsQ0FBVztJQUN0QjtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcs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Z0JBY3VCLE9BQU87c0JBQW5DLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBRdWVyeUxpc3QsIENvbnRlbnRDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xuLy8gaW1wb3J0IHsgQ3NPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9jcy1vcHRpb24vY3Mtb3B0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnY3Mtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NzLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NzLXNlbGVjdC5jb21wb25lbnQubGVzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENzU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENzU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZHJvcGRvd25MYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgZHJvcGRvd25TdWJMYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgaXNSZXF1aXJlZCE6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIhOiBzdHJpbmc7XG5cbiAgLy8gQENvbnRlbnRDaGlsZHJlbihDc09wdGlvbkNvbXBvbmVudCkgb3AgITogUXVlcnlMaXN0PENzT3B0aW9uQ29tcG9uZW50PjtcblxuICBkcm9wZG93blRvZ2dsZSE6IGJvb2xlYW47XG4gIHBvc2l0aW9uUmVzZXQhOiBib29sZWFuO1xuICBnZXRMZWZ0ITogbnVtYmVyO1xuICBnZXRUb3AhOiBudW1iZXI7XG4gIGdldFdpZHRoITogbnVtYmVyO1xuICBtYXhXaWR0aCE6IG51bWJlcjtcblxuICB2YWx1ZVBsYWNlaG9sZGVyITogc3RyaW5nO1xuICBwcml2YXRlIG9wdGlvbkxpc3QhOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbkxpc3QnKSBzZXQgY29udGVudChjb250ZW50OiBFbGVtZW50UmVmKSB7XG4gICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgIC8vIGluaXRpYWxseSBzZXR0ZXIgZ2V0cyBjYWxsZWQgd2l0aCB1bmRlZmluZWRcbiAgICAgIHRoaXMub3B0aW9uTGlzdCA9IGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIG5hbWUhOiBzdHJpbmc7XG4gIHZhbCE6IHN0cmluZztcbiAgc2hvd09wdGlvbnMhOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW5vaWQoKTtcbiAgICB0aGlzLnZhbHVlUGxhY2Vob2xkZXIgPSAnJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gIHNldCBSYWRpb1ZhbCh2YWw6IGFueSkge1xuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgJiYgdGhpcy52YWwgIT09IHZhbCkge1xuICAgICAgdGhpcy52YWwgPSB2YWw7XG4gICAgICBjb25zb2xlLmxvZygnVkFMVUUnLCB0aGlzLnZhbCk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XG4gICAgICB0aGlzLm9uVG91Y2godmFsKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZih2YWx1ZSkge1xuICAgIHRoaXMuUmFkaW9WYWwgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBvcGVuRHJvcGRvd24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd25Ub2dnbGUgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZHJvcGRvd24gPSBldmVudC50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBzZWxlY3RPcHRpb24gPSB0aGlzLm9wdGlvbkxpc3QubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICBpZiAoZHJvcGRvd24udG9wICsgc2VsZWN0T3B0aW9uICogMiA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgICAgICB0aGlzLmdldFRvcCA9IGRyb3Bkb3duLnRvcCAtIHNlbGVjdE9wdGlvbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZ2V0VG9wID0gZHJvcGRvd24udG9wICsgZHJvcGRvd24uaGVpZ2h0O1xuICAgICAgfVxuICAgICAgdGhpcy5nZXRMZWZ0ID0gZHJvcGRvd24ubGVmdDtcbiAgICAgIHRoaXMuZ2V0V2lkdGggPSBkcm9wZG93bi53aWR0aDtcbiAgICAgIHRoaXMubWF4V2lkdGggPSBkcm9wZG93bi53aWR0aCAqIDEuMjU7XG4gICAgICB0aGlzLnNob3dPcHRpb25zID0gdHJ1ZTtcbiAgICB9LCAxMCk7XG4gIH1cbiAgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duVG9nZ2xlID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWxlY3Rpb24td3JhcFwiPlxuICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiICpuZ0lmPVwiZHJvcGRvd25MYWJlbCAhPSB1bmRlZmluZWRcIj5cbiAgICB7eyBkcm9wZG93bkxhYmVsIH19XG4gICAgPHNwYW4gY2xhc3M9XCJzdWItbGFiZWxcIj57eyBkcm9wZG93blN1YkxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIiAqbmdJZj1cImlzUmVxdWlyZWRcIj4qPC9zcGFuPlxuICA8L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCIgdGFiaW5kZXg9XCIwXCIgW2F0dHIuYXJpYS1wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtpbm5lckhUTUxdPVwidmFsdWVQbGFjZWhvbGRlciB8IHNhZmVIdG1sXCI+PC9zcGFuPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAqbmdJZj1cImRyb3Bkb3duVG9nZ2xlID09PSB0cnVlXCIgKGNsaWNrKT1cImNsb3NlRHJvcGRvd24oKVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2VsZWN0LW9wdGlvbnNcIiAqbmdJZj1cImRyb3Bkb3duVG9nZ2xlID09PSB0cnVlXCIgI29wdGlvbkxpc3QgKGtleXVwLkVzY2FwZSk9XCJjbG9zZURyb3Bkb3duKClcIlxuICAgIChrZXl1cC5lbnRlcik9XCJjbG9zZURyb3Bkb3duKClcIiAoY2xpY2spPVwiY2xvc2VEcm9wZG93bigpXCIgW3N0eWxlLnRvcC5weF09XCJnZXRUb3BcIiBbc3R5bGUubGVmdC5weF09XCJnZXRMZWZ0XCJcbiAgICBbc3R5bGUud2lkdGgucHhdPVwiZ2V0V2lkdGhcIiBbY2xhc3MuYWN0aXZlXT1cInNob3dPcHRpb25zXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY3Mtb3B0aW9uXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class SafeHtmlPipe {
5
+ sanitizer;
6
+ constructor(sanitizer) {
7
+ this.sanitizer = sanitizer;
8
+ }
9
+ transform(html) {
10
+ return this.sanitizer.bypassSecurityTrustHtml(html);
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
13
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SafeHtmlPipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{
18
+ name: 'safeHtml'
19
+ }]
20
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3NlbGVjdC9zYWZlLWh0bWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7O0FBTXBELE1BQU0sT0FBTyxZQUFZO0lBQ0g7SUFBcEIsWUFBb0IsU0FBc0I7UUFBdEIsY0FBUyxHQUFULFNBQVMsQ0FBYTtJQUFFLENBQUM7SUFDN0MsU0FBUyxDQUFDLElBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7d0dBSlUsWUFBWTtzR0FBWixZQUFZOzs0RkFBWixZQUFZO2tCQUh4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzYWZlSHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOkRvbVNhbml0aXplcil7fVxuICB0cmFuc2Zvcm0oaHRtbDogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CsSelectComponent } from './cs-select/cs-select.component';
4
+ import { CsOptionComponent } from './cs-option/cs-option.component';
5
+ import { FormsModule } from '@angular/forms';
6
+ import { SafeHtmlPipe } from './safe-html.pipe';
7
+ import * as i0 from "@angular/core";
8
+ export class SelectModule {
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SelectModule, declarations: [CsSelectComponent, CsOptionComponent, SafeHtmlPipe], imports: [FormsModule, CommonModule], exports: [CsSelectComponent, CsOptionComponent] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectModule, imports: [FormsModule, CommonModule] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ declarations: [CsSelectComponent, CsOptionComponent, SafeHtmlPipe],
17
+ imports: [FormsModule, CommonModule],
18
+ exports: [CsSelectComponent, CsOptionComponent],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi91aS1raXQvc2VsZWN0L3NlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPaEQsTUFBTSxPQUFPLFlBQVk7d0dBQVosWUFBWTt5R0FBWixZQUFZLGlCQUpSLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFlBQVksYUFDdkQsV0FBVyxFQUFFLFlBQVksYUFDekIsaUJBQWlCLEVBQUUsaUJBQWlCO3lHQUVuQyxZQUFZLFlBSGIsV0FBVyxFQUFFLFlBQVk7OzRGQUd4QixZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQztvQkFDbEUsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY3Mtc2VsZWN0L2NzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3NPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NzLW9wdGlvbi9jcy1vcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi9zYWZlLWh0bWwucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NzU2VsZWN0Q29tcG9uZW50LCBDc09wdGlvbkNvbXBvbmVudCwgU2FmZUh0bWxQaXBlXSxcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbQ3NTZWxlY3RDb21wb25lbnQsIENzT3B0aW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CsSelectService {
4
+ color;
5
+ constructor() {
6
+ }
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsSelectService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsSelectService, providedIn: 'root' });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CsSelectService, decorators: [{
11
+ type: Injectable,
12
+ args: [{
13
+ providedIn: 'root'
14
+ }]
15
+ }], ctorParameters: function () { return []; } });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Mtc2VsZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcmVhdGUtZGFzaGJvYXJkL3NyYy9saWIvdWkta2l0L3NlcnZpY2VzL2NzLXNlbGVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxlQUFlO0lBQzFCLEtBQUssQ0FBTTtJQUNYO0lBQ0EsQ0FBQzt3R0FIVSxlQUFlOzRHQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ3NTZWxlY3RTZXJ2aWNlIHtcbiAgY29sb3I6IGFueTtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cbiJdfQ==