@agorapulse/ui-components 13.2.8 → 13.2.11

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 (38) hide show
  1. package/agorapulse-ui-components-13.2.11.tgz +0 -0
  2. package/esm2020/index.mjs +1 -11
  3. package/esm2020/src/lib/agorapulse-ui-components.module.mjs +2 -47
  4. package/esm2020/src/lib/avatar/avatar.component.mjs +7 -3
  5. package/esm2020/src/lib/labels/label-list.component.mjs +1 -2
  6. package/esm2020/src/lib/popmenu/index.mjs +5 -0
  7. package/fesm2015/agorapulse-ui-components.mjs +181 -635
  8. package/fesm2015/agorapulse-ui-components.mjs.map +1 -1
  9. package/fesm2020/agorapulse-ui-components.mjs +181 -632
  10. package/fesm2020/agorapulse-ui-components.mjs.map +1 -1
  11. package/index.d.ts +0 -11
  12. package/package.json +1 -1
  13. package/src/lib/agorapulse-ui-components.module.d.ts +51 -60
  14. package/src/lib/avatar/avatar.component.d.ts +2 -2
  15. package/src/lib/popmenu/index.d.ts +4 -0
  16. package/agorapulse-ui-components-13.2.8.tgz +0 -0
  17. package/esm2020/src/lib/feature-onboarding/feature-onboarding.component.mjs +0 -35
  18. package/esm2020/src/lib/image-carousel/image-carousel.component.mjs +0 -161
  19. package/esm2020/src/lib/overlay/overlay-dialog-service.component.mjs +0 -61
  20. package/esm2020/src/lib/overlay/overlay-dialog.component.mjs +0 -33
  21. package/esm2020/src/lib/overlay-in-div/overlay-in-div.component.mjs +0 -27
  22. package/esm2020/src/lib/places/place-list.component.mjs +0 -11
  23. package/esm2020/src/lib/places/place.component.mjs +0 -14
  24. package/esm2020/src/lib/splashscreen/splashscreen.component.mjs +0 -43
  25. package/esm2020/src/lib/star-rating/star-rating.component.mjs +0 -43
  26. package/esm2020/src/lib/try-popup/try-popup-texts.model.mjs +0 -2
  27. package/esm2020/src/lib/try-popup/try-popup.component.mjs +0 -37
  28. package/src/lib/feature-onboarding/feature-onboarding.component.d.ts +0 -18
  29. package/src/lib/image-carousel/image-carousel.component.d.ts +0 -49
  30. package/src/lib/overlay/overlay-dialog-service.component.d.ts +0 -23
  31. package/src/lib/overlay/overlay-dialog.component.d.ts +0 -20
  32. package/src/lib/overlay-in-div/overlay-in-div.component.d.ts +0 -11
  33. package/src/lib/places/place-list.component.d.ts +0 -5
  34. package/src/lib/places/place.component.d.ts +0 -6
  35. package/src/lib/splashscreen/splashscreen.component.d.ts +0 -18
  36. package/src/lib/star-rating/star-rating.component.d.ts +0 -13
  37. package/src/lib/try-popup/try-popup-texts.model.d.ts +0 -4
  38. package/src/lib/try-popup/try-popup.component.d.ts +0 -15
package/index.d.ts CHANGED
@@ -15,31 +15,20 @@ export { StepperComponent } from './src/lib/stepper/stepper.component';
15
15
  export { ConfirmModalComponent } from './src/lib/confirm-modal/confirm-modal.component';
16
16
  export { DatepickerComponent, DatepickerMode, I18nDatePicker, Period } from './src/lib/datepicker/datepicker.component';
17
17
  export { DotsStepperComponent } from './src/lib/dots-stepper/dots-stepper.component';
18
- export { ImageCarouselComponent, InstagramCarouselItemType } from './src/lib/image-carousel/image-carousel.component';
19
- export { FeatureOnboardingComponent } from './src/lib/feature-onboarding/feature-onboarding.component';
20
18
  export { LabelComponent } from './src/lib/labels/label.component';
21
19
  export { LabelListComponent } from './src/lib/labels/label-list.component';
22
20
  export { LabelsSelectorComponent } from './src/lib/labels-selector/labels-selector.component';
23
21
  export { MediaDisplayOverlayDialogComponent } from './src/lib/media-display-overlay/media-display-overlay-dialog.component';
24
22
  export { ModalComponent, ModalConfig } from './src/lib/modal/modal.component';
25
- export { OverlayDialogComponent } from './src/lib/overlay/overlay-dialog.component';
26
- export { OverlayInDivComponent } from './src/lib/overlay-in-div/overlay-in-div.component';
27
- export { OverlayDialogService } from './src/lib/overlay/overlay-dialog-service.component';
28
23
  export { PaginatorComponent } from './src/lib/paginator/paginator.component';
29
24
  export { PasswordInputComponent } from './src/lib/password-input/password-input.component';
30
- export { PlaceComponent } from './src/lib/places/place.component';
31
- export { PlaceListComponent } from './src/lib/places/place-list.component';
32
25
  export { PopmenuComponent } from './src/lib/popmenu/popmenu.component';
33
- export { SplashscreenComponent } from './src/lib/splashscreen/splashscreen.component';
34
26
  export { SnackBarComponent } from './src/lib/snackbar/snackbar.component';
35
- export { TryPopupComponent } from './src/lib/try-popup/try-popup.component';
36
27
  export { NotificationComponent } from './src/lib/notification/notification.component';
