@agorapulse/ui-components 0.0.1 → 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 (186) hide show
  1. package/agorapulse-ui-components-13.0.0.tgz +0 -0
  2. package/agorapulse-ui-components.d.ts +1 -5
  3. package/assets/{lib-ui/icons → icons}/facebook-icon.png +0 -0
  4. package/assets/{lib-ui/icons → icons}/google-icon.png +0 -0
  5. package/assets/{lib-ui/icons → icons}/instagram-icon.png +0 -0
  6. package/assets/{lib-ui/icons → icons}/linkedin-icon.png +0 -0
  7. package/assets/{lib-ui/icons → icons}/pinterest-icon.png +0 -0
  8. package/assets/{lib-ui/icons → icons}/twitter-icon.png +0 -0
  9. package/assets/{lib-ui/icons → icons}/youtube-icon.png +0 -0
  10. package/assets/{lib-ui/img → img}/default-avatar-organization.png +0 -0
  11. package/assets/{lib-ui/img → img}/default-avatar-user.png +0 -0
  12. package/assets/{lib-ui/img → img}/default-avatar.png +0 -0
  13. package/assets/{lib-ui/img → img}/spinner_animation.gif +0 -0
  14. package/esm2020/agorapulse-ui-components.mjs +5 -0
  15. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  16. package/esm2020/src/lib/add-comment/add-comment.component.mjs +62 -0
  17. package/esm2020/src/lib/agorapulse-ui-components.module.mjs +520 -0
  18. package/esm2020/src/lib/avatar/avatar.component.mjs +92 -0
  19. package/{esm2015/src/lib/confirm-modal/confirm-modal-texts.model.js → esm2020/src/lib/confirm-modal/confirm-modal-texts.model.mjs} +0 -0
  20. package/esm2020/src/lib/confirm-modal/confirm-modal.component.mjs +61 -0
  21. package/esm2020/src/lib/datepicker/datepicker.component.mjs +219 -0
  22. package/esm2020/src/lib/directives/autosize-textarea.directive.mjs +43 -0
  23. package/esm2020/src/lib/directives/default-image.directive.mjs +29 -0
  24. package/esm2020/src/lib/directives/ellipsis.directive.mjs +87 -0
  25. package/esm2020/src/lib/directives/equal-validator.directive.mjs +64 -0
  26. package/esm2020/src/lib/directives/frozen-gif.directive.mjs +116 -0
  27. package/esm2020/src/lib/directives/multi-style-text.directive.mjs +101 -0
  28. package/esm2020/src/lib/directives/truncate-tooltip.directive.mjs +33 -0
  29. package/esm2020/src/lib/dots-stepper/dots-stepper.component.mjs +43 -0
  30. package/esm2020/src/lib/edit-tag-modal/edit-tags-modal.component.mjs +147 -0
  31. package/{esm2015/src/lib/edit-tag-modal/model/edit-tags-modal.model.js → esm2020/src/lib/edit-tag-modal/model/edit-tags-modal.model.mjs} +0 -0
  32. package/esm2020/src/lib/feature-onboarding/feature-onboarding.component.mjs +35 -0
  33. package/esm2020/src/lib/image-carousel/image-carousel.component.mjs +152 -0
  34. package/{esm2015/src/lib/lead-modal/lead-info.model.js → esm2020/src/lib/lead-modal/lead-info.model.mjs} +0 -0
  35. package/esm2020/src/lib/lead-modal/lead-modal.component.mjs +49 -0
  36. package/esm2020/src/lib/media-display-overlay/media-display-overlay-dialog.component.mjs +87 -0
  37. package/esm2020/src/lib/modal/modal.component.mjs +96 -0
  38. package/esm2020/src/lib/notification/notification.component.mjs +17 -0
  39. package/esm2020/src/lib/overlay/overlay-dialog-service.component.mjs +61 -0
  40. package/esm2020/src/lib/overlay/overlay-dialog.component.mjs +33 -0
  41. package/esm2020/src/lib/overlay-in-div/overlay-in-div.component.mjs +27 -0
  42. package/esm2020/src/lib/paginator/paginator-button/paginator-button.component.mjs +23 -0
  43. package/esm2020/src/lib/paginator/paginator.component.mjs +54 -0
  44. package/esm2020/src/lib/password-input/password-input.component.mjs +68 -0
  45. package/esm2020/src/lib/password-strength-bar/password-strength-bar.component.mjs +83 -0
  46. package/esm2020/src/lib/password-strength-display-bar/password-strength-display-bar.component.mjs +45 -0
  47. package/esm2020/src/lib/phone-number-input/phone-number-input.component.mjs +144 -0
  48. package/esm2020/src/lib/places/place-list.component.mjs +11 -0
  49. package/esm2020/src/lib/places/place.component.mjs +14 -0
  50. package/{esm2015/src/lib/popmenu/options.js → esm2020/src/lib/popmenu/options.mjs} +0 -0
  51. package/{esm2015/src/lib/popmenu/popmenu-options.interface.js → esm2020/src/lib/popmenu/popmenu-options.interface.mjs} +0 -0
  52. package/{esm2015/src/lib/popmenu/popmenu-options.service.js → esm2020/src/lib/popmenu/popmenu-options.service.mjs} +0 -0
  53. package/esm2020/src/lib/popmenu/popmenu.component.mjs +344 -0
  54. package/esm2020/src/lib/popmenu/popmenu.directive.mjs +235 -0
  55. package/esm2020/src/lib/popmenu/popmenu.module.mjs +45 -0
  56. package/esm2020/src/lib/slide-toggle/slide-toggle.component.mjs +66 -0
  57. package/esm2020/src/lib/snackbar/snackbar.component.mjs +21 -0
  58. package/esm2020/src/lib/snackbars-thread/component/snackbars-thread.component.mjs +70 -0
  59. package/{esm2015/src/lib/snackbars-thread/model/snackbars-thread.model.js → esm2020/src/lib/snackbars-thread/model/snackbars-thread.model.mjs} +0 -0
  60. package/esm2020/src/lib/snackbars-thread/service/snackbars-thread.service.mjs +41 -0
  61. package/{esm2015/src/lib/snackbars-thread/utils/const/snackbars-thread.const.js → esm2020/src/lib/snackbars-thread/utils/const/snackbars-thread.const.mjs} +0 -0
  62. package/esm2020/src/lib/splashscreen/splashscreen.component.mjs +43 -0
  63. package/esm2020/src/lib/star-rating/star-rating.component.mjs +43 -0
  64. package/{esm2015/src/lib/stepper/step.model.js → esm2020/src/lib/stepper/step.model.mjs} +0 -0
  65. package/esm2020/src/lib/stepper/stepper.component.mjs +36 -0
  66. package/esm2020/src/lib/tags/tag-list.component.mjs +11 -0
  67. package/esm2020/src/lib/tags/tag.component.mjs +20 -0
  68. package/esm2020/src/lib/tags-selector/tags-selector.component.mjs +81 -0
  69. package/esm2020/src/lib/timepicker/timepicker.component.mjs +383 -0
  70. package/esm2020/src/lib/tooltip-neo/tooltip-neo.component.mjs +49 -0
  71. package/{esm2015/src/lib/tooltip-neo/tooltip-neo.const.js → esm2020/src/lib/tooltip-neo/tooltip-neo.const.mjs} +0 -0
  72. package/esm2020/src/lib/tooltip-neo/tooltip-neo.directive.mjs +106 -0
  73. package/{esm2015/src/lib/tooltip-neo/tooltip-neo.model.js → esm2020/src/lib/tooltip-neo/tooltip-neo.model.mjs} +0 -0
  74. package/esm2020/src/lib/tooltip-neo/tooltip-neo.service.mjs +17 -0
  75. package/{esm2015/src/lib/try-popup/try-popup-texts.model.js → esm2020/src/lib/try-popup/try-popup-texts.model.mjs} +0 -0
  76. package/esm2020/src/lib/try-popup/try-popup.component.mjs +37 -0
  77. package/fesm2015/agorapulse-ui-components.mjs +4183 -0
  78. package/fesm2015/agorapulse-ui-components.mjs.map +1 -0
  79. package/fesm2020/agorapulse-ui-components.mjs +4158 -0
  80. package/fesm2020/agorapulse-ui-components.mjs.map +1 -0
  81. package/package.json +29 -18
  82. package/src/lib/add-comment/add-comment.component.d.ts +3 -0
  83. package/src/lib/agorapulse-ui-components.module.d.ts +78 -0
  84. package/src/lib/avatar/avatar.component.d.ts +3 -0
  85. package/src/lib/confirm-modal/confirm-modal.component.d.ts +3 -0
  86. package/src/lib/datepicker/datepicker.component.d.ts +3 -0
  87. package/src/lib/directives/autosize-textarea.directive.d.ts +3 -0
  88. package/src/lib/directives/default-image.directive.d.ts +3 -0
  89. package/src/lib/directives/ellipsis.directive.d.ts +3 -0
  90. package/src/lib/directives/equal-validator.directive.d.ts +3 -0
  91. package/src/lib/directives/frozen-gif.directive.d.ts +3 -0
  92. package/src/lib/directives/multi-style-text.directive.d.ts +3 -0
  93. package/src/lib/directives/truncate-tooltip.directive.d.ts +3 -0
  94. package/src/lib/dots-stepper/dots-stepper.component.d.ts +3 -0
  95. package/src/lib/edit-tag-modal/edit-tags-modal.component.d.ts +3 -0
  96. package/src/lib/feature-onboarding/feature-onboarding.component.d.ts +3 -0
  97. package/src/lib/image-carousel/image-carousel.component.d.ts +3 -0
  98. package/src/lib/lead-modal/lead-modal.component.d.ts +3 -0
  99. package/src/lib/media-display-overlay/media-display-overlay-dialog.component.d.ts +3 -0
  100. package/src/lib/modal/modal.component.d.ts +3 -0
  101. package/src/lib/notification/notification.component.d.ts +3 -0
  102. package/src/lib/overlay/overlay-dialog-service.component.d.ts +3 -0
  103. package/src/lib/overlay/overlay-dialog.component.d.ts +3 -0
  104. package/src/lib/overlay-in-div/overlay-in-div.component.d.ts +3 -0
  105. package/src/lib/paginator/paginator-button/paginator-button.component.d.ts +3 -0
  106. package/src/lib/paginator/paginator.component.d.ts +3 -0
  107. package/src/lib/password-input/password-input.component.d.ts +3 -0
  108. package/src/lib/password-strength-bar/password-strength-bar.component.d.ts +3 -0
  109. package/src/lib/password-strength-display-bar/password-strength-display-bar.component.d.ts +3 -0
  110. package/src/lib/phone-number-input/phone-number-input.component.d.ts +3 -0
  111. package/src/lib/places/place-list.component.d.ts +3 -0
  112. package/src/lib/places/place.component.d.ts +3 -0
  113. package/src/lib/popmenu/popmenu.component.d.ts +3 -0
  114. package/src/lib/popmenu/popmenu.directive.d.ts +3 -0
  115. package/src/lib/popmenu/popmenu.module.d.ts +8 -0
  116. package/src/lib/slide-toggle/slide-toggle.component.d.ts +3 -0
  117. package/src/lib/snackbar/snackbar.component.d.ts +3 -0
  118. package/src/lib/snackbars-thread/component/snackbars-thread.component.d.ts +3 -0
  119. package/src/lib/snackbars-thread/service/snackbars-thread.service.d.ts +3 -0
  120. package/src/lib/splashscreen/splashscreen.component.d.ts +3 -0
  121. package/src/lib/star-rating/star-rating.component.d.ts +3 -0
  122. package/src/lib/stepper/stepper.component.d.ts +3 -0
  123. package/src/lib/tags/tag-list.component.d.ts +3 -0
  124. package/src/lib/tags/tag.component.d.ts +3 -0
  125. package/src/lib/tags-selector/tags-selector.component.d.ts +3 -0
  126. package/src/lib/timepicker/timepicker.component.d.ts +3 -0
  127. package/src/lib/tooltip-neo/tooltip-neo.component.d.ts +3 -0
  128. package/src/lib/tooltip-neo/tooltip-neo.directive.d.ts +3 -0
  129. package/src/lib/tooltip-neo/tooltip-neo.service.d.ts +3 -0
  130. package/src/lib/try-popup/try-popup.component.d.ts +3 -0
  131. package/agorapulse-ui-components-0.0.1.tgz +0 -0
  132. package/agorapulse-ui-components.metadata.json +0 -1
  133. package/bundles/agorapulse-ui-components.umd.js +0 -4448
  134. package/bundles/agorapulse-ui-components.umd.js.map +0 -1
  135. package/esm2015/agorapulse-ui-components.js +0 -10
  136. package/esm2015/src/lib/add-comment/add-comment.component.js +0 -54
  137. package/esm2015/src/lib/agorapulse-ui-components.module.js +0 -279
  138. package/esm2015/src/lib/avatar/avatar.component.js +0 -82
  139. package/esm2015/src/lib/confirm-modal/confirm-modal.component.js +0 -59
  140. package/esm2015/src/lib/datepicker/datepicker.component.js +0 -213
  141. package/esm2015/src/lib/directives/autosize-textarea.directive.js +0 -43
  142. package/esm2015/src/lib/directives/default-image.directive.js +0 -25
  143. package/esm2015/src/lib/directives/ellipsis.directive.js +0 -82
  144. package/esm2015/src/lib/directives/equal-validator.directive.js +0 -53
  145. package/esm2015/src/lib/directives/frozen-gif.directive.js +0 -113
  146. package/esm2015/src/lib/directives/multi-style-text.directive.js +0 -103
  147. package/esm2015/src/lib/directives/truncate-tooltip.directive.js +0 -36
  148. package/esm2015/src/lib/dots-stepper/dots-stepper.component.js +0 -41
  149. package/esm2015/src/lib/edit-tag-modal/edit-tags-modal.component.js +0 -129
  150. package/esm2015/src/lib/feature-onboarding/feature-onboarding.component.js +0 -35
  151. package/esm2015/src/lib/image-carousel/image-carousel.component.js +0 -143
  152. package/esm2015/src/lib/lead-modal/lead-modal.component.js +0 -47
  153. package/esm2015/src/lib/media-display-overlay/media-display-overlay-dialog.component.js +0 -87
  154. package/esm2015/src/lib/modal/modal.component.js +0 -88
  155. package/esm2015/src/lib/notification/notification.component.js +0 -18
  156. package/esm2015/src/lib/overlay/overlay-dialog-service.component.js +0 -62
  157. package/esm2015/src/lib/overlay/overlay-dialog.component.js +0 -33
  158. package/esm2015/src/lib/overlay-in-div/overlay-in-div.component.js +0 -23
  159. package/esm2015/src/lib/paginator/paginator-button/paginator-button.component.js +0 -22
  160. package/esm2015/src/lib/paginator/paginator.component.js +0 -47
  161. package/esm2015/src/lib/password-input/password-input.component.js +0 -65
  162. package/esm2015/src/lib/password-strength-bar/password-strength-bar.component.js +0 -82
  163. package/esm2015/src/lib/password-strength-display-bar/password-strength-display-bar.component.js +0 -41
  164. package/esm2015/src/lib/phone-number-input/phone-number-input.component.js +0 -123
  165. package/esm2015/src/lib/places/place-list.component.js +0 -12
  166. package/esm2015/src/lib/places/place.component.js +0 -15
  167. package/esm2015/src/lib/popmenu/popmenu.component.js +0 -322
  168. package/esm2015/src/lib/popmenu/popmenu.directive.js +0 -215
  169. package/esm2015/src/lib/popmenu/popmenu.module.js +0 -38
  170. package/esm2015/src/lib/slide-toggle/slide-toggle.component.js +0 -59
  171. package/esm2015/src/lib/snackbar/snackbar.component.js +0 -22
  172. package/esm2015/src/lib/snackbars-thread/component/snackbars-thread.component.js +0 -50
  173. package/esm2015/src/lib/snackbars-thread/service/snackbars-thread.service.js +0 -44
  174. package/esm2015/src/lib/splashscreen/splashscreen.component.js +0 -37
  175. package/esm2015/src/lib/star-rating/star-rating.component.js +0 -38
  176. package/esm2015/src/lib/stepper/stepper.component.js +0 -37
  177. package/esm2015/src/lib/tags/tag-list.component.js +0 -12
  178. package/esm2015/src/lib/tags/tag.component.js +0 -20
  179. package/esm2015/src/lib/tags-selector/tags-selector.component.js +0 -73
  180. package/esm2015/src/lib/timepicker/timepicker.component.js +0 -375
  181. package/esm2015/src/lib/tooltip-neo/tooltip-neo.component.js +0 -46
  182. package/esm2015/src/lib/tooltip-neo/tooltip-neo.directive.js +0 -107
  183. package/esm2015/src/lib/tooltip-neo/tooltip-neo.service.js +0 -15
  184. package/esm2015/src/lib/try-popup/try-popup.component.js +0 -33
  185. package/fesm2015/agorapulse-ui-components.js +0 -3805
  186. package/fesm2015/agorapulse-ui-components.js.map +0 -1