37
28
  export { PaginatorButtonComponent } from './src/lib/paginator/paginator-button/paginator-button.component';
38
29
  export { SlideToggleComponent } from './src/lib/slide-toggle/slide-toggle.component';
39
30
  export { SnackbarsThreadComponent } from './src/lib/snackbars-thread/component/snackbars-thread.component';
40
- export { StarRatingComponent } from './src/lib/star-rating/star-rating.component';
41
31
  export { SnackbarsThreadService } from './src/lib/snackbars-thread/service/snackbars-thread.service';
42
32
  export { Step } from './src/lib/stepper/step.model';
43
33
  export { ConfirmModalTexts } from './src/lib/confirm-modal/confirm-modal-texts.model';
44
- export { TryPopupTexts } from './src/lib/try-popup/try-popup-texts.model';
45
34
  export { generateCodeStatus, SnackbarsThreadBase, SnackbarTypeValues, externalSnackbarTypeAllowed } from './src/lib/snackbars-thread/model/snackbars-thread.model';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@agorapulse/ui-components",
3
3
  "description": "Agorapulse UI Components Library",
4
- "version": "13.2.8",
4
+ "version": "13.2.11",
5
5
  "author": "Benoit Hediard",
6
6
  "repository": {
7
7
  "type": "git",
@@ -7,67 +7,58 @@ import * as i5 from "./confirm-modal/confirm-modal.component";
7
7
  import * as i6 from "./datepicker/datepicker.component";
8
8
  import * as i7 from "./dots-stepper/dots-stepper.component";
9
9
  import * as i8 from "./directives/ellipsis.directive";
10
- import * as i9 from "./image-carousel/image-carousel.component";
11
- import * as i10 from "./feature-onboarding/feature-onboarding.component";
12
- import * as i11 from "./labels/label-list.component";
13
- import * as i12 from "./labels-selector/labels-selector.component";
14
- import * as i13 from "./media-display-overlay/media-display-overlay-dialog.component";
15
- import * as i14 from "./modal/modal.component";
16
- import * as i15 from "./overlay/overlay-dialog.component";
17
- import * as i16 from "./overlay-in-div/overlay-in-div.component";
18
- import * as i17 from "./password-input/password-input.component";
19
- import * as i18 from "./places/place.component";
20
- import * as i19 from "./places/place-list.component";
21
- import * as i20 from "./snackbar/snackbar.component";
22
- import * as i21 from "./splashscreen/splashscreen.component";
23
- import * as i22 from "./star-rating/star-rating.component";
24
- import * as i23 from "./labels/label.component";
25
- import * as i24 from "./try-popup/try-popup.component";
26
- import * as i25 from "./notification/notification.component";
27
- import * as i26 from "./paginator/paginator.component";
28
- import * as i27 from "./paginator/paginator-button/paginator-button.component";
29
- import * as i28 from "./slide-toggle/slide-toggle.component";
30
- import * as i29 from "./snackbars-thread/component/snackbars-thread.component";
31
- import * as i30 from "./tooltip-neo/tooltip-neo.component";
32
- import * as i31 from "./directives/default-image.directive";
33
- import * as i32 from "./directives/frozen-gif.directive";
34
- import * as i33 from "./directives/equal-validator.directive";
35
- import * as i34 from "./directives/multi-style-text.directive";
36
- import * as i35 from "./directives/truncate-tooltip.directive";
37
- import * as i36 from "./tooltip-neo/tooltip-neo.directive";
38
- import * as i37 from "@agorapulse/ui-symbol";
39
- import * as i38 from "@angular/common";
40
- import * as i39 from "ngx-daterangepicker-material";
41
- import * as i40 from "@angular/forms";
42
- import * as i41 from "@ng-select/ng-select";
43
- import * as i42 from "./popmenu/popmenu.module";
44
- import * as i43 from "@angular/cdk/overlay";
45
- import * as i44 from "@angular/material/badge";
46
- import * as i45 from "@angular/material/button";
47
- import * as i46 from "@angular/material/button-toggle";
48
- import * as i47 from "@angular/material/chips";
49
- import * as i48 from "@angular/material/expansion";
50
- import * as i49 from "@angular/material/checkbox";
51
- import * as i50 from "@angular/material/icon";
52
- import * as i51 from "@angular/material/progress-bar";
53
- import * as i52 from "@angular/material/progress-spinner";
54
- import * as i53 from "@angular/material/radio";
55
- import * as i54 from "@angular/material/slider";
56
- import * as i55 from "@angular/material/slide-toggle";
57
- import * as i56 from "@angular/material/menu";
58
- import * as i57 from "@angular/material/sidenav";
59
- import * as i58 from "@angular/material/toolbar";
60
- import * as i59 from "@angular/material/card";
61
- import * as i60 from "@angular/material/divider";
62
- import * as i61 from "@angular/material/grid-list";
63
- import * as i62 from "@angular/material/list";
64
- import * as i63 from "@angular/material/tabs";
65
- import * as i64 from "@angular/material/stepper";
66
- import * as i65 from "@angular/material/dialog";
67
- import * as i66 from "@angular/material/snack-bar";
68
- import * as i67 from "@angular/material/table";
10
+ import * as i9 from "./labels/label-list.component";
11
+ import * as i10 from "./labels-selector/labels-selector.component";
12
+ import * as i11 from "./media-display-overlay/media-display-overlay-dialog.component";
13
+ import * as i12 from "./modal/modal.component";
14
+ import * as i13 from "./password-input/password-input.component";
15
+ import * as i14 from "./snackbar/snackbar.component";
16
+ import * as i15 from "./labels/label.component";
17
+ import * as i16 from "./notification/notification.component";
18
+ import * as i17 from "./paginator/paginator.component";
19
+ import * as i18 from "./paginator/paginator-button/paginator-button.component";
20
+ import * as i19 from "./slide-toggle/slide-toggle.component";
21
+ import * as i20 from "./snackbars-thread/component/snackbars-thread.component";
22
+ import * as i21 from "./tooltip-neo/tooltip-neo.component";
23
+ import * as i22 from "./directives/default-image.directive";
24
+ import * as i23 from "./directives/frozen-gif.directive";
25
+ import * as i24 from "./directives/equal-validator.directive";
26
+ import * as i25 from "./directives/multi-style-text.directive";
27
+ import * as i26 from "./directives/truncate-tooltip.directive";
28
+ import * as i27 from "./tooltip-neo/tooltip-neo.directive";
29
+ import * as i28 from "@agorapulse/ui-symbol";
30
+ import * as i29 from "@angular/common";
31
+ import * as i30 from "ngx-daterangepicker-material";
32
+ import * as i31 from "@angular/forms";
33
+ import * as i32 from "@ng-select/ng-select";
34
+ import * as i33 from "./popmenu/popmenu.module";
35
+ import * as i34 from "@angular/cdk/overlay";
36
+ import * as i35 from "@angular/material/badge";
37
+ import * as i36 from "@angular/material/button";
38
+ import * as i37 from "@angular/material/button-toggle";
39
+ import * as i38 from "@angular/material/chips";
40
+ import * as i39 from "@angular/material/expansion";
41
+ import * as i40 from "@angular/material/checkbox";
42
+ import * as i41 from "@angular/material/icon";
43
+ import * as i42 from "@angular/material/progress-bar";
44
+ import * as i43 from "@angular/material/progress-spinner";
45
+ import * as i44 from "@angular/material/radio";
46
+ import * as i45 from "@angular/material/slider";
47
+ import * as i46 from "@angular/material/slide-toggle";
48
+ import * as i47 from "@angular/material/menu";
49
+ import * as i48 from "@angular/material/sidenav";
50
+ import * as i49 from "@angular/material/toolbar";
51
+ import * as i50 from "@angular/material/card";
52
+ import * as i51 from "@angular/material/divider";
53
+ import * as i52 from "@angular/material/grid-list";
54
+ import * as i53 from "@angular/material/list";
55
+ import * as i54 from "@angular/material/tabs";
56
+ import * as i55 from "@angular/material/stepper";
57
+ import * as i56 from "@angular/material/dialog";
58
+ import * as i57 from "@angular/material/snack-bar";
59
+ import * as i58 from "@angular/material/table";
69
60
  export declare class AgorapulseUiComponentsModule {
70
61
  static ɵfac: i0.ɵɵFactoryDeclaration<AgorapulseUiComponentsModule, never>;
71
- static ɵmod: i0.ɵɵNgModuleDeclaration<AgorapulseUiComponentsModule, [typeof i1.AddCommentComponent, typeof i2.AvatarComponent, typeof i3.AutosizeTextareaDirective, typeof i4.StepperComponent, typeof i5.ConfirmModalComponent, typeof i6.DatepickerComponent, typeof i7.DotsStepperComponent, typeof i8.EllipsisDirective, typeof i9.ImageCarouselComponent, typeof i10.FeatureOnboardingComponent, typeof i11.LabelListComponent, typeof i12.LabelsSelectorComponent, typeof i13.MediaDisplayOverlayDialogComponent, typeof i14.ModalComponent, typeof i15.OverlayDialogComponent, typeof i16.OverlayInDivComponent, typeof i17.PasswordInputComponent, typeof i18.PlaceComponent, typeof i19.PlaceListComponent, typeof i20.SnackBarComponent, typeof i21.SplashscreenComponent, typeof i22.StarRatingComponent, typeof i23.LabelComponent, typeof i24.TryPopupComponent, typeof i25.NotificationComponent, typeof i26.PaginatorComponent, typeof i27.PaginatorButtonComponent, typeof i28.SlideToggleComponent, typeof i29.SnackbarsThreadComponent, typeof i30.TooltipNeoComponent, typeof i3.AutosizeTextareaDirective, typeof i31.DefaultImageDirective, typeof i32.FrozenGifDirective, typeof i28.SlideToggleComponent, typeof i33.EqualValidatorDirective, typeof i34.MultiStyleTextDirective, typeof i35.TruncateTooltipDirective, typeof i36.TooltipNeoDirective], [typeof i37.AgorapulseUiSymbolModule, typeof i38.CommonModule, typeof i39.NgxDaterangepickerMd, typeof i40.FormsModule, typeof i40.ReactiveFormsModule, typeof i41.NgSelectModule, typeof i42.PopmenuModule, typeof i43.OverlayModule, typeof i44.MatBadgeModule, typeof i45.MatButtonModule, typeof i46.MatButtonToggleModule, typeof i47.MatChipsModule, typeof i48.MatExpansionModule, typeof i49.MatCheckboxModule, typeof i50.MatIconModule, typeof i51.MatProgressBarModule, typeof i52.MatProgressSpinnerModule, typeof i53.MatRadioModule, typeof i54.MatSliderModule, typeof i55.MatSlideToggleModule, typeof i56.MatMenuModule, typeof i57.MatSidenavModule, typeof i58.MatToolbarModule, typeof i59.MatCardModule, typeof i60.MatDividerModule, typeof i61.MatGridListModule, typeof i62.MatListModule, typeof i63.MatTabsModule, typeof i64.MatStepperModule, typeof i65.MatDialogModule, typeof i66.MatSnackBarModule, typeof i67.MatTableModule], [typeof i40.FormsModule, typeof i40.ReactiveFormsModule, typeof i1.AddCommentComponent, typeof i2.AvatarComponent, typeof i4.StepperComponent, typeof i5.ConfirmModalComponent, typeof i6.DatepickerComponent, typeof i7.DotsStepperComponent, typeof i8.EllipsisDirective, typeof i9.ImageCarouselComponent, typeof i10.FeatureOnboardingComponent, typeof i23.LabelComponent, typeof i11.LabelListComponent, typeof i13.MediaDisplayOverlayDialogComponent, typeof i14.ModalComponent, typeof i15.OverlayDialogComponent, typeof i16.OverlayInDivComponent, typeof i17.PasswordInputComponent, typeof i18.PlaceComponent, typeof i19.PlaceListComponent, typeof i20.SnackBarComponent, typeof i21.SplashscreenComponent, typeof i22.StarRatingComponent, typeof i12.LabelsSelectorComponent, typeof i24.TryPopupComponent, typeof i25.NotificationComponent, typeof i26.PaginatorComponent, typeof i27.PaginatorButtonComponent, typeof i28.SlideToggleComponent, typeof i29.SnackbarsThreadComponent, typeof i3.AutosizeTextareaDirective, typeof i31.DefaultImageDirective, typeof i32.FrozenGifDirective, typeof i33.EqualValidatorDirective, typeof i34.MultiStyleTextDirective, typeof i35.TruncateTooltipDirective, typeof i36.TooltipNeoDirective, typeof i41.NgSelectModule, typeof i42.PopmenuModule, typeof i44.MatBadgeModule, typeof i45.MatButtonModule, typeof i46.MatButtonToggleModule, typeof i49.MatCheckboxModule, typeof i47.MatChipsModule, typeof i48.MatExpansionModule, typeof i50.MatIconModule, typeof i51.MatProgressBarModule, typeof i52.MatProgressSpinnerModule, typeof i53.MatRadioModule, typeof i54.MatSliderModule, typeof i55.MatSlideToggleModule, typeof i56.MatMenuModule, typeof i57.MatSidenavModule, typeof i58.MatToolbarModule, typeof i59.MatCardModule, typeof i60.MatDividerModule, typeof i61.MatGridListModule, typeof i62.MatListModule, typeof i63.MatTabsModule, typeof i64.MatStepperModule, typeof i65.MatDialogModule, typeof i66.MatSnackBarModule, typeof i67.MatTableModule]>;
62
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AgorapulseUiComponentsModule, [typeof i1.AddCommentComponent, typeof i2.AvatarComponent, typeof i3.AutosizeTextareaDirective, typeof i4.StepperComponent, typeof i5.ConfirmModalComponent, typeof i6.DatepickerComponent, typeof i7.DotsStepperComponent, typeof i8.EllipsisDirective, typeof i9.LabelListComponent, typeof i10.LabelsSelectorComponent, typeof i11.MediaDisplayOverlayDialogComponent, typeof i12.ModalComponent, typeof i13.PasswordInputComponent, typeof i14.SnackBarComponent, typeof i15.LabelComponent, typeof i16.NotificationComponent, typeof i17.PaginatorComponent, typeof i18.PaginatorButtonComponent, typeof i19.SlideToggleComponent, typeof i20.SnackbarsThreadComponent, typeof i21.TooltipNeoComponent, typeof i3.AutosizeTextareaDirective, typeof i22.DefaultImageDirective, typeof i23.FrozenGifDirective, typeof i19.SlideToggleComponent, typeof i24.EqualValidatorDirective, typeof i25.MultiStyleTextDirective, typeof i26.TruncateTooltipDirective, typeof i27.TooltipNeoDirective], [typeof i28.AgorapulseUiSymbolModule, typeof i29.CommonModule, typeof i30.NgxDaterangepickerMd, typeof i31.FormsModule, typeof i31.ReactiveFormsModule, typeof i32.NgSelectModule, typeof i33.PopmenuModule, typeof i34.OverlayModule, typeof i35.MatBadgeModule, typeof i36.MatButtonModule, typeof i37.MatButtonToggleModule, typeof i38.MatChipsModule, typeof i39.MatExpansionModule, typeof i40.MatCheckboxModule, typeof i41.MatIconModule, typeof i42.MatProgressBarModule, typeof i43.MatProgressSpinnerModule, typeof i44.MatRadioModule, typeof i45.MatSliderModule, typeof i46.MatSlideToggleModule, typeof i47.MatMenuModule, typeof i48.MatSidenavModule, typeof i49.MatToolbarModule, typeof i50.MatCardModule, typeof i51.MatDividerModule, typeof i52.MatGridListModule, typeof i53.MatListModule, typeof i54.MatTabsModule, typeof i55.MatStepperModule, typeof i56.MatDialogModule, typeof i57.MatSnackBarModule, typeof i58.MatTableModule], [typeof i31.FormsModule, typeof i31.ReactiveFormsModule, typeof i1.AddCommentComponent, typeof i2.AvatarComponent, typeof i4.StepperComponent, typeof i5.ConfirmModalComponent, typeof i6.DatepickerComponent, typeof i7.DotsStepperComponent, typeof i8.EllipsisDirective, typeof i15.LabelComponent, typeof i9.LabelListComponent, typeof i11.MediaDisplayOverlayDialogComponent, typeof i12.ModalComponent, typeof i13.PasswordInputComponent, typeof i14.SnackBarComponent, typeof i10.LabelsSelectorComponent, typeof i16.NotificationComponent, typeof i17.PaginatorComponent, typeof i18.PaginatorButtonComponent, typeof i19.SlideToggleComponent, typeof i20.SnackbarsThreadComponent, typeof i3.AutosizeTextareaDirective, typeof i22.DefaultImageDirective, typeof i23.FrozenGifDirective, typeof i24.EqualValidatorDirective, typeof i25.MultiStyleTextDirective, typeof i26.TruncateTooltipDirective, typeof i27.TooltipNeoDirective, typeof i32.NgSelectModule, typeof i33.PopmenuModule, typeof i35.MatBadgeModule, typeof i36.MatButtonModule, typeof i37.MatButtonToggleModule, typeof i40.MatCheckboxModule, typeof i38.MatChipsModule, typeof i39.MatExpansionModule, typeof i41.MatIconModule, typeof i42.MatProgressBarModule, typeof i43.MatProgressSpinnerModule, typeof i44.MatRadioModule, typeof i45.MatSliderModule, typeof i46.MatSlideToggleModule, typeof i47.MatMenuModule, typeof i48.MatSidenavModule, typeof i49.MatToolbarModule, typeof i50.MatCardModule, typeof i51.MatDividerModule, typeof i52.MatGridListModule, typeof i53.MatListModule, typeof i54.MatTabsModule, typeof i55.MatStepperModule, typeof i56.MatDialogModule, typeof i57.MatSnackBarModule, typeof i58.MatTableModule]>;
72
63
  static ɵinj: i0.ɵɵInjectorDeclaration<AgorapulseUiComponentsModule>;
73
64
  }
@@ -9,8 +9,8 @@ export declare class AvatarComponent implements OnInit, OnChanges {
9
9
  imageUrl: string;
10
10
  loading: 'auto' | 'lazy' | 'eager';
11
11
  outerBorderHidden: boolean;
12
- size: 'large' | 'normal' | 'medium' | 'medium-sm' | 'small' | 'mini' | 'mini-sm' | 'micro' | 'facebook' | 'twitter' | 'linkedin' | 'instagram' | 'youtube' | 'google';
13
- social: 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'youtube' | 'google';
12
+ size: 'large' | 'large-sm' | 'normal' | 'medium' | 'medium-sm' | 'small' | 'mini' | 'mini-sm' | 'micro' | 'facebook' | 'twitter' | 'linkedin' | 'instagram' | 'youtube' | 'google';
13
+ social: 'facebook' | 'instagram' | 'linkedin' | 'tiktok' | 'twitter' | 'youtube' | 'google';
14
14
  username: string;
15
15
  rounded: boolean;
16
16
  online: boolean;
@@ -0,0 +1,4 @@
1
+ export * from './popmenu.component';
2
+ export * from './popmenu.directive';
3
+ export * from './popmenu.module';
4
+ export * from './popmenu-options.interface';
Binary file
@@ -1,35 +0,0 @@
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.2.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.2.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.2.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==
@@ -1,161 +0,0 @@
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
- ngOnChanges(changes) {
47
- if (changes.items && changes.items.previousValue?.length > changes.items.currentValue.length) {
48
- const itemsLength = changes.items.currentValue.length - 1;
49
- if (this._selectedIndex > itemsLength) {
50
- this._selectedIndex = itemsLength;
51
- this.move();
52
- }
53
- }
54
- }
55
- isPrevButtonEnabled() {
56
- return this.selectedIndex > 0;
57
- }
58
- isNextButtonEnabled() {
59
- if (this.items && this.items[this.selectedIndex]) {
60
- return this.selectedIndex < this.items.length - 1;
61
- }
62
- return false;
63
- }
64
- isVideo() {
65
- if (this.items && this.items[this.selectedIndex]) {
66
- return this.items[this.selectedIndex].type === InstagramCarouselItemType.VIDEO;
67
- }
68
- return false;
69
- }
70
- dotsDisplayed() {
71
- if (this.items && this.items[this.selectedIndex]) {
72
- return this.items.length > 1;
73
- }
74
- return false;
75
- }
76
- prev() {
77
- this.selectedIndex -= 1;
78
- this.currentImageChanged.emit(this.items[this.selectedIndex]);
79
- }
80
- next() {
81
- this.selectedIndex += 1;
82
- this.currentImageChanged.emit(this.items[this.selectedIndex]);
83
- }
84
- play(event, index) {
85
- if (!this.tinyMode) {
86
- const videoPlayer = this.videoPlayers[index];
87
- if (videoPlayer) {
88
- videoPlayer.paused ? this.videoPlay(index) : this.videoPause(index);
89
- }
90
- event.stopPropagation();
91
- }
92
- }
93
- move(instantaneous = false) {
94
- this.carouselOffset = -this.carousel.nativeElement.offsetWidth * this.selectedIndex;
95
- this.animationBuilder.build(animate(instantaneous ? '1ms' : '250ms ease-in', style({ transform: `translateX(${this.carouselOffset}px)` }))).create(this.carousel.nativeElement).play();
96
- }
97
- onMouseEntersVideo(event, index) {
98
- this.mouseOver = true;
99
- if (this.tinyMode) {
100
- this.videoPlay(index);
101
- }
102
- }
103
- onMouseLeavesVideo(event, index) {
104
- this.mouseOver = false;
105
- if (this.tinyMode) {
106
- this.videoPause(index);
107
- }
108
- }
109
- onResize(event) {
110
- this.move(true);
111
- }
112
- registerVideoPlayer(event, index) {
113
- this.videoPlayers[index] = event.target;
114
- event.target.muted = !this.soundEnabled;
115
- }
116
- videoPause(index) {
117
- const videoPlayer = this.videoPlayers[index];
118
- if (videoPlayer) {
119
- videoPlayer.pause();
120
- this.isPlaying = false;
121
- }
122
- }
123
- videoPlay(index) {
124
- const videoPlayer = this.videoPlayers[index];
125
- if (videoPlayer) {
126
- videoPlayer.play();
127
- this.isPlaying = true;
128
- }
129
- }
130
- switchSound() {
131
- this.soundEnabled = !this.soundEnabled;
132
- for (const player of this.videoPlayers) {
133
- player.muted = !this.soundEnabled;
134
- }
135
- }
136
- }
137
- /** @nocollapse */ /** @nocollapse */ ImageCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ImageCarouselComponent, deps: [{ token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Component });
138
- /** @nocollapse */ /** @nocollapse */ ImageCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.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 }], usesOnChanges: 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:100%}\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 });
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ImageCarouselComponent, decorators: [{
140
- type: Component,
141
- 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:100%}\n"] }]
142
- }], ctorParameters: function () { return [{ type: i1.AnimationBuilder }]; }, propDecorators: { carousel: [{
143
- type: ViewChild,
144
- args: ['carousel']
145
- }], items: [{
146
- type: Input
147
- }], dotsInside: [{
148
- type: Input
149
- }], soundEnabled: [{
150
- type: Input
151
- }], supportGif: [{
152
- type: Input
153
- }], tinyMode: [{
154
- type: Input
155
- }], currentImageChanged: [{
156
- type: Output
157
- }], onResize: [{
158
- type: HostListener,
159
- args: ['window:resize', ['$event']]
160
- }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvaW1hZ2UtY2Fyb3VzZWwvaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL3NyYy9saWIvaW1hZ2UtY2Fyb3VzZWwvaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsT0FBTyxFQUFvQixLQUFLLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7QUFFckUsTUFBTSxDQUFOLElBQVkseUJBR1g7QUFIRCxXQUFZLHlCQUF5QjtJQUNqQyw0Q0FBZSxDQUFBO0lBQ2YsNENBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSFcseUJBQXlCLEtBQXpCLHlCQUF5QixRQUdwQztBQWNELE1BQU0sT0FBTyxzQkFBc0I7SUFvQi9CLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEIvQyw4QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztRQUlwRCxVQUFLLEdBQTRCLEVBQUUsQ0FBQztRQUNwQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVoQix3QkFBbUIsR0FBd0MsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFFdkcsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDcEIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFH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bkNhLHNCQUFzQjtrQkFObEMsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLG1CQUFtQjt1R0FRRSxRQUFRO3NCQUF0QyxTQUFTO3VCQUFDLFVBQVU7Z0JBRVosS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksbUJBQW1CO3NCQUE1QixNQUFNO2dCQTJHUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LCBPbkNoYW5nZXMsXG4gICAgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YW5pbWF0ZSwgQW5pbWF0aW9uQnVpbGRlciwgc3R5bGV9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgZW51bSBJbnN0YWdyYW1DYXJvdXNlbEl0ZW1UeXBlIHtcbiAgICBJTUFHRSA9ICdwaG90bycsXG4gICAgVklERU8gPSAndmlkZW8nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFncmFtQ2Fyb3VzZWxJdGVtIHtcbiAgICB0eXBlOiBJbnN0YWdyYW1DYXJvdXNlbEl0ZW1UeXBlO1xuICAgIHVybDogc3RyaW5nO1xuICAgIHRodW1ibmFpbFVybD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdhcC1pbWFnZS1jYXJvdXNlbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWNhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbWFnZS1jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ2Fyb3VzZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgcHVibGljIEluc3RhZ3JhbUNhcm91c2VsSXRlbVR5cGUgPSBJbnN0YWdyYW1DYXJvdXNlbEl0ZW1UeXBlO1xuXG4gICAgQFZpZXdDaGlsZCgnY2Fyb3VzZWwnKSBwcml2YXRlIGNhcm91c2VsOiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgaXRlbXM6IEluc3RhZ3JhbUNhcm91c2VsSXRlbVtdID0gW107XG4gICAgQElucHV0KCkgZG90c0luc2lkZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNvdW5kRW5hYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHN1cHBvcnRHaWYgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHRpbnlNb2RlID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgY3VycmVudEltYWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEluc3RhZ3JhbUNhcm91c2VsSXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPEluc3RhZ3JhbUNhcm91c2VsSXRlbT4oKTtcblxuICAgIHByaXZhdGUgX3NlbGVjdGVkSW5kZXggPSAwO1xuICAgIHB1YmxpYyBjYXJvdXNlbE9mZnNldCA9IDA7XG4gICAgcHVibGljIGlzUGxheWluZzogYm9vbGVhbjtcbiAgICBwcml2YXRlIG1vdXNlT3ZlcjogYm9vbGVhbjtcbiAgICBwdWJsaWMgdmlkZW9QbGF5ZXJzOiBIVE1MVmlkZW9FbGVtZW50W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5pbWF0aW9uQnVpbGRlcjogQW5pbWF0aW9uQnVpbGRlcikge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZpZGVvUGF1c2UodGhpcy5zZWxlY3RlZEluZGV4KTtcbiAgICAgICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgICAgICAgdmFsdWUgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSA+IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLml0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHZhbHVlO1xuICAgICAgICB0aGlzLm1vdmUoKTtcbiAgICAgICAgaWYgKHRoaXMudGlueU1vZGUgJiYgdGhpcy5tb3VzZU92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMudmlkZW9QbGF5KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLml0ZW1zICYmIGNoYW5nZXMuaXRlbXMucHJldmlvdXNWYWx1ZT8ubGVuZ3RoID4gY2hhbmdlcy5pdGVtcy5jdXJyZW50VmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtc0xlbmd0aDogbnVtYmVyID0gY2hhbmdlcy5pdGVtcy5jdXJyZW50VmFsdWUubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZEluZGV4ID4gaXRlbXNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gaXRlbXNMZW5ndGg7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1ByZXZCdXR0b25FbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEluZGV4ID4gMDtcbiAgICB9XG5cbiAgICBpc05leHRCdXR0b25FbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSW5kZXggPCB0aGlzLml0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlzVmlkZW8oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXNbdGhpcy5zZWxlY3RlZEluZGV4XSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbdGhpcy5zZWxlY3RlZEluZGV4XS50eXBlID09PSBJbnN0YWdyYW1DYXJvdXNlbEl0ZW1UeXBlLlZJREVPO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBkb3RzRGlzcGxheWVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmxlbmd0aCA+IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHByZXYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCAtPSAxO1xuICAgICAgICB0aGlzLmN1cnJlbnRJbWFnZUNoYW5nZWQuZW1pdCh0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0pO1xuICAgIH1cblxuICAgIG5leHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCArPSAxO1xuICAgICAgICB0aGlzLmN1cnJlbnRJbWFnZUNoYW5nZWQuZW1pdCh0aGlzLml0ZW1zW3RoaXMuc2VsZWN0ZWRJbmRleF0pO1xuICAgIH1cblxuICAgIHBsYXkoZXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRpbnlNb2RlKSB7XG4gICAgICAgICAgICBjb25zdCB2aWRlb1BsYXllcjogSFRNTFZpZGVvRWxlbWVudCA9IHRoaXMudmlkZW9QbGF5ZXJzW2luZGV4XTtcbiAgICAgICAgICAgIGlmICh2aWRlb1BsYXllcikge1xuICAgICAgICAgICAgICAgIHZpZGVvUGxheWVyLnBhdXNlZCA/IHRoaXMudmlkZW9QbGF5KGluZGV4KSA6IHRoaXMudmlkZW9QYXVzZShpbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmUoaW5zdGFudGFuZW91czogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWxPZmZzZXQgPSAtdGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICogdGhpcy5zZWxlY3RlZEluZGV4O1xuICAgICAgICB0aGlzLmFuaW1hdGlvbkJ1aWxkZXIuYnVpbGQoXG4gICAgICAgICAgICBhbmltYXRlKGluc3RhbnRhbmVvdXMgPyAnMW1zJyA6ICcyNTBtcyBlYXNlLWluJywgc3R5bGUoe3RyYW5zZm9ybTogYHRyYW5zbGF0ZVgoJHt0aGlzLmNhcm91c2VsT2Zmc2V0fXB4KWB9KSlcbiAgICAgICAgKS5jcmVhdGUodGhpcy5jYXJvdXNlbC5uYXRpdmVFbGVtZW50KS5wbGF5KCk7XG4gICAgfVxuXG4gICAgb25Nb3VzZUVudGVyc1ZpZGVvKGV2ZW50LCBpbmRleCkge1xuICAgICAgICB0aGlzLm1vdXNlT3ZlciA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLnRpbnlNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvUGxheShpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vdXNlTGVhdmVzVmlkZW8oZXZlbnQsIGluZGV4KSB7XG4gICAgICAgIHRoaXMubW91c2VPdmVyID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnRpbnlNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvUGF1c2UoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgb25SZXNpemUoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5tb3ZlKHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlclZpZGVvUGxheWVyKGV2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmlkZW9QbGF5ZXJzW2luZGV4XSA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgZXZlbnQudGFyZ2V0Lm11dGVkID0gIXRoaXMuc291bmRFbmFibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmlkZW9QYXVzZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHZpZGVvUGxheWVyOiBIVE1MVmlkZW9FbGVtZW50ID0gdGhpcy52aWRlb1BsYXllcnNbaW5kZXhdO1xuICAgICAgICBpZiAodmlkZW9QbGF5ZXIpIHtcbiAgICAgICAgICAgIHZpZGVvUGxheWVyLnBhdXNlKCk7XG4gICAgICAgICAgICB0aGlzLmlzUGxheWluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2aWRlb1BsYXkoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCB2aWRlb1BsYXllcjogSFRNTFZpZGVvRWxlbWVudCA9IHRoaXMudmlkZW9QbGF5ZXJzW2luZGV4XTtcbiAgICAgICAgaWYgKHZpZGVvUGxheWVyKSB7XG4gICAgICAgICAgICB2aWRlb1BsYXllci5wbGF5KCk7XG4gICAgICAgICAgICB0aGlzLmlzUGxheWluZyA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3dpdGNoU291bmQoKSB7XG4gICAgICAgIHRoaXMuc291bmRFbmFibGVkID0gIXRoaXMuc291bmRFbmFibGVkO1xuICAgICAgICBmb3IgKGNvbnN0IHBsYXllciBvZiB0aGlzLnZpZGVvUGxheWVycykge1xuICAgICAgICAgICAgcGxheWVyLm11dGVkID0gIXRoaXMuc291bmRFbmFibGVkO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPHNlY3Rpb24gKm5nSWY9XCJpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwICYmIGl0ZW1zWzBdLnVybFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJvdXNlbC13cmFwcGVyXCJcbiAgICAgICAgIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcnNWaWRlbygkZXZlbnQsIHNlbGVjdGVkSW5kZXgpXCJcbiAgICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZXNWaWRlbygkZXZlbnQsIHNlbGVjdGVkSW5kZXgpXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cImNhcm91c2VsLWlubmVyXCIgI2Nhcm91c2VsPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJjYXJvdXNlbC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIml0ZW0udHlwZSA9PT0gSW5zdGFncmFtQ2Fyb3VzZWxJdGVtVHlwZS5JTUFHRSAmJiBpdGVtLnVybFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIGFwRnJvemVuR2lmXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2FwRnJvemVuXT1cIiFzdXBwb3J0R2lmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdF09XCInYXNzZXRzL2ltZy9kZWZhdWx0LnBuZydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS51cmxcIj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpdGVtLnR5cGUgPT09IEluc3RhZ3JhbUNhcm91c2VsSXRlbVR5cGUuVklERU8gJiYgaXRlbS51cmxcIj5cbiAgICAgICAgICAgICAgICAgICAgPHZpZGVvIFtpZF09XCIndmlkZW8tJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIucG9zdGVyXT1cIml0ZW0udGh1bWJuYWlsVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsb29wXT1cInRpbnlNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS51cmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBsYXkoJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5kZWQpPVwiaXNQbGF5aW5nID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvYWRzdGFydCk9XCJyZWdpc3RlclZpZGVvUGxheWVyKCRldmVudCwgaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cInBsYXktYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicGxheSgkZXZlbnQsIGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCAqbmdJZj1cIiFpc1BsYXlpbmdcIiBkPVwiTTExLDEwIEwxOCwxMy43NCAxOCwyMi4yOCAxMSwyNiBNMTgsMTMuNzQgTDI2LDE4IDI2LDE4IDE4LDIyLjI4XCIvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic291bmQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXRpbnlNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hTb3VuZCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e3NvdW5kRW5hYmxlZCA/ICd2b2x1bWVfdXAnIDogJ3ZvbHVtZV9vZmYnfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgPC91bD5cblxuICAgICAgICA8c3ZnIGNsYXNzPVwibmF2LWJ1dHRvbiBwcmV2XCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzogIWlzUHJldkJ1dHRvbkVuYWJsZWQoKSwgJ3RpbnknOiB0aW55TW9kZX1cIlxuICAgICAgICAgICAgIChjbGljayk9XCJwcmV2KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIlxuICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNDU1IDQ1NVwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0yMjcuNSwwQzEwMS44NTUsMCwwLDEwMS44NTUsMCwyMjcuNVMxMDEuODU1LDQ1NSwyMjcuNSw0NTVTNDU1LDM1My4xNDUsNDU1LDIyNy41UzM1My4xNDUsMCwyMjcuNSwweiBNMTk5LjQ3NiwzNTUuNTg5XG4gICAgICAgICAgICAgICAgICBsLTIxLjI0OC0yMS4xNzhMMjg0Ljc5MSwyMjcuNUwxNzguMjI4LDEyMC41ODlsMjEuMjQ4LTIxLjE3OEwzMjcuMTQ4LDIyNy41TDE5OS40NzYsMzU1LjU4OXpcIi8+XG4gICAgICAgIDwvc3ZnPlxuXG4gICAgICAgIDxzdmcgY2xhc3M9XCJuYXYtYnV0dG9uIG5leHRcIlxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOiAhaXNOZXh0QnV0dG9uRW5hYmxlZCgpLCAndGlueSc6IHRpbnlNb2RlfVwiXG4gICAgICAgICAgICAgKGNsaWNrKT1cIm5leHQoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiXG4gICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgdmlld0JveD1cIjAgMCA0NTUgNDU1XCI+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTIyNy41LDBDMTAxLjg1NSwwLDAsMTAxLjg1NSwwLDIyNy41UzEwMS44NTUsNDU1LDIyNy41LDQ1NVM0NTUsMzUzLjE0NSw0NTUsMjI3LjVTMzUzLjE0NSwwLDIyNy41LDB6IE0xOTkuNDc2LDM1NS41ODlcblx0ICAgICAgICAgICAgICBsLTIxLjI0OC0yMS4xNzhMMjg0Ljc5MSwyMjcuNUwxNzguMjI4LDEyMC41ODlsMjEuMjQ4LTIxLjE3OEwzMjcuMTQ4LDIyNy41TDE5OS40NzYsMzU1LjU4OXpcIi8+XG4gICAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydpbnNpZGUnOiBkb3RzSW5zaWRlfVwiPlxuICAgICAgICA8YXAtZG90cy1zdGVwcGVyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyXCJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAqbmdJZj1cImRvdHNEaXNwbGF5ZWQoKVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNcIlxuICAgICAgICAgICAgW2luZGV4XT1cInNlbGVjdGVkSW5kZXhcIlxuICAgICAgICAgICAgKGRvdENsaWNrKT1cInNlbGVjdGVkSW5kZXggPSAkZXZlbnRcIj48L2FwLWRvdHMtc3RlcHBlcj5cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==