@@ -0,0 +1,147 @@
1
+ import { animate, style, transition, trigger } from '@angular/animations';
2
+ import { Component, EventEmitter, Inject, ViewChild } from '@angular/core';
3
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
+ import { Subject } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/material/dialog";
8
+ import * as i2 from "@agorapulse/ui-symbol";
9
+ import * as i3 from "@angular/material/button";
10
+ import * as i4 from "../modal/modal.component";
11
+ import * as i5 from "@angular/common";
12
+ import * as i6 from "../tooltip-neo/tooltip-neo.directive";
13
+ export class EditTagsModalComponent {
14
+ constructor(data, dialogRef, dialog) {
15
+ this.data = data;
16
+ this.dialogRef = dialogRef;
17
+ this.dialog = dialog;
18
+ this.deletedTags = [];
19
+ this.editTag = new EventEmitter();
20
+ this.savingTags = [];
21
+ this.tagEditedIndex = null;
22
+ this.updatedTags = new Map();
23
+ this.updateStatusByTags = new Map();
24
+ this.destroy$ = new Subject();
25
+ data.tags$.pipe(takeUntil(this.destroy$)).subscribe(tags => {
26
+ if (tags) {
27
+ this.tags = [...tags];
28
+ this.filteredTags = [...tags];
29
+ tags.forEach(tag => this.updatedTags.set(tag, tag));
30
+ }
31
+ });
32
+ data.updateStatusByTag$.pipe(takeUntil(this.destroy$)).subscribe((updateStatusByTag) => {
33
+ if (updateStatusByTag) {
34
+ const updateStatusByTagMap = new Map();
35
+ updateStatusByTag.forEach(value => {
36
+ updateStatusByTagMap.set(value.tag, value.loading);
37
+ if (value.loading === false) {
38
+ this.updateTagSuccess(value.tag);
39
+ }
40
+ });
41
+ this.updateStatusByTags = updateStatusByTagMap;
42
+ }
43
+ });
44
+ }
45
+ cancelEdit() {
46
+ this.tagEditedIndex = null;
47
+ }
48
+ onDone() {
49
+ this.dialogRef.close();
50
+ }
51
+ onEdit(index) {
52
+ this.tagEditedIndex = index;
53
+ }
54
+ onRemove(tag) {
55
+ this.updatedTags.set(tag, null);
56
+ const updatedTag = new Map();
57
+ updatedTag.set(tag, null);
58
+ this.editTag.emit(updatedTag);
59
+ this.tagEditedIndex = null;
60
+ }
61
+ onValidateInput(index) {
62
+ this.onValidate(this.tagInput.nativeElement.value, index);
63
+ }
64
+ onValidate(value, index) {
65
+ if (value) {
66
+ const entry = Array.from(this.updatedTags.entries()).find(((keyValue) => keyValue[1] === this.tags[index]));
67
+ this.updatedTags.set(entry[0], value);
68
+ const updatedTag = new Map();
69
+ updatedTag.set(entry[0], value);
70
+ this.tags[index] = value;
71
+ this.filteredTags[index] = value;
72
+ this.editTag.emit(updatedTag);
73
+ this.savingTags.push(value);
74
+ this.tagEditedIndex = null;
75
+ }
76
+ }
77
+ onValidateEnter(event, index) {
78
+ if (event.key === 'Enter') {
79
+ this.onValidate(event.target.value, index);
80
+ }
81
+ }
82
+ onSearch(tag) {
83
+ this.filteredTags = Array.from(this.updatedTags.values()).filter((item) => item?.toLowerCase().includes(tag.toLowerCase()));
84
+ }
85
+ updateTagSuccess(tag) {
86
+ if (this.updatedTags.get(tag) === null) {
87
+ this.deletedTags.push(tag);
88
+ setTimeout(() => {
89
+ this.tags = this.tags.filter(tagToFilter => tagToFilter !== tag);
90
+ this.filteredTags = this.filteredTags.filter(tagToFilter => tagToFilter !== tag);
91
+ this.deletedTags = this.deletedTags.filter(tagToFilter => tagToFilter !== tag);
92
+ }, 2000);
93
+ }
94
+ else {
95
+ setTimeout(() => {
96
+ this.savingTags = this.savingTags.filter(tagToFilter => tagToFilter !== tag);
97
+ }, 6000);
98
+ }
99
+ }
100
+ ngOnDestroy() {
101
+ this.destroy$.next();
102
+ this.destroy$.complete();
103
+ }
104
+ }
105
+ /** @nocollapse */ /** @nocollapse */ EditTagsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: EditTagsModalComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
106
+ /** @nocollapse */ /** @nocollapse */ EditTagsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: EditTagsModalComponent, selector: "ng-component", viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "<ng-template #headerTemplate>\n <h2 class=\"title\">\n {{ data.translatedString.title }}\n </h2>\n <p class=\"large\">{{ data.translatedString.subtitle }}</p>\n</ng-template>\n<ng-template #mainTemplate>\n <div class=\"main-container\">\n <div class=\"search\">\n <div class=\"input-group\">\n <input type=\"text\"\n placeholder=\"{{ data.translatedString.searchPlaceholder }}\"\n (keyup)=\"onSearch($event.target.value)\">\n <ap-symbol class=\"input-group-append\"\n [symbolId]=\"'search-alternate'\"\n [size]=\"'micro'\">\n </ap-symbol>\n </div>\n </div>\n <div class=\"tags-content\" *ngIf=\"filteredTags\">\n <div class=\"tag-row\" *ngFor=\"let tag of filteredTags;let i=index\"\n [@tagRemoved]=\"deletedTags.includes(filteredTags[i]) ? 'deleted' : 'valid'\">\n <span *ngIf=\"tagEditedIndex !== i\" [class.disabled]=\"tagEditedIndex !== null\"> {{tag}} </span>\n <input type=\"text\" *ngIf=\"tagEditedIndex === i\" [value]=\"filteredTags[i]\"\n (keyup)=\"onValidateEnter($event, i)\" #tagInput/>\n <div class=\"button-container\">\n <img alt=\"spinner-loading\" width=\"20\" height=\"20\" src=\"../../assets/img/spinner_animation.gif\"\n *ngIf=\"updateStatusByTags?.get(filteredTags[i]) || updateStatusByTags?.get(tag)\"/>\n <div class=\"edit-label saved-label\"\n *ngIf=\"updateStatusByTags?.get(filteredTags[i]) === false && tagEditedIndex != i && savingTags.includes(filteredTags[i])\"\n [@tagSaved]>\n <ap-symbol [symbolId]=\"'check-1'\" [size]=\"'pico'\"></ap-symbol>\n {{ data.translatedString.savedLabel }}\n </div>\n <div class=\"edit-label deleted-label\"\n *ngIf=\"updateStatusByTags?.get(filteredTags[i]) === false && updatedTags && updatedTags.has(tag) && updatedTags.get(tag) === null\">\n <ap-symbol [symbolId]=\"'delete-2-alternate'\" [size]=\"'pico'\"></ap-symbol>\n {{ data.translatedString.deletedLabel }}\n </div>\n <button mat-flat-button *ngIf=\"tagEditedIndex !== i\"\n class=\"circle edit-button\"\n (click)=\"onEdit(i)\">\n <ap-symbol [symbolId]=\"'pencil-2'\"></ap-symbol>\n </button>\n <div *ngIf=\"tagEditedIndex === i\">\n <button mat-flat-button\n class=\"circle button-action button-validate\"\n [apTooltipNeo]=\"{content: data.translatedString.validateTooltip}\"\n [color]=\"'#858fa1'\"\n (click)=\"onValidateInput(i)\">\n <ap-symbol symbolId=\"check-2\"></ap-symbol>\n </button>\n <button mat-flat-button\n class=\"circle button-action button-cancel\"\n [apTooltipNeo]=\"{content: data.translatedString.cancelTooltip}\"\n [color]=\"'#858fa1'\"\n (click)=\"cancelEdit()\">\n <ap-symbol symbolId=\"delete-2-alternate\"></ap-symbol>\n </button>\n <button mat-flat-button\n class=\"circle button-action button-remove\"\n [apTooltipNeo]=\"{content: data.translatedString.deleteTooltip}\"\n [color]=\"'#858fa1'\"\n (click)=\"onRemove(tag)\">\n <ap-symbol symbolId=\"bin-2\"></ap-symbol>\n </button>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"loader\">\n <img alt=\"spinner-loading\" src=\"../../assets/img/spinner_animation.gif\"\n *ngIf=\"!filteredTags\"/>\n </div>\n </div>\n</ng-template>\n<ng-template #footerTemplate>\n <div class=\"footer\">\n <div>\n <button mat-flat-button class=\"done-button\" (click)=\"onDone()\" color=\"primary\">\n {{data.translatedString.doneLabel}}\n </button>\n </div>\n </div>\n\n</ng-template>\n\n<ap-modal class=\"design-system\"\n closable=\"true\"\n [headerTemplate]=\"headerTemplate\"\n [mainTemplate]=\"mainTemplate\"\n [footerTemplate]=\"footerTemplate\"></ap-modal>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}.title{font-weight:700!important;margin-bottom:16px}p.large{color:#5d6a82;font-size:14px}.max-character-size-notification{margin-top:8px}.content{display:flex;margin-top:16px}.search{padding-bottom:16px}.loader{display:flex;align-items:center;width:100%;flex-direction:column}.tags-content{max-height:245px;overflow-y:scroll;overflow-x:hidden}.tag-row{display:flex;align-items:center;margin-left:-4px;margin-right:-8px;padding:4px;min-height:44px}.tag-row .button-container{flex:1;display:flex;align-items:center}.tag-row .button-container .edit-button{display:none}.tag-row .button-container .edit-label{display:none;align-items:center;opacity:0;background-color:#ecf7ed;color:#45b854;border-radius:25px;align-self:center;width:0;padding:4px 8px;font-weight:700;font-size:10px;line-height:12px}.tag-row .button-container .edit-label ap-symbol{padding-right:4px}.tag-row .button-container .edit-label.deleted-label{display:flex;width:-moz-fit-content;width:fit-content;opacity:1;background-color:#fde7e7;color:#e81313}.tag-row span,.tag-row input{margin-right:8px}.tag-row input{width:252px;max-width:252px}.tag-row:not(.disabled):hover .button-container .edit-button{display:block}.tag-row .disabled{color:#aeb5c1}.notification-warning{margin-bottom:8px}.footer{display:flex;flex-direction:column}.footer div{display:flex}.footer p{text-align:right;color:#e81313}.footer .done-button{background-color:#ff6726;color:#fff}.footer .done-button:hover{background-color:#ff560d}.footer .done-button:active{background-color:#ff4d00}:host::ng-deep textarea,:host::ng-deep select,:host::ng-deep input,:host::ng-deep button{outline:none}:host::ng-deep input{border-radius:4px;color:#344563;font-family:Averta;font-size:14px;font-weight:400;padding:8px 16px}:host::ng-deep input::placeholder{color:#aeb5c1}:host::ng-deep input:focus:not(.transparent){border-color:#178dfe}:host::ng-deep .input-group{display:flex;flex-direction:row;width:252px;border:1px solid #d6dae0;border-radius:4px;color:#344563}:host::ng-deep .input-group input{border:none;box-sizing:border-box;width:100%}:host::ng-deep .input-group .input-group-append{position:relative;top:10px;right:10px;height:15px;width:15px;color:#858fa1}\n"], components: [{ type: i2.SymbolComponent, selector: "ap-symbol", inputs: ["color", "id", "symbolId", "size", "state"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.ModalComponent, selector: "ap-modal", inputs: ["closable", "headerBottomBorderEnabled", "footerTemplate", "footerVisible", "headerTemplate", "headerVisible", "mainTemplate", "config", "containerStyle", "headerStyle", "contentStyle", "footerStyle", "defaultLayout"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.TooltipNeoDirective, selector: "[apTooltipNeo]", inputs: ["apTooltipNeo"] }], animations: [
107
+ trigger('tagSaved', [
108
+ transition('void => *', [
109
+ style({ opacity: 1 }),
110
+ style({ width: 'fit-content' }),
111
+ style({ display: 'flex' }),
112
+ animate('6000ms', style({ opacity: 0 })),
113
+ ]),
114
+ ]),
115
+ trigger('tagRemoved', [
116
+ transition('valid => deleted', [
117
+ style({ opacity: 1 }),
118
+ animate('1000ms 1000ms', style({ opacity: 0 })),
119
+ ]),
120
+ ])
121
+ ] });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: EditTagsModalComponent, decorators: [{
123
+ type: Component,
124
+ args: [{ animations: [
125
+ trigger('tagSaved', [
126
+ transition('void => *', [
127
+ style({ opacity: 1 }),
128
+ style({ width: 'fit-content' }),
129
+ style({ display: 'flex' }),
130
+ animate('6000ms', style({ opacity: 0 })),
131
+ ]),
132
+ ]),
133
+ trigger('tagRemoved', [
134
+ transition('valid => deleted', [
135
+ style({ opacity: 1 }),
136
+ animate('1000ms 1000ms', style({ opacity: 0 })),
137
+ ]),
138
+ ])
139
+ ], template: "<ng-template #headerTemplate>\n <h2 class=\"title\">\n {{ data.translatedString.title }}\n </h2>\n <p class=\"large\">{{ data.translatedString.subtitle }}</p>\n</ng-template>\n<ng-template #mainTemplate>\n <div class=\"main-container\">\n <div class=\"search\">\n <div class=\"input-group\">\n <input type=\"text\"\n placeholder=\"{{ data.translatedString.searchPlaceholder }}\"\n (keyup)=\"onSearch($event.target.value)\">\n <ap-symbol class=\"input-group-append\"\n [symbolId]=\"'search-alternate'\"\n [size]=\"'micro'\">\n </ap-symbol>\n </div>\n </div>\n <div class=\"tags-content\" *ngIf=\"filteredTags\">\n <div class=\"tag-row\" *ngFor=\"let tag of filteredTags;let i=index\"\n [@tagRemoved]=\"deletedTags.includes(filteredTags[i]) ? 'deleted' : 'valid'\">\n <span *ngIf=\"tagEditedIndex !== i\" [class.disabled]=\"tagEditedIndex !== null\"> {{tag}} </span>\n <input type=\"text\" *ngIf=\"tagEditedIndex === i\" [value]=\"filteredTags[i]\"\n (keyup)=\"onValidateEnter($event, i)\" #tagInput/>\n <div class=\"button-container\">\n <img alt=\"spinner-loading\" width=\"20\" height=\"20\" src=\"../../assets/img/spinner_animation.gif\"\n *ngIf=\"updateStatusByTags?.get(filteredTags[i]) || updateStatusByTags?.get(tag)\"/>\n <div class=\"edit-label saved-label\"\n *ngIf=\"updateStatusByTags?.get(filteredTags[i]) === false && tagEditedIndex != i && savingTags.includes(filteredTags[i])\"\n [@tagSaved]>\n <ap-symbol [symbolId]=\"'check-1'\" [size]=\"'pico'\"></ap-symbol>\n {{ data.translatedString.savedLabel }}\n </div>\n <div class=\"edit-label deleted-label\"\n *ngIf=\"updateStatusByTags?.get(filteredTags[i]) === false && updatedTags && updatedTags.has(tag) && updatedTags.get(tag) === null\">\n <ap-symbol [symbolId]=\"'delete-2-alternate'\" [size]=\"'pico'\"></ap-symbol>\n {{ data.translatedString.deletedLabel }}\n </div>\n <button mat-flat-button *ngIf=\"tagEditedIndex !== i\"\n class=\"circle edit-button\"\n (click)=\"onEdit(i)\">\n <ap-symbol [symbolId]=\"'pencil-2'\"></ap-symbol>\n </button>\n <div *ngIf=\"tagEditedIndex === i\">\n <button mat-flat-button\n class=\"circle button-action button-validate\"\n [apTooltipNeo]=\"{content: data.translatedString.validateTooltip}\"\n [color]=\"'#858fa1'\"\n (click)=\"onValidateInput(i)\">\n <ap-symbol symbolId=\"check-2\"></ap-symbol>\n </button>\n <button mat-flat-button\n class=\"circle button-action button-cancel\"\n [apTooltipNeo]=\"{content: data.translatedString.cancelTooltip}\"\n [color]=\"'#858fa1'\"\n (click)=\"cancelEdit()\">\n <ap-symbol symbolId=\"delete-2-alternate\"></ap-symbol>\n </button>\n <button mat-flat-button\n class=\"circle button-action button-remove\"\n [apTooltipNeo]=\"{content: data.translatedString.deleteTooltip}\"\n [color]=\"'#858fa1'\"\n (click)=\"onRemove(tag)\">\n <ap-symbol symbolId=\"bin-2\"></ap-symbol>\n </button>\n </div>\n </div>\n </div>\n\n </div>\n <div class=\"loader\">\n <img alt=\"spinner-loading\" src=\"../../assets/img/spinner_animation.gif\"\n *ngIf=\"!filteredTags\"/>\n </div>\n </div>\n</ng-template>\n<ng-template #footerTemplate>\n <div class=\"footer\">\n <div>\n <button mat-flat-button class=\"done-button\" (click)=\"onDone()\" color=\"primary\">\n {{data.translatedString.doneLabel}}\n </button>\n </div>\n </div>\n\n</ng-template>\n\n<ap-modal class=\"design-system\"\n closable=\"true\"\n [headerTemplate]=\"headerTemplate\"\n [mainTemplate]=\"mainTemplate\"\n [footerTemplate]=\"footerTemplate\"></ap-modal>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}.title{font-weight:700!important;margin-bottom:16px}p.large{color:#5d6a82;font-size:14px}.max-character-size-notification{margin-top:8px}.content{display:flex;margin-top:16px}.search{padding-bottom:16px}.loader{display:flex;align-items:center;width:100%;flex-direction:column}.tags-content{max-height:245px;overflow-y:scroll;overflow-x:hidden}.tag-row{display:flex;align-items:center;margin-left:-4px;margin-right:-8px;padding:4px;min-height:44px}.tag-row .button-container{flex:1;display:flex;align-items:center}.tag-row .button-container .edit-button{display:none}.tag-row .button-container .edit-label{display:none;align-items:center;opacity:0;background-color:#ecf7ed;color:#45b854;border-radius:25px;align-self:center;width:0;padding:4px 8px;font-weight:700;font-size:10px;line-height:12px}.tag-row .button-container .edit-label ap-symbol{padding-right:4px}.tag-row .button-container .edit-label.deleted-label{display:flex;width:-moz-fit-content;width:fit-content;opacity:1;background-color:#fde7e7;color:#e81313}.tag-row span,.tag-row input{margin-right:8px}.tag-row input{width:252px;max-width:252px}.tag-row:not(.disabled):hover .button-container .edit-button{display:block}.tag-row .disabled{color:#aeb5c1}.notification-warning{margin-bottom:8px}.footer{display:flex;flex-direction:column}.footer div{display:flex}.footer p{text-align:right;color:#e81313}.footer .done-button{background-color:#ff6726;color:#fff}.footer .done-button:hover{background-color:#ff560d}.footer .done-button:active{background-color:#ff4d00}:host::ng-deep textarea,:host::ng-deep select,:host::ng-deep input,:host::ng-deep button{outline:none}:host::ng-deep input{border-radius:4px;color:#344563;font-family:Averta;font-size:14px;font-weight:400;padding:8px 16px}:host::ng-deep input::placeholder{color:#aeb5c1}:host::ng-deep input:focus:not(.transparent){border-color:#178dfe}:host::ng-deep .input-group{display:flex;flex-direction:row;width:252px;border:1px solid #d6dae0;border-radius:4px;color:#344563}:host::ng-deep .input-group input{border:none;box-sizing:border-box;width:100%}:host::ng-deep .input-group .input-group-append{position:relative;top:10px;right:10px;height:15px;width:15px;color:#858fa1}\n"] }]
140
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
141
+ type: Inject,
142
+ args: [MAT_DIALOG_DATA]
143
+ }] }, { type: i1.MatDialogRef }, { type: i1.MatDialog }]; }, propDecorators: { tagInput: [{
144
+ type: ViewChild,
145
+ args: ['tagInput']
146
+ }] } });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC10YWdzLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcmMvbGliL2VkaXQtdGFnLW1vZGFsL2VkaXQtdGFncy1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvc3JjL2xpYi9lZGl0LXRhZy1tb2RhbC9lZGl0LXRhZ3MtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsRUFBMEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUF1QnpDLE1BQU0sT0FBTyxzQkFBc0I7SUFlL0IsWUFBNEMsSUFBdUIsRUFDaEQsU0FBK0MsRUFDL0MsTUFBaUI7UUFGUSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUNoRCxjQUFTLEdBQVQsU0FBUyxDQUFzQztRQUMvQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBZnBDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBQzNCLFlBQU8sR0FBc0MsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFckYsZUFBVSxHQUFhLEVBQUUsQ0FBQztRQUMxQixtQkFBYyxHQUFXLElBQUksQ0FBQztRQUU5QixnQkFBVyxHQUF3QixJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUM3RCx1QkFBa0IsR0FBMEIsSUFBSSxHQUFHLEVBQW1C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Z2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtFZGl0VGFnc01vZGFsRGF0YX0gZnJvbSAnLi9tb2RlbC9lZGl0LXRhZ3MtbW9kYWwubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdC10YWdzLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0LXRhZ3MtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3RhZ1NhdmVkJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHtvcGFjaXR5OiAxfSksXG4gICAgICAgICAgICAgICAgc3R5bGUoe3dpZHRoOiAnZml0LWNvbnRlbnQnfSksXG4gICAgICAgICAgICAgICAgc3R5bGUoe2Rpc3BsYXk6ICdmbGV4J30pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzYwMDBtcycsIHN0eWxlKHtvcGFjaXR5OiAwfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKCd0YWdSZW1vdmVkJywgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbigndmFsaWQgPT4gZGVsZXRlZCcsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7b3BhY2l0eTogMX0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzEwMDBtcyAxMDAwbXMnLCBzdHlsZSh7b3BhY2l0eTogMH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRWRpdFRhZ3NNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBkZWxldGVkVGFnczogc3RyaW5nW10gPSBbXTtcbiAgICBlZGl0VGFnOiBFdmVudEVtaXR0ZXI8TWFwPHN0cmluZywgc3RyaW5nPj4gPSBuZXcgRXZlbnRFbWl0dGVyPE1hcDxzdHJpbmcsIHN0cmluZz4+KCk7XG4gICAgZmlsdGVyZWRUYWdzOiBzdHJpbmdbXTtcbiAgICBzYXZpbmdUYWdzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRhZ0VkaXRlZEluZGV4OiBudW1iZXIgPSBudWxsO1xuICAgIHRhZ3M6IHN0cmluZ1tdO1xuICAgIHVwZGF0ZWRUYWdzOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICB1cGRhdGVTdGF0dXNCeVRhZ3M6IE1hcDxzdHJpbmcsIGJvb2xlYW4+ICA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuXG4gICAgQFZpZXdDaGlsZCgndGFnSW5wdXQnKSB0YWdJbnB1dDogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBFZGl0VGFnc01vZGFsRGF0YSxcbiAgICAgICAgICAgICAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RWRpdFRhZ3NNb2RhbENvbXBvbmVudD4sXG4gICAgICAgICAgICAgICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nXG4gICAgKSB7XG4gICAgICAgIGRhdGEudGFncyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh0YWdzID0+IHtcbiAgICAgICAgICAgIGlmICh0YWdzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWdzID0gWy4uLnRhZ3NdO1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRUYWdzID0gWy4uLnRhZ3NdO1xuICAgICAgICAgICAgICAgIHRhZ3MuZm9yRWFjaCh0YWcgPT4gdGhpcy51cGRhdGVkVGFncy5zZXQodGFnLCB0YWcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGF0YS51cGRhdGVTdGF0dXNCeVRhZyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShcbiAgICAgICAgICAgICh1cGRhdGVTdGF0dXNCeVRhZykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVTdGF0dXNCeVRhZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVTdGF0dXNCeVRhZ01hcCA9IG5ldyBNYXA8c3RyaW5nLCBib29sZWFuPigpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTdGF0dXNCeVRhZy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVN0YXR1c0J5VGFnTWFwLnNldCh2YWx1ZS50YWcsIHZhbHVlLmxvYWRpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmxvYWRpbmcgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUYWdTdWNjZXNzKHZhbHVlLnRhZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1c0J5VGFncyA9IHVwZGF0ZVN0YXR1c0J5VGFnTWFwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW5jZWxFZGl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhZ0VkaXRlZEluZGV4ID0gbnVsbDtcbiAgICB9XG5cbiAgICBvbkRvbmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgb25FZGl0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWdFZGl0ZWRJbmRleCA9IGluZGV4O1xuICAgIH1cblxuICAgIG9uUmVtb3ZlKHRhZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlZFRhZ3Muc2V0KHRhZywgbnVsbCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRUYWcgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgICAgICB1cGRhdGVkVGFnLnNldCh0YWcsIG51bGwpO1xuICAgICAgICB0aGlzLmVkaXRUYWcuZW1pdCh1cGRhdGVkVGFnKTtcbiAgICAgICAgdGhpcy50YWdFZGl0ZWRJbmRleCA9IG51bGw7XG4gICAgfVxuXG4gICAgb25WYWxpZGF0ZUlucHV0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblZhbGlkYXRlKHRoaXMudGFnSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSwgaW5kZXgpO1xuICAgIH1cblxuICAgIG9uVmFsaWRhdGUodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gQXJyYXkuZnJvbSh0aGlzLnVwZGF0ZWRUYWdzLmVudHJpZXMoKSkuZmluZCgoKGtleVZhbHVlKSA9PiBrZXlWYWx1ZVsxXSA9PT0gdGhpcy50YWdzW2luZGV4XSkpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVkVGFncy5zZXQoZW50cnlbMF0sIHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUYWcgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgICAgICAgICAgdXBkYXRlZFRhZy5zZXQoZW50cnlbMF0sIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudGFnc1tpbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRUYWdzW2luZGV4XSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5lZGl0VGFnLmVtaXQodXBkYXRlZFRhZyk7XG4gICAgICAgICAgICB0aGlzLnNhdmluZ1RhZ3MucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnRhZ0VkaXRlZEluZGV4ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVmFsaWRhdGVFbnRlcihldmVudDogYW55LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMub25WYWxpZGF0ZShldmVudC50YXJnZXQudmFsdWUsIGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VhcmNoKHRhZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRUYWdzID0gQXJyYXkuZnJvbSh0aGlzLnVwZGF0ZWRUYWdzLnZhbHVlcygpKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGFnLnRvTG93ZXJDYXNlKCkpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVUYWdTdWNjZXNzKHRhZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZWRUYWdzLmdldCh0YWcpID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZWRUYWdzLnB1c2godGFnKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudGFncyA9IHRoaXMudGFncy5maWx0ZXIodGFnVG9GaWx0ZXIgPT4gdGFnVG9GaWx0ZXIgIT09IHRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZFRhZ3MgPSB0aGlzLmZpbHRlcmVkVGFncy5maWx0ZXIodGFnVG9GaWx0ZXIgPT4gdGFnVG9GaWx0ZXIgIT09IHRhZyk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWxldGVkVGFncyA9IHRoaXMuZGVsZXRlZFRhZ3MuZmlsdGVyKHRhZ1RvRmlsdGVyID0+IHRhZ1RvRmlsdGVyICE9PSB0YWcpO1xuICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhdmluZ1RhZ3MgPSB0aGlzLnNhdmluZ1RhZ3MuZmlsdGVyKHRhZ1RvRmlsdGVyID0+IHRhZ1RvRmlsdGVyICE9PSB0YWcpO1xuICAgICAgICAgICAgfSwgNjAwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICAgIDxoMiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgIHt7IGRhdGEudHJhbnNsYXRlZFN0cmluZy50aXRsZSB9fVxuICAgIDwvaDI+XG4gICAgPHAgY2xhc3M9XCJsYXJnZVwiPnt7IGRhdGEudHJhbnNsYXRlZFN0cmluZy5zdWJ0aXRsZSB9fTwvcD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI21haW5UZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBkYXRhLnRyYW5zbGF0ZWRTdHJpbmcuc2VhcmNoUGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAoa2V5dXApPVwib25TZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcIj5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzeW1ib2xJZF09XCInc2VhcmNoLWFsdGVybmF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiJ21pY3JvJ1wiPlxuICAgICAgICAgICAgICAgIDwvYXAtc3ltYm9sPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFncy1jb250ZW50XCIgKm5nSWY9XCJmaWx0ZXJlZFRhZ3NcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctcm93XCIgKm5nRm9yPVwibGV0IHRhZyBvZiBmaWx0ZXJlZFRhZ3M7bGV0IGk9aW5kZXhcIlxuICAgICAgICAgICAgICAgICBbQHRhZ1JlbW92ZWRdPVwiZGVsZXRlZFRhZ3MuaW5jbHVkZXMoZmlsdGVyZWRUYWdzW2ldKSA/ICdkZWxldGVkJyA6ICd2YWxpZCdcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRhZ0VkaXRlZEluZGV4ICE9PSBpXCIgW2NsYXNzLmRpc2FibGVkXT1cInRhZ0VkaXRlZEluZGV4ICE9PSBudWxsXCI+IHt7dGFnfX0gPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwidGFnRWRpdGVkSW5kZXggPT09IGlcIiBbdmFsdWVdPVwiZmlsdGVyZWRUYWdzW2ldXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cIm9uVmFsaWRhdGVFbnRlcigkZXZlbnQsIGkpXCIgI3RhZ0lucHV0Lz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD1cInNwaW5uZXItbG9hZGluZ1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHNyYz1cIi4uLy4uL2Fzc2V0cy9pbWcvc3Bpbm5lcl9hbmltYXRpb24uZ2lmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInVwZGF0ZVN0YXR1c0J5VGFncz8uZ2V0KGZpbHRlcmVkVGFnc1tpXSkgfHwgdXBkYXRlU3RhdHVzQnlUYWdzPy5nZXQodGFnKVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXQtbGFiZWwgc2F2ZWQtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidXBkYXRlU3RhdHVzQnlUYWdzPy5nZXQoZmlsdGVyZWRUYWdzW2ldKSA9PT0gZmFsc2UgJiYgdGFnRWRpdGVkSW5kZXggIT0gaSAmJiBzYXZpbmdUYWdzLmluY2x1ZGVzKGZpbHRlcmVkVGFnc1tpXSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtAdGFnU2F2ZWRdPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwLXN5bWJvbCBbc3ltYm9sSWRdPVwiJ2NoZWNrLTEnXCIgW3NpemVdPVwiJ3BpY28nXCI+PC9hcC1zeW1ib2w+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkYXRhLnRyYW5zbGF0ZWRTdHJpbmcuc2F2ZWRMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVkaXQtbGFiZWwgZGVsZXRlZC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ1cGRhdGVTdGF0dXNCeVRhZ3M/LmdldChmaWx0ZXJlZFRhZ3NbaV0pID09PSBmYWxzZSAmJiB1cGRhdGVkVGFncyAmJiB1cGRhdGVkVGFncy5oYXModGFnKSAmJiB1cGRhdGVkVGFncy5nZXQodGFnKSA9PT0gbnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwLXN5bWJvbCBbc3ltYm9sSWRdPVwiJ2RlbGV0ZS0yLWFsdGVybmF0ZSdcIiBbc2l6ZV09XCIncGljbydcIj48L2FwLXN5bWJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRhdGEudHJhbnNsYXRlZFN0cmluZy5kZWxldGVkTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uICpuZ0lmPVwidGFnRWRpdGVkSW5kZXggIT09IGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2lyY2xlIGVkaXQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FZGl0KGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YXAtc3ltYm9sIFtzeW1ib2xJZF09XCIncGVuY2lsLTInXCI+PC9hcC1zeW1ib2w+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFnRWRpdGVkSW5kZXggPT09IGlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2lyY2xlIGJ1dHRvbi1hY3Rpb24gYnV0dG9uLXZhbGlkYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwVG9vbHRpcE5lb109XCJ7Y29udGVudDogZGF0YS50cmFuc2xhdGVkU3RyaW5nLnZhbGlkYXRlVG9vbHRpcH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJyM4NThmYTEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVmFsaWRhdGVJbnB1dChpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1zeW1ib2wgc3ltYm9sSWQ9XCJjaGVjay0yXCI+PC9hcC1zeW1ib2w+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2lyY2xlIGJ1dHRvbi1hY3Rpb24gYnV0dG9uLWNhbmNlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcFRvb2x0aXBOZW9dPVwie2NvbnRlbnQ6IGRhdGEudHJhbnNsYXRlZFN0cmluZy5jYW5jZWxUb29sdGlwfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCInIzg1OGZhMSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsRWRpdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwLXN5bWJvbCBzeW1ib2xJZD1cImRlbGV0ZS0yLWFsdGVybmF0ZVwiPjwvYXAtc3ltYm9sPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZSBidXR0b24tYWN0aW9uIGJ1dHRvbi1yZW1vdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBUb29sdGlwTmVvXT1cIntjb250ZW50OiBkYXRhLnRyYW5zbGF0ZWRTdHJpbmcuZGVsZXRlVG9vbHRpcH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiJyM4NThmYTEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlKHRhZylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwiYmluLTJcIj48L2FwLXN5bWJvbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyXCI+XG4gICAgICAgICAgICA8aW1nIGFsdD1cInNwaW5uZXItbG9hZGluZ1wiIHNyYz1cIi4uLy4uL2Fzc2V0cy9pbWcvc3Bpbm5lcl9hbmltYXRpb24uZ2lmXCJcbiAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmlsdGVyZWRUYWdzXCIvPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwiZG9uZS1idXR0b25cIiAoY2xpY2spPVwib25Eb25lKClcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICB7e2RhdGEudHJhbnNsYXRlZFN0cmluZy5kb25lTGFiZWx9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L25nLXRlbXBsYXRlPlxuXG48YXAtbW9kYWwgY2xhc3M9XCJkZXNpZ24tc3lzdGVtXCJcbiAgICAgICAgICBjbG9zYWJsZT1cInRydWVcIlxuICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgW21haW5UZW1wbGF0ZV09XCJtYWluVGVtcGxhdGVcIlxuICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiPjwvYXAtbW9kYWw+XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/material/dialog";
4
+ import * as i2 from "../dots-stepper/dots-stepper.component";
5
+ import * as i3 from "@agorapulse/ui-symbol";
6
+ import * as i4 from "@angular/material/button";
7
+ import * as i5 from "../modal/modal.component";
8
+ import * as i6 from "@angular/common";
9
+ export class FeatureOnboardingComponent {
10
+ constructor(dialogRef) {
11
+ this.dialogRef = dialogRef;
12
+ // translations
13
+ this.backButtonLabel = '';
14
+ this.finishButtonLabel = '';
15
+ this.nextButtonLabel = '';
16
+ this.arrowsDisplayed = false; // To display arrows to switch element on carousel
17
+ this.slideDisplayedIndex = 0; // The current element displayed
18
+ }
19
+ onClickNext() {
20
+ this.slideDisplayedIndex !== this.templates.length - 1 ? this.slideDisplayedIndex = this.slideDisplayedIndex + 1 : this.onCloseCarousel();
21
+ }
22
+ onClickPrevious() {
23
+ this.slideDisplayedIndex = this.slideDisplayedIndex - 1;
24
+ }
25
+ onCloseCarousel() {
26
+ this.dialogRef.close(true);
27
+ }
28
+ }
29
+ /** @nocollapse */ /** @nocollapse */ FeatureOnboardingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FeatureOnboardingComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
30
+ /** @nocollapse */ /** @nocollapse */ FeatureOnboardingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FeatureOnboardingComponent, selector: "ap-feature-onboarding", ngImport: i0, template: "<ng-template #mainTemplate>\n <div class=\"carousel-main-container\">\n <div class=\"carousel-content\">\n <div *ngFor=\"let template of templates; let i = index\"\n class=\"carousel-slide-element\"\n [class.carousel-slide-element-not-displayed]=\"i !== slideDisplayedIndex\"\n [class.carousel-slide-element-active]=\"i === slideDisplayedIndex\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"carousel-dots-container\">\n <ap-dots-stepper\n fxLayout=\"row\"\n fxLayoutAlign=\"center\"\n size=\"small\"\n *ngIf=\"templates.length > 1\"\n [items]=\"templates\"\n [index]=\"slideDisplayedIndex\"\n (dotClick)=\"slideDisplayedIndex = $event\"></ap-dots-stepper>\n </div>\n </div>\n\n <div *ngIf=\"arrowsDisplayed\">\n <ap-symbol *ngIf=\"slideDisplayedIndex !== 0\"\n class=\"nav-button prev\"\n [symbolId]=\"'arrow-button-left'\"\n (click)=\"onClickPrevious()\">\n </ap-symbol>\n\n <ap-symbol class=\"nav-button next\"\n [symbolId]=\"'arrow-button-right'\"\n (click)=\"onClickNext(); $event.stopPropagation();\">\n </ap-symbol>\n </div>\n </div>\n\n <div class=\"carousel-footer\">\n <div class=\"button-container\">\n <button *ngIf=\"slideDisplayedIndex !== 0\"\n mat-flat-button\n class=\"carousel-previous-button\"\n (click)=\"onClickPrevious()\">\n {{backButtonLabel}}\n </button>\n <button mat-flat-button\n [color]=\"'primary'\"\n (click)=\"onClickNext()\">\n <div *ngIf=\"slideDisplayedIndex !== templates.length - 1\">{{nextButtonLabel}}</div>\n <div *ngIf=\"slideDisplayedIndex === templates.length - 1\">{{finishButtonLabel}}</div>\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ap-modal class=\"design-system\"\n [closable]=\"false\"\n [mainTemplate]=\"mainTemplate\"\n></ap-modal>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}ap-modal ::ng-deep .modal-wrapper{padding:0!important}ap-modal ::ng-deep .modal-wrapper .content{padding:0!important}.carousel-main-container{display:flex;flex-direction:column;overflow:hidden}.carousel-main-container .carousel-content{width:100%;height:100%;position:relative;margin:auto;justify-content:center;align-items:center}.carousel-main-container .carousel-content .carousel-slide-element,.carousel-main-container .carousel-content .carousel-slide-element.carousel-slide-element-not-displayed{display:none}.carousel-main-container .carousel-content .carousel-slide-element.carousel-slide-element-active{display:flex;flex-direction:column;justify-content:center;align-items:center}.carousel-main-container .carousel-content .nav-button{width:30px;height:30px;position:absolute;top:0;bottom:0;cursor:pointer;margin:auto;opacity:.4;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}.carousel-main-container .carousel-content .nav-button.tiny{width:20px;height:20px}.carousel-main-container .carousel-content .nav-button path{fill:#fffc}.carousel-main-container .carousel-content .nav-button.prev{left:12px}.carousel-main-container .carousel-content .nav-button.next{right:12px}.carousel-main-container .carousel-content .nav-button.disabled{display:none}.carousel-main-container .carousel-content .carousel-dots-container{height:28px;margin-bottom:16px}.carousel-main-container .carousel-footer{align-items:center;justify-content:flex-end;display:flex;padding:0 16px;height:68px;border-top:1px solid #eaecef}.carousel-main-container .carousel-footer .button-container{margin-right:24px}.carousel-main-container .carousel-footer .button-container .carousel-previous-button{margin-right:8px}\n"], components: [{ type: i2.DotsStepperComponent, selector: "ap-dots-stepper", inputs: ["disabled", "forwardAllowed", "index", "items", "size"], outputs: ["dotClick"] }, { type: i3.SymbolComponent, selector: "ap-symbol", inputs: ["color", "id", "symbolId", "size", "state"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i5.ModalComponent, selector: "ap-modal", inputs: ["closable", "headerBottomBorderEnabled", "footerTemplate", "footerVisible", "headerTemplate", "headerVisible", "mainTemplate", "config", "containerStyle", "headerStyle", "contentStyle", "footerStyle", "defaultLayout"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FeatureOnboardingComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-feature-onboarding', template: "<ng-template #mainTemplate>\n <div class=\"carousel-main-container\">\n <div class=\"carousel-content\">\n <div *ngFor=\"let template of templates; let i = index\"\n class=\"carousel-slide-element\"\n [class.carousel-slide-element-not-displayed]=\"i !== slideDisplayedIndex\"\n [class.carousel-slide-element-active]=\"i === slideDisplayedIndex\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n <div class=\"carousel-dots-container\">\n <ap-dots-stepper\n fxLayout=\"row\"\n fxLayoutAlign=\"center\"\n size=\"small\"\n *ngIf=\"templates.length > 1\"\n [items]=\"templates\"\n [index]=\"slideDisplayedIndex\"\n (dotClick)=\"slideDisplayedIndex = $event\"></ap-dots-stepper>\n </div>\n </div>\n\n <div *ngIf=\"arrowsDisplayed\">\n <ap-symbol *ngIf=\"slideDisplayedIndex !== 0\"\n class=\"nav-button prev\"\n [symbolId]=\"'arrow-button-left'\"\n (click)=\"onClickPrevious()\">\n </ap-symbol>\n\n <ap-symbol class=\"nav-button next\"\n [symbolId]=\"'arrow-button-right'\"\n (click)=\"onClickNext(); $event.stopPropagation();\">\n </ap-symbol>\n </div>\n </div>\n\n <div class=\"carousel-footer\">\n <div class=\"button-container\">\n <button *ngIf=\"slideDisplayedIndex !== 0\"\n mat-flat-button\n class=\"carousel-previous-button\"\n (click)=\"onClickPrevious()\">\n {{backButtonLabel}}\n </button>\n <button mat-flat-button\n [color]=\"'primary'\"\n (click)=\"onClickNext()\">\n <div *ngIf=\"slideDisplayedIndex !== templates.length - 1\">{{nextButtonLabel}}</div>\n <div *ngIf=\"slideDisplayedIndex === templates.length - 1\">{{finishButtonLabel}}</div>\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ap-modal class=\"design-system\"\n [closable]=\"false\"\n [mainTemplate]=\"mainTemplate\"\n></ap-modal>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}ap-modal ::ng-deep .modal-wrapper{padding:0!important}ap-modal ::ng-deep .modal-wrapper .content{padding:0!important}.carousel-main-container{display:flex;flex-direction:column;overflow:hidden}.carousel-main-container .carousel-content{width:100%;height:100%;position:relative;margin:auto;justify-content:center;align-items:center}.carousel-main-container .carousel-content .carousel-slide-element,.carousel-main-container .carousel-content .carousel-slide-element.carousel-slide-element-not-displayed{display:none}.carousel-main-container .carousel-content .carousel-slide-element.carousel-slide-element-active{display:flex;flex-direction:column;justify-content:center;align-items:center}.carousel-main-container .carousel-content .nav-button{width:30px;height:30px;position:absolute;top:0;bottom:0;cursor:pointer;margin:auto;opacity:.4;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}.carousel-main-container .carousel-content .nav-button.tiny{width:20px;height:20px}.carousel-main-container .carousel-content .nav-button path{fill:#fffc}.carousel-main-container .carousel-content .nav-button.prev{left:12px}.carousel-main-container .carousel-content .nav-button.next{right:12px}.carousel-main-container .carousel-content .nav-button.disabled{display:none}.carousel-main-container .carousel-content .carousel-dots-container{height:28px;margin-bottom:16px}.carousel-main-container .carousel-footer{align-items:center;justify-content:flex-end;display:flex;padding:0 16px;height:68px;border-top:1px solid #eaecef}.carousel-main-container .carousel-footer .button-container{margin-right:24px}.carousel-main-container .carousel-footer .button-container .carousel-previous-button{margin-right:8px}\n"] }]
34
+ }], ctorParameters: function () { return [{ type: i1.MatDialogRef }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1vbmJvYXJkaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9zcmMvbGliL2ZlYXR1cmUtb25ib2FyZGluZy9mZWF0dXJlLW9uYm9hcmRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvZmVhdHVyZS1vbmJvYXJkaW5nL2ZlYXR1cmUtb25ib2FyZGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFVdkIsTUFBTSxPQUFPLDBCQUEwQjtJQVduQyxZQUFtQixTQUEyQztRQUEzQyxjQUFTLEdBQVQsU0FBUyxDQUFrQztRQVQ5RCxlQUFlO1FBQ2Ysb0JBQWUsR0FBVyxFQUFFLENBQUM7UUFDN0Isc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBQy9CLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBRTdCLG9CQUFlLEdBQVksS0FBSyxDQUFDLENBQUMsa0RBQWtEO1FBRXBGLHdCQUFtQixHQUFXLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztJQUdqRSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDOUksQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7OzZKQXhCUSwwQkFBMEI7aUpBQTFCLDBCQUEwQiw2RENidkMscS9FQXlEQTsyRkQ1Q2EsMEJBQTBCO2tCQU50QyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERpYWxvZ1JlZn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1mZWF0dXJlLW9uYm9hcmRpbmcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLW9uYm9hcmRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZlYXR1cmUtb25ib2FyZGluZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZlYXR1cmVPbmJvYXJkaW5nQ29tcG9uZW50IHtcblxuICAgIC8vIHRyYW5zbGF0aW9uc1xuICAgIGJhY2tCdXR0b25MYWJlbDogc3RyaW5nID0gJyc7XG4gICAgZmluaXNoQnV0dG9uTGFiZWw6IHN0cmluZyA9ICcnO1xuICAgIG5leHRCdXR0b25MYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBhcnJvd3NEaXNwbGF5ZWQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8gVG8gZGlzcGxheSBhcnJvd3MgdG8gc3dpdGNoIGVsZW1lbnQgb24gY2Fyb3VzZWxcbiAgICB0ZW1wbGF0ZXM6IGFueVtdOyAvLyBPbmUgdGVtcGxhdGUgcmVwcmVzZW50IG9uZSBlbGVtZW50IG9mIHRoZSBjYXJvdXNlbFxuICAgIHNsaWRlRGlzcGxheWVkSW5kZXg6IG51bWJlciA9IDA7IC8vIFRoZSBjdXJyZW50IGVsZW1lbnQgZGlzcGxheWVkXG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q29tcG9uZW50VHlwZTxhbnk+Pikge1xuICAgIH1cblxuICAgIG9uQ2xpY2tOZXh0KCkge1xuICAgICAgICB0aGlzLnNsaWRlRGlzcGxheWVkSW5kZXggIT09IHRoaXMudGVtcGxhdGVzLmxlbmd0aCAtIDEgPyB0aGlzLnNsaWRlRGlzcGxheWVkSW5kZXggPSB0aGlzLnNsaWRlRGlzcGxheWVkSW5kZXggKyAxIDogdGhpcy5vbkNsb3NlQ2Fyb3VzZWwoKTtcbiAgICB9XG5cbiAgICBvbkNsaWNrUHJldmlvdXMoKSB7XG4gICAgICAgIHRoaXMuc2xpZGVEaXNwbGF5ZWRJbmRleCA9IHRoaXMuc2xpZGVEaXNwbGF5ZWRJbmRleCAtIDE7XG4gICAgfVxuXG4gICAgb25DbG9zZUNhcm91c2VsKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0cnVlKTtcbiAgICB9XG5cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWFpblRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC1tYWluLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGVtcGxhdGUgb2YgdGVtcGxhdGVzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJvdXNlbC1zbGlkZS1lbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLmNhcm91c2VsLXNsaWRlLWVsZW1lbnQtbm90LWRpc3BsYXllZF09XCJpICE9PSBzbGlkZURpc3BsYXllZEluZGV4XCJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLmNhcm91c2VsLXNsaWRlLWVsZW1lbnQtYWN0aXZlXT1cImkgPT09IHNsaWRlRGlzcGxheWVkSW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtZG90cy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwLWRvdHMtc3RlcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0ZW1wbGF0ZXMubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwidGVtcGxhdGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJzbGlkZURpc3BsYXllZEluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChkb3RDbGljayk9XCJzbGlkZURpc3BsYXllZEluZGV4ID0gJGV2ZW50XCI+PC9hcC1kb3RzLXN0ZXBwZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFycm93c0Rpc3BsYXllZFwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2wgKm5nSWY9XCJzbGlkZURpc3BsYXllZEluZGV4ICE9PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWJ1dHRvbiBwcmV2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzeW1ib2xJZF09XCInYXJyb3ctYnV0dG9uLWxlZnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrUHJldmlvdXMoKVwiPlxuICAgICAgICAgICAgICAgIDwvYXAtc3ltYm9sPlxuXG4gICAgICAgICAgICAgICAgPGFwLXN5bWJvbCBjbGFzcz1cIm5hdi1idXR0b24gbmV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc3ltYm9sSWRdPVwiJ2Fycm93LWJ1dHRvbi1yaWdodCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tOZXh0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cbiAgICAgICAgICAgICAgICA8L2FwLXN5bWJvbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtZm9vdGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzbGlkZURpc3BsYXllZEluZGV4ICE9PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJvdXNlbC1wcmV2aW91cy1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tQcmV2aW91cygpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7YmFja0J1dHRvbkxhYmVsfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja05leHQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2xpZGVEaXNwbGF5ZWRJbmRleCAhPT0gdGVtcGxhdGVzLmxlbmd0aCAtIDFcIj57e25leHRCdXR0b25MYWJlbH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzbGlkZURpc3BsYXllZEluZGV4ID09PSB0ZW1wbGF0ZXMubGVuZ3RoIC0gMVwiPnt7ZmluaXNoQnV0dG9uTGFiZWx9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPGFwLW1vZGFsIGNsYXNzPVwiZGVzaWduLXN5c3RlbVwiXG4gICAgICAgICAgW2Nsb3NhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICBbbWFpblRlbXBsYXRlXT1cIm1haW5UZW1wbGF0ZVwiXG4+PC9hcC1tb2RhbD5cbiJdfQ==
@@ -0,0 +1,152 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
+ import { animate, style } from '@angular/animations';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/animations";
5
+ import * as i2 from "@angular/material/icon";
6
+ import * as i3 from "../dots-stepper/dots-stepper.component";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "../directives/frozen-gif.directive";
9
+ import * as i6 from "../directives/default-image.directive";
10
+ export var InstagramCarouselItemType;
11
+ (function (InstagramCarouselItemType) {
12
+ InstagramCarouselItemType["IMAGE"] = "photo";
13
+ InstagramCarouselItemType["VIDEO"] = "video";
14
+ })(InstagramCarouselItemType || (InstagramCarouselItemType = {}));
15
+ export class ImageCarouselComponent {
16
+ constructor(animationBuilder) {
17
+ this.animationBuilder = animationBuilder;
18
+ this.InstagramCarouselItemType = InstagramCarouselItemType;
19
+ this.items = [];
20
+ this.dotsInside = false;
21
+ this.soundEnabled = false;
22
+ this.supportGif = true;
23
+ this.tinyMode = false;
24
+ this.currentImageChanged = new EventEmitter();
25
+ this._selectedIndex = 0;
26
+ this.carouselOffset = 0;
27
+ this.videoPlayers = [];
28
+ }
29
+ get selectedIndex() {
30
+ return this._selectedIndex;
31
+ }
32
+ set selectedIndex(value) {
33
+ this.videoPause(this.selectedIndex);
34
+ if (value < 0) {
35
+ value = 0;
36
+ }
37
+ if (value > this.items.length - 1) {
38
+ value = this.items.length - 1;
39
+ }
40
+ this._selectedIndex = value;
41
+ this.move();
42
+ if (this.tinyMode && this.mouseOver) {
43
+ this.videoPlay(this.selectedIndex);
44
+ }
45
+ }
46
+ isPrevButtonEnabled() {
47
+ return this.selectedIndex > 0;
48
+ }
49
+ isNextButtonEnabled() {
50
+ if (this.items && this.items[this.selectedIndex]) {
51
+ return this.selectedIndex < this.items.length - 1;
52
+ }
53
+ return false;
54
+ }
55
+ isVideo() {
56
+ if (this.items && this.items[this.selectedIndex]) {
57
+ return this.items[this.selectedIndex].type === InstagramCarouselItemType.VIDEO;
58
+ }
59
+ return false;
60
+ }
61
+ dotsDisplayed() {
62
+ if (this.items && this.items[this.selectedIndex]) {
63
+ return this.items.length > 1;
64
+ }
65
+ return false;
66
+ }
67
+ prev() {
68
+ this.selectedIndex -= 1;
69
+ this.currentImageChanged.emit(this.items[this.selectedIndex]);
70
+ }
71
+ next() {
72
+ this.selectedIndex += 1;
73
+ this.currentImageChanged.emit(this.items[this.selectedIndex]);
74
+ }
75
+ play(event, index) {
76
+ if (!this.tinyMode) {
77
+ const videoPlayer = this.videoPlayers[index];
78
+ if (videoPlayer) {
79
+ videoPlayer.paused ? this.videoPlay(index) : this.videoPause(index);
80
+ }
81
+ event.stopPropagation();
82
+ }
83
+ }
84
+ move(instantaneous = false) {
85
+ this.carouselOffset = -this.carousel.nativeElement.offsetWidth * this.selectedIndex;
86
+ this.animationBuilder.build(animate(instantaneous ? '1ms' : '250ms ease-in', style({ transform: `translateX(${this.carouselOffset}px)` }))).create(this.carousel.nativeElement).play();
87
+ }
88
+ onMouseEntersVideo(event, index) {
89
+ this.mouseOver = true;
90
+ if (this.tinyMode) {
91
+ this.videoPlay(index);
92
+ }
93
+ }
94
+ onMouseLeavesVideo(event, index) {
95
+ this.mouseOver = false;
96
+ if (this.tinyMode) {
97
+ this.videoPause(index);
98
+ }
99
+ }
100
+ onResize(event) {
101
+ this.move(true);
102
+ }
103
+ registerVideoPlayer(event, index) {
104
+ this.videoPlayers[index] = event.target;
105
+ event.target.muted = !this.soundEnabled;
106
+ }
107
+ videoPause(index) {
108
+ const videoPlayer = this.videoPlayers[index];
109
+ if (videoPlayer) {
110
+ videoPlayer.pause();
111
+ this.isPlaying = false;
112
+ }
113
+ }
114
+ videoPlay(index) {
115
+ const videoPlayer = this.videoPlayers[index];
116
+ if (videoPlayer) {
117
+ videoPlayer.play();
118
+ this.isPlaying = true;
119
+ }
120
+ }
121
+ switchSound() {
122
+ this.soundEnabled = !this.soundEnabled;
123
+ for (const player of this.videoPlayers) {
124
+ player.muted = !this.soundEnabled;
125
+ }
126
+ }
127
+ }
128
+ /** @nocollapse */ /** @nocollapse */ ImageCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ImageCarouselComponent, deps: [{ token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Component });
129
+ /** @nocollapse */ /** @nocollapse */ ImageCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: ImageCarouselComponent, selector: "ap-image-carousel", inputs: { items: "items", dotsInside: "dotsInside", soundEnabled: "soundEnabled", supportGif: "supportGif", tinyMode: "tinyMode" }, outputs: { currentImageChanged: "currentImageChanged" }, host: { listeners: { "window:resize": "onResize($event)" } }, viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carousel"], descendants: true }], ngImport: i0, template: "<section *ngIf=\"items && items.length > 0 && items[0].url\">\n <div class=\"carousel-wrapper\"\n (mouseenter)=\"onMouseEntersVideo($event, selectedIndex)\"\n (mouseleave)=\"onMouseLeavesVideo($event, selectedIndex)\">\n <ul class=\"carousel-inner\" #carousel>\n <li *ngFor=\"let item of items; let i = index\" class=\"carousel-item\">\n <ng-template [ngIf]=\"item.type === InstagramCarouselItemType.IMAGE && item.url\">\n <img apFrozenGif\n [apFrozen]=\"!supportGif\"\n [default]=\"'assets/img/default.png'\"\n [src]=\"item.url\">\n </ng-template>\n <ng-template [ngIf]=\"item.type === InstagramCarouselItemType.VIDEO && item.url\">\n <video [id]=\"'video-' + i\"\n [attr.poster]=\"item.thumbnailUrl\"\n [loop]=\"tinyMode\"\n [src]=\"item.url\"\n (click)=\"play($event, i)\"\n (ended)=\"isPlaying = false\"\n (loadstart)=\"registerVideoPlayer($event, i)\">\n </video>\n <svg class=\"play-button\"\n xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"play($event, i)\">\n <path *ngIf=\"!isPlaying\" d=\"M11,10 L18,13.74 18,22.28 11,26 M18,13.74 L26,18 26,18 18,22.28\"/>\n </svg>\n <mat-icon class=\"sound-button\"\n *ngIf=\"!tinyMode\"\n (click)=\"switchSound(); $event.stopPropagation();\">\n {{soundEnabled ? 'volume_up' : 'volume_off'}}\n </mat-icon>\n </ng-template>\n </li>\n </ul>\n\n <svg class=\"nav-button prev\"\n [ngClass]=\"{'disabled': !isPrevButtonEnabled(), 'tiny': tinyMode}\"\n (click)=\"prev(); $event.stopPropagation();\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 455 455\">\n <path d=\"M227.5,0C101.855,0,0,101.855,0,227.5S101.855,455,227.5,455S455,353.145,455,227.5S353.145,0,227.5,0z M199.476,355.589\n l-21.248-21.178L284.791,227.5L178.228,120.589l21.248-21.178L327.148,227.5L199.476,355.589z\"/>\n </svg>\n\n <svg class=\"nav-button next\"\n [ngClass]=\"{'disabled': !isNextButtonEnabled(), 'tiny': tinyMode}\"\n (click)=\"next(); $event.stopPropagation();\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 455 455\">\n <path d=\"M227.5,0C101.855,0,0,101.855,0,227.5S101.855,455,227.5,455S455,353.145,455,227.5S353.145,0,227.5,0z M199.476,355.589\n\t l-21.248-21.178L284.791,227.5L178.228,120.589l21.248-21.178L327.148,227.5L199.476,355.589z\"/>\n </svg>\n </div>\n <div [ngClass]=\"{'inside': dotsInside}\">\n <ap-dots-stepper\n fxLayout=\"row\"\n fxLayoutAlign=\"center\"\n size=\"small\"\n *ngIf=\"dotsDisplayed()\"\n [items]=\"items\"\n [index]=\"selectedIndex\"\n (dotClick)=\"selectedIndex = $event\"></ap-dots-stepper>\n </div>\n</section>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}section{position:relative}section .carousel-wrapper{overflow:hidden;width:100%;padding-top:100%;position:relative}section .carousel-wrapper .carousel-inner{position:absolute;top:0;margin:0;padding:0;width:100%;height:100%;display:flex;list-style:none}section .carousel-wrapper .carousel-inner .carousel-item{position:relative;width:100%;flex-shrink:0;text-align:center}section .carousel-wrapper .carousel-inner .carousel-item img,section .carousel-wrapper .carousel-inner .carousel-item video{height:100%;width:100%;object-fit:cover;object-position:center}section .carousel-wrapper .carousel-inner .carousel-item .play-button{z-index:1000;position:absolute;top:0;right:0;bottom:0;left:0;width:32px;height:32px;transform:scale(2);margin:auto;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}section .carousel-wrapper .carousel-inner .carousel-item .play-button path{fill:#fffc}section .carousel-wrapper .carousel-inner .carousel-item .sound-button{z-index:1000;position:absolute;right:8px;bottom:8px;color:#fff}section .carousel-wrapper .nav-button{width:30px;height:30px;position:absolute;top:0;bottom:0;cursor:pointer;margin:auto;opacity:.4;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}section .carousel-wrapper .nav-button.tiny{width:20px;height:20px}section .carousel-wrapper .nav-button path{fill:#fffc}section .carousel-wrapper .nav-button.prev{left:12px;transform:rotate(180deg)}section .carousel-wrapper .nav-button.next{right:12px}section .carousel-wrapper .nav-button.disabled{display:none}section ::ng-deep div.inside ap-dots-stepper div.dots{bottom:0;width:calc(100% - 80px)}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.DotsStepperComponent, selector: "ap-dots-stepper", inputs: ["disabled", "forwardAllowed", "index", "items", "size"], outputs: ["dotClick"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.FrozenGifDirective, selector: "img[apFrozenGif]", inputs: ["src", "apFrozen", "apGifEvents"] }, { type: i6.DefaultImageDirective, selector: "img[default]", inputs: ["src", "default"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ImageCarouselComponent, decorators: [{
131
+ type: Component,
132
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-image-carousel', template: "<section *ngIf=\"items && items.length > 0 && items[0].url\">\n <div class=\"carousel-wrapper\"\n (mouseenter)=\"onMouseEntersVideo($event, selectedIndex)\"\n (mouseleave)=\"onMouseLeavesVideo($event, selectedIndex)\">\n <ul class=\"carousel-inner\" #carousel>\n <li *ngFor=\"let item of items; let i = index\" class=\"carousel-item\">\n <ng-template [ngIf]=\"item.type === InstagramCarouselItemType.IMAGE && item.url\">\n <img apFrozenGif\n [apFrozen]=\"!supportGif\"\n [default]=\"'assets/img/default.png'\"\n [src]=\"item.url\">\n </ng-template>\n <ng-template [ngIf]=\"item.type === InstagramCarouselItemType.VIDEO && item.url\">\n <video [id]=\"'video-' + i\"\n [attr.poster]=\"item.thumbnailUrl\"\n [loop]=\"tinyMode\"\n [src]=\"item.url\"\n (click)=\"play($event, i)\"\n (ended)=\"isPlaying = false\"\n (loadstart)=\"registerVideoPlayer($event, i)\">\n </video>\n <svg class=\"play-button\"\n xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"play($event, i)\">\n <path *ngIf=\"!isPlaying\" d=\"M11,10 L18,13.74 18,22.28 11,26 M18,13.74 L26,18 26,18 18,22.28\"/>\n </svg>\n <mat-icon class=\"sound-button\"\n *ngIf=\"!tinyMode\"\n (click)=\"switchSound(); $event.stopPropagation();\">\n {{soundEnabled ? 'volume_up' : 'volume_off'}}\n </mat-icon>\n </ng-template>\n </li>\n </ul>\n\n <svg class=\"nav-button prev\"\n [ngClass]=\"{'disabled': !isPrevButtonEnabled(), 'tiny': tinyMode}\"\n (click)=\"prev(); $event.stopPropagation();\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 455 455\">\n <path d=\"M227.5,0C101.855,0,0,101.855,0,227.5S101.855,455,227.5,455S455,353.145,455,227.5S353.145,0,227.5,0z M199.476,355.589\n l-21.248-21.178L284.791,227.5L178.228,120.589l21.248-21.178L327.148,227.5L199.476,355.589z\"/>\n </svg>\n\n <svg class=\"nav-button next\"\n [ngClass]=\"{'disabled': !isNextButtonEnabled(), 'tiny': tinyMode}\"\n (click)=\"next(); $event.stopPropagation();\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 455 455\">\n <path d=\"M227.5,0C101.855,0,0,101.855,0,227.5S101.855,455,227.5,455S455,353.145,455,227.5S353.145,0,227.5,0z M199.476,355.589\n\t l-21.248-21.178L284.791,227.5L178.228,120.589l21.248-21.178L327.148,227.5L199.476,355.589z\"/>\n </svg>\n </div>\n <div [ngClass]=\"{'inside': dotsInside}\">\n <ap-dots-stepper\n fxLayout=\"row\"\n fxLayoutAlign=\"center\"\n size=\"small\"\n *ngIf=\"dotsDisplayed()\"\n [items]=\"items\"\n [index]=\"selectedIndex\"\n (dotClick)=\"selectedIndex = $event\"></ap-dots-stepper>\n </div>\n</section>\n", styles: ["[color=facebook]{color:#1877f2}[bgcolor=facebook],[hcolor=facebook]:hover{background-color:#1877f2}[border=facebook]{border:1px solid #1877f2}[color=google]{color:#4e85e8}[bgcolor=google],[hcolor=google]:hover{background-color:#4e85e8}[border=google]{border:1px solid #4e85e8}[color=instagram]{color:#e1306c}[bgcolor=instagram],[hcolor=instagram]:hover{background-color:#e1306c}[border=instagram]{border:1px solid #e1306c}[color=instagrammagenta]{color:#c13584}[bgcolor=instagrammagenta],[hcolor=instagrammagenta]:hover{background-color:#c13584}[border=instagrammagenta]{border:1px solid #c13584}[color=instagramblue]{color:#5851db}[bgcolor=instagramblue],[hcolor=instagramblue]:hover{background-color:#5851db}[border=instagramblue]{border:1px solid #5851db}[color=instagrampurple]{color:#833ab4}[bgcolor=instagrampurple],[hcolor=instagrampurple]:hover{background-color:#833ab4}[border=instagrampurple]{border:1px solid #833ab4}[color=instagramorange]{color:#f56040}[bgcolor=instagramorange],[hcolor=instagramorange]:hover{background-color:#f56040}[border=instagramorange]{border:1px solid #f56040}[color=instagramyellow]{color:#ffdc80}[bgcolor=instagramyellow],[hcolor=instagramyellow]:hover{background-color:#ffdc80}[border=instagramyellow]{border:1px solid #ffdc80}[color=linkedin]{color:#2c67bc}[bgcolor=linkedin],[hcolor=linkedin]:hover{background-color:#2c67bc}[border=linkedin]{border:1px solid #2c67bc}[color=twitter]{color:#55acee}[bgcolor=twitter],[hcolor=twitter]:hover{background-color:#55acee}[border=twitter]{border:1px solid #55acee}[color=youtube]{color:red}[bgcolor=youtube],[hcolor=youtube]:hover{background-color:red}[border=youtube]{border:1px solid #ff0000}[color=blood-orange]{color:#ff4d00}[bgcolor=blood-orange],[hcolor=blood-orange]:hover{background-color:#ff4d00}[border=blood-orange]{border:1px solid #ff4d00}[color=pinkish-orange]{color:#ff7b49}[bgcolor=pinkish-orange],[hcolor=pinkish-orange]:hover{background-color:#ff7b49}[border=pinkish-orange]{border:1px solid #ff7b49}[color=charcoal-grey]{color:#2a2f34}[bgcolor=charcoal-grey],[hcolor=charcoal-grey]:hover{background-color:#2a2f34}[border=charcoal-grey]{border:1px solid #2a2f34}[color=azure]{color:#00aeef}[bgcolor=azure],[hcolor=azure]:hover{background-color:#00aeef}[border=azure]{border:1px solid #00aeef}[color=light-azure]{color:#eaf5fd}[bgcolor=light-azure],[hcolor=light-azure]:hover{background-color:#eaf5fd}[border=light-azure]{border:1px solid #eaf5fd}[color=blue-grey]{color:#8d98a9}[bgcolor=blue-grey],[hcolor=blue-grey]:hover{background-color:#8d98a9}[border=blue-grey]{border:1px solid #8d98a9}[color=silver]{color:#ced0da}[bgcolor=silver],[hcolor=silver]:hover{background-color:#ced0da}[border=silver]{border:1px solid #ced0da}[color=pale-grey]{color:#dfe3e9}[bgcolor=pale-grey],[hcolor=pale-grey]:hover{background-color:#dfe3e9}[border=pale-grey]{border:1px solid #dfe3e9}[color=grey-white]{color:#f5f7f8}[bgcolor=grey-white],[hcolor=grey-white]:hover{background-color:#f5f7f8}[border=grey-white]{border:1px solid #f5f7f8}[color=cool-grey]{color:#b4bbc6}[bgcolor=cool-grey],[hcolor=cool-grey]:hover{background-color:#b4bbc6}[border=cool-grey]{border:1px solid #b4bbc6}[color=black]{color:#344563}[bgcolor=black],[hcolor=black]:hover{background-color:#344563}[border=black]{border:1px solid #344563}[color=grey-blue]{color:#68768c}[bgcolor=grey-blue],[hcolor=grey-blue]:hover{background-color:#68768c}[border=grey-blue]{border:1px solid #68768c}[color=strawberry]{color:#f4282d}[bgcolor=strawberry],[hcolor=strawberry]:hover{background-color:#f4282d}[border=strawberry]{border:1px solid #f4282d}[color=light-strawberry]{color:#f8eded}[bgcolor=light-strawberry],[hcolor=light-strawberry]:hover{background-color:#f8eded}[border=light-strawberry]{border:1px solid #f8eded}[color=white]{color:#fff}[bgcolor=white],[hcolor=white]:hover{background-color:#fff}[border=white]{border:1px solid #ffffff}[color=cool-green]{color:#33c15d}[bgcolor=cool-green],[hcolor=cool-green]:hover{background-color:#33c15d}[border=cool-green]{border:1px solid #33c15d}[color=light-green]{color:#ebfaef}[bgcolor=light-green],[hcolor=light-green]:hover{background-color:#ebfaef}[border=light-green]{border:1px solid #ebfaef}[color=transparent]{color:transparent}[bgcolor=transparent],[hcolor=transparent]:hover{background-color:transparent}[border=transparent]{border:1px solid transparent}[color=c0]{color:#a566a5}[bgcolor=c0],[hcolor=c0]:hover{background-color:#a566a5}[border=c0]{border:1px solid #A566A5}[color=c1]{color:#c7ab82}[bgcolor=c1],[hcolor=c1]:hover{background-color:#c7ab82}[border=c1]{border:1px solid #C7AB82}[color=c2]{color:#f2713c}[bgcolor=c2],[hcolor=c2]:hover{background-color:#f2713c}[border=c2]{border:1px solid #F2713C}[color=c3]{color:#ffd006}[bgcolor=c3],[hcolor=c3]:hover{background-color:#ffd006}[border=c3]{border:1px solid #FFD006}[color=c4]{color:#94c5aa}[bgcolor=c4],[hcolor=c4]:hover{background-color:#94c5aa}[border=c4]{border:1px solid #94C5AA}[color=c5]{color:#2a9d8f}[bgcolor=c5],[hcolor=c5]:hover{background-color:#2a9d8f}[border=c5]{border:1px solid #2A9D8F}[color=c6]{color:#78acd8}[bgcolor=c6],[hcolor=c6]:hover{background-color:#78acd8}[border=c6]{border:1px solid #78ACD8}[color=c7]{color:#525a9e}[bgcolor=c7],[hcolor=c7]:hover{background-color:#525a9e}[border=c7]{border:1px solid #525A9E}[color=c8]{color:#6a2459}[bgcolor=c8],[hcolor=c8]:hover{background-color:#6a2459}[border=c8]{border:1px solid #6A2459}[color=c9]{color:#74729e}[bgcolor=c9],[hcolor=c9]:hover{background-color:#74729e}[border=c9]{border:1px solid #74729E}section{position:relative}section .carousel-wrapper{overflow:hidden;width:100%;padding-top:100%;position:relative}section .carousel-wrapper .carousel-inner{position:absolute;top:0;margin:0;padding:0;width:100%;height:100%;display:flex;list-style:none}section .carousel-wrapper .carousel-inner .carousel-item{position:relative;width:100%;flex-shrink:0;text-align:center}section .carousel-wrapper .carousel-inner .carousel-item img,section .carousel-wrapper .carousel-inner .carousel-item video{height:100%;width:100%;object-fit:cover;object-position:center}section .carousel-wrapper .carousel-inner .carousel-item .play-button{z-index:1000;position:absolute;top:0;right:0;bottom:0;left:0;width:32px;height:32px;transform:scale(2);margin:auto;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}section .carousel-wrapper .carousel-inner .carousel-item .play-button path{fill:#fffc}section .carousel-wrapper .carousel-inner .carousel-item .sound-button{z-index:1000;position:absolute;right:8px;bottom:8px;color:#fff}section .carousel-wrapper .nav-button{width:30px;height:30px;position:absolute;top:0;bottom:0;cursor:pointer;margin:auto;opacity:.4;filter:drop-shadow(0 0 1px rgba(0,0,0,.25))}section .carousel-wrapper .nav-button.tiny{width:20px;height:20px}section .carousel-wrapper .nav-button path{fill:#fffc}section .carousel-wrapper .nav-button.prev{left:12px;transform:rotate(180deg)}section .carousel-wrapper .nav-button.next{right:12px}section .carousel-wrapper .nav-button.disabled{display:none}section ::ng-deep div.inside ap-dots-stepper div.dots{bottom:0;width:calc(100% - 80px)}\n"] }]
133
+ }], ctorParameters: function () { return [{ type: i1.AnimationBuilder }]; }, propDecorators: { carousel: [{
134
+ type: ViewChild,
135
+ args: ['carousel']
136
+ }], items: [{
137
+ type: Input
138
+ }], dotsInside: [{
139
+ type: Input
140
+ }], soundEnabled: [{
141
+ type: Input
142
+ }], supportGif: [{
143
+ type: Input
144
+ }], tinyMode: [{
145
+ type: Input
146
+ }], currentImageChanged: [{
147
+ type: Output
148
+ }], onResize: [{
149
+ type: HostListener,
150
+ args: ['window:resize', ['$event']]
151
+ }] } });
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvaW1hZ2UtY2Fyb3VzZWwvaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvaW1hZ2UtY2Fyb3VzZWwvaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsT0FBTyxFQUFvQixLQUFLLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFFckUsTUFBTSxDQUFOLElBQVkseUJBR1g7QUFIRCxXQUFZLHlCQUF5QjtJQUNqQyw0Q0FBZSxDQUFBO0lBQ2YsNENBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSFcseUJBQXlCLEtBQXpCLHlCQUF5QixRQUdwQztBQWNELE1BQU0sT0FBTyxzQkFBc0I7SUFvQi9CLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEIvQyw4QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztRQUlwRCxVQUFLLEdBQTRCLEVBQUUsQ0FBQztRQUNwQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVoQix3QkFBbUIsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFdkcsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFH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b25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2FuaW1hdGUsIEFuaW1hdGlvbkJ1aWxkZXIsIHN0eWxlfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuZXhwb3J0IGVudW0gSW5zdGFncmFtQ2Fyb3VzZWxJdGVtVHlwZSB7XG4gICAgSU1BR0UgPSAncGhvdG8nLFxuICAgIFZJREVPID0gJ3ZpZGVvJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhZ3JhbUNhcm91c2VsSXRlbSB7XG4gICAgdHlwZTogSW5zdGFncmFtQ2Fyb3VzZWxJdGVtVHlwZTtcbiAgICB1cmw6IHN0cmluZztcbiAgICB0aHVtYm5haWxVcmw/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnYXAtaW1hZ2UtY2Fyb3VzZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZUNhcm91c2VsQ29tcG9uZW50IHtcblxuICAgIHB1YmxpYyBJbnN0YWdyYW1DYXJvdXNlbEl0ZW1UeXBlID0gSW5zdGFncmFtQ2Fyb3VzZWxJdGVtVHlwZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsJykgcHJpdmF0ZSBjYXJvdXNlbDogRWxlbWVudFJlZjtcblxuICAgIEBJbnB1dCgpIGl0ZW1zOiBJbnN0YWdyYW1DYXJvdXNlbEl0ZW1bXSA9IFtdO1xuICAgIEBJbnB1dCgpIGRvdHNJbnNpZGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzb3VuZEVuYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzdXBwb3J0R2lmID0gdHJ1ZTtcbiAgICBASW5wdXQoKSB0aW55TW9kZSA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGN1cnJlbnRJbWFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbnN0YWdyYW1DYXJvdXNlbEl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnN0YWdyYW1DYXJvdXNlbEl0ZW0+KCk7XG5cbiAgICBwcml2YXRlIF9zZWxlY3RlZEluZGV4ID0gMDtcbiAgICBwdWJsaWMgY2Fyb3VzZWxPZmZzZXQgPSAwO1xuICAgIHB1YmxpYyBpc1BsYXlpbmc6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBtb3VzZU92ZXI6IGJvb2xlYW47XG4gICAgcHVibGljIHZpZGVvUGxheWVyczogSFRNTFZpZGVvRWxlbWVudFtdID0gW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFuaW1hdGlvbkJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSW5kZXg7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52aWRlb1BhdXNlKHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgIGlmICh2YWx1ZSA8IDApIHtcbiAgICAgICAgICAgIHZhbHVlID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUgPiB0aGlzLml0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5pdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5tb3ZlKCk7XG4gICAgICAgIGlmICh0aGlzLnRpbnlNb2RlICYmIHRoaXMubW91c2VPdmVyKSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvUGxheSh0aGlzLnNlbGVjdGVkSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNQcmV2QnV0dG9uRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJbmRleCA+IDA7XG4gICAgfVxuXG4gICAgaXNOZXh0QnV0dG9uRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEluZGV4IDwgdGhpcy5pdGVtcy5sZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpc1ZpZGVvKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0udHlwZSA9PT0gSW5zdGFncmFtQ2Fyb3VzZWxJdGVtVHlwZS5WSURFTztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZG90c0Rpc3BsYXllZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGggPiAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcmV2KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggLT0gMTtcbiAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VDaGFuZ2VkLmVtaXQodGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdKTtcbiAgICB9XG5cbiAgICBuZXh0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggKz0gMTtcbiAgICAgICAgdGhpcy5jdXJyZW50SW1hZ2VDaGFuZ2VkLmVtaXQodGhpcy5pdGVtc1t0aGlzLnNlbGVjdGVkSW5kZXhdKTtcbiAgICB9XG5cbiAgICBwbGF5KGV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy50aW55TW9kZSkge1xuICAgICAgICAgICAgY29uc3QgdmlkZW9QbGF5ZXI6IEhUTUxWaWRlb0VsZW1lbnQgPSB0aGlzLnZpZGVvUGxheWVyc1tpbmRleF07XG4gICAgICAgICAgICBpZiAodmlkZW9QbGF5ZXIpIHtcbiAgICAgICAgICAgICAgICB2aWRlb1BsYXllci5wYXVzZWQgPyB0aGlzLnZpZGVvUGxheShpbmRleCkgOiB0aGlzLnZpZGVvUGF1c2UoaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtb3ZlKGluc3RhbnRhbmVvdXM6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhcm91c2VsT2Zmc2V0ID0gLXRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAqIHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgdGhpcy5hbmltYXRpb25CdWlsZGVyLmJ1aWxkKFxuICAgICAgICAgICAgYW5pbWF0ZShpbnN0YW50YW5lb3VzID8gJzFtcycgOiAnMjUwbXMgZWFzZS1pbicsIHN0eWxlKHt0cmFuc2Zvcm06IGB0cmFuc2xhdGVYKCR7dGhpcy5jYXJvdXNlbE9mZnNldH1weClgfSkpXG4gICAgICAgICkuY3JlYXRlKHRoaXMuY2Fyb3VzZWwubmF0aXZlRWxlbWVudCkucGxheSgpO1xuICAgIH1cblxuICAgIG9uTW91c2VFbnRlcnNWaWRlbyhldmVudCwgaW5kZXgpIHtcbiAgICAgICAgdGhpcy5tb3VzZU92ZXIgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy50aW55TW9kZSkge1xuICAgICAgICAgICAgdGhpcy52aWRlb1BsYXkoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb3VzZUxlYXZlc1ZpZGVvKGV2ZW50LCBpbmRleCkge1xuICAgICAgICB0aGlzLm1vdXNlT3ZlciA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy50aW55TW9kZSkge1xuICAgICAgICAgICAgdGhpcy52aWRlb1BhdXNlKGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICAgIG9uUmVzaXplKGV2ZW50KSB7XG4gICAgICAgIHRoaXMubW92ZSh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJWaWRlb1BsYXllcihldmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZpZGVvUGxheWVyc1tpbmRleF0gPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGV2ZW50LnRhcmdldC5tdXRlZCA9ICF0aGlzLnNvdW5kRW5hYmxlZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZpZGVvUGF1c2UoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB2aWRlb1BsYXllcjogSFRNTFZpZGVvRWxlbWVudCA9IHRoaXMudmlkZW9QbGF5ZXJzW2luZGV4XTtcbiAgICAgICAgaWYgKHZpZGVvUGxheWVyKSB7XG4gICAgICAgICAgICB2aWRlb1BsYXllci5wYXVzZSgpO1xuICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdmlkZW9QbGF5KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgdmlkZW9QbGF5ZXI6IEhUTUxWaWRlb0VsZW1lbnQgPSB0aGlzLnZpZGVvUGxheWVyc1tpbmRleF07XG4gICAgICAgIGlmICh2aWRlb1BsYXllcikge1xuICAgICAgICAgICAgdmlkZW9QbGF5ZXIucGxheSgpO1xuICAgICAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN3aXRjaFNvdW5kKCkge1xuICAgICAgICB0aGlzLnNvdW5kRW5hYmxlZCA9ICF0aGlzLnNvdW5kRW5hYmxlZDtcbiAgICAgICAgZm9yIChjb25zdCBwbGF5ZXIgb2YgdGhpcy52aWRlb1BsYXllcnMpIHtcbiAgICAgICAgICAgIHBsYXllci5tdXRlZCA9ICF0aGlzLnNvdW5kRW5hYmxlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxzZWN0aW9uICpuZ0lmPVwiaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMCAmJiBpdGVtc1swXS51cmxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtd3JhcHBlclwiXG4gICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXJzVmlkZW8oJGV2ZW50LCBzZWxlY3RlZEluZGV4KVwiXG4gICAgICAgICAobW91c2VsZWF2ZSk9XCJvbk1vdXNlTGVhdmVzVmlkZW8oJGV2ZW50LCBzZWxlY3RlZEluZGV4KVwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJjYXJvdXNlbC1pbm5lclwiICNjYXJvdXNlbD5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiY2Fyb3VzZWwtaXRlbVwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpdGVtLnR5cGUgPT09IEluc3RhZ3JhbUNhcm91c2VsSXRlbVR5cGUuSU1BR0UgJiYgaXRlbS51cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBhcEZyb3plbkdpZlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthcEZyb3plbl09XCIhc3VwcG9ydEdpZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRdPVwiJ2Fzc2V0cy9pbWcvZGVmYXVsdC5wbmcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0udXJsXCI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXRlbS50eXBlID09PSBJbnN0YWdyYW1DYXJvdXNlbEl0ZW1UeXBlLlZJREVPICYmIGl0ZW0udXJsXCI+XG4gICAgICAgICAgICAgICAgICAgIDx2aWRlbyBbaWRdPVwiJ3ZpZGVvLScgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnBvc3Rlcl09XCJpdGVtLnRodW1ibmFpbFVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbG9vcF09XCJ0aW55TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5KCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZGVkKT1cImlzUGxheWluZyA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2Fkc3RhcnQpPVwicmVnaXN0ZXJWaWRlb1BsYXllcigkZXZlbnQsIGkpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvdmlkZW8+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJwbGF5LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBsYXkoJGV2ZW50LCBpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggKm5nSWY9XCIhaXNQbGF5aW5nXCIgZD1cIk0xMSwxMCBMMTgsMTMuNzQgMTgsMjIuMjggMTEsMjYgTTE4LDEzLjc0IEwyNiwxOCAyNiwxOCAxOCwyMi4yOFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNvdW5kLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiF0aW55TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3dpdGNoU291bmQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tzb3VuZEVuYWJsZWQgPyAndm9sdW1lX3VwJyA6ICd2b2x1bWVfb2ZmJ319XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG5cbiAgICAgICAgPHN2ZyBjbGFzcz1cIm5hdi1idXR0b24gcHJldlwiXG4gICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ICFpc1ByZXZCdXR0b25FbmFibGVkKCksICd0aW55JzogdGlueU1vZGV9XCJcbiAgICAgICAgICAgICAoY2xpY2spPVwicHJldigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCJcbiAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDQ1NSA0NTVcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjI3LjUsMEMxMDEuODU1LDAsMCwxMDEuODU1LDAsMjI3LjVTMTAxLjg1NSw0NTUsMjI3LjUsNDU1UzQ1NSwzNTMuMTQ1LDQ1NSwyMjcuNVMzNTMuMTQ1LDAsMjI3LjUsMHogTTE5OS40NzYsMzU1LjU4OVxuICAgICAgICAgICAgICAgICAgbC0yMS4yNDgtMjEuMTc4TDI4NC43OTEsMjI3LjVMMTc4LjIyOCwxMjAuNTg5bDIxLjI0OC0yMS4xNzhMMzI3LjE0OCwyMjcuNUwxOTkuNDc2LDM1NS41ODl6XCIvPlxuICAgICAgICA8L3N2Zz5cblxuICAgICAgICA8c3ZnIGNsYXNzPVwibmF2LWJ1dHRvbiBuZXh0XCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogIWlzTmV4dEJ1dHRvbkVuYWJsZWQoKSwgJ3RpbnknOiB0aW55TW9kZX1cIlxuICAgICAgICAgICAgIChjbGljayk9XCJuZXh0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxuICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNDU1IDQ1NVwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0yMjcuNSwwQzEwMS44NTUsMCwwLDEwMS44NTUsMCwyMjcuNVMxMDEuODU1LDQ1NSwyMjcuNSw0NTVTNDU1LDM1My4xNDUsNDU1LDIyNy41UzM1My4xNDUsMCwyMjcuNSwweiBNMTk5LjQ3NiwzNTUuNTg5XG5cdCAgICAgICAgICAgICAgbC0yMS4yNDgtMjEuMTc4TDI4NC43OTEsMjI3LjVMMTc4LjIyOCwxMjAuNTg5bDIxLjI0OC0yMS4xNzhMMzI3LjE0OCwyMjcuNUwxOTkuNDc2LDM1NS41ODl6XCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaW5zaWRlJzogZG90c0luc2lkZX1cIj5cbiAgICAgICAgPGFwLWRvdHMtc3RlcHBlclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlclwiXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgKm5nSWY9XCJkb3RzRGlzcGxheWVkKClcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICAgICAgICAgIFtpbmRleF09XCJzZWxlY3RlZEluZGV4XCJcbiAgICAgICAgICAgIChkb3RDbGljayk9XCJzZWxlY3RlZEluZGV4ID0gJGV2ZW50XCI+PC9hcC1kb3RzLXN0ZXBwZXI+XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=